@itcase/ui 1.2.19 → 1.2.21

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 (182) hide show
  1. package/dist/cjs/components/Accordion.js +3 -2
  2. package/dist/cjs/components/Choice.js +1 -1
  3. package/dist/cjs/components/InputPassword.js +6 -6
  4. package/dist/cjs/components/Radio.js +85 -8
  5. package/dist/cjs/components/Switch.js +12 -8
  6. package/dist/cjs/components/Tile.js +3 -3
  7. package/dist/cjs/constants/componentProps/textColor.js +1 -1
  8. package/dist/cjs/constants/componentProps/textColorHover.js +1 -1
  9. package/dist/components/Accordion.js +3 -2
  10. package/dist/components/Choice.js +1 -1
  11. package/dist/components/InputPassword.js +6 -6
  12. package/dist/components/Radio.js +86 -5
  13. package/dist/components/Switch.js +12 -4
  14. package/dist/components/Tile.js +3 -3
  15. package/dist/constants/componentProps/textColor.js +1 -1
  16. package/dist/constants/componentProps/textColorHover.js +1 -1
  17. package/dist/css/components/Accordion/Accordion.css +1 -0
  18. package/dist/css/components/DatePicker/DatePicker.css +12 -12
  19. package/dist/css/components/Icon/Icon.css +4 -2
  20. package/dist/css/mixins/mixin_elevation.css +0 -2
  21. package/dist/css/mixins/mixin_typography.css +104 -84
  22. package/dist/css/mixins/mixin_utils.css +1 -1
  23. package/dist/css/styles/border-color/border-color.css +4 -2
  24. package/dist/css/styles/text-gradient/text-gradient.css +9 -4
  25. package/dist/css/tokens/colors.css +105 -0
  26. package/dist/css/tokens/elevation.css +10 -0
  27. package/dist/css/tokens/settings.css +31 -0
  28. package/dist/css/tokens/typography.css +127 -0
  29. package/dist/stories/Accordion.mdx +11 -0
  30. package/dist/stories/Accordion.stories.js +49 -32
  31. package/dist/stories/AccordionItem.mdx +15 -0
  32. package/dist/stories/AccordionItem.stories.js +69 -69
  33. package/dist/stories/AlignContent.mdx +85 -0
  34. package/dist/stories/AlignItems.mdx +74 -0
  35. package/dist/stories/AlignItems.stories.js +88 -0
  36. package/dist/stories/AlignSelf.mdx +85 -0
  37. package/dist/stories/AlignSelf.stories.js +101 -0
  38. package/dist/stories/Appearance.mdx +24 -9
  39. package/dist/stories/Appearance.stories.js +77 -23
  40. package/dist/stories/Avatar.mdx +23 -0
  41. package/dist/stories/Avatar.stories.js +69 -64
  42. package/dist/stories/Badge.mdx +20 -0
  43. package/dist/stories/Badge.stories.js +43 -44
  44. package/dist/stories/Button.mdx +48 -0
  45. package/dist/stories/Button.stories.js +26 -186
  46. package/dist/stories/Cell.mdx +23 -0
  47. package/dist/stories/Cell.stories.js +119 -119
  48. package/dist/stories/Checkbox.mdx +24 -0
  49. package/dist/stories/Checkbox.stories.js +42 -34
  50. package/dist/stories/Chips.mdx +31 -0
  51. package/dist/stories/Chips.stories.js +22 -67
  52. package/dist/stories/Choice.mdx +11 -0
  53. package/dist/stories/Choice.stories.js +59 -61
  54. package/dist/stories/Code.mdx +11 -0
  55. package/dist/stories/Code.stories.js +37 -40
  56. package/dist/stories/Columns.mdx +51 -0
  57. package/dist/stories/Columns.stories.js +80 -0
  58. package/dist/stories/DatePicker.mdx +31 -0
  59. package/dist/stories/DatePicker.stories.js +58 -59
  60. package/dist/stories/Dev.mdx +9 -0
  61. package/dist/stories/DevMode.mdx +8 -0
  62. package/dist/stories/Direction.mdx +84 -0
  63. package/dist/stories/Direction.stories.js +93 -0
  64. package/dist/stories/Divider.mdx +35 -0
  65. package/dist/stories/Divider.stories.js +28 -29
  66. package/dist/stories/Dot.mdx +19 -0
  67. package/dist/stories/Dot.stories.js +38 -39
  68. package/dist/stories/Drawer.mdx +11 -0
  69. package/dist/stories/Drawer.stories.js +75 -0
  70. package/dist/stories/Dropdown.mdx +12 -0
  71. package/dist/stories/Dropdown.stories.js +30 -29
  72. package/dist/stories/DropdownItem.mdx +19 -0
  73. package/dist/stories/DropdownItem.stories.js +76 -78
  74. package/dist/stories/Flex.stories.js +47 -0
  75. package/dist/stories/FlexAlignContent.stories.js +102 -0
  76. package/dist/stories/FlexAlignItems.stories.js +91 -0
  77. package/dist/stories/FlexAlignSelf.stories.js +97 -0
  78. package/dist/stories/FlexDirection.stories.js +112 -0
  79. package/dist/stories/FlexGrow.stories.js +69 -0
  80. package/dist/stories/FlexJustifyContent.stories.js +98 -0
  81. package/dist/stories/FlexOrder.stories.js +76 -0
  82. package/dist/stories/FlexWrap.stories.js +89 -0
  83. package/dist/stories/Grid.stories.js +202 -0
  84. package/dist/stories/Group.mdx +9 -0
  85. package/dist/stories/{Tab.group.stories.js → Group.stories.js} +60 -56
  86. package/dist/stories/Grow.mdx +40 -0
  87. package/dist/stories/Icon.mdx +15 -0
  88. package/dist/stories/Icon.stories.js +84 -82
  89. package/dist/stories/Image.mdx +15 -0
  90. package/dist/stories/Image.stories.js +134 -0
  91. package/dist/stories/Input.mdx +31 -0
  92. package/dist/stories/Input.stories.js +26 -26
  93. package/dist/stories/InputPassword.mdx +15 -0
  94. package/dist/stories/InputPassword.stories.js +32 -34
  95. package/dist/stories/JustifyContent.mdx +89 -0
  96. package/dist/stories/JustifyContent.stories.js +96 -0
  97. package/dist/stories/Label.mdx +31 -0
  98. package/dist/stories/Label.stories.js +63 -53
  99. package/dist/stories/Loader.mdx +31 -0
  100. package/dist/stories/Loader.stories.js +26 -28
  101. package/dist/stories/Logo.mdx +19 -0
  102. package/dist/stories/Logo.stories.js +28 -28
  103. package/dist/stories/MenuItem.mdx +15 -0
  104. package/dist/stories/MenuItem.stories.js +156 -91
  105. package/dist/stories/Message.mdx +12 -0
  106. package/dist/stories/Message.stories.js +34 -0
  107. package/dist/stories/ModalConfirm.stories.js +48 -47
  108. package/dist/stories/ModalDefault.stories.js +21 -20
  109. package/dist/stories/Notification.mdx +23 -0
  110. package/dist/stories/Notification.stories.js +24 -47
  111. package/dist/stories/Order.mdx +52 -0
  112. package/dist/stories/Overview.mdx +1 -2
  113. package/dist/stories/Pagination.mdx +11 -0
  114. package/dist/stories/Pagination.stories.js +24 -27
  115. package/dist/stories/Playground.mdx +1 -2
  116. package/dist/stories/Radio.mdx +29 -0
  117. package/dist/stories/Radio.stories.js +32 -33
  118. package/dist/stories/Response.mdx +18 -0
  119. package/dist/stories/Response.stories.js +66 -0
  120. package/dist/stories/SearchInput.mdx +19 -0
  121. package/dist/stories/{Search-input.stories.js → SearchInput.stories.js} +79 -62
  122. package/dist/stories/Segmented.mdx +11 -0
  123. package/dist/stories/Segmented.stories.js +49 -50
  124. package/dist/stories/Select.stories.js +155 -155
  125. package/dist/stories/Size.mdx +35 -0
  126. package/dist/stories/Size.stories.js +101 -0
  127. package/dist/stories/Skeleton.mdx +9 -0
  128. package/dist/stories/State.mdx +19 -0
  129. package/dist/stories/State.stories.js +70 -0
  130. package/dist/stories/Switch.mdx +23 -0
  131. package/dist/stories/Switch.stories.js +23 -23
  132. package/dist/stories/Text.mdx +35 -0
  133. package/dist/stories/Text.stories.js +172 -0
  134. package/dist/stories/Textarea.mdx +15 -0
  135. package/dist/stories/Textarea.stories.js +27 -27
  136. package/dist/stories/Tile.mdx +19 -0
  137. package/dist/stories/Tile.stories.js +111 -96
  138. package/dist/stories/Title.mdx +31 -0
  139. package/dist/stories/Title.stories.js +168 -0
  140. package/dist/stories/Tooltip.mdx +19 -0
  141. package/dist/stories/Tooltip.stories.js +164 -0
  142. package/dist/stories/WithTooltip.mdx +9 -0
  143. package/dist/stories/Wrap.mdx +52 -0
  144. package/dist/stories/Wrap.stories.js +74 -0
  145. package/dist/types/components/Accordion/Accordion.interface.d.ts +4 -0
  146. package/dist/types/components/Choice/Choice.interface.d.ts +0 -2
  147. package/dist/types/components/InputPassword/InputPassword.interface.d.ts +10 -8
  148. package/dist/types/components/Tile/Tile.d.ts +1 -1
  149. package/dist/types/components/Tile/Tile.interface.d.ts +3 -1
  150. package/dist/types/config/forms/datepicker.d.ts +18 -0
  151. package/dist/types/config/forms/index.d.ts +4 -0
  152. package/dist/types/config/forms/input.d.ts +14 -0
  153. package/dist/types/config/forms/select.d.ts +50 -0
  154. package/package.json +36 -42
  155. package/dist/Radio-BQo97TZL.js +0 -89
  156. package/dist/Radio-oMf0vN7T.js +0 -86
  157. package/dist/Switch-B5yVEqxz.js +0 -14
  158. package/dist/Switch-DEXsrPCo.js +0 -12
  159. package/dist/cjs/components/FormField.js +0 -122
  160. package/dist/components/FormField.js +0 -116
  161. package/dist/css/mixins/mixin.css +0 -78
  162. package/dist/stories/FormFieldCheckbox.stories.js +0 -77
  163. package/dist/stories/FormFieldChoice.stories.js +0 -75
  164. package/dist/stories/FormFieldDatepicker.stories.js +0 -51
  165. package/dist/stories/FormFieldFileInput.stories.js +0 -58
  166. package/dist/stories/FormFieldInput.stories.js +0 -66
  167. package/dist/stories/FormFieldInputPassword.stories.js +0 -66
  168. package/dist/stories/FormFieldMultiBadgeSelect.stories.js +0 -132
  169. package/dist/stories/FormFieldMultiSelect.stories.js +0 -127
  170. package/dist/stories/FormFieldSelect.stories.js +0 -99
  171. package/dist/stories/FormFieldSelectGroup.stories.js +0 -84
  172. package/dist/stories/NotFound.stories.js +0 -93
  173. package/dist/stories/Tab.appearance.stories.js +0 -260
  174. package/dist/stories/Tab.size.stories.js +0 -259
  175. package/dist/stories/Tab.state.stories.js +0 -227
  176. package/dist/types/components/FormField/ChoiceField.d.ts +0 -8
  177. package/dist/types/components/FormField/FormField.d.ts +0 -9
  178. package/dist/types/components/FormField/FormFiled.interface.d.ts +0 -77
  179. package/dist/types/components/FormField/PasswordField.d.ts +0 -9
  180. package/dist/types/components/FormField/SelectField.d.ts +0 -9
  181. package/dist/types/components/FormField/SwitchField.d.ts +0 -8
  182. package/dist/types/components/FormField/index.d.ts +0 -6
