@eccenca/gui-elements 24.0.0-rc.0 → 24.0.0-rc.2

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 (70) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/cjs/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js +8 -2
  3. package/dist/cjs/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js.map +1 -1
  4. package/dist/cjs/components/FlexibleLayout/FlexibleLayoutContainer.js +55 -0
  5. package/dist/cjs/components/FlexibleLayout/FlexibleLayoutContainer.js.map +1 -0
  6. package/dist/cjs/components/FlexibleLayout/FlexibleLayoutItem.js +57 -0
  7. package/dist/cjs/components/FlexibleLayout/FlexibleLayoutItem.js.map +1 -0
  8. package/dist/cjs/components/FlexibleLayout/index.js +19 -0
  9. package/dist/cjs/components/FlexibleLayout/index.js.map +1 -0
  10. package/dist/cjs/components/Icon/canonicalIconNames.js +2 -2
  11. package/dist/cjs/components/Icon/canonicalIconNames.js.map +1 -1
  12. package/dist/cjs/components/Label/Label.js +2 -2
  13. package/dist/cjs/components/Label/Label.js.map +1 -1
  14. package/dist/cjs/components/PropertyValuePair/PropertyValueList.js +12 -2
  15. package/dist/cjs/components/PropertyValuePair/PropertyValueList.js.map +1 -1
  16. package/dist/cjs/components/PropertyValuePair/PropertyValuePair.js +3 -2
  17. package/dist/cjs/components/PropertyValuePair/PropertyValuePair.js.map +1 -1
  18. package/dist/cjs/components/index.js +1 -0
  19. package/dist/cjs/components/index.js.map +1 -1
  20. package/dist/esm/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js +8 -2
  21. package/dist/esm/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js.map +1 -1
  22. package/dist/esm/components/FlexibleLayout/FlexibleLayoutContainer.js +40 -0
  23. package/dist/esm/components/FlexibleLayout/FlexibleLayoutContainer.js.map +1 -0
  24. package/dist/esm/components/FlexibleLayout/FlexibleLayoutItem.js +42 -0
  25. package/dist/esm/components/FlexibleLayout/FlexibleLayoutItem.js.map +1 -0
  26. package/dist/esm/components/FlexibleLayout/index.js +3 -0
  27. package/dist/esm/components/FlexibleLayout/index.js.map +1 -0
  28. package/dist/esm/components/Icon/canonicalIconNames.js +2 -2
  29. package/dist/esm/components/Icon/canonicalIconNames.js.map +1 -1
  30. package/dist/esm/components/Label/Label.js +2 -2
  31. package/dist/esm/components/Label/Label.js.map +1 -1
  32. package/dist/esm/components/PropertyValuePair/PropertyValueList.js +12 -2
  33. package/dist/esm/components/PropertyValuePair/PropertyValueList.js.map +1 -1
  34. package/dist/esm/components/PropertyValuePair/PropertyValuePair.js +3 -2
  35. package/dist/esm/components/PropertyValuePair/PropertyValuePair.js.map +1 -1
  36. package/dist/esm/components/index.js +1 -0
  37. package/dist/esm/components/index.js.map +1 -1
  38. package/dist/types/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.d.ts +5 -1
  39. package/dist/types/components/FlexibleLayout/FlexibleLayoutContainer.d.ts +31 -0
  40. package/dist/types/components/FlexibleLayout/FlexibleLayoutItem.d.ts +24 -0
  41. package/dist/types/components/FlexibleLayout/index.d.ts +2 -0
  42. package/dist/types/components/Label/Label.d.ts +5 -1
  43. package/dist/types/components/PropertyValuePair/PropertyValueList.d.ts +8 -2
  44. package/dist/types/components/PropertyValuePair/PropertyValuePair.d.ts +5 -1
  45. package/dist/types/components/index.d.ts +1 -0
  46. package/package.json +1 -1
  47. package/src/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.tsx +17 -7
  48. package/src/cmem/markdown/markdown.scss +6 -3
  49. package/src/cmem/markdown/markdown.utils.ts +18 -0
  50. package/src/cmem/markdown/markdownutils.test.ts +13 -0
  51. package/src/components/Application/_header.scss +27 -10
  52. package/src/components/Application/stories/Application.stories.tsx +139 -0
  53. package/src/components/FlexibleLayout/FlexibleLayoutContainer.tsx +67 -0
  54. package/src/components/FlexibleLayout/FlexibleLayoutItem.tsx +59 -0
  55. package/src/components/FlexibleLayout/flexiblelayout.scss +48 -0
  56. package/src/components/FlexibleLayout/index.ts +2 -0
  57. package/src/components/FlexibleLayout/stories/FlexibleLayoutContainer.stories.tsx +31 -0
  58. package/src/components/FlexibleLayout/stories/FlexibleLayoutItem.stories.tsx +28 -0
  59. package/src/components/Icon/canonicalIconNames.tsx +2 -2
  60. package/src/components/Label/Label.tsx +6 -1
  61. package/src/components/Label/label.scss +6 -0
  62. package/src/components/PropertyValuePair/PropertyValueList.tsx +26 -3
  63. package/src/components/PropertyValuePair/PropertyValuePair.tsx +7 -1
  64. package/src/components/PropertyValuePair/propertyvalue.scss +25 -13
  65. package/src/components/PropertyValuePair/stories/PropertyValueList.stories.tsx +1 -1
  66. package/src/components/PropertyValuePair/stories/PropertyValuePair.stories.tsx +1 -1
  67. package/src/components/Typography/typography.scss +51 -0
  68. package/src/components/index.scss +1 -0
  69. package/src/components/index.ts +1 -0
  70. package/src/configuration/_variables.scss +4 -0
