@topvisor/ui 0.0.35 → 0.0.37

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/.chunks/datepicker-6d57a408.es.js +275 -0
  2. package/.chunks/datepicker-6d57a408.es.js.map +1 -0
  3. package/.chunks/datepicker-a0840577.amd.js +234 -0
  4. package/.chunks/datepicker-a0840577.amd.js.map +1 -0
  5. package/.chunks/forms-1aa30229.amd.js +3 -0
  6. package/.chunks/forms-1aa30229.amd.js.map +1 -0
  7. package/.chunks/forms-7be951a7.es.js +962 -0
  8. package/.chunks/forms-7be951a7.es.js.map +1 -0
  9. package/.chunks/popup-604c0a49.amd.js +341 -0
  10. package/.chunks/popup-604c0a49.amd.js.map +1 -0
  11. package/.chunks/popup-b9517276.es.js +700 -0
  12. package/.chunks/popup-b9517276.es.js.map +1 -0
  13. package/README.md +52 -19
  14. package/common/common.amd.js +2 -0
  15. package/common/common.amd.js.map +1 -0
  16. package/common/common.js +2 -0
  17. package/common/common.js.map +1 -0
  18. package/core/core.amd.js +2 -0
  19. package/core/core.amd.js.map +1 -0
  20. package/core/core.js +6 -0
  21. package/core/core.js.map +1 -0
  22. package/core.css +1 -0
  23. package/dark.css +1 -0
  24. package/forms/forms.amd.js +2 -0
  25. package/forms/forms.amd.js.map +1 -0
  26. package/forms/forms.js +16 -0
  27. package/forms/forms.js.map +1 -0
  28. package/forms/helpers.amd.js +2 -0
  29. package/forms/helpers.amd.js.map +1 -0
  30. package/forms/helpers.js +9 -0
  31. package/forms/helpers.js.map +1 -0
  32. package/forms.css +1 -0
  33. package/formsExt/formsExt.amd.js +3 -0
  34. package/formsExt/formsExt.amd.js.map +1 -0
  35. package/formsExt/formsExt.js +220 -0
  36. package/formsExt/formsExt.js.map +1 -0
  37. package/formsExt.css +1 -0
  38. package/{src/resources/icomoon → icomoon}/demo-files/demo.css +161 -161
  39. package/{src/resources/icomoon → icomoon}/demo-files/demo.js +30 -30
  40. package/{src/resources/icomoon → icomoon}/demo.html +2945 -2945
  41. package/{src/resources/icomoon → icomoon}/fonts/Topvisor-2.svg +232 -232
  42. package/{src/resources/icomoon → icomoon}/style.css +647 -647
  43. package/light.css +1 -0
  44. package/package.json +19 -68
  45. package/popup/popup.amd.js +3 -0
  46. package/popup/popup.amd.js.map +1 -0
  47. package/popup/popup.js +144 -0
  48. package/popup/popup.js.map +1 -0
  49. package/popup/worker.amd.js +2 -0
  50. package/popup/worker.amd.js.map +1 -0
  51. package/popup/worker.js +154 -0
  52. package/popup/worker.js.map +1 -0
  53. package/popup.css +1 -0
  54. package/tabs/tabs.amd.js +3 -0
  55. package/tabs/tabs.amd.js.map +1 -0
  56. package/tabs/tabs.js +97 -0
  57. package/tabs/tabs.js.map +1 -0
  58. package/tabs.css +1 -0
  59. package/utils/date.amd.js +2 -0
  60. package/utils/date.amd.js.map +1 -0
  61. package/utils/date.js +6 -0
  62. package/utils/date.js.map +1 -0
  63. package/utils/device.amd.js +2 -0
  64. package/utils/device.amd.js.map +1 -0
  65. package/utils/device.js +6 -0
  66. package/utils/device.js.map +1 -0
  67. package/utils/dom.amd.js +2 -0
  68. package/utils/dom.amd.js.map +1 -0
  69. package/utils/dom.js +64 -0
  70. package/utils/dom.js.map +1 -0
  71. package/.storybook/TopTheme.js +0 -82
  72. package/.storybook/TopThemeManager.js +0 -44
  73. package/.storybook/main.ts +0 -43
  74. package/.storybook/manager.ts +0 -28
  75. package/.storybook/preview-head.html +0 -16
  76. package/.storybook/preview.ts +0 -48
  77. package/.storybook/vue/coreDecorator.ts +0 -19
  78. package/.storybook/vue/vModelDecorator.ts +0 -27
  79. package/.vscode/extensions.json +0 -11
  80. package/.vscode/keybindings.example.json +0 -121
  81. package/.vscode/settings.json +0 -46
  82. package/Dockerfile +0 -3
  83. package/NPM.md +0 -25
  84. package/PUBLISH.md +0 -18
  85. package/STORYBOOK.md +0 -27
  86. package/USE_IN_PROJECT.md +0 -29
  87. package/build/afterBuild.sh +0 -12
  88. package/build/cssModules.ts +0 -39
  89. package/build/plugin/amdFix.ts +0 -46
  90. package/build/rollup.config.ts +0 -18
  91. package/nbproject/project.properties +0 -11
  92. package/nbproject/project.xml +0 -9
  93. package/public/README.md +0 -63
  94. package/src/components/common/common.ts +0 -1
  95. package/src/components/common/icon/icon.ts +0 -4
  96. package/src/components/common/icon/icon.vue +0 -15
  97. package/src/components/component.ts +0 -133
  98. package/src/components/forms/button/button.stories.ts +0 -112
  99. package/src/components/forms/button/button.ts +0 -51
  100. package/src/components/forms/button/button.vue +0 -75
  101. package/src/components/forms/button/stories/README.md +0 -35
  102. package/src/components/forms/button/stories/overview.vue +0 -33
  103. package/src/components/forms/button/style/button.css +0 -124
  104. package/src/components/forms/button/style/style-outline.css +0 -42
  105. package/src/components/forms/button/style/style-soft.css +0 -31
  106. package/src/components/forms/button/style/style-transparent.css +0 -35
  107. package/src/components/forms/checkbox/checkbox.stories.ts +0 -33
  108. package/src/components/forms/checkbox/checkbox.ts +0 -23
  109. package/src/components/forms/checkbox/checkbox.vue +0 -135
  110. package/src/components/forms/checkbox/stories/overview.vue +0 -171
  111. package/src/components/forms/controlLabel/controlLabel.stories.ts +0 -38
  112. package/src/components/forms/controlLabel/controlLabel.ts +0 -4
  113. package/src/components/forms/controlLabel/controlLabel.vue +0 -48
  114. package/src/components/forms/forms.ts +0 -10
  115. package/src/components/forms/helpers.ts +0 -10
  116. package/src/components/forms/hint/hint.stories.ts +0 -46
  117. package/src/components/forms/hint/hint.ts +0 -8
  118. package/src/components/forms/hint/hint.vue +0 -32
  119. package/src/components/forms/input/input.stories.ts +0 -31
  120. package/src/components/forms/input/input.ts +0 -34
  121. package/src/components/forms/input/input.vue +0 -170
  122. package/src/components/forms/input/stories/overview.vue +0 -61
  123. package/src/components/forms/inputDate/datepicker.css +0 -233
  124. package/src/components/forms/inputDate/datepicker.ts +0 -101
  125. package/src/components/forms/inputDate/inputDate.stories.ts +0 -41
  126. package/src/components/forms/inputDate/inputDate.ts +0 -4
  127. package/src/components/forms/inputDate/inputDate.vue +0 -127
  128. package/src/components/forms/inputDate/stories/overview.vue +0 -35
  129. package/src/components/forms/radio/radio.stories.ts +0 -34
  130. package/src/components/forms/radio/radio.ts +0 -15
  131. package/src/components/forms/radio/radio.vue +0 -107
  132. package/src/components/forms/radio/stories/overview.vue +0 -79
  133. package/src/components/forms/select/select.stories.ts +0 -34
  134. package/src/components/forms/select/select.ts +0 -36
  135. package/src/components/forms/select/select.vue +0 -253
  136. package/src/components/forms/select/stories/exampleOptions.ts +0 -71
  137. package/src/components/forms/select/stories/overview.vue +0 -60
  138. package/src/components/forms/switcher/stories/overview.vue +0 -139
  139. package/src/components/forms/switcher/switcher.stories.ts +0 -33
  140. package/src/components/forms/switcher/switcher.ts +0 -22
  141. package/src/components/forms/switcher/switcher.vue +0 -113
  142. package/src/components/forms/textarea/stories/overview.vue +0 -62
  143. package/src/components/forms/textarea/textarea.stories.ts +0 -33
  144. package/src/components/forms/textarea/textarea.ts +0 -38
  145. package/src/components/forms/textarea/textarea.vue +0 -119
  146. package/src/components/formsExt/editArea/editArea.stories.ts +0 -72
  147. package/src/components/formsExt/editArea/editArea.ts +0 -25
  148. package/src/components/formsExt/editArea/editArea.vue +0 -172
  149. package/src/components/formsExt/editArea/stories/README.md +0 -17
  150. package/src/components/formsExt/editArea/stories/overview.vue +0 -66
  151. package/src/components/formsExt/editInput/editInput.stories.ts +0 -36
  152. package/src/components/formsExt/editInput/editInput.ts +0 -20
  153. package/src/components/formsExt/editInput/editInput.vue +0 -57
  154. package/src/components/formsExt/editInput/stories/overview.vue +0 -54
  155. package/src/components/formsExt/formsExt.ts +0 -3
  156. package/src/components/formsExt/radioGroup/radioGroup.stories.ts +0 -51
  157. package/src/components/formsExt/radioGroup/radioGroup.ts +0 -28
  158. package/src/components/formsExt/radioGroup/radioGroup.vue +0 -143
  159. package/src/components/formsExt/radioGroup/stories/overview.vue +0 -78
  160. package/src/components/formsExt/radioGroup/styles/top-scrollBar.css +0 -52
  161. package/src/components/helper.js +0 -10
  162. package/src/components/helpersStories.ts +0 -151
  163. package/src/components/popup/lib/popup.globalEvents.js +0 -205
  164. package/src/components/popup/lib/popup.js +0 -702
  165. package/src/components/popup/lib/worker.globalEvents.js +0 -78
  166. package/src/components/popup/lib/worker.js +0 -232
  167. package/src/components/popup/popup/listItem.vue +0 -42
  168. package/src/components/popup/popup/opener.vue +0 -74
  169. package/src/components/popup/popup/popup.stories.ts +0 -68
  170. package/src/components/popup/popup/popup.ts +0 -93
  171. package/src/components/popup/popup/popup.vue +0 -95
  172. package/src/components/popup/popup/stories/README.md +0 -34
  173. package/src/components/popup/popup/stories/listItems.vue +0 -44
  174. package/src/components/popup/popup/stories/listSubItems.vue +0 -52
  175. package/src/components/popup/popup/stories/overview.vue +0 -208
  176. package/src/components/popup/popup/style/popup.css +0 -243
  177. package/src/components/popup/popup/style/popup.m.css +0 -71
  178. package/src/components/popup/popup/style/popup.pc.css +0 -28
  179. package/src/components/popup/popup.ts +0 -3
  180. package/src/components/popup/worker.ts +0 -1
  181. package/src/components/tabs/tabs/content.vue +0 -24
  182. package/src/components/tabs/tabs/stories/README.md +0 -10
  183. package/src/components/tabs/tabs/tab.vue +0 -52
  184. package/src/components/tabs/tabs/tabs.stories.ts +0 -171
  185. package/src/components/tabs/tabs/tabs.ts +0 -22
  186. package/src/components/tabs/tabs/tabs.vue +0 -64
  187. package/src/components/tabs/tabs.ts +0 -3
  188. package/src/core/base/Colors.stories.ts +0 -15
  189. package/src/core/base/Layout.stories.ts +0 -15
  190. package/src/core/base/Properties.stories.ts +0 -15
  191. package/src/core/base/base.mdx +0 -21
  192. package/src/core/core/core.ts +0 -144
  193. package/src/core/core/events.ts +0 -54
  194. package/src/core/core/options.ts +0 -15
  195. package/src/core/core/state.ts +0 -44
  196. package/src/core/directives/tooltip.ts +0 -55
  197. package/src/core/theme/Colors.stories.ts +0 -15
  198. package/src/core/theme/Properties.stories.ts +0 -15
  199. package/src/core/theme/theme.mdx +0 -15
  200. package/src/core/utils/date.ts +0 -164
  201. package/src/core/utils/device.ts +0 -48
  202. package/src/core/utils/dom.ts +0 -185
  203. 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" +0 -72
  204. 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" +0 -31
  205. 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" +0 -14
  206. package/src/docs/CSS/FAQ.mdx +0 -43
  207. 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" +0 -156
  208. 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 +0 -47
  209. 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 +0 -15
  210. 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" +0 -49
  211. package/src/docs/CSS//320/241/321/202/320/270/320/273/320/270.md +0 -53
  212. package/src/docs/CSS//320/241/321/202/320/270/320/273/320/270.mdx +0 -4
  213. 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" +0 -53
  214. package/src/docs/ROADMAP.md +0 -17
  215. package/src/docs/Roadmap.mdx +0 -4
  216. package/src/docs//320/222/320/262/320/265/320/264/320/265/320/275/320/270/320/265 /320/262 Storybook.mdx" +0 -323
  217. package/src/docs//320/232/320/276/320/274/320/277/320/276/320/275/320/265/320/275/321/202/321/213.mdx +0 -20
  218. 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" +0 -8
  219. 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" +0 -42
  220. 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" +0 -72
  221. 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" +0 -29
  222. package/src/globals.d.ts +0 -1
  223. package/src/resources/styles/core/colors.css +0 -204
  224. package/src/resources/styles/core/components.css +0 -70
  225. package/src/resources/styles/core/core.ts +0 -10
  226. package/src/resources/styles/core/forms/clear.css +0 -19
  227. package/src/resources/styles/core/forms/controls.css +0 -20
  228. package/src/resources/styles/core/forms/focusable.css +0 -26
  229. package/src/resources/styles/core/forms/forms.css +0 -100
  230. package/src/resources/styles/core/icon.css +0 -58
  231. package/src/resources/styles/core/layout.css +0 -40
  232. package/src/resources/styles/core/modifiers/as.css +0 -9
  233. package/src/resources/styles/core/modifiers/ellipsis.css +0 -18
  234. package/src/resources/styles/core/modifiers/modifiers.css +0 -81
  235. package/src/resources/styles/core/modifiers/only.css +0 -19
  236. package/src/resources/styles/core/select.css +0 -16
  237. package/src/resources/styles/jquery-ui.min.css +0 -6
  238. package/src/resources/styles/storybook.css +0 -11
  239. package/src/resources/styles/themes/dark/theme.css +0 -139
  240. package/src/resources/styles/themes/dark.ts +0 -1
  241. package/src/resources/styles/themes/light/theme.css +0 -139
  242. package/src/resources/styles/themes/light.ts +0 -1
  243. package/src/storybook/components/color.vue +0 -45
  244. package/src/storybook/components/colors.vue +0 -34
  245. package/src/storybook/components/icomoon.ts +0 -38
  246. package/src/storybook/components/properties.vue +0 -82
  247. package/src/storybook/resources/accessibility.png +0 -0
  248. package/src/storybook/resources/accessibility.svg +0 -5
  249. package/src/storybook/resources/addon-library.png +0 -0
  250. package/src/storybook/resources/assets.png +0 -0
  251. package/src/storybook/resources/context.png +0 -0
  252. package/src/storybook/resources/discord.svg +0 -15
  253. package/src/storybook/resources/docs.png +0 -0
  254. package/src/storybook/resources/figma-plugin.png +0 -0
  255. package/src/storybook/resources/github.svg +0 -3
  256. package/src/storybook/resources/share.png +0 -0
  257. package/src/storybook/resources/styling.png +0 -0
  258. package/src/storybook/resources/testing.png +0 -0
  259. package/src/storybook/resources/theming.png +0 -0
  260. package/src/storybook/resources/tutorials.svg +0 -12
  261. package/src/storybook/resources/youtube.svg +0 -4
  262. 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" +0 -3
  263. package/tsconfig.json +0 -62
  264. package/vite.config.ts +0 -91
  265. /package/{src/resources/icomoon → icomoon}/fonts/Topvisor-2.ttf +0 -0
  266. /package/{src/resources/icomoon → icomoon}/fonts/Topvisor-2.woff +0 -0
  267. /package/{src/resources/icomoon → icomoon}/selection.json +0 -0
