@govtechsg/sgds-web-component 3.28.1-rc.0 → 3.29.1-rc.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.
- package/base/button.js +1 -1
- package/base/button.js.map +1 -1
- package/base/dropdown-list-element.d.ts +3 -3
- package/base/dropdown-list-element.js.map +1 -1
- package/components/Alert/alert.js +1 -1
- package/components/Alert/alert.js.map +1 -1
- package/components/Alert/index.umd.min.js +3 -3
- package/components/Alert/index.umd.min.js.map +1 -1
- package/components/Alert/sgds-alert.js +1 -1
- package/components/Alert/sgds-alert.js.map +1 -1
- package/components/Appnav/index.umd.min.js +3 -3
- package/components/Appnav/index.umd.min.js.map +1 -1
- package/components/Appnav/sgds-appnav.js +1 -1
- package/components/Appnav/sgds-appnav.js.map +1 -1
- package/components/Badge/index.umd.min.js +1 -1
- package/components/Badge/index.umd.min.js.map +1 -1
- package/components/Breadcrumb/index.umd.min.js +3 -3
- package/components/Breadcrumb/index.umd.min.js.map +1 -1
- package/components/Breadcrumb/sgds-breadcrumb.js +2 -2
- package/components/Breadcrumb/sgds-breadcrumb.js.map +1 -1
- package/components/Button/index.umd.min.js +2 -2
- package/components/Button/index.umd.min.js.map +1 -1
- package/components/Button/sgds-button.js +1 -1
- package/components/Button/sgds-button.js.map +1 -1
- package/components/Checkbox/index.umd.min.js +3 -2
- package/components/Checkbox/index.umd.min.js.map +1 -1
- package/components/Checkbox/sgds-checkbox.d.ts +2 -0
- package/components/Checkbox/sgds-checkbox.js +3 -0
- package/components/Checkbox/sgds-checkbox.js.map +1 -1
- package/components/CloseButton/close-button.js +1 -1
- package/components/CloseButton/close-button.js.map +1 -1
- package/components/CloseButton/index.umd.min.js +1 -1
- package/components/CloseButton/index.umd.min.js.map +1 -1
- package/components/ComboBox/combo-box.js +1 -1
- package/components/ComboBox/combo-box.js.map +1 -1
- package/components/ComboBox/index.umd.min.js +30 -20
- package/components/ComboBox/index.umd.min.js.map +1 -1
- package/components/ComboBox/sgds-combo-box.d.ts +23 -2
- package/components/ComboBox/sgds-combo-box.js +95 -4
- package/components/ComboBox/sgds-combo-box.js.map +1 -1
- package/components/ComboBox/types.d.ts +3 -0
- package/components/DataTable/data-table.js +1 -1
- package/components/DataTable/data-table.js.map +1 -1
- package/components/DataTable/index.umd.min.js +20 -11
- package/components/DataTable/index.umd.min.js.map +1 -1
- package/components/DataTable/sgds-data-table-row.js +12 -4
- package/components/DataTable/sgds-data-table-row.js.map +1 -1
- package/components/DataTable/sgds-data-table.js +1 -2
- package/components/DataTable/sgds-data-table.js.map +1 -1
- package/components/Datepicker/index.umd.min.js +3 -2
- package/components/Datepicker/index.umd.min.js.map +1 -1
- package/components/Drawer/index.umd.min.js +1 -1
- package/components/Drawer/index.umd.min.js.map +1 -1
- package/components/Dropdown/index.umd.min.js +1 -1
- package/components/Dropdown/index.umd.min.js.map +1 -1
- package/components/Dropdown/sgds-dropdown.js +1 -1
- package/components/Dropdown/sgds-dropdown.js.map +1 -1
- package/components/FileUpload/index.umd.min.js +3 -3
- package/components/FileUpload/index.umd.min.js.map +1 -1
- package/components/IconButton/index.umd.min.js +1 -1
- package/components/IconButton/index.umd.min.js.map +1 -1
- package/components/Input/index.umd.min.js +1 -0
- package/components/Input/index.umd.min.js.map +1 -1
- package/components/Input/sgds-input.js +1 -0
- package/components/Input/sgds-input.js.map +1 -1
- package/components/Mainnav/index.umd.min.js +3 -3
- package/components/Mainnav/index.umd.min.js.map +1 -1
- package/components/Mainnav/sgds-mainnav.js +1 -1
- package/components/Mainnav/sgds-mainnav.js.map +1 -1
- package/components/Modal/index.umd.min.js +3 -3
- package/components/Modal/index.umd.min.js.map +1 -1
- package/components/Modal/modal.js +1 -1
- package/components/Modal/modal.js.map +1 -1
- package/components/Modal/sgds-modal.js +1 -1
- package/components/Modal/sgds-modal.js.map +1 -1
- package/components/OverflowMenu/index.umd.min.js +1 -1
- package/components/OverflowMenu/index.umd.min.js.map +1 -1
- package/components/Pagination/index.umd.min.js +2 -2
- package/components/Pagination/index.umd.min.js.map +1 -1
- package/components/QuantityToggle/index.umd.min.js +2 -1
- package/components/QuantityToggle/index.umd.min.js.map +1 -1
- package/components/Select/index.umd.min.js +1 -1
- package/components/Select/index.umd.min.js.map +1 -1
- package/components/Select/sgds-select.js +1 -1
- package/components/Select/sgds-select.js.map +1 -1
- package/components/Sidebar/index.umd.min.js +1 -1
- package/components/Sidebar/index.umd.min.js.map +1 -1
- package/components/Sidenav/index.umd.min.js +1 -1
- package/components/Sidenav/index.umd.min.js.map +1 -1
- package/components/Sidenav/sgds-sidenav.js +1 -1
- package/components/Sidenav/sgds-sidenav.js.map +1 -1
- package/components/SystemBanner/index.umd.min.js +4 -2
- package/components/SystemBanner/index.umd.min.js.map +1 -1
- package/components/SystemBanner/sgds-system-banner.js +2 -0
- package/components/SystemBanner/sgds-system-banner.js.map +1 -1
- package/components/Toast/index.umd.min.js +1 -1
- package/components/Toast/index.umd.min.js.map +1 -1
- package/components/index.umd.min.js +78 -57
- package/components/index.umd.min.js.map +1 -1
- package/custom-elements.json +174 -34
- package/index.umd.min.js +731 -710
- package/index.umd.min.js.map +1 -1
- package/package.json +1 -1
- package/react/base/button.cjs.js +1 -1
- package/react/base/button.cjs.js.map +1 -1
- package/react/base/button.js +1 -1
- package/react/base/button.js.map +1 -1
- package/react/base/dropdown-list-element.cjs.js.map +1 -1
- package/react/base/dropdown-list-element.js.map +1 -1
- package/react/combo-box/index.cjs.js +1 -0
- package/react/combo-box/index.cjs.js.map +1 -1
- package/react/combo-box/index.js +1 -0
- package/react/combo-box/index.js.map +1 -1
- package/react/components/Alert/alert.cjs.js +1 -1
- package/react/components/Alert/alert.cjs.js.map +1 -1
- package/react/components/Alert/alert.js +1 -1
- package/react/components/Alert/alert.js.map +1 -1
- package/react/components/Alert/sgds-alert.cjs.js +1 -1
- package/react/components/Alert/sgds-alert.cjs.js.map +1 -1
- package/react/components/Alert/sgds-alert.js +1 -1
- package/react/components/Alert/sgds-alert.js.map +1 -1
- package/react/components/Appnav/sgds-appnav.cjs.js +1 -1
- package/react/components/Appnav/sgds-appnav.cjs.js.map +1 -1
- package/react/components/Appnav/sgds-appnav.js +1 -1
- package/react/components/Appnav/sgds-appnav.js.map +1 -1
- package/react/components/Breadcrumb/sgds-breadcrumb.cjs.js +2 -2
- package/react/components/Breadcrumb/sgds-breadcrumb.cjs.js.map +1 -1
- package/react/components/Breadcrumb/sgds-breadcrumb.js +2 -2
- package/react/components/Breadcrumb/sgds-breadcrumb.js.map +1 -1
- package/react/components/Button/sgds-button.cjs.js +1 -1
- package/react/components/Button/sgds-button.cjs.js.map +1 -1
- package/react/components/Button/sgds-button.js +1 -1
- package/react/components/Button/sgds-button.js.map +1 -1
- package/react/components/Checkbox/sgds-checkbox.cjs.js +3 -0
- package/react/components/Checkbox/sgds-checkbox.cjs.js.map +1 -1
- package/react/components/Checkbox/sgds-checkbox.js +3 -0
- package/react/components/Checkbox/sgds-checkbox.js.map +1 -1
- package/react/components/CloseButton/close-button.cjs.js +1 -1
- package/react/components/CloseButton/close-button.cjs.js.map +1 -1
- package/react/components/CloseButton/close-button.js +1 -1
- package/react/components/CloseButton/close-button.js.map +1 -1
- package/react/components/ComboBox/combo-box.cjs.js +1 -1
- package/react/components/ComboBox/combo-box.cjs.js.map +1 -1
- package/react/components/ComboBox/combo-box.js +1 -1
- package/react/components/ComboBox/combo-box.js.map +1 -1
- package/react/components/ComboBox/sgds-combo-box.cjs.js +95 -4
- package/react/components/ComboBox/sgds-combo-box.cjs.js.map +1 -1
- package/react/components/ComboBox/sgds-combo-box.js +95 -4
- package/react/components/ComboBox/sgds-combo-box.js.map +1 -1
- package/react/components/DataTable/data-table.cjs.js +1 -1
- package/react/components/DataTable/data-table.cjs.js.map +1 -1
- package/react/components/DataTable/data-table.js +1 -1
- package/react/components/DataTable/data-table.js.map +1 -1
- package/react/components/DataTable/sgds-data-table-row.cjs.js +12 -4
- package/react/components/DataTable/sgds-data-table-row.cjs.js.map +1 -1
- package/react/components/DataTable/sgds-data-table-row.js +12 -4
- package/react/components/DataTable/sgds-data-table-row.js.map +1 -1
- package/react/components/DataTable/sgds-data-table.cjs.js +1 -2
- package/react/components/DataTable/sgds-data-table.cjs.js.map +1 -1
- package/react/components/DataTable/sgds-data-table.js +1 -2
- package/react/components/DataTable/sgds-data-table.js.map +1 -1
- package/react/components/Dropdown/sgds-dropdown.cjs.js +1 -1
- package/react/components/Dropdown/sgds-dropdown.cjs.js.map +1 -1
- package/react/components/Dropdown/sgds-dropdown.js +1 -1
- package/react/components/Dropdown/sgds-dropdown.js.map +1 -1
- package/react/components/Input/sgds-input.cjs.js +1 -0
- package/react/components/Input/sgds-input.cjs.js.map +1 -1
- package/react/components/Input/sgds-input.js +1 -0
- package/react/components/Input/sgds-input.js.map +1 -1
- package/react/components/Mainnav/sgds-mainnav.cjs.js +1 -1
- package/react/components/Mainnav/sgds-mainnav.cjs.js.map +1 -1
- package/react/components/Mainnav/sgds-mainnav.js +1 -1
- package/react/components/Mainnav/sgds-mainnav.js.map +1 -1
- package/react/components/Modal/modal.cjs.js +1 -1
- package/react/components/Modal/modal.cjs.js.map +1 -1
- package/react/components/Modal/modal.js +1 -1
- package/react/components/Modal/modal.js.map +1 -1
- package/react/components/Modal/sgds-modal.cjs.js +1 -1
- package/react/components/Modal/sgds-modal.cjs.js.map +1 -1
- package/react/components/Modal/sgds-modal.js +1 -1
- package/react/components/Modal/sgds-modal.js.map +1 -1
- package/react/components/Select/sgds-select.cjs.js +1 -1
- package/react/components/Select/sgds-select.cjs.js.map +1 -1
- package/react/components/Select/sgds-select.js +1 -1
- package/react/components/Select/sgds-select.js.map +1 -1
- package/react/components/Sidenav/sgds-sidenav.cjs.js +1 -1
- package/react/components/Sidenav/sgds-sidenav.cjs.js.map +1 -1
- package/react/components/Sidenav/sgds-sidenav.js +1 -1
- package/react/components/Sidenav/sgds-sidenav.js.map +1 -1
- package/react/components/SystemBanner/sgds-system-banner.cjs.js +2 -0
- package/react/components/SystemBanner/sgds-system-banner.cjs.js.map +1 -1
- package/react/components/SystemBanner/sgds-system-banner.js +2 -0
- package/react/components/SystemBanner/sgds-system-banner.js.map +1 -1
- package/themes/night.css +8 -8
- package/types/react.d.ts +9 -0
|
@@ -184,6 +184,7 @@ var SgdsInput = class extends SgdsFormValidatorMixin(FormControlElement) {
|
|
|
184
184
|
return html$1`<sgds-icon
|
|
185
185
|
tabIndex="0"
|
|
186
186
|
role="button"
|
|
187
|
+
aria-label=${this._showPassword ? "Hide password" : "Show password"}
|
|
187
188
|
name=${this._showPassword ? "eye-slash-fill" : "eye-fill"}
|
|
188
189
|
@click=${() => this._showPassword = !this._showPassword}
|
|
189
190
|
></sgds-icon>`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sgds-input.js","names":["formTextControlStyles","formPlaceholderStyles","inputStyle"],"sources":["../../../src/components/Input/sgds-input.ts"],"sourcesContent":["import { nothing } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { live } from \"lit/directives/live.js\";\nimport { html } from \"lit/static-html.js\";\nimport FormControlElement from \"../../base/form-control-element\";\nimport formPlaceholderStyles from \"../../styles/form-placeholder.css\";\nimport formTextControlStyles from \"../../styles/form-text-control.css\";\nimport { defaultValue } from \"../../utils/defaultvalue\";\nimport type { SgdsFormControl } from \"../../utils/formSubmitController\";\nimport { SgdsFormValidatorMixin } from \"../../utils/validatorMixin\";\nimport { watch } from \"../../utils/watch\";\nimport { SgdsSpinner } from \"../Spinner/sgds-spinner\";\nimport inputStyle from \"./input.css\";\nimport SgdsIcon from \"../Icon/sgds-icon\";\n/**\n * @summary Text inputs allow your users to enter letters, numbers and symbols on a single line.\n *\n * @slot icon - The slot for leading icon of text input\n * @slot trailing-icon - The slot for trailing icon of text input. When present, it overrides valid icon and loading spinner rendered when valid prop or loading prop are true\n * @slot action - The slot for call to action of the text input. It is recommended to use sgds-icon-button within this slot\n * @event sgds-change - Emitted when an alteration to the control's value is committed by the user.\n * @event sgds-input - Emitted when the control receives input and its value changes.\n * @event sgds-focus - Emitted when input is in focus.\n * @event sgds-blur - Emitted when input is not in focus.\n * @event sgds-invalid - Emitted when input is invalid\n * @event sgds-valid - Emitted when input is valid\n *\n */\nexport class SgdsInput extends SgdsFormValidatorMixin(FormControlElement) implements SgdsFormControl {\n static styles = [...FormControlElement.styles, formTextControlStyles, formPlaceholderStyles, inputStyle];\n /** @internal */\n static dependencies = {\n \"sgds-spinner\": SgdsSpinner,\n \"sgds-icon\": SgdsIcon\n };\n\n @property({ reflect: true }) type:\n | \"email\"\n | \"number\"\n | \"password\"\n | \"search\"\n | \"tel\"\n | \"text\"\n | \"time\"\n | \"url\"\n | \"datetime-local\" = \"text\";\n\n /** The prefix of the input */\n @property({ type: String }) prefix: string;\n\n /** The suffix of the input */\n @property({ type: String }) suffix: string;\n\n /** Sets the minimum length of the input */\n @property({ type: Number, reflect: true }) minlength: number;\n\n /** Sets the maximum length of the input */\n @property({ type: Number, reflect: true }) maxlength: number;\n\n /** The input's minimum value. Only applies number input types. */\n @property() min: number;\n\n /** The input's maximum value. Only applies number input types. */\n @property() max: number;\n\n /** The input's placeholder text. */\n @property({ type: String, reflect: true }) placeholder = \"placeholder\";\n\n /** A pattern to validate input against. */\n @property({ type: String }) pattern: string;\n\n /** Autofocus the input */\n @property({ type: Boolean, reflect: true }) autofocus = false;\n\n /** Makes the input readonly. */\n @property({ type: Boolean, reflect: true }) readonly = false;\n\n /** Controlling of autocomplete behaviour */\n @property({ type: String, reflect: true }) autocomplete = \"on\";\n\n /**\n * Specifies the granularity that the value must adhere to, or the special value `any` which means no stepping is\n * implied, allowing any numeric value. Only applies to number input types.\n */\n @property() step: number | \"any\";\n\n /** Allows invalidFeedback, invalid and valid styles to be visible with the input */\n @property({ type: String, reflect: true }) hasFeedback: \"style\" | \"text\" | \"both\";\n\n /**Feedback text for error state when validated */\n @property({ type: String, reflect: true }) invalidFeedback: string;\n\n /**Gets or sets the default value used to reset this element. The initial value corresponds to the one originally specified in the HTML that created this element. */\n @defaultValue()\n defaultValue = \"\";\n\n /** Marks the component as valid. */\n @property({ type: Boolean, reflect: true }) valid = false;\n\n /** Marks the component as loading. */\n @property({ type: Boolean, reflect: true }) loading = false;\n\n /** Makes the input a required field. */\n @property({ type: Boolean, reflect: true }) required = false;\n\n /** Disables native and sgds validation for the input. */\n @property({ type: Boolean, reflect: true }) noValidate = false;\n\n /**The input's value attribute. */\n @property({ reflect: true }) value = \"\";\n\n @state() protected _isTouched = false;\n\n @state() private _showPassword = false;\n\n /** Sets focus on the input. */\n public focus(options?: FocusOptions) {\n this.input.focus(options);\n }\n /** Sets blur on the input. */\n public blur() {\n this.input.blur();\n }\n\n /**\n * Checks for validity. Under the hood, HTMLFormElement's reportValidity method calls this method to check for component's validity state\n * Note that the native error popup is prevented for SGDS form components by default. Instead the validation message shows up in the feedback container of SgdsInput\n */\n public reportValidity(): boolean {\n return this._mixinReportValidity();\n }\n /**\n * Checks for validity without any native error popup message\n */\n public checkValidity(): boolean {\n return this._mixinCheckValidity();\n }\n /**\n * Checks for validity without any native error popup message\n */\n public setValidity(flags?: ValidityStateFlags, message?: string, anchor?: HTMLElement): void {\n return this._mixinSetValidity(flags, message, anchor);\n }\n\n /**\n * Returns the ValidityState object\n */\n public get validity(): ValidityState {\n return this._mixinGetValidity();\n }\n /**\n * Returns the validation message based on the ValidityState\n */\n public get validationMessage() {\n return this._mixinGetValidationMessage();\n }\n\n protected _handleFocus() {\n this.emit(\"sgds-focus\");\n }\n\n protected _handleBlur() {\n const sgdsBlur = this.emit(\"sgds-blur\", { cancelable: true });\n if (this._mixinShouldSkipSgdsValidation()) return;\n if (sgdsBlur.defaultPrevented) return;\n\n this.setInvalid(!this._mixinCheckValidity());\n this._isTouched = true;\n }\n private _handleClick() {\n this.focus();\n }\n\n protected _handleChange(e: Event) {\n this.value = this.input.value;\n const sgdsChange = this.emit(\"sgds-change\", { cancelable: true });\n\n if (sgdsChange.defaultPrevented) return;\n\n super._mixinHandleChange(e);\n }\n protected _handleInputChange(e: Event) {\n this.value = this.input.value;\n const sgdsInput = this.emit(\"sgds-input\", { cancelable: true });\n\n if (sgdsInput.defaultPrevented) return;\n\n super._mixinHandleInputChange(e);\n }\n /** @internal */\n @watch(\"_isTouched\", { waitUntilFirstUpdate: true })\n _handleIsTouched() {\n if (this._mixinShouldSkipSgdsValidation()) return;\n if (this._isTouched) {\n this.setInvalid(!this._mixinCheckValidity());\n }\n }\n @watch(\"disabled\", { waitUntilFirstUpdate: true })\n _handleDisabledChange() {\n // Disabled form controls are always valid, so we need to recheck validity when the state changes\n this.setInvalid(false);\n }\n\n protected _renderInput() {\n const wantFeedbackStyle = this.hasFeedback === \"both\" || this.hasFeedback === \"style\";\n const wantFeedbackText = this.hasFeedback === \"both\" || this.hasFeedback === \"text\";\n const ariaDescribedBy =\n [\n this.hintText ? `${this._controlId}Help` : \"\",\n this.invalid && wantFeedbackText ? `${this._controlId}-invalid` : \"\"\n ]\n .filter(Boolean)\n .join(\" \") || undefined;\n return html`\n <div\n class=\"form-control-group ${classMap({\n disabled: this.disabled,\n readonly: this.readonly,\n \"is-invalid\": this.invalid && wantFeedbackStyle\n })}\"\n @click=${this._handleClick}\n >\n <slot name=\"icon\"></slot>\n ${this.prefix ? html`<span class=\"form-control-prefix\">${this.prefix}</span>` : nothing}\n <input\n class=\"form-control\"\n type=${this._inputType()}\n id=${this._controlId}\n name=${ifDefined(this.name)}\n placeholder=${ifDefined(this.placeholder)}\n aria-invalid=${this.invalid ? \"true\" : \"false\"}\n pattern=${ifDefined(this.pattern)}\n ?autofocus=${this.autofocus}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?required=${this.required}\n .value=${live(this.value)}\n minlength=${ifDefined(this.minlength)}\n maxlength=${ifDefined(this.maxlength)}\n min=${ifDefined(this.min)}\n max=${ifDefined(this.max)}\n step=${ifDefined(this.step as number)}\n @input=${(e: Event) => this._handleInputChange(e)}\n @change=${(e: Event) => this._handleChange(e)}\n @invalid=${() => this.setInvalid(true)}\n @focus=${this._handleFocus}\n @blur=${this._handleBlur}\n aria-describedby=${ifDefined(ariaDescribedBy)}\n .autocomplete=${this.autocomplete}\n />\n ${this.type === \"password\" ? this._renderPasswordToggle() : nothing}\n ${this.suffix ? html`<span class=\"form-control-suffix\">${this.suffix}</span>` : nothing}\n <slot name=\"trailing-icon\">\n ${this.loading ? html`<sgds-spinner size=\"sm\"></sgds-spinner>` : nothing}\n ${this.valid ? html`<sgds-icon name=\"check-circle-fill\" class=\"valid-icon\"></sgds-icon>` : nothing}\n </slot>\n </div>\n `;\n }\n protected _renderPasswordToggle() {\n return html`<sgds-icon\n tabIndex=\"0\"\n role=\"button\"\n name=${this._showPassword ? \"eye-slash-fill\" : \"eye-fill\"}\n @click=${() => (this._showPassword = !this._showPassword)}\n ></sgds-icon>`;\n }\n protected _inputType() {\n if (this.type === \"password\" && this._showPassword) {\n return \"text\";\n }\n return this.type;\n }\n protected _renderFeedback() {\n const wantFeedbackText = this.hasFeedback === \"both\" || this.hasFeedback === \"text\";\n\n return this.invalid && wantFeedbackText\n ? html` <div class=\"invalid-feedback-container\">\n <sgds-icon name=\"exclamation-circle-fill\" size=\"md\"></sgds-icon>\n <div id=\"${this._controlId}-invalid\" class=\"invalid-feedback\">\n ${this.invalidFeedback ? this.invalidFeedback : this.input.validationMessage}\n </div>\n </div>`\n : html`${this._renderHintText()}`;\n }\n protected _renderLabel() {\n const labelTemplate = html`\n <label\n for=${this._controlId}\n id=${this._labelId}\n class=${classMap({\n \"form-label\": true,\n required: this.required\n })}\n >${this.label}</label\n >\n `;\n return this.label && labelTemplate;\n }\n protected _renderHintText() {\n const hintTextTemplate = html` <div id=\"${this._controlId}Help\" class=\"form-text\">${this.hintText}</div> `;\n return this.hintText && hintTextTemplate;\n }\n render() {\n return html`\n <div\n class=\"form-control-container ${classMap({\n disabled: this.disabled\n })}\"\n >\n ${this._renderLabel()}\n <div class=\"form-control-row\">\n ${this._renderInput()}\n <slot name=\"action\"></slot>\n </div>\n ${this._renderFeedback()}\n </div>\n `;\n }\n}\n\nexport default SgdsInput;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,IAAa,YAAb,cAA+B,uBAAuB,kBAAkB,CAAC,CAA4B;;;EAiB5E,KAAA,OAAA;EAqBkC,KAAA,cAAA;EAMD,KAAA,YAAA;EAGD,KAAA,WAAA;EAGG,KAAA,eAAA;EAgB3C,KAAA,eAAA;EAGqC,KAAA,QAAA;EAGE,KAAA,UAAA;EAGC,KAAA,WAAA;EAGE,KAAA,aAAA;EAGpB,KAAA,QAAA;EAEL,KAAA,aAAA;EAEC,KAAA,gBAAA;;;EApFjB,KAAA,SAAA;GAAC,GAAG,mBAAmB;GAAQA;GAAuBC;GAAuBC;EAAU;;;EAEjF,KAAA,eAAA;GACpB,gBAAgB;GAChB,aAAa;EACf;;;CAkFA,MAAa,SAAwB;EACnC,KAAK,MAAM,MAAM,OAAO;CAC1B;;CAEA,OAAc;EACZ,KAAK,MAAM,KAAK;CAClB;;;;;CAMA,iBAAiC;EAC/B,OAAO,KAAK,qBAAqB;CACnC;;;;CAIA,gBAAgC;EAC9B,OAAO,KAAK,oBAAoB;CAClC;;;;CAIA,YAAmB,OAA4B,SAAkB,QAA4B;EAC3F,OAAO,KAAK,kBAAkB,OAAO,SAAS,MAAM;CACtD;;;;CAKA,IAAW,WAA0B;EACnC,OAAO,KAAK,kBAAkB;CAChC;;;;CAIA,IAAW,oBAAoB;EAC7B,OAAO,KAAK,2BAA2B;CACzC;CAEA,eAAyB;EACvB,KAAK,KAAK,YAAY;CACxB;CAEA,cAAwB;EACtB,MAAM,WAAW,KAAK,KAAK,aAAa,EAAE,YAAY,KAAK,CAAC;EAC5D,IAAI,KAAK,+BAA+B,GAAG;EAC3C,IAAI,SAAS,kBAAkB;EAE/B,KAAK,WAAW,CAAC,KAAK,oBAAoB,CAAC;EAC3C,KAAK,aAAa;CACpB;CACA,eAAuB;EACrB,KAAK,MAAM;CACb;CAEA,cAAwB,GAAU;EAChC,KAAK,QAAQ,KAAK,MAAM;EAGxB,IAFmB,KAAK,KAAK,eAAe,EAAE,YAAY,KAAK,CAElD,CAAC,CAAC,kBAAkB;EAEjC,MAAM,mBAAmB,CAAC;CAC5B;CACA,mBAA6B,GAAU;EACrC,KAAK,QAAQ,KAAK,MAAM;EAGxB,IAFkB,KAAK,KAAK,cAAc,EAAE,YAAY,KAAK,CAEjD,CAAC,CAAC,kBAAkB;EAEhC,MAAM,wBAAwB,CAAC;CACjC;;CAEA,mBACmB;EACjB,IAAI,KAAK,+BAA+B,GAAG;EAC3C,IAAI,KAAK,YACP,KAAK,WAAW,CAAC,KAAK,oBAAoB,CAAC;CAE/C;CACA,wBACwB;EAEtB,KAAK,WAAW,KAAK;CACvB;CAEA,eAAyB;EACvB,MAAM,oBAAoB,KAAK,gBAAgB,UAAU,KAAK,gBAAgB;EAC9E,MAAM,mBAAmB,KAAK,gBAAgB,UAAU,KAAK,gBAAgB;EAC7E,MAAM,kBACJ,CACE,KAAK,WAAW,GAAG,KAAK,WAAW,QAAQ,IAC3C,KAAK,WAAW,mBAAmB,GAAG,KAAK,WAAW,YAAY,EACpE,CAAC,CACE,OAAO,OAAO,CAAC,CACf,KAAK,GAAG,KAAK,KAAA;EAClB,OAAO,MAAI;;oCAEqB,SAAS;GACnC,UAAU,KAAK;GACf,UAAU,KAAK;GACf,cAAc,KAAK,WAAW;EAChC,CAAC,EAAE;iBACM,KAAK,aAAa;;;UAGzB,KAAK,SAAS,MAAI,qCAAqC,KAAK,OAAO,WAAW,QAAQ;;;iBAG/E,KAAK,WAAW,EAAE;eACpB,KAAK,WAAW;iBACd,UAAU,KAAK,IAAI,EAAE;wBACd,UAAU,KAAK,WAAW,EAAE;yBAC3B,KAAK,UAAU,SAAS,QAAQ;oBACrC,UAAU,KAAK,OAAO,EAAE;uBACrB,KAAK,UAAU;sBAChB,KAAK,SAAS;sBACd,KAAK,SAAS;sBACd,KAAK,SAAS;mBACjB,KAAK,KAAK,KAAK,EAAE;sBACd,UAAU,KAAK,SAAS,EAAE;sBAC1B,UAAU,KAAK,SAAS,EAAE;gBAChC,UAAU,KAAK,GAAG,EAAE;gBACpB,UAAU,KAAK,GAAG,EAAE;iBACnB,UAAU,KAAK,IAAc,EAAE;oBAC5B,MAAa,KAAK,mBAAmB,CAAC,EAAE;qBACvC,MAAa,KAAK,cAAc,CAAC,EAAE;2BAC7B,KAAK,WAAW,IAAI,EAAE;mBAC9B,KAAK,aAAa;kBACnB,KAAK,YAAY;6BACN,UAAU,eAAe,EAAE;0BAC9B,KAAK,aAAa;;UAElC,KAAK,SAAS,aAAa,KAAK,sBAAsB,IAAI,QAAQ;UAClE,KAAK,SAAS,MAAI,qCAAqC,KAAK,OAAO,WAAW,QAAQ;;YAEpF,KAAK,UAAU,MAAI,4CAA4C,QAAQ;YACvE,KAAK,QAAQ,MAAI,wEAAwE,QAAQ;;;;CAI3G;CACA,wBAAkC;EAChC,OAAO,MAAI;;;aAGF,KAAK,gBAAgB,mBAAmB,WAAW;qBAC1C,KAAK,gBAAgB,CAAC,KAAK,cAAe;;CAE9D;CACA,aAAuB;EACrB,IAAI,KAAK,SAAS,cAAc,KAAK,eACnC,OAAO;EAET,OAAO,KAAK;CACd;CACA,kBAA4B;EAC1B,MAAM,mBAAmB,KAAK,gBAAgB,UAAU,KAAK,gBAAgB;EAE7E,OAAO,KAAK,WAAW,mBACnB,MAAI;;qBAES,KAAK,WAAW;cACvB,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,MAAM,kBAAkB;;kBAGjF,MAAI,GAAG,KAAK,gBAAgB;CAClC;CACA,eAAyB;EACvB,MAAM,gBAAgB,MAAI;;cAEhB,KAAK,WAAW;aACjB,KAAK,SAAS;gBACX,SAAS;GACf,cAAc;GACd,UAAU,KAAK;EACjB,CAAC,EAAE;WACA,KAAK,MAAM;;;EAGlB,OAAO,KAAK,SAAS;CACvB;CACA,kBAA4B;EAC1B,MAAM,mBAAmB,MAAI,aAAa,KAAK,WAAW,0BAA0B,KAAK,SAAS;EAClG,OAAO,KAAK,YAAY;CAC1B;CACA,SAAS;EACP,OAAO,MAAI;;wCAEyB,SAAS,EACvC,UAAU,KAAK,SACjB,CAAC,EAAE;;UAED,KAAK,aAAa,EAAE;;YAElB,KAAK,aAAa,EAAE;;;UAGtB,KAAK,gBAAgB,EAAE;;;CAG/B;AACF;AA3RG,WAAA,CAAA,SAAS,EAAE,SAAS,KAAK,CAAC,CAAA,GAAA,UAAA,WAAA,QAAA,KAAA,CAAA;AAY1B,WAAA,CAAA,SAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,UAAA,WAAA,UAAA,KAAA,CAAA;AAGzB,WAAA,CAAA,SAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,UAAA,WAAA,UAAA,KAAA,CAAA;AAGzB,WAAA,CAAA,SAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,UAAA,WAAA,aAAA,KAAA,CAAA;AAGxC,WAAA,CAAA,SAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,UAAA,WAAA,aAAA,KAAA,CAAA;AAGxC,WAAA,CAAA,SAAS,CAAA,GAAA,UAAA,WAAA,OAAA,KAAA,CAAA;AAGT,WAAA,CAAA,SAAS,CAAA,GAAA,UAAA,WAAA,OAAA,KAAA,CAAA;AAGT,WAAA,CAAA,SAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,UAAA,WAAA,eAAA,KAAA,CAAA;AAGxC,WAAA,CAAA,SAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,UAAA,WAAA,WAAA,KAAA,CAAA;AAGzB,WAAA,CAAA,SAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,UAAA,WAAA,aAAA,KAAA,CAAA;AAGzC,WAAA,CAAA,SAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,UAAA,WAAA,YAAA,KAAA,CAAA;AAGzC,WAAA,CAAA,SAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,UAAA,WAAA,gBAAA,KAAA,CAAA;AAMxC,WAAA,CAAA,SAAS,CAAA,GAAA,UAAA,WAAA,QAAA,KAAA,CAAA;AAGT,WAAA,CAAA,SAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,UAAA,WAAA,eAAA,KAAA,CAAA;AAGxC,WAAA,CAAA,SAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,UAAA,WAAA,mBAAA,KAAA,CAAA;AAGxC,WAAA,CAAA,aAAa,CAAA,GAAA,UAAA,WAAA,gBAAA,KAAA,CAAA;AAIb,WAAA,CAAA,SAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,UAAA,WAAA,SAAA,KAAA,CAAA;AAGzC,WAAA,CAAA,SAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,UAAA,WAAA,WAAA,KAAA,CAAA;AAGzC,WAAA,CAAA,SAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,UAAA,WAAA,YAAA,KAAA,CAAA;AAGzC,WAAA,CAAA,SAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,UAAA,WAAA,cAAA,KAAA,CAAA;AAGzC,WAAA,CAAA,SAAS,EAAE,SAAS,KAAK,CAAC,CAAA,GAAA,UAAA,WAAA,SAAA,KAAA,CAAA;AAE1B,WAAA,CAAA,MAAM,CAAA,GAAA,UAAA,WAAA,cAAA,KAAA,CAAA;AAEN,WAAA,CAAA,MAAM,CAAA,GAAA,UAAA,WAAA,iBAAA,KAAA,CAAA;AA6EN,WAAA,CAAA,MAAM,cAAc,EAAE,sBAAsB,KAAK,CAAC,CAAA,GAAA,UAAA,WAAA,oBAAA,IAAA;AAOlD,WAAA,CAAA,MAAM,YAAY,EAAE,sBAAsB,KAAK,CAAC,CAAA,GAAA,UAAA,WAAA,yBAAA,IAAA"}
|
|
1
|
+
{"version":3,"file":"sgds-input.js","names":["formTextControlStyles","formPlaceholderStyles","inputStyle"],"sources":["../../../src/components/Input/sgds-input.ts"],"sourcesContent":["import { nothing } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { live } from \"lit/directives/live.js\";\nimport { html } from \"lit/static-html.js\";\nimport FormControlElement from \"../../base/form-control-element\";\nimport formPlaceholderStyles from \"../../styles/form-placeholder.css\";\nimport formTextControlStyles from \"../../styles/form-text-control.css\";\nimport { defaultValue } from \"../../utils/defaultvalue\";\nimport type { SgdsFormControl } from \"../../utils/formSubmitController\";\nimport { SgdsFormValidatorMixin } from \"../../utils/validatorMixin\";\nimport { watch } from \"../../utils/watch\";\nimport { SgdsSpinner } from \"../Spinner/sgds-spinner\";\nimport inputStyle from \"./input.css\";\nimport SgdsIcon from \"../Icon/sgds-icon\";\n/**\n * @summary Text inputs allow your users to enter letters, numbers and symbols on a single line.\n *\n * @slot icon - The slot for leading icon of text input\n * @slot trailing-icon - The slot for trailing icon of text input. When present, it overrides valid icon and loading spinner rendered when valid prop or loading prop are true\n * @slot action - The slot for call to action of the text input. It is recommended to use sgds-icon-button within this slot\n * @event sgds-change - Emitted when an alteration to the control's value is committed by the user.\n * @event sgds-input - Emitted when the control receives input and its value changes.\n * @event sgds-focus - Emitted when input is in focus.\n * @event sgds-blur - Emitted when input is not in focus.\n * @event sgds-invalid - Emitted when input is invalid\n * @event sgds-valid - Emitted when input is valid\n *\n */\nexport class SgdsInput extends SgdsFormValidatorMixin(FormControlElement) implements SgdsFormControl {\n static styles = [...FormControlElement.styles, formTextControlStyles, formPlaceholderStyles, inputStyle];\n /** @internal */\n static dependencies = {\n \"sgds-spinner\": SgdsSpinner,\n \"sgds-icon\": SgdsIcon\n };\n\n @property({ reflect: true }) type:\n | \"email\"\n | \"number\"\n | \"password\"\n | \"search\"\n | \"tel\"\n | \"text\"\n | \"time\"\n | \"url\"\n | \"datetime-local\" = \"text\";\n\n /** The prefix of the input */\n @property({ type: String }) prefix: string;\n\n /** The suffix of the input */\n @property({ type: String }) suffix: string;\n\n /** Sets the minimum length of the input */\n @property({ type: Number, reflect: true }) minlength: number;\n\n /** Sets the maximum length of the input */\n @property({ type: Number, reflect: true }) maxlength: number;\n\n /** The input's minimum value. Only applies number input types. */\n @property() min: number;\n\n /** The input's maximum value. Only applies number input types. */\n @property() max: number;\n\n /** The input's placeholder text. */\n @property({ type: String, reflect: true }) placeholder = \"placeholder\";\n\n /** A pattern to validate input against. */\n @property({ type: String }) pattern: string;\n\n /** Autofocus the input */\n @property({ type: Boolean, reflect: true }) autofocus = false;\n\n /** Makes the input readonly. */\n @property({ type: Boolean, reflect: true }) readonly = false;\n\n /** Controlling of autocomplete behaviour */\n @property({ type: String, reflect: true }) autocomplete = \"on\";\n\n /**\n * Specifies the granularity that the value must adhere to, or the special value `any` which means no stepping is\n * implied, allowing any numeric value. Only applies to number input types.\n */\n @property() step: number | \"any\";\n\n /** Allows invalidFeedback, invalid and valid styles to be visible with the input */\n @property({ type: String, reflect: true }) hasFeedback: \"style\" | \"text\" | \"both\";\n\n /**Feedback text for error state when validated */\n @property({ type: String, reflect: true }) invalidFeedback: string;\n\n /**Gets or sets the default value used to reset this element. The initial value corresponds to the one originally specified in the HTML that created this element. */\n @defaultValue()\n defaultValue = \"\";\n\n /** Marks the component as valid. */\n @property({ type: Boolean, reflect: true }) valid = false;\n\n /** Marks the component as loading. */\n @property({ type: Boolean, reflect: true }) loading = false;\n\n /** Makes the input a required field. */\n @property({ type: Boolean, reflect: true }) required = false;\n\n /** Disables native and sgds validation for the input. */\n @property({ type: Boolean, reflect: true }) noValidate = false;\n\n /**The input's value attribute. */\n @property({ reflect: true }) value = \"\";\n\n @state() protected _isTouched = false;\n\n @state() private _showPassword = false;\n\n /** Sets focus on the input. */\n public focus(options?: FocusOptions) {\n this.input.focus(options);\n }\n /** Sets blur on the input. */\n public blur() {\n this.input.blur();\n }\n\n /**\n * Checks for validity. Under the hood, HTMLFormElement's reportValidity method calls this method to check for component's validity state\n * Note that the native error popup is prevented for SGDS form components by default. Instead the validation message shows up in the feedback container of SgdsInput\n */\n public reportValidity(): boolean {\n return this._mixinReportValidity();\n }\n /**\n * Checks for validity without any native error popup message\n */\n public checkValidity(): boolean {\n return this._mixinCheckValidity();\n }\n /**\n * Checks for validity without any native error popup message\n */\n public setValidity(flags?: ValidityStateFlags, message?: string, anchor?: HTMLElement): void {\n return this._mixinSetValidity(flags, message, anchor);\n }\n\n /**\n * Returns the ValidityState object\n */\n public get validity(): ValidityState {\n return this._mixinGetValidity();\n }\n /**\n * Returns the validation message based on the ValidityState\n */\n public get validationMessage() {\n return this._mixinGetValidationMessage();\n }\n\n protected _handleFocus() {\n this.emit(\"sgds-focus\");\n }\n\n protected _handleBlur() {\n const sgdsBlur = this.emit(\"sgds-blur\", { cancelable: true });\n if (this._mixinShouldSkipSgdsValidation()) return;\n if (sgdsBlur.defaultPrevented) return;\n\n this.setInvalid(!this._mixinCheckValidity());\n this._isTouched = true;\n }\n private _handleClick() {\n this.focus();\n }\n\n protected _handleChange(e: Event) {\n this.value = this.input.value;\n const sgdsChange = this.emit(\"sgds-change\", { cancelable: true });\n\n if (sgdsChange.defaultPrevented) return;\n\n super._mixinHandleChange(e);\n }\n protected _handleInputChange(e: Event) {\n this.value = this.input.value;\n const sgdsInput = this.emit(\"sgds-input\", { cancelable: true });\n\n if (sgdsInput.defaultPrevented) return;\n\n super._mixinHandleInputChange(e);\n }\n /** @internal */\n @watch(\"_isTouched\", { waitUntilFirstUpdate: true })\n _handleIsTouched() {\n if (this._mixinShouldSkipSgdsValidation()) return;\n if (this._isTouched) {\n this.setInvalid(!this._mixinCheckValidity());\n }\n }\n @watch(\"disabled\", { waitUntilFirstUpdate: true })\n _handleDisabledChange() {\n // Disabled form controls are always valid, so we need to recheck validity when the state changes\n this.setInvalid(false);\n }\n\n protected _renderInput() {\n const wantFeedbackStyle = this.hasFeedback === \"both\" || this.hasFeedback === \"style\";\n const wantFeedbackText = this.hasFeedback === \"both\" || this.hasFeedback === \"text\";\n const ariaDescribedBy =\n [\n this.hintText ? `${this._controlId}Help` : \"\",\n this.invalid && wantFeedbackText ? `${this._controlId}-invalid` : \"\"\n ]\n .filter(Boolean)\n .join(\" \") || undefined;\n return html`\n <div\n class=\"form-control-group ${classMap({\n disabled: this.disabled,\n readonly: this.readonly,\n \"is-invalid\": this.invalid && wantFeedbackStyle\n })}\"\n @click=${this._handleClick}\n >\n <slot name=\"icon\"></slot>\n ${this.prefix ? html`<span class=\"form-control-prefix\">${this.prefix}</span>` : nothing}\n <input\n class=\"form-control\"\n type=${this._inputType()}\n id=${this._controlId}\n name=${ifDefined(this.name)}\n placeholder=${ifDefined(this.placeholder)}\n aria-invalid=${this.invalid ? \"true\" : \"false\"}\n pattern=${ifDefined(this.pattern)}\n ?autofocus=${this.autofocus}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?required=${this.required}\n .value=${live(this.value)}\n minlength=${ifDefined(this.minlength)}\n maxlength=${ifDefined(this.maxlength)}\n min=${ifDefined(this.min)}\n max=${ifDefined(this.max)}\n step=${ifDefined(this.step as number)}\n @input=${(e: Event) => this._handleInputChange(e)}\n @change=${(e: Event) => this._handleChange(e)}\n @invalid=${() => this.setInvalid(true)}\n @focus=${this._handleFocus}\n @blur=${this._handleBlur}\n aria-describedby=${ifDefined(ariaDescribedBy)}\n .autocomplete=${this.autocomplete}\n />\n ${this.type === \"password\" ? this._renderPasswordToggle() : nothing}\n ${this.suffix ? html`<span class=\"form-control-suffix\">${this.suffix}</span>` : nothing}\n <slot name=\"trailing-icon\">\n ${this.loading ? html`<sgds-spinner size=\"sm\"></sgds-spinner>` : nothing}\n ${this.valid ? html`<sgds-icon name=\"check-circle-fill\" class=\"valid-icon\"></sgds-icon>` : nothing}\n </slot>\n </div>\n `;\n }\n protected _renderPasswordToggle() {\n return html`<sgds-icon\n tabIndex=\"0\"\n role=\"button\"\n aria-label=${this._showPassword ? \"Hide password\" : \"Show password\"}\n name=${this._showPassword ? \"eye-slash-fill\" : \"eye-fill\"}\n @click=${() => (this._showPassword = !this._showPassword)}\n ></sgds-icon>`;\n }\n protected _inputType() {\n if (this.type === \"password\" && this._showPassword) {\n return \"text\";\n }\n return this.type;\n }\n protected _renderFeedback() {\n const wantFeedbackText = this.hasFeedback === \"both\" || this.hasFeedback === \"text\";\n\n return this.invalid && wantFeedbackText\n ? html` <div class=\"invalid-feedback-container\">\n <sgds-icon name=\"exclamation-circle-fill\" size=\"md\"></sgds-icon>\n <div id=\"${this._controlId}-invalid\" class=\"invalid-feedback\">\n ${this.invalidFeedback ? this.invalidFeedback : this.input.validationMessage}\n </div>\n </div>`\n : html`${this._renderHintText()}`;\n }\n protected _renderLabel() {\n const labelTemplate = html`\n <label\n for=${this._controlId}\n id=${this._labelId}\n class=${classMap({\n \"form-label\": true,\n required: this.required\n })}\n >${this.label}</label\n >\n `;\n return this.label && labelTemplate;\n }\n protected _renderHintText() {\n const hintTextTemplate = html` <div id=\"${this._controlId}Help\" class=\"form-text\">${this.hintText}</div> `;\n return this.hintText && hintTextTemplate;\n }\n render() {\n return html`\n <div\n class=\"form-control-container ${classMap({\n disabled: this.disabled\n })}\"\n >\n ${this._renderLabel()}\n <div class=\"form-control-row\">\n ${this._renderInput()}\n <slot name=\"action\"></slot>\n </div>\n ${this._renderFeedback()}\n </div>\n `;\n }\n}\n\nexport default SgdsInput;\n"],"mappings":"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"}
|
|
@@ -116,7 +116,7 @@ let rt={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},it
|
|
|
116
116
|
* Copyright 2020 Google LLC
|
|
117
117
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
118
118
|
*/
|
|
119
|
-
let bt=Symbol.for(``),xt=e=>{if(e?.r===bt)return e?._$litStatic$},St=(e,...t)=>({_$litStatic$:t.reduce((t,n,r)=>t+(e=>{if(e._$litStatic$!==void 0)return e._$litStatic$;throw Error(`Value passed to 'literal' function must be a 'literal' result: ${e}. Use 'unsafeStatic' to pass non-literal values, but\n take care to ensure page security.`)})(n)+e[r+1],e[0]),r:bt}),Ct=/* @__PURE__ */ new Map,wt=(e=>(t,...n)=>{let r=n.length,i,a,o=[],s=[],c,l=0,u=!1;for(;l<r;){for(c=t[l];l<r&&(a=n[l],(i=xt(a))!==void 0);)c+=i+t[++l],u=!0;l!==r&&s.push(a),o.push(c),l++}if(l===r&&o.push(t[r]),u){let e=o.join(`$$lit$$`);(t=Ct.get(e))===void 0&&(o.raw=o,Ct.set(e,t=o)),n=s}return e(t,...n)})(T);A();var Tt=_`:host{--btn-font-weight:var(--sgds-font-weight-regular);--btn-color:var(--sgds-color-fixed-light);--btn-bg:var(--sgds-primary-surface-default);--btn-hover-bg:var(--sgds-primary-surface-emphasis);--btn-border-radius:var(--sgds-border-radius-md);--btn-opacity:var(--sgds-opacity-100,1)}:host([variant=danger]){--btn-bg:var(--sgds-danger-surface-default);--btn-hover-bg:var(--sgds-danger-surface-emphasis);--btn-color:var(--sgds-color-fixed-light)}:host([variant=primary][tone=brand]){--btn-bg:var(--sgds-primary-surface-default);--btn-color:var(--sgds-color-fixed-light)}:host([variant=outline]){--btn-border-width:var(--sgds-border-width-1)}:host([variant=outline][tone=brand]){--btn-border-color:var(--sgds-primary-border-color-default);--btn-bg:var(--sgds-bg-transparent);--btn-color:var(--sgds-primary-color-default);--btn-hover-bg:var(--sgds-primary-bg-translucent)}:host([variant=ghost][tone=brand]){--btn-bg:var(--sgds-bg-transparent);--btn-hover-bg:var(--sgds-primary-surface-translucent);--btn-color:var(--sgds-primary-color-default)}:host([variant=primary][tone=danger]){--btn-bg:var(--sgds-danger-surface-default);--btn-hover-bg:var(--sgds-danger-surface-emphasis);--btn-color:var(--sgds-color-fixed-light)}:host([variant=outline][tone=danger]){--btn-border-color:var(--sgds-danger-border-color-default);--btn-bg:var(--sgds-bg-transparent);--btn-hover-bg:var(--sgds-danger-surface-translucent);--btn-color:var(--sgds-danger-color-default)}:host([variant=ghost][tone=danger]){--btn-bg:var(--sgds-bg-transparent);--btn-hover-bg:var(--sgds-danger-surface-translucent);--btn-color:var(--sgds-danger-color-default)}:host([variant=primary][tone=fixed-light]){--btn-bg:var(--sgds-surface-fixed-light);--btn-hover-bg:linear-gradient(0deg,var(--sgds-bg-translucent-fixed-dark,hsla(0,0%,5%,.2)) 0%,var(--sgds-bg-translucent-fixed-dark,hsla(0,0%,5%,.2)) 100%),var(--sgds-surface-fixed-light,#fff);--btn-color:var(--sgds-color-fixed-dark)}:host([variant=outline][tone=fixed-light]){--btn-border-color:var(--sgds-border-color-fixed-light);--btn-bg:var(--sgds-bg-transparent);--btn-hover-bg:linear-gradient(0deg,var(--sgds-bg-translucent-fixed-dark) 0%,var(--sgds-bg-translucent-fixed-dark) 100%),var(--sgds-bg-transparent);--btn-color:var(--sgds-color-fixed-light)}:host([variant=ghost][tone=fixed-light]){--btn-bg:var(--sgds-bg-transparent);--btn-hover-bg:linear-gradient(0deg,var(--sgds-bg-translucent-fixed-dark) 0%,var(--sgds-bg-translucent-fixed-dark) 100%),var(--sgds-bg-transparent);--btn-color:var(--sgds-color-fixed-light)}:host([variant=primary][tone=neutral]){--btn-bg:var(--sgds-surface-inverse);--btn-hover-bg:linear-gradient(0deg,var(--sgds-bg-translucent-inverse) 0%,var(--sgds-bg-translucent-inverse) 100%),var(--sgds-surface-inverse);--btn-color:var(--sgds-color-inverse)}:host([variant=outline][tone=neutral]){--btn-border-color:var(--sgds-border-color-emphasis);--btn-bg:var(--sgds-bg-transparent);--btn-hover-bg:linear-gradient(0deg,var(--sgds-bg-translucent-inverse) 0%,var(--sgds-bg-translucent-inverse) 100%),var(--sgds-bg-translucent-subtle);--btn-color:var(--sgds-color-default)}:host([variant=ghost][tone=neutral]){--btn-bg:var(--sgds-bg-transparent);--btn-hover-bg:var(--sgds-bg-translucent-subtle);--btn-color:var(--sgds-color-default)}:host([variant=ghost]) .btn,:host([variant=outline]) .btn,:host([variant=primary]) .btn{color:var(--btn-color)}:host([variant=outline]) .btn{border:var(--btn-border-width) solid var(--btn-border-color)}:host([size=lg]) .btn{font-size:var(--sgds-font-size-label-lg);height:var(--sgds-dimension-56);line-height:var(--sgds-line-height-md);min-width:var(--sgds-dimension-112);padding:var(--sgds-padding-none) var(--sgds-padding-xl)}:host([size=sm]) .btn{font-size:var(--sgds-font-size-label-sm);height:var(--sgds-dimension-40);line-height:var(--sgds-line-height-2-xs);min-width:var(--sgds-dimension-80);padding:var(--sgds-padding-none) var(--sgds-padding-md)}:host([size=xs]) .btn{font-size:var(--sgds-font-size-label-xs);height:var(--sgds-dimension-32);line-height:var(--sgds-line-height-3-xs);min-width:var(--sgds-dimension-64);padding:var(--sgds-padding-none) var(--sgds-padding-sm)}.btn{align-items:center;background-color:var(--btn-bg);border:var(--sgds-border-width-1) solid var(--sgds-border-color-transparent);border-radius:var(--btn-border-radius);color:var(--sgds-color-fixed-light);cursor:pointer;display:inline-flex;font-size:var(--sgds-font-size-label-md);font-weight:var(--btn-font-weight);gap:var(--sgds-gap-2-xs);height:var(--sgds-dimension-48);justify-content:center;line-height:var(--sgds-line-height-xs);min-width:var(--sgds-dimension-96);opacity:var(--btn-opacity);padding:var(--sgds-padding-none) var(--sgds-padding-lg);text-align:center;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;user-select:none;vertical-align:middle;white-space:nowrap;width:inherit}.btn.active,.btn:hover{background:var(--btn-hover-bg)}.btn:focus-visible{background:var(--btn-hover-bg);border-color:transparent;outline:var(--sgds-outline-focus);outline-offset:var(--sgds-outline-offset-focus)}.btn.disabled,.btn:disabled{color:var(--btn-color);cursor:not-allowed;opacity:var(--sgds-opacity-40)}.btn.loading{cursor:default}.btn slot::slotted(*){color:var(--btn-color)}`,z=class extends R{constructor(...e){super(...e),this.variant=`primary`,this.tone=`brand`,this.size=`md`,this.active=!1,this.disabled=!1,this.target=`_self`}static{this.styles=[...R.styles,Tt]}focus(e){this.button.focus(e)}click(){this.button.click()}blur(){this.button.blur()}_handleBlur(){this.emit(`sgds-blur`)}_handleFocus(){this.emit(`sgds-focus`)}_handleClick(e){if(this.disabled||this.loading){e.preventDefault(),e.stopPropagation();return}}_handleKeydown(e){if(e.key===`Enter`&&this.loading){e.preventDefault(),e.stopPropagation();return}}_assignSpinnerSize(e){if(e===`xs`||e===`sm`)return`xs`;if(e===`md`||e===`lg`)return`sm`}_assignSpinnerTone(e,t){return e===`fixed-light`&&t===`primary`?`fixed-dark`:e===`neutral`&&t===`primary`?`inverse`:e===`fixed-light`||t===`primary`?`fixed-light`:e===`neutral`&&(t===`outline`||t===`ghost`)?`neutral`:`brand`}};L([N(`.btn`)],z.prototype,`button`,void 0),L([j({reflect:!0})],z.prototype,`variant`,void 0),L([j({reflect:!0})],z.prototype,`tone`,void 0),L([j({reflect:!0})],z.prototype,`size`,void 0),L([j({type:Boolean,reflect:!0})],z.prototype,`active`,void 0),L([j({type:Boolean,reflect:!0})],z.prototype,`disabled`,void 0),L([j({type:String,reflect:!0})],z.prototype,`href`,void 0),L([j({type:String,reflect:!0})],z.prototype,`target`,void 0),L([j({type:String,reflect:!0})],z.prototype,`download`,void 0),L([j({type:String})],z.prototype,`ariaLabel`,void 0),L([j({type:Boolean})],z.prototype,`loading`,void 0);function Et(e){if(!e)return e;let t=e.trim().toLowerCase();if(!(t.startsWith(`javascript:`)||t.startsWith(`data:`)||t.startsWith(`vbscript:`)))return e}var Dt=/* @__PURE__ */ n({default:()=>Ot}),Ot,kt=t((()=>{A(),Ot=T`
|
|
119
|
+
let bt=Symbol.for(``),xt=e=>{if(e?.r===bt)return e?._$litStatic$},St=(e,...t)=>({_$litStatic$:t.reduce((t,n,r)=>t+(e=>{if(e._$litStatic$!==void 0)return e._$litStatic$;throw Error(`Value passed to 'literal' function must be a 'literal' result: ${e}. Use 'unsafeStatic' to pass non-literal values, but\n take care to ensure page security.`)})(n)+e[r+1],e[0]),r:bt}),Ct=/* @__PURE__ */ new Map,wt=(e=>(t,...n)=>{let r=n.length,i,a,o=[],s=[],c,l=0,u=!1;for(;l<r;){for(c=t[l];l<r&&(a=n[l],(i=xt(a))!==void 0);)c+=i+t[++l],u=!0;l!==r&&s.push(a),o.push(c),l++}if(l===r&&o.push(t[r]),u){let e=o.join(`$$lit$$`);(t=Ct.get(e))===void 0&&(o.raw=o,Ct.set(e,t=o)),n=s}return e(t,...n)})(T);A();var Tt=_`:host{--btn-font-weight:var(--sgds-font-weight-regular);--btn-color:var(--sgds-color-fixed-light);--btn-bg:var(--sgds-primary-surface-default);--btn-hover-bg:var(--sgds-primary-surface-emphasis);--btn-border-radius:var(--sgds-border-radius-md);--btn-opacity:var(--sgds-opacity-100,1)}:host([variant=danger]){--btn-bg:var(--sgds-danger-surface-default);--btn-hover-bg:var(--sgds-danger-surface-emphasis);--btn-color:var(--sgds-color-fixed-light)}:host([variant=primary][tone=brand]){--btn-bg:var(--sgds-primary-surface-default);--btn-color:var(--sgds-color-fixed-light)}:host([variant=outline]){--btn-border-width:var(--sgds-border-width-1)}:host([variant=outline][tone=brand]){--btn-border-color:var(--sgds-primary-border-color-default);--btn-bg:var(--sgds-bg-transparent);--btn-color:var(--sgds-primary-color-default);--btn-hover-bg:var(--sgds-primary-bg-translucent)}:host([variant=ghost][tone=brand]){--btn-bg:var(--sgds-bg-transparent);--btn-hover-bg:var(--sgds-primary-surface-translucent);--btn-color:var(--sgds-primary-color-default)}:host([variant=primary][tone=danger]){--btn-bg:var(--sgds-danger-surface-default);--btn-hover-bg:var(--sgds-danger-surface-emphasis);--btn-color:var(--sgds-color-fixed-light)}:host([variant=outline][tone=danger]){--btn-border-color:var(--sgds-danger-border-color-default);--btn-bg:var(--sgds-bg-transparent);--btn-hover-bg:var(--sgds-danger-surface-translucent);--btn-color:var(--sgds-danger-color-default)}:host([variant=ghost][tone=danger]){--btn-bg:var(--sgds-bg-transparent);--btn-hover-bg:var(--sgds-danger-surface-translucent);--btn-color:var(--sgds-danger-color-default)}:host([variant=primary][tone=fixed-light]){--btn-bg:var(--sgds-surface-fixed-light);--btn-hover-bg:linear-gradient(0deg,var(--sgds-bg-translucent-fixed-dark,hsla(0,0%,5%,.2)) 0%,var(--sgds-bg-translucent-fixed-dark,hsla(0,0%,5%,.2)) 100%),var(--sgds-surface-fixed-light,#fff);--btn-color:var(--sgds-color-fixed-dark)}:host([variant=outline][tone=fixed-light]){--btn-border-color:var(--sgds-border-color-fixed-light);--btn-bg:var(--sgds-bg-transparent);--btn-hover-bg:linear-gradient(0deg,var(--sgds-bg-translucent-fixed-dark) 0%,var(--sgds-bg-translucent-fixed-dark) 100%),var(--sgds-bg-transparent);--btn-color:var(--sgds-color-fixed-light)}:host([variant=ghost][tone=fixed-light]){--btn-bg:var(--sgds-bg-transparent);--btn-hover-bg:linear-gradient(0deg,var(--sgds-bg-translucent-fixed-dark) 0%,var(--sgds-bg-translucent-fixed-dark) 100%),var(--sgds-bg-transparent);--btn-color:var(--sgds-color-fixed-light)}:host([variant=primary][tone=neutral]){--btn-bg:var(--sgds-surface-inverse);--btn-hover-bg:linear-gradient(0deg,var(--sgds-bg-translucent-inverse) 0%,var(--sgds-bg-translucent-inverse) 100%),var(--sgds-surface-inverse);--btn-color:var(--sgds-color-inverse)}:host([variant=outline][tone=neutral]){--btn-border-color:var(--sgds-border-color-emphasis);--btn-bg:var(--sgds-bg-transparent);--btn-hover-bg:linear-gradient(0deg,var(--sgds-bg-translucent-inverse) 0%,var(--sgds-bg-translucent-inverse) 100%),var(--sgds-bg-translucent-subtle);--btn-color:var(--sgds-color-default)}:host([variant=ghost][tone=neutral]){--btn-bg:var(--sgds-bg-transparent);--btn-hover-bg:var(--sgds-bg-translucent-subtle);--btn-color:var(--sgds-color-default)}:host([variant=ghost]) .btn,:host([variant=outline]) .btn,:host([variant=primary]) .btn{color:var(--btn-color)}:host([variant=outline]) .btn{border:var(--btn-border-width) solid var(--btn-border-color)}:host([size=lg]) .btn{font-size:var(--sgds-font-size-label-lg);height:var(--sgds-dimension-56);line-height:var(--sgds-line-height-md);min-width:var(--sgds-dimension-112);padding:var(--sgds-padding-none) var(--sgds-padding-xl)}:host([size=sm]) .btn{font-size:var(--sgds-font-size-label-sm);height:var(--sgds-dimension-40);line-height:var(--sgds-line-height-2-xs);min-width:var(--sgds-dimension-80);padding:var(--sgds-padding-none) var(--sgds-padding-md)}:host([size=xs]) .btn{font-size:var(--sgds-font-size-label-xs);height:var(--sgds-dimension-32);line-height:var(--sgds-line-height-3-xs);min-width:var(--sgds-dimension-64);padding:var(--sgds-padding-none) var(--sgds-padding-sm)}.btn{align-items:center;background-color:var(--btn-bg);border:var(--sgds-border-width-1) solid var(--sgds-border-color-transparent);border-radius:var(--btn-border-radius);color:var(--sgds-color-fixed-light);cursor:pointer;display:inline-flex;font-size:var(--sgds-font-size-label-md);font-weight:var(--btn-font-weight);gap:var(--sgds-gap-2-xs);height:var(--sgds-dimension-48);justify-content:center;line-height:var(--sgds-line-height-xs);min-width:var(--sgds-dimension-96);opacity:var(--btn-opacity);padding:var(--sgds-padding-none) var(--sgds-padding-lg);position:relative;text-align:center;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;user-select:none;vertical-align:middle;white-space:nowrap;width:inherit}.btn.active,.btn:hover{background:var(--btn-hover-bg)}.btn:focus-visible{background:var(--btn-hover-bg);border-color:transparent;outline:var(--sgds-outline-focus);outline-offset:var(--sgds-outline-offset-focus)}:host(:not([disabled])) .btn:active:after{background-color:var(--sgds-bg-translucent);border-radius:inherit;content:"";inset:0;position:absolute}.btn.disabled,.btn:disabled{color:var(--btn-color);cursor:not-allowed;opacity:var(--sgds-opacity-40)}.btn.loading{cursor:default}.btn slot::slotted(*){color:var(--btn-color)}`,z=class extends R{constructor(...e){super(...e),this.variant=`primary`,this.tone=`brand`,this.size=`md`,this.active=!1,this.disabled=!1,this.target=`_self`}static{this.styles=[...R.styles,Tt]}focus(e){this.button.focus(e)}click(){this.button.click()}blur(){this.button.blur()}_handleBlur(){this.emit(`sgds-blur`)}_handleFocus(){this.emit(`sgds-focus`)}_handleClick(e){if(this.disabled||this.loading){e.preventDefault(),e.stopPropagation();return}}_handleKeydown(e){if(e.key===`Enter`&&this.loading){e.preventDefault(),e.stopPropagation();return}}_assignSpinnerSize(e){if(e===`xs`||e===`sm`)return`xs`;if(e===`md`||e===`lg`)return`sm`}_assignSpinnerTone(e,t){return e===`fixed-light`&&t===`primary`?`fixed-dark`:e===`neutral`&&t===`primary`?`inverse`:e===`fixed-light`||t===`primary`?`fixed-light`:e===`neutral`&&(t===`outline`||t===`ghost`)?`neutral`:`brand`}};L([N(`.btn`)],z.prototype,`button`,void 0),L([j({reflect:!0})],z.prototype,`variant`,void 0),L([j({reflect:!0})],z.prototype,`tone`,void 0),L([j({reflect:!0})],z.prototype,`size`,void 0),L([j({type:Boolean,reflect:!0})],z.prototype,`active`,void 0),L([j({type:Boolean,reflect:!0})],z.prototype,`disabled`,void 0),L([j({type:String,reflect:!0})],z.prototype,`href`,void 0),L([j({type:String,reflect:!0})],z.prototype,`target`,void 0),L([j({type:String,reflect:!0})],z.prototype,`download`,void 0),L([j({type:String})],z.prototype,`ariaLabel`,void 0),L([j({type:Boolean})],z.prototype,`loading`,void 0);function Et(e){if(!e)return e;let t=e.trim().toLowerCase();if(!(t.startsWith(`javascript:`)||t.startsWith(`data:`)||t.startsWith(`vbscript:`)))return e}var Dt=/* @__PURE__ */ n({default:()=>Ot}),Ot,kt=t((()=>{A(),Ot=T`
|
|
120
120
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24">
|
|
121
121
|
<path
|
|
122
122
|
fill="currentColor"
|
|
@@ -2438,7 +2438,7 @@ let bt=Symbol.for(``),xt=e=>{if(e?.r===bt)return e?._$litStatic$},St=(e,...t)=>(
|
|
|
2438
2438
|
aria-expanded="${this.expanded}"
|
|
2439
2439
|
.ariaLabel=${`Toggle navigation`}
|
|
2440
2440
|
></sgds-icon-button>`}};L([M()],V.prototype,`expanded`,void 0),L([M()],V.prototype,`expanding`,void 0),L([N(`nav`)],V.prototype,`nav`,void 0),L([N(`.navbar`)],V.prototype,`navbar`,void 0),L([N(`.navbar-toggler`)],V.prototype,`header`,void 0),L([N(`.navbar-body`)],V.prototype,`body`,void 0),L([N(`.navbar-nav-scroll`)],V.prototype,`navScroll`,void 0),L([N(`.navbar-end`)],V.prototype,`navbarEnd`,void 0),L([j({type:String})],V.prototype,`brandHref`,void 0),L([j({type:String})],V.prototype,`expand`,void 0),L([M()],V.prototype,`breakpointReached`,void 0),L([M()],V.prototype,`_hasProfileComponent`,void 0),L([yt(`expanding`,{waitUntilFirstUpdate:!0})],V.prototype,`handleOpenChange`,null),gt(`nav.show`,{keyframes:[{height:`0`,opacity:`0`},{height:`auto`,opacity:`1`}],options:{duration:200,easing:`ease-in-out`}}),gt(`nav.hide`,{keyframes:[{height:`auto`,opacity:`1`},{height:`0`,opacity:`0`}],options:{duration:200,easing:`ease-in-out`}});var em=class{constructor(e,...t){this.slotNames=[],(this.host=e).addController(this),this.slotNames=t,this.handleSlotChange=this.handleSlotChange.bind(this)}hasDefaultSlot(){return[...this.host.childNodes].some(e=>{if(e.nodeType===e.TEXT_NODE&&e.textContent?.trim()!==``)return!0;if(e.nodeType===e.ELEMENT_NODE){let t=e;if(t.tagName.toLowerCase()===`sl-visually-hidden`)return!1;if(!t.hasAttribute(`slot`))return!0}return!1})}hasNamedSlot(e){return this.host.querySelector(`:scope > [slot="${e}"]`)!==null}test(e){return e===`[default]`?this.hasDefaultSlot():this.hasNamedSlot(e)}hostConnected(){this.host.shadowRoot?.addEventListener(`slotchange`,this.handleSlotChange)}hostDisconnected(){this.host.shadowRoot?.removeEventListener(`slotchange`,this.handleSlotChange)}handleSlotChange(e){let t=e.target;(this.slotNames.includes(`[default]`)&&!t.name||t.name&&this.slotNames.includes(t.name))&&this.host.requestUpdate()}};let tm=i(`mainnav-context`),nm=i(`mainnav-expanded-context`);A();var rm=_`:host{display:block}nav{background-color:var(--sgds-surface-default);box-shadow:0 2px 4px 0 hsla(0,0%,5%,.08);position:relative;z-index:var(--sgds-z-index-floating)}.navbar{align-items:stretch;display:flex;flex-wrap:wrap;font-size:var(--sgds-font-size-label-sm);gap:var(--sgds-gap-xs);justify-content:flex-start;margin:auto;max-width:var(--sgds-mainnav-max-width,1440px);min-height:var(--sgds-mainnav-height,72px);padding:0 var(--sgds-mainnav-mobile-padding-x);width:100%}:host([fluid]) .navbar{max-width:none}.navbar-brand{align-items:center;align-self:center;color:var(--sgds-color-default);display:flex;height:var(--sgds-dimension-40);text-decoration:none;white-space:nowrap}.navbar-brand ::slotted(img){height:100%}.navbar-brand:focus-visible{outline:var(--sgds-outline-focus);outline-offset:var(--sgds-outline-offset-focus)}.navbar-nav{display:flex;flex-direction:column;height:100%;margin-bottom:0;margin-top:0;width:100%}nav>.navbar-body{background-color:var(--sgds-surface-default);border-top:var(--sgds-border-width-1) solid var(--sgds-border-color-translucent);box-shadow:0 2px 4px 0 hsla(0,0%,5%,.08);padding:var(--sgds-padding-md) 0;position:absolute;transition:transform .2s ease-in-out;width:100%;z-index:var(--sgds-z-index-floating)}nav>.navbar-body .navbar-nav{height:100dvh;margin:auto;max-width:var(--sgds-mainnav-max-width,1440px)}nav>.navbar-body slot::slotted(:not(sgds-mainnav-item):not(sgds-mainnav-dropdown):not(sgds-mainnav-profile)){padding:var(--sgds-padding-sm) var(--sgds-mainnav-mobile-padding-x)}.navbar-collapse{align-items:center;flex-basis:100%;flex-grow:1}.navbar-toggler{align-self:center}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-nav-scroll{overflow-y:auto}@media (min-width:512px){.navbar-expand-sm{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (min-width:1024px){.navbar{padding:0 var(--sgds-mainnav-padding-x)}.navbar-expand-lg{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (min-width:1280px){.navbar-expand-xl{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .nav-link{padding-left:var(--mainnav-nav-link-padding-x);padding-right:var(--mainnav-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}@media (min-width:1440px){.navbar-expand-xxl{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}}.navbar-expand{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-end{align-items:center;display:flex;gap:var(--sgds-gap-xs);margin-left:auto}slot[name=non-collapsible].slot-empty{display:none}slot[name=profile]{align-self:stretch;display:flex}slot[name=non-collapsible]{align-items:center;display:flex;gap:var(--sgds-spacer-4)}.slot-end{align-items:stretch;display:flex;gap:var(--sgds-gap-xs);height:inherit;margin-left:auto}.slot-end::slotted(:not([name$=-mainnav-item]):not([name$=-mainnav-dropdown])){align-self:center}`;A();var im=class extends V{constructor(...e){super(...e),this._breakpointReached=!1,this._expanded=!1,this.hasNonCollapsibleSlot=!1,this.fluid=!1,this.hasSlotController=new em(this,`non-collapsible`)}static{this.styles=[...V.styles,rm]}get defaultSlotItems(){return[...this.defaultNodes||[]].filter(e=>e.tagName!==void 0)}get endSlotItems(){return[...this.endNodes||[]].filter(e=>e.tagName!==void 0)}updated(){this.hasNonCollapsibleSlot||=this.hasSlotController.test(`non-collapsible`),this._expanded=this.expanded}_onBreakpointReached(e){this._breakpointReached=e}_isBreakpointReached(){return this._breakpointReached}_handleDefaultSlotChange(e){e.target.assignedElements({flatten:!0}).forEach(e=>{e.setAttribute(`expand`,this.expand)})}_handleSlotChange(e){e.target.assignedElements({flatten:!0}).forEach(e=>{e.setAttribute(`name`,e.tagName.toLowerCase()),e.setAttribute(`expand`,this.expand)})}_handleProfileSlotChange(e){e.target.assignedElements({flatten:!0}).forEach(e=>{e.setAttribute(`expand`,this.expand)})}render(){return this.breakpointReached=window.innerWidth<(this.expand===`always`?-1:this.expand===`never`?1/0:{sm:512,md:768,lg:1024,xl:1280,xxl:1440}[this.expand]),T`
|
|
2441
|
-
<nav>
|
|
2441
|
+
<nav aria-label="Main navigation">
|
|
2442
2442
|
<div class="navbar ${this._expandClass()}">
|
|
2443
2443
|
<a class="navbar-brand" href=${Et(this.brandHref)??``} aria-label="brand-link">
|
|
2444
2444
|
<slot name="brand"></slot>
|
|
@@ -2476,7 +2476,7 @@ let n=e._$AN;if(n===void 0)return!1;for(let e of n)e._$AO?.(t,!1),qh(e,t);return
|
|
|
2476
2476
|
* @license
|
|
2477
2477
|
* Copyright 2020 Google LLC
|
|
2478
2478
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
2479
|
-
*/let eg=()=>new tg;var tg=class{};let ng=/* @__PURE__ */ new WeakMap,rg=it(class extends $h{render(e){return D}update(e,[t]){let n=t!==this.G;return n&&this.G!==void 0&&this.rt(void 0),(n||this.lt!==this.ct)&&(this.G=t,this.ht=e.options?.host,this.rt(this.ct=e.element)),D}rt(e){if(this.isConnected||(e=void 0),typeof this.G==`function`){let t=this.ht??globalThis,n=ng.get(t);n===void 0&&(n=/* @__PURE__ */ new WeakMap,ng.set(t,n)),n.get(this.G)!==void 0&&this.G.call(this.ht,void 0),n.set(this.G,e),e!==void 0&&this.G.call(this.ht,e)}else this.G.value=e}get lt(){return typeof this.G==`function`?ng.get(this.ht??globalThis)?.get(this.G):this.G?.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}});var X=class extends R{constructor(...e){super(...e),this.myDropdown=eg(),this.dropdownMenuId=vt(`dropdown-menu`,`div`),this.noFlip=!1,this.menuAlignRight=!1,this.drop=`down`,this.floatingOpts={},this.menuIsOpen=!1,this.close=`default`,this.disabled=!1,this.readonly=!1,this.menuRef=eg(),this._handleClickOutOfElement=e=>{this.menuIsOpen&&(e.composedPath().includes(this)||this.hideMenu(!0))}}connectedCallback(){super.connectedCallback(),this.close!==`inside`&&document.addEventListener(`click`,this._handleClickOutOfElement),this.addEventListener(`keydown`,this._handleKeyboardMenuEvent)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener(`click`,this._handleClickOutOfElement),this.removeEventListener(`keydown`,this._handleKeyboardMenuEvent),this._cleanupAutoUpdate&&=(this._cleanupAutoUpdate(),void 0)}firstUpdated(e){super.firstUpdated(e),this.menuIsOpen&&requestAnimationFrame(async()=>{await this.updateFloatingPosition(),this._startAutoUpdate()})}async showMenu(){if(!(this.disabled||this.menuIsOpen)){if(this.menuIsOpen=!0,this.emit(`sgds-show`),await this.updateFloatingPosition(),this._startAutoUpdate(),this.menuRef.value){let e=(this.menuRef.value.getAttribute(`data-placement`)||``).startsWith(`top`)?`4px`:`-4px`,{options:t}=ht(this,`dropdown.show`);await st(this.menuRef.value,[{opacity:0,transform:`translateY(${e})`},{opacity:1,transform:`translateY(0)`}],t)}this.emit(`sgds-after-show`)}}_startAutoUpdate(){this.myDropdown.value&&this.menuRef.value&&(this._cleanupAutoUpdate=Lh(this.myDropdown.value,this.menuRef.value,()=>this.updateFloatingPosition()))}async hideMenu(e){if(this.menuIsOpen){if(this.emit(`sgds-hide`,{detail:{isOutside:e}}),this.menuRef.value){let e=(this.menuRef.value.getAttribute(`data-placement`)||``).startsWith(`top`)?`4px`:`-4px`,{options:t}=ht(this,`dropdown.hide`);await st(this.menuRef.value,[{opacity:1,transform:`translateY(0)`},{opacity:0,transform:`translateY(${e})`}],t)}this.menuIsOpen=!1,this.emit(`sgds-after-hide`),this._cleanupAutoUpdate&&=(this._cleanupAutoUpdate(),void 0)}}toggleMenu(){this.menuIsOpen?this.hideMenu():this.showMenu()}_handleKeyboardMenuEvent(e){if(!this.readonly)switch(e.key){case`ArrowDown`:case`ArrowUp`:e.preventDefault(),this.menuIsOpen||this.showMenu();break;case`Escape`:this.hideMenu()}}mergeMiddleware(e,t){let n=e=>e?.name||e?.constructor?.name,r=t.map(n);return e.map(e=>{let i=n(e),a=r.indexOf(i);return a===-1?e:t[a]}).concat(t.filter(t=>!e.some(e=>n(e)===n(t))))}async updateFloatingPosition(){if(!this.myDropdown.value||!this.menuRef.value)return;let e=`bottom-start`;switch(this.drop){case`up`:e=this.menuAlignRight?`top-end`:`top-start`;break;case`right`:e=`right-start`;break;case`left`:e=`left-start`;break;case`down`:e=this.menuAlignRight?`bottom-end`:`bottom-start`;break;default:e=`bottom-start`}let t=[Rh(8),this.noFlip?void 0:Bh(),zh()].filter(Boolean),n=t;Array.isArray(this.floatingOpts.middleware)&&this.floatingOpts.middleware.length>0&&(n=this.mergeMiddleware(t,this.floatingOpts.middleware.filter(Boolean)));let r={strategy:`fixed`,placement:e,...this.floatingOpts,middleware:n},{x:i,y:a,strategy:o,placement:s}=await Vh(this.myDropdown.value,this.menuRef.value,r);this.menuRef.value.setAttribute(`data-placement`,s),Object.assign(this.menuRef.value.style,{position:o,left:`${i}px`,top:`${a}px`})}};L([j({type:Boolean,state:!0})],X.prototype,`noFlip`,void 0),L([j({type:Boolean,reflect:!0,state:!0})],X.prototype,`menuAlignRight`,void 0),L([j({type:String,reflect:!0,state:!0})],X.prototype,`drop`,void 0),L([j({type:Object})],X.prototype,`floatingOpts`,void 0),L([j({type:Boolean,reflect:!0})],X.prototype,`menuIsOpen`,void 0),L([j({type:Boolean,reflect:!0})],X.prototype,`disabled`,void 0),L([j({type:Boolean,reflect:!0})],X.prototype,`readonly`,void 0),gt(`dropdown.show`,{keyframes:[],options:{duration:200,easing:`cubic-bezier(0.1, 0, 0.5, 0)`}}),gt(`dropdown.hide`,{keyframes:[],options:{duration:200,easing:`cubic-bezier(0.15, 0.6, 0.6, 1)`}});var ig=class extends X{constructor(...e){super(...e),this.nextDropdownItemNo=0,this.prevDropdownItemNo=-1,this.hidden=!1}static{this.styles=X.styles}connectedCallback(){super.connectedCallback(),this.addEventListener(`sgds-hide`,this._resetMenu)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener(`sgds-hide`,this._resetMenu)}firstUpdated(e){super.firstUpdated(e),this.addEventListener(`keydown`,this._handleKeyboardMenuItemsEvent)}handleSelectSlot(e){let t=this._getActiveMenuItems(),n=t.find(t=>e.composedPath().includes(t));if(!n)return;let r=t.indexOf(n);this.nextDropdownItemNo=r+1,this.prevDropdownItemNo=r<=0?t.length-1:r-1,n.disabled||(this.emit(`sgds-select`,{detail:{item:n}}),this.close!==`outside`&&this.hideMenu())}_resetMenu(){this.nextDropdownItemNo=0,this.prevDropdownItemNo=-1,this._getMenuItems().forEach(e=>{let t=e?.shadowRoot?.querySelector(`.dropdown-item`);t&&t.removeAttribute(`tabindex`)})}_handleKeyboardMenuItemsEvent(e){if(this.readonly)return;let t=this._getActiveMenuItems();if(t.length!==0)switch(e.key){case`ArrowDown`:e.preventDefault(),this._setMenuItem(this.nextDropdownItemNo);break;case`ArrowUp`:e.preventDefault(),this._setMenuItem(this.prevDropdownItemNo);break;case`Tab`:if(!this.menuIsOpen)return;e.preventDefault(),e.shiftKey?this._setMenuItem(this.prevDropdownItemNo):this._setMenuItem(this.nextDropdownItemNo);break;case`Escape`:this.menuIsOpen&&(e.preventDefault(),this.hideMenu());break;case`Enter`:t.find(t=>e.composedPath().includes(t))&&this.handleSelectSlot(e)}}_getMenuItems(){return this.shadowRoot.querySelector(`slot#default`)?this.shadowRoot.querySelector(`slot#default`)?.assignedElements({flatten:!0}).filter(e=>e.getAttribute(`role`)===`menuitem`&&!e.classList.contains(`empty-menu`)&&!e.hasAttribute(`hidden`)):this.menu?.hasChildNodes()?[...Array.from(this.menu.children)]:[]}_getActiveMenuItems(){return this._getMenuItems().filter(e=>!e.disabled&&!e.hidden&&!e.readonly)}_setMenuItem(e){let t=this._getActiveMenuItems();if(t.length===0)return;let n=(e%t.length+t.length)%t.length,r=t[n];this.emit(`i-sgds-option-focus`,{detail:{option:r}}),this.nextDropdownItemNo=(n+1)%t.length,this.prevDropdownItemNo=(n-1+t.length)%t.length,t.forEach(e=>{let t=e.shadowRoot.querySelector(`.dropdown-item`);t.setAttribute(`tabindex`,e===r?`0`:`-1`),e===r&&t.focus()})}};L([N(`ul.dropdown-menu`)],ig.prototype,`menu`,void 0),L([M()],ig.prototype,`nextDropdownItemNo`,void 0),L([M()],ig.prototype,`prevDropdownItemNo`,void 0),L([j({type:Boolean,reflect:!0})],ig.prototype,`hidden`,void 0),A();var Z=class extends ig{static{this.styles=[...ig.styles,Hh,Uh]}constructor(){super(),this.noFlip=!1,this.menuAlignRight=!1,this.drop=`down`,this.close=`default`,this.menuRef=rg()}async _handleClick(e){if(this.disabled)return;let t=this._toggler[0];if(!t){this.toggleMenu();return}if(e.composedPath().includes(t)){this.toggleMenu();return}if(!this.menuIsOpen)return;let n=this.menuRef.value;n&&e.composedPath().includes(n)||this.hideMenu()}_handleCloseMenu(){this._toggler[0]?.focus()}async connectedCallback(){super.connectedCallback(),this.addEventListener(`sgds-hide`,this._handleCloseMenu)}async disconnectedCallback(){this.removeEventListener(`sgds-hide`,this._handleCloseMenu)}async firstUpdated(e){super.firstUpdated(e),this.menuIsOpen&&await this.updateFloatingPosition(),this._handleDisabled()}_handleTogglerSlotChange(e){let t=e.target.assignedElements({flatten:!0})[0];t&&(t.setAttribute(`aria-haspopup`,`menu`),t.setAttribute(`aria-expanded`,String(this.menuIsOpen)))}_handleMenuIsOpenChange(){let e=this._toggler[0];e&&e.setAttribute(`aria-expanded`,String(this.menuIsOpen))}_handleDisabled(){let e=this._toggler[0];e&&(this.disabled?e.setAttribute(`disabled`,`true`):e.hasAttribute(`disabled`)&&e.removeAttribute(`disabled`))}render(){return T`
|
|
2479
|
+
*/let eg=()=>new tg;var tg=class{};let ng=/* @__PURE__ */ new WeakMap,rg=it(class extends $h{render(e){return D}update(e,[t]){let n=t!==this.G;return n&&this.G!==void 0&&this.rt(void 0),(n||this.lt!==this.ct)&&(this.G=t,this.ht=e.options?.host,this.rt(this.ct=e.element)),D}rt(e){if(this.isConnected||(e=void 0),typeof this.G==`function`){let t=this.ht??globalThis,n=ng.get(t);n===void 0&&(n=/* @__PURE__ */ new WeakMap,ng.set(t,n)),n.get(this.G)!==void 0&&this.G.call(this.ht,void 0),n.set(this.G,e),e!==void 0&&this.G.call(this.ht,e)}else this.G.value=e}get lt(){return typeof this.G==`function`?ng.get(this.ht??globalThis)?.get(this.G):this.G?.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}});var X=class extends R{constructor(...e){super(...e),this.myDropdown=eg(),this.dropdownMenuId=vt(`dropdown-menu`,`div`),this.noFlip=!1,this.menuAlignRight=!1,this.drop=`down`,this.floatingOpts={},this.menuIsOpen=!1,this.close=`default`,this.disabled=!1,this.readonly=!1,this.menuRef=eg(),this._handleClickOutOfElement=e=>{this.menuIsOpen&&(e.composedPath().includes(this)||this.hideMenu(!0))}}connectedCallback(){super.connectedCallback(),this.close!==`inside`&&document.addEventListener(`click`,this._handleClickOutOfElement),this.addEventListener(`keydown`,this._handleKeyboardMenuEvent)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener(`click`,this._handleClickOutOfElement),this.removeEventListener(`keydown`,this._handleKeyboardMenuEvent),this._cleanupAutoUpdate&&=(this._cleanupAutoUpdate(),void 0)}firstUpdated(e){super.firstUpdated(e),this.menuIsOpen&&requestAnimationFrame(async()=>{await this.updateFloatingPosition(),this._startAutoUpdate()})}async showMenu(){if(!(this.disabled||this.menuIsOpen)){if(this.menuIsOpen=!0,this.emit(`sgds-show`),await this.updateFloatingPosition(),this._startAutoUpdate(),this.menuRef.value){let e=(this.menuRef.value.getAttribute(`data-placement`)||``).startsWith(`top`)?`4px`:`-4px`,{options:t}=ht(this,`dropdown.show`);await st(this.menuRef.value,[{opacity:0,transform:`translateY(${e})`},{opacity:1,transform:`translateY(0)`}],t)}this.emit(`sgds-after-show`)}}_startAutoUpdate(){this.myDropdown.value&&this.menuRef.value&&(this._cleanupAutoUpdate=Lh(this.myDropdown.value,this.menuRef.value,()=>this.updateFloatingPosition()))}async hideMenu(e){if(this.menuIsOpen){if(this.emit(`sgds-hide`,{detail:{isOutside:e}}),this.menuRef.value){let e=(this.menuRef.value.getAttribute(`data-placement`)||``).startsWith(`top`)?`4px`:`-4px`,{options:t}=ht(this,`dropdown.hide`);await st(this.menuRef.value,[{opacity:1,transform:`translateY(0)`},{opacity:0,transform:`translateY(${e})`}],t)}this.menuIsOpen=!1,this.emit(`sgds-after-hide`),this._cleanupAutoUpdate&&=(this._cleanupAutoUpdate(),void 0)}}toggleMenu(){this.menuIsOpen?this.hideMenu():this.showMenu()}_handleKeyboardMenuEvent(e){if(!this.readonly)switch(e.key){case`ArrowDown`:case`ArrowUp`:e.preventDefault(),this.menuIsOpen||this.showMenu();break;case`Escape`:this.hideMenu()}}mergeMiddleware(e,t){let n=e=>e?.name||e?.constructor?.name,r=t.map(n);return e.map(e=>{let i=n(e),a=r.indexOf(i);return a===-1?e:t[a]}).concat(t.filter(t=>!e.some(e=>n(e)===n(t))))}async updateFloatingPosition(){if(!this.myDropdown.value||!this.menuRef.value)return;let e=`bottom-start`;switch(this.drop){case`up`:e=this.menuAlignRight?`top-end`:`top-start`;break;case`right`:e=`right-start`;break;case`left`:e=`left-start`;break;case`down`:e=this.menuAlignRight?`bottom-end`:`bottom-start`;break;default:e=`bottom-start`}let t=[Rh(8),this.noFlip?void 0:Bh(),zh()].filter(Boolean),n=t;Array.isArray(this.floatingOpts.middleware)&&this.floatingOpts.middleware.length>0&&(n=this.mergeMiddleware(t,this.floatingOpts.middleware.filter(Boolean)));let r={strategy:`fixed`,placement:e,...this.floatingOpts,middleware:n},{x:i,y:a,strategy:o,placement:s}=await Vh(this.myDropdown.value,this.menuRef.value,r);this.menuRef.value.setAttribute(`data-placement`,s),Object.assign(this.menuRef.value.style,{position:o,left:`${i}px`,top:`${a}px`})}};L([j({type:Boolean,state:!0})],X.prototype,`noFlip`,void 0),L([j({type:Boolean,reflect:!0,state:!0})],X.prototype,`menuAlignRight`,void 0),L([j({type:String,reflect:!0,state:!0})],X.prototype,`drop`,void 0),L([j({type:Object})],X.prototype,`floatingOpts`,void 0),L([j({type:Boolean,reflect:!0})],X.prototype,`menuIsOpen`,void 0),L([j({type:Boolean,reflect:!0})],X.prototype,`disabled`,void 0),L([j({type:Boolean,reflect:!0})],X.prototype,`readonly`,void 0),gt(`dropdown.show`,{keyframes:[],options:{duration:200,easing:`cubic-bezier(0.1, 0, 0.5, 0)`}}),gt(`dropdown.hide`,{keyframes:[],options:{duration:200,easing:`cubic-bezier(0.15, 0.6, 0.6, 1)`}});var ig=class extends X{constructor(...e){super(...e),this.nextDropdownItemNo=0,this.prevDropdownItemNo=-1,this.hidden=!1}static{this.styles=X.styles}connectedCallback(){super.connectedCallback(),this.addEventListener(`sgds-hide`,this._resetMenu)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener(`sgds-hide`,this._resetMenu)}firstUpdated(e){super.firstUpdated(e),this.addEventListener(`keydown`,this._handleKeyboardMenuItemsEvent)}handleSelectSlot(e){let t=this._getActiveMenuItems(),n=t.find(t=>e.composedPath().includes(t));if(!n)return;let r=t.indexOf(n);this.nextDropdownItemNo=r+1,this.prevDropdownItemNo=r<=0?t.length-1:r-1,n.disabled||(this.emit(`sgds-select`,{detail:{item:n}}),this.close!==`outside`&&this.hideMenu())}_resetMenu(){this.nextDropdownItemNo=0,this.prevDropdownItemNo=-1,this._getMenuItems().forEach(e=>{let t=e?.shadowRoot?.querySelector(`.dropdown-item`);t&&t.removeAttribute(`tabindex`)})}_handleKeyboardMenuItemsEvent(e){if(this.readonly)return;let t=this._getActiveMenuItems();if(t.length!==0)switch(e.key){case`ArrowDown`:e.preventDefault(),this._setMenuItem(this.nextDropdownItemNo);break;case`ArrowUp`:e.preventDefault(),this._setMenuItem(this.prevDropdownItemNo);break;case`Tab`:if(!this.menuIsOpen)return;e.preventDefault(),e.shiftKey?this._setMenuItem(this.prevDropdownItemNo):this._setMenuItem(this.nextDropdownItemNo);break;case`Escape`:this.menuIsOpen&&(e.preventDefault(),this.hideMenu());break;case`Enter`:t.find(t=>e.composedPath().includes(t))&&this.handleSelectSlot(e)}}_getMenuItems(){return this.shadowRoot.querySelector(`slot#default`)?this.shadowRoot.querySelector(`slot#default`)?.assignedElements({flatten:!0}).filter(e=>e.getAttribute(`role`)===`menuitem`&&!e.classList.contains(`empty-menu`)&&!e.hasAttribute(`hidden`)):this.menu?.hasChildNodes()?[...Array.from(this.menu.children)]:[]}_getActiveMenuItems(){return this._getMenuItems().filter(e=>!e.disabled&&!e.hidden&&!e.readonly)}_setMenuItem(e){let t=this._getActiveMenuItems();if(t.length===0)return;let n=(e%t.length+t.length)%t.length,r=t[n];this.emit(`i-sgds-option-focus`,{detail:{option:r}}),this.nextDropdownItemNo=(n+1)%t.length,this.prevDropdownItemNo=(n-1+t.length)%t.length,t.forEach(e=>{let t=e.shadowRoot.querySelector(`.dropdown-item`);t.setAttribute(`tabindex`,e===r?`0`:`-1`),e===r&&t.focus()})}};L([N(`ul.dropdown-menu`)],ig.prototype,`menu`,void 0),L([M()],ig.prototype,`nextDropdownItemNo`,void 0),L([M()],ig.prototype,`prevDropdownItemNo`,void 0),L([j({type:Boolean,reflect:!0})],ig.prototype,`hidden`,void 0),A();var Z=class extends ig{static{this.styles=[...ig.styles,Hh,Uh]}constructor(){super(),this.noFlip=!1,this.menuAlignRight=!1,this.drop=`down`,this.close=`default`,this.menuRef=rg()}async _handleClick(e){if(this.disabled)return;let t=this._toggler[0];if(!t){this.toggleMenu();return}if(e.composedPath().includes(t)){this.toggleMenu();return}if(!this.menuIsOpen)return;let n=this.menuRef.value;n&&e.composedPath().includes(n)||this.hideMenu()}_handleCloseMenu(){this._toggler[0]?.focus({preventScroll:!0})}async connectedCallback(){super.connectedCallback(),this.addEventListener(`sgds-hide`,this._handleCloseMenu)}async disconnectedCallback(){this.removeEventListener(`sgds-hide`,this._handleCloseMenu)}async firstUpdated(e){super.firstUpdated(e),this.menuIsOpen&&await this.updateFloatingPosition(),this._handleDisabled()}_handleTogglerSlotChange(e){let t=e.target.assignedElements({flatten:!0})[0];t&&(t.setAttribute(`aria-haspopup`,`menu`),t.setAttribute(`aria-expanded`,String(this.menuIsOpen)))}_handleMenuIsOpenChange(){let e=this._toggler[0];e&&e.setAttribute(`aria-expanded`,String(this.menuIsOpen))}_handleDisabled(){let e=this._toggler[0];e&&(this.disabled?e.setAttribute(`disabled`,`true`):e.hasAttribute(`disabled`)&&e.removeAttribute(`disabled`))}render(){return T`
|
|
2480
2480
|
<div class="dropdown" @click=${this._handleClick}>
|
|
2481
2481
|
<div class="toggler-container" ${rg(this.myDropdown)}>
|
|
2482
2482
|
<slot name="toggler" @slotchange=${this._handleTogglerSlotChange}></slot>
|