zaravand-ui 6.0.0 → 7.0.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.
- package/dist/components/Accordion/Accordion.cjs +1 -1
- package/dist/components/Accordion/Accordion.interface.d.cts +8 -0
- package/dist/components/Accordion/Accordion.interface.d.ts +8 -0
- package/dist/components/Accordion/Accordion.js +226 -148
- package/dist/components/Accordion/Accordion.variant.cjs +1 -1
- package/dist/components/Accordion/Accordion.variant.js +2 -2
- package/dist/components/Avatar/Avatar.cjs +1 -1
- package/dist/components/Avatar/Avatar.js +32 -32
- package/dist/components/Button/Button.cjs +1 -1
- package/dist/components/Button/Button.interface.d.cts +0 -1
- package/dist/components/Button/Button.interface.d.ts +0 -1
- package/dist/components/Button/Button.js +41 -42
- package/dist/components/Button/Button.variant.cjs +1 -1
- package/dist/components/Button/Button.variant.d.cts +0 -1
- package/dist/components/Button/Button.variant.d.ts +0 -1
- package/dist/components/Button/Button.variant.js +2 -4
- package/dist/components/Checkbox/Checkbox.cjs +1 -1
- package/dist/components/Checkbox/Checkbox.interface.d.cts +11 -0
- package/dist/components/Checkbox/Checkbox.interface.d.ts +11 -0
- package/dist/components/Checkbox/Checkbox.js +66 -43
- package/dist/components/Checkbox/Checkbox.variant.cjs +1 -1
- package/dist/components/Checkbox/Checkbox.variant.d.cts +9 -4
- package/dist/components/Checkbox/Checkbox.variant.d.ts +9 -4
- package/dist/components/Checkbox/Checkbox.variant.js +20 -16
- package/dist/components/DatePicker/DatePicker.cjs +1 -1
- package/dist/components/DatePicker/DatePicker.interface.d.cts +0 -1
- package/dist/components/DatePicker/DatePicker.interface.d.ts +0 -1
- package/dist/components/DatePicker/DatePicker.js +511 -407
- package/dist/components/DatePicker/DatePicker.utils.cjs +1 -1
- package/dist/components/DatePicker/DatePicker.utils.js +101 -82
- package/dist/components/DatePicker/DatePicker.variant.cjs +1 -1
- package/dist/components/DatePicker/DatePicker.variant.d.cts +1 -3
- package/dist/components/DatePicker/DatePicker.variant.d.ts +1 -3
- package/dist/components/DatePicker/DatePicker.variant.js +14 -16
- package/dist/components/DatePicker/DatePickerMonthSlider.cjs +1 -0
- package/dist/components/DatePicker/DatePickerMonthSlider.d.cts +25 -0
- package/dist/components/DatePicker/DatePickerMonthSlider.d.ts +25 -0
- package/dist/components/DatePicker/DatePickerMonthSlider.js +98 -0
- package/dist/components/DatePicker/DatePickerWheel.cjs +1 -0
- package/dist/components/DatePicker/DatePickerWheel.d.cts +30 -0
- package/dist/components/DatePicker/DatePickerWheel.d.ts +30 -0
- package/dist/components/DatePicker/DatePickerWheel.js +156 -0
- package/dist/components/Dialog/Dialog.cjs +1 -1
- package/dist/components/Dialog/Dialog.interface.d.cts +5 -0
- package/dist/components/Dialog/Dialog.interface.d.ts +5 -0
- package/dist/components/Dialog/Dialog.js +57 -49
- package/dist/components/Dialog/Dialog.variant.cjs +1 -1
- package/dist/components/Dialog/Dialog.variant.js +1 -1
- package/dist/components/Dialog/DialogDragHandle.cjs +1 -0
- package/dist/components/Dialog/DialogDragHandle.d.cts +11 -0
- package/dist/components/Dialog/DialogDragHandle.d.ts +11 -0
- package/dist/components/Dialog/DialogDragHandle.js +55 -0
- package/dist/components/Input/Input.cjs +1 -1
- package/dist/components/Input/Input.js +38 -37
- package/dist/components/Input/Input.variant.cjs +1 -1
- package/dist/components/Input/Input.variant.d.cts +1 -3
- package/dist/components/Input/Input.variant.d.ts +1 -3
- package/dist/components/Input/Input.variant.js +9 -8
- package/dist/components/Pagination/Pagination.cjs +1 -1
- package/dist/components/Pagination/Pagination.js +90 -73
- package/dist/components/Pagination/Pagination.variant.cjs +1 -1
- package/dist/components/Pagination/Pagination.variant.d.cts +3 -1
- package/dist/components/Pagination/Pagination.variant.d.ts +3 -1
- package/dist/components/Pagination/Pagination.variant.js +12 -6
- package/dist/components/RadioGroup/RadioGroup.cjs +1 -1
- package/dist/components/RadioGroup/RadioGroup.js +44 -41
- package/dist/components/RadioGroup/RadioGroup.variant.cjs +1 -1
- package/dist/components/RadioGroup/RadioGroup.variant.d.cts +3 -2
- package/dist/components/RadioGroup/RadioGroup.variant.d.ts +3 -2
- package/dist/components/RadioGroup/RadioGroup.variant.js +11 -21
- package/dist/components/Select/Select.cjs +1 -1
- package/dist/components/Select/Select.d.cts +1 -3
- package/dist/components/Select/Select.d.ts +1 -3
- package/dist/components/Select/Select.interface.d.cts +0 -1
- package/dist/components/Select/Select.interface.d.ts +0 -1
- package/dist/components/Select/Select.js +620 -401
- package/dist/components/Select/Select.variant.cjs +1 -1
- package/dist/components/Select/Select.variant.d.cts +5 -5
- package/dist/components/Select/Select.variant.d.ts +5 -5
- package/dist/components/Select/Select.variant.js +10 -12
- package/dist/components/Sheet/Sheet.variant.cjs +1 -1
- package/dist/components/Sheet/Sheet.variant.js +6 -6
- package/dist/components/Switch/Switch.cjs +1 -1
- package/dist/components/Switch/Switch.interface.d.cts +12 -3
- package/dist/components/Switch/Switch.interface.d.ts +12 -3
- package/dist/components/Switch/Switch.js +57 -37
- package/dist/components/Switch/Switch.variant.cjs +1 -1
- package/dist/components/Switch/Switch.variant.d.cts +9 -5
- package/dist/components/Switch/Switch.variant.d.ts +9 -5
- package/dist/components/Switch/Switch.variant.js +22 -15
- package/dist/components/Table/Table.cjs +1 -1
- package/dist/components/Table/Table.interface.d.cts +9 -0
- package/dist/components/Table/Table.interface.d.ts +9 -0
- package/dist/components/Table/Table.js +462 -271
- package/dist/components/Table/TableSkeletonRows.cjs +1 -1
- package/dist/components/Table/TableSkeletonRows.js +26 -21
- package/dist/components/Table/TableSortToggle.cjs +1 -1
- package/dist/components/Table/TableSortToggle.d.cts +1 -1
- package/dist/components/Table/TableSortToggle.d.ts +1 -1
- package/dist/components/Table/TableSortToggle.js +23 -22
- package/dist/components/Table/hooks/useTableCardLabels.cjs +1 -0
- package/dist/components/Table/hooks/useTableCardLabels.d.cts +9 -0
- package/dist/components/Table/hooks/useTableCardLabels.d.ts +9 -0
- package/dist/components/Table/hooks/useTableCardLabels.js +34 -0
- package/dist/components/Table/hooks/useTableSort.cjs +1 -1
- package/dist/components/Table/hooks/useTableSort.d.cts +2 -0
- package/dist/components/Table/hooks/useTableSort.d.ts +2 -0
- package/dist/components/Table/hooks/useTableSort.js +8 -1
- package/dist/components/Tabs/Tabs.cjs +1 -1
- package/dist/components/Tabs/Tabs.js +90 -63
- package/dist/components/Tabs/Tabs.variant.cjs +1 -1
- package/dist/components/Tabs/Tabs.variant.d.cts +2 -2
- package/dist/components/Tabs/Tabs.variant.d.ts +2 -2
- package/dist/components/Tabs/Tabs.variant.js +52 -29
- package/dist/components/Textarea/Textarea.cjs +1 -1
- package/dist/components/Textarea/Textarea.js +19 -18
- package/dist/components/Textarea/Textarea.variant.cjs +1 -1
- package/dist/components/Textarea/Textarea.variant.js +5 -5
- package/dist/components/TimePicker/TimePicker.cjs +1 -1
- package/dist/components/TimePicker/TimePicker.interface.d.cts +0 -1
- package/dist/components/TimePicker/TimePicker.interface.d.ts +0 -1
- package/dist/components/TimePicker/TimePicker.js +121 -83
- package/dist/components/TimePicker/TimePicker.variant.cjs +1 -1
- package/dist/components/TimePicker/TimePicker.variant.d.cts +1 -3
- package/dist/components/TimePicker/TimePicker.variant.d.ts +1 -3
- package/dist/components/TimePicker/TimePicker.variant.js +9 -11
- package/dist/components/TimePicker/TimePickerPanel.cjs +1 -1
- package/dist/components/TimePicker/TimePickerPanel.js +3 -4
- package/dist/components/TimePicker/TimePickerWheel.cjs +1 -0
- package/dist/components/TimePicker/TimePickerWheel.d.cts +27 -0
- package/dist/components/TimePicker/TimePickerWheel.d.ts +27 -0
- package/dist/components/TimePicker/TimePickerWheel.js +205 -0
- package/dist/components/Toast/Toast.cjs +1 -1
- package/dist/components/Toast/Toast.d.cts +1 -1
- package/dist/components/Toast/Toast.d.ts +1 -1
- package/dist/components/Toast/Toast.js +56 -34
- package/dist/components/Toast/Toast.variant.cjs +1 -1
- package/dist/components/Toast/Toast.variant.d.cts +1 -1
- package/dist/components/Toast/Toast.variant.d.ts +1 -1
- package/dist/components/Toast/Toast.variant.js +1 -1
- package/dist/components/Toast/ToastHost.cjs +1 -1
- package/dist/components/Toast/ToastHost.js +42 -41
- package/dist/components/Toast/function/toastHaptics.cjs +1 -0
- package/dist/components/Toast/function/toastHaptics.d.cts +11 -0
- package/dist/components/Toast/function/toastHaptics.d.ts +11 -0
- package/dist/components/Toast/function/toastHaptics.js +6 -0
- package/dist/components/Uploader/Uploader.cjs +2 -2
- package/dist/components/Uploader/Uploader.js +328 -158
- package/dist/components/Uploader/Uploader.variant.cjs +1 -1
- package/dist/components/Uploader/Uploader.variant.d.cts +1 -3
- package/dist/components/Uploader/Uploader.variant.d.ts +1 -3
- package/dist/components/Uploader/Uploader.variant.js +2 -5
- package/dist/components/shared/ActionSheet.cjs +1 -0
- package/dist/components/shared/ActionSheet.d.cts +26 -0
- package/dist/components/shared/ActionSheet.d.ts +26 -0
- package/dist/components/shared/ActionSheet.js +51 -0
- package/dist/components/shared/FieldClearButton.cjs +1 -1
- package/dist/components/shared/FieldClearButton.d.cts +2 -1
- package/dist/components/shared/FieldClearButton.d.ts +2 -1
- package/dist/components/shared/FieldClearButton.js +11 -10
- package/dist/components/shared/FieldLabel.cjs +1 -1
- package/dist/components/shared/FieldLabel.js +6 -6
- package/dist/components/shared/IconActionButton.cjs +1 -1
- package/dist/components/shared/IconActionButton.d.cts +6 -1
- package/dist/components/shared/IconActionButton.d.ts +6 -1
- package/dist/components/shared/IconActionButton.js +9 -11
- package/dist/components/shared/WheelColumn.cjs +1 -0
- package/dist/components/shared/WheelColumn.d.cts +29 -0
- package/dist/components/shared/WheelColumn.d.ts +29 -0
- package/dist/components/shared/WheelColumn.js +116 -0
- package/dist/components/shared/haptics.cjs +1 -0
- package/dist/components/shared/haptics.d.cts +6 -0
- package/dist/components/shared/haptics.d.ts +6 -0
- package/dist/components/shared/haptics.js +8 -0
- package/dist/components/shared/responsiveScale.cjs +1 -1
- package/dist/components/shared/responsiveScale.d.cts +7 -1
- package/dist/components/shared/responsiveScale.d.ts +7 -1
- package/dist/components/shared/responsiveScale.js +2 -6
- package/dist/components/shared/useStickyToolbar.cjs +1 -0
- package/dist/components/shared/useStickyToolbar.d.cts +17 -0
- package/dist/components/shared/useStickyToolbar.d.ts +17 -0
- package/dist/components/shared/useStickyToolbar.js +39 -0
- package/dist/components/shared/useWheelSize.cjs +1 -0
- package/dist/components/shared/useWheelSize.d.cts +10 -0
- package/dist/components/shared/useWheelSize.d.ts +10 -0
- package/dist/components/shared/useWheelSize.js +14 -0
- package/dist/components/shared/viewport.cjs +1 -0
- package/dist/components/shared/viewport.d.cts +17 -0
- package/dist/components/shared/viewport.d.ts +17 -0
- package/dist/components/shared/viewport.js +32 -0
- package/dist/config/messages.cjs +1 -1
- package/dist/config/messages.d.cts +14 -0
- package/dist/config/messages.d.ts +14 -0
- package/dist/config/messages.js +26 -8
- package/dist/index.cjs +1 -1
- package/dist/index.css +1 -1
- package/dist/index.js +16 -16
- package/package.json +98 -97
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../config/useZuiConfig.cjs`),n=require(`../../services/localizeDigits/localizeDigits.cjs`),r=require(`../../lib/utils.cjs`),i=require(`../Button/Button.cjs`),a=require(`../
|
|
1
|
+
"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../config/useZuiConfig.cjs`),n=require(`../../services/localizeDigits/localizeDigits.cjs`),r=require(`../../lib/utils.cjs`),i=require(`../Button/Button.cjs`),a=require(`../Dialog/Dialog.variant.cjs`),o=require(`../Tooltip/Tooltip.cjs`),s=require(`../Toast/function/showToast.cjs`),c=require(`../Uploader/Uploader.utils.cjs`),l=require(`./Avatar.variant.cjs`),u=require(`./Avatar.utils.cjs`);let d=require(`react`);d=e.__toESM(d,1);let f=require(`react/jsx-runtime`),p=require(`lucide-react`),m=require(`@radix-ui/react-dialog`);m=e.__toESM(m,1);var h=d.createContext(null);function g({src:e,alt:n,name:g,fallback:v,size:y,shape:b,status:x,showTooltip:S=!1,previewable:C,previewSrc:w,onClick:T,onImageSelect:E,onImageRemove:D,accept:O=`image/*`,maxSizeKb:k,onReject:A,className:ee},te){let{messages:j,digits:M,dir:N}=t.useZuiConfig(),P=j.avatar,F=d.useContext(h),I=y??F?.size??`default`,L=b??F?.shape??`circle`,R=F!==null,z=d.useRef(null),[B,V]=d.useState(null),[ne,H]=d.useState(!1),U=e?B?.src===e?B.state:`loading`:`none`,W=U===`loaded`,G=(C??!T)&&W,K=!!T||G,q=!!E,J=u.getInitials(g),Y=g??n,re=v??(J?(0,f.jsx)(`span`,{"aria-hidden":`true`,dir:`auto`,children:J}):(0,f.jsx)(p.User,{className:`zui:size-[55%]`,"aria-hidden":`true`})),ie=e=>{T?.(e),G&&!e.defaultPrevented&&H(!0)},X=()=>z.current?.click(),ae=e=>{let t=e.target.files?.[0];if(e.target.value=``,!t)return;let{accepted:n,rejected:r}=c.splitAcceptedFiles([t],O,k);if(r.length>0){A?A(r[0]):s.showFallbackToast({title:P.invalidImage,message:c.describeRejection(r[0],k,M,j.uploader),type:`error`,duration:5e3},"`onReject`");return}E?.(n[0])},Z=r.cn(l.avatarVariants({size:I,shape:L,interactive:K}),R&&`zui:ring-2 zui:ring-[var(--zui-color-surface)]`,ee),Q=(0,f.jsxs)(f.Fragment,{children:[re,e&&U!==`error`?(0,f.jsx)(`img`,{src:e,alt:n??g??``,loading:`lazy`,draggable:!1,onLoad:()=>V({src:e,state:`loaded`}),onError:()=>V({src:e,state:`error`}),className:r.cn(`zui:absolute zui:inset-0 zui:size-full zui:object-cover zui:transition-opacity zui:duration-300`,W?`zui:opacity-100`:`zui:opacity-0`)},e):null,G?(0,f.jsx)(`span`,{"aria-hidden":`true`,className:`zui:absolute zui:inset-0 zui:flex zui:items-center zui:justify-center zui:bg-[var(--zui-theme-overlay-scrim)] zui:text-[var(--zui-color-on-solid)] zui:opacity-0 zui:transition-opacity zui:duration-200 zui:group-hover/avatar:opacity-100 zui:group-focus-visible/avatar:opacity-100`,children:(0,f.jsx)(p.ZoomIn,{className:`zui:size-[45%] zui:scale-75 zui:transition-transform zui:duration-200 zui:group-hover/avatar:scale-100`})}):null]}),$=K?(0,f.jsx)(`button`,{type:`button`,"data-slot":`avatar-root`,"aria-label":G?P.showImage(Y??``):Y,onClick:ie,className:Z,children:Q}):(0,f.jsx)(`span`,{"data-slot":`avatar-root`,role:`img`,"aria-label":Y,className:Z,children:Q});return(0,f.jsxs)(`span`,{ref:te,"data-slot":`avatar`,dir:N,"data-state":U,className:`zui:relative zui:inline-flex zui:shrink-0 zui:align-middle`,children:[S&&g?(0,f.jsx)(o.default,{text:g,position:`top`,trigger:$}):$,x?(0,f.jsx)(`span`,{className:l.avatarStatusVariants({status:x,size:I}),children:(0,f.jsx)(`span`,{className:`zui:sr-only`,children:P[x]})}):null,q?(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(o.default,{text:P.changeImage,position:`bottom`,trigger:(0,f.jsx)(`button`,{type:`button`,"aria-label":P.changeImage,onClick:X,className:l.avatarEditButtonVariants({size:I}),children:(0,f.jsx)(p.Camera,{"aria-hidden":`true`})})}),(0,f.jsx)(`input`,{ref:z,type:`file`,tabIndex:-1,"aria-hidden":`true`,accept:O,onChange:ae,className:`zui:hidden`})]}):null,(0,f.jsx)(m.Root,{open:ne&&!!e,onOpenChange:H,children:(0,f.jsx)(m.Portal,{children:(0,f.jsx)(m.Overlay,{"data-slot":`avatar-preview-overlay`,className:r.cn(a.dialogOverlayVariants(),`zui:mobile:items-center zui:mobile:p-4`),children:(0,f.jsxs)(m.Content,{"data-slot":`avatar-preview`,dir:N,"aria-describedby":void 0,className:l.avatarPreviewContentClassName,children:[(0,f.jsx)(m.Close,{asChild:!0,children:(0,f.jsx)(`button`,{type:`button`,"aria-label":j.common.close,className:`zui:absolute zui:-top-3 zui:-end-3 zui:mobile:top-2 zui:mobile:end-2 zui:z-10 zui:inline-flex zui:size-9 zui:mobile:size-11 zui:cursor-pointer zui:items-center zui:justify-center zui:rounded-full zui:border zui:border-[var(--zui-color-border)] zui:bg-[var(--zui-color-surface)] zui:p-0 zui:text-[var(--zui-color-text)] zui:shadow-md zui:outline-none zui:transition-transform zui:duration-200 zui:hover:scale-110 zui:focus-visible:shadow-[0_0_0_2px_var(--zui-theme-action-primary)]`,children:(0,f.jsx)(p.X,{className:`zui:size-4`,"aria-hidden":`true`})})}),(0,f.jsx)(_,{src:w??e,fallbackSrc:e,alt:n??g??``}),(0,f.jsxs)(`div`,{className:`zui:flex zui:max-w-full zui:flex-wrap zui:items-center zui:justify-center zui:gap-3 zui:mobile:w-full zui-radius-xs zui:bg-[var(--zui-color-surface)] zui:px-4 zui:py-2 zui:text-[var(--zui-color-text)] zui:shadow-md`,children:[(0,f.jsx)(m.Title,{className:`zui:m-0 zui:text-sm zui:mobile:w-full zui:mobile:text-center zui:mobile:text-base zui:font-semibold`,children:g??n??P.imageFallbackTitle}),q?(0,f.jsx)(i.default,{variant:`secondary`,kind:`cancel`,label:P.changeImage,className:`zui:mobile:flex-1`,icon:(0,f.jsx)(p.Camera,{className:`zui:size-4`}),onClick:X}):null,D?(0,f.jsx)(i.default,{variant:`danger`,kind:`cancel`,label:P.removeImage,className:`zui:mobile:flex-1`,icon:(0,f.jsx)(p.Trash2,{className:`zui:size-4`}),onClick:()=>{H(!1),D()}}):null]})]})})})})]})}function _({src:e,fallbackSrc:n,alt:r}){let{messages:i}=t.useZuiConfig(),[a,o]=d.useState(()=>new Set),s=[e,n].find(e=>!!e&&!a.has(e));return s?(0,f.jsx)(`img`,{src:s,alt:r,draggable:!1,onError:()=>o(e=>new Set(e).add(s)),className:`zui:block zui:max-h-[78vh] zui:max-w-[92vw] zui:min-w-40 zui-radius-xs zui:bg-[var(--zui-color-surface)] zui:object-contain zui:shadow-[0_24px_48px_-24px_var(--zui-effect-shadow-ink-55)]`}):(0,f.jsxs)(`div`,{className:`zui:flex zui:size-64 zui:flex-col zui:items-center zui:justify-center zui:gap-2 zui-radius-xs zui:bg-[var(--zui-color-surface)] zui:text-[var(--zui-theme-text-muted)]`,children:[(0,f.jsx)(p.ImageOff,{className:`zui:size-10`,"aria-hidden":`true`}),(0,f.jsx)(`span`,{className:`zui:text-sm`,children:i.avatar.imageLoadFailed})]})}function v({items:e,children:i,max:a,size:s=`default`,shape:c=`circle`,showTooltip:u=!0,className:p},m){let{messages:g,digits:_,dir:v}=t.useZuiConfig(),b=d.useMemo(()=>({size:s,shape:c}),[s,c]),x=e?e.map(({key:e,...t},n)=>(0,f.jsx)(y,{showTooltip:u,...t},e??`${t.name??`avatar`}-${n}`)):d.Children.toArray(i).filter(d.isValidElement),S=a!==void 0&&a>0&&x.length>a?a:x.length,C=x.length-S,w=e?e.slice(S).map(e=>e.name).filter(e=>!!e):[],T=(0,f.jsx)(`span`,{role:`img`,"aria-label":g.avatar.othersCount(n.localizeDigits(String(C),_)),className:r.cn(l.avatarVariants({size:s,shape:c}),`zui:ring-2 zui:ring-[var(--zui-color-surface)]`),children:(0,f.jsx)(`span`,{"aria-hidden":`true`,children:n.localizeDigits(`+${C}`,_)})});return(0,f.jsx)(h.Provider,{value:b,children:(0,f.jsxs)(`div`,{ref:m,"data-slot":`avatar-group`,dir:v,className:r.cn(`zui:inline-flex zui:items-center zui:[&>*]:relative zui:[&>*:hover]:z-10 zui:[&>*:focus-within]:z-10`,l.avatarGroupOverlapBySize[s],p),children:[x.slice(0,S),C>0?u&&w.length>0?(0,f.jsx)(o.default,{text:w.join(g.avatar.listSeparator),position:`top`,trigger:T}):T:null]})})}var y=d.forwardRef(g);y.displayName=`Avatar`;var b=d.forwardRef(v);b.displayName=`AvatarGroup`,exports.AvatarGroup=b,exports.default=y;
|
|
@@ -3,11 +3,11 @@ import { useZuiConfig as e } from "../../config/useZuiConfig.js";
|
|
|
3
3
|
import { localizeDigits as t } from "../../services/localizeDigits/localizeDigits.js";
|
|
4
4
|
import { cn as n } from "../../lib/utils.js";
|
|
5
5
|
import r from "../Button/Button.js";
|
|
6
|
-
import i from "../
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
6
|
+
import { dialogOverlayVariants as i } from "../Dialog/Dialog.variant.js";
|
|
7
|
+
import a from "../Tooltip/Tooltip.js";
|
|
8
|
+
import { showFallbackToast as o } from "../Toast/function/showToast.js";
|
|
9
|
+
import { describeRejection as s, splitAcceptedFiles as c } from "../Uploader/Uploader.utils.js";
|
|
10
|
+
import { avatarEditButtonVariants as l, avatarGroupOverlapBySize as u, avatarPreviewContentClassName as d, avatarStatusVariants as f, avatarVariants as ee } from "./Avatar.variant.js";
|
|
11
11
|
import { getInitials as p } from "./Avatar.utils.js";
|
|
12
12
|
import * as m from "react";
|
|
13
13
|
import { Fragment as h, jsx as g, jsxs as _ } from "react/jsx-runtime";
|
|
@@ -15,8 +15,8 @@ import { Camera as v, ImageOff as y, Trash2 as b, User as x, X as S, ZoomIn as C
|
|
|
15
15
|
import * as w from "@radix-ui/react-dialog";
|
|
16
16
|
//#region src/components/Avatar/Avatar.tsx
|
|
17
17
|
var T = m.createContext(null);
|
|
18
|
-
function E({ src: t, alt:
|
|
19
|
-
let { messages: I, digits: se, dir: L } = e(), R = I.avatar, z = m.useContext(T), B = D ?? z?.size ?? "default", ce = O ?? z?.shape ?? "circle", le = z !== null, V = m.useRef(null), [H, U] = m.useState(null), [ue, W] = m.useState(!1), G = t ? H?.src === t ? H.state : "loading" : "none", K = G === "loaded", q = (re ?? !A) && K, J = !!A || q, Y = !!j, X = p(y), Z = y ??
|
|
18
|
+
function E({ src: t, alt: u, name: y, fallback: E, size: D, shape: O, status: k, showTooltip: ne = !1, previewable: re, previewSrc: ie, onClick: A, onImageSelect: j, onImageRemove: M, accept: N = "image/*", maxSizeKb: P, onReject: F, className: ae }, oe) {
|
|
19
|
+
let { messages: I, digits: se, dir: L } = e(), R = I.avatar, z = m.useContext(T), B = D ?? z?.size ?? "default", ce = O ?? z?.shape ?? "circle", le = z !== null, V = m.useRef(null), [H, U] = m.useState(null), [ue, W] = m.useState(!1), G = t ? H?.src === t ? H.state : "loading" : "none", K = G === "loaded", q = (re ?? !A) && K, J = !!A || q, Y = !!j, X = p(y), Z = y ?? u, de = E ?? (X ? /* @__PURE__ */ g("span", {
|
|
20
20
|
"aria-hidden": "true",
|
|
21
21
|
dir: "auto",
|
|
22
22
|
children: X
|
|
@@ -28,18 +28,18 @@ function E({ src: t, alt: l, name: y, fallback: E, size: D, shape: O, status: k,
|
|
|
28
28
|
}, Q = () => V.current?.click(), pe = (e) => {
|
|
29
29
|
let t = e.target.files?.[0];
|
|
30
30
|
if (e.target.value = "", !t) return;
|
|
31
|
-
let { accepted: n, rejected: r } =
|
|
31
|
+
let { accepted: n, rejected: r } = c([t], N, P);
|
|
32
32
|
if (r.length > 0) {
|
|
33
|
-
F ? F(r[0]) :
|
|
33
|
+
F ? F(r[0]) : o({
|
|
34
34
|
title: R.invalidImage,
|
|
35
|
-
message:
|
|
35
|
+
message: s(r[0], P, se, I.uploader),
|
|
36
36
|
type: "error",
|
|
37
37
|
duration: 5e3
|
|
38
38
|
}, "`onReject`");
|
|
39
39
|
return;
|
|
40
40
|
}
|
|
41
41
|
j?.(n[0]);
|
|
42
|
-
}, $ = n(
|
|
42
|
+
}, $ = n(ee({
|
|
43
43
|
size: B,
|
|
44
44
|
shape: ce,
|
|
45
45
|
interactive: J
|
|
@@ -47,7 +47,7 @@ function E({ src: t, alt: l, name: y, fallback: E, size: D, shape: O, status: k,
|
|
|
47
47
|
de,
|
|
48
48
|
t && G !== "error" ? /* @__PURE__ */ g("img", {
|
|
49
49
|
src: t,
|
|
50
|
-
alt:
|
|
50
|
+
alt: u ?? y ?? "",
|
|
51
51
|
loading: "lazy",
|
|
52
52
|
draggable: !1,
|
|
53
53
|
onLoad: () => U({
|
|
@@ -86,13 +86,13 @@ function E({ src: t, alt: l, name: y, fallback: E, size: D, shape: O, status: k,
|
|
|
86
86
|
"data-state": G,
|
|
87
87
|
className: "zui:relative zui:inline-flex zui:shrink-0 zui:align-middle",
|
|
88
88
|
children: [
|
|
89
|
-
ne && y ? /* @__PURE__ */ g(
|
|
89
|
+
ne && y ? /* @__PURE__ */ g(a, {
|
|
90
90
|
text: y,
|
|
91
91
|
position: "top",
|
|
92
92
|
trigger: he
|
|
93
93
|
}) : he,
|
|
94
94
|
k ? /* @__PURE__ */ g("span", {
|
|
95
|
-
className:
|
|
95
|
+
className: f({
|
|
96
96
|
status: k,
|
|
97
97
|
size: B
|
|
98
98
|
}),
|
|
@@ -101,14 +101,14 @@ function E({ src: t, alt: l, name: y, fallback: E, size: D, shape: O, status: k,
|
|
|
101
101
|
children: R[k]
|
|
102
102
|
})
|
|
103
103
|
}) : null,
|
|
104
|
-
Y ? /* @__PURE__ */ _(h, { children: [/* @__PURE__ */ g(
|
|
104
|
+
Y ? /* @__PURE__ */ _(h, { children: [/* @__PURE__ */ g(a, {
|
|
105
105
|
text: R.changeImage,
|
|
106
106
|
position: "bottom",
|
|
107
107
|
trigger: /* @__PURE__ */ g("button", {
|
|
108
108
|
type: "button",
|
|
109
109
|
"aria-label": R.changeImage,
|
|
110
110
|
onClick: Q,
|
|
111
|
-
className:
|
|
111
|
+
className: l({ size: B }),
|
|
112
112
|
children: /* @__PURE__ */ g(v, { "aria-hidden": "true" })
|
|
113
113
|
})
|
|
114
114
|
}), /* @__PURE__ */ g("input", {
|
|
@@ -125,19 +125,19 @@ function E({ src: t, alt: l, name: y, fallback: E, size: D, shape: O, status: k,
|
|
|
125
125
|
onOpenChange: W,
|
|
126
126
|
children: /* @__PURE__ */ g(w.Portal, { children: /* @__PURE__ */ g(w.Overlay, {
|
|
127
127
|
"data-slot": "avatar-preview-overlay",
|
|
128
|
-
className:
|
|
128
|
+
className: n(i(), "zui:mobile:items-center zui:mobile:p-4"),
|
|
129
129
|
children: /* @__PURE__ */ _(w.Content, {
|
|
130
130
|
"data-slot": "avatar-preview",
|
|
131
131
|
dir: L,
|
|
132
132
|
"aria-describedby": void 0,
|
|
133
|
-
className:
|
|
133
|
+
className: d,
|
|
134
134
|
children: [
|
|
135
135
|
/* @__PURE__ */ g(w.Close, {
|
|
136
136
|
asChild: !0,
|
|
137
137
|
children: /* @__PURE__ */ g("button", {
|
|
138
138
|
type: "button",
|
|
139
139
|
"aria-label": I.common.close,
|
|
140
|
-
className: "zui:absolute zui:-top-3 zui:-end-3 zui:z-10 zui:inline-flex zui:size-9 zui:cursor-pointer zui:items-center zui:justify-center zui:rounded-full zui:border zui:border-[var(--zui-color-border)] zui:bg-[var(--zui-color-surface)] zui:p-0 zui:text-[var(--zui-color-text)] zui:shadow-md zui:outline-none zui:transition-transform zui:duration-200 zui:hover:scale-110 zui:focus-visible:shadow-[0_0_0_2px_var(--zui-theme-action-primary)]",
|
|
140
|
+
className: "zui:absolute zui:-top-3 zui:-end-3 zui:mobile:top-2 zui:mobile:end-2 zui:z-10 zui:inline-flex zui:size-9 zui:mobile:size-11 zui:cursor-pointer zui:items-center zui:justify-center zui:rounded-full zui:border zui:border-[var(--zui-color-border)] zui:bg-[var(--zui-color-surface)] zui:p-0 zui:text-[var(--zui-color-text)] zui:shadow-md zui:outline-none zui:transition-transform zui:duration-200 zui:hover:scale-110 zui:focus-visible:shadow-[0_0_0_2px_var(--zui-theme-action-primary)]",
|
|
141
141
|
children: /* @__PURE__ */ g(S, {
|
|
142
142
|
className: "zui:size-4",
|
|
143
143
|
"aria-hidden": "true"
|
|
@@ -147,28 +147,28 @@ function E({ src: t, alt: l, name: y, fallback: E, size: D, shape: O, status: k,
|
|
|
147
147
|
/* @__PURE__ */ g(te, {
|
|
148
148
|
src: ie ?? t,
|
|
149
149
|
fallbackSrc: t,
|
|
150
|
-
alt:
|
|
150
|
+
alt: u ?? y ?? ""
|
|
151
151
|
}),
|
|
152
152
|
/* @__PURE__ */ _("div", {
|
|
153
|
-
className: "zui:flex zui:max-w-full zui:flex-wrap zui:items-center zui:justify-center zui:gap-3 zui-radius-xs zui:bg-[var(--zui-color-surface)] zui:px-4 zui:py-2 zui:text-[var(--zui-color-text)] zui:shadow-md",
|
|
153
|
+
className: "zui:flex zui:max-w-full zui:flex-wrap zui:items-center zui:justify-center zui:gap-3 zui:mobile:w-full zui-radius-xs zui:bg-[var(--zui-color-surface)] zui:px-4 zui:py-2 zui:text-[var(--zui-color-text)] zui:shadow-md",
|
|
154
154
|
children: [
|
|
155
155
|
/* @__PURE__ */ g(w.Title, {
|
|
156
|
-
className: "zui:m-0 zui:text-sm zui:font-semibold",
|
|
157
|
-
children: y ??
|
|
156
|
+
className: "zui:m-0 zui:text-sm zui:mobile:w-full zui:mobile:text-center zui:mobile:text-base zui:font-semibold",
|
|
157
|
+
children: y ?? u ?? R.imageFallbackTitle
|
|
158
158
|
}),
|
|
159
159
|
Y ? /* @__PURE__ */ g(r, {
|
|
160
|
-
size: "sm",
|
|
161
160
|
variant: "secondary",
|
|
162
161
|
kind: "cancel",
|
|
163
162
|
label: R.changeImage,
|
|
163
|
+
className: "zui:mobile:flex-1",
|
|
164
164
|
icon: /* @__PURE__ */ g(v, { className: "zui:size-4" }),
|
|
165
165
|
onClick: Q
|
|
166
166
|
}) : null,
|
|
167
167
|
M ? /* @__PURE__ */ g(r, {
|
|
168
|
-
size: "sm",
|
|
169
168
|
variant: "danger",
|
|
170
169
|
kind: "cancel",
|
|
171
170
|
label: R.removeImage,
|
|
171
|
+
className: "zui:mobile:flex-1",
|
|
172
172
|
icon: /* @__PURE__ */ g(b, { className: "zui:size-4" }),
|
|
173
173
|
onClick: () => {
|
|
174
174
|
W(!1), M();
|
|
@@ -202,17 +202,17 @@ function te({ src: t, fallbackSrc: n, alt: r }) {
|
|
|
202
202
|
})]
|
|
203
203
|
});
|
|
204
204
|
}
|
|
205
|
-
function D({ items: r, children:
|
|
205
|
+
function D({ items: r, children: i, max: o, size: s = "default", shape: c = "circle", showTooltip: l = !0, className: d }, f) {
|
|
206
206
|
let { messages: p, digits: h, dir: v } = e(), y = m.useMemo(() => ({
|
|
207
207
|
size: s,
|
|
208
208
|
shape: c
|
|
209
209
|
}), [s, c]), b = r ? r.map(({ key: e, ...t }, n) => /* @__PURE__ */ g(O, {
|
|
210
|
-
showTooltip:
|
|
210
|
+
showTooltip: l,
|
|
211
211
|
...t
|
|
212
|
-
}, e ?? `${t.name ?? "avatar"}-${n}`)) : m.Children.toArray(
|
|
212
|
+
}, e ?? `${t.name ?? "avatar"}-${n}`)) : m.Children.toArray(i).filter(m.isValidElement), x = o !== void 0 && o > 0 && b.length > o ? o : b.length, S = b.length - x, C = r ? r.slice(x).map((e) => e.name).filter((e) => !!e) : [], w = /* @__PURE__ */ g("span", {
|
|
213
213
|
role: "img",
|
|
214
214
|
"aria-label": p.avatar.othersCount(t(String(S), h)),
|
|
215
|
-
className: n(
|
|
215
|
+
className: n(ee({
|
|
216
216
|
size: s,
|
|
217
217
|
shape: c
|
|
218
218
|
}), "zui:ring-2 zui:ring-[var(--zui-color-surface)]"),
|
|
@@ -224,11 +224,11 @@ function D({ items: r, children: a, max: o, size: s = "default", shape: c = "cir
|
|
|
224
224
|
return /* @__PURE__ */ g(T.Provider, {
|
|
225
225
|
value: y,
|
|
226
226
|
children: /* @__PURE__ */ _("div", {
|
|
227
|
-
ref:
|
|
227
|
+
ref: f,
|
|
228
228
|
"data-slot": "avatar-group",
|
|
229
229
|
dir: v,
|
|
230
|
-
className: n("zui:inline-flex zui:items-center zui:[&>*]:relative zui:[&>*:hover]:z-10 zui:[&>*:focus-within]:z-10",
|
|
231
|
-
children: [b.slice(0, x), S > 0 ?
|
|
230
|
+
className: n("zui:inline-flex zui:items-center zui:[&>*]:relative zui:[&>*:hover]:z-10 zui:[&>*:focus-within]:z-10", u[s], d),
|
|
231
|
+
children: [b.slice(0, x), S > 0 ? l && C.length > 0 ? /* @__PURE__ */ g(a, {
|
|
232
232
|
text: C.join(p.avatar.listSeparator),
|
|
233
233
|
position: "top",
|
|
234
234
|
trigger: w
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../lib/utils.cjs`),t=require(`../Spinner/Spinner.cjs`);;/* empty css */const n=require(`./Button.variant.cjs`);let r=require(`react`),i=require(`react/jsx-runtime`);var a=140,o=(0,r.forwardRef)(function({
|
|
1
|
+
"use client";require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../lib/utils.cjs`),t=require(`../Spinner/Spinner.cjs`);;/* empty css */const n=require(`./Button.variant.cjs`);let r=require(`react`),i=require(`react/jsx-runtime`);var a=140,o=(0,r.forwardRef)(function({variant:o=`primary`,kind:s=`confirm`,disabled:c=!1,isLoading:l=!1,label:u,children:d,icon:f,ariaLabel:p,fullWidth:m=!1,type:h=`button`,onClick:g,className:_,onPointerDown:v,onPointerUp:y,onPointerCancel:b,onPointerLeave:x,onKeyDown:S,onKeyUp:C,...w},T){let E=c||l,D=d??u,O=!l&&!!f,k=!l&&!!D,A=O&&!k,[j,M]=(0,r.useState)(!1),N=(0,r.useRef)(0),P=(0,r.useRef)(null),F=e.cn(n.buttonVariants({variant:o,kind:s,disabled:E,fullWidth:m}),A&&`zui-button--icon-only`,_),I=(0,r.useCallback)(()=>{P.current!==null&&(window.clearTimeout(P.current),P.current=null)},[]),L=(0,r.useCallback)(()=>{E||(I(),N.current=window.performance.now(),M(!0))},[I,E]),R=(0,r.useCallback)(()=>{I();let e=window.performance.now()-N.current,t=Math.max(a-e,0);P.current=window.setTimeout(()=>{M(!1),P.current=null},t)},[I]),z=(0,r.useCallback)(e=>{S?.(e),!e.defaultPrevented&&(e.repeat||e.key!==` `&&e.key!==`Enter`||L())},[S,L]),B=(0,r.useCallback)(e=>{C?.(e),!e.defaultPrevented&&(e.key!==` `&&e.key!==`Enter`||R())},[C,R]);return(0,r.useEffect)(()=>{E&&(I(),M(!1))},[I,E]),(0,r.useEffect)(()=>I,[I]),(0,i.jsxs)(`button`,{ref:T,"data-slot":`button`,type:h,disabled:E,"aria-label":p,"aria-busy":l||void 0,"data-pressed":j?`true`:void 0,onPointerDown:e=>{v?.(e),!e.defaultPrevented&&L()},onPointerUp:e=>{y?.(e),R()},onPointerCancel:e=>{b?.(e),R()},onPointerLeave:e=>{x?.(e),R()},onKeyDown:z,onKeyUp:B,onClick:E?void 0:g,className:F,...w,children:[l?(0,i.jsx)(t.default,{}):null,O?(0,i.jsx)(`span`,{"aria-hidden":`true`,className:`zui-button__icon zui:inline-flex zui:items-center zui:justify-center zui:[&>*]:origin-center zui:[&>*]:scale-[0.7]`,children:f}):null,k?(0,i.jsx)(`span`,{children:D}):null]})});exports.default=o;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type * as React from "react";
|
|
2
2
|
export interface ButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "type" | "disabled" | "onClick"> {
|
|
3
|
-
size?: "sm" | "default" | "lg";
|
|
4
3
|
variant?: "primary" | "secondary" | "danger";
|
|
5
4
|
kind?: "confirm" | "cancel";
|
|
6
5
|
disabled?: boolean;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type * as React from "react";
|
|
2
2
|
export interface ButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "type" | "disabled" | "onClick"> {
|
|
3
|
-
size?: "sm" | "default" | "lg";
|
|
4
3
|
variant?: "primary" | "secondary" | "danger";
|
|
5
4
|
kind?: "confirm" | "cancel";
|
|
6
5
|
disabled?: boolean;
|
|
@@ -6,63 +6,62 @@ import { buttonVariants as n } from "./Button.variant.js";
|
|
|
6
6
|
import { forwardRef as r, useCallback as i, useEffect as a, useRef as o, useState as s } from "react";
|
|
7
7
|
import { jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
8
8
|
//#region src/components/Button/Button.tsx
|
|
9
|
-
var u = 140, d = r(function({
|
|
10
|
-
let
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
L(!1), z.current = null;
|
|
9
|
+
var u = 140, d = r(function({ variant: r = "primary", kind: d = "confirm", disabled: f = !1, isLoading: p = !1, label: m, children: h, icon: g, ariaLabel: _, fullWidth: v = !1, type: y = "button", onClick: b, className: x, onPointerDown: S, onPointerUp: C, onPointerCancel: w, onPointerLeave: T, onKeyDown: E, onKeyUp: D, ...O }, k) {
|
|
10
|
+
let A = f || p, j = h ?? m, M = !p && !!g, N = !p && !!j, P = M && !N, [F, I] = s(!1), L = o(0), R = o(null), z = e(n({
|
|
11
|
+
variant: r,
|
|
12
|
+
kind: d,
|
|
13
|
+
disabled: A,
|
|
14
|
+
fullWidth: v
|
|
15
|
+
}), P && "zui-button--icon-only", x), B = i(() => {
|
|
16
|
+
R.current !== null && (window.clearTimeout(R.current), R.current = null);
|
|
17
|
+
}, []), V = i(() => {
|
|
18
|
+
A || (B(), L.current = window.performance.now(), I(!0));
|
|
19
|
+
}, [B, A]), H = i(() => {
|
|
20
|
+
B();
|
|
21
|
+
let e = window.performance.now() - L.current, t = Math.max(u - e, 0);
|
|
22
|
+
R.current = window.setTimeout(() => {
|
|
23
|
+
I(!1), R.current = null;
|
|
25
24
|
}, t);
|
|
26
|
-
}, [
|
|
27
|
-
|
|
28
|
-
}, [
|
|
29
|
-
|
|
30
|
-
}, [
|
|
25
|
+
}, [B]), U = i((e) => {
|
|
26
|
+
E?.(e), !e.defaultPrevented && (e.repeat || e.key !== " " && e.key !== "Enter" || V());
|
|
27
|
+
}, [E, V]), W = i((e) => {
|
|
28
|
+
D?.(e), !e.defaultPrevented && (e.key !== " " && e.key !== "Enter" || H());
|
|
29
|
+
}, [D, H]);
|
|
31
30
|
return a(() => {
|
|
32
|
-
|
|
33
|
-
}, [
|
|
34
|
-
ref:
|
|
31
|
+
A && (B(), I(!1));
|
|
32
|
+
}, [B, A]), a(() => B, [B]), /* @__PURE__ */ l("button", {
|
|
33
|
+
ref: k,
|
|
35
34
|
"data-slot": "button",
|
|
36
|
-
type:
|
|
37
|
-
disabled:
|
|
38
|
-
"aria-label":
|
|
39
|
-
"aria-busy":
|
|
40
|
-
"data-pressed":
|
|
35
|
+
type: y,
|
|
36
|
+
disabled: A,
|
|
37
|
+
"aria-label": _,
|
|
38
|
+
"aria-busy": p || void 0,
|
|
39
|
+
"data-pressed": F ? "true" : void 0,
|
|
41
40
|
onPointerDown: (e) => {
|
|
42
|
-
|
|
41
|
+
S?.(e), !e.defaultPrevented && V();
|
|
43
42
|
},
|
|
44
43
|
onPointerUp: (e) => {
|
|
45
|
-
|
|
44
|
+
C?.(e), H();
|
|
46
45
|
},
|
|
47
46
|
onPointerCancel: (e) => {
|
|
48
|
-
|
|
47
|
+
w?.(e), H();
|
|
49
48
|
},
|
|
50
49
|
onPointerLeave: (e) => {
|
|
51
|
-
|
|
50
|
+
T?.(e), H();
|
|
52
51
|
},
|
|
53
|
-
onKeyDown:
|
|
54
|
-
onKeyUp:
|
|
55
|
-
onClick:
|
|
56
|
-
className:
|
|
57
|
-
...
|
|
52
|
+
onKeyDown: U,
|
|
53
|
+
onKeyUp: W,
|
|
54
|
+
onClick: A ? void 0 : b,
|
|
55
|
+
className: z,
|
|
56
|
+
...O,
|
|
58
57
|
children: [
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
p ? /* @__PURE__ */ c(t, {}) : null,
|
|
59
|
+
M ? /* @__PURE__ */ c("span", {
|
|
61
60
|
"aria-hidden": "true",
|
|
62
61
|
className: "zui-button__icon zui:inline-flex zui:items-center zui:justify-center zui:[&>*]:origin-center zui:[&>*]:scale-[0.7]",
|
|
63
|
-
children:
|
|
62
|
+
children: g
|
|
64
63
|
}) : null,
|
|
65
|
-
|
|
64
|
+
N ? /* @__PURE__ */ c("span", { children: j }) : null
|
|
66
65
|
]
|
|
67
66
|
});
|
|
68
67
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../shared/responsiveScale.cjs`);var t=(0,require(`class-variance-authority`).cva)(`zui-button zui:inline-flex zui:items-center zui:justify-center zui:gap-2 zui:rounded-md ${e.BUTTON_PADDING_X} zui:text-sm zui:font-medium zui:leading-none zui:whitespace-nowrap zui:focus-visible:outline-none zui:focus-visible:ring-2 zui:focus-visible:ring-[var(--zui-color-primary)] zui:focus-visible:ring-offset-2 zui:focus-visible:ring-offset-[var(--zui-color-surface)] zui:disabled:pointer-events-none zui:disabled:cursor-not-allowed zui:disabled:opacity-65`,{variants:{
|
|
1
|
+
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../shared/responsiveScale.cjs`);var t=(0,require(`class-variance-authority`).cva)(`zui-button ${e.CONTROL_HEIGHT_DEFAULT} zui:inline-flex zui:items-center zui:justify-center zui:gap-2 zui:rounded-md ${e.BUTTON_PADDING_X} zui:text-sm zui:font-medium zui:leading-none zui:whitespace-nowrap zui:focus-visible:outline-none zui:focus-visible:ring-2 zui:focus-visible:ring-[var(--zui-color-primary)] zui:focus-visible:ring-offset-2 zui:focus-visible:ring-offset-[var(--zui-color-surface)] zui:disabled:pointer-events-none zui:disabled:cursor-not-allowed zui:disabled:opacity-65`,{variants:{variant:{primary:``,secondary:``,danger:``},kind:{confirm:`zui:text-[var(--zui-color-on-solid)] zui:hover:brightness-105 zui:hover:shadow-sm zui:active:shadow-sm`,cancel:`zui:border-2 zui:bg-transparent zui:text-[var(--zui-color-text)] zui:hover:bg-transparent zui:hover:shadow-sm zui:active:bg-transparent zui:active:shadow-sm`},disabled:{true:``,false:`zui:cursor-pointer`},fullWidth:{true:`zui:w-full`,false:`zui:w-auto`}},compoundVariants:[{kind:`confirm`,variant:`primary`,className:`zui:bg-[var(--zui-color-primary)]`},{kind:`confirm`,variant:`secondary`,className:`zui:bg-[var(--zui-color-secondary)]`},{kind:`confirm`,variant:`danger`,className:`zui:bg-[var(--zui-color-danger)]`},{kind:`cancel`,variant:`primary`,className:`zui:border-[var(--zui-color-primary)]`},{kind:`cancel`,variant:`secondary`,className:`zui:border-[var(--zui-color-secondary)]`},{kind:`cancel`,variant:`danger`,className:`zui:border-[var(--zui-color-danger)]`}],defaultVariants:{variant:`primary`,kind:`confirm`,disabled:!1,fullWidth:!1}});exports.buttonVariants=t;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { BUTTON_PADDING_X as e,
|
|
1
|
+
import { BUTTON_PADDING_X as e, CONTROL_HEIGHT_DEFAULT as t } from "../shared/responsiveScale.js";
|
|
2
2
|
import { cva as n } from "class-variance-authority";
|
|
3
3
|
//#region src/components/Button/Button.variant.ts
|
|
4
|
-
var r = n(`zui-button zui:inline-flex zui:items-center zui:justify-center zui:gap-2 zui:rounded-md ${e} zui:text-sm zui:font-medium zui:leading-none zui:whitespace-nowrap zui:focus-visible:outline-none zui:focus-visible:ring-2 zui:focus-visible:ring-[var(--zui-color-primary)] zui:focus-visible:ring-offset-2 zui:focus-visible:ring-offset-[var(--zui-color-surface)] zui:disabled:pointer-events-none zui:disabled:cursor-not-allowed zui:disabled:opacity-65`, {
|
|
4
|
+
var r = n(`zui-button ${t} zui:inline-flex zui:items-center zui:justify-center zui:gap-2 zui:rounded-md ${e} zui:text-sm zui:font-medium zui:leading-none zui:whitespace-nowrap zui:focus-visible:outline-none zui:focus-visible:ring-2 zui:focus-visible:ring-[var(--zui-color-primary)] zui:focus-visible:ring-offset-2 zui:focus-visible:ring-offset-[var(--zui-color-surface)] zui:disabled:pointer-events-none zui:disabled:cursor-not-allowed zui:disabled:opacity-65`, {
|
|
5
5
|
variants: {
|
|
6
|
-
size: t,
|
|
7
6
|
variant: {
|
|
8
7
|
primary: "",
|
|
9
8
|
secondary: "",
|
|
@@ -55,7 +54,6 @@ var r = n(`zui-button zui:inline-flex zui:items-center zui:justify-center zui:ga
|
|
|
55
54
|
}
|
|
56
55
|
],
|
|
57
56
|
defaultVariants: {
|
|
58
|
-
size: "default",
|
|
59
57
|
variant: "primary",
|
|
60
58
|
kind: "confirm",
|
|
61
59
|
disabled: !1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../lib/utils.cjs`),
|
|
1
|
+
"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../config/useZuiConfig.cjs`),n=require(`../../lib/utils.cjs`),r=require(`../shared/FieldLabel.cjs`),i=require(`../shared/useInvalidState.cjs`),a=require(`../shared/useBubbleInputInvalid.cjs`),o=require(`./Checkbox.variant.cjs`);let s=require(`react`);s=e.__toESM(s,1);let c=require(`react/jsx-runtime`),l=require(`lucide-react`),u=require(`@radix-ui/react-checkbox`);u=e.__toESM(u,1);var d=s.forwardRef(function({className:e,checked:d,defaultChecked:f,onCheckedChange:p,onInvalid:m,required:h,name:g,value:_,form:v,id:y,"aria-label":b,disabled:x=!1,onClick:S,label:C,description:w,direction:T,optionClassName:E,labelClassName:D,descriptionClassName:O,...k},A){let{dir:j}=t.useZuiConfig(),M=T??j,N=s.useId(),P=!!(C||w),F=y??(P?N:void 0),{isInvalid:I,setIsInvalid:L,handleInvalid:R}=i.useInvalidState(m),z=s.useRef(null),B=s.useMemo(()=>n.mergeRefs(z,A),[A]);a.useBubbleInputInvalid(z,R);let V=s.useCallback(e=>{L(!1),p?.(e)},[p,L]),H=(0,c.jsx)(`span`,{"data-slot":`checkbox-control`,className:`zui:relative zui:inline-flex zui:shrink-0 zui:[&>input]:inset-0! zui:[&>input]:transform-none!`,children:(0,c.jsxs)(u.Root,{...k,ref:B,"data-slot":`checkbox`,"aria-invalid":I||void 0,"aria-disabled":x||void 0,className:n.cn(o.checkboxVariants({disabled:x,className:e})),checked:d,defaultChecked:f,onCheckedChange:V,required:h,name:g,value:_,form:v,id:F,"aria-label":b,disabled:x,onClick:x?void 0:S,children:[(0,c.jsx)(u.Indicator,{"data-slot":`checkbox-indicator`,className:n.cn(o.checkboxIndicatorVariants()),children:(0,c.jsx)(l.CheckIcon,{})}),h?(0,c.jsx)(r.RequiredMark,{compact:!0}):null]})});return P?(0,c.jsxs)(`label`,{htmlFor:F,"data-slot":`checkbox-option`,dir:M,className:n.cn(o.checkboxOptionVariants({direction:M,disabled:x,className:E}),I&&`zui:mobile:border-[var(--zui-theme-status-danger)]`),children:[H,(0,c.jsxs)(`span`,{className:`zui:min-w-0 zui:flex-1`,children:[C?(0,c.jsx)(`span`,{className:n.cn(o.checkboxLabelVariants({disabled:x}),D),children:C}):null,w?(0,c.jsx)(`span`,{className:n.cn(o.checkboxDescriptionVariants(),O),children:w}):null]})]}):H});exports.default=d;
|
|
@@ -20,5 +20,16 @@ export interface CheckboxProps extends CheckboxNativeProps, VariantProps<typeof
|
|
|
20
20
|
onClick?: React.MouseEventHandler<HTMLButtonElement>;
|
|
21
21
|
/** Called when a native `<form>` rejects a missing `required` value. The event targets the hidden form input. */
|
|
22
22
|
onInvalid?: React.FormEventHandler<HTMLInputElement>;
|
|
23
|
+
/**
|
|
24
|
+
* Text beside the checkbox. With a `label` or `description` the checkbox sits in a bordered,
|
|
25
|
+
* fully tappable row (like a `RadioGroupItem`) whose border takes the primary colour when checked.
|
|
26
|
+
*/
|
|
27
|
+
label?: React.ReactNode;
|
|
28
|
+
description?: React.ReactNode;
|
|
29
|
+
/** Side of the row the checkbox sits on; defaults to the configured direction. */
|
|
30
|
+
direction?: "rtl" | "ltr";
|
|
31
|
+
optionClassName?: string;
|
|
32
|
+
labelClassName?: string;
|
|
33
|
+
descriptionClassName?: string;
|
|
23
34
|
}
|
|
24
35
|
export {};
|
|
@@ -20,5 +20,16 @@ export interface CheckboxProps extends CheckboxNativeProps, VariantProps<typeof
|
|
|
20
20
|
onClick?: React.MouseEventHandler<HTMLButtonElement>;
|
|
21
21
|
/** Called when a native `<form>` rejects a missing `required` value. The event targets the hidden form input. */
|
|
22
22
|
onInvalid?: React.FormEventHandler<HTMLInputElement>;
|
|
23
|
+
/**
|
|
24
|
+
* Text beside the checkbox. With a `label` or `description` the checkbox sits in a bordered,
|
|
25
|
+
* fully tappable row (like a `RadioGroupItem`) whose border takes the primary colour when checked.
|
|
26
|
+
*/
|
|
27
|
+
label?: React.ReactNode;
|
|
28
|
+
description?: React.ReactNode;
|
|
29
|
+
/** Side of the row the checkbox sits on; defaults to the configured direction. */
|
|
30
|
+
direction?: "rtl" | "ltr";
|
|
31
|
+
optionClassName?: string;
|
|
32
|
+
labelClassName?: string;
|
|
33
|
+
descriptionClassName?: string;
|
|
23
34
|
}
|
|
24
35
|
export {};
|
|
@@ -1,48 +1,71 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import {
|
|
10
|
-
import
|
|
2
|
+
import { useZuiConfig as e } from "../../config/useZuiConfig.js";
|
|
3
|
+
import { cn as t, mergeRefs as n } from "../../lib/utils.js";
|
|
4
|
+
import { RequiredMark as r } from "../shared/FieldLabel.js";
|
|
5
|
+
import { useInvalidState as i } from "../shared/useInvalidState.js";
|
|
6
|
+
import { useBubbleInputInvalid as a } from "../shared/useBubbleInputInvalid.js";
|
|
7
|
+
import { checkboxDescriptionVariants as o, checkboxIndicatorVariants as s, checkboxLabelVariants as c, checkboxOptionVariants as l, checkboxVariants as u } from "./Checkbox.variant.js";
|
|
8
|
+
import * as d from "react";
|
|
9
|
+
import { jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
10
|
+
import { CheckIcon as m } from "lucide-react";
|
|
11
|
+
import * as h from "@radix-ui/react-checkbox";
|
|
11
12
|
//#region src/components/Checkbox/Checkbox.tsx
|
|
12
|
-
var
|
|
13
|
-
let { isInvalid:
|
|
14
|
-
|
|
15
|
-
let
|
|
16
|
-
|
|
17
|
-
}, [
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
13
|
+
var g = d.forwardRef(function({ className: g, checked: _, defaultChecked: v, onCheckedChange: y, onInvalid: b, required: x, name: S, value: C, form: w, id: T, "aria-label": E, disabled: D = !1, onClick: O, label: k, description: A, direction: j, optionClassName: M, labelClassName: N, descriptionClassName: P, ...F }, I) {
|
|
14
|
+
let { dir: L } = e(), R = j ?? L, z = d.useId(), B = !!(k || A), V = T ?? (B ? z : void 0), { isInvalid: H, setIsInvalid: U, handleInvalid: W } = i(b), G = d.useRef(null), K = d.useMemo(() => n(G, I), [I]);
|
|
15
|
+
a(G, W);
|
|
16
|
+
let q = d.useCallback((e) => {
|
|
17
|
+
U(!1), y?.(e);
|
|
18
|
+
}, [y, U]), J = /* @__PURE__ */ f("span", {
|
|
19
|
+
"data-slot": "checkbox-control",
|
|
20
|
+
className: "zui:relative zui:inline-flex zui:shrink-0 zui:[&>input]:inset-0! zui:[&>input]:transform-none!",
|
|
21
|
+
children: /* @__PURE__ */ p(h.Root, {
|
|
22
|
+
...F,
|
|
23
|
+
ref: K,
|
|
24
|
+
"data-slot": "checkbox",
|
|
25
|
+
"aria-invalid": H || void 0,
|
|
26
|
+
"aria-disabled": D || void 0,
|
|
27
|
+
className: t(u({
|
|
28
|
+
disabled: D,
|
|
29
|
+
className: g
|
|
30
|
+
})),
|
|
31
|
+
checked: _,
|
|
32
|
+
defaultChecked: v,
|
|
33
|
+
onCheckedChange: q,
|
|
34
|
+
required: x,
|
|
35
|
+
name: S,
|
|
36
|
+
value: C,
|
|
37
|
+
form: w,
|
|
38
|
+
id: V,
|
|
39
|
+
"aria-label": E,
|
|
40
|
+
disabled: D,
|
|
41
|
+
onClick: D ? void 0 : O,
|
|
42
|
+
children: [/* @__PURE__ */ f(h.Indicator, {
|
|
43
|
+
"data-slot": "checkbox-indicator",
|
|
44
|
+
className: t(s()),
|
|
45
|
+
children: /* @__PURE__ */ f(m, {})
|
|
46
|
+
}), x ? /* @__PURE__ */ f(r, { compact: !0 }) : null]
|
|
47
|
+
})
|
|
45
48
|
});
|
|
49
|
+
return B ? /* @__PURE__ */ p("label", {
|
|
50
|
+
htmlFor: V,
|
|
51
|
+
"data-slot": "checkbox-option",
|
|
52
|
+
dir: R,
|
|
53
|
+
className: t(l({
|
|
54
|
+
direction: R,
|
|
55
|
+
disabled: D,
|
|
56
|
+
className: M
|
|
57
|
+
}), H && "zui:mobile:border-[var(--zui-theme-status-danger)]"),
|
|
58
|
+
children: [J, /* @__PURE__ */ p("span", {
|
|
59
|
+
className: "zui:min-w-0 zui:flex-1",
|
|
60
|
+
children: [k ? /* @__PURE__ */ f("span", {
|
|
61
|
+
className: t(c({ disabled: D }), N),
|
|
62
|
+
children: k
|
|
63
|
+
}) : null, A ? /* @__PURE__ */ f("span", {
|
|
64
|
+
className: t(o(), P),
|
|
65
|
+
children: A
|
|
66
|
+
}) : null]
|
|
67
|
+
})]
|
|
68
|
+
}) : J;
|
|
46
69
|
});
|
|
47
70
|
//#endregion
|
|
48
|
-
export {
|
|
71
|
+
export { g as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`class-variance-authority`);var t=(0,e.cva)(`zui:group/checkbox zui:relative zui:inline-flex zui:shrink-0 zui:items-center zui:justify-center zui-radius-xs zui:border zui:border-[var(--zui-color-border)] zui:bg-[var(--zui-theme-control-bg)] zui:text-[var(--zui-
|
|
1
|
+
require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`class-variance-authority`);var t=(0,e.cva)(`zui:group/checkbox zui:relative zui:inline-flex zui:size-[calc(var(--zui-scale,10px)*1.92)] zui:mobile:size-[calc(var(--zui-scale,10px)*2.6)] zui:shrink-0 zui:mobile:after:absolute zui:mobile:after:inset-[calc(var(--zui-scale,10px)*-1)] zui:mobile:after:content-[''] zui:items-center zui:justify-center zui-radius-xs zui:border zui:border-[var(--zui-color-border)] zui:bg-[var(--zui-theme-control-bg)] zui:text-[var(--zui-color-surface)] zui:shadow-xs zui:cursor-pointer zui:outline-none zui:select-none zui:transition-all zui:duration-300 zui:ease-out zui:data-[state=checked]:border-[var(--zui-theme-action-primary)] zui:data-[state=checked]:bg-[var(--zui-theme-action-primary)] zui:hover:-translate-y-0.5 zui:hover:border-[var(--zui-theme-action-primary-hover)] zui:hover:bg-[var(--zui-theme-control-hover-bg)] zui:hover:shadow-[0_8px_20px_-12px_var(--zui-effect-shadow-ink-35)] zui:data-[state=checked]:hover:bg-[var(--zui-theme-action-primary-hover)] zui:active:translate-y-px zui:data-[state=checked]:active:bg-[var(--zui-theme-action-primary-active)] zui:focus-visible:border-[var(--zui-theme-action-secondary)] zui:focus-visible:ring-[3px] zui:focus-visible:ring-[var(--zui-theme-action-secondary)] zui:aria-invalid:border-[var(--zui-theme-status-danger)] zui:aria-invalid:ring-[var(--zui-theme-status-danger)] zui:disabled:cursor-not-allowed zui:disabled:pointer-events-none zui:disabled:opacity-50`,{variants:{disabled:{true:`zui:pointer-events-none zui:opacity-50`,false:``}},defaultVariants:{disabled:!1}}),n=(0,e.cva)(`zui:flex zui:items-center zui:justify-center zui:text-[var(--zui-color-surface)] zui:data-[state=checked]:animate-in zui:data-[state=checked]:zoom-in-95 zui:data-[state=checked]:fade-in-0 zui:[&_svg]:size-[calc(var(--zui-scale,10px)*1.68)] zui:mobile:[&_svg]:size-[calc(var(--zui-scale,10px)*2.3)] zui:[&_svg]:transition-transform zui:[&_svg]:duration-200`),r=(0,e.cva)(`zui:inline-flex zui:w-full zui:items-start zui:justify-between zui:gap-2.5 zui:mobile:min-h-[calc(var(--zui-scale,10px)*5.184)] zui:mobile:items-center zui-radius-xs zui:mobile:border-solid zui:mobile:border-[max(1px,calc(var(--zui-scale,10px)*0.15))] zui:mobile:border-[var(--zui-color-border)] zui:mobile:bg-[var(--zui-color-surface)] zui:mobile:px-3 zui:mobile:py-2 zui:transition-colors zui:duration-200 zui:mobile:has-[[data-state=checked]]:border-[var(--zui-theme-action-primary)]`,{variants:{direction:{rtl:`zui:flex-row-reverse zui:text-right`,ltr:`zui:flex-row zui:text-left`},disabled:{true:`zui:cursor-not-allowed zui:opacity-60`,false:`zui:cursor-pointer`}},defaultVariants:{direction:`rtl`,disabled:!1}}),i=(0,e.cva)(`zui:block zui:text-sm zui:mobile:text-base zui:font-medium zui:leading-5 zui:mobile:leading-6 zui:text-[var(--zui-color-text)]`,{variants:{disabled:{true:`zui:text-[var(--zui-theme-text-muted)]`,false:``}},defaultVariants:{disabled:!1}}),a=(0,e.cva)(`zui:mt-0.5 zui:block zui:text-xs zui:mobile:text-sm zui:text-[var(--zui-color-text)]`);exports.checkboxDescriptionVariants=a,exports.checkboxIndicatorVariants=n,exports.checkboxLabelVariants=i,exports.checkboxOptionVariants=r,exports.checkboxVariants=t;
|