@db-ux/ngx-core-components 4.3.2 → 4.4.1-footer-28739e3

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/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @db-ux/ngx-core-components
2
2
 
3
+ ## 4.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - feat: add `role` property to DBNotification & automatically add role based on semantic if no `role` or `ariaLive` is provided to increase UX for screen-reader users - [see commit 177d71e](https://github.com/db-ux-design-system/core-web/commit/177d71e287a64a6491ba446e7812d0adbda1717e)
8
+
9
+ - feat(DBSelect): hide empty first option in `required` selects with placeholder after the first user selection, and add `showEmptyOption` prop to overwrite this - [see commit 4280bc4](https://github.com/db-ux-design-system/core-web/commit/4280bc47538d6983d6bb5575f012b6c6b25b40e8)
10
+
3
11
  ## 4.3.2
4
12
 
5
13
  ### Patch Changes
@@ -246,8 +246,33 @@ const getOptionKey = (option, prefix) => {
246
246
  return `${prefix}${key}`;
247
247
  };
248
248
  const isKeyboardEvent = (event) => event.key !== undefined;
249
+ /**
250
+ * Maps semantic values to appropriate ARIA roles for notifications
251
+ * @param semantic - The semantic type of the notification
252
+ * @param role - The aria role of the notification
253
+ * @param ariaLive - The aria-live of the notification
254
+ * @returns The appropriate ARIA role or undefined for default behavior
255
+ */
256
+ const getNotificationRole = ({ semantic, role, ariaLive }) => {
257
+ if (role) {
258
+ return role;
259
+ }
260
+ if (ariaLive) {
261
+ return 'article';
262
+ }
263
+ switch (semantic) {
264
+ case 'critical':
265
+ case 'warning':
266
+ return 'alert';
267
+ case 'informational':
268
+ case 'successful':
269
+ return 'status';
270
+ default:
271
+ return 'article';
272
+ }
273
+ };
249
274
 
250
- const defaultProps$z = {};
275
+ const defaultProps$A = {};
251
276
  class DBAccordionItem {
252
277
  handleNameAttribute() {
253
278
  if (this._ref()?.nativeElement) {
@@ -401,7 +426,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
401
426
  </li> `, styles: [":host{display:contents}\n"] }]
402
427
  }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], defaultOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultOpen", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], headlinePlain: [{ type: i0.Input, args: [{ isSignal: true, alias: "headlinePlain", required: false }] }], text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }], toggle: [{ type: i0.Output, args: ["toggle"] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
403
428
 
404
- const defaultProps$y = {};
429
+ const defaultProps$z = {};
405
430
  class DBAccordion {
406
431
  convertItems() {
407
432
  try {
@@ -595,7 +620,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
595
620
  const AccordionVariantList = ['divider', 'card'];
596
621
  const AccordionBehaviorList = ['multiple', 'single'];
597
622
 
598
- const defaultProps$x = {};
623
+ const defaultProps$y = {};
599
624
  class DBBadge {
600
625
  constructor() {
601
626
  this.cls = cls;
@@ -706,7 +731,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
706
731
 
707
732
  const BadgePlacementList = ['inline', 'corner-top-left', 'corner-top-right', 'corner-center-left', 'corner-center-right', 'corner-bottom-left', 'corner-bottom-right'];
708
733
 
709
- const defaultProps$w = {};
734
+ const defaultProps$x = {};
710
735
  class DBBrand {
711
736
  constructor() {
712
737
  this.DEFAULT_ICON = DEFAULT_ICON;
@@ -786,7 +811,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
786
811
  </div> `, styles: [":host{display:contents}\n"] }]
787
812
  }], ctorParameters: () => [], propDecorators: { hideLogo: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideLogo", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
788
813
 
789
- const defaultProps$v = {};
814
+ const defaultProps$w = {};
790
815
  class DBButton {
791
816
  getButtonType() {
792
817
  if (this.type()) {
@@ -913,7 +938,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
913
938
  const ButtonVariantList = ['outlined', 'brand', 'filled', 'ghost'];
914
939
  const ButtonTypeList = ['button', 'reset', 'submit'];
915
940
 
916
- const defaultProps$u = {};
941
+ const defaultProps$v = {};
917
942
  class DBCard {
918
943
  handleClick(event) {
919
944
  if (this.click) {
@@ -1050,7 +1075,7 @@ const addValueResetEventListener = (element, props, resetFunction, signal) => {
1050
1075
  }, signal);
1051
1076
  };
1052
1077
 
1053
- const defaultProps$t = {};
1078
+ const defaultProps$u = {};
1054
1079
  class DBInfotext {
1055
1080
  constructor() {
1056
1081
  this.cls = cls;
@@ -1132,7 +1157,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
1132
1157
  > `, styles: [":host{display:contents}\n"] }]
1133
1158
  }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], semantic: [{ type: i0.Input, args: [{ isSignal: true, alias: "semantic", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }], text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
1134
1159
 
1135
- const defaultProps$s = {};
1160
+ const defaultProps$t = {};
1136
1161
  class DBCheckbox {
1137
1162
  hasValidState() {
1138
1163
  return !!(this.validMessage() ?? this.validation() === "valid");
@@ -1868,13 +1893,13 @@ const handleFixedPopover = (element, parent, placement) => {
1868
1893
  element.dataset['correctedPlacement'] = correctedPlacement;
1869
1894
  };
1870
1895
 
1871
- const defaultProps$r = { width: "fixed" };
1896
+ const defaultProps$s = { width: "fixed" };
1872
1897
  class DBCustomSelectDropdown {
1873
1898
  constructor() {
1874
1899
  this.cls = cls;
1875
1900
  this.id = input(...(ngDevMode ? [undefined, { debugName: "id" }] : []));
1876
1901
  this.className = input(...(ngDevMode ? [undefined, { debugName: "className" }] : []));
1877
- this.width = input(defaultProps$r["width"], ...(ngDevMode ? [{ debugName: "width" }] : []));
1902
+ this.width = input(defaultProps$s["width"], ...(ngDevMode ? [{ debugName: "width" }] : []));
1878
1903
  this._ref = viewChild("_ref", ...(ngDevMode ? [{ debugName: "_ref" }] : []));
1879
1904
  }
1880
1905
  /**
@@ -1939,7 +1964,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
1939
1964
  </article> `, styles: [":host{display:contents}\n"] }]
1940
1965
  }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
1941
1966
 
1942
- const defaultProps$q = {};
1967
+ const defaultProps$r = {};
1943
1968
  class DBCustomSelectListItem {
1944
1969
  handleChange(event) {
1945
1970
  event.stopPropagation();
@@ -2122,7 +2147,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
2122
2147
  </li> `, styles: [":host{display:contents}\n"] }]
2123
2148
  }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], isGroupTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "isGroupTitle", required: false }] }], showDivider: [{ type: i0.Input, args: [{ isSignal: true, alias: "showDivider", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }, { type: i0.Output, args: ["checkedChange"] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], groupTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "groupTitle", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], change: [{ type: i0.Output, args: ["change"] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
2124
2149
 
2125
- const defaultProps$p = {};
2150
+ const defaultProps$q = {};
2126
2151
  class DBCustomSelectList {
2127
2152
  constructor() {
2128
2153
  this.cls = cls;
@@ -2198,7 +2223,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
2198
2223
  </div> `, styles: [":host{display:contents}\n"] }]
2199
2224
  }], ctorParameters: () => [], propDecorators: { multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
2200
2225
 
2201
- const defaultProps$o = {};
2226
+ const defaultProps$p = {};
2202
2227
  class DBInput {
2203
2228
  hasValidState() {
2204
2229
  return !!(this.validMessage() ?? this.validation() === "valid");
@@ -2668,7 +2693,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
2668
2693
  </div> `, styles: [":host{display:contents}\n"] }]
2669
2694
  }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], invalidMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalidMessage", required: false }] }], dataListId: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataListId", required: false }] }], message: [{ type: i0.Input, args: [{ isSignal: true, alias: "message", required: false }] }], showMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "showMessage", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], validMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "validMessage", required: false }] }], validation: [{ type: i0.Input, args: [{ isSignal: true, alias: "validation", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], minLength: [{ type: i0.Input, args: [{ isSignal: true, alias: "minLength", required: false }] }], maxLength: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxLength", required: false }] }], pattern: [{ type: i0.Input, args: [{ isSignal: true, alias: "pattern", required: false }] }], dataList: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataList", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], showLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLabel", required: false }] }], showIconLeading: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIconLeading", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }], iconLeading: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconLeading", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], iconTrailing: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconTrailing", required: false }] }], showRequiredAsterisk: [{ type: i0.Input, args: [{ isSignal: true, alias: "showRequiredAsterisk", required: false }] }], showIconTrailing: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIconTrailing", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], fieldSizing: [{ type: i0.Input, args: [{ isSignal: true, alias: "fieldSizing", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], accept: [{ type: i0.Input, args: [{ isSignal: true, alias: "accept", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], step: [{ type: i0.Input, args: [{ isSignal: true, alias: "step", required: false }] }], maxlength: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxlength", required: false }] }], minlength: [{ type: i0.Input, args: [{ isSignal: true, alias: "minlength", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], readOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readOnly", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], form: [{ type: i0.Input, args: [{ isSignal: true, alias: "form", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], autocomplete: [{ type: i0.Input, args: [{ isSignal: true, alias: "autocomplete", required: false }] }], autofocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "autofocus", required: false }] }], enterkeyhint: [{ type: i0.Input, args: [{ isSignal: true, alias: "enterkeyhint", required: false }] }], inputmode: [{ type: i0.Input, args: [{ isSignal: true, alias: "inputmode", required: false }] }], ariaDescribedBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaDescribedBy", required: false }] }], messageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "messageSize", required: false }] }], messageIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "messageIcon", required: false }] }], validMessageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "validMessageSize", required: false }] }], invalidMessageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalidMessageSize", required: false }] }], input: [{ type: i0.Output, args: ["input"] }], change: [{ type: i0.Output, args: ["change"] }], blur: [{ type: i0.Output, args: ["blur"] }], focus: [{ type: i0.Output, args: ["focus"] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
2670
2695
 
2671
- const defaultProps$n = {};
2696
+ const defaultProps$o = {};
2672
2697
  class DBTooltip {
2673
2698
  handleClick(event) {
2674
2699
  event.stopPropagation();
@@ -2853,7 +2878,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
2853
2878
  ></i> `, styles: [":host{display:contents}\n"] }]
2854
2879
  }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], placement: [{ type: i0.Input, args: [{ isSignal: true, alias: "placement", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], emphasis: [{ type: i0.Input, args: [{ isSignal: true, alias: "emphasis", required: false }] }], animation: [{ type: i0.Input, args: [{ isSignal: true, alias: "animation", required: false }] }], delay: [{ type: i0.Input, args: [{ isSignal: true, alias: "delay", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], showArrow: [{ type: i0.Input, args: [{ isSignal: true, alias: "showArrow", required: false }] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
2855
2880
 
2856
- const defaultProps$m = {};
2881
+ const defaultProps$n = {};
2857
2882
  class DBTag {
2858
2883
  handleRemove(event) {
2859
2884
  if (!event)
@@ -2988,7 +3013,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
2988
3013
  </div> `, styles: [":host{display:contents}\n"] }]
2989
3014
  }], ctorParameters: () => [], propDecorators: { removeButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "removeButton", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], semantic: [{ type: i0.Input, args: [{ isSignal: true, alias: "semantic", required: false }] }], emphasis: [{ type: i0.Input, args: [{ isSignal: true, alias: "emphasis", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], showCheckState: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCheckState", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }], noText: [{ type: i0.Input, args: [{ isSignal: true, alias: "noText", required: false }] }], overflow: [{ type: i0.Input, args: [{ isSignal: true, alias: "overflow", required: false }] }], text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }], behavior: [{ type: i0.Input, args: [{ isSignal: true, alias: "behavior", required: false }] }], remove: [{ type: i0.Output, args: ["remove"] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
2990
3015
 
2991
- const defaultProps$l = {
3016
+ const defaultProps$m = {
2992
3017
  clearSelectionText: "Clear selection",
2993
3018
  showClearSelection: true,
2994
3019
  };
@@ -3470,8 +3495,8 @@ class DBCustomSelect {
3470
3495
  this.loadingText = input(...(ngDevMode ? [undefined, { debugName: "loadingText" }] : []));
3471
3496
  this.noResultsText = input(...(ngDevMode ? [undefined, { debugName: "noResultsText" }] : []));
3472
3497
  this.mobileCloseButtonText = input(...(ngDevMode ? [undefined, { debugName: "mobileCloseButtonText" }] : []));
3473
- this.showClearSelection = input(defaultProps$l["showClearSelection"], ...(ngDevMode ? [{ debugName: "showClearSelection" }] : []));
3474
- this.clearSelectionText = input(defaultProps$l["clearSelectionText"], ...(ngDevMode ? [{ debugName: "clearSelectionText" }] : []));
3498
+ this.showClearSelection = input(defaultProps$m["showClearSelection"], ...(ngDevMode ? [{ debugName: "showClearSelection" }] : []));
3499
+ this.clearSelectionText = input(defaultProps$m["clearSelectionText"], ...(ngDevMode ? [{ debugName: "clearSelectionText" }] : []));
3475
3500
  this.placeholder = input(...(ngDevMode ? [undefined, { debugName: "placeholder" }] : []));
3476
3501
  this.messageIcon = input(...(ngDevMode ? [undefined, { debugName: "messageIcon" }] : []));
3477
3502
  this.amountChange = output();
@@ -4299,7 +4324,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
4299
4324
 
4300
4325
  const CustomSelectDropdownWidthList = ['fixed', 'auto', 'full'];
4301
4326
 
4302
- const defaultProps$k = {};
4327
+ const defaultProps$l = {};
4303
4328
  class DBCustomSelectFormField {
4304
4329
  constructor() {
4305
4330
  this.cls = cls;
@@ -4369,7 +4394,7 @@ const CustomSelectListItemTypeList = ['checkbox', 'radio'];
4369
4394
 
4370
4395
  const SelectedTypeList = ['amount', 'text', 'tag'];
4371
4396
 
4372
- const defaultProps$j = {};
4397
+ const defaultProps$k = {};
4373
4398
  class DBDivider {
4374
4399
  constructor() {
4375
4400
  this.cls = cls;
@@ -4446,7 +4471,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
4446
4471
  const DividerMarginList = ['none', '_'];
4447
4472
  const DividerVariantList = ['horizontal', 'vertical'];
4448
4473
 
4449
- const defaultProps$i = {};
4474
+ const defaultProps$j = {};
4450
4475
  class DBDrawer {
4451
4476
  handleClose(event, forceClose) {
4452
4477
  if (!event)
@@ -4678,6 +4703,121 @@ const DrawerDirectionList = ['left', 'right', 'up', 'down'];
4678
4703
  const DrawerVariantList = ['modal', 'inside'];
4679
4704
  const DrawerPositionList = ['fixed', 'absolute'];
4680
4705
 
4706
+ const defaultProps$i = {
4707
+ showCopyright: true,
4708
+ showMain: true,
4709
+ showMeta: true,
4710
+ };
4711
+ class DBFooter {
4712
+ constructor() {
4713
+ this.cls = cls;
4714
+ this.getBoolean = getBoolean;
4715
+ this.id = input(...(ngDevMode ? [undefined, { debugName: "id" }] : []));
4716
+ this.className = input(...(ngDevMode ? [undefined, { debugName: "className" }] : []));
4717
+ this.width = input(...(ngDevMode ? [undefined, { debugName: "width" }] : []));
4718
+ this.showMain = input(defaultProps$i["showMain"], ...(ngDevMode ? [{ debugName: "showMain" }] : []));
4719
+ this.showMeta = input(defaultProps$i["showMeta"], ...(ngDevMode ? [{ debugName: "showMeta" }] : []));
4720
+ this.showCopyright = input(defaultProps$i["showCopyright"], ...(ngDevMode ? [{ debugName: "showCopyright" }] : []));
4721
+ this._ref = viewChild("_ref", ...(ngDevMode ? [{ debugName: "_ref" }] : []));
4722
+ }
4723
+ /**
4724
+ * Passes `aria-*`, `data-*` & `class` attributes to correct child. Used in angular and stencil.
4725
+ * @param element the ref for the component
4726
+ * @param customElementSelector the custom element like `my-component`
4727
+ */
4728
+ enableAttributePassing(element, customElementSelector) {
4729
+ const parent = element?.closest(customElementSelector);
4730
+ if (element && parent) {
4731
+ const attributes = parent.attributes;
4732
+ for (let i = 0; i < attributes.length; i++) {
4733
+ const attr = attributes.item(i);
4734
+ if (attr &&
4735
+ (attr.name.startsWith("data-") || attr.name.startsWith("aria-"))) {
4736
+ element.setAttribute(attr.name, attr.value);
4737
+ parent.removeAttribute(attr.name);
4738
+ }
4739
+ if (attr && attr.name === "class") {
4740
+ const isWebComponent = attr.value.includes("hydrated");
4741
+ const value = attr.value.replace("hydrated", "").trim();
4742
+ const currentClass = element.getAttribute("class");
4743
+ element.setAttribute(attr.name, `${currentClass ? `${currentClass} ` : ""}${value}`);
4744
+ if (isWebComponent) {
4745
+ // Stencil is using this class for lazy loading component
4746
+ parent.setAttribute("class", "hydrated");
4747
+ }
4748
+ else {
4749
+ parent.removeAttribute(attr.name);
4750
+ }
4751
+ }
4752
+ }
4753
+ }
4754
+ }
4755
+ ngAfterViewInit() {
4756
+ if (typeof window !== "undefined") {
4757
+ const element = this._ref()?.nativeElement;
4758
+ this.enableAttributePassing(element, "db-footer");
4759
+ }
4760
+ }
4761
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DBFooter, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4762
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DBFooter, isStandalone: true, selector: "db-footer", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, showMain: { classPropertyName: "showMain", publicName: "showMain", isSignal: true, isRequired: false, transformFunction: null }, showMeta: { classPropertyName: "showMeta", publicName: "showMeta", isSignal: true, isRequired: false, transformFunction: null }, showCopyright: { classPropertyName: "showCopyright", publicName: "showCopyright", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "_ref", first: true, predicate: ["_ref"], descendants: true, isSignal: true }], ngImport: i0, template: `<footer
4763
+ #_ref
4764
+ [attr.id]="id()"
4765
+ [class]="cls('db-footer', className())"
4766
+ [attr.data-width]="width()"
4767
+ >
4768
+ @if(getBoolean(showMain(), 'showMain')){
4769
+ <section class="db-footer-main">
4770
+ <div class="db-footer-content-container">
4771
+ <div class="db-footer-main-inner">
4772
+ <ng-content select="[main]"> </ng-content>
4773
+ </div>
4774
+ </div>
4775
+ </section>
4776
+ } @if(getBoolean(showMeta(), 'showMeta')){
4777
+ <section class="db-footer-meta">
4778
+ <div class="db-footer-content-container">
4779
+ <div class="db-footer-meta-inner">
4780
+ @if(getBoolean(showCopyright(), 'showCopyright')){
4781
+ <p class="db-footer-copyright">© Deutsche Bahn AG</p>
4782
+ }
4783
+ <ng-content select="[meta]"> </ng-content>
4784
+ </div>
4785
+ </div>
4786
+ </section>
4787
+ }
4788
+ </footer> `, isInline: true, styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
4789
+ }
4790
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DBFooter, decorators: [{
4791
+ type: Component,
4792
+ args: [{ selector: "db-footer", standalone: true, imports: [CommonModule], template: `<footer
4793
+ #_ref
4794
+ [attr.id]="id()"
4795
+ [class]="cls('db-footer', className())"
4796
+ [attr.data-width]="width()"
4797
+ >
4798
+ @if(getBoolean(showMain(), 'showMain')){
4799
+ <section class="db-footer-main">
4800
+ <div class="db-footer-content-container">
4801
+ <div class="db-footer-main-inner">
4802
+ <ng-content select="[main]"> </ng-content>
4803
+ </div>
4804
+ </div>
4805
+ </section>
4806
+ } @if(getBoolean(showMeta(), 'showMeta')){
4807
+ <section class="db-footer-meta">
4808
+ <div class="db-footer-content-container">
4809
+ <div class="db-footer-meta-inner">
4810
+ @if(getBoolean(showCopyright(), 'showCopyright')){
4811
+ <p class="db-footer-copyright">© Deutsche Bahn AG</p>
4812
+ }
4813
+ <ng-content select="[meta]"> </ng-content>
4814
+ </div>
4815
+ </div>
4816
+ </section>
4817
+ }
4818
+ </footer> `, styles: [":host{display:contents}\n"] }]
4819
+ }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], showMain: [{ type: i0.Input, args: [{ isSignal: true, alias: "showMain", required: false }] }], showMeta: [{ type: i0.Input, args: [{ isSignal: true, alias: "showMeta", required: false }] }], showCopyright: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCopyright", required: false }] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
4820
+
4681
4821
  const isEventTargetNavigationItem = (event) => {
4682
4822
  const { target } = event;
4683
4823
  return Boolean(!target?.classList?.contains('db-navigation-item-expand-button') && target?.parentElement?.classList.contains('db-navigation-item'));
@@ -5595,14 +5735,16 @@ class DBNotification {
5595
5735
  }
5596
5736
  constructor() {
5597
5737
  this.cls = cls;
5738
+ this.getNotificationRole = getNotificationRole;
5598
5739
  this.getBoolean = getBoolean;
5599
5740
  this.getBooleanAsString = getBooleanAsString;
5600
5741
  this.stringPropVisible = stringPropVisible;
5601
5742
  this.DEFAULT_CLOSE_BUTTON = DEFAULT_CLOSE_BUTTON;
5602
5743
  this.id = input(...(ngDevMode ? [undefined, { debugName: "id" }] : []));
5603
5744
  this.className = input(...(ngDevMode ? [undefined, { debugName: "className" }] : []));
5604
- this.ariaLive = input(...(ngDevMode ? [undefined, { debugName: "ariaLive" }] : []));
5605
5745
  this.semantic = input(...(ngDevMode ? [undefined, { debugName: "semantic" }] : []));
5746
+ this.role = input(...(ngDevMode ? [undefined, { debugName: "role" }] : []));
5747
+ this.ariaLive = input(...(ngDevMode ? [undefined, { debugName: "ariaLive" }] : []));
5606
5748
  this.variant = input(...(ngDevMode ? [undefined, { debugName: "variant" }] : []));
5607
5749
  this.showIcon = input(...(ngDevMode ? [undefined, { debugName: "showIcon" }] : []));
5608
5750
  this.icon = input(...(ngDevMode ? [undefined, { debugName: "icon" }] : []));
@@ -5657,10 +5799,15 @@ class DBNotification {
5657
5799
  }
5658
5800
  }
5659
5801
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DBNotification, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5660
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DBNotification, isStandalone: true, selector: "db-notification", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, ariaLive: { classPropertyName: "ariaLive", publicName: "ariaLive", isSignal: true, isRequired: false, transformFunction: null }, semantic: { classPropertyName: "semantic", publicName: "semantic", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, linkVariant: { classPropertyName: "linkVariant", publicName: "linkVariant", isSignal: true, isRequired: false, transformFunction: null }, headline: { classPropertyName: "headline", publicName: "headline", isSignal: true, isRequired: false, transformFunction: null }, showHeadline: { classPropertyName: "showHeadline", publicName: "showHeadline", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, timestamp: { classPropertyName: "timestamp", publicName: "timestamp", isSignal: true, isRequired: false, transformFunction: null }, showTimestamp: { classPropertyName: "showTimestamp", publicName: "showTimestamp", isSignal: true, isRequired: false, transformFunction: null }, closeable: { classPropertyName: "closeable", publicName: "closeable", isSignal: true, isRequired: false, transformFunction: null }, closeButtonId: { classPropertyName: "closeButtonId", publicName: "closeButtonId", isSignal: true, isRequired: false, transformFunction: null }, closeButtonText: { classPropertyName: "closeButtonText", publicName: "closeButtonText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { close: "close" }, viewQueries: [{ propertyName: "_ref", first: true, predicate: ["_ref"], descendants: true, isSignal: true }], ngImport: i0, template: `<article
5802
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DBNotification, isStandalone: true, selector: "db-notification", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, semantic: { classPropertyName: "semantic", publicName: "semantic", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null }, ariaLive: { classPropertyName: "ariaLive", publicName: "ariaLive", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, linkVariant: { classPropertyName: "linkVariant", publicName: "linkVariant", isSignal: true, isRequired: false, transformFunction: null }, headline: { classPropertyName: "headline", publicName: "headline", isSignal: true, isRequired: false, transformFunction: null }, showHeadline: { classPropertyName: "showHeadline", publicName: "showHeadline", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, timestamp: { classPropertyName: "timestamp", publicName: "timestamp", isSignal: true, isRequired: false, transformFunction: null }, showTimestamp: { classPropertyName: "showTimestamp", publicName: "showTimestamp", isSignal: true, isRequired: false, transformFunction: null }, closeable: { classPropertyName: "closeable", publicName: "closeable", isSignal: true, isRequired: false, transformFunction: null }, closeButtonId: { classPropertyName: "closeButtonId", publicName: "closeButtonId", isSignal: true, isRequired: false, transformFunction: null }, closeButtonText: { classPropertyName: "closeButtonText", publicName: "closeButtonText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { close: "close" }, viewQueries: [{ propertyName: "_ref", first: true, predicate: ["_ref"], descendants: true, isSignal: true }], ngImport: i0, template: `<div
5661
5803
  #_ref
5662
5804
  [attr.id]="id()"
5663
5805
  [class]="cls('db-notification', className())"
5806
+ [attr.role]="getNotificationRole({
5807
+ semantic: semantic(),
5808
+ role: role(),
5809
+ ariaLive: ariaLive()
5810
+ })"
5664
5811
  [attr.aria-live]="ariaLive()"
5665
5812
  [attr.data-semantic]="semantic()"
5666
5813
  [attr.data-variant]="variant()"
@@ -5692,14 +5839,19 @@ class DBNotification {
5692
5839
  >{{closeButtonText() ?? DEFAULT_CLOSE_BUTTON}}</db-button
5693
5840
  >
5694
5841
  }
5695
- </article> `, isInline: true, styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DBButton, selector: "db-button", inputs: ["type", "id", "className", "disabled", "iconLeading", "icon", "showIconLeading", "showIcon", "iconTrailing", "showIconTrailing", "size", "width", "variant", "noText", "name", "form", "value", "text"], outputs: ["click"] }] }); }
5842
+ </div> `, isInline: true, styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DBButton, selector: "db-button", inputs: ["type", "id", "className", "disabled", "iconLeading", "icon", "showIconLeading", "showIcon", "iconTrailing", "showIconTrailing", "size", "width", "variant", "noText", "name", "form", "value", "text"], outputs: ["click"] }] }); }
5696
5843
  }
5697
5844
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DBNotification, decorators: [{
5698
5845
  type: Component,
5699
- args: [{ selector: "db-notification", standalone: true, imports: [CommonModule, DBButton], template: `<article
5846
+ args: [{ selector: "db-notification", standalone: true, imports: [CommonModule, DBButton], template: `<div
5700
5847
  #_ref
5701
5848
  [attr.id]="id()"
5702
5849
  [class]="cls('db-notification', className())"
5850
+ [attr.role]="getNotificationRole({
5851
+ semantic: semantic(),
5852
+ role: role(),
5853
+ ariaLive: ariaLive()
5854
+ })"
5703
5855
  [attr.aria-live]="ariaLive()"
5704
5856
  [attr.data-semantic]="semantic()"
5705
5857
  [attr.data-variant]="variant()"
@@ -5731,8 +5883,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
5731
5883
  >{{closeButtonText() ?? DEFAULT_CLOSE_BUTTON}}</db-button
5732
5884
  >
5733
5885
  }
5734
- </article> `, styles: [":host{display:contents}\n"] }]
5735
- }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], ariaLive: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLive", required: false }] }], semantic: [{ type: i0.Input, args: [{ isSignal: true, alias: "semantic", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], linkVariant: [{ type: i0.Input, args: [{ isSignal: true, alias: "linkVariant", required: false }] }], headline: [{ type: i0.Input, args: [{ isSignal: true, alias: "headline", required: false }] }], showHeadline: [{ type: i0.Input, args: [{ isSignal: true, alias: "showHeadline", required: false }] }], text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }], timestamp: [{ type: i0.Input, args: [{ isSignal: true, alias: "timestamp", required: false }] }], showTimestamp: [{ type: i0.Input, args: [{ isSignal: true, alias: "showTimestamp", required: false }] }], closeable: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeable", required: false }] }], closeButtonId: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeButtonId", required: false }] }], closeButtonText: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeButtonText", required: false }] }], close: [{ type: i0.Output, args: ["close"] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
5886
+ </div> `, styles: [":host{display:contents}\n"] }]
5887
+ }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], semantic: [{ type: i0.Input, args: [{ isSignal: true, alias: "semantic", required: false }] }], role: [{ type: i0.Input, args: [{ isSignal: true, alias: "role", required: false }] }], ariaLive: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLive", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], linkVariant: [{ type: i0.Input, args: [{ isSignal: true, alias: "linkVariant", required: false }] }], headline: [{ type: i0.Input, args: [{ isSignal: true, alias: "headline", required: false }] }], showHeadline: [{ type: i0.Input, args: [{ isSignal: true, alias: "showHeadline", required: false }] }], text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }], timestamp: [{ type: i0.Input, args: [{ isSignal: true, alias: "timestamp", required: false }] }], showTimestamp: [{ type: i0.Input, args: [{ isSignal: true, alias: "showTimestamp", required: false }] }], closeable: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeable", required: false }] }], closeButtonId: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeButtonId", required: false }] }], closeButtonText: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeButtonText", required: false }] }], close: [{ type: i0.Output, args: ["close"] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
5736
5888
 
5737
5889
  const NotificationVariantList = ['docked', 'standalone', 'overlay'];
5738
5890
  const NotificationLinkVariantList = ['block', 'inline'];
@@ -6446,6 +6598,17 @@ class DBSelect {
6446
6598
  getOptionLabel(option) {
6447
6599
  return option.label ?? option.value?.toString();
6448
6600
  }
6601
+ shouldShowEmptyOption() {
6602
+ const hasPlaceholderOrFloating = this.variant() === "floating" || !!this.placeholder();
6603
+ if (!hasPlaceholderOrFloating) {
6604
+ return false;
6605
+ }
6606
+ if (this.showEmptyOption() !== undefined) {
6607
+ return this.showEmptyOption();
6608
+ }
6609
+ // Default: show empty option for non-required selects
6610
+ return !this.required();
6611
+ }
6449
6612
  trackByOptgroupOption0(_, optgroupOption) {
6450
6613
  return getOptionKey(optgroupOption, "select-optgroup-option-");
6451
6614
  }
@@ -6468,8 +6631,9 @@ class DBSelect {
6468
6631
  this.validMessage = input(...(ngDevMode ? [undefined, { debugName: "validMessage" }] : []));
6469
6632
  this.validation = input(...(ngDevMode ? [undefined, { debugName: "validation" }] : []));
6470
6633
  this.required = input(...(ngDevMode ? [undefined, { debugName: "required" }] : []));
6471
- this.className = input(...(ngDevMode ? [undefined, { debugName: "className" }] : []));
6472
6634
  this.variant = input(...(ngDevMode ? [undefined, { debugName: "variant" }] : []));
6635
+ this.showEmptyOption = input(...(ngDevMode ? [undefined, { debugName: "showEmptyOption" }] : []));
6636
+ this.className = input(...(ngDevMode ? [undefined, { debugName: "className" }] : []));
6473
6637
  this.showLabel = input(...(ngDevMode ? [undefined, { debugName: "showLabel" }] : []));
6474
6638
  this.showRequiredAsterisk = input(...(ngDevMode ? [undefined, { debugName: "showRequiredAsterisk" }] : []));
6475
6639
  this.icon = input(...(ngDevMode ? [undefined, { debugName: "icon" }] : []));
@@ -6641,7 +6805,7 @@ class DBSelect {
6641
6805
  this.abortController()?.abort();
6642
6806
  }
6643
6807
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DBSelect, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
6644
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DBSelect, isStandalone: true, selector: "db-select", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, invalidMessage: { classPropertyName: "invalidMessage", publicName: "invalidMessage", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, showMessage: { classPropertyName: "showMessage", publicName: "showMessage", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, validMessage: { classPropertyName: "validMessage", publicName: "validMessage", isSignal: true, isRequired: false, transformFunction: null }, validation: { classPropertyName: "validation", publicName: "validation", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, showLabel: { classPropertyName: "showLabel", publicName: "showLabel", isSignal: true, isRequired: false, transformFunction: null }, showRequiredAsterisk: { classPropertyName: "showRequiredAsterisk", publicName: "showRequiredAsterisk", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, autocomplete: { classPropertyName: "autocomplete", publicName: "autocomplete", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, ariaDescribedBy: { classPropertyName: "ariaDescribedBy", publicName: "ariaDescribedBy", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, messageIcon: { classPropertyName: "messageIcon", publicName: "messageIcon", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", disabled: "disabledChange", click: "click", input: "input", change: "change", blur: "blur", focus: "focus" }, providers: [{
6808
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DBSelect, isStandalone: true, selector: "db-select", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, invalidMessage: { classPropertyName: "invalidMessage", publicName: "invalidMessage", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, showMessage: { classPropertyName: "showMessage", publicName: "showMessage", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, validMessage: { classPropertyName: "validMessage", publicName: "validMessage", isSignal: true, isRequired: false, transformFunction: null }, validation: { classPropertyName: "validation", publicName: "validation", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, showEmptyOption: { classPropertyName: "showEmptyOption", publicName: "showEmptyOption", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, showLabel: { classPropertyName: "showLabel", publicName: "showLabel", isSignal: true, isRequired: false, transformFunction: null }, showRequiredAsterisk: { classPropertyName: "showRequiredAsterisk", publicName: "showRequiredAsterisk", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, autocomplete: { classPropertyName: "autocomplete", publicName: "autocomplete", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, ariaDescribedBy: { classPropertyName: "ariaDescribedBy", publicName: "ariaDescribedBy", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, messageIcon: { classPropertyName: "messageIcon", publicName: "messageIcon", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", disabled: "disabledChange", click: "click", input: "input", change: "change", blur: "blur", focus: "focus" }, providers: [{
6645
6809
  provide: NG_VALUE_ACCESSOR,
6646
6810
  useExisting: DBSelect,
6647
6811
  multi: true
@@ -6673,8 +6837,12 @@ class DBSelect {
6673
6837
  (focus)="handleFocus($event)"
6674
6838
  [attr.aria-describedby]="ariaDescribedBy() ?? _descByIds()"
6675
6839
  >
6676
- @if(variant() === 'floating' || placeholder()){
6677
- <option class="placeholder" value=""></option>
6840
+ @if(variant() === 'floating' || !!placeholder()){
6841
+ <option
6842
+ class="placeholder"
6843
+ value=""
6844
+ [attr.data-show-empty-option]="getBooleanAsString(shouldShowEmptyOption())"
6845
+ ></option>
6678
6846
  } @if(options()?.length){ @for (option of options();track i;let i =
6679
6847
  $index) {
6680
6848
  <ng-container
@@ -6773,8 +6941,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
6773
6941
  (focus)="handleFocus($event)"
6774
6942
  [attr.aria-describedby]="ariaDescribedBy() ?? _descByIds()"
6775
6943
  >
6776
- @if(variant() === 'floating' || placeholder()){
6777
- <option class="placeholder" value=""></option>
6944
+ @if(variant() === 'floating' || !!placeholder()){
6945
+ <option
6946
+ class="placeholder"
6947
+ value=""
6948
+ [attr.data-show-empty-option]="getBooleanAsString(shouldShowEmptyOption())"
6949
+ ></option>
6778
6950
  } @if(options()?.length){ @for (option of options();track i;let i =
6779
6951
  $index) {
6780
6952
  <ng-container
@@ -6838,7 +7010,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
6838
7010
  >{{_voiceOverFallback()}}</span
6839
7011
  >
6840
7012
  </div> `, styles: [":host{display:contents}\n"] }]
6841
- }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], invalidMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalidMessage", required: false }] }], message: [{ type: i0.Input, args: [{ isSignal: true, alias: "message", required: false }] }], showMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "showMessage", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], validMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "validMessage", required: false }] }], validation: [{ type: i0.Input, args: [{ isSignal: true, alias: "validation", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], showLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLabel", required: false }] }], showRequiredAsterisk: [{ type: i0.Input, args: [{ isSignal: true, alias: "showRequiredAsterisk", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], autocomplete: [{ type: i0.Input, args: [{ isSignal: true, alias: "autocomplete", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], ariaDescribedBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaDescribedBy", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], messageIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "messageIcon", required: false }] }], click: [{ type: i0.Output, args: ["click"] }], input: [{ type: i0.Output, args: ["input"] }], change: [{ type: i0.Output, args: ["change"] }], blur: [{ type: i0.Output, args: ["blur"] }], focus: [{ type: i0.Output, args: ["focus"] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
7013
+ }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], invalidMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalidMessage", required: false }] }], message: [{ type: i0.Input, args: [{ isSignal: true, alias: "message", required: false }] }], showMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "showMessage", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], validMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "validMessage", required: false }] }], validation: [{ type: i0.Input, args: [{ isSignal: true, alias: "validation", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], showEmptyOption: [{ type: i0.Input, args: [{ isSignal: true, alias: "showEmptyOption", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], showLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLabel", required: false }] }], showRequiredAsterisk: [{ type: i0.Input, args: [{ isSignal: true, alias: "showRequiredAsterisk", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], autocomplete: [{ type: i0.Input, args: [{ isSignal: true, alias: "autocomplete", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], ariaDescribedBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaDescribedBy", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], messageIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "messageIcon", required: false }] }], click: [{ type: i0.Output, args: ["click"] }], input: [{ type: i0.Output, args: ["input"] }], change: [{ type: i0.Output, args: ["change"] }], blur: [{ type: i0.Output, args: ["blur"] }], focus: [{ type: i0.Output, args: ["focus"] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
6842
7014
 
6843
7015
  const defaultProps$6 = {};
6844
7016
  class DBStack {
@@ -8390,5 +8562,5 @@ const AlignmentList = ['start', 'center'];
8390
8562
  * Generated bundle index. Do not edit.
8391
8563
  */
8392
8564
 
8393
- export { AccordionBehaviorList, AccordionVariantList, AlignmentList, AutoCompleteList, BadgePlacementList, ButtonTypeList, ButtonVariantList, COLOR, COLORS, COLORS_SIMPLE, COLOR_CONST, COLOR_SIMPLE, CardBehaviorList, CardElevationLevelList, CustomSelectDropdownWidthList, CustomSelectListItemTypeList, DBAccordion, DBAccordionItem, DBBadge, DBBrand, DBButton, DBCard, DBCheckbox, DBCustomSelect, DBCustomSelectDropdown, DBCustomSelectFormField, DBCustomSelectList, DBCustomSelectListItem, DBDivider, DBDrawer, DBHeader, DBIcon, DBInfotext, DBInput, DBLink, DBNavigation, DBNavigationItem, DBNotification, DBPage, DBPopover, DBRadio, DBSection, DBSelect, DBStack, DBSwitch, DBTabItem, DBTabList, DBTabPanel, DBTabs, DBTag, DBTextarea, DBTooltip, DB_UX_LOCAL_STORAGE_FRAMEWORK, DB_UX_LOCAL_STORAGE_MODE, DEFAULT_BACK, DEFAULT_BURGER_MENU, DEFAULT_CLOSE_BUTTON, DEFAULT_DATALIST_ID_SUFFIX, DEFAULT_ICON, DEFAULT_ID, DEFAULT_INVALID_MESSAGE, DEFAULT_INVALID_MESSAGE_ID_SUFFIX, DEFAULT_LABEL, DEFAULT_LABEL_ID_SUFFIX, DEFAULT_MESSAGE, DEFAULT_MESSAGE_ID_SUFFIX, DEFAULT_PLACEHOLDER, DEFAULT_PLACEHOLDER_ID_SUFFIX, DEFAULT_REMOVE, DEFAULT_ROWS, DEFAULT_SELECTED, DEFAULT_SELECT_ID_SUFFIX, DEFAULT_VALID_MESSAGE, DEFAULT_VALID_MESSAGE_ID_SUFFIX, DEFAULT_VIEWPORT, DENSITIES, DENSITY, DENSITY_CONST, DESKTOP_VIEWPORT, DividerMarginList, DividerVariantList, DocumentClickListener, DocumentScrollListener, DrawerBackdropList, DrawerDirectionList, DrawerPositionList, DrawerVariantList, EmphasisList, FieldSizingList, GapSpacingList, IconWeightList, InputTypeList, LabelVariantHorizontalList, LabelVariantList, LinkContentList, LinkReferrerPolicyList, LinkSizeList, LinkTargetList, LinkVariantList, MarginList, MaxWidthList, MetaNavigationDirective, NavigationContentDirective, NavigationDirective, NavigationItemSafeTriangle, NotificationAriaLiveList, NotificationLinkVariantList, NotificationVariantList, OrientationList, PageDocumentOverflowList, PageVariantList, PlacementHorizontalList, PlacementList, PlacementVerticalList, PopoverDelayList, PopoverWidthList, SEMANTIC, SEMANTICS, SecondaryActionDirective, SelectedTypeList, SemanticList, SizeList, SpacingList, StackAlignmentList, StackDirectionList, StackJustifyContentList, StackVariantList, TESTING_VIEWPORTS, TabsBehaviorList, TabsInitialSelectedModeList, TagBehaviorList, TextareaResizeList, TextareaWrapList, TooltipVariantList, ValidationList, WidthList, addAttributeToChildren, cls, delay, getBoolean, getBooleanAsString, getFloatingProps, getHideProp, getInputValue, getNumber, getOptionKey, getSearchInput, getStep, handleDataOutside, handleFixedDropdown, handleFixedPopover, hasVoiceOver, isArrayOfStrings, isEventTargetNavigationItem, isIOSSafari, isKeyboardEvent, stringPropVisible, uuid };
8565
+ export { AccordionBehaviorList, AccordionVariantList, AlignmentList, AutoCompleteList, BadgePlacementList, ButtonTypeList, ButtonVariantList, COLOR, COLORS, COLORS_SIMPLE, COLOR_CONST, COLOR_SIMPLE, CardBehaviorList, CardElevationLevelList, CustomSelectDropdownWidthList, CustomSelectListItemTypeList, DBAccordion, DBAccordionItem, DBBadge, DBBrand, DBButton, DBCard, DBCheckbox, DBCustomSelect, DBCustomSelectDropdown, DBCustomSelectFormField, DBCustomSelectList, DBCustomSelectListItem, DBDivider, DBDrawer, DBFooter, DBHeader, DBIcon, DBInfotext, DBInput, DBLink, DBNavigation, DBNavigationItem, DBNotification, DBPage, DBPopover, DBRadio, DBSection, DBSelect, DBStack, DBSwitch, DBTabItem, DBTabList, DBTabPanel, DBTabs, DBTag, DBTextarea, DBTooltip, DB_UX_LOCAL_STORAGE_FRAMEWORK, DB_UX_LOCAL_STORAGE_MODE, DEFAULT_BACK, DEFAULT_BURGER_MENU, DEFAULT_CLOSE_BUTTON, DEFAULT_DATALIST_ID_SUFFIX, DEFAULT_ICON, DEFAULT_ID, DEFAULT_INVALID_MESSAGE, DEFAULT_INVALID_MESSAGE_ID_SUFFIX, DEFAULT_LABEL, DEFAULT_LABEL_ID_SUFFIX, DEFAULT_MESSAGE, DEFAULT_MESSAGE_ID_SUFFIX, DEFAULT_PLACEHOLDER, DEFAULT_PLACEHOLDER_ID_SUFFIX, DEFAULT_REMOVE, DEFAULT_ROWS, DEFAULT_SELECTED, DEFAULT_SELECT_ID_SUFFIX, DEFAULT_VALID_MESSAGE, DEFAULT_VALID_MESSAGE_ID_SUFFIX, DEFAULT_VIEWPORT, DENSITIES, DENSITY, DENSITY_CONST, DESKTOP_VIEWPORT, DividerMarginList, DividerVariantList, DocumentClickListener, DocumentScrollListener, DrawerBackdropList, DrawerDirectionList, DrawerPositionList, DrawerVariantList, EmphasisList, FieldSizingList, GapSpacingList, IconWeightList, InputTypeList, LabelVariantHorizontalList, LabelVariantList, LinkContentList, LinkReferrerPolicyList, LinkSizeList, LinkTargetList, LinkVariantList, MarginList, MaxWidthList, MetaNavigationDirective, NavigationContentDirective, NavigationDirective, NavigationItemSafeTriangle, NotificationAriaLiveList, NotificationLinkVariantList, NotificationVariantList, OrientationList, PageDocumentOverflowList, PageVariantList, PlacementHorizontalList, PlacementList, PlacementVerticalList, PopoverDelayList, PopoverWidthList, SEMANTIC, SEMANTICS, SecondaryActionDirective, SelectedTypeList, SemanticList, SizeList, SpacingList, StackAlignmentList, StackDirectionList, StackJustifyContentList, StackVariantList, TESTING_VIEWPORTS, TabsBehaviorList, TabsInitialSelectedModeList, TagBehaviorList, TextareaResizeList, TextareaWrapList, TooltipVariantList, ValidationList, WidthList, addAttributeToChildren, cls, delay, getBoolean, getBooleanAsString, getFloatingProps, getHideProp, getInputValue, getNotificationRole, getNumber, getOptionKey, getSearchInput, getStep, handleDataOutside, handleFixedDropdown, handleFixedPopover, hasVoiceOver, isArrayOfStrings, isEventTargetNavigationItem, isIOSSafari, isKeyboardEvent, stringPropVisible, uuid };
8394
8566
  //# sourceMappingURL=db-ux-ngx-core-components.mjs.map