@atom-learning/components 2.29.1 → 2.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/CHANGELOG.md +15 -5
  2. package/dist/components/accordion/AccordionContent.js +1 -1
  3. package/dist/components/accordion/AccordionItem.js +1 -1
  4. package/dist/components/accordion/AccordionTrigger.d.ts +5 -4
  5. package/dist/components/accordion/AccordionTrigger.js +1 -1
  6. package/dist/components/tabs/Tabs.d.ts +7 -276
  7. package/dist/components/tabs/Tabs.js +1 -1
  8. package/dist/components/tabs/TabsContent.d.ts +267 -0
  9. package/dist/components/tabs/TabsContent.js +1 -0
  10. package/dist/components/tabs/{TabTrigger.d.ts → TabsTrigger.d.ts} +3 -6
  11. package/dist/components/tabs/TabsTrigger.js +1 -0
  12. package/dist/components/tabs/TabsTriggerList.d.ts +5 -9
  13. package/dist/components/tabs/TabsTriggerList.js +1 -1
  14. package/dist/docgen.json +1 -1
  15. package/dist/docs/Accordion.mdx +56 -7
  16. package/dist/docs/README.mdx +79 -0
  17. package/dist/docs/Tabs.mdx +31 -57
  18. package/dist/experiments/color-scheme/ColorScheme.d.ts +201 -0
  19. package/dist/experiments/color-scheme/ColorScheme.js +1 -0
  20. package/dist/experiments/color-scheme/blue.json.js +1 -0
  21. package/dist/experiments/color-scheme/generateAlphaColors.d.ts +1 -0
  22. package/dist/experiments/color-scheme/generateAlphaColors.js +1 -0
  23. package/dist/experiments/color-scheme/index.d.ts +1 -0
  24. package/dist/experiments/color-scheme/slate.json.js +1 -0
  25. package/dist/experiments/color-scheme/stitches.colorscheme.config.d.ts +452 -0
  26. package/dist/experiments/color-scheme/stitches.colorscheme.config.js +1 -0
  27. package/dist/index.cjs.js +1 -1
  28. package/dist/utilities/hooks/useCallbackRef.js +1 -1
  29. package/dist/utilities/hooks/useWindowSize.d.ts +8 -0
  30. package/dist/utilities/hooks/useWindowSize.js +1 -0
  31. package/package.json +3 -2
  32. package/dist/components/tabs/TabTrigger.js +0 -1
  33. package/dist/components/tabs/utils.d.ts +0 -2
  34. package/dist/components/tabs/utils.js +0 -1
@@ -1,12 +1,6 @@
1
1
  import React from 'react';
2
- interface ListProps extends React.ComponentProps<typeof StyledTriggerList> {
3
- enableTabScrolling?: boolean;
4
- scrollPercentage?: number;
5
- }
6
- declare const StyledTriggerList: import("@stitches/react/types/styled-component").StyledComponent<React.ForwardRefExoticComponent<import("@radix-ui/react-tabs").TabsListProps & React.RefAttributes<HTMLDivElement>>, {
7
- theme?: "dark" | "light" | undefined;
8
- appearance?: "uppercase" | undefined;
9
- }, {
2
+ import { ColorScheme } from '../../experiments/color-scheme';
3
+ declare const StyledTriggerList: import("@stitches/react/types/styled-component").StyledComponent<React.ForwardRefExoticComponent<import("@radix-ui/react-tabs").TabsListProps & React.RefAttributes<HTMLDivElement>>, {}, {
10
4
  sm: string;
11
5
  md: string;
12
6
  lg: string;
@@ -272,5 +266,7 @@ declare const StyledTriggerList: import("@stitches/react/types/styled-component"
272
266
  };
273
267
  };
274
268
  }>>;
275
- export declare const TriggerListWrapper: React.FC<ListProps>;
269
+ export declare const TabsTriggerList: React.FC<React.ComponentProps<typeof StyledTriggerList> & {
270
+ colorScheme?: typeof ColorScheme;
271
+ }>;
276
272
  export {};
