lingee-ui 0.0.25 → 0.0.26

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/README.md CHANGED
@@ -4,7 +4,7 @@ Kingdee Lingee Design 体系的 React UI 组件库,轻量、可定制、支持
4
4
 
5
5
  ## 特性
6
6
 
7
- - 🎨 **CSS 变量 Token 体系** — 三层设计(Primitives → Semantic Light/Dark → Component),支持亮/暗主题切换
7
+ - 🎨 **CSS 变量 Token 体系** — 三层设计(Primitives → Semantic Light/Dark/Warm → Component),支持亮色 / 暗色 / 暖棕主题切换
8
8
  - 📦 **按需加载** — 多入口构建,Tree-shaking 友好
9
9
  - 🔧 **TypeScript** — 完整类型定义
10
10
  - 🌍 **国际化** — 内置中英文语言包
@@ -78,10 +78,11 @@ config/
78
78
  ├── primitives-other.less ← 非颜色基础值:spacing/radius/typography
79
79
  ├── tokens-color-light.less ← 语义层亮色:--lg-g-{类别}-{名称}
80
80
  ├── tokens-color-dark.less ← 语义层暗色:[data-theme="dark"] 覆盖
81
+ ├── tokens-color-warm.less ← 语义层暖棕:[data-theme="warm"] 覆盖
81
82
  └── tokens.less ← 总入口(import 以上文件)
