@teammodlr/ui-kit 1.0.7 → 2.0.1

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 (260) hide show
  1. package/lib/__storybook__/argTypes.d.ts +10 -1
  2. package/lib/components/avatar/Avatar.vue.d.ts +16 -30
  3. package/lib/components/avatar/style/Avatar.css.d.ts +9 -0
  4. package/lib/components/avatar/style/index.d.ts +1 -0
  5. package/lib/components/avatargroup/AvatarGroup.vue.d.ts +28 -13
  6. package/lib/components/avatargroup/style/AvatarGroup.css.d.ts +2 -0
  7. package/lib/components/avatargroup/style/index.d.ts +1 -0
  8. package/lib/components/avatargroup/symbol.d.ts +13 -0
  9. package/lib/components/badge/Badge.vue.d.ts +30 -0
  10. package/lib/components/badge/style/Badge.css.d.ts +4 -0
  11. package/lib/components/badge/style/index.d.ts +1 -0
  12. package/lib/components/breadcrumb/Breadcrumb.vue.d.ts +12 -3
  13. package/lib/components/{breadcrumbitem → breadcrumb}/BreadcrumbItem.vue.d.ts +11 -0
  14. package/lib/components/breadcrumb/style/Breadcrumb.css.d.ts +4 -0
  15. package/lib/components/breadcrumb/style/index.d.ts +1 -0
  16. package/lib/components/breadcrumb/symbol.d.ts +13 -0
  17. package/lib/components/button/Button.vue.d.ts +39 -28
  18. package/lib/components/button/style/Button.css.d.ts +24 -0
  19. package/lib/components/button/style/index.d.ts +1 -0
  20. package/lib/components/buttongroup/ButtonGroup.vue.d.ts +2 -13
  21. package/lib/components/buttongroup/style/ButtonGroup.css.d.ts +2 -0
  22. package/lib/components/buttongroup/style/index.d.ts +1 -0
  23. package/lib/components/buttongroup/symbol.d.ts +6 -0
  24. package/lib/components/checkbox/Checkbox.vue.d.ts +17 -20
  25. package/lib/components/checkbox/style/Checkbox.css.d.ts +16 -0
  26. package/lib/components/checkbox/style/index.d.ts +1 -0
  27. package/lib/components/colorpicker/ColorPicker.vue.d.ts +75 -0
  28. package/lib/components/colorpicker/style/ColorPicker.css.d.ts +9 -0
  29. package/lib/components/colorpicker/style/index.d.ts +1 -0
  30. package/lib/components/colorpicker/utils.d.ts +16 -0
  31. package/lib/components/dropdown/Dropdown.vue.d.ts +5 -4
  32. package/lib/components/dropdown/DropdownItem.vue.d.ts +12 -5
  33. package/lib/components/dropdown/DropdownList.vue.d.ts +4 -1
  34. package/lib/components/dropdown/style/Dropdown.css.d.ts +5 -0
  35. package/lib/components/dropdown/style/index.d.ts +1 -0
  36. package/lib/components/dropdown/symbol.d.ts +6 -0
  37. package/lib/components/form/Form.vue.d.ts +12 -1
  38. package/lib/components/form/style/Form.css.d.ts +4 -0
  39. package/lib/components/form/style/index.d.ts +2 -0
  40. package/lib/components/index.d.ts +10 -1
  41. package/lib/components/input/Input.vue.d.ts +35 -19
  42. package/lib/components/input/style/Input.css.d.ts +23 -0
  43. package/lib/components/input/style/index.d.ts +1 -0
  44. package/lib/components/link/Link.vue.d.ts +2 -2
  45. package/lib/components/messageprovider/Message.vue.d.ts +13 -1
  46. package/lib/components/messageprovider/MessageProvider.vue.d.ts +6 -5
  47. package/lib/components/messageprovider/style/Message.css.d.ts +12 -0
  48. package/lib/components/messageprovider/style/index.d.ts +1 -0
  49. package/lib/components/messageprovider/types.d.ts +2 -1
  50. package/lib/components/modal/Modal.vue.d.ts +52 -0
  51. package/lib/components/modal/style/Modal.css.d.ts +21 -0
  52. package/lib/components/modal/style/index.d.ts +1 -0
  53. package/lib/components/radio/Radio.vue.d.ts +85 -0
  54. package/lib/components/radio/style/Checkbox.css.d.ts +16 -0
  55. package/lib/components/radio/style/index.d.ts +1 -0
  56. package/lib/components/radiobutton/RadioButton.vue.d.ts +98 -0
  57. package/lib/components/radiobutton/style/RadioButton.css.d.ts +14 -0
  58. package/lib/components/radiobutton/style/index.d.ts +1 -0
  59. package/lib/components/radiobuttongroup/RadioButtonGroup.vue.d.ts +48 -0
  60. package/lib/components/radiobuttongroup/style/RadioButtonGroup.css.d.ts +3 -0
  61. package/lib/components/radiobuttongroup/style/index.d.ts +1 -0
  62. package/lib/components/radiobuttongroup/symbol.d.ts +9 -0
  63. package/lib/components/select/Select.vue.d.ts +22 -13
  64. package/lib/components/select/style/Select.css.d.ts +30 -0
  65. package/lib/components/select/style/index.d.ts +1 -0
  66. package/lib/components/skeleton/Skeleton.vue.d.ts +15 -21
  67. package/lib/components/skeleton/style/Skeleton.css.d.ts +8 -0
  68. package/lib/components/skeleton/style/index.d.ts +2 -0
  69. package/lib/components/slider/Slider.vue.d.ts +32 -0
  70. package/lib/components/slider/style/Slider.css.d.ts +4 -0
  71. package/lib/components/slider/style/index.d.ts +1 -0
  72. package/lib/components/tab/TabGroup.vue.d.ts +1 -1
  73. package/lib/components/table/Table.vue.d.ts +1 -1
  74. package/lib/components/tag/Tag.vue.d.ts +44 -0
  75. package/lib/components/tag/style/Tag.css.d.ts +11 -0
  76. package/lib/components/tag/style/index.d.ts +1 -0
  77. package/lib/components/tooltip/Tooltip.vue.d.ts +17 -2
  78. package/lib/components/tooltip/style/Tooltip.css.d.ts +6 -0
  79. package/lib/components/tooltip/style/index.d.ts +1 -0
  80. package/lib/components/virtualscroll/VirtualScroll.vue.d.ts +46 -16
  81. package/lib/components/virtualscroll/style/VirtualScroll.css.d.ts +1 -0
  82. package/lib/components/virtualscroll/style/index.d.ts +1 -0
  83. package/lib/composables/useInput.d.ts +1 -1
  84. package/lib/composables/useInteractive.d.ts +15 -0
  85. package/lib/composables/useZIndex.d.ts +8 -0
  86. package/lib/index.cjs.js +8 -2
  87. package/lib/index.d.ts +0 -1
  88. package/lib/index.es.js +3699 -1694
  89. package/lib/style.css +1 -1
  90. package/lib/styles/theme.css.d.ts +147 -0
  91. package/lib/styles/typography.css.d.ts +22 -0
  92. package/lib/types/props.d.ts +1 -0
  93. package/package.json +34 -26
  94. package/src/__storybook__/argTypes.ts +19 -1
  95. package/src/components/avatar/Avatar.vue +33 -26
  96. package/src/components/avatar/examples/index.stories.ts +1 -1
  97. package/src/components/avatar/style/Avatar.css.ts +92 -0
  98. package/src/components/avatar/style/index.ts +1 -0
  99. package/src/components/avatargroup/AvatarGroup.vue +71 -32
  100. package/src/components/avatargroup/examples/basic.vue +33 -7
  101. package/src/components/avatargroup/examples/index.stories.ts +4 -8
  102. package/src/components/avatargroup/style/AvatarGroup.css.ts +21 -0
  103. package/src/components/avatargroup/style/index.ts +1 -0
  104. package/src/components/avatargroup/symbol.ts +17 -0
  105. package/src/components/badge/Badge.css +128 -0
  106. package/src/components/badge/Badge.vue +43 -0
  107. package/src/components/badge/examples/basic.vue +10 -0
  108. package/src/components/badge/examples/index.stories.ts +21 -0
  109. package/src/components/badge/examples/index.ts +1 -0
  110. package/src/components/badge/style/Badge.css.ts +124 -0
  111. package/src/components/badge/style/index.ts +1 -0
  112. package/src/components/breadcrumb/Breadcrumb.vue +22 -15
  113. package/src/components/breadcrumb/BreadcrumbItem.vue +73 -0
  114. package/src/components/breadcrumb/examples/basic.vue +5 -7
  115. package/src/components/breadcrumb/examples/index.stories.ts +2 -2
  116. package/src/components/breadcrumb/style/Breadcrumb.css.ts +40 -0
  117. package/src/components/breadcrumb/style/index.ts +1 -0
  118. package/src/components/breadcrumb/symbol.ts +17 -0
  119. package/src/components/button/Button.vue +194 -107
  120. package/src/components/button/examples/icon-left.vue +12 -0
  121. package/src/components/button/examples/icon.vue +6 -7
  122. package/src/components/button/examples/index.stories.ts +9 -7
  123. package/src/components/button/examples/index.ts +3 -2
  124. package/src/components/button/examples/variants-secondary.vue +8 -0
  125. package/src/components/button/examples/variants.vue +8 -0
  126. package/src/components/button/style/Button.css.ts +585 -0
  127. package/src/components/button/style/index.ts +1 -0
  128. package/src/components/buttongroup/ButtonGroup.vue +36 -47
  129. package/src/components/buttongroup/examples/basic.vue +2 -2
  130. package/src/components/buttongroup/examples/icon-group.vue +22 -0
  131. package/src/components/buttongroup/examples/index.stories.ts +4 -2
  132. package/src/components/buttongroup/examples/index.ts +1 -0
  133. package/src/components/buttongroup/style/ButtonGroup.css.ts +40 -0
  134. package/src/components/buttongroup/style/index.ts +1 -0
  135. package/src/components/buttongroup/symbol.ts +8 -0
  136. package/src/components/checkbox/Checkbox.vue +70 -54
  137. package/src/components/checkbox/examples/index.stories.ts +1 -1
  138. package/src/components/checkbox/style/Checkbox.css.ts +127 -0
  139. package/src/components/checkbox/style/index.ts +1 -0
  140. package/src/components/colorpicker/ColorPicker.vue +283 -0
  141. package/src/components/colorpicker/examples/basic.vue +3 -0
  142. package/src/components/colorpicker/examples/index.stories.ts +17 -0
  143. package/src/components/colorpicker/examples/index.ts +1 -0
  144. package/src/components/colorpicker/style/ColorPicker.css.ts +97 -0
  145. package/src/components/colorpicker/style/index.ts +1 -0
  146. package/src/components/colorpicker/utils.ts +188 -0
  147. package/src/components/dropdown/Dropdown.vue +45 -24
  148. package/src/components/dropdown/DropdownItem.vue +121 -118
  149. package/src/components/dropdown/DropdownList.vue +3 -3
  150. package/src/components/dropdown/DropdownWrapper.vue +2 -1
  151. package/src/components/dropdown/examples/custom.vue +13 -0
  152. package/src/components/dropdown/examples/index.stories.ts +4 -2
  153. package/src/components/dropdown/examples/index.ts +1 -0
  154. package/src/components/dropdown/style/Dropdown.css.ts +48 -0
  155. package/src/components/dropdown/style/index.ts +1 -0
  156. package/src/components/dropdown/symbol.ts +8 -0
  157. package/src/components/form/Form.vue +12 -3
  158. package/src/components/form/examples/basic.vue +4 -2
  159. package/src/components/form/examples/index.stories.ts +4 -2
  160. package/src/components/form/style/Form.css.ts +23 -0
  161. package/src/components/form/style/index.ts +2 -0
  162. package/src/components/image/examples/index.stories.ts +1 -1
  163. package/src/components/index.ts +10 -2
  164. package/src/components/input/Input.vue +84 -42
  165. package/src/components/input/examples/basic.vue +2 -1
  166. package/src/components/input/examples/index.stories.ts +1 -1
  167. package/src/components/input/examples/prefix.vue +4 -2
  168. package/src/components/input/examples/suffix.vue +4 -2
  169. package/src/components/input/style/Input.css.ts +221 -0
  170. package/src/components/input/style/index.ts +1 -0
  171. package/src/components/link/examples/index.stories.ts +1 -1
  172. package/src/components/messageprovider/Message.vue +52 -5
  173. package/src/components/messageprovider/MessageProvider.css +0 -13
  174. package/src/components/messageprovider/MessageProvider.vue +18 -16
  175. package/src/components/messageprovider/examples/basic.vue +56 -5
  176. package/src/components/messageprovider/examples/index.stories.ts +0 -1
  177. package/src/components/messageprovider/examples/index.ts +1 -0
  178. package/src/components/messageprovider/examples/update.vue +34 -0
  179. package/src/components/messageprovider/examples/wrapper.vue +1 -1
  180. package/src/components/messageprovider/style/Message.css.ts +109 -0
  181. package/src/components/messageprovider/style/index.ts +1 -0
  182. package/src/components/messageprovider/types.ts +9 -1
  183. package/src/components/modal/Modal.vue +126 -0
  184. package/src/components/modal/examples/basic.vue +40 -0
  185. package/src/components/modal/examples/index.stories.ts +20 -0
  186. package/src/components/modal/examples/index.ts +2 -0
  187. package/src/components/modal/examples/modal-form.vue +99 -0
  188. package/src/components/modal/style/Modal.css.ts +257 -0
  189. package/src/components/modal/style/index.ts +1 -0
  190. package/src/components/radio/Checkbox.css +185 -0
  191. package/src/components/radio/Radio.vue +137 -0
  192. package/src/components/radio/examples/basic.vue +9 -0
  193. package/src/components/radio/examples/index.stories.ts +19 -0
  194. package/src/components/radio/examples/index.ts +2 -0
  195. package/src/components/radio/style/Checkbox.css.ts +132 -0
  196. package/src/components/radio/style/index.ts +1 -0
  197. package/src/components/radiobutton/RadioButton.vue +131 -0
  198. package/src/components/radiobutton/style/RadioButton.css.ts +185 -0
  199. package/src/components/radiobutton/style/index.ts +1 -0
  200. package/src/components/radiobuttongroup/RadioButtonGroup.vue +75 -0
  201. package/src/components/radiobuttongroup/examples/basic.vue +17 -0
  202. package/src/components/radiobuttongroup/examples/index.stories.ts +22 -0
  203. package/src/components/radiobuttongroup/examples/index.ts +2 -0
  204. package/src/components/radiobuttongroup/style/RadioButtonGroup.css.ts +37 -0
  205. package/src/components/radiobuttongroup/style/index.ts +1 -0
  206. package/src/components/radiobuttongroup/symbol.ts +11 -0
  207. package/src/components/select/Select.css +0 -226
  208. package/src/components/select/Select.vue +116 -48
  209. package/src/components/select/examples/index.stories.ts +1 -1
  210. package/src/components/select/examples/multiple.vue +1 -2
  211. package/src/components/select/style/Select.css.ts +254 -0
  212. package/src/components/select/style/index.ts +1 -0
  213. package/src/components/skeleton/Skeleton.vue +55 -47
  214. package/src/components/skeleton/examples/index.stories.ts +1 -8
  215. package/src/components/skeleton/style/Skeleton.css.ts +57 -0
  216. package/src/components/skeleton/style/index.ts +2 -0
  217. package/src/components/slider/Slider.vue +76 -0
  218. package/src/components/slider/style/Slider.css.ts +43 -0
  219. package/src/components/slider/style/index.ts +1 -0
  220. package/src/components/tab/examples/index.stories.ts +1 -1
  221. package/src/components/table/examples/index.stories.ts +1 -1
  222. package/src/components/tag/Tag.css +0 -0
  223. package/src/components/tag/Tag.vue +66 -0
  224. package/src/components/tag/examples/basic.vue +5 -0
  225. package/src/components/tag/examples/index.stories.ts +22 -0
  226. package/src/components/tag/examples/index.ts +1 -0
  227. package/src/components/tag/style/Tag.css.ts +79 -0
  228. package/src/components/tag/style/index.ts +1 -0
  229. package/src/components/tooltip/Tooltip.css +0 -6
  230. package/src/components/tooltip/Tooltip.vue +53 -22
  231. package/src/components/tooltip/examples/basic.vue +2 -5
  232. package/src/components/tooltip/examples/index.stories.ts +1 -1
  233. package/src/components/tooltip/style/Tooltip.css.ts +48 -0
  234. package/src/components/tooltip/style/index.ts +1 -0
  235. package/src/components/virtualscroll/VirtualScroll.vue +159 -53
  236. package/src/components/virtualscroll/examples/basic.vue +21 -27
  237. package/src/components/virtualscroll/examples/index.stories.ts +2 -18
  238. package/src/components/virtualscroll/style/VirtualScroll.css.ts +18 -0
  239. package/src/components/virtualscroll/style/index.ts +1 -0
  240. package/src/composables/useInput.ts +2 -2
  241. package/src/composables/useInteractive.ts +20 -0
  242. package/src/composables/usePopper.ts +1 -1
  243. package/src/composables/useZIndex.ts +31 -0
  244. package/src/css/components.css +4 -3
  245. package/src/css/normalize.css +0 -379
  246. package/src/css/variables.css +2 -2
  247. package/src/examples/cards/cards.stories.ts +9 -0
  248. package/src/examples/cards/sidebar.vue +263 -0
  249. package/src/index.ts +1 -1
  250. package/src/styles/theme.css.ts +149 -0
  251. package/src/styles/typography.css.ts +91 -0
  252. package/src/types/props.ts +2 -0
  253. package/lib/components/breadcrumbitem/index.d.ts +0 -1
  254. package/src/components/avatar/Avatar.css +0 -69
  255. package/src/components/breadcrumbitem/BreadcrumbItem.vue +0 -66
  256. package/src/components/breadcrumbitem/index.ts +0 -1
  257. package/src/components/button/examples/colors-secondary.vue +0 -8
  258. package/src/components/button/examples/colors.vue +0 -8
  259. package/src/components/dropdown/Dropdown.css +0 -68
  260. /package/src/components/button/{Button.css → Button-old.css} +0 -0
