@swisspost/internet-header 1.16.0 → 1.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/cjs/focus-trap.cjs.entry.js +32 -50
  2. package/dist/cjs/index.cjs.js +1 -1
  3. package/dist/cjs/{post-internet-header-72edf928.js → post-internet-header-5c0dbfd2.js} +2 -3
  4. package/dist/cjs/swisspost-internet-header.cjs.entry.js +1 -1
  5. package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.js +2 -8
  6. package/dist/collection/components/post-internet-header/post-internet-header.js +14 -60
  7. package/dist/components/focus-trap2.js +32 -50
  8. package/dist/components/swisspost-internet-header.js +2 -3
  9. package/dist/docs.json +18 -118
  10. package/dist/esm/focus-trap.entry.js +32 -50
  11. package/dist/esm/index.js +1 -1
  12. package/dist/esm/{post-internet-header-25cbaecc.js → post-internet-header-6768743b.js} +2 -3
  13. package/dist/esm/swisspost-internet-header.entry.js +1 -1
  14. package/dist/esm-es5/focus-trap.entry.js +3 -3
  15. package/dist/esm-es5/index.js +1 -1
  16. package/dist/esm-es5/{post-internet-header-25cbaecc.js → post-internet-header-6768743b.js} +1 -1
  17. package/dist/esm-es5/swisspost-internet-header.entry.js +1 -1
  18. package/dist/swisspost-internet-header/index.esm.js +1 -1
  19. package/dist/swisspost-internet-header/{p-c45a080c.system.entry.js → p-4d5bddc5.system.entry.js} +3 -3
  20. package/dist/swisspost-internet-header/p-695fe962.system.js +1 -1
  21. package/dist/swisspost-internet-header/{p-2ca95ddf.system.js → p-7ceca008.system.js} +1 -1
  22. package/dist/swisspost-internet-header/p-944e8412.entry.js +11 -0
  23. package/dist/swisspost-internet-header/{p-572ff7a8.js → p-ccc07e33.js} +1 -1
  24. package/dist/swisspost-internet-header/{p-df70d07e.system.entry.js → p-f6e9c9eb.system.entry.js} +1 -1
  25. package/dist/swisspost-internet-header/{p-935c52e3.entry.js → p-fa6b0e3c.entry.js} +1 -1
  26. package/dist/swisspost-internet-header/{p-5a806d1a.system.js → p-fc7b59e2.system.js} +1 -1
  27. package/dist/swisspost-internet-header/swisspost-internet-header.esm.js +1 -1
  28. package/dist/types/components/post-internet-breadcrumbs/post-internet-breadcrumbs.d.ts +0 -2
  29. package/dist/types/components/post-internet-header/post-internet-header.d.ts +0 -15
  30. package/dist/types/components.d.ts +0 -33
  31. package/package.json +2 -2
  32. package/dist/swisspost-internet-header/p-085d38af.entry.js +0 -11
@@ -1,12 +1,15 @@
1
1
  import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
2
 
3
3
  /*!
4
- * tabbable 6.4.0
4
+ * tabbable 6.2.0
5
5
  * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
6
6
  */
7
7
  // NOTE: separate `:not()` selectors has broader browser support than the newer
8
8
  // `:not([inert], [inert] *)` (Feb 2023)
9
- var candidateSelectors = ['input:not([inert]):not([inert] *)', 'select:not([inert]):not([inert] *)', 'textarea:not([inert]):not([inert] *)', 'a[href]:not([inert]):not([inert] *)', 'button:not([inert]):not([inert] *)', '[tabindex]:not(slot):not([inert]):not([inert] *)', 'audio[controls]:not([inert]):not([inert] *)', 'video[controls]:not([inert]):not([inert] *)', '[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *)', 'details>summary:first-of-type:not([inert]):not([inert] *)', 'details:not([inert]):not([inert] *)'];
9
+ // CAREFUL: JSDom does not support `:not([inert] *)` as a selector; using it causes
10
+ // the entire query to fail, resulting in no nodes found, which will break a lot
11
+ // of things... so we have to rely on JS to identify nodes inside an inert container
12
+ var candidateSelectors = ['input:not([inert])', 'select:not([inert])', 'textarea:not([inert])', 'a[href]:not([inert])', 'button:not([inert])', '[tabindex]:not(slot):not([inert])', 'audio[controls]:not([inert])', 'video[controls]:not([inert])', '[contenteditable]:not([contenteditable="false"]):not([inert])', 'details>summary:first-of-type:not([inert])', 'details:not([inert])'];
10
13
  var candidateSelector = /* #__PURE__ */candidateSelectors.join(',');
