@mptw/skylens-ui 1.4.109 → 1.5.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 (130) hide show
  1. package/AGENTS.md +59 -0
  2. package/CLAUDE.md +36 -0
  3. package/README.md +7 -7
  4. package/app/app.config.ts +14 -0
  5. package/app/app.vue +5 -0
  6. package/app/assets/css/layout.css +134 -0
  7. package/app/assets/css/main.css +189 -0
  8. package/{components → app/components}/SLAlertModal.vue +24 -16
  9. package/{components → app/components}/SLBreadcrumbs.vue +12 -8
  10. package/app/components/SLButton.vue +370 -0
  11. package/{components → app/components}/SLCalendarButton.vue +40 -34
  12. package/{components → app/components}/SLCalendarPopup.vue +79 -53
  13. package/{components → app/components}/SLCard.vue +57 -41
  14. package/{components → app/components}/SLChart.vue +6 -3
  15. package/{components → app/components}/SLCheckbox.vue +92 -49
  16. package/{components → app/components}/SLCircleButton.vue +25 -16
  17. package/{components → app/components}/SLCollapsableBlock.vue +44 -33
  18. package/{components → app/components}/SLCollapsableMulitPillSelect.vue +20 -15
  19. package/{components → app/components}/SLConfirmModal.vue +9 -6
  20. package/{components → app/components}/SLContextMenu.vue +88 -48
  21. package/{components → app/components}/SLDateInput.vue +109 -92
  22. package/{components → app/components}/SLDatePicker.vue +9 -7
  23. package/{components → app/components}/SLDistributor.vue +1 -1
  24. package/{components → app/components}/SLDownloadButton.vue +39 -29
  25. package/{components → app/components}/SLDraggable.vue +2 -2
  26. package/{components → app/components}/SLDropdown.vue +33 -25
  27. package/{components → app/components}/SLDropdownItem.vue +9 -5
  28. package/{components → app/components}/SLElementWithTitle.vue +12 -7
  29. package/{components → app/components}/SLEyeCheckbox.vue +44 -31
  30. package/{components → app/components}/SLFileInput.vue +23 -16
  31. package/{components → app/components}/SLGenderAgeSelect.vue +52 -36
  32. package/{components → app/components}/SLHourRangeInput.vue +45 -32
  33. package/{components → app/components}/SLIOSSwitch.vue +81 -60
  34. package/{components → app/components}/SLIcon.vue +4 -3
  35. package/{components → app/components}/SLIconButton.vue +31 -29
  36. package/{components → app/components}/SLInfoTip.vue +51 -40
  37. package/{components → app/components}/SLInsightSitePage.vue +12 -7
  38. package/{components → app/components}/SLLegend.vue +19 -12
  39. package/app/components/SLLinearProgressBar.vue +22 -0
  40. package/{components → app/components}/SLLink.vue +12 -8
  41. package/{components → app/components}/SLLoading.vue +34 -31
  42. package/{components → app/components}/SLMapChart.vue +5 -4
  43. package/{components → app/components}/SLModal.vue +90 -66
  44. package/{components → app/components}/SLMonthCalendarButton.vue +91 -45
  45. package/{components → app/components}/SLMonthPicker.vue +42 -37
  46. package/{components → app/components}/SLMultiEmailInput.vue +163 -113
  47. package/{components → app/components}/SLMultiSelect.vue +37 -26
  48. package/{components → app/components}/SLNoData.vue +16 -11
  49. package/app/components/SLNotification.vue +155 -0
  50. package/{components → app/components}/SLPageModal.vue +14 -9
  51. package/{components → app/components}/SLPagination.vue +45 -33
  52. package/{components → app/components}/SLPillCheckbox.vue +50 -42
  53. package/{components → app/components}/SLPillLabel.vue +43 -28
  54. package/{components → app/components}/SLPopupMenuButton.vue +26 -17
  55. package/{components → app/components}/SLProfileButton.vue +28 -20
  56. package/{components → app/components}/SLProjectShareItem.vue +30 -17
  57. package/{components → app/components}/SLRadioButton.vue +41 -33
  58. package/{components → app/components}/SLRadioButtonGroup.vue +28 -23
  59. package/app/components/SLRadioGroup.vue +221 -0
  60. package/{components → app/components}/SLRangeInput.vue +53 -38
  61. package/{components → app/components}/SLRegionsMapChart.vue +5 -4
  62. package/{components → app/components}/SLRightSider.vue +50 -40
  63. package/{components → app/components}/SLSearchInput.vue +24 -19
  64. package/{components → app/components}/SLSelect.vue +114 -87
  65. package/{components → app/components}/SLSelectAllToggle.vue +52 -37
  66. package/app/components/SLSidebarNav.vue +487 -0
  67. package/{components → app/components}/SLSidebarNavGroupItem.vue +13 -10
  68. package/{components → app/components}/SLSidebarNavGroupItemSection.vue +240 -179
  69. package/{components → app/components}/SLSidebarNavLinkItem.vue +131 -109
  70. package/{components → app/components}/SLSidebarNavSectionItem.vue +21 -18
  71. package/{components → app/components}/SLSitePage.vue +35 -24
  72. package/{components → app/components}/SLSkyInsightSitePage.vue +13 -8
  73. package/{components → app/components}/SLSortByDropdown.vue +35 -22
  74. package/{components → app/components}/SLSpinIcon.vue +6 -3
  75. package/{components → app/components}/SLStayRangeInput.vue +47 -36
  76. package/{components → app/components}/SLTab.vue +7 -2
  77. package/app/components/SLTable.vue +472 -0
  78. package/{components → app/components}/SLTableTooltip.vue +44 -30
  79. package/app/components/SLTabs.vue +528 -0
  80. package/{components → app/components}/SLTextInput.vue +162 -134
  81. package/{components → app/components}/SLTextarea.vue +40 -29
  82. package/{components → app/components}/SLToast.vue +19 -11
  83. package/{components → app/components}/SLToggleButton.vue +18 -11
  84. package/{components → app/components}/SLTwoLayerMultiSelect.vue +180 -85
  85. package/{components → app/components}/SLTwoLayerSelect.vue +47 -37
  86. package/{components → app/components}/SLTwoLayerSingleSelect.vue +52 -33
  87. package/{components → app/components}/SLWarnModal.vue +9 -7
  88. package/app/interface/commons.ts +7 -0
  89. package/{utils → app/utils}/index.ts +213 -146
  90. package/eslint.config.js +3 -0
  91. package/nuxt.config.ts +17 -14
  92. package/package.json +10 -9
  93. package/skills-lock.json +59 -0
  94. package/tsconfig.json +1 -6
  95. package/.eslintrc.cjs +0 -4
  96. package/app.config.ts +0 -5
  97. package/assets/css/layout.styl +0 -98
  98. package/assets/css/tailwind.css +0 -3
  99. package/components/SLButton.vue +0 -337
  100. package/components/SLLinearProgressBar.vue +0 -35
  101. package/components/SLNotification.vue +0 -151
  102. package/components/SLRadioGroup.vue +0 -209
  103. package/components/SLSidebarNav.vue +0 -427
  104. package/components/SLTable.vue +0 -455
  105. package/components/SLTabs.vue +0 -475
  106. package/interface/commons.ts +0 -7
  107. package/pages/index.vue +0 -15
  108. package/tailwind.config.js +0 -271
  109. /package/{assets → app/assets}/css/fonts/MEShPlus-font-icon.eot +0 -0
  110. /package/{assets → app/assets}/css/fonts/MEShPlus-font-icon.svg +0 -0
  111. /package/{assets → app/assets}/css/fonts/MEShPlus-font-icon.ttf +0 -0
  112. /package/{assets → app/assets}/css/fonts/MEShPlus-font-icon.woff +0 -0
  113. /package/{assets → app/assets}/css/icons.css +0 -0
  114. /package/{assets → app/assets}/images/commons/app-logo-white.png +0 -0
  115. /package/{assets → app/assets}/images/commons/app-logo.png +0 -0
  116. /package/{assets → app/assets}/images/commons/empty-box.png +0 -0
  117. /package/{interface → app/interface}/IDateRange.ts +0 -0
  118. /package/{interface → app/interface}/IHourRange.ts +0 -0
  119. /package/{interface → app/interface}/IInputOption.ts +0 -0
  120. /package/{interface → app/interface}/ILegendItem.ts +0 -0
  121. /package/{interface → app/interface}/IOrganization.ts +0 -0
  122. /package/{interface → app/interface}/IPopupMenuButton.ts +0 -0
  123. /package/{interface → app/interface}/IStayRange.ts +0 -0
  124. /package/{interface → app/interface}/ITableField.ts +0 -0
  125. /package/{interface → app/interface}/IWeb.ts +0 -0
  126. /package/{interface → app/interface}/NavConfigType.ts +0 -0
  127. /package/{models → app/models}/DateRange.ts +0 -0
  128. /package/{plugins → app/plugins}/v-calendar.ts +0 -0
  129. /package/{utils → app/utils}/constants.ts +0 -0
  130. /package/{utils → app/utils}/generateSheet.ts +0 -0
