@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.
- package/.storybook/TopTheme.js +82 -0
- package/.storybook/TopThemeManager.js +44 -0
- package/.storybook/main.ts +43 -0
- package/.storybook/manager.ts +28 -0
- package/.storybook/preview-head.html +16 -0
- package/.storybook/preview.ts +48 -0
- package/.storybook/vue/coreDecorator.ts +19 -0
- package/.storybook/vue/vModelDecorator.ts +27 -0
- package/.vscode/extensions.json +11 -0
- package/.vscode/keybindings.example.json +121 -0
- package/.vscode/settings.json +46 -0
- package/Dockerfile +3 -0
- package/NPM.md +25 -0
- package/PUBLISH.md +18 -0
- package/README.md +19 -52
- package/STORYBOOK.md +27 -0
- package/USE_IN_PROJECT.md +29 -0
- package/build/afterBuild.sh +12 -0
- package/build/cssModules.ts +39 -0
- package/build/plugin/amdFix.ts +46 -0
- package/build/rollup.config.ts +18 -0
- package/nbproject/project.properties +11 -0
- package/nbproject/project.xml +9 -0
- package/package.json +68 -19
- package/public/README.md +63 -0
- package/src/components/common/common.ts +1 -0
- package/src/components/common/icon/icon.ts +4 -0
- package/src/components/common/icon/icon.vue +15 -0
- package/src/components/component.ts +133 -0
- package/src/components/forms/button/button.stories.ts +112 -0
- package/src/components/forms/button/button.ts +51 -0
- package/src/components/forms/button/button.vue +75 -0
- package/src/components/forms/button/stories/README.md +35 -0
- package/src/components/forms/button/stories/overview.vue +33 -0
- package/src/components/forms/button/style/button.css +124 -0
- package/src/components/forms/button/style/style-outline.css +42 -0
- package/src/components/forms/button/style/style-soft.css +31 -0
- package/src/components/forms/button/style/style-transparent.css +35 -0
- package/src/components/forms/checkbox/checkbox.stories.ts +33 -0
- package/src/components/forms/checkbox/checkbox.ts +23 -0
- package/src/components/forms/checkbox/checkbox.vue +135 -0
- package/src/components/forms/checkbox/stories/overview.vue +171 -0
- package/src/components/forms/controlLabel/controlLabel.stories.ts +38 -0
- package/src/components/forms/controlLabel/controlLabel.ts +4 -0
- package/src/components/forms/controlLabel/controlLabel.vue +48 -0
- package/src/components/forms/forms.ts +10 -0
- package/src/components/forms/helpers.ts +10 -0
- package/src/components/forms/hint/hint.stories.ts +46 -0
- package/src/components/forms/hint/hint.ts +8 -0
- package/src/components/forms/hint/hint.vue +32 -0
- package/src/components/forms/input/input.stories.ts +31 -0
- package/src/components/forms/input/input.ts +34 -0
- package/src/components/forms/input/input.vue +170 -0
- package/src/components/forms/input/stories/overview.vue +61 -0
- package/src/components/forms/inputDate/datepicker.css +233 -0
- package/src/components/forms/inputDate/datepicker.ts +101 -0
- package/src/components/forms/inputDate/inputDate.stories.ts +41 -0
- package/src/components/forms/inputDate/inputDate.ts +4 -0
- package/src/components/forms/inputDate/inputDate.vue +127 -0
- package/src/components/forms/inputDate/stories/overview.vue +35 -0
- package/src/components/forms/radio/radio.stories.ts +34 -0
- package/src/components/forms/radio/radio.ts +15 -0
- package/src/components/forms/radio/radio.vue +107 -0
- package/src/components/forms/radio/stories/overview.vue +79 -0
- package/src/components/forms/select/select.stories.ts +34 -0
- package/src/components/forms/select/select.ts +36 -0
- package/src/components/forms/select/select.vue +253 -0
- package/src/components/forms/select/stories/exampleOptions.ts +71 -0
- package/src/components/forms/select/stories/overview.vue +60 -0
- package/src/components/forms/switcher/stories/overview.vue +139 -0
- package/src/components/forms/switcher/switcher.stories.ts +33 -0
- package/src/components/forms/switcher/switcher.ts +22 -0
- package/src/components/forms/switcher/switcher.vue +113 -0
- package/src/components/forms/textarea/stories/overview.vue +62 -0
- package/src/components/forms/textarea/textarea.stories.ts +33 -0
- package/src/components/forms/textarea/textarea.ts +38 -0
- package/src/components/forms/textarea/textarea.vue +119 -0
- package/src/components/formsExt/editArea/editArea.stories.ts +72 -0
- package/src/components/formsExt/editArea/editArea.ts +25 -0
- package/src/components/formsExt/editArea/editArea.vue +172 -0
- package/src/components/formsExt/editArea/stories/README.md +17 -0
- package/src/components/formsExt/editArea/stories/overview.vue +66 -0
- package/src/components/formsExt/editInput/editInput.stories.ts +36 -0
- package/src/components/formsExt/editInput/editInput.ts +20 -0
- package/src/components/formsExt/editInput/editInput.vue +57 -0
- package/src/components/formsExt/editInput/stories/overview.vue +54 -0
- package/src/components/formsExt/formsExt.ts +3 -0
- package/src/components/formsExt/radioGroup/radioGroup.stories.ts +51 -0
- package/src/components/formsExt/radioGroup/radioGroup.ts +28 -0
- package/src/components/formsExt/radioGroup/radioGroup.vue +143 -0
- package/src/components/formsExt/radioGroup/stories/overview.vue +78 -0
- package/src/components/formsExt/radioGroup/styles/top-scrollBar.css +52 -0
- package/src/components/helper.js +10 -0
- package/src/components/helpersStories.ts +151 -0
- package/src/components/popup/lib/popup.globalEvents.js +205 -0
- package/src/components/popup/lib/popup.js +702 -0
- package/src/components/popup/lib/worker.globalEvents.js +78 -0
- package/src/components/popup/lib/worker.js +232 -0
- package/src/components/popup/popup/listItem.vue +42 -0
- package/src/components/popup/popup/opener.vue +74 -0
- package/src/components/popup/popup/popup.stories.ts +68 -0
- package/src/components/popup/popup/popup.ts +93 -0
- package/src/components/popup/popup/popup.vue +95 -0
- package/src/components/popup/popup/stories/README.md +34 -0
- package/src/components/popup/popup/stories/listItems.vue +44 -0
- package/src/components/popup/popup/stories/listSubItems.vue +52 -0
- package/src/components/popup/popup/stories/overview.vue +208 -0
- package/src/components/popup/popup/style/popup.css +243 -0
- package/src/components/popup/popup/style/popup.m.css +71 -0
- package/src/components/popup/popup/style/popup.pc.css +28 -0
- package/src/components/popup/popup.ts +3 -0
- package/src/components/popup/worker.ts +1 -0
- package/src/components/tabs/tabs/content.vue +24 -0
- package/src/components/tabs/tabs/stories/README.md +10 -0
- package/src/components/tabs/tabs/tab.vue +52 -0
- package/src/components/tabs/tabs/tabs.stories.ts +171 -0
- package/src/components/tabs/tabs/tabs.ts +22 -0
- package/src/components/tabs/tabs/tabs.vue +64 -0
- package/src/components/tabs/tabs.ts +3 -0
- package/src/core/base/Colors.stories.ts +15 -0
- package/src/core/base/Layout.stories.ts +15 -0
- package/src/core/base/Properties.stories.ts +15 -0
- package/src/core/base/base.mdx +21 -0
- package/src/core/core/core.ts +144 -0
- package/src/core/core/events.ts +54 -0
- package/src/core/core/options.ts +15 -0
- package/src/core/core/state.ts +44 -0
- package/src/core/directives/tooltip.ts +55 -0
- package/src/core/theme/Colors.stories.ts +15 -0
- package/src/core/theme/Properties.stories.ts +15 -0
- package/src/core/theme/theme.mdx +15 -0
- package/src/core/utils/date.ts +164 -0
- package/src/core/utils/device.ts +48 -0
- package/src/core/utils/dom.ts +185 -0
- 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
- 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
- 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
- package/src/docs/CSS/FAQ.mdx +43 -0
- 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
- 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
- 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
- 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
- package/src/docs/CSS//320/241/321/202/320/270/320/273/320/270.md +53 -0
- package/src/docs/CSS//320/241/321/202/320/270/320/273/320/270.mdx +4 -0
- 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
- package/src/docs/ROADMAP.md +17 -0
- package/src/docs/Roadmap.mdx +4 -0
- 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
- 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
- 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
- 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
- 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
- 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
- package/src/globals.d.ts +1 -0
- package/{icomoon → src/resources/icomoon}/demo-files/demo.css +161 -161
- package/{icomoon → src/resources/icomoon}/demo-files/demo.js +30 -30
- package/{icomoon → src/resources/icomoon}/demo.html +2945 -2945
- package/{icomoon → src/resources/icomoon}/fonts/Topvisor-2.svg +232 -232
- package/{icomoon → src/resources/icomoon}/style.css +647 -647
- package/src/resources/styles/core/colors.css +204 -0
- package/src/resources/styles/core/components.css +70 -0
- package/src/resources/styles/core/core.ts +10 -0
- package/src/resources/styles/core/forms/clear.css +19 -0
- package/src/resources/styles/core/forms/controls.css +20 -0
- package/src/resources/styles/core/forms/focusable.css +26 -0
- package/src/resources/styles/core/forms/forms.css +100 -0
- package/src/resources/styles/core/icon.css +58 -0
- package/src/resources/styles/core/layout.css +40 -0
- package/src/resources/styles/core/modifiers/as.css +9 -0
- package/src/resources/styles/core/modifiers/ellipsis.css +18 -0
- package/src/resources/styles/core/modifiers/modifiers.css +81 -0
- package/src/resources/styles/core/modifiers/only.css +19 -0
- package/src/resources/styles/core/select.css +16 -0
- package/src/resources/styles/jquery-ui.min.css +6 -0
- package/src/resources/styles/storybook.css +11 -0
- package/src/resources/styles/themes/dark/theme.css +139 -0
- package/src/resources/styles/themes/dark.ts +1 -0
- package/src/resources/styles/themes/light/theme.css +139 -0
- package/src/resources/styles/themes/light.ts +1 -0
- package/src/storybook/components/color.vue +45 -0
- package/src/storybook/components/colors.vue +34 -0
- package/src/storybook/components/icomoon.ts +38 -0
- package/src/storybook/components/properties.vue +82 -0
- package/src/storybook/resources/accessibility.png +0 -0
- package/src/storybook/resources/accessibility.svg +5 -0
- package/src/storybook/resources/addon-library.png +0 -0
- package/src/storybook/resources/assets.png +0 -0
- package/src/storybook/resources/context.png +0 -0
- package/src/storybook/resources/discord.svg +15 -0
- package/src/storybook/resources/docs.png +0 -0
- package/src/storybook/resources/figma-plugin.png +0 -0
- package/src/storybook/resources/github.svg +3 -0
- package/src/storybook/resources/share.png +0 -0
- package/src/storybook/resources/styling.png +0 -0
- package/src/storybook/resources/testing.png +0 -0
- package/src/storybook/resources/theming.png +0 -0
- package/src/storybook/resources/tutorials.svg +12 -0
- package/src/storybook/resources/youtube.svg +4 -0
- 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
- package/tsconfig.json +62 -0
- package/vite.config.ts +91 -0
- package/.chunks/datepicker-0b648b9f.es.js +0 -275
- package/.chunks/datepicker-0b648b9f.es.js.map +0 -1
- package/.chunks/datepicker-0e9a0541.amd.js +0 -234
- package/.chunks/datepicker-0e9a0541.amd.js.map +0 -1
- package/.chunks/forms-02202302.amd.js +0 -3
- package/.chunks/forms-02202302.amd.js.map +0 -1
- package/.chunks/forms-eb00d0c1.es.js +0 -946
- package/.chunks/forms-eb00d0c1.es.js.map +0 -1
- package/.chunks/popup-6f73b4b2.es.js +0 -700
- package/.chunks/popup-6f73b4b2.es.js.map +0 -1
- package/.chunks/popup-e1f34511.amd.js +0 -341
- package/.chunks/popup-e1f34511.amd.js.map +0 -1
- package/common/common.amd.js +0 -2
- package/common/common.amd.js.map +0 -1
- package/common/common.js +0 -2
- package/common/common.js.map +0 -1
- package/core/core.amd.js +0 -2
- package/core/core.amd.js.map +0 -1
- package/core/core.js +0 -6
- package/core/core.js.map +0 -1
- package/core.css +0 -1
- package/dark.css +0 -1
- package/forms/forms.amd.js +0 -2
- package/forms/forms.amd.js.map +0 -1
- package/forms/forms.js +0 -15
- package/forms/forms.js.map +0 -1
- package/forms/helpers.amd.js +0 -2
- package/forms/helpers.amd.js.map +0 -1
- package/forms/helpers.js +0 -9
- package/forms/helpers.js.map +0 -1
- package/forms.css +0 -1
- package/formsExt/formsExt.amd.js +0 -3
- package/formsExt/formsExt.amd.js.map +0 -1
- package/formsExt/formsExt.js +0 -152
- package/formsExt/formsExt.js.map +0 -1
- package/formsExt.css +0 -1
- package/light.css +0 -1
- package/popup/popup.amd.js +0 -3
- package/popup/popup.amd.js.map +0 -1
- package/popup/popup.js +0 -144
- package/popup/popup.js.map +0 -1
- package/popup/worker.amd.js +0 -2
- package/popup/worker.amd.js.map +0 -1
- package/popup/worker.js +0 -154
- package/popup/worker.js.map +0 -1
- package/popup.css +0 -1
- package/tabs/tabs.amd.js +0 -3
- package/tabs/tabs.amd.js.map +0 -1
- package/tabs/tabs.js +0 -97
- package/tabs/tabs.js.map +0 -1
- package/tabs.css +0 -1
- package/utils/date.amd.js +0 -2
- package/utils/date.amd.js.map +0 -1
- package/utils/date.js +0 -6
- package/utils/date.js.map +0 -1
- package/utils/device.amd.js +0 -2
- package/utils/device.amd.js.map +0 -1
- package/utils/device.js +0 -6
- package/utils/device.js.map +0 -1
- package/utils/dom.amd.js +0 -2
- package/utils/dom.amd.js.map +0 -1
- package/utils/dom.js +0 -64
- package/utils/dom.js.map +0 -1
- /package/{icomoon → src/resources/icomoon}/fonts/Topvisor-2.ttf +0 -0
- /package/{icomoon → src/resources/icomoon}/fonts/Topvisor-2.woff +0 -0
- /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)
|
package/src/globals.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/// <reference types="vite/client" />
|