@dxtmisha/constructor 0.23.0

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 (311) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +136 -0
  3. package/package.json +124 -0
  4. package/src/classes/CaptionInclude.ts +71 -0
  5. package/src/classes/DescriptionInclude.ts +70 -0
  6. package/src/classes/EnabledInclude.ts +56 -0
  7. package/src/classes/EventClickInclude.ts +138 -0
  8. package/src/classes/LabelHighlightInclude.ts +90 -0
  9. package/src/classes/LabelInclude.ts +171 -0
  10. package/src/classes/LabelNumberInclude.ts +70 -0
  11. package/src/classes/ModelInclude.ts +49 -0
  12. package/src/classes/PrefixInclude.ts +71 -0
  13. package/src/classes/SuffixInclude.ts +71 -0
  14. package/src/classes/field/FieldAttributesInclude.ts +100 -0
  15. package/src/classes/field/FieldChangeInclude.ts +52 -0
  16. package/src/classes/field/FieldCodeInclude.ts +69 -0
  17. package/src/classes/field/FieldElementInclude.ts +97 -0
  18. package/src/classes/field/FieldInputCheckInclude.ts +128 -0
  19. package/src/classes/field/FieldMatchInclude.ts +101 -0
  20. package/src/classes/field/FieldPatternInclude.ts +42 -0
  21. package/src/classes/field/FieldTypeInclude.ts +42 -0
  22. package/src/classes/field/FieldValidationInclude.ts +196 -0
  23. package/src/classes/field/FieldValueInclude.ts +318 -0
  24. package/src/classes/field/FieldVisibilityInclude.ts +21 -0
  25. package/src/constructors/Badge/Badge.ts +73 -0
  26. package/src/constructors/Badge/BadgeDesign.tsx +127 -0
  27. package/src/constructors/Badge/BadgeInclude.ts +78 -0
  28. package/src/constructors/Badge/basicTypes.ts +15 -0
  29. package/src/constructors/Badge/index.ts +5 -0
  30. package/src/constructors/Badge/properties.json +36 -0
  31. package/src/constructors/Badge/props.ts +43 -0
  32. package/src/constructors/Badge/style.scss +83 -0
  33. package/src/constructors/Badge/types.ts +47 -0
  34. package/src/constructors/Bars/Bars.ts +188 -0
  35. package/src/constructors/Bars/BarsAction.ts +57 -0
  36. package/src/constructors/Bars/BarsDesign.tsx +229 -0
  37. package/src/constructors/Bars/BarsInclude.ts +116 -0
  38. package/src/constructors/Bars/basicTypes.ts +40 -0
  39. package/src/constructors/Bars/index.ts +6 -0
  40. package/src/constructors/Bars/properties.json +6 -0
  41. package/src/constructors/Bars/props.ts +63 -0
  42. package/src/constructors/Bars/style.scss +18 -0
  43. package/src/constructors/Bars/types.ts +58 -0
  44. package/src/constructors/Button/Button.ts +88 -0
  45. package/src/constructors/Button/ButtonDesign.tsx +136 -0
  46. package/src/constructors/Button/ButtonInclude.ts +80 -0
  47. package/src/constructors/Button/basicTypes.ts +12 -0
  48. package/src/constructors/Button/index.ts +5 -0
  49. package/src/constructors/Button/properties.json +84 -0
  50. package/src/constructors/Button/props.ts +55 -0
  51. package/src/constructors/Button/style.scss +96 -0
  52. package/src/constructors/Button/types.ts +56 -0
  53. package/src/constructors/Cell/Cell.ts +127 -0
  54. package/src/constructors/Cell/CellDesign.tsx +203 -0
  55. package/src/constructors/Cell/basicTypes.ts +6 -0
  56. package/src/constructors/Cell/index.ts +5 -0
  57. package/src/constructors/Cell/properties.json +52 -0
  58. package/src/constructors/Cell/props.ts +61 -0
  59. package/src/constructors/Cell/style.scss +80 -0
  60. package/src/constructors/Cell/types.ts +68 -0
  61. package/src/constructors/Chip/Chip.ts +33 -0
  62. package/src/constructors/Chip/ChipDesign.tsx +26 -0
  63. package/src/constructors/Chip/basicTypes.ts +0 -0
  64. package/src/constructors/Chip/index.ts +4 -0
  65. package/src/constructors/Chip/properties.json +3 -0
  66. package/src/constructors/Chip/props.ts +44 -0
  67. package/src/constructors/Chip/style.scss +6 -0
  68. package/src/constructors/Chip/types.ts +53 -0
  69. package/src/constructors/Field/Field.ts +147 -0
  70. package/src/constructors/Field/FieldDesign.tsx +372 -0
  71. package/src/constructors/Field/FieldIcons.ts +99 -0
  72. package/src/constructors/Field/FieldInclude.ts +72 -0
  73. package/src/constructors/Field/FieldSize.ts +93 -0
  74. package/src/constructors/Field/basicTypes.ts +90 -0
  75. package/src/constructors/Field/index.ts +5 -0
  76. package/src/constructors/Field/properties.json +86 -0
  77. package/src/constructors/Field/props.ts +88 -0
  78. package/src/constructors/Field/style.scss +556 -0
  79. package/src/constructors/Field/types.ts +78 -0
  80. package/src/constructors/FieldCounter/FieldCounter.ts +75 -0
  81. package/src/constructors/FieldCounter/FieldCounterDesign.tsx +122 -0
  82. package/src/constructors/FieldCounter/FieldCounterInclude.ts +98 -0
  83. package/src/constructors/FieldCounter/basicTypes.ts +25 -0
  84. package/src/constructors/FieldCounter/index.ts +6 -0
  85. package/src/constructors/FieldCounter/properties.json +3 -0
  86. package/src/constructors/FieldCounter/props.ts +32 -0
  87. package/src/constructors/FieldCounter/style.scss +4 -0
  88. package/src/constructors/FieldCounter/types.ts +42 -0
  89. package/src/constructors/FieldLabel/FieldLabel.ts +93 -0
  90. package/src/constructors/FieldLabel/FieldLabelDesign.tsx +156 -0
  91. package/src/constructors/FieldLabel/FieldLabelInclude.ts +91 -0
  92. package/src/constructors/FieldLabel/basicTypes.ts +34 -0
  93. package/src/constructors/FieldLabel/index.ts +6 -0
  94. package/src/constructors/FieldLabel/properties.json +4 -0
  95. package/src/constructors/FieldLabel/props.ts +40 -0
  96. package/src/constructors/FieldLabel/style.scss +10 -0
  97. package/src/constructors/FieldLabel/types.ts +49 -0
  98. package/src/constructors/FieldMessage/FieldMessage.ts +79 -0
  99. package/src/constructors/FieldMessage/FieldMessageDesign.tsx +159 -0
  100. package/src/constructors/FieldMessage/FieldMessageInclude.ts +105 -0
  101. package/src/constructors/FieldMessage/FieldMessageMessage.ts +54 -0
  102. package/src/constructors/FieldMessage/basicTypes.ts +27 -0
  103. package/src/constructors/FieldMessage/index.ts +6 -0
  104. package/src/constructors/FieldMessage/properties.json +9 -0
  105. package/src/constructors/FieldMessage/props.ts +40 -0
  106. package/src/constructors/FieldMessage/style.scss +13 -0
  107. package/src/constructors/FieldMessage/types.ts +49 -0
  108. package/src/constructors/Icon/Icon.ts +105 -0
  109. package/src/constructors/Icon/IconDesign.tsx +157 -0
  110. package/src/constructors/Icon/IconInclude.ts +64 -0
  111. package/src/constructors/Icon/IconLiteInclude.ts +121 -0
  112. package/src/constructors/Icon/IconTrailingInclude.ts +106 -0
  113. package/src/constructors/Icon/basicTypes.ts +50 -0
  114. package/src/constructors/Icon/index.ts +8 -0
  115. package/src/constructors/Icon/properties.json +25 -0
  116. package/src/constructors/Icon/props.ts +54 -0
  117. package/src/constructors/Icon/style.scss +106 -0
  118. package/src/constructors/Icon/types.ts +46 -0
  119. package/src/constructors/Image/Image.ts +184 -0
  120. package/src/constructors/Image/ImageAdaptiveGroup.ts +230 -0
  121. package/src/constructors/Image/ImageAdaptiveItem.ts +295 -0
  122. package/src/constructors/Image/ImageBackground.ts +127 -0
  123. package/src/constructors/Image/ImageCalculation.ts +184 -0
  124. package/src/constructors/Image/ImageCalculationList.ts +61 -0
  125. package/src/constructors/Image/ImageCoordinator.ts +104 -0
  126. package/src/constructors/Image/ImageData.ts +99 -0
  127. package/src/constructors/Image/ImageDesign.tsx +137 -0
  128. package/src/constructors/Image/ImageFile.ts +137 -0
  129. package/src/constructors/Image/ImageInclude.ts +53 -0
  130. package/src/constructors/Image/ImagePdf.ts +44 -0
  131. package/src/constructors/Image/ImagePosition.ts +49 -0
  132. package/src/constructors/Image/ImageType.ts +83 -0
  133. package/src/constructors/Image/basicTypes.ts +70 -0
  134. package/src/constructors/Image/index.ts +5 -0
  135. package/src/constructors/Image/properties.json +17 -0
  136. package/src/constructors/Image/props.ts +66 -0
  137. package/src/constructors/Image/style.scss +77 -0
  138. package/src/constructors/Image/types.ts +49 -0
  139. package/src/constructors/List/List.ts +267 -0
  140. package/src/constructors/List/ListControl.ts +194 -0
  141. package/src/constructors/List/ListDesign.tsx +382 -0
  142. package/src/constructors/List/ListFocus.ts +196 -0
  143. package/src/constructors/List/ListGo.ts +283 -0
  144. package/src/constructors/List/ListSearch.ts +113 -0
  145. package/src/constructors/List/basicTypes.ts +3 -0
  146. package/src/constructors/List/index.ts +5 -0
  147. package/src/constructors/List/properties.json +16 -0
  148. package/src/constructors/List/props.ts +76 -0
  149. package/src/constructors/List/style.scss +36 -0
  150. package/src/constructors/List/types.ts +66 -0
  151. package/src/constructors/ListGroup/ListGroup.ts +53 -0
  152. package/src/constructors/ListGroup/ListGroupDesign.tsx +180 -0
  153. package/src/constructors/ListGroup/ListGroupOpen.ts +56 -0
  154. package/src/constructors/ListGroup/basicTypes.ts +3 -0
  155. package/src/constructors/ListGroup/index.ts +5 -0
  156. package/src/constructors/ListGroup/properties.json +15 -0
  157. package/src/constructors/ListGroup/props.ts +30 -0
  158. package/src/constructors/ListGroup/style.scss +18 -0
  159. package/src/constructors/ListGroup/types.ts +51 -0
  160. package/src/constructors/ListItem/ListItem.ts +115 -0
  161. package/src/constructors/ListItem/ListItemDesign.tsx +196 -0
  162. package/src/constructors/ListItem/basicTypes.ts +3 -0
  163. package/src/constructors/ListItem/index.ts +5 -0
  164. package/src/constructors/ListItem/properties.json +52 -0
  165. package/src/constructors/ListItem/props.ts +78 -0
  166. package/src/constructors/ListItem/style.scss +152 -0
  167. package/src/constructors/ListItem/types.ts +78 -0
  168. package/src/constructors/ListMenu/ListMenu.ts +52 -0
  169. package/src/constructors/ListMenu/ListMenuDesign.tsx +127 -0
  170. package/src/constructors/ListMenu/basicTypes.ts +3 -0
  171. package/src/constructors/ListMenu/index.ts +5 -0
  172. package/src/constructors/ListMenu/properties.json +19 -0
  173. package/src/constructors/ListMenu/props.ts +34 -0
  174. package/src/constructors/ListMenu/style.scss +5 -0
  175. package/src/constructors/ListMenu/types.ts +54 -0
  176. package/src/constructors/Mask/Mask.ts +321 -0
  177. package/src/constructors/Mask/MaskBuffer.ts +89 -0
  178. package/src/constructors/Mask/MaskCharacter.ts +192 -0
  179. package/src/constructors/Mask/MaskCharacterLength.ts +40 -0
  180. package/src/constructors/Mask/MaskData.ts +287 -0
  181. package/src/constructors/Mask/MaskDate.ts +157 -0
  182. package/src/constructors/Mask/MaskDesign.tsx +217 -0
  183. package/src/constructors/Mask/MaskEmit.ts +140 -0
  184. package/src/constructors/Mask/MaskEvent.ts +347 -0
  185. package/src/constructors/Mask/MaskFocus.ts +49 -0
  186. package/src/constructors/Mask/MaskFormat.ts +216 -0
  187. package/src/constructors/Mask/MaskItem.ts +218 -0
  188. package/src/constructors/Mask/MaskMatch.ts +73 -0
  189. package/src/constructors/Mask/MaskPattern.ts +123 -0
  190. package/src/constructors/Mask/MaskRight.ts +43 -0
  191. package/src/constructors/Mask/MaskRubber.ts +156 -0
  192. package/src/constructors/Mask/MaskRubberItem.ts +96 -0
  193. package/src/constructors/Mask/MaskRubberTransition.ts +50 -0
  194. package/src/constructors/Mask/MaskSelection.ts +208 -0
  195. package/src/constructors/Mask/MaskSpecial.ts +179 -0
  196. package/src/constructors/Mask/MaskType.ts +103 -0
  197. package/src/constructors/Mask/MaskValidation.ts +102 -0
  198. package/src/constructors/Mask/MaskValue.ts +225 -0
  199. package/src/constructors/Mask/MaskValueBasic.ts +87 -0
  200. package/src/constructors/Mask/MaskView.ts +169 -0
  201. package/src/constructors/Mask/basicTypes.ts +49 -0
  202. package/src/constructors/Mask/index.ts +5 -0
  203. package/src/constructors/Mask/properties.json +29 -0
  204. package/src/constructors/Mask/props.ts +70 -0
  205. package/src/constructors/Mask/style.scss +104 -0
  206. package/src/constructors/Mask/types.ts +71 -0
  207. package/src/constructors/Menu/Menu.ts +179 -0
  208. package/src/constructors/Menu/MenuDesign.tsx +244 -0
  209. package/src/constructors/Menu/MenuInclude.ts +110 -0
  210. package/src/constructors/Menu/MenuRequest.ts +101 -0
  211. package/src/constructors/Menu/MenuSearch.ts +49 -0
  212. package/src/constructors/Menu/MenuValue.ts +73 -0
  213. package/src/constructors/Menu/MenuWindow.ts +89 -0
  214. package/src/constructors/Menu/basicTypes.ts +41 -0
  215. package/src/constructors/Menu/index.ts +6 -0
  216. package/src/constructors/Menu/properties.json +17 -0
  217. package/src/constructors/Menu/props.ts +79 -0
  218. package/src/constructors/Menu/style.scss +17 -0
  219. package/src/constructors/Menu/types.ts +79 -0
  220. package/src/constructors/MotionTransform/MotionTransform.ts +87 -0
  221. package/src/constructors/MotionTransform/MotionTransformClassesInclude.ts +38 -0
  222. package/src/constructors/MotionTransform/MotionTransformDesign.tsx +242 -0
  223. package/src/constructors/MotionTransform/MotionTransformElement.ts +220 -0
  224. package/src/constructors/MotionTransform/MotionTransformEvent.ts +118 -0
  225. package/src/constructors/MotionTransform/MotionTransformGo.ts +47 -0
  226. package/src/constructors/MotionTransform/MotionTransformInclude.ts +123 -0
  227. package/src/constructors/MotionTransform/MotionTransformSize.ts +97 -0
  228. package/src/constructors/MotionTransform/MotionTransformState.ts +250 -0
  229. package/src/constructors/MotionTransform/basicTypes.ts +121 -0
  230. package/src/constructors/MotionTransform/index.ts +7 -0
  231. package/src/constructors/MotionTransform/properties.json +35 -0
  232. package/src/constructors/MotionTransform/props.ts +50 -0
  233. package/src/constructors/MotionTransform/style.scss +180 -0
  234. package/src/constructors/MotionTransform/types.ts +86 -0
  235. package/src/constructors/Progress/Progress.ts +184 -0
  236. package/src/constructors/Progress/ProgressDesign.tsx +175 -0
  237. package/src/constructors/Progress/ProgressInclude.ts +67 -0
  238. package/src/constructors/Progress/basicTypes.ts +12 -0
  239. package/src/constructors/Progress/index.ts +6 -0
  240. package/src/constructors/Progress/properties.json +47 -0
  241. package/src/constructors/Progress/props.ts +54 -0
  242. package/src/constructors/Progress/style.scss +374 -0
  243. package/src/constructors/Progress/types.ts +43 -0
  244. package/src/constructors/Ripple/Ripple.ts +46 -0
  245. package/src/constructors/Ripple/RippleDesign.tsx +112 -0
  246. package/src/constructors/Ripple/RippleInclude.ts +39 -0
  247. package/src/constructors/Ripple/RippleItem.ts +62 -0
  248. package/src/constructors/Ripple/basicTypes.ts +3 -0
  249. package/src/constructors/Ripple/index.ts +6 -0
  250. package/src/constructors/Ripple/properties.json +9 -0
  251. package/src/constructors/Ripple/props.ts +28 -0
  252. package/src/constructors/Ripple/style.scss +62 -0
  253. package/src/constructors/Ripple/types.ts +41 -0
  254. package/src/constructors/Scrollbar/Scrollbar.ts +66 -0
  255. package/src/constructors/Scrollbar/ScrollbarBorder.ts +243 -0
  256. package/src/constructors/Scrollbar/ScrollbarDesign.tsx +126 -0
  257. package/src/constructors/Scrollbar/ScrollbarInclude.ts +80 -0
  258. package/src/constructors/Scrollbar/basicTypes.ts +42 -0
  259. package/src/constructors/Scrollbar/index.ts +5 -0
  260. package/src/constructors/Scrollbar/properties.json +33 -0
  261. package/src/constructors/Scrollbar/props.ts +37 -0
  262. package/src/constructors/Scrollbar/style.scss +117 -0
  263. package/src/constructors/Scrollbar/types.ts +52 -0
  264. package/src/constructors/Skeleton/Skeleton.ts +86 -0
  265. package/src/constructors/Skeleton/SkeletonDesign.tsx +117 -0
  266. package/src/constructors/Skeleton/SkeletonInclude.ts +61 -0
  267. package/src/constructors/Skeleton/basicTypes.ts +16 -0
  268. package/src/constructors/Skeleton/const.ts +1 -0
  269. package/src/constructors/Skeleton/index.ts +6 -0
  270. package/src/constructors/Skeleton/properties.json +24 -0
  271. package/src/constructors/Skeleton/props.ts +28 -0
  272. package/src/constructors/Skeleton/style.scss +112 -0
  273. package/src/constructors/Skeleton/types.ts +46 -0
  274. package/src/constructors/Window/Window.ts +212 -0
  275. package/src/constructors/Window/WindowClasses.ts +180 -0
  276. package/src/constructors/Window/WindowClassesInclude.ts +39 -0
  277. package/src/constructors/Window/WindowClient.ts +93 -0
  278. package/src/constructors/Window/WindowCoordinates.ts +257 -0
  279. package/src/constructors/Window/WindowDesign.tsx +278 -0
  280. package/src/constructors/Window/WindowElement.ts +84 -0
  281. package/src/constructors/Window/WindowEmit.ts +52 -0
  282. package/src/constructors/Window/WindowEvent.ts +157 -0
  283. package/src/constructors/Window/WindowFlash.ts +70 -0
  284. package/src/constructors/Window/WindowHook.ts +110 -0
  285. package/src/constructors/Window/WindowInclude.ts +134 -0
  286. package/src/constructors/Window/WindowOpen.ts +292 -0
  287. package/src/constructors/Window/WindowOrigin.ts +85 -0
  288. package/src/constructors/Window/WindowPersistent.ts +89 -0
  289. package/src/constructors/Window/WindowPosition.ts +358 -0
  290. package/src/constructors/Window/WindowStatic.ts +102 -0
  291. package/src/constructors/Window/WindowStatus.ts +138 -0
  292. package/src/constructors/Window/WindowStyles.ts +78 -0
  293. package/src/constructors/Window/WindowVerification.ts +287 -0
  294. package/src/constructors/Window/basicTypes.ts +186 -0
  295. package/src/constructors/Window/index.ts +7 -0
  296. package/src/constructors/Window/properties.json +236 -0
  297. package/src/constructors/Window/props.ts +88 -0
  298. package/src/constructors/Window/style.scss +262 -0
  299. package/src/constructors/Window/types.ts +124 -0
  300. package/src/functions/getClassTegAStatic.ts +8 -0
  301. package/src/library.ts +36 -0
  302. package/src/types/captionTypes.ts +15 -0
  303. package/src/types/descriptionTypes.ts +15 -0
  304. package/src/types/enabledTypes.ts +9 -0
  305. package/src/types/eventClickTypes.ts +51 -0
  306. package/src/types/fieldTypes.ts +282 -0
  307. package/src/types/labelTypes.ts +30 -0
  308. package/src/types/modelTypes.ts +23 -0
  309. package/src/types/prefixTypes.ts +15 -0
  310. package/src/types/suffixTypes.ts +15 -0
  311. package/src/vite-env.d.ts +1 -0
