@appscode/design-system 1.1.0-alpha.8 → 1.1.0-beta.10

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 (200) hide show
  1. package/base/_video-player.scss +65 -0
  2. package/base/utilities/_all.scss +6 -5
  3. package/base/utilities/_colors.scss +408 -0
  4. package/base/utilities/_customize-bulma.scss +23 -27
  5. package/base/utilities/_extended.scss +9 -4
  6. package/base/utilities/{_default.scss → _global.scss} +185 -331
  7. package/base/utilities/_layouts.scss +157 -0
  8. package/base/utilities/_mixin.scss +11 -11
  9. package/base/utilities/_spacing.scss +96 -0
  10. package/base/utilities/_typography.scss +56 -24
  11. package/base/utilities/dark-theme.scss +1 -1
  12. package/components/_ac-accordion.scss +117 -117
  13. package/components/_ac-alert-box.scss +205 -263
  14. package/components/_ac-calendar.scss +4 -4
  15. package/components/_ac-card.scss +0 -597
  16. package/components/_ac-code-highlight.scss +6 -6
  17. package/components/_ac-content-layout.scss +165 -165
  18. package/components/_ac-drag.scss +11 -11
  19. package/components/_ac-input.scss +477 -452
  20. package/components/_ac-modal.scss +212 -212
  21. package/components/_ac-multi-select.scss +780 -751
  22. package/components/_ac-options.scss +122 -123
  23. package/components/_ac-select-box.scss +5 -5
  24. package/components/_ac-table.scss +503 -502
  25. package/components/_ac-tabs.scss +39 -38
  26. package/components/_ac-tags.scss +116 -116
  27. package/components/_ac-terminal.scss +95 -51
  28. package/components/_add-card.scss +3 -3
  29. package/components/_all.scss +29 -26
  30. package/components/_app-drawer.scss +0 -134
  31. package/components/_breadcumb.scss +0 -71
  32. package/components/_buttons.scss +779 -779
  33. package/components/_card-body-wrapper.scss +5 -5
  34. package/components/_dashboard-header.scss +0 -115
  35. package/components/_direct-deploy.scss +8 -8
  36. package/components/_go-to-top.scss +1 -1
  37. package/components/_image-upload.scss +5 -5
  38. package/components/_left-sidebar-menu.scss +448 -579
  39. package/components/_monaco-editor.scss +1 -1
  40. package/components/_navbar.scss +786 -752
  41. package/components/_nested-list.scss +1 -1
  42. package/components/_overview-info.scss +7 -7
  43. package/components/_overview-page.scss +4 -4
  44. package/components/_pagination.scss +106 -124
  45. package/components/_payment-card.scss +21 -21
  46. package/components/_preloader.scss +1 -1
  47. package/components/_preview-modal.scss +18 -18
  48. package/components/_pricing-table.scss +10 -10
  49. package/components/_progress-bar.scss +12 -12
  50. package/components/_subscription-card.scss +14 -14
  51. package/components/_table-of-content.scss +4 -4
  52. package/components/_tfa.scss +9 -9
  53. package/components/_widget-menu.scss +247 -247
  54. package/components/_wizard.scss +557 -559
  55. package/components/ac-toaster/_ac-toasted.scss +7 -12
  56. package/components/bbum/_activities-header.scss +1 -1
  57. package/components/bbum/_card-team.scss +12 -12
  58. package/components/bbum/_information-center.scss +13 -13
  59. package/components/bbum/_left-sidebar.scss +8 -8
  60. package/components/bbum/_mobile-desktop.scss +7 -7
  61. package/components/bbum/_post.scss +5 -5
  62. package/components/bbum/_sign-up-notification.scss +10 -10
  63. package/components/bbum/_single-post-preview.scss +21 -21
  64. package/components/bbum/_user-profile.scss +10 -10
  65. package/components/ui-builder/_ui-builder.scss +15 -15
  66. package/components/ui-builder/_vue-open-api.scss +515 -2
  67. package/layouts/_code-preview.scss +11 -11
  68. package/main.scss +26 -10
  69. package/package.json +1 -1
  70. package/plugins/theme.js +11 -9
  71. package/plugins/vue-toaster.js +1 -1
  72. package/vue-components/plugins/time-convert.js +49 -0
  73. package/vue-components/text.vue +1 -0
  74. package/vue-components/types/cluster.ts +6 -0
  75. package/vue-components/types/importFlow.ts +16 -0
  76. package/vue-components/types/longRunningTasks.ts +20 -0
  77. package/vue-components/types/notification.ts +6 -0
  78. package/vue-components/types/previewYaml.ts +8 -0
  79. package/vue-components/types/table.ts +54 -0
  80. package/vue-components/types/theme.ts +10 -0
  81. package/vue-components/types/user.ts +22 -0
  82. package/vue-components/v2/card/Card.vue +1 -1
  83. package/vue-components/v2/card/OverviewCards.vue +17 -2
  84. package/vue-components/v2/editor/FilteredFileEditor.vue +2 -2
  85. package/vue-components/v2/editor/ResourceKeyValueEditor.vue +21 -21
  86. package/vue-components/v2/icons/Ellipsis.vue +2 -1
  87. package/vue-components/v2/modal/Modal.vue +0 -5
  88. package/vue-components/v2/navbar/Appdrawer.vue +37 -12
  89. package/vue-components/v2/navbar/Navbar.vue +3 -3
  90. package/vue-components/v2/navbar/NavbarItem.vue +3 -1
  91. package/vue-components/v2/navbar/NavbarItemContent.vue +1 -1
  92. package/vue-components/v2/navbar/User.vue +5 -22
  93. package/vue-components/v2/pagination/Pagination.vue +66 -0
  94. package/vue-components/v2/sidebar/SidebarItem.vue +10 -7
  95. package/vue-components/v3/accordion/Accordion.vue +151 -0
  96. package/vue-components/v3/alert/Alert.vue +238 -0
  97. package/vue-components/v3/alert/Toast.vue +79 -0
  98. package/vue-components/v3/banner/Banner.vue +10 -0
  99. package/vue-components/v3/breadcrumbs/Breadcrumb.vue +104 -0
  100. package/vue-components/v3/button/Button.vue +839 -58
  101. package/vue-components/v3/button/Buttons.vue +6 -0
  102. package/vue-components/v3/button/DownloadBtn.vue +31 -0
  103. package/vue-components/v3/cards/Card.vue +32 -0
  104. package/vue-components/v3/cards/CardContent.vue +7 -0
  105. package/vue-components/v3/cards/CardHeader.vue +14 -0
  106. package/vue-components/v3/cards/Cards.vue +7 -0
  107. package/vue-components/v3/cards/Cluster.vue +149 -0
  108. package/vue-components/v3/cards/Counter.vue +39 -0
  109. package/vue-components/v3/cards/FeatureCard.vue +71 -0
  110. package/vue-components/v3/cards/FeatureCards.vue +6 -0
  111. package/vue-components/v3/cards/InfoCard.vue +243 -0
  112. package/vue-components/v3/cards/Monitoring.vue +94 -0
  113. package/vue-components/v3/cards/OverviewCard.vue +24 -0
  114. package/vue-components/v3/cards/OverviewCards.vue +31 -0
  115. package/vue-components/v3/cards/Payment.vue +62 -0
  116. package/vue-components/v3/cards/Vendor.vue +85 -0
  117. package/vue-components/v3/content/ContentHeader.vue +39 -30
  118. package/vue-components/v3/content/ContentLayout.vue +20 -0
  119. package/vue-components/v3/content/ContentTable.vue +43 -62
  120. package/vue-components/v3/dropdown/DropdownDivider.vue +2 -0
  121. package/vue-components/v3/dropdown/DropdownItem.vue +2 -0
  122. package/vue-components/v3/dropdown/DropdownMenu.vue +85 -91
  123. package/vue-components/v3/editor/Editor.vue +100 -113
  124. package/vue-components/v3/editor/FilteredFileEditor.vue +317 -127
  125. package/vue-components/v3/editor/ResourceKeyValueEditor.vue +70 -94
  126. package/vue-components/v3/footer/FooterArea.vue +34 -0
  127. package/vue-components/v3/footer/FooterItem.vue +32 -0
  128. package/vue-components/v3/footer/FooterItems.vue +15 -0
  129. package/vue-components/v3/footer/Info.vue +23 -0
  130. package/vue-components/v3/footer/Status.vue +42 -0
  131. package/vue-components/v3/footer/Usage.vue +44 -0
  132. package/vue-components/v3/form/Form.vue +24 -33
  133. package/vue-components/v3/form/FormFooterControl.vue +7 -0
  134. package/vue-components/v3/form/FormFooterControls.vue +7 -0
  135. package/vue-components/v3/form-fields/AcSingleInput.vue +528 -0
  136. package/vue-components/v3/form-fields/Input.vue +19 -14
  137. package/vue-components/v3/header/Header.vue +119 -25
  138. package/vue-components/v3/header/HeaderItem.vue +18 -0
  139. package/vue-components/v3/header/HeaderItems.vue +4 -0
  140. package/vue-components/v3/icons/Ellipsis.vue +2 -0
  141. package/vue-components/v3/loaders/InfoCardLoader.vue +65 -0
  142. package/vue-components/v3/loaders/ResourceLoader.vue +4 -12
  143. package/vue-components/v3/loaders/SidebarLoader.vue +4 -12
  144. package/vue-components/v3/long-running-tasks/LongRunningTaskItem.vue +17 -15
  145. package/vue-components/v3/modal/Modal.vue +292 -96
  146. package/vue-components/v3/modals/DeleteConfirmationModal.vue +37 -50
  147. package/vue-components/v3/modals/JsonShowModal.vue +62 -68
  148. package/vue-components/v3/modals/LongRunningTasksModal.vue +145 -143
  149. package/vue-components/v3/navbar/Appdrawer.vue +196 -51
  150. package/vue-components/v3/navbar/Navbar.vue +298 -0
  151. package/vue-components/v3/navbar/NavbarItem.vue +81 -0
  152. package/vue-components/v3/navbar/NavbarItemContent.vue +284 -0
  153. package/vue-components/v3/navbar/Notification.vue +179 -0
  154. package/vue-components/v3/navbar/ThemeMode.vue +128 -112
  155. package/vue-components/v3/navbar/User.vue +383 -268
  156. package/vue-components/v3/notification/AlertBox.vue +41 -44
  157. package/vue-components/v3/notification/Notification.vue +49 -43
  158. package/vue-components/v3/notification/NotificationItem.vue +51 -19
  159. package/vue-components/v3/option-dots/Options.vue +188 -0
  160. package/vue-components/v3/pagination/Pagination.vue +203 -99
  161. package/vue-components/v3/preloader/Preloader.vue +23 -0
  162. package/vue-components/v3/searchbars/SearchBar.vue +59 -34
  163. package/vue-components/v3/sidebar/AccentColorPicker.vue +97 -0
  164. package/vue-components/v3/sidebar/ClusterSwitcher.vue +835 -81
  165. package/vue-components/v3/sidebar/Sidebar.vue +267 -0
  166. package/vue-components/v3/sidebar/SidebarBody.vue +7 -0
  167. package/vue-components/v3/sidebar/SidebarFooter.vue +80 -0
  168. package/vue-components/v3/sidebar/SidebarHeader.vue +124 -0
  169. package/vue-components/v3/sidebar/SidebarItem.vue +62 -0
  170. package/vue-components/v3/sidebar/SidebarItemWithDropDown.vue +101 -104
  171. package/vue-components/v3/sidebar/SidebarMenuList.vue +9 -0
  172. package/vue-components/v3/sidebar/Steps.vue +152 -0
  173. package/vue-components/v3/sidebar/sidebar-tabs/SidebarTabs.vue +128 -0
  174. package/vue-components/v3/sidebar/sidebar-tabs/SidebarTabsLayout.vue +29 -0
  175. package/vue-components/v3/sidebar/sidebar-tabs/TabsContent.vue +99 -0
  176. package/vue-components/v3/tab/TabItem.vue +10 -12
  177. package/vue-components/v3/tab/Tabs.vue +9 -0
  178. package/vue-components/v3/tab/TabsBody.vue +7 -0
  179. package/vue-components/v3/table/EmptyTableInfo.vue +8 -0
  180. package/vue-components/v3/table/FakeTableCell.vue +22 -31
  181. package/vue-components/v3/table/InfoTable.vue +89 -61
  182. package/vue-components/v3/table/MultiInfoTable.vue +72 -95
  183. package/vue-components/v3/table/Table.vue +589 -151
  184. package/vue-components/v3/table/TableCell.vue +20 -23
  185. package/vue-components/v3/table/TableContainer.vue +50 -28
  186. package/vue-components/v3/table/TableRow.vue +63 -85
  187. package/vue-components/v3/table/table-cell/ArrayCell.vue +67 -79
  188. package/vue-components/v3/table/table-cell/CellValue.vue +97 -103
  189. package/vue-components/v3/table/table-cell/GenericCell.vue +43 -42
  190. package/vue-components/v3/table/table-cell/ObjectCell.vue +67 -79
  191. package/vue-components/v3/table/table-cell/ValueWithModal.vue +22 -31
  192. package/vue-components/v3/tabs/EditorTabs.vue +18 -24
  193. package/vue-components/v3/tag/Tag.vue +15 -12
  194. package/vue-components/v3/tag/Tags.vue +7 -0
  195. package/vue-components/v3/terminal/LongRunningTaskTerminal.vue +26 -23
  196. package/base/utilities/_derived-variables.scss +0 -25
  197. package/base/utilities/_initial-variables.scss +0 -215
  198. package/components/_basic-card.scss +0 -124
  199. package/mixins/stickyContent.js +0 -141
  200. package/plugins/caching.ts +0 -243
