@phis/ui 0.3.0 → 0.4.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.
Files changed (121) hide show
  1. package/components/cms/phi-cms-layout-renderer.js +1 -1
  2. package/components/controls/phi-collection-header-control.js +1 -1
  3. package/components/controls/phi-collection-view-control.js +2 -1
  4. package/components/controls/phi-drawer-control-adapter.d.ts +1 -1
  5. package/components/controls/phi-drawer-control-adapter.js +2 -2
  6. package/components/controls/phi-image-control.d.ts +6 -1
  7. package/components/controls/phi-image-control.js +23 -4
  8. package/components/controls/phi-lightbox-image-control-adapter.d.ts +2 -0
  9. package/components/controls/phi-lightbox-image-control-adapter.js +11 -0
  10. package/components/controls/phi-lightbox-image-control.d.ts +3 -2
  11. package/components/controls/phi-lightbox-image-control.js +7 -3
  12. package/components/controls/phi-modal-control-adapter.d.ts +1 -1
  13. package/components/controls/phi-modal-control-adapter.js +5 -2
  14. package/components/controls/phi-overlay-control-contract.d.ts +5 -0
  15. package/components/controls/phi-pagination-control-adapter.d.ts +2 -0
  16. package/components/controls/phi-pagination-control-adapter.js +15 -0
  17. package/components/controls/phi-pagination-control.d.ts +2 -1
  18. package/components/controls/phi-pagination-control.js +11 -7
  19. package/components/controls/phi-table-control.js +1 -1
  20. package/components/controls/phi-timeline-control-adapter.d.ts +2 -0
  21. package/components/controls/phi-timeline-control-adapter.js +28 -0
  22. package/components/controls/phi-timeline-control.d.ts +3 -1
  23. package/components/controls/phi-timeline-control.js +8 -22
  24. package/components/controls/phi-tour-control.js +25 -7
  25. package/components/controls/phi-tour-viewport.d.ts +36 -0
  26. package/components/controls/phi-tour-viewport.js +86 -0
  27. package/components/controls/phi-zoom-image-overlay.d.ts +17 -0
  28. package/components/controls/phi-zoom-image-overlay.js +58 -0
  29. package/components/layouts/layout-definitions.d.ts +0 -18
  30. package/components/layouts/layout-definitions.js +7 -1
  31. package/components/layouts/plugins/carousel-layout-plugin.js +2 -1
  32. package/components/media/aspect-ratios.d.ts +14 -0
  33. package/components/media/aspect-ratios.js +13 -0
  34. package/components/motion/phi-sequence-run.d.ts +27 -0
  35. package/components/motion/phi-sequence-run.js +87 -0
  36. package/components/motion/phi-sequence-viewport.d.ts +16 -0
  37. package/components/motion/phi-sequence-viewport.js +97 -34
  38. package/components/overlays/phi-overlay-container-client.js +5 -2
  39. package/components/runtime/runtime-visual-anchors.d.ts +13 -2
  40. package/components/runtime/runtime-visual-anchors.js +49 -3
  41. package/components/widgets/config/image-variant-options.d.ts +3 -5
  42. package/components/widgets/config/image-variant-options.js +11 -11
  43. package/components/widgets/config/sequence-settings.d.ts +75 -0
  44. package/components/widgets/config/sequence-settings.js +173 -0
  45. package/components/widgets/label-sets/content-entries.d.ts +9 -0
  46. package/components/widgets/label-sets/content-entries.js +17 -0
  47. package/components/widgets/label-types/gallery.d.ts +2 -10
  48. package/components/widgets/label-types/sequence.d.ts +18 -0
  49. package/components/widgets/label-types/sequence.js +1 -0
  50. package/helpers/cms-layout-defaults.js +9 -2
  51. package/helpers/cms-region-keys.d.ts +1 -1
  52. package/helpers/motion.d.ts +7 -0
  53. package/helpers/motion.js +7 -0
  54. package/package.json +1 -1
  55. package/plugins/runtime-modules/asset/data-providers.d.ts +4 -0
  56. package/plugins/runtime-modules/asset/data-providers.js +1 -0
  57. package/plugins/runtime-modules/asset/definition.d.ts +4 -0
  58. package/plugins/runtime-modules/asset/presets.d.ts +53 -1
  59. package/plugins/runtime-modules/asset/presets.js +16 -12
  60. package/plugins/runtime-modules/asset/tour.d.ts +44 -0
  61. package/plugins/runtime-modules/asset/tour.js +53 -0
  62. package/plugins/runtime-modules/builder/clients/inspector-config-field.js +42 -18
  63. package/plugins/runtime-modules/builder/clients/inspector-image-field.js +2 -2
  64. package/plugins/runtime-modules/builder/clients/workspace-scope-boundary.js +10 -0
  65. package/plugins/runtime-modules/builder/controller/workspace-controller.js +18 -3
  66. package/plugins/runtime-modules/builder/plugin-meta-labels.js +8 -0
  67. package/plugins/runtime-modules/builder/presets.js +5 -3
  68. package/plugins/runtime-modules/builder/tour.d.ts +316 -0
  69. package/plugins/runtime-modules/builder/tour.js +337 -0
  70. package/plugins/runtime-modules/builder/trees/phi-builder-inspector-area-overlay-tree.server.js +8 -1
  71. package/plugins/runtime-modules/builder/widgets/structure-region/built-in.js +3 -2
  72. package/plugins/runtime-modules/core/widgets/collection-view/client.js +10 -0
  73. package/plugins/runtime-modules/core/widgets/description/config.d.ts +25 -1
  74. package/plugins/runtime-modules/core/widgets/entry-detail/config.d.ts +2 -0
  75. package/plugins/runtime-modules/core/widgets/entry-detail/config.js +8 -1
  76. package/plugins/runtime-modules/core/widgets/entry-header/config.d.ts +3 -0
  77. package/plugins/runtime-modules/core/widgets/entry-header/config.js +8 -1
  78. package/plugins/runtime-modules/core/widgets/entry-list/client.d.ts +4 -1
  79. package/plugins/runtime-modules/core/widgets/entry-list/client.js +3 -2
  80. package/plugins/runtime-modules/core/widgets/entry-list/config.d.ts +392 -93
  81. package/plugins/runtime-modules/core/widgets/entry-list/config.js +21 -3
  82. package/plugins/runtime-modules/core/widgets/entry-list/server.js +2 -0
  83. package/plugins/runtime-modules/core/widgets/gallery/authoring.js +62 -10
  84. package/plugins/runtime-modules/core/widgets/gallery/client.d.ts +6 -1
  85. package/plugins/runtime-modules/core/widgets/gallery/client.js +7 -79
  86. package/plugins/runtime-modules/core/widgets/gallery/config.d.ts +337 -144
  87. package/plugins/runtime-modules/core/widgets/gallery/config.js +52 -113
  88. package/plugins/runtime-modules/core/widgets/gallery/defaults.d.ts +15 -0
  89. package/plugins/runtime-modules/core/widgets/gallery/defaults.js +20 -0
  90. package/plugins/runtime-modules/core/widgets/image/client.js +1 -1
  91. package/plugins/runtime-modules/core/widgets/image/config.d.ts +29 -4
  92. package/plugins/runtime-modules/core/widgets/image/config.js +19 -2
  93. package/plugins/runtime-modules/core/widgets/image/editor.js +1 -1
  94. package/plugins/runtime-modules/core/widgets/result/config.d.ts +25 -1
  95. package/plugins/runtime-modules/core/widgets/simple-text/config.d.ts +25 -1
  96. package/plugins/runtime-modules/core/widgets/table/config.d.ts +79 -3
  97. package/plugins/runtime-modules/core/widgets/tour-button/client.js +1 -1
  98. package/plugins/runtime-modules/revisions/presets.d.ts +53 -2
  99. package/plugins/runtime-modules/revisions/presets.js +16 -12
  100. package/plugins/runtime-modules/revisions/tour.d.ts +43 -0
  101. package/plugins/runtime-modules/revisions/tour.js +51 -0
  102. package/plugins/runtime-modules/theme/presets.d.ts +36 -4
  103. package/plugins/runtime-modules/theme/tour.d.ts +45 -11
  104. package/plugins/runtime-modules/theme/tour.js +39 -8
  105. package/plugins/runtime-modules/tour/controller/address.js +2 -2
  106. package/plugins/runtime-modules/tour/controller/client.js +43 -2
  107. package/plugins/runtime-modules/tour/controller/definition.js +2 -1
  108. package/server-helpers/cms-request.js +1 -0
  109. package/server-helpers/page-tour.d.ts +10 -3
  110. package/server-helpers/page-tour.js +25 -12
  111. package/types/cms-config.d.ts +3 -1
  112. package/types/cms-config.js +3 -3
  113. package/types/cms-plugins.d.ts +31 -4
  114. package/types/tour-controller.d.ts +10 -0
  115. package/types/tour-controller.js +13 -0
  116. package/types/tours.d.ts +27 -25
  117. package/types/tours.js +9 -23
  118. package/types/visual-anchors.d.ts +15 -0
  119. package/types/visual-anchors.js +12 -0
  120. package/types.d.ts +2 -0
  121. package/types.js +4 -1
