@flexkit/studio 0.0.24 → 0.0.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/asset-HOJ43RVO.js +2 -0
  2. package/dist/{asset-IVSDPVJK.js.map → asset-HOJ43RVO.js.map} +1 -1
  3. package/dist/astro.js +1 -1
  4. package/dist/{chunk-N6WEYKSZ.js → chunk-7XBIC5RC.js} +2 -2
  5. package/dist/{chunk-N6WEYKSZ.js.map → chunk-7XBIC5RC.js.map} +1 -1
  6. package/dist/chunk-AOVXSAH5.js +2 -0
  7. package/dist/chunk-AOVXSAH5.js.map +1 -0
  8. package/dist/{chunk-2ORQKJKI.js → chunk-I4C65MUI.js} +2 -2
  9. package/dist/{chunk-2ORQKJKI.js.map → chunk-I4C65MUI.js.map} +1 -1
  10. package/dist/{chunk-3S65434F.js → chunk-PCZI6VXG.js} +21 -2
  11. package/dist/{chunk-HSPSTCNK.js → chunk-V2UTZEJQ.js} +2 -2
  12. package/dist/{chunk-HSPSTCNK.js.map → chunk-V2UTZEJQ.js.map} +1 -1
  13. package/dist/chunk-ZBV4BY36.js +3 -0
  14. package/dist/chunk-ZBV4BY36.js.map +1 -0
  15. package/dist/index.d.ts +6 -8
  16. package/dist/index.js +172 -171
  17. package/dist/index.js.map +1 -1
  18. package/dist/nextjs.js +1 -1
  19. package/dist/{project-selector-UDFHGEZI.js → project-selector-TWMWLTCH.js} +2 -2
  20. package/dist/{project-selector-UDFHGEZI.js.map → project-selector-TWMWLTCH.js.map} +1 -1
  21. package/dist/{search-NEEMYDKE.js → search-MG2W4GGN.js} +2 -2
  22. package/dist/{search-NEEMYDKE.js.map → search-MG2W4GGN.js.map} +1 -1
  23. package/dist/tanstack-start.js +1 -1
  24. package/dist/{types.d-B-SE1ihC.d.ts → types.d-Da7sP-Fn.d.ts} +9 -4
  25. package/dist/ui.d.ts +1 -1
  26. package/dist/ui.js +1 -1
  27. package/dist/{user-nav-QJ3GVNLW.js → user-nav-E7MLJ36Y.js} +2 -2
  28. package/dist/{user-nav-QJ3GVNLW.js.map → user-nav-E7MLJ36Y.js.map} +1 -1
  29. package/package.json +1 -1
  30. package/dist/asset-IVSDPVJK.js +0 -2
  31. package/dist/chunk-7WR64NTK.js +0 -2
  32. package/dist/chunk-7WR64NTK.js.map +0 -1
  33. package/dist/chunk-CHRDKNUF.js +0 -3
  34. package/dist/chunk-CHRDKNUF.js.map +0 -1
package/dist/nextjs.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  handleFlexkitRequest
3
- } from "./chunk-3S65434F.js";
3
+ } from "./chunk-PCZI6VXG.js";
4
4
 
5
5
  // src/auth/nextjs-api.ts