@@ -1,3 +1,45 @@
1
+ <script setup lang="ts">
2
+ import type { AcTableCell, AcTableCol } from "../../../types/table";
3
+ import { defineAsyncComponent } from "vue";
4
+ import { useRoute } from "vue-router";
5
+
6
+ interface Props {
7
+ cellDescriptor?: AcTableCol;
8
+ cellValue?: AcTableCell;
9
+ }
10
+
11
+ const props = withDefaults(defineProps<Props>(), {
12
+ cellValue: () => ({ data: "-" }),
13
+ cellDescriptor: () => ({
14
+ name: "-",
15
+ type: "string",
16
+ priority: 3,
17
+ pathTemplate: "-",
18
+ }),
19
+ });
20
+
21
+ const Tag = defineAsyncComponent(() => import("../../tag/Tag.vue"));
22
+ const CellValue = defineAsyncComponent(
23
+ () => import("../../table/table-cell/CellValue.vue")
24
+ );
25
+
26
+ const route = useRoute();
27
+ function getCellLink(cell: AcTableCell) {
28
+ const inject = (str: string, obj: Record<string, string>) =>
29
+ str.replace(/\${(.*?)}/g, (x, g) => obj[g]);
30
+ const { user, cluster } = route.params;
31
+ const link = inject(cell.link || "", {
32
+ username: user as string,
33
+ clustername: cluster as string,
34
+ });
35
+ return link;
36
+ }
37
+ function redirectTo() {
38
+ const link = getCellLink(props.cellValue);
39
+ window.open(link, "_blank");
40
+ }
41
+ </script>
42
+
1
43
  <template>