@@ -0,0 +1,84 @@
1
+ {
2
+ "padding": {
3
+ "_type": "var"
4
+ },
5
+ "border-radius": "0",
6
+ "transition-property": "grid-template-columns, background-color, background-image, border, box-shadow",
7
+ "transition-duration": "{d.sys.transitionDuration.fade.enter}",
8
+ "transition-function": "{d.sys.transitionFunction.standard}",
9
+ "#label": {},
10
+ "#icon": {},
11
+ "#trailing": {},
12
+ "#loading": {
13
+ "color-opacity": {
14
+ "_type": "var"
15
+ }
16
+ },
17
+ "focus": {},
18
+ "hover": {
19
+ "transition-duration": "{d.sys.transitionDuration.sm}"
20
+ },
21
+ "active": {
22
+ "transition-duration": "{d.sys.transitionDuration.sm}"
23
+ },
24
+ "selected": {
25
+ "_type": "state"
26
+ },
27
+ "readonly": {
28
+ "_type": "state"
29
+ },
30
+ "disabled": {
31
+ "transition-duration": "{d.sys.transitionDuration.sm}"
32
+ },
33
+ "~adaptive": {
34
+ "~iconAlways": {
35
+ "justify-content": "flex-start",
36
+ "& > .??__icon": {
37
+ "padding": {
38
+ "value": "calc((var(--sys-height) - {?icon-_width}) / 2)",
39
+ "_important": true
40
+ }
41
+ },
42
+ "& > *:not(.??__icon)": {
43
+ "display": "none"
44
+ }
45
+ },
46
+ "~block": {
47
+ "width": "100%"
48
+ },
49
+ "~auto": {
50
+ "width": "fit-content"
51
+ },
52
+ "group|icon": {
53
+ "link|adaptive-icon": "{??adaptive.iconAlways}",
54
+ "_type": "media-group"
55
+ },
56
+ "group|full": {
57
+ "link|adaptive-icon": "{??adaptive.iconAlways}",
58
+ "_type": "media-max-group"
59
+ }
60
+ },
61
+ "container": {
62
+ "group|icon": {
63
+ "link|adaptive-icon": "{??adaptive.iconAlways}",
64
+ "_type": "container-group"
65
+ },
66
+ "group|full": {
67
+ "link|adaptive-icon": "{??adaptive.iconAlways}",
68
+ "_type": "container-max-group"
69
+ }
70
+ },
71
+ "~inverse": {},
72
+ "~grid": {},
73
+ "~textAlign": {
74
+ "left": {
75
+ "justify-content": "flex-start",
76
+ "text-align": "left"
77
+ },
78
+ "center": {},
79
+ "right": {
80
+ "justify-content": "flex-end",
81
+ "text-align": "right"
82
+ }
83
+ }
84
+ }
@@ -0,0 +1,55 @@
1
+ import type { IconPropsBasic, IconTrailingPropsInclude } from '../Icon'
2
+ import type { ProgressPropsBasic, ProgressPropsInclude } from '../Progress'
3
+ import type { SkeletonPropsInclude } from '../Skeleton'
4
+
5
+ import type { LabelProps } from '../../types/labelTypes'
6
+ import type { EnabledProps } from '../../types/enabledTypes'
7
+ import type { EventClickProps } from '../../types/eventClickTypes'
8
+
9
+ interface ButtonPropsToken {
10
+ // :type [!] System label / Системная метка
11
+ focus?: boolean
12
+ disabled?: boolean
13
+ selected?: boolean
14
+ readonly?: boolean
15
+ adaptive?: 'iconAlways' | 'block' | 'auto'
16
+ container?: boolean
17
+ inverse?: boolean
18
+ grid?: boolean
19
+ textAlign?: 'left' | 'center' | 'right'
20
+ // :type [!] System label / Системная метка
21
+ }
22
+
23
+ export interface ButtonPropsBasic<
24
+ Icon extends IconPropsBasic = IconPropsBasic,
25
+ Progress extends ProgressPropsBasic = ProgressPropsBasic
26
+ > extends LabelProps,
27
+ EnabledProps,
28
+ IconTrailingPropsInclude<Icon>,
29
+ ProgressPropsInclude<Progress>,
30
+ SkeletonPropsInclude,
31
+ EventClickProps {
32
+ // Style
33
+ tag?: 'button' | 'a' | 'span' | string
34
+ }
35
+
36
+ /**
37
+ * Type describing incoming properties.
38
+ *
39
+ * Тип, описывающий входящие свойства.
40
+ */
41
+ export interface ButtonProps extends ButtonPropsBasic, ButtonPropsToken {
42
+ }
43
+
44
+ /**
45
+ * Default value for property.
46
+ *
47
+ * Значение по умолчанию для свойства.
48
+ */
49
+ export const defaultsButton = {
50
+ tag: 'button',
51
+ ...{
52
+ // :default [!] System label / Системная метка
53
+ // :default [!] System label / Системная метка
54
+ }
55
+ }
@@ -0,0 +1,96 @@
1
+ @use "@dxtmisha/styles/properties" as ui;
2
+
3
+ @mixin mixinButton {
4
+ @include ui.initByCustom('padding', 0);
5
+ @include ui.initByCustom('compressed', 1);
6
+
7
+ @include ui.flexInlineCenter;
8
+
9
+ box-sizing: border-box;
10
+ position: relative;
11
+
12
+ padding: 0;
13
+
14
+ min-width: var(--sys-height, 0);
15
+
16
+ text-decoration: none;
17
+
18
+ border: none;
19
+ background-color: transparent;
20
+ cursor: pointer;
21
+
22
+ @include ui.hover {
23
+ text-decoration: none;
24
+ }
25
+
26
+ @include ui.focus {
27
+ outline: none;
28
+ }
29
+
30
+ @include ui.disabled {
31
+ cursor: default;
32
+ }
33
+
34
+ @include ui.readonly {
35
+ cursor: default;
36
+ }
37
+
38
+ &__label {
39
+ display: flex;
40
+ align-items: center;
41
+ justify-content: center;
42
+
43
+ order: 4;
44
+ @include ui.paddingX(calc(ui.v('??padding') * ui.v('??compressed')));
45
+ transition: opacity #{ui.v('d.sys.transitionDuration.standard')} linear;
46
+
47
+ @include ui.truncate;
48
+ }
49
+
50
+ &__icon,
51
+ &__trailing {
52
+ @include ui.initByCustom('margin', #{calc((var(--sys-height) - ui.v('?icon._width')) / 2)});
53
+ @include ui.marginLeft(calc(ui.v('??margin') * ui.v('??compressed')));
54
+ @include ui.marginRight(calc(ui.v('??margin') * ui.v('??compressed')));
55
+ }
56
+
57
+ &__label:has(~ &__icon) {
58
+ @include ui.paddingLeft(ui.v('??padding'));
59
+ }
60
+
61
+ &__label ~ &__icon {
62
+ @include ui.marginRight(#{calc(ui.v('??margin') - ui.v('??padding'))});
63
+ }
64
+
65
+ &__label:has(~ &__trailing) {
66
+ @include ui.paddingRight(ui.v('??padding'));
67
+ }
68
+
69
+ &__label ~ &__trailing {
70
+ @include ui.marginLeft(#{calc(ui.v('??margin') - ui.v('??padding'))});
71
+ }
72
+
73
+ &__loading#{'.'}#{ui.n('?progress--visible')} ~ * {
74
+ opacity: ui.v('??colorOpacity', 0);
75
+ }
76
+
77
+ &--icon {
78
+ @include ui.initByCustom('padding', #{calc(var(--sys-height) / 2)});
79
+ }
80
+
81
+ &--loading {
82
+ cursor: default;
83
+ }
84
+
85
+ &--grid {
86
+ display: inline-grid;
87
+ grid-template-columns: repeat(auto-fit, minmax(0, auto));
88
+ grid-template-rows: 1fr;
89
+ }
90
+
91
+ &--inverse {
92
+ --sys-color: unset !important;
93
+ --sys-background: var(--sys-color) !important;
94
+ --sys-gradient: var(--sys-color) !important;
95
+ }
96
+ }
@@ -0,0 +1,56 @@
1
+ import type { ConstrClass } from '@dxtmisha/functional'
2
+
3
+ import type { IconComponentInclude } from '../Icon'
4
+ import type { ProgressComponentInclude } from '../Progress'
5
+ import type { RippleComponentsInclude } from '../Ripple'
6
+
7
+ import type { EventClickEmits, EventClickExpose } from '../../types/eventClickTypes'
8
+ import type { LabelSlots } from '../../types/labelTypes'
9
+
10
+ /**
11
+ * Interface for describing which components need to be connected for work.
12
+ *
13
+ * Интерфейс для описания, какие компоненты надо подключить для работы.
14
+ */
15
+ export type ButtonComponents
16
+ = IconComponentInclude
17
+ & ProgressComponentInclude
18
+ & RippleComponentsInclude
19
+
20
+ /**
21
+ * Type describing available events.
22
+ *
23
+ * Тип, описывающий доступные события.
24
+ */
25
+ export type ButtonEmits = EventClickEmits
26
+
27
+ /**
28
+ * Type describing available properties.
29
+ *
30
+ * Тип, описывающий доступные свойства.
31
+ */
32
+ export interface ButtonExpose extends EventClickExpose {
33
+ }
34
+
35
+ /**
36
+ * Type describing available slots.
37
+ *
38
+ * Тип, описывающий доступные слоты.
39
+ */
40
+ export interface ButtonSlots extends LabelSlots {
41
+ }
42
+
43
+ /**
44
+ * Type describing subclasses.
45
+ *
46
+ * Тип, описывающий подклассы.
47
+ */
48
+ export type ButtonClasses = {
49
+ main: ConstrClass
50
+ // :classes [!] System label / Системная метка
51
+ label: string
52
+ icon: string
53
+ trailing: string
54
+ loading: string
55
+ // :classes [!] System label / Системная метка
56
+ }
@@ -0,0 +1,127 @@
1
+ import { computed, type Ref, type ToRefs } from 'vue'
2
+ import {
3
+ type ConstrClass,
4
+ type ConstrEmit,
5
+ DesignComp
6
+ } from '@dxtmisha/functional'
7
+ import { getClassTegAStatic } from '../../functions/getClassTegAStatic'
8
+
9
+ import { LabelInclude } from '../../classes/LabelInclude'
10
+ import { CaptionInclude } from '../../classes/CaptionInclude'
11
+ import { DescriptionInclude } from '../../classes/DescriptionInclude'
12
+ import { EnabledInclude } from '../../classes/EnabledInclude'
13
+
14
+ import { IconTrailingInclude } from '../Icon'
15
+ import { ProgressInclude } from '../Progress'
16
+ import { RippleInclude } from '../Ripple'
17
+ import { SkeletonInclude } from '../Skeleton'
18
+
19
+ import { EventClickInclude } from '../../classes/EventClickInclude'
20
+
21
+ import type { CellComponents, CellEmits, CellSlots } from './types'
22
+ import type { CellPropsBasic } from './props'
23
+ import type { CellClassesSub } from './basicTypes'
24
+
25
+ /**
26
+ * Cell
27
+ */
28
+ export class Cell {
29
+ readonly progress: ProgressInclude
30
+ readonly skeleton: SkeletonInclude
31
+
32
+ readonly label: LabelInclude
33
+ readonly description: DescriptionInclude
34
+ readonly caption: CaptionInclude
35
+ readonly enabled: EnabledInclude
36
+
37
+ readonly icon: IconTrailingInclude
38
+ readonly ripple: RippleInclude
39
+
40
+ readonly event: EventClickInclude
41
+
42
+ /**
43
+ * Constructor
44
+ * @param props input data/ входные данные
45
+ * @param refs input data in the form of reactive elements/ входные данные в виде реактивных элементов
46
+ * @param element input element/ элемент ввода
47
+ * @param classDesign design name/ название дизайна
48
+ * @param className class name/ название класса
49
+ * @param components object for working with components/ объект для работы с компонентами
50
+ * @param slots object for working with slots/ объект для работы со слотами
51
+ * @param emits the function is called when an event is triggered/ функция вызывается, когда срабатывает событие
52
+ */
53
+ constructor(
54
+ protected readonly props: CellPropsBasic,
55
+ protected readonly refs: ToRefs<CellPropsBasic>,
56
+ protected readonly element: Ref<HTMLElement | undefined>,
57
+ protected readonly classDesign: string,
58
+ protected readonly className: string,
59
+ protected readonly components?: DesignComp<CellComponents, CellPropsBasic>,
60
+ protected readonly slots?: CellSlots,
61
+ protected readonly emits?: ConstrEmit<CellEmits>
62
+ ) {
63
+ const progress = new ProgressInclude(
64
+ props,
65
+ className,
66
+ components,
67
+ {
68
+ inverse: true,
69
+ position: 'bottom'
70
+ }
71
+ )
72
+
73
+ this.skeleton = new SkeletonInclude(
74
+ props,
75
+ classDesign,
76
+ ['classTextVariant']
77
+ )
78
+
79
+ this.label = new LabelInclude(
80
+ props,
81
+ className,
82
+ undefined,
83
+ slots,
84
+ undefined,
85
+ undefined,
86
+ undefined,
87
+ this.skeleton
88
+ )
89
+ this.caption = new CaptionInclude(props, className, slots)
90
+ this.description = new DescriptionInclude(props, className, slots, this.skeleton)
91
+ this.enabled = new EnabledInclude(props, progress)
92
+
93
+ this.icon = new IconTrailingInclude(props, className, components)
94
+ this.progress = progress
95
+ this.ripple = new RippleInclude(className, components, this.enabled)
96
+
97
+ this.event = new EventClickInclude(
98
+ props,
99
+ this.enabled,
100
+ emits
101
+ )
102
+ }
103
+
104
+ /**
105
+ * Computed CSS classes for the cell component.
106
+ *
107
+ * Вычисляемые CSS классы для компонента ячейки.
108
+ */
109
+ readonly classes = computed<ConstrClass>(() => ({
110
+ [`${this.className}--description`]: this.description.is.value,
111
+ [getClassTegAStatic(this.classDesign)]: true
112
+ }))
113
+
114
+ /**
115
+ * Returns a list of sub-element CSS classes for the cell component.
116
+ *
117
+ * Возвращает список CSS классов для под-элементов компонента ячейки.
118
+ */
119
+ getClassesSub(): CellClassesSub {
120
+ return {
121
+ label: `${this.className}__label`,
122
+ description: `${this.className}__description`,
123
+ caption: `${this.className}__caption`,
124
+ trailing: `${this.className}__trailing`
125
+ }
126
+ }
127
+ }
@@ -0,0 +1,203 @@
1
+ import { h, type VNode } from 'vue'
2
+ import {
3
+ type ConstrOptions,
4
+ type ConstrStyles,
5
+ DesignConstructorAbstract
6
+ } from '@dxtmisha/functional'
7
+
8
+ import { Cell } from './Cell'
9
+
10
+ import {
11
+ type CellPropsBasic
12
+ } from './props'
13
+ import {
14
+ type CellClasses,
15
+ type CellComponents,
16
+ type CellEmits,
17
+ type CellExpose,
18
+ type CellSlots
19
+ } from './types'
20
+
21
+ /**
22
+ * CellDesign
23
+ */
24
+ export class CellDesign<
25
+ COMP extends CellComponents,
26
+ EXPOSE extends CellExpose,
27
+ CLASSES extends CellClasses,
28
+ P extends CellPropsBasic
29
+ > extends DesignConstructorAbstract<
30
+ HTMLDivElement,
31
+ COMP,
32
+ CellEmits,
33
+ EXPOSE,
34
+ CellSlots,
35
+ CLASSES,
36
+ P
37
+ > {
38
+ protected readonly item: Cell
39
+
40
+ /**
41
+ * Constructor
42
+ * @param name class name/ название класса
43
+ * @param props properties/ свойства
44
+ * @param options list of additional parameters/ список дополнительных параметров
45
+ */
46
+ constructor(
47
+ name: string,
48
+ props: Readonly<P>,
49
+ options?: ConstrOptions<COMP, CellEmits, P>
50
+ ) {
51
+ super(
52
+ name,
53
+ props,
54
+ options
55
+ )
56
+
57
+ this.item = new Cell(
58
+ this.props,
59
+ this.refs,
60
+ this.element,
61
+ this.getDesign(),
62
+ this.getName(),
63
+ this.components,
64
+ this.slots,
65
+ this.emits
66
+ )
67
+
68
+ this.init()
69
+ }
70
+
71
+ /**
72
+ * Initialization of all the necessary properties for work
73
+ *
74
+ * Инициализация всех необходимых свойств для работы.
75
+ */
76
+ protected initExpose(): EXPOSE {
77
+ return {
78
+ ...this.item.event.expose
79
+ } as EXPOSE
80
+ }
81
+
82
+ /**
83
+ * Improvement of the obtained list of classes.
84
+ *
85
+ * Доработка полученного списка классов.
86
+ */
87
+ protected initClasses(): Partial<CLASSES> {
88
+ return {
89
+ main: this.item.classes.value,
90
+ ...{
91
+ // :classes [!] System label / Системная метка
92
+ context: this.getSubClass('context'),
93
+ contextTrailing: this.getSubClass('contextTrailing'),
94
+ label: this.getSubClass('label'),
95
+ description: this.getSubClass('description'),
96
+ caption: this.getSubClass('caption'),
97
+ icon: this.getSubClass('icon'),
98
+ trailing: this.getSubClass('trailing'),
99
+ body: this.getSubClass('body'),
100
+ loading: this.getSubClass('loading')
101
+ // :classes [!] System label / Системная метка
102
+ }
103
+ } as Partial<CLASSES>
104
+ }
105
+
106
+ /**
107
+ * Refinement of the received list of styles.
108
+ *
109
+ * Доработка полученного списка стилей.
110
+ */
111
+ protected initStyles(): ConstrStyles {
112
+ return {}
113
+ }
114
+
115
+ /**
116
+ * A method for rendering.
117
+ *
118
+ * Метод для рендеринга.
119
+ */
120
+ protected initRender(): VNode {
121
+ return h(
122
+ this.props.tag ?? 'div',
123
+ {
124
+ ...this.getAttrs(),
125
+ 'class': this.classes?.value.main,
126
+ 'data-value': this.props.value,
127
+ 'data-divider': this.props.divider ? 'active' : undefined,
128
+ 'onClick': this.item.event.onClick
129
+ },
130
+ [
131
+ ...this.item.icon.render(),
132
+ ...this.renderContext(),
133
+ ...this.renderTrailing(),
134
+ ...this.renderBody(),
135
+ ...this.item.ripple.render(),
136
+ ...this.item.progress.render()
137
+ ]
138
+ )
139
+ }
140
+
141
+ /**
142
+ * Generates text elements.
143
+ *
144
+ * Генерирует элементы текста.
145
+ */
146
+ protected renderContext = (): VNode[] => {
147
+ return [
148
+ h(
149
+ 'div',
150
+ { class: this.classes?.value.context },
151
+ [
152
+ ...this.item.label.render(),
153
+ ...this.item.caption.render(),
154
+ ...this.item.description.render()
155
+ ]
156
+ )
157
+ ]
158
+ }
159
+
160
+ /**
161
+ * Generates a slot for elements on the right.
162
+ *
163
+ * Генерирует слот для элементов справа.
164
+ */
165
+ protected renderTrailing = (): VNode[] => {
166
+ if (
167
+ this.slots
168
+ && 'trailing' in this.slots
169
+ ) {
170
+ return [
171
+ h(
172
+ 'div',
173
+ { class: this.classes?.value.contextTrailing },
174
+ this.initSlot('trailing', undefined, this.item.getClassesSub())
175
+ )
176
+ ]
177
+ }
178
+
179
+ return []
180
+ }
181
+
182
+ /**
183
+ * Generates a slot for elements on the right.
184
+ *
185
+ * Генерирует слот для элементов справа.
186
+ */
187
+ protected renderBody = (): VNode[] => {
188
+ if (
189
+ this.slots
190
+ && 'body' in this.slots
191
+ ) {
192
+ return [
193
+ h(
194
+ 'div',
195
+ { class: this.classes?.value.body },
196
+ this.initSlot('body', undefined, this.item.getClassesSub())
197
+ )
198
+ ]
199
+ }
200
+
201
+ return []
202
+ }
203
+ }
@@ -0,0 +1,6 @@
1
+ export type CellClassesSub = {
2
+ label: string
3
+ description: string
4
+ caption: string
5
+ trailing: string
6
+ }
@@ -0,0 +1,5 @@
1
+ export * from './Cell'
2
+ export * from './CellDesign'
3
+ export * from './props'
4
+ export * from './types'
5
+ export * from './basicTypes'
@@ -0,0 +1,52 @@
1
+ {
2
+ "border-width": {
3
+ "_type": "var"
4
+ },
5
+ "border-color": {
6
+ "_type": "var"
7
+ },
8
+ "transition-property": "background-color, background-image, border, box-shadow",
9
+ "transition-duration": "{d.sys.transitionDuration.fade.enter}",
10
+ "transition-function": "{d.sys.transitionFunction.standard}",
11
+ "#context": {},
12
+ "#contextTrailing": {},
13
+ "#label": {},
14
+ "#description": {},
15
+ "#caption": {},
16
+ "#icon": {},
17
+ "#trailing": {},
18
+ "#body": {},
19
+ "#loading": {},
20
+ "~focus": {},
21
+ "~selected": {},
22
+ "~readonly": {},
23
+ "~disabled": {},
24
+ "~dynamic": {},
25
+ "~dynamicHover": {},
26
+ "~divider": {
27
+ "_default": true
28
+ },
29
+ "~dividerLabel": {
30
+ "~always": {
31
+ "#context": {
32
+ "border-bottom-style": "solid",
33
+ "border-bottom-width": "{??borderWidth}",
34
+ "border-color": "{'??borderColor}"
35
+ }
36
+ },
37
+ "group|adaptive": {
38
+ "link|adaptive-dividerLabel": "{??dividerLabel.always}",
39
+ "_type": "media-max-group"
40
+ },
41
+ "group|container": {
42
+ "link|adaptive-dividerLabel": "{??dividerLabel.always}",
43
+ "_type": "container-max-group"
44
+ },
45
+ "none": {}
46
+ },
47
+ "~iconTop": {
48
+ "#icon": {
49
+ "align-self": "start"
50
+ }
51
+ }
52
+ }