@framework-m/desk 0.4.6 → 0.5.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.
@@ -1 +1 @@
1
- {"version":3,"file":"ListView.d.ts","sourceRoot":"","sources":["../../src/pages/ListView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAWH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;CACnC;AAoDD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,EACvB,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,QAAQ,GACf,EAAE,QAAQ,CAAC,aAAa,CAAC,2CAsdzB;AAED,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"ListView.d.ts","sourceRoot":"","sources":["../../src/pages/ListView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAWH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;CACnC;AAoDD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,EACvB,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,QAAQ,GACf,EAAE,QAAQ,CAAC,aAAa,CAAC,2CAuezB;AAED,eAAe,QAAQ,CAAC"}
@@ -1,13 +1,3 @@
1
- /**
2
- * Login Page Component
3
- *
4
- * Login page for Indie/BFF mode (cookie auth).
5
- * Per checklist 4.4: Route /login with useLogin hook.
6
- * Supports OAuth social login when providers are configured.
7
- */
8
- /**
9
- * LoginPage props
10
- */
11
1
  export interface LoginPageProps {
12
2
  /** Title to display */
13
3
  title?: string;
@@ -19,13 +9,7 @@ export interface LoginPageProps {
19
9
  /**
20
10
  * LoginPage Component
21
11
  *
22
- * Simple login form using Refine's useLogin hook.
23
- * For Indie/BFF cookie-based authentication.
24
- *
25
- * @example
26
- * ```tsx
27
- * <Route path="/login" element={<LoginPage />} />
28
- * ```
12
+ * Refactored using Tamagui for premium aesthetics and cross-platform readiness.
29
13
  */
30
14
  export declare function LoginPage({ title, logo, redirectTo, }: Readonly<LoginPageProps>): import("react/jsx-runtime").JSX.Element;
31
15
  export default LoginPage;
@@ -1 +1 @@
1
- {"version":3,"file":"LoginPage.d.ts","sourceRoot":"","sources":["../../src/pages/LoginPage.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAiFH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IAChC,+BAA+B;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAiB,EACjB,IAAI,EACJ,UAAU,GACX,EAAE,QAAQ,CAAC,cAAc,CAAC,2CAiQ1B;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"LoginPage.d.ts","sourceRoot":"","sources":["../../src/pages/LoginPage.tsx"],"names":[],"mappings":"AAuDA,MAAM,WAAW,cAAc;IAC7B,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IAChC,+BAA+B;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAsB,EACtB,IAAI,EACJ,UAAU,GACX,EAAE,QAAQ,CAAC,cAAc,CAAC,2CAyK1B;AAED,eAAe,SAAS,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { ReactNode } from 'react';
2
+ import { RealtimeAdapter } from './types';
3
+ import { FrameworkMPlugin } from '@framework-m/plugin-sdk';
4
+ export declare function ShellProvider({ children, focusMode, setFocusMode, realtimeAdapter, initialPlugins, }: Readonly<{
5
+ children: ReactNode;
6
+ focusMode: boolean;
7
+ setFocusMode: (value: boolean) => void;
8
+ realtimeAdapter?: RealtimeAdapter;
9
+ initialPlugins?: FrameworkMPlugin[];
10
+ }>): import("react/jsx-runtime").JSX.Element;
11
+ //# sourceMappingURL=ShellProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShellProvider.d.ts","sourceRoot":"","sources":["../../src/shell/ShellProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAMV,eAAe,EAEhB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAyFhE,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,eAAe,EACf,cAAmB,GACpB,EAAE,QAAQ,CAAC;IACV,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,cAAc,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACrC,CAAC,2CA+ND"}
@@ -0,0 +1,3 @@
1
+ import { ShellContextValue } from './types';
2
+ export declare const ShellContext: import('react').Context<ShellContextValue | null>;
3
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/shell/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,eAAO,MAAM,YAAY,mDAAgD,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { RealtimeAdapter } from './types';
2
+ /**
3
+ * Creates a WebSocket-based realtime adapter for the Shell.
4
+ *
5
+ * @param url The WebSocket server URL
6
+ * @returns A RealtimeAdapter instance
7
+ */
8
+ export declare function createWebSocketRealtimeAdapter(url: string): RealtimeAdapter;
9
+ //# sourceMappingURL=realtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime.d.ts","sourceRoot":"","sources":["../../src/shell/realtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,SAAS,CAAC;AAEhE;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAiC3E"}
@@ -0,0 +1,40 @@
1
+ import { ReactNode } from 'react';
2
+ export interface ShellSection {
3
+ id: string;
4
+ slot: "navbar-left" | "navbar-right" | "sidebar";
5
+ order?: number;
6
+ label?: string;
7
+ route?: string;
8
+ module?: string;
9
+ render?: () => ReactNode;
10
+ }
11
+ export interface OmniSearchResult {
12
+ id: string;
13
+ label: string;
14
+ route: string;
15
+ }
16
+ export interface RealtimeMessage {
17
+ room: string;
18
+ type: string;
19
+ payload: Record<string, unknown>;
20
+ timestamp: number;
21
+ }
22
+ export type RealtimeSubscriber = (message: RealtimeMessage) => void;
23
+ export interface RealtimeAdapter {
24
+ connect: (onMessage: (message: RealtimeMessage) => void) => void | (() => void) | Promise<void | (() => void)>;
25
+ publish: (message: RealtimeMessage) => void | Promise<void>;
26
+ }
27
+ export type OmniSearchProvider = (query: string) => OmniSearchResult[] | Promise<OmniSearchResult[]>;
28
+ export interface ShellContextValue {
29
+ focusMode: boolean;
30
+ setFocusMode: (value: boolean) => void;
31
+ toggleFocusMode: () => void;
32
+ registerSection: (section: ShellSection) => () => void;
33
+ getSections: (slot: ShellSection["slot"]) => ShellSection[];
34
+ registerOmniSearchProvider: (provider: OmniSearchProvider) => () => void;
35
+ searchOmni: (query: string) => Promise<OmniSearchResult[]>;
36
+ setRealtimeAdapter: (adapter: RealtimeAdapter | null) => Promise<void>;
37
+ subscribeRealtime: (room: string, listener: RealtimeSubscriber) => () => void;
38
+ publishRealtime: (room: string, type: string, payload: Record<string, unknown>) => Promise<void>;
39
+ }
40
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shell/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,aAAa,GAAG,cAAc,GAAG,SAAS,CAAC;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,CACP,SAAS,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,KAC1C,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IACxD,OAAO,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED,MAAM,MAAM,kBAAkB,GAAG,CAC/B,KAAK,EAAE,MAAM,KACV,gBAAgB,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAEtD,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,eAAe,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,MAAM,IAAI,CAAC;IACvD,WAAW,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,YAAY,EAAE,CAAC;IAC5D,0BAA0B,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,MAAM,IAAI,CAAC;IACzE,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC3D,kBAAkB,EAAE,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,KAAK,MAAM,IAAI,CAAC;IAC9E,eAAe,EAAE,CACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@framework-m/desk",
3
- "version": "0.4.6",
3
+ "version": "0.5.0",
4
4
  "description": "Business components, hooks, views, and providers for Framework M applications",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -33,10 +33,12 @@
33
33
  "directory": "libs/framework-m-desk"
34
34
  },
35
35
  "dependencies": {
36
- "@framework-m/ui": "^0.2.4"
36
+ "@framework-m/plugin-sdk": "^0.2.6",
37
+ "@framework-m/ui": "^0.2.5"
37
38
  },
38
39
  "peerDependencies": {
39
40
  "@refinedev/core": "^5.0.0",
41
+ "@refinedev/react-router": "^2.0.4",
40
42
  "@refinedev/react-table": "^6.0.0",
41
43
  "@rjsf/core": "^6.0.0",
42
44
  "@rjsf/utils": "^6.0.0",
@@ -50,19 +52,22 @@
50
52
  },
51
53
  "devDependencies": {
52
54
  "@refinedev/core": "^5.0.11",
55
+ "@refinedev/react-router": "^2.0.0",
53
56
  "@refinedev/react-table": "^6.0.1",
54
- "@rjsf/core": "^6.4.1",
55
- "@rjsf/utils": "^6.4.1",
56
- "@rjsf/validator-ajv8": "^6.4.1",
57
+ "@rjsf/core": "^6.4.2",
58
+ "@rjsf/utils": "^6.4.2",
59
+ "@rjsf/validator-ajv8": "^6.4.2",
57
60
  "@tanstack/react-query": "^5.95.2",
58
61
  "@tanstack/react-table": "^8.21.3",
62
+ "@testing-library/jest-dom": "^6.9.1",
59
63
  "@testing-library/react": "^16.3.2",
60
64
  "@types/node": "^20.19.37",
61
65
  "@types/react": "^19.2.14",
62
66
  "@types/react-dom": "^19.2.3",
63
67
  "@vitejs/plugin-react": "^4.7.0",
64
- "happy-dom": "^20.8.8",
65
- "i18next": "^25.10.9",
68
+ "@vitest/coverage-v8": "4.1.2",
69
+ "happy-dom": "^20.8.9",
70
+ "i18next": "^25.10.10",
66
71
  "i18next-browser-languagedetector": "^8.2.1",
67
72
  "i18next-http-backend": "^3.0.2",
68
73
  "react": "^19.2.4",
@@ -72,8 +77,9 @@
72
77
  "typescript": "^5.9.3",
73
78
  "vite": "^6.4.1",
74
79
  "vite-plugin-dts": "^4.5.4",
75
- "vitest": "^4.1.1",
76
- "@framework-m/ui": "0.2.5"
80
+ "vitest": "^4.1.2",
81
+ "@framework-m/plugin-sdk": "0.2.7",
82
+ "@framework-m/ui": "0.3.0"
77
83
  },
78
84
  "publishConfig": {
79
85
  "access": "public"