adminizer 4.1.1 → 4.2.0-build.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/assets/add-DujD3Z0j.js +1 -0
  2. package/assets/add-form-Ch5HOaI3.js +1 -0
  3. package/assets/add-group-form-CzjFRYQe.js +1 -0
  4. package/assets/add-group-xKUhiREd.js +1 -0
  5. package/assets/add-user-DpTQyN0Z.js +1 -0
  6. package/assets/add-user-form-DmgL9A2G.js +1 -0
  7. package/assets/app-layout-Dn8y3paC.js +1 -0
  8. package/assets/app-shell-C1wDrRCe.js +1 -0
  9. package/assets/app-sidebar-BisOEG_p.js +1 -0
  10. package/assets/app-sidebar-header-CL1OSuV8.js +11 -0
  11. package/assets/app.js +162 -40
  12. package/assets/breadcrumbs-BVZtAG3J.js +1 -0
  13. package/assets/catalog-CvJMAtEd.js +16 -0
  14. package/assets/{chevrons-up-down-kALltqHV.js → chevrons-up-down-D3t3UGV7.js} +2 -2
  15. package/assets/dashboard-Zsh-5yN2.js +3 -0
  16. package/assets/date-picker-DKdT6XTZ.js +6 -0
  17. package/assets/del-modal-DZ5wZWad.js +11 -0
  18. package/assets/{field-renderer-B6hFAeiU.js → field-renderer-Dgj1S2Vi.js} +137 -137
  19. package/assets/form-Bgv171J2.js +1 -0
  20. package/assets/form-DcfEHbPb.js +1 -0
  21. package/assets/{geo-json-BKmYmu3d.js → geo-json-vodY1YtH.js} +5 -5
  22. package/assets/{handsontable-B8xVeMAQ.js → handsontable-C-ThjbaJ.js} +1 -1
  23. package/assets/home-DOm3EaLO.js +2 -0
  24. package/assets/icon-B-D8X0jg.js +1 -0
  25. package/assets/init-user-iMMcIQIW.js +1 -0
  26. package/assets/input-error-F1DL-Fx6.js +1 -0
  27. package/assets/list-B-vY1rhM.js +1 -0
  28. package/assets/list-table-8sDi0ZKa.js +52 -0
  29. package/assets/{check-LAUWAnlX.js → loader-circle-Btx4NYNU.js} +2 -2
  30. package/assets/{login-DliJrjMQ.js → login-C2J62v4_.js} +2 -2
  31. package/assets/manifest.json +135 -805
  32. package/assets/material-icon-DeSoGIhT.js +1 -0
  33. package/assets/module-I4hW5UqT.js +1 -0
  34. package/assets/{move-left-BhKZRPb4.js → move-left-DWHsVHUF.js} +1 -1
  35. package/assets/multi-select-Bu3n-kcV.js +11 -0
  36. package/assets/nav-footer-DQwIyd7c.js +1 -0
  37. package/assets/nav-main-DDQ-_Oed.js +1 -0
  38. package/assets/nav-user-BwBu-VwZ.js +1 -0
  39. package/assets/pagination-render-BoDDo2E1.js +1 -0
  40. package/assets/register-aPC0gjjS.js +1 -0
  41. package/assets/{trash-2-BoK5Xp2F.js → trash-2-CsxWwHNc.js} +2 -2
  42. package/assets/user-info-CnB2lvpg.js +1 -0
  43. package/assets/user-menu-content-BFbaJw6v.js +6 -0
  44. package/assets/welcome-DB_D6KJV.js +1 -0
  45. package/package.json +9 -3
  46. package/ui/components/ui/avatar.d.ts +6 -0
  47. package/ui/components/ui/avatar.js +13 -0
  48. package/ui/components/ui/badge.d.ts +9 -0
  49. package/ui/components/ui/badge.js +22 -0
  50. package/ui/components/ui/breadcrumb.d.ts +11 -0
  51. package/ui/components/ui/breadcrumb.js +27 -0
  52. package/ui/components/ui/button.d.ts +10 -0
  53. package/ui/components/ui/button.js +33 -0
  54. package/ui/components/ui/calendar.d.ts +4 -0
  55. package/ui/components/ui/calendar.js +38 -0
  56. package/ui/components/ui/card.d.ts +9 -0
  57. package/ui/components/ui/card.js +24 -0
  58. package/ui/components/ui/checkbox.d.ts +4 -0
  59. package/ui/components/ui/checkbox.js +8 -0
  60. package/ui/components/ui/collapsible.d.ts +5 -0
  61. package/ui/components/ui/collapsible.js +12 -0
  62. package/ui/components/ui/command.d.ts +16 -0
  63. package/ui/components/ui/command.js +33 -0
  64. package/ui/components/ui/context-menu.d.ts +25 -0
  65. package/ui/components/ui/context-menu.js +50 -0
  66. package/ui/components/ui/dialog-stack.d.ts +43 -0
  67. package/ui/components/ui/dialog-stack.js +238 -0
  68. package/ui/components/ui/dialog.d.ts +13 -0
  69. package/ui/components/ui/dialog.js +35 -0
  70. package/ui/components/ui/dropdown-menu.d.ts +25 -0
  71. package/ui/components/ui/dropdown-menu.js +50 -0
  72. package/ui/components/ui/input.d.ts +3 -0
  73. package/ui/components/ui/input.js +6 -0
  74. package/ui/components/ui/label.d.ts +4 -0
  75. package/ui/components/ui/label.js +7 -0
  76. package/ui/components/ui/menubar.d.ts +26 -0
  77. package/ui/components/ui/menubar.js +53 -0
  78. package/ui/components/ui/pagination.d.ts +13 -0
  79. package/ui/components/ui/pagination.js +29 -0
  80. package/ui/components/ui/popover.d.ts +7 -0
  81. package/ui/components/ui/popover.js +16 -0
  82. package/ui/components/ui/select.d.ts +15 -0
  83. package/ui/components/ui/select.js +37 -0
  84. package/ui/components/ui/separator.d.ts +4 -0
  85. package/ui/components/ui/separator.js +8 -0
  86. package/ui/components/ui/sheet.d.ts +13 -0
  87. package/ui/components/ui/sheet.js +39 -0
  88. package/ui/components/ui/sidebar.d.ts +69 -0
  89. package/ui/components/ui/sidebar.js +211 -0
  90. package/ui/components/ui/skeleton.d.ts +2 -0
  91. package/ui/components/ui/skeleton.js +6 -0
  92. package/ui/components/ui/slider.d.ts +4 -0
  93. package/ui/components/ui/slider.js +13 -0
  94. package/ui/components/ui/sonner.d.ts +3 -0
  95. package/ui/components/ui/sonner.js +12 -0
  96. package/ui/components/ui/switch.d.ts +4 -0
  97. package/ui/components/ui/switch.js +7 -0
  98. package/ui/components/ui/table.d.ts +10 -0
  99. package/ui/components/ui/table.js +27 -0
  100. package/ui/components/ui/textarea.d.ts +3 -0
  101. package/ui/components/ui/textarea.js +6 -0
  102. package/ui/components/ui/tooltip.d.ts +7 -0
  103. package/ui/components/ui/tooltip.js +17 -0
  104. package/ui/hooks/use-mobile.d.ts +1 -0
  105. package/ui/hooks/use-mobile.js +15 -0
  106. package/ui/lib/utils.d.ts +2 -0
  107. package/ui/lib/utils.js +5 -0
  108. package/assets/add-CJ1-zeA1.js +0 -1
  109. package/assets/add-form-CbNl0wdS.js +0 -1
  110. package/assets/add-group-form-Bt_Dx9wm.js +0 -1
  111. package/assets/add-group-pIFJV5qL.js +0 -1
  112. package/assets/add-user-D2US8hL_.js +0 -1
  113. package/assets/add-user-form-Bt8Jy6S2.js +0 -1
  114. package/assets/app-layout-B86jl9bH.js +0 -1
  115. package/assets/app-shell-CiGyzQ0C.js +0 -1
  116. package/assets/app-sidebar-Bz-SRwBg.js +0 -1
  117. package/assets/app-sidebar-header-7CNCx7Rs.js +0 -11
  118. package/assets/breadcrumbs-_jhtTcOi.js +0 -1
  119. package/assets/catalog-CON6moaA.js +0 -16
  120. package/assets/checkbox-CQdZw5mb.js +0 -1
  121. package/assets/chevron-down-B5XuAFRu.js +0 -6
  122. package/assets/chevron-left-CoMhTMUD.js +0 -6
  123. package/assets/chevron-right-D5q8rF7h.js +0 -6
  124. package/assets/createLucideIcon-BFG25zNo.js +0 -21
  125. package/assets/dashboard-es9ZT8qk.js +0 -3
  126. package/assets/date-picker-Dz-d-YWX.js +0 -6
  127. package/assets/del-modal-D0mrZvki.js +0 -11
  128. package/assets/dialog-stack-BiMbfm58.js +0 -1
  129. package/assets/dropdown-menu-BSBcRiXx.js +0 -1
  130. package/assets/form-Buslty7y.js +0 -1
  131. package/assets/form-aqiRmPix.js +0 -1
  132. package/assets/home-Dr72Jk-w.js +0 -2
  133. package/assets/icon-B-a7xg54.js +0 -1
  134. package/assets/index-B68_akQe.js +0 -1
  135. package/assets/index-B7-xTDyy.js +0 -1
  136. package/assets/index-BJFFlCSo.js +0 -1
  137. package/assets/index-BOuMo_nl.js +0 -10
  138. package/assets/index-BzOcGsBq.js +0 -1
  139. package/assets/index-CFbQ2Rv0.js +0 -1
  140. package/assets/index-Cq31rrfZ.js +0 -1
  141. package/assets/index-D5UDXTFs.js +0 -1
  142. package/assets/index-DwctwfU0.js +0 -1
  143. package/assets/index-oxIQWAdI.js +0 -41
  144. package/assets/init-user-5H689LP0.js +0 -1
  145. package/assets/input-CSJjrf2i.js +0 -1
  146. package/assets/input-error-CK92Shhm.js +0 -1
  147. package/assets/label-Muj0-Efy.js +0 -1
  148. package/assets/list-Cvh7zbyG.js +0 -1
  149. package/assets/list-table-Bs_vbQiV.js +0 -52
  150. package/assets/loader-circle-Utah5tGx.js +0 -6
  151. package/assets/material-icon-BRS58Qpk.js +0 -1
  152. package/assets/module-CjG21VCT.js +0 -1
  153. package/assets/multi-select-CMQIJ0JT.js +0 -11
  154. package/assets/nav-footer-IGMn9NiE.js +0 -1
  155. package/assets/nav-main-DBE4rMiZ.js +0 -1
  156. package/assets/nav-user-CjyLRyq-.js +0 -1
  157. package/assets/pagination-render-DUAq2klc.js +0 -1
  158. package/assets/popover-C_cww-4_.js +0 -1
  159. package/assets/register-UzQn3J0g.js +0 -1
  160. package/assets/search-BspystAk.js +0 -6
  161. package/assets/select-DzBno-dc.js +0 -6
  162. package/assets/sidebar-Dc4iqfu-.js +0 -6
  163. package/assets/skeleton-Dkmj2o2Z.js +0 -1
  164. package/assets/sonner-De1t71Gj.js +0 -1
  165. package/assets/tooltip-CwPrC-HD.js +0 -1
  166. package/assets/user-info-8RyDk7qh.js +0 -9
  167. package/assets/user-menu-content-CpxTLH56.js +0 -6
  168. package/assets/welcome-BYKI6yO-.js +0 -1
