periplo-ui 1.8.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,22 @@
1
+ import * as LabelPrimitive from '@radix-ui/react-label';
2
+ import * as React from 'react';
3
+ import { ControllerProps, FieldPath, FieldValues } from 'react-hook-form';
4
+ declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues extends FieldValues = TFieldValues>(props: import("react-hook-form").FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
5
+ declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ ...props }: ControllerProps<TFieldValues, TName>) => import("react/jsx-runtime").JSX.Element;
6
+ declare const useFormField: () => {
7
+ invalid: boolean;
8
+ isDirty: boolean;
9
+ isTouched: boolean;
10
+ error?: import("react-hook-form").FieldError | undefined;
11
+ id: string;
12
+ name: string;
13
+ formItemId: string;
14
+ formDescriptionId: string;
15
+ formMessageId: string;
16
+ };
17
+ declare const FormItem: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
18
+ declare const FormLabel: React.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React.RefAttributes<HTMLLabelElement>, "ref"> & React.RefAttributes<HTMLLabelElement>>;
19
+ declare const FormControl: React.ForwardRefExoticComponent<Omit<import("@radix-ui/react-slot").SlotProps & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
20
+ declare const FormDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
21
+ declare const FormMessage: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
22
+ export { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField };
@@ -0,0 +1 @@
1
+ export * from './Form';
@@ -0,0 +1,11 @@
1
+ import * as React from 'react';
2
+ export interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
3
+ htmlType: 'text' | 'tel' | 'email' | 'number' | 'password' | 'url';
4
+ startContent?: React.ReactElement;
5
+ endContent?: React.ReactElement;
6
+ groupText?: string;
7
+ disabled?: boolean;
8
+ error?: boolean;
9
+ }
10
+ declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
11
+ export { Input };
@@ -0,0 +1,20 @@
1
+ /// <reference types="react" />
2
+ import type { StoryObj } from '@storybook/react';
3
+ declare const meta: {
4
+ component: import("react").ForwardRefExoticComponent<import("./Input").InputProps & import("react").RefAttributes<HTMLInputElement>>;
5
+ tags: string[];
6
+ argTypes: {};
7
+ parameters: {
8
+ layout: string;
9
+ };
10
+ };
11
+ export default meta;
12
+ type Story = StoryObj<typeof meta>;
13
+ export declare const Default: Story;
14
+ export declare const Password: Story;
15
+ export declare const Disabled: Story;
16
+ export declare const WithError: Story;
17
+ export declare const GroupText: Story;
18
+ export declare const WithStartContent: Story;
19
+ export declare const WithEndContent: Story;
20
+ export declare const WithTooltipInfo: Story;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export * from './Input';
@@ -0,0 +1,5 @@
1
+ import * as LabelPrimitive from '@radix-ui/react-label';
2
+ import { type VariantProps } from 'class-variance-authority';
3
+ import * as React from 'react';
4
+ declare const Label: React.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React.RefAttributes<HTMLLabelElement>, "ref"> & VariantProps<(props?: import("class-variance-authority/types").ClassProp | undefined) => string> & React.RefAttributes<HTMLLabelElement>>;
5
+ export { Label };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,26 @@
1
+ import * as SelectPrimitive from '@radix-ui/react-select';
2
+ import * as React from 'react';
3
+ declare const Select: React.FC<SelectPrimitive.SelectProps>;
4
+ declare const SelectGroup: React.ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & React.RefAttributes<HTMLDivElement>>;
5
+ declare const SelectValue: React.ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & React.RefAttributes<HTMLSpanElement>>;
6
+ declare const SelectTrigger: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
7
+ declare const SelectScrollUpButton: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollUpButtonProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
8
+ declare const SelectScrollDownButton: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollDownButtonProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
9
+ declare const SelectContent: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
10
+ declare const SelectLabel: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
+ declare const SelectItem: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
12
+ declare const SelectSeparator: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
13
+ export { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectLabel, SelectItem, SelectSeparator, SelectScrollUpButton, SelectScrollDownButton, };
14
+ interface Option {
15
+ value: string;
16
+ label: React.ReactElement | string | number;
17
+ }
18
+ interface Props {
19
+ onValueChange?: (value: string) => void;
20
+ defaultValue?: string;
21
+ placeholder?: string;
22
+ options: Array<Option>;
23
+ className?: string;
24
+ disabled?: boolean;
25
+ }
26
+ export declare function SelectInput({ onValueChange, defaultValue, options, placeholder, className, disabled, }: Readonly<Props>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,15 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ import { SelectInput } from './Select';
3
+ declare const meta: {
4
+ component: typeof SelectInput;
5
+ tags: string[];
6
+ argTypes: {};
7
+ parameters: {
8
+ layout: string;
9
+ };
10
+ };
11
+ export default meta;
12
+ type Story = StoryObj<typeof meta>;
13
+ export declare const WithDefaultValue: Story;
14
+ export declare const WithPlaceholder: Story;
15
+ export declare const Disabled: Story;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export * from './Select';
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ export interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
3
+ disabled?: boolean;
4
+ error?: boolean;
5
+ }
6
+ declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
7
+ export { Textarea };
@@ -0,0 +1,15 @@
1
+ /// <reference types="react" />
2
+ import type { StoryObj } from '@storybook/react';
3
+ declare const meta: {
4
+ component: import("react").ForwardRefExoticComponent<import("./Textarea").TextareaProps & import("react").RefAttributes<HTMLTextAreaElement>>;
5
+ tags: string[];
6
+ argTypes: {};
7
+ parameters: {
8
+ layout: string;
9
+ };
10
+ };
11
+ export default meta;
12
+ type Story = StoryObj<typeof meta>;
13
+ export declare const Default: Story;
14
+ export declare const Disabled: Story;
15
+ export declare const WithError: Story;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export * from './Textarea';
@@ -0,0 +1,13 @@
1
+ import * as TooltipPrimitive from '@radix-ui/react-tooltip';
2
+ import * as React from 'react';
3
+ declare const TooltipProvider: React.FC<TooltipPrimitive.TooltipProviderProps>;
4
+ declare const TooltipPrimitve: React.FC<TooltipPrimitive.TooltipProps>;
5
+ declare const TooltipTrigger: React.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React.RefAttributes<HTMLButtonElement>>;
6
+ declare const TooltipContent: React.ForwardRefExoticComponent<Omit<TooltipPrimitive.TooltipContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
7
+ export { TooltipPrimitve, TooltipTrigger, TooltipContent, TooltipProvider };
8
+ export interface TooltipProps {
9
+ children: React.ReactElement | string;
10
+ triggerElement: React.ReactElement | string;
11
+ side: 'top' | 'right' | 'bottom' | 'left';
12
+ }
13
+ export declare function Tooltip({ triggerElement, children, side }: Readonly<TooltipProps>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ import { Tooltip } from './Tooltip';
3
+ declare const meta: {
4
+ component: typeof Tooltip;
5
+ tags: string[];
6
+ argTypes: {};
7
+ parameters: {
8
+ layout: string;
9
+ };
10
+ };
11
+ export default meta;
12
+ type Story = StoryObj<typeof meta>;
13
+ export declare const Default: Story;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export * from './Tooltip';
@@ -706,9 +706,9 @@ const zr = K("font-base scroll-m-20 tracking-tight", {
706
706
  "headline-large": "font-display text-[2rem] leading-10 font-semibold",
707
707
  "headline-medium": "font-display text-[1.75rem] leading-10 font-semibold",
708
708
  "headline-small": "font-display text-2xl leading-8 font-semibold",
709
- "title-large": "font-display text-[1.375rem] leading-7",
710
- "title-medium": "font-display text-base leading-6",
711
- "title-small": "font-display text-sm leading-5",
709
+ "title-large": "font-display font-medium text-[1.375rem] leading-7",
710
+ "title-medium": "font-display font-medium text-base leading-6",
711
+ "title-small": "font-display font-medium text-sm leading-5",
712
712
  "label-large": "text-sm leading-5 font-semibold",
713
713
  "label-medium": "text-xs leading-4 font-semibold",
714
714
  "label-small": "text-[0.688rem] leading-4 font-semibold",
@@ -748,7 +748,7 @@ const Yr = y.forwardRef(({ className: t, ...a }, n) => /* @__PURE__ */ c.jsx(
748
748
  "div",
749
749
  {
750
750
  ref: n,
751
- className: h("flex flex-col justify-between h-full rounded-lg text-card-foreground shadow-sm", t),
751
+ className: h("flex h-full flex-col justify-between rounded-lg text-card-foreground shadow-sm", t),
752
752
  ...a
753
753
  }
754
754
  ));
@@ -759,13 +759,13 @@ const Ur = y.forwardRef(({ className: t, alt: a, src: n, ...i }, f) => /* @__PUR
759
759
  alt: a,
760
760
  src: n,
761
761
  ref: f,
762
- className: h("rounded-t-[0.438rem] object-cover h-full overflow-hidden", t),
762
+ className: h("h-full overflow-hidden rounded-t-[0.438rem] object-cover", t),
763
763
  ...i
764
764
  }
765
765
  ));
766
766
  Ur.displayName = "CardMedia";
767
767
  const qr = y.forwardRef(
768
- ({ className: t, ...a }, n) => /* @__PURE__ */ c.jsx("div", { ref: n, className: h("p-4 flex flex-col gap-2", t), ...a })
768
+ ({ className: t, ...a }, n) => /* @__PURE__ */ c.jsx("div", { ref: n, className: h("flex flex-col gap-2 p-4", t), ...a })
769
769
  );
770
770
  qr.displayName = "CardContent";
771
771
  const Hr = K("h-10 w-10 relative flex shrink-0 rounded-full", {
@@ -787,7 +787,7 @@ const Jr = m.forwardRef(({ className: t, ...a }, n) => /* @__PURE__ */ c.jsx(
787
787
  ue.Image,
788
788
  {
789
789
  ref: n,
790
- className: h("aspect-square h-full w-full shrink-0 rounded-full overflow-hidden", t),
790
+ className: h("aspect-square h-full w-full shrink-0 overflow-hidden rounded-full", t),
791
791
  ...a
792
792
  }
793
793
  ));
@@ -796,7 +796,7 @@ const Gr = m.forwardRef(({ className: t, ...a }, n) => /* @__PURE__ */ c.jsx(
796
796
  ue.Fallback,
797
797
  {
798
798
  ref: n,
799
- className: h("flex h-full w-full items-center justify-center rounded-full bg-muted", t),
799
+ className: h("bg-muted flex h-full w-full items-center justify-center rounded-full", t),
800
800
  ...a
801
801
  }
802
802
  ));
@@ -815,11 +815,11 @@ const Be = K("rounded-full", {
815
815
  defaultVariants: {
816
816
  intent: "primary"
817
817
  }
818
- }), Kr = y.forwardRef(({ className: t, intent: a, ...n }, i) => /* @__PURE__ */ c.jsxs("span", { className: h(t, "flex absolute h-3 w-3 top-0 right-0"), ref: i, ...n, children: [
818
+ }), Kr = y.forwardRef(({ className: t, intent: a, ...n }, i) => /* @__PURE__ */ c.jsxs("span", { className: h(t, "absolute right-0 top-0 flex h-3 w-3"), ref: i, ...n, children: [
819
819
  /* @__PURE__ */ c.jsx(
820
820
  "span",
821
821
  {
822
- className: h(Be({ intent: a }), "animate-ping absolute inline-flex h-full w-full opacity-75")
822
+ className: h(Be({ intent: a }), "absolute inline-flex h-full w-full animate-ping opacity-75")
823
823
  }
824
824
  ),
825
825
  /* @__PURE__ */ c.jsx("span", { className: h(Be({ intent: a }), "relative inline-flex h-3 w-3") })
@@ -871,25 +871,15 @@ const Xr = y.forwardRef(
871
871
  carouselRef: E,
872
872
  api: g,
873
873
  opts: a,
874
- orientation: a?.axis === "y" ? "vertical" : "horizontal",
874
+ orientation: t,
875
875
  scrollPrev: B,
876
876
  scrollNext: I,
877
877
  canScrollPrev: _,
878
878
  canScrollNext: O
879
879
  }),
880
- [g, O, _, E, a, I, B]
880
+ [g, O, _, E, a, t, I, B]
881
881
  );
882
- return /* @__PURE__ */ c.jsx(Ye.Provider, { value: k, children: /* @__PURE__ */ c.jsx(
883
- "div",
884
- {
885
- ref: F,
886
- className: h("relative", f),
887
- "aria-label": "region",
888
- "aria-roledescription": "carousel",
889
- ...b,
890
- children: v
891
- }
892
- ) });
882
+ return /* @__PURE__ */ c.jsx(Ye.Provider, { value: k, children: /* @__PURE__ */ c.jsx("div", { ref: F, className: h("relative", f), "aria-roledescription": "carousel", ...b, children: v }) });
893
883
  }
894
884
  );
895
885
  Xr.displayName = "Carousel";
@@ -933,7 +923,7 @@ const rt = y.forwardRef(
933
923
  onClick: b,
934
924
  ...i,
935
925
  children: [
936
- /* @__PURE__ */ c.jsx(Lr, { className: "h-4 w-4" }),
926
+ /* @__PURE__ */ c.jsx(Lr, { className: "h-5 w-5" }),
937
927
  /* @__PURE__ */ c.jsx("span", { className: "sr-only", children: "Previous slide" })
938
928
  ]
939
929
  }
@@ -960,7 +950,7 @@ const tt = y.forwardRef(
960
950
  onClick: b,
961
951
  ...i,
962
952
  children: [
963
- /* @__PURE__ */ c.jsx(Br, { className: "h-4 w-4" }),
953
+ /* @__PURE__ */ c.jsx(Br, { className: "h-5 w-5" }),
964
954
  /* @__PURE__ */ c.jsx("span", { className: "sr-only", children: "Next slide" })
965
955
  ]
966
956
  }
@@ -1102,8 +1092,8 @@ const pt = y.forwardRef(({ className: t, children: a, ...n }, i) => /* @__PURE__
1102
1092
  ...n,
1103
1093
  children: [
1104
1094
  a,
1105
- /* @__PURE__ */ c.jsxs(P.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", children: [
1106
- /* @__PURE__ */ c.jsx(Ze, { size: 16, weight: "bold" }),
1095
+ /* @__PURE__ */ c.jsxs(P.Close, { className: "data-[state=open]:text-muted-foreground absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent", children: [
1096
+ /* @__PURE__ */ c.jsx(Ze, { size: 24, weight: "bold" }),
1107
1097
  /* @__PURE__ */ c.jsx("span", { className: "sr-only", children: "Close" })
1108
1098
  ] })
1109
1099
  ]
@@ -1124,7 +1114,7 @@ const bt = y.forwardRef(({ className: t, ...a }, n) => /* @__PURE__ */ c.jsx(
1124
1114
  }
1125
1115
  ));
1126
1116
  bt.displayName = P.Title.displayName;
1127
- const yt = y.forwardRef(({ className: t, ...a }, n) => /* @__PURE__ */ c.jsx(P.Description, { ref: n, className: h("text-sm text-muted-foreground", t), ...a }));
1117
+ const yt = y.forwardRef(({ className: t, ...a }, n) => /* @__PURE__ */ c.jsx(P.Description, { ref: n, className: h("text-muted-foreground text-sm", t), ...a }));
1128
1118
  yt.displayName = P.Description.displayName;
1129
1119
  var Ge = {}, Ke = {};
1130
1120
  (function(t) {
@@ -24,4 +24,4 @@ Check the render method of \``+e+"`."}return""}}function yt(e){{if(e!==void 0){v
24
24
 
25
25
  Check your code at `+t+":"+o+"."}return""}}var pr={};function ht(e){{var t=vr();if(!t){var o=typeof e=="string"?e:e.displayName||e.name;o&&(t=`
26
26
 
27
- Check the top-level render call using <`+o+">.")}return t}}function br(e,t){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var o=ht(t);if(pr[o])return;pr[o]=!0;var l="";e&&e._owner&&e._owner!==ce.current&&(l=" It was passed a child from "+S(e._owner.type)+"."),V(e),_('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',o,l),V(null)}}function yr(e,t){{if(typeof e!="object")return;if(se(e))for(var o=0;o<e.length;o++){var l=e[o];de(l)&&br(l,t)}else if(de(e))e._store&&(e._store.validated=!0);else if(e){var g=M(e);if(typeof g=="function"&&g!==e.entries)for(var v=g.call(e),f;!(f=v.next()).done;)de(f.value)&&br(f.value,t)}}}function Et(e){{var t=e.type;if(t==null||typeof t=="string")return;var o;if(typeof t=="function")o=t.propTypes;else if(typeof t=="object"&&(t.$$typeof===w||t.$$typeof===D))o=t.propTypes;else return;if(o){var l=S(t);it(o,e.props,"prop",l,e)}else if(t.PropTypes!==void 0&&!fe){fe=!0;var g=S(t);_("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",g||"Unknown")}typeof t.getDefaultProps=="function"&&!t.getDefaultProps.isReactClassApproved&&_("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function xt(e){{for(var t=Object.keys(e.props),o=0;o<t.length;o++){var l=t[o];if(l!=="children"&&l!=="key"){V(e),_("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",l),V(null);break}}e.ref!==null&&(V(e),_("Invalid attribute `ref` supplied to `React.Fragment`."),V(null))}}function hr(e,t,o,l,g,v){{var f=$r(e);if(!f){var c="";(e===void 0||typeof e=="object"&&e!==null&&Object.keys(e).length===0)&&(c+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var j=yt(g);j?c+=j:c+=vr();var x;e===null?x="null":se(e)?x="array":e!==void 0&&e.$$typeof===a?(x="<"+(S(e.type)||"Unknown")+" />",c=" Did you accidentally export a JSX literal instead of a component?"):x=typeof e,_("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",x,c)}var C=bt(e,t,o,g,v);if(C==null)return C;if(f){var T=t.children;if(T!==void 0)if(l)if(se(T)){for(var z=0;z<T.length;z++)yr(T[z],e);Object.freeze&&Object.freeze(T)}else _("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else yr(T,e)}return e===i?xt(C):Et(C),C}}function wt(e,t,o){return hr(e,t,o,!0)}function Ct(e,t,o){return hr(e,t,o,!1)}var Ft=Ct,_t=wt;U.Fragment=i,U.jsx=Ft,U.jsxs=_t}()),U}process.env.NODE_ENV==="production"?ae.exports=jr():ae.exports=Dr();var d=ae.exports;function h(...r){return wr.twMerge(xr.clsx(r))}const pe=H.cva("inline-flex items-center gap-2 justify-center whitespace-nowrap rounded-md font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{intent:{neutral:"bg-neutral text-neutral-foreground hover:bg-neutral-600 active:bg-neutral-700 disabled:bg-neutral-200",primary:"bg-primary text-primary-foreground hover:bg-primary-600 active:bg-primary-700 disabled:bg-primary-200",accent:"bg-accent text-accent-foreground hover:bg-accent-600 active:bg-accent-700 disabled:bg-accent-200",success:"bg-success text-success-foreground hover:bg-success-600 active:bg-success-700 disabled:bg-success-200",warning:"bg-warning text-warning-foreground hover:bg-warning-600 active:bg-warning-700 disabled:bg-warning-200",error:"bg-error text-error-foreground hover:bg-error-600 active:bg-error-700 disabled:bg-error-200",link:"text-primary underline-offset-4 hover:underline"},variant:{filled:"",outlined:"bg-transparent border-neutral-950 border disabled:bg-neutral-50",text:"bg-transparent",elevated:"shadow-lg",tonal:""},size:{sm:" text-xs py-2 px-4",md:"text-sm py-2.5 px-4",lg:"text-base py-3 px-4",icon:"h-10 w-10 rounded-full"}},compoundVariants:[{variant:"outlined",intent:"primary",className:"hover:bg-[#FAD264] active:bg-[#FAD264]"},{variant:"text",intent:"primary",className:"hover:bg-[#FAD264] active:bg-[#FAD264]"},{variant:"tonal",intent:"primary",className:"bg-primary-400 hover:bg-[#FFCA1A] active:bg-[#FFB61A]"}],defaultVariants:{intent:"primary",size:"md"}}),Z=u.forwardRef(({className:r,variant:a,intent:n,size:i,endContent:m,startContent:p,...E},F)=>d.jsxs("button",{className:h(pe({variant:a,size:i,intent:n,className:r})),ref:F,...E,children:[p,E.children,m]}));Z.displayName="Button";const be=H.cva("font-base scroll-m-20 tracking-tight",{variants:{variant:{"display-large":"font-display text-[3.563rem] leading-[4rem] font-semibold","display-medium":"font-display text-[2.813rem] leading-[3.5rem] font-semibold","display-small":"font-display text-4xl leading-[2.75rem] font-semibold","headline-large":"font-display text-[2rem] leading-10 font-semibold","headline-medium":"font-display text-[1.75rem] leading-10 font-semibold","headline-small":"font-display text-2xl leading-8 font-semibold","title-large":"font-display text-[1.375rem] leading-7","title-medium":"font-display text-base leading-6","title-small":"font-display text-sm leading-5","label-large":"text-sm leading-5 font-semibold","label-medium":"text-xs leading-4 font-semibold","label-small":"text-[0.688rem] leading-4 font-semibold","body-large":"text-base leading-6","body-medium":"text-sm leading-5","body-small":"text-xs leading-4"},fontWeight:{default:"font-normal",light:"font-light",normal:"font-normal",medium:"font-medium",semiBold:"font-semibold",bold:"font-bold",extraBold:"font-extrabold"},colors:{neutral:"text-neutral",primary:"text-primary",accent:"text-accent",success:"text-success",warning:"text-warning",error:"text-error"}},defaultVariants:{variant:"body-medium"}}),ye=u.forwardRef(({className:r,variant:a,fontWeight:n,colors:i,component:m,...p},E)=>{const F=m??"span";return d.jsx(F,{className:h(be({variant:a,fontWeight:n,colors:i,className:r})),ref:E,...p})});ye.displayName="Typography";const he=y.forwardRef(({className:r,...a},n)=>d.jsx("div",{ref:n,className:h("flex flex-col justify-between h-full rounded-lg text-card-foreground shadow-sm",r),...a}));he.displayName="Card";const Ee=y.forwardRef(({className:r,alt:a,src:n,...i},m)=>d.jsx("img",{alt:a,src:n,ref:m,className:h("rounded-t-[0.438rem] object-cover h-full overflow-hidden",r),...i}));Ee.displayName="CardMedia";const xe=y.forwardRef(({className:r,...a},n)=>d.jsx("div",{ref:n,className:h("p-4 flex flex-col gap-2",r),...a}));xe.displayName="CardContent";const Pr=H.cva("h-10 w-10 relative flex shrink-0 rounded-full",{variants:{size:{sm:"h-8 w-8",md:"h-10 w-10",lg:"h-12 w-12"}},defaultVariants:{size:"md"}}),we=u.forwardRef(({className:r,size:a,...n},i)=>d.jsx(te.Root,{ref:i,className:h(Pr({size:a,className:r})),...n}));we.displayName="Avatar";const Ce=u.forwardRef(({className:r,...a},n)=>d.jsx(te.Image,{ref:n,className:h("aspect-square h-full w-full shrink-0 rounded-full overflow-hidden",r),...a}));Ce.displayName="AvatarImage";const Fe=u.forwardRef(({className:r,...a},n)=>d.jsx(te.Fallback,{ref:n,className:h("flex h-full w-full items-center justify-center rounded-full bg-muted",r),...a}));Fe.displayName="AvatarFallback";const _e=H.cva("rounded-full",{variants:{intent:{neutral:"bg-neutral",primary:"bg-primary",accent:"bg-accent",success:"bg-success",warning:"bg-warning",error:"bg-error"}},defaultVariants:{intent:"primary"}}),Re=y.forwardRef(({className:r,intent:a,...n},i)=>d.jsxs("span",{className:h(r,"flex absolute h-3 w-3 top-0 right-0"),ref:i,...n,children:[d.jsx("span",{className:h(_e({intent:a}),"animate-ping absolute inline-flex h-full w-full opacity-75")}),d.jsx("span",{className:h(_e({intent:a}),"relative inline-flex h-3 w-3")})]}));Re.displayName="Badge";const je=y.createContext(null);function J(){const r=y.useContext(je);if(!r)throw new Error("useCarousel must be used within a <Carousel />");return r}const De=y.forwardRef(({orientation:r="horizontal",opts:a,setApi:n,plugins:i,className:m,children:p,...E},F)=>{const[w,b]=Fr({...a,axis:r==="horizontal"?"x":"y"},i),[R,D]=y.useState(!1),[O,A]=y.useState(!1),N=y.useCallback(_=>{/* istanbul ignore next -- @preserve */if(!_){/* istanbul ignore next -- @preserve */return}D(_.canScrollPrev()),A(_.canScrollNext())},[]),I=y.useCallback(()=>{/* istanbul ignore next -- @preserve */b?.scrollPrev()},[b]),M=y.useCallback(()=>{/* istanbul ignore next -- @preserve */b?.scrollNext()},[b]);y.useEffect(()=>{/* istanbul ignore next -- @preserve */if(!b||!n)return;/* istanbul ignore next -- @preserve */n(b)},[b,n]),y.useEffect(()=>{if(b)return N(b),b.on("reInit",N),b.on("select",N),()=>{b.off("select",N)}},[b,N]);const B=y.useMemo(()=>({carouselRef:w,api:b,opts:a,orientation:a?.axis==="y"?"vertical":"horizontal",scrollPrev:I,scrollNext:M,canScrollPrev:R,canScrollNext:O}),[b,O,R,w,a,M,I]);return d.jsx(je.Provider,{value:B,children:d.jsx("div",{ref:F,className:h("relative",m),"aria-label":"region","aria-roledescription":"carousel",...E,children:p})})});De.displayName="Carousel";const Pe=y.forwardRef(({className:r,...a},n)=>{const{carouselRef:i,orientation:m}=J();return d.jsx("div",{ref:i,className:h("overflow-hidden",r),children:d.jsx("div",{ref:n,className:h("flex",m==="horizontal"?"-ml-4":"-mt-4 flex-col"),...a})})});Pe.displayName="CarouselContent";const Oe=y.forwardRef(({className:r,...a},n)=>{const{orientation:i}=J();return d.jsx("div",{ref:n,"aria-roledescription":"slide",className:h("min-w-0 shrink-0 grow-0 basis-full",i==="horizontal"?"pl-4":"pt-4",r),...a})});Oe.displayName="CarouselItem";const Te=y.forwardRef(({className:r,variant:a="outlined",size:n="icon",...i},m)=>{const{orientation:p,scrollPrev:E,canScrollPrev:F}=J();return d.jsxs(Z,{ref:m,variant:a,size:n,className:h("absolute h-8 w-8 rounded-full",p==="horizontal"?"-left-12 top-1/2 -translate-y-1/2":"-top-12 left-1/2 -translate-x-1/2 rotate-90",r),disabled:!F,onClick:E,...i,children:[d.jsx(me.ArrowLeft,{className:"h-4 w-4"}),d.jsx("span",{className:"sr-only",children:"Previous slide"})]})});Te.displayName="CarouselPrevious";const Ne=y.forwardRef(({className:r,variant:a="outlined",size:n="icon",...i},m)=>{const{orientation:p,scrollNext:E,canScrollNext:F}=J();return d.jsxs(Z,{ref:m,variant:a,size:n,className:h("absolute h-8 w-8 rounded-full",p==="horizontal"?"-right-12 top-1/2 -translate-y-1/2":"-bottom-12 left-1/2 -translate-x-1/2 rotate-90",r),disabled:!F,onClick:E,...i,children:[d.jsx(me.ArrowRight,{className:"h-4 w-4"}),d.jsx("span",{className:"sr-only",children:"Next slide"})]})});Ne.displayName="CarouselNext";const Or=u.createContext({color:"currentColor",size:"1em",weight:"regular",mirrored:!1});var Tr=Object.defineProperty,G=Object.getOwnPropertySymbols,Ae=Object.prototype.hasOwnProperty,Se=Object.prototype.propertyIsEnumerable,ke=(r,a,n)=>a in r?Tr(r,a,{enumerable:!0,configurable:!0,writable:!0,value:n}):r[a]=n,Be=(r,a)=>{for(var n in a||(a={}))Ae.call(a,n)&&ke(r,n,a[n]);if(G)for(var n of G(a))Se.call(a,n)&&ke(r,n,a[n]);return r},Le=(r,a)=>{var n={};for(var i in r)Ae.call(r,i)&&a.indexOf(i)<0&&(n[i]=r[i]);if(r!=null&&G)for(var i of G(r))a.indexOf(i)<0&&Se.call(r,i)&&(n[i]=r[i]);return n};const Ie=u.forwardRef((r,a)=>{const n=r,{alt:i,color:m,size:p,weight:E,mirrored:F,children:w,weights:b}=n,R=Le(n,["alt","color","size","weight","mirrored","children","weights"]),D=u.useContext(Or),{color:O="currentColor",size:A,weight:N="regular",mirrored:I=!1}=D,M=Le(D,["color","size","weight","mirrored"]);return u.createElement("svg",Be(Be({ref:a,xmlns:"http://www.w3.org/2000/svg",width:p??A,height:p??A,fill:m??O,viewBox:"0 0 256 256",transform:F||I?"scale(-1, 1)":void 0},M),R),!!i&&u.createElement("title",null,i),w,b.get(E??N))});Ie.displayName="IconBase";const Nr=new Map([["bold",u.createElement(u.Fragment,null,u.createElement("path",{d:"M208.49,191.51a12,12,0,0,1-17,17L128,145,64.49,208.49a12,12,0,0,1-17-17L111,128,47.51,64.49a12,12,0,0,1,17-17L128,111l63.51-63.52a12,12,0,0,1,17,17L145,128Z"}))],["duotone",u.createElement(u.Fragment,null,u.createElement("path",{d:"M216,48V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H208A8,8,0,0,1,216,48Z",opacity:"0.2"}),u.createElement("path",{d:"M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z"}))],["fill",u.createElement(u.Fragment,null,u.createElement("path",{d:"M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM181.66,170.34a8,8,0,0,1-11.32,11.32L128,139.31,85.66,181.66a8,8,0,0,1-11.32-11.32L116.69,128,74.34,85.66A8,8,0,0,1,85.66,74.34L128,116.69l42.34-42.35a8,8,0,0,1,11.32,11.32L139.31,128Z"}))],["light",u.createElement(u.Fragment,null,u.createElement("path",{d:"M204.24,195.76a6,6,0,1,1-8.48,8.48L128,136.49,60.24,204.24a6,6,0,0,1-8.48-8.48L119.51,128,51.76,60.24a6,6,0,0,1,8.48-8.48L128,119.51l67.76-67.75a6,6,0,0,1,8.48,8.48L136.49,128Z"}))],["regular",u.createElement(u.Fragment,null,u.createElement("path",{d:"M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z"}))],["thin",u.createElement(u.Fragment,null,u.createElement("path",{d:"M202.83,197.17a4,4,0,0,1-5.66,5.66L128,133.66,58.83,202.83a4,4,0,0,1-5.66-5.66L122.34,128,53.17,58.83a4,4,0,0,1,5.66-5.66L128,122.34l69.17-69.17a4,4,0,1,1,5.66,5.66L133.66,128Z"}))]]);var Ar=Object.defineProperty,Sr=Object.defineProperties,kr=Object.getOwnPropertyDescriptors,Me=Object.getOwnPropertySymbols,Br=Object.prototype.hasOwnProperty,Lr=Object.prototype.propertyIsEnumerable,Ve=(r,a,n)=>a in r?Ar(r,a,{enumerable:!0,configurable:!0,writable:!0,value:n}):r[a]=n,Ir=(r,a)=>{for(var n in a||(a={}))Br.call(a,n)&&Ve(r,n,a[n]);if(Me)for(var n of Me(a))Lr.call(a,n)&&Ve(r,n,a[n]);return r},Mr=(r,a)=>Sr(r,kr(a));const ze=u.forwardRef((r,a)=>u.createElement(Ie,Mr(Ir({ref:a},r),{weights:Nr})));ze.displayName="X";const Vr=P.Root,zr=P.Trigger,Wr=P.Portal,Ur=P.Close,We=y.forwardRef(({className:r,...a},n)=>d.jsx(P.Overlay,{ref:n,className:h("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",r),...a}));We.displayName=P.Overlay.displayName;const Ue=y.forwardRef(({className:r,children:a,...n},i)=>d.jsxs(Wr,{children:[d.jsx(We,{}),d.jsxs(P.Content,{ref:i,className:h("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",r),...n,children:[a,d.jsxs(P.Close,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[d.jsx(ze,{size:16,weight:"bold"}),d.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));Ue.displayName=P.Content.displayName;const Ye=({className:r,...a})=>d.jsx("div",{className:h("flex flex-col space-y-1.5 text-center sm:text-left",r),...a});Ye.displayName="DialogHeader";const qe=({className:r,...a})=>d.jsx("div",{className:h("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",r),...a});qe.displayName="DialogFooter";const He=y.forwardRef(({className:r,...a},n)=>d.jsx(P.Title,{ref:n,className:h("text-lg font-semibold leading-none tracking-tight",r),...a}));He.displayName=P.Title.displayName;const Ze=y.forwardRef(({className:r,...a},n)=>d.jsx(P.Description,{ref:n,className:h("text-sm text-muted-foreground",r),...a}));Ze.displayName=P.Description.displayName;var Je={},Ge={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return n}});function a(i,m){return{handler:i,config:m}}a.withOptions=function(i,m=()=>({})){const p=function(E){return{__options:E,handler:i(E),config:m(E)}};return p.__isOptionsFunction=!0,p.__pluginFunction=i,p.__configFunction=m,p};const n=a})(Ge),function(r){Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return i}});const a=n(Ge);function n(m){return m&&m.__esModule?m:{default:m}}const i=a.default}(Je);let ne=Je;var Yr=(ne.__esModule?ne:{default:ne}).default;const qr=Rr(Yr);function Ke(){return!0}function Hr(){return qr(Ke,{theme:{extend:{fontFamily:{display:["var(--font-display)",'"sans-serif"'],base:["var(--font-base)",'"sans-serif"']},colors:{background:"#F7F7F6",foreground:"#1D1D1B",white:"#FBFBFB",card:"#F7F7F6","card-foreground":"#1D1D1B",popover:"#F7F7F6","popover-foreground":"#1D1D1B",neutral:{50:"#F7F7F6",100:"#E4E4E3",200:"#C9C9C6",300:"#A7A6A1",400:"#84837D",500:"#696963",600:"#53534E",700:"#454440",800:"#393936",900:"#32322F",950:"#1D1D1B",DEFAULT:"#696963",foreground:"#F7F7F6"},primary:{50:"#FFFEEB",100:"#FFFBC7",200:"#FFF785",300:"#FFED47",400:"#FFDD1A",500:"#FAB700",600:"#F09800",700:"#CA7002",800:"#A55709",900:"#88480C",950:"#482100",DEFAULT:"#FAB700",foreground:"#482100"},accent:{50:"#EEFFFA",100:"#C5FFF3",200:"#8BFFE7",300:"#4AFEDA",400:"#15ECC8",500:"#00D0B0",600:"#00A891",700:"#008676",800:"#06695F",900:"#0A574E",950:"#003532",DEFAULT:"#00D0B0",foreground:"#003532"},success:{50:"#F2FBF2",100:"#E1F8E0",200:"#C5EFC3",300:"#96E194",400:"#5FCB5D",500:"#3EC03C",600:"#299128",700:"#247223",800:"#215B20",900:"#1C4B1D",950:"#0A290B",DEFAULT:"#3EC03C",foreground:"#0A290B"},warning:{50:"#FCF5EE",100:"#F7E4CE",200:"#EEC799",300:"#E6A563",400:"#DE8334",500:"#D76929",600:"#BE4D21",700:"#9E351F",800:"#812B1F",900:"#6B251C",950:"#3D100B",DEFAULT:"#D76929",foreground:"#3D100B"},error:{50:"#FEF2F2",100:"#FEE2E2",200:"#FFC9C9",300:"#FDA4A4",400:"#FA6F70",500:"#F13637",600:"#DF2324",700:"#BC191A",800:"#9B191A",900:"#811B1C",950:"#460909",DEFAULT:"#F13637",foreground:"#FEF2F2"},border:"#F7F7F6",input:"#F7F7F6",ring:"#FAB700"}}}})}s.Avatar=we,s.AvatarFallback=Fe,s.AvatarImage=Ce,s.Badge=Re,s.Button=Z,s.Card=he,s.CardContent=xe,s.CardMedia=Ee,s.Carousel=De,s.CarouselContent=Pe,s.CarouselItem=Oe,s.CarouselNext=Ne,s.CarouselPrevious=Te,s.Dialog=Vr,s.DialogClose=Ur,s.DialogContent=Ue,s.DialogDescription=Ze,s.DialogFooter=qe,s.DialogHeader=Ye,s.DialogTitle=He,s.DialogTrigger=zr,s.Typography=ye,s.buttonVariants=pe,s.handler=Ke,s.periploTheme=Hr,s.typographyVariants=be,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})});
27
+ Check the top-level render call using <`+o+">.")}return t}}function br(e,t){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var o=ht(t);if(pr[o])return;pr[o]=!0;var l="";e&&e._owner&&e._owner!==ce.current&&(l=" It was passed a child from "+S(e._owner.type)+"."),V(e),_('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',o,l),V(null)}}function yr(e,t){{if(typeof e!="object")return;if(se(e))for(var o=0;o<e.length;o++){var l=e[o];de(l)&&br(l,t)}else if(de(e))e._store&&(e._store.validated=!0);else if(e){var g=M(e);if(typeof g=="function"&&g!==e.entries)for(var v=g.call(e),f;!(f=v.next()).done;)de(f.value)&&br(f.value,t)}}}function Et(e){{var t=e.type;if(t==null||typeof t=="string")return;var o;if(typeof t=="function")o=t.propTypes;else if(typeof t=="object"&&(t.$$typeof===w||t.$$typeof===D))o=t.propTypes;else return;if(o){var l=S(t);it(o,e.props,"prop",l,e)}else if(t.PropTypes!==void 0&&!fe){fe=!0;var g=S(t);_("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",g||"Unknown")}typeof t.getDefaultProps=="function"&&!t.getDefaultProps.isReactClassApproved&&_("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function xt(e){{for(var t=Object.keys(e.props),o=0;o<t.length;o++){var l=t[o];if(l!=="children"&&l!=="key"){V(e),_("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",l),V(null);break}}e.ref!==null&&(V(e),_("Invalid attribute `ref` supplied to `React.Fragment`."),V(null))}}function hr(e,t,o,l,g,v){{var f=$r(e);if(!f){var c="";(e===void 0||typeof e=="object"&&e!==null&&Object.keys(e).length===0)&&(c+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var j=yt(g);j?c+=j:c+=vr();var x;e===null?x="null":se(e)?x="array":e!==void 0&&e.$$typeof===a?(x="<"+(S(e.type)||"Unknown")+" />",c=" Did you accidentally export a JSX literal instead of a component?"):x=typeof e,_("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",x,c)}var C=bt(e,t,o,g,v);if(C==null)return C;if(f){var T=t.children;if(T!==void 0)if(l)if(se(T)){for(var z=0;z<T.length;z++)yr(T[z],e);Object.freeze&&Object.freeze(T)}else _("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else yr(T,e)}return e===i?xt(C):Et(C),C}}function wt(e,t,o){return hr(e,t,o,!0)}function Ct(e,t,o){return hr(e,t,o,!1)}var Ft=Ct,_t=wt;U.Fragment=i,U.jsx=Ft,U.jsxs=_t}()),U}process.env.NODE_ENV==="production"?ae.exports=jr():ae.exports=Dr();var d=ae.exports;function h(...r){return wr.twMerge(xr.clsx(r))}const pe=H.cva("inline-flex items-center gap-2 justify-center whitespace-nowrap rounded-md font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{intent:{neutral:"bg-neutral text-neutral-foreground hover:bg-neutral-600 active:bg-neutral-700 disabled:bg-neutral-200",primary:"bg-primary text-primary-foreground hover:bg-primary-600 active:bg-primary-700 disabled:bg-primary-200",accent:"bg-accent text-accent-foreground hover:bg-accent-600 active:bg-accent-700 disabled:bg-accent-200",success:"bg-success text-success-foreground hover:bg-success-600 active:bg-success-700 disabled:bg-success-200",warning:"bg-warning text-warning-foreground hover:bg-warning-600 active:bg-warning-700 disabled:bg-warning-200",error:"bg-error text-error-foreground hover:bg-error-600 active:bg-error-700 disabled:bg-error-200",link:"text-primary underline-offset-4 hover:underline"},variant:{filled:"",outlined:"bg-transparent border-neutral-950 border disabled:bg-neutral-50",text:"bg-transparent",elevated:"shadow-lg",tonal:""},size:{sm:" text-xs py-2 px-4",md:"text-sm py-2.5 px-4",lg:"text-base py-3 px-4",icon:"h-10 w-10 rounded-full"}},compoundVariants:[{variant:"outlined",intent:"primary",className:"hover:bg-[#FAD264] active:bg-[#FAD264]"},{variant:"text",intent:"primary",className:"hover:bg-[#FAD264] active:bg-[#FAD264]"},{variant:"tonal",intent:"primary",className:"bg-primary-400 hover:bg-[#FFCA1A] active:bg-[#FFB61A]"}],defaultVariants:{intent:"primary",size:"md"}}),Z=u.forwardRef(({className:r,variant:a,intent:n,size:i,endContent:m,startContent:p,...E},F)=>d.jsxs("button",{className:h(pe({variant:a,size:i,intent:n,className:r})),ref:F,...E,children:[p,E.children,m]}));Z.displayName="Button";const be=H.cva("font-base scroll-m-20 tracking-tight",{variants:{variant:{"display-large":"font-display text-[3.563rem] leading-[4rem] font-semibold","display-medium":"font-display text-[2.813rem] leading-[3.5rem] font-semibold","display-small":"font-display text-4xl leading-[2.75rem] font-semibold","headline-large":"font-display text-[2rem] leading-10 font-semibold","headline-medium":"font-display text-[1.75rem] leading-10 font-semibold","headline-small":"font-display text-2xl leading-8 font-semibold","title-large":"font-display font-medium text-[1.375rem] leading-7","title-medium":"font-display font-medium text-base leading-6","title-small":"font-display font-medium text-sm leading-5","label-large":"text-sm leading-5 font-semibold","label-medium":"text-xs leading-4 font-semibold","label-small":"text-[0.688rem] leading-4 font-semibold","body-large":"text-base leading-6","body-medium":"text-sm leading-5","body-small":"text-xs leading-4"},fontWeight:{default:"font-normal",light:"font-light",normal:"font-normal",medium:"font-medium",semiBold:"font-semibold",bold:"font-bold",extraBold:"font-extrabold"},colors:{neutral:"text-neutral",primary:"text-primary",accent:"text-accent",success:"text-success",warning:"text-warning",error:"text-error"}},defaultVariants:{variant:"body-medium"}}),ye=u.forwardRef(({className:r,variant:a,fontWeight:n,colors:i,component:m,...p},E)=>{const F=m??"span";return d.jsx(F,{className:h(be({variant:a,fontWeight:n,colors:i,className:r})),ref:E,...p})});ye.displayName="Typography";const he=y.forwardRef(({className:r,...a},n)=>d.jsx("div",{ref:n,className:h("flex h-full flex-col justify-between rounded-lg text-card-foreground shadow-sm",r),...a}));he.displayName="Card";const Ee=y.forwardRef(({className:r,alt:a,src:n,...i},m)=>d.jsx("img",{alt:a,src:n,ref:m,className:h("h-full overflow-hidden rounded-t-[0.438rem] object-cover",r),...i}));Ee.displayName="CardMedia";const xe=y.forwardRef(({className:r,...a},n)=>d.jsx("div",{ref:n,className:h("flex flex-col gap-2 p-4",r),...a}));xe.displayName="CardContent";const Pr=H.cva("h-10 w-10 relative flex shrink-0 rounded-full",{variants:{size:{sm:"h-8 w-8",md:"h-10 w-10",lg:"h-12 w-12"}},defaultVariants:{size:"md"}}),we=u.forwardRef(({className:r,size:a,...n},i)=>d.jsx(te.Root,{ref:i,className:h(Pr({size:a,className:r})),...n}));we.displayName="Avatar";const Ce=u.forwardRef(({className:r,...a},n)=>d.jsx(te.Image,{ref:n,className:h("aspect-square h-full w-full shrink-0 overflow-hidden rounded-full",r),...a}));Ce.displayName="AvatarImage";const Fe=u.forwardRef(({className:r,...a},n)=>d.jsx(te.Fallback,{ref:n,className:h("bg-muted flex h-full w-full items-center justify-center rounded-full",r),...a}));Fe.displayName="AvatarFallback";const _e=H.cva("rounded-full",{variants:{intent:{neutral:"bg-neutral",primary:"bg-primary",accent:"bg-accent",success:"bg-success",warning:"bg-warning",error:"bg-error"}},defaultVariants:{intent:"primary"}}),Re=y.forwardRef(({className:r,intent:a,...n},i)=>d.jsxs("span",{className:h(r,"absolute right-0 top-0 flex h-3 w-3"),ref:i,...n,children:[d.jsx("span",{className:h(_e({intent:a}),"absolute inline-flex h-full w-full animate-ping opacity-75")}),d.jsx("span",{className:h(_e({intent:a}),"relative inline-flex h-3 w-3")})]}));Re.displayName="Badge";const je=y.createContext(null);function J(){const r=y.useContext(je);if(!r)throw new Error("useCarousel must be used within a <Carousel />");return r}const De=y.forwardRef(({orientation:r="horizontal",opts:a,setApi:n,plugins:i,className:m,children:p,...E},F)=>{const[w,b]=Fr({...a,axis:r==="horizontal"?"x":"y"},i),[R,D]=y.useState(!1),[O,A]=y.useState(!1),N=y.useCallback(_=>{/* istanbul ignore next -- @preserve */if(!_){/* istanbul ignore next -- @preserve */return}D(_.canScrollPrev()),A(_.canScrollNext())},[]),I=y.useCallback(()=>{/* istanbul ignore next -- @preserve */b?.scrollPrev()},[b]),M=y.useCallback(()=>{/* istanbul ignore next -- @preserve */b?.scrollNext()},[b]);y.useEffect(()=>{/* istanbul ignore next -- @preserve */if(!b||!n)return;/* istanbul ignore next -- @preserve */n(b)},[b,n]),y.useEffect(()=>{if(b)return N(b),b.on("reInit",N),b.on("select",N),()=>{b.off("select",N)}},[b,N]);const B=y.useMemo(()=>({carouselRef:w,api:b,opts:a,orientation:r,scrollPrev:I,scrollNext:M,canScrollPrev:R,canScrollNext:O}),[b,O,R,w,a,r,M,I]);return d.jsx(je.Provider,{value:B,children:d.jsx("div",{ref:F,className:h("relative",m),"aria-roledescription":"carousel",...E,children:p})})});De.displayName="Carousel";const Pe=y.forwardRef(({className:r,...a},n)=>{const{carouselRef:i,orientation:m}=J();return d.jsx("div",{ref:i,className:h("overflow-hidden",r),children:d.jsx("div",{ref:n,className:h("flex",m==="horizontal"?"-ml-4":"-mt-4 flex-col"),...a})})});Pe.displayName="CarouselContent";const Oe=y.forwardRef(({className:r,...a},n)=>{const{orientation:i}=J();return d.jsx("div",{ref:n,"aria-roledescription":"slide",className:h("min-w-0 shrink-0 grow-0 basis-full",i==="horizontal"?"pl-4":"pt-4",r),...a})});Oe.displayName="CarouselItem";const Te=y.forwardRef(({className:r,variant:a="outlined",size:n="icon",...i},m)=>{const{orientation:p,scrollPrev:E,canScrollPrev:F}=J();return d.jsxs(Z,{ref:m,variant:a,size:n,className:h("absolute h-8 w-8 rounded-full",p==="horizontal"?"-left-12 top-1/2 -translate-y-1/2":"-top-12 left-1/2 -translate-x-1/2 rotate-90",r),disabled:!F,onClick:E,...i,children:[d.jsx(me.ArrowLeft,{className:"h-5 w-5"}),d.jsx("span",{className:"sr-only",children:"Previous slide"})]})});Te.displayName="CarouselPrevious";const Ne=y.forwardRef(({className:r,variant:a="outlined",size:n="icon",...i},m)=>{const{orientation:p,scrollNext:E,canScrollNext:F}=J();return d.jsxs(Z,{ref:m,variant:a,size:n,className:h("absolute h-8 w-8 rounded-full",p==="horizontal"?"-right-12 top-1/2 -translate-y-1/2":"-bottom-12 left-1/2 -translate-x-1/2 rotate-90",r),disabled:!F,onClick:E,...i,children:[d.jsx(me.ArrowRight,{className:"h-5 w-5"}),d.jsx("span",{className:"sr-only",children:"Next slide"})]})});Ne.displayName="CarouselNext";const Or=u.createContext({color:"currentColor",size:"1em",weight:"regular",mirrored:!1});var Tr=Object.defineProperty,G=Object.getOwnPropertySymbols,Ae=Object.prototype.hasOwnProperty,Se=Object.prototype.propertyIsEnumerable,ke=(r,a,n)=>a in r?Tr(r,a,{enumerable:!0,configurable:!0,writable:!0,value:n}):r[a]=n,Be=(r,a)=>{for(var n in a||(a={}))Ae.call(a,n)&&ke(r,n,a[n]);if(G)for(var n of G(a))Se.call(a,n)&&ke(r,n,a[n]);return r},Le=(r,a)=>{var n={};for(var i in r)Ae.call(r,i)&&a.indexOf(i)<0&&(n[i]=r[i]);if(r!=null&&G)for(var i of G(r))a.indexOf(i)<0&&Se.call(r,i)&&(n[i]=r[i]);return n};const Ie=u.forwardRef((r,a)=>{const n=r,{alt:i,color:m,size:p,weight:E,mirrored:F,children:w,weights:b}=n,R=Le(n,["alt","color","size","weight","mirrored","children","weights"]),D=u.useContext(Or),{color:O="currentColor",size:A,weight:N="regular",mirrored:I=!1}=D,M=Le(D,["color","size","weight","mirrored"]);return u.createElement("svg",Be(Be({ref:a,xmlns:"http://www.w3.org/2000/svg",width:p??A,height:p??A,fill:m??O,viewBox:"0 0 256 256",transform:F||I?"scale(-1, 1)":void 0},M),R),!!i&&u.createElement("title",null,i),w,b.get(E??N))});Ie.displayName="IconBase";const Nr=new Map([["bold",u.createElement(u.Fragment,null,u.createElement("path",{d:"M208.49,191.51a12,12,0,0,1-17,17L128,145,64.49,208.49a12,12,0,0,1-17-17L111,128,47.51,64.49a12,12,0,0,1,17-17L128,111l63.51-63.52a12,12,0,0,1,17,17L145,128Z"}))],["duotone",u.createElement(u.Fragment,null,u.createElement("path",{d:"M216,48V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H208A8,8,0,0,1,216,48Z",opacity:"0.2"}),u.createElement("path",{d:"M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z"}))],["fill",u.createElement(u.Fragment,null,u.createElement("path",{d:"M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM181.66,170.34a8,8,0,0,1-11.32,11.32L128,139.31,85.66,181.66a8,8,0,0,1-11.32-11.32L116.69,128,74.34,85.66A8,8,0,0,1,85.66,74.34L128,116.69l42.34-42.35a8,8,0,0,1,11.32,11.32L139.31,128Z"}))],["light",u.createElement(u.Fragment,null,u.createElement("path",{d:"M204.24,195.76a6,6,0,1,1-8.48,8.48L128,136.49,60.24,204.24a6,6,0,0,1-8.48-8.48L119.51,128,51.76,60.24a6,6,0,0,1,8.48-8.48L128,119.51l67.76-67.75a6,6,0,0,1,8.48,8.48L136.49,128Z"}))],["regular",u.createElement(u.Fragment,null,u.createElement("path",{d:"M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z"}))],["thin",u.createElement(u.Fragment,null,u.createElement("path",{d:"M202.83,197.17a4,4,0,0,1-5.66,5.66L128,133.66,58.83,202.83a4,4,0,0,1-5.66-5.66L122.34,128,53.17,58.83a4,4,0,0,1,5.66-5.66L128,122.34l69.17-69.17a4,4,0,1,1,5.66,5.66L133.66,128Z"}))]]);var Ar=Object.defineProperty,Sr=Object.defineProperties,kr=Object.getOwnPropertyDescriptors,Me=Object.getOwnPropertySymbols,Br=Object.prototype.hasOwnProperty,Lr=Object.prototype.propertyIsEnumerable,Ve=(r,a,n)=>a in r?Ar(r,a,{enumerable:!0,configurable:!0,writable:!0,value:n}):r[a]=n,Ir=(r,a)=>{for(var n in a||(a={}))Br.call(a,n)&&Ve(r,n,a[n]);if(Me)for(var n of Me(a))Lr.call(a,n)&&Ve(r,n,a[n]);return r},Mr=(r,a)=>Sr(r,kr(a));const ze=u.forwardRef((r,a)=>u.createElement(Ie,Mr(Ir({ref:a},r),{weights:Nr})));ze.displayName="X";const Vr=P.Root,zr=P.Trigger,Wr=P.Portal,Ur=P.Close,We=y.forwardRef(({className:r,...a},n)=>d.jsx(P.Overlay,{ref:n,className:h("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",r),...a}));We.displayName=P.Overlay.displayName;const Ue=y.forwardRef(({className:r,children:a,...n},i)=>d.jsxs(Wr,{children:[d.jsx(We,{}),d.jsxs(P.Content,{ref:i,className:h("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",r),...n,children:[a,d.jsxs(P.Close,{className:"data-[state=open]:text-muted-foreground absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent",children:[d.jsx(ze,{size:24,weight:"bold"}),d.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));Ue.displayName=P.Content.displayName;const Ye=({className:r,...a})=>d.jsx("div",{className:h("flex flex-col space-y-1.5 text-center sm:text-left",r),...a});Ye.displayName="DialogHeader";const qe=({className:r,...a})=>d.jsx("div",{className:h("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",r),...a});qe.displayName="DialogFooter";const He=y.forwardRef(({className:r,...a},n)=>d.jsx(P.Title,{ref:n,className:h("text-lg font-semibold leading-none tracking-tight",r),...a}));He.displayName=P.Title.displayName;const Ze=y.forwardRef(({className:r,...a},n)=>d.jsx(P.Description,{ref:n,className:h("text-muted-foreground text-sm",r),...a}));Ze.displayName=P.Description.displayName;var Je={},Ge={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return n}});function a(i,m){return{handler:i,config:m}}a.withOptions=function(i,m=()=>({})){const p=function(E){return{__options:E,handler:i(E),config:m(E)}};return p.__isOptionsFunction=!0,p.__pluginFunction=i,p.__configFunction=m,p};const n=a})(Ge),function(r){Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return i}});const a=n(Ge);function n(m){return m&&m.__esModule?m:{default:m}}const i=a.default}(Je);let ne=Je;var Yr=(ne.__esModule?ne:{default:ne}).default;const qr=Rr(Yr);function Ke(){return!0}function Hr(){return qr(Ke,{theme:{extend:{fontFamily:{display:["var(--font-display)",'"sans-serif"'],base:["var(--font-base)",'"sans-serif"']},colors:{background:"#F7F7F6",foreground:"#1D1D1B",white:"#FBFBFB",card:"#F7F7F6","card-foreground":"#1D1D1B",popover:"#F7F7F6","popover-foreground":"#1D1D1B",neutral:{50:"#F7F7F6",100:"#E4E4E3",200:"#C9C9C6",300:"#A7A6A1",400:"#84837D",500:"#696963",600:"#53534E",700:"#454440",800:"#393936",900:"#32322F",950:"#1D1D1B",DEFAULT:"#696963",foreground:"#F7F7F6"},primary:{50:"#FFFEEB",100:"#FFFBC7",200:"#FFF785",300:"#FFED47",400:"#FFDD1A",500:"#FAB700",600:"#F09800",700:"#CA7002",800:"#A55709",900:"#88480C",950:"#482100",DEFAULT:"#FAB700",foreground:"#482100"},accent:{50:"#EEFFFA",100:"#C5FFF3",200:"#8BFFE7",300:"#4AFEDA",400:"#15ECC8",500:"#00D0B0",600:"#00A891",700:"#008676",800:"#06695F",900:"#0A574E",950:"#003532",DEFAULT:"#00D0B0",foreground:"#003532"},success:{50:"#F2FBF2",100:"#E1F8E0",200:"#C5EFC3",300:"#96E194",400:"#5FCB5D",500:"#3EC03C",600:"#299128",700:"#247223",800:"#215B20",900:"#1C4B1D",950:"#0A290B",DEFAULT:"#3EC03C",foreground:"#0A290B"},warning:{50:"#FCF5EE",100:"#F7E4CE",200:"#EEC799",300:"#E6A563",400:"#DE8334",500:"#D76929",600:"#BE4D21",700:"#9E351F",800:"#812B1F",900:"#6B251C",950:"#3D100B",DEFAULT:"#D76929",foreground:"#3D100B"},error:{50:"#FEF2F2",100:"#FEE2E2",200:"#FFC9C9",300:"#FDA4A4",400:"#FA6F70",500:"#F13637",600:"#DF2324",700:"#BC191A",800:"#9B191A",900:"#811B1C",950:"#460909",DEFAULT:"#F13637",foreground:"#FEF2F2"},border:"#F7F7F6",input:"#F7F7F6",ring:"#FAB700"}}}})}s.Avatar=we,s.AvatarFallback=Fe,s.AvatarImage=Ce,s.Badge=Re,s.Button=Z,s.Card=he,s.CardContent=xe,s.CardMedia=Ee,s.Carousel=De,s.CarouselContent=Pe,s.CarouselItem=Oe,s.CarouselNext=Ne,s.CarouselPrevious=Te,s.Dialog=Vr,s.DialogClose=Ur,s.DialogContent=Ue,s.DialogDescription=Ze,s.DialogFooter=qe,s.DialogHeader=Ye,s.DialogTitle=He,s.DialogTrigger=zr,s.Typography=ye,s.buttonVariants=pe,s.handler=Ke,s.periploTheme=Hr,s.typographyVariants=be,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})});
@@ -0,0 +1,5 @@
1
+ declare global {
2
+ interface Window {
3
+ PointerEvent: any;
4
+ }
5
+ }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "periplo-ui",
3
3
  "description": "IATI UI library",
4
4
  "private": false,
5
- "version": "1.8.0",
5
+ "version": "1.9.0",
6
6
  "type": "module",
7
7
  "main": "dist/periplo-ui.umd.cjs",
8
8
  "module": "dist/periplo-ui.js",
@@ -28,7 +28,6 @@
28
28
  "react-dom": "18.2.0"
29
29
  },
30
30
  "devDependencies": {
31
- "@testing-library/user-event": "14.5.2",
32
31
  "@commitlint/cli": "18.6.0",
33
32
  "@commitlint/config-conventional": "18.6.0",
34
33
  "@phosphor-icons/react": "2.0.15",
@@ -43,7 +42,9 @@
43
42
  "@storybook/react": "7.6.16",
44
43
  "@storybook/react-vite": "7.6.16",
45
44
  "@storybook/testing-library": "0.2.2",
45
+ "@testing-library/jest-dom": "6.4.2",
46
46
  "@testing-library/react": "14.2.1",
47
+ "@testing-library/user-event": "14.5.2",
47
48
  "@types/node": "20.11.16",
48
49
  "@types/react": "18.2.52",
49
50
  "@types/react-dom": "18.2.18",
@@ -70,6 +71,8 @@
70
71
  "jsdom": "24.0.0",
71
72
  "lint-staged": "15.2.1",
72
73
  "postcss": "8.4.33",
74
+ "prettier": "3.2.5",
75
+ "prettier-plugin-tailwindcss": "0.5.11",
73
76
  "semantic-release": "22.0.12",
74
77
  "semantic-release-gitmoji": "1.6.5",
75
78
  "storybook": "7.6.16",
@@ -83,14 +86,21 @@
83
86
  "dist"
84
87
  ],
85
88
  "dependencies": {
89
+ "@hookform/resolvers": "3.3.4",
86
90
  "@radix-ui/react-avatar": "1.0.4",
87
91
  "@radix-ui/react-dialog": "1.0.5",
92
+ "@radix-ui/react-label": "2.0.2",
93
+ "@radix-ui/react-popover": "1.0.7",
88
94
  "@radix-ui/react-slot": "1.0.2",
95
+ "@radix-ui/react-tooltip": "1.0.7",
89
96
  "class-variance-authority": "0.7.0",
90
97
  "clsx": "2.1.0",
98
+ "cmdk": "0.2.1",
91
99
  "embla-carousel-react": "8.0.0-rc22",
92
100
  "lucide-react": "0.321.0",
101
+ "react-hook-form": "7.50.1",
93
102
  "tailwind-merge": "2.2.1",
94
- "tailwindcss-animate": "1.0.7"
103
+ "tailwindcss-animate": "1.0.7",
104
+ "zod": "3.22.4"
95
105
  }
96
106
  }