@@ -1 +1 @@
1
- {"version":3,"file":"PropertyValueList.js","sourceRoot":"","sources":["../../../../src/components/PropertyValuePair/PropertyValueList.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,WAAW,IAAI,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAItE,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAAC,EAAmE;IAAjE,IAAA,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA,EAAE,QAAQ,cAAA,EAAK,UAAU,cAAzC,yBAA2C,CAAF;IACvE,OAAO,CACH,qCAAI,SAAS,EAAE,UAAG,MAAM,yBAAsB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAM,UAAU,GAC9F,QAAQ,CACR,CACR,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"PropertyValueList.js","sourceRoot":"","sources":["../../../../src/components/PropertyValuePair/PropertyValueList.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,WAAW,IAAI,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAUxD,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAAC,EAKT;IAJrB,IAAA,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA,EACd,QAAQ,cAAA,EACR,oBAAoB,EAApB,YAAY,mBAAG,KAAK,KAAA,EACjB,UAAU,cAJiB,yCAKjC,CADgB;IAEb,IAAM,eAAe,GAAG,YAAY;QAChC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,KAAK;YAC/B,IAAM,aAAa,GAAG,KAA2B,CAAC;YAClD,IAAI,aAAa,IAAI,aAAa,CAAC,IAAI,IAAI,aAAa,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBAClF,OAAO,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;YACrE,CAAC;YACD,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC;QACJ,CAAC,CAAC,QAAQ,CAAC;IAEf,OAAO,CACH,qCAAI,SAAS,EAAE,UAAG,MAAM,yBAAsB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAM,UAAU,GAC9F,eAAe,CACf,CACR,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -25,7 +25,7 @@ import { CLASSPREFIX as eccgui } from "../../configuration/constants.js";
25
25
  import PropertyName from "./PropertyName.js";
26
26
  import PropertyValue from "./PropertyValue.js";
27
27
  export var PropertyValuePair = function (_a) {
28
- var children = _a.children, _b = _a.className, className = _b === void 0 ? "" : _b, nowrap = _a.nowrap, _c = _a.hasSpacing, hasSpacing = _c === void 0 ? false : _c, _d = _a.hasDivider, hasDivider = _d === void 0 ? false : _d, otherProps = __rest(_a, ["children", "className", "nowrap", "hasSpacing", "hasDivider"]);
28
+ var children = _a.children, _b = _a.className, className = _b === void 0 ? "" : _b, nowrap = _a.nowrap, _c = _a.hasSpacing, hasSpacing = _c === void 0 ? false : _c, _d = _a.hasDivider, hasDivider = _d === void 0 ? false : _d, _e = _a.singleColumn, singleColumn = _e === void 0 ? false : _e, otherProps = __rest(_a, ["children", "className", "nowrap", "hasSpacing", "hasDivider", "singleColumn"]);
29
29
  var alteredChildren = nowrap
30
30
  ? React.Children.map(children, function (child) {
31
31
  var originalChild = child;
@@ -38,7 +38,8 @@ export var PropertyValuePair = function (_a) {
38
38
  return (React.createElement("div", __assign({ className: "".concat(eccgui, "-propertyvalue__pair") +
39
39
  (className ? " " + className : "") +
40
40
  (hasSpacing ? " ".concat(eccgui, "-propertyvalue__pair--hasspacing") : "") +
41
- (hasDivider ? " ".concat(eccgui, "-propertyvalue__pair--hasdivider") : "") }, otherProps), alteredChildren));
41
+ (hasDivider ? " ".concat(eccgui, "-propertyvalue__pair--hasdivider") : "") +
42
+ (singleColumn ? " ".concat(eccgui, "-propertyvalue__pair--singlecolumn") : "") }, otherProps), alteredChildren));
42
43
  };
43
44
  export default PropertyValuePair;
44
45
  //# sourceMappingURL=PropertyValuePair.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PropertyValuePair.js","sourceRoot":"","sources":["../../../../src/components/PropertyValuePair/PropertyValuePair.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,WAAW,IAAI,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAiB5C,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAAC,EAOT;IANrB,IAAA,QAAQ,cAAA,EACR,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA,EACd,MAAM,YAAA,EACN,kBAAkB,EAAlB,UAAU,mBAAG,KAAK,KAAA,EAClB,kBAAkB,EAAlB,UAAU,mBAAG,KAAK,KAAA,EACf,UAAU,cANiB,+DAOjC,CADgB;IAEb,IAAM,eAAe,GAAG,MAAM;QAC1B,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,KAAK;YAC/B,IAAM,aAAa,GAAG,KAA2B,CAAC;YAClD,IAAI,aAAa,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,YAAY,IAAI,aAAa,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC;gBACtG,OAAO,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC;QACJ,CAAC,CAAC,QAAQ,CAAC;IAEf,OAAO,CACH,sCACI,SAAS,EACL,UAAG,MAAM,yBAAsB;YAC/B,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YAClC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAI,MAAM,qCAAkC,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,CAAC,UAAU,CAAC,CAAC,CAAC,WAAI,MAAM,qCAAkC,CAAC,CAAC,CAAC,EAAE,CAAC,IAEhE,UAAU,GAEb,eAAe,CACd,CACT,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"PropertyValuePair.js","sourceRoot":"","sources":["../../../../src/components/PropertyValuePair/PropertyValuePair.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,WAAW,IAAI,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAqB5C,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAAC,EAQT;IAPrB,IAAA,QAAQ,cAAA,EACR,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA,EACd,MAAM,YAAA,EACN,kBAAkB,EAAlB,UAAU,mBAAG,KAAK,KAAA,EAClB,kBAAkB,EAAlB,UAAU,mBAAG,KAAK,KAAA,EAClB,oBAAoB,EAApB,YAAY,mBAAG,KAAK,KAAA,EACjB,UAAU,cAPiB,+EAQjC,CADgB;IAEb,IAAM,eAAe,GAAG,MAAM;QAC1B,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,KAAK;YAC/B,IAAM,aAAa,GAAG,KAA2B,CAAC;YAClD,IAAI,aAAa,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,YAAY,IAAI,aAAa,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC;gBACtG,OAAO,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC;QACJ,CAAC,CAAC,QAAQ,CAAC;IAEf,OAAO,CACH,sCACI,SAAS,EACL,UAAG,MAAM,yBAAsB;YAC/B,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YAClC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAI,MAAM,qCAAkC,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,CAAC,UAAU,CAAC,CAAC,CAAC,WAAI,MAAM,qCAAkC,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,CAAC,YAAY,CAAC,CAAC,CAAC,WAAI,MAAM,uCAAoC,CAAC,CAAC,CAAC,EAAE,CAAC,IAEpE,UAAU,GAEb,eAAe,CACd,CACT,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -12,6 +12,7 @@ export * from "./Checkbox/Checkbox.js";
12
12
  export * from "./ContextOverlay/index.js";
13
13
  export * from "./Depiction/Depiction.js";
14
14
  export * from "./Dialog/index.js";
15
+ export * from "./FlexibleLayout/index.js";
15
16
  export * from "./Form/index.js";
16
17
  export * from "./Grid/index.js";
17
18
  export * from "./HoverToggler/HoverToggler.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,6BAA6B,CAAC;AAC5C,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,mCAAmC,CAAC;AAClD,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uCAAuC,CAAC;AACtD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAE5B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,6BAA6B,CAAC;AAC5C,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,mCAAmC,CAAC;AAClD,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uCAAuC,CAAC;AACtD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAE5B,cAAc,cAAc,CAAC"}
