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