@ai4b-team/fsaos-gateway-sdk 3.3.0 → 3.4.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.
package/dist/iife/ui.js CHANGED
@@ -1,3 +1,3 @@
1
- /* @fsaos/ui v2.0.0 — FSAOS UI Primitives — 2026-05-27T19:47:41.917Z */
1
+ /* @fsaos/ui v2.0.0 — FSAOS UI Primitives — 2026-05-28T15:49:04.318Z */
2
2
  "use strict";var __FSAOS_UI__=(()=>{var m=Object.create;var r=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var f=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var y=(e,i)=>()=>(i||e((i={exports:{}}).exports,i),i.exports),N=(e,i)=>{for(var a in i)r(e,a,{get:i[a],enumerable:!0})},s=(e,i,a,l)=>{if(i&&typeof i=="object"||typeof i=="function")for(let t of u(i))!h.call(e,t)&&t!==a&&r(e,t,{get:()=>i[t],enumerable:!(l=g(i,t))||l.enumerable});return e};var x=(e,i,a)=>(a=e!=null?m(f(e)):{},s(i||!e||!e.__esModule?r(a,"default",{value:e,enumerable:!0}):a,e)),b=e=>s(r({},"__esModule",{value:!0}),e);var d=y((V,c)=>{c.exports=React});var P={};N(P,{Badge:()=>z,Breadcrumbs:()=>A,Button:()=>D,Card:()=>w,DataView:()=>R,Detail:()=>_,Empty:()=>I,FilePreview:()=>O,Form:()=>F,Grid:()=>k,Image:()=>G,Link:()=>E,Page:()=>v,Router:()=>T,Sidebar:()=>S,Spinner:()=>B,Stack:()=>C,Table:()=>j,Tabs:()=>W,Video:()=>H});var n=x(d(),1);function o(){return(typeof window<"u"&&window.__FSAOS_CONFIG__||{}).edgeBaseUrl||""}function v(e){return(0,n.createElement)("div",{style:{minHeight:"100vh",display:"flex",flexDirection:"column"},className:e.className||""},e.children)}function C(e){let i=e.direction||"vertical";return(0,n.createElement)("div",{style:{display:"flex",flexDirection:i==="horizontal"?"row":"column",gap:e.gap||"0.5rem",padding:e.padding||"0",alignItems:e.align||"stretch",justifyContent:e.justify||"flex-start",flex:e.flex||"initial"},className:e.className||""},e.children)}function k(e){return(0,n.createElement)("div",{style:{display:"grid",gridTemplateColumns:"repeat("+(e.columns||3)+", 1fr)",gap:e.gap||"1rem",padding:e.padding||"0"},className:e.className||""},e.children)}function S(e){return(0,n.createElement)("div",{style:{display:"flex",flexDirection:"row",minHeight:"100vh"},className:e.className||""},e.children)}function w(e){return(0,n.createElement)("div",{style:{border:"1px solid var(--color-border, #e5e7eb)",borderRadius:"var(--border-radius, 0.5rem)",padding:e.padding||"1rem",background:"var(--color-surface, #fff)"},className:e.className||"",onClick:e.onClick},e.children)}function z(e){return(0,n.createElement)("span",{style:{display:"inline-flex",alignItems:"center",padding:"0.125rem 0.5rem",fontSize:"0.75rem",fontWeight:"500",borderRadius:"9999px",background:e.color||"#e5e7eb",color:e.textColor||"#374151"},className:e.className||""},e.children||e.label)}function B(e){let i=e.size||"1.5rem";return(0,n.createElement)("div",{style:{width:i,height:i,border:"2px solid #e5e7eb",borderTopColor:"var(--color-primary, #3b82f6)",borderRadius:"50%",animation:"fsaos-spin 0.6s linear infinite"}})}function D(e){return(0,n.createElement)("button",{style:{display:"inline-flex",alignItems:"center",justifyContent:"center",padding:"0.5rem 1rem",fontSize:"0.875rem",fontWeight:"500",borderRadius:"var(--border-radius, 0.375rem)",border:e.variant==="outline"?"1px solid var(--color-border, #d1d5db)":"none",background:e.variant==="outline"||e.variant==="ghost"?"transparent":"var(--color-primary, #3b82f6)",color:e.variant==="outline"||e.variant==="ghost"?"var(--color-text, #1a1a1a)":"#fff",cursor:e.disabled?"not-allowed":"pointer",opacity:e.disabled?"0.5":"1",gap:"0.5rem"},className:e.className||"",onClick:e.onClick,disabled:e.disabled},e.children||e.label)}function I(e){return(0,n.createElement)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",padding:"3rem",color:"var(--color-text-secondary, #6b7280)",textAlign:"center"}},e.icon?(0,n.createElement)("div",{style:{fontSize:"2rem",marginBottom:"0.5rem"}},e.icon):null,(0,n.createElement)("div",{style:{fontWeight:500,marginBottom:"0.25rem"}},e.title||e.message||e.children||"No items"),e.description?(0,n.createElement)("div",{style:{fontSize:"0.875rem",opacity:.7}},e.description):null)}function R(e){return(0,n.createElement)("div",{className:e.className||""},e.children)}function j(e){return(0,n.createElement)("table",{className:e.className||""},e.children)}function F(e){return(0,n.createElement)("form",{className:e.className||"",onSubmit:e.onSubmit},e.children)}function _(e){return(0,n.createElement)("div",{className:e.className||""},e.children)}function T(e){return(0,n.createElement)("div",null,e.children)}function E(e){return(0,n.createElement)("a",{href:e.href||e.to,className:e.className||"",onClick:e.onClick},e.children)}function W(e){return(0,n.createElement)("div",{className:e.className||""},e.children)}function A(e){return(0,n.createElement)("nav",{className:e.className||""},e.children)}function G(e){return(0,n.createElement)("img",{src:e.src||(e.path?o()+e.path:""),alt:e.alt||"",className:e.className||"",style:e.style})}function H(e){return(0,n.createElement)("video",{src:e.src||(e.path?o()+e.path:""),controls:!0,className:e.className||""})}function O(e){return(0,n.createElement)("div",{className:e.className||""},e.children||"File preview")}return b(P);})();
3
3
  //# sourceMappingURL=ui.js.map
package/dist/index.cjs CHANGED
@@ -113,6 +113,7 @@ __export(src_exports, {
113
113
  uploadFile: () => uploadFile,
114
114
  useAccounts: () => useAccounts,
115
115
  useAllChannels: () => useAllChannels,
116
+ useArrangement: () => useArrangement,
116
117
  useAsset: () => useAsset,
117
118
  useAuth: () => useAuth,
118
119
  useChannelMessages: () => useChannelMessages,
@@ -2936,6 +2937,53 @@ function useRealtimeQuery(options) {
2936
2937
  }, [eventType, enabled, debounceMs, qc, JSON.stringify(queryKey)]);
2937
2938
  return query;
2938
2939
  }
2940
+ function useArrangement(parentPath) {
2941
+ useScopeKey();
2942
+ const enabled = !!parentPath;
2943
+ const query = reactQuery.useQuery({
2944
+ queryKey: ["vfs", getScope() ?? "__unscoped__", "arrangement", parentPath ?? ""],
2945
+ queryFn: async () => {
2946
+ const response = await gatewayCall("get-effective-items", {
2947
+ item_type: "item_arrangement"
2948
+ });
2949
+ const rows = response?.content?.items ?? response?.items ?? response?.rows ?? [];
2950
+ const matches = rows.filter(
2951
+ (r) => (r?.item_type_data?.parent_path ?? r?.type_data?.parent_path) === parentPath
2952
+ );
2953
+ return matches[0] ?? null;
2954
+ },
2955
+ enabled
2956
+ });
2957
+ const arrangement = query.data ?? null;
2958
+ const order = React.useMemo(() => {
2959
+ const td = arrangement?.item_type_data ?? arrangement?.type_data ?? null;
2960
+ const o = td?.order;
2961
+ return Array.isArray(o) ? o : null;
2962
+ }, [arrangement]);
2963
+ const applyTo = React.useCallback(
2964
+ (children) => {
2965
+ if (!order || !children?.length) return children ?? [];
2966
+ const key = (c) => c.id ?? c.name ?? "";
2967
+ const rank = new Map(order.map((k, i) => [k, i]));
2968
+ const listed = [];
2969
+ const rest = [];
2970
+ for (const c of children) {
2971
+ (rank.has(key(c)) ? listed : rest).push(c);
2972
+ }
2973
+ listed.sort((a, b) => rank.get(key(a)) - rank.get(key(b)));
2974
+ return [...listed, ...rest];
2975
+ },
2976
+ [order]
2977
+ );
2978
+ return {
2979
+ ...query,
2980
+ arrangement,
2981
+ order,
2982
+ sourceScopeId: arrangement?.source_scope_id ?? null,
2983
+ sourceScopeName: arrangement?.source_scope_name ?? null,
2984
+ applyTo
2985
+ };
2986
+ }
2939
2987
 
2940
2988
  // src/schema-utils.ts
2941
2989
  function keyToLabel(key) {
@@ -3399,6 +3447,7 @@ exports.updateItem = updateItem;
3399
3447
  exports.uploadFile = uploadFile;
3400
3448
  exports.useAccounts = useAccounts;
3401
3449
  exports.useAllChannels = useAllChannels;
3450
+ exports.useArrangement = useArrangement;
3402
3451
  exports.useAsset = useAsset;
3403
3452
  exports.useAuth = useAuth;
3404
3453
  exports.useChannelMessages = useChannelMessages;