@@ -15,9 +15,13 @@ export interface StringPreviewContentBlobTogglerProps extends Omit<ContentBlobTo
15
15
  renderPreviewAsMarkdown?: boolean;
16
16
  /** White-listing of HTML elements that will be rendered when renderPreviewAsMarkdown is enabled. */
17
17
  allowedHtmlElementsInPreview?: string[];
18
+ /** Allows to add non-string elements at the end of the content if the full description is shown, i.e. no toggler is necessary.
19
+ * This allows to add non-string elements to both the full-view content and the pure string content.
20
+ */
21
+ noTogglerContentSuffix?: JSX.Element;
18
22
  }
19
23
  /** Version of the content toggler for text only content. */
20
- export declare function StringPreviewContentBlobToggler({ className, previewMaxLength, toggleExtendText, toggleReduceText, content, fullviewContent, startExtended, firstNonEmptyLineOnly, renderPreviewAsMarkdown, allowedHtmlElementsInPreview, }: StringPreviewContentBlobTogglerProps): React.JSX.Element;
24
+ export declare function StringPreviewContentBlobToggler({ className, previewMaxLength, toggleExtendText, toggleReduceText, content, fullviewContent, startExtended, firstNonEmptyLineOnly, renderPreviewAsMarkdown, allowedHtmlElementsInPreview, noTogglerContentSuffix }: StringPreviewContentBlobTogglerProps): React.JSX.Element;
21
25
  /**
22
26
  * Takes the first non-empty line from a preview string.
23
27
  * @deprecated use `stringPreviewContentBlobTogglerUtils.firstNonEmptyLine`
@@ -0,0 +1,31 @@
1
+ import React from "react";
2
+ import { DividerProps } from "./../Separation/Divider";
3
+ export interface FlexibleLayoutContainerProps extends React.HTMLAttributes<HTMLDivElement> {
4
+ /**
5
+ * Use the exact space defined by the parent element.
6
+ * This parent element must be displayed using a fixed, relative or absolute position.
7
+ */
8
+ useAbsoluteSpace?: boolean;
9
+ /**
10
+ * If set then the container behaves similar to a column and displays its items on a vertical axis.
11
+ * Children could used as rows in this situation.
12
+ */
13
+ vertical?: boolean;
14
+ /**
15
+ * If true the used amount of space for each item is related to the amout of its content compared to each other.
16
+ * Otherwise the items use equal amounts as long this is possible.
17
+ */
18
+ noEqualItemSpace?: boolean;
19
+ /**
20
+ * Quick way to add whitespace between container children.
21
+ * For more complex usecases like dividers you need to use extra `<FlexibleLayoutItem/>` components in combination with `<Divider/>` components.
22
+ */
23
+ gapSize?: DividerProps["addSpacing"];
24
+ }
25
+ /**
26
+ * Simple layout helper to organize items into rows and columns that are not necessarily need to be aligned.
27
+ * A `FlexibleLayoutContainer` can contain `FlexibleLayoutItem`s.
28
+ * Do not misuse it as grid because it comes without any predefined ratios for widths and heights.
29
+ */
30
+ export declare const FlexibleLayoutContainer: React.ForwardRefExoticComponent<FlexibleLayoutContainerProps & React.RefAttributes<HTMLDivElement>>;
31
+ export default FlexibleLayoutContainer;
@@ -0,0 +1,24 @@
1
+ import React from "react";
2
+ export interface FlexibleLayoutItemProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ /**
4
+ * Defines the ability for the item to grow.
5
+ * The factor defines how much space the item would take up compared to the other items with a grow factor greater than zero.
6
+ * Must be equal or greater than zero.
7
+ * With a factor of `0` the item cannot grow.
8
+ */
9
+ growFactor?: number;
10
+ /**
11
+ * Defines the ability for the item to shrink.
12
+ * The factor defines how strong the shrink effect has impact on the item compared to the other items with a shrink factor greater than zero.
13
+ * Must be equal or greater than zero.
14
+ * With a factor of `0` the item cannot shrink.
15
+ */
16
+ shrinkFactor?: number;
17
+ }
18
+ /**
19
+ * Simple layout helper to organize items into rows and columns that are not necessarily need to be aligned.
20
+ * `FlexibleLayoutItem`s can contain `FlexibleLayoutContainer` for more partitions.
21
+ * `FlexibleLayoutItem` siblings will share all available space from the `FlexibleLayoutContainer` container.
22
+ */
23
+ export declare const FlexibleLayoutItem: React.ForwardRefExoticComponent<FlexibleLayoutItemProps & React.RefAttributes<HTMLDivElement>>;
24
+ export default FlexibleLayoutItem;
@@ -0,0 +1,2 @@
1
+ export * from "./FlexibleLayoutContainer";
2
+ export * from "./FlexibleLayoutItem";
@@ -26,6 +26,10 @@ export interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement>
26
26
  * If there is no `isLayoutForElement` set then a `span` is used.
