@synnaxlabs/pluto 0.52.4 → 0.52.6
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/{Animated-6qL1fRZx.js → Animated-BU-7FzeV.js} +84 -83
- package/dist/{Animated-vGAs0qOH.cjs → Animated-BhCfNN8N.cjs} +1 -1
- package/dist/{Animated-Bn4jMc7c.js → Animated-C1yZ_uus.js} +2 -2
- package/dist/Animated-C4AcIYpH.cjs +1 -0
- package/dist/{Copy-DuC8dTK7.cjs → Copy-6Mur4EW2.cjs} +1 -1
- package/dist/{Copy-CzkBKGca.js → Copy-eucLPEWo.js} +4 -4
- package/dist/{Dialog-DNrgykEv.cjs → Dialog-DKMROHkj.cjs} +1 -1
- package/dist/{Dialog-Dos5l3K2.js → Dialog-dxzsEWgY.js} +1 -1
- package/dist/{Editable-4ZwvICC4.js → Editable-C17ILP50.js} +4 -4
- package/dist/{Haul-V5NQI3MY.cjs → Haul-BShXYNxx.cjs} +1 -1
- package/dist/{Haul-CxbMtSY4.js → Haul-Dv-7aC_g.js} +1 -1
- package/dist/{Items-DYYNNIjr.cjs → Items-806FU8Ig.cjs} +1 -1
- package/dist/{Items-CNPUoiob.js → Items-CPIJP3y9.js} +5 -5
- package/dist/Menu-C2vz25UP.js +139 -0
- package/dist/Menu-ZISpSd-o.cjs +1 -0
- package/dist/{Provider-DSMJjyuY.cjs → Provider-B1JpVCIg.cjs} +1 -1
- package/dist/{Provider-ZIy-UlnE.js → Provider-CfgP1iWx.js} +2 -2
- package/dist/{Tags-6OV0_eBz.cjs → Tags-BE6wPgNv.cjs} +1 -1
- package/dist/{Tags-BUDnOqms.js → Tags-BTbNRoip.js} +8 -8
- package/dist/{Text-BSTMZRuo.js → Text-BIGgPTpY.js} +894 -894
- package/dist/Text-_KoMj9Wf.cjs +1 -0
- package/dist/button.cjs +1 -1
- package/dist/button.js +1 -1
- package/dist/color.cjs +1 -1
- package/dist/color.js +1 -1
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.js +1 -1
- package/dist/ether.cjs +1 -1
- package/dist/ether.js +2 -2
- package/dist/{external-CmYpRWry.cjs → external-9dcu01v6.cjs} +1 -1
- package/dist/{external-ieDANY3X.cjs → external-BY9Nw2gP.cjs} +1 -1
- package/dist/{external-CG70NZqY.js → external-BnrrTvLw.js} +6 -6
- package/dist/{external-C0rrTDhu.cjs → external-ByPmlfc-.cjs} +1 -1
- package/dist/{external--liXQuyF.cjs → external-Bzko45Io.cjs} +1 -1
- package/dist/{external-BRxBwBtj.cjs → external-C0FbiHkb.cjs} +33 -33
- package/dist/{external-DFvPOUIQ.cjs → external-CROdzUNR.cjs} +1 -1
- package/dist/{external-Ci1Iy9ku.js → external-Cd6J4yXU.js} +1 -1
- package/dist/{external-Ctnukdzx.js → external-CdFqxvDi.js} +3 -3
- package/dist/{external-DAotNquC.js → external-CfHgwpZG.js} +1 -1
- package/dist/{external-JwicH0Yv.js → external-Ciq_Ux5w.js} +8 -8
- package/dist/{external-Bjd-DyWx.js → external-CsOIr_FG.js} +4551 -4551
- package/dist/{external-s6DOSL29.js → external-DCkEHk2F.js} +3 -3
- package/dist/{external-Czkrdv2A.js → external-DCvZU09g.js} +10 -10
- package/dist/{external-B3ipr7m2.cjs → external-DOHVmFq6.cjs} +1 -1
- package/dist/{external-N5bKB8Zx.cjs → external-DUYMFee8.cjs} +1 -1
- package/dist/{external-CoCI_tg5.js → external-Dn55rCp_.js} +4 -4
- package/dist/{external-B7UnU0MW.js → external-Dvn_KRPF.js} +4 -4
- package/dist/{external-DWEpl5aM.cjs → external-RARODBsH.cjs} +1 -1
- package/dist/{external-Ba2qQp_c.js → external-UzXlHlr9.js} +1 -1
- package/dist/{external-Czv2P05t.cjs → external-VtOg79_6.cjs} +1 -1
- package/dist/{external-CvYxFUrc.js → external-auCyrXJv.js} +3 -3
- package/dist/{external-ZtJmVgiY.cjs → external-qZkew-g7.cjs} +1 -1
- package/dist/header.cjs +1 -1
- package/dist/header.js +1 -1
- package/dist/{hooks-CWEfATTF.js → hooks-DPk_YYCv.js} +2 -2
- package/dist/{hooks-C4ji1BSZ.cjs → hooks-DmaLjPZJ.cjs} +1 -1
- package/dist/index.cjs +17 -17
- package/dist/index.js +6497 -6487
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/pluto.css +1 -1
- package/dist/src/access/policy/external.d.ts +0 -1
- package/dist/src/access/policy/external.d.ts.map +1 -1
- package/dist/src/access/role/external.d.ts +0 -1
- package/dist/src/access/role/external.d.ts.map +1 -1
- package/dist/src/channel/{CreateCalculatedIcon.d.ts → Icons.d.ts} +2 -1
- package/dist/src/channel/Icons.d.ts.map +1 -0
- package/dist/src/channel/external.d.ts +1 -1
- package/dist/src/channel/external.d.ts.map +1 -1
- package/dist/src/device/queries.d.ts +1 -1
- package/dist/src/flex/Box.d.ts +4 -4
- package/dist/src/hooks/useResize.d.ts +4 -1
- package/dist/src/hooks/useResize.d.ts.map +1 -1
- package/dist/src/hooks/useResize.spec.d.ts +2 -0
- package/dist/src/hooks/useResize.spec.d.ts.map +1 -0
- package/dist/src/{user/CreateIcon.d.ts → lineplot/Icons.d.ts} +1 -1
- package/dist/src/lineplot/Icons.d.ts.map +1 -0
- package/dist/src/lineplot/aether/XAxis.d.ts +4 -4
- package/dist/src/lineplot/aether/YAxis.d.ts +4 -4
- package/dist/src/lineplot/aether/axis.d.ts +2 -2
- package/dist/src/lineplot/external.d.ts +1 -0
- package/dist/src/lineplot/external.d.ts.map +1 -1
- package/dist/src/lineplot/range/aether/annotation.d.ts +4 -4
- package/dist/src/lineplot/tooltip/aether/tooltip.d.ts +8 -8
- package/dist/src/{ranger/CreateIcon.d.ts → log/Icons.d.ts} +1 -1
- package/dist/src/log/Icons.d.ts.map +1 -0
- package/dist/src/log/aether/Log.d.ts +6 -6
- package/dist/src/log/external.d.ts +1 -0
- package/dist/src/log/external.d.ts.map +1 -1
- package/dist/src/menu/ContextMenu.d.ts.map +1 -1
- package/dist/src/menu/ContextMenu.spec.d.ts +2 -0
- package/dist/src/menu/ContextMenu.spec.d.ts.map +1 -0
- package/dist/src/ranger/Icons.d.ts +3 -0
- package/dist/src/ranger/Icons.d.ts.map +1 -0
- package/dist/src/ranger/external.d.ts +1 -1
- package/dist/src/ranger/external.d.ts.map +1 -1
- package/dist/src/ranger/queries.d.ts +2 -2
- package/dist/src/schematic/Icons.d.ts +3 -0
- package/dist/src/schematic/Icons.d.ts.map +1 -0
- package/dist/src/schematic/external.d.ts +1 -0
- package/dist/src/schematic/external.d.ts.map +1 -1
- package/dist/src/schematic/symbol/registry.d.ts +4 -4
- package/dist/src/{access/policy/CreateIcon.d.ts → status/base/Icons.d.ts} +1 -1
- package/dist/src/status/base/Icons.d.ts.map +1 -0
- package/dist/src/status/base/external.d.ts +1 -1
- package/dist/src/status/base/external.d.ts.map +1 -1
- package/dist/src/status/queries.d.ts +7 -7
- package/dist/src/table/Icons.d.ts +3 -0
- package/dist/src/table/Icons.d.ts.map +1 -0
- package/dist/src/table/cells/Cells.d.ts +4 -4
- package/dist/src/table/external.d.ts +1 -0
- package/dist/src/table/external.d.ts.map +1 -1
- package/dist/src/telem/control/aether/controller.d.ts +1 -1
- package/dist/src/telem/control/aether/indicator.d.ts +5 -5
- package/dist/src/telem/control/aether/legend.d.ts +2 -2
- package/dist/src/telem/control/aether/state.d.ts +1 -1
- package/dist/src/text/base/types.d.ts +2 -2
- package/dist/src/theming/aether/provider.d.ts +138 -138
- package/dist/src/theming/base/theme.d.ts +140 -140
- package/dist/src/triggers/triggers.d.ts +21 -21
- package/dist/src/user/Icons.d.ts +3 -0
- package/dist/src/user/Icons.d.ts.map +1 -0
- package/dist/src/user/external.d.ts +1 -1
- package/dist/src/user/external.d.ts.map +1 -1
- package/dist/src/user/queries.d.ts +1 -1
- package/dist/src/viewport/use.d.ts +1 -1
- package/dist/src/vis/axis/axis.d.ts +2 -2
- package/dist/src/vis/gauge/aether/gauge.d.ts +6 -6
- package/dist/src/vis/gauge/use.d.ts +2 -2
- package/dist/src/vis/line/aether/line.d.ts +1 -1
- package/dist/src/vis/measure/aether/measure.d.ts +8 -8
- package/dist/src/vis/rule/aether/aether.d.ts +2 -2
- package/dist/src/vis/value/aether/value.d.ts +9 -9
- package/dist/src/vis/value/use.d.ts +3 -3
- package/dist/src/workspace/Icons.d.ts +5 -0
- package/dist/src/workspace/Icons.d.ts.map +1 -0
- package/dist/src/workspace/external.d.ts +3 -0
- package/dist/src/workspace/external.d.ts.map +1 -0
- package/dist/src/workspace/index.d.ts +1 -1
- package/dist/src/workspace/index.d.ts.map +1 -1
- package/dist/src/workspace/queries.d.ts +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/text.js +2 -2
- package/dist/theming.cjs +1 -1
- package/dist/theming.js +2 -2
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/triggers.cjs +1 -1
- package/dist/triggers.js +1 -1
- package/dist/{value-DimszMFu.js → value-CQ1JSZ3H.js} +4 -4
- package/dist/{value-Bfn0uQuG.cjs → value-DJPQ1lb4.cjs} +1 -1
- package/package.json +3 -5
- package/dist/Animated-xK__WUQp.cjs +0 -1
- package/dist/Menu-C0scum-k.cjs +0 -1
- package/dist/Menu-CTuOX5DR.js +0 -136
- package/dist/Text-C2_VsLzw.cjs +0 -1
- package/dist/src/access/policy/CreateIcon.d.ts.map +0 -1
- package/dist/src/access/role/CreateIcon.d.ts +0 -3
- package/dist/src/access/role/CreateIcon.d.ts.map +0 -1
- package/dist/src/channel/CreateCalculatedIcon.d.ts.map +0 -1
- package/dist/src/ranger/CreateIcon.d.ts.map +0 -1
- package/dist/src/status/base/CreateIcon.d.ts +0 -3
- package/dist/src/status/base/CreateIcon.d.ts.map +0 -1
- package/dist/src/user/CreateIcon.d.ts.map +0 -1
|
@@ -3,8 +3,8 @@ import { id as aA, xy as v, box as N, RoutedWorker as lA, compare as iA, deep as
|
|
|
3
3
|
import { useRef as C, useEffect as R, memo as z, useState as F, useMemo as E, useCallback as X, useLayoutEffect as B } from "react";
|
|
4
4
|
import { ValidationError as nA, UnexpectedError as O } from "@synnaxlabs/client";
|
|
5
5
|
import { p as y, h as SA, t as Q, b as T, P as H, a as cA, S as gA } from "./provider-Bt-E2O6g.js";
|
|
6
|
-
import { k as qA, a as J, c as Y } from "./Text-
|
|
7
|
-
import { u as IA } from "./Editable-
|
|
6
|
+
import { k as qA, a as J, c as Y } from "./Text-BIGgPTpY.js";
|
|
7
|
+
import { u as IA } from "./Editable-C17ILP50.js";
|
|
8
8
|
import "./types-CGRCBVD4.js";
|
|
9
9
|
import { C as b } from "./css-D90kZTM8.js";
|
|
10
10
|
import "./Box-Bi280MYh.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const x=require("./jsx-runtime-nZSsnGb7.cjs"),l=require("react"),w=require("@synnaxlabs/x"),C=require("./css-CloSmhZB.cjs"),_e=require("./Dialog-DNrgykEv.cjs"),re=require("./Animated-xK__WUQp.cjs"),De=require("./Copy-DuC8dTK7.cjs"),k=require("./Text-C2_VsLzw.cjs"),A=require("./Items-DYYNNIjr.cjs"),b=require("./Editable-HUPqTaui.cjs"),z=require("./types-DI2vtOGs.cjs"),te=require("./Provider-DSMJjyuY.cjs"),V=require("./Box-CNUz5BsV.cjs"),_=require("./provider-DQkVj3tA.cjs");require("react-dom");const G=require("./hooks-C4ji1BSZ.cjs"),[He,Be]=k.create({defaultValue:[],displayName:"Status.Context"}),[Ue,K]=k.create({defaultValue:()=>{},displayName:"Status.AdderContext"}),Fe=.9,Oe=({children:e,maxHistory:n=500})=>{const[{path:s},{statuses:r},d]=te.use$1({type:_.Aggregator.TYPE,schema:_.aggregatorStateZ,initialState:{statuses:[]}});if(r.length>n){const u=Math.floor(n*Fe);d(a=>({...a,statuses:r.slice(0,u)}))}const c=l.useCallback(u=>{const a={time:w.TimeStamp.now(),key:w.id.create(),...u};d(p=>({...p,statuses:[a,...p.statuses.filter(h=>h.key!=a.key)]}))},[d]);return x.jsxRuntimeExports.jsx(He,{value:r,children:x.jsxRuntimeExports.jsx(Ue,{value:c,children:x.jsxRuntimeExports.jsx(te.Composite,{path:s,children:e})})})},Ge=()=>{const e=K();return l.useMemo(()=>_.createErrorHandler(e),[e])},Ke=()=>{const e=K();return l.useMemo(()=>_.createAsyncErrorHandler(e),[e])},We=w.TimeSpan.seconds(7),Ze=w.TimeSpan.seconds(1),Xe=({expiration:e=We,poll:n=Ze}={})=>{const s=Be(),[r,d]=l.useState(new Set),[c,u]=l.useState(()=>w.TimeStamp.now());l.useEffect(()=>{const $=setInterval(()=>u(w.TimeStamp.now()),n.milliseconds);return()=>clearInterval($)},[n.milliseconds]);const a=l.useMemo(()=>{const $=c.sub(e),S=s.filter(({key:f,time:i})=>i.afterEq($)&&!r.has(f)).reduce((f,i)=>{const t=`${i.variant}:${i.message}`;if(!f.has(t))return f.set(t,{...i,count:1}),f;const o=f.get(t);return f.set(t,{...o,count:o.count+1,time:i.time.after(o.time)?i.time:o.time}),f},new Map);return Array.from(S.values())},[s,e,r,c]),p=b.useSyncedRef(s),h=l.useCallback($=>{d(g=>{const S=new Set,f=p.current.find(({key:i})=>i===$);return g.has($)||S.add($),f!=null&&p.current.filter(({message:t,variant:o})=>t===f.message&&o===f.variant).forEach(t=>S.add(t.key)),S.size==0?g:new Set([...S,...g])})},[]);return{statuses:a,silence:h}},Ye=k.createComposite(k.Status,{topRight:k.Add}),D=({level:e="p",variant:n,description:s,hideIcon:r=!1,status:d,className:c,children:u,message:a,color:p,...h})=>{let $;if(d!=null){const{key:i,...t}=d;return x.jsxRuntimeExports.jsx(D,{...h,...t})}r||($=n==="loading"?x.jsxRuntimeExports.jsx(k.Loading,{}):x.jsxRuntimeExports.jsx(k.Circle,{}));const g=w.primitive.isNonZero(s);u??=a;const S=x.jsxRuntimeExports.jsxs(b.Text,{className:C.CSS(c,!g&&C.CSS.BE("status","text")),level:e,status:n,...s==null?h:{},children:[$,u]});if(!g)return S;const f=x.jsxRuntimeExports.jsx(b.Text,{level:"small",color:8,children:s});return x.jsxRuntimeExports.jsxs(V.Box$1,{y:!0,align:"start",gap:"small",center:!0,...h,children:[S,f]})},ne=({size:e="medium",ref:n,value:s,onChange:r,className:d,onFocus:c,onKeyDown:u,selectOnFocus:a=!1,centerPlaceholder:p=!1,placeholder:h,variant:$="outlined",level:g,onBlur:S,disabled:f,resetOnBlurIfEmpty:i=!1,status:t,weight:o,style:m,contrast:v,color:R,sharp:j,onlyChangeOnBlur:E=!1,endContent:P,full:T,children:L,grow:q,shrink:I,borderColor:B,borderWidth:pe,bordered:xe,rounded:he,tabIndex:U,trigger:ge,triggerIndicator:$e,textColor:ve,textVariant:Se,preventClick:Re,onClickDelay:Ee,startContent:X,tooltip:be,tooltipDelay:je,tooltipLocation:ye,hideTooltip:Ce,ghost:we,area:Ie,propagateClick:Te,...ke})=>{const Y=l.useRef(s),[N,F]=l.useState(null),J=l.useRef(null),O=l.useRef(!1),qe=y=>{O.current=!1,i&&y.target.value===""?r?.(Y.current):E&&N!=null&&r?.(N),F(null),S?.(y)},Ae=y=>{f||(E?F(y.target.value):r?.(y.target.value))},Pe=y=>{E&&F(s),c?.(y),Y.current=y.target.value},Le=()=>{!a||O.current||(O.current=!0,J.current?.select())},Ne=y=>{E&&y.key==="Enter"?y.currentTarget.blur():y.key==="Escape"&&(y.currentTarget.blur(),y.stopPropagation()),u?.(y)},ze=b.useCombinedRefs(n,J),Me=(s==null||s.length===0)&&N==null&&h!=null&&typeof h!="string";U??=$==="preview"?-1:void 0;const Q={style:m,full:T,grow:q,shrink:I},Ve=L!=null?{}:Q,ee=x.jsxRuntimeExports.jsxs(De.Button,{el:"div",x:!0,empty:!0,align:"center",className:C.CSS(C.CSS.B("input"),C.CSS.disabled(f),t!=null&&C.CSS.M(t),d),size:e,level:g,color:R,contrast:v,sharp:j,status:t,bordered:xe,borderColor:B,borderWidth:pe,pack:!0,variant:$,rounded:he,tabIndex:U,trigger:ge,triggerIndicator:$e,textColor:ve,textVariant:Se,preventClick:Re,onClickDelay:Ee,tooltip:be,tooltipDelay:je,tooltipLocation:ye,hideTooltip:Ce,ghost:we,propagateClick:Te,...Ve,children:[Me&&x.jsxRuntimeExports.jsx(b.Text,{className:C.CSS(C.CSS.visible(!1),C.CSS.BE("input","placeholder"),p&&C.CSS.M("centered")),level:g??z.COMPONENT_SIZE_LEVELS[e],children:h}),X!=null&&x.jsxRuntimeExports.jsx(b.Text,{className:C.CSS.BE("input","start-content"),level:g??z.COMPONENT_SIZE_LEVELS[e],children:X}),x.jsxRuntimeExports.jsx(V.Element,{el:Ie?"textarea":"input",ref:ze,value:N??s,role:"textbox",onChange:Ae,autoCapitalize:"off",autoComplete:"off",autoCorrect:"off",onFocus:Pe,onKeyDown:Ne,tabIndex:U,onMouseUp:Le,onBlur:qe,disabled:f,placeholder:typeof h=="string"?h:void 0,style:{fontWeight:o},...ke}),P!=null&&x.jsxRuntimeExports.jsx(b.Text,{className:C.CSS.BE("input","end-content"),level:g??z.COMPONENT_SIZE_LEVELS[e],children:P})]});return L==null?ee:x.jsxRuntimeExports.jsxs(V.Box$1,{x:!0,pack:!0,className:C.CSS.BE("input","container"),...Q,children:[ee,L]})},ie=["ArrowUp"],oe=["ArrowDown"],ae=["Enter"],Je=[ie,oe,ae],Qe=w.TimeSpan.milliseconds(200).milliseconds,et=w.TimeSpan.milliseconds(100).milliseconds,W=({data:e,initialHover:n=-1,onSelect:s})=>{const r=b.useSyncedRef(e),[d,c,u]=b.useCombinedStateAndRef(n),{visible:a}=re.useContext(),p=b.useSyncedRef(a),{scrollToIndex:h}=A.useScroller(),$=l.useCallback(f=>{const i=u.current,t=z.executeSetter(f,i);c(t),h(t,i>t?"bottom":"top")},[h]);l.useEffect(()=>{u.current>=e.length&&$(0)},[e.length]);const g=l.useRef(null),S=l.useCallback(({triggers:f,stage:i})=>{if(!p.current||(g.current!=null&&(clearInterval(g.current),g.current=null),i!=="start"))return;const t=r.current;if(k.match(f,[ae])){if(u.current===-1)return;s?.(t[u.current]);return}const o=()=>{const m=r.current;k.match(f,[ie],{loose:!0})?$(v=>v<=0?m.length-1:v-1):k.match(f,[oe],{loose:!0})&&$(v=>v>=m.length-1?0:v+1)};o(),g.current=setTimeout(()=>{g.current=setInterval(o,et)},Qe)},[s]);return G.use({triggers:Je,callback:S,loose:!0}),{hover:e[d]}},ue=({allowNone:e=!1,onChange:n,value:s,closeDialogOnSelect:r=!1,initialHover:d,autoSelectOnNone:c=!1})=>{const u=b.useSyncedRef(s),{data:a}=A.useData(),{close:p}=re.useContext(),h=b.useSyncedRef(a);l.useEffect(()=>{const i=s!=null&&a.includes(s);c&&a.length>0&&!i&&n(a[0],{clicked:a[0],clickedIndex:0})},[c,n,s,a.length,a]);const $=l.useCallback(i=>{if(u.current===i){e&&n(null,{clicked:null,clickedIndex:null}),r&&p();return}const t=h.current.findIndex(o=>o===i);n(i,{clicked:i,clickedIndex:t}),r&&p()},[h,n,p]),g=l.useCallback(()=>{e&&n(null,{clicked:null,clickedIndex:null})},[n,e]),S=l.useCallback(i=>n(i[0],{clicked:null,clickedIndex:null}),[n]),f=W({data:a,onSelect:$,initialHover:d});return{onSelect:$,setSelected:S,clear:g,...f}},le=({value:e=[],replaceOnSingle:n=!1,onChange:s,initialHover:r,allowNone:d=!0,closeDialogOnSelect:c=!1,autoSelectOnNone:u=!1})=>{const{data:a}=A.useData(),p=l.useRef(null),h=G.useHeldRef({triggers:[["Shift"]],loose:!0}),$=G.useHeldRef({triggers:[["Control"]],loose:!0}),g=b.useSyncedRef(e),S=b.useSyncedRef(a);l.useEffect(()=>{const m=a.some(v=>e.includes(v));u&&a.length>0&&!m&&s([a[0]],{clicked:a[0],clickedIndex:0})},[u,s,e,a.length,a]);const f=l.useCallback(m=>{const v=p.current,R=S.current;let j=[];const E=w.array.toArray(g.current).filter(T=>T!=null);if($.current.held&&n)E.includes(m)?j=E.filter(T=>T!==m):j=[...E,m];else if(h.current.held&&v!==null){const[T,L]=[R.findIndex(I=>I===m),R.findIndex(I=>I===v)].sort((I,B)=>I-B),q=R.slice(T,L+1).map(I=>I);q.slice(1,q.length-1).every(I=>E.includes(I))&&E.includes(m)?j=E.filter(I=>!q.includes(I)):j=[...E,...q],p.current=null}else p.current=m,n?j=E.includes(m)&&E.length===1?[]:[m]:E.includes(m)?j=E.filter(T=>T!==m):j=[...E,m];const P=w.unique.unique(j);if(P.length===0){if(!d)return;p.current=null}s(P,{clicked:m,clickedIndex:R.findIndex(T=>T===m)}),c&&close()},[g,S,s]),i=l.useCallback(()=>s([],{clicked:null,clickedIndex:0}),[s]),t=l.useCallback(m=>s(m,{clicked:null,clickedIndex:0}),[s]),o=W({data:a,onSelect:f,initialHover:r});return{onSelect:f,setSelected:t,clear:i,...o}},tt=()=>{const e=b.useInitializerRef(()=>new Map),n=l.useCallback(r=>{e.current.forEach((d,c)=>{(d==null||r.includes(d))&&c()})},[]),s=l.useCallback((r,d)=>{if(e.current.has(r)){const c=e.current.get(r);console.warn(`[store] attempted to subscribe listener with key ${c} to key ${d} without being unsubscribed first`)}return e.current.set(r,d),()=>e.current.delete(r)},[]);return{notifyListeners:n,subscribe:s}},[st,rt]=k.create({defaultValue:{clear:()=>{},getState:()=>({value:void 0,hover:void 0}),onSelect:()=>{},setSelected:()=>{},subscribe:()=>()=>{}},displayName:"Select.Context"}),nt=(e,n)=>e==null?!1:Array.isArray(e)?e.includes(n):e===n,it=({children:e,...n})=>{const{value:s}=n,r=le(n);return x.jsxRuntimeExports.jsx(ce,{value:s,...r,children:e})},ot=({children:e,...n})=>{const{value:s}=n,r=ue(n);return x.jsxRuntimeExports.jsx(ce,{value:s,...r,children:e})},ce=({value:e,onSelect:n,clear:s,setSelected:r,children:d,hover:c})=>{const u=l.useRef(w.array.toArray(e)),a=b.useSyncedRef(c),{notifyListeners:p,subscribe:h}=tt(),$=l.useCallback(()=>({value:u.current,hover:a.current}),[]),g=l.useMemo(()=>({onSelect:n,setSelected:r,clear:s,hover:c,subscribe:h,getState:$}),[$,n,r,s,c,h]);return l.useEffect(()=>{const S=u.current,f=w.array.toArray(e),i=[...S,...f];u.current=f,p(i)},[e,p]),x.jsxRuntimeExports.jsx(st,{value:g,children:d})},H=()=>rt(),de=e=>{const{getState:n,onSelect:s,subscribe:r}=H(),d=l.useCallback(()=>s(e),[e,s]),c=l.useSyncExternalStore(l.useCallback(u=>r(u,e),[e,r]),l.useCallback(()=>{const u=n(),a=nt(u.value,e),p=u.hover===e;return a&&p?"selected-hovered":a?"selected":p?"hovered":"none"},[e,n]),l.useCallback(()=>"none",[]));return l.useMemo(()=>({selected:c==="selected"||c==="selected-hovered",hovered:c==="hovered"||c==="selected-hovered",onSelect:d}),[c,d])},at=()=>{const{getState:e,subscribe:n}=H(),s=l.useSyncExternalStore(n,()=>e().value,()=>null);return l.useMemo(()=>s==null?[]:w.array.toArray(s),[s])},ut=()=>H().clear,fe=({data:e,getItem:n,subscribe:s,itemHeight:r,multiple:d,onFetchMore:c,virtual:u=!1,value:a,onChange:p,...h})=>x.jsxRuntimeExports.jsx(A.Frame,{data:e,getItem:n,subscribe:s,onFetchMore:c,itemHeight:r,virtual:u,children:d?x.jsxRuntimeExports.jsx(it,{value:a,onChange:p,...h}):x.jsxRuntimeExports.jsx(ot,{value:a,onChange:p,...h})});fe.displayName="Select.Frame";function lt(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var M={exports:{}},ct=M.exports,se;function dt(){return se||(se=1,(function(e,n){(function(s,r){typeof lt=="function"?e.exports=r():s.pluralize=r()})(ct,function(){var s=[],r=[],d={},c={},u={};function a(t){return typeof t=="string"?new RegExp("^"+t+"$","i"):t}function p(t,o){return t===o?o:t===t.toLowerCase()?o.toLowerCase():t===t.toUpperCase()?o.toUpperCase():t[0]===t[0].toUpperCase()?o.charAt(0).toUpperCase()+o.substr(1).toLowerCase():o.toLowerCase()}function h(t,o){return t.replace(/\$(\d{1,2})/g,function(m,v){return o[v]||""})}function $(t,o){return t.replace(o[0],function(m,v){var R=h(o[1],arguments);return p(m===""?t[v-1]:m,R)})}function g(t,o,m){if(!t.length||d.hasOwnProperty(t))return o;for(var v=m.length;v--;){var R=m[v];if(R[0].test(o))return $(o,R)}return o}function S(t,o,m){return function(v){var R=v.toLowerCase();return o.hasOwnProperty(R)?p(v,R):t.hasOwnProperty(R)?p(v,t[R]):g(R,v,m)}}function f(t,o,m,v){return function(R){var j=R.toLowerCase();return o.hasOwnProperty(j)?!0:t.hasOwnProperty(j)?!1:g(j,j,m)===j}}function i(t,o,m){var v=o===1?i.singular(t):i.plural(t);return(m?o+" ":"")+v}return i.plural=S(u,c,s),i.isPlural=f(u,c,s),i.singular=S(c,u,r),i.isSingular=f(c,u,r),i.addPluralRule=function(t,o){s.push([a(t),o])},i.addSingularRule=function(t,o){r.push([a(t),o])},i.addUncountableRule=function(t){if(typeof t=="string"){d[t.toLowerCase()]=!0;return}i.addPluralRule(t,"$0"),i.addSingularRule(t,"$0")},i.addIrregularRule=function(t,o){o=o.toLowerCase(),t=t.toLowerCase(),u[t]=o,c[o]=t},[["I","we"],["me","us"],["he","they"],["she","they"],["them","them"],["myself","ourselves"],["yourself","yourselves"],["itself","themselves"],["herself","themselves"],["himself","themselves"],["themself","themselves"],["is","are"],["was","were"],["has","have"],["this","these"],["that","those"],["echo","echoes"],["dingo","dingoes"],["volcano","volcanoes"],["tornado","tornadoes"],["torpedo","torpedoes"],["genus","genera"],["viscus","viscera"],["stigma","stigmata"],["stoma","stomata"],["dogma","dogmata"],["lemma","lemmata"],["schema","schemata"],["anathema","anathemata"],["ox","oxen"],["axe","axes"],["die","dice"],["yes","yeses"],["foot","feet"],["eave","eaves"],["goose","geese"],["tooth","teeth"],["quiz","quizzes"],["human","humans"],["proof","proofs"],["carve","carves"],["valve","valves"],["looey","looies"],["thief","thieves"],["groove","grooves"],["pickaxe","pickaxes"],["passerby","passersby"]].forEach(function(t){return i.addIrregularRule(t[0],t[1])}),[[/s?$/i,"s"],[/[^\u0000-\u007F]$/i,"$0"],[/([^aeiou]ese)$/i,"$1"],[/(ax|test)is$/i,"$1es"],[/(alias|[^aou]us|t[lm]as|gas|ris)$/i,"$1es"],[/(e[mn]u)s?$/i,"$1s"],[/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i,"$1"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1i"],[/(alumn|alg|vertebr)(?:a|ae)$/i,"$1ae"],[/(seraph|cherub)(?:im)?$/i,"$1im"],[/(her|at|gr)o$/i,"$1oes"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i,"$1a"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i,"$1a"],[/sis$/i,"ses"],[/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i,"$1$2ves"],[/([^aeiouy]|qu)y$/i,"$1ies"],[/([^ch][ieo][ln])ey$/i,"$1ies"],[/(x|ch|ss|sh|zz)$/i,"$1es"],[/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i,"$1ices"],[/\b((?:tit)?m|l)(?:ice|ouse)$/i,"$1ice"],[/(pe)(?:rson|ople)$/i,"$1ople"],[/(child)(?:ren)?$/i,"$1ren"],[/eaux$/i,"$0"],[/m[ae]n$/i,"men"],["thou","you"]].forEach(function(t){return i.addPluralRule(t[0],t[1])}),[[/s$/i,""],[/(ss)$/i,"$1"],[/(wi|kni|(?:after|half|high|low|mid|non|night|[^\w]|^)li)ves$/i,"$1fe"],[/(ar|(?:wo|[ae])l|[eo][ao])ves$/i,"$1f"],[/ies$/i,"y"],[/\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i,"$1ie"],[/\b(mon|smil)ies$/i,"$1ey"],[/\b((?:tit)?m|l)ice$/i,"$1ouse"],[/(seraph|cherub)im$/i,"$1"],[/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i,"$1"],[/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i,"$1sis"],[/(movie|twelve|abuse|e[mn]u)s$/i,"$1"],[/(test)(?:is|es)$/i,"$1is"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1us"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i,"$1um"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i,"$1on"],[/(alumn|alg|vertebr)ae$/i,"$1a"],[/(cod|mur|sil|vert|ind)ices$/i,"$1ex"],[/(matr|append)ices$/i,"$1ix"],[/(pe)(rson|ople)$/i,"$1rson"],[/(child)ren$/i,"$1"],[/(eau)x?$/i,"$1"],[/men$/i,"man"]].forEach(function(t){return i.addSingularRule(t[0],t[1])}),["adulthood","advice","agenda","aid","aircraft","alcohol","ammo","analytics","anime","athletics","audio","bison","blood","bream","buffalo","butter","carp","cash","chassis","chess","clothing","cod","commerce","cooperation","corps","debris","diabetes","digestion","elk","energy","equipment","excretion","expertise","firmware","flounder","fun","gallows","garbage","graffiti","hardware","headquarters","health","herpes","highjinks","homework","housework","information","jeans","justice","kudos","labour","literature","machinery","mackerel","mail","media","mews","moose","music","mud","manga","news","only","personnel","pike","plankton","pliers","police","pollution","premises","rain","research","rice","salmon","scissors","series","sewage","shambles","shrimp","software","species","staff","swine","tennis","traffic","transportation","trout","tuna","wealth","welfare","whiting","wildebeest","wildlife","you",/pok[eé]mon$/i,/[^aeiou]ese$/i,/deer$/i,/fish$/i,/measles$/i,/o[iu]s$/i,/pox$/i,/sheep$/i].forEach(i.addUncountableRule),i})})(M)),M.exports}var Z=dt();const ft=({searchPlaceholder:e="Search...",onSearch:n,actions:s,dialogVariant:r="floating"})=>{const[d,c]=l.useState(""),u=x.jsxRuntimeExports.jsx(ne,{value:d,autoFocus:!0,placeholder:e,size:r==="modal"?"large":"medium",contrast:3,rounded:!0,grow:!0,full:"x",onChange:a=>{c(a),n?.(a)}});return s==null?u:x.jsxRuntimeExports.jsxs(V.Box$1,{pack:!0,x:!0,children:[u,s]})},mt=({resourceName:e})=>x.jsxRuntimeExports.jsxs(b.Text,{center:!0,status:"disabled",children:["No ",Z.plural(e)," found"]}),me=l.memo(({onSearch:e,children:n,emptyContent:s,status:r,resourceName:d,actions:c,...u})=>(s=l.useMemo(()=>r!=null&&r.variant!=="success"?x.jsxRuntimeExports.jsx(D,{center:!0,variant:r?.variant,description:r?.description,children:r?.message}):typeof s=="string"?x.jsxRuntimeExports.jsx(D,{center:!0,variant:"disabled",children:s}):s??x.jsxRuntimeExports.jsx(mt,{resourceName:d}),[r?.key,s]),x.jsxRuntimeExports.jsxs(_e.Dialog,{...u,className:C.CSS.BE("select","dialog"),bordered:!1,children:[e!=null&&x.jsxRuntimeExports.jsx(ft,{dialogVariant:"floating",onSearch:e,searchPlaceholder:`Search ${Z.plural(d)}...`,actions:c}),x.jsxRuntimeExports.jsx(A.Items,{emptyContent:s,bordered:!0,borderColor:6,grow:!0,rounded:!0,full:"x",children:n})]})));me.displayName="Select.Dialog";const pt=me,xt=e=>{const{itemKey:n}=e,s=de(n);return x.jsxRuntimeExports.jsx(A.Item,{...s,...e})};exports.Aggregator=Oe;exports.CreateIcon=Ye;exports.Dialog=pt;exports.Frame=fe;exports.ListItem=xt;exports.Summary=D;exports.Text=ne;exports.pluralizeExports=Z;exports.useAdder=K;exports.useAsyncErrorHandler=Ke;exports.useClear=ut;exports.useContext=H;exports.useErrorHandler=Ge;exports.useHover=W;exports.useItemState=de;exports.useMultiple=le;exports.useNotifications=Xe;exports.useSelection=at;exports.useSingle=ue;
|
|
1
|
+
"use strict";const x=require("./jsx-runtime-nZSsnGb7.cjs"),l=require("react"),w=require("@synnaxlabs/x"),C=require("./css-CloSmhZB.cjs"),_e=require("./Dialog-DKMROHkj.cjs"),re=require("./Animated-C4AcIYpH.cjs"),De=require("./Copy-6Mur4EW2.cjs"),k=require("./Text-_KoMj9Wf.cjs"),A=require("./Items-806FU8Ig.cjs"),b=require("./Editable-HUPqTaui.cjs"),z=require("./types-DI2vtOGs.cjs"),te=require("./Provider-B1JpVCIg.cjs"),V=require("./Box-CNUz5BsV.cjs"),_=require("./provider-DQkVj3tA.cjs");require("react-dom");const G=require("./hooks-DmaLjPZJ.cjs"),[He,Be]=k.create({defaultValue:[],displayName:"Status.Context"}),[Ue,K]=k.create({defaultValue:()=>{},displayName:"Status.AdderContext"}),Fe=.9,Oe=({children:e,maxHistory:n=500})=>{const[{path:s},{statuses:r},d]=te.use$1({type:_.Aggregator.TYPE,schema:_.aggregatorStateZ,initialState:{statuses:[]}});if(r.length>n){const u=Math.floor(n*Fe);d(a=>({...a,statuses:r.slice(0,u)}))}const c=l.useCallback(u=>{const a={time:w.TimeStamp.now(),key:w.id.create(),...u};d(p=>({...p,statuses:[a,...p.statuses.filter(h=>h.key!=a.key)]}))},[d]);return x.jsxRuntimeExports.jsx(He,{value:r,children:x.jsxRuntimeExports.jsx(Ue,{value:c,children:x.jsxRuntimeExports.jsx(te.Composite,{path:s,children:e})})})},Ge=()=>{const e=K();return l.useMemo(()=>_.createErrorHandler(e),[e])},Ke=()=>{const e=K();return l.useMemo(()=>_.createAsyncErrorHandler(e),[e])},We=w.TimeSpan.seconds(7),Ze=w.TimeSpan.seconds(1),Xe=({expiration:e=We,poll:n=Ze}={})=>{const s=Be(),[r,d]=l.useState(new Set),[c,u]=l.useState(()=>w.TimeStamp.now());l.useEffect(()=>{const $=setInterval(()=>u(w.TimeStamp.now()),n.milliseconds);return()=>clearInterval($)},[n.milliseconds]);const a=l.useMemo(()=>{const $=c.sub(e),S=s.filter(({key:f,time:i})=>i.afterEq($)&&!r.has(f)).reduce((f,i)=>{const t=`${i.variant}:${i.message}`;if(!f.has(t))return f.set(t,{...i,count:1}),f;const o=f.get(t);return f.set(t,{...o,count:o.count+1,time:i.time.after(o.time)?i.time:o.time}),f},new Map);return Array.from(S.values())},[s,e,r,c]),p=b.useSyncedRef(s),h=l.useCallback($=>{d(g=>{const S=new Set,f=p.current.find(({key:i})=>i===$);return g.has($)||S.add($),f!=null&&p.current.filter(({message:t,variant:o})=>t===f.message&&o===f.variant).forEach(t=>S.add(t.key)),S.size==0?g:new Set([...S,...g])})},[]);return{statuses:a,silence:h}},Ye=k.createComposite(k.Status,{topRight:k.Add}),D=({level:e="p",variant:n,description:s,hideIcon:r=!1,status:d,className:c,children:u,message:a,color:p,...h})=>{let $;if(d!=null){const{key:i,...t}=d;return x.jsxRuntimeExports.jsx(D,{...h,...t})}r||($=n==="loading"?x.jsxRuntimeExports.jsx(k.Loading,{}):x.jsxRuntimeExports.jsx(k.Circle,{}));const g=w.primitive.isNonZero(s);u??=a;const S=x.jsxRuntimeExports.jsxs(b.Text,{className:C.CSS(c,!g&&C.CSS.BE("status","text")),level:e,status:n,...s==null?h:{},children:[$,u]});if(!g)return S;const f=x.jsxRuntimeExports.jsx(b.Text,{level:"small",color:8,children:s});return x.jsxRuntimeExports.jsxs(V.Box$1,{y:!0,align:"start",gap:"small",center:!0,...h,children:[S,f]})},ne=({size:e="medium",ref:n,value:s,onChange:r,className:d,onFocus:c,onKeyDown:u,selectOnFocus:a=!1,centerPlaceholder:p=!1,placeholder:h,variant:$="outlined",level:g,onBlur:S,disabled:f,resetOnBlurIfEmpty:i=!1,status:t,weight:o,style:m,contrast:v,color:R,sharp:j,onlyChangeOnBlur:E=!1,endContent:P,full:T,children:L,grow:q,shrink:I,borderColor:B,borderWidth:pe,bordered:xe,rounded:he,tabIndex:U,trigger:ge,triggerIndicator:$e,textColor:ve,textVariant:Se,preventClick:Re,onClickDelay:Ee,startContent:X,tooltip:be,tooltipDelay:je,tooltipLocation:ye,hideTooltip:Ce,ghost:we,area:Ie,propagateClick:Te,...ke})=>{const Y=l.useRef(s),[N,F]=l.useState(null),J=l.useRef(null),O=l.useRef(!1),qe=y=>{O.current=!1,i&&y.target.value===""?r?.(Y.current):E&&N!=null&&r?.(N),F(null),S?.(y)},Ae=y=>{f||(E?F(y.target.value):r?.(y.target.value))},Pe=y=>{E&&F(s),c?.(y),Y.current=y.target.value},Le=()=>{!a||O.current||(O.current=!0,J.current?.select())},Ne=y=>{E&&y.key==="Enter"?y.currentTarget.blur():y.key==="Escape"&&(y.currentTarget.blur(),y.stopPropagation()),u?.(y)},ze=b.useCombinedRefs(n,J),Me=(s==null||s.length===0)&&N==null&&h!=null&&typeof h!="string";U??=$==="preview"?-1:void 0;const Q={style:m,full:T,grow:q,shrink:I},Ve=L!=null?{}:Q,ee=x.jsxRuntimeExports.jsxs(De.Button,{el:"div",x:!0,empty:!0,align:"center",className:C.CSS(C.CSS.B("input"),C.CSS.disabled(f),t!=null&&C.CSS.M(t),d),size:e,level:g,color:R,contrast:v,sharp:j,status:t,bordered:xe,borderColor:B,borderWidth:pe,pack:!0,variant:$,rounded:he,tabIndex:U,trigger:ge,triggerIndicator:$e,textColor:ve,textVariant:Se,preventClick:Re,onClickDelay:Ee,tooltip:be,tooltipDelay:je,tooltipLocation:ye,hideTooltip:Ce,ghost:we,propagateClick:Te,...Ve,children:[Me&&x.jsxRuntimeExports.jsx(b.Text,{className:C.CSS(C.CSS.visible(!1),C.CSS.BE("input","placeholder"),p&&C.CSS.M("centered")),level:g??z.COMPONENT_SIZE_LEVELS[e],children:h}),X!=null&&x.jsxRuntimeExports.jsx(b.Text,{className:C.CSS.BE("input","start-content"),level:g??z.COMPONENT_SIZE_LEVELS[e],children:X}),x.jsxRuntimeExports.jsx(V.Element,{el:Ie?"textarea":"input",ref:ze,value:N??s,role:"textbox",onChange:Ae,autoCapitalize:"off",autoComplete:"off",autoCorrect:"off",onFocus:Pe,onKeyDown:Ne,tabIndex:U,onMouseUp:Le,onBlur:qe,disabled:f,placeholder:typeof h=="string"?h:void 0,style:{fontWeight:o},...ke}),P!=null&&x.jsxRuntimeExports.jsx(b.Text,{className:C.CSS.BE("input","end-content"),level:g??z.COMPONENT_SIZE_LEVELS[e],children:P})]});return L==null?ee:x.jsxRuntimeExports.jsxs(V.Box$1,{x:!0,pack:!0,className:C.CSS.BE("input","container"),...Q,children:[ee,L]})},ie=["ArrowUp"],oe=["ArrowDown"],ae=["Enter"],Je=[ie,oe,ae],Qe=w.TimeSpan.milliseconds(200).milliseconds,et=w.TimeSpan.milliseconds(100).milliseconds,W=({data:e,initialHover:n=-1,onSelect:s})=>{const r=b.useSyncedRef(e),[d,c,u]=b.useCombinedStateAndRef(n),{visible:a}=re.useContext(),p=b.useSyncedRef(a),{scrollToIndex:h}=A.useScroller(),$=l.useCallback(f=>{const i=u.current,t=z.executeSetter(f,i);c(t),h(t,i>t?"bottom":"top")},[h]);l.useEffect(()=>{u.current>=e.length&&$(0)},[e.length]);const g=l.useRef(null),S=l.useCallback(({triggers:f,stage:i})=>{if(!p.current||(g.current!=null&&(clearInterval(g.current),g.current=null),i!=="start"))return;const t=r.current;if(k.match(f,[ae])){if(u.current===-1)return;s?.(t[u.current]);return}const o=()=>{const m=r.current;k.match(f,[ie],{loose:!0})?$(v=>v<=0?m.length-1:v-1):k.match(f,[oe],{loose:!0})&&$(v=>v>=m.length-1?0:v+1)};o(),g.current=setTimeout(()=>{g.current=setInterval(o,et)},Qe)},[s]);return G.use({triggers:Je,callback:S,loose:!0}),{hover:e[d]}},ue=({allowNone:e=!1,onChange:n,value:s,closeDialogOnSelect:r=!1,initialHover:d,autoSelectOnNone:c=!1})=>{const u=b.useSyncedRef(s),{data:a}=A.useData(),{close:p}=re.useContext(),h=b.useSyncedRef(a);l.useEffect(()=>{const i=s!=null&&a.includes(s);c&&a.length>0&&!i&&n(a[0],{clicked:a[0],clickedIndex:0})},[c,n,s,a.length,a]);const $=l.useCallback(i=>{if(u.current===i){e&&n(null,{clicked:null,clickedIndex:null}),r&&p();return}const t=h.current.findIndex(o=>o===i);n(i,{clicked:i,clickedIndex:t}),r&&p()},[h,n,p]),g=l.useCallback(()=>{e&&n(null,{clicked:null,clickedIndex:null})},[n,e]),S=l.useCallback(i=>n(i[0],{clicked:null,clickedIndex:null}),[n]),f=W({data:a,onSelect:$,initialHover:d});return{onSelect:$,setSelected:S,clear:g,...f}},le=({value:e=[],replaceOnSingle:n=!1,onChange:s,initialHover:r,allowNone:d=!0,closeDialogOnSelect:c=!1,autoSelectOnNone:u=!1})=>{const{data:a}=A.useData(),p=l.useRef(null),h=G.useHeldRef({triggers:[["Shift"]],loose:!0}),$=G.useHeldRef({triggers:[["Control"]],loose:!0}),g=b.useSyncedRef(e),S=b.useSyncedRef(a);l.useEffect(()=>{const m=a.some(v=>e.includes(v));u&&a.length>0&&!m&&s([a[0]],{clicked:a[0],clickedIndex:0})},[u,s,e,a.length,a]);const f=l.useCallback(m=>{const v=p.current,R=S.current;let j=[];const E=w.array.toArray(g.current).filter(T=>T!=null);if($.current.held&&n)E.includes(m)?j=E.filter(T=>T!==m):j=[...E,m];else if(h.current.held&&v!==null){const[T,L]=[R.findIndex(I=>I===m),R.findIndex(I=>I===v)].sort((I,B)=>I-B),q=R.slice(T,L+1).map(I=>I);q.slice(1,q.length-1).every(I=>E.includes(I))&&E.includes(m)?j=E.filter(I=>!q.includes(I)):j=[...E,...q],p.current=null}else p.current=m,n?j=E.includes(m)&&E.length===1?[]:[m]:E.includes(m)?j=E.filter(T=>T!==m):j=[...E,m];const P=w.unique.unique(j);if(P.length===0){if(!d)return;p.current=null}s(P,{clicked:m,clickedIndex:R.findIndex(T=>T===m)}),c&&close()},[g,S,s]),i=l.useCallback(()=>s([],{clicked:null,clickedIndex:0}),[s]),t=l.useCallback(m=>s(m,{clicked:null,clickedIndex:0}),[s]),o=W({data:a,onSelect:f,initialHover:r});return{onSelect:f,setSelected:t,clear:i,...o}},tt=()=>{const e=b.useInitializerRef(()=>new Map),n=l.useCallback(r=>{e.current.forEach((d,c)=>{(d==null||r.includes(d))&&c()})},[]),s=l.useCallback((r,d)=>{if(e.current.has(r)){const c=e.current.get(r);console.warn(`[store] attempted to subscribe listener with key ${c} to key ${d} without being unsubscribed first`)}return e.current.set(r,d),()=>e.current.delete(r)},[]);return{notifyListeners:n,subscribe:s}},[st,rt]=k.create({defaultValue:{clear:()=>{},getState:()=>({value:void 0,hover:void 0}),onSelect:()=>{},setSelected:()=>{},subscribe:()=>()=>{}},displayName:"Select.Context"}),nt=(e,n)=>e==null?!1:Array.isArray(e)?e.includes(n):e===n,it=({children:e,...n})=>{const{value:s}=n,r=le(n);return x.jsxRuntimeExports.jsx(ce,{value:s,...r,children:e})},ot=({children:e,...n})=>{const{value:s}=n,r=ue(n);return x.jsxRuntimeExports.jsx(ce,{value:s,...r,children:e})},ce=({value:e,onSelect:n,clear:s,setSelected:r,children:d,hover:c})=>{const u=l.useRef(w.array.toArray(e)),a=b.useSyncedRef(c),{notifyListeners:p,subscribe:h}=tt(),$=l.useCallback(()=>({value:u.current,hover:a.current}),[]),g=l.useMemo(()=>({onSelect:n,setSelected:r,clear:s,hover:c,subscribe:h,getState:$}),[$,n,r,s,c,h]);return l.useEffect(()=>{const S=u.current,f=w.array.toArray(e),i=[...S,...f];u.current=f,p(i)},[e,p]),x.jsxRuntimeExports.jsx(st,{value:g,children:d})},H=()=>rt(),de=e=>{const{getState:n,onSelect:s,subscribe:r}=H(),d=l.useCallback(()=>s(e),[e,s]),c=l.useSyncExternalStore(l.useCallback(u=>r(u,e),[e,r]),l.useCallback(()=>{const u=n(),a=nt(u.value,e),p=u.hover===e;return a&&p?"selected-hovered":a?"selected":p?"hovered":"none"},[e,n]),l.useCallback(()=>"none",[]));return l.useMemo(()=>({selected:c==="selected"||c==="selected-hovered",hovered:c==="hovered"||c==="selected-hovered",onSelect:d}),[c,d])},at=()=>{const{getState:e,subscribe:n}=H(),s=l.useSyncExternalStore(n,()=>e().value,()=>null);return l.useMemo(()=>s==null?[]:w.array.toArray(s),[s])},ut=()=>H().clear,fe=({data:e,getItem:n,subscribe:s,itemHeight:r,multiple:d,onFetchMore:c,virtual:u=!1,value:a,onChange:p,...h})=>x.jsxRuntimeExports.jsx(A.Frame,{data:e,getItem:n,subscribe:s,onFetchMore:c,itemHeight:r,virtual:u,children:d?x.jsxRuntimeExports.jsx(it,{value:a,onChange:p,...h}):x.jsxRuntimeExports.jsx(ot,{value:a,onChange:p,...h})});fe.displayName="Select.Frame";function lt(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var M={exports:{}},ct=M.exports,se;function dt(){return se||(se=1,(function(e,n){(function(s,r){typeof lt=="function"?e.exports=r():s.pluralize=r()})(ct,function(){var s=[],r=[],d={},c={},u={};function a(t){return typeof t=="string"?new RegExp("^"+t+"$","i"):t}function p(t,o){return t===o?o:t===t.toLowerCase()?o.toLowerCase():t===t.toUpperCase()?o.toUpperCase():t[0]===t[0].toUpperCase()?o.charAt(0).toUpperCase()+o.substr(1).toLowerCase():o.toLowerCase()}function h(t,o){return t.replace(/\$(\d{1,2})/g,function(m,v){return o[v]||""})}function $(t,o){return t.replace(o[0],function(m,v){var R=h(o[1],arguments);return p(m===""?t[v-1]:m,R)})}function g(t,o,m){if(!t.length||d.hasOwnProperty(t))return o;for(var v=m.length;v--;){var R=m[v];if(R[0].test(o))return $(o,R)}return o}function S(t,o,m){return function(v){var R=v.toLowerCase();return o.hasOwnProperty(R)?p(v,R):t.hasOwnProperty(R)?p(v,t[R]):g(R,v,m)}}function f(t,o,m,v){return function(R){var j=R.toLowerCase();return o.hasOwnProperty(j)?!0:t.hasOwnProperty(j)?!1:g(j,j,m)===j}}function i(t,o,m){var v=o===1?i.singular(t):i.plural(t);return(m?o+" ":"")+v}return i.plural=S(u,c,s),i.isPlural=f(u,c,s),i.singular=S(c,u,r),i.isSingular=f(c,u,r),i.addPluralRule=function(t,o){s.push([a(t),o])},i.addSingularRule=function(t,o){r.push([a(t),o])},i.addUncountableRule=function(t){if(typeof t=="string"){d[t.toLowerCase()]=!0;return}i.addPluralRule(t,"$0"),i.addSingularRule(t,"$0")},i.addIrregularRule=function(t,o){o=o.toLowerCase(),t=t.toLowerCase(),u[t]=o,c[o]=t},[["I","we"],["me","us"],["he","they"],["she","they"],["them","them"],["myself","ourselves"],["yourself","yourselves"],["itself","themselves"],["herself","themselves"],["himself","themselves"],["themself","themselves"],["is","are"],["was","were"],["has","have"],["this","these"],["that","those"],["echo","echoes"],["dingo","dingoes"],["volcano","volcanoes"],["tornado","tornadoes"],["torpedo","torpedoes"],["genus","genera"],["viscus","viscera"],["stigma","stigmata"],["stoma","stomata"],["dogma","dogmata"],["lemma","lemmata"],["schema","schemata"],["anathema","anathemata"],["ox","oxen"],["axe","axes"],["die","dice"],["yes","yeses"],["foot","feet"],["eave","eaves"],["goose","geese"],["tooth","teeth"],["quiz","quizzes"],["human","humans"],["proof","proofs"],["carve","carves"],["valve","valves"],["looey","looies"],["thief","thieves"],["groove","grooves"],["pickaxe","pickaxes"],["passerby","passersby"]].forEach(function(t){return i.addIrregularRule(t[0],t[1])}),[[/s?$/i,"s"],[/[^\u0000-\u007F]$/i,"$0"],[/([^aeiou]ese)$/i,"$1"],[/(ax|test)is$/i,"$1es"],[/(alias|[^aou]us|t[lm]as|gas|ris)$/i,"$1es"],[/(e[mn]u)s?$/i,"$1s"],[/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i,"$1"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1i"],[/(alumn|alg|vertebr)(?:a|ae)$/i,"$1ae"],[/(seraph|cherub)(?:im)?$/i,"$1im"],[/(her|at|gr)o$/i,"$1oes"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i,"$1a"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i,"$1a"],[/sis$/i,"ses"],[/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i,"$1$2ves"],[/([^aeiouy]|qu)y$/i,"$1ies"],[/([^ch][ieo][ln])ey$/i,"$1ies"],[/(x|ch|ss|sh|zz)$/i,"$1es"],[/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i,"$1ices"],[/\b((?:tit)?m|l)(?:ice|ouse)$/i,"$1ice"],[/(pe)(?:rson|ople)$/i,"$1ople"],[/(child)(?:ren)?$/i,"$1ren"],[/eaux$/i,"$0"],[/m[ae]n$/i,"men"],["thou","you"]].forEach(function(t){return i.addPluralRule(t[0],t[1])}),[[/s$/i,""],[/(ss)$/i,"$1"],[/(wi|kni|(?:after|half|high|low|mid|non|night|[^\w]|^)li)ves$/i,"$1fe"],[/(ar|(?:wo|[ae])l|[eo][ao])ves$/i,"$1f"],[/ies$/i,"y"],[/\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i,"$1ie"],[/\b(mon|smil)ies$/i,"$1ey"],[/\b((?:tit)?m|l)ice$/i,"$1ouse"],[/(seraph|cherub)im$/i,"$1"],[/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i,"$1"],[/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i,"$1sis"],[/(movie|twelve|abuse|e[mn]u)s$/i,"$1"],[/(test)(?:is|es)$/i,"$1is"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1us"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i,"$1um"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i,"$1on"],[/(alumn|alg|vertebr)ae$/i,"$1a"],[/(cod|mur|sil|vert|ind)ices$/i,"$1ex"],[/(matr|append)ices$/i,"$1ix"],[/(pe)(rson|ople)$/i,"$1rson"],[/(child)ren$/i,"$1"],[/(eau)x?$/i,"$1"],[/men$/i,"man"]].forEach(function(t){return i.addSingularRule(t[0],t[1])}),["adulthood","advice","agenda","aid","aircraft","alcohol","ammo","analytics","anime","athletics","audio","bison","blood","bream","buffalo","butter","carp","cash","chassis","chess","clothing","cod","commerce","cooperation","corps","debris","diabetes","digestion","elk","energy","equipment","excretion","expertise","firmware","flounder","fun","gallows","garbage","graffiti","hardware","headquarters","health","herpes","highjinks","homework","housework","information","jeans","justice","kudos","labour","literature","machinery","mackerel","mail","media","mews","moose","music","mud","manga","news","only","personnel","pike","plankton","pliers","police","pollution","premises","rain","research","rice","salmon","scissors","series","sewage","shambles","shrimp","software","species","staff","swine","tennis","traffic","transportation","trout","tuna","wealth","welfare","whiting","wildebeest","wildlife","you",/pok[eé]mon$/i,/[^aeiou]ese$/i,/deer$/i,/fish$/i,/measles$/i,/o[iu]s$/i,/pox$/i,/sheep$/i].forEach(i.addUncountableRule),i})})(M)),M.exports}var Z=dt();const ft=({searchPlaceholder:e="Search...",onSearch:n,actions:s,dialogVariant:r="floating"})=>{const[d,c]=l.useState(""),u=x.jsxRuntimeExports.jsx(ne,{value:d,autoFocus:!0,placeholder:e,size:r==="modal"?"large":"medium",contrast:3,rounded:!0,grow:!0,full:"x",onChange:a=>{c(a),n?.(a)}});return s==null?u:x.jsxRuntimeExports.jsxs(V.Box$1,{pack:!0,x:!0,children:[u,s]})},mt=({resourceName:e})=>x.jsxRuntimeExports.jsxs(b.Text,{center:!0,status:"disabled",children:["No ",Z.plural(e)," found"]}),me=l.memo(({onSearch:e,children:n,emptyContent:s,status:r,resourceName:d,actions:c,...u})=>(s=l.useMemo(()=>r!=null&&r.variant!=="success"?x.jsxRuntimeExports.jsx(D,{center:!0,variant:r?.variant,description:r?.description,children:r?.message}):typeof s=="string"?x.jsxRuntimeExports.jsx(D,{center:!0,variant:"disabled",children:s}):s??x.jsxRuntimeExports.jsx(mt,{resourceName:d}),[r?.key,s]),x.jsxRuntimeExports.jsxs(_e.Dialog,{...u,className:C.CSS.BE("select","dialog"),bordered:!1,children:[e!=null&&x.jsxRuntimeExports.jsx(ft,{dialogVariant:"floating",onSearch:e,searchPlaceholder:`Search ${Z.plural(d)}...`,actions:c}),x.jsxRuntimeExports.jsx(A.Items,{emptyContent:s,bordered:!0,borderColor:6,grow:!0,rounded:!0,full:"x",children:n})]})));me.displayName="Select.Dialog";const pt=me,xt=e=>{const{itemKey:n}=e,s=de(n);return x.jsxRuntimeExports.jsx(A.Item,{...s,...e})};exports.Aggregator=Oe;exports.CreateIcon=Ye;exports.Dialog=pt;exports.Frame=fe;exports.ListItem=xt;exports.Summary=D;exports.Text=ne;exports.pluralizeExports=Z;exports.useAdder=K;exports.useAsyncErrorHandler=Ke;exports.useClear=ut;exports.useContext=H;exports.useErrorHandler=Ge;exports.useHover=W;exports.useItemState=de;exports.useMultiple=le;exports.useNotifications=Xe;exports.useSelection=at;exports.useSingle=ue;
|
|
@@ -2,18 +2,18 @@ import { j as h } from "./jsx-runtime-tc70JA_2.js";
|
|
|
2
2
|
import { useMemo as A, useCallback as R, useState as D, useEffect as N, useRef as L, useSyncExternalStore as oe, memo as _e } from "react";
|
|
3
3
|
import { TimeSpan as U, id as Be, TimeStamp as O, primitive as He, array as F, unique as Me } from "@synnaxlabs/x";
|
|
4
4
|
import { C as w } from "./css-D90kZTM8.js";
|
|
5
|
-
import { D as Ge } from "./Dialog-
|
|
6
|
-
import { u as ie } from "./Animated-
|
|
7
|
-
import { B as Ke } from "./Copy-
|
|
8
|
-
import { c as Z, I as Oe, z as We, S as Ze, L as Xe, E as Ye, q as G } from "./Text-
|
|
9
|
-
import { d as Je, u as ae, F as Qe, a as et, I as tt } from "./Items-
|
|
10
|
-
import {
|
|
5
|
+
import { D as Ge } from "./Dialog-dxzsEWgY.js";
|
|
6
|
+
import { u as ie } from "./Animated-BU-7FzeV.js";
|
|
7
|
+
import { B as Ke } from "./Copy-eucLPEWo.js";
|
|
8
|
+
import { c as Z, I as Oe, z as We, S as Ze, L as Xe, E as Ye, q as G } from "./Text-BIGgPTpY.js";
|
|
9
|
+
import { d as Je, u as ae, F as Qe, a as et, I as tt } from "./Items-CPIJP3y9.js";
|
|
10
|
+
import { d as T, T as C, b as rt, f as st, c as nt } from "./Editable-C17ILP50.js";
|
|
11
11
|
import { C as K, e as ot } from "./types-CGRCBVD4.js";
|
|
12
|
-
import { c as it, C as at } from "./Provider-
|
|
12
|
+
import { c as it, C as at } from "./Provider-CfgP1iWx.js";
|
|
13
13
|
import { a as X, E as lt } from "./Box-Bi280MYh.js";
|
|
14
14
|
import { j as ct, k as ut, A as dt, l as ft } from "./provider-Bt-E2O6g.js";
|
|
15
15
|
import "react-dom";
|
|
16
|
-
import { u as mt, b as se } from "./hooks-
|
|
16
|
+
import { u as mt, b as se } from "./hooks-DPk_YYCv.js";
|
|
17
17
|
const [ht, pt] = Z({
|
|
18
18
|
defaultValue: [],
|
|
19
19
|
displayName: "Status.Context"
|