@necrolab/dashboard 0.4.33 → 0.4.35
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/.claude/settings.local.json +7 -1
- package/index.html +5 -3
- package/package.json +1 -1
- package/src/App.vue +0 -8
- package/src/assets/css/_input.scss +7 -7
- package/src/assets/css/main.scss +91 -20
- package/src/assets/img/background.svg +2 -2
- package/src/assets/img/background.svg.backup +11 -0
- package/src/assets/img/logo_icon.png +0 -0
- package/src/components/Editors/Account/Account.vue +87 -12
- package/src/components/Editors/Account/AccountCreator.vue +5 -5
- package/src/components/Editors/Account/AccountView.vue +1 -0
- package/src/components/Editors/Account/CreateAccount.vue +10 -4
- package/src/components/Editors/Profile/CreateProfile.vue +133 -39
- package/src/components/Editors/Profile/Profile.vue +87 -12
- package/src/components/Editors/Profile/ProfileView.vue +1 -0
- package/src/components/Filter/Filter.vue +23 -23
- package/src/components/Filter/FilterPreview.vue +2 -2
- package/src/components/Filter/PriceSortToggle.vue +8 -6
- package/src/components/Table/Table.vue +3 -1
- package/src/components/Tasks/Controls/DesktopControls.vue +3 -3
- package/src/components/Tasks/Controls/MobileControls.vue +1 -1
- package/src/components/Tasks/CreateTaskTM.vue +4 -6
- package/src/components/Tasks/Stats.vue +26 -6
- package/src/components/Tasks/Task.vue +178 -32
- package/src/components/Tasks/TaskView.vue +85 -18
- package/src/components/Tasks/Utilities.vue +4 -5
- package/src/components/icons/Bag.vue +1 -1
- package/src/components/icons/Loyalty.vue +1 -1
- package/src/components/icons/Stadium.vue +1 -1
- package/src/components/ui/Modal.vue +12 -1
- package/src/components/ui/Navbar.vue +1 -1
- package/src/components/ui/ReconnectIndicator.vue +1 -1
- package/src/components/ui/controls/atomic/Checkbox.vue +119 -9
- package/src/components/ui/controls/atomic/Dropdown.vue +8 -7
- package/src/components/ui/controls/atomic/MultiDropdown.vue +2 -1
- package/src/stores/sampleData.js +60 -94
- package/src/stores/ui.js +1 -1
- package/src/utils/debug.js +1 -1
- package/src/views/Accounts.vue +9 -4
- package/src/views/Console.vue +16 -9
- package/src/views/Editor.vue +7 -7
- package/src/views/FilterBuilder.vue +40 -22
- package/src/views/Profiles.vue +4 -4
- package/src/views/Tasks.vue +32 -53
- package/tailwind.config.js +62 -14
- package/vite.config.js +2 -1
- package/src/assets/img/logo_icon_2.png +0 -0
package/src/views/Accounts.vue
CHANGED
|
@@ -44,6 +44,11 @@
|
|
|
44
44
|
<input
|
|
45
45
|
class="h-10 w-44 text-white text-sm p-2 bg-dark-500 flex items-center relative border-2 border-dark-550"
|
|
46
46
|
placeholder="Search Email"
|
|
47
|
+
autocomplete="new-password"
|
|
48
|
+
data-dashlane-rid=""
|
|
49
|
+
data-dashlane-label=""
|
|
50
|
+
data-dashlane-classification=""
|
|
51
|
+
data-form-type="other"
|
|
47
52
|
v-model="ui.search.accounts.query"
|
|
48
53
|
/>
|
|
49
54
|
|
|
@@ -75,14 +80,14 @@
|
|
|
75
80
|
|
|
76
81
|
<div class="ml-auto gap-2 hidden lg:flex">
|
|
77
82
|
<div
|
|
78
|
-
class="bg-dark-400 border border-
|
|
83
|
+
class="bg-dark-400 border border-dark-650 justify-between px-4 w-44 flex text-white text-xs font-medium items-center rounded-md ml-auto h-10"
|
|
79
84
|
>
|
|
80
85
|
<p>Privacy</p>
|
|
81
86
|
<Switch class="scale-75" v-model="privacy" />
|
|
82
87
|
</div>
|
|
83
88
|
<button
|
|
84
89
|
:disabled="ui.disabledButtons['create-accounts']"
|
|
85
|
-
class="bg-dark-400 disabled:opacity-70 smooth-hover border border-
|
|
90
|
+
class="bg-dark-400 disabled:opacity-70 smooth-hover border border-dark-650 hover:border-dark-700 w-44 flex text-white text-xs font-medium justify-center items-center rounded-md ml-auto h-10"
|
|
86
91
|
@click="ui.toggleModal('account-creator')"
|
|
87
92
|
>
|
|
88
93
|
Create Accounts <PlayIcon class="ml-2" />
|
|
@@ -90,7 +95,7 @@
|
|
|
90
95
|
|
|
91
96
|
<button
|
|
92
97
|
:disabled="ui.disabledButtons['add-accounts']"
|
|
93
|
-
class="bg-dark-400 disabled:opacity-70 smooth-hover border border-
|
|
98
|
+
class="bg-dark-400 disabled:opacity-70 smooth-hover border border-dark-650 hover:border-dark-700 w-44 flex text-white text-xs font-medium justify-center items-center rounded-md ml-auto h-10"
|
|
94
99
|
@click="ui.toggleModal('create-account')"
|
|
95
100
|
>
|
|
96
101
|
Add Account
|
|
@@ -113,7 +118,7 @@
|
|
|
113
118
|
.custom-dropdown-content {
|
|
114
119
|
top: 2.6rem !important;
|
|
115
120
|
left: -13px;
|
|
116
|
-
@apply border border-
|
|
121
|
+
@apply border border-dark-650;
|
|
117
122
|
}
|
|
118
123
|
|
|
119
124
|
/* Search dropdown should always be h-10 and have no left corners */
|
package/src/views/Console.vue
CHANGED
|
@@ -90,15 +90,22 @@
|
|
|
90
90
|
|
|
91
91
|
@apply w-full focus:outline-none text-white;
|
|
92
92
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// iPhone vertical (portrait) optimization for console
|
|
96
|
+
@media (max-width: 480px) and (orientation: portrait) {
|
|
97
|
+
.console {
|
|
98
|
+
height: calc(100vh - 20rem);
|
|
99
|
+
@apply p-1 text-xs;
|
|
100
|
+
|
|
101
|
+
pre {
|
|
102
|
+
line-height: 1.2;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
code {
|
|
106
|
+
font-size: 0.7rem !important;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
102
109
|
}
|
|
103
110
|
|
|
104
111
|
.text-xxs {
|
package/src/views/Editor.vue
CHANGED
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
<p class="text-red-400 text-bold">{{ errorMessage }}</p>
|
|
96
96
|
</div>
|
|
97
97
|
</transition>
|
|
98
|
-
<div class="border border-
|
|
98
|
+
<div class="border border-dark-650 my-8" />
|
|
99
99
|
|
|
100
100
|
<h5 class="text-white text-xl font-bold flex gap-x-3 mb-3">Proxy Editor</h5>
|
|
101
101
|
<div class="flex justify-between items-center mb-4 relative z-60">
|
|
@@ -541,7 +541,7 @@ loadProxyLists();
|
|
|
541
541
|
border-radius: 8px;
|
|
542
542
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
|
|
543
543
|
overflow: hidden;
|
|
544
|
-
background-color: #
|
|
544
|
+
background-color: #2e2f34;
|
|
545
545
|
}
|
|
546
546
|
|
|
547
547
|
.editor-wrapper {
|
|
@@ -617,10 +617,10 @@ loadProxyLists();
|
|
|
617
617
|
|
|
618
618
|
/* Proxy editor container */
|
|
619
619
|
.proxy-editor-container {
|
|
620
|
-
@apply w-full overflow-hidden rounded-lg border border-dark-
|
|
620
|
+
@apply w-full overflow-hidden rounded-lg border border-dark-600;
|
|
621
621
|
height: 400px;
|
|
622
622
|
max-height: 60vh;
|
|
623
|
-
background-color: #
|
|
623
|
+
background-color: #2e2f34;
|
|
624
624
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
|
|
625
625
|
}
|
|
626
626
|
|
|
@@ -640,7 +640,7 @@ loadProxyLists();
|
|
|
640
640
|
.proxy-editor {
|
|
641
641
|
@apply w-full h-full resize-none focus:outline-none;
|
|
642
642
|
background-color: transparent;
|
|
643
|
-
color: #
|
|
643
|
+
color: #e2e2e5;
|
|
644
644
|
font-family: "JetBrains Mono", "Fira Code", "Menlo", "Monaco", "Courier New", monospace;
|
|
645
645
|
padding: 12px;
|
|
646
646
|
border: none;
|
|
@@ -655,8 +655,8 @@ loadProxyLists();
|
|
|
655
655
|
}
|
|
656
656
|
|
|
657
657
|
.proxy-editor-container:focus-within {
|
|
658
|
-
border-color: #
|
|
659
|
-
box-shadow: 0 0 0 2px rgba(
|
|
658
|
+
border-color: #5d7cc0;
|
|
659
|
+
box-shadow: 0 0 0 2px rgba(93, 124, 192, 0.25);
|
|
660
660
|
}
|
|
661
661
|
|
|
662
662
|
/* Prism.js dark theme */
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="filter-builder-container w-full min-h-0 flex flex-col overflow-hidden">
|
|
3
3
|
<!-- Heading -->
|
|
4
|
-
<div class="flex-between pt-
|
|
4
|
+
<div class="flex-between pt-4 pb-1 px-4 mt-1">
|
|
5
5
|
<div class="flex-center gap-4">
|
|
6
6
|
<FilterIcon class="cursor-pointer smooth-hover text-white" />
|
|
7
7
|
<h4 class="text-heading">Filter creator</h4>
|
|
8
8
|
</div>
|
|
9
9
|
<div class="flex items-center">
|
|
10
10
|
<input
|
|
11
|
-
class="h-10 text-white text-sm p-2 bg-dark-500 w-48 flex items-center rounded-l relative border-2 border-dark-550"
|
|
11
|
+
class="h-10 text-white text-sm p-2 bg-dark-500 w-48 flex items-center rounded-l rounded-r-none relative border-2 border-dark-550"
|
|
12
12
|
placeholder="Event ID"
|
|
13
13
|
v-model="eventId"
|
|
14
14
|
/>
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
</div>
|
|
22
22
|
</div>
|
|
23
23
|
|
|
24
|
-
<div class="card-dark
|
|
24
|
+
<div class="card-dark mb-2 p-3 overflow-hidden">
|
|
25
25
|
<div class="w-full h-full">
|
|
26
26
|
<!-- Main -->
|
|
27
27
|
<div class="grid grid-cols-1 lg:grid-cols-5 gap-3 lg:gap-4 w-full h-full">
|
|
@@ -90,17 +90,11 @@
|
|
|
90
90
|
/>
|
|
91
91
|
</div>
|
|
92
92
|
<div class="flex gap-2 items-center">
|
|
93
|
-
<button
|
|
94
|
-
class="header-btn save-btn"
|
|
95
|
-
@click="saveFilter"
|
|
96
|
-
>
|
|
93
|
+
<button class="header-btn save-btn" @click="saveFilter">
|
|
97
94
|
<EditIcon class="w-4 h-4" />
|
|
98
95
|
<span class="lg:block hidden">Save</span>
|
|
99
96
|
</button>
|
|
100
|
-
<button
|
|
101
|
-
class="header-btn clear-btn"
|
|
102
|
-
@click="filterBuilder.reset(false)"
|
|
103
|
-
>
|
|
97
|
+
<button class="header-btn clear-btn" @click="filterBuilder.reset(false)">
|
|
104
98
|
<TrashIcon class="w-4 h-4" />
|
|
105
99
|
<span class="lg:block hidden">Clear</span>
|
|
106
100
|
</button>
|
|
@@ -137,21 +131,24 @@
|
|
|
137
131
|
</template>
|
|
138
132
|
</draggable>
|
|
139
133
|
</div>
|
|
140
|
-
<div
|
|
134
|
+
<div
|
|
135
|
+
v-else
|
|
136
|
+
class="empty-state flex flex-col items-center justify-center py-8 text-center"
|
|
137
|
+
>
|
|
141
138
|
<FilterIcon class="w-12 h-12 text-dark-400 mb-3 opacity-50" />
|
|
142
139
|
<p class="text-dark-400 text-sm">No filters yet</p>
|
|
143
140
|
<p class="text-dark-500 text-xs mt-1">Click on the map to create filters</p>
|
|
144
141
|
</div>
|
|
145
142
|
</div>
|
|
146
143
|
</Table>
|
|
147
|
-
<div class="flex items-center justify-between text-white gap-2 mt-1 mb-
|
|
144
|
+
<div class="flex items-center justify-between text-white gap-2 mt-1 mb-2 md:mb-0 flex-shrink-0">
|
|
148
145
|
<button
|
|
149
146
|
@click="addWildcardFilter"
|
|
150
147
|
:disabled="hasWildcardFilter"
|
|
151
148
|
:class="[
|
|
152
149
|
'border-2 rounded border-dark-550 px-2 h-7 text-xs bg-dark-500 overflow-hidden shadow transition-all duration-200',
|
|
153
|
-
hasWildcardFilter
|
|
154
|
-
? 'text-gray opacity-50 cursor-not-allowed'
|
|
150
|
+
hasWildcardFilter
|
|
151
|
+
? 'text-gray opacity-50 cursor-not-allowed'
|
|
155
152
|
: 'text-gray smooth-hover hover:bg-dark-400 hover:border-light-300'
|
|
156
153
|
]"
|
|
157
154
|
:title="hasWildcardFilter ? 'Wildcard filter already exists' : 'Add wildcard filter'"
|
|
@@ -349,9 +346,7 @@ const shownFilters = ref("All");
|
|
|
349
346
|
const filterBuilder = ref(new FilterBuilder());
|
|
350
347
|
|
|
351
348
|
const hasWildcardFilter = computed(() => {
|
|
352
|
-
return filterBuilder.value.filters.some(filter =>
|
|
353
|
-
filter.buyAny && filterBuilder.value.isForCurrentEvent(filter)
|
|
354
|
-
);
|
|
349
|
+
return filterBuilder.value.filters.some((filter) => filter.buyAny && filterBuilder.value.isForCurrentEvent(filter));
|
|
355
350
|
});
|
|
356
351
|
|
|
357
352
|
const addWildcardFilter = () => {
|
|
@@ -646,13 +641,13 @@ watch(renderSeats, async () => {
|
|
|
646
641
|
/* Dragging states for better UX */
|
|
647
642
|
.sortable-ghost {
|
|
648
643
|
@apply opacity-30;
|
|
649
|
-
border: 1px solid #
|
|
650
|
-
background-color: rgba(
|
|
644
|
+
border: 1px solid #44454b;
|
|
645
|
+
background-color: rgba(68, 69, 75, 0.1);
|
|
651
646
|
}
|
|
652
647
|
|
|
653
648
|
.sortable-chosen .drag-handle {
|
|
654
|
-
border: 1px solid #
|
|
655
|
-
background-color: rgba(
|
|
649
|
+
border: 1px solid #44454b;
|
|
650
|
+
background-color: rgba(68, 69, 75, 0.2);
|
|
656
651
|
}
|
|
657
652
|
|
|
658
653
|
.sortable-drag {
|
|
@@ -699,6 +694,29 @@ watch(renderSeats, async () => {
|
|
|
699
694
|
}
|
|
700
695
|
|
|
701
696
|
.card-dark {
|
|
697
|
+
height: auto;
|
|
698
|
+
overflow: auto;
|
|
699
|
+
}
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
/* Mobile portrait header spacing fixes */
|
|
703
|
+
@media (max-width: 640px) {
|
|
704
|
+
.filter-builder-container .flex-center {
|
|
705
|
+
gap: 0.5rem;
|
|
706
|
+
}
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
/* iPhone landscape and tablet portrait mode fixes */
|
|
710
|
+
@media (max-width: 1023px) and (max-height: 768px) {
|
|
711
|
+
.filter-builder-container {
|
|
712
|
+
height: auto;
|
|
713
|
+
min-height: 100vh;
|
|
714
|
+
overflow: auto;
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
.card-dark {
|
|
718
|
+
height: auto;
|
|
719
|
+
min-height: 500px;
|
|
702
720
|
overflow: auto;
|
|
703
721
|
}
|
|
704
722
|
}
|
package/src/views/Profiles.vue
CHANGED
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
@change="(f) => (ui.search.profiles.tag = f)"
|
|
69
69
|
/> -->
|
|
70
70
|
<Dropdown
|
|
71
|
-
class="rounded-r-lg w-32 bg-dark-500 relative z-50 border-2 border-dark-
|
|
71
|
+
class="rounded-r-lg w-32 bg-dark-500 relative z-50 border-2 border-dark-600 search-dropdown"
|
|
72
72
|
style="margin-left: 0 !important; border-width: 2px !important"
|
|
73
73
|
rightAmount="right-1"
|
|
74
74
|
default="Any"
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
|
|
82
82
|
<div class="gap-3 lg:flex hidden">
|
|
83
83
|
<div
|
|
84
|
-
class="bg-dark-400 border border-
|
|
84
|
+
class="bg-dark-400 border border-dark-650 justify-between px-4 w-36 flex text-white text-xs font-medium items-center rounded-md ml-auto h-10"
|
|
85
85
|
>
|
|
86
86
|
<p>Privacy</p>
|
|
87
87
|
<Switch class="scale-75" v-model="privacy" />
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
</button>
|
|
103
103
|
<button
|
|
104
104
|
:disabled="ui.disabledButtons['add-profiles']"
|
|
105
|
-
class="bg-dark-400 disabled:opacity-70 smooth-hover w-36 flex text-white text-xs font-medium justify-center items-center rounded-md border border-
|
|
105
|
+
class="bg-dark-400 disabled:opacity-70 smooth-hover w-36 flex text-white text-xs font-medium justify-center items-center rounded-md border border-dark-650 hover:border-dark-700 ml-auto h-10"
|
|
106
106
|
@click="ui.toggleModal('create-profile')"
|
|
107
107
|
>
|
|
108
108
|
Add Profile
|
|
@@ -124,7 +124,7 @@
|
|
|
124
124
|
.custom-dropdown-content {
|
|
125
125
|
top: 2.6rem !important;
|
|
126
126
|
left: -13px;
|
|
127
|
-
@apply border border-
|
|
127
|
+
@apply border border-dark-650;
|
|
128
128
|
}
|
|
129
129
|
|
|
130
130
|
/* Search dropdown should always be h-10 and have no left corners */
|
package/src/views/Tasks.vue
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div>
|
|
2
|
+
<div class="tasks-page">
|
|
3
3
|
<div class="flex-between pt-5 pb-2">
|
|
4
|
-
<!-- Heading -->
|
|
5
4
|
<div class="flex-center gap-4">
|
|
6
5
|
<GearIcon class="w-5 cursor-pointer smooth-hover" @click="ui.toggleModal('quick-settings')" />
|
|
7
6
|
<h4 class="text-heading">
|
|
@@ -11,14 +10,10 @@
|
|
|
11
10
|
</div>
|
|
12
11
|
<ul class="mobile-icons mobile-header-controls">
|
|
13
12
|
<li>
|
|
14
|
-
<button @click="ui.startTasks()">
|
|
15
|
-
<PlayIcon class="w-4 h-4" />
|
|
16
|
-
</button>
|
|
13
|
+
<button @click="ui.startTasks()"><PlayIcon class="w-4 h-4" /></button>
|
|
17
14
|
</li>
|
|
18
15
|
<li>
|
|
19
|
-
<button @click="ui.stopTasks()">
|
|
20
|
-
<PauseIcon class="w-4 h-4" />
|
|
21
|
-
</button>
|
|
16
|
+
<button @click="ui.stopTasks()"><PauseIcon class="w-4 h-4" /></button>
|
|
22
17
|
</li>
|
|
23
18
|
<li>
|
|
24
19
|
<button
|
|
@@ -30,17 +25,14 @@
|
|
|
30
25
|
</button>
|
|
31
26
|
</li>
|
|
32
27
|
<li>
|
|
33
|
-
<button @click="ui.deleteTasks()">
|
|
34
|
-
<TrashIcon class="h-3.5 w-3.5" />
|
|
35
|
-
</button>
|
|
28
|
+
<button @click="ui.deleteTasks()"><TrashIcon class="h-3.5 w-3.5" /></button>
|
|
36
29
|
</li>
|
|
37
30
|
</ul>
|
|
38
31
|
</div>
|
|
39
32
|
|
|
40
33
|
<Stats />
|
|
41
34
|
|
|
42
|
-
|
|
43
|
-
<div class="controls-wrapper mb-6">
|
|
35
|
+
<div class="controls-wrapper lg:mb-6 mb-3">
|
|
44
36
|
<DesktopControls
|
|
45
37
|
class="desktop-controls-hide"
|
|
46
38
|
@stopAll="ui.stopTasks()"
|
|
@@ -48,49 +40,35 @@
|
|
|
48
40
|
@deleteAll="ui.deleteTasks()"
|
|
49
41
|
/>
|
|
50
42
|
</div>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
:allowDefault="true"
|
|
63
|
-
class="input-default w-full hover:bg-dark-400 h-10"
|
|
64
|
-
rightAmount="right-2"
|
|
65
|
-
/>
|
|
66
|
-
</div>
|
|
67
|
-
<PriceSortToggle
|
|
68
|
-
class="min-w-24 max-w-28"
|
|
69
|
-
:options="['All', 'Checkout']"
|
|
70
|
-
:darker="true"
|
|
71
|
-
:current="ui.taskFilter"
|
|
72
|
-
@change="(e) => ui.setTaskFilter(e)"
|
|
43
|
+
|
|
44
|
+
<div class="flex items-center justify-between gap-2 lg:mb-2 mb-1">
|
|
45
|
+
<div v-if="uniqEventIds.length > 1" class="flex-1 md:min-w-96 md:max-w-96 md:flex-none">
|
|
46
|
+
<Dropdown
|
|
47
|
+
:onClick="(f) => ui.setCurrentEvent(f)"
|
|
48
|
+
default="All events"
|
|
49
|
+
:chosen="ui.currentEvent"
|
|
50
|
+
:options="uniqEventIds"
|
|
51
|
+
:allowDefault="true"
|
|
52
|
+
class="input-default w-full hover:bg-dark-400 h-10"
|
|
53
|
+
rightAmount="right-2"
|
|
73
54
|
/>
|
|
74
55
|
</div>
|
|
75
|
-
<
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
</div>
|
|
56
|
+
<PriceSortToggle
|
|
57
|
+
class="min-w-24 max-w-28 flex-shrink-0"
|
|
58
|
+
:options="['All', 'Checkout']"
|
|
59
|
+
:darker="true"
|
|
60
|
+
:current="ui.taskFilter"
|
|
61
|
+
@change="(e) => ui.setTaskFilter(e)"
|
|
62
|
+
/>
|
|
83
63
|
</div>
|
|
84
64
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
<!-- Modal -->
|
|
65
|
+
<TaskView class="lg:mb-6 mb-3" :tasks="ui.tasks" />
|
|
66
|
+
|
|
67
|
+
<Utilities class="utilities-section" />
|
|
68
|
+
|
|
90
69
|
<transition-group name="fade" mode="out-in">
|
|
91
70
|
<CreateTaskTM v-if="ui.currentModule == 'TM' && activeModal === 'create-task'" @new="ui.addNewTask" />
|
|
92
71
|
<CreateTaskAXS v-if="ui.currentModule == 'AXS' && activeModal === 'create-task'" @new="ui.addNewTask" />
|
|
93
|
-
|
|
94
72
|
<CheckStock v-if="activeModal === 'check-stock'" />
|
|
95
73
|
<ScrapeVenue v-if="activeModal === 'scrape-venue'" />
|
|
96
74
|
<MassEditPresaleCode v-if="activeModal === 'mass-edit-presale-code'" />
|
|
@@ -102,7 +80,7 @@
|
|
|
102
80
|
.custom-dropdown-content {
|
|
103
81
|
top: 2.6rem !important;
|
|
104
82
|
left: -13px;
|
|
105
|
-
@apply border border-
|
|
83
|
+
@apply border border-dark-650;
|
|
106
84
|
}
|
|
107
85
|
|
|
108
86
|
.desktop-controls-hide {
|
|
@@ -117,7 +95,7 @@
|
|
|
117
95
|
.desktop-controls-hide {
|
|
118
96
|
display: flex !important;
|
|
119
97
|
}
|
|
120
|
-
|
|
98
|
+
|
|
121
99
|
.mobile-header-controls {
|
|
122
100
|
display: none !important;
|
|
123
101
|
}
|
|
@@ -136,9 +114,10 @@ import MassEditPresaleCode from "@/components/Tasks/MassEdit.vue";
|
|
|
136
114
|
import Dropdown from "@/components/ui/controls/atomic/Dropdown.vue";
|
|
137
115
|
import Stats from "@/components/Tasks/Stats.vue";
|
|
138
116
|
import { useUIStore } from "@/stores/ui";
|
|
139
|
-
import { TrashIcon, GearIcon, PlusIcon, PlayIcon, PauseIcon
|
|
117
|
+
import { TrashIcon, GearIcon, PlusIcon, PlayIcon, PauseIcon } from "@/components/icons";
|
|
140
118
|
import QuickSettings from "@/components/Tasks/QuickSettings.vue";
|
|
141
119
|
import PriceSortToggle from "@/components/Filter/PriceSortToggle.vue";
|
|
120
|
+
|
|
142
121
|
const ui = useUIStore();
|
|
143
122
|
const activeModal = computed(() => ui.activeModal);
|
|
144
123
|
const taskCount = computed(() => Object.keys(ui.getSelectedTasks()).length);
|
|
@@ -149,7 +128,7 @@ const uniqEventIds = computed(() => {
|
|
|
149
128
|
...new Set(
|
|
150
129
|
Object.values(ui.tasks)
|
|
151
130
|
.filter((t) => t.siteId === ui.currentCountry.siteId && !t.eventId.includes("@"))
|
|
152
|
-
.map((v) => v.eventId)
|
|
131
|
+
.map((v) => `${v.eventName} (${v.eventId})`)
|
|
153
132
|
)
|
|
154
133
|
];
|
|
155
134
|
return ids;
|
package/tailwind.config.js
CHANGED
|
@@ -4,29 +4,77 @@ module.exports = {
|
|
|
4
4
|
theme: {
|
|
5
5
|
colors: {
|
|
6
6
|
transparent: "transparent",
|
|
7
|
-
white: "#
|
|
7
|
+
white: "#ffffff",
|
|
8
|
+
pure: "#ffffff",
|
|
8
9
|
lightgray: "#e5e7eb",
|
|
9
10
|
green: {
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
300: "#4ade80",
|
|
12
|
+
400: "#22c55e",
|
|
13
|
+
500: "#16a34a"
|
|
12
14
|
},
|
|
13
15
|
red: {
|
|
14
|
-
300: "#
|
|
15
|
-
400: "#
|
|
16
|
+
300: "#f87171",
|
|
17
|
+
400: "#ef4444",
|
|
18
|
+
500: "#dc2626"
|
|
19
|
+
},
|
|
20
|
+
blue: {
|
|
21
|
+
300: "#60a5fa",
|
|
22
|
+
400: "#3b82f6",
|
|
23
|
+
500: "#2563eb"
|
|
24
|
+
},
|
|
25
|
+
yellow: {
|
|
26
|
+
300: "#fbbf24",
|
|
27
|
+
400: "#f59e0b",
|
|
28
|
+
500: "#d97706"
|
|
16
29
|
},
|
|
17
30
|
dark: {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
31
|
+
50: "#f8fafc",
|
|
32
|
+
100: "#f1f5f9",
|
|
33
|
+
200: "#e2e8f0",
|
|
34
|
+
300: "#1a1b1e", // Deep charcoal base
|
|
35
|
+
400: "#242529", // Card backgrounds
|
|
36
|
+
500: "#2e2f34", // Input backgrounds
|
|
37
|
+
550: "#35363c", // Subtle elevation
|
|
38
|
+
600: "#3d3e44", // Borders
|
|
39
|
+
650: "#44454b", // Hover states
|
|
40
|
+
700: "#4b4c53", // Active states
|
|
41
|
+
750: "#52535a", // Selected states
|
|
42
|
+
800: "#13141a", // Deep background
|
|
43
|
+
850: "#0d0e14", // Deepest background
|
|
44
|
+
900: "#06070d" // Ultra deep
|
|
23
45
|
},
|
|
24
46
|
light: {
|
|
25
|
-
|
|
26
|
-
|
|
47
|
+
100: "#f6f8fa",
|
|
48
|
+
200: "#e1e4e8",
|
|
49
|
+
300: "#e2e2e5", // Primary text
|
|
50
|
+
400: "#d0d0d3", // Secondary text
|
|
51
|
+
500: "#a0a0a6", // Muted text
|
|
52
|
+
600: "#71717a", // Disabled text
|
|
53
|
+
700: "#57575f", // Very muted
|
|
54
|
+
800: "#3e3e46", // Dark muted
|
|
55
|
+
900: "#27272d" // Darkest muted
|
|
56
|
+
},
|
|
57
|
+
gray: {
|
|
58
|
+
50: "#f9fafb",
|
|
59
|
+
100: "#f3f4f6",
|
|
60
|
+
200: "#e5e7eb",
|
|
61
|
+
300: "#d1d5db",
|
|
62
|
+
400: "#9ca3af",
|
|
63
|
+
500: "#6b7280",
|
|
64
|
+
600: "#4b5563",
|
|
65
|
+
700: "#374151",
|
|
66
|
+
800: "#1f2937",
|
|
67
|
+
900: "#111827"
|
|
68
|
+
},
|
|
69
|
+
accent: {
|
|
70
|
+
blue: "#5d7cc0",
|
|
71
|
+
purple: "#b794c0",
|
|
72
|
+
pink: "#d16d9e",
|
|
73
|
+
orange: "#d4976e",
|
|
74
|
+
yellow: "#e6d192",
|
|
75
|
+
green: "#88c999"
|
|
27
76
|
},
|
|
28
|
-
|
|
29
|
-
border: "#29293F"
|
|
77
|
+
border: "#3d3e44"
|
|
30
78
|
},
|
|
31
79
|
screens: {
|
|
32
80
|
xs: "500px",
|
package/vite.config.js
CHANGED
|
Binary file
|