@festo-ui/react 9.0.0-dev.679 → 9.0.0-dev.683

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 (44) hide show
  1. package/index.css +1 -14
  2. package/index.d.ts +2 -5
  3. package/index.js +2 -5
  4. package/lib/components/popovers/legend/Legend.d.ts +4 -4
  5. package/lib/components/popovers/popover/Popover.d.ts +2 -1
  6. package/lib/components/popovers/popover/Popover.js +7 -1
  7. package/lib/components/popovers/popover-menu/PopoverMenu.d.ts +5 -9
  8. package/lib/components/popovers/popover-menu/PopoverMenu.js +32 -43
  9. package/lib/components/popovers/popover-menu/PopoverMenuContext.d.ts +4 -0
  10. package/lib/components/popovers/popover-menu/PopoverMenuContext.js +5 -0
  11. package/lib/components/popovers/popover-menu-item/PopoverMenuItem.d.ts +11 -0
  12. package/lib/components/popovers/popover-menu-item/PopoverMenuItem.js +41 -0
  13. package/lib/components/popovers/tooltip/Tooltip.d.ts +4 -6
  14. package/lib/components/popovers/tooltip/Tooltip.js +11 -53
  15. package/lib/helper/useOnClickOutside.d.ts +2 -2
  16. package/node/index.js +20 -35
  17. package/node/lib/components/popovers/popover/Popover.js +7 -1
  18. package/node/lib/components/popovers/popover-menu/PopoverMenu.js +30 -41
  19. package/node/lib/components/popovers/popover-menu/PopoverMenuContext.js +11 -0
  20. package/node/lib/components/popovers/popover-menu-item/PopoverMenuItem.js +48 -0
  21. package/node/lib/components/popovers/tooltip/Tooltip.js +10 -52
  22. package/package.json +1 -6
  23. package/508.bundle.js +0 -1
  24. package/lib/forms/color-indicator/ColorIndicator.d.ts +0 -11
  25. package/lib/forms/color-indicator/ColorIndicator.js +0 -119
  26. package/lib/forms/color-picker/ColorHelper.d.ts +0 -9
  27. package/lib/forms/color-picker/ColorHelper.js +0 -140
  28. package/lib/forms/color-picker/ColorPicker.d.ts +0 -14
  29. package/lib/forms/color-picker/ColorPicker.js +0 -545
  30. package/lib/forms/date-picker/DatePicker.d.ts +0 -25
  31. package/lib/forms/date-picker/DatePicker.js +0 -155
  32. package/lib/forms/date-range-picker/DateRangePicker.d.ts +0 -19
  33. package/lib/forms/date-range-picker/DateRangePicker.js +0 -135
  34. package/lib/forms/text-editor/TextEditor.d.ts +0 -29
  35. package/lib/forms/text-editor/TextEditor.js +0 -256
  36. package/lib/forms/text-editor/TextEditorButton.d.ts +0 -14
  37. package/lib/forms/text-editor/TextEditorButton.js +0 -80
  38. package/node/lib/forms/color-indicator/ColorIndicator.js +0 -128
  39. package/node/lib/forms/color-picker/ColorHelper.js +0 -147
  40. package/node/lib/forms/color-picker/ColorPicker.js +0 -552
  41. package/node/lib/forms/date-picker/DatePicker.js +0 -162
  42. package/node/lib/forms/date-range-picker/DateRangePicker.js +0 -142
  43. package/node/lib/forms/text-editor/TextEditor.js +0 -265
  44. package/node/lib/forms/text-editor/TextEditorButton.js +0 -87