2
44
  <span
3
45
  :class="{
@@ -27,49 +69,8 @@
27
69
  <cell-value
28
70
  v-else
29
71
  :cell-title="cellDescriptor.name"
30
- :value="cellValue.data || '-'"
72
+ :value="cellValue.data as {} || '-'"
31
73
  :tooltip="cellValue.tooltip || JSON.stringify(cellValue.data)"
32
74
  />
33
75
  </span>
34
76
  </template>
35
-
36
- <script>
37
- import { defineAsyncComponent, defineComponent } from "vue";
38
- import { useRoute } from "vue-router";
39
-
40
- export default defineComponent({
41
- components: {
42
- Tag: defineAsyncComponent(() => import("../../tag/Tag.vue")),
43
- CellValue: defineAsyncComponent(() =>
44
- import("../table-cell/CellValue.vue")
45
- ),
46
- },
47
- props: {
48
- cellDescriptor: {
49
- type: Object,
50
- default: () => ({}),
51
- },
52
- cellValue: {
53
- type: Object,
54
- default: () => ({}),
55
- },
56
- },
57
- setup() {
58
- const route = useRoute();
59
- function getCellLink(cell) {
60
- const inject = (str, obj) => str.replace(/\${(.*?)}/g, (x, g) => obj[g]);
61
- const { user, cluster } = route.params;
62
- const link = inject(cell.link || "", {
63
- username: user,
64
- clustername: cluster,
65
- });
66
- return link;
67
- }
68
- function redirectTo() {
69
- const link = getCellLink(this.cellValue);
70
- window.open(link, "_blank");
71
- }
72
- return { getCellLink, redirectTo };
73
- },
74
- });
75
- </script>
@@ -1,3 +1,65 @@
1
+ <script setup lang="ts">
2
+ import { defineAsyncComponent, ref, computed } from "vue";
3
+
4
+ interface Props {
5
+ cellTitle?: string;
6
+ obj?: Record<string, unknown>;
7
+ maxCharacterLength?: number;
8
+ }
9
+
10
+ const props = withDefaults(defineProps<Props>(), {
11
+ cellTitle: "cell title",
12
+ maxCharacterLength: 50,
13
+ obj: () => ({}),
14
+ });
15
+
16
+ const Tags = defineAsyncComponent(() => import("../../tag/Tags.vue"));
17
+ const Tag = defineAsyncComponent(() => import("../../tag/Tag.vue"));
18
+ const EllipsisIcon = defineAsyncComponent(
19
+ () => import("../../icons/Ellipsis.vue")
20
+ );
21
+ const JsonShowModal = defineAsyncComponent(
22
+ () => import("../../modals/JsonShowModal.vue")
23
+ );
24
+ const ValueWithModal = defineAsyncComponent(
25
+ () => import("../../table/table-cell/ValueWithModal.vue")
26
+ );
27
+
28
+ const showFullData = ref(false);
29
+
30
+ const objKeys = computed(() => {
31
+ return Object.keys(props.obj) || [];
32
+ });
33
+
34
+ const printableStringObjs = computed(() => {
35
+ return objKeys.value.map((key) => {
36
+ let value = props.obj[key];
37
+ if (typeof value === "object" && value !== null) {
38
+ value = JSON.stringify(value);
39
+ }
40
+ const keyValue = `${key}: ${value}`;
41
+ const exceededLength = keyValue.length > 30;
42
+ const print = exceededLength ? key : keyValue;
43
+ return { key, value, keyValue, exceededLength, print };
44
+ });
45
+ });
46
+
47
+ const indexOfCharacterLengthExceed = computed(() => {
48
+ let idx = -1;
49
+ let cumulativeLen = 0;
50
+ for (const [index, po] of printableStringObjs.value.entries()) {
51
+ const newLen = cumulativeLen + po.print.length;
52
+ if (newLen > props.maxCharacterLength) {
53
+ idx = index;
54
+ break;
55
+ }
56
+ cumulativeLen = newLen;
57
+ }
58
+
59
+ return idx === -1 ? printableStringObjs.value.length : idx;
60
+ });
61
+ </script>
62
+
1
63
  <template>
