@webority/theme 0.68.3 → 0.70.1

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.
@@ -723,6 +723,11 @@
723
723
  padding: 0;
724
724
  font-size: 12px;
725
725
  }
726
+ .file-input.file-input-tall .file-input-text {
727
+ white-space: normal;
728
+ text-align: center;
729
+ overflow-wrap: anywhere;
730
+ }
726
731
 
727
732
  // Large preview shown once an image exists; hover reveals a "Change image"
728
733
  // overlay.
@@ -62,7 +62,7 @@
62
62
  padding: 0;
63
63
  }
64
64
  .modal.wui-remote-drawer .modal-dialog.wui-remote-drawer-dialog {
65
- margin: 0;
65
+ margin: 0 0 0 auto;
66
66
  max-width: none;
67
67
  width: min(var(--wui-modal-max-width, 480px), 100%);
68
68
  height: 100%;
@@ -87,3 +87,39 @@
87
87
  transition: none;
88
88
  }
89
89
  }
90
+
91
+ // On a phone the drawer rises from the bottom edge as a sheet instead of sliding in from the end.
92
+ @media (max-width: 767.98px) {
93
+ .modal.wui-remote-drawer .modal-dialog.wui-remote-drawer-dialog {
94
+ position: absolute;
95
+ inset: auto 0 0 0;
96
+ width: 100%;
97
+ height: auto;
98
+ max-height: 90dvh;
99
+ margin: 0;
100
+ transform: translateY(100%);
101
+ }
102
+ .modal.wui-remote-drawer.show .modal-dialog.wui-remote-drawer-dialog {
103
+ transform: none;
104
+ }
105
+ .modal.wui-remote-drawer .wui-remote-drawer-dialog .wui-modal {
106
+ height: auto;
107
+ max-height: 90dvh;
108
+ border-radius: var(--wui-radius-lg) var(--wui-radius-lg) 0 0;
109
+ }
110
+ .modal.wui-remote-drawer .wui-remote-drawer-dialog .wui-modal::before {
111
+ content: "";
112
+ display: block;
113
+ width: 36px;
114
+ height: 4px;
115
+ margin: 8px auto 0;
116
+ border-radius: 2px;
117
+ background: var(--color-border);
118
+ }
119
+ }
120
+
121
+ // A side panel dims the page behind it without blurring it, so the list stays readable.
122
+ body:has(> .modal.wui-remote-drawer.show) > .modal-backdrop {
123
+ backdrop-filter: none;
124
+ -webkit-backdrop-filter: none;
125
+ }
@@ -600,6 +600,21 @@
600
600
  max-width: min(92vw, 400px);
601
601
  }
602
602
 
603
+ // An end-side stack moves clear of an open side drawer, so a toast never covers the panel's
604
+ // content or its Save button. Widths mirror the drawer sizes in _drawer.scss; !important beats
605
+ // Bootstrap's .end-0 utility, which is itself !important.
606
+ @include media-breakpoint-up(md) {
607
+ body:has(.wui-drawer[open]:not([side="start"])) .wui-toast-container.end-0 {
608
+ right: min(480px, 100%) !important;
609
+ }
610
+ body:has(.wui-drawer[open][size="sm"]:not([side="start"])) .wui-toast-container.end-0 {
611
+ right: min(360px, 100%) !important;
612
+ }
613
+ body:has(.wui-drawer[open][size="lg"]:not([side="start"])) .wui-toast-container.end-0 {
614
+ right: min(640px, 100%) !important;
615
+ }
616
+ }
617
+
603
618
  // Bootstrap's .toast-container stacks children with margin-bottom: $toast-spacing (1.5rem),
604
619
  // which ADDED to the flex gap above — the stack spacing is the gap alone.
