@festo-ui/react 9.0.1-dev.781 → 9.0.1-dev.782

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 (203) hide show
  1. package/package.json +14 -18
  2. package/dist/components/accordion/Accordion.css +0 -4
  3. package/dist/components/accordion/Accordion.d.ts +0 -10
  4. package/dist/components/accordion/Accordion.js +0 -41
  5. package/dist/components/accordion/AccordionContext.d.ts +0 -11
  6. package/dist/components/accordion/AccordionContext.js +0 -3
  7. package/dist/components/accordion/accordion-header/AccordionHeader.css +0 -11
  8. package/dist/components/accordion/accordion-header/AccordionHeader.d.ts +0 -2
  9. package/dist/components/accordion/accordion-header/AccordionHeader.js +0 -11
  10. package/dist/components/accordion/accordion-item/AccordionItem.css +0 -64
  11. package/dist/components/accordion/accordion-item/AccordionItem.d.ts +0 -8
  12. package/dist/components/accordion/accordion-item/AccordionItem.js +0 -60
  13. package/dist/components/accordion/accordion-item/AccordionItemContext.d.ts +0 -7
  14. package/dist/components/accordion/accordion-item/AccordionItemContext.js +0 -3
  15. package/dist/components/accordion/accordion-item/accordion-item-body/AccordionItemBody.css +0 -76
  16. package/dist/components/accordion/accordion-item/accordion-item-body/AccordionItemBody.d.ts +0 -2
  17. package/dist/components/accordion/accordion-item/accordion-item-body/AccordionItemBody.js +0 -61
  18. package/dist/components/accordion/accordion-item/accordion-item-header/AccordionItemHeader.css +0 -11
  19. package/dist/components/accordion/accordion-item/accordion-item-header/AccordionItemHeader.d.ts +0 -2
  20. package/dist/components/accordion/accordion-item/accordion-item-header/AccordionItemHeader.js +0 -20
  21. package/dist/components/bottom-sheet/BottomSheet.css +0 -18
  22. package/dist/components/bottom-sheet/BottomSheet.d.ts +0 -11
  23. package/dist/components/bottom-sheet/BottomSheet.js +0 -101
  24. package/dist/components/breadcrumb/Breadcrumb.d.ts +0 -14
  25. package/dist/components/breadcrumb/Breadcrumb.js +0 -87
  26. package/dist/components/button/Button.d.ts +0 -11
  27. package/dist/components/button/Button.js +0 -36
  28. package/dist/components/card/Card.d.ts +0 -4
  29. package/dist/components/card/Card.js +0 -9
  30. package/dist/components/card/CardBody.d.ts +0 -5
  31. package/dist/components/card/CardBody.js +0 -15
  32. package/dist/components/card/CardHeader.d.ts +0 -8
  33. package/dist/components/card/CardHeader.js +0 -31
  34. package/dist/components/card/CardHeader.stories.helper.js +0 -7
  35. package/dist/components/card/CardNotification.d.ts +0 -6
  36. package/dist/components/card/CardNotification.js +0 -26
  37. package/dist/components/chips/chip/Chip.d.ts +0 -17
  38. package/dist/components/chips/chip/Chip.js +0 -38
  39. package/dist/components/chips/chip-container/ChipContainer.d.ts +0 -5
  40. package/dist/components/chips/chip-container/ChipContainer.js +0 -12
  41. package/dist/components/icon-wrapper/IconWrapper.d.ts +0 -6
  42. package/dist/components/icon-wrapper/IconWrapper.js +0 -13
  43. package/dist/components/loading-indicator/LoadingIndicator.d.ts +0 -5
  44. package/dist/components/loading-indicator/LoadingIndicator.js +0 -41
  45. package/dist/components/mobile-flyout/MobileFlyout.d.ts +0 -11
  46. package/dist/components/mobile-flyout/MobileFlyout.js +0 -88
  47. package/dist/components/mobile-flyout/MobileFlyoutContext.d.ts +0 -8
  48. package/dist/components/mobile-flyout/MobileFlyoutContext.js +0 -3
  49. package/dist/components/mobile-flyout/mobile-flyout-item/MobileFlyoutItem.d.ts +0 -17
  50. package/dist/components/mobile-flyout/mobile-flyout-item/MobileFlyoutItem.js +0 -36
  51. package/dist/components/mobile-flyout/mobile-flyout-page/MobileFlyoutPage.css +0 -5
  52. package/dist/components/mobile-flyout/mobile-flyout-page/MobileFlyoutPage.d.ts +0 -8
  53. package/dist/components/mobile-flyout/mobile-flyout-page/MobileFlyoutPage.js +0 -35
  54. package/dist/components/modals/AlertModal.d.ts +0 -12
  55. package/dist/components/modals/AlertModal.js +0 -53
  56. package/dist/components/modals/ConfirmModal.d.ts +0 -11
  57. package/dist/components/modals/ConfirmModal.js +0 -46
  58. package/dist/components/modals/CustomModal.d.ts +0 -8
  59. package/dist/components/modals/CustomModal.js +0 -38
  60. package/dist/components/modals/Modal.css +0 -39
  61. package/dist/components/modals/Modal.d.ts +0 -8
  62. package/dist/components/modals/Modal.js +0 -31
  63. package/dist/components/modals/ModalBase.d.ts +0 -9
  64. package/dist/components/modals/ModalBase.js +0 -124
  65. package/dist/components/modals/ModalFooter.d.ts +0 -2
  66. package/dist/components/modals/ModalFooter.js +0 -12
  67. package/dist/components/modals/Prompt.d.ts +0 -15
  68. package/dist/components/modals/Prompt.js +0 -58
  69. package/dist/components/modals/image-gallery/ImageGallery.css +0 -815
  70. package/dist/components/modals/image-gallery/ImageGallery.d.ts +0 -21
  71. package/dist/components/modals/image-gallery/ImageGallery.helper.d.ts +0 -2
  72. package/dist/components/modals/image-gallery/ImageGallery.helper.js +0 -13
  73. package/dist/components/modals/image-gallery/ImageGallery.js +0 -103
  74. package/dist/components/modals/image-gallery/ImageGallery.stories.helper.js +0 -112
  75. package/dist/components/modals/image-gallery/ImageGalleryContent.d.ts +0 -8
  76. package/dist/components/modals/image-gallery/ImageGalleryContent.js +0 -15
  77. package/dist/components/modals/image-gallery/ImageGalleryScale.d.ts +0 -6
  78. package/dist/components/modals/image-gallery/ImageGalleryScale.js +0 -15
  79. package/dist/components/modals/image-gallery/ImageGallerySwiper.d.ts +0 -12
  80. package/dist/components/modals/image-gallery/ImageGallerySwiper.js +0 -40
  81. package/dist/components/modals/image-gallery/ImageGalleryThumbsSwiper.d.ts +0 -7
  82. package/dist/components/modals/image-gallery/ImageGalleryThumbsSwiper.js +0 -27
  83. package/dist/components/modals/image-gallery/internal/CloseButton.d.ts +0 -6
  84. package/dist/components/modals/image-gallery/internal/CloseButton.js +0 -14
  85. package/dist/components/modals/image-gallery/internal/ImageGalleryContainer.d.ts +0 -5
  86. package/dist/components/modals/image-gallery/internal/ImageGalleryContainer.js +0 -8
  87. package/dist/components/modals/image-gallery/internal/ImageGalleryPagination.d.ts +0 -5
  88. package/dist/components/modals/image-gallery/internal/ImageGalleryPagination.js +0 -29
  89. package/dist/components/pagination/Pagination.css +0 -10
  90. package/dist/components/pagination/Pagination.d.ts +0 -15
  91. package/dist/components/pagination/Pagination.js +0 -100
  92. package/dist/components/popovers/legend/Legend.d.ts +0 -9
  93. package/dist/components/popovers/legend/Legend.js +0 -21
  94. package/dist/components/popovers/popover/Popover.css +0 -56
  95. package/dist/components/popovers/popover/Popover.d.ts +0 -21
  96. package/dist/components/popovers/popover/Popover.js +0 -106
  97. package/dist/components/popovers/popover-menu/PopoverMenu.d.ts +0 -7
  98. package/dist/components/popovers/popover-menu/PopoverMenu.js +0 -37
  99. package/dist/components/popovers/popover-menu/PopoverMenuContext.d.ts +0 -3
  100. package/dist/components/popovers/popover-menu/PopoverMenuContext.js +0 -5
  101. package/dist/components/popovers/popover-menu-item/PopoverMenuItem.d.ts +0 -9
  102. package/dist/components/popovers/popover-menu-item/PopoverMenuItem.js +0 -28
  103. package/dist/components/popovers/tooltip/Tooltip.d.ts +0 -5
  104. package/dist/components/popovers/tooltip/Tooltip.js +0 -12
  105. package/dist/components/progress/Progress.d.ts +0 -7
  106. package/dist/components/progress/Progress.js +0 -26
  107. package/dist/components/search-input/ClearButton.d.ts +0 -2
  108. package/dist/components/search-input/ClearButton.js +0 -10
  109. package/dist/components/search-input/SearchInput.css +0 -13
  110. package/dist/components/search-input/SearchInput.d.ts +0 -14
  111. package/dist/components/search-input/SearchInput.js +0 -61
  112. package/dist/components/search-input/SearchSuggestion.d.ts +0 -17
  113. package/dist/components/search-input/SearchSuggestion.js +0 -21
  114. package/dist/components/search-input/useSearchInput.d.ts +0 -13
  115. package/dist/components/search-input/useSearchInput.js +0 -85
  116. package/dist/components/snackbar/Snackbar.css +0 -55
  117. package/dist/components/snackbar/Snackbar.d.ts +0 -21
  118. package/dist/components/snackbar/Snackbar.js +0 -78
  119. package/dist/components/snackbar/SnackbarContext.d.ts +0 -7
  120. package/dist/components/snackbar/SnackbarContext.js +0 -3
  121. package/dist/components/snackbar/SnackbarProvider.d.ts +0 -7
  122. package/dist/components/snackbar/SnackbarProvider.js +0 -66
  123. package/dist/components/snackbar/useSnackbar.d.ts +0 -2
  124. package/dist/components/snackbar/useSnackbar.js +0 -4
  125. package/dist/components/stepper-horizontal/StepperHorizontal.css +0 -6
  126. package/dist/components/stepper-horizontal/StepperHorizontal.d.ts +0 -7
  127. package/dist/components/stepper-horizontal/StepperHorizontal.js +0 -48
  128. package/dist/components/stepper-horizontal/step-horizontal/StepHorizontal.css +0 -24
  129. package/dist/components/stepper-horizontal/step-horizontal/StepHorizontal.d.ts +0 -6
  130. package/dist/components/stepper-horizontal/step-horizontal/StepHorizontal.js +0 -16
  131. package/dist/components/stepper-vertical/StepperVertical.d.ts +0 -6
  132. package/dist/components/stepper-vertical/StepperVertical.js +0 -26
  133. package/dist/components/stepper-vertical/step-vertical/StepVertical.css +0 -10
  134. package/dist/components/stepper-vertical/step-vertical/StepVertical.d.ts +0 -11
  135. package/dist/components/stepper-vertical/step-vertical/StepVertical.js +0 -58
  136. package/dist/components/tab/Tabs.css +0 -285
  137. package/dist/components/tab/Tabs.d.ts +0 -22
  138. package/dist/components/tab/Tabs.js +0 -194
  139. package/dist/components/tab/interfaces.d.ts +0 -5
  140. package/dist/components/tab/interfaces.js +0 -0
  141. package/dist/components/tab/tab-pane/TabPane.css +0 -8
  142. package/dist/components/tab/tab-pane/TabPane.d.ts +0 -9
  143. package/dist/components/tab/tab-pane/TabPane.js +0 -18
  144. package/dist/components/tab/useTabScroll.d.ts +0 -25
  145. package/dist/components/tab/useTabScroll.js +0 -151
  146. package/dist/components/table-header-cell/TableHeaderCell.d.ts +0 -5
  147. package/dist/components/table-header-cell/TableHeaderCell.js +0 -21
  148. package/dist/forms/checkbox/Checkbox.css +0 -134
  149. package/dist/forms/checkbox/Checkbox.d.ts +0 -15
  150. package/dist/forms/checkbox/Checkbox.js +0 -80
  151. package/dist/forms/combobox/ComboBox.css +0 -124
  152. package/dist/forms/combobox/ComboBox.d.ts +0 -28
  153. package/dist/forms/combobox/ComboBox.js +0 -175
  154. package/dist/forms/multi-select/MultiSelect.d.ts +0 -20
  155. package/dist/forms/multi-select/MultiSelect.js +0 -191
  156. package/dist/forms/multi-select/MultiSelect.module.js +0 -8
  157. package/dist/forms/multi-select/MultiSelect_module.css +0 -13
  158. package/dist/forms/radio/RadioButton.d.ts +0 -14
  159. package/dist/forms/radio/RadioButton.js +0 -61
  160. package/dist/forms/radio/RadioGroup.d.ts +0 -12
  161. package/dist/forms/radio/RadioGroup.js +0 -50
  162. package/dist/forms/radio/RadioGroupContext.d.ts +0 -12
  163. package/dist/forms/radio/RadioGroupContext.js +0 -3
  164. package/dist/forms/segment/Segment.d.ts +0 -13
  165. package/dist/forms/segment/Segment.js +0 -59
  166. package/dist/forms/segment/segment-control/SegmentControl.d.ts +0 -14
  167. package/dist/forms/segment/segment-control/SegmentControl.js +0 -57
  168. package/dist/forms/select/Select.d.ts +0 -25
  169. package/dist/forms/select/Select.js +0 -92
  170. package/dist/forms/slider/Slider.css +0 -50
  171. package/dist/forms/slider/Slider.d.ts +0 -17
  172. package/dist/forms/slider/Slider.js +0 -93
  173. package/dist/forms/switch/Switch.d.ts +0 -12
  174. package/dist/forms/switch/Switch.js +0 -42
  175. package/dist/forms/text-area/TextArea.css +0 -14
  176. package/dist/forms/text-area/TextArea.d.ts +0 -22
  177. package/dist/forms/text-area/TextArea.js +0 -99
  178. package/dist/forms/text-input/TextInput.d.ts +0 -24
  179. package/dist/forms/text-input/TextInput.js +0 -74
  180. package/dist/forms/time-picker/TimePicker.css +0 -10
  181. package/dist/forms/time-picker/TimePicker.d.ts +0 -24
  182. package/dist/forms/time-picker/TimePicker.js +0 -140
  183. package/dist/forms/time-picker/time-picker-dropdown/TimePickerDropdown.css +0 -4
  184. package/dist/forms/time-picker/time-picker-dropdown/TimePickerDropdown.d.ts +0 -19
  185. package/dist/forms/time-picker/time-picker-dropdown/TimePickerDropdown.js +0 -208
  186. package/dist/forms/time-picker/time-picker-dropdown/TimePickerInput.d.ts +0 -9
  187. package/dist/forms/time-picker/time-picker-dropdown/TimePickerInput.js +0 -14
  188. package/dist/index.d.ts +0 -59
  189. package/dist/index.js +0 -60
  190. package/dist/utils/index.d.ts +0 -1
  191. package/dist/utils/index.js +0 -7
  192. package/dist/utils/setRef.d.ts +0 -1
  193. package/dist/utils/setRef.js +0 -5
  194. package/dist/utils/types.d.ts +0 -36
  195. package/dist/utils/types.js +0 -0
  196. package/dist/utils/useControlled.d.ts +0 -7
  197. package/dist/utils/useControlled.js +0 -20
  198. package/dist/utils/useForkRef.d.ts +0 -2
  199. package/dist/utils/useForkRef.js +0 -15
  200. package/dist/utils/useId.d.ts +0 -1
  201. package/dist/utils/useId.js +0 -20
  202. package/dist/utils/useOnClickOutside.d.ts +0 -2
  203. package/dist/utils/useOnClickOutside.js +0 -20
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@festo-ui/react",
3
- "version": "9.0.1-dev.781",
3
+ "version": "9.0.1-dev.782",
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",
@@ -35,16 +35,15 @@
35
35
  "dependencies": {
36
36
  "@festo-ui/react-icons": "*",
37
37
  "@headlessui/react": "^2.2.9",
38
- "@popperjs/core": "^2.11.0",
38
+ "@floating-ui/react": "^0.26.0",
39
39
  "classnames": "^2.2.6",
40
- "react-popper": "^2.3.0",
41
- "react-remove-scroll": "^2.5.7",
42
- "react-transition-group": "^4.4.2",
40
+ "react-remove-scroll": "^2.7.2",
41
+ "react-transition-group": "^4.4.5",
43
42
  "swiper": "^12.0.3"
44
43
  },
