@itcase/ui 1.8.108 → 1.8.109

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 (208) hide show
  1. package/dist/{Avatar_cjs_bOSuIjlv.js → Avatar_cjs_joB9qjwk.js} +36 -60
  2. package/dist/{Avatar_es_CEiiRkAd.js → Avatar_es_C3HGSiHU.js} +36 -60
  3. package/dist/{Button_cjs_eGfgY2Dz.js → Button_cjs_mau_55Fl.js} +6 -6
  4. package/dist/{Button_es_CEXL2diU.js → Button_es_D_IlkeBp.js} +6 -6
  5. package/dist/{ChipsGroup_cjs_DKLEgUi2.js → ChipsGroup_cjs_D454M1-p.js} +2 -2
  6. package/dist/{ChipsGroup_es_vMh6YMRm.js → ChipsGroup_es_BKG5mK5N.js} +2 -2
  7. package/dist/{DatePicker_cjs_T63y9kcH.js → DatePicker_cjs_Bm8nwWKa.js} +4 -4
  8. package/dist/{DatePicker_es_B87jj8h6.js → DatePicker_es_DAV92A4A.js} +4 -4
  9. package/dist/{DropdownItem_cjs_BGp4XAme.js → DropdownItem_cjs_D2hHKA5E.js} +2 -2
  10. package/dist/{DropdownItem_es_BwdenrJx.js → DropdownItem_es_D9JBMV70.js} +2 -2
  11. package/dist/{Icon_cjs_LSfBwmrG.js → Icon_cjs_ZerVip3X.js} +32 -47
  12. package/dist/{Icon_es_BYO1LdXJ.js → Icon_es_C76te22j.js} +32 -47
  13. package/dist/{Label_cjs_Df_mrKBf.js → Label_cjs_CaTh_laL.js} +2 -2
  14. package/dist/{Label_es_Dl5zb0RD.js → Label_es_CoIII7Ty.js} +2 -2
  15. package/dist/{Loader_cjs_Db9diKuF.js → Loader_cjs_c6yF7akz.js} +1 -1
  16. package/dist/{Loader_es_AhHU-s7_.js → Loader_es_C8ETXkiZ.js} +1 -1
  17. package/dist/{Text_cjs_CeJHeRfI.js → Text_cjs_DpRclhwc.js} +2 -5
  18. package/dist/{Text_es_BXh9Y3hR.js → Text_es_CtCwsa3V.js} +2 -5
  19. package/dist/cjs/components/Accordion.js +4 -3
  20. package/dist/cjs/components/Avatar.js +5 -4
  21. package/dist/cjs/components/AvatarStack.js +5 -4
  22. package/dist/cjs/components/Badge.js +4 -3
  23. package/dist/cjs/components/Breadcrumbs.js +4 -3
  24. package/dist/cjs/components/Button.js +6 -5
  25. package/dist/cjs/components/Cell.js +5 -4
  26. package/dist/cjs/components/Checkbox.js +3 -2
  27. package/dist/cjs/components/Checkmark.js +2 -1
  28. package/dist/cjs/components/Chips.js +5 -4
  29. package/dist/cjs/components/Choice.js +5 -4
  30. package/dist/cjs/components/Code.js +2 -0
  31. package/dist/cjs/components/CookiesWarning.js +6 -5
  32. package/dist/cjs/components/Dadata.js +2 -0
  33. package/dist/cjs/components/DatePeriod.js +8 -7
  34. package/dist/cjs/components/DatePicker.js +8 -7
  35. package/dist/cjs/components/Divider.js +2 -1
  36. package/dist/cjs/components/Dot.js +2 -1
  37. package/dist/cjs/components/Drawer.js +3 -2
  38. package/dist/cjs/components/Dropdown.js +5 -4
  39. package/dist/cjs/components/Flex.js +2 -1
  40. package/dist/cjs/components/Grid.js +2 -1
  41. package/dist/cjs/components/Group.js +2 -1
  42. package/dist/cjs/components/HTMLContent.js +2 -1
  43. package/dist/cjs/components/HeroTitle.js +4 -3
  44. package/dist/cjs/components/Icon.js +4 -3
  45. package/dist/cjs/components/Image.js +2 -1
  46. package/dist/cjs/components/Input.js +2 -0
  47. package/dist/cjs/components/InputPassword.js +4 -3
  48. package/dist/cjs/components/Label.js +5 -4
  49. package/dist/cjs/components/Link.js +2 -1
  50. package/dist/cjs/components/List.js +2 -1
  51. package/dist/cjs/components/Loader.js +4 -3
  52. package/dist/cjs/components/Logo.js +2 -1
  53. package/dist/cjs/components/MenuItem.js +4 -3
  54. package/dist/cjs/components/Modal.js +5 -4
  55. package/dist/cjs/components/ModalSheetBottom.js +4 -3
  56. package/dist/cjs/components/Notification.js +4 -3
  57. package/dist/cjs/components/Overlay.js +2 -1
  58. package/dist/cjs/components/Pagination.js +5 -4
  59. package/dist/cjs/components/Radio.js +6 -2
  60. package/dist/cjs/components/RangeSlider.js +2 -1
  61. package/dist/cjs/components/Response.js +6 -5
  62. package/dist/cjs/components/SVGContent.js +2 -1
  63. package/dist/cjs/components/ScrollOnDrag.js +2 -1
  64. package/dist/cjs/components/ScrollToView.js +2 -1
  65. package/dist/cjs/components/Search.js +4 -3
  66. package/dist/cjs/components/Segmented.js +3 -2
  67. package/dist/cjs/components/Select.js +4 -3
  68. package/dist/cjs/components/Swiper.js +4 -3
  69. package/dist/cjs/components/Switch.js +3 -2
  70. package/dist/cjs/components/Tab.js +14 -16
  71. package/dist/cjs/components/Text.js +3 -2
  72. package/dist/cjs/components/Textarea.js +2 -0
  73. package/dist/cjs/components/Tile.js +4 -3
  74. package/dist/cjs/components/Title.js +4 -3
  75. package/dist/cjs/components/Tooltip.js +4 -3
  76. package/dist/cjs/components/Video.js +1 -0
  77. package/dist/cjs/components/Warning.js +4 -3
  78. package/dist/cjs/hooks/useActiveClasses/useActiveClasses.helpers.js +120 -0
  79. package/dist/cjs/hooks/useActiveClasses/useActiveClasses.interface.js +65 -0
  80. package/dist/cjs/hooks/useActiveClasses/useActiveClasses.js +64 -0
  81. package/dist/cjs/hooks/useActiveClasses.js +9 -0
  82. package/dist/cjs/hooks/useDevicePropsGenerator/useDevicePropsGenerator.js +11 -1
  83. package/dist/cjs/hooks/useDevicePropsGenerator.js +2 -0
  84. package/dist/cjs/hooks/useStyles/useStyles.js +5 -3
  85. package/dist/cjs/hooks/useStyles.js +1 -0
  86. package/dist/cjs/hooks.js +9 -0
  87. package/dist/components/Accordion.js +4 -3
  88. package/dist/components/Avatar.js +5 -4
  89. package/dist/components/AvatarStack.js +5 -4
  90. package/dist/components/Badge.js +4 -3
  91. package/dist/components/Breadcrumbs.js +4 -3
  92. package/dist/components/Button.js +6 -5
  93. package/dist/components/Cell.js +5 -4
  94. package/dist/components/Checkbox.js +3 -2
  95. package/dist/components/Checkmark.js +2 -1
  96. package/dist/components/Chips.js +5 -4
  97. package/dist/components/Choice.js +5 -4
  98. package/dist/components/Code.js +2 -0
  99. package/dist/components/CookiesWarning.js +6 -5
  100. package/dist/components/Dadata.js +2 -0
  101. package/dist/components/DatePeriod.js +8 -7
  102. package/dist/components/DatePicker.js +8 -7
  103. package/dist/components/Divider.js +2 -1
  104. package/dist/components/Dot.js +2 -1
  105. package/dist/components/Drawer.js +3 -2
  106. package/dist/components/Dropdown.js +5 -4
  107. package/dist/components/Flex.js +2 -1
  108. package/dist/components/Grid.js +2 -1
  109. package/dist/components/Group.js +2 -1
  110. package/dist/components/HTMLContent.js +2 -1
  111. package/dist/components/HeroTitle.js +4 -3
  112. package/dist/components/Icon.js +4 -3
  113. package/dist/components/Image.js +2 -1
  114. package/dist/components/Input.js +2 -0
  115. package/dist/components/InputPassword.js +4 -3
  116. package/dist/components/Label.js +5 -4
  117. package/dist/components/Link.js +2 -1
  118. package/dist/components/List.js +2 -1
  119. package/dist/components/Loader.js +4 -3
  120. package/dist/components/Logo.js +2 -1
  121. package/dist/components/MenuItem.js +4 -3
  122. package/dist/components/Modal.js +5 -4
  123. package/dist/components/ModalSheetBottom.js +4 -3
  124. package/dist/components/Notification.js +4 -3
  125. package/dist/components/Overlay.js +2 -1
  126. package/dist/components/Pagination.js +5 -4
  127. package/dist/components/Radio.js +6 -2
  128. package/dist/components/RangeSlider.js +2 -1
  129. package/dist/components/Response.js +6 -5
  130. package/dist/components/SVGContent.js +2 -1
  131. package/dist/components/ScrollOnDrag.js +2 -1
  132. package/dist/components/ScrollToView.js +2 -1
  133. package/dist/components/Search.js +4 -3
  134. package/dist/components/Segmented.js +3 -2
  135. package/dist/components/Select.js +4 -3
  136. package/dist/components/Swiper.js +4 -3
  137. package/dist/components/Switch.js +3 -2
  138. package/dist/components/Tab.js +14 -16
  139. package/dist/components/Text.js +3 -2
  140. package/dist/components/Textarea.js +2 -0
  141. package/dist/components/Tile.js +4 -3
  142. package/dist/components/Title.js +4 -3
  143. package/dist/components/Tooltip.js +4 -3
  144. package/dist/components/Video.js +1 -0
  145. package/dist/components/Warning.js +4 -3
  146. package/dist/css/components/Icon/Icon.css +12 -19
  147. package/dist/hooks/useActiveClasses/useActiveClasses.helpers.js +116 -0
  148. package/dist/hooks/useActiveClasses/useActiveClasses.interface.js +63 -0
  149. package/dist/hooks/useActiveClasses/useActiveClasses.js +62 -0
  150. package/dist/hooks/useActiveClasses.js +3 -0
  151. package/dist/hooks/useDevicePropsGenerator/useDevicePropsGenerator.js +11 -1
  152. package/dist/hooks/useDevicePropsGenerator.js +2 -0
  153. package/dist/hooks/useStyles/useStyles.js +5 -3
  154. package/dist/hooks/useStyles.js +1 -0
  155. package/dist/hooks.js +7 -0
  156. package/dist/stories/useActiveClasses.mdx +134 -0
  157. package/dist/types/components/Avatar/Avatar.appearance.d.ts +1878 -2
  158. package/dist/types/components/Avatar/Avatar.interface.d.ts +48 -37
  159. package/dist/types/components/Avatar/appearance/avatarDefault.d.ts +2 -19
  160. package/dist/types/components/Avatar/appearance/avatarShape.d.ts +2 -24
  161. package/dist/types/components/Avatar/appearance/avatarSize.d.ts +2 -83
  162. package/dist/types/components/Avatar/appearance/avatarStyle.d.ts +2 -15
  163. package/dist/types/components/Badge/Badge.appearance.d.ts +986 -228
  164. package/dist/types/components/Badge/Badge.interface.d.ts +6 -6
  165. package/dist/types/components/Badge/appearance/badgeAccent.d.ts +2 -37
  166. package/dist/types/components/Badge/appearance/badgeDanger.d.ts +2 -16
  167. package/dist/types/components/Badge/appearance/badgeDisabled.d.ts +2 -14
  168. package/dist/types/components/Badge/appearance/badgeError.d.ts +2 -16
  169. package/dist/types/components/Badge/appearance/badgeInfo.d.ts +2 -15
  170. package/dist/types/components/Badge/appearance/badgePrimary.d.ts +2 -16
  171. package/dist/types/components/Badge/appearance/badgeSecondary.d.ts +2 -16
  172. package/dist/types/components/Badge/appearance/badgeShape.d.ts +2 -24
  173. package/dist/types/components/Badge/appearance/badgeSize.d.ts +2 -31
  174. package/dist/types/components/Badge/appearance/badgeStyle.d.ts +2 -13
  175. package/dist/types/components/Badge/appearance/badgeSuccess.d.ts +2 -16
  176. package/dist/types/components/Badge/appearance/badgeSurface.d.ts +2 -24
  177. package/dist/types/components/Badge/appearance/badgeWarning.d.ts +2 -16
  178. package/dist/types/components/Icon/Icon.d.ts +30 -6
  179. package/dist/types/components/Icon/Icon.interface.d.ts +2 -0
  180. package/dist/types/components/Radio/Radio.appearance.d.ts +3 -0
  181. package/dist/types/components/Radio/appearance/radioDefault.d.ts +3 -0
  182. package/dist/types/components/Tab/appearance/tabSurface.d.ts +1 -0
  183. package/dist/types/components/Text/Text.appearance.d.ts +698 -2
  184. package/dist/types/components/Text/Text.interface.d.ts +32 -47
  185. package/dist/types/components/Text/appearance/textSize.d.ts +2 -23
  186. package/dist/types/components/Title/Title.appearance.d.ts +2225 -2
  187. package/dist/types/components/Title/Title.interface.d.ts +56 -38
  188. package/dist/types/components/Title/appearance/titleAccent.d.ts +2 -19
  189. package/dist/types/components/Title/appearance/titleDanger.d.ts +2 -6
  190. package/dist/types/components/Title/appearance/titleDisabled.d.ts +2 -19
  191. package/dist/types/components/Title/appearance/titleError.d.ts +2 -10
  192. package/dist/types/components/Title/appearance/titleInfo.d.ts +2 -20
  193. package/dist/types/components/Title/appearance/titlePrimary.d.ts +2 -7
  194. package/dist/types/components/Title/appearance/titleRequire.d.ts +2 -19
  195. package/dist/types/components/Title/appearance/titleSecondary.d.ts +2 -7
  196. package/dist/types/components/Title/appearance/titleSize.d.ts +2 -44
  197. package/dist/types/components/Title/appearance/titleStyle.d.ts +2 -15
  198. package/dist/types/components/Title/appearance/titleSuccess.d.ts +2 -10
  199. package/dist/types/components/Title/appearance/titleSurface.d.ts +2 -24
  200. package/dist/types/components/Title/appearance/titleWarning.d.ts +2 -10
  201. package/dist/types/hooks/index.helpers.d.ts +3 -0
  202. package/dist/types/hooks/useActiveClasses/index.d.ts +2 -0
  203. package/dist/types/hooks/useActiveClasses/useActiveClasses.d.ts +3 -0
  204. package/dist/types/hooks/useActiveClasses/useActiveClasses.helpers.d.ts +5 -0
  205. package/dist/types/hooks/useActiveClasses/useActiveClasses.interface.d.ts +26 -0
  206. package/dist/types/hooks/useDevicePropsGenerator/useDevicePropsGenerator.d.ts +1 -1
  207. package/dist/types/hooks/useStyles/styleAttributes.interface.d.ts +3 -0
  208. package/package.json +6 -6
