@adamjanicki/ui 1.9.3 → 1.9.4

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 (50) hide show
  1. package/.claude/settings.local.json +9 -0
  2. package/components/Avatar/Avatar.js +1 -1
  3. package/components/Button/Button.d.ts +2 -2
  4. package/components/Button/Button.js +1 -1
  5. package/components/Carousel/Carousel.d.ts +12 -24
  6. package/components/Carousel/Carousel.js +1 -1
  7. package/components/Floating/Floating.d.ts +8 -0
  8. package/components/Floating/Floating.js +1 -1
  9. package/components/Popover/Popover.js +1 -1
  10. package/components/Select/Select.d.ts +8 -9
  11. package/components/Select/Select.js +1 -1
  12. package/components/Tooltip/Tooltip.js +1 -1
  13. package/components/index.d.ts +0 -1
  14. package/components/index.js +1 -1
  15. package/components/ui/transformVfx.js +1 -1
  16. package/components/ui/ui.d.ts +2 -5
  17. package/functions/index.d.ts +0 -2
  18. package/functions/index.js +1 -1
  19. package/hooks/useMediaQuery.d.ts +1 -4
  20. package/hooks/useMediaQuery.js +1 -1
  21. package/hooks/useScroll.js +1 -1
  22. package/hooks/useScrollToHash.js +1 -1
  23. package/navigation/Route.d.ts +2 -6
  24. package/navigation/Router.d.ts +3 -11
  25. package/navigation/Router.js +1 -1
  26. package/navigation/Routes.js +1 -1
  27. package/navigation/history.d.ts +1 -1
  28. package/navigation/history.js +1 -1
  29. package/navigation/href.d.ts +1 -1
  30. package/navigation/href.js +1 -1
  31. package/navigation/path.js +1 -1
  32. package/navigation/slash.d.ts +1 -0
  33. package/navigation/slash.js +1 -1
  34. package/navigation/useLocation.js +1 -1
  35. package/navigation/useNavigate.js +1 -1
  36. package/navigation/usePathParams.d.ts +0 -1
  37. package/navigation/usePathParams.js +1 -1
  38. package/navigation/useSearchParams.d.ts +0 -1
  39. package/package.json +2 -4
  40. package/style.css +1 -1
  41. package/types/common.d.ts +3 -10
  42. package/types/navigation.d.ts +6 -25
  43. package/components/Modal/Modal.d.ts +0 -36
  44. package/components/Modal/Modal.js +0 -1
  45. package/components/Modal/index.d.ts +0 -1
  46. package/components/Modal/index.js +0 -1
  47. package/functions/assertDefined.d.ts +0 -8
  48. package/functions/assertDefined.js +0 -1
  49. package/functions/scrollToId.d.ts +0 -7
  50. package/functions/scrollToId.js +0 -1