27
27
  */
28
28
  disabled?: boolean;
29
+ /**
30
+ * visual appearance of the label
31
+ */
32
+ emphasis?: "strong" | "normal";
29
33
  }
30
- export declare const Label: ({ children, className, disabled, text, info, tooltip, tooltipProps, isLayoutForElement, ...otherLabelProps }: LabelProps) => React.JSX.Element;
34
+ export declare const Label: ({ children, className, disabled, text, info, tooltip, tooltipProps, isLayoutForElement, emphasis, ...otherLabelProps }: LabelProps) => React.JSX.Element;
31
35
  export default Label;
@@ -1,4 +1,10 @@
1
1
  import React from "react";
2
- export type PropertyValueListProps = React.HTMLAttributes<HTMLDListElement>;
3
- export declare const PropertyValueList: ({ className, children, ...otherProps }: PropertyValueListProps) => React.JSX.Element;
2
+ export interface PropertyValueListProps extends React.HTMLAttributes<HTMLDListElement> {
3
+ /**
4
+ * Only use one single column and put property label and value below each other.
5
+ * This property is forwardd to direct `PropertyValuePair` children.
6
+ */
7
+ singleColumn?: boolean;
8
+ }
9
+ export declare const PropertyValueList: ({ className, children, singleColumn, ...otherProps }: PropertyValueListProps) => React.JSX.Element;
4
10
  export default PropertyValueList;
@@ -12,6 +12,10 @@ export interface PropertyValuePairProps extends React.HTMLAttributes<HTMLDivElem
12
12
  * Forward the `nowrap` option to it `PropertyName` and `PropertyValue` children.
13
13
  */
14
14
  nowrap?: boolean;
15
+ /**
16
+ * Only use one single column and put property label and value below each other.
17
+ */
18
+ singleColumn?: boolean;
15
19
  }
