@objectstack/console 14.3.0 → 14.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/dist/.objectui-sha +1 -1
  2. package/dist/assets/{AdapterProvider-BdI1AL8R.js → AdapterProvider-cnK1q1oP.js} +1 -1
  3. package/dist/assets/{AiPendingActionsPage-C9rOGWO9.js → AiPendingActionsPage-mX_Izb42.js} +1 -1
  4. package/dist/assets/{ApiConsolePage-CTk6_qVK.js → ApiConsolePage-fUV9bmEg.js} +1 -1
  5. package/dist/assets/{AppDocsIndex-BL_J__HY.js → AppDocsIndex-Bzh_4ehZ.js} +1 -1
  6. package/dist/assets/{AppManagementPage-Co5xg-gQ.js → AppManagementPage-BRmzB5eR.js} +1 -1
  7. package/dist/assets/ApprovalsInboxPage-DKgnvZ-2.js +1 -0
  8. package/dist/assets/AuditLogPage-REsiCTKG.js +1 -0
  9. package/dist/assets/{ComponentNavView-2bXBqHvo.js → ComponentNavView-B4EBSM-o.js} +1 -1
  10. package/dist/assets/ConsoleFloatingChatbot-BW-g5YTu.js +1 -0
  11. package/dist/assets/{CreateViewDialog-BQ1-ZWYN.js → CreateViewDialog-BhCe1ZPc.js} +1 -1
  12. package/dist/assets/{DashboardView-Cns3m8MX.js → DashboardView-CUXRWKPH.js} +1 -1
  13. package/dist/assets/{DeveloperHubPage-xHzPIDex.js → DeveloperHubPage-B6pD0HUk.js} +1 -1
  14. package/dist/assets/{ExpressionProvider-BdMK_o7f.js → ExpressionProvider-D94jBDAc.js} +1 -1
  15. package/dist/assets/FlowRunsPage-C4Setjuz.js +1 -0
  16. package/dist/assets/{IntegrationsPage-B8IBLh_r.js → IntegrationsPage-EOVS24Ho.js} +2 -2
  17. package/dist/assets/{InterfaceListPage-DAkJEFCf.js → InterfaceListPage-BFlwb0U7.js} +1 -1
  18. package/dist/assets/{ManagedByBadge-C8RoPUEX.js → ManagedByBadge-Dpgfl255.js} +1 -1
  19. package/dist/assets/{MarketplaceAccessDenied-D3JunScQ.js → MarketplaceAccessDenied-DuO_FDoh.js} +1 -1
  20. package/dist/assets/{MarketplaceInstalledPage-IjVxon4M.js → MarketplaceInstalledPage-4MFyBXDW.js} +1 -1
  21. package/dist/assets/MarketplacePackagePage-BDeaeKiT.js +4 -0
  22. package/dist/assets/{MarketplacePage-aoYsZs4L.js → MarketplacePage-DXMWpCHb.js} +1 -1
  23. package/dist/assets/{MetadataInspector-BD4Mhmpt.js → MetadataInspector-YoFTAkMA.js} +1 -1
  24. package/dist/assets/MetadataProvider-C8ABa_gQ.js +1 -0
  25. package/dist/assets/ObjectDataPage-BSvqdmym.js +1 -0
  26. package/dist/assets/PageView-Dlpz3HgH.js +1 -0
  27. package/dist/assets/ProfilePage-2H6e2j4o.js +1 -0
  28. package/dist/assets/{PublicFormsPage-CkKQzpw_.js → PublicFormsPage-DXYBK10A.js} +1 -1
  29. package/dist/assets/RecordDetailView-CEdkDgV8.js +9 -0
  30. package/dist/assets/{RecordFormPage-DPml60ze.js → RecordFormPage-Bj3lDGqC.js} +1 -1
  31. package/dist/assets/ReportDefaultInspector-BNtsE5kW.js +3 -0
  32. package/dist/assets/ReportView-COxfnluU.js +2 -0
  33. package/dist/assets/{SearchResultsPage-CiSIs_M4.js → SearchResultsPage-B3ShD29d.js} +1 -1
  34. package/dist/assets/{SettingsHub-PlVT_0zU.js → SettingsHub-DgLunUQU.js} +1 -1
  35. package/dist/assets/{SettingsView-PA2_5adN.js → SettingsView-DFfL8vn4.js} +1 -1
  36. package/dist/assets/{SystemHubPage-DN6WDMNI.js → SystemHubPage-A9Z1FplZ.js} +1 -1
  37. package/dist/assets/data-adapter-CAqKExcJ.js +7 -0
  38. package/dist/assets/{framework-Itfj9AWQ.js → framework-CWU64Lvg.js} +3 -3
  39. package/dist/assets/getIcon-p-vXfFiY.js +1 -0
  40. package/dist/assets/{highlighted-body-OFNGDK62-DyDg64aM.js → highlighted-body-OFNGDK62-CcYD5yKj.js} +1 -1
  41. package/dist/assets/i18n-DGsfMUMn.js +9 -0
  42. package/dist/assets/index-BhMd7RVY.js +2 -0
  43. package/dist/assets/index-Dt-GIgSI.css +2 -0
  44. package/dist/assets/infrastructure-DexdbqHf.js +3 -0
  45. package/dist/assets/marketplaceApi-1mMRJWDq.js +1 -0
  46. package/dist/assets/mermaid-GHXKKRXX-DWvjDOK-.js +1 -0
  47. package/dist/assets/metadata-admin-R79BWSDJ.js +23 -0
  48. package/dist/assets/plugin-calendar-GOvhSPjZ.js +1 -0
  49. package/dist/assets/plugin-charts-DPNohuuV.js +7 -0
  50. package/dist/assets/plugin-chatbot-BT49v2CR.js +120 -0
  51. package/dist/assets/plugin-dashboard-N2kUovsm.js +6 -0
  52. package/dist/assets/plugin-form-QFhBvb96.js +1 -0
  53. package/dist/assets/plugin-gantt-2HGBxhYq.js +93 -0
  54. package/dist/assets/plugin-grid-qkHiovZ2.js +8 -0
  55. package/dist/assets/plugin-kanban-D8kWLfql.js +1 -0
  56. package/dist/assets/plugin-map-CXsqUoPv.js +1 -0
  57. package/dist/assets/{plugin-markdown-ByE3Dezt.js → plugin-markdown-CFO9Lenx.js} +1 -1
  58. package/dist/assets/plugin-report-CH4uZunJ.js +59 -0
  59. package/dist/assets/plugin-timeline-3MSv2v9S.js +1 -0
  60. package/dist/assets/{plugin-tree-D7mdTkuW.js → plugin-tree-_3HdWuAy.js} +1 -1
  61. package/dist/assets/plugin-view-CTBpbehM.js +1 -0
  62. package/dist/assets/plugins-views-BxKprmRN.js +4 -0
  63. package/dist/assets/{skeletons-Ch9F6pA8.js → skeletons-ySdMMgAT.js} +1 -1
  64. package/dist/assets/src-TG89vY9R.js +18 -0
  65. package/dist/assets/{src-w44Q32YY.js → src-X8yirhNO.js} +1 -1
  66. package/dist/assets/surfaceAgent-qmokOosD.js +1 -0
  67. package/dist/assets/{types-GmZjwWOe.js → types-B99y2QyO.js} +1 -1
  68. package/dist/assets/{ui-components-DTwfkSDm.js → ui-components-DHIW7RSX.js} +9 -9
  69. package/dist/assets/{ui-layout-BHkbFI8f.js → ui-layout-DeDkO2oG.js} +1 -1
  70. package/dist/assets/useMetadata-DemWIEqg.js +1 -0
  71. package/dist/assets/{useRecordApprovals-Bo4WTft1.js → useRecordApprovals-R3Q7Bt7f.js} +1 -1
  72. package/dist/assets/vendor-objectstack-6Mgxtaa1.js +96 -0
  73. package/dist/index.html +34 -6
  74. package/package.json +1 -1
  75. package/dist/assets/ApprovalsInboxPage-DkfJVIDO.js +0 -1
  76. package/dist/assets/AuditLogPage-Ctj0habt.js +0 -1
  77. package/dist/assets/ConsoleFloatingChatbot-C_zzIjTL.js +0 -1
  78. package/dist/assets/FlowRunsPage-v43ayfID.js +0 -1
  79. package/dist/assets/MarketplacePackagePage-BivOR4dD.js +0 -4
  80. package/dist/assets/MetadataProvider-C9mhBo6s.js +0 -1
  81. package/dist/assets/ObjectDataPage-C1AX0mJW.js +0 -1
  82. package/dist/assets/PageView-CAAHjJzX.js +0 -1
  83. package/dist/assets/ProfilePage-tQyqenRR.js +0 -1
  84. package/dist/assets/RecordDetailView-DcyCqWcp.js +0 -9
  85. package/dist/assets/ReportDefaultInspector-De2iFQ0s.js +0 -11
  86. package/dist/assets/ReportView-BF5_XOtk.js +0 -2
  87. package/dist/assets/conversationLanguage-b5go1PfT.js +0 -1
  88. package/dist/assets/data-adapter-CbYJeapt.js +0 -7
  89. package/dist/assets/getIcon-DjDksPei.js +0 -1
  90. package/dist/assets/index-C31fE0Ro.js +0 -2
  91. package/dist/assets/index-N4ZfDXur.css +0 -2
  92. package/dist/assets/infrastructure-ASGyCRMg.js +0 -3
  93. package/dist/assets/marketplaceApi-N63OOXW-.js +0 -1
  94. package/dist/assets/mermaid-GHXKKRXX-Bdn3wVYM.js +0 -1
  95. package/dist/assets/metadata-admin-Chw3a2T4.js +0 -23
  96. package/dist/assets/plugin-calendar-C7XgGNhj.js +0 -1
  97. package/dist/assets/plugin-charts-DZcrIrvB.js +0 -7
  98. package/dist/assets/plugin-chatbot-D0Od_WLT.js +0 -120
  99. package/dist/assets/plugin-dashboard-CGXhP3SP.js +0 -6
  100. package/dist/assets/plugin-form-BxGl_G-P.js +0 -1
  101. package/dist/assets/plugin-gantt-DIXK_GFE.js +0 -93
  102. package/dist/assets/plugin-grid-BusTOlSB.js +0 -8
  103. package/dist/assets/plugin-kanban-BORORRbu.js +0 -1
  104. package/dist/assets/plugin-map-DhKLo0DD.js +0 -1
  105. package/dist/assets/plugin-report-CJmiocGk.js +0 -59
  106. package/dist/assets/plugin-timeline-B5L8EK0C.js +0 -1
  107. package/dist/assets/plugin-view-CMNOvn0A.js +0 -1
  108. package/dist/assets/plugins-views-BmubW-ty.js +0 -4
  109. package/dist/assets/src-DrSomF2I.js +0 -16
  110. package/dist/assets/useMetadata-DSuQLgo1.js +0 -1
  111. package/dist/assets/vendor-objectstack-BlgvvNrN.js +0 -108