@@ -1,60 +1,18 @@
1
- import { useRef, useState } from "react";
2
- import { usePopper } from "react-popper";
3
- import classNames from "classnames";
4
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import Popover from "../popover/Popover.js";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
5
3
  function Tooltip(_ref) {
6
4
  let {
7
- children,
8
- className,
9
5
  title,
10
- position = "bottom"
6
+ ...props
11
7
  } = _ref;
12
- const [showPopper, setShowPopper] = useState(false);
13
- const referenceElement = useRef(null);
14
- const [popperElement, setPopperElement] = useState(null);
15
- const [arrowElement, setArrowElement] = useState(null);
16
- const {
17
- styles,
18
- attributes
19
- } = usePopper(referenceElement.current, popperElement, {
20
- placement: position,
21
- modifiers: [{
22
- name: "arrow",
23
- options: {
24
- element: arrowElement
25
- }
26
- }, {
27
- name: "offset",
28
- options: {
29
- offset: [0, 24]
30
- }
31
- }, {
32
- name: "flip",
33
- options: {
34
- fallbackPlacements: ["right", "left", "top"]
35
- }
36
- }]
37
- });
38
- return /*#__PURE__*/_jsxs("div", {
39
- className: classNames("fr-tooltip-container", className),
40
- ref: referenceElement,
41
- onMouseEnter: () => setShowPopper(true),
42
- onMouseLeave: () => setShowPopper(false),
43
- children: [children, showPopper && /*#__PURE__*/_jsxs("div", {
44
- className: "fwe-popover-container",
45
- id: "tooltip",
46
- ref: setPopperElement,
47
- style: styles.popper,
48
- ...attributes.popper,
49
- children: [/*#__PURE__*/_jsx("div", {
50
- ref: setArrowElement,
51
- style: styles.arrow,
52
- id: "arrow"
53
- }), /*#__PURE__*/_jsx("div", {
54
- className: "fwe-popover",
55
- children: title
56
- })]
57
- })]
8
+ return /*#__PURE__*/_jsx(Popover, {
9
+ position: "bottom",
10
+ popoverContent: /*#__PURE__*/_jsx("span", {
11
+ children: title
12
+ }),
13
+ openOnHover: true,
14
+ ...props,
15
+ children: props.children
58
16
  });
59
17
  }
60
18
  export default Tooltip;
@@ -1,2 +1,2 @@
1
- import { RefObject } from "react";
2
- export default function useOnClickOutside<T extends HTMLElement = HTMLElement>(ref: RefObject<T>, callback: (event: MouseEvent | TouchEvent) => void, ref2?: RefObject<T>): void;
1
+ import { type RefObject } from "react";
2
+ export default function useOnClickOutside(ref: RefObject<HTMLElement>, callback: (event: MouseEvent | TouchEvent) => void, ref2?: RefObject<HTMLElement>): void;
package/node/index.js CHANGED
@@ -99,18 +99,6 @@ Object.defineProperty(exports, "ChipType", {
99
99
  return _Chip.ChipType;
100
100
  }
101
101
  });
102
- Object.defineProperty(exports, "ColorIndicator", {
103
- enumerable: true,
104
- get: function () {
105
- return _ColorIndicator.default;
106
- }
107
- });
108
- Object.defineProperty(exports, "ColorPicker", {
109
- enumerable: true,
110
- get: function () {
111
- return _ColorPicker.default;
112
- }
113
- });
114
102
  Object.defineProperty(exports, "ConfirmModal", {
115
103
  enumerable: true,
116
104
  get: function () {
@@ -123,18 +111,6 @@ Object.defineProperty(exports, "CustomModal", {
123
111
  return _CustomModal.default;
124
112
  }
125
113
  });
126
- Object.defineProperty(exports, "DatePicker", {
127
- enumerable: true,
128
- get: function () {
129
- return _DatePicker.default;
130
- }
131
- });
132
- Object.defineProperty(exports, "DateRangePicker", {
133
- enumerable: true,
134
- get: function () {
135
- return _DateRangePicker.default;
136
- }
137
- });
138
114
  Object.defineProperty(exports, "ImageGallery", {
139
115
  enumerable: true,
140
116
  get: function () {
@@ -213,6 +189,24 @@ Object.defineProperty(exports, "PopoverMenu", {
213
189
  return _PopoverMenu.default;
214
190
  }
215
191
  });
192
+ Object.defineProperty(exports, "PopoverMenuContext", {
193
+ enumerable: true,
194
+ get: function () {
195
+ return _PopoverMenuContext.default;
196
+ }
197
+ });
198
+ Object.defineProperty(exports, "PopoverMenuItem", {
199
+ enumerable: true,
200
+ get: function () {
201
+ return _PopoverMenuItem.default;
202
+ }
203
+ });
204
+ Object.defineProperty(exports, "PopoverMenuItemProps", {
205
+ enumerable: true,
206
+ get: function () {
207
+ return _PopoverMenuItem.PopoverMenuItemProps;
208
+ }
209
+ });
216
210
  Object.defineProperty(exports, "Progress", {
217
211
  enumerable: true,
218
212
  get: function () {
@@ -357,12 +351,6 @@ Object.defineProperty(exports, "TextArea", {
357
351
  return _TextArea.default;
358
352
  }
359
353
  });
360
- Object.defineProperty(exports, "TextEditor", {
361
- enumerable: true,
362
- get: function () {
363
- return _TextEditor.default;
364
- }
365
- });
366
354
  Object.defineProperty(exports, "TextInput", {
367
355
  enumerable: true,
368
356
  get: function () {
@@ -421,7 +409,9 @@ var _ImageGalleryThumbsSwiper = _interopRequireDefault(require("./lib/components
421
409
  var _ImageGalleryItem = _interopRequireDefault(require("./lib/components/modals/image-gallery/image-gallery-item/ImageGalleryItem.js"));
422
410
  var _Prompt = _interopRequireDefault(require("./lib/components/modals/Prompt.js"));
423
411
  var _Pagination = _interopRequireDefault(require("./lib/components/pagination/Pagination.js"));
412
+ var _PopoverMenuContext = _interopRequireDefault(require("./lib/components/popovers/popover-menu/PopoverMenuContext.js"));
424
413
  var _PopoverMenu = _interopRequireDefault(require("./lib/components/popovers/popover-menu/PopoverMenu.js"));
414
+ var _PopoverMenuItem = _interopRequireWildcard(require("./lib/components/popovers/popover-menu-item/PopoverMenuItem.js"));
425
415
  var _Popover = _interopRequireDefault(require("./lib/components/popovers/popover/Popover.js"));
426
416
  var _Tooltip = _interopRequireDefault(require("./lib/components/popovers/tooltip/Tooltip.js"));
427
417
  var _Progress = _interopRequireDefault(require("./lib/components/progress/Progress.js"));
@@ -438,10 +428,6 @@ var _TabPane = _interopRequireDefault(require("./lib/components/tab/tab-pane/Tab
438
428
  var _Tabs = _interopRequireDefault(require("./lib/components/tab/Tabs.js"));
439
429
  var _TableHeaderCell = _interopRequireDefault(require("./lib/components/table-header-cell/TableHeaderCell.js"));
440
430
  var _Checkbox = _interopRequireDefault(require("./lib/forms/checkbox/Checkbox.js"));
441
- var _ColorIndicator = _interopRequireDefault(require("./lib/forms/color-indicator/ColorIndicator.js"));
442
- var _ColorPicker = _interopRequireDefault(require("./lib/forms/color-picker/ColorPicker.js"));
443
- var _DatePicker = _interopRequireDefault(require("./lib/forms/date-picker/DatePicker.js"));
444
- var _DateRangePicker = _interopRequireDefault(require("./lib/forms/date-range-picker/DateRangePicker.js"));
445
431
  var _RadioButton = _interopRequireDefault(require("./lib/forms/radio/RadioButton.js"));
446
432
  var _RadioGroup = _interopRequireDefault(require("./lib/forms/radio/RadioGroup.js"));
447
433
  var _ScrollArea = _interopRequireDefault(require("./lib/components/scroll-area/ScrollArea.js"));
@@ -452,7 +438,6 @@ var _SelectOption = _interopRequireDefault(require("./lib/forms/select/select-op
452
438
  var _Slider = _interopRequireDefault(require("./lib/forms/slider/Slider.js"));
453
439
  var _Switch = _interopRequireDefault(require("./lib/forms/switch/Switch.js"));
454
440
  var _TextArea = _interopRequireDefault(require("./lib/forms/text-area/TextArea.js"));
455
- var _TextEditor = _interopRequireDefault(require("./lib/forms/text-editor/TextEditor.js"));
456
441
  var _TextInput = _interopRequireDefault(require("./lib/forms/text-input/TextInput.js"));
457
442
  var _TimePicker = _interopRequireDefault(require("./lib/forms/time-picker/TimePicker.js"));
458
443
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
@@ -20,6 +20,7 @@ function Popover(_ref) {
20
20
  children,
21
21
  position,
22
22
  fallbackPositions,
23
+ openOnHover = false,
23
24
  defaultOpen = false,
24
25
  open,
25
26
  onStatusChange,
@@ -96,7 +97,10 @@ function Popover(_ref) {
96
97
  handleChange(event, !showPopper);
97
98
  }
98
99
  }
99
- const childrenWrapper = /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
100
+ const childrenWrapper =
101
+ /*#__PURE__*/
102
+ // biome-ignore lint/a11y/useSemanticElements: since a button in button is wrong, we need a div with click handler here.
103
+ (0, _jsxRuntime.jsx)("div", {
100
104
  tabIndex: 0,
101
105
  role: "button",
102
106
  className: classes,
@@ -104,6 +108,8 @@ function Popover(_ref) {
104
108
  onKeyDown: handleKeyDown,
105
109
  onKeyUp: handleKeyUp,
106
110
  onClick: handleTriggerClick,
111
+ onMouseEnter: openOnHover ? e => handleChange(e, true) : undefined,
112
+ onMouseLeave: openOnHover ? e => handleChange(e, false) : undefined,
107
113
  children: children
108
114
  });
109
115
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
@@ -7,56 +7,45 @@ exports.default = void 0;
7
7
  var _react = require("react");
8
8
  var _classnames = _interopRequireDefault(require("classnames"));
9
9
  var _Popover = _interopRequireDefault(require("../popover/Popover.js"));
10
- var _IconWrapper = _interopRequireDefault(require("../../icon-wrapper/IconWrapper.js"));
10
+ var _PopoverMenuItem = _interopRequireDefault(require("../popover-menu-item/PopoverMenuItem.js"));
11
+ var _PopoverMenuContext = _interopRequireDefault(require("./PopoverMenuContext.js"));
11
12
  var _jsxRuntime = require("react/jsx-runtime");
12
13
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
14
  function PopoverMenu(_ref) {
14
15
  let {
15
- children,
16
16
  menu,
17
- className,
18
17
  ...props
19
18
  } = _ref;
20
19
  const [showPopper, setShowPopper] = (0, _react.useState)(false);
21
- const handleClick = (e, item) => {
22
- if (props.stopPropagation) {
23
- e?.stopPropagation();
24
- e?.preventDefault();
25
- }
26
- if (item.action) {
27
- item.action(item.data);
28
- }
29
- setShowPopper(false);
30
- };
31
- const content = /*#__PURE__*/(0, _jsxRuntime.jsx)("ul", {
32
- className: "fwe-list-group",
33
- children: menu.map(item => /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
34
- className: "fwe-list-group-item",
35
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("button", {
36
- type: "button",
37
- className: "fwe-btn fwe-btn-link fwe-dark",
38
- onClick: e => handleClick(e, item),
39
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_IconWrapper.default, {
40
- icon: item.icon
41
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
42
- children: item.text
43
- })]
44
- })
45
- }, item.icon + item.text))
46
- });
20
+ const isPopoverMenuItemPropsArray = items => Array.isArray(items) && items.length > 0 && "text" in items[0];
21
+ let content = null;
22
+ if (isPopoverMenuItemPropsArray(menu)) {
23
+ // menu is PopoverMenuItemProps[]
24
+ content = menu.map(item => /*#__PURE__*/(0, _jsxRuntime.jsx)(_PopoverMenuItem.default, {
25
+ item: item
26
+ }, item.text));
27
+ } else {
28
+ // menu is ReactNode
29
+ content = menu;
30
+ }
31
+ const popoverMenuContext = (0, _react.useMemo)(() => ({
32
+ setShowPopper
33
+ }), []);
47
34
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
48
- className: (0, _classnames.default)("fwe-popover-menu", className),
49
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Popover.default, {
50
- popoverContent: content,
51
- position: "right",
52
- open: showPopper,
53
- onStatusChange: setShowPopper,
54
- ...props,
55
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
56
- "data-testid": "fwe-popover-menu-button",
57
- type: "button",
58
- className: "fwe-popover-menu-button",
59
- children: children
35
+ className: (0, _classnames.default)("fwe-popover-menu", props.className),
36
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_PopoverMenuContext.default.Provider, {
37
+ value: popoverMenuContext,
38
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Popover.default, {
39
+ popoverContent: content,
40
+ position: "right",
41
+ open: showPopper,
42
+ onStatusChange: setShowPopper,
43
+ ...props,
44
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
45
+ "data-testid": "fwe-popover-menu-button",
46
+ className: "fwe-popover-menu-button",
47
+ children: props.children
48
+ })
60
49
  })
61
50
  })
62
51
  });
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = require("react");
8
+ const PopoverMenuContext = /*#__PURE__*/(0, _react.createContext)({
9
+ setShowPopper: () => {}
10
+ });
11
+ var _default = exports.default = PopoverMenuContext;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = require("react");
8
+ var _IconWrapper = _interopRequireDefault(require("../../icon-wrapper/IconWrapper.js"));
9
+ var _PopoverMenuContext = _interopRequireDefault(require("../popover-menu/PopoverMenuContext.js"));
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ function PopoverMenuItem(_ref) {
13
+ let {
14
+ item
15
+ } = _ref;
16
+ // get context to close the popover menu
17
+ const {
18
+ setShowPopper
19
+ } = (0, _react.useContext)(_PopoverMenuContext.default);
20
+ function handleClick(e) {
21
+ // prevent event propagation
22
+ e?.stopPropagation();
23
+ e?.preventDefault();
24
+
25
+ // close the popover menu
26
+ if (setShowPopper) {
27
+ setShowPopper(false);
28
+ }
29
+ if (item.action) {
30
+ item.action(item.data);
31
+ }
32
+ }
33
+ if (!item) {
34
+ return null;
35
+ }
36
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("button", {
37
+ type: "button",
38
+ className: "fwe-btn-unstyled fr-popover-item",
39
+ onClick: e => handleClick(e),
40
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_IconWrapper.default, {
41
+ icon: item.icon
42
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
43
+ className: "fwe-mr-xxs",
44
+ children: item.text
45
+ })]
46
+ });
47
+ }
48
+ var _default = exports.default = PopoverMenuItem;
@@ -4,64 +4,22 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _react = require("react");
8
- var _reactPopper = require("react-popper");
9
- var _classnames = _interopRequireDefault(require("classnames"));
7
+ var _Popover = _interopRequireDefault(require("../popover/Popover.js"));
10
8
  var _jsxRuntime = require("react/jsx-runtime");
11
9
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
10
  function Tooltip(_ref) {
13
11
  let {
14
- children,
15
- className,
16
12
  title,
17
- position = "bottom"
13
+ ...props
18
14
  } = _ref;
19
- const [showPopper, setShowPopper] = (0, _react.useState)(false);
20
- const referenceElement = (0, _react.useRef)(null);
21
- const [popperElement, setPopperElement] = (0, _react.useState)(null);
22
- const [arrowElement, setArrowElement] = (0, _react.useState)(null);
23
- const {
24
- styles,
25
- attributes
26
- } = (0, _reactPopper.usePopper)(referenceElement.current, popperElement, {
27
- placement: position,
28
- modifiers: [{
29
- name: "arrow",
30
- options: {
31
- element: arrowElement
32
- }
33
- }, {
34
- name: "offset",
35
- options: {
36
- offset: [0, 24]
37
- }
38
- }, {
39
- name: "flip",
40
- options: {
41
- fallbackPlacements: ["right", "left", "top"]
42
- }
43
- }]
44
- });
45
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
46
- className: (0, _classnames.default)("fr-tooltip-container", className),
47
- ref: referenceElement,
48
- onMouseEnter: () => setShowPopper(true),
49
- onMouseLeave: () => setShowPopper(false),
50
- children: [children, showPopper && /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
51
- className: "fwe-popover-container",
52
- id: "tooltip",
53
- ref: setPopperElement,
54
- style: styles.popper,
55
- ...attributes.popper,
56
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
57
- ref: setArrowElement,
58
- style: styles.arrow,
59
- id: "arrow"
60
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
61
- className: "fwe-popover",
62
- children: title
63
- })]
64
- })]
15
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Popover.default, {
16
+ position: "bottom",
17
+ popoverContent: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
18
+ children: title
19
+ }),
20
+ openOnHover: true,
21
+ ...props,
22
+ children: props.children
65
23
  });
66
24
  }
67
25
  var _default = exports.default = Tooltip;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@festo-ui/react",
3
- "version": "9.0.0-dev.679",
3
+ "version": "9.0.0-dev.683",
4
4
  "author": "Festo UI (styleguide@festo.com)",
5
5
  "copyright": "Copyright (c) 2025 Festo SE & Co. KG. All rights reserved.",
6
6
  "license": "apache-2.0",
@@ -18,9 +18,6 @@
18
18
  "react": ">=17.0.0",
19
19
  "react-dom": ">=17.0.0"
20
20
  },
21
- "optionalDependencies": {
22
- "quill": "^2.0.3"
23
- },
24
21
  "sideEffects": [
25
22
  "*.scss",
26
23
  "*.css"
@@ -32,8 +29,6 @@
32
29
  "@festo-ui/react-icons": "*",
33
30
  "@popperjs/core": "^2.11.0",
34
31
  "classnames": "^2.2.6",
35
- "flatpickr": "^4.6.9",
36
- "react-draggable": "^4.4.6",
37
32
  "react-popper": "^2.3.0",
38
33
  "react-remove-scroll": "^2.5.7",
39
34
  "react-transition-group": "^4.4.2",