@syscore/ui-library 1.1.10 → 1.1.12

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.
Files changed (100) hide show
  1. package/client/App.tsx +47 -0
  2. package/client/components/icons/ConceptIcons.tsx +667 -0
  3. package/client/components/icons/NavAccount.tsx +31 -0
  4. package/client/components/icons/NavBullet.tsx +19 -0
  5. package/client/components/icons/NavLogo.tsx +36 -0
  6. package/client/components/icons/ProviderBadges.tsx +295 -0
  7. package/client/components/icons/ProviderSeals.tsx +319 -0
  8. package/client/components/icons/SealHealthSafetyRating.tsx +65 -0
  9. package/client/components/icons/SealIwbiMember.tsx +86 -0
  10. package/client/components/icons/SealWell.tsx +84 -0
  11. package/client/components/icons/SealWellCertification.tsx +138 -0
  12. package/client/components/icons/SealWellCommunity.tsx +122 -0
  13. package/client/components/icons/SealWellResidence.tsx +122 -0
  14. package/client/components/icons/SealWorksWithWell.tsx +140 -0
  15. package/client/components/icons/UtilityAccordion.tsx +21 -0
  16. package/client/components/icons/UtilityChevronDown.tsx +36 -0
  17. package/client/components/icons/UtilityClassification.tsx +45 -0
  18. package/client/components/icons/UtilityClose.tsx +41 -0
  19. package/client/components/icons/UtilityDrag.tsx +69 -0
  20. package/client/components/icons/UtilityEdit.tsx +42 -0
  21. package/client/components/icons/UtilityOptions.tsx +45 -0
  22. package/client/components/icons/UtilityPortfolio.tsx +87 -0
  23. package/client/components/icons/UtilityReset.tsx +41 -0
  24. package/client/components/icons/UtilityScoring.tsx +43 -0
  25. package/client/components/icons/UtilitySearch.tsx +38 -0
  26. package/client/components/icons/UtilitySort.tsx +52 -0
  27. package/client/components/icons/UtilityText.tsx +34 -0
  28. package/client/components/icons/WaterMarkWWWProducts.tsx +26 -0
  29. package/client/components/icons/WaterMarkWellProjects.tsx +30 -0
  30. package/client/components/icons/WatermarkMemberOrg.tsx +59 -0
  31. package/client/components/icons/WellSeal.tsx +79 -0
  32. package/client/components/icons/X.tsx +35 -0
  33. package/client/hooks/UseTabs.tsx +35 -0
  34. package/client/hooks/use-mobile.tsx +21 -0
  35. package/client/hooks/use-segmented-control.ts +42 -0
  36. package/client/hooks/use-toast.ts +188 -0
  37. package/client/pages/Index.tsx +88 -0
  38. package/client/pages/NotFound.tsx +29 -0
  39. package/client/ui/Accordion/Accordion.stories.tsx +74 -0
  40. package/client/ui/Alert/Alert.stories.tsx +82 -0
  41. package/client/ui/AlertDialog/AlertDialog.stories.tsx +106 -0
  42. package/client/ui/AspectRatio.stories.tsx +78 -0
  43. package/client/ui/Avatar/Avatar.stories.tsx +94 -0
  44. package/client/ui/Badge/Badge.stories.tsx +60 -0
  45. package/client/ui/Breadcrumb/Breadcrumb.stories.tsx +97 -0
  46. package/client/ui/Button.stories.tsx +429 -0
  47. package/client/ui/Calendar/Calendar.stories.tsx +99 -0
  48. package/client/ui/Card.stories.tsx +84 -0
  49. package/client/ui/Carousel/Carousel.stories.tsx +85 -0
  50. package/client/ui/Chart/Chart.stories.tsx +58 -0
  51. package/client/ui/Checkbox/Checkbox.stories.tsx +112 -0
  52. package/client/ui/Collapsible/Collapsible.stories.tsx +101 -0
  53. package/client/ui/Colors.stories.tsx +1041 -0
  54. package/client/ui/Command/Command.stories.tsx +97 -0
  55. package/client/ui/ContextMenu/ContextMenu.stories.tsx +74 -0
  56. package/client/ui/Dialog.stories.tsx +69 -0
  57. package/client/ui/Drawer/Drawer.stories.tsx +87 -0
  58. package/client/ui/DropdownMenu/DropdownMenu.stories.tsx +139 -0
  59. package/client/ui/Form/Form.stories.tsx +74 -0
  60. package/client/ui/HoverCard/HoverCard.stories.tsx +94 -0
  61. package/client/ui/Icons.stories.tsx +328 -0
  62. package/client/ui/Input/Input.stories.tsx +69 -0
  63. package/client/ui/InputOTP/InputOTP.stories.tsx +85 -0
  64. package/client/ui/Label.stories.tsx +66 -0
  65. package/client/ui/Menubar/Menubar.stories.tsx +88 -0
  66. package/client/ui/Navigation.stories.tsx +57 -0
  67. package/client/ui/NavigationMenu/NavigationMenu.stories.tsx +106 -0
  68. package/client/ui/Pagination/Pagination.stories.tsx +115 -0
  69. package/client/ui/Popover/Popover.stories.tsx +99 -0
  70. package/client/ui/Progress/Progress.stories.tsx +63 -0
  71. package/client/ui/RadioGroup/RadioGroup.stories.tsx +110 -0
  72. package/client/ui/Resizable/Resizable.stories.tsx +88 -0
  73. package/client/ui/ScrollArea/ScrollArea.stories.tsx +64 -0
  74. package/client/ui/SearchField.stories.tsx +63 -0
  75. package/client/ui/Select/Select.stories.tsx +111 -0
  76. package/client/ui/Separator/Separator.stories.tsx +67 -0
  77. package/client/ui/Sheet/Sheet.stories.tsx +138 -0
  78. package/client/ui/Sidebar/Sidebar.stories.tsx +92 -0
  79. package/client/ui/Skeleton/Skeleton.stories.tsx +65 -0
  80. package/client/ui/Slider/Slider.stories.tsx +101 -0
  81. package/client/ui/Sonner/Sonner.stories.tsx +48 -0
  82. package/client/ui/StrategyTable.stories.tsx +138 -0
  83. package/client/ui/Switch/Switch.stories.tsx +96 -0
  84. package/client/ui/Table/Table.stories.tsx +135 -0
  85. package/client/ui/Tabs.stories.tsx +33 -0
  86. package/client/ui/Tag.stories.tsx +190 -0
  87. package/client/ui/Textarea/Textarea.stories.tsx +56 -0
  88. package/client/ui/Toast/Toast.stories.tsx +76 -0
  89. package/client/ui/Toaster/Toaster.stories.tsx +52 -0
  90. package/client/ui/Toggle.stories.tsx +248 -0
  91. package/client/ui/ToggleGroup/ToggleGroup.stories.tsx +88 -0
  92. package/client/ui/Tooltip.stories.tsx +72 -0
  93. package/client/ui/Typography.stories.tsx +421 -0
  94. package/client/ui/WELLDashboard/WELLDashboard.stories.tsx +115 -0
  95. package/client/ui/WELLDashboard/index.tsx +317 -0
  96. package/client/vite-env.d.ts +1 -0
  97. package/dist/ui/index.cjs.js +1 -1
  98. package/dist/ui/index.d.ts +10 -1
  99. package/dist/ui/index.es.js +2233 -447
  100. package/package.json +2 -1
@@ -1,8 +1,8 @@
1
1
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
- import React__default, { useState, useEffect, useCallback } from "react";
3
+ import React__default, { useState, useEffect, useCallback, useRef } from "react";
4
4
  import * as AccordionPrimitive from "@radix-ui/react-accordion";
5
- import { ChevronDown, GripVertical, X, PanelLeft, Check, Circle, Dot, ChevronUp, ChevronRight, ChevronLeft, MoreHorizontal, XIcon, ArrowLeft, ArrowRight, Search } from "lucide-react";
5
+ import { ChevronDown, GripVertical, X, PanelLeft, Check, Circle, Dot, ChevronUp, ChevronRight, ChevronLeft, XIcon, Search, MoreHorizontal, ArrowLeft, ArrowRight, Building2 } from "lucide-react";
6
6
  import { clsx } from "clsx";
7
7
  import { twMerge } from "tailwind-merge";
8
8
  import * as AspectRatioPrimitive from "@radix-ui/react-aspect-ratio";
@@ -26,7 +26,8 @@ import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
26
26
  import * as AvatarPrimitive from "@radix-ui/react-avatar";
27
27
  import * as ProgressPrimitive from "@radix-ui/react-progress";
28
28
  import { DayPicker } from "react-day-picker";
29
- import "motion/react";
29
+ import { motion, AnimatePresence } from "motion/react";
30
+ import { Command as Command$1 } from "cmdk";
30
31
  import * as TabsPrimitive from "@radix-ui/react-tabs";
31
32
  import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
32
33
  import * as MenubarPrimitive from "@radix-ui/react-menubar";
@@ -37,7 +38,6 @@ import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
37
38
  import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
38
39
  import useEmblaCarousel from "embla-carousel-react";
39
40
  import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
40
- import { Command as Command$1 } from "cmdk";
41
41
  import * as ToastPrimitives from "@radix-ui/react-toast";
42
42
  import * as RechartsPrimitive from "recharts";
43
43
  import { useTheme } from "next-themes";
@@ -298,7 +298,7 @@ function useIsMobile() {
298
298
  }, []);
299
299
  return !!isMobile;
300
300
  }