16
- export declare const PropertyValuePair: ({ children, className, nowrap, hasSpacing, hasDivider, ...otherProps }: PropertyValuePairProps) => React.JSX.Element;
20
+ export declare const PropertyValuePair: ({ children, className, nowrap, hasSpacing, hasDivider, singleColumn, ...otherProps }: PropertyValuePairProps) => React.JSX.Element;
17
21
  export default PropertyValuePair;
@@ -12,6 +12,7 @@ export * from "./Checkbox/Checkbox";
12
12
  export * from "./ContextOverlay";
13
13
  export * from "./Depiction/Depiction";
14
14
  export * from "./Dialog";
15
+ export * from "./FlexibleLayout";
15
16
  export * from "./Form";
16
17
  export * from "./Grid";
17
18
  export * from "./HoverToggler/HoverToggler";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@eccenca/gui-elements",
3
3
  "description": "GUI elements based on other libraries, usable in React application, written in Typescript.",
4
- "version": "24.0.0-rc.0",
4
+ "version": "24.0.0-rc.2",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/eccenca/gui-elements",
7
7
  "bugs": "https://github.com/eccenca/gui-elements/issues",
@@ -18,6 +18,10 @@ export interface StringPreviewContentBlobTogglerProps
18
18
  renderPreviewAsMarkdown?: boolean;
19
19
  /** White-listing of HTML elements that will be rendered when renderPreviewAsMarkdown is enabled. */
20
20
  allowedHtmlElementsInPreview?: string[];
21
+ /** Allows to add non-string elements at the end of the content if the full description is shown, i.e. no toggler is necessary.
22
+ * This allows to add non-string elements to both the full-view content and the pure string content.
23
+ */
24
+ noTogglerContentSuffix?: JSX.Element
21
25
  }
22
26
 
23
27
  /** Version of the content toggler for text only content. */
