@db-ux/core-components 4.12.0 → 4.13.0-shell-f221975

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 (117) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/agent/Best-Practise_Common-AI-Mistakes.md +3 -3
  3. package/build/components/accordion/accordion.css +13 -6
  4. package/build/components/accordion-item/accordion-item.css +6 -11
  5. package/build/components/accordion-item/accordion-item.scss +4 -9
  6. package/build/components/badge/badge.css +1 -1
  7. package/build/components/badge/badge.scss +1 -1
  8. package/build/components/button/button.css +0 -8
  9. package/build/components/button/button.scss +0 -11
  10. package/build/components/checkbox/checkbox.css +6 -11
  11. package/build/components/checkbox/checkbox.scss +7 -0
  12. package/build/components/control-panel-brand/control-panel-brand.css +53 -0
  13. package/build/components/control-panel-brand/control-panel-brand.scss +48 -0
  14. package/build/components/control-panel-desktop/control-panel-desktop.css +579 -0
  15. package/build/components/control-panel-desktop/control-panel-desktop.scss +30 -0
  16. package/build/components/control-panel-flat-icon/control-panel-flat-icon.css +258 -0
  17. package/build/components/control-panel-flat-icon/control-panel-flat-icon.scss +239 -0
  18. package/build/components/control-panel-meta/control-panel-meta.css +14 -0
  19. package/build/components/control-panel-meta/control-panel-meta.scss +15 -0
  20. package/build/components/control-panel-mobile/control-panel-mobile.css +438 -0
  21. package/build/components/control-panel-mobile/control-panel-mobile.scss +116 -0
  22. package/build/components/control-panel-navigation/control-panel-navigation.css +390 -0
  23. package/build/components/control-panel-navigation/control-panel-navigation.scss +186 -0
  24. package/build/components/control-panel-navigation-item/control-panel-navigation-item.css +87 -0
  25. package/build/components/control-panel-navigation-item/control-panel-navigation-item.scss +39 -0
  26. package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group-menu-popover.css +21 -0
  27. package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group-menu-popover.scss +125 -0
  28. package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group-menu-tree.css +35 -0
  29. package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group-menu-tree.scss +36 -0
  30. package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group.css +158 -0
  31. package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group.scss +80 -0
  32. package/build/components/control-panel-primary-actions/control-panel-primary-actions.css +12 -0
  33. package/build/components/control-panel-primary-actions/control-panel-primary-actions.scss +7 -0
  34. package/build/components/control-panel-secondary-actions/control-panel-secondary-actions.css +12 -0
  35. package/build/components/control-panel-secondary-actions/control-panel-secondary-actions.scss +7 -0
  36. package/build/components/control-panel-skip-navigation/control-panel-skip-navigation.css +23 -0
  37. package/build/components/control-panel-skip-navigation/control-panel-skip-navigation.scss +25 -0
  38. package/build/components/custom-button/custom-button.css +11 -19
  39. package/build/components/custom-select/custom-select.css +17 -16
  40. package/build/components/custom-select/custom-select.scss +1 -1
  41. package/build/components/custom-select-dropdown/custom-select-dropdown.css +45 -26
  42. package/build/components/custom-select-dropdown/custom-select-dropdown.scss +9 -0
  43. package/build/components/custom-select-form-field/custom-select-form-field.css +6 -11
  44. package/build/components/custom-select-list/custom-select-list.css +6 -11
  45. package/build/components/custom-select-list-item/custom-select-list-item.css +29 -19
  46. package/build/components/custom-select-list-item/custom-select-list-item.scss +15 -9
  47. package/build/components/divider/divider.css +18 -8
  48. package/build/components/drawer/drawer.css +78 -156
  49. package/build/components/drawer/drawer.scss +124 -167
  50. package/build/components/drawer-footer/drawer-footer.css +34 -0
  51. package/build/components/drawer-footer/drawer-footer.scss +11 -0
  52. package/build/components/drawer-header/drawer-header.css +38 -0
  53. package/build/components/drawer-header/drawer-header.scss +17 -0
  54. package/build/components/input/input.css +6 -11
  55. package/build/components/link/link.css +7 -1
  56. package/build/components/notification/notification.css +7 -1
  57. package/build/components/radio/radio.css +6 -11
  58. package/build/components/radio/radio.scss +3 -0
  59. package/build/components/select/select.css +6 -11
  60. package/build/components/shell/shell-desktop.css +475 -0
  61. package/build/components/shell/shell-desktop.scss +105 -0
  62. package/build/components/shell/shell-mobile.css +441 -0
  63. package/build/components/shell/shell-mobile.scss +148 -0
  64. package/build/components/shell/shell.css +1670 -0
  65. package/build/components/shell/shell.scss +70 -0
  66. package/build/components/shell-content/shell-content.css +31 -0
  67. package/build/components/shell-content/shell-content.scss +49 -0
  68. package/build/components/shell-sub-navigation/shell-sub-navigation.css +51 -0
  69. package/build/components/shell-sub-navigation/shell-sub-navigation.scss +184 -0
  70. package/build/components/stack/stack-web-component.css +1 -0
  71. package/build/components/stack/stack.css +1 -0
  72. package/build/components/switch/switch.css +6 -11
  73. package/build/components/switch/switch.scss +7 -0
  74. package/build/components/tab-item/tab-item.css +6 -11
  75. package/build/components/tab-item/tab-item.scss +4 -10
  76. package/build/components/tab-list/tab-list.css +6 -11
  77. package/build/components/table/table.css +6 -11
  78. package/build/components/table-row/table-row.scss +3 -0
  79. package/build/components/tabs/tabs.css +55 -39
  80. package/build/components/tabs/tabs.scss +25 -70
  81. package/build/components/tag/tag.css +5 -10
  82. package/build/components/tag/tag.scss +1 -5
  83. package/build/components/textarea/textarea.css +6 -11
  84. package/build/styles/absolute.css +7 -7
  85. package/build/styles/bundle.css +7 -7
  86. package/build/styles/index.css +6 -6
  87. package/build/styles/index.scss +16 -5
  88. package/build/styles/internal/_button-components.scss +4 -9
  89. package/build/styles/internal/_component.scss +7 -0
  90. package/build/styles/internal/_control-panel-actions.scss +11 -0
  91. package/build/styles/internal/_control-panel-desktop.scss +412 -0
  92. package/build/styles/internal/_control-panel-mobile.scss +107 -0
  93. package/build/styles/internal/_custom-elements.scss +31 -7
  94. package/build/styles/internal/_form-components.scss +6 -0
  95. package/build/styles/internal/_icon-passing.scss +18 -10
  96. package/build/styles/internal/{_db-puls.scss → _indicator.scss} +37 -16
  97. package/build/styles/internal/_link-components.scss +7 -1
  98. package/build/styles/internal/_navigation-item.scss +122 -0
  99. package/build/styles/internal/_scrollbar.scss +71 -0
  100. package/build/styles/internal/_tag-components.scss +4 -10
  101. package/build/styles/relative.css +7 -7
  102. package/build/styles/rollup.css +7 -7
  103. package/build/styles/visually-hidden.css +1 -1
  104. package/build/styles/wc-workarounds.css +1 -1
  105. package/build/styles/wc-workarounds.scss +11 -0
  106. package/build/styles/webpack.css +7 -7
  107. package/package.json +6 -7
  108. package/build/components/brand/brand.css +0 -32
  109. package/build/components/brand/brand.scss +0 -35
  110. package/build/components/header/header.css +0 -700
  111. package/build/components/header/header.scss +0 -274
  112. package/build/components/navigation/navigation.css +0 -202
  113. package/build/components/navigation/navigation.scss +0 -108
  114. package/build/components/navigation-item/navigation-item.css +0 -447
  115. package/build/components/navigation-item/navigation-item.scss +0 -343
  116. package/build/components/page/page.css +0 -61
  117. package/build/components/page/page.scss +0 -61
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # @db-ux/core-components
2
2
 