301
- const buttonVariants = cva(
301
+ const buttonVariants$1 = cva(
302
302
  "group inline-flex items-center justify-center rounded-full transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 cursor-pointer",
303
303
  {
304
304
  variants: {
@@ -346,13 +346,13 @@ const buttonVariants = cva(
346
346
  }
347
347
  }
348
348
  );
349
- const Button = React.forwardRef(
349
+ const Button$1 = React.forwardRef(
350
350
  ({ className, variant, size, children, style, ...props }, ref) => {
351
351
  const bodyClass = size === "xlarge" ? "body-large" : size === "large" ? "body-base" : size === "utility" ? "body-small" : "";
352
352
  return /* @__PURE__ */ jsx(
353
353
  "button",
354
354
  {
355
- className: cn(buttonVariants({ variant, size }), className),
355
+ className: cn(buttonVariants$1({ variant, size }), className),
356
356
  style,
357
357
  ref,
358
358
  ...props,
@@ -361,7 +361,7 @@ const Button = React.forwardRef(
361
361
  );
362
362
  }
363
363
  );
364
- Button.displayName = "Button";
364
+ Button$1.displayName = "Button";
365
365
  const Input = React.forwardRef(
366
366
  ({ className, type, ...props }, ref) => {
367
367
  return /* @__PURE__ */ jsx(
@@ -738,7 +738,7 @@ Sidebar.displayName = "Sidebar";
738
738
  const SidebarTrigger = React.forwardRef(({ className, onClick, ...props }, ref) => {
739
739
  const { toggleSidebar } = useSidebar();
740
740
  return /* @__PURE__ */ jsxs(
741
- Button,
741
+ Button$1,
742
742
  {
743
743
  ref,
744
744
  "data-sidebar": "trigger",
@@ -1721,7 +1721,7 @@ const AlertDialogAction = React.forwardRef(({ className, ...props }, ref) => /*
1721
1721
  AlertDialogPrimitive.Action,
1722
1722
  {
1723
1723
  ref,
1724
- className: cn(buttonVariants(), className),
1724
+ className: cn(buttonVariants$1(), className),
1725
1725
  ...props
1726
1726
  }
1727
1727
  ));
@@ -1731,7 +1731,7 @@ const AlertDialogCancel = React.forwardRef(({ className, ...props }, ref) => /*
1731
1731
  {
1732
1732
  ref,
1733
1733
  className: cn(
1734
- buttonVariants({ variant: "general-secondary" }),
1734
+ buttonVariants$1({ variant: "general-secondary" }),
1735
1735
  "mt-2 sm:mt-0",
1736
1736
  className
1737
1737
  ),
@@ -1871,7 +1871,7 @@ function Calendar({
1871
1871
  caption_label: "text-sm font-medium",
1872
1872
  nav: "space-x-1 flex items-center",
1873
1873
  nav_button: cn(
1874
- buttonVariants({ variant: "general-secondary" }),
1874
+ buttonVariants$1({ variant: "general-secondary" }),
1875
1875
  "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"
1876
1876
  ),
1877
1877
  nav_button_previous: "absolute left-1",
@@ -1882,7 +1882,7 @@ function Calendar({
1882
1882
  row: "flex w-full mt-2",
1883
1883
  cell: "h-9 w-9 text-center text-sm p-0 relative [&:has([aria-selected].day-range-end)]:rounded-r-md [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected])]:bg-accent first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md focus-within:relative focus-within:z-20",
1884
1884
  day: cn(
1885
- buttonVariants({ variant: "general-tertiary" }),
1885
+ buttonVariants$1({ variant: "general-tertiary" }),
1886
1886
  "h-9 w-9 p-0 font-normal aria-selected:opacity-100"
1887
1887
  ),
1888
1888
  day_range_end: "day-range-end",
@@ -1907,139 +1907,1854 @@ function Calendar({
1907
1907
  );
1908
1908
  }
1909
1909
  Calendar.displayName = "Calendar";
1910
- const TabsRoot = React__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1911
- TabsPrimitive.Root,
1912
- {
1913
- ref,
1914
- className: cn("w-full", className),
1915
- ...props
1916
- }
1917
- ));
1918
- TabsRoot.displayName = TabsPrimitive.Root.displayName;
1919
- const TabsList = React__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1920
- TabsPrimitive.List,
1921
- {
1922
- ref,
1923
- className: cn(
1924
- "inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",
1925
- className
1926
- ),
1927
- ...props
1928
- }
1929
- ));
1930
- TabsList.displayName = TabsPrimitive.List.displayName;
1931
- const TabsTrigger = React__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1932
- TabsPrimitive.Trigger,
1933
- {
1934
- ref,
1935
- className: cn(
1936
- "inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",
1937
- className
1938
- ),
1939
- ...props
1940
- }
1941
- ));
1942
- TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
1943
- const TabsContent = React__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1944
- TabsPrimitive.Content,
1945
- {
1946
- ref,
1947
- className: cn(
1948
- "mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
1949
- className
1950
- ),
1951
- ...props
1952
- }
1953
- ));
1954
- TabsContent.displayName = TabsPrimitive.Content.displayName;
1955
- const Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx(
1956
- "nav",
1957
- {
1958
- role: "navigation",
1959
- "aria-label": "pagination",
1960
- className: cn("mx-auto flex w-full justify-center", className),
1961
- ...props
1962
- }
1963
- );
1964
- Pagination.displayName = "Pagination";
1965
- const PaginationContent = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1966
- "ul",
1967
- {
1968
- ref,
1969
- className: cn("flex flex-row items-center gap-1", className),
1970
- ...props
1971
- }
1972
- ));
1973
- PaginationContent.displayName = "PaginationContent";
1974
- const PaginationItem = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("li", { ref, className: cn("", className), ...props }));
1975
- PaginationItem.displayName = "PaginationItem";
1976
- const PaginationLink = ({
1977
- className,
1978
- isActive,
1979
- size = "icon",
1980
- ...props
1981
- }) => /* @__PURE__ */ jsx(
1982
- "a",
1983
- {
1984
- "aria-current": isActive ? "page" : void 0,
1985
- className: cn(
1986
- buttonVariants({
1987
- variant: isActive ? "general-secondary" : "general-tertiary",
1988
- size
1989
- }),
1990
- className
1991
- ),
1992
- ...props
1993
- }
1994
- );
1995
- PaginationLink.displayName = "PaginationLink";
1996
- const PaginationPrevious = ({
1997
- className,
1998
- ...props
1999
- }) => /* @__PURE__ */ jsxs(
2000
- PaginationLink,
1910
+ const UtilityClose = ({ className }) => {
1911
+ return /* @__PURE__ */ jsx(
1912
+ "div",
1913
+ {
1914
+ className: cn(
1915
+ "size-4 flex items-center justify-center text-gray-500",
1916
+ className
1917
+ ),
1918
+ children: /* @__PURE__ */ jsxs(
1919
+ "svg",
1920
+ {
1921
+ xmlns: "http://www.w3.org/2000/svg",
1922
+ width: "12",
1923
+ height: "12",
1924
+ viewBox: "0 0 12 12",
1925
+ fill: "none",
1926
+ className: cn("size-3 text-inherit"),
1927
+ children: [
1928
+ /* @__PURE__ */ jsx(
1929
+ "path",
1930
+ {
1931
+ d: "M10.8002 1.19995L1.2002 10.8",
1932
+ stroke: "currentColor",
1933
+ strokeWidth: "1.5",
1934
+ strokeLinecap: "round",
1935
+ strokeLinejoin: "round"
1936
+ }
1937
+ ),
1938
+ /* @__PURE__ */ jsx(
1939
+ "path",
1940
+ {
1941
+ d: "M1.2002 1.19995L10.8002 10.8",
1942
+ stroke: "currentColor",
1943
+ strokeWidth: "1.5",
1944
+ strokeLinecap: "round",
1945
+ strokeLinejoin: "round"
1946
+ }
1947
+ )
1948
+ ]
1949
+ }
1950
+ )
1951
+ }
1952
+ );
1953
+ };
1954
+ const NavLogo = ({ dark = false }) => {
1955
+ return /* @__PURE__ */ jsxs(
1956
+ "svg",
1957
+ {
1958
+ xmlns: "http://www.w3.org/2000/svg",
1959
+ width: "64",
1960
+ height: "16",
1961
+ viewBox: "0 0 64 16",
1962
+ fill: "none",
1963
+ className: cn(dark ? "text-gray-700" : "text-white"),
1964
+ children: [
1965
+ /* @__PURE__ */ jsx(
1966
+ "path",
1967
+ {
1968
+ d: "M53.5868 0H55.0485C55.6026 0 56.0325 0.404706 56.0325 0.969412V12.8941H63.016C63.5701 12.8941 64 13.2988 64 13.8447V15.0306C64 15.5765 63.5701 16 63.016 16H53.5868C53.0327 16 52.6028 15.5765 52.6028 15.0306V0.969412C52.6028 0.404706 53.0423 0 53.5868 0Z",
1969
+ fill: dark ? "currentColor" : "white"
1970
+ }
1971
+ ),
1972
+ /* @__PURE__ */ jsx(
1973
+ "path",
1974
+ {
1975
+ d: "M39.9826 0H41.4442C41.9983 0 42.4282 0.404706 42.4282 0.969412V12.8941H49.4118C49.9659 12.8941 50.3958 13.2988 50.3958 13.8447V15.0306C50.3958 15.5765 49.9659 16 49.4118 16H39.9826C39.4285 16 38.9986 15.5765 38.9986 15.0306V0.969412C38.9986 0.404706 39.4285 0 39.9826 0Z",
1976
+ fill: dark ? "currentColor" : "white"
1977
+ }
1978
+ ),
1979
+ /* @__PURE__ */ jsx(
1980
+ "path",
1981
+ {
1982
+ d: "M25.4615 0H35.5212C36.0944 0 36.5052 0.404706 36.5052 0.969412V2.15529C36.5052 2.70118 36.0944 3.12471 35.5212 3.12471H27.9072V6.37176H34.222C34.7761 6.37176 35.206 6.77647 35.206 7.32235V8.50824C35.206 9.07294 34.7761 9.47765 34.222 9.47765H27.9072V12.8941H35.6359C36.2091 12.8941 36.6199 13.2988 36.6199 13.8447V15.0306C36.6199 15.5765 36.2091 16 35.6359 16H25.4615C24.9074 16 24.4775 15.5765 24.4775 15.0306V0.969412C24.4775 0.404706 24.9074 0 25.4615 0Z",
1983
+ fill: dark ? "currentColor" : "white"
1984
+ }
1985
+ ),
1986
+ /* @__PURE__ */ jsx(
1987
+ "path",
1988
+ {
1989
+ d: "M2.26579 0C2.81989 0 3.37399 0.376471 3.53639 0.922353L6.56483 10.4941L9.51684 0.856471C9.66014 0.357647 10.1665 0 10.6728 0H11.6855C12.2109 0 12.7172 0.357647 12.8605 0.856471L15.8412 10.5035L18.8314 0.922353C18.9747 0.376471 19.5288 0 20.102 0H21.6401C22.1942 0 22.4808 0.404706 22.2898 0.922353L17.4653 15.1435C17.2933 15.6141 16.7965 16 16.2616 16H15.2489C14.7426 16 14.2362 15.6424 14.0929 15.1435L11.1887 5.92L8.25578 15.1435C8.11248 15.6424 7.60615 16 7.08071 16H6.08716C5.58083 16 5.0745 15.6235 4.91209 15.1435L0.0589489 0.922353C-0.13212 0.404706 0.154483 0 0.727688 0H2.26579Z",
1990
+ fill: dark ? "currentColor" : "white"
1991
+ }
1992
+ )
1993
+ ]
1994
+ }
1995
+ );
1996
+ };
1997
+ const NavAccount = ({ className = "" }) => {
1998
+ return /* @__PURE__ */ jsxs(
1999
+ "svg",
2000
+ {
2001
+ width: "32",
2002
+ height: "32",
2003
+ viewBox: "0 0 32 32",
2004
+ fill: "none",
2005
+ xmlns: "http://www.w3.org/2000/svg",
2006
+ className: cn(
2007
+ "transition-colors duration-300 text-bronze-500",
2008
+ className
2009
+ ),
2010
+ children: [
2011
+ /* @__PURE__ */ jsx(
2012
+ "path",
2013
+ {
2014
+ d: "M16.0001 14.5C18.2093 14.5 20.0001 12.7091 20.0001 10.5C20.0001 8.29086 18.2093 6.5 16.0001 6.5C13.791 6.5 12.0001 8.29086 12.0001 10.5C12.0001 12.7091 13.791 14.5 16.0001 14.5Z",
2015
+ fill: "currentColor"
2016
+ }
2017
+ ),
2018
+ /* @__PURE__ */ jsx(
2019
+ "path",
2020
+ {
2021
+ d: "M6.90759 23.3314C8.48801 19.8899 11.9649 17.5 16 17.5C20.0351 17.5 23.5121 19.89 25.0924 23.3316C22.8919 25.8841 19.6347 27.5 16.0001 27.5C12.3654 27.5 9.10818 25.8841 6.90759 23.3314Z",
2022
+ fill: "currentColor"
2023
+ }
2024
+ )
2025
+ ]
2026
+ }
2027
+ );
2028
+ };
2029
+ const NavBullet = ({ color }) => {
2030
+ return /* @__PURE__ */ jsx(
2031
+ "svg",
2032
+ {
2033
+ xmlns: "http://www.w3.org/2000/svg",
2034
+ width: "8",
2035
+ height: "9",
2036
+ viewBox: "0 0 8 9",
2037
+ fill: "none",
2038
+ children: /* @__PURE__ */ jsx("circle", { cx: "4", cy: "4.5", r: "3.5", fill: color, stroke: "#F3E7D8" })
2039
+ }
2040
+ );
2041
+ };
2042
+ const buttonVariants = cva(
2043
+ "group inline-flex items-center justify-center rounded-full transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 cursor-pointer",
2001
2044
  {
2002
- "aria-label": "Go to previous page",
2003
- size: "utility",
2004
- className: cn("gap-1 pl-2.5", className),
2005
- ...props,
2006
- children: [
2007
- /* @__PURE__ */ jsx(ChevronLeft, { className: "h-4 w-4" }),
2008
- /* @__PURE__ */ jsx("span", { children: "Previous" })
2009
- ]
2045
+ variants: {
2046
+ variant: {
2047
+ // CTA variants
2048
+ "primary-gradient": "text-white hover:opacity-90 btn-primary-gradient",
2049
+ "primary-dark": "bg-cyan-800 text-white hover:bg-cyan-900 focus-visible:ring-cyan-800",
2050
+ "secondary-light": "bg-white border border-gray-200 text-cyan-800 hover:bg-gray-50 focus-visible:ring-gray-200",
2051
+ "tertiary-light": "bg-blue-50 border border-blue-200 text-blue-600 hover:bg-blue-100 focus-visible:ring-blue-200",
2052
+ // Utility variants
2053
+ "general-primary": "bg-blue-600 text-white hover:bg-blue-700 focus-visible:ring-blue-600",
2054
+ "general-secondary": "bg-white border border-blue-200 text-blue-600 hover:bg-blue-50 focus-visible:ring-blue-200",
2055
+ "general-tertiary": "bg-white border border-gray-200 text-gray-600 hover:bg-gray-50 focus-visible:ring-gray-200",
2056
+ "tooltip-primary": "bg-cyan-300 text-white hover:bg-cyan-400 focus-visible:ring-cyan-300",
2057
+ "tooltip-secondary": "bg-gray-500 text-white hover:bg-gray-600 focus-visible:ring-gray-500"
2058
+ },
2059
+ size: {
2060
+ xlarge: "h-16 px-10",
2061
+ large: "h-12 px-8",
2062
+ utility: "h-8 px-4",
2063
+ icon: "size-[32px]"
2064
+ }
2065
+ },
2066
+ compoundVariants: [
2067
+ {
2068
+ size: "xlarge",
2069
+ className: "font-semibold"
2070
+ },
2071
+ {
2072
+ size: "large",
2073
+ className: "font-semibold"
2074
+ },
2075
+ {
2076
+ size: "utility",
2077
+ className: "font-semibold"
2078
+ },
2079
+ {
2080
+ size: "icon",
2081
+ className: "p-0 bg-white border border-gray-100 "
2082
+ }
2083
+ ],
2084
+ defaultVariants: {
2085
+ variant: "primary-dark",
2086
+ size: "large"
2087
+ }
2010
2088
  }
2011
2089
  );
2012
- PaginationPrevious.displayName = "PaginationPrevious";
2013
- const PaginationNext = ({
2014
- className,
2015
- ...props
2016
- }) => /* @__PURE__ */ jsxs(
2017
- PaginationLink,
2018
- {
2019
- "aria-label": "Go to next page",
2020
- size: "utility",
2021
- className: cn("gap-1 pr-2.5", className),
2022
- ...props,
2023
- children: [
2024
- /* @__PURE__ */ jsx("span", { children: "Next" }),
2025
- /* @__PURE__ */ jsx(ChevronRight, { className: "h-4 w-4" })
2026
- ]
2090
+ const Button = React.forwardRef(
2091
+ ({ className, variant, size, children, style, ...props }, ref) => {
2092
+ const bodyClass = size === "xlarge" ? "body-large" : size === "large" ? "body-base" : size === "utility" ? "body-small" : "";
2093
+ return /* @__PURE__ */ jsx(
2094
+ "button",
2095
+ {
2096
+ className: cn(buttonVariants({ variant, size }), className),
2097
+ style,
2098
+ ref,
2099
+ ...props,
2100
+ children: size === "icon" ? children : /* @__PURE__ */ jsx("span", { className: cn("relative z-10", bodyClass), children })
2101
+ }
2102
+ );
2027
2103
  }
2028
2104
  );
2029
- PaginationNext.displayName = "PaginationNext";
2030
- const PaginationEllipsis = ({
2031
- className,
2032
- ...props
2033
- }) => /* @__PURE__ */ jsxs(
2034
- "span",
2035
- {
2036
- "aria-hidden": true,
2037
- className: cn("flex h-9 w-9 items-center justify-center", className),
2038
- ...props,
2039
- children: [
2040
- /* @__PURE__ */ jsx(MoreHorizontal, { className: "h-4 w-4" }),
2041
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "More pages" })
2042
- ]
2105
+ Button.displayName = "Button";
2106
+ const Navigation = ({
2107
+ navItems,
2108
+ isStrategy = false,
2109
+ onLinkClick
2110
+ }) => {
2111
+ const [isOpen, setIsOpen] = React.useState(false);
2112
+ const [activeItem, setActiveItem] = React.useState(null);
2113
+ const containerRef = React.useRef(null);
2114
+ const menuRef = React.useRef(null);
2115
+ const menuItemsRef = React.useRef(null);
2116
+ const overlayRef = React.useRef(null);
2117
+ const handleMouseLeave = () => {
2118
+ setIsOpen(false);
2119
+ setActiveItem(null);
2120
+ };
2121
+ const handleNavItemMouseEnter = (index) => {
2122
+ setIsOpen(true);
2123
+ setActiveItem(index + 1);
2124
+ };
2125
+ const handleLink = (href) => {
2126
+ if (onLinkClick) {
2127
+ onLinkClick(href);
2128
+ }
2129
+ };
2130
+ const Link = ({ to, className, "aria-label": ariaLabel, children }) => /* @__PURE__ */ jsx(
2131
+ "a",
2132
+ {
2133
+ href: to,
2134
+ className,
2135
+ "aria-label": ariaLabel,
2136
+ onClick: (e) => {
2137
+ e.preventDefault();
2138
+ handleLink(to);
2139
+ },
2140
+ children
2141
+ }
2142
+ );
2143
+ return /* @__PURE__ */ jsxs(
2144
+ "nav",
2145
+ {
2146
+ ref: containerRef,
2147
+ className: cn(
2148
+ "absolute top-0 left-0 z-50 h-14 w-full",
2149
+ isStrategy && "bg-gray-50 backdrop-blur-xl backdrop-filter border-b border-gray-100"
2150
+ ),
2151
+ onMouseLeave: handleMouseLeave,
2152
+ children: [
2153
+ !isStrategy && /* @__PURE__ */ jsx(
2154
+ "div",
2155
+ {
2156
+ ref: overlayRef,
2157
+ className: cn(
2158
+ "absolute top-0 left-0 z-[-1] h-[340px] w-full duration-300 ease-in-out will-change-transform",
2159
+ isOpen ? "translate-y-0 bg-[rgba(62,64,73,0.90)] backdrop-blur-xl" : "-translate-y-[calc(100%-56px)] bg-black/16"
2160
+ )
2161
+ }
2162
+ ),
2163
+ /* @__PURE__ */ jsxs("div", { className: "container-lg flex h-14 items-center justify-between", children: [
2164
+ /* @__PURE__ */ jsxs("div", { className: "flex h-full sm:min-w-[200px] items-center", children: [
2165
+ isStrategy ? /* @__PURE__ */ jsx(Button, { className: "mr-4", size: "icon", children: /* @__PURE__ */ jsx(UtilityClose, { className: "text-gray-700 group-hover:text-white" }) }) : null,
2166
+ /* @__PURE__ */ jsx(
2167
+ Link,
2168
+ {
2169
+ to: "/",
2170
+ className: cn(
2171
+ "flex items-center ease-in-out duration-300 will-change-transform",
2172
+ {
2173
+ "translate-x-0": isStrategy
2174
+ }
2175
+ ),
2176
+ "aria-label": "Home",
2177
+ children: /* @__PURE__ */ jsx(NavLogo, { dark: isStrategy })
2178
+ }
2179
+ )
2180
+ ] }),
2181
+ !isStrategy ? /* @__PURE__ */ jsx(
2182
+ "div",
2183
+ {
2184
+ className: cn(
2185
+ "relative hidden h-full flex-1 items-center justify-center space-x-12 md:flex"
2186
+ ),
2187
+ children: /* @__PURE__ */ jsx("ul", { className: "flex h-full gap-x-12", children: navItems.map((item, index) => /* @__PURE__ */ jsxs(
2188
+ "li",
2189
+ {
2190
+ className: cn(
2191
+ "relative flex h-full flex-col items-center justify-center"
2192
+ ),
2193
+ onMouseEnter: () => handleNavItemMouseEnter(index),
2194
+ children: [
2195
+ /* @__PURE__ */ jsx("span", { className: "body-small cursor-pointer font-semibold text-white", children: item.label }),
2196
+ activeItem === index + 1 && /* @__PURE__ */ jsx(
2197
+ motion.div,
2198
+ {
2199
+ id: "underline",
2200
+ className: "absolute -bottom-[10px] z-50 h-[10px] w-[10px] rounded-full",
2201
+ layoutId: "underline",
2202
+ transition: { duration: 0.2, ease: "easeOut" },
2203
+ children: /* @__PURE__ */ jsx(
2204
+ "div",
2205
+ {
2206
+ className: "half-circle bg-gradient-to-b from-[#3EECD1] to-[#66FCD9]",
2207
+ style: {
2208
+ width: "10px",
2209
+ height: "5px",
2210
+ borderBottomLeftRadius: "100px",
2211
+ borderBottomRightRadius: "100px",
2212
+ borderBottom: "0",
2213
+ boxSizing: "border-box"
2214
+ }
2215
+ }
2216
+ )
2217
+ }
2218
+ ),
2219
+ index === 0 && /* @__PURE__ */ jsx(
2220
+ "div",
2221
+ {
2222
+ className: "absolute -bottom-[5px] z-50 h-[10px] w-[10px] rounded-full",
2223
+ style: { transition: "all 0.2s ease-out" },
2224
+ children: /* @__PURE__ */ jsx(
2225
+ "div",
2226
+ {
2227
+ className: "half-circle bg-white",
2228
+ style: {
2229
+ width: "10px",
2230
+ height: "5px",
2231
+ borderTopLeftRadius: "100px",
2232
+ borderTopRightRadius: "100px",
2233
+ borderBottom: "0",
2234
+ boxSizing: "border-box"
2235
+ }
2236
+ }
2237
+ )
2238
+ }
2239
+ )
2240
+ ]
2241
+ },
2242
+ index + 1
2243
+ )) })
2244
+ }
2245
+ ) : null,
2246
+ /* @__PURE__ */ jsx("div", { className: "flex h-full sm:min-w-[200px] items-center justify-end gap-4", children: /* @__PURE__ */ jsx(
2247
+ Link,
2248
+ {
2249
+ to: "/",
2250
+ "aria-label": "Account link",
2251
+ className: cn(
2252
+ "flex h-8 w-8 items-center justify-center rounded-full transition-colors btn-icon",
2253
+ !isOpen ? "bg-black/8" : "bg-white/12",
2254
+ isStrategy ? "bg-white border border-gray-100" : ""
2255
+ ),
2256
+ children: /* @__PURE__ */ jsx(
2257
+ NavAccount,
2258
+ {
2259
+ className: isStrategy ? "text-bronze-500" : "text-bronze-100"
2260
+ }
2261
+ )
2262
+ }
2263
+ ) })
2264
+ ] }),
2265
+ isOpen && /* @__PURE__ */ jsx("div", { className: "h-px w-full bg-[rgba(255,255,255,0.08)]" }),
2266
+ /* @__PURE__ */ jsx(
2267
+ "div",
2268
+ {
2269
+ ref: menuRef,
2270
+ className: cn(
2271
+ "relative max-h-[292px] pointer-events-none",
2272
+ isOpen ? "pointer-events-auto" : ""
2273
+ ),
2274
+ children: /* @__PURE__ */ jsx("div", { className: "absolute top-0 left-0 h-full w-full", children: /* @__PURE__ */ jsx("div", { ref: menuItemsRef, className: "relative grid", children: /* @__PURE__ */ jsx(AnimatePresence, { mode: "wait", children: /* @__PURE__ */ jsxs(
2275
+ motion.div,
2276
+ {
2277
+ initial: { y: 10, opacity: 0 },
2278
+ animate: { y: 0, opacity: 1 },
2279
+ exit: { y: -10, opacity: 0 },
2280
+ transition: { duration: 0.2 },
2281
+ children: [
2282
+ activeItem === 1 && /* @__PURE__ */ jsxs("div", { className: "col-span-full row-span-full container-lg mx-auto space-y-6 py-6 transition-opacity duration-200 ease-in-out", children: [
2283
+ /* @__PURE__ */ jsx(
2284
+ "h2",
2285
+ {
2286
+ className: "heading-xsmall py-1",
2287
+ style: {
2288
+ background: "linear-gradient(90deg, #41D5F6 0%, #3EECD1 25%, #66FCD9 50%, #66FCD9 75%, #3EECD1 100%)",
2289
+ WebkitBackgroundClip: "text",
2290
+ WebkitTextFillColor: "transparent",
2291
+ backgroundClip: "text"
2292
+ },
2293
+ children: "WELL sets the standard for people-first places"
2294
+ }
2295
+ ),
2296
+ /* @__PURE__ */ jsxs("div", { className: "flex gap-x-20", children: [
2297
+ /* @__PURE__ */ jsxs("div", { className: "space-y-5", children: [
2298
+ /* @__PURE__ */ jsx("h3", { className: "overline-medium font-semibold text-plum-400", children: "Everything" }),
2299
+ /* @__PURE__ */ jsxs("ul", { className: "space-y-5", children: [
2300
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2301
+ Link,
2302
+ {
2303
+ to: "/",
2304
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2305
+ children: "Explore WELL"
2306
+ }
2307
+ ) }),
2308
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2309
+ Link,
2310
+ {
2311
+ to: "/",
2312
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2313
+ children: "Enroll in WELL"
2314
+ }
2315
+ ) }),
2316
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2317
+ Link,
2318
+ {
2319
+ to: "/",
2320
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2321
+ children: "What's new"
2322
+ }
2323
+ ) })
2324
+ ] })
2325
+ ] }),
2326
+ /* @__PURE__ */ jsxs("div", { className: "space-y-5", children: [
2327
+ /* @__PURE__ */ jsx("h3", { className: "overline-medium font-semibold text-plum-400", children: "WHY WELL" }),
2328
+ /* @__PURE__ */ jsxs("ul", { className: "space-y-5", children: [
2329
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2330
+ Link,
2331
+ {
2332
+ to: "/",
2333
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2334
+ children: "Performance"
2335
+ }
2336
+ ) }),
2337
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2338
+ Link,
2339
+ {
2340
+ to: "/",
2341
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2342
+ children: "ROI"
2343
+ }
2344
+ ) }),
2345
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2346
+ Link,
2347
+ {
2348
+ to: "/",
2349
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2350
+ children: "Impact"
2351
+ }
2352
+ ) })
2353
+ ] })
2354
+ ] }),
2355
+ /* @__PURE__ */ jsxs("div", { className: "space-y-5", children: [
2356
+ /* @__PURE__ */ jsx("h3", { className: "overline-medium font-semibold text-plum-400", children: "Standard" }),
2357
+ /* @__PURE__ */ jsxs("ul", { className: "space-y-5", children: [
2358
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2359
+ Link,
2360
+ {
2361
+ to: "/",
2362
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2363
+ children: "Strategies"
2364
+ }
2365
+ ) }),
2366
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2367
+ Link,
2368
+ {
2369
+ to: "/",
2370
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2371
+ children: "Themes"
2372
+ }
2373
+ ) }),
2374
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2375
+ Link,
2376
+ {
2377
+ to: "/",
2378
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2379
+ children: "Milestones"
2380
+ }
2381
+ ) })
2382
+ ] })
2383
+ ] }),
2384
+ /* @__PURE__ */ jsxs("div", { className: "space-y-5", children: [
2385
+ /* @__PURE__ */ jsx("h3", { className: "overline-medium font-semibold text-plum-400", children: "Network" }),
2386
+ /* @__PURE__ */ jsxs("ul", { className: "space-y-5", children: [
2387
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2388
+ Link,
2389
+ {
2390
+ to: "/",
2391
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2392
+ children: "Organizations"
2393
+ }
2394
+ ) }),
2395
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2396
+ Link,
2397
+ {
2398
+ to: "/",
2399
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2400
+ children: "People"
2401
+ }
2402
+ ) })
2403
+ ] })
2404
+ ] }),
2405
+ /* @__PURE__ */ jsxs("div", { className: "space-y-5", children: [
2406
+ /* @__PURE__ */ jsx("h3", { className: "overline-medium font-semibold text-plum-400", children: "Solutions" }),
2407
+ /* @__PURE__ */ jsxs("ul", { className: "space-y-5", children: [
2408
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2409
+ Link,
2410
+ {
2411
+ to: "/",
2412
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2413
+ children: "Products"
2414
+ }
2415
+ ) }),
2416
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2417
+ Link,
2418
+ {
2419
+ to: "/",
2420
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2421
+ children: "Services"
2422
+ }
2423
+ ) })
2424
+ ] })
2425
+ ] }),
2426
+ /* @__PURE__ */ jsxs("div", { className: "space-y-5", children: [
2427
+ /* @__PURE__ */ jsx("h3", { className: "overline-medium font-semibold text-plum-400", children: "Places" }),
2428
+ /* @__PURE__ */ jsxs("ul", { className: "space-y-5", children: [
2429
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2430
+ Link,
2431
+ {
2432
+ to: "/",
2433
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2434
+ children: "Locations"
2435
+ }
2436
+ ) }),
2437
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2438
+ Link,
2439
+ {
2440
+ to: "/",
2441
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2442
+ children: "Portfolios"
2443
+ }
2444
+ ) })
2445
+ ] })
2446
+ ] })
2447
+ ] })
2448
+ ] }),
2449
+ activeItem === 2 && /* @__PURE__ */ jsxs("div", { className: "col-span-full row-span-full container-lg mx-auto space-y-6 py-6 transition-opacity duration-200 ease-in-out", children: [
2450
+ /* @__PURE__ */ jsx(
2451
+ "h2",
2452
+ {
2453
+ className: "heading-xsmall py-1",
2454
+ style: {
2455
+ background: "linear-gradient(99deg, #41D5F6 3.39%, #3EECD1 57.86%, #66FCD9 112.32%)",
2456
+ backgroundClip: "text",
2457
+ WebkitBackgroundClip: "text",
2458
+ WebkitTextFillColor: "transparent"
2459
+ },
2460
+ children: "WELL works everywhere, at any scale"
2461
+ }
2462
+ ),
2463
+ /* @__PURE__ */ jsxs("div", { className: "flex gap-x-20", children: [
2464
+ /* @__PURE__ */ jsxs("div", { className: "space-y-5", children: [
2465
+ /* @__PURE__ */ jsx("h3", { className: "overline-medium font-semibold text-plum-400", children: "SUBSCRIBE" }),
2466
+ /* @__PURE__ */ jsxs("ul", { className: "space-y-4", children: [
2467
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2468
+ Link,
2469
+ {
2470
+ to: "/",
2471
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2472
+ children: "WELL at scale"
2473
+ }
2474
+ ) }),
2475
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 pl-[6px]", children: [
2476
+ /* @__PURE__ */ jsx("div", { className: "h-1 w-1 rounded-full bg-gray-500" }),
2477
+ /* @__PURE__ */ jsx(Link, { to: "/", children: /* @__PURE__ */ jsx("span", { className: "body-small font-medium text-gray-100", children: "Pricing" }) })
2478
+ ] }) }),
2479
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 pl-[6px]", children: [
2480
+ /* @__PURE__ */ jsx("div", { className: "h-1 w-1 rounded-full bg-gray-500" }),
2481
+ /* @__PURE__ */ jsx(Link, { to: "/", children: /* @__PURE__ */ jsx("span", { className: "body-small font-medium text-gray-100", children: "Leaderboard" }) })
2482
+ ] }) })
2483
+ ] })
2484
+ ] }),
2485
+ /* @__PURE__ */ jsxs("div", { className: "space-y-5", children: [
2486
+ /* @__PURE__ */ jsx("h3", { className: "overline-medium font-semibold text-plum-400", children: "Certify" }),
2487
+ /* @__PURE__ */ jsxs("ul", { className: "space-y-4", children: [
2488
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2489
+ Link,
2490
+ {
2491
+ to: "/",
2492
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2493
+ children: "WELL Certification"
2494
+ }
2495
+ ) }),
2496
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
2497
+ Link,
2498
+ {
2499
+ to: "/",
2500
+ className: "text-gray-100 hover:text-white flex items-center justify-start body-base font-medium",
2501
+ children: [
2502
+ "WELL Residence",
2503
+ /* @__PURE__ */ jsx("span", { className: "overline-small text-[#F0AA99] ml-1", children: "PILOT" })
2504
+ ]
2505
+ }
2506
+ ) })
2507
+ ] })
2508
+ ] }),
2509
+ /* @__PURE__ */ jsxs("div", { className: "space-y-5", children: [
2510
+ /* @__PURE__ */ jsx("h3", { className: "overline-medium font-semibold text-plum-400", children: "Get rated" }),
2511
+ /* @__PURE__ */ jsxs("ul", { className: "space-y-4", children: [
2512
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2513
+ Link,
2514
+ {
2515
+ to: "/",
2516
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2517
+ children: "WELL Ratings"
2518
+ }
2519
+ ) }),
2520
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 pl-[6px]", children: [
2521
+ /* @__PURE__ */ jsx(NavBullet, { color: "#F3E7D8" }),
2522
+ /* @__PURE__ */ jsx(
2523
+ Link,
2524
+ {
2525
+ to: "/",
2526
+ className: "body-small font-medium text-gray-100",
2527
+ children: "Health-Safety Rating"
2528
+ }
2529
+ )
2530
+ ] }) }),
2531
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 pl-[6px]", children: [
2532
+ /* @__PURE__ */ jsx(NavBullet, { color: "#0F748A" }),
2533
+ /* @__PURE__ */ jsx(
2534
+ Link,
2535
+ {
2536
+ to: "/",
2537
+ className: "body-small font-medium text-gray-100",
2538
+ children: "Performance Rating"
2539
+ }
2540
+ )
2541
+ ] }) }),
2542
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 pl-[6px]", children: [
2543
+ /* @__PURE__ */ jsx(NavBullet, { color: "#17AA8D" }),
2544
+ /* @__PURE__ */ jsx(
2545
+ Link,
2546
+ {
2547
+ to: "/",
2548
+ className: "body-small font-medium text-gray-100",
2549
+ children: "Equity Rating"
2550
+ }
2551
+ )
2552
+ ] }) })
2553
+ ] })
2554
+ ] })
2555
+ ] })
2556
+ ] }),
2557
+ activeItem === 3 && /* @__PURE__ */ jsxs("div", { className: "col-span-full row-span-full container-lg mx-auto space-y-6 py-6 transition-opacity duration-200 ease-in-out", children: [
2558
+ /* @__PURE__ */ jsx(
2559
+ "h2",
2560
+ {
2561
+ className: "heading-xsmall py-1",
2562
+ style: {
2563
+ background: "linear-gradient(90deg, #41D5F6 0%, #3EECD1 25%, #66FCD9 50%, #66FCD9 75%, #3EECD1 100%)",
2564
+ WebkitBackgroundClip: "text",
2565
+ WebkitTextFillColor: "transparent"
2566
+ },
2567
+ children: "Our network drives our movement"
2568
+ }
2569
+ ),
2570
+ /* @__PURE__ */ jsxs("div", { className: "flex gap-x-20", children: [
2571
+ /* @__PURE__ */ jsxs("div", { className: "space-y-5", children: [
2572
+ /* @__PURE__ */ jsx("h3", { className: "overline-medium font-semibold text-plum-400", children: "JOIN" }),
2573
+ /* @__PURE__ */ jsxs("ul", { className: "space-y-4", children: [
2574
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2575
+ Link,
2576
+ {
2577
+ to: "/",
2578
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2579
+ children: "Membership"
2580
+ }
2581
+ ) }),
2582
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2583
+ Link,
2584
+ {
2585
+ to: "/",
2586
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2587
+ children: "Works with WELL"
2588
+ }
2589
+ ) }),
2590
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 pl-[6px]", children: [
2591
+ /* @__PURE__ */ jsx(NavBullet, { color: "#2E74AD" }),
2592
+ /* @__PURE__ */ jsx(
2593
+ Link,
2594
+ {
2595
+ to: "/",
2596
+ className: "body-small font-medium text-gray-100",
2597
+ children: "Enterprise Provider"
2598
+ }
2599
+ )
2600
+ ] }) }),
2601
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 pl-[6px]", children: [
2602
+ /* @__PURE__ */ jsx(NavBullet, { color: "#149EBD" }),
2603
+ /* @__PURE__ */ jsx(
2604
+ Link,
2605
+ {
2606
+ to: "/",
2607
+ className: "body-small font-medium text-gray-100",
2608
+ children: "Product Provider"
2609
+ }
2610
+ )
2611
+ ] }) }),
2612
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 pl-[6px]", children: [
2613
+ /* @__PURE__ */ jsx(NavBullet, { color: "#ED896F" }),
2614
+ /* @__PURE__ */ jsx(
2615
+ Link,
2616
+ {
2617
+ to: "/",
2618
+ className: "body-small font-medium text-gray-100",
2619
+ children: "Performance Testing Provider"
2620
+ }
2621
+ )
2622
+ ] }) })
2623
+ ] })
2624
+ ] }),
2625
+ /* @__PURE__ */ jsxs("div", { className: "space-y-5", children: [
2626
+ /* @__PURE__ */ jsx("h3", { className: "overline-medium font-semibold text-plum-400", children: "EARN" }),
2627
+ /* @__PURE__ */ jsxs("ul", { className: "space-y-4", children: [
2628
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2629
+ Link,
2630
+ {
2631
+ to: "/",
2632
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2633
+ children: "WELL AP"
2634
+ }
2635
+ ) }),
2636
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2637
+ Link,
2638
+ {
2639
+ to: "/",
2640
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2641
+ children: "WELL Faculty"
2642
+ }
2643
+ ) })
2644
+ ] })
2645
+ ] })
2646
+ ] })
2647
+ ] }),
2648
+ activeItem === 4 && /* @__PURE__ */ jsxs("div", { className: "col-span-full row-span-full container-lg mx-auto space-y-6 py-6 transition-opacity duration-200 ease-in-out", children: [
2649
+ /* @__PURE__ */ jsx(
2650
+ "h2",
2651
+ {
2652
+ className: "heading-xsmall py-1",
2653
+ style: {
2654
+ background: "linear-gradient(90deg, #41D5F6 0%, #3EECD1 25%, #66FCD9 50%, #66FCD9 75%, #3EECD1 100%)",
2655
+ WebkitBackgroundClip: "text",
2656
+ WebkitTextFillColor: "transparent"
2657
+ },
2658
+ children: "Learn from the experts on health"
2659
+ }
2660
+ ),
2661
+ /* @__PURE__ */ jsxs("div", { className: "flex gap-x-20", children: [
2662
+ /* @__PURE__ */ jsxs("div", { className: "space-y-5", children: [
2663
+ /* @__PURE__ */ jsx("h3", { className: "overline-medium font-semibold text-plum-400", children: "LEARN" }),
2664
+ /* @__PURE__ */ jsxs("ul", { className: "space-y-4", children: [
2665
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2666
+ Link,
2667
+ {
2668
+ to: "/",
2669
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2670
+ children: "WELL Forum"
2671
+ }
2672
+ ) }),
2673
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 pl-[6px]", children: [
2674
+ /* @__PURE__ */ jsx("div", { className: "h-1 w-1 rounded-full bg-gray-500" }),
2675
+ /* @__PURE__ */ jsx(
2676
+ Link,
2677
+ {
2678
+ to: "/",
2679
+ className: "body-small font-medium text-gray-100",
2680
+ children: "Threads"
2681
+ }
2682
+ )
2683
+ ] }) }),
2684
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 pl-[6px]", children: [
2685
+ /* @__PURE__ */ jsx("div", { className: "h-1 w-1 rounded-full bg-gray-500" }),
2686
+ /* @__PURE__ */ jsx(
2687
+ Link,
2688
+ {
2689
+ to: "/",
2690
+ className: "body-small font-medium text-gray-100",
2691
+ children: "Webcasts"
2692
+ }
2693
+ )
2694
+ ] }) }),
2695
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 pl-[6px]", children: [
2696
+ /* @__PURE__ */ jsx("div", { className: "h-1 w-1 rounded-full bg-gray-500" }),
2697
+ /* @__PURE__ */ jsx(
2698
+ Link,
2699
+ {
2700
+ to: "/",
2701
+ className: "body-small font-medium text-gray-100",
2702
+ children: "Trainings"
2703
+ }
2704
+ )
2705
+ ] }) })
2706
+ ] })
2707
+ ] }),
2708
+ /* @__PURE__ */ jsxs("div", { className: "space-y-5", children: [
2709
+ /* @__PURE__ */ jsx("h3", { className: "overline-medium font-semibold text-plum-400", children: "ATTEND" }),
2710
+ /* @__PURE__ */ jsxs("ul", { className: "space-y-4", children: [
2711
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2712
+ Link,
2713
+ {
2714
+ to: "/",
2715
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2716
+ children: "WELL 2025"
2717
+ }
2718
+ ) }),
2719
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 pl-[6px]", children: [
2720
+ /* @__PURE__ */ jsx("div", { className: "h-1 w-1 rounded-full bg-gray-500" }),
2721
+ /* @__PURE__ */ jsx(
2722
+ Link,
2723
+ {
2724
+ to: "/",
2725
+ className: "body-small font-medium text-gray-100",
2726
+ children: "Flagship events"
2727
+ }
2728
+ )
2729
+ ] }) }),
2730
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 pl-[6px]", children: [
2731
+ /* @__PURE__ */ jsx("div", { className: "h-1 w-1 rounded-full bg-gray-500" }),
2732
+ /* @__PURE__ */ jsx(
2733
+ Link,
2734
+ {
2735
+ to: "/",
2736
+ className: "body-small font-medium text-gray-100",
2737
+ children: "Thematic summits"
2738
+ }
2739
+ )
2740
+ ] }) }),
2741
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 pl-[6px]", children: [
2742
+ /* @__PURE__ */ jsx("div", { className: "h-1 w-1 rounded-full bg-gray-500" }),
2743
+ /* @__PURE__ */ jsx(
2744
+ Link,
2745
+ {
2746
+ to: "/",
2747
+ className: "body-small font-medium text-gray-100",
2748
+ children: "Regional summits"
2749
+ }
2750
+ )
2751
+ ] }) })
2752
+ ] })
2753
+ ] }),
2754
+ /* @__PURE__ */ jsxs("div", { className: "space-y-5", children: [
2755
+ /* @__PURE__ */ jsx("h3", { className: "overline-medium font-semibold text-plum-400", children: "GUIDANCE" }),
2756
+ /* @__PURE__ */ jsxs("ul", { className: "space-y-4", children: [
2757
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2758
+ Link,
2759
+ {
2760
+ to: "/",
2761
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2762
+ children: "Knowledge base"
2763
+ }
2764
+ ) }),
2765
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 pl-[6px]", children: [
2766
+ /* @__PURE__ */ jsx("div", { className: "h-1 w-1 rounded-full bg-gray-500" }),
2767
+ /* @__PURE__ */ jsx(
2768
+ Link,
2769
+ {
2770
+ to: "/",
2771
+ className: "body-small font-medium text-gray-100",
2772
+ children: "Tutorials"
2773
+ }
2774
+ )
2775
+ ] }) }),
2776
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 pl-[6px]", children: [
2777
+ /* @__PURE__ */ jsx("div", { className: "h-1 w-1 rounded-full bg-gray-500" }),
2778
+ /* @__PURE__ */ jsx(
2779
+ Link,
2780
+ {
2781
+ to: "/",
2782
+ className: "body-small font-medium text-gray-100",
2783
+ children: "Guides"
2784
+ }
2785
+ )
2786
+ ] }) }),
2787
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 pl-[6px]", children: [
2788
+ /* @__PURE__ */ jsx("div", { className: "h-1 w-1 rounded-full bg-gray-500" }),
2789
+ /* @__PURE__ */ jsx(
2790
+ Link,
2791
+ {
2792
+ to: "/",
2793
+ className: "body-small font-medium text-gray-100",
2794
+ children: "FAQs"
2795
+ }
2796
+ )
2797
+ ] }) })
2798
+ ] })
2799
+ ] }),
2800
+ /* @__PURE__ */ jsxs("div", { className: "space-y-5", children: [
2801
+ /* @__PURE__ */ jsx("h3", { className: "overline-medium font-semibold text-plum-400", children: "Resources" }),
2802
+ /* @__PURE__ */ jsxs("ul", { className: "space-y-4", children: [
2803
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2804
+ Link,
2805
+ {
2806
+ to: "/",
2807
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2808
+ children: "Resource library"
2809
+ }
2810
+ ) }),
2811
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 pl-[6px]", children: [
2812
+ /* @__PURE__ */ jsx("div", { className: "h-1 w-1 rounded-full bg-gray-500" }),
2813
+ /* @__PURE__ */ jsx(
2814
+ Link,
2815
+ {
2816
+ to: "/",
2817
+ className: "body-small font-medium text-gray-100",
2818
+ children: "Technical tools"
2819
+ }
2820
+ )
2821
+ ] }) }),
2822
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 pl-[6px]", children: [
2823
+ /* @__PURE__ */ jsx("div", { className: "h-1 w-1 rounded-full bg-gray-500" }),
2824
+ /* @__PURE__ */ jsx(
2825
+ Link,
2826
+ {
2827
+ to: "/",
2828
+ className: "body-small font-medium text-gray-100",
2829
+ children: "Sales tools"
2830
+ }
2831
+ )
2832
+ ] }) }),
2833
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 pl-[6px]", children: [
2834
+ /* @__PURE__ */ jsx("div", { className: "h-1 w-1 rounded-full bg-gray-500" }),
2835
+ /* @__PURE__ */ jsx(
2836
+ Link,
2837
+ {
2838
+ to: "/",
2839
+ className: "body-small font-medium text-gray-100",
2840
+ children: "Media"
2841
+ }
2842
+ )
2843
+ ] }) })
2844
+ ] })
2845
+ ] })
2846
+ ] })
2847
+ ] }),
2848
+ activeItem === 5 && /* @__PURE__ */ jsxs("div", { className: "col-span-full row-span-full container-lg mx-auto space-y-6 py-6 transition-opacity duration-200 ease-in-out", children: [
2849
+ /* @__PURE__ */ jsx(
2850
+ "h2",
2851
+ {
2852
+ className: "heading-xsmall py-1",
2853
+ style: {
2854
+ background: "linear-gradient(90deg, #41D5F6 0%, #3EECD1 25%, #66FCD9 50%, #66FCD9 75%, #3EECD1 100%)",
2855
+ WebkitBackgroundClip: "text",
2856
+ WebkitTextFillColor: "transparent"
2857
+ },
2858
+ children: "The International WELL Building Institute (IWBI)"
2859
+ }
2860
+ ),
2861
+ /* @__PURE__ */ jsxs("div", { className: "flex gap-x-20", children: [
2862
+ /* @__PURE__ */ jsxs("div", { className: "space-y-5", children: [
2863
+ /* @__PURE__ */ jsx("h3", { className: "overline-medium font-semibold text-plum-400", children: "About" }),
2864
+ /* @__PURE__ */ jsxs("ul", { className: "space-y-4", children: [
2865
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2866
+ Link,
2867
+ {
2868
+ to: "/",
2869
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2870
+ children: "IWBI"
2871
+ }
2872
+ ) }),
2873
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2874
+ Link,
2875
+ {
2876
+ to: "/",
2877
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2878
+ children: "Research"
2879
+ }
2880
+ ) }),
2881
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2882
+ Link,
2883
+ {
2884
+ to: "/",
2885
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2886
+ children: "Advocacy"
2887
+ }
2888
+ ) })
2889
+ ] })
2890
+ ] }),
2891
+ /* @__PURE__ */ jsxs("div", { className: "space-y-5", children: [
2892
+ /* @__PURE__ */ jsx("h3", { className: "overline-medium font-semibold text-plum-400", children: "Meet" }),
2893
+ /* @__PURE__ */ jsxs("ul", { className: "space-y-4", children: [
2894
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2895
+ Link,
2896
+ {
2897
+ to: "/",
2898
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2899
+ children: "Team"
2900
+ }
2901
+ ) }),
2902
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2903
+ Link,
2904
+ {
2905
+ to: "/",
2906
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2907
+ children: "Advisories"
2908
+ }
2909
+ ) }),
2910
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2911
+ Link,
2912
+ {
2913
+ to: "/",
2914
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2915
+ children: "Governance Council"
2916
+ }
2917
+ ) })
2918
+ ] })
2919
+ ] }),
2920
+ /* @__PURE__ */ jsxs("div", { className: "space-y-5", children: [
2921
+ /* @__PURE__ */ jsx("h3", { className: "overline-medium font-semibold text-plum-400", children: "Explore" }),
2922
+ /* @__PURE__ */ jsxs("ul", { className: "space-y-4", children: [
2923
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2924
+ Link,
2925
+ {
2926
+ to: "/",
2927
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2928
+ children: "Newsroom"
2929
+ }
2930
+ ) }),
2931
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2932
+ Link,
2933
+ {
2934
+ to: "/",
2935
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2936
+ children: "Jobs"
2937
+ }
2938
+ ) }),
2939
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2940
+ Link,
2941
+ {
2942
+ to: "/",
2943
+ className: "body-base block font-medium text-gray-100 hover:text-white",
2944
+ children: "Blog"
2945
+ }
2946
+ ) })
2947
+ ] })
2948
+ ] })
2949
+ ] })
2950
+ ] })
2951
+ ]
2952
+ },
2953
+ activeItem ? activeItem + 1 : "empty"
2954
+ ) }) }) })
2955
+ }
2956
+ )
2957
+ ]
2958
+ }
2959
+ );
2960
+ };
2961
+ function Dialog({
2962
+ ...props
2963
+ }) {
2964
+ return /* @__PURE__ */ jsx(SheetPrimitive.Root, { "data-slot": "dialog", ...props });
2965
+ }
2966
+ function DialogTrigger({
2967
+ ...props
2968
+ }) {
2969
+ return /* @__PURE__ */ jsx(SheetPrimitive.Trigger, { "data-slot": "dialog-trigger", ...props });
2970
+ }
2971
+ function DialogPortal({
2972
+ ...props
2973
+ }) {
2974
+ return /* @__PURE__ */ jsx(SheetPrimitive.Portal, { "data-slot": "dialog-portal", ...props });
2975
+ }
2976
+ function DialogClose({
2977
+ ...props
2978
+ }) {
2979
+ return /* @__PURE__ */ jsx(SheetPrimitive.Close, { "data-slot": "dialog-close", ...props });
2980
+ }
2981
+ function DialogOverlay({
2982
+ className,
2983
+ ...props
2984
+ }) {
2985
+ return /* @__PURE__ */ jsx(
2986
+ SheetPrimitive.Overlay,
2987
+ {
2988
+ "data-slot": "dialog-overlay",
2989
+ className: cn(
2990
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
2991
+ className
2992
+ ),
2993
+ ...props
2994
+ }
2995
+ );
2996
+ }
2997
+ function DialogContent({
2998
+ className,
2999
+ children,
3000
+ showCloseButton = true,
3001
+ ...props
3002
+ }) {
3003
+ return /* @__PURE__ */ jsxs(DialogPortal, { "data-slot": "dialog-portal", children: [
3004
+ /* @__PURE__ */ jsx(DialogOverlay, {}),
3005
+ /* @__PURE__ */ jsxs(
3006
+ SheetPrimitive.Content,
3007
+ {
3008
+ "data-slot": "dialog-content",
3009
+ className: cn(
3010
+ "DialogContent overflow-hidden rounded-[40px] gap-4 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 fixed top-[30%] left-[50%] z-50 grid max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] border-12 border-[rgba(255,255,255,0.20)] duration-200 sm:max-w-lg",
3011
+ className
3012
+ ),
3013
+ ...props,
3014
+ children: [
3015
+ /* @__PURE__ */ jsx("div", { className: "p-6 bg-gray-50", children }),
3016
+ showCloseButton && /* @__PURE__ */ jsxs(
3017
+ SheetPrimitive.Close,
3018
+ {
3019
+ "data-slot": "dialog-close",
3020
+ className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
3021
+ children: [
3022
+ /* @__PURE__ */ jsx(XIcon, {}),
3023
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
3024
+ ]
3025
+ }
3026
+ )
3027
+ ]
3028
+ }
3029
+ )
3030
+ ] });
3031
+ }
3032
+ function DialogHeader({ className, ...props }) {
3033
+ return /* @__PURE__ */ jsx(
3034
+ "div",
3035
+ {
3036
+ "data-slot": "dialog-header",
3037
+ className: cn("flex flex-col gap-2 text-center sm:text-left", className),
3038
+ ...props
3039
+ }
3040
+ );
3041
+ }
3042
+ function DialogFooter({ className, ...props }) {
3043
+ return /* @__PURE__ */ jsx(
3044
+ "div",
3045
+ {
3046
+ "data-slot": "dialog-footer",
3047
+ className: cn(
3048
+ "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
3049
+ className
3050
+ ),
3051
+ ...props
3052
+ }
3053
+ );
3054
+ }
3055
+ function DialogTitle({
3056
+ className,
3057
+ ...props
3058
+ }) {
3059
+ return /* @__PURE__ */ jsx(
3060
+ SheetPrimitive.Title,
3061
+ {
3062
+ "data-slot": "dialog-title",
3063
+ className: cn("heading-xxsmall ", className),
3064
+ ...props
3065
+ }
3066
+ );
3067
+ }
3068
+ function DialogDescription({
3069
+ className,
3070
+ ...props
3071
+ }) {
3072
+ return /* @__PURE__ */ jsx(
3073
+ SheetPrimitive.Description,
3074
+ {
3075
+ "data-slot": "dialog-description",
3076
+ className: cn("text-muted-foreground text-sm", className),
3077
+ ...props
3078
+ }
3079
+ );
3080
+ }
3081
+ const Command = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3082
+ Command$1,
3083
+ {
3084
+ ref,
3085
+ className: cn("flex h-full w-full flex-col overflow-hidden", className),
3086
+ ...props
3087
+ }
3088
+ ));
3089
+ Command.displayName = Command$1.displayName;
3090
+ const CommandDialog = ({ children, ...props }) => {
3091
+ return /* @__PURE__ */ jsx(Dialog, { ...props, children: /* @__PURE__ */ jsx(DialogContent, { className: "overflow-hidden p-0 shadow-lg", children: /* @__PURE__ */ jsx(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children }) }) });
3092
+ };
3093
+ const CommandInput = React.forwardRef(({ className, icon: Icon = Search, ...props }, ref) => /* @__PURE__ */ jsxs(
3094
+ "div",
3095
+ {
3096
+ className: cn(
3097
+ "group relative flex h-14 w-full sm:min-w-[344px] items-center gap-4 rounded-lg border border-gray-200 bg-white p-4 focus:ring-0 focus:outline-none",
3098
+ className
3099
+ ),
3100
+ "cmdk-input-wrapper": "",
3101
+ children: [
3102
+ /* @__PURE__ */ jsx(Icon, { className: " h-4 w-4 shrink-0 group-focus-within:-translate-x-4 group-focus-within:opacity-0 ease-in-out duration-200" }),
3103
+ /* @__PURE__ */ jsx(
3104
+ Command$1.Input,
3105
+ {
3106
+ ref,
3107
+ className: cn(
3108
+ "text-base w-full ring-0 outline-none group-focus-within:-translate-x-8 ease-in-out duration-200",
3109
+ className
3110
+ ),
3111
+ ...props
3112
+ }
3113
+ )
3114
+ ]
3115
+ }
3116
+ ));
3117
+ CommandInput.displayName = Command$1.Input.displayName;
3118
+ const CommandList = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3119
+ Command$1.List,
3120
+ {
3121
+ ref,
3122
+ className: cn(
3123
+ "max-h-[300px] overflow-y-auto overflow-x-hidden bg-gray-700 rounded-b-lg",
3124
+ className
3125
+ ),
3126
+ ...props
3127
+ }
3128
+ ));
3129
+ CommandList.displayName = Command$1.List.displayName;
3130
+ const CommandEmpty = React.forwardRef((props, ref) => /* @__PURE__ */ jsx(
3131
+ Command$1.Empty,
3132
+ {
3133
+ ref,
3134
+ className: "py-6 text-center text-sm",
3135
+ ...props
3136
+ }
3137
+ ));
3138
+ CommandEmpty.displayName = Command$1.Empty.displayName;
3139
+ const CommandGroup = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3140
+ Command$1.Group,
3141
+ {
3142
+ ref,
3143
+ className: cn(
3144
+ "group overflow-hidden [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground ",
3145
+ className
3146
+ ),
3147
+ ...props
3148
+ }
3149
+ ));
3150
+ CommandGroup.displayName = Command$1.Group.displayName;
3151
+ const CommandSeparator = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3152
+ Command$1.Separator,
3153
+ {
3154
+ ref,
3155
+ className: cn("-mx-1 h-px bg-border", className),
3156
+ ...props
3157
+ }
3158
+ ));
3159
+ CommandSeparator.displayName = Command$1.Separator.displayName;
3160
+ const CommandItem = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3161
+ Command$1.Item,
3162
+ {
3163
+ ref,
3164
+ className: cn(
3165
+ "relative flex w-full items-center gap-2 cursor-default select-none p-4 text-sm outline-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-gray-700 hover:bg-[rgba(0,0,0,0.2)] text-gray-200",
3166
+ className
3167
+ ),
3168
+ ...props
3169
+ }
3170
+ ));
3171
+ CommandItem.displayName = Command$1.Item.displayName;
3172
+ const CommandShortcut = ({
3173
+ className,
3174
+ ...props
3175
+ }) => {
3176
+ return /* @__PURE__ */ jsx(
3177
+ "span",
3178
+ {
3179
+ className: cn(
3180
+ "ml-auto text-xs tracking-widest text-muted-foreground",
3181
+ className
3182
+ ),
3183
+ ...props
3184
+ }
3185
+ );
3186
+ };
3187
+ CommandShortcut.displayName = "CommandShortcut";
3188
+ const SearchField = ({
3189
+ options,
3190
+ placeholder,
3191
+ emptyMessage,
3192
+ value,
3193
+ onValueChange,
3194
+ disabled,
3195
+ isLoading = false
3196
+ }) => {
3197
+ const inputRef = useRef(null);
3198
+ const [isOpen, setOpen] = useState(false);
3199
+ const [selected, setSelected] = useState(value);
3200
+ const [inputValue, setInputValue] = useState((value == null ? void 0 : value.label) || "");
3201
+ const handleKeyDown = useCallback(
3202
+ (event) => {
3203
+ const input = inputRef.current;
3204
+ if (!input) {
3205
+ return;
3206
+ }
3207
+ if (!isOpen) {
3208
+ setOpen(true);
3209
+ }
3210
+ if (event.key === "Enter" && input.value !== "") {
3211
+ const optionToSelect = options.find(
3212
+ (option) => option.label === input.value
3213
+ );
3214
+ if (optionToSelect) {
3215
+ setSelected(optionToSelect);
3216
+ onValueChange == null ? void 0 : onValueChange(optionToSelect);
3217
+ }
3218
+ }
3219
+ if (event.key === "Escape") {
3220
+ input.blur();
3221
+ }
3222
+ },
3223
+ [isOpen, options, onValueChange]
3224
+ );
3225
+ const handleBlur = useCallback(() => {
3226
+ setOpen(false);
3227
+ setInputValue(selected == null ? void 0 : selected.label);
3228
+ }, [selected]);
3229
+ const handleSelectOption = useCallback(
3230
+ (selectedOption) => {
3231
+ setInputValue(selectedOption.label);
3232
+ setSelected(selectedOption);
3233
+ onValueChange == null ? void 0 : onValueChange(selectedOption);
3234
+ setTimeout(() => {
3235
+ var _a;
3236
+ (_a = inputRef == null ? void 0 : inputRef.current) == null ? void 0 : _a.blur();
3237
+ }, 0);
3238
+ },
3239
+ [onValueChange]
3240
+ );
3241
+ return /* @__PURE__ */ jsxs(Command$1, { onKeyDown: handleKeyDown, children: [
3242
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
3243
+ CommandInput,
3244
+ {
3245
+ ref: inputRef,
3246
+ value: inputValue,
3247
+ onValueChange: isLoading ? void 0 : setInputValue,
3248
+ onBlur: handleBlur,
3249
+ onFocus: () => setOpen(true),
3250
+ placeholder,
3251
+ disabled,
3252
+ className: cn(
3253
+ "focus-within:border-cyan-300 focus:border-cyan-300",
3254
+ isOpen && "rounded-b-none"
3255
+ )
3256
+ }
3257
+ ) }),
3258
+ /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsx(
3259
+ "div",
3260
+ {
3261
+ className: cn(
3262
+ "animate-in fade-in-0 absolute top-0 z-10 w-full rounded-xl bg-white outline-none",
3263
+ isOpen ? "block" : "hidden"
3264
+ ),
3265
+ children: /* @__PURE__ */ jsxs(CommandList, { className: "border-b border-x border-cyan-300", children: [
3266
+ (options == null ? void 0 : options.length) > 0 && !isLoading ? /* @__PURE__ */ jsx(CommandGroup, { children: options.map((option) => {
3267
+ const isSelected = (selected == null ? void 0 : selected.value) === option.value;
3268
+ return /* @__PURE__ */ jsxs(
3269
+ CommandItem,
3270
+ {
3271
+ value: option.label,
3272
+ onMouseDown: (event) => {
3273
+ event.preventDefault();
3274
+ event.stopPropagation();
3275
+ },
3276
+ onSelect: () => handleSelectOption(option),
3277
+ children: [
3278
+ isSelected ? /* @__PURE__ */ jsx(Check, { className: "w-4" }) : null,
3279
+ option.label
3280
+ ]
3281
+ },
3282
+ option.value
3283
+ );
3284
+ }) }) : null,
3285
+ !isLoading ? /* @__PURE__ */ jsx(CommandEmpty, { className: "select-none rounded-sm px-2 py-3 text-center text-sm text-gray-200", children: emptyMessage }) : null
3286
+ ] })
3287
+ }
3288
+ ) })
3289
+ ] });
3290
+ };
3291
+ const conceptColors = {
3292
+ mind: {
3293
+ solid: "#0a5161",
3294
+ light: "rgba(10,81,97,0.08)",
3295
+ border: "rgba(10,81,97,0.16)",
3296
+ prefix: "M"
3297
+ },
3298
+ community: {
3299
+ solid: "#0f748a",
3300
+ light: "rgba(15,116,138,0.12)",
3301
+ border: "rgba(15,116,138,0.24)",
3302
+ prefix: "C"
3303
+ },
3304
+ movement: {
3305
+ solid: "#149ebd",
3306
+ light: "rgba(20,158,189,0.12)",
3307
+ border: "rgba(20,158,189,0.24)",
3308
+ prefix: "V"
3309
+ },
3310
+ water: {
3311
+ solid: "#39c9ea",
3312
+ light: "rgba(57,201,234,0.12)",
3313
+ border: "rgba(57,201,234,0.24)",
3314
+ prefix: "W"
3315
+ },
3316
+ air: {
3317
+ solid: "#87dff2",
3318
+ light: "rgba(135,223,242,0.12)",
3319
+ border: "rgba(135,223,242,0.24)",
3320
+ prefix: "A"
3321
+ },
3322
+ light: {
3323
+ solid: "#8aefdb",
3324
+ light: "rgba(138,239,219,0.12)",
3325
+ border: "rgba(138,239,219,0.24)",
3326
+ prefix: "L"
3327
+ },
3328
+ thermalComfort: {
3329
+ solid: "#3eddbf",
3330
+ light: "rgba(62,221,191,0.12)",
3331
+ border: "rgba(62,221,191,0.24)",
3332
+ prefix: "T"
3333
+ },
3334
+ nourishment: {
3335
+ solid: "#17aa8d",
3336
+ light: "rgba(23,170,141,0.12)",
3337
+ border: "rgba(23,170,141,0.24)",
3338
+ prefix: "N"
3339
+ },
3340
+ sound: {
3341
+ solid: "#0c705c",
3342
+ light: "rgba(12,112,92,0.12)",
3343
+ border: "rgba(12,112,92,0.24)",
3344
+ prefix: "S"
3345
+ },
3346
+ materials: {
3347
+ solid: "#0a4f41",
3348
+ light: "rgba(10,79,65,0.08)",
3349
+ border: "rgba(10,79,65,0.16)",
3350
+ prefix: "X"
3351
+ }
3352
+ };
3353
+ const StrategyTableRow = ({
3354
+ data,
3355
+ isFirst = false,
3356
+ isLast = false,
3357
+ showConceptHeader = true,
3358
+ isExpanded = true
3359
+ }) => {
3360
+ const { concept, theme, strategies } = data;
3361
+ const colors = conceptColors[concept.type];
3362
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
3363
+ showConceptHeader && /* @__PURE__ */ jsxs(
3364
+ "div",
3365
+ {
3366
+ className: cn(
3367
+ "flex items-center gap-4 p-4 border border-[#DEDFE3] bg-[#FAFEFF]",
3368
+ "border-b-0",
3369
+ isFirst && "rounded-tl-[12px] rounded-tr-[12px]"
3370
+ ),
3371
+ children: [
3372
+ /* @__PURE__ */ jsx("div", { className: "size-[48px] flex items-center justify-center shrink-0", children: concept.icon }),
3373
+ /* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsx("span", { className: "text-sm font-semibold text-[#282A31] uppercase tracking-[0.5px] leading-[14px]", children: concept.name }) })
3374
+ ]
3375
+ }
3376
+ ),
3377
+ isExpanded && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4 p-4 border border-[#DEDFE3] bg-[#FAFEFF] border-b-0", children: [
3378
+ /* @__PURE__ */ jsx(
3379
+ "div",
3380
+ {
3381
+ className: "flex items-center justify-center h-8 w-12 rounded-[6px] shrink-0",
3382
+ style: { backgroundColor: colors.solid },
3383
+ children: /* @__PURE__ */ jsx("span", { className: "text-sm font-semibold text-white leading-[19.6px]", children: theme.code })
3384
+ }
3385
+ ),
3386
+ /* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsx("span", { className: "text-base font-medium text-[#282A31] leading-[21px]", children: theme.name }) })
3387
+ ] }),
3388
+ isExpanded && strategies.map((strategy, index) => {
3389
+ var _a;
3390
+ const isLastStrategy = index === strategies.length - 1 && isLast;
3391
+ const scoreParts = ((_a = strategy.score) == null ? void 0 : _a.split("–")) || [];
3392
+ const isRange = scoreParts.length > 1;
3393
+ return /* @__PURE__ */ jsxs(
3394
+ "div",
3395
+ {
3396
+ className: cn(
3397
+ "flex items-center gap-4 pl-8 pr-4 py-4 border border-[#DEDFE3] bg-white",
3398
+ "border-b-0",
3399
+ isLastStrategy && "rounded-bl-[12px] rounded-br-[12px] border-b-0"
3400
+ ),
3401
+ children: [
3402
+ /* @__PURE__ */ jsx(
3403
+ "div",
3404
+ {
3405
+ className: "flex items-center justify-center h-8 w-12 rounded-[6px] border shrink-0",
3406
+ style: {
3407
+ backgroundColor: colors.light,
3408
+ borderColor: colors.border
3409
+ },
3410
+ children: /* @__PURE__ */ jsx(
3411
+ "span",
3412
+ {
3413
+ className: "text-sm font-semibold leading-[19.6px]",
3414
+ style: { color: colors.solid },
3415
+ children: strategy.code
3416
+ }
3417
+ )
3418
+ }
3419
+ ),
3420
+ /* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsx("span", { className: "text-base font-medium text-[#282A31] leading-[21px]", children: strategy.name }) }),
3421
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4 shrink-0", children: [
3422
+ strategy.hasTarget && /* @__PURE__ */ jsx("div", { className: "size-8 flex items-center justify-center", children: /* @__PURE__ */ jsxs(
3423
+ "svg",
3424
+ {
3425
+ width: "14",
3426
+ height: "14",
3427
+ viewBox: "0 0 14 14",
3428
+ fill: "none",
3429
+ className: "text-gray-400",
3430
+ children: [
3431
+ /* @__PURE__ */ jsx(
3432
+ "circle",
3433
+ {
3434
+ cx: "7",
3435
+ cy: "7",
3436
+ r: "6.25",
3437
+ stroke: "currentColor",
3438
+ strokeWidth: "1.5"
3439
+ }
3440
+ ),
3441
+ /* @__PURE__ */ jsx(
3442
+ "circle",
3443
+ {
3444
+ cx: "7",
3445
+ cy: "7",
3446
+ r: "3.5",
3447
+ stroke: "currentColor",
3448
+ strokeWidth: "1.5"
3449
+ }
3450
+ ),
3451
+ /* @__PURE__ */ jsx("circle", { cx: "7", cy: "7", r: "1", fill: "currentColor" })
3452
+ ]
3453
+ }
3454
+ ) }),
3455
+ strategy.score && /* @__PURE__ */ jsxs("div", { className: "flex items-end gap-[4px]", children: [
3456
+ /* @__PURE__ */ jsx("span", { className: "text-lg font-semibold text-[#282A31] leading-[25.2px]", children: strategy.score }),
3457
+ /* @__PURE__ */ jsxs("span", { className: "text-xs font-semibold text-[#282A31] uppercase tracking-[0.5px] leading-[12px]", children: [
3458
+ isRange ? "PTS" : "PT",
3459
+ !isRange && /* @__PURE__ */ jsx("span", { className: "text-transparent", children: "S" })
3460
+ ] })
3461
+ ] })
3462
+ ] })
3463
+ ]
3464
+ },
3465
+ strategy.id
3466
+ );
3467
+ })
3468
+ ] });
3469
+ };
3470
+ const StrategyTable = ({
3471
+ data,
3472
+ className,
3473
+ isExpanded = true
3474
+ }) => {
3475
+ const groupedData = React.useMemo(() => {
3476
+ const groups = {};
3477
+ data.forEach((item) => {
3478
+ const key = item.concept.id;
3479
+ if (!groups[key]) {
3480
+ groups[key] = [];
3481
+ }
3482
+ groups[key].push(item);
3483
+ });
3484
+ return Object.values(groups);
3485
+ }, [data]);
3486
+ return /* @__PURE__ */ jsx("div", { className: cn("flex flex-col", className), children: groupedData.map((group, groupIndex) => {
3487
+ const isFirstGroup = groupIndex === 0;
3488
+ const isLastGroup = groupIndex === groupedData.length - 1;
3489
+ return group.map((item, itemIndex) => {
3490
+ const isFirst = isFirstGroup && itemIndex === 0;
3491
+ const isLastItemInGroup = itemIndex === group.length - 1;
3492
+ const isLastStrategyRow = isLastGroup && isLastItemInGroup && item.strategies.length > 0;
3493
+ const showConceptHeader = itemIndex === 0;
3494
+ const uniqueId = `${item.concept.id}-${item.theme.id}`;
3495
+ return /* @__PURE__ */ jsx(
3496
+ StrategyTableRow,
3497
+ {
3498
+ data: item,
3499
+ isFirst,
3500
+ isLast: isLastStrategyRow,
3501
+ showConceptHeader,
3502
+ isExpanded
3503
+ },
3504
+ uniqueId
3505
+ );
3506
+ });
3507
+ }) });
3508
+ };
3509
+ const getStatusColors = (status, variant = "light") => {
3510
+ const colors = {
3511
+ light: {
3512
+ todo: {
3513
+ bg: "bg-gray-100",
3514
+ text: "text-gray-600"
3515
+ },
3516
+ low: {
3517
+ bg: "bg-cyan-100",
3518
+ text: "text-cyan-600"
3519
+ },
3520
+ medium: {
3521
+ bg: "bg-plum-100",
3522
+ text: "text-plum-600"
3523
+ },
3524
+ high: {
3525
+ bg: "bg-coral-100",
3526
+ text: "text-coral-600"
3527
+ },
3528
+ done: {
3529
+ bg: "bg-emerald-100",
3530
+ text: "text-emerald-600"
3531
+ }
3532
+ },
3533
+ dark: {
3534
+ todo: {
3535
+ bg: "bg-gray-600",
3536
+ text: "text-gray-100"
3537
+ },
3538
+ low: {
3539
+ bg: "bg-cyan-700",
3540
+ text: "text-cyan-100"
3541
+ },
3542
+ medium: {
3543
+ bg: "bg-plum-700",
3544
+ text: "text-plum-100"
3545
+ },
3546
+ high: {
3547
+ bg: "bg-coral-700",
3548
+ text: "text-coral-100"
3549
+ },
3550
+ done: {
3551
+ bg: "bg-emerald-700",
3552
+ text: "text-emerald-100"
3553
+ }
3554
+ }
3555
+ };
3556
+ return colors[variant][status];
3557
+ };
3558
+ const Tag = React.forwardRef(
3559
+ ({
3560
+ children,
3561
+ active = false,
3562
+ status,
3563
+ variant = "light",
3564
+ className,
3565
+ onClick,
3566
+ ...props
3567
+ }, ref) => {
3568
+ if (status) {
3569
+ const statusColors = getStatusColors(status, variant);
3570
+ return /* @__PURE__ */ jsx(
3571
+ "button",
3572
+ {
3573
+ ref,
3574
+ onClick,
3575
+ className: cn(
3576
+ "inline-flex items-center p-[8px] rounded-[6px] w-fit",
3577
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
3578
+ "disabled:opacity-50 disabled:cursor-not-allowed",
3579
+ statusColors.bg,
3580
+ statusColors.text,
3581
+ className
3582
+ ),
3583
+ ...props,
3584
+ children: /* @__PURE__ */ jsx("span", { className: "overline-medium", children })
3585
+ }
3586
+ );
3587
+ }
3588
+ return /* @__PURE__ */ jsx(
3589
+ "button",
3590
+ {
3591
+ ref,
3592
+ onClick,
3593
+ className: cn(
3594
+ "inline-flex items-center h-[32px] px-[12px] py-0 rounded-[6px] w-fit",
3595
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
3596
+ "disabled:opacity-50 disabled:cursor-not-allowed",
3597
+ active ? "bg-white border border-cyan-300 text-gray-800 hover:border-cyan-400" : "bg-blue-100 text-blue-700 hover:bg-blue-200",
3598
+ className
3599
+ ),
3600
+ ...props,
3601
+ children: /* @__PURE__ */ jsx("span", { className: "body-small font-medium", children })
3602
+ }
3603
+ );
3604
+ }
3605
+ );
3606
+ Tag.displayName = "Tag";
3607
+ function useTabs({ tabs, initialTabId }) {
3608
+ const initialIndex = tabs.findIndex((tab) => tab.value === initialTabId);
3609
+ const [selectedTabIndex, setSelectedTabIndex] = useState(
3610
+ initialIndex >= 0 ? initialIndex : 0
3611
+ );
3612
+ const setSelectedTab = useCallback(([index, direction]) => {
3613
+ setSelectedTabIndex(index);
3614
+ }, []);
3615
+ const selectedTab = tabs[selectedTabIndex] || tabs[0];
3616
+ return {
3617
+ tabProps: {
3618
+ tabs,
3619
+ selectedTabIndex,
3620
+ setSelectedTab
3621
+ },
3622
+ selectedTab
3623
+ };
3624
+ }
3625
+ const TabsRoot = React__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3626
+ TabsPrimitive.Root,
3627
+ {
3628
+ ref,
3629
+ className: cn("w-full", className),
3630
+ ...props
3631
+ }
3632
+ ));
3633
+ TabsRoot.displayName = TabsPrimitive.Root.displayName;
3634
+ const TabsList = React__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3635
+ TabsPrimitive.List,
3636
+ {
3637
+ ref,
3638
+ className: cn(
3639
+ "inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",
3640
+ className
3641
+ ),
3642
+ ...props
3643
+ }
3644
+ ));
3645
+ TabsList.displayName = TabsPrimitive.List.displayName;
3646
+ const TabsTrigger = React__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3647
+ TabsPrimitive.Trigger,
3648
+ {
3649
+ ref,
3650
+ className: cn(
3651
+ "inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",
3652
+ className
3653
+ ),
3654
+ ...props
3655
+ }
3656
+ ));
3657
+ TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
3658
+ const TabsContent = React__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3659
+ TabsPrimitive.Content,
3660
+ {
3661
+ ref,
3662
+ className: cn(
3663
+ "mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
3664
+ className
3665
+ ),
3666
+ ...props
3667
+ }
3668
+ ));
3669
+ TabsContent.displayName = TabsPrimitive.Content.displayName;
3670
+ const Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx(
3671
+ "nav",
3672
+ {
3673
+ role: "navigation",
3674
+ "aria-label": "pagination",
3675
+ className: cn("mx-auto flex w-full justify-center", className),
3676
+ ...props
3677
+ }
3678
+ );
3679
+ Pagination.displayName = "Pagination";
3680
+ const PaginationContent = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3681
+ "ul",
3682
+ {
3683
+ ref,
3684
+ className: cn("flex flex-row items-center gap-1", className),
3685
+ ...props
3686
+ }
3687
+ ));
3688
+ PaginationContent.displayName = "PaginationContent";
3689
+ const PaginationItem = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("li", { ref, className: cn("", className), ...props }));
3690
+ PaginationItem.displayName = "PaginationItem";
3691
+ const PaginationLink = ({
3692
+ className,
3693
+ isActive,
3694
+ size = "icon",
3695
+ ...props
3696
+ }) => /* @__PURE__ */ jsx(
3697
+ "a",
3698
+ {
3699
+ "aria-current": isActive ? "page" : void 0,
3700
+ className: cn(
3701
+ buttonVariants$1({
3702
+ variant: isActive ? "general-secondary" : "general-tertiary",
3703
+ size
3704
+ }),
3705
+ className
3706
+ ),
3707
+ ...props
3708
+ }
3709
+ );
3710
+ PaginationLink.displayName = "PaginationLink";
3711
+ const PaginationPrevious = ({
3712
+ className,
3713
+ ...props
3714
+ }) => /* @__PURE__ */ jsxs(
3715
+ PaginationLink,
3716
+ {
3717
+ "aria-label": "Go to previous page",
3718
+ size: "utility",
3719
+ className: cn("gap-1 pl-2.5", className),
3720
+ ...props,
3721
+ children: [
3722
+ /* @__PURE__ */ jsx(ChevronLeft, { className: "h-4 w-4" }),
3723
+ /* @__PURE__ */ jsx("span", { children: "Previous" })
3724
+ ]
3725
+ }
3726
+ );
3727
+ PaginationPrevious.displayName = "PaginationPrevious";
3728
+ const PaginationNext = ({
3729
+ className,
3730
+ ...props
3731
+ }) => /* @__PURE__ */ jsxs(
3732
+ PaginationLink,
3733
+ {
3734
+ "aria-label": "Go to next page",
3735
+ size: "utility",
3736
+ className: cn("gap-1 pr-2.5", className),
3737
+ ...props,
3738
+ children: [
3739
+ /* @__PURE__ */ jsx("span", { children: "Next" }),
3740
+ /* @__PURE__ */ jsx(ChevronRight, { className: "h-4 w-4" })
3741
+ ]
3742
+ }
3743
+ );
3744
+ PaginationNext.displayName = "PaginationNext";
3745
+ const PaginationEllipsis = ({
3746
+ className,
3747
+ ...props
3748
+ }) => /* @__PURE__ */ jsxs(
3749
+ "span",
3750
+ {
3751
+ "aria-hidden": true,
3752
+ className: cn("flex h-9 w-9 items-center justify-center", className),
3753
+ ...props,
3754
+ children: [
3755
+ /* @__PURE__ */ jsx(MoreHorizontal, { className: "h-4 w-4" }),
3756
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "More pages" })
3757
+ ]
2043
3758
  }