45
44
  "devDependencies": {
46
45
  "@biomejs/biome": "2.3.2",
47
- "@chromatic-com/storybook": "^4.1.1",
46
+ "@chromatic-com/storybook": "^5.0.0",
48
47
  "@rsbuild/core": "~1.6.2",
49
48
  "@rsbuild/plugin-react": "^1.4.1",
50
49
  "@rsbuild/plugin-sass": "^1.4.0",
@@ -52,32 +51,29 @@
52
51
  "@rslib/core": "^0.17.1",
53
52
  "@rstest/core": "^0.6.5",
54
53
  "@rstest/coverage-istanbul": "^0.0.5",
55
- "@storybook/addon-docs": "^9.1.16",
56
- "@storybook/addon-links": "^9.1.10",
57
- "@storybook/addon-webpack5-compiler-babel": "^3.0.6",
54
+ "@storybook/addon-docs": "^10.2.3",
58
55
  "@storybook/preset-scss": "^1.0.3",
59
- "@storybook/react": "^9.1.16",
60
56
  "@testing-library/dom": "^10.4.0",
61
57
  "@testing-library/jest-dom": "^6.9.1",
62
58
  "@testing-library/react": "^16.3.0",
63
59
  "@testing-library/user-event": "^14.6.1",
64
- "@types/react": "^18.2.0",
65
- "@types/react-dom": "^18.2.0",
60
+ "@types/react": "^19.2.0",
61
+ "@types/react-dom": "^19.2.0",
66
62
  "@types/react-transition-group": "^4.4.5",
67
63
  "autoprefixer": "^10.4.13",
68
- "cross-env": "^7.0.3",
64
+ "cross-env": "^10.1.0",
69
65
  "css-minimizer-webpack-plugin": "^4.2.2",
70
66
  "jsdom": "^26.1.0",
71
67
  "mini-css-extract-plugin": "^2.9.2",
72
68
  "postcss": "^8.4.49",
73
69
  "postcss-loader": "^8.1.1",
74
- "react": "^18.2.0",
75
- "react-dom": "^18.2.0",
70
+ "react": "^19.2.0",
71
+ "react-dom": "^19.2.0",
76
72
  "sass": "^1.82.0",
77
73
  "sass-loader": "^16.0.4",
78
- "storybook": "^9.1.16",
79
- "storybook-addon-rslib": "^2.1.3",
80
- "storybook-react-rsbuild": "^2.1.3",
74
+ "storybook": "^10.2.3",
75
+ "storybook-addon-rslib": "^3.2.2",
76
+ "storybook-react-rsbuild": "^3.2.2",
81
77
  "ts-loader": "^9.4.2",
82
78
  "typescript": "^5.9.3"
83
79
  },