3
+ ## 4.13.0
4
+
5
+ _version bump_
6
+
7
+ ## 4.12.1
8
+
9
+ ### Patch Changes
10
+
11
+ - fix(custom-select): dropdown with `dropdownWidth="auto"` now correctly sizes to content width and respects the trigger minimum width. Long option labels no longer get truncated: `auto` keeps them on a single line (dropdown grows to the longest option), while `fixed` and `full` wrap long labels onto new lines. - [see commit 68dedc3](https://github.com/db-ux-design-system/core-web/commit/68dedc33c324b48339d5bb73a85fdff3045ed059)
12
+
3
13
  ## 4.12.0
4
14
 
5
15
  _version bump_
@@ -69,7 +69,7 @@
69
69
 
70
70
  - always provide `burgerMenuLabel` attribute for accessibility
71
71
 
72
- ## `DBNavigationItem` or `db-navigation-item`
72
+ ## `DBControlPanelNavigationItem` or `db-control-panel-navigation-item`
73
73
 
74
74
  - always provide `backButtonText` attribute for accessibility
75
75
  - must have children content (text or child elements)
@@ -81,7 +81,7 @@
81
81
  ## `DBTooltip` or `db-tooltip`
82
82
 
83
83
  - must not contain interactive elements (buttons, links, inputs, etc.) — use `DBPopover` for interactive content
84
- - must be a child of an interactive element (`button`, `a`, `DBButton`, `DBLink`, `DBNavigationItem`, `DBTabItem`, `input`, `select`, `textarea`, etc.) for accessibility
84
+ - must be a child of an interactive element (`button`, `a`, `DBButton`, `DBLink`, `DBControlPanelNavigationItem`, `DBTabItem`, `input`, `select`, `textarea`, etc.) for accessibility
85
85
 
86
86
  ## `DBIcon` or `db-icon`
87
87
 
@@ -92,6 +92,6 @@
92
92
  - always provide a `label` attribute for accessibility (for `DBCheckbox`, `DBRadio`, `DBSwitch` children text content also counts as label)
93
93
  - when using validation attributes (`required`, `minLength`, `maxLength`, `min`, `max`, `pattern`), always provide an `invalidMessage` attribute for better UX (exception: `DBRadio` with `required` does not need `invalidMessage`)
94
94
 
95
- ## Content components (`DBButton`, `DBLink`, `DBBadge`, `DBIcon`, `DBInfotext`, `DBNavigationItem`, `DBNotification`, `DBAccordionItem`)
95
+ ## Content components (`DBButton`, `DBLink`, `DBBadge`, `DBIcon`, `DBInfotext`, `DBControlPanelNavigationItem`, `DBNotification`, `DBAccordionItem`)
96
96
 
97
97
  - must have either a `text` property or children content — never leave them empty
@@ -32,21 +32,28 @@ The spacings are not part of the styling of the accordion items themselves.
32
32
  content: "";
33
33
  background-color: var(--db-divider-bg-color);
34
34
  position: absolute;
35
+ /* jscpd:ignore-start */
35
36
  block-size: var(--db-border-width-3xs);
36
37
  inset-block-start: 0;
37
38
  inset-inline: 0;
38
- /* stylelint-disable-next-line at-rule-empty-line-before */
39
+ /* stylelint-disable-next-line db-ux/use-border-color */
39
40
  }