@@ -1,86 +0,0 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
- import clsx from 'clsx';
3
- import { useDeviceTargetClass } from './hooks/useDeviceTargetClass.js';
4
- import { T as Text } from './Text-CG3xPG27.js';
5
-
6
- var radioConfig = {
7
- state: undefined,
8
- setState: function (newComponent) {
9
- radioConfig.state = newComponent;
10
- },
11
- appearance: undefined,
12
- setAppearance: function (newComponent) {
13
- radioConfig.appearance = newComponent;
14
- },
15
- };
16
- function Radio(props) {
17
- var appearance = props.appearance, checked = props.checked, className = props.className, desc = props.desc, descTextColor = props.descTextColor, descTextSize = props.descTextSize, descTextWeight = props.descTextWeight, disabled = props.disabled, id = props.id, label = props.label, labelTextColor = props.labelTextColor, labelTextSize = props.labelTextSize, labelTextWeight = props.labelTextWeight, _a = props.tag, Tag = _a === void 0 ? 'label' : _a, onChange = props.onChange;
18
- var fillClass = useDeviceTargetClass(props, {
19
- prefix: 'fill_',
20
- propsKey: 'fill',
21
- });
22
- var shapeClass = useDeviceTargetClass(props, {
23
- prefix: 'radio_shape_',
24
- propsKey: 'shape',
25
- });
26
- var stateShapeClass = useDeviceTargetClass(props, {
27
- prefix: 'radio__state_shape_',
28
- propsKey: 'stateShape',
29
- });
30
- var stateFillClass = useDeviceTargetClass(props, {
31
- prefix: 'fill_',
32
- propsKey: checked ? 'stateFillChecked' : 'stateFill',
33
- });
34
- var stateFillDisabledClass = useDeviceTargetClass(props, {
35
- prefix: 'fill_',
36
- propsKey: checked ? 'stateFillDisabledChecked' : 'stateFillDisabled',
37
- });
38
- var stateCheckmarkFillClass = useDeviceTargetClass(props, {
39
- prefix: 'radio_checkmark_fill_',
40
- propsKey: disabled ? 'stateCheckmarkFillDisabled' : 'stateCheckmarkFill',
41
- });
42
- var stateBorderWidthClass = useDeviceTargetClass(props, {
43
- prefix: 'border-width_',
44
- propsKey: 'stateBorderWidth',
45
- });
46
- var stateBorderColorClass = useDeviceTargetClass(props, {
47
- prefix: 'border-color_',
48
- propsKey: checked ? 'stateBorderColorChecked' : 'stateBorderColor',
49
- });
50
- var stateBorderColorHoverClass = useDeviceTargetClass(props, {
51
- prefix: 'border-color_hover_',
52
- propsKey: checked ? 'stateBorderColorHoverChecked' : 'stateBorderColorHover',
53
- });
54
- var stateBorderColorDisabledClass = useDeviceTargetClass(props, {
55
- prefix: 'border-color_',
56
- propsKey: checked ? 'stateBorderColorDisabledChecked' : 'stateBorderColorDisabled',
57
- });
58
- var appearanceConfig = appearance && radioConfig.appearance && radioConfig.appearance[appearance];
59
- return (jsxs(Tag, { className: clsx(className, 'radio', fillClass, shapeClass), htmlFor: id, children: [jsxs("div", { className: clsx('radio__item', stateCheckmarkFillClass ||
60
- ((appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.stateCheckmarkFill) &&
61
- "radio_checkmark_fill_".concat(appearanceConfig.stateCheckmarkFill)
62
- .replace(/([A-Z])/g, '-$1')
63
- .toLowerCase())), children: [jsx("input", { checked: checked, className: "radio__input", disabled: disabled,
64
- // @ts-expect-error
65
- id: id, type: "radio", onChange: onChange }), jsx("div", { className: clsx('radio__state', disabled ? stateFillDisabledClass : stateFillClass, disabled
66
- ? stateBorderColorDisabledClass
67
- : stateBorderColorClass ||
68
- ((appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.stateBorderColor) &&
69
- "border-color_".concat(appearanceConfig.stateBorderColor)
70
- .replace(/([A-Z])/g, '-$1')
71
- .toLowerCase()), stateBorderColorHoverClass, stateShapeClass ||
72
- ((appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.stateShape) &&
73
- "radio__state_shape_".concat(appearanceConfig.stateShape)
74
- .replace(/([A-Z])/g, '-$1')
75
- .toLowerCase()), stateBorderWidthClass ||
76
- ((appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.stateBorderWidth) &&
77
- "border-width_".concat(appearanceConfig.stateBorderWidth)
78
- .replace(/([A-Z])/g, '-$1')
79
- .toLowerCase())), children: "\u00A0" }), jsx("div", { className: "radio__state-checkmark", children: "\u00A0" })] }), label && (jsx(Text, { className: "radio__label", size: labelTextSize || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.labelTextSize), textColor: labelTextColor || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.labelTextColor), textWeight: labelTextWeight, children: label })), desc && (jsx(Text, { className: "radio__desc", size: descTextSize || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.descTextSize), textColor: descTextColor || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.descTextColor), textWeight: descTextWeight, children: desc }))] }));
80
- }
81
- Radio.defaultProps = {
82
- shape: 'circular',
83
- tag: 'label',
84
- };
85
-
86
- export { Radio as R, radioConfig as r };
@@ -1,14 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var React = require('react');
5
- var clsx = require('clsx');
6
-
7
- var Switch = React.forwardRef(function Switch(props, ref) {
8
- var className = props.className, set = props.set, size = props.size, id = props.id, checked = props.checked, disabled = props.disabled, onChange = props.onChange;
9
- return (jsxRuntime.jsxs("div", { className: clsx('switch', className, size && "switch_size_".concat(size), set && "switch_set_".concat(set)), children: [jsxRuntime.jsx("input", { checked: checked, className: "switch__checkbox", disabled: disabled, id: id,
10
- // @ts-expect-error
11
- ref: ref, type: "checkbox", onChange: onChange }), jsxRuntime.jsx("div", { className: "switch__bg", children: "\u00A0" }), jsxRuntime.jsx("div", { className: "switch__toggle", children: "\u00A0" })] }));
12
- });
13
-
14
- exports.Switch = Switch;
@@ -1,12 +0,0 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
- import React from 'react';
3
- import clsx from 'clsx';
4
-
5
- var Switch = React.forwardRef(function Switch(props, ref) {
6
- var className = props.className, set = props.set, size = props.size, id = props.id, checked = props.checked, disabled = props.disabled, onChange = props.onChange;
7
- return (jsxs("div", { className: clsx('switch', className, size && "switch_size_".concat(size), set && "switch_set_".concat(set)), children: [jsx("input", { checked: checked, className: "switch__checkbox", disabled: disabled, id: id,
8
- // @ts-expect-error
9
- ref: ref, type: "checkbox", onChange: onChange }), jsx("div", { className: "switch__bg", children: "\u00A0" }), jsx("div", { className: "switch__toggle", children: "\u00A0" })] }));
10
- });
11
-
12
- export { Switch as S };
@@ -1,122 +0,0 @@
1
- 'use strict';
2
-
3
- var tslib_es6 = require('../../tslib.es6-CCZ3TN_7.js');
4
- var jsxRuntime = require('react/jsx-runtime');
5
- var clsx = require('clsx');
6
- var Divider = require('../../Divider-BjB5MD6u.js');
7
- var Text = require('../../Text-_YhyTsQ1.js');
8
- var Icon = require('../../Icon-D-zjcPll.js');
9
- var useStyles = require('../hooks/useStyles.js');
10
- var useDeviceTargetClass = require('../hooks/useDeviceTargetClass.js');
11
- var Radio = require('../../Radio-BQo97TZL.js');
12
- require('react-select');
13
- var index = require('./Select.js');
14
- require('react');
15
- require('../../Badge-2JkquAEb.js');
16
- require('../../Group-B2oTJg0t.js');
17
- var Switch = require('../../Switch-B5yVEqxz.js');
18
- require('react-inlinesvg');
19
- require('../../Link-CqWzwh8V.js');
20
- require('../../Tooltip-DkTKx9n-.js');
21
- require('../../Title-zwP6c2U2.js');
22
- require('../context/UIContext.js');
23
- require('prop-types');
24
- require('../hooks/useMediaQueries.js');
25
- require('react-responsive');
26
- require('lodash/camelCase');
27
- require('lodash/maxBy');
28
- require('lodash/upperFirst');
29
- require('../hooks/styleAttributes.js');
30
- require('lodash/castArray');
31
- require('react-select/creatable');
32
-
33
- function FormField(props) {
34
- var id = props.id, children = props.children, afterItem = props.afterItem, dataTestId = props.dataTestId, beforeItem = props.beforeItem, dividerWidth = props.dividerWidth, dividerDirection = props.dividerDirection, set = props.set, className = props.className, dividerSize = props.dividerSize, dividerFill = props.dividerFill, descSize = props.descSize, descTextWeight = props.descTextWeight, descTextColor = props.descTextColor, desc = props.desc, label = props.label, labelTextSize = props.labelTextSize, labelTextWeight = props.labelTextWeight, labelTextColor = props.labelTextColor, clearIconFill = props.clearIconFill, clearIcon = props.clearIcon, clearIconSize = props.clearIconSize, messageSize = props.messageSize, messageTextWeight = props.messageTextWeight, messageTextColor = props.messageTextColor, message = props.message;
35
- var sizeClass = useDeviceTargetClass.useDeviceTargetClass(props, {
36
- prefix: 'form-field_size_',
37
- propsKey: 'size',
38
- });
39
- var fillClass = useDeviceTargetClass.useDeviceTargetClass(props, {
40
- prefix: 'fill_',
41
- propsKey: 'fill',
42
- });
43
- var inputFillClass = useDeviceTargetClass.useDeviceTargetClass(props, {
44
- prefix: 'fill_',
45
- propsKey: 'inputFill',
46
- });
47
- var shapeClass = useDeviceTargetClass.useDeviceTargetClass(props, {
48
- prefix: 'form-field_shape_',
49
- propsKey: 'shape',
50
- });
51
- var inputShapeClass = useDeviceTargetClass.useDeviceTargetClass(props, {
52
- prefix: 'form-field__item-value_shape_',
53
- propsKey: 'inputShape',
54
- });
55
- var directionClass = useDeviceTargetClass.useDeviceTargetClass(props, {
56
- prefix: 'direction_',
57
- propsKey: 'direction',
58
- });
59
- // @ts-expect-error
60
- var formFieldStyles = useStyles.useStyles(props).styles;
61
- return (jsxRuntime.jsxs("div", { className: clsx(className, 'form-field', set && "form-field_set_".concat(set), sizeClass, fillClass, shapeClass, directionClass), "data-test-id": dataTestId, style: formFieldStyles, children: [label && (jsxRuntime.jsx("label", { htmlFor: id, className: "form-field__label", children: jsxRuntime.jsx(Text.Text, { size: labelTextSize, textWeight: labelTextWeight, textColor: labelTextColor, children: label }) })), desc && (jsxRuntime.jsx("div", { className: "form-field__desc", children: jsxRuntime.jsx(Text.Text, { size: descSize, textWeight: descTextWeight, textColor: descTextColor, children: desc }) })), jsxRuntime.jsxs("div", { className: clsx('form-field__item', inputFillClass, inputShapeClass), children: [jsxRuntime.jsxs("div", { className: clsx('form-field__item-wrapper'), children: [beforeItem, children, clearIcon && jsxRuntime.jsx(Icon.Icon, { fill: clearIconFill, SvgImage: clearIcon, size: clearIconSize }), afterItem] }), jsxRuntime.jsx(Divider.Divider, { className: "form-field__item-divider", direction: dividerDirection, fill: dividerFill, size: dividerSize, width: dividerWidth })] }), message && (jsxRuntime.jsx("div", { className: "form-field__message", children: jsxRuntime.jsx(Text.Text, { size: messageSize, textWeight: messageTextWeight, textColor: messageTextColor, children: message }) }))] }));
62
- }
63
- FormField.defaultProps = {
64
- dividerWidth: 'fill',
65
- dividerDirection: 'horizontal',
66
- };
67
-
68
- function ChoiceField(props) {
69
- var radioId = props.radioId, radioClassName = props.radioClassName, radioFillCheckmark = props.radioFillCheckmark, radioFillChecked = props.radioFillChecked, radioFill = props.radioFill, radioFillDisabled = props.radioFillDisabled, radioShape = props.radioShape, radioBorder = props.radioBorder;
70
- return (jsxRuntime.jsx(FormField, tslib_es6.__assign({}, props, { children: jsxRuntime.jsx(Radio.Radio, { border: radioBorder, className: radioClassName, fill: radioFill, id: radioId, shape: radioShape, stateCheckmarkFill: radioFillCheckmark, stateFillChecked: radioFillChecked, stateFillDisabled: radioFillDisabled }) })));
71
- }
72
- ChoiceField.defaultProps = {
73
- radioClassName: 'form-field__item-radio',
74
- };
75
-
76
- function PasswordField(props) {
77
- var placeholder = props.placeholder, passwordClassName = props.passwordClassName, value = props.value;
78
- var placeholderColorClass = useDeviceTargetClass.useDeviceTargetClass(props, {
79
- prefix: 'placeholder-text-color_',
80
- propsKey: 'placeholderColor',
81
- });
82
- var valueTextColorClass = useDeviceTargetClass.useDeviceTargetClass(props, {
83
- prefix: 'text text-color_',
84
- propsKey: 'valueTextColor',
85
- });
86
- var valueTextSizeClass = useDeviceTargetClass.useDeviceTargetClass(props, {
87
- prefix: 'text_size_',
88
- propsKey: 'valueTextSize',
89
- });
90
- return (jsxRuntime.jsx(FormField, tslib_es6.__assign({}, props, { children: jsxRuntime.jsx("input", { type: "text", value: value, placeholder: placeholder, className: clsx(passwordClassName, valueTextSizeClass, valueTextColorClass, placeholderColorClass) }) })));
91
- }
92
- PasswordField.defaultProps = {
93
- set: 'password',
94
- passwordClassName: 'form-field__item-password',
95
- };
96
-
97
- function SelectField(props) {
98
- var className = props.className, selectInputClass = props.selectInputClass, selectFill = props.selectFill, selectShape = props.selectShape, selectBorder = props.selectBorder, selectSize = props.selectSize, selectOptionFill = props.selectOptionFill, selectOptionTextSize = props.selectOptionTextSize, selectOptionTextColor = props.selectOptionTextColor, selectOptionBefore = props.selectOptionBefore, selectOptionAfter = props.selectOptionAfter, selectInputBefore = props.selectInputBefore, selectInputAfter = props.selectInputAfter, selectInputFill = props.selectInputFill, selectInputTextSize = props.selectInputTextSize, selectInputTextColor = props.selectInputTextColor;
99
- return (jsxRuntime.jsx(FormField, tslib_es6.__assign({}, props, { children: jsxRuntime.jsx(index.SelectInput
100
- // @ts-expect-error
101
- , {
102
- // @ts-expect-error
103
- className: clsx(selectInputClass, className), borderColor: selectBorder, fill: selectFill, inputAfter: selectInputAfter, inputBefore: selectInputBefore, inputFill: selectInputFill, inputTextColor: selectInputTextColor, inputTextSize: selectInputTextSize, optionAfter: selectOptionAfter, optionBefore: selectOptionBefore, optionFill: selectOptionFill, optionTextColor: selectOptionTextColor, optionTextSize: selectOptionTextSize, shape: selectShape, size: selectSize }) })));
104
- }
105
- SelectField.defaultProps = {
106
- set: 'select',
107
- selectInputClass: 'form-field__item-select',
108
- };
109
-
110
- function SwitchField(props) {
111
- var className = props.className;
112
- return (jsxRuntime.jsx(FormField, tslib_es6.__assign({}, props, { children: jsxRuntime.jsx(Switch.Switch, { className: clsx('form-field__item-switch', className) }) })));
113
- }
114
- SwitchField.defaultProps = {
115
- set: 'switch',
116
- };
117
-
118
- exports.ChoiceField = ChoiceField;
119
- exports.FormField = FormField;
120
- exports.PasswordField = PasswordField;
121
- exports.SelectField = SelectField;
122
- exports.SwitchField = SwitchField;
@@ -1,116 +0,0 @@
1
- import { _ as __assign } from '../tslib.es6-5FtW-kfi.js';
2
- import { jsxs, jsx } from 'react/jsx-runtime';
3
- import clsx from 'clsx';
4
- import { D as Divider } from '../Divider-U5UdY-ef.js';
5
- import { T as Text } from '../Text-CG3xPG27.js';
6
- import { I as Icon } from '../Icon-DD_Vyrw0.js';
7
- import { useStyles } from '../hooks/useStyles.js';
8
- import { useDeviceTargetClass } from '../hooks/useDeviceTargetClass.js';
9
- import { R as Radio } from '../Radio-oMf0vN7T.js';
10
- import 'react-select';
11
- import { SelectInput } from './Select.js';
12
- import 'react';
13
- import '../Badge-CrhdvxY6.js';
14
- import '../Group-CVUfaHaS.js';
15
- import { S as Switch } from '../Switch-DEXsrPCo.js';
16
- import 'react-inlinesvg';
17
- import '../Link-CeQuavin.js';
18
- import '../Tooltip-DJufHBiQ.js';
19
- import '../Title-BfSFPJtJ.js';
20
- import '../context/UIContext.js';
21
- import 'prop-types';
22
- import '../hooks/useMediaQueries.js';
23
- import 'react-responsive';
24
- import 'lodash/camelCase';
25
- import 'lodash/maxBy';
26
- import 'lodash/upperFirst';
27
- import '../hooks/styleAttributes.js';
28
- import 'lodash/castArray';
29
- import 'react-select/creatable';
30
-
31
- function FormField(props) {
32
- var id = props.id, children = props.children, afterItem = props.afterItem, dataTestId = props.dataTestId, beforeItem = props.beforeItem, dividerWidth = props.dividerWidth, dividerDirection = props.dividerDirection, set = props.set, className = props.className, dividerSize = props.dividerSize, dividerFill = props.dividerFill, descSize = props.descSize, descTextWeight = props.descTextWeight, descTextColor = props.descTextColor, desc = props.desc, label = props.label, labelTextSize = props.labelTextSize, labelTextWeight = props.labelTextWeight, labelTextColor = props.labelTextColor, clearIconFill = props.clearIconFill, clearIcon = props.clearIcon, clearIconSize = props.clearIconSize, messageSize = props.messageSize, messageTextWeight = props.messageTextWeight, messageTextColor = props.messageTextColor, message = props.message;
33
- var sizeClass = useDeviceTargetClass(props, {
34
- prefix: 'form-field_size_',
35
- propsKey: 'size',
36
- });
37
- var fillClass = useDeviceTargetClass(props, {
38
- prefix: 'fill_',
39
- propsKey: 'fill',
40
- });
41
- var inputFillClass = useDeviceTargetClass(props, {
42
- prefix: 'fill_',
43
- propsKey: 'inputFill',
44
- });
45
- var shapeClass = useDeviceTargetClass(props, {
46
- prefix: 'form-field_shape_',
47
- propsKey: 'shape',
48
- });
49
- var inputShapeClass = useDeviceTargetClass(props, {
50
- prefix: 'form-field__item-value_shape_',
51
- propsKey: 'inputShape',
52
- });
53
- var directionClass = useDeviceTargetClass(props, {
54
- prefix: 'direction_',
55
- propsKey: 'direction',
56
- });
57
- // @ts-expect-error
58
- var formFieldStyles = useStyles(props).styles;
59
- return (jsxs("div", { className: clsx(className, 'form-field', set && "form-field_set_".concat(set), sizeClass, fillClass, shapeClass, directionClass), "data-test-id": dataTestId, style: formFieldStyles, children: [label && (jsx("label", { htmlFor: id, className: "form-field__label", children: jsx(Text, { size: labelTextSize, textWeight: labelTextWeight, textColor: labelTextColor, children: label }) })), desc && (jsx("div", { className: "form-field__desc", children: jsx(Text, { size: descSize, textWeight: descTextWeight, textColor: descTextColor, children: desc }) })), jsxs("div", { className: clsx('form-field__item', inputFillClass, inputShapeClass), children: [jsxs("div", { className: clsx('form-field__item-wrapper'), children: [beforeItem, children, clearIcon && jsx(Icon, { fill: clearIconFill, SvgImage: clearIcon, size: clearIconSize }), afterItem] }), jsx(Divider, { className: "form-field__item-divider", direction: dividerDirection, fill: dividerFill, size: dividerSize, width: dividerWidth })] }), message && (jsx("div", { className: "form-field__message", children: jsx(Text, { size: messageSize, textWeight: messageTextWeight, textColor: messageTextColor, children: message }) }))] }));
60
- }
61
- FormField.defaultProps = {
62
- dividerWidth: 'fill',
63
- dividerDirection: 'horizontal',
64
- };
65
-
66
- function ChoiceField(props) {
67
- var radioId = props.radioId, radioClassName = props.radioClassName, radioFillCheckmark = props.radioFillCheckmark, radioFillChecked = props.radioFillChecked, radioFill = props.radioFill, radioFillDisabled = props.radioFillDisabled, radioShape = props.radioShape, radioBorder = props.radioBorder;
68
- return (jsx(FormField, __assign({}, props, { children: jsx(Radio, { border: radioBorder, className: radioClassName, fill: radioFill, id: radioId, shape: radioShape, stateCheckmarkFill: radioFillCheckmark, stateFillChecked: radioFillChecked, stateFillDisabled: radioFillDisabled }) })));
69
- }
70
- ChoiceField.defaultProps = {
71
- radioClassName: 'form-field__item-radio',
72
- };
73
-
74
- function PasswordField(props) {
75
- var placeholder = props.placeholder, passwordClassName = props.passwordClassName, value = props.value;
76
- var placeholderColorClass = useDeviceTargetClass(props, {
77
- prefix: 'placeholder-text-color_',
78
- propsKey: 'placeholderColor',
79
- });
80
- var valueTextColorClass = useDeviceTargetClass(props, {
81
- prefix: 'text text-color_',
82
- propsKey: 'valueTextColor',
83
- });
84
- var valueTextSizeClass = useDeviceTargetClass(props, {
85
- prefix: 'text_size_',
86
- propsKey: 'valueTextSize',
87
- });
88
- return (jsx(FormField, __assign({}, props, { children: jsx("input", { type: "text", value: value, placeholder: placeholder, className: clsx(passwordClassName, valueTextSizeClass, valueTextColorClass, placeholderColorClass) }) })));
89
- }
90
- PasswordField.defaultProps = {
91
- set: 'password',
92
- passwordClassName: 'form-field__item-password',
93
- };
94
-
95
- function SelectField(props) {
96
- var className = props.className, selectInputClass = props.selectInputClass, selectFill = props.selectFill, selectShape = props.selectShape, selectBorder = props.selectBorder, selectSize = props.selectSize, selectOptionFill = props.selectOptionFill, selectOptionTextSize = props.selectOptionTextSize, selectOptionTextColor = props.selectOptionTextColor, selectOptionBefore = props.selectOptionBefore, selectOptionAfter = props.selectOptionAfter, selectInputBefore = props.selectInputBefore, selectInputAfter = props.selectInputAfter, selectInputFill = props.selectInputFill, selectInputTextSize = props.selectInputTextSize, selectInputTextColor = props.selectInputTextColor;
97
- return (jsx(FormField, __assign({}, props, { children: jsx(SelectInput
98
- // @ts-expect-error
99
- , {
100
- // @ts-expect-error
101
- className: clsx(selectInputClass, className), borderColor: selectBorder, fill: selectFill, inputAfter: selectInputAfter, inputBefore: selectInputBefore, inputFill: selectInputFill, inputTextColor: selectInputTextColor, inputTextSize: selectInputTextSize, optionAfter: selectOptionAfter, optionBefore: selectOptionBefore, optionFill: selectOptionFill, optionTextColor: selectOptionTextColor, optionTextSize: selectOptionTextSize, shape: selectShape, size: selectSize }) })));
102
- }
103
- SelectField.defaultProps = {
104
- set: 'select',
105
- selectInputClass: 'form-field__item-select',
106
- };
107
-
108
- function SwitchField(props) {
109
- var className = props.className;
110
- return (jsx(FormField, __assign({}, props, { children: jsx(Switch, { className: clsx('form-field__item-switch', className) }) })));
111
- }
112
- SwitchField.defaultProps = {
113
- set: 'switch',
114
- };
115
-
116
- export { ChoiceField, FormField, PasswordField, SelectField, SwitchField };
@@ -1,78 +0,0 @@
1
- /* stylelint-disable length-zero-no-unit */
2
-
3
- @define-mixin h1 $weight: normal, $minLetterSpacing: 0px, $maxLetterSpacing: 0px {
4
- @mixin font $weight, 32px, 48px, $minLetterSpacing, 80px, 96px, $maxLetterSpacing,
5
- var(--font-primary);
6
- }
7
-
8
- @define-mixin h2 $weight: normal, $minLetterSpacing: 0px, $maxLetterSpacing: 0px {
9
- @mixin font $weight, 24px, 28px, $minLetterSpacing, 56px, 64px, $maxLetterSpacing,
10
- var(--font-primary);
11
- }
12
-
13
- @define-mixin h3 $weight: normal, $minLetterSpacing: 0px, $maxLetterSpacing: 0px {
14
- @mixin font $weight, 24px, 28px, $minLetterSpacing, 40px, 48px, $maxLetterSpacing,
15
- var(--font-primary);
16
- }
17
-
18
- @define-mixin h4 $weight: normal, $minLetterSpacing: 0px, $maxLetterSpacing: 0px {
19
- @mixin font $weight, 22px, 24px, $minLetterSpacing, 22px, 24px, $maxLetterSpacing,
20
- var(--font-primary);
21
- }
22
-
23
- @define-mixin h5 $weight: normal, $minLetterSpacing: 0px, $maxLetterSpacing: 0px {
24
- @mixin font $weight, 16px, 24px, $minLetterSpacing, 16px, 24px, $maxLetterSpacing,
25
- var(--font-primary);
26
- }
27
-
28
- @define-mixin h6 $weight: normal, $minLetterSpacing: 0px, $maxLetterSpacing: 0px {
29
- @mixin font $weight, 14px, 20px, $minLetterSpacing, 14px, 20px, $maxLetterSpacing,
30
- var(--font-primary);
31
- }
32
-
33
- @define-mixin p $weight: normal, $minLetterSpacing: 0px, $maxLetterSpacing: 0px {
34
- @mixin font $weight, 14px, 20px, $minLetterSpacing, 18px, 28px, $maxLetterSpacing,
35
- var(--font-primary);
36
- }
37
-
38
- @define-mixin text-xxs $weight: normal, $minLetterSpacing: 0px, $maxLetterSpacing: 0px {
39
- @mixin font $weight, 9px, 12px, $minLetterSpacing, 9px, 12px, $maxLetterSpacing,
40
- var(--font-primary);
41
- }
42
-
43
- @define-mixin text-xs $weight: normal, $minLetterSpacing: 0px, $maxLetterSpacing: 0px {
44
- @mixin font $weight, 9px, 12px, $minLetterSpacing, 9px, 12px, $maxLetterSpacing,
45
- var(--font-primary);
46
- }
47
-
48
- @define-mixin text-s $weight: normal, $minLetterSpacing: 0px, $maxLetterSpacing: 0px {
49
- @mixin font $weight, 10px, 12px, $minLetterSpacing, 10px, 12px, $maxLetterSpacing,
50
- var(--font-primary);
51
- }
52
-
53
- @define-mixin text-m $weight: normal, $minLetterSpacing: 0px, $maxLetterSpacing: 0px {
54
- @mixin font $weight, 12px, 18px, $minLetterSpacing, 12px, 18px, $maxLetterSpacing,
55
- var(--font-primary);
56
- }
57
-
58
- @define-mixin text-l $weight: normal, $minLetterSpacing: 0px, $maxLetterSpacing: 0px {
59
- @mixin font $weight, 14px, 20px, $minLetterSpacing, 14px, 20px, $maxLetterSpacing,
60
- var(--font-primary);
61
- }
62
-
63
- @define-mixin text-xl $weight: normal, $minLetterSpacing: 0px, $maxLetterSpacing: 0px {
64
- @mixin font $weight, 16px, 24px, $minLetterSpacing, 16px, 24px, $maxLetterSpacing,
65
- var(--font-primary);
66
- }
67
-
68
- @define-mixin text-xxl $weight: normal, $minLetterSpacing: 0px, $maxLetterSpacing: 0px {
69
- @mixin font $weight, 16px, 24px, $minLetterSpacing, 16px, 24px, $maxLetterSpacing,
70
- var(--font-primary);
71
- }
72
-
73
- @define-mixin text-gradient-primary {
74
- color: transparent;
75
- background: linear-gradient(90deg, hsla(266, 100%, 64%, 1) 0%, hsla(213, 79%, 68%, 1) 50%);
76
- background-clip: text;
77
- text-fill-color: transparent;
78
- }
@@ -1,77 +0,0 @@
1
- import React from 'react'
2
- import { formTypes, emailValidation, addRequiredFieldsParamToSchema } from '@itcase/forms'
3
- import * as yup from 'yup'
4
-
5
- import Form from './form.js'
6
-
7
- export default {
8
- title: 'Form Field / Checkbox',
9
- component: Form,
10
- }
11
-
12
- const Template = (args) => {
13
- const DEFAULT_REQUIRED_MESSAGE = 'This field is required'
14
- const DEFAULT_INVALID_EMAIL_MESSAGE = 'Username must be a valid email'
15
-
16
- // Create validation schema with rules for form fields
17
- const validationSchema = yup.object().shape({
18
- formFieldCheckbox: yup
19
- .string()
20
- .test('formFieldCheckbox', DEFAULT_INVALID_EMAIL_MESSAGE, emailValidation)
21
- .required(DEFAULT_REQUIRED_MESSAGE),
22
- password: yup.string().trim().required(DEFAULT_REQUIRED_MESSAGE),
23
- })
24
-
25
- // Add "requiredFields" as new param to schema
26
- if (!('requiredFields' in validationSchema)) {
27
- addRequiredFieldsParamToSchema(validationSchema)
28
- }
29
-
30
- // Create form config with fields
31
- const config = {
32
- formFieldCheckbox: {
33
- type: formTypes.checkbox,
34
- isRequired: true,
35
- name: 'formFieldCheckbox',
36
- fieldProps: {
37
- type: 'normal',
38
- width: 'fill',
39
- direction: 'vertical',
40
- dividerFill: 'errorPrimary',
41
- fill: 'surfacePrimary',
42
- label: 'Title',
43
- labelTextSize: 'm',
44
- labelTextColor: 'surfaceTextPrimary',
45
- message: 'Help Text',
46
- messageTextSize: 'xs',
47
- messageTextColor: 'surfaceTextSecondary',
48
- errorMessageTextSize: 'xs',
49
- errorMessageTextColor: 'errorTextPrimary',
50
- },
51
- inputProps: {
52
- width: 'fill',
53
- caret: 'secondaryItemSecondary',
54
- placeholder: 'Placeholder',
55
- placeholderTextColor: 'surfaceTextSecondary',
56
- shape: 'rounded',
57
- borderColor: 'surfaceBorderQuaternary',
58
- textColor: 'surfaceTextPrimary',
59
- textSize: 'm',
60
- stateShape: 'rounded',
61
- stateBorderColor: 'accentBorderSecondary',
62
- stateBorderColorChecked: 'accentBorderSecondary',
63
- stateBorderColorDisabled: 'accentBorderSecondary',
64
- stateBorderColorDisabledChecked: 'accentBorderSecondary',
65
- stateBorderWidth: 1,
66
- stateFillChecked: 'accentPrimary',
67
- stateFillDisabled: 'accentDisabled',
68
- stateFillDisabledChecked: 'accentDisabled',
69
- stateCheckmarkFill: 'accentItemPrimary',
70
- stateCheckmarkFillDisabled: 'accentItemDisabled',
71
- },
72
- },
73
- }
74
- return <Form config={config} validationSchema={validationSchema} />
75
- }
76
-
77
- export const Normal = Template.bind({})
@@ -1,75 +0,0 @@
1
- import React from 'react'
2
- import { formTypes, emailValidation, addRequiredFieldsParamToSchema } from '@itcase/forms'
3
- import * as yup from 'yup'
4
-
5
- import Form from './form.js'
6
-
7
- export default {
8
- title: 'Form Field / Choice',
9
- component: Form,
10
- }
11
-
12
- const Template = (args) => {
13
- const DEFAULT_REQUIRED_MESSAGE = 'This field is required'
14
- const DEFAULT_INVALID_EMAIL_MESSAGE = 'Username must be a valid email'
15
-
16
- // Create validation schema with rules for form fields
17
- const validationSchema = yup.object().shape({
18
- formFieldChoice: yup
19
- .string()
20
- .test('formFieldChoice', DEFAULT_INVALID_EMAIL_MESSAGE, emailValidation)
21
- .required(DEFAULT_REQUIRED_MESSAGE),
22
- password: yup.string().trim().required(DEFAULT_REQUIRED_MESSAGE),
23
- })
24
-
25
- // Add "requiredFields" as new param to schema
26
- if (!('requiredFields' in validationSchema)) {
27
- addRequiredFieldsParamToSchema(validationSchema)
28
- }
29
-
30
- // Create form config with fields
31
- const config = {
32
- formFieldChoice: {
33
- type: formTypes.choice,
34
- isRequired: true,
35
- name: 'formFieldChoice',
36
- fieldProps: {
37
- type: 'normal',
38
- width: 'fill',
39
- direction: 'vertical',
40
- dividerFill: 'errorPrimary',
41
- fill: 'surfacePrimary',
42
- label: 'Title',
43
- labelTextSize: 'm',
44
- labelTextColor: 'surfaceTextPrimary',
45
- message: 'Help Text',
46
- messageTextSize: 'xs',
47
- messageTextColor: 'surfaceTextSecondary',
48
- errorMessageTextSize: 'xs',
49
- errorMessageTextColor: 'errorTextPrimary',
50
- },
51
- inputProps: {
52
- width: 'fill',
53
- size: 'normal',
54
- shape: 'rounded',
55
- borderColor: 'surfaceBorderTertiary',
56
- labelTextActiveColor: 'surfaceTextPrimary',
57
- labelTextColor: 'surfaceTextPrimary',
58
- labelTextSize: 'm',
59
- },
60
- options: [
61
- { value: 1, label: 'Label 1' },
62
- { value: 2, label: 'Label 2' },
63
- { value: 3, label: 'Label 3' },
64
- { value: 4, label: 'Label 4' },
65
- { value: 5, label: 'Label 5' },
66
- ],
67
- active: {
68
- value: 1,
69
- },
70
- },
71
- }
72
- return <Form config={config} validationSchema={validationSchema} />
73
- }
74
-
75
- export const Normal = Template.bind({})
@@ -1,51 +0,0 @@
1
- import React from 'react'
2
- import * as yup from 'yup'
3
-
4
- import { formTypes } from '@itcase/forms'
5
-
6
- import Form from './form.js'
7
-
8
- import { defaultFieldProps, defaultInputProps, defaultDatepickerProps } from 'src/config/forms'
9
- import { DEFAULT_REQUIRED_MESSAGE } from 'src/config/forms/messages'
10
-
11
- export default {
12
- title: 'Form Field / DatePicker',
13
- component: Form,
14
- }
15
-
16
- const Template = (args) => {
17
- const validationSchema = yup.object().shape({
18
- formFieldDatePicker: yup.string().required(DEFAULT_REQUIRED_MESSAGE),
19
- password: yup.string().trim().required(DEFAULT_REQUIRED_MESSAGE),
20
- })
21
-
22
- const config = {
23
- formFieldDatePicker: {
24
- type: formTypes.datePicker,
25
- name: 'formFieldDatePicker',
26
- fieldProps: {
27
- ...defaultFieldProps,
28
- label: args?.config?.fieldProps?.label || 'Дата',
29
- message: 'Например: 20/06/2023',
30
- },
31
- inputProps: {
32
- ...defaultInputProps,
33
- },
34
- datePickerProps: {
35
- ...defaultDatepickerProps,
36
- },
37
- },
38
- }
39
- return <Form config={config} validationSchema={validationSchema} />
40
- }
41
-
42
- export const Date = Template.bind({})
43
-
44
- export const DateTime = Template.bind()
45
- DateTime.args = {
46
- config: {
47
- fieldProps: {
48
- label: 'asdasdasdasdasd'
49
- }
50
- }
51
- }