@@ -0,0 +1,9 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(npm test:*)",
5
+ "Bash(wc:*)",
6
+ "Bash(npm run build:*)"
7
+ ]
8
+ }
9
+ }
@@ -1 +1 @@
1
- import{jsx as g}from"react/jsx-runtime";import S,{useState as k}from"react";import{classNames as i}from"../../functions";import C from"../Box/Box";import I from"../ui";var n=function(){return n=Object.assign||function(r){for(var o,a=1,e=arguments.length;a<e;a++){o=arguments[a];for(var t in o)Object.prototype.hasOwnProperty.call(o,t)&&(r[t]=o[t])}return r},n.apply(this,arguments)},N=function(r,o){var a={};for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&o.indexOf(e)<0&&(a[e]=r[e]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var t=0,e=Object.getOwnPropertySymbols(r);t<e.length;t++)o.indexOf(e[t])<0&&Object.prototype.propertyIsEnumerable.call(r,e[t])&&(a[e[t]]=r[e[t]]);return a},_=S.forwardRef(function(r,o){var a=r.size,e=a===void 0?"s":a,t=r.backgroundImage,h=r.className,p=r.style,l=r.username,y=r.vfx,b=N(r,["size","backgroundImage","className","style","username","vfx"]),c=k(!1),O=c[0],x=c[1],f=O||!t,w=z(l),s=void 0;f&&(s=i(s,"aui-avatar-".concat(w)));var u=void 0,m={},v=void 0;typeof e=="number"?(m={width:e,height:e,fontSize:.8*e},v={width:e,height:e}):(s=i(s,"aui-avatar-".concat(e)),u="aui-avatar-".concat(e));var j=l[0];return g(C,n({className:i(s,h),style:n(n({},m),p),vfx:n({radius:"rounded",overflow:"hidden",fontWeight:6,textAlign:"center",color:"default"},y)},b,{ref:o,children:f?j:g(I.img,{src:t,alt:"",className:u,onError:function(){return x(!0)},style:v})}))}),d=["red","yellow","green","blue","purple"];function z(r){return d[r.split("").reduce(function(o,a){return o+a.charCodeAt(0)},0)%d.length]}var F=_;export{F as default};
1
+ import{jsx as g}from"react/jsx-runtime";import N,{useState as S}from"react";import{classNames as l}from"../../functions";import I from"../Box/Box";import _ from"../ui";var n=function(){return n=Object.assign||function(e){for(var o,a=1,r=arguments.length;a<r;a++){o=arguments[a];for(var t in o)Object.prototype.hasOwnProperty.call(o,t)&&(e[t]=o[t])}return e},n.apply(this,arguments)},j=function(e,o){var a={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&o.indexOf(r)<0&&(a[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var t=0,r=Object.getOwnPropertySymbols(e);t<r.length;t++)o.indexOf(r[t])<0&&Object.prototype.propertyIsEnumerable.call(e,r[t])&&(a[r[t]]=e[r[t]]);return a},k=N.forwardRef(function(e,o){var a=e.size,r=a===void 0?"s":a,t=e.backgroundImage,h=e.className,y=e.style,i=e.username,d=e.vfx,b=j(e,["size","backgroundImage","className","style","username","vfx"]),c=S(!1),O=c[0],x=c[1],u=O||!t,w=z(i),s;u&&(s=l(s,"aui-avatar-".concat(w)));var f,m={},v;return typeof r=="number"?(m={width:r,height:r,fontSize:.8*r},v={width:r,height:r}):(s=l(s,"aui-avatar-".concat(r)),f="aui-avatar-".concat(r)),g(I,n({className:l(s,h),style:n(n({},m),y),vfx:n({radius:"rounded",overflow:"hidden",fontWeight:6,textAlign:"center",color:"default"},d)},b,{ref:o,children:u?i[0]:g(_.img,{src:t,alt:"",className:f,onError:function(){return x(!0)},style:v})}))}),p=["red","yellow","green","blue","purple"];function z(e){return p[e.split("").reduce(function(o,a){return o+a.charCodeAt(0)},0)%p.length]}var B=k;export{B as default};
@@ -12,7 +12,7 @@ export type VisualButtonProps = {
12
12
  * Type of button.
13
13
  * @default "primary"
14
14
  */
15
- variant?: "primary" | "secondary";
15
+ variant?: "primary" | "secondary" | "danger";
16
16
  };
17
17
  type ButtonProps = DefaultButtonProps & VisualButtonProps;
18
18
  /** An unstyled `button` */
@@ -22,7 +22,7 @@ export declare const UnstyledButton: React.ForwardRefExoticComponent<Omit<Omit<R
22
22
  /** A styled `button` component */
23
23
  declare const Button: React.ForwardRefExoticComponent<Omit<ButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
24
24
  export declare const getButtonProps: ({ variant, size, }: VisualButtonProps) => {
25
- readonly className: "aui-button-primary" | "aui-button-secondary";
25
+ readonly className: "aui-button-primary" | "aui-button-secondary" | "aui-button-danger";
26
26
  readonly vfx: {
27
27
  readonly radius: "rounded";
28
28
  readonly fontWeight: 6;
@@ -1 +1 @@
1
- import{jsx as f}from"react/jsx-runtime";import l from"react";import u from"../../functions/classNames";import d from"../ui";var o=function(){return o=Object.assign||function(r){for(var t,e=1,a=arguments.length;e<a;e++){t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r},o.apply(this,arguments)},i=function(r,t){var e={};for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&t.indexOf(a)<0&&(e[a]=r[a]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,a=Object.getOwnPropertySymbols(r);n<a.length;n++)t.indexOf(a[n])<0&&Object.prototype.propertyIsEnumerable.call(r,a[n])&&(e[a[n]]=r[a[n]]);return e},x=l.forwardRef(function(r,t){var e=r.className,a=i(r,["className"]);return f(d.button,o({},a,{className:u("aui-action aui-button",e),ref:t}))}),y={small:{fontSize:"xs",padding:"xs"},regular:{padding:"s"}},g=l.forwardRef(function(r,t){var e=r.variant,a=r.className,n=r.vfx,c=r.size,v=i(r,["variant","className","vfx","size"]),s=h({variant:e,size:c}),m=s.vfx,p=s.className;return f(x,o({},v,{vfx:o(o({},m),n),className:u(p,a),ref:t}))}),b={primary:"dim",secondary:void 0},h=function(r){var t=r.variant,e=t===void 0?"primary":t,a=r.size,n=a===void 0?"regular":a;return{className:"aui-button-".concat(e),vfx:o(o({},y[n]),{radius:"rounded",fontWeight:6,hover:b[e]})}},w=g;export{x as UnstyledButton,w as default,h as getButtonProps};
1
+ import{jsx as f}from"react/jsx-runtime";import l from"react";import u from"../../functions/classNames";import p from"../ui";var o=function(){return o=Object.assign||function(r){for(var t,e=1,a=arguments.length;e<a;e++){t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r},o.apply(this,arguments)},i=function(r,t){var e={};for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&t.indexOf(a)<0&&(e[a]=r[a]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,a=Object.getOwnPropertySymbols(r);n<a.length;n++)t.indexOf(a[n])<0&&Object.prototype.propertyIsEnumerable.call(r,a[n])&&(e[a[n]]=r[a[n]]);return e},x=l.forwardRef(function(r,t){var e=r.className,a=i(r,["className"]);return f(p.button,o({},a,{className:u("aui-action aui-button",e),ref:t}))}),g={small:{fontSize:"xs",padding:"xs"},regular:{padding:"s"}},y=l.forwardRef(function(r,t){var e=r.variant,a=r.className,n=r.vfx,c=r.size,v=i(r,["variant","className","vfx","size"]),s=h({variant:e,size:c}),m=s.vfx,d=s.className;return f(x,o({},v,{vfx:o(o({},m),n),className:u(d,a),ref:t}))}),b={primary:"dim",secondary:void 0,danger:"dim"},h=function(r){var t=r.variant,e=t===void 0?"primary":t,a=r.size,n=a===void 0?"regular":a;return{className:"aui-button-".concat(e),vfx:o(o({},g[n]),{radius:"rounded",fontWeight:6,hover:b[e]})}},w=y;export{x as UnstyledButton,w as default,h as getButtonProps};
@@ -2,43 +2,31 @@ import React from "react";
2
2
  import type { Children, ReadonlyableArray, Style } from "../../types/common";
3
3
  import { type BoxProps } from "../Box/Box";
4
4
  type ButtonProps = {
5
- /** Children to render inside the button */
5
+ /** Children for the button */
6
6
  children?: Children;
7
- /** Additional class name to apply to the button */
7
+ /** Additional button class names */
8
8
  className?: string;
9
- /** Additional styles to apply to the button */
9
+ /** Additional button styles */
10
10
  style?: Style;
11
11
  };
12
12
  type Props = Omit<BoxProps, "children"> & {
13
- /**
14
- * The interval at which autoplay runs (in seconds).
15
- * @example 5
16
- */
13
+ /** Frequency of sliding in seconds */
17
14
  autoplayInterval?: number;
18
- /** The child elements/slides of the carousel */
15
+ /** S of the carousel */
19
16
  children: ReadonlyableArray<React.ReactNode>;
20
- /** Props to supply to the dot buttons */
17
+ /** Props for the dot buttons */
21
18
  dotProps?: Omit<ButtonProps, "children">;
22
- /**
23
- * How long the transition lasts (in seconds).
24
- * @default 1
25
- */
19
+ /** Transition duration in seconds */
26
20
  duration?: number;
27
- /**
28
- * Whether to hide the arrow controls.
29
- * @default false
30
- */
21
+ /** Whether to hide the arrow controls */
31
22
  hideArrows?: boolean;
32
- /**
33
- * Whether to hide the dot controls.
34
- * @default false
35
- */
23
+ /** Whether to hide the dot controls */
36
24
  hideDots?: boolean;
37
- /** Props to supply to the left arrow button */
25
+ /** Props for the left arrow button */
38
26
  leftArrowProps?: ButtonProps;
39
- /** Props to supply to the right arrow button */
27
+ /** Props for the right arrow button */
40
28
  rightArrowProps?: ButtonProps;
41
29
  };
42
- /** A carousel for paging through a list of slides */
30
+ /** A carousel for paging through slides */
43
31
  declare const Carousel: React.ForwardRefExoticComponent<Omit<Props, "ref"> & React.RefAttributes<HTMLDivElement>>;
44
32
  export default Carousel;
@@ -1 +1 @@
1
- import{jsx as u,jsxs as w,Fragment as I}from"react/jsx-runtime";import U,{useCallback as V,useEffect as W,useRef as X,useState as q}from"react";import{classNames as P}from"../../functions";import{chevronLeft as G,chevronRight as H}from"../../icons";import m from"../Box/Box";import j from"../Button";import R from"../Icon";var c=function(){return c=Object.assign||function(r){for(var e,a=1,t=arguments.length;a<t;a++){e=arguments[a];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n])}return r},c.apply(this,arguments)},B=function(r,e){var a={};for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&e.indexOf(t)<0&&(a[t]=r[t]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,t=Object.getOwnPropertySymbols(r);n<t.length;n++)e.indexOf(t[n])<0&&Object.prototype.propertyIsEnumerable.call(r,t[n])&&(a[t[n]]=r[t[n]]);return a},J=1,_={width:"full",height:"full",stretch:"max"},S={axis:"x",align:"center",justify:"center",radius:"max",padding:"none"},K=U.forwardRef(function(r,e){var a,t,n=r.children,D=r.hideArrows,E=r.vfx,T=r.hideDots,d=r.dotProps,i=r.leftArrowProps,o=r.rightArrowProps,f=r.autoplayInterval,v=r.duration,k=B(r,["children","hideArrows","vfx","hideDots","dotProps","leftArrowProps","rightArrowProps","autoplayInterval","duration"]);v=Math.max(v!=null?v:J,.1),f=f?Math.max(v,f):void 0;var x=n.length,A=q({cur:0,delta:0,animating:!1}),b=A[0],N=A[1],O=X(null),p=b.cur,g=b.delta,y=b.animating,M=C(p+g,x),h=V(function(l){y||l===0||N(function(s){return c(c({},s),{delta:l,animating:!0})})},[y]),F=function(){N(function(l){var s=l.delta,z=l.cur;return{delta:s,animating:!1,cur:C(z+s,x)}})};if(W(function(){return f&&(O.current=window.setInterval(function(){return h(1)},f*1e3)),function(){var l=O.current;O.current=null,l&&clearInterval(l)}},[f,h]),x<=0)return null;var L=y?{transform:"translateX(".concat(-(g/Math.abs(g))*100,"%)"),transition:"transform ".concat(v,"s ease-in-out")}:void 0;return w(m,c({},k,{vfx:c({maxWidth:"full",width:"fit",pos:"relative",overflow:"hidden"},E),ref:e,children:[w(m,{vfx:{axis:g>=0?"x":"-x",width:"full",height:"full"},style:L,onTransitionEnd:F,children:[u(m,{vfx:_,children:n[p]}),u(m,{vfx:_,"aria-hidden":!0,children:n[M]})]}),x>1&&w(I,{children:[!D&&w(I,{children:[u(j,{vfx:S,className:P("aui-carousel-arrow",i==null?void 0:i.className),style:c({left:8},i==null?void 0:i.style),"aria-label":"previous",onClick:function(){return h(-1)},children:(a=i==null?void 0:i.children)!==null&&a!==void 0?a:u(R,{icon:G,size:"xs",style:{marginRight:2}})}),u(j,{vfx:S,className:P("aui-carousel-arrow",o==null?void 0:o.className),style:c({right:8},o==null?void 0:o.style),"aria-label":"next",onClick:function(){return h(1)},children:(t=o==null?void 0:o.children)!==null&&t!==void 0?t:u(R,{icon:H,size:"xs",style:{marginLeft:2}})})]}),!T&&u(m,{vfx:{axis:"x",align:"center",gap:"xxs"},className:"aui-carousel-dots",children:n.map(function(l,s){return u(j,{className:P("aui-carousel-dot",d==null?void 0:d.className),vfx:{radius:"max",padding:"none"},disabled:p===s||y,onClick:function(){return h(s-p)},style:d==null?void 0:d.style},s)})})]})]}))});function C(r,e){return(r%e+e)%e}var er=K;export{er as default};
1
+ import{jsx as u,jsxs as w,Fragment as I}from"react/jsx-runtime";import U,{useCallback as V,useEffect as W,useRef as X,useState as q}from"react";import{classNames as P}from"../../functions";import{chevronLeft as G,chevronRight as H}from"../../icons";import m from"../Box/Box";import j from"../Button";import R from"../Icon";var c=function(){return c=Object.assign||function(r){for(var e,a=1,t=arguments.length;a<t;a++){e=arguments[a];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n])}return r},c.apply(this,arguments)},B=function(r,e){var a={};for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&e.indexOf(t)<0&&(a[t]=r[t]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,t=Object.getOwnPropertySymbols(r);n<t.length;n++)e.indexOf(t[n])<0&&Object.prototype.propertyIsEnumerable.call(r,t[n])&&(a[t[n]]=r[t[n]]);return a},J=1,_={width:"full",height:"full",stretch:"max"},S={axis:"x",align:"center",justify:"center",radius:"max",padding:"none"},K=U.forwardRef(function(r,e){var a,t,n=r.children,D=r.hideArrows,E=r.vfx,T=r.hideDots,d=r.dotProps,i=r.leftArrowProps,o=r.rightArrowProps,f=r.autoplayInterval,v=r.duration,k=B(r,["children","hideArrows","vfx","hideDots","dotProps","leftArrowProps","rightArrowProps","autoplayInterval","duration"]);v=Math.max(v!=null?v:J,.1),f=f?Math.max(v,f):void 0;var x=n.length,A=q({cur:0,delta:0,animating:!1}),b=A[0],N=A[1],O=X(null),p=b.cur,g=b.delta,y=b.animating,M=C(p+g,x),h=V(function(l){y||l===0||N(function(s){return c(c({},s),{delta:l,animating:!0})})},[y]),F=function(){N(function(l){var s=l.delta,z=l.cur;return{delta:s,animating:!1,cur:C(z+s,x)}})};if(W(function(){return f&&(O.current=window.setInterval(function(){return h(1)},f*1e3)),function(){var l=O.current;O.current=null,l&&clearInterval(l)}},[f,h]),x<=0)return null;var L=y?{transform:"translateX(".concat(-(g/Math.abs(g))*100,"%)"),transition:"transform ".concat(v,"s")}:void 0;return w(m,c({},k,{vfx:c({maxWidth:"full",width:"fit",pos:"relative",overflow:"hidden"},E),ref:e,children:[w(m,{vfx:{axis:g>=0?"x":"-x",width:"full",height:"full"},style:L,onTransitionEnd:F,children:[u(m,{vfx:_,children:n[p]}),u(m,{vfx:_,"aria-hidden":!0,children:n[M]})]}),x>1&&w(I,{children:[!D&&w(I,{children:[u(j,{vfx:S,className:P("aui-carousel-arrow",i==null?void 0:i.className),style:c({left:8},i==null?void 0:i.style),"aria-label":"previous",onClick:function(){return h(-1)},children:(a=i==null?void 0:i.children)!==null&&a!==void 0?a:u(R,{icon:G,size:"xs",style:{marginRight:2}})}),u(j,{vfx:S,className:P("aui-carousel-arrow",o==null?void 0:o.className),style:c({right:8},o==null?void 0:o.style),"aria-label":"next",onClick:function(){return h(1)},children:(t=o==null?void 0:o.children)!==null&&t!==void 0?t:u(R,{icon:H,size:"xs",style:{marginLeft:2}})})]}),!T&&u(m,{vfx:{axis:"x",align:"center",gap:"xxs"},className:"aui-carousel-dots",children:n.map(function(l,s){return u(j,{className:P("aui-carousel-dot",d==null?void 0:d.className),vfx:{radius:"max",padding:"none"},disabled:p===s||y,onClick:function(){return h(s-p)},style:d==null?void 0:d.style},s)})})]})]}))});function C(r,e){return(r%e+e)%e}var er=K;export{er as default};
@@ -35,4 +35,12 @@ type Props = Omit<AnimatedProps, "children" | "from" | "to" | "keepMounted" | "s
35
35
  };
36
36
  /** Position content relative to an anchor element */
37
37
  declare const Floating: React.ForwardRefExoticComponent<Omit<Props, "ref"> & React.RefAttributes<HTMLDivElement>>;
38
+ export declare const DEFAULT_FLOATING_VFX: {
39
+ readonly padding: "s";
40
+ readonly backgroundColor: "default";
41
+ readonly border: true;
42
+ readonly shadow: "floating";
43
+ readonly radius: "rounded";
44
+ readonly z: "floating";
45
+ };
38
46
  export default Floating;
@@ -1 +1 @@
1
- import{jsx as ct,Fragment as ut,jsxs as vt}from"react/jsx-runtime";import I,{useCallback as ht,useLayoutEffect as dt,useRef as S,useState as gt}from"react";import W from"../../hooks/useMergeRefs";import pt from"../Animated/Animated";var s=function(){return s=Object.assign||function(t){for(var e,r=1,o=arguments.length;r<o;r++){e=arguments[r];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])}return t},s.apply(this,arguments)},st=function(t,e){var r={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,o=Object.getOwnPropertySymbols(t);n<o.length;n++)e.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(t,o[n])&&(r[o[n]]=t[o[n]]);return r},mt={top:"bottom","top-start":"bottom-start","top-end":"bottom-end",bottom:"top","bottom-start":"top-start","bottom-end":"top-end",left:"right","left-start":"right-start","left-end":"right-end",right:"left","right-start":"left-start","right-end":"left-end"},bt=I.forwardRef(function(t,e){var r=t.anchor,o=t.floating,n=t.visible,f=t.placement,h=f===void 0?"bottom":f,k=t.offset,C=k===void 0?0:k,c=t.flip,U=t.style,Z=t.vfx,P=t.duration,$=P===void 0?0:P,tt=st(t,["anchor","floating","visible","placement","offset","flip","style","vfx","duration"]),m=S(null),b=S(null),et=W(b,e),ot=W(m,r.props.ref),z=gt(null),d=z[0],rt=z[1],l=ht(function(){var u=m.current,a=b.current;if(!(!u||!a)){var i=a.offsetParent||document.documentElement,w=a.getBoundingClientRect(),it=u.getBoundingClientRect(),g=wt(i),lt=N(it,g),at=N(w,g),X={anchor:lt,floating:at,offset:C},v=J[h](X);if(c&&K[h](Q(v,g),w)){var Y=mt[h],H=J[Y](X);K[Y](Q(H,g),w)||(v=H)}rt(function(p){return p&&p.top===v.top&&p.left===v.left?p:v})}},[c,C,h]);dt(function(){if(n){l(),c&&document.addEventListener("scroll",l,!0),window.addEventListener("resize",l);var u=m.current,a=b.current,i=null;return u&&a&&(i=new ResizeObserver(l),i.observe(u),i.observe(a)),function(){c&&document.removeEventListener("scroll",l,!0),window.removeEventListener("resize",l),i==null||i.disconnect()}}},[l,n,c]);var B=d!=null?d:{},F=B.top,nt=F===void 0?0:F,T=B.left,ft=T===void 0?0:T;return vt(ut,{children:[I.cloneElement(r,{ref:ot}),ct(pt,s({},tt,{ref:et,vfx:s({pos:"absolute",z:"floating"},Z),style:s(s({},U),{top:0,left:0,transform:"translate3d(".concat(ft,"px, ").concat(nt,"px, 0)"),visibility:d?void 0:"hidden"}),visible:n,duration:$,children:o}))]})}),A=function(t,e){return t.left+t.width/2-e.width/2},M=function(t){return t.left},V=function(t,e){return t.right-e.width},q=function(t,e){return t.top+t.height/2-e.height/2},D=function(t){return t.top},G=function(t,e){return t.bottom-e.height},y=function(t){return function(e){var r=e.anchor,o=e.floating,n=e.offset;return{top:r.top-o.height-n,left:t(r,o)}}},R=function(t){return function(e){var r=e.anchor,o=e.floating,n=e.offset;return{top:r.bottom+n,left:t(r,o)}}},x=function(t){return function(e){var r=e.anchor,o=e.floating,n=e.offset;return{top:t(r,o),left:r.left-o.width-n}}},O=function(t){return function(e){var r=e.anchor,o=e.floating,n=e.offset;return{top:t(r,o),left:r.right+n}}},J={top:y(A),"top-start":y(M),"top-end":y(V),bottom:R(A),"bottom-start":R(M),"bottom-end":R(V),left:x(q),"left-start":x(D),"left-end":x(G),right:O(q),"right-start":O(D),"right-end":O(G)},E=function(t){return t.top<0},j=function(t,e){return t.top+e.height>window.innerHeight},L=function(t){return t.left<0},_=function(t,e){return t.left+e.width>window.innerWidth},K={top:E,"top-start":E,"top-end":E,bottom:j,"bottom-start":j,"bottom-end":j,left:L,"left-start":L,"left-end":L,right:_,"right-start":_,"right-end":_};function wt(t){if(t===document.documentElement)return{pos:{top:0,left:0},scroll:{top:window.scrollY,left:window.scrollX},scale:{x:1,y:1}};var e=t.getBoundingClientRect(),r=e.width,o=e.height,n=t.clientWidth,f=t.clientHeight;return{pos:{top:e.top,left:e.left},scroll:{top:t.scrollTop,left:t.scrollLeft},scale:{x:r&&n?r/n:1,y:o&&f?o/f:1}}}function N(t,e){var r=t.width/e.scale.x,o=t.height/e.scale.y,n=(t.left-e.pos.left)/e.scale.x+e.scroll.left,f=(t.top-e.pos.top)/e.scale.y+e.scroll.top;return{top:f,left:n,bottom:f+o,right:n+r,width:r,height:o}}function Q(t,e){return{top:(t.top-e.scroll.top)*e.scale.y+e.pos.top,left:(e.pos.left-e.scroll.left)*e.scale.y+e.pos.left}}var Et=bt;export{Et as default};
1
+ import{jsx as ut,Fragment as ct,jsxs as vt}from"react/jsx-runtime";import Y,{useCallback as dt,useLayoutEffect as ht,useRef as H,useState as gt}from"react";import S from"../../hooks/useMergeRefs";import pt from"../Animated/Animated";var s=function(){return s=Object.assign||function(t){for(var e,r=1,o=arguments.length;r<o;r++){e=arguments[r];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])}return t},s.apply(this,arguments)},st=function(t,e){var r={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,o=Object.getOwnPropertySymbols(t);n<o.length;n++)e.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(t,o[n])&&(r[o[n]]=t[o[n]]);return r},mt={top:"bottom","top-start":"bottom-start","top-end":"bottom-end",bottom:"top","bottom-start":"top-start","bottom-end":"top-end",left:"right","left-start":"right-start","left-end":"right-end",right:"left","right-start":"left-start","right-end":"left-end"},bt=Y.forwardRef(function(t,e){var r=t.anchor,o=t.floating,n=t.visible,f=t.placement,d=f===void 0?"bottom":f,k=t.offset,C=k===void 0?0:k,u=t.flip,Q=t.style,Z=t.vfx,F=t.duration,$=F===void 0?0:F,tt=st(t,["anchor","floating","visible","placement","offset","flip","style","vfx","duration"]),m=H(null),b=H(null),et=S(b,e),ot=S(m,r.props.ref),z=gt(null),h=z[0],rt=z[1],l=dt(function(){var c=m.current,a=b.current;if(!(!c||!a)){var i=a.offsetParent||document.documentElement,w=a.getBoundingClientRect(),it=c.getBoundingClientRect(),g=wt(i),lt=J(it,g),at=J(w,g),X={anchor:lt,floating:at,offset:C},v=U[d](X);if(u&&q[d](K(v,g),w)){var A=mt[d],I=U[A](X);q[A](K(I,g),w)||(v=I)}rt(function(p){return p&&p.top===v.top&&p.left===v.left?p:v})}},[u,C,d]);ht(function(){if(n){l(),u&&document.addEventListener("scroll",l,!0),window.addEventListener("resize",l);var c=m.current,a=b.current,i=null;return c&&a&&(i=new ResizeObserver(l),i.observe(c),i.observe(a)),function(){u&&document.removeEventListener("scroll",l,!0),window.removeEventListener("resize",l),i==null||i.disconnect()}}},[l,n,u]);var P=h!=null?h:{},T=P.top,nt=T===void 0?0:T,B=P.left,ft=B===void 0?0:B;return vt(ct,{children:[Y.cloneElement(r,{ref:ot}),ut(pt,s({},tt,{ref:et,vfx:s({pos:"absolute",z:"floating"},Z),style:s(s({},Q),{top:0,left:0,transform:"translate3d(".concat(ft,"px, ").concat(nt,"px, 0)"),visibility:h?void 0:"hidden"}),visible:n,duration:$,children:o}))]})}),W=function(t,e){return t.left+t.width/2-e.width/2},V=function(t){return t.left},D=function(t,e){return t.right-e.width},G=function(t,e){return t.top+t.height/2-e.height/2},M=function(t){return t.top},N=function(t,e){return t.bottom-e.height},y=function(t){return function(e){var r=e.anchor,o=e.floating,n=e.offset;return{top:r.top-o.height-n,left:t(r,o)}}},R=function(t){return function(e){var r=e.anchor,o=e.floating,n=e.offset;return{top:r.bottom+n,left:t(r,o)}}},x=function(t){return function(e){var r=e.anchor,o=e.floating,n=e.offset;return{top:t(r,o),left:r.left-o.width-n}}},O=function(t){return function(e){var r=e.anchor,o=e.floating,n=e.offset;return{top:t(r,o),left:r.right+n}}},U={top:y(W),"top-start":y(V),"top-end":y(D),bottom:R(W),"bottom-start":R(V),"bottom-end":R(D),left:x(G),"left-start":x(M),"left-end":x(N),right:O(G),"right-start":O(M),"right-end":O(N)},E=function(t){return t.top<0},L=function(t,e){return t.top+e.height>window.innerHeight},_=function(t){return t.left<0},j=function(t,e){return t.left+e.width>window.innerWidth},q={top:E,"top-start":E,"top-end":E,bottom:L,"bottom-start":L,"bottom-end":L,left:_,"left-start":_,"left-end":_,right:j,"right-start":j,"right-end":j};function wt(t){if(t===document.documentElement)return{pos:{top:0,left:0},scroll:{top:window.scrollY,left:window.scrollX},scale:{x:1,y:1}};var e=t.getBoundingClientRect(),r=e.width,o=e.height,n=t.clientWidth,f=t.clientHeight;return{pos:{top:e.top,left:e.left},scroll:{top:t.scrollTop,left:t.scrollLeft},scale:{x:r&&n?r/n:1,y:o&&f?o/f:1}}}function J(t,e){var r=t.width/e.scale.x,o=t.height/e.scale.y,n=(t.left-e.pos.left)/e.scale.x+e.scroll.left,f=(t.top-e.pos.top)/e.scale.y+e.scroll.top;return{top:f,left:n,bottom:f+o,right:n+r,width:r,height:o}}function K(t,e){return{top:(t.top-e.scroll.top)*e.scale.y+e.pos.top,left:(e.pos.left-e.scroll.left)*e.scale.y+e.pos.left}}var Et={padding:"s",backgroundColor:"default",border:!0,shadow:"floating",radius:"rounded",z:"floating"},Lt=bt;export{Et as DEFAULT_FLOATING_VFX,Lt as default};
@@ -1 +1 @@
1
- import{jsx as b}from"react/jsx-runtime";import w,{useEffect as x,useRef as f}from"react";import R from"../../hooks/useMergeRefs";import{DEFAULT_ANIMATION_DURATION_S as j}from"../Animated/Animated";import C from"../ClickOutside/useClickOutside";import E from"../Floating";var i=function(){return i=Object.assign||function(r){for(var t,o=1,e=arguments.length;o<e;o++){t=arguments[o];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r},i.apply(this,arguments)},O=function(r,t){var o={};for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&t.indexOf(e)<0&&(o[e]=r[e]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,e=Object.getOwnPropertySymbols(r);n<e.length;n++)t.indexOf(e[n])<0&&Object.prototype.propertyIsEnumerable.call(r,e[n])&&(o[e[n]]=r[e[n]]);return o},k=function(r){var t=r.anchor,o=r.open,e=r.onClose,n=r.children,m=r.vfx,a=r.duration,l=r.from,u=r.to,g=O(r,["anchor","open","onClose","children","vfx","duration","from","to"]),c=f(null),s=f(null),d=f(e),p=f(o);d.current=e,p.current=o;var h=R(c,t.props.ref);return C({targets:[s,c],eventType:"mousedown",enabled:o,onClickOutside:e}),x(function(){var v=function(y){y.key==="Escape"&&p.current&&d.current()};return document.addEventListener("keydown",v),function(){return document.removeEventListener("keydown",v)}},[]),b(E,i({},g,{vfx:i({padding:"s",backgroundColor:"default",border:!0,shadow:"floating",radius:"rounded",z:"floating"},m),ref:s,anchor:w.cloneElement(t,{ref:h}),visible:o,floating:n,from:l!=null?l:{opacity:0},to:u!=null?u:{opacity:1},duration:a!=null?a:{forward:0,reverse:j}}))},L=k;export{L as default};
1
+ import{jsx as b}from"react/jsx-runtime";import w,{useEffect as x,useRef as i}from"react";import R from"../../hooks/useMergeRefs";import{DEFAULT_ANIMATION_DURATION_S as j}from"../Animated/Animated";import E from"../ClickOutside/useClickOutside";import A from"../Floating";import{DEFAULT_FLOATING_VFX as C}from"../Floating/Floating";var f=function(){return f=Object.assign||function(r){for(var t,o=1,e=arguments.length;o<e;o++){t=arguments[o];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r},f.apply(this,arguments)},O=function(r,t){var o={};for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&t.indexOf(e)<0&&(o[e]=r[e]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,e=Object.getOwnPropertySymbols(r);n<e.length;n++)t.indexOf(e[n])<0&&Object.prototype.propertyIsEnumerable.call(r,e[n])&&(o[e[n]]=r[e[n]]);return o},P=function(r){var t=r.anchor,o=r.open,e=r.onClose,n=r.children,d=r.vfx,a=r.duration,l=r.from,u=r.to,h=O(r,["anchor","open","onClose","children","vfx","duration","from","to"]),c=i(null),s=i(null),p=i(e),m=i(o);p.current=e,m.current=o;var y=R(c,t.props.ref);return E({targets:[s,c],eventType:"mousedown",enabled:o,onClickOutside:e}),x(function(){var v=function(g){g.key==="Escape"&&m.current&&p.current()};return document.addEventListener("keydown",v),function(){return document.removeEventListener("keydown",v)}},[]),b(A,f({},h,{vfx:f(f({},C),d),ref:s,anchor:w.cloneElement(t,{ref:y}),visible:o,floating:n,from:l!=null?l:{opacity:0},to:u!=null?u:{opacity:1},duration:a!=null?a:{forward:0,reverse:j}}))},N=P;export{N as default};
@@ -2,24 +2,23 @@ import React from "react";
2
2
  import type { ReadonlyableArray } from "../../types/common";
3
3
  import { type BoxProps } from "../Box/Box";
4
4
  import ui from "../ui";
5
- type SelectProps = React.ComponentProps<typeof ui.select>;
6
- type Props = Omit<BoxProps, "children" | "onChange"> & {
5
+ type Props<T extends string> = Omit<BoxProps, "children" | "onSelect"> & {
7
6
  /**
8
7
  * Mapper function to get the label of the option.
9
8
  *
10
9
  * @param option The option to get the label of.
11
10
  * @returns The label of the option.
12
11
  */
13
- getOptionLabel?: (option: string) => string;
14
- /** Change handler for the select */
15
- onChange?: SelectProps["onChange"];
12
+ getOptionLabel?: (option: T) => string;
13
+ /** Callback that fires on change */
14
+ onSelect?: (option: T) => void;
16
15
  /** Array of options to display in the select */
17
- options: ReadonlyableArray<string>;
16
+ options: ReadonlyableArray<T>;
18
17
  /** Props to pass to the underlying select element */
19
- selectProps?: Omit<SelectProps, "onChange" | "value">;
18
+ selectProps?: Omit<React.ComponentProps<typeof ui.select>, "onChange" | "value" | "children">;
20
19
  /** Current value of the select */
21
- value?: SelectProps["value"];
20
+ value?: T;
22
21
  };
23
22
  /** A styled `select` component */
24
- declare const Select: React.ForwardRefExoticComponent<Omit<Props, "ref"> & React.RefAttributes<HTMLSelectElement>>;
23
+ declare const Select: <T extends string>({ className, options, vfx, getOptionLabel, selectProps, value, onSelect, ...rest }: Props<T>) => import("react/jsx-runtime").JSX.Element;
25
24
  export default Select;
@@ -1 +1 @@
1
- import{jsx as c,jsxs as h}from"react/jsx-runtime";import b from"react";import f from"../../functions/classNames";import{select as x}from"../../icons";import O from"../Box/Box";import y from"../Icon";import j from"../ui";var s=function(){return s=Object.assign||function(e){for(var o,n=1,t=arguments.length;n<t;n++){o=arguments[n];for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},s.apply(this,arguments)},g=function(e,o){var n={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&o.indexOf(t)<0&&(n[t]=e[t]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,t=Object.getOwnPropertySymbols(e);r<t.length;r++)o.indexOf(t[r])<0&&Object.prototype.propertyIsEnumerable.call(e,t[r])&&(n[t[r]]=e[t[r]]);return n},N=b.forwardRef(function(e,o){var n=e.className,t=e.options,r=e.vfx,l=e.getOptionLabel,a=e.selectProps,u=e.value,p=e.onChange,m=g(e,["className","options","vfx","getOptionLabel","selectProps","value","onChange"]),d=(a||{}).className;return h(O,s({vfx:s({pos:"relative",width:"fit",axis:"x",align:"center",radius:"rounded",backgroundColor:"default",color:"default",padding:"none"},r),className:f("aui-select-container",a!=null&&a.disabled?"aui-select-disabled":void 0,n)},m,{children:[c(j.select,s({},a,{value:u,onChange:p,className:f("aui-select",d),ref:o,children:t.map(function(i,v){return c("option",{value:i,children:(l==null?void 0:l(i))||i},v)})})),c(y,{icon:x,vfx:{color:"muted",pos:"absolute"},style:{top:"50%",right:10,transform:"translateY(-50%)",pointerEvents:"none"},size:"xs","aria-hidden":!0})]}))}),I=N;export{I as default};
1
+ import{jsx as i,jsxs as v}from"react/jsx-runtime";import u from"../../functions/classNames";import{select as g}from"../../icons";import b from"../Box/Box";import h from"../Icon";import x from"../ui";var s=function(){return s=Object.assign||function(e){for(var o,n=1,t=arguments.length;n<t;n++){o=arguments[n];for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},s.apply(this,arguments)},m=function(e,o){var n={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&o.indexOf(t)<0&&(n[t]=e[t]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,t=Object.getOwnPropertySymbols(e);r<t.length;r++)o.indexOf(t[r])<0&&Object.prototype.propertyIsEnumerable.call(e,t[r])&&(n[t[r]]=e[t[r]]);return n},O=function(e){var o=e.className,n=e.options,t=e.vfx,r=e.getOptionLabel,a=e.selectProps,f=e.value,c=e.onSelect,d=m(e,["className","options","vfx","getOptionLabel","selectProps","value","onSelect"]);return v(b,s({vfx:s({pos:"relative",width:"fit",axis:"x",align:"center",radius:"rounded",backgroundColor:"default",color:"default",padding:"none"},t),className:u("aui-select-container",a!=null&&a.disabled?"aui-select-disabled":void 0,o)},d,{children:[i(x.select,s({},a,{value:f,onChange:c?function(l){return c(l.target.value)}:void 0,className:u("aui-select",a==null?void 0:a.className),children:n.map(function(l,p){return i("option",{value:l,children:(r==null?void 0:r(l))||l},p)})})),i(h,{icon:g,vfx:{color:"muted",pos:"absolute"},style:{top:"50%",right:10,transform:"translateY(-50%)",pointerEvents:"none"},size:"xs","aria-hidden":!0})]}))},L=O;export{L as default};
@@ -1 +1 @@
1
- import{jsx as U}from"react/jsx-runtime";import Z,{useCallback as X,useEffect as Y,useRef as _,useState as q}from"react";import G from"../../hooks/useMergeRefs";import{DEFAULT_ANIMATION_DURATION_S as H}from"../Animated/Animated";import J from"../Floating/Floating";var g=function(){return g=Object.assign||function(r){for(var o,t=1,e=arguments.length;t<e;t++){o=arguments[t];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(r[n]=o[n])}return r},g.apply(this,arguments)},F=function(r,o){var t={};for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&o.indexOf(e)<0&&(t[e]=r[e]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,e=Object.getOwnPropertySymbols(r);n<e.length;n++)o.indexOf(e[n])<0&&Object.prototype.propertyIsEnumerable.call(r,e[n])&&(t[e[n]]=r[e[n]]);return t},A=function(r,o){return r.x>=o.left&&r.x<=o.right&&r.y>=o.top&&r.y<=o.bottom},K=function(r,o){for(var t=r.x,e=r.y,n=!1,c=0,v=o.length-1;c<o.length;v=c++){var s=o[c],y=s.x,h=s.y,p=o[v],m=p.x,b=p.y,u=h>e!=b>e&&t<(m-y)*(e-h)/(b-h)+y;u&&(n=!n)}return n},Q=function(r,o){return o.top>=r.bottom?"bottom":o.bottom<=r.top?"top":o.left>=r.right?"right":"left"},V={bottom:function(r,o,t){return[{x:r.left-t,y:r.bottom-t},{x:r.right+t,y:r.bottom-t},{x:o.right+t,y:o.top+t},{x:o.left-t,y:o.top+t}]},top:function(r,o,t){return[{x:r.left-t,y:r.top+t},{x:r.right+t,y:r.top+t},{x:o.right+t,y:o.bottom-t},{x:o.left-t,y:o.bottom-t}]},right:function(r,o,t){return[{x:r.right-t,y:r.top-t},{x:r.right-t,y:r.bottom+t},{x:o.left+t,y:o.bottom+t},{x:o.left+t,y:o.top-t}]},left:function(r,o,t){return[{x:r.left+t,y:r.top-t},{x:r.left+t,y:r.bottom+t},{x:o.right-t,y:o.bottom+t},{x:o.right-t,y:o.top-t}]}},W=function(r,o,t,e){return e===void 0&&(e=4),V[r](o,t,e)},$=function(r){var o=r.anchor,t=r.children,e=r.disabled,n=e===void 0?!1:e,c=r.vfx,v=r.from,s=r.to,y=r.flip,h=y===void 0?!0:y,p=F(r,["anchor","children","disabled","vfx","from","to","flip"]),m=q(!1),b=m[0],u=m[1],O=_(null),E=_(null),x=_(null),a=X(function(){var i;(i=x.current)===null||i===void 0||i.call(x),x.current=null},[]);Y(function(){return n&&(a(),u(!1)),a},[n,a]);var w=function(){a();var i=O.current,l=E.current;if(!i||!l){u(!1);return}var f=i.getBoundingClientRect(),j=l.getBoundingClientRect(),B=Q(f,j),I=W(B,f,j),k=function(T){var M=T.pointerType;if(M==="mouse"){var P={x:T.clientX,y:T.clientY},C=O.current,L=E.current;if(!(!C||!L)){var N=C.getBoundingClientRect(),D=L.getBoundingClientRect();A(P,N)||A(P,D)||K(P,I)||(u(!1),a())}}};window.addEventListener("pointermove",k),x.current=function(){window.removeEventListener("pointermove",k)}},S=G(O,o.props.ref);return n?t:U(J,g({},p,{flip:h,ref:E,role:"tooltip",anchor:Z.cloneElement(o,{onPointerEnter:function(i){var l,f;(f=(l=o.props)===null||l===void 0?void 0:l.onPointerEnter)===null||f===void 0||f.call(l,i),i.pointerType==="mouse"&&(a(),u(!0))},onPointerLeave:function(i){var l,f;(f=(l=o.props)===null||l===void 0?void 0:l.onPointerLeave)===null||f===void 0||f.call(l,i),i.pointerType==="mouse"&&w()},ref:S}),visible:b,duration:H,from:v!=null?v:{opacity:0},to:s!=null?s:{opacity:1},onPointerEnter:function(i){i.pointerType==="mouse"&&(a(),u(!0))},onPointerLeave:function(i){i.pointerType==="mouse"&&w()},vfx:g({padding:"s",backgroundColor:"default",border:!0,shadow:"floating",radius:"rounded",z:"floating"},c),floating:t}))},or=$;export{or as default};
1
+ import{jsx as U}from"react/jsx-runtime";import X,{useCallback as Z,useEffect as G,useRef as P,useState as V}from"react";import Y from"../../hooks/useMergeRefs";import{DEFAULT_ANIMATION_DURATION_S as q}from"../Animated/Animated";import H,{DEFAULT_FLOATING_VFX as J}from"../Floating/Floating";var m=function(){return m=Object.assign||function(r){for(var o,t=1,e=arguments.length;t<e;t++){o=arguments[t];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(r[n]=o[n])}return r},m.apply(this,arguments)},M=function(r,o){var t={};for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&o.indexOf(e)<0&&(t[e]=r[e]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,e=Object.getOwnPropertySymbols(r);n<e.length;n++)o.indexOf(e[n])<0&&Object.prototype.propertyIsEnumerable.call(r,e[n])&&(t[e[n]]=r[e[n]]);return t},C=function(r,o){return r.x>=o.left&&r.x<=o.right&&r.y>=o.top&&r.y<=o.bottom},K=function(r,o){for(var t=r.x,e=r.y,n=!1,c=0,a=o.length-1;c<o.length;a=c++){var s=o[c],y=s.x,h=s.y,p=o[a],x=p.x,b=p.y,u=h>e!=b>e&&t<(x-y)*(e-h)/(b-h)+y;u&&(n=!n)}return n},Q=function(r,o){return o.top>=r.bottom?"bottom":o.bottom<=r.top?"top":o.left>=r.right?"right":"left"},W={bottom:function(r,o,t){return[{x:r.left-t,y:r.bottom-t},{x:r.right+t,y:r.bottom-t},{x:o.right+t,y:o.top+t},{x:o.left-t,y:o.top+t}]},top:function(r,o,t){return[{x:r.left-t,y:r.top+t},{x:r.right+t,y:r.top+t},{x:o.right+t,y:o.bottom-t},{x:o.left-t,y:o.bottom-t}]},right:function(r,o,t){return[{x:r.right-t,y:r.top-t},{x:r.right-t,y:r.bottom+t},{x:o.left+t,y:o.bottom+t},{x:o.left+t,y:o.top-t}]},left:function(r,o,t){return[{x:r.left+t,y:r.top-t},{x:r.left+t,y:r.bottom+t},{x:o.right-t,y:o.bottom+t},{x:o.right-t,y:o.top-t}]}},$=function(r,o,t,e){return e===void 0&&(e=4),W[r](o,t,e)},z=function(r){var o=r.anchor,t=r.children,e=r.disabled,n=e===void 0?!1:e,c=r.vfx,a=r.from,s=r.to,y=r.flip,h=y===void 0?!0:y,p=M(r,["anchor","children","disabled","vfx","from","to","flip"]),x=V(!1),b=x[0],u=x[1],T=P(null),E=P(null),O=P(null),v=Z(function(){var i;(i=O.current)===null||i===void 0||i.call(O),O.current=null},[]);G(function(){return n&&(v(),u(!1)),v},[n,v]);var w=function(){v();var i=T.current,l=E.current;if(!i||!l){u(!1);return}var f=i.getBoundingClientRect(),L=l.getBoundingClientRect(),I=Q(f,L),S=$(I,f,L),A=function(g){var B=g.pointerType;if(B==="mouse"){var _={x:g.clientX,y:g.clientY},j=T.current,k=E.current;if(!(!j||!k)){var N=j.getBoundingClientRect(),D=k.getBoundingClientRect();C(_,N)||C(_,D)||K(_,S)||(u(!1),v())}}};window.addEventListener("pointermove",A),O.current=function(){window.removeEventListener("pointermove",A)}},F=Y(T,o.props.ref);return n?t:U(H,m({},p,{flip:h,ref:E,role:"tooltip",anchor:X.cloneElement(o,{onPointerEnter:function(i){var l,f;(f=(l=o.props)===null||l===void 0?void 0:l.onPointerEnter)===null||f===void 0||f.call(l,i),i.pointerType==="mouse"&&(v(),u(!0))},onPointerLeave:function(i){var l,f;(f=(l=o.props)===null||l===void 0?void 0:l.onPointerLeave)===null||f===void 0||f.call(l,i),i.pointerType==="mouse"&&w()},ref:F}),visible:b,duration:q,from:a!=null?a:{opacity:0},to:s!=null?s:{opacity:1},onPointerEnter:function(i){i.pointerType==="mouse"&&(v(),u(!0))},onPointerLeave:function(i){i.pointerType==="mouse"&&w()},vfx:m(m({},J),c),floating:t}))},er=z;export{er as default};
@@ -12,7 +12,6 @@ export { default as Hamburger } from "./Hamburger";
12
12
  export { default as Icon } from "./Icon";
13
13
  export { IconInput, default as Input, TextArea } from "./Input";
14
14
  export { default as Layer } from "./Layer";
15
- export { default as Modal } from "./Modal";
16
15
  export { default as Popover } from "./Popover";
17
16
  export { default as Select } from "./Select";
18
17
  export { Alert, Badge, Banner } from "./Signal";
@@ -1 +1 @@
1
- import{default as t}from"./Accordion";import{default as a}from"./Animated";import{default as u}from"./Autocomplete";import{default as p}from"./Avatar";import{default as m}from"./Box";import{default as s,IconButton as n,UnstyledButton as c}from"./Button";import{default as B}from"./Carousel";import{default as I}from"./ClickOutside";import{default as T}from"./ErrorBoundary";export*from"./Hamburger";import{default as v}from"./Hamburger";import{default as S}from"./Icon";import{IconInput as E,default as H,TextArea as L}from"./Input";import{default as O}from"./Layer";import{default as U}from"./Modal";import{default as j}from"./Popover";import{default as w}from"./Select";import{Alert as D,Badge as F,Banner as G}from"./Signal";import{default as K}from"./Spinner";import{default as Q}from"./Table";import{default as V}from"./Tooltip";import{default as X}from"./ui";export{t as Accordion,D as Alert,a as Animated,u as Autocomplete,p as Avatar,F as Badge,G as Banner,m as Box,s as Button,B as Carousel,I as ClickOutside,T as ErrorBoundary,v as Hamburger,S as Icon,n as IconButton,E as IconInput,H as Input,O as Layer,U as Modal,j as Popover,w as Select,K as Spinner,Q as Table,L as TextArea,V as Tooltip,c as UnstyledButton,X as ui};
1
+ import{default as t}from"./Accordion";import{default as a}from"./Animated";import{default as u}from"./Autocomplete";import{default as p}from"./Avatar";import{default as m}from"./Box";import{default as s,IconButton as n,UnstyledButton as c}from"./Button";import{default as B}from"./Carousel";import{default as I}from"./ClickOutside";import{default as T}from"./ErrorBoundary";export*from"./Hamburger";import{default as v}from"./Hamburger";import{default as S}from"./Icon";import{IconInput as E,default as H,TextArea as L}from"./Input";import{default as P}from"./Layer";import{default as h}from"./Popover";import{default as q}from"./Select";import{Alert as z,Badge as D,Banner as F}from"./Signal";import{default as J}from"./Spinner";import{default as M}from"./Table";import{default as Q}from"./Tooltip";import{default as V}from"./ui";export{t as Accordion,z as Alert,a as Animated,u as Autocomplete,p as Avatar,D as Badge,F as Banner,m as Box,s as Button,B as Carousel,I as ClickOutside,T as ErrorBoundary,v as Hamburger,S as Icon,n as IconButton,E as IconInput,H as Input,P as Layer,h as Popover,q as Select,J as Spinner,M as Table,L as TextArea,Q as Tooltip,c as UnstyledButton,V as ui};
@@ -1 +1 @@
1
- var c={pos:function(n){var r=n.pos;return"aui-pos-".concat(r)},axis:function(n){var r=n.axis;return"aui-flex-".concat(r)},gap:function(n){var r=n.gap;return"aui-gap-".concat(r)},align:function(n){var r=n.align;return"aui-align-".concat(r)},justify:function(n){var r=n.justify;return"aui-justify-".concat(r)},stretch:function(n){var r=n.stretch;return"aui-stretch-".concat(r)},wrap:function(){return"aui-flex-wrap"},overflow:function(n){var r=n.overflow;return"aui-ov-".concat(r)},overflowX:function(n){var r=n.overflowX;return"aui-ov-x-".concat(r)},overflowY:function(n){var r=n.overflowY;return"aui-ov-y-".concat(r)},z:function(n){var r=n.z;return"aui-z-".concat(r)},padding:function(n){var r=n.padding;return"aui-pa-".concat(r)},paddingX:function(n){var r=n.paddingX,i=n.paddingLeft,a=n.paddingRight,t=[];return i||t.push("aui-pl-".concat(r)),a||t.push("aui-pr-".concat(r)),t.join(" ")},paddingY:function(n){var r=n.paddingY,i=n.paddingTop,a=n.paddingBottom,t=[];return i||t.push("aui-pt-".concat(r)),a||t.push("aui-pb-".concat(r)),t.join(" ")},paddingTop:function(n){var r=n.paddingTop;return"aui-pt-".concat(r)},paddingBottom:function(n){var r=n.paddingBottom;return"aui-pb-".concat(r)},paddingLeft:function(n){var r=n.paddingLeft;return"aui-pl-".concat(r)},paddingRight:function(n){var r=n.paddingRight;return"aui-pr-".concat(r)},margin:function(n){var r=n.margin;return"aui-ma-".concat(r)},marginX:function(n){var r=n.marginX,i=n.marginLeft,a=n.marginRight,t=[];return i||t.push("aui-ml-".concat(r)),a||t.push("aui-mr-".concat(r)),t.join(" ")},marginY:function(n){var r=n.marginY,i=n.marginTop,a=n.marginBottom,t=[];return i||t.push("aui-mt-".concat(r)),a||t.push("aui-mb-".concat(r)),t.join(" ")},marginTop:function(n){var r=n.marginTop;return"aui-mt-".concat(r)},marginBottom:function(n){var r=n.marginBottom;return"aui-mb-".concat(r)},marginLeft:function(n){var r=n.marginLeft;return"aui-ml-".concat(r)},marginRight:function(n){var r=n.marginRight;return"aui-mr-".concat(r)},width:function(n){var r=n.width;return"aui-w-".concat(r)},minWidth:function(n){var r=n.minWidth;return"aui-minw-".concat(r)},maxWidth:function(n){var r=n.maxWidth;return"aui-maxw-".concat(r)},height:function(n){var r=n.height;return"aui-h-".concat(r)},minHeight:function(n){var r=n.minHeight;return"aui-minh-".concat(r)},maxHeight:function(n){var r=n.maxHeight;return"aui-maxh-".concat(r)},radius:function(n){var r=n.radius;return"aui-radius-".concat(r)},border:function(){return"aui-ba"},borderTop:function(){return"aui-bt"},borderBottom:function(){return"aui-bb"},borderLeft:function(){return"aui-bl"},borderRight:function(){return"aui-br"},borderWidth:function(n){var r=n.borderWidth;return"aui-bw-".concat(r)},borderStyle:function(n){var r=n.borderStyle;return"aui-bs-".concat(r)},borderColor:function(n){var r=n.borderColor;return"aui-bc-".concat(r)},shadow:function(n){var r=n.shadow;return"aui-shadow-".concat(r)},opacity:function(n){var r=n.opacity;return"aui-op-".concat(r)},hover:function(n){var r=n.hover;return"aui-hov-".concat(r)},fontSize:function(n){var r=n.fontSize;return"aui-f-".concat(r)},fontWeight:function(n){var r=n.fontWeight;return"aui-fw-".concat(r)},textAlign:function(n){var r=n.textAlign;return"aui-ta-".concat(r)},italics:function(){return"aui-it"},lineHeight:function(n){var r=n.lineHeight;return"aui-lh-".concat(r)},color:function(n){var r=n.color;return"aui-c-".concat(r)},backgroundColor:function(n){var r=n.backgroundColor;return"aui-bg-".concat(r)},cursor:function(n){var r=n.cursor;return"aui-cursor-".concat(r)}};function e(n){if(!n)return null;var r=[];return Object.entries(n).forEach(function(i){var a=i[0],t=i[1],u=c[a],o=u(n);t&&o&&r.push(o)}),r.join(" ")||null}export{e as default};
1
+ var c={pos:function(n){var r=n.pos;return"aui-pos-".concat(r)},axis:function(n){var r=n.axis;return"aui-flex-".concat(r)},gap:function(n){var r=n.gap;return"aui-gap-".concat(r)},align:function(n){var r=n.align;return"aui-align-".concat(r)},justify:function(n){var r=n.justify;return"aui-justify-".concat(r)},stretch:function(n){var r=n.stretch;return"aui-stretch-".concat(r)},wrap:function(){return"aui-flex-wrap"},overflow:function(n){var r=n.overflow;return"aui-ov-".concat(r)},overflowX:function(n){var r=n.overflowX;return"aui-ov-x-".concat(r)},overflowY:function(n){var r=n.overflowY;return"aui-ov-y-".concat(r)},z:function(n){var r=n.z;return"aui-z-".concat(r)},padding:function(n){var r=n.padding;return"aui-pa-".concat(r)},paddingX:function(n){var r=n.paddingX,a=n.paddingLeft,i=n.paddingRight,t=[];return a||t.push("aui-pl-".concat(r)),i||t.push("aui-pr-".concat(r)),t.join(" ")},paddingY:function(n){var r=n.paddingY,a=n.paddingTop,i=n.paddingBottom,t=[];return a||t.push("aui-pt-".concat(r)),i||t.push("aui-pb-".concat(r)),t.join(" ")},paddingTop:function(n){var r=n.paddingTop;return"aui-pt-".concat(r)},paddingBottom:function(n){var r=n.paddingBottom;return"aui-pb-".concat(r)},paddingLeft:function(n){var r=n.paddingLeft;return"aui-pl-".concat(r)},paddingRight:function(n){var r=n.paddingRight;return"aui-pr-".concat(r)},margin:function(n){var r=n.margin;return"aui-ma-".concat(r)},marginX:function(n){var r=n.marginX,a=n.marginLeft,i=n.marginRight,t=[];return a||t.push("aui-ml-".concat(r)),i||t.push("aui-mr-".concat(r)),t.join(" ")},marginY:function(n){var r=n.marginY,a=n.marginTop,i=n.marginBottom,t=[];return a||t.push("aui-mt-".concat(r)),i||t.push("aui-mb-".concat(r)),t.join(" ")},marginTop:function(n){var r=n.marginTop;return"aui-mt-".concat(r)},marginBottom:function(n){var r=n.marginBottom;return"aui-mb-".concat(r)},marginLeft:function(n){var r=n.marginLeft;return"aui-ml-".concat(r)},marginRight:function(n){var r=n.marginRight;return"aui-mr-".concat(r)},width:function(n){var r=n.width;return"aui-w-".concat(r)},minWidth:function(n){var r=n.minWidth;return"aui-minw-".concat(r)},maxWidth:function(n){var r=n.maxWidth;return"aui-maxw-".concat(r)},height:function(n){var r=n.height;return"aui-h-".concat(r)},minHeight:function(n){var r=n.minHeight;return"aui-minh-".concat(r)},maxHeight:function(n){var r=n.maxHeight;return"aui-maxh-".concat(r)},radius:function(n){var r=n.radius;return"aui-radius-".concat(r)},border:function(n){var r=n.border;return r===!1?"aui-ba-none":"aui-ba"},borderTop:function(n){var r=n.borderTop;return r===!1?"aui-bt-none":"aui-bt"},borderBottom:function(n){var r=n.borderBottom;return r===!1?"aui-bb-none":"aui-bb"},borderLeft:function(n){var r=n.borderLeft;return r===!1?"aui-bl-none":"aui-bl"},borderRight:function(n){var r=n.borderRight;return r===!1?"aui-br-none":"aui-br"},borderWidth:function(n){var r=n.borderWidth;return"aui-bw-".concat(r)},borderStyle:function(n){var r=n.borderStyle;return"aui-bs-".concat(r)},borderColor:function(n){var r=n.borderColor;return"aui-bc-".concat(r)},shadow:function(n){var r=n.shadow;return"aui-shadow-".concat(r)},opacity:function(n){var r=n.opacity;return"aui-op-".concat(r)},hover:function(n){var r=n.hover;return"aui-hov-".concat(r)},fontSize:function(n){var r=n.fontSize;return"aui-f-".concat(r)},fontWeight:function(n){var r=n.fontWeight;return"aui-fw-".concat(r)},textAlign:function(n){var r=n.textAlign;return"aui-ta-".concat(r)},italics:function(){return"aui-it"},lineHeight:function(n){var r=n.lineHeight;return"aui-lh-".concat(r)},color:function(n){var r=n.color;return"aui-c-".concat(r)},backgroundColor:function(n){var r=n.backgroundColor;return"aui-bg-".concat(r)},cursor:function(n){var r=n.cursor;return"aui-cursor-".concat(r)}};function e(n){if(!n)return null;var r=[];return Object.entries(n).forEach(function(a){var i=a[0],t=a[1],u=c[i],o=u(n);t!==void 0&&o&&r.push(o)}),r.join(" ")||null}export{e as default};
@@ -13,12 +13,9 @@ type UI = {
13
13
  [T in Tag]: ReturnType<typeof createVfxElement<T>>;
14
14
  };
15
15
  /**
16
- * Collection of built-in DOM elements that support the `vfx` prop.
16
+ * Built-in elements that support the `vfx` prop.
17
17
  * `vfx` is transformed into class names and merged with the `className` property if provided.
18
- * Each element forwards refs and accepts normal props for that intrinsic element.
19
- *
20
- * @example <ui.div vfx={{ padding: "m", axis: "y", gap: "s" }} />
21
- * @example <ui.blockquote vfx={{ radius: "rounded", fontWeight: 6 }} />
18
+ * @example <ui.span vfx={{ padding: "m", axis: "y", gap: "s" }} />
22
19
  */
23
20
  declare const ui: UI;
24
21
  export default ui;
@@ -1,4 +1,2 @@
1
- export { default as assertDefined } from "./assertDefined";
2
1
  export { default as classNames } from "./classNames";
3
2
  export { default as getDeviceType } from "./getDeviceType";
4
- export { default as scrollToId } from "./scrollToId";
@@ -1 +1 @@
1
- import{default as o}from"./assertDefined";import{default as s}from"./classNames";import{default as f}from"./getDeviceType";import{default as d}from"./scrollToId";export{o as assertDefined,s as classNames,f as getDeviceType,d as scrollToId};
1
+ import{default as s}from"./classNames";import{default as f}from"./getDeviceType";export{s as classNames,f as getDeviceType};
@@ -3,10 +3,7 @@ type Config = {
3
3
  onMatch?: () => void;
4
4
  /** Callback for when the media query does not match */
5
5
  onUnmatch?: () => void;
6
- /**
7
- * The media query to watch for.
8
- * @example "(max-width: 820px)"
9
- */
6
+ /** The media query to watch for */
10
7
  query: string;
11
8
  };
12
9
  /**
@@ -1 +1 @@
1
- import{useEffect as h,useState as d}from"react";var m=function(a){var e=a.onMatch,t=a.onUnmatch,r=a.query,u=d(!1),s=u[0],c=u[1];return h(function(){var n=window.matchMedia(r),i=function(o){o.matches?e==null||e():t==null||t(),c(o.matches)};return n.addEventListener("change",i),c(n.matches),function(){return n.removeEventListener("change",i)}},[e,t,r]),s},f=m;export{f as default};
1
+ import{useEffect as m,useState as v}from"react";var d=function(e){var n=e.onMatch,r=e.onUnmatch,c=e.query,u=v(!1),i=u[0],o=u[1];return m(function(){var a=window.matchMedia(c),s=function(h){var t=h.matches?n:r;t==null||t(),o(h.matches)};return a.addEventListener("change",s),o(a.matches),function(){return a.removeEventListener("change",s)}},[n,r,c]),i},l=d;export{l as default};
@@ -1 +1 @@
1
- import{useEffect as c,useState as e}from"react";var t=function(){var l=e({scrollX:window.scrollX,scrollY:window.scrollY}),r=l[0],n=l[1];return c(function(){var o=function(){n({scrollX:window.scrollX,scrollY:window.scrollY})};return window.addEventListener("scroll",o),function(){return window.removeEventListener("scroll",o)}},[]),r},i=t;export{i as default};
1
+ import{useEffect as e,useState as c}from"react";var t=function(){var r=c({scrollX:window.scrollX,scrollY:window.scrollY}),o=r[0],n=r[1];return e(function(){var l=function(){return n({scrollX:window.scrollX,scrollY:window.scrollY})};return window.addEventListener("scroll",l),function(){return window.removeEventListener("scroll",l)}},[]),o},i=t;export{i as default};
@@ -1 +1 @@
1
- import{useEffect as d}from"react";import n from"../functions/scrollToId";var l=function(r){r===void 0&&(r={});var o=r.active,a=o===void 0?!0:o,t=r.behavior,i=r.delay;d(function(){var e=window.location.hash;if(!(!a||(e==null?void 0:e.length)<=1)){var u=e.substring(1);if(i!==void 0){var v=setTimeout(function(){return n(u,t)},i);return function(){return clearTimeout(v)}}n(u,t)}},[a,t,i])},h=l;export{h as default};
1
+ import{useEffect as v}from"react";var d=function(e){e===void 0&&(e={});var i=e.active,a=i===void 0?!0:i,n=e.behavior,t=e.delay;v(function(){var r=window.location.hash;if(!(!a||(r==null?void 0:r.length)<=1)){var l=r.substring(1),u=function(){var o;return(o=document.getElementById(l))===null||o===void 0?void 0:o.scrollIntoView({behavior:n})};if(t!==void 0)return function(){return clearTimeout(setTimeout(u,t))};u()}},[a,n,t])},c=d;export{c as default};
@@ -3,14 +3,10 @@ export type Props = {
3
3
  /** Element to render when the path matches */
4
4
  element: React.ReactElement;
5
5
  /**
6
- * Path pattern to match against window.location.pathname.
7
- * Currently, only 2 types are supported.
8
- * 1. Static: `/reviews/movies`.
9
- * 2. Dynamic (params): `/reviews/:media/:title/view`.
10
- * In the future, I might extend use to include wildcard matching if I need it.
6
+ * Path pattern to match against the pathname.
11
7
  * @example "/movie/:id"
12
8
  */
13
9
  path: string;
14
10
  };
15
- /** A simple wrapper to be used by <Routes> */
11
+ /** Wrapper used by <Routes> */
16
12
  export default function Route({}: Props): null;
@@ -1,22 +1,14 @@
1
1
  import React from "react";
2
2
  export type Props = {
3
- /**
4
- * Optional basename prefix for all internal navigation.
5
- * @example "/app"
6
- */
3
+ /** Basename prefix for all internal navigation */
7
4
  basename?: string;
8
5
  /** Children to render inside the router provider */
9
6
  children: React.ReactNode;
10
7
  /**
11
- * Whether to reset the page scroll position to the top on navigation.
12
- * This applies when navigating to a different pathname (query/hash changes do not reset scroll).
13
- * When enabled, this also sets `history.scrollRestoration = "manual"` to avoid browser scroll
14
- * restoration fighting the instant scroll.
8
+ * Whether to reset the page scroll position to the top on pathname change.
15
9
  * @default true
16
10
  */
17
11
  resetScroll?: boolean;
18
12
  };
19
- /**
20
- * Router provider for navigation hooks and components.
21
- */
13
+ /** Router provider for navigation hooks and components */
22
14
  export default function Router({ children, basename, resetScroll, }: Props): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- import{jsx as w}from"react/jsx-runtime";import r from"react";import{createRouterHistory as g,getCurrentLocation as x}from"./history";import{getHref as L,normalizeBasename as S}from"./href";import C from"./RouterContext";function P(i){var p=i.children,n=i.basename,s=i.resetScroll,f=s===void 0?!0:s;n=S(n!=null?n:"");var l=r.useRef(null);l.current||(l.current=g());var o=l.current,v=r.useState(x),a=v[0],R=v[1],m=r.useRef(a),d=r.useRef(a.pathname),u=r.useRef(null),c=r.useCallback(function(){var e=u.current;e!==null&&(window.history.scrollRestoration=e,u.current=null)},[]);r.useLayoutEffect(function(){var e=o.addListener(function(t){m.current=t,R(t)});return function(){e(),o.cleanup()}},[o]),r.useLayoutEffect(function(){var e=d.current,t=a.pathname;if(d.current=t,!f){c();return}return u.current===null&&(u.current=window.history.scrollRestoration),window.history.scrollRestoration="manual",e!==t&&window.scrollTo({top:0,left:0,behavior:"instant"}),c},[a.pathname,f,c]);var h=r.useCallback(function(e,t){if(typeof e=="number")o.go(e);else{var b=L(e,m.current.pathname,n).url;o.update(b,t==null?void 0:t.historyMode)}},[o,n]),y=r.useMemo(function(){return{location:a,navigate:h,basename:n}},[a,h,n]);return w(C.Provider,{value:y,children:p})}export{P as default};
1
+ import{jsx as b}from"react/jsx-runtime";import n from"react";import{createRouterHistory as w,getCurrentLocation as x}from"./history";import{getHref as L,normalizeBasename as P,stripBasename as _}from"./href";import j from"./RouterContext";var f=function(){return f=Object.assign||function(o){for(var a,e=1,u=arguments.length;e<u;e++){a=arguments[e];for(var i in a)Object.prototype.hasOwnProperty.call(a,i)&&(o[i]=a[i])}return o},f.apply(this,arguments)};function S(o){var a=o.children,e=o.basename,u=o.resetScroll,i=u===void 0?!0:u;e=P(e!=null?e:"");var m=n.useRef(null);m.current||(m.current=w());var l=m.current,v=n.useState(function(){return x(e)}),t=v[0],d=v[1],h=n.useRef(t),g=n.useRef({prevPathname:t.pathname,scrollRestoration:null});n.useLayoutEffect(function(){var s=l.addListener(function(c){var R=f(f({},c),{pathname:_(c.pathname,e)});h.current=R,d(R)}),r=g.current;return i&&(r.scrollRestoration===null&&(r.scrollRestoration=window.history.scrollRestoration),window.history.scrollRestoration="manual",r.prevPathname!==t.pathname&&(window.scrollTo({top:0,left:0,behavior:"instant"}),r.prevPathname=t.pathname)),function(){s(),l.cleanup(),r.scrollRestoration!==null&&(window.history.scrollRestoration=r.scrollRestoration,r.scrollRestoration=null)}},[l,t.pathname,i,e]);var p=n.useCallback(function(s,r){if(typeof s=="number")l.go(s);else{var c=L(s,h.current.pathname,e).url;l.update(c,r==null?void 0:r.historyMode)}},[l,e]),y=n.useMemo(function(){return{location:t,navigate:p,basename:e}},[t,p,e]);return b(j.Provider,{value:y,children:a})}export{S as default};
@@ -1 +1 @@
1
- import{jsx as R}from"react/jsx-runtime";import f from"react";import{stripBasename as x}from"./href";import{matchPath as E}from"./path";import b from"./PathParamsContext";import C from"./Route";import P from"./useRouterContext";function l(t){var r=[];return f.Children.forEach(t,function(e){if(f.isValidElement(e))if(e.type===C)r.push(e);else{var o=e.props;r=r.concat(l(o.children))}}),r}function j(t){for(var r=t.children,e=t.fallback,o=P("<Routes>"),p=o.location,s=o.basename,u=x(p.pathname,s),c=l(r),a=0,n=c;a<n.length;a++){var v=n[a],m=v.props,h=m.path,d=m.element,i=E(h,u);if(i)return R(b.Provider,{value:i,children:d})}return e}export{j as default};
1
+ import{jsx as d}from"react/jsx-runtime";import i from"react";import{matchPath as R}from"./path";import x from"./PathParamsContext";import E from"./Route";import C from"./useRouterContext";function l(e){var r=[];return i.Children.forEach(e,function(t){if(i.isValidElement(t))if(t.type===E)r.push(t);else{var o=t.props;r=r.concat(l(o.children))}}),r}function P(e){for(var r=e.children,t=e.fallback,o=C("<Routes>"),u=o.location,p=u.pathname,c=l(r),a=0,n=c;a<n.length;a++){var s=n[a],m=s.props,v=m.path,h=m.element,f=R(v,p);if(f)return d(x.Provider,{value:f,children:h})}return t}export{P as default};
@@ -1,5 +1,5 @@
1
1
  import type { HistoryMode, Location } from "../types/navigation";
2
- export declare function getCurrentLocation(): Location;
2
+ export declare function getCurrentLocation(basename?: string): Location;
3
3
  type LocationListener = (location: Location) => void;
4
4
  export declare function createRouterHistory(): {
5
5
  readonly update: (to: string, mode?: HistoryMode) => void;
@@ -1 +1 @@
1
- function c(){return{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash}}function s(){var t=new Set,o=function(){var n=c();t.forEach(function(e){return e(n)})},i=!1,a=function(){i||(window.addEventListener("popstate",o),i=!0)},r=function(){i&&(window.removeEventListener("popstate",o),i=!1)};return{update:function(n,e){e===void 0&&(e="push"),window.history["".concat(e,"State")](null,"",n),o()},go:function(n){window.history.go(n)},addListener:function(n){return a(),t.add(n),function(){t.delete(n),t.size===0&&r()}},cleanup:function(){r(),t.clear()}}}export{s as createRouterHistory,c as getCurrentLocation};
1
+ import{stripBasename as s}from"./href";function c(t){return{pathname:s(window.location.pathname,t),search:window.location.search,hash:window.location.hash}}function f(){var t=new Set,o=function(){var n=c();t.forEach(function(e){return e(n)})},i=!1,a=function(){i||(window.addEventListener("popstate",o),i=!0)},r=function(){i&&(window.removeEventListener("popstate",o),i=!1)};return{update:function(n,e){e===void 0&&(e="push"),window.history["".concat(e,"State")](null,"",n),o()},go:function(n){window.history.go(n)},addListener:function(n){return a(),t.add(n),function(){t.delete(n),t.size===0&&r()}},cleanup:function(){r(),t.clear()}}}export{f as createRouterHistory,c as getCurrentLocation};
@@ -5,4 +5,4 @@ export type Href = {
5
5
  export declare function getHref(to: string, pathname: string, normalizedBasename: string): Href;
6
6
  export declare function normalizeBasename(basename: string): string;
7
7
  export declare function isExternal(to: string): boolean;
8
- export declare function stripBasename(pathname: string, basename: string): string;
8
+ export declare function stripBasename(pathname: string, basename?: string): string;
@@ -1 +1 @@
1
- import{popSlash as e,prependSlash as f}from"./slash";function s(r,t,i){if(l(r))return{type:"external",url:r};if(r.startsWith("#"))return{type:"octo",url:r};var u="internal";return r.startsWith("/")?{type:u,url:i+r}:(t=n(f(t),i),!r||r.startsWith("#")?{type:u,url:i+t+r}:{type:u,url:i+e(t)+f(r)})}function c(r){return!r||r==="/"?"":f(e(r))}function l(r){return/^(https?:\/\/|mailto:|tel:)/i.test(r)}function n(r,t){return t?r===t?"/":r.startsWith(t+"/")?r.slice(t.length):r:r}export{s as getHref,l as isExternal,c as normalizeBasename,n as stripBasename};
1
+ import{normalizeSlashes as l,popSlash as f,prependSlash as e}from"./slash";function c(r,t,i){if(n(r))return{type:"external",url:r};if(r.startsWith("#"))return{type:"octo",url:r};var u="internal";return r.startsWith("/")?{type:u,url:i+r}:(t=s(e(t),i),!r||r.startsWith("#")?{type:u,url:i+t+r}:{type:u,url:i+f(t)+e(r)})}function x(r){return!r||r==="/"?"":l(r)}function n(r){return/^(https?:\/\/|mailto:|tel:)/i.test(r)}function s(r,t){return t?r===t?"/":r.startsWith(t+"/")?r.slice(t.length):r:r}export{c as getHref,n as isExternal,x as normalizeBasename,s as stripBasename};
@@ -1 +1 @@
1
- import{popSlash as h,prependSlash as m}from"./slash";function u(r){return r=m(r),r.length>1&&(r=h(r)),r}function d(r,v){var l=u(r),t=u(v);if(!l.includes(":"))return l===t?{}:!1;var n=l.split("/").filter(Boolean),i=t.split("/").filter(Boolean);if(n.length!==i.length)return!1;for(var f={},e=0;e<n.length;e++){var a=n[e],s=i[e];if(a.startsWith(":")){var o=a.slice(1).trim();if(!o)return!1;f[o]=s}else if(a!==s)return!1}return f}export{d as matchPath};
1
+ import{normalizeSlashes as v}from"./slash";function n(r,l){if(r=v(r),l=v(l),!r.includes(":"))return r===l?{}:!1;var f=r.split("/").filter(Boolean),e=l.split("/").filter(Boolean);if(f.length!==e.length)return!1;for(var o={},s=0;s<f.length;s++){var i=f[s],t=e[s];if(i.startsWith(":")){var u=i.slice(1).trim();if(!u)return!1;o[u]=t}else if(i!==t)return!1}return o}export{n as matchPath};
@@ -1,2 +1,3 @@
1
1
  export declare function prependSlash(str: string): string;
2
2
  export declare function popSlash(str: string): string;
3
+ export declare function normalizeSlashes(path: string): string;
@@ -1 +1 @@
1
- function n(e){return e.startsWith("/")?e:"/".concat(e)}function t(e){return e.replace(/\/$/,"")}export{t as popSlash,n as prependSlash};
1
+ function n(e){return e.startsWith("/")?e:"/".concat(e)}function r(e){return e.replace(/\/$/,"")}function o(e){return e?(e=n(e),e.length>1&&(e=r(e)),e):"/"}export{o as normalizeSlashes,r as popSlash,n as prependSlash};
@@ -1 +1 @@
1
- import t from"./useRouterContext";function e(){var o=t("useLocation()").location;return o}export{e as default};
1
+ import o from"./useRouterContext";function t(){return o("useLocation()").location}export{t as default};
@@ -1 +1 @@
1
- import t from"./useRouterContext";function a(){var e=t("useNavigate()").navigate;return e}export{a as default};
1
+ import e from"./useRouterContext";function t(){return e("useNavigate()").navigate}export{t as default};
@@ -3,6 +3,5 @@ import type { PathParams } from "../types/navigation";
3
3
  * Get the params from the current pathname.
4
4
  *
5
5
  * @returns The params from the current path.
6
- * @example `{id: "1"}` for `/movie/:id <=> /movie/1`
7
6
  */
8
7
  export default function usePathParams(): PathParams;
@@ -1 +1 @@
1
- import r from"react";import a from"./PathParamsContext";function e(){var t=r.useContext(a);if(!t)throw new Error("usePathParams() must be used inside of a <Router> component");return t}export{e as default};
1
+ import r from"react";import a from"./PathParamsContext";function e(){var t=r.useContext(a);if(!t)throw new Error("usePathParams() must be used inside of a <Routes> component");return t}export{e as default};
@@ -3,6 +3,5 @@ import type { SearchParams, SetSearchParams } from "../types/navigation";
3
3
  * Get and update URL search params.
4
4
  *
5
5
  * @returns Tuple of params and a setter.
6
- * @example const [params, setSearchParams] = useSearchParams()
7
6
  */
8
7
  export default function useSearchParams(): [SearchParams, SetSearchParams];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adamjanicki/ui",
3
- "version": "1.9.3",
3
+ "version": "1.9.4",
4
4
  "description": "Basic UI components and hooks for React in TypeScript",
5
5
  "type": "module",
6
6
  "main": "./index.js",
@@ -21,8 +21,7 @@
21
21
  "prepare": "npm run build"
22
22
  },
23
23
  "peerDependencies": {
24
- "react": ">=19",
25
- "react-dom": ">=19"
24
+ "react": ">=19"
26
25
  },
27
26
  "devDependencies": {
28
27
  "@testing-library/jest-dom": "^6.7.0",
@@ -30,7 +29,6 @@
30
29
  "@testing-library/user-event": "^14.6.1",
31
30
  "@types/jest": "^30.0.0",
32
31
  "@types/react": "^19.0.0",
33
- "@types/react-dom": "^19.0.0",
34
32
  "esbuild": "^0.27.2",
35
33
  "jest": "^30.0.5",
36
34
  "jest-environment-jsdom": "^30.0.5",
package/style.css CHANGED
@@ -1 +1 @@
1
- :root{--aui-xxs: 2px;--aui-xs: 4px;--aui-s: 8px;--aui-m: 16px;--aui-l: 24px;--aui-xl: 32px;--aui-xxl: 64px;--aui-moon-gray: #ccc;--aui-dark-gray: #555;--aui-darkest-gray: #333;--aui-obsidian: #121212;--aui-focus-ring-color: #b2dbfa;--aui-color-default: black;--aui-color-muted: var(--aui-dark-gray);--aui-default-background: white;--aui-default-border: var(--aui-moon-gray);--aui-opacity-disabled: 0.5;--aui-opacity-dim: 0.75;--aui-default-transition: 0.25s ease-in-out;--aui-floating-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);--aui-radius-none: 0;--aui-radius-subtle: 4px;--aui-radius-rounded: 8px;--aui-radius-max: 10000px;--aui-button-primary-background: black;--aui-button-primary-color: white;--aui-button-secondary-border-hover: var(--aui-darkest-gray);--aui-subtle-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.16);--aui-button-primary-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.36);--aui-success-background: #dff2e1;--aui-success-color: #1b5e20;--aui-success-border: #b2dfb1;--aui-warning-background: #fceeb6;--aui-warning-color: #b23904;--aui-warning-border: #e6d5a2;--aui-error-background: #fdecea;--aui-error-color: #b71c1c;--aui-error-border: #f5b7b7;--aui-info-background: #e3f2fd;--aui-info-color: #0d47a1;--aui-info-border: #90caf9;--aui-avatar-purple: #bc54d6;--aui-avatar-blue: #618bdc;--aui-avatar-red: #ee6060;--aui-avatar-green: #add386;--aui-avatar-yellow: #f5c76d;--aui-static-background: #e8e8e8;--aui-static-color: var(--aui-color-default);--aui-static-border: var(--aui-default-border);--aui-layer-backdrop-background: rgba(200, 200, 200, 0.6);--aui-link-color: #0070ff}[data-theme=dark]{--aui-focus-ring-color: #6699cc;--aui-color-default: white;--aui-color-muted: var(--aui-moon-gray);--aui-default-background: var(--aui-obsidian);--aui-default-border: var(--aui-dark-gray);--aui-floating-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);--aui-button-primary-background: white;--aui-button-primary-color: var(--aui-obsidian);--aui-button-secondary-border-hover: var(--aui-moon-gray);--aui-subtle-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);--aui-button-primary-box-shadow: 0 1px 2px rgba(64, 64, 64, 0.8);--aui-success-background: #2a5733;--aui-success-color: #d9efd8;--aui-success-border: #439e4a;--aui-warning-background: #736230;--aui-warning-color: #fff6d1;--aui-warning-border: #927a3b;--aui-error-background: #663232;--aui-error-color: #f9dadc;--aui-error-border: #8d2a2a;--aui-info-background: #335f72;--aui-info-color: #d4f1f5;--aui-info-border: #1d8ea4;--aui-static-background: var(--aui-darkest-gray);--aui-static-color: var(--aui-color-default);--aui-static-border: var(--aui-default-border);--aui-avatar-purple: #771199;--aui-avatar-blue: #0b4cce;--aui-avatar-red: #bb1111;--aui-avatar-green: #307040;--aui-avatar-yellow: #bb8822;--aui-layer-backdrop-background: rgba(55, 55, 55, 0.7);--aui-link-color: #33bfff}*{box-sizing:border-box}html{font-family:system-ui,"Helvetica Neue",Helvetica,Arial,sans-serif;-webkit-text-size-adjust:100%;line-height:1.15;tab-size:4;-webkit-font-smoothing:antialiased}body{margin:0}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}.aui-action{color:inherit;text-decoration:none;cursor:pointer;outline-color:var(--aui-link-color)}.aui-action:focus:not(:focus-visible){outline:none}.aui-button{background:none;border:none;padding:0}.aui-button:disabled{cursor:default !important;opacity:var(--aui-opacity-disabled)}.aui-button-primary{background-color:var(--aui-button-primary-background);border:1px solid var(--aui-button-primary-background);color:var(--aui-button-primary-color);box-shadow:var(--aui-button-primary-box-shadow);transition:opacity var(--aui-default-transition)}.aui-button-secondary{color:var(--aui-color-default);background-color:var(--aui-default-background);border:1px solid var(--aui-default-border);box-shadow:var(--aui-subtle-box-shadow);transition:border var(--aui-default-transition)}.aui-hov-dim,.aui-hov-undim{transition:opacity var(--aui-default-transition)}.aui-hov-dim{opacity:1}.aui-hov-undim{opacity:var(--aui-opacity-dim)}.aui-link{color:var(--aui-link-color)}.aui-table{display:table;border-spacing:0}.aui-table-row{display:table-row}.aui-hov-shade{background-color:rgba(0,0,0,0);transition:background-color var(--aui-default-transition)}.aui-table-cell{display:table-cell;vertical-align:middle}@media(hover: hover){.aui-hov-dim:not([disabled]):hover{opacity:var(--aui-opacity-dim)}.aui-button-secondary:not([disabled]):hover{border-color:var(--aui-button-secondary-border-hover)}.aui-hov-undim:not([disabled]):hover{opacity:1}.aui-hov-shade:not([disabled]):hover,.aui-autocomplete-on-option{background-color:var(--aui-static-background)}}.aui-input-base{outline:none;border:none;background-color:inherit;color:inherit;padding:var(--aui-s);font-weight:400}.aui-input-base::selection{background-color:var(--aui-focus-ring-color)}.aui-input,.aui-select-container{transition:box-shadow var(--aui-default-transition);border:1px solid var(--aui-default-border);box-shadow:var(--aui-subtle-box-shadow);background-color:var(--aui-default-background)}.aui-input:disabled{opacity:var(--aui-opacity-disabled);cursor:default}.aui-input:not([disabled]):focus-within,.aui-select-container:not([disabled]):focus-within{box-shadow:var(--aui-subtle-box-shadow),0 0 0 3px var(--aui-focus-ring-color)}.aui-select{width:100%;color:inherit;border:none;outline:none;box-shadow:none;cursor:pointer;background-color:rgba(0,0,0,0);padding:var(--aui-s) 28px var(--aui-s) var(--aui-s);font-weight:600;appearance:none;-webkit-appearance:none;-moz-appearance:none}.aui-select-disabled *{opacity:var(--aui-opacity-disabled);cursor:default}.aui-layer-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:var(--aui-layer-backdrop-background)}.aui-icon *{color:currentColor;fill:currentColor}.aui-spinner{animation:aui-spinner-animation 1s linear infinite;transform-origin:center;height:var(--aui-l)}@keyframes aui-spinner-animation{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.aui-carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);width:var(--aui-l);height:var(--aui-l)}.aui-carousel-dots{position:absolute;bottom:var(--aui-s);transform:translateX(-50%);left:50%}.aui-carousel-dot{width:var(--aui-m);height:var(--aui-s)}.aui-pos-relative{position:relative}.aui-pos-absolute{position:absolute}.aui-pos-fixed{position:fixed}.aui-pos-sticky{position:sticky}.aui-flex-x{display:flex;flex-direction:row}.aui-flex-y{display:flex;flex-direction:column}.aui-flex--x{display:flex;flex-direction:row-reverse}.aui-flex--y{display:flex;flex-direction:column-reverse}.aui-flex-wrap{flex-wrap:wrap}.aui-align-start{align-items:flex-start}.aui-align-center{align-items:center}.aui-align-end{align-items:flex-end}.aui-justify-start{justify-content:flex-start}.aui-justify-center{justify-content:center}.aui-justify-end{justify-content:flex-end}.aui-justify-between{justify-content:space-between}.aui-justify-around{justify-content:space-around}.aui-stretch-even{flex:1 1 0}.aui-stretch-grow{flex-grow:1}.aui-stretch-min{flex-shrink:1}.aui-stretch-max{flex:0 0 100%}.aui-avatar-red{background-color:var(--aui-avatar-red)}.aui-avatar-yellow{background-color:var(--aui-avatar-yellow)}.aui-avatar-green{background-color:var(--aui-avatar-green)}.aui-avatar-blue{background-color:var(--aui-avatar-blue)}.aui-avatar-purple{background-color:var(--aui-avatar-purple)}.aui-avatar-xxs{width:12px;height:12px;line-height:12px;font-size:9.6px}.aui-avatar-xs{width:16px;height:16px;line-height:16px;font-size:12.8px}.aui-avatar-s{width:24px;height:24px;line-height:24px;font-size:19.2px}.aui-avatar-m{width:32px;height:32px;line-height:32px;font-size:25.6px}.aui-avatar-l{width:48px;height:48px;line-height:48px;font-size:38.4px}.aui-avatar-xl{width:64px;height:64px;line-height:64px;font-size:51.2px}.aui-avatar-xxl{width:128px;height:128px;line-height:128px;font-size:102.4px}.aui-icon-xxs{width:8px;height:8px}.aui-icon-xs{width:12px;height:12px}.aui-icon-s{width:16px;height:16px}.aui-icon-m{width:24px;height:24px}.aui-icon-l{width:32px;height:32px}.aui-icon-xl{width:48px;height:48px}.aui-icon-xxl{width:64px;height:64px}.aui-pa-xxs{padding:var(--aui-xxs)}.aui-pa-xs{padding:var(--aui-xs)}.aui-pa-s{padding:var(--aui-s)}.aui-pa-m{padding:var(--aui-m)}.aui-pa-l{padding:var(--aui-l)}.aui-pa-xl{padding:var(--aui-xl)}.aui-pa-xxl{padding:var(--aui-xxl)}.aui-pa-none{padding:0}.aui-pt-xxs{padding-top:var(--aui-xxs)}.aui-pt-xs{padding-top:var(--aui-xs)}.aui-pt-s{padding-top:var(--aui-s)}.aui-pt-m{padding-top:var(--aui-m)}.aui-pt-l{padding-top:var(--aui-l)}.aui-pt-xl{padding-top:var(--aui-xl)}.aui-pt-xxl{padding-top:var(--aui-xxl)}.aui-pt-none{padding-top:0}.aui-pb-xxs{padding-bottom:var(--aui-xxs)}.aui-pb-xs{padding-bottom:var(--aui-xs)}.aui-pb-s{padding-bottom:var(--aui-s)}.aui-pb-m{padding-bottom:var(--aui-m)}.aui-pb-l{padding-bottom:var(--aui-l)}.aui-pb-xl{padding-bottom:var(--aui-xl)}.aui-pb-xxl{padding-bottom:var(--aui-xxl)}.aui-pb-none{padding-bottom:0}.aui-pl-xxs{padding-left:var(--aui-xxs)}.aui-pl-xs{padding-left:var(--aui-xs)}.aui-pl-s{padding-left:var(--aui-s)}.aui-pl-m{padding-left:var(--aui-m)}.aui-pl-l{padding-left:var(--aui-l)}.aui-pl-xl{padding-left:var(--aui-xl)}.aui-pl-xxl{padding-left:var(--aui-xxl)}.aui-pl-none{padding-left:0}.aui-pr-xxs{padding-right:var(--aui-xxs)}.aui-pr-xs{padding-right:var(--aui-xs)}.aui-pr-s{padding-right:var(--aui-s)}.aui-pr-m{padding-right:var(--aui-m)}.aui-pr-l{padding-right:var(--aui-l)}.aui-pr-xl{padding-right:var(--aui-xl)}.aui-pr-xxl{padding-right:var(--aui-xxl)}.aui-pr-none{padding-right:0}.aui-ma-auto{margin:auto}.aui-ma-xxs{margin:var(--aui-xxs)}.aui-ma-xs{margin:var(--aui-xs)}.aui-ma-s{margin:var(--aui-s)}.aui-ma-m{margin:var(--aui-m)}.aui-ma-l{margin:var(--aui-l)}.aui-ma-xl{margin:var(--aui-xl)}.aui-ma-xxl{margin:var(--aui-xxl)}.aui-ma-none{margin:0}.aui-mt-auto{margin-top:auto}.aui-mt-xxs{margin-top:var(--aui-xxs)}.aui-mt-xs{margin-top:var(--aui-xs)}.aui-mt-s{margin-top:var(--aui-s)}.aui-mt-m{margin-top:var(--aui-m)}.aui-mt-l{margin-top:var(--aui-l)}.aui-mt-xl{margin-top:var(--aui-xl)}.aui-mt-xxl{margin-top:var(--aui-xxl)}.aui-mt-none{margin-top:0}.aui-mb-auto{margin-bottom:auto}.aui-mb-xxs{margin-bottom:var(--aui-xxs)}.aui-mb-xs{margin-bottom:var(--aui-xs)}.aui-mb-s{margin-bottom:var(--aui-s)}.aui-mb-m{margin-bottom:var(--aui-m)}.aui-mb-l{margin-bottom:var(--aui-l)}.aui-mb-xl{margin-bottom:var(--aui-xl)}.aui-mb-xxl{margin-bottom:var(--aui-xxl)}.aui-mb-none{margin-bottom:0}.aui-ml-auto{margin-left:auto}.aui-ml-xxs{margin-left:var(--aui-xxs)}.aui-ml-xs{margin-left:var(--aui-xs)}.aui-ml-s{margin-left:var(--aui-s)}.aui-ml-m{margin-left:var(--aui-m)}.aui-ml-l{margin-left:var(--aui-l)}.aui-ml-xl{margin-left:var(--aui-xl)}.aui-ml-xxl{margin-left:var(--aui-xxl)}.aui-ml-none{margin-left:0}.aui-mr-auto{margin-right:auto}.aui-mr-xxs{margin-right:var(--aui-xxs)}.aui-mr-xs{margin-right:var(--aui-xs)}.aui-mr-s{margin-right:var(--aui-s)}.aui-mr-m{margin-right:var(--aui-m)}.aui-mr-l{margin-right:var(--aui-l)}.aui-mr-xl{margin-right:var(--aui-xl)}.aui-mr-xxl{margin-right:var(--aui-xxl)}.aui-mr-none{margin-right:0}.aui-gap-xxs{gap:var(--aui-xxs)}.aui-gap-xs{gap:var(--aui-xs)}.aui-gap-s{gap:var(--aui-s)}.aui-gap-m{gap:var(--aui-m)}.aui-gap-l{gap:var(--aui-l)}.aui-gap-xl{gap:var(--aui-xl)}.aui-gap-xxl{gap:var(--aui-xxl)}.aui-gap-none{gap:0}.aui-w-full{width:100%}.aui-w-fit{width:fit-content}.aui-w-min{width:min-content}.aui-w-max{width:max-content}.aui-minw-full{min-width:100%}.aui-minw-fit{min-width:fit-content}.aui-minw-min{min-width:min-content}.aui-minw-max{min-width:max-content}.aui-maxw-full{max-width:100%}.aui-maxw-fit{max-width:fit-content}.aui-maxw-min{max-width:min-content}.aui-maxw-max{max-width:max-content}.aui-h-full{height:100%}.aui-h-fit{height:fit-content}.aui-h-min{height:min-content}.aui-h-max{height:max-content}.aui-minh-full{min-height:100%}.aui-minh-fit{min-height:fit-content}.aui-minh-min{min-height:min-content}.aui-minh-max{min-height:max-content}.aui-maxh-full{max-height:100%}.aui-maxh-fit{max-height:fit-content}.aui-maxh-min{max-height:min-content}.aui-maxh-max{max-height:max-content}.aui-radius-subtle{border-radius:var(--aui-radius-subtle)}.aui-radius-rounded{border-radius:var(--aui-radius-rounded)}.aui-radius-max{border-radius:var(--aui-radius-max)}.aui-radius-none{border-radius:var(--aui-radius-none)}.aui-ba{border:1px solid var(--aui-default-border)}.aui-bt{border-top:1px solid var(--aui-default-border)}.aui-br{border-right:1px solid var(--aui-default-border)}.aui-bb{border-bottom:1px solid var(--aui-default-border)}.aui-bl{border-left:1px solid var(--aui-default-border)}.aui-bw-xs{border-width:1px}.aui-bw-s{border-width:2px}.aui-bw-m{border-width:4px}.aui-bw-l{border-width:8px}.aui-bw-none{border-width:0px}.aui-bs-solid{border-style:solid}.aui-bs-dotted{border-style:dotted}.aui-bs-dashed{border-style:dashed}.aui-bs-none{border-style:none}.aui-bc-default{border-color:var(--aui-default-border)}.aui-bc-primary{border-color:var(--aui-color-default)}.aui-shadow-subtle{box-shadow:var(--aui-subtle-box-shadow)}.aui-shadow-floating{box-shadow:var(--aui-floating-box-shadow)}.aui-shadow-none{box-shadow:none}.aui-op-disabled{opacity:var(--aui-opacity-disabled)}.aui-op-dim{opacity:var(--aui-opacity-dim)}.aui-op-full{opacity:1}.aui-op-none{opacity:0}.aui-content-success{background-color:var(--aui-success-background);color:var(--aui-success-color);border-color:var(--aui-success-border)}.aui-content-warning{background-color:var(--aui-warning-background);color:var(--aui-warning-color);border-color:var(--aui-warning-border)}.aui-content-error{background-color:var(--aui-error-background);color:var(--aui-error-color);border-color:var(--aui-error-border)}.aui-content-info{background-color:var(--aui-info-background);color:var(--aui-info-color);border-color:var(--aui-info-border)}.aui-content-static{background-color:var(--aui-static-background);color:var(--aui-static-color);border-color:var(--aui-static-border)}.aui-f-xxs{font-size:10px}.aui-f-xs{font-size:12px}.aui-f-s{font-size:14px}.aui-f-default{font-size:16px}.aui-f-m{font-size:20px}.aui-f-l{font-size:24px}.aui-f-xl{font-size:32px}.aui-f-xxl{font-size:48px}.aui-fw-1{font-weight:100}.aui-fw-2{font-weight:200}.aui-fw-3{font-weight:300}.aui-fw-4{font-weight:400}.aui-fw-5{font-weight:500}.aui-fw-6{font-weight:600}.aui-fw-7{font-weight:700}.aui-fw-8{font-weight:800}.aui-fw-9{font-weight:900}.aui-ta-left{text-align:left}.aui-ta-right{text-align:right}.aui-ta-center{text-align:center}.aui-lh-s{line-height:1.15}.aui-lh-m{line-height:1.5}.aui-lh-l{line-height:2}.aui-it{font-style:italic}.aui-c-default{color:var(--aui-color-default)}.aui-c-muted{color:var(--aui-color-muted)}.aui-c-inherit{color:inherit}.aui-c-transparent{color:rgba(0,0,0,0)}.aui-bg-default{background-color:var(--aui-default-background)}.aui-bg-muted{background-color:var(--aui-static-background)}.aui-bg-inherit{background-color:inherit}.aui-bg-transparent{background-color:rgba(0,0,0,0)}.aui-ov-auto{overflow:auto}.aui-ov-x-auto{overflow-x:auto}.aui-ov-y-auto{overflow-y:auto}.aui-ov-hidden{overflow:hidden}.aui-ov-x-hidden{overflow-x:hidden}.aui-ov-y-hidden{overflow-y:hidden}.aui-z-auto{z-index:auto}.aui-z-floating{z-index:100}.aui-z-nav{z-index:1000}.aui-z-max{z-index:10000}.aui-cursor-auto{cursor:auto}.aui-cursor-pointer{cursor:pointer}
1
+ :root{--aui-xxs: 2px;--aui-xs: 4px;--aui-s: 8px;--aui-m: 16px;--aui-l: 24px;--aui-xl: 32px;--aui-xxl: 64px;--aui-light-gray: #e8e8e8;--aui-moon-gray: #ccc;--aui-dark-gray: #555;--aui-darkest-gray: #333;--aui-obsidian: #121212;--aui-focus-ring-color: #b2dbfa;--aui-color-default: black;--aui-color-muted: var(--aui-dark-gray);--aui-default-background: white;--aui-default-border: var(--aui-moon-gray);--aui-opacity-disabled: 0.5;--aui-opacity-dim: 0.75;--aui-transition: 0.25s;--aui-floating-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);--aui-radius-none: 0;--aui-radius-subtle: 4px;--aui-radius-rounded: 8px;--aui-radius-max: 10000px;--aui-button-primary-background: black;--aui-button-primary-color: white;--aui-button-secondary-border-hover: var(--aui-darkest-gray);--aui-subtle-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.16);--aui-button-primary-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.42);--aui-button-danger-background: #cc1122;--aui-button-danger-box-shadow: 0 1px 2px rgba(120, 20, 20, 0.48);--aui-success-background: #dff2e1;--aui-success-color: #1b5e20;--aui-success-border: #b2dfb1;--aui-warning-background: #fceeb6;--aui-warning-color: #b23904;--aui-warning-border: #e6d5a2;--aui-error-background: #fdecea;--aui-error-color: #b71c1c;--aui-error-border: #f5b7b7;--aui-info-background: #e3f2fd;--aui-info-color: #0d47a1;--aui-info-border: #90caf9;--aui-avatar-purple: #bc54d6;--aui-avatar-blue: #618bdc;--aui-avatar-red: #ee6060;--aui-avatar-green: #add386;--aui-avatar-yellow: #f5c76d;--aui-static-background: var(--aui-light-gray);--aui-static-color: var(--aui-color-default);--aui-static-border: var(--aui-default-border);--aui-layer-backdrop-background: rgba(200, 200, 200, 0.6);--aui-link-color: #0070ff}[data-theme=dark]{--aui-focus-ring-color: #6699cc;--aui-color-default: white;--aui-color-muted: var(--aui-moon-gray);--aui-default-background: var(--aui-obsidian);--aui-default-border: var(--aui-dark-gray);--aui-floating-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);--aui-button-primary-background: white;--aui-button-primary-color: black;--aui-button-secondary-border-hover: var(--aui-moon-gray);--aui-subtle-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);--aui-button-primary-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.75);--aui-button-danger-background: #ff4444;--aui-button-danger-box-shadow: 0 1px 2px rgba(120, 20, 20, 0.75);--aui-success-background: #2a5733;--aui-success-color: #d9efd8;--aui-success-border: #439e4a;--aui-warning-background: #736230;--aui-warning-color: #fff6d1;--aui-warning-border: #927a3b;--aui-error-background: #663232;--aui-error-color: #f9dadc;--aui-error-border: #8d2a2a;--aui-info-background: #335f72;--aui-info-color: #d4f1f5;--aui-info-border: #1d8ea4;--aui-static-background: var(--aui-darkest-gray);--aui-static-color: var(--aui-color-default);--aui-static-border: var(--aui-default-border);--aui-avatar-purple: #771199;--aui-avatar-blue: #0b4cce;--aui-avatar-red: #bb1111;--aui-avatar-green: #307040;--aui-avatar-yellow: #bb8822;--aui-layer-backdrop-background: rgba(55, 55, 55, 0.7);--aui-link-color: #33bfff}*{box-sizing:border-box}html{font-family:system-ui,"Helvetica Neue",Helvetica,Arial,sans-serif;-webkit-text-size-adjust:100%;line-height:1.15;tab-size:4;-webkit-font-smoothing:antialiased}body{margin:0}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}.aui-action{color:inherit;text-decoration:none;cursor:pointer;outline-color:var(--aui-link-color)}.aui-action:focus:not(:focus-visible){outline:none}.aui-button{background:none;border:none;padding:0}.aui-button:disabled{cursor:default !important;opacity:var(--aui-opacity-disabled)}.aui-button-primary{background-color:var(--aui-button-primary-background);border:1px solid var(--aui-button-primary-background);color:var(--aui-button-primary-color);box-shadow:var(--aui-button-primary-box-shadow);transition:opacity var(--aui-transition)}.aui-button-danger{background-color:var(--aui-button-danger-background);border:1px solid var(--aui-button-danger-background);color:var(--aui-button-primary-color);box-shadow:var(--aui-button-danger-box-shadow);transition:opacity var(--aui-transition)}.aui-button-secondary{color:var(--aui-color-default);background-color:var(--aui-default-background);border:1px solid var(--aui-default-border);box-shadow:var(--aui-subtle-box-shadow);transition:border var(--aui-transition)}.aui-hov-dim,.aui-hov-undim{transition:opacity var(--aui-transition)}.aui-hov-dim{opacity:1}.aui-hov-undim{opacity:var(--aui-opacity-dim)}.aui-link{color:var(--aui-link-color)}.aui-table{display:table;border-spacing:0}.aui-table-row{display:table-row}.aui-hov-shade{background-color:rgba(0,0,0,0);transition:background-color var(--aui-transition)}.aui-table-cell{display:table-cell;vertical-align:middle}@media(hover: hover){.aui-hov-dim:not([disabled]):hover{opacity:var(--aui-opacity-dim)}.aui-button-secondary:not([disabled]):hover{border-color:var(--aui-button-secondary-border-hover)}.aui-hov-undim:not([disabled]):hover{opacity:1}.aui-hov-shade:not([disabled]):hover,.aui-autocomplete-on-option{background-color:var(--aui-static-background)}}.aui-input-base{outline:none;border:none;background-color:inherit;color:inherit;padding:var(--aui-s);font-weight:400}.aui-input-base::selection{background-color:var(--aui-focus-ring-color)}.aui-input,.aui-select-container{transition:box-shadow var(--aui-transition);border:1px solid var(--aui-default-border);box-shadow:var(--aui-subtle-box-shadow);background-color:var(--aui-default-background)}.aui-input:disabled{opacity:var(--aui-opacity-disabled);cursor:default}.aui-input:not([disabled]):focus-within,.aui-select-container:not([disabled]):focus-within{box-shadow:var(--aui-subtle-box-shadow),0 0 0 3px var(--aui-focus-ring-color)}.aui-select{width:100%;color:inherit;border:none;outline:none;box-shadow:none;cursor:pointer;background-color:rgba(0,0,0,0);padding:var(--aui-s) 28px var(--aui-s) var(--aui-s);font-weight:600;appearance:none;-webkit-appearance:none;-moz-appearance:none}.aui-select-disabled *{opacity:var(--aui-opacity-disabled);cursor:default}.aui-layer-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:var(--aui-layer-backdrop-background)}.aui-icon *{color:currentColor;fill:currentColor}.aui-spinner{animation:aui-spinner-animation 1s linear infinite;transform-origin:center;height:var(--aui-l)}@keyframes aui-spinner-animation{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.aui-carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);width:var(--aui-l);height:var(--aui-l)}.aui-carousel-dots{position:absolute;bottom:var(--aui-s);transform:translateX(-50%);left:50%}.aui-carousel-dot{width:var(--aui-m);height:var(--aui-s)}.aui-pos-relative{position:relative}.aui-pos-absolute{position:absolute}.aui-pos-fixed{position:fixed}.aui-pos-sticky{position:sticky}.aui-flex-x{display:flex;flex-direction:row}.aui-flex-y{display:flex;flex-direction:column}.aui-flex--x{display:flex;flex-direction:row-reverse}.aui-flex--y{display:flex;flex-direction:column-reverse}.aui-flex-wrap{flex-wrap:wrap}.aui-align-start{align-items:flex-start}.aui-align-center{align-items:center}.aui-align-end{align-items:flex-end}.aui-justify-start{justify-content:flex-start}.aui-justify-center{justify-content:center}.aui-justify-end{justify-content:flex-end}.aui-justify-between{justify-content:space-between}.aui-justify-around{justify-content:space-around}.aui-stretch-even{flex:1 1 0}.aui-stretch-grow{flex-grow:1}.aui-stretch-min{flex-shrink:1}.aui-stretch-max{flex:0 0 100%}.aui-avatar-red{background-color:var(--aui-avatar-red)}.aui-avatar-yellow{background-color:var(--aui-avatar-yellow)}.aui-avatar-green{background-color:var(--aui-avatar-green)}.aui-avatar-blue{background-color:var(--aui-avatar-blue)}.aui-avatar-purple{background-color:var(--aui-avatar-purple)}.aui-avatar-xxs{width:12px;height:12px;line-height:12px;font-size:9.6px}.aui-avatar-xs{width:16px;height:16px;line-height:16px;font-size:12.8px}.aui-avatar-s{width:24px;height:24px;line-height:24px;font-size:19.2px}.aui-avatar-m{width:32px;height:32px;line-height:32px;font-size:25.6px}.aui-avatar-l{width:48px;height:48px;line-height:48px;font-size:38.4px}.aui-avatar-xl{width:64px;height:64px;line-height:64px;font-size:51.2px}.aui-avatar-xxl{width:128px;height:128px;line-height:128px;font-size:102.4px}.aui-icon-xxs{width:8px;height:8px}.aui-icon-xs{width:12px;height:12px}.aui-icon-s{width:16px;height:16px}.aui-icon-m{width:24px;height:24px}.aui-icon-l{width:32px;height:32px}.aui-icon-xl{width:48px;height:48px}.aui-icon-xxl{width:64px;height:64px}.aui-pa-xxs{padding:var(--aui-xxs)}.aui-pa-xs{padding:var(--aui-xs)}.aui-pa-s{padding:var(--aui-s)}.aui-pa-m{padding:var(--aui-m)}.aui-pa-l{padding:var(--aui-l)}.aui-pa-xl{padding:var(--aui-xl)}.aui-pa-xxl{padding:var(--aui-xxl)}.aui-pa-none{padding:0}.aui-pt-xxs{padding-top:var(--aui-xxs)}.aui-pt-xs{padding-top:var(--aui-xs)}.aui-pt-s{padding-top:var(--aui-s)}.aui-pt-m{padding-top:var(--aui-m)}.aui-pt-l{padding-top:var(--aui-l)}.aui-pt-xl{padding-top:var(--aui-xl)}.aui-pt-xxl{padding-top:var(--aui-xxl)}.aui-pt-none{padding-top:0}.aui-pb-xxs{padding-bottom:var(--aui-xxs)}.aui-pb-xs{padding-bottom:var(--aui-xs)}.aui-pb-s{padding-bottom:var(--aui-s)}.aui-pb-m{padding-bottom:var(--aui-m)}.aui-pb-l{padding-bottom:var(--aui-l)}.aui-pb-xl{padding-bottom:var(--aui-xl)}.aui-pb-xxl{padding-bottom:var(--aui-xxl)}.aui-pb-none{padding-bottom:0}.aui-pl-xxs{padding-left:var(--aui-xxs)}.aui-pl-xs{padding-left:var(--aui-xs)}.aui-pl-s{padding-left:var(--aui-s)}.aui-pl-m{padding-left:var(--aui-m)}.aui-pl-l{padding-left:var(--aui-l)}.aui-pl-xl{padding-left:var(--aui-xl)}.aui-pl-xxl{padding-left:var(--aui-xxl)}.aui-pl-none{padding-left:0}.aui-pr-xxs{padding-right:var(--aui-xxs)}.aui-pr-xs{padding-right:var(--aui-xs)}.aui-pr-s{padding-right:var(--aui-s)}.aui-pr-m{padding-right:var(--aui-m)}.aui-pr-l{padding-right:var(--aui-l)}.aui-pr-xl{padding-right:var(--aui-xl)}.aui-pr-xxl{padding-right:var(--aui-xxl)}.aui-pr-none{padding-right:0}.aui-ma-auto{margin:auto}.aui-ma-xxs{margin:var(--aui-xxs)}.aui-ma-xs{margin:var(--aui-xs)}.aui-ma-s{margin:var(--aui-s)}.aui-ma-m{margin:var(--aui-m)}.aui-ma-l{margin:var(--aui-l)}.aui-ma-xl{margin:var(--aui-xl)}.aui-ma-xxl{margin:var(--aui-xxl)}.aui-ma-none{margin:0}.aui-mt-auto{margin-top:auto}.aui-mt-xxs{margin-top:var(--aui-xxs)}.aui-mt-xs{margin-top:var(--aui-xs)}.aui-mt-s{margin-top:var(--aui-s)}.aui-mt-m{margin-top:var(--aui-m)}.aui-mt-l{margin-top:var(--aui-l)}.aui-mt-xl{margin-top:var(--aui-xl)}.aui-mt-xxl{margin-top:var(--aui-xxl)}.aui-mt-none{margin-top:0}.aui-mb-auto{margin-bottom:auto}.aui-mb-xxs{margin-bottom:var(--aui-xxs)}.aui-mb-xs{margin-bottom:var(--aui-xs)}.aui-mb-s{margin-bottom:var(--aui-s)}.aui-mb-m{margin-bottom:var(--aui-m)}.aui-mb-l{margin-bottom:var(--aui-l)}.aui-mb-xl{margin-bottom:var(--aui-xl)}.aui-mb-xxl{margin-bottom:var(--aui-xxl)}.aui-mb-none{margin-bottom:0}.aui-ml-auto{margin-left:auto}.aui-ml-xxs{margin-left:var(--aui-xxs)}.aui-ml-xs{margin-left:var(--aui-xs)}.aui-ml-s{margin-left:var(--aui-s)}.aui-ml-m{margin-left:var(--aui-m)}.aui-ml-l{margin-left:var(--aui-l)}.aui-ml-xl{margin-left:var(--aui-xl)}.aui-ml-xxl{margin-left:var(--aui-xxl)}.aui-ml-none{margin-left:0}.aui-mr-auto{margin-right:auto}.aui-mr-xxs{margin-right:var(--aui-xxs)}.aui-mr-xs{margin-right:var(--aui-xs)}.aui-mr-s{margin-right:var(--aui-s)}.aui-mr-m{margin-right:var(--aui-m)}.aui-mr-l{margin-right:var(--aui-l)}.aui-mr-xl{margin-right:var(--aui-xl)}.aui-mr-xxl{margin-right:var(--aui-xxl)}.aui-mr-none{margin-right:0}.aui-gap-xxs{gap:var(--aui-xxs)}.aui-gap-xs{gap:var(--aui-xs)}.aui-gap-s{gap:var(--aui-s)}.aui-gap-m{gap:var(--aui-m)}.aui-gap-l{gap:var(--aui-l)}.aui-gap-xl{gap:var(--aui-xl)}.aui-gap-xxl{gap:var(--aui-xxl)}.aui-gap-none{gap:0}.aui-w-full{width:100%}.aui-w-fit{width:fit-content}.aui-w-min{width:min-content}.aui-w-max{width:max-content}.aui-minw-full{min-width:100%}.aui-minw-fit{min-width:fit-content}.aui-minw-min{min-width:min-content}.aui-minw-max{min-width:max-content}.aui-maxw-full{max-width:100%}.aui-maxw-fit{max-width:fit-content}.aui-maxw-min{max-width:min-content}.aui-maxw-max{max-width:max-content}.aui-h-full{height:100%}.aui-h-fit{height:fit-content}.aui-h-min{height:min-content}.aui-h-max{height:max-content}.aui-minh-full{min-height:100%}.aui-minh-fit{min-height:fit-content}.aui-minh-min{min-height:min-content}.aui-minh-max{min-height:max-content}.aui-maxh-full{max-height:100%}.aui-maxh-fit{max-height:fit-content}.aui-maxh-min{max-height:min-content}.aui-maxh-max{max-height:max-content}.aui-radius-subtle{border-radius:var(--aui-radius-subtle)}.aui-radius-rounded{border-radius:var(--aui-radius-rounded)}.aui-radius-max{border-radius:var(--aui-radius-max)}.aui-radius-none{border-radius:var(--aui-radius-none)}.aui-ba{border:1px solid var(--aui-default-border)}.aui-ba-none{border:none}.aui-bt{border-top:1px solid var(--aui-default-border)}.aui-bt-none{border-top:none}.aui-br{border-right:1px solid var(--aui-default-border)}.aui-br-none{border-right:none}.aui-bb{border-bottom:1px solid var(--aui-default-border)}.aui-bb-none{border-bottom:none}.aui-bl{border-left:1px solid var(--aui-default-border)}.aui-bl-none{border-left:none}.aui-bw-xs{border-width:1px}.aui-bw-s{border-width:2px}.aui-bw-m{border-width:4px}.aui-bw-l{border-width:8px}.aui-bw-none{border-width:0px}.aui-bs-solid{border-style:solid}.aui-bs-dotted{border-style:dotted}.aui-bs-dashed{border-style:dashed}.aui-bs-none{border-style:none}.aui-bc-default{border-color:var(--aui-default-border)}.aui-bc-primary{border-color:var(--aui-color-default)}.aui-shadow-subtle{box-shadow:var(--aui-subtle-box-shadow)}.aui-shadow-floating{box-shadow:var(--aui-floating-box-shadow)}.aui-shadow-none{box-shadow:none}.aui-op-disabled{opacity:var(--aui-opacity-disabled)}.aui-op-dim{opacity:var(--aui-opacity-dim)}.aui-op-full{opacity:1}.aui-op-none{opacity:0}.aui-content-success{background-color:var(--aui-success-background);color:var(--aui-success-color);border-color:var(--aui-success-border)}.aui-content-warning{background-color:var(--aui-warning-background);color:var(--aui-warning-color);border-color:var(--aui-warning-border)}.aui-content-error{background-color:var(--aui-error-background);color:var(--aui-error-color);border-color:var(--aui-error-border)}.aui-content-info{background-color:var(--aui-info-background);color:var(--aui-info-color);border-color:var(--aui-info-border)}.aui-content-static{background-color:var(--aui-static-background);color:var(--aui-static-color);border-color:var(--aui-static-border)}.aui-f-xxs{font-size:10px}.aui-f-xs{font-size:12px}.aui-f-s{font-size:14px}.aui-f-default{font-size:16px}.aui-f-m{font-size:20px}.aui-f-l{font-size:24px}.aui-f-xl{font-size:32px}.aui-f-xxl{font-size:48px}.aui-fw-1{font-weight:100}.aui-fw-2{font-weight:200}.aui-fw-3{font-weight:300}.aui-fw-4{font-weight:400}.aui-fw-5{font-weight:500}.aui-fw-6{font-weight:600}.aui-fw-7{font-weight:700}.aui-fw-8{font-weight:800}.aui-fw-9{font-weight:900}.aui-ta-left{text-align:left}.aui-ta-right{text-align:right}.aui-ta-center{text-align:center}.aui-lh-s{line-height:1.15}.aui-lh-m{line-height:1.5}.aui-lh-l{line-height:2}.aui-it{font-style:italic}.aui-c-default{color:var(--aui-color-default)}.aui-c-muted{color:var(--aui-color-muted)}.aui-c-inherit{color:inherit}.aui-c-transparent{color:rgba(0,0,0,0)}.aui-bg-default{background-color:var(--aui-default-background)}.aui-bg-muted{background-color:var(--aui-static-background)}.aui-bg-inherit{background-color:inherit}.aui-bg-transparent{background-color:rgba(0,0,0,0)}.aui-ov-auto{overflow:auto}.aui-ov-hidden{overflow:hidden}.aui-ov-x-auto{overflow-x:auto}.aui-ov-x-hidden{overflow-x:hidden}.aui-ov-y-auto{overflow-y:auto}.aui-ov-y-hidden{overflow-y:hidden}.aui-z-auto{z-index:auto}.aui-z-floating{z-index:100}.aui-z-nav{z-index:1000}.aui-z-max{z-index:10000}.aui-cursor-auto{cursor:auto}.aui-cursor-pointer{cursor:pointer}
package/types/common.d.ts CHANGED
@@ -15,14 +15,7 @@ type SpacingSize = "none" | SizeToken;
15
15
  type AutoSize = "auto" | SpacingSize;
16
16
  type Color = "default" | "inherit" | "muted" | "transparent";
17
17
  type Overflow = "auto" | "hidden";
18
- /**
19
- * Custom styling props that map to class names.
20
- * This is meant for consistent, token-based styling instead of inline CSS.
21
- * Keys are converted to class names and applied to the element.
22
- *
23
- * @example <ui.span vfx={{ axis: "y", gap: "m", padding: "m" }} />
24
- * @example <Box vfx={{ radius: "rounded", shadow: "subtle", border: true }} />
25
- */
18
+ /** Custom styling tokens that map to class names */
26
19
  export type Vfx = {
27
20
  /** Alignment orthogonal to the selected axis (Equivalent to align-items) */
28
21
  align?: "center" | "end" | "start";
@@ -63,7 +56,7 @@ export type Vfx = {
63
56
  /** Text alignment */
64
57
  textAlign?: "center" | "left" | "right";
65
58
  /** Use italics */
66
- italics?: boolean;
59
+ italics?: true;
67
60
  /** How to space the children (Equivalent to justify-content) */
68
61
  justify?: "around" | "between" | "center" | "end" | "start";
69
62
  /** Options for line height size */
@@ -123,7 +116,7 @@ export type Vfx = {
123
116
  /** Width of the content */
124
117
  width?: SizeDimension;
125
118
  /** Whether to allow wrapping of children */
126
- wrap?: boolean;
119
+ wrap?: true;
127
120
  /** Z-index to position the element at */
128
121
  z?: "auto" | "floating" | "max" | "nav";
129
122
  };
@@ -1,28 +1,16 @@
1
1
  /** Location object of the current URL */
2
2
  export type Location = {
3
- /**
4
- * URL hash
5
- * @example "#home"
6
- */
3
+ /** URL hash */
7
4
  hash: string;
8
- /**
9
- * URL pathname
10
- * @example "/movies/123"
11
- */
5
+ /** URL pathname */
12
6
  pathname: string;
13
- /**
14
- * URL search
15
- * @example "?q=inception"
16
- */
7
+ /** URL search */
17
8
  search: string;
18
9
  };
19
10
  export type HistoryMode = "push" | "replace";
20
11
  /** Additional params to feed the navigate() function */
21
12
  export type NavigateOptions = {
22
- /**
23
- * Whether to append a new entry or overwrite the current browser URL in history.
24
- * @default "push"
25
- */
13
+ /** Whether to append a new entry or overwrite the current browser URL in history */
26
14
  historyMode?: HistoryMode;
27
15
  };
28
16
  /** A function to handle page navigation either to a destination URL or relative to browser history */
@@ -34,22 +22,15 @@ export type Navigate = {
34
22
  (to: string, options?: NavigateOptions): void;
35
23
  /**
36
24
  * Navigate relative to the browser history stack.
37
- * Positive values go forward, negative values go backward.
38
25
  * @example navigate(-1)
39
26
  */
40
27
  (historyOffset: number): void;
41
28
  };
42
- /**
43
- * Object containing params from the pathname.
44
- * @example `{id: "1"}` for `/movie/:id <=> /movie/1`
45
- */
29
+ /** Params from the pathname */
46
30
  export type PathParams = {
47
31
  [key: string]: string | undefined;
48
32
  };
49
- /**
50
- * Object containing params from the search string.
51
- * @example `{id: "1", movies: ["inception", "alien"]}` for `"?id=1&movies=inception&movies=alien"`
52
- */
33
+ /** Params from the search string */
53
34
  export type SearchParams = {
54
35
  [key: string]: string | string[] | undefined;
55
36
  };
@@ -1,36 +0,0 @@
1
- import React from "react";
2
- import { type BoxProps } from "../Box/Box";
3
- import Button from "../Button";
4
- type ButtonProps = Omit<React.ComponentProps<typeof Button>, "children" | "onClick">;
5
- type Props = BoxProps & {
6
- /** Callback that fires when the user clicks the Ok button in the modal */
7
- onConfirm: () => void;
8
- /**
9
- * Label rendered in the ok/confirm button.
10
- * @default "Ok"
11
- */
12
- confirmLabel?: React.ReactNode;
13
- /**
14
- * Label rendered in the cancel button.
15
- * @default "Cancel"
16
- */
17
- cancelLabel?: React.ReactNode;
18
- /** Props to pass to the confirm button */
19
- confirmButtonProps?: ButtonProps;
20
- /** Props to pass to the cancel button */
21
- cancelButtonProps?: ButtonProps;
22
- /** Whether the modal is open or not */
23
- open: boolean;
24
- /** Callback that fires when the user closes the modal */
25
- onClose: () => void;
26
- /**
27
- * Whether to return focus to the element that triggered the modal.
28
- * @default false
29
- */
30
- returnFocusOnEscape?: boolean;
31
- /** Props to pass to the outer box container */
32
- wrapperBoxProps?: Omit<BoxProps, "children">;
33
- };
34
- /** Confirmation modal with cancel/confirm actions */
35
- declare const Modal: React.ForwardRefExoticComponent<Omit<Props, "ref"> & React.RefAttributes<HTMLDivElement>>;
36
- export default Modal;
@@ -1 +0,0 @@
1
- import{jsx as a,jsxs as u}from"react/jsx-runtime";import w from"react";import{x as P}from"../../icons";import j from"../Animated";import c from"../Box/Box";import m,{IconButton as C}from"../Button";import L from"../Layer";var i=function(){return i=Object.assign||function(r){for(var e,t=1,o=arguments.length;t<o;t++){e=arguments[t];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n])}return r},i.apply(this,arguments)},p=function(r,e){var t={};for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&e.indexOf(o)<0&&(t[o]=r[o]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,o=Object.getOwnPropertySymbols(r);n<o.length;n++)e.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(r,o[n])&&(t[o[n]]=r[o[n]]);return t},k=w.forwardRef(function(r,e){var t=r.open,o=r.onClose,n=r.onConfirm,d=r.confirmButtonProps,x=r.cancelButtonProps,l=r.confirmLabel,h=l===void 0?"Ok":l,f=r.cancelLabel,v=f===void 0?"Cancel":f,b=r.returnFocusOnEscape,y=r.wrapperBoxProps,g=p(r,["open","onClose","onConfirm","confirmButtonProps","cancelButtonProps","confirmLabel","cancelLabel","returnFocusOnEscape","wrapperBoxProps"]),s=y||{},O=s.vfx,B=p(s,["vfx"]);return a(j,{vfx:{pos:"fixed",z:"max"},visible:t,to:{opacity:1},from:{opacity:0},children:a(L,{onClose:o,returnFocusOnEscape:b,children:u(c,i({role:"dialog","aria-modal":"true"},B,{vfx:i({axis:"y",padding:"m",gap:"m",radius:"rounded",maxWidth:"full",shadow:"floating",border:!0,color:"default",backgroundColor:"default"},O),children:[a(c,{vfx:{axis:"x",align:"center",justify:"end",width:"full"},children:a(C,{icon:P,onClick:o})}),a(c,i({},g,{ref:e})),u(c,{vfx:{axis:"x",align:"center",justify:"end",width:"full",gap:"m"},children:[a(m,i({variant:"secondary"},x,{onClick:o,children:v})),a(m,i({},d,{onClick:function(){n(),o()},children:h}))]})]}))})})}),A=k;export{A as default};
@@ -1 +0,0 @@
1
- export { default } from "./Modal";
@@ -1 +0,0 @@
1
- import{default as o}from"./Modal";export{o as default};
@@ -1,8 +0,0 @@
1
- /**
2
- * Assert a value is defined.
3
- *
4
- * @param value The value to assert presence of.
5
- * @param message Optional error message.
6
- * @returns The present value.
7
- */
8
- export default function assertDefined<T>(value: T | undefined, message?: string): T;
@@ -1 +0,0 @@
1
- function r(e,n){if(e===void 0)throw new Error(n||"Unexpected undefined value");return e}export{r as default};
@@ -1,7 +0,0 @@
1
- /**
2
- * Scroll to the element with the given id.
3
- *
4
- * @param id The id of the element to scroll to.
5
- * @param behavior Scroll behavior.
6
- */
7
- export default function scrollToId(id: string, behavior?: ScrollBehavior): void;
@@ -1 +0,0 @@
1
- function c(o,r){try{var t=document.getElementById(o);t&&t.scrollIntoView({behavior:r})}catch(e){return}}export{c as default};