6
6
  function resultToNextResponse(result, NextResponse) {
@@ -1,2 +1,2 @@
1
- import'./index.css';import {a,d,c,e,g}from'./chunk-7WR64NTK.js';import {b}from'./chunk-WIUPQHZ5.js';import'./chunk-O2QMYUPS.js';import {useState}from'react';import {useNavigate}from'react-router-dom';import {jsxs,jsx}from'react/jsx-runtime';function V({projectId:S,projects:t}){let[r,f]=useState(t.find(e=>e.projectId===S)??t[0]),s=useNavigate();return jsxs(a,{defaultValue:r.projectId,onValueChange:e=>{let c=t.find(u=>u.projectId===e)??t[0],{basePath:d}=c;f(c),s(b(d,c.projectId));},children:[jsx(d,{className:"fk:w-48! fk:h-9 fk:py-1",id:"project",children:jsx(c,{"aria-label":r.title,children:r.title})}),jsx(e,{children:t.map(e=>jsx(g,{value:e.projectId,children:e.title},e.projectId))})]})}export{V as ProjectSelector};//# sourceMappingURL=project-selector-UDFHGEZI.js.map
2
- //# sourceMappingURL=project-selector-UDFHGEZI.js.map
1
+ import'./index.css';import {a,d,c,e,g}from'./chunk-AOVXSAH5.js';import {b}from'./chunk-WIUPQHZ5.js';import'./chunk-O2QMYUPS.js';import {useState}from'react';import {useNavigate}from'react-router-dom';import {jsxs,jsx}from'react/jsx-runtime';function V({projectId:S,projects:t}){let[r,f]=useState(t.find(e=>e.projectId===S)??t[0]),s=useNavigate();return jsxs(a,{defaultValue:r.projectId,onValueChange:e=>{let c=t.find(u=>u.projectId===e)??t[0],{basePath:d}=c;f(c),s(b(d,c.projectId));},children:[jsx(d,{className:"fk:w-48! fk:h-9 fk:py-1",id:"project",children:jsx(c,{"aria-label":r.title,children:r.title})}),jsx(e,{children:t.map(e=>jsx(g,{value:e.projectId,children:e.title},e.projectId))})]})}export{V as ProjectSelector};//# sourceMappingURL=project-selector-TWMWLTCH.js.map
2
+ //# sourceMappingURL=project-selector-TWMWLTCH.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ui/components/project-selector.tsx"],"names":["ProjectSelector","projectId","projects","selectedProject","setSelectedProject","useState","project","navigate","useNavigate","jsxs","Select","id","currentProject","basePath","joinBasePath","jsx","SelectTrigger","SelectValue","SelectContent","SelectItem"],"mappings":"iPAYO,SAASA,CAAAA,CAAgB,CAAE,SAAA,CAAAC,CAAAA,CAAW,QAAA,CAAAC,CAAS,CAAA,CAAuB,CAC3E,GAAM,CAACC,CAAAA,CAAiBC,CAAkB,CAAA,CAAIC,QAAAA,CAC5CH,CAAAA,CAAS,KAAMI,CAAAA,EAAYA,CAAAA,CAAQ,SAAA,GAAcL,CAAS,CAAA,EAAKC,CAAAA,CAAS,CAAC,CAC3E,CAAA,CACMK,CAAAA,CAAWC,WAAAA,EAAY,CAE7B,OACEC,IAAAA,CAACC,CAAAA,CAAA,CACC,YAAA,CAAcP,CAAAA,CAAgB,SAAA,CAC9B,aAAA,CAAgBQ,CAAAA,EAAO,CACrB,IAAMC,CAAAA,CAAiBV,CAAAA,CAAS,IAAA,CAAMI,CAAAA,EAAYA,CAAAA,CAAQ,SAAA,GAAcK,CAAE,GAAKT,CAAAA,CAAS,CAAC,CAAA,CACnF,CAAE,QAAA,CAAAW,CAAS,CAAA,CAAID,CAAAA,CAErBR,CAAAA,CAAmBQ,CAAc,CAAA,CACjCL,CAAAA,CAASO,CAAAA,CAAaD,CAAAA,CAAUD,CAAAA,CAAe,SAAS,CAAC,EAC3D,CAAA,CAEA,QAAA,CAAA,CAAAG,GAAAA,CAACC,CAAAA,CAAA,CAAc,SAAA,CAAU,yBAAA,CAA0B,EAAA,CAAG,SAAA,CACpD,QAAA,CAAAD,GAAAA,CAACE,CAAAA,CAAA,CAAY,YAAA,CAAYd,CAAAA,CAAgB,KAAA,CAAQ,QAAA,CAAAA,CAAAA,CAAgB,KAAA,CAAM,CAAA,CACzE,CAAA,CACAY,GAAAA,CAACG,CAAAA,CAAA,CACE,QAAA,CAAAhB,CAAAA,CAAS,GAAA,CAAKI,CAAAA,EACbS,GAAAA,CAACI,CAAAA,CAAA,CAAmC,KAAA,CAAOb,CAAAA,CAAQ,SAAA,CAChD,QAAA,CAAAA,CAAAA,CAAQ,KAAA,CAAA,CADMA,CAAAA,CAAQ,SAEzB,CACD,CAAA,CACH,CAAA,CAAA,CACF,CAEJ","file":"project-selector-UDFHGEZI.js","sourcesContent":["import type { JSX } from 'react';\nimport { useState } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { joinBasePath } from '../../core/base-path';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../primitives/select';\nimport type { ProjectOptions } from '../../core/config/types';\n\ntype Props = {\n projectId: string;\n projects: ProjectOptions[];\n};\n\nexport function ProjectSelector({ projectId, projects }: Props): JSX.Element {\n const [selectedProject, setSelectedProject] = useState(\n projects.find((project) => project.projectId === projectId) ?? projects[0]\n );\n const navigate = useNavigate();\n\n return (\n <Select\n defaultValue={selectedProject.projectId}\n onValueChange={(id) => {\n const currentProject = projects.find((project) => project.projectId === id) ?? projects[0];\n const { basePath } = currentProject;\n\n setSelectedProject(currentProject);\n navigate(joinBasePath(basePath, currentProject.projectId));\n }}\n >\n <SelectTrigger className=\"fk:w-48! fk:h-9 fk:py-1\" id=\"project\">\n <SelectValue aria-label={selectedProject.title}>{selectedProject.title}</SelectValue>\n </SelectTrigger>\n <SelectContent>\n {projects.map((project) => (\n <SelectItem key={project.projectId} value={project.projectId}>\n {project.title}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/ui/components/project-selector.tsx"],"names":["ProjectSelector","projectId","projects","selectedProject","setSelectedProject","useState","project","navigate","useNavigate","jsxs","Select","id","currentProject","basePath","joinBasePath","jsx","SelectTrigger","SelectValue","SelectContent","SelectItem"],"mappings":"iPAYO,SAASA,CAAAA,CAAgB,CAAE,SAAA,CAAAC,CAAAA,CAAW,QAAA,CAAAC,CAAS,CAAA,CAAuB,CAC3E,GAAM,CAACC,CAAAA,CAAiBC,CAAkB,CAAA,CAAIC,QAAAA,CAC5CH,CAAAA,CAAS,KAAMI,CAAAA,EAAYA,CAAAA,CAAQ,SAAA,GAAcL,CAAS,CAAA,EAAKC,CAAAA,CAAS,CAAC,CAC3E,CAAA,CACMK,CAAAA,CAAWC,WAAAA,EAAY,CAE7B,OACEC,IAAAA,CAACC,CAAAA,CAAA,CACC,YAAA,CAAcP,CAAAA,CAAgB,SAAA,CAC9B,aAAA,CAAgBQ,CAAAA,EAAO,CACrB,IAAMC,CAAAA,CAAiBV,CAAAA,CAAS,IAAA,CAAMI,CAAAA,EAAYA,CAAAA,CAAQ,SAAA,GAAcK,CAAE,GAAKT,CAAAA,CAAS,CAAC,CAAA,CACnF,CAAE,QAAA,CAAAW,CAAS,CAAA,CAAID,CAAAA,CAErBR,CAAAA,CAAmBQ,CAAc,CAAA,CACjCL,CAAAA,CAASO,CAAAA,CAAaD,CAAAA,CAAUD,CAAAA,CAAe,SAAS,CAAC,EAC3D,CAAA,CAEA,QAAA,CAAA,CAAAG,GAAAA,CAACC,CAAAA,CAAA,CAAc,SAAA,CAAU,yBAAA,CAA0B,EAAA,CAAG,SAAA,CACpD,QAAA,CAAAD,GAAAA,CAACE,CAAAA,CAAA,CAAY,YAAA,CAAYd,CAAAA,CAAgB,KAAA,CAAQ,QAAA,CAAAA,CAAAA,CAAgB,KAAA,CAAM,CAAA,CACzE,CAAA,CACAY,GAAAA,CAACG,CAAAA,CAAA,CACE,QAAA,CAAAhB,CAAAA,CAAS,GAAA,CAAKI,CAAAA,EACbS,GAAAA,CAACI,CAAAA,CAAA,CAAmC,KAAA,CAAOb,CAAAA,CAAQ,SAAA,CAChD,QAAA,CAAAA,CAAAA,CAAQ,KAAA,CAAA,CADMA,CAAAA,CAAQ,SAEzB,CACD,CAAA,CACH,CAAA,CAAA,CACF,CAEJ","file":"project-selector-TWMWLTCH.js","sourcesContent":["import type { JSX } from 'react';\nimport { useState } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { joinBasePath } from '../../core/base-path';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../primitives/select';\nimport type { ProjectOptions } from '../../core/config/types';\n\ntype Props = {\n projectId: string;\n projects: ProjectOptions[];\n};\n\nexport function ProjectSelector({ projectId, projects }: Props): JSX.Element {\n const [selectedProject, setSelectedProject] = useState(\n projects.find((project) => project.projectId === projectId) ?? projects[0]\n );\n const navigate = useNavigate();\n\n return (\n <Select\n defaultValue={selectedProject.projectId}\n onValueChange={(id) => {\n const currentProject = projects.find((project) => project.projectId === id) ?? projects[0];\n const { basePath } = currentProject;\n\n setSelectedProject(currentProject);\n navigate(joinBasePath(basePath, currentProject.projectId));\n }}\n >\n <SelectTrigger className=\"fk:w-48! fk:h-9 fk:py-1\" id=\"project\">\n <SelectValue aria-label={selectedProject.title}>{selectedProject.title}</SelectValue>\n </SelectTrigger>\n <SelectContent>\n {projects.map((project) => (\n <SelectItem key={project.projectId} value={project.projectId}>\n {project.title}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n );\n}\n"]}
@@ -1,2 +1,2 @@
1
- import'./index.css';import {e}from'./chunk-2ORQKJKI.js';import {m,v,q,p,r,t,b}from'./chunk-ND3OZVR5.js';import'./chunk-6YHHL4XI.js';import'./chunk-CHRDKNUF.js';import'./chunk-EYGOJ2ZN.js';import'./chunk-WIUPQHZ5.js';import {a}from'./chunk-O2QMYUPS.js';import {useState,useMemo,useRef}from'react';import {LoaderCircle,Search,X}from'lucide-react';import {Command}from'cmdk';import {useNavigate}from'react-router-dom';import {jsxs,jsx}from'react/jsx-runtime';var z=f=>({searchRequests:{searches:f.filter(a=>a.attributes.some(i=>i.isSearchable)).map(a=>a.plural).map(a=>({collection:a}))},commonParams:{q:""}});function Y({onSelect:f,searchPlaceholder:d="Search...",noResultsMsg:a$1="Nothing found",className:i,onSearchChange:k,projectId:P,schema:u}){let[I,r$1]=useState(false),[p$1,h]=useState(""),l=useMemo(()=>z(u),[u]),[R,g]=useState(l),n=useRef(null),{results:y,isLoading:E}=e(P,R),L=useNavigate();function B(e){h(e),e.length>0&&(r$1(true),g({...l,commonParams:{q:e}})),e.length===0&&r$1(false),k&&k(e);}function _(){h(""),r$1(false),g(l),n.current&&(n.current.value="");let e=new URL(window.location.href);e.searchParams.has("id")&&(e.searchParams.delete("id"),L(e.pathname+e.search));}return jsxs(m,{className:"fk:relative fk:overflow-visible fk:h-auto fk:justify-center",onBlur:()=>{setTimeout(()=>{r$1(false);},300);},onKeyDown:e=>{e.key==="Escape"&&(e.preventDefault(),r$1(false));},shouldFilter:false,children:[jsxs("div",{className:a("fk:flex fk:items-center fk:border fk:border-border fk:rounded-md fk:px-3 fk:h-9 fk:md:w-[100px] fk:lg:w-[300px] fk:ring-offset-background","fk:focus-within:outline-hidden fk:focus-within:ring-2 fk:focus-within:ring-ring fk:focus-within:ring-offset-2"),children:[E?jsx(LoaderCircle,{className:"fk:mr-2 fk:h-4 fk:w-4 fk:shrink-0 fk:opacity-50 fk:animate-spin"}):jsx(Search,{className:"fk:mr-2 fk:h-4 fk:w-4 fk:shrink-0 fk:opacity-50"}),jsx(Command.Input,{className:a("fk:flex fk:h-9 fk:w-full fk:rounded-md fk:bg-transparent fk:py-1 fk:text-sm fk:outline-hidden fk:placeholder:text-muted-foreground fk:disabled:cursor-not-allowed fk:disabled:opacity-50",i),placeholder:d,onMouseDown:()=>{(n.current?.value.length??0)>0&&r$1(true);},onValueChange:B,ref:n,value:p$1}),p$1&&jsx("button",{className:"fk:flex fk:items-center fk:justify-center fk:ml-2 fk:text-muted-foreground fk:hover:text-foreground",onClick:_,type:"button",children:jsx(X,{className:"fk:h-4 fk:w-4"})})]}),jsx("div",{className:"fk:relative fk:max-w-[600px]",children:jsx("div",{className:a("fk:mt-1 fk:animate-in fk:fade-in-0 fk:zoom-in-95 fk:absolute fk:top-0 fk:z-10 fk:w-full fk:rounded-md fk:bg-popover fk:outline-hidden fk:drop-shadow-md fk:border fk:border-border",I?"fk:block":"fk:hidden"),children:jsxs(v,{className:"fk:max-h-[220px] fk:overflow-auto",children:[jsx(q,{children:a$1}),jsx(p,{children:jsxs(r,{children:[y.length>0&&jsx(t,{"aria-hidden":"true",className:"fk:hidden!",value:"-"}),y.map(e=>jsxs(t,{className:"fk:flex",value:e._id,onSelect:M=>{f({entityName:e._entityName,entityNamePlural:e._entityNamePlural,entityId:M});},children:[jsx("span",{className:"fk:basis-full",children:e[Object.keys(e)[3]]}),jsx(b,{className:"fk:py-px fk:text-[0.6875rem] fk:leading-3 fk:bg-teal-400",children:e._entityName})]},e._id))]})})]})})})]})}export{Y as Search};//# sourceMappingURL=search-NEEMYDKE.js.map
2
- //# sourceMappingURL=search-NEEMYDKE.js.map
1
+ import'./index.css';import {e}from'./chunk-I4C65MUI.js';import {m,v,q,p,r,t,b}from'./chunk-ND3OZVR5.js';import'./chunk-6YHHL4XI.js';import'./chunk-ZBV4BY36.js';import'./chunk-EYGOJ2ZN.js';import'./chunk-WIUPQHZ5.js';import {a}from'./chunk-O2QMYUPS.js';import {useState,useMemo,useRef}from'react';import {LoaderCircle,Search,X}from'lucide-react';import {Command}from'cmdk';import {useNavigate}from'react-router-dom';import {jsxs,jsx}from'react/jsx-runtime';var z=f=>({searchRequests:{searches:f.filter(a=>a.attributes.some(i=>i.isSearchable)).map(a=>a.plural).map(a=>({collection:a}))},commonParams:{q:""}});function Y({onSelect:f,searchPlaceholder:d="Search...",noResultsMsg:a$1="Nothing found",className:i,onSearchChange:k,projectId:P,schema:u}){let[I,r$1]=useState(false),[p$1,h]=useState(""),l=useMemo(()=>z(u),[u]),[R,g]=useState(l),n=useRef(null),{results:y,isLoading:E}=e(P,R),L=useNavigate();function B(e){h(e),e.length>0&&(r$1(true),g({...l,commonParams:{q:e}})),e.length===0&&r$1(false),k&&k(e);}function _(){h(""),r$1(false),g(l),n.current&&(n.current.value="");let e=new URL(window.location.href);e.searchParams.has("id")&&(e.searchParams.delete("id"),L(e.pathname+e.search));}return jsxs(m,{className:"fk:relative fk:overflow-visible fk:h-auto fk:justify-center",onBlur:()=>{setTimeout(()=>{r$1(false);},300);},onKeyDown:e=>{e.key==="Escape"&&(e.preventDefault(),r$1(false));},shouldFilter:false,children:[jsxs("div",{className:a("fk:flex fk:items-center fk:border fk:border-border fk:rounded-md fk:px-3 fk:h-9 fk:md:w-[100px] fk:lg:w-[300px] fk:ring-offset-background","fk:focus-within:outline-hidden fk:focus-within:ring-2 fk:focus-within:ring-ring fk:focus-within:ring-offset-2"),children:[E?jsx(LoaderCircle,{className:"fk:mr-2 fk:h-4 fk:w-4 fk:shrink-0 fk:opacity-50 fk:animate-spin"}):jsx(Search,{className:"fk:mr-2 fk:h-4 fk:w-4 fk:shrink-0 fk:opacity-50"}),jsx(Command.Input,{className:a("fk:flex fk:h-9 fk:w-full fk:rounded-md fk:bg-transparent fk:py-1 fk:text-sm fk:outline-hidden fk:placeholder:text-muted-foreground fk:disabled:cursor-not-allowed fk:disabled:opacity-50",i),placeholder:d,onMouseDown:()=>{(n.current?.value.length??0)>0&&r$1(true);},onValueChange:B,ref:n,value:p$1}),p$1&&jsx("button",{className:"fk:flex fk:items-center fk:justify-center fk:ml-2 fk:text-muted-foreground fk:hover:text-foreground",onClick:_,type:"button",children:jsx(X,{className:"fk:h-4 fk:w-4"})})]}),jsx("div",{className:"fk:relative fk:max-w-[600px]",children:jsx("div",{className:a("fk:mt-1 fk:animate-in fk:fade-in-0 fk:zoom-in-95 fk:absolute fk:top-0 fk:z-10 fk:w-full fk:rounded-md fk:bg-popover fk:outline-hidden fk:drop-shadow-md fk:border fk:border-border",I?"fk:block":"fk:hidden"),children:jsxs(v,{className:"fk:max-h-[220px] fk:overflow-auto",children:[jsx(q,{children:a$1}),jsx(p,{children:jsxs(r,{children:[y.length>0&&jsx(t,{"aria-hidden":"true",className:"fk:hidden!",value:"-"}),y.map(e=>jsxs(t,{className:"fk:flex",value:e._id,onSelect:M=>{f({entityName:e._entityName,entityNamePlural:e._entityNamePlural,entityId:M});},children:[jsx("span",{className:"fk:basis-full",children:e[Object.keys(e)[3]]}),jsx(b,{className:"fk:py-px fk:text-[0.6875rem] fk:leading-3 fk:bg-teal-400",children:e._entityName})]},e._id))]})})]})})})]})}export{Y as Search};//# sourceMappingURL=search-MG2W4GGN.js.map
2
+ //# sourceMappingURL=search-MG2W4GGN.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ui/components/search.tsx"],"names":["getBaseSearchRequest","schema","entity","attr","collection","Search","onSelect","searchPlaceholder","noResultsMsg","className","onSearchChange","projectId","isOpen","setIsOpen","useState","inputValue","setInputValue","searchRequest","useMemo","searchQuery","setSearchQuery","inputRef","useRef","results","isLoading","useSearch","navigate","useNavigate","handleOnSearchChange","q","handleClear","url","jsxs","Command","cn","jsx","LoaderCircle","SearchIcon","CommandPrimitive","XIcon","ScrollArea","CommandEmpty","CommandList","CommandGroup","CommandItem","item","entityId","Badge"],"mappings":"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","file":"search-NEEMYDKE.js","sourcesContent":["'use client';\n\nimport { useRef, useState, useMemo } from 'react';\nimport type { JSX } from 'react';\nimport { LoaderCircle, Search as SearchIcon, X as XIcon } from 'lucide-react';\nimport { Command as CommandPrimitive } from 'cmdk';\nimport { useNavigate } from 'react-router-dom';\nimport { useSearch } from '../../core/use-search';\nimport { cn } from '../lib/utils';\nimport { Badge } from '../primitives/badge';\nimport { Command, CommandEmpty, CommandGroup, CommandItem, CommandList } from '../primitives/command';\nimport { ScrollArea } from '../primitives/scroll-area';\nimport type { Entity, SearchRequestProps } from '../../core/types';\n\nexport type ComboBoxItemType = {\n value: string;\n label: string;\n};\n\nexport interface SearchProps {\n onSelect: ({\n entityName,\n entityNamePlural,\n entityId,\n }: {\n entityName: string;\n entityNamePlural: string;\n entityId: string;\n }) => void;\n searchPlaceholder?: string;\n noResultsMsg?: string;\n className?: string;\n onSearchChange?: (e: string) => void;\n projectId: string;\n schema: Entity[];\n}\n\nconst getBaseSearchRequest = (schema: Entity[]): SearchRequestProps => {\n const collections = schema\n .filter((entity) => entity.attributes.some((attr) => attr.isSearchable))\n .map((entity) => entity.plural);\n\n return {\n searchRequests: {\n searches: collections.map((collection) => ({\n collection,\n })),\n },\n commonParams: {\n q: '',\n },\n };\n};\n\nexport function Search({\n onSelect,\n searchPlaceholder = 'Search...',\n noResultsMsg = 'Nothing found',\n className,\n onSearchChange,\n projectId,\n schema,\n}: SearchProps): JSX.Element {\n const [isOpen, setIsOpen] = useState(false);\n const [inputValue, setInputValue] = useState('');\n const searchRequest = useMemo(() => getBaseSearchRequest(schema), [schema]);\n const [searchQuery, setSearchQuery] = useState(searchRequest);\n const inputRef = useRef<HTMLInputElement>(null);\n const { results, isLoading } = useSearch(projectId, searchQuery);\n const navigate = useNavigate();\n\n function handleOnSearchChange(q: string): void {\n setInputValue(q);\n // TODO: Add debounce\n if (q.length > 0) {\n setIsOpen(true);\n setSearchQuery({ ...searchRequest, commonParams: { q } });\n }\n\n if (q.length === 0) setIsOpen(false);\n\n if (onSearchChange) {\n onSearchChange(q);\n }\n }\n\n function handleClear(): void {\n setInputValue('');\n setIsOpen(false);\n setSearchQuery(searchRequest);\n\n if (inputRef.current) {\n inputRef.current.value = '';\n }\n\n // Remove id from URL if present\n const url = new URL(window.location.href);\n\n if (url.searchParams.has('id')) {\n url.searchParams.delete('id');\n navigate(url.pathname + url.search);\n }\n }\n\n // TODO: handle error\n\n return (\n <Command\n className=\"fk:relative fk:overflow-visible fk:h-auto fk:justify-center\"\n onBlur={() => {\n // close after a delay to allow any click event from the results list to be handled\n setTimeout(() => {\n setIsOpen(false);\n }, 300);\n }}\n onKeyDown={(e) => {\n if (e.key === 'Escape') {\n e.preventDefault();\n setIsOpen(false);\n }\n }}\n shouldFilter={false}\n >\n <div\n className={cn(\n 'fk:flex fk:items-center fk:border fk:border-border fk:rounded-md fk:px-3 fk:h-9 fk:md:w-[100px] fk:lg:w-[300px] fk:ring-offset-background',\n 'fk:focus-within:outline-hidden fk:focus-within:ring-2 fk:focus-within:ring-ring fk:focus-within:ring-offset-2'\n )}\n >\n {isLoading ? (\n <LoaderCircle className=\"fk:mr-2 fk:h-4 fk:w-4 fk:shrink-0 fk:opacity-50 fk:animate-spin\" />\n ) : (\n <SearchIcon className=\"fk:mr-2 fk:h-4 fk:w-4 fk:shrink-0 fk:opacity-50\" />\n )}\n <CommandPrimitive.Input\n className={cn(\n 'fk:flex fk:h-9 fk:w-full fk:rounded-md fk:bg-transparent fk:py-1 fk:text-sm fk:outline-hidden fk:placeholder:text-muted-foreground fk:disabled:cursor-not-allowed fk:disabled:opacity-50',\n className\n )}\n placeholder={searchPlaceholder}\n onMouseDown={() => {\n if ((inputRef.current?.value.length ?? 0) > 0) setIsOpen(true);\n }}\n onValueChange={handleOnSearchChange}\n ref={inputRef}\n value={inputValue}\n />\n {inputValue && (\n <button\n className=\"fk:flex fk:items-center fk:justify-center fk:ml-2 fk:text-muted-foreground fk:hover:text-foreground\"\n onClick={handleClear}\n type=\"button\"\n >\n <XIcon className=\"fk:h-4 fk:w-4\" />\n </button>\n )}\n </div>\n <div className=\"fk:relative fk:max-w-[600px]\">\n <div\n className={cn(\n 'fk:mt-1 fk:animate-in fk:fade-in-0 fk:zoom-in-95 fk:absolute fk:top-0 fk:z-10 fk:w-full fk:rounded-md fk:bg-popover fk:outline-hidden fk:drop-shadow-md fk:border fk:border-border',\n isOpen ? 'fk:block' : 'fk:hidden'\n )}\n >\n <ScrollArea className=\"fk:max-h-[220px] fk:overflow-auto\">\n <CommandEmpty>{noResultsMsg}</CommandEmpty>\n <CommandList>\n <CommandGroup>\n {results.length > 0 && <CommandItem aria-hidden=\"true\" className=\"fk:hidden!\" value=\"-\" />}\n {results.map((item) => (\n <CommandItem\n className=\"fk:flex\"\n key={item._id}\n value={item._id}\n onSelect={(entityId) => {\n onSelect({ entityName: item._entityName, entityNamePlural: item._entityNamePlural, entityId });\n }}\n >\n <span className=\"fk:basis-full\">{item[Object.keys(item)[3]]}</span>\n <Badge className=\"fk:py-px fk:text-[0.6875rem] fk:leading-3 fk:bg-teal-400\">\n {item._entityName}\n </Badge>\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </ScrollArea>\n </div>\n </div>\n </Command>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/ui/components/search.tsx"],"names":["getBaseSearchRequest","schema","entity","attr","collection","Search","onSelect","searchPlaceholder","noResultsMsg","className","onSearchChange","projectId","isOpen","setIsOpen","useState","inputValue","setInputValue","searchRequest","useMemo","searchQuery","setSearchQuery","inputRef","useRef","results","isLoading","useSearch","navigate","useNavigate","handleOnSearchChange","q","handleClear","url","jsxs","Command","cn","jsx","LoaderCircle","SearchIcon","CommandPrimitive","XIcon","ScrollArea","CommandEmpty","CommandList","CommandGroup","CommandItem","item","entityId","Badge"],"mappings":"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","file":"search-MG2W4GGN.js","sourcesContent":["'use client';\n\nimport { useRef, useState, useMemo } from 'react';\nimport type { JSX } from 'react';\nimport { LoaderCircle, Search as SearchIcon, X as XIcon } from 'lucide-react';\nimport { Command as CommandPrimitive } from 'cmdk';\nimport { useNavigate } from 'react-router-dom';\nimport { useSearch } from '../../core/use-search';\nimport { cn } from '../lib/utils';\nimport { Badge } from '../primitives/badge';\nimport { Command, CommandEmpty, CommandGroup, CommandItem, CommandList } from '../primitives/command';\nimport { ScrollArea } from '../primitives/scroll-area';\nimport type { Entity, SearchRequestProps } from '../../core/types';\n\nexport type ComboBoxItemType = {\n value: string;\n label: string;\n};\n\nexport interface SearchProps {\n onSelect: ({\n entityName,\n entityNamePlural,\n entityId,\n }: {\n entityName: string;\n entityNamePlural: string;\n entityId: string;\n }) => void;\n searchPlaceholder?: string;\n noResultsMsg?: string;\n className?: string;\n onSearchChange?: (e: string) => void;\n projectId: string;\n schema: Entity[];\n}\n\nconst getBaseSearchRequest = (schema: Entity[]): SearchRequestProps => {\n const collections = schema\n .filter((entity) => entity.attributes.some((attr) => attr.isSearchable))\n .map((entity) => entity.plural);\n\n return {\n searchRequests: {\n searches: collections.map((collection) => ({\n collection,\n })),\n },\n commonParams: {\n q: '',\n },\n };\n};\n\nexport function Search({\n onSelect,\n searchPlaceholder = 'Search...',\n noResultsMsg = 'Nothing found',\n className,\n onSearchChange,\n projectId,\n schema,\n}: SearchProps): JSX.Element {\n const [isOpen, setIsOpen] = useState(false);\n const [inputValue, setInputValue] = useState('');\n const searchRequest = useMemo(() => getBaseSearchRequest(schema), [schema]);\n const [searchQuery, setSearchQuery] = useState(searchRequest);\n const inputRef = useRef<HTMLInputElement>(null);\n const { results, isLoading } = useSearch(projectId, searchQuery);\n const navigate = useNavigate();\n\n function handleOnSearchChange(q: string): void {\n setInputValue(q);\n // TODO: Add debounce\n if (q.length > 0) {\n setIsOpen(true);\n setSearchQuery({ ...searchRequest, commonParams: { q } });\n }\n\n if (q.length === 0) setIsOpen(false);\n\n if (onSearchChange) {\n onSearchChange(q);\n }\n }\n\n function handleClear(): void {\n setInputValue('');\n setIsOpen(false);\n setSearchQuery(searchRequest);\n\n if (inputRef.current) {\n inputRef.current.value = '';\n }\n\n // Remove id from URL if present\n const url = new URL(window.location.href);\n\n if (url.searchParams.has('id')) {\n url.searchParams.delete('id');\n navigate(url.pathname + url.search);\n }\n }\n\n // TODO: handle error\n\n return (\n <Command\n className=\"fk:relative fk:overflow-visible fk:h-auto fk:justify-center\"\n onBlur={() => {\n // close after a delay to allow any click event from the results list to be handled\n setTimeout(() => {\n setIsOpen(false);\n }, 300);\n }}\n onKeyDown={(e) => {\n if (e.key === 'Escape') {\n e.preventDefault();\n setIsOpen(false);\n }\n }}\n shouldFilter={false}\n >\n <div\n className={cn(\n 'fk:flex fk:items-center fk:border fk:border-border fk:rounded-md fk:px-3 fk:h-9 fk:md:w-[100px] fk:lg:w-[300px] fk:ring-offset-background',\n 'fk:focus-within:outline-hidden fk:focus-within:ring-2 fk:focus-within:ring-ring fk:focus-within:ring-offset-2'\n )}\n >\n {isLoading ? (\n <LoaderCircle className=\"fk:mr-2 fk:h-4 fk:w-4 fk:shrink-0 fk:opacity-50 fk:animate-spin\" />\n ) : (\n <SearchIcon className=\"fk:mr-2 fk:h-4 fk:w-4 fk:shrink-0 fk:opacity-50\" />\n )}\n <CommandPrimitive.Input\n className={cn(\n 'fk:flex fk:h-9 fk:w-full fk:rounded-md fk:bg-transparent fk:py-1 fk:text-sm fk:outline-hidden fk:placeholder:text-muted-foreground fk:disabled:cursor-not-allowed fk:disabled:opacity-50',\n className\n )}\n placeholder={searchPlaceholder}\n onMouseDown={() => {\n if ((inputRef.current?.value.length ?? 0) > 0) setIsOpen(true);\n }}\n onValueChange={handleOnSearchChange}\n ref={inputRef}\n value={inputValue}\n />\n {inputValue && (\n <button\n className=\"fk:flex fk:items-center fk:justify-center fk:ml-2 fk:text-muted-foreground fk:hover:text-foreground\"\n onClick={handleClear}\n type=\"button\"\n >\n <XIcon className=\"fk:h-4 fk:w-4\" />\n </button>\n )}\n </div>\n <div className=\"fk:relative fk:max-w-[600px]\">\n <div\n className={cn(\n 'fk:mt-1 fk:animate-in fk:fade-in-0 fk:zoom-in-95 fk:absolute fk:top-0 fk:z-10 fk:w-full fk:rounded-md fk:bg-popover fk:outline-hidden fk:drop-shadow-md fk:border fk:border-border',\n isOpen ? 'fk:block' : 'fk:hidden'\n )}\n >\n <ScrollArea className=\"fk:max-h-[220px] fk:overflow-auto\">\n <CommandEmpty>{noResultsMsg}</CommandEmpty>\n <CommandList>\n <CommandGroup>\n {results.length > 0 && <CommandItem aria-hidden=\"true\" className=\"fk:hidden!\" value=\"-\" />}\n {results.map((item) => (\n <CommandItem\n className=\"fk:flex\"\n key={item._id}\n value={item._id}\n onSelect={(entityId) => {\n onSelect({ entityName: item._entityName, entityNamePlural: item._entityNamePlural, entityId });\n }}\n >\n <span className=\"fk:basis-full\">{item[Object.keys(item)[3]]}</span>\n <Badge className=\"fk:py-px fk:text-[0.6875rem] fk:leading-3 fk:bg-teal-400\">\n {item._entityName}\n </Badge>\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </ScrollArea>\n </div>\n </div>\n </Command>\n );\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  handleFlexkitRequest
3
- } from "./chunk-3S65434F.js";
3
+ } from "./chunk-PCZI6VXG.js";
4
4
 
