@burdenoff/microfe-buildmyiq 2026.705.2 → 2026.705.3

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 (117) hide show
  1. package/dist/buildmyiq/BuildmyiqRoot.d.ts +5 -0
  2. package/dist/buildmyiq/BuildmyiqRoot.d.ts.map +1 -0
  3. package/dist/buildmyiq/BuildmyiqRoutes.d.ts +4 -0
  4. package/dist/buildmyiq/BuildmyiqRoutes.d.ts.map +1 -0
  5. package/dist/buildmyiq/components/BuiDiscussion.d.ts +18 -0
  6. package/dist/buildmyiq/components/BuiDiscussion.d.ts.map +1 -0
  7. package/dist/buildmyiq/components/BuiTags.d.ts +17 -0
  8. package/dist/buildmyiq/components/BuiTags.d.ts.map +1 -0
  9. package/dist/buildmyiq/components/DataTable.d.ts +28 -0
  10. package/dist/buildmyiq/components/DataTable.d.ts.map +1 -0
  11. package/dist/buildmyiq/components/EmptyState.d.ts +18 -0
  12. package/dist/buildmyiq/components/EmptyState.d.ts.map +1 -0
  13. package/dist/buildmyiq/components/EvidenceUpload.d.ts +14 -0
  14. package/dist/buildmyiq/components/EvidenceUpload.d.ts.map +1 -0
  15. package/dist/buildmyiq/components/FileLink.d.ts +15 -0
  16. package/dist/buildmyiq/components/FileLink.d.ts.map +1 -0
  17. package/dist/buildmyiq/components/FilterTabs.d.ts +18 -0
  18. package/dist/buildmyiq/components/FilterTabs.d.ts.map +1 -0
  19. package/dist/buildmyiq/components/MetricsCard.d.ts +23 -0
  20. package/dist/buildmyiq/components/MetricsCard.d.ts.map +1 -0
  21. package/dist/buildmyiq/components/MiniBar.d.ts +16 -0
  22. package/dist/buildmyiq/components/MiniBar.d.ts.map +1 -0
  23. package/dist/buildmyiq/components/PageLayout.d.ts +16 -0
  24. package/dist/buildmyiq/components/PageLayout.d.ts.map +1 -0
  25. package/dist/buildmyiq/components/Pagination.d.ts +22 -0
  26. package/dist/buildmyiq/components/Pagination.d.ts.map +1 -0
  27. package/dist/buildmyiq/components/StateViews.d.ts +24 -0
  28. package/dist/buildmyiq/components/StateViews.d.ts.map +1 -0
  29. package/dist/buildmyiq/components/StatusBadge.d.ts +9 -0
  30. package/dist/buildmyiq/components/StatusBadge.d.ts.map +1 -0
  31. package/dist/buildmyiq/components/Tabs.d.ts +17 -0
  32. package/dist/buildmyiq/components/Tabs.d.ts.map +1 -0
  33. package/dist/buildmyiq/components/index.d.ts +19 -0
  34. package/dist/buildmyiq/components/index.d.ts.map +1 -0
  35. package/dist/buildmyiq/context/BuildmyiqContext.d.ts +16 -0
  36. package/dist/buildmyiq/context/BuildmyiqContext.d.ts.map +1 -0
  37. package/dist/buildmyiq/context/index.d.ts +6 -0
  38. package/dist/buildmyiq/context/index.d.ts.map +1 -0
  39. package/dist/buildmyiq/hooks/index.d.ts +10 -0
  40. package/dist/buildmyiq/hooks/index.d.ts.map +1 -0
  41. package/dist/buildmyiq/hooks/useBuiComments.d.ts +36 -0
  42. package/dist/buildmyiq/hooks/useBuiComments.d.ts.map +1 -0
  43. package/dist/buildmyiq/hooks/useBuiFiles.d.ts +47 -0
  44. package/dist/buildmyiq/hooks/useBuiFiles.d.ts.map +1 -0
  45. package/dist/buildmyiq/hooks/useBuiTags.d.ts +44 -0
  46. package/dist/buildmyiq/hooks/useBuiTags.d.ts.map +1 -0
  47. package/dist/buildmyiq/hooks/useBuildmyiqApi.d.ts +65 -0
  48. package/dist/buildmyiq/hooks/useBuildmyiqApi.d.ts.map +1 -0
  49. package/dist/buildmyiq/hooks/useCursorPager.d.ts +33 -0
  50. package/dist/buildmyiq/hooks/useCursorPager.d.ts.map +1 -0
  51. package/dist/buildmyiq/index.d.ts +9 -0
  52. package/dist/buildmyiq/index.d.ts.map +1 -0
  53. package/dist/buildmyiq/pages/DashboardPage.d.ts +4 -0
  54. package/dist/buildmyiq/pages/DashboardPage.d.ts.map +1 -0
  55. package/dist/buildmyiq/pages/_shared/CourseCard.d.ts +13 -0
  56. package/dist/buildmyiq/pages/_shared/CourseCard.d.ts.map +1 -0
  57. package/dist/buildmyiq/pages/_shared/index.d.ts +6 -0
  58. package/dist/buildmyiq/pages/_shared/index.d.ts.map +1 -0
  59. package/dist/buildmyiq/pages/assessments/AssessmentDetailPage.d.ts +4 -0
  60. package/dist/buildmyiq/pages/assessments/AssessmentDetailPage.d.ts.map +1 -0
  61. package/dist/buildmyiq/pages/assessments/AssessmentsPage.d.ts +4 -0
  62. package/dist/buildmyiq/pages/assessments/AssessmentsPage.d.ts.map +1 -0
  63. package/dist/buildmyiq/pages/authoring/AuthoringPage.d.ts +4 -0
  64. package/dist/buildmyiq/pages/authoring/AuthoringPage.d.ts.map +1 -0
  65. package/dist/buildmyiq/pages/authoring/CourseBuilderPage.d.ts +4 -0
  66. package/dist/buildmyiq/pages/authoring/CourseBuilderPage.d.ts.map +1 -0
  67. package/dist/buildmyiq/pages/authoring/_forms.d.ts +44 -0
  68. package/dist/buildmyiq/pages/authoring/_forms.d.ts.map +1 -0
  69. package/dist/buildmyiq/pages/catalog/CatalogPage.d.ts +4 -0
  70. package/dist/buildmyiq/pages/catalog/CatalogPage.d.ts.map +1 -0
  71. package/dist/buildmyiq/pages/catalog/CourseDetailPage.d.ts +4 -0
  72. package/dist/buildmyiq/pages/catalog/CourseDetailPage.d.ts.map +1 -0
  73. package/dist/buildmyiq/pages/certificates/CertificatesPage.d.ts +4 -0
  74. package/dist/buildmyiq/pages/certificates/CertificatesPage.d.ts.map +1 -0
  75. package/dist/buildmyiq/pages/cohorts/CohortsPage.d.ts +4 -0
  76. package/dist/buildmyiq/pages/cohorts/CohortsPage.d.ts.map +1 -0
  77. package/dist/buildmyiq/pages/learning/LessonPlayerPage.d.ts +4 -0
  78. package/dist/buildmyiq/pages/learning/LessonPlayerPage.d.ts.map +1 -0
  79. package/dist/buildmyiq/pages/learning/MyLearningPage.d.ts +4 -0
  80. package/dist/buildmyiq/pages/learning/MyLearningPage.d.ts.map +1 -0
  81. package/dist/buildmyiq/pages/skills/SkillsPage.d.ts +4 -0
  82. package/dist/buildmyiq/pages/skills/SkillsPage.d.ts.map +1 -0
  83. package/dist/buildmyiq/pages/submissions/SubmissionsPage.d.ts +4 -0
  84. package/dist/buildmyiq/pages/submissions/SubmissionsPage.d.ts.map +1 -0
  85. package/dist/buildmyiq/types/index.d.ts +382 -0
  86. package/dist/buildmyiq/types/index.d.ts.map +1 -0
  87. package/dist/buildmyiq/utils/cn.d.ts +4 -0
  88. package/dist/buildmyiq/utils/cn.d.ts.map +1 -0
  89. package/dist/buildmyiq/utils/cn.js +2 -2
  90. package/dist/buildmyiq/utils/formatters.d.ts +33 -0
  91. package/dist/buildmyiq/utils/formatters.d.ts.map +1 -0
  92. package/dist/buildmyiq/utils/i18n.d.ts +6 -0
  93. package/dist/buildmyiq/utils/i18n.d.ts.map +1 -0
  94. package/dist/buildmyiq/utils/index.d.ts +9 -0
  95. package/dist/buildmyiq/utils/index.d.ts.map +1 -0
  96. package/dist/buildmyiq/utils/navigation.d.ts +14 -0
  97. package/dist/buildmyiq/utils/navigation.d.ts.map +1 -0
  98. package/dist/dev/main.d.ts +2 -0
  99. package/dist/dev/main.d.ts.map +1 -0
  100. package/dist/generated/global-operations.d.ts +2 -0
  101. package/dist/generated/global-operations.d.ts.map +1 -0
  102. package/dist/generated/global-types.d.ts +18199 -0
  103. package/dist/generated/global-types.d.ts.map +1 -0
  104. package/dist/generated/wspace-operations.d.ts +2 -0
  105. package/dist/generated/wspace-operations.d.ts.map +1 -0
  106. package/dist/generated/wspace-types.d.ts +43046 -0
  107. package/dist/generated/wspace-types.d.ts.map +1 -0
  108. package/dist/index.d.ts +2 -0
  109. package/dist/index.d.ts.map +1 -0
  110. package/dist/index.js +1 -1
  111. package/dist/node_modules/{clsx → .bun/clsx@2.1.1/node_modules/clsx}/dist/clsx.js +1 -1
  112. package/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js.map +1 -0
  113. package/dist/node_modules/{tailwind-merge → .bun/tailwind-merge@3.5.0/node_modules/tailwind-merge}/dist/bundle-mjs.js +170 -212
  114. package/dist/node_modules/.bun/tailwind-merge@3.5.0/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -0
  115. package/package.json +1 -1
  116. package/dist/node_modules/clsx/dist/clsx.js.map +0 -1
  117. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +0 -1