2
64
  <tags v-if="printableStringObjs.length">
3
65
  <tag
@@ -11,13 +73,16 @@
11
73
  <value-with-modal
12
74
  v-if="printableStringOb.exceededLength"
13
75
  :title="printableStringOb.key"
14
- :value="printableStringOb.value"
76
+ :value="printableStringOb.value as string"
15
77
  :print="printableStringOb.print"
16
78
  />
17
79
  <template v-else> {{ printableStringOb.print }} </template>
18
80
  </tag>
19
81
 
20
- <tag modifierClasses="is-info is-light" v-if="indexOfCharacterLengthExceed !== printableStringObjs.length">
82
+ <tag
83
+ modifierClasses="is-info is-light"
84
+ v-if="indexOfCharacterLengthExceed !== printableStringObjs.length"
85
+ >
21
86
  <a @click.prevent.stop="showFullData = true">
22
87
  <ellipsis-icon />
23
88
  <json-show-modal
@@ -31,80 +96,3 @@
31
96
  </tags>
32
97
  <p v-else>-</p>
33
98
  </template>
34
-
35
- <script>
36
- import { defineComponent, defineAsyncComponent } from "vue";
37
-
38
- export default defineComponent({
39
- props: {
40
- cellTitle: {
41
- type: String,
42
- default: "Object",
43
- },
44
- obj: {
45
- type: Object,
46
- default: () => ({}),
47
- },
48
- maxCharacterLength: {
49
- type: Number,
50
- default: undefined,
51
- },
52
- },
53
- components: {
54
- Tags: defineAsyncComponent(() =>
55
- import("../../../v2/tag/Tags.vue").then((module) => module.default)
56
- ),
57
- Tag: defineAsyncComponent(() =>
58
- import("../../tag/Tag.vue").then((module) => module.default)
59
- ),
60
- EllipsisIcon: defineAsyncComponent(() =>
61
- import("../../../v2/icons/Ellipsis.vue").then((module) => module.default)
62
- ),
63
- JsonShowModal: defineAsyncComponent(() =>
64
- import("../../modals/JsonShowModal.vue").then((module) => module.default)
65
- ),
66
- ValueWithModal: defineAsyncComponent(() =>
67
- import("./ValueWithModal.vue").then((module) => module.default)
68
- ),
69
- },
70
-
71
- data() {
72
- return {
73
- showFullData: false,
74
- };
75
- },
76
-
77
- computed: {
78
- objKeys() {
79
- return Object.keys(this.obj) || [];
80
- },
81
- printableStringObjs() {
82
- return this.objKeys.map((key) => {
83
- let value = this.obj[key];
84
- if (typeof value === "object" && value !== null) {
85
- value = JSON.stringify(value);
86
- }
87
- const keyValue = `${key}: ${value}`;
88
- const exceededLength = keyValue.length > 30;
89
- const print = exceededLength ? key : keyValue;
90
- return { key, value, keyValue, exceededLength, print };
91
- });
92
- },
93
- indexOfCharacterLengthExceed() {
94
- let idx = -1;
95
- let cumulativeLen = 0;
96
- for (const [index, po] of this.printableStringObjs.entries()) {
97
- const newLen = cumulativeLen + po.print.length;
98
- if (newLen > this.maxCharacterLength) {
99
- idx = index;
100
- break;
101
- }
102
- cumulativeLen = newLen;
103
- }
104
-
105
- return idx === -1 ? this.printableStringObjs.length : idx;
106
- },
107
- },
108
- });
109
- </script>
110
-
@@ -1,3 +1,25 @@
1
+ <script setup lang="ts">
2
+ import { defineAsyncComponent, ref } from "vue";
3
+
4
+ interface Props {
5
+ title?: string;
6
+ value?: Record<string, unknown> | string;
7
+ print?: string;
8
+ }
9
+
10
+ withDefaults(defineProps<Props>(), {
11
+ title: "",
12
+ value: "",
13
+ print: "",
14
+ });
15
+
16
+ const JsonShowModal = defineAsyncComponent(
17
+ () => import("../../modals/JsonShowModal.vue")
18
+ );
19
+
20
+ const showModal = ref(false);
21
+ </script>
22
+
1
23
  <template>