@@ -0,0 +1,263 @@
1
+ <template>
2
+ <div class="bg">
3
+ <div class="sidebar">
4
+ <div class="item">
5
+ <label class="label">
6
+ Align
7
+ </label>
8
+ <MRadioButtonGroup name="align" v-model="form.align" block size="sm">
9
+ <MRadioButton icon id="start">
10
+ <svg
11
+ width="24"
12
+ height="24"
13
+ viewBox="0 0 24 24"
14
+ fill="none"
15
+ xmlns="http://www.w3.org/2000/svg"
16
+ >
17
+ <path d="M8 13H14V17H8V13Z" fill="currentColor" fill-opacity="0.5"/>
18
+ <path d="M6 6H4V18H6V6Z" fill="currentColor"/>
19
+ <path d="M20 7H8V11H20V7Z" fill="currentColor"/>
20
+ </svg>
21
+ </MRadioButton>
22
+ <MRadioButton icon id="center">
23
+ <svg
24
+ width="24"
25
+ height="24"
26
+ viewBox="0 0 24 24"
27
+ fill="none"
28
+ xmlns="http://www.w3.org/2000/svg"
29
+ >
30
+ <path d="M9 13H15V17H9V13Z" fill="currentColor" fill-opacity="0.5"/>
31
+ <path d="M6 7H18V11H6V7Z" fill="currentColor"/>
32
+ </svg>
33
+ </MRadioButton>
34
+ <MRadioButton icon id="end">
35
+ <svg
36
+ width="24"
37
+ height="24"
38
+ viewBox="0 0 24 24"
39
+ fill="none"
40
+ xmlns="http://www.w3.org/2000/svg"
41
+ >
42
+ <path
43
+ fill-rule="evenodd"
44
+ clip-rule="evenodd"
45
+ d="M15.9991 13.0039L9.99907 12.9911L9.99054 16.9911L15.9905 17.0039L15.9991 13.0039Z"
46
+ fill="currentColor"
47
+ fill-opacity="0.5"
48
+ />
49
+ <path
50
+ fill-rule="evenodd"
51
+ clip-rule="evenodd"
52
+ d="M19.978 18.0021L20.0036 6.00214L18.0036 5.99788L17.978 17.9979L19.978 18.0021Z"
53
+ fill="currentColor"
54
+ />
55
+ <path
56
+ fill-rule="evenodd"
57
+ clip-rule="evenodd"
58
+ d="M3.9964 10.9851L15.9964 11.0107L16.0049 7.0107L4.00493 6.98512L3.9964 10.9851Z"
59
+ fill="currentColor"
60
+ />
61
+ </svg>
62
+ </MRadioButton>
63
+ </MRadioButtonGroup>
64
+ </div>
65
+
66
+ <div class="item">
67
+ <label class="label">
68
+ Justify
69
+ </label>
70
+ <MRadioButtonGroup name="align" v-model="form.justify" block size="sm">
71
+ <MRadioButton icon id="start">
72
+ <svg
73
+ width="24"
74
+ height="24"
75
+ viewBox="0 0 24 24"
76
+ fill="none"
77
+ xmlns="http://www.w3.org/2000/svg"
78
+ >
79
+ <path d="M8 13H14V17H8V13Z" fill="currentColor" fill-opacity="0.5"/>
80
+ <path d="M6 6H4V18H6V6Z" fill="currentColor"/>
81
+ <path d="M20 7H8V11H20V7Z" fill="currentColor"/>
82
+ </svg>
83
+ </MRadioButton>
84
+ <MRadioButton icon id="center">
85
+ <svg
86
+ width="24"
87
+ height="24"
88
+ viewBox="0 0 24 24"
89
+ fill="none"
90
+ xmlns="http://www.w3.org/2000/svg"
91
+ >
92
+ <path d="M9 13H15V17H9V13Z" fill="currentColor" fill-opacity="0.5"/>
93
+ <path d="M6 7H18V11H6V7Z" fill="currentColor"/>
94
+ </svg>
95
+ </MRadioButton>
96
+ <MRadioButton icon id="end">
97
+ <svg
98
+ width="24"
99
+ height="24"
100
+ viewBox="0 0 24 24"
101
+ fill="none"
102
+ xmlns="http://www.w3.org/2000/svg"
103
+ >
104
+ <path
105
+ fill-rule="evenodd"
106
+ clip-rule="evenodd"
107
+ d="M15.9991 13.0039L9.99907 12.9911L9.99054 16.9911L15.9905 17.0039L15.9991 13.0039Z"
108
+ fill="currentColor"
109
+ fill-opacity="0.5"
110
+ />
111
+ <path
112
+ fill-rule="evenodd"
113
+ clip-rule="evenodd"
114
+ d="M19.978 18.0021L20.0036 6.00214L18.0036 5.99788L17.978 17.9979L19.978 18.0021Z"
115
+ fill="currentColor"
116
+ />
117
+ <path
118
+ fill-rule="evenodd"
119
+ clip-rule="evenodd"
120
+ d="M3.9964 10.9851L15.9964 11.0107L16.0049 7.0107L4.00493 6.98512L3.9964 10.9851Z"
121
+ fill="currentColor"
122
+ />
123
+ </svg>
124
+ </MRadioButton>
125
+ </MRadioButtonGroup>
126
+ </div>
127
+
128
+ <div class="grid">
129
+ <div class="item">
130
+ <label class="label">
131
+ Width
132
+ </label>
133
+ <MInput type="text" v-model="form.width" size="sm" block>
134
+ <template #icon-right>
135
+ <span style="font-size: 11px">px</span>
136
+ </template>
137
+ </MInput>
138
+ </div>
139
+ <div class="item">
140
+ <label class="label">
141
+ Height
142
+ </label>
143
+ <MInput type="text" v-model="form.height" size="sm" block>
144
+ <template #icon-right>
145
+ <span style="font-size: 11px">px</span>
146
+ </template>
147
+ </MInput>
148
+ </div>
149
+
150
+ <div class="item">
151
+ <label class="label">
152
+ Min Width
153
+ </label>
154
+ <MInput type="text" v-model="form.minWidth" size="sm" block>
155
+ <template #icon-right>
156
+ <span style="font-size: 11px">px</span>
157
+ </template>
158
+ </MInput>
159
+ </div>
160
+
161
+ <div class="item">
162
+ <label class="label">
163
+ Min Height
164
+ </label>
165
+ <MInput type="text" v-model="form.minHeight" size="sm" block>
166
+ <template #icon-right>
167
+ <span style="font-size: 11px">px</span>
168
+ </template>
169
+ </MInput>
170
+ </div>
171
+ </div>
172
+
173
+ <div class="item">
174
+ <label class="label">
175
+ Background
176
+ </label>
177
+ <MColorPicker v-model="form.backgroundColor"/>
178
+ </div>
179
+
180
+ <div class="item">
181
+ <label class="label">
182
+ Color
183
+ </label>
184
+ <MColorPicker v-model="form.color"/>
185
+ </div>
186
+ </div>
187
+
188
+ <div style="padding: 10px">
189
+ {{ form }}
190
+ <div style="display: flex;" :style="computedStyle">
191
+ Hi
192
+ </div>
193
+ </div>
194
+ </div>
195
+ </template>
196
+
197
+ <script lang="ts" setup>
198
+ import {computed, reactive} from "vue";
199
+ import {MRadioButtonGroup} from "../../components";
200
+ import MRadioButton from "@/components/radiobutton/RadioButton.vue";
201
+ import MColorPicker from "@/components/colorpicker/ColorPicker.vue";
202
+ import MInput from "@/components/input/Input.vue";
203
+
204
+ const form = reactive({
205
+ align: "start",
206
+ justify: "start",
207
+ width: 100,
208
+ height: 100,
209
+ minWidth: 0,
210
+ minHeight: 0,
211
+ color: "#000000",
212
+ backgroundColor: "#FF0000"
213
+ })
214
+
215
+ const computedStyle = computed(() => {
216
+ return {
217
+ width: form.width ? `${form.width}px` : "auto",
218
+ height: form.height ? `${form.height}px` : "auto",
219
+ minWidth: form.minWidth ? `${form.minWidth}px` : "auto",
220
+ minHeight: form.minHeight ? `${form.minHeight}px` : "auto",
221
+ color: form.color,
222
+ backgroundColor: form.backgroundColor,
223
+ alignItems: form.align,
224
+ justifyContent: form.justify
225
+ }
226
+ })
227
+
228
+ </script>
229
+
230
+ <style scoped>
231
+ .bg {
232
+ display: flex;
233
+ }
234
+
235
+ .sidebar {
236
+ width: 350px;
237
+ height: 500px;
238
+ border-right: 1px solid #e5e5e5;
239
+ padding: 5px 10px;
240
+ flex-shrink: 0;
241
+ }
242
+
243
+ .item {
244
+ display: grid;
245
+ grid-template-columns: 70px 1fr;
246
+ grid-gap: 10px;
247
+ align-items: center;
248
+ margin-bottom: 8px;
249
+ }
250
+
251
+ .grid {
252
+ display: grid;
253
+ grid-template-columns: 1fr 1fr;
254
+ grid-gap: 5px 20px;
255
+ align-items: center;
256
+ margin-bottom: 8px;
257
+ }
258
+
259
+ .label {
260
+ font-size: 13px;
261
+ font-weight: 500;
262
+ }
263
+ </style>
package/src/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- import './css/index.css';
1
+ // import './css/index.css';
2
2
  export * from './components';
