@festo-ui/react 9.0.0-dev.722 → 9.0.0-dev.724

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 (232) hide show
  1. package/dist/components/accordion/Accordion.css +4 -0
  2. package/dist/components/accordion/Accordion.d.ts +10 -0
  3. package/dist/components/accordion/Accordion.js +41 -0
  4. package/dist/components/accordion/AccordionContext.d.ts +11 -0
  5. package/dist/components/accordion/AccordionContext.js +3 -0
  6. package/dist/components/accordion/accordion-header/AccordionHeader.css +11 -0
  7. package/dist/components/accordion/accordion-header/AccordionHeader.d.ts +2 -0
  8. package/dist/components/accordion/accordion-header/AccordionHeader.js +11 -0
  9. package/dist/components/accordion/accordion-item/AccordionItem.css +64 -0
  10. package/dist/components/accordion/accordion-item/AccordionItem.d.ts +8 -0
  11. package/dist/components/accordion/accordion-item/AccordionItem.js +60 -0
  12. package/dist/components/accordion/accordion-item/AccordionItemContext.d.ts +7 -0
  13. package/dist/components/accordion/accordion-item/AccordionItemContext.js +3 -0
  14. package/dist/components/accordion/accordion-item/accordion-item-body/AccordionItemBody.css +76 -0
  15. package/dist/components/accordion/accordion-item/accordion-item-body/AccordionItemBody.d.ts +2 -0
  16. package/dist/components/accordion/accordion-item/accordion-item-body/AccordionItemBody.js +61 -0
  17. package/dist/components/accordion/accordion-item/accordion-item-header/AccordionItemHeader.css +11 -0
  18. package/dist/components/accordion/accordion-item/accordion-item-header/AccordionItemHeader.d.ts +2 -0
  19. package/dist/components/accordion/accordion-item/accordion-item-header/AccordionItemHeader.js +20 -0
  20. package/dist/components/bottom-sheet/BottomSheet.css +18 -0
  21. package/dist/components/bottom-sheet/BottomSheet.d.ts +12 -0
  22. package/dist/components/bottom-sheet/BottomSheet.js +101 -0
  23. package/dist/components/breadcrumb/Breadcrumb.d.ts +13 -0
  24. package/dist/components/breadcrumb/Breadcrumb.js +32 -0
  25. package/dist/components/button/Button.d.ts +11 -0
  26. package/dist/components/button/Button.js +36 -0
  27. package/dist/components/card/Card.d.ts +4 -0
  28. package/dist/components/card/Card.js +9 -0
  29. package/dist/components/card/CardBody.d.ts +5 -0
  30. package/dist/components/card/CardBody.js +15 -0
  31. package/dist/components/card/CardHeader.d.ts +8 -0
  32. package/dist/components/card/CardHeader.js +31 -0
  33. package/dist/components/card/CardHeader.stories.helper.js +7 -0
  34. package/dist/components/card/CardNotification.d.ts +6 -0
  35. package/dist/components/card/CardNotification.js +26 -0
  36. package/dist/components/chips/chip/Chip.d.ts +17 -0
  37. package/dist/components/chips/chip/Chip.js +38 -0
  38. package/dist/components/chips/chip-container/ChipContainer.d.ts +5 -0
  39. package/dist/components/chips/chip-container/ChipContainer.js +12 -0
  40. package/dist/components/icon-wrapper/IconWrapper.d.ts +3 -0
  41. package/dist/components/icon-wrapper/IconWrapper.js +13 -0
  42. package/dist/components/link-button/LinkButton.d.ts +8 -0
  43. package/dist/components/link-button/LinkButton.js +26 -0
  44. package/dist/components/loading-indicator/LoadingIndicator.d.ts +5 -0
  45. package/dist/components/loading-indicator/LoadingIndicator.js +41 -0
  46. package/dist/components/mobile-flyout/MobileFlyout.d.ts +11 -0
  47. package/dist/components/mobile-flyout/MobileFlyout.js +88 -0
  48. package/dist/components/mobile-flyout/MobileFlyoutContext.d.ts +8 -0
  49. package/dist/components/mobile-flyout/MobileFlyoutContext.js +3 -0
  50. package/dist/components/mobile-flyout/mobile-flyout-item/MobileFlyoutItem.d.ts +17 -0
  51. package/dist/components/mobile-flyout/mobile-flyout-item/MobileFlyoutItem.js +36 -0
  52. package/dist/components/mobile-flyout/mobile-flyout-page/MobileFlyoutPage.css +5 -0
  53. package/dist/components/mobile-flyout/mobile-flyout-page/MobileFlyoutPage.d.ts +8 -0
  54. package/dist/components/mobile-flyout/mobile-flyout-page/MobileFlyoutPage.js +35 -0
  55. package/dist/components/modals/AlertModal.d.ts +12 -0
  56. package/dist/components/modals/AlertModal.js +53 -0
  57. package/dist/components/modals/ConfirmModal.d.ts +11 -0
  58. package/dist/components/modals/ConfirmModal.js +46 -0
  59. package/dist/components/modals/CustomModal.d.ts +8 -0
  60. package/dist/components/modals/CustomModal.js +38 -0
  61. package/dist/components/modals/Modal.css +39 -0
  62. package/dist/components/modals/Modal.d.ts +8 -0
  63. package/dist/components/modals/Modal.js +31 -0
  64. package/dist/components/modals/ModalBase.d.ts +9 -0
  65. package/dist/components/modals/ModalBase.js +124 -0
  66. package/dist/components/modals/ModalFooter.d.ts +2 -0
  67. package/dist/components/modals/ModalFooter.js +12 -0
  68. package/dist/components/modals/Prompt.d.ts +15 -0
  69. package/dist/components/modals/Prompt.js +58 -0
  70. package/dist/components/modals/image-gallery/ImageGallery.css +800 -0
  71. package/dist/components/modals/image-gallery/ImageGallery.d.ts +18 -0
  72. package/dist/components/modals/image-gallery/ImageGallery.helper.d.ts +2 -0
  73. package/dist/components/modals/image-gallery/ImageGallery.helper.js +13 -0
  74. package/dist/components/modals/image-gallery/ImageGallery.js +75 -0
  75. package/dist/components/modals/image-gallery/ImageGallery.stories.helper.js +112 -0
  76. package/dist/components/modals/image-gallery/ImageGalleryContent.d.ts +9 -0
  77. package/dist/components/modals/image-gallery/ImageGalleryContent.js +15 -0
  78. package/dist/components/modals/image-gallery/ImageGalleryContext.d.ts +10 -0
  79. package/dist/components/modals/image-gallery/ImageGalleryContext.js +4 -0
  80. package/dist/components/modals/image-gallery/ImageGallerySwiper.d.ts +9 -0
  81. package/dist/components/modals/image-gallery/ImageGallerySwiper.js +39 -0
  82. package/dist/components/modals/image-gallery/ImageGalleryThumbsSwiper.d.ts +6 -0
  83. package/dist/components/modals/image-gallery/ImageGalleryThumbsSwiper.js +33 -0
  84. package/dist/components/modals/image-gallery/internal/BaseGallery.d.ts +15 -0
  85. package/dist/components/modals/image-gallery/internal/BaseGallery.js +35 -0
  86. package/dist/components/modals/image-gallery/internal/CloseButton.d.ts +6 -0
  87. package/dist/components/modals/image-gallery/internal/CloseButton.js +14 -0
  88. package/dist/components/modals/image-gallery/internal/ImageGalleryContainer.d.ts +5 -0
  89. package/dist/components/modals/image-gallery/internal/ImageGalleryContainer.js +8 -0
  90. package/dist/components/modals/image-gallery/internal/ImageGalleryPagination.d.ts +5 -0
  91. package/dist/components/modals/image-gallery/internal/ImageGalleryPagination.js +29 -0
  92. package/dist/components/modals/image-gallery/internal/ScaleButton.d.ts +4 -0
  93. package/dist/components/modals/image-gallery/internal/ScaleButton.js +17 -0
  94. package/dist/components/pagination/Pagination.css +10 -0
  95. package/dist/components/pagination/Pagination.d.ts +15 -0
  96. package/dist/components/pagination/Pagination.js +100 -0
  97. package/dist/components/popovers/legend/Legend.css +21 -0
  98. package/dist/components/popovers/legend/Legend.d.ts +11 -0
  99. package/dist/components/popovers/legend/Legend.js +24 -0
  100. package/dist/components/popovers/popover/Popover.css +56 -0
  101. package/dist/components/popovers/popover/Popover.d.ts +20 -0
  102. package/dist/components/popovers/popover/Popover.js +106 -0
  103. package/dist/components/popovers/popover-menu/PopoverMenu.css +20 -0
  104. package/dist/components/popovers/popover-menu/PopoverMenu.d.ts +8 -0
  105. package/dist/components/popovers/popover-menu/PopoverMenu.js +37 -0
  106. package/dist/components/popovers/popover-menu/PopoverMenuContext.d.ts +3 -0
  107. package/dist/components/popovers/popover-menu/PopoverMenuContext.js +5 -0
  108. package/dist/components/popovers/popover-menu-item/PopoverMenuItem.css +35 -0
  109. package/dist/components/popovers/popover-menu-item/PopoverMenuItem.d.ts +10 -0
  110. package/dist/components/popovers/popover-menu-item/PopoverMenuItem.js +30 -0
  111. package/dist/components/popovers/tooltip/Tooltip.d.ts +5 -0
  112. package/dist/components/popovers/tooltip/Tooltip.js +12 -0
  113. package/dist/components/progress/Progress.d.ts +7 -0
  114. package/dist/components/progress/Progress.js +26 -0
  115. package/dist/components/search-input/ClearButton.d.ts +2 -0
  116. package/dist/components/search-input/ClearButton.js +10 -0
  117. package/dist/components/search-input/SearchInput.css +13 -0
  118. package/dist/components/search-input/SearchInput.d.ts +14 -0
  119. package/dist/components/search-input/SearchInput.js +61 -0
  120. package/dist/components/search-input/SearchSuggestion.d.ts +17 -0
  121. package/dist/components/search-input/SearchSuggestion.js +21 -0
  122. package/dist/components/search-input/useSearchInput.d.ts +13 -0
  123. package/dist/components/search-input/useSearchInput.js +85 -0
  124. package/dist/components/snackbar/Snackbar.css +55 -0
  125. package/dist/components/snackbar/Snackbar.d.ts +21 -0
  126. package/dist/components/snackbar/Snackbar.js +78 -0
  127. package/dist/components/snackbar/SnackbarContext.d.ts +7 -0
  128. package/dist/components/snackbar/SnackbarContext.js +3 -0
  129. package/dist/components/snackbar/SnackbarProvider.d.ts +8 -0
  130. package/dist/components/snackbar/SnackbarProvider.js +66 -0
  131. package/dist/components/snackbar/useSnackbar.d.ts +2 -0
  132. package/dist/components/snackbar/useSnackbar.js +4 -0
  133. package/dist/components/stepper-horizontal/StepperHorizontal.css +6 -0
  134. package/dist/components/stepper-horizontal/StepperHorizontal.d.ts +7 -0
  135. package/dist/components/stepper-horizontal/StepperHorizontal.js +48 -0
  136. package/dist/components/stepper-horizontal/step-horizontal/StepHorizontal.css +24 -0
  137. package/dist/components/stepper-horizontal/step-horizontal/StepHorizontal.d.ts +6 -0
  138. package/dist/components/stepper-horizontal/step-horizontal/StepHorizontal.js +16 -0
  139. package/dist/components/stepper-vertical/StepperVertical.d.ts +6 -0
  140. package/dist/components/stepper-vertical/StepperVertical.js +26 -0
  141. package/dist/components/stepper-vertical/step-vertical/StepVertical.css +10 -0
  142. package/dist/components/stepper-vertical/step-vertical/StepVertical.d.ts +11 -0
  143. package/dist/components/stepper-vertical/step-vertical/StepVertical.js +58 -0
  144. package/dist/components/tab/Tabs.css +285 -0
  145. package/dist/components/tab/Tabs.d.ts +23 -0
  146. package/dist/components/tab/Tabs.js +194 -0
  147. package/dist/components/tab/interfaces.d.ts +5 -0
  148. package/dist/components/tab/interfaces.js +0 -0
  149. package/dist/components/tab/tab-pane/TabPane.css +8 -0
  150. package/dist/components/tab/tab-pane/TabPane.d.ts +9 -0
  151. package/dist/components/tab/tab-pane/TabPane.js +18 -0
  152. package/dist/components/tab/useTabScroll.d.ts +25 -0
  153. package/dist/components/tab/useTabScroll.js +151 -0
  154. package/dist/components/table-header-cell/TableHeaderCell.d.ts +5 -0
  155. package/dist/components/table-header-cell/TableHeaderCell.js +21 -0
  156. package/dist/forms/checkbox/Checkbox.css +134 -0
  157. package/dist/forms/checkbox/Checkbox.d.ts +15 -0
  158. package/dist/forms/checkbox/Checkbox.js +80 -0
  159. package/dist/forms/radio/RadioButton.d.ts +14 -0
  160. package/dist/forms/radio/RadioButton.js +61 -0
  161. package/dist/forms/radio/RadioGroup.d.ts +12 -0
  162. package/dist/forms/radio/RadioGroup.js +50 -0
  163. package/dist/forms/radio/RadioGroupContext.d.ts +12 -0
  164. package/dist/forms/radio/RadioGroupContext.js +3 -0
  165. package/dist/forms/segment/Segment.d.ts +13 -0
  166. package/dist/forms/segment/Segment.js +59 -0
  167. package/dist/forms/segment/segment-control/SegmentControl.d.ts +14 -0
  168. package/dist/forms/segment/segment-control/SegmentControl.js +57 -0
  169. package/dist/forms/select/Select.css +160 -0
  170. package/dist/forms/select/Select.d.ts +26 -0
  171. package/dist/forms/select/Select.js +95 -0
  172. package/dist/forms/select/internal/HiddenInput.d.ts +8 -0
  173. package/dist/forms/select/internal/HiddenInput.js +15 -0
  174. package/dist/forms/select/internal/ListItem.d.ts +18 -0
  175. package/dist/forms/select/internal/ListItem.js +69 -0
  176. package/dist/forms/select/internal/SelectButton.d.ts +12 -0
  177. package/dist/forms/select/internal/SelectButton.js +49 -0
  178. package/dist/forms/select/internal/SelectButtonContent.d.ts +7 -0
  179. package/dist/forms/select/internal/SelectButtonContent.js +31 -0
  180. package/dist/forms/select/internal/SelectCheckbox.d.ts +4 -0
  181. package/dist/forms/select/internal/SelectCheckbox.js +13 -0
  182. package/dist/forms/select/internal/SelectLabel.d.ts +7 -0
  183. package/dist/forms/select/internal/SelectLabel.js +12 -0
  184. package/dist/forms/select/internal/SelectOptionsContainer.d.ts +17 -0
  185. package/dist/forms/select/internal/SelectOptionsContainer.js +103 -0
  186. package/dist/forms/select/internal/SelectScrollContainer.d.ts +8 -0
  187. package/dist/forms/select/internal/SelectScrollContainer.js +15 -0
  188. package/dist/forms/select/internal/SelectWrapper.d.ts +6 -0
  189. package/dist/forms/select/internal/SelectWrapper.js +12 -0
  190. package/dist/forms/select/internal/index.d.ts +6 -0
  191. package/dist/forms/select/internal/index.js +7 -0
  192. package/dist/forms/select/internal/utils.d.ts +7 -0
  193. package/dist/forms/select/internal/utils.js +30 -0
  194. package/dist/forms/select/select-option/SelectOption.d.ts +14 -0
  195. package/dist/forms/select/select-option/SelectOption.js +12 -0
  196. package/dist/forms/select/utils.d.ts +2 -0
  197. package/dist/forms/select/utils.js +12 -0
  198. package/dist/forms/slider/Slider.css +50 -0
  199. package/dist/forms/slider/Slider.d.ts +17 -0
  200. package/dist/forms/slider/Slider.js +93 -0
  201. package/dist/forms/switch/Switch.d.ts +12 -0
  202. package/dist/forms/switch/Switch.js +42 -0
  203. package/dist/forms/text-area/TextArea.css +14 -0
  204. package/dist/forms/text-area/TextArea.d.ts +22 -0
  205. package/dist/forms/text-area/TextArea.js +99 -0
  206. package/dist/forms/text-input/TextInput.d.ts +24 -0
  207. package/dist/forms/text-input/TextInput.js +74 -0
  208. package/dist/forms/time-picker/TimePicker.css +10 -0
  209. package/dist/forms/time-picker/TimePicker.d.ts +24 -0
  210. package/dist/forms/time-picker/TimePicker.js +140 -0
  211. package/dist/forms/time-picker/time-picker-dropdown/TimePickerDropdown.css +4 -0
  212. package/dist/forms/time-picker/time-picker-dropdown/TimePickerDropdown.d.ts +19 -0
  213. package/dist/forms/time-picker/time-picker-dropdown/TimePickerDropdown.js +202 -0
  214. package/dist/forms/time-picker/time-picker-dropdown/TimePickerInput.d.ts +9 -0
  215. package/dist/forms/time-picker/time-picker-dropdown/TimePickerInput.js +14 -0
  216. package/dist/index.d.ts +62 -0
  217. package/dist/index.js +59 -0
  218. package/dist/utils/index.d.ts +1 -0
  219. package/dist/utils/index.js +7 -0
  220. package/dist/utils/setRef.d.ts +1 -0
  221. package/dist/utils/setRef.js +5 -0
  222. package/dist/utils/types.d.ts +29 -0
  223. package/dist/utils/types.js +0 -0
  224. package/dist/utils/useControlled.d.ts +7 -0
  225. package/dist/utils/useControlled.js +20 -0
  226. package/dist/utils/useForkRef.d.ts +2 -0
  227. package/dist/utils/useForkRef.js +15 -0
  228. package/dist/utils/useId.d.ts +1 -0
  229. package/dist/utils/useId.js +20 -0
  230. package/dist/utils/useOnClickOutside.d.ts +2 -0
  231. package/dist/utils/useOnClickOutside.js +20 -0
  232. package/package.json +1 -1