2
24
  <a @click.prevent.stop="showModal = true">
3
25
  {{ print }}
@@ -10,34 +32,3 @@
10
32
  />
11
33
  </a>
12
34
  </template>
13
-
14
- <script>
15
- import { defineComponent, defineAsyncComponent } from "vue";
16
-
17
- export default defineComponent({
18
- props: {
19
- title: {
20
- type: String,
21
- default: "",
22
- },
23
- value: {
24
- type: null,
25
- default: "",
26
- },
27
- print: {
28
- type: String,
29
- default: "",
30
- },
31
- },
32
- components: {
33
- JsonShowModal: defineAsyncComponent(() =>
34
- import("../../modals/JsonShowModal.vue").then((module) => module.default)
35
- ),
36
- },
37
- data() {
38
- return {
39
- showModal: false,
40
- };
41
- },
42
- });
43
- </script>
@@ -1,3 +1,21 @@
1
+ <script setup lang="ts">
2
+ import { defineAsyncComponent } from "vue";
3
+
4
+ const TabsBody = defineAsyncComponent(() => import("../tab/TabsBody.vue"));
5
+ const Tabs = defineAsyncComponent(() => import("../tab/Tabs.vue"));
6
+ const TabItem = defineAsyncComponent(() => import("../tab/TabItem.vue"));
7
+
8
+ interface Props {
9
+ activeTab?: string;
10
+ }
11
+
12
+ withDefaults(defineProps<Props>(), {
13
+ activeTab: "",
14
+ });
15
+
16
+ defineEmits(["tabchange"]);
17
+ </script>
18
+
1
19
  <template>
