@timus-networks/theme 2.0.1 → 2.0.2

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 (193) hide show
  1. package/README.md +34 -49
  2. package/dist/module.d.mts +1 -1
  3. package/dist/module.d.ts +1 -1
  4. package/dist/module.json +2 -2
  5. package/dist/module.mjs +40 -18
  6. package/dist/runtime/components/development/example.alert.vue +29 -0
  7. package/dist/runtime/components/development/example.avatar.vue +85 -0
  8. package/dist/runtime/components/development/example.badge.vue +93 -0
  9. package/dist/runtime/components/development/example.breadcrumb.vue +54 -0
  10. package/dist/runtime/components/development/example.button.vue +235 -0
  11. package/dist/runtime/components/{example.button.vue.d.ts → development/example.button.vue.d.ts} +2 -1
  12. package/dist/runtime/components/development/example.card.vue +68 -0
  13. package/dist/runtime/components/development/example.checkbox.vue +176 -0
  14. package/dist/runtime/components/{example.checkbox.vue.d.ts → development/example.checkbox.vue.d.ts} +2 -2
  15. package/dist/runtime/components/development/example.collapse.vue +38 -0
  16. package/dist/runtime/components/development/example.datepicker.vue +193 -0
  17. package/dist/runtime/components/development/example.description.vue +94 -0
  18. package/dist/runtime/components/{example.dialog.vue → development/example.dialog.vue} +21 -24
  19. package/dist/runtime/components/development/example.dropdown.vue +166 -0
  20. package/dist/runtime/components/development/example.form.vue +488 -0
  21. package/dist/runtime/components/development/example.input.vue +270 -0
  22. package/dist/runtime/components/development/example.input.vue.d.ts +23 -0
  23. package/dist/runtime/components/development/example.link.vue +68 -0
  24. package/dist/runtime/components/development/example.message.vue +64 -0
  25. package/dist/runtime/components/development/example.notification.vue +75 -0
  26. package/dist/runtime/components/development/example.number.vue +70 -0
  27. package/dist/runtime/components/development/example.pagination.vue +89 -0
  28. package/dist/runtime/components/development/example.popover.vue +151 -0
  29. package/dist/runtime/components/development/example.radio.vue +163 -0
  30. package/dist/runtime/components/{example.radio.vue.d.ts → development/example.radio.vue.d.ts} +3 -2
  31. package/dist/runtime/components/development/example.select.vue +588 -0
  32. package/dist/runtime/components/{example.select.vue.d.ts → development/example.select.vue.d.ts} +3 -2
  33. package/dist/runtime/components/development/example.sidebar.vue +101 -0
  34. package/dist/runtime/components/development/example.static.vue +50 -0
  35. package/dist/runtime/components/development/example.switch.vue +101 -0
  36. package/dist/runtime/components/{example.table.vue → development/example.table.vue} +8 -22
  37. package/dist/runtime/components/development/example.tag.vue +255 -0
  38. package/dist/runtime/components/development/example.timepicker.vue +89 -0
  39. package/dist/runtime/components/development/example.tooltip.vue +104 -0
  40. package/dist/runtime/components/development/example.upload.vue +84 -0
  41. package/dist/runtime/components/production/html-encode.vue +96 -0
  42. package/dist/runtime/components/production/timus-breadcrumb.d.ts +36 -0
  43. package/dist/runtime/components/production/timus-breadcrumb.js +224 -0
  44. package/dist/runtime/components/production/timus-breadcrumb.mjs +224 -0
  45. package/dist/runtime/components/production/timus-breadcrumb.vue +83 -0
  46. package/dist/runtime/components/production/timus-breadcrumb.vue.d.ts +340 -0
  47. package/dist/runtime/composables/useBreadcrumb.d.ts +8 -0
  48. package/dist/runtime/composables/useBreadcrumb.js +53 -0
  49. package/dist/runtime/composables/useBreadcrumb.mjs +53 -0
  50. package/dist/runtime/pages/theme.vue +44 -13
  51. package/dist/runtime/plugins/disable-warnings-plugin.js +18 -0
  52. package/dist/runtime/plugins/disable-warnings-plugin.mjs +18 -0
  53. package/dist/runtime/public/scss/element-plus/affix.css +28 -0
  54. package/dist/runtime/public/scss/element-plus/alert.css +116 -20
  55. package/dist/runtime/public/scss/element-plus/anchor-link.css +28 -0
  56. package/dist/runtime/public/scss/element-plus/anchor.css +28 -0
  57. package/dist/runtime/public/scss/element-plus/aside.css +28 -0
  58. package/dist/runtime/public/scss/element-plus/autocomplete.css +28 -0
  59. package/dist/runtime/public/scss/element-plus/avatar.css +60 -10
  60. package/dist/runtime/public/scss/element-plus/backtop.css +28 -0
  61. package/dist/runtime/public/scss/element-plus/badge.css +30 -2
  62. package/dist/runtime/public/scss/element-plus/base.css +31 -3
  63. package/dist/runtime/public/scss/element-plus/breadcrumb.css +46 -6
  64. package/dist/runtime/public/scss/element-plus/button-group.css +154 -32
  65. package/dist/runtime/public/scss/element-plus/button.css +70 -24
  66. package/dist/runtime/public/scss/element-plus/calendar.css +28 -0
  67. package/dist/runtime/public/scss/element-plus/card.css +41 -6
  68. package/dist/runtime/public/scss/element-plus/carousel-item.css +28 -0
  69. package/dist/runtime/public/scss/element-plus/carousel.css +28 -0
  70. package/dist/runtime/public/scss/element-plus/cascader-panel.css +28 -0
  71. package/dist/runtime/public/scss/element-plus/cascader.css +28 -0
  72. package/dist/runtime/public/scss/element-plus/check-tag.css +28 -0
  73. package/dist/runtime/public/scss/element-plus/checkbox-button.css +33 -0
  74. package/dist/runtime/public/scss/element-plus/checkbox-group.css +28 -0
  75. package/dist/runtime/public/scss/element-plus/checkbox.css +28 -0
  76. package/dist/runtime/public/scss/element-plus/col.css +28 -0
  77. package/dist/runtime/public/scss/element-plus/collapse.css +28 -0
  78. package/dist/runtime/public/scss/element-plus/color-picker.css +28 -0
  79. package/dist/runtime/public/scss/element-plus/common/popup.css +28 -0
  80. package/dist/runtime/public/scss/element-plus/common/transition.css +28 -0
  81. package/dist/runtime/public/scss/element-plus/common/var.css +28 -0
  82. package/dist/runtime/public/scss/element-plus/container.css +28 -0
  83. package/dist/runtime/public/scss/element-plus/dark/css-vars.css +28 -0
  84. package/dist/runtime/public/scss/element-plus/dark/var.css +28 -0
  85. package/dist/runtime/public/scss/element-plus/date-picker/date-picker.css +76 -14
  86. package/dist/runtime/public/scss/element-plus/date-picker/date-range-picker.css +41 -9
  87. package/dist/runtime/public/scss/element-plus/date-picker/date-table.css +31 -3
  88. package/dist/runtime/public/scss/element-plus/date-picker/month-table.css +28 -0
  89. package/dist/runtime/public/scss/element-plus/date-picker/picker-panel.css +69 -6
  90. package/dist/runtime/public/scss/element-plus/date-picker/picker.css +28 -0
  91. package/dist/runtime/public/scss/element-plus/date-picker/time-picker.css +56 -16
  92. package/dist/runtime/public/scss/element-plus/date-picker/time-range-picker.css +39 -4
  93. package/dist/runtime/public/scss/element-plus/date-picker/time-spinner.css +31 -4
  94. package/dist/runtime/public/scss/element-plus/date-picker/year-table.css +28 -0
  95. package/dist/runtime/public/scss/element-plus/date-picker.css +134 -50
  96. package/dist/runtime/public/scss/element-plus/descriptions-item.css +48 -8
  97. package/dist/runtime/public/scss/element-plus/descriptions.css +78 -16
  98. package/dist/runtime/public/scss/element-plus/dialog.css +30 -2
  99. package/dist/runtime/public/scss/element-plus/display.css +28 -0
  100. package/dist/runtime/public/scss/element-plus/divider.css +28 -0
  101. package/dist/runtime/public/scss/element-plus/drawer.css +28 -0
  102. package/dist/runtime/public/scss/element-plus/dropdown.css +43 -12
  103. package/dist/runtime/public/scss/element-plus/empty.css +28 -0
  104. package/dist/runtime/public/scss/element-plus/footer.css +28 -0
  105. package/dist/runtime/public/scss/element-plus/form.css +28 -0
  106. package/dist/runtime/public/scss/element-plus/header.css +28 -0
  107. package/dist/runtime/public/scss/element-plus/icon.css +30 -2
  108. package/dist/runtime/public/scss/element-plus/image-viewer.css +28 -0
  109. package/dist/runtime/public/scss/element-plus/image.css +28 -0
  110. package/dist/runtime/public/scss/element-plus/index.css +920 -329
  111. package/dist/runtime/public/scss/element-plus/input-number.css +50 -6
  112. package/dist/runtime/public/scss/element-plus/input.css +28 -0
  113. package/dist/runtime/public/scss/element-plus/link.css +59 -28
  114. package/dist/runtime/public/scss/element-plus/loading.css +28 -0
  115. package/dist/runtime/public/scss/element-plus/main.css +28 -0
  116. package/dist/runtime/public/scss/element-plus/mention.css +28 -0
  117. package/dist/runtime/public/scss/element-plus/menu.css +28 -0
  118. package/dist/runtime/public/scss/element-plus/message-box.css +34 -2
  119. package/dist/runtime/public/scss/element-plus/message.css +161 -31
  120. package/dist/runtime/public/scss/element-plus/mixins/mixins.css +28 -0
  121. package/dist/runtime/public/scss/element-plus/notification.css +41 -9
  122. package/dist/runtime/public/scss/element-plus/option-group.css +28 -0
  123. package/dist/runtime/public/scss/element-plus/option.css +29 -0
  124. package/dist/runtime/public/scss/element-plus/overlay.css +28 -0
  125. package/dist/runtime/public/scss/element-plus/page-header.css +28 -0
  126. package/dist/runtime/public/scss/element-plus/pagination.css +64 -11
  127. package/dist/runtime/public/scss/element-plus/popconfirm.css +28 -0
  128. package/dist/runtime/public/scss/element-plus/popover.css +28 -0
  129. package/dist/runtime/public/scss/element-plus/popper.css +29 -1
  130. package/dist/runtime/public/scss/element-plus/progress.css +28 -0
  131. package/dist/runtime/public/scss/element-plus/radio-button.css +36 -2
  132. package/dist/runtime/public/scss/element-plus/radio-group.css +28 -0
  133. package/dist/runtime/public/scss/element-plus/radio.css +28 -0
  134. package/dist/runtime/public/scss/element-plus/rate.css +28 -0
  135. package/dist/runtime/public/scss/element-plus/reset.css +28 -0
  136. package/dist/runtime/public/scss/element-plus/result.css +28 -0
  137. package/dist/runtime/public/scss/element-plus/row.css +28 -0
  138. package/dist/runtime/public/scss/element-plus/scrollbar.css +28 -0
  139. package/dist/runtime/public/scss/element-plus/segmented.css +28 -0
  140. package/dist/runtime/public/scss/element-plus/select-dropdown-v2.css +28 -0
  141. package/dist/runtime/public/scss/element-plus/select-dropdown.css +28 -0
  142. package/dist/runtime/public/scss/element-plus/select-v2.css +48 -23
  143. package/dist/runtime/public/scss/element-plus/select.css +48 -23
  144. package/dist/runtime/public/scss/element-plus/skeleton-item.css +28 -0
  145. package/dist/runtime/public/scss/element-plus/skeleton.css +28 -0
  146. package/dist/runtime/public/scss/element-plus/slider.css +28 -0
  147. package/dist/runtime/public/scss/element-plus/space.css +28 -0
  148. package/dist/runtime/public/scss/element-plus/spinner.css +28 -0
  149. package/dist/runtime/public/scss/element-plus/statistic.css +28 -0
  150. package/dist/runtime/public/scss/element-plus/step.css +28 -0
  151. package/dist/runtime/public/scss/element-plus/steps.css +28 -0
  152. package/dist/runtime/public/scss/element-plus/switch.css +116 -20
  153. package/dist/runtime/public/scss/element-plus/table-column.css +29 -1
  154. package/dist/runtime/public/scss/element-plus/table-v2.css +28 -0
  155. package/dist/runtime/public/scss/element-plus/table.css +28 -0
  156. package/dist/runtime/public/scss/element-plus/tabs.css +30 -2
  157. package/dist/runtime/public/scss/element-plus/tag.css +28 -0
  158. package/dist/runtime/public/scss/element-plus/text.css +34 -0
  159. package/dist/runtime/public/scss/element-plus/time-picker.css +111 -30
  160. package/dist/runtime/public/scss/element-plus/time-select.css +76 -14
  161. package/dist/runtime/public/scss/element-plus/timeline-item.css +28 -0
  162. package/dist/runtime/public/scss/element-plus/timeline.css +28 -0
  163. package/dist/runtime/public/scss/element-plus/tooltip-v2.css +28 -0
  164. package/dist/runtime/public/scss/element-plus/tour.css +30 -2
  165. package/dist/runtime/public/scss/element-plus/transfer.css +28 -0
  166. package/dist/runtime/public/scss/element-plus/tree-select.css +28 -0
  167. package/dist/runtime/public/scss/element-plus/tree.css +28 -0
  168. package/dist/runtime/public/scss/element-plus/upload.css +28 -0
  169. package/dist/runtime/public/scss/element-plus/var.css +29 -1
  170. package/dist/runtime/public/scss/element-plus/virtual-list.css +28 -0
  171. package/dist/runtime/public/scss/theme.css +79 -2
  172. package/dist/runtime/types.d.ts +7 -16
  173. package/package.json +1 -1
  174. package/dist/runtime/components/example.button.vue +0 -237
  175. package/dist/runtime/components/example.checkbox.vue +0 -190
  176. package/dist/runtime/components/example.form.vue +0 -494
  177. package/dist/runtime/components/example.input.vue +0 -286
  178. package/dist/runtime/components/example.input.vue.d.ts +0 -20
  179. package/dist/runtime/components/example.popover.vue +0 -161
  180. package/dist/runtime/components/example.radio.vue +0 -165
  181. package/dist/runtime/components/example.select.vue +0 -591
  182. package/dist/runtime/components/example.sidebar.vue +0 -104
  183. package/dist/runtime/components/example.tag.vue +0 -279
  184. package/dist/runtime/components/html-encode.vue +0 -37
  185. package/dist/runtime/plugins/element-extend-plugin.d.ts +0 -38
  186. package/dist/runtime/plugins/element-extend-plugin.js +0 -39
  187. package/dist/runtime/plugins/element-extend-plugin.mjs +0 -39
  188. package/dist/runtime/plugins/experimental-size-plugin.js +0 -13
  189. package/dist/runtime/plugins/experimental-size-plugin.mjs +0 -13
  190. /package/dist/runtime/plugins/{experimental-size-plugin.d.ts → disable-warnings-plugin.d.ts} +0 -0
  191. /package/dist/runtime/plugins/{theme-provider.d.ts → theme-provider-plugin.d.ts} +0 -0
  192. /package/dist/runtime/plugins/{theme-provider.js → theme-provider-plugin.js} +0 -0
  193. /package/dist/runtime/plugins/{theme-provider.mjs → theme-provider-plugin.mjs} +0 -0