5
5
  // src/auth/tanstack-start-api.ts
6
6
  function getCookieValue(cookieHeader, name) {
@@ -5,7 +5,7 @@ import { Control, UseFormSetValue, FieldValues } from 'react-hook-form';
5
5
 
6
6
  type AttributeValue = {
7
7
  _id: string;
8
- [key: string]: string | AttributeValue | null;
8
+ [key: string]: string | AttributeValue | AttributeValue[] | null;
9
9
  __typename: string;
10
10
  };
11
11
  type EntityItem = {
@@ -135,8 +135,7 @@ type AttributeOptions = {
135
135
  switch: CommonOptions;
136
136
  [key: string]: CommonOptions;
137
137
  };
138
- type Attribute = {
139
- dataType: DataType;
138
+ type AttributeBase = {
140
139
  defaultValue?: string;
141
140
  inputType: InputType;
142
141
  previewType?: PreviewType;
@@ -153,9 +152,15 @@ type Attribute = {
153
152
  mode: 'single' | 'multiple';
154
153
  field: string;
155
154
  };
156
- scope: ScopeType;
157
155
  validation?: (z: ZodType) => ZodTypeAny;
158
156
  };
157
+ type Attribute = (AttributeBase & {
158
+ dataType: 'asset';
159
+ scope?: 'global';
160
+ }) | (AttributeBase & {
161
+ dataType: Exclude<DataType, 'asset'>;
162
+ scope: ScopeType;
163
+ });
159
164
  type Entity = {
160
165
  name: string;
161
166
  plural: string;
package/dist/ui.d.ts CHANGED
@@ -9,7 +9,7 @@ import { FieldValues, FieldPath, ControllerProps } from 'react-hook-form';
9
9
  import { Command as Command$1 } from 'cmdk';
10
10
  import * as ResizablePrimitive from 'react-resizable-panels';
11
11
  export { PanelImperativeHandle } from 'react-resizable-panels';
12
- import { S as SingleProject } from './types.d-B-SE1ihC.js';
12
+ import { S as SingleProject } from './types.d-Da7sP-Fn.js';
13
13
  import { ToasterProps } from 'sonner';
14
14
  export { toast } from 'sonner';
15
15
  import 'zod';
package/dist/ui.js CHANGED
@@ -1,2 +1,2 @@
1
- import'./index.css';export{g as Separator,h as Table,j as TableBody,o as TableCaption,n as TableCell,k as TableFooter,m as TableHead,i as TableHeader,l as TableRow,f as Toaster,b as Toggle,c as ToggleGroup,d as ToggleGroupItem,e as toast,a as toggleVariants}from'./chunk-RVGMKQPC.js';export{a as Input}from'./chunk-FPK7J4BP.js';export{a as Textarea}from'./chunk-PEYW7XOU.js';import {a as a$1,b as b$1,c,e}from'./chunk-5CKMFBWH.js';export{b as Tooltip,e as TooltipContent,d as TooltipPortal,a as TooltipProvider,c as TooltipTrigger}from'./chunk-5CKMFBWH.js';export{a as Select,e as SelectContent,b as SelectGroup,g as SelectItem,f as SelectLabel,j as SelectScrollDownButton,i as SelectScrollUpButton,h as SelectSeparator,d as SelectTrigger,c as SelectValue}from'./chunk-7WR64NTK.js';export{b as Badge,m as Command,n as CommandDialog,q as CommandEmpty,r as CommandGroup,o as CommandInput,t as CommandItem,p as CommandList,s as CommandSeparator,u as CommandShortcut,c as Dialog,f as DialogClose,h as DialogContent,l as DialogDescription,j as DialogFooter,i as DialogHeader,g as DialogOverlay,e as DialogPortal,k as DialogTitle,d as DialogTrigger,v as ScrollArea,w as ScrollBar,a as badgeVariants}from'./chunk-ND3OZVR5.js';export{a as Avatar,c as AvatarFallback,b as AvatarImage}from'./chunk-SW6NNU5D.js';export{c as DropdownMenu,i as DropdownMenuCheckboxItem,f as DropdownMenuContent,g as DropdownMenuGroup,h as DropdownMenuItem,l as DropdownMenuLabel,d as DropdownMenuPortal,j as DropdownMenuRadioGroup,k as DropdownMenuRadioItem,m as DropdownMenuSeparator,n as DropdownMenuShortcut,o as DropdownMenuSub,q as DropdownMenuSubContent,p as DropdownMenuSubTrigger,e as DropdownMenuTrigger,r as Skeleton}from'./chunk-YXRNHQPG.js';import {b}from'./chunk-EYGOJ2ZN.js';export{b as Button,a as buttonVariants}from'./chunk-EYGOJ2ZN.js';export{a as Switch}from'./chunk-6MOUYNN4.js';export{b as Form,g as FormControl,h as FormDescription,c as FormField,e as FormItem,f as FormLabel,i as FormMessage,a as Label,d as useFormField}from'./chunk-53TUQIKJ.js';import {a}from'./chunk-O2QMYUPS.js';import*as E from'lucide-react';import {SquareArrowOutUpRight,GripVerticalIcon,XIcon,PanelLeftIcon}from'lucide-react';import {jsx,jsxs}from'react/jsx-runtime';import*as h from'react-resizable-panels';import {Dialog,Slot,Tabs}from'radix-ui';import*as d from'react';import {createElement}from'react';import na from'fuse.js';import {NavLink}from'react-router-dom';import {cva}from'class-variance-authority';import {groupBy}from'ramda';function Ot({href:e,children:t}){return jsx(b,{asChild:true,className:"fk:h-6 fk:px-1! fk:py-0 fk:text-sm fk:font-light fk:text-link",size:"sm",variant:"link",children:jsxs("a",{href:e,target:"_blank",children:[t," ",jsx(SquareArrowOutUpRight,{className:"fk:size-3",strokeWidth:3})]})})}function Ht({className:e,...t}){return jsx(h.Group,{"data-slot":"resizable-panel-group",className:a("fk:flex fk:h-full fk:w-full fk:aria-[orientation=vertical]:flex-col",e),...t})}function Ft({...e}){return jsx(h.Panel,{"data-slot":"resizable-panel",...e})}function $t({withHandle:e,className:t,...a$1}){return jsx(h.Separator,{"data-slot":"resizable-handle",className:a("fk:relative fk:flex fk:w-px fk:items-center fk:justify-center fk:bg-border fk:after:absolute fk:after:inset-y-0 fk:after:left-1/2 fk:after:w-1 fk:after:-translate-x-1/2 fk:focus-visible:ring-1 fk:focus-visible:ring-ring fk:focus-visible:ring-offset-1 fk:focus-visible:outline-hidden fk:aria-[orientation=horizontal]:h-px fk:aria-[orientation=horizontal]:w-full fk:aria-[orientation=horizontal]:after:left-0 fk:aria-[orientation=horizontal]:after:h-1 fk:aria-[orientation=horizontal]:after:w-full fk:aria-[orientation=horizontal]:after:translate-x-0 fk:aria-[orientation=horizontal]:after:-translate-y-1/2 fk:[&[aria-orientation=horizontal]>div]:rotate-90",t),...a$1,children:e&&jsx("div",{className:"fk:z-10 fk:flex fk:h-8 fk:w-3 fk:items-center fk:justify-center fk:rounded-xs fk:border fk:bg-border",children:jsx(GripVerticalIcon,{className:"fk:size-2.5"})})})}function F({...e}){return jsx(Dialog.Root,{"data-slot":"sheet",...e})}function Kt({...e}){return jsx(Dialog.Trigger,{"data-slot":"sheet-trigger",...e})}function Wt({...e}){return jsx(Dialog.Close,{"data-slot":"sheet-close",...e})}function Q({...e}){return jsx(Dialog.Portal,{"data-slot":"sheet-portal",...e})}function ee({className:e,...t}){return jsx(Dialog.Overlay,{"data-slot":"sheet-overlay",className:a("fk:fixed fk:inset-0 fk:z-50 fk:bg-black/50 fk:data-[state=closed]:animate-out fk:data-[state=closed]:fade-out-0 fk:data-[state=open]:animate-in fk:data-[state=open]:fade-in-0",e),...t})}function $({className:e,children:t,side:a$1="right",showCloseButton:f=true,...s}){return jsxs(Q,{children:[jsx(ee,{}),jsxs(Dialog.Content,{"data-slot":"sheet-content",className:a("fk:fixed fk:z-50 fk:flex fk:flex-col fk:gap-4 fk:bg-background fk:shadow-lg fk:transition fk:ease-in-out fk:data-[state=closed]:animate-out fk:data-[state=closed]:duration-300 fk:data-[state=open]:animate-in fk:data-[state=open]:duration-500",a$1==="right"&&"fk:inset-y-0 fk:right-0 fk:h-full fk:w-3/4 fk:border-l fk:data-[state=closed]:slide-out-to-right fk:data-[state=open]:slide-in-from-right fk:sm:max-w-sm",a$1==="left"&&"fk:inset-y-0 fk:left-0 fk:h-full fk:w-3/4 fk:border-r fk:data-[state=closed]:slide-out-to-left fk:data-[state=open]:slide-in-from-left fk:sm:max-w-sm",a$1==="top"&&"fk:inset-x-0 fk:top-0 fk:h-auto fk:border-b fk:data-[state=closed]:slide-out-to-top fk:data-[state=open]:slide-in-from-top",a$1==="bottom"&&"fk:inset-x-0 fk:bottom-0 fk:h-auto fk:border-t fk:data-[state=closed]:slide-out-to-bottom fk:data-[state=open]:slide-in-from-bottom",e),...s,children:[t,f&&jsxs(Dialog.Close,{className:"fk:absolute fk:top-4 fk:right-4 fk:rounded-xs fk:opacity-70 fk:ring-offset-background fk:transition-opacity fk:hover:opacity-100 fk:focus:ring-2 fk:focus:ring-ring fk:focus:ring-offset-2 fk:focus:outline-hidden fk:disabled:pointer-events-none fk:data-[state=open]:bg-secondary",children:[jsx(XIcon,{className:"fk:size-4"}),jsx("span",{className:"fk:sr-only",children:"Close"})]})]})]})}function j({className:e,...t}){return jsx("div",{"data-slot":"sheet-header",className:a("fk:flex fk:flex-col fk:gap-1.5 fk:p-4",e),...t})}function Xt({className:e,...t}){return jsx("div",{"data-slot":"sheet-footer",className:a("fk:mt-auto fk:flex fk:flex-col fk:gap-2 fk:p-4",e),...t})}function K({className:e,...t}){return jsx(Dialog.Title,{"data-slot":"sheet-title",className:a("fk:font-semibold fk:text-foreground",e),...t})}function W({className:e,...t}){return jsx(Dialog.Description,{"data-slot":"sheet-description",className:a("fk:text-sm fk:text-muted-foreground",e),...t})}var X=768;function te(){let[e,t]=d.useState(void 0);return d.useEffect(()=>{let a=window.matchMedia(`(max-width: ${X-1}px)`),f=()=>{t(window.innerWidth<X);};return a.addEventListener("change",f),t(window.innerWidth<X),()=>a.removeEventListener("change",f)},[]),!!e}var Ut="flexkit:sidebar:state",Yt=3600*24*7,Zt="16rem",Qt="18rem",ea="2rem",ta="b",oe=d.createContext(null);function w(){let e=d.useContext(oe);if(!e)throw new Error("useSidebar must be used within a SidebarProvider.");return e}function aa({defaultOpen:e=true,open:t,onOpenChange:a$2,className:f,style:s,children:u,...r}){let n=te(),[g,b]=d.useState(false),[R,fe]=d.useState(e),v=t??R,y=d.useCallback(c=>{let m=typeof c=="function"?c(v):c;a$2?a$2(m):fe(m),document.cookie=`${Ut}=${m}; path=/; max-age=${Yt}`;},[a$2,v]),T=d.useCallback(()=>n?b(c=>!c):y(c=>!c),[n,y,b]);d.useEffect(()=>{let c=m=>{m.key===ta&&(m.metaKey||m.ctrlKey)&&(m.preventDefault(),T());};return window.addEventListener("keydown",c),()=>window.removeEventListener("keydown",c)},[T]);let Y=v?"expanded":"collapsed",de=d.useMemo(()=>({state:Y,open:v,setOpen:y,isMobile:n,openMobile:g,setOpenMobile:b,toggleSidebar:T}),[Y,v,y,n,g,b,T]);return jsx(oe.Provider,{value:de,children:jsx(a$1,{delayDuration:0,children:jsx("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":Zt,"--sidebar-width-icon":ea,...s},className:a("fk:group/sidebar-wrapper fk:flex fk:w-full fk:has-data-[variant=inset]:bg-sidebar fk:overflow-hidden",f),...r,children:u})})})}function q({side:e="left",variant:t="sidebar",collapsible:a$1="offcanvas",className:f,children:s,...u}){let{isMobile:r,state:n,openMobile:g,setOpenMobile:b}=w();return a$1==="none"?jsx("div",{"data-slot":"sidebar",className:a("fk:flex fk:h-full fk:w-(--sidebar-width) fk:flex-col fk:bg-sidebar fk:text-sidebar-foreground",f),...u,children:s}):r?jsx(F,{open:g,onOpenChange:b,...u,children:jsxs($,{"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true",className:"fk:w-(--sidebar-width) fk:bg-sidebar fk:p-0 fk:text-sidebar-foreground fk:[&>button]:hidden",style:{"--sidebar-width":Qt},side:e,children:[jsxs(j,{className:"fk:sr-only",children:[jsx(K,{children:"Sidebar"}),jsx(W,{children:"Displays the mobile sidebar."})]}),jsx("div",{className:"fk:flex fk:h-full fk:w-full fk:flex-col",children:s})]})}):jsxs("div",{className:"fk:group fk:peer fk:hidden fk:text-sidebar-foreground fk:md:block","data-state":n,"data-collapsible":n==="collapsed"?a$1:"","data-variant":t,"data-side":e,"data-slot":"sidebar",children:[jsx("div",{"data-slot":"sidebar-gap",className:a("fk:relative fk:w-(--sidebar-width) fk:bg-transparent fk:transition-[width] fk:duration-200 fk:ease-linear","fk:group-data-[collapsible=offcanvas]:w-0","fk:group-data-[side=right]:rotate-180",t==="floating"||t==="inset"?"fk:group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"fk:group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),jsx("div",{"data-slot":"sidebar-container",className:a("fk:relative fk:inset-y-0 fk:z-10 fk:hidden fk:h-[calc(100svh-3.5rem)] fk:w-(--sidebar-width) fk:transition-[left,right,width] fk:duration-200 fk:ease-linear fk:md:flex",e==="left"?"fk:left-0 fk:group-data-[collapsible=offcanvas]:-left-(--sidebar-width)":"fk:right-0 k:group-data-[collapsible=offcanvas]:-right-(--sidebar-width)",t==="floating"||t==="inset"?"fk:group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)] fk:group-data-[side=left]:border-r":"fk:group-data-[collapsible=icon]:w-(--sidebar-width-icon) fk:group-data-[side=left]:border-r fk:group-data-[side=right]:border-l",f),...u,children:jsx("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"fk:flex fk:h-full fk:w-full fk:flex-col fk:bg-sidebar fk:group-data-[variant=floating]:rounded-lg fk:group-data-[variant=floating]:border fk:group-data-[variant=floating]:border-sidebar-border fk:group-data-[variant=floating]:shadow-sm",children:s})})]})}function oa({className:e,onClick:t,...a$1}){let{toggleSidebar:f}=w();return jsxs(b,{"data-sidebar":"trigger","data-slot":"sidebar-trigger",variant:"ghost",size:"icon",className:a("fk:size-7",e),onClick:s=>{t?.(s),f();},...a$1,children:[jsx(PanelLeftIcon,{}),jsx("span",{className:"fk:sr-only",children:"Toggle Sidebar"})]})}function J({className:e,...t}){let{toggleSidebar:a$1}=w();return jsx("button",{"data-sidebar":"rail","data-slot":"sidebar-rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:a$1,title:"Toggle Sidebar",className:a("fk:absolute fk:inset-y-0 fk:z-20 fk:hidden fk:w-4 fk:-translate-x-1/2 fk:transition-all fk:ease-linear fk:group-data-[side=left]:-right-4 fk:group-data-[side=right]:left-0 fk:after:absolute fk:after:inset-y-0 fk:after:left-1/2 fk:after:w-[2px] fk:hover:after:bg-sidebar-border fk:sm:flex","fk:in-data-[side=left]:cursor-w-resize fk:in-data-[side=right]:cursor-e-resize","fk:[[data-side=left][data-state=collapsed]_&]:cursor-e-resize fk:[[data-side=right][data-state=collapsed]_&]:cursor-w-resize","fk:group-data-[collapsible=offcanvas]:translate-x-0 fk:group-data-[collapsible=offcanvas]:after:left-full fk:hover:group-data-[collapsible=offcanvas]:bg-sidebar","fk:[[data-side=left][data-collapsible=offcanvas]_&]:-right-2","fk:[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",e),...t})}function ra({className:e,...t}){return jsx("main",{"data-slot":"sidebar-inset",className:a("fk:relative fk:flex fk:flex-1 fk:flex-col fk:bg-background fk:overflow-hidden fk:peer-data-[variant=inset]:h-[calc(100svh-3.625rem)]",e),...t})}function U({className:e,...t}){return jsx("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:a("fk:flex fk:min-h-0 fk:flex-1 fk:flex-col fk:overflow-auto fk:group-data-[collapsible=icon]:overflow-hidden",e),...t})}function z({className:e,...t}){return jsx("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:a("fk:relative fk:flex fk:w-full fk:min-w-0 fk:flex-col fk:p-2",e),...t})}function re({className:e,asChild:t=false,...a$1}){let f=t?Slot.Root:"div";return jsx(f,{"data-slot":"sidebar-group-label","data-sidebar":"group-label",className:a("fk:flex fk:h-8 fk:shrink-0 fk:items-center fk:rounded-md fk:px-2 fk:text-xs fk:font-medium fk:text-sidebar-foreground/70 fk:ring-sidebar-ring fk:outline-hidden fk:transition-[margin,opacity] fk:duration-200 fk:ease-linear fk:focus-visible:ring-2 fk:[&>svg]:size-4 fk:[&>svg]:shrink-0","fk:group-data-[collapsible=icon]:-mt-8 fk:group-data-[collapsible=icon]:opacity-0",e),...a$1})}function N({className:e,...t}){return jsx("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:a("fk:flex fk:w-full fk:min-w-0 fk:flex-col fk:gap-1",e),...t})}function I({className:e,...t}){return jsx("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:a("fk:group/menu-item fk:relative",e),...t})}var ia=cva("fk:peer/menu-button fk:flex fk:w-full fk:items-center fk:gap-2 fk:overflow-hidden fk:rounded-md fk:p-2 fk:text-left fk:text-sm fk:ring-sidebar-ring fk:outline-hidden fk:transition-[width,height,padding] fk:group-has-data-[sidebar=menu-action]/menu-item:pr-8 fk:group-data-[collapsible=icon]:size-8! fk:group-data-[collapsible=icon]:p-2! fk:hover:bg-sidebar-accent fk:hover:text-sidebar-accent-foreground fk:focus-visible:ring-2 fk:active:bg-sidebar-accent fk:active:text-sidebar-accent-foreground fk:disabled:pointer-events-none fk:disabled:opacity-50 fk:aria-disabled:pointer-events-none fk:aria-disabled:opacity-50 fk:data-[active=true]:bg-sidebar-accent fk:data-[active=true]:font-medium fk:data-[active=true]:text-sidebar-accent-foreground fk:data-[state=open]:hover:bg-sidebar-accent fk:data-[state=open]:hover:text-sidebar-accent-foreground fk:[&>span:last-child]:truncate fk:[&>svg]:size-4 fk:[&>svg]:shrink-0",{variants:{variant:{default:"fk:hover:bg-sidebar-accent fk:hover:text-sidebar-accent-foreground",outline:"fk:bg-background fk:shadow-[0_0_0_1px_hsl(var(--sidebar-border))] fk:hover:bg-sidebar-accent fk:hover:text-sidebar-accent-foreground fk:hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{default:"fk:h-8 fk:text-sm",sm:"fk:h-7 fk:text-xs",lg:"fk:h-12 fk:text-sm fk:group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function D({asChild:e$1=false,isActive:t=false,variant:a$1="default",size:f="default",tooltip:s,className:u,...r}){let n=e$1?Slot.Root:"button",{isMobile:g,state:b}=w(),R=jsx(n,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":f,"data-active":t,className:a(ia({variant:a$1,size:f}),u),...r});return s?(typeof s=="string"&&(s={children:s}),jsxs(b$1,{children:[jsx(c,{asChild:true,children:R}),jsx(e,{side:"right",align:"center",hidden:b!=="collapsed"||g,...s})]})):R}var ne=NavLink,da=Object.keys(E).map(e=>({name:e,icon:E[e]})),la=new na(da,{keys:["name"],threshold:.5});function ka({className:e,menuGroups:t,schema:a}){let f=a.filter(r=>!(r.menu&&"hidden"in r.menu)),s=groupBy(r=>r.menu?.group&&t?.find(n=>n.name===r.menu?.group)?.name||"ungrouped",f),u=t?.filter(r=>s[r.name]?.length);return jsxs(q,{className:e,collapsible:"icon",variant:"inset",children:[jsxs(U,{children:[u?.map(r=>jsxs(z,{children:[jsx(re,{children:r.title}),jsx(N,{children:s[r.name]?.map(n=>jsx(I,{children:jsx(D,{asChild:true,isActive:location.pathname.includes(`/list/${n.plural}`),tooltip:B(n.menu?.label??n.plural),children:jsxs(ne,{to:`list/${n.plural}`,children:[n.menu?.icon??createElement(E[se(n.name)],{className:"fk:h-4 fk:w-4 fk:mr-2",strokeWidth:2}),jsx("span",{children:B(n.menu?.label??n.plural)})]})})},n.plural))})]},r.name)),jsx(z,{children:jsx(N,{children:s.ungrouped?.map(r=>jsx(I,{children:jsx(D,{asChild:true,isActive:location.pathname.includes(`/list/${r.plural}`),tooltip:B(r.menu?.label??r.plural),children:jsxs(ne,{to:`list/${r.plural}`,children:[createElement(E[se(r.name)],{className:"fk:h-4 fk:w-4 fk:mr-2",strokeWidth:2}),jsx("span",{children:B(r.menu?.label??r.plural)})]})})},r.plural))})})]}),jsx(J,{})]})}function B(e){let t=e.replace(/([A-Z])/g," $1");return t.charAt(0).toUpperCase()+t.slice(1).trim()}function se(e){let t=la.search(e);return t.length>0?t[0].item.name:"Dock"}function ua({className:e,orientation:t="horizontal",...a$1}){return jsx(Tabs.Root,{"data-slot":"tabs","data-orientation":t,orientation:t,className:a("fk:group/tabs fk:flex fk:data-[orientation=horizontal]:flex-col",e),...a$1})}var pa=cva("fk:group/tabs-list fk:inline-flex fk:w-fit fk:items-center fk:justify-center fk:rounded-lg fk:p-[3px] fk:text-muted-foreground fk:group-data-[orientation=horizontal]/tabs:h-9 fk:group-data-[orientation=vertical]/tabs:h-fit fk:group-data-[orientation=vertical]/tabs:flex-col fk:data-[variant=line]:rounded-none",{variants:{variant:{default:"fk:bg-muted",line:"fk:gap-1 fk:bg-transparent"}},defaultVariants:{variant:"default"}});function ba({className:e,variant:t="default",...a$1}){return jsx(Tabs.List,{"data-slot":"tabs-list","data-variant":t,className:a(pa({variant:t}),e),...a$1})}function ma({className:e,...t}){return jsx(Tabs.Trigger,{"data-slot":"tabs-trigger",className:a("fk:relative fk:inline-flex fk:h-[calc(100%-1px)] fk:flex-1 fk:items-center fk:justify-center fk:gap-1.5 fk:rounded-md fk:border fk:border-transparent! fk:px-4 fk:py-1 fk:text-sm fk:font-medium fk:whitespace-nowrap fk:text-foreground/60 fk:transition-all fk:group-data-[orientation=vertical]/tabs:w-full fk:group-data-[orientation=vertical]/tabs:justify-start fk:hover:text-foreground fk:focus-visible:border-ring! fk:focus-visible:ring-[3px] fk:focus-visible:ring-ring/50 fk:focus-visible:outline-1 fk:focus-visible:outline-ring fk:disabled:pointer-events-none fk:disabled:opacity-50 fk:group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm fk:group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none fk:dark:text-muted-foreground fk:dark:hover:text-foreground fk:[&_svg]:pointer-events-none fk:[&_svg]:shrink-0 fk:[&_svg:not([class*='size-'])]:size-4","fk:group-data-[variant=line]/tabs-list:bg-transparent fk:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent fk:dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent! fk:dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent","fk:data-[state=active]:bg-background fk:data-[state=active]:text-foreground fk:dark:data-[state=active]:border-muted-foreground/75! fk:dark:data-[state=active]:bg-input/30 fk:dark:data-[state=active]:text-foreground","fk:after:absolute fk:after:bg-foreground fk:after:opacity-0 fk:after:transition-opacity fk:group-data-[orientation=horizontal]/tabs:after:inset-x-0 fk:group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] fk:group-data-[orientation=horizontal]/tabs:after:h-0.5 fk:group-data-[orientation=vertical]/tabs:after:inset-y-0 fk:group-data-[orientation=vertical]/tabs:after:-right-1 fk:group-data-[orientation=vertical]/tabs:after:w-0.5 fk:group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100",e),...t})}function ga({className:e,...t}){return jsx(Tabs.Content,{"data-slot":"tabs-content",className:a("fk:flex-1 fk:outline-none",e),...t})}export{Ot as ExternalLink,$t as ResizableHandle,Ft as ResizablePanel,Ht as ResizablePanelGroup,F as Sheet,Wt as SheetClose,$ as SheetContent,W as SheetDescription,Xt as SheetFooter,j as SheetHeader,ee as SheetOverlay,Q as SheetPortal,K as SheetTitle,Kt as SheetTrigger,ka as Sidebar,U as SidebarContent,z as SidebarGroup,ra as SidebarInset,N as SidebarMenu,D as SidebarMenuButton,I as SidebarMenuItem,q as SidebarPanel,aa as SidebarProvider,J as SidebarRail,oa as SidebarTrigger,ua as Tabs,ga as TabsContent,ba as TabsList,ma as TabsTrigger,w as useSidebar};//# sourceMappingURL=ui.js.map
1
+ import'./index.css';export{g as Separator,h as Table,j as TableBody,o as TableCaption,n as TableCell,k as TableFooter,m as TableHead,i as TableHeader,l as TableRow,f as Toaster,b as Toggle,c as ToggleGroup,d as ToggleGroupItem,e as toast,a as toggleVariants}from'./chunk-RVGMKQPC.js';export{a as Input}from'./chunk-FPK7J4BP.js';export{a as Textarea}from'./chunk-PEYW7XOU.js';import {a as a$1,b as b$1,c,e}from'./chunk-5CKMFBWH.js';export{b as Tooltip,e as TooltipContent,d as TooltipPortal,a as TooltipProvider,c as TooltipTrigger}from'./chunk-5CKMFBWH.js';export{a as Select,e as SelectContent,b as SelectGroup,g as SelectItem,f as SelectLabel,j as SelectScrollDownButton,i as SelectScrollUpButton,h as SelectSeparator,d as SelectTrigger,c as SelectValue}from'./chunk-AOVXSAH5.js';export{b as Badge,m as Command,n as CommandDialog,q as CommandEmpty,r as CommandGroup,o as CommandInput,t as CommandItem,p as CommandList,s as CommandSeparator,u as CommandShortcut,c as Dialog,f as DialogClose,h as DialogContent,l as DialogDescription,j as DialogFooter,i as DialogHeader,g as DialogOverlay,e as DialogPortal,k as DialogTitle,d as DialogTrigger,v as ScrollArea,w as ScrollBar,a as badgeVariants}from'./chunk-ND3OZVR5.js';export{a as Avatar,c as AvatarFallback,b as AvatarImage}from'./chunk-SW6NNU5D.js';export{c as DropdownMenu,i as DropdownMenuCheckboxItem,f as DropdownMenuContent,g as DropdownMenuGroup,h as DropdownMenuItem,l as DropdownMenuLabel,d as DropdownMenuPortal,j as DropdownMenuRadioGroup,k as DropdownMenuRadioItem,m as DropdownMenuSeparator,n as DropdownMenuShortcut,o as DropdownMenuSub,q as DropdownMenuSubContent,p as DropdownMenuSubTrigger,e as DropdownMenuTrigger,r as Skeleton}from'./chunk-YXRNHQPG.js';import {b}from'./chunk-EYGOJ2ZN.js';export{b as Button,a as buttonVariants}from'./chunk-EYGOJ2ZN.js';export{a as Switch}from'./chunk-6MOUYNN4.js';export{b as Form,g as FormControl,h as FormDescription,c as FormField,e as FormItem,f as FormLabel,i as FormMessage,a as Label,d as useFormField}from'./chunk-53TUQIKJ.js';import {a}from'./chunk-O2QMYUPS.js';import*as E from'lucide-react';import {SquareArrowOutUpRight,GripVerticalIcon,XIcon,PanelLeftIcon}from'lucide-react';import {jsx,jsxs}from'react/jsx-runtime';import*as h from'react-resizable-panels';import {Dialog,Slot,Tabs}from'radix-ui';import*as d from'react';import {createElement}from'react';import na from'fuse.js';import {NavLink}from'react-router-dom';import {cva}from'class-variance-authority';import {groupBy}from'ramda';function Ot({href:e,children:t}){return jsx(b,{asChild:true,className:"fk:h-6 fk:px-1! fk:py-0 fk:text-sm fk:font-light fk:text-link",size:"sm",variant:"link",children:jsxs("a",{href:e,target:"_blank",children:[t," ",jsx(SquareArrowOutUpRight,{className:"fk:size-3",strokeWidth:3})]})})}function Ht({className:e,...t}){return jsx(h.Group,{"data-slot":"resizable-panel-group",className:a("fk:flex fk:h-full fk:w-full fk:aria-[orientation=vertical]:flex-col",e),...t})}function Ft({...e}){return jsx(h.Panel,{"data-slot":"resizable-panel",...e})}function $t({withHandle:e,className:t,...a$1}){return jsx(h.Separator,{"data-slot":"resizable-handle",className:a("fk:relative fk:flex fk:w-px fk:items-center fk:justify-center fk:bg-border fk:after:absolute fk:after:inset-y-0 fk:after:left-1/2 fk:after:w-1 fk:after:-translate-x-1/2 fk:focus-visible:ring-1 fk:focus-visible:ring-ring fk:focus-visible:ring-offset-1 fk:focus-visible:outline-hidden fk:aria-[orientation=horizontal]:h-px fk:aria-[orientation=horizontal]:w-full fk:aria-[orientation=horizontal]:after:left-0 fk:aria-[orientation=horizontal]:after:h-1 fk:aria-[orientation=horizontal]:after:w-full fk:aria-[orientation=horizontal]:after:translate-x-0 fk:aria-[orientation=horizontal]:after:-translate-y-1/2 fk:[&[aria-orientation=horizontal]>div]:rotate-90",t),...a$1,children:e&&jsx("div",{className:"fk:z-10 fk:flex fk:h-8 fk:w-3 fk:items-center fk:justify-center fk:rounded-xs fk:border fk:bg-border",children:jsx(GripVerticalIcon,{className:"fk:size-2.5"})})})}function F({...e}){return jsx(Dialog.Root,{"data-slot":"sheet",...e})}function Kt({...e}){return jsx(Dialog.Trigger,{"data-slot":"sheet-trigger",...e})}function Wt({...e}){return jsx(Dialog.Close,{"data-slot":"sheet-close",...e})}function Q({...e}){return jsx(Dialog.Portal,{"data-slot":"sheet-portal",...e})}function ee({className:e,...t}){return jsx(Dialog.Overlay,{"data-slot":"sheet-overlay",className:a("fk:fixed fk:inset-0 fk:z-50 fk:bg-black/50 fk:data-[state=closed]:animate-out fk:data-[state=closed]:fade-out-0 fk:data-[state=open]:animate-in fk:data-[state=open]:fade-in-0",e),...t})}function $({className:e,children:t,side:a$1="right",showCloseButton:f=true,...s}){return jsxs(Q,{children:[jsx(ee,{}),jsxs(Dialog.Content,{"data-slot":"sheet-content",className:a("fk:fixed fk:z-50 fk:flex fk:flex-col fk:gap-4 fk:bg-background fk:shadow-lg fk:transition fk:ease-in-out fk:data-[state=closed]:animate-out fk:data-[state=closed]:duration-300 fk:data-[state=open]:animate-in fk:data-[state=open]:duration-500",a$1==="right"&&"fk:inset-y-0 fk:right-0 fk:h-full fk:w-3/4 fk:border-l fk:data-[state=closed]:slide-out-to-right fk:data-[state=open]:slide-in-from-right fk:sm:max-w-sm",a$1==="left"&&"fk:inset-y-0 fk:left-0 fk:h-full fk:w-3/4 fk:border-r fk:data-[state=closed]:slide-out-to-left fk:data-[state=open]:slide-in-from-left fk:sm:max-w-sm",a$1==="top"&&"fk:inset-x-0 fk:top-0 fk:h-auto fk:border-b fk:data-[state=closed]:slide-out-to-top fk:data-[state=open]:slide-in-from-top",a$1==="bottom"&&"fk:inset-x-0 fk:bottom-0 fk:h-auto fk:border-t fk:data-[state=closed]:slide-out-to-bottom fk:data-[state=open]:slide-in-from-bottom",e),...s,children:[t,f&&jsxs(Dialog.Close,{className:"fk:absolute fk:top-4 fk:right-4 fk:rounded-xs fk:opacity-70 fk:ring-offset-background fk:transition-opacity fk:hover:opacity-100 fk:focus:ring-2 fk:focus:ring-ring fk:focus:ring-offset-2 fk:focus:outline-hidden fk:disabled:pointer-events-none fk:data-[state=open]:bg-secondary",children:[jsx(XIcon,{className:"fk:size-4"}),jsx("span",{className:"fk:sr-only",children:"Close"})]})]})]})}function j({className:e,...t}){return jsx("div",{"data-slot":"sheet-header",className:a("fk:flex fk:flex-col fk:gap-1.5 fk:p-4",e),...t})}function Xt({className:e,...t}){return jsx("div",{"data-slot":"sheet-footer",className:a("fk:mt-auto fk:flex fk:flex-col fk:gap-2 fk:p-4",e),...t})}function K({className:e,...t}){return jsx(Dialog.Title,{"data-slot":"sheet-title",className:a("fk:font-semibold fk:text-foreground",e),...t})}function W({className:e,...t}){return jsx(Dialog.Description,{"data-slot":"sheet-description",className:a("fk:text-sm fk:text-muted-foreground",e),...t})}var X=768;function te(){let[e,t]=d.useState(void 0);return d.useEffect(()=>{let a=window.matchMedia(`(max-width: ${X-1}px)`),f=()=>{t(window.innerWidth<X);};return a.addEventListener("change",f),t(window.innerWidth<X),()=>a.removeEventListener("change",f)},[]),!!e}var Ut="flexkit:sidebar:state",Yt=3600*24*7,Zt="16rem",Qt="18rem",ea="2rem",ta="b",oe=d.createContext(null);function w(){let e=d.useContext(oe);if(!e)throw new Error("useSidebar must be used within a SidebarProvider.");return e}function aa({defaultOpen:e=true,open:t,onOpenChange:a$2,className:f,style:s,children:u,...r}){let n=te(),[g,b]=d.useState(false),[R,fe]=d.useState(e),v=t??R,y=d.useCallback(c=>{let m=typeof c=="function"?c(v):c;a$2?a$2(m):fe(m),document.cookie=`${Ut}=${m}; path=/; max-age=${Yt}`;},[a$2,v]),T=d.useCallback(()=>n?b(c=>!c):y(c=>!c),[n,y,b]);d.useEffect(()=>{let c=m=>{m.key===ta&&(m.metaKey||m.ctrlKey)&&(m.preventDefault(),T());};return window.addEventListener("keydown",c),()=>window.removeEventListener("keydown",c)},[T]);let Y=v?"expanded":"collapsed",de=d.useMemo(()=>({state:Y,open:v,setOpen:y,isMobile:n,openMobile:g,setOpenMobile:b,toggleSidebar:T}),[Y,v,y,n,g,b,T]);return jsx(oe.Provider,{value:de,children:jsx(a$1,{delayDuration:0,children:jsx("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":Zt,"--sidebar-width-icon":ea,...s},className:a("fk:group/sidebar-wrapper fk:flex fk:w-full fk:has-data-[variant=inset]:bg-sidebar fk:overflow-hidden",f),...r,children:u})})})}function q({side:e="left",variant:t="sidebar",collapsible:a$1="offcanvas",className:f,children:s,...u}){let{isMobile:r,state:n,openMobile:g,setOpenMobile:b}=w();return a$1==="none"?jsx("div",{"data-slot":"sidebar",className:a("fk:flex fk:h-full fk:w-(--sidebar-width) fk:flex-col fk:bg-sidebar fk:text-sidebar-foreground",f),...u,children:s}):r?jsx(F,{open:g,onOpenChange:b,...u,children:jsxs($,{"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true",className:"fk:w-(--sidebar-width) fk:bg-sidebar fk:p-0 fk:text-sidebar-foreground fk:[&>button]:hidden",style:{"--sidebar-width":Qt},side:e,children:[jsxs(j,{className:"fk:sr-only",children:[jsx(K,{children:"Sidebar"}),jsx(W,{children:"Displays the mobile sidebar."})]}),jsx("div",{className:"fk:flex fk:h-full fk:w-full fk:flex-col",children:s})]})}):jsxs("div",{className:"fk:group fk:peer fk:hidden fk:text-sidebar-foreground fk:md:block","data-state":n,"data-collapsible":n==="collapsed"?a$1:"","data-variant":t,"data-side":e,"data-slot":"sidebar",children:[jsx("div",{"data-slot":"sidebar-gap",className:a("fk:relative fk:w-(--sidebar-width) fk:bg-transparent fk:transition-[width] fk:duration-200 fk:ease-linear","fk:group-data-[collapsible=offcanvas]:w-0","fk:group-data-[side=right]:rotate-180",t==="floating"||t==="inset"?"fk:group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"fk:group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),jsx("div",{"data-slot":"sidebar-container",className:a("fk:relative fk:inset-y-0 fk:z-10 fk:hidden fk:h-[calc(100svh-3.5rem)] fk:w-(--sidebar-width) fk:transition-[left,right,width] fk:duration-200 fk:ease-linear fk:md:flex",e==="left"?"fk:left-0 fk:group-data-[collapsible=offcanvas]:-left-(--sidebar-width)":"fk:right-0 k:group-data-[collapsible=offcanvas]:-right-(--sidebar-width)",t==="floating"||t==="inset"?"fk:group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)] fk:group-data-[side=left]:border-r":"fk:group-data-[collapsible=icon]:w-(--sidebar-width-icon) fk:group-data-[side=left]:border-r fk:group-data-[side=right]:border-l",f),...u,children:jsx("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"fk:flex fk:h-full fk:w-full fk:flex-col fk:bg-sidebar fk:group-data-[variant=floating]:rounded-lg fk:group-data-[variant=floating]:border fk:group-data-[variant=floating]:border-sidebar-border fk:group-data-[variant=floating]:shadow-sm",children:s})})]})}function oa({className:e,onClick:t,...a$1}){let{toggleSidebar:f}=w();return jsxs(b,{"data-sidebar":"trigger","data-slot":"sidebar-trigger",variant:"ghost",size:"icon",className:a("fk:size-7",e),onClick:s=>{t?.(s),f();},...a$1,children:[jsx(PanelLeftIcon,{}),jsx("span",{className:"fk:sr-only",children:"Toggle Sidebar"})]})}function J({className:e,...t}){let{toggleSidebar:a$1}=w();return jsx("button",{"data-sidebar":"rail","data-slot":"sidebar-rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:a$1,title:"Toggle Sidebar",className:a("fk:absolute fk:inset-y-0 fk:z-20 fk:hidden fk:w-4 fk:-translate-x-1/2 fk:transition-all fk:ease-linear fk:group-data-[side=left]:-right-4 fk:group-data-[side=right]:left-0 fk:after:absolute fk:after:inset-y-0 fk:after:left-1/2 fk:after:w-[2px] fk:hover:after:bg-sidebar-border fk:sm:flex","fk:in-data-[side=left]:cursor-w-resize fk:in-data-[side=right]:cursor-e-resize","fk:[[data-side=left][data-state=collapsed]_&]:cursor-e-resize fk:[[data-side=right][data-state=collapsed]_&]:cursor-w-resize","fk:group-data-[collapsible=offcanvas]:translate-x-0 fk:group-data-[collapsible=offcanvas]:after:left-full fk:hover:group-data-[collapsible=offcanvas]:bg-sidebar","fk:[[data-side=left][data-collapsible=offcanvas]_&]:-right-2","fk:[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",e),...t})}function ra({className:e,...t}){return jsx("main",{"data-slot":"sidebar-inset",className:a("fk:relative fk:flex fk:flex-1 fk:flex-col fk:bg-background fk:overflow-hidden fk:peer-data-[variant=inset]:h-[calc(100svh-3.625rem)]",e),...t})}function U({className:e,...t}){return jsx("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:a("fk:flex fk:min-h-0 fk:flex-1 fk:flex-col fk:overflow-auto fk:group-data-[collapsible=icon]:overflow-hidden",e),...t})}function z({className:e,...t}){return jsx("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:a("fk:relative fk:flex fk:w-full fk:min-w-0 fk:flex-col fk:p-2",e),...t})}function re({className:e,asChild:t=false,...a$1}){let f=t?Slot.Root:"div";return jsx(f,{"data-slot":"sidebar-group-label","data-sidebar":"group-label",className:a("fk:flex fk:h-8 fk:shrink-0 fk:items-center fk:rounded-md fk:px-2 fk:text-xs fk:font-medium fk:text-sidebar-foreground/70 fk:ring-sidebar-ring fk:outline-hidden fk:transition-[margin,opacity] fk:duration-200 fk:ease-linear fk:focus-visible:ring-2 fk:[&>svg]:size-4 fk:[&>svg]:shrink-0","fk:group-data-[collapsible=icon]:-mt-8 fk:group-data-[collapsible=icon]:opacity-0",e),...a$1})}function N({className:e,...t}){return jsx("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:a("fk:flex fk:w-full fk:min-w-0 fk:flex-col fk:gap-1",e),...t})}function I({className:e,...t}){return jsx("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:a("fk:group/menu-item fk:relative",e),...t})}var ia=cva("fk:peer/menu-button fk:flex fk:w-full fk:items-center fk:gap-2 fk:overflow-hidden fk:rounded-md fk:p-2 fk:text-left fk:text-sm fk:ring-sidebar-ring fk:outline-hidden fk:transition-[width,height,padding] fk:group-has-data-[sidebar=menu-action]/menu-item:pr-8 fk:group-data-[collapsible=icon]:size-8! fk:group-data-[collapsible=icon]:p-2! fk:hover:bg-sidebar-accent fk:hover:text-sidebar-accent-foreground fk:focus-visible:ring-2 fk:active:bg-sidebar-accent fk:active:text-sidebar-accent-foreground fk:disabled:pointer-events-none fk:disabled:opacity-50 fk:aria-disabled:pointer-events-none fk:aria-disabled:opacity-50 fk:data-[active=true]:bg-sidebar-accent fk:data-[active=true]:font-medium fk:data-[active=true]:text-sidebar-accent-foreground fk:data-[state=open]:hover:bg-sidebar-accent fk:data-[state=open]:hover:text-sidebar-accent-foreground fk:[&>span:last-child]:truncate fk:[&>svg]:size-4 fk:[&>svg]:shrink-0",{variants:{variant:{default:"fk:hover:bg-sidebar-accent fk:hover:text-sidebar-accent-foreground",outline:"fk:bg-background fk:shadow-[0_0_0_1px_hsl(var(--sidebar-border))] fk:hover:bg-sidebar-accent fk:hover:text-sidebar-accent-foreground fk:hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{default:"fk:h-8 fk:text-sm",sm:"fk:h-7 fk:text-xs",lg:"fk:h-12 fk:text-sm fk:group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function D({asChild:e$1=false,isActive:t=false,variant:a$1="default",size:f="default",tooltip:s,className:u,...r}){let n=e$1?Slot.Root:"button",{isMobile:g,state:b}=w(),R=jsx(n,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":f,"data-active":t,className:a(ia({variant:a$1,size:f}),u),...r});return s?(typeof s=="string"&&(s={children:s}),jsxs(b$1,{children:[jsx(c,{asChild:true,children:R}),jsx(e,{side:"right",align:"center",hidden:b!=="collapsed"||g,...s})]})):R}var ne=NavLink,da=Object.keys(E).map(e=>({name:e,icon:E[e]})),la=new na(da,{keys:["name"],threshold:.5});function ka({className:e,menuGroups:t,schema:a}){let f=a.filter(r=>!(r.menu&&"hidden"in r.menu)),s=groupBy(r=>r.menu?.group&&t?.find(n=>n.name===r.menu?.group)?.name||"ungrouped",f),u=t?.filter(r=>s[r.name]?.length);return jsxs(q,{className:e,collapsible:"icon",variant:"inset",children:[jsxs(U,{children:[u?.map(r=>jsxs(z,{children:[jsx(re,{children:r.title}),jsx(N,{children:s[r.name]?.map(n=>jsx(I,{children:jsx(D,{asChild:true,isActive:location.pathname.includes(`/list/${n.plural}`),tooltip:B(n.menu?.label??n.plural),children:jsxs(ne,{to:`list/${n.plural}`,children:[n.menu?.icon??createElement(E[se(n.name)],{className:"fk:h-4 fk:w-4 fk:mr-2",strokeWidth:2}),jsx("span",{children:B(n.menu?.label??n.plural)})]})})},n.plural))})]},r.name)),jsx(z,{children:jsx(N,{children:s.ungrouped?.map(r=>jsx(I,{children:jsx(D,{asChild:true,isActive:location.pathname.includes(`/list/${r.plural}`),tooltip:B(r.menu?.label??r.plural),children:jsxs(ne,{to:`list/${r.plural}`,children:[createElement(E[se(r.name)],{className:"fk:h-4 fk:w-4 fk:mr-2",strokeWidth:2}),jsx("span",{children:B(r.menu?.label??r.plural)})]})})},r.plural))})})]}),jsx(J,{})]})}function B(e){let t=e.replace(/([A-Z])/g," $1");return t.charAt(0).toUpperCase()+t.slice(1).trim()}function se(e){let t=la.search(e);return t.length>0?t[0].item.name:"Dock"}function ua({className:e,orientation:t="horizontal",...a$1}){return jsx(Tabs.Root,{"data-slot":"tabs","data-orientation":t,orientation:t,className:a("fk:group/tabs fk:flex fk:data-[orientation=horizontal]:flex-col",e),...a$1})}var pa=cva("fk:group/tabs-list fk:inline-flex fk:w-fit fk:items-center fk:justify-center fk:rounded-lg fk:p-[3px] fk:text-muted-foreground fk:group-data-[orientation=horizontal]/tabs:h-9 fk:group-data-[orientation=vertical]/tabs:h-fit fk:group-data-[orientation=vertical]/tabs:flex-col fk:data-[variant=line]:rounded-none",{variants:{variant:{default:"fk:bg-muted",line:"fk:gap-1 fk:bg-transparent"}},defaultVariants:{variant:"default"}});function ba({className:e,variant:t="default",...a$1}){return jsx(Tabs.List,{"data-slot":"tabs-list","data-variant":t,className:a(pa({variant:t}),e),...a$1})}function ma({className:e,...t}){return jsx(Tabs.Trigger,{"data-slot":"tabs-trigger",className:a("fk:relative fk:inline-flex fk:h-[calc(100%-1px)] fk:flex-1 fk:items-center fk:justify-center fk:gap-1.5 fk:rounded-md fk:border fk:border-transparent! fk:px-4 fk:py-1 fk:text-sm fk:font-medium fk:whitespace-nowrap fk:text-foreground/60 fk:transition-all fk:group-data-[orientation=vertical]/tabs:w-full fk:group-data-[orientation=vertical]/tabs:justify-start fk:hover:text-foreground fk:focus-visible:border-ring! fk:focus-visible:ring-[3px] fk:focus-visible:ring-ring/50 fk:focus-visible:outline-1 fk:focus-visible:outline-ring fk:disabled:pointer-events-none fk:disabled:opacity-50 fk:group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm fk:group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none fk:dark:text-muted-foreground fk:dark:hover:text-foreground fk:[&_svg]:pointer-events-none fk:[&_svg]:shrink-0 fk:[&_svg:not([class*='size-'])]:size-4","fk:group-data-[variant=line]/tabs-list:bg-transparent fk:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent fk:dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent! fk:dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent","fk:data-[state=active]:bg-background fk:data-[state=active]:text-foreground fk:dark:data-[state=active]:border-muted-foreground/75! fk:dark:data-[state=active]:bg-input/30 fk:dark:data-[state=active]:text-foreground","fk:after:absolute fk:after:bg-foreground fk:after:opacity-0 fk:after:transition-opacity fk:group-data-[orientation=horizontal]/tabs:after:inset-x-0 fk:group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] fk:group-data-[orientation=horizontal]/tabs:after:h-0.5 fk:group-data-[orientation=vertical]/tabs:after:inset-y-0 fk:group-data-[orientation=vertical]/tabs:after:-right-1 fk:group-data-[orientation=vertical]/tabs:after:w-0.5 fk:group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100",e),...t})}function ga({className:e,...t}){return jsx(Tabs.Content,{"data-slot":"tabs-content",className:a("fk:flex-1 fk:outline-none",e),...t})}export{Ot as ExternalLink,$t as ResizableHandle,Ft as ResizablePanel,Ht as ResizablePanelGroup,F as Sheet,Wt as SheetClose,$ as SheetContent,W as SheetDescription,Xt as SheetFooter,j as SheetHeader,ee as SheetOverlay,Q as SheetPortal,K as SheetTitle,Kt as SheetTrigger,ka as Sidebar,U as SidebarContent,z as SidebarGroup,ra as SidebarInset,N as SidebarMenu,D as SidebarMenuButton,I as SidebarMenuItem,q as SidebarPanel,aa as SidebarProvider,J as SidebarRail,oa as SidebarTrigger,ua as Tabs,ga as TabsContent,ba as TabsList,ma as TabsTrigger,w as useSidebar};//# sourceMappingURL=ui.js.map
2
2
  //# sourceMappingURL=ui.js.map
@@ -1,2 +1,2 @@
1
- import'./index.css';import {b as b$1}from'./chunk-N6WEYKSZ.js';import {a,b as b$3,c as c$1}from'./chunk-SW6NNU5D.js';import {b,r,c,e,f,l,m,i,h,n}from'./chunk-YXRNHQPG.js';import'./chunk-6YHHL4XI.js';import'./chunk-CHRDKNUF.js';import {b as b$2}from'./chunk-EYGOJ2ZN.js';import'./chunk-WIUPQHZ5.js';import'./chunk-O2QMYUPS.js';import {Monitor,Moon,Sun}from'lucide-react';import {jsx,jsxs}from'react/jsx-runtime';function _({projectId:D}){let{theme:a$1,setTheme:t}=b(),[C,n$1]=b$1();return C?jsx(r,{className:"fk:h-8 fk:w-8 fk:rounded-full"}):jsxs(c,{children:[jsx(e,{asChild:true,children:jsx(b$2,{className:"fk:relative fk:h-8 fk:w-8 fk:rounded-full",variant:"ghost",children:jsxs(a,{className:"fk:h-8 fk:w-8",children:[jsx(b$3,{alt:"@shadcn",src:n$1.user?.avatar_url}),jsx(c$1,{children:n$1.user?.display_name.charAt(0).toUpperCase()??""})]})})}),jsxs(f,{align:"end",className:"fk:w-56",forceMount:true,children:[jsx(l,{className:"font-normal",children:jsxs("div",{className:"fk:flex fk:flex-col fk:space-y-1",children:[jsx("p",{className:"fk:text-sm fk:font-medium fk:leading-none",children:n$1.user?.display_name}),jsx("p",{className:"fk:text-xs fk:leading-none fk:text-muted-foreground",children:n$1.user?.email})]})}),jsx(m,{}),jsx(l,{children:"Theme"}),jsxs(i,{checked:a$1==="system",onCheckedChange:()=>{t("system");},children:[jsx(Monitor,{className:"fk:mr-2 fk:h-4 fk:w-4"}),jsx("span",{children:"System"})]}),jsxs(i,{checked:a$1==="dark",onCheckedChange:()=>{t("dark");},children:[jsx(Moon,{className:"fk:mr-2 fk:h-4 fk:w-4"}),jsx("span",{children:"Dark"})]}),jsxs(i,{checked:a$1==="light",onCheckedChange:()=>{t("light");},children:[jsx(Sun,{className:"fk:mr-2 fk:h-4 fk:w-4"}),jsx("span",{children:"Light"})]}),jsx(m,{}),jsxs(h,{onClick:()=>{n$1.logout(D).then(()=>{}).catch(()=>{});},children:["Log out",jsx(n,{children:"\u21E7\u2318Q"})]})]})]})}export{_ as UserNav};//# sourceMappingURL=user-nav-QJ3GVNLW.js.map
2
- //# sourceMappingURL=user-nav-QJ3GVNLW.js.map
1
+ import'./index.css';import {b as b$1}from'./chunk-7XBIC5RC.js';import {a,b as b$3,c as c$1}from'./chunk-SW6NNU5D.js';import {b,r,c,e,f,l,m,i,h,n}from'./chunk-YXRNHQPG.js';import'./chunk-6YHHL4XI.js';import'./chunk-ZBV4BY36.js';import {b as b$2}from'./chunk-EYGOJ2ZN.js';import'./chunk-WIUPQHZ5.js';import'./chunk-O2QMYUPS.js';import {Monitor,Moon,Sun}from'lucide-react';import {jsx,jsxs}from'react/jsx-runtime';function _({projectId:D}){let{theme:a$1,setTheme:t}=b(),[C,n$1]=b$1();return C?jsx(r,{className:"fk:h-8 fk:w-8 fk:rounded-full"}):jsxs(c,{children:[jsx(e,{asChild:true,children:jsx(b$2,{className:"fk:relative fk:h-8 fk:w-8 fk:rounded-full",variant:"ghost",children:jsxs(a,{className:"fk:h-8 fk:w-8",children:[jsx(b$3,{alt:"@shadcn",src:n$1.user?.avatar_url}),jsx(c$1,{children:n$1.user?.display_name.charAt(0).toUpperCase()??""})]})})}),jsxs(f,{align:"end",className:"fk:w-56",forceMount:true,children:[jsx(l,{className:"font-normal",children:jsxs("div",{className:"fk:flex fk:flex-col fk:space-y-1",children:[jsx("p",{className:"fk:text-sm fk:font-medium fk:leading-none",children:n$1.user?.display_name}),jsx("p",{className:"fk:text-xs fk:leading-none fk:text-muted-foreground",children:n$1.user?.email})]})}),jsx(m,{}),jsx(l,{children:"Theme"}),jsxs(i,{checked:a$1==="system",onCheckedChange:()=>{t("system");},children:[jsx(Monitor,{className:"fk:mr-2 fk:h-4 fk:w-4"}),jsx("span",{children:"System"})]}),jsxs(i,{checked:a$1==="dark",onCheckedChange:()=>{t("dark");},children:[jsx(Moon,{className:"fk:mr-2 fk:h-4 fk:w-4"}),jsx("span",{children:"Dark"})]}),jsxs(i,{checked:a$1==="light",onCheckedChange:()=>{t("light");},children:[jsx(Sun,{className:"fk:mr-2 fk:h-4 fk:w-4"}),jsx("span",{children:"Light"})]}),jsx(m,{}),jsxs(h,{onClick:()=>{n$1.logout(D).then(()=>{}).catch(()=>{});},children:["Log out",jsx(n,{children:"\u21E7\u2318Q"})]})]})]})}export{_ as UserNav};//# sourceMappingURL=user-nav-E7MLJ36Y.js.map
2
+ //# sourceMappingURL=user-nav-E7MLJ36Y.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ui/components/user-nav.tsx"],"names":["UserNav","projectId","theme","setTheme","useTheme","isLoading","auth","useAuth","jsx","Skeleton","jsxs","DropdownMenu","DropdownMenuTrigger","Button","Avatar","AvatarImage","AvatarFallback","DropdownMenuContent","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuCheckboxItem","Monitor","Moon","Sun","DropdownMenuItem","DropdownMenuShortcut"],"mappings":"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","file":"user-nav-QJ3GVNLW.js","sourcesContent":["import type { JSX } from 'react';\nimport { useTheme } from '../theme-context';\nimport { Monitor, Moon, Sun } from 'lucide-react';\nimport { Avatar, AvatarFallback, AvatarImage } from '../primitives/avatar';\nimport { Button } from '../primitives/button';\nimport { Skeleton } from '../primitives/skeleton';\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuTrigger,\n} from '../primitives/dropdown-menu';\nimport { useAuth } from '../../auth/auth-context';\n\ntype Props = {\n projectId: string;\n};\n\nexport function UserNav({ projectId }: Props): JSX.Element {\n const { theme, setTheme } = useTheme();\n const [isLoading, auth] = useAuth();\n\n if (isLoading) {\n return <Skeleton className=\"fk:h-8 fk:w-8 fk:rounded-full\" />;\n }\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button className=\"fk:relative fk:h-8 fk:w-8 fk:rounded-full\" variant=\"ghost\">\n <Avatar className=\"fk:h-8 fk:w-8\">\n <AvatarImage alt=\"@shadcn\" src={auth.user?.avatar_url} />\n <AvatarFallback>{auth.user?.display_name.charAt(0).toUpperCase() ?? ''}</AvatarFallback>\n </Avatar>\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"fk:w-56\" forceMount>\n <DropdownMenuLabel className=\"font-normal\">\n <div className=\"fk:flex fk:flex-col fk:space-y-1\">\n <p className=\"fk:text-sm fk:font-medium fk:leading-none\">{auth.user?.display_name}</p>\n <p className=\"fk:text-xs fk:leading-none fk:text-muted-foreground\">{auth.user?.email}</p>\n </div>\n </DropdownMenuLabel>\n <DropdownMenuSeparator />\n <DropdownMenuLabel>Theme</DropdownMenuLabel>\n <DropdownMenuCheckboxItem\n checked={theme === 'system'}\n onCheckedChange={() => {\n setTheme('system');\n }}\n >\n <Monitor className=\"fk:mr-2 fk:h-4 fk:w-4\" />\n <span>System</span>\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={theme === 'dark'}\n onCheckedChange={() => {\n setTheme('dark');\n }}\n >\n <Moon className=\"fk:mr-2 fk:h-4 fk:w-4\" />\n <span>Dark</span>\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={theme === 'light'}\n onCheckedChange={() => {\n setTheme('light');\n }}\n >\n <Sun className=\"fk:mr-2 fk:h-4 fk:w-4\" />\n <span>Light</span>\n </DropdownMenuCheckboxItem>\n <DropdownMenuSeparator />\n <DropdownMenuItem\n onClick={() => {\n auth\n .logout(projectId)\n .then(() => {\n //\n })\n .catch(() => {\n //\n });\n }}\n >\n Log out\n <DropdownMenuShortcut>⇧⌘Q</DropdownMenuShortcut>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/ui/components/user-nav.tsx"],"names":["UserNav","projectId","theme","setTheme","useTheme","isLoading","auth","useAuth","jsx","Skeleton","jsxs","DropdownMenu","DropdownMenuTrigger","Button","Avatar","AvatarImage","AvatarFallback","DropdownMenuContent","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuCheckboxItem","Monitor","Moon","Sun","DropdownMenuItem","DropdownMenuShortcut"],"mappings":"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","file":"user-nav-E7MLJ36Y.js","sourcesContent":["import type { JSX } from 'react';\nimport { useTheme } from '../theme-context';\nimport { Monitor, Moon, Sun } from 'lucide-react';\nimport { Avatar, AvatarFallback, AvatarImage } from '../primitives/avatar';\nimport { Button } from '../primitives/button';\nimport { Skeleton } from '../primitives/skeleton';\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuTrigger,\n} from '../primitives/dropdown-menu';\nimport { useAuth } from '../../auth/auth-context';\n\ntype Props = {\n projectId: string;\n};\n\nexport function UserNav({ projectId }: Props): JSX.Element {\n const { theme, setTheme } = useTheme();\n const [isLoading, auth] = useAuth();\n\n if (isLoading) {\n return <Skeleton className=\"fk:h-8 fk:w-8 fk:rounded-full\" />;\n }\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button className=\"fk:relative fk:h-8 fk:w-8 fk:rounded-full\" variant=\"ghost\">\n <Avatar className=\"fk:h-8 fk:w-8\">\n <AvatarImage alt=\"@shadcn\" src={auth.user?.avatar_url} />\n <AvatarFallback>{auth.user?.display_name.charAt(0).toUpperCase() ?? ''}</AvatarFallback>\n </Avatar>\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"fk:w-56\" forceMount>\n <DropdownMenuLabel className=\"font-normal\">\n <div className=\"fk:flex fk:flex-col fk:space-y-1\">\n <p className=\"fk:text-sm fk:font-medium fk:leading-none\">{auth.user?.display_name}</p>\n <p className=\"fk:text-xs fk:leading-none fk:text-muted-foreground\">{auth.user?.email}</p>\n </div>\n </DropdownMenuLabel>\n <DropdownMenuSeparator />\n <DropdownMenuLabel>Theme</DropdownMenuLabel>\n <DropdownMenuCheckboxItem\n checked={theme === 'system'}\n onCheckedChange={() => {\n setTheme('system');\n }}\n >\n <Monitor className=\"fk:mr-2 fk:h-4 fk:w-4\" />\n <span>System</span>\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={theme === 'dark'}\n onCheckedChange={() => {\n setTheme('dark');\n }}\n >\n <Moon className=\"fk:mr-2 fk:h-4 fk:w-4\" />\n <span>Dark</span>\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={theme === 'light'}\n onCheckedChange={() => {\n setTheme('light');\n }}\n >\n <Sun className=\"fk:mr-2 fk:h-4 fk:w-4\" />\n <span>Light</span>\n </DropdownMenuCheckboxItem>\n <DropdownMenuSeparator />\n <DropdownMenuItem\n onClick={() => {\n auth\n .logout(projectId)\n .then(() => {\n //\n })\n .catch(() => {\n //\n });\n }}\n >\n Log out\n <DropdownMenuShortcut>⇧⌘Q</DropdownMenuShortcut>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flexkit/studio",
3
- "version": "0.0.24",
3
+ "version": "0.0.26",
4
4
  "description": "Flexkit Studio - Build custom internal tools like PIMs, CRMs, and ERPs with a flexible React UI and a graph-backed API",
5
5
  "keywords": [
6
6
  "flexkit",
@@ -1,2 +0,0 @@
1
- import'./index.css';export{a as Asset}from'./chunk-HSPSTCNK.js';import'./chunk-5CKMFBWH.js';import'./chunk-CHRDKNUF.js';import'./chunk-WIUPQHZ5.js';import'./chunk-O2QMYUPS.js';//# sourceMappingURL=asset-IVSDPVJK.js.map
2
- //# sourceMappingURL=asset-IVSDPVJK.js.map
@@ -1,2 +0,0 @@
1
- import'./index.css';import {a}from'./chunk-O2QMYUPS.js';import {Select}from'radix-ui';import {ChevronDownIcon,CheckIcon,ChevronUpIcon}from'lucide-react';import {jsx,jsxs}from'react/jsx-runtime';function g({...e}){return jsx(Select.Root,{"data-slot":"select",...e})}function S({...e}){return jsx(Select.Group,{"data-slot":"select-group",...e})}function x({...e}){return jsx(Select.Value,{"data-slot":"select-value",...e})}function P({className:e,size:a$1="default",children:r,...s}){return jsxs(Select.Trigger,{"data-slot":"select-trigger","data-size":a$1,className:a("fk:flex fk:w-fit fk:items-center fk:justify-between fk:gap-2 fk:rounded-md fk:border fk:border-input fk:bg-background fk:px-3 fk:py-2 fk:text-sm fk:whitespace-nowrap fk:shadow-xs fk:transition-[color,box-shadow] fk:outline-none fk:focus-visible:border-ring fk:focus-visible:ring-[3px] fk:focus-visible:ring-ring/50 fk:disabled:cursor-not-allowed fk:disabled:opacity-50 fk:aria-invalid:border-destructive fk:aria-invalid:ring-destructive/20 fk:data-placeholder:text-muted-foreground fk:data-[size=default]:h-9 fk:data-[size=sm]:h-8 fk:*:data-[slot=select-value]:line-clamp-1 fk:*:data-[slot=select-value]:flex fk:*:data-[slot=select-value]:items-center fk:*:data-[slot=select-value]:gap-2 fk:hover:bg-accent fk:dark:aria-invalid:ring-destructive/40 fk:*[_svg]:pointer-events-none fk:*[_svg]:shrink-0 fk:*[_svg:not([class*='size-'])]:size-4 fk:*[_svg:not([class*='text-'])]:text-muted-foreground",e),...s,children:[r,jsx(Select.Icon,{asChild:true,children:jsx(ChevronDownIcon,{className:"fk:size-4 fk:opacity-50"})})]})}function b({className:e,children:a$1,position:r="item-aligned",align:s="center",...f}){return jsx(Select.Portal,{children:jsxs(Select.Content,{"data-slot":"select-content",className:a("fk:relative fk:z-50 fk:max-h-(--radix-select-content-available-height) fk:min-w-[8rem] fk:origin-(--radix-select-content-transform-origin) fk:overflow-x-hidden fk:overflow-y-auto fk:rounded-md fk:border fk:bg-popover fk:text-popover-foreground fk:shadow-md fk:data-[side=bottom]:slide-in-from-top-2 fk:data-[side=left]:slide-in-from-right-2 fk:data-[side=right]:slide-in-from-left-2 fk:data-[side=top]:slide-in-from-bottom-2 fk:data-[state=closed]:animate-out fk:data-[state=closed]:fade-out-0 fk:data-[state=closed]:zoom-out-95 fk:data-[state=open]:animate-in fk:data-[state=open]:fade-in-0 fk:data-[state=open]:zoom-in-95",r==="popper"&&"fk:data-[side=bottom]:translate-y-1 fk:data-[side=left]:-translate-x-1 fk:data-[side=right]:translate-x-1 fk:data-[side=top]:-translate-y-1",e),position:r,align:s,...f,children:[jsx(d,{}),jsx(Select.Viewport,{className:a("fk:p-1",r==="popper"&&"fk:h-(--radix-select-trigger-height) fk:w-full fk:min-w-(--radix-select-trigger-width) fk:scroll-my-1"),children:a$1}),jsx(m,{})]})})}function h({className:e,...a$1}){return jsx(Select.Label,{"data-slot":"select-label",className:a("fk:px-2 fk:py-1.5 fk:text-xs fk:text-muted-foreground",e),...a$1})}function y({className:e,children:a$1,...r}){return jsxs(Select.Item,{"data-slot":"select-item",className:a("fk:relative fk:flex fk:w-full fk:cursor-default fk:items-center fk:gap-2 fk:rounded-sm fk:py-1.5 fk:pr-8 fk:pl-2 fk:text-sm fk:outline-hidden fk:select-none fk:focus:bg-accent fk:focus:text-accent-foreground fk:data-[disabled]:pointer-events-none fk:data-[disabled]:opacity-50 fk:*[_svg]:pointer-events-none fk:*[_svg]:shrink-0 fk:*[_svg:not([class*='size-'])]:size-4 fk:*[_svg:not([class*='text-'])]:text-muted-foreground *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",e),...r,children:[jsx("span",{"data-slot":"select-item-indicator",className:"fk:absolute fk:right-2 fk:flex fk:size-3.5 fk:items-center fk:justify-center",children:jsx(Select.ItemIndicator,{children:jsx(CheckIcon,{className:"fk:size-4"})})}),jsx(Select.ItemText,{children:a$1})]})}function w({className:e,...a$1}){return jsx(Select.Separator,{"data-slot":"select-separator",className:a("fk:pointer-events-none fk:-mx-1 fk:my-1 fk:h-px fk:bg-border",e),...a$1})}function d({className:e,...a$1}){return jsx(Select.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:a("fk:flex fk:cursor-default fk:items-center fk:justify-center fk:py-1",e),...a$1,children:jsx(ChevronUpIcon,{className:"size-4"})})}function m({className:e,...a$1}){return jsx(Select.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:a("fk:flex fk:cursor-default fk:items-center fk:justify-center fk:py-1",e),...a$1,children:jsx(ChevronDownIcon,{className:"size-4"})})}export{g as a,S as b,x as c,P as d,b as e,h as f,y as g,w as h,d as i,m as j};//# sourceMappingURL=chunk-7WR64NTK.js.map
2
- //# sourceMappingURL=chunk-7WR64NTK.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/ui/primitives/select.tsx"],"names":["Select","props","jsx","SelectPrimitive","SelectGroup","SelectValue","SelectTrigger","className","size","children","jsxs","cn","ChevronDownIcon","SelectContent","position","align","SelectScrollUpButton","SelectScrollDownButton","SelectLabel","SelectItem","CheckIcon","SelectSeparator","ChevronUpIcon"],"mappings":"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","file":"chunk-7WR64NTK.js","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Select as SelectPrimitive } from 'radix-ui';\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from 'lucide-react';\nimport { cn } from 'src/ui/lib/utils';\n\nfunction Select({ ...props }: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nfunction SelectGroup({ ...props }: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\nfunction SelectValue({ ...props }: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nfunction SelectTrigger({\n className,\n size = 'default',\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: 'sm' | 'default';\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"fk:flex fk:w-fit fk:items-center fk:justify-between fk:gap-2 fk:rounded-md fk:border fk:border-input fk:bg-background fk:px-3 fk:py-2 fk:text-sm fk:whitespace-nowrap fk:shadow-xs fk:transition-[color,box-shadow] fk:outline-none fk:focus-visible:border-ring fk:focus-visible:ring-[3px] fk:focus-visible:ring-ring/50 fk:disabled:cursor-not-allowed fk:disabled:opacity-50 fk:aria-invalid:border-destructive fk:aria-invalid:ring-destructive/20 fk:data-placeholder:text-muted-foreground fk:data-[size=default]:h-9 fk:data-[size=sm]:h-8 fk:*:data-[slot=select-value]:line-clamp-1 fk:*:data-[slot=select-value]:flex fk:*:data-[slot=select-value]:items-center fk:*:data-[slot=select-value]:gap-2 fk:hover:bg-accent fk:dark:aria-invalid:ring-destructive/40 fk:*[_svg]:pointer-events-none fk:*[_svg]:shrink-0 fk:*[_svg:not([class*='size-'])]:size-4 fk:*[_svg:not([class*='text-'])]:text-muted-foreground\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"fk:size-4 fk:opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = 'item-aligned',\n align = 'center',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n className={cn(\n 'fk:relative fk:z-50 fk:max-h-(--radix-select-content-available-height) fk:min-w-[8rem] fk:origin-(--radix-select-content-transform-origin) fk:overflow-x-hidden fk:overflow-y-auto fk:rounded-md fk:border fk:bg-popover fk:text-popover-foreground fk:shadow-md fk:data-[side=bottom]:slide-in-from-top-2 fk:data-[side=left]:slide-in-from-right-2 fk:data-[side=right]:slide-in-from-left-2 fk:data-[side=top]:slide-in-from-bottom-2 fk:data-[state=closed]:animate-out fk:data-[state=closed]:fade-out-0 fk:data-[state=closed]:zoom-out-95 fk:data-[state=open]:animate-in fk:data-[state=open]:fade-in-0 fk:data-[state=open]:zoom-in-95',\n position === 'popper' &&\n 'fk:data-[side=bottom]:translate-y-1 fk:data-[side=left]:-translate-x-1 fk:data-[side=right]:translate-x-1 fk:data-[side=top]:-translate-y-1',\n className\n )}\n position={position}\n align={align}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n 'fk:p-1',\n position === 'popper' &&\n 'fk:h-(--radix-select-trigger-height) fk:w-full fk:min-w-(--radix-select-trigger-width) fk:scroll-my-1'\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn('fk:px-2 fk:py-1.5 fk:text-xs fk:text-muted-foreground', className)}\n {...props}\n />\n );\n}\n\nfunction SelectItem({ className, children, ...props }: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"fk:relative fk:flex fk:w-full fk:cursor-default fk:items-center fk:gap-2 fk:rounded-sm fk:py-1.5 fk:pr-8 fk:pl-2 fk:text-sm fk:outline-hidden fk:select-none fk:focus:bg-accent fk:focus:text-accent-foreground fk:data-[disabled]:pointer-events-none fk:data-[disabled]:opacity-50 fk:*[_svg]:pointer-events-none fk:*[_svg]:shrink-0 fk:*[_svg:not([class*='size-'])]:size-4 fk:*[_svg:not([class*='text-'])]:text-muted-foreground *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className\n )}\n {...props}\n >\n <span\n data-slot=\"select-item-indicator\"\n className=\"fk:absolute fk:right-2 fk:flex fk:size-3.5 fk:items-center fk:justify-center\"\n >\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"fk:size-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn('fk:pointer-events-none fk:-mx-1 fk:my-1 fk:h-px fk:bg-border', className)}\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn('fk:flex fk:cursor-default fk:items-center fk:justify-center fk:py-1', className)}\n {...props}\n >\n <ChevronUpIcon className=\"size-4\" />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn('fk:flex fk:cursor-default fk:items-center fk:justify-center fk:py-1', className)}\n {...props}\n >\n <ChevronDownIcon className=\"size-4\" />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n"]}
@@ -1,3 +0,0 @@
1
- import'./index.css';import {b}from'./chunk-WIUPQHZ5.js';var n="flexkit.io",r=`https://${n}`,t=i=>i?`https://${i}.api.${n}`:r,g=`${r}/images/`;function l(i=""){return {authProviders:`/api/flexkit/${i}/auth/providers`,completion:`/api/flexkit/${i}/completion`,currentUser:`/api/flexkit/${i}/users/me`,loginOtpConfirm:`${t(i)}/auth/otp/confirm`,loginOtpSend:`${t(i)}/auth/otp/send`,logout:a=>{let o=new URLSearchParams({redirect:b(a,i)});return `/api/flexkit/${i}/auth/logout?${o.toString()}`},search:`/api/flexkit/${i}/search`,sessionId:`${t(i)}/api/auth/login/session`,upload:`/api/flexkit/${i}/upload`}}
2
- export{r as a,g as b,l as c};//# sourceMappingURL=chunk-CHRDKNUF.js.map
3
- //# sourceMappingURL=chunk-CHRDKNUF.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/core/api-paths.ts"],"names":["domain","baseApiUrl","baseProjectApiUrl","projectId","IMAGES_BASE_URL","apiPaths","basePath","params","joinBasePath"],"mappings":"wDAEA,IAAMA,EAAS,YAAA,CACFC,CAAAA,CAAa,WAAWD,CAAM,CAAA,CAAA,CACrCE,EAAqBC,CAAAA,EACzBA,CAAAA,CAAY,WAAWA,CAAS,CAAA,KAAA,EAAQH,CAAM,CAAA,CAAA,CAAKC,CAAAA,CAcxCG,EAAkB,CAAA,EAAGH,CAAU,WAErC,SAASI,CAAAA,CAASF,CAAAA,CAAY,EAAA,CAAc,CACjD,OAAO,CACL,cAAe,CAAA,aAAA,EAAgBA,CAAS,kBACxC,UAAA,CAAY,CAAA,aAAA,EAAgBA,CAAS,CAAA,WAAA,CAAA,CACrC,WAAA,CAAa,gBAAgBA,CAAS,CAAA,SAAA,CAAA,CACtC,gBAAiB,CAAA,EAAGD,CAAAA,CAAkBC,CAAS,CAAC,CAAA,iBAAA,CAAA,CAChD,YAAA,CAAc,CAAA,EAAGD,EAAkBC,CAAS,CAAC,iBAC7C,MAAA,CAASG,CAAAA,EAAqB,CAC5B,IAAMC,CAAAA,CAAS,IAAI,eAAA,CAAgB,CACjC,SAAUC,CAAAA,CAAaF,CAAAA,CAAUH,CAAS,CAC5C,CAAC,EAED,OAAO,CAAA,aAAA,EAAgBA,CAAS,CAAA,aAAA,EAAgBI,EAAO,QAAA,EAAU,EACnE,CAAA,CACA,MAAA,CAAQ,gBAAgBJ,CAAS,CAAA,OAAA,CAAA,CACjC,UAAW,CAAA,EAAGD,CAAAA,CAAkBC,CAAS,CAAC,CAAA,uBAAA,CAAA,CAC1C,OAAQ,CAAA,aAAA,EAAgBA,CAAS,SACnC,CACF","file":"chunk-CHRDKNUF.js","sourcesContent":["import { joinBasePath } from './base-path';\n\nconst domain = 'flexkit.io';\nexport const baseApiUrl = `https://${domain}`;\nconst baseProjectApiUrl = (projectId?: string): string =>\n projectId ? `https://${projectId}.api.${domain}` : baseApiUrl;\n\ninterface ApiPaths {\n authProviders: string;\n completion: string;\n currentUser: string;\n loginOtpConfirm: string;\n loginOtpSend: string;\n logout: (basePath: string) => string;\n search: string;\n sessionId: string;\n upload: string;\n}\n\nexport const IMAGES_BASE_URL = `${baseApiUrl}/images/`;\n\nexport function apiPaths(projectId = ''): ApiPaths {\n return {\n authProviders: `/api/flexkit/${projectId}/auth/providers`,\n completion: `/api/flexkit/${projectId}/completion`,\n currentUser: `/api/flexkit/${projectId}/users/me`,\n loginOtpConfirm: `${baseProjectApiUrl(projectId)}/auth/otp/confirm`,\n loginOtpSend: `${baseProjectApiUrl(projectId)}/auth/otp/send`,\n logout: (basePath: string) => {\n const params = new URLSearchParams({\n redirect: joinBasePath(basePath, projectId),\n });\n\n return `/api/flexkit/${projectId}/auth/logout?${params.toString()}`;\n },\n search: `/api/flexkit/${projectId}/search`,\n sessionId: `${baseProjectApiUrl(projectId)}/api/auth/login/session`,\n upload: `/api/flexkit/${projectId}/upload`,\n };\n}\n"]}