@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
|
@@ -0,0 +1,528 @@
|
|
|
1
|
+
<template lang="pug">
|
|
2
|
+
.tabs(:class='tabsClass')
|
|
3
|
+
.tabs-nav(
|
|
4
|
+
v-show="!tabItemsOversize"
|
|
5
|
+
:class="{ show: !tabItemsOversize }"
|
|
6
|
+
)
|
|
7
|
+
.tabs-nav-left(ref='tabsNavLeftEl')
|
|
8
|
+
SLDistributor(
|
|
9
|
+
tag='ul',
|
|
10
|
+
:header='true',
|
|
11
|
+
:changeTabTo='changeTabTo',
|
|
12
|
+
ref='navComp'
|
|
13
|
+
)
|
|
14
|
+
slot
|
|
15
|
+
.tabs-nav-right(v-if='(type === 1 || type === 5) && $slots["tabs-nav-right"]')
|
|
16
|
+
slot(name='tabs-nav-right')
|
|
17
|
+
.tabs-content
|
|
18
|
+
SLDistributor
|
|
19
|
+
.tabs-content-header(v-show="tabItemsOversize")
|
|
20
|
+
.tabs-content-header-left
|
|
21
|
+
SLDropdown.tabs-dropdown(
|
|
22
|
+
:title='currentTab',
|
|
23
|
+
v-model:showDropdown='showDropdown',
|
|
24
|
+
:class='{ active: showDropdown }',
|
|
25
|
+
)
|
|
26
|
+
SLDropdownItem(
|
|
27
|
+
v-for='(tabTitle, i) in tabTitles',
|
|
28
|
+
:title='tabTitle',
|
|
29
|
+
:class='{ active: i === activeTabIndex }',
|
|
30
|
+
@click='onClickedTab(i)',
|
|
31
|
+
:key='`${tabTitle}-${i}`'
|
|
32
|
+
)
|
|
33
|
+
.tabs-content-header-right(v-if='$slots["tabs-nav-right"]')
|
|
34
|
+
slot(name='tabs-nav-right')
|
|
35
|
+
.tabs-content-body(ref='tabsContentBody')
|
|
36
|
+
slot
|
|
37
|
+
</template>
|
|
38
|
+
|
|
39
|
+
<script lang="ts">
|
|
40
|
+
import { fromEvent, interval, Subscription } from "rxjs";
|
|
41
|
+
import { debounce, startWith } from "rxjs/operators";
|
|
42
|
+
import { SLDistributor } from "#components";
|
|
43
|
+
|
|
44
|
+
type SLDistributorType = InstanceType<typeof SLDistributor>;
|
|
45
|
+
|
|
46
|
+
export default defineComponent({
|
|
47
|
+
name: "SLTabs",
|
|
48
|
+
components: {},
|
|
49
|
+
props: {
|
|
50
|
+
size: {
|
|
51
|
+
type: String,
|
|
52
|
+
default: "",
|
|
53
|
+
validator: (value: string) => ["", "xs", "sm"].includes(value),
|
|
54
|
+
},
|
|
55
|
+
navMode: {
|
|
56
|
+
type: String,
|
|
57
|
+
default: "",
|
|
58
|
+
},
|
|
59
|
+
type: {
|
|
60
|
+
type: Number,
|
|
61
|
+
default: 1,
|
|
62
|
+
validator: (value: number) => [1, 2, 3, 4, 5, 6].includes(value),
|
|
63
|
+
},
|
|
64
|
+
activeTab: {
|
|
65
|
+
type: Number,
|
|
66
|
+
default: 0,
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
emits: ["update:activeTab"],
|
|
70
|
+
setup(props, { emit }) {
|
|
71
|
+
const { activeTab, size, type, navMode } = toRefs(props);
|
|
72
|
+
|
|
73
|
+
const tabsContentBody = shallowRef<HTMLElement | null>(null);
|
|
74
|
+
const tabsNavLeftEl = shallowRef<HTMLElement | null>(null);
|
|
75
|
+
const navComp = shallowRef<SLDistributorType | null>(null);
|
|
76
|
+
const tabTitles = ref<Array<string>>([]);
|
|
77
|
+
const showDropdown = ref(false);
|
|
78
|
+
const tabItemsOversizeProxy = ref(false);
|
|
79
|
+
|
|
80
|
+
let observer: MutationObserver | null = null;
|
|
81
|
+
let resizeSubscriber: Subscription | null = null;
|
|
82
|
+
|
|
83
|
+
const activeTabIndex = computed(() => activeTab.value || 0);
|
|
84
|
+
const tabsClass = computed(() => {
|
|
85
|
+
const classes: Array<string> = [`tabs-type-${type.value}`];
|
|
86
|
+
|
|
87
|
+
if (size.value !== "") {
|
|
88
|
+
classes.push(`tabs-${size.value}`);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return classes.join(" ");
|
|
92
|
+
});
|
|
93
|
+
const currentTab = computed(() => {
|
|
94
|
+
return tabTitles.value[activeTabIndex.value];
|
|
95
|
+
});
|
|
96
|
+
const tabItemsOversize = computed({
|
|
97
|
+
get: () => {
|
|
98
|
+
return (
|
|
99
|
+
type.value !== 4 &&
|
|
100
|
+
(tabItemsOversizeProxy.value || navMode.value === "dropdown")
|
|
101
|
+
);
|
|
102
|
+
},
|
|
103
|
+
set: (newValue: boolean) => {
|
|
104
|
+
tabItemsOversizeProxy.value = newValue;
|
|
105
|
+
},
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
provide("activeTab", readonly(activeTabIndex));
|
|
109
|
+
provide("initialTab", readonly(activeTab));
|
|
110
|
+
|
|
111
|
+
function caculateTabs() {
|
|
112
|
+
nextTick(() => {
|
|
113
|
+
const tabLinks =
|
|
114
|
+
navComp.value?.$el.querySelectorAll(".tab-nav-item-link");
|
|
115
|
+
const tabLinkTitles = [];
|
|
116
|
+
if (tabLinks) {
|
|
117
|
+
for (let i = 0; i < tabLinks.length; i += 1) {
|
|
118
|
+
tabLinkTitles.push((tabLinks[i] as HTMLElement).innerText);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
tabTitles.value = tabLinkTitles;
|
|
122
|
+
|
|
123
|
+
const tabsNavLeftRect = tabsNavLeftEl.value?.getBoundingClientRect();
|
|
124
|
+
const navRect = navComp.value?.$el?.getBoundingClientRect();
|
|
125
|
+
|
|
126
|
+
if (tabsNavLeftRect && navRect) {
|
|
127
|
+
tabItemsOversizeProxy.value = navRect.width > tabsNavLeftRect.width;
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
function changeTabTo(newTab: number) {
|
|
133
|
+
emit("update:activeTab", newTab);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
function onClickedTab(i: number) {
|
|
137
|
+
changeTabTo(i);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
onMounted(() => {
|
|
141
|
+
resizeSubscriber = fromEvent(window, "resize")
|
|
142
|
+
.pipe(debounce(() => interval(500)))
|
|
143
|
+
.pipe(startWith(0))
|
|
144
|
+
.subscribe(() => {
|
|
145
|
+
caculateTabs();
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
if (navComp.value) {
|
|
149
|
+
observer = new MutationObserver(caculateTabs);
|
|
150
|
+
observer.observe(navComp.value.$el, {
|
|
151
|
+
characterData: true,
|
|
152
|
+
attributes: false,
|
|
153
|
+
childList: true,
|
|
154
|
+
subtree: true,
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
onBeforeUnmount(() => {
|
|
160
|
+
if (resizeSubscriber) {
|
|
161
|
+
resizeSubscriber.unsubscribe();
|
|
162
|
+
}
|
|
163
|
+
if (observer) {
|
|
164
|
+
observer.disconnect();
|
|
165
|
+
}
|
|
166
|
+
resizeSubscriber = null;
|
|
167
|
+
observer = null;
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
return {
|
|
171
|
+
tabsContentBody,
|
|
172
|
+
tabsNavLeftEl,
|
|
173
|
+
navComp,
|
|
174
|
+
activeTabIndex,
|
|
175
|
+
tabTitles,
|
|
176
|
+
showDropdown,
|
|
177
|
+
tabItemsOversize,
|
|
178
|
+
tabsClass,
|
|
179
|
+
currentTab,
|
|
180
|
+
changeTabTo,
|
|
181
|
+
onClickedTab,
|
|
182
|
+
};
|
|
183
|
+
},
|
|
184
|
+
});
|
|
185
|
+
</script>
|
|
186
|
+
|
|
187
|
+
<style>
|
|
188
|
+
@reference '~ui/app/assets/css/main.css';
|
|
189
|
+
|
|
190
|
+
.tabs.tabs-sm.tabs-type-1 > .tabs-nav ul .tab-nav-item-link {
|
|
191
|
+
@apply text-sm;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.tabs.tabs-xs.tabs-type-1 > .tabs-nav ul .tab-nav-item.active::before {
|
|
195
|
+
@apply hidden;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.tabs.tabs-xs.tabs-type-1 > .tabs-nav ul .tab-nav-item-link {
|
|
199
|
+
@apply py-0.75 text-base;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.tabs.tabs-type-1 > .tabs-nav {
|
|
203
|
+
@apply flex items-start justify-between h-0 space-x-8 overflow-hidden lg:space-x-30;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
.tabs.tabs-type-1 > .tabs-nav.show {
|
|
207
|
+
@apply h-auto -mb-1.5;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
.tabs.tabs-type-1 > .tabs-nav .tabs-nav-left {
|
|
211
|
+
@apply grow overflow-hidden;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
.tabs.tabs-type-1 > .tabs-nav .tabs-nav-right {
|
|
215
|
+
@apply grow-0 shrink-0;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
.tabs.tabs-type-1 > .tabs-nav ul {
|
|
219
|
+
@apply inline-flex items-start -space-x-px;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
.tabs.tabs-type-1 > .tabs-nav ul .tab-nav-item {
|
|
223
|
+
@apply relative rounded-t bg-white;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
.tabs.tabs-type-1
|
|
227
|
+
> .tabs-nav
|
|
228
|
+
ul
|
|
229
|
+
.tab-nav-item:first-child
|
|
230
|
+
.tab-nav-item-link::after {
|
|
231
|
+
content: "";
|
|
232
|
+
@apply absolute bottom-0 left-0 w-px h-3 -mb-3 -ml-px bg-primary-600;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
.tabs.tabs-type-1 > .tabs-nav ul .tab-nav-item.active {
|
|
236
|
+
@apply pb-1.75;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
.tabs.tabs-type-1 > .tabs-nav ul .tab-nav-item.active::before {
|
|
240
|
+
content: "";
|
|
241
|
+
@apply block absolute top-0.5 right-0.75 left-0.75 h-1 bg-highlight-400;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
.tabs.tabs-type-1 > .tabs-nav ul .tab-nav-item.active .tab-nav-item-link {
|
|
245
|
+
@apply text-primary cursor-default;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
.tabs.tabs-type-1 > .tabs-nav ul .tab-nav-item-link {
|
|
249
|
+
@apply relative block py-1.75 px-3.75 border-t border-r border-l border-primary-600 rounded-t text-lg text-primary-600;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
.tabs.tabs-type-1 > .tabs-nav ul .tab-nav-item-link-title {
|
|
253
|
+
@apply truncate;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
.tabs.tabs-type-1 > .tabs-nav ul .tab-pane {
|
|
257
|
+
@apply space-y-8;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
.tabs.tabs-type-1 > .tabs-content {
|
|
261
|
+
@apply p-4 border border-primary-600 rounded-lg bg-white overflow-hidden;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
.tabs.tabs-type-1 > .tabs-content .tabs-content-header {
|
|
265
|
+
@apply flex items-start justify-between mb-4;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
.tabs.tabs-type-2 > .tabs-nav {
|
|
269
|
+
@apply mb-0;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
.tabs.tabs-type-2 > .tabs-nav ul {
|
|
273
|
+
@apply flex px-8 pb-5 space-x-8 lg:px-6 lg:space-x-14;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
.tabs.tabs-type-2 > .tabs-nav ul .tab-nav-item {
|
|
277
|
+
@apply relative grow py-6 rounded bg-primary-100 text-lg text-primary-600 text-center lg:py-5.5;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
.tabs.tabs-type-2 > .tabs-nav ul .tab-nav-item::before {
|
|
281
|
+
content: "";
|
|
282
|
+
@apply absolute top-0.5 left-0.5 block rounded bg-white;
|
|
283
|
+
width: calc(100% - var(--spacing));
|
|
284
|
+
height: calc(100% - var(--spacing));
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
.tabs.tabs-type-2 > .tabs-nav ul .tab-nav-item::after {
|
|
288
|
+
content: "";
|
|
289
|
+
@apply absolute left-0 bottom-0 -ml-4 -mb-5 block w-full h-3 rounded-t bg-primary-300 opacity-0;
|
|
290
|
+
width: calc(100% + var(--spacing) * 4 * 2);
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
.tabs.tabs-type-2 > .tabs-nav ul .tab-nav-item.active {
|
|
294
|
+
@apply text-primary font-bold;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
.tabs.tabs-type-2 > .tabs-nav ul .tab-nav-item.active::after {
|
|
298
|
+
@apply opacity-100;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
.tabs.tabs-type-2 > .tabs-nav ul .tab-nav-item.active:nth-child(odd) {
|
|
302
|
+
@apply bg-transparent bg-linear-to-r from-insight-web-title-start to-insight-web-title-end;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
.tabs.tabs-type-2 > .tabs-nav ul .tab-nav-item.active:nth-child(odd)::after {
|
|
306
|
+
@apply bg-transparent bg-linear-to-r from-insight-web-title-start to-insight-web-title-end;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
.tabs.tabs-type-2 > .tabs-nav ul .tab-nav-item.active:nth-child(even) {
|
|
310
|
+
@apply bg-transparent bg-linear-to-r from-insight-poi-title-start to-insight-poi-title-end;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
.tabs.tabs-type-2 > .tabs-nav ul .tab-nav-item.active:nth-child(even)::after {
|
|
314
|
+
@apply bg-transparent bg-linear-to-r from-insight-poi-title-start to-insight-poi-title-end;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
.tabs.tabs-type-2 > .tabs-nav ul .tab-nav-item.active .tab-nav-item-link {
|
|
318
|
+
@apply cursor-default;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
.tabs.tabs-type-2 > .tabs-nav ul .tab-nav-item-link {
|
|
322
|
+
@apply relative;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
.tabs.tabs-type-3 > .tabs-nav {
|
|
326
|
+
@apply flex items-start justify-between h-0 space-x-8 overflow-hidden lg:space-x-30;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
.tabs.tabs-type-3 > .tabs-nav.show {
|
|
330
|
+
@apply h-auto mb-1;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
.tabs.tabs-type-3 > .tabs-nav .tabs-nav-left {
|
|
334
|
+
@apply grow overflow-hidden;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
.tabs.tabs-type-3 > .tabs-nav .tabs-nav-right {
|
|
338
|
+
@apply grow-0 shrink-0;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
.tabs.tabs-type-3 > .tabs-nav ul {
|
|
342
|
+
@apply inline-flex items-start space-x-2;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
.tabs.tabs-type-3 > .tabs-nav ul .tab-nav-item {
|
|
346
|
+
@apply relative rounded-t bg-primary-100;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
.tabs.tabs-type-3 > .tabs-nav ul .tab-nav-item.active {
|
|
350
|
+
@apply bg-primary;
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
.tabs.tabs-type-3 > .tabs-nav ul .tab-nav-item.active .tab-nav-item-link {
|
|
354
|
+
@apply text-white cursor-default;
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
.tabs.tabs-type-3 > .tabs-nav ul .tab-nav-item-link {
|
|
358
|
+
@apply relative block py-2 px-8 rounded-t text-base text-primary;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
.tabs.tabs-type-3 > .tabs-nav ul .tab-nav-item-link-title {
|
|
362
|
+
@apply truncate;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
.tabs.tabs-type-3 > .tabs-nav ul .tab-pane {
|
|
366
|
+
@apply space-y-8;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
.tabs.tabs-type-3 > .tabs-content {
|
|
370
|
+
@apply p-6 rounded-tr-lg rounded-b-lg bg-white shadow-default overflow-hidden;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
.tabs.tabs-type-3 > .tabs-content .tabs-content-header {
|
|
374
|
+
@apply flex items-start justify-between;
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
.tabs.tabs-type-3 > .tabs-content .tabs-dropdown {
|
|
378
|
+
@apply mb-4;
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
.tabs.tabs-type-4 {
|
|
382
|
+
@apply flex;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
.tabs.tabs-type-4 > .tabs-nav {
|
|
386
|
+
@apply grow-0 shrink-0;
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
.tabs.tabs-type-4 > .tabs-nav .tabs-nav-left ul {
|
|
390
|
+
@apply flex flex-col space-y-0.5;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
.tabs.tabs-type-4 > .tabs-nav .tabs-nav-left ul .tab-nav-item {
|
|
394
|
+
@apply flex justify-between w-[184px] py-3 pl-3 pr-5 bg-primary-50 rounded-l-lg text-xs;
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
.tabs.tabs-type-4 > .tabs-nav .tabs-nav-left ul .tab-nav-item.active {
|
|
398
|
+
@apply bg-primary-600 text-white font-bold shadow-md;
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
.tabs.tabs-type-4 > .tabs-nav .tabs-nav-left ul .tab-nav-item-link {
|
|
402
|
+
@apply block w-full;
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
.tabs.tabs-type-4 .tabs-content {
|
|
406
|
+
@apply grow -ml-2 p-4 bg-white border border-primary-600 rounded-lg shadow-md;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
.tabs.tabs-type-4 .tabs-content > div {
|
|
410
|
+
@apply flex min-h-full;
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
.tabs.tabs-type-4 .tabs-content > div .tabs-content-body {
|
|
414
|
+
@apply w-full;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
.tabs.tabs-type-5 > .tabs-nav {
|
|
418
|
+
@apply flex items-start justify-between h-0 mb-4 space-x-8 overflow-hidden lg:space-x-30;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
.tabs.tabs-type-5 > .tabs-nav.show {
|
|
422
|
+
@apply h-auto;
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
.tabs.tabs-type-5 > .tabs-nav.show .tabs-nav-left::before {
|
|
426
|
+
content: "";
|
|
427
|
+
@apply absolute right-0 bottom-0 left-0 h-px rounded-[1px] bg-primary-300;
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
.tabs.tabs-type-5 > .tabs-nav .tabs-nav-left {
|
|
431
|
+
@apply relative grow overflow-hidden;
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
.tabs.tabs-type-5 > .tabs-nav .tabs-nav-right {
|
|
435
|
+
@apply grow-0 shrink-0;
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
.tabs.tabs-type-5 > .tabs-nav ul {
|
|
439
|
+
@apply inline-flex items-start;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
.tabs.tabs-type-5 > .tabs-nav ul .tab-nav-item {
|
|
443
|
+
@apply relative;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
.tabs.tabs-type-5 > .tabs-nav ul .tab-nav-item.active::after {
|
|
447
|
+
content: "";
|
|
448
|
+
@apply block absolute right-0 bottom-0 left-0 h-1 rounded-[1px] bg-primary;
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
.tabs.tabs-type-5 > .tabs-nav ul .tab-nav-item.active .tab-nav-item-link {
|
|
452
|
+
@apply cursor-default;
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
.tabs.tabs-type-5 > .tabs-nav ul .tab-nav-item.disabled .tab-nav-item-link {
|
|
456
|
+
@apply text-pgray-4 cursor-default;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
.tabs.tabs-type-5 > .tabs-nav ul .tab-nav-item-link {
|
|
460
|
+
@apply relative block px-4 pb-2 text-lg text-pgray-2;
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
.tabs.tabs-type-5 > .tabs-nav ul .tab-nav-item-link-title {
|
|
464
|
+
@apply truncate;
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
.tabs.tabs-type-5 > .tabs-nav ul .tab-pane {
|
|
468
|
+
@apply space-y-8;
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
.tabs.tabs-type-6 > .tabs-nav {
|
|
472
|
+
@apply flex items-start justify-between h-0 mb-6 space-x-8 overflow-hidden lg:space-x-30;
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
.tabs.tabs-type-6 > .tabs-nav.show {
|
|
476
|
+
@apply h-auto;
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
.tabs.tabs-type-6 > .tabs-nav.show .tabs-nav-left::before {
|
|
480
|
+
content: "";
|
|
481
|
+
@apply absolute right-0 bottom-0 left-0 h-1 bg-pgray-5;
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
.tabs.tabs-type-6 > .tabs-nav .tabs-nav-left {
|
|
485
|
+
@apply relative grow-0 shrink-0;
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
.tabs.tabs-type-6 > .tabs-nav .tabs-nav-right {
|
|
489
|
+
@apply grow-0 shrink-0;
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
.tabs.tabs-type-6 > .tabs-nav ul {
|
|
493
|
+
@apply inline-flex items-start;
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
.tabs.tabs-type-6 > .tabs-nav ul .tab-nav-item {
|
|
497
|
+
@apply relative;
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
.tabs.tabs-type-6 > .tabs-nav ul .tab-nav-item.active::after {
|
|
501
|
+
content: "";
|
|
502
|
+
@apply block absolute right-0 bottom-0 left-0 h-1 bg-blue-1;
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
.tabs.tabs-type-6 > .tabs-nav ul .tab-nav-item.active .tab-nav-item-link {
|
|
506
|
+
@apply text-blue-1 cursor-default;
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
.tabs.tabs-type-6 > .tabs-nav ul .tab-nav-item.disabled .tab-nav-item-link {
|
|
510
|
+
@apply text-pgray-4 cursor-default;
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
.tabs.tabs-type-6 > .tabs-nav ul .tab-nav-item-link {
|
|
514
|
+
@apply relative block pt-1 px-6 pb-2 text-base text-secondary-500;
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
.tabs.tabs-type-6 > .tabs-nav ul .tab-nav-item-link-title {
|
|
518
|
+
@apply truncate;
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
.tabs.tabs-type-6 > .tabs-nav ul .tab-pane {
|
|
522
|
+
@apply space-y-8;
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
.tabs > .tabs-content .tabs > .tabs-content {
|
|
526
|
+
@apply shadow-md;
|
|
527
|
+
}
|
|
528
|
+
</style>
|