@@ -32,21 +36,27 @@ export function StringPreviewContentBlobToggler({
32
36
  firstNonEmptyLineOnly,
33
37
  renderPreviewAsMarkdown = false,
34
38
  allowedHtmlElementsInPreview,
39
+ noTogglerContentSuffix
35
40
  }: StringPreviewContentBlobTogglerProps) {
36
41
  const previewMaybeFirstLine = firstNonEmptyLineOnly ? firstNonEmptyLine(content) : content;
37
42
  const previewString = previewMaxLength ? previewMaybeFirstLine.substr(0, previewMaxLength) : previewMaybeFirstLine;
38
43
  const enableToggler = previewString !== content;
44
+ let previewContent = renderPreviewAsMarkdown ? (
45
+ <Markdown key="markdown-content" allowedElements={allowedHtmlElementsInPreview}>{previewString}</Markdown>
46
+ ) : (
47
+ previewString
48
+ )
49
+ if(!enableToggler && noTogglerContentSuffix) {
50
+ previewContent = <>
51
+ {previewContent}
52
+ {noTogglerContentSuffix}
53
+ </>
54
+ }
39
55
 
40
56
  return (
41
57
  <ContentBlobToggler
42
58
  className={className}
43
- previewContent={
44
- renderPreviewAsMarkdown ? (
45
- <Markdown allowedElements={allowedHtmlElementsInPreview}>{previewString}</Markdown>
46
- ) : (
47
- previewString
48
- )
49
- }
59
+ previewContent={previewContent}
50
60
  toggleExtendText={toggleExtendText}
51
61
  toggleReduceText={toggleReduceText}
52
62
  fullviewContent={fullviewContent}
@@ -47,13 +47,16 @@
47
47
 
48
48
  .#{$eccgui}-typography__contentblock {
49
49
  a[href=""] {
50
+ color: currentcolor;
51
+ pointer-events: none;
52
+ cursor: text;
53
+ }
54
+
55
+ a[href=""]:not(#{$eccgui-selector-text-spot-highlight}) {
50
56
  font-size: $eccgui-size-typo-caption;
51
57
  line-height: $eccgui-size-typo-caption-lineheight;
52
- color: currentcolor;
53
58
  text-decoration: none;
54
59
  vertical-align: super;
55
- pointer-events: none;
56
- cursor: text;
57
60
 
58
61
  &::before {
59
62
  content: "[";
@@ -0,0 +1,18 @@
1
+ /** Extracts the values of all named anchors used in the Markdown string, i.e. of the form <mark name="<value>"></mark>. */
2
+ const extractNamedAnchors = (markdown: string): string[] => {
3
+ const regex = new RegExp("<a\\s+id=\"([^\"]+)\"\\s*>[^<]*</a>", "g")
4
+ const namedAnchors: string[] = []
5
+
6
+ let results = regex.exec(markdown)
7
+ while(results !== null) {
8
+ namedAnchors.push(results[1]);
9
+ results = regex.exec(markdown)
10
+ }
11
+ return namedAnchors
12
+ }
13
+
14
+ const utils = {
15
+ extractNamedAnchors
16
+ }
17
+
18
+ export default utils
@@ -0,0 +1,13 @@
1
+ import utils from "./markdown.utils"
2
+
3
+ describe("Markdown utils", () => {
4
+ it("should extract named anchors from the Markdown", () => {
5
+ const namedAnchors = utils.extractNamedAnchors("# Header\n\nsome text\n\n## <a id=\"anchor1\" ></a> point 1\n\n## <a id=\"anchor2\"></a> point 2")
6
+ expect(namedAnchors).toStrictEqual(["anchor1", "anchor2"])
7
+ });
8
+
9
+ it("should not extract named anchors from the Markdown that are not following the expected format", () => {
10
+ const namedAnchors = utils.extractNamedAnchors("# <a id=\"anchor\" href=\"http://\">link text</a> \n\n## <a name=\"test\" id=\"anchor2\"></a> point 2")
11
+ expect(namedAnchors).toStrictEqual([])
12
+ });
13
+ });
@@ -55,15 +55,23 @@ $shell-header-link: $blue-60 !default;
55
55
  // load library sub component
56
56
  @import "~@carbon/react/scss/components/ui-shell/header/index";
57
57
 
58
- // tweack original layout
58
+ // tweak original layout
59
59
 
60
60
  .#{$prefix}--header {
61
61
  height: mini-units(8);
62
62
  }
63
63
 
64
- .#{$prefix}--header__action {
64
+ .#{$prefix}--header__action,
65
+ .#{$prefix}--header__action.#{$prefix}--btn--icon-only {
65
66
  width: mini-units(8);
66
67
  height: mini-units(8);
68
+ padding-block-start: 0;
69
+ background-color: transparent;
70
+
71
+ // $shell-header-icon-02
72
+ & > svg {
73
+ fill: $eccgui-color-applicationheader-text;
74
+ }
67
75
  }
68
76
 
69
77
  .#{$prefix}--header__menu-trigger {
@@ -141,6 +149,7 @@ a.#{$prefix}--header__menu-item:hover {
141
149
 
142
150
  // $shell-header-bg-03
143
151
  .#{$prefix}--header__action:active,
152
+ .#{$prefix}--header__action.#{$prefix}--btn--icon-only:active,
144
153
  .#{$prefix}--header__menu-title[aria-expanded="true"] + .#{$prefix}--header__menu .#{$prefix}--header__menu-item:active,
145
154
  a.#{$prefix}--header__menu-item:active {
146
155
  background-color: $shell-header-bg-03;
@@ -148,12 +157,14 @@ a.#{$prefix}--header__menu-item:active {
148
157
 
149
158
  // $shell-header-bg-04
150
159
  .#{$prefix}--header__action:hover,
160
+ .#{$prefix}--header__action.#{$prefix}--btn--icon-only:hover,
151
161
  .#{$prefix}--header__menu-title[aria-expanded="true"] + .#{$prefix}--header__menu .#{$prefix}--header__menu-item:hover {
152
162
  background-color: $shell-header-bg-04;
153
163
  }
154
164
 
155
165
  // $shell-header-bg-05
156
- .#{$prefix}--header__action--active {
166
+ .#{$prefix}--header__action--active,
167
+ .#{$prefix}--header__action--active.#{$prefix}--btn--icon-only {
157
168
  background-color: $shell-header-bg-05;
158
169
  border-right-color: transparent;
159
170
  border-bottom-color: $shell-header-bg-05;
@@ -168,7 +179,8 @@ a.#{$prefix}--header__menu-item:active {
168
179
 
169
180
  // $shell-header-border-01
170
181
  .#{$prefix}--header,
171
- .#{$prefix}--header__action {
182
+ .#{$prefix}--header__action,
183
+ .#{$prefix}--header__action.#{$prefix}--btn--icon-only {
172
184
  border-bottom: none;
173
185
  }
174
186
  .#{$prefix}--header__nav {
@@ -179,9 +191,14 @@ a.#{$prefix}--header__menu-item:active {
179
191
 
180
192
  // $shell-header-focus
181
193
  .#{$prefix}--header__action:focus,
194
+ .#{$prefix}--header__action.#{$prefix}--btn--icon-only:focus,
195
+ .#{$prefix}--header__action.#{$prefix}--btn--primary:focus,
182
196
  a.#{$prefix}--header__name:focus,
183
197
  a.#{$prefix}--header__menu-item:focus {
184
- border-color: color.adjust($eccgui-color-applicationheader-text, $lightness: 39%);
198
+ border: none;
199
+ outline: 1px dotted color.adjust($eccgui-color-applicationheader-text, $lightness: 39%);
200
+ outline-offset: -1px;
201
+ box-shadow: none;
185
202
  }
186
203
  .#{$prefix}--header__menu-title[aria-expanded="true"] {
187
204
  color: color.adjust($eccgui-color-applicationheader-text, $lightness: 39%);
@@ -192,6 +209,7 @@ a.#{$prefix}--header__name,
192
209
  a.#{$prefix}--header__name:hover,
