@fluid-app/rep-core 0.1.13 → 0.1.15
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/chunk-CKQMccvm.cjs +28 -0
- package/dist/data-sources/DataAwareWidget.cjs +47 -56
- package/dist/data-sources/DataAwareWidget.cjs.map +1 -1
- package/dist/data-sources/DataAwareWidget.d.cts +27 -19
- package/dist/data-sources/DataAwareWidget.d.cts.map +1 -0
- package/dist/data-sources/DataAwareWidget.d.mts +38 -0
- package/dist/data-sources/DataAwareWidget.d.mts.map +1 -0
- package/dist/data-sources/DataAwareWidget.mjs +48 -0
- package/dist/data-sources/DataAwareWidget.mjs.map +1 -0
- package/dist/data-sources/ErrorState.cjs +18 -10
- package/dist/data-sources/ErrorState.cjs.map +1 -1
- package/dist/data-sources/ErrorState.d.cts +5 -3
- package/dist/data-sources/ErrorState.d.cts.map +1 -0
- package/dist/data-sources/ErrorState.d.mts +7 -0
- package/dist/data-sources/ErrorState.d.mts.map +1 -0
- package/dist/data-sources/ErrorState.mjs +18 -0
- package/dist/data-sources/ErrorState.mjs.map +1 -0
- package/dist/data-sources/context.cjs +22 -14
- package/dist/data-sources/context.cjs.map +1 -1
- package/dist/data-sources/context.d.cts +16 -10
- package/dist/data-sources/context.d.cts.map +1 -0
- package/dist/data-sources/context.d.mts +22 -0
- package/dist/data-sources/context.d.mts.map +1 -0
- package/dist/data-sources/context.mjs +21 -0
- package/dist/data-sources/context.mjs.map +1 -0
- package/dist/data-sources/fetchers/api.cjs +63 -10
- package/dist/data-sources/fetchers/api.cjs.map +1 -1
- package/dist/data-sources/fetchers/api.d.cts +4 -2
- package/dist/data-sources/fetchers/api.d.cts.map +1 -0
- package/dist/data-sources/fetchers/api.d.mts +10 -0
- package/dist/data-sources/fetchers/api.d.mts.map +1 -0
- package/dist/data-sources/fetchers/api.mjs +64 -0
- package/dist/data-sources/fetchers/api.mjs.map +1 -0
- package/dist/data-sources/fetchers/custom.cjs +106 -10
- package/dist/data-sources/fetchers/custom.cjs.map +1 -1
- package/dist/data-sources/fetchers/custom.d.cts +4 -2
- package/dist/data-sources/fetchers/custom.d.cts.map +1 -0
- package/dist/data-sources/fetchers/{custom.d.ts → custom.d.mts} +4 -2
- package/dist/data-sources/fetchers/custom.d.mts.map +1 -0
- package/dist/data-sources/fetchers/custom.mjs +107 -0
- package/dist/data-sources/fetchers/custom.mjs.map +1 -0
- package/dist/data-sources/fetchers/static.cjs +159 -14
- package/dist/data-sources/fetchers/static.cjs.map +1 -1
- package/dist/data-sources/fetchers/static.d.cts +12 -10
- package/dist/data-sources/fetchers/static.d.cts.map +1 -0
- package/dist/data-sources/fetchers/{static.d.ts → static.d.mts} +12 -10
- package/dist/data-sources/fetchers/static.d.mts.map +1 -0
- package/dist/data-sources/fetchers/static.mjs +158 -0
- package/dist/data-sources/fetchers/static.mjs.map +1 -0
- package/dist/data-sources/preview-context.cjs +15 -15
- package/dist/data-sources/preview-context.cjs.map +1 -1
- package/dist/data-sources/preview-context.d.cts +10 -6
- package/dist/data-sources/preview-context.d.cts.map +1 -0
- package/dist/data-sources/preview-context.d.mts +15 -0
- package/dist/data-sources/preview-context.d.mts.map +1 -0
- package/dist/data-sources/preview-context.mjs +18 -0
- package/dist/data-sources/preview-context.mjs.map +1 -0
- package/dist/data-sources/registry-context.cjs +51 -24
- package/dist/data-sources/registry-context.cjs.map +1 -1
- package/dist/data-sources/registry-context.d.cts +30 -22
- package/dist/data-sources/registry-context.d.cts.map +1 -0
- package/dist/data-sources/registry-context.d.mts +49 -0
- package/dist/data-sources/registry-context.d.mts.map +1 -0
- package/dist/data-sources/registry-context.mjs +49 -0
- package/dist/data-sources/registry-context.mjs.map +1 -0
- package/dist/data-sources/registry.cjs +29 -18
- package/dist/data-sources/registry.cjs.map +1 -1
- package/dist/data-sources/registry.d.cts +9 -7
- package/dist/data-sources/registry.d.cts.map +1 -0
- package/dist/data-sources/registry.d.mts +19 -0
- package/dist/data-sources/registry.d.mts.map +1 -0
- package/dist/data-sources/registry.mjs +29 -0
- package/dist/data-sources/registry.mjs.map +1 -0
- package/dist/data-sources/transformers.cjs +152 -10
- package/dist/data-sources/transformers.cjs.map +1 -1
- package/dist/data-sources/transformers.d.cts +4 -17
- package/dist/data-sources/transformers.d.cts.map +1 -0
- package/dist/data-sources/transformers.d.mts +10 -0
- package/dist/data-sources/transformers.d.mts.map +1 -0
- package/dist/data-sources/transformers.mjs +153 -0
- package/dist/data-sources/transformers.mjs.map +1 -0
- package/dist/data-sources/types.cjs +0 -4
- package/dist/data-sources/types.d.cts +2 -157
- package/dist/data-sources/types.d.mts +2 -0
- package/dist/data-sources/types.mjs +1 -0
- package/dist/data-sources/use-widget-data.cjs +109 -17
- package/dist/data-sources/use-widget-data.cjs.map +1 -1
- package/dist/data-sources/use-widget-data.d.cts +9 -8
- package/dist/data-sources/use-widget-data.d.cts.map +1 -0
- package/dist/data-sources/use-widget-data.d.mts +17 -0
- package/dist/data-sources/use-widget-data.d.mts.map +1 -0
- package/dist/data-sources/use-widget-data.mjs +109 -0
- package/dist/data-sources/use-widget-data.mjs.map +1 -0
- package/dist/index-Bxe_LIi8.d.cts +287 -0
- package/dist/index-Bxe_LIi8.d.cts.map +1 -0
- package/dist/index-CCAu2n19.d.mts +287 -0
- package/dist/index-CCAu2n19.d.mts.map +1 -0
- package/dist/registries/index.cjs +212 -127
- package/dist/registries/index.cjs.map +1 -1
- package/dist/registries/index.d.cts +146 -149
- package/dist/registries/index.d.cts.map +1 -0
- package/dist/registries/{index.d.ts → index.d.mts} +146 -149
- package/dist/registries/index.d.mts.map +1 -0
- package/dist/registries/index.mjs +229 -0
- package/dist/registries/index.mjs.map +1 -0
- package/dist/shell/AppShellLayout.cjs +47 -12
- package/dist/shell/AppShellLayout.cjs.map +1 -1
- package/dist/shell/AppShellLayout.d.cts +29 -19
- package/dist/shell/AppShellLayout.d.cts.map +1 -0
- package/dist/shell/AppShellLayout.d.mts +40 -0
- package/dist/shell/AppShellLayout.d.mts.map +1 -0
- package/dist/shell/AppShellLayout.mjs +46 -0
- package/dist/{chunk-45BCVWQK.cjs.map → shell/AppShellLayout.mjs.map} +1 -1
- package/dist/shell/ScreenHeader.cjs +44 -0
- package/dist/shell/ScreenHeader.cjs.map +1 -0
- package/dist/shell/ScreenHeader.d.cts +12 -0
- package/dist/shell/ScreenHeader.d.cts.map +1 -0
- package/dist/shell/ScreenHeader.d.mts +12 -0
- package/dist/shell/ScreenHeader.d.mts.map +1 -0
- package/dist/shell/ScreenHeader.mjs +42 -0
- package/dist/shell/ScreenHeader.mjs.map +1 -0
- package/dist/shell/ScreenHeaderContext.cjs +91 -0
- package/dist/shell/ScreenHeaderContext.cjs.map +1 -0
- package/dist/shell/ScreenHeaderContext.d.cts +36 -0
- package/dist/shell/ScreenHeaderContext.d.cts.map +1 -0
- package/dist/shell/ScreenHeaderContext.d.mts +36 -0
- package/dist/shell/ScreenHeaderContext.d.mts.map +1 -0
- package/dist/shell/ScreenHeaderContext.mjs +86 -0
- package/dist/shell/ScreenHeaderContext.mjs.map +1 -0
- package/dist/shell/ThemeModeContext.cjs +68 -18
- package/dist/shell/ThemeModeContext.cjs.map +1 -1
- package/dist/shell/ThemeModeContext.d.cts +23 -16
- package/dist/shell/ThemeModeContext.d.cts.map +1 -0
- package/dist/shell/ThemeModeContext.d.mts +34 -0
- package/dist/shell/ThemeModeContext.d.mts.map +1 -0
- package/dist/shell/ThemeModeContext.mjs +66 -0
- package/dist/shell/ThemeModeContext.mjs.map +1 -0
- package/dist/shell/index.cjs +43 -205
- package/dist/shell/index.d.cts +7 -43
- package/dist/shell/index.d.mts +7 -0
- package/dist/shell/index.mjs +7 -0
- package/dist/shell/sidebar.cjs +372 -87
- package/dist/shell/sidebar.cjs.map +1 -1
- package/dist/shell/sidebar.d.cts +38 -36
- package/dist/shell/sidebar.d.cts.map +1 -0
- package/dist/shell/{sidebar.d.ts → sidebar.d.mts} +38 -36
- package/dist/shell/sidebar.d.mts.map +1 -0
- package/dist/shell/sidebar.mjs +364 -0
- package/dist/{chunk-PFDBULOI.cjs.map → shell/sidebar.mjs.map} +1 -1
- package/dist/shell/use-mobile.cjs +49 -18
- package/dist/shell/use-mobile.cjs.map +1 -1
- package/dist/shell/use-mobile.d.cts +3 -1
- package/dist/shell/use-mobile.d.cts.map +1 -0
- package/dist/shell/{use-mobile.d.ts → use-mobile.d.mts} +3 -1
- package/dist/shell/use-mobile.d.mts.map +1 -0
- package/dist/shell/use-mobile.mjs +47 -0
- package/dist/shell/use-mobile.mjs.map +1 -0
- package/dist/theme/index.cjs +662 -549
- package/dist/theme/index.cjs.map +1 -1
- package/dist/theme/index.d.cts +32 -32
- package/dist/theme/index.d.cts.map +1 -0
- package/dist/theme/{index.d.ts → index.d.mts} +32 -32
- package/dist/theme/index.d.mts.map +1 -0
- package/dist/theme/index.mjs +727 -0
- package/dist/theme/index.mjs.map +1 -0
- package/dist/types/index.cjs +18 -72
- package/dist/types/index.d.cts +4 -268
- package/dist/types/index.d.mts +4 -0
- package/dist/types/index.mjs +2 -0
- package/dist/types-BIXtQlHB.d.cts +155 -0
- package/dist/types-BIXtQlHB.d.cts.map +1 -0
- package/dist/types-BXFX9bXp.cjs +303 -0
- package/dist/types-BXFX9bXp.cjs.map +1 -0
- package/dist/types-Bjmd7Fdx.mjs +208 -0
- package/dist/types-Bjmd7Fdx.mjs.map +1 -0
- package/dist/types-ByG6Xy3C.d.mts +85 -0
- package/dist/types-ByG6Xy3C.d.mts.map +1 -0
- package/dist/types-C5OFJy-O.d.mts +155 -0
- package/dist/types-C5OFJy-O.d.mts.map +1 -0
- package/dist/types-Ctu-Zio6.d.cts +85 -0
- package/dist/types-Ctu-Zio6.d.cts.map +1 -0
- package/dist/{widget-schema-D-ca3--K.d.ts → widget-schema--PY1uMWx.d.cts} +38 -41
- package/dist/widget-schema--PY1uMWx.d.cts.map +1 -0
- package/dist/{widget-schema-DvJdg1-B.d.cts → widget-schema-YkD5p3v4.d.mts} +38 -41
- package/dist/widget-schema-YkD5p3v4.d.mts.map +1 -0
- package/dist/widget-utils/index.cjs +96 -89
- package/dist/widget-utils/index.cjs.map +1 -1
- package/dist/widget-utils/index.d.cts +8 -6
- package/dist/widget-utils/index.d.cts.map +1 -0
- package/dist/widget-utils/{index.d.ts → index.d.mts} +8 -6
- package/dist/widget-utils/index.d.mts.map +1 -0
- package/dist/widget-utils/index.mjs +119 -0
- package/dist/widget-utils/index.mjs.map +1 -0
- package/package.json +4 -4
- package/dist/chunk-2SPTFZRC.js +0 -72
- package/dist/chunk-2SPTFZRC.js.map +0 -1
- package/dist/chunk-3I5Y3PEO.js +0 -23
- package/dist/chunk-3I5Y3PEO.js.map +0 -1
- package/dist/chunk-3ZRE7GX6.js +0 -620
- package/dist/chunk-3ZRE7GX6.js.map +0 -1
- package/dist/chunk-45BCVWQK.cjs +0 -38
- package/dist/chunk-46PUWB7C.cjs +0 -69
- package/dist/chunk-46PUWB7C.cjs.map +0 -1
- package/dist/chunk-5NYM4UTW.cjs +0 -58
- package/dist/chunk-5NYM4UTW.cjs.map +0 -1
- package/dist/chunk-B2NTWEDF.cjs +0 -130
- package/dist/chunk-B2NTWEDF.cjs.map +0 -1
- package/dist/chunk-GDY76JA6.cjs +0 -153
- package/dist/chunk-GDY76JA6.cjs.map +0 -1
- package/dist/chunk-HGVSPZEL.cjs +0 -119
- package/dist/chunk-HGVSPZEL.cjs.map +0 -1
- package/dist/chunk-HIDJYVKJ.js +0 -54
- package/dist/chunk-HIDJYVKJ.js.map +0 -1
- package/dist/chunk-KTXGU7OP.cjs +0 -136
- package/dist/chunk-KTXGU7OP.cjs.map +0 -1
- package/dist/chunk-KW5E2H5T.js +0 -128
- package/dist/chunk-KW5E2H5T.js.map +0 -1
- package/dist/chunk-LBLHDGMT.js +0 -25
- package/dist/chunk-LBLHDGMT.js.map +0 -1
- package/dist/chunk-MNVDL4FX.js +0 -134
- package/dist/chunk-MNVDL4FX.js.map +0 -1
- package/dist/chunk-MOTOSPAO.cjs +0 -15
- package/dist/chunk-MOTOSPAO.cjs.map +0 -1
- package/dist/chunk-N2K6W7FX.cjs +0 -169
- package/dist/chunk-N2K6W7FX.cjs.map +0 -1
- package/dist/chunk-PFDBULOI.cjs +0 -665
- package/dist/chunk-PVTQWD4I.js +0 -166
- package/dist/chunk-PVTQWD4I.js.map +0 -1
- package/dist/chunk-SJQPHJL4.cjs +0 -26
- package/dist/chunk-SJQPHJL4.cjs.map +0 -1
- package/dist/chunk-TML66UEU.js +0 -13
- package/dist/chunk-TML66UEU.js.map +0 -1
- package/dist/chunk-U3CQLX2Z.cjs +0 -28
- package/dist/chunk-U3CQLX2Z.cjs.map +0 -1
- package/dist/chunk-UUNEVOA5.js +0 -36
- package/dist/chunk-UUNEVOA5.js.map +0 -1
- package/dist/chunk-VRF7QEID.js +0 -67
- package/dist/chunk-VRF7QEID.js.map +0 -1
- package/dist/chunk-VSZWXSQA.js +0 -38
- package/dist/chunk-VSZWXSQA.js.map +0 -1
- package/dist/chunk-WYOHFNNW.js +0 -117
- package/dist/chunk-WYOHFNNW.js.map +0 -1
- package/dist/chunk-YKF5ZFF5.js +0 -136
- package/dist/chunk-YKF5ZFF5.js.map +0 -1
- package/dist/chunk-YXJMBVXO.cjs +0 -76
- package/dist/chunk-YXJMBVXO.cjs.map +0 -1
- package/dist/chunk-ZA4AE7KF.cjs +0 -42
- package/dist/chunk-ZA4AE7KF.cjs.map +0 -1
- package/dist/data-sources/DataAwareWidget.d.ts +0 -30
- package/dist/data-sources/DataAwareWidget.js +0 -57
- package/dist/data-sources/DataAwareWidget.js.map +0 -1
- package/dist/data-sources/ErrorState.d.ts +0 -5
- package/dist/data-sources/ErrorState.js +0 -3
- package/dist/data-sources/ErrorState.js.map +0 -1
- package/dist/data-sources/context.d.ts +0 -16
- package/dist/data-sources/context.js +0 -3
- package/dist/data-sources/context.js.map +0 -1
- package/dist/data-sources/fetchers/api.d.ts +0 -8
- package/dist/data-sources/fetchers/api.js +0 -3
- package/dist/data-sources/fetchers/api.js.map +0 -1
- package/dist/data-sources/fetchers/custom.js +0 -3
- package/dist/data-sources/fetchers/custom.js.map +0 -1
- package/dist/data-sources/fetchers/static.js +0 -3
- package/dist/data-sources/fetchers/static.js.map +0 -1
- package/dist/data-sources/preview-context.d.ts +0 -11
- package/dist/data-sources/preview-context.js +0 -18
- package/dist/data-sources/preview-context.js.map +0 -1
- package/dist/data-sources/registry-context.d.ts +0 -41
- package/dist/data-sources/registry-context.js +0 -9
- package/dist/data-sources/registry-context.js.map +0 -1
- package/dist/data-sources/registry.d.ts +0 -17
- package/dist/data-sources/registry.js +0 -7
- package/dist/data-sources/registry.js.map +0 -1
- package/dist/data-sources/transformers.d.ts +0 -23
- package/dist/data-sources/transformers.js +0 -3
- package/dist/data-sources/transformers.js.map +0 -1
- package/dist/data-sources/types.cjs.map +0 -1
- package/dist/data-sources/types.d.ts +0 -157
- package/dist/data-sources/types.js +0 -3
- package/dist/data-sources/types.js.map +0 -1
- package/dist/data-sources/use-widget-data.d.ts +0 -16
- package/dist/data-sources/use-widget-data.js +0 -10
- package/dist/data-sources/use-widget-data.js.map +0 -1
- package/dist/registries/index.js +0 -144
- package/dist/registries/index.js.map +0 -1
- package/dist/shareable-item-DkgWpwoU.d.cts +0 -21
- package/dist/shareable-item-DkgWpwoU.d.ts +0 -21
- package/dist/shell/AppShellLayout.d.ts +0 -30
- package/dist/shell/AppShellLayout.js +0 -5
- package/dist/shell/AppShellLayout.js.map +0 -1
- package/dist/shell/ThemeModeContext.d.ts +0 -27
- package/dist/shell/ThemeModeContext.js +0 -3
- package/dist/shell/ThemeModeContext.js.map +0 -1
- package/dist/shell/index.cjs.map +0 -1
- package/dist/shell/index.d.ts +0 -43
- package/dist/shell/index.js +0 -76
- package/dist/shell/index.js.map +0 -1
- package/dist/shell/sidebar.js +0 -4
- package/dist/shell/sidebar.js.map +0 -1
- package/dist/shell/use-mobile.js +0 -3
- package/dist/shell/use-mobile.js.map +0 -1
- package/dist/theme/index.js +0 -611
- package/dist/theme/index.js.map +0 -1
- package/dist/types/index.cjs.map +0 -1
- package/dist/types/index.d.ts +0 -268
- package/dist/types/index.js +0 -3
- package/dist/types/index.js.map +0 -1
- package/dist/types-CNIhy4JD.d.cts +0 -83
- package/dist/types-CNIhy4JD.d.ts +0 -83
- package/dist/widget-utils/index.js +0 -111
- package/dist/widget-utils/index.js.map +0 -1
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
//#region src/data-sources/types.d.ts
|
|
2
|
+
type DataSourceType = "api" | "custom" | "static";
|
|
3
|
+
type StaticSourceType = "collections" | "categories" | "tags";
|
|
4
|
+
type ShareableType = "Medium" | "Page" | "EnrollmentPack" | "Library" | "Product";
|
|
5
|
+
interface SelectedItem {
|
|
6
|
+
/** The unique ID of the selected item */
|
|
7
|
+
id: string | number;
|
|
8
|
+
/** The type of shareable content */
|
|
9
|
+
shareableType: ShareableType;
|
|
10
|
+
/** Optional cached data for preview/display purposes in the editor UI */
|
|
11
|
+
cachedData?: {
|
|
12
|
+
title?: string;
|
|
13
|
+
imageUrl?: string;
|
|
14
|
+
kind?: string;
|
|
15
|
+
};
|
|
16
|
+
/** Widget-specific per-item configuration overrides */
|
|
17
|
+
widgetConfig?: Record<string, unknown>;
|
|
18
|
+
}
|
|
19
|
+
interface ApiDataSource {
|
|
20
|
+
type: "api";
|
|
21
|
+
/** API endpoint URL (can include {variable} placeholders, e.g., /api/reps/{rep_id}/items) */
|
|
22
|
+
endpoint: string;
|
|
23
|
+
/** HTTP method (defaults to GET) */
|
|
24
|
+
method?: "GET" | "POST" | "PUT" | "DELETE";
|
|
25
|
+
/** Request headers */
|
|
26
|
+
headers?: Record<string, string>;
|
|
27
|
+
/** Request body for POST/PUT (will be JSON.stringify'd) */
|
|
28
|
+
body?: unknown;
|
|
29
|
+
/**
|
|
30
|
+
* Path to extract from response using dot notation
|
|
31
|
+
* e.g., "data.items" extracts response.data.items
|
|
32
|
+
*/
|
|
33
|
+
resultPath?: string;
|
|
34
|
+
/**
|
|
35
|
+
* Which widget props this source populates
|
|
36
|
+
* e.g., ['data'] means the fetched result goes to props.data
|
|
37
|
+
*/
|
|
38
|
+
targetProps: string[];
|
|
39
|
+
/**
|
|
40
|
+
* Name of a registered transform function to process the data
|
|
41
|
+
* Transform is applied after resultPath extraction
|
|
42
|
+
*/
|
|
43
|
+
transform?: string;
|
|
44
|
+
/** Per-source variables for endpoint template interpolation (e.g., { limit: "10" }) */
|
|
45
|
+
variables?: Record<string, string>;
|
|
46
|
+
/**
|
|
47
|
+
* Auto-refresh interval in milliseconds
|
|
48
|
+
* 0 or undefined = no auto-refresh
|
|
49
|
+
*/
|
|
50
|
+
refreshInterval?: number;
|
|
51
|
+
}
|
|
52
|
+
interface CustomDataSource {
|
|
53
|
+
type: "custom";
|
|
54
|
+
/** Array of selected items to fetch */
|
|
55
|
+
selectedItems: SelectedItem[];
|
|
56
|
+
/**
|
|
57
|
+
* Which widget props this source populates
|
|
58
|
+
* e.g., ['slides'] means the fetched results go to props.slides
|
|
59
|
+
*/
|
|
60
|
+
targetProps: string[];
|
|
61
|
+
/**
|
|
62
|
+
* Name of a registered transform function to process the data
|
|
63
|
+
* Transform is applied after all items are fetched
|
|
64
|
+
*/
|
|
65
|
+
transform?: string;
|
|
66
|
+
/**
|
|
67
|
+
* Auto-refresh interval in milliseconds
|
|
68
|
+
* 0 or undefined = no auto-refresh
|
|
69
|
+
*/
|
|
70
|
+
refreshInterval?: number;
|
|
71
|
+
}
|
|
72
|
+
interface StaticDataSource {
|
|
73
|
+
type: "static";
|
|
74
|
+
/** The type of static data (collections, categories, tags) */
|
|
75
|
+
staticType: StaticSourceType;
|
|
76
|
+
/** The selected item ID */
|
|
77
|
+
selectedId: string | number;
|
|
78
|
+
/** Cached data for preview/display in editor UI */
|
|
79
|
+
cachedData?: {
|
|
80
|
+
title?: string;
|
|
81
|
+
imageUrl?: string;
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Which widget props this source populates
|
|
85
|
+
*/
|
|
86
|
+
targetProps: string[];
|
|
87
|
+
/**
|
|
88
|
+
* Name of a registered transform function to process the data
|
|
89
|
+
*/
|
|
90
|
+
transform?: string;
|
|
91
|
+
/**
|
|
92
|
+
* Auto-refresh interval in milliseconds
|
|
93
|
+
* 0 or undefined = no auto-refresh
|
|
94
|
+
*/
|
|
95
|
+
refreshInterval?: number;
|
|
96
|
+
}
|
|
97
|
+
type DataSource = ApiDataSource | CustomDataSource | StaticDataSource;
|
|
98
|
+
interface DataSourceConfig {
|
|
99
|
+
/** Array of data sources (usually just one, but supports multiple) */
|
|
100
|
+
sources: DataSource[];
|
|
101
|
+
/** Loading state configuration */
|
|
102
|
+
loading?: {
|
|
103
|
+
/** Show skeleton placeholder while loading (default: true) */showSkeleton?: boolean;
|
|
104
|
+
};
|
|
105
|
+
/** Error handling configuration */
|
|
106
|
+
error?: {
|
|
107
|
+
/** Fallback props to use when fetch fails */fallback?: Record<string, unknown>; /** Number of retry attempts (default: 0) */
|
|
108
|
+
retryCount?: number; /** Delay between retries in ms (default: 1000) */
|
|
109
|
+
retryDelay?: number;
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
/** Item returned by static data fetchers */
|
|
113
|
+
interface StaticItem {
|
|
114
|
+
id: string | number;
|
|
115
|
+
title: string;
|
|
116
|
+
imageUrl?: string | undefined;
|
|
117
|
+
}
|
|
118
|
+
/** Context passed to fetchers and transforms */
|
|
119
|
+
interface DataSourceContext {
|
|
120
|
+
/** The widget's unique ID */
|
|
121
|
+
widgetId: string;
|
|
122
|
+
/** The widget type (e.g., "ChartWidget") */
|
|
123
|
+
widgetType: string;
|
|
124
|
+
/** AbortSignal for request cancellation */
|
|
125
|
+
signal: AbortSignal;
|
|
126
|
+
/** Base URL for API calls (e.g., "https://api.fluid.app/api") */
|
|
127
|
+
baseUrl?: string | undefined;
|
|
128
|
+
/** Get API headers function */
|
|
129
|
+
getApiHeaders?: (() => Record<string, string>) | undefined;
|
|
130
|
+
/** Dynamic variables for endpoint path substitution (e.g., { rep_id: "123" }) */
|
|
131
|
+
variables?: Record<string, string> | undefined;
|
|
132
|
+
}
|
|
133
|
+
/** Function signature for data fetchers */
|
|
134
|
+
type DataFetcher<T extends DataSource = DataSource> = (source: T, context: DataSourceContext) => Promise<unknown>;
|
|
135
|
+
/** Function signature for data transforms */
|
|
136
|
+
type DataTransformer = (data: unknown, source?: DataSource, context?: DataSourceContext) => unknown;
|
|
137
|
+
/** The data source registry configuration */
|
|
138
|
+
interface DataSourceRegistry {
|
|
139
|
+
fetchers: Record<DataSourceType, DataFetcher>;
|
|
140
|
+
transformers: Record<string, DataTransformer>;
|
|
141
|
+
}
|
|
142
|
+
/** Result from useWidgetData hook */
|
|
143
|
+
interface WidgetDataResult<T = unknown> {
|
|
144
|
+
/** The resolved data (undefined while loading) */
|
|
145
|
+
data: T | undefined;
|
|
146
|
+
/** True while any source is loading */
|
|
147
|
+
isLoading: boolean;
|
|
148
|
+
/** Error if any source failed */
|
|
149
|
+
error: Error | null;
|
|
150
|
+
/** Manually trigger a refetch */
|
|
151
|
+
refetch: () => void;
|
|
152
|
+
}
|
|
153
|
+
//#endregion
|
|
154
|
+
export { DataSourceConfig as a, DataSourceType as c, ShareableType as d, StaticDataSource as f, WidgetDataResult as h, DataSource as i, DataTransformer as l, StaticSourceType as m, CustomDataSource as n, DataSourceContext as o, StaticItem as p, DataFetcher as r, DataSourceRegistry as s, ApiDataSource as t, SelectedItem as u };
|
|
155
|
+
//# sourceMappingURL=types-C5OFJy-O.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-C5OFJy-O.d.mts","names":[],"sources":["../src/data-sources/types.ts"],"mappings":";KACY,cAAA;AAAA,KAGA,gBAAA;AAAA,KAGA,aAAA;AAAA,UAQK,YAAA;EAdS;EAgBxB,EAAA;EAbU;EAeV,aAAA,EAAe,aAAA;;EAEf,UAAA;IACE,KAAA;IACA,QAAA;IACA,IAAA;EAAA;EAjBqB;EAoBvB,YAAA,GAAe,MAAA;AAAA;AAAA,UAGA,aAAA;EACf,IAAA;EAJqB;EAMrB,QAAA;EAdA;EAgBA,MAAA;EAdA;EAgBA,OAAA,GAAU,MAAA;EAdR;EAgBF,IAAA;EAZA;;;;EAiBA,UAAA;EAd4B;;;;EAmB5B,WAAA;EAdA;;;;EAmBA,SAAA;EALA;EAOA,SAAA,GAAY,MAAA;EAAZ;;;;EAKA,eAAA;AAAA;AAAA,UAGe,gBAAA;EACf,IAAA;EAE2B;EAA3B,aAAA,EAAe,YAAA;EAAf;;;;EAKA,WAAA;EAUe;;AAGjB;;EARE,SAAA;EAW4B;;;;EAN5B,eAAA;AAAA;AAAA,UAGe,gBAAA;EACf,IAAA;EAaA;EAXA,UAAA,EAAY,gBAAA;EAoBZ;EAlBA,UAAA;EAkBe;EAhBf,UAAA;IACE,KAAA;IACA,QAAA;EAAA;EAkBqC;;;EAbvC,WAAA;EAauB;;;EATvB,SAAA;EAS0E;AAE5E;;;EANE,eAAA;AAAA;AAAA,KAIU,UAAA,GAAa,aAAA,GAAgB,gBAAA,GAAmB,gBAAA;AAAA,UAE3C,gBAAA;EAMb;EAJF,OAAA,EAAS,UAAA;EASP;EAPF,OAAA;IASE,8DAPA,YAAA;EAAA;EASU;EANZ,KAAA;IAWyB,6CATvB,QAAA,GAAW,MAAA,mBASY;IAPvB,UAAA,WASF;IAPE,UAAA;EAAA;AAAA;AAgBJ;AAAA,UAXiB,UAAA;EACf,EAAA;EACA,KAAA;EACA,QAAA;AAAA;;UAQe,iBAAA;EAEf;EAAA,QAAA;EAIA;EAFA,UAAA;EAIA;EAFA,MAAA,EAAQ,WAAA;EAIe;EAFvB,OAAA;EAIY;EAFZ,aAAA,UAAuB,MAAA;EAEL;EAAlB,SAAA,GAAY,MAAA;AAAA;;KAIF,WAAA,WAAsB,UAAA,GAAa,UAAA,KAC7C,MAAA,EAAQ,CAAA,EACR,OAAA,EAAS,iBAAA,KACN,OAAA;;KAGO,eAAA,IACV,IAAA,WACA,MAAA,GAAS,UAAA,EACT,OAAA,GAAU,iBAAA;;UAIK,kBAAA;EACf,QAAA,EAAU,MAAA,CAAO,cAAA,EAAgB,WAAA;EACjC,YAAA,EAAc,MAAA,SAAe,eAAA;AAAA;;UAId,gBAAA;EAlBP;EAoBR,IAAA,EAAM,CAAA;EAnBG;EAqBT,SAAA;EApBG;EAsBH,KAAA,EAAO,KAAA;EAtBG;EAwBV,OAAA;AAAA"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import Color from "colorjs.io";
|
|
2
|
+
|
|
3
|
+
//#region src/theme/types.d.ts
|
|
4
|
+
declare const SEMANTIC_COLOR_NAMES: readonly ["background", "foreground", "primary", "secondary", "accent", "muted", "destructive"];
|
|
5
|
+
type SemanticColorName = (typeof SEMANTIC_COLOR_NAMES)[number];
|
|
6
|
+
declare const SHADE_STEPS: readonly [100, 200, 300, 400, 500, 600, 700, 800, 900];
|
|
7
|
+
type ShadeStep = (typeof SHADE_STEPS)[number];
|
|
8
|
+
declare const FONT_SIZE_KEYS: readonly ["extraSmall", "small", "regular", "large", "extraLarge", "giant"];
|
|
9
|
+
type FontSizeKey = (typeof FONT_SIZE_KEYS)[number];
|
|
10
|
+
declare const FONT_FAMILY_KEYS: readonly ["header", "body"];
|
|
11
|
+
type FontFamilyKey = (typeof FONT_FAMILY_KEYS)[number];
|
|
12
|
+
declare const RADIUS_KEYS: readonly ["small", "medium", "large", "extraLarge"];
|
|
13
|
+
type RadiusKey = (typeof RADIUS_KEYS)[number];
|
|
14
|
+
/** Author-time color input (what the user configures) */
|
|
15
|
+
interface ThemeColorInput {
|
|
16
|
+
base: Color;
|
|
17
|
+
foreground: Color;
|
|
18
|
+
}
|
|
19
|
+
/** Complete theme definition — stored in-memory with Color objects */
|
|
20
|
+
interface ThemeDefinition {
|
|
21
|
+
id: string;
|
|
22
|
+
name: string;
|
|
23
|
+
/** Light mode — always fully specified */
|
|
24
|
+
light: Record<SemanticColorName, ThemeColorInput>;
|
|
25
|
+
/**
|
|
26
|
+
* Dark mode — only user-overridden colors.
|
|
27
|
+
* Missing keys are auto-derived from `light` at resolve time.
|
|
28
|
+
*/
|
|
29
|
+
dark: Partial<Record<SemanticColorName, Partial<ThemeColorInput>>>;
|
|
30
|
+
fontSizes: Record<FontSizeKey, string>;
|
|
31
|
+
fontFamilies: Record<FontFamilyKey, string>;
|
|
32
|
+
spacing: string;
|
|
33
|
+
radii: Record<RadiusKey, string>;
|
|
34
|
+
/** When true, theme colors are re-derived from brand guidelines on every load */
|
|
35
|
+
syncWithBrandColors?: boolean;
|
|
36
|
+
}
|
|
37
|
+
/** Resolved semantic color with generated shade ramp */
|
|
38
|
+
interface ResolvedSemanticColor {
|
|
39
|
+
base: Color;
|
|
40
|
+
foreground: Color;
|
|
41
|
+
shades: Record<ShadeStep, Color>;
|
|
42
|
+
}
|
|
43
|
+
/** Complete resolved color set for one mode */
|
|
44
|
+
type ResolvedColorSet = Record<SemanticColorName, ResolvedSemanticColor>;
|
|
45
|
+
/** Fully resolved theme — all colors materialised for both modes */
|
|
46
|
+
interface ResolvedTheme {
|
|
47
|
+
id: string;
|
|
48
|
+
name: string;
|
|
49
|
+
light: ResolvedColorSet;
|
|
50
|
+
dark: ResolvedColorSet;
|
|
51
|
+
fontSizes: ThemeDefinition["fontSizes"];
|
|
52
|
+
fontFamilies: ThemeDefinition["fontFamilies"];
|
|
53
|
+
spacing: string;
|
|
54
|
+
radii: ThemeDefinition["radii"];
|
|
55
|
+
}
|
|
56
|
+
/** Plain OKLCH triplet for JSON serialisation (no Color dependency) */
|
|
57
|
+
interface OklchPlain {
|
|
58
|
+
l: number;
|
|
59
|
+
c: number;
|
|
60
|
+
h: number;
|
|
61
|
+
}
|
|
62
|
+
/** Serialised color pair as stored in the backend payload */
|
|
63
|
+
interface ThemeColorPlain {
|
|
64
|
+
base: OklchPlain;
|
|
65
|
+
foreground: OklchPlain;
|
|
66
|
+
}
|
|
67
|
+
/** Backend payload — plain JSON, no Color objects */
|
|
68
|
+
interface ThemePayload {
|
|
69
|
+
[key: string]: unknown;
|
|
70
|
+
id: string;
|
|
71
|
+
name: string;
|
|
72
|
+
light: Record<SemanticColorName, ThemeColorPlain>;
|
|
73
|
+
dark: Partial<Record<SemanticColorName, {
|
|
74
|
+
base?: OklchPlain;
|
|
75
|
+
foreground?: OklchPlain;
|
|
76
|
+
}>>;
|
|
77
|
+
fontSizes: Record<FontSizeKey, string>;
|
|
78
|
+
fontFamilies: Record<FontFamilyKey, string>;
|
|
79
|
+
spacing: string;
|
|
80
|
+
radii: Record<RadiusKey, string>;
|
|
81
|
+
syncWithBrandColors?: boolean;
|
|
82
|
+
}
|
|
83
|
+
//#endregion
|
|
84
|
+
export { ThemeDefinition as _, OklchPlain as a, ResolvedColorSet as c, SEMANTIC_COLOR_NAMES as d, SHADE_STEPS as f, ThemeColorPlain as g, ThemeColorInput as h, FontSizeKey as i, ResolvedSemanticColor as l, ShadeStep as m, FONT_SIZE_KEYS as n, RADIUS_KEYS as o, SemanticColorName as p, FontFamilyKey as r, RadiusKey as s, FONT_FAMILY_KEYS as t, ResolvedTheme as u, ThemePayload as v };
|
|
85
|
+
//# sourceMappingURL=types-Ctu-Zio6.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-Ctu-Zio6.d.cts","names":[],"sources":["../src/theme/types.ts"],"mappings":";;;cAGa,oBAAA;AAAA,KASD,iBAAA,WAA4B,oBAAA;AAAA,cAE3B,WAAA;AAAA,KAGD,SAAA,WAAoB,WAAA;AAAA,cAEnB,cAAA;AAAA,KAQD,WAAA,WAAsB,cAAA;AAAA,cAErB,gBAAA;AAAA,KACD,aAAA,WAAwB,gBAAA;AAAA,cAEvB,WAAA;AAAA,KACD,SAAA,WAAoB,WAAA;;UAGf,eAAA;EACf,IAAA,EAAM,KAAA;EACN,UAAA,EAAY,KAAA;AAAA;;UAIG,eAAA;EACf,EAAA;EACA,IAAA;;EAEA,KAAA,EAAO,MAAA,CAAO,iBAAA,EAAmB,eAAA;EA7BQ;AAE3C;;;EAgCE,IAAA,EAAM,OAAA,CAAQ,MAAA,CAAO,iBAAA,EAAmB,OAAA,CAAQ,eAAA;EAChD,SAAA,EAAW,MAAA,CAAO,WAAA;EAClB,YAAA,EAAc,MAAA,CAAO,aAAA;EACrB,OAAA;EACA,KAAA,EAAO,MAAA,CAAO,SAAA;EA5BkB;EA8BhC,mBAAA;AAAA;;UAIe,qBAAA;EACf,IAAA,EAAM,KAAA;EACN,UAAA,EAAY,KAAA;EACZ,MAAA,EAAQ,MAAA,CAAO,SAAA,EAAW,KAAA;AAAA;;KAIhB,gBAAA,GAAmB,MAAA,CAAO,iBAAA,EAAmB,qBAAA;;UAGxC,aAAA;EACf,EAAA;EACA,IAAA;EACA,KAAA,EAAO,gBAAA;EACP,IAAA,EAAM,gBAAA;EACN,SAAA,EAAW,eAAA;EACX,YAAA,EAAc,eAAA;EACd,OAAA;EACA,KAAA,EAAO,eAAA;AAAA;AA3CT;AAAA,UA+CiB,UAAA;EACf,CAAA;EACA,CAAA;EACA,CAAA;AAAA;;UAIe,eAAA;EACf,IAAA,EAAM,UAAA;EACN,UAAA,EAAY,UAAA;AAAA;;UAIG,YAAA;EAAA,CACd,GAAA;EACD,EAAA;EACA,IAAA;EACA,KAAA,EAAO,MAAA,CAAO,iBAAA,EAAmB,eAAA;EACjC,IAAA,EAAM,OAAA,CACJ,MAAA,CAAO,iBAAA;IAAqB,IAAA,GAAO,UAAA;IAAY,UAAA,GAAa,UAAA;EAAA;EAE9D,SAAA,EAAW,MAAA,CAAO,WAAA;EAClB,YAAA,EAAc,MAAA,CAAO,aAAA;EACrB,OAAA;EACA,KAAA,EAAO,MAAA,CAAO,SAAA;EACd,mBAAA;AAAA"}
|
|
@@ -1,31 +1,32 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { a as DataSourceConfig } from "./types-BIXtQlHB.cjs";
|
|
2
|
+
import { ComponentType } from "react";
|
|
3
3
|
|
|
4
|
+
//#region src/types/widget-schema.d.ts
|
|
4
5
|
/**
|
|
5
6
|
* Widget type names as a const object.
|
|
6
7
|
* This serves as the single source of truth for widget discriminants.
|
|
7
8
|
* Use `as const` for literal type inference (safety-as-const-deep-readonly rule).
|
|
8
9
|
*/
|
|
9
10
|
declare const WIDGET_TYPE_NAMES: {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
11
|
+
readonly Alert: "AlertWidget";
|
|
12
|
+
readonly Calendar: "CalendarWidget";
|
|
13
|
+
readonly Carousel: "CarouselWidget";
|
|
14
|
+
readonly CatchUp: "CatchUpWidget";
|
|
15
|
+
readonly Chart: "ChartWidget";
|
|
16
|
+
readonly Container: "ContainerWidget";
|
|
17
|
+
readonly Embed: "EmbedWidget";
|
|
18
|
+
readonly Image: "ImageWidget";
|
|
19
|
+
readonly Layout: "LayoutWidget";
|
|
20
|
+
readonly List: "ListWidget";
|
|
21
|
+
readonly MySite: "MySiteWidget";
|
|
22
|
+
readonly Nested: "NestedWidget";
|
|
23
|
+
readonly QuickShare: "QuickShareWidget";
|
|
24
|
+
readonly RecentActivity: "RecentActivityWidget";
|
|
25
|
+
readonly Spacer: "SpacerWidget";
|
|
26
|
+
readonly Table: "TableWidget";
|
|
27
|
+
readonly Text: "TextWidget";
|
|
28
|
+
readonly ToDo: "ToDoWidget";
|
|
29
|
+
readonly Video: "VideoWidget";
|
|
29
30
|
};
|
|
30
31
|
/**
|
|
31
32
|
* Union of all known widget type names.
|
|
@@ -43,13 +44,11 @@ type WidgetRegistry = Record<WidgetType, ComponentType<any>>;
|
|
|
43
44
|
* Use TypedWidgetSchema<T> when you have a known registry for better type safety.
|
|
44
45
|
*/
|
|
45
46
|
type WidgetSchema = {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
/** Column index for masonry layouts (0-indexed) */
|
|
52
|
-
readonly columnIndex?: number;
|
|
47
|
+
readonly type: WidgetType;
|
|
48
|
+
readonly props: Readonly<Record<string, unknown>>;
|
|
49
|
+
readonly id?: string; /** Optional data source configuration for data-bound widgets */
|
|
50
|
+
readonly dataSource?: DataSourceConfig | undefined; /** Column index for masonry layouts (0-indexed) */
|
|
51
|
+
readonly columnIndex?: number;
|
|
53
52
|
};
|
|
54
53
|
/**
|
|
55
54
|
* Type-safe widget schema based on registry.
|
|
@@ -57,16 +56,13 @@ type WidgetSchema = {
|
|
|
57
56
|
* When narrowed (e.g., `if (widget.type === "AlertWidget")`),
|
|
58
57
|
* TypeScript automatically knows the correct props type.
|
|
59
58
|
*/
|
|
60
|
-
type TypedWidgetSchema<T extends Record<string, ComponentType<any>>> = {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
readonly columnIndex?: number;
|
|
68
|
-
};
|
|
69
|
-
}[keyof T];
|
|
59
|
+
type TypedWidgetSchema<T extends Record<string, ComponentType<any>>> = { [K in keyof T]: {
|
|
60
|
+
readonly type: K;
|
|
61
|
+
readonly props: Readonly<React.ComponentProps<T[K]>>;
|
|
62
|
+
readonly id?: string;
|
|
63
|
+
readonly dataSource?: DataSourceConfig | undefined; /** Column index for masonry layouts (0-indexed) */
|
|
64
|
+
readonly columnIndex?: number;
|
|
65
|
+
} }[keyof T];
|
|
70
66
|
/**
|
|
71
67
|
* Widget path in the tree - array of indices.
|
|
72
68
|
* Readonly tuple to prevent accidental mutation.
|
|
@@ -93,7 +89,7 @@ declare function isWidgetTypeName(type: string): type is WidgetTypeName;
|
|
|
93
89
|
* }
|
|
94
90
|
*/
|
|
95
91
|
declare function isWidgetType<T extends WidgetTypeName>(widget: WidgetSchema | null | undefined, typeName: T): widget is WidgetSchema & {
|
|
96
|
-
|
|
92
|
+
readonly type: T;
|
|
97
93
|
};
|
|
98
94
|
/**
|
|
99
95
|
* Helper for exhaustive switch statements on widget types.
|
|
@@ -118,5 +114,6 @@ declare function assertNever(value: never, context?: string): never;
|
|
|
118
114
|
* // TypeScript knows widget is defined here
|
|
119
115
|
*/
|
|
120
116
|
declare function assertDefined<T>(value: T | undefined | null, name?: string): asserts value is T;
|
|
121
|
-
|
|
122
|
-
export {
|
|
117
|
+
//#endregion
|
|
118
|
+
export { WidgetSchema as a, assertDefined as c, isWidgetTypeName as d, WidgetRegistry as i, assertNever as l, WIDGET_TYPE_NAMES as n, WidgetType as o, WidgetPath as r, WidgetTypeName as s, TypedWidgetSchema as t, isWidgetType as u };
|
|
119
|
+
//# sourceMappingURL=widget-schema--PY1uMWx.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widget-schema--PY1uMWx.d.cts","names":[],"sources":["../src/types/widget-schema.ts"],"mappings":";;;;;;AAQA;;;cAAa,iBAAA;EAAA;;;;;;;;;;;;;;;;;;;;;AA0Bb;;;KAAY,cAAA,WACF,iBAAA,eAAgC,iBAAA;;AAM1C;;;KAAY,UAAA;AAAA,KAGA,cAAA,GAAiB,MAAA,CAAO,UAAA,EAAY,aAAA;AAAhD;;;;AAAA,KAMY,YAAA;EAAA,SACD,IAAA,EAAM,UAAA;EAAA,SACN,KAAA,EAAO,QAAA,CAAS,MAAA;EAAA,SAChB,EAAA,WATkB;EAAA,SAWlB,UAAA,GAAa,gBAAA,cAXwB;EAAA,SAarC,WAAA;AAAA;AAPX;;;;;;AAAA,KAiBY,iBAAA,WAA4B,MAAA,SAAe,aAAA,wBACzC,CAAA;EAAA,SACD,IAAA,EAAM,CAAA;EAAA,SACN,KAAA,EAAO,QAAA,CAAS,KAAA,CAAM,cAAA,CAAe,CAAA,CAAE,CAAA;EAAA,SACvC,EAAA;EAAA,SACA,UAAA,GAAa,gBAAA,cApBR;EAAA,SAsBL,WAAA;AAAA,UAEL,CAAA;;;;;KAMI,UAAA;;;;;;;;;;iBAeI,gBAAA,CAAiB,IAAA,WAAe,IAAA,IAAQ,cAAA;;;;;;;;;;;iBAiBxC,YAAA,WAAuB,cAAA,CAAA,CACrC,MAAA,EAAQ,YAAA,qBACR,QAAA,EAAU,CAAA,GACT,MAAA,IAAU,YAAA;EAAA,SAA0B,IAAA,EAAM,CAAA;AAAA;;;;;;;;;;;;AAnC7C;iBAmDgB,WAAA,CAAY,KAAA,SAAc,OAAA;;;;AApC1C;;;;;;iBAoDgB,aAAA,GAAA,CACd,KAAA,EAAO,CAAA,qBACP,IAAA,oBACS,KAAA,IAAS,CAAA"}
|
|
@@ -1,31 +1,32 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { a as DataSourceConfig } from "./types-C5OFJy-O.mjs";
|
|
2
|
+
import { ComponentType } from "react";
|
|
3
3
|
|
|
4
|
+
//#region src/types/widget-schema.d.ts
|
|
4
5
|
/**
|
|
5
6
|
* Widget type names as a const object.
|
|
6
7
|
* This serves as the single source of truth for widget discriminants.
|
|
7
8
|
* Use `as const` for literal type inference (safety-as-const-deep-readonly rule).
|
|
8
9
|
*/
|
|
9
10
|
declare const WIDGET_TYPE_NAMES: {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
11
|
+
readonly Alert: "AlertWidget";
|
|
12
|
+
readonly Calendar: "CalendarWidget";
|
|
13
|
+
readonly Carousel: "CarouselWidget";
|
|
14
|
+
readonly CatchUp: "CatchUpWidget";
|
|
15
|
+
readonly Chart: "ChartWidget";
|
|
16
|
+
readonly Container: "ContainerWidget";
|
|
17
|
+
readonly Embed: "EmbedWidget";
|
|
18
|
+
readonly Image: "ImageWidget";
|
|
19
|
+
readonly Layout: "LayoutWidget";
|
|
20
|
+
readonly List: "ListWidget";
|
|
21
|
+
readonly MySite: "MySiteWidget";
|
|
22
|
+
readonly Nested: "NestedWidget";
|
|
23
|
+
readonly QuickShare: "QuickShareWidget";
|
|
24
|
+
readonly RecentActivity: "RecentActivityWidget";
|
|
25
|
+
readonly Spacer: "SpacerWidget";
|
|
26
|
+
readonly Table: "TableWidget";
|
|
27
|
+
readonly Text: "TextWidget";
|
|
28
|
+
readonly ToDo: "ToDoWidget";
|
|
29
|
+
readonly Video: "VideoWidget";
|
|
29
30
|
};
|
|
30
31
|
/**
|
|
31
32
|
* Union of all known widget type names.
|
|
@@ -43,13 +44,11 @@ type WidgetRegistry = Record<WidgetType, ComponentType<any>>;
|
|
|
43
44
|
* Use TypedWidgetSchema<T> when you have a known registry for better type safety.
|
|
44
45
|
*/
|
|
45
46
|
type WidgetSchema = {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
/** Column index for masonry layouts (0-indexed) */
|
|
52
|
-
readonly columnIndex?: number;
|
|
47
|
+
readonly type: WidgetType;
|
|
48
|
+
readonly props: Readonly<Record<string, unknown>>;
|
|
49
|
+
readonly id?: string; /** Optional data source configuration for data-bound widgets */
|
|
50
|
+
readonly dataSource?: DataSourceConfig | undefined; /** Column index for masonry layouts (0-indexed) */
|
|
51
|
+
readonly columnIndex?: number;
|
|
53
52
|
};
|
|
54
53
|
/**
|
|
55
54
|
* Type-safe widget schema based on registry.
|
|
@@ -57,16 +56,13 @@ type WidgetSchema = {
|
|
|
57
56
|
* When narrowed (e.g., `if (widget.type === "AlertWidget")`),
|
|
58
57
|
* TypeScript automatically knows the correct props type.
|
|
59
58
|
*/
|
|
60
|
-
type TypedWidgetSchema<T extends Record<string, ComponentType<any>>> = {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
readonly columnIndex?: number;
|
|
68
|
-
};
|
|
69
|
-
}[keyof T];
|
|
59
|
+
type TypedWidgetSchema<T extends Record<string, ComponentType<any>>> = { [K in keyof T]: {
|
|
60
|
+
readonly type: K;
|
|
61
|
+
readonly props: Readonly<React.ComponentProps<T[K]>>;
|
|
62
|
+
readonly id?: string;
|
|
63
|
+
readonly dataSource?: DataSourceConfig | undefined; /** Column index for masonry layouts (0-indexed) */
|
|
64
|
+
readonly columnIndex?: number;
|
|
65
|
+
} }[keyof T];
|
|
70
66
|
/**
|
|
71
67
|
* Widget path in the tree - array of indices.
|
|
72
68
|
* Readonly tuple to prevent accidental mutation.
|
|
@@ -93,7 +89,7 @@ declare function isWidgetTypeName(type: string): type is WidgetTypeName;
|
|
|
93
89
|
* }
|
|
94
90
|
*/
|
|
95
91
|
declare function isWidgetType<T extends WidgetTypeName>(widget: WidgetSchema | null | undefined, typeName: T): widget is WidgetSchema & {
|
|
96
|
-
|
|
92
|
+
readonly type: T;
|
|
97
93
|
};
|
|
98
94
|
/**
|
|
99
95
|
* Helper for exhaustive switch statements on widget types.
|
|
@@ -118,5 +114,6 @@ declare function assertNever(value: never, context?: string): never;
|
|
|
118
114
|
* // TypeScript knows widget is defined here
|
|
119
115
|
*/
|
|
120
116
|
declare function assertDefined<T>(value: T | undefined | null, name?: string): asserts value is T;
|
|
121
|
-
|
|
122
|
-
export {
|
|
117
|
+
//#endregion
|
|
118
|
+
export { WidgetSchema as a, assertDefined as c, isWidgetTypeName as d, WidgetRegistry as i, assertNever as l, WIDGET_TYPE_NAMES as n, WidgetType as o, WidgetPath as r, WidgetTypeName as s, TypedWidgetSchema as t, isWidgetType as u };
|
|
119
|
+
//# sourceMappingURL=widget-schema-YkD5p3v4.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widget-schema-YkD5p3v4.d.mts","names":[],"sources":["../src/types/widget-schema.ts"],"mappings":";;;;;;AAQA;;;cAAa,iBAAA;EAAA;;;;;;;;;;;;;;;;;;;;;AA0Bb;;;KAAY,cAAA,WACF,iBAAA,eAAgC,iBAAA;;AAM1C;;;KAAY,UAAA;AAAA,KAGA,cAAA,GAAiB,MAAA,CAAO,UAAA,EAAY,aAAA;AAAhD;;;;AAAA,KAMY,YAAA;EAAA,SACD,IAAA,EAAM,UAAA;EAAA,SACN,KAAA,EAAO,QAAA,CAAS,MAAA;EAAA,SAChB,EAAA,WATkB;EAAA,SAWlB,UAAA,GAAa,gBAAA,cAXwB;EAAA,SAarC,WAAA;AAAA;AAPX;;;;;;AAAA,KAiBY,iBAAA,WAA4B,MAAA,SAAe,aAAA,wBACzC,CAAA;EAAA,SACD,IAAA,EAAM,CAAA;EAAA,SACN,KAAA,EAAO,QAAA,CAAS,KAAA,CAAM,cAAA,CAAe,CAAA,CAAE,CAAA;EAAA,SACvC,EAAA;EAAA,SACA,UAAA,GAAa,gBAAA,cApBR;EAAA,SAsBL,WAAA;AAAA,UAEL,CAAA;;;;;KAMI,UAAA;;;;;;;;;;iBAeI,gBAAA,CAAiB,IAAA,WAAe,IAAA,IAAQ,cAAA;;;;;;;;;;;iBAiBxC,YAAA,WAAuB,cAAA,CAAA,CACrC,MAAA,EAAQ,YAAA,qBACR,QAAA,EAAU,CAAA,GACT,MAAA,IAAU,YAAA;EAAA,SAA0B,IAAA,EAAM,CAAA;AAAA;;;;;;;;;;;;AAnC7C;iBAmDgB,WAAA,CAAY,KAAA,SAAc,OAAA;;;;AApC1C;;;;;;iBAoDgB,aAAA,GAAA,CACd,KAAA,EAAO,CAAA,qBACP,IAAA,oBACS,KAAA,IAAS,CAAA"}
|