2
20
  <tabs-body class="mt-10">
3
21
  <tabs class="is-line">
@@ -10,27 +28,3 @@
10
28
  </tabs>
11
29
  </tabs-body>
12
30
  </template>
13
-
14
- <script>
15
- import { defineComponent, defineAsyncComponent } from "vue";
16
- export default defineComponent({
17
- props: {
18
- activeTab: {
19
- type: String,
20
- default: "",
21
- },
22
- },
23
- emits: ["tabchange"],
24
- components: {
25
- TabsBody: defineAsyncComponent(() =>
26
- import("../../v2/tab/TabsBody.vue").then((module) => module.default)
27
- ),
28
- Tabs: defineAsyncComponent(() =>
29
- import("../../v2/tab/Tabs.vue").then((module) => module.default)
30
- ),
31
- TabItem: defineAsyncComponent(() =>
32
- import("../tab/TabItem.vue").then((module) => module.default)
33
- ),
34
- },
35
- });
36
- </script>
@@ -1,17 +1,20 @@
1
+ <script setup lang="ts">
2
+ interface Props {
3
+ modifierClasses?: string;
4
+ }
5
+
6
+ withDefaults(defineProps<Props>(), {
7
+ modifierClasses: "",
8
+ });
9
+ </script>
10
+
1
11
  <template>
