@nswds/app 1.23.6 → 1.24.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,6 +1,6 @@
1
1
  import * as AccordionPrimitive from '@radix-ui/react-accordion';
2
2
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
- import clsx11, { clsx } from 'clsx';
3
+ import clsx12, { 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';
@@ -159,6 +159,9 @@ function kebabCase(str) {
159
159
  function camelCase(str) {
160
160
  return str.toLowerCase().replace(/[^a-zA-Z0-9]+(.)/g, (_, chr) => chr.toUpperCase());
161
161
  }
162
+ function humaniseVariant(key) {
163
+ return key.replace(/([a-z])([A-Z0-9])/g, "$1 $2").replace(/([0-9])([A-Za-z])/g, "$1 $2").replace(/_/g, " ").replace(/\bFull\s?Width\b/gi, "full width").replace(/\s+/g, " ").trim().replace(/^./, (s) => s.toUpperCase());
164
+ }
162
165
  function Accordion({ ...props }) {
163
166
  return /* @__PURE__ */ jsx(AccordionPrimitive.Root, { "data-slot": "accordion", ...props });
164
167
  }
@@ -643,7 +646,7 @@ var Button2 = forwardRef(function Button3({ className, variant, color, size, chi
643
646
  {
644
647
  "data-variant": variant,
645
648
  ...props,
646
- className: clsx11(classes, "cursor-pointer"),
649
+ className: clsx12(classes, "cursor-pointer"),
647
650
  ref,
648
651
  children: /* @__PURE__ */ jsx(TouchTarget, { children })
649
652
  }
@@ -1108,7 +1111,7 @@ var BadgeButton = forwardRef(function BadgeButton2({
1108
1111
  children,
1109
1112
  ...props
1110
1113
  }, ref) {
1111
- const classes = clsx11(className, focusOutline[color], [
1114
+ const classes = clsx12(className, focusOutline[color], [
1112
1115
  // Base
1113
1116
  "group relative inline-flex rounded-sm",
1114
1117
  // Focus
@@ -1130,7 +1133,7 @@ var BadgeButton = forwardRef(function BadgeButton2({
1130
1133
  {
1131
1134
  "data-variant": variant,
1132
1135
  ...props,
1133
- className: clsx11(classes, "cursor-pointer"),
1136
+ className: clsx12(classes, "cursor-pointer"),
1134
1137
  ref,
1135
1138
  children: /* @__PURE__ */ jsx(TouchTarget, { children: /* @__PURE__ */ jsx(Badge, { variant, color, size, children }) })
1136
1139
  }
@@ -2034,40 +2037,11 @@ function PreWithCopy(props) {
2034
2037
  onClick: handleCopy,
2035
2038
  children: [
2036
2039
  /* @__PURE__ */ jsx("span", { className: twMerge(isJustCopied && "hidden"), children: /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center", children: [
2037
- /* @__PURE__ */ jsx(
2038
- "svg",
2039
- {
2040
- className: "me-1.5 size-3",
2041
- "aria-hidden": "true",
2042
- xmlns: "http://www.w3.org/2000/svg",
2043
- fill: "currentColor",
2044
- viewBox: "0 0 18 20",
2045
- children: /* @__PURE__ */ jsx("path", { d: "M16 1h-3.278A1.992 1.992 0 0 0 11 0H7a1.993 1.993 0 0 0-1.722 1H2a2 2 0 0 0-2 2v15a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2Zm-3 14H5a1 1 0 0 1 0-2h8a1 1 0 0 1 0 2Zm0-4H5a1 1 0 0 1 0-2h8a1 1 0 1 1 0 2Zm0-5H5a1 1 0 0 1 0-2h2V2h4v2h2a1 1 0 1 1 0 2Z" })
2046
- }
2047
- ),
2040
+ /* @__PURE__ */ jsx(Icons.copy, { className: "me-1.5 size-3" }),
2048
2041
  /* @__PURE__ */ jsx("span", { className: "text-xs font-semibold", children: "Copy code" })
2049
2042
  ] }) }),
2050
2043
  /* @__PURE__ */ jsx("span", { className: twMerge(isJustCopied ? "block" : "hidden"), children: /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center", children: [
2051
- /* @__PURE__ */ jsx(
2052
- "svg",
2053
- {
2054
- className: "text-primary-700 dark:text-primary-500 me-1.5 size-3",
2055
- "aria-hidden": "true",
2056
- xmlns: "http://www.w3.org/2000/svg",
2057
- fill: "none",
2058
- viewBox: "0 0 16 12",
2059
- children: /* @__PURE__ */ jsx(
2060
- "path",
2061
- {
2062
- stroke: "currentColor",
2063
- strokeLinecap: "round",
2064
- strokeLinejoin: "round",
2065
- strokeWidth: "2",
2066
- d: "M1 5.917 5.724 10.5 15 1.5"
2067
- }
2068
- )
2069
- }
2070
- ),
2044
+ /* @__PURE__ */ jsx(Icons.check, { className: "text-primary-700 dark:text-primary-500 me-1.5 size-3" }),
2071
2045
  /* @__PURE__ */ jsx("span", { className: "text-primary-700 dark:text-primary-500 text-xs font-semibold", children: "Copied" })
2072
2046
  ] }) })
2073
2047
  ]
@@ -2114,13 +2088,26 @@ function SelectTrigger({
2114
2088
  "data-slot": "select-trigger",
2115
2089
  "data-size": size,
2116
2090
  className: cn(
2117
- "border-nsw-grey-200 data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2091
+ // Base styles
2092
+ "border-nsw-grey-600 [&_svg:not([class*='text-'])]:text-nsw-grey-600 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2093
+ // Disabled styles
2094
+ "disabled:cursor-not-allowed disabled:opacity-50",
2095
+ // aria-invalid styles
2096
+ "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
2097
+ // Focus styles
2098
+ "focus:outline-primary-650/70 focus:outline focus:outline-2 focus:outline-offset-2",
2099
+ // Placeholder styles
2100
+ "data-[placeholder]:text-nsw-grey-600",
2101
+ // Dark mode styles
2102
+ "dark:bg-input/30 dark:hover:bg-input/50",
2103
+ // Size styles
2104
+ "data-[size=default]:h-12 data-[size=sm]:h-9",
2118
2105
  className
2119
2106
  ),
2120
2107
  ...props,
2121
2108
  children: [
2122
2109
  children,
2123
- /* @__PURE__ */ jsx(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx(Icons.chevron_down, { className: "size-4 opacity-50" }) })
2110
+ /* @__PURE__ */ jsx(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx(Icons.chevron_down, { className: "size-6 opacity-80" }) })
2124
2111
  ]
2125
2112
  }
2126
2113
  );
@@ -2136,7 +2123,9 @@ function SelectContent({
2136
2123
  {
2137
2124
  "data-slot": "select-content",
2138
2125
  className: cn(
2139
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",
2126
+ // Base styles
2127
+ "text-nsw-grey-800 bg-white",
2128
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",
2140
2129
  position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
2141
2130
  className
2142
2131
  ),
@@ -2164,7 +2153,7 @@ function SelectLabel({ className, ...props }) {
2164
2153
  SelectPrimitive.Label,
2165
2154
  {
2166
2155
  "data-slot": "select-label",
2167
- className: cn("text-muted-foreground px-2 py-1.5 text-xs", className),
2156
+ className: cn("text-nsw-grey-600 px-2 py-1.5 text-xs", className),
2168
2157
  ...props
2169
2158
  }
2170
2159
  );
@@ -2179,12 +2168,12 @@ function SelectItem({
2179
2168
  {
2180
2169
  "data-slot": "select-item",
2181
2170
  className: cn(
2182
- "focus:bg-primary-800/10 focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
2171
+ "focus:bg-primary-800/10 focus:text-primary-800 [&_svg:not([class*='text-'])]:text-nsw-grey-600 relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:font-bold data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-6 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
2183
2172
  className
2184
2173
  ),
2185
2174
  ...props,
2186
2175
  children: [
2187
- /* @__PURE__ */ jsx("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Icons.check, { className: "size-4" }) }) }),
2176
+ /* @__PURE__ */ jsx("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Icons.check, { className: "size-6" }) }) }),
2188
2177
  /* @__PURE__ */ jsx(SelectPrimitive.ItemText, { children })
2189
2178
  ]
2190
2179
  }
@@ -2198,7 +2187,7 @@ function SelectSeparator({
2198
2187
  SelectPrimitive.Separator,
2199
2188
  {
2200
2189
  "data-slot": "select-separator",
2201
- className: cn("bg-border pointer-events-none -mx-1 my-1 h-px", className),
2190
+ className: cn("bg-nsw-primary-800/20 pointer-events-none -mx-1 my-1 h-px", className),
2202
2191
  ...props
2203
2192
  }
2204
2193
  );
@@ -2213,7 +2202,7 @@ function SelectScrollUpButton({
2213
2202
  "data-slot": "select-scroll-up-button",
2214
2203
  className: cn("flex cursor-default items-center justify-center py-1", className),
2215
2204
  ...props,
2216
- children: /* @__PURE__ */ jsx(Icons.chevron_up, { className: "size-4" })
2205
+ children: /* @__PURE__ */ jsx(Icons.chevron_up, { className: "size-6" })
2217
2206
  }
2218
2207
  );
2219
2208
  }
@@ -2227,7 +2216,7 @@ function SelectScrollDownButton({
2227
2216
  "data-slot": "select-scroll-down-button",
2228
2217
  className: cn("flex cursor-default items-center justify-center py-1", className),
2229
2218
  ...props,
2230
- children: /* @__PURE__ */ jsx(Icons.chevron_down, { className: "size-4" })
2219
+ children: /* @__PURE__ */ jsx(Icons.chevron_down, { className: "size-6" })
2231
2220
  }
2232
2221
  );
2233
2222
  }
@@ -5994,6 +5983,10 @@ function CodeDemo({ data, hide = {} }) {
5994
5983
  const codeItems = getCodeItems(code);
5995
5984
  const current = getCurrent(codeItems, tabIndex);
5996
5985
  const shouldExpand = getShouldExpand(current.code.trim());
5986
+ const variantLabels = React6__default.useMemo(() => {
5987
+ const explicit = data.labels ?? {};
5988
+ return Object.fromEntries(variants.map((v) => [v, explicit[v] ?? humaniseVariant(v)]));
5989
+ }, [variants, data]);
5997
5990
  return /* @__PURE__ */ jsxs("div", { className: "mt-8", children: [
5998
5991
  /* @__PURE__ */ jsx("div", { className: "border-grey-200 bg-grey-50 dark:border-grey-600 dark:bg-grey-700 w-full rounded-t-xl border p-4", children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 sm:grid-cols-3", children: [
5999
5992
  /* @__PURE__ */ jsx(EditOnGithubButton, { githubSlug: data.githubSlug }),
@@ -6053,8 +6046,8 @@ function CodeDemo({ data, hide = {} }) {
6053
6046
  /* @__PURE__ */ jsxs("div", { className: "border-grey-200 bg-grey-50 dark:border-grey-600 dark:bg-grey-700 flex w-full rounded-t-md border-b", children: [
6054
6047
  /* @__PURE__ */ jsx(Tabs, { tabIndex, items: codeItems, onSelect: setTabIndex }),
6055
6048
  variants.length > 0 && /* @__PURE__ */ jsxs(Select, { onValueChange: (value) => handleSelectVariant(value), children: [
6056
- /* @__PURE__ */ jsx(SelectTrigger, { children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Select a variant" }) }),
6057
- /* @__PURE__ */ jsx(SelectContent, { children: variants.map((v) => /* @__PURE__ */ jsx(SelectItem, { value: v, children: v }, v)) })
6049
+ /* @__PURE__ */ jsx(SelectTrigger, { size: "sm", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Select a variant" }) }),
6050
+ /* @__PURE__ */ jsx(SelectContent, { children: variants.map((v) => /* @__PURE__ */ jsx(SelectItem, { value: v, children: variantLabels[v] }, v)) })
6058
6051
  ] }),
6059
6052
  /* @__PURE__ */ jsx("div", { className: "flex justify-end", children: /* @__PURE__ */ jsx(
6060
6053
  CopyToClipboardButton,
@@ -7045,7 +7038,7 @@ function Separator4({
7045
7038
  decorative,
7046
7039
  orientation,
7047
7040
  className: cn(
7048
- "bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
7041
+ "bg-primary-800/20 shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
7049
7042
  className
7050
7043
  ),
7051
7044
  ...props
@@ -7161,7 +7154,7 @@ var toggleVariants = cva(styles3.base, {
7161
7154
  variants: {
7162
7155
  variant: {
7163
7156
  ghost: "",
7164
- outline: clsx11(styles3.outline)
7157
+ outline: clsx12(styles3.outline)
7165
7158
  },
7166
7159
  size: {
7167
7160
  default: "h-9 px-2 min-w-9",
@@ -7305,7 +7298,7 @@ function Heading({
7305
7298
  Element,
7306
7299
  {
7307
7300
  ...props,
7308
- className: clsx11(
7301
+ className: clsx12(
7309
7302
  className,
7310
7303
  trimClasses[trim],
7311
7304
  "m-0",
@@ -7320,7 +7313,7 @@ function Heading({
7320
7313
 
7321
7314
  // package.json
7322
7315
  var package_default = {
7323
- version: "1.22.0"};
7316
+ version: "1.23.4"};
7324
7317
  function Logo(props) {
7325
7318
  return /* @__PURE__ */ jsxs(Fragment, { children: [
7326
7319
  /* @__PURE__ */ jsx("span", { className: "sr-only", children: "NSW Government" }),
@@ -7439,9 +7432,11 @@ function SiteSearch({ navigation }) {
7439
7432
  function Header2({
7440
7433
  sitename,
7441
7434
  navigation,
7442
- version = false
7435
+ version = false,
7436
+ hide = {}
7443
7437
  }) {
7444
7438
  const [isScrolled, setIsScrolled] = useState(false);
7439
+ const { search = false, themeSwitcher = false, github = false } = hide;
7445
7440
  useEffect(() => {
7446
7441
  function onScroll() {
7447
7442
  setIsScrolled(window.scrollY > 0);
@@ -7455,7 +7450,7 @@ function Header2({
7455
7450
  return /* @__PURE__ */ jsxs(
7456
7451
  "header",
7457
7452
  {
7458
- className: clsx11(
7453
+ className: clsx12(
7459
7454
  "sticky top-0 z-50 flex flex-none flex-wrap items-center justify-between bg-white px-4 py-5 shadow-md shadow-slate-900/5 transition duration-500 sm:px-6 lg:px-8 dark:shadow-none",
7460
7455
  isScrolled ? "dark:bg-slate-900/95 dark:backdrop-blur-sm dark:[@supports(backdrop-filter:blur(0))]:bg-slate-900/75" : "dark:bg-transparent"
7461
7456
  ),
@@ -7469,9 +7464,9 @@ function Header2({
7469
7464
  version && /* @__PURE__ */ jsx(Badge, { variant: "soft", color: "primary", className: "ml-2", children: package_default.version })
7470
7465
  ] }),
7471
7466
  /* @__PURE__ */ jsxs("div", { className: "relative flex basis-0 justify-end gap-2 sm:gap-4 md:grow", children: [
7472
- /* @__PURE__ */ jsx(SiteSearch, { navigation }),
7473
- /* @__PURE__ */ jsx(ThemeSwitcher, {}),
7474
- /* @__PURE__ */ jsx(
7467
+ !search && /* @__PURE__ */ jsx(SiteSearch, { navigation }),
7468
+ !themeSwitcher && /* @__PURE__ */ jsx(ThemeSwitcher, {}),
7469
+ !github && /* @__PURE__ */ jsx(
7475
7470
  Button2,
7476
7471
  {
7477
7472
  variant: "surface",
@@ -7501,15 +7496,76 @@ function Input({ className, type, ...props }) {
7501
7496
  type,
7502
7497
  "data-slot": "input",
7503
7498
  className: cn(
7504
- "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-nsw-grey-200 flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
7499
+ // Base styles
7500
+ "border-nsw-grey-200 flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none md:text-sm",
7501
+ // Selection styles
7502
+ "selection:bg-primary selection:text-primary-foreground",
7503
+ // Placeholder styles
7504
+ "placeholder:text-muted-foreground",
7505
+ // File input styles
7506
+ "file:text-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium",
7507
+ // Focus styles
7505
7508
  "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
7509
+ // Disabled styles
7510
+ "disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
7511
+ // aria-invalid styles
7506
7512
  "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
7513
+ // Dark mode styles
7514
+ "dark:bg-input/30",
7507
7515
  className
7508
7516
  ),
7509
7517
  ...props
7510
7518
  }
7511
7519
  );
7512
7520
  }
7521
+ function cn2(...inputs) {
7522
+ return twMerge(clsx(inputs));
7523
+ }
7524
+ var sizeStyles = {
7525
+ sm: "text-sm",
7526
+ md: "text-base",
7527
+ lg: "text-lg"
7528
+ };
7529
+ var variantStyles = {
7530
+ disc: "list-disc pl-5",
7531
+ decimal: "list-decimal pl-5",
7532
+ icon: "list-none",
7533
+ none: "list-none"
7534
+ };
7535
+ var gapStyles = {
7536
+ sm: "space-y-1",
7537
+ md: "space-y-2",
7538
+ lg: "space-y-3"
7539
+ };
7540
+ var List2 = React6.forwardRef(
7541
+ ({ asChild, variant = "disc", size = "md", gap = "md", className, ...props }, ref) => {
7542
+ const Comp = asChild ? Slot : "ul";
7543
+ return /* @__PURE__ */ jsx(
7544
+ Comp,
7545
+ {
7546
+ ref,
7547
+ "data-slot": "list",
7548
+ className: cn2(sizeStyles[size], variantStyles[variant], gapStyles[gap], className),
7549
+ ...props
7550
+ }
7551
+ );
7552
+ }
7553
+ );
7554
+ List2.displayName = "List";
7555
+ var ListItem = React6.forwardRef(
7556
+ ({ icon, className, children, ...props }, ref) => {
7557
+ if (icon) {
7558
+ return /* @__PURE__ */ jsxs("li", { ref, "data-slot": "list-item", className: cn2("flex gap-2", className), ...props, children: [
7559
+ /* @__PURE__ */ jsx("span", { className: "mt-0.5", children: icon }),
7560
+ /* @__PURE__ */ jsx("span", { children })
7561
+ ] });
7562
+ }
7563
+ return /* @__PURE__ */ jsx("li", { ref, "data-slot": "list-item", className: cn2(className), ...props, children });
7564
+ }
7565
+ );
7566
+ ListItem.displayName = "List.Item";
7567
+ var _List = List2;
7568
+ _List.Item = ListItem;
7513
7569
  function Masthead() {
7514
7570
  return /* @__PURE__ */ jsx("div", { className: "bg-primary 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-8", 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" }) }) }) });
7515
7571
  }
@@ -7726,7 +7782,7 @@ function Navigation({
7726
7782
  navigation
7727
7783
  }) {
7728
7784
  const pathname = usePathname();
7729
- return /* @__PURE__ */ jsx("nav", { className: clsx11("text-base lg:text-sm", className), children: /* @__PURE__ */ jsx("ul", { role: "list", className: "flex flex-col gap-9", children: navigation.map((section) => /* @__PURE__ */ jsxs("li", { children: [
7785
+ 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) => /* @__PURE__ */ jsxs("li", { children: [
7730
7786
  /* @__PURE__ */ jsx("h2", { className: "font-display text-foreground font-medium dark:text-white", children: section.title }),
7731
7787
  /* @__PURE__ */ jsx(
7732
7788
  "ul",
@@ -7738,7 +7794,7 @@ function Navigation({
7738
7794
  {
7739
7795
  href: link.href,
7740
7796
  onClick: onLinkClick,
7741
- className: clsx11(
7797
+ className: clsx12(
7742
7798
  "text-foreground inline-block border-l border-transparent pl-5 text-base/8 sm:pl-4 sm:text-sm/6",
7743
7799
  "hover:border-nsw-grey-950 hover:text-nsw-gray-950 hover:font-semibold",
7744
7800
  "dark:text-nsw-grey-400",
@@ -7995,7 +8051,7 @@ function PrevNextLinksPageLink({
7995
8051
  Link3,
7996
8052
  {
7997
8053
  href,
7998
- className: clsx11(
8054
+ className: clsx12(
7999
8055
  "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",
8000
8056
  dir === "previous" && "flex-row-reverse"
8001
8057
  ),
@@ -8004,7 +8060,7 @@ function PrevNextLinksPageLink({
8004
8060
  /* @__PURE__ */ jsx(
8005
8061
  Icons.east,
8006
8062
  {
8007
- className: clsx11("size-5 flex-none fill-current", dir === "previous" && "-scale-x-100")
8063
+ className: clsx12("size-5 flex-none fill-current", dir === "previous" && "-scale-x-100")
8008
8064
  }
8009
8065
  )
8010
8066
  ]
@@ -8244,7 +8300,7 @@ function SidebarNavigation({
8244
8300
  navigation
8245
8301
  }) {
8246
8302
  const pathname = usePathname();
8247
- return /* @__PURE__ */ jsx("nav", { className: clsx11("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: [
8303
+ 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: [
8248
8304
  /* @__PURE__ */ jsx("h2", { className: "font-display text-foreground font-medium dark:text-white", children: section.title }),
8249
8305
  /* @__PURE__ */ jsx(
8250
8306
  "ul",
@@ -8269,7 +8325,7 @@ function SidebarNavigation({
8269
8325
  function SidebarLink({ link, pathname, onLinkClick, depth }) {
8270
8326
  const hasChildren = Array.isArray(link.links) && link.links.length > 0;
8271
8327
  const isActive = pathname === link.href;
8272
- const baseLinkClasses = clsx11(
8328
+ const baseLinkClasses = clsx12(
8273
8329
  "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",
8274
8330
  "hover:border-nsw-grey-950 hover:text-nsw-gray-950 hover:font-semibold hover:bg-primary-800/10",
8275
8331
  "dark:text-nsw-grey-400 dark:hover:border-nsw-grey-400 dark:hover:text-white",
@@ -8279,13 +8335,13 @@ function SidebarLink({ link, pathname, onLinkClick, depth }) {
8279
8335
  /* @__PURE__ */ jsx(CollapsibleTrigger2, { asChild: true, children: /* @__PURE__ */ jsxs(
8280
8336
  "button",
8281
8337
  {
8282
- className: clsx11(baseLinkClasses, "group flex items-center justify-between gap-1"),
8338
+ className: clsx12(baseLinkClasses, "group flex items-center justify-between gap-1"),
8283
8339
  children: [
8284
8340
  /* @__PURE__ */ jsx("span", { children: link.title }),
8285
8341
  /* @__PURE__ */ jsx(
8286
8342
  Icons.chevron_right,
8287
8343
  {
8288
- className: clsx11(
8344
+ className: clsx12(
8289
8345
  "ml-2 size-5 transition-transform duration-200",
8290
8346
  "group-data-[state=open]:rotate-90"
8291
8347
  )
@@ -8297,7 +8353,7 @@ function SidebarLink({ link, pathname, onLinkClick, depth }) {
8297
8353
  /* @__PURE__ */ jsx(CollapsibleContent2, { children: /* @__PURE__ */ jsx(
8298
8354
  "ul",
8299
8355
  {
8300
- className: clsx11(
8356
+ className: clsx12(
8301
8357
  "border-nsw-grey-400 dark:border-nsw-grey-200/15 mt-2 ml-5 flex flex-col gap-1 border-l pl-0"
8302
8358
  ),
8303
8359
  children: link.links && link.links.map((childLink) => /* @__PURE__ */ jsx(
@@ -8596,7 +8652,7 @@ function TableOfContents({ tableOfContents }) {
8596
8652
  Link3,
8597
8653
  {
8598
8654
  href: `#${section.id}`,
8599
- className: clsx11(
8655
+ className: clsx12(
8600
8656
  isActive(section) ? "text-primary font-semibold" : "font-normal text-slate-500 hover:text-slate-700 dark:text-slate-400 dark:hover:text-slate-300"
8601
8657
  ),
8602
8658
  children: section.title
@@ -8719,7 +8775,7 @@ function Text({ className, trim = "normal", size = 2, label = false, ...props })
8719
8775
  {
8720
8776
  "data-slot": "text",
8721
8777
  ...props,
8722
- className: clsx11(className, trimClasses[trim], "text-grey-800 dark:text-grey-400", sizeClass)
8778
+ className: clsx12(className, trimClasses[trim], "text-grey-800 dark:text-grey-400", sizeClass)
8723
8779
  }
8724
8780
  );
8725
8781
  }
@@ -8728,7 +8784,7 @@ function TextLink({ className, ...props }) {
8728
8784
  Link,
8729
8785
  {
8730
8786
  ...props,
8731
- className: clsx11(
8787
+ className: clsx12(
8732
8788
  className,
8733
8789
  "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"
8734
8790
  )
@@ -8736,14 +8792,14 @@ function TextLink({ className, ...props }) {
8736
8792
  );
8737
8793
  }
8738
8794
  function Strong({ className, ...props }) {
8739
- return /* @__PURE__ */ jsx("strong", { ...props, className: clsx11(className, "text-grey-950 font-medium dark:text-white") });
8795
+ return /* @__PURE__ */ jsx("strong", { ...props, className: clsx12(className, "text-grey-950 font-medium dark:text-white") });
8740
8796
  }
8741
8797
  function Code({ className, ...props }) {
8742
8798
  return /* @__PURE__ */ jsx(
8743
8799
  "code",
8744
8800
  {
8745
8801
  ...props,
8746
- className: clsx11(
8802
+ className: clsx12(
8747
8803
  className,
8748
8804
  "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"
8749
8805
  )
@@ -9016,6 +9072,6 @@ var languages = [
9016
9072
  "html"
9017
9073
  ];
9018
9074
 
9019
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, BadgeButton, BaseColorSwatches, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Breadcrumbs, Button2 as Button, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Code, CodeDemo, CodeHighlight, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, ColorCard, ColorSwatches, ColourScale, 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, 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, FormatToggle, GenerateInterpolatedColors, Header2 as Header, Heading, Icons, Input, Label3 as Label, Link, Logo, Masthead, 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, 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, Spinner, 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, TouchTarget, ViewToggle, aboriginal, addStartStopToColorArray, allPalettes, badgeVariants, brand, buttonVariants, camelCase, cn, colorDataArray, colorThemes, colors, createColorArray, createColorData, darkenColor, domToSimple, generateColorThemes, getColorValue, getHeadings, getNodeText, getSurroundingColors, interpolateColors, isLightColor, kebabCase, languages, lightenColor, navigationMenuTriggerStyle, oklchConverter, renderColorOutput, renderColorOutputToDTFM, semantic, shades, themeIndices, themeTokens, toggleVariants, truncate, useToc };
9075
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, BadgeButton, BaseColorSwatches, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Breadcrumbs, Button2 as Button, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Code, CodeDemo, CodeHighlight, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, ColorCard, ColorSwatches, ColourScale, 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, 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, FormatToggle, GenerateInterpolatedColors, Header2 as Header, Heading, Icons, Input, Label3 as Label, Link, _List as List, Logo, Masthead, 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, 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, Spinner, 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, TouchTarget, ViewToggle, aboriginal, addStartStopToColorArray, allPalettes, badgeVariants, brand, buttonVariants, camelCase, cn, colorDataArray, colorThemes, colors, createColorArray, createColorData, darkenColor, domToSimple, generateColorThemes, getColorValue, getHeadings, getNodeText, getSurroundingColors, humaniseVariant, interpolateColors, isLightColor, kebabCase, languages, lightenColor, navigationMenuTriggerStyle, oklchConverter, renderColorOutput, renderColorOutputToDTFM, semantic, shades, themeIndices, themeTokens, toggleVariants, truncate, useToc };
9020
9076
  //# sourceMappingURL=index.js.map
9021
9077
  //# sourceMappingURL=index.js.map