@@ -0,0 +1,18 @@
1
+ import './ImageGallery.scss';
2
+ import { type ComponentPropsWithoutRef } from 'react';
3
+ import { type ModalBaseProps } from '../ModalBase';
4
+ import { type ImageGalleryItemData } from './internal/BaseGallery';
5
+ export interface ImageGalleryProps extends ComponentPropsWithoutRef<'div'>, ModalBaseProps {
6
+ /** Index number of initial slide. */
7
+ startIndex: number;
8
+ images?: ImageGalleryItemData[];
9
+ thumbnailImages?: ImageGalleryItemData[];
10
+ /** Whether to show pagination controls. Can also accept a number in case images are passed as children */
11
+ pagination?: boolean | number;
12
+ showScaleButton?: boolean;
13
+ /** Whether to show descriptive content). Can also be used as a render prop called with the index of the current image */
14
+ descriptiveContent?: boolean | ((index: number) => React.ReactNode);
15
+ onSlideChanged?: (index: number) => void;
16
+ onScaleChange?: (value: boolean) => void;
17
+ }
18
+ export declare const ImageGallery: (props: ImageGalleryProps & import("react").RefAttributes<HTMLImageElement>) => React.ReactElement | null;
@@ -0,0 +1,2 @@
1
+ import { type Argument } from 'classnames';
2
+ export declare const getClasses: (thumbnailImages: Argument, descriptiveContent: Argument, className: Argument) => string;
@@ -0,0 +1,13 @@
1
+ import classnames from "classnames";
2
+ const getClasses = (thumbnailImages, descriptiveContent, className)=>{
3
+ const base = 'fwe-modal-image-gallery';
4
+ const thumbnail = `${base}--with-thumbnails`;
5
+ const container = `${base}--with-container`;
6
+ return classnames(base, {
7
+ [thumbnail]: [
8
+ thumbnailImages
9
+ ],
10
+ [container]: descriptiveContent
11
+ }, className);
12
+ };
13
+ export { getClasses };
@@ -0,0 +1,75 @@
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import "./ImageGallery.css";
3
+ import { forwardRef, useState } from "react";
4
+ import { ModalBase } from "../ModalBase.js";
5
+ import { getClasses } from "./ImageGallery.helper.js";
6
+ import { ImageGalleryContent } from "./ImageGalleryContent.js";
7
+ import { BaseGallery } from "./internal/BaseGallery.js";
8
+ import { CloseButton } from "./internal/CloseButton.js";
9
+ import { ImageGalleryContainer } from "./internal/ImageGalleryContainer.js";
10
+ import { ImageGalleryPagination } from "./internal/ImageGalleryPagination.js";
11
+ import { ScaleButton } from "./internal/ScaleButton.js";
12
+ function getLength(pagination, images) {
13
+ let length = 0;
14
+ if ('number' == typeof pagination) length = pagination;
15
+ else if (true === pagination && images?.length) length = images.length;
16
+ return length;
17
+ }
18
+ const ImageGallery = /*#__PURE__*/ forwardRef(({ isOpen, startIndex, images, thumbnailImages, descriptiveContent, children, className, pagination, showScaleButton, onClose, onSlideChanged, onScaleChange, ...props }, ref)=>{
19
+ const [currentIndex, setCurrentIndex] = useState(startIndex + 1);
20
+ function handleChange(index) {
21
+ setCurrentIndex(index + 1);
22
+ onSlideChanged?.(index);
23
+ }
24
+ function handleClose() {
25
+ setCurrentIndex(startIndex + 1);
26
+ onClose?.();
27
+ }
28
+ const hasDescriptiveContent = Boolean(descriptiveContent);
29
+ const classes = getClasses(thumbnailImages, hasDescriptiveContent, className);
30
+ const length = getLength(pagination, images);
31
+ return /*#__PURE__*/ jsx(ModalBase, {
32
+ onClose: handleClose,
33
+ className: classes,
34
+ ...props,
35
+ isOpen: isOpen,
36
+ ref: ref,
37
+ children: isOpen && /*#__PURE__*/ jsxs(Fragment, {
38
+ children: [
39
+ /*#__PURE__*/ jsxs("div", {
40
+ className: "fwe-image-gallery-header",
41
+ children: [
42
+ /*#__PURE__*/ jsx(ImageGalleryPagination, {
43
+ currentIndex: currentIndex,
44
+ length: length
45
+ }),
46
+ showScaleButton ? /*#__PURE__*/ jsx(ScaleButton, {
47
+ onScaleChange: onScaleChange
48
+ }) : null,
49
+ /*#__PURE__*/ jsx(CloseButton, {
50
+ showScaleButton: showScaleButton,
51
+ onClose: onClose
52
+ })
53
+ ]
54
+ }),
55
+ /*#__PURE__*/ jsxs(ImageGalleryContainer, {
56
+ descriptiveContent: hasDescriptiveContent,
57
+ children: [
58
+ /*#__PURE__*/ jsx(BaseGallery, {
59
+ startIndex: startIndex,
60
+ images: images,
61
+ thumbnailImages: thumbnailImages,
62
+ onSlideChanged: handleChange,
63
+ children: children
64
+ }),
65
+ images && hasDescriptiveContent && /*#__PURE__*/ jsx(ImageGalleryContent, {
66
+ imageContent: images?.[currentIndex - 1]?.imageContent
67
+ }),
68
+ 'function' == typeof descriptiveContent ? descriptiveContent?.(currentIndex - 1) : null
69
+ ]
70
+ })
71
+ ]
72
+ })
73
+ });
74
+ });
75
+ export { ImageGallery };
@@ -0,0 +1,112 @@
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import gallery_01 from "../../../../../web-essentials/stories/assets/gallery-01.webp";
3
+ import gallery_02 from "../../../../../web-essentials/stories/assets/gallery-02.webp";
4
+ import gallery_03 from "../../../../../web-essentials/stories/assets/gallery-03.webp";
5
+ import gallery_04 from "../../../../../web-essentials/stories/assets/gallery-04.webp";
6
+ import gallery_05 from "../../../../../web-essentials/stories/assets/gallery-05.webp";
7
+ import gallery_06 from "../../../../../web-essentials/stories/assets/gallery-06.webp";
8
+ import gallery_07 from "../../../../../web-essentials/stories/assets/gallery-07.webp";
9
+ import gallery_08 from "../../../../../web-essentials/stories/assets/gallery-08.webp";
10
+ import gallery_09 from "../../../../../web-essentials/stories/assets/gallery-09.webp";
11
+ import gallery_10 from "../../../../../web-essentials/stories/assets/gallery-10.webp";
12
+ const ImageGallery_stories_helper_images = [
13
+ {
14
+ src: gallery_01,
15
+ alt: 'Asset1',
16
+ imageContent: {
17
+ title: 'Asset 1',
18
+ body: "Asset 1 description"
19
+ }
20
+ },
21
+ {
22
+ src: gallery_02,
23
+ alt: 'Asset2',
24
+ containMode: true,
25
+ imageContent: {
26
+ title: 'Asset 2',
27
+ body: /*#__PURE__*/ jsxs(Fragment, {
28
+ children: [
29
+ /*#__PURE__*/ jsx("p", {
30
+ children: "Asset 2 description with some html inside."
31
+ }),
32
+ /*#__PURE__*/ jsxs("ul", {
33
+ children: [
34
+ /*#__PURE__*/ jsx("li", {
35
+ children: "bullet point 1"
36
+ }),
37
+ /*#__PURE__*/ jsx("li", {
38
+ children: "bullet point 2"
39
+ })
40
+ ]
41
+ })
42
+ ]
43
+ })
44
+ }
45
+ },
46
+ {
47
+ src: gallery_03,
48
+ alt: 'Asset3',
49
+ containMode: true,
50
+ imageContent: {
51
+ title: 'Asset 3',
52
+ body: "Asset 3 description"
53
+ }
54
+ },
55
+ {
56
+ src: gallery_04,
57
+ alt: 'Asset4',
58
+ imageContent: {
59
+ title: 'Asset 4',
60
+ body: "Asset 4 description"
61
+ }
62
+ },
63
+ {
64
+ src: gallery_05,
65
+ alt: 'Asset5',
66
+ imageContent: {
67
+ title: 'Asset 5',
68
+ body: "Asset 5 description"
69
+ }
70
+ },
71
+ {
72
+ src: gallery_06,
73
+ alt: 'Asset6',
74
+ imageContent: {
75
+ title: 'Asset 6',
76
+ body: "Asset 6 description"
77
+ }
78
+ },
79
+ {
80
+ src: gallery_07,
81
+ alt: 'Asset7',
82
+ imageContent: {
83
+ title: 'Asset 7',
84
+ body: "Asset 7 description"
85
+ }
86
+ },
87
+ {
88
+ src: gallery_08,
89
+ alt: 'Asset8',
90
+ imageContent: {
91
+ title: 'Asset 8',
92
+ body: "Asset 8 description"
93
+ }
94
+ },
95
+ {
96
+ src: gallery_09,
97
+ alt: 'Asset9',
98
+ imageContent: {
99
+ title: 'Asset 9',
100
+ body: "Asset 9 description"
101
+ }
102
+ },
103
+ {
104
+ src: gallery_10,
105
+ alt: 'Asset10',
106
+ imageContent: {
107
+ title: 'Asset 10',
108
+ body: "Asset 10 description"
109
+ }
110
+ }
111
+ ];
112
+ export { ImageGallery_stories_helper_images as images };
@@ -0,0 +1,9 @@
1
+ export interface ImageDescriptiveContent {
2
+ title: string;
3
+ body: React.ReactNode;
4
+ }
5
+ interface ImageGalleryContentProps {
6
+ imageContent?: ImageDescriptiveContent;
7
+ }
8
+ export declare function ImageGalleryContent({ imageContent, }: ImageGalleryContentProps): import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,15 @@
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ function ImageGalleryContent({ imageContent }) {
3
+ return /*#__PURE__*/ jsx(Fragment, {
4
+ children: imageContent && /*#__PURE__*/ jsxs("div", {
5
+ className: "fwe-image-gallery-content",
6
+ children: [
7
+ /*#__PURE__*/ jsx("h3", {
8
+ children: imageContent.title
9
+ }),
10
+ imageContent.body
11
+ ]
12
+ })
13
+ });
14
+ }
15
+ export { ImageGalleryContent };
@@ -0,0 +1,10 @@
1
+ import type { Swiper as SwiperClass } from 'swiper';
2
+ interface ContextProps {
3
+ thumbsSwiper: SwiperClass | null;
4
+ setThumbsSwiper: React.Dispatch<React.SetStateAction<SwiperClass | null>>;
5
+ onSlideChanged?: (value: number) => void;
6
+ startIndex?: number;
7
+ }
8
+ export declare const ImageGalleryContext: import("react").Context<Partial<ContextProps>>;
9
+ export declare const SwiperContext: import("react").Context<"gallery" | "thumbs">;
10
+ export {};
@@ -0,0 +1,4 @@
1
+ import { createContext } from "react";
2
+ const ImageGalleryContext = createContext({});
3
+ const SwiperContext = createContext('gallery');
4
+ export { ImageGalleryContext, SwiperContext };
@@ -0,0 +1,9 @@
1
+ import type { ImageGalleryItemData } from './internal/BaseGallery';
2
+ interface ImageGallerySwiperProps {
3
+ readonly images?: ImageGalleryItemData[];
4
+ }
5
+ export declare function ImageGallerySwiper({ images }: ImageGallerySwiperProps): import("react/jsx-runtime").JSX.Element;
6
+ export declare namespace ImageGallerySwiper {
7
+ var displayName: string;
8
+ }
9
+ export {};
@@ -0,0 +1,39 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import classnames from "classnames";
3
+ import { useContext } from "react";
4
+ import { Navigation, Thumbs } from "swiper/modules";
5
+ import { Swiper, SwiperSlide } from "swiper/react";
6
+ import { ImageGalleryContext } from "./ImageGalleryContext.js";
7
+ function ImageGallerySwiper({ images }) {
8
+ const { thumbsSwiper, startIndex, onSlideChanged } = useContext(ImageGalleryContext);
9
+ return /*#__PURE__*/ jsx(Swiper, {
10
+ initialSlide: startIndex,
11
+ thumbs: {
12
+ swiper: thumbsSwiper
13
+ },
14
+ modules: [
15
+ Thumbs,
16
+ Navigation
17
+ ],
18
+ navigation: {
19
+ nextEl: '.fwe-navigate-btn-up',
20
+ prevEl: '.fwe-navigate-btn-down'
21
+ },
22
+ zoom: true,
23
+ className: "gallery-swiper fwe-image-gallery",
24
+ spaceBetween: 0,
25
+ onSlideChange: (slider)=>onSlideChanged?.(slider.activeIndex),
26
+ children: images?.map(({ containMode, alt, imageContent, ...image })=>/*#__PURE__*/ jsx(SwiperSlide, {
27
+ zoom: containMode,
28
+ children: /*#__PURE__*/ jsx("img", {
29
+ ...image,
30
+ className: classnames(image.className, {
31
+ 'fr-image-gallery-item-contain': containMode
32
+ }),
33
+ alt: alt
34
+ })
35
+ }, image.src))
36
+ });
37
+ }
38
+ ImageGallerySwiper.displayName = 'Swiper';
39
+ export { ImageGallerySwiper };
@@ -0,0 +1,6 @@
1
+ import type { ImageGalleryItemData } from './internal/BaseGallery';
2
+ interface ImageGalleryThumbsSwiperProps {
3
+ readonly images?: ImageGalleryItemData[];
4
+ }
5
+ export declare function ImageGalleryThumbsSwiper({ images, }: ImageGalleryThumbsSwiperProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,33 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import classnames from "classnames";
3
+ import { useContext } from "react";
4
+ import { Thumbs } from "swiper/modules";
5
+ import { Swiper, SwiperSlide } from "swiper/react";
6
+ import { ImageGalleryContext, SwiperContext } from "./ImageGalleryContext.js";
7
+ function ImageGalleryThumbsSwiper({ images }) {
8
+ const { setThumbsSwiper } = useContext(ImageGalleryContext);
9
+ return /*#__PURE__*/ jsx(SwiperContext.Provider, {
10
+ value: "thumbs",
11
+ children: /*#__PURE__*/ jsx(Swiper, {
12
+ freeMode: true,
13
+ slidesPerView: "auto",
14
+ className: "thumbs-swiper fwe-image-gallery-thumbs",
15
+ modules: [
16
+ Thumbs
17
+ ],
18
+ watchSlidesProgress: true,
19
+ onSwiper: setThumbsSwiper,
20
+ children: images?.map(({ containMode, alt, imageContent, ...image })=>/*#__PURE__*/ jsx(SwiperSlide, {
21
+ zoom: containMode,
22
+ children: /*#__PURE__*/ jsx("img", {
23
+ ...image,
24
+ className: classnames(image.className, {
25
+ 'fr-image-gallery-item-thumb-contain': containMode
26
+ }),
27
+ alt: alt
28
+ })
29
+ }, image.src))
30
+ })
31
+ });
32
+ }
33
+ export { ImageGalleryThumbsSwiper };
@@ -0,0 +1,15 @@
1
+ import { type ComponentPropsWithoutRef } from 'react';
2
+ import type { ClassNamePropsWithChildren } from '../../../../utils/types';
3
+ import type { ImageDescriptiveContent } from '../ImageGalleryContent';
4
+ export type ImageGalleryItemData = {
5
+ imageContent?: ImageDescriptiveContent;
6
+ containMode?: boolean;
7
+ } & ComponentPropsWithoutRef<'img'> & Record<string, unknown>;
8
+ interface BaseGalleryProps extends ClassNamePropsWithChildren {
9
+ readonly images?: ImageGalleryItemData[];
10
+ readonly thumbnailImages?: ImageGalleryItemData[];
11
+ readonly onSlideChanged?: (value: number) => void;
12
+ readonly startIndex?: number;
13
+ }
14
+ export declare function BaseGallery({ images, thumbnailImages, onSlideChanged, startIndex, children, }: BaseGalleryProps): import("react/jsx-runtime").JSX.Element;
15
+ export {};
@@ -0,0 +1,35 @@
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import { useMemo, useState } from "react";
3
+ import { ImageGalleryContext } from "../ImageGalleryContext.js";
4
+ import { ImageGallerySwiper } from "../ImageGallerySwiper.js";
5
+ import { ImageGalleryThumbsSwiper } from "../ImageGalleryThumbsSwiper.js";
6
+ function BaseGallery({ images, thumbnailImages, onSlideChanged, startIndex, children }) {
7
+ const [thumbsSwiper, setThumbsSwiper] = useState(null);
8
+ const contextValue = useMemo(()=>({
9
+ thumbsSwiper,
10
+ setThumbsSwiper,
11
+ onSlideChanged,
12
+ startIndex
13
+ }), [
14
+ thumbsSwiper,
15
+ onSlideChanged,
16
+ startIndex
17
+ ]);
18
+ return /*#__PURE__*/ jsx(ImageGalleryContext.Provider, {
19
+ value: contextValue,
20
+ children: /*#__PURE__*/ jsx("div", {
21
+ className: "fwe-image-gallery-wrapper",
22
+ children: children || /*#__PURE__*/ jsxs(Fragment, {
23
+ children: [
24
+ /*#__PURE__*/ jsx(ImageGallerySwiper, {
25
+ images: images
26
+ }),
27
+ thumbnailImages && /*#__PURE__*/ jsx(ImageGalleryThumbsSwiper, {
28
+ images: thumbnailImages
29
+ })
30
+ ]
31
+ })
32
+ })
33
+ });
34
+ }
35
+ export { BaseGallery };
@@ -0,0 +1,6 @@
1
+ interface CloseButtonProps {
2
+ onClose?: () => void;
3
+ showScaleButton?: boolean;
4
+ }
5
+ export declare function CloseButton({ onClose, showScaleButton }: CloseButtonProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,14 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import classnames from "classnames";
3
+ function CloseButton({ onClose, showScaleButton }) {
4
+ return /*#__PURE__*/ jsx("button", {
5
+ type: "button",
6
+ "aria-label": "close",
7
+ className: classnames('fwe-image-gallery-close-btn', {
8
+ 'fwe-ml-auto': !showScaleButton,
9
+ 'fwe-ml-3': showScaleButton
10
+ }),
11
+ onClick: onClose
12
+ });
13
+ }
14
+ export { CloseButton };
@@ -0,0 +1,5 @@
1
+ export interface ImageGalleryContainerProps {
2
+ children: React.ReactNode;
3
+ descriptiveContent?: boolean;
4
+ }
5
+ export declare function ImageGalleryContainer({ children, descriptiveContent, }: ImageGalleryContainerProps): string | number | boolean | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element | null | undefined;
@@ -0,0 +1,8 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ function ImageGalleryContainer({ children, descriptiveContent }) {
3
+ return descriptiveContent ? /*#__PURE__*/ jsx("div", {
4
+ className: "fwe-image-gallery-container",
5
+ children: children
6
+ }) : children;
7
+ }
8
+ export { ImageGalleryContainer };
@@ -0,0 +1,5 @@
1
+ export interface ImageGalleryPaginationProps {
2
+ currentIndex: number;
3
+ length?: number;
4
+ }
5
+ export declare function ImageGalleryPagination({ currentIndex, length, }: ImageGalleryPaginationProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,29 @@
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ function ImageGalleryPagination({ currentIndex, length }) {
3
+ return /*#__PURE__*/ jsx(Fragment, {
4
+ children: length && /*#__PURE__*/ jsxs("div", {
5
+ className: "fwe-pagination fwe-pagination--on-dark-bg",
6
+ children: [
7
+ /*#__PURE__*/ jsx("button", {
8
+ "aria-label": "previous",
9
+ type: "button",
10
+ className: "fwe-navigate-btn-down"
11
+ }),
12
+ /*#__PURE__*/ jsx("span", {
13
+ className: "fwe-page-current",
14
+ children: currentIndex
15
+ }),
16
+ /*#__PURE__*/ jsx("span", {
17
+ className: "fwe-page-max",
18
+ children: length
19
+ }),
20
+ /*#__PURE__*/ jsx("button", {
21
+ "aria-label": "next",
22
+ type: "button",
23
+ className: "fwe-navigate-btn-up"
24
+ })
25
+ ]
26
+ })
27
+ });
28
+ }
29
+ export { ImageGalleryPagination };
@@ -0,0 +1,4 @@
1
+ export interface ScaleButtonProps {
2
+ onScaleChange?: (value: boolean) => void;
3
+ }
4
+ export declare function ScaleButton({ onScaleChange }: ScaleButtonProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,17 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useState } from "react";
3
+ function ScaleButton({ onScaleChange }) {
4
+ const [isScaled, setScaled] = useState(false);
5
+ function handleScale() {
6
+ const newScaled = !isScaled;
7
+ setScaled(newScaled);
8
+ onScaleChange?.(newScaled);
9
+ }
10
+ return /*#__PURE__*/ jsx("button", {
11
+ type: "button",
12
+ "aria-label": "scale up",
13
+ className: "fwe-image-gallery-scale-btn fwe-ml-auto",
14
+ onClick: handleScale
15
+ });
16
+ }
17
+ export { ScaleButton };
@@ -0,0 +1,10 @@
1
+ .fwe-page-dot {
2
+ border: none;
3
+ padding: 0;
4
+ }
5
+
6
+ .fwe-page-dot:focus {
7
+ background: var(--fwe-control-border-hover);
8
+ outline: 0;
9
+ }
10
+
@@ -0,0 +1,15 @@
1
+ import './Pagination.scss';
2
+ import type { ClassNameProps } from '../../utils/types';
3
+ export declare enum PaginationType {
4
+ Simple = "SIMPLE",
5
+ Numeric = "NUMERIC",
6
+ Dots = "DOTS"
7
+ }
8
+ export interface PaginationProps extends ClassNameProps {
9
+ readonly type?: PaginationType;
10
+ readonly onChange?: (page: number) => void;
11
+ readonly pageCurrent?: number;
12
+ readonly defaultPageCurrent?: number;
13
+ readonly pageMax: number;
14
+ }
15
+ export declare function Pagination(props: PaginationProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,100 @@
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import "./Pagination.css";
3
+ import classnames from "classnames";
4
+ import { useEffect, useState } from "react";
5
+ var Pagination_PaginationType = /*#__PURE__*/ function(PaginationType) {
6
+ PaginationType["Simple"] = "SIMPLE";
7
+ PaginationType["Numeric"] = "NUMERIC";
8
+ PaginationType["Dots"] = "DOTS";
9
+ return PaginationType;
10
+ }({});
11
+ function Pagination(props) {
12
+ const { pageMax, onChange, pageCurrent, defaultPageCurrent = 1, type = "NUMERIC", className } = props;
13
+ const controlled = void 0 !== pageCurrent;
14
+ const dotArray = Array.from(new Array(pageMax).keys());
15
+ const [innerPageCurrent, setInnerPageCurrent] = useState(controlled ? pageCurrent : defaultPageCurrent);
16
+ useEffect(()=>{
17
+ if (controlled) setInnerPageCurrent(pageCurrent);
18
+ }, [
19
+ pageCurrent,
20
+ controlled
21
+ ]);
22
+ function handleChange(newPage) {
23
+ if (!controlled) setInnerPageCurrent(newPage);
24
+ if (onChange) onChange(newPage);
25
+ }
26
+ function onBtnDown() {
27
+ if (innerPageCurrent > 1) {
28
+ const newPageCurrent = innerPageCurrent - 1;
29
+ handleChange(newPageCurrent);
30
+ }
31
+ }
32
+ function onBtnUp() {
33
+ if (innerPageCurrent < pageMax) {
34
+ const newPageCurrent = innerPageCurrent + 1;
35
+ handleChange(newPageCurrent);
36
+ }
37
+ }
38
+ function onDotClick(index) {
39
+ const newPageCurrent = index + 1;
40
+ handleChange(newPageCurrent);
41
+ }
42
+ return /*#__PURE__*/ jsxs(Fragment, {
43
+ children: [
44
+ "DOTS" !== type && /*#__PURE__*/ jsxs("div", {
45
+ className: classnames('fwe-pagination fwe-p-m', {
46
+ 'fwe-d-none': pageMax < 2
47
+ }, className),
48
+ children: [
49
+ /*#__PURE__*/ jsx("button", {
50
+ className: classnames('fwe-navigate-btn-down', {
51
+ 'fwe-disabled': innerPageCurrent <= 1
52
+ }),
53
+ onClick: onBtnDown,
54
+ type: "button",
55
+ "aria-label": "navigate-btn-down"
56
+ }),
57
+ "NUMERIC" === type && /*#__PURE__*/ jsxs(Fragment, {
58
+ children: [
59
+ /*#__PURE__*/ jsx("span", {
60
+ className: "fwe-page-current",
61
+ children: innerPageCurrent
62
+ }),
63
+ /*#__PURE__*/ jsx("span", {
64
+ className: "fwe-page-max",
65
+ children: pageMax
66
+ })
67
+ ]
68
+ }),
69
+ /*#__PURE__*/ jsx("button", {
70
+ className: classnames('fwe-navigate-btn-up', {
71
+ 'fwe-disabled': innerPageCurrent >= pageMax,
72
+ 'fwe-ml-4': "SIMPLE" === type
73
+ }),
74
+ onClick: onBtnUp,
75
+ type: "button",
76
+ "aria-label": "navigate-btn-up"
77
+ })
78
+ ]
79
+ }),
80
+ "DOTS" === type && /*#__PURE__*/ jsx("div", {
81
+ className: classnames('fwe-p-m', {
82
+ 'fwe-d-none': pageMax < 2
83
+ }, className),
84
+ children: /*#__PURE__*/ jsx("div", {
85
+ className: "fwe-pagination",
86
+ children: dotArray.map((index)=>/*#__PURE__*/ jsx("button", {
87
+ type: "button",
88
+ className: classnames('fwe-page-dot', {
89
+ 'fwe-selected': index + 1 === innerPageCurrent
90
+ }),
91
+ onClick: ()=>onDotClick(index),
92
+ "aria-label": `Go to page ${index + 1}`,
93
+ "aria-current": index + 1 === innerPageCurrent ? 'page' : void 0
94
+ }, index))
95
+ })
96
+ })
97
+ ]
98
+ });
99
+ }
100
+ export { Pagination, Pagination_PaginationType as PaginationType };