@infinityfx/fluid 1.3.4 → 1.4.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.
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{__rest as
|
|
2
|
+
import{__rest as a}from"tslib";import{jsxs as e,jsx as i}from"react/jsx-runtime";import{useId as r,useState as t,useRef as o,Fragment as n}from"react";import{combineClasses as l,classes as s}from"../../core/utils.js";import{createStyles as d}from"../../core/style.js";import{Icon as c}from"../../core/icons.js";import m from"../feedback/halo.js";import{Morph as u}from"@infinityfx/lively/layout";import{Animatable as b}from"@infinityfx/lively";import{useTrigger as f}from"@infinityfx/lively/hooks";const p=d("pagination",{".pagination":{display:"flex",gap:"var(--f-spacing-xsm)"},".pill":{gap:"var(--f-spacing-xxs)"},".s__xsm":{fontSize:"var(--f-font-size-xxs)"},".s__sml":{fontSize:"var(--f-font-size-xsm)"},".s__med":{fontSize:"var(--f-font-size-sml)"},".s__lrg":{fontSize:"var(--f-font-size-med)"},".buttons":{display:"grid",gap:"inherit",gridAutoFlow:"column"},".buttons .layer":{width:"100%",height:"100%",borderRadius:"var(--f-radius-sml)",transition:"background-color .35s"},".pagination:not(.v__minimal) .layer":{backgroundColor:"var(--f-clr-fg-100)"},'.pagination[aria-disabled="true"] .layer':{backgroundColor:"var(--f-clr-grey-100)"},".button":{overflow:"hidden",position:"relative",border:"none",outline:"none",background:"none",color:"var(--f-clr-text-100)",width:"2.6em",height:"2.6em",display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"var(--f-radius-sml)",fontWeight:500,transition:"background-color .35s, color .35s"},".buttons .button":{backgroundColor:"transparent !important"},".pagination:not(.v__minimal) .button:enabled":{backgroundColor:"var(--f-clr-fg-100)"},".button:enabled":{cursor:"pointer"},".button:disabled":{backgroundColor:"var(--f-clr-grey-100)",color:"var(--f-clr-grey-500)"},'.button[aria-current="page"]':{color:"var(--f-clr-text-200)"},".pagination .layer.selection":{backgroundColor:"var(--color, var(--f-clr-primary-100))",boxShadow:"var(--f-shadow-sml)"},".v__neutral .layer.selection":{backgroundColor:"var(--f-clr-text-100)"},'.pagination[aria-disabled="true"] .layer.selection':{backgroundColor:"var(--f-clr-grey-200)"},".round .button":{borderRadius:"99px"},".round .layer":{borderRadius:"99px"},".pill > .button:first-child":{borderTopLeftRadius:"1.3em",borderBottomLeftRadius:"1.3em"},".pill > .button:last-child":{borderTopRightRadius:"1.3em",borderBottomRightRadius:"1.3em"},".indices":{width:"7.8em",height:"2.6em",display:"flex"},".indices > *":{width:"2.6em",height:"2.6em",display:"flex",alignItems:"center",justifyContent:"center"}});function g(d){var{cc:g={},pages:h,defaultPage:y=0,page:v,onChange:x,compact:k,skipable:C,shape:_="square",size:w,variant:N,disabled:R,color:j}=d,z=a(d,["cc","pages","defaultPage","page","onChange","compact","skipable","shape","size","variant","disabled","color"]);const M=l(p,g),S=r(),O=f(),[$,A]=void 0!==v?[v,x]:t(y);function B(){const a=Math.min(h,3);return new Array(a).fill(0).map(((e,i)=>i?i<a-1?Math.min(Math.max($,1),h-2):C?Math.max(Math.min($+1,h-1),2):h-1:C?Math.min(Math.max($-1,0),h-3):0))}const I=o(B()),L=a=>{I.current=B(),null==A||A(a),null==x||x(a),O()},P=$<1||R,T=$>=h-1||R;return e("div",Object.assign({},z,{style:Object.assign(Object.assign({},z.style),{"--color":j}),"aria-disabled":R,className:s(M.pagination,M[`s__${w}`],M[`v__${N}`],M[_],z.className),children:[C&&i(m,{disabled:P,children:i("button",{disabled:P,"aria-label":"1",className:M.button,onClick:()=>L(0),children:i(c,{type:"first"})})}),i(m,{disabled:P,children:i("button",{disabled:P,"aria-label":$+"",className:M.button,onClick:()=>L($-1),children:i(c,{type:"left"})})}),!k&&i("div",{className:M.buttons,children:B().map(((a,r)=>{const t=I.current[r],o={gridColumn:r+1,gridRow:1};return e(n,{children:[i("div",{className:M.layer,style:o}),a===$&&i(u,{group:`${S}-pagination-selection`,cachable:["x"],transition:{duration:.35},children:i("div",{className:s(M.layer,M.selection),style:o})}),i(m,{disabled:R,children:i("button",{type:"button",disabled:R,className:s(M.button,M.index),style:o,"aria-current":a===$?"page":void 0,onClick:()=>L(a),children:i(b,{animations:{forward:{translate:["33.3% 0%","0% 0%"],duration:.35},back:{translate:["-33.3% 0%","0% 0%"],duration:.35}},triggers:[{name:"forward",on:t-a<0&&O,immediate:!0},{name:"back",on:t-a>0&&O,immediate:!0}],children:e("div",{className:M.indices,children:[i("span",{children:t+1}),i("span",{children:a+1}),i("span",{children:t+1})]})})})})]},r)}))}),i(m,{disabled:T,children:i("button",{disabled:T,"aria-label":$+2+"",className:M.button,onClick:()=>L($+1),children:i(c,{type:"right"})})}),C&&i(m,{disabled:T,children:i("button",{disabled:T,"aria-label":h+"",className:M.button,onClick:()=>L(h-1),children:i(c,{type:"last"})})})]}))}export{g as default};
|
|
3
3
|
//# sourceMappingURL=pagination.js.map
|
|
@@ -5,15 +5,17 @@ export type PaginationSelectors = Selectors<'pagination'>;
|
|
|
5
5
|
*
|
|
6
6
|
* @see {@link https://fluid.infinityfx.dev/docs/components/pagination}
|
|
7
7
|
*/
|
|
8
|
-
export default function Pagination({ cc,
|
|
8
|
+
export default function Pagination({ cc, pages, defaultPage, page, onChange, compact, skipable, shape, size, variant, disabled, color, ...props }: {
|
|
9
9
|
ref?: React.Ref<HTMLDivElement>;
|
|
10
10
|
cc?: PaginationSelectors;
|
|
11
|
-
page?: number;
|
|
12
|
-
setPage?: (page: number) => void;
|
|
13
11
|
pages: number;
|
|
12
|
+
defaultPage?: number;
|
|
13
|
+
page?: number;
|
|
14
|
+
onChange?: (page: number) => void;
|
|
14
15
|
compact?: boolean;
|
|
15
16
|
skipable?: boolean;
|
|
16
|
-
|
|
17
|
+
shape?: 'square' | 'round' | 'pill';
|
|
17
18
|
size?: FluidSize;
|
|
18
|
-
variant?: 'default' | 'neutral' | '
|
|
19
|
-
|
|
19
|
+
variant?: 'default' | 'neutral' | 'minimal';
|
|
20
|
+
disabled?: boolean;
|
|
21
|
+
} & Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'children'>): import("react/jsx-runtime").JSX.Element;
|