@webority/theme 0.66.0 → 0.68.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/purge-safelist.json +16 -0
- package/dist/webority-theme.css +1 -1
- package/package.json +1 -1
- package/scss/_components.scss +5 -0
- package/scss/wui/_data.scss +40 -0
- package/scss/wui/_drawer.scss +14 -0
- package/scss/wui/_navigation.scss +38 -0
- package/scss/wui/_page-header-bar.scss +9 -0
- package/scss/wui/_shell.scss +58 -0
- package/scss/wui/_typography.scss +14 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webority/theme",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.68.0",
|
|
4
4
|
"description": "Webority shared design system — Bootstrap 5.3 SCSS overrides, --wui-* tokens, and shared component CSS. The single source of brand chrome for React portals and Razor sites.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"publishConfig": {
|
package/scss/_components.scss
CHANGED
|
@@ -513,6 +513,11 @@
|
|
|
513
513
|
}
|
|
514
514
|
}
|
|
515
515
|
|
|
516
|
+
// The form of a posting dropdown item takes no box, so its item stays a plain row of the menu.
|
|
517
|
+
.wui-dropdown-form {
|
|
518
|
+
display: contents;
|
|
519
|
+
}
|
|
520
|
+
|
|
516
521
|
// Group heading: an AppDropdown item `header` or <app-dropdown-header>.
|
|
517
522
|
.dropdown-menu .dropdown-header {
|
|
518
523
|
font-size: 12px;
|
package/scss/wui/_data.scss
CHANGED
|
@@ -1736,3 +1736,43 @@ wui-data-table {
|
|
|
1736
1736
|
animation: none;
|
|
1737
1737
|
}
|
|
1738
1738
|
}
|
|
1739
|
+
|
|
1740
|
+
// Drop targets for dragged rows (rowDrop.js): a sticky strip under the table, with a chip per target.
|
|
1741
|
+
.wui-drop-tray {
|
|
1742
|
+
position: sticky;
|
|
1743
|
+
bottom: 0;
|
|
1744
|
+
height: 96px;
|
|
1745
|
+
display: flex;
|
|
1746
|
+
align-items: center;
|
|
1747
|
+
gap: 8px;
|
|
1748
|
+
padding: 0 16px;
|
|
1749
|
+
overflow-x: auto;
|
|
1750
|
+
background: var(--color-surface);
|
|
1751
|
+
border-top: 1px solid var(--color-border);
|
|
1752
|
+
z-index: var(--wui-z-sticky);
|
|
1753
|
+
}
|
|
1754
|
+
.wui-drop-tray [data-wui-drop-target] {
|
|
1755
|
+
display: inline-flex;
|
|
1756
|
+
align-items: center;
|
|
1757
|
+
gap: 6px;
|
|
1758
|
+
height: 40px;
|
|
1759
|
+
padding: 0 14px;
|
|
1760
|
+
border: 1px dashed var(--color-border-strong);
|
|
1761
|
+
border-radius: 999px;
|
|
1762
|
+
white-space: nowrap;
|
|
1763
|
+
background: transparent;
|
|
1764
|
+
}
|
|
1765
|
+
[data-wui-drop-target].is-drop-over {
|
|
1766
|
+
border-style: solid;
|
|
1767
|
+
border-color: var(--color-primary);
|
|
1768
|
+
background: var(--color-primary-soft);
|
|
1769
|
+
}
|
|
1770
|
+
[data-wui-drop-target][aria-disabled="true"] {
|
|
1771
|
+
opacity: .6;
|
|
1772
|
+
}
|
|
1773
|
+
[data-wui-row-drag] tbody tr[draggable="true"] {
|
|
1774
|
+
cursor: grab;
|
|
1775
|
+
}
|
|
1776
|
+
body.wui-row-dragging {
|
|
1777
|
+
cursor: grabbing;
|
|
1778
|
+
}
|
package/scss/wui/_drawer.scss
CHANGED
|
@@ -92,6 +92,20 @@
|
|
|
92
92
|
padding: 12px 20px;
|
|
93
93
|
border-top: 1px solid var(--color-border);
|
|
94
94
|
}
|
|
95
|
+
.wui-drawer-discard {
|
|
96
|
+
display: flex;
|
|
97
|
+
align-items: center;
|
|
98
|
+
gap: 8px;
|
|
99
|
+
width: 100%;
|
|
100
|
+
}
|
|
101
|
+
.wui-drawer-discard-text {
|
|
102
|
+
flex: 1 1 auto;
|
|
103
|
+
min-width: 0;
|
|
104
|
+
font-weight: 500;
|
|
105
|
+
}
|
|
106
|
+
.wui-drawer-discarding > :not(.wui-drawer-discard) {
|
|
107
|
+
display: none;
|
|
108
|
+
}
|
|
95
109
|
|
|
96
110
|
// Side drawer: from md up.
|
|
97
111
|
@include media-breakpoint-up(md) {
|
|
@@ -693,6 +693,44 @@
|
|
|
693
693
|
.search-clear:hover {
|
|
694
694
|
color: var(--color-text);
|
|
695
695
|
}
|
|
696
|
+
// The toggle of <app-search collapsible>: a field folded into an icon until it is opened.
|
|
697
|
+
.wui-search-toggle {
|
|
698
|
+
display: inline-flex;
|
|
699
|
+
align-items: center;
|
|
700
|
+
justify-content: center;
|
|
701
|
+
width: 36px;
|
|
702
|
+
height: 36px;
|
|
703
|
+
padding: 0;
|
|
704
|
+
border: 0;
|
|
705
|
+
border-radius: var(--wui-field-radius);
|
|
706
|
+
background: transparent;
|
|
707
|
+
color: var(--color-text-muted);
|
|
708
|
+
cursor: pointer;
|
|
709
|
+
}
|
|
710
|
+
.search-wrap.search-sm .wui-search-toggle {
|
|
711
|
+
width: 32px;
|
|
712
|
+
height: 32px;
|
|
713
|
+
}
|
|
714
|
+
.search-wrap.search-lg .wui-search-toggle {
|
|
715
|
+
width: 44px;
|
|
716
|
+
height: 44px;
|
|
717
|
+
}
|
|
718
|
+
.wui-search-toggle:hover {
|
|
719
|
+
color: var(--color-text);
|
|
720
|
+
}
|
|
721
|
+
.wui-search-toggle:focus-visible {
|
|
722
|
+
outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
|
|
723
|
+
outline-offset: var(--wui-focus-ring-offset);
|
|
724
|
+
}
|
|
725
|
+
.search-wrap.wui-search-collapsible:not(.is-collapsed) .wui-search-toggle {
|
|
726
|
+
display: none;
|
|
727
|
+
}
|
|
728
|
+
.search-wrap.wui-search-collapsible.is-collapsed > :not(.wui-search-toggle) {
|
|
729
|
+
display: none;
|
|
730
|
+
}
|
|
731
|
+
.search-wrap.wui-search-collapsible.is-collapsed {
|
|
732
|
+
width: auto;
|
|
733
|
+
}
|
|
696
734
|
// type=search draws the browser's own cancel ✕; the component ships its own .search-clear,
|
|
697
735
|
// so the native one would double up. Remove it (WebKit/Blink).
|
|
698
736
|
.search-input::-webkit-search-cancel-button,
|
|
@@ -41,6 +41,15 @@
|
|
|
41
41
|
.page-header-bar-bulk[hidden] {
|
|
42
42
|
display: none;
|
|
43
43
|
}
|
|
44
|
+
.page-header-bar-bulk-count {
|
|
45
|
+
font-size: 13px;
|
|
46
|
+
font-weight: 500;
|
|
47
|
+
white-space: nowrap;
|
|
48
|
+
}
|
|
49
|
+
.page-header-bar-views[hidden],
|
|
50
|
+
.page-header-bar-tools[hidden] {
|
|
51
|
+
display: none;
|
|
52
|
+
}
|
|
44
53
|
.page-header-bar-meta {
|
|
45
54
|
font-size: 13px;
|
|
46
55
|
color: var(--color-text-muted);
|
package/scss/wui/_shell.scss
CHANGED
|
@@ -452,6 +452,14 @@
|
|
|
452
452
|
gap: 0;
|
|
453
453
|
padding: 9px 0;
|
|
454
454
|
}
|
|
455
|
+
.app-shell.collapsed .app-nav-item.wui-nav-split {
|
|
456
|
+
padding: 0;
|
|
457
|
+
}
|
|
458
|
+
.app-shell.collapsed .wui-nav-split-link {
|
|
459
|
+
justify-content: center;
|
|
460
|
+
gap: 0;
|
|
461
|
+
padding: 9px 0;
|
|
462
|
+
}
|
|
455
463
|
.app-shell.collapsed .app-nav-badge,
|
|
456
464
|
.app-shell.collapsed .app-nav-group-label,
|
|
457
465
|
.app-shell.collapsed .wui-nav-group-after,
|
|
@@ -575,6 +583,48 @@
|
|
|
575
583
|
white-space: normal;
|
|
576
584
|
overflow-wrap: anywhere;
|
|
577
585
|
}
|
|
586
|
+
// A parent with its own link: the row holds the link and a chevron toggle. The row has no padding,
|
|
587
|
+
// so the link carries the .app-nav-item padding. These rules sit after .app-nav-item.app-nav-subitem,
|
|
588
|
+
// so the row's `padding: 0` wins over that rule's padding-left, and the link takes the same inset.
|
|
589
|
+
.app-nav-item.wui-nav-split {
|
|
590
|
+
display: flex;
|
|
591
|
+
align-items: center;
|
|
592
|
+
padding: 0;
|
|
593
|
+
cursor: default;
|
|
594
|
+
}
|
|
595
|
+
.wui-nav-split-link {
|
|
596
|
+
flex: 1 1 auto;
|
|
597
|
+
min-width: 0;
|
|
598
|
+
display: flex;
|
|
599
|
+
align-items: center;
|
|
600
|
+
padding: 9px 14px;
|
|
601
|
+
gap: 12px;
|
|
602
|
+
color: inherit;
|
|
603
|
+
text-decoration: none;
|
|
604
|
+
}
|
|
605
|
+
.app-nav-item.wui-nav-split.app-nav-subitem .wui-nav-split-link {
|
|
606
|
+
padding-left: calc(46px + (var(--wui-nav-depth, 1) - 1) * 16px);
|
|
607
|
+
}
|
|
608
|
+
.wui-nav-split-toggle {
|
|
609
|
+
border: 0;
|
|
610
|
+
background: transparent;
|
|
611
|
+
padding: 0;
|
|
612
|
+
width: 32px;
|
|
613
|
+
height: 32px;
|
|
614
|
+
border-radius: var(--radius-sm, 6px);
|
|
615
|
+
cursor: pointer;
|
|
616
|
+
}
|
|
617
|
+
.wui-nav-split-toggle:hover {
|
|
618
|
+
background: var(--color-bg-muted);
|
|
619
|
+
}
|
|
620
|
+
.wui-nav-split-toggle[aria-expanded="true"] {
|
|
621
|
+
transform: rotate(90deg);
|
|
622
|
+
}
|
|
623
|
+
.wui-nav-split-link:focus-visible,
|
|
624
|
+
.wui-nav-split-toggle:focus-visible {
|
|
625
|
+
outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
|
|
626
|
+
outline-offset: var(--wui-focus-ring-inset);
|
|
627
|
+
}
|
|
578
628
|
|
|
579
629
|
// ── Collapsed rail: label tooltip ────────────────────────────────────────────
|
|
580
630
|
// The rail hides labels, so surface each on hover/focus as a chip to the right —
|
|
@@ -812,6 +862,14 @@
|
|
|
812
862
|
gap: 12px;
|
|
813
863
|
padding: 9px 14px;
|
|
814
864
|
}
|
|
865
|
+
.app-shell.app-shell.collapsed .app-nav-item.wui-nav-split {
|
|
866
|
+
padding: 0;
|
|
867
|
+
}
|
|
868
|
+
.app-shell.app-shell.collapsed .wui-nav-split-link {
|
|
869
|
+
justify-content: flex-start;
|
|
870
|
+
gap: 12px;
|
|
871
|
+
padding: 9px 14px;
|
|
872
|
+
}
|
|
815
873
|
.app-shell.app-shell.collapsed .app-nav-text,
|
|
816
874
|
.app-shell.app-shell.collapsed .app-nav-badge,
|
|
817
875
|
.app-shell.app-shell.collapsed .app-nav-group-label,
|
|
@@ -123,6 +123,20 @@
|
|
|
123
123
|
.chip-clickable:hover {
|
|
124
124
|
border-color: var(--color-border-strong);
|
|
125
125
|
}
|
|
126
|
+
.chip-clickable {
|
|
127
|
+
padding: 0;
|
|
128
|
+
}
|
|
129
|
+
.chip-clickable > .chip-body {
|
|
130
|
+
align-self: stretch;
|
|
131
|
+
padding: 4px 10px;
|
|
132
|
+
border-radius: inherit;
|
|
133
|
+
}
|
|
134
|
+
.chip-sm.chip-clickable > .chip-body {
|
|
135
|
+
padding: 2px 8px;
|
|
136
|
+
}
|
|
137
|
+
.chip-clickable > .chip-remove {
|
|
138
|
+
margin-right: 6px;
|
|
139
|
+
}
|
|
126
140
|
.chip-remove {
|
|
127
141
|
display: inline-flex;
|
|
128
142
|
align-items: center;
|