@bpmn-io/properties-panel 0.11.0 → 0.12.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/CHANGELOG.md CHANGED
@@ -6,6 +6,10 @@ All notable changes to [`@bpmn-io/properties-panel`](https://github.com/bpmn-io/
6
6
 
7
7
  ___Note:__ Yet to be released changes appear here._
8
8
 
9
+ ## 0.12.0
10
+
11
+ * `FEAT`: allow addition of FEEL icon to TextFields and TextAreas ([#138](https://github.com/bpmn-io/properties-panel/pull/138))
12
+
9
13
  ## 0.11.0
10
14
 
11
15
  * `FEAT`: all group and entry components specified as `component` are actual components, not elements ([#134](https://github.com/bpmn-io/properties-panel/pull/134))
@@ -875,3 +875,23 @@ textarea.bio-properties-panel-input {
875
875
  .bio-properties-panel-dropdown-button__menu-item--actionable:hover {
876
876
  background-color: var(--dropdown-item-hover-background-color);
877
877
  }
878
+
879
+ .bio-properties-panel-feel-input {
880
+ position: relative;
881
+ }
882
+
883
+ .bio-properties-panel-feel-input input {
884
+ padding-right: 2em
885
+ }
886
+
887
+ .bio-properties-panel-feel-icon {
888
+ display: inline-block;
889
+ height: 16px;
890
+ vertical-align: text-bottom;
891
+ padding: 0 3px;
892
+ }
893
+
894
+ .bio-properties-panel-feel-icon svg {
895
+ width: 16px;
896
+ height: 16px;
897
+ }
package/dist/index.esm.js CHANGED
@@ -219,6 +219,49 @@ DeleteIcon.defaultProps = {
219
219
  height: "16"
220
220
  };
221
221
 
222
+ var FeelRequiredIcon = function FeelRequiredIcon(props) {
223
+ return jsxs("svg", { ...props,
224
+ children: [jsx("path", {
225
+ d: "M5.8 7.06V5.95h4.307v1.11H5.8zm0 3.071v-1.11h4.307v1.11H5.8z",
226
+ fill: "#505562"
227
+ }), jsx("path", {
228
+ fillRule: "evenodd",
229
+ clipRule: "evenodd",
230
+ d: "M8 3.268A4.732 4.732 0 1 0 12.732 8H14a6 6 0 1 1-6-6v1.268z",
231
+ fill: "#505562"
232
+ }), jsx("path", {
233
+ d: "m11.28 6.072-.832-.56 1.016-1.224L10 3.848l.312-.912 1.392.584L11.632 2h1.032l-.072 1.52 1.392-.584.312.912-1.464.44 1.008 1.224-.832.552-.864-1.296-.864 1.304z",
234
+ fill: "#505562"
235
+ })]
236
+ });
237
+ };
238
+
239
+ FeelRequiredIcon.defaultProps = {
240
+ viewBox: "0 0 16 16",
241
+ fill: "none",
242
+ xmlns: "http://www.w3.org/2000/svg"
243
+ };
244
+
245
+ var FeelOptionalIcon = function FeelOptionalIcon(props) {
246
+ return jsxs("svg", { ...props,
247
+ children: [jsx("path", {
248
+ d: "M5.845 7.04V5.93h4.307v1.11H5.845zm0 3.07V9h4.307v1.11H5.845z",
249
+ fill: "#505562"
250
+ }), jsx("path", {
251
+ fillRule: "evenodd",
252
+ clipRule: "evenodd",
253
+ d: "M3.286 8a4.714 4.714 0 1 0 9.428 0 4.714 4.714 0 0 0-9.428 0zM8 2a6 6 0 1 0 0 12A6 6 0 0 0 8 2z",
254
+ fill: "#505562"
255
+ })]
256
+ });
257
+ };
258
+
259
+ FeelOptionalIcon.defaultProps = {
260
+ viewBox: "0 0 16 16",
261
+ fill: "none",
262
+ xmlns: "http://www.w3.org/2000/svg"
263
+ };
264
+
222
265
  function Group(props) {
223
266
  const {
224
267
  element,
@@ -1327,12 +1370,27 @@ function prefixId$3(id) {
1327
1370
  return `bio-properties-panel-${id}`;
1328
1371
  }
1329
1372
 
1373
+ function FeelIcon(props) {
1374
+ const {
1375
+ label,
1376
+ feel = false
1377
+ } = props;
1378
+ const feelRequiredLabel = ' must be a FEEL expression';
1379
+ const feelOptionalLabel = ' can optionally be a FEEL expression';
1380
+ return jsx("i", {
1381
+ class: "bio-properties-panel-feel-icon",
1382
+ title: label + (feel === 'required' ? feelRequiredLabel : feelOptionalLabel),
1383
+ children: feel === 'required' ? jsx(FeelRequiredIcon, {}) : jsx(FeelOptionalIcon, {})
1384
+ });
1385
+ }
1386
+
1330
1387
  function TextArea(props) {
1331
1388
  const {
1332
1389
  id,
1333
1390
  label,
1334
1391
  rows = 2,
1335
1392
  debounce,
1393
+ feel,
1336
1394
  onInput,
1337
1395
  value = '',
1338
1396
  disabled,
@@ -1345,10 +1403,13 @@ function TextArea(props) {
1345
1403
  }, [onInput, debounce]);
1346
1404
  return jsxs("div", {
1347
1405
  class: "bio-properties-panel-textarea",
1348
- children: [jsx("label", {
1406
+ children: [jsxs("label", {
1349
1407
  for: prefixId$2(id),
1350
1408
  class: "bio-properties-panel-label",
1351
- children: label
1409
+ children: [label, feel && jsx(FeelIcon, {
1410
+ feel: feel,
1411
+ label: label
1412
+ })]
1352
1413
  }), jsx("textarea", {
1353
1414
  id: prefixId$2(id),
1354
1415
  name: id,
@@ -1384,6 +1445,7 @@ function TextAreaEntry(props) {
1384
1445
  id,
1385
1446
  description,
1386
1447
  debounce,
1448
+ feel,
1387
1449
  label,
1388
1450
  getValue,
1389
1451
  setValue,
@@ -1403,6 +1465,7 @@ function TextAreaEntry(props) {
1403
1465
  rows: rows,
1404
1466
  debounce: debounce,
1405
1467
  monospace: monospace,
1468
+ feel: feel,
1406
1469
  disabled: disabled
1407
1470
  }), jsx(Description, {
1408
1471
  forId: id,
@@ -1426,6 +1489,7 @@ function Textfield(props) {
1426
1489
  id,
1427
1490
  label,
1428
1491
  onInput,
1492
+ feel = false,
1429
1493
  value = ''
1430
1494
  } = props;
1431
1495
  const handleInput = useMemo(() => {
@@ -1435,10 +1499,13 @@ function Textfield(props) {
1435
1499
  }, [onInput, debounce]);
1436
1500
  return jsxs("div", {
1437
1501
  class: "bio-properties-panel-textfield",
1438
- children: [jsx("label", {
1502
+ children: [jsxs("label", {
1439
1503
  for: prefixId$1(id),
1440
1504
  class: "bio-properties-panel-label",
1441
- children: label
1505
+ children: [label, feel && jsx(FeelIcon, {
1506
+ feel: feel,
1507
+ label: label
1508
+ })]
1442
1509
  }), jsx("input", {
1443
1510
  id: prefixId$1(id),
1444
1511
  type: "text",
@@ -1475,6 +1542,7 @@ function TextfieldEntry(props) {
1475
1542
  description,
1476
1543
  debounce,
1477
1544
  disabled,
1545
+ feel,
1478
1546
  label,
1479
1547
  getValue,
1480
1548
  setValue,
@@ -1516,7 +1584,8 @@ function TextfieldEntry(props) {
1516
1584
  value: value,
1517
1585
  onInput: handleChange,
1518
1586
  debounce: debounce,
1519
- disabled: disabled
1587
+ disabled: disabled,
1588
+ feel: feel
1520
1589
  }), jsx(Description, {
1521
1590
  forId: id,
1522
1591
  element: element,
@@ -1639,5 +1708,5 @@ var index = {
1639
1708
  debounceInput: ['factory', debounceInput]
1640
1709
  };
1641
1710
 
1642
- export { ArrowIcon, CheckboxEntry, CollapsibleEntry, CreateIcon, index as DebounceInputModule, DeleteIcon, DescriptionContext, Description as DescriptionEntry, DropdownButton, Group, Header, HeaderButton, LayoutContext, List as ListEntry, ListGroup, ListItem, NumberFieldEntry, PropertiesPanel, SelectEntry, Simple as SimpleEntry, TextAreaEntry, TextfieldEntry as TextFieldEntry, ToggleSwitchEntry, isEdited$6 as isCheckboxEntryEdited, isEdited$5 as isNumberFieldEntryEdited, isEdited$4 as isSelectEntryEdited, isEdited$3 as isSimpleEntryEdited, isEdited$2 as isTextAreaEntryEdited, isEdited$1 as isTextFieldEntryEdited, isEdited as isToggleSwitchEntryEdited, useDescriptionContext, useKeyFactory, useLayoutState, usePrevious };
1711
+ export { ArrowIcon, CheckboxEntry, CollapsibleEntry, CreateIcon, index as DebounceInputModule, DeleteIcon, DescriptionContext, Description as DescriptionEntry, DropdownButton, FeelOptionalIcon, FeelRequiredIcon, Group, Header, HeaderButton, LayoutContext, List as ListEntry, ListGroup, ListItem, NumberFieldEntry, PropertiesPanel, SelectEntry, Simple as SimpleEntry, TextAreaEntry, TextfieldEntry as TextFieldEntry, ToggleSwitchEntry, isEdited$6 as isCheckboxEntryEdited, isEdited$5 as isNumberFieldEntryEdited, isEdited$4 as isSelectEntryEdited, isEdited$3 as isSimpleEntryEdited, isEdited$2 as isTextAreaEntryEdited, isEdited$1 as isTextFieldEntryEdited, isEdited as isToggleSwitchEntryEdited, useDescriptionContext, useKeyFactory, useLayoutState, usePrevious };
1643
1712
  //# sourceMappingURL=index.esm.js.map