@festo-ui/react 10.0.1-dev.850 → 10.0.1-dev.852

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 (209) hide show
  1. package/package.json +1 -1
  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 -42
  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 -12
  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 -61
  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 -56
  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 -21
  21. package/dist/components/bottom-sheet/BottomSheet.css +0 -18
  22. package/dist/components/bottom-sheet/BottomSheet.d.ts +0 -10
  23. package/dist/components/bottom-sheet/BottomSheet.js +0 -104
  24. package/dist/components/breadcrumb/Breadcrumb.d.ts +0 -13
  25. package/dist/components/breadcrumb/Breadcrumb.js +0 -61
  26. package/dist/components/button/Button.d.ts +0 -11
  27. package/dist/components/button/Button.js +0 -37
  28. package/dist/components/card/Card.d.ts +0 -3
  29. package/dist/components/card/Card.js +0 -11
  30. package/dist/components/card/CardBody.d.ts +0 -5
  31. package/dist/components/card/CardBody.js +0 -17
  32. package/dist/components/card/CardHeader.d.ts +0 -8
  33. package/dist/components/card/CardHeader.js +0 -33
  34. package/dist/components/card/CardHeader.stories.helper.js +0 -7
  35. package/dist/components/card/CardNotification.d.ts +0 -5
  36. package/dist/components/card/CardNotification.js +0 -30
  37. package/dist/components/chips/chip/Chip.d.ts +0 -16
  38. package/dist/components/chips/chip/Chip.js +0 -45
  39. package/dist/components/chips/chip-container/ChipContainer.d.ts +0 -5
  40. package/dist/components/chips/chip-container/ChipContainer.js +0 -16
  41. package/dist/components/icon-wrapper/IconWrapper.d.ts +0 -7
  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 -42
  45. package/dist/components/mobile-flyout/MobileFlyout.d.ts +0 -11
  46. package/dist/components/mobile-flyout/MobileFlyout.js +0 -89
  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 -18
  50. package/dist/components/mobile-flyout/mobile-flyout-item/MobileFlyoutItem.js +0 -37
  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 -36
  54. package/dist/components/modals/AlertModal.d.ts +0 -12
  55. package/dist/components/modals/AlertModal.js +0 -54
  56. package/dist/components/modals/ConfirmModal.d.ts +0 -11
  57. package/dist/components/modals/ConfirmModal.js +0 -47
  58. package/dist/components/modals/CustomModal.d.ts +0 -8
  59. package/dist/components/modals/CustomModal.js +0 -39
  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 -32
  63. package/dist/components/modals/ModalBase.d.ts +0 -10
  64. package/dist/components/modals/ModalBase.js +0 -125
  65. package/dist/components/modals/ModalFooter.d.ts +0 -2
  66. package/dist/components/modals/ModalFooter.js +0 -14
  67. package/dist/components/modals/Prompt.d.ts +0 -15
  68. package/dist/components/modals/Prompt.js +0 -61
  69. package/dist/components/modals/image-gallery/ImageGallery.css +0 -833
  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 -104
  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 -14
  91. package/dist/components/pagination/Pagination.js +0 -104
  92. package/dist/components/popovers/legend/Legend.d.ts +0 -11
  93. package/dist/components/popovers/legend/Legend.js +0 -25
  94. package/dist/components/popovers/popover/Popover.css +0 -9
  95. package/dist/components/popovers/popover/Popover.d.ts +0 -19
  96. package/dist/components/popovers/popover/Popover.js +0 -96
  97. package/dist/components/popovers/popover-menu/PopoverMenu.d.ts +0 -9
  98. package/dist/components/popovers/popover-menu/PopoverMenu.js +0 -33
  99. package/dist/components/popovers/popover-menu/PopoverMenuContext.d.ts +0 -4
  100. package/dist/components/popovers/popover-menu/PopoverMenuContext.js +0 -5
  101. package/dist/components/popovers/popover-menu/popover-menu-item/PopoverMenuItem.d.ts +0 -9
  102. package/dist/components/popovers/popover-menu/popover-menu-item/PopoverMenuItem.js +0 -31
  103. package/dist/components/popovers/tooltip/Tooltip.d.ts +0 -6
  104. package/dist/components/popovers/tooltip/Tooltip.js +0 -13
  105. package/dist/components/progress/Progress.d.ts +0 -6
  106. package/dist/components/progress/Progress.js +0 -30
  107. package/dist/components/search-input/ClearButton.d.ts +0 -1
  108. package/dist/components/search-input/ClearButton.js +0 -11
  109. package/dist/components/search-input/SearchInput.css +0 -13
  110. package/dist/components/search-input/SearchInput.d.ts +0 -13
  111. package/dist/components/search-input/SearchInput.js +0 -65
  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 -82
  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 -69
  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 -49
  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 -17
  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 -59
  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 -8
  143. package/dist/components/tab/tab-pane/TabPane.js +0 -22
  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 -6
  147. package/dist/components/table-header-cell/TableHeaderCell.js +0 -22
  148. package/dist/forms/checkbox/Checkbox.css +0 -134
  149. package/dist/forms/checkbox/Checkbox.d.ts +0 -12
  150. package/dist/forms/checkbox/Checkbox.js +0 -83
  151. package/dist/forms/combobox/ComboBox.css +0 -124
  152. package/dist/forms/combobox/ComboBox.d.ts +0 -27
  153. package/dist/forms/combobox/ComboBox.js +0 -174
  154. package/dist/forms/multi-select/MultiSelect.css +0 -13
  155. package/dist/forms/multi-select/MultiSelect.d.ts +0 -20
  156. package/dist/forms/multi-select/MultiSelect.js +0 -192
  157. package/dist/forms/radio/RadioButton.d.ts +0 -14
  158. package/dist/forms/radio/RadioButton.js +0 -57
  159. package/dist/forms/radio/RadioGroup.d.ts +0 -12
  160. package/dist/forms/radio/RadioGroup.js +0 -51
  161. package/dist/forms/radio/RadioGroupContext.d.ts +0 -12
  162. package/dist/forms/radio/RadioGroupContext.js +0 -3
  163. package/dist/forms/segment/Segment.d.ts +0 -12
  164. package/dist/forms/segment/Segment.js +0 -60
  165. package/dist/forms/segment/segment-control/SegmentControl.d.ts +0 -10
  166. package/dist/forms/segment/segment-control/SegmentControl.js +0 -59
  167. package/dist/forms/select/Select.d.ts +0 -25
  168. package/dist/forms/select/Select.js +0 -93
  169. package/dist/forms/select/internal/SelectButton.d.ts +0 -0
  170. package/dist/forms/select/internal/SelectButton.js +0 -0
  171. package/dist/forms/select/internal/SelectButtonContent.d.ts +0 -0
  172. package/dist/forms/select/internal/SelectButtonContent.js +0 -0
  173. package/dist/forms/select/internal/SelectOptionsContainer.d.ts +0 -0
  174. package/dist/forms/select/internal/SelectOptionsContainer.js +0 -0
  175. package/dist/forms/slider/Slider.css +0 -50
  176. package/dist/forms/slider/Slider.d.ts +0 -14
  177. package/dist/forms/slider/Slider.js +0 -98
  178. package/dist/forms/switch/Switch.d.ts +0 -10
  179. package/dist/forms/switch/Switch.js +0 -48
  180. package/dist/forms/text-area/TextArea.css +0 -14
  181. package/dist/forms/text-area/TextArea.d.ts +0 -13
  182. package/dist/forms/text-area/TextArea.js +0 -116
  183. package/dist/forms/text-input/TextInput.css +0 -31
  184. package/dist/forms/text-input/TextInput.d.ts +0 -13
  185. package/dist/forms/text-input/TextInput.js +0 -65
  186. package/dist/forms/time-picker/TimePicker.css +0 -10
  187. package/dist/forms/time-picker/TimePicker.d.ts +0 -25
  188. package/dist/forms/time-picker/TimePicker.js +0 -125
  189. package/dist/forms/time-picker/time-picker-dropdown/TimePickerDropdown.css +0 -4
  190. package/dist/forms/time-picker/time-picker-dropdown/TimePickerDropdown.d.ts +0 -19
  191. package/dist/forms/time-picker/time-picker-dropdown/TimePickerDropdown.js +0 -209
  192. package/dist/forms/time-picker/time-picker-dropdown/TimePickerInput.d.ts +0 -9
  193. package/dist/forms/time-picker/time-picker-dropdown/TimePickerInput.js +0 -15
  194. package/dist/index.d.ts +0 -60
  195. package/dist/index.js +0 -60
  196. package/dist/utils/index.d.ts +0 -1
  197. package/dist/utils/index.js +0 -7
  198. package/dist/utils/setRef.d.ts +0 -1
  199. package/dist/utils/setRef.js +0 -5
  200. package/dist/utils/types.d.ts +0 -23
  201. package/dist/utils/types.js +0 -0
  202. package/dist/utils/useControlled.d.ts +0 -7
  203. package/dist/utils/useControlled.js +0 -20
  204. package/dist/utils/useForkRef.d.ts +0 -2
  205. package/dist/utils/useForkRef.js +0 -15
  206. package/dist/utils/useId.d.ts +0 -1
  207. package/dist/utils/useId.js +0 -20
  208. package/dist/utils/useOnClickOutside.d.ts +0 -2
  209. package/dist/utils/useOnClickOutside.js +0 -20
