@genesislcap/foundation-forms 14.427.2-alpha-e0ffaad.0 → 14.428.1-alpha-035cbdd.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 (88) hide show
  1. package/dist/custom-elements.json +428 -346
  2. package/dist/dts/filters/filters.template.d.ts.map +1 -1
  3. package/dist/dts/form.d.ts +10 -4
  4. package/dist/dts/form.d.ts.map +1 -1
  5. package/dist/dts/form.styles.d.ts.map +1 -1
  6. package/dist/dts/form.template.d.ts.map +1 -1
  7. package/dist/dts/index.d.ts +0 -2
  8. package/dist/dts/index.d.ts.map +1 -1
  9. package/dist/dts/jsonforms/json-forms.d.ts.map +1 -1
  10. package/dist/dts/jsonforms/renderers/ArrayListWrapperRenderer.d.ts.map +1 -1
  11. package/dist/dts/jsonforms/renderers/BooleanControlRenderer.d.ts.map +1 -1
  12. package/dist/dts/jsonforms/renderers/CategorizationWrapperRenderer.d.ts.map +1 -1
  13. package/dist/dts/jsonforms/renderers/ConnectedMultiselectControlRenderer.d.ts.map +1 -1
  14. package/dist/dts/jsonforms/renderers/ConnectedSelectControlRenderer.d.ts.map +1 -1
  15. package/dist/dts/jsonforms/renderers/ControlWrapperRenderer.d.ts +11 -31
  16. package/dist/dts/jsonforms/renderers/ControlWrapperRenderer.d.ts.map +1 -1
  17. package/dist/dts/jsonforms/renderers/DateControlRenderer.d.ts +1 -2
  18. package/dist/dts/jsonforms/renderers/DateControlRenderer.d.ts.map +1 -1
  19. package/dist/dts/jsonforms/renderers/EnumControlRenderer.d.ts +1 -2
  20. package/dist/dts/jsonforms/renderers/EnumControlRenderer.d.ts.map +1 -1
  21. package/dist/dts/jsonforms/renderers/EnumRadioGroupControlRenderer.d.ts.map +1 -1
  22. package/dist/dts/jsonforms/renderers/FilterDateControlRenderer.d.ts +1 -2
  23. package/dist/dts/jsonforms/renderers/FilterDateControlRenderer.d.ts.map +1 -1
  24. package/dist/dts/jsonforms/renderers/FilterNumberControlRenderer.d.ts +1 -2
  25. package/dist/dts/jsonforms/renderers/FilterNumberControlRenderer.d.ts.map +1 -1
  26. package/dist/dts/jsonforms/renderers/FilterTimeControlRenderer.d.ts +1 -2
  27. package/dist/dts/jsonforms/renderers/FilterTimeControlRenderer.d.ts.map +1 -1
  28. package/dist/dts/jsonforms/renderers/LayoutArrayRenderer.d.ts +1 -2
  29. package/dist/dts/jsonforms/renderers/LayoutArrayRenderer.d.ts.map +1 -1
  30. package/dist/dts/jsonforms/renderers/LayoutFormGridRenderer.d.ts +1 -2
  31. package/dist/dts/jsonforms/renderers/LayoutFormGridRenderer.d.ts.map +1 -1
  32. package/dist/dts/jsonforms/renderers/LayoutGroupRenderer.d.ts +1 -2
  33. package/dist/dts/jsonforms/renderers/LayoutGroupRenderer.d.ts.map +1 -1
  34. package/dist/dts/jsonforms/renderers/LayoutHorizontalRenderer.d.ts +1 -2
  35. package/dist/dts/jsonforms/renderers/LayoutHorizontalRenderer.d.ts.map +1 -1
  36. package/dist/dts/jsonforms/renderers/LayoutRenderer.d.ts +5 -21
  37. package/dist/dts/jsonforms/renderers/LayoutRenderer.d.ts.map +1 -1
  38. package/dist/dts/jsonforms/renderers/LayoutVertical2ColumnsRenderer.d.ts +1 -2
  39. package/dist/dts/jsonforms/renderers/LayoutVertical2ColumnsRenderer.d.ts.map +1 -1
  40. package/dist/dts/jsonforms/renderers/MulticolumnDropdownControlRenderer.d.ts.map +1 -1
  41. package/dist/dts/jsonforms/renderers/NumberControlRenderer.d.ts +1 -2
  42. package/dist/dts/jsonforms/renderers/NumberControlRenderer.d.ts.map +1 -1
  43. package/dist/dts/jsonforms/renderers/SegmentedControlRenderer.d.ts.map +1 -1
  44. package/dist/dts/jsonforms/renderers/StepperWrapperRenderer.d.ts.map +1 -1
  45. package/dist/dts/jsonforms/renderers/StringArrayControlRenderer.d.ts.map +1 -1
  46. package/dist/dts/jsonforms/renderers/StringControlRenderer.d.ts.map +1 -1
  47. package/dist/dts/jsonforms/renderers/VerticalCategorizationWrapperRenderer.d.ts.map +1 -1
  48. package/dist/dts/jsonforms/renderers/dispatch-renderer.d.ts.map +1 -1
  49. package/dist/dts/react.d.ts +20 -0
  50. package/dist/dts/types.d.ts +0 -12
  51. package/dist/dts/types.d.ts.map +1 -1
  52. package/dist/esm/filters/filters.template.js +2 -1
  53. package/dist/esm/form.js +1 -2
  54. package/dist/esm/form.styles.js +40 -14
  55. package/dist/esm/form.template.js +2 -1
  56. package/dist/esm/index.js +0 -2
  57. package/dist/esm/jsonforms/json-forms.js +1 -27
  58. package/dist/esm/jsonforms/renderers/ArrayListWrapperRenderer.js +46 -48
  59. package/dist/esm/jsonforms/renderers/BooleanControlRenderer.js +20 -19
  60. package/dist/esm/jsonforms/renderers/CategorizationWrapperRenderer.js +4 -9
  61. package/dist/esm/jsonforms/renderers/ConnectedMultiselectControlRenderer.js +40 -38
  62. package/dist/esm/jsonforms/renderers/ConnectedSelectControlRenderer.js +39 -39
  63. package/dist/esm/jsonforms/renderers/ControlWrapperRenderer.js +131 -102
  64. package/dist/esm/jsonforms/renderers/DateControlRenderer.js +43 -41
  65. package/dist/esm/jsonforms/renderers/EnumControlRenderer.js +27 -27
  66. package/dist/esm/jsonforms/renderers/EnumRadioGroupControlRenderer.js +32 -30
  67. package/dist/esm/jsonforms/renderers/FilterDateControlRenderer.js +77 -81
  68. package/dist/esm/jsonforms/renderers/FilterNumberControlRenderer.js +51 -54
  69. package/dist/esm/jsonforms/renderers/FilterTimeControlRenderer.js +69 -69
  70. package/dist/esm/jsonforms/renderers/LayoutArrayRenderer.js +8 -7
  71. package/dist/esm/jsonforms/renderers/LayoutFormGridRenderer.js +26 -27
  72. package/dist/esm/jsonforms/renderers/LayoutGroupRenderer.js +32 -36
  73. package/dist/esm/jsonforms/renderers/LayoutHorizontalRenderer.js +26 -27
  74. package/dist/esm/jsonforms/renderers/LayoutRenderer.js +44 -36
  75. package/dist/esm/jsonforms/renderers/LayoutVertical2ColumnsRenderer.js +17 -18
  76. package/dist/esm/jsonforms/renderers/MulticolumnDropdownControlRenderer.js +41 -39
  77. package/dist/esm/jsonforms/renderers/NumberControlRenderer.js +30 -30
  78. package/dist/esm/jsonforms/renderers/SegmentedControlRenderer.js +27 -25
  79. package/dist/esm/jsonforms/renderers/StepperWrapperRenderer.js +1 -2
  80. package/dist/esm/jsonforms/renderers/StringArrayControlRenderer.js +20 -18
  81. package/dist/esm/jsonforms/renderers/StringControlRenderer.js +42 -41
  82. package/dist/esm/jsonforms/renderers/VerticalCategorizationWrapperRenderer.js +9 -13
  83. package/dist/esm/jsonforms/renderers/dispatch-renderer.js +0 -1
  84. package/dist/foundation-forms.api.json +2 -114
  85. package/dist/foundation-forms.d.ts +10 -69
  86. package/dist/react.cjs +14 -0
  87. package/dist/react.mjs +12 -0
  88. package/package.json +15 -15