3
3
  export { default as createUI } from './create';
4
4
  export { default } from './install';
@@ -0,0 +1,149 @@
1
+ import {createGlobalTheme, globalStyle, styleVariants} from '@vanilla-extract/css';
2
+ import {fonts} from "./typography.css";
3
+
4
+ export const spaceScale = {
5
+ '0': '0px',
6
+ '0.5': '2px',
7
+ '1': '4px',
8
+ '1.5': '6px',
9
+ '2': '8px',
10
+ '2.5': '10px',
11
+ '3': '12px',
12
+ '3.5': '14px',
13
+ '4': '16px',
14
+ '5': '18px',
15
+ };
16
+
17
+ export const marginVariants = styleVariants(spaceScale, (space) => ({
18
+ margin: space
19
+ }));
20
+
21
+ export const borderRadiusScale = {
22
+ 'none': '0px',
23
+ 'xsmall': '1px',
24
+ 'small': '2px',
25
+ 'default': '4px',
26
+ 'medium': '6px',
27
+ 'large': '8px',
28
+ 'xlarge': '12px',
29
+ 'full': '9999px',
30
+ };
31
+
32
+ export const borderRadiusVariants = styleVariants(borderRadiusScale, (borderRadius) => ({
33
+ borderRadius: borderRadius
34
+ }));
35
+
36
+ export const fontSizeScale = {
37
+ 'base': '14px',
38
+ 'xsmall': '10px',
39
+ 'small': '12px',
40
+ 'large': '16px',
41
+ 'xlarge': '18px',
42
+ 'xxlarge': '20px',
43
+ };
44
+
45
+ export const fontSizeVariants = styleVariants(fontSizeScale, (fontSize) => ({
46
+ fontSize: fontSize
47
+ }));
48
+
49
+ export const shadows = {
50
+ 'sm': '0px 3px 6px 1px rgb(154 161 171 / 15%)',
51
+ 'md': '0px 4px 10px 1px rgb(154 161 171 / 20%)',
52
+ 'lg': '0px 7px 14px 1px rgb(154 161 171 / 23%)'
53
+ }
54
+
55
+ export const shadowVariants = styleVariants(shadows, (shadow) => ({
56
+ boxShadow: shadow
57
+ }));
58
+
59
+ export const transitions = {
60
+ 'default': 'cubic-bezier(0.4, 0, 0.2, 1)',
61
+ }
62
+
63
+ export const transitionsVariants = styleVariants(transitions, (transition) => ({
64
+ transition: transition
65
+ }));
66
+
67
+ export const themeVars = createGlobalTheme(':root', {
68
+ color: {
69
+ gray: {
70
+ 50: 'hsl(0,0%,98%)',
71
+ 100: 'hsl(0,0%,96.1%)',
72
+ 150: 'hsl(0,0%,94.9%)',
73
+ 200: 'hsl(0,0%,89.8%)',
74
+ 300: 'hsl(0,0%,83.1%)',
75
+ 400: 'hsl(0,0%,63.9%)',
76
+ 500: 'hsl(0,0%,45.1%)',
77
+ 600: 'hsl(0,0%,32.2%)',
78
+ 700: 'hsl(0,0%,25.1%)',
79
+ 800: 'hsl(0,0%,14.9%)',
80
+ 900: 'hsl(0,0%,9%)',
81
+ },
82
+ blue: {
83
+ 50: 'hsl(214,100%,96.9%)',
84
+ 100: 'hsl(214,94.6%,92.7%)',
85
+ 200: 'hsl(213,96.9%,87.3%)',
86
+ 300: 'hsl(212,96.4%,78.4%)',
87
+ 400: 'hsl(213,93.9%,67.8%)',
88
+ 500: 'hsl(217,91.2%,59.8%)',
89
+ 600: 'hsl(221,83.2%,53.3%)',
90
+ 700: 'hsl(224,76.3%,48%)',
91
+ 800: 'hsl(226,70.7%,40.2%)',
92
+ 900: 'hsl(224,64.3%,32.9%)',
93
+ },
94
+ amber: {
95
+ 50: 'hsl(48,100%,96.1%)',
96
+ 100: 'hsl(48,96.5%,88.8%)',
97
+ 200: 'hsl(48,96.6%,76.7%)',
98
+ 300: 'hsl(46,96.7%,64.5%)',
99
+ 400: 'hsl(43,96.4%,56.3%)',
100
+ 500: 'hsl(38,92.1%,50.2%)',
101
+ 600: 'hsl(32,94.6%,43.7%)',
102
+ 700: 'hsl(26,90.5%,37.1%)',
103
+ 800: 'hsl(23,82.5%,31.4%)',
104
+ 900: 'hsl(22,77.8%,26.5%)',
105
+ },
106
+ red: {
107
+ 50: 'hsl(0,85.7%,97.3%)',
108
+ 100: 'hsl(0,93.3%,94.1%)',
109
+ 200: 'hsl(0,96.3%,89.4%)',
110
+ 300: 'hsl(0,93.5%,81.8%)',
111
+ 400: 'hsl(0,90.6%,70.8%)',
112
+ 500: 'hsl(0,84.2%,60.2%)',
113
+ 600: 'hsl(0,72.2%,50.6%)',
114
+ 700: 'hsl(0,73.7%,41.8%)',
115
+ 800: 'hsl(0,70%,35.3%)',
116
+ 900: 'hsl(0,62.8%,30.6%)',
117
+ },
118
+ green: {
119
+ 50: 'hsl(152,81%,95.9%)',
120
+ 100: 'hsl(149,80.4%,90%)',
121
+ 200: 'hsl(152,76%,80.4%)',
122
+ 300: 'hsl(156,71.6%,66.9%)',
123
+ 400: 'hsl(158,64.4%,51.6%)',
124
+ 500: 'hsl(160,84.1%,39.4%)',
125
+ 600: 'hsl(161,93.5%,30.4%)',
126
+ 700: 'hsl(163,93.5%,24.3%)',
127
+ 800: 'hsl(163,88.1%,19.8%)',
128
+ 900: 'hsl(164,85.7%,16.5%)',
129
+ },
130
+ primary: 'hsl(217,91.2%,59.8%)',
131
+ },
132
+ space: spaceScale,
133
+ fontSize: fontSizeScale,
134
+ shadow: shadows,
135
+ transition: transitions,
136
+ rounded: borderRadiusScale,
137
+ });
138
+
139
+ globalStyle("*", {
140
+ boxSizing: 'border-box',
141
+ });
142
+
143
+ globalStyle("html, body", {
144
+ fontFamily: fonts.INTER.name,
145
+ });
146
+
147
+ globalStyle("strong, h1, h2, h3, h4, h5, h6", {
148
+ fontVariationSettings: `"wght" ${fonts.INTER.wghts[500]}`,
149
+ });
@@ -0,0 +1,91 @@
1
+ import type { FontMetrics } from "@capsizecss/core";
2
+ import interFontMetrics from "@capsizecss/metrics/inter";
3
+ import { createTextStyle } from "@capsizecss/vanilla-extract";
4
+ import { style } from "@vanilla-extract/css";
5
+
6
+ interface Meta {
7
+ fallback: string;
8
+ file: string;
9
+ format: string;
10
+ metrics: FontMetrics;
11
+ name: string;
12
+ wghtRange: string;
13
+ wghts: {
14
+ [key: string]: number;
15
+ };
16
+ }
17
+
18
+ type FontFamilyId = "INTER";
19
+
20
+ type Fonts = Record<FontFamilyId, Meta>;
21
+
22
+ const FONT_DIR = `/fonts`;
23
+
24
+ export const fonts: Fonts = {
25
+ INTER: {
26
+ fallback: `sans-serif`,
27
+ file: ``,
28
+ format: `truetype-variations`,
29
+ metrics: interFontMetrics,
30
+ name: `Inter`,
31
+ wghtRange: `100 900`,
32
+ wghts: {
33
+ "400": 400,
34
+ "500": 500,
35
+ "600": 600,
36
+ "700": 700,
37
+ },
38
+ },
39
+ };
40
+
41
+ // https://type-scale.com
42
+ // Major Third
43
+ // base: 16
44
+ const typeScale = {
45
+ s: 12.8,
46
+ m: 16,
47
+ l: 20,
48
+ xl: 25,
49
+ };
50
+
51
+ interface Props {
52
+ id: FontFamilyId;
53
+ leading: number;
54
+ size: number;
55
+ }
56
+
57
+ function calcFontCss({ id, leading, size }: Props) {
58
+ return style([
59
+ createTextStyle({
60
+ fontMetrics: fonts[id].metrics,
61
+ fontSize: size,
62
+ leading,
63
+ }),
64
+ {
65
+ fontFamily: `"${fonts[id].name}", ${fonts[id].fallback}`,
66
+ },
67
+ ]);
68
+ }
69
+
70
+ export const fontStyles = {
71
+ INTER_SMALL: calcFontCss({
72
+ id: "INTER",
73
+ leading: 16.5,
74
+ size: typeScale.s,
75
+ }),
76
+ INTER_MED: calcFontCss({
77
+ id: "INTER",
78
+ leading: 21,
79
+ size: typeScale.m,
80
+ }),
81
+ INTER_LARGE: calcFontCss({
82
+ id: "INTER",
83
+ leading: 25,
84
+ size: typeScale.l,
85
+ }),
86
+ INTER_XLARGE: calcFontCss({
87
+ id: "INTER",
88
+ leading: 32,
89
+ size: typeScale.xl,
90
+ }),
91
+ };
@@ -1,3 +1,5 @@
1
1
  export type Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