@@ -1,66 +0,0 @@
1
- <script setup lang="ts">
2
- import type { Props } from '../editArea';
3
- import EditArea from '../editArea.vue';
4
- import { reactive } from 'vue';
5
-
6
- defineProps<Props>();
7
-
8
- const genVariantProps = () => {
9
- return {
10
- 'Без настроек': {
11
- modelValue: '',
12
- },
13
- 'С заголовком': {
14
- modelValue: '',
15
- title: 'editArea с заголовком',
16
- },
17
- 'С placeholder': {
18
- modelValue: '',
19
- placeholder: 'Напишите что-нибудь...',
20
- },
21
- 'С текстом': {
22
- modelValue: 'Не выходи из комнаты, не совершай ошибку. Зачем тебе Солнце, если ты куришь Шипку? За дверью бессмысленно всё, ' +
23
- 'особенно — возглас счастья. Только в уборную — и сразу же возвращайся.',
24
- },
25
- 'Много строк текста': {
26
- modelValue: `Люблю грозу в начале мая,
27
- Когда весенний, первый гром,
28
- как бы резвяся и играя,
29
- Грохочет в небе голубом.
30
-
31
- Гремят раскаты молодые,
32
- Вот дождик брызнул, пыль летит,
33
- Повисли перлы дождевые,
34
- И солнце нити золотит.
35
-
36
- С горы бежит поток проворный,
37
- В лесу не молкнет птичий гам,
38
- И гам лесной и шум нагорный -
39
- Все вторит весело громам.`,
40
- },
41
- 'Мобильная версия': {
42
- modelValue: '',
43
- title: 'Вы пишите сообщение для: Hello Kitty',
44
- placeholder: 'Напишите что-нибудь...',
45
- attachToKeyboard: true,
46
- },
47
- } satisfies Record<string, Props>;
48
- };
49
-
50
- const variantProps = reactive(genVariantProps());
51
- </script>
52
-
53
- <template>
54
- <template v-for="(props, h2) in variantProps">
55
- <h2>
56
- {{ h2 }}
57
- </h2>
58
- <EditArea
59
- :="{...$props, ...props}"
60
- v-model="props.modelValue"
61
- ></EditArea>
62
- </template>
63
-
64
- <!-- TODO: добавить переменную top-forms-fixed-height и использовать ее при добавлении отступов у страницы -->
65
- <br><br><br><br><br><br><br><br><br><br>
66
- </template>
@@ -1,36 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/vue3';
2
-
3
- import { genArgsTypes, genOverviewStory } from '@/components/helpersStories';
4
- import Component from './editInput.vue';
5
- import * as ComponentsConst from './editInput';
6
- import OverviewComponent from './stories/overview.vue';
7
-
8
- const argTypes = genArgsTypes(Component, ComponentsConst, true);
9
-
10
- /**
11
- * Поле ввода с кнопкой
12
- *
13
- * При вводе значения появляется кнопка подтверждения ввода
14
- *
15
- * При нажитии кнопки подвтерждения или **Enter** будет выполнено событие **update:modelValue**
16
- *
17
- * При нажатии **Escape** значение в поле будет возвращено к начальному значению
18
- */
19
- const meta = {
20
- component: Component,
21
- tags: ['autodocs'],
22
- argTypes,
23
- args: {
24
- modelValue: '',
25
- },
26
- } satisfies Meta<typeof Component>;
27
-
28
- type Story = StoryObj<typeof meta>;
29
-
30
- export const Playground = {} satisfies Story;
31
-
32
- export const Overview: Story = genOverviewStory({
33
- args: {},
34
- }, OverviewComponent);
35
-
36
- export default meta;
@@ -1,20 +0,0 @@
1
- import type { Props as InputProps } from '@/components/forms/input/input';
2
- import type { Props as ButtonProps } from '@/components/forms/button/button';
3
-
4
- export interface Props {
5
- modelValue: string;
6
-
7
- /**
8
- * Любые props компонента Input, за исключением modelValue
9
- */
10
- input?: Omit<InputProps, 'modelValue'>;
11
-
12
- /**
13
- * Любые props компонента Button
14
- */
15
- button?: ButtonProps;
16
- }
17
-
18
- export interface Emits {
19
- (e: 'update:modelValue', value: string): void;
20
- }
@@ -1,57 +0,0 @@
1
- <script setup lang="ts">
2
- import { ref, toRef, watch } from 'vue';
3
- import type { Props, Emits } from './editInput';
4
- import Input from '@/components/forms/input/input.vue';
5
- import Button from '@/components/forms/button/button.vue';
6
-
7
- const props = defineProps<Props>();
8
-
9
- const intermediateValue = ref(props.modelValue);
10
-
11
- watch(toRef(props.modelValue), () => {
12
- intermediateValue.value = props.modelValue;
13
- });
14
-
15
- const emit = defineEmits<Emits>();
16
-
17
- const submit = () => {
18
- emit('update:modelValue', intermediateValue.value);
19
- };
20
- </script>
21
-
22
- <template>
23
- <div class="top-editInput">
24
- <Input
25
- :="input"
26
- @keydown.esc.capture.stop="intermediateValue = modelValue"
27
- @keydown.enter.stop="submit"
28
- v-model="intermediateValue"
29
- />
30
-
31
- <Button
32
- v-if="intermediateValue !== modelValue"
33
- icon=""
34
- styling="soft"
35
- :="button"
36
- @click="submit"
37
- >
38
- <!-- @slot Слот Button -->
39
- <slot></slot>
40
- </Button>
41
- </div>
42
- </template>
43
-
44
- <style module>
45
- .top-editInput {
46
- width: 220px;
47
- flex-grow: 1;
48
- display: flex;
49
- align-items: flex-end;
50
- gap: var(--top-gap-1);
51
- }
52
-
53
- .top-editInput .top-input {
54
- width: unset;
55
- flex-grow: 1;
56
- }
57
- </style>
@@ -1,54 +0,0 @@
1
- <script setup lang="ts">
2
- import { reactive } from 'vue';
3
- import EditInput from '../editInput.vue';
4
- import type { Props } from '../editInput';
5
-
6
- defineProps<Props>();
7
-
8
- const modelValues = reactive({
9
- 0: '',
10
- 1: '',
11
- 2: '',
12
- 3: '',
13
- });
14
- </script>
15
-
16
- <template>
17
- <h2>Смена значка</h2>
18
-
19
- <EditInput
20
- v-model="modelValues[0]"
21
- :input="{}"
22
- :button="{
23
- icon: ''
24
- }"
25
- />
26
-
27
- <h2>С подписью</h2>
28
-
29
- <EditInput
30
- v-model="modelValues[1]"
31
- :input="{
32
- title: 'Заголовок поля',
33
- captionType: 'slide',
34
- }"
35
- />
36
-
37
- <h2>С другой кнопкой</h2>
38
-
39
- <EditInput
40
- v-model="modelValues[2]"
41
- :button="{
42
- styling: '',
43
- }"
44
- />
45
-
46
- <h2>С кнопкой очистки</h2>
47
-
48
- <EditInput
49
- v-model="modelValues[3]"
50
- :input="{
51
- addCleaner: true,
52
- }"
53
- />
54
- </template>
@@ -1,3 +0,0 @@
1
- export { default as EditArea } from './editArea/editArea.vue';
2
- export { default as EditInput } from './editInput/editInput.vue';
3
- export { default as RadioGroup } from './radioGroup/radioGroup.vue'
@@ -1,51 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/vue3';
2
-
3
- import { genArgsTypes, genOverviewStory } from '@/components/helpersStories';
4
- import Component from './radioGroup.vue';
5
- import * as ComponentsConst from './radioGroup';
6
- import OverviewComponent from './stories/overview.vue';
7
-
8
- const argTypes = genArgsTypes(Component, ComponentsConst);
9
-
10
- const meta = {
11
- component: Component,
12
- tags: ['autodocs'],
13
- argTypes,
14
- args: {
15
- modelValue: '',
16
- },
17
- } satisfies Meta<typeof Component>;
18
-
19
- type Story = StoryObj<typeof meta>;
20
-
21
- export const Playground = {
22
- args: {
23
- radiosProps: [
24
- {
25
- value: '0',
26
- title: 'ПК',
27
- icon: '',
28
- },
29
- {
30
- value: '1',
31
- title: 'Планшет',
32
- icon: '',
33
- },
34
- {
35
- value: '2',
36
- title: 'Смартфон',
37
- icon: '',
38
- },
39
- ],
40
- },
41
- } satisfies Story;
42
-
43
- export const Overview: Story = genOverviewStory({
44
- args: {
45
- size: 's',
46
- showIndicator: false,
47
- isError: false,
48
- },
49
- }, OverviewComponent);
50
-
51
- export default meta;
@@ -1,28 +0,0 @@
1
- import type { Size } from '@/components/forms/helpers';
2
- import { sizes } from '@/components/forms/helpers';
3
-
4
- export interface Props {
5
- modelValue: string;
6
-
7
- /**
8
- * Массив props для вставки radioGroupItem
9
- */
10
- radiosProps?: ItemProps[];
11
-
12
- showIndicator?: boolean;
13
- size?: Size;
14
- isError?: boolean;
15
- }
16
-
17
- export interface Emits {
18
- (e: 'update:modelValue', value: Props['modelValue']): void;
19
- }
20
-
21
- export interface ItemProps {
22
- value: Props['modelValue'];
23
- title: string;
24
- icon?: string;
25
- disabled?: boolean;
26
- }
27
-
28
- export { sizes };
@@ -1,143 +0,0 @@
1
- <script setup lang="ts">
2
- import { computed } from 'vue';
3
- import type { Props, Emits } from './radioGroup';
4
-
5
- const props = withDefaults(defineProps<Props>(), {
6
- size: 's',
7
- });
8
-
9
- const emit = defineEmits<Emits>();
10
-
11
- const localValue = computed({
12
- get() {
13
- return props.modelValue;
14
- },
15
-
16
- set(value) {
17
- emit('update:modelValue', value);
18
- },
19
- });
20
-
21
- </script>
22
-
23
- <template>
24
- <div
25
- :class="{
26
- ['top-radioGroup']: true,
27
- ['top-scrollBarXHidding']: true,
28
- ['top-size_' + size]: !!size,
29
- ['top-error']: isError,
30
- }"
31
- >
32
- <div
33
- v-for="item of radiosProps"
34
- :class="{
35
- ['top-radioGroup_item-selected']: item.value === localValue,
36
- ['top-radioGroup_item']: true,
37
- ['top-disabled']: item.disabled,
38
- }"
39
- :data-top-icon="item.icon"
40
- @click="localValue = item.value"
41
- >
42
- {{ item.title }}
43
-
44
- <span
45
- v-if="showIndicator"
46
- class="top-radioGroup_circle"
47
- ></span>
48
- </div>
49
- </div>
50
- </template>
51
-
52
- <style module>
53
- @import "./styles/top-scrollBar.css";
54
-
55
- .top-radioGroup {
56
- user-select: none;
57
- box-sizing: border-box;
58
- border-radius: 8px;
59
- background-color: var(--color-theme-50);
60
- height: var(--top-forms-base-height);
61
- padding: 2px;
62
- gap: 2px;
63
- display: flex;
64
- align-items: flex-start;
65
- }
66
-
67
- .top-radioGroup_item {
68
- cursor: pointer;
69
- box-sizing: border-box;
70
- border-radius: 6px;
71
- height: calc(var(--top-forms-base-height) - 4px);
72
- padding: 0 16px;
73
- font-weight: 600;
74
- display: flex;
75
- align-items: center;
76
- justify-content: center;
77
- flex-grow: 1;
78
- gap: 4px;
79
- }
80
-
81
- .top-radioGroup_item:hover {
82
- background-color: var(--color-theme-25);
83
- box-shadow: 0px 4px 32px 0px rgba(4, 9, 84, 0.10), 0px 0px 4px 0px rgba(4, 9, 84, 0.08);
84
- }
85
-
86
- /* selected */
87
- .top-radioGroup_item-selected {
88
- pointer-events: none;
89
- background-color: var(--color-bg-3);
90
- box-shadow: 0px 4px 32px 0px rgba(4, 9, 84, 0.10), 0px 0px 4px 0px rgba(4, 9, 84, 0.08);
91
- }
92
-
93
- /* circle */
94
- .top-radioGroup_circle {
95
- padding: 3px;
96
- margin-left: auto;
97
- display: flex;
98
- }
99
-
100
- .top-radioGroup_circle:before {
101
- content: "";
102
- border: 1px solid var(--color-line-3-opacity);
103
- border-radius: 50%;
104
- box-sizing: border-box;
105
- width: calc(var(--top-forms-option-height) - 3px * 2);
106
- height: calc(var(--top-forms-option-height) - 3px * 2);
107
- }
108
-
109
- .top-radioGroup_item:hover .top-radioGroup_circle:before {
110
- border-color: var(--color-primary);
111
- }
112
-
113
- /* circle selected */
114
- .top-radioGroup_item-selected .top-radioGroup_circle:before {
115
- border-color: var(--color-primary);
116
- border-width: 5px;
117
- }
118
-
119
- .top-radioGroup_item-selected:hover .top-radioGroup_circle:before {
120
- border-color: var(--color-primary-2);
121
- }
122
-
123
- /* top-disabled */
124
- .top-radioGroup_item.top-disabled {
125
- --top-icon-color: var(--color-text-3);
126
-
127
- color: var(--color-text-3);
128
- }
129
-
130
- .top-radioGroup_item.top-disabled .top-radioGroup_circle:before {
131
- border-color: var(--color-theme-400);
132
- background-color: var(--color-theme-50);
133
- }
134
-
135
- /* top-error */
136
- .top-radioGroup.top-error .top-radioGroup_item:not(.top-disabled) .top-radioGroup_circle:before {
137
- border-color: var(--color-negative);
138
- }
139
-
140
- .top-radioGroup.top-error .top-radioGroup_item:hover .top-radioGroup_circle:before {
141
- border-color: var(--color-negative-2);
142
- }
143
- </style>
@@ -1,78 +0,0 @@
1
- <script setup lang="ts">
2
- import { ref } from 'vue';
3
- import type { Props } from '../radioGroup';
4
- import RadioGroup from '../radioGroup.vue';
5
-
6
- defineProps<Props>();
7
-
8
- const modelValue1 = ref('1');
9
- const modelValue2 = ref('3');
10
-
11
- const radiosProps1 = [
12
- {
13
- value: '0',
14
- title: 'ПК',
15
- },
16
- {
17
- value: '1',
18
- title: 'Планшет',
19
- },
20
- {
21
- value: '2',
22
- title: 'Смартфон',
23
- },
24
- {
25
- value: '3',
26
- title: 'Книга',
27
- disabled: true,
28
- },
29
- ];
30
-
31
- const radiosProps2 = [
32
- {
33
- value: '0',
34
- title: 'ПК',
35
- icon: '',
36
- },
37
- {
38
- value: '1',
39
- title: 'Планшет',
40
- icon: '',
41
- },
42
- {
43
- value: '2',
44
- title: 'Смартфон',
45
- icon: '',
46
- },
47
- {
48
- value: '3',
49
- title: 'Книга',
50
- icon: '',
51
- disabled: true,
52
- },
53
- ];
54
- </script>
55
-
56
- <template>
57
- <div>
58
- <h2>Стандартный вид</h2>
59
-
60
- <RadioGroup
61
- :="$props"
62
- v-model="modelValue1"
63
- :radiosProps="radiosProps1"
64
- />
65
-
66
- <p><b>Ваш выбор:</b> {{ modelValue1 }}</p>
67
-
68
- <h2>Со значками</h2>
69
-
70
- <RadioGroup
71
- :="$props"
72
- v-model="modelValue2"
73
- :radiosProps="radiosProps2"
74
- />
75
-
76
- <p><b>Ваш выбор:</b> {{ modelValue2 }}</p>
77
- </div>
78
- </template>
@@ -1,52 +0,0 @@
1
- /* Стили для горизонтального скроллбара top-scrollBarXHidding*/
2
- /* top-scrollBarXHidding - добавляет скроллбар, если он нужен. Скроллбар появится при hover */
3
- /* чтобы эффект работал, родитель должен иметь фиксированную высоту */
4
- .top-scrollBarXHidding {
5
- scrollbar-width: none;
6
- overflow-x: auto;
7
- overflow-y: hidden;
8
- }
9
-
10
- .top-scrollBarXHidding:hover {
11
- scrollbar-width: thin;
12
- }
13
-
14
- .top-scrollBarXHidding::-webkit-scrollbar {
15
- height: 6px;
16
- display: none;
17
- }
18
-
19
- .top-scrollBarXHidding:hover::-webkit-scrollbar {
20
- display: block;
21
- scrollbar-width: thin;
22
- }
23
-
24
- .top-scrollBarXHidding::-webkit-scrollbar-track {
25
- background-color: transparent;
26
- box-shadow: inset rgba(0, 0, 0, 0.06) 0 0 0 10px;
27
- }
28
-
29
- .top-scrollBarXHidding::-webkit-scrollbar-track:hover {
30
- box-shadow: inset rgba(0, 0, 0, 0.08) 0 0 0 10px;
31
- }
32
-
33
- .top-scrollBarXHidding::-webkit-scrollbar-track:active {
34
- box-shadow: inset rgba(0, 0, 0, 0.1) 0 0 0 10px;
35
- }
36
-
37
- .top-scrollBarXHidding::-webkit-scrollbar-thumb {
38
- background-color: var(--color-line-1-opacity);
39
- }
40
-
41
- .top-scrollBarXHidding::-webkit-scrollbar-thumb:hover {
42
- background-color: var(--color-line-2-opacity);
43
- }
44
-
45
- .top-scrollBarXHidding::-webkit-scrollbar-thumb:active {
46
- background-color: var(--color-line-3-opacity);
47
- }
48
-
49
- .top-scrollBarXHidding::-webkit-scrollbar-button {
50
- width: 0;
51
- height: 0;
52
- }
@@ -1,10 +0,0 @@
1
- export const REGEXP_START_SYMBOL_ICON = new RegExp('^[^a-zа-я0-9_%#!?.:\'"«»[\\](){} \\r\\n\\t<>&/+-]', 'i');
2
-
3
- export const extractIconAndContent = content => {
4
- const iconExists = content?.[0]?.match(REGEXP_START_SYMBOL_ICON);
5
-
6
- return {
7
- icon: iconExists ? content[0] : null,
8
- content: iconExists ? content.substring(1) : content,
9
- };
10
- };