@fusebase/fusebase-gate-sdk 2.4.0 → 2.5.0
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/apis/FusebaseAuthApi.d.ts +9 -1
- package/dist/apis/FusebaseAuthApi.js +14 -0
- package/dist/apis/PortalFeatureContextApi.d.ts +1 -1
- package/dist/apis/PortalFeatureContextApi.js +1 -1
- package/dist/apis/PortalsApi.d.ts +167 -2
- package/dist/apis/PortalsApi.js +181 -1
- package/dist/types/fusebase-auth/fusebase-auth.d.ts +7 -0
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.js +1 -0
- package/dist/types/portal-feature-context/portal-feature-context.d.ts +23 -7
- package/dist/types/portals/portals.d.ts +608 -0
- package/dist/types/portals/portals.js +42 -0
- package/package.json +1 -1
- package/release-notes/2.5.0.md +9 -0
- package/release-notes/latest.md +3 -3
- package/release-notes/2.4.0.md +0 -9
|
@@ -233,6 +233,528 @@ export interface AddPortalEmbedBlockResponseContract {
|
|
|
233
233
|
*/
|
|
234
234
|
staged: boolean;
|
|
235
235
|
}
|
|
236
|
+
/** Customizer "Type" for the Database block: a database table, or a shared dashboard. */
|
|
237
|
+
export type PortalDatabaseBlockTargetContract = {
|
|
238
|
+
/** Customizer Type: Database. */
|
|
239
|
+
type: "database";
|
|
240
|
+
databaseId: string;
|
|
241
|
+
/** Database-bound dashboard (Customizer label: Table). */
|
|
242
|
+
dashboardId: string;
|
|
243
|
+
viewId: string;
|
|
244
|
+
} | {
|
|
245
|
+
/** Customizer Type: Dashboard. */
|
|
246
|
+
type: "dashboard";
|
|
247
|
+
/** Shared dashboard source, e.g. All forms. */
|
|
248
|
+
dashboardId: string;
|
|
249
|
+
viewId: string;
|
|
250
|
+
};
|
|
251
|
+
/**
|
|
252
|
+
* Customizer background picker. Colors are Tailwind palette tokens
|
|
253
|
+
* (e.g. `red-200`, `orange-900`), never HEX; raw CSS is not accepted.
|
|
254
|
+
*/
|
|
255
|
+
export type PortalBackgroundContract = {
|
|
256
|
+
type: "color";
|
|
257
|
+
color: string;
|
|
258
|
+
} | {
|
|
259
|
+
type: "gradient";
|
|
260
|
+
from: string;
|
|
261
|
+
to: string;
|
|
262
|
+
/** Default: `to-b`. */
|
|
263
|
+
direction?: "to-t" | "to-b" | "to-r" | "to-l";
|
|
264
|
+
} | {
|
|
265
|
+
type: "image";
|
|
266
|
+
image: {
|
|
267
|
+
url: string;
|
|
268
|
+
};
|
|
269
|
+
};
|
|
270
|
+
/** Customizer Appearance section. Only `custom` carries the extra controls. */
|
|
271
|
+
export type PortalDatabaseBlockAppearanceContract = {
|
|
272
|
+
backdrop: "none" | "blank";
|
|
273
|
+
} | {
|
|
274
|
+
backdrop: "custom";
|
|
275
|
+
background: PortalBackgroundContract;
|
|
276
|
+
/** Default: `m`. */
|
|
277
|
+
padding?: "none" | "s" | "m" | "l";
|
|
278
|
+
/** Default: true. */
|
|
279
|
+
showTitle?: boolean;
|
|
280
|
+
};
|
|
281
|
+
/** Customizer Layout section. */
|
|
282
|
+
export interface PortalDatabaseBlockLayoutContract {
|
|
283
|
+
/** Customizer Width. Default: 6. */
|
|
284
|
+
colspan?: 2 | 3 | 4 | 5 | 6;
|
|
285
|
+
/** Customizer Height: null = Auto; a manual value is at least 50px. Default: null. */
|
|
286
|
+
height?: number | null;
|
|
287
|
+
}
|
|
288
|
+
export interface AddPortalDatabaseBlockRequestContract {
|
|
289
|
+
/** Exact ids from listPortalDatabaseBlockSources; names and aliases are rejected. */
|
|
290
|
+
target: PortalDatabaseBlockTargetContract;
|
|
291
|
+
/** Block title. Default: "Database". */
|
|
292
|
+
title?: string;
|
|
293
|
+
/** Rows shown per page. Default: 100. */
|
|
294
|
+
itemsPerPage?: 10 | 20 | 50 | 100 | 200 | 500;
|
|
295
|
+
/** Visual wrapper of the portal block. Default: `{ backdrop: "blank" }`. */
|
|
296
|
+
appearance?: PortalDatabaseBlockAppearanceContract;
|
|
297
|
+
/** Grid placement. Default: width 6 columns and automatic height. */
|
|
298
|
+
layout?: PortalDatabaseBlockLayoutContract;
|
|
299
|
+
}
|
|
300
|
+
export interface AddPortalDatabaseBlockResponseContract {
|
|
301
|
+
/** Id of the created database block. */
|
|
302
|
+
blockId: string;
|
|
303
|
+
/** Id of the page the block was added to. */
|
|
304
|
+
pageId: string;
|
|
305
|
+
/** Draft branch the change was staged on. */
|
|
306
|
+
branchId: string;
|
|
307
|
+
/** Sequence numbers assigned to the staged change events (addBlock). */
|
|
308
|
+
seqs: number[];
|
|
309
|
+
/** Always true: the block is staged in the customizer draft, not yet live. */
|
|
310
|
+
staged: boolean;
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* One exact token of the Customizer common palette: `transparent`, `white`,
|
|
314
|
+
* `black` or `<hue>-<shade>` (e.g. `cyan-700`). HEX, rgb()/hsl(), CSS variables,
|
|
315
|
+
* `text-*`/`bg-*` classes and opacity values are rejected.
|
|
316
|
+
*/
|
|
317
|
+
export type PortalColorToken = string;
|
|
318
|
+
/**
|
|
319
|
+
* The palette token pattern, repeated on every colour property: a type alias to
|
|
320
|
+
* `string` carries no JSDoc tag into the generated schema, so the `@pattern`
|
|
321
|
+
* has to sit on the property itself.
|
|
322
|
+
*/
|
|
323
|
+
export type PortalTextSize = "s" | "m" | "l" | "xl";
|
|
324
|
+
export type PortalTextStyle = "bold" | "italic" | "underline" | "lineThrough";
|
|
325
|
+
export type PortalTextAlign = "left" | "center" | "right" | "justify";
|
|
326
|
+
/** The five Customizer preset background images. No URL or upload is accepted. */
|
|
327
|
+
export type PortalBackgroundImagePreset = "azure" | "mira" | "solis" | "serenity" | "glow";
|
|
328
|
+
/**
|
|
329
|
+
* Customizer background picker for a Text & Media block. Colours are palette
|
|
330
|
+
* tokens; an image is one of the five built-in presets.
|
|
331
|
+
*/
|
|
332
|
+
export type PortalTextBackgroundContract = {
|
|
333
|
+
type: "color";
|
|
334
|
+
/** @pattern ^(transparent|white|black|(slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(50|100|200|300|400|500|600|700|800|900|950))$ */
|
|
335
|
+
color: PortalColorToken;
|
|
336
|
+
} | {
|
|
337
|
+
type: "gradient";
|
|
338
|
+
/** @pattern ^(transparent|white|black|(slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(50|100|200|300|400|500|600|700|800|900|950))$ */
|
|
339
|
+
from: PortalColorToken;
|
|
340
|
+
/** @pattern ^(transparent|white|black|(slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(50|100|200|300|400|500|600|700|800|900|950))$ */
|
|
341
|
+
to: PortalColorToken;
|
|
342
|
+
/** Default: `to-t`. */
|
|
343
|
+
direction?: "to-t" | "to-r" | "to-b" | "to-l";
|
|
344
|
+
} | {
|
|
345
|
+
type: "image";
|
|
346
|
+
preset: PortalBackgroundImagePreset;
|
|
347
|
+
/** Default: false. */
|
|
348
|
+
blur?: boolean;
|
|
349
|
+
};
|
|
350
|
+
/** Customizer Appearance section. Only `custom` carries the extra controls. */
|
|
351
|
+
export type PortalFlexibleTextAppearanceContract = {
|
|
352
|
+
backdrop: "none" | "blank";
|
|
353
|
+
} | {
|
|
354
|
+
backdrop: "custom";
|
|
355
|
+
background: PortalTextBackgroundContract;
|
|
356
|
+
/** Default: `s`. */
|
|
357
|
+
padding?: "none" | "s" | "m" | "l";
|
|
358
|
+
/** Default: false. */
|
|
359
|
+
showTitle?: boolean;
|
|
360
|
+
};
|
|
361
|
+
/** Customizer Layout section shared by the three Text & Media operations. */
|
|
362
|
+
export interface PortalTextAndMediaLayoutContract {
|
|
363
|
+
/** Customizer Width. Default: 6. */
|
|
364
|
+
colspan?: 2 | 3 | 4 | 5 | 6;
|
|
365
|
+
/**
|
|
366
|
+
* Customizer Height: null = Auto; a manual value is at least 50px. Default: null.
|
|
367
|
+
* @minimum 50
|
|
368
|
+
*/
|
|
369
|
+
height?: number | null;
|
|
370
|
+
}
|
|
371
|
+
/** Customizer Content section of a Heading or Simple text block. */
|
|
372
|
+
export interface PortalTextContentContract {
|
|
373
|
+
/**
|
|
374
|
+
* Plain text. Only `{{ClientName}}` and `{{ClientLastName}}` are variables.
|
|
375
|
+
* @maxLength 5000
|
|
376
|
+
*/
|
|
377
|
+
text?: string;
|
|
378
|
+
/** @pattern ^(transparent|white|black|(slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(50|100|200|300|400|500|600|700|800|900|950))$ */
|
|
379
|
+
color?: PortalColorToken;
|
|
380
|
+
size?: PortalTextSize;
|
|
381
|
+
/** Set semantics: a duplicate value is rejected by portal-service with 400. */
|
|
382
|
+
styles?: PortalTextStyle[];
|
|
383
|
+
align?: PortalTextAlign;
|
|
384
|
+
}
|
|
385
|
+
export interface AddPortalHeadingBlockRequestContract {
|
|
386
|
+
/** Defaults: text "Your Title Goes Here", size `l`, no styles, left alignment. */
|
|
387
|
+
content?: PortalTextContentContract;
|
|
388
|
+
/** Default: `{ backdrop: "blank" }`. */
|
|
389
|
+
appearance?: PortalFlexibleTextAppearanceContract;
|
|
390
|
+
/** Default: width 6 columns and automatic height. */
|
|
391
|
+
layout?: PortalTextAndMediaLayoutContract;
|
|
392
|
+
}
|
|
393
|
+
export interface AddPortalTextBlockRequestContract {
|
|
394
|
+
/** Defaults: the Customizer's Simple text copy, size `m`, no styles, left alignment. */
|
|
395
|
+
content?: PortalTextContentContract;
|
|
396
|
+
/** Default: `{ backdrop: "blank" }`. */
|
|
397
|
+
appearance?: PortalFlexibleTextAppearanceContract;
|
|
398
|
+
/** Default: width 6 columns and automatic height. */
|
|
399
|
+
layout?: PortalTextAndMediaLayoutContract;
|
|
400
|
+
}
|
|
401
|
+
/** The Image block always stages the Customizer's stock image: only Layout applies. */
|
|
402
|
+
export interface AddPortalImageBlockRequestContract {
|
|
403
|
+
/** Default: width 6 columns and automatic height. */
|
|
404
|
+
layout?: PortalTextAndMediaLayoutContract;
|
|
405
|
+
}
|
|
406
|
+
export interface PortalTextAndMediaBlockResponseContract {
|
|
407
|
+
/** Id of the created block. */
|
|
408
|
+
blockId: string;
|
|
409
|
+
/** Id of the page the block was added to. */
|
|
410
|
+
pageId: string;
|
|
411
|
+
/** Draft branch the change was staged on. */
|
|
412
|
+
branchId: string;
|
|
413
|
+
/** Sequence numbers assigned to the staged change events (addBlock). */
|
|
414
|
+
seqs: number[];
|
|
415
|
+
/** Always true: the block is staged in the customizer draft, not yet live. */
|
|
416
|
+
staged: boolean;
|
|
417
|
+
}
|
|
418
|
+
/**
|
|
419
|
+
* Customizer background picker. Colours are palette tokens; an image is one of
|
|
420
|
+
* the five built-in presets.
|
|
421
|
+
*/
|
|
422
|
+
export type PortalCardBackgroundContract = {
|
|
423
|
+
type: "color";
|
|
424
|
+
/** @pattern ^(transparent|white|black|(slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(50|100|200|300|400|500|600|700|800|900|950))$ */
|
|
425
|
+
color: PortalColorToken;
|
|
426
|
+
} | {
|
|
427
|
+
type: "gradient";
|
|
428
|
+
/** @pattern ^(transparent|white|black|(slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(50|100|200|300|400|500|600|700|800|900|950))$ */
|
|
429
|
+
from: PortalColorToken;
|
|
430
|
+
/** @pattern ^(transparent|white|black|(slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(50|100|200|300|400|500|600|700|800|900|950))$ */
|
|
431
|
+
to: PortalColorToken;
|
|
432
|
+
/** Default: `to-t`. */
|
|
433
|
+
direction?: "to-t" | "to-r" | "to-b" | "to-l";
|
|
434
|
+
} | {
|
|
435
|
+
type: "image";
|
|
436
|
+
preset: PortalBackgroundImagePreset;
|
|
437
|
+
/** Default: false. */
|
|
438
|
+
blur?: boolean;
|
|
439
|
+
};
|
|
440
|
+
/** The four Card Types of the Customizer's Card tile. `compact` is legacy and rejected. */
|
|
441
|
+
export type PortalCardViewContract = "top-image" | "left-image" | "right-image" | "fill-image";
|
|
442
|
+
/**
|
|
443
|
+
* Customizer Appearance section of a Card. Omitting `appearance` keeps the
|
|
444
|
+
* Card's canonical `bare` wrapper, which is not a selectable backdrop.
|
|
445
|
+
*/
|
|
446
|
+
export type PortalCardAppearanceContract = {
|
|
447
|
+
backdrop: "none" | "blank";
|
|
448
|
+
} | {
|
|
449
|
+
backdrop: "custom";
|
|
450
|
+
background: PortalCardBackgroundContract;
|
|
451
|
+
/** Default: `s`. */
|
|
452
|
+
padding?: "none" | "s" | "m" | "l";
|
|
453
|
+
/** Default: false. */
|
|
454
|
+
showTitle?: boolean;
|
|
455
|
+
};
|
|
456
|
+
/** Customizer Layout section of a Card. */
|
|
457
|
+
export interface PortalCardLayoutContract {
|
|
458
|
+
/** Customizer Width. Default: 3. */
|
|
459
|
+
colspan?: 2 | 3 | 4 | 5 | 6;
|
|
460
|
+
/**
|
|
461
|
+
* Customizer Height: null = Auto; a manual value is at least 50px. Default: null.
|
|
462
|
+
* @minimum 50
|
|
463
|
+
*/
|
|
464
|
+
height?: number | null;
|
|
465
|
+
}
|
|
466
|
+
/**
|
|
467
|
+
* A hidden Card item carries ONLY `visible: false`: sending text or styles next
|
|
468
|
+
* to it would silently drop settings the caller believes they applied.
|
|
469
|
+
*/
|
|
470
|
+
export type PortalCardHeadingContract = {
|
|
471
|
+
visible: false;
|
|
472
|
+
} | {
|
|
473
|
+
/** Default: true. */
|
|
474
|
+
visible?: true;
|
|
475
|
+
/**
|
|
476
|
+
* Plain text. Only `{{ClientName}}` and `{{ClientLastName}}` are variables.
|
|
477
|
+
* @minLength 1
|
|
478
|
+
* @maxLength 100
|
|
479
|
+
*/
|
|
480
|
+
text?: string;
|
|
481
|
+
/** @pattern ^(transparent|white|black|(slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(50|100|200|300|400|500|600|700|800|900|950))$ */
|
|
482
|
+
color?: PortalColorToken;
|
|
483
|
+
size?: PortalTextSize;
|
|
484
|
+
/** Set semantics: a duplicate value is rejected with 400. */
|
|
485
|
+
styles?: PortalTextStyle[];
|
|
486
|
+
align?: PortalTextAlign;
|
|
487
|
+
};
|
|
488
|
+
export type PortalCardDescriptionContract = {
|
|
489
|
+
visible: false;
|
|
490
|
+
} | {
|
|
491
|
+
/** Default: true. */
|
|
492
|
+
visible?: true;
|
|
493
|
+
/**
|
|
494
|
+
* Plain text. Only `{{ClientName}}` and `{{ClientLastName}}` are variables.
|
|
495
|
+
* @minLength 1
|
|
496
|
+
* @maxLength 2000
|
|
497
|
+
*/
|
|
498
|
+
text?: string;
|
|
499
|
+
/** @pattern ^(transparent|white|black|(slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(50|100|200|300|400|500|600|700|800|900|950))$ */
|
|
500
|
+
color?: PortalColorToken;
|
|
501
|
+
size?: PortalTextSize;
|
|
502
|
+
/** Set semantics: a duplicate value is rejected with 400. */
|
|
503
|
+
styles?: PortalTextStyle[];
|
|
504
|
+
align?: PortalTextAlign;
|
|
505
|
+
};
|
|
506
|
+
export type PortalCardButtonContract = {
|
|
507
|
+
visible: false;
|
|
508
|
+
} | {
|
|
509
|
+
/** Default: true. */
|
|
510
|
+
visible?: true;
|
|
511
|
+
/**
|
|
512
|
+
* Plain text; the Button label supports no dynamic variables.
|
|
513
|
+
* @minLength 1
|
|
514
|
+
* @maxLength 100
|
|
515
|
+
*/
|
|
516
|
+
text?: string;
|
|
517
|
+
};
|
|
518
|
+
/** The Card always uses the template image: no source field is accepted. */
|
|
519
|
+
export interface PortalCardImageContract {
|
|
520
|
+
/** Default: true. */
|
|
521
|
+
visible?: boolean;
|
|
522
|
+
}
|
|
523
|
+
/** Semantic Destination of the whole Card (and of its Button). */
|
|
524
|
+
export type PortalCardDestinationContract = {
|
|
525
|
+
type: "portalPage";
|
|
526
|
+
/** Exact id of an existing page in the SAME portal. */
|
|
527
|
+
pageId: string;
|
|
528
|
+
} | {
|
|
529
|
+
type: "external";
|
|
530
|
+
/**
|
|
531
|
+
* Absolute https:// URL. `javascript:`, `data:`, a protocol-relative URL
|
|
532
|
+
* and embedded credentials are rejected.
|
|
533
|
+
* @maxLength 2048
|
|
534
|
+
*/
|
|
535
|
+
url: string;
|
|
536
|
+
} | {
|
|
537
|
+
type: "email";
|
|
538
|
+
/**
|
|
539
|
+
* Address only; portal-service adds the `mailto:` scheme.
|
|
540
|
+
* @maxLength 254
|
|
541
|
+
*/
|
|
542
|
+
email: string;
|
|
543
|
+
};
|
|
544
|
+
/** Customizer Content section of a Card. */
|
|
545
|
+
export interface PortalCardContentContract {
|
|
546
|
+
image?: PortalCardImageContract;
|
|
547
|
+
/** Default: "Helpful Resources", bold. */
|
|
548
|
+
heading?: PortalCardHeadingContract;
|
|
549
|
+
/** Default: the Customizer's Card copy. */
|
|
550
|
+
description?: PortalCardDescriptionContract;
|
|
551
|
+
/** Default: "Explore". */
|
|
552
|
+
button?: PortalCardButtonContract;
|
|
553
|
+
/**
|
|
554
|
+
* Omitted keeps the Customizer default link; `null` leaves the Card without
|
|
555
|
+
* any destination.
|
|
556
|
+
*/
|
|
557
|
+
destination?: PortalCardDestinationContract | null;
|
|
558
|
+
}
|
|
559
|
+
export interface AddPortalCardBlockRequestContract {
|
|
560
|
+
/** Card Type. Default: `top-image`. */
|
|
561
|
+
view?: PortalCardViewContract;
|
|
562
|
+
content?: PortalCardContentContract;
|
|
563
|
+
/** Omitted keeps the Card's canonical bare wrapper. */
|
|
564
|
+
appearance?: PortalCardAppearanceContract;
|
|
565
|
+
/** Default: width 3 columns and automatic height. */
|
|
566
|
+
layout?: PortalCardLayoutContract;
|
|
567
|
+
}
|
|
568
|
+
export interface AddPortalCardBlockResponseContract {
|
|
569
|
+
/** Id of the created block. */
|
|
570
|
+
blockId: string;
|
|
571
|
+
/** Id of the page the block was added to. */
|
|
572
|
+
pageId: string;
|
|
573
|
+
/** Draft branch the change was staged on. */
|
|
574
|
+
branchId: string;
|
|
575
|
+
/** Sequence numbers assigned to the staged change events (addBlock). */
|
|
576
|
+
seqs: number[];
|
|
577
|
+
/** Always true: the block is staged in the customizer draft, not yet live. */
|
|
578
|
+
staged: boolean;
|
|
579
|
+
}
|
|
580
|
+
/** Customizer Layout section of a Carousel. */
|
|
581
|
+
export interface PortalCarouselLayoutContract {
|
|
582
|
+
/** Customizer Width. Default: 6. */
|
|
583
|
+
colspan?: 2 | 3 | 4 | 5 | 6;
|
|
584
|
+
/**
|
|
585
|
+
* Customizer Height: null = Auto; a manual value is at least 50px. Default: null.
|
|
586
|
+
* @minimum 50
|
|
587
|
+
*/
|
|
588
|
+
height?: number | null;
|
|
589
|
+
}
|
|
590
|
+
/**
|
|
591
|
+
* One Carousel slide. The image is always a built-in one, and the index comes
|
|
592
|
+
* from the array order: neither is accepted from the caller.
|
|
593
|
+
*/
|
|
594
|
+
export interface PortalCarouselItemContract {
|
|
595
|
+
/**
|
|
596
|
+
* Plain text; the caption supports no dynamic variables.
|
|
597
|
+
* @minLength 1
|
|
598
|
+
*/
|
|
599
|
+
caption?: string;
|
|
600
|
+
/**
|
|
601
|
+
* Plain text. Only `{{ClientName}}` and `{{ClientLastName}}` are variables.
|
|
602
|
+
* @minLength 1
|
|
603
|
+
*/
|
|
604
|
+
description?: string;
|
|
605
|
+
/** `null` or omitted leaves the slide without a Button. */
|
|
606
|
+
button?: {
|
|
607
|
+
/**
|
|
608
|
+
* Plain label; the Button supports no dynamic variables.
|
|
609
|
+
* @minLength 1
|
|
610
|
+
*/
|
|
611
|
+
text: string;
|
|
612
|
+
} | null;
|
|
613
|
+
/**
|
|
614
|
+
* Destination of both the slide surface and its Button. `null` or omitted
|
|
615
|
+
* leaves the slide without a link.
|
|
616
|
+
*/
|
|
617
|
+
destination?: PortalCardDestinationContract | null;
|
|
618
|
+
}
|
|
619
|
+
/** Customizer Content section of a Carousel. */
|
|
620
|
+
export interface PortalCarouselContentContract {
|
|
621
|
+
/**
|
|
622
|
+
* The full desired slide list in visual order, not a patch. Omitting it keeps
|
|
623
|
+
* the three factory slides (Deliberation, Elaboration, Presentation).
|
|
624
|
+
* Server-side limits: 1 to 6 slides.
|
|
625
|
+
*/
|
|
626
|
+
items?: PortalCarouselItemContract[];
|
|
627
|
+
}
|
|
628
|
+
export interface AddPortalCarouselBlockRequestContract {
|
|
629
|
+
content?: PortalCarouselContentContract;
|
|
630
|
+
/** Default: width 6 columns and automatic height. */
|
|
631
|
+
layout?: PortalCarouselLayoutContract;
|
|
632
|
+
}
|
|
633
|
+
export interface AddPortalCarouselBlockResponseContract {
|
|
634
|
+
/** Id of the created block. */
|
|
635
|
+
blockId: string;
|
|
636
|
+
/** Id of the page the block was added to. */
|
|
637
|
+
pageId: string;
|
|
638
|
+
/** Draft branch the change was staged on. */
|
|
639
|
+
branchId: string;
|
|
640
|
+
/** Sequence numbers assigned to the staged change events (addBlock). */
|
|
641
|
+
seqs: number[];
|
|
642
|
+
/** Always true: the block is staged in the customizer draft, not yet live. */
|
|
643
|
+
staged: boolean;
|
|
644
|
+
}
|
|
645
|
+
/**
|
|
646
|
+
* Customizer Appearance section of a Countdown. Omitting `appearance` keeps the
|
|
647
|
+
* Countdown's canonical `blank` backdrop with the block title shown.
|
|
648
|
+
*/
|
|
649
|
+
export type PortalCountdownAppearanceContract = {
|
|
650
|
+
backdrop: "none" | "blank";
|
|
651
|
+
} | {
|
|
652
|
+
backdrop: "custom";
|
|
653
|
+
background: PortalCardBackgroundContract;
|
|
654
|
+
/** Default: `s`. */
|
|
655
|
+
padding?: "none" | "s" | "m" | "l";
|
|
656
|
+
/** Default: true. */
|
|
657
|
+
showTitle?: boolean;
|
|
658
|
+
};
|
|
659
|
+
/** Customizer Layout section of a Countdown. */
|
|
660
|
+
export interface PortalCountdownLayoutContract {
|
|
661
|
+
/** Customizer Width. Default: 6. */
|
|
662
|
+
colspan?: 2 | 3 | 4 | 5 | 6;
|
|
663
|
+
/**
|
|
664
|
+
* Customizer Height: null = Auto; a manual value is at least 50px. Default: null.
|
|
665
|
+
* @minimum 50
|
|
666
|
+
*/
|
|
667
|
+
height?: number | null;
|
|
668
|
+
}
|
|
669
|
+
/** Customizer Content section of a Countdown. */
|
|
670
|
+
export interface PortalCountdownContentContract {
|
|
671
|
+
/**
|
|
672
|
+
* The moment the countdown ends, as an absolute RFC 3339 date-time carrying
|
|
673
|
+
* `Z` or an explicit UTC offset, for example `2026-08-15T09:00:00+07:00`.
|
|
674
|
+
* Never epoch seconds/milliseconds and never a timezone-less local date.
|
|
675
|
+
* Default: 30 days after creation. Server-side limits: not in the past and at
|
|
676
|
+
* most 99 days after creation.
|
|
677
|
+
* @format date-time
|
|
678
|
+
*/
|
|
679
|
+
targetAt?: string;
|
|
680
|
+
}
|
|
681
|
+
export interface AddPortalCountdownBlockRequestContract {
|
|
682
|
+
/**
|
|
683
|
+
* Block title shown above the countdown. Plain text; only `{{ClientName}}`
|
|
684
|
+
* and `{{ClientLastName}}` are variables. Default: `Countdown`.
|
|
685
|
+
* @minLength 1
|
|
686
|
+
* @maxLength 100
|
|
687
|
+
*/
|
|
688
|
+
title?: string;
|
|
689
|
+
content?: PortalCountdownContentContract;
|
|
690
|
+
/** Omitted keeps the canonical blank backdrop with the title shown. */
|
|
691
|
+
appearance?: PortalCountdownAppearanceContract;
|
|
692
|
+
/** Default: width 6 columns and automatic height. */
|
|
693
|
+
layout?: PortalCountdownLayoutContract;
|
|
694
|
+
}
|
|
695
|
+
export interface AddPortalCountdownBlockResponseContract {
|
|
696
|
+
/** Id of the created block. */
|
|
697
|
+
blockId: string;
|
|
698
|
+
/** Id of the page the block was added to. */
|
|
699
|
+
pageId: string;
|
|
700
|
+
/** Draft branch the change was staged on. */
|
|
701
|
+
branchId: string;
|
|
702
|
+
/** Sequence numbers assigned to the staged change events (addBlock). */
|
|
703
|
+
seqs: number[];
|
|
704
|
+
/** Always true: the block is staged in the customizer draft, not yet live. */
|
|
705
|
+
staged: boolean;
|
|
706
|
+
}
|
|
707
|
+
/** One selectable view of a Database table or a shared Dashboard. */
|
|
708
|
+
export interface PortalDatabaseBlockViewContract {
|
|
709
|
+
id: string;
|
|
710
|
+
title: string;
|
|
711
|
+
isDefault: boolean;
|
|
712
|
+
}
|
|
713
|
+
/** A Database table or a shared Dashboard, with the views it offers. */
|
|
714
|
+
export interface PortalDatabaseBlockSourceContract {
|
|
715
|
+
/** Use as `target.dashboardId`. */
|
|
716
|
+
id: string;
|
|
717
|
+
title: string;
|
|
718
|
+
views: PortalDatabaseBlockViewContract[];
|
|
719
|
+
}
|
|
720
|
+
/**
|
|
721
|
+
* Compact discovery projection. Which group is present depends on the request:
|
|
722
|
+
* `databases` + paging for a database list, `database` + `tables` for one
|
|
723
|
+
* database, `dashboards` for the shared sources.
|
|
724
|
+
*/
|
|
725
|
+
export interface ListPortalDatabaseBlockSourcesResponseContract {
|
|
726
|
+
/** `type=database` with no `databaseId`: one page of databases. */
|
|
727
|
+
databases?: {
|
|
728
|
+
id: string;
|
|
729
|
+
title: string;
|
|
730
|
+
alias?: string;
|
|
731
|
+
}[];
|
|
732
|
+
/** Current database page. */
|
|
733
|
+
page?: number;
|
|
734
|
+
/** Database page size; always 20. */
|
|
735
|
+
limit?: number;
|
|
736
|
+
/** Total databases matching the search. */
|
|
737
|
+
total?: number;
|
|
738
|
+
/** Present only while further database pages exist. */
|
|
739
|
+
nextPage?: number;
|
|
740
|
+
/** `type=database` with `databaseId`: the selected database. */
|
|
741
|
+
database?: {
|
|
742
|
+
id: string;
|
|
743
|
+
title: string;
|
|
744
|
+
};
|
|
745
|
+
/** Tables of the selected database. */
|
|
746
|
+
tables?: PortalDatabaseBlockSourceContract[];
|
|
747
|
+
/** `type=dashboard`: every shared dashboard source. */
|
|
748
|
+
dashboards?: PortalDatabaseBlockSourceContract[];
|
|
749
|
+
}
|
|
750
|
+
export interface SetDashboardViewReadonlyRequestContract {
|
|
751
|
+
/** True restricts editing of the view everywhere it is used. */
|
|
752
|
+
readonly: boolean;
|
|
753
|
+
}
|
|
754
|
+
export interface SetDashboardViewReadonlyResponseContract {
|
|
755
|
+
viewId: string;
|
|
756
|
+
readonly: boolean;
|
|
757
|
+
}
|
|
236
758
|
/** Which chat target a Chat block points at. */
|
|
237
759
|
export type PortalChatBlockTargetType = "channel" | "dm";
|
|
238
760
|
/**
|
|
@@ -652,3 +1174,89 @@ export interface PortalContentItemContract {
|
|
|
652
1174
|
export interface ListPortalContentResponseContract {
|
|
653
1175
|
items: PortalContentItemContract[];
|
|
654
1176
|
}
|
|
1177
|
+
export interface PortalAiAgentContract {
|
|
1178
|
+
/** Agent global id — pass verbatim to addPortalAiAgentBlock as agentId. */
|
|
1179
|
+
id: string;
|
|
1180
|
+
/** Agent title; becomes the block title when the agent is added. */
|
|
1181
|
+
title: string;
|
|
1182
|
+
/** Short description, when the agent has one. */
|
|
1183
|
+
description?: string;
|
|
1184
|
+
/** Icon key, for display only. */
|
|
1185
|
+
iconName?: string;
|
|
1186
|
+
/** Icon colour, for display only. */
|
|
1187
|
+
iconColor?: string;
|
|
1188
|
+
}
|
|
1189
|
+
export interface ListPortalAiAgentsResponseContract {
|
|
1190
|
+
/** Matched agents (a single bounded page). */
|
|
1191
|
+
agents: PortalAiAgentContract[];
|
|
1192
|
+
/** Opaque cursor for the next page; absent when there are no more results. */
|
|
1193
|
+
nextCursor?: string;
|
|
1194
|
+
}
|
|
1195
|
+
export interface GetPortalPageBlockCountResponseContract {
|
|
1196
|
+
/**
|
|
1197
|
+
* Number of matching active blocks on the page, counted over published data
|
|
1198
|
+
* plus the portal's active customizer draft.
|
|
1199
|
+
* @TJS-type integer
|
|
1200
|
+
*/
|
|
1201
|
+
count: number;
|
|
1202
|
+
}
|
|
1203
|
+
export interface AddPortalAiAgentBlockRequestContract {
|
|
1204
|
+
/** Exact agent id from listPortalAiAgents. Never invent one. */
|
|
1205
|
+
agentId: string;
|
|
1206
|
+
}
|
|
1207
|
+
export interface AddPortalAiAgentBlockResponseContract {
|
|
1208
|
+
/** Id of the created AI Agent block. */
|
|
1209
|
+
blockId: string;
|
|
1210
|
+
/** Id of the page the block was added to. */
|
|
1211
|
+
pageId: string;
|
|
1212
|
+
/** Draft branch the change was staged on. */
|
|
1213
|
+
branchId: string;
|
|
1214
|
+
/** Sequence numbers assigned to the staged change events (addBlock). */
|
|
1215
|
+
seqs: number[];
|
|
1216
|
+
/**
|
|
1217
|
+
* Always true: the block is staged in the portal's customizer draft, not yet
|
|
1218
|
+
* live. The portal owner reviews and publishes it from the customizer.
|
|
1219
|
+
*/
|
|
1220
|
+
staged: boolean;
|
|
1221
|
+
}
|
|
1222
|
+
export declare const PortalDatabaseBlockTargetContract: {
|
|
1223
|
+
readonly Database: "database";
|
|
1224
|
+
};
|
|
1225
|
+
export declare const PortalBackgroundContract: {
|
|
1226
|
+
readonly Color: "color";
|
|
1227
|
+
};
|
|
1228
|
+
export declare const PortalDatabaseBlockAppearanceContract: {
|
|
1229
|
+
readonly None: "none";
|
|
1230
|
+
readonly Blank: "blank";
|
|
1231
|
+
readonly Custom: "custom";
|
|
1232
|
+
};
|
|
1233
|
+
export declare const PortalTextBackgroundContract: {
|
|
1234
|
+
readonly Color: "color";
|
|
1235
|
+
};
|
|
1236
|
+
export declare const PortalFlexibleTextAppearanceContract: {
|
|
1237
|
+
readonly None: "none";
|
|
1238
|
+
readonly Blank: "blank";
|
|
1239
|
+
readonly Custom: "custom";
|
|
1240
|
+
};
|
|
1241
|
+
export declare const PortalCardBackgroundContract: {
|
|
1242
|
+
readonly Color: "color";
|
|
1243
|
+
};
|
|
1244
|
+
export declare const PortalCardViewContract: {
|
|
1245
|
+
readonly TopImage: "top-image";
|
|
1246
|
+
readonly LeftImage: "left-image";
|
|
1247
|
+
readonly RightImage: "right-image";
|
|
1248
|
+
readonly FillImage: "fill-image";
|
|
1249
|
+
};
|
|
1250
|
+
export declare const PortalCardAppearanceContract: {
|
|
1251
|
+
readonly None: "none";
|
|
1252
|
+
readonly Blank: "blank";
|
|
1253
|
+
readonly Custom: "custom";
|
|
1254
|
+
};
|
|
1255
|
+
export declare const PortalCardDestinationContract: {
|
|
1256
|
+
readonly Portalpage: "portalPage";
|
|
1257
|
+
};
|
|
1258
|
+
export declare const PortalCountdownAppearanceContract: {
|
|
1259
|
+
readonly None: "none";
|
|
1260
|
+
readonly Blank: "blank";
|
|
1261
|
+
readonly Custom: "custom";
|
|
1262
|
+
};
|
|
@@ -1,2 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PortalCountdownAppearanceContract = exports.PortalCardDestinationContract = exports.PortalCardAppearanceContract = exports.PortalCardViewContract = exports.PortalCardBackgroundContract = exports.PortalFlexibleTextAppearanceContract = exports.PortalTextBackgroundContract = exports.PortalDatabaseBlockAppearanceContract = exports.PortalBackgroundContract = exports.PortalDatabaseBlockTargetContract = void 0;
|
|
4
|
+
exports.PortalDatabaseBlockTargetContract = {
|
|
5
|
+
Database: "database"
|
|
6
|
+
};
|
|
7
|
+
exports.PortalBackgroundContract = {
|
|
8
|
+
Color: "color"
|
|
9
|
+
};
|
|
10
|
+
exports.PortalDatabaseBlockAppearanceContract = {
|
|
11
|
+
None: "none",
|
|
12
|
+
Blank: "blank",
|
|
13
|
+
Custom: "custom"
|
|
14
|
+
};
|
|
15
|
+
exports.PortalTextBackgroundContract = {
|
|
16
|
+
Color: "color"
|
|
17
|
+
};
|
|
18
|
+
exports.PortalFlexibleTextAppearanceContract = {
|
|
19
|
+
None: "none",
|
|
20
|
+
Blank: "blank",
|
|
21
|
+
Custom: "custom"
|
|
22
|
+
};
|
|
23
|
+
exports.PortalCardBackgroundContract = {
|
|
24
|
+
Color: "color"
|
|
25
|
+
};
|
|
26
|
+
exports.PortalCardViewContract = {
|
|
27
|
+
TopImage: "top-image",
|
|
28
|
+
LeftImage: "left-image",
|
|
29
|
+
RightImage: "right-image",
|
|
30
|
+
FillImage: "fill-image"
|
|
31
|
+
};
|
|
32
|
+
exports.PortalCardAppearanceContract = {
|
|
33
|
+
None: "none",
|
|
34
|
+
Blank: "blank",
|
|
35
|
+
Custom: "custom"
|
|
36
|
+
};
|
|
37
|
+
exports.PortalCardDestinationContract = {
|
|
38
|
+
Portalpage: "portalPage"
|
|
39
|
+
};
|
|
40
|
+
exports.PortalCountdownAppearanceContract = {
|
|
41
|
+
None: "none",
|
|
42
|
+
Blank: "blank",
|
|
43
|
+
Custom: "custom"
|
|
44
|
+
};
|
package/package.json
CHANGED
package/release-notes/latest.md
CHANGED