193
210
  a.#{$prefix}--header__menu-item:hover,
194
211
  .#{$prefix}--header__action:active,
212
+ .#{$prefix}--header__action.#{$prefix}--btn--icon-only:active,
195
213
  a.#{$prefix}--header__menu-item:active,
196
214
  a.#{$prefix}--header__menu-item:focus,
197
215
  .#{$prefix}--header__menu .#{$prefix}--header__menu-item:hover,
@@ -210,6 +228,10 @@ a.#{$prefix}--header__menu-item {
210
228
  .#{$prefix}--header__action:active,
211
229
  .#{$prefix}--header__action:focus {
212
230
  color: $eccgui-color-applicationheader-text;
231
+
232
+ &.#{$prefix}--btn--icon-only {
233
+ color: $eccgui-color-applicationheader-text;
234
+ }
213
235
  }
214
236
  .#{$prefix}--header__menu-trigger > svg,
215
237
  a.#{$prefix}--header__menu-item:hover > svg,
@@ -218,11 +240,6 @@ a.#{$prefix}--header__menu-item:focus > svg {
218
240
  fill: $eccgui-color-applicationheader-text;
219
241
  }
220
242
 
221
- // $shell-header-icon-02
222
- .#{$prefix}--header__action > svg {
223
- fill: $eccgui-color-applicationheader-text;
224
- }
225
-
226
243
  // $shell-header-icon-03
227
244
  .#{$prefix}--header__menu-arrow {
228
245
  fill: $eccgui-color-applicationheader-text;