40
41
  @media (forced-colors: active) {
41
- .db-accordion[data-variant=divider] db-accordion-item + db-accordion-item .db-accordion-item,
42
- .db-accordion[data-variant=divider] .db-accordion-item + .db-accordion-item, .db-accordion:not([data-variant]) db-accordion-item + db-accordion-item .db-accordion-item,
43
- .db-accordion:not([data-variant]) .db-accordion-item + .db-accordion-item {
44
- /* stylelint-disable-next-line no-invalid-position-declaration, db-ux/use-border-color */
45
- border: var(--db-border-width-3xs) solid var(--db-divider-bg-color);
42
+ .db-accordion[data-variant=divider] db-accordion-item + db-accordion-item .db-accordion-item::before,
43
+ .db-accordion[data-variant=divider] .db-accordion-item + .db-accordion-item::before, .db-accordion:not([data-variant]) db-accordion-item + db-accordion-item .db-accordion-item::before,
44
+ .db-accordion:not([data-variant]) .db-accordion-item + .db-accordion-item::before {
45
+ /* stylelint-disable-next-line db-ux/use-border-color */
46
+ border-block-start: var(--db-border-width-3xs) solid var(--db-divider-bg-color);
46
47
  }
47
48
  }
48
49
  .db-accordion[data-variant=divider] db-accordion-item + db-accordion-item .db-accordion-item::before,
49
50
  .db-accordion[data-variant=divider] .db-accordion-item + .db-accordion-item::before, .db-accordion:not([data-variant]) db-accordion-item + db-accordion-item .db-accordion-item::before,
51
+ .db-accordion:not([data-variant]) .db-accordion-item + .db-accordion-item::before {
52
+ /* stylelint-disable-next-line at-rule-empty-line-before */
53
+ /* jscpd:ignore-end */
54
+ }
55
+ .db-accordion[data-variant=divider] db-accordion-item + db-accordion-item .db-accordion-item::before,
56
+ .db-accordion[data-variant=divider] .db-accordion-item + .db-accordion-item::before, .db-accordion:not([data-variant]) db-accordion-item + db-accordion-item .db-accordion-item::before,
50
57
  .db-accordion:not([data-variant]) .db-accordion-item + .db-accordion-item::before {
51
58
  inset-block-start: calc(-1 * var(--db-spacing-fixed-sm));
52
59
  }
@@ -1,18 +1,13 @@
1
1
  .db-visually-hidden,
2
2
  [data-visually-hidden=true] {
3
- clip: rect(0, 0, 0, 0) !important;
4
- overflow: hidden !important;
5
- white-space: nowrap !important;
6
- font-size: 0 !important;
7
- all: initial;
8
- inset-block-start: 0 !important;
9
- block-size: 1px !important;
10
3
  position: absolute !important;
4
+ inset-block-start: 0 !important;
11
5
  inline-size: 1px !important;
12
- border-width: 0 !important;
13
- border-style: initial !important;
14
- border-color: initial !important;
15
- border-image: initial !important;
6
+ block-size: 1px !important;
7
+ overflow: hidden !important;
8
+ clip: rect(0, 0, 0, 0) !important;
9
+ white-space: nowrap !important;
10
+ border: 0 !important;
16
11
  padding: 0 !important;
17
12
  pointer-events: none !important;
18
13
  }
@@ -57,15 +57,10 @@
57
57
  gap: variables.$db-spacing-fixed-md;
58
58
  border-radius: variables.$db-border-radius-sm;
59
59
 
60
- @include helpers.not-disabled {
61
- @include helpers.hover {
62
- background-color: colors.$db-adaptive-bg-basic-level-1-hovered;
63
- }
64
-
65
- @include helpers.active {
66
- background-color: colors.$db-adaptive-bg-basic-level-1-pressed;
67
- }
68
- }
60
+ @include helpers.interactive-bg(
61
+ colors.$db-adaptive-bg-basic-level-1-hovered,
62
+ colors.$db-adaptive-bg-basic-level-1-pressed
63
+ );
69
64
 
70
65
  &::-webkit-details-marker {
71
66
  display: none;
@@ -245,5 +245,5 @@
245
245
  }
246
246
 
247
247
  [data-has-badge=true] {
248
- position: relative;
248
+ position: var(--db-has-badge-position, relative);
249
249
  }
@@ -116,5 +116,5 @@
116
116
  // Global styles
117
117
 
118
118
  [data-has-badge="true"] {
119
- position: relative;
119
+ position: var(--db-has-badge-position, relative);
120
120
  }
@@ -135,11 +135,3 @@
135
135
  .db-button:is(:disabled, [aria-disabled=true]) {
136
136
  opacity: var(--db-opacity-md);
137
137
  }
138
- .db-button:has(> .db-button) {
139
- margin: 0;
140
- padding: 0;
141
- block-size: var(--db-sizing-md);
142
- }
143
- .db-button:has(> .db-button)::before {
144
- content: none;
145
- }
@@ -8,15 +8,4 @@
8
8
  &:is(:disabled, [aria-disabled="true"]) {
9
9
  opacity: variables.$db-opacity-md;
10
10
  }
11
-
12
- // Workaround for current stencil implementation for header
13
- &:has(> .db-button) {
14
- margin: 0;
15
- padding: 0;
16
- block-size: variables.$db-sizing-md;
17
-
18
- &::before {
19
- content: none;
20
- }
21
- }
22
11
  }
