@bpmn-io/form-js-editor 1.8.3 → 1.8.4

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.
@@ -10,10 +10,7 @@
10
10
  --color-dragula-background: var(--cds-highlight, var(--color-blue-205-100-95));
11
11
  --color-dragula-border: var(--cds-border-interactive, var(--color-blue-205-100-45));
12
12
  --color-dragula-mirror-background: var(--cds-background, var(--color-white));
13
- --color-dragula-mirror-border: var(
14
- --cds-border-strong,
15
- var(--cds-border-strong-01, var(--color-grey-225-10-90))
16
- );
13
+ --color-dragula-mirror-border: var(--cds-border-strong, var(--cds-border-strong-01, var(--color-grey-225-10-90)));
17
14
  --color-dragula-error-background: var(--color-red-360-100-92);
18
15
  --color-dragula-error-border: var(--cds-text-error, var(--color-red-360-100-45));
19
16
  }
@@ -21,43 +18,22 @@
21
18
  .fjs-palette-container {
22
19
  --color-palette-text: var(--cds-text-primary, var(--color-grey-225-10-15));
23
20
  --color-palette-container-background: var(--cds-background, var(--color-grey-225-10-95));
24
- --color-palette-container-border: var(
25
- --cds-border-strong,
26
- var(--cds-border-strong-01, var(--color-grey-225-10-80))
27
- );
21
+ --color-palette-container-border: var(--cds-border-strong, var(--cds-border-strong-01, var(--color-grey-225-10-80)));
28
22
  --color-palette-header: var(--cds-text-primary, var(--color-text));
29
23
  --color-palette-header-background: var(--cds-background, var(--color-grey-225-10-95));
30
- --color-palette-header-border: var(
31
- --cds-border-strong,
32
- var(--cds-border-strong-01, var(--color-grey-225-10-85))
33
- );
24
+ --color-palette-header-border: var(--cds-border-strong, var(--cds-border-strong-01, var(--color-grey-225-10-85)));
34
25
  --color-palette-search: var(--color-palette-text);
35
26
  --color-palette-search-icon: var(--cds-icon-secondary, var(--color-grey-225-10-35));
36
27
  --color-palette-search-icon-hover: var(--cds-icon-primary, var(--color-grey-225-10-15));
37
- --color-palette-search-background: var(
38
- --cds-field,
39
- var(--cds-field-01, var(--color-white))
40
- );
41
- --color-palette-search-border: var(
42
- --cds-border-strong,
43
- var(--cds-border-strong-01, var(--color-grey-225-10-75))
44
- );
45
- --color-palette-search-focus-background: var(
46
- --cds-field,
47
- var(--cds-field-01, var(--color-blue-205-100-95))
48
- );
28
+ --color-palette-search-background: var(--cds-field, var(--cds-field-01, var(--color-white)));
29
+ --color-palette-search-border: var(--cds-border-strong, var(--cds-border-strong-01, var(--color-grey-225-10-75)));
30
+ --color-palette-search-focus-background: var(--cds-field, var(--cds-field-01, var(--color-blue-205-100-95)));
49
31
  --color-palette-search-focus-border: var(--cds-focus, var(--color-blue-205-100-50));
50
32
  --color-palette-search-clear-focus-border: var(--cds-focus, var(--color-grey-225-10-50));
51
33
  --color-palette-group-title: var(--color-palette-text);
52
34
  --color-palette-field: var(--color-palette-text);
53
- --color-palette-field-background: var(
54
- --cds-layer,
55
- var(--cds-layer-01, var(--color-white))
56
- );
57
- --color-palette-field-border: var(
58
- --cds-border-subtle,
59
- var(--cds-border-subtle-01, var(--color-grey-225-10-93))
60
- );
35
+ --color-palette-field-background: var(--cds-layer, var(--cds-layer-01, var(--color-white)));
36
+ --color-palette-field-border: var(--cds-border-subtle, var(--cds-border-subtle-01, var(--color-grey-225-10-93)));
61
37
  --color-palette-field-focus: var(--cds-border-interactive, var(--color-blue-205-100-45));
62
38
  --color-palette-field-hover-background: var(--cds-background-hover, var(--color-grey-225-10-90));
63
39
  --color-palette-field-hover-border: var(
@@ -85,35 +61,17 @@
85
61
  --text-error-color: var(--cds-text-color, var(--color-red-360-100-45));
86
62
  --link-color: var(--cds-text-primary, var(--color-blue-205-100-50));
87
63
  --description-color: var(--cds-text-secondary, var(--color-grey-225-10-35));
88
- --description-code-background-color: var(
89
- --cds-layer,
90
- var(--cds-layer-01, var(--color-grey-225-10-97))
91
- );
92
- --description-code-border-color: var(
93
- --cds-border-strong,
94
- var(--cds-border-strong-01, var(--color-grey-225-10-85))
95
- );
64
+ --description-code-background-color: var(--cds-layer, var(--cds-layer-01, var(--color-grey-225-10-97)));
65
+ --description-code-border-color: var(--cds-border-strong, var(--cds-border-strong-01, var(--color-grey-225-10-85)));
96
66
  --description-list-item-color: var(--cds-text-secondary, var(--color-grey-225-10-35));
97
67
  --placeholder-color: var(--cds-text-placeholder, var(--color-grey-225-10-35));
98
- --placeholder-background-color: var(
99
- --cds-layer,
100
- var(--cds-layer-01, var(--color-grey-225-10-95))
101
- );
102
- --header-background-color: var(
103
- --cds-layer,
104
- var(--cds-layer-01, var(--color-grey-225-10-95))
105
- );
68
+ --placeholder-background-color: var(--cds-layer, var(--cds-layer-01, var(--color-grey-225-10-95)));
69
+ --header-background-color: var(--cds-layer, var(--cds-layer-01, var(--color-grey-225-10-95)));
106
70
  --header-icon-fill-color: var(--cds-icon-primary, var(--color-grey-225-10-15));
107
71
  --header-bottom-border-color: var(--color-grey-225-10-75);
108
72
  --group-background-color: var(--cds-background, var(--color-white));
109
- --group-bottom-border-color: var(
110
- --cds-border-strong,
111
- var(--cds-border-strong-01, var(--color-grey-225-10-75))
112
- );
113
- --sticky-group-background-color: var(
114
- --cds-layer,
115
- var(--cds-layer-01, var(--color-grey-225-10-95))
116
- );
73
+ --group-bottom-border-color: var(--cds-border-strong, var(--cds-border-strong-01, var(--color-grey-225-10-75)));
74
+ --sticky-group-background-color: var(--cds-layer, var(--cds-layer-01, var(--color-grey-225-10-95)));
117
75
  --sticky-group-bottom-border-color: var(
118
76
  --cds-border-strong,
119
77
  var(--cds-border-strong-01, var(--color-grey-225-10-75))
@@ -125,37 +83,19 @@
125
83
  --remove-entry-fill-color: var(--color-red-360-100-45);
126
84
  --remove-entry-hover-background-color: var(--color-red-360-100-92);
127
85
  --arrow-fill-color: var(--cds-icon-secondary, var(--color-grey-225-10-35));
128
- --arrow-hover-background-color: var(
129
- --cds-layer,
130
- var(--cds-layer-01, var(--color-grey-225-10-95))
131
- );
86
+ --arrow-hover-background-color: var(--cds-layer, var(--cds-layer-01, var(--color-grey-225-10-95)));
132
87
  --dot-color: var(--cds-text-secondary, var(--color-grey-225-10-35));
133
88
  --list-badge-color: var(--cds-text-inverse, var(--color-white));
134
89
  --list-badge-background-color: var(--cds-background-inverse, var(--color-grey-225-10-35));
135
- --input-background-color: var(
136
- --cds-field,
137
- var(--cds-field-01, var(--color-grey-225-10-97))
138
- );
139
- --input-border-color: var(
140
- --cds-border-strong,
141
- var(--cds-border-strong-01, var(--color-grey-225-10-75))
142
- );
143
- --input-focus-background-color: var(
144
- --cds-field,
145
- var(--cds-field-01, var(--color-blue-205-100-95))
146
- );
90
+ --input-background-color: var(--cds-field, var(--cds-field-01, var(--color-grey-225-10-97)));
91
+ --input-border-color: var(--cds-border-strong, var(--cds-border-strong-01, var(--color-grey-225-10-75)));
92
+ --input-focus-background-color: var(--cds-field, var(--cds-field-01, var(--color-blue-205-100-95)));
147
93
  --input-focus-border-color: var(--cds-focus, var(--color-blue-205-100-50));
148
- --input-error-background-color: var(
149
- --cds-field,
150
- var(--cds-field-01, var(--color-red-360-100-97))
151
- );
94
+ --input-error-background-color: var(--cds-field, var(--cds-field-01, var(--color-red-360-100-97)));
152
95
  --input-error-border-color: var(--cds-text-error, var(--color-red-360-100-45));
153
96
  --input-error-focus-border-color: var(--cds-text-error, var(--color-red-360-100-45));
154
97
  --input-disabled-color: var(--cds-text-disabled, var(--color-grey-225-10-55));
155
- --input-disabled-background-color: var(
156
- --cds-field,
157
- var(--cds-field-01, var(--color-grey-225-10-97))
158
- );
98
+ --input-disabled-background-color: var(--cds-field, var(--cds-field-01, var(--color-grey-225-10-97)));
159
99
  --input-disabled-border-color: var(--cds-border-disabled, var(--color-grey-225-10-90));
160
100
  --toggle-switch-on-background-color: var(--cds-interactive, var(--color-blue-205-100-50));
161
101
  --toggle-switch-off-background-color: var(--cds-toggle-off, var(--color-grey-225-10-75));
package/dist/index.cjs CHANGED
@@ -1436,7 +1436,6 @@ const SlotFillRoot = props => {
1436
1436
  return jsxRuntime.jsx(SlotContext.Provider, {
1437
1437
  value: slotContext,
1438
1438
  children: jsxRuntime.jsx(FillContext.Provider, {
1439
- /* @ts-expect-error */
1440
1439
  value: fillContext,
1441
1440
  children: props.children
1442
1441
  })
@@ -6169,6 +6168,7 @@ const useBufferedFocus = function (editor, ref) {
6169
6168
  };
6170
6169
  const CodeEditor = React.forwardRef((props, ref) => {
6171
6170
  const {
6171
+ contentAttributes,
6172
6172
  enableGutters,
6173
6173
  value,
6174
6174
  onInput,
@@ -6214,7 +6214,8 @@ const CodeEditor = React.forwardRef((props, ref) => {
6214
6214
  tooltipContainer: tooltipContainer,
6215
6215
  value: localValue,
6216
6216
  variables: variables,
6217
- extensions: [...(enableGutters ? [view.lineNumbers()] : []), view.EditorView.lineWrapping]
6217
+ extensions: [...(enableGutters ? [view.lineNumbers()] : []), view.EditorView.lineWrapping],
6218
+ contentAttributes
6218
6219
  });
6219
6220
  setEditor(editor);
6220
6221
  return () => {
@@ -7297,9 +7298,12 @@ function FeelTextfieldComponent(props) {
7297
7298
  disabled: feel !== 'optional' || disabled,
7298
7299
  onClick: handleFeelToggle
7299
7300
  }), feelActive ? jsxRuntime.jsx(CodeEditor, {
7300
- id: prefixId$5(id),
7301
7301
  name: id,
7302
7302
  onInput: handleLocalInput,
7303
+ contentAttributes: {
7304
+ 'id': prefixId$5(id),
7305
+ 'aria-label': label
7306
+ },
7303
7307
  disabled: disabled,
7304
7308
  popupOpen: popuOpen,
7305
7309
  onFeelToggle: () => {
@@ -8997,15 +9001,15 @@ function textToLabel(text) {
8997
9001
  }
8998
9002
 
8999
9003
  /**
9000
- * @param {string} path
9001
- */
9004
+ * @param {string} path
9005
+ */
9002
9006
  function isValidDotPath(path) {
9003
9007
  return /^\w+(\.\w+)*$/.test(path);
9004
9008
  }
9005
9009
 
9006
9010
  /**
9007
- * @param {string} path
9008
- */
9011
+ * @param {string} path
9012
+ */
9009
9013
  function isProhibitedPath(path) {
9010
9014
  const prohibitedSegments = ['__proto__', 'prototype', 'constructor'];
9011
9015
  return path.split('.').some(segment => prohibitedSegments.includes(segment));
@@ -9033,8 +9037,8 @@ function hasOptionsGroupsConfigured(formFieldDefinition) {
9033
9037
  }
9034
9038
 
9035
9039
  /**
9036
- * @param {string} path
9037
- */
9040
+ * @param {string} path
9041
+ */
9038
9042
  function hasIntegerPathSegment(path) {
9039
9043
  return path.split('.').some(segment => /^\d+$/.test(segment));
9040
9044
  }
@@ -10481,9 +10485,9 @@ function Height(props) {
10481
10485
  // helpers //////////
10482
10486
 
10483
10487
  /**
10484
- * @param {number|void} value
10485
- * @returns {string|null}
10486
- */
10488
+ * @param {number|void} value
10489
+ * @returns {string|null}
10490
+ */
10487
10491
  const validate$7 = value => {
10488
10492
  if (typeof value !== 'number') {
10489
10493
  return 'A number is required.';
@@ -10563,7 +10567,7 @@ function getTooltip$1() {
10563
10567
  }), jsxRuntime.jsx("p", {
10564
10568
  children: "Please make sure that the URL is safe as it might impose security risks."
10565
10569
  }), jsxRuntime.jsxs("p", {
10566
- children: ["Not all external sources can be displayed in the iFrame. Read more about it in the ", jsxRuntime.jsx("a", {
10570
+ children: ["Not all external sources can be displayed in the iFrame. Read more about it in the", ' ', jsxRuntime.jsx("a", {
10567
10571
  target: "_blank",
10568
10572
  href: "https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options",
10569
10573
  children: "X-FRAME-OPTIONS documentation"
@@ -10573,9 +10577,9 @@ function getTooltip$1() {
10573
10577
  }
10574
10578
 
10575
10579
  /**
10576
- * @param {string|void} value
10577
- * @returns {string|null}
10578
- */
10580
+ * @param {string|void} value
10581
+ * @returns {string|null}
10582
+ */
10579
10583
  const validate$6 = value => {
10580
10584
  if (!value || value.startsWith('=')) {
10581
10585
  return;
@@ -10678,7 +10682,7 @@ function Text(props) {
10678
10682
  });
10679
10683
  }
10680
10684
  const description$1 = jsxRuntime.jsxs(jsxRuntime.Fragment, {
10681
- children: ["Supports markdown and templating. ", jsxRuntime.jsx("a", {
10685
+ children: ["Supports markdown and templating.", ' ', jsxRuntime.jsx("a", {
10682
10686
  href: "https://docs.camunda.io/docs/components/modeler/forms/form-element-library/forms-element-library-text/",
10683
10687
  target: "_blank",
10684
10688
  children: "Learn more"
@@ -10734,17 +10738,17 @@ function Content(props) {
10734
10738
  // helpers //////////
10735
10739
 
10736
10740
  const description = jsxRuntime.jsxs(jsxRuntime.Fragment, {
10737
- children: ["Supports HTML, styling, and templating. Styles are automatically scoped to the HTML component. ", jsxRuntime.jsx("a", {
10738
- href: "https://docs.camunda.io/docs/next/components/modeler/forms/form-element-library/forms-element-library-html/",
10741
+ children: ["Supports HTML, styling, and templating. Styles are automatically scoped to the HTML component.", ' ', jsxRuntime.jsx("a", {
10742
+ href: "https://docs.camunda.io/docs/components/modeler/forms/form-element-library/forms-element-library-html/",
10739
10743
  target: "_blank",
10740
10744
  children: "Learn more"
10741
10745
  })]
10742
10746
  });
10743
10747
 
10744
10748
  /**
10745
- * @param {string|void} value
10746
- * @returns {string|null}
10747
- */
10749
+ * @param {string|void} value
10750
+ * @returns {string|null}
10751
+ */
10748
10752
  const validate$5 = value => {
10749
10753
  // allow empty state
10750
10754
  if (typeof value !== 'string' || value === '') {
@@ -11591,9 +11595,9 @@ function InputValuesKey(props) {
11591
11595
  // helpers //////////
11592
11596
 
11593
11597
  /**
11594
- * @param {string|void} value
11595
- * @returns {string|null}
11596
- */
11598
+ * @param {string|void} value
11599
+ * @returns {string|null}
11600
+ */
11597
11601
  const validate$4 = value => {
11598
11602
  if (typeof value !== 'string' || value.length === 0) {
11599
11603
  return 'Must not be empty.';
@@ -12045,9 +12049,9 @@ function Source(props) {
12045
12049
  // helper ////////////////
12046
12050
 
12047
12051
  /**
12048
- * @param {string|void} value
12049
- * @returns {string|null}
12050
- */
12052
+ * @param {string|void} value
12053
+ * @returns {string|null}
12054
+ */
12051
12055
  const validate$3 = value => {
12052
12056
  if (!minDash.isString(value) || value.length === 0) {
12053
12057
  return 'Must not be empty.';
@@ -12093,8 +12097,8 @@ function Pagination(props) {
12093
12097
  };
12094
12098
 
12095
12099
  /**
12096
- * @param {boolean} value
12097
- */
12100
+ * @param {boolean} value
12101
+ */
12098
12102
  const setValue = value => {
12099
12103
  value ? editField(field, path, defaultRowCount) : editField(field, path, undefined);
12100
12104
  };
@@ -12159,9 +12163,9 @@ function RowCount(props) {
12159
12163
  // helpers //////////
12160
12164
 
12161
12165
  /**
12162
- * @param {string|void} value
12163
- * @returns {string|null}
12164
- */
12166
+ * @param {string|void} value
12167
+ * @returns {string|null}
12168
+ */
12165
12169
  const validate$2 = value => {
12166
12170
  if (minDash.isNil(value)) {
12167
12171
  return null;
@@ -12306,10 +12310,10 @@ function ColumnsExpression(props) {
12306
12310
  };
12307
12311
 
12308
12312
  /**
12309
- * @param {string|void} value
12310
- * @param {string|void} error
12311
- * @returns {void}
12312
- */
12313
+ * @param {string|void} value
12314
+ * @param {string|void} error
12315
+ * @returns {void}
12316
+ */
12313
12317
  const setValue = (value, error) => {
12314
12318
  if (error) {
12315
12319
  return;
@@ -12343,9 +12347,9 @@ function ColumnsExpression(props) {
12343
12347
  // helpers //////////
12344
12348
 
12345
12349
  /**
12346
- * @param {string|void} value
12347
- * @returns {string|null}
12348
- */
12350
+ * @param {string|void} value
12351
+ * @returns {string|null}
12352
+ */
12349
12353
  const validate$1 = value => {
12350
12354
  if (!minDash.isString(value) || value.length === 0 || value === '=') {
12351
12355
  return 'Must not be empty.';
@@ -12390,10 +12394,10 @@ function Label(props) {
12390
12394
  const debounce = useService('debounce');
12391
12395
 
12392
12396
  /**
12393
- * @param {string|void} value
12394
- * @param {string|void} error
12395
- * @returns {void}
12396
- */
12397
+ * @param {string|void} value
12398
+ * @param {string|void} error
12399
+ * @returns {void}
12400
+ */
12397
12401
  const setValue = (value, error) => {
12398
12402
  if (error) {
12399
12403
  return;
@@ -12423,10 +12427,10 @@ function Key(props) {
12423
12427
  const debounce = useService('debounce');
12424
12428
 
12425
12429
  /**
12426
- * @param {string|void} value
12427
- * @param {string|void} error
12428
- * @returns {void}
12429
- */
12430
+ * @param {string|void} value
12431
+ * @param {string|void} error
12432
+ * @returns {void}
12433
+ */
12430
12434
  const setValue = (value, error) => {
12431
12435
  if (error) {
12432
12436
  return;
@@ -12451,9 +12455,9 @@ function Key(props) {
12451
12455
  // helpers //////////////////////
12452
12456
 
12453
12457
  /**
12454
- * @param {string|void} value
12455
- * @returns {string|null}
12456
- */
12458
+ * @param {string|void} value
12459
+ * @returns {string|null}
12460
+ */
12457
12461
  function validate(value) {
12458
12462
  if (!minDash.isString(value) || value.length === 0) {
12459
12463
  return 'Must not be empty.';
@@ -13132,7 +13136,7 @@ const Advisory = props => {
13132
13136
  function getTooltip() {
13133
13137
  return jsxRuntime.jsx(jsxRuntime.Fragment, {
13134
13138
  children: jsxRuntime.jsxs("p", {
13135
- children: ["Allow the iframe to access more functionality of your browser, details regarding the various options can be found in the ", jsxRuntime.jsx("a", {
13139
+ children: ["Allow the iframe to access more functionality of your browser, details regarding the various options can be found in the", ' ', jsxRuntime.jsx("a", {
13136
13140
  target: "_blank",
13137
13141
  href: "https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe",
13138
13142
  children: "MDN iFrame documentation."
@@ -13170,8 +13174,8 @@ function TableHeaderGroups(field, editField) {
13170
13174
  const areStaticColumnsEnabled = minDash.isArray(minDash.get(field, ['columns']));
13171
13175
 
13172
13176
  /**
13173
- * @type {Array<Group>}
13174
- */
13177
+ * @type {Array<Group>}
13178
+ */
13175
13179
  const groups = [{
13176
13180
  id: `${fieldId}-columnsSource`,
13177
13181
  label: 'Headers source',
@@ -13243,7 +13247,7 @@ class PropertiesProvider {
13243
13247
  return groups;
13244
13248
  }
13245
13249
  const getService = (type, strict = true) => this._injector.get(type, strict);
13246
- groups = [...groups, GeneralGroup(field, editField, getService), ...TableHeaderGroups(field, editField), SecurityAttributesGroup(field, editField), ConditionGroup(field, editField), LayoutGroup(field, editField), AppearanceGroup(field, editField), SerializationGroup(field, editField), ...OptionsGroups(field, editField, getService), ConstraintsGroup(field, editField), ValidationGroup(field, editField), CustomPropertiesGroup(field, editField)].filter(group => group != null);
13250
+ groups = [...groups, GeneralGroup(field, editField, getService), ...OptionsGroups(field, editField, getService), ...TableHeaderGroups(field, editField), SecurityAttributesGroup(field, editField), ConditionGroup(field, editField), LayoutGroup(field, editField), AppearanceGroup(field, editField), SerializationGroup(field, editField), ConstraintsGroup(field, editField), ValidationGroup(field, editField), CustomPropertiesGroup(field, editField)].filter(group => group != null);
13247
13251
  this._filterVisibleEntries(groups, field, getService);
13248
13252
 
13249
13253
  // contract: if a group has no entries or items, it should not be displayed at all
@@ -13644,16 +13648,16 @@ function exportSchema(schema, exporter, schemaVersion) {
13644
13648
  };
13645
13649
  }
13646
13650
 
13647
- /**
13648
- * @typedef { import('./types').CreateFormEditorOptions } CreateFormEditorOptions
13651
+ /**
13652
+ * @typedef { import('./types').CreateFormEditorOptions } CreateFormEditorOptions
13649
13653
  */
13650
13654
 
13651
- /**
13652
- * Create a form editor.
13653
- *
13654
- * @param {CreateFormEditorOptions} options
13655
- *
13656
- * @return {Promise<FormEditor>}
13655
+ /**
13656
+ * Create a form editor.
13657
+ *
13658
+ * @param {CreateFormEditorOptions} options
13659
+ *
13660
+ * @return {Promise<FormEditor>}
13657
13661
  */
13658
13662
  function createFormEditor(options) {
13659
13663
  const {