@adam-milo/ui 1.0.133 → 1.0.135

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index35.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),e=require("react"),a=require("@radix-ui/react-tabs"),r=require("./index67.cjs"),s=require("./index90.cjs");function i(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t)for(const a in t)if("default"!==a){const r=Object.getOwnPropertyDescriptor(t,a);Object.defineProperty(e,a,r.get?r:{enumerable:!0,get:()=>t[a]})}return e.default=t,Object.freeze(e)}const n=i(a),l=n.Root,c=e.forwardRef(({className:a,fullWidth:i=!1,variant:l="default","data-cy":c,"data-testid":o,...d},u)=>{const b=c||"tabs-list",f=o||"tabs-list",g=e.useRef(null),[y,m]=e.useState({left:0,width:0}),[p,v]=e.useState(!1),x=e.useCallback(()=>{const t=g.current;if(!t)return;const e=t.querySelector('[data-state="active"]');if(!e)return;const a=t.getBoundingClientRect(),r=e.getBoundingClientRect();m({left:r.left-a.left+t.scrollLeft,width:r.width}),v(!0)},[]);e.useEffect(()=>{const t=g.current;if(!t)return;x();const e=new MutationObserver(x);return e.observe(t,{attributes:!0,subtree:!0,attributeFilter:["data-state"]}),()=>e.disconnect()},[x]);const S="default"===l&&p;return t.jsxs(n.List,{ref:t=>{g.current=t,"function"==typeof u?u(t):u&&(u.current=t)},className:r.cn("relative","table"===l?s.listTableStyles:"mobile"===l?s.listMobileStyles:s.listStyles,i&&s.listFullWidthStyles,a),"data-cy":b,"data-testid":f,"data-full-width":i,"data-variant":l,...d,children:[d.children,S&&t.jsx("span",{className:"absolute bottom-0 h-[4px] bg-[var(--color-clickable)] rounded-t-sm transition-all duration-300 ease-in-out pointer-events-none",style:{left:y.left,width:y.width},"aria-hidden":"true"})]})});c.displayName=n.List.displayName;const o=e.forwardRef(({className:e,value:a,variant:i="default","data-cy":l,"data-testid":c,...o},d)=>{const u=l||(a?`tabs-trigger-${a}`:"tabs-trigger"),b=c||(a?`tabs-trigger-${a}`:"tabs-trigger");return t.jsx(n.Trigger,{ref:d,className:r.cn("table"===i?s.triggerTableStyles:"mobile"===i?s.triggerMobileStyles:s.triggerStyles,e),value:a,"data-cy":u,"data-testid":b,...o})});o.displayName=n.Trigger.displayName;const d=e.forwardRef(({className:e,value:a,"data-cy":i,"data-testid":l,...c},o)=>{const d=i||(a?`tabs-content-${a}`:"tabs-content"),u=l||(a?`tabs-content-${a}`:"tabs-content");return t.jsx(n.Content,{ref:o,tabIndex:-1,className:r.cn(s.contentStyles,e),value:a,"data-cy":d,"data-testid":u,...c})});d.displayName=n.Content.displayName,exports.Tabs=l,exports.TabsContent=d,exports.TabsList=c,exports.TabsTrigger=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("react"),a=require("@radix-ui/react-tabs"),r=require("./index67.cjs"),s=require("./index90.cjs");function i(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const a in e)if("default"!==a){const r=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,r.get?r:{enumerable:!0,get:()=>e[a]})}return t.default=e,Object.freeze(t)}const n=i(a),l=n.Root,o=t.forwardRef(({className:a,fullWidth:i=!1,variant:l="default","data-cy":o,"data-testid":c,...d},u)=>{const b=o||"tabs-list",f=c||"tabs-list",g=t.useRef(null),[y,v]=t.useState({left:0,width:0}),[m,p]=t.useState(!1),w=t.useCallback(()=>{const e=g.current;if(!e)return;const t=e.querySelector('[data-state="active"]');if(!t)return void p(!1);const a=e.getBoundingClientRect(),r=t.getBoundingClientRect();v({left:r.left-a.left+e.scrollLeft,width:r.width}),p(!0)},[]);t.useEffect(()=>{const e=g.current;if(!e)return;const t="undefined"!=typeof ResizeObserver?new ResizeObserver(w):null,a=()=>{t&&(t.disconnect(),t.observe(e),e.querySelectorAll('[role="tab"]').forEach(e=>{t.observe(e)}))};w(),a();const r=new MutationObserver(e=>{e.some(e=>"childList"===e.type)&&a(),w()});return r.observe(e,{attributes:!0,childList:!0,subtree:!0,attributeFilter:["data-state"]}),e.addEventListener("scroll",w,{passive:!0}),window.addEventListener("resize",w),()=>{r.disconnect(),t?.disconnect(),e.removeEventListener("scroll",w),window.removeEventListener("resize",w)}},[w]);const S="default"===l&&m;return e.jsxs(n.List,{ref:e=>{g.current=e,"function"==typeof u?u(e):u&&(u.current=e)},className:r.cn("relative","table"===l?s.listTableStyles:"mobile"===l?s.listMobileStyles:s.listStyles,i&&s.listFullWidthStyles,a),"data-cy":b,"data-testid":f,"data-full-width":i,"data-variant":l,...d,children:[d.children,S&&e.jsx("span",{className:"absolute bottom-0 h-[4px] bg-[var(--color-clickable)] rounded-t-sm transition-all duration-300 ease-in-out pointer-events-none",style:{left:y.left,width:y.width},"aria-hidden":"true"})]})});o.displayName=n.List.displayName;const c=t.forwardRef(({className:t,value:a,variant:i="default","data-cy":l,"data-testid":o,...c},d)=>{const u=l||(a?`tabs-trigger-${a}`:"tabs-trigger"),b=o||(a?`tabs-trigger-${a}`:"tabs-trigger");return e.jsx(n.Trigger,{ref:d,className:r.cn("table"===i?s.triggerTableStyles:"mobile"===i?s.triggerMobileStyles:s.triggerStyles,t),value:a,"data-cy":u,"data-testid":b,...c})});c.displayName=n.Trigger.displayName;const d=t.forwardRef(({className:t,value:a,"data-cy":i,"data-testid":l,...o},c)=>{const d=i||(a?`tabs-content-${a}`:"tabs-content"),u=l||(a?`tabs-content-${a}`:"tabs-content");return e.jsx(n.Content,{ref:c,tabIndex:-1,className:r.cn(s.contentStyles,t),value:a,"data-cy":d,"data-testid":u,...o})});d.displayName=n.Content.displayName,exports.Tabs=l,exports.TabsContent=d,exports.TabsList=o,exports.TabsTrigger=c;
package/dist/index35.js CHANGED
@@ -1,4 +1,4 @@
1
- import{jsx as t,jsxs as e}from"react/jsx-runtime";import{forwardRef as a,useRef as r,useState as s,useCallback as i,useEffect as n}from"react";import*as l from"@radix-ui/react-tabs";import{cn as o}from"./index67.js";import{listFullWidthStyles as d,listTableStyles as c,listMobileStyles as u,listStyles as m,triggerTableStyles as b,triggerMobileStyles as f,triggerStyles as g,contentStyles as p}from"./index90.js";const y=l.Root,v=a(({className:a,fullWidth:b=!1,variant:f="default","data-cy":g,"data-testid":p,...y},v)=>{const N=g||"tabs-list",h=p||"tabs-list",w=r(null),[x,C]=s({left:0,width:0}),[$,j]=s(!1),L=i(()=>{const t=w.current;if(!t)return;const e=t.querySelector('[data-state="active"]');if(!e)return;const a=t.getBoundingClientRect(),r=e.getBoundingClientRect();C({left:r.left-a.left+t.scrollLeft,width:r.width}),j(!0)},[]);n(()=>{const t=w.current;if(!t)return;L();const e=new MutationObserver(L);return e.observe(t,{attributes:!0,subtree:!0,attributeFilter:["data-state"]}),()=>e.disconnect()},[L]);const R="default"===f&&$;/* @__PURE__ */
2
- return e(l.List,{ref:t=>{w.current=t,"function"==typeof v?v(t):v&&(v.current=t)},className:o("relative","table"===f?c:"mobile"===f?u:m,b&&d,a),"data-cy":N,"data-testid":h,"data-full-width":b,"data-variant":f,...y,children:[y.children,R&&/* @__PURE__ */t("span",{className:"absolute bottom-0 h-[4px] bg-[var(--color-clickable)] rounded-t-sm transition-all duration-300 ease-in-out pointer-events-none",style:{left:x.left,width:x.width},"aria-hidden":"true"})]})});v.displayName=l.List.displayName;const N=a(({className:e,value:a,variant:r="default","data-cy":s,"data-testid":i,...n},d)=>{const c=s||(a?`tabs-trigger-${a}`:"tabs-trigger"),u=i||(a?`tabs-trigger-${a}`:"tabs-trigger");/* @__PURE__ */
3
- return t(l.Trigger,{ref:d,className:o("table"===r?b:"mobile"===r?f:g,e),value:a,"data-cy":c,"data-testid":u,...n})});N.displayName=l.Trigger.displayName;const h=a(({className:e,value:a,"data-cy":r,"data-testid":s,...i},n)=>{const d=r||(a?`tabs-content-${a}`:"tabs-content"),c=s||(a?`tabs-content-${a}`:"tabs-content");/* @__PURE__ */
4
- return t(l.Content,{ref:n,tabIndex:-1,className:o(p,e),value:a,"data-cy":d,"data-testid":c,...i})});h.displayName=l.Content.displayName;export{y as Tabs,h as TabsContent,v as TabsList,N as TabsTrigger};
1
+ import{jsx as t,jsxs as e}from"react/jsx-runtime";import{forwardRef as a,useRef as r,useState as s,useCallback as i,useEffect as n}from"react";import*as o from"@radix-ui/react-tabs";import{cn as l}from"./index67.js";import{listFullWidthStyles as d,listTableStyles as c,listMobileStyles as u,listStyles as m,triggerTableStyles as b,triggerMobileStyles as f,triggerStyles as v,contentStyles as p}from"./index90.js";const y=o.Root,g=a(({className:a,fullWidth:b=!1,variant:f="default","data-cy":v,"data-testid":p,...y},g)=>{const h=v||"tabs-list",N=p||"tabs-list",w=r(null),[L,x]=s({left:0,width:0}),[E,R]=s(!1),z=i(()=>{const t=w.current;if(!t)return;const e=t.querySelector('[data-state="active"]');if(!e)return void R(!1);const a=t.getBoundingClientRect(),r=e.getBoundingClientRect();x({left:r.left-a.left+t.scrollLeft,width:r.width}),R(!0)},[]);n(()=>{const t=w.current;if(!t)return;const e="undefined"!=typeof ResizeObserver?new ResizeObserver(z):null,a=()=>{e&&(e.disconnect(),e.observe(t),t.querySelectorAll('[role="tab"]').forEach(t=>{e.observe(t)}))};z(),a();const r=new MutationObserver(t=>{t.some(t=>"childList"===t.type)&&a(),z()});return r.observe(t,{attributes:!0,childList:!0,subtree:!0,attributeFilter:["data-state"]}),t.addEventListener("scroll",z,{passive:!0}),window.addEventListener("resize",z),()=>{r.disconnect(),e?.disconnect(),t.removeEventListener("scroll",z),window.removeEventListener("resize",z)}},[z]);const C="default"===f&&E;/* @__PURE__ */
2
+ return e(o.List,{ref:t=>{w.current=t,"function"==typeof g?g(t):g&&(g.current=t)},className:l("relative","table"===f?c:"mobile"===f?u:m,b&&d,a),"data-cy":h,"data-testid":N,"data-full-width":b,"data-variant":f,...y,children:[y.children,C&&/* @__PURE__ */t("span",{className:"absolute bottom-0 h-[4px] bg-[var(--color-clickable)] rounded-t-sm transition-all duration-300 ease-in-out pointer-events-none",style:{left:L.left,width:L.width},"aria-hidden":"true"})]})});g.displayName=o.List.displayName;const h=a(({className:e,value:a,variant:r="default","data-cy":s,"data-testid":i,...n},d)=>{const c=s||(a?`tabs-trigger-${a}`:"tabs-trigger"),u=i||(a?`tabs-trigger-${a}`:"tabs-trigger");/* @__PURE__ */
3
+ return t(o.Trigger,{ref:d,className:l("table"===r?b:"mobile"===r?f:v,e),value:a,"data-cy":c,"data-testid":u,...n})});h.displayName=o.Trigger.displayName;const N=a(({className:e,value:a,"data-cy":r,"data-testid":s,...i},n)=>{const d=r||(a?`tabs-content-${a}`:"tabs-content"),c=s||(a?`tabs-content-${a}`:"tabs-content");/* @__PURE__ */
4
+ return t(o.Content,{ref:n,tabIndex:-1,className:l(p,e),value:a,"data-cy":d,"data-testid":c,...i})});N.displayName=o.Content.displayName;export{y as Tabs,N as TabsContent,g as TabsList,h as TabsTrigger};
package/dist/index45.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("react"),o=require("@adam-milo/icons"),r=require("./index67.cjs"),a=require("./index102.cjs"),n=["none","asc","desc"],s={none:"Not sorted",asc:"Sorted A to Z",desc:"Sorted Z to A"},i=t.forwardRef(({direction:i,defaultDirection:c="none",onDirectionChange:d,cycle:l=n,onClick:u,disabled:b,className:m,"aria-label":y,"data-testid":f,"data-cy":x,...S},j)=>{const p=void 0!==i,[g,h]=t.useState(c),q=p?i:g,v=f||`sort-button-${q}`,C=x||`sort-button-${q}`,N=t.useCallback(e=>{if(u?.(e),e.defaultPrevented)return;const t=l.length>0?l:n,o=t.indexOf(q),r=t[(o+1)%t.length];p||h(r),r!==q&&d?.(r)},[l,q,p,u,d]),k="desc"===q?"[transform:scaleY(-1)]":void 0;return e.jsx("button",{ref:j,type:"button",disabled:b,className:r.cn(a.baseStyles,a.directionStyles[q],m),onClick:N,"aria-label":y||s[q],"aria-pressed":"none"!==q,"data-direction":q,"data-testid":v,"data-cy":C,...S,children:e.jsx(o.Icon,{name:"CustomDownArrowIcon",size:"xs",color:"inherit",decorative:!0,className:k,"data-cy":`${C}-icon`})})});i.displayName="SortButton",exports.SortButton=i;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("react"),o=require("@adam-milo/icons"),a=require("./index67.cjs"),r=require("./index102.cjs"),n=["none","desc","asc"],s={none:"Not sorted",asc:"Sorted A to Z",desc:"Sorted Z to A"},i=t.forwardRef(({direction:i,defaultDirection:c="none",onDirectionChange:d,cycle:l=n,onClick:u,disabled:b,className:m,"aria-label":y,"data-testid":f,"data-cy":x,...S},j)=>{const p=void 0!==i,[g,h]=t.useState(c),q=p?i:g,v=f||`sort-button-${q}`,C=x||`sort-button-${q}`,N=t.useCallback(e=>{if(u?.(e),e.defaultPrevented)return;const t=l.length>0?l:n,o=t.indexOf(q),a=t[(o+1)%t.length];p||h(a),a!==q&&d?.(a)},[l,q,p,u,d]),k="asc"===q?"[transform:scaleY(-1)]":void 0;return e.jsx("button",{ref:j,type:"button",disabled:b,className:a.cn(r.baseStyles,r.directionStyles[q],m),onClick:N,"aria-label":y||s[q],"aria-pressed":"none"!==q,"data-direction":q,"data-testid":v,"data-cy":C,...S,children:e.jsx(o.Icon,{name:"CustomDownArrowIcon",size:"xs",color:"inherit",decorative:!0,className:k,"data-cy":`${C}-icon`})})});i.displayName="SortButton",exports.SortButton=i;
package/dist/index45.js CHANGED
@@ -1,2 +1,2 @@
1
- import{jsx as t}from"react/jsx-runtime";import{forwardRef as e,useState as o,useCallback as a}from"react";import{Icon as r}from"@adam-milo/icons";import{cn as n}from"./index67.js";import{directionStyles as i,baseStyles as d}from"./index102.js";const s=["none","asc","desc"],c={none:"Not sorted",asc:"Sorted A to Z",desc:"Sorted Z to A"},l=e(({direction:e,defaultDirection:l="none",onDirectionChange:m,cycle:f=s,onClick:u,disabled:p,className:b,"aria-label":x,"data-testid":y,"data-cy":h,...N},v)=>{const C=void 0!==e,[g,j]=o(l),A=C?e:g,D=y||`sort-button-${A}`,S=h||`sort-button-${A}`,$=a(t=>{if(u?.(t),t.defaultPrevented)return;const e=f.length>0?f:s,o=e.indexOf(A),a=e[(o+1)%e.length];C||j(a),a!==A&&m?.(a)},[f,A,C,u,m]),k="desc"===A?"[transform:scaleY(-1)]":void 0;/* @__PURE__ */
2
- return t("button",{ref:v,type:"button",disabled:p,className:n(d,i[A],b),onClick:$,"aria-label":x||c[A],"aria-pressed":"none"!==A,"data-direction":A,"data-testid":D,"data-cy":S,...N,children:/* @__PURE__ */t(r,{name:"CustomDownArrowIcon",size:"xs",color:"inherit",decorative:!0,className:k,"data-cy":`${S}-icon`})})});l.displayName="SortButton";export{l as SortButton};
1
+ import{jsx as t}from"react/jsx-runtime";import{forwardRef as e,useState as o,useCallback as a}from"react";import{Icon as r}from"@adam-milo/icons";import{cn as n}from"./index67.js";import{directionStyles as i,baseStyles as s}from"./index102.js";const d=["none","desc","asc"],c={none:"Not sorted",asc:"Sorted A to Z",desc:"Sorted Z to A"},l=e(({direction:e,defaultDirection:l="none",onDirectionChange:m,cycle:f=d,onClick:u,disabled:p,className:b,"aria-label":x,"data-testid":y,"data-cy":h,...N},v)=>{const C=void 0!==e,[g,j]=o(l),A=C?e:g,D=y||`sort-button-${A}`,S=h||`sort-button-${A}`,$=a(t=>{if(u?.(t),t.defaultPrevented)return;const e=f.length>0?f:d,o=e.indexOf(A),a=e[(o+1)%e.length];C||j(a),a!==A&&m?.(a)},[f,A,C,u,m]),k="asc"===A?"[transform:scaleY(-1)]":void 0;/* @__PURE__ */
2
+ return t("button",{ref:v,type:"button",disabled:p,className:n(s,i[A],b),onClick:$,"aria-label":x||c[A],"aria-pressed":"none"!==A,"data-direction":A,"data-testid":D,"data-cy":S,...N,children:/* @__PURE__ */t(r,{name:"CustomDownArrowIcon",size:"xs",color:"inherit",decorative:!0,className:k,"data-cy":`${S}-icon`})})});l.displayName="SortButton";export{l as SortButton};
@@ -78,7 +78,7 @@ export interface DataTableProps extends TableHTMLAttributes<HTMLTableElement> {
78
78
  sortDirection?: SortDirection;
79
79
  /**
80
80
  * Called when a sortable column's sort control is toggled. Receives the
81
- * column key and its next direction (`none` → `asc` → `desc` → `none`). The
81
+ * column key and its next direction (`none` → `desc` → `asc` → `none`). The
82
82
  * table does not sort data itself — reorder `data` in response.
83
83
  */
84
84
  onSortChange?: (key: string, direction: SortDirection) => void;
@@ -2,9 +2,9 @@ import { ButtonHTMLAttributes } from 'react';
2
2
 
3
3
  /**
4
4
  * Logical state of a sort control.
5
- * - `none`: no sort applied (idle / "disabled" in the design)
6
- * - `asc`: AZ (ascending)
7
- * - `desc`: Z A (descending)
5
+ * - `none`: no sort applied (idle / "disabled" in the design) — down arrow, muted
6
+ * - `desc`: Z A (descending) — down arrow
7
+ * - `asc`: A Z (ascending) up arrow (flipped)
8
8
  */
9
9
  export type SortDirection = 'none' | 'asc' | 'desc';
10
10
  export interface SortButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onChange'> {
@@ -16,7 +16,7 @@ export interface SortButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonEle
16
16
  onDirectionChange?: (direction: SortDirection) => void;
17
17
  /**
18
18
  * Order to cycle through on each click.
19
- * Defaults to `['none', 'asc', 'desc']` (idle → A-Z → Z-A → idle).
19
+ * Defaults to `['none', 'desc', 'asc']` (idle → Z-A A-Z → idle).
20
20
  */
21
21
  cycle?: readonly SortDirection[];
22
22
  /** Accessible label describing what's being sorted (e.g. "Sort by name"). */
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.component.d.ts","sourceRoot":"","sources":["../../../../../src/components/navigation/tabs/Tabs.component.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAYtF,eAAO,MAAM,IAAI,oHAAqB,CAAC;AAEvC,eAAO,MAAM,QAAQ,0GA6EpB,CAAC;AAGF,eAAO,MAAM,WAAW,gHAiCvB,CAAC;AAGF,eAAO,MAAM,WAAW,6GAiBvB,CAAC;AAGF,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"Tabs.component.d.ts","sourceRoot":"","sources":["../../../../../src/components/navigation/tabs/Tabs.component.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAYtF,eAAO,MAAM,IAAI,oHAAqB,CAAC;AAEvC,eAAO,MAAM,QAAQ,0GAoHpB,CAAC;AAGF,eAAO,MAAM,WAAW,gHAiCvB,CAAC;AAGF,eAAO,MAAM,WAAW,6GAiBvB,CAAC;AAGF,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adam-milo/ui",
3
- "version": "1.0.133",
3
+ "version": "1.0.135",
4
4
  "type": "module",
5
5
  "description": "Adam Milo Design System - UI Component Library",
6
6
  "keywords": [