@fluid-app/fluid-cli-portal 0.1.57 → 0.1.59
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/{backend-dev-plugin-CY3yxgJ1.mjs → backend-dev-plugin-DfP44z0B.mjs} +2 -2
- package/dist/{backend-dev-plugin-CY3yxgJ1.mjs.map → backend-dev-plugin-DfP44z0B.mjs.map} +1 -1
- package/dist/build-manifest.mjs +1 -1
- package/dist/build-manifest.mjs.map +1 -1
- package/dist/index.d.mts +766 -25
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +199 -102
- package/dist/index.mjs.map +1 -1
- package/dist/{portal-dev-plugin-CHlxpXc5.mjs → portal-dev-plugin-BbXPp3ts.mjs} +2 -2
- package/dist/{portal-dev-plugin-CHlxpXc5.mjs.map → portal-dev-plugin-BbXPp3ts.mjs.map} +1 -1
- package/dist/{portal-widget-dev-plugin-B53Lf9Ke.mjs → portal-widget-dev-plugin-CwD90Z8O.mjs} +7 -5
- package/dist/{portal-widget-dev-plugin-B53Lf9Ke.mjs.map → portal-widget-dev-plugin-CwD90Z8O.mjs.map} +1 -1
- package/dist/pull-C26wQlO_.mjs +17715 -0
- package/dist/pull-C26wQlO_.mjs.map +1 -0
- package/dist/{sdk.gen-DuPhfdxN.mjs → sdk.gen-VRGYiLVJ.mjs} +1 -1
- package/dist/{sdk.gen-DuPhfdxN.mjs.map → sdk.gen-VRGYiLVJ.mjs.map} +1 -1
- package/dist/{src-CpH5SpDH.mjs → src-2znVq55R.mjs} +152 -27
- package/dist/src-2znVq55R.mjs.map +1 -0
- package/dist/vite-plugin.mjs +4 -4
- package/package.json +7 -5
- package/templates/base/skills/fluid-portal-authoring/SKILL.md +6 -2
- package/dist/pull-CUR8tbW9.mjs +0 -1633
- package/dist/pull-CUR8tbW9.mjs.map +0 -1
- package/dist/rolldown-runtime-twds-ZHy.mjs +0 -14
- package/dist/src-CpH5SpDH.mjs.map +0 -1
package/dist/index.d.mts
CHANGED
|
@@ -811,8 +811,8 @@ type FluidOsHeyApiClient = Client;
|
|
|
811
811
|
/**
|
|
812
812
|
* Any valid JSON value for provider, integration, theme, metadata, or other dynamic payloads whose keys are not fixed by the API contract.
|
|
813
813
|
*/
|
|
814
|
-
type JsonValue = string | number | boolean | null | Array<JsonValue> | {
|
|
815
|
-
[key: string]: JsonValue;
|
|
814
|
+
type JsonValue$1 = string | number | boolean | null | Array<JsonValue$1> | {
|
|
815
|
+
[key: string]: JsonValue$1;
|
|
816
816
|
};
|
|
817
817
|
/**
|
|
818
818
|
* FluidOS::NavigationItem
|
|
@@ -884,7 +884,7 @@ type FluidOsProfile = {
|
|
|
884
884
|
* Dynamic Fluid OS JSON payload whose keys are defined by the app builder configuration.
|
|
885
885
|
*/
|
|
886
886
|
type FluidOsDynamicPayload = {
|
|
887
|
-
[key: string]: JsonValue;
|
|
887
|
+
[key: string]: JsonValue$1;
|
|
888
888
|
} | null;
|
|
889
889
|
//#endregion
|
|
890
890
|
//#region src/utils/mappings.d.ts
|
|
@@ -957,6 +957,14 @@ declare function removeMapping(mappings: PortalMappings, resourceType: MappedRes
|
|
|
957
957
|
type FileHash = string;
|
|
958
958
|
/** Map of relative file paths to their content hashes. */
|
|
959
959
|
type FileHashMap = Record<string, FileHash>;
|
|
960
|
+
interface SnapshotNetworkWidgetGrant {
|
|
961
|
+
readonly widgetId: string;
|
|
962
|
+
readonly widgetType: string;
|
|
963
|
+
readonly packageId: string;
|
|
964
|
+
readonly packageVersion: string;
|
|
965
|
+
readonly capabilityVersion: string;
|
|
966
|
+
}
|
|
967
|
+
type SnapshotNetworkWidgetGrantMap = Readonly<Record<string, readonly SnapshotNetworkWidgetGrant[]>>;
|
|
960
968
|
/** Snapshot structure persisted to `.portal-sync/snapshot.json`. */
|
|
961
969
|
interface Snapshot {
|
|
962
970
|
/** Human-readable name of the portal definition. */
|
|
@@ -967,6 +975,8 @@ interface Snapshot {
|
|
|
967
975
|
readonly pulled_at: string;
|
|
968
976
|
/** Map of relative file paths → SHA-256 hashes. */
|
|
969
977
|
readonly files: FileHashMap;
|
|
978
|
+
/** Network-enabled widget nodes present at the last successful sync. */
|
|
979
|
+
readonly network_widget_grants?: SnapshotNetworkWidgetGrantMap;
|
|
970
980
|
}
|
|
971
981
|
/** Result of diffing current files against a snapshot. */
|
|
972
982
|
interface SnapshotDiff {
|
|
@@ -1039,6 +1049,8 @@ interface ValidationError {
|
|
|
1039
1049
|
* Extract the slug from a file path (e.g., "screens/home.json" -> "home").
|
|
1040
1050
|
*/
|
|
1041
1051
|
declare function slugFromPath(filePath: string): string;
|
|
1052
|
+
/** Validate every managed local portal file against the canonical schemas. */
|
|
1053
|
+
declare function validatePortalSchemas(portalDir: string): Promise<ValidationError[]>;
|
|
1042
1054
|
/**
|
|
1043
1055
|
* Categorize a snapshot diff into resource-type-specific change lists.
|
|
1044
1056
|
*/
|
|
@@ -1047,9 +1059,7 @@ declare function categorizeChanges(diff: SnapshotDiff): CategorizedChanges;
|
|
|
1047
1059
|
* Validate that all cross-references between local portal files are valid.
|
|
1048
1060
|
*
|
|
1049
1061
|
* Checks:
|
|
1050
|
-
* -
|
|
1051
|
-
* - Every widget node in a changed screen has a string "id" and "type"
|
|
1052
|
-
* - New and changed themes include the required config object
|
|
1062
|
+
* - Widget IDs remain unique within each changed screen
|
|
1053
1063
|
* - Navigation items' "screen" slugs reference existing screen files or mappings
|
|
1054
1064
|
* - Profile "navigation" and "mobile_navigation" slugs reference existing nav files or mappings
|
|
1055
1065
|
* - Profile "themes" slugs reference existing theme files or mappings
|
|
@@ -1273,23 +1283,739 @@ declare const versionCommand: Command;
|
|
|
1273
1283
|
//#region src/commands/doctor.d.ts
|
|
1274
1284
|
declare const doctorCommand: Command;
|
|
1275
1285
|
//#endregion
|
|
1276
|
-
//#region src/
|
|
1277
|
-
type
|
|
1278
|
-
type
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1286
|
+
//#region ../../portal/definition-schema/src/generated/types.d.ts
|
|
1287
|
+
type JsonPrimitive = string | number | boolean | null;
|
|
1288
|
+
type JsonValue = JsonPrimitive | JsonValue[] | JsonObject | PortalWidgetNode;
|
|
1289
|
+
interface JsonObject {
|
|
1290
|
+
readonly [key: string]: JsonValue;
|
|
1291
|
+
}
|
|
1292
|
+
type ColorOption = "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1293
|
+
interface PortalDataSourceConfig {
|
|
1294
|
+
readonly sources: JsonObject[];
|
|
1295
|
+
readonly loading?: {
|
|
1296
|
+
readonly showSkeleton?: boolean;
|
|
1297
|
+
};
|
|
1298
|
+
readonly error?: {
|
|
1299
|
+
readonly fallback?: JsonObject;
|
|
1300
|
+
readonly retryCount?: number;
|
|
1301
|
+
readonly retryDelay?: number;
|
|
1302
|
+
};
|
|
1303
|
+
}
|
|
1304
|
+
interface PortalWidgetNodeBase {
|
|
1305
|
+
readonly id: string;
|
|
1306
|
+
readonly type: string;
|
|
1307
|
+
readonly props: JsonObject;
|
|
1308
|
+
readonly dataSource?: PortalDataSourceConfig;
|
|
1309
|
+
readonly columnIndex?: number;
|
|
1310
|
+
}
|
|
1311
|
+
interface AlertWidgetNode extends PortalWidgetNodeBase {
|
|
1312
|
+
readonly type: "AlertWidget";
|
|
1313
|
+
readonly props: {
|
|
1314
|
+
titleEnabled?: boolean;
|
|
1315
|
+
title?: string;
|
|
1316
|
+
titleFontSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
1317
|
+
titleFontWeight?: "normal" | "medium" | "semibold" | "bold";
|
|
1318
|
+
titleColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1319
|
+
titleAlignment?: "left" | "center" | "right";
|
|
1320
|
+
description?: string;
|
|
1321
|
+
descriptionFontSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
1322
|
+
descriptionFontWeight?: "normal" | "medium" | "semibold" | "bold";
|
|
1323
|
+
descriptionColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1324
|
+
descriptionAlignment?: "left" | "center" | "right";
|
|
1325
|
+
background?: string | {
|
|
1326
|
+
type: "solid" | "image";
|
|
1327
|
+
color?: ColorOption;
|
|
1328
|
+
resource?: string | null | JsonObject;
|
|
1329
|
+
};
|
|
1330
|
+
padding?: 0 | 2 | 4 | 6 | 8 | 10;
|
|
1331
|
+
borderRadius?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
1332
|
+
borderWidth?: "none" | "thin" | "medium" | "thick";
|
|
1333
|
+
borderColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1334
|
+
};
|
|
1335
|
+
}
|
|
1336
|
+
interface BulletListWidgetNode extends PortalWidgetNodeBase {
|
|
1337
|
+
readonly type: "BulletListWidget";
|
|
1338
|
+
readonly props: {
|
|
1339
|
+
titleEnabled?: boolean;
|
|
1340
|
+
title?: string;
|
|
1341
|
+
titleFontSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
1342
|
+
titleColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1343
|
+
listType?: "unordered" | "ordered";
|
|
1344
|
+
items?: string[];
|
|
1345
|
+
itemFontSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
1346
|
+
itemColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1347
|
+
background?: string | {
|
|
1348
|
+
type: "solid" | "image";
|
|
1349
|
+
color?: ColorOption;
|
|
1350
|
+
resource?: string | null | JsonObject;
|
|
1351
|
+
};
|
|
1352
|
+
padding?: 0 | 2 | 4 | 6 | 8 | 10;
|
|
1353
|
+
borderRadius?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
1354
|
+
borderWidth?: "none" | "thin" | "medium" | "thick";
|
|
1355
|
+
borderColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1356
|
+
gapSize?: "none" | "xs" | "sm" | "md" | "lg" | "xl";
|
|
1357
|
+
};
|
|
1358
|
+
}
|
|
1359
|
+
interface CalendarWidgetNode extends PortalWidgetNodeBase {
|
|
1360
|
+
readonly type: "CalendarWidget";
|
|
1361
|
+
readonly props: {
|
|
1362
|
+
titleEnabled?: boolean;
|
|
1363
|
+
titleText?: string;
|
|
1364
|
+
titleFontSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
1365
|
+
titleColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1366
|
+
background?: string | {
|
|
1367
|
+
type: "solid" | "image";
|
|
1368
|
+
color?: ColorOption;
|
|
1369
|
+
resource?: string | null | JsonObject;
|
|
1370
|
+
};
|
|
1371
|
+
textColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1372
|
+
accentColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1373
|
+
padding?: 0 | 2 | 4 | 6 | 8 | 10;
|
|
1374
|
+
borderRadius?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
1375
|
+
borderWidth?: "none" | "thin" | "medium" | "thick";
|
|
1376
|
+
borderColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1377
|
+
showYearEyebrow?: boolean;
|
|
1378
|
+
showTodayButton?: boolean;
|
|
1379
|
+
showEventDensity?: boolean;
|
|
1380
|
+
weekendDim?: boolean;
|
|
1381
|
+
};
|
|
1382
|
+
}
|
|
1383
|
+
interface CardWidgetNode extends PortalWidgetNodeBase {
|
|
1384
|
+
readonly type: "CardWidget";
|
|
1385
|
+
readonly props: {
|
|
1386
|
+
headerEnabled?: boolean;
|
|
1387
|
+
title?: string;
|
|
1388
|
+
titleFontSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
1389
|
+
titleColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1390
|
+
headerBackground?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1391
|
+
footerEnabled?: boolean;
|
|
1392
|
+
footerContent?: string;
|
|
1393
|
+
footerColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1394
|
+
footerBackground?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1395
|
+
background?: string | {
|
|
1396
|
+
type: "solid" | "image";
|
|
1397
|
+
color?: ColorOption;
|
|
1398
|
+
resource?: string | null | JsonObject;
|
|
1399
|
+
};
|
|
1400
|
+
padding?: 0 | 2 | 4 | 6 | 8 | 10;
|
|
1401
|
+
borderRadius?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
1402
|
+
borderWidth?: "none" | "thin" | "medium" | "thick";
|
|
1403
|
+
borderColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1404
|
+
gapSize?: "none" | "xs" | "sm" | "md" | "lg" | "xl";
|
|
1405
|
+
children?: Array<PortalWidgetNode | null>;
|
|
1406
|
+
};
|
|
1407
|
+
}
|
|
1408
|
+
interface CarouselWidgetNode extends PortalWidgetNodeBase {
|
|
1409
|
+
readonly type: "CarouselWidget";
|
|
1410
|
+
readonly props: {
|
|
1411
|
+
editorialFrame?: boolean;
|
|
1412
|
+
frameColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1413
|
+
headerSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
1414
|
+
headerColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1415
|
+
textSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
1416
|
+
textColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1417
|
+
align?: {
|
|
1418
|
+
vertical?: "top" | "center" | "bottom";
|
|
1419
|
+
horizontal?: "left" | "center" | "right";
|
|
1420
|
+
};
|
|
1421
|
+
textWidth?: string;
|
|
1422
|
+
carouselHeight?: string;
|
|
1423
|
+
borderRadius?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
1424
|
+
borderWidth?: "none" | "thin" | "medium" | "thick";
|
|
1425
|
+
borderColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1426
|
+
padding?: 0 | 2 | 4 | 6 | 8 | 10;
|
|
1427
|
+
overlayEnabled?: boolean;
|
|
1428
|
+
overlayType?: "solid" | "gradient";
|
|
1429
|
+
overlayIntensity?: number;
|
|
1430
|
+
showButton?: boolean;
|
|
1431
|
+
buttonColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1432
|
+
buttonSize?: "sm" | "default" | "lg" | "xl";
|
|
1433
|
+
enableAutoScroll?: boolean;
|
|
1434
|
+
autoScrollInterval?: number;
|
|
1435
|
+
slides?: JsonValue;
|
|
1436
|
+
};
|
|
1437
|
+
}
|
|
1438
|
+
interface CatchUpWidgetNode extends PortalWidgetNodeBase {
|
|
1439
|
+
readonly type: "CatchUpWidget";
|
|
1440
|
+
readonly props: {
|
|
1441
|
+
titleEnabled?: boolean;
|
|
1442
|
+
titleText?: string;
|
|
1443
|
+
titleFontSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
1444
|
+
titleColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1445
|
+
background?: string | {
|
|
1446
|
+
type: "solid" | "image";
|
|
1447
|
+
color?: ColorOption;
|
|
1448
|
+
resource?: string | null | JsonObject;
|
|
1449
|
+
};
|
|
1450
|
+
textColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1451
|
+
accentColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1452
|
+
maxItems?: number;
|
|
1453
|
+
padding?: 0 | 2 | 4 | 6 | 8 | 10;
|
|
1454
|
+
borderRadius?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
1455
|
+
borderWidth?: "none" | "thin" | "medium" | "thick";
|
|
1456
|
+
borderColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1457
|
+
};
|
|
1458
|
+
}
|
|
1459
|
+
interface ChartWidgetNode extends PortalWidgetNodeBase {
|
|
1460
|
+
readonly type: "ChartWidget";
|
|
1461
|
+
readonly props: {
|
|
1462
|
+
titleEnabled?: boolean;
|
|
1463
|
+
title?: string;
|
|
1464
|
+
titleFontSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
1465
|
+
titleColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1466
|
+
description?: string;
|
|
1467
|
+
descriptionFontSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
1468
|
+
descriptionColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1469
|
+
chartType?: "bar" | "line" | "area" | "pie";
|
|
1470
|
+
showLegend?: boolean;
|
|
1471
|
+
showTooltip?: boolean;
|
|
1472
|
+
showGrid?: boolean;
|
|
1473
|
+
width?: string;
|
|
1474
|
+
height?: string;
|
|
1475
|
+
background?: string | {
|
|
1476
|
+
type: "solid" | "image";
|
|
1477
|
+
color?: ColorOption;
|
|
1478
|
+
resource?: string | null | JsonObject;
|
|
1479
|
+
};
|
|
1480
|
+
padding?: 0 | 2 | 4 | 6 | 8 | 10;
|
|
1481
|
+
borderRadius?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
1482
|
+
borderWidth?: "none" | "thin" | "medium" | "thick";
|
|
1483
|
+
borderColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1484
|
+
dataKey?: "value";
|
|
1485
|
+
xAxisKey?: "name";
|
|
1486
|
+
data?: JsonValue;
|
|
1487
|
+
chartConfig?: JsonValue;
|
|
1488
|
+
};
|
|
1489
|
+
}
|
|
1490
|
+
interface ContainerWidgetNode extends PortalWidgetNodeBase {
|
|
1491
|
+
readonly type: "ContainerWidget";
|
|
1492
|
+
readonly props: {
|
|
1493
|
+
gapSize?: "none" | "xs" | "sm" | "md" | "lg" | "xl";
|
|
1494
|
+
padding?: 0 | 2 | 4 | 6 | 8 | 10;
|
|
1495
|
+
background?: string | {
|
|
1496
|
+
type: "solid" | "image";
|
|
1497
|
+
color?: ColorOption;
|
|
1498
|
+
resource?: string | null | JsonObject;
|
|
1499
|
+
};
|
|
1500
|
+
children?: Array<PortalWidgetNode | null>;
|
|
1501
|
+
};
|
|
1502
|
+
}
|
|
1503
|
+
interface EmbedWidgetNode extends PortalWidgetNodeBase {
|
|
1504
|
+
readonly type: "EmbedWidget";
|
|
1505
|
+
readonly props: {
|
|
1506
|
+
url?: string;
|
|
1507
|
+
title?: string;
|
|
1508
|
+
displayMode?: "inline" | "cover";
|
|
1509
|
+
coverResource?: string | null | JsonObject;
|
|
1510
|
+
coverUseCustomUrl?: boolean;
|
|
1511
|
+
coverImageUrl?: string;
|
|
1512
|
+
coverHeight?: string;
|
|
1513
|
+
coverShowHeader?: boolean;
|
|
1514
|
+
coverHeaderIcon?: "GraduationCap" | "Video" | "BookOpen" | "Globe" | "User" | "Star" | "Heart" | "Trophy" | "Sparkles" | "Zap" | "Gift" | "ShoppingBag" | "Bell" | "Calendar" | "Bookmark";
|
|
1515
|
+
coverHeaderIconColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1516
|
+
coverTitle?: string;
|
|
1517
|
+
coverMeta?: string;
|
|
1518
|
+
borderRadius?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
1519
|
+
borderWidth?: "none" | "thin" | "medium" | "thick";
|
|
1520
|
+
borderColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1521
|
+
fullScreen?: boolean;
|
|
1522
|
+
height?: string;
|
|
1523
|
+
allowFullscreen?: boolean;
|
|
1524
|
+
loading?: "lazy" | "eager";
|
|
1525
|
+
};
|
|
1526
|
+
}
|
|
1527
|
+
interface ImageWidgetNode extends PortalWidgetNodeBase {
|
|
1528
|
+
readonly type: "ImageWidget";
|
|
1529
|
+
readonly props: {
|
|
1530
|
+
resource?: string | null | JsonObject;
|
|
1531
|
+
useCustomUrl?: boolean;
|
|
1532
|
+
src?: string;
|
|
1533
|
+
alt?: string;
|
|
1534
|
+
borderRadius?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
1535
|
+
borderWidth?: "none" | "thin" | "medium" | "thick";
|
|
1536
|
+
borderColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1537
|
+
verticalSizing?: "auto" | "fixed";
|
|
1538
|
+
fixedHeight?: string;
|
|
1539
|
+
displayFit?: "cover" | "contain";
|
|
1540
|
+
focusPoint?: string;
|
|
1541
|
+
linkType?: "url" | "screen" | "share";
|
|
1542
|
+
href?: string;
|
|
1543
|
+
openInNewTab?: boolean;
|
|
1544
|
+
screenSlug?: string;
|
|
1545
|
+
shareSource?: "resource" | "url";
|
|
1546
|
+
shareResource?: string | null | JsonObject;
|
|
1547
|
+
shareUrl?: string;
|
|
1548
|
+
};
|
|
1549
|
+
}
|
|
1550
|
+
interface LayoutWidgetNode extends PortalWidgetNodeBase {
|
|
1551
|
+
readonly type: "LayoutWidget";
|
|
1552
|
+
readonly props: {
|
|
1553
|
+
sectionLayout?: "single-column" | "2c-equal" | "2c-left-wider" | "2c-right-wider" | "2c-left-narrow" | "2c-right-narrow" | "3c-equal" | "3c-middle-wider";
|
|
1554
|
+
gapSize?: "none" | "xs" | "sm" | "md" | "lg" | "xl";
|
|
1555
|
+
background?: string | {
|
|
1556
|
+
type: "solid" | "image";
|
|
1557
|
+
color?: ColorOption;
|
|
1558
|
+
resource?: string | null | JsonObject;
|
|
1559
|
+
};
|
|
1560
|
+
padding?: 0 | 2 | 4 | 6 | 8 | 10;
|
|
1561
|
+
borderRadius?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
1562
|
+
borderWidth?: "none" | "thin" | "medium" | "thick";
|
|
1563
|
+
borderColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1564
|
+
children?: Array<PortalWidgetNode | null>;
|
|
1565
|
+
};
|
|
1566
|
+
}
|
|
1567
|
+
interface LinkWidgetNode extends PortalWidgetNodeBase {
|
|
1568
|
+
readonly type: "LinkWidget";
|
|
1569
|
+
readonly props: {
|
|
1570
|
+
linkType?: "url" | "screen" | "share";
|
|
1571
|
+
text?: string;
|
|
1572
|
+
href?: string;
|
|
1573
|
+
openInNewTab?: boolean;
|
|
1574
|
+
screenSlug?: string;
|
|
1575
|
+
shareSource?: "resource" | "url";
|
|
1576
|
+
shareResource?: string | null | JsonObject;
|
|
1577
|
+
shareUrl?: string;
|
|
1578
|
+
variant?: "default" | "outline" | "secondary" | "ghost" | "destructive";
|
|
1579
|
+
size?: "sm" | "default" | "lg" | "xl";
|
|
1580
|
+
fontSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
1581
|
+
underline?: boolean;
|
|
1582
|
+
alignment?: "left" | "center" | "right";
|
|
1583
|
+
fullWidth?: boolean;
|
|
1584
|
+
padding?: 0 | 2 | 4 | 6 | 8 | 10;
|
|
1585
|
+
borderRadiusTL?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
1586
|
+
borderRadiusTR?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
1587
|
+
borderRadiusBL?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
1588
|
+
borderRadiusBR?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
1589
|
+
borderWidth?: "none" | "thin" | "medium" | "thick";
|
|
1590
|
+
borderColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1591
|
+
};
|
|
1592
|
+
}
|
|
1593
|
+
interface ListWidgetNode extends PortalWidgetNodeBase {
|
|
1594
|
+
readonly type: "ListWidget";
|
|
1595
|
+
readonly props: {
|
|
1596
|
+
titleEnabled?: boolean;
|
|
1597
|
+
title?: string;
|
|
1598
|
+
titleSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
1599
|
+
titleColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1600
|
+
padding?: 0 | 2 | 4 | 6 | 8 | 10;
|
|
1601
|
+
borderRadius?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
1602
|
+
borderWidth?: "none" | "thin" | "medium" | "thick";
|
|
1603
|
+
borderColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1604
|
+
gap?: "none" | "xs" | "sm" | "md" | "lg" | "xl";
|
|
1605
|
+
background?: string | {
|
|
1606
|
+
type: "solid" | "image";
|
|
1607
|
+
color?: ColorOption;
|
|
1608
|
+
resource?: string | null | JsonObject;
|
|
1609
|
+
};
|
|
1610
|
+
listType?: "unordered" | "ordered";
|
|
1611
|
+
maxItems?: number;
|
|
1612
|
+
imageAspectRatio?: "square" | "landscape" | "portrait";
|
|
1613
|
+
showBadge?: boolean;
|
|
1614
|
+
showMetaText?: boolean;
|
|
1615
|
+
columns?: number;
|
|
1616
|
+
scrollAxis?: "horizontal" | "vertical";
|
|
1617
|
+
numberColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1618
|
+
numberSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
1619
|
+
itemTitleColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1620
|
+
itemTitleSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
1621
|
+
descriptionColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1622
|
+
descriptionSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
1623
|
+
priceColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1624
|
+
priceSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
1625
|
+
originalPriceColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1626
|
+
metaTextColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1627
|
+
metaTextSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
1628
|
+
showFeaturedSection?: boolean;
|
|
1629
|
+
featuredAsset?: string | null | JsonObject;
|
|
1630
|
+
featuredTitle?: string;
|
|
1631
|
+
featuredSubtitle?: string;
|
|
1632
|
+
featuredButtonText?: string;
|
|
1633
|
+
featuredButtonUrl?: string;
|
|
1634
|
+
featuredSubtitleColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1635
|
+
featuredSubtitleSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
1636
|
+
items?: JsonValue;
|
|
1637
|
+
};
|
|
1638
|
+
}
|
|
1639
|
+
interface MySiteWidgetNode extends PortalWidgetNodeBase {
|
|
1640
|
+
readonly type: "MySiteWidget";
|
|
1641
|
+
readonly props: {
|
|
1642
|
+
showPreview?: boolean;
|
|
1643
|
+
showAnalytics?: boolean;
|
|
1644
|
+
showLiveBadge?: boolean;
|
|
1645
|
+
showQR?: boolean;
|
|
1646
|
+
background?: string | {
|
|
1647
|
+
type: "solid" | "image";
|
|
1648
|
+
color?: ColorOption;
|
|
1649
|
+
resource?: string | null | JsonObject;
|
|
1650
|
+
};
|
|
1651
|
+
textColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1652
|
+
accentColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1653
|
+
borderRadius?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
1654
|
+
};
|
|
1655
|
+
}
|
|
1656
|
+
interface NestedWidgetNode extends PortalWidgetNodeBase {
|
|
1657
|
+
readonly type: "NestedWidget";
|
|
1658
|
+
readonly props: {
|
|
1659
|
+
resource?: string | null | JsonObject;
|
|
1660
|
+
titleEnabled?: boolean;
|
|
1661
|
+
titleText?: string;
|
|
1662
|
+
titleFontSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
1663
|
+
titleColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1664
|
+
primaryMediaHeight?: string;
|
|
1665
|
+
titleAlignment?: {
|
|
1666
|
+
vertical?: "top" | "center" | "bottom";
|
|
1667
|
+
horizontal?: "left" | "center" | "right";
|
|
1668
|
+
};
|
|
1669
|
+
padding?: 0 | 2 | 4 | 6 | 8 | 10;
|
|
1670
|
+
borderRadius?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
1671
|
+
borderWidth?: "none" | "thin" | "medium" | "thick";
|
|
1672
|
+
borderColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1673
|
+
overlayEnabled?: boolean;
|
|
1674
|
+
overlayType?: "solid" | "gradient";
|
|
1675
|
+
overlayIntensity?: number;
|
|
1676
|
+
gap?: "none" | "xs" | "sm" | "md" | "lg" | "xl";
|
|
1677
|
+
nestedTextColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1678
|
+
background?: string | {
|
|
1679
|
+
type: "solid" | "image";
|
|
1680
|
+
color?: ColorOption;
|
|
1681
|
+
resource?: string | null | JsonObject;
|
|
1682
|
+
};
|
|
1683
|
+
shareables?: JsonValue;
|
|
1684
|
+
};
|
|
1685
|
+
}
|
|
1686
|
+
interface PointsWidgetNode extends PortalWidgetNodeBase {
|
|
1687
|
+
readonly type: "PointsWidget";
|
|
1688
|
+
readonly props: {
|
|
1689
|
+
titleEnabled?: boolean;
|
|
1690
|
+
title?: string;
|
|
1691
|
+
titleFontSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
1692
|
+
titleColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1693
|
+
balanceColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1694
|
+
historyEnabled?: boolean;
|
|
1695
|
+
historyTitle?: string;
|
|
1696
|
+
background?: string | {
|
|
1697
|
+
type: "solid" | "image";
|
|
1698
|
+
color?: ColorOption;
|
|
1699
|
+
resource?: string | null | JsonObject;
|
|
1700
|
+
};
|
|
1701
|
+
textColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1702
|
+
accentColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1703
|
+
padding?: 0 | 2 | 4 | 6 | 8 | 10;
|
|
1704
|
+
borderRadius?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
1705
|
+
borderWidth?: "none" | "thin" | "medium" | "thick";
|
|
1706
|
+
borderColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1707
|
+
};
|
|
1708
|
+
}
|
|
1709
|
+
interface QuickLinksWidgetNode extends PortalWidgetNodeBase {
|
|
1710
|
+
readonly type: "QuickLinksWidget";
|
|
1711
|
+
readonly props: {
|
|
1712
|
+
titleEnabled?: boolean;
|
|
1713
|
+
title?: string;
|
|
1714
|
+
titleFontSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
1715
|
+
titleColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1716
|
+
link1Label?: string;
|
|
1717
|
+
link1Url?: string;
|
|
1718
|
+
link1Icon?: "Link" | "User" | "Share2" | "ShoppingBag" | "Video" | "Mail" | "MessageCircle" | "Globe" | "Calendar" | "Bell" | "Heart" | "Star" | "Zap" | "Gift" | "Phone" | "MapPin" | "Play" | "Package" | "ExternalLink" | "Bookmark" | "Trophy" | "Sparkles";
|
|
1719
|
+
link1Color?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1720
|
+
link2Enabled?: boolean;
|
|
1721
|
+
link2Label?: string;
|
|
1722
|
+
link2Url?: string;
|
|
1723
|
+
link2Icon?: "Link" | "User" | "Share2" | "ShoppingBag" | "Video" | "Mail" | "MessageCircle" | "Globe" | "Calendar" | "Bell" | "Heart" | "Star" | "Zap" | "Gift" | "Phone" | "MapPin" | "Play" | "Package" | "ExternalLink" | "Bookmark" | "Trophy" | "Sparkles";
|
|
1724
|
+
link2Color?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1725
|
+
link3Enabled?: boolean;
|
|
1726
|
+
link3Label?: string;
|
|
1727
|
+
link3Url?: string;
|
|
1728
|
+
link3Icon?: "Link" | "User" | "Share2" | "ShoppingBag" | "Video" | "Mail" | "MessageCircle" | "Globe" | "Calendar" | "Bell" | "Heart" | "Star" | "Zap" | "Gift" | "Phone" | "MapPin" | "Play" | "Package" | "ExternalLink" | "Bookmark" | "Trophy" | "Sparkles";
|
|
1729
|
+
link3Color?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1730
|
+
link4Enabled?: boolean;
|
|
1731
|
+
link4Label?: string;
|
|
1732
|
+
link4Url?: string;
|
|
1733
|
+
link4Icon?: "Link" | "User" | "Share2" | "ShoppingBag" | "Video" | "Mail" | "MessageCircle" | "Globe" | "Calendar" | "Bell" | "Heart" | "Star" | "Zap" | "Gift" | "Phone" | "MapPin" | "Play" | "Package" | "ExternalLink" | "Bookmark" | "Trophy" | "Sparkles";
|
|
1734
|
+
link4Color?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1735
|
+
link5Enabled?: boolean;
|
|
1736
|
+
link5Label?: string;
|
|
1737
|
+
link5Url?: string;
|
|
1738
|
+
link5Icon?: "Link" | "User" | "Share2" | "ShoppingBag" | "Video" | "Mail" | "MessageCircle" | "Globe" | "Calendar" | "Bell" | "Heart" | "Star" | "Zap" | "Gift" | "Phone" | "MapPin" | "Play" | "Package" | "ExternalLink" | "Bookmark" | "Trophy" | "Sparkles";
|
|
1739
|
+
link5Color?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1740
|
+
link6Enabled?: boolean;
|
|
1741
|
+
link6Label?: string;
|
|
1742
|
+
link6Url?: string;
|
|
1743
|
+
link6Icon?: "Link" | "User" | "Share2" | "ShoppingBag" | "Video" | "Mail" | "MessageCircle" | "Globe" | "Calendar" | "Bell" | "Heart" | "Star" | "Zap" | "Gift" | "Phone" | "MapPin" | "Play" | "Package" | "ExternalLink" | "Bookmark" | "Trophy" | "Sparkles";
|
|
1744
|
+
link6Color?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1745
|
+
link7Enabled?: boolean;
|
|
1746
|
+
link7Label?: string;
|
|
1747
|
+
link7Url?: string;
|
|
1748
|
+
link7Icon?: "Link" | "User" | "Share2" | "ShoppingBag" | "Video" | "Mail" | "MessageCircle" | "Globe" | "Calendar" | "Bell" | "Heart" | "Star" | "Zap" | "Gift" | "Phone" | "MapPin" | "Play" | "Package" | "ExternalLink" | "Bookmark" | "Trophy" | "Sparkles";
|
|
1749
|
+
link7Color?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1750
|
+
link8Enabled?: boolean;
|
|
1751
|
+
link8Label?: string;
|
|
1752
|
+
link8Url?: string;
|
|
1753
|
+
link8Icon?: "Link" | "User" | "Share2" | "ShoppingBag" | "Video" | "Mail" | "MessageCircle" | "Globe" | "Calendar" | "Bell" | "Heart" | "Star" | "Zap" | "Gift" | "Phone" | "MapPin" | "Play" | "Package" | "ExternalLink" | "Bookmark" | "Trophy" | "Sparkles";
|
|
1754
|
+
link8Color?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1755
|
+
layout?: "cards" | "list";
|
|
1756
|
+
iconRadius?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
1757
|
+
showChevron?: boolean;
|
|
1758
|
+
openInNewTab?: boolean;
|
|
1759
|
+
background?: string | {
|
|
1760
|
+
type: "solid" | "image";
|
|
1761
|
+
color?: ColorOption;
|
|
1762
|
+
resource?: string | null | JsonObject;
|
|
1763
|
+
};
|
|
1764
|
+
textColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1765
|
+
padding?: 0 | 2 | 4 | 6 | 8 | 10;
|
|
1766
|
+
borderRadius?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
1767
|
+
borderWidth?: "none" | "thin" | "medium" | "thick";
|
|
1768
|
+
borderColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1769
|
+
};
|
|
1770
|
+
}
|
|
1771
|
+
interface QuickShareWidgetNode extends PortalWidgetNodeBase {
|
|
1772
|
+
readonly type: "QuickShareWidget";
|
|
1773
|
+
readonly props: {
|
|
1774
|
+
shareableResource?: string | null | JsonObject;
|
|
1775
|
+
titleEnabled?: boolean;
|
|
1776
|
+
titleText?: string;
|
|
1777
|
+
titleFontSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
1778
|
+
titleColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1779
|
+
showResourceType?: boolean;
|
|
1780
|
+
showShareActions?: boolean;
|
|
1781
|
+
showDomainPrefix?: boolean;
|
|
1782
|
+
showBuyButton?: boolean;
|
|
1783
|
+
textColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1784
|
+
accentColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1785
|
+
overlayEnabled?: boolean;
|
|
1786
|
+
overlayType?: "gradient" | "solid";
|
|
1787
|
+
overlayIntensity?: number;
|
|
1788
|
+
padding?: 0 | 2 | 4 | 6 | 8 | 10;
|
|
1789
|
+
borderRadius?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
1790
|
+
borderWidth?: "none" | "thin" | "medium" | "thick";
|
|
1791
|
+
borderColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1792
|
+
};
|
|
1793
|
+
}
|
|
1794
|
+
interface RecentActivityWidgetNode extends PortalWidgetNodeBase {
|
|
1795
|
+
readonly type: "RecentActivityWidget";
|
|
1796
|
+
readonly props: {
|
|
1797
|
+
titleEnabled?: boolean;
|
|
1798
|
+
titleText?: string;
|
|
1799
|
+
titleFontSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
1800
|
+
titleColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1801
|
+
showEyebrow?: boolean;
|
|
1802
|
+
showCountChip?: boolean;
|
|
1803
|
+
maxItemsToShow?: number;
|
|
1804
|
+
showRelativeTime?: boolean;
|
|
1805
|
+
background?: string | {
|
|
1806
|
+
type: "solid" | "image";
|
|
1807
|
+
color?: ColorOption;
|
|
1808
|
+
resource?: string | null | JsonObject;
|
|
1809
|
+
};
|
|
1810
|
+
textColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1811
|
+
accentColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1812
|
+
padding?: 0 | 2 | 4 | 6 | 8 | 10;
|
|
1813
|
+
borderRadius?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
1814
|
+
borderWidth?: "none" | "thin" | "medium" | "thick";
|
|
1815
|
+
borderColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1816
|
+
};
|
|
1817
|
+
}
|
|
1818
|
+
interface SeparatorWidgetNode extends PortalWidgetNodeBase {
|
|
1819
|
+
readonly type: "SeparatorWidget";
|
|
1820
|
+
readonly props: {
|
|
1821
|
+
orientation?: "horizontal" | "vertical";
|
|
1822
|
+
color?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1823
|
+
thickness?: string;
|
|
1824
|
+
width?: string;
|
|
1825
|
+
marginTop?: 0 | 2 | 4 | 6 | 8 | 10;
|
|
1826
|
+
marginBottom?: 0 | 2 | 4 | 6 | 8 | 10;
|
|
1827
|
+
};
|
|
1828
|
+
}
|
|
1829
|
+
interface ShopWidgetNode extends PortalWidgetNodeBase {
|
|
1830
|
+
readonly type: "ShopWidget";
|
|
1831
|
+
readonly props: {
|
|
1832
|
+
titleEnabled?: boolean;
|
|
1833
|
+
title?: string;
|
|
1834
|
+
titleColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1835
|
+
showSearch?: boolean;
|
|
1836
|
+
showSort?: boolean;
|
|
1837
|
+
columns?: 2 | 3 | 4 | 5 | 6;
|
|
1838
|
+
background?: string | {
|
|
1839
|
+
type: "solid" | "image";
|
|
1840
|
+
color?: ColorOption;
|
|
1841
|
+
resource?: string | null | JsonObject;
|
|
1842
|
+
};
|
|
1843
|
+
padding?: 0 | 2 | 4 | 6 | 8 | 10;
|
|
1844
|
+
borderRadius?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
1845
|
+
cardBackground?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1846
|
+
cardTextColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1847
|
+
useDataSource?: boolean;
|
|
1848
|
+
pageSize?: number;
|
|
1849
|
+
products?: JsonValue;
|
|
1850
|
+
};
|
|
1851
|
+
}
|
|
1852
|
+
interface SpacerWidgetNode extends PortalWidgetNodeBase {
|
|
1853
|
+
readonly type: "SpacerWidget";
|
|
1854
|
+
readonly props: {
|
|
1855
|
+
customHeight?: string;
|
|
1856
|
+
};
|
|
1857
|
+
}
|
|
1858
|
+
interface TableWidgetNode extends PortalWidgetNodeBase {
|
|
1859
|
+
readonly type: "TableWidget";
|
|
1860
|
+
readonly props: {
|
|
1861
|
+
titleEnabled?: boolean;
|
|
1862
|
+
titleText?: string;
|
|
1863
|
+
titleFontSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
1864
|
+
titleColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1865
|
+
background?: string | {
|
|
1866
|
+
type: "solid" | "image";
|
|
1867
|
+
color?: ColorOption;
|
|
1868
|
+
resource?: string | null | JsonObject;
|
|
1869
|
+
};
|
|
1870
|
+
alternatingColorEnabled?: boolean;
|
|
1871
|
+
headerBackgroundColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1872
|
+
textColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1873
|
+
headerTextColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1874
|
+
padding?: 0 | 2 | 4 | 6 | 8 | 10;
|
|
1875
|
+
borderRadius?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
1876
|
+
borderWidth?: "none" | "thin" | "medium" | "thick";
|
|
1877
|
+
borderColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1878
|
+
filterEnabled?: boolean;
|
|
1879
|
+
sortingEnabled?: boolean;
|
|
1880
|
+
paginationEnabled?: boolean;
|
|
1881
|
+
maxRowsPerPage?: number;
|
|
1882
|
+
data?: JsonValue;
|
|
1883
|
+
columns?: JsonValue;
|
|
1884
|
+
};
|
|
1885
|
+
}
|
|
1886
|
+
interface TextWidgetNode extends PortalWidgetNodeBase {
|
|
1887
|
+
readonly type: "TextWidget";
|
|
1888
|
+
readonly props: {
|
|
1889
|
+
titleEnabled?: boolean;
|
|
1890
|
+
title?: string;
|
|
1891
|
+
titleFontSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
1892
|
+
titleFontWeight?: "normal" | "medium" | "semibold" | "bold";
|
|
1893
|
+
titleColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1894
|
+
titleAlignment?: "left" | "center" | "right";
|
|
1895
|
+
description?: string;
|
|
1896
|
+
descriptionFontSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
1897
|
+
descriptionFontWeight?: "normal" | "medium" | "semibold" | "bold";
|
|
1898
|
+
descriptionColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1899
|
+
descriptionAlignment?: "left" | "center" | "right";
|
|
1900
|
+
background?: string | {
|
|
1901
|
+
type: "solid" | "image";
|
|
1902
|
+
color?: ColorOption;
|
|
1903
|
+
resource?: string | null | JsonObject;
|
|
1904
|
+
};
|
|
1905
|
+
padding?: 0 | 2 | 4 | 6 | 8 | 10;
|
|
1906
|
+
borderRadius?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
1907
|
+
borderWidth?: "none" | "thin" | "medium" | "thick";
|
|
1908
|
+
borderColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1909
|
+
};
|
|
1910
|
+
}
|
|
1911
|
+
interface ToDoWidgetNode extends PortalWidgetNodeBase {
|
|
1912
|
+
readonly type: "ToDoWidget";
|
|
1913
|
+
readonly props: {
|
|
1914
|
+
titleEnabled?: boolean;
|
|
1915
|
+
titleText?: string;
|
|
1916
|
+
titleFontSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
1917
|
+
titleColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1918
|
+
background?: string | {
|
|
1919
|
+
type: "solid" | "image";
|
|
1920
|
+
color?: ColorOption;
|
|
1921
|
+
resource?: string | null | JsonObject;
|
|
1922
|
+
};
|
|
1923
|
+
textColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1924
|
+
accentColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1925
|
+
maxItems?: number;
|
|
1926
|
+
padding?: 0 | 2 | 4 | 6 | 8 | 10;
|
|
1927
|
+
borderRadius?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
1928
|
+
borderWidth?: "none" | "thin" | "medium" | "thick";
|
|
1929
|
+
borderColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1930
|
+
};
|
|
1931
|
+
}
|
|
1932
|
+
interface VideoWidgetNode extends PortalWidgetNodeBase {
|
|
1933
|
+
readonly type: "VideoWidget";
|
|
1934
|
+
readonly props: {
|
|
1935
|
+
resource?: string | null | JsonObject;
|
|
1936
|
+
useCustomUrl?: boolean;
|
|
1937
|
+
src?: string;
|
|
1938
|
+
poster?: string;
|
|
1939
|
+
displayMode?: "inline" | "card";
|
|
1940
|
+
title?: string;
|
|
1941
|
+
tagline?: string;
|
|
1942
|
+
eyebrow?: string;
|
|
1943
|
+
tag?: string;
|
|
1944
|
+
duration?: string;
|
|
1945
|
+
author?: string;
|
|
1946
|
+
date?: string;
|
|
1947
|
+
editorialFrame?: boolean;
|
|
1948
|
+
frameColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1949
|
+
showFullscreenPill?: boolean;
|
|
1950
|
+
primaryCtaText?: string;
|
|
1951
|
+
primaryCtaLink?: string;
|
|
1952
|
+
secondaryCtaText?: string;
|
|
1953
|
+
secondaryCtaLink?: string;
|
|
1954
|
+
borderRadius?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
1955
|
+
borderWidth?: "none" | "thin" | "medium" | "thick";
|
|
1956
|
+
borderColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1957
|
+
verticalSizing?: "auto" | "fixed";
|
|
1958
|
+
fixedHeight?: string;
|
|
1959
|
+
displayFit?: "cover" | "contain";
|
|
1960
|
+
focusPoint?: string;
|
|
1961
|
+
controls?: boolean;
|
|
1962
|
+
autoplay?: boolean;
|
|
1963
|
+
loop?: boolean;
|
|
1964
|
+
muted?: boolean;
|
|
1965
|
+
};
|
|
1966
|
+
}
|
|
1967
|
+
type PortalBuiltinWidgetNode = AlertWidgetNode | BulletListWidgetNode | CalendarWidgetNode | CardWidgetNode | CarouselWidgetNode | CatchUpWidgetNode | ChartWidgetNode | ContainerWidgetNode | EmbedWidgetNode | ImageWidgetNode | LayoutWidgetNode | LinkWidgetNode | ListWidgetNode | MySiteWidgetNode | NestedWidgetNode | PointsWidgetNode | QuickLinksWidgetNode | QuickShareWidgetNode | RecentActivityWidgetNode | SeparatorWidgetNode | ShopWidgetNode | SpacerWidgetNode | TableWidgetNode | TextWidgetNode | ToDoWidgetNode | VideoWidgetNode;
|
|
1968
|
+
interface PortalNetworkAccessGrant {
|
|
1969
|
+
readonly packageId: string;
|
|
1970
|
+
readonly packageVersion: string;
|
|
1971
|
+
readonly capabilityVersion: string;
|
|
1972
|
+
}
|
|
1973
|
+
interface PortalThirdPartyWidgetNode extends PortalWidgetNodeBase {
|
|
1974
|
+
readonly type: `company.${string}.${string}` | `droplet.${string}.${string}`;
|
|
1975
|
+
readonly props: JsonObject;
|
|
1976
|
+
readonly capabilityGrants?: {
|
|
1977
|
+
readonly networkAccess?: PortalNetworkAccessGrant;
|
|
1978
|
+
};
|
|
1979
|
+
}
|
|
1980
|
+
type PortalWidgetNode = PortalBuiltinWidgetNode | PortalThirdPartyWidgetNode;
|
|
1981
|
+
interface PortalScreen {
|
|
1982
|
+
readonly $schema?: string;
|
|
1983
|
+
readonly name: string;
|
|
1984
|
+
readonly component_tree: PortalWidgetNode[];
|
|
1985
|
+
}
|
|
1986
|
+
interface PortalThemeColor {
|
|
1987
|
+
readonly base: {
|
|
1988
|
+
readonly l: number;
|
|
1989
|
+
readonly c: number;
|
|
1990
|
+
readonly h: number;
|
|
1991
|
+
};
|
|
1992
|
+
readonly foreground: {
|
|
1993
|
+
readonly l: number;
|
|
1994
|
+
readonly c: number;
|
|
1995
|
+
readonly h: number;
|
|
1996
|
+
};
|
|
1997
|
+
}
|
|
1998
|
+
interface PortalThemeConfig {
|
|
1999
|
+
readonly id: string;
|
|
1283
2000
|
readonly name: string;
|
|
1284
|
-
readonly
|
|
2001
|
+
readonly light: Readonly<Record<"background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "destructive", PortalThemeColor>>;
|
|
2002
|
+
readonly dark: Readonly<Partial<Record<"background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "destructive", {
|
|
2003
|
+
readonly base?: PortalThemeColor["base"];
|
|
2004
|
+
readonly foreground?: PortalThemeColor["foreground"];
|
|
2005
|
+
}>>>;
|
|
2006
|
+
readonly fontSizes: Readonly<Record<"extraSmall" | "small" | "regular" | "large" | "extraLarge" | "giant", string>>;
|
|
2007
|
+
readonly fontFamilies: Readonly<Record<"header" | "body", string>>;
|
|
2008
|
+
readonly spacing: string;
|
|
2009
|
+
readonly radii: Readonly<Record<"small" | "medium" | "large" | "extraLarge", string>>;
|
|
2010
|
+
readonly syncWithBrandColors?: boolean;
|
|
1285
2011
|
}
|
|
1286
|
-
interface
|
|
2012
|
+
interface PortalTheme {
|
|
2013
|
+
readonly $schema?: string;
|
|
1287
2014
|
readonly name: string;
|
|
1288
|
-
readonly config:
|
|
2015
|
+
readonly config: PortalThemeConfig;
|
|
1289
2016
|
readonly active: boolean;
|
|
1290
2017
|
}
|
|
1291
|
-
interface
|
|
1292
|
-
/** Server-owned sync identity. New draft items omit it until push. */
|
|
2018
|
+
interface PortalNavigationItem {
|
|
1293
2019
|
readonly id?: number;
|
|
1294
2020
|
readonly icon: string | null;
|
|
1295
2021
|
readonly label: string | null;
|
|
@@ -1298,14 +2024,16 @@ interface LocalNavigationItem {
|
|
|
1298
2024
|
readonly source: string;
|
|
1299
2025
|
readonly position: number | null;
|
|
1300
2026
|
readonly parent_id: number | null;
|
|
1301
|
-
readonly children:
|
|
2027
|
+
readonly children: PortalNavigationItem[];
|
|
1302
2028
|
}
|
|
1303
|
-
interface
|
|
2029
|
+
interface PortalNavigation {
|
|
2030
|
+
readonly $schema?: string;
|
|
1304
2031
|
readonly name: string;
|
|
1305
|
-
readonly platform:
|
|
1306
|
-
readonly navigation_items:
|
|
2032
|
+
readonly platform: "web" | "mobile";
|
|
2033
|
+
readonly navigation_items: PortalNavigationItem[];
|
|
1307
2034
|
}
|
|
1308
|
-
interface
|
|
2035
|
+
interface PortalProfile {
|
|
2036
|
+
readonly $schema?: string;
|
|
1309
2037
|
readonly name: string;
|
|
1310
2038
|
readonly default: boolean;
|
|
1311
2039
|
readonly navigation: string | null;
|
|
@@ -1318,6 +2046,18 @@ interface LocalProfile {
|
|
|
1318
2046
|
readonly countries: number[];
|
|
1319
2047
|
};
|
|
1320
2048
|
}
|
|
2049
|
+
//#endregion
|
|
2050
|
+
//#region src/utils/transform.d.ts
|
|
2051
|
+
type ApiScreen = FluidOsScreen;
|
|
2052
|
+
type ApiTheme = FluidOsTheme;
|
|
2053
|
+
type ApiNavigationBasic = FluidOsNavigationBasic;
|
|
2054
|
+
type ApiNavigationItem = FluidOsNavigationItem;
|
|
2055
|
+
type ApiProfile = FluidOsProfile;
|
|
2056
|
+
type LocalScreen = PortalScreen;
|
|
2057
|
+
type LocalTheme = PortalTheme;
|
|
2058
|
+
type LocalNavigationItem = PortalNavigationItem;
|
|
2059
|
+
type LocalNavigation = PortalNavigation;
|
|
2060
|
+
type LocalProfile = PortalProfile;
|
|
1321
2061
|
/**
|
|
1322
2062
|
* Transform an API screen response into the local file format.
|
|
1323
2063
|
* Strips server-only fields and normalizes `component_tree` to always be an array.
|
|
@@ -1330,7 +2070,8 @@ declare function transformScreen(screen: ApiScreen): LocalScreen;
|
|
|
1330
2070
|
declare function deriveScreenSlug(screen: ApiScreen, existingSlugs: Set<string>): string;
|
|
1331
2071
|
/**
|
|
1332
2072
|
* Transform an API theme response into the local file format.
|
|
1333
|
-
*
|
|
2073
|
+
* Normalizes both legacy flat and structured API configs to the current
|
|
2074
|
+
* structured theme payload.
|
|
1334
2075
|
*/
|
|
1335
2076
|
declare function transformTheme(theme: ApiTheme): LocalTheme;
|
|
1336
2077
|
/**
|
|
@@ -1363,5 +2104,5 @@ declare function transformProfile(profile: ApiProfile, navIdToSlug: Map<number,
|
|
|
1363
2104
|
//#region src/index.d.ts
|
|
1364
2105
|
declare const plugin: FluidPlugin;
|
|
1365
2106
|
//#endregion
|
|
1366
|
-
export { type BuildOptions, CANONICAL_PROJECT_NAME, type CategorizedChanges, type CompanyPackagePreflight, type CompanyWidgetPackage, type ConfiguredWidgetPackage, type CreateOptions, type CreatePortalGitCredentialOptions, type CreatePortalProjectDependencies, type DefinitionMapping, type DevOptions, FILE_SYSTEM_ERRORS, type FileHash, type FileHashMap, type FileSystemError, type FileSystemErrorCode, type GitCredentialOutcome, GitError, type LocalNavigation, type LocalNavigationItem, type LocalProfile, type LocalScreen, type LocalTheme, type MappedResourceType, type PortalDeployOptions, type PortalGitCredential, type PortalGitSyncOptions, type PortalGitSyncResult, type PortalMappings, type ProjectConfig, type PublishWidgetRuntimeArtifactsOptions, type ScaffoldFromGitHubOptions, type SelectedPageTemplate, type Snapshot, type SnapshotDiff, TEMPLATES, TEMPLATE_REPO_URL, type TemplateName, type TemplatePaths, type TemplateVariables, type ValidationError, type WidgetCreateOptions, type WidgetPublishOptions, buildIdToSlugMap, buildNavigationIdToSlugMap, buildSnapshot, buildThemeIdToSlugMap, categorizeChanges, cloneCommand, computeFileHash, copyTemplate, copyTemplateSafe, createCommand, createDirectory, createDirectorySafe, createPortalGitCredential, createPortalProject, plugin as default, deployCommand, deriveScreenSlug, deriveSlug, diffAgainstSnapshot, directoryExists, doctorCommand, ensureGitAvailable, fileExists, formatPackageKeyMismatch, getInstallCommand, getOriginUrl, getRunCommand, getSdkVersion, getSdkVersionSafe, getTemplatePaths, gitAheadBehindVsFetchHead, gitAutoCommit, gitClone, gitFetch, gitInit, gitMergeFastForward, gitMissingError, gitPush, hasUncommittedChanges, installDependencies, isGitAvailable, isGitRepo, pathExists, portalGitCredentialPath, preflightCompanyPackage, promptProjectConfig, publishWidgetRuntimeArtifacts, pullCommand, pushCommand, readCompanyWidgetPackage, readFileSafe, readMappings, readSnapshot, removeMapping, resolveIdToSlug, resolvePublishVersion, resolveSlugToId, rewriteProjectName, runPackageManager, runPortalGitSync, scaffoldFromGitHub, slugFromPath, topLevelWidgetCommand, transformNavigation, transformNavigationItems, transformProfile, transformScreen, transformTheme, updateMapping, validateCrossReferences, versionCommand, widgetCommand, writeFileSafe, writeFluidrcProfile, writeMappings, writeSnapshot };
|
|
2107
|
+
export { type BuildOptions, CANONICAL_PROJECT_NAME, type CategorizedChanges, type CompanyPackagePreflight, type CompanyWidgetPackage, type ConfiguredWidgetPackage, type CreateOptions, type CreatePortalGitCredentialOptions, type CreatePortalProjectDependencies, type DefinitionMapping, type DevOptions, FILE_SYSTEM_ERRORS, type FileHash, type FileHashMap, type FileSystemError, type FileSystemErrorCode, type GitCredentialOutcome, GitError, type LocalNavigation, type LocalNavigationItem, type LocalProfile, type LocalScreen, type LocalTheme, type MappedResourceType, type PortalDeployOptions, type PortalGitCredential, type PortalGitSyncOptions, type PortalGitSyncResult, type PortalMappings, type ProjectConfig, type PublishWidgetRuntimeArtifactsOptions, type ScaffoldFromGitHubOptions, type SelectedPageTemplate, type Snapshot, type SnapshotDiff, TEMPLATES, TEMPLATE_REPO_URL, type TemplateName, type TemplatePaths, type TemplateVariables, type ValidationError, type WidgetCreateOptions, type WidgetPublishOptions, buildIdToSlugMap, buildNavigationIdToSlugMap, buildSnapshot, buildThemeIdToSlugMap, categorizeChanges, cloneCommand, computeFileHash, copyTemplate, copyTemplateSafe, createCommand, createDirectory, createDirectorySafe, createPortalGitCredential, createPortalProject, plugin as default, deployCommand, deriveScreenSlug, deriveSlug, diffAgainstSnapshot, directoryExists, doctorCommand, ensureGitAvailable, fileExists, formatPackageKeyMismatch, getInstallCommand, getOriginUrl, getRunCommand, getSdkVersion, getSdkVersionSafe, getTemplatePaths, gitAheadBehindVsFetchHead, gitAutoCommit, gitClone, gitFetch, gitInit, gitMergeFastForward, gitMissingError, gitPush, hasUncommittedChanges, installDependencies, isGitAvailable, isGitRepo, pathExists, portalGitCredentialPath, preflightCompanyPackage, promptProjectConfig, publishWidgetRuntimeArtifacts, pullCommand, pushCommand, readCompanyWidgetPackage, readFileSafe, readMappings, readSnapshot, removeMapping, resolveIdToSlug, resolvePublishVersion, resolveSlugToId, rewriteProjectName, runPackageManager, runPortalGitSync, scaffoldFromGitHub, slugFromPath, topLevelWidgetCommand, transformNavigation, transformNavigationItems, transformProfile, transformScreen, transformTheme, updateMapping, validateCrossReferences, validatePortalSchemas, versionCommand, widgetCommand, writeFileSafe, writeFluidrcProfile, writeMappings, writeSnapshot };
|
|
1367
2108
|
//# sourceMappingURL=index.d.mts.map
|