@@ -1,2 +1,2 @@
1
- import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{g as t,r as n,y as r}from"./vendor-react-BGDDiZfJ.js";import{Kt as i}from"./framework-Itfj9AWQ.js";import{Rt as a}from"./ui-components-DTwfkSDm.js";var o=e(r(),1),s=n(),c=o.lazy(()=>t(()=>import(`./MonacoImpl-nyLaER8_.js`),[],import.meta.url)),l=({schema:e,value:t,onChange:n})=>(0,s.jsx)(o.Suspense,{fallback:(0,s.jsx)(a,{className:`w-full h-[400px]`}),children:(0,s.jsx)(c,{value:t??e.value,language:e.language,theme:e.theme,height:e.height,onChange:n??e.onChange,readOnly:e.readOnly,className:e.className})});i.register(`code-editor`,l,{namespace:`plugin-editor`,label:`Code Editor`,category:`plugin`,inputs:[{name:`value`,type:`string`,label:`Code`,defaultValue:``},{name:`language`,type:`enum`,label:`Language`,enum:[`javascript`,`typescript`,`python`,`json`,`html`,`css`],defaultValue:`javascript`},{name:`theme`,type:`enum`,label:`Theme`,enum:[`vs-dark`,`light`],defaultValue:`vs-dark`},{name:`height`,type:`string`,label:`Height`,defaultValue:`400px`},{name:`readOnly`,type:`boolean`,label:`Read Only`,defaultValue:!1}],defaultProps:{value:`// Write your code here
1
+ import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{g as t,r as n,y as r}from"./vendor-react-BGDDiZfJ.js";import{Kt as i}from"./framework-CWU64Lvg.js";import{Bt as a}from"./ui-components-DHIW7RSX.js";var o=e(r(),1),s=n(),c=o.lazy(()=>t(()=>import(`./MonacoImpl-nyLaER8_.js`),[],import.meta.url)),l=({schema:e,value:t,onChange:n})=>(0,s.jsx)(o.Suspense,{fallback:(0,s.jsx)(a,{className:`w-full h-[400px]`}),children:(0,s.jsx)(c,{value:t??e.value,language:e.language,theme:e.theme,height:e.height,onChange:n??e.onChange,readOnly:e.readOnly,className:e.className})});i.register(`code-editor`,l,{namespace:`plugin-editor`,label:`Code Editor`,category:`plugin`,inputs:[{name:`value`,type:`string`,label:`Code`,defaultValue:``},{name:`language`,type:`enum`,label:`Language`,enum:[`javascript`,`typescript`,`python`,`json`,`html`,`css`],defaultValue:`javascript`},{name:`theme`,type:`enum`,label:`Theme`,enum:[`vs-dark`,`light`],defaultValue:`vs-dark`},{name:`height`,type:`string`,label:`Height`,defaultValue:`400px`},{name:`readOnly`,type:`boolean`,label:`Read Only`,defaultValue:!1}],defaultProps:{value:`// Write your code here
2
2
  console.log("Hello, World!");`,language:`javascript`,theme:`vs-dark`,height:`400px`,readOnly:!1}});export{l as CodeEditorRenderer};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{f as t,h as n,m as r,y as i}from"./vendor-react-BGDDiZfJ.js";import{J as a,L as o,R as s,l as c}from"./framework-CWU64Lvg.js";import{Ft as l}from"./ui-components-DHIW7RSX.js";import{r as u}from"./vendor-ui-utils-BzQBRdq3.js";import"./AdapterProvider-cnK1q1oP.js";import{o as d}from"./MetadataProvider-C8ABa_gQ.js";import{o as f,r as p}from"./useRecordApprovals-R3Q7Bt7f.js";import{_ as m,d as h,g,v as _}from"./plugin-chatbot-BT49v2CR.js";import{n as v}from"./ui-layout-DeDkO2oG.js";import{r as y}from"./appRoute-1sYdkwBz.js";var b=e(i(),1);function x({objectName:e,objectLabel:n,dataSource:i,onEdit:o,onRefresh:s,onConfirm:l,onToast:d}){let f=t(),{appName:p}=r(),{t:m}=c(),h=`/apps/${p}`,{execute:g,loading:_,error:v,runner:y}=a({context:{objectName:e,objectLabel:n||e,baseUrl:h},onConfirm:l,onToast:d});return(0,b.useEffect)(()=>{y.registerHandler(`create`,async()=>(o?.(null),{success:!0})),y.registerHandler(`delete`,async t=>{let r=Array.isArray(t.params?.records)?t.params.records.filter(e=>e?.id!=null):null;if(r&&r.length>1){let t=await Promise.allSettled(r.map(t=>i.delete(e,t.id))),a=t.filter(e=>e.status===`rejected`).length,o=t.length-a;return s?.(),a===0?(u.success(m(`objectActions.bulkDeleteSuccess`,{count:o,label:n||e,defaultValue:`Deleted ${o} ${n||e} records`})),{success:!0,reload:!0,silent:!0}):(u.error(m(`objectActions.bulkDeletePartial`,{succeeded:o,failed:a,defaultValue:`${o} deleted, ${a} failed`})),{success:!1})}let a=t.params?.recordId??t.params?.record?.id??r?.[0]?.id??t.recordId;if(!a)return{success:!1,error:m(`objectActions.noRecordId`)};try{return await i.delete(e,a),s?.(),u.success(m(`objectActions.deleteSuccess`,{label:n||e})),{success:!0,reload:!0,silent:!0}}catch(t){return u.error(m(`objectActions.deleteFailed`,{label:n||e}),{description:t.message}),{success:!1}}}),y.registerHandler(`navigate`,async e=>{let t=e.params?.url||e.url;return t&&f(t.startsWith(`/`)?t:`${h}/${t}`),{success:!0}}),y.registerHandler(`refresh`,async()=>(s?.(),{success:!0,reload:!0}))},[y,e,i,o,s,f,h,m,n]),{execute:g,create:(0,b.useCallback)(()=>{o?.(null)},[o]),deleteRecord:(0,b.useCallback)(async e=>g({type:`delete`,confirmText:m(`objectActions.deleteConfirm`),params:{recordId:e}}),[g,m]),navigateToView:(0,b.useCallback)(t=>{f(`${h}/${e}/view/${t}`)},[f,h,e]),navigateToRecord:(0,b.useCallback)(t=>{f(`${h}/${e}/record/${encodeURIComponent(t)}`)},[f,h,e]),loading:_,error:v}}function S(e){return e==null?[]:Array.isArray(e)?e:[e]}function C(e,t){let{alias:r,value:i=`1`,replace:a=!0}=t??{},[o,s]=n(),c=(0,b.useMemo)(()=>S(r),[r]),l=(0,b.useCallback)(t=>t.get(e)===i||c.some(e=>t.get(e)===i),[e,i,c]),u=l(o),d=(0,b.useCallback)(t=>{if(t===l(o))return;let n=new URLSearchParams(o);if(t){n.set(e,i);for(let e of c)n.delete(e)}else{n.delete(e);for(let e of c)n.delete(e)}s(n,{replace:a})},[l,o,s,e,i,c,a]);return{open:u,setOpen:d,openOverlay:(0,b.useCallback)(()=>d(!0),[d]),closeOverlay:(0,b.useCallback)(()=>d(!1),[d]),toggleOverlay:(0,b.useCallback)(()=>{s(t=>{let n=new URLSearchParams(t);if(l(n)){n.delete(e);for(let e of c)n.delete(e)}else{n.set(e,i);for(let e of c)n.delete(e)}return n},{replace:a})},[s,l,e,i,c,a])}}var w=20;function ee(e,t=``){let{href:n,external:r}=v(e,t);return r?n:!n||n===`#`?``:n}function te(e){return`nav:${e}`}function ne(){let{favorites:e,addFavorite:t,removeFavorite:n,setPinned:r,pinnedNavIds:i}=p(),a=(0,b.useCallback)((e,i,a,o)=>{let s=te(e);i?(a&&t({id:s,label:a.label,href:ee(a,o??``),type:`nav`,navId:e,pinned:!0}),r(s,!0)):n(s)},[t,n,r]),o=(0,b.useCallback)(e=>i.has(e),[i]),s=(0,b.useCallback)(e=>{if(i.size===0){let t=!1;for(let n of e)if(n.pinned){t=!0;break}if(!t)return e}let t=0,n=e=>e.map(e=>{let r=i.has(e.id)&&t<w;r&&t++;let a=e.children?.length?n(e.children):e.children;return r!==(e.pinned??!1)||a!==e.children?{...e,pinned:r,children:a}:e});return n(e)},[i]),c=(0,b.useCallback)(()=>{for(let t of e)t.type===`nav`&&n(t.id)},[e,n]);return{pinnedIds:(0,b.useMemo)(()=>Array.from(i),[i]),togglePin:a,isPinned:o,applyPins:s,clearPins:c}}var re=768,ie=1024;function ae(){let{setOpen:e,isMobile:t}=l(),n=(0,b.useRef)(e);(0,b.useEffect)(()=>{n.current=e},[e]),(0,b.useEffect)(()=>{if(t)return;let e=!1;function r(){let t=window.innerWidth,r=t>=re&&t<ie;r&&!e&&n.current(!1),e=r}return r(),window.addEventListener(`resize`,r),()=>window.removeEventListener(`resize`,r)},[t])}function oe(e,t){return{name:e.name,label:e.label,pluralLabel:e.pluralLabel,description:e.description,icon:e.icon,group:e.group,sortOrder:e.sortOrder,enabled:e.enabled,fields:t,relationships:e.relationships}}function T(e){return{name:e.name,label:e.label,type:e.type,group:e.group,description:e.description,required:e.required,unique:e.unique,readonly:e.readonly,hidden:e.hidden,defaultValue:e.defaultValue,placeholder:e.placeholder,options:e.options,externalId:e.externalId,trackHistory:e.trackHistory,indexed:e.indexed,referenceTo:e.referenceTo,formula:e.formula,sortOrder:e.sortOrder}}var se=class{adapter;constructor(e){this.adapter=e}async getItems(e){let t=await this.adapter.getClient().meta.getItems(e);return t&&typeof t==`object`&&`items`in t&&Array.isArray(t.items)?t.items:[]}async saveMetadataItem(e,t,n){await this.adapter.getClient().meta.saveItem(e,t,n),this.adapter.invalidateCache(`${e}:${t}`)}async deleteMetadataItem(e,t){await this.adapter.getClient().meta.saveItem(e,t,{name:t,enabled:!1,_deleted:!0}),this.adapter.invalidateCache(`${e}:${t}`)}async saveObject(e,t){let n=this.adapter.getClient(),r=oe(e,t);await n.meta.saveItem(`object`,e.name,r),this.adapter.invalidateCache(`object:${e.name}`)}async deleteObject(e){await this.adapter.getClient().meta.saveItem(`object`,e,{name:e,enabled:!1,_deleted:!0}),this.adapter.invalidateCache(`object:${e}`)}async saveFields(e,t){let n=this.adapter.getClient(),r={};try{let t=await n.meta.getItem(`object`,e);r=t?.item??t??{}}catch{}let i={...r,name:e,fields:t.map(T)};await n.meta.saveItem(`object`,e,i),this.adapter.invalidateCache(`object:${e}`)}static diffObjects(e,t){let n=new Map(e.map(e=>[e.id,e])),r=new Map(t.map(e=>[e.id,e]));for(let[e,t]of r)if(!n.has(e))return{type:`create`,object:t};for(let[e,t]of n)if(!r.has(e))return{type:`delete`,object:t};for(let[e,t]of r){let r=n.get(e);if(r&&JSON.stringify(r)!==JSON.stringify(t))return{type:`update`,object:t}}return null}static diffFields(e,t){let n=new Map(e.map(e=>[e.id,e])),r=new Map(t.map(e=>[e.id,e]));for(let[e,t]of r)if(!n.has(e))return{type:`create`,field:t};for(let[e,t]of n)if(!r.has(e))return{type:`delete`,field:t};for(let[e,t]of r){let r=n.get(e);if(r&&JSON.stringify(r)!==JSON.stringify(t))return{type:`update`,field:t}}return null}};function ce(){let e=o();return(0,b.useMemo)(()=>e?new se(e):null,[e])}var le=0;function E(e=`nav`){return`${e}_${Date.now()}_${++le}`}function D(e,t){return[...e,t]}function O(e,t,n){return e.filter(e=>!(e.type===t&&(t===`page`&&e.pageName===n||t===`dashboard`&&e.dashboardName===n))).map(e=>e.children&&e.children.length>0?{...e,children:O(e.children,t,n)}:e)}function k(e,t,n,r){return e.map(e=>{let i=e;return t===`page`&&e.type===`page`&&e.pageName===n?i={...e,pageName:r}:t===`dashboard`&&e.type===`dashboard`&&e.dashboardName===n&&(i={...e,dashboardName:r}),i.children&&i.children.length>0?{...i,children:k(i.children,t,n,r)}:i})}function A(e,t){return e.length===t.length?e===t?!0:JSON.stringify(e)===JSON.stringify(t):!1}function j(e){return typeof e==`string`&&e.startsWith(`sys_`)}function ue(e){if(!e||typeof e!=`object`)return!1;let t=e;return t._packageId!=null||t._provenance===`package`?!0:j(t.name)}function M(e){if(!e||typeof e!=`object`)return!1;let t=e,n=t._lock??t.protection?.lock;return n!==`full`&&n!==`no-overlay`}function de(){let e=o(),{apps:t,refresh:n}=s(),{t:r}=c(),i=(0,b.useRef)(e);i.current=e;let a=(0,b.useRef)(n);a.current=n;let l=(0,b.useCallback)(async(e,t)=>{let n=i.current?.getClient();n&&await n.meta.saveItem(`app`,e,t),await a.current?.()},[]),d=(0,b.useCallback)(e=>y(t,e),[t]),f=(0,b.useCallback)(async(e,t,n)=>{let i=d(e);if(!i)return;let a=i.navigation??[],o=D(a,{id:E(`nav_page`),type:`page`,label:n||t,pageName:t,icon:`FileText`}),s={...i,navigation:o};try{await l(e,s),u.success(r(`navigationSync.addedPage`,{name:n||t}),{action:{label:r(`navigationSync.undoLabel`),onClick:async()=>{try{await l(e,{...i,navigation:a}),u.info(r(`navigationSync.undone`))}catch{u.error(r(`navigationSync.undoFailed`))}}}})}catch{u.error(r(`navigationSync.updateFailed`))}},[d,l,r]),p=(0,b.useCallback)(async(e,t,n)=>{let i=d(e);if(!i)return;let a=i.navigation??[],o=D(a,{id:E(`nav_dash`),type:`dashboard`,label:n||t,dashboardName:t,icon:`LayoutDashboard`}),s={...i,navigation:o};try{await l(e,s),u.success(r(`navigationSync.addedDashboard`,{name:n||t}),{action:{label:r(`navigationSync.undoLabel`),onClick:async()=>{try{await l(e,{...i,navigation:a}),u.info(r(`navigationSync.undone`))}catch{u.error(r(`navigationSync.undoFailed`))}}}})}catch{u.error(r(`navigationSync.updateFailed`))}},[d,l,r]),m=(0,b.useCallback)(async(e,t)=>{let n=d(e);if(!n)return;let i=n.navigation??[],a=O(i,`page`,t);if(A(a,i))return;let o={...n,navigation:a};try{await l(e,o),u.success(r(`navigationSync.removedPage`,{name:t}),{action:{label:r(`navigationSync.undoLabel`),onClick:async()=>{try{await l(e,{...n,navigation:i}),u.info(r(`navigationSync.undone`))}catch{u.error(r(`navigationSync.undoFailed`))}}}})}catch{u.error(r(`navigationSync.updateFailed`))}},[d,l,r]),h=(0,b.useCallback)(async(e,t)=>{let n=d(e);if(!n)return;let i=n.navigation??[],a=O(i,`dashboard`,t);if(A(a,i))return;let o={...n,navigation:a};try{await l(e,o),u.success(r(`navigationSync.removedDashboard`,{name:t}),{action:{label:r(`navigationSync.undoLabel`),onClick:async()=>{try{await l(e,{...n,navigation:i}),u.info(r(`navigationSync.undone`))}catch{u.error(r(`navigationSync.undoFailed`))}}}})}catch{u.error(r(`navigationSync.updateFailed`))}},[d,l,r]),g=(0,b.useCallback)(async(e,t,n)=>{let i=d(e);if(!i)return;let a=i.navigation??[],o=k(a,`page`,t,n);if(A(o,a))return;let s={...i,navigation:o};try{await l(e,s),u.success(r(`navigationSync.renamedPage`,{oldName:t,newName:n}),{action:{label:r(`navigationSync.undoLabel`),onClick:async()=>{try{await l(e,{...i,navigation:a}),u.info(r(`navigationSync.undone`))}catch{u.error(r(`navigationSync.undoFailed`))}}}})}catch{u.error(r(`navigationSync.updateFailed`))}},[d,l,r]),_=(0,b.useCallback)(async(e,t,n)=>{let i=d(e);if(!i)return;let a=i.navigation??[],o=k(a,`dashboard`,t,n);if(A(o,a))return;let s={...i,navigation:o};try{await l(e,s),u.success(r(`navigationSync.renamedDashboard`,{oldName:t,newName:n}),{action:{label:r(`navigationSync.undoLabel`),onClick:async()=>{try{await l(e,{...i,navigation:a}),u.info(r(`navigationSync.undone`))}catch{u.error(r(`navigationSync.undoFailed`))}}}})}catch{u.error(r(`navigationSync.updateFailed`))}},[d,l,r]),v=e=>e&&typeof e==`object`&&`name`in e?e.name:void 0;return{syncPageCreated:f,syncDashboardCreated:p,syncPageDeleted:m,syncDashboardDeleted:h,syncPageRenamed:g,syncDashboardRenamed:_,syncPageCreatedAllApps:(0,b.useCallback)(async(e,n)=>{for(let r of t){let t=v(r);!t||!M(r)||await f(t,e,n)}},[t,f]),syncDashboardCreatedAllApps:(0,b.useCallback)(async(e,n)=>{for(let r of t){let t=v(r);!t||!M(r)||await p(t,e,n)}},[t,p]),syncPageDeletedAllApps:(0,b.useCallback)(async e=>{for(let n of t){let t=v(n);!t||!M(n)||await m(t,e)}},[t,m]),syncDashboardDeletedAllApps:(0,b.useCallback)(async e=>{for(let n of t){let t=v(n);!t||!M(n)||await h(t,e)}},[t,h]),syncPageRenamedAllApps:(0,b.useCallback)(async(e,n)=>{for(let r of t){let t=v(r);!t||!M(r)||await g(t,e,n)}},[t,g]),syncDashboardRenamedAllApps:(0,b.useCallback)(async(e,n)=>{for(let r of t){let t=v(r);!t||!M(r)||await _(t,e,n)}},[t,_])}}function fe(){let{pages:e,dashboards:t,apps:n,getTypeStatus:r}=s(),i=o(),a=(0,b.useRef)(i);a.current=i;let c=d(),{syncPageCreated:l,syncDashboardCreated:u,syncPageDeleted:f,syncDashboardDeleted:p}=de(),m=(0,b.useRef)(null),h=(0,b.useRef)(null),g=(0,b.useRef)(0),_=(0,b.useRef)(!1),v=e=>e&&typeof e==`object`&&`name`in e?e.name:void 0;return(0,b.useEffect)(()=>{if(_.current)return;if(c){m.current=null,h.current=null;return}if(r&&(r(`page`)!==`ready`||r(`dashboard`)!==`ready`))return;let i=e=>new Set(e.filter(e=>!ue(e)).map(e=>e?.name).filter(e=>typeof e==`string`&&e.length>0)),a=i(e??[]),o=i(t??[]),s=m.current,d=h.current;if(s===null||d===null){m.current=a,h.current=o;return}let y=[...a].filter(e=>!s.has(e)),b=[...s].filter(e=>!a.has(e)),x=[...o].filter(e=>!d.has(e)),S=[...d].filter(e=>!o.has(e));if(y.length===0&&b.length===0&&x.length===0&&S.length===0){m.current=a,h.current=o;return}let C=++g.current;_.current=!0;let w=!1;return(async()=>{try{for(let e of n){if(w||g.current!==C)break;let t=v(e);if(!(!t||!M(e))){for(let e of y){if(w)break;await l(t,e)}for(let e of b){if(w)break;await f(t,e)}for(let e of x){if(w)break;await u(t,e)}for(let e of S){if(w)break;await p(t,e)}}}}finally{g.current===C&&(m.current=a,h.current=o,_.current=!1)}})(),()=>{w=!0}},[e,t,n,c,r,l,u,f,p]),null}var pe=new Set([`view`,`record`,`page`,`dashboard`,`design`,`report`]);function N(e){return e.replace(/[-_]/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function P(e){try{return decodeURIComponent(e)}catch{return e}}function me({pathname:e,appName:t,objects:n=[],basePathSegment:r=`apps`,disabled:i=!1}){let{addRecentItem:a}=f(),o=(0,b.useRef)(n);o.current=n,(0,b.useEffect)(()=>{if(i||!t)return;let n=e.split(`/`).filter(Boolean);if(n[0]!==r||n[1]!==t)return;let s=n[2],c=n[3],l=`/${r}/${t}`;if(s===`metadata`){let e=n[3],t=n[4];e&&t&&t!==`new`&&a({id:`metadata:${e}:${P(t)}`,label:P(t),href:`${l}/metadata/${e}/${t}`,type:`metadata`});return}if(s&&!pe.has(s)){let e=o.current.find(e=>e.name===s);e&&a({id:`object:${e.name}`,label:e.label||e.name,href:`${l}/${e.name}`,type:`object`});return}if(c)switch(s){case`dashboard`:a({id:`dashboard:${c}`,label:N(c),href:`${l}/dashboard/${c}`,type:`dashboard`});break;case`page`:a({id:`page:${c}`,label:N(c),href:`${l}/page/${c}`,type:`page`});break;case`report`:a({id:`report:${c}`,label:N(c),href:`${l}/report/${c}`,type:`report`});break;default:break}},[e,t,r,i])}function F(e){return{status:`drafted`,drafted:e.items,...e.summary?{summary:e.summary}:{},...e.packageId?{packageId:e.packageId}:{},...e.autoPublishable?{autoPublishable:!0}:{},...e.failedCount?{failed:Array.from({length:e.failedCount},()=>null)}:{},...e.materialized?{materialized:!0}:{},...e.verification?{verification:e.verification}:{},...e.issues&&e.issues.length?{issues:e.issues}:{},...e.nextSteps&&e.nextSteps.length?{nextSteps:e.nextSteps}:{}}}function I(e){return{status:`blueprint_proposed`,...e.summary?{summary:e.summary}:{},counts:e.counts,questions:e.questions,...e.targetApp?{targetApp:e.targetApp}:{},blueprint:{objects:e.objects.map(e=>({name:e.name,...e.label?{label:e.label}:{},fields:Array.from({length:e.fieldCount},()=>null)})),assumptions:e.assumptions}}}var L=`objectstack:ai-chat-conversation-id`,R=`objectstack:ai-chat-messages`;function z(e,t){return t?`${L}:${e}:${t}`:`${L}:${e}`}function he(e){try{return localStorage.getItem(e)??void 0}catch{return}}function B(e,t){try{t?localStorage.setItem(e,t):localStorage.removeItem(e)}catch{}}function V(e){return`${R}:${e}`}function H(e){try{let t=localStorage.getItem(V(e));if(!t)return[];let n=JSON.parse(t);return Array.isArray(n)?n.filter(e=>!!e&&typeof e==`object`&&typeof e.id==`string`&&(e.role===`user`||e.role===`assistant`||e.role===`system`)&&Array.isArray(e.parts)):[]}catch{return[]}}function U(e,t){if(e)try{if(t.length===0){localStorage.removeItem(V(e));return}localStorage.setItem(V(e),JSON.stringify(t))}catch{}}function ge(e){return e.map(e=>{let t=[];if(e.content&&t.push({type:`text`,text:e.content}),e.role===`assistant`)for(let n of e.toolInvocations??[]){let e=n.draftReview?F(n.draftReview):n.proposedPlan?I(n.proposedPlan):void 0;t.push({type:`tool-${n.toolName}`,toolCallId:n.toolCallId,toolName:n.toolName,state:n.state??(n.errorText?`output-error`:`output-available`),...n.errorText?{errorText:n.errorText}:{},...e===void 0?{}:{output:e}})}if(t.length!==0)return{id:e.id,role:e.role,parts:t}}).filter(e=>!!e)}function W(e){return typeof e==`string`?e?[{type:`text`,text:e}]:[]:Array.isArray(e)?e.map(e=>{if(typeof e==`string`)return e?{type:`text`,text:e}:void 0;if(e&&typeof e==`object`&&`type`in e&&typeof e.type==`string`)return e;if(e&&typeof e==`object`&&`text`in e&&typeof e.text==`string`)return{type:`text`,text:e.text}}).filter(e=>!!e):e&&typeof e==`object`&&`parts`in e&&Array.isArray(e.parts)?W(e.parts):[]}function _e(e,t){for(let n of W(e)){let e=typeof n.toolCallId==`string`?n.toolCallId:void 0;if(!e)continue;let r=t.get(e);if(!r)continue;let i=n.output??n.result;if(i===void 0)continue;r.output=i;let a=n.errorText;r.state=n.isError||typeof a==`string`?`output-error`:`output-available`,typeof a==`string`&&(r.errorText=a)}}function G(e){if(!e)return[];let t=[],n=new Map;return e.forEach((e,r)=>{let i=e.role;if(i===`tool`){_e(e.content,n);return}if(i!==`user`&&i!==`assistant`&&i!==`system`)return;let a=W(e.content);if(a.length!==0){if(i===`assistant`)for(let e of a){e.type===`tool-call`&&typeof e.toolName==`string`&&e.toolName&&(e.type=`tool-${e.toolName}`);let t=typeof e.toolCallId==`string`?e.toolCallId:void 0;t&&(e.type===`tool-call`||e.type.startsWith(`tool-`))&&n.set(t,e)}t.push({id:e.id??`msg-${r}`,role:i,parts:a})}}),t}function K(e){if(!(typeof e!=`string`||!e))try{let t=JSON.parse(e);return Array.isArray(t)?t:void 0}catch{return}}function ve(e){return e?e.map(e=>{let t=e.id,n=typeof e.content==`string`?e.content:``;if(e.role===`assistant`){let r=K(e.tool_calls);if(r&&r.length>0){let e=[];return n&&e.push({type:`text`,text:n}),e.push(...r),{id:t,role:`assistant`,content:e}}return{id:t,role:`assistant`,content:n}}if(e.role===`tool`){let r=K(e.content);return r&&r.length>0&&r[0]?.type===`tool-result`?{id:t,role:`tool`,content:r}:{id:t,role:`tool`,content:[{type:`tool-result`,toolCallId:e.tool_call_id??``,toolName:`unknown`,output:{type:`text`,value:n}}]}}return{id:t,role:e.role,content:n}}):[]}async function q(e,t){let n=await fetch(`${e}/conversations/${encodeURIComponent(t)}`,{credentials:`include`});if(n.status===404||n.status===403)return null;if(!n.ok)throw Error(`GET conversation failed: ${n.status}`);return await n.json()}async function J(e){let t=await fetch(`${e}/conversations`,{method:`POST`,credentials:`include`,headers:{"Content-Type":`application/json`},body:`{}`});if(!t.ok)throw Error(`POST conversation failed: ${t.status}`);return await t.json()}async function ye(e,t){await fetch(`${e}/conversations/${encodeURIComponent(t)}`,{method:`DELETE`,credentials:`include`}).catch(()=>{})}function be(e){let{userId:t,scope:n,apiBase:r,activeId:i,forceNew:a,resumeMode:o=`resume`}=e,[s,c]=(0,b.useState)(void 0),[l,u]=(0,b.useState)([]),[d,f]=(0,b.useState)(!!t),p=(0,b.useRef)(!0),m=(0,b.useRef)(void 0),h=(0,b.useRef)(void 0);(0,b.useEffect)(()=>(p.current=!0,()=>{p.current=!1}),[]),(0,b.useEffect)(()=>{if(!t){c(void 0),u([]),f(!1),m.current=void 0,h.current=void 0;return}let e=h.current!==n;if(!i&&!a&&!e&&m.current===t&&s)return;let l=!1,d=z(t,n);return!i&&(a||e&&m.current===t)&&(c(void 0),u([])),f(!0),(async()=>{try{if(i){let e=await q(r,i);if(l)return;if(e){B(d,e.id),c(e.id);let r=G(e.messages);u(r.length>0?r:H(e.id)),m.current=t,h.current=n;return}B(d,void 0),U(i,[])}else if(!a){let e=he(d);if(e){let i=await q(r,e);if(l)return;if(i){let e=G(i.messages);if(o!==`fresh`||e.length===0){c(i.id),u(o===`fresh`?[]:e.length>0?e:H(i.id)),m.current=t,h.current=n;return}}else B(d,void 0),U(e,[])}}let e=await J(r);if(l)return;B(d,e.id),c(e.id),u(G(e.messages)),m.current=t,h.current=n}catch{l||(c(void 0),u([]))}finally{l||f(!1)}})(),()=>{l=!0}},[t,n,r,i,a,o]);let g=(0,b.useCallback)(async()=>{if(!t)return;let e=z(t,n);f(!0);try{s&&await ye(r,s),U(s,[]),B(e,void 0);let t=await J(r);if(B(e,t.id),U(t.id,[]),!p.current)return;c(t.id),u([])}catch{p.current&&(c(void 0),u([]))}finally{p.current&&f(!1)}},[s,t,n,r]),_=(0,b.useCallback)(async()=>{if(!t)return;let e=z(t,n);f(!0);try{let i=await J(r);if(B(e,i.id),U(i.id,[]),!p.current)return;c(i.id),u([]),m.current=t,h.current=n}catch{}finally{p.current&&f(!1)}},[t,n,r]);return{conversationId:s,conversationScope:h.current,initialMessages:l,isLoading:d,reset:g,startNew:_}}var xe=new Set([`new chat`,`new conversation`,`untitled`,`新对话`]);function Se(e){let t=e?.trim().toLowerCase();return!t||xe.has(t)}function Y(e){let t=e.messages;if(!t||t.length===0)return;for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.role===`user`){let e=X(n.content);if(e)return e}}let n=t[t.length-1];return X(n?.content)}function X(e){if(typeof e==`string`)return e.slice(0,140);if(e&&typeof e==`object`&&`text`in e&&typeof e.text==`string`)return e.text.slice(0,140);if(e&&typeof e==`object`&&`parts`in e&&Array.isArray(e.parts))return X(e.parts);if(Array.isArray(e)){let t=e.map(e=>typeof e==`string`?e:e&&typeof e==`object`&&`text`in e&&typeof e.text==`string`?e.text:``).join(``);return t?t.slice(0,140):void 0}}function Z(e){let t=e.title?.trim(),n=Y(e)??X(e.preview);return{id:e.id,title:Se(t)?void 0:t,agentId:e.agentId,createdAt:e.createdAt,updatedAt:e.updatedAt,preview:n}}async function Ce(e,t){let n=await fetch(`${e}/conversations/${encodeURIComponent(t)}`,{credentials:`include`});if(!n.ok)return;let r=await n.json();return Z(`conversation`in r&&r.conversation?r.conversation:r)}function we(e){let{userId:t,apiBase:n,limit:r=50,refreshKey:i}=e,[a,o]=(0,b.useState)([]),[s,c]=(0,b.useState)(!!t),[l,u]=(0,b.useState)(void 0),[d,f]=(0,b.useState)(0),p=(0,b.useCallback)(async()=>{f(e=>e+1)},[]),m=(0,b.useCallback)(async e=>{try{await fetch(`${n}/conversations/${encodeURIComponent(e)}`,{method:`DELETE`,credentials:`include`})}finally{o(t=>t.filter(t=>t.id!==e))}},[n]),h=(0,b.useCallback)(async(e,t)=>{let r=t.trim();o(t=>t.map(t=>t.id===e?{...t,title:r||void 0}:t));let i=await fetch(`${n}/conversations/${encodeURIComponent(e)}`,{method:`PATCH`,credentials:`include`,headers:{"Content-Type":`application/json`},body:JSON.stringify({title:r})});if(!i.ok)throw f(e=>e+1),Error(`PATCH conversation failed: ${i.status}`)},[n]);return(0,b.useEffect)(()=>{if(!t){o([]),c(!1),u(void 0);return}let e=!1;return c(!0),u(void 0),(async()=>{try{let t=await fetch(`${n}/conversations?limit=${encodeURIComponent(String(r))}`,{credentials:`include`});if(!t.ok)throw Error(`GET conversations failed: ${t.status}`);let i=await t.json(),a=Array.isArray(i)?i:i.conversations??i.items??[];if(e)return;let s=a.map(Z).sort((e,t)=>(t.updatedAt??``).localeCompare(e.updatedAt??``));o(s);let c=s.filter(e=>!e.title&&!e.preview).slice(0,20);if(c.length>0){let t=await Promise.all(c.map(e=>Ce(n,e.id).catch(()=>void 0)));if(e)return;let r=new Map(t.filter(e=>!!(e?.preview||e?.title)).map(e=>[e.id,e]));r.size>0&&o(e=>e.map(e=>{let t=r.get(e.id);return t?{...e,title:e.title??t.title,preview:e.preview??t.preview}:e}))}}catch(t){if(e)return;u(t instanceof Error?t:Error(String(t))),o([])}finally{e||c(!1)}})(),()=>{e=!0}},[t,n,r,d,i]),{conversations:a,isLoading:s,error:l,refetch:p,remove:m,rename:h}}async function Te(e){let t=await fetch(`/api/v1/meta/_drafts?packageId=${encodeURIComponent(e)}`,{credentials:`include`,headers:{Accept:`application/json`},cache:`no-store`});if(!t.ok)throw Error(`_drafts HTTP ${t.status}`);let n=await t.json(),r=Array.isArray(n)?n:n?.drafts??n?.data?.drafts??[];return Array.isArray(r)?r.length:0}function Ee(e){if(!e||e.length===0)return!1;let t=e[e.length-1];return!t||t.role!==`assistant`?!1:t.parts.some(e=>e.type===`text`&&String(e.text??``).trim().length>0)}function De(e){let{chatApi:t,conversationId:n}=e,[r,i]=(0,b.useState)(!1),a=(0,b.useRef)(void 0);return{errorSuppressed:r,handleChatError:(0,b.useCallback)(async e=>{if(e?.notSent){i(!1);return}let r=t?.replace(/\/agents\/[^/]+\/chat$/,``);if(!n||!r){i(!1);return}try{let e=G((await q(r,n))?.messages);if(Ee(e)&&a.current){a.current(e),i(!0);return}}catch{}i(!1)},[n,t]),setMessagesRef:a,resetSuppression:(0,b.useCallback)(()=>i(!1),[])}}function Oe(e){if(typeof e.content==`string`)return e.content;let t=e.parts;return Array.isArray(t)?t.map(e=>e&&typeof e==`object`&&e.type===`text`?String(e.text??``):``).join(` `):``}function Q(e){if(Array.isArray(e))for(let t=e.length-1;t>=0;t--){let n=e[t];if(!n||n.role!==`user`)continue;let r=Oe(n);if(r.trim())return/[一-鿿]/.test(r)?`zh-CN`:void 0}}function ke(e){return(Q(e)??``).toLowerCase().startsWith(`zh`)}var $={"studio-build":`build`,default:`ask`};function Ae(e,{agents:t,appDefaultAgent:n,aiStudioEnabled:r=!0}){let i=t.map(e=>e.name),a=(m(n)?n:void 0)??$[e]??$.default;return _(!r&&g(a)?`ask`:a,i)??h(t)}export{ne as _,Te as a,q as c,be as d,U as f,ae as g,ce as h,De as i,ge as l,fe as m,Q as n,we as o,me as p,ke as r,ve as s,Ae as t,G as u,C as v,x as y};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{y as t}from"./vendor-react-BGDDiZfJ.js";import{at as n,ns as r}from"./ui-components-DTwfkSDm.js";var i=e(t(),1);function a(e){return e.includes(`-`)?e.toLowerCase():e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).replace(/([A-Z]+)([A-Z][a-z])/g,`$1-$2`).toLowerCase()}var o=new Map;function s(e){if(!e)return r;let t=o.get(e);if(t)return t;let s=a(e),c=e=>i.createElement(n,{name:s,fallback:r,...e});return c.displayName=`LucideIcon(${e})`,o.set(e,c),c}var c=`${``.replace(/\/$/,``)}/api/settings`;async function l(e){if(!e.ok){let t=await e.json().catch(()=>({error:{message:e.statusText}})),n=Error(t?.error?.message??e.statusText);throw n.status=e.status,n.payload=t,n}return e.json()}var u=()=>({"Content-Type":`application/json`,Accept:`application/json`});async function d(){return l(await fetch(c,{credentials:`include`,headers:u()}))}async function f(e){return l(await fetch(`${c}/${encodeURIComponent(e)}`,{credentials:`include`,headers:u()}))}async function p(e,t){return l(await fetch(`${c}/${encodeURIComponent(e)}`,{method:`PUT`,credentials:`include`,headers:u(),body:JSON.stringify(t)}))}async function m(e,t,n){let r=await fetch(`${c}/${encodeURIComponent(e)}/${encodeURIComponent(t)}`,{method:`POST`,credentials:`include`,headers:u(),body:JSON.stringify(n??{})}),i=await r.json().catch(()=>({ok:!1,message:r.statusText}));return typeof i?.ok==`boolean`?i:{ok:r.ok,message:i?.error?.message??r.statusText}}function h(e){return typeof e==`string`?e:e?.defaultValue||e?.key||``}export{p as a,m as i,f as n,s as o,d as r,h as t};
1
+ import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{y as t}from"./vendor-react-BGDDiZfJ.js";import{rs as n,st as r}from"./ui-components-DHIW7RSX.js";var i=e(t(),1);function a(e){return e.includes(`-`)?e.toLowerCase():e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).replace(/([A-Z]+)([A-Z][a-z])/g,`$1-$2`).toLowerCase()}var o=new Map;function s(e){if(!e)return n;let t=o.get(e);if(t)return t;let s=a(e),c=e=>i.createElement(r,{name:s,fallback:n,...e});return c.displayName=`LucideIcon(${e})`,o.set(e,c),c}var c=`${``.replace(/\/$/,``)}/api/settings`;async function l(e){if(!e.ok){let t=await e.json().catch(()=>({error:{message:e.statusText}})),n=Error(t?.error?.message??e.statusText);throw n.status=e.status,n.payload=t,n}return e.json()}var u=()=>({"Content-Type":`application/json`,Accept:`application/json`});async function d(){return l(await fetch(c,{credentials:`include`,headers:u()}))}async function f(e){return l(await fetch(`${c}/${encodeURIComponent(e)}`,{credentials:`include`,headers:u()}))}async function p(e,t){return l(await fetch(`${c}/${encodeURIComponent(e)}`,{method:`PUT`,credentials:`include`,headers:u(),body:JSON.stringify(t)}))}async function m(e,t,n){let r=await fetch(`${c}/${encodeURIComponent(e)}/${encodeURIComponent(t)}`,{method:`POST`,credentials:`include`,headers:u(),body:JSON.stringify(n??{})}),i=await r.json().catch(()=>({ok:!1,message:r.statusText}));return typeof i?.ok==`boolean`?i:{ok:r.ok,message:i?.error?.message??r.statusText}}function h(e){return typeof e==`string`?e:e?.defaultValue||e?.key||``}export{p as a,m as i,f as n,s as o,d as r,h as t};