@@ -1,18 +1,13 @@
1
1
  .db-visually-hidden,
2
2
  [data-visually-hidden=true] {
3
- clip: rect(0, 0, 0, 0) !important;
4
- overflow: hidden !important;
5
- white-space: nowrap !important;
6
- font-size: 0 !important;
7
- all: initial;
8
- inset-block-start: 0 !important;
9
- block-size: 1px !important;
10
3
  position: absolute !important;
4
+ inset-block-start: 0 !important;
11
5
  inline-size: 1px !important;
12
- border-width: 0 !important;
13
- border-style: initial !important;
14
- border-color: initial !important;
15
- border-image: initial !important;
6
+ block-size: 1px !important;
7
+ overflow: hidden !important;
8
+ clip: rect(0, 0, 0, 0) !important;
9
+ white-space: nowrap !important;
10
+ border: 0 !important;
16
11
  padding: 0 !important;
17
12
  pointer-events: none !important;
18
13
  }
@@ -35,6 +35,7 @@
35
35
  @include form-components.get-state("active");
36
36
  }
37
37
 
38
+ // jscpd:ignore-start
38
39
  @include form-components.get-validity(check) {
39
40
  &:has(.db-infotext[data-semantic="successful"]) {
40
41
  @include form-components.get-validity-color-checkbox("valid");
@@ -45,6 +46,8 @@
45
46
  @include form-components.get-validity-color-checkbox("invalid");
46
47
  }
47
48
 
49
+ // jscpd:ignore-end
50
+
48
51
  input {
49
52
  @include helpers.display(flex);
50
53
 
@@ -54,6 +57,8 @@
54
57
 
55
58
  &:checked {
56
59
  --db-check-element-border-color: #{colors.$db-adaptive-on-bg-basic-emphasis-70-default};
60
+
61
+ // jscpd:ignore-start
57
62
  --db-icon-color: var(--db-adaptive-on-bg-inverted-default);
58
63
  --db-adaptive-bg-basic-transparent-full-default: var(
59
64
  --db-adaptive-bg-inverted-contrast-max-default
@@ -65,6 +70,8 @@
65
70
  --db-adaptive-bg-inverted-contrast-max-pressed
66
71
  );
67
72
 
73
+ // jscpd:ignore-end
74
+
68
75
  @extend %center-icon;
69
76
 
70
77
  // Check icon
@@ -0,0 +1,53 @@
1
+ /* stylelint-disable-next-line scss/dollar-variable-colon-space-after */
2
+ /* stylelint-disable-next-line scss/dollar-variable-colon-space-after */
3
+ /* Variants for adaptive components like input, select, notification, ... */
4
+ .db-control-panel-brand a {
5
+ overflow: hidden;
6
+ text-indent: 100%;
7
+ white-space: nowrap;
8
+ }
9
+
10
+ .db-control-panel-brand {
11
+ font: var(--db-type-body-md);
12
+ /* Those variables are only for components to calculate heights and change icons */
13
+ --db-icon-font-weight: var(--db-base-body-icon-weight-md);
14
+ --db-icon-font-size: var(--db-base-body-icon-font-size-md);
15
+ }
16
+
17
+ .db-control-panel-desktop-brand-container {
18
+ display: flex;
19
+ grid-area: brand;
20
+ }
21
+
22
+ .db-control-panel-brand:not([hidden]) {
23
+ display: flex;
24
+ }
25
+ .db-control-panel-brand {
26
+ align-items: center;
27
+ block-size: var(--db-sizing-md);
28
+ min-block-size: var(--db-sizing-md);
29
+ inline-size: fit-content;
30
+ gap: var(--db-spacing-fixed-sm);
31
+ position: relative;
32
+ grid-area: brand;
33
+ }
34
+ .db-control-panel-brand::before {
35
+ content: "";
36
+ }
37
+ @supports (content: ""/"") {
38
+ .db-control-panel-brand::before {
39
+ content: ""/"";
40
+ }
41
+ }
42
+ .db-control-panel-brand::before {
43
+ block-size: 1lh;
44
+ aspect-ratio: var(--db-logo-aspect-ratio, 1);
45
+ background-image: var(--db-logo-url);
46
+ background-repeat: no-repeat;
47
+ background-size: auto var(--db-sizing-sm);
48
+ }
49
+ .db-control-panel-brand a {
50
+ text-decoration: none;
51
+ position: absolute;
52
+ inset: 0;
53
+ }
@@ -0,0 +1,48 @@
1
+ @use "@db-ux/core-foundations/build/styles/variables";
2
+ @use "@db-ux/core-foundations/build/styles/colors";
3
+ @use "@db-ux/core-foundations/build/styles/fonts";
4
+ @use "@db-ux/core-foundations/build/styles/helpers";
5
+
6
+ .db-control-panel-desktop-brand-container {
7
+ display: flex;
8
+ grid-area: brand;
9
+ }
10
+
11
+ .db-control-panel-brand {
12
+ @extend %db-overwrite-font-size-md;
13
+ @include helpers.display(flex);
14
+
15
+ align-items: center;
16
+ block-size: variables.$db-sizing-md;
17
+ min-block-size: variables.$db-sizing-md;
18
+ inline-size: fit-content;
19
+ gap: variables.$db-spacing-fixed-sm;
20
+ position: relative;
21
+ grid-area: brand;
22
+
23
+ // The brand logo depends on the theme package (e.g. @db-ux/db-theme)
24
+ // providing --db-logo-url and --db-logo-aspect-ratio CSS custom properties.
25
+ // Without a theme, the logo will not be visible.
26
+ &::before {
27
+ content: "";
28
+
29
+ @supports (content: ""/"") {
30
+ content: "" / "";
31
+ }
32
+
33
+ block-size: 1lh;
34
+ aspect-ratio: var(--db-logo-aspect-ratio, 1);
35
+ background-image: var(--db-logo-url);
36
+ background-repeat: no-repeat;
37
+ background-size: auto #{variables.$db-sizing-sm};
38
+ }
39
+
40
+ // Deactivate underline on site name being made clickable by added to the link as well
41
+ a {
42
+ text-decoration: none;
43
+ position: absolute;
44
+ inset: 0;
45
+
46
+ @extend %a11y-visually-hidden-text;
47
+ }
48
+ }