satis 2.1.28 → 2.1.29

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b59e1d63bb796965a6fa1a5c5b15fea4736f5b3c6f5a9b64fae463a15a132f30
4
- data.tar.gz: e1614cd0f71eea8a0a6dbad386b17253b601fd386d8cbc42739c65c507264001
3
+ metadata.gz: 87796f0408dfd1f75c4959ac4d84951a10639a7efd9dd1a82c2925fd81007f07
4
+ data.tar.gz: cb79057144e524bc3784bb7365fe14db89739fd6578520634418d470c1037bda
5
5
  SHA512:
6
- metadata.gz: 22f9b908ac49cc92d1131c87458ad191df8dffa903dfdf6ffd313387f807407e0c7678917646399aaf942d3844d0af4eae7cd554e2c4bb533227500f3fb66e8a
7
- data.tar.gz: c9d57aaad815d1d98e0f34004ba0bd58cee7d64cb77d2e85e5a8045bd4bda651022a186300d7a067518e4e203b8dff3625d26eb0f3da381f16423c963907198c
6
+ metadata.gz: 80ea589f68b0019214eacf8a60c00dd96b736cfdc32c9b6f1cc732636a4ecbe689c0dfb16483ea05d6701543b94d9c517dcfd6adc5b93a3c49d0056c767a8930
7
+ data.tar.gz: 3d4081872a67e41a8d412b65e241aa6a19c4cfe52b8fc09cba97cdc4baf11fa8376428154a99c717a708bc5c5c19d8ea368262f9ceff34dca0dd72b9ce9b48e6
@@ -24,11 +24,11 @@
24
24
  }
25
25
 
26
26
  .topbar .satis-dropdown .sts-dropdown{
27
- @apply bg-gray-50 rounded-lg shadow dark:bg-gray-900;
27
+ @apply bg-white dark:bg-gray-900 outline dark:outline-none outline-gray-200 outline-1 rounded-md shadow-none shadow-md;
28
28
  }
29
29
 
30
30
  .page_body .satis-dropdown .sts-dropdown{
31
- @apply bg-white dark:bg-gray-900 outline dark:outline-none outline-gray-300 outline-1 shadow-none;
31
+ @apply bg-white dark:bg-gray-900 outline dark:outline-none outline-gray-300 outline-1 rounded-md shadow-none;
32
32
  }
33
33
 