82
83
  ```
83
84
 
84
- 暗色模式:添加 `[data-theme="dark"]` 到 html 即可自动切换。
85
+ 主题切换:给 html 设 `data-theme="dark"`(暗色)或 `data-theme="warm"`(暖棕)即可自动切换,不设为亮色。
85
86
 
86
87
  完整 Token 列表参见 `config/tokens-color-light.less`。
87
88
 
@@ -1,3 +1,3 @@
1
1
  import 'class-variance-authority/types';
2
2
  import 'react';
3
- export { a as Button, B as ButtonProps, b as ButtonShape, d as ButtonVariant, e as buttonVariants } from '../index-89atTLPD.mjs';
3
+ export { a as Button, B as ButtonProps, b as ButtonShape, d as ButtonVariant, e as buttonVariants } from '../index-BVXwKHfX.mjs';
@@ -1,3 +1,3 @@
1
1
  import 'class-variance-authority/types';
2
2
  import 'react';
3
- export { a as Button, B as ButtonProps, b as ButtonShape, d as ButtonVariant, e as buttonVariants } from '../index-89atTLPD.js';
3
+ export { a as Button, B as ButtonProps, b as ButtonShape, d as ButtonVariant, e as buttonVariants } from '../index-BVXwKHfX.js';
@@ -1 +1 @@
1
- 'use strict';var chunkTDJG7ZB6_js=require('./chunk-TDJG7ZB6.js'),chunkQEKT37W5_js=require('./chunk-QEKT37W5.js'),chunkDCDWEVW4_js=require('./chunk-DCDWEVW4.js'),Bl=require('react'),classVarianceAuthority=require('class-variance-authority'),b=require('@radix-ui/react-tabs'),lingeeIcon=require('lingee-icon'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var Bl__default=/*#__PURE__*/_interopDefault(Bl);var b__namespace=/*#__PURE__*/_interopNamespace(b);var C={arrows:true,step:200,fade:true,scrollIntoView:true},Sl=classVarianceAuthority.cva("lg-tabs",{variants:{variant:{segmented:"lg-tabs--segmented",rounded:"lg-tabs--rounded",solid:"lg-tabs--solid",outline:"lg-tabs--outline",underline:"lg-tabs--underline"},size:{sm:"lg-tabs--sm",md:"lg-tabs--md"}},defaultVariants:{variant:"segmented",size:"md"}}),ol=typeof window<"u"?Bl.useLayoutEffect:Bl.useEffect;function Ll({items:o,activeKey:d,defaultActiveKey:tl,onChange:N,variant:n="segmented",size:sl="md",overflow:bl,scrollOptions:k,wrap:nl=false,scrollable:cl=false,glassy:il=false,transparent:dl=false,animated:B=true,destroyInactivePanel:M=false,className:ul,dir:vl,...fl},pl){let V=chunkTDJG7ZB6_js.n("Tabs"),O=bl??(cl?"scroll":nl?"wrap":"none"),X=O==="wrap"&&(n==="segmented"||n==="rounded")?"none":O,a=X==="scroll",A=X==="wrap",P=k?.arrows??C.arrows,T=k?.step??C.step,H=k?.fade??C.fade,$=k?.scrollIntoView??C.scrollIntoView,u=d!==void 0,ml=o.find(l=>!l.disabled)?.key,W=u?void 0:tl??ml,[hl,wl]=Bl.useState(W),t=u?d:hl,y=Bl.useRef(o.findIndex(l=>l.key===t)),[j,x]=Bl.useState("right"),Fl=Bl.useCallback(l=>{let g=o.findIndex(F=>F.key===l),r=y.current;g>r?x("right"):g<r&&x("left"),y.current=g,u||wl(l),N?.(l);},[u,N,o]);Bl.useEffect(()=>{if(u&&d){let l=o.findIndex(r=>r.key===d),g=y.current;l!==g&&(l>g?x("right"):x("left"),y.current=l);}},[u,d,o]);let q=o.some(l=>l.children!=null),s=Bl.useRef(null),E=Bl.useRef(new Map),[_l,R]=Bl.useState({opacity:0}),h=Bl.useRef(false),U=Bl.useRef(0),kl=Bl.useCallback(l=>g=>{g?E.current.set(l,g):E.current.delete(l);},[]),w=Bl.useCallback(l=>{let g=s.current,r=t?E.current.get(t):void 0;if(!g||!r){R(al=>al.opacity===0?al:{opacity:0});return}let F=g.getBoundingClientRect(),f=(n==="underline"?r.querySelector(".lg-tabs__tab-label")??r:r).getBoundingClientRect(),rl=f.left-F.left+g.scrollLeft;if(!A){R({width:f.width,transform:`translateX(${rl}px)`,opacity:1,transition:l?"transform var(--_tabs-slider-duration) var(--lg-transition-timing), width var(--_tabs-slider-duration) var(--lg-transition-timing)":"none"});return}let S=n==="underline",Cl=S?r.getBoundingClientRect():f,L=S?Cl.bottom-F.top:f.top-F.top,Dl=l&&Math.abs(L-U.current)>1;U.current=L,R({width:f.width,...S?null:{height:f.height},top:0,bottom:"auto",transform:`translate(${rl}px, ${L}px)`,opacity:1,transition:Dl?"opacity var(--_tabs-slider-duration) var(--lg-transition-timing)":l?"transform var(--_tabs-slider-duration) var(--lg-transition-timing), width var(--_tabs-slider-duration) var(--lg-transition-timing)":"none"});},[t,n,A]),Y=Bl.useRef(w);Y.current=w;let G=Bl.useRef(0);ol(()=>{let l=h.current;w(l),l&&(G.current=Date.now()),h.current=true;},[w,t]);let J=o.map(l=>`${l.key}:${l.disabled?1:0}`).join("|");ol(()=>{let l=h.current;h.current=false,w(false),h.current=l;},[J]),Bl.useEffect(()=>{if(!s.current)return;let l=new ResizeObserver(()=>{Date.now()-G.current<350||Y.current(false);});return l.observe(s.current),()=>l.disconnect()},[]);let[yl,Q]=Bl.useState(false),[Z,xl]=Bl.useState(false),[K,El]=Bl.useState(false),v=Bl.useCallback(()=>{let l=s.current;!l||!a||(Q(l.scrollWidth>l.clientWidth+1),xl(l.scrollLeft>1),El(l.scrollLeft+l.clientWidth<l.scrollWidth-1));},[a]);Bl.useEffect(()=>{if(!a){Q(false);return}let l=s.current;if(l)return v(),l.addEventListener("scroll",v),()=>l.removeEventListener("scroll",v)},[a,v,J]),Bl.useEffect(()=>{let l=s.current;if(!a||!l)return;let g=new ResizeObserver(()=>v());return g.observe(l),()=>g.disconnect()},[a,v]),Bl.useEffect(()=>{if(!a||!$||!t)return;let l=E.current.get(t);typeof l?.scrollIntoView=="function"&&l.scrollIntoView({behavior:"smooth",inline:"nearest",block:"nearest"});},[a,$,t]);let ll=Bl.useCallback((l,g)=>{let r=s.current;r&&(r.scrollBy({left:l==="left"?-T:T,behavior:"smooth"}),g&&g.detail>0&&g.currentTarget.blur());},[T]),z=a&&yl&&P!==false,gl=jsxRuntime.jsxs(b__namespace.List,{className:chunkDCDWEVW4_js.a("lg-tabs__list",a&&"lg-tabs__list--scrollable"),ref:s,children:[jsxRuntime.jsx("span",{className:chunkDCDWEVW4_js.a(`lg-tabs__slider lg-tabs__slider--${n}`,il&&"lg-tabs__slider--glassy"),style:_l,"aria-hidden":true}),o.map(l=>jsxRuntime.jsxs(b__namespace.Trigger,{value:l.key,disabled:l.disabled,ref:kl(l.key),"aria-label":l.ariaLabel,className:chunkDCDWEVW4_js.a("lg-tabs__tab",l.disabled&&"lg-tabs__tab--disabled"),children:[l.icon&&jsxRuntime.jsx("span",{className:"lg-tabs__tab-icon",children:l.icon}),jsxRuntime.jsx("span",{className:"lg-tabs__tab-label",children:l.label}),l.suffix!=null&&jsxRuntime.jsx("span",{className:"lg-tabs__tab-suffix",children:l.suffix})]},l.key))]});return jsxRuntime.jsxs(b__namespace.Root,{ref:pl,className:chunkDCDWEVW4_js.a(Sl({variant:n,size:sl}),A&&"lg-tabs--wrap",a&&"lg-tabs--scrollable",dl&&"lg-tabs--transparent",q&&"lg-tabs--has-content",ul),value:d,defaultValue:W,onValueChange:Fl,dir:vl,...fl,children:[a?jsxRuntime.jsxs("div",{className:chunkDCDWEVW4_js.a("lg-tabs__scroll-wrapper",P==="hover"&&"lg-tabs__scroll-wrapper--hover-controls",!z&&"lg-tabs__scroll-wrapper--no-arrows"),children:[z&&jsxRuntime.jsx(chunkQEKT37W5_js.b,{shape:"circle",size:"sm",variant:"text",icon:jsxRuntime.jsx(lingeeIcon.ChevronLeft,{}),tooltip:V.scrollLeft,disabled:!Z,onClick:l=>ll("left",l),className:"lg-tabs__scroll-arrow lg-tabs__scroll-arrow--left"}),H&&Z&&jsxRuntime.jsx("span",{className:"lg-tabs__fade lg-tabs__fade--left","aria-hidden":true}),gl,H&&K&&jsxRuntime.jsx("span",{className:"lg-tabs__fade lg-tabs__fade--right","aria-hidden":true}),z&&jsxRuntime.jsx(chunkQEKT37W5_js.b,{shape:"circle",size:"sm",variant:"text",icon:jsxRuntime.jsx(lingeeIcon.ChevronRight,{}),tooltip:V.scrollRight,disabled:!K,onClick:l=>ll("right",l),className:"lg-tabs__scroll-arrow lg-tabs__scroll-arrow--right"})]}):gl,q&&jsxRuntime.jsx("div",{className:"lg-tabs__content-wrapper",children:o.map(l=>{if(l.children==null)return null;let g=l.key===t;return M&&!g?null:jsxRuntime.jsx(b__namespace.Content,{value:l.key,forceMount:M?void 0:true,className:chunkDCDWEVW4_js.a("lg-tabs__panel",B&&"lg-tabs__panel--animated",g&&"lg-tabs__panel--active",!g&&"lg-tabs__panel--inactive",B&&j==="right"&&"lg-tabs__panel--slide-right",B&&j==="left"&&"lg-tabs__panel--slide-left"),children:l.children},l.key)})})]})}var Gl=Bl__default.default.forwardRef(Ll);exports.a=Sl;exports.b=Gl;
1
+ 'use strict';var chunkTDJG7ZB6_js=require('./chunk-TDJG7ZB6.js'),chunkQEKT37W5_js=require('./chunk-QEKT37W5.js'),chunkDCDWEVW4_js=require('./chunk-DCDWEVW4.js'),Bl=require('react'),classVarianceAuthority=require('class-variance-authority'),b=require('@radix-ui/react-tabs'),lingeeIcon=require('lingee-icon'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var Bl__default=/*#__PURE__*/_interopDefault(Bl);var b__namespace=/*#__PURE__*/_interopNamespace(b);var C={arrows:true,step:200,fade:true,scrollIntoView:true},Sl=classVarianceAuthority.cva("lg-tabs",{variants:{variant:{segmented:"lg-tabs--segmented",rounded:"lg-tabs--rounded",solid:"lg-tabs--solid",outline:"lg-tabs--outline",underline:"lg-tabs--underline"},size:{sm:"lg-tabs--sm",md:"lg-tabs--md"}},defaultVariants:{variant:"segmented",size:"md"}}),ol=typeof window<"u"?Bl.useLayoutEffect:Bl.useEffect;function Ll({items:o,activeKey:d,defaultActiveKey:tl,onChange:N,variant:n="segmented",size:cl="md",overflow:bl,scrollOptions:_,wrap:nl=false,scrollable:sl=false,glassy:il=false,transparent:dl=false,animated:B=true,destroyInactivePanel:M=false,className:ul,dir:vl,...fl},pl){let V=chunkTDJG7ZB6_js.n("Tabs"),O=bl??(sl?"scroll":nl?"wrap":"none"),X=O==="wrap"&&(n==="segmented"||n==="rounded")?"none":O,a=X==="scroll",A=X==="wrap",P=_?.arrows??C.arrows,T=_?.step??C.step,H=_?.fade??C.fade,$=_?.scrollIntoView??C.scrollIntoView,u=d!==void 0,ml=o.find(l=>!l.disabled)?.key,W=u?void 0:tl??ml,[hl,wl]=Bl.useState(W),t=u?d:hl,F=Bl.useRef(o.findIndex(l=>l.key===t)),[j,x]=Bl.useState("right"),kl=Bl.useCallback(l=>{let g=o.findIndex(k=>k.key===l),r=F.current;g>r?x("right"):g<r&&x("left"),F.current=g,u||wl(l),N?.(l);},[u,N,o]);Bl.useEffect(()=>{if(u&&d){let l=o.findIndex(r=>r.key===d),g=F.current;l!==g&&(l>g?x("right"):x("left"),F.current=l);}},[u,d,o]);let q=o.some(l=>l.children!=null),c=Bl.useRef(null),E=Bl.useRef(new Map),[yl,R]=Bl.useState({opacity:0}),h=Bl.useRef(false),U=Bl.useRef(0),_l=Bl.useCallback(l=>g=>{g?E.current.set(l,g):E.current.delete(l);},[]),w=Bl.useCallback(l=>{let g=c.current,r=t?E.current.get(t):void 0;if(!g||!r){R(al=>al.opacity===0?al:{opacity:0});return}let k=g.getBoundingClientRect(),f=(n==="underline"?r.querySelector(".lg-tabs__tab-label")??r:r).getBoundingClientRect(),rl=f.left-k.left+g.scrollLeft;if(!A){R({width:f.width,transform:`translateX(${rl}px)`,opacity:1,transition:l?"transform var(--_tabs-slider-duration) var(--lg-transition-timing), width var(--_tabs-slider-duration) var(--lg-transition-timing)":"none"});return}let S=n==="underline",Cl=S?r.getBoundingClientRect():f,L=S?Cl.bottom-k.top:f.top-k.top,Dl=l&&Math.abs(L-U.current)>1;U.current=L,R({width:f.width,...S?null:{height:f.height},top:0,bottom:"auto",transform:`translate(${rl}px, ${L}px)`,opacity:1,transition:Dl?"opacity var(--_tabs-slider-duration) var(--lg-transition-timing)":l?"transform var(--_tabs-slider-duration) var(--lg-transition-timing), width var(--_tabs-slider-duration) var(--lg-transition-timing)":"none"});},[t,n,A]),Y=Bl.useRef(w);Y.current=w;let G=Bl.useRef(0);ol(()=>{let l=h.current;w(l),l&&(G.current=Date.now()),h.current=true;},[w,t]);let J=o.map(l=>`${l.key}:${l.disabled?1:0}`).join("|");ol(()=>{let l=h.current;h.current=false,w(false),h.current=l;},[J]),Bl.useEffect(()=>{if(!c.current)return;let l=new ResizeObserver(()=>{Date.now()-G.current<350||Y.current(false);});return l.observe(c.current),()=>l.disconnect()},[]);let[Fl,Q]=Bl.useState(false),[Z,xl]=Bl.useState(false),[K,El]=Bl.useState(false),v=Bl.useCallback(()=>{let l=c.current;!l||!a||(Q(l.scrollWidth>l.clientWidth+1),xl(l.scrollLeft>1),El(l.scrollLeft+l.clientWidth<l.scrollWidth-1));},[a]);Bl.useEffect(()=>{if(!a){Q(false);return}let l=c.current;if(l)return v(),l.addEventListener("scroll",v),()=>l.removeEventListener("scroll",v)},[a,v,J]),Bl.useEffect(()=>{let l=c.current;if(!a||!l)return;let g=new ResizeObserver(()=>v());return g.observe(l),()=>g.disconnect()},[a,v]),Bl.useEffect(()=>{if(!a||!$||!t)return;let l=E.current.get(t);typeof l?.scrollIntoView=="function"&&l.scrollIntoView({behavior:"smooth",inline:"nearest",block:"nearest"});},[a,$,t]);let ll=Bl.useCallback((l,g)=>{let r=c.current;r&&(r.scrollBy({left:l==="left"?-T:T,behavior:"smooth"}),g&&g.detail>0&&g.currentTarget.blur());},[T]),z=a&&Fl&&P!==false,gl=jsxRuntime.jsxs(b__namespace.List,{className:chunkDCDWEVW4_js.a("lg-tabs__list",a&&"lg-tabs__list--scrollable"),ref:c,children:[jsxRuntime.jsx("span",{className:chunkDCDWEVW4_js.a(`lg-tabs__slider lg-tabs__slider--${n}`,il&&"lg-tabs__slider--glassy"),style:yl,"aria-hidden":true}),o.map(l=>jsxRuntime.jsxs(b__namespace.Trigger,{value:l.key,disabled:l.disabled,ref:_l(l.key),"aria-label":l.ariaLabel,className:chunkDCDWEVW4_js.a("lg-tabs__tab",l.disabled&&"lg-tabs__tab--disabled"),children:[l.icon&&jsxRuntime.jsx("span",{className:"lg-tabs__tab-icon",children:l.icon}),jsxRuntime.jsx("span",{className:"lg-tabs__tab-label",children:l.label}),l.suffix!=null&&jsxRuntime.jsx("span",{className:"lg-tabs__tab-suffix",children:l.suffix})]},l.key))]});return jsxRuntime.jsxs(b__namespace.Root,{ref:pl,className:chunkDCDWEVW4_js.a(Sl({variant:n,size:cl}),A&&"lg-tabs--wrap",a&&"lg-tabs--scrollable",dl&&"lg-tabs--transparent",q&&"lg-tabs--has-content",ul),value:d,defaultValue:W,onValueChange:kl,dir:vl,...fl,children:[a?jsxRuntime.jsxs("div",{className:chunkDCDWEVW4_js.a("lg-tabs__scroll-wrapper",P==="hover"&&"lg-tabs__scroll-wrapper--hover-controls",!z&&"lg-tabs__scroll-wrapper--no-arrows"),children:[z&&jsxRuntime.jsx(chunkQEKT37W5_js.b,{shape:"circle",size:"sm",variant:"text",icon:jsxRuntime.jsx(lingeeIcon.ChevronLeft,{}),tooltip:V.scrollLeft,disabled:!Z,onClick:l=>ll("left",l),className:"lg-tabs__scroll-arrow lg-tabs__scroll-arrow--left"}),H&&Z&&jsxRuntime.jsx("span",{className:"lg-tabs__fade lg-tabs__fade--left","aria-hidden":true}),gl,H&&K&&jsxRuntime.jsx("span",{className:"lg-tabs__fade lg-tabs__fade--right","aria-hidden":true}),z&&jsxRuntime.jsx(chunkQEKT37W5_js.b,{shape:"circle",size:"sm",variant:"text",icon:jsxRuntime.jsx(lingeeIcon.ChevronRight,{}),tooltip:V.scrollRight,disabled:!K,onClick:l=>ll("right",l),className:"lg-tabs__scroll-arrow lg-tabs__scroll-arrow--right"})]}):gl,q&&jsxRuntime.jsx("div",{className:"lg-tabs__content-wrapper",children:o.map(l=>{if(l.children==null)return null;let g=l.key===t;return M&&!g?null:jsxRuntime.jsx(b__namespace.Content,{value:l.key,forceMount:M?void 0:true,className:chunkDCDWEVW4_js.a("lg-tabs__panel",B&&"lg-tabs__panel--animated",g&&"lg-tabs__panel--active",!g&&"lg-tabs__panel--inactive",B&&j==="right"&&"lg-tabs__panel--slide-right",B&&j==="left"&&"lg-tabs__panel--slide-left"),children:l.children},l.key)})})]})}var Gl=Bl__default.default.forwardRef(Ll);exports.a=Sl;exports.b=Gl;
@@ -1 +1 @@
1
- import {n}from'./chunk-CATPKTPR.mjs';import {b as b$1}from'./chunk-Z4J7SMTI.mjs';import {a}from'./chunk-DN2VKVCV.mjs';import Bl,{useState,useRef,useCallback,useEffect,useLayoutEffect}from'react';import {cva}from'class-variance-authority';import*as b from'@radix-ui/react-tabs';import {ChevronLeft,ChevronRight}from'lingee-icon';import {jsxs,jsx}from'react/jsx-runtime';var C={arrows:true,step:200,fade:true,scrollIntoView:true},Sl=cva("lg-tabs",{variants:{variant:{segmented:"lg-tabs--segmented",rounded:"lg-tabs--rounded",solid:"lg-tabs--solid",outline:"lg-tabs--outline",underline:"lg-tabs--underline"},size:{sm:"lg-tabs--sm",md:"lg-tabs--md"}},defaultVariants:{variant:"segmented",size:"md"}}),ol=typeof window<"u"?useLayoutEffect:useEffect;function Ll({items:o,activeKey:d,defaultActiveKey:tl,onChange:N,variant:n$1="segmented",size:sl="md",overflow:bl,scrollOptions:k,wrap:nl=false,scrollable:cl=false,glassy:il=false,transparent:dl=false,animated:B=true,destroyInactivePanel:M=false,className:ul,dir:vl,...fl},pl){let V=n("Tabs"),O=bl??(cl?"scroll":nl?"wrap":"none"),X=O==="wrap"&&(n$1==="segmented"||n$1==="rounded")?"none":O,a$1=X==="scroll",A=X==="wrap",P=k?.arrows??C.arrows,T=k?.step??C.step,H=k?.fade??C.fade,$=k?.scrollIntoView??C.scrollIntoView,u=d!==void 0,ml=o.find(l=>!l.disabled)?.key,W=u?void 0:tl??ml,[hl,wl]=useState(W),t=u?d:hl,y=useRef(o.findIndex(l=>l.key===t)),[j,x]=useState("right"),Fl=useCallback(l=>{let g=o.findIndex(F=>F.key===l),r=y.current;g>r?x("right"):g<r&&x("left"),y.current=g,u||wl(l),N?.(l);},[u,N,o]);useEffect(()=>{if(u&&d){let l=o.findIndex(r=>r.key===d),g=y.current;l!==g&&(l>g?x("right"):x("left"),y.current=l);}},[u,d,o]);let q=o.some(l=>l.children!=null),s=useRef(null),E=useRef(new Map),[_l,R]=useState({opacity:0}),h=useRef(false),U=useRef(0),kl=useCallback(l=>g=>{g?E.current.set(l,g):E.current.delete(l);},[]),w=useCallback(l=>{let g=s.current,r=t?E.current.get(t):void 0;if(!g||!r){R(al=>al.opacity===0?al:{opacity:0});return}let F=g.getBoundingClientRect(),f=(n$1==="underline"?r.querySelector(".lg-tabs__tab-label")??r:r).getBoundingClientRect(),rl=f.left-F.left+g.scrollLeft;if(!A){R({width:f.width,transform:`translateX(${rl}px)`,opacity:1,transition:l?"transform var(--_tabs-slider-duration) var(--lg-transition-timing), width var(--_tabs-slider-duration) var(--lg-transition-timing)":"none"});return}let S=n$1==="underline",Cl=S?r.getBoundingClientRect():f,L=S?Cl.bottom-F.top:f.top-F.top,Dl=l&&Math.abs(L-U.current)>1;U.current=L,R({width:f.width,...S?null:{height:f.height},top:0,bottom:"auto",transform:`translate(${rl}px, ${L}px)`,opacity:1,transition:Dl?"opacity var(--_tabs-slider-duration) var(--lg-transition-timing)":l?"transform var(--_tabs-slider-duration) var(--lg-transition-timing), width var(--_tabs-slider-duration) var(--lg-transition-timing)":"none"});},[t,n$1,A]),Y=useRef(w);Y.current=w;let G=useRef(0);ol(()=>{let l=h.current;w(l),l&&(G.current=Date.now()),h.current=true;},[w,t]);let J=o.map(l=>`${l.key}:${l.disabled?1:0}`).join("|");ol(()=>{let l=h.current;h.current=false,w(false),h.current=l;},[J]),useEffect(()=>{if(!s.current)return;let l=new ResizeObserver(()=>{Date.now()-G.current<350||Y.current(false);});return l.observe(s.current),()=>l.disconnect()},[]);let[yl,Q]=useState(false),[Z,xl]=useState(false),[K,El]=useState(false),v=useCallback(()=>{let l=s.current;!l||!a$1||(Q(l.scrollWidth>l.clientWidth+1),xl(l.scrollLeft>1),El(l.scrollLeft+l.clientWidth<l.scrollWidth-1));},[a$1]);useEffect(()=>{if(!a$1){Q(false);return}let l=s.current;if(l)return v(),l.addEventListener("scroll",v),()=>l.removeEventListener("scroll",v)},[a$1,v,J]),useEffect(()=>{let l=s.current;if(!a$1||!l)return;let g=new ResizeObserver(()=>v());return g.observe(l),()=>g.disconnect()},[a$1,v]),useEffect(()=>{if(!a$1||!$||!t)return;let l=E.current.get(t);typeof l?.scrollIntoView=="function"&&l.scrollIntoView({behavior:"smooth",inline:"nearest",block:"nearest"});},[a$1,$,t]);let ll=useCallback((l,g)=>{let r=s.current;r&&(r.scrollBy({left:l==="left"?-T:T,behavior:"smooth"}),g&&g.detail>0&&g.currentTarget.blur());},[T]),z=a$1&&yl&&P!==false,gl=jsxs(b.List,{className:a("lg-tabs__list",a$1&&"lg-tabs__list--scrollable"),ref:s,children:[jsx("span",{className:a(`lg-tabs__slider lg-tabs__slider--${n$1}`,il&&"lg-tabs__slider--glassy"),style:_l,"aria-hidden":true}),o.map(l=>jsxs(b.Trigger,{value:l.key,disabled:l.disabled,ref:kl(l.key),"aria-label":l.ariaLabel,className:a("lg-tabs__tab",l.disabled&&"lg-tabs__tab--disabled"),children:[l.icon&&jsx("span",{className:"lg-tabs__tab-icon",children:l.icon}),jsx("span",{className:"lg-tabs__tab-label",children:l.label}),l.suffix!=null&&jsx("span",{className:"lg-tabs__tab-suffix",children:l.suffix})]},l.key))]});return jsxs(b.Root,{ref:pl,className:a(Sl({variant:n$1,size:sl}),A&&"lg-tabs--wrap",a$1&&"lg-tabs--scrollable",dl&&"lg-tabs--transparent",q&&"lg-tabs--has-content",ul),value:d,defaultValue:W,onValueChange:Fl,dir:vl,...fl,children:[a$1?jsxs("div",{className:a("lg-tabs__scroll-wrapper",P==="hover"&&"lg-tabs__scroll-wrapper--hover-controls",!z&&"lg-tabs__scroll-wrapper--no-arrows"),children:[z&&jsx(b$1,{shape:"circle",size:"sm",variant:"text",icon:jsx(ChevronLeft,{}),tooltip:V.scrollLeft,disabled:!Z,onClick:l=>ll("left",l),className:"lg-tabs__scroll-arrow lg-tabs__scroll-arrow--left"}),H&&Z&&jsx("span",{className:"lg-tabs__fade lg-tabs__fade--left","aria-hidden":true}),gl,H&&K&&jsx("span",{className:"lg-tabs__fade lg-tabs__fade--right","aria-hidden":true}),z&&jsx(b$1,{shape:"circle",size:"sm",variant:"text",icon:jsx(ChevronRight,{}),tooltip:V.scrollRight,disabled:!K,onClick:l=>ll("right",l),className:"lg-tabs__scroll-arrow lg-tabs__scroll-arrow--right"})]}):gl,q&&jsx("div",{className:"lg-tabs__content-wrapper",children:o.map(l=>{if(l.children==null)return null;let g=l.key===t;return M&&!g?null:jsx(b.Content,{value:l.key,forceMount:M?void 0:true,className:a("lg-tabs__panel",B&&"lg-tabs__panel--animated",g&&"lg-tabs__panel--active",!g&&"lg-tabs__panel--inactive",B&&j==="right"&&"lg-tabs__panel--slide-right",B&&j==="left"&&"lg-tabs__panel--slide-left"),children:l.children},l.key)})})]})}var Gl=Bl.forwardRef(Ll);export{Sl as a,Gl as b};
1
+ import {n}from'./chunk-CATPKTPR.mjs';import {b as b$1}from'./chunk-Z4J7SMTI.mjs';import {a}from'./chunk-DN2VKVCV.mjs';import Bl,{useState,useRef,useCallback,useEffect,useLayoutEffect}from'react';import {cva}from'class-variance-authority';import*as b from'@radix-ui/react-tabs';import {ChevronLeft,ChevronRight}from'lingee-icon';import {jsxs,jsx}from'react/jsx-runtime';var C={arrows:true,step:200,fade:true,scrollIntoView:true},Sl=cva("lg-tabs",{variants:{variant:{segmented:"lg-tabs--segmented",rounded:"lg-tabs--rounded",solid:"lg-tabs--solid",outline:"lg-tabs--outline",underline:"lg-tabs--underline"},size:{sm:"lg-tabs--sm",md:"lg-tabs--md"}},defaultVariants:{variant:"segmented",size:"md"}}),ol=typeof window<"u"?useLayoutEffect:useEffect;function Ll({items:o,activeKey:d,defaultActiveKey:tl,onChange:N,variant:n$1="segmented",size:cl="md",overflow:bl,scrollOptions:_,wrap:nl=false,scrollable:sl=false,glassy:il=false,transparent:dl=false,animated:B=true,destroyInactivePanel:M=false,className:ul,dir:vl,...fl},pl){let V=n("Tabs"),O=bl??(sl?"scroll":nl?"wrap":"none"),X=O==="wrap"&&(n$1==="segmented"||n$1==="rounded")?"none":O,a$1=X==="scroll",A=X==="wrap",P=_?.arrows??C.arrows,T=_?.step??C.step,H=_?.fade??C.fade,$=_?.scrollIntoView??C.scrollIntoView,u=d!==void 0,ml=o.find(l=>!l.disabled)?.key,W=u?void 0:tl??ml,[hl,wl]=useState(W),t=u?d:hl,F=useRef(o.findIndex(l=>l.key===t)),[j,x]=useState("right"),kl=useCallback(l=>{let g=o.findIndex(k=>k.key===l),r=F.current;g>r?x("right"):g<r&&x("left"),F.current=g,u||wl(l),N?.(l);},[u,N,o]);useEffect(()=>{if(u&&d){let l=o.findIndex(r=>r.key===d),g=F.current;l!==g&&(l>g?x("right"):x("left"),F.current=l);}},[u,d,o]);let q=o.some(l=>l.children!=null),c=useRef(null),E=useRef(new Map),[yl,R]=useState({opacity:0}),h=useRef(false),U=useRef(0),_l=useCallback(l=>g=>{g?E.current.set(l,g):E.current.delete(l);},[]),w=useCallback(l=>{let g=c.current,r=t?E.current.get(t):void 0;if(!g||!r){R(al=>al.opacity===0?al:{opacity:0});return}let k=g.getBoundingClientRect(),f=(n$1==="underline"?r.querySelector(".lg-tabs__tab-label")??r:r).getBoundingClientRect(),rl=f.left-k.left+g.scrollLeft;if(!A){R({width:f.width,transform:`translateX(${rl}px)`,opacity:1,transition:l?"transform var(--_tabs-slider-duration) var(--lg-transition-timing), width var(--_tabs-slider-duration) var(--lg-transition-timing)":"none"});return}let S=n$1==="underline",Cl=S?r.getBoundingClientRect():f,L=S?Cl.bottom-k.top:f.top-k.top,Dl=l&&Math.abs(L-U.current)>1;U.current=L,R({width:f.width,...S?null:{height:f.height},top:0,bottom:"auto",transform:`translate(${rl}px, ${L}px)`,opacity:1,transition:Dl?"opacity var(--_tabs-slider-duration) var(--lg-transition-timing)":l?"transform var(--_tabs-slider-duration) var(--lg-transition-timing), width var(--_tabs-slider-duration) var(--lg-transition-timing)":"none"});},[t,n$1,A]),Y=useRef(w);Y.current=w;let G=useRef(0);ol(()=>{let l=h.current;w(l),l&&(G.current=Date.now()),h.current=true;},[w,t]);let J=o.map(l=>`${l.key}:${l.disabled?1:0}`).join("|");ol(()=>{let l=h.current;h.current=false,w(false),h.current=l;},[J]),useEffect(()=>{if(!c.current)return;let l=new ResizeObserver(()=>{Date.now()-G.current<350||Y.current(false);});return l.observe(c.current),()=>l.disconnect()},[]);let[Fl,Q]=useState(false),[Z,xl]=useState(false),[K,El]=useState(false),v=useCallback(()=>{let l=c.current;!l||!a$1||(Q(l.scrollWidth>l.clientWidth+1),xl(l.scrollLeft>1),El(l.scrollLeft+l.clientWidth<l.scrollWidth-1));},[a$1]);useEffect(()=>{if(!a$1){Q(false);return}let l=c.current;if(l)return v(),l.addEventListener("scroll",v),()=>l.removeEventListener("scroll",v)},[a$1,v,J]),useEffect(()=>{let l=c.current;if(!a$1||!l)return;let g=new ResizeObserver(()=>v());return g.observe(l),()=>g.disconnect()},[a$1,v]),useEffect(()=>{if(!a$1||!$||!t)return;let l=E.current.get(t);typeof l?.scrollIntoView=="function"&&l.scrollIntoView({behavior:"smooth",inline:"nearest",block:"nearest"});},[a$1,$,t]);let ll=useCallback((l,g)=>{let r=c.current;r&&(r.scrollBy({left:l==="left"?-T:T,behavior:"smooth"}),g&&g.detail>0&&g.currentTarget.blur());},[T]),z=a$1&&Fl&&P!==false,gl=jsxs(b.List,{className:a("lg-tabs__list",a$1&&"lg-tabs__list--scrollable"),ref:c,children:[jsx("span",{className:a(`lg-tabs__slider lg-tabs__slider--${n$1}`,il&&"lg-tabs__slider--glassy"),style:yl,"aria-hidden":true}),o.map(l=>jsxs(b.Trigger,{value:l.key,disabled:l.disabled,ref:_l(l.key),"aria-label":l.ariaLabel,className:a("lg-tabs__tab",l.disabled&&"lg-tabs__tab--disabled"),children:[l.icon&&jsx("span",{className:"lg-tabs__tab-icon",children:l.icon}),jsx("span",{className:"lg-tabs__tab-label",children:l.label}),l.suffix!=null&&jsx("span",{className:"lg-tabs__tab-suffix",children:l.suffix})]},l.key))]});return jsxs(b.Root,{ref:pl,className:a(Sl({variant:n$1,size:cl}),A&&"lg-tabs--wrap",a$1&&"lg-tabs--scrollable",dl&&"lg-tabs--transparent",q&&"lg-tabs--has-content",ul),value:d,defaultValue:W,onValueChange:kl,dir:vl,...fl,children:[a$1?jsxs("div",{className:a("lg-tabs__scroll-wrapper",P==="hover"&&"lg-tabs__scroll-wrapper--hover-controls",!z&&"lg-tabs__scroll-wrapper--no-arrows"),children:[z&&jsx(b$1,{shape:"circle",size:"sm",variant:"text",icon:jsx(ChevronLeft,{}),tooltip:V.scrollLeft,disabled:!Z,onClick:l=>ll("left",l),className:"lg-tabs__scroll-arrow lg-tabs__scroll-arrow--left"}),H&&Z&&jsx("span",{className:"lg-tabs__fade lg-tabs__fade--left","aria-hidden":true}),gl,H&&K&&jsx("span",{className:"lg-tabs__fade lg-tabs__fade--right","aria-hidden":true}),z&&jsx(b$1,{shape:"circle",size:"sm",variant:"text",icon:jsx(ChevronRight,{}),tooltip:V.scrollRight,disabled:!K,onClick:l=>ll("right",l),className:"lg-tabs__scroll-arrow lg-tabs__scroll-arrow--right"})]}):gl,q&&jsx("div",{className:"lg-tabs__content-wrapper",children:o.map(l=>{if(l.children==null)return null;let g=l.key===t;return M&&!g?null:jsx(b.Content,{value:l.key,forceMount:M?void 0:true,className:a("lg-tabs__panel",B&&"lg-tabs__panel--animated",g&&"lg-tabs__panel--active",!g&&"lg-tabs__panel--inactive",B&&j==="right"&&"lg-tabs__panel--slide-right",B&&j==="left"&&"lg-tabs__panel--slide-left"),children:l.children},l.key)})})]})}var Gl=Bl.forwardRef(Ll);export{Sl as a,Gl as b};
@@ -46,9 +46,9 @@ interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "typ
46
46
  }
47
47
 
48
48
  declare const buttonVariants: (props?: ({
49
- variant?: "primary" | "filled" | "default" | "text" | "link-plain" | "link" | null | undefined;
50
- size?: "sm" | "md" | "std" | "lg" | null | undefined;
51
- shape?: "default" | "round" | "circle" | null | undefined;
49
+ variant?: "text" | "default" | "filled" | "link" | "primary" | "link-plain" | null | undefined;
50
+ size?: "sm" | "md" | "lg" | "std" | null | undefined;
51
+ shape?: "round" | "default" | "circle" | null | undefined;
52
52
  } & class_variance_authority_types.ClassProp) | undefined) => string;
53
53
  /**
54
54
  * Button 按钮组件(对齐 Lingee 设计规范)
@@ -46,9 +46,9 @@ interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "typ
46
46
  }
47
47
 
48
48
  declare const buttonVariants: (props?: ({
49
- variant?: "primary" | "filled" | "default" | "text" | "link-plain" | "link" | null | undefined;
50
- size?: "sm" | "md" | "std" | "lg" | null | undefined;
51
- shape?: "default" | "round" | "circle" | null | undefined;
49
+ variant?: "text" | "default" | "filled" | "link" | "primary" | "link-plain" | null | undefined;
50
+ size?: "sm" | "md" | "lg" | "std" | null | undefined;
51
+ shape?: "round" | "default" | "circle" | null | undefined;
52
52
  } & class_variance_authority_types.ClassProp) | undefined) => string;
53
53
  /**
54
54
  * Button 按钮组件(对齐 Lingee 设计规范)