@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,33 @@
1
+ {
2
+ "size": {
3
+ "_type": "var"
4
+ },
5
+ "background": {
6
+ "_type": "var"
7
+ },
8
+ "backgroundOpacity": {
9
+ "_type": "var"
10
+ },
11
+ "thumb": {
12
+ "background": {},
13
+ "opacity": {},
14
+ "rounded": {},
15
+ "hover": {
16
+ "opacity": {}
17
+ },
18
+ "_type": "var"
19
+ },
20
+ "outline": {
21
+ "width": {},
22
+ "color": {},
23
+ "opacity": {},
24
+ "_type": "var"
25
+ },
26
+ "~visible": {},
27
+ "~divider": {},
28
+ "~divider-top": {},
29
+ "~divider-bottom": {},
30
+ "~divider-hide": {},
31
+ "~inverse": {},
32
+ "~standard": {}
33
+ }
@@ -0,0 +1,37 @@
1
+ interface ScrollbarPropsToken {
2
+ // :type [!] System label / Системная метка
3
+ visible?: boolean
4
+ divider?: boolean
5
+ dividerTop?: boolean
6
+ dividerBottom?: boolean
7
+ dividerHide?: boolean
8
+ inverse?: boolean
9
+ standard?: boolean
10
+ // :type [!] System label / Системная метка
11
+ }
12
+
13
+ export interface ScrollbarPropsBasic {
14
+ // Style
15
+ tag?: string
16
+ }
17
+
18
+ /**
19
+ * Type describing incoming properties.
20
+ *
21
+ * Тип, описывающий входящие свойства.
22
+ */
23
+ export interface ScrollbarProps extends ScrollbarPropsBasic, ScrollbarPropsToken {
24
+ }
25
+
26
+ /**
27
+ * Default value for property.
28
+ *
29
+ * Значение по умолчанию для свойства.
30
+ */
31
+ export const defaultsScrollbar = {
32
+ tag: 'div',
33
+ ...{
34
+ // :default [!] System label / Системная метка
35
+ // :default [!] System label / Системная метка
36
+ }
37
+ }
@@ -0,0 +1,117 @@
1
+ @use "@dxtmisha/styles/properties" as ui;
2
+
3
+ @mixin mixinScrollbar {
4
+ $thisBorder: &;
5
+
6
+ position: relative;
7
+ overflow-x: hidden;
8
+ overflow-y: auto;
9
+
10
+ -webkit-overflow-scrolling: touch;
11
+
12
+ &:not(#{ui.c('??-disabled')}, #{ui.c('??-standard')}) {
13
+ @-moz-document url-prefix() {
14
+ scrollbar-color: rgba(ui.v('??thumb.background'), ui.v('??thumb.opacity', .12)) ui.v('??background');
15
+ scrollbar-width: thin;
16
+ }
17
+
18
+ &::-webkit-scrollbar {
19
+ appearance: none;
20
+ width: ui.v('??size');
21
+ height: ui.v('??size');
22
+ }
23
+
24
+ &::-webkit-scrollbar-thumb {
25
+ @include ui.backgroundColor(ui.v('??thumb.background'), ui.v('??thumb.opacity'));
26
+ border: none;
27
+ border-radius: ui.v('??thumb.rounded');
28
+ }
29
+
30
+ &::-webkit-scrollbar-track {
31
+ @include ui.backgroundColor(ui.v('??background'), ui.v('??backgroundOpacity'));
32
+ }
33
+
34
+ &:hover {
35
+ @include ui.initByCustom('thumb.opacity', ui.v('??thumb.hover.opacity'));
36
+ }
37
+ }
38
+
39
+ &--divider,
40
+ &--dividerTop,
41
+ &--dividerBottom {
42
+ @include ui.initByCustom('sys.outline.top', 0);
43
+ @include ui.initByCustom('sys.outline.bottom', 0);
44
+ @include ui.initByCustom('sys.outline.opacity.top', ui.v('??sys.outline.top'));
45
+ @include ui.initByCustom('sys.outline.opacity.bottom', ui.v('??sys.outline.bottom'));
46
+
47
+ &::before,
48
+ &::after {
49
+ display: block;
50
+ position: sticky;
51
+ margin-left: ui.v('??sys.outline.marginX', 0);
52
+ margin-right: calc(#{ui.v('??sys.outline.marginX', 0)} - #{ui.v('??size', var(--sys-scrollbar-offset, 0))});
53
+
54
+ transition-property: border-color;
55
+ transition-duration: ui.v('d.sys.transitionDuration.standard');
56
+ transition-timing-function: linear;
57
+ }
58
+
59
+ &--top {
60
+ @include ui.initByCustom('sys.outline.top', #{ui.v('??outline.opacity')})
61
+ }
62
+
63
+ &--bottom {
64
+ @include ui.initByCustom('sys.outline.bottom', #{ui.v('??outline.opacity')})
65
+ }
66
+
67
+ @include ui.state('inverse') {
68
+ @include ui.initByCustom('sys.outline.opacity.top', ui.v('??sys.outline.bottom'));
69
+ @include ui.initByCustom('sys.outline.opacity.bottom', ui.v('??sys.outline.top'));
70
+
71
+ &#{$thisBorder}--divider--top#{$thisBorder}--divider--bottom {
72
+ @include ui.initByCustom('sys.outline.opacity.top', 0);
73
+ @include ui.initByCustom('sys.outline.opacity.bottom', 0);
74
+ }
75
+ }
76
+ }
77
+
78
+ &--divider,
79
+ &--dividerTop {
80
+ &::before {
81
+ top: 0;
82
+
83
+ content: " ";
84
+
85
+ border-top-style: solid;
86
+ border-top-width: ui.v('??sys.outline.width', ui.v('??outline.width'));
87
+ border-top-color: rgba(ui.v('??outline.color'), ui.v('??sys.outline.opacity.top'));
88
+ }
89
+ }
90
+
91
+ &--divider,
92
+ &--dividerBottom {
93
+ &::after {
94
+ bottom: 0;
95
+
96
+ content: " ";
97
+
98
+ border-bottom-style: solid;
99
+ border-bottom-width: ui.v('??sys.outline.width', ui.v('??outline.width'));
100
+ border-bottom-color: rgba(ui.v('??outline.color'), ui.v('??sys.outline.opacity.bottom'));
101
+ }
102
+ }
103
+
104
+ &--dividerHide {
105
+ &::before,
106
+ &::after {
107
+ content: none;
108
+ }
109
+ }
110
+
111
+ &--visible {
112
+ overflow-x: visible;
113
+ overflow-y: visible;
114
+
115
+ height: auto !important;
116
+ }
117
+ }
@@ -0,0 +1,52 @@
1
+ import type { ConstrClass } from '@dxtmisha/functional'
2
+ import type { ScrollbarEdgeType } from './basicTypes'
3
+
4
+ /**
5
+ * Interface for describing which components need to be connected for work.
6
+ *
7
+ * Интерфейс для описания, какие компоненты надо подключить для работы.
8
+ */
9
+ export type ScrollbarComponents = {}
10
+
11
+ /**
12
+ * Type describing available events.
13
+ *
14
+ * Тип, описывающий доступные события.
15
+ */
16
+ export type ScrollbarEmits = {
17
+ top: [isTop: boolean]
18
+ reachTop: []
19
+ leaveTop: []
20
+ bottom: [isBottom: boolean]
21
+ reachBottom: []
22
+ leaveBottom: []
23
+ edge: [isTop: boolean, isBottom: boolean, edge: ScrollbarEdgeType]
24
+ }
25
+
26
+ /**
27
+ * Type describing available properties.
28
+ *
29
+ * Тип, описывающий доступные свойства.
30
+ */
31
+ export interface ScrollbarExpose {
32
+ }
33
+
34
+ /**
35
+ * Type describing available slots.
36
+ *
37
+ * Тип, описывающий доступные слоты.
38
+ */
39
+ export interface ScrollbarSlots {
40
+ default?(props: any): any
41
+ }
42
+
43
+ /**
44
+ * Type describing subclasses.
45
+ *
46
+ * Тип, описывающий подклассы.
47
+ */
48
+ export type ScrollbarClasses = {
49
+ main: ConstrClass
50
+ // :classes [!] System label / Системная метка
51
+ // :classes [!] System label / Системная метка
52
+ }
@@ -0,0 +1,86 @@
1
+ import { computed, type ComputedRef, inject, provide, type Ref, type ToRefs } from 'vue'
2
+ import { type ConstrEmit, DesignComp } from '@dxtmisha/functional'
3
+
4
+ import type { SkeletonClassesList } from './basicTypes'
5
+ import type { SkeletonComponents, SkeletonEmits, SkeletonSlots } from './types'
6
+ import type { SkeletonProps } from './props'
7
+
8
+ import { SKELETON_NAME_STATUS } from './const'
9
+
10
+ /**
11
+ * Skeleton
12
+ */
13
+ export class Skeleton {
14
+ protected status?: ComputedRef<boolean>
15
+
16
+ /**
17
+ * Returns the list of available classes.
18
+ *
19
+ * Возвращает список доступных классов для текуший элемента.
20
+ */
21
+ readonly classes: SkeletonClassesList
22
+
23
+ /**
24
+ * Constructor
25
+ * @param props input data/ входные данные
26
+ * @param refs input data in the form of reactive elements/ входные данные в виде реактивных элементов
27
+ * @param element input element/ элемент ввода
28
+ * @param className class name/ название класса
29
+ * @param components object for working with components/ объект для работы с компонентами
30
+ * @param slots object for working with slots/ объект для работы со слотами
31
+ * @param emits the function is called when an event is triggered/ функция вызывается, когда срабатывает событие
32
+ */
33
+ constructor(
34
+ protected readonly props: SkeletonProps,
35
+ protected readonly refs: ToRefs<SkeletonProps>,
36
+ protected readonly element: Ref<HTMLElement | undefined>,
37
+ protected readonly className: string,
38
+ protected readonly components?: DesignComp<SkeletonComponents, SkeletonProps>,
39
+ protected readonly slots?: SkeletonSlots,
40
+ protected readonly emits?: ConstrEmit<SkeletonEmits>
41
+ ) {
42
+ this.status = inject<ComputedRef<boolean> | undefined>(SKELETON_NAME_STATUS, undefined)
43
+ this.classes = Skeleton.getClassesList(this.className)
44
+
45
+ if (!this.status) {
46
+ provide(SKELETON_NAME_STATUS, this.isActive)
47
+ }
48
+ }
49
+
50
+ /**
51
+ * Checks if the loading mode is enabled.
52
+ *
53
+ * Проверяет, включен ли режим загрузки.
54
+ */
55
+ readonly isActive = computed<boolean>(() => Boolean(this.status?.value || this.props.active))
56
+
57
+ /**
58
+ * Returns the list of available classes.
59
+ *
60
+ * Возвращает список доступных классов.
61
+ * @param className class name/ название класса
62
+ */
63
+ static getClassesList(className: string): SkeletonClassesList {
64
+ return {
65
+ classText: `${className}__text`,
66
+ classTextVariant: `${className}__textVariant`,
67
+ classBackground: `${className}__background`,
68
+ classBackgroundAfter: `${className}__backgroundAfter`,
69
+ classBackgroundBefore: `${className}__backgroundBefore`,
70
+ classBackgroundVariant: `${className}__backgroundVariant`,
71
+ classBorder: `${className}__border`,
72
+ classBorderVariant: `${className}__borderVariant`,
73
+ classNone: `${className}__none`
74
+ }
75
+ }
76
+
77
+ /**
78
+ * Returns a list of available classes by design name.
79
+ *
80
+ * Возвращает список доступных классов по названию дизайна.
81
+ * @param design design name/ названия дизайна
82
+ */
83
+ static getClassesListByDesign(design: string): SkeletonClassesList {
84
+ return this.getClassesList(`${design}-skeleton`)
85
+ }
86
+ }
@@ -0,0 +1,117 @@
1
+ import { h, type VNode } from 'vue'
2
+ import {
3
+ type ConstrOptions,
4
+ type ConstrStyles,
5
+ DesignConstructorAbstract
6
+ } from '@dxtmisha/functional'
7
+
8
+ import { Skeleton } from './Skeleton'
9
+
10
+ import {
11
+ type SkeletonPropsBasic
12
+ } from './props'
13
+ import {
14
+ type SkeletonClasses,
15
+ type SkeletonComponents,
16
+ type SkeletonEmits,
17
+ type SkeletonExpose,
18
+ type SkeletonSlots
19
+ } from './types'
20
+
21
+ /**
22
+ * SkeletonDesign
23
+ */
24
+ export class SkeletonDesign<
25
+ COMP extends SkeletonComponents,
26
+ EXPOSE extends SkeletonExpose,
27
+ CLASSES extends SkeletonClasses,
28
+ P extends SkeletonPropsBasic
29
+ > extends DesignConstructorAbstract<
30
+ HTMLDivElement,
31
+ COMP,
32
+ SkeletonEmits,
33
+ EXPOSE,
34
+ SkeletonSlots,
35
+ CLASSES,
36
+ P
37
+ > {
38
+ protected readonly item: Skeleton
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, SkeletonEmits, P>
50
+ ) {
51
+ super(
52
+ name,
53
+ props,
54
+ options
55
+ )
56
+
57
+ this.item = new Skeleton(
58
+ this.props,
59
+ this.refs,
60
+ this.element,
61
+ this.getName(),
62
+ this.components,
63
+ this.slots,
64
+ this.emits
65
+ )
66
+
67
+ this.init()
68
+ }
69
+
70
+ /**
71
+ * Initialization of all the necessary properties for work<br>
72
+ * Инициализация всех необходимых свойств для работы.
73
+ */
74
+ protected initExpose(): EXPOSE {
75
+ return {
76
+ isActive: this.item.isActive
77
+ } as EXPOSE
78
+ }
79
+
80
+ /**
81
+ * Improvement of the obtained list of classes.<br>
82
+ * Доработка полученного списка классов.
83
+ */
84
+ protected initClasses(): Partial<CLASSES> {
85
+ return {
86
+ main: {},
87
+ ...{
88
+ // :classes [!] System label / Системная метка
89
+ // :classes [!] System label / Системная метка
90
+ }
91
+ } as Partial<CLASSES>
92
+ }
93
+
94
+ /**
95
+ * Refinement of the received list of styles.<br>
96
+ * Доработка полученного списка стилей.
97
+ */
98
+ protected initStyles(): ConstrStyles {
99
+ return {}
100
+ }
101
+
102
+ /**
103
+ * A method for rendering.<br>
104
+ * Метод для рендеринга.
105
+ */
106
+ protected initRender(): VNode {
107
+ const children: any[] = []
108
+
109
+ this.initSlot('default', children, this.item.classes)
110
+
111
+ return h('div', {
112
+ ...this.getAttrs(),
113
+ ref: this.element,
114
+ class: this.classes?.value.main
115
+ }, children)
116
+ }
117
+ }
@@ -0,0 +1,61 @@
1
+ import { computed, type ComputedRef, inject } from 'vue'
2
+ import type { ConstrClassObject } from '@dxtmisha/functional'
3
+
4
+ import { Skeleton } from './Skeleton'
5
+ import type { SkeletonClassesList, SkeletonPropsInclude } from './basicTypes'
6
+
7
+ import { SKELETON_NAME_STATUS } from './const'
8
+
9
+ /**
10
+ * Класс для подключения и работы с компонентом Skeleton.
11
+ *
12
+ * A class for connecting to and working with the Skeleton component.
13
+ */
14
+ export class SkeletonInclude {
15
+ /**
16
+ * Skeleton display states/ Состояния отображения Skeleton
17
+ */
18
+ protected readonly status = inject<ComputedRef<boolean> | undefined>(SKELETON_NAME_STATUS, undefined)
19
+
20
+ /**
21
+ * A list of available classes for the Skeleton/ Список доступных классов для Skeleton
22
+ */
23
+ readonly classesSkeleton: SkeletonClassesList
24
+
25
+ /**
26
+ * Constructor
27
+ * @param props input data/ входные данные
28
+ * @param classDesign design name/ название дизайна
29
+ * @param classesList list of available classes/ список доступных классов
30
+ */
31
+ constructor(
32
+ protected readonly props: SkeletonPropsInclude,
33
+ classDesign: string,
34
+ protected readonly classesList?: (keyof SkeletonClassesList)[]
35
+ ) {
36
+ this.classesSkeleton = Skeleton.getClassesListByDesign(classDesign)
37
+ }
38
+
39
+ /**
40
+ * Indicates whether the Skeleton status is enabled/ Указывает, включён ли статус Skeleton
41
+ */
42
+ readonly isSkeleton = computed<boolean>(() => Boolean(this.status && this.status.value))
43
+
44
+ /**
45
+ * Returns the available list for the skeleton/ Возвращает доступный список для скелетона
46
+ */
47
+ readonly classes = computed<ConstrClassObject>(() => {
48
+ const classes: ConstrClassObject = {}
49
+
50
+ if (
51
+ this.classesList
52
+ && this.props.isSkeleton
53
+ ) {
54
+ this.classesList.forEach((className) => {
55
+ classes[this.classesSkeleton[className]] = true
56
+ })
57
+ }
58
+
59
+ return classes
60
+ })
61
+ }
@@ -0,0 +1,16 @@
1
+ export type SkeletonClassesList = {
2
+ classText: string
3
+ classTextVariant: string
4
+ classBackground: string
5
+ classBackgroundAfter: string
6
+ classBackgroundBefore: string
7
+ classBackgroundVariant: string
8
+ classBorder: string
9
+ classBorderVariant: string
10
+ classNone: string
11
+ }
12
+
13
+ export interface SkeletonPropsInclude {
14
+ // Style
15
+ isSkeleton?: boolean
16
+ }
@@ -0,0 +1 @@
1
+ export const SKELETON_NAME_STATUS = 'skeleton-status'
@@ -0,0 +1,6 @@
1
+ export * from './Skeleton'
2
+ export * from './SkeletonDesign'
3
+ export * from './SkeletonInclude'
4
+ export * from './basicTypes'
5
+ export * from './props'
6
+ export * from './types'
@@ -0,0 +1,24 @@
1
+ {
2
+ "color": {
3
+ "_type": "var"
4
+ },
5
+ "color-opacity": {
6
+ "_type": "var"
7
+ },
8
+ "background-color": {
9
+ "_type": "var"
10
+ },
11
+ "background-opacity": {
12
+ "_type": "var"
13
+ },
14
+ "border-color": {
15
+ "_type": "var"
16
+ },
17
+ "border-opacity": {
18
+ "_type": "var"
19
+ },
20
+ "opacity": {
21
+ "_type": "var"
22
+ },
23
+ "~active": {}
24
+ }
@@ -0,0 +1,28 @@
1
+ interface SkeletonPropsToken {
2
+ // :type [!] System label / Системная метка
3
+ active?: boolean
4
+ // :type [!] System label / Системная метка
5
+ }
6
+
7
+ export interface SkeletonPropsBasic {
8
+ }
9
+
10
+ /**
11
+ * Type describing incoming properties.
12
+ *
13
+ * Тип, описывающий входящие свойства.
14
+ */
15
+ export interface SkeletonProps extends SkeletonPropsBasic, SkeletonPropsToken {
16
+ }
17
+
18
+ /**
19
+ * Default value for property.
20
+ *
21
+ * Значение по умолчанию для свойства.
22
+ */
23
+ export const defaultsSkeleton = {
24
+ ...{
25
+ // :default [!] System label / Системная метка
26
+ // :default [!] System label / Системная метка
27
+ }
28
+ }
@@ -0,0 +1,112 @@
1
+ @use "@dxtmisha/styles/properties" as ui;
2
+
3
+ @mixin mixinSkeletonText {
4
+ text-decoration-line: line-through !important;
5
+ text-decoration-thickness: calc(var(--sys-font-size) * .64) !important;
6
+ text-decoration-skip: #{spaces} !important;
7
+ -webkit-text-decoration-skip: spaces !important;
8
+
9
+ --sys-color: #{ui.v('??color')} !important;
10
+ --sys-color-opacity: #{ui.v('??colorOpacity', 1)} !important;
11
+ }
12
+
13
+ @mixin mixinSkeleton {
14
+ $this: &;
15
+
16
+ @include ui.initByCustom('opacity', .32);
17
+ @include ui.initByCustom('animation', #{ui.n('??animationType1') ui.v('d.ref.transitionFunction.linear') 2.4s infinite});
18
+
19
+ &--active {
20
+ animation: ui.v('??animation');
21
+
22
+ @include ui.absoluteAfter {
23
+ z-index: 999999;
24
+ }
25
+
26
+ *,
27
+ *::before,
28
+ *::after,
29
+ *::placeholder {
30
+ color: transparent !important;
31
+ background: transparent !important;
32
+ border-color: transparent !important;
33
+
34
+ box-shadow: none !important;
35
+ }
36
+
37
+ svg {
38
+ opacity: 0;
39
+ filter: opacity(0);
40
+ }
41
+
42
+ @include ui.subclass('text') {
43
+ @include mixinSkeletonText;
44
+ @include ui.color(ui.v('??color'), ui.v('??colorOpacity'), true, 'text-decoration-color');
45
+ }
46
+
47
+ @include ui.subclass('textVariant') {
48
+ @include mixinSkeletonText;
49
+ @include ui.color(ui.v('??backgroundColor'), ui.v('??backgroundOpacity'), true, 'text-decoration-color');
50
+ }
51
+
52
+ @include ui.subclass('background') {
53
+ @include ui.backgroundColor(ui.v('??backgroundColor'), ui.v('??backgroundOpacity', 1), true);
54
+ }
55
+
56
+ @include ui.subclass('backgroundAfter') {
57
+ &:after {
58
+ @include ui.backgroundColor(ui.v('??backgroundColor'), ui.v('??backgroundOpacity', 1), true);
59
+ }
60
+ }
61
+
62
+ @include ui.subclass('backgroundBefore') {
63
+ &:before {
64
+ @include ui.backgroundColor(ui.v('??backgroundColor'), ui.v('??backgroundOpacity', 1), true);
65
+ }
66
+ }
67
+
68
+ @include ui.subclass('backgroundVariant') {
69
+ @include ui.backgroundColor(ui.v('??color'), ui.v('??colorOpacity', 1), true);
70
+ }
71
+
72
+ @include ui.subclass('border') {
73
+ @include ui.borderColor(ui.v('??borderColor'), ui.v('??borderOpacity', 1), true);
74
+ }
75
+
76
+ @include ui.subclass('borderVariant') {
77
+ @include ui.borderColor(ui.v('??color'), ui.v('??colorOpacity', 1), true);
78
+ }
79
+
80
+ @include ui.subclass('none') {
81
+ color: transparent !important;
82
+ text-decoration-thickness: 0 !important;
83
+ background: transparent !important;
84
+ border-color: transparent !important;
85
+
86
+ * {
87
+ color: transparent !important;
88
+ text-decoration-thickness: 0 !important;
89
+ background: transparent !important;
90
+ border-color: transparent !important;
91
+ }
92
+ }
93
+ }
94
+
95
+ @keyframes #{ui.n('??animationType1')} {
96
+ 0% {
97
+ opacity: 1;
98
+ }
99
+ 10% {
100
+ opacity: 1;
101
+ }
102
+ 50% {
103
+ opacity: ui.v('??opacity');
104
+ }
105
+ 90% {
106
+ opacity: 1;
107
+ }
108
+ 100% {
109
+ opacity: 1;
110
+ }
111
+ }
112
+ }