@burdenoff/microfe-eventfullymanaged 2026.710.1 → 2026.716.1

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,15 +1,11 @@
1
1
  /**
2
- * EventfullyManaged adapter for the shared fe-libs AssistantWidget.
2
+ * eventfullymanaged adapter for the shared fe-libs AssistantWidget transport.
3
3
  *
4
- * The floating widget (fe-libs, Layer 1) is backend-agnostic — it calls an
5
- * injected `AssistantTransport`. This hook builds a transport for
6
- * EventfullyManaged. It currently runs in preview mode: it echoes back a
7
- * helpful response explaining that the AI backend integration is pending,
8
- * while keeping the widget wired and rendering correctly.
9
- *
10
- * When the sandbox `api-calls` agent is ported to EventfullyManaged, replace
11
- * the `sendPrompt` body with the same orchestration used by
12
- * `@burdenoff/microfe-vibecontrols/services/createSandboxAssistantTransport`.
4
+ * The sandbox lifecycle + poll/stream loop now lives in
5
+ * `@burdenoff/fe-libs/shared/assistant` (one implementation for all products);
6
+ * this is a thin wrapper. The exported name/shape are unchanged so app-shell
7
+ * imports don't move. The public return type is a LOCALLY-declared structural
8
+ * mirror — never re-export fe-libs types (vite-plugin-dts path rewriting).
13
9
  */