@@ -1,4 +0,0 @@
1
- .fr-accordion {
2
- border-bottom: 1px solid var(--fwe-gray-100);
3
- }
4
-
@@ -1,10 +0,0 @@
1
- import './Accordion.scss';
2
- import { type ComponentPropsWithoutRef } from 'react';
3
- export interface AccordionProps extends ComponentPropsWithoutRef<'div'> {
4
- showMore?: string;
5
- showLess?: string;
6
- keepItemsOpen?: boolean;
7
- transparent?: boolean;
8
- highlighted?: boolean;
9
- }
10
- export declare const Accordion: (props: AccordionProps & import("react").RefAttributes<HTMLDivElement>) => React.ReactElement | null;
@@ -1,41 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import "./Accordion.css";
3
- import classnames from "classnames";
4
- import { forwardRef, useCallback, useMemo, useRef, useState } from "react";
5
- import { AccordionContext } from "./AccordionContext.js";
6
- let nextId = 0;
7
- const Accordion = /*#__PURE__*/ forwardRef(({ children, showMore = 'Show more', showLess = 'Show less', keepItemsOpen = true, className, transparent = false, highlighted = true, ...props }, ref)=>{
8
- const componentId = useRef(`accordion-${++nextId}`);
9
- const [expanded, setExpanded] = useState(false);
10
- const handleChange = useCallback((id, newExpanded)=>{
11
- setExpanded(newExpanded ? id : false);
12
- }, []);
13
- const contextValue = useMemo(()=>({
14
- showMore,
15
- showLess,
16
- parentId: componentId.current,
17
- keepItemsOpen,
18
- expanded,
19
- toggle: handleChange,
20
- highlighted
21
- }), [
22
- expanded,
23
- handleChange,
24
- keepItemsOpen,
25
- showLess,
26
- showMore,
27
- highlighted
28
- ]);
29
- return /*#__PURE__*/ jsx(AccordionContext.Provider, {
30
- value: contextValue,
31
- children: /*#__PURE__*/ jsx("div", {
32
- ref: ref,
33
- className: classnames('fr-accordion', {
34
- 'fwe-bg-white': !transparent
35
- }, className),
36
- ...props,
37
- children: children
38
- })
39
- });
40
- });
41
- export { Accordion };
@@ -1,11 +0,0 @@
1
- interface ContextProps {
2
- showMore: string;
3
- showLess: string;
4
- parentId: string;
5
- keepItemsOpen: boolean;
6
- expanded: boolean | string;
7
- toggle: (id: string, expanded: boolean) => void;
8
- highlighted: boolean;
9
- }
10
- export declare const AccordionContext: import("react").Context<Partial<ContextProps>>;
11
- export {};
@@ -1,3 +0,0 @@
1
- import { createContext } from "react";
2
- const AccordionContext = /*#__PURE__*/ createContext({});
3
- export { AccordionContext };
@@ -1,11 +0,0 @@
1
- .fr-accordion-header {
2
- height: 48px;
3
- font-size: var(--fwe-font-size-md);
4
- font-weight: var(--fwe-font-weight-bold);
5
- color: var(--fwe-text);
6
- border-bottom: 1px solid var(--fwe-gray-100);
7
- align-items: center;
8
- padding: 0 16px 0 24px;
9
- display: flex;
10
- }
11
-
@@ -1,2 +0,0 @@
1
- import './AccordionHeader.scss';
2
- export declare const AccordionHeader: (props: Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>) => React.ReactElement | null;
@@ -1,11 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import "./AccordionHeader.css";
3
- import classnames from "classnames";
4
- import { forwardRef } from "react";
5
- const AccordionHeader = /*#__PURE__*/ forwardRef(({ children, className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
6
- ref: ref,
7
- className: classnames('fr-accordion-header', className),
8
- ...props,
9
- children: children
10
- }));
11
- export { AccordionHeader };
@@ -1,64 +0,0 @@
1
- .fr-accordion-item {
2
- border-top: 1px solid var(--fwe-gray-100);
3
- border-bottom: 1px solid var(--fwe-gray-100);
4
- padding: 0 16px 0 24px;
5
- position: relative;
6
- }
7
-
8
- .fr-accordion-item-link {
9
- color: var(--fwe-caerul);
10
- font-size: var(--fwe-font-size-md);
11
- pointer-events: none;
12
- display: none;
13
- position: absolute;
14
- top: 24px;
15
- right: 24px;
16
- }
17
-
18
- .fr-accordion-item.fr-accordion-item--highlighted:before {
19
- content: "";
20
- background-color: var(--fwe-caerul);
21
- width: 4px;
22
- height: 0;
23
- display: block;
24
- position: absolute;
25
- top: 0;
26
- left: 0;
27
- }
28
-
29
- .fr-accordion-item:after {
30
- pointer-events: none;
31
- content: "";
32
- background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMiAzMiI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgzMnYzMkgweiIvPjxwYXRoIGZpbGw9IiMzMzMiIGQ9Im0xNiAyMi04LjcwNy04LjcwNyAxLjQxNC0xLjQxNEwxNiAxOS4xNzJsNy4yOTMtNy4yOTMgMS40MTQgMS40MTRMMTYgMjJ6IiAvPjwvc3ZnPg==);
33
- width: 32px;
34
- height: 32px;
35
- transition: transform .2s;
36
- position: absolute;
37
- top: 21px;
38
- right: 16px;
39
- }
40
-
41
- .fr-accordion-item--expanded .fr-accordion-item-header {
42
- font-weight: var(--fwe-font-weight-bold);
43
- }
44
-
45
- .fr-accordion-item--expanded .fr-accordion-item-body {
46
- height: auto;
47
- }
48
-
49
- .fr-accordion-item--expanded:after {
50
- transform: rotate(-180deg);
51
- }
52
-
53
- .fr-accordion-item--expanded.fr-accordion-item--highlighted:before {
54
- height: 100%;
55
- }
56
-
57
- .fr-accordion-item--collapsed .fr-accordion-item-body {
58
- height: 0;
59
- }
60
-
61
- .fr-accordion-item--collapsed .fr-accordion-item-header {
62
- font-weight: var(--fwe-font-weight-normal);
63
- }
64
-
@@ -1,8 +0,0 @@
1
- import './AccordionItem.scss';
2
- import { type ComponentPropsWithoutRef } from 'react';
3
- export interface AccordionItemProps extends Omit<ComponentPropsWithoutRef<'div'>, 'onChange'> {
4
- expanded?: boolean;
5
- defaultExpanded?: boolean;
6
- onChange?: (event: React.SyntheticEvent, expanded: boolean) => void;
7
- }
8
- export declare const AccordionItem: (props: AccordionItemProps & import("react").RefAttributes<HTMLDivElement>) => React.ReactElement | null;
@@ -1,60 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import "./AccordionItem.css";
3
- import classnames from "classnames";
4
- import { forwardRef, useCallback, useContext, useMemo, useRef } from "react";
5
- import { useControlled } from "../../../utils/useControlled.js";
6
- import { AccordionContext } from "../AccordionContext.js";
7
- import { AccordionItemContext } from "./AccordionItemContext.js";
8
- let nextId = 0;
9
- const AccordionItem = /*#__PURE__*/ forwardRef(({ expanded: expandedProp, defaultExpanded = false, children, onChange, className, ...props }, ref)=>{
10
- const { showLess, showMore, parentId, keepItemsOpen, expanded: expandedContext, toggle: accordionToggle, highlighted } = useContext(AccordionContext);
11
- const componentId = useRef(`accordion-item-${++nextId}`);
12
- const id = `${parentId}-${componentId.current}`;
13
- const controlledExpanded = keepItemsOpen ? expandedProp : expandedContext === id;
14
- const [expanded, setExpanded] = useControlled({
15
- controlled: controlledExpanded,
16
- default: defaultExpanded
17
- });
18
- const linkText = expanded ? showLess : showMore;
19
- const handleChange = useCallback((event)=>{
20
- if (onChange) onChange(event, !expanded);
21
- if (!keepItemsOpen) accordionToggle?.(id, !expanded);
22
- setExpanded(!expanded);
23
- }, [
24
- accordionToggle,
25
- expanded,
26
- id,
27
- keepItemsOpen,
28
- onChange,
29
- setExpanded
30
- ]);
31
- const contextValue = useMemo(()=>({
32
- expanded,
33
- toggle: handleChange,
34
- id
35
- }), [
36
- expanded,
37
- handleChange,
38
- id
39
- ]);
40
- return /*#__PURE__*/ jsx(AccordionItemContext.Provider, {
41
- value: contextValue,
42
- children: /*#__PURE__*/ jsxs("div", {
43
- ref: ref,
44
- className: classnames('fr-accordion-item', {
45
- 'fr-accordion-item--collapsed': !expanded,
46
- 'fr-accordion-item--expanded': expanded,
47
- 'fr-accordion-item--highlighted': expanded && highlighted
48
- }, className),
49
- ...props,
50
- children: [
51
- children,
52
- /*#__PURE__*/ jsx("div", {
53
- className: "fr-accordion-item-link",
54
- children: linkText
55
- })
56
- ]
57
- })
58
- });
59
- });
60
- export { AccordionItem };
@@ -1,7 +0,0 @@
1
- interface ContextProps {
2
- expanded: boolean;
3
- toggle: (event: React.SyntheticEvent) => void;
4
- id: string;
5
- }
6
- export declare const AccordionItemContext: import("react").Context<Partial<ContextProps>>;
7
- export {};
@@ -1,3 +0,0 @@
1
- import { createContext } from "react";
2
- const AccordionItemContext = /*#__PURE__*/ createContext({});
3
- export { AccordionItemContext };
@@ -1,76 +0,0 @@
1
- .fr-accordion-item-body {
2
- height: 0;
3
- transition: height .3s cubic-bezier(.4, 0, .2, 1);
4
- overflow: hidden;
5
- }
6
-
7
- .fr-accordion-item-body > :first-child:not(.fr-accordion-item-body-spacer-bottom):not(.fr-accordion) {
8
- margin-top: 0 !important;
9
- padding-top: 0 !important;
10
- }
11
-
12
- .fr-accordion-item-body > :not(.fr-accordion) {
13
- margin-right: 0;
14
- }
15
-
16
- .fr-accordion-item-body-content {
17
- margin-right: 64px;
18
- }
19
-
20
- .fr-accordion-item-body-spacer-bottom {
21
- width: 0;
22
- height: 0;
23
- margin-top: 24px;
24
- }
25
-
26
- .fr-accordion-item-body .fr-accordion {
27
- margin-top: 64px;
28
- margin-bottom: 24px;
29
- }
30
-
31
- .fr-accordion-item-body .fr-accordion-item-link {
32
- display: block;
33
- top: 8px;
34
- }
35
-
36
- .fr-accordion-item-body .fr-accordion-item-header {
37
- padding-top: 32px;
38
- padding-right: 32px;
39
- }
40
-
41
- .fr-accordion-item-body .fr-accordion-item:after {
42
- background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxNnYxNkgweiIvPjxwYXRoIGZpbGw9IiMwMDkxREMiIGQ9Ik04IDEwLjcwNyAzLjY0NiA2LjM1NGwuNzA4LS43MDhMOCA5LjI5M2wzLjY0Ni0zLjY0Ny43MDguNzA4TDggMTAuNzA3eiIvPjwvc3ZnPg==);
43
- width: 16px;
44
- height: 16px;
45
- top: 12px;
46
- right: 4px;
47
- }
48
-
49
- .fr-accordion-item-body .fr-accordion-item--expanded:before {
50
- background-color: #0000;
51
- }
52
-
53
- @media (width >= 600px) {
54
- .fr-accordion-item-body > :not(.fng-accordion) {
55
- margin-right: 64px;
56
- }
57
-
58
- .fr-accordion-item-body .fr-accordion-item-header {
59
- padding-top: 24px;
60
- padding-right: 168px;
61
- }
62
-
63
- .fr-accordion-item-body .fr-accordion-item-link {
64
- font-size: var(--fwe-font-size-base);
65
- white-space: nowrap;
66
- text-overflow: ellipsis;
67
- max-width: 128px;
68
- top: 24px;
69
- overflow: hidden;
70
- }
71
-
72
- .fr-accordion-item-body .fr-accordion-item:after {
73
- top: 30px;
74
- }
75
- }
76
-
@@ -1,2 +0,0 @@
1
- import './AccordionItemBody.scss';
2
- export declare const AccordionItemBody: (props: Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>) => React.ReactElement | null;
@@ -1,61 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import "./AccordionItemBody.css";
3
- import classnames from "classnames";
4
- import { forwardRef, useContext, useRef } from "react";
5
- import { Transition } from "react-transition-group";
6
- import { useForkRef } from "../../../../utils/useForkRef.js";
7
- import { AccordionItemContext } from "../AccordionItemContext.js";
8
- const AccordionItemBody = /*#__PURE__*/ forwardRef(({ children, className, ...props }, ref)=>{
9
- const { expanded, id } = useContext(AccordionItemContext);
10
- const innerRef = useRef(null);
11
- const element = innerRef.current;
12
- const combinedRef = useForkRef(ref, innerRef);
13
- const initialHeight = useRef(expanded ? 'auto' : 0);
14
- const handleEntering = ()=>{
15
- if (element) {
16
- const itemHeight = element.scrollHeight;
17
- element.style.height = `${itemHeight}px`;
18
- }
19
- };
20
- const handleEntered = ()=>{
21
- if (element) element.style.height = 'auto';
22
- };
23
- const handleExit = ()=>{
24
- if (element) {
25
- const itemHeight = element.scrollHeight;
26
- element.style.height = `${itemHeight}px`;
27
- }
28
- };
29
- const handleExiting = ()=>{
30
- setTimeout(()=>{
31
- if (element) element.style.height = '0px';
32
- });
33
- };
34
- return /*#__PURE__*/ jsx(Transition, {
35
- in: expanded,
36
- nodeRef: innerRef,
37
- timeout: 300,
38
- onExit: handleExit,
39
- onExiting: handleExiting,
40
- onEntering: handleEntering,
41
- onEntered: handleEntered,
42
- children: /*#__PURE__*/ jsxs("section", {
43
- ref: combinedRef,
44
- id: `${id}-body`,
45
- "aria-labelledby": `${id}-header`,
46
- className: classnames('fr-accordion-item-body', className),
47
- style: {
48
- height: initialHeight.current,
49
- minHeight: 0
50
- },
51
- ...props,
52
- children: [
53
- children,
54
- /*#__PURE__*/ jsx("div", {
55
- className: "fr-accordion-item-body-spacer-bottom"
56
- })
57
- ]
58
- })
59
- });
60
- });
61
- export { AccordionItemBody };
@@ -1,11 +0,0 @@
1
- .fr-accordion-item-header {
2
- cursor: pointer;
3
- background: none;
4
- border: none;
5
- align-items: center;
6
- width: 100%;
7
- min-height: 48px;
8
- padding: 24px 64px 24px 0;
9
- display: flex;
10
- }
11
-
@@ -1,2 +0,0 @@
1
- import './AccordionItemHeader.scss';
2
- export declare const AccordionItemHeader: (props: Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>) => React.ReactElement | null;
@@ -1,20 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import "./AccordionItemHeader.css";
3
- import classnames from "classnames";
4
- import { forwardRef, useContext } from "react";
5
- import { AccordionItemContext } from "../AccordionItemContext.js";
6
- const AccordionItemHeader = /*#__PURE__*/ forwardRef(({ children, className, ...props }, ref)=>{
7
- const { toggle, id, expanded } = useContext(AccordionItemContext);
8
- return /*#__PURE__*/ jsx("button", {
9
- ref: ref,
10
- type: "button",
11
- className: classnames('fr-accordion-item-header', className),
12
- id: `${id}-header`,
13
- "aria-controls": `${id}-body`,
14
- "aria-expanded": expanded,
15
- onClick: toggle,
16
- ...props,
17
- children: children
18
- });
19
- });
20
- export { AccordionItemHeader };
@@ -1,18 +0,0 @@
1
- .fr-bottom-sheet-drag-handle-container {
2
- cursor: pointer;
3
- background: none;
4
- border: none;
5
- width: 100%;
6
- margin: 0;
7
- padding: 0;
8
- }
9
-
10
- .fr-bottom-sheet-drag-handle-container:focus {
11
- outline: none;
12
- }
13
-
14
- .fr-bottom-sheet-drag-handle-container:focus-visible {
15
- outline: 2px solid var(--fwe-hero);
16
- outline-offset: 2px;
17
- }
18
-
@@ -1,11 +0,0 @@
1
- import './BottomSheet.scss';
2
- import { type PropsWithChildren } from 'react';
3
- export interface BottomSheetProps extends PropsWithChildren {
4
- readonly defaultExpanded?: boolean;
5
- readonly open?: boolean;
6
- readonly expandFrom?: 'center' | 'bottom';
7
- readonly hasBackdrop?: boolean;
8
- readonly hideCloseIcon?: boolean;
9
- readonly onOpenChange?: (value: boolean) => void;
10
- }
11
- export declare function BottomSheet({ children, open, defaultExpanded, expandFrom, hasBackdrop, hideCloseIcon, onOpenChange, }: BottomSheetProps): import("react/jsx-runtime").JSX.Element;
@@ -1,101 +0,0 @@
1
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
- import "./BottomSheet.css";
3
- import classnames from "classnames";
4
- import { useState } from "react";
5
- function BottomSheet({ children, open, defaultExpanded, expandFrom = 'center', hasBackdrop = true, hideCloseIcon, onOpenChange }) {
6
- const [expanded, setExpanded] = useState(defaultExpanded);
7
- const [isClosing, setIsClosing] = useState(false);
8
- const [startY, setStartY] = useState(0);
9
- const [swiping, setSwiping] = useState(false);
10
- function toggleExpand() {
11
- const newExpanded = !expanded;
12
- setExpanded(newExpanded);
13
- }
14
- function closeBottomSheet() {
15
- setIsClosing(true);
16
- setExpanded(defaultExpanded);
17
- setTimeout(()=>{
18
- setIsClosing(false);
19
- onOpenChange?.(false);
20
- }, 300);
21
- }
22
- const handleTouchStart = (event)=>{
23
- setStartY(event.touches[0].clientY);
24
- setSwiping(true);
25
- };
26
- const handleTouchMove = (event)=>{
27
- if (!swiping) return;
28
- const currentY = event.touches[0].clientY;
29
- const deltaY = currentY - startY;
30
- if (deltaY < -50 && !expanded) {
31
- setExpanded(true);
32
- setSwiping(false);
33
- } else if (deltaY > 50 && expanded) {
34
- setExpanded(false);
35
- setSwiping(false);
36
- } else if (deltaY > 100 && !expanded) {
37
- closeBottomSheet();
38
- setSwiping(false);
39
- }
40
- };
41
- return /*#__PURE__*/ jsxs(Fragment, {
42
- children: [
43
- /*#__PURE__*/ jsx("div", {
44
- "aria-hidden": "true",
45
- className: classnames('fwe-bottom-sheet-backdrop', {
46
- 'fwe-bottom-sheet-backdrop--visible': hasBackdrop && open && !isClosing
47
- }),
48
- tabIndex: -1,
49
- onClick: closeBottomSheet,
50
- onKeyDown: (e)=>{
51
- if ('Enter' === e.key || ' ' === e.key) {
52
- e.preventDefault();
53
- closeBottomSheet();
54
- }
55
- }
56
- }),
57
- /*#__PURE__*/ jsxs("div", {
58
- className: classnames('fwe-bottom-sheet-container', {
59
- 'fwe-bottom-sheet-container--open': open,
60
- 'fwe-bottom-sheet-container--expanded': expanded,
61
- 'fwe-bottom-sheet-container--expand-from-center': 'center' === expandFrom,
62
- 'fwe-bottom-sheet-container--with-backdrop': hasBackdrop,
63
- 'fwe-bottom-sheet-container--closing': isClosing
64
- }),
65
- onTouchStart: handleTouchStart,
66
- onTouchMove: handleTouchMove,
67
- children: [
68
- /*#__PURE__*/ jsxs("div", {
69
- className: "fwe-bottom-sheet-header",
70
- children: [
71
- /*#__PURE__*/ jsx("button", {
72
- type: "button",
73
- className: "fr-bottom-sheet-drag-handle-container fwe-bottom-sheet-drag-handle-container",
74
- "aria-label": expanded ? 'Collapse bottom sheet' : 'Expand bottom sheet',
75
- "aria-expanded": expanded,
76
- onClick: toggleExpand,
77
- children: /*#__PURE__*/ jsx("div", {
78
- className: "fwe-bottom-sheet-drag-handle"
79
- })
80
- }),
81
- !hideCloseIcon && /*#__PURE__*/ jsx("button", {
82
- type: "button",
83
- className: "fwe-bottom-sheet-close-btn",
84
- onClick: closeBottomSheet,
85
- children: /*#__PURE__*/ jsx("span", {
86
- className: "fwe-sr-only",
87
- children: "Close"
88
- })
89
- })
90
- ]
91
- }),
92
- /*#__PURE__*/ jsx("div", {
93
- className: "fwe-bottom-sheet-content",
94
- children: children
95
- })
96
- ]
97
- })
98
- ]
99
- });
100
- }
101
- export { BottomSheet };
@@ -1,14 +0,0 @@
1
- import React from 'react';
2
- import type { ClassNamePropsWithChildren } from '../../utils/types';
3
- export interface BreadcrumbLocation {
4
- label: string;
5
- url: string;
6
- }
7
- export interface BreadcrumbProps extends ClassNamePropsWithChildren {
8
- readonly locations?: BreadcrumbLocation[];
9
- readonly onClick?: (event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;
10
- }
11
- /**
12
- * Breadcrumb navigation can be used on pages with multiple navigation levels.
13
- */
14
- export declare function Breadcrumb({ locations, onClick, children, className, }: BreadcrumbProps): import("react/jsx-runtime").JSX.Element;