@necrolab/dashboard 0.4.61 → 0.4.208
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/.prettierrc +1 -27
- package/.vscode/extensions.json +1 -1
- package/README.md +79 -43
- package/backend/api.js +48 -40
- package/backend/auth.js +3 -3
- package/backend/batching.js +1 -1
- package/backend/endpoints.js +77 -13
- package/backend/index.js +2 -2
- package/backend/mock-data.js +38 -29
- package/backend/mock-src/classes/logger.js +8 -8
- package/backend/mock-src/classes/utils.js +3 -7
- package/backend/mock-src/database.js +0 -0
- package/backend/mock-src/ticketmaster.js +79 -79
- package/backend/validator.js +2 -2
- package/config/configs.json +3 -2
- package/config/filter.json +3 -2
- package/index.html +10 -81
- package/index.js +1 -1
- package/package.json +25 -40
- package/postcss.config.js +1 -1
- package/postinstall.js +17 -98
- package/public/android-chrome-192x192.png +0 -0
- package/public/android-chrome-512x512.png +0 -0
- package/public/apple-touch-icon.png +0 -0
- package/public/favicon-16x16.png +0 -0
- package/public/favicon-32x32.png +0 -0
- package/public/favicon.ico +0 -0
- package/public/manifest.json +7 -12
- package/public/sw.js +2 -0
- package/public/workbox-49fdaf31.js +2 -0
- package/public/workbox-49fdaf31.js.map +1 -0
- package/public/workbox-88575b92.js +2 -0
- package/public/workbox-88575b92.js.map +1 -0
- package/public/workbox-a67a7b11.js +2 -0
- package/public/workbox-a67a7b11.js.map +1 -0
- package/public/workbox-d4314735.js +2 -0
- package/public/workbox-d4314735.js.map +1 -0
- package/public/workbox-e0f89ef3.js +2 -0
- package/public/workbox-e0f89ef3.js.map +1 -0
- package/run +9 -176
- package/src/App.vue +85 -498
- package/src/assets/css/_input.scss +99 -144
- package/src/assets/css/main.scss +99 -450
- package/src/assets/img/background.svg +2 -2
- package/src/assets/img/logo_icon.png +0 -0
- package/src/components/Auth/LoginForm.vue +11 -62
- package/src/components/Editors/Account/Account.vue +40 -116
- package/src/components/Editors/Account/AccountCreator.vue +39 -88
- package/src/components/Editors/Account/AccountView.vue +34 -102
- package/src/components/Editors/Account/CreateAccount.vue +32 -80
- package/src/components/Editors/Profile/CreateProfile.vue +83 -269
- package/src/components/Editors/Profile/Profile.vue +47 -132
- package/src/components/Editors/Profile/ProfileCountryChooser.vue +20 -82
- package/src/components/Editors/Profile/ProfileView.vue +34 -91
- package/src/components/Editors/TagLabel.vue +6 -67
- package/src/components/Filter/Filter.vue +72 -289
- package/src/components/Filter/FilterPreview.vue +30 -171
- package/src/components/Filter/PriceSortToggle.vue +4 -74
- package/src/components/Table/Header.vue +1 -1
- package/src/components/Table/Row.vue +1 -1
- package/src/components/Table/Table.vue +2 -19
- package/src/components/Tasks/CheckStock.vue +13 -28
- package/src/components/Tasks/Controls/DesktopControls.vue +17 -17
- package/src/components/Tasks/Controls/MobileControls.vue +45 -8
- package/src/components/Tasks/CreateTaskAXS.vue +73 -79
- package/src/components/Tasks/CreateTaskTM.vue +142 -94
- package/src/components/Tasks/MassEdit.vue +7 -9
- package/src/components/Tasks/QuickSettings.vue +55 -169
- package/src/components/Tasks/ScrapeVenue.vue +4 -7
- package/src/components/Tasks/Stats.vue +23 -52
- package/src/components/Tasks/Task.vue +136 -378
- package/src/components/Tasks/TaskView.vue +47 -107
- package/src/components/Tasks/Utilities.vue +6 -5
- package/src/components/icons/Bag.vue +1 -1
- package/src/components/icons/Loyalty.vue +1 -1
- package/src/components/icons/Mail.vue +2 -2
- package/src/components/icons/Play.vue +2 -2
- package/src/components/icons/Reload.vue +5 -4
- package/src/components/icons/Sandclock.vue +2 -2
- package/src/components/icons/Stadium.vue +1 -1
- package/src/components/icons/index.js +1 -24
- package/src/components/ui/Modal.vue +13 -105
- package/src/components/ui/Navbar.vue +38 -171
- package/src/components/ui/ReconnectIndicator.vue +55 -351
- package/src/components/ui/Splash.vue +35 -5
- package/src/components/ui/controls/CountryChooser.vue +62 -200
- package/src/components/ui/controls/atomic/Checkbox.vue +10 -119
- package/src/components/ui/controls/atomic/Dropdown.vue +39 -208
- package/src/components/ui/controls/atomic/MultiDropdown.vue +37 -300
- package/src/libs/Filter.js +170 -200
- package/src/registerServiceWorker.js +1 -1
- package/src/stores/connection.js +53 -51
- package/src/stores/logger.js +3 -11
- package/src/stores/sampleData.js +235 -207
- package/src/stores/ui.js +44 -112
- package/src/stores/utils.js +6 -90
- package/src/views/Accounts.vue +35 -44
- package/src/views/Console.vue +90 -341
- package/src/views/Editor.vue +123 -1176
- package/src/views/FilterBuilder.vue +251 -607
- package/src/views/Login.vue +14 -76
- package/src/views/Profiles.vue +25 -44
- package/src/views/Tasks.vue +100 -187
- package/static/offline.html +50 -192
- package/tailwind.config.js +26 -104
- package/vite.config.js +16 -73
- package/vue.config.js +32 -0
- package/workbox-config.js +11 -0
- package/artwork/image.png +0 -0
- package/dev-server.js +0 -136
- package/exit +0 -209
- package/jsconfig.json +0 -16
- package/src/assets/css/_utilities.scss +0 -388
- package/src/assets/img/background.svg.backup +0 -11
- package/src/components/icons/Check.vue +0 -5
- package/src/components/icons/Close.vue +0 -21
- package/src/components/icons/CloseX.vue +0 -5
- package/src/components/icons/Key.vue +0 -21
- package/src/components/icons/Pencil.vue +0 -21
- package/src/components/icons/Profile.vue +0 -18
- package/src/components/icons/Sell.vue +0 -21
- package/src/components/icons/Spinner.vue +0 -42
- package/src/components/icons/SquareCheck.vue +0 -18
- package/src/components/icons/SquareUncheck.vue +0 -18
- package/src/components/icons/Wildcard.vue +0 -18
- package/src/components/ui/controls/atomic/LoadingButton.vue +0 -45
- package/src/composables/useClickOutside.js +0 -21
- package/src/composables/useDropdownPosition.js +0 -174
- package/src/types/index.js +0 -41
- package/src/utils/debug.js +0 -1
- package/switch-branch.sh +0 -41
- package/workbox-config.cjs +0 -63
- /package/src/assets/img/{logo_icon-old.png → logo_icon_2.png} +0 -0
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<button
|
|
3
3
|
@click="increase"
|
|
4
|
-
:class="
|
|
5
|
-
'
|
|
6
|
-
|
|
7
|
-
]"
|
|
4
|
+
:class="`w-full min-w-14 px-1 my-2 ${
|
|
5
|
+
props.darker ? 'bg-dark-500 text-white h-10 rounded-lg' : 'bg-dark-550 text-gray h-8 rounded'
|
|
6
|
+
} overflow-hidden`"
|
|
8
7
|
>
|
|
9
|
-
|
|
10
|
-
<span class="text">{{ getCurrentText() }}</span>
|
|
8
|
+
{{ sortOptions[currentOpt] }}
|
|
11
9
|
</button>
|
|
12
10
|
</template>
|
|
13
11
|
|
|
14
12
|
<script setup>
|
|
15
13
|
import { ref } from "vue";
|
|
16
|
-
import { UpIcon, DownIcon, FilterIcon, CheckIcon, CloseIcon } from "@/components/icons";
|
|
17
14
|
|
|
18
15
|
let sortOptions = ref(["none", "asc", "desc", "none"]);
|
|
19
16
|
const currentOpt = ref(0);
|
|
@@ -27,7 +24,6 @@ const props = defineProps({
|
|
|
27
24
|
current: String,
|
|
28
25
|
darker: Boolean
|
|
29
26
|
});
|
|
30
|
-
|
|
31
27
|
if (props.options) sortOptions.value = props.options;
|
|
32
28
|
if (props.current) currentOpt.value = sortOptions.value.findIndex((s) => s === props.current);
|
|
33
29
|
|
|
@@ -38,70 +34,4 @@ const increase = () => {
|
|
|
38
34
|
emit("change", sortOptions.value[currentOpt.value]);
|
|
39
35
|
if (currentOpt.value === (props.options ? sortOptions.value.length : 3)) currentOpt.value = 0;
|
|
40
36
|
};
|
|
41
|
-
|
|
42
|
-
const getCurrentIcon = () => {
|
|
43
|
-
const current = sortOptions.value[currentOpt.value];
|
|
44
|
-
|
|
45
|
-
// Handle filter options (All, WL, BL)
|
|
46
|
-
if (props.options && props.options.includes('All')) {
|
|
47
|
-
switch (current) {
|
|
48
|
-
case 'All': return FilterIcon;
|
|
49
|
-
case 'WL': return CheckIcon;
|
|
50
|
-
case 'BL': return CloseIcon;
|
|
51
|
-
default: return FilterIcon;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
// Handle sort options (none, asc, desc)
|
|
56
|
-
switch (current) {
|
|
57
|
-
case 'asc': return UpIcon;
|
|
58
|
-
case 'desc': return DownIcon;
|
|
59
|
-
case 'none':
|
|
60
|
-
default: return FilterIcon;
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
const getCurrentText = () => {
|
|
65
|
-
const current = sortOptions.value[currentOpt.value];
|
|
66
|
-
|
|
67
|
-
// Handle filter options (All, WL, BL)
|
|
68
|
-
if (props.options && props.options.includes('All')) {
|
|
69
|
-
return current;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
// Handle sort options
|
|
73
|
-
switch (current) {
|
|
74
|
-
case 'asc': return 'Low';
|
|
75
|
-
case 'desc': return 'High';
|
|
76
|
-
case 'none': return 'None';
|
|
77
|
-
default: return current;
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
37
|
</script>
|
|
81
|
-
|
|
82
|
-
<style scoped>
|
|
83
|
-
.sort-toggle {
|
|
84
|
-
@apply flex items-center gap-2 px-3 py-2 bg-dark-500 border border-dark-650 rounded text-sm font-medium transition-all duration-150 hover:bg-dark-550 hover:border-dark-700 focus:outline-none;
|
|
85
|
-
color: #cccccc;
|
|
86
|
-
min-width: 80px;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
.sort-toggle:hover {
|
|
90
|
-
color: #ffffff;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
.sort-toggle.darker {
|
|
94
|
-
@apply bg-dark-550 border-dark-700 hover:bg-dark-600;
|
|
95
|
-
color: #d4d4d4;
|
|
96
|
-
min-width: 100px;
|
|
97
|
-
height: 40px;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
.icon {
|
|
101
|
-
@apply w-4 h-4 flex-shrink-0;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
.text {
|
|
105
|
-
@apply text-center flex-1;
|
|
106
|
-
}
|
|
107
|
-
</style>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="border-b border-
|
|
2
|
+
<div class="border-b-2 border-border w-full px-4 text-white text-xs py-4 grid grid-cols-12">
|
|
3
3
|
<slot />
|
|
4
4
|
</div>
|
|
5
5
|
</template>
|
|
@@ -5,27 +5,10 @@
|
|
|
5
5
|
</template>
|
|
6
6
|
<style lang="scss">
|
|
7
7
|
.table-component {
|
|
8
|
-
@apply flex-col bg-clip-padding rounded relative box-border border border-dark-
|
|
9
|
-
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
|
10
|
-
overflow: auto !important;
|
|
11
|
-
overscroll-behavior: auto !important;
|
|
12
|
-
touch-action: auto !important;
|
|
13
|
-
max-height: calc(100vh - 200px);
|
|
8
|
+
@apply flex-col bg-clip-padding rounded relative box-border border-2 border-b-0 border-dark-550 bg-dark-500;
|
|
14
9
|
}
|
|
15
10
|
|
|
16
11
|
.table-component > .grid {
|
|
17
|
-
@apply bg-dark-
|
|
18
|
-
border-bottom: 1px solid #3d3e44;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/* iPhone landscape mode table optimization */
|
|
22
|
-
@media screen and (max-height: 500px) and (orientation: landscape) {
|
|
23
|
-
.table-component {
|
|
24
|
-
max-height: calc(100vh - 160px) !important; // Leave even more space at bottom
|
|
25
|
-
width: 100% !important;
|
|
26
|
-
overflow-x: auto !important; // Allow horizontal scrolling if needed
|
|
27
|
-
overflow-y: auto !important; // Allow vertical scrolling
|
|
28
|
-
margin-bottom: 2rem !important; // Increase bottom margin for better spacing
|
|
29
|
-
}
|
|
12
|
+
@apply bg-dark-500;
|
|
30
13
|
}
|
|
31
14
|
</style>
|
|
@@ -3,36 +3,25 @@
|
|
|
3
3
|
<template #header> Check Stock <BoxIcon class="ml-4" /> </template>
|
|
4
4
|
<!-- Event ID -->
|
|
5
5
|
<div class="input-wrapper mt-7 mb-4">
|
|
6
|
-
<label class="label-override mb-2">Event ID
|
|
7
|
-
<div class="input-default
|
|
8
|
-
<input
|
|
9
|
-
|
|
10
|
-
v-model="eventId"
|
|
11
|
-
/>
|
|
6
|
+
<label class="label-override mb-2">Event ID <StadiumIcon /></label>
|
|
7
|
+
<div class="input-default">
|
|
8
|
+
<input placeholder="102PDA9125510GYU" v-model="eventId" />
|
|
9
|
+
<span class="text-red-400 my-auto mr-2 mt-3">* </span>
|
|
12
10
|
</div>
|
|
13
11
|
</div>
|
|
14
|
-
<!--
|
|
15
|
-
<div class="input-wrapper mb-
|
|
12
|
+
<!-- Ticker Quantity -->
|
|
13
|
+
<div class="input-wrapper mb-8">
|
|
16
14
|
<label class="label-override mb-2">Presale code <AwardIcon /></label>
|
|
17
15
|
<div class="input-default">
|
|
18
16
|
<input placeholder="Presale code" v-model="presaleCode" />
|
|
19
17
|
</div>
|
|
20
18
|
</div>
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
</div>
|
|
28
|
-
<!-- CL ORIGIN -->
|
|
29
|
-
<div class="input-wrapper mb-8" v-if="isEU(ui.currentCountry.siteId)">
|
|
30
|
-
<label class="label-override mb-2">CL Origin / SubChannel ID <AwardIcon /></label>
|
|
31
|
-
<div class="input-default">
|
|
32
|
-
<input placeholder="ORIGIN2" v-model="clOrigin" />
|
|
33
|
-
</div>
|
|
34
|
-
</div>
|
|
35
|
-
<button class="btn-action ml-auto" @click="done()">Check Stock <BoxIcon /></button>
|
|
19
|
+
<button
|
|
20
|
+
class="button-default hover:opacity-70 active:opacity-50 bg-dark-400 w-48 text-xs flex items-center justify-center gap-x-2 ml-auto"
|
|
21
|
+
@click="done()"
|
|
22
|
+
>
|
|
23
|
+
Checks Stock <BoxIcon />
|
|
24
|
+
</button>
|
|
36
25
|
</Modal>
|
|
37
26
|
</template>
|
|
38
27
|
<style lang="scss" scoped>
|
|
@@ -47,16 +36,12 @@ import Modal from "@/components/ui/Modal.vue";
|
|
|
47
36
|
import { StadiumIcon, BoxIcon, AwardIcon } from "@/components/icons";
|
|
48
37
|
import { useUIStore } from "@/stores/ui";
|
|
49
38
|
import { ref } from "vue";
|
|
50
|
-
import { isEU } from "@/stores/utils";
|
|
51
39
|
|
|
52
40
|
const ui = useUIStore();
|
|
53
41
|
const eventId = ref("");
|
|
54
42
|
const presaleCode = ref("");
|
|
55
|
-
const eventDid = ref("");
|
|
56
|
-
const clOrigin = ref("");
|
|
57
|
-
|
|
58
43
|
function done() {
|
|
59
44
|
ui.toggleModal("");
|
|
60
|
-
ui.checkStock(eventId.value, presaleCode.value
|
|
45
|
+
ui.checkStock(eventId.value, presaleCode.value);
|
|
61
46
|
}
|
|
62
47
|
</script>
|
|
@@ -1,21 +1,29 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="task-controls flex-row">
|
|
2
|
+
<div class="task-controls flex-row" v-once>
|
|
3
3
|
<div class="control-buttons mb-4 xl:mb-0">
|
|
4
|
-
<button @click="$emit('startAll')" class="bg-green-400 smooth-hover
|
|
4
|
+
<button @click="$emit('startAll')" class="bg-green-400 smooth-hover flex-grow xl:flex-initial">
|
|
5
5
|
Start <PlayIcon />
|
|
6
6
|
</button>
|
|
7
|
-
<button @click="$emit('stopAll')" class="bg-red-400 smooth-hover
|
|
7
|
+
<button @click="$emit('stopAll')" class="bg-red-400 smooth-hover flex-grow xl:flex-initial">
|
|
8
8
|
Stop <PauseIcon />
|
|
9
9
|
</button>
|
|
10
|
-
<button @click="$emit('deleteAll')" class="bg-dark-400 smooth-hover
|
|
10
|
+
<button @click="$emit('deleteAll')" class="bg-dark-400 smooth-hover flex-grow xl:flex-initial">
|
|
11
11
|
Delete <TrashIcon />
|
|
12
12
|
</button>
|
|
13
|
-
<h4 class="text-light-
|
|
13
|
+
<h4 class="text-light-300text-sm flex-grow xl:flex-initial"></h4>
|
|
14
14
|
</div>
|
|
15
15
|
<div class="flex gap-x-3">
|
|
16
|
+
<button @click="$emit('expand')" class="bg-dark-400 smooth-hover flex-grow xl:flex-initial">
|
|
17
|
+
Expand
|
|
18
|
+
<ExpandIcon class="ml-2" />
|
|
19
|
+
</button>
|
|
20
|
+
<button @click="$emit('decrease')" class="bg-dark-400 smooth-hover flex-grow xl:flex-initial">
|
|
21
|
+
Fold
|
|
22
|
+
<ShrinkIcon class="ml-2" />
|
|
23
|
+
</button>
|
|
16
24
|
<button
|
|
17
25
|
:disabled="ui.disabledButtons['add-tasks']"
|
|
18
|
-
class="bg-dark-400 disabled:opacity-70 smooth-hover flex-grow xl:flex-initial w-36
|
|
26
|
+
class="bg-dark-400 disabled:opacity-70 smooth-hover flex-grow xl:flex-initial w-36"
|
|
19
27
|
@click="ui.toggleModal('create-task')"
|
|
20
28
|
>
|
|
21
29
|
Create Task
|
|
@@ -23,10 +31,9 @@
|
|
|
23
31
|
</button>
|
|
24
32
|
|
|
25
33
|
<button
|
|
26
|
-
class="bg-dark-400 smooth-hover flex-grow xl:flex-initial w-36
|
|
34
|
+
class="bg-dark-400 smooth-hover flex-grow xl:flex-initial w-36"
|
|
27
35
|
@click="ui.toggleModal('mass-edit-presale-code')"
|
|
28
36
|
:disabled="ui.disabledButtons['mass-edit']"
|
|
29
|
-
v-if="ui.currentModule == 'TM'"
|
|
30
37
|
>
|
|
31
38
|
Mass Edit
|
|
32
39
|
<EditIcon class="ml-2" />
|
|
@@ -46,13 +53,6 @@ const isExpanded = ref(false);
|
|
|
46
53
|
button {
|
|
47
54
|
@apply text-white h-10 rounded-md text-xs flex items-center justify-center font-medium px-4;
|
|
48
55
|
}
|
|
49
|
-
|
|
50
|
-
.responsive-button {
|
|
51
|
-
min-width: 80px;
|
|
52
|
-
max-width: 120px;
|
|
53
|
-
@apply flex-grow xl:flex-initial;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
56
|
.task-controls {
|
|
57
57
|
@apply gap-x-3;
|
|
58
58
|
.control-buttons {
|
|
@@ -64,9 +64,9 @@ button {
|
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
.expand-shrink {
|
|
67
|
-
@apply flex
|
|
67
|
+
@apply flex border border-dark-400 rounded-md;
|
|
68
68
|
button {
|
|
69
|
-
@apply text-white text-xs px-4 flex items-center justify-center gap-x-4 duration-200
|
|
69
|
+
@apply text-white text-xs px-4 flex items-center justify-center gap-x-4 duration-200;
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
}
|
|
@@ -1,11 +1,27 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="mobile-controls
|
|
2
|
+
<div class="mobile-controls grow items-center" v-once>
|
|
3
|
+
<div>
|
|
4
|
+
<ul class="mobile-icons">
|
|
5
|
+
<li>
|
|
6
|
+
<button @click="$emit('startAll')"><PlayIcon /></button>
|
|
7
|
+
</li>
|
|
8
|
+
<li>
|
|
9
|
+
<button @click="$emit('stopAll')"><PauseIcon /></button>
|
|
10
|
+
</li>
|
|
11
|
+
|
|
12
|
+
<li>
|
|
13
|
+
<button @click="ui.toggleModal('mass-edit-presale-code')">
|
|
14
|
+
<EditIcon />
|
|
15
|
+
</button>
|
|
16
|
+
</li>
|
|
17
|
+
</ul>
|
|
18
|
+
</div>
|
|
3
19
|
<div class="expand-shrink">
|
|
4
|
-
<button class="
|
|
20
|
+
<button class="rounded-md flex-1 bg-dark-400 xl:flex-auto" @click="$emit('expand')">
|
|
5
21
|
Expand
|
|
6
22
|
<ExpandIcon />
|
|
7
23
|
</button>
|
|
8
|
-
<button class="
|
|
24
|
+
<button class="rounded-md flex-1 bg-dark-400 xl:flex-auto" @click="$emit('decrease')">
|
|
9
25
|
Fold
|
|
10
26
|
<ShrinkIcon />
|
|
11
27
|
</button>
|
|
@@ -20,12 +36,33 @@ const ui = useUIStore();
|
|
|
20
36
|
</script>
|
|
21
37
|
<style lang="scss" scoped>
|
|
22
38
|
.mobile-controls {
|
|
39
|
+
@apply gap-x-4;
|
|
23
40
|
.expand-shrink {
|
|
24
|
-
@apply flex gap-x-2;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
41
|
+
@apply flex ml-auto gap-x-2;
|
|
42
|
+
button {
|
|
43
|
+
width: 140px;
|
|
44
|
+
@apply text-white text-xs px-4 flex items-center justify-center gap-x-2 duration-200 h-9;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
ul {
|
|
48
|
+
@apply items-center gap-x-2;
|
|
49
|
+
li {
|
|
50
|
+
@apply text-white;
|
|
51
|
+
}
|
|
52
|
+
svg {
|
|
53
|
+
width: 15px;
|
|
54
|
+
height: 15px;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
@media (max-width: 1024px) {
|
|
59
|
+
.mobile-controls {
|
|
60
|
+
.expand-shrink {
|
|
61
|
+
button {
|
|
62
|
+
width: 100px;
|
|
63
|
+
font-size: 12px !important;
|
|
64
|
+
@apply gap-x-2 px-0;
|
|
65
|
+
}
|
|
29
66
|
}
|
|
30
67
|
}
|
|
31
68
|
}
|