@spear-ai/spectral 1.22.6 → 1.22.7

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 (42) hide show
  1. package/dist/ButtonIcon.d.ts +4 -0
  2. package/dist/ButtonIcon.d.ts.map +1 -1
  3. package/dist/ButtonIcon.js +7 -2
  4. package/dist/ButtonIcon.js.map +1 -1
  5. package/dist/Card.d.ts +43 -0
  6. package/dist/Card.d.ts.map +1 -0
  7. package/dist/{DataCard/Card.js → Card.js} +20 -20
  8. package/dist/Card.js.map +1 -0
  9. package/dist/DirectionalColorWheel/DirectionalColorWheelDisclosure.js +1 -1
  10. package/dist/DirectionalColorWheel/DirectionalColorWheelDisclosure.js.map +1 -1
  11. package/dist/Icons/DeploymentsIcon.d.ts +18 -0
  12. package/dist/Icons/DeploymentsIcon.d.ts.map +1 -0
  13. package/dist/Icons/DeploymentsIcon.js +46 -0
  14. package/dist/Icons/DeploymentsIcon.js.map +1 -0
  15. package/dist/Icons/DotIcon.js +1 -1
  16. package/dist/Icons/DotIcon.js.map +1 -1
  17. package/dist/Icons/GeospatialIcon.d.ts +18 -0
  18. package/dist/Icons/GeospatialIcon.d.ts.map +1 -0
  19. package/dist/Icons/GeospatialIcon.js +53 -0
  20. package/dist/Icons/GeospatialIcon.js.map +1 -0
  21. package/dist/Icons/LiveViewIcon.d.ts.map +1 -1
  22. package/dist/Icons/LiveViewIcon.js +12 -5
  23. package/dist/Icons/LiveViewIcon.js.map +1 -1
  24. package/dist/Icons/SparklesAIIcon.d.ts +18 -0
  25. package/dist/Icons/SparklesAIIcon.d.ts.map +1 -0
  26. package/dist/Icons/SparklesAIIcon.js +33 -0
  27. package/dist/Icons/SparklesAIIcon.js.map +1 -0
  28. package/dist/Icons.d.ts +4 -1
  29. package/dist/Icons.js +4 -1
  30. package/dist/index.d.ts +5 -2
  31. package/dist/index.js +5 -2
  32. package/dist/styles/horizon/base-colors.css +11 -11
  33. package/dist/styles/horizon/utilities.css +7 -8
  34. package/dist/styles/spectral.css +1 -1
  35. package/package.json +2 -2
  36. package/dist/DataCard/Card.d.ts +0 -38
  37. package/dist/DataCard/Card.d.ts.map +0 -1
  38. package/dist/DataCard/Card.js.map +0 -1
  39. package/dist/DataCard.d.ts +0 -25
  40. package/dist/DataCard.d.ts.map +0 -1
  41. package/dist/DataCard.js +0 -37
  42. package/dist/DataCard.js.map +0 -1
@@ -8,21 +8,25 @@ interface ButtonIconProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>,
8
8
  className?: string;
9
9
  icon: IconOrSVG;
10
10
  isLoading?: boolean;
11
+ isActive?: boolean;
11
12
  label: string;
12
13
  onClick?: (event: MouseEvent<HTMLButtonElement>) => void;
13
14
  shape?: 'circle' | 'square';
14
15
  size?: 'sm' | 'md' | 'lg';
16
+ variant?: 'default' | 'active-color';
15
17
  }