34
34
  .page_body .satis-dropdown .sts-dropdown-results{
@@ -54,11 +54,11 @@
54
54
 
55
55
  .topbar .satis-dropdown .sts-dropdown-results{
56
56
  overflow-y: scroll;
57
- @apply bg-gray-50 divide-gray-900 divide-opacity-25 shadow-gray-300 shadow-lg text-gray-900 text-opacity-75 dark:bg-gray-900 dark:shadow-gray-700 dark:shadow-lg dark:bg-opacity-75 dark:divide-gray-50 dark:divide-opacity-25 dark:text-gray-300;
57
+ @apply bg-white divide-gray-900 divide-opacity-25 shadow-gray-300 shadow-lg text-gray-900 text-opacity-75 dark:bg-gray-900 dark:shadow-gray-700 dark:shadow-lg dark:bg-opacity-75 dark:divide-gray-50 dark:divide-opacity-25 dark:text-gray-300;
58
58
  }
59
59
 
60
60
  .topbar .satis-dropdown .sts-dropdown .sts-dropdown-input{
61
- @apply bg-gray-50 dark:bg-gray-900 dark:divide-gray-100;
61
+ @apply bg-white dark:bg-gray-900 dark:divide-gray-100;
62
62
  }
63
63
 
64
64
  .topbar .satis-dropdown .sts-dropdown-results-items{
@@ -8,24 +8,54 @@
8
8
  background-color: #f3f3f4;
9
9
  }
10
10
 
11
- .topbar .arrow {
12
- opacity: 0.5;
11
+ .arrow {
12
+ opacity: 0.5;
13
13
  display: block;
14
14
  width: 70px;
15
15
  margin-top: 20px;
16
- margin-left: 20px;
16
+ margin-left: 220px;
17
+ transition: 0.3s ease;
18
+ transition-delay: 0.1s;
19
+ }
20
+
21
+ .sidebar.close .arrow{
22
+ margin-left: 15px;
23
+ }
24
+
25
+ .sidebar.close .arrow .fa-solid.arrow-left-to-bracket{
26
+ display: none;
27
+ }
28
+
29
+ .sidebar.close .fa-solid.fa-arrow-right-to-bracket{
30
+ display: block;
31
+ }
32
+
33
+ .sidebar .fa-solid.fa-arrow-right-to-bracket{
34
+ display: none;
35
+ }
36
+
37
+ .topbar .account-icon {
38
+ display: none;
39
+ }
40
+
41
+ .topbar.close .account-icon {
42
+ display:block;
43
+ }
44
+
45
+ .sidebar .fa-solid.arrow-left-to-bracket{
46
+ display: block;
17
47
  }
18
48
 
19
- .topbar .arrow:hover {
49
+ .arrow:hover {
20
50
  color: #555555;
21
51
  cursor: pointer;
22
52
  }
23
53
 
24
- .dark .topbar .arrow:hover {
54
+ .dark .arrow:hover {
25
55
  color: #c0c0c0;
26
56
  }
27
57
 
28
- .dark .topbar .arrow {
58
+ .dark .arrow {
29
59
  color: #ffffff;
30
60
  opacity: 1;
31
61
  margin-top: 20px;
@@ -37,7 +67,6 @@
37
67
 
38
68
  .page_body {
39
69
  margin-left: 260px;
40
- overflow-y: scroll;
41
70
  max-width: 87%;
42
71
  position: relative;
43
72
  transition: 0.3s ease;
@@ -47,13 +76,11 @@
47
76
  margin-left: 60px;
48
77
  z-index: 1;
49
78
  position: relative;
50
- overflow: visible;
51
79
  }
52
80
 
53
81
  .page_bg .page_body.close .flex-1{
54
82
  z-index: 1;
55
83
  position: relative;
56
- overflow: visible;
57
84
  }
58
85
 
59
86
  .dark .page_body {
@@ -10,8 +10,12 @@ html lang="en"
10
10
  / TOPBAR
11
11
  .page_bg
12
12
  .topbar
13
- .arrow
14
- .fa-solid.fa-bars
13
+ .account-icon
14
+ - if Current.account.logo.attached?
15
+ = image_tag url_for(Current.account.logo.variant(resize_to_limit: [nil, 25]).processed)
16
+ - else
17
+ .h-8.w-auto
18
+ = Current.account.name
15
19
  / NAVBAR
16
20
  .flex-1.px-4.flex.justify-between
17
21
  = navbar
@@ -25,32 +29,3 @@ html lang="en"
25
29
  .mt-4
26
30
  .max-w.mx-auto.px-4.sm:px-4.md:px-4
27
31
  = body
28
-
29
-
30
- / Minimize Sidebar
31
- javascript:
32
- document.addEventListener("DOMContentLoaded", () => {
33
- let sidebar_collapse = document.querySelector(".sidebar");
34
- let topbar = document.querySelector(".topbar");
35
- let page_body = document.querySelector(".page_body");
36
- let sidebarBtn = document.querySelector(".arrow");
37
-
38
- // Check stored state and apply it
39
- const isClosed = sessionStorage.getItem('sidebarClosed') === 'true';
40
- if (isClosed) {
41
- sidebar_collapse.classList.add("close");
42
- topbar.classList.add("close");
43
- page_body.classList.add("close");
44
- }
45
-
46
- sidebarBtn.addEventListener("click", () => {
47
- sidebar_collapse.classList.toggle("close");
48
- topbar.classList.toggle("close");
49
- page_body.classList.toggle("close");
50
-
51
- // Save the current state to sessionStorage
52
- const currentState = sidebar_collapse.classList.contains("close");
53
- sessionStorage.setItem('sidebarClosed', currentState);
54
- });
55
- });
56
-
@@ -6,14 +6,12 @@
6
6
  background: #ffffff;
7
7
  overflow: visible;
8
8
  scrollbar-width: none;
9
- overflow-y: scroll;
10
- transition: 0.3s ease;
11
- transition-delay: 0.1s;
12
9
  }
13
10
 
14
11
  .h-screen.flex .page_bg .sidebar.close{
15
12
  z-index: 1000;
16
13
  position: absolute;
14
+ margin-top: 4rem;
17
15
  overflow: visible;
18
16
  }
19
17
 
@@ -32,10 +30,7 @@
32
30
  height: 100%;
33
31
  width: 60px;
34
32
  z-index: 1000;
35
- overflow-y: scroll;
36
33
  scrollbar-width: none;
37
- transition: 0.3s ease;
38
- transition-delay: 0.1s;
39
34
  }
40
35
 
41
36
  .sidebar::-webkit-scrollbar {
@@ -49,29 +44,22 @@
49
44
  height: 4rem;
50
45
  max-width: 87%;
51
46
  margin-left: 260px;
52
- transition: 0.3s ease;
53
- transition-delay: 0.1s;
54
47
  background: white;
55
48
  z-index: 2;
56
49
  }
57
50
 
58
- .page_bg .topbar.close {
59
- max-width: 97%;
60
- margin-left: 60px;
61
- transition: 0.3s ease;
62
- transition-delay: 0.1s;
51
+ .h-screen.flex .page_bg .topbar.close {
52
+ max-width: 100%;
53
+ margin-left: 0px;
63
54
  }
64
55
 
65
56
  .page_body.close {
66
57
  margin-left: 50px;
67
58
  max-width: 97%;
68
- transition: 0.3s ease;
69
- transition-delay: 0.1s;
70
59
  }
71
60
 
72
61
 
73
62
  .account-icon {
74
- opacity: 0.25;
75
63
  border-radius: 25px;
76
64
  padding: 20px;
77
65
  }
@@ -85,12 +73,16 @@
85
73
  opacity: 0;
86
74
  }
87
75
 
88
- .sidebar.close .sts-sidebar-menu-item{
89
- margin-left: 2px;
76
+ .sidebar.close .icon-link {
77
+ margin-top: -40px;
78
+ transition: 0.3s ease;
79
+ transition-delay: 0.1s;
90
80
  }
91
81
 
92
82
 
93
-
83
+ .sidebar.close .sts-sidebar-menu-item{
84
+ margin-left: 2px;
85
+ }
94
86
 
95
87
  .sidebar .boxture-logo {
96
88
  height: 52px;
@@ -125,8 +117,6 @@
125
117
 
126
118
  .dark .sidebar {
127
119
  background: #222836;
128
- transition: 0.3s ease;
129
- transition-delay: 0.1s;
130
120
  }
131
121
 
132
122
  .dark .sidebar .logo_name {
@@ -1,8 +1,10 @@
1
- .sidebar
1
+ .sidebar data-controller="sidebar-component" data-sidebar-component-target="sidebar"
2
2
  = header
3
3
  .icon-link
4
4
  - @menu.items.each do |item|
5
5
  = render Satis::SidebarMenuItem::Component.new(item: item, menu_options: menu_options)
6
+ .arrow data-sidebar-component-target="arrow"
7
+ .fa-solid.fa-arrow-right-to-bracket
6
8
  = footer
7
9
 
8
10
 
@@ -0,0 +1,41 @@
1
+ import ApplicationController from "satis/controllers/application_controller"
2
+ import { debounce } from "satis/utils"
3
+
4
+ export default class SidebarComponentController extends ApplicationController {
5
+ connect() {
6
+ super.connect();
7
+ this.initializeSidebar();
8
+ }
9
+
10
+ initializeSidebar() {
11
+ let sidebar_collapse = document.querySelector(".sidebar");
12
+ let topbar = document.querySelector(".topbar");
13
+ let page_body = document.querySelector(".page_body");
14
+ let sidebarBtn = document.querySelector(".arrow");
15
+
16
+ // Check stored state and apply it
17
+ const isClosed = sessionStorage.getItem('sidebarClosed') === 'true';
18
+ if (isClosed) {
19
+ sidebar_collapse.classList.add("close");
20
+ topbar.classList.add("close");
21
+ page_body.classList.add("close");
22
+ }
23
+
24
+
25
+ sidebarBtn.addEventListener("click", () => {
26
+ const isClosed = sidebar_collapse.classList.toggle("close");
27
+ topbar.classList.toggle("close");
28
+ page_body.classList.toggle("close");
29
+
30
+ // Save the current state to sessionStorage
31
+ sessionStorage.setItem('sidebarClosed', isClosed);
32
+ });
33
+ }
34
+ }
35
+
36
+ // Ensure the function runs on every Turbo page load
37
+ document.addEventListener("turbo:load", () => {
38
+ const controller = new SidebarComponentController();
39
+ controller.initializeSidebar();
40
+ });
41
+
@@ -17,13 +17,13 @@
17
17
  @apply text-gray-800 dark:text-gray-300 hover:bg-gray-50 dark:text-gray-100 dark:hover:bg-gray-700 hover:text-gray-900 w-full flex items-center pl-2 pr-1 py-2 text-left text-sm font-medium rounded-md focus:outline-none focus:ring-2 focus:ring-primary-500
18
18
  }
19
19
  &__icon {
20
- @apply mr-3 flex-shrink-0 h-6 w-6 text-gray-400 dark:text-gray-100 group-hover:text-gray-500;
20
+ @apply mr-3 flex-shrink-0 h-6 w-6 text-gray-400 dark:text-gray-200 group-hover:text-gray-500;
21
21
  }
22
22
  &__no-icon {
23
23
  @apply mr-3 flex-shrink-0 h-6;
24
24
  }
25
25
  &__label {
26
- @apply flex-1 text-gray-700;
26
+ @apply flex-1 text-gray-700 dark:text-gray-300;
27
27
  }
28
28
  &__menu-icon {
29
29
  @apply text-gray-300 ml-3 flex-shrink-0 h-5 w-5 transform group-hover:text-gray-400 transition-colors ease-in-out duration-150;
@@ -33,6 +33,7 @@
33
33
 
34
34
  .page_bg .sidebar.close .sts-sidebar-menu-item__menu-icon {
35
35
  display: none;
36
+ margin-left: 2px;
36
37
  }
37
38
 
38
39
  .page_bg .sidebar.close .sts-sidebar-menu-item__label {
@@ -43,7 +44,6 @@
43
44
  display: none;
44
45
  visibility: hidden;
45
46
  opacity: 0;
46
- transition: visibility 0s linear 1s, opacity 1s linear; /* Ensures it stays visible for 1 second after mouse leaves */
47
47
  }
48
48
 
49
49
  .page_bg .sidebar.close .sts-sidebar-menu-item:hover .sts-sidebar-menu-item__label {
@@ -52,7 +52,7 @@
52
52
  }
53
53
 
54
54
  .page_bg .sidebar.close .sts-sidebar-menu-item:hover > [data-satis-sidebar-menu-item-target="submenu"] {
55
- @apply bg-white dark:bg-gray-900 py-0 px-0;
55
+ @apply rounded-md bg-white dark:bg-gray-900 py-0 px-0;
56
56
  display: block;
57
57
  visibility: visible;
58
58
  opacity: 1;
@@ -62,9 +62,6 @@
62
62
  margin-left: 35px;
63
63
  margin-top: -60px;
64
64
  z-index: 1000;
65
- overflow: visible;
66
- box-shadow: -0.5px 0px 3px 0.3px #aaaaaa;
67
- transition: visibility 0s linear 0s, opacity 0.5s linear;
68
65
  }
69
66
 
70
67
  .page_bg .sidebar.close .sts-sidebar-menu-item:hover > [data-satis-sidebar-menu-item-target="submenu"] .sts-sidebar-menu-item:hover .sts-sidebar-menu-item__label {
@@ -24,6 +24,9 @@ application.register("satis-menu", MenuComponentController);
24
24
  import PageComponentController from "satis/components/page/component_controller";
25
25
  application.register("satis-page", PageComponentController);
26
26
 
27
+ import SidebarComponentController from "satis/components/sidebar/component_controller";
28
+ application.register("satis-sidebar", SidebarComponentController);
29
+
27
30
  import SidebarMenuComponentController from "satis/components/sidebar_menu/component_controller";
28
31
  application.register("satis-sidebar-menu", SidebarMenuComponentController);
29
32
 
data/lib/satis/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Satis
2
- VERSION = "2.1.28"
2
+ VERSION = "2.1.29"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: satis
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.28
4
+ version: 2.1.29
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom de Grunt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-03 00:00:00.000000000 Z
11
+ date: 2024-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: browser
@@ -824,6 +824,7 @@ files:
824
824
  - app/components/satis/sidebar/component.css
825
825
  - app/components/satis/sidebar/component.html.slim
826
826
  - app/components/satis/sidebar/component.rb
827
+ - app/components/satis/sidebar/component_controller.js
827
828
  - app/components/satis/sidebar_menu/component.css
828
829
  - app/components/satis/sidebar_menu/component.html.slim
829
830
  - app/components/satis/sidebar_menu/component.rb