@sebgroup/green-core 3.31.0 → 3.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/components/form-summary/summary.component.d.ts +3 -0
  2. package/components/form-summary/summary.component.js +17 -16
  3. package/custom-elements.json +25457 -25436
  4. package/gds-element.js +1 -1
  5. package/generated/locales/da.d.ts +5 -0
  6. package/generated/locales/da.js +5 -0
  7. package/generated/locales/de.d.ts +5 -0
  8. package/generated/locales/de.js +5 -0
  9. package/generated/locales/fi.d.ts +5 -0
  10. package/generated/locales/fi.js +5 -0
  11. package/generated/locales/fr.d.ts +5 -0
  12. package/generated/locales/fr.js +5 -0
  13. package/generated/locales/it.d.ts +5 -0
  14. package/generated/locales/it.js +5 -0
  15. package/generated/locales/nl.d.ts +5 -0
  16. package/generated/locales/nl.js +5 -0
  17. package/generated/locales/no.d.ts +5 -0
  18. package/generated/locales/no.js +5 -0
  19. package/generated/locales/sv.d.ts +5 -0
  20. package/generated/locales/sv.js +5 -0
  21. package/generated/mcp/alert/guidelines.md +105 -0
  22. package/generated/mcp/alert/index.json +1 -0
  23. package/generated/mcp/avatar/guidelines.md +40 -0
  24. package/generated/mcp/avatar/index.json +1 -0
  25. package/generated/mcp/badge/guidelines.md +56 -0
  26. package/generated/mcp/badge/index.json +1 -0
  27. package/generated/mcp/blur/guidelines.md +3 -0
  28. package/generated/mcp/blur/index.json +1 -0
  29. package/generated/mcp/breadcrumbs/guidelines.md +35 -0
  30. package/generated/mcp/breadcrumbs/index.json +1 -0
  31. package/generated/mcp/button/guidelines.md +83 -0
  32. package/generated/mcp/button/index.json +1 -0
  33. package/generated/mcp/calendar/guidelines.md +3 -0
  34. package/generated/mcp/calendar/index.json +1 -0
  35. package/generated/mcp/card/guidelines.md +78 -0
  36. package/generated/mcp/card/index.json +1 -0
  37. package/generated/mcp/card-pattern-01/guidelines.md +52 -0
  38. package/generated/mcp/card-pattern-01/index.json +1 -0
  39. package/generated/mcp/checkbox/guidelines.md +91 -0
  40. package/generated/mcp/checkbox/index.json +1 -0
  41. package/generated/mcp/coachmark/guidelines.md +8 -0
  42. package/generated/mcp/coachmark/index.json +1 -0
  43. package/generated/mcp/components.json +47 -1
  44. package/generated/mcp/context-menu/guidelines.md +33 -0
  45. package/generated/mcp/context-menu/index.json +1 -0
  46. package/generated/mcp/datepicker/guidelines.md +44 -0
  47. package/generated/mcp/datepicker/index.json +1 -0
  48. package/generated/mcp/details/guidelines.md +24 -0
  49. package/generated/mcp/details/index.json +1 -0
  50. package/generated/mcp/dialog/guidelines.md +35 -0
  51. package/generated/mcp/dialog/index.json +1 -0
  52. package/generated/mcp/div/guidelines.md +3 -0
  53. package/generated/mcp/div/index.json +1 -0
  54. package/generated/mcp/divider/guidelines.md +24 -0
  55. package/generated/mcp/divider/index.json +1 -0
  56. package/generated/mcp/dropdown/guidelines.md +96 -0
  57. package/generated/mcp/dropdown/index.json +1 -0
  58. package/generated/mcp/fab/guidelines.md +27 -0
  59. package/generated/mcp/fab/index.json +1 -0
  60. package/generated/mcp/filter-chips/guidelines.md +47 -0
  61. package/generated/mcp/filter-chips/index.json +1 -0
  62. package/generated/mcp/flex/guidelines.md +1 -0
  63. package/generated/mcp/flex/index.json +1 -0
  64. package/generated/mcp/form-summary/angular.md +8 -0
  65. package/generated/mcp/form-summary/api.md +7 -0
  66. package/generated/mcp/form-summary/guidelines.md +39 -0
  67. package/generated/mcp/form-summary/index.json +1 -0
  68. package/generated/mcp/form-summary/react.md +8 -0
  69. package/generated/mcp/grid/guidelines.md +3 -0
  70. package/generated/mcp/grid/index.json +1 -0
  71. package/generated/mcp/icons.json +1 -1
  72. package/generated/mcp/index.json +1 -1
  73. package/generated/mcp/input/guidelines.md +127 -0
  74. package/generated/mcp/input/index.json +1 -0
  75. package/generated/mcp/link/guidelines.md +43 -0
  76. package/generated/mcp/link/index.json +1 -0
  77. package/generated/mcp/list/guidelines.md +16 -0
  78. package/generated/mcp/list/index.json +1 -0
  79. package/generated/mcp/list-item-pattern-01/guidelines.md +49 -0
  80. package/generated/mcp/list-item-pattern-01/index.json +1 -0
  81. package/generated/mcp/menu-button/guidelines.md +39 -0
  82. package/generated/mcp/menu-button/index.json +1 -0
  83. package/generated/mcp/pagination/guidelines.md +24 -0
  84. package/generated/mcp/pagination/index.json +1 -0
  85. package/generated/mcp/popover/guidelines.md +3 -0
  86. package/generated/mcp/popover/index.json +1 -0
  87. package/generated/mcp/progress/guidelines.md +42 -0
  88. package/generated/mcp/progress/index.json +1 -0
  89. package/generated/mcp/radio/guidelines.md +74 -0
  90. package/generated/mcp/radio/index.json +1 -0
  91. package/generated/mcp/rich-text/guidelines.md +3 -0
  92. package/generated/mcp/rich-text/index.json +1 -0
  93. package/generated/mcp/segmented-control/guidelines.md +31 -0
  94. package/generated/mcp/segmented-control/index.json +1 -0
  95. package/generated/mcp/select/guidelines.md +29 -0
  96. package/generated/mcp/select/index.json +1 -0
  97. package/generated/mcp/signal/guidelines.md +14 -0
  98. package/generated/mcp/signal/index.json +1 -0
  99. package/generated/mcp/slider/guidelines.md +86 -0
  100. package/generated/mcp/slider/index.json +1 -0
  101. package/generated/mcp/spinner/guidelines.md +6 -0
  102. package/generated/mcp/spinner/index.json +1 -0
  103. package/generated/mcp/switch/guidelines.md +41 -0
  104. package/generated/mcp/switch/index.json +1 -0
  105. package/generated/mcp/table/guidelines.md +169 -0
  106. package/generated/mcp/table/index.json +1 -0
  107. package/generated/mcp/tabs/guidelines.md +64 -0
  108. package/generated/mcp/tabs/index.json +1 -0
  109. package/generated/mcp/text/guidelines.md +3 -0
  110. package/generated/mcp/text/index.json +1 -0
  111. package/generated/mcp/textarea/guidelines.md +73 -0
  112. package/generated/mcp/textarea/index.json +1 -0
  113. package/generated/mcp/theme/guidelines.md +3 -0
  114. package/generated/mcp/theme/index.json +1 -0
  115. package/generated/mcp/tokens.json +1 -1
  116. package/generated/mcp/tooltip/guidelines.md +107 -0
  117. package/generated/mcp/tooltip/index.json +1 -0
  118. package/generated/mcp/video/guidelines.md +3 -0
  119. package/generated/mcp/video/index.json +1 -0
  120. package/generated/react/form-summary/index.d.ts +6 -1
  121. package/generated/react/index.d.ts +10 -10
  122. package/generated/react/index.js +10 -10
  123. package/package.json +1 -1
  124. package/utils/helpers/custom-element-scoping.js +1 -1