16
18
  declare function ButtonIcon({
17
19
  className,
18
20
  disabled,
19
21
  icon,
22
+ isActive,
20
23
  isLoading,
21
24
  label,
22
25
  onClick,
23
26
  ref,
24
27
  shape,
25
28
  size,
29
+ variant,
26
30
  ...props
27
31
  }: ButtonIconProps & {
28
32
  ref?: Ref<HTMLButtonElement>;
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonIcon.d.ts","names":[],"sources":["../src/components/ButtonIcon/ButtonIcon.tsx"],"mappings":";;;;;KAIK,SAAA,GAAY,YAAA,UAAsB,YAAA;AAAA,UAEtB,eAAA,SAAwB,IAAA,CAAK,oBAAA,CAAqB,iBAAA;EACjE,SAAA;EACA,IAAA,EAAM,SAAA;EACN,SAAA;EACA,KAAA;EACA,OAAA,IAAW,KAAA,EAAO,UAAA,CAAW,iBAAA;EAC7B,KAAA;EACA,IAAA;AAAA;AAAA;EAcA,SAAA;EACA,QAAA;EACA,IAAA;EACA,SAAA;EACA,KAAA;EACA,OAAA;EACA,GAAA;EACA,KAAA;EACA,IAAA;EAAA,GACG;AAAA,GACF,eAAA;EACD,GAAA,GAAM,GAAA,CAAI,iBAAA;AAAA,IACX,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA"}
1
+ {"version":3,"file":"ButtonIcon.d.ts","names":[],"sources":["../src/components/ButtonIcon/ButtonIcon.tsx"],"mappings":";;;;;KAIK,SAAA,GAAY,YAAA,UAAsB,YAAA;AAAA,UAEtB,eAAA,SAAwB,IAAA,CAAK,oBAAA,CAAqB,iBAAA;EACjE,SAAA;EACA,IAAA,EAAM,SAAA;EACN,SAAA;EACA,QAAA;EACA,KAAA;EACA,OAAA,IAAW,KAAA,EAAO,UAAA,CAAW,iBAAA;EAC7B,KAAA;EACA,IAAA;EACA,OAAA;AAAA;AAAA;EAmBA,SAAA;EACA,QAAA;EACA,IAAA;EACA,QAAA;EACA,SAAA;EACA,KAAA;EACA,OAAA;EACA,GAAA;EACA,KAAA;EACA,IAAA;EACA,OAAA;EAAA,GACG;AAAA,GACF,eAAA;EACD,GAAA,GAAM,GAAA,CAAI,iBAAA;AAAA,IACX,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA"}
@@ -8,6 +8,10 @@ import { jsx } from "react/jsx-runtime";
8
8
  const buttonStyles = `bg-level-two hover:bg-level-four aspect-square text-text-primary inline-flex shrink-0 items-center justify-center whitespace-nowrap transition-[background-color,color,transform]
9
9
  active:scale-[0.97] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent focus:outline-none cursor-pointer [&_svg]:pointer-events-none [&_svg]:shrink-0 disabled:opacity-50
10
10
  disabled:pointer-events-none disabled:text-text-secondary disabled:hover:bg-level-one`;
11
+ const variantConfig = {
12
+ default: "",
13
+ "active-color": "bg-transparent hover:bg-white/6 data-[state=active]:bg-accent/20 data-[state=active]:text-accent data-[state=active]:hover:bg-accent/20"
14
+ };
11
15
  const sizeConfig = {
12
16
  sm: {
13
17
  button: "size-8 min-size-8",
@@ -22,7 +26,7 @@ const sizeConfig = {
22
26
  icon: 32
23
27
  }
24
28
  };
25
- const ButtonIcon = ({ className, disabled, icon, isLoading = false, label, onClick, ref, shape = "square", size = "md", ...props }) => {
29
+ const ButtonIcon = ({ className, disabled, icon, isActive = false, isLoading = false, label, onClick, ref, shape = "square", size = "md", variant = "default", ...props }) => {
26
30
  const handleClick = (event) => onClick?.(event);
27
31
  const effectiveLabel = isLoading ? `${label} - Loading` : label;
28
32
  const renderIcon = () => {
@@ -53,7 +57,8 @@ const ButtonIcon = ({ className, disabled, icon, isLoading = false, label, onCli
53
57
  };
54
58
  return /* @__PURE__ */ jsx("button", {
55
59
  "aria-label": effectiveLabel,
56
- className: cn(buttonStyles, shape === "circle" ? "rounded-full" : "rounded-lg", sizeConfig[size].button, isLoading && "cursor-wait", disabled && "cursor-not-allowed opacity-50", className),
60
+ className: cn(buttonStyles, variantConfig[variant], shape === "circle" ? "rounded-full" : "rounded-lg", sizeConfig[size].button, isLoading && "cursor-wait", disabled && "cursor-not-allowed opacity-50", className),
61
+ "data-state": isActive ? "active" : "inactive",
57
62
  disabled: disabled ?? isLoading,
58
63
  onClick: handleClick,
59
64
  ref,
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonIcon.js","names":[],"sources":["../src/components/ButtonIcon/ButtonIcon.tsx"],"sourcesContent":["import { LoaderIcon } from '@components/Icons'\nimport { cn } from '@utils/twUtils'\nimport { cloneElement, isValidElement, type ButtonHTMLAttributes, type MouseEvent, type ReactElement, type Ref, type SVGProps } from 'react'\n\ntype IconOrSVG = ReactElement | (() => ReactElement)\n\nexport interface ButtonIconProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onClick'> {\n className?: string\n icon: IconOrSVG\n isLoading?: boolean\n label: string\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void\n shape?: 'circle' | 'square'\n size?: 'sm' | 'md' | 'lg'\n}\n\nconst buttonStyles = `bg-level-two hover:bg-level-four aspect-square text-text-primary inline-flex shrink-0 items-center justify-center whitespace-nowrap transition-[background-color,color,transform]\n active:scale-[0.97] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent focus:outline-none cursor-pointer [&_svg]:pointer-events-none [&_svg]:shrink-0 disabled:opacity-50\n disabled:pointer-events-none disabled:text-text-secondary disabled:hover:bg-level-one`\n\nconst sizeConfig = {\n sm: { button: 'size-8 min-size-8', icon: 16 },\n md: { button: 'size-10 min-size-10', icon: 24 },\n lg: { button: 'size-12 min-size-12', icon: 32 },\n} as const\n\nexport const ButtonIcon = ({\n className,\n disabled,\n icon,\n isLoading = false,\n label,\n onClick,\n ref,\n shape = 'square',\n size = 'md',\n ...props\n}: ButtonIconProps & {\n ref?: Ref<HTMLButtonElement>\n}) => {\n const handleClick = (event: MouseEvent<HTMLButtonElement>) => onClick?.(event)\n\n const effectiveLabel = isLoading ? `${label} - Loading` : label\n\n const renderIcon = (): ReactElement => {\n if (isLoading) {\n return (\n <LoaderIcon\n size={sizeConfig[size as keyof typeof sizeConfig].icon}\n aria-hidden='true'\n />\n )\n }\n\n const iconElement = typeof icon === 'function' ? icon() : icon\n\n if (isValidElement(iconElement)) {\n const currentSize = sizeConfig[size as keyof typeof sizeConfig].icon\n\n if (iconElement.type === 'svg') {\n return cloneElement(iconElement as ReactElement<SVGProps<SVGSVGElement>>, {\n className: cn('shrink-0', (iconElement.props as { className?: string }).className),\n height: currentSize,\n width: currentSize,\n 'aria-hidden': 'true',\n })\n }\n\n // For icon components, pass size prop if the element accepts it\n const baseIconProps = {\n 'aria-hidden': 'true',\n className: cn('shrink-0', (iconElement.props as { className?: string }).className),\n }\n\n // Check if this is an icon component that accepts size prop\n // All our icon components accept refs and have displayName containing 'Icon'\n const componentType = iconElement.type as { displayName?: string }\n const isIconComponent = componentType.displayName?.endsWith('Icon') ?? false\n\n if (isIconComponent) {\n const iconPropsWithSize = {\n ...baseIconProps,\n size: currentSize,\n }\n return cloneElement(iconElement, iconPropsWithSize)\n }\n\n return cloneElement(iconElement, baseIconProps)\n }\n\n return iconElement\n }\n\n return (\n <button\n aria-label={effectiveLabel}\n className={cn(buttonStyles, shape === 'circle' ? 'rounded-full' : 'rounded-lg', sizeConfig[size as keyof typeof sizeConfig].button, isLoading && 'cursor-wait', disabled && 'cursor-not-allowed opacity-50', className)}\n data-testid='spectral-button-icon'\n disabled={disabled ?? isLoading}\n onClick={handleClick}\n ref={ref}\n type='button'\n {...props}\n >\n {renderIcon()}\n </button>\n )\n}\nButtonIcon.displayName = 'ButtonIcon'\n"],"mappings":";;;;;;;AAgBA,MAAM,eAAe;;;AAIrB,MAAM,aAAa;CACjB,IAAI;EAAE,QAAQ;EAAqB,MAAM;EAAI;CAC7C,IAAI;EAAE,QAAQ;EAAuB,MAAM;EAAI;CAC/C,IAAI;EAAE,QAAQ;EAAuB,MAAM;EAAI;CAChD;AAED,MAAa,cAAc,EACzB,WACA,UACA,MACA,YAAY,OACZ,OACA,SACA,KACA,QAAQ,UACR,OAAO,MACP,GAAG,YAGC;CACJ,MAAM,eAAe,UAAyC,UAAU,MAAK;CAE7E,MAAM,iBAAiB,YAAY,GAAG,MAAM,cAAc;CAE1D,MAAM,mBAAiC;AACrC,MAAI,UACF,QACE,oBAAC,YAAD;GACE,MAAM,WAAW,MAAiC;GAClD,eAAY;GACb;EAIL,MAAM,cAAc,OAAO,SAAS,aAAa,MAAM,GAAG;AAE1D,MAAI,eAAe,YAAY,EAAE;GAC/B,MAAM,cAAc,WAAW,MAAiC;AAEhE,OAAI,YAAY,SAAS,MACvB,QAAO,aAAa,aAAsD;IACxE,WAAW,GAAG,YAAa,YAAY,MAAiC,UAAU;IAClF,QAAQ;IACR,OAAO;IACP,eAAe;IAChB,CAAA;GAIH,MAAM,gBAAgB;IACpB,eAAe;IACf,WAAW,GAAG,YAAa,YAAY,MAAiC,UAAU;IACpF;AAOA,OAHsB,YAAY,KACI,aAAa,SAAS,OAAO,IAAI,MAOrE,QAAO,aAAa,aAAa;IAH/B,GAAG;IACH,MAAM;IAE0C,CAAA;AAGpD,UAAO,aAAa,aAAa,cAAa;;AAGhD,SAAO;;AAGT,QACE,oBAAC,UAAD;EACE,cAAY;EACZ,WAAW,GAAG,cAAc,UAAU,WAAW,iBAAiB,cAAc,WAAW,MAAiC,QAAQ,aAAa,eAAe,YAAY,iCAAiC,UAAU;EAEvN,UAAU,YAAY;EACtB,SAAS;EACJ;EACL,MAAK;EACL,GAAI;YAEH,YAAY;EACP;;AAGZ,WAAW,cAAc"}
1
+ {"version":3,"file":"ButtonIcon.js","names":[],"sources":["../src/components/ButtonIcon/ButtonIcon.tsx"],"sourcesContent":["import { LoaderIcon } from '@components/Icons'\nimport { cn } from '@utils/twUtils'\nimport { cloneElement, isValidElement, type ButtonHTMLAttributes, type MouseEvent, type ReactElement, type Ref, type SVGProps } from 'react'\n\ntype IconOrSVG = ReactElement | (() => ReactElement)\n\nexport interface ButtonIconProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onClick'> {\n className?: string\n icon: IconOrSVG\n isLoading?: boolean\n isActive?: boolean\n label: string\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void\n shape?: 'circle' | 'square'\n size?: 'sm' | 'md' | 'lg'\n variant?: 'default' | 'active-color'\n}\n\nconst buttonStyles = `bg-level-two hover:bg-level-four aspect-square text-text-primary inline-flex shrink-0 items-center justify-center whitespace-nowrap transition-[background-color,color,transform]\n active:scale-[0.97] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent focus:outline-none cursor-pointer [&_svg]:pointer-events-none [&_svg]:shrink-0 disabled:opacity-50\n disabled:pointer-events-none disabled:text-text-secondary disabled:hover:bg-level-one`\n\nconst variantConfig = {\n default: '',\n 'active-color': 'bg-transparent hover:bg-white/6 data-[state=active]:bg-accent/20 data-[state=active]:text-accent data-[state=active]:hover:bg-accent/20',\n} as const\n\nconst sizeConfig = {\n sm: { button: 'size-8 min-size-8', icon: 16 },\n md: { button: 'size-10 min-size-10', icon: 24 },\n lg: { button: 'size-12 min-size-12', icon: 32 },\n} as const\n\nexport const ButtonIcon = ({\n className,\n disabled,\n icon,\n isActive = false,\n isLoading = false,\n label,\n onClick,\n ref,\n shape = 'square',\n size = 'md',\n variant = 'default',\n ...props\n}: ButtonIconProps & {\n ref?: Ref<HTMLButtonElement>\n}) => {\n const handleClick = (event: MouseEvent<HTMLButtonElement>) => onClick?.(event)\n\n const effectiveLabel = isLoading ? `${label} - Loading` : label\n\n const renderIcon = (): ReactElement => {\n if (isLoading) {\n return (\n <LoaderIcon\n size={sizeConfig[size as keyof typeof sizeConfig].icon}\n aria-hidden='true'\n />\n )\n }\n\n const iconElement = typeof icon === 'function' ? icon() : icon\n\n if (isValidElement(iconElement)) {\n const currentSize = sizeConfig[size as keyof typeof sizeConfig].icon\n\n if (iconElement.type === 'svg') {\n return cloneElement(iconElement as ReactElement<SVGProps<SVGSVGElement>>, {\n className: cn('shrink-0', (iconElement.props as { className?: string }).className),\n height: currentSize,\n width: currentSize,\n 'aria-hidden': 'true',\n })\n }\n\n // For icon components, pass size prop if the element accepts it\n const baseIconProps = {\n 'aria-hidden': 'true',\n className: cn('shrink-0', (iconElement.props as { className?: string }).className),\n }\n\n // Check if this is an icon component that accepts size prop\n // All our icon components accept refs and have displayName containing 'Icon'\n const componentType = iconElement.type as { displayName?: string }\n const isIconComponent = componentType.displayName?.endsWith('Icon') ?? false\n\n if (isIconComponent) {\n const iconPropsWithSize = {\n ...baseIconProps,\n size: currentSize,\n }\n return cloneElement(iconElement, iconPropsWithSize)\n }\n\n return cloneElement(iconElement, baseIconProps)\n }\n\n return iconElement\n }\n\n return (\n <button\n aria-label={effectiveLabel}\n className={cn(buttonStyles, variantConfig[variant], shape === 'circle' ? 'rounded-full' : 'rounded-lg', sizeConfig[size as keyof typeof sizeConfig].button, isLoading && 'cursor-wait', disabled && 'cursor-not-allowed opacity-50', className)}\n data-state={isActive ? 'active' : 'inactive'}\n data-testid='spectral-button-icon'\n disabled={disabled ?? isLoading}\n onClick={handleClick}\n ref={ref}\n type='button'\n {...props}\n >\n {renderIcon()}\n </button>\n )\n}\nButtonIcon.displayName = 'ButtonIcon'\n"],"mappings":";;;;;;;AAkBA,MAAM,eAAe;;;AAIrB,MAAM,gBAAgB;CACpB,SAAS;CACT,gBAAgB;CACjB;AAED,MAAM,aAAa;CACjB,IAAI;EAAE,QAAQ;EAAqB,MAAM;EAAI;CAC7C,IAAI;EAAE,QAAQ;EAAuB,MAAM;EAAI;CAC/C,IAAI;EAAE,QAAQ;EAAuB,MAAM;EAAI;CAChD;AAED,MAAa,cAAc,EACzB,WACA,UACA,MACA,WAAW,OACX,YAAY,OACZ,OACA,SACA,KACA,QAAQ,UACR,OAAO,MACP,UAAU,WACV,GAAG,YAGC;CACJ,MAAM,eAAe,UAAyC,UAAU,MAAK;CAE7E,MAAM,iBAAiB,YAAY,GAAG,MAAM,cAAc;CAE1D,MAAM,mBAAiC;AACrC,MAAI,UACF,QACE,oBAAC,YAAD;GACE,MAAM,WAAW,MAAiC;GAClD,eAAY;GACb;EAIL,MAAM,cAAc,OAAO,SAAS,aAAa,MAAM,GAAG;AAE1D,MAAI,eAAe,YAAY,EAAE;GAC/B,MAAM,cAAc,WAAW,MAAiC;AAEhE,OAAI,YAAY,SAAS,MACvB,QAAO,aAAa,aAAsD;IACxE,WAAW,GAAG,YAAa,YAAY,MAAiC,UAAU;IAClF,QAAQ;IACR,OAAO;IACP,eAAe;IAChB,CAAA;GAIH,MAAM,gBAAgB;IACpB,eAAe;IACf,WAAW,GAAG,YAAa,YAAY,MAAiC,UAAU;IACpF;AAOA,OAHsB,YAAY,KACI,aAAa,SAAS,OAAO,IAAI,MAOrE,QAAO,aAAa,aAAa;IAH/B,GAAG;IACH,MAAM;IAE0C,CAAA;AAGpD,UAAO,aAAa,aAAa,cAAa;;AAGhD,SAAO;;AAGT,QACE,oBAAC,UAAD;EACE,cAAY;EACZ,WAAW,GAAG,cAAc,cAAc,UAAU,UAAU,WAAW,iBAAiB,cAAc,WAAW,MAAiC,QAAQ,aAAa,eAAe,YAAY,iCAAiC,UAAU;EAC/O,cAAY,WAAW,WAAW;EAElC,UAAU,YAAY;EACtB,SAAS;EACJ;EACL,MAAK;EACL,GAAI;YAEH,YAAY;EACP;;AAGZ,WAAW,cAAc"}
package/dist/Card.d.ts ADDED
@@ -0,0 +1,43 @@
1
+ 'use client';
2
+ import { ComponentProps } from "react";
3
+ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
+
5
+ //#region src/components/Card/Card.d.ts
6
+ type CardShadow = 'none' | 'low' | 'medium' | 'high';
7
+ type CardProps = ComponentProps<'div'> & {
8
+ asChild?: boolean;
9
+ shadow?: CardShadow;
10
+ };
11
+ type CardPartProps = ComponentProps<'div'> & {
12
+ asChild?: boolean;
13
+ };
14
+ declare const Card: ({
15
+ asChild,
16
+ children,
17
+ className,
18
+ shadow,
19
+ ...props
20
+ }: CardProps) => _$react_jsx_runtime0.JSX.Element;
21
+ declare const CardHeader: ({
22
+ asChild,
23
+ className,
24
+ ...props
25
+ }: CardPartProps) => _$react_jsx_runtime0.JSX.Element;
26
+ declare const CardTitle: ({
27
+ className,
28
+ asChild,
29
+ ...props
30
+ }: CardPartProps) => _$react_jsx_runtime0.JSX.Element;
31
+ declare const CardHeaderEndSlot: ({
32
+ className,
33
+ asChild,
34
+ ...props
35
+ }: CardPartProps) => _$react_jsx_runtime0.JSX.Element;
36
+ declare const CardContent: ({
37
+ asChild,
38
+ className,
39
+ ...props
40
+ }: CardPartProps) => _$react_jsx_runtime0.JSX.Element;
41
+ //#endregion
42
+ export { Card, CardContent, CardHeader, CardHeaderEndSlot, CardPartProps, CardProps, CardShadow, CardTitle };
43
+ //# sourceMappingURL=Card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card.d.ts","names":[],"sources":["../src/components/Card/Card.tsx"],"mappings":";;;;;KAIY,UAAA;AAAA,KACA,SAAA,GAAY,cAAA;EAA0B,OAAA;EAAmB,MAAA,GAAS,UAAA;AAAA;AAAA,KAClE,aAAA,GAAgB,cAAA;EAA0B,OAAA;AAAA;AAAA,cAWzC,IAAA;EAAI,OAAA;EAAA,QAAA;EAAA,SAAA;EAAA,MAAA;EAAA,GAAA;AAAA,GAAyE,SAAA,KAAS,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,cAetF,UAAA;EAAU,OAAA;EAAA,SAAA;EAAA,GAAA;AAAA,GAA8C,aAAA,KAAa,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,cAarE,SAAA;EAAS,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,GAA8C,aAAA,KAAa,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,cAapE,iBAAA;EAAiB,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,GAA8C,aAAA,KAAa,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,cAa5E,WAAA;EAAW,OAAA;EAAA,SAAA;EAAA,GAAA;AAAA,GAA8C,aAAA,KAAa,oBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1,19 +1,27 @@
1
1
  'use client';
2
- import { cn } from "../utils/twUtils.js";
3
- import { Slot } from "../primitives/slot.js";
2
+ import { cn } from "./utils/twUtils.js";
3
+ import { Slot } from "./primitives/slot.js";
4
4
  import "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
 
7
- //#region src/components/DataCard/Card.tsx
8
- const cardClasses = "text-text-primary flex flex-col w-full card-effects p-3 gap-6 rounded-xl";
9
- const CardBase = ({ ...props }) => {
10
- return /* @__PURE__ */ jsx("div", {
7
+ //#region src/components/Card/Card.tsx
8
+ const cardClasses = "text-text-primary flex flex-col w-full p-3 gap-6 rounded-xl";
9
+ const cardShadowClasses = {
10
+ none: "",
11
+ low: "card-effects-small",
12
+ medium: "card-effects-medium",
13
+ high: "card-effects"
14
+ };
15
+ const Card = ({ asChild = false, children, className, shadow = "high", ...props }) => {
16
+ return /* @__PURE__ */ jsx(asChild ? Slot : "div", {
17
+ className: cn(cardClasses, cardShadowClasses[shadow], className),
11
18
  "data-slot": "card",
12
- ...props
19
+ ...props,
20
+ children
13
21
  });
14
22
  };
15
- const CardHeader = ({ className, ...props }) => {
16
- return /* @__PURE__ */ jsx("div", {
23
+ const CardHeader = ({ asChild = false, className, ...props }) => {
24
+ return /* @__PURE__ */ jsx(asChild ? Slot : "div", {
17
25
  className: cn("pb-4 @container/card-header flex items-center justify-between", className),
18
26
  "data-slot": "card-header",
19
27
  ...props
@@ -33,22 +41,14 @@ const CardHeaderEndSlot = ({ className, asChild = false, ...props }) => {
33
41
  ...props
34
42
  });
35
43
  };
36
- const CardContent = ({ className, ...props }) => {
37
- return /* @__PURE__ */ jsx("div", {
44
+ const CardContent = ({ asChild = false, className, ...props }) => {
45
+ return /* @__PURE__ */ jsx(asChild ? Slot : "div", {
38
46
  className,
39
47
  "data-slot": "card-content",
40
48
  ...props
41
49
  });
42
50
  };
43
- const Card = ({ asChild = false, children, className, ...props }) => {
44
- return /* @__PURE__ */ jsx(asChild ? Slot : "div", {
45
- className: cn(cardClasses, className),
46
- "data-slot": "card",
47
- ...props,
48
- children
49
- });
50
- };
51
51
 
52
52
  //#endregion
53
- export { Card, CardBase, CardContent, CardHeader, CardHeaderEndSlot, CardTitle };
53
+ export { Card, CardContent, CardHeader, CardHeaderEndSlot, CardTitle };
54
54
  //# sourceMappingURL=Card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card.js","names":[],"sources":["../src/components/Card/Card.tsx"],"sourcesContent":["import { Slot } from '@primitives/slot'\nimport { cn } from '@utils/twUtils'\nimport { type ComponentProps } from 'react'\n\nexport type CardShadow = 'none' | 'low' | 'medium' | 'high'\nexport type CardProps = ComponentProps<'div'> & { asChild?: boolean; shadow?: CardShadow }\nexport type CardPartProps = ComponentProps<'div'> & { asChild?: boolean }\n\nconst cardClasses = 'text-text-primary flex flex-col w-full p-3 gap-6 rounded-xl'\n\nconst cardShadowClasses: Record<CardShadow, string> = {\n none: '',\n low: 'card-effects-small',\n medium: 'card-effects-medium',\n high: 'card-effects',\n}\n\nexport const Card = ({ asChild = false, children, className, shadow = 'high', ...props }: CardProps) => {\n const Comp = asChild ? Slot : 'div'\n\n return (\n <Comp\n className={cn(cardClasses, cardShadowClasses[shadow], className)}\n data-slot='card'\n data-testid='spectral-card'\n {...props}\n >\n {children}\n </Comp>\n )\n}\n\nexport const CardHeader = ({ asChild = false, className, ...props }: CardPartProps) => {\n const Comp = asChild ? Slot : 'div'\n\n return (\n <Comp\n className={cn('pb-4 @container/card-header flex items-center justify-between', className)}\n data-slot='card-header'\n data-testid='spectral-card-header'\n {...props}\n />\n )\n}\n\nexport const CardTitle = ({ className, asChild = false, ...props }: CardPartProps) => {\n const Comp = asChild ? Slot : 'div'\n\n return (\n <Comp\n className={cn('font-semibold text-xl', className)}\n data-slot='card-title'\n data-testid='spectral-card-title'\n {...props}\n />\n )\n}\n\nexport const CardHeaderEndSlot = ({ className, asChild = false, ...props }: CardPartProps) => {\n const Comp = asChild ? Slot : 'div'\n\n return (\n <Comp\n className={cn('justify-self-end', className)}\n data-slot='card-action'\n data-testid='spectral-card-action'\n {...props}\n />\n )\n}\n\nexport const CardContent = ({ asChild = false, className, ...props }: CardPartProps) => {\n const Comp = asChild ? Slot : 'div'\n\n return (\n <Comp\n className={className}\n data-slot='card-content'\n data-testid='spectral-card-content'\n {...props}\n />\n )\n}\n"],"mappings":";;;;;;;AAQA,MAAM,cAAc;AAEpB,MAAM,oBAAgD;CACpD,MAAM;CACN,KAAK;CACL,QAAQ;CACR,MAAM;CACR;AAEA,MAAa,QAAQ,EAAE,UAAU,OAAO,UAAU,WAAW,SAAS,QAAQ,GAAG,YAAuB;AAGtG,QACE,oBAHW,UAAU,OAAO,OAG5B;EACE,WAAW,GAAG,aAAa,kBAAkB,SAAS,UAAU;EAChE,aAAU;EAEV,GAAI;EAEH;EACG;;AAIV,MAAa,cAAc,EAAE,UAAU,OAAO,WAAW,GAAG,YAA2B;AAGrF,QACE,oBAHW,UAAU,OAAO,OAG5B;EACE,WAAW,GAAG,iEAAiE,UAAU;EACzF,aAAU;EAEV,GAAI;EACL;;AAIL,MAAa,aAAa,EAAE,WAAW,UAAU,OAAO,GAAG,YAA2B;AAGpF,QACE,oBAHW,UAAU,OAAO,OAG5B;EACE,WAAW,GAAG,yBAAyB,UAAU;EACjD,aAAU;EAEV,GAAI;EACL;;AAIL,MAAa,qBAAqB,EAAE,WAAW,UAAU,OAAO,GAAG,YAA2B;AAG5F,QACE,oBAHW,UAAU,OAAO,OAG5B;EACE,WAAW,GAAG,oBAAoB,UAAU;EAC5C,aAAU;EAEV,GAAI;EACL;;AAIL,MAAa,eAAe,EAAE,UAAU,OAAO,WAAW,GAAG,YAA2B;AAGtF,QACE,oBAHW,UAAU,OAAO,OAG5B;EACa;EACX,aAAU;EAEV,GAAI;EACL"}
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { cn } from "../utils/twUtils.js";
3
3
  import { useUncontrolledState } from "../hooks/useUncontrolledState.js";
4
- import { Card } from "../DataCard/Card.js";
4
+ import { Card } from "../Card.js";
5
5
  import { Popover, PopoverContent, PopoverTrigger } from "../Popover.js";
6
6
  import { DirectionalColorWheelGlyph } from "./DirectionalColorWheelGlyph.js";
7
7
  import { useCallback, useRef, useState } from "react";
@@ -1 +1 @@
1
- {"version":3,"file":"DirectionalColorWheelDisclosure.js","names":[],"sources":["../../src/components/DirectionalColorWheel/DirectionalColorWheelDisclosure.tsx"],"sourcesContent":["import { Card } from '@components/DataCard/Card'\nimport { Popover, PopoverContent, PopoverTrigger } from '@components/Popover/Popover'\nimport { useUncontrolledState } from '@hooks/useUncontrolledState'\nimport { cn } from '@utils/twUtils'\nimport { useCallback, useRef, useState, type CSSProperties, type MouseEvent as ReactMouseEvent, type PointerEvent as ReactPointerEvent, type ReactNode, type Ref, type RefObject } from 'react'\nimport { DirectionalColorWheelGlyph } from './DirectionalColorWheelGlyph'\n\ntype DisclosureAlign = 'start' | 'center' | 'end'\ntype DisclosureSide = 'top' | 'right' | 'bottom' | 'left'\n\n/** Pixel offset of the draggable disclosure from where it is mounted (default `{ x: 0, y: 0 }`). */\nexport interface DirectionalColorWheelDisclosurePosition {\n /** Horizontal offset in px (positive moves right). */\n x: number\n /** Vertical offset in px (positive moves down). */\n y: number\n}\n\n// Drag distance (px) below which a press on the glyph is a tap (toggle), not a reposition drag.\nconst DRAG_SLOP_PX = 4\nconst ORIGIN: DirectionalColorWheelDisclosurePosition = { x: 0, y: 0 }\n\nexport interface DirectionalColorWheelDisclosureProps {\n /** Accessible name for the collapsed trigger button (`aria-expanded` conveys the open state). */\n accessibleName?: string\n /** How the panel aligns to the trigger. Defaults to `start` for a corner-anchored feed widget. */\n align?: DisclosureAlign\n /** The expandable content: the bare wheel, or the wheel framed by the GRAMS controls. */\n children: ReactNode\n /** Layout-only class extension for the expanded panel. */\n className?: string\n /**\n * Override the collapsed affordance. Defaults to a {@link DirectionalColorWheelGlyph} mini\n * compass; pass a palette-matched glyph (or any node) to mirror the expanded wheel's colours.\n */\n collapsedIcon?: ReactNode\n /** Min distance (px) from the viewport edge before the panel flips/shifts. */\n collisionPadding?: number\n dataTestId?: string\n /**\n * Element the drag is clamped to so the glyph can't be parked off the feed. Pass a ref to the\n * container the disclosure is mounted over (e.g. the plot surface). `undefined`/`null` = no clamp\n * (free drag). Only used when `draggable`.\n */\n dragBoundsRef?: RefObject<HTMLElement | null> | null\n /** Uncontrolled initial expanded state. */\n defaultExpanded?: boolean\n /** Uncontrolled initial position offset (px) from the mount point. Defaults to the corner it is mounted at. */\n defaultPosition?: DirectionalColorWheelDisclosurePosition\n disabled?: boolean\n /**\n * When `true`, the operator can drag the collapsed glyph to reposition the whole widget (the\n * expanded panel reflows with it in real time). A tap still toggles; only a drag past a small\n * slop repositions. Defaults to `false` (fixed at its mount point).\n */\n draggable?: boolean\n /**\n * When `false`, the panel stays open during outside interaction and Esc — it toggles only via the\n * trigger (or a controlled `expanded`). Use this for a feed-mounted wheel so clicking/scrubbing the\n * feed underneath doesn't dismiss the legend. Defaults to `true` (standard popover dismissal).\n */\n dismissOnInteractOutside?: boolean\n /**\n * Controlled expanded state. `undefined`/`null` leaves the disclosure uncontrolled, so Horizon\n * can gate the feature with a single nullable value (PAT-028).\n */\n expanded?: boolean | null\n /** Called whenever the disclosure expands or collapses (click, Esc, or outside dismiss). */\n onExpandedChange?: (expanded: boolean) => void\n /** Called as the glyph is dragged with the next position offset (px). Pair with `position` to persist it. */\n onPositionChange?: (position: DirectionalColorWheelDisclosurePosition) => void\n /**\n * Controlled position offset (px) from the mount point. `undefined`/`null` leaves it uncontrolled,\n * so Horizon can gate the feature with a single nullable value (PAT-028). Requires `draggable` to move.\n */\n position?: DirectionalColorWheelDisclosurePosition | null\n ref?: Ref<HTMLButtonElement>\n /** Which side of the trigger the panel grows toward. Defaults to `top` (icon at a bottom corner). */\n side?: DisclosureSide\n /** Gap (px) between the trigger and the panel. */\n sideOffset?: number\n /**\n * Inline styles merged onto the expanded panel (the {@link Card}). Use this for visual overrides\n * — background, border, shadow — that the `card-effects` base class doesn't expose to `className`\n * utilities. The default panel width is applied first, so a `width` set here wins over the `width` prop.\n */\n style?: CSSProperties\n /** Layout-only class extension for the collapsed trigger button. */\n triggerClassName?: string\n /** Panel width: a pixel number or a CSS width string. Defaults to `'fit-content'` (hugs content). */\n width?: number | string\n}\n\n/**\n * Collapse/expand affordance for the {@link DirectionalColorWheel}, built on the Spectral\n * {@link Popover} primitive so it inherits corner anchoring, click-outside/Esc dismissal, focus\n * management, and `aria-expanded`/`aria-controls` for free. Collapsed it is a small compass glyph\n * (a real `<button>`); expanded it reveals whatever `children` it wraps — the bare wheel, or the\n * wheel plus the GRAMS Color Angle / Threshold / Sectors controls — inside a Spectral {@link Card}\n * panel, growing from the icon with a `transform-origin`-anchored zoom+fade that is automatically\n * skipped under `prefers-reduced-motion`. `className` extends the Card panel's classes and `style`\n * applies inline overrides to it (background, border, shadow, …).\n *\n * Pass `draggable` to let the operator drag the glyph to reposition the whole widget on a feed; the\n * expanded panel reflows with it in real time, and `dragBoundsRef` clamps it inside its container so\n * it can't be parked off the feed. Position is controlled+uncontrolled via\n * `position` / `defaultPosition` / `onPositionChange` (a nullable px offset from the mount point,\n * PAT-028) so a consumer can persist where the operator parked it.\n */\nexport const DirectionalColorWheelDisclosure = ({\n accessibleName = 'Directional color legend',\n align = 'start',\n children,\n className,\n collapsedIcon,\n collisionPadding = 8,\n dataTestId = 'spectral-directional-color-wheel-disclosure',\n defaultExpanded,\n defaultPosition,\n disabled = false,\n dismissOnInteractOutside = true,\n draggable = false,\n dragBoundsRef,\n expanded,\n onExpandedChange,\n onPositionChange,\n position,\n ref,\n side = 'top',\n sideOffset = 8,\n style,\n triggerClassName,\n width = 'fit-content',\n}: DirectionalColorWheelDisclosureProps) => {\n const panelRef = useRef<HTMLDivElement>(null)\n // `width` sizes the Card panel; the popover hugs it (fit-content) so there is no empty gap.\n const panelWidth = typeof width === 'number' ? `${width}px` : width\n\n const [positionValue, setPositionValue] = useUncontrolledState<DirectionalColorWheelDisclosurePosition>({ defaultValue: defaultPosition ?? ORIGIN, onChange: onPositionChange, value: position ?? undefined })\n const [dragging, setDragging] = useState(false)\n // Live reposition drag (a ref so rapid moves don't hinge on re-render timing). `bounds` is the\n // clamp rect (the dragBoundsRef element); `homeLeft`/`homeTop` are the trigger's viewport position\n // at translate 0, so the allowed offset range keeps the glyph fully inside `bounds`.\n const dragRef = useRef<{ baseX: number; baseY: number; bounds: DOMRect | null; height: number; homeLeft: number; homeTop: number; moved: boolean; pointerId: number; startX: number; startY: number; width: number } | null>(null)\n // Set when a drag passes the slop so the trailing click is swallowed (preventDefault → Radix's\n // composed trigger toggle bails) instead of also expanding/collapsing the panel.\n const suppressClickRef = useRef(false)\n\n const handleTriggerPointerDown = useCallback(\n (event: ReactPointerEvent<HTMLButtonElement>) => {\n suppressClickRef.current = false\n if (!draggable || disabled) return\n try {\n event.currentTarget.setPointerCapture(event.pointerId)\n } catch {\n // setPointerCapture can throw without an active pointer (e.g. synthetic test events).\n }\n const triggerRect = event.currentTarget.getBoundingClientRect()\n dragRef.current = {\n baseX: positionValue.x,\n baseY: positionValue.y,\n bounds: dragBoundsRef?.current?.getBoundingClientRect() ?? null,\n height: triggerRect.height,\n // Subtract the active translate to recover the trigger's home (translate-0) position.\n homeLeft: triggerRect.left - positionValue.x,\n homeTop: triggerRect.top - positionValue.y,\n moved: false,\n pointerId: event.pointerId,\n startX: event.clientX,\n startY: event.clientY,\n width: triggerRect.width,\n }\n },\n [disabled, draggable, dragBoundsRef, positionValue.x, positionValue.y],\n )\n\n const handleTriggerPointerMove = useCallback(\n (event: ReactPointerEvent<HTMLButtonElement>) => {\n const drag = dragRef.current\n if (drag === null || drag.pointerId !== event.pointerId) return\n const deltaX = event.clientX - drag.startX\n const deltaY = event.clientY - drag.startY\n if (!drag.moved) {\n if (Math.hypot(deltaX, deltaY) <= DRAG_SLOP_PX) return\n drag.moved = true\n suppressClickRef.current = true\n // Promote the trigger to its own compositor layer and poll the popover position every frame\n // (`updatePositionStrategy='always'`) so the panel reflows with the glyph rather than snapping.\n setDragging(true)\n }\n let nextX = drag.baseX + deltaX\n let nextY = drag.baseY + deltaY\n // Clamp the offset so the glyph stays fully inside the bounds element (can't be lost off the feed).\n if (drag.bounds !== null) {\n nextX = Math.min(Math.max(nextX, drag.bounds.left - drag.homeLeft), drag.bounds.right - drag.homeLeft - drag.width)\n nextY = Math.min(Math.max(nextY, drag.bounds.top - drag.homeTop), drag.bounds.bottom - drag.homeTop - drag.height)\n }\n setPositionValue({ x: nextX, y: nextY })\n },\n [setPositionValue],\n )\n\n const endDrag = useCallback(() => {\n dragRef.current = null\n setDragging(false)\n }, [])\n\n const handleTriggerClick = useCallback((event: ReactMouseEvent<HTMLButtonElement>) => {\n if (suppressClickRef.current) {\n suppressClickRef.current = false\n event.preventDefault()\n }\n }, [])\n\n return (\n <Popover\n defaultOpen={defaultExpanded}\n onOpenChange={onExpandedChange}\n open={expanded ?? undefined}\n >\n <PopoverTrigger asChild>\n <button\n aria-label={accessibleName}\n className={cn(\n 'inline-flex items-center justify-center rounded-full text-text-primary outline-none hover:opacity-80 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-50 motion-safe:transition-opacity motion-safe:duration-150',\n draggable && 'touch-none',\n draggable && (dragging ? 'cursor-grabbing' : 'cursor-grab'),\n triggerClassName,\n )}\n data-slot='directional-color-wheel-disclosure-trigger'\n data-testid={`${dataTestId}-trigger`}\n disabled={disabled}\n onClick={handleTriggerClick}\n onLostPointerCapture={endDrag}\n onPointerDown={handleTriggerPointerDown}\n onPointerMove={handleTriggerPointerMove}\n onPointerUp={endDrag}\n ref={ref}\n // A pure translate (no left/top) keeps the reposition on the compositor; `will-change`\n // promotes it for the duration of the drag.\n style={draggable ? { transform: `translate(${positionValue.x}px, ${positionValue.y}px)`, willChange: dragging ? 'transform' : undefined } : undefined}\n type='button'\n >\n {collapsedIcon ?? <DirectionalColorWheelGlyph />}\n </button>\n </PopoverTrigger>\n <PopoverContent\n align={align}\n // Chrome-less positioning/animation layer; the visible panel is the Spectral Card below.\n className='p-0 flex items-center justify-center overflow-visible border-none bg-transparent shadow-none'\n collisionPadding={collisionPadding}\n data-slot='directional-color-wheel-disclosure-content'\n data-testid={`${dataTestId}-content`}\n // When dismissal is off, swallow Radix's outside-pointer/Esc dismiss so the panel stays open\n // while the user interacts with whatever sits under it (e.g. the feed); the trigger still toggles.\n onEscapeKeyDown={dismissOnInteractOutside ? undefined : (event) => event.preventDefault()}\n onInteractOutside={dismissOnInteractOutside ? undefined : (event) => event.preventDefault()}\n onOpenAutoFocus={(event) => {\n // Focus the panel, not the first sector wedge (which would paint an accent ring on a sector).\n event.preventDefault()\n panelRef.current?.focus()\n }}\n side={side}\n sideOffset={sideOffset}\n // While dragging, poll the anchor position every animation frame so the panel tracks the\n // glyph in real time; back to the cheaper 'optimized' strategy at rest.\n updatePositionStrategy={dragging ? 'always' : 'optimized'}\n width='fit-content'\n >\n <Card\n className={cn('outline-none', className)}\n data-slot='directional-color-wheel-disclosure-panel'\n ref={panelRef}\n // The default width is applied first so a caller-supplied `style.width` (or any other\n // visual override the `card-effects` base class locks down) takes precedence.\n style={{ width: panelWidth, ...style }}\n tabIndex={-1}\n >\n {children}\n </Card>\n </PopoverContent>\n </Popover>\n )\n}\n\nDirectionalColorWheelDisclosure.displayName = 'DirectionalColorWheelDisclosure'\n"],"mappings":"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"}
1
+ {"version":3,"file":"DirectionalColorWheelDisclosure.js","names":[],"sources":["../../src/components/DirectionalColorWheel/DirectionalColorWheelDisclosure.tsx"],"sourcesContent":["import { Card } from '@components/Card/Card'\nimport { Popover, PopoverContent, PopoverTrigger } from '@components/Popover/Popover'\nimport { useUncontrolledState } from '@hooks/useUncontrolledState'\nimport { cn } from '@utils/twUtils'\nimport { useCallback, useRef, useState, type CSSProperties, type MouseEvent as ReactMouseEvent, type PointerEvent as ReactPointerEvent, type ReactNode, type Ref, type RefObject } from 'react'\nimport { DirectionalColorWheelGlyph } from './DirectionalColorWheelGlyph'\n\ntype DisclosureAlign = 'start' | 'center' | 'end'\ntype DisclosureSide = 'top' | 'right' | 'bottom' | 'left'\n\n/** Pixel offset of the draggable disclosure from where it is mounted (default `{ x: 0, y: 0 }`). */\nexport interface DirectionalColorWheelDisclosurePosition {\n /** Horizontal offset in px (positive moves right). */\n x: number\n /** Vertical offset in px (positive moves down). */\n y: number\n}\n\n// Drag distance (px) below which a press on the glyph is a tap (toggle), not a reposition drag.\nconst DRAG_SLOP_PX = 4\nconst ORIGIN: DirectionalColorWheelDisclosurePosition = { x: 0, y: 0 }\n\nexport interface DirectionalColorWheelDisclosureProps {\n /** Accessible name for the collapsed trigger button (`aria-expanded` conveys the open state). */\n accessibleName?: string\n /** How the panel aligns to the trigger. Defaults to `start` for a corner-anchored feed widget. */\n align?: DisclosureAlign\n /** The expandable content: the bare wheel, or the wheel framed by the GRAMS controls. */\n children: ReactNode\n /** Layout-only class extension for the expanded panel. */\n className?: string\n /**\n * Override the collapsed affordance. Defaults to a {@link DirectionalColorWheelGlyph} mini\n * compass; pass a palette-matched glyph (or any node) to mirror the expanded wheel's colours.\n */\n collapsedIcon?: ReactNode\n /** Min distance (px) from the viewport edge before the panel flips/shifts. */\n collisionPadding?: number\n dataTestId?: string\n /**\n * Element the drag is clamped to so the glyph can't be parked off the feed. Pass a ref to the\n * container the disclosure is mounted over (e.g. the plot surface). `undefined`/`null` = no clamp\n * (free drag). Only used when `draggable`.\n */\n dragBoundsRef?: RefObject<HTMLElement | null> | null\n /** Uncontrolled initial expanded state. */\n defaultExpanded?: boolean\n /** Uncontrolled initial position offset (px) from the mount point. Defaults to the corner it is mounted at. */\n defaultPosition?: DirectionalColorWheelDisclosurePosition\n disabled?: boolean\n /**\n * When `true`, the operator can drag the collapsed glyph to reposition the whole widget (the\n * expanded panel reflows with it in real time). A tap still toggles; only a drag past a small\n * slop repositions. Defaults to `false` (fixed at its mount point).\n */\n draggable?: boolean\n /**\n * When `false`, the panel stays open during outside interaction and Esc — it toggles only via the\n * trigger (or a controlled `expanded`). Use this for a feed-mounted wheel so clicking/scrubbing the\n * feed underneath doesn't dismiss the legend. Defaults to `true` (standard popover dismissal).\n */\n dismissOnInteractOutside?: boolean\n /**\n * Controlled expanded state. `undefined`/`null` leaves the disclosure uncontrolled, so Horizon\n * can gate the feature with a single nullable value (PAT-028).\n */\n expanded?: boolean | null\n /** Called whenever the disclosure expands or collapses (click, Esc, or outside dismiss). */\n onExpandedChange?: (expanded: boolean) => void\n /** Called as the glyph is dragged with the next position offset (px). Pair with `position` to persist it. */\n onPositionChange?: (position: DirectionalColorWheelDisclosurePosition) => void\n /**\n * Controlled position offset (px) from the mount point. `undefined`/`null` leaves it uncontrolled,\n * so Horizon can gate the feature with a single nullable value (PAT-028). Requires `draggable` to move.\n */\n position?: DirectionalColorWheelDisclosurePosition | null\n ref?: Ref<HTMLButtonElement>\n /** Which side of the trigger the panel grows toward. Defaults to `top` (icon at a bottom corner). */\n side?: DisclosureSide\n /** Gap (px) between the trigger and the panel. */\n sideOffset?: number\n /**\n * Inline styles merged onto the expanded panel (the {@link Card}). Use this for visual overrides\n * — background, border, shadow — that the `card-effects` base class doesn't expose to `className`\n * utilities. The default panel width is applied first, so a `width` set here wins over the `width` prop.\n */\n style?: CSSProperties\n /** Layout-only class extension for the collapsed trigger button. */\n triggerClassName?: string\n /** Panel width: a pixel number or a CSS width string. Defaults to `'fit-content'` (hugs content). */\n width?: number | string\n}\n\n/**\n * Collapse/expand affordance for the {@link DirectionalColorWheel}, built on the Spectral\n * {@link Popover} primitive so it inherits corner anchoring, click-outside/Esc dismissal, focus\n * management, and `aria-expanded`/`aria-controls` for free. Collapsed it is a small compass glyph\n * (a real `<button>`); expanded it reveals whatever `children` it wraps — the bare wheel, or the\n * wheel plus the GRAMS Color Angle / Threshold / Sectors controls — inside a Spectral {@link Card}\n * panel, growing from the icon with a `transform-origin`-anchored zoom+fade that is automatically\n * skipped under `prefers-reduced-motion`. `className` extends the Card panel's classes and `style`\n * applies inline overrides to it (background, border, shadow, …).\n *\n * Pass `draggable` to let the operator drag the glyph to reposition the whole widget on a feed; the\n * expanded panel reflows with it in real time, and `dragBoundsRef` clamps it inside its container so\n * it can't be parked off the feed. Position is controlled+uncontrolled via\n * `position` / `defaultPosition` / `onPositionChange` (a nullable px offset from the mount point,\n * PAT-028) so a consumer can persist where the operator parked it.\n */\nexport const DirectionalColorWheelDisclosure = ({\n accessibleName = 'Directional color legend',\n align = 'start',\n children,\n className,\n collapsedIcon,\n collisionPadding = 8,\n dataTestId = 'spectral-directional-color-wheel-disclosure',\n defaultExpanded,\n defaultPosition,\n disabled = false,\n dismissOnInteractOutside = true,\n draggable = false,\n dragBoundsRef,\n expanded,\n onExpandedChange,\n onPositionChange,\n position,\n ref,\n side = 'top',\n sideOffset = 8,\n style,\n triggerClassName,\n width = 'fit-content',\n}: DirectionalColorWheelDisclosureProps) => {\n const panelRef = useRef<HTMLDivElement>(null)\n // `width` sizes the Card panel; the popover hugs it (fit-content) so there is no empty gap.\n const panelWidth = typeof width === 'number' ? `${width}px` : width\n\n const [positionValue, setPositionValue] = useUncontrolledState<DirectionalColorWheelDisclosurePosition>({ defaultValue: defaultPosition ?? ORIGIN, onChange: onPositionChange, value: position ?? undefined })\n const [dragging, setDragging] = useState(false)\n // Live reposition drag (a ref so rapid moves don't hinge on re-render timing). `bounds` is the\n // clamp rect (the dragBoundsRef element); `homeLeft`/`homeTop` are the trigger's viewport position\n // at translate 0, so the allowed offset range keeps the glyph fully inside `bounds`.\n const dragRef = useRef<{ baseX: number; baseY: number; bounds: DOMRect | null; height: number; homeLeft: number; homeTop: number; moved: boolean; pointerId: number; startX: number; startY: number; width: number } | null>(null)\n // Set when a drag passes the slop so the trailing click is swallowed (preventDefault → Radix's\n // composed trigger toggle bails) instead of also expanding/collapsing the panel.\n const suppressClickRef = useRef(false)\n\n const handleTriggerPointerDown = useCallback(\n (event: ReactPointerEvent<HTMLButtonElement>) => {\n suppressClickRef.current = false\n if (!draggable || disabled) return\n try {\n event.currentTarget.setPointerCapture(event.pointerId)\n } catch {\n // setPointerCapture can throw without an active pointer (e.g. synthetic test events).\n }\n const triggerRect = event.currentTarget.getBoundingClientRect()\n dragRef.current = {\n baseX: positionValue.x,\n baseY: positionValue.y,\n bounds: dragBoundsRef?.current?.getBoundingClientRect() ?? null,\n height: triggerRect.height,\n // Subtract the active translate to recover the trigger's home (translate-0) position.\n homeLeft: triggerRect.left - positionValue.x,\n homeTop: triggerRect.top - positionValue.y,\n moved: false,\n pointerId: event.pointerId,\n startX: event.clientX,\n startY: event.clientY,\n width: triggerRect.width,\n }\n },\n [disabled, draggable, dragBoundsRef, positionValue.x, positionValue.y],\n )\n\n const handleTriggerPointerMove = useCallback(\n (event: ReactPointerEvent<HTMLButtonElement>) => {\n const drag = dragRef.current\n if (drag === null || drag.pointerId !== event.pointerId) return\n const deltaX = event.clientX - drag.startX\n const deltaY = event.clientY - drag.startY\n if (!drag.moved) {\n if (Math.hypot(deltaX, deltaY) <= DRAG_SLOP_PX) return\n drag.moved = true\n suppressClickRef.current = true\n // Promote the trigger to its own compositor layer and poll the popover position every frame\n // (`updatePositionStrategy='always'`) so the panel reflows with the glyph rather than snapping.\n setDragging(true)\n }\n let nextX = drag.baseX + deltaX\n let nextY = drag.baseY + deltaY\n // Clamp the offset so the glyph stays fully inside the bounds element (can't be lost off the feed).\n if (drag.bounds !== null) {\n nextX = Math.min(Math.max(nextX, drag.bounds.left - drag.homeLeft), drag.bounds.right - drag.homeLeft - drag.width)\n nextY = Math.min(Math.max(nextY, drag.bounds.top - drag.homeTop), drag.bounds.bottom - drag.homeTop - drag.height)\n }\n setPositionValue({ x: nextX, y: nextY })\n },\n [setPositionValue],\n )\n\n const endDrag = useCallback(() => {\n dragRef.current = null\n setDragging(false)\n }, [])\n\n const handleTriggerClick = useCallback((event: ReactMouseEvent<HTMLButtonElement>) => {\n if (suppressClickRef.current) {\n suppressClickRef.current = false\n event.preventDefault()\n }\n }, [])\n\n return (\n <Popover\n defaultOpen={defaultExpanded}\n onOpenChange={onExpandedChange}\n open={expanded ?? undefined}\n >\n <PopoverTrigger asChild>\n <button\n aria-label={accessibleName}\n className={cn(\n 'inline-flex items-center justify-center rounded-full text-text-primary outline-none hover:opacity-80 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-50 motion-safe:transition-opacity motion-safe:duration-150',\n draggable && 'touch-none',\n draggable && (dragging ? 'cursor-grabbing' : 'cursor-grab'),\n triggerClassName,\n )}\n data-slot='directional-color-wheel-disclosure-trigger'\n data-testid={`${dataTestId}-trigger`}\n disabled={disabled}\n onClick={handleTriggerClick}\n onLostPointerCapture={endDrag}\n onPointerDown={handleTriggerPointerDown}\n onPointerMove={handleTriggerPointerMove}\n onPointerUp={endDrag}\n ref={ref}\n // A pure translate (no left/top) keeps the reposition on the compositor; `will-change`\n // promotes it for the duration of the drag.\n style={draggable ? { transform: `translate(${positionValue.x}px, ${positionValue.y}px)`, willChange: dragging ? 'transform' : undefined } : undefined}\n type='button'\n >\n {collapsedIcon ?? <DirectionalColorWheelGlyph />}\n </button>\n </PopoverTrigger>\n <PopoverContent\n align={align}\n // Chrome-less positioning/animation layer; the visible panel is the Spectral Card below.\n className='p-0 flex items-center justify-center overflow-visible border-none bg-transparent shadow-none'\n collisionPadding={collisionPadding}\n data-slot='directional-color-wheel-disclosure-content'\n data-testid={`${dataTestId}-content`}\n // When dismissal is off, swallow Radix's outside-pointer/Esc dismiss so the panel stays open\n // while the user interacts with whatever sits under it (e.g. the feed); the trigger still toggles.\n onEscapeKeyDown={dismissOnInteractOutside ? undefined : (event) => event.preventDefault()}\n onInteractOutside={dismissOnInteractOutside ? undefined : (event) => event.preventDefault()}\n onOpenAutoFocus={(event) => {\n // Focus the panel, not the first sector wedge (which would paint an accent ring on a sector).\n event.preventDefault()\n panelRef.current?.focus()\n }}\n side={side}\n sideOffset={sideOffset}\n // While dragging, poll the anchor position every animation frame so the panel tracks the\n // glyph in real time; back to the cheaper 'optimized' strategy at rest.\n updatePositionStrategy={dragging ? 'always' : 'optimized'}\n width='fit-content'\n >\n <Card\n className={cn('outline-none', className)}\n data-slot='directional-color-wheel-disclosure-panel'\n ref={panelRef}\n // The default width is applied first so a caller-supplied `style.width` (or any other\n // visual override the `card-effects` base class locks down) takes precedence.\n style={{ width: panelWidth, ...style }}\n tabIndex={-1}\n >\n {children}\n </Card>\n </PopoverContent>\n </Popover>\n )\n}\n\nDirectionalColorWheelDisclosure.displayName = 'DirectionalColorWheelDisclosure'\n"],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ 'use client';
2
+ import { IconProps } from "../components/Icons/iconTypes.js";
3
+ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
+
5
+ //#region src/components/Icons/DeploymentsIcon.d.ts
6
+ declare const DeploymentsIcon: (({
7
+ ref,
8
+ className,
9
+ title,
10
+ description,
11
+ size,
12
+ ...rest
13
+ }: IconProps) => _$react_jsx_runtime0.JSX.Element) & {
14
+ displayName: string;
15
+ };
16
+ //#endregion
17
+ export { DeploymentsIcon };
18
+ //# sourceMappingURL=DeploymentsIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeploymentsIcon.d.ts","names":[],"sources":["../../src/components/Icons/DeploymentsIcon.tsx"],"mappings":";;;;;cAyCa,eAAA;EAAe,GAAA;EAAA,SAAA;EAAA,KAAA;EAAA,WAAA;EAAA,IAAA;EAAA,GAAA;AAAA,GAtCyD,SAAA,KAAS,oBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -0,0 +1,46 @@
1
+ 'use client';
2
+ import { IconBase } from "./IconBase.js";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+
5
+ //#region src/components/Icons/DeploymentsIcon.tsx
6
+ const IconDeployments = ({ ref, className, title, description, size = 24, ...rest }) => {
7
+ return /* @__PURE__ */ jsxs(IconBase, {
8
+ className,
9
+ description,
10
+ ref,
11
+ size,
12
+ title,
13
+ ...rest,
14
+ children: [
15
+ /* @__PURE__ */ jsx("path", {
16
+ d: "M12 10V2",
17
+ stroke: "currentColor",
18
+ strokeLinecap: "round",
19
+ strokeLinejoin: "round"
20
+ }),
21
+ /* @__PURE__ */ jsx("path", {
22
+ d: "M16 6L12 10L8 6",
23
+ stroke: "currentColor",
24
+ strokeLinecap: "round",
25
+ strokeLinejoin: "round"
26
+ }),
27
+ /* @__PURE__ */ jsx("path", {
28
+ d: "M2 15C2.6 15.5 3.2 16 4.5 16C7 16 7 14 9.5 14C12.1 14 11.9 16 14.5 16C17 16 17 14 19.5 14C20.8 14 21.4 14.5 22 15",
29
+ stroke: "currentColor",
30
+ strokeLinecap: "round",
31
+ strokeLinejoin: "round"
32
+ }),
33
+ /* @__PURE__ */ jsx("path", {
34
+ d: "M2 21C2.6 21.5 3.2 22 4.5 22C7 22 7 20 9.5 20C12.1 20 11.9 22 14.5 22C17 22 17 20 19.5 20C20.8 20 21.4 20.5 22 21",
35
+ stroke: "currentColor",
36
+ strokeLinecap: "round",
37
+ strokeLinejoin: "round"
38
+ })
39
+ ]
40
+ });
41
+ };
42
+ const DeploymentsIcon = Object.assign(IconDeployments, { displayName: "DeploymentsIcon" });
43
+
44
+ //#endregion
45
+ export { DeploymentsIcon };
46
+ //# sourceMappingURL=DeploymentsIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeploymentsIcon.js","names":[],"sources":["../../src/components/Icons/DeploymentsIcon.tsx"],"sourcesContent":["import { IconBase } from './IconBase'\nimport { type IconProps } from './iconTypes'\n\nconst IconDeployments = ({ ref, className, title, description, size = 24, ...rest }: IconProps) => {\n return (\n <IconBase\n className={className}\n description={description}\n ref={ref}\n size={size}\n title={title}\n {...rest}\n >\n <path\n d='M12 10V2'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n <path\n d='M16 6L12 10L8 6'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n <path\n d='M2 15C2.6 15.5 3.2 16 4.5 16C7 16 7 14 9.5 14C12.1 14 11.9 16 14.5 16C17 16 17 14 19.5 14C20.8 14 21.4 14.5 22 15'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n <path\n d='M2 21C2.6 21.5 3.2 22 4.5 22C7 22 7 20 9.5 20C12.1 20 11.9 22 14.5 22C17 22 17 20 19.5 20C20.8 20 21.4 20.5 22 21'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n </IconBase>\n )\n}\n\nexport const DeploymentsIcon = Object.assign(IconDeployments, { displayName: 'DeploymentsIcon' })\n"],"mappings":";;;;;AAGA,MAAM,mBAAmB,EAAE,KAAK,WAAW,OAAO,aAAa,OAAO,IAAI,GAAG,WAAsB;AACjG,QACE,qBAAC,UAAD;EACa;EACE;EACR;EACC;EACC;EACP,GAAI;YANN;GAQE,oBAAC,QAAD;IACE,GAAE;IACF,QAAO;IACP,eAAc;IACd,gBAAe;IACf;GACF,oBAAC,QAAD;IACE,GAAE;IACF,QAAO;IACP,eAAc;IACd,gBAAe;IACf;GACF,oBAAC,QAAD;IACE,GAAE;IACF,QAAO;IACP,eAAc;IACd,gBAAe;IACf;GACF,oBAAC,QAAD;IACE,GAAE;IACF,QAAO;IACP,eAAc;IACd,gBAAe;IACf;GACO;;;AAIf,MAAa,kBAAkB,OAAO,OAAO,iBAAiB,EAAE,aAAa,mBAAmB,CAAC"}
@@ -12,7 +12,7 @@ const IconDot = ({ ref, className, title, description, size = 24, ...rest }) =>
12
12
  title,
13
13
  ...rest,
14
14
  children: /* @__PURE__ */ jsx("path", {
15
- d: "M11.9999 8C12.7836 7.99995 13.5501 8.23015 14.2041 8.662C14.8581 9.09385 15.3708 9.70832 15.6786 10.4291C15.9864 11.1499 16.0757 11.9452 15.9354 12.7162C15.795 13.4873 15.4313 14.2002 14.8893 14.7663C14.3473 15.3324 13.6509 15.7268 12.8867 15.9005C12.1225 16.0742 11.324 16.0196 10.5906 15.7434C9.85715 15.4672 9.22099 14.9817 8.76114 14.347C8.3013 13.7124 8.03801 12.9566 8.004 12.1736L8 12L8.004 11.8264C8.04873 10.7966 8.48927 9.82382 9.23374 9.11093C9.97821 8.39803 10.9691 8.00006 11.9999 8Z",
15
+ d: "M11.9997 3C13.7631 2.9999 15.4877 3.51784 16.9592 4.4895C18.4307 5.46116 19.5844 6.84371 20.2769 8.46545C20.9694 10.0872 21.1703 11.8766 20.8545 13.6116C20.5388 15.3465 19.7203 16.9504 18.5008 18.2241C17.2813 19.4979 15.7145 20.3853 13.995 20.7761C12.2755 21.167 10.4791 21.0441 8.82883 20.4227C7.17858 19.8013 5.74724 18.7087 4.71257 17.2808C3.67791 15.8528 3.08553 14.1524 3.009 12.3906L3 12L3.009 11.6094C3.10965 9.29235 4.10086 7.1036 5.77592 5.49959C7.45098 3.89557 9.68057 3.00013 11.9997 3Z",
16
16
  fill: "currentColor"
17
17
  })
18
18
  });
@@ -1 +1 @@
1
- {"version":3,"file":"DotIcon.js","names":[],"sources":["../../src/components/Icons/DotIcon.tsx"],"sourcesContent":["import { IconBase } from './IconBase'\nimport { type IconProps } from './iconTypes'\n\nconst IconDot = ({ ref, className, title, description, size = 24, ...rest }: IconProps) => {\n return (\n <IconBase\n className={className}\n description={description}\n ref={ref}\n size={size}\n title={title}\n {...rest}\n >\n <path\n d='M11.9999 8C12.7836 7.99995 13.5501 8.23015 14.2041 8.662C14.8581 9.09385 15.3708 9.70832 15.6786 10.4291C15.9864 11.1499 16.0757 11.9452 15.9354 12.7162C15.795 13.4873 15.4313 14.2002 14.8893 14.7663C14.3473 15.3324 13.6509 15.7268 12.8867 15.9005C12.1225 16.0742 11.324 16.0196 10.5906 15.7434C9.85715 15.4672 9.22099 14.9817 8.76114 14.347C8.3013 13.7124 8.03801 12.9566 8.004 12.1736L8 12L8.004 11.8264C8.04873 10.7966 8.48927 9.82382 9.23374 9.11093C9.97821 8.39803 10.9691 8.00006 11.9999 8Z'\n fill='currentColor'\n />\n </IconBase>\n )\n}\n\nexport const DotIcon = Object.assign(IconDot, { displayName: 'DotIcon' })\n"],"mappings":";;;;;AAGA,MAAM,WAAW,EAAE,KAAK,WAAW,OAAO,aAAa,OAAO,IAAI,GAAG,WAAsB;AACzF,QACE,oBAAC,UAAD;EACa;EACE;EACR;EACC;EACC;EACP,GAAI;YAEJ,oBAAC,QAAD;GACE,GAAE;GACF,MAAK;GACL;EACO;;AAIf,MAAa,UAAU,OAAO,OAAO,SAAS,EAAE,aAAa,WAAW,CAAC"}
1
+ {"version":3,"file":"DotIcon.js","names":[],"sources":["../../src/components/Icons/DotIcon.tsx"],"sourcesContent":["import { IconBase } from './IconBase'\nimport { type IconProps } from './iconTypes'\n\nconst IconDot = ({ ref, className, title, description, size = 24, ...rest }: IconProps) => {\n return (\n <IconBase\n className={className}\n description={description}\n ref={ref}\n size={size}\n title={title}\n {...rest}\n >\n <path\n d='M11.9997 3C13.7631 2.9999 15.4877 3.51784 16.9592 4.4895C18.4307 5.46116 19.5844 6.84371 20.2769 8.46545C20.9694 10.0872 21.1703 11.8766 20.8545 13.6116C20.5388 15.3465 19.7203 16.9504 18.5008 18.2241C17.2813 19.4979 15.7145 20.3853 13.995 20.7761C12.2755 21.167 10.4791 21.0441 8.82883 20.4227C7.17858 19.8013 5.74724 18.7087 4.71257 17.2808C3.67791 15.8528 3.08553 14.1524 3.009 12.3906L3 12L3.009 11.6094C3.10965 9.29235 4.10086 7.1036 5.77592 5.49959C7.45098 3.89557 9.68057 3.00013 11.9997 3Z'\n fill='currentColor'\n />\n </IconBase>\n )\n}\n\nexport const DotIcon = Object.assign(IconDot, { displayName: 'DotIcon' })\n"],"mappings":";;;;;AAGA,MAAM,WAAW,EAAE,KAAK,WAAW,OAAO,aAAa,OAAO,IAAI,GAAG,WAAsB;AACzF,QACE,oBAAC,UAAD;EACa;EACE;EACR;EACC;EACC;EACP,GAAI;YAEJ,oBAAC,QAAD;GACE,GAAE;GACF,MAAK;GACL;EACO;;AAIf,MAAa,UAAU,OAAO,OAAO,SAAS,EAAE,aAAa,WAAW,CAAC"}
@@ -0,0 +1,18 @@
1
+ 'use client';
2
+ import { IconProps } from "../components/Icons/iconTypes.js";
3
+ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
+
5
+ //#region src/components/Icons/GeospatialIcon.d.ts
6
+ declare const GeospatialIcon: (({
7
+ ref,
8
+ className,
9
+ title,
10
+ description,
11
+ size,
12
+ ...rest
13
+ }: IconProps) => _$react_jsx_runtime0.JSX.Element) & {
14
+ displayName: string;
15
+ };
16
+ //#endregion
17
+ export { GeospatialIcon };
18
+ //# sourceMappingURL=GeospatialIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeospatialIcon.d.ts","names":[],"sources":["../../src/components/Icons/GeospatialIcon.tsx"],"mappings":";;;;;cAgDa,cAAA;EAAc,GAAA;EAAA,SAAA;EAAA,KAAA;EAAA,WAAA;EAAA,IAAA;EAAA,GAAA;AAAA,GA7CyD,SAAA,KAAS,oBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -0,0 +1,53 @@
1
+ 'use client';
2
+ import { IconBase } from "./IconBase.js";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+
5
+ //#region src/components/Icons/GeospatialIcon.tsx
6
+ const IconGeospatial = ({ ref, className, title, description, size = 24, ...rest }) => {
7
+ return /* @__PURE__ */ jsxs(IconBase, {
8
+ className,
9
+ description,
10
+ ref,
11
+ size,
12
+ title,
13
+ ...rest,
14
+ children: [
15
+ /* @__PURE__ */ jsx("path", {
16
+ d: "M11 17L9 16L3 19V6L9 3L15 6L21 3V9",
17
+ stroke: "currentColor",
18
+ strokeLinecap: "round",
19
+ strokeLinejoin: "round"
20
+ }),
21
+ /* @__PURE__ */ jsx("path", {
22
+ d: "M9 3V16",
23
+ stroke: "currentColor",
24
+ strokeLinecap: "round",
25
+ strokeLinejoin: "round"
26
+ }),
27
+ /* @__PURE__ */ jsx("path", {
28
+ d: "M15 6V8.5",
29
+ stroke: "currentColor",
30
+ strokeLinecap: "round",
31
+ strokeLinejoin: "round"
32
+ }),
33
+ /* @__PURE__ */ jsx("path", {
34
+ d: "M20.9327 16.6096C20.7975 17.3578 20.4641 18.045 19.9745 18.5844C19.5522 19.051 18.7262 19.8558 17.5 21C16.338 19.9278 15.5132 19.123 15.0255 18.5844C14.5359 18.045 14.2025 17.3578 14.0673 16.6096C13.9322 15.8615 14.0014 15.0859 14.2663 14.3811C14.5312 13.6763 14.9798 13.0739 15.5554 12.6501C16.131 12.2262 16.8077 12 17.5 12C18.1923 12 18.869 12.2262 19.4446 12.6501C20.0202 13.0739 20.4688 13.6763 20.7337 14.3811C20.9986 15.0859 21.0678 15.8615 20.9327 16.6096Z",
35
+ stroke: "currentColor",
36
+ strokeLinecap: "round",
37
+ strokeLinejoin: "round"
38
+ }),
39
+ /* @__PURE__ */ jsx("path", {
40
+ d: "M17.5 15V15.01",
41
+ stroke: "currentColor",
42
+ strokeWidth: "3",
43
+ strokeLinecap: "round",
44
+ strokeLinejoin: "round"
45
+ })
46
+ ]
47
+ });
48
+ };
49
+ const GeospatialIcon = Object.assign(IconGeospatial, { displayName: "GeospatialIcon" });
50
+
51
+ //#endregion
52
+ export { GeospatialIcon };
53
+ //# sourceMappingURL=GeospatialIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeospatialIcon.js","names":[],"sources":["../../src/components/Icons/GeospatialIcon.tsx"],"sourcesContent":["import { IconBase } from './IconBase'\nimport { type IconProps } from './iconTypes'\n\nconst IconGeospatial = ({ ref, className, title, description, size = 24, ...rest }: IconProps) => {\n return (\n <IconBase\n className={className}\n description={description}\n ref={ref}\n size={size}\n title={title}\n {...rest}\n >\n <path\n d='M11 17L9 16L3 19V6L9 3L15 6L21 3V9'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n <path\n d='M9 3V16'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n <path\n d='M15 6V8.5'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n <path\n d='M20.9327 16.6096C20.7975 17.3578 20.4641 18.045 19.9745 18.5844C19.5522 19.051 18.7262 19.8558 17.5 21C16.338 19.9278 15.5132 19.123 15.0255 18.5844C14.5359 18.045 14.2025 17.3578 14.0673 16.6096C13.9322 15.8615 14.0014 15.0859 14.2663 14.3811C14.5312 13.6763 14.9798 13.0739 15.5554 12.6501C16.131 12.2262 16.8077 12 17.5 12C18.1923 12 18.869 12.2262 19.4446 12.6501C20.0202 13.0739 20.4688 13.6763 20.7337 14.3811C20.9986 15.0859 21.0678 15.8615 20.9327 16.6096Z'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n <path\n d='M17.5 15V15.01'\n stroke='currentColor'\n strokeWidth='3'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n </IconBase>\n )\n}\n\nexport const GeospatialIcon = Object.assign(IconGeospatial, { displayName: 'GeospatialIcon' })\n"],"mappings":";;;;;AAGA,MAAM,kBAAkB,EAAE,KAAK,WAAW,OAAO,aAAa,OAAO,IAAI,GAAG,WAAsB;AAChG,QACE,qBAAC,UAAD;EACa;EACE;EACR;EACC;EACC;EACP,GAAI;YANN;GAQE,oBAAC,QAAD;IACE,GAAE;IACF,QAAO;IACP,eAAc;IACd,gBAAe;IACf;GACF,oBAAC,QAAD;IACE,GAAE;IACF,QAAO;IACP,eAAc;IACd,gBAAe;IACf;GACF,oBAAC,QAAD;IACE,GAAE;IACF,QAAO;IACP,eAAc;IACd,gBAAe;IACf;GACF,oBAAC,QAAD;IACE,GAAE;IACF,QAAO;IACP,eAAc;IACd,gBAAe;IACf;GACF,oBAAC,QAAD;IACE,GAAE;IACF,QAAO;IACP,aAAY;IACZ,eAAc;IACd,gBAAe;IACf;GACO;;;AAIf,MAAa,iBAAiB,OAAO,OAAO,gBAAgB,EAAE,aAAa,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"LiveViewIcon.d.ts","names":[],"sources":["../../src/components/Icons/LiveViewIcon.tsx"],"mappings":";;;;;cA+Ca,YAAA;EAAY,GAAA;EAAA,SAAA;EAAA,KAAA;EAAA,WAAA;EAAA,IAAA;EAAA,GAAA;AAAA,GA5CyD,SAAA,KAAS,oBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"LiveViewIcon.d.ts","names":[],"sources":["../../src/components/Icons/LiveViewIcon.tsx"],"mappings":";;;;;cAsDa,YAAA;EAAY,GAAA;EAAA,SAAA;EAAA,KAAA;EAAA,WAAA;EAAA,IAAA;EAAA,GAAA;AAAA,GAnDyD,SAAA,KAAS,oBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -13,34 +13,41 @@ const IconLiveView = ({ ref, className, title, description, size = 24, ...rest }
13
13
  ...rest,
14
14
  children: [
15
15
  /* @__PURE__ */ jsx("path", {
16
- d: "M16.2471 7.76099C17.3701 8.88591 18.0008 10.4105 18.0008 12C18.0008 13.5895 17.3701 15.1141 16.2471 16.239",
16
+ d: "M3.11111 7.55556V5.33333C3.11111 4.74396 3.34524 4.17873 3.76199 3.76198C4.17874 3.34524 4.74397 3.11111 5.33334 3.11111H7.55556",
17
17
  stroke: "currentColor",
18
18
  strokeLinecap: "round",
19
19
  strokeLinejoin: "round"
20
20
  }),
21
21
  /* @__PURE__ */ jsx("path", {
22
- d: "M19.075 4.93311C20.9478 6.80814 21.9998 9.34993 21.9998 12.0001C21.9998 14.6503 20.9478 17.1921 19.075 19.0671",
22
+ d: "M3.11111 16.4444V18.6667C3.11111 19.256 3.34524 19.8213 3.76199 20.238C4.17874 20.6548 4.74397 20.8889 5.33334 20.8889H7.55556",
23
23
  stroke: "currentColor",
24
24
  strokeLinecap: "round",
25
25
  strokeLinejoin: "round"
26
26
  }),
27
27
  /* @__PURE__ */ jsx("path", {
28
- d: "M4.92511 19.0671C3.05223 17.1921 2.00024 14.6503 2.00024 12.0001C2.00024 9.34993 3.05223 6.80814 4.92511 4.93311",
28
+ d: "M16.4444 3.11111H18.6667C19.256 3.11111 19.8213 3.34524 20.238 3.76198C20.6548 4.17873 20.8889 4.74396 20.8889 5.33333V7.55556",
29
29
  stroke: "currentColor",
30
30
  strokeLinecap: "round",
31
31
  strokeLinejoin: "round"
32
32
  }),
33
33
  /* @__PURE__ */ jsx("path", {
34
- d: "M7.75299 16.239C6.63 15.1141 5.99927 13.5895 5.99927 12C5.99927 10.4105 6.63 8.88591 7.75299 7.76099",
34
+ d: "M16.4444 20.8889H18.6667C19.256 20.8889 19.8213 20.6548 20.238 20.238C20.6548 19.8213 20.8889 19.256 20.8889 18.6667V16.4444",
35
35
  stroke: "currentColor",
36
36
  strokeLinecap: "round",
37
37
  strokeLinejoin: "round"
38
38
  }),
39
39
  /* @__PURE__ */ jsx("path", {
40
- d: "M12 14C13.1046 14 14 13.1046 14 12C14 10.8954 13.1046 10 12 10C10.8954 10 10 10.8954 10 12C10 13.1046 10.8954 14 12 14Z",
40
+ d: "M12.3756 18.5695C13.5381 17.5256 17 14.1456 17 10.9001C17 9.52092 16.4732 8.19827 15.5355 7.22306C14.5979 6.24786 13.3261 5.7 12 5.7C10.6739 5.7 9.40215 6.24786 8.46447 7.22306C7.52678 8.19827 7 9.52092 7 10.9001C7 14.1456 10.4619 17.5256 11.6244 18.5695C11.7327 18.6542 11.8645 18.7 12 18.7C12.1355 18.7 12.2673 18.6542 12.3756 18.5695Z",
41
41
  stroke: "currentColor",
42
42
  strokeLinecap: "round",
43
43
  strokeLinejoin: "round"
44
+ }),
45
+ /* @__PURE__ */ jsx("path", {
46
+ d: "M12 12.0911C12.8284 12.0911 13.5 11.4195 13.5 10.5911C13.5 9.76266 12.8284 9.09109 12 9.09109C11.1716 9.09109 10.5 9.76266 10.5 10.5911C10.5 11.4195 11.1716 12.0911 12 12.0911Z",
47
+ stroke: "currentColor",
48
+ strokeWidth: "1.75",
49
+ strokeLinecap: "round",
50
+ strokeLinejoin: "round"
44
51
  })
45
52
  ]
46
53
  });
@@ -1 +1 @@
1
- {"version":3,"file":"LiveViewIcon.js","names":[],"sources":["../../src/components/Icons/LiveViewIcon.tsx"],"sourcesContent":["import { IconBase } from './IconBase'\nimport { type IconProps } from './iconTypes'\n\nconst IconLiveView = ({ ref, className, title, description, size = 24, ...rest }: IconProps) => {\n return (\n <IconBase\n className={className}\n description={description}\n ref={ref}\n size={size}\n title={title}\n {...rest}\n >\n <path\n d='M16.2471 7.76099C17.3701 8.88591 18.0008 10.4105 18.0008 12C18.0008 13.5895 17.3701 15.1141 16.2471 16.239'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n <path\n d='M19.075 4.93311C20.9478 6.80814 21.9998 9.34993 21.9998 12.0001C21.9998 14.6503 20.9478 17.1921 19.075 19.0671'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n <path\n d='M4.92511 19.0671C3.05223 17.1921 2.00024 14.6503 2.00024 12.0001C2.00024 9.34993 3.05223 6.80814 4.92511 4.93311'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n <path\n d='M7.75299 16.239C6.63 15.1141 5.99927 13.5895 5.99927 12C5.99927 10.4105 6.63 8.88591 7.75299 7.76099'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n <path\n d='M12 14C13.1046 14 14 13.1046 14 12C14 10.8954 13.1046 10 12 10C10.8954 10 10 10.8954 10 12C10 13.1046 10.8954 14 12 14Z'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n </IconBase>\n )\n}\n\nexport const LiveViewIcon = Object.assign(IconLiveView, { displayName: 'LiveViewIcon' })\n"],"mappings":";;;;;AAGA,MAAM,gBAAgB,EAAE,KAAK,WAAW,OAAO,aAAa,OAAO,IAAI,GAAG,WAAsB;AAC9F,QACE,qBAAC,UAAD;EACa;EACE;EACR;EACC;EACC;EACP,GAAI;YANN;GAQE,oBAAC,QAAD;IACE,GAAE;IACF,QAAO;IACP,eAAc;IACd,gBAAe;IACf;GACF,oBAAC,QAAD;IACE,GAAE;IACF,QAAO;IACP,eAAc;IACd,gBAAe;IACf;GACF,oBAAC,QAAD;IACE,GAAE;IACF,QAAO;IACP,eAAc;IACd,gBAAe;IACf;GACF,oBAAC,QAAD;IACE,GAAE;IACF,QAAO;IACP,eAAc;IACd,gBAAe;IACf;GACF,oBAAC,QAAD;IACE,GAAE;IACF,QAAO;IACP,eAAc;IACd,gBAAe;IACf;GACO;;;AAIf,MAAa,eAAe,OAAO,OAAO,cAAc,EAAE,aAAa,gBAAgB,CAAC"}
1
+ {"version":3,"file":"LiveViewIcon.js","names":[],"sources":["../../src/components/Icons/LiveViewIcon.tsx"],"sourcesContent":["import { IconBase } from './IconBase'\nimport { type IconProps } from './iconTypes'\n\nconst IconLiveView = ({ ref, className, title, description, size = 24, ...rest }: IconProps) => {\n return (\n <IconBase\n className={className}\n description={description}\n ref={ref}\n size={size}\n title={title}\n {...rest}\n >\n <path\n d='M3.11111 7.55556V5.33333C3.11111 4.74396 3.34524 4.17873 3.76199 3.76198C4.17874 3.34524 4.74397 3.11111 5.33334 3.11111H7.55556'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n <path\n d='M3.11111 16.4444V18.6667C3.11111 19.256 3.34524 19.8213 3.76199 20.238C4.17874 20.6548 4.74397 20.8889 5.33334 20.8889H7.55556'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n <path\n d='M16.4444 3.11111H18.6667C19.256 3.11111 19.8213 3.34524 20.238 3.76198C20.6548 4.17873 20.8889 4.74396 20.8889 5.33333V7.55556'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n <path\n d='M16.4444 20.8889H18.6667C19.256 20.8889 19.8213 20.6548 20.238 20.238C20.6548 19.8213 20.8889 19.256 20.8889 18.6667V16.4444'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n <path\n d='M12.3756 18.5695C13.5381 17.5256 17 14.1456 17 10.9001C17 9.52092 16.4732 8.19827 15.5355 7.22306C14.5979 6.24786 13.3261 5.7 12 5.7C10.6739 5.7 9.40215 6.24786 8.46447 7.22306C7.52678 8.19827 7 9.52092 7 10.9001C7 14.1456 10.4619 17.5256 11.6244 18.5695C11.7327 18.6542 11.8645 18.7 12 18.7C12.1355 18.7 12.2673 18.6542 12.3756 18.5695Z'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n <path\n d='M12 12.0911C12.8284 12.0911 13.5 11.4195 13.5 10.5911C13.5 9.76266 12.8284 9.09109 12 9.09109C11.1716 9.09109 10.5 9.76266 10.5 10.5911C10.5 11.4195 11.1716 12.0911 12 12.0911Z'\n stroke='currentColor'\n strokeWidth='1.75'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n </IconBase>\n )\n}\n\nexport const LiveViewIcon = Object.assign(IconLiveView, { displayName: 'LiveViewIcon' })\n"],"mappings":";;;;;AAGA,MAAM,gBAAgB,EAAE,KAAK,WAAW,OAAO,aAAa,OAAO,IAAI,GAAG,WAAsB;AAC9F,QACE,qBAAC,UAAD;EACa;EACE;EACR;EACC;EACC;EACP,GAAI;YANN;GAQE,oBAAC,QAAD;IACE,GAAE;IACF,QAAO;IACP,eAAc;IACd,gBAAe;IACf;GACF,oBAAC,QAAD;IACE,GAAE;IACF,QAAO;IACP,eAAc;IACd,gBAAe;IACf;GACF,oBAAC,QAAD;IACE,GAAE;IACF,QAAO;IACP,eAAc;IACd,gBAAe;IACf;GACF,oBAAC,QAAD;IACE,GAAE;IACF,QAAO;IACP,eAAc;IACd,gBAAe;IACf;GACF,oBAAC,QAAD;IACE,GAAE;IACF,QAAO;IACP,eAAc;IACd,gBAAe;IACf;GACF,oBAAC,QAAD;IACE,GAAE;IACF,QAAO;IACP,aAAY;IACZ,eAAc;IACd,gBAAe;IACf;GACO;;;AAIf,MAAa,eAAe,OAAO,OAAO,cAAc,EAAE,aAAa,gBAAgB,CAAC"}
@@ -0,0 +1,18 @@
1
+ 'use client';
2
+ import { IconProps } from "../components/Icons/iconTypes.js";
3
+ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
+
5
+ //#region src/components/Icons/SparklesAIIcon.d.ts
6
+ declare const SparklesAIIcon: (({
7
+ ref,
8
+ className,
9
+ title,
10
+ description,
11
+ size,
12
+ ...rest
13
+ }: IconProps) => _$react_jsx_runtime0.JSX.Element) & {
14
+ displayName: string;
15
+ };
16
+ //#endregion
17
+ export { SparklesAIIcon };
18
+ //# sourceMappingURL=SparklesAIIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SparklesAIIcon.d.ts","names":[],"sources":["../../src/components/Icons/SparklesAIIcon.tsx"],"mappings":";;;;;cA+Ba,cAAA;EAAc,GAAA;EAAA,SAAA;EAAA,KAAA;EAAA,WAAA;EAAA,IAAA;EAAA,GAAA;AAAA,GA5ByD,SAAA,KAAS,oBAAA,CAAA,GAAA,CAAA,OAAA"}