@topvisor/ui 0.0.35 → 0.0.36

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 (266) hide show
  1. package/{src/components/forms/inputDate/datepicker.css → .chunks/datepicker-1e725859.amd.js} +3 -2
  2. package/.chunks/datepicker-1e725859.amd.js.map +1 -0
  3. package/.chunks/datepicker-ad465c48.es.js +275 -0
  4. package/.chunks/datepicker-ad465c48.es.js.map +1 -0
  5. package/.chunks/forms-2891e074.amd.js +3 -0
  6. package/.chunks/forms-2891e074.amd.js.map +1 -0
  7. package/.chunks/forms-db4cb24d.es.js +946 -0
  8. package/.chunks/forms-db4cb24d.es.js.map +1 -0
  9. package/.chunks/popup-0f540839.es.js +700 -0
  10. package/.chunks/popup-0f540839.es.js.map +1 -0
  11. package/.chunks/popup-e49a9bab.amd.js +341 -0
  12. package/.chunks/popup-e49a9bab.amd.js.map +1 -0
  13. package/README.md +63 -30
  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 +15 -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 +207 -0
  36. package/formsExt/formsExt.js.map +1 -0
  37. package/formsExt.css +1 -0
  38. package/light.css +1 -0
  39. package/package.json +1 -50
  40. package/popup/popup.amd.js +3 -0
  41. package/popup/popup.amd.js.map +1 -0
  42. package/popup/popup.js +144 -0
  43. package/popup/popup.js.map +1 -0
  44. package/popup/worker.amd.js +2 -0
  45. package/popup/worker.amd.js.map +1 -0
  46. package/popup/worker.js +154 -0
  47. package/popup/worker.js.map +1 -0
  48. package/popup.css +1 -0
  49. package/tabs/tabs.amd.js +3 -0
  50. package/tabs/tabs.amd.js.map +1 -0
  51. package/tabs/tabs.js +97 -0
  52. package/tabs/tabs.js.map +1 -0
  53. package/tabs.css +1 -0
  54. package/utils/date.amd.js +2 -0
  55. package/utils/date.amd.js.map +1 -0
  56. package/utils/date.js +6 -0
  57. package/utils/date.js.map +1 -0
  58. package/utils/device.amd.js +2 -0
  59. package/utils/device.amd.js.map +1 -0
  60. package/utils/device.js +6 -0
  61. package/utils/device.js.map +1 -0
  62. package/utils/dom.amd.js +2 -0
  63. package/utils/dom.amd.js.map +1 -0
  64. package/utils/dom.js +64 -0
  65. package/utils/dom.js.map +1 -0
  66. package/.storybook/TopTheme.js +0 -82
  67. package/.storybook/TopThemeManager.js +0 -44
  68. package/.storybook/main.ts +0 -43
  69. package/.storybook/manager.ts +0 -28
  70. package/.storybook/preview-head.html +0 -16
  71. package/.storybook/preview.ts +0 -48
  72. package/.storybook/vue/coreDecorator.ts +0 -19
  73. package/.storybook/vue/vModelDecorator.ts +0 -27
  74. package/.vscode/extensions.json +0 -11
  75. package/.vscode/keybindings.example.json +0 -121
  76. package/.vscode/settings.json +0 -46
  77. package/Dockerfile +0 -3
  78. package/NPM.md +0 -25
  79. package/PUBLISH.md +0 -18
  80. package/STORYBOOK.md +0 -27
  81. package/USE_IN_PROJECT.md +0 -29
  82. package/build/afterBuild.sh +0 -12
  83. package/build/cssModules.ts +0 -39
  84. package/build/plugin/amdFix.ts +0 -46
  85. package/build/rollup.config.ts +0 -18
  86. package/nbproject/project.properties +0 -11
  87. package/nbproject/project.xml +0 -9
  88. package/public/README.md +0 -63
  89. package/src/components/common/common.ts +0 -1
  90. package/src/components/common/icon/icon.ts +0 -4
  91. package/src/components/common/icon/icon.vue +0 -15
  92. package/src/components/component.ts +0 -133
  93. package/src/components/forms/button/button.stories.ts +0 -112
  94. package/src/components/forms/button/button.ts +0 -51
  95. package/src/components/forms/button/button.vue +0 -75
  96. package/src/components/forms/button/stories/README.md +0 -35
  97. package/src/components/forms/button/stories/overview.vue +0 -33
  98. package/src/components/forms/button/style/button.css +0 -124
  99. package/src/components/forms/button/style/style-outline.css +0 -42
  100. package/src/components/forms/button/style/style-soft.css +0 -31
  101. package/src/components/forms/button/style/style-transparent.css +0 -35
  102. package/src/components/forms/checkbox/checkbox.stories.ts +0 -33
  103. package/src/components/forms/checkbox/checkbox.ts +0 -23
  104. package/src/components/forms/checkbox/checkbox.vue +0 -135
  105. package/src/components/forms/checkbox/stories/overview.vue +0 -171
  106. package/src/components/forms/controlLabel/controlLabel.stories.ts +0 -38
  107. package/src/components/forms/controlLabel/controlLabel.ts +0 -4
  108. package/src/components/forms/controlLabel/controlLabel.vue +0 -48
  109. package/src/components/forms/forms.ts +0 -10
  110. package/src/components/forms/helpers.ts +0 -10
  111. package/src/components/forms/hint/hint.stories.ts +0 -46
  112. package/src/components/forms/hint/hint.ts +0 -8
  113. package/src/components/forms/hint/hint.vue +0 -32
  114. package/src/components/forms/input/input.stories.ts +0 -31
  115. package/src/components/forms/input/input.ts +0 -34
  116. package/src/components/forms/input/input.vue +0 -170
  117. package/src/components/forms/input/stories/overview.vue +0 -61
  118. package/src/components/forms/inputDate/datepicker.ts +0 -101
  119. package/src/components/forms/inputDate/inputDate.stories.ts +0 -41
  120. package/src/components/forms/inputDate/inputDate.ts +0 -4
  121. package/src/components/forms/inputDate/inputDate.vue +0 -127
  122. package/src/components/forms/inputDate/stories/overview.vue +0 -35
  123. package/src/components/forms/radio/radio.stories.ts +0 -34
  124. package/src/components/forms/radio/radio.ts +0 -15
  125. package/src/components/forms/radio/radio.vue +0 -107
  126. package/src/components/forms/radio/stories/overview.vue +0 -79
  127. package/src/components/forms/select/select.stories.ts +0 -34
  128. package/src/components/forms/select/select.ts +0 -36
  129. package/src/components/forms/select/select.vue +0 -253
  130. package/src/components/forms/select/stories/exampleOptions.ts +0 -71
  131. package/src/components/forms/select/stories/overview.vue +0 -60
  132. package/src/components/forms/switcher/stories/overview.vue +0 -139
  133. package/src/components/forms/switcher/switcher.stories.ts +0 -33
  134. package/src/components/forms/switcher/switcher.ts +0 -22
  135. package/src/components/forms/switcher/switcher.vue +0 -113
  136. package/src/components/forms/textarea/stories/overview.vue +0 -62
  137. package/src/components/forms/textarea/textarea.stories.ts +0 -33
  138. package/src/components/forms/textarea/textarea.ts +0 -38
  139. package/src/components/forms/textarea/textarea.vue +0 -119
  140. package/src/components/formsExt/editArea/editArea.stories.ts +0 -72
  141. package/src/components/formsExt/editArea/editArea.ts +0 -25
  142. package/src/components/formsExt/editArea/editArea.vue +0 -172
  143. package/src/components/formsExt/editArea/stories/README.md +0 -17
  144. package/src/components/formsExt/editArea/stories/overview.vue +0 -66
  145. package/src/components/formsExt/editInput/editInput.stories.ts +0 -36
  146. package/src/components/formsExt/editInput/editInput.ts +0 -20
  147. package/src/components/formsExt/editInput/editInput.vue +0 -57
  148. package/src/components/formsExt/editInput/stories/overview.vue +0 -54
  149. package/src/components/formsExt/formsExt.ts +0 -3
  150. package/src/components/formsExt/radioGroup/radioGroup.stories.ts +0 -51
  151. package/src/components/formsExt/radioGroup/radioGroup.ts +0 -28
  152. package/src/components/formsExt/radioGroup/radioGroup.vue +0 -143
  153. package/src/components/formsExt/radioGroup/stories/overview.vue +0 -78
  154. package/src/components/formsExt/radioGroup/styles/top-scrollBar.css +0 -52
  155. package/src/components/helper.js +0 -10
  156. package/src/components/helpersStories.ts +0 -151
  157. package/src/components/popup/lib/popup.globalEvents.js +0 -205
  158. package/src/components/popup/lib/popup.js +0 -702
  159. package/src/components/popup/lib/worker.globalEvents.js +0 -78
  160. package/src/components/popup/lib/worker.js +0 -232
  161. package/src/components/popup/popup/listItem.vue +0 -42
  162. package/src/components/popup/popup/opener.vue +0 -74
  163. package/src/components/popup/popup/popup.stories.ts +0 -68
  164. package/src/components/popup/popup/popup.ts +0 -93
  165. package/src/components/popup/popup/popup.vue +0 -95
  166. package/src/components/popup/popup/stories/README.md +0 -34
  167. package/src/components/popup/popup/stories/listItems.vue +0 -44
  168. package/src/components/popup/popup/stories/listSubItems.vue +0 -52
  169. package/src/components/popup/popup/stories/overview.vue +0 -208
  170. package/src/components/popup/popup/style/popup.css +0 -243
  171. package/src/components/popup/popup/style/popup.m.css +0 -71
  172. package/src/components/popup/popup/style/popup.pc.css +0 -28
  173. package/src/components/popup/popup.ts +0 -3
  174. package/src/components/popup/worker.ts +0 -1
  175. package/src/components/tabs/tabs/content.vue +0 -24
  176. package/src/components/tabs/tabs/stories/README.md +0 -10
  177. package/src/components/tabs/tabs/tab.vue +0 -52
  178. package/src/components/tabs/tabs/tabs.stories.ts +0 -171
  179. package/src/components/tabs/tabs/tabs.ts +0 -22
  180. package/src/components/tabs/tabs/tabs.vue +0 -64
  181. package/src/components/tabs/tabs.ts +0 -3
  182. package/src/core/base/Colors.stories.ts +0 -15
  183. package/src/core/base/Layout.stories.ts +0 -15
  184. package/src/core/base/Properties.stories.ts +0 -15
  185. package/src/core/base/base.mdx +0 -21
  186. package/src/core/core/core.ts +0 -144
  187. package/src/core/core/events.ts +0 -54
  188. package/src/core/core/options.ts +0 -15
  189. package/src/core/core/state.ts +0 -44
  190. package/src/core/directives/tooltip.ts +0 -55
  191. package/src/core/theme/Colors.stories.ts +0 -15
  192. package/src/core/theme/Properties.stories.ts +0 -15
  193. package/src/core/theme/theme.mdx +0 -15
  194. package/src/core/utils/date.ts +0 -164
  195. package/src/core/utils/device.ts +0 -48
  196. package/src/core/utils/dom.ts +0 -185
  197. 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
  198. 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
  199. 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
  200. package/src/docs/CSS/FAQ.mdx +0 -43
  201. 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
  202. 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
  203. 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
  204. 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
  205. package/src/docs/CSS//320/241/321/202/320/270/320/273/320/270.md +0 -53
  206. package/src/docs/CSS//320/241/321/202/320/270/320/273/320/270.mdx +0 -4
  207. 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
  208. package/src/docs/ROADMAP.md +0 -17
  209. package/src/docs/Roadmap.mdx +0 -4
  210. 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
  211. 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
  212. 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
  213. 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
  214. 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
  215. 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
  216. package/src/globals.d.ts +0 -1
  217. package/src/resources/styles/core/colors.css +0 -204
  218. package/src/resources/styles/core/components.css +0 -70
  219. package/src/resources/styles/core/core.ts +0 -10
  220. package/src/resources/styles/core/forms/clear.css +0 -19
  221. package/src/resources/styles/core/forms/controls.css +0 -20
  222. package/src/resources/styles/core/forms/focusable.css +0 -26
  223. package/src/resources/styles/core/forms/forms.css +0 -100
  224. package/src/resources/styles/core/icon.css +0 -58
  225. package/src/resources/styles/core/layout.css +0 -40
  226. package/src/resources/styles/core/modifiers/as.css +0 -9
  227. package/src/resources/styles/core/modifiers/ellipsis.css +0 -18
  228. package/src/resources/styles/core/modifiers/modifiers.css +0 -81
  229. package/src/resources/styles/core/modifiers/only.css +0 -19
  230. package/src/resources/styles/core/select.css +0 -16
  231. package/src/resources/styles/jquery-ui.min.css +0 -6
  232. package/src/resources/styles/storybook.css +0 -11
  233. package/src/resources/styles/themes/dark/theme.css +0 -139
  234. package/src/resources/styles/themes/dark.ts +0 -1
  235. package/src/resources/styles/themes/light/theme.css +0 -139
  236. package/src/resources/styles/themes/light.ts +0 -1
  237. package/src/storybook/components/color.vue +0 -45
  238. package/src/storybook/components/colors.vue +0 -34
  239. package/src/storybook/components/icomoon.ts +0 -38
  240. package/src/storybook/components/properties.vue +0 -82
  241. package/src/storybook/resources/accessibility.png +0 -0
  242. package/src/storybook/resources/accessibility.svg +0 -5
  243. package/src/storybook/resources/addon-library.png +0 -0
  244. package/src/storybook/resources/assets.png +0 -0
  245. package/src/storybook/resources/context.png +0 -0
  246. package/src/storybook/resources/discord.svg +0 -15
  247. package/src/storybook/resources/docs.png +0 -0
  248. package/src/storybook/resources/figma-plugin.png +0 -0
  249. package/src/storybook/resources/github.svg +0 -3
  250. package/src/storybook/resources/share.png +0 -0
  251. package/src/storybook/resources/styling.png +0 -0
  252. package/src/storybook/resources/testing.png +0 -0
  253. package/src/storybook/resources/theming.png +0 -0
  254. package/src/storybook/resources/tutorials.svg +0 -12
  255. package/src/storybook/resources/youtube.svg +0 -4
  256. 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
  257. package/tsconfig.json +0 -62
  258. package/vite.config.ts +0 -91
  259. /package/{src/resources/icomoon → icomoon}/demo-files/demo.css +0 -0
  260. /package/{src/resources/icomoon → icomoon}/demo-files/demo.js +0 -0
  261. /package/{src/resources/icomoon → icomoon}/demo.html +0 -0
  262. /package/{src/resources/icomoon → icomoon}/fonts/Topvisor-2.svg +0 -0
  263. /package/{src/resources/icomoon → icomoon}/fonts/Topvisor-2.ttf +0 -0
  264. /package/{src/resources/icomoon → icomoon}/fonts/Topvisor-2.woff +0 -0
  265. /package/{src/resources/icomoon → icomoon}/selection.json +0 -0
  266. /package/{src/resources/icomoon → icomoon}/style.css +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
- };