@@ -1,46 +1,27 @@
1
+ import { type PhiMediaAspectRatio } from "../../../../../components/media/aspect-ratios";
2
+ import { type PhiSequenceSettings } from "../../../../../components/widgets/config/sequence-settings";
3
+ import type { PhiImageAssetVariantKeyValue } from "../../../../../types/media";
1
4
  import { type PhiRuntimeDataProviderBinding } from "../../../../../types/runtime-data-provider";
2
- import { type PhiMotionEasing, type PhiSequenceAnchor, type PhiSequenceTransition } from "../../../../../helpers/motion";
3
- import { type PhiCmsMountPolicy } from "../../../../../types/cms-mount-policy";
4
5
  import { type PhiCmsWidgetConfigBase } from "../../../../../components/widgets/config/parser-primitives";
5
6
  /**
6
7
  * A run of pictures, shown a few at a time.
7
8
  *
8
9
  * Not a layout. A layout's slots are authored -- twelve of them, and somebody drops a Widget into
9
10
  * each -- while the pictures here are data: however many a Media Folder holds, read on the server
10
- * while the page is drawn through the record Provider the binding names. A Carousel over authored
11
- * slots could never show them, which is why the two are separate things that share a viewport rather
12
- * than one thing with a switch.
11
+ * while the page is drawn through the Folder Provider. A Carousel over authored slots could never show
12
+ * them, which is why the two are separate things that share a viewport rather than one thing with a
13
+ * switch. How the run moves is the shared vocabulary of `sequence-settings.ts`.
13
14
  */