11
14
  var NoElement = typeof Element === 'undefined';
12
15
  var matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
@@ -19,13 +22,13 @@ var getRootNode = !NoElement && Element.prototype.getRootNode ? function (elemen
19
22
 
20
23
  /**
21
24
  * Determines if a node is inert or in an inert ancestor.
22
- * @param {Node} [node]
25
+ * @param {Element} [node]
23
26
  * @param {boolean} [lookUp] If true and `node` is not inert, looks up at ancestors to
24
27
  * see if any of them are inert. If false, only `node` itself is considered.
25
28
  * @returns {boolean} True if inert itself or by way of being in an inert ancestor.
26
29
  * False if `node` is falsy.
27
30
  */
28
- var _isInert = function isInert(node, lookUp) {
31
+ var isInert = function isInert(node, lookUp) {
29
32
  var _node$getAttribute;
30
33
  if (lookUp === void 0) {
31
34
  lookUp = true;
@@ -39,10 +42,10 @@ var _isInert = function isInert(node, lookUp) {
39
42
  // NOTE: this could also be handled with `node.matches('[inert], :is([inert] *)')`
40
43
  // if it weren't for `matches()` not being a function on shadow roots; the following
41
44
  // code works for any kind of node
42
- var result = inert || lookUp && node && (
43
- // closest does not exist on shadow roots, so we fall back to a manual
44
- // lookup upward, in case it is not defined.
45
- typeof node.closest === 'function' ? node.closest('[inert]') : _isInert(node.parentNode));
45
+ // CAREFUL: JSDom does not appear to support certain selectors like `:not([inert] *)`
46
+ // so it likely would not support `:is([inert] *)` either...
47
+ var result = inert || lookUp && node && isInert(node.parentNode); // recursive
48
+
46
49
  return result;
47
50
  };
48
51
 
@@ -68,8 +71,8 @@ var isContentEditable = function isContentEditable(node) {
68
71
  */
69
72
  var getCandidates = function getCandidates(el, includeContainer, filter) {
70
73
  // even if `includeContainer=false`, we still have to check it for inertness because
71
- // if it's inert (either by itself or via its parent), then all its children are inert
72
- if (_isInert(el)) {
74
+ // if it's inert, all its children are inert
75
+ if (isInert(el)) {
73
76
  return [];
74
77
  }
75
78
  var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));
@@ -114,12 +117,12 @@ var getCandidates = function getCandidates(el, includeContainer, filter) {
114
117
  * @param {IterativeOptions} options
115
118
  * @returns {Array.<Element|CandidateScope>}
116
119
  */
117
- var _getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {
120
+ var getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {
118
121
  var candidates = [];
119
122
  var elementsToCheck = Array.from(elements);
120
123
  while (elementsToCheck.length) {
121
124
  var element = elementsToCheck.shift();
122
- if (_isInert(element, false)) {
125
+ if (isInert(element, false)) {
123
126
  // no need to look up since we're drilling down
124
127
  // anything inside this container will also be inert
125
128
  continue;
@@ -128,7 +131,7 @@ var _getCandidatesIteratively = function getCandidatesIteratively(elements, incl
128
131
  // add shadow dom slot scope (slot itself cannot be focusable)
129
132
  var assigned = element.assignedElements();
130
133
  var content = assigned.length ? assigned : element.children;
131
- var nestedCandidates = _getCandidatesIteratively(content, true, options);
134
+ var nestedCandidates = getCandidatesIteratively(content, true, options);
132
135
  if (options.flatten) {
133
136
  candidates.push.apply(candidates, nestedCandidates);
134
137
  } else {
@@ -152,7 +155,7 @@ var _getCandidatesIteratively = function getCandidatesIteratively(elements, incl
152
155
  // no inert look up because we're already drilling down and checking for inertness
153
156
  // on the way down, so all containers to this root node should have already been
154
157
  // vetted as non-inert
155
- var validShadowRoot = !_isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element));
158
+ var validShadowRoot = !isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element));
156
159
  if (shadowRoot && validShadowRoot) {
157
160
  // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed
158
161
  // shadow exists, so look at light dom children as fallback BUT create a scope for any
@@ -160,7 +163,7 @@ var _getCandidatesIteratively = function getCandidatesIteratively(elements, incl
160
163
  // children of the web component element (which has the shadow), in the light dom, but
161
164
  // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,
162
165
  // _after_ we return from this recursive call
163
- var _nestedCandidates = _getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);
166
+ var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);
164
167
  if (options.flatten) {
165
168
  candidates.push.apply(candidates, _nestedCandidates);
166
169
  } else {
@@ -337,28 +340,6 @@ var isZeroArea = function isZeroArea(node) {
337
340
  var isHidden = function isHidden(node, _ref) {
338
341
  var displayCheck = _ref.displayCheck,
339
342
  getShadowRoot = _ref.getShadowRoot;
340
- if (displayCheck === 'full-native') {
341
- if ('checkVisibility' in node) {
342
- // Chrome >= 105, Edge >= 105, Firefox >= 106, Safari >= 17.4
343
- // @see https://developer.mozilla.org/en-US/docs/Web/API/Element/checkVisibility#browser_compatibility
344
- var visible = node.checkVisibility({
345
- // Checking opacity might be desirable for some use cases, but natively,
346
- // opacity zero elements _are_ focusable and tabbable.
347
- checkOpacity: false,
348
- opacityProperty: false,
349
- contentVisibilityAuto: true,
350
- visibilityProperty: true,
351
- // This is an alias for `visibilityProperty`. Contemporary browsers
352
- // support both. However, this alias has wider browser support (Chrome
353
- // >= 105 and Firefox >= 106, vs. Chrome >= 121 and Firefox >= 122), so
354
- // we include it anyway.
355
- checkVisibilityCSS: true
356
- });
357
- return !visible;
358
- }
359
- // Fall through to manual visibility checks
360
- }
361
-
362
343
  // NOTE: visibility will be `undefined` if node is detached from the document
363
344
  // (see notes about this further down), which means we will consider it visible
364
345
  // (this is legacy behavior from a very long way back)
@@ -372,10 +353,7 @@ var isHidden = function isHidden(node, _ref) {
372
353
  if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {
373
354
  return true;
374
355
  }
375
- if (!displayCheck || displayCheck === 'full' ||
376
- // full-native can run this branch when it falls through in case
377
- // Element#checkVisibility is unsupported
378
- displayCheck === 'full-native' || displayCheck === 'legacy-full') {
356
+ if (!displayCheck || displayCheck === 'full' || displayCheck === 'legacy-full') {
379
357
  if (typeof getShadowRoot === 'function') {
380
358
  // figure out if we should consider the node to be in an undisclosed shadow and use the
381
359
  // 'non-zero-area' fallback
@@ -484,7 +462,11 @@ var isDisabledFromFieldset = function isDisabledFromFieldset(node) {
484
462
  return false;
485
463
  };
486
464
  var isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {
487
- if (node.disabled || isHiddenInput(node) || isHidden(node, options) ||
465
+ if (node.disabled ||
466
+ // we must do an inert look up to filter out any elements inside an inert ancestor
467
+ // because we're limited in the type of selectors we can use in JSDom (see related
468
+ // note related to `candidateSelectors`)
469
+ isInert(node) || isHiddenInput(node) || isHidden(node, options) ||
488
470
  // For a details element with a summary, the summary element gets the focus
489
471
  isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {
490
472
  return false;
@@ -497,7 +479,7 @@ var isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(opt
497
479
  }
498
480
  return true;
499
481
  };
500
- var isShadowRootTabbable = function isShadowRootTabbable(shadowHostNode) {
482
+ var isValidShadowRootTabbable = function isValidShadowRootTabbable(shadowHostNode) {
501
483
  var tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);
502
484
  if (isNaN(tabIndex) || tabIndex >= 0) {
503
485
  return true;
@@ -511,14 +493,14 @@ var isShadowRootTabbable = function isShadowRootTabbable(shadowHostNode) {
511
493
  * @param {Array.<Element|CandidateScope>} candidates
512
494
  * @returns Element[]
513
495
  */
514
- var _sortByOrder = function sortByOrder(candidates) {
496
+ var sortByOrder = function sortByOrder(candidates) {
515
497
  var regularTabbables = [];
516
498
  var orderedTabbables = [];
517
499
  candidates.forEach(function (item, i) {
518
500
  var isScope = !!item.scopeParent;
519
501
  var element = isScope ? item.scopeParent : item;
520
502
  var candidateTabindex = getSortOrderTabIndex(element, isScope);
521
- var elements = isScope ? _sortByOrder(item.candidates) : element;
503
+ var elements = isScope ? sortByOrder(item.candidates) : element;
522
504
  if (candidateTabindex === 0) {
523
505
  isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);
524
506
  } else {
@@ -540,22 +522,22 @@ var tabbable = function tabbable(container, options) {
540
522
  options = options || {};
541
523
  var candidates;
542
524
  if (options.getShadowRoot) {
543
- candidates = _getCandidatesIteratively([container], options.includeContainer, {
525
+ candidates = getCandidatesIteratively([container], options.includeContainer, {
544
526
  filter: isNodeMatchingSelectorTabbable.bind(null, options),
545
527
  flatten: false,
546
528
  getShadowRoot: options.getShadowRoot,
547
- shadowRootFilter: isShadowRootTabbable
529
+ shadowRootFilter: isValidShadowRootTabbable
548
530
  });
549
531
  } else {
550
532
  candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));
551
533
  }
552
- return _sortByOrder(candidates);
534
+ return sortByOrder(candidates);
553
535
  };
554
536
  var focusable = function focusable(container, options) {
555
537
  options = options || {};
556
538
  var candidates;
557
539
  if (options.getShadowRoot) {
558
- candidates = _getCandidatesIteratively([container], options.includeContainer, {
540
+ candidates = getCandidatesIteratively([container], options.includeContainer, {
559
541
  filter: isNodeMatchingSelectorFocusable.bind(null, options),
560
542
  flatten: true,
561
543
  getShadowRoot: options.getShadowRoot
@@ -575,7 +557,7 @@ var isTabbable = function isTabbable(node, options) {
575
557
  }
576
558
  return isNodeMatchingSelectorTabbable(options, node);
577
559
  };
578
- var focusableCandidateSelector = /* #__PURE__ */candidateSelectors.concat('iframe:not([inert]):not([inert] *)').join(',');
560
+ var focusableCandidateSelector = /* #__PURE__ */candidateSelectors.concat('iframe').join(',');
579
561
  var isFocusable = function isFocusable(node, options) {
580
562
  options = options || {};
581
563
  if (!node) {
@@ -378,7 +378,7 @@ const setMainNavigationIds = (navMainEntities) => {
378
378
  };
379
379
 
380
380
  const name = "@swisspost/internet-header";
381
- const version = "1.16.0";
381
+ const version = "1.16.1";
382
382
  const description = "The header for client facing applications.";
383
383
  const author = "Swiss Post <design-system@post.ch>";
384
384
  const license = "Apache-2.0";
@@ -419,7 +419,7 @@ const scripts = {
419
419
  generate: "stencil generate"
420
420
  };
421
421
  const dependencies = {
422
- "@swisspost/design-system-styles": "workspace:9.7.0",
422
+ "@swisspost/design-system-styles": "workspace:9.8.0",
423
423
  "body-scroll-lock": "4.0.0-beta.0",
424
424
  "iframe-resizer": "4.4.5",
425
425
  jquery: "3.7.1",
@@ -589,7 +589,6 @@ const PostInternetHeader = /*@__PURE__*/ proxyCustomElement(class PostInternetHe
589
589
  /**
590
590
  * Get the currently set language as a two letter string ("de", "fr" "it" or "en")
591
591
  * @returns string
592
- * @deprecated use `document.documentElement.lang` instead
593
592
  */
594
593
  async getCurrentLanguage() {
595
594
  var _a;
package/dist/docs.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2026-02-23T18:09:42",
2
+ "timestamp": "2026-02-26T09:02:53",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.19.2",
@@ -750,13 +750,7 @@
750
750
  "attr": "custom-items",
751
751
  "reflectToAttr": false,
752
752
  "docs": "Add custom breadcrumb items to the end of the pre-configured list. Handy if your online service has its own navigation structure.",
753
- "docsTags": [
754
- {
755
- "name": "deprecated",
756
- "text": "overlays will no longer be provided in the next major release, therefore this method will no longer be needed."
757
- }
758
- ],
759
- "deprecation": "overlays will no longer be provided in the next major release, therefore this method will no longer be needed.",
753
+ "docsTags": [],
760
754
  "values": [
761
755
  {
762
756
  "type": "IBreadcrumbItem[]"
@@ -783,14 +777,8 @@
783
777
  "attr": "hide-buttons",
784
778
  "reflectToAttr": false,
785
779
  "docs": "Hide all buttons.",
786
- "docsTags": [
787
- {
788
- "name": "deprecated",
789
- "text": "Help and Contact buttons will no longer be provided in the next major release, therefore this prop will no longer be needed."
790
- }
791
- ],
780
+ "docsTags": [],
792
781
  "default": "false",
793
- "deprecation": "Help and Contact buttons will no longer be provided in the next major release, therefore this prop will no longer be needed.",
794
782
  "values": [
795
783
  {
796
784
  "type": "boolean"
@@ -901,14 +889,8 @@
901
889
  "attr": "active-route",
902
890
  "reflectToAttr": false,
903
891
  "docs": "Set the currently activated route. If there is a link matching this URL in the header, it will be highlighted.\nWill also highlight partly matching URLs. When set to auto, will use current location.href for comparison.",
904
- "docsTags": [
905
- {
906
- "name": "deprecated",
907
- "text": "boolean values will no longer be accepted in the next major release. Use \"none\" for false and \"auto\" for true. All other values remain unchanged."
908
- }
909
- ],
892
+ "docsTags": [],
910
893
  "default": "'auto'",
911
- "deprecation": "boolean values will no longer be accepted in the next major release. Use \"none\" for false and \"auto\" for true. All other values remain unchanged.",
912
894
  "values": [
913
895
  {
914
896
  "type": "boolean"
@@ -935,13 +917,7 @@
935
917
  "attr": "config-proxy",
936
918
  "reflectToAttr": false,
937
919
  "docs": "Define a proxy URL for the config fetch request.",
938
- "docsTags": [
939
- {
940
- "name": "deprecated",
941
- "text": "this functionality will no longer be provided in the next major release and was deprecated previously."
942
- }
943
- ],
944
- "deprecation": "this functionality will no longer be provided in the next major release and was deprecated previously.",
920
+ "docsTags": [],
945
921
  "values": [
946
922
  {
947
923
  "type": "string"
@@ -971,13 +947,7 @@
971
947
  "attr": "custom-config",
972
948
  "reflectToAttr": false,
973
949
  "docs": "Customize the header config loaded from the post portal.",
974
- "docsTags": [
975
- {
976
- "name": "deprecated",
977
- "text": "use the main navigation slot to add custom menu entries. This option will be removed in the next major release."
978
- }
979
- ],
980
- "deprecation": "use the main navigation slot to add custom menu entries. This option will be removed in the next major release.",
950
+ "docsTags": [],
981
951
  "values": [
982
952
  {
983
953
  "type": "ICustomConfig"
@@ -1119,13 +1089,7 @@
1119
1089
  "attr": "language-cookie-key",
1120
1090
  "reflectToAttr": false,
1121
1091
  "docs": "The header uses this cookie to set the language. Disables automatic language detection.",
1122
- "docsTags": [
1123
- {
1124
- "name": "deprecated",
1125
- "text": "this will no longer be supported in the next major release due to low usage, in favor of a project-specific solution."
1126
- }
1127
- ],
1128
- "deprecation": "this will no longer be supported in the next major release due to low usage, in favor of a project-specific solution.",
1092
+ "docsTags": [],
1129
1093
  "values": [
1130
1094
  {
1131
1095
  "type": "string"
@@ -1149,14 +1113,8 @@
1149
1113
  "attr": "language-local-storage-key",
1150
1114
  "reflectToAttr": false,
1151
1115
  "docs": "The header uses this local storage key to set the language. Disables automatic language selection.",
1152
- "docsTags": [
1153
- {
1154
- "name": "deprecated",
1155
- "text": "this will no longer be supported in the next major release due to low usage, in favor of a project-specific solution."
1156
- }
1157
- ],
1116
+ "docsTags": [],
1158
1117
  "default": "'swisspost-internet-header-language'",
1159
- "deprecation": "this will no longer be supported in the next major release due to low usage, in favor of a project-specific solution.",
1160
1118
  "values": [
1161
1119
  {
1162
1120
  "type": "string"
@@ -1186,13 +1144,7 @@
1186
1144
  "attr": "language-switch-overrides",
1187
1145
  "reflectToAttr": false,
1188
1146
  "docs": "Override the language switch links with custom URLs. Helpful when your application contains sub-pages, and you\nwould like to stay on subpages when the user changes language.",
1189
- "docsTags": [
1190
- {
1191
- "name": "deprecated",
1192
- "text": "use the language menu slot to override the language switch and specify custom URLs. This option will be removed in the next major release."
1193
- }
1194
- ],
1195
- "deprecation": "use the language menu slot to override the language switch and specify custom URLs. This option will be removed in the next major release.",
1147
+ "docsTags": [],
1196
1148
  "values": [
1197
1149
  {
1198
1150
  "type": "IAvailableLanguage[]"
@@ -1219,14 +1171,8 @@
1219
1171
  "attr": "login",
1220
1172
  "reflectToAttr": false,
1221
1173
  "docs": "Toggle the login link (when logged out) or the user widget (when logged in).",
1222
- "docsTags": [
1223
- {
1224
- "name": "deprecated",
1225
- "text": "use the new configuration API to show or hide the login. This option will be removed in the next major release."
1226
- }
1227
- ],
1174
+ "docsTags": [],
1228
1175
  "default": "true",
1229
- "deprecation": "use the new configuration API to show or hide the login. This option will be removed in the next major release.",
1230
1176
  "values": [
1231
1177
  {
1232
1178
  "type": "boolean"
@@ -1247,13 +1193,7 @@
1247
1193
  "attr": "logout-url",
1248
1194
  "reflectToAttr": false,
1249
1195
  "docs": "Overrides the logout-url provided by the portal config.",
1250
- "docsTags": [
1251
- {
1252
- "name": "deprecated",
1253
- "text": "use the new configuration API to specify the logout URL. This option will be removed in the next major release."
1254
- }
1255
- ],
1256
- "deprecation": "use the new configuration API to specify the logout URL. This option will be removed in the next major release.",
1196
+ "docsTags": [],
1257
1197
  "values": [
1258
1198
  {
1259
1199
  "type": "string"
@@ -1277,14 +1217,8 @@
1277
1217
  "attr": "meta",
1278
1218
  "reflectToAttr": false,
1279
1219
  "docs": "Toggle the meta navigation.",
1280
- "docsTags": [
1281
- {
1282
- "name": "deprecated",
1283
- "text": "use the new configuration API to show or hide the meta navigation links. This option will be removed in the next major release."
1284
- }
1285
- ],
1220
+ "docsTags": [],
1286
1221
  "default": "true",
1287
- "deprecation": "use the new configuration API to show or hide the meta navigation links. This option will be removed in the next major release.",
1288
1222
  "values": [
1289
1223
  {
1290
1224
  "type": "boolean"
@@ -1311,12 +1245,7 @@
1311
1245
  "attr": "os-flyout-overrides",
1312
1246
  "reflectToAttr": false,
1313
1247
  "docs": "Online Services only: Add custom links to the special online service navigation entry",
1314
- "docsTags": [
1315
- {
1316
- "name": "deprecatedthe",
1317
- "text": "new header will no longer include this flyout in the next major release. Use the main navigation slot to add application-specific menu items."
1318
- }
1319
- ],
1248
+ "docsTags": [],
1320
1249
  "values": [
1321
1250
  {
1322
1251
  "type": "NavMainEntity"
@@ -1364,14 +1293,8 @@
1364
1293
  "attr": "search",
1365
1294
  "reflectToAttr": false,
1366
1295
  "docs": "Toggle the search button.",
1367
- "docsTags": [
1368
- {
1369
- "name": "deprecated",
1370
- "text": "use the new configuration API to show or hide the search. This option will be removed in the next major release."
1371
- }
1372
- ],
1296
+ "docsTags": [],
1373
1297
  "default": "true",
1374
- "deprecation": "use the new configuration API to show or hide the search. This option will be removed in the next major release.",
1375
1298
  "values": [
1376
1299
  {
1377
1300
  "type": "boolean"
@@ -1392,13 +1315,7 @@
1392
1315
  "attr": "self-admin-origin",
1393
1316
  "reflectToAttr": false,
1394
1317
  "docs": "Overrides the selfadmin url in case it needs to differ from the logoutUrl, which is the url that is used by default.\nThe selfadmin url is used in the KLP login widget to set the user menu links.",
1395
- "docsTags": [
1396
- {
1397
- "name": "deprecated",
1398
- "text": "use the new configuration API to specify these URLs. This option will be removed in the next major release."
1399
- }
1400
- ],
1401
- "deprecation": "use the new configuration API to specify these URLs. This option will be removed in the next major release.",
1318
+ "docsTags": [],
1402
1319
  "values": [
1403
1320
  {
1404
1321
  "type": "string"
@@ -1422,14 +1339,8 @@
1422
1339
  "attr": "skiplinks",
1423
1340
  "reflectToAttr": false,
1424
1341
  "docs": "Toggle skiplinks. They help keyboard users to quickly jump to important sections of the page.",
1425
- "docsTags": [
1426
- {
1427
- "name": "deprecated",
1428
- "text": "please implement the skiplinks component. This option will be removed in the next major release."
1429
- }
1430
- ],
1342
+ "docsTags": [],
1431
1343
  "default": "true",
1432
- "deprecation": "please implement the skiplinks component. This option will be removed in the next major release.",
1433
1344
  "values": [
1434
1345
  {
1435
1346
  "type": "boolean"
@@ -1456,14 +1367,8 @@
1456
1367
  "attr": "stickyness",
1457
1368
  "reflectToAttr": false,
1458
1369
  "docs": "Sticky behaviour of the header.",
1459
- "docsTags": [
1460
- {
1461
- "name": "deprecated",
1462
- "text": "this option will no longer be configurable with the new header in the next major release."
1463
- }
1464
- ],
1370
+ "docsTags": [],
1465
1371
  "default": "'minimal'",
1466
- "deprecation": "this option will no longer be configurable with the new header in the next major release.",
1467
1372
  "values": [
1468
1373
  {
1469
1374
  "value": "full",
@@ -1511,13 +1416,8 @@
1511
1416
  {
1512
1417
  "name": "returns",
1513
1418
  "text": "string"
1514
- },
1515
- {
1516
- "name": "deprecated",
1517
- "text": "use `document.documentElement.lang` instead"
1518
1419
  }
1519
- ],
1520
- "deprecation": "use `document.documentElement.lang` instead"
1420
+ ]
1521
1421
  }
1522
1422
  ],
1523
1423
  "events": [