@@ -0,0 +1,5 @@
1
+ import { FC } from 'react';
2
+ import { BuildmyiqRootProps } from './types';
3
+
4
+ export declare const BuildmyiqRoot: FC<BuildmyiqRootProps>;
5
+ //# sourceMappingURL=BuildmyiqRoot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BuildmyiqRoot.d.ts","sourceRoot":"","sources":["../../src/buildmyiq/BuildmyiqRoot.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAmBhC,OAAO,KAAK,EAAE,kBAAkB,EAAW,MAAM,SAAS,CAAC;AAY3D,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAqHhD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { FC } from 'react';
2
+
3
+ export declare const BuildmyiqRoutes: FC;
4
+ //# sourceMappingURL=BuildmyiqRoutes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BuildmyiqRoutes.d.ts","sourceRoot":"","sources":["../../src/buildmyiq/BuildmyiqRoutes.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAkB,MAAM,OAAO,CAAC;AAoEhD,eAAO,MAAM,eAAe,EAAE,EA4C7B,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * BuiDiscussion — a comment thread on any Buildmyiq entity (Integration B).
3
+ * @module buildmyiq/components/BuiDiscussion
4
+ *
5
+ * Reuses the platform EntityComment API (`getEntityComments` /
6
+ * `createEntityComment`) keyed by `(entityType, entityId)` — no buildmyiq-svc change.
7
+ * Renders root comments (author, body, time) + a composer. Robust to empty
8
+ * state and errors.
9
+ */
10
+ interface BuiDiscussionProps {
11
+ entityType: string;
12
+ entityId: string;
13
+ title?: string;
14
+ description?: string;
15
+ }
16
+ export declare function BuiDiscussion({ entityType, entityId, title, description, }: BuiDiscussionProps): import("react/jsx-runtime").JSX.Element;
17
+ export {};
18
+ //# sourceMappingURL=BuiDiscussion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BuiDiscussion.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/components/BuiDiscussion.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAWH,UAAU,kBAAkB;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAaD,wBAAgB,aAAa,CAAC,EAC5B,UAAU,EACV,QAAQ,EACR,KAAoB,EACpB,WAAkE,GACnE,EAAE,kBAAkB,2CAoGpB"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * BuiTags — a lightweight tag control for Buildmyiq entities (Integration C).
3
+ * @module buildmyiq/components/BuiTags
4
+ *
5
+ * The buildmyiq svc exposes no tags field, so this drives the platform tag store
6
+ * directly: `getEntityTags` (display), `searchTags` (+ `createTag`) to pick or
7
+ * create, `assignTag`/`removeTagAssignment` to link — all via the workspace
8
+ * gateway. No buildmyiq-svc change.
9
+ */
10
+ interface BuiTagsProps {
11
+ entityType: string;
12
+ entityId: string;
13
+ label?: string;
14
+ }
15
+ export declare function BuiTags({ entityType, entityId, label }: BuiTagsProps): import("react/jsx-runtime").JSX.Element;
16
+ export {};
17
+ //# sourceMappingURL=BuiTags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BuiTags.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/components/BuiTags.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAoBH,UAAU,YAAY;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,OAAO,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAc,EAAE,EAAE,YAAY,2CAuL7E"}
@@ -0,0 +1,28 @@
1
+ import { ReactNode } from 'react';
2
+
3
+ export interface Column<T> {
4
+ key: string;
5
+ header: ReactNode;
6
+ render: (row: T) => ReactNode;
7
+ align?: 'left' | 'right' | 'center';
8
+ className?: string;
9
+ /** Hide below the `md` breakpoint for a mobile-friendly layout. */
10
+ hideOnMobile?: boolean;
11
+ /** Provide to make this column click-sortable (returns a comparable value). */
12
+ sortValue?: (row: T) => string | number;
13
+ }
14
+ interface DataTableProps<T> {
15
+ columns: Column<T>[];
16
+ rows: T[];
17
+ rowKey: (row: T) => string;
18
+ onRowClick?: (row: T) => void;
19
+ className?: string;
20
+ /** Default sort: a column key + direction. */
21
+ defaultSort?: {
22
+ key: string;
23
+ dir: 'asc' | 'desc';
24
+ };
25
+ }
26
+ export declare function DataTable<T>({ columns, rows, rowKey, onRowClick, className, defaultSort, }: DataTableProps<T>): import("react/jsx-runtime").JSX.Element;
27
+ export {};
28
+ //# sourceMappingURL=DataTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/components/DataTable.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAK1D,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,SAAS,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,CAAC;CACzC;AAED,UAAU,cAAc,CAAC,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACrB,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,WAAW,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC;CACpD;AAQD,wBAAgB,SAAS,CAAC,CAAC,EAAE,EAC3B,OAAO,EACP,IAAI,EACJ,MAAM,EACN,UAAU,EACV,SAAS,EACT,WAAW,GACZ,EAAE,cAAc,CAAC,CAAC,CAAC,2CAqGnB"}
@@ -0,0 +1,18 @@
1
+ import { FC, ReactNode } from 'react';
2
+
3
+ interface EmptyStateProps {
4
+ icon?: ReactNode;
5
+ /**
6
+ * On-brand illustration name → `/illustrations/<name>.webp`. Standard names:
7
+ * empty-data, empty-search, empty-files, empty-people, empty-notifications,
8
+ * onboarding, empty-generic.
9
+ */
10
+ illustration?: string;
11
+ title: string;
12
+ description?: string;
13
+ action?: ReactNode;
14
+ className?: string;
15
+ }
16
+ export declare const EmptyState: FC<EmptyStateProps>;
17
+ export {};
18
+ //# sourceMappingURL=EmptyState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/components/EmptyState.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAI3C,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CA8B1C,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { UploadedBuiFile } from '../hooks';
2
+
3
+ interface EvidenceUploadProps {
4
+ id: string;
5
+ label: string;
6
+ value: UploadedBuiFile | null;
7
+ onChange: (value: UploadedBuiFile | null) => void;
8
+ accept?: string;
9
+ disabled?: boolean;
10
+ hint?: string;
11
+ }
12
+ export declare function EvidenceUpload({ id, label, value, onChange, accept, disabled, hint, }: EvidenceUploadProps): import("react/jsx-runtime").JSX.Element;
13
+ export {};
14
+ //# sourceMappingURL=EvidenceUpload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvidenceUpload.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/components/EvidenceUpload.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,EAAoB,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AAElE,UAAU,mBAAmB;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,KAAK,IAAI,CAAC;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,cAAc,CAAC,EAC7B,EAAE,EACF,KAAK,EACL,KAAK,EACL,QAAQ,EACR,MAA0C,EAC1C,QAAgB,EAChB,IAAI,GACL,EAAE,mBAAmB,2CAkFrB"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * FileLink — resolves a federated File id to a download link (Integration A).
3
+ * @module buildmyiq/components/FileLink
4
+ *
5
+ * The buildmyiq queries select `cover { id }` / `media { id }` (just the id). This
6
+ * resolves the platform File via `getFile(id)` for its name + signed
7
+ * `downloadUrl` so evidence/report artifacts render as a real link.
8
+ */
9
+ interface FileLinkProps {
10
+ fileId: string | null | undefined;
11
+ className?: string;
12
+ }
13
+ export declare function FileLink({ fileId, className }: FileLinkProps): import("react/jsx-runtime").JSX.Element | null;
14
+ export {};
15
+ //# sourceMappingURL=FileLink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileLink.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/components/FileLink.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,UAAU,aAAa;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,aAAa,kDA0C5D"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * FilterTabs — a segmented status/enum filter control.
3
+ * @module buildmyiq/components
4
+ */
5
+ export interface FilterOption<V extends string> {
6
+ value: V;
7
+ label: string;
8
+ count?: number;
9
+ }
10
+ interface FilterTabsProps<V extends string> {
11
+ options: FilterOption<V>[];
12
+ value: V;
13
+ onChange: (value: V) => void;
14
+ className?: string;
15
+ }
16
+ export declare function FilterTabs<V extends string>({ options, value, onChange, className, }: FilterTabsProps<V>): import("react/jsx-runtime").JSX.Element;
17
+ export {};
18
+ //# sourceMappingURL=FilterTabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterTabs.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/components/FilterTabs.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,MAAM;IAC5C,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,eAAe,CAAC,CAAC,SAAS,MAAM;IACxC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3B,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,EAC3C,OAAO,EACP,KAAK,EACL,QAAQ,EACR,SAAS,GACV,EAAE,eAAe,CAAC,CAAC,CAAC,2CAyCpB"}
@@ -0,0 +1,23 @@
1
+ import { FC, ReactNode } from 'react';
2
+ import { TrendDirection } from '../types';
3
+
4
+ type Accent = 'success' | 'warning' | 'error';
5
+ interface MetricsCardProps {
6
+ icon: ReactNode;
7
+ value: string | number;
8
+ label: string;
9
+ trend?: TrendDirection;
10
+ trendValue?: string;
11
+ className?: string;
12
+ /** Render as the page's hero metric (glass treatment + accent glow). */
13
+ featured?: boolean;
14
+ /** Severity accent — tints the icon and adds a soft top-edge glow. */
15
+ accent?: Accent;
16
+ /** Optional pill shown in the top-right (e.g. "Critical"). */
17
+ pill?: ReactNode;
18
+ /** Optional slot under the value (e.g. a MiniBar or sub-label). */
19
+ footer?: ReactNode;
20
+ }
21
+ export declare const MetricsCard: FC<MetricsCardProps>;
22
+ export {};
23
+ //# sourceMappingURL=MetricsCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetricsCard.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/components/MetricsCard.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAI3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,KAAK,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAE9C,UAAU,gBAAgB;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,mEAAmE;IACnE,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAoBD,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAsC5C,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * MiniBar — a thin inline progress bar (target progress, completion, breach %).
3
+ * @module buildmyiq/components
4
+ */
5
+ interface MiniBarProps {
6
+ /** 0–100. */
7
+ value: number;
8
+ className?: string;
9
+ /** Bar fill token class (defaults to accent). */
10
+ barClassName?: string;
11
+ /** Height in px. */
12
+ height?: number;
13
+ }
14
+ export declare function MiniBar({ value, className, barClassName, height, }: MiniBarProps): import("react/jsx-runtime").JSX.Element;
15
+ export {};
16
+ //# sourceMappingURL=MiniBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MiniBar.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/components/MiniBar.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,UAAU,YAAY;IACpB,aAAa;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,OAAO,CAAC,EACtB,KAAK,EACL,SAAS,EACT,YAA0B,EAC1B,MAAU,GACX,EAAE,YAAY,2CAiBd"}
@@ -0,0 +1,16 @@
1
+ import { FC, ReactNode } from 'react';
2
+
3
+ interface PageLayoutProps {
4
+ title: ReactNode;
5
+ description?: string;
6
+ actions?: ReactNode;
7
+ children: ReactNode;
8
+ className?: string;
9
+ /** Render the title as a gradient hero heading (reserve for the ONE primary page). */
10
+ titleGradient?: boolean;
11
+ /** Drop a subtle living-glass aurora behind the header (primary page only). */
12
+ aurora?: boolean;
13
+ }
14
+ export declare const PageLayout: FC<PageLayoutProps>;
15
+ export {};
16
+ //# sourceMappingURL=PageLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageLayout.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/components/PageLayout.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAI3C,UAAU,eAAe;IACvB,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CAoC1C,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Pagination — cursor-aware Prev/Next control for Bui* connection lists.
3
+ * @module buildmyiq/components
4
+ *
5
+ * The svc list connections return `pageInfo { cursor, hasMore }` and paginate by
6
+ * cursor (offset is a no-op). Pages track a 0-indexed `page` for display and a
7
+ * cursor stack for navigation; this control exposes Prev/Next, disabling Prev on
8
+ * page 0 and Next when the server reports no more rows.
9
+ */
10
+ interface PaginationProps {
11
+ page: number;
12
+ pageSize: number;
13
+ /** Number of rows on the current page. */
14
+ itemCount: number;
15
+ /** Server flag: are there more rows after this page? */
16
+ hasMore: boolean;
17
+ onPageChange: (page: number) => void;
18
+ className?: string;
19
+ }
20
+ export declare function Pagination({ page, pageSize, itemCount, hasMore, onPageChange, className, }: PaginationProps): import("react/jsx-runtime").JSX.Element | null;
21
+ export {};
22
+ //# sourceMappingURL=Pagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/components/Pagination.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,OAAO,EACP,YAAY,EACZ,SAAS,GACV,EAAE,eAAe,kDAuCjB"}
@@ -0,0 +1,24 @@
1
+ import { FC, ReactNode } from 'react';
2
+
3
+ interface LoadingViewProps {
4
+ label?: string;
5
+ className?: string;
6
+ }
7
+ export declare const LoadingView: FC<LoadingViewProps>;
8
+ interface ErrorViewProps {
9
+ title?: string;
10
+ message?: string;
11
+ onRetry?: () => void;
12
+ className?: string;
13
+ }
14
+ export declare const ErrorView: FC<ErrorViewProps>;
15
+ interface SectionProps {
16
+ title: string;
17
+ description?: string;
18
+ action?: ReactNode;
19
+ children: ReactNode;
20
+ className?: string;
21
+ }
22
+ export declare const Section: FC<SectionProps>;
23
+ export {};
24
+ //# sourceMappingURL=StateViews.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateViews.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/components/StateViews.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAK3C,UAAU,gBAAgB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAK5C,CAAC;AAEF,UAAU,cAAc;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CA2BxC,CAAC;AAEF,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,OAAO,EAAE,EAAE,CAAC,YAAY,CAWpC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { FC } from 'react';
2
+
3
+ interface StatusBadgeProps {
4
+ status: string;
5
+ className?: string;
6
+ }
7
+ export declare const StatusBadge: FC<StatusBadgeProps>;
8
+ export {};
9
+ //# sourceMappingURL=StatusBadge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusBadge.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/components/StatusBadge.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAIhC,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAiED,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAsB5C,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { ReactNode } from 'react';
2
+
3
+ export interface TabItem<V extends string> {
4
+ value: V;
5
+ label: string;
6
+ icon?: ReactNode;
7
+ count?: number;
8
+ }
9
+ interface TabsProps<V extends string> {
10
+ items: TabItem<V>[];
11
+ value: V;
12
+ onChange: (value: V) => void;
13
+ className?: string;
14
+ }
15
+ export declare function Tabs<V extends string>({ items, value, onChange, className }: TabsProps<V>): import("react/jsx-runtime").JSX.Element;
16
+ export {};
17
+ //# sourceMappingURL=Tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/components/Tabs.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,WAAW,OAAO,CAAC,CAAC,SAAS,MAAM;IACvC,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,SAAS,CAAC,CAAC,SAAS,MAAM;IAClC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACpB,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,2CAyCzF"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Components index
3
+ * @module buildmyiq/components
4
+ */
5
+ export { PageLayout } from './PageLayout';
6
+ export { MetricsCard } from './MetricsCard';
7
+ export { StatusBadge } from './StatusBadge';
8
+ export { EmptyState } from './EmptyState';
9
+ export { LoadingView, ErrorView, Section } from './StateViews';
10
+ export { DataTable, type Column } from './DataTable';
11
+ export { FilterTabs, type FilterOption } from './FilterTabs';
12
+ export { Tabs, type TabItem } from './Tabs';
13
+ export { Pagination } from './Pagination';
14
+ export { MiniBar } from './MiniBar';
15
+ export { EvidenceUpload } from './EvidenceUpload';
16
+ export { FileLink } from './FileLink';
17
+ export { BuiDiscussion } from './BuiDiscussion';
18
+ export { BuiTags } from './BuiTags';
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/components/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { FC, PropsWithChildren } from 'react';
2
+ import { BuildmyiqRootProps } from '../types';
3
+
4
+ interface BuildmyiqContextValue extends Omit<BuildmyiqRootProps, 'registerNavItems' | 'registerFooterItems' | 'navigate'> {
5
+ isStandalone: boolean;
6
+ /** Shell's navigate function (only available in integrated mode). */
7
+ navigate?: (path: string) => void;
8
+ /** Navigate to a path relative to basePath. */
9
+ navigateTo: (relativePath: string) => void;
10
+ /** Get the full path for a relative path. */
11
+ getPath: (relativePath: string) => string;
12
+ }
13
+ export declare function useBuildmyiq(): BuildmyiqContextValue;
14
+ export declare const BuildmyiqProvider: FC<PropsWithChildren<BuildmyiqRootProps>>;
15
+ export {};
16
+ //# sourceMappingURL=BuildmyiqContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BuildmyiqContext.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/context/BuildmyiqContext.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAGnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGnD,UAAU,qBAAsB,SAAQ,IAAI,CAC1C,kBAAkB,EAClB,kBAAkB,GAAG,qBAAqB,GAAG,UAAU,CACxD;IACC,YAAY,EAAE,OAAO,CAAC;IACtB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,+CAA+C;IAC/C,UAAU,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,6CAA6C;IAC7C,OAAO,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;CAC3C;AAID,wBAAgB,YAAY,IAAI,qBAAqB,CAMpD;AAiHD,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAmBvE,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Context index
3
+ * @module buildmyiq/context
4
+ */
5
+ export { BuildmyiqProvider, useBuildmyiq } from './BuildmyiqContext';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/context/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Hooks index
3
+ * @module buildmyiq/hooks
4
+ */
5
+ export * from './useBuildmyiqApi';
6
+ export * from './useCursorPager';
7
+ export * from './useBuiFiles';
8
+ export * from './useBuiComments';
9
+ export * from './useBuiTags';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/hooks/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Buildmyiq — wspace-conversations-svc EntityComment REUSE hooks (Integration B).
3
+ * @module buildmyiq/hooks/useBuiComments
4
+ *
5
+ * Adds a discussion surface to Buildmyiq entities WITHOUT any buildmyiq-svc change by
6
+ * reusing the generic EntityComment API composed into the WORKSPACE supergraph.
7
+ * Comments attach to any entity by `(entityType, entityId)`:
8
+ * - `getEntityComments(input): EntityCommentConnection!`
9
+ * - `createEntityComment(input): EntityComment!`
10
+ *
11
+ * Transport reuses `wspaceFetch` from `useBuiFiles` (workspace gateway +
12
+ * workspace token). Lives in a separate file; `useBuildmyiqApi.ts` is
13
+ * untouched.
14
+ */
15
+ export interface BuiComment {
16
+ id: string;
17
+ authorId: string;
18
+ authorType: string;
19
+ content: {
20
+ text: string | null;
21
+ markdown: string | null;
22
+ };
23
+ createdAt: string;
24
+ edited: boolean;
25
+ parentCommentId: string | null;
26
+ replyCount: number;
27
+ }
28
+ /** Top-level (root) comments for an Buildmyiq entity, oldest first. */
29
+ export declare const useBuiComments: (entityType: string, entityId: string | undefined) => import('@tanstack/react-query').UseQueryResult<{
30
+ items: BuiComment[];
31
+ total: number;
32
+ }, Error>;
33
+ export declare const useEcoCreateComment: (entityType: string, entityId: string) => import('@tanstack/react-query').UseMutationResult<{
34
+ id: string;
35
+ }, Error, string, unknown>;
36
+ //# sourceMappingURL=useBuiComments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBuiComments.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/hooks/useBuiComments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAKD,uEAAuE;AACvE,eAAO,MAAM,cAAc,GAAI,YAAY,MAAM,EAAE,UAAU,MAAM,GAAG,SAAS;;;SAwC9E,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,YAAY,MAAM,EAAE,UAAU,MAAM;QAKN,MAAM;0BAmBvE,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Buildmyiq — wspace-files-svc REUSE hooks (Integration A).
3
+ * @module buildmyiq/hooks/useBuiFiles
4
+ *
5
+ * Reuses the platform file store (`wspace-files-svc`) WITHOUT any buildmyiq-svc
6
+ * change: the buildmyiq schema already exposes `BuiLesson.mediaFileId` /
7
+ * `BuiCertificate.fileId`; this module lets the UI actually produce a `fileId` via
8
+ * the canonical 3-step upload flow composed into the WORKSPACE supergraph:
9
+ * 1. `initiateUpload(input)` → `{ uploadUrl, session { id } }`
10
+ * 2. HTTP `PUT` the bytes to the returned signed `uploadUrl`
11
+ * 3. `completeUpload(input: { sessionId })` → `{ fileId }`
12
+ * plus `getFile(id)` to resolve an existing evidence/report file's name + URL.
13
+ *
14
+ * Transport mirrors `useBuildmyiqApi` exactly — `graphqlFetch({ gateway:
15
+ * 'workspace', workspaceToken: true })` — so no ApolloProvider is required.
16
+ * These hooks live in a SEPARATE file by design; `useBuildmyiqApi.ts` is
17
+ * left untouched.
18
+ */
19
+ /** Execute a workspace-gateway GraphQL operation with the workspace token. */
20
+ export declare const wspaceFetch: <TData>(query: string, variables: Record<string, unknown>, baseUrl?: string) => Promise<TData>;
21
+ export interface UploadedBuiFile {
22
+ fileId: string;
23
+ fileName: string;
24
+ }
25
+ export interface UseBuiFileUploadResult {
26
+ upload: (file: File) => Promise<UploadedBuiFile>;
27
+ isUploading: boolean;
28
+ /** 0–100 byte-progress of the signed-URL PUT. */
29
+ progress: number;
30
+ error: string | null;
31
+ reset: () => void;
32
+ }
33
+ /**
34
+ * Imperative upload hook: `await upload(file)` runs the platform 3-step flow and
35
+ * resolves to `{ fileId, fileName }`. `fileId` is what the buildmyiq mutations accept
36
+ * (`buiCreateCourse.coverFileId`, `buiIssueCertificate.fileId`).
37
+ */
38
+ export declare const useBuiFileUpload: () => UseBuiFileUploadResult;
39
+ export interface BuiFileMeta {
40
+ id: string;
41
+ name: string;
42
+ downloadUrl: string | null;
43
+ mimeType: string;
44
+ size: string;
45
+ }
46
+ export declare const useEcoFile: (id: string | null | undefined) => import('@tanstack/react-query').UseQueryResult<BuiFileMeta | null, Error>;
47
+ //# sourceMappingURL=useBuiFiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBuiFiles.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/hooks/useBuiFiles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AA8BH,8EAA8E;AAC9E,eAAO,MAAM,WAAW,GAAU,KAAK,EACrC,OAAO,MAAM,EACb,WAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,UAAU,MAAM,KACf,OAAO,CAAC,KAAK,CAmBf,CAAC;AAMF,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AA+BD,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACjD,WAAW,EAAE,OAAO,CAAC;IACrB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAAO,sBAoFnC,CAAC;AAMF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,UAAU,GAAI,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS,8EAsBvD,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Buildmyiq — wspace-tags-svc UniversalTag REUSE hooks (Integration C).
3
+ * @module buildmyiq/hooks/useBuiTags
4
+ *
5
+ * The buildmyiq svc does NOT expose a tags field, so we drive the platform tag
6
+ * assignment store directly (approach (b) in the reuse audit) — no buildmyiq-svc
7
+ * change. All operations are composed into the WORKSPACE supergraph:
8
+ * - `getEntityTags(entityType, entityId)` → current assignments (display)
9
+ * - `searchTags(query)` → pick an existing tag
10
+ * - `createTag(input)` → create a new tag (needs a vocabulary)
11
+ * - `assignTag(input)` → link tag ↔ entity
12
+ * - `removeTagAssignment(id)` → unlink
13
+ *
14
+ * `createTag` requires a `vocabularyId`; we resolve a stable, workspace-scoped
15
+ * "buildmyiq" vocabulary (`getVocabularyByKey`, creating it on first use).
16
+ *
17
+ * Transport reuses `wspaceFetch` from `useBuiFiles`. Lives in a separate file;
18
+ * `useBuildmyiqApi.ts` is untouched.
19
+ */
20
+ export interface BuiTag {
21
+ id: string;
22
+ label: string;
23
+ color: string | null;
24
+ key: string;
25
+ }
26
+ export interface BuiTagAssignment {
27
+ id: string;
28
+ tag: BuiTag;
29
+ }
30
+ /** Current tag assignments for an Buildmyiq entity. */
31
+ export declare const useEcoEntityTags: (entityType: string, entityId: string | undefined) => import('@tanstack/react-query').UseQueryResult<BuiTagAssignment[], Error>;
32
+ /** Search existing tags (enabled only for a non-empty query). */
33
+ export declare const useEcoTagSearch: (query: string) => import('@tanstack/react-query').UseQueryResult<BuiTag[], Error>;
34
+ /** Assign an existing tag to the entity. */
35
+ export declare const useEcoAssignTag: (entityType: string, entityId: string) => import('@tanstack/react-query').UseMutationResult<{
36
+ id: string;
37
+ }, Error, string, unknown>;
38
+ /** Remove a tag assignment by its assignment id. */
39
+ export declare const useEcoRemoveTagAssignment: (entityType: string, entityId: string) => import('@tanstack/react-query').UseMutationResult<boolean, Error, string, unknown>;
40
+ /** Create a new tag from a free-text label and assign it to the entity. */
41
+ export declare const useEcoCreateAndAssignTag: (entityType: string, entityId: string) => import('@tanstack/react-query').UseMutationResult<{
42
+ id: string;
43
+ }, Error, string, unknown>;
44
+ //# sourceMappingURL=useBuiTags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBuiTags.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/hooks/useBuiTags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAOH,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb;AAiBD,uDAAuD;AACvD,eAAO,MAAM,gBAAgB,GAAI,YAAY,MAAM,EAAE,UAAU,MAAM,GAAG,SAAS,8EAmBhF,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,oEAiB5C,CAAC;AAEF,4CAA4C;AAC5C,eAAO,MAAM,eAAe,GAAI,YAAY,MAAM,EAAE,UAAU,MAAM;QAKZ,MAAM;0BAW7D,CAAC;AAEF,oDAAoD;AACpD,eAAO,MAAM,yBAAyB,GAAI,YAAY,MAAM,EAAE,UAAU,MAAM,uFAgB7E,CAAC;AA+BF,2EAA2E;AAC3E,eAAO,MAAM,wBAAwB,GAAI,YAAY,MAAM,EAAE,UAAU,MAAM;QAalB,MAAM;0BAkBhE,CAAC"}