@dejwcake/craftable 0.1.9 → 2.0.0

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.
Files changed (126) hide show
  1. package/README.md +117 -3
  2. package/dist/buildMatchPatternFn-BV4I8r8j.js +63 -0
  3. package/dist/buildMatchPatternFn-T5KjFTBQ.cjs +1 -0
  4. package/dist/craftable.css +2 -0
  5. package/dist/cs-B5QMxFrl.js +682 -0
  6. package/dist/cs-MAoetkhe.cjs +1 -0
  7. package/dist/de-BlQ2ZKmc.js +526 -0
  8. package/dist/de-BoVLAn6U.cjs +1 -0
  9. package/dist/en-US-BLvEnhs4.js +443 -0
  10. package/dist/en-US-Dz8vkDZ_.cjs +1 -0
  11. package/dist/en-US-X9gX759i.cjs +1 -0
  12. package/dist/es-DBHDeXHI.cjs +1 -0
  13. package/dist/es-YEqfkBY2.js +437 -0
  14. package/dist/fr-B7MHC2AN.js +407 -0
  15. package/dist/fr-DLs3QoNB.cjs +1 -0
  16. package/dist/hu-BKZPI9jH.cjs +1 -0
  17. package/dist/hu-reoJgNxD.js +425 -0
  18. package/dist/index.cjs +1 -0
  19. package/dist/index.mjs +3866 -0
  20. package/dist/isSameWeek-CC6GX_zp.js +40 -0
  21. package/dist/isSameWeek-Mctj6Tdj.cjs +1 -0
  22. package/dist/pl-B5A0Rjp7.js +628 -0
  23. package/dist/pl-BMyrOO-Q.cjs +1 -0
  24. package/dist/sk-B7JF2MoV.cjs +1 -0
  25. package/dist/sk-Btro3W4S.js +602 -0
  26. package/package.json +68 -40
  27. package/scripts/publish-components.js +118 -0
  28. package/scss/_images.scss +1 -1
  29. package/scss/_variables.scss +13 -6
  30. package/scss/app.scss +4 -4
  31. package/scss/overrides/_alerts.scss +0 -2
  32. package/scss/overrides/_badges.scss +1 -17
  33. package/scss/overrides/_buttons.scss +64 -7
  34. package/scss/overrides/_cards.scss +4 -51
  35. package/scss/overrides/_checkboxes.scss +54 -59
  36. package/scss/overrides/_forms.scss +270 -176
  37. package/scss/overrides/_index.scss +18 -18
  38. package/scss/overrides/_keyframes.scss +6 -4
  39. package/scss/overrides/_layout.scss +24 -30
  40. package/scss/overrides/_media-wysiwyg.scss +9 -111
  41. package/scss/overrides/_modal.scss +0 -18
  42. package/scss/overrides/_multiselect.scss +63 -7
  43. package/scss/overrides/_nav.scss +55 -33
  44. package/scss/overrides/_notifications.scss +6 -1
  45. package/scss/overrides/_pagination.scss +3 -3
  46. package/scss/overrides/_sidebar.scss +84 -0
  47. package/scss/overrides/_tables.scss +52 -37
  48. package/scss/overrides/_text.scss +1 -3
  49. package/scss/overrides/_wysiwyg.scss +151 -48
  50. package/scss/styles/_auth.scss +32 -37
  51. package/scss/styles/_custom.scss +44 -1
  52. package/scss/styles/_index.scss +4 -4
  53. package/scss/styles/_legacy.scss +5 -81
  54. package/scss/styles/_others.scss +232 -337
  55. package/scss/vendor/_index.scss +5 -4
  56. package/src/auth/ActivationError.vue +23 -0
  57. package/src/auth/ActivationForm.vue +69 -0
  58. package/src/auth/ForgotPasswordForm.vue +74 -0
  59. package/src/auth/LoginForm.vue +107 -0
  60. package/src/auth/ResetPasswordForm.vue +122 -0
  61. package/src/components/ConfirmModal.vue +65 -0
  62. package/src/components/UserDetailTooltip.vue +88 -0
  63. package/src/components/form/CkeditorEditor.vue +205 -0
  64. package/src/components/form/FormCheckbox.vue +29 -0
  65. package/src/components/form/FormDatePicker.vue +52 -0
  66. package/src/components/form/FormEmail.vue +17 -0
  67. package/src/components/form/FormInput.vue +31 -0
  68. package/src/components/form/FormLocalizedInput.vue +47 -0
  69. package/src/components/form/FormLocalizedWysiwyg.vue +55 -0
  70. package/src/components/form/FormLocalizedWysiwygSimple.vue +55 -0
  71. package/src/components/form/FormMultiSelect.vue +36 -0
  72. package/src/components/form/FormPasswordConfirm.vue +49 -0
  73. package/src/components/form/FormSelect.vue +35 -0
  74. package/src/components/form/FormSubmit.vue +13 -0
  75. package/src/components/form/FormTextarea.vue +31 -0
  76. package/src/components/form/FormWysiwyg.vue +31 -0
  77. package/src/components/form/FormWysiwygSimple.vue +31 -0
  78. package/src/components/form/LocalizationBar.vue +90 -0
  79. package/src/components/form/MediaUpload.vue +317 -0
  80. package/src/components/form/TiptapEditor.vue +238 -0
  81. package/src/components/listing/BulkCheckboxHeader.vue +18 -0
  82. package/src/components/listing/BulkCheckboxRow.vue +21 -0
  83. package/src/components/listing/BulkOperationsBar.vue +41 -0
  84. package/src/components/listing/DeleteButton.vue +46 -0
  85. package/src/components/listing/EditButton.vue +17 -0
  86. package/src/components/listing/EmptyState.vue +25 -0
  87. package/src/components/listing/ListingHeader.vue +24 -0
  88. package/src/components/listing/Pagination.vue +158 -0
  89. package/src/components/listing/PerPage.vue +15 -0
  90. package/src/components/listing/PublishedAtColumn.vue +226 -0
  91. package/src/components/listing/Search.vue +81 -0
  92. package/src/components/listing/Sortable.vue +28 -0
  93. package/src/components/listing/ToggleSwitch.vue +47 -0
  94. package/src/composables/useAdmin.js +39 -0
  95. package/src/composables/useBaseAuth.js +81 -0
  96. package/src/composables/useBaseForm.js +265 -0
  97. package/src/composables/useBaseListing.js +316 -0
  98. package/src/composables/useResponsiveColumns.js +62 -0
  99. package/src/index.js +62 -0
  100. package/src/translation/TranslationListing.vue +230 -0
  101. package/src/translation/modals/TranslationEditModal.vue +86 -0
  102. package/src/translation/modals/TranslationExportModal.vue +74 -0
  103. package/src/translation/modals/TranslationImportModal.vue +255 -0
  104. package/src/ui/index.js +99 -0
  105. package/src/utils/ckeditorHelpers.js +36 -0
  106. package/src/utils/dateFnsLocale.js +24 -0
  107. package/src/utils/dateFormatters.js +30 -0
  108. package/src/utils/mediaProps.js +14 -0
  109. package/src/utils/notify.js +22 -0
  110. package/dist/admin/Admin.js +0 -42
  111. package/dist/auth/Form.js +0 -15
  112. package/dist/base-components/Form/BaseForm.js +0 -392
  113. package/dist/base-components/Form/BaseUpload.js +0 -188
  114. package/dist/base-components/Form/bootstrap.js +0 -21
  115. package/dist/base-components/Listing/BaseListing.js +0 -454
  116. package/dist/base-components/Listing/components/Pagination.js +0 -105
  117. package/dist/base-components/Listing/components/Sortable.js +0 -48
  118. package/dist/base-components/Listing/components/UserDetailTooltip.js +0 -55
  119. package/dist/index.js +0 -70
  120. package/dist/overrides/trumbowyg.edit-embed-template.js +0 -72
  121. package/dist/overrides/trumbowyg.reupload.js +0 -146
  122. package/dist/overrides/trumbowyg.template.js +0 -67
  123. package/dist/translation/Form.js +0 -15
  124. package/dist/translation/Listing.js +0 -283
  125. package/dist/ui/index.js +0 -33
  126. package/scss/overrides/_switches.scss +0 -25