@@ -2,7 +2,6 @@ import { controlCornerRadius, designUnit, strokeWidth } from '@microsoft/fast-co
2
2
  import { css } from '@microsoft/fast-element';
3
3
  import { forcedColorsStylesheetBehavior } from '@microsoft/fast-foundation';
4
4
  import { SystemColors } from '@microsoft/fast-web-utilities';
5
- import { controlWrapperStyles } from './jsonforms/renderers/ControlWrapperRenderer';
6
5
  /** @internal */
7
6
  export const comboboxRendererStyles = (prefix = 'zero') => `
8
7
  ${prefix}-combobox::part(listbox) {
@@ -12,9 +11,7 @@ export const comboboxRendererStyles = (prefix = 'zero') => `
12
11
  `;
13
12
  /** @internal */
14
13
  export const foundationFormStyles = css `
15
- ${controlWrapperStyles}
16
-
17
- foundation-form {
14
+ :host {
18
15
  border: calc(${strokeWidth} * 1px) solid transparent;
19
16
  margin: 0;
20
17
  border-radius: calc(${controlCornerRadius} * 1px);
@@ -28,7 +25,32 @@ export const foundationFormStyles = css `
28
25
  box-sizing: border-box;
29
26
  }
30
27
 
31
- foundation-form .actions {
28
+ .form-grid-compact {
29
+ font-size: 0.9em;
30
+ }
31
+
32
+ .form-controls {
33
+ display: grid;
34
+ grid-gap: calc(${designUnit} * 1px);
35
+ grid-column-gap: calc(${designUnit} * 7px);
36
+ grid-template-columns: repeat(2, 1fr);
37
+ }
38
+
39
+ .form-group {
40
+ display: flex;
41
+ flex-direction: column;
42
+ }
43
+
44
+ .required::after {
45
+ content: ' *';
46
+ color: #f00;
47
+ }
48
+
49
+ .label {
50
+ font-size: calc(${designUnit} * 1px + 0.7vmin);
51
+ }
52
+
53
+ .actions {
32
54
  display: flex;
33
55
  flex-direction: row;
34
56
  align-items: flex-end;
@@ -37,18 +59,22 @@ export const foundationFormStyles = css `
37
59
  gap: 10px;
38
60
  }
39
61
 
40
- foundation-form .approval-message-actions {
62
+ .error {
63
+ border-bottom: 2px solid red;
64
+ }
65
+
66
+ .approval-message-actions {
41
67
  display: flex;
42
68
  justify-content: flex-end;
43
69
  gap: calc(${designUnit} * 2px);
44
70
  margin-top: calc(${designUnit} * 2px);
45
71
  }
46
72
 
47
- foundation-form .submit-button {
73
+ .submit-button {
48
74
  margin: 0;
49
75
  }
50
76
 
51
- foundation-form .csv-upload-section {
77
+ .csv-upload-section {
52
78
  display: flex;
53
79
  align-items: center;
54
80
  gap: calc(${designUnit} * 3px);
@@ -56,13 +82,13 @@ export const foundationFormStyles = css `
56
82
  margin-bottom: calc(${designUnit} * 2px);
57
83
  }
58
84
 
59
- foundation-form .csv-file-input {
85
+ .csv-file-input {
60
86
  display: none;
61
87
  }
62
88
 
63
89
  /* Card-like styling for CSV buttons - matches array item aesthetic */
64
- foundation-form .csv-template-button,
65
- foundation-form .csv-import-button {
90
+ .csv-template-button,
91
+ .csv-import-button {
66
92
  display: flex;
67
93
  align-items: center;
68
94
  gap: calc(${designUnit} * 1px);
@@ -78,14 +104,14 @@ export const foundationFormStyles = css `
78
104
  border-color 0.15s ease;
79
105
  }
80
106
 
81
- foundation-form .csv-template-button:hover,
82
- foundation-form .csv-import-button:hover {
107
+ .csv-template-button:hover,
108
+ .csv-import-button:hover {
83
109
  box-shadow:
84
110
  0 2px 4px rgb(0 0 0 / 6%),
85
111
  0 6px 12px rgb(0 0 0 / 8%);
86
112
  }
87
113
  `.withBehaviors(forcedColorsStylesheetBehavior(css `
88
- foundation-form {
114
+ :host {
89
115
  background: ${SystemColors.Canvas};
90
116
  border-color: ${SystemColors.CanvasText};
91
117
  }
@@ -3,10 +3,11 @@ import { html, ref, when } from '@microsoft/fast-element';
3
3
  import { JSONForms } from './jsonforms/json-forms';
4
4
  import { ArrayListWrapper } from './jsonforms/renderers/ArrayListWrapperRenderer';
5
5
  import { CategorizationWrapper } from './jsonforms/renderers/CategorizationWrapperRenderer';
6
+ import { ControlWrapper } from './jsonforms/renderers/ControlWrapperRenderer';
6
7
  import { DispatchRenderer } from './jsonforms/renderers/dispatch-renderer';
7
8
  import { StepperWrapper } from './jsonforms/renderers/StepperWrapperRenderer';
8
9
  import { VerticalCategorizationWrapper } from './jsonforms/renderers/VerticalCategorizationWrapperRenderer';
9
- avoidTreeShaking(JSONForms, ArrayListWrapper, CategorizationWrapper, VerticalCategorizationWrapper, DispatchRenderer, StepperWrapper);
10
+ avoidTreeShaking(JSONForms, ArrayListWrapper, CategorizationWrapper, VerticalCategorizationWrapper, ControlWrapper, DispatchRenderer, StepperWrapper);
10
11
  /** @internal */
11
12
  export const getPrefixedForm = (prefix) => html `
12
13
  <template>
package/dist/esm/index.js CHANGED
@@ -4,7 +4,5 @@ export * from './form.styles';
4
4
  export * from './form.template';
5
5
  export { MulticolumnDropdownControlRendererEntry, MulticolumnDropdownControlRendererTemplate, } from './jsonforms/renderers/MulticolumnDropdownControlRenderer';
6
6
  export { LayoutVerticalCategorizationRendererEntry } from './jsonforms/renderers/LayoutVerticalCategorizationRenderer';
7
- export { controlWrapperTemplate, controlWrapperStyles, } from './jsonforms/renderers/ControlWrapperRenderer';
8
- export { layoutWrapperTemplate } from './jsonforms/renderers/LayoutRenderer';
9
7
  export * from './types';
10
8
  export * from './utils';
@@ -49,10 +49,6 @@ let JSONForms = class JSONForms extends FASTElement {
49
49
  this.bulkInsert = false;
50
50
  this.dispatch = (action) => {
51
51
  this.jsonforms = Object.assign(Object.assign({}, this.jsonforms), { core: coreReducer(this.jsonforms.core, action) });
52
- // Re-run custom validators against the updated data so consumers receive
53
- // fresh `additionalErrors` from this single emit (previously the follow-up
54
- // schemaChanged() emit supplied these).
55
- const additionalErrors = this.validate(this.uichemaToUse);
56
52
  this.$emit('data-change', {
57
53
  data: this.jsonforms.core.data,
58
54
  errors: this.jsonforms.core.errors,
@@ -149,28 +145,7 @@ let JSONForms = class JSONForms extends FASTElement {
149
145
  this.schemaChanged();
150
146
  }
151
147
  dataChanged() {
152
- var _a;
153
- // If core isn't initialized yet, fall back to full init via schemaChanged
154
- // (which no-ops until a schema is present).
155
- if (!((_a = this.jsonforms) === null || _a === void 0 ? void 0 : _a.core)) {
156
- this.schemaChanged();
157
- return;
158
- }
159
- // Skip echoes: after dispatch emits `data-change`, the parent form mirrors
160
- // the same `data` reference back into this property. Re-initializing here
161
- // would cause `data-change` to fire twice for every user edit.
162
- if (this.jsonforms.core.data === this.data) {
163
- return;
164
- }
165
- // External data update (e.g. reset, CSV import) — fold into core state
166
- // without re-running Actions.init, then emit a single data-change.
167
- this.jsonforms = Object.assign(Object.assign({}, this.jsonforms), { core: coreReducer(this.jsonforms.core, Actions.updateCore(this.data, this.schema, this.uichemaToUse)) });
168
- const additionalErrors = this.validate(this.uichemaToUse);
169
- this.$emit('data-change', {
170
- data: this.jsonforms.core.data,
171
- errors: this.jsonforms.core.errors,
172
- additionalErrors,
173
- });
148
+ this.schemaChanged();
174
149
  }
175
150
  renderersChanged() {
176
151
  this.schemaChanged();
@@ -285,7 +260,6 @@ JSONForms = __decorate([
285
260
  display: flex;
286
261
  }
287
262
  `,
288
- shadowOptions: null,
289
263
  })
290
264
  ], JSONForms);
291
265
  export { JSONForms };
@@ -185,7 +185,7 @@ export const ArrayListWrapperRendererTemplate = (prefix = 'zero') => html `
185
185
  </template>
186
186
  `;
187
187
  const styles = css `
188
- array-list-wrapper {
188
+ :host {
189
189
  padding-left: calc(${designUnit} * 1px);
190
190
  display: flex;
191
191
  flex-direction: column;
@@ -205,7 +205,7 @@ const styles = css `
205
205
  --array-item-radius: calc(${designUnit} * 2px);
206
206
  }
207
207
 
208
- array-list-wrapper .array-list {
208
+ .array-list {
209
209
  display: flex;
210
210
  align-items: flex-start;
211
211
  position: relative;
@@ -222,18 +222,18 @@ const styles = css `
222
222
  border-color 0.15s ease;
223
223
  }
224
224
 
225
- array-list-wrapper .array-list:hover {
225
+ .array-list:hover {
226
226
  box-shadow: var(--array-item-shadow-hover);
227
227
  }
228
228
 
229
229
  /* Content area grows to fill space; min-width prevents flex overflow */
230
- array-list-wrapper .array-list > dispatch-renderer {
230
+ .array-list > dispatch-renderer {
231
231
  flex: 1;
232
232
  min-width: 0;
233
233
  }
234
234
 
235
235
  /* Left accent bar for visual hierarchy - industrial form-slot feel */
236
- array-list-wrapper .array-list::before {
236
+ .array-list::before {
237
237
  content: '';
238
238
  position: absolute;
239
239
  left: 0;
@@ -245,31 +245,31 @@ const styles = css `
245
245
  pointer-events: none;
246
246
  }
247
247
 
248
- array-list-wrapper .array-list.row-status-success::before {
248
+ .array-list.row-status-success::before {
249
249
  background: var(--row-status-success-color);
250
250
  }
251
251
 
252
- array-list-wrapper .array-list.row-status-failed::before {
252
+ .array-list.row-status-failed::before {
253
253
  background: var(--row-status-failed-color);
254
254
  }
255
255
 
256
- array-list-wrapper .array-list.row-status-submitting::before {
256
+ .array-list.row-status-submitting::before {
257
257
  background: var(--row-status-submitting-color);
258
258
  }
259
259
 
260
- array-list-wrapper .array-list.row-status-success {
260
+ .array-list.row-status-success {
261
261
  background-color: color-mix(in srgb, var(--row-status-success-color), transparent 90%);
262
262
  }
263
263
 
264
- array-list-wrapper .array-list.row-status-failed {
264
+ .array-list.row-status-failed {
265
265
  background-color: color-mix(in srgb, var(--row-status-failed-color), transparent 90%);
266
266
  }
267
267
 
268
- array-list-wrapper .array-list.row-status-submitting {
268
+ .array-list.row-status-submitting {
269
269
  background-color: color-mix(in srgb, var(--row-status-submitting-color), transparent 95%);
270
270
  }
271
271
 
272
- array-list-wrapper .row-status-indicator {
272
+ .row-status-indicator {
273
273
  display: flex;
274
274
  align-items: center;
275
275
  justify-content: center;
@@ -278,65 +278,64 @@ const styles = css `
278
278
  }
279
279
 
280
280
  /* Hide all status indicators by default */
281
- array-list-wrapper .row-status-indicator .status-spinner,
282
- array-list-wrapper .row-status-indicator .status-success,
283
- array-list-wrapper .row-status-indicator .status-failed {
281
+ .row-status-indicator .status-spinner,
282
+ .row-status-indicator .status-success,
283
+ .row-status-indicator .status-failed {
284
284
  display: none;
285
285
  }
286
286
 
287
287
  /* Show spinner when submitting */
288
- array-list-wrapper .array-list.row-status-submitting .row-status-indicator .status-spinner {
288
+ .array-list.row-status-submitting .row-status-indicator .status-spinner {
289
289
  display: flex;
290
290
  }
291
291
 
292
292
  /* Show success icon when successful */
293
- array-list-wrapper .array-list.row-status-success .row-status-indicator .status-success {
293
+ .array-list.row-status-success .row-status-indicator .status-success {
294
294
  display: flex;
295
295
  }
296
296
 
297
297
  /* Show failed icon when failed */
298
- array-list-wrapper .array-list.row-status-failed .row-status-indicator .status-failed {
298
+ .array-list.row-status-failed .row-status-indicator .status-failed {
299
299
  display: flex;
300
300
  }
301
301
 
302
- array-list-wrapper .status-icon {
302
+ .status-icon {
303
303
  width: calc(${designUnit} * 4px);
304
304
  height: calc(${designUnit} * 4px);
305
305
  }
306
306
 
307
- array-list-wrapper .status-success {
307
+ .status-success {
308
308
  color: var(--row-status-success-color);
309
309
  }
310
310
 
311
- array-list-wrapper .status-failed {
311
+ .status-failed {
312
312
  color: var(--row-status-failed-color);
313
313
  cursor: help;
314
314
  }
315
315
 
316
- array-list-wrapper .status-spinner {
316
+ .status-spinner {
317
317
  width: calc(${designUnit} * 4px);
318
318
  height: calc(${designUnit} * 4px);
319
319
  }
320
320
 
321
- array-list-wrapper .item-control-btn {
321
+ .item-control-btn {
322
322
  color: var(--neutral-foreground-hint, rgb(135, 155, 166));
323
323
  margin-left: calc(${designUnit} * 3px);
324
324
  }
325
325
 
326
- array-list-wrapper .item-control-btn:hover {
326
+ .item-control-btn:hover {
327
327
  color: var(--accent-foreground-hover);
328
328
  }
329
329
 
330
- array-list-wrapper .row-submit-btn {
330
+ .row-submit-btn {
331
331
  min-width: calc(${designUnit} * 8px);
332
332
  }
333
333
 
334
- array-list-wrapper .row-submit-btn[disabled] {
334
+ .row-submit-btn[disabled] {
335
335
  opacity: 0.5;
336
336
  cursor: not-allowed;
337
337
  }
338
-
339
- array-list-wrapper .button-group {
338
+ .button-group {
340
339
  display: flex;
341
340
  flex-direction: column;
342
341
  gap: 8px;
@@ -344,7 +343,7 @@ const styles = css `
344
343
 
345
344
  /* ── Grid view ────────────────────────────────────────────── */
346
345
 
347
- array-list-wrapper .grid-header {
346
+ .grid-header {
348
347
  display: flex;
349
348
  align-items: center;
350
349
  gap: 10px;
@@ -358,14 +357,14 @@ const styles = css `
358
357
  letter-spacing: 0.04em;
359
358
  }
360
359
 
361
- array-list-wrapper .grid-header-status-spacer {
360
+ .grid-header-status-spacer {
362
361
  width: var(--grid-status-track-width);
363
362
  min-width: var(--grid-status-track-width);
364
363
  flex: 0 0 var(--grid-status-track-width);
365
364
  flex-shrink: 0;
366
365
  }
367
366
 
368
- array-list-wrapper .grid-header-cell {
367
+ .grid-header-cell {
369
368
  flex: 1;
370
369
  min-width: 0;
371
370
  overflow: hidden;
@@ -376,28 +375,28 @@ const styles = css `
376
375
  gap: 4px;
377
376
  }
378
377
 
379
- array-list-wrapper .grid-header-actions {
378
+ .grid-header-actions {
380
379
  width: var(--grid-actions-track-width);
381
380
  min-width: var(--grid-actions-track-width);
382
381
  flex: 0 0 var(--grid-actions-track-width);
383
382
  text-align: center;
384
383
  }
385
384
 
386
- array-list-wrapper .grid-header-label-text {
385
+ .grid-header-label-text {
387
386
  overflow: hidden;
388
387
  text-overflow: ellipsis;
389
388
  }
390
389
 
391
- array-list-wrapper .grid-header-required-indicator {
390
+ .grid-header-required-indicator {
392
391
  color: var(--accent-foreground-rest, #0078d4);
393
392
  }
394
393
 
395
- array-list-wrapper .grid-header-tooltip {
394
+ .grid-header-tooltip {
396
395
  color: var(--neutral-foreground-rest, rgb(217, 223, 224));
397
396
  cursor: help;
398
397
  }
399
398
 
400
- array-list-wrapper .array-list.grid-row {
399
+ .array-list.grid-row {
401
400
  border: none;
402
401
  border-radius: 0;
403
402
  box-shadow: none;
@@ -409,54 +408,54 @@ const styles = css `
409
408
  gap: 10px;
410
409
  }
411
410
 
412
- array-list-wrapper .array-list.grid-row::before {
411
+ .array-list.grid-row::before {
413
412
  display: none;
414
413
  }
415
414
 
416
- array-list-wrapper .array-list.grid-row:nth-child(odd) {
415
+ .array-list.grid-row:nth-child(odd) {
417
416
  background-color: var(--neutral-layer-2, rgba(0, 0, 0, 0.02));
418
417
  }
419
418
 
420
- array-list-wrapper .array-list.grid-row:nth-child(even) {
419
+ .array-list.grid-row:nth-child(even) {
421
420
  background-color: var(--neutral-layer-1, #fff);
422
421
  }
423
422
 
424
- array-list-wrapper .array-list.grid-row:hover {
423
+ .array-list.grid-row:hover {
425
424
  background-color: var(--neutral-fill-stealth-hover, rgba(0, 0, 0, 0.06));
426
425
  box-shadow: none;
427
426
  }
428
427
 
429
- array-list-wrapper .array-list.grid-row > dispatch-renderer {
428
+ .array-list.grid-row > dispatch-renderer {
430
429
  --control-label-margin: 0;
431
430
  }
432
431
 
433
- array-list-wrapper .array-list.grid-row .row-status-indicator {
432
+ .array-list.grid-row .row-status-indicator {
434
433
  width: var(--grid-status-track-width);
435
434
  min-width: var(--grid-status-track-width);
436
435
  margin-right: 0;
437
436
  flex: 0 0 var(--grid-status-track-width);
438
437
  }
439
438
 
440
- array-list-wrapper .array-list.grid-row .button-group {
439
+ .array-list.grid-row .button-group {
441
440
  width: var(--grid-actions-track-width);
442
441
  min-width: var(--grid-actions-track-width);
443
442
  flex: 0 0 var(--grid-actions-track-width);
444
443
  align-items: center;
445
444
  }
446
445
 
447
- array-list-wrapper .array-list.grid-row .item-control-btn {
446
+ .array-list.grid-row .item-control-btn {
448
447
  margin-left: 0;
449
448
  }
450
449
 
451
- array-list-wrapper .array-list.grid-row.row-status-success {
450
+ .array-list.grid-row.row-status-success {
452
451
  background-color: color-mix(in srgb, var(--row-status-success-color), transparent 90%);
453
452
  }
454
453
 
455
- array-list-wrapper .array-list.grid-row.row-status-failed {
454
+ .array-list.grid-row.row-status-failed {
456
455
  background-color: color-mix(in srgb, var(--row-status-failed-color), transparent 90%);
457
456
  }
458
457
 
459
- array-list-wrapper .array-list.grid-row.row-status-submitting {
458
+ .array-list.grid-row.row-status-submitting {
460
459
  background-color: color-mix(in srgb, var(--row-status-submitting-color), transparent 95%);
461
460
  }
462
461
  `;
@@ -525,7 +524,6 @@ ArrayListWrapper = __decorate([
525
524
  customElement({
526
525
  name: 'array-list-wrapper',
527
526
  styles,
528
- shadowOptions: null,
529
527
  template: html `
530
528
  ${(x) => ArrayListWrapperRendererTemplate(x.form.prefix)}
531
529
  `,
@@ -1,28 +1,29 @@
1
1
  import { mapStateToControlProps, rankWith } from '@jsonforms/core';
2
2
  import { html } from '@microsoft/fast-element';
3
3
  import { isOneOfBoolean } from '../testers/isOneOfBoolean';
4
- import { controlWrapperTemplate } from './ControlWrapperRenderer';
5
4
  import { BOOLEAN_CONTROL_RANK } from './RenderersRanks';
6
5
  export const BooleanControlRendererTemplate = (prefix = 'zero') => html `
7
6
  <template>
8
- ${controlWrapperTemplate({
9
- prefix,
10
- innerTemplate: html `
11
- <${prefix}-checkbox
12
- ?checked=${(x) => x.control.data}
13
- ?disabled=${(x) => !x.control.enabled}
14
- :autofocus=${(x) => x.control.config.focus}
15
- :placeholder=${(x) => x.control.config.placeholder}
16
- tabindex="${(x) => { var _a, _b; return (_b = (_a = x.control.uischema) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.tabIndex; }}"
17
- @change=${(x, c) => {
18
- x.control.handleChange(x.control.path, c.event.target.checked);
19
- x.onBlur();
20
- }}
21
- id=${(x) => x.control.path}
22
- data-test-id=${(x) => x.control.path}
23
- ></${prefix}-checkbox>
24
- `,
25
- })}
7
+ <control-wrapper
8
+ :control=${(x) => x.control}
9
+ :jsonForms=${(x) => x.jsonforms}
10
+ :touched=${(x) => x.touched}
11
+ ?submitted=${(x) => x.submitted}
12
+ >
13
+ <${prefix}-checkbox
14
+ ?checked=${(x) => x.control.data}
15
+ ?disabled=${(x) => !x.control.enabled}
16
+ :autofocus=${(x) => x.control.config.focus}
17
+ :placeholder=${(x) => x.control.config.placeholder}
18
+ tabindex="${(x) => { var _a, _b; return (_b = (_a = x.control.uischema) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.tabIndex; }}"
19
+ @change=${(x, c) => {
20
+ x.control.handleChange(x.control.path, c.event.target.checked);
21
+ x.onBlur();
22
+ }}
23
+ id=${(x) => x.control.path}
24
+ data-test-id=${(x) => x.control.path}
25
+ ></${prefix}-checkbox>
26
+ </control-wrapper>
26
27
  </template>
27
28
  `;
28
29
  export const BooleanControlEntry = {
@@ -40,21 +40,17 @@ export const CategorizationWrapperRendererTemplate = (prefix = 'zero') => html `
40
40
  </template>
41
41
  `;
42
42
  const styles = css `
43
- categorization-wrapper .tabs-container::part(tablist) {
43
+ .tabs-container::part(tablist) {
44
44
  background-color: transparent;
45
45
  border-bottom: none;
46
46
  }
47
47
 
48
- categorization-wrapper .tab-control {
48
+ .tab-control {
49
49
  box-shadow: none;
50
+ ${tabControlIconStyles}
50
51
  }
51
52
 
52
- categorization-wrapper .tab-control .tab-control-icon {
53
- margin-left: 3px;
54
- color: #f9644d;
55
- }
56
-
57
- categorization-wrapper .tab-panel-control {
53
+ .tab-panel-control {
58
54
  margin-top: 10px;
59
55
  }
60
56
  `;
@@ -79,7 +75,6 @@ CategorizationWrapper = __decorate([
79
75
  customElement({
80
76
  name: 'categorization-wrapper',
81
77
  styles,
82
- shadowOptions: null,
83
78
  template: html `
84
79
  ${(x) => CategorizationWrapperRendererTemplate(x.form.prefix)}
85
80
  `,
@@ -2,48 +2,50 @@ import { MultiselectDatasource } from '@genesislcap/foundation-ui';
2
2
  import { mapStateToControlProps, rankWith } from '@jsonforms/core';
3
3
  import { html } from '@microsoft/fast-element';
4
4
  import { isOneOfOptionMultiselect } from '../testers/isOneOfOptionMultiselect';
5
- import { controlWrapperTemplate } from './ControlWrapperRenderer';
6
5
  import { MULTISELECT_CONTROL_RANK } from './RenderersRanks';
7
6
  MultiselectDatasource;
8
7
  export const ConnectedMultiselectControlRendererTemplate = (prefix = 'zero') => html `
9
8
  <template>
10
- ${controlWrapperTemplate({
11
- prefix,
12
- innerTemplate: html `
13
- <${prefix}-multiselect
14
- style="width: 100%"
15
- async=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.async; }}
16
- ?disabled=${(x) => !x.control.enabled}
17
- :selectedOptions=${(x) => {
18
- var _a, _b, _c;
19
- const selectedOptions = ((_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.delimiter)
20
- ? (_b = x.control.data) === null || _b === void 0 ? void 0 : _b.split((_c = x.control.uischema.options) === null || _c === void 0 ? void 0 : _c.delimiter)
21
- : x.control.data;
22
- return selectedOptions || [];
23
- }}
24
- tabindex="${(x) => { var _a, _b; return (_b = (_a = x.control.uischema) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.tabIndex; }}"
25
- @selectionChange=${(x, c) => {
26
- var _a, _b, _c;
27
- const value = !((_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.delimiter)
28
- ? c.event.detail
29
- : (_b = c.event.detail) === null || _b === void 0 ? void 0 : _b.join((_c = x.control.uischema.options) === null || _c === void 0 ? void 0 : _c.delimiter);
30
- x.control.handleChange(x.control.path, value);
31
- x.$emit('change');
32
- x.onBlur();
33
- }}
34
- id=${(x) => x.control.path}
35
- data-test-id=${(x) => x.control.path}
36
- >
37
- <multiselect-datasource
38
- resourceName=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.allOptionsResourceName; }}
39
- value-field=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.valueField; }}
40
- label-field=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.labelField; }}
41
- :data=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.data; }}
42
- :datasourceConfig=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.datasourceConfig; }}
43
- ></multiselect-datasource>
44
- </${prefix}-multiselect>
45
- `,
46
- })}
9
+ <control-wrapper
10
+ :control=${(x) => x.control}
11
+ :jsonForms=${(x) => x.jsonforms}
12
+ :touched=${(x) => x.touched}
13
+ ?submitted=${(x) => x.submitted}
14
+ prefix="${prefix}"
15
+ >
16
+ <${prefix}-multiselect
17
+ style="width: 100%"
18
+ async=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.async; }}
19
+ ?disabled=${(x) => !x.control.enabled}
20
+ :selectedOptions=${(x) => {
21
+ var _a, _b, _c;
22
+ const selectedOptions = ((_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.delimiter)
23
+ ? (_b = x.control.data) === null || _b === void 0 ? void 0 : _b.split((_c = x.control.uischema.options) === null || _c === void 0 ? void 0 : _c.delimiter)
24
+ : x.control.data;
25
+ return selectedOptions || [];
26
+ }}
27
+ tabindex="${(x) => { var _a, _b; return (_b = (_a = x.control.uischema) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.tabIndex; }}"
28
+ @selectionChange=${(x, c) => {
29
+ var _a, _b, _c;
30
+ const value = !((_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.delimiter)
31
+ ? c.event.detail
32
+ : (_b = c.event.detail) === null || _b === void 0 ? void 0 : _b.join((_c = x.control.uischema.options) === null || _c === void 0 ? void 0 : _c.delimiter);
33
+ x.control.handleChange(x.control.path, value);
34
+ x.$emit('change');
35
+ x.onBlur();
36
+ }}
37
+ id=${(x) => x.control.path}
38
+ data-test-id=${(x) => x.control.path}
39
+ >
40
+ <multiselect-datasource
41
+ resourceName=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.allOptionsResourceName; }}
42
+ value-field=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.valueField; }}
43
+ label-field=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.labelField; }}
44
+ :data=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.data; }}
45
+ :datasourceConfig=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.datasourceConfig; }}
46
+ ></multiselect-datasource>
47
+ </${prefix}-multiselect>
48
+ </control-wrapper>
47
49
  </template>
48
50
  `;
49
51
  export const ConnectedMultiselectControlRendererEntry = {