@topvisor/ui 0.0.34 → 0.0.35

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 (267) hide show
  1. package/.storybook/TopTheme.js +82 -0
  2. package/.storybook/TopThemeManager.js +44 -0
  3. package/.storybook/main.ts +43 -0
  4. package/.storybook/manager.ts +28 -0
  5. package/.storybook/preview-head.html +16 -0
  6. package/.storybook/preview.ts +48 -0
  7. package/.storybook/vue/coreDecorator.ts +19 -0
  8. package/.storybook/vue/vModelDecorator.ts +27 -0
  9. package/.vscode/extensions.json +11 -0
  10. package/.vscode/keybindings.example.json +121 -0
  11. package/.vscode/settings.json +46 -0
  12. package/Dockerfile +3 -0
  13. package/NPM.md +25 -0
  14. package/PUBLISH.md +18 -0
  15. package/README.md +19 -52
  16. package/STORYBOOK.md +27 -0
  17. package/USE_IN_PROJECT.md +29 -0
  18. package/build/afterBuild.sh +12 -0
  19. package/build/cssModules.ts +39 -0
  20. package/build/plugin/amdFix.ts +46 -0
  21. package/build/rollup.config.ts +18 -0
  22. package/nbproject/project.properties +11 -0
  23. package/nbproject/project.xml +9 -0
  24. package/package.json +68 -19
  25. package/public/README.md +63 -0
  26. package/src/components/common/common.ts +1 -0
  27. package/src/components/common/icon/icon.ts +4 -0
  28. package/src/components/common/icon/icon.vue +15 -0
  29. package/src/components/component.ts +133 -0
  30. package/src/components/forms/button/button.stories.ts +112 -0
  31. package/src/components/forms/button/button.ts +51 -0
  32. package/src/components/forms/button/button.vue +75 -0
  33. package/src/components/forms/button/stories/README.md +35 -0
  34. package/src/components/forms/button/stories/overview.vue +33 -0
  35. package/src/components/forms/button/style/button.css +124 -0
  36. package/src/components/forms/button/style/style-outline.css +42 -0
  37. package/src/components/forms/button/style/style-soft.css +31 -0
  38. package/src/components/forms/button/style/style-transparent.css +35 -0
  39. package/src/components/forms/checkbox/checkbox.stories.ts +33 -0
  40. package/src/components/forms/checkbox/checkbox.ts +23 -0
  41. package/src/components/forms/checkbox/checkbox.vue +135 -0
  42. package/src/components/forms/checkbox/stories/overview.vue +171 -0
  43. package/src/components/forms/controlLabel/controlLabel.stories.ts +38 -0
  44. package/src/components/forms/controlLabel/controlLabel.ts +4 -0
  45. package/src/components/forms/controlLabel/controlLabel.vue +48 -0
  46. package/src/components/forms/forms.ts +10 -0
  47. package/src/components/forms/helpers.ts +10 -0
  48. package/src/components/forms/hint/hint.stories.ts +46 -0
  49. package/src/components/forms/hint/hint.ts +8 -0
  50. package/src/components/forms/hint/hint.vue +32 -0
  51. package/src/components/forms/input/input.stories.ts +31 -0
  52. package/src/components/forms/input/input.ts +34 -0
  53. package/src/components/forms/input/input.vue +170 -0
  54. package/src/components/forms/input/stories/overview.vue +61 -0
  55. package/src/components/forms/inputDate/datepicker.css +233 -0
  56. package/src/components/forms/inputDate/datepicker.ts +101 -0
  57. package/src/components/forms/inputDate/inputDate.stories.ts +41 -0
  58. package/src/components/forms/inputDate/inputDate.ts +4 -0
  59. package/src/components/forms/inputDate/inputDate.vue +127 -0
  60. package/src/components/forms/inputDate/stories/overview.vue +35 -0
  61. package/src/components/forms/radio/radio.stories.ts +34 -0
  62. package/src/components/forms/radio/radio.ts +15 -0
  63. package/src/components/forms/radio/radio.vue +107 -0
  64. package/src/components/forms/radio/stories/overview.vue +79 -0
  65. package/src/components/forms/select/select.stories.ts +34 -0
  66. package/src/components/forms/select/select.ts +36 -0
  67. package/src/components/forms/select/select.vue +253 -0
  68. package/src/components/forms/select/stories/exampleOptions.ts +71 -0
  69. package/src/components/forms/select/stories/overview.vue +60 -0
  70. package/src/components/forms/switcher/stories/overview.vue +139 -0
  71. package/src/components/forms/switcher/switcher.stories.ts +33 -0
  72. package/src/components/forms/switcher/switcher.ts +22 -0
  73. package/src/components/forms/switcher/switcher.vue +113 -0
  74. package/src/components/forms/textarea/stories/overview.vue +62 -0
  75. package/src/components/forms/textarea/textarea.stories.ts +33 -0
  76. package/src/components/forms/textarea/textarea.ts +38 -0
  77. package/src/components/forms/textarea/textarea.vue +119 -0
  78. package/src/components/formsExt/editArea/editArea.stories.ts +72 -0
  79. package/src/components/formsExt/editArea/editArea.ts +25 -0
  80. package/src/components/formsExt/editArea/editArea.vue +172 -0
  81. package/src/components/formsExt/editArea/stories/README.md +17 -0
  82. package/src/components/formsExt/editArea/stories/overview.vue +66 -0
  83. package/src/components/formsExt/editInput/editInput.stories.ts +36 -0
  84. package/src/components/formsExt/editInput/editInput.ts +20 -0
  85. package/src/components/formsExt/editInput/editInput.vue +57 -0
  86. package/src/components/formsExt/editInput/stories/overview.vue +54 -0
  87. package/src/components/formsExt/formsExt.ts +3 -0
  88. package/src/components/formsExt/radioGroup/radioGroup.stories.ts +51 -0
  89. package/src/components/formsExt/radioGroup/radioGroup.ts +28 -0
  90. package/src/components/formsExt/radioGroup/radioGroup.vue +143 -0
  91. package/src/components/formsExt/radioGroup/stories/overview.vue +78 -0
  92. package/src/components/formsExt/radioGroup/styles/top-scrollBar.css +52 -0
  93. package/src/components/helper.js +10 -0
  94. package/src/components/helpersStories.ts +151 -0
  95. package/src/components/popup/lib/popup.globalEvents.js +205 -0
  96. package/src/components/popup/lib/popup.js +702 -0
  97. package/src/components/popup/lib/worker.globalEvents.js +78 -0
  98. package/src/components/popup/lib/worker.js +232 -0
  99. package/src/components/popup/popup/listItem.vue +42 -0
  100. package/src/components/popup/popup/opener.vue +74 -0
  101. package/src/components/popup/popup/popup.stories.ts +68 -0
  102. package/src/components/popup/popup/popup.ts +93 -0
  103. package/src/components/popup/popup/popup.vue +95 -0
  104. package/src/components/popup/popup/stories/README.md +34 -0
  105. package/src/components/popup/popup/stories/listItems.vue +44 -0
  106. package/src/components/popup/popup/stories/listSubItems.vue +52 -0
  107. package/src/components/popup/popup/stories/overview.vue +208 -0
  108. package/src/components/popup/popup/style/popup.css +243 -0
  109. package/src/components/popup/popup/style/popup.m.css +71 -0
  110. package/src/components/popup/popup/style/popup.pc.css +28 -0
  111. package/src/components/popup/popup.ts +3 -0
  112. package/src/components/popup/worker.ts +1 -0
  113. package/src/components/tabs/tabs/content.vue +24 -0
  114. package/src/components/tabs/tabs/stories/README.md +10 -0
  115. package/src/components/tabs/tabs/tab.vue +52 -0
  116. package/src/components/tabs/tabs/tabs.stories.ts +171 -0
  117. package/src/components/tabs/tabs/tabs.ts +22 -0
  118. package/src/components/tabs/tabs/tabs.vue +64 -0
  119. package/src/components/tabs/tabs.ts +3 -0
  120. package/src/core/base/Colors.stories.ts +15 -0
  121. package/src/core/base/Layout.stories.ts +15 -0
  122. package/src/core/base/Properties.stories.ts +15 -0
  123. package/src/core/base/base.mdx +21 -0
  124. package/src/core/core/core.ts +144 -0
  125. package/src/core/core/events.ts +54 -0
  126. package/src/core/core/options.ts +15 -0
  127. package/src/core/core/state.ts +44 -0
  128. package/src/core/directives/tooltip.ts +55 -0
  129. package/src/core/theme/Colors.stories.ts +15 -0
  130. package/src/core/theme/Properties.stories.ts +15 -0
  131. package/src/core/theme/theme.mdx +15 -0
  132. package/src/core/utils/date.ts +164 -0
  133. package/src/core/utils/device.ts +48 -0
  134. package/src/core/utils/dom.ts +185 -0
  135. package/src/core//320/235/320/260/320/261/320/276/321/200 /320/270/320/272/320/276/320/275/320/276/320/272/gallery.vue" +72 -0
  136. package/src/core//320/235/320/260/320/261/320/276/321/200 /320/270/320/272/320/276/320/275/320/276/320/272//320/235/320/260/320/261/320/276/321/200 /320/270/320/272/320/276/320/275/320/276/320/272.mdx" +31 -0
  137. package/src/core//320/235/320/260/320/261/320/276/321/200 /320/270/320/272/320/276/320/275/320/276/320/272//320/235/320/260/320/261/320/276/321/200 /320/270/320/272/320/276/320/275/320/276/320/272.stories.ts" +14 -0
  138. package/src/docs/CSS/FAQ.mdx +43 -0
  139. package/src/docs/CSS//320/236/320/261/321/211/320/270/320/265 /320/274/320/276/320/264/320/270/321/204/320/270/320/272/320/260/321/202/320/276/321/200/321/213.mdx" +156 -0
  140. package/src/docs/CSS//320/237/320/265/321/200/320/265/320/274/320/265/320/275/320/275/321/213/320/265.mdx +47 -0
  141. package/src/docs/CSS//320/237/321/200/320/265/320/264/320/277/321/200/320/276/321/206/320/265/321/201/321/201/320/276/321/200/321/213.mdx +15 -0
  142. package/src/docs/CSS//320/240/320/265/320/272/320/276/320/274/320/265/320/275/320/264/320/260/321/206/320/270/320/270 /320/221/320/255/320/234.mdx" +49 -0
  143. package/src/docs/CSS//320/241/321/202/320/270/320/273/320/270.md +53 -0
  144. package/src/docs/CSS//320/241/321/202/320/270/320/273/320/270.mdx +4 -0
  145. package/src/docs/CSS//320/247/321/202/320/276 /321/202/320/260/320/272/320/276/320/265 css /320/274/320/276/320/264/321/203/320/273/321/214.mdx" +53 -0
  146. package/src/docs/ROADMAP.md +17 -0
  147. package/src/docs/Roadmap.mdx +4 -0
  148. package/src/docs//320/222/320/262/320/265/320/264/320/265/320/275/320/270/320/265 /320/262 Storybook.mdx" +323 -0
  149. package/src/docs//320/232/320/276/320/274/320/277/320/276/320/275/320/265/320/275/321/202/321/213.mdx +20 -0
  150. package/src/docs//320/237/320/276/320/273/320/265/320/267/320/275/320/260/321/217 /320/270/320/275/321/204/320/276/321/200/320/274/320/260/321/206/320/270/321/217.mdx" +8 -0
  151. package/src/docs//320/241/321/202/320/260/320/275/320/264/320/260/321/200/321/202/321/213 /320/272/320/276/320/264/320/260/IDE.mdx" +42 -0
  152. package/src/docs//320/241/321/202/320/260/320/275/320/264/320/260/321/200/321/202/321/213 /320/272/320/276/320/264/320/260//320/233/320/270/320/275/321/202/320/265/321/200.mdx" +72 -0
  153. package/src/docs//320/241/321/202/320/260/320/275/320/264/320/260/321/200/321/202/321/213 /320/272/320/276/320/264/320/260//320/241/321/202/320/260/320/275/320/264/320/260/321/200/321/202/321/213 /320/272/320/276/320/264/320/260.mdx" +29 -0
  154. package/src/globals.d.ts +1 -0
  155. package/{icomoon → src/resources/icomoon}/demo-files/demo.css +161 -161
  156. package/{icomoon → src/resources/icomoon}/demo-files/demo.js +30 -30
  157. package/{icomoon → src/resources/icomoon}/demo.html +2945 -2945
  158. package/{icomoon → src/resources/icomoon}/fonts/Topvisor-2.svg +232 -232
  159. package/{icomoon → src/resources/icomoon}/style.css +647 -647
  160. package/src/resources/styles/core/colors.css +204 -0
  161. package/src/resources/styles/core/components.css +70 -0
  162. package/src/resources/styles/core/core.ts +10 -0
  163. package/src/resources/styles/core/forms/clear.css +19 -0
  164. package/src/resources/styles/core/forms/controls.css +20 -0
  165. package/src/resources/styles/core/forms/focusable.css +26 -0
  166. package/src/resources/styles/core/forms/forms.css +100 -0
  167. package/src/resources/styles/core/icon.css +58 -0
  168. package/src/resources/styles/core/layout.css +40 -0
  169. package/src/resources/styles/core/modifiers/as.css +9 -0
  170. package/src/resources/styles/core/modifiers/ellipsis.css +18 -0
  171. package/src/resources/styles/core/modifiers/modifiers.css +81 -0
  172. package/src/resources/styles/core/modifiers/only.css +19 -0
  173. package/src/resources/styles/core/select.css +16 -0
  174. package/src/resources/styles/jquery-ui.min.css +6 -0
  175. package/src/resources/styles/storybook.css +11 -0
  176. package/src/resources/styles/themes/dark/theme.css +139 -0
  177. package/src/resources/styles/themes/dark.ts +1 -0
  178. package/src/resources/styles/themes/light/theme.css +139 -0
  179. package/src/resources/styles/themes/light.ts +1 -0
  180. package/src/storybook/components/color.vue +45 -0
  181. package/src/storybook/components/colors.vue +34 -0
  182. package/src/storybook/components/icomoon.ts +38 -0
  183. package/src/storybook/components/properties.vue +82 -0
  184. package/src/storybook/resources/accessibility.png +0 -0
  185. package/src/storybook/resources/accessibility.svg +5 -0
  186. package/src/storybook/resources/addon-library.png +0 -0
  187. package/src/storybook/resources/assets.png +0 -0
  188. package/src/storybook/resources/context.png +0 -0
  189. package/src/storybook/resources/discord.svg +15 -0
  190. package/src/storybook/resources/docs.png +0 -0
  191. package/src/storybook/resources/figma-plugin.png +0 -0
  192. package/src/storybook/resources/github.svg +3 -0
  193. package/src/storybook/resources/share.png +0 -0
  194. package/src/storybook/resources/styling.png +0 -0
  195. package/src/storybook/resources/testing.png +0 -0
  196. package/src/storybook/resources/theming.png +0 -0
  197. package/src/storybook/resources/tutorials.svg +12 -0
  198. package/src/storybook/resources/youtube.svg +4 -0
  199. package/src//320/224/320/276/320/261/321/200/320/276 /320/277/320/276/320/266/320/260/320/273/320/276/320/262/320/260/321/202/321/214.mdx" +3 -0
  200. package/tsconfig.json +62 -0
  201. package/vite.config.ts +91 -0
  202. package/.chunks/datepicker-0b648b9f.es.js +0 -275
  203. package/.chunks/datepicker-0b648b9f.es.js.map +0 -1
  204. package/.chunks/datepicker-0e9a0541.amd.js +0 -234
  205. package/.chunks/datepicker-0e9a0541.amd.js.map +0 -1
  206. package/.chunks/forms-02202302.amd.js +0 -3
  207. package/.chunks/forms-02202302.amd.js.map +0 -1
  208. package/.chunks/forms-eb00d0c1.es.js +0 -946
  209. package/.chunks/forms-eb00d0c1.es.js.map +0 -1
  210. package/.chunks/popup-6f73b4b2.es.js +0 -700
  211. package/.chunks/popup-6f73b4b2.es.js.map +0 -1
  212. package/.chunks/popup-e1f34511.amd.js +0 -341
  213. package/.chunks/popup-e1f34511.amd.js.map +0 -1
  214. package/common/common.amd.js +0 -2
  215. package/common/common.amd.js.map +0 -1
  216. package/common/common.js +0 -2
  217. package/common/common.js.map +0 -1
  218. package/core/core.amd.js +0 -2
  219. package/core/core.amd.js.map +0 -1
  220. package/core/core.js +0 -6
  221. package/core/core.js.map +0 -1
  222. package/core.css +0 -1
  223. package/dark.css +0 -1
  224. package/forms/forms.amd.js +0 -2
  225. package/forms/forms.amd.js.map +0 -1
  226. package/forms/forms.js +0 -15
  227. package/forms/forms.js.map +0 -1
  228. package/forms/helpers.amd.js +0 -2
  229. package/forms/helpers.amd.js.map +0 -1
  230. package/forms/helpers.js +0 -9
  231. package/forms/helpers.js.map +0 -1
  232. package/forms.css +0 -1
  233. package/formsExt/formsExt.amd.js +0 -3
  234. package/formsExt/formsExt.amd.js.map +0 -1
  235. package/formsExt/formsExt.js +0 -152
  236. package/formsExt/formsExt.js.map +0 -1
  237. package/formsExt.css +0 -1
  238. package/light.css +0 -1
  239. package/popup/popup.amd.js +0 -3
  240. package/popup/popup.amd.js.map +0 -1
  241. package/popup/popup.js +0 -144
  242. package/popup/popup.js.map +0 -1
  243. package/popup/worker.amd.js +0 -2
  244. package/popup/worker.amd.js.map +0 -1
  245. package/popup/worker.js +0 -154
  246. package/popup/worker.js.map +0 -1
  247. package/popup.css +0 -1
  248. package/tabs/tabs.amd.js +0 -3
  249. package/tabs/tabs.amd.js.map +0 -1
  250. package/tabs/tabs.js +0 -97
  251. package/tabs/tabs.js.map +0 -1
  252. package/tabs.css +0 -1
  253. package/utils/date.amd.js +0 -2
  254. package/utils/date.amd.js.map +0 -1
  255. package/utils/date.js +0 -6
  256. package/utils/date.js.map +0 -1
  257. package/utils/device.amd.js +0 -2
  258. package/utils/device.amd.js.map +0 -1
  259. package/utils/device.js +0 -6
  260. package/utils/device.js.map +0 -1
  261. package/utils/dom.amd.js +0 -2
  262. package/utils/dom.amd.js.map +0 -1
  263. package/utils/dom.js +0 -64
  264. package/utils/dom.js.map +0 -1
  265. /package/{icomoon → src/resources/icomoon}/fonts/Topvisor-2.ttf +0 -0
  266. /package/{icomoon → src/resources/icomoon}/fonts/Topvisor-2.woff +0 -0
  267. /package/{icomoon → src/resources/icomoon}/selection.json +0 -0