2044
3759
  );
2045
3760
  PaginationEllipsis.displayName = "PaginationEllipsis";
@@ -2337,208 +4052,88 @@ const DropdownMenuContent = React.forwardRef(({ className, sideOffset = 4, ...pr
2337
4052
  ...props
2338
4053
  }
2339
4054
  ) }));
2340
- DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
2341
- const DropdownMenuItem = React.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
2342
- DropdownMenuPrimitive.Item,
2343
- {
2344
- ref,
2345
- className: cn(
2346
- "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
2347
- inset && "pl-8",
2348
- className
2349
- ),
2350
- ...props
2351
- }
2352
- ));
2353
- DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
2354
- const DropdownMenuCheckboxItem = React.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
2355
- DropdownMenuPrimitive.CheckboxItem,
2356
- {
2357
- ref,
2358
- className: cn(
2359
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
2360
- className
2361
- ),
2362
- checked,
2363
- ...props,
2364
- children: [
2365
- /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) }) }),
2366
- children
2367
- ]
2368
- }
2369
- ));
2370
- DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
2371
- const DropdownMenuRadioItem = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2372
- DropdownMenuPrimitive.RadioItem,
2373
- {
2374
- ref,
2375
- className: cn(
2376
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
2377
- className
2378
- ),
2379
- ...props,
2380
- children: [
2381
- /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { className: "h-2 w-2 fill-current" }) }) }),
2382
- children
2383
- ]
2384
- }
2385
- ));
2386
- DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
2387
- const DropdownMenuLabel = React.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
2388
- DropdownMenuPrimitive.Label,
2389
- {
2390
- ref,
2391
- className: cn(
2392
- "px-2 py-1.5 text-sm font-semibold",
2393
- inset && "pl-8",
2394
- className
2395
- ),
2396
- ...props
2397
- }
2398
- ));
2399
- DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
2400
- const DropdownMenuSeparator = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2401
- DropdownMenuPrimitive.Separator,
2402
- {
2403
- ref,
2404
- className: cn("-mx-1 my-1 h-px bg-muted", className),
2405
- ...props
2406
- }
2407
- ));
2408
- DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
2409
- const DropdownMenuShortcut = ({
2410
- className,
2411
- ...props
2412
- }) => {
2413
- return /* @__PURE__ */ jsx(
2414
- "span",
2415
- {
2416
- className: cn("ml-auto text-xs tracking-widest opacity-60", className),
2417
- ...props
2418
- }
2419
- );
2420
- };
2421
- DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
2422
- function Dialog({
2423
- ...props
2424
- }) {
2425
- return /* @__PURE__ */ jsx(SheetPrimitive.Root, { "data-slot": "dialog", ...props });
2426
- }
2427
- function DialogTrigger({
2428
- ...props
2429
- }) {
2430
- return /* @__PURE__ */ jsx(SheetPrimitive.Trigger, { "data-slot": "dialog-trigger", ...props });
2431
- }
2432
- function DialogPortal({
2433
- ...props
2434
- }) {
2435
- return /* @__PURE__ */ jsx(SheetPrimitive.Portal, { "data-slot": "dialog-portal", ...props });
2436
- }
2437
- function DialogClose({
2438
- ...props
2439
- }) {
2440
- return /* @__PURE__ */ jsx(SheetPrimitive.Close, { "data-slot": "dialog-close", ...props });
2441
- }
2442
- function DialogOverlay({
2443
- className,
2444
- ...props
2445
- }) {
2446
- return /* @__PURE__ */ jsx(
2447
- SheetPrimitive.Overlay,
2448
- {
2449
- "data-slot": "dialog-overlay",
2450
- className: cn(
2451
- "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
2452
- className
2453
- ),
2454
- ...props
2455
- }
2456
- );
2457
- }
2458
- function DialogContent({
2459
- className,
2460
- children,
2461
- showCloseButton = true,
2462
- ...props
2463
- }) {
2464
- return /* @__PURE__ */ jsxs(DialogPortal, { "data-slot": "dialog-portal", children: [
2465
- /* @__PURE__ */ jsx(DialogOverlay, {}),
2466
- /* @__PURE__ */ jsxs(
2467
- SheetPrimitive.Content,
2468
- {
2469
- "data-slot": "dialog-content",
2470
- className: cn(
2471
- "DialogContent overflow-hidden rounded-[40px] gap-4 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 fixed top-[30%] left-[50%] z-50 grid max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] border-12 border-[rgba(255,255,255,0.20)] duration-200 sm:max-w-lg",
2472
- className
2473
- ),
2474
- ...props,
2475
- children: [
2476
- /* @__PURE__ */ jsx("div", { className: "p-6 bg-gray-50", children }),
2477
- showCloseButton && /* @__PURE__ */ jsxs(
2478
- SheetPrimitive.Close,
2479
- {
2480
- "data-slot": "dialog-close",
2481
- className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2482
- children: [
2483
- /* @__PURE__ */ jsx(XIcon, {}),
2484
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
2485
- ]
2486
- }
2487
- )
2488
- ]
2489
- }
2490
- )
2491
- ] });
2492
- }
2493
- function DialogHeader({ className, ...props }) {
2494
- return /* @__PURE__ */ jsx(
2495
- "div",
2496
- {
2497
- "data-slot": "dialog-header",
2498
- className: cn("flex flex-col gap-2 text-center sm:text-left", className),
2499
- ...props
2500
- }
2501
- );
2502
- }
2503
- function DialogFooter({ className, ...props }) {
2504
- return /* @__PURE__ */ jsx(
2505
- "div",
2506
- {
2507
- "data-slot": "dialog-footer",
2508
- className: cn(
2509
- "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
2510
- className
2511
- ),
2512
- ...props
2513
- }
2514
- );
2515
- }
2516
- function DialogTitle({
2517
- className,
2518
- ...props
2519
- }) {
2520
- return /* @__PURE__ */ jsx(
2521
- SheetPrimitive.Title,
2522
- {
2523
- "data-slot": "dialog-title",
2524
- className: cn("heading-xxsmall ", className),
2525
- ...props
2526
- }
2527
- );
2528
- }
2529
- function DialogDescription({
4055
+ DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
4056
+ const DropdownMenuItem = React.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
4057
+ DropdownMenuPrimitive.Item,
4058
+ {
4059
+ ref,
4060
+ className: cn(
4061
+ "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
4062
+ inset && "pl-8",
4063
+ className
4064
+ ),
4065
+ ...props
4066
+ }
4067
+ ));
4068
+ DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
4069
+ const DropdownMenuCheckboxItem = React.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
4070
+ DropdownMenuPrimitive.CheckboxItem,
4071
+ {
4072
+ ref,
4073
+ className: cn(
4074
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
4075
+ className
4076
+ ),
4077
+ checked,
4078
+ ...props,
4079
+ children: [
4080
+ /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) }) }),
4081
+ children
4082
+ ]
4083
+ }
4084
+ ));
4085
+ DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
4086
+ const DropdownMenuRadioItem = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
4087
+ DropdownMenuPrimitive.RadioItem,
4088
+ {
4089
+ ref,
4090
+ className: cn(
4091
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
4092
+ className
4093
+ ),
4094
+ ...props,
4095
+ children: [
4096
+ /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { className: "h-2 w-2 fill-current" }) }) }),
4097
+ children
4098
+ ]
4099
+ }
4100
+ ));
4101
+ DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
4102
+ const DropdownMenuLabel = React.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
4103
+ DropdownMenuPrimitive.Label,
4104
+ {
4105
+ ref,
4106
+ className: cn(
4107
+ "px-2 py-1.5 text-sm font-semibold",
4108
+ inset && "pl-8",
4109
+ className
4110
+ ),
4111
+ ...props
4112
+ }
4113
+ ));
4114
+ DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
4115
+ const DropdownMenuSeparator = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
4116
+ DropdownMenuPrimitive.Separator,
4117
+ {
4118
+ ref,
4119
+ className: cn("-mx-1 my-1 h-px bg-muted", className),
4120
+ ...props
4121
+ }
4122
+ ));
4123
+ DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
4124
+ const DropdownMenuShortcut = ({
2530
4125
  className,
2531
4126
  ...props
2532
- }) {
4127
+ }) => {
2533
4128
  return /* @__PURE__ */ jsx(
2534
- SheetPrimitive.Description,
4129
+ "span",
2535
4130
  {
2536
- "data-slot": "dialog-description",
2537
- className: cn("text-muted-foreground text-sm", className),
4131
+ className: cn("ml-auto text-xs tracking-widest opacity-60", className),
2538
4132
  ...props
2539
4133
  }
2540
4134
  );
2541
- }
4135
+ };
4136
+ DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
2542
4137
  const Drawer = ({
2543
4138
  shouldScaleBackground = true,
2544
4139
  ...props
@@ -2924,7 +4519,7 @@ const CarouselPrevious = React.forwardRef(
2924
4519
  ({ className, variant = "general-secondary", size = "icon", ...props }, ref) => {
2925
4520
  const { orientation, scrollPrev, canScrollPrev } = useCarousel();
2926
4521
  return /* @__PURE__ */ jsxs(
2927
- Button,
4522
+ Button$1,
2928
4523
  {
2929
4524
  ref,
2930
4525
  variant,
@@ -2950,7 +4545,7 @@ const CarouselNext = React.forwardRef(
2950
4545
  ({ className, variant = "general-secondary", size = "icon", ...props }, ref) => {
2951
4546
  const { orientation, scrollNext, canScrollNext } = useCarousel();
2952
4547
  return /* @__PURE__ */ jsxs(
2953
- Button,
4548
+ Button$1,
2954
4549
  {
2955
4550
  ref,
2956
4551
  variant,
@@ -2975,113 +4570,6 @@ CarouselNext.displayName = "CarouselNext";
2975
4570
  const Collapsible = CollapsiblePrimitive.Root;
2976
4571
  const CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger;
2977
4572
  const CollapsibleContent = CollapsiblePrimitive.CollapsibleContent;
2978
- const Command = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2979
- Command$1,
2980
- {
2981
- ref,
2982
- className: cn("flex h-full w-full flex-col overflow-hidden", className),
2983
- ...props
2984
- }
2985
- ));
2986
- Command.displayName = Command$1.displayName;
2987
- const CommandDialog = ({ children, ...props }) => {
2988
- return /* @__PURE__ */ jsx(Dialog, { ...props, children: /* @__PURE__ */ jsx(DialogContent, { className: "overflow-hidden p-0 shadow-lg", children: /* @__PURE__ */ jsx(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children }) }) });
2989
- };
2990
- const CommandInput = React.forwardRef(({ className, icon: Icon = Search, ...props }, ref) => /* @__PURE__ */ jsxs(
2991
- "div",
2992
- {
2993
- className: cn(
2994
- "group relative flex h-14 w-full sm:min-w-[344px] items-center gap-4 rounded-lg border border-gray-200 bg-white p-4 focus:ring-0 focus:outline-none",
2995
- className
2996
- ),
2997
- "cmdk-input-wrapper": "",
2998
- children: [
2999
- /* @__PURE__ */ jsx(Icon, { className: " h-4 w-4 shrink-0 group-focus-within:-translate-x-4 group-focus-within:opacity-0 ease-in-out duration-200" }),
3000
- /* @__PURE__ */ jsx(
3001
- Command$1.Input,
3002
- {
3003
- ref,
3004
- className: cn(
3005
- "text-base w-full ring-0 outline-none group-focus-within:-translate-x-8 ease-in-out duration-200",
3006
- className
3007
- ),
3008
- ...props
3009
- }
3010
- )
3011
- ]
3012
- }
3013
- ));
3014
- CommandInput.displayName = Command$1.Input.displayName;
3015
- const CommandList = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3016
- Command$1.List,
3017
- {
3018
- ref,
3019
- className: cn(
3020
- "max-h-[300px] overflow-y-auto overflow-x-hidden bg-gray-700 rounded-b-lg",
3021
- className
3022
- ),
3023
- ...props
3024
- }
3025
- ));
3026
- CommandList.displayName = Command$1.List.displayName;
3027
- const CommandEmpty = React.forwardRef((props, ref) => /* @__PURE__ */ jsx(
3028
- Command$1.Empty,
3029
- {
3030
- ref,
3031
- className: "py-6 text-center text-sm",
3032
- ...props
3033
- }
3034
- ));
3035
- CommandEmpty.displayName = Command$1.Empty.displayName;
3036
- const CommandGroup = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3037
- Command$1.Group,
3038
- {
3039
- ref,
3040
- className: cn(
3041
- "group overflow-hidden [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground ",
3042
- className
3043
- ),
3044
- ...props
3045
- }
3046
- ));
3047
- CommandGroup.displayName = Command$1.Group.displayName;
3048
- const CommandSeparator = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3049
- Command$1.Separator,
3050
- {
3051
- ref,
3052
- className: cn("-mx-1 h-px bg-border", className),
3053
- ...props
3054
- }
3055
- ));
3056
- CommandSeparator.displayName = Command$1.Separator.displayName;
3057
- const CommandItem = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3058
- Command$1.Item,
3059
- {
3060
- ref,
3061
- className: cn(
3062
- "relative flex w-full items-center gap-2 cursor-default select-none p-4 text-sm outline-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-gray-700 hover:bg-[rgba(0,0,0,0.2)] text-gray-200",
3063
- className
3064
- ),
3065
- ...props
3066
- }
3067
- ));
3068
- CommandItem.displayName = Command$1.Item.displayName;
3069
- const CommandShortcut = ({
3070
- className,
3071
- ...props
3072
- }) => {
3073
- return /* @__PURE__ */ jsx(
3074
- "span",
3075
- {
3076
- className: cn(
3077
- "ml-auto text-xs tracking-widest text-muted-foreground",
3078
- className
3079
- ),
3080
- ...props
3081
- }
3082
- );
3083
- };
3084
- CommandShortcut.displayName = "CommandShortcut";
3085
4573
  const ToastProvider = ToastPrimitives.Provider;
