@burdenoff/microfe-ggnomad 2026.713.1 → 2026.719.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.
- package/dist/ggnomad/GGNomadRoot.js.map +1 -1
- package/dist/ggnomad/GGNomadRoutes.js.map +1 -1
- package/dist/ggnomad/components/BookingPanel.js.map +1 -1
- package/dist/ggnomad/components/DetailHero.js.map +1 -1
- package/dist/ggnomad/components/DetailRow.js.map +1 -1
- package/dist/ggnomad/components/EntityCard.js.map +1 -1
- package/dist/ggnomad/components/ListingEditDialog.js.map +1 -1
- package/dist/ggnomad/components/LoadMoreButton.js.map +1 -1
- package/dist/ggnomad/components/ReviewsSection.js.map +1 -1
- package/dist/ggnomad/components/SectionCard.js.map +1 -1
- package/dist/ggnomad/components/StatCard.js.map +1 -1
- package/dist/ggnomad/components/StatusBadge.js.map +1 -1
- package/dist/ggnomad/pages/ActivityDetailsPage.js.map +1 -1
- package/dist/ggnomad/pages/AnalyticsPage.js.map +1 -1
- package/dist/ggnomad/pages/BookingsPage.js.map +1 -1
- package/dist/ggnomad/pages/DashboardPage.js.map +1 -1
- package/dist/ggnomad/pages/EntertainmentPage.js.map +1 -1
- package/dist/ggnomad/pages/EventDetailsPage.js.map +1 -1
- package/dist/ggnomad/pages/FavoritesPage.js.map +1 -1
- package/dist/ggnomad/pages/HospitalityPage.js.map +1 -1
- package/dist/ggnomad/pages/PageShell.js.map +1 -1
- package/dist/ggnomad/pages/PropertyDetailsPage.js.map +1 -1
- package/dist/ggnomad/pages/ProviderPage.js.map +1 -1
- package/dist/ggnomad/pages/SearchPage.js.map +1 -1
- package/dist/ggnomad/pages/TourDetailsPage.js.map +1 -1
- package/dist/ggnomad/pages/TourismPage.js.map +1 -1
- package/dist/ggnomad/pages/TravelPage.js.map +1 -1
- package/dist/ggnomad/pages/TripPlanDetailPage.js.map +1 -1
- package/dist/ggnomad/pages/TripsPage.js.map +1 -1
- package/dist/ggnomad/providers/GGNomadProvider.js.map +1 -1
- package/dist/ggnomad/utils/cn.js.map +1 -1
- package/dist/ggnomad/utils/navigation.js.map +1 -1
- package/dist/ggnomad/utils/notify.js.map +1 -1
- package/dist/services/createSandboxAssistantTransport.js.map +1 -1
- package/dist/stories/EntityCard.stories.d.ts +10 -0
- package/dist/stories/EntityCard.stories.d.ts.map +1 -0
- package/dist/stories/SectionCard.stories.d.ts +11 -0
- package/dist/stories/SectionCard.stories.d.ts.map +1 -0
- package/dist/stories/StatCard.stories.d.ts +11 -0
- package/dist/stories/StatCard.stories.d.ts.map +1 -0
- package/dist/stories/StatusBadge.stories.d.ts +12 -0
- package/dist/stories/StatusBadge.stories.d.ts.map +1 -0
- package/dist/utils/pageContext.js.map +1 -1
- package/package.json +14 -3
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { StatusBadge } from '../ggnomad/components/StatusBadge';
|
|
3
|
+
|
|
4
|
+
declare const meta: Meta<typeof StatusBadge>;
|
|
5
|
+
export default meta;
|
|
6
|
+
type Story = StoryObj<typeof meta>;
|
|
7
|
+
export declare const Success: Story;
|
|
8
|
+
export declare const Warning: Story;
|
|
9
|
+
export declare const Danger: Story;
|
|
10
|
+
export declare const Info: Story;
|
|
11
|
+
export declare const Live: Story;
|
|
12
|
+
//# sourceMappingURL=StatusBadge.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusBadge.stories.d.ts","sourceRoot":"","sources":["../../src/stories/StatusBadge.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAEhE,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CAMlC,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAIpB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,KAIlB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,KAKlB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pageContext.js","names":[],"sources":["../../src/utils/pageContext.ts"],"sourcesContent":["/**\n * Page context gathering for the GGNomad AI assistant.\n *\n * Captures the user's current browser context (URL, route, entity) so the\n * floating assistant can answer \"this page\" / \"current\" questions and run\n * operations scoped to the screen the user is looking at.\n */\n\nexport interface PageContext {\n currentUrl: string;\n currentPage: string;\n entityType?: string;\n entityId?: string;\n platform: string;\n version: string;\n viewportSize: string;\n userAgent: string;\n timestamp: string;\n}\n\ninterface ConversationContextShape {\n entityType?: string;\n entityId?: string;\n activeTab?: string;\n metadata?: Record<string, unknown>;\n}\n\nexport function gatherPageContext(): PageContext {\n const url = window.location.href;\n const pathSegments = window.location.pathname.split('/').filter(Boolean);\n const currentPage = pathSegments.slice(0, 3).join('/') || 'home';\n const entity = resolveGGNomadConversationContext(\n window.location.pathname,\n window.location.search\n );\n\n return {\n currentUrl: url,\n currentPage,\n entityType: entity.entityType,\n entityId: entity.entityId,\n platform: 'ggnomad',\n version: import.meta.env.VITE_APP_VERSION ?? '2026.420.95',\n viewportSize: `${window.innerWidth}x${window.innerHeight}`,\n userAgent: navigator.userAgent,\n timestamp: new Date().toISOString(),\n };\n}\n\nfunction matchPath(pattern: RegExp, pathname: string): RegExpMatchArray | null {\n return pathname.match(pattern);\n}\n\nexport function resolveGGNomadConversationContext(\n pathname: string,\n search: string\n): ConversationContextShape {\n const params = new URLSearchParams(search);\n\n const directMatches: Array<[RegExp, string]> = [\n [/^\\/ggnomad\\/hospitality\\/([^/]+)$/, 'GGNOMAD_PROPERTY'],\n [/^\\/ggnomad\\/tourism\\/tours\\/([^/]+)$/, 'GGNOMAD_TOUR'],\n [/^\\/ggnomad\\/tourism\\/activities\\/([^/]+)$/, 'GGNOMAD_ACTIVITY'],\n [/^\\/ggnomad\\/entertainment\\/([^/]+)$/, 'GGNOMAD_EVENT'],\n [/^\\/ggnomad\\/trips\\/([^/]+)$/, 'GGNOMAD_TRIP_PLAN'],\n ];\n\n for (const [pattern, entityType] of directMatches) {\n const match = matchPath(pattern, pathname);\n if (match) {\n return {\n entityType,\n entityId: match[1],\n metadata: { routePattern: pattern.source },\n };\n }\n }\n\n const activeTab =\n params.get('tab') ??\n (() => {\n const segments = pathname.split('/').filter(Boolean);\n return segments.length > 2 ? segments[segments.length - 1] : undefined;\n })();\n\n return {\n activeTab: activeTab ?? undefined,\n metadata: {\n ...(activeTab ? { activeTab } : {}),\n ...(params.get('q') ? { searchQuery: params.get('q') } : {}),\n },\n };\n}\n"],"mappings":";AA2BA,SAAgB,IAAiC;CAC/C,IAAM,IAAM,OAAO,SAAS,MAEtB,IADe,OAAO,SAAS,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"pageContext.js","names":[],"sources":["../../src/utils/pageContext.ts"],"sourcesContent":["/**\n * Page context gathering for the GGNomad AI assistant.\n *\n * Captures the user's current browser context (URL, route, entity) so the\n * floating assistant can answer \"this page\" / \"current\" questions and run\n * operations scoped to the screen the user is looking at.\n */\n\nexport interface PageContext {\n currentUrl: string;\n currentPage: string;\n entityType?: string;\n entityId?: string;\n platform: string;\n version: string;\n viewportSize: string;\n userAgent: string;\n timestamp: string;\n}\n\ninterface ConversationContextShape {\n entityType?: string;\n entityId?: string;\n activeTab?: string;\n metadata?: Record<string, unknown>;\n}\n\nexport function gatherPageContext(): PageContext {\n const url = window.location.href;\n const pathSegments = window.location.pathname.split('/').filter(Boolean);\n const currentPage = pathSegments.slice(0, 3).join('/') || 'home';\n const entity = resolveGGNomadConversationContext(\n window.location.pathname,\n window.location.search\n );\n\n return {\n currentUrl: url,\n currentPage,\n entityType: entity.entityType,\n entityId: entity.entityId,\n platform: 'ggnomad',\n version: import.meta.env.VITE_APP_VERSION ?? '2026.420.95',\n viewportSize: `${window.innerWidth}x${window.innerHeight}`,\n userAgent: navigator.userAgent,\n timestamp: new Date().toISOString(),\n };\n}\n\nfunction matchPath(pattern: RegExp, pathname: string): RegExpMatchArray | null {\n return pathname.match(pattern);\n}\n\nexport function resolveGGNomadConversationContext(\n pathname: string,\n search: string\n): ConversationContextShape {\n const params = new URLSearchParams(search);\n\n const directMatches: Array<[RegExp, string]> = [\n [/^\\/ggnomad\\/hospitality\\/([^/]+)$/, 'GGNOMAD_PROPERTY'],\n [/^\\/ggnomad\\/tourism\\/tours\\/([^/]+)$/, 'GGNOMAD_TOUR'],\n [/^\\/ggnomad\\/tourism\\/activities\\/([^/]+)$/, 'GGNOMAD_ACTIVITY'],\n [/^\\/ggnomad\\/entertainment\\/([^/]+)$/, 'GGNOMAD_EVENT'],\n [/^\\/ggnomad\\/trips\\/([^/]+)$/, 'GGNOMAD_TRIP_PLAN'],\n ];\n\n for (const [pattern, entityType] of directMatches) {\n const match = matchPath(pattern, pathname);\n if (match) {\n return {\n entityType,\n entityId: match[1],\n metadata: { routePattern: pattern.source },\n };\n }\n }\n\n const activeTab =\n params.get('tab') ??\n (() => {\n const segments = pathname.split('/').filter(Boolean);\n return segments.length > 2 ? segments[segments.length - 1] : undefined;\n })();\n\n return {\n activeTab: activeTab ?? undefined,\n metadata: {\n ...(activeTab ? { activeTab } : {}),\n ...(params.get('q') ? { searchQuery: params.get('q') } : {}),\n },\n };\n}\n"],"mappings":";AA2BA,SAAgB,IAAiC;CAC/C,IAAM,IAAM,OAAO,SAAS,MAEtB,IADe,OAAO,SAAS,SAAS,MAAM,GAAG,EAAE,OAAO,OAC5C,EAAa,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,QACpD,IAAS,EACb,OAAO,SAAS,UAChB,OAAO,SAAS,MAClB;CAEA,OAAO;EACL,YAAY;EACZ;EACA,YAAY,EAAO;EACnB,UAAU,EAAO;EACjB,UAAU;EACV,SAA6C;EAC7C,cAAc,GAAG,OAAO,WAAW,GAAG,OAAO;EAC7C,WAAW,UAAU;EACrB,4BAAW,IAAI,KAAK,GAAE,YAAY;CACpC;AACF;AAEA,SAAS,EAAU,GAAiB,GAA2C;CAC7E,OAAO,EAAS,MAAM,CAAO;AAC/B;AAEA,SAAgB,EACd,GACA,GAC0B;CAC1B,IAAM,IAAS,IAAI,gBAAgB,CAAM;CAUzC,KAAK,IAAM,CAAC,GAAS,MAAe;EAPlC,CAAC,qCAAqC,kBAAkB;EACxD,CAAC,wCAAwC,cAAc;EACvD,CAAC,6CAA6C,kBAAkB;EAChE,CAAC,uCAAuC,eAAe;EACvD,CAAC,+BAA+B,mBAAmB;CAGjB,GAAe;EACjD,IAAM,IAAQ,EAAU,GAAS,CAAQ;EACzC,IAAI,GACF,OAAO;GACL;GACA,UAAU,EAAM;GAChB,UAAU,EAAE,cAAc,EAAQ,OAAO;EAC3C;CAEJ;CAEA,IAAM,IACJ,EAAO,IAAI,KAAK,YACT;EACL,IAAM,IAAW,EAAS,MAAM,GAAG,EAAE,OAAO,OAAO;EACnD,OAAO,EAAS,SAAS,IAAI,EAAS,EAAS,SAAS,KAAK,KAAA;CAC/D,GAAG;CAEL,OAAO;EACL,WAAW,KAAa,KAAA;EACxB,UAAU;GACR,GAAI,IAAY,EAAE,aAAU,IAAI,CAAC;GACjC,GAAI,EAAO,IAAI,GAAG,IAAI,EAAE,aAAa,EAAO,IAAI,GAAG,EAAE,IAAI,CAAC;EAC5D;CACF;AACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@burdenoff/microfe-ggnomad",
|
|
3
|
-
"version": "2026.
|
|
3
|
+
"version": "2026.719.1",
|
|
4
4
|
"description": "Burdenoff GGNomad Microfrontend",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -31,10 +31,13 @@
|
|
|
31
31
|
"lint:sanity": "if [ \"${CI:-}\" = \"true\" ]; then bun run lint; else bun run lint -- --cache --cache-location .eslintcache; fi",
|
|
32
32
|
"format": "prettier --write \"src/**/*.{ts,tsx}\"",
|
|
33
33
|
"type:check": "tsc --noEmit",
|
|
34
|
-
"sanity": "bun run codegen && bun run lint:sanity && bun run format && bun run type:check && bun run build",
|
|
34
|
+
"sanity": "bun run codegen && bun run lint:sanity && bun run format && bun run type:check && bun run build && bun run build-storybook",
|
|
35
35
|
"schema:pull": "graphql-codegen --project schema-wspace && graphql-codegen --project schema-global",
|
|
36
36
|
"codegen": "graphql-codegen --project wspace && graphql-codegen --project global",
|
|
37
37
|
"codegen:all": "bun run schema:pull && bun run codegen",
|
|
38
|
+
"storybook": "storybook dev -p 6006",
|
|
39
|
+
"build-storybook": "storybook build",
|
|
40
|
+
"test:storybook": "test-storybook",
|
|
38
41
|
"switch:status": "bun scripts/deps-mode.ts status",
|
|
39
42
|
"switch:remote": "bun scripts/deps-mode.ts remote",
|
|
40
43
|
"switch:local": "bun scripts/deps-mode.ts local",
|
|
@@ -52,6 +55,13 @@
|
|
|
52
55
|
"@graphql-codegen/typescript": "^4.0.0",
|
|
53
56
|
"@graphql-codegen/typescript-operations": "^4.0.0",
|
|
54
57
|
"@graphql-codegen/typescript-react-apollo": "^4.0.0",
|
|
58
|
+
"@storybook/addon-essentials": "^8.6.0",
|
|
59
|
+
"@storybook/addon-interactions": "^8.6.0",
|
|
60
|
+
"@storybook/react": "^8.6.0",
|
|
61
|
+
"@storybook/react-vite": "^8.6.0",
|
|
62
|
+
"@storybook/test": "^8.6.0",
|
|
63
|
+
"@storybook/test-runner": "0.22.0",
|
|
64
|
+
"@tailwindcss/vite": "^4.3.2",
|
|
55
65
|
"@types/react": "^19.0.2",
|
|
56
66
|
"@types/react-dom": "^19.0.2",
|
|
57
67
|
"@vitejs/plugin-react": "^4.3.4",
|
|
@@ -63,10 +73,11 @@
|
|
|
63
73
|
"lefthook": "^2.1.1",
|
|
64
74
|
"postcss": "^8.4.49",
|
|
65
75
|
"prettier": "^3.4.2",
|
|
76
|
+
"storybook": "^8.6.0",
|
|
66
77
|
"tailwindcss": "^4.0.0",
|
|
67
78
|
"typescript": "^5.9.0",
|
|
68
79
|
"typescript-eslint": "^8.54.0",
|
|
69
|
-
"vite": "8.0.
|
|
80
|
+
"vite": "8.0.16",
|
|
70
81
|
"vite-plugin-dts": "3.9.1"
|
|
71
82
|
},
|
|
72
83
|
"peerDependencies": {
|