Files
skybridge/web-components/dist/index.esm.js
2025-08-31 23:39:44 -04:00

3 lines
39 KiB
JavaScript

import{jsxs as e,jsx as n,Fragment as t}from"react/jsx-runtime";import r,{useEffect as i,useState as o,useCallback as a,useMemo as c}from"react";import{Paper as l,Group as s,Title as u,ActionIcon as d,ScrollArea as f,Box as h,Stack as m,Button as p,TextInput as v,JsonInput as g,MultiSelect as y,Select as b,Textarea as w,NumberInput as k,Text as C,LoadingOverlay as x,Center as A,Table as S,Pagination as z,Badge as I,Menu as F,Divider as L,Loader as T,Progress as E,Skeleton as j,SimpleGrid as P,Card as R}from"@mantine/core";export{ActionIcon,Badge,Box,Button,Center,Divider,Group,JsonInput,LoadingOverlay,Menu,MultiSelect,NumberInput,Pagination,Paper,ScrollArea,Select,Stack,Table,Text,TextInput,Textarea,Title}from"@mantine/core";import{IconX as D,IconRefresh as O,IconPlus as U,IconSearch as N,IconFilter as M,IconEdit as B,IconTrash as q,IconDots as V,IconFunction as W,IconUsers as G,IconApps as $,IconKey as J,IconDatabase as H,IconAlertCircle as Y,IconEye as _,IconCopy as X,IconArchive as Z,IconRestore as K,IconSettings as Q,IconPlayerPlay as ee,IconPlayerStop as ne}from"@tabler/icons-react";export{IconAlertCircle,IconCheck,IconChevronDown,IconChevronRight,IconCopy,IconDots,IconEdit,IconEye,IconEyeOff,IconFilter,IconInfoCircle,IconKey,IconPlus,IconRefresh,IconSearch,IconSettings,IconTrash,IconUser,IconUsers,IconX}from"@tabler/icons-react";import{useForm as te}from"@mantine/form";export{useForm}from"@mantine/form";import{notifications as re}from"@mantine/notifications";export{notifications}from"@mantine/notifications";import{modals as ie}from"@mantine/modals";export{modals}from"@mantine/modals";import oe from"axios";export{useDisclosure,useLocalStorage,useToggle}from"@mantine/hooks";var ae=function(){return ae=Object.assign||function(e){for(var n,t=1,r=arguments.length;t<r;t++)for(var i in n=arguments[t])Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i]);return e},ae.apply(this,arguments)};function ce(e,n){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&n.indexOf(r)<0&&(t[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)n.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(t[r[i]]=e[r[i]])}return t}function le(e,n,t,r){return new(t||(t=Promise))(function(i,o){function a(e){try{l(r.next(e))}catch(e){o(e)}}function c(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var n;e.done?i(e.value):(n=e.value,n instanceof t?n:new t(function(e){e(n)})).then(a,c)}l((r=r.apply(e,n||[])).next())})}function se(e,n){var t,r,i,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=c(0),a.throw=c(1),a.return=c(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function c(c){return function(l){return function(c){if(t)throw new TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(o=0)),o;)try{if(t=1,r&&(i=2&c[0]?r.return:c[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,c[1])).done)return i;switch(r=0,i&&(c=[2&c[0],i.value]),c[0]){case 0:case 1:i=c;break;case 4:return o.label++,{value:c[1],done:!1};case 5:o.label++,r=c[1],c=[0];continue;case 7:c=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==c[0]&&2!==c[0])){o=0;continue}if(3===c[0]&&(!i||c[1]>i[0]&&c[1]<i[3])){o.label=c[1];break}if(6===c[0]&&o.label<i[1]){o.label=i[1],i=c;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(c);break}i[2]&&o.ops.pop(),o.trys.pop();continue}c=n.call(e,o)}catch(e){c=[6,e],r=0}finally{t=i=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,l])}}}function ue(e,n,t){if(t||2===arguments.length)for(var r,i=0,o=n.length;i<o;i++)!r&&i in n||(r||(r=Array.prototype.slice.call(n,0,i)),r[i]=n[i]);return e.concat(r||Array.prototype.slice.call(n))}"function"==typeof SuppressedError&&SuppressedError;var de=function(t){var r=t.opened,o=t.onClose,a=t.onSuccess,c=t.title,C=t.editMode,x=void 0!==C&&C,A=t.editItem,S=t.fields,z=t.onSubmit,I=t.width,F=void 0===I?450:I,L=t.initialValues,T=void 0===L?{}:L;t.validateOnSubmit;var E,j=x&&!!A,P=function(){var e={};return S.forEach(function(n){var t;e[n.name]=null!==(t=n.defaultValue)&&void 0!==t?t:"multiselect"===n.type?[]:""}),ae(ae({},e),T)},R=te({initialValues:P(),validate:(E={},S.forEach(function(e){E[e.name]=function(n){var t,r,i,o,a,c;return e.required&&(!n||"string"==typeof n&&""===n.trim())?"".concat(e.label," is required"):(null===(t=e.validation)||void 0===t?void 0:t.email)&&n&&!/^\S+@\S+$/.test(n)?"Invalid email format":(null===(r=e.validation)||void 0===r?void 0:r.url)&&n&&!/^https?:\/\/.+/.test(n)?"Invalid URL format":(null===(i=e.validation)||void 0===i?void 0:i.minLength)&&n&&n.length<e.validation.minLength?"".concat(e.label," must be at least ").concat(e.validation.minLength," characters"):(null===(o=e.validation)||void 0===o?void 0:o.maxLength)&&n&&n.length>e.validation.maxLength?"".concat(e.label," must be no more than ").concat(e.validation.maxLength," characters"):(null===(a=e.validation)||void 0===a?void 0:a.pattern)&&n&&!e.validation.pattern.test(n)?"".concat(e.label," format is invalid"):(null===(c=e.validation)||void 0===c?void 0:c.custom)?e.validation.custom(n):null}}),E)});i(function(){if(j&&A){var e={};S.forEach(function(n){var t,r;e[n.name]=null!==(r=null!==(t=A[n.name])&&void 0!==t?t:n.defaultValue)&&void 0!==r?r:""}),R.setValues(e)}else j||R.setValues(P())},[A,r,j]);return e(l,{style:{position:"fixed",top:60,right:r?0:"-".concat(F,"px"),bottom:0,width:"".concat(F,"px"),zIndex:1e3,borderRadius:0,display:"flex",flexDirection:"column",borderLeft:"1px solid var(--mantine-color-gray-3)",backgroundColor:"var(--mantine-color-body)",transition:"right 0.3s ease"},children:[e(s,{justify:"space-between",p:"md",style:{borderBottom:"1px solid var(--mantine-color-gray-3)"},children:[n(u,{order:4,children:j?"Edit ".concat(c):"Create New ".concat(c)}),n(d,{variant:"subtle",color:"gray",onClick:o,children:n(D,{size:18})})]}),n(f,{style:{flex:1},children:n(h,{p:"md",children:n("form",{onSubmit:R.onSubmit(function(e){return le(void 0,void 0,void 0,function(){var n,t,r;return se(this,function(i){switch(i.label){case 0:return i.trys.push([0,2,,3]),[4,z(e)];case 1:return i.sent(),n={title:"Success",message:"".concat(c," ").concat(j?"updated":"created"," successfully"),color:"green"},re.show(n),a(),o(),R.reset(),[3,3];case 2:return t=i.sent(),console.error("Error ".concat(j?"updating":"creating"," ").concat(c.toLowerCase(),":"),t),r={title:"Error",message:t.message||"Failed to ".concat(j?"update":"create"," ").concat(c.toLowerCase()),color:"red"},re.show(r),[3,3];case 3:return[2]}})})}),children:e(m,{gap:"md",children:[S.map(function(e){var t=R.getInputProps(e.name),r=ae({key:e.name,label:e.label,placeholder:e.placeholder,description:e.description,required:e.required,disabled:e.disabled||j&&"id"===e.name},t);switch(e.type){case"email":return n(v,ae({},r,{type:"email"}));case"number":return n(k,ae({},r));case"textarea":return n(w,ae({},r,{autosize:!0,minRows:3,maxRows:6}));case"select":return n(b,ae({},r,{data:e.options||[]}));case"multiselect":return n(y,ae({},r,{data:e.options||[]}));case"json":return n(g,ae({},r,{validationError:"Invalid JSON format",formatOnBlur:!0,autosize:!0,minRows:3}));default:return n(v,ae({},r))}}),e(s,{justify:"flex-end",mt:"md",children:[n(p,{variant:"light",onClick:o,children:"Cancel"}),e(p,{type:"submit",children:[j?"Update":"Create"," ",c]})]})]})})})})]})},fe=function(t){var r=t.data,a=t.columns,c=t.loading,u=void 0!==c&&c,f=t.error,h=void 0===f?null:f,g=t.title,y=t.total,b=void 0===y?0:y,w=t.page,k=void 0===w?1:w,L=t.pageSize,T=void 0===L?10:L,E=t.onPageChange,j=t.onAdd,P=t.onEdit,R=t.onDelete,D=t.onRefresh,W=t.customActions,G=void 0===W?[]:W,$=t.searchable,J=void 0===$||$,H=t.filterable,Y=void 0!==H&&H,_=t.filters,X=void 0===_?{}:_,Z=t.onFiltersChange,K=t.withBorder,Q=void 0===K||K,ee=t.withColumnBorders,ne=void 0!==ee&&ee,te=t.striped,oe=void 0===te||te,ce=t.highlightOnHover,ue=void 0===ce||ce,de=t.emptyMessage,fe=void 0===de?"No data available":de,he=o(X),me=he[0],pe=he[1];i(function(){pe(X)},[X]);var ve=function(e){!function(e,n){var t,r=ae(ae({},me),((t={})[e]=n,t));pe(r),null==Z||Z(r)}("search",e)},ge=function(e,t){var r=t[e.key];if(e.render)return e.render(r,t);if(null==r)return n(C,{c:"dimmed",children:"-"});if("boolean"==typeof r)return n(I,{color:r?"green":"gray",size:"sm",children:r?"Yes":"No"});if("status"===e.key){return n(I,{color:{active:"green",inactive:"gray",pending:"yellow",suspended:"red",success:"green",error:"red",warning:"yellow"}[r]||"blue",size:"sm",children:r})}return n(C,{children:r.toString()})},ye=function(t){var r=[];P&&r.push({key:"edit",label:"Edit",icon:n(B,{size:14}),onClick:P}),R&&r.push({key:"delete",label:"Delete",icon:n(q,{size:14}),color:"red",onClick:function(){return function(e){ie.openConfirmModal({title:"Confirm Delete",children:n(C,{size:"sm",children:"Are you sure you want to delete this item? This action cannot be undone."}),labels:{confirm:"Delete",cancel:"Cancel"},confirmProps:{color:"red"},onConfirm:function(){return le(void 0,void 0,void 0,function(){var n;return se(this,function(t){switch(t.label){case 0:return t.trys.push([0,3,,4]),R?[4,R(e)]:[3,2];case 1:t.sent(),re.show({title:"Success",message:"Item deleted successfully",color:"green"}),t.label=2;case 2:return[3,4];case 3:return n=t.sent(),re.show({title:"Error",message:n.message||"Failed to delete item",color:"red"}),[3,4];case 4:return[2]}})})}})}(t)}}),r.push.apply(r,G);var i=r.filter(function(e){return!e.show||e.show(t)});return 0===i.length?null:e(F,{position:"bottom-end",children:[n(F.Target,{children:n(d,{variant:"subtle",color:"gray",children:n(V,{size:16})})}),n(F.Dropdown,{children:i.map(function(e){return n(F.Item,{leftSection:e.icon,color:e.color,onClick:function(){return e.onClick(t)},children:e.label},e.key)})})]})},be=Math.ceil(b/T);return e(m,{gap:"md",children:[e(s,{justify:"space-between",children:[n(s,{children:g&&n(C,{size:"xl",fw:600,children:g})}),e(s,{children:[D&&n(d,{variant:"light",onClick:D,children:n(O,{size:16})}),j&&n(p,{leftSection:n(U,{size:16}),onClick:j,children:"Add New"})]})]}),(J||Y)&&e(s,{children:[J&&n(v,{placeholder:"Search...",leftSection:n(N,{size:16}),value:me.search||"",onChange:function(e){return ve(e.currentTarget.value)},style:{flex:1}}),Y&&n(s,{children:n(d,{variant:"light",children:n(M,{size:16})})})]}),e(l,{withBorder:Q,pos:"relative",children:[n(x,{visible:u}),h?n(A,{p:"xl",children:e(m,{align:"center",gap:"xs",children:[n(C,{c:"red",fw:500,children:"Error loading data"}),n(C,{c:"dimmed",size:"sm",children:h}),D&&n(p,{variant:"light",size:"sm",onClick:D,children:"Try Again"})]})}):0===r.length?n(A,{p:"xl",children:e(m,{align:"center",gap:"xs",children:[n(C,{c:"dimmed",children:fe}),j&&n(p,{variant:"light",size:"sm",onClick:j,children:"Add First Item"})]})}):e(S,{striped:oe,highlightOnHover:ue,withColumnBorders:ne,children:[n(S.Thead,{children:e(S.Tr,{children:[a.map(function(e){return n(S.Th,{style:{width:e.width},children:e.label},e.key)}),(P||R||G.length>0)&&n(S.Th,{style:{width:50},children:"Actions"})]})}),n(S.Tbody,{children:r.map(function(t){return e(S.Tr,{children:[a.map(function(e){return n(S.Td,{children:ge(e,t)},"".concat(t.id,"-").concat(e.key))}),(P||R||G.length>0)&&n(S.Td,{children:ye(t)})]},t.id)})})]})]}),be>1&&n(s,{justify:"center",children:n(z,{total:be,value:k,onChange:E,size:"sm"})})]})},he={status:{active:"green",inactive:"gray",pending:"yellow",suspended:"red",enabled:"green",disabled:"gray",online:"green",offline:"gray",running:"green",stopped:"gray",paused:"yellow",failed:"red",success:"green",completed:"green",error:"red",warning:"yellow",info:"blue"},role:{admin:"red",moderator:"orange",user:"blue",viewer:"gray",owner:"purple",editor:"cyan",contributor:"teal",guest:"gray"},type:{static:"blue",user:"cyan",service:"green",application:"purple",api:"orange",web:"teal",mobile:"pink",desktop:"indigo"},runtime:{nodejs18:"green",nodejs20:"lime","python3.9":"blue","python3.11":"indigo","go1.20":"cyan","go1.21":"teal",java11:"orange",java17:"red",dotnet6:"purple",dotnet7:"violet",rust:"dark",php8:"grape"},severity:{critical:"red",high:"orange",medium:"yellow",low:"blue",info:"gray",debug:"dark"},execution:{queued:"gray",running:"blue",succeeded:"green",failed:"red",timeout:"orange",cancelled:"yellow",retrying:"cyan"}},me={status:"gray",role:"blue",runtime:"blue",type:"blue",severity:"gray",execution:"gray"},pe=function(e){var t=e.value,r=e.variant,i=void 0===r?"status":r,o=e.customColorMap,a=e.size,c=void 0===a?"sm":a,l=ce(e,["value","variant","customColorMap","size"]);if(!t)return n(I,ae({color:"gray",size:c},l,{children:"-"}));var s=(o||he[i]||he.status)[t.toLowerCase()]||me[i],u=ve(t,i);return n(I,ae({color:s,size:c,variant:"filled"},l,{children:u}))},ve=function(e,n){switch(n){case"runtime":if(e.startsWith("nodejs"))return"Node.js ".concat(e.replace("nodejs",""));if(e.startsWith("python"))return"Python ".concat(e.replace("python",""));if(e.startsWith("go"))return"Go ".concat(e.replace("go",""));if(e.startsWith("java"))return"Java ".concat(e.replace("java",""));if(e.startsWith("dotnet"))return".NET ".concat(e.replace("dotnet",""));break;case"type":if("api"===e)return"API";if("web"===e)return"Web App";if("mobile"===e)return"Mobile App"}return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()},ge=function(e){return n(pe,ae({},e,{variant:"role"}))},ye=function(e){return n(pe,ae({},e,{variant:"type"}))},be=function(e){return n(pe,ae({},e,{variant:"runtime"}))},we=function(e){return n(pe,ae({},e,{variant:"execution"}))},ke=function(e){return n(pe,ae({},e,{variant:"severity"}))},Ce={users:G,applications:$,functions:W,tokens:J,executions:W,permissions:J,audit:H,generic:H},xe=function(t){var r=t.variant,i=void 0===r?"no-data":r,o=t.context,a=void 0===o?"generic":o,c=t.title,l=t.message,s=t.icon,u=t.iconSize,d=void 0===u?48:u,f=t.iconColor,v=void 0===f?"dimmed":f,g=t.actions,y=t.height,b=void 0===y?400:y,w=t.onAdd,k=t.onRefresh,x=t.onClearFilters,S=function(e,n){var t={users:"users",applications:"applications",functions:"functions",tokens:"tokens",executions:"executions",permissions:"permissions",audit:"audit events",generic:"items"}[n],r=t.charAt(0).toUpperCase()+t.slice(1);switch(e){case"no-data":return{title:"No ".concat(t," found"),message:"You haven't created any ".concat(t," yet. Get started by adding your first ").concat(t.slice(0,-1),".")};case"no-results":return{title:"No matching results",message:"No ".concat(t," match your current filters or search criteria. Try adjusting your search terms or clearing filters.")};case"error":return{title:"Something went wrong",message:"We couldn't load your ".concat(t,". Please try again or contact support if the problem persists.")};case"loading-failed":return{title:"Failed to load data",message:"There was a problem loading ".concat(t,". Check your connection and try again.")};case"access-denied":return{title:"Access denied",message:"You don't have permission to view ".concat(t,". Contact your administrator if you need access.")};case"coming-soon":return{title:"Coming soon",message:"".concat(r," functionality is being developed. Check back soon for updates.")};default:return{title:"No ".concat(t),message:"There are no ".concat(t," to display.")}}}(i,a),z=c||S.title,I=l||S.message,F=s||Ce[a]||function(e){switch(e){case"no-results":return N;case"error":case"loading-failed":case"access-denied":return Y;default:return H}}(i),L=g||function(e,t,r,i,o){var a=[];switch(e){case"no-data":if(r){var c={users:{label:"Add User",onClick:r,variant:"filled",leftSection:n(U,{size:16})},applications:{label:"Create Application",onClick:r,variant:"filled",leftSection:n(U,{size:16})},functions:{label:"Create Function",onClick:r,variant:"filled",leftSection:n(U,{size:16})},tokens:{label:"Generate Token",onClick:r,variant:"filled",leftSection:n(U,{size:16})},executions:{label:"Run Function",onClick:r,variant:"filled",leftSection:n(W,{size:16})},permissions:{label:"Add Permission",onClick:r,variant:"filled",leftSection:n(U,{size:16})},audit:{label:"Refresh",onClick:r,variant:"light",leftSection:n(O,{size:16})},generic:{label:"Add New",onClick:r,variant:"filled",leftSection:n(U,{size:16})}};a.push(c[t])}break;case"no-results":o&&a.push({label:"Clear Filters",onClick:o,variant:"light",leftSection:n(M,{size:16})}),i&&a.push({label:"Refresh",onClick:i,variant:"outline",leftSection:n(O,{size:16})});break;case"error":case"loading-failed":i&&a.push({label:"Try Again",onClick:i,variant:"filled",leftSection:n(O,{size:16})})}return a}(i,a,w,k,x);return n(A,{h:b,children:e(m,{align:"center",gap:"lg",maw:400,ta:"center",children:[n(h,{c:v,children:n(F,{size:d,stroke:1.5})}),e(m,{align:"center",gap:"xs",children:[n(C,{size:"lg",fw:600,c:"dimmed",children:z}),n(C,{size:"sm",c:"dimmed",lh:1.5,children:I})]}),L.length>0&&n(m,{align:"center",gap:"sm",w:"100%",children:L.map(function(e,t){return n(p,{onClick:e.onClick,variant:e.variant||"filled",color:e.color,leftSection:e.leftSection,size:"sm",children:e.label},t)})})]})})},Ae=function(e){var t=e.onAddUser,r=ce(e,["onAddUser"]);return n(xe,ae({},r,{variant:"no-data",context:"users",onAdd:t}))},Se=function(e){var t=e.onCreateApp,r=ce(e,["onCreateApp"]);return n(xe,ae({},r,{variant:"no-data",context:"applications",onAdd:t}))},ze=function(e){var t=e.onCreateFunction,r=ce(e,["onCreateFunction"]);return n(xe,ae({},r,{variant:"no-data",context:"functions",onAdd:t}))},Ie=function(e){var t=e.onGenerateToken,r=ce(e,["onGenerateToken"]);return n(xe,ae({},r,{variant:"no-data",context:"tokens",onAdd:t}))},Fe=function(e){var t=e.onClearFilters,r=e.onRefresh,i=ce(e,["onClearFilters","onRefresh"]);return n(xe,ae({},i,{variant:"no-results",onClearFilters:t,onRefresh:r}))},Le=function(e){var t=e.onRetry,r=ce(e,["onRetry"]);return n(xe,ae({},r,{variant:"error",onRefresh:t}))},Te=function(r){var i,o=r.opened,a=r.onClose,c=r.title,m=r.width,p=void 0===m?450:m,v=r.position,g=void 0===v?"right":v,y=r.headerActions,b=r.footer,w=r.children,k=r.zIndex,C=void 0===k?1e3:k,x=r.offsetTop,A=void 0===x?60:x,S=r.backgroundColor,z=void 0===S?"var(--mantine-color-body)":S,I=r.borderColor,F=void 0===I?"var(--mantine-color-gray-3)":I,T=r.animationDuration,E=void 0===T?"0.3s":T,j=r["aria-label"];return e(l,{style:(i={position:"fixed",top:A,bottom:0,width:"".concat(p,"px"),zIndex:C,borderRadius:0,display:"flex",flexDirection:"column",backgroundColor:z,transition:"".concat(g," ").concat(E," ease")},ae(ae({},i),"right"===g?{right:o?0:"-".concat(p,"px"),borderLeft:"1px solid ".concat(F)}:{left:o?0:"-".concat(p,"px"),borderRight:"1px solid ".concat(F)})),role:"dialog","aria-modal":"true","aria-label":j||c,"aria-hidden":!o,children:[e(s,{justify:"space-between",p:"md",style:{borderBottom:"1px solid ".concat(F)},children:[n(u,{order:4,style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:c}),y&&n(s,{gap:"xs",children:y}),n(d,{variant:"subtle",color:"gray",onClick:a,"aria-label":"Close sidebar",ml:"xs",children:n(D,{size:18})})]}),n(f,{style:{flex:1},scrollbarSize:6,children:n(h,{p:"md",children:w})}),b&&e(t,{children:[n(L,{}),n(h,{p:"md",style:{borderTop:"1px solid ".concat(F)},children:b})]})]})},Ee=function(t){var r=t.children,i=t.cancelLabel,o=void 0===i?"Cancel":i,a=t.submitLabel,c=void 0===a?"Save":a,l=t.onCancel,u=t.onSubmit,f=t.submitDisabled,h=void 0!==f&&f,m=t.showFooterActions,p=void 0===m||m,v=t.onClose,g=ce(t,["children","cancelLabel","submitLabel","onCancel","onSubmit","submitDisabled","showFooterActions","onClose"]),y=p?e(s,{justify:"flex-end",gap:"sm",children:[n(d,{variant:"subtle",onClick:function(){null==l||l(),v()},size:"sm",children:o}),n(d,{onClick:u,disabled:h,size:"sm",children:c})]}):void 0;return n(Te,ae({},g,{onClose:v,footer:y,children:r}))},je=function(t){var r=t.itemName,i=t.itemType,o=void 0===i?"Item":i,a=t.editButton,c=t.deleteButton,l=t.status,u=t.children,d=ce(t,["itemName","itemType","editButton","deleteButton","status","children"]),f=e(s,{gap:"xs",children:[l,a,c]});return n(Te,ae({},d,{title:"".concat(o,": ").concat(r),headerActions:f,children:u}))},Pe=function(e){var t=e.content,r=e.actions,i=ce(e,["content","actions"]);return n(Te,ae({},i,{footer:r,children:t}))},Re=function(e){void 0===e&&(e=!1);var n=r.useState(e),t=n[0],i=n[1];return{opened:t,open:r.useCallback(function(){return i(!0)},[]),close:r.useCallback(function(){return i(!1)},[]),toggle:r.useCallback(function(){return i(function(e){return!e})},[]),setOpened:i}},De=function(t){var i=t.item,o=t.actions,a=t.trigger,c=void 0===a?"dots":a,l=t.triggerLabel,s=void 0===l?"Actions":l,u=t.triggerIcon,f=void 0===u?V:u,h=t.triggerProps,m=void 0===h?{}:h,v=t.customTrigger,g=t.position,y=void 0===g?"bottom-end":g,b=t.withArrow,w=void 0!==b&&b,k=t.withinPortal,x=void 0===k||k,A=t["aria-label"],S=o.filter(function(e){return!e.hidden&&!(e.show&&!e.show(i))}),z=Oe(S);if(0===S.length)return null;var I=function(e){var t=e.icon;return n(F.Item,{leftSection:t&&n(t,{size:14}),color:e.color,disabled:e.disabled,onClick:function(){return function(e){return le(void 0,void 0,void 0,function(){var t;return se(this,function(r){switch(r.label){case 0:return r.trys.push([0,4,,5]),e.confirm?[2,new Promise(function(t){ie.openConfirmModal({title:e.confirm.title,children:n(C,{size:"sm",children:e.confirm.message}),labels:{confirm:e.confirm.confirmLabel||"Confirm",cancel:e.confirm.cancelLabel||"Cancel"},confirmProps:{color:e.color||"red"},onConfirm:function(){return le(void 0,void 0,void 0,function(){var n;return se(this,function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,e.onClick(i)];case 1:return r.sent(),t(),[3,3];case 2:return n=r.sent(),console.error("Action ".concat(e.key," failed:"),n),re.show({title:"Action Failed",message:"Failed to ".concat(e.label.toLowerCase()),color:"red"}),[3,3];case 3:return[2]}})})},onCancel:function(){return t()}})})]:[3,1];case 1:return[4,e.onClick(i)];case 2:r.sent(),r.label=3;case 3:return[3,5];case 4:return t=r.sent(),console.error("Action ".concat(e.key," failed:"),t),re.show({title:"Action Failed",message:"Failed to ".concat(e.label.toLowerCase()),color:"red"}),[3,5];case 5:return[2]}})})}(e)},children:e.label},e.key)};return e(F,{position:y,withArrow:w,withinPortal:x,children:[n(F.Target,{children:v||("button"===c?n(p,ae({variant:"light",size:"xs",leftSection:n(f,{size:16})},m,{children:s})):n(d,ae({variant:"subtle",color:"gray",size:"sm","aria-label":A||"".concat(s," menu")},m,{children:n(f,{size:16})})))}),n(F.Dropdown,{children:z.map(function(t,i){return e(r.Fragment,{children:[t.map(I),i<z.length-1&&n(F.Divider,{})]},i)})})]})},Oe=function(e){var n=[],t=[],r=[];e.forEach(function(e){"red"===e.color||e.key.includes("delete")||e.key.includes("remove")?r.push(e):e.key.includes("edit")||e.key.includes("view")||e.key.includes("copy")?n.push(e):t.push(e)});var i=[];return n.length>0&&i.push(n),t.length>0&&i.push(t),r.length>0&&i.push(r),i},Ue=function(e){return{key:"view",label:"View Details",icon:_,onClick:e}},Ne=function(e){return{key:"edit",label:"Edit",icon:B,color:"blue",onClick:e}},Me=function(e){return{key:"copy",label:"Duplicate",icon:X,onClick:e}},Be=function(e,n){return void 0===n&&(n="item"),{key:"delete",label:"Delete",icon:q,color:"red",onClick:e,confirm:{title:"Confirm Delete",message:"Are you sure you want to delete this ".concat(n,"? This action cannot be undone."),confirmLabel:"Delete",cancelLabel:"Cancel"}}},qe=function(e){return{key:"archive",label:"Archive",icon:Z,color:"orange",onClick:e,confirm:{title:"Archive Item",message:"Are you sure you want to archive this item?"}}},Ve=function(e){return{key:"restore",label:"Restore",icon:K,color:"green",onClick:e}},We=function(e,n,t){return ue(ue([],t?[Ue(t)]:[],!0),[Ne(e),Be(n,"user")],!1)},Ge=function(e,n,t){return ue(ue([Ne(e)],t?[{key:"configure",label:"Configure",icon:Q,onClick:t}]:[],!0),[Be(n,"application")],!1)},$e=function(e,n,t,r){return ue(ue(ue([],t?[{key:"execute",label:"Execute",icon:ee,color:"green",onClick:t}]:[],!0),r?[{key:"logs",label:"View Logs",icon:_,onClick:r}]:[],!0),[Ne(e),Be(n,"function")],!1)},Je=function(e,n,t){return ue(ue(ue([],n?[Me(n)]:[],!0),t?[{key:"refresh",label:"Refresh",icon:O,onClick:t}]:[],!0),[{key:"revoke",label:"Revoke",icon:ne,color:"red",onClick:e,confirm:{title:"Revoke Token",message:"Are you sure you want to revoke this token? This action cannot be undone and will immediately disable the token.",confirmLabel:"Revoke"}}],!1)},He=function(r){var i=r.variant,o=void 0===i?"spinner":i,a=r.size,c=void 0===a?"md":a,l=r.height,u=void 0===l?200:l,d=r.message,f=r.submessage,p=r.progress,v=r.progressLabel,g=r.rows,y=void 0===g?5:g,b=r.columns,w=void 0===b?3:b,k=r.color,x=void 0===k?"blue":k,S=r.withContainer,z=void 0===S||S,I=r.animate,F=void 0===I||I,L=function(){return{xs:"xs",sm:"sm",md:"md",lg:"lg",xl:"xl"}[c]},D=function(){return e(m,{align:"center",gap:"md",children:[n(T,{size:{xs:16,sm:24,md:32,lg:48,xl:64}[c],color:x}),d&&n(C,{size:L(),c:"dimmed",ta:"center",children:d}),f&&n(C,{size:"xs",c:"dimmed",ta:"center",children:f})]})},O=function(){switch(o){case"progress":return e(m,{gap:"md",children:[(d||v)&&e(s,{justify:"space-between",children:[n(C,{size:L(),children:d||"Loading..."}),v&&n(C,{size:"sm",c:"dimmed",children:v})]}),n(E,{value:p||0,color:x,size:c,animated:F}),f&&n(C,{size:"xs",c:"dimmed",ta:"center",children:f})]});case"skeleton-table":return e(m,{gap:"xs",children:[n(s,{gap:"md",children:Array.from({length:w}).map(function(e,t){return n(j,{height:20,width:"".concat(100/w,"%")},"header-".concat(t))})}),Array.from({length:y}).map(function(e,t){return n(s,{gap:"md",children:Array.from({length:w}).map(function(e,r){return n(j,{height:16,width:"".concat(100/w,"%")},"cell-".concat(t,"-").concat(r))})},"row-".concat(t))})]});case"skeleton-cards":return n(P,{cols:{base:1,sm:2,lg:w},children:Array.from({length:y*w}).map(function(t,r){return n(R,{padding:"md",withBorder:!0,children:e(m,{gap:"xs",children:[n(j,{height:20,width:"70%"}),n(j,{height:14}),n(j,{height:14,width:"90%"}),e(s,{justify:"apart",mt:"md",children:[n(j,{height:12,width:"40%"}),n(j,{height:12,width:"30%"})]})]})},"card-".concat(r))})});case"skeleton-form":return e(m,{gap:"md",children:[Array.from({length:y}).map(function(t,r){return e(h,{children:[n(j,{height:12,width:"30%",mb:"xs"}),n(j,{height:36})]},"form-field-".concat(r))}),e(s,{justify:"flex-end",mt:"xl",children:[n(j,{height:36,width:80}),n(j,{height:36,width:100})]})]});case"skeleton-text":return n(m,{gap:"xs",children:Array.from({length:y}).map(function(e,t){var r=["100%","95%","85%","90%","75%"];return n(j,{height:16,width:r[t%r.length]},"text-".concat(t))})});case"dots":return t=Array.from({length:3}).map(function(e,t){return n(h,{w:8,h:8,bg:x,style:{borderRadius:"50%",animation:F?"loading-dots 1.4s infinite ease-in-out ".concat(.16*t,"s"):void 0}},t)}),e(m,{align:"center",gap:"md",children:[n(s,{gap:"xs",children:t}),d&&n(C,{size:L(),c:"dimmed",ta:"center",children:d})]});case"overlay":return n(h,{style:{position:"absolute",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(255, 255, 255, 0.8)",backdropFilter:"blur(2px)",zIndex:1e3},children:n(A,{h:"100%",children:D()})});default:return D()}var t};if("overlay"===o)return e(t,{children:[O(),n("style",{children:Ye})]});var U=e(t,{children:[O(),F&&n("style",{children:Ye})]});return z?n(A,{h:u,children:U}):U},Ye="\n @keyframes loading-dots {\n 0%, 80%, 100% {\n transform: scale(0);\n opacity: 0.5;\n }\n 40% {\n transform: scale(1);\n opacity: 1;\n }\n }\n",_e=function(e){var t=e.rows,r=void 0===t?5:t,i=e.columns;return n(He,{variant:"skeleton-table",rows:r,columns:void 0===i?4:i,withContainer:!1})},Xe=function(e){var t=e.count,r=void 0===t?6:t,i=e.columns,o=void 0===i?3:i;return n(He,{variant:"skeleton-cards",rows:Math.ceil(r/o),columns:o,withContainer:!1})},Ze=function(e){var t=e.fields;return n(He,{variant:"skeleton-form",rows:void 0===t?4:t,withContainer:!1})},Ke=function(e){var t=e.message;return n(He,{variant:"spinner",message:void 0===t?"Loading page...":t,height:"60vh",size:"lg"})},Qe=function(t){var r=t.message,i=void 0===r?"Loading...":r,o=t.size,a=void 0===o?"sm":o;return e(s,{gap:"xs",children:[n(T,{size:"xs"===a?12:"sm"===a?16:20}),n(C,{size:a,c:"dimmed",children:i})]})},en=function(e){void 0===e&&(e=!1);var n=r.useState(e),t=n[0],i=n[1],o=r.useState(0),a=o[0],c=o[1];return{loading:t,progress:a,startLoading:r.useCallback(function(){return i(!0)},[]),stopLoading:r.useCallback(function(){i(!1),c(0)},[]),updateProgress:r.useCallback(function(e){c(Math.max(0,Math.min(100,e)))},[]),setLoading:i,setProgress:c}},nn=function(e,n){var t=o([]),r=t[0],i=t[1],c=o(!1),l=c[0],s=c[1],u=o(null),d=u[0],f=u[1],h=o(0),m=h[0],p=h[1],v=o(!1),g=v[0],y=v[1],b=oe.create({baseURL:e.baseURL,timeout:e.timeout||1e4,headers:ae({"Content-Type":"application/json"},e.defaultHeaders)});b.interceptors.request.use(function(e){return e.headers["X-User-Email"]="admin@example.com",e},function(e){return Promise.reject(e)}),b.interceptors.response.use(function(e){return e},function(e){var n,t,r=(null===(t=null===(n=e.response)||void 0===n?void 0:n.data)||void 0===t?void 0:t.message)||e.message||"An error occurred";return f(r),Promise.reject(e)});var w=a(function(){f(null)},[]),k=a(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return le(void 0,ue([],e,!0),void 0,function(e){var t,r,o,a,c,l,u,d;return void 0===e&&(e={}),se(this,function(h){switch(h.label){case 0:s(!0),f(null),h.label=1;case 1:return h.trys.push([1,3,4,5]),t=new URLSearchParams,Object.entries(e).forEach(function(e){var n=e[0],r=e[1];null!=r&&""!==r&&t.append(n,r.toString())}),[4,b.get("".concat(n,"?").concat(t.toString()))];case 2:if("data"in(r=h.sent()).data&&Array.isArray(r.data.data))return o=r.data,i(o.data),p(o.total),y(o.has_more||!1),[2,o.data];if("data"in r.data&&Array.isArray(r.data.data))return a=r.data,i(a.data),p(a.data.length),y(!1),[2,a.data];if(Array.isArray(r.data))return i(r.data),p(r.data.length),y(!1),[2,r.data];throw new Error("Invalid response format");case 3:throw c=h.sent(),l=(null===(d=null===(u=c.response)||void 0===u?void 0:u.data)||void 0===d?void 0:d.message)||c.message||"Failed to fetch data",f(l),c;case 4:return s(!1),[7];case 5:return[2]}})})},[b,n]),C=a(function(e){return le(void 0,void 0,void 0,function(){var t,r,i,o,a;return se(this,function(c){switch(c.label){case 0:s(!0),f(null),c.label=1;case 1:return c.trys.push([1,3,4,5]),[4,b.get("".concat(n,"/").concat(e))];case 2:return t=c.sent(),[2,"data"in t.data?t.data.data:t.data];case 3:throw r=c.sent(),i=(null===(a=null===(o=r.response)||void 0===o?void 0:o.data)||void 0===a?void 0:a.message)||r.message||"Failed to fetch item",f(i),r;case 4:return s(!1),[7];case 5:return[2]}})})},[b,n]),x=a(function(e){return le(void 0,void 0,void 0,function(){var t,r,o,a,c,l;return se(this,function(u){switch(u.label){case 0:s(!0),f(null),u.label=1;case 1:return u.trys.push([1,3,4,5]),[4,b.post(n,e)];case 2:return t=u.sent(),r="data"in t.data?t.data.data:t.data,i(function(e){return ue(ue([],e,!0),[r],!1)}),p(function(e){return e+1}),[2,r];case 3:throw o=u.sent(),a=(null===(l=null===(c=o.response)||void 0===c?void 0:c.data)||void 0===l?void 0:l.message)||o.message||"Failed to create item",f(a),o;case 4:return s(!1),[7];case 5:return[2]}})})},[b,n]),A=a(function(e,t){return le(void 0,void 0,void 0,function(){var r,o,a,c,l,u;return se(this,function(d){switch(d.label){case 0:s(!0),f(null),d.label=1;case 1:return d.trys.push([1,3,4,5]),[4,b.put("".concat(n,"/").concat(e),t)];case 2:return r=d.sent(),o="data"in r.data?r.data.data:r.data,i(function(n){return n.map(function(n){return n.id===e?o:n})}),[2,o];case 3:throw a=d.sent(),c=(null===(u=null===(l=a.response)||void 0===l?void 0:l.data)||void 0===u?void 0:u.message)||a.message||"Failed to update item",f(c),a;case 4:return s(!1),[7];case 5:return[2]}})})},[b,n]),S=a(function(e){return le(void 0,void 0,void 0,function(){var t,r,o,a;return se(this,function(c){switch(c.label){case 0:s(!0),f(null),c.label=1;case 1:return c.trys.push([1,3,4,5]),[4,b.delete("".concat(n,"/").concat(e))];case 2:return c.sent(),i(function(n){return n.filter(function(n){return n.id!==e})}),p(function(e){return e-1}),[3,5];case 3:throw t=c.sent(),r=(null===(a=null===(o=t.response)||void 0===o?void 0:o.data)||void 0===a?void 0:a.message)||t.message||"Failed to delete item",f(r),t;case 4:return s(!1),[7];case 5:return[2]}})})},[b,n]),z=a(function(){return le(void 0,void 0,void 0,function(){return se(this,function(e){switch(e.label){case 0:return[4,k()];case 1:return e.sent(),[2]}})})},[k]);return{data:r,loading:l,error:d,total:m,hasMore:g,client:b,getAll:k,getById:C,create:x,update:A,delete:S,clearError:w,refresh:z}},tn=function(e,n){void 0===n&&(n={});var t=n.searchFields,r=void 0===t?["name","title","email","description"]:t,i=n.defaultFilters,l=void 0===i?{}:i,s=o(l),u=s[0],d=s[1],f=o(""),h=f[0],m=f[1],p=a(function(e,n){"search"===e?(m(n),d(function(e){return ae(ae({},e),{search:n})})):d(function(t){var r;return ae(ae({},t),((r={})[e]=n,r))})},[]),v=a(function(){d({}),m("")},[]),g=a(function(){d(l),m("")},[l]),y=c(function(){var n=ue([],e,!0);if(h.trim()){var t=h.toLowerCase().trim();n=n.filter(function(e){return r.some(function(n){var r=e[n];return!!r&&r.toString().toLowerCase().includes(t)})})}return Object.entries(u).forEach(function(e){var t=e[0],r=e[1];"search"!==t&&null!=r&&""!==r&&(n=Array.isArray(r)&&r.length>0?n.filter(function(e){return r.includes(e[t])}):n.filter(function(e){var n=e[t];return null!=n&&(n.toString().toLowerCase()===r.toString().toLowerCase()||"string"==typeof n&&"string"==typeof r&&n.toLowerCase().includes(r.toLowerCase()))}))}),n},[e,h,u,r]);return{filteredData:y,filters:u,setFilter:p,clearFilters:v,resetFilters:g,searchTerm:h,setSearchTerm:m}},rn=function(e,n){void 0===n&&(n="Success");var t={title:n,message:e,color:"green"};re.show(t)},on=function(e,n){void 0===n&&(n="Error");var t={title:n,message:e,color:"red"};re.show(t)},an=function(e,n){void 0===n&&(n="Warning");var t={title:n,message:e,color:"yellow"};re.show(t)},cn=function(e,n){void 0===n&&(n="Info");var t={title:n,message:e,color:"blue"};re.show(t)},ln={createSuccess:function(e){return"".concat(e," created successfully")},updateSuccess:function(e){return"".concat(e," updated successfully")},deleteSuccess:function(e){return"".concat(e," deleted successfully")},createError:function(e){return"Failed to create ".concat(e)},updateError:function(e){return"Failed to update ".concat(e)},deleteError:function(e){return"Failed to delete ".concat(e)},loadError:function(e){return"Failed to load ".concat(e)},networkError:"Network error occurred. Please try again.",validationError:"Please check the form for errors",requiredFieldError:function(e){return"".concat(e," is required")},authRequired:"Authentication required",permissionDenied:"Permission denied",sessionExpired:"Session expired. Please log in again.",applicationCreated:"Application created successfully",applicationUpdated:"Application updated successfully",applicationDeleted:"Application deleted successfully",tokenCreated:"Token created successfully",tokenRevoked:"Token revoked successfully",userCreated:"User created successfully",userUpdated:"User updated successfully",userDeleted:"User deleted successfully",functionCreated:"Function created successfully",functionUpdated:"Function updated successfully",functionDeleted:"Function deleted successfully",executionStarted:"Function execution started",executionCompleted:"Function execution completed",executionFailed:"Function execution failed"},sn={success:function(e,n){var t=ln["".concat(e,"Success")](n);rn(t)},error:function(e,n,t){var r=t||ln["".concat(e,"Error")](n);on(r)}},un={email:/^\S+@\S+\.\S+$/,url:/^https?:\/\/.+/,duration:/^\d+[smhd]$/,token:/^[a-zA-Z0-9_-]+$/,appId:/^[a-zA-Z0-9-_]+$/,uuid:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i},dn={required:function(e){return"".concat(e," is required")},email:"Please enter a valid email address",url:"Please enter a valid URL (http:// or https://)",duration:"Duration must be in format like 30s, 5m, 2h, 1d",minLength:function(e,n){return"".concat(e," must be at least ").concat(n," characters")},maxLength:function(e,n){return"".concat(e," must be no more than ").concat(n," characters")},pattern:function(e){return"".concat(e," format is invalid")},token:"Token can only contain letters, numbers, underscores and hyphens",appId:"App ID can only contain letters, numbers, hyphens and underscores",uuid:"Please enter a valid UUID",positiveNumber:"Must be a positive number",range:function(e,n,t){return"".concat(e," must be between ").concat(n," and ").concat(t)}},fn=function(e){return null==e||""===e||Array.isArray(e)&&0===e.length?"This field is required":null},hn=function(e){return e?un.email.test(e)?null:dn.email:null},mn=function(e){return e?un.url.test(e)?null:dn.url:null},pn=function(e){return e?un.duration.test(e)?null:dn.duration:null},vn=function(e,n,t){return void 0===t&&(t="Field"),e?e.length>=n?null:dn.minLength(t,n):null},gn=function(e,n,t){return void 0===t&&(t="Field"),e?e.length<=n?null:dn.maxLength(t,n):null},yn=function(e,n,t){return void 0===t&&(t="Field"),e?n.test(e)?null:dn.pattern(t):null},bn=function(e,n,t,r){return void 0===r&&(r="Field"),null==e?null:e<n||e>t?dn.range(r,n,t):null},wn=function(e){return e?un.appId.test(e)?null:dn.appId:null},kn=function(e){return e?un.token.test(e)?null:dn.token:null},Cn=function(e){return e?un.uuid.test(e)?null:dn.uuid:null},xn=function(e){if(!e||""===e.trim())return null;try{return JSON.parse(e),null}catch(e){return"Invalid JSON format"}},An=function(e){var n=e.match(/^(\d+)([smhd]?)$/);if(!n)return 86400;var t=parseInt(n[1]);switch(n[2]||"h"){case"s":return t;case"m":return 60*t;case"h":default:return 3600*t;case"d":return 86400*t}},Sn=function(e){return e<60?"".concat(e,"s"):e<3600?"".concat(Math.floor(e/60),"m"):e<86400?"".concat(Math.floor(e/3600),"h"):"".concat(Math.floor(e/86400),"d")},zn=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return function(n){for(var t=0,r=e;t<r.length;t++){var i=(0,r[t])(n);if(i)return i}return null}};export{De as ActionMenu,ye as ApplicationTypeBadge,Xe as CardsLoadingState,fe as DataTable,je as DetailsSidebar,xe as EmptyState,Le as ErrorState,we as ExecutionStatusBadge,Ze as FormLoadingState,de as FormSidebar,Ee as FormSidebarWrapper,Qe as InlineLoadingState,He as LoadingState,Se as NoApplicationsState,ze as NoFunctionsState,Fe as NoSearchResults,Ie as NoTokensState,Ae as NoUsersState,ln as NotificationMessages,Ke as PageLoadingState,Pe as QuickSidebar,be as RuntimeBadge,ke as SeverityBadge,Te as Sidebar,pe as StatusBadge,_e as TableLoadingState,ge as UserRoleBadge,dn as ValidationMessages,un as ValidationPatterns,zn as combineValidators,qe as createArchiveAction,Me as createCopyAction,Be as createDeleteAction,Ne as createEditAction,Ve as createRestoreAction,Ue as createViewAction,Sn as formatDuration,Ge as getApplicationActions,$e as getFunctionActions,Je as getTokenActions,We as getUserActions,An as parseDuration,sn as showCrudNotification,on as showErrorNotification,cn as showInfoNotification,rn as showSuccessNotification,an as showWarningNotification,nn as useApiService,tn as useDataFilter,en as useLoadingState,Re as useSidebar,wn as validateAppId,pn as validateDuration,hn as validateEmail,xn as validateJsonString,gn as validateMaxLength,vn as validateMinLength,yn as validatePattern,bn as validateRange,fn as validateRequired,kn as validateToken,mn as validateUrl,Cn as validateUuid};
//# sourceMappingURL=index.esm.js.map