2
12
  <div class="tag" :class="modifierClasses">
3
13
  <slot />
4
14
  </div>
5
15
  </template>
6
-
7
- <script>
8
- import { defineComponent } from "vue";
9
- export default defineComponent({
10
- props: {
11
- modifierClasses: {
12
- type: String,
13
- default: "",
14
- },
15
- },
16
- });
17
- </script>
16
+ <style lang="scss" scoped>
17
+ .tag {
18
+ line-height: 1;
19
+ }
20
+ </style>
@@ -0,0 +1,7 @@
1
+ <script setup lang="ts"></script>
2
+
3
+ <template>
4
+ <div class="tags">
5
+ <slot />
6
+ </div>
7
+ </template>
@@ -1,7 +1,3 @@
1
- <template>
2
- <div ref="terminalRef" class="terminal-body"></div>
3
- </template>
4
-
5
1
  <script setup lang="ts">
6
2
  import { computed, nextTick, ref, toRefs, watch, watchPostEffect } from "vue";
7
3
  import { Terminal } from "xterm";
@@ -9,28 +5,18 @@ import { FitAddon } from "xterm-addon-fit";
9
5
  import { WebglAddon } from "xterm-addon-webgl";
10
6
  import { Material, MaterialDark } from "xterm-theme"; //https://github.com/ysk2014/xterm-theme/tree/master/src/iterm