@@ -0,0 +1,3 @@
1
+ import withNuxt from './.playground/.nuxt/eslint.config.mjs'
2
+
3
+ export default withNuxt()
package/nuxt.config.ts CHANGED
@@ -1,15 +1,16 @@
1
- // https://nuxt.com/docs/api/configuration/nuxt-config
2
- import { fileURLToPath } from "url";
3
- import { dirname } from "path";
4
-
5
- const currentDir = dirname(fileURLToPath(import.meta.url));
1
+ import { fileURLToPath } from "node:url";
2
+ import tailwindcss from "@tailwindcss/vite";
6
3
 
4
+ // https://nuxt.com/docs/api/configuration/nuxt-config
7
5
  export default defineNuxtConfig({
6
+ devtools: { enabled: true },
7
+ compatibilityDate: "2026-07-28",
8
+ $meta: {
9
+ name: "skylens-ui",
10
+ },
8
11
  alias: {
9
- "~ui": currentDir,
10
- images: fileURLToPath(new URL("./assets/images", import.meta.url)),
12
+ "~ui": fileURLToPath(new URL("./", import.meta.url)),
11
13
  },
12
- devtools: { enabled: true },
13
14
  runtimeConfig: {
14
15
  public: {
15
16
  defaultCableEndDateBeforeNow: 5,
@@ -17,11 +18,13 @@ export default defineNuxtConfig({
17
18
  icoUrl: "https://skylens-mng-dev-1087511617183.asia-east1.run.app",
18
19
  },
19
20
  },
20
- components: [{ path: "~ui/components" }],
21
- css: ["~ui/assets/css/icons.css", "~ui/assets/css/layout.styl"],
22
- modules: ["@nuxtjs/tailwindcss"],
23
- plugins: ["~ui/plugins/v-calendar.ts"],
24
- tailwindcss: {
25
- exposeConfig: true,
21
+ css: [
22
+ "~ui/app/assets/css/main.css",
23
+ "~ui/app/assets/css/icons.css",
24
+ "~ui/app/assets/css/layout.css",
25
+ ],
26
+ plugins: ["~ui/app/plugins/v-calendar.ts"],
27
+ vite: {
28
+ plugins: [tailwindcss()],
26
29
  },
27
30
  });
package/package.json CHANGED
@@ -1,26 +1,28 @@
1
1
  {
2
2
  "name": "@mptw/skylens-ui",
3
3
  "type": "module",
4
- "version": "1.4.109",
4
+ "version": "1.5.1",
5
5
  "main": "./nuxt.config.ts",
6
6
  "scripts": {
7
7
  "dev": "nuxi dev .playground",
8
+ "dev:prepare": "nuxt prepare .playground",
8
9
  "build": "nuxt build .playground",
9
10
  "generate": "nuxt generate .playground",
10
11
  "preview": "nuxt preview .playground",
11
- "lint": "eslint .",
12
- "postinstall": "nuxt prepare .playground"
12
+ "lint": "eslint ."
13
13
  },
14
14
  "devDependencies": {
15
- "@nuxt/eslint-config": "^1.16.0",
15
+ "@nuxt/eslint": "^1.16.0",
16
+ "@types/node": "^24.13.3",
16
17
  "eslint": "^10.8.0",
17
- "nuxt": "^3.21.9",
18
- "typescript": "^7.0.2"
18
+ "nuxt": "^4.5.1",
19
+ "typescript": "^6.0.3",
20
+ "vue": "^3.5.40"
19
21
  },
20
22
  "dependencies": {
21
23
  "@gtm-support/vue-gtm": "^3.2.0",
22
- "@nuxtjs/tailwindcss": "^6.14.0",
23
24
  "@popperjs/core": "^2.11.8",
25
+ "@tailwindcss/vite": "^4.3.3",
24
26
  "@types/commonmark": "^0.27.10",
25
27
  "@types/dompurify": "^3.2.0",
26
28
  "@types/lodash-es": "^4.17.12",
@@ -37,9 +39,8 @@
37
39
  "pug": "^3.0.4",
38
40
  "rxjs": "^7.8.2",
39
41
  "sortablejs": "^1.15.7",
40
- "stylus": "^0.64.0",
41
42
  "swiper": "^14.0.6",
42
- "tailwindcss-textshadow": "^2.1.3",
43
+ "tailwindcss": "^4.3.3",
43
44
  "v-calendar": "^3.1.2",
44
45
  "vue": "^3.5.40",
45
46
  "vue-3-slider-component": "^1.0.2",
@@ -0,0 +1,59 @@
1
+ {
2
+ "version": 1,
3
+ "skills": {
4
+ "nitro": {
5
+ "source": "antfu/skills",
6
+ "sourceType": "github",
7
+ "skillPath": "skills/nitro/SKILL.md",
8
+ "computedHash": "f8341eaf6fbdc604c2c8123a275407acea5a74ad3b0870cdd0ed2a3007e36c12"
9
+ },
10
+ "nuxt": {
11
+ "source": "antfu/skills",
12
+ "sourceType": "github",
13
+ "skillPath": "skills/nuxt/SKILL.md",
14
+ "computedHash": "96dbdbfc06bf7045aeb9a463b972d5c0b5679d6dadf196d8ef6b98dc6defed2d"
15
+ },
16
+ "tsdown": {
17
+ "source": "antfu/skills",
18
+ "sourceType": "github",
19
+ "skillPath": "skills/tsdown/SKILL.md",
20
+ "computedHash": "2183b9019058744215ab8b1261e34833653b5864da159bc022e3b9ad2f706aa5"
21
+ },
22
+ "vite": {
23
+ "source": "antfu/skills",
24
+ "sourceType": "github",
25
+ "skillPath": "skills/vite/SKILL.md",
26
+ "computedHash": "867ff66238f3152e9c494339ad08dc432dd0df5bcf5cc7a00b61a72b580eb908"
27
+ },
28
+ "vitest": {
29
+ "source": "antfu/skills",
30
+ "sourceType": "github",
31
+ "skillPath": "skills/vitest/SKILL.md",
32
+ "computedHash": "943d436114c677802426741980146c07560bf375297666b03062444f4b98a785"
33
+ },
34
+ "vue": {
35
+ "source": "antfu/skills",
36
+ "sourceType": "github",
37
+ "skillPath": "skills/vue/SKILL.md",
38
+ "computedHash": "9c241141e07e836e4f0537c63e8f929fba3767c2997250be38e699f19b75e3f2"
39
+ },
40
+ "vue-best-practices": {
41
+ "source": "antfu/skills",
42
+ "sourceType": "github",
43
+ "skillPath": "skills/vue-best-practices/SKILL.md",
44
+ "computedHash": "d7d22c8cb343583c3904692c4d1d7b50382945e433e4f6e053f4aabb9846cbc3"
45
+ },
46
+ "vue-testing-best-practices": {
47
+ "source": "antfu/skills",
48
+ "sourceType": "github",
49
+ "skillPath": "skills/vue-testing-best-practices/SKILL.md",
50
+ "computedHash": "18c7d8f42f350f927e37de055e34c97b8cfb9f79c12cf942f7f3d2a0821057b5"
51
+ },
52
+ "vueuse-functions": {
53
+ "source": "antfu/skills",
54
+ "sourceType": "github",
55
+ "skillPath": "skills/vueuse-functions/SKILL.md",
56
+ "computedHash": "5f32cd5f744671178284887c9ffc27a080e0e3316c0f7c3b22f4459c760daf49"
57
+ }
58
+ }
59
+ }
package/tsconfig.json CHANGED
@@ -1,8 +1,3 @@
1
1
  {
2
- "extends": "./.playground/.nuxt/tsconfig.json",
3
- "vueCompilerOptions": {
4
- "plugins": [
5
- "@vue/language-plugin-pug"
6
- ]
7
- }
2
+ "extends": "./.playground/.nuxt/tsconfig.json"
8
3
  }
package/.eslintrc.cjs DELETED
@@ -1,4 +0,0 @@
1
- module.exports = {
2
- root: true,
3
- extends: ["@nuxt/eslint-config"],
4
- };
package/app.config.ts DELETED
@@ -1,5 +0,0 @@
1
- export default defineAppConfig({})
2
-
3
- declare module '@nuxt/schema' {
4
- interface AppConfigInput {}
5
- }
@@ -1,98 +0,0 @@
1
- body {
2
- font-family: '微軟正黑體', 'Microsoft JhengHei', ui-sans-serif, system-ui,
3
- -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue',
4
- Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',
5
- 'Segoe UI Symbol', 'Noto Color Emoji';
6
- background: #f3f4f8;
7
- }
8
-
9
- label
10
- @apply inline-block
11
-
12
- .vc-skylens-purple
13
- --vc-accent-200 theme('colors.primary.100')
14
- --vc-accent-600 theme('colors.primary.DEFAULT')
15
- --vc-accent-500 theme('colors.primary.300')
16
- --vc-accent-700 theme('colors.primary.600')
17
- --vc-accent-900 theme('colors.primary.800')
18
-
19
- .vc-skylens-gray
20
- --vc-accent-200 theme('colors.pgray.5')
21
- --vc-accent-500 theme('colors.pgray.4')
22
- --vc-accent-600 theme('colors.pgray.3')
23
- --vc-accent-700 theme('colors.pgray.3')
24
- --vc-accent-900 theme('colors.pgray.2')
25
-
26
- .vc-container
27
- .vc-weeks
28
- @apply px-0
29
-
30
- .scrollbar-y
31
- @apply absolute top-0 right-0 bottom-0 w-1 rounded-full
32
-
33
- .indicator
34
- @apply w-full h-12 bg-primary-300 rounded-full
35
-
36
- .markdown-content
37
- @apply text-base leading-relaxed
38
-
39
- ol
40
- @apply list-decimal list-inside
41
-
42
- li
43
- @apply font-bold
44
-
45
- ul
46
- @apply ml-3 list-disc list-inside
47
-
48
- li
49
- @apply font-normal
50
-
51
- ul
52
- @apply ml-5 list-none
53
-
54
- .custom-scrollbar-y
55
- @apply overflow-x-hidden overflow-y-auto
56
- -webkit-overflow-scrolling touch
57
-
58
- /* width */
59
- &::-webkit-scrollbar
60
- @apply w-1
61
-
62
- /* Track */
63
- &::-webkit-scrollbar-track
64
- @apply bg-transparent
65
-
66
- /* Handle */
67
- &::-webkit-scrollbar-thumb
68
- @apply bg-primary-300 rounded
69
-
70
- /* Handle on hover */
71
- &::-webkit-scrollbar-thumb:hover
72
- @apply bg-primary-500
73
-
74
- .custom-scrollbar-x
75
- @apply overflow-x-auto overflow-y-hidden
76
- -webkit-overflow-scrolling touch
77
-
78
- /* width */
79
- &::-webkit-scrollbar
80
- @apply h-1
81
-
82
- /* Track */
83
- &::-webkit-scrollbar-track
84
- @apply bg-transparent
85
-
86
- /* Handle */
87
- &::-webkit-scrollbar-thumb
88
- @apply bg-secondary rounded
89
-
90
- /* Handle on hover */
91
- &::-webkit-scrollbar-thumb:hover
92
- @apply bg-secondary
93
-
94
- .fade-enter-active, .fade-leave-active
95
- @apply transition-opacity
96
-
97
- .fade-enter, .fade-leave-to
98
- @apply opacity-0
@@ -1,3 +0,0 @@
1
- @tailwind base;
2
- @tailwind components;
3
- @tailwind utilities;
@@ -1,337 +0,0 @@
1
- <template lang="pug">
2
- button(:type='type', :class='btnClass' :disabled="disabled")
3
- .btn-content
4
- slot
5
- SLIcon.btn-icon(v-if='icon !== ""', :icon='icon')
6
- span(v-if='title !== ""') {{ title }}
7
- SLIcon.btn-icon(v-if='postIcon !== ""', :icon='postIcon')
8
- .btn-loading
9
- .loading
10
- div
11
- div
12
- div
13
- div
14
- </template>
15
-
16
- <script lang="ts">
17
- import type { PropType } from "vue";
18
-
19
- export default defineComponent({
20
- name: "SLButton",
21
- components: {},
22
- props: {
23
- size: {
24
- type: String,
25
- default: "",
26
- validator: (val: string) => ["", "lg", "md", "sm", "xs", 'xxs'].includes(val),
27
- },
28
- color: {
29
- type: String,
30
- default: "",
31
- validator: (val: string) =>
32
- [
33
- "",
34
- "white",
35
- "primary",
36
- "primary-600",
37
- "highlight-500",
38
- "third",
39
- "danger",
40
- "pgray-5",
41
- "pgray-2",
42
- "secondary",
43
- "secondary-200",
44
- "secondary-600",
45
- "blue-1",
46
- "insight-title-line",
47
- ].includes(val),
48
- },
49
- variant: {
50
- type: String,
51
- default: "",
52
- validator: (val: string) => ["", "outline", "icon"].includes(val),
53
- },
54
- disabled: {
55
- type: Boolean,
56
- default: false,
57
- },
58
- icon: {
59
- type: String,
60
- default: "",
61
- },
62
- postIcon: {
63
- type: String,
64
- default: "",
65
- },
66
- title: {
67
- type: String,
68
- default: "",
69
- },
70
- type: {
71
- type: String as PropType<"submit" | "reset" | "button">,
72
- default: "button",
73
- validator: (val: string) => ["submit", "reset", "button"].includes(val),
74
- },
75
- loading: {
76
- type: Boolean,
77
- default: false,
78
- },
79
- },
80
- setup(props, { emit }) {
81
- const { size, color, variant, disabled, loading } = toRefs(props);
82
-
83
- const btnClass = computed(() => {
84
- const btnClass = ["btn"];
85
- if (size.value !== "") {
86
- btnClass.push(`btn-${size.value}`);
87
- }
88
- if (color.value !== "") {
89
- btnClass.push(`btn-${color.value}`);
90
- }
91
- if (variant.value !== "") {
92
- btnClass.push(`btn-${variant.value}`);
93
- }
94
- if (disabled.value) {
95
- btnClass.push("btn-disabled");
96
- }
97
- if (loading.value) {
98
- btnClass.push("loading");
99
- }
100
-
101
- return btnClass.join(" ");
102
- });
103
-
104
- return {
105
- btnClass,
106
- };
107
- },
108
- });
109
- </script>
110
-
111
- <style lang="stylus">
112
- .btn
113
- @apply relative inline-flex items-center justify-center s("p-1.75") border border-transparent rounded bg-transparent text-base leading-normal s("focus:outline-none")
114
-
115
- &.btn-lg
116
- @apply s("px-7.75")
117
-
118
- &.btn-md
119
- @apply s("px-3.75")
120
-
121
- &.btn-sm
122
- @apply s("py-0.75") s("px-1.75")
123
-
124
- .btn-content
125
- @apply space-x-1
126
-
127
- &.btn-xs
128
- @apply s("py-0.75") s("px-1.75") text-xs
129
-
130
- .btn-content
131
- @apply space-x-1
132
-
133
- &.btn-xxs
134
- @apply s("p-0.75") text-sm
135
-
136
- .btn-content
137
- @apply space-x-1
138
-
139
- .icon.btn-icon
140
- @apply text-sm leading-none
141
-
142
- &-white
143
- @apply bg-white border-white text-pgray-2 s("hover:bg-white") s("hover:border-white")
144
-
145
- &.btn-outline
146
- @apply text-pgray-2 s("hover:text-pgray-2")
147
-
148
- .btn-loading
149
- .loading
150
- div
151
- border-color white transparent transparent transparent
152
-
153
- &-primary
154
- @apply bg-primary border-primary text-white s("hover:bg-primary-800") s("hover:border-primary-800")
155
-
156
- &.btn-outline
157
- @apply text-primary s("hover:text-primary-800")
158
-
159
- .btn-loading
160
- .loading
161
- div
162
- border-color theme('colors.primary.DEFAULT') transparent transparent transparent
163
-
164
- &-primary-600
165
- @apply bg-primary-600 border-primary-600 text-white s("hover:bg-primary") s("hover:border-primary")
166
-
167
- &.btn-outline
168
- @apply text-primary-600 s("hover:text-primary")
169
-
170
- .btn-loading
171
- .loading
172
- div
173
- border-color theme('colors.primary.600') transparent transparent transparent
174
-
175
- &-highlight-500
176
- @apply bg-highlight-500 border-highlight-500 text-white s("hover:bg-highlight-400") s("hover:text-white") s("hover:border-highlight-400")
177
-
178
- &.btn-outline
179
- @apply text-highlight-500 s("hover:text-highlight-400")
180
-
181
- .btn-loading
182
- .loading
183
- div
184
- border-color theme('colors.highlight.400') transparent transparent transparent
185
-
186
- &-third
187
- @apply bg-third border-third text-white s("hover:bg-third-600") s("hover:text-white") s("hover:border-third-600")
188
-
189
- &.btn-outline
190
- @apply text-third s("hover:text-third-600")
191
-
192
- .btn-loading
193
- .loading
194
- div
195
- border-color theme('colors.third.600') transparent transparent transparent
196
-
197
- &-danger
198
- @apply bg-danger border-danger text-white s("hover:bg-danger-light") s("hover:border-danger-light")
199
-
200
- &.btn-outline
201
- @apply text-danger s("hover:text-danger-light")
202
-
203
- .btn-loading
204
- .loading
205
- div
206
- border-color theme('colors.danger.light') transparent transparent transparent
207
-
208
- &-pgray-5
209
- @apply bg-pgray-5 border-pgray-5 text-pgray-2 s("hover:bg-pgray-4.5") s("hover:border-pgray-4.5")
210
-
211
- &.btn-outline
212
- @apply text-pgray-5 s("hover:text-pgray-4.5")
213
-
214
- .btn-loading
215
- .loading
216
- div
217
- border-color theme('colors.pgray[4.5]') transparent transparent transparent
218
-
219
- &-pgray-2
220
- @apply bg-pgray-2 border-pgray-2 text-white s("hover:bg-pgray-3") s("hover:border-pgray-3")
221
-
222
- &.btn-outline
223
- @apply text-pgray-2 s("hover:text-pgray-3")
224
-
225
- .btn-loading
226
- .loading
227
- div
228
- border-color theme('colors.pgray.3') transparent transparent transparent
229
-
230
- &-secondary
231
- @apply bg-secondary border-secondary text-white s("hover:bg-secondary-800") s("hover:border-secondary-800")
232
-
233
- &.btn-outline
234
- @apply text-secondary s("hover:text-secondary-800")
235
-
236
- .btn-loading
237
- .loading
238
- div
239
- border-color theme('colors.secondary.500') transparent transparent transparent
240
-
241
- &-secondary-200
242
- @apply bg-secondary-200 border-secondary-200 text-secondary s("hover:bg-secondary") s("hover:border-secondary") s("hover:text-white")
243
-
244
- &.btn-outline
245
- @apply text-secondary-200 s("hover:text-secondary")
246
-
247
- .btn-loading
248
- .loading
249
- div
250
- border-color theme('colors.secondary.500') transparent transparent transparent
251
-
252
- &-secondary-600
253
- @apply bg-secondary-600 border-secondary-600 text-white s("hover:bg-secondary") s("hover:border-secondary")
254
-
255
- &.btn-outline
256
- @apply text-secondary-600 s("hover:text-secondary")
257
-
258
- .btn-loading
259
- .loading
260
- div
261
- border-color theme('colors.secondary.500') transparent transparent transparent
262
-
263
- &-blue-1
264
- @apply bg-secondary border-secondary text-white s("hover:bg-blue-1") s("hover:border-blue-1")
265
-
266
- &.btn-outline
267
- @apply text-blue-1 s("hover:text-blue-1")
268
-
269
- .btn-loading
270
- .loading
271
- div
272
- border-color theme('colors.blue.1') transparent transparent transparent
273
-
274
- &-insight-title-line
275
- @apply bg-insight-title-line border-insight-title-line text-white s("hover:bg-insight-title-line") s("hover:border-insight-title-line")
276
-
277
- &.btn-outline
278
- @apply text-insight-title s("hover:text-insight-title")
279
-
280
- .btn-loading
281
- .loading
282
- div
283
- border-color theme('colors.blue.1') transparent transparent transparent
284
-
285
- &-outline
286
- @apply bg-transparent border s("hover:bg-white")
287
-
288
- &-disabled
289
- @apply bg-pgray-5 border-pgray-5 text-white cursor-default s("hover:bg-pgray-5") s("hover:border-pgray-5") s("hover:text-white")
290
-
291
- &.btn-outline
292
- @apply bg-white border-pgray-5 text-pgray-5 s("hover:bg-white") s("hover:border-pgray-5") s("hover:text-pgray-5")
293
-
294
- &.btn-icon
295
- @apply bg-transparent border-transparent text-pgray-5 s("hover:bg-transparent") s("hover:border-transparent") s("hover:text-pgray-5")
296
-
297
- &.loading
298
- @apply bg-primary-200 border-primary-200 cursor-default
299
-
300
- .btn-content
301
- @apply opacity-0
302
-
303
- .btn-loading
304
- @apply block
305
-
306
- .btn-content
307
- @apply inline-flex items-center space-x-1
308
-
309
- .icon.btn-icon
310
- @apply inline-flex text-xs leading-none
311
-
312
- .btn-loading
313
- @apply absolute s('top-1/2') s('left-1/2') w-4 h-4 s('-translate-x-1/2') s('-translate-y-1/2') pointer-events-none hidden
314
-
315
- .loading
316
- @apply relative inline-block w-4 h-4
317
-
318
- div
319
- @apply absolute block w-4 h-4 border-2 rounded-full
320
- animation loading 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite
321
-
322
- &:nth-child(1)
323
- animation-delay -0.45s
324
-
325
- &:nth-child(2)
326
- animation-delay -0.3s
327
-
328
- &:nth-child(3)
329
- animation-delay -0.15s
330
-
331
- @keyframes loading
332
- 0%
333
- transform rotate(0deg)
334
-
335
- 100%
336
- transform rotate(360deg)
337
- </style>
@@ -1,35 +0,0 @@
1
- <template lang="pug">
2
- .linear-progress-bar
3
- .linear-progress-bar-value
4
- </template>
5
-
6
- <script lang="ts">
7
- export default defineComponent({
8
- name: "SLLinearProgressBar",
9
- });
10
- </script>
11
-
12
- <style lang="stylus" scoped>
13
- .linear-progress-bar
14
- @apply w-full h-2 overflow-hidden
15
- background-color #D3D3D3
16
- border-radius 1px
17
-
18
- &-value
19
- @apply w-full h-full
20
- background linear-gradient(270deg, rgba(211, 211, 211, 0.62) 0.08%, #E1E1E1 46.69%, rgba(211, 211, 211, 0.62) 100%)
21
- animation indeterminateAnimation 1s infinite linear
22
- transform-origin 0% 50%
23
-
24
- @keyframes indeterminateAnimation {
25
- 0% {
26
- transform translateX(0) scaleX(0)
27
- }
28
- 40% {
29
- transform translateX(0) scaleX(0.4)
30
- }
31
- 100% {
32
- transform translateX(100%) scaleX(0.5)
33
- }
34
- }
35
- </style>