@@ -8,6 +8,9 @@ import { GdsElement } from '../../gds-element';
8
8
  * in a consolidated manner. It provides a clear indication of what went wrong and what needs to be corrected.
9
9
  *
10
10
  * @slot header - Optional slot for customizing the header of the summary.
11
+ *
12
+ * @event gds-control-focus - Fired when an item in the summary is clicked, before focus moves to the related control.
13
+ * The detail object contains the control. Can be cancelled with event.preventDefault() to handle focus yourself.
11
14
  */
12
15
  export declare class GdsFormSummary extends GdsElement {
13
16
  #private;
@@ -7,9 +7,7 @@ import {
7
7
  } from "../../chunks/chunk.H2T4A5YY.js";
8
8
  var _form, _formObserver, _GdsFormSummary_instances, renderControlItem_fn, groupByFieldset_fn, getFormControls_fn, getErrorControls_fn, renderArrowIcon_fn;
9
9
  import { msg, str } from "@lit/localize";
10
- import { nothing } from "lit";
11
10
  import { property, queryAsync } from "lit/decorators.js";
12
- import { until } from "lit/directives/until.js";
13
11
  import { when } from "lit/directives/when.js";
14
12
  import { GdsElement } from "../../gds-element.js";
15
13
  import { gdsCustomElement, html } from "../../scoping.js";
@@ -43,9 +41,9 @@ let GdsFormSummary = class extends GdsElement {
43
41
  * Focuses the first focusable element in the summary.
44
42
  */
45
43
  focus(options) {
46
- this._elRoot.then((el) => {
47
- const firstFocusable = el.querySelector(
48
- '[gds-element="gds-button"]'
44
+ void this._elRoot.then((el) => {
45
+ const firstFocusable = el?.querySelector(
46
+ 'li.item:not([inert]) [gds-element="gds-button"]'
49
47
  );
50
48
  if (firstFocusable) {
51
49
  firstFocusable.focus(options);
@@ -89,7 +87,6 @@ let GdsFormSummary = class extends GdsElement {
89
87
  border-color="negative-01"
90
88
  border-radius="m"
91
89
  overflow="hidden"
92
- aria-describedby="description"
93
90
  aria-label=${msg(`Form error summary`)}
94
91
  >
95
92
  <gds-flex gap="0" flex-direction="column">
@@ -137,6 +134,7 @@ _form = new WeakMap();
137
134
  _formObserver = new WeakMap();
138
135
  _GdsFormSummary_instances = new WeakSet();
139
136
  renderControlItem_fn = function(el) {
137
+ const label = el.dataset.label || el.label || el.ariaLabel;
140
138
  return html`<li
141
139
  class="item"
142
140
  ?inert=${!(el.ariaInvalid === "true" || el.invalid)}
@@ -155,20 +153,23 @@ renderControlItem_fn = function(el) {
155
153
  padding="xs s"
156
154
  @click=${(e) => {
157
155
  e.preventDefault();
158
- el.focus();
156
+ const proceed = this.dispatchCustomEvent("gds-control-focus", {
157
+ detail: { control: el },
158
+ bubbles: false,
159
+ composed: false
160
+ });
161
+ if (proceed) el.focus();
159
162
  }}
160
163
  >
161
164
  <div>
162
- <gds-div font-weight="book"
163
- >${el.dataset.label || el.label || el.ariaLabel}</gds-div
164
- >
165
+ <gds-div font-weight="book">${label}</gds-div>
165
166
  </div>
166
167
  <gds-button
167
168
  size="xs"
168
169
  rank="secondary"
169
- label=${`Move focus to ${el.label} field`}
170
+ label=${msg(str`Move focus to ${label} field`)}
170
171
  >
171
- ${until(__privateMethod(this, _GdsFormSummary_instances, renderArrowIcon_fn).call(this, el), nothing)}
172
+ ${__privateMethod(this, _GdsFormSummary_instances, renderArrowIcon_fn).call(this, el)}
172
173
  </gds-button>
173
174
  </gds-card>
174
175
  </li>`;
@@ -204,10 +205,10 @@ getErrorControls_fn = function() {
204
205
  (el) => el.ariaInvalid === "true" || el.invalid
205
206
  );
206
207
  };
207
- renderArrowIcon_fn = async function(el) {
208
- const selfTop = (await this._elRoot).getBoundingClientRect().top;
209
- const elTop = el.getBoundingClientRect().top;
210
- const isAbove = elTop < selfTop;
208
+ renderArrowIcon_fn = function(el) {
209
+ const isAbove = Boolean(
210
+ this.compareDocumentPosition(el) & Node.DOCUMENT_POSITION_PRECEDING
211
+ );
211
212
  return when(
212
213
  isAbove,
213
214
  () => html`<gds-icon-arrow-up></gds-icon-arrow-up>`,