@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
@@ -1,57 +0,0 @@
1
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
- import classnames from "classnames";
3
- import { useRef } from "react";
4
- import { IconWrapper } from "../../../components/icon-wrapper/IconWrapper.js";
5
- function SegmentControl(props) {
6
- const { label, checked, disabled, name, value, icon, onChange, id, className, iconOnly } = props;
7
- const componentId = useRef(id ?? (Math.random() * Date.now()).toString().replace('.', '-'));
8
- let viewMode = 'text';
9
- if (icon) viewMode = iconOnly ? 'icon' : 'icon-text';
10
- const handleChange = (event)=>{
11
- if (onChange) onChange(event, value);
12
- };
13
- return /*#__PURE__*/ jsxs(Fragment, {
14
- children: [
15
- /*#__PURE__*/ jsx("input", {
16
- className: "fwe-segment-input",
17
- type: "radio",
18
- id: componentId.current,
19
- name: name,
20
- value: value,
21
- checked: checked,
22
- disabled: disabled,
23
- onChange: (e)=>handleChange(e)
24
- }),
25
- /*#__PURE__*/ jsxs("label", {
26
- className: classnames('fwe-segment-label', className),
27
- htmlFor: componentId.current,
28
- children: [
29
- 'icon' === viewMode && /*#__PURE__*/ jsxs(Fragment, {
30
- children: [
31
- /*#__PURE__*/ jsx("span", {
32
- className: "fwe-sr-only",
33
- children: label
34
- }),
35
- /*#__PURE__*/ jsx(IconWrapper, {
36
- icon: icon
37
- })
38
- ]
39
- }),
40
- 'text' === viewMode && label,
41
- 'icon-text' === viewMode && /*#__PURE__*/ jsxs(Fragment, {
42
- children: [
43
- /*#__PURE__*/ jsx(IconWrapper, {
44
- icon: icon
45
- }),
46
- /*#__PURE__*/ jsx("span", {
47
- className: "fwe-ml-xxs",
48
- children: label
49
- })
50
- ]
51
- })
52
- ]
53
- })
54
- ]
55
- });
56
- }
57
- export { SegmentControl };
@@ -1,25 +0,0 @@
1
- import type { ReactNode } from 'react';
2
- import { type Ref } from 'react';
3
- import type { ComponentBase } from '../../utils/types';
4
- export interface SelectOption<T> {
5
- readonly data: T;
6
- readonly label: ReactNode;
7
- readonly disabled?: boolean;
8
- }
9
- export interface SelectProps<T> extends ComponentBase {
10
- readonly defaultValue?: T;
11
- readonly value?: T;
12
- readonly label?: string;
13
- readonly options?: SelectOption<T>[];
14
- readonly onChange?: (value: T) => void;
15
- readonly disabled?: boolean;
16
- readonly name?: string;
17
- readonly hint?: string;
18
- readonly error?: string;
19
- readonly placeholder?: string;
20
- }
21
- declare function SelectComponent<T>({ defaultValue, value: controlled, label, options, onChange, disabled, name, id: idProp, hint, error, placeholder, className, ...props }: SelectProps<T>, ref: Ref<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
22
- export declare const Select: <T>(props: SelectProps<T> & {
23
- ref?: Ref<HTMLDivElement>;
24
- }) => ReturnType<typeof SelectComponent>;
25
- export {};
@@ -1,92 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { Listbox, ListboxButton, ListboxOption, ListboxOptions } from "@headlessui/react";
3
- import classnames from "classnames";
4
- import { forwardRef, useMemo } from "react";
5
- import { useControlled } from "../../utils/useControlled.js";
6
- import { useId } from "../../utils/useId.js";
7
- function SelectComponent({ defaultValue = '', value: controlled, label, options = [], onChange, disabled, name, id: idProp, hint, error, placeholder, className, ...props }, ref) {
8
- const id = useId(idProp);
9
- const labelId = `${id}-label`;
10
- const [value, setValue] = useControlled({
11
- controlled,
12
- default: defaultValue,
13
- onChange
14
- });
15
- const selectedOption = useMemo(()=>options.find((option)=>option.data === value && !option.disabled), [
16
- options,
17
- value
18
- ]);
19
- function handleChange(option) {
20
- if (!option || option.disabled) return;
21
- setValue(option.data);
22
- }
23
- return /*#__PURE__*/ jsx(Listbox, {
24
- value: selectedOption ?? null,
25
- onChange: handleChange,
26
- disabled: disabled,
27
- children: /*#__PURE__*/ jsxs("div", {
28
- className: classnames(className, 'fwe-select-wrapper', {
29
- 'fwe-disabled': disabled
30
- }),
31
- ref: ref,
32
- ...props,
33
- children: [
34
- /*#__PURE__*/ jsx(ListboxButton, {
35
- className: classnames('fwe-select', {
36
- 'fwe-invalid': error
37
- }),
38
- id: id,
39
- "aria-labelledby": label ? labelId : void 0,
40
- disabled: disabled,
41
- children: selectedOption ? selectedOption.label : placeholder ?? ''
42
- }),
43
- /*#__PURE__*/ jsx("label", {
44
- className: "fwe-select-label",
45
- id: labelId,
46
- htmlFor: id,
47
- children: label || ''
48
- }),
49
- /*#__PURE__*/ jsx(ListboxOptions, {
50
- className: "fwe-options-container",
51
- as: "ul",
52
- portal: false,
53
- style: {
54
- minWidth: 'var(--button-width)'
55
- },
56
- anchor: {
57
- to: 'bottom start',
58
- gap: 12,
59
- padding: 8
60
- },
61
- children: options.map((option)=>/*#__PURE__*/ jsx(ListboxOption, {
62
- value: option,
63
- disabled: option.disabled,
64
- as: "li",
65
- className: ({ focus, selected, disabled: isDisabled })=>classnames('fwe-combobox-option', {
66
- 'fwe-selected': selected,
67
- 'fwe-focus': focus,
68
- 'fwe-disabled': isDisabled
69
- }),
70
- children: option.label
71
- }, String(option.data)))
72
- }),
73
- name && /*#__PURE__*/ jsx("input", {
74
- type: "hidden",
75
- name: name,
76
- value: String(value ?? ''),
77
- disabled: disabled
78
- }),
79
- hint && !error && /*#__PURE__*/ jsx("div", {
80
- className: "fwe-select-description",
81
- children: hint
82
- }),
83
- error && /*#__PURE__*/ jsx("div", {
84
- className: "fwe-select-invalid",
85
- children: error
86
- })
87
- ]
88
- })
89
- });
90
- }
91
- const Select = /*#__PURE__*/ forwardRef(SelectComponent);
92
- export { Select };
@@ -1,50 +0,0 @@
1
- label.fwe-slider {
2
- display: block;
3
- position: relative;
4
- }
5
-
6
- label.fwe-slider .fr-slider-indicator {
7
- background: var(--fwe-hero);
8
- height: 2px;
9
- position: absolute;
10
- bottom: 22px;
11
- left: 0;
12
- }
13
-
14
- label.fwe-slider .fr-slider-indicator.disabled {
15
- background: var(--fwe-border);
16
- }
17
-
18
- label.fwe-slider.fr-slider-value {
19
- height: 56px;
20
- }
21
-
22
- label.fwe-slider.fr-slider-value .fr-slider-indicator {
23
- bottom: 38px;
24
- }
25
-
26
- label.fwe-slider.fr-slider-label {
27
- height: 67px;
28
- }
29
-
30
- label.fwe-slider.fr-slider-label .fr-slider-indicator {
31
- bottom: 22px;
32
- }
33
-
34
- label.fwe-slider.fr-slider-value-label {
35
- height: 83px;
36
- }
37
-
38
- label.fwe-slider.fr-slider-value-label .fr-slider-indicator {
39
- bottom: 38px;
40
- }
41
-
42
- label.fwe-slider .fr-slider-value {
43
- color: var(--fwe-text);
44
- font-size: var(--fwe-font-size-base);
45
- user-select: none;
46
- margin-bottom: 0;
47
- position: absolute;
48
- bottom: 0;
49
- }
50
-
@@ -1,17 +0,0 @@
1
- import './Slider.scss';
2
- import type React from 'react';
3
- import type { ClassNameProps } from '../../utils/types';
4
- export interface SliderProps extends ClassNameProps {
5
- readonly disabled?: boolean;
6
- readonly min: number;
7
- readonly max: number;
8
- readonly step?: number;
9
- readonly value: number;
10
- readonly onChangeCommitted?: (value: number) => void;
11
- readonly label?: string;
12
- readonly showValue?: boolean;
13
- readonly onChange?: (event: React.ChangeEvent<HTMLInputElement>, value: number) => void;
14
- readonly id?: string;
15
- readonly widthOffset?: number;
16
- }
17
- export declare function Slider({ disabled, label, max, min, onChange, onChangeCommitted, step, value, showValue, className, id: idProps, widthOffset, }: SliderProps): import("react/jsx-runtime").JSX.Element;
@@ -1,93 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import "./Slider.css";
3
- import classnames from "classnames";
4
- import { useCallback, useEffect, useRef, useState } from "react";
5
- import { useId } from "../../utils/useId.js";
6
- function Slider({ disabled = false, label, max, min, onChange, onChangeCommitted, step, value, showValue = true, className, id: idProps, widthOffset = 8 }) {
7
- const id = useId(idProps);
8
- const [innerValue, setInnerValue] = useState(value);
9
- const [left, setLeft] = useState(null);
10
- const [numberOffset, setNumberOffset] = useState(0);
11
- const labelEl = useRef(null);
12
- const classes = classnames('fwe-slider', {
13
- 'fr-slider-value': !label && showValue
14
- }, {
15
- 'fr-slider-label': label && !showValue
16
- }, {
17
- 'fr-slider-value-label': label && showValue
18
- }, className);
19
- useEffect(()=>{
20
- setInnerValue(value);
21
- }, [
22
- value
23
- ]);
24
- const updateValuePosition = useCallback(()=>{
25
- if (labelEl.current) {
26
- const { width } = labelEl.current.getBoundingClientRect();
27
- const diff = max - min;
28
- setLeft((innerValue - min) / diff * (width - widthOffset));
29
- setNumberOffset(8 - 6 * innerValue.toString().length);
30
- }
31
- }, [
32
- innerValue,
33
- max,
34
- min,
35
- widthOffset
36
- ]);
37
- const handleAfterChange = ()=>{
38
- if (onChangeCommitted) onChangeCommitted(innerValue);
39
- };
40
- const handleChange = (e)=>{
41
- const newValue = Number.parseFloat(e.target.value);
42
- setInnerValue(newValue);
43
- if (onChange) onChange(e, newValue);
44
- };
45
- useEffect(()=>{
46
- function handleResize() {
47
- updateValuePosition();
48
- }
49
- window.addEventListener('resize', handleResize);
50
- handleResize();
51
- return ()=>window.removeEventListener('resize', handleResize);
52
- }, [
53
- updateValuePosition
54
- ]);
55
- return /*#__PURE__*/ jsxs("label", {
56
- ref: labelEl,
57
- className: classes,
58
- htmlFor: id,
59
- children: [
60
- label && /*#__PURE__*/ jsx("span", {
61
- children: label
62
- }),
63
- /*#__PURE__*/ jsx("input", {
64
- id: id,
65
- className: "fwe-slider-input",
66
- type: "range",
67
- disabled: disabled,
68
- min: min,
69
- max: max,
70
- step: step,
71
- onChange: handleChange,
72
- value: innerValue,
73
- onKeyUp: handleAfterChange,
74
- onMouseUp: handleAfterChange,
75
- onTouchEnd: handleAfterChange
76
- }),
77
- showValue && null !== left && /*#__PURE__*/ jsx("span", {
78
- className: "fr-slider-value",
79
- style: {
80
- left: `${left + numberOffset}px`
81
- },
82
- children: innerValue
83
- }),
84
- /*#__PURE__*/ jsx("div", {
85
- className: `fr-slider-indicator${disabled ? ' disabled' : ''}`,
86
- style: {
87
- width: `${left}px`
88
- }
89
- })
90
- ]
91
- });
92
- }
93
- export { Slider };
@@ -1,12 +0,0 @@
1
- import type { ClassNameProps } from '../../utils/types';
2
- export interface SwitchProps extends ClassNameProps {
3
- readonly labelPosition?: 'before' | 'after' | 'below';
4
- readonly large?: boolean;
5
- readonly title: string;
6
- readonly value?: boolean;
7
- readonly defaultValue?: boolean;
8
- readonly disabled?: boolean;
9
- readonly onChange?: (value: boolean) => void;
10
- readonly id?: string;
11
- }
12
- export declare function Switch({ labelPosition, large, title, value, defaultValue, disabled, onChange, className, id: idProps, }: SwitchProps): import("react/jsx-runtime").JSX.Element;
@@ -1,42 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import classnames from "classnames";
3
- import { useControlled } from "../../utils/useControlled.js";
4
- import { useId } from "../../utils/useId.js";
5
- function Switch({ labelPosition = 'after', large = false, title, value, defaultValue, disabled = false, onChange, className, id: idProps }) {
6
- const id = useId(idProps);
7
- const labelClassName = classnames('fwe-switch', {
8
- [`fwe-switch-label-${labelPosition}`]: true
9
- }, {
10
- 'fwe-switch-lg': large
11
- }, className);
12
- const [currentValue, setCurrentValue] = useControlled({
13
- controlled: value,
14
- default: defaultValue
15
- });
16
- const handleChange = ()=>{
17
- const newValue = !currentValue;
18
- setCurrentValue(newValue);
19
- if (onChange) onChange(newValue);
20
- };
21
- return /*#__PURE__*/ jsxs("label", {
22
- className: labelClassName,
23
- htmlFor: id,
24
- children: [
25
- /*#__PURE__*/ jsx("input", {
26
- type: "checkbox",
27
- disabled: disabled,
28
- checked: currentValue,
29
- onChange: ()=>handleChange(),
30
- id: id
31
- }),
32
- /*#__PURE__*/ jsx("div", {
33
- className: "fwe-switch-track"
34
- }),
35
- /*#__PURE__*/ jsx("div", {
36
- className: "fwe-switch-label-content",
37
- children: title
38
- })
39
- ]
40
- });
41
- }
42
- export { Switch };
@@ -1,14 +0,0 @@
1
- label.fwe-input-text .fwe-input-text-count {
2
- line-height: var(--fwe-line-height-base);
3
- color: var(--fwe-text-disabled);
4
- font-size: var(--fwe-font-size-small);
5
- display: block;
6
- position: absolute;
7
- bottom: 0;
8
- right: 0;
9
- }
10
-
11
- label.fwe-input-text .fr-textarea {
12
- overflow: visible;
13
- }
14
-
@@ -1,22 +0,0 @@
1
- import './TextArea.scss';
2
- import React from 'react';
3
- import type { ClassNameProps } from '../../utils/types';
4
- export interface TextAreaProps extends ClassNameProps {
5
- readonly disabled?: boolean;
6
- readonly required?: boolean;
7
- readonly readonly?: boolean;
8
- readonly onChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void;
9
- readonly onFocus?: (event: React.FocusEvent<HTMLTextAreaElement>) => void;
10
- readonly onInput?: (event: React.FormEvent<HTMLTextAreaElement>) => void;
11
- readonly onBlur?: (event: React.FocusEvent<HTMLTextAreaElement>) => void;
12
- readonly label: string;
13
- readonly hint?: string;
14
- readonly error?: string;
15
- readonly value?: string;
16
- readonly defaultValue?: string;
17
- readonly name?: string;
18
- readonly rows?: number;
19
- readonly maxLength?: number;
20
- readonly id?: string;
21
- }
22
- export declare function TextArea({ disabled, onBlur, onChange, onFocus, onInput, readonly, required, label, error, hint, value, defaultValue, name, rows, maxLength, className, id: idProps, }: Readonly<TextAreaProps>): import("react/jsx-runtime").JSX.Element;
@@ -1,99 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import "./TextArea.css";
3
- import classnames from "classnames";
4
- import react, { useEffect, useState } from "react";
5
- import { useId } from "../../utils/useId.js";
6
- function TextArea({ disabled, onBlur, onChange, onFocus, onInput, readonly, required, label, error, hint, value, defaultValue, name, rows, maxLength, className, id: idProps }) {
7
- const controlled = void 0 !== value;
8
- const [innerValue, setInnerValue] = useState(controlled ? value : defaultValue);
9
- const id = useId(idProps);
10
- const hintClasses = classnames('fwe-input-text-info');
11
- const shadowRef = react.useRef(null);
12
- const ref = react.useRef(null);
13
- const [height, setHeight] = useState(void 0);
14
- useEffect(()=>{
15
- if (controlled) setInnerValue(value);
16
- }, [
17
- value,
18
- controlled
19
- ]);
20
- useEffect(()=>{
21
- const input = ref.current;
22
- const shadow = shadowRef.current;
23
- const minRows = 2;
24
- if (shadow && input) {
25
- shadow.value = input.value || 'x';
26
- shadow.style.width = `${input.clientWidth}`;
27
- const newHeight = Math.max(24 * minRows, shadow.scrollHeight);
28
- setHeight(newHeight + 4 + 4 + 1);
29
- }
30
- }, []);
31
- function handleChange(event) {
32
- if (!controlled) setInnerValue(event.target.value);
33
- if (onChange) onChange(event);
34
- }
35
- return /*#__PURE__*/ jsxs("label", {
36
- className: classnames('fwe-input-text', className),
37
- htmlFor: id,
38
- children: [
39
- /*#__PURE__*/ jsx("textarea", {
40
- style: {
41
- ...!rows && {
42
- height,
43
- overflow: 'hidden'
44
- }
45
- },
46
- ref: ref,
47
- name: name,
48
- className: classnames('fr-textarea', `fwe-row-${rows}`),
49
- disabled: disabled,
50
- readOnly: readonly,
51
- required: required,
52
- autoComplete: "off",
53
- onChange: handleChange,
54
- onFocus: onFocus,
55
- onInput: onInput,
56
- onBlur: onBlur,
57
- maxLength: maxLength,
58
- defaultValue: defaultValue,
59
- value: value,
60
- id: id
61
- }),
62
- /*#__PURE__*/ jsx("textarea", {
63
- style: {
64
- visibility: 'hidden',
65
- position: 'absolute',
66
- overflow: 'hidden',
67
- height: 0,
68
- top: 0,
69
- left: 0,
70
- transform: 'translateZ(0)',
71
- padding: '0'
72
- },
73
- ref: shadowRef,
74
- readOnly: true
75
- }),
76
- /*#__PURE__*/ jsx("span", {
77
- className: "fwe-input-text-label",
78
- children: label
79
- }),
80
- hint && /*#__PURE__*/ jsx("span", {
81
- className: hintClasses,
82
- children: hint
83
- }),
84
- void 0 !== error && /*#__PURE__*/ jsx("span", {
85
- className: "fwe-input-text-invalid",
86
- children: error
87
- }),
88
- !!maxLength && void 0 !== innerValue && /*#__PURE__*/ jsxs("span", {
89
- className: "fwe-input-text-count",
90
- children: [
91
- innerValue.length,
92
- " /",
93
- maxLength
94
- ]
95
- })
96
- ]
97
- });
98
- }
99
- export { TextArea };
@@ -1,24 +0,0 @@
1
- import type React from 'react';
2
- export interface TextInputProps {
3
- disabled?: boolean;
4
- required?: boolean;
5
- readonly?: boolean;
6
- placeholder?: string;
7
- type?: string;
8
- step?: string;
9
- min?: number;
10
- max?: number;
11
- value?: string;
12
- defaultValue?: string;
13
- name?: string;
14
- onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void;
15
- onInput?: (event: React.FormEvent<HTMLInputElement>) => void;
16
- onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;
17
- label?: string;
18
- hint?: string;
19
- error?: string;
20
- labelClassName?: string;
21
- icon?: React.ReactNode;
22
- autoFocus?: boolean;
23
- }
24
- export declare const TextInput: (props: TextInputProps & React.HTMLProps<HTMLInputElement> & React.RefAttributes<HTMLLabelElement>) => React.ReactElement | null;
@@ -1,74 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import classnames from "classnames";
3
- import { forwardRef, useEffect, useRef } from "react";
4
- import { useId } from "../../utils/useId.js";
5
- const TextInput = /*#__PURE__*/ forwardRef(({ disabled, required, readonly, placeholder, max, min, onBlur, onFocus, onInput, step, type, value, defaultValue, name, error, hint, label, labelClassName, icon, id: idProps, autoFocus, ...props }, ref)=>{
6
- const id = useId(idProps);
7
- const inputRef = useRef(null);
8
- useEffect(()=>{
9
- if (autoFocus && inputRef.current) {
10
- const timer = setTimeout(()=>{
11
- inputRef.current?.focus();
12
- }, 0);
13
- return ()=>clearTimeout(timer);
14
- }
15
- }, [
16
- autoFocus
17
- ]);
18
- const supported = [
19
- 'text',
20
- 'number',
21
- 'password',
22
- 'datetime-local'
23
- ];
24
- const innerType = type && supported.includes(type) ? type : 'text';
25
- const labelClasses = classnames('fwe-input-text', {
26
- 'fwe-input-text-icon': icon
27
- }, labelClassName);
28
- const hintClasses = classnames('fwe-input-text-info');
29
- function handleChange(e) {
30
- if (props.onChange) props.onChange(e);
31
- }
32
- return /*#__PURE__*/ jsxs("label", {
33
- className: labelClasses,
34
- htmlFor: id,
35
- ref: ref,
36
- children: [
37
- /*#__PURE__*/ jsx("input", {
38
- name: name,
39
- disabled: disabled,
40
- required: required,
41
- readOnly: readonly,
42
- placeholder: placeholder,
43
- autoComplete: "off",
44
- min: min,
45
- max: max,
46
- step: step,
47
- onChange: handleChange,
48
- onBlur: onBlur,
49
- onFocus: onFocus,
50
- onInput: onInput,
51
- type: innerType,
52
- value: value,
53
- defaultValue: defaultValue,
54
- id: id,
55
- ref: inputRef,
56
- ...props
57
- }),
58
- icon,
59
- /*#__PURE__*/ jsx("span", {
60
- className: "fwe-input-text-label",
61
- children: label
62
- }),
63
- hint && /*#__PURE__*/ jsx("span", {
64
- className: hintClasses,
65
- children: hint
66
- }),
67
- error && /*#__PURE__*/ jsx("span", {
68
- className: "fwe-input-text-invalid",
69
- children: error
70
- })
71
- ]
72
- });
73
- });
74
- export { TextInput };
@@ -1,10 +0,0 @@
1
- .fr-time-picker {
2
- all: unset;
3
- cursor: pointer;
4
- display: contents;
5
- }
6
-
7
- .fr-time-picker:disabled {
8
- cursor: default;
9
- }
10
-
@@ -1,24 +0,0 @@
1
- import './TimePicker.scss';
2
- import type React from 'react';
3
- import { type ComponentPropsWithoutRef } from 'react';
4
- export interface TimePickerOptions {
5
- readonly timeFormat?: '12' | '24';
6
- readonly showSeconds?: boolean;
7
- readonly minuteStepSize?: number;
8
- readonly range?: {
9
- minValue: Date;
10
- maxValue: Date;
11
- };
12
- }
13
- export interface TimePickerProps extends Omit<ComponentPropsWithoutRef<'button'>, 'value' | 'defaultValue' | 'onChange'> {
14
- readonly error?: string;
15
- readonly hint?: string;
16
- readonly required?: boolean;
17
- readonly disabled?: boolean;
18
- readonly value?: Date;
19
- readonly defaultValue?: Date;
20
- readonly options?: TimePickerOptions;
21
- readonly formatDate?: (date: Date) => string;
22
- readonly onChange?: (date: Date) => void;
23
- }
24
- export declare const TimePicker: (props: TimePickerProps & React.RefAttributes<HTMLButtonElement>) => React.ReactElement | null;