@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.
- package/AGENTS.md +59 -0
- package/CLAUDE.md +36 -0
- package/README.md +7 -7
- package/app/app.config.ts +14 -0
- package/app/app.vue +5 -0
- package/app/assets/css/layout.css +134 -0
- package/app/assets/css/main.css +189 -0
- package/{components → app/components}/SLAlertModal.vue +24 -16
- package/{components → app/components}/SLBreadcrumbs.vue +12 -8
- package/app/components/SLButton.vue +370 -0
- package/{components → app/components}/SLCalendarButton.vue +40 -34
- package/{components → app/components}/SLCalendarPopup.vue +79 -53
- package/{components → app/components}/SLCard.vue +57 -41
- package/{components → app/components}/SLChart.vue +6 -3
- package/{components → app/components}/SLCheckbox.vue +92 -49
- package/{components → app/components}/SLCircleButton.vue +25 -16
- package/{components → app/components}/SLCollapsableBlock.vue +44 -33
- package/{components → app/components}/SLCollapsableMulitPillSelect.vue +20 -15
- package/{components → app/components}/SLConfirmModal.vue +9 -6
- package/{components → app/components}/SLContextMenu.vue +88 -48
- package/{components → app/components}/SLDateInput.vue +109 -92
- package/{components → app/components}/SLDatePicker.vue +9 -7
- package/{components → app/components}/SLDistributor.vue +1 -1
- package/{components → app/components}/SLDownloadButton.vue +39 -29
- package/{components → app/components}/SLDraggable.vue +2 -2
- package/{components → app/components}/SLDropdown.vue +33 -25
- package/{components → app/components}/SLDropdownItem.vue +9 -5
- package/{components → app/components}/SLElementWithTitle.vue +12 -7
- package/{components → app/components}/SLEyeCheckbox.vue +44 -31
- package/{components → app/components}/SLFileInput.vue +23 -16
- package/{components → app/components}/SLGenderAgeSelect.vue +52 -36
- package/{components → app/components}/SLHourRangeInput.vue +45 -32
- package/{components → app/components}/SLIOSSwitch.vue +81 -60
- package/{components → app/components}/SLIcon.vue +4 -3
- package/{components → app/components}/SLIconButton.vue +31 -29
- package/{components → app/components}/SLInfoTip.vue +51 -40
- package/{components → app/components}/SLInsightSitePage.vue +12 -7
- package/{components → app/components}/SLLegend.vue +19 -12
- package/app/components/SLLinearProgressBar.vue +22 -0
- package/{components → app/components}/SLLink.vue +12 -8
- package/{components → app/components}/SLLoading.vue +34 -31
- package/{components → app/components}/SLMapChart.vue +5 -4
- package/{components → app/components}/SLModal.vue +90 -66
- package/{components → app/components}/SLMonthCalendarButton.vue +91 -45
- package/{components → app/components}/SLMonthPicker.vue +42 -37
- package/{components → app/components}/SLMultiEmailInput.vue +163 -113
- package/{components → app/components}/SLMultiSelect.vue +37 -26
- package/{components → app/components}/SLNoData.vue +16 -11
- package/app/components/SLNotification.vue +155 -0
- package/{components → app/components}/SLPageModal.vue +14 -9
- package/{components → app/components}/SLPagination.vue +45 -33
- package/{components → app/components}/SLPillCheckbox.vue +50 -42
- package/{components → app/components}/SLPillLabel.vue +43 -28
- package/{components → app/components}/SLPopupMenuButton.vue +26 -17
- package/{components → app/components}/SLProfileButton.vue +28 -20
- package/{components → app/components}/SLProjectShareItem.vue +30 -17
- package/{components → app/components}/SLRadioButton.vue +41 -33
- package/{components → app/components}/SLRadioButtonGroup.vue +28 -23
- package/app/components/SLRadioGroup.vue +221 -0
- package/{components → app/components}/SLRangeInput.vue +53 -38
- package/{components → app/components}/SLRegionsMapChart.vue +5 -4
- package/{components → app/components}/SLRightSider.vue +50 -40
- package/{components → app/components}/SLSearchInput.vue +24 -19
- package/{components → app/components}/SLSelect.vue +114 -87
- package/{components → app/components}/SLSelectAllToggle.vue +52 -37
- package/app/components/SLSidebarNav.vue +487 -0
- package/{components → app/components}/SLSidebarNavGroupItem.vue +13 -10
- package/{components → app/components}/SLSidebarNavGroupItemSection.vue +240 -179
- package/{components → app/components}/SLSidebarNavLinkItem.vue +131 -109
- package/{components → app/components}/SLSidebarNavSectionItem.vue +21 -18
- package/{components → app/components}/SLSitePage.vue +35 -24
- package/{components → app/components}/SLSkyInsightSitePage.vue +13 -8
- package/{components → app/components}/SLSortByDropdown.vue +35 -22
- package/{components → app/components}/SLSpinIcon.vue +6 -3
- package/{components → app/components}/SLStayRangeInput.vue +47 -36
- package/{components → app/components}/SLTab.vue +7 -2
- package/app/components/SLTable.vue +472 -0
- package/{components → app/components}/SLTableTooltip.vue +44 -30
- package/app/components/SLTabs.vue +528 -0
- package/{components → app/components}/SLTextInput.vue +162 -134
- package/{components → app/components}/SLTextarea.vue +40 -29
- package/{components → app/components}/SLToast.vue +19 -11
- package/{components → app/components}/SLToggleButton.vue +18 -11
- package/{components → app/components}/SLTwoLayerMultiSelect.vue +180 -85
- package/{components → app/components}/SLTwoLayerSelect.vue +47 -37
- package/{components → app/components}/SLTwoLayerSingleSelect.vue +52 -33
- package/{components → app/components}/SLWarnModal.vue +9 -7
- package/app/interface/commons.ts +7 -0
- package/{utils → app/utils}/index.ts +213 -146
- package/eslint.config.js +3 -0
- package/nuxt.config.ts +17 -14
- package/package.json +10 -9
- package/skills-lock.json +59 -0
- package/tsconfig.json +1 -6
- package/.eslintrc.cjs +0 -4
- package/app.config.ts +0 -5
- package/assets/css/layout.styl +0 -98
- package/assets/css/tailwind.css +0 -3
- package/components/SLButton.vue +0 -337
- package/components/SLLinearProgressBar.vue +0 -35
- package/components/SLNotification.vue +0 -151
- package/components/SLRadioGroup.vue +0 -209
- package/components/SLSidebarNav.vue +0 -427
- package/components/SLTable.vue +0 -455
- package/components/SLTabs.vue +0 -475
- package/interface/commons.ts +0 -7
- package/pages/index.vue +0 -15
- package/tailwind.config.js +0 -271
- /package/{assets → app/assets}/css/fonts/MEShPlus-font-icon.eot +0 -0
- /package/{assets → app/assets}/css/fonts/MEShPlus-font-icon.svg +0 -0
- /package/{assets → app/assets}/css/fonts/MEShPlus-font-icon.ttf +0 -0
- /package/{assets → app/assets}/css/fonts/MEShPlus-font-icon.woff +0 -0
- /package/{assets → app/assets}/css/icons.css +0 -0
- /package/{assets → app/assets}/images/commons/app-logo-white.png +0 -0
- /package/{assets → app/assets}/images/commons/app-logo.png +0 -0
- /package/{assets → app/assets}/images/commons/empty-box.png +0 -0
- /package/{interface → app/interface}/IDateRange.ts +0 -0
- /package/{interface → app/interface}/IHourRange.ts +0 -0
- /package/{interface → app/interface}/IInputOption.ts +0 -0
- /package/{interface → app/interface}/ILegendItem.ts +0 -0
- /package/{interface → app/interface}/IOrganization.ts +0 -0
- /package/{interface → app/interface}/IPopupMenuButton.ts +0 -0
- /package/{interface → app/interface}/IStayRange.ts +0 -0
- /package/{interface → app/interface}/ITableField.ts +0 -0
- /package/{interface → app/interface}/IWeb.ts +0 -0
- /package/{interface → app/interface}/NavConfigType.ts +0 -0
- /package/{models → app/models}/DateRange.ts +0 -0
- /package/{plugins → app/plugins}/v-calendar.ts +0 -0
- /package/{utils → app/utils}/constants.ts +0 -0
- /package/{utils → app/utils}/generateSheet.ts +0 -0
package/AGENTS.md
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# AGENTS.md
|
|
2
|
+
|
|
3
|
+
This file provides context, development standards, and instructions for AI agents working in this repository.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
`@mptw/skylens-ui` is a **Nuxt Layer** library designed to be extended by other Nuxt applications. The core UI components and reusable logic reside in the repository root (`/app`), while the `.playground` directory serves as a local implementation environment for development, testing, and previewing.
|
|
8
|
+
|
|
9
|
+
## Technical Stack
|
|
10
|
+
|
|
11
|
+
- **Framework**: Nuxt 4 (`nuxt` v4.x) / Vue 3 Composition API (`vue` v3.5+)
|
|
12
|
+
- **Styling**: Tailwind CSS v4 (`tailwindcss` v4.x + `@tailwindcss/vite`)
|
|
13
|
+
- **Templating**: Pug (`pug` / `@vue/language-plugin-pug`) for Vue component templates
|
|
14
|
+
- **Data Visualization**: ECharts (`echarts` + `vue-echarts`)
|
|
15
|
+
- **Key Libraries**: GSAP, Swiper, V-Calendar, Date-fns, Lodash-es, RxJS, SortableJS, CommonMark, DOMPurify, ExcelJS
|
|
16
|
+
|
|
17
|
+
## Architecture & File Structure
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
.
|
|
21
|
+
├── app/ # Core Nuxt Layer source code
|
|
22
|
+
│ ├── assets/ # Global styles and static design assets
|
|
23
|
+
│ ├── components/ # Reusable UI components (prefixed with `SL`, e.g., `SLButton.vue`)
|
|
24
|
+
│ ├── interface/ # TypeScript interface & type definitions
|
|
25
|
+
│ ├── models/ # Data models, domain logic, and state management
|
|
26
|
+
│ ├── plugins/ # Nuxt framework plugins
|
|
27
|
+
│ └── utils/ # Utility functions and shared helpers
|
|
28
|
+
├── .playground/ # Sandbox Nuxt app used to test & demo layer components
|
|
29
|
+
├── nuxt.config.ts # Main Nuxt layer configuration
|
|
30
|
+
├── package.json # Package dependencies & scripts
|
|
31
|
+
└── eslint.config.js # ESLint configuration
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Development Commands
|
|
35
|
+
|
|
36
|
+
Execute development scripts using `npm` or `pnpm`:
|
|
37
|
+
|
|
38
|
+
- **Development Server** (boots `.playground`): `npm run dev`
|
|
39
|
+
- **Prepare Playground**: `npm run dev:prepare`
|
|
40
|
+
- **Production Build**: `npm run build`
|
|
41
|
+
- **Static Generation**: `npm run generate`
|
|
42
|
+
- **Preview Production Build**: `npm run preview`
|
|
43
|
+
- **Lint Codebase**: `npm run lint`
|
|
44
|
+
|
|
45
|
+
## Code Guidelines & Best Practices
|
|
46
|
+
|
|
47
|
+
1. **Component Conventions**:
|
|
48
|
+
- Write components using Vue 3 Composition API with `<script setup lang="ts">`.
|
|
49
|
+
- Use Pug for templates (`<template lang="pug">`).
|
|
50
|
+
- Name reusable UI components in `app/components/` with the `SL` prefix (e.g., `SLButton.vue`).
|
|
51
|
+
|
|
52
|
+
2. **Styling**:
|
|
53
|
+
- Use Tailwind CSS v4 for styling.
|
|
54
|
+
- Maintain global design system tokens and assets inside `app/assets/`.
|
|
55
|
+
|
|
56
|
+
3. **Development Workflow**:
|
|
57
|
+
- Implement reusable layer code inside `app/`.
|
|
58
|
+
- Verify features and component renders within the `.playground/` environment via `npm run dev`.
|
|
59
|
+
- Run `npm run lint` before committing code changes.
|
package/CLAUDE.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# CLAUDE.md
|
|
2
|
+
|
|
3
|
+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
4
|
+
|
|
5
|
+
## Development Commands
|
|
6
|
+
|
|
7
|
+
- Dev server (boots .playground): `npm run dev`
|
|
8
|
+
- Prepare playground: `npm run dev:prepare`
|
|
9
|
+
- Build for production: `npm run build`
|
|
10
|
+
- Statically generate: `npm run generate`
|
|
11
|
+
- Preview production build: `npm run preview`
|
|
12
|
+
- Lint codebase: `npm run lint`
|
|
13
|
+
|
|
14
|
+
## Architecture & Structure
|
|
15
|
+
|
|
16
|
+
This repository is a **Nuxt Layer**, designed to be extended by other Nuxt projects. The reusable logic and UI reside in the root, while the `.playground` directory serves as a local implementation for development and testing.
|
|
17
|
+
|
|
18
|
+
### Core Layer Structure (`/app`)
|
|
19
|
+
|
|
20
|
+
- `components/`: UI components, mostly prefixed with `SL` (e.g., `SLButton.vue`).
|
|
21
|
+
- `interface/`: TypeScript interface definitions.
|
|
22
|
+
- `models/`: Data models and state definitions.
|
|
23
|
+
- `plugins/`: Nuxt plugins for extending framework functionality.
|
|
24
|
+
- `utils/`: Shared utility functions.
|
|
25
|
+
- `assets/`: Global styles and static assets.
|
|
26
|
+
|
|
27
|
+
### Technical Stack
|
|
28
|
+
|
|
29
|
+
- **Framework**: Nuxt 4 / Vue 3
|
|
30
|
+
- **Styling**: Tailwind CSS v4
|
|
31
|
+
- **Templating**: Pug is used for Vue templates.
|
|
32
|
+
- **Visualization**: ECharts (`vue-echarts`) is used for charts and maps.
|
|
33
|
+
|
|
34
|
+
### Development Workflow
|
|
35
|
+
|
|
36
|
+
When adding or modifying components, implement them in `app/components/` and verify their behavior by running the development server (`npm run dev`), which renders the layer within the `.playground` environment.
|
package/README.md
CHANGED
|
@@ -10,15 +10,15 @@ Make sure to install the dependencies:
|
|
|
10
10
|
pnpm install
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
## Working on your
|
|
13
|
+
## Working on your layer
|
|
14
14
|
|
|
15
|
-
Your
|
|
15
|
+
Your layer is at the root of this repository, it is exactly like a regular Nuxt project, except you can publish it on NPM.
|
|
16
16
|
|
|
17
|
-
The `.playground` directory should help you on trying your
|
|
17
|
+
The `.playground` directory should help you on trying your layer during development.
|
|
18
18
|
|
|
19
|
-
Running `pnpm dev` will prepare and boot `.playground` directory, which imports your
|
|
19
|
+
Running `pnpm dev` will prepare and boot `.playground` directory, which imports your layer itself.
|
|
20
20
|
|
|
21
|
-
## Distributing your
|
|
21
|
+
## Distributing your layer
|
|
22
22
|
|
|
23
23
|
Your Nuxt layer is shaped exactly the same as any other Nuxt project, except you can publish it on NPM.
|
|
24
24
|
|
|
@@ -31,14 +31,14 @@ npm publish --access public
|
|
|
31
31
|
Once done, your users will only have to run:
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
|
-
npm install --save your-
|
|
34
|
+
npm install --save your-layer
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
Then add the dependency to their `extends` in `nuxt.config`:
|
|
38
38
|
|
|
39
39
|
```ts
|
|
40
40
|
defineNuxtConfig({
|
|
41
|
-
extends: 'your-
|
|
41
|
+
extends: 'your-layer'
|
|
42
42
|
})
|
|
43
43
|
```
|
|
44
44
|
|
package/app/app.vue
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
@reference '~ui/app/assets/css/main.css';
|
|
2
|
+
|
|
3
|
+
@layer base {
|
|
4
|
+
body {
|
|
5
|
+
font-family:
|
|
6
|
+
"微軟正黑體",
|
|
7
|
+
"Microsoft JhengHei",
|
|
8
|
+
ui-sans-serif,
|
|
9
|
+
system-ui,
|
|
10
|
+
-apple-system,
|
|
11
|
+
BlinkMacSystemFont,
|
|
12
|
+
"Segoe UI",
|
|
13
|
+
Roboto,
|
|
14
|
+
"Helvetica Neue",
|
|
15
|
+
Arial,
|
|
16
|
+
"Noto Sans",
|
|
17
|
+
sans-serif,
|
|
18
|
+
"Apple Color Emoji",
|
|
19
|
+
"Segoe UI Emoji",
|
|
20
|
+
"Segoe UI Symbol",
|
|
21
|
+
"Noto Color Emoji";
|
|
22
|
+
background-color: #f3f4f8;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
label {
|
|
26
|
+
@apply inline-block;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@layer components {
|
|
31
|
+
.vc-skylens-purple {
|
|
32
|
+
--vc-accent-200: var(--color-primary-100);
|
|
33
|
+
--vc-accent-600: var(--color-primary);
|
|
34
|
+
--vc-accent-500: var(--color-primary-300);
|
|
35
|
+
--vc-accent-700: var(--color-primary-600);
|
|
36
|
+
--vc-accent-900: var(--color-primary-800);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.vc-skylens-gray {
|
|
40
|
+
--vc-accent-200: var(--color-pgray-5);
|
|
41
|
+
--vc-accent-500: var(--color-pgray-4);
|
|
42
|
+
--vc-accent-600: var(--color-pgray-3);
|
|
43
|
+
--vc-accent-700: var(--color-pgray-3);
|
|
44
|
+
--vc-accent-900: var(--color-pgray-2);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.vc-container .vc-weeks {
|
|
48
|
+
@apply px-0;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.scrollbar-y {
|
|
52
|
+
@apply absolute top-0 right-0 bottom-0 w-1 rounded-full;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.scrollbar-y .indicator {
|
|
56
|
+
@apply w-full h-12 bg-primary-300 rounded-full;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.markdown-content {
|
|
60
|
+
@apply text-base leading-relaxed;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.markdown-content ol {
|
|
64
|
+
@apply list-decimal list-inside;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.markdown-content ol li {
|
|
68
|
+
@apply font-bold;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.markdown-content ol li ul {
|
|
72
|
+
@apply ml-3 list-disc list-inside;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.markdown-content ol li ul li {
|
|
76
|
+
@apply font-normal;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.markdown-content ol li ul li ul {
|
|
80
|
+
@apply ml-5 list-none;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.custom-scrollbar-y {
|
|
84
|
+
@apply overflow-x-hidden overflow-y-auto;
|
|
85
|
+
-webkit-overflow-scrolling: touch;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.custom-scrollbar-y::-webkit-scrollbar {
|
|
89
|
+
@apply w-1;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.custom-scrollbar-y::-webkit-scrollbar-track {
|
|
93
|
+
@apply bg-transparent;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.custom-scrollbar-y::-webkit-scrollbar-thumb {
|
|
97
|
+
@apply bg-primary-300 rounded;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.custom-scrollbar-y::-webkit-scrollbar-thumb:hover {
|
|
101
|
+
@apply bg-primary-500;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.custom-scrollbar-x {
|
|
105
|
+
@apply overflow-x-auto overflow-y-hidden;
|
|
106
|
+
-webkit-overflow-scrolling: touch;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.custom-scrollbar-x::-webkit-scrollbar {
|
|
110
|
+
@apply h-1;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.custom-scrollbar-x::-webkit-scrollbar-track {
|
|
114
|
+
@apply bg-transparent;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.custom-scrollbar-x::-webkit-scrollbar-thumb {
|
|
118
|
+
@apply bg-secondary rounded;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.custom-scrollbar-x::-webkit-scrollbar-thumb:hover {
|
|
122
|
+
@apply bg-secondary;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.fade-enter-active,
|
|
126
|
+
.fade-leave-active {
|
|
127
|
+
@apply transition-opacity;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.fade-enter,
|
|
131
|
+
.fade-leave-to {
|
|
132
|
+
@apply opacity-0;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
@import "tailwindcss";
|
|
2
|
+
|
|
3
|
+
@theme {
|
|
4
|
+
--font-login-title: "Roboto";
|
|
5
|
+
|
|
6
|
+
--color-primary: "#626493";
|
|
7
|
+
--color-primary-15: "#FAFAFD";
|
|
8
|
+
--color-primary-25: "#F9F9FF";
|
|
9
|
+
--color-primary-50: "#F3F4F8";
|
|
10
|
+
--color-primary-100: "#E8EAF2";
|
|
11
|
+
--color-primary-200: "#DDE1F3";
|
|
12
|
+
--color-primary-300: "#BABBE1";
|
|
13
|
+
--color-primary-400: "#A1A3D0";
|
|
14
|
+
--color-primary-500: "#9193C1";
|
|
15
|
+
--color-primary-600: "#8486B4";
|
|
16
|
+
--color-primary-700: "#626493";
|
|
17
|
+
--color-primary-800: "#4E5076";
|
|
18
|
+
--color-primary-900: "#3B3C58";
|
|
19
|
+
|
|
20
|
+
--color-secondary: "#6182C3";
|
|
21
|
+
--color-secondary-50: "#F1F5FC";
|
|
22
|
+
--color-secondary-200: "#EAF1FF";
|
|
23
|
+
--color-secondary-400: "#A9BADB";
|
|
24
|
+
--color-secondary-500: "#90A8D7";
|
|
25
|
+
--color-secondary-600: "#7996CF";
|
|
26
|
+
--color-secondary-700: "#6182C3";
|
|
27
|
+
--color-secondary-800: "#4E689C";
|
|
28
|
+
--color-secondary-new-dark: "#445B89";
|
|
29
|
+
|
|
30
|
+
--color-third: "#4C8098";
|
|
31
|
+
--color-third-50: "#F9FFF1";
|
|
32
|
+
--color-third-100: "#E8F2EB";
|
|
33
|
+
--color-third-400: "#B3D9C7";
|
|
34
|
+
--color-third-500: "#82CDDB";
|
|
35
|
+
--color-third-600: "#4EA3B6";
|
|
36
|
+
--color-third-700: "#4C8098";
|
|
37
|
+
|
|
38
|
+
--color-four-100: "#FAE7F0";
|
|
39
|
+
--color-four-400: "#FEABBF";
|
|
40
|
+
--color-four-500: "#EC6F8D";
|
|
41
|
+
|
|
42
|
+
--color-highlight: "#EEB13C";
|
|
43
|
+
--color-highlight-50: "#FFFBF1";
|
|
44
|
+
--color-highlight-100: "#F2EFE8";
|
|
45
|
+
--color-highlight-300: "#F6D79D";
|
|
46
|
+
--color-highlight-400: "#FFD874";
|
|
47
|
+
--color-highlight-500: "#FBBE21";
|
|
48
|
+
--color-highlight-600: "#FDB242";
|
|
49
|
+
--color-highlight-700: "#EEB13C";
|
|
50
|
+
|
|
51
|
+
--color-poi: "#D35092";
|
|
52
|
+
--color-poi-100: "#F1AFCE";
|
|
53
|
+
--color-poi-300: "#EB8CB9";
|
|
54
|
+
--color-poi-700: "#D35092";
|
|
55
|
+
--color-poi-900: "#AA5488";
|
|
56
|
+
--color-poi-1000: "#7E4E77";
|
|
57
|
+
|
|
58
|
+
--color-danger: "#F35A5A";
|
|
59
|
+
--color-danger-700: "#F35A5A";
|
|
60
|
+
--color-danger-light: "#FE8678";
|
|
61
|
+
|
|
62
|
+
--color-red: "#EB5757";
|
|
63
|
+
--color-red-2: "#F34141";
|
|
64
|
+
--color-red-700: "#EB5757";
|
|
65
|
+
|
|
66
|
+
--color-pgray-1: "#2C2D31";
|
|
67
|
+
--color-pgray-2: "#4D4F55";
|
|
68
|
+
--color-pgray-3: "#858792";
|
|
69
|
+
--color-pgray-4: "#BCBFCF";
|
|
70
|
+
--color-pgray-4p5: "#C7C5D0";
|
|
71
|
+
--color-pgray-5: "#DFE1E9";
|
|
72
|
+
--color-pgray-6: "#ECECF2";
|
|
73
|
+
|
|
74
|
+
--color-gray-1: "#333333";
|
|
75
|
+
--color-gray-2: "#4F4F4F";
|
|
76
|
+
--color-gray-3: "#828282";
|
|
77
|
+
--color-gray-4: "#BDBDBD";
|
|
78
|
+
--color-gray-5: "#E0E0E0";
|
|
79
|
+
--color-gray-6: "#F2F2F2";
|
|
80
|
+
|
|
81
|
+
--color-green: "#27AE60";
|
|
82
|
+
--color-green-2: "#6EC393";
|
|
83
|
+
--color-green-700: "#27AE60";
|
|
84
|
+
|
|
85
|
+
--color-blue-1: "#2F80ED";
|
|
86
|
+
--color-blue-2: "#110DFB";
|
|
87
|
+
--color-blue-3: "#332FED";
|
|
88
|
+
|
|
89
|
+
--color-orange: "#F48A28";
|
|
90
|
+
--color-orange-700: "#F48A28";
|
|
91
|
+
|
|
92
|
+
--color-edit: "#6E6BDD";
|
|
93
|
+
--color-edit-700: "#6E6BDD";
|
|
94
|
+
|
|
95
|
+
--color-card-lightpr-bg: "#FBFCFF";
|
|
96
|
+
|
|
97
|
+
--color-insight-title: "#696CBA";
|
|
98
|
+
--color-insight-title-line: "#9B74DA";
|
|
99
|
+
--color-insight-hint-line: "#ADB4F5";
|
|
100
|
+
--color-insight-web-title-start: "#39BBE4";
|
|
101
|
+
--color-insight-web-title-end: "rgb(144 128 241/0.74)";
|
|
102
|
+
--color-insight-poi-title-start: "rgb(255 131 92/0.7)";
|
|
103
|
+
--color-insight-poi-title-end: "rgb(120 91 207/0.74)";
|
|
104
|
+
|
|
105
|
+
--color-mask: "#47485A";
|
|
106
|
+
--color-mask-700: "#47485A";
|
|
107
|
+
|
|
108
|
+
--color-login-bg: "#fefefe";
|
|
109
|
+
--color-login-bg-700: "#fefefe";
|
|
110
|
+
|
|
111
|
+
--color-nav-color-switch-bg: "#2D2F57";
|
|
112
|
+
--color-nav-color-switch-bg-700: "#2D2F57";
|
|
113
|
+
|
|
114
|
+
--color-linear-progress-bar: linear-gradient(
|
|
115
|
+
270deg,
|
|
116
|
+
rgba(211, 211, 211, 0.62) 0.08%,
|
|
117
|
+
#e1e1e1 46.69%,
|
|
118
|
+
rgba(211, 211, 211, 0.62) 100%
|
|
119
|
+
);
|
|
120
|
+
|
|
121
|
+
--shadow-default: "0px 2px 4px rgba(111, 111, 111, 0.2)";
|
|
122
|
+
--shadow-md: "0px 2px 8px rgba(88, 82, 103, 0.25)";
|
|
123
|
+
--shadow-inline: "inset 0px -1px 0px rgba(186, 187, 225, 0.8)";
|
|
124
|
+
--shadow-second-inline: "inset 0px -1px 0px rgba(238, 177, 60, 0.8)";
|
|
125
|
+
--shadow-header-drop: "0px 5px 12px rgba(88, 82, 103, 0.45)";
|
|
126
|
+
--shadow-popup-sm: "0px 5px 5px -3px rgba(88, 82, 103, 0.2), 0px 3px 14px 2px rgba(88, 82, 103, 0.12)";
|
|
127
|
+
--shadow-popup-lg: "0px 5px 12px rgba(88, 82, 103, 0.45)";
|
|
128
|
+
--shadow-login: "2px 5px 20px rgba(107, 91, 141, 0.45)";
|
|
129
|
+
--shadow-insight-layer: "0px 4px 4px rgba(70, 56, 107, 0.25)";
|
|
130
|
+
--shadow-insight-comment: "0px 4px 12px rgba(37, 35, 143, 0.25)";
|
|
131
|
+
--shadow-insight-card: "0px 4px 12px rgba(77, 45, 147, 0.25)";
|
|
132
|
+
--shadow-insight-card-lg: "0px 4px 20px 0px rgba(0, 0, 0, 0.10)";
|
|
133
|
+
--shadow-small-card: "2px 2px 4px rgba(0, 0, 0, 0.1)";
|
|
134
|
+
--shadow-float-actions: "0px -6px 12px 0px rgba(90, 92, 133, 0.10)";
|
|
135
|
+
|
|
136
|
+
--text-sm: "0.875rem";
|
|
137
|
+
--text-sm--line-height: "1.1875rem";
|
|
138
|
+
--text-md: "0.9375rem";
|
|
139
|
+
--text-md--line-height: "1.25rem";
|
|
140
|
+
--text-base: "1rem";
|
|
141
|
+
--text-base--line-height: "1.3125rem";
|
|
142
|
+
--text-lg: "1.25rem";
|
|
143
|
+
--text-lg--line-height: "1.6875rem";
|
|
144
|
+
--text-0p75xl: "1.0625rem";
|
|
145
|
+
--text-0p75xl--line-height: "1.75rem";
|
|
146
|
+
--text-2p25xl: "1.5625rem";
|
|
147
|
+
--text-2p25xl--line-height: "1.8125rem";
|
|
148
|
+
--text-2p67xl: "1.75rem";
|
|
149
|
+
--text-2p67xl--line-height: "2rem";
|
|
150
|
+
--text-3p33xl: "2rem";
|
|
151
|
+
--text-3p33xl--line-height: "2.6875rem";
|
|
152
|
+
--text-3p67xl: "2.125rem";
|
|
153
|
+
--text-3p67xl--line-height: "2.4175rem";
|
|
154
|
+
--text-7p17xl: "4.75rem";
|
|
155
|
+
--text-16xl: "4rem";
|
|
156
|
+
--text-16xl--line-height: "4.625rem";
|
|
157
|
+
--text-18xl: "4.5rem";
|
|
158
|
+
--text-18xl--line-height: "6rem";
|
|
159
|
+
|
|
160
|
+
--transition-input-focus: "margin, padding, color, font-size, line-height, background-color";
|
|
161
|
+
--transition-app-header: "margin, width";
|
|
162
|
+
|
|
163
|
+
--text-shadow-default: "0px 4px 4px rgba(0, 0, 0, 0.25)";
|
|
164
|
+
--text-shadow-md: "0px 2px 8px rgba(88, 82, 103, 0.25)";
|
|
165
|
+
|
|
166
|
+
--animate-indeterminate: indeterminateAnimation 1s infinite linear;
|
|
167
|
+
--animate-loading: loading 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
|
|
168
|
+
|
|
169
|
+
@keyframes indeterminateAnimation {
|
|
170
|
+
0% {
|
|
171
|
+
transform: translateX(0) scaleX(0);
|
|
172
|
+
}
|
|
173
|
+
40% {
|
|
174
|
+
transform: translateX(0) scaleX(0.4);
|
|
175
|
+
}
|
|
176
|
+
100% {
|
|
177
|
+
transform: translateX(100%) scaleX(0.5);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
@keyframes loading {
|
|
182
|
+
0% {
|
|
183
|
+
transform: rotate(0deg);
|
|
184
|
+
}
|
|
185
|
+
100% {
|
|
186
|
+
transform: rotate(360deg);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
@@ -74,26 +74,34 @@ export default defineComponent({
|
|
|
74
74
|
});
|
|
75
75
|
</script>
|
|
76
76
|
|
|
77
|
-
<style
|
|
78
|
-
.
|
|
79
|
-
@apply z-60
|
|
77
|
+
<style>
|
|
78
|
+
@reference '~ui/app/assets/css/main.css';
|
|
80
79
|
|
|
81
|
-
|
|
82
|
-
|
|
80
|
+
.alert-modal {
|
|
81
|
+
@apply z-60;
|
|
82
|
+
}
|
|
83
83
|
|
|
84
|
-
|
|
85
|
-
|
|
84
|
+
.alert-modal .modal-backdrop {
|
|
85
|
+
@apply bg-white/40 backdrop-blur-[5px];
|
|
86
|
+
}
|
|
86
87
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
.alert-modal .modal-backdrop.show {
|
|
89
|
+
@apply bg-white/40;
|
|
90
|
+
}
|
|
90
91
|
|
|
91
|
-
|
|
92
|
-
|
|
92
|
+
.alert-modal .modal-body-content {
|
|
93
|
+
@apply text-base leading-6 text-pgray-2 text-center space-y-4;
|
|
94
|
+
}
|
|
93
95
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
+
.alert-modal .modal-body-content .icon {
|
|
97
|
+
@apply text-7.17xl;
|
|
98
|
+
}
|
|
96
99
|
|
|
97
|
-
|
|
98
|
-
|
|
100
|
+
.alert-modal .modal-body-content p {
|
|
101
|
+
@apply whitespace-pre-wrap;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.alert-modal .modal-footer {
|
|
105
|
+
@apply flex justify-center;
|
|
106
|
+
}
|
|
99
107
|
</style>
|
|
@@ -29,14 +29,18 @@ export default defineComponent({
|
|
|
29
29
|
});
|
|
30
30
|
</script>
|
|
31
31
|
|
|
32
|
-
<style
|
|
33
|
-
.
|
|
34
|
-
|
|
32
|
+
<style>
|
|
33
|
+
@reference '~ui/app/assets/css/main.css';
|
|
34
|
+
|
|
35
|
+
.breadcrumbs {
|
|
36
|
+
@apply flex flex-wrap items-center justify-start text-lg text-primary font-bold;
|
|
37
|
+
}
|
|
35
38
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
+
.breadcrumbs-container .breadcrumb-item:not(:last-child) {
|
|
40
|
+
@apply text-base font-normal;
|
|
41
|
+
}
|
|
39
42
|
|
|
40
|
-
|
|
41
|
-
|
|
43
|
+
.breadcrumbs-notice {
|
|
44
|
+
@apply inline-flex items-center;
|
|
45
|
+
}
|
|
42
46
|
</style>
|