@@ -5,6 +5,8 @@ import castArray from 'lodash/castArray';
5
5
  import upperFirst from 'lodash/upperFirst';
6
6
  import '../../context/Notifications.js';
7
7
  import { useUserDeviceContext } from '../../context/UIContext.js';
8
+ import { getStyleAttributeKey } from '../../hooks.js';
9
+ import styleAttributes from '../useStyles/styleAttributes.js';
8
10
  import 'react/jsx-runtime';
9
11
  import 'uuid';
10
12
  import '@itcase/common';
@@ -70,8 +72,16 @@ function useDevicePropsGenerator(componentProps, appearanceConfig) {
70
72
  // eslint-disable-next-line perfectionist/sort-objects
71
73
  getClassName: function (propKey, params) {
72
74
  var _a = params || {}, _b = _a.prefix, prefix = _b === void 0 ? '' : _b, _c = _a.replace, replace = _c === void 0 ? [/([A-Z])/g, '-$1'] : _c;
73
- // prettier-ignore
74
75
  var targetClassValue = this.getProp(String(propKey));
76
+ var styleAttributeKeys = styleAttributes.map(function (attr) {
77
+ return getStyleAttributeKey(attr);
78
+ });
79
+ if (styleAttributeKeys.includes(String(propKey)) &&
80
+ (typeof targetClassValue === 'number' ||
81
+ (typeof targetClassValue === 'string' &&
82
+ !isNaN(parseFloat(targetClassValue))))) {
83
+ return '';
84
+ }
75
85
  if (targetClassValue) {
76
86
  var cleanClassValue = String(targetClassValue);
77
87
  if (!cleanClassValue.includes('.')) {
@@ -12,3 +12,5 @@ import '../context/UIContext.js';
12
12
  import './useMediaQueries/useMediaQueries.js';
13
13
  import 'react-responsive';
14
14
  import '../utils/setViewportProperty.js';
15
+ import '../hooks.js';
16
+ import './useStyles/styleAttributes.js';
@@ -4,6 +4,7 @@ import maxBy from 'lodash/maxBy';
4
4
  import upperFirst from 'lodash/upperFirst';
5
5
  import '../../context/Notifications.js';
6
6
  import { useUserDeviceContext } from '../../context/UIContext.js';
7
+ import { getStyleAttributeKey } from '../../hooks.js';
7
8
  import styleAttributes from './styleAttributes.js';
8
9
  import '../../tslib.es6_es_Bwu1Cn-t.js';
9
10
  import 'react/jsx-runtime';
@@ -137,6 +138,7 @@ function useStyles(props) {
137
138
  return resultStylesGroups;
138
139
  // eslint-disable-next-line react-hooks/exhaustive-deps
139
140
  }, [deviceCurrentMainType, deviceCurrentType, ...Object.values(propsStyleAttributes)]);
141
+ console.error('collectedStyles', collectedStyles);
140
142
  return collectedStyles;
141
143
  }
142
144
  const removeDeviceType = (originalKey, deviceTypesList) => {
@@ -181,10 +183,10 @@ const getTargetStyleAttributeKey = (styleKey, styleValue = '') => {
181
183
 
182
184
  // Get longest style key (e.g. "borderLeftWidth")
183
185
  const targetStyleAttribute = maxBy(possibleStyleAttributesList, styleAttribute => {
184
- const styleAttributeKey = Array.isArray(styleAttribute) ? styleAttribute[0] : styleAttribute;
185
- return styleAttributeKey.length;
186
+ const key = getStyleAttributeKey(styleAttribute);
187
+ return key.length;
186
188
  });
187
- const styleAttributeKey = Array.isArray(targetStyleAttribute) ? targetStyleAttribute[0] : targetStyleAttribute;
189
+ const styleAttributeKey = getStyleAttributeKey(targetStyleAttribute);
188
190
  return styleAttributeKey;
189
191
  };
190
192
 
@@ -12,4 +12,5 @@ import '../context/UIContext.js';
12
12
  import './useMediaQueries/useMediaQueries.js';
13
13
  import 'react-responsive';
14
14
  import '../utils/setViewportProperty.js';
15
+ import '../hooks.js';
15
16
  import './useStyles/styleAttributes.js';
package/dist/hooks.js ADDED
@@ -0,0 +1,7 @@
1
+ var getStyleAttributeKey = function (targetStyleAttribute) {
2
+ return Array.isArray(targetStyleAttribute)
3
+ ? targetStyleAttribute[0]
4
+ : targetStyleAttribute;
5
+ };
6
+
7
+ export { getStyleAttributeKey };
@@ -0,0 +1,134 @@
1
+ import { Meta } from '@storybook/addon-docs/blocks'
2
+
3
+ <Meta title="Hooks / useActiveClasses" />
4
+
5
+ # `useActiveClasses`
6
+ Генерирует CSS‑классы по правилам `CLASS_RULES` из `propsGenerator` с учетом состояний (`isActive`, `isDisabled`).
7
+
8
+ > ℹ️ Данный хук использует термины, о которых рассказывается в `useDevicePropsGenerator`, необходимо предварительно ознакомиться с ним
9
+
10
+ ### Параметры
11
+
12
+ <table>
13
+ <thead>
14
+ <tr>
15
+ <th>Название</th>
16
+ <th>Обязательный</th>
17
+ <th>Тип</th>
18
+ <th>Значение</th>
19
+ <th>Описание</th>
20
+ </tr>
21
+ </thead>
22
+ <tbody>
23
+ <tr>
24
+ <td>isDisabled</td>
25
+ <td>Нет</td>
26
+ <td>`boolean`</td>
27
+ <td>false</td>
28
+ <td>`Boolean` флаг</td>
29
+ </tr>
30
+ <tr>
31
+ <td>propsGenerator</td>
32
+ <td>Да</td>
33
+ <td>`[key: string]: string`</td>
34
+ <td>
35
+ propsGenerator[propsKey]
36
+ </td>
37
+ <td>Генератор классов</td>
38
+ </tr>
39
+ <tr>
40
+ <td>suffixes</td>
41
+ <td>Нет</td>
42
+ <td>`string[]`</td>
43
+ <td>
44
+ ['Checkmark']
45
+ </td>
46
+ <td>Массив суффиксов</td>
47
+ </tr>
48
+ <tr>
49
+ <td>isActive</td>
50
+ <td>Нет</td>
51
+ <td>`boolean`</td>
52
+ <td>false</td>
53
+ <td>`Boolean` флаг</td>
54
+ </tr>
55
+ </tbody>
56
+ </table>
57
+
58
+ ### Результат
59
+
60
+ Возвращает объект, значения объекта:
61
+
62
+ <table>
63
+ <thead>
64
+ <tr>
65
+ <th>Название</th>
66
+ <th>Тип</th>
67
+ <th>Значение</th>
68
+ <th>Описание</th>
69
+ </tr>
70
+ </thead>
71
+ <tbody>
72
+ <tr>
73
+ <td>rootClasses</td>
74
+ <td>`string`</td>
75
+ <td>`'fill_surface-secondary borderColor_surface-border-quaternary'`</td>
76
+ <td>Строка из классами для корневого `html-тега`</td>
77
+ </tr>
78
+ <tr>
79
+ <td>suffixClasses</td>
80
+ <td>`string`</td>
81
+ <td>
82
+ `'fill_surface-secondary borderColor_accent-primary'`
83
+ </td>
84
+ <td>Строка из классов для вложенных `html-тэгов`</td>
85
+ </tr>
86
+ </tbody>
87
+ </table>
88
+
89
+ ### Примечание
90
+ Чтобы на выходе получалась строка из классов, необходимо предварительно в `appearance` прописать значения, например:
91
+
92
+ ```js
93
+ const radioAppearanceDefault = {
94
+ defaultPrimary: {
95
+ fill: 'surfaceSecondary',
96
+ fillRado: 'accentPrimary',
97
+ fillCheckmark: 'surfaceQuaternary'
98
+ }
99
+ }
100
+ ```
101
+
102
+ ### Использование
103
+ Для генерации классов вложенных `html-тегов`, задаем массив суффиксов
104
+
105
+ ```jsx
106
+ function Radio({ isActive, isDisabled, propsGenerator }) {
107
+ const { rootClasses, suffixClasses } = useActiveClasses({
108
+ isDisabled,
109
+ propsGenerator,
110
+ suffixes: ['Checkmark', 'Radio'],
111
+ isActive,
112
+ })
113
+
114
+ return (
115
+ <label className={clsx('radio', rootClasses)}>
116
+ <div className={clsx('radio__state', suffixClasses.Radio)}>
117
+ <span>State</span>
118
+ </div>
119
+ <div className={clsx('radio__state-checkmark', suffixClasses.Checkmark)}>
120
+ <span>Checkmark</span>
121
+ </div>
122
+ </label>
123
+ )
124
+ }
125
+
126
+ export { Radio }
127
+ ```
128
+
129
+ В данном случае
130
+ - `rootClasses` = 'fill_surface-secondary'
131
+ - `suffixClasses.Radio` = 'fill_surface-quaternary',
132
+ - `suffixClasses.Chekmark` = 'fill_accent-primary'
133
+
134
+ И все данные значение получены из `appearance`, которые указали ранее