blue-web 1.17.7 → 1.18.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.
package/dist/style.scss CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Blue Web v1.17.7 (https://bruegmann.github.io/blue-web)
2
+ * Blue Web v1.18.0 (https://bruegmann.github.io/blue-web)
3
3
  * Licensed under GNU General Public License v3.0 (https://github.com/bruegmann/blue-web/blob/master/LICENSE).
4
4
  */
5
5
 
@@ -38,7 +38,6 @@
38
38
  @import "./styles/page-header";
39
39
  @import "./styles/input-group";
40
40
  @import "./styles/action-menu";
41
- @import "./styles/caret";
42
41
  @import "./styles/tooltips";
43
42
  @import "./styles/hover";
44
43
  @import "./styles/button-icon-wrapper";
@@ -51,8 +51,7 @@
51
51
  margin-right: 0.5rem;
52
52
  }
53
53
 
54
- .blue-menu-item-label,
55
- .blue-menu-item-dropdown-caret.blue-caret {
54
+ .blue-menu-item-label {
56
55
  display: initial;
57
56
  }
58
57
  }
@@ -2,8 +2,19 @@
2
2
  anchor-name: var(--blue-anchor-name, --anchor-1);
3
3
  }
4
4
 
5
+ @position-try --blue-anchored-below {
6
+ top: anchor(var(--blue-anchor-name, --anchor-1) bottom);
7
+ bottom: unset;
8
+ }
9
+
10
+ @position-try --blue-anchored-above {
11
+ bottom: anchor(var(--blue-anchor-name, --anchor-1) top);
12
+ top: unset;
13
+ }
14
+
5
15
  .blue-anchored {
6
16
  top: anchor(var(--blue-anchor-name, --anchor-1) bottom);
17
+ position-try: --blue-anchored-below, --blue-anchored-above;
7
18
  }
8
19
 
9
20
  .blue-anchored-start {
@@ -9,24 +9,6 @@ body {
9
9
 
10
10
  body {
11
11
  background: var(--blue-app-bg, #{$app-bg});
12
-
13
- .blue-wrapper {
14
- position: fixed;
15
- width: 100%;
16
- width: 100%;
17
- left: 0;
18
- right: 0;
19
- top: 0;
20
- bottom: 0;
21
- z-index: 1;
22
- display: none;
23
- }
24
-
25
- &.open {
26
- .blue-wrapper {
27
- display: block;
28
- }
29
- }
30
12
  }
31
13
 
32
14
  // Idee für Effekt von http://www.w3schools.com/howto/howto_css_animate_buttons.asp
@@ -41,13 +23,12 @@ body {
41
23
  color 0.15s,
42
24
  box-shadow 0.3s,
43
25
  opacity 0.3s;
26
+ position: relative;
44
27
 
45
28
  @media (prefers-reduced-motion) {
46
29
  transition: none;
47
30
  }
48
31
 
49
- position: relative;
50
-
51
32
  &:hover,
52
33
  &:active,
53
34
  &:focus {
@@ -56,27 +37,6 @@ body {
56
37
  }
57
38
  }
58
39
 
59
- .page-link {
60
- &:hover,
61
- &:focus {
62
- text-decoration: none;
63
- }
64
- }
65
-
66
- .blue-wrapper {
67
- z-index: 3 !important;
68
-
69
- &.active {
70
- display: block;
71
- }
72
- }
73
-
74
- @media screen and (max-width: 768px) {
75
- .blue-header-extension .blue-header-title-labels:not(.keep) {
76
- display: none;
77
- }
78
- }
79
-
80
40
  .sign-in-screen {
81
41
  padding-top: $normal-size;
82
42
 
@@ -96,22 +56,17 @@ body {
96
56
  }
97
57
  }
98
58
 
99
- .w-bla-sidebar-width {
100
- width: $bla-sidebar-width;
101
- }
102
-
103
59
  .blue-header-title.sidebar {
104
60
  width: $bla-sidebar-width;
105
61
  padding-left: calc(#{$normal-size} + #{$spacer});
106
62
  transform: translateX(-100%);
107
63
  transition: transform 0.4s;
64
+ background: var(--blue-sidebar-bg);
65
+ color: $sidebar-color;
108
66
 
109
67
  @media (prefers-reduced-motion) {
110
68
  transition: none;
111
69
  }
112
-
113
- background: var(--blue-sidebar-bg);
114
- color: $sidebar-color;
115
70
  }
116
71
 
117
72
  .blue-scroll-shadow {
@@ -1,179 +1,171 @@
1
- @keyframes blue-menu-item-indicator-in-from-side {
2
- from {
3
- transform: translateX(-100%);
4
- }
5
- to {
6
- transform: translateX(1);
7
- }
8
- }
9
-
10
- @keyframes blue-menu-item-indicator-in-from-below {
11
- from {
12
- transform: translateY(100%);
13
- }
14
- to {
15
- transform: translateY(1);
16
- }
17
- }
18
-
19
- .blue-menu-item {
20
- transition:
21
- width 0.5s,
22
- background-color 0.3s,
23
- color 0.15s,
24
- box-shadow 0.3s,
25
- opacity 0.3s !important;
26
-
27
- @media (prefers-reduced-motion) {
28
- transition: none !important;
29
- }
30
-
31
- border: none;
32
- box-shadow: none;
33
- background-image: none;
34
-
35
- &:focus {
36
- box-shadow: none;
37
- }
38
-
39
- &:focus-visible {
40
- &,
41
- &.active {
42
- box-shadow: inset 0 0 0 0.25rem color-mix(in srgb, currentColor 15%, transparent);
43
- }
44
- }
45
- }
46
-
47
- .blue-menu-item-icon {
48
- display: inline-block;
49
-
50
- & > * {
51
- display: block;
52
- width: 1.5rem;
53
- }
54
- }
55
-
56
- .blue-menu-item-icon.iconForActive {
57
- display: none;
58
- }
59
-
60
- .blue-menu-item.active {
61
- .blue-menu-item-icon.hasIconForActive {
62
- display: none;
63
- }
64
- .blue-menu-item-icon.iconForActive {
65
- display: inline-block;
66
- }
67
- }
68
-
69
- .blue-menu-item-dropdown {
70
- margin-left: 1rem;
71
- animation: blue-menu-item-dropdown 0.15s;
72
-
73
- @media (prefers-reduced-motion) {
74
- animation-duration: 0s;
75
- }
76
-
77
- position: relative;
78
-
79
- &::before {
80
- content: "";
81
- position: absolute;
82
- top: 0.125rem;
83
- right: 0.125rem;
84
- bottom: 0.125rem;
85
- left: 0.125rem;
86
- border-radius: $border-radius;
87
- box-shadow: $box-shadow;
88
- border: 1px solid color-mix(in srgb, currentColor 15%, transparent);
89
- background-color: var(--blue-menu-item-dropdown-bg);
90
- }
91
-
92
- &[popover] {
93
- position: fixed;
94
- margin: 0;
95
- padding: 0;
96
- z-index: 1000;
97
- border: none;
98
- background: transparent;
99
- border-radius: calc(#{$border-radius} + 0.1rem);
100
- box-shadow: $box-shadow;
101
- }
102
- }
103
-
104
- .blue-menu-item-dropdown-caret.blue-caret {
105
- display: none;
106
- position: absolute;
107
- right: 1.5rem;
108
- top: 50%;
109
- transform: translateY(-50%);
110
- align-items: center;
111
- }
112
-
113
- .blue-menu-item {
114
- color: inherit;
115
- width: auto;
116
- height: $normal-size;
117
- font-size: $bla-btn-font-size;
118
- display: flex;
119
- align-items: center;
120
- border-color: transparent;
121
- --bs-btn-padding-x: 0.437rem;
122
- @include slide-transition();
123
-
124
- &::before {
125
- @include blue-menu-item-background();
126
- }
127
-
128
- &[draggable] {
129
- cursor: grab;
130
-
131
- &:active {
132
- box-shadow: inset 0 0 0.25rem;
133
- }
134
- }
135
-
136
- &:hover,
137
- &:active,
138
- &.highlighted,
139
- &:has(+ :popover-open) {
140
- color: inherit;
141
- border-color: transparent;
142
-
143
- &::before {
144
- transform: scale(1);
145
- opacity: 0.25;
146
- }
147
- }
148
-
149
- &.highlighted,
150
- &:has(+ :popover-open) {
151
- &::before {
152
- opacity: 0.16;
153
- }
154
- }
155
-
156
- &:hover,
157
- &:active {
158
- &::before {
159
- opacity: 0.25;
160
- }
161
- }
162
-
163
- &.active::after {
164
- @include blue-menu-item-indicator();
165
- }
166
-
167
- & > * + .blue-menu-item-label {
168
- margin-left: 0.5rem;
169
- }
170
- }
171
-
172
- .blue-menu-item-wrapper {
173
- display: contents;
174
- }
175
-
176
- .blue-menu-item-dropdown > .blue-menu-item-wrapper > .blue-menu-item,
177
- .blue-menu-item-dropdown > .blue-menu-item {
178
- width: 100%;
179
- }
1
+ @keyframes blue-menu-item-indicator-in-from-side {
2
+ from {
3
+ transform: translateX(-100%);
4
+ }
5
+ to {
6
+ transform: translateX(1);
7
+ }
8
+ }
9
+
10
+ @keyframes blue-menu-item-indicator-in-from-below {
11
+ from {
12
+ transform: translateY(100%);
13
+ }
14
+ to {
15
+ transform: translateY(1);
16
+ }
17
+ }
18
+
19
+ .blue-menu-item {
20
+ transition:
21
+ width 0.5s,
22
+ background-color 0.3s,
23
+ color 0.15s,
24
+ box-shadow 0.3s,
25
+ opacity 0.3s !important;
26
+
27
+ @media (prefers-reduced-motion) {
28
+ transition: none !important;
29
+ }
30
+
31
+ & {
32
+ border: none;
33
+ box-shadow: none;
34
+ background-image: none;
35
+ }
36
+
37
+ &:focus {
38
+ box-shadow: none;
39
+ }
40
+
41
+ &:focus-visible {
42
+ &,
43
+ &.active {
44
+ box-shadow: inset 0 0 0 0.25rem color-mix(in srgb, currentColor 15%, transparent);
45
+ }
46
+ }
47
+ }
48
+
49
+ .blue-menu-item-icon {
50
+ display: inline-block;
51
+
52
+ & > * {
53
+ display: block;
54
+ width: 1.5rem;
55
+ }
56
+ }
57
+
58
+ .blue-menu-item-icon.iconForActive {
59
+ display: none;
60
+ }
61
+
62
+ .blue-menu-item.active {
63
+ .blue-menu-item-icon.hasIconForActive {
64
+ display: none;
65
+ }
66
+ .blue-menu-item-icon.iconForActive {
67
+ display: inline-block;
68
+ }
69
+ }
70
+
71
+ .blue-menu-item-dropdown {
72
+ margin-left: 1rem;
73
+ animation: blue-menu-item-dropdown 0.15s;
74
+ position: relative;
75
+
76
+ @media (prefers-reduced-motion) {
77
+ animation-duration: 0s;
78
+ }
79
+
80
+ &::before {
81
+ content: "";
82
+ position: absolute;
83
+ top: 0.125rem;
84
+ right: 0.125rem;
85
+ bottom: 0.125rem;
86
+ left: 0.125rem;
87
+ border-radius: $border-radius;
88
+ box-shadow: $box-shadow;
89
+ border: 1px solid color-mix(in srgb, currentColor 15%, transparent);
90
+ background-color: var(--blue-menu-item-dropdown-bg);
91
+ }
92
+
93
+ &[popover] {
94
+ position: fixed;
95
+ margin: 0;
96
+ padding: 0;
97
+ z-index: 1000;
98
+ border: none;
99
+ background: transparent;
100
+ border-radius: calc(#{$border-radius} + 0.1rem);
101
+ box-shadow: $box-shadow;
102
+ }
103
+ }
104
+
105
+ .blue-menu-item {
106
+ color: inherit;
107
+ width: auto;
108
+ height: $normal-size;
109
+ font-size: $bla-btn-font-size;
110
+ display: flex;
111
+ align-items: center;
112
+ border-color: transparent;
113
+ --bs-btn-padding-x: 0.437rem;
114
+ @include slide-transition();
115
+
116
+ &::before {
117
+ @include blue-menu-item-background();
118
+ }
119
+
120
+ &[draggable] {
121
+ cursor: grab;
122
+
123
+ &:active {
124
+ box-shadow: inset 0 0 0.25rem;
125
+ }
126
+ }
127
+
128
+ &:hover,
129
+ &:active,
130
+ &.highlighted,
131
+ &:has(+ :popover-open) {
132
+ color: inherit;
133
+ border-color: transparent;
134
+
135
+ &::before {
136
+ transform: scale(1);
137
+ opacity: 0.25;
138
+ }
139
+ }
140
+
141
+ &.highlighted,
142
+ &:has(+ :popover-open) {
143
+ &::before {
144
+ opacity: 0.16;
145
+ }
146
+ }
147
+
148
+ &:hover,
149
+ &:active {
150
+ &::before {
151
+ opacity: 0.25;
152
+ }
153
+ }
154
+
155
+ &.active::after {
156
+ @include blue-menu-item-indicator();
157
+ }
158
+
159
+ & > * + .blue-menu-item-label {
160
+ margin-left: 0.5rem;
161
+ }
162
+ }
163
+
164
+ .blue-menu-item-wrapper {
165
+ display: contents;
166
+ }
167
+
168
+ .blue-menu-item-dropdown > .blue-menu-item-wrapper > .blue-menu-item,
169
+ .blue-menu-item-dropdown > .blue-menu-item {
170
+ width: 100%;
171
+ }
@@ -1,48 +1,3 @@
1
- .blue-header {
2
- @include header-bg();
3
- color: var(--blue-header-color);
4
- }
5
-
6
- .blue-header {
7
- height: $normal-size;
8
- position: fixed;
9
- top: 0;
10
- left: $normal-size;
11
- right: 0;
12
- z-index: 4;
13
-
14
- .navbar-nav {
15
- margin: 0;
16
-
17
- > li {
18
- float: left;
19
-
20
- > a {
21
- background-color: transparent;
22
- color: var(--blue-header-color);
23
- padding: $bla-header-nav-padding;
24
-
25
- &:hover,
26
- &:focus {
27
- background-color: $bla-button-bg-hover;
28
- }
29
- }
30
- }
31
- }
32
-
33
- .navbar-left {
34
- float: left !important;
35
- }
36
-
37
- .navbar-right {
38
- float: right !important;
39
- }
40
-
41
- .blue-search {
42
- width: 16rem;
43
- }
44
- }
45
-
46
1
  .blue-header-title {
47
2
  a {
48
3
  color: inherit;
@@ -33,25 +33,31 @@
33
33
  animation-duration: 0s;
34
34
  }
35
35
 
36
- transform: scale(10, 10);
37
- opacity: 0;
38
- transition: transform 0.5s, opacity 1s;
36
+ & {
37
+ transform: scale(10, 10);
38
+ opacity: 0;
39
+ transition:
40
+ transform 0.5s,
41
+ opacity 1s;
42
+ }
39
43
 
40
44
  @media (prefers-reduced-motion) {
41
45
  transition: none;
42
46
  }
43
47
  }
44
48
 
45
- transform: translate3d(0, 0, 0);
46
- overflow: hidden;
47
- white-space: pre-wrap;
49
+ & {
50
+ transform: translate3d(0, 0, 0);
51
+ overflow: hidden;
52
+ white-space: pre-wrap;
48
53
 
49
- bottom: 2.5rem + 4rem + 0.938rem;
50
- left: 1rem;
51
- right: 1rem;
54
+ bottom: 2.5rem + 4rem + 0.938rem;
55
+ left: 1rem;
56
+ right: 1rem;
52
57
 
53
- max-height: calc(100vh - 15rem);
54
- max-height: calc(100dvh - 15rem);
58
+ max-height: calc(100vh - 15rem);
59
+ max-height: calc(100dvh - 15rem);
60
+ }
55
61
 
56
62
  .alert-body {
57
63
  max-height: calc(100vh - 16rem);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blue-web",
3
- "version": "1.17.7",
3
+ "version": "1.18.0",
4
4
  "description": "UI components built on top of Bootstrap 5",
5
5
  "license": "LGPL-3.0-or-later",
6
6
  "type": "module",
@@ -36,8 +36,8 @@
36
36
  "bootstrap": "~5.3.8"
37
37
  },
38
38
  "devDependencies": {
39
- "@astrojs/mdx": "^4.3.4",
40
- "@astrojs/react": "^4.3.0",
39
+ "@astrojs/mdx": "^4.3.7",
40
+ "@astrojs/react": "^4.4.0",
41
41
  "@babel/cli": "^7.10.4",
42
42
  "@babel/preset-env": "^7.10.4",
43
43
  "@babel/preset-typescript": "^7.9.0",
@@ -46,7 +46,7 @@
46
46
  "@types/react": "^19.0.8",
47
47
  "@types/react-dom": "^19.0.3",
48
48
  "@types/react-syntax-highlighter": "^13.5.0",
49
- "astro": "^5.13.5",
49
+ "astro": "^5.14.4",
50
50
  "autoprefixer": "^10.3.6",
51
51
  "babel-loader": "^8.4.1",
52
52
  "blue-react": "^10.2.0",
@@ -63,7 +63,7 @@
63
63
  "react-dom": "^19.0.0",
64
64
  "react-markdown": "^8.0.3",
65
65
  "react-syntax-highlighter": "^15.4.3",
66
- "sass": "~1.77.6",
66
+ "sass": "^1.93.2",
67
67
  "themify": "file:../themify/themify-0.0.8.tgz",
68
68
  "typescript": "^4.3.5",
69
69
  "webpack": "^5.95.0",
@@ -1,54 +0,0 @@
1
- .blue-caret {
2
- /* treat like a font icon */
3
- font-family: "blueicon" !important;
4
- speak: none;
5
- font-style: normal;
6
- font-weight: normal;
7
- font-variant: normal;
8
- text-transform: none;
9
- line-height: 1;
10
- -webkit-font-smoothing: antialiased;
11
- -moz-osx-font-smoothing: grayscale;
12
-
13
- font-size: 1.15em;
14
- position: relative;
15
- top: 0.063rem;
16
- display: inline-block;
17
- /* END treat like a font icon */
18
-
19
- --caret-size: 0.5em;
20
- --caret-strength: 0.09em;
21
-
22
- width: 1em;
23
-
24
- &::before {
25
- content: "";
26
- display: block;
27
- position: absolute;
28
- top: 50%;
29
- left: 50%;
30
- width: var(--caret-size);
31
- height: var(--caret-size);
32
- background: transparent;
33
- box-shadow: var(--caret-strength) var(--caret-strength) 0 currentColor;
34
- transform: rotate(-45deg) translate(-50%, -50%);
35
- margin-top: calc((var(--caret-size) + var(--caret-strength)) * -1);
36
- transition: all 0.2s;
37
-
38
- @media (prefers-reduced-motion) {
39
- transition: none;
40
- }
41
- }
42
-
43
- &.blue-caret-mirrored {
44
- &::before {
45
- transform: rotate(135deg) translate(-50%, -50%);
46
- }
47
- }
48
-
49
- &.blue-caret-open {
50
- &::before {
51
- transform: rotate(45deg) translate(-50%, -50%);
52
- }
53
- }
54
- }