@@ -1,5 +1,3 @@
1
- @use "../variables" as *;
2
-
3
1
  @keyframes spin {
4
2
  100% {
5
3
  transform: rotate(360deg);
@@ -10,16 +8,20 @@
10
8
  20% {
11
9
  transform: rotate3d(0, 0, 1, 15deg);
12
10
  }
11
+
13
12
  40% {
14
13
  transform: rotate3d(0, 0, 1, -10deg);
15
14
  }
15
+
16
16
  60% {
17
17
  transform: rotate3d(0, 0, 1, 5deg);
18
18
  }
19
+
19
20
  80% {
20
21
  transform: rotate3d(0, 0, 1, -5deg);
21
22
  }
22
- to {
23
+
24
+ 100% {
23
25
  transform: rotate3d(0, 0, 1, 0deg);
24
26
  }
25
- }
27
+ }
@@ -1,49 +1,43 @@
1
- @use "../variables" as *;
2
-
3
1
  body {
4
- background-color: #F5F8FF;
2
+ background-color: #f5f8ff;
5
3
  }
6
4
 
7
- main.main {
8
- margin-top: 1.5rem;
5
+ .body {
6
+ margin-top: 1.5rem;
9
7
  }
10
8
 
11
9
  [v-cloak] {
12
- display: none;
10
+ display: none;
13
11
  }
14
12
 
15
- .app-footer {
16
- background: none;
17
- border: none;
18
- color: #7e878c;
19
- font-size: 13px;
20
- margin-top: -1.5rem;
21
- a {
22
- color: $primary;
23
- }
24
- }
13
+ .footer {
14
+ background: none;
15
+ border: none;
16
+ color: #7e878c;
17
+ font-size: 13px;
25
18
 
26
- .hidden {
27
- display: none;
19
+ a {
20
+ color: $primary;
21
+ }
28
22
  }
29
23
 
30
- .hidden-xs-up {
31
- display: none;
24
+ .hidden {
25
+ display: none;
32
26
  }
33
27
 
34
28
  .width-auto {
35
- width: auto;
29
+ width: auto;
36
30
  }
37
31
 
38
32
  .breadcrumb {
39
- display: none;
33
+ display: none;
40
34
  }
41
35
 
42
- @media (min-width: 1200px) {
43
- .container-xl {
44
- margin-right: auto;
45
- margin-left: auto;
46
- width: 1140px;
47
- max-width: 100%;
48
- }
49
- }
36
+ @media (width >= 1200px) {
37
+ .container-xl {
38
+ margin-right: auto;
39
+ margin-left: auto;
40
+ width: 1140px;
41
+ max-width: 100%;
42
+ }
43
+ }
@@ -1,114 +1,12 @@
1
- @use "../variables" as *;
2
- @use "../images" as *;
3
-
4
- // Write (or import) your styles here
5
- .trumbowyg-editor table.table td {
6
- min-width: unset;
7
- display: table-cell;
8
- }
9
-
10
- div.trumbowyg-button-pane {
11
- background: #ffffff;
12
- border-bottom: 1px solid $mutedText;
13
- .trumbowyg-button-group::after {
14
- background: rgba(0, 0, 0, 0);
15
- }
16
- }
17
- div.trumbowyg-box {
18
- border: 1px solid $mutedText;
19
- &:after {
20
- content: '';
21
- background-size: contain;
22
- background-repeat: no-repeat;
23
- width: 18px;
24
- height: 18px;
25
- position: absolute;
26
- right: 10px;
27
- top: 45px;
28
- background-position: center;
29
- }
30
- }
31
-
32
- div.trumbowyg-modal-box {
33
- .trumbowyg-modal-button {
34
- border-radius: 4px;
35
- &.trumbowyg-modal-submit {
36
- background: $success;
37
- &:hover, &:focus {
38
- background: darken($success, 10);
39
- }
40
- &:before {
41
- content: '\f00c';
42
- font-family: FontAwesome;
43
- padding-right: 5px;
44
- font-size: 14px;
45
- }
46
- }
47
- &.trumbowyg-modal-reset {
48
- background: #fbfbfb;
49
- &:hover, &:focus {
50
- background: #e6e6e6;
51
- }
52
- &:before {
53
- content: '\f00d';
54
- font-family: FontAwesome;
55
- padding-right: 5px;
56
- font-size: 14px;
57
- }
58
- }
59
-
60
- }
61
- label {
62
- overflow: visible;
63
- .trumbowyg-input-infos span {
64
- color: #555;
65
- background: white;
66
- border: none;
67
- }
68
- input {
69
- border: 1px solid $mutedText;
70
- &:hover, &:focus {
71
- border: 1px solid $mutedText;
72
- background: white;
73
- }
74
- &[type="file"] {
75
- height: 38px;
76
- padding-top: 2px;
77
- padding-left: 2px;
78
- }
79
- }
80
- }
81
- .trumbowyg-modal-title {
82
- background: white;
83
- }
84
-
1
+ // Tiptap media wysiwyg overrides
2
+ .tiptap-editor table.table td {
3
+ min-width: unset;
4
+ display: table-cell;
85
5
  }
86
6
 
87
- div.trumbowyg-dropdown button:hover, .trumbowyg-dropdown button:focus {
88
- background: rgba(185, 200, 222, 0.18);
7
+ .tiptap-image {
8
+ max-width: 100%;
9
+ height: auto;
10
+ display: block;
11
+ margin: 0.5em 0;
89
12
  }
90
-
91
- div.trumbowyg-dropdown-table table td.active {
92
- background-color: $success;
93
- }
94
-
95
- .has-danger {
96
- div.trumbowyg-box {
97
- border: 1px solid $danger;
98
- &:after {
99
- background-image: $icon-error;
100
- }
101
- }
102
- }
103
-
104
- .has-success {
105
- div.trumbowyg-box {
106
- &:after {
107
- background-image: $icon-correct;
108
- }
109
- }
110
- }
111
-
112
- .wysiwyg-noembed iframe {
113
- pointer-events: none;
114
- }
@@ -1,18 +1,4 @@
1
- .v--modal-overlay {
2
- z-index: 9999 !important;
3
- background-color: rgba(0, 0, 0, .4) !important;
4
- }
5
-
6
- .v--modal-overlay .v--modal-box {
7
- box-shadow: 0 2px 8px rgba(0, 0, 0, .33);
8
- }
9
-
10
- .modal--translation .v--modal-box {
11
- padding: 20px 30px 30px 30px;
12
- }
13
-
14
1
  .modal-title {
15
- margin-bottom: 20px;
16
2
  text-align: center;
17
3
  }
18
4
 
@@ -20,7 +6,3 @@
20
6
  margin-top: 30px;
21
7
  padding: 10px 0;
22
8
  }
23
-
24
- .loading .v--modal-overlay {
25
- display: none;
26
- }
@@ -1,6 +1,4 @@
1
- @use "../variables" as *;
2
-
3
- .multiselect__tag-icon:after {
1
+ .multiselect__tag-icon::after {
4
2
  color: white !important;
5
3
  }
6
4
 
@@ -18,13 +16,14 @@
18
16
  }
19
17
 
20
18
  .multiselect__tags {
21
- border-radius: 0 !important;
19
+ border-radius: $border-radius !important;
22
20
  border-color: $mutedText !important;
23
21
  }
24
22
 
25
23
  .multiselect__option--highlight {
26
24
  background: $success !important;
27
- &:after {
25
+
26
+ &::after {
28
27
  background: $success !important;
29
28
  }
30
29
  }
@@ -35,7 +34,64 @@
35
34
 
36
35
  .multiselect__option--selected.multiselect__option--highlight {
37
36
  background: $danger !important;
38
- &:after {
37
+
38
+ &::after {
39
39
  background: $danger !important;
40
40
  }
41
- }
41
+ }
42
+
43
+ .multiselect.is-invalid .multiselect__tags {
44
+ border-color: $danger !important;
45
+ }
46
+
47
+ // Multiselect as input-group prepend (e.g. translation group filter)
48
+ .multiselect--input-group-prepend {
49
+ width: auto !important;
50
+ min-width: 180px;
51
+ flex: 0 0 auto;
52
+ box-sizing: border-box !important;
53
+
54
+ // Let align-items: stretch from .input-group size this element
55
+ align-self: stretch;
56
+
57
+ .multiselect__tags {
58
+ height: 100% !important;
59
+ min-height: 0 !important;
60
+ padding: 0.375rem 2rem 0.375rem 0.75rem !important;
61
+ border-radius: var(--cui-border-radius) 0 0 var(--cui-border-radius) !important;
62
+ margin-right: -1px;
63
+ display: flex;
64
+ align-items: center;
65
+ }
66
+
67
+ .multiselect__placeholder,
68
+ .multiselect__single {
69
+ margin: 0 !important;
70
+ padding: 0 !important;
71
+ font-size: 1rem;
72
+ line-height: 1.5;
73
+ color: $mutedText;
74
+ white-space: nowrap;
75
+ overflow: hidden;
76
+ text-overflow: ellipsis;
77
+ }
78
+
79
+ .multiselect__single {
80
+ color: var(--cui-body-color);
81
+ }
82
+
83
+ .multiselect__select {
84
+ height: 100% !important;
85
+ top: 0 !important;
86
+ }
87
+
88
+ .multiselect__content-wrapper {
89
+ min-width: 100%;
90
+ }
91
+
92
+ .multiselect__input {
93
+ margin: 0 !important;
94
+ padding: 0 !important;
95
+ font-size: 1rem;
96
+ }
97
+ }
@@ -1,27 +1,55 @@
1
- @use "../variables" as *;
2
-
3
- .header-fixed .app-header {
4
- padding-right: 20px;
1
+ .header {
2
+ padding: 0 20px 0 0;
3
+ border-bottom: 1px solid #e4e7ea;
4
+ margin-bottom: 0;
5
5
  }
6
6
 
7
- .nav .dropdown-menu {
8
- border-radius: 0;
9
- margin-top: 13px;
7
+ .header-toggler {
8
+ background: none;
9
+ border: none;
10
+ color: var(--cui-header-color);
11
+ cursor: pointer;
12
+ padding: 0.25rem 0.75rem;
13
+ font-size: 1.25rem;
10
14
  }
11
15
 
12
- .dropdown-menu {
16
+ .dropdown .dropdown-menu {
17
+ display: block;
13
18
  border: none;
14
- box-shadow: 0 2px 8px rgba(0, 0, 0, .23);
19
+ border-radius: $border-radius;
20
+ padding: 0;
21
+ margin-top: -3px;
22
+ right: 0;
23
+ left: auto;
24
+ box-shadow: 0 2px 8px rgb(0 0 0 / 23%);
25
+ opacity: 0;
26
+ visibility: hidden;
27
+ transition:
28
+ opacity 200ms ease-in-out,
29
+ visibility 200ms ease-in-out;
15
30
  }
16
31
 
17
32
  .dropdown-header {
18
33
  background: $primary;
19
34
  color: white;
20
35
  border-bottom: none;
36
+ padding: 0.5rem 1.25rem;
37
+ font-size: 0.875rem;
21
38
  }
22
39
 
23
40
  .dropdown-item {
24
- border-bottom: 1px solid #F0F2F4;
41
+ border-bottom: 1px solid #f0f2f4;
42
+ padding: 0.5rem 1.25rem;
43
+ font-size: 0.875rem;
44
+
45
+ i {
46
+ color: #c8ced3;
47
+ display: inline-block;
48
+ margin-left: -10px;
49
+ margin-right: 10px;
50
+ text-align: center;
51
+ width: 20px;
52
+ }
25
53
  }
26
54
 
27
55
  .dropdown-item.active,
@@ -31,9 +59,9 @@
31
59
  background-color: white;
32
60
  }
33
61
 
34
- .app-header.navbar .navbar-brand {
62
+ .header .navbar-brand {
35
63
  padding: 0.5rem 1rem;
36
- color: #4273fa;
64
+ color: $primary;
37
65
  font-weight: 600;
38
66
  display: inline;
39
67
  width: auto;
@@ -41,49 +69,43 @@
41
69
  margin-right: 1rem;
42
70
  background: none !important;
43
71
  border: none;
72
+
44
73
  img {
45
74
  max-width: 200px;
46
75
  max-height: 20px;
47
76
  }
48
77
  }
49
78
 
79
+ .header-nav .nav-link {
80
+ font-size: 0.875rem;
81
+ color: #263238;
82
+ }
83
+
50
84
  .dropdown-toggle {
51
85
  box-shadow: none !important;
86
+
52
87
  &:hover {
53
88
  cursor: pointer;
54
89
  }
55
90
  }
56
91
 
57
- .dropdown .dropdown-menu {
58
- display: block;
59
- transition: all 300ms ease-in-out;
60
- opacity: 0;
61
- pointer-events: none;
62
- transform: translateY(5px);
63
- }
64
-
65
- .open .dropdown-menu {
66
- display: block;
92
+ .dropdown-menu.show {
67
93
  opacity: 1;
68
- pointer-events: all;
69
- transform: translateY(-5px);
70
- }
71
-
72
- .app-header.navbar {
73
- border-bottom: 1px solid #D6DEE3;
94
+ visibility: visible;
74
95
  }
75
96
 
76
- @media (max-width: 991px) {
77
- .app-header .navbar-brand {
97
+ @media (width <= 991px) {
98
+ .header .navbar-brand {
78
99
  text-align: center;
79
100
  }
101
+
80
102
  .avatar-initials {
81
103
  display: none;
82
104
  }
83
105
  }
84
106
 
85
- @media (max-width: 600px) {
86
- .app-header.navbar .navbar-brand {
107
+ @media (width <= 600px) {
108
+ .header .navbar-brand {
87
109
  display: none;
88
110
  }
89
- }
111
+ }
@@ -4,4 +4,9 @@
4
4
 
5
5
  .vue-notification {
6
6
  box-shadow: 0 0 12px #999;
7
- }
7
+ }
8
+
9
+ // vue3-notification compatibility
10
+ .vue-notification-group {
11
+ margin: 10px;
12
+ }
@@ -1,5 +1,3 @@
1
- @use "../variables" as *;
2
-
3
1
  .pagination {
4
2
  margin-bottom: 28px;
5
3
  }
@@ -22,18 +20,20 @@
22
20
  .pagination li.active a {
23
21
  background-color: $primary;
24
22
  border-color: $primary;
23
+
25
24
  &:hover {
26
25
  color: white;
27
26
  }
28
27
  }
29
28
 
30
- @media (max-width: 575px) {
29
+ @media (width <= 575px) {
31
30
  .pagination-caption {
32
31
  display: block;
33
32
  text-align: center;
34
33
  margin-bottom: 20px;
35
34
  top: 0;
36
35
  }
36
+
37
37
  .pagination {
38
38
  justify-content: center;
39
39
  }
@@ -0,0 +1,84 @@
1
+ .sidebar {
2
+ --cui-sidebar-bg: #{$sidebar-bg};
3
+ --cui-sidebar-border-color: transparent;
4
+ --cui-sidebar-toggler-color: #fff;
5
+ --cui-sidebar-toggler-hover-color: #fff;
6
+
7
+ border-right-color: transparent !important;
8
+ }
9
+
10
+ .sidebar-toggler {
11
+ --cui-sidebar-toggler-color: #fff;
12
+ --cui-sidebar-toggler-hover-color: #fff;
13
+ --cui-sidebar-toggler-focus-color: #fff;
14
+ }
15
+
16
+ .sidebar-nav {
17
+ --cui-sidebar-nav-link-color: #fff;
18
+ --cui-sidebar-nav-link-icon-color: #{$mutedText};
19
+ --cui-sidebar-nav-title-color: rgb(255 255 255 / 45%);
20
+ --cui-sidebar-nav-link-hover-bg: #{$primary};
21
+ --cui-sidebar-nav-link-hover-color: #fff;
22
+ --cui-sidebar-nav-link-hover-icon-color: #fff;
23
+ --cui-sidebar-nav-link-active-bg: #{$sidebar-nav-link-active-bg};
24
+ --cui-sidebar-nav-link-active-color: #{$sidebar-nav-link-active-color};
25
+ --cui-sidebar-nav-link-active-icon-color: #{$sidebar-nav-link-active-icon-color};
26
+ --cui-sidebar-nav-link-border-radius: 0;
27
+ --cui-sidebar-nav-link-padding-x: 0;
28
+ --cui-sidebar-nav-padding-x: 0;
29
+
30
+ padding: 0;
31
+ }
32
+
33
+ // Wrapper should be pushed by sidebar width
34
+ .wrapper {
35
+ margin-left: var(--cui-sidebar-occupy-start, 0);
36
+ transition: margin-left 0.15s;
37
+ }
38
+
39
+ // When sidebar is narrow-unfoldable (not hovered), push wrapper by narrow width
40
+ @media (width >= 992px) {
41
+ .sidebar.sidebar-narrow-unfoldable:not(.hide, .sidebar-end) ~ .wrapper {
42
+ --cui-sidebar-occupy-start: 4rem;
43
+ }
44
+ }
45
+
46
+ .sidebar-nav .nav-link {
47
+ padding: 0.75rem 1rem;
48
+ border-radius: 0;
49
+ margin: 0;
50
+ }
51
+
52
+ .sidebar-nav .nav-title {
53
+ padding: 0.75rem 1rem 0.25rem;
54
+ font-size: 0.7rem;
55
+ text-transform: uppercase;
56
+ letter-spacing: 0.05em;
57
+ font-weight: 600;
58
+ }
59
+
60
+ .sidebar-nav .nav-icon {
61
+ margin-right: 0.75rem;
62
+ font-size: 1.1rem;
63
+ text-align: center;
64
+ }
65
+
66
+ // In narrow mode, icon should fill the width to hide text and center
67
+ @media (width >= 992px) {
68
+ .sidebar-narrow .sidebar-nav .nav-link,
69
+ .sidebar-narrow-unfoldable:not(:hover) .sidebar-nav .nav-link {
70
+ padding-left: 0;
71
+ padding-right: 0;
72
+ }
73
+
74
+ .sidebar-narrow .sidebar-nav .nav-icon,
75
+ .sidebar-narrow-unfoldable:not(:hover) .sidebar-nav .nav-icon {
76
+ flex: 0 0 var(--cui-sidebar-narrow-width, 4rem);
77
+ margin-right: 0;
78
+ }
79
+ }
80
+
81
+ .sidebar-footer {
82
+ background: rgb(0 0 0 / 10%);
83
+ border-top-color: rgb(255 255 255 / 10%) !important;
84
+ }