@@ -0,0 +1,139 @@
1
+ import React, { CSSProperties } from "react";
2
+ import { LoremIpsum } from "react-lorem-ipsum";
3
+ import { Meta, StoryFn } from "@storybook/react";
4
+
5
+ import {
6
+ ApplicationContainer,
7
+ ApplicationContent,
8
+ ApplicationHeader,
9
+ ApplicationSidebarNavigation,
10
+ ApplicationSidebarToggler,
11
+ ApplicationTitle,
12
+ ApplicationToolbar,
13
+ ApplicationToolbarAction,
14
+ ApplicationToolbarPanel,
15
+ ApplicationToolbarSection,
16
+ Badge,
17
+ Button,
18
+ Depiction,
19
+ Icon,
20
+ WorkspaceHeader,
21
+ } from "../../../index";
22
+
23
+ interface ApplicationBasicExampleProps {
24
+ openMainNavigation: boolean;
25
+ openUserMenu: boolean;
26
+ countNotifications: number;
27
+ colorBackgroundHeader?: string;
28
+ }
29
+
30
+ function ApplicationBasicExample(args: ApplicationBasicExampleProps) {
31
+ return <></>;
32
+ }
33
+
34
+ export default {
35
+ title: "Components/Application",
36
+ component: ApplicationBasicExample,
37
+ subcomponents: {
38
+ ApplicationContainer,
39
+ ApplicationContent,
40
+ ApplicationHeader,
41
+ ApplicationTitle,
42
+ ApplicationSidebarToggler,
43
+ ApplicationSidebarNavigation,
44
+ ApplicationToolbar,
45
+ ApplicationToolbarSection,
46
+ ApplicationToolbarAction,
47
+ },
48
+ argTypes: {
49
+ colorBackgroundHeader: {
50
+ control: { type: "color" },
51
+ },
52
+ },
53
+ } as Meta<typeof ApplicationBasicExample>;
54
+
55
+ const TemplateBasicExample: StoryFn<typeof ApplicationBasicExample> = (args) => (
56
+ <ApplicationContainer>
57
+ <ApplicationHeader
58
+ aria-label={"Application"}
59
+ style={
60
+ args.colorBackgroundHeader
61
+ ? ({ "--eccgui-appheader-color-background": args.colorBackgroundHeader } as CSSProperties)
62
+ : undefined
63
+ }
64
+ >
65
+ <ApplicationTitle
66
+ isNotDisplayed={!args.openMainNavigation}
67
+ isApplicationSidebarExpanded={args.openMainNavigation}
68
+ >
69
+ ApplicationName
70
+ </ApplicationTitle>
71
+ <ApplicationSidebarToggler
72
+ aria-label={args.openMainNavigation ? "Close navigation" : "Open navigation"}
73
+ isActive={args.openMainNavigation}
74
+ />
75
+ <ApplicationSidebarNavigation isRail={!args.openMainNavigation} expanded={args.openMainNavigation}>
76
+ <code>Menu</code> with <code>MenuItem</code>s.
77
+ </ApplicationSidebarNavigation>
78
+
79
+ <WorkspaceHeader id={"ApplicationBasicExample"} />
80
+
81
+ <ApplicationToolbar>
82
+ <ApplicationToolbarSection>
83
+ <Button>Action</Button>
84
+ </ApplicationToolbarSection>
85
+ {args.countNotifications && (
86
+ <ApplicationToolbarAction aria-label="Open notifications menu" isActive={false}>
87
+ <Depiction
88
+ padding="medium"
89
+ size="small"
90
+ ratio="1:1"
91
+ resizing="contain"
92
+ image={<Icon name="application-notification" title="Notification menu icon" large />}
93
+ badge={
94
+ <Badge
95
+ position={"top-right"}
96
+ intent="warning"
97
+ maxLength={2}
98
+ children={args.countNotifications}
99
+ />
100
+ }
101
+ />
102
+ </ApplicationToolbarAction>
103
+ )}
104
+ {args.openUserMenu ? (
105
+ <>
106
+ <ApplicationToolbarAction aria-label={"Close user menu"} tooltipAlignment="end" isActive={true}>
107
+ <Icon name="navigation-close" title="Close icon" large />
108
+ </ApplicationToolbarAction>
109
+ <ApplicationToolbarPanel aria-label="User menu" expanded={true}>
110
+ <code>Menu</code> with <code>MenuItem</code>s.
111
+ </ApplicationToolbarPanel>
112
+ </>
113
+ ) : (
114
+ <ApplicationToolbarAction
115
+ id={"headerUserMenu"}
116
+ aria-label={"Open user menu"}
117
+ tooltipAlignment="end"
118
+ isActive={false}
119
+ >
120
+ <Icon name="application-useraccount" title="User menu icon" large />
121
+ </ApplicationToolbarAction>
122
+ )}
123
+ </ApplicationToolbar>
124
+ </ApplicationHeader>
125
+ <ApplicationContent
126
+ isApplicationSidebarExpanded={args.openMainNavigation}
127
+ isApplicationSidebarRail={!args.openMainNavigation}
128
+ >
129
+ <LoremIpsum p={2} avgSentencesPerParagraph={4} random={false} />
130
+ </ApplicationContent>
131
+ </ApplicationContainer>
132
+ );
133
+
134
+ export const BasicExample = TemplateBasicExample.bind({});
135
+ BasicExample.args = {
136
+ openMainNavigation: false,
137
+ openUserMenu: false,
138
+ countNotifications: 234,
139
+ };
@@ -0,0 +1,67 @@
1
+ import React, { forwardRef } from "react"; // @see https://github.com/storybookjs/storybook/issues/8881#issuecomment-831937051
2
+
3
+ import { CLASSPREFIX as eccgui } from "../../configuration/constants";
4
+
5
+ import { DividerProps } from "./../Separation/Divider";
6
+
7
+ export interface FlexibleLayoutContainerProps extends React.HTMLAttributes<HTMLDivElement> {
8
+ /**
9
+ * Use the exact space defined by the parent element.
10
+ * This parent element must be displayed using a fixed, relative or absolute position.
11
+ */
12
+ useAbsoluteSpace?: boolean;
13
+ /**
14
+ * If set then the container behaves similar to a column and displays its items on a vertical axis.
15
+ * Children could used as rows in this situation.
16
+ */
17
+ vertical?: boolean;
18
+ /**
19
+ * If true the used amount of space for each item is related to the amout of its content compared to each other.
20
+ * Otherwise the items use equal amounts as long this is possible.
21
+ */
22
+ noEqualItemSpace?: boolean;
23
+ /**
24
+ * Quick way to add whitespace between container children.
25
+ * For more complex usecases like dividers you need to use extra `<FlexibleLayoutItem/>` components in combination with `<Divider/>` components.
26
+ */
27
+ gapSize?: DividerProps["addSpacing"];
28
+ }
29
+
30
+ /**
31
+ * Simple layout helper to organize items into rows and columns that are not necessarily need to be aligned.
32
+ * A `FlexibleLayoutContainer` can contain `FlexibleLayoutItem`s.
33
+ * Do not misuse it as grid because it comes without any predefined ratios for widths and heights.
34
+ */
35
+ export const FlexibleLayoutContainer = forwardRef<HTMLDivElement, FlexibleLayoutContainerProps>(
36
+ (
37
+ {
38
+ children,
39
+ className = "",
40
+ useAbsoluteSpace,
41
+ vertical,
42
+ noEqualItemSpace,
43
+ gapSize = "none",
44
+ ...otherDivProps
45
+ }: FlexibleLayoutContainerProps,
46
+ ref
47
+ ) => {
48
+ return (
49
+ <div
50
+ className={
51
+ `${eccgui}-flexible__container` +
52
+ (useAbsoluteSpace ? ` ${eccgui}-flexible__container--absolutespace` : "") +
53
+ (vertical ? ` ${eccgui}-flexible__container--vertical` : "") +
54
+ (noEqualItemSpace ? ` ${eccgui}-flexible__container--notequalitemspace` : "") +
55
+ (gapSize !== "none" ? ` ${eccgui}-flexible__container--gap-${gapSize}` : "") +
56
+ (className ? " " + className : "")
57
+ }
58
+ ref={ref}
59
+ {...otherDivProps}
60
+ >
61
+ {children}
62
+ </div>
63
+ );
64
+ }
65
+ );
66
+
67
+ export default FlexibleLayoutContainer;