@@ -1 +1 @@
1
- import{ChevronLeft as P,ChevronRight as R}from"@atom-learning/icons";import{List as _}from"@radix-ui/react-tabs";import{opacify as y}from"color2k";import o,{useRef as F,useState as f,useCallback as J,useEffect as k}from"react";import{debounce as K}from"throttle-debounce";import{ActionIcon as M}from"../action-icon/ActionIcon.js";import{Flex as X}from"../flex/Flex.js";import{Icon as W}from"../icon/Icon.js";import{theme as j,styled as x}from"../../stitches.js";import{TabTrigger as L}from"./TabTrigger.js";import{passPropsToChildren as C}from"./utils.js";const q=y("white",-.2),G=y(j.colors.primaryDark.value,-.2),T=x(M,{position:"absolute",transition:"all 125ms",variants:{theme:{light:{bg:`${q} !important`},dark:{bg:`${G} !important`,color:"currentColor !important"}},visible:{true:{opacity:1,visibility:"visible",pointerEvents:"all"},false:{opacity:0,visibility:"hidden",pointerEvents:"none"}}}}),S=x(_,{flexShrink:0,display:"flex",width:"100%",overflowX:"auto","&::-webkit-scrollbar":{display:"none"},scrollbarWidth:"none",variants:{theme:{light:{borderBottom:"1px solid $tonal300"},dark:{bg:"$primaryDark",borderBottom:"1px solid $tonal200"}},appearance:{uppercase:{"& button":{textTransform:"uppercase"}}}}}),H=({children:h,theme:i,appearance:d,enableTabScrolling:$,scrollPercentage:z=10,...b})=>{const s=F(null),[u,a]=f(!1),[v,c]=f(!1),[D,I]=f(),g=J(t=>{const e=s.current;if(e){const{scrollWidth:l,scrollLeft:n,offsetWidth:m}=e,E=Math.round(l*(z/100));let p=n;if(t==="right"){const r=n+E;p=r+m<=l?r:l-m}else{const r=n-E;p=r>0?r:0}e.scroll({left:p,behavior:"smooth"}),setTimeout(()=>{const{scrollWidth:r,scrollLeft:w,offsetWidth:A}=e,B=r-(w+A);w===0?(a(!1),c(!0)):B<5?(c(!1),a(!0)):(a(!0),c(!0))},500)}},[]);return k(()=>{const t=K(500,()=>{I(window.innerWidth)});return window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}},[]),k(()=>{var t;const e=s.current;if(e){const{offsetWidth:l,scrollWidth:n}=e,m=n>l;(t=e.scroll)==null||t.call(e,{left:0}),a(!1),c(m)}},[D]),u||v||$?o.createElement(X,{css:{position:"relative"}},o.createElement(T,{size:"lg",label:"Scroll Left",theme:i,onClick:()=>g("left"),visible:u,css:{left:0}},o.createElement(W,{is:P})),o.createElement(S,{...b,ref:s,appearance:d,theme:i},C(h,{theme:i},[L])),o.createElement(T,{size:"lg",label:"Scroll right",theme:i,onClick:()=>g("right"),visible:v,css:{right:0}},o.createElement(W,{is:R}))):o.createElement(S,{theme:i,...b,appearance:d,ref:s},C(h,{theme:i},[L]))};export{H as TriggerListWrapper};
1
+ import{List as y}from"@radix-ui/react-tabs";import e from"react";import{styled as m}from"../../stitches.js";import{useWindowSize as T}from"../../utilities/hooks/useWindowSize.js";import{useCallbackRefState as x}from"../../utilities/hooks/useCallbackRef.js";import{ActionIcon as z}from"../action-icon/ActionIcon.js";import{Icon as p}from"../icon/Icon.js";import{ChevronLeft as $,ChevronRight as R}from"@atom-learning/icons";import{ColorScheme as I}from"../../experiments/color-scheme/ColorScheme.js";const N=m(I,{position:"relative",borderBottom:"1px solid $base3",width:"100%"}),_=m(y,{flexShrink:0,display:"flex",width:"100%",overflowX:"auto","&::-webkit-scrollbar":{display:"none"},scrollbarWidth:"none"}),u=m(z,{height:"100% !important",position:"absolute",top:"50%",transform:"translateY(-50%)",cursor:"pointer",background:"$background !important",color:"$interactive1 !important",borderRadius:0,opacity:.9}),A=10,b=({children:g,colorScheme:v={},...C})=>{const[t,k]=x(),{width:W}=T(),[w,i]=e.useState(!1),[E,s]=e.useState(!1),f=e.useCallback(c=>{if(!t)return;const{scrollWidth:r,scrollLeft:l,offsetWidth:a}=t,h=Math.round(r*(A/100));let n=l;if(c==="right"){const o=l+h;n=o+a<=r?o:r-a}else{const o=l-h;n=o>0?o:0}t.scroll({left:n,behavior:"smooth"}),setTimeout(()=>{const{scrollWidth:o,scrollLeft:d,offsetWidth:L}=t,S=o-(d+L);d===0?(i(!1),s(!0)):S<5?(s(!1),i(!0)):(i(!0),s(!0))},500)},[t]);return e.useEffect(()=>{var c;if(!t)return;const{offsetWidth:r,scrollWidth:l}=t,a=l>r;(c=t.scroll)==null||c.call(t,{left:0}),i(!1),s(a)},[t,W]),e.createElement(N,{base:"slate",accent:"blue",interactive:"hiContrast1",...v,...C},w&&e.createElement(u,{label:"scroll left",size:"md",css:{left:0},onClick:()=>f("left")},e.createElement(p,{is:$})),e.createElement(_,{ref:k},g),E&&e.createElement(u,{label:"scroll right",size:"md",css:{right:0},onClick:()=>f("right")},e.createElement(p,{is:R})))};b.displayName="TabsTriggerList";export{b as TabsTriggerList};