3086
4574
  const ToastViewport = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3087
4575
  ToastPrimitives.Viewport,
@@ -3525,6 +5013,292 @@ function getPayloadConfigFromPayload(config, payload, key) {
3525
5013
  }
3526
5014
  return configLabelKey in config ? config[configLabelKey] : config[key];
3527
5015
  }
5016
+ const defaultCertifications = [
5017
+ { name: "Platinum", locations: 1, color: "#A8A7AE", icon: "platinum" },
5018
+ { name: "Gold", locations: 1, color: "#D7C686", icon: "gold" },
5019
+ { name: "Silver", locations: 1, color: "#C0C2C4", icon: "silver" },
5020
+ { name: "Bronze", locations: 1, color: "#D1A778", icon: "bronze" },
5021
+ {
5022
+ name: "Precertified",
5023
+ locations: 1,
5024
+ color: "#44B0BC",
5025
+ icon: "precertified"
5026
+ }
5027
+ ];
5028
+ const defaultRatings = [
5029
+ {
5030
+ name: "Health-Safety",
5031
+ locations: 1,
5032
+ color: "#7FB3DC",
5033
+ percentage: 50,
5034
+ icon: "health"
5035
+ },
5036
+ {
5037
+ name: "Equity",
5038
+ locations: 1,
5039
+ color: "#41937D",
5040
+ percentage: 67,
5041
+ icon: "equity"
5042
+ },
5043
+ {
5044
+ name: "Performance",
5045
+ locations: "Not Pursued",
5046
+ color: "#0B667F",
5047
+ percentage: 2,
5048
+ icon: "performance",
5049
+ inactive: true
5050
+ },
5051
+ {
5052
+ name: "Coworking",
5053
+ locations: "Not Pursued",
5054
+ color: "#AD7DA3",
5055
+ percentage: 2,
5056
+ icon: "coworking",
5057
+ inactive: true
5058
+ }
5059
+ ];
5060
+ const WELLDashboard = React.forwardRef(
5061
+ ({
5062
+ certifiedPercentage = 60,
5063
+ certifications = defaultCertifications,
5064
+ ratings = defaultRatings,
5065
+ className
5066
+ }, ref) => {
5067
+ return /* @__PURE__ */ jsxs("div", { ref, className: cn("flex flex-col gap-4", className), children: [
5068
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col lg:flex-row gap-4", children: [
5069
+ /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0 rounded-md border border-[#DEDEE5] bg-white/0 p-4 shadow-xs", children: [
5070
+ /* @__PURE__ */ jsx(
5071
+ "h2",
5072
+ {
5073
+ className: "text-xl font-medium text-[#3D3E46] text-center mb-6",
5074
+ style: { fontFamily: "'DM Sans', sans-serif" },
5075
+ children: "WELL Certified Locations"
5076
+ }
5077
+ ),
5078
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col md:flex-row justify-center items-center gap-10", children: [
5079
+ /* @__PURE__ */ jsxs("div", { className: "relative w-60 h-60 shrink-0", children: [
5080
+ /* @__PURE__ */ jsxs(
5081
+ "svg",
5082
+ {
5083
+ width: "240",
5084
+ height: "240",
5085
+ viewBox: "0 0 240 240",
5086
+ className: "transform -rotate-90",
5087
+ children: [
5088
+ /* @__PURE__ */ jsx("circle", { cx: "120", cy: "120", r: "120", fill: "#F5F9FB" }),
5089
+ /* @__PURE__ */ jsx(
5090
+ "circle",
5091
+ {
5092
+ cx: "120",
5093
+ cy: "120",
5094
+ r: "100",
5095
+ fill: "none",
5096
+ stroke: "#327DB9",
5097
+ strokeWidth: "20",
5098
+ strokeDasharray: `${certifiedPercentage / 100 * 628} 628`,
5099
+ strokeLinecap: "round"
5100
+ }
5101
+ ),
5102
+ certifications.map((cert, index) => {
5103
+ const totalSegments = certifications.length;
5104
+ const segmentAngle = certifiedPercentage / 100 * 360 / totalSegments;
5105
+ const startAngle = index * segmentAngle;
5106
+ const arcLength = segmentAngle * Math.PI * 100 / 180;
5107
+ const offset = startAngle * Math.PI * 100 / 180;
5108
+ return /* @__PURE__ */ jsx(
5109
+ "circle",
5110
+ {
5111
+ cx: "120",
5112
+ cy: "120",
5113
+ r: "100",
5114
+ fill: "none",
5115
+ stroke: cert.color,
5116
+ strokeWidth: "20",
5117
+ strokeDasharray: `${arcLength} 628`,
5118
+ strokeDashoffset: -offset,
5119
+ opacity: "0.7"
5120
+ },
5121
+ cert.name
5122
+ );
5123
+ }),
5124
+ /* @__PURE__ */ jsx(
5125
+ "circle",
5126
+ {
5127
+ cx: "120",
5128
+ cy: "120",
5129
+ r: "80",
5130
+ fill: "white",
5131
+ filter: "drop-shadow(0 0 16px rgba(0,0,0,0.04))"
5132
+ }
5133
+ )
5134
+ ]
5135
+ }
5136
+ ),
5137
+ /* @__PURE__ */ jsxs("div", { className: "absolute inset-0 flex flex-col items-center justify-center", children: [
5138
+ /* @__PURE__ */ jsxs(
5139
+ "div",
5140
+ {
5141
+ className: "text-5xl font-medium text-[#327DB9]",
5142
+ style: { fontFamily: "'DM Sans', sans-serif" },
5143
+ children: [
5144
+ certifiedPercentage,
5145
+ "%"
5146
+ ]
5147
+ }
5148
+ ),
5149
+ /* @__PURE__ */ jsx(
5150
+ "div",
5151
+ {
5152
+ className: "text-sm font-medium text-[#78777F] mt-1",
5153
+ style: { fontFamily: "'DM Sans', sans-serif" },
5154
+ children: "Certified"
5155
+ }
5156
+ )
5157
+ ] })
5158
+ ] }),
5159
+ /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-4 min-w-[160px]", children: certifications.map((cert) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
5160
+ /* @__PURE__ */ jsx(
5161
+ "div",
5162
+ {
5163
+ className: "w-10 h-10 rounded-full shrink-0 flex items-center justify-center",
5164
+ style: { backgroundColor: cert.color },
5165
+ children: cert.icon === "precertified" && /* @__PURE__ */ jsx("div", { className: "w-9 h-6 bg-[#44B0BC] rounded-sm flex items-center justify-center text-white text-[10px] font-bold", children: "WELL" })
5166
+ }
5167
+ ),
5168
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-0.5 flex-1", children: [
5169
+ /* @__PURE__ */ jsx(
5170
+ "div",
5171
+ {
5172
+ className: "text-base font-medium text-[#3D3E46]",
5173
+ style: { fontFamily: "'DM Sans', sans-serif" },
5174
+ children: cert.name
5175
+ }
5176
+ ),
5177
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
5178
+ /* @__PURE__ */ jsx(
5179
+ Building2,
5180
+ {
5181
+ size: 16,
5182
+ className: "text-[#327DB9]",
5183
+ strokeWidth: 1.2
5184
+ }
5185
+ ),
5186
+ /* @__PURE__ */ jsxs(
5187
+ "span",
5188
+ {
5189
+ className: "text-xs font-medium text-[#327DB9]",
5190
+ style: { fontFamily: "'DM Sans', sans-serif" },
5191
+ children: [
5192
+ cert.locations,
5193
+ " Location",
5194
+ cert.locations !== 1 ? "s" : ""
5195
+ ]
5196
+ }
5197
+ )
5198
+ ] })
5199
+ ] })
5200
+ ] }, cert.name)) })
5201
+ ] })
5202
+ ] }),
5203
+ /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0 rounded-md border border-[#DEDEE5] bg-white/0 p-4 shadow-xs", children: [
5204
+ /* @__PURE__ */ jsx(
5205
+ "h2",
5206
+ {
5207
+ className: "text-xl font-medium text-[#3D3E46] text-center mb-6",
5208
+ style: { fontFamily: "'DM Sans', sans-serif" },
5209
+ children: "WELL Rated Locations"
5210
+ }
5211
+ ),
5212
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col md:flex-row justify-center items-center gap-10", children: [
5213
+ /* @__PURE__ */ jsxs("div", { className: "flex items-end gap-4 h-60 px-4", children: [
5214
+ ratings.map((rating) => /* @__PURE__ */ jsxs("div", { className: "w-10 h-60 relative", children: [
5215
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-0 rounded-t border border-[#DEDEE5] bg-[#F5F9FB]" }),
5216
+ /* @__PURE__ */ jsx(
5217
+ "div",
5218
+ {
5219
+ className: "absolute bottom-0 left-0 right-0 rounded-t transition-all",
5220
+ style: {
5221
+ backgroundColor: rating.color,
5222
+ height: `${rating.percentage}%`
5223
+ }
5224
+ }
5225
+ )
5226
+ ] }, rating.name)),
5227
+ /* @__PURE__ */ jsx("div", { className: "w-px h-60 bg-[#DEDEE5]" })
5228
+ ] }),
5229
+ /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-4 min-w-[160px]", children: ratings.map((rating) => /* @__PURE__ */ jsxs(
5230
+ "div",
5231
+ {
5232
+ className: cn(
5233
+ "flex items-center gap-2",
5234
+ rating.inactive && "opacity-50"
5235
+ ),
5236
+ children: [
5237
+ /* @__PURE__ */ jsx(
5238
+ "div",
5239
+ {
5240
+ className: "w-10 h-10 rounded-full shrink-0 flex items-center justify-center",
5241
+ style: { backgroundColor: rating.color }
5242
+ }
5243
+ ),
5244
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-0.5 flex-1", children: [
5245
+ /* @__PURE__ */ jsx(
5246
+ "div",
5247
+ {
5248
+ className: "text-base font-medium text-[#3D3E46]",
5249
+ style: { fontFamily: "'DM Sans', sans-serif" },
5250
+ children: rating.name
5251
+ }
5252
+ ),
5253
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
5254
+ /* @__PURE__ */ jsx(
5255
+ Building2,
5256
+ {
5257
+ size: 16,
5258
+ className: rating.inactive ? "text-[#78777F]" : "text-[#327DB9]",
5259
+ strokeWidth: 1.2
5260
+ }
5261
+ ),
5262
+ /* @__PURE__ */ jsx(
5263
+ "span",
5264
+ {
5265
+ className: cn(
5266
+ "text-xs font-medium",
5267
+ rating.inactive ? "text-[#78777F]" : "text-[#327DB9]"
5268
+ ),
5269
+ style: { fontFamily: "'DM Sans', sans-serif" },
5270
+ children: typeof rating.locations === "number" ? `${rating.locations} Location${rating.locations !== 1 ? "s" : ""}` : rating.locations
5271
+ }
5272
+ )
5273
+ ] })
5274
+ ] })
5275
+ ]
5276
+ },
5277
+ rating.name
5278
+ )) })
5279
+ ] })
5280
+ ] })
5281
+ ] }),
5282
+ /* @__PURE__ */ jsxs(
5283
+ "p",
5284
+ {
5285
+ className: "text-[10px] leading-3 font-medium text-[#78777F] text-center",
5286
+ style: { fontFamily: "'DM Sans', sans-serif" },
5287
+ children: [
5288
+ "Achievement metrics reflect all active program achievements, as of",
5289
+ " ",
5290
+ (/* @__PURE__ */ new Date()).toLocaleDateString("en-US", {
5291
+ month: "long",
5292
+ day: "numeric",
5293
+ year: "numeric"
5294
+ })
5295
+ ]
5296
+ }
5297
+ )
5298
+ ] });
5299
+ }
5300
+ );
5301
+ WELLDashboard.displayName = "WELLDashboard";
3528
5302
  const Toaster = ({ ...props }) => {
3529
5303
  const { theme = "system" } = useTheme();
3530
5304
  return /* @__PURE__ */ jsx(
@@ -3572,7 +5346,7 @@ export {
3572
5346
  BreadcrumbList,
3573
5347
  BreadcrumbPage,
3574
5348
  BreadcrumbSeparator,
3575
- Button,
5349
+ Button$1 as Button,
3576
5350
  Calendar,
3577
5351
  Card,
3578
5352
  CardContent,
@@ -3624,6 +5398,8 @@ export {
3624
5398
  DialogDescription,
3625
5399
  DialogFooter,
3626
5400
  DialogHeader,
5401
+ DialogOverlay,
5402
+ DialogPortal,
3627
5403
  DialogTitle,
3628
5404
  DialogTrigger,
3629
5405
  Drawer,
@@ -3679,6 +5455,7 @@ export {
3679
5455
  MenubarSubContent,
3680
5456
  MenubarSubTrigger,
3681
5457
  MenubarTrigger,
5458
+ Navigation,
3682
5459
  NavigationMenu,
3683
5460
  NavigationMenuContent,
3684
5461
  NavigationMenuItem,
@@ -3703,6 +5480,7 @@ export {
3703
5480
  ResizablePanelGroup,
3704
5481
  ScrollArea,
3705
5482
  ScrollBar,
5483
+ SearchField,
3706
5484
  Select,
3707
5485
  SelectContent,
3708
5486
  SelectGroup,
@@ -3738,6 +5516,7 @@ export {
3738
5516
  Skeleton,
3739
5517
  Slider,
3740
5518
  Toaster as Sonner,
5519
+ StrategyTable,
3741
5520
  Switch,
3742
5521
  Table,
3743
5522
  TableBody,
@@ -3751,6 +5530,7 @@ export {
3751
5530
  TabsContent,
3752
5531
  TabsList,
3753
5532
  TabsTrigger,
5533
+ Tag,
3754
5534
  Textarea,
3755
5535
  Toast,
3756
5536
  ToastAction,
@@ -3767,8 +5547,14 @@ export {
3767
5547
  TooltipContent,
3768
5548
  TooltipProvider,
3769
5549
  TooltipTrigger,
5550
+ WELLDashboard,
3770
5551
  badgeVariants,
3771
- buttonVariants,
5552
+ buttonVariants$1 as buttonVariants,
5553
+ cn,
5554
+ conceptColors,
3772
5555
  navigationMenuTriggerStyle,
5556
+ useIsMobile,
5557
+ useSegmentedControl,
5558
+ useTabs,
3773
5559
  useToast
3774
5560
  };