@@ -1,59 +0,0 @@
1
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
- import classnames from "classnames";
3
- import { forwardRef, useRef } from "react";
4
- import { IconWrapper } from "../../../components/icon-wrapper/IconWrapper.js";
5
- const SegmentControl = /*#__PURE__*/ forwardRef(({ label, checked, disabled, name, value, icon, onChange, id, className, iconOnly, ...props }, ref)=>{
6
- const componentId = useRef(id ?? (Math.random() * Date.now()).toString().replace('.', '-'));
7
- let viewMode = 'text';
8
- if (icon) viewMode = iconOnly ? 'icon' : 'icon-text';
9
- const handleChange = (event)=>{
10
- if (onChange) onChange(value, event);
11
- };
12
- return /*#__PURE__*/ jsxs(Fragment, {
13
- children: [
14
- /*#__PURE__*/ jsx("input", {
15
- className: "fwe-segment-input",
16
- type: "radio",
17
- id: componentId.current,
18
- name: name,
19
- value: value,
20
- checked: checked,
21
- disabled: disabled,
22
- onChange: (e)=>handleChange(e),
23
- ...props
24
- }),
25
- /*#__PURE__*/ jsxs("label", {
26
- className: classnames('fwe-segment-label', className),
27
- htmlFor: componentId.current,
28
- ref: ref,
29
- children: [
30
- 'icon' === viewMode && /*#__PURE__*/ jsxs(Fragment, {
31
- children: [
32
- /*#__PURE__*/ jsx("span", {
33
- className: "fwe-sr-only",
34
- children: label
35
- }),
36
- /*#__PURE__*/ jsx(IconWrapper, {
37
- icon: icon
38
- })
39
- ]
40
- }),
41
- 'text' === viewMode && label,
42
- 'icon-text' === viewMode && /*#__PURE__*/ jsxs(Fragment, {
43
- children: [
44
- /*#__PURE__*/ jsx(IconWrapper, {
45
- icon: icon
46
- }),
47
- /*#__PURE__*/ jsx("span", {
48
- className: "fwe-ml-xxs",
49
- children: label
50
- })
51
- ]
52
- })
53
- ]
54
- })
55
- ]
56
- });
57
- });
58
- SegmentControl.displayName = 'SegmentControl';
59
- export { SegmentControl };
@@ -1,25 +0,0 @@
1
- import type { ReactNode } from 'react';
2
- import { type Ref } from 'react';
3
- export interface SelectOption<T> {
4
- readonly data: T;
5
- readonly label: ReactNode;
6
- readonly disabled?: boolean;
7
- }
8
- export interface SelectProps<T> extends Omit<React.ComponentPropsWithoutRef<'div'>, 'onChange' | 'value' | 'defaultValue'> {
9
- readonly value?: T;
10
- readonly defaultValue?: T;
11
- readonly name?: string;
12
- readonly disabled?: boolean;
13
- readonly required?: boolean;
14
- readonly label?: string;
15
- readonly options?: SelectOption<T>[];
16
- readonly hint?: string;
17
- readonly error?: string;
18
- readonly placeholder?: string;
19
- readonly onChange?: (value: T) => void;
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,93 +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
- Select.displayName = 'Select';
93
- export { Select };
File without changes
File without changes
File without changes
@@ -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,14 +0,0 @@
1
- import './Slider.scss';
2
- import { type ComponentPropsWithoutRef } from 'react';
3
- export interface SliderProps extends Omit<ComponentPropsWithoutRef<'input'>, 'type' | 'onChange' | 'value' | 'defaultValue' | 'min' | 'max' | 'step'> {
4
- readonly min: number;
5
- readonly max: number;
6
- readonly step?: number;
7
- readonly value: number;
8
- readonly onChangeCommitted?: (value: number) => void;
9
- readonly label?: string;
10
- readonly showValue?: boolean;
11
- readonly onChange?: (value: number, event: React.ChangeEvent<HTMLInputElement>) => void;
12
- readonly widthOffset?: number;
13
- }
14
- export declare const Slider: (props: SliderProps & import("react").RefAttributes<HTMLLabelElement>) => React.ReactElement | null;
@@ -1,98 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import "./Slider.css";
3
- import classnames from "classnames";
4
- import { forwardRef, useCallback, useEffect, useRef, useState } from "react";
5
- import { useForkRef } from "../../utils/useForkRef.js";
6
- import { useId } from "../../utils/useId.js";
7
- const Slider = /*#__PURE__*/ forwardRef(({ disabled = false, label, name, max, min, onChange, onChangeCommitted, step, value, showValue = true, className, id: idProps, widthOffset = 8, ...props }, ref)=>{
8
- const id = useId(idProps);
9
- const [innerValue, setInnerValue] = useState(value);
10
- const [left, setLeft] = useState(null);
11
- const [numberOffset, setNumberOffset] = useState(0);
12
- const labelEl = useRef(null);
13
- const handleRef = useForkRef(ref, labelEl);
14
- const classes = classnames('fwe-slider', {
15
- 'fr-slider-value': !label && showValue
16
- }, {
17
- 'fr-slider-label': label && !showValue
18
- }, {
19
- 'fr-slider-value-label': label && showValue
20
- }, className);
21
- useEffect(()=>{
22
- setInnerValue(value);
23
- }, [
24
- value
25
- ]);
26
- const updateValuePosition = useCallback(()=>{
27
- if (labelEl.current) {
28
- const { width } = labelEl.current.getBoundingClientRect();
29
- const diff = max - min;
30
- setLeft((innerValue - min) / diff * (width - widthOffset));
31
- setNumberOffset(8 - 6 * innerValue.toString().length);
32
- }
33
- }, [
34
- innerValue,
35
- max,
36
- min,
37
- widthOffset
38
- ]);
39
- const handleAfterChange = ()=>{
40
- if (onChangeCommitted) onChangeCommitted(innerValue);
41
- };
42
- const handleChange = (e)=>{
43
- const newValue = Number.parseFloat(e.target.value);
44
- setInnerValue(newValue);
45
- if (onChange) onChange(newValue, e);
46
- };
47
- useEffect(()=>{
48
- function handleResize() {
49
- updateValuePosition();
50
- }
51
- window.addEventListener('resize', handleResize);
52
- handleResize();
53
- return ()=>window.removeEventListener('resize', handleResize);
54
- }, [
55
- updateValuePosition
56
- ]);
57
- return /*#__PURE__*/ jsxs("label", {
58
- ref: handleRef,
59
- className: classes,
60
- htmlFor: id,
61
- children: [
62
- label && /*#__PURE__*/ jsx("span", {
63
- children: label
64
- }),
65
- /*#__PURE__*/ jsx("input", {
66
- id: id,
67
- className: "fwe-slider-input",
68
- type: "range",
69
- name: name,
70
- disabled: disabled,
71
- min: min,
72
- max: max,
73
- step: step,
74
- onChange: handleChange,
75
- value: innerValue,
76
- onKeyUp: handleAfterChange,
77
- onMouseUp: handleAfterChange,
78
- onTouchEnd: handleAfterChange,
79
- ...props
80
- }),
81
- showValue && null !== left && /*#__PURE__*/ jsx("span", {
82
- className: "fr-slider-value",
83
- style: {
84
- left: `${left + numberOffset}px`
85
- },
86
- children: innerValue
87
- }),
88
- /*#__PURE__*/ jsx("div", {
89
- className: `fr-slider-indicator${disabled ? ' disabled' : ''}`,
90
- style: {
91
- width: `${left}px`
92
- }
93
- })
94
- ]
95
- });
96
- });
97
- Slider.displayName = 'Slider';
98
- export { Slider };
@@ -1,10 +0,0 @@
1
- import { type ComponentPropsWithoutRef } from 'react';
2
- export interface SwitchProps extends Omit<ComponentPropsWithoutRef<'input'>, 'type' | 'onChange' | 'value' | 'defaultValue' | 'checked'> {
3
- readonly labelPosition?: 'before' | 'after' | 'below';
4
- readonly large?: boolean;
5
- readonly title: string;
6
- readonly value?: boolean;
7
- readonly defaultValue?: boolean;
8
- readonly onChange?: (value: boolean, event: React.ChangeEvent<HTMLInputElement>) => void;
9
- }
10
- export declare const Switch: (props: SwitchProps & import("react").RefAttributes<HTMLLabelElement>) => React.ReactElement | null;
@@ -1,48 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import classnames from "classnames";
3
- import { forwardRef } from "react";
4
- import { useControlled } from "../../utils/useControlled.js";
5
- import { useId } from "../../utils/useId.js";
6
- const Switch = /*#__PURE__*/ forwardRef(({ labelPosition = 'after', large = false, title, name, required = false, value, defaultValue, disabled = false, onChange, className, id: idProps, ...props }, ref)=>{
7
- const id = useId(idProps);
8
- const labelClassName = classnames('fwe-switch', {
9
- [`fwe-switch-label-${labelPosition}`]: true
10
- }, {
11
- 'fwe-switch-lg': large
12
- }, className);
13
- const [currentValue, setCurrentValue] = useControlled({
14
- controlled: value,
15
- default: defaultValue
16
- });
17
- const handleChange = (event)=>{
18
- const newValue = !currentValue;
19
- setCurrentValue(newValue);
20
- if (onChange) onChange(newValue, event);
21
- };
22
- return /*#__PURE__*/ jsxs("label", {
23
- className: labelClassName,
24
- htmlFor: id,
25
- ref: ref,
26
- children: [
27
- /*#__PURE__*/ jsx("input", {
28
- type: "checkbox",
29
- name: name,
30
- required: required,
31
- disabled: disabled,
32
- checked: currentValue,
33
- onChange: handleChange,
34
- id: id,
35
- ...props
36
- }),
37
- /*#__PURE__*/ jsx("div", {
38
- className: "fwe-switch-track"
39
- }),
40
- /*#__PURE__*/ jsx("div", {
41
- className: "fwe-switch-label-content",
42
- children: title
43
- })
44
- ]
45
- });
46
- });
47
- Switch.displayName = 'Switch';
48
- 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,13 +0,0 @@
1
- import './TextArea.scss';
2
- import React, { type ComponentPropsWithoutRef } from 'react';
3
- export interface TextAreaProps extends Omit<ComponentPropsWithoutRef<'textarea'>, 'onChange' | 'value' | 'defaultValue'> {
4
- readonly value?: string;
5
- readonly defaultValue?: string;
6
- readonly onChange?: (value: string, event: React.ChangeEvent<HTMLTextAreaElement>) => void;
7
- readonly label: string;
8
- readonly hint?: string;
9
- readonly error?: string;
10
- readonly rows?: number;
11
- readonly id?: string;
12
- }
13
- export declare const TextArea: (props: TextAreaProps & React.RefAttributes<HTMLLabelElement>) => React.ReactElement | null;
@@ -1,116 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import "./TextArea.css";
3
- import classnames from "classnames";
4
- import react, { forwardRef, useEffect, useLayoutEffect, useState } from "react";
5
- import { useId } from "../../utils/useId.js";
6
- const TextArea = /*#__PURE__*/ forwardRef(({ onChange, label, error, hint, value, defaultValue, rows, maxLength, className, id: idProps, ...props }, ref)=>{
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 textareaRef = react.useRef(null);
13
- const [height, setHeight] = useState(void 0);
14
- const resizeToContent = react.useCallback(()=>{
15
- const input = textareaRef.current;
16
- const shadow = shadowRef.current;
17
- const minRows = 2;
18
- if (shadow && input) {
19
- shadow.value = input.value || innerValue || 'x';
20
- shadow.style.width = input.clientWidth.toString();
21
- const newHeight = Math.max(24 * minRows, shadow.scrollHeight);
22
- setHeight(newHeight + 4 + 4 + 1);
23
- }
24
- }, [
25
- innerValue
26
- ]);
27
- useEffect(()=>{
28
- if (controlled) setInnerValue(value);
29
- }, [
30
- value,
31
- controlled
32
- ]);
33
- useLayoutEffect(()=>{
34
- if (rows) return;
35
- resizeToContent();
36
- }, [
37
- rows,
38
- resizeToContent
39
- ]);
40
- useEffect(()=>{
41
- if (rows) return;
42
- const handleResize = ()=>resizeToContent();
43
- window.addEventListener('resize', handleResize);
44
- return ()=>{
45
- window.removeEventListener('resize', handleResize);
46
- };
47
- }, [
48
- rows,
49
- resizeToContent
50
- ]);
51
- function handleChange(event) {
52
- if (!controlled) setInnerValue(event.target.value);
53
- if (!rows) resizeToContent();
54
- if (onChange) onChange(event.target.value, event);
55
- }
56
- return /*#__PURE__*/ jsxs("label", {
57
- className: classnames('fwe-input-text', className),
58
- htmlFor: id,
59
- ref: ref,
60
- children: [
61
- /*#__PURE__*/ jsx("textarea", {
62
- style: {
63
- ...!rows && {
64
- height,
65
- overflow: 'hidden'
66
- }
67
- },
68
- ref: textareaRef,
69
- className: classnames('fr-textarea', `fwe-row-${rows}`),
70
- autoComplete: "off",
71
- onChange: handleChange,
72
- maxLength: maxLength,
73
- defaultValue: defaultValue,
74
- value: value,
75
- id: id,
76
- ...props
77
- }),
78
- /*#__PURE__*/ jsx("textarea", {
79
- style: {
80
- visibility: 'hidden',
81
- position: 'absolute',
82
- overflow: 'hidden',
83
- height: 0,
84
- top: 0,
85
- left: 0,
86
- transform: 'translateZ(0)',
87
- padding: '0'
88
- },
89
- ref: shadowRef,
90
- readOnly: true
91
- }),
92
- /*#__PURE__*/ jsx("span", {
93
- className: "fwe-input-text-label",
94
- children: label
95
- }),
96
- hint && /*#__PURE__*/ jsx("span", {
97
- className: hintClasses,
98
- children: hint
99
- }),
100
- void 0 !== error && /*#__PURE__*/ jsx("span", {
101
- className: "fwe-input-text-invalid",
102
- children: error
103
- }),
104
- !!maxLength && void 0 !== innerValue && /*#__PURE__*/ jsxs("span", {
105
- className: "fwe-input-text-count",
106
- children: [
107
- innerValue.length,
108
- " /",
109
- maxLength
110
- ]
111
- })
112
- ]
113
- });
114
- });
115
- TextArea.displayName = 'TextArea';
116
- export { TextArea };
@@ -1,31 +0,0 @@
1
- label.fwe-input-text input[type="text"][aria-invalid="true"], label.fwe-input-text input[type="password"][aria-invalid="true"], label.fwe-input-text input[type="date"][aria-invalid="true"], label.fwe-input-text input[type="datetime-local"][aria-invalid="true"], label.fwe-input-text input[type="number"][aria-invalid="true"] {
2
- box-shadow: none;
3
- outline: none;
4
- border-bottom: 1px solid var(--fwe-red) !important;
5
- }
6
-
7
- label.fwe-input-text input[type="text"][aria-invalid="true"]:focus, label.fwe-input-text input[type="password"][aria-invalid="true"]:focus, label.fwe-input-text input[type="date"][aria-invalid="true"]:focus, label.fwe-input-text input[type="datetime-local"][aria-invalid="true"]:focus, label.fwe-input-text input[type="number"][aria-invalid="true"]:focus {
8
- border-bottom: 1px solid var(--fwe-red) !important;
9
- }
10
-
11
- label.fwe-input-text input[type="text"][aria-invalid="true"]:disabled, label.fwe-input-text input[type="password"][aria-invalid="true"]:disabled, label.fwe-input-text input[type="date"][aria-invalid="true"]:disabled, label.fwe-input-text input[type="datetime-local"][aria-invalid="true"]:disabled, label.fwe-input-text input[type="number"][aria-invalid="true"]:disabled {
12
- border-bottom: 1px solid var(--fwe-control-disabled) !important;
13
- }
14
-
15
- label.fwe-input-text input[type="text"][aria-invalid="true"]:disabled ~ .fwe-input-text-label, label.fwe-input-text input[type="text"][aria-invalid="true"]:disabled ~ .fwe-input-text-invalid, label.fwe-input-text input[type="text"][aria-invalid="true"]:disabled ~ .fwe-input-text-info, label.fwe-input-text input[type="password"][aria-invalid="true"]:disabled ~ .fwe-input-text-label, label.fwe-input-text input[type="password"][aria-invalid="true"]:disabled ~ .fwe-input-text-invalid, label.fwe-input-text input[type="password"][aria-invalid="true"]:disabled ~ .fwe-input-text-info, label.fwe-input-text input[type="date"][aria-invalid="true"]:disabled ~ .fwe-input-text-label, label.fwe-input-text input[type="date"][aria-invalid="true"]:disabled ~ .fwe-input-text-invalid, label.fwe-input-text input[type="date"][aria-invalid="true"]:disabled ~ .fwe-input-text-info, label.fwe-input-text input[type="datetime-local"][aria-invalid="true"]:disabled ~ .fwe-input-text-label, label.fwe-input-text input[type="datetime-local"][aria-invalid="true"]:disabled ~ .fwe-input-text-invalid, label.fwe-input-text input[type="datetime-local"][aria-invalid="true"]:disabled ~ .fwe-input-text-info, label.fwe-input-text input[type="number"][aria-invalid="true"]:disabled ~ .fwe-input-text-label, label.fwe-input-text input[type="number"][aria-invalid="true"]:disabled ~ .fwe-input-text-invalid, label.fwe-input-text input[type="number"][aria-invalid="true"]:disabled ~ .fwe-input-text-info {
16
- color: var(--fwe-text-disabled);
17
- }
18
-
19
- label.fwe-input-text input[type="text"][aria-invalid="true"] ~ .fwe-input-text-info, label.fwe-input-text input[type="password"][aria-invalid="true"] ~ .fwe-input-text-info, label.fwe-input-text input[type="date"][aria-invalid="true"] ~ .fwe-input-text-info, label.fwe-input-text input[type="datetime-local"][aria-invalid="true"] ~ .fwe-input-text-info, label.fwe-input-text input[type="number"][aria-invalid="true"] ~ .fwe-input-text-info {
20
- display: none;
21
- }
22
-
23
- label.fwe-input-text input[type="text"][aria-invalid="true"] ~ .fwe-input-text-invalid, label.fwe-input-text input[type="password"][aria-invalid="true"] ~ .fwe-input-text-invalid, label.fwe-input-text input[type="date"][aria-invalid="true"] ~ .fwe-input-text-invalid, label.fwe-input-text input[type="datetime-local"][aria-invalid="true"] ~ .fwe-input-text-invalid, label.fwe-input-text input[type="number"][aria-invalid="true"] ~ .fwe-input-text-invalid {
24
- display: block;
25
- }
26
-
27
- label.fwe-input-text:has(input:disabled) {
28
- cursor: not-allowed;
29
- pointer-events: none;
30
- }
31
-
@@ -1,13 +0,0 @@
1
- import './TextInput.scss';
2
- import React, { type ComponentPropsWithoutRef, type ReactNode } from 'react';
3
- export interface TextInputProps extends Omit<ComponentPropsWithoutRef<'input'>, 'onChange'> {
4
- readonly?: boolean;
5
- value?: string;
6
- defaultValue?: string;
7
- label?: string;
8
- hint?: string;
9
- error?: string;
10
- icon?: ReactNode;
11
- onChange?: (value: string, event: React.ChangeEvent<HTMLInputElement>) => void;
12
- }
13
- export declare const TextInput: (props: TextInputProps & React.RefAttributes<HTMLLabelElement>) => React.ReactElement | null;