@nswds/app 1.35.0 → 1.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,14 +1,14 @@
1
1
  import * as AccordionPrimitive from '@radix-ui/react-accordion';
2
2
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
- import clsx12, { clsx } from 'clsx';
3
+ import clsx4, { clsx } from 'clsx';
4
4
  import { twMerge } from 'tailwind-merge';
5
5
  import { cva } from 'class-variance-authority';
6
6
  import * as AspectRatioPrimitive from '@radix-ui/react-aspect-ratio';
7
7
  import * as AvatarPrimitive from '@radix-ui/react-avatar';
8
- import * as Headless from '@headlessui/react';
8
+ import * as Headless4 from '@headlessui/react';
9
9
  import { PopoverGroup, Popover as Popover$1, PopoverButton, PopoverPanel } from '@headlessui/react';
10
10
  import * as React15 from 'react';
11
- import React15__default, { forwardRef, useEffect, createContext, useRef, useState, useMemo, useCallback, useContext, useLayoutEffect } from 'react';
11
+ import React15__default, { forwardRef, useEffect, createContext, useRef, useState, useMemo, useContext, useLayoutEffect } from 'react';
12
12
  import Link10 from 'next/link';
13
13
  import * as culori from 'culori';
14
14
  import { Slot } from '@radix-ui/react-slot';
@@ -27,7 +27,6 @@ import 'prismjs/components/prism-tsx';
27
27
  import 'prismjs/components/prism-typescript';
28
28
  import * as SelectPrimitive from '@radix-ui/react-select';
29
29
  import * as PopoverPrimitive from '@radix-ui/react-popover';
30
- import * as LabelPrimitive from '@radix-ui/react-label';
31
30
  import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
32
31
  import { CircleIcon, ChevronLeftIcon, ChevronRightIcon, ChevronDownIcon, ArrowLeft, ArrowRight, MinusIcon } from 'lucide-react';
33
32
  import * as TabsPrimitive2 from '@radix-ui/react-tabs';
@@ -40,6 +39,7 @@ import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
40
39
  import { Drawer as Drawer$1 } from 'vaul';
41
40
  import * as SeparatorPrimitive from '@radix-ui/react-separator';
42
41
  import { FormProvider, Controller, useFormContext, useFormState } from 'react-hook-form';
42
+ import * as LabelPrimitive from '@radix-ui/react-label';
43
43
  import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
44
44
  import * as TogglePrimitive from '@radix-ui/react-toggle';
45
45
  import * as MenubarPrimitive from '@radix-ui/react-menubar';
@@ -355,7 +355,7 @@ function AvatarFallback({
355
355
  );
356
356
  }
357
357
  var Link = forwardRef(function Link2(props, ref) {
358
- return /* @__PURE__ */ jsx(Headless.DataInteractive, { children: /* @__PURE__ */ jsx(Link10, { ...props, ref }) });
358
+ return /* @__PURE__ */ jsx(Headless4.DataInteractive, { children: /* @__PURE__ */ jsx(Link10, { ...props, ref }) });
359
359
  });