@@ -0,0 +1,323 @@
1
+ import Styling from "@/storybook/resources/styling.png";
2
+ import Context from "@/storybook/resources/context.png";
3
+ import Assets from "@/storybook/resources/assets.png";
4
+ import Docs from "@/storybook/resources/docs.png";
5
+ import Share from "@/storybook/resources/share.png";
6
+ import FigmaPlugin from "@/storybook/resources/figma-plugin.png";
7
+ import Testing from "@/storybook/resources/testing.png";
8
+ import Accessibility from "@/storybook/resources/accessibility.png";
9
+ import Theming from "@/storybook/resources/theming.png";
10
+ import AddonLibrary from "@/storybook/resources/addon-library.png";
11
+
12
+ export const RightArrow = () => <svg
13
+ viewBox="0 0 14 14"
14
+ width="8px"
15
+ height="14px"
16
+ style={{
17
+ marginLeft: '4px',
18
+ display: 'inline-block',
19
+ shapeRendering: 'inherit',
20
+ verticalAlign: 'middle',
21
+ fill: 'currentColor',
22
+ 'path fill': 'currentColor'
23
+ }}
24
+ >
25
+ <path d="m11.1 7.35-5.5 5.5a.5.5 0 0 1-.7-.7L10.04 7 4.9 1.85a.5.5 0 1 1 .7-.7l5.5 5.5c.2.2.2.5 0 .7Z" />
26
+ </svg>
27
+
28
+ <div className="sb-container">
29
+ <div className='sb-section-title'>
30
+ # Введение в Storybook
31
+ </div>
32
+
33
+ [Компонентный подход](https://www.componentdriven.org/)
34
+
35
+ [Учебные пособия](https://storybook.js.org/tutorials/)
36
+
37
+ <div className="sb-section">
38
+ <div className="sb-section-item">
39
+ <img
40
+ src={Styling}
41
+ alt="A wall of logos representing different styling technologies"
42
+ />
43
+ <h4 className="sb-section-item-heading">Добавление стилей и CSS</h4>
44
+ <p className="sb-section-item-paragraph">Узнайте о вариантах подключения стилей в Storybook.</p>
45
+ <a
46
+ href="https://storybook.js.org/docs/vue/configure/styling-and-css"
47
+ target="_blank"
48
+ >Читать больше<RightArrow /></a>
49
+ </div>
50
+
51
+ <div className="sb-section-item">
52
+ <img
53
+ src={Context}
54
+ alt="An abstraction representing the composition of data for a component"
55
+ />
56
+ <h4 className="sb-section-item-heading">Контекст и заглушки</h4>
57
+ <p className="sb-section-item-paragraph">Если ваш компонент имеет какую-то зависимость, не определенныую в Storybok, он может не отображаться.</p>
58
+ <a
59
+ href="https://storybook.js.org/docs/vue/writing-stories/decorators#context-for-mocking"
60
+ target="_blank"
61
+ >Читать больше<RightArrow /></a>
62
+ </div>
63
+
64
+ <div className="sb-section-item">
65
+ <img src={Assets} alt="A representation of typography and image assets" />
66
+ <div>
67
+ <h4 className="sb-section-item-heading">Загрузка ресурсов</h4>
68
+ <p className="sb-section-item-paragraph">Чтобы связать статические файлы (например, шрифты) с вашими проектами и историями,
69
+ используйте `staticDirs` параметр конфигурации, чтобы указать папки для загрузки при запуске Storybook.</p>
70
+ <a
71
+ href="https://storybook.js.org/docs/vue/configure/images-and-assets"
72
+ target="_blank"
73
+ >Читать больше<RightArrow /></a>
74
+ </div>
75
+ </div>
76
+ </div>
77
+ </div>
78
+
79
+ <div className="sb-container">
80
+ <div className='sb-section-title'>
81
+ # Возможности Storybook
82
+
83
+ Теперь, когда вы знакомы с основами, давайте рассмотрим другие Возможности Storybook.
84
+ Вы можете настроить Storybook разными способами в соответствии со своими потребностями.
85
+ </div>
86
+
87
+ <div className="sb-section">
88
+ <div className="sb-features-grid">
89
+ <div className="sb-grid-item">
90
+ <img src={Docs} alt="A screenshot showing the autodocs tag being set, pointing a docs page being generated" />
91
+ <h4 className="sb-section-item-heading">Автодокументирвоание</h4>
92
+ <p className="sb-section-item-paragraph">Создавайте интерактивную справочную документацию из ваших компонентов.</p>
93
+ <a
94
+ href="https://storybook.js.org/docs/vue/writing-docs/autodocs"
95
+ target="_blank"
96
+ >Читать больше<RightArrow /></a>
97
+ </div>
98
+
99
+ <div className="sb-grid-item">
100
+ <img src={Share} alt="A browser window showing a Storybook being published to a chromatic.com URL" />
101
+ <h4 className="sb-section-item-heading">Публикация с Chromatic</h4>
102
+ <p className="sb-section-item-paragraph">Публикуйте storybook вместе всей командой.</p>
103
+ <a
104
+ href="https://storybook.js.org/docs/vue/sharing/publish-storybook#publish-storybook-with-chromatic"
105
+ target="_blank"
106
+ >Читать больше<RightArrow /></a>
107
+ </div>
108
+
109
+ <div className="sb-grid-item">
110
+ <img src={FigmaPlugin} alt="Windows showing the Storybook plugin in Figma" />
111
+ <h4 className="sb-section-item-heading">Плагин Figma</h4>
112
+ <p className="sb-section-item-paragraph">Встраивайте свои истории в Figma, чтобы создавать перекрестные
113
+ ссылки на дизайн и интерактивную реализацию.</p>
114
+ <a
115
+ href="https://storybook.js.org/docs/vue/sharing/design-integrations#embed-storybook-in-figma-with-the-plugin"
116
+ target="_blank"
117
+ >Читать больше<RightArrow /></a>
118
+ </div>
119
+
120
+ <div className="sb-grid-item">
121
+ <img src={Testing} alt="Screenshot of tests passing and failing" />
122
+ <h4 className="sb-section-item-heading">Тестирование</h4>
123
+ <p className="sb-section-item-paragraph">Используйте storybook для тестирования компонента во всех его вариациях независимо от сложности.</p>
124
+ <a
125
+ href="https://storybook.js.org/docs/vue/writing-tests/introduction"
126
+ target="_blank"
127
+ >Читать больше<RightArrow /></a>
128
+ </div>
129
+
130
+ <div className="sb-grid-item">
131
+ <img src={Accessibility} alt="Screenshot of accessibility tests passing and failing" />
132
+ <h4 className="sb-section-item-heading">Доступность</h4>
133
+ <p className="sb-section-item-paragraph">Автоматически тестируйте свои компоненты на наличие проблем a11y.</p>
134
+ <a
135
+ href="https://storybook.js.org/docs/vue/writing-tests/accessibility-testing"
136
+ target="_blank"
137
+ >Читать больше<RightArrow /></a>
138
+ </div>
139
+
140
+ <div className="sb-grid-item">
141
+ <img src={Theming} alt="Screenshot of Storybook in light and dark mode" />
142
+ <h4 className="sb-section-item-heading">Темы</h4>
143
+ <p className="sb-section-item-paragraph">Ознакомьтесь с возможностями настройки тем Storybook UI.</p>
144
+ <a
145
+ href="https://storybook.js.org/docs/vue/configure/theming"
146
+ target="_blank"
147
+ >Читать больше<RightArrow /></a>
148
+ </div>
149
+ </div>
150
+ </div>
151
+ </div>
152
+
153
+ <div className='sb-addon'>
154
+ <div className='sb-addon-text'>
155
+ <h4>Дополнения</h4>
156
+ <p className="sb-section-item-paragraph">Интегрируйте свои инструменты с Storybook для объединения рабочих процессов.</p>
157
+ <a
158
+ href="https://storybook.js.org/integrations/"
159
+ target="_blank"
160
+ >Смотреть все дополнения<RightArrow /></a>
161
+ </div>
162
+ <div className='sb-addon-img'>
163
+ <img src={AddonLibrary} alt="Integrate your tools with Storybook to connect workflows." />
164
+ </div>
165
+ </div>
166
+
167
+ <style>
168
+ {`
169
+ .sb-container {
170
+ margin-bottom: 48px;
171
+ }
172
+
173
+ .sb-section {
174
+ width: 100%;
175
+ display: flex;
176
+ flex-direction: row;
177
+ gap: 20px;
178
+ }
179
+
180
+ img {
181
+ object-fit: cover;
182
+ }
183
+
184
+ .sb-section-title {
185
+ margin-bottom: 32px;
186
+ }
187
+
188
+ .sb-section a:not(h1 a, h2 a, h3 a) {
189
+ font-size: 14px;
190
+ }
191
+
192
+ .sb-section-item, .sb-grid-item {
193
+ flex: 1;
194
+ display: flex;
195
+ flex-direction: column;
196
+ }
197
+
198
+ .sb-section-item-heading {
199
+ padding-top: 20px !important;
200
+ padding-bottom: 5px !important;
201
+ margin: 0 !important;
202
+ }
203
+ .sb-section-item-paragraph {
204
+ margin: 0;
205
+ padding-bottom: 10px;
206
+ }
207
+
208
+ .sb-chevron {
209
+ margin-left: 5px;
210
+ }
211
+
212
+ .sb-features-grid {
213
+ display: grid;
214
+ grid-template-columns: repeat(2, 1fr);
215
+ grid-gap: 32px 20px;
216
+ }
217
+
218
+ .sb-socials {
219
+ display: grid;
220
+ grid-template-columns: repeat(4, 1fr);
221
+ }
222
+
223
+ .sb-socials p {
224
+ margin-bottom: 10px;
225
+ }
226
+
227
+ .sb-explore-image {
228
+ max-height: 32px;
229
+ align-self: flex-start;
230
+ }
231
+
232
+ .sb-addon {
233
+ width: 100%;
234
+ display: flex;
235
+ align-items: center;
236
+ position: relative;
237
+ background-color: #EEF3F8;
238
+ border-radius: 5px;
239
+ border: 1px solid rgba(0, 0, 0, 0.05);
240
+ background: #EEF3F8;
241
+ height: 180px;
242
+ margin-bottom: 48px;
243
+ overflow: hidden;
244
+ }
245
+
246
+ .sb-addon-text {
247
+ padding-left: 48px;
248
+ max-width: 240px;
249
+ }
250
+
251
+ .sb-addon-text h4 {
252
+ padding-top: 0px;
253
+ }
254
+
255
+ .sb-addon-img {
256
+ position: absolute;
257
+ left: 345px;
258
+ top: 0;
259
+ height: 100%;
260
+ width: 200%;
261
+ overflow: hidden;
262
+ }
263
+
264
+ .sb-addon-img img {
265
+ width: 650px;
266
+ transform: rotate(-15deg);
267
+ margin-left: 40px;
268
+ margin-top: -72px;
269
+ box-shadow: 0 0 1px rgba(255, 255, 255, 0);
270
+ backface-visibility: hidden;
271
+ }
272
+
273
+ @media screen and (max-width: 800px) {
274
+ .sb-addon-img {
275
+ left: 300px;
276
+ }
277
+ }
278
+
279
+ @media screen and (max-width: 600px) {
280
+ .sb-section {
281
+ flex-direction: column;
282
+ }
283
+
284
+ .sb-features-grid {
285
+ grid-template-columns: repeat(1, 1fr);
286
+ }
287
+
288
+ .sb-socials {
289
+ grid-template-columns: repeat(2, 1fr);
290
+ }
291
+
292
+ .sb-addon {
293
+ height: 280px;
294
+ align-items: flex-start;
295
+ padding-top: 32px;
296
+ overflow: hidden;
297
+ }
298
+
299
+ .sb-addon-text {
300
+ padding-left: 24px;
301
+ }
302
+
303
+ .sb-addon-img {
304
+ right: 0;
305
+ left: 0;
306
+ top: 130px;
307
+ bottom: 0;
308
+ overflow: hidden;
309
+ height: auto;
310
+ width: 124%;
311
+ }
312
+
313
+ .sb-addon-img img {
314
+ width: 1200px;
315
+ transform: rotate(-12deg);
316
+ margin-left: 0;
317
+ margin-top: 48px;
318
+ margin-bottom: -40px;
319
+ margin-left: -24px;
320
+ }
321
+ }
322
+ `}
323
+ </style>
@@ -0,0 +1,20 @@
1
+ # Компоненты
2
+
3
+ Имена компонентов должны быть уникальны.
4
+
5
+ Структура компонента:
6
+
7
+ - entry файл для сборщика: `src/components/{{ libName }}/{{ componentName }}/index.ts`
8
+ - основной файл: `src/components/{{ libName }}/{{ componentName }}/{{ componentName }}.vue`
9
+ - инетрфейсы props, slots и emits: `src/components/{{ libName }}/{{ componentName }}.ts`
10
+ - истории: `src/components/{{ libName }}/{{ componentName }}.stories.ts`
11
+ - дополниетельные файлы для историй: `src/components/{{ libName }}/{{ componentName }}/stories/*`
12
+
13
+ ## Библиотеки компонентов
14
+
15
+ Дополниетльно сборка проивзоидтся в библиотеки, для загрузки нескольких компонентов одним файлов из CDN без дополниетльной сборки.
16
+
17
+ Структура библиотеки:
18
+
19
+ - entry файл для сборщика: `src/components/{{ libName }}/index.ts`
20
+ - компоненты библиотеки: `src/components/{{ libName }}/{{ componentName }}/index.ts`
@@ -0,0 +1,8 @@
1
+ # Полезная инфомрация
2
+
3
+ - [package.json](https://docs.npmjs.com/cli/v9/configuring-npm/package-json)
4
+ - [Vite](https://vitejs.dev/)
5
+ - [Storybook](https://storybook.js.org/)
6
+ - пример UI-kit vue от GitLab:
7
+ - [Исходники](https://gitlab.com/-/ide/project/gitlab-org/gitlab-ui/edit/main/-/src/components/base/button/button.vue)
8
+ - [Storybook](https://gitlab-org.gitlab.io/gitlab-ui/)
@@ -0,0 +1,42 @@
1
+ # IDE
2
+
3
+ ## Visual Studio Code
4
+
5
+ Все рекомендуемые настройки расположены в проекте в папке /.vscode.
6
+
7
+ **Преимещуства**:
8
+
9
+ - Быстрая утановка
10
+ - Много расширений
11
+ - Может быть встроен в браузер
12
+ - Бесплатный
13
+
14
+ **Недостатки**:
15
+
16
+ - Расширения снижают скорость работы IDE
17
+ - Нет поддержки работы с ftp из коробки
18
+
19
+ ## IntelliJ IDEA
20
+
21
+ Все рекомендуемые настройки расположены в проекте в папке /.idea.
22
+
23
+ При работе в этой IDE необходимо:
24
+ - включить Volar
25
+ - выключить опцию Reformat again
26
+
27
+ **Преимещуства**:
28
+
29
+ - Много расширений
30
+ - Скорость работы
31
+
32
+ ## NetBean
33
+
34
+ **Преимещуства**:
35
+
36
+ - Скорость работы
37
+ - Бесплатный
38
+
39
+ **Недостатки**:
40
+
41
+ - Очень мало плагинов
42
+ - Слабая поддержка языков
@@ -0,0 +1,72 @@
1
+ # Линтер
2
+
3
+ Для стандартизации кода используются:
4
+
5
+ - линтер для javacript: [ESLint](https://eslint.org/)
6
+ - общий линтер для работы со всеми языками: [Sonar Lint](https://www.sonarsource.com/products/sonarlint/).
7
+
8
+ ## Правила автоформата
9
+
10
+ Каждому разработчику может быть удобно работать с разным масштабом кода и разным числом пробелов для отступов.
11
+
12
+ Установка табов в качестве разделителей позволит решить данный вопрос, так как табы незаметно для разработчика будут отображаться как пробелы с учетом его настроек, не меняя при этом данные самого файла.
13
+
14
+ <table>
15
+ <tr>
16
+ <th>Название</th>
17
+ <th>Значение</th>
18
+ </tr>
19
+ <tr>
20
+ <td>Отступы</td>
21
+ <td>tab (количество пробелов не важно)</td>
22
+ </tr>
23
+ <tr>
24
+ <td>Разделитель строк</td>
25
+ <td>\r\n</td>
26
+ </tr>
27
+ <tr>
28
+ <td>Стиль кода</td>
29
+ <td>K&R (1TBS)</td>
30
+ </tr>
31
+ </table>
32
+
33
+ ## Правила линтера
34
+
35
+ <table>
36
+ <tr>
37
+ <th>id</th>
38
+ <th>Правило<a href="https://rules.sonarsource.com/php/RSPEC-103/"></a></th>
39
+ <th>Настройка</th>
40
+ </tr>
41
+ <tr>
42
+ <td>php:s103</td>
43
+ <td>
44
+ [Lines should not be too long](https://rules.sonarsource.com/php/RSPEC-103/)
45
+ </td>
46
+ <td>maximumLineLength = 150</td>
47
+ </tr>
48
+ <tr>
49
+ <td>php:s105</td>
50
+ <td>
51
+ [Tabulation characters should not be used](https://rules.sonarsource.com/php/RSPEC-105/)
52
+ </td>
53
+ <td>Выключить</td>
54
+ </tr>
55
+ <tr>
56
+ <td>php:s112</td>
57
+ <td>
58
+ [Generic exceptions ErrorException, RuntimeException and Exception should not be thrown](https://rules.sonarsource.com/php/RSPEC-112/)
59
+ </td>
60
+ <td>Выключить</td>
61
+ </tr>
62
+ <tr>
63
+ <td>Web:S4084</td>
64
+ <td>Videos should have subtitles</td>
65
+ <td>Выключить</td>
66
+ </tr>
67
+ <tr>
68
+ <td></td>
69
+ <td>`<strong>` and `<em>` tags should be used</td>
70
+ <td>Выключить</td>
71
+ </tr>
72
+ </table>
@@ -0,0 +1,29 @@
1
+ # Стандарты кода
2
+
3
+ Позвольте рассказать о стандартах js и о том, как это здорово. 👍
4
+
5
+ Бытует мнение, что стандарты это набор правил, которые можно запихнуть в линтер и не думать о них.
6
+ Давайте развенчаем этот миф и обратим внимание, что это опыт огромного сообщества разрабочтиков, который поможет избежать распространненых ошибок.
7
+
8
+ - 🚀 изучив руководство ваша продуктивность написания кода увеличится;
9
+ - 🤝 код, написанный по стандартам будет читаться проще другими разработчиками;
10
+ - 🧐 в нем будет читаться ход ваших мыслей;
11
+ - 💡 вероятность ошибок будет уменьшаться, так как в рекомендациях учтен опыт других разработчиков;
12
+ - 🤖 имена переменных, группировка кода на логические блоки, выбор типа переменных и многое другое — это то, что ИИ не способно сделать правильно.
13
+ Правила такого рода не могут быть автоформатом и должны применяться осознанно.
14
+
15
+ Опыт разработчиков **Google**:
16
+
17
+ - [js](https://google.github.io/styleguide/jsguide.html)
18
+ - [js c переводом](https://rostislavdugin.github.io/styleguide/jsguide.html)
19
+ - [html и css](https://google.github.io/styleguide/htmlcssguide.html)
20
+
21
+ Опыт разработчиков **Airbnb**:
22
+
23
+ - [js](https://github.com/airbnb/javascript#performance)
24
+ - [js c переводом](https://github.com/leonidlebedev/javascript-airbnb/)
25
+ - [html и css](https://github.com/standard/standard/blob/master/RULES.md)
26
+
27
+ Рекомендации от разработчиков модуля **JavaScript Standard Style**:
28
+
29
+ - [js](https://github.com/standard/standard/blob/master/RULES.md)
@@ -0,0 +1 @@
1
+ /// <reference types="vite/client" />