@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
|
@@ -143,50 +143,62 @@ export default defineComponent({
|
|
|
143
143
|
});
|
|
144
144
|
</script>
|
|
145
145
|
|
|
146
|
-
<style
|
|
147
|
-
.
|
|
148
|
-
|
|
146
|
+
<style>
|
|
147
|
+
@reference '~ui/app/assets/css/main.css';
|
|
148
|
+
|
|
149
|
+
.pagination {
|
|
150
|
+
@apply flex items-center justify-end;
|
|
151
|
+
}
|
|
149
152
|
|
|
150
|
-
|
|
151
|
-
|
|
153
|
+
.pagination-info {
|
|
154
|
+
@apply inline-flex items-center mr-4 space-x-0.5 text-base text-pgray-2;
|
|
155
|
+
}
|
|
152
156
|
|
|
153
|
-
|
|
154
|
-
|
|
157
|
+
.pagination-info .custom-select {
|
|
158
|
+
@apply min-w-[2.3125rem];
|
|
159
|
+
}
|
|
155
160
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
161
|
+
.pagination-info .custom-select .form-control label {
|
|
162
|
+
@apply text-center;
|
|
163
|
+
}
|
|
159
164
|
|
|
160
|
-
|
|
161
|
-
|
|
165
|
+
.pagination-info .custom-select .form-control label .icon {
|
|
166
|
+
@apply hidden;
|
|
167
|
+
}
|
|
162
168
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
@apply s('min-w-0') text-center
|
|
169
|
+
.pagination-info .custom-select .select-options .option-list .option-button {
|
|
170
|
+
@apply min-w-0 text-center;
|
|
171
|
+
}
|
|
167
172
|
|
|
168
|
-
|
|
169
|
-
|
|
173
|
+
.pagination-items {
|
|
174
|
+
@apply inline-flex items-center;
|
|
175
|
+
}
|
|
170
176
|
|
|
171
|
-
|
|
172
|
-
|
|
177
|
+
.pagination-item + .pagination-item {
|
|
178
|
+
@apply border-l;
|
|
179
|
+
}
|
|
173
180
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
181
|
+
.pagination-item {
|
|
182
|
+
@apply inline-flex items-center justify-center min-w-[1.5rem] min-h-[1.5rem] p-1 border-t border-b border-primary bg-white text-xs text-primary hover:text-primary-600 focus:text-primary;
|
|
183
|
+
}
|
|
177
184
|
|
|
178
|
-
|
|
179
|
-
|
|
185
|
+
.pagination-item.pagination-item--icon {
|
|
186
|
+
@apply py-1.5;
|
|
187
|
+
}
|
|
180
188
|
|
|
181
|
-
|
|
182
|
-
|
|
189
|
+
.pagination-item:first-child {
|
|
190
|
+
@apply border-l rounded-l-sm;
|
|
191
|
+
}
|
|
183
192
|
|
|
184
|
-
|
|
185
|
-
|
|
193
|
+
.pagination-item:last-child {
|
|
194
|
+
@apply border-r rounded-r-sm;
|
|
195
|
+
}
|
|
186
196
|
|
|
187
|
-
|
|
188
|
-
|
|
197
|
+
.pagination-item.active {
|
|
198
|
+
@apply bg-primary text-white;
|
|
199
|
+
}
|
|
189
200
|
|
|
190
|
-
|
|
191
|
-
|
|
201
|
+
.pagination-item.more {
|
|
202
|
+
@apply cursor-default hover:text-primary-600;
|
|
203
|
+
}
|
|
192
204
|
</style>
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<script lang="ts">
|
|
17
17
|
import type { PropType } from "vue";
|
|
18
18
|
import { isEqual } from "lodash-es";
|
|
19
|
-
import { getUID } from "~ui/utils";
|
|
19
|
+
import { getUID } from "~ui/app/utils";
|
|
20
20
|
|
|
21
21
|
export default defineComponent({
|
|
22
22
|
name: "SLPillCheckbox",
|
|
@@ -120,7 +120,7 @@ export default defineComponent({
|
|
|
120
120
|
} else {
|
|
121
121
|
emit(
|
|
122
122
|
"update:modelValue",
|
|
123
|
-
isTargetChecked ? trueValue.value : falseValue.value
|
|
123
|
+
isTargetChecked ? trueValue.value : falseValue.value,
|
|
124
124
|
);
|
|
125
125
|
}
|
|
126
126
|
}
|
|
@@ -139,58 +139,66 @@ export default defineComponent({
|
|
|
139
139
|
});
|
|
140
140
|
</script>
|
|
141
141
|
|
|
142
|
-
<style
|
|
143
|
-
.
|
|
144
|
-
@apply inline-block relative
|
|
142
|
+
<style>
|
|
143
|
+
@reference '~ui/app/assets/css/main.css';
|
|
145
144
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
145
|
+
.pill-checkbox {
|
|
146
|
+
@apply inline-block relative;
|
|
147
|
+
}
|
|
149
148
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
149
|
+
.pill-checkbox.pill-checkbox-xs label {
|
|
150
|
+
@apply py-px text-xs;
|
|
151
|
+
}
|
|
153
152
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
153
|
+
.pill-checkbox.pill-checkbox-third-500 input:checked + label {
|
|
154
|
+
@apply bg-third-500 border-third-500;
|
|
155
|
+
}
|
|
157
156
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
157
|
+
.pill-checkbox.pill-checkbox-third input:checked + label {
|
|
158
|
+
@apply bg-third border-third;
|
|
159
|
+
}
|
|
161
160
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
161
|
+
.pill-checkbox.pill-checkbox-primary input:checked + label {
|
|
162
|
+
@apply bg-primary border-primary;
|
|
163
|
+
}
|
|
165
164
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
165
|
+
.pill-checkbox.pill-checkbox-primary-600 input:checked + label {
|
|
166
|
+
@apply bg-primary-600 border-primary-600;
|
|
167
|
+
}
|
|
169
168
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
169
|
+
.pill-checkbox.pill-checkbox-highlight input:checked + label {
|
|
170
|
+
@apply bg-highlight border-highlight;
|
|
171
|
+
}
|
|
173
172
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
173
|
+
.pill-checkbox.pill-checkbox-blue-1 input:checked + label {
|
|
174
|
+
@apply bg-blue-1 border-blue-1;
|
|
175
|
+
}
|
|
177
176
|
|
|
178
|
-
|
|
179
|
-
|
|
177
|
+
.pill-checkbox.pill-checkbox-secondary-400 input:checked + label {
|
|
178
|
+
@apply bg-secondary-400 border-secondary-400;
|
|
179
|
+
}
|
|
180
180
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
181
|
+
.pill-checkbox input {
|
|
182
|
+
@apply absolute left-1/2 top-1/2 transform -translate-x-1/2 -translate-y-1/2;
|
|
183
|
+
}
|
|
184
184
|
|
|
185
|
-
|
|
186
|
-
|
|
185
|
+
.pill-checkbox label {
|
|
186
|
+
@apply inline-flex justify-center items-center relative px-1.75 py-0.75 bg-white border border-primary-300 rounded-full text-sm leading-4.75 text-pgray-2 align-top cursor-pointer;
|
|
187
|
+
}
|
|
187
188
|
|
|
188
|
-
|
|
189
|
-
|
|
189
|
+
.pill-checkbox label .icon {
|
|
190
|
+
@apply hidden ml-2;
|
|
191
|
+
}
|
|
190
192
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
+
.pill-checkbox input:checked + label {
|
|
194
|
+
@apply bg-white border-white text-white font-bold;
|
|
195
|
+
}
|
|
193
196
|
|
|
194
|
-
|
|
195
|
-
|
|
197
|
+
.pill-checkbox input:checked + label .icon {
|
|
198
|
+
@apply inline-block;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
.pill-checkbox input:disabled + label {
|
|
202
|
+
@apply bg-white border-pgray-5 text-pgray-4 font-normal cursor-default;
|
|
203
|
+
}
|
|
196
204
|
</style>
|
|
@@ -62,44 +62,59 @@ export default defineComponent({
|
|
|
62
62
|
});
|
|
63
63
|
</script>
|
|
64
64
|
|
|
65
|
-
<style
|
|
66
|
-
.
|
|
67
|
-
@apply inline-flex justify-center items-center relative s('px-1.75') s('py-0.75')
|
|
68
|
-
@apply bg-white border border-white rounded-full text-sm s('leading-4.75') text-white font-bold align-top whitespace-nowrap
|
|
65
|
+
<style>
|
|
66
|
+
@reference '~ui/app/assets/css/main.css';
|
|
69
67
|
|
|
70
|
-
|
|
71
|
-
|
|
68
|
+
.pill-label {
|
|
69
|
+
@apply inline-flex justify-center items-center relative px-1.75 py-0.75;
|
|
70
|
+
@apply bg-white border border-white rounded-full text-sm leading-4.75 text-white font-bold align-top whitespace-nowrap;
|
|
71
|
+
}
|
|
72
72
|
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
.pill-label.pill-label-xs {
|
|
74
|
+
@apply py-px text-xs;
|
|
75
|
+
}
|
|
75
76
|
|
|
76
|
-
|
|
77
|
-
|
|
77
|
+
.pill-label.pill-label-sm {
|
|
78
|
+
@apply py-px text-sm;
|
|
79
|
+
}
|
|
78
80
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
+
.pill-label.pill-label-white {
|
|
82
|
+
@apply text-pgray-2;
|
|
83
|
+
}
|
|
81
84
|
|
|
82
|
-
|
|
83
|
-
|
|
85
|
+
.pill-label.pill-label-third-500 {
|
|
86
|
+
@apply bg-third-500 border-third-500;
|
|
87
|
+
}
|
|
84
88
|
|
|
85
|
-
|
|
86
|
-
|
|
89
|
+
.pill-label.pill-label-third-600 {
|
|
90
|
+
@apply bg-third-600 border-third-600;
|
|
91
|
+
}
|
|
87
92
|
|
|
88
|
-
|
|
89
|
-
|
|
93
|
+
.pill-label.pill-label-third {
|
|
94
|
+
@apply bg-third border-third;
|
|
95
|
+
}
|
|
90
96
|
|
|
91
|
-
|
|
92
|
-
|
|
97
|
+
.pill-label.pill-label-primary {
|
|
98
|
+
@apply bg-primary border-primary;
|
|
99
|
+
}
|
|
93
100
|
|
|
94
|
-
|
|
95
|
-
|
|
101
|
+
.pill-label.pill-label-primary-600 {
|
|
102
|
+
@apply bg-primary-600 border-primary-600;
|
|
103
|
+
}
|
|
96
104
|
|
|
97
|
-
|
|
98
|
-
|
|
105
|
+
.pill-label.pill-label-highlight {
|
|
106
|
+
@apply bg-highlight border-highlight;
|
|
107
|
+
}
|
|
99
108
|
|
|
100
|
-
|
|
101
|
-
|
|
109
|
+
.pill-label.pill-label-blue-1 {
|
|
110
|
+
@apply bg-blue-1 border-blue-1;
|
|
111
|
+
}
|
|
102
112
|
|
|
103
|
-
|
|
104
|
-
|
|
113
|
+
.pill-label.pill-label-secondary {
|
|
114
|
+
@apply bg-secondary border-secondary;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.pill-label .icon {
|
|
118
|
+
@apply inline-block ml-2;
|
|
119
|
+
}
|
|
105
120
|
</style>
|
|
@@ -25,7 +25,7 @@ import type { PropType } from "vue";
|
|
|
25
25
|
import { fromEvent } from "rxjs";
|
|
26
26
|
import { createPopper } from "@popperjs/core";
|
|
27
27
|
import type { Options as PopperOptions } from "@popperjs/core";
|
|
28
|
-
import type IPopupMenuButton from "~ui/interface/IPopupMenuButton";
|
|
28
|
+
import type IPopupMenuButton from "~ui/app/interface/IPopupMenuButton";
|
|
29
29
|
|
|
30
30
|
export default defineComponent({
|
|
31
31
|
name: "SLPopupMenuButton",
|
|
@@ -133,26 +133,35 @@ export default defineComponent({
|
|
|
133
133
|
});
|
|
134
134
|
</script>
|
|
135
135
|
|
|
136
|
-
<style
|
|
137
|
-
.
|
|
138
|
-
@apply inline-block relative
|
|
136
|
+
<style>
|
|
137
|
+
@reference '~ui/app/assets/css/main.css';
|
|
139
138
|
|
|
140
|
-
.
|
|
141
|
-
@apply
|
|
139
|
+
.popup-menu-button {
|
|
140
|
+
@apply inline-block relative;
|
|
141
|
+
}
|
|
142
142
|
|
|
143
|
-
|
|
144
|
-
|
|
143
|
+
.buttons-popup {
|
|
144
|
+
@apply z-60 flex-col items-stretch border border-primary-300 rounded bg-white shadow-md hidden;
|
|
145
|
+
}
|
|
145
146
|
|
|
146
|
-
|
|
147
|
-
|
|
147
|
+
.buttons-popup[data-show] {
|
|
148
|
+
@apply flex;
|
|
149
|
+
}
|
|
148
150
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
+
.buttons-popup .menu-button {
|
|
152
|
+
@apply inline-flex flex-row flex-nowrap items-center justify-center px-2 py-1 space-x-2 text-base text-primary whitespace-nowrap;
|
|
153
|
+
}
|
|
151
154
|
|
|
152
|
-
|
|
153
|
-
|
|
155
|
+
.buttons-popup .menu-button:first-child {
|
|
156
|
+
@apply pt-2;
|
|
157
|
+
}
|
|
154
158
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
159
|
+
.buttons-popup .menu-button:last-child {
|
|
160
|
+
@apply pb-2;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.buttons-popup .menu-button-splitter {
|
|
164
|
+
@apply h-px mx-auto my-1 bg-primary-100;
|
|
165
|
+
width: calc(100% - var(--spacing) * 4);
|
|
166
|
+
}
|
|
158
167
|
</style>
|
|
@@ -38,7 +38,7 @@ export default defineComponent({
|
|
|
38
38
|
},
|
|
39
39
|
gitTag: {
|
|
40
40
|
type: String,
|
|
41
|
-
default:
|
|
41
|
+
default: "",
|
|
42
42
|
},
|
|
43
43
|
},
|
|
44
44
|
emits: ["edit", "logout"],
|
|
@@ -174,30 +174,38 @@ export default defineComponent({
|
|
|
174
174
|
});
|
|
175
175
|
</script>
|
|
176
176
|
|
|
177
|
-
<style
|
|
178
|
-
.
|
|
179
|
-
.toggle-button
|
|
180
|
-
@apply inline-flex items-center justify-center w-7 h-7 p-0 rounded-full bg-primary-400 text-lg text-white font-bold
|
|
181
|
-
@apply s('hover:bg-primary-600') s('active:bg-primary')
|
|
177
|
+
<style>
|
|
178
|
+
@reference '~ui/app/assets/css/main.css';
|
|
182
179
|
|
|
183
|
-
|
|
184
|
-
|
|
180
|
+
.profile-button .toggle-button {
|
|
181
|
+
@apply inline-flex items-center justify-center w-7 h-7 p-0 rounded-full bg-primary-400 text-lg text-white font-bold hover:bg-primary-600 active:bg-primary;
|
|
182
|
+
}
|
|
185
183
|
|
|
186
|
-
.profile-
|
|
187
|
-
@apply
|
|
184
|
+
.profile-button .toggle-button.active {
|
|
185
|
+
@apply bg-primary;
|
|
186
|
+
}
|
|
188
187
|
|
|
189
|
-
|
|
190
|
-
|
|
188
|
+
.profile-nav-popup {
|
|
189
|
+
@apply z-60 absolute min-w-[10.25rem] p-4 border border-primary bg-primary-50 rounded shadow-popup-lg pointer-events-none invisible;
|
|
190
|
+
}
|
|
191
191
|
|
|
192
|
-
|
|
193
|
-
|
|
192
|
+
.profile-nav-popup[data-show] {
|
|
193
|
+
@apply visible pointer-events-auto;
|
|
194
|
+
}
|
|
194
195
|
|
|
195
|
-
|
|
196
|
-
|
|
196
|
+
.profile-nav-popup-body {
|
|
197
|
+
@apply flex flex-col space-y-2;
|
|
198
|
+
}
|
|
197
199
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
+
.profile-nav-popup .profile-nav-item {
|
|
201
|
+
@apply inline-flex items-center space-x-2 text-base text-primary-600 hover:text-primary;
|
|
202
|
+
}
|
|
200
203
|
|
|
201
|
-
|
|
202
|
-
|
|
204
|
+
.profile-nav-popup .profile-nav-divider {
|
|
205
|
+
@apply w-full h-px bg-primary-600;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
.profile-nav-popup .app-version {
|
|
209
|
+
@apply text-xs text-primary-600 text-right;
|
|
210
|
+
}
|
|
203
211
|
</style>
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
|
|
25
25
|
<script lang="ts">
|
|
26
26
|
import type { PropType } from "vue";
|
|
27
|
-
import { OrgUserRole } from "~ui/interface/IOrganization";
|
|
27
|
+
import { OrgUserRole } from "~ui/app/interface/IOrganization";
|
|
28
28
|
|
|
29
29
|
export default defineComponent({
|
|
30
30
|
name: "SLProjectShareItem",
|
|
@@ -70,25 +70,38 @@ export default defineComponent({
|
|
|
70
70
|
});
|
|
71
71
|
</script>
|
|
72
72
|
|
|
73
|
-
<style
|
|
74
|
-
.
|
|
75
|
-
@apply flex items-center justify-between space-x-4
|
|
73
|
+
<style scoped>
|
|
74
|
+
@reference '~ui/app/assets/css/main.css';
|
|
76
75
|
|
|
77
|
-
|
|
78
|
-
|
|
76
|
+
.project-share-item {
|
|
77
|
+
@apply flex items-center justify-between space-x-4;
|
|
78
|
+
}
|
|
79
79
|
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
.project-share-item .item-info {
|
|
81
|
+
@apply grow text-sm text-pgray-2 truncate;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.project-share-item .item-actions {
|
|
85
|
+
@apply grow-0 shrink-0;
|
|
86
|
+
}
|
|
82
87
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
+
.project-share-item .item-actions :deep(.dropdown-menu) {
|
|
89
|
+
@apply border-primary-600;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.project-share-item
|
|
93
|
+
.item-actions
|
|
94
|
+
:deep(.dropdown-menu)
|
|
95
|
+
.dropdown-list-wrapper
|
|
96
|
+
.dropdown-list {
|
|
97
|
+
@apply min-w-[74px] divide-y divide-primary-100;
|
|
98
|
+
}
|
|
88
99
|
|
|
89
|
-
|
|
90
|
-
|
|
100
|
+
.project-share-item .item-actions :deep(.dropdown-toggle) {
|
|
101
|
+
@apply py-0.75 border-primary-600 bg-white text-sm;
|
|
102
|
+
}
|
|
91
103
|
|
|
92
|
-
|
|
93
|
-
|
|
104
|
+
.project-share-item .item-actions .dropdown-item {
|
|
105
|
+
@apply text-center;
|
|
106
|
+
}
|
|
94
107
|
</style>
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
<script lang="ts">
|
|
20
20
|
import { isEqual } from "lodash-es";
|
|
21
|
-
import { getUID } from "~ui/utils";
|
|
21
|
+
import { getUID } from "~ui/app/utils";
|
|
22
22
|
|
|
23
23
|
export default defineComponent({
|
|
24
24
|
name: "SLRadioButton",
|
|
@@ -42,7 +42,7 @@ export default defineComponent({
|
|
|
42
42
|
},
|
|
43
43
|
desc: {
|
|
44
44
|
type: String,
|
|
45
|
-
default:
|
|
45
|
+
default: "",
|
|
46
46
|
},
|
|
47
47
|
},
|
|
48
48
|
emits: ["update:modelValue"],
|
|
@@ -67,46 +67,54 @@ export default defineComponent({
|
|
|
67
67
|
});
|
|
68
68
|
</script>
|
|
69
69
|
|
|
70
|
-
<style
|
|
71
|
-
.
|
|
72
|
-
@apply inline-block relative text-base overflow-hidden
|
|
70
|
+
<style>
|
|
71
|
+
@reference '~ui/app/assets/css/main.css';
|
|
73
72
|
|
|
74
|
-
|
|
75
|
-
|
|
73
|
+
.radio-button {
|
|
74
|
+
@apply inline-block relative text-base overflow-hidden;
|
|
75
|
+
}
|
|
76
76
|
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
.radio-button input {
|
|
78
|
+
@apply absolute -top-10 -left-10;
|
|
79
|
+
}
|
|
79
80
|
|
|
80
|
-
|
|
81
|
-
|
|
81
|
+
.radio-button label {
|
|
82
|
+
@apply relative inline-flex flex-col items-start space-y-1 cursor-pointer;
|
|
83
|
+
}
|
|
82
84
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
+
.radio-button label .radio-button-wrapper {
|
|
86
|
+
@apply inline-flex items-center text-base text-pgray-3;
|
|
87
|
+
}
|
|
85
88
|
|
|
86
|
-
|
|
87
|
-
|
|
89
|
+
.radio-button label .radio-button-wrapper .icon {
|
|
90
|
+
@apply hidden;
|
|
91
|
+
}
|
|
88
92
|
|
|
89
|
-
|
|
90
|
-
|
|
93
|
+
.radio-button label .radio-button-wrapper span {
|
|
94
|
+
@apply ml-1 text-base text-pgray-2;
|
|
95
|
+
}
|
|
91
96
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
@apply inline-block text-primary
|
|
97
|
+
.radio-button label .radio-button-desc {
|
|
98
|
+
@apply pl-5 text-xs text-pgray-2;
|
|
99
|
+
}
|
|
96
100
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
@apply inline-block text-primary
|
|
101
|
+
.radio-button input:not(:checked) + label .radio-button-wrapper .icon-circle {
|
|
102
|
+
@apply inline-block text-primary;
|
|
103
|
+
}
|
|
101
104
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
105
|
+
.radio-button input:checked + label .radio-button-wrapper .icon-dot-circle {
|
|
106
|
+
@apply inline-block text-primary;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.radio-button input:disabled + label .radio-button-wrapper span {
|
|
110
|
+
@apply text-pgray-3;
|
|
111
|
+
}
|
|
106
112
|
|
|
107
|
-
|
|
108
|
-
|
|
113
|
+
.radio-button input:disabled + label .radio-button-wrapper .icon-circle {
|
|
114
|
+
@apply text-pgray-3;
|
|
115
|
+
}
|
|
109
116
|
|
|
110
|
-
|
|
111
|
-
|
|
117
|
+
.radio-button input:disabled + label .radio-button-wrapper .icon-dot-circle {
|
|
118
|
+
@apply text-pgray-3;
|
|
119
|
+
}
|
|
112
120
|
</style>
|