@@ -1,104 +0,0 @@
1
- <template>
2
- <div class="flex flex-col gap-8 mb-16">
3
- <h1 class="">Menu</h1>
4
- <p>Menu that provides navigation for your website.</p>
5
-
6
- <el-card>
7
- <template #header>
8
- <div class="flex flex-col gap-3 items-start">
9
- <h2>Sidebar</h2>
10
- <p>
11
- Vertical <el-text tag="mark">Menu</el-text> with sub-menus. You can use the <el-text tag="mark">el-menu-item-group</el-text> component to create a
12
- <span class="font-medium">menu group</span>, and the name of the group is determined by the title prop or a named slot.
13
- </p>
14
- </div>
15
- </template>
16
- <div class="flex flex-col gap-4 items-start">
17
- {{ currentRoute }}
18
- <el-menu :default-active="currentRoute.path" class="w-[270px]" :router="true" @open="handleOpen" @close="handleClose">
19
- <el-menu-item index="/" class="isax-grid-3">Dashboard</el-menu-item>
20
- <el-menu-item index="/theme" class="isax-designtools">Theme</el-menu-item>
21
- <el-menu-item index="/users" class="isax-profile-circle">User & Teams</el-menu-item>
22
- <el-menu-item index="/devices" class="isax-monitor-mobbile">Devices</el-menu-item>
23
- <el-menu-item index="/sites" class="isax-driver-2">Sites</el-menu-item>
24
- <el-sub-menu index="1">
25
- <template #title><i class="isax-key-square" /><span>Rules</span></template>
26
- <el-menu-item index="/rules/firewall">Firewall</el-menu-item>
27
- <el-menu-item index="/rules/routes">Routes</el-menu-item>
28
- <el-menu-item index="/rules/forwarding">Forwarding</el-menu-item>
29
- <el-menu-item index="/rules/acls">Access Control List</el-menu-item>
30
- </el-sub-menu>
31
- <el-sub-menu index="2">
32
- <template #title><i class="isax-shield" /><span>Zero Trust Security</span></template>
33
- <el-menu-item index="/ztna/dashboard">Dashboard</el-menu-item>
34
- <el-menu-item index="/ztna/behavior-detection">Behaviors</el-menu-item>
35
- <el-menu-item index="/ztna/device-posture-check">Device Posture Checks</el-menu-item>
36
- <el-menu-item index="/ztna/behavior-detection">User Sign-In Policies</el-menu-item>
37
- <el-menu-item index="/ztna/behavior-detection">Admin Sign-In Policies</el-menu-item>
38
- </el-sub-menu>
39
- <el-sub-menu index="3">
40
- <template #title><i class="isax-folder-open" /><span>Insights</span></template>
41
- <el-menu-item index="/insights/alerts">Alerts</el-menu-item>
42
- <el-menu-item index="/ztna/dashboard">Traffic Logs</el-menu-item>
43
- <el-menu-item index="/ztna/dashboard">Events</el-menu-item>
44
- <el-menu-item index="/insights/blocked-ips">Blocked IP Addresses</el-menu-item>
45
- <el-menu-item index="/insights/signed-logs">"Signed Logs"</el-menu-item>
46
- <el-menu-item index="/insights/reports">Automated Reports</el-menu-item>
47
- <el-menu-item index="/insights/tracker">Productivity Reports</el-menu-item>
48
- <el-menu-item index="/insights/dpc-reports">Device Posture Reports</el-menu-item>
49
- </el-sub-menu>
50
-
51
- <el-sub-menu index="4">
52
- <template #title><i class="isax-setting-2" /><span>Settings</span></template>
53
- <el-menu-item index="/settings/captive-portals">Captive Portal</el-menu-item>
54
- <el-menu-item index="/settings/integrations">Integrations</el-menu-item>
55
- <el-menu-item index="/settings/configuration">Configurations</el-menu-item>
56
- <el-menu-item index="/settings/tags">Tags</el-menu-item>
57
- <el-menu-item index="/settings/administrators">Administrators</el-menu-item>
58
- <el-menu-item index="/settings/organization">Organization</el-menu-item>
59
- <el-menu-item index="/settings/downloads">Downloads</el-menu-item>
60
- </el-sub-menu>
61
- </el-menu>
62
- </div>
63
- <template #footer>
64
- <html-encode :tag="snippets.sizes" />
65
- </template>
66
- </el-card>
67
- </div>
68
- </template>
69
-
70
- <script lang="ts" setup>
71
- import { useRoute } from 'nuxt/app';
72
- import { computed } from 'vue';
73
-
74
- const route = useRoute();
75
- const currentRoute = computed(() => ({
76
- path: route.path,
77
- fullPath: route.fullPath,
78
- name: route.name,
79
- params: route.params,
80
- query: route.query,
81
- }));
82
- const handleOpen = (key: string, keyPath: string[]) => {
83
- console.log(key, keyPath);
84
- };
85
- const handleClose = (key: string, keyPath: string[]) => {
86
- console.log(key, keyPath);
87
- };
88
- const snippets = ref({
89
- sizes: `
90
- <el-menu :default-active="currentRoute.path" class="w-[270px]" :router="true" @open="handleOpen" @close="handleClose">
91
- <el-sub-menu index="4">
92
- <template #title><i class="isax-setting-2" /><span>Settings</span></template>
93
- <el-menu-item index="/settings/captive-portals">Captive Portal</el-menu-item>
94
- <el-menu-item index="/settings/integrations">Integrations</el-menu-item>
95
- <el-menu-item index="/settings/configuration">Configurations</el-menu-item>
96
- <el-menu-item index="/settings/tags">Tags</el-menu-item>
97
- <el-menu-item index="/settings/administrators">Administrators</el-menu-item>
98
- <el-menu-item index="/settings/organization">Organization</el-menu-item>
99
- <el-menu-item index="/settings/downloads">Downloads</el-menu-item>
100
- </el-sub-menu>
101
- </el-menu>
102
- `,
103
- });
104
- </script>
@@ -1,279 +0,0 @@
1
- <template>
2
- <div class="flex flex-col gap-8 mb-16">
3
- <h1 class="">Select</h1>
4
- <p>When there are plenty of options, use a drop-down menu to display and select desired ones.</p>
5
-
6
- <el-card>
7
- <template #header>
8
- <div class="flex flex-col gap-3 items-start">
9
- <h2>Types</h2>
10
- <p>
11
- Default size is Large. Input component provides {{ sizes.length }} additional sizes for you to choose among different scenarios. Use attribute size to set additional
12
- sizes <el-text tag="mark">{{ sizes.join(', ') }}</el-text>
13
- </p>
14
- </div>
15
- </template>
16
- <div class="flex gap-2">
17
- <el-tag v-for="(color, key) in colors" :key="key + color" :type="color">{{ color }}</el-tag>
18
- </div>
19
- <template #footer>
20
- <code class="flex flex-col gap-3 items-start">
21
- <html-encode :tag="snippets.types" />
22
- </code>
23
- </template>
24
- </el-card>
25
-
26
- <el-card>
27
- <template #header>
28
- <div class="flex flex-col gap-3 items-start">
29
- <h2>Sizes</h2>
30
- <p>
31
- Default size is Large. Input component provides {{ sizes.length }} additional sizes for you to choose among different scenarios. Use attribute size to set additional
32
- sizes <el-text tag="mark">{{ sizes.join(', ') }}</el-text>
33
- </p>
34
- </div>
35
- </template>
36
- <div class="flex gap-2">
37
- <el-tag v-for="(size, key) in sizes" :key="key + size" :size="size">{{ size }}</el-tag>
38
- </div>
39
- <template #footer>
40
- <code class="flex flex-col gap-3 items-start">
41
- <html-encode :tag="snippets.sizes" />
42
- </code>
43
- </template>
44
- </el-card>
45
-
46
- <el-card>
47
- <template #header>
48
- <div class="flex flex-col gap-3 items-start">
49
- <h2>Removable Tag</h2>
50
- <p>
51
- <el-text tag="mark">closable</el-text> attribute can be used to define a removable tag. It accepts a Boolean. By default the removal of Tag has a fading animation. If
52
- you don't want to use it, you can set the <el-text tag="mark">disable-transitions</el-text> attribute, which accepts a Boolean, to true. close event triggers when Tag
53
- is removed.
54
- </p>
55
- </div>
56
- </template>
57
- <div class="flex gap-2">
58
- <el-tag v-for="tag in tags" :key="tag.name" closable :type="tag.type">
59
- {{ tag.name }}
60
- </el-tag>
61
- </div>
62
- <template #footer>
63
- <code class="flex flex-col gap-3 items-start">
64
- <html-encode :tag="snippets.closable" />
65
- </code>
66
- </template>
67
- </el-card>
68
-
69
- <el-card>
70
- <template #header>
71
- <div class="flex flex-col gap-3 items-start">
72
- <h2>Edit Dynamically</h2>
73
- <p>You can use the <el-text tag="mark">close</el-text> event to add and remove tag dynamically.</p>
74
- </div>
75
- </template>
76
- <div class="flex gap-2">
77
- <el-tag v-for="tag in dynamicTags" :key="tag" closable :disable-transitions="false" @close="handleClose(tag)">
78
- {{ tag }}
79
- </el-tag>
80
- <el-input v-if="inputVisible" ref="InputRef" v-model="inputValue" class="!w-20" size="mini" @keyup.enter="handleInputConfirm" @blur="handleInputConfirm" />
81
- <el-button v-else class="button-new-tag" size="mini" @click="showInput"> + New Tag </el-button>
82
- </div>
83
- <template #footer> <html-encode :tag="snippets.dynamic" /> </template>
84
- </el-card>
85
-
86
- <el-card>
87
- <template #header>
88
- <div class="flex flex-col gap-3 items-start">
89
- <h2>Theme</h2>
90
- <p>Tag provide three different themes: dark、light and plain Using effect to change, default is light</p>
91
- </div>
92
- </template>
93
- <div class="flex flex-col gap-2">
94
- <div class="flex gap-2">
95
- <span>Dark</span>
96
- <el-tag v-for="item in items" :key="item.label" :type="item.type" effect="dark">
97
- {{ item.label }}
98
- </el-tag>
99
- </div>
100
- <div class="flex gap-2 mt-4">
101
- <span>Light</span>
102
- <el-tag v-for="item in items" :key="item.label" :type="item.type" effect="light">
103
- {{ item.label }}
104
- </el-tag>
105
- </div>
106
- <div class="flex gap-2 mt-4">
107
- <span>Plain</span>
108
- <el-tag v-for="item in items" :key="item.label" :type="item.type" effect="plain">
109
- {{ item.label }}
110
- </el-tag>
111
- </div>
112
- </div>
113
- <template #footer> <html-encode :tag="snippets.theme" /> </template>
114
- </el-card>
115
-
116
- <el-card>
117
- <template #header>
118
- <div class="flex flex-col gap-3 items-start">
119
- <h2>Rounded</h2>
120
- <p>Tag can also be rounded like button.</p>
121
- </div>
122
- </template>
123
- <div class="flex flex-col gap-2">
124
- <div class="flex gap-2">
125
- <el-tag v-for="item in items" :key="item.label" :type="item.type" effect="dark" round>
126
- {{ item.label }}
127
- </el-tag>
128
- </div>
129
- <div class="flex gap-2 mt-4">
130
- <el-tag v-for="item in items" :key="item.label" :type="item.type" effect="light" round>
131
- {{ item.label }}
132
- </el-tag>
133
- </div>
134
- <div class="flex gap-2 mt-4">
135
- <el-tag v-for="item in items" :key="item.label" :type="item.type" effect="plain" round>
136
- {{ item.label }}
137
- </el-tag>
138
- </div>
139
- </div>
140
- <template #footer> <html-encode :tag="snippets.rounded" /> </template>
141
- </el-card>
142
-
143
- <el-card>
144
- <template #header>
145
- <div class="flex flex-col gap-3 items-start">
146
- <h2>Checkable Tag</h2>
147
- <p>
148
- Sometimes because of the business needs, we might need checkbox like tag, but button like checkbox cannot meet our needs, here comes
149
- <el-text tag="mark">check-tag</el-text>. You can use type prop in 2.5.4. basic check-tag usage, the API is rather simple.
150
- </p>
151
- </div>
152
- </template>
153
- <div class="flex gap-2">
154
- <div class="flex gap-2">
155
- <el-check-tag checked>Checked</el-check-tag>
156
- <el-check-tag :checked="checked" @change="onChange">Toggle me</el-check-tag>
157
- </div>
158
- <el-check-tag :checked="checked1" type="primary" @change="onChange1"> Tag 1 </el-check-tag>
159
- <el-check-tag :checked="checked2" type="success" @change="onChange2"> Tag 2 </el-check-tag>
160
- <el-check-tag :checked="checked3" type="info" @change="onChange3"> Tag 3 </el-check-tag>
161
- <el-check-tag :checked="checked4" type="warning" @change="onChange4"> Tag 4 </el-check-tag>
162
- <el-check-tag :checked="checked5" type="danger" @change="onChange5"> Tag 5 </el-check-tag>
163
- </div>
164
- <template #footer> <html-encode :tag="snippets.checked" /> </template>
165
- </el-card>
166
- </div>
167
- </template>
168
-
169
- <script lang="ts" setup>
170
- import type { InputInstance } from '@timus-networks/element-plus';
171
- import type { TagProps } from '@timus-networks/element-plus';
172
- import { ElInput } from '@timus-networks/element-plus';
173
- import { nextTick, ref } from 'vue';
174
-
175
- interface TagsItem {
176
- name: string;
177
- type: TagProps['type'];
178
- }
179
-
180
- type Item = { type: TagProps['type']; label: string };
181
-
182
- const checked = ref(false);
183
- const checked1 = ref(true);
184
- const checked2 = ref(true);
185
- const checked3 = ref(true);
186
- const checked4 = ref(true);
187
- const checked5 = ref(true);
188
- const onChange = (status: boolean) => {
189
- checked.value = status;
190
- };
191
- const onChange1 = (status: boolean) => {
192
- checked1.value = status;
193
- };
194
- const onChange2 = (status: boolean) => {
195
- checked2.value = status;
196
- };
197
- const onChange3 = (status: boolean) => {
198
- checked3.value = status;
199
- };
200
- const onChange4 = (status: boolean) => {
201
- checked4.value = status;
202
- };
203
- const onChange5 = (status: boolean) => {
204
- checked5.value = status;
205
- };
206
- const items = ref<Array<Item>>([
207
- { type: 'primary', label: 'Tag 1' },
208
- { type: 'secondary', label: 'Tag 2' },
209
- { type: 'neutral', label: 'Tag 2' },
210
- { type: 'success', label: 'Tag 2' },
211
- { type: 'info', label: 'Tag 3' },
212
- { type: 'warning', label: 'Tag 4' },
213
- { type: 'danger', label: 'Tag 5' },
214
- ]);
215
- const tags = ref<TagsItem[]>([
216
- { name: 'Tag 1', type: 'primary' },
217
- { name: 'Tag 1', type: 'secondary' },
218
- { name: 'Tag 1', type: 'neutral' },
219
- { name: 'Tag 2', type: 'success' },
220
- { name: 'Tag 3', type: 'info' },
221
- { name: 'Tag 4', type: 'warning' },
222
- { name: 'Tag 5', type: 'danger' },
223
- ]);
224
- const inputValue = ref('');
225
- const dynamicTags = ref(['Tag 1', 'Tag 2', 'Tag 3']);
226
- const inputVisible = ref(false);
227
- const InputRef = ref<InputInstance>();
228
- const handleClose = (tag: string) => {
229
- dynamicTags.value.splice(dynamicTags.value.indexOf(tag), 1);
230
- };
231
- const showInput = () => {
232
- inputVisible.value = true;
233
- nextTick(() => {
234
- InputRef.value!.input!.focus();
235
- });
236
- };
237
- const handleInputConfirm = () => {
238
- if (inputValue.value) {
239
- dynamicTags.value.push(inputValue.value);
240
- }
241
- inputVisible.value = false;
242
- inputValue.value = '';
243
- };
244
- </script>
245
-
246
- <script lang="ts">
247
- import { defineComponent } from 'vue';
248
-
249
- export default defineComponent({
250
- name: 'TimusTag',
251
- data() {
252
- return {
253
- sizes: ['default', 'large', 'medium', 'small', 'mini'],
254
- colors: ['primary', 'secondary', 'neutral', 'success', 'warning', 'info', 'danger'],
255
- value: '',
256
- snippets: {
257
- types: `<el-tag type="success">tag</el-tag>`,
258
- sizes: `<el-tag size="large">tag</el-tag>`,
259
- closable: `<el-tag size="large" type="success" closable>tag</el-tag>`,
260
- dynamic: `<el-tag closable :disable-transitions="false" @close="handleClose(tag)"> tag </el-tag>`,
261
- theme: `
262
- <el-tag effect="dark"> tag </el-tag>
263
- <el-tag effect="light"> tag </el-tag>
264
- <el-tag effect="plain"> tag </el-tag>
265
- `,
266
- rounded: `<el-tag round>tag</el-tag>`,
267
- checked: `<el-check-tag :checked="checked1" type="primary" @change="onChange1"> Tag 1 </el-check-tag>`,
268
- },
269
- };
270
- },
271
- methods: {
272
- capitalize(value: string): string {
273
- const text = String(value);
274
-
275
- return text.charAt(0).toUpperCase() + text.slice(1);
276
- },
277
- },
278
- });
279
- </script>
@@ -1,37 +0,0 @@
1
- <template>
2
- <div class="code-container">
3
- <pre><code>{{ formattedText }}</code></pre>
4
- </div>
5
- </template>
6
-
7
- <script setup lang="ts">
8
- import { computed } from 'vue';
9
-
10
- const props = defineProps<{ tag: string }>();
11
- const htmlEncode = (str: string) => str.replace(/\\/g, '\\').replace(/^\s+/gm, '');
12
- const formattedText = computed(() => htmlEncode(props.tag));
13
- </script>
14
-
15
- <style scoped>
16
- .code-container {
17
- align-items: flex-start;
18
- background-color: #5e5877;
19
- border: 2px solid #534e6a;
20
- border-radius: 4px;
21
- color: var(--el-color-neutral-light-1);
22
- display: inline-flex;
23
- overflow-x: auto;
24
- padding: 8px;
25
- }
26
-
27
- pre {
28
- margin: 0;
29
- }
30
-
31
- code {
32
- display: block;
33
- font-size: 10px;
34
- padding-left: 0;
35
- padding-right: 0;
36
- }
37
- </style>
@@ -1,38 +0,0 @@
1
- /**
2
- * Bu plugin ElementPlus'a yeni size'lar eklemeye yarar.
3
- * Halihazırda 3 adet size mevcut (default | large | small). Bunu genişletmek için
4
- * aşağıdaki plugin'i yazdım.
5
- *
6
- * nuxt.config.ts'in `theme` options'ından aldığı değerleri RuntimeConfig'e yazdırıyorum modül üzerinden.
7
- * Sonra da burada RuntrimeConfiguration'dan yakalayıp ElementPlus'a entegre ediyorum.
8
- * Normalde `componentSizes` ve `componentSizeMap` readonly olduğu için değiştirilemiyor.
9
- * Fakat bu bizim Objelerin ya da Arrayların içine yenileri eklememize engel değil.
10
- *
11
- * Diğer bir yöntem de aşağıda açıklama içinde yer alıyor.
12
- * Bu yöntem ile de ElementPlus'ın componentlerinin içinde tanımlanan `size` attribute'unun tanımlarken kullanılan
13
- * validation methodunu güncelleyor. Validation içerisinde ihtiyaç duyulan size listesini kendi listesine göre validate
14
- * ettiği için sorun kalkıyor.
15
- *
16
- * Bu validation için şuraya bakabilirsin: `node_modules/element-plus/es/components/button/src/button.vue.d.ts`
17
- */
18
- declare const _default: import("#app").Plugin<Record<string, unknown>> & import("#app").ObjectPlugin<Record<string, unknown>>;
19
- export default _default;
20
- /**
21
- * Aşağıdaki ile de belirli bileşenlerin validation'larını değiştirebilirsin
22
- *
23
- * import { ElButton, ElInput, ElSelect } from 'element-plus';
24
- * import { defineNuxtPlugin } from '#app';
25
- *
26
- * export default defineNuxtPlugin((_nuxtApp) => {
27
- * const newSizes = ['', 'default', 'large', 'medium', 'small', 'mini'];
28
- * const components = [ElButton, ElInput, ElSelect];
29
- * const extendComponentSize = (component: any) => {
30
- * if (component.props && component.props.size) {
31
- * const originalValidator = component.props.size.validator as (value: string) => boolean;
32
- * component.props.size.validator = (value: string) => newSizes.includes(value) || (originalValidator ? originalValidator(value) : false);
33
- * }
34
- * };
35
- *
36
- * components.forEach(extendComponentSize);
37
- * });
38
- */
@@ -1,39 +0,0 @@
1
- import { buttonTypes, componentSizeMap, componentSizes, ElButton, ElTag } from "@timus-networks/element-plus";
2
- import { defineNuxtPlugin } from "#app";
3
- export default defineNuxtPlugin((_nuxtApp) => {
4
- const runtimeConfig = useRuntimeConfig();
5
- const { sizes, types } = runtimeConfig.public.theme;
6
- generateSizes(sizes);
7
- generateTypes(types);
8
- });
9
- const generateSizes = (sizes) => {
10
- if (sizes && Object.keys(sizes).length > 0) {
11
- Object.entries(sizes).forEach(([size, value]) => {
12
- if (typeof value === "number") {
13
- componentSizeMap[size] = value;
14
- } else {
15
- console.warn(`Invalid value for size ${size}: ${value}. Expected a number.`);
16
- }
17
- });
18
- Object.keys(sizes).forEach((size) => {
19
- if (!componentSizes.includes(size)) {
20
- componentSizes.push(size);
21
- }
22
- });
23
- }
24
- };
25
- const generateTypes = (types = ["primary", "secondary", "neutral", "success", "warning", "info", "danger", "default"]) => {
26
- types.forEach((type) => {
27
- if (!buttonTypes.includes(type)) {
28
- buttonTypes.push(type);
29
- }
30
- });
31
- const components = [ElButton, ElTag];
32
- const extendComponentType = (component) => {
33
- if (component.props?.type) {
34
- const originalValidator = component.props.type.validator;
35
- component.props.type.validator = (value) => buttonTypes.includes(value) || (originalValidator ? originalValidator(value) : false);
36
- }
37
- };
38
- components.forEach(extendComponentType);
39
- };
@@ -1,39 +0,0 @@
1
- import { buttonTypes, componentSizeMap, componentSizes, ElButton, ElTag } from "@timus-networks/element-plus";
2
- import { defineNuxtPlugin } from "#app";
3
- export default defineNuxtPlugin((_nuxtApp) => {
4
- const runtimeConfig = useRuntimeConfig();
5
- const { sizes, types } = runtimeConfig.public.theme;
6
- generateSizes(sizes);
7
- generateTypes(types);
8
- });
9
- const generateSizes = (sizes) => {
10
- if (sizes && Object.keys(sizes).length > 0) {
11
- Object.entries(sizes).forEach(([size, value]) => {
12
- if (typeof value === "number") {
13
- componentSizeMap[size] = value;
14
- } else {
15
- console.warn(`Invalid value for size ${size}: ${value}. Expected a number.`);
16
- }
17
- });
18
- Object.keys(sizes).forEach((size) => {
19
- if (!componentSizes.includes(size)) {
20
- componentSizes.push(size);
21
- }
22
- });
23
- }
24
- };
25
- const generateTypes = (types = ["primary", "secondary", "neutral", "success", "warning", "info", "danger", "default"]) => {
26
- types.forEach((type) => {
27
- if (!buttonTypes.includes(type)) {
28
- buttonTypes.push(type);
29
- }
30
- });
31
- const components = [ElButton, ElTag];
32
- const extendComponentType = (component) => {
33
- if (component.props?.type) {
34
- const originalValidator = component.props.type.validator;
35
- component.props.type.validator = (value) => buttonTypes.includes(value) || (originalValidator ? originalValidator(value) : false);
36
- }
37
- };
38
- components.forEach(extendComponentType);
39
- };
@@ -1,13 +0,0 @@
1
- import ElementPlus from "element-plus";
2
- import * as ElementPlusComponents from "element-plus";
3
- import { defineNuxtPlugin } from "#app";
4
- const extendedComponentSizes = ["", "default", "small", "large", "medium", "mini"];
5
- export default defineNuxtPlugin((nuxtApp) => {
6
- console.log("####### ElementP", ElementPlus);
7
- ElementPlusComponents.componentSizeMap = {
8
- large: 40,
9
- default: 32,
10
- small: 24
11
- };
12
- ElementPlusComponents.componentSizes = extendedComponentSizes;
13
- });
@@ -1,13 +0,0 @@
1
- import ElementPlus from "element-plus";
2
- import * as ElementPlusComponents from "element-plus";
3
- import { defineNuxtPlugin } from "#app";
4
- const extendedComponentSizes = ["", "default", "small", "large", "medium", "mini"];
5
- export default defineNuxtPlugin((nuxtApp) => {
6
- console.log("####### ElementP", ElementPlus);
7
- ElementPlusComponents.componentSizeMap = {
8
- large: 40,
9
- default: 32,
10
- small: 24
11
- };
12
- ElementPlusComponents.componentSizes = extendedComponentSizes;
13
- });