14
10
  interface AssistantSendArgs {
15
11
  prompt: string;
@@ -20,14 +16,9 @@ export interface AssistantTransport {
20
16
  sendPrompt: (args: AssistantSendArgs) => Promise<{
21
17
  text: string;
22
18
  }>;
19
+ prewarm?: (level?: 'probe' | 'full') => void;
20
+ suspend?: () => void;
23
21
  }
24
- /**
25
- * Returns a memoized `AssistantTransport` for the EventfullyManaged assistant.
26
- *
27
- * In preview mode the transport returns a static, safe response and never
28
- * calls the network. This keeps the widget functional and production-safe
29
- * while the backend agent integration is completed.
30
- */
31
22
  export declare function useSandboxAssistantTransport(): AssistantTransport;
32
23
  export {};
33
24
  //# sourceMappingURL=createSandboxAssistantTransport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createSandboxAssistantTransport.d.ts","sourceRoot":"","sources":["../../src/services/createSandboxAssistantTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,UAAU,iBAAiB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpE;AAMD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,IAAI,kBAAkB,CAsBjE"}
1
+ {"version":3,"file":"createSandboxAssistantTransport.d.ts","sourceRoot":"","sources":["../../src/services/createSandboxAssistantTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,UAAU,iBAAiB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnE,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;IAC7C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,wBAAgB,4BAA4B,IAAI,kBAAkB,CAMjE"}
@@ -1,19 +1,12 @@
1
- import { useCallback as e, useMemo as t } from "react";
1
+ import { useSandboxAssistantTransport as e } from "@burdenoff/fe-libs/shared/assistant";
2
2
  //#region src/services/createSandboxAssistantTransport.ts
3
- var n = "Hello — EventfullyManaged's AI assistant is currently in preview mode.\n\nI can see the page you're on, but I'm not yet connected to a live backend agent. Full integration with the sandbox `api-calls` agent is planned; once enabled I'll be able to answer questions about events, attendees, sessions, and sponsors and perform actions on your behalf.";
4
- function r() {
5
- let r = e(async ({ onProgress: e, signal: t }) => {
6
- if (t.aborted) throw Error("Cancelled");
7
- return e("Thinking…"), await new Promise((e, n) => {
8
- let r = setTimeout(e, 400);
9
- t.addEventListener("abort", () => {
10
- clearTimeout(r), n(/* @__PURE__ */ Error("Cancelled"));
11
- });
12
- }), e(n), { text: n };
13
- }, []);
14
- return t(() => ({ sendPrompt: r }), [r]);
3
+ function t() {
4
+ return e({
5
+ product: "eventfullymanaged",
6
+ enableCredits: !0
7
+ });
15
8
  }
16
9
  //#endregion
17
- export { r as useSandboxAssistantTransport };
10
+ export { t as useSandboxAssistantTransport };
18
11
 
19
12
  //# sourceMappingURL=createSandboxAssistantTransport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createSandboxAssistantTransport.js","names":[],"sources":["../../src/services/createSandboxAssistantTransport.ts"],"sourcesContent":["/**\n * EventfullyManaged adapter for the shared fe-libs AssistantWidget.\n *\n * The floating widget (fe-libs, Layer 1) is backend-agnostic — it calls an\n * injected `AssistantTransport`. This hook builds a transport for\n * EventfullyManaged. It currently runs in preview mode: it echoes back a\n * helpful response explaining that the AI backend integration is pending,\n * while keeping the widget wired and rendering correctly.\n *\n * When the sandbox `api-calls` agent is ported to EventfullyManaged, replace\n * the `sendPrompt` body with the same orchestration used by\n * `@burdenoff/microfe-vibecontrols/services/createSandboxAssistantTransport`.\n */\n\nimport { useCallback, useMemo } from 'react';\n\ninterface AssistantSendArgs {\n prompt: string;\n onProgress: (partialText: string) => void;\n signal: AbortSignal;\n}\n\nexport interface AssistantTransport {\n sendPrompt: (args: AssistantSendArgs) => Promise<{ text: string }>;\n}\n\nconst PREVIEW_RESPONSE = `Hello — EventfullyManaged's AI assistant is currently in preview mode.\n\nI can see the page you're on, but I'm not yet connected to a live backend agent. Full integration with the sandbox \\`api-calls\\` agent is planned; once enabled I'll be able to answer questions about events, attendees, sessions, and sponsors and perform actions on your behalf.`;\n\n/**\n * Returns a memoized `AssistantTransport` for the EventfullyManaged assistant.\n *\n * In preview mode the transport returns a static, safe response and never\n * calls the network. This keeps the widget functional and production-safe\n * while the backend agent integration is completed.\n */\nexport function useSandboxAssistantTransport(): AssistantTransport {\n const sendPrompt = useCallback(async ({ onProgress, signal }: AssistantSendArgs): Promise<{ text: string }> => {\n if (signal.aborted) {\n throw new Error('Cancelled');\n }\n\n onProgress('Thinking…');\n\n // Simulate a brief async step so progress callbacks fire naturally.\n await new Promise<void>((resolve, reject) => {\n const timer = setTimeout(resolve, 400);\n signal.addEventListener('abort', () => {\n clearTimeout(timer);\n reject(new Error('Cancelled'));\n });\n });\n\n onProgress(PREVIEW_RESPONSE);\n return { text: PREVIEW_RESPONSE };\n }, []);\n\n return useMemo<AssistantTransport>(() => ({ sendPrompt }), [sendPrompt]);\n}\n"],"mappings":";;AA0BA,IAAM,IAAmB;AAWzB,SAAgB,IAAmD;CACjE,IAAM,IAAa,EAAY,OAAO,EAAE,eAAY,gBAA2D;AAC7G,MAAI,EAAO,QACT,OAAU,MAAM,YAAY;AAe9B,SAZA,EAAW,YAAY,EAGvB,MAAM,IAAI,SAAe,GAAS,MAAW;GAC3C,IAAM,IAAQ,WAAW,GAAS,IAAI;AACtC,KAAO,iBAAiB,eAAe;AAErC,IADA,aAAa,EAAM,EACnB,EAAO,gBAAI,MAAM,YAAY,CAAC;KAC9B;IACF,EAEF,EAAW,EAAiB,EACrB,EAAE,MAAM,GAAkB;IAChC,EAAE,CAAC;AAEN,QAAO,SAAmC,EAAE,eAAY,GAAG,CAAC,EAAW,CAAC"}
1
+ {"version":3,"file":"createSandboxAssistantTransport.js","names":[],"sources":["../../src/services/createSandboxAssistantTransport.ts"],"sourcesContent":["/**\n * eventfullymanaged adapter for the shared fe-libs AssistantWidget transport.\n *\n * The sandbox lifecycle + poll/stream loop now lives in\n * `@burdenoff/fe-libs/shared/assistant` (one implementation for all products);\n * this is a thin wrapper. The exported name/shape are unchanged so app-shell\n * imports don't move. The public return type is a LOCALLY-declared structural\n * mirror — never re-export fe-libs types (vite-plugin-dts path rewriting).\n */\n\nimport { useSandboxAssistantTransport as useSharedTransport } from '@burdenoff/fe-libs/shared/assistant';\n\n\ninterface AssistantSendArgs {\n prompt: string;\n onProgress: (partialText: string) => void;\n signal: AbortSignal;\n}\n\nexport interface AssistantTransport {\n sendPrompt: (args: AssistantSendArgs) => Promise<{ text: string }>;\n prewarm?: (level?: 'probe' | 'full') => void;\n suspend?: () => void;\n}\n\nexport function useSandboxAssistantTransport(): AssistantTransport {\n return useSharedTransport({\n product: 'eventfullymanaged',\n \n enableCredits: true,\n });\n}\n"],"mappings":";;AAyBA,SAAgB,IAAmD;AACjE,QAAO,EAAmB;EACxB,SAAS;EAET,eAAe;EAChB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { ActionMenu } from '../eventfullymanaged/components/ActionMenu';
3
+
4
+ declare const meta: Meta<typeof ActionMenu>;
5
+ export default meta;
6
+ type Story = StoryObj<typeof meta>;
7
+ export declare const Default: Story;
8
+ export declare const WithExtraItems: Story;
9
+ export declare const DisabledDelete: Story;
10
+ //# sourceMappingURL=ActionMenu.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActionMenu.stories.d.ts","sourceRoot":"","sources":["../../src/stories/ActionMenu.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAExE,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,UAAU,CAMjC,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAQrB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAsB5B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAY5B,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { Pagination } from '../eventfullymanaged/components/Pagination';
3
+
4
+ declare const meta: Meta<typeof Pagination>;
5
+ export default meta;
6
+ type Story = StoryObj<typeof meta>;
7
+ export declare const FirstPage: Story;
8
+ export declare const MiddlePage: Story;
9
+ export declare const LastPage: Story;
10
+ export declare const LoadMore: Story;
11
+ //# sourceMappingURL=Pagination.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pagination.stories.d.ts","sourceRoot":"","sources":["../../src/stories/Pagination.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAExE,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,UAAU,CAMjC,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,SAAS,EAAE,KAUvB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAUxB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAUtB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAUtB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { SafeLink } from '../eventfullymanaged/components/SafeLink';
3
+
4
+ declare const meta: Meta<typeof SafeLink>;
5
+ export default meta;
6
+ type Story = StoryObj<typeof meta>;
7
+ export declare const Https: Story;
8
+ export declare const BareDomain: Story;
9
+ export declare const UnsafeLink: Story;
10
+ export declare const MissingHref: Story;
11
+ //# sourceMappingURL=SafeLink.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SafeLink.stories.d.ts","sourceRoot":"","sources":["../../src/stories/SafeLink.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AAEpE,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,QAAQ,CAM/B,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,KAAK,EAAE,KAMnB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAMxB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAMxB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAMzB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/microfe-eventfullymanaged",
3
- "version": "2026.710.1",
3
+ "version": "2026.716.1",
4
4
  "description": "EventfullyManaged - End-to-end event management platform",
5
5
  "type": "module",
6
6
  "files": [
@@ -28,6 +28,9 @@
28
28
  "format": "prettier --write \"src/**/*.{ts,tsx}\"",
29
29
  "type:check": "tsc --noEmit",
30
30
  "sanity": "bun run codegen && bun run lint:sanity && bun run format && bun run type:check && bun run build",
31
+ "storybook": "storybook dev -p 6006",
32
+ "build-storybook": "storybook build",
33
+ "test:storybook": "test-storybook",
31
34
  "schema:pull": "graphql-codegen --project schema-wspace && graphql-codegen --project schema-global",
32
35
  "codegen": "graphql-codegen --project wspace && graphql-codegen --project global",
33
36
  "codegen:all": "bun run schema:pull && bun run codegen",
@@ -40,7 +43,7 @@
40
43
  },
41
44
  "dependencies": {
42
45
  "@apollo/client": "^4.0.11",
43
- "@burdenoff/fe-libs": "2026.625.5",
46
+ "@burdenoff/fe-libs": "2026.713.6",
44
47
  "date-fns": "^4.1.0",
45
48
  "lucide-react": "^0.468.0",
46
49
  "react": "^19.0.0",
@@ -61,6 +64,13 @@
61
64
  "@graphql-codegen/typescript-react-apollo": "^4.0.0",
62
65
  "@types/react": "^19.0.2",
63
66
  "@types/react-dom": "^19.0.2",
67
+ "@storybook/addon-essentials": "^8.6.0",
68
+ "@storybook/addon-interactions": "^8.6.0",
69
+ "@storybook/react": "^8.6.0",
70
+ "@storybook/react-vite": "^8.6.0",
71
+ "@storybook/test": "^8.6.0",
72
+ "@storybook/test-runner": "0.22.0",
73
+ "@tailwindcss/vite": "^4.3.2",
64
74
  "@vitejs/plugin-react": "^4.3.4",
65
75
  "autoprefixer": "^10.4.20",
66
76
  "eslint": "^9.18.0",
@@ -69,6 +79,7 @@
69
79
  "lefthook": "^2.1.1",
70
80
  "postcss": "^8.4.49",
71
81
  "prettier": "^3.4.2",
82
+ "storybook": "^8.6.0",
72
83
  "tailwindcss": "^4.0.0",
73
84
  "typescript": "^5.9.0",
74
85
  "typescript-eslint": "^8.46.0",