2
2
 
3
3
  export type Color = 'white' | 'black' | 'blue' | 'green' | 'red' | 'yellow' | 'gray';
4
+
5
+ export type Variant = 'default' | 'tertiary' | 'primary' | 'success' | 'warning' | 'error';
@@ -1 +0,0 @@
1
- export { default as MBreadcrumbItem } from './MBreadcrumbItem.vue';
@@ -1,69 +0,0 @@
1
- .m-avatar {
2
- --avatar-height: 40px;
3
- --avatar-width: 40px;
4
- --avatar-font-size: 13px;
5
- --avatar-border-radius: 4px;
6
- width: var(--avatar-width);
7
- height: var(--avatar-height);
8
- font-size: var(--avatar-font-size);
9
- position: relative;
10
- display: inline-flex;
11
- background-color: var(--gray-200);
12
- color: var(--gray-400);
13
- overflow: hidden;
14
- white-space: nowrap;
15
- vertical-align: middle;
16
- justify-content: center;
17
- align-items: center;
18
- box-sizing: content-box;
19
- border-radius: var(--avatar-border-radius);
20
- font-weight: 600;
21
- user-select: none;
22
- }
23
-
24
- .m-avatar img {
25
- width: 100%;
26
- height: 100%;
27
- }
28
-
29
- .m-avatar--circle {
30
- --avatar-border-radius: 50%;
31
- }
32
-
33
- .m-avatar--rounded {
34
- --avatar-border-radius: 4px;
35
- }
36
-
37
- .m-avatar--square {
38
- --avatar-border-radius: 0;
39
- }
40
-
41
- .m-avatar--xs {
42
- --avatar-height: 24px;
43
- --avatar-width: 24px;
44
- --avatar-font-size: 11px;
45
- }
46
-
47
- .m-avatar--sm {
48
- --avatar-height: 32px;
49
- --avatar-width: 32px;
50
- --avatar-font-size: 12px;
51
- }
52
-
53
- .m-avatar--md {
54
- --avatar-height: 40px;
55
- --avatar-width: 40px;
56
- --avatar-font-size: 13px;
57
- }
58
-
59
- .m-avatar--lg {
60
- --avatar-height: 48px;
61
- --avatar-width: 48px;
62
- --avatar-font-size: 16px;
63
- }
64
-
65
- .m-avatar--xl {
66
- --avatar-height: 56px;
67
- --avatar-width: 56px;
68
- --avatar-font-size: 17px;
69
- }
@@ -1,66 +0,0 @@
1
- <template>
2
- <li class="m-breadcrumbs__item">
3
- <a tabindex="0" @click="handleClick" class="m-breadcrumbs__link">
4
- <slot>{{ label }}</slot>
5
- </a>
6
- <span class="m-breadcrumbs__item-separator" role="separator">
7
- {{ separator }}
8
- </span>
9
- </li>
10
- </template>
11
-
12
- <script lang="ts">
13
- import {
14
- defineComponent, ref, reactive, watch, inject, onBeforeUnmount
15
- } from "vue";
16
-
17
- interface BreadcrumbItemState {
18
- label: string | number;
19
- }
20
-
21
- export default defineComponent({
22
- name: 'BreadcrumbItem',
23
- props: {
24
- label: {
25
- type: [String, Number],
26
- default: null
27
- }
28
- },
29
- setup(props) {
30
- const breadcrumbState = inject("breadcrumb");
31
-
32
- const label = ref(props.label);
33
- const separator = ref("/");
34
-
35
- watch(
36
- () => props.label,
37
- value => {
38
- label.value = value;
39
- // @ts-ignore
40
- breadcrumbState?.refreshItems()
41
- }
42
- )
43
-
44
- if (breadcrumbState) {
45
- const state: BreadcrumbItemState = reactive({
46
- label: label
47
- })
48
-
49
- // @ts-ignore
50
- watch(() => breadcrumbState.separator, value => separator.value = value, { immediate: true });
51
-
52
- onBeforeUnmount(() => { });
53
- }
54
-
55
- const handleClick = () => { };
56
-
57
- return {
58
- label,
59
- separator,
60
-
61
- handleClick
62
- }
63
- }
64
- })
65
- </script>
66
-
@@ -1 +0,0 @@
1
- export { default as MBreadcrumbItem } from './MBreadcrumbItem.vue';
@@ -1,8 +0,0 @@
1
- <template>
2
- <MButton secondary>Default</MButton><br/><br/>
3
- <MButton color="gray" secondary>Gray</MButton><br/><br/>
4
- <MButton color="blue" secondary>Blue</MButton><br/><br/>
5
- <MButton color="green" secondary>Green</MButton><br/><br/>
6
- <MButton color="red" secondary>Red</MButton><br/><br/>
7
- <MButton color="yellow" secondary>Yellow</MButton><br/><br/>
8
- </template>
@@ -1,8 +0,0 @@
1
- <template>
2
- <MButton>Default</MButton><br/><br/>
3
- <MButton color="gray">Gray</MButton><br/><br/>
4
- <MButton color="blue">Blue</MButton><br/><br/>
5
- <MButton color="green">Green</MButton><br/><br/>
6
- <MButton color="red">Red</MButton><br/><br/>
7
- <MButton color="yellow">Yellow</MButton><br/><br/>
8
- </template>