@quartzds/core 1.0.0-beta.126 → 1.0.0-beta.128
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +43 -0
- package/components/index.js +1 -1
- package/components/{p-LrIqfiOT.js → p-B6Ey_-Vx.js} +4 -4
- package/components/{p-LrIqfiOT.js.map → p-B6Ey_-Vx.js.map} +1 -1
- package/components/{p-B56IOBA3.js → p-BtT3CnSD.js} +6 -6
- package/components/p-BtT3CnSD.js.map +1 -0
- package/components/{p-Bn9o5Um2.js → p-C9IjLb3Y.js} +3 -3
- package/components/{p-Bn9o5Um2.js.map → p-C9IjLb3Y.js.map} +1 -1
- package/components/{p-Br32bYGr.js → p-CJjC212f.js} +5 -5
- package/components/p-CJjC212f.js.map +1 -0
- package/components/{p-CaibVX_2.js → p-CRMf7xaM.js} +22 -3
- package/components/p-CRMf7xaM.js.map +1 -0
- package/components/{p-BFkKlQwu.js → p-DF9UaDLm.js} +11 -21
- package/components/p-DF9UaDLm.js.map +1 -0
- package/components/{p-GskDFwn4.js → p-DTtaqXO_.js} +24 -13
- package/components/p-DTtaqXO_.js.map +1 -0
- package/components/p-Dcnye_tS.js +124 -0
- package/components/p-Dcnye_tS.js.map +1 -0
- package/components/{p-Cb5Tgh-o.js → p-DhXeFnmO.js} +6 -6
- package/components/{p-Cb5Tgh-o.js.map → p-DhXeFnmO.js.map} +1 -1
- package/components/{p-B_CYrw-t.js → p-DzybtRcv.js} +4 -4
- package/components/{p-B_CYrw-t.js.map → p-DzybtRcv.js.map} +1 -1
- package/components/{p-b8LTn_fi.js → p-WIHZZjmJ.js} +7 -7
- package/components/{p-b8LTn_fi.js.map → p-WIHZZjmJ.js.map} +1 -1
- package/components/{p-DFjYtqSI.js → p-meIfRYro.js} +45 -19
- package/components/p-meIfRYro.js.map +1 -0
- package/components/{p-fKK7EmM2.js → p-oL9ZVNSo.js} +3 -3
- package/components/{p-fKK7EmM2.js.map → p-oL9ZVNSo.js.map} +1 -1
- package/components/qds-action-item.js +3 -3
- package/components/qds-avatar-media.js +1 -1
- package/components/qds-avatar.js +5 -5
- package/components/qds-avatar.js.map +1 -1
- package/components/qds-badge-indicator.js +1 -1
- package/components/qds-breadcrumb-item.js +8 -8
- package/components/qds-breadcrumb-item.js.map +1 -1
- package/components/qds-button.js +31 -20
- package/components/qds-button.js.map +1 -1
- package/components/qds-checkbox.js +1 -1
- package/components/qds-chip.js +61 -29
- package/components/qds-chip.js.map +1 -1
- package/components/qds-dialog.js +6 -6
- package/components/qds-divider.js +1 -1
- package/components/qds-dropdown.js +1 -1
- package/components/qds-form-message.js +3 -3
- package/components/qds-icon-button.js +1 -1
- package/components/qds-icon-tab.js +29 -28
- package/components/qds-icon-tab.js.map +1 -1
- package/components/qds-icon.js +1 -1
- package/components/qds-inline-link.js +4 -4
- package/components/qds-inline-link.js.map +1 -1
- package/components/qds-input.js +6 -6
- package/components/qds-input.js.map +1 -1
- package/components/qds-label.js +4 -4
- package/components/qds-list-item.js +14 -14
- package/components/qds-loader.js +1 -1
- package/components/qds-menu-item.js +49 -16
- package/components/qds-menu-item.js.map +1 -1
- package/components/qds-mini-button.js +1 -1
- package/components/qds-radio.js +1 -1
- package/components/qds-select.js +6 -6
- package/components/qds-select.js.map +1 -1
- package/components/qds-standalone-link.js +2 -2
- package/components/qds-switch.js +2 -2
- package/components/qds-tab.js +8 -12
- package/components/qds-tab.js.map +1 -1
- package/components/qds-tabbar.js +11 -11
- package/components/qds-table-head-cell.js +2 -2
- package/components/qds-tag.js +1 -1
- package/components/qds-textarea.js +4 -4
- package/components/qds-textarea.js.map +1 -1
- package/components/qds-title.js +1 -1
- package/components/qds-tooltip.js +1 -1
- package/dist/cjs/{helpers-DjUgyTKn.js → helpers-D2klK1IS.js} +24 -2
- package/dist/{esm/helpers-mPQzhx-O.js.map → cjs/helpers-D2klK1IS.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/qds-action-item.cjs.entry.js +1 -1
- package/dist/cjs/qds-avatar-media.cjs.entry.js +2 -2
- package/dist/cjs/qds-avatar-media.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-avatar.cjs.entry.js +2 -2
- package/dist/cjs/qds-avatar.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-badge-counter.qds-badge-indicator.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-badge-counter_2.cjs.entry.js +27 -5
- package/dist/cjs/qds-breadcrumb-item.cjs.entry.js +6 -6
- package/dist/cjs/qds-breadcrumb-item.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-button.cjs.entry.js +27 -17
- package/dist/cjs/qds-button.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-checkbox.qds-radio.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-checkbox_2.cjs.entry.js +19 -9
- package/dist/cjs/qds-chip.cjs.entry.js +55 -23
- package/dist/cjs/qds-chip.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-dialog.cjs.entry.js +2 -2
- package/dist/cjs/qds-divider.qds-icon-button.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-divider_2.cjs.entry.js +7 -17
- package/dist/cjs/qds-dropdown.cjs.entry.js +43 -17
- package/dist/cjs/qds-dropdown.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-form-message.cjs.entry.js +2 -2
- package/dist/cjs/qds-icon-tab.cjs.entry.js +23 -23
- package/dist/cjs/qds-icon-tab.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-icon.cjs.entry.js +1 -1
- package/dist/cjs/qds-inline-link.cjs.entry.js +3 -3
- package/dist/cjs/qds-inline-link.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-input.cjs.entry.js +4 -4
- package/dist/cjs/qds-input.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-label.cjs.entry.js +3 -3
- package/dist/cjs/qds-list-item.cjs.entry.js +5 -5
- package/dist/cjs/qds-menu-item.cjs.entry.js +42 -12
- package/dist/cjs/qds-menu-item.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-mini-button.cjs.entry.js +1 -1
- package/dist/cjs/qds-select.cjs.entry.js +5 -5
- package/dist/cjs/qds-select.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-standalone-link.cjs.entry.js +1 -1
- package/dist/cjs/qds-switch.cjs.entry.js +1 -1
- package/dist/cjs/qds-tab.cjs.entry.js +4 -8
- package/dist/cjs/qds-tab.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-tabbar.cjs.entry.js +6 -6
- package/dist/cjs/qds-table-head-cell.cjs.entry.js +2 -2
- package/dist/cjs/qds-tag.cjs.entry.js +3 -3
- package/dist/cjs/qds-textarea.cjs.entry.js +4 -4
- package/dist/cjs/qds-textarea.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-title.cjs.entry.js +3 -3
- package/dist/cjs/qds-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/qds.cjs.js +1 -1
- package/dist/custom-elements.json +209 -38
- package/dist/docs.json +85 -15
- package/dist/esm/{helpers-mPQzhx-O.js → helpers-_EoroLk_.js} +22 -3
- package/dist/{cjs/helpers-DjUgyTKn.js.map → esm/helpers-_EoroLk_.js.map} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/qds-action-item.entry.js +1 -1
- package/dist/esm/qds-avatar-media.entry.js +2 -2
- package/dist/esm/qds-avatar-media.entry.js.map +1 -1
- package/dist/esm/qds-avatar.entry.js +2 -2
- package/dist/esm/qds-avatar.entry.js.map +1 -1
- package/dist/esm/qds-badge-counter.qds-badge-indicator.entry.js.map +1 -1
- package/dist/esm/qds-badge-counter_2.entry.js +27 -5
- package/dist/esm/qds-breadcrumb-item.entry.js +6 -6
- package/dist/esm/qds-breadcrumb-item.entry.js.map +1 -1
- package/dist/esm/qds-button.entry.js +27 -17
- package/dist/esm/qds-button.entry.js.map +1 -1
- package/dist/esm/qds-checkbox.qds-radio.entry.js.map +1 -1
- package/dist/esm/qds-checkbox_2.entry.js +19 -9
- package/dist/esm/qds-chip.entry.js +55 -23
- package/dist/esm/qds-chip.entry.js.map +1 -1
- package/dist/esm/qds-dialog.entry.js +2 -2
- package/dist/esm/qds-divider.qds-icon-button.entry.js.map +1 -1
- package/dist/esm/qds-divider_2.entry.js +7 -17
- package/dist/esm/qds-dropdown.entry.js +43 -17
- package/dist/esm/qds-dropdown.entry.js.map +1 -1
- package/dist/esm/qds-form-message.entry.js +2 -2
- package/dist/esm/qds-icon-tab.entry.js +23 -23
- package/dist/esm/qds-icon-tab.entry.js.map +1 -1
- package/dist/esm/qds-icon.entry.js +1 -1
- package/dist/esm/qds-inline-link.entry.js +3 -3
- package/dist/esm/qds-inline-link.entry.js.map +1 -1
- package/dist/esm/qds-input.entry.js +4 -4
- package/dist/esm/qds-input.entry.js.map +1 -1
- package/dist/esm/qds-label.entry.js +3 -3
- package/dist/esm/qds-list-item.entry.js +5 -5
- package/dist/esm/qds-menu-item.entry.js +42 -12
- package/dist/esm/qds-menu-item.entry.js.map +1 -1
- package/dist/esm/qds-mini-button.entry.js +1 -1
- package/dist/esm/qds-select.entry.js +5 -5
- package/dist/esm/qds-select.entry.js.map +1 -1
- package/dist/esm/qds-standalone-link.entry.js +1 -1
- package/dist/esm/qds-switch.entry.js +1 -1
- package/dist/esm/qds-tab.entry.js +4 -8
- package/dist/esm/qds-tab.entry.js.map +1 -1
- package/dist/esm/qds-tabbar.entry.js +6 -6
- package/dist/esm/qds-table-head-cell.entry.js +2 -2
- package/dist/esm/qds-tag.entry.js +3 -3
- package/dist/esm/qds-textarea.entry.js +4 -4
- package/dist/esm/qds-textarea.entry.js.map +1 -1
- package/dist/esm/qds-title.entry.js +3 -3
- package/dist/esm/qds-tooltip.entry.js +2 -2
- package/dist/esm/qds.js +1 -1
- package/dist/types/components/badge-indicator/badge-indicator.d.ts +1 -1
- package/dist/types/components/button/button.d.ts +1 -0
- package/dist/types/components/checkbox/checkbox.d.ts +1 -0
- package/dist/types/components/chip/chip.d.ts +4 -2
- package/dist/types/components/icon-tab/icon-tab.d.ts +1 -0
- package/dist/types/components/menu-item/menu-item.d.ts +3 -0
- package/dist/types/helpers.d.ts +3 -0
- package/dist/vscode.html-custom-data.json +18 -0
- package/hydrate/index.js +304 -170
- package/hydrate/index.mjs +304 -170
- package/package.json +1 -1
- package/components/p-B56IOBA3.js.map +0 -1
- package/components/p-BFkKlQwu.js.map +0 -1
- package/components/p-Br32bYGr.js.map +0 -1
- package/components/p-CaibVX_2.js.map +0 -1
- package/components/p-DFjYtqSI.js.map +0 -1
- package/components/p-GskDFwn4.js.map +0 -1
- package/components/p-U2Q0vF-d.js +0 -96
- package/components/p-U2Q0vF-d.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qds-inline-link.entry.js","sources":["src/components/inline-link/inline-link.css?tag=qds-inline-link&encapsulation=shadow","src/components/inline-link/inline-link.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: © 2024 Schneider Electric\n *\n * SPDX-License-Identifier: Apache-2.0\n */\n\n@import url('../shared.css');\n\n:host {\n display: inline-block;\n}\n\n:host(:focus-visible) {\n /* inner ring */\n outline: var(--qds-theme-focus-border-contrast) solid\n var(--qds-focus-light-border-width);\n outline-offset: 0;\n\n /* outer ring */\n box-shadow: 0 0 0 var(--qds-focus-heavy-border-width)\n var(--qds-theme-focus-border);\n border-radius: var(--qds-control-border-radius);\n}\n\n.qds-icon {\n height: var(--qds-control-hero-icon-size);\n width: var(--qds-control-hero-icon-size);\n transform: scaleX(var(--qds-direction-factor, 1));\n}\n\n.qds-inline-link {\n display: flex;\n gap: var(--qds-text-icon-gap);\n align-items: center;\n}\n\n.qds-disabled {\n opacity: var(--qds-theme-disabled);\n pointer-events: none;\n}\n\n[data-importance='subdued'] {\n color: var(--qds-theme-link-subdued-default);\n\n &:visited {\n color: var(--qds-theme-link-visited-default);\n }\n\n &:hover {\n color: var(--qds-theme-link-subdued-hover);\n }\n\n &:active {\n color: var(--qds-theme-link-subdued-pressed);\n }\n\n &:visited:hover {\n color: var(--qds-theme-link-visited-hover);\n }\n\n &:visited:active {\n color: var(--qds-theme-link-visited-pressed);\n }\n}\n\n[data-importance='standard'] {\n color: var(--qds-theme-link-standard-default);\n\n &:visited {\n color: var(--qds-theme-link-visited-default);\n }\n\n &:hover {\n color: var(--qds-theme-link-standard-hover);\n }\n\n &:active {\n color: var(--qds-theme-link-standard-pressed);\n }\n\n &:visited:hover {\n color: var(--qds-theme-link-visited-hover);\n }\n\n &:visited:active {\n color: var(--qds-theme-link-visited-pressed);\n }\n}\n\n[data-importance='emphasized'] {\n color: var(--qds-theme-link-emphasized-default);\n\n &:visited {\n color: var(--qds-theme-link-visited-default);\n }\n\n &:hover {\n color: var(--qds-theme-link-emphasized-hover);\n }\n\n &:active {\n color: var(--qds-theme-link-emphasized-pressed);\n }\n\n &:visited:hover {\n color: var(--qds-theme-link-visited-hover);\n }\n\n &:visited:active {\n color: var(--qds-theme-link-visited-pressed);\n }\n}\n","// SPDX-FileCopyrightText: © 2024 Schneider Electric\n//\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentInterface, EventEmitter } from '@stencil/core'\nimport {\n AttachInternals,\n Component,\n Element,\n Event,\n h,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core'\nimport type { LiteralUnion } from 'type-fest'\n\nimport type { QdsFocusEventDetail } from '../../helpers'\nimport {\n determineLinkIcon,\n invariant,\n pickFocusEventAttributes,\n} from '../../helpers'\nimport type { Importance, LinkIcon, Target } from '../shared'\n\n/**\n * `<qds-inline-link>` elements, with their `href` property, create a hyperlink\n * to web pages, files, email addresses, locations in the same page, or\n * anything else a URL can address.\n *\n * Content within each `<qds-inline-link>` *should* indicate the inline link's\n * destination. If the `href` property is present, pressing the enter key while\n * focused on the `<qds-inline-link>` element will activate it.\n *\n * @slot Content to display for the inline link.\n * @see https://quartz.se.com/build/components/inline-link\n */\n@Component({\n tag: 'qds-inline-link',\n shadow: true,\n styleUrl: 'inline-link.css',\n})\nexport class InlineLink implements ComponentInterface {\n /**\n * Prevents the inline link from being interacted with: it cannot be pressed\n * or focused.\n */\n @Prop() public readonly disabled: boolean = false\n\n /**\n * The name of the icon to render.\n *\n * Available names depend on the icon library being used.\n */\n @Prop() public readonly iconName?: string\n\n /**\n * The name of a registered icon library.\n */\n @Prop() public readonly iconLibrary: string = 'default'\n\n /**\n * The inline link's importance.\n */\n @Prop() public readonly importance?: Importance = 'standard'\n\n /**\n * Causes the browser to treat the linked URL as a download. Can be used with\n * or without a `filename` value:\n *\n * - Without a value, the browser will suggest a filename/extension,\n * generated from various sources:\n *\n * - The\n * [`Content-Disposition`](https://developer.mozilla.org/docs/Web/HTTP/Headers/Content-Disposition)\n * HTTP header\n * - The final segment in the URL\n * [path](https://developer.mozilla.org/docs/Web/API/URL/pathname)\n * - The\n * [media type](https://developer.mozilla.org/docs/Glossary/MIME_type)\n * (from the\n * [`Content-Type`](https://developer.mozilla.org/docs/Web/HTTP/Headers/Content-Type)\n * header, the start of a\n * [`data:` URL](https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URLs),\n * or\n * [`Blob.type`](https://developer.mozilla.org/docs/Web/API/Blob/type)\n * for a\n * [`blob:` URL](https://developer.mozilla.org/docs/Web/API/URL/createObjectURL))\n * - `filename`: defining a value suggests it as the filename. `/` and `\\`\n * characters are converted to underscores (`_`). Filesystems may forbid\n * other characters in filenames, so browsers will adjust the suggested name\n * if necessary.\n *\n * @webnative\n */\n @Prop() public readonly download?: boolean | string\n\n /**\n * The URL that the inline link points to. Inline links are not restricted to\n * HTTP-based URLs — they can use any URL scheme supported by browsers:\n *\n * - Sections of a page with document fragments\n * - Specific text portions with\n * [text fragments](https://developer.mozilla.org/docs/Web/Text_fragments)\n * - Pieces of media files with media fragments\n * - Telephone numbers with `tel:` URLs\n * - Email addresses with `mailto:` URLs\n * - While web browsers may not support other URL schemes, websites can with\n * [`registerProtocolHandler()`](https://developer.mozilla.org/docs/Web/API/Navigator/registerProtocolHandler)\n *\n * @webnative\n */\n @Prop() public readonly href?: URL | string\n\n /**\n * Hints at the human language of the linked URL. No built-in functionality.\n * Allowed values are the same as\n * [the global `lang` attribute](https://developer.mozilla.org/docs/Web/HTML/Global_attributes/lang).\n *\n * @webnative\n */\n @Prop() public readonly hreflang?: string\n\n /**\n * How much of the\n * [referrer](https://developer.mozilla.org/docs/Web/HTTP/Headers/Referer)\n * to send when following the inline link.\n *\n * - `no-referrer`: The\n * [`Referer`](https://developer.mozilla.org/docs/Web/HTTP/Headers/Referer)\n * header will not be sent.\n * - `no-referrer-when-downgrade`: The\n * [`Referer`](https://developer.mozilla.org/docs/Web/HTTP/Headers/Referer)\n * header will not be sent to\n * [origin](https://developer.mozilla.org/docs/Glossary/Origin)s\n * without [TLS](https://developer.mozilla.org/docs/Glossary/TLS)\n * ([HTTPS](https://developer.mozilla.org/docs/Glossary/HTTPS)).\n * - `origin`: The sent referrer will be limited to the origin of the\n * referring page: its\n * [scheme](https://developer.mozilla.org/docs/Learn/Common_questions/What_is_a_URL),\n * [host](https://developer.mozilla.org/docs/Glossary/Host), and\n * [port](https://developer.mozilla.org/docs/Glossary/Port).\n * - `origin-when-cross-origin`: The referrer sent to other origins will be\n * limited to the scheme, the host, and the port. Navigations on the same\n * origin will still include the path.\n * - `same-origin`: A referrer will be sent for\n * [same origin](https://developer.mozilla.org/docs/Glossary/Same-origin_policy),\n * but cross-origin requests will contain no referrer information.\n * - `strict-origin`: Only send the origin of the document as the referrer\n * when the protocol security level stays the same (HTTPS→HTTPS), but don't\n * send it to a less secure destination (HTTPS→HTTP).\n * - `strict-origin-when-cross-origin` (default): Send a full URL when\n * performing a same-origin request, only send the origin when the protocol\n * security level stays the same (HTTPS→HTTPS), and send no header to a less\n * secure destination (HTTPS→HTTP).\n * - `unsafe-url`: The referrer will include the origin and the path (but not the\n * [fragment](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/hash),\n * [password](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/password),\n * or [username](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/username)).\n * **This value is unsafe** because it leaks origins and paths from\n * TLS-protected resources to insecure origins.\n *\n * @webnative\n */\n @Prop({ attribute: 'referrerpolicy' })\n public readonly referrerPolicy?: ReferrerPolicy\n\n /**\n * The relationship of the linked URL as space-separated\n * [link types](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel).\n *\n * The following list includes some of the most important existing keywords.\n * Every keyword within a space-separated value should be unique within that\n * value.\n *\n * - [`alternate`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-alternate):\n * Alternate representations of the current document.\n * - [`author`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-author):\n * Author of the current document or article.\n * - [`bookmark`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-bookmark):\n * Permalink for the nearest ancestor section.\n * - [`external`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-external):\n * The referenced document is not part of the same site as the current\n * document. An icon will be rendered next to the text if this value is\n * specified.\n * - [`help`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-help):\n * Link to context-sensitive help.\n * - [`license`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-license):\n * Indicates that the main content of the current document is covered by the\n * copyright license described by the referenced document.\n * - [`me`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel/me):\n * Indicates that the current document represents the person who owns the\n * linked content.\n * - [`next`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-next):\n * Indicates that the current document is a part of a series and that the\n * next document in the series is the referenced document.\n * - [`nofollow`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-nofollow):\n * Indicates that the current document's original author or publisher does\n * not endorse the referenced document.\n * - [`noopener`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel/noopener):\n * Creates a top-level browsing context that is not an auxiliary browsing\n * context if the hyperlink would create either of those, to begin with (i.e.,\n * has an appropriate `target` attribute value).\n * - [`noreferrer`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-noreferrer):\n * No `Referer` header will be included. Additionally, has the same effect as\n * `noopener`.\n * - [`opener`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-opener):\n * Creates an auxiliary browsing context if the hyperlink would otherwise\n * create a top-level browsing context that is not an auxiliary browsing\n * context (i.e., has \"`_blank`\" as `target` attribute value).\n * - [`prev`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-prev):\n * Indicates that the current document is a part of a series and that the\n * previous document in the series is the referenced document.\n * - [`search`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-search):\n * Gives a link to a resource that can be used to search through the current\n * document and its related pages.\n * - [`tag`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-tag):\n * Gives a tag (identified by the given address) that applies to the current\n * document.\n *\n * @webnative\n */\n @Prop() public readonly rel?: string\n\n /**\n * Where to display the linked URL, as the name for a browsing context (a\n * tab, window, or\n * [`<iframe>`](https://developer.mozilla.org/docs/Web/HTML/Element/iframe).\n * The following keywords have special meanings for where to load the URL:\n *\n * - `_blank`: usually a new tab, but users can configure browsers to open a new\n * window instead.\n * - `_parent`: the parent browsing context of the current one. If no parent,\n * behaves as `_self`.\n * - `_self`: the current browsing context.\n * - `_top`: the topmost browsing context (the \"highest\" context that's an\n * ancestor of the current one). If no ancestors, behaves as `_self`.\n *\n * @webnative\n */\n @Prop() public readonly target?: LiteralUnion<Target, string>\n\n /**\n * Emitted when the inline link loses focus.\n */\n @Event({ eventName: 'qdsBlur', bubbles: false, cancelable: false })\n private readonly blurEmitter!: EventEmitter<QdsFocusEventDetail>\n\n /**\n * Emitted when the inline link gains focus.\n */\n @Event({ eventName: 'qdsFocus', bubbles: false, cancelable: false })\n private readonly focusEmitter!: EventEmitter<QdsFocusEventDetail>\n\n @Element() private readonly host!: HTMLElement\n\n @State() private linkIcon?: LinkIcon\n\n @AttachInternals() private readonly internals!: ElementInternals\n\n #savedTabIndex = 0\n\n #link?: HTMLAnchorElement\n\n get #computedImportance(): Importance {\n switch (this.importance) {\n case 'subdued':\n case 'emphasized': {\n return this.importance\n }\n default: {\n return 'standard'\n }\n }\n }\n\n get #openInNewTab(): boolean {\n return this.target === '_blank'\n }\n\n @Listen('click')\n protected onClick(event: MouseEvent): void {\n if (this.disabled) event.stopImmediatePropagation()\n }\n\n @Listen('keydown')\n protected onKeydown(event: KeyboardEvent): void {\n invariant(this.#link)\n if (this.disabled) return\n if (event.key === 'Enter') this.#link.click()\n }\n\n @Watch('disabled')\n protected disabledChanged(): void {\n this.internals.ariaDisabled = this.disabled.toString()\n if (this.disabled) this.host.removeAttribute('tabindex')\n else this.host.tabIndex = this.#savedTabIndex\n }\n\n @Watch('tabindex')\n protected tabindexChanged(newValue: string): void {\n const parsedValue = Number.parseInt(newValue, 10)\n // FIXME: `undefined` instead of `0` causes `qdsFocus/qdsBlur` E2E tests\n // to fail, but it's not clear why this is the case since it works for\n // other components.\n this.#savedTabIndex = Number.isNaN(parsedValue) ? 0 : parsedValue\n if (this.disabled) this.host.removeAttribute('tabindex')\n else this.host.tabIndex = this.#savedTabIndex\n }\n\n @Watch('rel')\n @Watch('target')\n protected hrefTargetChanged(): void {\n this.linkIcon = determineLinkIcon(this.target, this.rel)\n this.#updateAriaLabelElements()\n }\n\n public componentWillLoad(): void {\n this.internals.role = 'link'\n this.disabledChanged()\n this.hrefTargetChanged()\n this.tabindexChanged(this.host.getAttribute('tabindex') ?? '0')\n }\n\n public componentDidLoad(): void {\n this.#updateAriaLabelElements()\n }\n\n public render() {\n return (\n <a\n aria-hidden=\"true\"\n class={{\n 'qds-inline-link': true,\n 'qds-disabled': this.disabled,\n }}\n data-importance={this.#computedImportance}\n download={this.download}\n href={this.href?.toString()}\n hrefLang={this.hreflang}\n onBlur={this.#onBlur}\n onFocus={this.#onFocus}\n referrerPolicy={this.referrerPolicy}\n rel={this.rel}\n tabIndex={-1}\n target={this.target}\n ref={this.#linkRef}\n >\n {this.iconName !== undefined && this.iconName !== '' && (\n <qds-icon\n class=\"qds-icon\"\n library={this.iconLibrary}\n name={this.iconName}\n />\n )}\n <slot onSlotchange={this.#onSlotchange} />\n {this.linkIcon && (\n <qds-icon class=\"qds-icon\" library=\"core\" name={this.linkIcon} />\n )}\n </a>\n )\n }\n\n readonly #linkRef = (link?: HTMLAnchorElement): void => {\n this.#link = link\n }\n\n readonly #onBlur = (event: FocusEvent): void => {\n this.blurEmitter.emit(pickFocusEventAttributes(event))\n }\n\n readonly #onFocus = (event: FocusEvent): void => {\n this.focusEmitter.emit(pickFocusEventAttributes(event))\n }\n\n readonly #updateAriaLabelElements = (): void => {\n this.internals.ariaLabel = `${this.host.textContent} ${\n this.#openInNewTab ? 'Opens in a new tab' : ''\n }`.trim()\n }\n\n readonly #onSlotchange = (): void => {\n this.#updateAriaLabelElements()\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"qds-inline-link.entry.js","sources":["src/components/inline-link/inline-link.css?tag=qds-inline-link&encapsulation=shadow","src/components/inline-link/inline-link.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: © 2024 Schneider Electric\n *\n * SPDX-License-Identifier: Apache-2.0\n */\n\n@import url('../shared.css');\n\n:host {\n display: inline-block;\n}\n\n:host(:focus-visible) {\n /* inner ring */\n outline: var(--qds-theme-focus-border-contrast) solid\n var(--qds-focus-light-border-width);\n outline-offset: 0;\n\n /* outer ring */\n box-shadow: 0 0 0 var(--qds-focus-heavy-border-width)\n var(--qds-theme-focus-border);\n border-radius: var(--qds-control-border-radius);\n}\n\n.qds-icon {\n height: var(--qds-control-hero-icon-size);\n width: var(--qds-control-hero-icon-size);\n transform: scaleX(var(--qds-direction-factor, 1));\n}\n\n.qds-inline-link {\n display: flex;\n gap: var(--qds-text-icon-gap);\n align-items: center;\n}\n\n.qds-disabled {\n opacity: var(--qds-theme-disabled);\n pointer-events: none;\n}\n\n[data-importance='subdued'] {\n color: var(--qds-theme-link-subdued-default);\n\n &:visited {\n color: var(--qds-theme-link-visited-default);\n }\n\n &:hover {\n color: var(--qds-theme-link-subdued-hover);\n }\n\n &:active {\n color: var(--qds-theme-link-subdued-pressed);\n }\n\n &:visited:hover {\n color: var(--qds-theme-link-visited-hover);\n }\n\n &:visited:active {\n color: var(--qds-theme-link-visited-pressed);\n }\n}\n\n[data-importance='standard'] {\n color: var(--qds-theme-link-standard-default);\n\n &:visited {\n color: var(--qds-theme-link-visited-default);\n }\n\n &:hover {\n color: var(--qds-theme-link-standard-hover);\n }\n\n &:active {\n color: var(--qds-theme-link-standard-pressed);\n }\n\n &:visited:hover {\n color: var(--qds-theme-link-visited-hover);\n }\n\n &:visited:active {\n color: var(--qds-theme-link-visited-pressed);\n }\n}\n\n[data-importance='emphasized'] {\n color: var(--qds-theme-link-emphasized-default);\n\n &:visited {\n color: var(--qds-theme-link-visited-default);\n }\n\n &:hover {\n color: var(--qds-theme-link-emphasized-hover);\n }\n\n &:active {\n color: var(--qds-theme-link-emphasized-pressed);\n }\n\n &:visited:hover {\n color: var(--qds-theme-link-visited-hover);\n }\n\n &:visited:active {\n color: var(--qds-theme-link-visited-pressed);\n }\n}\n","// SPDX-FileCopyrightText: © 2024 Schneider Electric\n//\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentInterface, EventEmitter } from '@stencil/core'\nimport {\n AttachInternals,\n Component,\n Element,\n Event,\n h,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core'\nimport type { LiteralUnion } from 'type-fest'\n\nimport type { QdsFocusEventDetail } from '../../helpers'\nimport {\n determineLinkIcon,\n invariant,\n pickFocusEventAttributes,\n} from '../../helpers'\nimport type { Importance, LinkIcon, Target } from '../shared'\n\n/**\n * `<qds-inline-link>` elements, with their `href` property, create a hyperlink\n * to web pages, files, email addresses, locations in the same page, or\n * anything else a URL can address.\n *\n * Content within each `<qds-inline-link>` *should* indicate the inline link's\n * destination. If the `href` property is present, pressing the enter key while\n * focused on the `<qds-inline-link>` element will activate it.\n *\n * @slot Content to display for the inline link.\n * @see https://quartz.se.com/build/components/inline-link\n */\n@Component({\n tag: 'qds-inline-link',\n shadow: true,\n styleUrl: 'inline-link.css',\n})\nexport class InlineLink implements ComponentInterface {\n /**\n * Prevents the inline link from being interacted with: it cannot be pressed\n * or focused.\n */\n @Prop() public readonly disabled: boolean = false\n\n /**\n * The name of the icon to render.\n *\n * Available names depend on the icon library being used.\n */\n @Prop() public readonly iconName?: string\n\n /**\n * The name of a registered icon library.\n */\n @Prop() public readonly iconLibrary: string = 'default'\n\n /**\n * The inline link's importance.\n */\n @Prop() public readonly importance?: Importance = 'standard'\n\n /**\n * Causes the browser to treat the linked URL as a download. Can be used with\n * or without a `filename` value:\n *\n * - Without a value, the browser will suggest a filename/extension,\n * generated from various sources:\n *\n * - The\n * [`Content-Disposition`](https://developer.mozilla.org/docs/Web/HTTP/Headers/Content-Disposition)\n * HTTP header\n * - The final segment in the URL\n * [path](https://developer.mozilla.org/docs/Web/API/URL/pathname)\n * - The\n * [media type](https://developer.mozilla.org/docs/Glossary/MIME_type)\n * (from the\n * [`Content-Type`](https://developer.mozilla.org/docs/Web/HTTP/Headers/Content-Type)\n * header, the start of a\n * [`data:` URL](https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URLs),\n * or\n * [`Blob.type`](https://developer.mozilla.org/docs/Web/API/Blob/type)\n * for a\n * [`blob:` URL](https://developer.mozilla.org/docs/Web/API/URL/createObjectURL))\n * - `filename`: defining a value suggests it as the filename. `/` and `\\`\n * characters are converted to underscores (`_`). Filesystems may forbid\n * other characters in filenames, so browsers will adjust the suggested name\n * if necessary.\n *\n * @webnative\n */\n @Prop() public readonly download?: boolean | string\n\n /**\n * The URL that the inline link points to. Inline links are not restricted to\n * HTTP-based URLs — they can use any URL scheme supported by browsers:\n *\n * - Sections of a page with document fragments\n * - Specific text portions with\n * [text fragments](https://developer.mozilla.org/docs/Web/Text_fragments)\n * - Pieces of media files with media fragments\n * - Telephone numbers with `tel:` URLs\n * - Email addresses with `mailto:` URLs\n * - While web browsers may not support other URL schemes, websites can with\n * [`registerProtocolHandler()`](https://developer.mozilla.org/docs/Web/API/Navigator/registerProtocolHandler)\n *\n * @webnative\n */\n @Prop() public readonly href?: URL | string\n\n /**\n * Hints at the human language of the linked URL. No built-in functionality.\n * Allowed values are the same as\n * [the global `lang` attribute](https://developer.mozilla.org/docs/Web/HTML/Global_attributes/lang).\n *\n * @webnative\n */\n @Prop() public readonly hreflang?: string\n\n /**\n * How much of the\n * [referrer](https://developer.mozilla.org/docs/Web/HTTP/Headers/Referer)\n * to send when following the inline link.\n *\n * - `no-referrer`: The\n * [`Referer`](https://developer.mozilla.org/docs/Web/HTTP/Headers/Referer)\n * header will not be sent.\n * - `no-referrer-when-downgrade`: The\n * [`Referer`](https://developer.mozilla.org/docs/Web/HTTP/Headers/Referer)\n * header will not be sent to\n * [origin](https://developer.mozilla.org/docs/Glossary/Origin)s\n * without [TLS](https://developer.mozilla.org/docs/Glossary/TLS)\n * ([HTTPS](https://developer.mozilla.org/docs/Glossary/HTTPS)).\n * - `origin`: The sent referrer will be limited to the origin of the\n * referring page: its\n * [scheme](https://developer.mozilla.org/docs/Learn/Common_questions/What_is_a_URL),\n * [host](https://developer.mozilla.org/docs/Glossary/Host), and\n * [port](https://developer.mozilla.org/docs/Glossary/Port).\n * - `origin-when-cross-origin`: The referrer sent to other origins will be\n * limited to the scheme, the host, and the port. Navigations on the same\n * origin will still include the path.\n * - `same-origin`: A referrer will be sent for\n * [same origin](https://developer.mozilla.org/docs/Glossary/Same-origin_policy),\n * but cross-origin requests will contain no referrer information.\n * - `strict-origin`: Only send the origin of the document as the referrer\n * when the protocol security level stays the same (HTTPS→HTTPS), but don't\n * send it to a less secure destination (HTTPS→HTTP).\n * - `strict-origin-when-cross-origin` (default): Send a full URL when\n * performing a same-origin request, only send the origin when the protocol\n * security level stays the same (HTTPS→HTTPS), and send no header to a less\n * secure destination (HTTPS→HTTP).\n * - `unsafe-url`: The referrer will include the origin and the path (but not the\n * [fragment](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/hash),\n * [password](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/password),\n * or [username](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/username)).\n * **This value is unsafe** because it leaks origins and paths from\n * TLS-protected resources to insecure origins.\n *\n * @webnative\n */\n @Prop({ attribute: 'referrerpolicy' })\n public readonly referrerPolicy?: ReferrerPolicy\n\n /**\n * The relationship of the linked URL as space-separated\n * [link types](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel).\n *\n * The following list includes some of the most important existing keywords.\n * Every keyword within a space-separated value should be unique within that\n * value.\n *\n * - [`alternate`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-alternate):\n * Alternate representations of the current document.\n * - [`author`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-author):\n * Author of the current document or article.\n * - [`bookmark`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-bookmark):\n * Permalink for the nearest ancestor section.\n * - [`external`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-external):\n * The referenced document is not part of the same site as the current\n * document. An icon will be rendered next to the text if this value is\n * specified.\n * - [`help`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-help):\n * Link to context-sensitive help.\n * - [`license`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-license):\n * Indicates that the main content of the current document is covered by the\n * copyright license described by the referenced document.\n * - [`me`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel/me):\n * Indicates that the current document represents the person who owns the\n * linked content.\n * - [`next`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-next):\n * Indicates that the current document is a part of a series and that the\n * next document in the series is the referenced document.\n * - [`nofollow`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-nofollow):\n * Indicates that the current document's original author or publisher does\n * not endorse the referenced document.\n * - [`noopener`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel/noopener):\n * Creates a top-level browsing context that is not an auxiliary browsing\n * context if the hyperlink would create either of those, to begin with (i.e.,\n * has an appropriate `target` attribute value).\n * - [`noreferrer`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-noreferrer):\n * No `Referer` header will be included. Additionally, has the same effect as\n * `noopener`.\n * - [`opener`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-opener):\n * Creates an auxiliary browsing context if the hyperlink would otherwise\n * create a top-level browsing context that is not an auxiliary browsing\n * context (i.e., has \"`_blank`\" as `target` attribute value).\n * - [`prev`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-prev):\n * Indicates that the current document is a part of a series and that the\n * previous document in the series is the referenced document.\n * - [`search`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-search):\n * Gives a link to a resource that can be used to search through the current\n * document and its related pages.\n * - [`tag`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-tag):\n * Gives a tag (identified by the given address) that applies to the current\n * document.\n *\n * @webnative\n */\n @Prop() public readonly rel?: string\n\n /**\n * Where to display the linked URL, as the name for a browsing context (a\n * tab, window, or\n * [`<iframe>`](https://developer.mozilla.org/docs/Web/HTML/Element/iframe).\n * The following keywords have special meanings for where to load the URL:\n *\n * - `_blank`: usually a new tab, but users can configure browsers to open a new\n * window instead.\n * - `_parent`: the parent browsing context of the current one. If no parent,\n * behaves as `_self`.\n * - `_self`: the current browsing context.\n * - `_top`: the topmost browsing context (the \"highest\" context that's an\n * ancestor of the current one). If no ancestors, behaves as `_self`.\n *\n * @webnative\n */\n @Prop() public readonly target?: LiteralUnion<Target, string>\n\n /**\n * Emitted when the inline link loses focus.\n */\n @Event({ eventName: 'qdsBlur', bubbles: false, cancelable: false })\n private readonly blurEmitter!: EventEmitter<QdsFocusEventDetail>\n\n /**\n * Emitted when the inline link gains focus.\n */\n @Event({ eventName: 'qdsFocus', bubbles: false, cancelable: false })\n private readonly focusEmitter!: EventEmitter<QdsFocusEventDetail>\n\n @Element() private readonly host!: HTMLElement\n\n @State() private linkIcon?: LinkIcon\n\n @AttachInternals() private readonly internals!: ElementInternals\n\n #savedTabIndex = 0\n\n #link?: HTMLAnchorElement\n\n get #computedImportance(): Importance {\n switch (this.importance) {\n case 'subdued':\n case 'emphasized': {\n return this.importance\n }\n default: {\n return 'standard'\n }\n }\n }\n\n get #openInNewTab(): boolean {\n return this.target === '_blank'\n }\n\n @Listen('click')\n protected onClick(event: MouseEvent): void {\n if (this.disabled) event.stopImmediatePropagation()\n }\n\n @Listen('keydown')\n protected onKeydown(event: KeyboardEvent): void {\n invariant(this.#link)\n if (this.disabled) return\n if (event.key === 'Enter') this.#link.click()\n }\n\n @Watch('disabled')\n protected disabledChanged(): void {\n this.internals.ariaDisabled = this.disabled.toString()\n if (this.disabled) this.host.removeAttribute('tabindex')\n else this.host.tabIndex = this.#savedTabIndex\n }\n\n @Watch('tabindex')\n protected tabindexChanged(newValue: string): void {\n const parsedValue = Number.parseInt(newValue, 10)\n // FIXME: `undefined` instead of `0` causes `qdsFocus/qdsBlur` E2E tests\n // to fail, but it's not clear why this is the case since it works for\n // other components.\n this.#savedTabIndex = Number.isNaN(parsedValue) ? 0 : parsedValue\n if (this.disabled) this.host.removeAttribute('tabindex')\n else this.host.tabIndex = this.#savedTabIndex\n }\n\n @Watch('rel')\n @Watch('target')\n protected hrefTargetChanged(): void {\n this.linkIcon = determineLinkIcon(this.target, this.rel)\n this.#updateAriaLabelElements()\n }\n\n public componentWillLoad(): void {\n this.internals.role = 'link'\n this.disabledChanged()\n this.hrefTargetChanged()\n this.tabindexChanged(this.host.getAttribute('tabindex') ?? '0')\n }\n\n public componentDidLoad(): void {\n this.#updateAriaLabelElements()\n }\n\n public render() {\n return (\n <a\n aria-hidden=\"true\"\n class={{\n 'qds-inline-link': true,\n 'qds-disabled': this.disabled,\n }}\n data-importance={this.#computedImportance}\n download={this.download}\n href={this.href?.toString()}\n hrefLang={this.hreflang}\n onBlur={this.#onBlur}\n onFocus={this.#onFocus}\n referrerPolicy={this.referrerPolicy}\n rel={this.rel}\n tabIndex={-1}\n target={this.target}\n ref={this.#linkRef}\n >\n {this.iconName !== undefined && this.iconName !== '' && (\n <qds-icon\n class=\"qds-icon\"\n library={this.iconLibrary}\n name={this.iconName}\n />\n )}\n <span>\n <slot onSlotchange={this.#onSlotchange} />\n </span>\n {this.linkIcon && (\n <qds-icon class=\"qds-icon\" library=\"core\" name={this.linkIcon} />\n )}\n </a>\n )\n }\n\n readonly #linkRef = (link?: HTMLAnchorElement): void => {\n this.#link = link\n }\n\n readonly #onBlur = (event: FocusEvent): void => {\n this.blurEmitter.emit(pickFocusEventAttributes(event))\n }\n\n readonly #onFocus = (event: FocusEvent): void => {\n this.focusEmitter.emit(pickFocusEventAttributes(event))\n }\n\n readonly #updateAriaLabelElements = (): void => {\n this.internals.ariaLabel = `${this.host.textContent} ${\n this.#openInNewTab ? 'Opens in a new tab' : ''\n }`.trim()\n }\n\n readonly #onSlotchange = (): void => {\n this.#updateAriaLabelElements()\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { r as registerInstance, c as createEvent, h, g as getElement } from './index-Hg1Liloy.js';
|
|
7
|
-
import { i as invariant, p as pickFocusEventAttributes,
|
|
7
|
+
import { i as invariant, p as pickFocusEventAttributes, h as pickInputEventAttributes, f as inheritAriaAttributes } from './helpers-_EoroLk_.js';
|
|
8
8
|
import { V as VALID_STATE, C as CUSTOM_ERROR_FLAGS, N as NO_ERROR_FLAGS } from './controls-CZRW1LV_.js';
|
|
9
9
|
|
|
10
|
-
const inputCss = ":host([hidden]){display:none!important}:host{display:inline-block}@-moz-document url-prefix(){[type=date]~.qds-icon-container,[type=datetime-local]~.qds-icon-container,[type=month]~.qds-icon-container,[type=time]~.qds-icon-container,[type=week]~.qds-icon-container{display:none}}input[type=password]::-ms-reveal{display:none}.qds-container,.qds-input{max-width:inherit;width:inherit}.qds-container{align-content:flex-start;align-items:center;box-sizing:border-box;display:grid;grid-template-areas:\"d\"}.qds-icon-container,.qds-input{grid-area:d}.qds-focus-ring{border-radius:max(1px,var(\n --qds-form-input-border-radius-top-left,var(--qds-form-input-border-radius)\n )) max(1px,var(\n --qds-form-input-border-radius-top-right,var(--qds-form-input-border-radius)\n )) max(1px,var(\n --qds-form-input-border-radius-bottom-right,var(--qds-form-input-border-radius)\n )) max(1px,var(\n --qds-form-input-border-radius-bottom-left,var(--qds-form-input-border-radius)\n ));box-shadow:0 0 0 var(--qds-focus-heavy-border-width) var(--qds-theme-focus-border);grid-area:d;height:calc(100% + var(--qds-form-input-border-width-default) - var(\n --qds-form-input-border-width-block-end,\n var(--qds-form-input-border-width-default)\n ));isolation:isolate;outline:var(--qds-theme-focus-border-contrast) solid var(--qds-focus-light-border-width);outline-offset:0;pointer-events:none;visibility:hidden;width:calc(100% + var(--qds-form-input-border-width-default) - var(\n --qds-form-input-border-width-inline-end,\n var(--qds-form-input-border-width-default)\n ))}[data-size=large]{font:var(--qds-form-large-text);min-height:var(--qds-form-input-large-height);padding-inline:var(--qds-form-input-large-padding-start) var(--qds-form-input-large-padding-end)}.qds-password-padding[data-size=large],[data-size=large][type=date],[data-size=large][type=datetime-local],[data-size=large][type=month],[data-size=large][type=time],[data-size=large][type=week]{padding-inline:var(--qds-form-input-large-padding-end) calc(var(--qds-form-input-large-padding-end) + var(--qds-form-input-large-height))}[data-size=large]~.qds-icon-container{padding-inline-end:var(--qds-form-input-large-padding-end)}[data-size=large][type=number]{padding-inline:var(--qds-form-input-large-padding-start) var(--qds-form-input-large-padding-end)}[data-size=large][type=file]{padding-block:var(--qds-form-input-large-padding-start) var(--qds-form-input-large-padding-end)}[data-size=large][type=file]::file-selector-button{font:var(--qds-form-large-text);margin-inline-end:var(--qds-control-large-gap-siblings-related);min-height:var(--qds-form-input-large-height);padding-inline:var(--qds-control-button-large-padding-horizontal)}[data-size=large][type=search]{padding-inline:var(--qds-form-input-large-padding-end) calc(var(--qds-form-input-small-height) + var(--qds-control-mini-button-standard-size) + var(--qds-form-input-large-padding-end) + var(--qds-form-input-large-gap-internal))}[data-size=large][type=search]~.qds-icon-container{gap:var(--qds-form-input-large-gap-internal)}.qds-custom-icon-padding[data-size=large]{padding-inline:var(--qds-form-input-large-padding-start) calc(var(--qds-form-input-large-padding-end) + var(--qds-form-input-large-height))}.qds-dual-icon-padding[data-size=large]{padding-inline:var(--qds-form-input-large-padding-start) calc(var(--qds-form-input-large-padding-end) + var(--qds-form-input-large-height) + var(--qds-control-mini-button-standard-size) + var(--qds-form-input-large-gap-internal))}.qds-dual-icon-padding[data-size=large]~.qds-icon-container{gap:var(--qds-form-input-large-gap-internal)}.qds-padding[data-size=large]{padding-inline:var(--qds-form-input-large-padding-start) var(--qds-form-input-large-padding-end)}[data-size=large]{@-moz-document url-prefix(){&[type=date],&[type=datetime-local],&[type=month],&[type=time],&[type=week]{padding-inline:var(--qds-form-input-large-padding-start) var(--qds-form-input-large-padding-end)}}}[data-size=standard]{font:var(--qds-form-standard-text);min-height:var(--qds-form-input-standard-height);padding-inline:var(--qds-form-input-standard-padding-start) var(--qds-form-input-standard-padding-end)}.qds-password-padding[data-size=standard],[data-size=standard][type=date],[data-size=standard][type=datetime-local],[data-size=standard][type=month],[data-size=standard][type=time],[data-size=standard][type=week]{padding-inline:var(--qds-form-input-standard-padding-start) calc(var(--qds-form-input-standard-padding-end) + var(--qds-form-input-standard-height))}[data-size=standard]~.qds-icon-container{padding-inline-end:var(--qds-form-input-standard-padding-end)}[data-size=standard][type=number]{padding-inline:var(--qds-form-input-standard-padding-start) var(--qds-form-input-standard-padding-end)}[data-size=standard][type=file]{padding-block:var(--qds-form-input-standard-padding-start) var(--qds-form-input-standard-padding-end)}[data-size=standard][type=file]::file-selector-button{font:var(--qds-form-standard-text);margin-inline-end:var(--qds-control-standard-gap-siblings-related);min-height:var(--qds-form-input-standard-height);padding-inline:var(--qds-control-button-standard-padding-horizontal)}[data-size=standard][type=search]{padding-inline:var(--qds-form-input-standard-padding-end) calc(var(--qds-form-input-small-height) + var(--qds-control-mini-button-standard-size) + var(--qds-form-input-standard-padding-end) + var(--qds-form-input-standard-gap-internal))}[data-size=standard][type=search]~.qds-icon-container{gap:var(--qds-form-input-standard-gap-internal)}.qds-custom-icon-padding[data-size=standard]{padding-inline:var(--qds-form-input-standard-padding-start) calc(var(--qds-form-input-standard-padding-end) + var(--qds-form-input-standard-height))}.qds-dual-icon-padding[data-size=standard]{padding-inline:var(--qds-form-input-standard-padding-start) calc(var(--qds-form-input-standard-padding-end) + var(--qds-form-input-standard-height) + var(--qds-control-mini-button-standard-size) + var(--qds-form-input-standard-gap-internal))}.qds-dual-icon-padding[data-size=standard]~.qds-icon-container{gap:var(--qds-form-input-standard-gap-internal)}.qds-padding[data-size=standard]{padding-inline:var(--qds-form-input-standard-padding-start) var(--qds-form-input-standard-padding-end)}[data-size=standard]{@-moz-document url-prefix(){&[type=date],&[type=datetime-local],&[type=month],&[type=time],&[type=week]{padding-inline:var(--qds-form-input-standard-padding-start) var(--qds-form-input-standard-padding-end)}}}[data-size=small]{font:var(--qds-form-small-text);min-height:var(--qds-form-input-small-height);padding-inline:var(--qds-form-input-small-padding-start) var(--qds-form-input-small-padding-end)}.qds-password-padding[data-size=small],[data-size=small][type=date],[data-size=small][type=datetime-local],[data-size=small][type=month],[data-size=small][type=time],[data-size=small][type=week]{padding-inline:var(--qds-form-input-small-padding-end) calc(var(--qds-form-input-small-padding-end) + var(--qds-form-input-small-height))}[data-size=small]~.qds-icon-container{padding-inline-end:var(--qds-form-input-small-padding-end)}[data-size=small][type=number]{padding-inline:var(--qds-form-input-small-padding-start) var(--qds-form-input-small-padding-end)}[data-size=small][type=file]{padding-block:var(--qds-form-input-small-padding-start) var(--qds-form-input-small-padding-end)}[data-size=small][type=file]::file-selector-button{font:var(--qds-form-small-text);margin-inline-end:var(--qds-control-small-gap-siblings-related);min-height:var(--qds-form-input-small-height);padding-inline:var(--qds-control-button-small-padding-horizontal)}[data-size=small][type=search]{padding-inline:var(--qds-form-input-small-padding-end) calc(var(--qds-form-input-small-height) + var(--qds-control-mini-button-standard-size) + var(--qds-form-input-small-padding-end) + var(--qds-form-input-small-gap-internal))}[data-size=small][type=search]~.qds-icon-container{gap:var(--qds-form-input-small-gap-internal)}.qds-custom-icon-padding[data-size=small]{padding-inline:var(--qds-form-input-small-padding-start) calc(var(--qds-form-input-small-padding-end) + var(--qds-form-input-small-height))}.qds-dual-icon-padding[data-size=small]{padding-inline:var(--qds-form-input-small-padding-start) calc(var(--qds-form-input-small-padding-end) + var(--qds-form-input-small-height) + var(--qds-control-mini-button-standard-size) + var(--qds-form-input-small-gap-internal))}.qds-dual-icon-padding[data-size=small]~.qds-icon-container{gap:var(--qds-form-input-small-gap-internal)}.qds-padding[data-size=small]{padding-inline:var(--qds-form-input-small-padding-start) var(--qds-form-input-small-padding-end)}[data-size=small]{@-moz-document url-prefix(){&[type=date],&[type=datetime-local],&[type=month],&[type=time],&[type=week]{padding-inline:var(--qds-form-input-small-padding-start) var(--qds-form-input-small-padding-end)}}}.qds-input{-webkit-appearance:textfield;appearance:textfield;background-color:var(--qds-theme-form-input-background-default);border-color:var(--qds-theme-form-input-border-default);border-radius:var(\n --qds-form-input-border-radius-top-left,var(--qds-form-input-border-radius)\n ) var(\n --qds-form-input-border-radius-top-right,var(--qds-form-input-border-radius)\n ) var(\n --qds-form-input-border-radius-bottom-right,var(--qds-form-input-border-radius)\n ) var(\n --qds-form-input-border-radius-bottom-left,var(--qds-form-input-border-radius)\n );border-style:solid;border-width:var(--qds-form-input-border-width-default) var(\n --qds-form-input-border-width-inline-end,var(--qds-form-input-border-width-default)\n ) var(\n --qds-form-input-border-width-block-end,var(--qds-form-input-border-width-default)\n ) var(--qds-form-input-border-width-default);box-sizing:border-box;color:var(--qds-theme-form-input-text-active);grid-area:d;padding-block:0}.qds-input.qds-hide~.qds-icon-container{display:none}.qds-input:disabled,.qds-input:disabled~.qds-icon-container{opacity:var(--qds-theme-disabled);pointer-events:none}.qds-input:focus-visible{outline:none}.qds-input:focus-visible~.qds-focus-ring{visibility:visible}.qds-input:read-only{background-color:var(--qds-theme-form-input-background-read-only);border-color:var(--qds-theme-form-input-border-disabled)}.qds-input:placeholder-shown{color:var(--qds-theme-control-text-placeholder)}.qds-input:hover{background-color:var(--qds-theme-form-input-background-hover);border-color:var(--qds-theme-form-input-border-hover)}.qds-input:active{background-color:var(--qds-theme-form-input-background-active);color:var(--qds-theme-form-input-text-active)}.qds-input::-webkit-search-cancel-button,.qds-input:is([type=date],[type=datetime-local],[type=month],[type=time],[type=week])::-webkit-calendar-picker-indicator{display:none}.qds-input[type=file]::file-selector-button{background-color:initial;border:var(--qds-form-input-border-width-default) solid var(--qds-theme-form-input-border-default);border-radius:var(--qds-control-border-radius);color:var(--qds-theme-form-input-text-active)}.qds-input[type=file]::file-selector-button:hover{background-color:var(--qds-theme-interactive-background-hover)}.qds-input[type=file]::file-selector-button:active{background-color:var(--qds-theme-interactive-background-pressed)}.qds-input[type=color]{-webkit-appearance:none;appearance:none;cursor:pointer;min-width:50px;padding-block:var(--qds-form-input-standard-padding-end);padding-inline:var(--qds-form-input-standard-padding-end)}.qds-input[type=color]::-webkit-color-swatch-wrapper{padding:0}.qds-input[type=color]::-webkit-color-swatch{border:var(--qds-form-input-border-width-default) solid var(--qds-theme-form-input-border-default);border-radius:var(--qds-control-border-radius)}.qds-input[type=color]::-moz-color-swatch{border:var(--qds-form-input-border-width-default) solid var(--qds-theme-form-input-border-default);border-radius:var(--qds-control-border-radius)}.qds-input[type=color]:hover{background-color:var(--qds-theme-interactive-background-hover)}.qds-input[type=color]:active{background-color:var(--qds-theme-interactive-background-pressed)}.qds-input.qds-search-padding[data-size=standard]{padding-inline:var(--qds-form-input-standard-padding-end) calc(var(--qds-form-input-small-height) + var(--qds-form-input-standard-padding-end))}.qds-input[data-size=standard][type=file]{height:auto}.qds-input.qds-search-padding[data-size=large]{padding-inline:var(--qds-form-input-large-padding-end) calc(var(--qds-form-input-small-height) + var(--qds-form-input-large-padding-end))}.qds-input[data-size=large][type=file]{height:auto}.qds-input.qds-search-padding[data-size=small]{padding-inline:var(--qds-form-input-small-padding-end) calc(var(--qds-form-input-small-height) + var(--qds-form-input-small-padding-end))}.qds-input[data-size=small][type=file]{height:auto}.qds-input{@-moz-document url-prefix(){&[type=number]{appearance:none}}}.qds-input[data-status]{border-width:var(--qds-form-input-border-width-status) var(\n --qds-form-input-border-width-inline-end,var(--qds-form-input-border-width-status)\n ) var(\n --qds-form-input-border-width-block-end,var(--qds-form-input-border-width-status)\n ) var(--qds-form-input-border-width-status)}.qds-input[data-status=success]{border-color:var(--qds-theme-form-input-border-success)}.qds-input[data-status=warning]{border-color:var(--qds-theme-form-input-border-warning)}.qds-input:not(:focus):user-invalid,.qds-input[data-status=error]{border-color:var(--qds-theme-form-input-border-error)}.qds-icon-container{align-items:center;display:flex;justify-content:center;justify-self:end}";
|
|
10
|
+
const inputCss = ":host([hidden]){display:none!important}:host{display:inline-block}@-moz-document url-prefix(){[type=date]~.qds-icon-container,[type=datetime-local]~.qds-icon-container,[type=month]~.qds-icon-container,[type=time]~.qds-icon-container,[type=week]~.qds-icon-container{display:none}}input[type=password]::-ms-reveal{display:none}.qds-container,.qds-input{letter-spacing:inherit;max-width:inherit;width:inherit;word-spacing:inherit}.qds-container{align-content:flex-start;align-items:center;box-sizing:border-box;display:grid;grid-template-areas:\"d\"}.qds-icon-container,.qds-input{grid-area:d}.qds-focus-ring{border-radius:max(1px,var(\n --qds-form-input-border-radius-top-left,var(--qds-form-input-border-radius)\n )) max(1px,var(\n --qds-form-input-border-radius-top-right,var(--qds-form-input-border-radius)\n )) max(1px,var(\n --qds-form-input-border-radius-bottom-right,var(--qds-form-input-border-radius)\n )) max(1px,var(\n --qds-form-input-border-radius-bottom-left,var(--qds-form-input-border-radius)\n ));box-shadow:0 0 0 var(--qds-focus-heavy-border-width) var(--qds-theme-focus-border);grid-area:d;height:calc(100% + var(--qds-form-input-border-width-default) - var(\n --qds-form-input-border-width-block-end,\n var(--qds-form-input-border-width-default)\n ));isolation:isolate;outline:var(--qds-theme-focus-border-contrast) solid var(--qds-focus-light-border-width);outline-offset:0;pointer-events:none;visibility:hidden;width:calc(100% + var(--qds-form-input-border-width-default) - var(\n --qds-form-input-border-width-inline-end,\n var(--qds-form-input-border-width-default)\n ))}[data-size=large]{font:var(--qds-form-large-text);min-height:var(--qds-form-input-large-height);padding-inline:var(--qds-form-input-large-padding-start) var(--qds-form-input-large-padding-end)}.qds-password-padding[data-size=large],[data-size=large][type=date],[data-size=large][type=datetime-local],[data-size=large][type=month],[data-size=large][type=time],[data-size=large][type=week]{padding-inline:var(--qds-form-input-large-padding-end) calc(var(--qds-form-input-large-padding-end) + var(--qds-form-input-large-height))}[data-size=large]~.qds-icon-container{padding-inline-end:var(--qds-form-input-large-padding-end)}[data-size=large][type=number]{padding-inline:var(--qds-form-input-large-padding-start) var(--qds-form-input-large-padding-end)}[data-size=large][type=file]{padding-block:var(--qds-form-input-large-padding-start) var(--qds-form-input-large-padding-end)}[data-size=large][type=file]::file-selector-button{font:var(--qds-form-large-text);margin-inline-end:var(--qds-control-large-gap-siblings-related);min-height:var(--qds-form-input-large-height);padding-inline:var(--qds-control-button-large-padding-horizontal)}[data-size=large][type=search]{padding-inline:var(--qds-form-input-large-padding-end) calc(var(--qds-form-input-small-height) + var(--qds-control-mini-button-standard-size) + var(--qds-form-input-large-padding-end) + var(--qds-form-input-large-gap-internal))}[data-size=large][type=search]~.qds-icon-container{gap:var(--qds-form-input-large-gap-internal)}.qds-custom-icon-padding[data-size=large]{padding-inline:var(--qds-form-input-large-padding-start) calc(var(--qds-form-input-large-padding-end) + var(--qds-form-input-large-height))}.qds-dual-icon-padding[data-size=large]{padding-inline:var(--qds-form-input-large-padding-start) calc(var(--qds-form-input-large-padding-end) + var(--qds-form-input-large-height) + var(--qds-control-mini-button-standard-size) + var(--qds-form-input-large-gap-internal))}.qds-dual-icon-padding[data-size=large]~.qds-icon-container{gap:var(--qds-form-input-large-gap-internal)}.qds-padding[data-size=large]{padding-inline:var(--qds-form-input-large-padding-start) var(--qds-form-input-large-padding-end)}[data-size=large]{@-moz-document url-prefix(){&[type=date],&[type=datetime-local],&[type=month],&[type=time],&[type=week]{padding-inline:var(--qds-form-input-large-padding-start) var(--qds-form-input-large-padding-end)}}}[data-size=standard]{font:var(--qds-form-standard-text);min-height:var(--qds-form-input-standard-height);padding-inline:var(--qds-form-input-standard-padding-start) var(--qds-form-input-standard-padding-end)}.qds-password-padding[data-size=standard],[data-size=standard][type=date],[data-size=standard][type=datetime-local],[data-size=standard][type=month],[data-size=standard][type=time],[data-size=standard][type=week]{padding-inline:var(--qds-form-input-standard-padding-start) calc(var(--qds-form-input-standard-padding-end) + var(--qds-form-input-standard-height))}[data-size=standard]~.qds-icon-container{padding-inline-end:var(--qds-form-input-standard-padding-end)}[data-size=standard][type=number]{padding-inline:var(--qds-form-input-standard-padding-start) var(--qds-form-input-standard-padding-end)}[data-size=standard][type=file]{padding-block:var(--qds-form-input-standard-padding-start) var(--qds-form-input-standard-padding-end)}[data-size=standard][type=file]::file-selector-button{font:var(--qds-form-standard-text);margin-inline-end:var(--qds-control-standard-gap-siblings-related);min-height:var(--qds-form-input-standard-height);padding-inline:var(--qds-control-button-standard-padding-horizontal)}[data-size=standard][type=search]{padding-inline:var(--qds-form-input-standard-padding-end) calc(var(--qds-form-input-small-height) + var(--qds-control-mini-button-standard-size) + var(--qds-form-input-standard-padding-end) + var(--qds-form-input-standard-gap-internal))}[data-size=standard][type=search]~.qds-icon-container{gap:var(--qds-form-input-standard-gap-internal)}.qds-custom-icon-padding[data-size=standard]{padding-inline:var(--qds-form-input-standard-padding-start) calc(var(--qds-form-input-standard-padding-end) + var(--qds-form-input-standard-height))}.qds-dual-icon-padding[data-size=standard]{padding-inline:var(--qds-form-input-standard-padding-start) calc(var(--qds-form-input-standard-padding-end) + var(--qds-form-input-standard-height) + var(--qds-control-mini-button-standard-size) + var(--qds-form-input-standard-gap-internal))}.qds-dual-icon-padding[data-size=standard]~.qds-icon-container{gap:var(--qds-form-input-standard-gap-internal)}.qds-padding[data-size=standard]{padding-inline:var(--qds-form-input-standard-padding-start) var(--qds-form-input-standard-padding-end)}[data-size=standard]{@-moz-document url-prefix(){&[type=date],&[type=datetime-local],&[type=month],&[type=time],&[type=week]{padding-inline:var(--qds-form-input-standard-padding-start) var(--qds-form-input-standard-padding-end)}}}[data-size=small]{font:var(--qds-form-small-text);min-height:var(--qds-form-input-small-height);padding-inline:var(--qds-form-input-small-padding-start) var(--qds-form-input-small-padding-end)}.qds-password-padding[data-size=small],[data-size=small][type=date],[data-size=small][type=datetime-local],[data-size=small][type=month],[data-size=small][type=time],[data-size=small][type=week]{padding-inline:var(--qds-form-input-small-padding-end) calc(var(--qds-form-input-small-padding-end) + var(--qds-form-input-small-height))}[data-size=small]~.qds-icon-container{padding-inline-end:var(--qds-form-input-small-padding-end)}[data-size=small][type=number]{padding-inline:var(--qds-form-input-small-padding-start) var(--qds-form-input-small-padding-end)}[data-size=small][type=file]{padding-block:var(--qds-form-input-small-padding-start) var(--qds-form-input-small-padding-end)}[data-size=small][type=file]::file-selector-button{font:var(--qds-form-small-text);margin-inline-end:var(--qds-control-small-gap-siblings-related);min-height:var(--qds-form-input-small-height);padding-inline:var(--qds-control-button-small-padding-horizontal)}[data-size=small][type=search]{padding-inline:var(--qds-form-input-small-padding-end) calc(var(--qds-form-input-small-height) + var(--qds-control-mini-button-standard-size) + var(--qds-form-input-small-padding-end) + var(--qds-form-input-small-gap-internal))}[data-size=small][type=search]~.qds-icon-container{gap:var(--qds-form-input-small-gap-internal)}.qds-custom-icon-padding[data-size=small]{padding-inline:var(--qds-form-input-small-padding-start) calc(var(--qds-form-input-small-padding-end) + var(--qds-form-input-small-height))}.qds-dual-icon-padding[data-size=small]{padding-inline:var(--qds-form-input-small-padding-start) calc(var(--qds-form-input-small-padding-end) + var(--qds-form-input-small-height) + var(--qds-control-mini-button-standard-size) + var(--qds-form-input-small-gap-internal))}.qds-dual-icon-padding[data-size=small]~.qds-icon-container{gap:var(--qds-form-input-small-gap-internal)}.qds-padding[data-size=small]{padding-inline:var(--qds-form-input-small-padding-start) var(--qds-form-input-small-padding-end)}[data-size=small]{@-moz-document url-prefix(){&[type=date],&[type=datetime-local],&[type=month],&[type=time],&[type=week]{padding-inline:var(--qds-form-input-small-padding-start) var(--qds-form-input-small-padding-end)}}}.qds-input{-webkit-appearance:textfield;appearance:textfield;background-color:var(--qds-theme-form-input-background-default);border-color:var(--qds-theme-form-input-border-default);border-radius:var(\n --qds-form-input-border-radius-top-left,var(--qds-form-input-border-radius)\n ) var(\n --qds-form-input-border-radius-top-right,var(--qds-form-input-border-radius)\n ) var(\n --qds-form-input-border-radius-bottom-right,var(--qds-form-input-border-radius)\n ) var(\n --qds-form-input-border-radius-bottom-left,var(--qds-form-input-border-radius)\n );border-style:solid;border-width:var(--qds-form-input-border-width-default) var(\n --qds-form-input-border-width-inline-end,var(--qds-form-input-border-width-default)\n ) var(\n --qds-form-input-border-width-block-end,var(--qds-form-input-border-width-default)\n ) var(--qds-form-input-border-width-default);box-sizing:border-box;color:var(--qds-theme-form-input-text-active);grid-area:d;padding-block:0}.qds-input.qds-hide~.qds-icon-container{display:none}.qds-input:disabled,.qds-input:disabled~.qds-icon-container{opacity:var(--qds-theme-disabled);pointer-events:none}.qds-input:focus-visible{outline:none}.qds-input:focus-visible~.qds-focus-ring{visibility:visible}.qds-input:read-only{background-color:var(--qds-theme-form-input-background-read-only);border-color:var(--qds-theme-form-input-border-disabled)}.qds-input:placeholder-shown{color:var(--qds-theme-control-text-placeholder)}.qds-input:hover{background-color:var(--qds-theme-form-input-background-hover);border-color:var(--qds-theme-form-input-border-hover)}.qds-input:active{background-color:var(--qds-theme-form-input-background-active);color:var(--qds-theme-form-input-text-active)}.qds-input::-webkit-search-cancel-button,.qds-input:is([type=date],[type=datetime-local],[type=month],[type=time],[type=week])::-webkit-calendar-picker-indicator{display:none}.qds-input[type=file]::file-selector-button{background-color:initial;border:var(--qds-form-input-border-width-default) solid var(--qds-theme-form-input-border-default);border-radius:var(--qds-control-border-radius);color:var(--qds-theme-form-input-text-active)}.qds-input[type=file]::file-selector-button:hover{background-color:var(--qds-theme-interactive-background-hover)}.qds-input[type=file]::file-selector-button:active{background-color:var(--qds-theme-interactive-background-pressed)}.qds-input[type=color]{-webkit-appearance:none;appearance:none;cursor:pointer;min-width:50px;padding-block:var(--qds-form-input-standard-padding-end);padding-inline:var(--qds-form-input-standard-padding-end)}.qds-input[type=color]::-webkit-color-swatch-wrapper{padding:0}.qds-input[type=color]::-webkit-color-swatch{border:var(--qds-form-input-border-width-default) solid var(--qds-theme-form-input-border-default);border-radius:var(--qds-control-border-radius)}.qds-input[type=color]::-moz-color-swatch{border:var(--qds-form-input-border-width-default) solid var(--qds-theme-form-input-border-default);border-radius:var(--qds-control-border-radius)}.qds-input[type=color]:hover{background-color:var(--qds-theme-interactive-background-hover)}.qds-input[type=color]:active{background-color:var(--qds-theme-interactive-background-pressed)}.qds-input.qds-search-padding[data-size=standard]{padding-inline:var(--qds-form-input-standard-padding-end) calc(var(--qds-form-input-small-height) + var(--qds-form-input-standard-padding-end))}.qds-input[data-size=standard][type=file]{height:auto}.qds-input.qds-search-padding[data-size=large]{padding-inline:var(--qds-form-input-large-padding-end) calc(var(--qds-form-input-small-height) + var(--qds-form-input-large-padding-end))}.qds-input[data-size=large][type=file]{height:auto}.qds-input.qds-search-padding[data-size=small]{padding-inline:var(--qds-form-input-small-padding-end) calc(var(--qds-form-input-small-height) + var(--qds-form-input-small-padding-end))}.qds-input[data-size=small][type=file]{height:auto}.qds-input{@-moz-document url-prefix(){&[type=number]{appearance:none}}}.qds-input[data-status]{border-width:var(--qds-form-input-border-width-status) var(\n --qds-form-input-border-width-inline-end,var(--qds-form-input-border-width-status)\n ) var(\n --qds-form-input-border-width-block-end,var(--qds-form-input-border-width-status)\n ) var(--qds-form-input-border-width-status)}.qds-input[data-status=success]{border-color:var(--qds-theme-form-input-border-success)}.qds-input[data-status=warning]{border-color:var(--qds-theme-form-input-border-warning)}.qds-input:not(:focus):user-invalid,.qds-input[data-status=error]{border-color:var(--qds-theme-form-input-border-error)}.qds-icon-container{align-items:center;display:flex;justify-content:center;justify-self:end}";
|
|
11
11
|
|
|
12
12
|
// SPDX-FileCopyrightText: © 2024 Schneider Electric
|
|
13
13
|
//
|
|
@@ -400,7 +400,7 @@ const Input = class {
|
|
|
400
400
|
const shouldShowSearchButton = isSearchType && this.noIcon === false;
|
|
401
401
|
const shouldHideIcon = !isSearchType && this.noIcon === true;
|
|
402
402
|
const shouldRemoveSearchPadding = isSearchType && this.noIcon === true;
|
|
403
|
-
return (h("div", { key: '
|
|
403
|
+
return (h("div", { key: '5fafd9f757ef2f22e8674646a8d39ea35ef5512d', class: "qds-container" }, h("input", { key: '28973fa020fad68133f42362becd41823fc97776', accept: this.accept, autoCapitalize: this.host.autocapitalize, autoComplete: this.autoComplete,
|
|
404
404
|
// eslint-disable-next-line jsx-a11y/no-autofocus
|
|
405
405
|
autoFocus: this.host.autofocus, capture: this.capture, class: {
|
|
406
406
|
'qds-search-padding': shouldRemoveSearchPadding,
|
|
@@ -411,7 +411,7 @@ const Input = class {
|
|
|
411
411
|
(this.isPasswordVisible && this.type === 'text'),
|
|
412
412
|
'qds-custom-icon-padding': shouldShowClearableButton && !__classPrivateFieldGet(this, _Input_instances, "a", _Input_computedIconName_get),
|
|
413
413
|
'qds-dual-icon-padding': shouldShowClearableButton && __classPrivateFieldGet(this, _Input_instances, "a", _Input_hasInteractiveIcon_get),
|
|
414
|
-
}, "data-status": __classPrivateFieldGet(this, _Input_instances, "a", _Input_computedStatus_get), "data-size": __classPrivateFieldGet(this, _Input_instances, "a", _Input_computedSize_get), disabled: __classPrivateFieldGet(this, _Input_instances, "a", _Input_computedDisabled_get), enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, max: this.max, maxLength: this.maxLength, min: this.min, minLength: this.minLength, multiple: this.multiple, onBlur: __classPrivateFieldGet(this, _Input_onBlur, "f"), onChange: __classPrivateFieldGet(this, _Input_onChange, "f"), onFocus: __classPrivateFieldGet(this, _Input_onFocus, "f"), onInput: __classPrivateFieldGet(this, _Input_onInput, "f"), placeholder: this.placeholder, readOnly: this.readonly, ref: __classPrivateFieldGet(this, _Input_ref, "f"), spellcheck: this.host.spellcheck, step: this.step, tabIndex: __classPrivateFieldGet(this, _Input_instances, "a", _Input_computedDisabled_get) ? undefined : this.tabIndex, type: __classPrivateFieldGet(this, _Input_instances, "a", _Input_computedType_get), value: this.value ?? '', ...__classPrivateFieldGet(this, _Input_inheritedAttributes, "f") }), h("div", { key: '
|
|
414
|
+
}, "data-status": __classPrivateFieldGet(this, _Input_instances, "a", _Input_computedStatus_get), "data-size": __classPrivateFieldGet(this, _Input_instances, "a", _Input_computedSize_get), disabled: __classPrivateFieldGet(this, _Input_instances, "a", _Input_computedDisabled_get), enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, max: this.max, maxLength: this.maxLength, min: this.min, minLength: this.minLength, multiple: this.multiple, onBlur: __classPrivateFieldGet(this, _Input_onBlur, "f"), onChange: __classPrivateFieldGet(this, _Input_onChange, "f"), onFocus: __classPrivateFieldGet(this, _Input_onFocus, "f"), onInput: __classPrivateFieldGet(this, _Input_onInput, "f"), placeholder: this.placeholder, readOnly: this.readonly, ref: __classPrivateFieldGet(this, _Input_ref, "f"), spellcheck: this.host.spellcheck, step: this.step, tabIndex: __classPrivateFieldGet(this, _Input_instances, "a", _Input_computedDisabled_get) ? undefined : this.tabIndex, type: __classPrivateFieldGet(this, _Input_instances, "a", _Input_computedType_get), value: this.value ?? '', ...__classPrivateFieldGet(this, _Input_inheritedAttributes, "f") }), h("div", { key: 'f566daf7b17d5c4fc9bd846744a14c71ac18b65a', class: "qds-focus-ring" }), shouldShowClearableButton && !__classPrivateFieldGet(this, _Input_instances, "a", _Input_computedIconName_get) && (h("div", { key: '397dc20c1680762a218100fd714249b75f8473ad', class: "qds-icon-container" }, __classPrivateFieldGet(this, _Input_renderClearableButton, "f").call(this))), __classPrivateFieldGet(this, _Input_instances, "a", _Input_computedIconName_get) && (h("div", { key: '5c500890ef26da34262829df4065f64e63b5089a', class: "qds-icon-container" }, shouldShowClearButton && __classPrivateFieldGet(this, _Input_renderSearchClearButton, "f").call(this), shouldShowClearableButton &&
|
|
415
415
|
__classPrivateFieldGet(this, _Input_instances, "a", _Input_hasInteractiveIcon_get) &&
|
|
416
416
|
__classPrivateFieldGet(this, _Input_renderClearableButton, "f").call(this), __classPrivateFieldGet(this, _Input_instances, "a", _Input_hasInteractiveIcon_get) && __classPrivateFieldGet(this, _Input_renderInteractiveIconButton, "f").call(this), shouldShowSearchButton && __classPrivateFieldGet(this, _Input_renderSearchButton, "f").call(this)))));
|
|
417
417
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qds-input.entry.js","sources":["src/components/input/input.css?tag=qds-input&encapsulation=shadow","src/components/input/input.tsx"],"sourcesContent":["/* stylelint-disable no-descending-specificity */\n/* stylelint-disable-next-line comment-empty-line-before */\n/*\n * SPDX-FileCopyrightText: © 2024 Schneider Electric\n *\n * SPDX-License-Identifier: Apache-2.0\n */\n\n@import url('../shared.css');\n\n:host {\n display: inline-block;\n}\n\n@-moz-document url-prefix() {\n [type='date'],\n [type='datetime-local'],\n [type='month'],\n [type='time'],\n [type='week'] {\n ~ .qds-icon-container {\n display: none;\n }\n }\n}\n\ninput[type='password']::-ms-reveal {\n display: none;\n}\n\n.qds-container,\n.qds-input {\n max-width: inherit;\n width: inherit;\n}\n\n.qds-container {\n align-content: flex-start;\n align-items: center;\n box-sizing: border-box;\n display: grid;\n grid-template-areas: 'input';\n}\n\n.qds-input,\n.qds-icon-container {\n grid-area: input;\n}\n\n.qds-focus-ring {\n /* Support control groups where each corner needs to be individually adjusted depending on where these components are placed in the control group (start, middle, end) */\n border-radius: max(\n 1px,\n var(\n --qds-form-input-border-radius-top-left,\n var(--qds-form-input-border-radius)\n )\n )\n max(\n 1px,\n var(\n --qds-form-input-border-radius-top-right,\n var(--qds-form-input-border-radius)\n )\n )\n max(\n 1px,\n var(\n --qds-form-input-border-radius-bottom-right,\n var(--qds-form-input-border-radius)\n )\n )\n max(\n 1px,\n var(\n --qds-form-input-border-radius-bottom-left,\n var(--qds-form-input-border-radius)\n )\n );\n grid-area: input;\n isolation: isolate;\n\n /* inner ring */\n outline: var(--qds-theme-focus-border-contrast) solid\n var(--qds-focus-light-border-width);\n outline-offset: 0;\n\n /* outer ring */\n box-shadow: 0 0 0 var(--qds-focus-heavy-border-width)\n var(--qds-theme-focus-border);\n pointer-events: none;\n visibility: hidden;\n width: calc(\n 100% + var(--qds-form-input-border-width-default) -\n var(\n --qds-form-input-border-width-inline-end,\n var(--qds-form-input-border-width-default)\n )\n );\n height: calc(\n 100% + var(--qds-form-input-border-width-default) -\n var(\n --qds-form-input-border-width-block-end,\n var(--qds-form-input-border-width-default)\n )\n );\n}\n\n[data-size='large'] {\n font: var(--qds-form-large-text);\n min-height: var(--qds-form-input-large-height);\n padding-inline: var(--qds-form-input-large-padding-start)\n var(--qds-form-input-large-padding-end);\n\n &.qds-password-padding,\n &[type='date'],\n &[type='datetime-local'],\n &[type='month'],\n &[type='time'],\n &[type='week'] {\n padding-inline: var(--qds-form-input-large-padding-end)\n calc(\n var(--qds-form-input-large-padding-end) +\n var(--qds-form-input-large-height)\n );\n }\n\n & ~ .qds-icon-container {\n padding-inline-end: var(--qds-form-input-large-padding-end);\n }\n\n &[type='number'] {\n padding-inline: var(--qds-form-input-large-padding-start)\n var(--qds-form-input-large-padding-end);\n }\n\n &[type='file'] {\n padding-block: var(--qds-form-input-large-padding-start)\n var(--qds-form-input-large-padding-end);\n }\n\n &[type='file']::file-selector-button {\n font: var(--qds-form-large-text);\n min-height: var(--qds-form-input-large-height);\n margin-inline-end: var(--qds-control-large-gap-siblings-related);\n padding-inline: var(--qds-control-button-large-padding-horizontal);\n }\n\n &[type='search'] {\n padding-inline: var(--qds-form-input-large-padding-end)\n calc(\n var(--qds-form-input-small-height) +\n var(--qds-control-mini-button-standard-size) +\n var(--qds-form-input-large-padding-end) +\n var(--qds-form-input-large-gap-internal)\n );\n\n & ~ .qds-icon-container {\n gap: var(--qds-form-input-large-gap-internal);\n }\n }\n\n &.qds-custom-icon-padding {\n padding-inline: var(--qds-form-input-large-padding-start)\n calc(\n var(--qds-form-input-large-padding-end) +\n var(--qds-form-input-large-height)\n );\n }\n\n &.qds-dual-icon-padding {\n padding-inline: var(--qds-form-input-large-padding-start)\n calc(\n var(--qds-form-input-large-padding-end) +\n var(--qds-form-input-large-height) +\n var(--qds-control-mini-button-standard-size) +\n var(--qds-form-input-large-gap-internal)\n );\n\n & ~ .qds-icon-container {\n gap: var(--qds-form-input-large-gap-internal);\n }\n }\n\n &.qds-padding {\n padding-inline: var(--qds-form-input-large-padding-start)\n var(--qds-form-input-large-padding-end);\n }\n\n @-moz-document url-prefix() {\n &[type='date'],\n &[type='datetime-local'],\n &[type='month'],\n &[type='week'],\n &[type='time'] {\n padding-inline: var(--qds-form-input-large-padding-start)\n var(--qds-form-input-large-padding-end);\n }\n }\n}\n\n[data-size='standard'] {\n font: var(--qds-form-standard-text);\n min-height: var(--qds-form-input-standard-height);\n padding-inline: var(--qds-form-input-standard-padding-start)\n var(--qds-form-input-standard-padding-end);\n\n &.qds-password-padding,\n &[type='date'],\n &[type='datetime-local'],\n &[type='month'],\n &[type='time'],\n &[type='week'] {\n padding-inline: var(--qds-form-input-standard-padding-start)\n calc(\n var(--qds-form-input-standard-padding-end) +\n var(--qds-form-input-standard-height)\n );\n }\n\n & ~ .qds-icon-container {\n padding-inline-end: var(--qds-form-input-standard-padding-end);\n }\n\n &[type='number'] {\n padding-inline: var(--qds-form-input-standard-padding-start)\n var(--qds-form-input-standard-padding-end);\n }\n\n &[type='file'] {\n padding-block: var(--qds-form-input-standard-padding-start)\n var(--qds-form-input-standard-padding-end);\n }\n\n &[type='file']::file-selector-button {\n font: var(--qds-form-standard-text);\n min-height: var(--qds-form-input-standard-height);\n margin-inline-end: var(--qds-control-standard-gap-siblings-related);\n padding-inline: var(--qds-control-button-standard-padding-horizontal);\n }\n\n &[type='search'] {\n padding-inline: var(--qds-form-input-standard-padding-end)\n calc(\n var(--qds-form-input-small-height) +\n var(--qds-control-mini-button-standard-size) +\n var(--qds-form-input-standard-padding-end) +\n var(--qds-form-input-standard-gap-internal)\n );\n\n & ~ .qds-icon-container {\n gap: var(--qds-form-input-standard-gap-internal);\n }\n }\n\n &.qds-custom-icon-padding {\n padding-inline: var(--qds-form-input-standard-padding-start)\n calc(\n var(--qds-form-input-standard-padding-end) +\n var(--qds-form-input-standard-height)\n );\n }\n\n &.qds-dual-icon-padding {\n padding-inline: var(--qds-form-input-standard-padding-start)\n calc(\n var(--qds-form-input-standard-padding-end) +\n var(--qds-form-input-standard-height) +\n var(--qds-control-mini-button-standard-size) +\n var(--qds-form-input-standard-gap-internal)\n );\n\n & ~ .qds-icon-container {\n gap: var(--qds-form-input-standard-gap-internal);\n }\n }\n\n &.qds-padding {\n padding-inline: var(--qds-form-input-standard-padding-start)\n var(--qds-form-input-standard-padding-end);\n }\n\n @-moz-document url-prefix() {\n &[type='date'],\n &[type='datetime-local'],\n &[type='month'],\n &[type='week'],\n &[type='time'] {\n padding-inline: var(--qds-form-input-standard-padding-start)\n var(--qds-form-input-standard-padding-end);\n }\n }\n}\n\n[data-size='small'] {\n font: var(--qds-form-small-text);\n min-height: var(--qds-form-input-small-height);\n padding-inline: var(--qds-form-input-small-padding-start)\n var(--qds-form-input-small-padding-end);\n\n &.qds-password-padding,\n &[type='date'],\n &[type='datetime-local'],\n &[type='month'],\n &[type='time'],\n &[type='week'] {\n padding-inline: var(--qds-form-input-small-padding-end)\n calc(\n var(--qds-form-input-small-padding-end) +\n var(--qds-form-input-small-height)\n );\n }\n\n & ~ .qds-icon-container {\n padding-inline-end: var(--qds-form-input-small-padding-end);\n }\n\n &[type='number'] {\n padding-inline: var(--qds-form-input-small-padding-start)\n var(--qds-form-input-small-padding-end);\n }\n\n &[type='file'] {\n padding-block: var(--qds-form-input-small-padding-start)\n var(--qds-form-input-small-padding-end);\n }\n\n &[type='file']::file-selector-button {\n font: var(--qds-form-small-text);\n min-height: var(--qds-form-input-small-height);\n margin-inline-end: var(--qds-control-small-gap-siblings-related);\n padding-inline: var(--qds-control-button-small-padding-horizontal);\n }\n\n &[type='search'] {\n padding-inline: var(--qds-form-input-small-padding-end)\n calc(\n var(--qds-form-input-small-height) +\n var(--qds-control-mini-button-standard-size) +\n var(--qds-form-input-small-padding-end) +\n var(--qds-form-input-small-gap-internal)\n );\n\n & ~ .qds-icon-container {\n gap: var(--qds-form-input-small-gap-internal);\n }\n }\n\n &.qds-custom-icon-padding {\n padding-inline: var(--qds-form-input-small-padding-start)\n calc(\n var(--qds-form-input-small-padding-end) +\n var(--qds-form-input-small-height)\n );\n }\n\n &.qds-dual-icon-padding {\n padding-inline: var(--qds-form-input-small-padding-start)\n calc(\n var(--qds-form-input-small-padding-end) +\n var(--qds-form-input-small-height) +\n var(--qds-control-mini-button-standard-size) +\n var(--qds-form-input-small-gap-internal)\n );\n\n & ~ .qds-icon-container {\n gap: var(--qds-form-input-small-gap-internal);\n }\n }\n\n &.qds-padding {\n padding-inline: var(--qds-form-input-small-padding-start)\n var(--qds-form-input-small-padding-end);\n }\n\n @-moz-document url-prefix() {\n &[type='date'],\n &[type='datetime-local'],\n &[type='month'],\n &[type='week'],\n &[type='time'] {\n padding-inline: var(--qds-form-input-small-padding-start)\n var(--qds-form-input-small-padding-end);\n }\n }\n}\n\n.qds-input {\n appearance: textfield;\n background-color: var(--qds-theme-form-input-background-default);\n border-color: var(--qds-theme-form-input-border-default);\n border-radius: var(\n --qds-form-input-border-radius-top-left,\n var(--qds-form-input-border-radius)\n )\n var(\n --qds-form-input-border-radius-top-right,\n var(--qds-form-input-border-radius)\n )\n var(\n --qds-form-input-border-radius-bottom-right,\n var(--qds-form-input-border-radius)\n )\n var(\n --qds-form-input-border-radius-bottom-left,\n var(--qds-form-input-border-radius)\n );\n border-style: solid;\n border-width: var(--qds-form-input-border-width-default)\n var(\n --qds-form-input-border-width-inline-end,\n var(--qds-form-input-border-width-default)\n )\n var(\n --qds-form-input-border-width-block-end,\n var(--qds-form-input-border-width-default)\n )\n var(--qds-form-input-border-width-default);\n box-sizing: border-box;\n color: var(--qds-theme-form-input-text-active);\n grid-area: input;\n padding-block: 0;\n\n &.qds-hide ~ .qds-icon-container {\n display: none;\n }\n\n &:disabled,\n &:disabled ~ .qds-icon-container {\n opacity: var(--qds-theme-disabled);\n pointer-events: none;\n }\n\n &:focus-visible {\n outline: none;\n\n ~ .qds-focus-ring {\n visibility: visible;\n }\n }\n\n &:read-only {\n background-color: var(--qds-theme-form-input-background-read-only);\n border-color: var(--qds-theme-form-input-border-disabled);\n }\n\n &:placeholder-shown {\n color: var(--qds-theme-control-text-placeholder);\n }\n\n &:hover {\n background-color: var(--qds-theme-form-input-background-hover);\n border-color: var(--qds-theme-form-input-border-hover);\n }\n\n &:active {\n background-color: var(--qds-theme-form-input-background-active);\n color: var(--qds-theme-form-input-text-active);\n }\n\n &:is(\n [type='date'],\n [type='datetime-local'],\n [type='month'],\n [type='time'],\n [type='week']\n )::-webkit-calendar-picker-indicator,\n &::-webkit-search-cancel-button {\n display: none;\n }\n\n &[type='file'] {\n &::file-selector-button {\n background-color: transparent;\n border: var(--qds-form-input-border-width-default) solid\n var(--qds-theme-form-input-border-default);\n border-radius: var(--qds-control-border-radius);\n color: var(--qds-theme-form-input-text-active);\n\n &:hover {\n background-color: var(--qds-theme-interactive-background-hover);\n }\n\n &:active {\n background-color: var(--qds-theme-interactive-background-pressed);\n }\n }\n }\n\n &[type='color'] {\n appearance: none;\n min-width: 50px;\n padding-block: var(--qds-form-input-standard-padding-end);\n padding-inline: var(--qds-form-input-standard-padding-end);\n\n &::-webkit-color-swatch-wrapper {\n padding: 0;\n }\n\n &::-webkit-color-swatch {\n border: var(--qds-form-input-border-width-default) solid\n var(--qds-theme-form-input-border-default);\n border-radius: var(--qds-control-border-radius);\n }\n\n &::-moz-color-swatch {\n border: var(--qds-form-input-border-width-default) solid\n var(--qds-theme-form-input-border-default);\n border-radius: var(--qds-control-border-radius);\n }\n\n cursor: pointer;\n\n &:hover {\n background-color: var(--qds-theme-interactive-background-hover);\n }\n\n &:active {\n background-color: var(--qds-theme-interactive-background-pressed);\n }\n }\n\n &[data-size='standard'] {\n &.qds-search-padding {\n padding-inline: var(--qds-form-input-standard-padding-end)\n calc(\n var(--qds-form-input-small-height) +\n var(--qds-form-input-standard-padding-end)\n );\n }\n\n &[type='file'] {\n height: initial;\n }\n }\n\n &[data-size='large'] {\n &.qds-search-padding {\n padding-inline: var(--qds-form-input-large-padding-end)\n calc(\n var(--qds-form-input-small-height) +\n var(--qds-form-input-large-padding-end)\n );\n }\n\n &[type='file'] {\n height: initial;\n }\n }\n\n &[data-size='small'] {\n &.qds-search-padding {\n padding-inline: var(--qds-form-input-small-padding-end)\n calc(\n var(--qds-form-input-small-height) +\n var(--qds-form-input-small-padding-end)\n );\n }\n\n &[type='file'] {\n height: initial;\n }\n }\n\n @-moz-document url-prefix() {\n &[type='number'] {\n appearance: none;\n }\n }\n\n &[data-status] {\n border-width: var(--qds-form-input-border-width-status)\n var(\n --qds-form-input-border-width-inline-end,\n var(--qds-form-input-border-width-status)\n )\n var(\n --qds-form-input-border-width-block-end,\n var(--qds-form-input-border-width-status)\n )\n var(--qds-form-input-border-width-status);\n }\n\n &[data-status='success'] {\n border-color: var(--qds-theme-form-input-border-success);\n }\n\n &[data-status='warning'] {\n border-color: var(--qds-theme-form-input-border-warning);\n }\n\n &[data-status='error'],\n &:not(:focus):user-invalid {\n border-color: var(--qds-theme-form-input-border-error);\n }\n}\n\n.qds-icon-container {\n display: flex;\n align-items: center;\n justify-content: center;\n justify-self: end;\n}\n","// SPDX-FileCopyrightText: © 2024 Schneider Electric\n//\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentInterface, EventEmitter } from '@stencil/core'\nimport {\n AttachInternals,\n Component,\n Element,\n Event,\n h,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core'\n\nimport type {\n Attributes,\n QdsFocusEventDetail,\n QdsInputEventDetail,\n} from '../../helpers'\nimport {\n inheritAriaAttributes,\n invariant,\n pickFocusEventAttributes,\n pickInputEventAttributes,\n} from '../../helpers'\nimport type { AutoComplete, EnterKeyHint, InputMode, Value } from '../controls'\nimport { CUSTOM_ERROR_FLAGS, NO_ERROR_FLAGS, VALID_STATE } from '../controls'\nimport type { Size, Status } from '../shared'\n\nexport type Capture = '' | 'environment' | 'user'\n\nexport type InputType =\n | 'color'\n | 'date'\n | 'datetime-local'\n | 'email'\n | 'file'\n | 'month'\n | 'number'\n | 'password'\n | 'search'\n | 'tel'\n | 'text'\n | 'time'\n | 'url'\n | 'week'\n\nexport type InputStatus = Exclude<Status, 'info'>\n\nconst stopImmediatePropagation = (event: Event): void => {\n event.stopImmediatePropagation()\n}\nconst supportsSearchEvent = (): boolean => {\n const input = document.createElement('input')\n input.type = 'search'\n return input.onsearch !== undefined\n}\n\n/**\n * The `<qds-input>` element is used to create interactive controls for\n * web-based forms in order to accept data from the user; a wide variety of\n * types of input data and control widgets are available, depending on the\n * device and\n * [user agent](https://developer.mozilla.org/docs/Glossary/User_agent).\n *\n * @see https://quartz.se.com/build/components/input\n */\n@Component({\n tag: 'qds-input',\n formAssociated: true,\n shadow: { delegatesFocus: true },\n styleUrl: 'input.css',\n})\nexport class Input implements ComponentInterface {\n /**\n * The input's status.\n */\n @Prop() public readonly status?: InputStatus\n\n /**\n * Prevents the user from changing the value of the input.\n *\n * @webnative\n */\n\n @Prop() public readonly readonly?: boolean\n\n /**\n * Shows a clear button that allows the user to clear the input's value.\n *\n * For `search` inputs, the clear button is always shown when the input\n * has a value, regardless of this property.\n *\n */\n @Prop() public readonly clearable?: boolean = false\n\n /**\n * @deprecated The no-icon property is deprecated and will be removed by September 2026.\n *\n * Hide the input type's icon.\n *\n * > **_NOTE:_** Due to browser limitations, the icon may not be hidden in\n * all browsers.\n */\n @Prop() public readonly noIcon?: boolean = false\n\n /**\n * The input's size.\n *\n * > **_NOTE:_** The native [`size` HTML attribute][size] is not supported.\n * CSS `width` should be used instead if this functionality is needed.\n *\n * [size]: https://developer.mozilla.org/docs/Web/HTML/Attributes/size\n */\n @Prop() public readonly size?: Size = 'standard'\n\n /**\n * Defines the file types the `file` type input should accept. This is a\n * comma-separated list of [unique file type specifiers][]. Because a given\n * file type may be identified in more than one manner, it's useful to\n * provide a thorough set of type specifiers when you files of a given format\n * are needed.\n *\n * For instance, there are a number of ways Microsoft Word files can be\n * identified, so a site that accepts Word files might use a `<qds-input>`\n * like this:\n *\n * @example\n * <qds-input\n * type=\"file\"\n * accept=\".doc,.docx,.xml,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\n * ></qds-input>\n *\n * [unique file type specifiers]: https://developer.mozilla.org/docs/Web/HTML/Element/input/file#unique_file_type_specifiers\n *\n * @webnative\n */\n @Prop() public readonly accept?: string\n\n /**\n * Provides a hint for a [user agent's][] autocomplete feature. See\n * [the HTML `autocomplete` attribute][autocomplete] for a complete list of\n * values and details on how to use `autoComplete`.\n *\n * [user agent's]: https://developer.mozilla.org/docs/Glossary/User_agent\n * [autocomplete]: https://developer.mozilla.org/docs/Web/HTML/Attributes/autocomplete\n *\n * @webnative\n */\n @Prop({ attribute: 'autocomplete' })\n public readonly autoComplete?: AutoComplete\n\n /**\n * Specifies that a new file should be captured and which device should be\n * used to capture that new media of the type defined by `accept`.\n *\n * Values include `user`, `environment`, and `''`:\n *\n * - `user`: The user-facing camera and/or microphone should be used.\n * - `environment`: The outward-facing camera and/or microphone should be\n * used.\n * - `''`: The implementation-specific capture state.\n *\n * @webnative\n */\n @Prop() public readonly capture?: Capture\n\n /**\n * Prevents the input from being interacted with: it cannot be pressed or\n * focused.\n *\n * @webnative\n */\n @Prop() public readonly disabled?: boolean\n\n /**\n * What action label (or icon) to present for the enter key on virtual\n * keyboards. Possible values:\n *\n * - `\"done\"`: Typically meaning there is nothing more to input and the input\n * method editor (IME) will be closed.\n * - `\"enter\"`:\tTypically inserting a new line.\n * - `\"go\"`: \tTypically meaning to take the user to the target of the text\n * they typed.\n * - `\"next\"`: \tTypically taking the user to the next field that will accept\n * text.\n * - `\"previous\"`: Typically taking the user to the previous field that will\n * accept text.\n * - `\"search\"`: Typically taking the user to the results of searching for\n * the text they have typed.\n * - `\"send\"`: Typically delivering the text to its target.\n *\n * @webnative\n */\n // FIXME: Can't use `attribute` option here to name this `enterKeyHint` instead.\n @Prop() public readonly enterkeyhint?: EnterKeyHint\n\n /**\n * Returns a file list for a `file` type input.\n *\n * @readonly\n * @webnative\n */\n // eslint-disable-next-line unicorn/no-null\n @Prop() public readonly files: HTMLInputElement['files'] = null\n\n /**\n * The [`<form>`][] element to associate the input with (its form owner).\n *\n * The value of this attribute must be the id of a `<form>` in the same\n * document. If this attribute is not set, the `<qds-input>` is associated\n * with its ancestor `<form>` element, if any.\n *\n * This attribute lets you associate `<qds-input>` elements to `<form>`s\n * anywhere in the document, not just inside a `<form>`. It can also override\n * an ancestor `<form>` element.\n *\n * [`<form>`]: https://developer.mozilla.org/docs/Web/HTML/Element/form\n *\n * @readonly\n * @webnative\n */\n // eslint-disable-next-line unicorn/no-null\n @Prop() public readonly form: ElementInternals['form'] | string = null\n\n /**\n * Provide a hint to browsers as to the type of virtual keyboard\n * configuration to use when editing this element or its contents.\n *\n * @webnative\n */\n // FIXME: Can't use `attribute` option here to name this `inputMode` instead.\n @Prop() public readonly inputmode?: InputMode\n\n /**\n * Returns a list of the [`<label>`][] elements associated with the\n * `qds-input` element.\n *\n * [`<label>`]: https://developer.mozilla.org/docs/Web/HTML/Element/label\n *\n * @readonly\n * @webnative\n */\n @Prop() public readonly labels: ElementInternals['labels'] =\n {} as ElementInternals['labels']\n\n /**\n * Defines the greatest value in the range of permitted values. If the\n * `value` entered into the input exceeds this, the input fails\n * [constraint validation][]. Only valid for `date`, `datetime-local`,\n * `month`, `time`, and `week` inputs.\n *\n * If this value isn't a valid number, then the input has no maximum value.\n *\n * [constraint validation]: https://developer.mozilla.org/docs/Web/Guide/HTML/Constraint_validation\n *\n * @webnative\n */\n @Prop() public readonly max?: number | string\n\n /**\n * The maximum number of characters (as UTF-16 code units) the user can enter\n * into the input. This must be an non-negative integer value. If no\n * `maxlength` is specified, or an invalid value is specified, the input has\n * no maximum length. Only valid for `email`, `password`, `search`, `tel`,\n * `text`, and `url` inputs.\n *\n * The input will fail [constraint validation][] if the length of the text\n * entered into the field is greater than `maxlength` UTF-16 code units long.\n * By default, browsers prevent users from entering more characters than\n * allowed by the `maxlength` attribute. See [Client-side validation][] for\n * more information.\n *\n * [constraint validation]: https://developer.mozilla.org/docs/Web/Guide/HTML/Constraint_validation\n * [Client-side validation]: https://developer.mozilla.org/docs/Web/HTML/Element/input#client-side_validation\n *\n * @webnative\n */\n @Prop({ attribute: 'maxlength' }) public readonly maxLength?: number\n\n /**\n * Defines the most negative value in the range of permitted values. If the\n * `value` entered into the input is less than this, the input fails\n * [constraint validation][]. Only valid for `date`, `datetime-local`,\n * `month`, `time`, and `week` inputs.\n *\n * This value must be less than or equal to the value of the `max` attribute.\n * If this value isn't a valid number, then the input has no minimum value.\n *\n * [constraint validation]: https://developer.mozilla.org/docs/Web/Guide/HTML/Constraint_validation\n *\n * @webnative\n */\n @Prop() public readonly min?: number | string\n\n /**\n * The minimum number of characters (as UTF-16 code units) the user can enter\n * into the input. This must be an non-negative integer value smaller than or\n * equal to the value specified by `maxlength`. If no `minlength` is\n * specified, or an invalid value is specified, the input has no minimum\n * length. Only valid for `email`, `password`, `search`, `tel`, `text`, and\n * `url` inputs.\n *\n * The input will fail [constraint validation][] if the length of the text\n * entered into the field is fewer than `minlength` UTF-16 code units long,\n * preventing form submission. See [Client-side validation][] for more\n * information.\n *\n * [constraint validation]: https://developer.mozilla.org/docs/Web/Guide/HTML/Constraint_validation\n * [Client-side validation]: https://developer.mozilla.org/docs/Web/HTML/Element/input#client-side_validation\n *\n * @webnative\n */\n @Prop({ attribute: 'minlength' }) public readonly minLength?: number\n\n /**\n * For `email` inputs, specifies if multiple comma-separated email addresses\n * can be entered. For `file` inputs, specifies if the user is allowed to\n * select more than one file.\n *\n * Only valid for `email` or `file` inputs.\n *\n * @webnative\n */\n @Prop() public readonly multiple?: boolean\n\n /**\n * The name of the input, which is submitted with the form data.\n *\n * @webnative\n */\n @Prop() public readonly name?: string\n\n /**\n * Defines a regular expression that the input's `value` must match in order\n * for the value to pass [constraint validation][]. It must be a valid\n * JavaScript regular expression, as used by the [`RegExp`][] type, and as\n * documented in MDN's [guide on regular expressions][]; the `'u'` flag is\n * specified when compiling the regular expression, so that the pattern is\n * treated as a sequence of Unicode code points, instead of as ASCII. No\n * forward slashes should be specified around the pattern text. Only valid\n * for `email`, `password`, `search`, `tel`, `text`, and `url` inputs.\n *\n * If the `pattern` is invalid, no regular expression is applied and this\n * property is ignored. If the pattern is valid and a non-empty value does\n * not match the pattern, constraint validation will prevent form submission.\n *\n * [constraint validation]: https://developer.mozilla.org/docs/Web/Guide/HTML/Constraint_validation\n * [`RegExp`]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RegExp\n * [guide on regular expressions]: https://developer.mozilla.org/docs/Web/JavaScript/Guide/Regular_Expressions\n *\n * @webnative\n */\n @Prop() public readonly pattern?: string\n\n /**\n * Text that appears in the input when it has no value set. Only valid for\n * `email`, `number`, `password`, `search`, `tel`, `text`, and `url` inputs.\n *\n * @webnative\n */\n @Prop() public readonly placeholder?: string\n\n /**\n * A value must be specified for the input before the owning form can be\n * submitted. Not valid for `color` inputs.\n *\n * See [Client-side validation][] and the\n * [HTML attribute: `required`][required] for more information.\n *\n * [Client-side validation]: https://developer.mozilla.org/docs/Web/HTML/Element/input#client-side_validation\n * [required]: https://developer.mozilla.org/docs/Web/HTML/Attributes/required\n *\n * @webnative\n */\n @Prop() public readonly required?: boolean\n\n /**\n * Get or set the selection direction of a text selection.\n *\n * > **_NOTE:_** This property has no effect when used as an attribute.\n *\n * @webnative\n */\n @Prop({ mutable: true })\n // eslint-disable-next-line unicorn/no-null\n public selectionDirection: HTMLInputElement['selectionDirection'] = null\n\n /**\n * Get or set the ending position or offset of a text selection.\n *\n * > **_NOTE:_** This property has no effect when used as an attribute.\n *\n * @webnative\n */\n @Prop({ mutable: true })\n // eslint-disable-next-line unicorn/no-null\n public selectionEnd: HTMLInputElement['selectionEnd'] = null\n\n /**\n * Get or set the starting position or offset of a text selection.\n *\n * > **_NOTE:_** This property has no effect when used as an attribute.\n *\n * @webnative\n */\n @Prop({ mutable: true })\n // eslint-disable-next-line unicorn/no-null\n public selectionStart: HTMLInputElement['selectionStart'] = null\n\n /**\n * Specifies the granularity that the `value` must adhere to. Only valid for\n * `date`, `datetime-local`, `month`, `number`, `time`, and `week` inputs.\n *\n * The value must be a positive number—integer or float—or the special value\n * `any`, which means no stepping is implied, and any value is allowed\n * (barring other constraints, such as `min` and `max`).\n *\n * If `any` is not explicitly set, valid values for the `number` are the\n * basis for stepping — the `min` value and increments of the step value, up\n * to the `max` value, if specified.\n *\n * @webnative\n */\n @Prop() public readonly step?: number | 'any'\n\n /**\n * The type of input to render:\n *\n * - `\"date\"`: An input for entering a date (year, month, and day, with no\n * time). Opens a date picker or numeric wheels for year, month, day when\n * active in supporting browsers.\n * - `\"datetime-local\"`: An input for entering a date and time, with no time\n * zone. Opens a date picker or numeric wheels for date and time components\n * when active in supporting browsers.\n * - `\"email\"`: An input for editing an email address. Looks like a `\"text\"`\n * input, but has validation parameters and relevant keyboard in supporting\n * browsers and devices with dynamic keyboards.\n * - `\"month\"`: An input for entering a month and year, with no time zone.\n * - `\"number\"`: An input for entering a number. Displays a spinner and adds\n * default validation when supported. Displays a numeric keypad in some\n * devices with dynamic keypads.\n * - `\"password\"`: A single-line text input whose value is obscured. Will\n * alert user if site is not secure.\n * - `\"search\"`: A single-line text input for entering search strings.\n * Line-breaks are automatically removed from the input value. May include a\n * delete icon in supporting browsers that can be used to clear the input.\n * Displays a search icon instead of enter key on some devices with dynamic\n * keypads.\n * - `\"tel\"`: An input for entering a telephone number. Displays a telephone\n * keypad in some devices with dynamic keypads.\n * - `\"text\"`: A single-line text input. Line-breaks are automatically\n * removed from the input value.\n * - `\"time\"`: An input for entering a time value with no time zone.\n * - `\"url\"`: An input for entering a URL. Looks like a `\"text\"` input, but\n * has validation parameters and relevant keyboard in supporting browsers and\n * devices with dynamic keyboards.\n * - `\"week\"`: An input for entering a date consisting of a week-year number\n * and a week number with no time zone.\n *\n * @webnative\n */\n @Prop() public readonly type?: InputType\n\n /**\n * The error message that would be shown to the user if the `<qds-input>`\n * was to be checked for validity.\n *\n * @readonly\n * @webnative\n */\n @Prop()\n public readonly validationMessage: ElementInternals['validationMessage'] = ''\n\n /**\n * The [`ValidityState`][] object for this `<qds-input>`.\n *\n * [`ValidityState`]: https://developer.mozilla.org/docs/Web/API/ValidityState\n *\n * @readonly\n * @webnative\n */\n @Prop() public readonly validity: ElementInternals['validity'] = VALID_STATE\n\n /**\n * The value of the input.\n *\n * @webnative\n */\n @Prop({ mutable: true }) public value?: Value\n\n /**\n * True if `<qds-input>` will be validated when the form is submitted; false\n * otherwise.\n *\n * @readonly\n * @webnative\n */\n @Prop() public readonly willValidate: ElementInternals['willValidate'] = false\n\n @AttachInternals() private readonly internals!: ElementInternals\n\n /**\n * Emitted when the input loses focus.\n */\n @Event({ eventName: 'qdsBlur', bubbles: false, cancelable: false })\n private readonly blurEmitter!: EventEmitter<QdsFocusEventDetail>\n\n /**\n * Emitted when the user cancels the file picker via the <kbd>Esc</kbd> key\n * or the cancel button and when the user re-selects the same files that were\n * previously selected.\n */\n @Event({ eventName: 'qdsCancel', cancelable: false })\n private readonly cancelEmitter!: EventEmitter<void>\n\n /** Emitted when the user performs a search (Enter, clear, or search button). */\n @Event({ eventName: 'qdsSearch', cancelable: false })\n private readonly searchEmitter!: EventEmitter<void>\n\n /**\n * Emitted when an alteration to the input's value is committed by the user.\n */\n @Event({ eventName: 'qdsChange', cancelable: false })\n private readonly changeEmitter!: EventEmitter<void>\n\n /**\n * Emitted when the input gains focus.\n */\n @Event({ eventName: 'qdsFocus', bubbles: false, cancelable: false })\n private readonly focusEmitter!: EventEmitter<QdsFocusEventDetail>\n\n /**\n * Emitted when the input's value changes.\n */\n @Event({ eventName: 'qdsInput', cancelable: false })\n private readonly inputEmitter!: EventEmitter<QdsInputEventDetail>\n\n @Element() private readonly host!: HTMLElement\n\n @State() private tabIndex?: number\n\n @State() private isPasswordVisible = false\n\n #inheritedAttributes: Attributes = {}\n\n #input?: HTMLInputElement\n\n get #computedDisabled(): boolean {\n return this.host.matches(':disabled') || (this.disabled ?? false)\n }\n\n get #computedIconName():\n | `input-${InputType}`\n | `input-password-hide`\n | `input-password-show`\n | undefined {\n if (this.type === 'password')\n return this.isPasswordVisible\n ? 'input-password-hide'\n : 'input-password-show'\n\n switch (this.type) {\n case 'date':\n case 'datetime-local':\n case 'month':\n case 'search':\n case 'time':\n case 'week': {\n return `input-${this.type}`\n }\n default: {\n return undefined\n }\n }\n }\n\n get #computedSize(): Size {\n switch (this.size) {\n case 'standard':\n case 'small':\n case 'large': {\n return this.size\n }\n default: {\n return 'standard'\n }\n }\n }\n\n get #computedValue(): Parameters<ElementInternals['setFormValue']>[0] {\n if (typeof this.value === 'number') return this.value.toString()\n // eslint-disable-next-line unicorn/no-null\n return this.value === undefined ? null : this.value\n }\n\n get #computedStatus(): InputStatus | undefined {\n switch (this.status) {\n case 'error':\n case 'success':\n case 'warning': {\n return this.status\n }\n default: {\n return undefined\n }\n }\n }\n\n get #hasInteractiveIcon(): boolean {\n return (\n typeof this.type === 'string' &&\n ['month', 'time', 'date', 'datetime-local', 'week', 'password'].includes(\n this.type,\n )\n )\n }\n\n get #iconClickHandler(): () => void {\n return this.type === 'password'\n ? this.#togglePasswordVisibility\n : this.showPicker\n }\n\n get #computedType(): InputType {\n return this.type === 'password' && this.isPasswordVisible\n ? 'text'\n : (this.type ?? 'text')\n }\n\n get #computedInteractiveIconAriaLabel(): string {\n return this.type === 'password'\n ? this.isPasswordVisible\n ? 'Hide password'\n : 'Show password'\n : (this.type ?? '')\n }\n\n @Listen('click')\n protected onClick(event: MouseEvent): void {\n if (this.#computedDisabled) event.stopImmediatePropagation()\n }\n\n @Listen('keydown')\n protected onKeydown(event: KeyboardEvent): void {\n if (this.#computedDisabled) {\n event.stopImmediatePropagation()\n return\n }\n\n if (event.key === 'Enter' && this.internals.form) {\n this.internals.form.requestSubmit()\n event.preventDefault()\n }\n\n if (event.key === 'Enter' && !supportsSearchEvent()) {\n this.searchEmitter.emit()\n }\n }\n\n @Watch('aria-label')\n protected ariaLabelChanged(newValue: string | null): void {\n invariant(this.#input)\n this.#input.ariaLabel =\n newValue ??\n [...this.internals.labels]\n .map((node: Node) => {\n // eslint-disable-next-line unicorn/prefer-dom-node-text-content\n const text = (node as HTMLElement).innerText.trim()\n return text === ''\n ? (this.host.parentElement?.querySelector('qds-label')?.text ?? '')\n : text\n })\n .join(' ')\n }\n\n @Watch('status')\n protected statusChanged(): void {\n this.internals.ariaInvalid = (this.#computedStatus === 'error').toString()\n }\n\n @Watch('disabled')\n protected disabledChanged(): void {\n if (this.#computedDisabled)\n // eslint-disable-next-line unicorn/no-null\n this.internals.setFormValue(null)\n else this.internals.setFormValue(this.#computedValue)\n }\n\n @Watch('selectionDirection')\n protected selectionDirectionChanged(): void {\n invariant(this.#input)\n\n this.#input.selectionDirection = this.selectionDirection\n }\n\n @Watch('selectionEnd')\n protected selectionEndChanged(): void {\n invariant(this.#input)\n\n this.#input.selectionEnd = this.selectionEnd\n }\n\n @Watch('selectionStart')\n protected selectionStartChanged(): void {\n invariant(this.#input)\n\n this.#input.selectionStart = this.selectionStart\n }\n\n @Watch('tabindex')\n protected tabindexChanged(newValue: string): void {\n const parsedValue = Number.parseInt(newValue, 10)\n this.tabIndex =\n parsedValue === 0 || Number.isNaN(parsedValue) ? undefined : parsedValue\n }\n\n @Watch('max')\n @Watch('maxLength')\n @Watch('min')\n @Watch('minLength')\n @Watch('pattern')\n @Watch('required')\n @Watch('step')\n @Watch('type')\n @Watch('value')\n protected validationChanged(): void {\n if (!this.#input) return\n\n if (this.#input.max !== this.max && this.max !== undefined)\n this.#input.max = this.max.toString()\n if (this.maxLength !== undefined) this.#input.maxLength = this.maxLength\n if (this.#input.min !== this.min && this.min !== undefined)\n this.#input.min = this.min.toString()\n if (this.minLength !== undefined) this.#input.minLength = this.minLength\n if (this.pattern !== undefined) this.#input.pattern = this.pattern\n this.#input.required = this.required ?? false\n if (this.#input.step !== this.step && this.step !== undefined)\n this.#input.step = this.step.toString()\n this.#input.type = this.#computedType\n\n const { valid } = this.#input.validity\n if (valid)\n this.internals.setValidity(NO_ERROR_FLAGS, undefined, this.#input)\n else\n this.internals.setValidity(\n this.#input.validity,\n this.#input.validationMessage,\n this.#input,\n )\n }\n\n @Watch('value')\n protected valueChanged(): void {\n if (!this.#computedDisabled)\n this.internals.setFormValue(this.#computedValue)\n\n if (\n (this.#computedValue === null || this.#computedValue === '') &&\n this.type === 'file'\n ) {\n this.#clearValue()\n }\n }\n\n public componentWillLoad(): void {\n this.#defineGetter('form', () => this.internals.form)\n this.#defineGetter('willValidate', () => this.internals.willValidate)\n this.#defineGetter('validity', () => this.internals.validity)\n this.#defineGetter(\n 'validationMessage',\n () => this.internals.validationMessage,\n )\n this.#defineGetter('files', this.#getFiles)\n this.#defineGetter('labels', () => this.internals.labels)\n\n this.#inheritedAttributes = inheritAriaAttributes(this.host)\n this.tabindexChanged(this.host.getAttribute('tabindex') ?? '0')\n this.statusChanged()\n }\n\n public componentDidLoad(): void {\n invariant(this.#input)\n\n this.ariaLabelChanged(this.host.ariaLabel)\n this.validationChanged()\n this.valueChanged()\n // FIXME: This event is supported by the native `<input>` element but not\n // recognized by Stencil's type definitions, so it needs to be manually\n // bound here.\n this.#input.addEventListener('cancel', this.#onCancel)\n this.#input.addEventListener('search', this.#onSearch)\n }\n\n public disconnectedCallback(): void {\n if (this.#input) {\n this.#input.removeEventListener('cancel', this.#onCancel)\n this.#input.removeEventListener('search', this.#onSearch)\n }\n }\n\n public render() {\n const hasValue =\n this.value !== null && this.value !== undefined && this.value !== ''\n const isSearchType = this.type === 'search'\n const isIconUnsupportedType = this.type === 'file' || this.type === 'color'\n const shouldShowClearButton = hasValue && isSearchType\n const shouldShowClearableButton =\n hasValue &&\n !isSearchType &&\n !isIconUnsupportedType &&\n this.clearable === true\n /* DEPRECATED: noIcon will be removed by September 2026 */\n const shouldShowSearchButton = isSearchType && this.noIcon === false\n const shouldHideIcon = !isSearchType && this.noIcon === true\n const shouldRemoveSearchPadding = isSearchType && this.noIcon === true\n\n return (\n <div class=\"qds-container\">\n <input\n accept={this.accept}\n autoCapitalize={this.host.autocapitalize}\n autoComplete={this.autoComplete}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={this.host.autofocus}\n capture={this.capture}\n class={{\n 'qds-search-padding': shouldRemoveSearchPadding,\n 'qds-input': true,\n 'qds-hide': shouldHideIcon,\n 'qds-padding': shouldHideIcon,\n 'qds-password-padding':\n this.type === 'password' ||\n (this.isPasswordVisible && this.type === 'text'),\n 'qds-custom-icon-padding':\n shouldShowClearableButton && !this.#computedIconName,\n 'qds-dual-icon-padding':\n shouldShowClearableButton && this.#hasInteractiveIcon,\n }}\n data-status={this.#computedStatus}\n data-size={this.#computedSize}\n disabled={this.#computedDisabled}\n enterKeyHint={this.enterkeyhint}\n inputMode={this.inputmode}\n max={this.max}\n maxLength={this.maxLength}\n min={this.min}\n minLength={this.minLength}\n multiple={this.multiple}\n onBlur={this.#onBlur}\n onChange={this.#onChange}\n onFocus={this.#onFocus}\n onInput={this.#onInput}\n placeholder={this.placeholder}\n readOnly={this.readonly}\n ref={this.#ref}\n spellcheck={this.host.spellcheck}\n step={this.step}\n tabIndex={this.#computedDisabled ? undefined : this.tabIndex}\n type={this.#computedType}\n value={this.value ?? ''}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...this.#inheritedAttributes}\n />\n <div class=\"qds-focus-ring\" />\n {shouldShowClearableButton && !this.#computedIconName && (\n <div class=\"qds-icon-container\">{this.#renderClearableButton()}</div>\n )}\n {this.#computedIconName && (\n <div class=\"qds-icon-container\">\n {shouldShowClearButton && this.#renderSearchClearButton()}\n {shouldShowClearableButton &&\n this.#hasInteractiveIcon &&\n this.#renderClearableButton()}\n {this.#hasInteractiveIcon && this.#renderInteractiveIconButton()}\n {shouldShowSearchButton && this.#renderSearchButton()}\n </div>\n )}\n </div>\n )\n }\n\n public checkValidity: ElementInternals['checkValidity'] = () =>\n this.internals.checkValidity()\n\n public reportValidity: ElementInternals['reportValidity'] = () =>\n this.internals.reportValidity()\n\n public setCustomValidity: HTMLInputElement['setCustomValidity'] = (error) => {\n invariant(this.#input)\n\n this.#input.setCustomValidity(error)\n if (error)\n this.internals.setValidity(CUSTOM_ERROR_FLAGS, error, this.#input)\n else this.internals.setValidity(NO_ERROR_FLAGS)\n }\n\n public select: HTMLInputElement['select'] = () => {\n invariant(this.#input)\n\n this.#input.select()\n }\n\n public getSelectionDirection: () => HTMLInputElement['selectionDirection'] =\n () => {\n invariant(this.#input)\n\n return this.#input.selectionDirection\n }\n\n public getSelectionStart: () => HTMLInputElement['selectionStart'] = () => {\n invariant(this.#input)\n\n return this.#input.selectionStart\n }\n\n public getSelectionEnd: () => HTMLInputElement['selectionEnd'] = () => {\n invariant(this.#input)\n\n return this.#input.selectionEnd\n }\n\n public setRangeText = (\n replacement: string,\n start: number,\n end: number,\n selectionMode?: SelectionMode,\n ): void => {\n invariant(this.#input)\n\n this.#input.setRangeText(replacement, start, end, selectionMode)\n\n if (this.value !== this.#input.value) {\n this.value = this.#input.value\n this.inputEmitter.emit()\n this.changeEmitter.emit()\n }\n }\n\n public setSelectionRange: HTMLInputElement['setSelectionRange'] = (\n start,\n end,\n direction,\n ) => {\n invariant(this.#input)\n\n this.#input.setSelectionRange(start, end, direction)\n }\n\n public stepDown: HTMLInputElement['stepDown'] = (n) => {\n invariant(this.#input)\n\n this.#input.stepDown(n)\n }\n\n public stepUp: HTMLInputElement['stepUp'] = (n) => {\n invariant(this.#input)\n\n this.#input.stepUp(n)\n }\n\n public showPicker: HTMLInputElement['showPicker'] = () => {\n invariant(this.#input)\n\n this.#input.showPicker()\n }\n\n readonly #renderClearableButton = (): HTMLElement => (\n <qds-mini-button\n name=\"clear\"\n library=\"core\"\n text=\"clear input\"\n onClick={this.#onClearableClick}\n onQdsFocus={stopImmediatePropagation}\n />\n )\n\n readonly #renderSearchClearButton = (): HTMLElement => (\n <qds-mini-button\n class=\"qds-hide\"\n name=\"clear\"\n library=\"core\"\n text=\"clear input\"\n onClick={this.#onSearchClear}\n onQdsFocus={stopImmediatePropagation}\n />\n )\n\n readonly #renderInteractiveIconButton = (): HTMLElement => (\n <qds-mini-button\n name={this.#computedIconName ?? ''}\n library=\"core\"\n text={this.#computedInteractiveIconAriaLabel}\n onClick={this.#iconClickHandler}\n onQdsFocus={stopImmediatePropagation}\n />\n )\n\n readonly #renderSearchButton = (): HTMLElement => (\n <qds-mini-button\n name={this.#computedIconName ?? ''}\n library=\"core\"\n text=\"search\"\n onClick={this.#onSearch}\n onQdsFocus={stopImmediatePropagation}\n />\n )\n\n readonly #togglePasswordVisibility = (): void => {\n invariant(this.#input)\n this.isPasswordVisible = !this.isPasswordVisible\n\n this.#input.type = this.#computedType\n }\n\n readonly #ref = (input?: HTMLInputElement): void => {\n this.#input = input\n }\n\n readonly #getFiles: () => HTMLInputElement['files'] = () => {\n invariant(this.#input)\n\n return this.#input.files\n }\n\n readonly #onBlur = (event: FocusEvent): void => {\n this.blurEmitter.emit(pickFocusEventAttributes(event))\n }\n\n readonly #onCancel = (): void => {\n this.cancelEmitter.emit()\n }\n\n readonly #onSearch = (): void => {\n this.searchEmitter.emit()\n }\n\n readonly #onChange = (): void => {\n this.changeEmitter.emit()\n }\n\n readonly #handleClear = (): void => {\n this.#clearValue()\n this.#onInput(new InputEvent('input', { inputType: 'deleteContent' }))\n\n invariant(this.#input)\n if (document.activeElement !== this.#input) this.#input.focus()\n }\n\n readonly #onClearableClick = (): void => {\n this.#handleClear()\n }\n\n readonly #onSearchClear = (): void => {\n this.#handleClear()\n this.searchEmitter.emit()\n }\n\n readonly #onFocus = (event: FocusEvent): void => {\n this.focusEmitter.emit(pickFocusEventAttributes(event))\n }\n\n readonly #onInput = (event: InputEvent): void => {\n invariant(this.#input)\n\n this.value = this.#input.value\n this.inputEmitter.emit(pickInputEventAttributes(event))\n }\n\n #defineGetter(p: PropertyKey, get: () => unknown): void {\n Object.defineProperty(this.host, p, { enumerable: true, get })\n }\n\n #clearValue(): void {\n invariant(this.#input)\n\n this.#input.value = ''\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"qds-input.entry.js","sources":["src/components/input/input.css?tag=qds-input&encapsulation=shadow","src/components/input/input.tsx"],"sourcesContent":["/* stylelint-disable no-descending-specificity */\n/* stylelint-disable-next-line comment-empty-line-before */\n/*\n * SPDX-FileCopyrightText: © 2024 Schneider Electric\n *\n * SPDX-License-Identifier: Apache-2.0\n */\n\n@import url('../shared.css');\n\n:host {\n display: inline-block;\n}\n\n@-moz-document url-prefix() {\n [type='date'],\n [type='datetime-local'],\n [type='month'],\n [type='time'],\n [type='week'] {\n ~ .qds-icon-container {\n display: none;\n }\n }\n}\n\ninput[type='password']::-ms-reveal {\n display: none;\n}\n\n.qds-container,\n.qds-input {\n max-width: inherit;\n width: inherit;\n letter-spacing: inherit;\n word-spacing: inherit;\n}\n\n.qds-container {\n align-content: flex-start;\n align-items: center;\n box-sizing: border-box;\n display: grid;\n grid-template-areas: 'input';\n}\n\n.qds-input,\n.qds-icon-container {\n grid-area: input;\n}\n\n.qds-focus-ring {\n /* Support control groups where each corner needs to be individually adjusted depending on where these components are placed in the control group (start, middle, end) */\n border-radius: max(\n 1px,\n var(\n --qds-form-input-border-radius-top-left,\n var(--qds-form-input-border-radius)\n )\n )\n max(\n 1px,\n var(\n --qds-form-input-border-radius-top-right,\n var(--qds-form-input-border-radius)\n )\n )\n max(\n 1px,\n var(\n --qds-form-input-border-radius-bottom-right,\n var(--qds-form-input-border-radius)\n )\n )\n max(\n 1px,\n var(\n --qds-form-input-border-radius-bottom-left,\n var(--qds-form-input-border-radius)\n )\n );\n grid-area: input;\n isolation: isolate;\n\n /* inner ring */\n outline: var(--qds-theme-focus-border-contrast) solid\n var(--qds-focus-light-border-width);\n outline-offset: 0;\n\n /* outer ring */\n box-shadow: 0 0 0 var(--qds-focus-heavy-border-width)\n var(--qds-theme-focus-border);\n pointer-events: none;\n visibility: hidden;\n width: calc(\n 100% + var(--qds-form-input-border-width-default) -\n var(\n --qds-form-input-border-width-inline-end,\n var(--qds-form-input-border-width-default)\n )\n );\n height: calc(\n 100% + var(--qds-form-input-border-width-default) -\n var(\n --qds-form-input-border-width-block-end,\n var(--qds-form-input-border-width-default)\n )\n );\n}\n\n[data-size='large'] {\n font: var(--qds-form-large-text);\n min-height: var(--qds-form-input-large-height);\n padding-inline: var(--qds-form-input-large-padding-start)\n var(--qds-form-input-large-padding-end);\n\n &.qds-password-padding,\n &[type='date'],\n &[type='datetime-local'],\n &[type='month'],\n &[type='time'],\n &[type='week'] {\n padding-inline: var(--qds-form-input-large-padding-end)\n calc(\n var(--qds-form-input-large-padding-end) +\n var(--qds-form-input-large-height)\n );\n }\n\n & ~ .qds-icon-container {\n padding-inline-end: var(--qds-form-input-large-padding-end);\n }\n\n &[type='number'] {\n padding-inline: var(--qds-form-input-large-padding-start)\n var(--qds-form-input-large-padding-end);\n }\n\n &[type='file'] {\n padding-block: var(--qds-form-input-large-padding-start)\n var(--qds-form-input-large-padding-end);\n }\n\n &[type='file']::file-selector-button {\n font: var(--qds-form-large-text);\n min-height: var(--qds-form-input-large-height);\n margin-inline-end: var(--qds-control-large-gap-siblings-related);\n padding-inline: var(--qds-control-button-large-padding-horizontal);\n }\n\n &[type='search'] {\n padding-inline: var(--qds-form-input-large-padding-end)\n calc(\n var(--qds-form-input-small-height) +\n var(--qds-control-mini-button-standard-size) +\n var(--qds-form-input-large-padding-end) +\n var(--qds-form-input-large-gap-internal)\n );\n\n & ~ .qds-icon-container {\n gap: var(--qds-form-input-large-gap-internal);\n }\n }\n\n &.qds-custom-icon-padding {\n padding-inline: var(--qds-form-input-large-padding-start)\n calc(\n var(--qds-form-input-large-padding-end) +\n var(--qds-form-input-large-height)\n );\n }\n\n &.qds-dual-icon-padding {\n padding-inline: var(--qds-form-input-large-padding-start)\n calc(\n var(--qds-form-input-large-padding-end) +\n var(--qds-form-input-large-height) +\n var(--qds-control-mini-button-standard-size) +\n var(--qds-form-input-large-gap-internal)\n );\n\n & ~ .qds-icon-container {\n gap: var(--qds-form-input-large-gap-internal);\n }\n }\n\n &.qds-padding {\n padding-inline: var(--qds-form-input-large-padding-start)\n var(--qds-form-input-large-padding-end);\n }\n\n @-moz-document url-prefix() {\n &[type='date'],\n &[type='datetime-local'],\n &[type='month'],\n &[type='week'],\n &[type='time'] {\n padding-inline: var(--qds-form-input-large-padding-start)\n var(--qds-form-input-large-padding-end);\n }\n }\n}\n\n[data-size='standard'] {\n font: var(--qds-form-standard-text);\n min-height: var(--qds-form-input-standard-height);\n padding-inline: var(--qds-form-input-standard-padding-start)\n var(--qds-form-input-standard-padding-end);\n\n &.qds-password-padding,\n &[type='date'],\n &[type='datetime-local'],\n &[type='month'],\n &[type='time'],\n &[type='week'] {\n padding-inline: var(--qds-form-input-standard-padding-start)\n calc(\n var(--qds-form-input-standard-padding-end) +\n var(--qds-form-input-standard-height)\n );\n }\n\n & ~ .qds-icon-container {\n padding-inline-end: var(--qds-form-input-standard-padding-end);\n }\n\n &[type='number'] {\n padding-inline: var(--qds-form-input-standard-padding-start)\n var(--qds-form-input-standard-padding-end);\n }\n\n &[type='file'] {\n padding-block: var(--qds-form-input-standard-padding-start)\n var(--qds-form-input-standard-padding-end);\n }\n\n &[type='file']::file-selector-button {\n font: var(--qds-form-standard-text);\n min-height: var(--qds-form-input-standard-height);\n margin-inline-end: var(--qds-control-standard-gap-siblings-related);\n padding-inline: var(--qds-control-button-standard-padding-horizontal);\n }\n\n &[type='search'] {\n padding-inline: var(--qds-form-input-standard-padding-end)\n calc(\n var(--qds-form-input-small-height) +\n var(--qds-control-mini-button-standard-size) +\n var(--qds-form-input-standard-padding-end) +\n var(--qds-form-input-standard-gap-internal)\n );\n\n & ~ .qds-icon-container {\n gap: var(--qds-form-input-standard-gap-internal);\n }\n }\n\n &.qds-custom-icon-padding {\n padding-inline: var(--qds-form-input-standard-padding-start)\n calc(\n var(--qds-form-input-standard-padding-end) +\n var(--qds-form-input-standard-height)\n );\n }\n\n &.qds-dual-icon-padding {\n padding-inline: var(--qds-form-input-standard-padding-start)\n calc(\n var(--qds-form-input-standard-padding-end) +\n var(--qds-form-input-standard-height) +\n var(--qds-control-mini-button-standard-size) +\n var(--qds-form-input-standard-gap-internal)\n );\n\n & ~ .qds-icon-container {\n gap: var(--qds-form-input-standard-gap-internal);\n }\n }\n\n &.qds-padding {\n padding-inline: var(--qds-form-input-standard-padding-start)\n var(--qds-form-input-standard-padding-end);\n }\n\n @-moz-document url-prefix() {\n &[type='date'],\n &[type='datetime-local'],\n &[type='month'],\n &[type='week'],\n &[type='time'] {\n padding-inline: var(--qds-form-input-standard-padding-start)\n var(--qds-form-input-standard-padding-end);\n }\n }\n}\n\n[data-size='small'] {\n font: var(--qds-form-small-text);\n min-height: var(--qds-form-input-small-height);\n padding-inline: var(--qds-form-input-small-padding-start)\n var(--qds-form-input-small-padding-end);\n\n &.qds-password-padding,\n &[type='date'],\n &[type='datetime-local'],\n &[type='month'],\n &[type='time'],\n &[type='week'] {\n padding-inline: var(--qds-form-input-small-padding-end)\n calc(\n var(--qds-form-input-small-padding-end) +\n var(--qds-form-input-small-height)\n );\n }\n\n & ~ .qds-icon-container {\n padding-inline-end: var(--qds-form-input-small-padding-end);\n }\n\n &[type='number'] {\n padding-inline: var(--qds-form-input-small-padding-start)\n var(--qds-form-input-small-padding-end);\n }\n\n &[type='file'] {\n padding-block: var(--qds-form-input-small-padding-start)\n var(--qds-form-input-small-padding-end);\n }\n\n &[type='file']::file-selector-button {\n font: var(--qds-form-small-text);\n min-height: var(--qds-form-input-small-height);\n margin-inline-end: var(--qds-control-small-gap-siblings-related);\n padding-inline: var(--qds-control-button-small-padding-horizontal);\n }\n\n &[type='search'] {\n padding-inline: var(--qds-form-input-small-padding-end)\n calc(\n var(--qds-form-input-small-height) +\n var(--qds-control-mini-button-standard-size) +\n var(--qds-form-input-small-padding-end) +\n var(--qds-form-input-small-gap-internal)\n );\n\n & ~ .qds-icon-container {\n gap: var(--qds-form-input-small-gap-internal);\n }\n }\n\n &.qds-custom-icon-padding {\n padding-inline: var(--qds-form-input-small-padding-start)\n calc(\n var(--qds-form-input-small-padding-end) +\n var(--qds-form-input-small-height)\n );\n }\n\n &.qds-dual-icon-padding {\n padding-inline: var(--qds-form-input-small-padding-start)\n calc(\n var(--qds-form-input-small-padding-end) +\n var(--qds-form-input-small-height) +\n var(--qds-control-mini-button-standard-size) +\n var(--qds-form-input-small-gap-internal)\n );\n\n & ~ .qds-icon-container {\n gap: var(--qds-form-input-small-gap-internal);\n }\n }\n\n &.qds-padding {\n padding-inline: var(--qds-form-input-small-padding-start)\n var(--qds-form-input-small-padding-end);\n }\n\n @-moz-document url-prefix() {\n &[type='date'],\n &[type='datetime-local'],\n &[type='month'],\n &[type='week'],\n &[type='time'] {\n padding-inline: var(--qds-form-input-small-padding-start)\n var(--qds-form-input-small-padding-end);\n }\n }\n}\n\n.qds-input {\n appearance: textfield;\n background-color: var(--qds-theme-form-input-background-default);\n border-color: var(--qds-theme-form-input-border-default);\n border-radius: var(\n --qds-form-input-border-radius-top-left,\n var(--qds-form-input-border-radius)\n )\n var(\n --qds-form-input-border-radius-top-right,\n var(--qds-form-input-border-radius)\n )\n var(\n --qds-form-input-border-radius-bottom-right,\n var(--qds-form-input-border-radius)\n )\n var(\n --qds-form-input-border-radius-bottom-left,\n var(--qds-form-input-border-radius)\n );\n border-style: solid;\n border-width: var(--qds-form-input-border-width-default)\n var(\n --qds-form-input-border-width-inline-end,\n var(--qds-form-input-border-width-default)\n )\n var(\n --qds-form-input-border-width-block-end,\n var(--qds-form-input-border-width-default)\n )\n var(--qds-form-input-border-width-default);\n box-sizing: border-box;\n color: var(--qds-theme-form-input-text-active);\n grid-area: input;\n padding-block: 0;\n\n &.qds-hide ~ .qds-icon-container {\n display: none;\n }\n\n &:disabled,\n &:disabled ~ .qds-icon-container {\n opacity: var(--qds-theme-disabled);\n pointer-events: none;\n }\n\n &:focus-visible {\n outline: none;\n\n ~ .qds-focus-ring {\n visibility: visible;\n }\n }\n\n &:read-only {\n background-color: var(--qds-theme-form-input-background-read-only);\n border-color: var(--qds-theme-form-input-border-disabled);\n }\n\n &:placeholder-shown {\n color: var(--qds-theme-control-text-placeholder);\n }\n\n &:hover {\n background-color: var(--qds-theme-form-input-background-hover);\n border-color: var(--qds-theme-form-input-border-hover);\n }\n\n &:active {\n background-color: var(--qds-theme-form-input-background-active);\n color: var(--qds-theme-form-input-text-active);\n }\n\n &:is(\n [type='date'],\n [type='datetime-local'],\n [type='month'],\n [type='time'],\n [type='week']\n )::-webkit-calendar-picker-indicator,\n &::-webkit-search-cancel-button {\n display: none;\n }\n\n &[type='file'] {\n &::file-selector-button {\n background-color: transparent;\n border: var(--qds-form-input-border-width-default) solid\n var(--qds-theme-form-input-border-default);\n border-radius: var(--qds-control-border-radius);\n color: var(--qds-theme-form-input-text-active);\n\n &:hover {\n background-color: var(--qds-theme-interactive-background-hover);\n }\n\n &:active {\n background-color: var(--qds-theme-interactive-background-pressed);\n }\n }\n }\n\n &[type='color'] {\n appearance: none;\n min-width: 50px;\n padding-block: var(--qds-form-input-standard-padding-end);\n padding-inline: var(--qds-form-input-standard-padding-end);\n\n &::-webkit-color-swatch-wrapper {\n padding: 0;\n }\n\n &::-webkit-color-swatch {\n border: var(--qds-form-input-border-width-default) solid\n var(--qds-theme-form-input-border-default);\n border-radius: var(--qds-control-border-radius);\n }\n\n &::-moz-color-swatch {\n border: var(--qds-form-input-border-width-default) solid\n var(--qds-theme-form-input-border-default);\n border-radius: var(--qds-control-border-radius);\n }\n\n cursor: pointer;\n\n &:hover {\n background-color: var(--qds-theme-interactive-background-hover);\n }\n\n &:active {\n background-color: var(--qds-theme-interactive-background-pressed);\n }\n }\n\n &[data-size='standard'] {\n &.qds-search-padding {\n padding-inline: var(--qds-form-input-standard-padding-end)\n calc(\n var(--qds-form-input-small-height) +\n var(--qds-form-input-standard-padding-end)\n );\n }\n\n &[type='file'] {\n height: initial;\n }\n }\n\n &[data-size='large'] {\n &.qds-search-padding {\n padding-inline: var(--qds-form-input-large-padding-end)\n calc(\n var(--qds-form-input-small-height) +\n var(--qds-form-input-large-padding-end)\n );\n }\n\n &[type='file'] {\n height: initial;\n }\n }\n\n &[data-size='small'] {\n &.qds-search-padding {\n padding-inline: var(--qds-form-input-small-padding-end)\n calc(\n var(--qds-form-input-small-height) +\n var(--qds-form-input-small-padding-end)\n );\n }\n\n &[type='file'] {\n height: initial;\n }\n }\n\n @-moz-document url-prefix() {\n &[type='number'] {\n appearance: none;\n }\n }\n\n &[data-status] {\n border-width: var(--qds-form-input-border-width-status)\n var(\n --qds-form-input-border-width-inline-end,\n var(--qds-form-input-border-width-status)\n )\n var(\n --qds-form-input-border-width-block-end,\n var(--qds-form-input-border-width-status)\n )\n var(--qds-form-input-border-width-status);\n }\n\n &[data-status='success'] {\n border-color: var(--qds-theme-form-input-border-success);\n }\n\n &[data-status='warning'] {\n border-color: var(--qds-theme-form-input-border-warning);\n }\n\n &[data-status='error'],\n &:not(:focus):user-invalid {\n border-color: var(--qds-theme-form-input-border-error);\n }\n}\n\n.qds-icon-container {\n display: flex;\n align-items: center;\n justify-content: center;\n justify-self: end;\n}\n","// SPDX-FileCopyrightText: © 2024 Schneider Electric\n//\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentInterface, EventEmitter } from '@stencil/core'\nimport {\n AttachInternals,\n Component,\n Element,\n Event,\n h,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core'\n\nimport type {\n Attributes,\n QdsFocusEventDetail,\n QdsInputEventDetail,\n} from '../../helpers'\nimport {\n inheritAriaAttributes,\n invariant,\n pickFocusEventAttributes,\n pickInputEventAttributes,\n} from '../../helpers'\nimport type { AutoComplete, EnterKeyHint, InputMode, Value } from '../controls'\nimport { CUSTOM_ERROR_FLAGS, NO_ERROR_FLAGS, VALID_STATE } from '../controls'\nimport type { Size, Status } from '../shared'\n\nexport type Capture = '' | 'environment' | 'user'\n\nexport type InputType =\n | 'color'\n | 'date'\n | 'datetime-local'\n | 'email'\n | 'file'\n | 'month'\n | 'number'\n | 'password'\n | 'search'\n | 'tel'\n | 'text'\n | 'time'\n | 'url'\n | 'week'\n\nexport type InputStatus = Exclude<Status, 'info'>\n\nconst stopImmediatePropagation = (event: Event): void => {\n event.stopImmediatePropagation()\n}\nconst supportsSearchEvent = (): boolean => {\n const input = document.createElement('input')\n input.type = 'search'\n return input.onsearch !== undefined\n}\n\n/**\n * The `<qds-input>` element is used to create interactive controls for\n * web-based forms in order to accept data from the user; a wide variety of\n * types of input data and control widgets are available, depending on the\n * device and\n * [user agent](https://developer.mozilla.org/docs/Glossary/User_agent).\n *\n * @see https://quartz.se.com/build/components/input\n */\n@Component({\n tag: 'qds-input',\n formAssociated: true,\n shadow: { delegatesFocus: true },\n styleUrl: 'input.css',\n})\nexport class Input implements ComponentInterface {\n /**\n * The input's status.\n */\n @Prop() public readonly status?: InputStatus\n\n /**\n * Prevents the user from changing the value of the input.\n *\n * @webnative\n */\n\n @Prop() public readonly readonly?: boolean\n\n /**\n * Shows a clear button that allows the user to clear the input's value.\n *\n * For `search` inputs, the clear button is always shown when the input\n * has a value, regardless of this property.\n *\n */\n @Prop() public readonly clearable?: boolean = false\n\n /**\n * @deprecated The no-icon property is deprecated and will be removed by September 2026.\n *\n * Hide the input type's icon.\n *\n * > **_NOTE:_** Due to browser limitations, the icon may not be hidden in\n * all browsers.\n */\n @Prop() public readonly noIcon?: boolean = false\n\n /**\n * The input's size.\n *\n * > **_NOTE:_** The native [`size` HTML attribute][size] is not supported.\n * CSS `width` should be used instead if this functionality is needed.\n *\n * [size]: https://developer.mozilla.org/docs/Web/HTML/Attributes/size\n */\n @Prop() public readonly size?: Size = 'standard'\n\n /**\n * Defines the file types the `file` type input should accept. This is a\n * comma-separated list of [unique file type specifiers][]. Because a given\n * file type may be identified in more than one manner, it's useful to\n * provide a thorough set of type specifiers when you files of a given format\n * are needed.\n *\n * For instance, there are a number of ways Microsoft Word files can be\n * identified, so a site that accepts Word files might use a `<qds-input>`\n * like this:\n *\n * @example\n * <qds-input\n * type=\"file\"\n * accept=\".doc,.docx,.xml,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\n * ></qds-input>\n *\n * [unique file type specifiers]: https://developer.mozilla.org/docs/Web/HTML/Element/input/file#unique_file_type_specifiers\n *\n * @webnative\n */\n @Prop() public readonly accept?: string\n\n /**\n * Provides a hint for a [user agent's][] autocomplete feature. See\n * [the HTML `autocomplete` attribute][autocomplete] for a complete list of\n * values and details on how to use `autoComplete`.\n *\n * [user agent's]: https://developer.mozilla.org/docs/Glossary/User_agent\n * [autocomplete]: https://developer.mozilla.org/docs/Web/HTML/Attributes/autocomplete\n *\n * @webnative\n */\n @Prop({ attribute: 'autocomplete' })\n public readonly autoComplete?: AutoComplete\n\n /**\n * Specifies that a new file should be captured and which device should be\n * used to capture that new media of the type defined by `accept`.\n *\n * Values include `user`, `environment`, and `''`:\n *\n * - `user`: The user-facing camera and/or microphone should be used.\n * - `environment`: The outward-facing camera and/or microphone should be\n * used.\n * - `''`: The implementation-specific capture state.\n *\n * @webnative\n */\n @Prop() public readonly capture?: Capture\n\n /**\n * Prevents the input from being interacted with: it cannot be pressed or\n * focused.\n *\n * @webnative\n */\n @Prop() public readonly disabled?: boolean\n\n /**\n * What action label (or icon) to present for the enter key on virtual\n * keyboards. Possible values:\n *\n * - `\"done\"`: Typically meaning there is nothing more to input and the input\n * method editor (IME) will be closed.\n * - `\"enter\"`:\tTypically inserting a new line.\n * - `\"go\"`: \tTypically meaning to take the user to the target of the text\n * they typed.\n * - `\"next\"`: \tTypically taking the user to the next field that will accept\n * text.\n * - `\"previous\"`: Typically taking the user to the previous field that will\n * accept text.\n * - `\"search\"`: Typically taking the user to the results of searching for\n * the text they have typed.\n * - `\"send\"`: Typically delivering the text to its target.\n *\n * @webnative\n */\n // FIXME: Can't use `attribute` option here to name this `enterKeyHint` instead.\n @Prop() public readonly enterkeyhint?: EnterKeyHint\n\n /**\n * Returns a file list for a `file` type input.\n *\n * @readonly\n * @webnative\n */\n // eslint-disable-next-line unicorn/no-null\n @Prop() public readonly files: HTMLInputElement['files'] = null\n\n /**\n * The [`<form>`][] element to associate the input with (its form owner).\n *\n * The value of this attribute must be the id of a `<form>` in the same\n * document. If this attribute is not set, the `<qds-input>` is associated\n * with its ancestor `<form>` element, if any.\n *\n * This attribute lets you associate `<qds-input>` elements to `<form>`s\n * anywhere in the document, not just inside a `<form>`. It can also override\n * an ancestor `<form>` element.\n *\n * [`<form>`]: https://developer.mozilla.org/docs/Web/HTML/Element/form\n *\n * @readonly\n * @webnative\n */\n // eslint-disable-next-line unicorn/no-null\n @Prop() public readonly form: ElementInternals['form'] | string = null\n\n /**\n * Provide a hint to browsers as to the type of virtual keyboard\n * configuration to use when editing this element or its contents.\n *\n * @webnative\n */\n // FIXME: Can't use `attribute` option here to name this `inputMode` instead.\n @Prop() public readonly inputmode?: InputMode\n\n /**\n * Returns a list of the [`<label>`][] elements associated with the\n * `qds-input` element.\n *\n * [`<label>`]: https://developer.mozilla.org/docs/Web/HTML/Element/label\n *\n * @readonly\n * @webnative\n */\n @Prop() public readonly labels: ElementInternals['labels'] =\n {} as ElementInternals['labels']\n\n /**\n * Defines the greatest value in the range of permitted values. If the\n * `value` entered into the input exceeds this, the input fails\n * [constraint validation][]. Only valid for `date`, `datetime-local`,\n * `month`, `time`, and `week` inputs.\n *\n * If this value isn't a valid number, then the input has no maximum value.\n *\n * [constraint validation]: https://developer.mozilla.org/docs/Web/Guide/HTML/Constraint_validation\n *\n * @webnative\n */\n @Prop() public readonly max?: number | string\n\n /**\n * The maximum number of characters (as UTF-16 code units) the user can enter\n * into the input. This must be an non-negative integer value. If no\n * `maxlength` is specified, or an invalid value is specified, the input has\n * no maximum length. Only valid for `email`, `password`, `search`, `tel`,\n * `text`, and `url` inputs.\n *\n * The input will fail [constraint validation][] if the length of the text\n * entered into the field is greater than `maxlength` UTF-16 code units long.\n * By default, browsers prevent users from entering more characters than\n * allowed by the `maxlength` attribute. See [Client-side validation][] for\n * more information.\n *\n * [constraint validation]: https://developer.mozilla.org/docs/Web/Guide/HTML/Constraint_validation\n * [Client-side validation]: https://developer.mozilla.org/docs/Web/HTML/Element/input#client-side_validation\n *\n * @webnative\n */\n @Prop({ attribute: 'maxlength' }) public readonly maxLength?: number\n\n /**\n * Defines the most negative value in the range of permitted values. If the\n * `value` entered into the input is less than this, the input fails\n * [constraint validation][]. Only valid for `date`, `datetime-local`,\n * `month`, `time`, and `week` inputs.\n *\n * This value must be less than or equal to the value of the `max` attribute.\n * If this value isn't a valid number, then the input has no minimum value.\n *\n * [constraint validation]: https://developer.mozilla.org/docs/Web/Guide/HTML/Constraint_validation\n *\n * @webnative\n */\n @Prop() public readonly min?: number | string\n\n /**\n * The minimum number of characters (as UTF-16 code units) the user can enter\n * into the input. This must be an non-negative integer value smaller than or\n * equal to the value specified by `maxlength`. If no `minlength` is\n * specified, or an invalid value is specified, the input has no minimum\n * length. Only valid for `email`, `password`, `search`, `tel`, `text`, and\n * `url` inputs.\n *\n * The input will fail [constraint validation][] if the length of the text\n * entered into the field is fewer than `minlength` UTF-16 code units long,\n * preventing form submission. See [Client-side validation][] for more\n * information.\n *\n * [constraint validation]: https://developer.mozilla.org/docs/Web/Guide/HTML/Constraint_validation\n * [Client-side validation]: https://developer.mozilla.org/docs/Web/HTML/Element/input#client-side_validation\n *\n * @webnative\n */\n @Prop({ attribute: 'minlength' }) public readonly minLength?: number\n\n /**\n * For `email` inputs, specifies if multiple comma-separated email addresses\n * can be entered. For `file` inputs, specifies if the user is allowed to\n * select more than one file.\n *\n * Only valid for `email` or `file` inputs.\n *\n * @webnative\n */\n @Prop() public readonly multiple?: boolean\n\n /**\n * The name of the input, which is submitted with the form data.\n *\n * @webnative\n */\n @Prop() public readonly name?: string\n\n /**\n * Defines a regular expression that the input's `value` must match in order\n * for the value to pass [constraint validation][]. It must be a valid\n * JavaScript regular expression, as used by the [`RegExp`][] type, and as\n * documented in MDN's [guide on regular expressions][]; the `'u'` flag is\n * specified when compiling the regular expression, so that the pattern is\n * treated as a sequence of Unicode code points, instead of as ASCII. No\n * forward slashes should be specified around the pattern text. Only valid\n * for `email`, `password`, `search`, `tel`, `text`, and `url` inputs.\n *\n * If the `pattern` is invalid, no regular expression is applied and this\n * property is ignored. If the pattern is valid and a non-empty value does\n * not match the pattern, constraint validation will prevent form submission.\n *\n * [constraint validation]: https://developer.mozilla.org/docs/Web/Guide/HTML/Constraint_validation\n * [`RegExp`]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RegExp\n * [guide on regular expressions]: https://developer.mozilla.org/docs/Web/JavaScript/Guide/Regular_Expressions\n *\n * @webnative\n */\n @Prop() public readonly pattern?: string\n\n /**\n * Text that appears in the input when it has no value set. Only valid for\n * `email`, `number`, `password`, `search`, `tel`, `text`, and `url` inputs.\n *\n * @webnative\n */\n @Prop() public readonly placeholder?: string\n\n /**\n * A value must be specified for the input before the owning form can be\n * submitted. Not valid for `color` inputs.\n *\n * See [Client-side validation][] and the\n * [HTML attribute: `required`][required] for more information.\n *\n * [Client-side validation]: https://developer.mozilla.org/docs/Web/HTML/Element/input#client-side_validation\n * [required]: https://developer.mozilla.org/docs/Web/HTML/Attributes/required\n *\n * @webnative\n */\n @Prop() public readonly required?: boolean\n\n /**\n * Get or set the selection direction of a text selection.\n *\n * > **_NOTE:_** This property has no effect when used as an attribute.\n *\n * @webnative\n */\n @Prop({ mutable: true })\n // eslint-disable-next-line unicorn/no-null\n public selectionDirection: HTMLInputElement['selectionDirection'] = null\n\n /**\n * Get or set the ending position or offset of a text selection.\n *\n * > **_NOTE:_** This property has no effect when used as an attribute.\n *\n * @webnative\n */\n @Prop({ mutable: true })\n // eslint-disable-next-line unicorn/no-null\n public selectionEnd: HTMLInputElement['selectionEnd'] = null\n\n /**\n * Get or set the starting position or offset of a text selection.\n *\n * > **_NOTE:_** This property has no effect when used as an attribute.\n *\n * @webnative\n */\n @Prop({ mutable: true })\n // eslint-disable-next-line unicorn/no-null\n public selectionStart: HTMLInputElement['selectionStart'] = null\n\n /**\n * Specifies the granularity that the `value` must adhere to. Only valid for\n * `date`, `datetime-local`, `month`, `number`, `time`, and `week` inputs.\n *\n * The value must be a positive number—integer or float—or the special value\n * `any`, which means no stepping is implied, and any value is allowed\n * (barring other constraints, such as `min` and `max`).\n *\n * If `any` is not explicitly set, valid values for the `number` are the\n * basis for stepping — the `min` value and increments of the step value, up\n * to the `max` value, if specified.\n *\n * @webnative\n */\n @Prop() public readonly step?: number | 'any'\n\n /**\n * The type of input to render:\n *\n * - `\"date\"`: An input for entering a date (year, month, and day, with no\n * time). Opens a date picker or numeric wheels for year, month, day when\n * active in supporting browsers.\n * - `\"datetime-local\"`: An input for entering a date and time, with no time\n * zone. Opens a date picker or numeric wheels for date and time components\n * when active in supporting browsers.\n * - `\"email\"`: An input for editing an email address. Looks like a `\"text\"`\n * input, but has validation parameters and relevant keyboard in supporting\n * browsers and devices with dynamic keyboards.\n * - `\"month\"`: An input for entering a month and year, with no time zone.\n * - `\"number\"`: An input for entering a number. Displays a spinner and adds\n * default validation when supported. Displays a numeric keypad in some\n * devices with dynamic keypads.\n * - `\"password\"`: A single-line text input whose value is obscured. Will\n * alert user if site is not secure.\n * - `\"search\"`: A single-line text input for entering search strings.\n * Line-breaks are automatically removed from the input value. May include a\n * delete icon in supporting browsers that can be used to clear the input.\n * Displays a search icon instead of enter key on some devices with dynamic\n * keypads.\n * - `\"tel\"`: An input for entering a telephone number. Displays a telephone\n * keypad in some devices with dynamic keypads.\n * - `\"text\"`: A single-line text input. Line-breaks are automatically\n * removed from the input value.\n * - `\"time\"`: An input for entering a time value with no time zone.\n * - `\"url\"`: An input for entering a URL. Looks like a `\"text\"` input, but\n * has validation parameters and relevant keyboard in supporting browsers and\n * devices with dynamic keyboards.\n * - `\"week\"`: An input for entering a date consisting of a week-year number\n * and a week number with no time zone.\n *\n * @webnative\n */\n @Prop() public readonly type?: InputType\n\n /**\n * The error message that would be shown to the user if the `<qds-input>`\n * was to be checked for validity.\n *\n * @readonly\n * @webnative\n */\n @Prop()\n public readonly validationMessage: ElementInternals['validationMessage'] = ''\n\n /**\n * The [`ValidityState`][] object for this `<qds-input>`.\n *\n * [`ValidityState`]: https://developer.mozilla.org/docs/Web/API/ValidityState\n *\n * @readonly\n * @webnative\n */\n @Prop() public readonly validity: ElementInternals['validity'] = VALID_STATE\n\n /**\n * The value of the input.\n *\n * @webnative\n */\n @Prop({ mutable: true }) public value?: Value\n\n /**\n * True if `<qds-input>` will be validated when the form is submitted; false\n * otherwise.\n *\n * @readonly\n * @webnative\n */\n @Prop() public readonly willValidate: ElementInternals['willValidate'] = false\n\n @AttachInternals() private readonly internals!: ElementInternals\n\n /**\n * Emitted when the input loses focus.\n */\n @Event({ eventName: 'qdsBlur', bubbles: false, cancelable: false })\n private readonly blurEmitter!: EventEmitter<QdsFocusEventDetail>\n\n /**\n * Emitted when the user cancels the file picker via the <kbd>Esc</kbd> key\n * or the cancel button and when the user re-selects the same files that were\n * previously selected.\n */\n @Event({ eventName: 'qdsCancel', cancelable: false })\n private readonly cancelEmitter!: EventEmitter<void>\n\n /** Emitted when the user performs a search (Enter, clear, or search button). */\n @Event({ eventName: 'qdsSearch', cancelable: false })\n private readonly searchEmitter!: EventEmitter<void>\n\n /**\n * Emitted when an alteration to the input's value is committed by the user.\n */\n @Event({ eventName: 'qdsChange', cancelable: false })\n private readonly changeEmitter!: EventEmitter<void>\n\n /**\n * Emitted when the input gains focus.\n */\n @Event({ eventName: 'qdsFocus', bubbles: false, cancelable: false })\n private readonly focusEmitter!: EventEmitter<QdsFocusEventDetail>\n\n /**\n * Emitted when the input's value changes.\n */\n @Event({ eventName: 'qdsInput', cancelable: false })\n private readonly inputEmitter!: EventEmitter<QdsInputEventDetail>\n\n @Element() private readonly host!: HTMLElement\n\n @State() private tabIndex?: number\n\n @State() private isPasswordVisible = false\n\n #inheritedAttributes: Attributes = {}\n\n #input?: HTMLInputElement\n\n get #computedDisabled(): boolean {\n return this.host.matches(':disabled') || (this.disabled ?? false)\n }\n\n get #computedIconName():\n | `input-${InputType}`\n | `input-password-hide`\n | `input-password-show`\n | undefined {\n if (this.type === 'password')\n return this.isPasswordVisible\n ? 'input-password-hide'\n : 'input-password-show'\n\n switch (this.type) {\n case 'date':\n case 'datetime-local':\n case 'month':\n case 'search':\n case 'time':\n case 'week': {\n return `input-${this.type}`\n }\n default: {\n return undefined\n }\n }\n }\n\n get #computedSize(): Size {\n switch (this.size) {\n case 'standard':\n case 'small':\n case 'large': {\n return this.size\n }\n default: {\n return 'standard'\n }\n }\n }\n\n get #computedValue(): Parameters<ElementInternals['setFormValue']>[0] {\n if (typeof this.value === 'number') return this.value.toString()\n // eslint-disable-next-line unicorn/no-null\n return this.value === undefined ? null : this.value\n }\n\n get #computedStatus(): InputStatus | undefined {\n switch (this.status) {\n case 'error':\n case 'success':\n case 'warning': {\n return this.status\n }\n default: {\n return undefined\n }\n }\n }\n\n get #hasInteractiveIcon(): boolean {\n return (\n typeof this.type === 'string' &&\n ['month', 'time', 'date', 'datetime-local', 'week', 'password'].includes(\n this.type,\n )\n )\n }\n\n get #iconClickHandler(): () => void {\n return this.type === 'password'\n ? this.#togglePasswordVisibility\n : this.showPicker\n }\n\n get #computedType(): InputType {\n return this.type === 'password' && this.isPasswordVisible\n ? 'text'\n : (this.type ?? 'text')\n }\n\n get #computedInteractiveIconAriaLabel(): string {\n return this.type === 'password'\n ? this.isPasswordVisible\n ? 'Hide password'\n : 'Show password'\n : (this.type ?? '')\n }\n\n @Listen('click')\n protected onClick(event: MouseEvent): void {\n if (this.#computedDisabled) event.stopImmediatePropagation()\n }\n\n @Listen('keydown')\n protected onKeydown(event: KeyboardEvent): void {\n if (this.#computedDisabled) {\n event.stopImmediatePropagation()\n return\n }\n\n if (event.key === 'Enter' && this.internals.form) {\n this.internals.form.requestSubmit()\n event.preventDefault()\n }\n\n if (event.key === 'Enter' && !supportsSearchEvent()) {\n this.searchEmitter.emit()\n }\n }\n\n @Watch('aria-label')\n protected ariaLabelChanged(newValue: string | null): void {\n invariant(this.#input)\n this.#input.ariaLabel =\n newValue ??\n [...this.internals.labels]\n .map((node: Node) => {\n // eslint-disable-next-line unicorn/prefer-dom-node-text-content\n const text = (node as HTMLElement).innerText.trim()\n return text === ''\n ? (this.host.parentElement?.querySelector('qds-label')?.text ?? '')\n : text\n })\n .join(' ')\n }\n\n @Watch('status')\n protected statusChanged(): void {\n this.internals.ariaInvalid = (this.#computedStatus === 'error').toString()\n }\n\n @Watch('disabled')\n protected disabledChanged(): void {\n if (this.#computedDisabled)\n // eslint-disable-next-line unicorn/no-null\n this.internals.setFormValue(null)\n else this.internals.setFormValue(this.#computedValue)\n }\n\n @Watch('selectionDirection')\n protected selectionDirectionChanged(): void {\n invariant(this.#input)\n\n this.#input.selectionDirection = this.selectionDirection\n }\n\n @Watch('selectionEnd')\n protected selectionEndChanged(): void {\n invariant(this.#input)\n\n this.#input.selectionEnd = this.selectionEnd\n }\n\n @Watch('selectionStart')\n protected selectionStartChanged(): void {\n invariant(this.#input)\n\n this.#input.selectionStart = this.selectionStart\n }\n\n @Watch('tabindex')\n protected tabindexChanged(newValue: string): void {\n const parsedValue = Number.parseInt(newValue, 10)\n this.tabIndex =\n parsedValue === 0 || Number.isNaN(parsedValue) ? undefined : parsedValue\n }\n\n @Watch('max')\n @Watch('maxLength')\n @Watch('min')\n @Watch('minLength')\n @Watch('pattern')\n @Watch('required')\n @Watch('step')\n @Watch('type')\n @Watch('value')\n protected validationChanged(): void {\n if (!this.#input) return\n\n if (this.#input.max !== this.max && this.max !== undefined)\n this.#input.max = this.max.toString()\n if (this.maxLength !== undefined) this.#input.maxLength = this.maxLength\n if (this.#input.min !== this.min && this.min !== undefined)\n this.#input.min = this.min.toString()\n if (this.minLength !== undefined) this.#input.minLength = this.minLength\n if (this.pattern !== undefined) this.#input.pattern = this.pattern\n this.#input.required = this.required ?? false\n if (this.#input.step !== this.step && this.step !== undefined)\n this.#input.step = this.step.toString()\n this.#input.type = this.#computedType\n\n const { valid } = this.#input.validity\n if (valid)\n this.internals.setValidity(NO_ERROR_FLAGS, undefined, this.#input)\n else\n this.internals.setValidity(\n this.#input.validity,\n this.#input.validationMessage,\n this.#input,\n )\n }\n\n @Watch('value')\n protected valueChanged(): void {\n if (!this.#computedDisabled)\n this.internals.setFormValue(this.#computedValue)\n\n if (\n (this.#computedValue === null || this.#computedValue === '') &&\n this.type === 'file'\n ) {\n this.#clearValue()\n }\n }\n\n public componentWillLoad(): void {\n this.#defineGetter('form', () => this.internals.form)\n this.#defineGetter('willValidate', () => this.internals.willValidate)\n this.#defineGetter('validity', () => this.internals.validity)\n this.#defineGetter(\n 'validationMessage',\n () => this.internals.validationMessage,\n )\n this.#defineGetter('files', this.#getFiles)\n this.#defineGetter('labels', () => this.internals.labels)\n\n this.#inheritedAttributes = inheritAriaAttributes(this.host)\n this.tabindexChanged(this.host.getAttribute('tabindex') ?? '0')\n this.statusChanged()\n }\n\n public componentDidLoad(): void {\n invariant(this.#input)\n\n this.ariaLabelChanged(this.host.ariaLabel)\n this.validationChanged()\n this.valueChanged()\n // FIXME: This event is supported by the native `<input>` element but not\n // recognized by Stencil's type definitions, so it needs to be manually\n // bound here.\n this.#input.addEventListener('cancel', this.#onCancel)\n this.#input.addEventListener('search', this.#onSearch)\n }\n\n public disconnectedCallback(): void {\n if (this.#input) {\n this.#input.removeEventListener('cancel', this.#onCancel)\n this.#input.removeEventListener('search', this.#onSearch)\n }\n }\n\n public render() {\n const hasValue =\n this.value !== null && this.value !== undefined && this.value !== ''\n const isSearchType = this.type === 'search'\n const isIconUnsupportedType = this.type === 'file' || this.type === 'color'\n const shouldShowClearButton = hasValue && isSearchType\n const shouldShowClearableButton =\n hasValue &&\n !isSearchType &&\n !isIconUnsupportedType &&\n this.clearable === true\n /* DEPRECATED: noIcon will be removed by September 2026 */\n const shouldShowSearchButton = isSearchType && this.noIcon === false\n const shouldHideIcon = !isSearchType && this.noIcon === true\n const shouldRemoveSearchPadding = isSearchType && this.noIcon === true\n\n return (\n <div class=\"qds-container\">\n <input\n accept={this.accept}\n autoCapitalize={this.host.autocapitalize}\n autoComplete={this.autoComplete}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={this.host.autofocus}\n capture={this.capture}\n class={{\n 'qds-search-padding': shouldRemoveSearchPadding,\n 'qds-input': true,\n 'qds-hide': shouldHideIcon,\n 'qds-padding': shouldHideIcon,\n 'qds-password-padding':\n this.type === 'password' ||\n (this.isPasswordVisible && this.type === 'text'),\n 'qds-custom-icon-padding':\n shouldShowClearableButton && !this.#computedIconName,\n 'qds-dual-icon-padding':\n shouldShowClearableButton && this.#hasInteractiveIcon,\n }}\n data-status={this.#computedStatus}\n data-size={this.#computedSize}\n disabled={this.#computedDisabled}\n enterKeyHint={this.enterkeyhint}\n inputMode={this.inputmode}\n max={this.max}\n maxLength={this.maxLength}\n min={this.min}\n minLength={this.minLength}\n multiple={this.multiple}\n onBlur={this.#onBlur}\n onChange={this.#onChange}\n onFocus={this.#onFocus}\n onInput={this.#onInput}\n placeholder={this.placeholder}\n readOnly={this.readonly}\n ref={this.#ref}\n spellcheck={this.host.spellcheck}\n step={this.step}\n tabIndex={this.#computedDisabled ? undefined : this.tabIndex}\n type={this.#computedType}\n value={this.value ?? ''}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...this.#inheritedAttributes}\n />\n <div class=\"qds-focus-ring\" />\n {shouldShowClearableButton && !this.#computedIconName && (\n <div class=\"qds-icon-container\">{this.#renderClearableButton()}</div>\n )}\n {this.#computedIconName && (\n <div class=\"qds-icon-container\">\n {shouldShowClearButton && this.#renderSearchClearButton()}\n {shouldShowClearableButton &&\n this.#hasInteractiveIcon &&\n this.#renderClearableButton()}\n {this.#hasInteractiveIcon && this.#renderInteractiveIconButton()}\n {shouldShowSearchButton && this.#renderSearchButton()}\n </div>\n )}\n </div>\n )\n }\n\n public checkValidity: ElementInternals['checkValidity'] = () =>\n this.internals.checkValidity()\n\n public reportValidity: ElementInternals['reportValidity'] = () =>\n this.internals.reportValidity()\n\n public setCustomValidity: HTMLInputElement['setCustomValidity'] = (error) => {\n invariant(this.#input)\n\n this.#input.setCustomValidity(error)\n if (error)\n this.internals.setValidity(CUSTOM_ERROR_FLAGS, error, this.#input)\n else this.internals.setValidity(NO_ERROR_FLAGS)\n }\n\n public select: HTMLInputElement['select'] = () => {\n invariant(this.#input)\n\n this.#input.select()\n }\n\n public getSelectionDirection: () => HTMLInputElement['selectionDirection'] =\n () => {\n invariant(this.#input)\n\n return this.#input.selectionDirection\n }\n\n public getSelectionStart: () => HTMLInputElement['selectionStart'] = () => {\n invariant(this.#input)\n\n return this.#input.selectionStart\n }\n\n public getSelectionEnd: () => HTMLInputElement['selectionEnd'] = () => {\n invariant(this.#input)\n\n return this.#input.selectionEnd\n }\n\n public setRangeText = (\n replacement: string,\n start: number,\n end: number,\n selectionMode?: SelectionMode,\n ): void => {\n invariant(this.#input)\n\n this.#input.setRangeText(replacement, start, end, selectionMode)\n\n if (this.value !== this.#input.value) {\n this.value = this.#input.value\n this.inputEmitter.emit()\n this.changeEmitter.emit()\n }\n }\n\n public setSelectionRange: HTMLInputElement['setSelectionRange'] = (\n start,\n end,\n direction,\n ) => {\n invariant(this.#input)\n\n this.#input.setSelectionRange(start, end, direction)\n }\n\n public stepDown: HTMLInputElement['stepDown'] = (n) => {\n invariant(this.#input)\n\n this.#input.stepDown(n)\n }\n\n public stepUp: HTMLInputElement['stepUp'] = (n) => {\n invariant(this.#input)\n\n this.#input.stepUp(n)\n }\n\n public showPicker: HTMLInputElement['showPicker'] = () => {\n invariant(this.#input)\n\n this.#input.showPicker()\n }\n\n readonly #renderClearableButton = (): HTMLElement => (\n <qds-mini-button\n name=\"clear\"\n library=\"core\"\n text=\"clear input\"\n onClick={this.#onClearableClick}\n onQdsFocus={stopImmediatePropagation}\n />\n )\n\n readonly #renderSearchClearButton = (): HTMLElement => (\n <qds-mini-button\n class=\"qds-hide\"\n name=\"clear\"\n library=\"core\"\n text=\"clear input\"\n onClick={this.#onSearchClear}\n onQdsFocus={stopImmediatePropagation}\n />\n )\n\n readonly #renderInteractiveIconButton = (): HTMLElement => (\n <qds-mini-button\n name={this.#computedIconName ?? ''}\n library=\"core\"\n text={this.#computedInteractiveIconAriaLabel}\n onClick={this.#iconClickHandler}\n onQdsFocus={stopImmediatePropagation}\n />\n )\n\n readonly #renderSearchButton = (): HTMLElement => (\n <qds-mini-button\n name={this.#computedIconName ?? ''}\n library=\"core\"\n text=\"search\"\n onClick={this.#onSearch}\n onQdsFocus={stopImmediatePropagation}\n />\n )\n\n readonly #togglePasswordVisibility = (): void => {\n invariant(this.#input)\n this.isPasswordVisible = !this.isPasswordVisible\n\n this.#input.type = this.#computedType\n }\n\n readonly #ref = (input?: HTMLInputElement): void => {\n this.#input = input\n }\n\n readonly #getFiles: () => HTMLInputElement['files'] = () => {\n invariant(this.#input)\n\n return this.#input.files\n }\n\n readonly #onBlur = (event: FocusEvent): void => {\n this.blurEmitter.emit(pickFocusEventAttributes(event))\n }\n\n readonly #onCancel = (): void => {\n this.cancelEmitter.emit()\n }\n\n readonly #onSearch = (): void => {\n this.searchEmitter.emit()\n }\n\n readonly #onChange = (): void => {\n this.changeEmitter.emit()\n }\n\n readonly #handleClear = (): void => {\n this.#clearValue()\n this.#onInput(new InputEvent('input', { inputType: 'deleteContent' }))\n\n invariant(this.#input)\n if (document.activeElement !== this.#input) this.#input.focus()\n }\n\n readonly #onClearableClick = (): void => {\n this.#handleClear()\n }\n\n readonly #onSearchClear = (): void => {\n this.#handleClear()\n this.searchEmitter.emit()\n }\n\n readonly #onFocus = (event: FocusEvent): void => {\n this.focusEmitter.emit(pickFocusEventAttributes(event))\n }\n\n readonly #onInput = (event: InputEvent): void => {\n invariant(this.#input)\n\n this.value = this.#input.value\n this.inputEmitter.emit(pickInputEventAttributes(event))\n }\n\n #defineGetter(p: PropertyKey, get: () => unknown): void {\n Object.defineProperty(this.host, p, { enumerable: true, get })\n }\n\n #clearValue(): void {\n invariant(this.#input)\n\n this.#input.value = ''\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { r as registerInstance, a as readTask, h } from './index-Hg1Liloy.js';
|
|
7
|
-
import { a as isEllipsisActive } from './helpers-
|
|
7
|
+
import { a as isEllipsisActive } from './helpers-_EoroLk_.js';
|
|
8
8
|
|
|
9
9
|
const labelCss = ":host([hidden]){display:none!important}:host{display:inline-block}.qds-label{align-items:center;box-sizing:border-box;color:var(--qds-theme-control-text-standard);display:inline-flex;gap:var(--qds-text-icon-gap);width:100%}.qds-label:focus-visible{border-radius:var(--qds-focus-border-radius);outline:var(--qds-focus-border-width) solid var(--qds-theme-focus-border);outline-offset:var(--qds-focus-border-offset)}.qds-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qds-required{color:var(--qds-theme-feedback-field-required);-webkit-user-select:none;user-select:none}[data-size=small][data-importance=standard]{font:var(--qds-form-small-text)}[data-size=small][data-importance=emphasized] .qds-text{font:var(--qds-form-small-text-emphasized)}.qds-inline[data-size=small]{min-height:var(--qds-control-small-height)}.qds-icon[data-size=small]{height:var(--qds-form-small-icon-size);min-width:var(--qds-form-small-icon-size);width:var(--qds-form-small-icon-size)}[data-size=standard][data-importance=standard]{font:var(--qds-form-standard-text)}[data-size=standard][data-importance=emphasized] .qds-text{font:var(--qds-form-standard-text-emphasized)}.qds-inline[data-size=standard]{min-height:var(--qds-control-standard-height)}.qds-icon[data-size=standard]{height:var(--qds-form-standard-icon-size);min-width:var(--qds-form-standard-icon-size);width:var(--qds-form-standard-icon-size)}[data-size=large][data-importance=standard]{font:var(--qds-form-large-text)}[data-size=large][data-importance=emphasized] .qds-text{font:var(--qds-form-large-text-emphasized)}.qds-inline[data-size=large]{min-height:var(--qds-control-large-height)}.qds-icon[data-size=large]{height:var(--qds-form-large-icon-size);min-width:var(--qds-form-large-icon-size);width:var(--qds-form-large-icon-size)}";
|
|
10
10
|
|
|
@@ -89,12 +89,12 @@ const Label = class {
|
|
|
89
89
|
__classPrivateFieldGet(this, _Label_ro, "f").disconnect();
|
|
90
90
|
}
|
|
91
91
|
render() {
|
|
92
|
-
return (h("span", { key: '
|
|
92
|
+
return (h("span", { key: '0915703faa9ab405d9906f6620bfa19d78fbfca2', class: {
|
|
93
93
|
'qds-inline': this.inline,
|
|
94
94
|
'qds-label': true,
|
|
95
95
|
}, "data-size": __classPrivateFieldGet(this, _Label_instances, "a", _Label_computedSize_get), "data-importance": __classPrivateFieldGet(this, _Label_instances, "a", _Label_computedImportance_get), ref: __classPrivateFieldGet(this, _Label_labelRef, "f"),
|
|
96
96
|
// eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
|
|
97
|
-
tabIndex: this.tooltip ? 0 : undefined }, this.required && h("span", { key: '
|
|
97
|
+
tabIndex: this.tooltip ? 0 : undefined }, this.required && h("span", { key: 'd0a36929ba2e813923e5e28c5d13f9f62203637b', class: "qds-required" }, "*"), h("span", { key: '0dd2a08b4c5458408aaa30fe241fc807920dd50c', class: "qds-text", ref: __classPrivateFieldGet(this, _Label_spanRef, "f") }, this.text), this.tooltip && (h("qds-tooltip", { key: '68050637f772a80cae98db77c10fb7d42a507dca', "aria-hidden": "true", ref: __classPrivateFieldGet(this, _Label_tooltipRef, "f") }, this.text))));
|
|
98
98
|
}
|
|
99
99
|
static get watchers() { return {
|
|
100
100
|
"text": ["textChanged"]
|