360
360
  var styles = {
361
361
  base: [
@@ -678,11 +678,11 @@ var Button2 = forwardRef(function Button3({ className, variant, color, size, chi
678
678
  children: /* @__PURE__ */ jsx(TouchTarget, { children })
679
679
  }
680
680
  ) : /* @__PURE__ */ jsx(
681
- Headless.Button,
681
+ Headless4.Button,
682
682
  {
683
683
  "data-variant": variant,
684
684
  ...props,
685
- className: clsx12(classes, "cursor-pointer"),
685
+ className: clsx4(classes, "cursor-pointer"),
686
686
  ref,
687
687
  children: /* @__PURE__ */ jsx(TouchTarget, { children })
688
688
  }
@@ -1147,7 +1147,7 @@ var BadgeButton = forwardRef(function BadgeButton2({
1147
1147
  children,
1148
1148
  ...props
1149
1149
  }, ref) {
1150
- const classes = clsx12(className, focusOutline[color], [
1150
+ const classes = clsx4(className, focusOutline[color], [
1151
1151
  // Base
1152
1152
  "group relative inline-flex rounded-sm",
1153
1153
  // Focus
@@ -1165,11 +1165,11 @@ var BadgeButton = forwardRef(function BadgeButton2({
1165
1165
  children: /* @__PURE__ */ jsx(TouchTarget, { children: /* @__PURE__ */ jsx(Badge, { variant, color, size, children }) })
1166
1166
  }
1167
1167
  ) : /* @__PURE__ */ jsx(
1168
- Headless.Button,
1168
+ Headless4.Button,
1169
1169
  {
1170
1170
  "data-variant": variant,
1171
1171
  ...props,
1172
- className: clsx12(classes, "cursor-pointer"),
1172
+ className: clsx4(classes, "cursor-pointer"),
1173
1173
  ref,
1174
1174
  children: /* @__PURE__ */ jsx(TouchTarget, { children: /* @__PURE__ */ jsx(Badge, { variant, color, size, children }) })
1175
1175
  }
@@ -2306,16 +2306,108 @@ function PopoverContent({
2306
2306
  function PopoverAnchor({ ...props }) {
2307
2307
  return /* @__PURE__ */ jsx(PopoverPrimitive.Anchor, { "data-slot": "popover-anchor", ...props });
2308
2308
  }
2309
- function Label3({ className, ...props }) {
2309
+ function Fieldset2({
2310
+ className,
2311
+ ...props
2312
+ }) {
2310
2313
  return /* @__PURE__ */ jsx(
2311
- LabelPrimitive.Root,
2314
+ Headless4.Fieldset,
2315
+ {
2316
+ ...props,
2317
+ className: clsx4(className, "*:data-[slot=text]:mt-1 [&>*+[data-slot=control]]:mt-6")
2318
+ }
2319
+ );
2320
+ }
2321
+ function Legend2({
2322
+ className,
2323
+ ...props
2324
+ }) {
2325
+ return /* @__PURE__ */ jsx(
2326
+ Headless4.Legend,
2327
+ {
2328
+ "data-slot": "legend",
2329
+ ...props,
2330
+ className: clsx4(
2331
+ className,
2332
+ "text-grey-900 text-base/6 font-semibold data-disabled:opacity-50 sm:text-sm/6 dark:text-white"
2333
+ )
2334
+ }
2335
+ );
2336
+ }
2337
+ function FieldGroup({ className, ...props }) {
2338
+ return /* @__PURE__ */ jsx("div", { "data-slot": "control", ...props, className: clsx4(className, "space-y-8") });
2339
+ }
2340
+ function Field2({
2341
+ className,
2342
+ ...props
2343
+ }) {
2344
+ return /* @__PURE__ */ jsx(
2345
+ Headless4.Field,
2346
+ {
2347
+ ...props,
2348
+ className: clsx4(
2349
+ className,
2350
+ "[&>[data-slot=label]+[data-slot=control]]:mt-3",
2351
+ "[&>[data-slot=label]+[data-slot=description]]:mt-1",
2352
+ "[&>[data-slot=description]+[data-slot=control]]:mt-3",
2353
+ "[&>[data-slot=control]+[data-slot=description]]:mt-3",
2354
+ "[&>[data-slot=control]+[data-slot=error]]:mt-3",
2355
+ "*:data-[slot=label]:font-medium"
2356
+ )
2357
+ }
2358
+ );
2359
+ }
2360
+ function Label4({
2361
+ className,
2362
+ ...props
2363
+ }) {
2364
+ return /* @__PURE__ */ jsx(
2365
+ Headless4.Label,
2312
2366
  {
2313
2367
  "data-slot": "label",
2314
- className: cn(
2315
- "flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
2368
+ ...props,
2369
+ className: clsx4(
2370
+ // Base
2371
+ "flex items-center gap-2",
2372
+ "text-grey-900 text-base/6 font-semibold select-none",
2373
+ // Dark mode
2374
+ "dark:group-data-[disabled=true]:text-grey-400 dark:text-white",
2375
+ // Disabled state
2376
+ "group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
2316
2377
  className
2317
- ),
2318
- ...props
2378
+ )
2379
+ }
2380
+ );
2381
+ }
2382
+ function Description2({
2383
+ className,
2384
+ ...props
2385
+ }) {
2386
+ return /* @__PURE__ */ jsx(
2387
+ Headless4.Description,
2388
+ {
2389
+ "data-slot": "description",
2390
+ ...props,
2391
+ className: clsx4(
2392
+ className,
2393
+ "text-grey-500 dark:text-grey-400 text-base/6 data-disabled:opacity-50 sm:text-sm/6"
2394
+ )
2395
+ }
2396
+ );
2397
+ }
2398
+ function ErrorMessage({
2399
+ className,
2400
+ ...props
2401
+ }) {
2402
+ return /* @__PURE__ */ jsx(
2403
+ Headless4.Description,
2404
+ {
2405
+ "data-slot": "error",
2406
+ ...props,
2407
+ className: clsx4(
2408
+ className,
2409
+ "text-danger-600 dark:text-danger-500 text-base/6 data-disabled:opacity-50 sm:text-sm/6"
2410
+ )
2319
2411
  }
2320
2412
  );
2321
2413
  }
@@ -2527,7 +2619,7 @@ function ThemeSelector({
2527
2619
  className: "grid grid-cols-2 gap-2",
2528
2620
  children: Object.entries(colorThemes2[themeCategory]).map(([key, theme2]) => /* @__PURE__ */ jsxs("div", { className: cn(labelStyles.base, ""), children: [
2529
2621
  /* @__PURE__ */ jsx(RadioGroupItem, { value: key, id: `primary-${key}`, className: "peer sr-only" }),
2530
- /* @__PURE__ */ jsxs(Label3, { htmlFor: `primary-${key}`, className: cn(labelStyles.label, ""), children: [
2622
+ /* @__PURE__ */ jsxs(Label4, { htmlFor: `primary-${key}`, className: cn(labelStyles.label, ""), children: [
2531
2623
  /* @__PURE__ */ jsx(
2532
2624
  "div",
2533
2625
  {
@@ -2552,7 +2644,7 @@ function ThemeSelector({
2552
2644
  className: "grid grid-cols-2 gap-2",
2553
2645
  children: availableAccentColors.map((key) => /* @__PURE__ */ jsxs("div", { className: cn(labelStyles.base, ""), children: [
2554
2646
  /* @__PURE__ */ jsx(RadioGroupItem, { value: key, id: `accent-${key}`, className: "peer sr-only" }),
2555
- /* @__PURE__ */ jsxs(Label3, { htmlFor: `accent-${key}`, className: cn(labelStyles.label, ""), children: [
2647
+ /* @__PURE__ */ jsxs(Label4, { htmlFor: `accent-${key}`, className: cn(labelStyles.label, ""), children: [
2556
2648
  /* @__PURE__ */ jsx(
2557
2649
  "div",
2558
2650
  {
@@ -7172,6 +7264,25 @@ function Footer({
7172
7264
  /* @__PURE__ */ jsx(FooterSmallPrint, { department, socialLinks })
7173
7265
  ] });
7174
7266
  }
7267
+ function Label6({ className, ...props }) {
7268
+ return /* @__PURE__ */ jsx(
7269
+ LabelPrimitive.Root,
7270
+ {
7271
+ "data-slot": "label",
7272
+ className: cn(
7273
+ // Base
7274
+ "flex items-center gap-2",
7275
+ "text-grey-900 text-base/6 font-semibold select-none",
7276
+ // Dark mode
7277
+ "dark:group-data-[disabled=true]:text-grey-400 dark:text-white",
7278
+ // Disabled state
7279
+ "group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
7280
+ className
7281
+ ),
7282
+ ...props
7283
+ }
7284
+ );
7285
+ }
7175
7286
  var Form = FormProvider;
7176
7287
  var FormFieldContext = React15.createContext({});
7177
7288
  var FormField = ({
@@ -7206,7 +7317,7 @@ function FormItem({ className, ...props }) {
7206
7317
  function FormLabel({ className, ...props }) {
7207
7318
  const { error, formItemId } = useFormField();
7208
7319
  return /* @__PURE__ */ jsx(
7209
- Label3,
7320
+ Label6,
7210
7321
  {
7211
7322
  "data-slot": "form-label",
7212
7323
  "data-error": !!error,
@@ -7300,7 +7411,7 @@ var toggleVariants = cva(styles3.base, {
7300
7411
  variants: {
7301
7412
  variant: {
7302
7413
  ghost: "",
7303
- outline: clsx12(styles3.outline)
7414
+ outline: clsx4(styles3.outline)
7304
7415
  },
7305
7416
  size: {
7306
7417
  default: "h-9 px-2 min-w-9",
@@ -7444,7 +7555,7 @@ function Heading({
7444
7555
  Element,
7445
7556
  {
7446
7557
  ...props,
7447
- className: clsx12(
7558
+ className: clsx4(
7448
7559
  className,
7449
7560
  trimClasses[trim],
7450
7561
  "m-0",
@@ -7459,7 +7570,7 @@ function Heading({
7459
7570
 
7460
7571
  // package.json
7461
7572
  var package_default = {
7462
- version: "1.34.0"};
7573
+ version: "1.36.0"};
7463
7574
  function Logo(props) {
7464
7575
  return /* @__PURE__ */ jsxs(Fragment, { children: [
7465
7576
  /* @__PURE__ */ jsx("span", { className: "sr-only", children: "NSW Government" }),
@@ -7597,7 +7708,12 @@ function Header2({
7597
7708
  return /* @__PURE__ */ jsxs(
7598
7709
  "header",
7599
7710
  {
7600
- className: clsx12(
7711
+ "aria-label": "Header",
7712
+ role: "banner",
7713
+ "data-slot": "header",
7714
+ "data-scrolled": isScrolled,
7715
+ id: "nsw-header",
7716
+ className: clsx4(
7601
7717
  "sticky top-0 z-50 flex flex-none flex-wrap items-center justify-between bg-white px-4 py-5 transition duration-500 sm:px-6 lg:px-12",
7602
7718
  shadow && "shadow-md shadow-slate-900/5 dark:shadow-none",
7603
7719
  isScrolled ? "dark:bg-slate-900/95 dark:backdrop-blur-sm dark:[@supports(backdrop-filter:blur(0))]:bg-slate-900/75" : "dark:bg-transparent"
@@ -7716,7 +7832,7 @@ ListItem.displayName = "List.Item";
7716
7832
  var _List = List2;
7717
7833
  _List.Item = ListItem;
7718
7834
  function Masthead() {
7719
- return /* @__PURE__ */ jsx("div", { className: "bg-primary-800 h-[var(--masthead-height)] w-full", children: /* @__PURE__ */ jsx("div", { className: "mx-auto flex w-full items-center justify-between px-4 py-2 sm:px-6 lg:px-12", children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-x-12", children: /* @__PURE__ */ jsx("p", { className: "text-xs text-white", children: "A NSW Government website" }) }) }) });
7835
+ return /* @__PURE__ */ jsx("div", { id: "nsw-masthead", className: "bg-primary-800 w-full", children: /* @__PURE__ */ jsx("div", { className: "mx-auto flex w-full items-center justify-between px-4 py-2 sm:px-6 lg:px-12", children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-x-12", children: /* @__PURE__ */ jsx("p", { className: "text-xs text-white", children: "A NSW Government website" }) }) }) });
7720
7836
  }
7721
7837
  function Menubar({ className, ...props }) {
7722
7838
  return /* @__PURE__ */ jsx(
@@ -7925,40 +8041,38 @@ function MenubarSubContent({
7925
8041
  }
7926
8042
  );
7927
8043
  }
7928
- function MainNavigation({ navigation }) {
7929
- const [headerHeight, setHeaderHeight] = useState(88);
8044
+ function useSelectorHeight(selector = "header") {
8045
+ const [height, setHeight] = useState(0);
8046
+ const elementRef = useRef(null);
8047
+ const resizeObserverRef = useRef(null);
7930
8048
  useEffect(() => {
7931
- const measureHeader = () => {
7932
- const header2 = document.querySelector("header");
7933
- if (header2) {
7934
- setHeaderHeight(header2.offsetHeight);
8049
+ const element = document.querySelector(selector);
8050
+ if (!element) return;
8051
+ elementRef.current = element;
8052
+ setHeight(element.offsetHeight);
8053
+ resizeObserverRef.current = new ResizeObserver(() => {
8054
+ if (elementRef.current) {
8055
+ setHeight(elementRef.current.offsetHeight);
7935
8056
  }
7936
- };
7937
- const timeoutId = setTimeout(measureHeader, 100);
7938
- const header = document.querySelector("header");
7939
- let resizeObserver = null;
7940
- if (header) {
7941
- resizeObserver = new ResizeObserver((entries) => {
7942
- for (const entry of entries) {
7943
- setHeaderHeight(entry.contentRect.height);
7944
- }
7945
- });
7946
- resizeObserver.observe(header);
7947
- }
8057
+ });
8058
+ resizeObserverRef.current.observe(element);
7948
8059
  return () => {
7949
- clearTimeout(timeoutId);
7950
- if (resizeObserver) {
7951
- resizeObserver.disconnect();
7952
- }
8060
+ resizeObserverRef.current?.disconnect();
7953
8061
  };
7954
- }, []);
8062
+ }, [selector]);
8063
+ return height;
8064
+ }
8065
+ function MainNavigation({ navigation }) {
8066
+ const headerHeight = useSelectorHeight();
7955
8067
  return /* @__PURE__ */ jsx(
7956
8068
  "nav",
7957
8069
  {
8070
+ "aria-label": "Main Navigation",
8071
+ role: "navigation",
8072
+ id: "nsw-main-navigation",
7958
8073
  className: "shadow-grey-900/5 sticky z-40 hidden bg-gray-100 shadow-md sm:px-6 lg:block lg:px-4 dark:shadow-none",
7959
8074
  style: {
7960
8075
  top: `${headerHeight}px`,
7961
- // Ensure the nav doesn't jump when header height is calculated
7962
8076
  transition: "top 0.2s ease-in-out"
7963
8077
  },
7964
8078
  children: /* @__PURE__ */ jsx("div", { className: "relative z-50 mx-auto flex items-center justify-between", children: /* @__PURE__ */ jsx(PopoverGroup, { className: "flex justify-start", children: navigation.map(
@@ -8051,7 +8165,7 @@ function Navigation({
8051
8165
  navigation
8052
8166
  }) {
8053
8167
  const pathname = usePathname();
8054
- return /* @__PURE__ */ jsx("nav", { className: clsx12("text-base lg:text-sm", className), children: /* @__PURE__ */ jsx("ul", { role: "list", className: "flex flex-col gap-9", children: navigation.map((section, index) => /* @__PURE__ */ jsxs("li", { children: [
8168
+ return /* @__PURE__ */ jsx("nav", { className: clsx4("text-base lg:text-sm", className), children: /* @__PURE__ */ jsx("ul", { role: "list", className: "flex flex-col gap-9", children: navigation.map((section, index) => /* @__PURE__ */ jsxs("li", { children: [
8055
8169
  section.links ? /* @__PURE__ */ jsx("h2", { className: "font-display text-foreground font-medium dark:text-white", children: section.title }) : /* @__PURE__ */ jsx(
8056
8170
  "ul",
8057
8171
  {
@@ -8062,7 +8176,7 @@ function Navigation({
8062
8176
  {
8063
8177
  href: section.href || "/",
8064
8178
  onClick: onLinkClick,
8065
- className: clsx12(
8179
+ className: clsx4(
8066
8180
  "text-foreground inline-block border-l border-transparent pl-5 text-base/8 sm:pl-4 sm:text-sm/6",
8067
8181
  "hover:border-nsw-grey-950 hover:text-nsw-gray-950 hover:font-semibold",
8068
8182
  "dark:text-nsw-grey-400",
@@ -8084,7 +8198,7 @@ function Navigation({
8084
8198
  {
8085
8199
  href: link.href,
8086
8200
  onClick: onLinkClick,
8087
- className: clsx12(
8201
+ className: clsx4(
8088
8202
  "text-foreground inline-block border-l border-transparent pl-5 text-base/8 sm:pl-4 sm:text-sm/6",
8089
8203
  "hover:border-nsw-grey-950 hover:text-nsw-gray-950 hover:font-semibold",
8090
8204
  "dark:text-nsw-grey-400",
@@ -8341,7 +8455,7 @@ function PrevNextLinksPageLink({
8341
8455
  Link10,
8342
8456
  {
8343
8457
  href,
8344
- className: clsx12(
8458
+ className: clsx4(
8345
8459
  "flex items-center gap-x-1 text-base font-semibold text-slate-500 hover:text-slate-600 dark:text-slate-400 dark:hover:text-slate-300",
8346
8460
  dir === "previous" && "flex-row-reverse"
8347
8461
  ),
@@ -8350,7 +8464,7 @@ function PrevNextLinksPageLink({
8350
8464
  /* @__PURE__ */ jsx(
8351
8465
  Icons.east,
8352
8466
  {
8353
- className: clsx12("size-5 flex-none fill-current", dir === "previous" && "-scale-x-100")
8467
+ className: clsx4("size-5 flex-none fill-current", dir === "previous" && "-scale-x-100")
8354
8468
  }
8355
8469
  )
8356
8470
  ]
@@ -8593,7 +8707,7 @@ function SidebarNavigation({
8593
8707
  navigation
8594
8708
  }) {
8595
8709
  const pathname = usePathname();
8596
- return /* @__PURE__ */ jsx("nav", { className: clsx12("text-base lg:text-sm", className), children: /* @__PURE__ */ jsx("ul", { role: "list", className: "flex flex-col gap-9", children: navigation.map((section, sectionIndex) => /* @__PURE__ */ jsxs("li", { children: [
8710
+ return /* @__PURE__ */ jsx("nav", { className: clsx4("text-base lg:text-sm", className), children: /* @__PURE__ */ jsx("ul", { role: "list", className: "flex flex-col gap-9", children: navigation.map((section, sectionIndex) => /* @__PURE__ */ jsxs("li", { children: [
8597
8711
  section.links ? /* @__PURE__ */ jsx("h2", { className: "font-display text-foreground font-medium dark:text-white", children: section.title }) : /* @__PURE__ */ jsx(
8598
8712
  "ul",
8599
8713
  {
@@ -8634,7 +8748,7 @@ function SidebarNavigation({
8634
8748
  function SidebarLink({ link, pathname, onLinkClick, depth }) {
8635
8749
  const hasChildren = Array.isArray(link.links) && link.links.length > 0;
8636
8750
  const isActive = pathname === link.href;
8637
- const baseLinkClasses = clsx12(
8751
+ const baseLinkClasses = clsx4(
8638
8752
  "border-l border-transparent pl-4 pr-2 text-base/8 sm:text-sm/6 w-full text-left py-1 rounded-r-md cursor-pointer",
8639
8753
  "hover:border-nsw-grey-950 hover:text-nsw-gray-950 hover:font-semibold hover:bg-primary-800/10",
8640
8754
  "dark:text-nsw-grey-400 dark:hover:border-nsw-grey-400 dark:hover:text-white",
@@ -8644,13 +8758,13 @@ function SidebarLink({ link, pathname, onLinkClick, depth }) {
8644
8758
  /* @__PURE__ */ jsx(CollapsibleTrigger2, { asChild: true, children: /* @__PURE__ */ jsxs(
8645
8759
  "button",
8646
8760
  {
8647
- className: clsx12(baseLinkClasses, "group flex items-center justify-between gap-1"),
8761
+ className: clsx4(baseLinkClasses, "group flex items-center justify-between gap-1"),
8648
8762
  children: [
8649
8763
  /* @__PURE__ */ jsx("span", { children: link.title }),
8650
8764
  /* @__PURE__ */ jsx(
8651
8765
  Icons.chevron_right,
8652
8766
  {
8653
- className: clsx12(
8767
+ className: clsx4(
8654
8768
  "ml-2 size-5 transition-transform duration-200",
8655
8769
  "group-data-[state=open]:rotate-90"
8656
8770
  )
@@ -8662,7 +8776,7 @@ function SidebarLink({ link, pathname, onLinkClick, depth }) {
8662
8776
  /* @__PURE__ */ jsx(CollapsibleContent2, { children: /* @__PURE__ */ jsx(
8663
8777
  "ul",
8664
8778
  {
8665
- className: clsx12(
8779
+ className: clsx4(
8666
8780
  "border-nsw-grey-400 dark:border-nsw-grey-200/15 mt-2 ml-5 flex flex-col gap-1 border-l pl-0"
8667
8781
  ),
8668
8782
  children: link.links && link.links.map((childLink) => /* @__PURE__ */ jsx(
@@ -8685,7 +8799,7 @@ var StepIndicator = React15.forwardRef(
8685
8799
  return /* @__PURE__ */ jsx("ul", { role: "list", ref, className: cn("w-full", className), ...props, children: array.map((step, stepIdx) => /* @__PURE__ */ jsx(
8686
8800
  "li",
8687
8801
  {
8688
- className: clsx12(stepIdx !== array.length - 1 ? "pb-3" : "", "relative"),
8802
+ className: clsx4(stepIdx !== array.length - 1 ? "pb-3" : "", "relative"),
8689
8803
  children: step.href === pathname && !(step.status === "completed" || step.status === "error" || step.status === "saved" || step.status === "cannot-start") ? /* @__PURE__ */ jsx(Fragment, { children: step.status === "in-progress" ? /* @__PURE__ */ jsxs(Fragment, { children: [
8690
8804
  stepIdx !== array.length - 1 ? /* @__PURE__ */ jsx(
8691
8805
  "div",
@@ -8931,7 +9045,7 @@ function StepNavigation({
8931
9045
  })),
8932
9046
  [navigation, formStatus, getStatus]
8933
9047
  );
8934
- return /* @__PURE__ */ jsx("nav", { className: clsx12("text-base lg:text-sm", className), children: /* @__PURE__ */ jsx("ul", { role: "list", className: "space-y-9", children: navigationWithStatus.map((section) => /* @__PURE__ */ jsxs("li", { children: [
9048
+ return /* @__PURE__ */ jsx("nav", { className: clsx4("text-base lg:text-sm", className), children: /* @__PURE__ */ jsx("ul", { role: "list", className: "space-y-9", children: navigationWithStatus.map((section) => /* @__PURE__ */ jsxs("li", { children: [
8935
9049
  /* @__PURE__ */ jsx("h2", { className: "font-display font-medium text-slate-900 dark:text-white", children: section.title }),
8936
9050
  /* @__PURE__ */ jsx(StepIndicator, { className: "mt-2 lg:mt-4", array: section.links })
8937
9051
  ] }, section.title)) }) });
@@ -9176,91 +9290,114 @@ function TableCaption({ className, ...props }) {
9176
9290
  }
9177
9291
  );
9178
9292
  }
9179
- function TableOfContents({ tableOfContents }) {
9180
- const [currentSection, setCurrentSection] = useState(tableOfContents[0]?.id);
9181
- const getHeadings2 = useCallback((tableOfContents2) => {
9182
- return tableOfContents2.flatMap((node) => [node.id, ...node.children.map((child) => child.id)]).map((id) => {
9183
- const el = document.getElementById(id);
9184
- if (!el) return null;
9185
- const style = window.getComputedStyle(el);
9186
- const scrollMt = parseFloat(style.scrollMarginTop);
9187
- const top = window.scrollY + el.getBoundingClientRect().top - scrollMt;
9188
- return { id, top };
9189
- }).filter((x) => x !== null);
9190
- }, []);
9293
+ function useActiveSectionObserver(tableOfContents) {
9294
+ const headerHeight = useSelectorHeight("#nsw-header");
9295
+ const mastheadHeight = useSelectorHeight("#nsw-masthead");
9296
+ const navigationHeight = useSelectorHeight("#nsw-main-navigation");
9297
+ const [currentSection, setCurrentSection] = useState(null);
9191
9298
  useEffect(() => {
9192
9299
  if (tableOfContents.length === 0) return;
9193
- const timer = setTimeout(() => {
9194
- const headings = getHeadings2(tableOfContents);
9195
- if (headings.length === 0) return;
9196
- function onScroll() {
9197
- const top = window.scrollY;
9198
- let current = headings[0].id;
9199
- for (const heading of headings) {
9200
- if (top >= heading.top - 10) {
9201
- current = heading.id;
9202
- } else {
9203
- break;
9300
+ if (!headerHeight) return;
9301
+ const totalHeight = headerHeight + mastheadHeight + navigationHeight;
9302
+ let observer = null;
9303
+ const initializeObserver = () => {
9304
+ const ids = tableOfContents.flatMap((node) => [
9305
+ node.id,
9306
+ ...node.children.map((child) => child.id)
9307
+ ]);
9308
+ ids.forEach((id) => {
9309
+ const el = document.getElementById(id);
9310
+ if (el) {
9311
+ el.style.scrollMarginTop = `${totalHeight + 16}px`;
9312
+ }
9313
+ });
9314
+ observer = new IntersectionObserver(
9315
+ (entries) => {
9316
+ const visible = entries.filter((entry) => entry.isIntersecting).sort((a, b) => a.boundingClientRect.top - b.boundingClientRect.top);
9317
+ if (visible.length > 0) {
9318
+ setCurrentSection(visible[0].target.id);
9204
9319
  }
9320
+ },
9321
+ {
9322
+ rootMargin: `-${totalHeight}px 0px -70% 0px`,
9323
+ threshold: [0, 0.25, 0.5, 0.75, 1]
9205
9324
  }
9206
- setCurrentSection(current);
9207
- }
9208
- window.addEventListener("scroll", onScroll, { passive: true });
9209
- onScroll();
9210
- return () => {
9211
- window.removeEventListener("scroll", onScroll);
9212
- };
9213
- }, 100);
9325
+ );
9326
+ ids.forEach((id) => {
9327
+ const el = document.getElementById(id);
9328
+ if (el) observer.observe(el);
9329
+ });
9330
+ };
9331
+ const raf = requestAnimationFrame(() => {
9332
+ initializeObserver();
9333
+ });
9214
9334
  return () => {
9215
- clearTimeout(timer);
9335
+ if (observer) observer.disconnect();
9336
+ cancelAnimationFrame(raf);
9337
+ };
9338
+ }, [tableOfContents, headerHeight, mastheadHeight, navigationHeight]);
9339
+ useEffect(() => {
9340
+ const handleResize = () => {
9341
+ setCurrentSection(null);
9216
9342
  };
9217
- }, [getHeadings2, tableOfContents]);
9343
+ window.addEventListener("resize", handleResize);
9344
+ return () => window.removeEventListener("resize", handleResize);
9345
+ }, []);
9346
+ return currentSection;
9347
+ }
9348
+ function TableOfContents({ tableOfContents }) {
9349
+ const currentSection = useActiveSectionObserver(tableOfContents);
9218
9350
  function isActive(section) {
9219
- if (section.id === currentSection) {
9220
- return true;
9221
- }
9222
- if (!section.children) {
9223
- return false;
9224
- }
9225
- return section.children.findIndex(isActive) > -1;
9351
+ if (section.id === currentSection) return true;
9352
+ return section.children?.some(isActive) ?? false;
9226
9353
  }
9227
- return /* @__PURE__ */ jsx("div", { className: "hidden xl:sticky xl:top-[4.75rem] xl:-mr-6 xl:block xl:h-[calc(100vh-4.75rem)] xl:flex-none xl:overflow-y-auto xl:py-16 xl:pr-6", children: /* @__PURE__ */ jsx("nav", { "aria-labelledby": "on-this-page-title", className: "w-56", children: tableOfContents.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
9354
+ return /* @__PURE__ */ jsx("nav", { "aria-labelledby": "on-this-page-title", className: "w-56", children: tableOfContents.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
9228
9355
  /* @__PURE__ */ jsx(
9229
9356
  "h2",
9230
9357
  {
9231
9358
  id: "on-this-page-title",
9232
- className: "font-display text-sm font-medium text-slate-900 dark:text-white",
9359
+ className: "text-grey-950 text-sm/6 font-semibold dark:text-white",
9233
9360
  children: "On this page"
9234
9361
  }
9235
9362
  ),
9236
- /* @__PURE__ */ jsx("ol", { role: "list", className: "mt-4 space-y-3 text-sm", children: tableOfContents.map((section) => /* @__PURE__ */ jsxs("li", { children: [
9237
- /* @__PURE__ */ jsx("h3", { children: /* @__PURE__ */ jsx(
9238
- Link10,
9239
- {
9240
- href: `#${section.id}`,
9241
- className: clsx12(
9242
- isActive(section) ? "text-primary font-semibold" : "font-normal text-slate-500 hover:text-slate-700 dark:text-slate-400 dark:hover:text-slate-300"
9363
+ /* @__PURE__ */ jsx(
9364
+ "ol",
9365
+ {
9366
+ role: "list",
9367
+ className: clsx4(
9368
+ "mt-3 flex flex-col gap-2",
9369
+ "border-grey-900/10 border-l dark:border-white/10",
9370
+ "text-grey-700 dark:text-grey-400 text-sm/6"
9371
+ ),
9372
+ children: tableOfContents.map((section) => /* @__PURE__ */ jsxs("li", { children: [
9373
+ /* @__PURE__ */ jsx(
9374
+ Link10,
9375
+ {
9376
+ href: `#${section.id}`,
9377
+ className: clsx4(
9378
+ "-ml-px inline-block border-l pl-4",
9379
+ "hover:border-primary-800 dark:hover:border-white",
9380
+ isActive(section) ? "text-primary-800 border-primary-800 font-semibold dark:border-white dark:text-white" : "border-transparent"
9381
+ ),
9382
+ children: section.title
9383
+ }
9243
9384
  ),
9244
- children: section.title
9245
- }
9246
- ) }),
9247
- section.children.length > 0 && /* @__PURE__ */ jsx(
9248
- "ol",
9249
- {
9250
- role: "list",
9251
- className: "mt-2 space-y-3 pl-5 text-slate-500 dark:text-slate-400",
9252
- children: section.children.map((subSection) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
9385
+ section.children.length > 0 && /* @__PURE__ */ jsx("ol", { role: "list", className: "mt-3 flex flex-col gap-2", children: section.children.map((subSection) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
9253
9386
  Link10,
9254
9387
  {
9255
9388
  href: `#${subSection.id}`,
9256
- className: isActive(subSection) ? "text-primary-750 font-semibold" : "hover:text-slate-600 dark:hover:text-slate-300",
9389
+ className: clsx4(
9390
+ "-ml-px inline-block border-l pl-8",
9391
+ "hover:border-primary-800 dark:hover:border-white",
9392
+ isActive(subSection) ? "text-primary-800 border-primary-800 font-semibold dark:border-white dark:text-white" : "border-transparent"
9393
+ ),
9257
9394
  children: subSection.title
9258
9395
  }
9259
- ) }, subSection.id))
9260
- }
9261
- )
9262
- ] }, section.id)) })
9263
- ] }) }) });
9396
+ ) }, subSection.id)) })
9397
+ ] }, section.id))
9398
+ }
9399
+ )
9400
+ ] }) });
9264
9401
  }
9265
9402
  function Tabs2({ className, ...props }) {
9266
9403
  return /* @__PURE__ */ jsx(
@@ -9361,7 +9498,7 @@ function Text({ className, trim = "normal", size = 2, label = false, ...props })
9361
9498
  {
9362
9499
  "data-slot": "text",
9363
9500
  ...props,
9364
- className: clsx12(className, trimClasses[trim], "text-grey-800 dark:text-grey-400", sizeClass)
9501
+ className: clsx4(className, trimClasses[trim], "text-grey-800 dark:text-grey-400", sizeClass)
9365
9502
  }
9366
9503
  );
9367
9504
  }
@@ -9370,7 +9507,7 @@ function TextLink({ className, ...props }) {
9370
9507
  Link,
9371
9508
  {
9372
9509
  ...props,
9373
- className: clsx12(
9510
+ className: clsx4(
9374
9511
  className,
9375
9512
  "text-primary-800 decoration-primary-800/50 data-hover:decoration-primary-800 underline dark:text-white dark:decoration-white/50 dark:data-hover:decoration-white"
9376
9513
  )
@@ -9378,14 +9515,14 @@ function TextLink({ className, ...props }) {
9378
9515
  );
9379
9516
  }
9380
9517
  function Strong({ className, ...props }) {
9381
- return /* @__PURE__ */ jsx("strong", { ...props, className: clsx12(className, "text-grey-950 font-medium dark:text-white") });
9518
+ return /* @__PURE__ */ jsx("strong", { ...props, className: clsx4(className, "text-grey-950 font-medium dark:text-white") });
9382
9519
  }
9383
9520
  function Code({ className, ...props }) {
9384
9521
  return /* @__PURE__ */ jsx(
9385
9522
  "code",
9386
9523
  {
9387
9524
  ...props,
9388
- className: clsx12(
9525
+ className: clsx4(
9389
9526
  className,
9390
9527
  "border-grey-950/10 bg-grey-950/[2.5%] text-grey-950 rounded-sm border px-0.5 text-sm font-medium sm:text-[0.8125rem] dark:border-white/20 dark:bg-white/5 dark:text-white"
9391
9528
  )
@@ -10014,7 +10151,7 @@ var ScrollButton = ({ icon, onClick, disabled }) => {
10014
10151
  }
10015
10152
  );
10016
10153
  };
10017
- var Legend2 = React15__default.forwardRef((props, ref) => {
10154
+ var Legend4 = React15__default.forwardRef((props, ref) => {
10018
10155
  const {
10019
10156
  categories,
10020
10157
  colors: colors2 = AvailableChartColors,
@@ -10154,7 +10291,7 @@ var Legend2 = React15__default.forwardRef((props, ref) => {
10154
10291
  ) }) : null
10155
10292
  ] });
10156
10293
  });
10157
- Legend2.displayName = "Legend";
10294
+ Legend4.displayName = "Legend";
10158
10295
  var ChartLegend2 = ({ payload }, categoryColors, setLegendHeight, activeLegend, onClick, enableLegendSlider, legendPosition, yAxisWidth) => {
10159
10296
  const legendRef = React15__default.useRef(null);
10160
10297
  useOnWindowResize(() => {
@@ -10175,7 +10312,7 @@ var ChartLegend2 = ({ payload }, categoryColors, setLegendHeight, activeLegend,
10175
10312
  { "justify-end": legendPosition === "right" }
10176
10313
  ),
10177
10314
  children: /* @__PURE__ */ jsx(
10178
- Legend2,
10315
+ Legend4,
10179
10316
  {
10180
10317
  categories: legendPayload.map((entry) => entry.value),
10181
10318
  colors: legendPayload.map((entry) => categoryColors.get(entry.value)),
@@ -10773,7 +10910,7 @@ var ScrollButton2 = ({ icon, onClick, disabled }) => {
10773
10910
  }
10774
10911
  );
10775
10912
  };
10776
- var Legend3 = React15__default.forwardRef((props, ref) => {
10913
+ var Legend5 = React15__default.forwardRef((props, ref) => {
10777
10914
  const {
10778
10915
  categories,
10779
10916
  colors: colors2 = AvailableChartColors,
@@ -10913,7 +11050,7 @@ var Legend3 = React15__default.forwardRef((props, ref) => {
10913
11050
  ) }) : null
10914
11051
  ] });
10915
11052
  });
10916
- Legend3.displayName = "Legend";
11053
+ Legend5.displayName = "Legend";
10917
11054
  var ChartLegend3 = ({ payload }, categoryColors, setLegendHeight, activeLegend, onClick, enableLegendSlider, legendPosition, yAxisWidth) => {
10918
11055
  const legendRef = React15__default.useRef(null);
10919
11056
  useOnWindowResize(() => {
@@ -10936,7 +11073,7 @@ var ChartLegend3 = ({ payload }, categoryColors, setLegendHeight, activeLegend,
10936
11073
  { "justify-end": legendPosition === "right" }
10937
11074
  ),
10938
11075
  children: /* @__PURE__ */ jsx(
10939
- Legend3,
11076
+ Legend5,
10940
11077
  {
10941
11078
  categories: filteredPayload.map((entry) => entry.value),
10942
11079
  colors: filteredPayload.map((entry) => categoryColors.get(entry.value)),
@@ -11773,7 +11910,7 @@ var ScrollButton3 = ({ icon, onClick, disabled }) => {
11773
11910
  }
11774
11911
  );
11775
11912
  };
11776
- var Legend4 = React15__default.forwardRef((props, ref) => {
11913
+ var Legend6 = React15__default.forwardRef((props, ref) => {
11777
11914
  const {
11778
11915
  categories,
11779
11916
  barCategoryColors,
@@ -11915,7 +12052,7 @@ var Legend4 = React15__default.forwardRef((props, ref) => {
11915
12052
  ) }) : null
11916
12053
  ] });
11917
12054
  });
11918
- Legend4.displayName = "Legend";
12055
+ Legend6.displayName = "Legend";
11919
12056
  var ChartLegend4 = ({ payload }, barCategoryColors, lineCategoryColors, setLegendHeight, activeLegend, onClick, enableLegendSlider, legendPosition, barYAxisWidth, lineYAxisWidth) => {
11920
12057
  const legendRef = React15__default.useRef(null);
11921
12058
  useOnWindowResize(() => {
@@ -11939,7 +12076,7 @@ var ChartLegend4 = ({ payload }, barCategoryColors, lineCategoryColors, setLegen
11939
12076
  { "justify-end": legendPosition === "right" }
11940
12077
  ),
11941
12078
  children: /* @__PURE__ */ jsx(
11942
- Legend4,
12079
+ Legend6,
11943
12080
  {
11944
12081
  categories: filteredPayload.map((entry) => ({
11945
12082
  name: entry.value,
@@ -12825,7 +12962,7 @@ var ScrollButton4 = ({ icon, onClick, disabled }) => {
12825
12962
  }
12826
12963
  );
12827
12964
  };
12828
- var Legend5 = React15__default.forwardRef((props, ref) => {
12965
+ var Legend7 = React15__default.forwardRef((props, ref) => {
12829
12966
  const {
12830
12967
  categories,
12831
12968
  colors: colors2 = AvailableChartColors,
@@ -12965,7 +13102,7 @@ var Legend5 = React15__default.forwardRef((props, ref) => {
12965
13102
  ) }) : null
12966
13103
  ] });
12967
13104
  });
12968
- Legend5.displayName = "Legend";
13105
+ Legend7.displayName = "Legend";
12969
13106
  var ChartLegend5 = ({ payload }, categoryColors, setLegendHeight, activeLegend, onClick, enableLegendSlider, legendPosition, yAxisWidth) => {
12970
13107
  const legendRef = React15__default.useRef(null);
12971
13108
  useOnWindowResize(() => {
@@ -12986,7 +13123,7 @@ var ChartLegend5 = ({ payload }, categoryColors, setLegendHeight, activeLegend,
12986
13123
  { "justify-end": legendPosition === "right" }
12987
13124
  ),
12988
13125
  children: /* @__PURE__ */ jsx(
12989
- Legend5,
13126
+ Legend7,
12990
13127
  {
12991
13128
  categories: legendPayload.map((entry) => entry.value),
12992
13129
  colors: legendPayload.map((entry) => categoryColors.get(entry.value)),
@@ -14423,6 +14560,35 @@ function InputOTPSlot({
14423
14560
  function InputOTPSeparator({ ...props }) {
14424
14561
  return /* @__PURE__ */ jsx("div", { "data-slot": "input-otp-separator", role: "separator", ...props, children: /* @__PURE__ */ jsx(MinusIcon, {}) });
14425
14562
  }
14563
+ function Prose({
14564
+ as,
14565
+ className,
14566
+ ...props
14567
+ }) {
14568
+ const Component = as ?? "div";
14569
+ return /* @__PURE__ */ jsx(
14570
+ Component,
14571
+ {
14572
+ className: clsx4(
14573
+ className,
14574
+ "prose dark:!prose-invert max-w-none",
14575
+ // headings
14576
+ "",
14577
+ // lead
14578
+ "",
14579
+ // links
14580
+ "prose-a:font-medium prose-a:text-primary-800 prose-a:dark:text-grey-100 prose-a:hover:bg-primary-800/10 prose-a:focus-visible:bg-primary-800/10",
14581
+ // link underline
14582
+ "prose-a:underline prose-a:decoration-primary-800 prose-a:underline-offset-4 prose-a:hover:decoration-2",
14583
+ // pre
14584
+ "",
14585
+ // hr
14586
+ ""
14587
+ ),
14588
+ ...props
14589
+ }
14590
+ );
14591
+ }
14426
14592
  var MOBILE_BREAKPOINT = 768;
14427
14593
  function useIsMobile() {
14428
14594
  const [isMobile, setIsMobile] = React15.useState(void 0);
@@ -14578,6 +14744,6 @@ var languages = [
14578
14744
  "html"
14579
14745
  ];
14580
14746
 
14581
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AreaChart, AspectRatio, 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, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, 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, 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, ExpandableSearch, ExpandableSearchField, 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, Label3 as Label, LineChart, Link, _List as List, Logo, MainNavigation, Masthead, MegaMenu, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, Navigation, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PreWithCopy, PrevNextLinks, PrevNextLinksPageLink, Progress, ProgressBar, ProgressCircle, 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, SidebarLink, SidebarNavigation, SiteSearch, Skeleton, Slider, Social, SparkAreaChart, SparkBarChart, SparkLineChart, Spinner, StepIndicator, StepNavigation, Strong, Switch, 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, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TopLevel, TouchTarget, Tracker, Tooltip5 as TremorTooltip, ViewToggle, 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, useDisableToc, useFormField, useIsMobile, useOnWindowResize, usePageHeadings, useToc };
14747
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AreaChart, AspectRatio, 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, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, 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, Description2 as Description, 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, 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, Label4 as Label, Legend2 as Legend, LineChart, Link, _List as List, Logo, MainNavigation, Masthead, MegaMenu, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, Navigation, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, 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, SidebarLink, SidebarNavigation, SiteSearch, Skeleton, Slider, Social, SparkAreaChart, SparkBarChart, SparkLineChart, Spinner, StepIndicator, StepNavigation, Strong, Switch, 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, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TopLevel, TouchTarget, Tracker, Tooltip5 as TremorTooltip, ViewToggle, 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, useToc };
14582
14748
  //# sourceMappingURL=index.js.map
14583
14749
  //# sourceMappingURL=index.js.map