14
- export type PhiCmsGalleryWidgetConfig = PhiCmsWidgetConfigBase & {
15
- /** The record Provider the pictures come from; starts on the Media Folder Provider. */
15
+ export type PhiCmsGalleryWidgetConfig = PhiCmsWidgetConfigBase & PhiSequenceSettings & {
16
+ /** The Folder the pictures come from: always the Media Folder Provider, with its parameters. */
16
17
  source: PhiRuntimeDataProviderBinding | null;
17
18
  /** The rendition each picture is drawn in; absent is the original. */
18
- variantKey?: string;
19
+ variantKey?: PhiImageAssetVariantKeyValue;
19
20
  /** Opens a picture larger over the page when clicked. */
20
21
  preview?: boolean;
21
- visibleCount?: number;
22
- windowAnchor?: PhiSequenceAnchor;
23
- transition?: PhiSequenceTransition;
24
- durationMs?: number;
25
- easing?: PhiMotionEasing;
26
- gap?: string;
27
- /**
28
- * How many pictures beyond the window are kept mounted, and therefore told to load early.
29
- *
30
- * The browser will not do this for us. `loading="lazy"` decides from an element's distance to the
31
- * viewport and knows nothing about a track: on a fade every picture sits in the same place and all
32
- * of them load at once, while on a slide the next one is off to the side and loads as it arrives --
33
- * during the transition, which is the worst moment. Next's escape hatch for that, `lazyRoot`, is a
34
- * deprecated no-op. So the window decides, and the window is ours.
35
- */
36
- lookahead?: number;
37
- mountPolicy?: PhiCmsMountPolicy;
38
- aspectRatio?: string;
22
+ /** The frame's proportion for originals; a variant brings its own. */
23
+ aspectRatio?: PhiMediaAspectRatio;
39
24
  fit?: "cover" | "contain";
40
- controls?: "none" | "arrows" | "dots" | "both";
41
- loop?: boolean;
42
- /** Absent or zero means it does not move on its own. */
43
- autoplayMs?: number;
44
25
  };
45
26
  export declare function parsePhiCmsGalleryWidgetConfig(raw: Record<string, unknown>): PhiCmsGalleryWidgetConfig;
46
27
  export declare const PHI_GALLERY_WIDGET_DEFINITION: {
@@ -53,147 +34,359 @@ export declare const PHI_GALLERY_WIDGET_DEFINITION: {
53
34
  category: "media";
54
35
  icon: string;
55
36
  iconFamily: string;
56
- fields: ({
37
+ fields: (({
57
38
  key: string;
39
+ label: string;
40
+ description?: string;
41
+ required?: boolean;
42
+ editorPlacement?: "inspector" | "geometry" | "toolbar";
43
+ visibleWhen?: import("../../../../../types").PhiCmsConfigFieldVisibilityRule | readonly import("../../../../../types").PhiCmsConfigFieldVisibilityRule[];
44
+ heading?: string;
45
+ } & {
46
+ type: "string" | "url" | "icon";
47
+ emptyValue?: "";
48
+ }) | ({
49
+ key: string;
50
+ label: string;
51
+ description?: string;
52
+ required?: boolean;
53
+ editorPlacement?: "inspector" | "geometry" | "toolbar";
54
+ visibleWhen?: import("../../../../../types").PhiCmsConfigFieldVisibilityRule | readonly import("../../../../../types").PhiCmsConfigFieldVisibilityRule[];
55
+ heading?: string;
56
+ } & {
57
+ type: "link-target";
58
+ clearsWhenEmpty?: readonly string[];
59
+ }) | ({
60
+ key: string;
61
+ label: string;
62
+ description?: string;
63
+ required?: boolean;
64
+ editorPlacement?: "inspector" | "geometry" | "toolbar";
65
+ visibleWhen?: import("../../../../../types").PhiCmsConfigFieldVisibilityRule | readonly import("../../../../../types").PhiCmsConfigFieldVisibilityRule[];
66
+ heading?: string;
67
+ } & {
68
+ type: "readonly";
69
+ }) | ({
70
+ key: string;
71
+ label: string;
72
+ description?: string;
73
+ required?: boolean;
74
+ editorPlacement?: "inspector" | "geometry" | "toolbar";
75
+ visibleWhen?: import("../../../../../types").PhiCmsConfigFieldVisibilityRule | readonly import("../../../../../types").PhiCmsConfigFieldVisibilityRule[];
76
+ heading?: string;
77
+ } & {
58
78
  type: "data-provider";
59
- providerKind: "record";
60
- label: string;
61
- description: string;
62
- options?: undefined;
63
- emptyOption?: undefined;
64
- emptyValue?: undefined;
65
- min?: undefined;
66
- max?: undefined;
67
- step?: undefined;
68
- prefix?: undefined;
69
- } | {
79
+ providerKind?: import("../../../../../types").PhiRuntimeDataProviderKind;
80
+ providerKey?: import("@phis/contracts/controls").PhiRuntimeDataProviderKey;
81
+ }) | ({
70
82
  key: string;
71
- type: "choice";
72
83
  label: string;
73
- options: {
74
- value: string;
75
- label: string;
76
- }[];
77
- emptyOption: {
78
- value: string;
79
- label: string;
80
- };
81
- emptyValue: null;
82
- providerKind?: undefined;
83
- description?: undefined;
84
- min?: undefined;
85
- max?: undefined;
86
- step?: undefined;
87
- prefix?: undefined;
88
- } | {
84
+ description?: string;
85
+ required?: boolean;
86
+ editorPlacement?: "inspector" | "geometry" | "toolbar";
87
+ visibleWhen?: import("../../../../../types").PhiCmsConfigFieldVisibilityRule | readonly import("../../../../../types").PhiCmsConfigFieldVisibilityRule[];
88
+ heading?: string;
89
+ } & {
90
+ type: "calendar-adapter";
91
+ }) | ({
92
+ key: string;
93
+ label: string;
94
+ description?: string;
95
+ required?: boolean;
96
+ editorPlacement?: "inspector" | "geometry" | "toolbar";
97
+ visibleWhen?: import("../../../../../types").PhiCmsConfigFieldVisibilityRule | readonly import("../../../../../types").PhiCmsConfigFieldVisibilityRule[];
98
+ heading?: string;
99
+ } & {
100
+ type: "video-provider";
101
+ }) | ({
102
+ key: string;
103
+ label: string;
104
+ description?: string;
105
+ required?: boolean;
106
+ editorPlacement?: "inspector" | "geometry" | "toolbar";
107
+ visibleWhen?: import("../../../../../types").PhiCmsConfigFieldVisibilityRule | readonly import("../../../../../types").PhiCmsConfigFieldVisibilityRule[];
108
+ heading?: string;
109
+ } & {
110
+ type: "dimension";
111
+ widthKey?: string;
112
+ heightKey?: string;
113
+ widthPlaceholder?: string;
114
+ heightPlaceholder?: string;
115
+ patchOnChange?: Record<string, unknown>;
116
+ }) | ({
117
+ key: string;
118
+ label: string;
119
+ description?: string;
120
+ required?: boolean;
121
+ editorPlacement?: "inspector" | "geometry" | "toolbar";
122
+ visibleWhen?: import("../../../../../types").PhiCmsConfigFieldVisibilityRule | readonly import("../../../../../types").PhiCmsConfigFieldVisibilityRule[];
123
+ heading?: string;
124
+ } & {
125
+ type: "length";
126
+ min?: number;
127
+ max?: number;
128
+ step?: number;
129
+ precision?: number;
130
+ }) | ({
131
+ key: string;
132
+ label: string;
133
+ description?: string;
134
+ required?: boolean;
135
+ editorPlacement?: "inspector" | "geometry" | "toolbar";
136
+ visibleWhen?: import("../../../../../types").PhiCmsConfigFieldVisibilityRule | readonly import("../../../../../types").PhiCmsConfigFieldVisibilityRule[];
137
+ heading?: string;
138
+ } & {
139
+ type: "radius";
140
+ topLeftKey: string;
141
+ topRightKey: string;
142
+ bottomLeftKey: string;
143
+ bottomRightKey: string;
144
+ }) | ({
145
+ key: string;
146
+ label: string;
147
+ description?: string;
148
+ required?: boolean;
149
+ editorPlacement?: "inspector" | "geometry" | "toolbar";
150
+ visibleWhen?: import("../../../../../types").PhiCmsConfigFieldVisibilityRule | readonly import("../../../../../types").PhiCmsConfigFieldVisibilityRule[];
151
+ heading?: string;
152
+ } & {
153
+ type: "padding";
154
+ paddingKey?: string;
155
+ gapKey?: string;
156
+ paddingTopKey?: string;
157
+ paddingRightKey?: string;
158
+ paddingBottomKey?: string;
159
+ paddingLeftKey?: string;
160
+ section?: string;
161
+ }) | ({
162
+ key: string;
163
+ label: string;
164
+ description?: string;
165
+ required?: boolean;
166
+ editorPlacement?: "inspector" | "geometry" | "toolbar";
167
+ visibleWhen?: import("../../../../../types").PhiCmsConfigFieldVisibilityRule | readonly import("../../../../../types").PhiCmsConfigFieldVisibilityRule[];
168
+ heading?: string;
169
+ } & {
170
+ type: "color";
171
+ mode?: import("../../../../../types").PhiCmsConfigFieldColorMode;
172
+ defaultToken?: import("../../../../../theme/phi-theme-tokens").PhiThemeTokenKey;
173
+ section?: string;
174
+ }) | ({
89
175
  key: string;
176
+ label: string;
177
+ description?: string;
178
+ required?: boolean;
179
+ editorPlacement?: "inspector" | "geometry" | "toolbar";
180
+ visibleWhen?: import("../../../../../types").PhiCmsConfigFieldVisibilityRule | readonly import("../../../../../types").PhiCmsConfigFieldVisibilityRule[];
181
+ heading?: string;
182
+ } & {
90
183
  type: "boolean";
184
+ }) | ({
185
+ key: string;
91
186
  label: string;
92
- description: string;
93
- providerKind?: undefined;
94
- options?: undefined;
95
- emptyOption?: undefined;
96
- emptyValue?: undefined;
97
- min?: undefined;
98
- max?: undefined;
99
- step?: undefined;
100
- prefix?: undefined;
101
- } | {
187
+ description?: string;
188
+ required?: boolean;
189
+ editorPlacement?: "inspector" | "geometry" | "toolbar";
190
+ visibleWhen?: import("../../../../../types").PhiCmsConfigFieldVisibilityRule | readonly import("../../../../../types").PhiCmsConfigFieldVisibilityRule[];
191
+ heading?: string;
192
+ } & {
193
+ type: "image";
194
+ }) | ({
102
195
  key: string;
103
- type: "number";
104
196
  label: string;
105
- min: number;
106
- providerKind?: undefined;
107
- description?: undefined;
108
- options?: undefined;
109
- emptyOption?: undefined;
110
- emptyValue?: undefined;
111
- max?: undefined;
112
- step?: undefined;
113
- prefix?: undefined;
114
- } | {
197
+ description?: string;
198
+ required?: boolean;
199
+ editorPlacement?: "inspector" | "geometry" | "toolbar";
200
+ visibleWhen?: import("../../../../../types").PhiCmsConfigFieldVisibilityRule | readonly import("../../../../../types").PhiCmsConfigFieldVisibilityRule[];
201
+ heading?: string;
202
+ } & {
203
+ type: "slot-texts";
204
+ }) | ({
115
205
  key: string;
116
- type: "choice";
117
206
  label: string;
118
- options: {
119
- value: string;
207
+ description?: string;
208
+ required?: boolean;
209
+ editorPlacement?: "inspector" | "geometry" | "toolbar";
210
+ visibleWhen?: import("../../../../../types").PhiCmsConfigFieldVisibilityRule | readonly import("../../../../../types").PhiCmsConfigFieldVisibilityRule[];
211
+ heading?: string;
212
+ } & {
213
+ type: "number-list";
214
+ min?: number;
215
+ }) | ({
216
+ key: string;
217
+ label: string;
218
+ description?: string;
219
+ required?: boolean;
220
+ editorPlacement?: "inspector" | "geometry" | "toolbar";
221
+ visibleWhen?: import("../../../../../types").PhiCmsConfigFieldVisibilityRule | readonly import("../../../../../types").PhiCmsConfigFieldVisibilityRule[];
222
+ heading?: string;
223
+ } & {
224
+ type: "flags";
225
+ options: readonly {
226
+ value: number;
120
227
  label: string;
121
228
  }[];
122
- providerKind?: undefined;
123
- description?: undefined;
124
- emptyOption?: undefined;
125
- emptyValue?: undefined;
126
- min?: undefined;
127
- max?: undefined;
128
- step?: undefined;
129
- prefix?: undefined;
130
- } | {
229
+ }) | ({
131
230
  key: string;
231
+ label: string;
232
+ description?: string;
233
+ required?: boolean;
234
+ editorPlacement?: "inspector" | "geometry" | "toolbar";
235
+ visibleWhen?: import("../../../../../types").PhiCmsConfigFieldVisibilityRule | readonly import("../../../../../types").PhiCmsConfigFieldVisibilityRule[];
236
+ heading?: string;
237
+ } & {
132
238
  type: "number";
239
+ min?: number;
240
+ max?: number;
241
+ step?: number;
242
+ precision?: number;
243
+ prefix?: string;
244
+ presentation?: "slider";
245
+ suffix?: string;
246
+ }) | ({
247
+ key: string;
133
248
  label: string;
134
- min: number;
135
- max: number;
136
- step: number;
137
- prefix: string;
138
- providerKind?: undefined;
139
- description?: undefined;
140
- options?: undefined;
141
- emptyOption?: undefined;
142
- emptyValue?: undefined;
143
- } | {
144
- key: string;
145
- type: "string";
146
- label: string;
147
- providerKind?: undefined;
148
- description?: undefined;
149
- options?: undefined;
150
- emptyOption?: undefined;
151
- emptyValue?: undefined;
152
- min?: undefined;
153
- max?: undefined;
154
- step?: undefined;
155
- prefix?: undefined;
156
- } | {
249
+ description?: string;
250
+ required?: boolean;
251
+ editorPlacement?: "inspector" | "geometry" | "toolbar";
252
+ visibleWhen?: import("../../../../../types").PhiCmsConfigFieldVisibilityRule | readonly import("../../../../../types").PhiCmsConfigFieldVisibilityRule[];
253
+ heading?: string;
254
+ } & {
255
+ type: "choice";
256
+ valueType: "number";
257
+ options: import("@phis/contracts/controls").PhiControlOption<number>[];
258
+ emptyOption?: import("@phis/contracts/controls").PhiControlOption;
259
+ emptyValue?: null | undefined;
260
+ placeholder?: string;
261
+ mode?: never;
262
+ presentation?: never;
263
+ optionsProvider?: never;
264
+ allowCustom?: never;
265
+ createBehavior?: never;
266
+ filter?: never;
267
+ patchOnChange?: never;
268
+ optionPresets?: never;
269
+ }) | ({
157
270
  key: string;
271
+ label: string;
272
+ description?: string;
273
+ required?: boolean;
274
+ editorPlacement?: "inspector" | "geometry" | "toolbar";
275
+ visibleWhen?: import("../../../../../types").PhiCmsConfigFieldVisibilityRule | readonly import("../../../../../types").PhiCmsConfigFieldVisibilityRule[];
276
+ heading?: string;
277
+ } & {
158
278
  type: "choice";
279
+ mode?: import("../../../../../types").PhiCmsConfigFieldChoiceMode;
280
+ valueType?: Exclude<import("../../../../../types").PhiCmsConfigFieldChoiceValueType, "number">;
281
+ presentation?: import("../../../../../types").PhiCmsConfigFieldChoicePresentation;
282
+ options?: import("@phis/contracts/controls").PhiControlOption[];
283
+ optionsProvider?: import("@phis/contracts/controls").PhiControlOptionsProviderConfig;
284
+ allowCustom?: boolean;
285
+ createBehavior?: import("../../../../../types").PhiCmsConfigFieldChoiceCreateBehavior;
286
+ placeholder?: string;
287
+ filter?: import("../../../../../types").PhiCmsConfigFieldChoiceFilter;
288
+ emptyOption?: import("@phis/contracts/controls").PhiControlOption;
289
+ emptyValue?: null | undefined;
290
+ patchOnChange?: Record<string, unknown>;
291
+ optionPresets?: import("../../../../../types/cms-plugins").PhiCmsConfigFieldOptionPresets;
292
+ }) | ({
293
+ key: string;
159
294
  label: string;
160
- options: ({
161
- readonly value: "remount";
162
- readonly label: "Remount on return";
163
- } | {
164
- readonly value: "lazy-keep";
165
- readonly label: "Keep once shown";
166
- } | {
167
- readonly value: "eager";
168
- readonly label: "Mount everything";
169
- })[];
170
- providerKind?: undefined;
171
- description?: undefined;
172
- emptyOption?: undefined;
173
- emptyValue?: undefined;
174
- min?: undefined;
175
- max?: undefined;
176
- step?: undefined;
177
- prefix?: undefined;
178
- } | {
295
+ description?: string;
296
+ required?: boolean;
297
+ editorPlacement?: "inspector" | "geometry" | "toolbar";
298
+ visibleWhen?: import("../../../../../types").PhiCmsConfigFieldVisibilityRule | readonly import("../../../../../types").PhiCmsConfigFieldVisibilityRule[];
299
+ heading?: string;
300
+ } & {
301
+ type: "collection";
302
+ itemKeyField: string;
303
+ itemLabelField?: string;
304
+ itemFields: import("../../../../../types").PhiCmsConfigField[];
305
+ defaultItem?: Record<string, unknown>;
306
+ addLabel?: string;
307
+ emptyLabel?: string;
308
+ minItems?: number;
309
+ maxItems?: number;
310
+ reorderable?: boolean;
311
+ presentation?: import("../../../../../types").PhiCmsConfigFieldCollectionPresentation;
312
+ editLabel?: string;
313
+ }) | ({
179
314
  key: string;
180
- type: "boolean";
181
315
  label: string;
182
- providerKind?: undefined;
183
- description?: undefined;
184
- options?: undefined;
185
- emptyOption?: undefined;
186
- emptyValue?: undefined;
187
- min?: undefined;
188
- max?: undefined;
189
- step?: undefined;
190
- prefix?: undefined;
316
+ description?: string;
317
+ required?: boolean;
318
+ editorPlacement?: "inspector" | "geometry" | "toolbar";
319
+ visibleWhen?: import("../../../../../types").PhiCmsConfigFieldVisibilityRule | readonly import("../../../../../types").PhiCmsConfigFieldVisibilityRule[];
320
+ heading?: string;
321
+ } & {
322
+ type: "background";
323
+ section?: string;
324
+ storage?: import("../../../../../types").PhiCmsConfigFieldValueStorage;
325
+ }) | ({
326
+ key: string;
327
+ label: string;
328
+ description?: string;
329
+ required?: boolean;
330
+ editorPlacement?: "inspector" | "geometry" | "toolbar";
331
+ visibleWhen?: import("../../../../../types").PhiCmsConfigFieldVisibilityRule | readonly import("../../../../../types").PhiCmsConfigFieldVisibilityRule[];
332
+ heading?: string;
333
+ } & {
334
+ type: "border";
335
+ section?: string;
336
+ storage?: import("../../../../../types").PhiCmsConfigFieldValueStorage;
337
+ }) | ({
338
+ key: string;
339
+ label: string;
340
+ description?: string;
341
+ required?: boolean;
342
+ editorPlacement?: "inspector" | "geometry" | "toolbar";
343
+ visibleWhen?: import("../../../../../types").PhiCmsConfigFieldVisibilityRule | readonly import("../../../../../types").PhiCmsConfigFieldVisibilityRule[];
344
+ heading?: string;
345
+ } & {
346
+ type: "surface";
347
+ tone?: false;
348
+ }) | ({
349
+ key: string;
350
+ label: string;
351
+ description?: string;
352
+ required?: boolean;
353
+ editorPlacement?: "inspector" | "geometry" | "toolbar";
354
+ visibleWhen?: import("../../../../../types").PhiCmsConfigFieldVisibilityRule | readonly import("../../../../../types").PhiCmsConfigFieldVisibilityRule[];
355
+ heading?: string;
356
+ } & {
357
+ type: "shadow" | "grid-placement" | "column-count";
358
+ section?: string;
359
+ }) | {
360
+ key: string;
361
+ type: "choice";
362
+ label: string;
363
+ options: {
364
+ value: "16:9" | "3:2" | "4:3" | "1:1" | "3:4" | "2:3" | "9:16" | "21:9";
365
+ label: "16:9" | "3:2" | "4:3" | "1:1" | "3:4" | "2:3" | "9:16" | "21:9";
366
+ }[];
367
+ visibleWhen: {
368
+ field: string;
369
+ equals: null;
370
+ };
191
371
  })[];
192
372
  defaultConfig: {
373
+ visibleCount: 1;
374
+ transition: "slide";
375
+ durationMs: 320;
376
+ easing: "linear" | "ease" | "ease-in" | "ease-out" | "ease-in-out";
377
+ gap: "xs";
378
+ lookahead: 1;
379
+ mountPolicy: "lazy-keep";
380
+ controls: "both";
381
+ loop: false;
382
+ autoplayMs: 0;
193
383
  source: {
194
384
  providerKey: `${string}/${string}`;
195
385
  params: {};
196
386
  };
387
+ preview: false;
388
+ aspectRatio: "16:9" | "3:2" | "4:3" | "1:1" | "3:4" | "2:3" | "9:16" | "21:9";
389
+ fit: "cover";
197
390
  };
198
391
  parseConfig: typeof parsePhiCmsGalleryWidgetConfig;
199
392
  };