@@ -0,0 +1 @@
1
+ import{c as i,aw as l,j as o}from"./app.js";function m(c){const e=i.c(5),{name:a,className:n}=c;let s;e[0]!==n?(s=l("material-icons-outlined",n),e[0]=n,e[1]=s):s=e[1];let t;return e[2]!==a||e[3]!==s?(t=o.jsx("span",{className:s,children:a}),e[2]=a,e[3]=s,e[4]=t):t=e[4],t}export{m as default};
@@ -0,0 +1 @@
1
+ import{q as a,r,j as t}from"./app.js";import{A as p}from"./app-layout-Dn8y3paC.js";import{L as c}from"./loader-circle-Btx4NYNU.js";import"./app-shell-C1wDrRCe.js";import"./app-sidebar-BisOEG_p.js";import"./nav-main-DDQ-_Oed.js";import"./material-icon-DeSoGIhT.js";import"./chevrons-up-down-D3t3UGV7.js";import"./app-sidebar-header-CL1OSuV8.js";import"./breadcrumbs-BVZtAG3J.js";import"./nav-user-BwBu-VwZ.js";import"./user-info-CnB2lvpg.js";import"./user-menu-content-BFbaJw6v.js";import"./icon-B-D8X0jg.js";import"./use-appearance-J8J2w43p.js";const d=[];function q(){const s=a(),[n,m]=r.useState(null);return r.useEffect(()=>{const l=async()=>{const e=(await import(s.props.moduleComponent)).default;m(t.jsx(e,{message:s.props.message}))};(()=>{const o=s.props.moduleComponentCSS;if(!o||[...document.head.querySelectorAll("link[rel='stylesheet']")].some(i=>i.href.includes(o)))return;const e=document.createElement("link");e.rel="stylesheet",e.href=o,e.type="text/css",e.onload=()=>console.log(`CSS loaded: ${o}`),e.onerror=()=>console.error(`Failed to load CSS: ${o}`),document.head.appendChild(e)})(),l()},[]),t.jsx(p,{breadcrumbs:d,children:t.jsxs("div",{className:"m-5",children:[t.jsx("div",{className:"mb-5",children:t.jsx("h1",{children:s.props.title})}),n||t.jsx(c,{className:"size-10 animate-spin text-neutral-500 mx-auto mt-[15%]"})]})})}export{q as default};
@@ -1,4 +1,4 @@
1
- import{c as e}from"./createLucideIcon-BFG25zNo.js";/**
1
+ import{a as e}from"./app.js";/**
2
2
  * @license lucide-react v0.485.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -0,0 +1,11 @@
1
+ import{a as de,r as U,c as he,aw as L,j as t,aR as pe,aS as xe,aT as ge,aU as oe,ay as ve,B as ye,aV as be,aW as je,aX as we,a1 as Ne,aY as Ce,aZ as ke,a_ as Se,aA as Pe,a$ as Ve,aB as Me}from"./app.js";/**
2
+ * @license lucide-react v0.485.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const Ee=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],ie=de("circle-x",Ee);/**
7
+ * @license lucide-react v0.485.0 - ISC
8
+ *
9
+ * This source code is licensed under the ISC license.
10
+ * See the LICENSE file in the root directory of this source tree.
11
+ */const Ie=[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]],De=de("wand-sparkles",Ie),ce=pe("m-1 flex items-center border rounded-sm px-1",{variants:{variant:{default:"border-foreground/10 text-foreground bg-card hover:bg-card/80",secondary:"border-foreground/10 bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",inverted:"inverted"}},defaultVariants:{variant:"default"}}),_e=U.forwardRef((M,Y)=>{const e=he.c(87);let h,p,r,o,x,g,m,E,I,D,_,$,O,Z,z,u;e[0]!==M?({options:o,onValueChange:r,variant:u,processing:x,disabled:p,defaultValue:m,placeholder:E,notFound:I,search:D,animation:_,maxCount:$,modalPopover:O,asChild:Z,className:h,mode:z,...g}=M,e[0]=M,e[1]=h,e[2]=p,e[3]=r,e[4]=o,e[5]=x,e[6]=g,e[7]=m,e[8]=E,e[9]=I,e[10]=D,e[11]=_,e[12]=$,e[13]=O,e[14]=Z,e[15]=z,e[16]=u):(h=e[1],p=e[2],r=e[3],o=e[4],x=e[5],g=e[6],m=e[7],E=e[8],I=e[9],D=e[10],_=e[11],$=e[12],O=e[13],Z=e[14],z=e[15],u=e[16]);let R;e[17]!==m?(R=m===void 0?[]:m,e[17]=m,e[18]=R):R=e[18];const me=R,J=E===void 0?"":E,Q=I===void 0?"":I,ee=D===void 0?"":D,f=_===void 0?0:_,i=$===void 0?3:$,te=O===void 0?!1:O,n=z===void 0?"multiple":z,[s,T]=U.useState(me),[se,B]=U.useState(!1),[c,ue]=U.useState(!1);let A;e[19]!==r||e[20]!==s?(A=a=>{if(a.key==="Enter")B(!0);else if(a.key==="Backspace"&&!a.currentTarget.value){const l=[...s];l.pop(),T(l),r(l)}},e[19]=r,e[20]=s,e[21]=A):A=e[21];const ae=A;let F;e[22]!==n||e[23]!==r||e[24]!==s?(F=a=>{let l;n==="single"?l=s.includes(a)?[]:[a]:l=s.includes(a)?s.filter(V=>V!==a):[...s,a],T(l),r(l),n==="single"&&B(!1)},e[22]=n,e[23]=r,e[24]=s,e[25]=F):F=e[25];const d=F;let K;e[26]!==r?(K=()=>{T([]),r([])},e[26]=r,e[27]=K):K=e[27];const le=K;let X;e[28]===Symbol.for("react.memo_cache_sentinel")?(X=()=>{B($e)},e[28]=X):X=e[28];const fe=X;let q;e[29]!==i||e[30]!==r||e[31]!==s?(q=()=>{const a=s.slice(0,i);T(a),r(a)},e[29]=i,e[30]=r,e[31]=s,e[32]=q):q=e[32];const re=q;let v;e[33]!==h?(v=L("flex w-full p-1 rounded-md border-input border-1 min-h-10 h-auto items-center justify-between bg-inherit hover:bg-inherit [&_svg]:pointer-events-auto",h),e[33]=h,e[34]=v):v=e[34];let y;e[35]!==f||e[36]!==re||e[37]!==le||e[38]!==c||e[39]!==i||e[40]!==n||e[41]!==o||e[42]!==J||e[43]!==x||e[44]!==s||e[45]!==d||e[46]!==u?(y=s.length>0?t.jsxs("div",{className:"flex justify-between items-center w-full",children:[t.jsxs("div",{className:"flex flex-wrap items-center",children:[s.slice(0,i).map(a=>{const l=o.find(ne=>ne.value===a),V=l==null?void 0:l.icon;return t.jsxs("div",{className:L(c?"animate-bounce":"",ce({variant:u})),style:{animationDuration:`${f}s`},children:[V&&t.jsx(V,{className:"h-4 w-4 mr-2"}),l==null?void 0:l.label,t.jsx(ie,{className:"ml-2 h-4 w-4 cursor-pointer",onClick:ne=>{ne.stopPropagation(),x||d(a)}})]},a)}),n==="multiple"&&s.length>i&&t.jsxs("div",{className:L("bg-transparent text-foreground border-foreground/1 hover:bg-transparent",c?"animate-bounce":"",ce({variant:u})),style:{animationDuration:`${f}s`},children:[`+ ${s.length-i} more`,t.jsx(ie,{className:"ml-2 h-4 w-4 cursor-pointer",onClick:a=>{a.stopPropagation(),re()}})]})]}),t.jsxs("div",{className:"flex items-center justify-between",children:[s.length>0&&t.jsxs(t.Fragment,{children:[t.jsx(xe,{className:"h-4 mx-2 cursor-pointer text-muted-foreground",onClick:a=>{a.stopPropagation(),le()}}),t.jsx(ge,{orientation:"vertical",className:"flex min-h-6 h-full"})]}),t.jsx(oe,{className:"h-4 mx-2 cursor-pointer text-muted-foreground"})]})]}):t.jsxs("div",{className:"flex items-center justify-between w-full mx-auto",children:[t.jsx("span",{className:"text-sm text-muted-foreground mx-3",children:J}),t.jsx(oe,{className:"h-4 cursor-pointer text-muted-foreground mx-2"})]}),e[35]=f,e[36]=re,e[37]=le,e[38]=c,e[39]=i,e[40]=n,e[41]=o,e[42]=J,e[43]=x,e[44]=s,e[45]=d,e[46]=u,e[47]=y):y=e[47];let b;e[48]!==p||e[49]!==g||e[50]!==Y||e[51]!==v||e[52]!==y?(b=t.jsx(ve,{asChild:!0,children:t.jsx(ye,{ref:Y,...g,onClick:fe,disabled:p,className:v,children:y})}),e[48]=p,e[49]=g,e[50]=Y,e[51]=v,e[52]=y,e[53]=b):b=e[53];let H;e[54]===Symbol.for("react.memo_cache_sentinel")?(H=()=>B(!1),e[54]=H):H=e[54];let j;e[55]!==ae||e[56]!==ee?(j=t.jsx(be,{placeholder:ee,onKeyDown:ae}),e[55]=ae,e[56]=ee,e[57]=j):j=e[57];let w;e[58]!==Q?(w=t.jsx(je,{children:Q}),e[58]=Q,e[59]=w):w=e[59];let N;if(e[60]!==o||e[61]!==s||e[62]!==d){let a;e[64]!==s||e[65]!==d?(a=l=>{const V=s.includes(l.value);return t.jsxs(we,{onSelect:()=>d(l.value),className:"cursor-pointer",children:[t.jsx("div",{className:L("mr-2 flex h-5 w-5 items-center justify-center rounded border border-primary",V?"bg-primary text-primary-foreground":"opacity-50 [&_svg]:invisible"),children:t.jsx(Ne,{className:"h-4 w-4 text-primary-foreground"})}),l.icon&&t.jsx(l.icon,{className:"mr-2 h-4 w-4 text-muted-foreground"}),t.jsx("span",{children:l.label})]},l.value)},e[64]=s,e[65]=d,e[66]=a):a=e[66],N=o.map(a),e[60]=o,e[61]=s,e[62]=d,e[63]=N}else N=e[63];let C;e[67]!==N?(C=t.jsx(Ce,{children:N}),e[67]=N,e[68]=C):C=e[68];let W;e[69]===Symbol.for("react.memo_cache_sentinel")?(W=t.jsx(ke,{}),e[69]=W):W=e[69];let k;e[70]!==w||e[71]!==C?(k=t.jsxs(Se,{children:[w,C,W]}),e[70]=w,e[71]=C,e[72]=k):k=e[72];let S;e[73]!==j||e[74]!==k?(S=t.jsx(Pe,{className:"w-auto p-0 z-[410]",align:"start",onEscapeKeyDown:H,children:t.jsxs(Ve,{children:[j,k]})}),e[73]=j,e[74]=k,e[75]=S):S=e[75];let P;e[76]!==f||e[77]!==c||e[78]!==n||e[79]!==s.length?(P=f>0&&s.length>0&&n==="multiple"&&t.jsx(De,{className:L("cursor-pointer my-2 text-foreground bg-background w-3 h-3",c?"":"text-muted-foreground"),onClick:()=>ue(!c)}),e[76]=f,e[77]=c,e[78]=n,e[79]=s.length,e[80]=P):P=e[80];let G;return e[81]!==se||e[82]!==te||e[83]!==b||e[84]!==S||e[85]!==P?(G=t.jsxs(Me,{open:se,onOpenChange:B,modal:te,children:[b,S,P]}),e[81]=se,e[82]=te,e[83]=b,e[84]=S,e[85]=P,e[86]=G):G=e[86],G});_e.displayName="MultiSelect";function $e(M){return!M}export{_e as default};
@@ -0,0 +1 @@
1
+ import{c as u,j as t,an as d,a9 as p,ah as x,aH as h,a8 as f}from"./app.js";import{Icon as m}from"./icon-B-D8X0jg.js";function S(r){const e=u.c(12);let o,a,n;e[0]!==r?({items:a,className:o,...n}=r,e[0]=r,e[1]=o,e[2]=a,e[3]=n):(o=e[1],a=e[2],n=e[3]);const c=`group-data-[collapsible=icon]:p-0 ${o||""}`;let s;e[4]!==a?(s=a.map(j),e[4]=a,e[5]=s):s=e[5];let l;e[6]!==s?(l=t.jsx(h,{children:t.jsx(f,{children:s})}),e[6]=s,e[7]=l):l=e[7];let i;return e[8]!==n||e[9]!==c||e[10]!==l?(i=t.jsx(d,{...n,className:c,children:l}),e[8]=n,e[9]=c,e[10]=l,e[11]=i):i=e[11],i}function j(r){return t.jsx(p,{children:t.jsx(x,{asChild:!0,className:"text-neutral-600 hover:text-neutral-800 dark:text-neutral-300 dark:hover:text-neutral-100",children:t.jsxs("a",{href:r.href,target:"_blank",rel:"noopener noreferrer",children:[r.icon&&t.jsx(m,{iconNode:r.icon,className:"h-5 w-5"}),t.jsx("span",{children:r.title})]})})},r.title)}export{S as NavFooter};
@@ -0,0 +1 @@
1
+ import{c as E,q as G,r as w,j as e,aE as _,a9 as C,ag as $,ah as N,C as M,aF as A,a6 as O,ai as R,aj as z,X as v,an as B,aG as F,aH as L,a8 as P}from"./app.js";import m from"./material-icon-DeSoGIhT.js";function J(a){const t=E.c(15),{items:l}=a;let f;t[0]!==l?(f=l===void 0?[]:l,t[0]=l,t[1]=f):f=t[1];const p=f,h=G();let S;t[2]!==p?(S=()=>{const u={};return p.forEach(o=>{const c=o.section||"Platform";c in u||(u[c]=!0)}),u},t[2]=p,t[3]=S):S=t[3];const[d,y]=w.useState(S),g=U;let x;if(t[4]!==p||t[5]!==d||t[6]!==h){const u=p.reduce(Q,{});let o;if(t[8]!==h){o=r=>{var s,k;const{item:n}=r;return((s=n.actions)==null?void 0:s.length)>0?e.jsx(_,{asChild:!0,defaultOpen:j(n.link),className:"group/collapsible",children:e.jsxs(C,{children:[e.jsx($,{asChild:!0,children:e.jsxs(N,{tooltip:n.title,children:[e.jsx(m,{name:n.icon,className:"!text-[18px]"}),e.jsx("span",{className:"overflow-hidden text-ellipsis whitespace-nowrap",children:n.title}),e.jsx(M,{className:"ml-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90"})]})}),e.jsx(A,{children:e.jsx(O,{children:(k=n.actions)==null?void 0:k.map(i=>e.jsx(R,{children:e.jsx(z,{asChild:!0,isActive:j(i.link),children:i.type==="blank"?e.jsxs("a",{href:i.link,target:"_blank",rel:"noopener noreferrer",children:[i.icon&&e.jsx(m,{name:i.icon,className:"!text-[18px]"}),e.jsx("span",{children:i.title})]}):e.jsxs(v,{href:i.link,children:[i.icon&&e.jsx(m,{name:i.icon,className:"!text-[18px]"}),e.jsx("span",{children:i.title})]})})},i.id))})})]})},n.title):e.jsx(C,{children:e.jsx(N,{asChild:!0,isActive:j(n.link),tooltip:{children:n.title},children:n.type==="blank"?e.jsxs("a",{href:n.link,target:"_blank",rel:"noopener noreferrer",children:[n.icon&&e.jsx(m,{name:n.icon,className:"!text-[18px]"}),e.jsx("span",{children:n.title})]}):e.jsxs(v,{href:n.link,children:[n.icon&&e.jsx(m,{name:n.icon,className:"!text-[18px]"}),e.jsx("span",{children:n.title})]})})},n.title)};const j=r=>{const n=g(h.url),s=g(r);return n===s||n.startsWith(`${s}/`)};t[8]=h,t[9]=o}else o=t[9];let c;t[10]!==o||t[11]!==d?(c=j=>{const[r,n]=j;return e.jsxs(B,{className:"px-2 py-0",children:[e.jsx(F,{asChild:!0,className:"cursor-pointer",onClick:()=>y(s=>({...s,[r]:!s[r]})),children:e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(M,{className:`transform transition-transform duration-200 ${d[r]?"rotate-90":""}`}),e.jsx("span",{children:r})]})}),d[r]&&e.jsx(L,{children:e.jsx(P,{children:n.map(s=>e.jsx(o,{item:s},s.id||s.title))})})]},r)},t[10]=o,t[11]=d,t[12]=c):c=t[12],x=Object.entries(u).map(c),t[4]=p,t[5]=d,t[6]=h,t[7]=x}else x=t[7];let b;return t[13]!==x?(b=e.jsx(e.Fragment,{children:x}),t[13]=x,t[14]=b):b=t[14],b}function Q(a,t){const l=t.section||"Platform";return a[l]||(a[l]=[]),a[l].push(t),a}function U(a){return a.split("?")[0].replace(/\/$/,"")}export{J as NavMain};
@@ -0,0 +1 @@
1
+ import{c as f,q as x,aI as b,aJ as g,j as s,s as h,ah as j,u as M,a8 as w,a9 as C,aK as S}from"./app.js";import{UserInfo as D}from"./user-info-CnB2lvpg.js";import{UserMenuContent as I}from"./user-menu-content-BFbaJw6v.js";import{C as N}from"./chevrons-up-down-D3t3UGV7.js";function E(){const e=f.c(15),{auth:t,logout:u,logoutBtn:c}=x().props,{state:m}=b(),p=g();let r;e[0]!==t.user?(r=s.jsx(D,{user:t.user}),e[0]=t.user,e[1]=r):r=e[1];let i;e[2]===Symbol.for("react.memo_cache_sentinel")?(i=s.jsx(N,{className:"ml-auto size-4"}),e[2]=i):i=e[2];let o;e[3]!==r?(o=s.jsx(h,{asChild:!0,children:s.jsxs(j,{size:"lg",className:"text-sidebar-accent-foreground data-[state=open]:bg-sidebar-accent group focus-visible:ring-0 cursor-pointer",children:[r,i]})}),e[3]=r,e[4]=o):o=e[4];const d=p?"bottom":m==="collapsed"?"left":"bottom";let n;e[5]!==t.user||e[6]!==u||e[7]!==c?(n=s.jsx(I,{user:t.user,logout:u,logoutBtn:c}),e[5]=t.user,e[6]=u,e[7]=c,e[8]=n):n=e[8];let a;e[9]!==d||e[10]!==n?(a=s.jsx(M,{className:"w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg z-[1002]",align:"end",side:d,children:n}),e[9]=d,e[10]=n,e[11]=a):a=e[11];let l;return e[12]!==o||e[13]!==a?(l=s.jsx(w,{children:s.jsx(C,{children:s.jsxs(S,{children:[o,a]})})}),e[12]=o,e[13]=a,e[14]=l):l=e[14],l}export{E as NavUser};
@@ -0,0 +1 @@
1
+ import{c as V,j as a,be as k,bf as _,bg as w,bh as A,bi as q,bj as z}from"./app.js";const J=i=>{const e=V.c(44),{pagination:t,pageChange:n,currentPage:s}=i,D=t.links.filter(B).map(G),I=D.includes(1),L=D.includes(t.last_page),j=`${I?"opacity-50 pointer-events-none":"opacity-100"}`,y=`px-6 cursor-pointer bg-secondary hover:bg-muted-foreground/15 ${s===1?"opacity-50 pointer-events-none":""}`;let o;e[0]!==s||e[1]!==n?(o=r=>{r.preventDefault(),s!==1&&n(1)},e[0]=s,e[1]=n,e[2]=o):o=e[2];let l;e[3]!==y||e[4]!==o?(l=a.jsx(k,{className:y,onClick:o,children:"First"}),e[3]=y,e[4]=o,e[5]=l):l=e[5];let c;e[6]!==j||e[7]!==l?(c=a.jsx(_,{className:j,children:l}),e[6]=j,e[7]=l,e[8]=c):c=e[8];const P=`cursor-pointer bg-secondary hover:bg-muted-foreground/15 ${t.prev_page_url?"":"opacity-50 pointer-events-none"}`;let p;e[9]!==s||e[10]!==n||e[11]!==t.prev_page_url?(p=r=>{r.preventDefault(),t.prev_page_url&&n(s-1)},e[9]=s,e[10]=n,e[11]=t.prev_page_url,e[12]=p):p=e[12];let g;e[13]!==P||e[14]!==p?(g=a.jsx(_,{children:a.jsx(w,{className:P,onClick:p})}),e[13]=P,e[14]=p,e[15]=g):g=e[15];let u;if(e[16]!==n||e[17]!==t.links){let r;e[19]!==n?(r=(v,R)=>v.label==="Previous"||v.label==="Next"?null:a.jsx(_,{children:a.jsx(k,{className:`cursor-pointer bg-secondary hover:bg-muted-foreground/15 ${v.active?"!bg-primary dark:!bg-muted-foreground !text-primary-foreground dark:!text-ring":""}`,onClick:E=>{E.preventDefault();const F=parseInt(v.label);n(F)},isActive:v.active,children:v.label})},R),e[19]=n,e[20]=r):r=e[20],u=t.links.map(r),e[16]=n,e[17]=t.links,e[18]=u}else u=e[18];const N=`cursor-pointer bg-secondary hover:bg-muted-foreground/15 ${t.next_page_url?"":"opacity-50 pointer-events-none"}`;let f;e[21]!==s||e[22]!==n||e[23]!==t.next_page_url?(f=r=>{r.preventDefault(),t.next_page_url&&n(s+1)},e[21]=s,e[22]=n,e[23]=t.next_page_url,e[24]=f):f=e[24];let d;e[25]!==N||e[26]!==f?(d=a.jsx(_,{children:a.jsx(A,{className:N,onClick:f})}),e[25]=N,e[26]=f,e[27]=d):d=e[27];const $=`${L?"opacity-50 pointer-events-none":"opacity-100"}`,C=`px-6 cursor-pointer bg-secondary hover:bg-muted-foreground/15 ${s===t.last_page?"opacity-50 pointer-events-none":""}`;let b;e[28]!==s||e[29]!==n||e[30]!==t.last_page?(b=r=>{r.preventDefault(),s!==t.last_page&&n(t.last_page)},e[28]=s,e[29]=n,e[30]=t.last_page,e[31]=b):b=e[31];let m;e[32]!==C||e[33]!==b?(m=a.jsx(k,{className:C,onClick:b,children:"Last"}),e[32]=C,e[33]=b,e[34]=m):m=e[34];let x;e[35]!==$||e[36]!==m?(x=a.jsx(_,{className:$,children:m}),e[35]=$,e[36]=m,e[37]=x):x=e[37];let h;return e[38]!==d||e[39]!==x||e[40]!==c||e[41]!==g||e[42]!==u?(h=a.jsx(q,{children:a.jsxs(z,{className:"flex-wrap",children:[c,g,u,d,x]})}),e[38]=d,e[39]=x,e[40]=c,e[41]=g,e[42]=u,e[43]=h):h=e[43],h};function B(i){return i.label!=="Previous"&&i.label!=="Next"}function G(i){return parseInt(i.label)}export{J as default};
@@ -0,0 +1 @@
1
+ import{c as Pe,q as _e,r as ye,Y as Se,j as l,L as Q,I as U,S as Ce,b as ke,B as Le,X as Ee,T as Te,h as Ie,e as $e,i as qe,t as Be}from"./app.js";import W from"./input-error-F1DL-Fx6.js";import{i as Fe}from"./use-appearance-J8J2w43p.js";function Xe(){const e=Pe.c(151),s=_e();let Z;e[0]===Symbol.for("react.memo_cache_sentinel")?(Z=[],e[0]=Z):Z=e[0],ye.useEffect(Ve,Z);let ee;e[1]===Symbol.for("react.memo_cache_sentinel")?(ee={locale:"en",email:"",confirmPassword:"",password:"",fullName:"",login:""},e[1]=ee):ee=e[1];const{post:de,data:r,setData:me,processing:a,setError:fe,errors:t,clearErrors:ue}=Se(ee);let se;e[2]!==r.confirmPassword||e[3]!==r.password||e[4]!==s.props.confirmError||e[5]!==s.props.submitLink||e[6]!==de||e[7]!==fe?(se=i=>{if(i.preventDefault(),r.password!==r.confirmPassword){fe("confirmPassword",s.props.confirmError);return}de(s.props.submitLink,{onSuccess:Re,onError:De})},e[2]=r.confirmPassword,e[3]=r.password,e[4]=s.props.confirmError,e[5]=s.props.submitLink,e[6]=de,e[7]=fe,e[8]=se):se=e[8];const be=se;let le;e[9]!==ue||e[10]!==me?(le=(i,ve)=>{ue(),me(i,ve)},e[9]=ue,e[10]=me,e[11]=le):le=e[11];const o=le;let ae;e[12]===Symbol.for("react.memo_cache_sentinel")?(ae=l.jsx(Te,{position:"top-center",richColors:!0,closeButton:!0}),e[12]=ae):ae=e[12];let n;e[13]!==s.props.header.title?(n=l.jsx("h1",{className:"font-medium mb-2 text-xl",children:s.props.header.title}),e[13]=s.props.header.title,e[14]=n):n=e[14];let p;e[15]!==s.props.header.desc?(p=l.jsx("p",{className:"text-muted-foreground text-sm",children:s.props.header.desc}),e[15]=s.props.header.desc,e[16]=p):p=e[16];let re;e[17]===Symbol.for("react.memo_cache_sentinel")?(re=l.jsx("span",{className:"text-red-500",children:"*"}),e[17]=re):re=e[17];let c;e[18]!==s.props.loginLabel?(c=l.jsxs(Q,{htmlFor:"login",children:[s.props.loginLabel,re]}),e[18]=s.props.loginLabel,e[19]=c):c=e[19];const he=`${t.login?"border-red-500":""}`;let d;e[20]!==o?(d=i=>{o("login",i.target.value)},e[20]=o,e[21]=d):d=e[21];let m;e[22]!==r.login||e[23]!==s.props.loginLabel||e[24]!==a||e[25]!==d||e[26]!==he?(m=l.jsx(U,{id:"login",className:he,type:"text",required:!0,tabIndex:1,autoComplete:"username",value:r.login,disabled:a,onChange:d,placeholder:s.props.loginLabel}),e[22]=r.login,e[23]=s.props.loginLabel,e[24]=a,e[25]=d,e[26]=he,e[27]=m):m=e[27];let f;e[28]!==t.login?(f=l.jsx(W,{message:t.login}),e[28]=t.login,e[29]=f):f=e[29];let u;e[30]!==m||e[31]!==f?(u=l.jsxs("div",{className:"relative",children:[m,f]}),e[30]=m,e[31]=f,e[32]=u):u=e[32];let b;e[33]!==u||e[34]!==c?(b=l.jsxs("div",{className:"grid gap-4",children:[c,u]}),e[33]=u,e[34]=c,e[35]=b):b=e[35];let te;e[36]===Symbol.for("react.memo_cache_sentinel")?(te=l.jsx("span",{className:"text-red-500",children:"*"}),e[36]=te):te=e[36];let h;e[37]!==s.props.fullNameLabel?(h=l.jsxs(Q,{htmlFor:"fullName",children:[s.props.fullNameLabel,te]}),e[37]=s.props.fullNameLabel,e[38]=h):h=e[38];const xe=`${t.fullName?"border-red-500":""}`;let x;e[39]!==o?(x=i=>{o("fullName",i.target.value)},e[39]=o,e[40]=x):x=e[40];let g;e[41]!==r.fullName||e[42]!==s.props.fullNameLabel||e[43]!==a||e[44]!==xe||e[45]!==x?(g=l.jsx(U,{id:"fullName",className:xe,type:"text",required:!0,tabIndex:1,autoComplete:"fullName",value:r.fullName,disabled:a,onChange:x,placeholder:s.props.fullNameLabel}),e[41]=r.fullName,e[42]=s.props.fullNameLabel,e[43]=a,e[44]=xe,e[45]=x,e[46]=g):g=e[46];let w;e[47]!==t.fullName?(w=l.jsx(W,{message:t.fullName}),e[47]=t.fullName,e[48]=w):w=e[48];let j;e[49]!==g||e[50]!==w?(j=l.jsxs("div",{className:"relative",children:[g,w]}),e[49]=g,e[50]=w,e[51]=j):j=e[51];let N;e[52]!==h||e[53]!==j?(N=l.jsxs("div",{className:"grid gap-4",children:[h,j]}),e[52]=h,e[53]=j,e[54]=N):N=e[54];let oe;e[55]===Symbol.for("react.memo_cache_sentinel")?(oe=l.jsx("span",{className:"text-red-500",children:"*"}),e[55]=oe):oe=e[55];let L;e[56]!==s.props.passwordLabel?(L=l.jsxs(Q,{htmlFor:"password",children:[s.props.passwordLabel,oe]}),e[56]=s.props.passwordLabel,e[57]=L):L=e[57];const ge=`${t.password?"border-red-500":""}`;let v;e[58]!==o?(v=i=>{o("password",i.target.value)},e[58]=o,e[59]=v):v=e[59];let P;e[60]!==r.password||e[61]!==s.props.passwordLabel||e[62]!==a||e[63]!==ge||e[64]!==v?(P=l.jsx(U,{id:"password",className:ge,type:"password",required:!0,tabIndex:1,autoComplete:"new-password",value:r.password,disabled:a,onChange:v,placeholder:s.props.passwordLabel}),e[60]=r.password,e[61]=s.props.passwordLabel,e[62]=a,e[63]=ge,e[64]=v,e[65]=P):P=e[65];let _;e[66]!==t.password?(_=l.jsx(W,{message:t.password}),e[66]=t.password,e[67]=_):_=e[67];let y;e[68]!==P||e[69]!==_?(y=l.jsxs("div",{className:"relative",children:[P,_]}),e[68]=P,e[69]=_,e[70]=y):y=e[70];let S;e[71]!==L||e[72]!==y?(S=l.jsxs("div",{className:"grid gap-4",children:[L,y]}),e[71]=L,e[72]=y,e[73]=S):S=e[73];let ie;e[74]===Symbol.for("react.memo_cache_sentinel")?(ie=l.jsx("span",{className:"text-red-500",children:"*"}),e[74]=ie):ie=e[74];let C;e[75]!==s.props.confirmPasswordLabel?(C=l.jsxs(Q,{htmlFor:"confirmPassword",children:[s.props.confirmPasswordLabel,ie]}),e[75]=s.props.confirmPasswordLabel,e[76]=C):C=e[76];const we=`${t.confirmPassword?"border-red-500":""}`;let k;e[77]!==o?(k=i=>{o("confirmPassword",i.target.value)},e[77]=o,e[78]=k):k=e[78];let E;e[79]!==r.confirmPassword||e[80]!==s.props.confirmPasswordLabel||e[81]!==a||e[82]!==we||e[83]!==k?(E=l.jsx(U,{id:"confirmPassword",className:we,type:"password",required:!0,tabIndex:1,autoComplete:"new-password",value:r.confirmPassword,disabled:a,onChange:k,placeholder:s.props.confirmPasswordLabel}),e[79]=r.confirmPassword,e[80]=s.props.confirmPasswordLabel,e[81]=a,e[82]=we,e[83]=k,e[84]=E):E=e[84];let T;e[85]!==t.confirmPassword?(T=l.jsx(W,{message:t.confirmPassword}),e[85]=t.confirmPassword,e[86]=T):T=e[86];let I;e[87]!==E||e[88]!==T?(I=l.jsxs("div",{className:"relative",children:[E,T]}),e[87]=E,e[88]=T,e[89]=I):I=e[89];let $;e[90]!==C||e[91]!==I?($=l.jsxs("div",{className:"grid gap-4",children:[C,I]}),e[90]=C,e[91]=I,e[92]=$):$=e[92];let ne;e[93]===Symbol.for("react.memo_cache_sentinel")?(ne=l.jsx("span",{className:"text-red-500",children:"*"}),e[93]=ne):ne=e[93];let q;e[94]!==s.props.emailLabel?(q=l.jsxs(Q,{htmlFor:"email",children:[s.props.emailLabel,ne]}),e[94]=s.props.emailLabel,e[95]=q):q=e[95];const je=`${t.email?"border-red-500":""}`;let B;e[96]!==o?(B=i=>{o("email",i.target.value)},e[96]=o,e[97]=B):B=e[97];let F;e[98]!==r.email||e[99]!==s.props.emailLabel||e[100]!==a||e[101]!==je||e[102]!==B?(F=l.jsx(U,{id:"email",className:je,type:"email",required:!0,tabIndex:1,autoComplete:"email",value:r.email,disabled:a,onChange:B,placeholder:s.props.emailLabel}),e[98]=r.email,e[99]=s.props.emailLabel,e[100]=a,e[101]=je,e[102]=B,e[103]=F):F=e[103];let D;e[104]!==t.email?(D=l.jsx(W,{message:t.email}),e[104]=t.email,e[105]=D):D=e[105];let R;e[106]!==F||e[107]!==D?(R=l.jsxs("div",{className:"relative",children:[F,D]}),e[106]=F,e[107]=D,e[108]=R):R=e[108];let V;e[109]!==q||e[110]!==R?(V=l.jsxs("div",{className:"grid gap-4",children:[q,R]}),e[109]=q,e[110]=R,e[111]=V):V=e[111];let z;e[112]!==s.props.localeLabel?(z=l.jsx(Q,{htmlFor:"locale",children:s.props.localeLabel}),e[112]=s.props.localeLabel,e[113]=z):z=e[113];let J;e[114]!==o?(J=i=>o("locale",i),e[114]=o,e[115]=J):J=e[115];let O;e[116]!==s.props.localeLabel?(O=l.jsx(Ce,{className:"w-full cursor-pointer",children:l.jsx(ke,{placeholder:s.props.localeLabel})}),e[116]=s.props.localeLabel,e[117]=O):O=e[117];let pe;e[118]===Symbol.for("react.memo_cache_sentinel")?(pe=l.jsx(Ie,{children:l.jsx($e,{value:"en",children:"EN"})}),e[118]=pe):pe=e[118];let X;e[119]!==a||e[120]!==J||e[121]!==O?(X=l.jsxs(qe,{onValueChange:J,defaultValue:"en",disabled:a,children:[O,pe]}),e[119]=a,e[120]=J,e[121]=O,e[122]=X):X=e[122];let Y;e[123]!==z||e[124]!==X?(Y=l.jsxs("div",{className:"grid gap-4",children:[z,X]}),e[123]=z,e[124]=X,e[125]=Y):Y=e[125];let A;e[126]!==s.props.submitButton||e[127]!==a?(A=l.jsx(Le,{type:"submit",className:"w-fit",disabled:a,children:s.props.submitButton}),e[126]=s.props.submitButton,e[127]=a,e[128]=A):A=e[128];const Ne=`${a} ? 'pointer-events-none opacity-50' : ''`;let G;e[129]!==s.props.backToLogin.link||e[130]!==s.props.backToLogin.text||e[131]!==Ne?(G=l.jsx(Le,{asChild:!0,variant:"outline",children:l.jsx(Ee,{href:s.props.backToLogin.link,className:Ne,children:s.props.backToLogin.text})}),e[129]=s.props.backToLogin.link,e[130]=s.props.backToLogin.text,e[131]=Ne,e[132]=G):G=e[132];let H;e[133]!==A||e[134]!==G?(H=l.jsxs("div",{className:"flex gap-4",children:[A,G]}),e[133]=A,e[134]=G,e[135]=H):H=e[135];let K;e[136]!==b||e[137]!==N||e[138]!==S||e[139]!==$||e[140]!==V||e[141]!==Y||e[142]!==H?(K=l.jsxs("div",{className:"grid gap-5",children:[b,N,S,$,V,Y,H]}),e[136]=b,e[137]=N,e[138]=S,e[139]=$,e[140]=V,e[141]=Y,e[142]=H,e[143]=K):K=e[143];let M;e[144]!==be||e[145]!==K?(M=l.jsx("form",{onSubmit:be,className:"mt-6",children:K}),e[144]=be,e[145]=K,e[146]=M):M=e[146];let ce;return e[147]!==n||e[148]!==M||e[149]!==p?(ce=l.jsxs("div",{className:"bg-sidebar flex min-h-svh w-full justify-center items-center",children:[ae,l.jsxs("div",{className:"rounded-xl border bg-card text-card-foreground shadow p-6 max-w-sm w-full h-fit",children:[n,p,M]})]}),e[147]=n,e[148]=M,e[149]=p,e[150]=ce):ce=e[150],ce}function De(e){for(const s of Object.keys(e))Be.error(e[s])}function Re(){}function Ve(){Fe()}export{Xe as default};
@@ -1,6 +1,6 @@
1
- import{c as e}from"./createLucideIcon-BFG25zNo.js";/**
1
+ import{a as e}from"./app.js";/**
2
2
  * @license lucide-react v0.485.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
5
5
  * See the LICENSE file in the root directory of this source tree.
6
- */const c=[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]],a=e("trash-2",c);export{a as T};
6
+ */const t=[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]],c=e("trash-2",t);export{c as T};
@@ -0,0 +1 @@
1
+ import{c as x,j as a,aL as h,aM as p,aN as j}from"./app.js";function v(){return I}function I(g){const t=g.trim().split(" ");if(t.length===0)return"";if(t.length===1)return t[0].charAt(0).toUpperCase();const e=t[0].charAt(0),m=t[t.length-1].charAt(0);return`${e}${m}`.toUpperCase()}function N(g){const t=x.c(22),{user:e,showEmail:m}=g,u=m===void 0?!1:m,d=v();let l;t[0]!==e.avatar||t[1]!==e.login?(l=a.jsx(h,{src:e.avatar,alt:e.login}),t[0]=e.avatar,t[1]=e.login,t[2]=l):l=t[2];let s;t[3]!==d||t[4]!==e.login?(s=d(e.login),t[3]=d,t[4]=e.login,t[5]=s):s=t[5];let i;t[6]!==s?(i=a.jsx(p,{className:"rounded-lg bg-neutral-200 text-black dark:bg-neutral-700 dark:text-white",children:s}),t[6]=s,t[7]=i):i=t[7];let n;t[8]!==l||t[9]!==i?(n=a.jsxs(j,{className:"h-8 w-8 overflow-hidden rounded-full",children:[l,i]}),t[8]=l,t[9]=i,t[10]=n):n=t[10];let r;t[11]!==e.login?(r=a.jsx("span",{className:"truncate font-medium",children:e.login}),t[11]=e.login,t[12]=r):r=t[12];let o;t[13]!==u||t[14]!==e.email?(o=u&&a.jsx("span",{className:"text-muted-foreground truncate text-xs",children:e.email}),t[13]=u,t[14]=e.email,t[15]=o):o=t[15];let c;t[16]!==r||t[17]!==o?(c=a.jsxs("div",{className:"grid flex-1 text-left text-sm leading-tight",children:[r,o]}),t[16]=r,t[17]=o,t[18]=c):c=t[18];let f;return t[19]!==n||t[20]!==c?(f=a.jsxs(a.Fragment,{children:[n,c]}),t[19]=n,t[20]=c,t[21]=f):f=t[21],f}export{N as UserInfo};
@@ -0,0 +1,6 @@
1
+ import{a as p,c as f,j as t,aO as x,aP as d,aQ as h,X as y}from"./app.js";import{UserInfo as j}from"./user-info-CnB2lvpg.js";/**
2
+ * @license lucide-react v0.485.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const g=[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]],b=p("log-out",g);function _(){return M}function M(){document.body.style.removeProperty("pointer-events")}function w(m){const e=f.c(11),{user:a,logout:c,logoutBtn:i}=m,u=_();let o;e[0]!==a?(o=t.jsx(x,{className:"p-0 font-normal",children:t.jsx("div",{className:"flex items-center gap-2 px-1 py-1.5 text-left text-sm",children:t.jsx(j,{user:a,showEmail:!0})})}),e[0]=a,e[1]=o):o=e[1];let n;e[2]===Symbol.for("react.memo_cache_sentinel")?(n=t.jsx(d,{}),e[2]=n):n=e[2];let l;e[3]===Symbol.for("react.memo_cache_sentinel")?(l=t.jsx(b,{className:"mr-2"}),e[3]=l):l=e[3];let s;e[4]!==u||e[5]!==c||e[6]!==i?(s=t.jsx(h,{asChild:!0,children:t.jsxs(y,{className:"block w-full cursor-pointer",method:"get",href:c,as:"button",onClick:u,children:[l,i]})}),e[4]=u,e[5]=c,e[6]=i,e[7]=s):s=e[7];let r;return e[8]!==o||e[9]!==s?(r=t.jsxs(t.Fragment,{children:[o,n,s]}),e[8]=o,e[9]=s,e[10]=r):r=e[10],r}export{w as UserMenuContent};
@@ -0,0 +1 @@
1
+ import{c as l,q as m,j as p}from"./app.js";import{A as x}from"./app-layout-Dn8y3paC.js";import"./app-shell-C1wDrRCe.js";import"./app-sidebar-BisOEG_p.js";import"./nav-main-DDQ-_Oed.js";import"./material-icon-DeSoGIhT.js";import"./chevrons-up-down-D3t3UGV7.js";import"./app-sidebar-header-CL1OSuV8.js";import"./breadcrumbs-BVZtAG3J.js";import"./nav-user-BwBu-VwZ.js";import"./user-info-CnB2lvpg.js";import"./user-menu-content-BFbaJw6v.js";import"./icon-B-D8X0jg.js";import"./use-appearance-J8J2w43p.js";const a=[];function E(){const t=l.c(8),e=m();let r;t[0]!==e.props.title?(r=e.props.title&&p.jsx("div",{className:"text-3xl mb-8",children:e.props.title}),t[0]=e.props.title,t[1]=r):r=t[1];let s;t[2]===Symbol.for("react.memo_cache_sentinel")?(s=p.jsx("div",{className:"text-3xl mb-8",children:"Adminizer"}),t[2]=s):s=t[2];let o;t[3]!==e.props.text?(o=e.props.text&&p.jsx("div",{dangerouslySetInnerHTML:{__html:e.props.text}}),t[3]=e.props.text,t[4]=o):o=t[4];let i;return t[5]!==r||t[6]!==o?(i=p.jsx(x,{breadcrumbs:a,children:p.jsxs("div",{className:"flex h-full flex-1 flex-col gap-4 rounded-xl p-4",children:[r,s,o]})}),t[5]=r,t[6]=o,t[7]=i):i=t[7],i}export{E as default};
package/package.json CHANGED
@@ -1,8 +1,12 @@
1
1
  {
2
2
  "name": "adminizer",
3
3
  "type": "module",
4
- "version": "4.1.1",
4
+ "version": "4.2.0-build.44",
5
5
  "main": "index.js",
6
+ "exports": {
7
+ ".": "./index.js",
8
+ "./ui/*": "./dist/ui/components/ui/*.js"
9
+ },
6
10
  "scripts": {
7
11
  "test": "vitest --reporter verbose",
8
12
  "start": "cross-env NO_SEED_DATA=true ORM=sequelize tsx --tsconfig ./fixture/tsconfig.json ./fixture/index.ts",
@@ -10,10 +14,11 @@
10
14
  "dev:sequelize": "cross-env VITE_ENV=dev NO_SEED_DATA=true ORM=sequelize tsx watch --tsconfig ./fixture/tsconfig.json ./fixture/index.ts",
11
15
  "build:assets": "vite build",
12
16
  "compile:backend": "tsc -p src/tsconfig.json",
17
+ "compile:ui": "tsc -p tsconfig.ui.json",
13
18
  "watch:backend": "tsc -w -p src/tsconfig.json",
14
19
  "copy:backend": "node copy-backend.js",
15
20
  "build:backend": "npm run copy:backend && npm run compile:backend",
16
- "build": "npm run copy:backend && npm run compile:backend && npm run build:assets",
21
+ "build": "npm run copy:backend && npm run compile:backend && npm run compile:ui && npm run build:assets",
17
22
  "build:module": "vite build --config modules/test/vite.config.module.ts",
18
23
  "build:react-quill": "vite build --config modules/controls/wysiwyg/vite.config.react-quill.ts",
19
24
  "build:catalog-modules": "vite build --config modules/testCatalog/vite.config.module.ts",
@@ -46,6 +51,7 @@
46
51
  "next-themes": "^0.4.6",
47
52
  "password-hash": "^1.2.2",
48
53
  "react-dnd": "^16.0.1",
54
+ "reflect-metadata": "^0.2.2",
49
55
  "sharp": "^0.33.5",
50
56
  "typeorm": "^0.3.20",
51
57
  "uuid": "^11.0.5",
@@ -53,7 +59,6 @@
53
59
  "winston": "^3.17.0"
54
60
  },
55
61
  "devDependencies": {
56
- "isomorphic-webcrypto": "^2.3.8",
57
62
  "@babel/plugin-proposal-decorators": "^7.27.1",
58
63
  "@ckeditor/ckeditor5-react": "^9.5.0",
59
64
  "@eslint/compat": "^1.2.9",
@@ -107,6 +112,7 @@
107
112
  "cross-env": "^7.0.3",
108
113
  "eslint": "^9.26.0",
109
114
  "handsontable": "^15.2.0",
115
+ "isomorphic-webcrypto": "^2.3.8",
110
116
  "json-schema": "^0.4.0",
111
117
  "leaflet": "^1.9.4",
112
118
  "leaflet-draw": "^1.0.4",
@@ -0,0 +1,6 @@
1
+ import * as React from "react";
2
+ import * as AvatarPrimitive from "@radix-ui/react-avatar";
3
+ declare function Avatar({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ declare function AvatarImage({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Image>): import("react/jsx-runtime").JSX.Element;
5
+ declare function AvatarFallback({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Fallback>): import("react/jsx-runtime").JSX.Element;
6
+ export { Avatar, AvatarImage, AvatarFallback };
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as AvatarPrimitive from "@radix-ui/react-avatar";
3
+ import { cn } from "@/lib/utils";
4
+ function Avatar({ className, ...props }) {
5
+ return (_jsx(AvatarPrimitive.Root, { "data-slot": "avatar", className: cn("relative flex size-8 shrink-0 overflow-hidden rounded-full", className), ...props }));
6
+ }
7
+ function AvatarImage({ className, ...props }) {
8
+ return (_jsx(AvatarPrimitive.Image, { "data-slot": "avatar-image", className: cn("aspect-square size-full", className), ...props }));
9
+ }
10
+ function AvatarFallback({ className, ...props }) {
11
+ return (_jsx(AvatarPrimitive.Fallback, { "data-slot": "avatar-fallback", className: cn("bg-muted flex size-full items-center justify-center rounded-full", className), ...props }));
12
+ }
13
+ export { Avatar, AvatarImage, AvatarFallback };
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const badgeVariants: (props?: ({
4
+ variant?: "default" | "secondary" | "destructive" | "outline" | null | undefined;
5
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
+ declare function Badge({ className, variant, asChild, ...props }: React.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
7
+ asChild?: boolean;
8
+ }): import("react/jsx-runtime").JSX.Element;
9
+ export { Badge, badgeVariants };
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Slot } from "@radix-ui/react-slot";
3
+ import { cva } from "class-variance-authority";
4
+ import { cn } from "@/lib/utils";
5
+ const badgeVariants = cva("inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden", {
6
+ variants: {
7
+ variant: {
8
+ default: "border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
9
+ secondary: "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
10
+ destructive: "border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
11
+ outline: "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
12
+ },
13
+ },
14
+ defaultVariants: {
15
+ variant: "default",
16
+ },
17
+ });
18
+ function Badge({ className, variant, asChild = false, ...props }) {
19
+ const Comp = asChild ? Slot : "span";
20
+ return (_jsx(Comp, { "data-slot": "badge", className: cn(badgeVariants({ variant }), className), ...props }));
21
+ }
22
+ export { Badge, badgeVariants };
@@ -0,0 +1,11 @@
1
+ import * as React from "react";
2
+ declare function Breadcrumb({ ...props }: React.ComponentProps<"nav">): import("react/jsx-runtime").JSX.Element;
3
+ declare function BreadcrumbList({ className, ...props }: React.ComponentProps<"ol">): import("react/jsx-runtime").JSX.Element;
4
+ declare function BreadcrumbItem({ className, ...props }: React.ComponentProps<"li">): import("react/jsx-runtime").JSX.Element;
5
+ declare function BreadcrumbLink({ asChild, className, ...props }: React.ComponentProps<"a"> & {
6
+ asChild?: boolean;
7
+ }): import("react/jsx-runtime").JSX.Element;
8
+ declare function BreadcrumbPage({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
9
+ declare function BreadcrumbSeparator({ children, className, ...props }: React.ComponentProps<"li">): import("react/jsx-runtime").JSX.Element;
10
+ declare function BreadcrumbEllipsis({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
11
+ export { Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbPage, BreadcrumbSeparator, BreadcrumbEllipsis, };
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Slot } from "@radix-ui/react-slot";
3
+ import { ChevronRight, MoreHorizontal } from "lucide-react";
4
+ import { cn } from "@/lib/utils";
5
+ function Breadcrumb({ ...props }) {
6
+ return _jsx("nav", { "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...props });
7
+ }
8
+ function BreadcrumbList({ className, ...props }) {
9
+ return (_jsx("ol", { "data-slot": "breadcrumb-list", className: cn("text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5", className), ...props }));
10
+ }
11
+ function BreadcrumbItem({ className, ...props }) {
12
+ return (_jsx("li", { "data-slot": "breadcrumb-item", className: cn("inline-flex items-center gap-1.5", className), ...props }));
13
+ }
14
+ function BreadcrumbLink({ asChild, className, ...props }) {
15
+ const Comp = asChild ? Slot : "a";
16
+ return (_jsx(Comp, { "data-slot": "breadcrumb-link", className: cn("hover:text-foreground transition-colors", className), ...props }));
17
+ }
18
+ function BreadcrumbPage({ className, ...props }) {
19
+ return (_jsx("span", { "data-slot": "breadcrumb-page", role: "link", "aria-disabled": "true", "aria-current": "page", className: cn("text-foreground font-normal", className), ...props }));
20
+ }
21
+ function BreadcrumbSeparator({ children, className, ...props }) {
22
+ return (_jsx("li", { "data-slot": "breadcrumb-separator", role: "presentation", "aria-hidden": "true", className: cn("[&>svg]:size-3.5", className), ...props, children: children ?? _jsx(ChevronRight, {}) }));
23
+ }
24
+ function BreadcrumbEllipsis({ className, ...props }) {
25
+ return (_jsxs("span", { "data-slot": "breadcrumb-ellipsis", role: "presentation", "aria-hidden": "true", className: cn("flex size-9 items-center justify-center", className), ...props, children: [_jsx(MoreHorizontal, { className: "size-4" }), _jsx("span", { className: "sr-only", children: "More" })] }));
26
+ }
27
+ export { Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbPage, BreadcrumbSeparator, BreadcrumbEllipsis, };
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const buttonVariants: (props?: ({
4
+ variant?: "link" | "default" | "secondary" | "destructive" | "outline" | "green" | "ghost" | null | undefined;
5
+ size?: "list" | "default" | "sm" | "lg" | "icon" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ declare function Button({ className, variant, size, asChild, ...props }: React.ComponentProps<"button"> & VariantProps<typeof buttonVariants> & {
8
+ asChild?: boolean;
9
+ }): import("react/jsx-runtime").JSX.Element;
10
+ export { Button, buttonVariants };
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Slot } from "@radix-ui/react-slot";
3
+ import { cva } from "class-variance-authority";
4
+ import { cn } from "@/lib/utils";
5
+ const buttonVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive cursor-pointer", {
6
+ variants: {
7
+ variant: {
8
+ default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
9
+ destructive: "bg-destructive text-white shadow-xs hover:bg-destructive/80 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
10
+ green: "bg-chart-2 text-primary-foreground shadow-xs hover:bg-chart-2/90",
11
+ outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
12
+ secondary: "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",
13
+ ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
14
+ link: "text-primary underline-offset-4 hover:underline",
15
+ },
16
+ size: {
17
+ default: "h-9 px-4 py-2 has-[>svg]:px-3",
18
+ sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
19
+ lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
20
+ icon: "size-9",
21
+ list: "h-8 px-2 py-2 has-[>svg]:px-2",
22
+ },
23
+ },
24
+ defaultVariants: {
25
+ variant: "default",
26
+ size: "default",
27
+ },
28
+ });
29
+ function Button({ className, variant, size, asChild = false, ...props }) {
30
+ const Comp = asChild ? Slot : "button";
31
+ return (_jsx(Comp, { "data-slot": "button", className: cn(buttonVariants({ variant, size, className })), ...props }));
32
+ }
33
+ export { Button, buttonVariants };
@@ -0,0 +1,4 @@
1
+ import * as React from "react";
2
+ import { DayPicker } from "react-day-picker";
3
+ declare function Calendar({ className, classNames, showOutsideDays, ...props }: React.ComponentProps<typeof DayPicker>): import("react/jsx-runtime").JSX.Element;
4
+ export { Calendar };
@@ -0,0 +1,38 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { ChevronLeft, ChevronRight } from "lucide-react";
3
+ import { DayPicker } from "react-day-picker";
4
+ import { cn } from "@/lib/utils";
5
+ import { buttonVariants } from "@/components/ui/button";
6
+ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
7
+ return (_jsx(DayPicker, { showOutsideDays: showOutsideDays, className: cn("p-3", className), classNames: {
8
+ months: "flex flex-col sm:flex-row gap-2",
9
+ month: "flex flex-col gap-4",
10
+ caption: "flex justify-center pt-1 relative items-center w-full",
11
+ caption_label: "text-sm font-medium",
12
+ nav: "flex items-center gap-1",
13
+ nav_button: cn(buttonVariants({ variant: "outline" }), "size-7 bg-transparent p-0 opacity-50 hover:opacity-100"),
14
+ nav_button_previous: "absolute left-1",
15
+ nav_button_next: "absolute right-1",
16
+ table: "w-full border-collapse space-x-1",
17
+ head_row: "flex",
18
+ head_cell: "text-muted-foreground rounded-md w-8 font-normal text-[0.8rem]",
19
+ row: "flex w-full mt-2",
20
+ cell: cn("relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-accent [&:has([aria-selected].day-range-end)]:rounded-r-md", props.mode === "range"
21
+ ? "[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md"
22
+ : "[&:has([aria-selected])]:rounded-md"),
23
+ day: cn(buttonVariants({ variant: "ghost" }), "size-8 p-0 font-normal aria-selected:opacity-100 cursor-pointer"),
24
+ day_range_start: "day-range-start aria-selected:bg-primary aria-selected:text-primary-foreground",
25
+ day_range_end: "day-range-end aria-selected:bg-primary aria-selected:text-primary-foreground",
26
+ day_selected: "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground",
27
+ day_today: "bg-accent text-accent-foreground",
28
+ day_outside: "day-outside text-muted-foreground aria-selected:text-muted-foreground",
29
+ day_disabled: "text-muted-foreground opacity-50",
30
+ day_range_middle: "aria-selected:bg-accent aria-selected:text-accent-foreground",
31
+ day_hidden: "invisible",
32
+ ...classNames,
33
+ }, components: {
34
+ IconLeft: ({ className, ...props }) => (_jsx(ChevronLeft, { className: cn("size-4", className), ...props })),
35
+ IconRight: ({ className, ...props }) => (_jsx(ChevronRight, { className: cn("size-4", className), ...props })),
36
+ }, ...props }));
37
+ }
38
+ export { Calendar };
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ declare function Card({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
3
+ declare function CardHeader({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
4
+ declare function CardTitle({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
5
+ declare function CardDescription({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
6
+ declare function CardAction({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
7
+ declare function CardContent({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
8
+ declare function CardFooter({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
9
+ export { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent, };
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from "@/lib/utils";
3
+ function Card({ className, ...props }) {
4
+ return (_jsx("div", { "data-slot": "card", className: cn("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm", className), ...props }));
5
+ }
6
+ function CardHeader({ className, ...props }) {
7
+ return (_jsx("div", { "data-slot": "card-header", className: cn("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6", className), ...props }));
8
+ }
9
+ function CardTitle({ className, ...props }) {
10
+ return (_jsx("div", { "data-slot": "card-title", className: cn("leading-none font-semibold", className), ...props }));
11
+ }
12
+ function CardDescription({ className, ...props }) {
13
+ return (_jsx("div", { "data-slot": "card-description", className: cn("text-muted-foreground text-sm", className), ...props }));
14
+ }
15
+ function CardAction({ className, ...props }) {
16
+ return (_jsx("div", { "data-slot": "card-action", className: cn("col-start-2 row-span-2 row-start-1 self-start justify-self-end", className), ...props }));
17
+ }
18
+ function CardContent({ className, ...props }) {
19
+ return (_jsx("div", { "data-slot": "card-content", className: cn("px-6", className), ...props }));
20
+ }
21
+ function CardFooter({ className, ...props }) {
22
+ return (_jsx("div", { "data-slot": "card-footer", className: cn("flex items-center px-6 [.border-t]:pt-6", className), ...props }));
23
+ }
24
+ export { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent, };
@@ -0,0 +1,4 @@
1
+ import * as React from "react";
2
+ import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
3
+ declare function Checkbox({ className, ...props }: React.ComponentProps<typeof CheckboxPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ export { Checkbox };
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
3
+ import { CheckIcon } from "lucide-react";
4
+ import { cn } from "@/lib/utils";
5
+ function Checkbox({ className, ...props }) {
6
+ return (_jsx(CheckboxPrimitive.Root, { "data-slot": "checkbox", className: cn("peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50", className), ...props, children: _jsx(CheckboxPrimitive.Indicator, { "data-slot": "checkbox-indicator", className: "flex items-center justify-center text-current transition-none", children: _jsx(CheckIcon, { className: "size-3.5" }) }) }));
7
+ }
8
+ export { Checkbox };
@@ -0,0 +1,5 @@
1
+ import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
2
+ declare function Collapsible({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.Root>): import("react/jsx-runtime").JSX.Element;
3
+ declare function CollapsibleTrigger({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>): import("react/jsx-runtime").JSX.Element;
4
+ declare function CollapsibleContent({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>): import("react/jsx-runtime").JSX.Element;
5
+ export { Collapsible, CollapsibleTrigger, CollapsibleContent };
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
3
+ function Collapsible({ ...props }) {
4
+ return _jsx(CollapsiblePrimitive.Root, { "data-slot": "collapsible", ...props });
5
+ }
6
+ function CollapsibleTrigger({ ...props }) {
7
+ return (_jsx(CollapsiblePrimitive.CollapsibleTrigger, { "data-slot": "collapsible-trigger", ...props }));
8
+ }
9
+ function CollapsibleContent({ ...props }) {
10
+ return (_jsx(CollapsiblePrimitive.CollapsibleContent, { "data-slot": "collapsible-content", ...props }));
11
+ }
12
+ export { Collapsible, CollapsibleTrigger, CollapsibleContent };
@@ -0,0 +1,16 @@
1
+ import * as React from "react";
2
+ import { Command as CommandPrimitive } from "cmdk";
3
+ import { Dialog } from "@/components/ui/dialog";
4
+ declare function Command({ className, ...props }: React.ComponentProps<typeof CommandPrimitive>): import("react/jsx-runtime").JSX.Element;
5
+ declare function CommandDialog({ title, description, children, ...props }: React.ComponentProps<typeof Dialog> & {
6
+ title?: string;
7
+ description?: string;
8
+ }): import("react/jsx-runtime").JSX.Element;
9
+ declare function CommandInput({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Input>): import("react/jsx-runtime").JSX.Element;
10
+ declare function CommandList({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.List>): import("react/jsx-runtime").JSX.Element;
11
+ declare function CommandEmpty({ ...props }: React.ComponentProps<typeof CommandPrimitive.Empty>): import("react/jsx-runtime").JSX.Element;
12
+ declare function CommandGroup({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Group>): import("react/jsx-runtime").JSX.Element;
13
+ declare function CommandSeparator({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Separator>): import("react/jsx-runtime").JSX.Element;
14
+ declare function CommandItem({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Item>): import("react/jsx-runtime").JSX.Element;
15
+ declare function CommandShortcut({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
16
+ export { Command, CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandShortcut, CommandSeparator, };
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Command as CommandPrimitive } from "cmdk";
3
+ import { SearchIcon } from "lucide-react";
4
+ import { cn } from "@/lib/utils";
5
+ import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, } from "@/components/ui/dialog";
6
+ function Command({ className, ...props }) {
7
+ return (_jsx(CommandPrimitive, { "data-slot": "command", className: cn("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md", className), ...props }));
8
+ }
9
+ function CommandDialog({ title = "Command Palette", description = "Search for a command to run...", children, ...props }) {
10
+ return (_jsxs(Dialog, { ...props, children: [_jsxs(DialogHeader, { className: "sr-only", children: [_jsx(DialogTitle, { children: title }), _jsx(DialogDescription, { children: description })] }), _jsx(DialogContent, { className: "overflow-hidden p-0", children: _jsx(Command, { className: "[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children: children }) })] }));
11
+ }
12
+ function CommandInput({ className, ...props }) {
13
+ return (_jsxs("div", { "data-slot": "command-input-wrapper", className: "flex h-9 items-center gap-2 border-b px-3", children: [_jsx(SearchIcon, { className: "size-4 shrink-0 opacity-50" }), _jsx(CommandPrimitive.Input, { "data-slot": "command-input", className: cn("placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50", className), ...props })] }));
14
+ }
15
+ function CommandList({ className, ...props }) {
16
+ return (_jsx(CommandPrimitive.List, { "data-slot": "command-list", className: cn("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto", className), ...props }));
17
+ }
18
+ function CommandEmpty({ ...props }) {
19
+ return (_jsx(CommandPrimitive.Empty, { "data-slot": "command-empty", className: "py-6 text-center text-sm", ...props }));
20
+ }
21
+ function CommandGroup({ className, ...props }) {
22
+ return (_jsx(CommandPrimitive.Group, { "data-slot": "command-group", className: cn("text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium", className), ...props }));
23
+ }
24
+ function CommandSeparator({ className, ...props }) {
25
+ return (_jsx(CommandPrimitive.Separator, { "data-slot": "command-separator", className: cn("bg-border -mx-1 h-px", className), ...props }));
26
+ }
27
+ function CommandItem({ className, ...props }) {
28
+ return (_jsx(CommandPrimitive.Item, { "data-slot": "command-item", className: cn("data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), ...props }));
29
+ }
30
+ function CommandShortcut({ className, ...props }) {
31
+ return (_jsx("span", { "data-slot": "command-shortcut", className: cn("text-muted-foreground ml-auto text-xs tracking-widest", className), ...props }));
32
+ }
33
+ export { Command, CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandShortcut, CommandSeparator, };
@@ -0,0 +1,25 @@
1
+ import * as React from "react";
2
+ import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
3
+ declare function ContextMenu({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ declare function ContextMenuTrigger({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
5
+ declare function ContextMenuGroup({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Group>): import("react/jsx-runtime").JSX.Element;
6
+ declare function ContextMenuPortal({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Portal>): import("react/jsx-runtime").JSX.Element;
7
+ declare function ContextMenuSub({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Sub>): import("react/jsx-runtime").JSX.Element;
8
+ declare function ContextMenuRadioGroup({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.RadioGroup>): import("react/jsx-runtime").JSX.Element;
9
+ declare function ContextMenuSubTrigger({ className, inset, children, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.SubTrigger> & {
10
+ inset?: boolean;
11
+ }): import("react/jsx-runtime").JSX.Element;
12
+ declare function ContextMenuSubContent({ className, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.SubContent>): import("react/jsx-runtime").JSX.Element;
13
+ declare function ContextMenuContent({ className, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
14
+ declare function ContextMenuItem({ className, inset, variant, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Item> & {
15
+ inset?: boolean;
16
+ variant?: "default" | "destructive";
17
+ }): import("react/jsx-runtime").JSX.Element;
18
+ declare function ContextMenuCheckboxItem({ className, children, checked, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.CheckboxItem>): import("react/jsx-runtime").JSX.Element;
19
+ declare function ContextMenuRadioItem({ className, children, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.RadioItem>): import("react/jsx-runtime").JSX.Element;
20
+ declare function ContextMenuLabel({ className, inset, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Label> & {
21
+ inset?: boolean;
22
+ }): import("react/jsx-runtime").JSX.Element;
23
+ declare function ContextMenuSeparator({ className, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Separator>): import("react/jsx-runtime").JSX.Element;
24
+ declare function ContextMenuShortcut({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
25
+ export { ContextMenu, ContextMenuTrigger, ContextMenuContent, ContextMenuItem, ContextMenuCheckboxItem, ContextMenuRadioItem, ContextMenuLabel, ContextMenuSeparator, ContextMenuShortcut, ContextMenuGroup, ContextMenuPortal, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuRadioGroup, };
@@ -0,0 +1,50 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
3
+ import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react";
4
+ import { cn } from "@/lib/utils";
5
+ function ContextMenu({ ...props }) {
6
+ return _jsx(ContextMenuPrimitive.Root, { "data-slot": "context-menu", ...props });
7
+ }
8
+ function ContextMenuTrigger({ ...props }) {
9
+ return (_jsx(ContextMenuPrimitive.Trigger, { "data-slot": "context-menu-trigger", ...props }));
10
+ }
11
+ function ContextMenuGroup({ ...props }) {
12
+ return (_jsx(ContextMenuPrimitive.Group, { "data-slot": "context-menu-group", ...props }));
13
+ }
14
+ function ContextMenuPortal({ ...props }) {
15
+ return (_jsx(ContextMenuPrimitive.Portal, { "data-slot": "context-menu-portal", ...props }));
16
+ }
17
+ function ContextMenuSub({ ...props }) {
18
+ return _jsx(ContextMenuPrimitive.Sub, { "data-slot": "context-menu-sub", ...props });
19
+ }
20
+ function ContextMenuRadioGroup({ ...props }) {
21
+ return (_jsx(ContextMenuPrimitive.RadioGroup, { "data-slot": "context-menu-radio-group", ...props }));
22
+ }
23
+ function ContextMenuSubTrigger({ className, inset, children, ...props }) {
24
+ return (_jsxs(ContextMenuPrimitive.SubTrigger, { "data-slot": "context-menu-sub-trigger", "data-inset": inset, className: cn("focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), ...props, children: [children, _jsx(ChevronRightIcon, { className: "ml-auto" })] }));
25
+ }
26
+ function ContextMenuSubContent({ className, ...props }) {
27
+ return (_jsx(ContextMenuPrimitive.SubContent, { "data-slot": "context-menu-sub-content", className: cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg", className), ...props }));
28
+ }
29
+ function ContextMenuContent({ className, ...props }) {
30
+ return (_jsx(ContextMenuPrimitive.Portal, { children: _jsx(ContextMenuPrimitive.Content, { "data-slot": "context-menu-content", className: cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md", className), ...props }) }));
31
+ }
32
+ function ContextMenuItem({ className, inset, variant = "default", ...props }) {
33
+ return (_jsx(ContextMenuPrimitive.Item, { "data-slot": "context-menu-item", "data-inset": inset, "data-variant": variant, className: cn("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), ...props }));
34
+ }
35
+ function ContextMenuCheckboxItem({ className, children, checked, ...props }) {
36
+ return (_jsxs(ContextMenuPrimitive.CheckboxItem, { "data-slot": "context-menu-checkbox-item", className: cn("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), checked: checked, ...props, children: [_jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: _jsx(ContextMenuPrimitive.ItemIndicator, { children: _jsx(CheckIcon, { className: "size-4" }) }) }), children] }));
37
+ }
38
+ function ContextMenuRadioItem({ className, children, ...props }) {
39
+ return (_jsxs(ContextMenuPrimitive.RadioItem, { "data-slot": "context-menu-radio-item", className: cn("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), ...props, children: [_jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: _jsx(ContextMenuPrimitive.ItemIndicator, { children: _jsx(CircleIcon, { className: "size-2 fill-current" }) }) }), children] }));
40
+ }
41
+ function ContextMenuLabel({ className, inset, ...props }) {
42
+ return (_jsx(ContextMenuPrimitive.Label, { "data-slot": "context-menu-label", "data-inset": inset, className: cn("text-foreground px-2 py-1.5 text-sm font-medium data-[inset]:pl-8", className), ...props }));
43
+ }
44
+ function ContextMenuSeparator({ className, ...props }) {
45
+ return (_jsx(ContextMenuPrimitive.Separator, { "data-slot": "context-menu-separator", className: cn("bg-border -mx-1 my-1 h-px", className), ...props }));
46
+ }
47
+ function ContextMenuShortcut({ className, ...props }) {
48
+ return (_jsx("span", { "data-slot": "context-menu-shortcut", className: cn("text-muted-foreground ml-auto text-xs tracking-widest", className), ...props }));
49
+ }
50
+ export { ContextMenu, ContextMenuTrigger, ContextMenuContent, ContextMenuItem, ContextMenuCheckboxItem, ContextMenuRadioItem, ContextMenuLabel, ContextMenuSeparator, ContextMenuShortcut, ContextMenuGroup, ContextMenuPortal, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuRadioGroup, };