11
7
 
12
- const props = withDefaults(
13
- defineProps<{
14
- theme: string;
15
- logs: string[];
16
- }>(),
17
- { theme: "light", logs: () => [] }
18
- );
8
+ interface Props {
9
+ theme?: string;
10
+ logs?: string[];
11
+ }
12
+
13
+ const props = withDefaults(defineProps<Props>(), {
14
+ theme: "light",
15
+ logs: () => [],
16
+ });
19
17
  // terminal print logic
20
18
  const { logs, theme } = toRefs(props);
21
19
  const lastPrintIdx = ref(0);
22
- watch(
23
- logs,
24
- (n) => {
25
- if (n.length > lastPrintIdx.value) {
26
- nextTick(() => {
27
- writeOnTerminal(n.slice(lastPrintIdx.value).join("\n"));
28
- lastPrintIdx.value = n.length;
29
- });
30
- }
31
- },
32
- { immediate: true, deep: true }
33
- );
34
20
 
35
21
  //theme
36
22
  const bodyBgc = computed(() =>
@@ -64,8 +50,25 @@ function writeOnTerminal(msg: string) {
64
50
  else terminal.write(line);
65
51
  });
66
52
  }
53
+
54
+ watch(
55
+ logs,
56
+ (n) => {
57
+ if (n.length > lastPrintIdx.value) {
58
+ nextTick(() => {
59
+ writeOnTerminal(n.slice(lastPrintIdx.value).join("\n"));
60
+ lastPrintIdx.value = n.length;
61
+ });
62
+ }
63
+ },
64
+ { immediate: true, deep: true }
65
+ );
67
66
  </script>
68
67
 
68
+ <template>
69
+ <div ref="terminalRef" class="terminal-body"></div>
70
+ </template>
71
+
69
72
  <style lang="scss">
70
73
  .terminal-body {
71
74
  width: 100%;
@@ -1,25 +0,0 @@
1
- // color
2
- $ac-info: $ac-blue;
3
- $ac-success: $ac-primary;
4
- $ac-warning: $ac-yellow;
5
- $ac-danger: $ac-red;
6
-
7
- // Text colors
8
- $ac-color-text: var(--ac-text);
9
- $ac-color-heading: var(--ac-text-heading);
10
-
11
- // Link colors
12
- $ac-link: $ac-blue;
13
- $ac-link-visited: $ac-purple;
14
-
15
- // Box Shadow
16
- $ac-shadow-1: 0 1px 4px rgba(26, 80, 151, 0.16);
17
- $ac-shadow-2: 0px 8px 57px rgba(0, 0, 0, 0.16);
18
- $ac-shadow-3: 0 3px 4px 0 rgba(0, 0, 0, 0.18),
19
- 0 3px 3px -2px rgba(0, 0, 0, 0.16), 0 1px 6px 0 rgba(0, 0, 0, 0.12);
20
-
21
- $ac-shadow-sm: 0 1px 4px rgba(26, 80, 151, 0.16);
22
- $ac-shadow-xl: 0px 8px 57px rgba(0, 0, 0, 0.16);
23
- $ac-shadow-lg: 0 3px 4px 0 rgba(0, 0, 0, 0.18),
24
- 0 3px 3px -2px rgba(0, 0, 0, 0.16), 0 1px 6px 0 rgba(0, 0, 0, 0.12);
25
-