@sebgroup/green-core 3.31.0 → 3.32.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.
- package/components/dropdown/dropdown.component.d.ts +1 -0
- package/components/dropdown/dropdown.component.js +23 -4
- package/components/form-summary/summary.component.d.ts +3 -0
- package/components/form-summary/summary.component.js +17 -16
- package/custom-elements.json +11806 -11785
- package/gds-element.js +1 -1
- package/generated/locales/da.d.ts +5 -0
- package/generated/locales/da.js +5 -0
- package/generated/locales/de.d.ts +5 -0
- package/generated/locales/de.js +5 -0
- package/generated/locales/fi.d.ts +5 -0
- package/generated/locales/fi.js +5 -0
- package/generated/locales/fr.d.ts +5 -0
- package/generated/locales/fr.js +5 -0
- package/generated/locales/it.d.ts +5 -0
- package/generated/locales/it.js +5 -0
- package/generated/locales/nl.d.ts +5 -0
- package/generated/locales/nl.js +5 -0
- package/generated/locales/no.d.ts +5 -0
- package/generated/locales/no.js +5 -0
- package/generated/locales/sv.d.ts +5 -0
- package/generated/locales/sv.js +5 -0
- package/generated/mcp/alert/guidelines.md +105 -0
- package/generated/mcp/alert/index.json +1 -0
- package/generated/mcp/avatar/guidelines.md +40 -0
- package/generated/mcp/avatar/index.json +1 -0
- package/generated/mcp/badge/guidelines.md +56 -0
- package/generated/mcp/badge/index.json +1 -0
- package/generated/mcp/blur/guidelines.md +3 -0
- package/generated/mcp/blur/index.json +1 -0
- package/generated/mcp/breadcrumbs/guidelines.md +35 -0
- package/generated/mcp/breadcrumbs/index.json +1 -0
- package/generated/mcp/button/guidelines.md +83 -0
- package/generated/mcp/button/index.json +1 -0
- package/generated/mcp/calendar/guidelines.md +3 -0
- package/generated/mcp/calendar/index.json +1 -0
- package/generated/mcp/card/guidelines.md +78 -0
- package/generated/mcp/card/index.json +1 -0
- package/generated/mcp/card-pattern-01/guidelines.md +52 -0
- package/generated/mcp/card-pattern-01/index.json +1 -0
- package/generated/mcp/checkbox/guidelines.md +91 -0
- package/generated/mcp/checkbox/index.json +1 -0
- package/generated/mcp/coachmark/guidelines.md +8 -0
- package/generated/mcp/coachmark/index.json +1 -0
- package/generated/mcp/components.json +47 -1
- package/generated/mcp/context-menu/guidelines.md +33 -0
- package/generated/mcp/context-menu/index.json +1 -0
- package/generated/mcp/datepicker/guidelines.md +44 -0
- package/generated/mcp/datepicker/index.json +1 -0
- package/generated/mcp/details/guidelines.md +24 -0
- package/generated/mcp/details/index.json +1 -0
- package/generated/mcp/dialog/guidelines.md +35 -0
- package/generated/mcp/dialog/index.json +1 -0
- package/generated/mcp/div/guidelines.md +3 -0
- package/generated/mcp/div/index.json +1 -0
- package/generated/mcp/divider/guidelines.md +24 -0
- package/generated/mcp/divider/index.json +1 -0
- package/generated/mcp/dropdown/guidelines.md +96 -0
- package/generated/mcp/dropdown/index.json +1 -0
- package/generated/mcp/fab/guidelines.md +27 -0
- package/generated/mcp/fab/index.json +1 -0
- package/generated/mcp/filter-chips/guidelines.md +47 -0
- package/generated/mcp/filter-chips/index.json +1 -0
- package/generated/mcp/flex/guidelines.md +1 -0
- package/generated/mcp/flex/index.json +1 -0
- package/generated/mcp/form-summary/angular.md +8 -0
- package/generated/mcp/form-summary/api.md +7 -0
- package/generated/mcp/form-summary/guidelines.md +39 -0
- package/generated/mcp/form-summary/index.json +1 -0
- package/generated/mcp/form-summary/react.md +8 -0
- package/generated/mcp/grid/guidelines.md +3 -0
- package/generated/mcp/grid/index.json +1 -0
- package/generated/mcp/icons.json +1 -1
- package/generated/mcp/index.json +1 -1
- package/generated/mcp/input/guidelines.md +127 -0
- package/generated/mcp/input/index.json +1 -0
- package/generated/mcp/link/guidelines.md +43 -0
- package/generated/mcp/link/index.json +1 -0
- package/generated/mcp/list/guidelines.md +16 -0
- package/generated/mcp/list/index.json +1 -0
- package/generated/mcp/list-item-pattern-01/guidelines.md +49 -0
- package/generated/mcp/list-item-pattern-01/index.json +1 -0
- package/generated/mcp/menu-button/guidelines.md +39 -0
- package/generated/mcp/menu-button/index.json +1 -0
- package/generated/mcp/pagination/guidelines.md +24 -0
- package/generated/mcp/pagination/index.json +1 -0
- package/generated/mcp/popover/guidelines.md +3 -0
- package/generated/mcp/popover/index.json +1 -0
- package/generated/mcp/progress/guidelines.md +42 -0
- package/generated/mcp/progress/index.json +1 -0
- package/generated/mcp/radio/guidelines.md +74 -0
- package/generated/mcp/radio/index.json +1 -0
- package/generated/mcp/rich-text/guidelines.md +3 -0
- package/generated/mcp/rich-text/index.json +1 -0
- package/generated/mcp/segmented-control/guidelines.md +31 -0
- package/generated/mcp/segmented-control/index.json +1 -0
- package/generated/mcp/select/guidelines.md +29 -0
- package/generated/mcp/select/index.json +1 -0
- package/generated/mcp/signal/guidelines.md +14 -0
- package/generated/mcp/signal/index.json +1 -0
- package/generated/mcp/slider/guidelines.md +86 -0
- package/generated/mcp/slider/index.json +1 -0
- package/generated/mcp/spinner/guidelines.md +6 -0
- package/generated/mcp/spinner/index.json +1 -0
- package/generated/mcp/switch/guidelines.md +41 -0
- package/generated/mcp/switch/index.json +1 -0
- package/generated/mcp/table/guidelines.md +169 -0
- package/generated/mcp/table/index.json +1 -0
- package/generated/mcp/tabs/guidelines.md +64 -0
- package/generated/mcp/tabs/index.json +1 -0
- package/generated/mcp/text/guidelines.md +3 -0
- package/generated/mcp/text/index.json +1 -0
- package/generated/mcp/textarea/guidelines.md +73 -0
- package/generated/mcp/textarea/index.json +1 -0
- package/generated/mcp/theme/guidelines.md +3 -0
- package/generated/mcp/theme/index.json +1 -0
- package/generated/mcp/tokens.json +1 -1
- package/generated/mcp/tooltip/guidelines.md +107 -0
- package/generated/mcp/tooltip/index.json +1 -0
- package/generated/mcp/video/guidelines.md +3 -0
- package/generated/mcp/video/index.json +1 -0
- package/generated/react/form-summary/index.d.ts +6 -1
- package/generated/react/index.d.ts +4 -4
- package/generated/react/index.js +4 -4
- package/package.json +1 -1
- package/utils/helpers/custom-element-scoping.js +1 -1
|
@@ -132,6 +132,7 @@ declare class Dropdown extends GdsFormControlElement implements OptionsContainer
|
|
|
132
132
|
get navigableItems(): GdsOption[];
|
|
133
133
|
private _elTriggerBtn;
|
|
134
134
|
private _elSearchInput;
|
|
135
|
+
private _elListbox;
|
|
135
136
|
connectedCallback(): void;
|
|
136
137
|
disconnectedCallback(): void;
|
|
137
138
|
render(): any;
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
__privateMethod,
|
|
6
6
|
__privateSet
|
|
7
7
|
} from "../../chunks/chunk.H2T4A5YY.js";
|
|
8
|
-
var _optionElements, _Dropdown_instances, shouldShowFooter_fn, _renderCombobox, _renderTriggerButton, _handleBlur, _calcMaxHeight, _dispatchUISateEvent, _handlePopoverStateChange, _handleClearButton, _handleSearchFieldInput, _handleSearchFieldKeyDown, _handleListboxKeyDown, _handleOptionFocusChange, _handleOptionSelect, toggleOptionValue_fn, syncOptionSelection_fn, _focusListbox, _isPointerPressedInListbox, _handleListboxPointerDown, _handleListboxFocus, _isCommitting, commitSelection_fn, registerAutoCloseListener_fn, unregisterAutoCloseListener_fn, _blurCloseListener, _tabCloseListener;
|
|
8
|
+
var _optionElements, _Dropdown_instances, shouldShowFooter_fn, _renderCombobox, _renderTriggerButton, _handleBlur, _calcMaxHeight, _dispatchUISateEvent, _handlePopoverStateChange, _handleClearButton, _handleSearchFieldInput, _handleSearchFieldKeyDown, _handleListboxKeyDown, _handleOptionFocusChange, _handleOptionSelect, toggleOptionValue_fn, syncOptionSelection_fn, _focusListbox, _isPointerPressedInListbox, _handleListboxPointerDown, _handleListboxFocus, _isCommitting, commitSelection_fn, scrollOptionIntoView_fn, registerAutoCloseListener_fn, unregisterAutoCloseListener_fn, _blurCloseListener, _tabCloseListener;
|
|
9
9
|
import { localized, msg, str } from "@lit/localize";
|
|
10
10
|
import { nothing } from "lit";
|
|
11
11
|
import { property, query } from "lit/decorators.js";
|
|
@@ -162,6 +162,8 @@ let Dropdown = class extends GdsFormControlElement {
|
|
|
162
162
|
}
|
|
163
163
|
if (__privateGet(this, _dispatchUISateEvent).call(this, e.detail.open, e.detail.reason)) {
|
|
164
164
|
this.open = e.detail.open;
|
|
165
|
+
} else {
|
|
166
|
+
e.preventDefault();
|
|
165
167
|
}
|
|
166
168
|
});
|
|
167
169
|
__privateAdd(this, _handleClearButton, (e) => {
|
|
@@ -535,9 +537,7 @@ let Dropdown = class extends GdsFormControlElement {
|
|
|
535
537
|
const selectedOption = this.options.find((option) => option.selected);
|
|
536
538
|
requestAnimationFrame(async () => {
|
|
537
539
|
await this.updateComplete;
|
|
538
|
-
selectedOption
|
|
539
|
-
block: "center"
|
|
540
|
-
});
|
|
540
|
+
__privateMethod(this, _Dropdown_instances, scrollOptionIntoView_fn).call(this, selectedOption);
|
|
541
541
|
});
|
|
542
542
|
}
|
|
543
543
|
};
|
|
@@ -605,6 +605,22 @@ commitSelection_fn = function(value, options = {}) {
|
|
|
605
605
|
__privateSet(this, _isCommitting, false);
|
|
606
606
|
}
|
|
607
607
|
};
|
|
608
|
+
/**
|
|
609
|
+
* Centers an option inside the listbox container by adjusting the container's own
|
|
610
|
+
* `scrollTop`. `Element.scrollIntoView` was used here previously, but it also scrolls
|
|
611
|
+
* ancestor scrollports, including the window when the popover is non-modal (combobox
|
|
612
|
+
* mode). That self-inflicted page scroll closes the popover through its own
|
|
613
|
+
* scroll-to-close behavior. See #3290.
|
|
614
|
+
*/
|
|
615
|
+
scrollOptionIntoView_fn = function(option) {
|
|
616
|
+
const container = this._elListbox;
|
|
617
|
+
if (!container || !option) return;
|
|
618
|
+
const containerRect = container.getBoundingClientRect();
|
|
619
|
+
const optionRect = option.getBoundingClientRect();
|
|
620
|
+
const offsetFromContainerTop = optionRect.top - containerRect.top;
|
|
621
|
+
const centeredOffset = (containerRect.height - optionRect.height) / 2;
|
|
622
|
+
container.scrollTop += offsetFromContainerTop - centeredOffset;
|
|
623
|
+
};
|
|
608
624
|
registerAutoCloseListener_fn = function() {
|
|
609
625
|
this.addEventListener("blur", __privateGet(this, _blurCloseListener));
|
|
610
626
|
this.addEventListener("gds-blur", __privateGet(this, _blurCloseListener));
|
|
@@ -678,6 +694,9 @@ __decorateClass([
|
|
|
678
694
|
__decorateClass([
|
|
679
695
|
query("#searchinput")
|
|
680
696
|
], Dropdown.prototype, "_elSearchInput", 2);
|
|
697
|
+
__decorateClass([
|
|
698
|
+
query("#listbox")
|
|
699
|
+
], Dropdown.prototype, "_elListbox", 2);
|
|
681
700
|
__decorateClass([
|
|
682
701
|
observeLightDOM({
|
|
683
702
|
attributes: true,
|
|
@@ -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
|
|
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
|
-
|
|
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 ${
|
|
170
|
+
label=${msg(str`Move focus to ${label} field`)}
|
|
170
171
|
>
|
|
171
|
-
${
|
|
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 =
|
|
208
|
-
const
|
|
209
|
-
|
|
210
|
-
|
|
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>`,
|