605
620
  .wui-toast-container > :not(:last-child) {
@@ -1,6 +1,7 @@
1
- // ── Bar ── (`size="bar"`): one 40px header row. The breadcrumbs lead as an inline prefix, the
2
- // title takes the spare width and ends in an ellipsis, and the row never wraps from md up.
3
- // Below md the row wraps, so the actions drop under the title instead of overlapping it.
1
+ // ── Bar ── (`size="bar"`): one 40px header row. The breadcrumbs lead as an inline prefix. The
2
+ // title keeps its content width and a spacer takes the spare width, so the views follow the title
3
+ // and the tools and actions sit at the far end. Below md the row wraps, so the actions drop under
4
+ // the title instead of overlapping it.
4
5
  // Selectors name `.page-header.page-header-bar` because `.page-header-bar` alone is also the
5
6
  // inner row of every other size.
6
7
  .page-header.page-header-bar {
@@ -10,27 +11,58 @@
10
11
  // The bar sits 4px above the first content block.
11
12
  margin-bottom: 4px;
12
13
  }
14
+ [data-density="compact"] .app-content:has(.page-header.page-header-bar) {
15
+ --app-content-padding-top: 8px;
16
+ }
13
17
  .page-header.page-header-bar .page-title {
14
- flex: 1 1 0;
15
- min-width: 0;
18
+ flex: 0 1 auto;
19
+ min-width: min(12ch, max-content);
16
20
  font-size: 20px;
17
21
  overflow: hidden;
18
22
  text-overflow: ellipsis;
19
23
  white-space: nowrap;
20
24
  }
25
+ .page-header.page-header-bar:has(> .page-header-bar-views) .page-title {
26
+ max-width: 280px;
27
+ }
21
28
  .page-header.page-header-bar .page-status,
22
- .page-header-bar-views,
23
- .page-header-bar-meta,
24
29
  .page-header-bar-tools,
30
+ .page-header-bar-meta,
25
31
  .page-header.page-header-bar .page-actions {
26
32
  flex: none;
27
33
  }
34
+ .page-header-bar-views {
35
+ flex: 0 1 auto;
36
+ min-width: 0;
37
+ }
38
+ .page-header-bar-spacer {
39
+ flex: 1 1 0;
40
+ min-width: 0;
41
+ }
28
42
  .page-header-bar-crumbs {
29
43
  flex: none;
30
44
  font-size: 13px;
31
45
  color: var(--color-text-muted);
32
46
  white-space: nowrap;
33
47
  }
48
+ .page-header-bar-crumbs .breadcrumb {
49
+ --bs-breadcrumb-divider: "/";
50
+ margin: 0;
51
+ flex-wrap: nowrap;
52
+ }
53
+ .page-header-bar-crumbs .breadcrumb-item,
54
+ .page-header-bar-crumbs .breadcrumb-item a {
55
+ color: var(--color-text-muted);
56
+ text-decoration: none;
57
+ }
58
+ .page-header-bar-crumbs .breadcrumb-item a:hover {
59
+ text-decoration: underline;
60
+ }
61
+ .page-header-bar-crumbs .breadcrumb-item:last-child::after {
62
+ content: "/";
63
+ padding-inline-start: var(--bs-breadcrumb-item-padding-x, 0.5rem);
64
+ color: var(--color-text-muted);
65
+ }
34
66
  .page-header-bar-views,
35
67
  .page-header-bar-tools,
36
68
  .page-header-bar-bulk {
@@ -51,6 +83,9 @@
51
83
  display: none;
52
84
  }
53
85
  .page-header-bar-meta {
86
+ display: flex;
87
+ align-items: center;
88
+ column-gap: 16px;
54
89
  font-size: 13px;
55
90
  color: var(--color-text-muted);
56
91
  white-space: nowrap;
@@ -63,6 +98,9 @@
63
98
  }
64
99
  .page-header.wui-page-header-meta-below > .page-header-bar-meta {
65
100
  flex: 0 0 100%;
101
+ flex-wrap: wrap;
102
+ white-space: normal;
103
+ column-gap: 16px;
66
104
  line-height: 16px;
67
105
  }
68
106
 
@@ -74,4 +112,22 @@
74
112
  .page-header.page-header-bar .page-title {
75
113
  flex: 0 1 auto;
76
114
  }
115
+ .page-header-bar-crumbs {
116
+ display: none;
117
+ }
118
+ .page-header-bar-views {
119
+ order: 5;
120
+ flex: 1 1 100%;
121
+ min-width: 0;
122
+ }
123
+ .page-header-bar-meta {
124
+ order: 6;
125
+ flex: 1 1 100%;
126
+ flex-wrap: wrap;
127
+ white-space: normal;
128
+ }
129
+ .page-header-bar-tools {
130
+ flex-wrap: wrap;
131
+ min-width: 0;
132
+ }
77
133
  }