From cce938fa8f617b98d2b1604a92d41ab68c6709eb Mon Sep 17 00:00:00 2001 From: Dede Fuji Abdul Date: Tue, 17 Oct 2023 16:48:44 +0700 Subject: [PATCH] update menu --- src/App.vue | 7 +- src/assets/css/style.css | 117 ++++ src/assets/icons/dot-outline.svg | 6 + src/assets/icons/lightning-slash.svg | 6 + src/assets/icons/monitor.svg | 6 + src/assets/icons/smiley-sad.svg | 6 + src/assets/icons/swap.svg | 6 + src/components/{ => Aside}/Aside.vue | 103 ++- src/components/Aside/AsideMenuSingle.vue | 29 + .../Aside/AsideMenuSingleMultiple.vue | 18 + src/components/Dialogs/ActionDialog.vue | 154 +++-- src/components/Header.vue | 14 +- src/components/Navigation.vue | 2 +- src/stores/dialog.ts | 1 - src/stores/menu.ts | 600 ++++++++++++------ src/utils/icons.ts | 6 + src/utils/interfaces.ts | 8 + 17 files changed, 755 insertions(+), 334 deletions(-) create mode 100644 src/assets/icons/dot-outline.svg create mode 100644 src/assets/icons/lightning-slash.svg create mode 100644 src/assets/icons/monitor.svg create mode 100644 src/assets/icons/smiley-sad.svg create mode 100644 src/assets/icons/swap.svg rename src/components/{ => Aside}/Aside.vue (83%) create mode 100644 src/components/Aside/AsideMenuSingle.vue create mode 100644 src/components/Aside/AsideMenuSingleMultiple.vue create mode 100644 src/utils/icons.ts create mode 100644 src/utils/interfaces.ts diff --git a/src/App.vue b/src/App.vue index 60d0f13..6e654db 100644 --- a/src/App.vue +++ b/src/App.vue @@ -9,9 +9,10 @@ const dialog = useDialogStore() diff --git a/src/assets/css/style.css b/src/assets/css/style.css index 2fee606..fcba760 100644 --- a/src/assets/css/style.css +++ b/src/assets/css/style.css @@ -980,6 +980,13 @@ select { margin-top: 1.5rem; } +.line-clamp-1 { + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 1; +} + .block { display: block; } @@ -1386,6 +1393,10 @@ select { align-items: center; } +.justify-start { + justify-content: flex-start; +} + .justify-end { justify-content: flex-end; } @@ -1443,6 +1454,12 @@ select { margin-bottom: calc(1rem * var(--tw-space-y-reverse)); } +.space-x-0 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(0px * var(--tw-space-x-reverse)); + margin-left: calc(0px * calc(1 - var(--tw-space-x-reverse))); +} + .divide-y > :not([hidden]) ~ :not([hidden]) { --tw-divide-y-reverse: 0; border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse))); @@ -1505,6 +1522,10 @@ select { border-radius: 0.75rem; } +.rounded-2xl { + border-radius: 1rem; +} + .rounded-l-full { border-top-left-radius: 9999px; border-bottom-left-radius: 9999px; @@ -1732,6 +1753,26 @@ select { background-color: rgb(255 255 255 / var(--tw-bg-opacity)); } +.bg-red-50 { + --tw-bg-opacity: 1; + background-color: rgb(255 229 229 / var(--tw-bg-opacity)); +} + +.bg-yellow-50 { + --tw-bg-opacity: 1; + background-color: rgb(255 255 229 / var(--tw-bg-opacity)); +} + +.bg-yellow-100 { + --tw-bg-opacity: 1; + background-color: rgb(255 255 204 / var(--tw-bg-opacity)); +} + +.bg-yellow-600 { + --tw-bg-opacity: 1; + background-color: rgb(204 204 0 / var(--tw-bg-opacity)); +} + .bg-opacity-25 { --tw-bg-opacity: 0.25; } @@ -1760,6 +1801,18 @@ select { fill: #035b71; } +.fill-red-600 { + fill: #cc0000; +} + +.fill-secondary-600 { + fill: #007b8d; +} + +.fill-gray-400 { + fill: #9ca3af; +} + .p-1 { padding: 0.25rem; } @@ -2198,6 +2251,16 @@ select { color: rgb(255 255 255 / var(--tw-text-opacity)); } +.text-yellow-700 { + --tw-text-opacity: 1; + color: rgb(153 153 0 / var(--tw-text-opacity)); +} + +.text-secondary-600 { + --tw-text-opacity: 1; + color: rgb(0 123 141 / var(--tw-text-opacity)); +} + .text-opacity-100 { --tw-text-opacity: 1; } @@ -2491,6 +2554,21 @@ select { background-color: rgb(2 73 90 / var(--tw-bg-opacity)); } +.hover\:bg-red-700:hover { + --tw-bg-opacity: 1; + background-color: rgb(153 0 0 / var(--tw-bg-opacity)); +} + +.hover\:bg-yellow-500:hover { + --tw-bg-opacity: 1; + background-color: rgb(255 255 0 / var(--tw-bg-opacity)); +} + +.hover\:bg-primary-500:hover { + --tw-bg-opacity: 1; + background-color: rgb(3 91 113 / var(--tw-bg-opacity)); +} + .hover\:text-gray-500:hover { --tw-text-opacity: 1; color: rgb(107 114 128 / var(--tw-text-opacity)); @@ -2600,6 +2678,11 @@ select { --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity)); } +.focus\:ring-primary-500:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(3 91 113 / var(--tw-ring-opacity)); +} + .focus\:ring-opacity-10:focus { --tw-ring-opacity: 0.1; } @@ -2638,6 +2721,14 @@ select { background-color: rgb(205 222 227 / var(--tw-bg-opacity)); } +.group:hover .group-hover\:fill-gray-600 { + fill: #4b5563; +} + +.group:hover .group-hover\:fill-gray-500 { + fill: #6b7280; +} + .group:hover .group-hover\:text-gray-500 { --tw-text-opacity: 1; color: rgb(107 114 128 / var(--tw-text-opacity)); @@ -2832,6 +2923,10 @@ select { max-width: 24rem; } + .sm\:flex-1 { + flex: 1 1 0%; + } + .sm\:translate-y-0 { --tw-translate-y: 0px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); @@ -2877,10 +2972,28 @@ select { align-items: center; } + .sm\:justify-start { + justify-content: flex-start; + } + + .sm\:justify-between { + justify-content: space-between; + } + .sm\:gap-3 { gap: 0.75rem; } + .sm\:space-x-4 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(1rem * var(--tw-space-x-reverse)); + margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse))); + } + + .sm\:space-x-reverse > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 1; + } + .sm\:overflow-visible { overflow: visible; } @@ -2947,6 +3060,10 @@ select { padding-right: 1.5rem; } + .sm\:pb-6 { + padding-bottom: 1.5rem; + } + .sm\:text-left { text-align: left; } diff --git a/src/assets/icons/dot-outline.svg b/src/assets/icons/dot-outline.svg new file mode 100644 index 0000000..c4ff242 --- /dev/null +++ b/src/assets/icons/dot-outline.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/icons/lightning-slash.svg b/src/assets/icons/lightning-slash.svg new file mode 100644 index 0000000..a931b66 --- /dev/null +++ b/src/assets/icons/lightning-slash.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/icons/monitor.svg b/src/assets/icons/monitor.svg new file mode 100644 index 0000000..596ab99 --- /dev/null +++ b/src/assets/icons/monitor.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/icons/smiley-sad.svg b/src/assets/icons/smiley-sad.svg new file mode 100644 index 0000000..69df489 --- /dev/null +++ b/src/assets/icons/smiley-sad.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/icons/swap.svg b/src/assets/icons/swap.svg new file mode 100644 index 0000000..40fe3bd --- /dev/null +++ b/src/assets/icons/swap.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/components/Aside.vue b/src/components/Aside/Aside.vue similarity index 83% rename from src/components/Aside.vue rename to src/components/Aside/Aside.vue index cbee1f1..9126f70 100644 --- a/src/components/Aside.vue +++ b/src/components/Aside/Aside.vue @@ -1,8 +1,7 @@