@uh-design-system/component-library 0.2.4 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/dist/cjs/attributes-f7831329.js +78 -0
  2. package/dist/cjs/component-library.cjs.js +3 -3
  3. package/dist/cjs/{ds-accordion_2.cjs.entry.js → ds-accordion_3.cjs.entry.js} +419 -241
  4. package/dist/cjs/ds-link-with-arrow.cjs.entry.js +47 -0
  5. package/dist/cjs/ds-link.cjs.entry.js +54 -0
  6. package/dist/cjs/ds-text-input.cjs.entry.js +12 -16
  7. package/dist/cjs/ds-visually-hidden.cjs.entry.js +20 -0
  8. package/dist/cjs/{index-fd4f6cd2.js → index-bfa0f441.js} +17 -11
  9. package/dist/cjs/linkUtils-695da37c.js +16 -0
  10. package/dist/cjs/loader.cjs.js +2 -2
  11. package/dist/cjs/utils-8b73aa91.js +10 -0
  12. package/dist/collection/collection-manifest.json +3 -1
  13. package/dist/collection/components/00-foundations/icons/categories/arrows.js +6 -0
  14. package/dist/collection/components/00-foundations/icons/categories/information.js +12 -0
  15. package/dist/collection/components/00-foundations/icons/categories/media.js +4 -0
  16. package/dist/collection/components/00-foundations/icons/categories/social.js +17 -0
  17. package/dist/collection/components/00-foundations/icons/iconList.js +2 -0
  18. package/dist/collection/components/00-foundations/typography/stories/typography.stories.js +110 -0
  19. package/dist/collection/components/01-base-components/ds-accordion/ds-accordion.css +101 -82
  20. package/dist/collection/components/01-base-components/ds-accordion/ds-accordion.js +41 -9
  21. package/dist/collection/components/01-base-components/ds-accordion/stories/ds-accordion.examples.stories.js +15 -0
  22. package/dist/collection/components/01-base-components/ds-accordion/stories/ds-accordion.features.stories.js +1 -1
  23. package/dist/collection/components/01-base-components/ds-accordion/stories/ds-accordion.stories.js +10 -1
  24. package/dist/collection/components/01-base-components/ds-button/ds-button.css +168 -104
  25. package/dist/collection/components/01-base-components/ds-button/ds-button.js +23 -2
  26. package/dist/collection/components/01-base-components/ds-button/stories/ds-button.examples.stories.js +6 -0
  27. package/dist/collection/components/01-base-components/ds-button/stories/ds-button.features.stories.js +13 -7
  28. package/dist/collection/components/01-base-components/ds-icon/ds-icon.css +5 -1
  29. package/dist/collection/components/01-base-components/ds-icon/ds-icon.js +8 -5
  30. package/dist/collection/components/01-base-components/ds-icon/ds-icon.stories.js +2 -2
  31. package/dist/collection/components/01-base-components/ds-link/ds-link.css +224 -0
  32. package/dist/collection/components/01-base-components/ds-link/ds-link.js +281 -0
  33. package/dist/collection/components/01-base-components/ds-link/stories/ds-link.examples.stories.js +53 -0
  34. package/dist/collection/components/01-base-components/ds-link/stories/ds-link.features.stories.js +73 -0
  35. package/dist/collection/components/01-base-components/ds-link/stories/ds-link.stories.js +72 -0
  36. package/dist/collection/components/01-base-components/ds-link-with-arrow/ds-link-with-arrow.css +208 -0
  37. package/dist/collection/components/01-base-components/ds-link-with-arrow/ds-link-with-arrow.js +161 -0
  38. package/dist/collection/components/01-base-components/ds-link-with-arrow/stories/ds-arrow-link.examples.stories.js +33 -0
  39. package/dist/collection/components/01-base-components/ds-link-with-arrow/stories/ds-arrow-link.features.stories.js +19 -0
  40. package/dist/collection/components/01-base-components/ds-link-with-arrow/stories/ds-arrow-link.stories.js +40 -0
  41. package/dist/collection/components/01-base-components/ds-text-input/ds-text-input.css +72 -48
  42. package/dist/collection/components/01-base-components/ds-text-input/ds-text-input.js +44 -4
  43. package/dist/collection/components/01-base-components/ds-text-input/{ds-text-input.examples.stories.js → stories/ds-text-input.examples.stories.js} +13 -0
  44. package/dist/collection/components/01-base-components/ds-text-input/{ds-text-input.features.stories.js → stories/ds-text-input.features.stories.js} +18 -4
  45. package/dist/collection/components/01-base-components/ds-text-input/{ds-text-input.stories.js → stories/ds-text-input.stories.js} +2 -2
  46. package/dist/collection/components/01-base-components/ds-visually-hidden/ds-visually-hidden.js +1 -1
  47. package/dist/collection/introduction/introduction.stories.js +9 -0
  48. package/dist/collection/utils/link/linkUtils.js +11 -0
  49. package/dist/collection/utils/typography/typographyUtils.js +21 -0
  50. package/dist/collection/utils/utils.js +5 -0
  51. package/dist/component-library/attributes-9419ac39.js +1 -0
  52. package/dist/component-library/component-library.css +1 -1
  53. package/dist/component-library/component-library.esm.js +1 -1
  54. package/dist/component-library/ds-accordion_3.entry.js +1 -0
  55. package/dist/component-library/ds-link-with-arrow.entry.js +1 -0
  56. package/dist/component-library/ds-link.entry.js +1 -0
  57. package/dist/component-library/ds-text-input.entry.js +1 -1
  58. package/dist/component-library/ds-visually-hidden.entry.js +1 -0
  59. package/dist/component-library/{index-4200d514.js → index-42701395.js} +2 -2
  60. package/dist/component-library/linkUtils-3d1b28cf.js +1 -0
  61. package/dist/component-library/utils-cca2a41a.js +1 -0
  62. package/dist/components/attributes.js +154 -0
  63. package/dist/components/ds-accordion.js +31 -12
  64. package/dist/components/ds-button2.js +6 -78
  65. package/dist/components/ds-icon2.js +320 -231
  66. package/dist/components/ds-link-with-arrow.d.ts +11 -0
  67. package/dist/components/ds-link-with-arrow.js +78 -0
  68. package/dist/components/ds-link.d.ts +11 -0
  69. package/dist/components/ds-link.js +90 -0
  70. package/dist/components/ds-text-input.js +11 -13
  71. package/dist/components/ds-visually-hidden2.js +1 -1
  72. package/dist/components/index2.js +7 -10
  73. package/dist/components/linkUtils.js +13 -0
  74. package/dist/components/utils.js +8 -0
  75. package/dist/esm/attributes-9419ac39.js +75 -0
  76. package/dist/esm/component-library.js +4 -4
  77. package/dist/esm/{ds-accordion_2.entry.js → ds-accordion_3.entry.js} +419 -242
  78. package/dist/esm/ds-link-with-arrow.entry.js +43 -0
  79. package/dist/esm/ds-link.entry.js +50 -0
  80. package/dist/esm/ds-text-input.entry.js +8 -12
  81. package/dist/esm/ds-visually-hidden.entry.js +16 -0
  82. package/dist/esm/{index-4200d514.js → index-42701395.js} +17 -11
  83. package/dist/esm/linkUtils-3d1b28cf.js +13 -0
  84. package/dist/esm/loader.js +3 -3
  85. package/dist/esm/utils-cca2a41a.js +8 -0
  86. package/dist/types/components/00-foundations/icons/categories/social.d.ts +5 -0
  87. package/dist/types/components/00-foundations/typography/stories/typography.stories.d.ts +9 -0
  88. package/dist/types/components/01-base-components/ds-accordion/ds-accordion.d.ts +2 -0
  89. package/dist/types/components/01-base-components/ds-accordion/stories/ds-accordion.examples.stories.d.ts +1 -0
  90. package/dist/types/components/01-base-components/ds-button/ds-button.d.ts +1 -0
  91. package/dist/types/components/01-base-components/ds-button/stories/ds-button.examples.stories.d.ts +1 -0
  92. package/dist/types/components/01-base-components/ds-button/stories/ds-button.features.stories.d.ts +3 -0
  93. package/dist/types/components/01-base-components/ds-icon/ds-icon.d.ts +1 -1
  94. package/dist/types/components/01-base-components/ds-link/ds-link.d.ts +25 -0
  95. package/dist/types/components/01-base-components/ds-link/stories/ds-link.examples.stories.d.ts +11 -0
  96. package/dist/types/components/01-base-components/ds-link/stories/ds-link.features.stories.d.ts +11 -0
  97. package/dist/types/components/01-base-components/ds-link/stories/ds-link.stories.d.ts +7 -0
  98. package/dist/types/components/01-base-components/ds-link-with-arrow/ds-link-with-arrow.d.ts +18 -0
  99. package/dist/types/components/01-base-components/ds-link-with-arrow/stories/ds-arrow-link.examples.stories.d.ts +7 -0
  100. package/dist/types/components/01-base-components/ds-link-with-arrow/stories/ds-arrow-link.features.stories.d.ts +7 -0
  101. package/dist/types/components/01-base-components/ds-link-with-arrow/stories/ds-arrow-link.stories.d.ts +7 -0
  102. package/dist/types/components/01-base-components/ds-text-input/ds-text-input.d.ts +2 -0
  103. package/dist/types/components/01-base-components/ds-text-input/{ds-text-input.examples.stories.d.ts → stories/ds-text-input.examples.stories.d.ts} +2 -1
  104. package/dist/types/components/01-base-components/ds-text-input/{ds-text-input.features.stories.d.ts → stories/ds-text-input.features.stories.d.ts} +4 -1
  105. package/dist/types/components/01-base-components/ds-text-input/{ds-text-input.stories.d.ts → stories/ds-text-input.stories.d.ts} +1 -1
  106. package/dist/types/components.d.ts +66 -2
  107. package/dist/types/introduction/introduction.stories.d.ts +10 -0
  108. package/dist/types/utils/link/linkUtils.d.ts +2 -0
  109. package/dist/types/utils/typography/typographyUtils.d.ts +1 -0
  110. package/dist/types/utils/utils.d.ts +1 -0
  111. package/package.json +2 -4
  112. package/dist/cjs/ds-button_2.cjs.entry.js +0 -170
  113. package/dist/component-library/ds-accordion_2.entry.js +0 -1
  114. package/dist/component-library/ds-button_2.entry.js +0 -1
  115. package/dist/components/index3.js +0 -80
  116. package/dist/esm/ds-button_2.entry.js +0 -165
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface DsLinkWithArrow extends Components.DsLinkWithArrow, HTMLElement {}
4
+ export const DsLinkWithArrow: {
5
+ prototype: DsLinkWithArrow;
6
+ new (): DsLinkWithArrow;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,78 @@
1
+ import { p as proxyCustomElement, H, h } from './index2.js';
2
+ import { i as inheritAriaAttributes, c as classNames } from './attributes.js';
3
+ import { i as idGenerator } from './utils.js';
4
+ import { o as opensInNewTab, v as visuallyHiddenAssistiveText } from './linkUtils.js';
5
+ import { d as defineCustomElement$3 } from './ds-icon2.js';
6
+ import { d as defineCustomElement$2 } from './ds-visually-hidden2.js';
7
+
8
+ const dsLinkWithArrowCss = ":root{--ds-breakpoint-xSmall:20rem;--ds-breakpoint-small:30rem;--ds-breakpoint-medium:60rem;--ds-breakpoint-large:75rem;--ds-breakpoint-xLarge:90rem}:root{--ds-borderWidth-none:0px;--ds-borderWidth-hairline:1px;--ds-borderWidth-thin:2px;--ds-borderWidth-thick:4px;--ds-borderWidth-xThick:8px;--ds-borderRadius-none:0px}:root{--ds-breakpoint-xSmall:20rem;--ds-breakpoint-small:30rem;--ds-breakpoint-medium:60rem;--ds-breakpoint-large:75rem;--ds-breakpoint-xLarge:90rem}:root{--ds-fontFamily-heading:\"Open Sans\", sans-serif;--ds-fontFamily-body:\"Open Sans\", sans-serif;--ds-fontSize-12:12px;--ds-fontSize-14:14px;--ds-fontSize-16:16px;--ds-fontSize-18:18px;--ds-fontSize-20:20px;--ds-fontSize-22:22px;--ds-fontSize-24:24px;--ds-fontSize-26:26px;--ds-fontSize-30:30px;--ds-fontSize-32:32px;--ds-fontSize-36:36px;--ds-fontSize-40:40px;--ds-fontSize-48:48px;--ds-fontSize-56:56px;--ds-fontSize-64:64px;--ds-fontWeight-regular:400;--ds-fontWeight-semibold:600;--ds-fontWeight-semiboldPlus:650;--ds-fontWeight-bold:700;--ds-letterSpacing-xTight:-2;--ds-letterSpacing-tight:-1.4;--ds-letterSpacing-normal:-0.4;--ds-letterSpacing-wide:0;--ds-letterSpacing-xWide:0.4;--ds-lineHeight-small:1;--ds-lineHeight-medium:1.2;--ds-lineHeight-large:1.5;--ds-lineHeight-xLarge:1.75;--ds-fontWidth-normal:100;--ds-fontWidth-condense:90;--ds-number-style:proportional-figures;}@supports (font-variation-settings: normal){:root{--ds-fontFamily-heading:\"Open Sans Variable\", sans-serif;--ds-fontFamily-body:\"Open Sans Variable\", sans-serif}}:root{--ds-breakpoint-xSmall:20rem;--ds-breakpoint-small:30rem;--ds-breakpoint-medium:60rem;--ds-breakpoint-large:75rem;--ds-breakpoint-xLarge:90rem}.ds-bodyText--2xLarge{color:var(--ds-textColor-default);font-family:var(--ds-fontFamily-body);font-size:var(--ds-fontSize-20);font-weight:var(--ds-fontWeight-regular);letter-spacing:var(--ds-letterSpacing-wide);line-height:var(--ds-lineHeight-large)}@media (min-width: 30rem){.ds-bodyText--2xLarge{font-size:var(--ds-fontSize-22)}}.ds-bodyText--xLarge{color:var(--ds-textColor-default);font-family:var(--ds-fontFamily-body);font-size:var(--ds-fontSize-18);font-weight:var(--ds-fontWeight-regular);letter-spacing:var(--ds-letterSpacing-wide);line-height:var(--ds-lineHeight-large)}@media (min-width: 30rem){.ds-bodyText--xLarge{font-size:var(--ds-fontSize-20)}}.ds-bodyText--large{color:var(--ds-textColor-default);font-family:var(--ds-fontFamily-body);font-size:var(--ds-fontSize-16);font-weight:var(--ds-fontWeight-regular);letter-spacing:var(--ds-letterSpacing-wide);line-height:var(--ds-lineHeight-large)}@media (min-width: 30rem){.ds-bodyText--large{font-size:var(--ds-fontSize-18)}}.ds-bodyText--medium{color:var(--ds-textColor-default);font-family:var(--ds-fontFamily-body);font-size:var(--ds-fontSize-14);font-weight:var(--ds-fontWeight-regular);letter-spacing:var(--ds-letterSpacing-wide);line-height:var(--ds-lineHeight-large)}@media (min-width: 30rem){.ds-bodyText--medium{font-size:var(--ds-fontSize-16)}}.ds-bodyText--small{color:var(--ds-textColor-default);font-family:var(--ds-fontFamily-body);font-size:var(--ds-fontSize-12);font-weight:var(--ds-fontWeight-regular);letter-spacing:var(--ds-letterSpacing-wide);line-height:var(--ds-lineHeight-large)}@media (min-width: 30rem){.ds-bodyText--small{font-size:var(--ds-fontSize-14)}}:host{display:inline-block}.ds-link-with-arrow{display:inline-flex;align-items:center;color:var(--ds-textColor-link);letter-spacing:var(--ds-letterSpacing-wide);font-weight:var(--ds-fontWeight-semibold);font-size:var(--ds-fontSize-16);text-decoration-line:none}.ds-link-with-arrow:focus-visible,.ds-link-with-arrow:focus-within{box-shadow:0 0 0 var(--ds-borderWidth-thin) var(--ds-borderColor-white);outline-color:var(--ds-borderColor-black);outline-offset:var(--ds-borderWidth-thin);outline-style:solid;outline-width:var(--ds-borderWidth-thin)}@media (min-width: 30rem){.ds-link-with-arrow{font-size:var(--ds-fontSize-18)}}.ds-link-with-arrow__icon{display:inline-flex;width:2em;height:2em;line-height:0;align-items:center;justify-content:center;color:var(--ds-textColor-white);background-color:var(--ds-bgColor-primary)}.ds-link-with-arrow__icon--start{margin-right:var(--ds-spacing-xSmall)}.ds-link-with-arrow__icon--end{margin-left:var(--ds-spacing-xSmall)}:hover slot>.ds-link-with-arrow__icon{outline:10px solid;background-color:var(--ds-bgColor-primary-hover)}:active slot>.ds-link-with-arrow__icon{background-color:var(--ds-bgColor-primary-active)}.ds-link-with-arrow:hover,.ds-link-with-arrow:active{text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:auto;text-decoration-thickness:7%;text-underline-offset:12%;text-underline-position:from-font}.ds-link-with-arrow:hover{color:var(--ds-textColor-link-hover)}.ds-link-with-arrow:active,.ds-link-with-arrow:focus-visible{color:var(--ds-textColor-link-active)}";
9
+ const DsLinkWithArrowStyle0 = dsLinkWithArrowCss;
10
+
11
+ const visuallyHiddenAssistiveTextIdGenerator = idGenerator('visually-hidden-assistive-text');
12
+ const DsLinkWithArrow$1 = proxyCustomElement(class DsLinkWithArrow extends H {
13
+ constructor() {
14
+ super();
15
+ this.__registerHost();
16
+ this.__attachShadow();
17
+ }
18
+ inheritedAttributes = {};
19
+ icon = 'arrow_forward';
20
+ rel;
21
+ visuallyHiddenAssistiveTextId = visuallyHiddenAssistiveTextIdGenerator.next().value;
22
+ get el() { return this; }
23
+ text;
24
+ iconPosition = 'start';
25
+ href;
26
+ target;
27
+ language;
28
+ componentWillLoad() {
29
+ this.inheritedAttributes = inheritAriaAttributes(this.el);
30
+ if (opensInNewTab(this.target)) {
31
+ this.icon = 'arrow_outward';
32
+ this.rel = 'noopener noreferrer';
33
+ }
34
+ }
35
+ render() {
36
+ const classes = classNames('ds-link-with-arrow');
37
+ const iconClasses = classNames('ds-link-with-arrow__icon', {
38
+ 'ds-link-with-arrow__icon--start': this.iconPosition === 'start',
39
+ 'ds-link-with-arrow__icon--end': this.iconPosition === 'end',
40
+ });
41
+ return (h("a", { key: 'aa1a1272c0323f286e590f1a366f2101410a58c3', href: this.href, class: classes, rel: this.rel, target: this.target, ...this.inheritedAttributes }, h("slot", { key: 'e348b24c8c5418cf0f33e18c5337066b6eb579a2', name: "iconStart" }, this.iconPosition === 'start' && h("ds-icon", { key: 'e523092b3dc32f936139c53e74195b927a219c0f', name: this.icon, class: iconClasses, size: "1.4em" })), this.text, h("slot", { key: '0ec9d65ee348aa75108f9d87474551b6b3c4a0bb', name: "iconStart" }, this.iconPosition === 'end' && h("ds-icon", { key: '55b5ef6cc061bea9f68d784e4e9fb0ebdac0002c', name: this.icon, class: iconClasses, size: "1.4em" })), opensInNewTab(this.target) && (h("ds-visually-hidden", { key: '8c92b801ac0a1d52e12fead3c89703d41f90fa6a', id: this.visuallyHiddenAssistiveTextId }, visuallyHiddenAssistiveText(this.language ?? document.documentElement.lang)))));
42
+ }
43
+ static get style() { return DsLinkWithArrowStyle0; }
44
+ }, [1, "ds-link-with-arrow", {
45
+ "text": [1],
46
+ "iconPosition": [1, "icon-position"],
47
+ "href": [1],
48
+ "target": [1],
49
+ "language": [1, "lang"]
50
+ }]);
51
+ function defineCustomElement$1() {
52
+ if (typeof customElements === "undefined") {
53
+ return;
54
+ }
55
+ const components = ["ds-link-with-arrow", "ds-icon", "ds-visually-hidden"];
56
+ components.forEach(tagName => { switch (tagName) {
57
+ case "ds-link-with-arrow":
58
+ if (!customElements.get(tagName)) {
59
+ customElements.define(tagName, DsLinkWithArrow$1);
60
+ }
61
+ break;
62
+ case "ds-icon":
63
+ if (!customElements.get(tagName)) {
64
+ defineCustomElement$3();
65
+ }
66
+ break;
67
+ case "ds-visually-hidden":
68
+ if (!customElements.get(tagName)) {
69
+ defineCustomElement$2();
70
+ }
71
+ break;
72
+ } });
73
+ }
74
+
75
+ const DsLinkWithArrow = DsLinkWithArrow$1;
76
+ const defineCustomElement = defineCustomElement$1;
77
+
78
+ export { DsLinkWithArrow, defineCustomElement };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface DsLink extends Components.DsLink, HTMLElement {}
4
+ export const DsLink: {
5
+ prototype: DsLink;
6
+ new (): DsLink;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,90 @@
1
+ import { p as proxyCustomElement, H, h } from './index2.js';
2
+ import { i as inheritAriaAttributes, c as classNames } from './attributes.js';
3
+ import { i as idGenerator } from './utils.js';
4
+ import { o as opensInNewTab, v as visuallyHiddenAssistiveText } from './linkUtils.js';
5
+ import { d as defineCustomElement$3 } from './ds-icon2.js';
6
+ import { d as defineCustomElement$2 } from './ds-visually-hidden2.js';
7
+
8
+ const dsLinkCss = ":root{--ds-breakpoint-xSmall:20rem;--ds-breakpoint-small:30rem;--ds-breakpoint-medium:60rem;--ds-breakpoint-large:75rem;--ds-breakpoint-xLarge:90rem}:root{--ds-borderWidth-none:0px;--ds-borderWidth-hairline:1px;--ds-borderWidth-thin:2px;--ds-borderWidth-thick:4px;--ds-borderWidth-xThick:8px;--ds-borderRadius-none:0px}:root{--ds-breakpoint-xSmall:20rem;--ds-breakpoint-small:30rem;--ds-breakpoint-medium:60rem;--ds-breakpoint-large:75rem;--ds-breakpoint-xLarge:90rem}:root{--ds-fontFamily-heading:\"Open Sans\", sans-serif;--ds-fontFamily-body:\"Open Sans\", sans-serif;--ds-fontSize-12:12px;--ds-fontSize-14:14px;--ds-fontSize-16:16px;--ds-fontSize-18:18px;--ds-fontSize-20:20px;--ds-fontSize-22:22px;--ds-fontSize-24:24px;--ds-fontSize-26:26px;--ds-fontSize-30:30px;--ds-fontSize-32:32px;--ds-fontSize-36:36px;--ds-fontSize-40:40px;--ds-fontSize-48:48px;--ds-fontSize-56:56px;--ds-fontSize-64:64px;--ds-fontWeight-regular:400;--ds-fontWeight-semibold:600;--ds-fontWeight-semiboldPlus:650;--ds-fontWeight-bold:700;--ds-letterSpacing-xTight:-2;--ds-letterSpacing-tight:-1.4;--ds-letterSpacing-normal:-0.4;--ds-letterSpacing-wide:0;--ds-letterSpacing-xWide:0.4;--ds-lineHeight-small:1;--ds-lineHeight-medium:1.2;--ds-lineHeight-large:1.5;--ds-lineHeight-xLarge:1.75;--ds-fontWidth-normal:100;--ds-fontWidth-condense:90;--ds-number-style:proportional-figures;}@supports (font-variation-settings: normal){:root{--ds-fontFamily-heading:\"Open Sans Variable\", sans-serif;--ds-fontFamily-body:\"Open Sans Variable\", sans-serif}}:root{--ds-breakpoint-xSmall:20rem;--ds-breakpoint-small:30rem;--ds-breakpoint-medium:60rem;--ds-breakpoint-large:75rem;--ds-breakpoint-xLarge:90rem}.ds-bodyText--2xLarge{color:var(--ds-textColor-default);font-family:var(--ds-fontFamily-body);font-size:var(--ds-fontSize-20);font-weight:var(--ds-fontWeight-regular);letter-spacing:var(--ds-letterSpacing-wide);line-height:var(--ds-lineHeight-large)}@media (min-width: 30rem){.ds-bodyText--2xLarge{font-size:var(--ds-fontSize-22)}}.ds-bodyText--xLarge{color:var(--ds-textColor-default);font-family:var(--ds-fontFamily-body);font-size:var(--ds-fontSize-18);font-weight:var(--ds-fontWeight-regular);letter-spacing:var(--ds-letterSpacing-wide);line-height:var(--ds-lineHeight-large)}@media (min-width: 30rem){.ds-bodyText--xLarge{font-size:var(--ds-fontSize-20)}}.ds-bodyText--large{color:var(--ds-textColor-default);font-family:var(--ds-fontFamily-body);font-size:var(--ds-fontSize-16);font-weight:var(--ds-fontWeight-regular);letter-spacing:var(--ds-letterSpacing-wide);line-height:var(--ds-lineHeight-large)}@media (min-width: 30rem){.ds-bodyText--large{font-size:var(--ds-fontSize-18)}}.ds-bodyText--medium{color:var(--ds-textColor-default);font-family:var(--ds-fontFamily-body);font-size:var(--ds-fontSize-14);font-weight:var(--ds-fontWeight-regular);letter-spacing:var(--ds-letterSpacing-wide);line-height:var(--ds-lineHeight-large)}@media (min-width: 30rem){.ds-bodyText--medium{font-size:var(--ds-fontSize-16)}}.ds-bodyText--small{color:var(--ds-textColor-default);font-family:var(--ds-fontFamily-body);font-size:var(--ds-fontSize-12);font-weight:var(--ds-fontWeight-regular);letter-spacing:var(--ds-letterSpacing-wide);line-height:var(--ds-lineHeight-large)}@media (min-width: 30rem){.ds-bodyText--small{font-size:var(--ds-fontSize-14)}}:host{display:inline-block}.ds-link{display:inline-flex;align-items:center;color:var(--ds-textColor-link);font-weight:var(--ds-fontWeight-regular);letter-spacing:var(--ds-letterSpacing-wide);text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:auto;text-decoration-thickness:7%;text-underline-offset:12%;text-underline-position:from-font}.ds-link:focus-visible,.ds-link:focus-within{box-shadow:0 0 0 var(--ds-borderWidth-thin) var(--ds-borderColor-white);outline-color:var(--ds-borderColor-black);outline-offset:var(--ds-borderWidth-thin);outline-style:solid;outline-width:var(--ds-borderWidth-thin)}.ds-link--semibold{font-weight:var(--ds-fontWeight-semibold)}.ds-link--bold{font-weight:var(--ds-fontWeight-bold)}.ds-link__icon{height:1em;width:1em}.ds-link__icon--start-inline{margin-right:var(--ds-spacing-3xSmall)}.ds-link__icon--start-standalone{margin-right:var(--ds-spacing-2xSmall)}.ds-link__icon--end-inline{margin-left:var(--ds-spacing-3xSmall)}.ds-link__icon--end-standalone{margin-left:var(--ds-spacing-2xSmall)}.ds-link:hover,.ds-link:active{text-decoration-thickness:13%;text-underline-offset:12%}.ds-link:hover{color:var(--ds-textColor-link-hover)}.ds-link:active{color:var(--ds-textColor-link-active)}.ds-link:visited{color:var(--ds-textColor-link-visited)}.ds-link--standalone{color:var(--ds-textColor-link);text-decoration-line:none}.ds-link--standalone:hover,.ds-link--standalone:active{text-decoration-line:underline}.ds-link--standalone:hover{color:var(--ds-textColor-link-hover)}.ds-link--standalone:active{color:var(--ds-textColor-link-active)}.ds-link--standalone:focus-visible{color:var(--ds-textColor-link)}.ds-link--standalone:visited{color:var(--ds-textColor-link)}";
9
+ const DsLinkStyle0 = dsLinkCss;
10
+
11
+ const visuallyHiddenAssistiveTextIdGenerator = idGenerator('visually-hidden-assistive-text');
12
+ const DsLink$1 = proxyCustomElement(class DsLink extends H {
13
+ constructor() {
14
+ super();
15
+ this.__registerHost();
16
+ this.__attachShadow();
17
+ }
18
+ inheritedAttributes = {};
19
+ rel;
20
+ visuallyHiddenAssistiveTextId = visuallyHiddenAssistiveTextIdGenerator.next().value;
21
+ get el() { return this; }
22
+ text;
23
+ size;
24
+ variant = 'inline';
25
+ weight = 'regular';
26
+ icon = '';
27
+ iconPosition = 'end';
28
+ href;
29
+ target;
30
+ download;
31
+ language;
32
+ componentWillLoad() {
33
+ this.inheritedAttributes = inheritAriaAttributes(this.el);
34
+ if (opensInNewTab(this.target)) {
35
+ this.icon = 'open_in_new';
36
+ this.iconPosition = 'end';
37
+ this.rel = 'noopener noreferrer';
38
+ }
39
+ }
40
+ render() {
41
+ const classes = classNames('ds-link', `ds-link--${this.weight}`, `ds-link--${this.variant}`, {
42
+ [`bodyText--${this.size}`]: Boolean(this.size),
43
+ });
44
+ const iconClasses = classNames('ds-link__icon', {
45
+ [`ds-link__icon--start-${this.variant}`]: this.iconPosition === 'start',
46
+ [`ds-link__icon--end-${this.variant}`]: this.iconPosition === 'end',
47
+ });
48
+ return (h("a", { key: 'd8922731378178b2c927796fdc636fc26d4cbaea', href: this.href, class: classes, rel: this.rel, target: this.target, download: this.download, ...this.inheritedAttributes }, h("slot", { key: 'dfbd079b80132f7751501da7e47bb0f1aec4590a', name: "iconStart" }, this.icon && this.iconPosition === 'start' && h("ds-icon", { key: '2b3d864df8c04b340b0251c9ac185be918f7bb16', name: this.icon, class: iconClasses, size: "1em" })), this.text, h("slot", { key: '2fc2e4a3be8b83d545b27ae19096ffc5fbb72c0e', name: "iconEnd" }, this.icon && this.iconPosition === 'end' && h("ds-icon", { key: '9592ce7c0222bd3c739943fb9b6a37b92e67618c', name: this.icon, class: iconClasses, size: "1em" })), opensInNewTab(this.target) && (h("ds-visually-hidden", { key: '43c55dded281f4e3a084ceb64edf695707309494', id: this.visuallyHiddenAssistiveTextId }, visuallyHiddenAssistiveText(this.language ?? document.documentElement.lang)))));
49
+ }
50
+ static get style() { return DsLinkStyle0; }
51
+ }, [1, "ds-link", {
52
+ "text": [1],
53
+ "size": [1],
54
+ "variant": [1],
55
+ "weight": [1],
56
+ "icon": [1025],
57
+ "iconPosition": [1025, "icon-position"],
58
+ "href": [1],
59
+ "target": [1],
60
+ "download": [4],
61
+ "language": [1, "lang"]
62
+ }]);
63
+ function defineCustomElement$1() {
64
+ if (typeof customElements === "undefined") {
65
+ return;
66
+ }
67
+ const components = ["ds-link", "ds-icon", "ds-visually-hidden"];
68
+ components.forEach(tagName => { switch (tagName) {
69
+ case "ds-link":
70
+ if (!customElements.get(tagName)) {
71
+ customElements.define(tagName, DsLink$1);
72
+ }
73
+ break;
74
+ case "ds-icon":
75
+ if (!customElements.get(tagName)) {
76
+ defineCustomElement$3();
77
+ }
78
+ break;
79
+ case "ds-visually-hidden":
80
+ if (!customElements.get(tagName)) {
81
+ defineCustomElement$2();
82
+ }
83
+ break;
84
+ } });
85
+ }
86
+
87
+ const DsLink = DsLink$1;
88
+ const defineCustomElement = defineCustomElement$1;
89
+
90
+ export { DsLink, defineCustomElement };
@@ -1,17 +1,11 @@
1
1
  import { p as proxyCustomElement, H, h, F as Fragment } from './index2.js';
2
- import { c as classNames } from './index3.js';
2
+ import { c as classNames } from './attributes.js';
3
+ import { i as idGenerator } from './utils.js';
3
4
  import { d as defineCustomElement$4 } from './ds-button2.js';
4
5
  import { d as defineCustomElement$3 } from './ds-icon2.js';
5
6
  import { d as defineCustomElement$2 } from './ds-visually-hidden2.js';
6
7
 
7
- function* idGenerator(id) {
8
- let currentId = 1;
9
- while (true) {
10
- yield `${id}-${currentId++}`;
11
- }
12
- }
13
-
14
- const dsTextInputCss = ".sc-ds-text-input:root{--ds-breakpoint-xSmall:20rem;--ds-breakpoint-small:30rem;--ds-breakpoint-medium:60rem;--ds-breakpoint-large:75rem;--ds-breakpoint-xLarge:90rem}.sc-ds-text-input-h{display:block;width:288px}@media (min-width: 75rem){.sc-ds-text-input-h{width:320px}}.label-container.sc-ds-text-input{margin-block-end:var(--ds-spacing-2xSmall)}.label-container.sc-ds-text-input label.sc-ds-text-input{font-family:var(--ds-fontFamily-body);font-size:var(--ds-fontSize-16);font-weight:var(--ds-fontWeight-semibold);letter-spacing:var(--ds-letterSpacing-wide);line-height:var(--ds-lineHeight-large);color:var(--ds-textColor-default)}.label-container.sc-ds-text-input label.required.sc-ds-text-input::after{content:\" *\";color:var(--ds-textColor-secondary)}.label-container.sc-ds-text-input small.sc-ds-text-input{font-family:var(--ds-fontFamily-body);font-size:var(--ds-fontSize-14);font-weight:var(--ds-fontWeight-regular);letter-spacing:var(--ds-letterSpacing-wide);line-height:var(--ds-lineHeight-large);display:block;margin-block-start:var(--ds-spacing-3xSmall);color:var(--ds-textColor-secondary)}.input-container.sc-ds-text-input{box-sizing:border-box;width:100%;display:inline-flex;position:relative;align-items:center;border-width:var(--ds-borderWidth-thin);border-style:solid;border-color:var(--ds-borderColor-default);padding-inline:var(--ds-spacing-xSmall)}.input-container.invalid.sc-ds-text-input{background-color:var(--ds-palette-danger-light);border-color:var(--ds-borderColor-danger)}.input-container.valid.sc-ds-text-input{background-color:var(--ds-palette-success-light);border-color:var(--ds-borderColor-success)}.input-container.readonly.sc-ds-text-input,.input-container.disabled.sc-ds-text-input{background-color:var(--ds-bgColor-disabled-onLight);border-color:var(--ds-borderColor-disabled-onLight)}.input-container.sc-ds-text-input:has(input:active){outline:none}.input-container.sc-ds-text-input:has(input:active):not:has(input:disabled,input.sc-ds-text-input:readonly){border-color:var(--ds-borderColor-primary)}.input-container.active.sc-ds-text-input:not(.input-container.disabled,.input-container.readonly).sc-ds-text-input{border-color:var(--ds-borderColor-primary)}.input-container.sc-ds-text-input:hover:not(.input-container.disabled,.input-container.readonly.sc-ds-text-input,.input-container.active).sc-ds-text-input{border-color:var(--ds-borderColor-black)}.input-container.sc-ds-text-input:focus-within{outline-width:var(--ds-borderWidth-thin);outline-offset:1px;outline-style:solid;outline-color:var(--ds-palette-black)}.input-container.sc-ds-text-input:focus-within:not(.input-container:focus-within.invalid,.input-container.sc-ds-text-input:focus-within.valid,.input-container.sc-ds-text-input:focus-within.readonly){border-color:var(--ds-borderColor-primary)}.input-container.sc-ds-text-input:focus-within *.sc-ds-text-input>ds-button.suffix.sc-ds-text-input>button.sc-ds-text-input:focus-visible{background-clip:padding-box;outline-offset:-5px;box-shadow:none;height:var(--ds-spacing-xLarge);background-color:var(--ds-bgColor-transparent-onLight-hover)}.input-container.sc-ds-text-input>input.sc-ds-text-input{font-family:var(--ds-fontFamily-body);font-size:var(--ds-fontSize-16);font-weight:var(--ds-fontWeight-regular);letter-spacing:var(--ds-letterSpacing-wide);line-height:var(--ds-lineHeight-large);width:100%;box-sizing:border-box;background-color:unset;flex-grow:1;height:var(--ds-spacing-xLarge);line-height:var(--ds-fontSize-24);color:var(--ds-textColor-default);padding-block:var(--ds-spacing-4xSmall);border:none}.input-container.sc-ds-text-input>input.sc-ds-text-input:disabled{color:var(--ds-textColor-disabled-onLight)}.input-container.sc-ds-text-input>input.sc-ds-text-input:disabled::placeholder{color:var(--ds-textColor-disabled-onLight)}.input-container.sc-ds-text-input>input.sc-ds-text-input::placeholder{font-family:var(--ds-fontFamily-body);font-size:var(--ds-fontSize-16);font-weight:var(--ds-fontWeight-regular);letter-spacing:var(--ds-letterSpacing-wide);line-height:var(--ds-lineHeight-large);color:var(--ds-textColor-secondary)}.input-container.sc-ds-text-input>input.sc-ds-text-input:focus{outline:none;border:none}.input-container.sc-ds-text-input>input[type=number].sc-ds-text-input{-moz-appearance:textfield}.input-container.sc-ds-text-input>input.sc-ds-text-input::-webkit-search-decoration,.input-container.sc-ds-text-input>input.sc-ds-text-input::-webkit-search-cancel-button,.input-container.sc-ds-text-input>input.sc-ds-text-input::-webkit-search-results-button,.input-container.sc-ds-text-input>input.sc-ds-text-input::-webkit-search-results-decoration,.input-container.sc-ds-text-input>input.sc-ds-text-input::-webkit-inner-spin-button,.input-container.sc-ds-text-input>input.sc-ds-text-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.input-container.sc-ds-text-input:has(span.prefix,ds-icon.prefix).sc-ds-text-input{padding-inline-start:var(--ds-spacing-2xSmall)}.input-container.sc-ds-text-input:has(span.prefix,ds-icon.prefix).sc-ds-text-input>input.sc-ds-text-input{padding-inline-start:var(--ds-spacing-2xSmall)}.input-container.sc-ds-text-input:has(ds-button.suffix){padding-inline-end:unset}.input-container.sc-ds-text-input span.prefix.sc-ds-text-input,.input-container.sc-ds-text-input span.suffix.sc-ds-text-input{color:var(--ds-palette-black-70)}.input-container.sc-ds-text-input ds-icon.prefix.sc-ds-text-input,.input-container.sc-ds-text-input-s>[slot=prefix],.input-container .sc-ds-text-input-s>[slot=prefix]{height:1.5rem;color:var(--ds-textColor-default)}.input-container.sc-ds-text-input ds-button.suffix.sc-ds-text-input{margin-top:calc(var(--ds-spacing-3xSmall) * -1);margin-right:calc(var(--ds-spacing-4xSmall) * -1);max-height:40px}.error-text-container.sc-ds-text-input,.success-text-container.sc-ds-text-input{display:flex;align-items:center;margin-top:var(--ds-spacing-2xSmall);gap:var(--ds-spacing-2xSmall)}.error-text-container.sc-ds-text-input ds-icon.sc-ds-text-input,.success-text-container.sc-ds-text-input ds-icon.sc-ds-text-input{display:block;height:1.5rem}.error-text-container.sc-ds-text-input small.sc-ds-text-input,.success-text-container.sc-ds-text-input small.sc-ds-text-input{font-family:var(--ds-fontFamily-body);font-size:var(--ds-fontSize-16);font-weight:var(--ds-fontWeight-regular);letter-spacing:var(--ds-letterSpacing-wide);line-height:var(--ds-lineHeight-large)}.error-text-container.sc-ds-text-input{color:var(--ds-textColor-danger)}.success-text-container.sc-ds-text-input{color:var(--ds-textColor-success)}";
8
+ const dsTextInputCss = ".sc-ds-text-input:root{--ds-breakpoint-xSmall:20rem;--ds-breakpoint-small:30rem;--ds-breakpoint-medium:60rem;--ds-breakpoint-large:75rem;--ds-breakpoint-xLarge:90rem}.sc-ds-text-input-h{display:block;width:288px}@media (min-width: 75rem){.sc-ds-text-input-h{width:320px}}.ds-input--label-container.sc-ds-text-input{margin-block-end:var(--ds-spacing-2xSmall)}.ds-input--label-container.sc-ds-text-input label.sc-ds-text-input{font-family:var(--ds-fontFamily-body);font-size:var(--ds-fontSize-16);font-weight:var(--ds-fontWeight-semibold);letter-spacing:var(--ds-letterSpacing-wide);line-height:var(--ds-lineHeight-large);color:var(--ds-textColor-default)}.ds-input--label-container.sc-ds-text-input label.required.sc-ds-text-input::after{content:\" *\";color:var(--ds-textColor-secondary)}.ds-input--label-container.sc-ds-text-input label.optional.sc-ds-text-input::after{content:\" (\" attr(data-optional-text, \"optional\") \")\";color:var(--ds-textColor-secondary);font-size:var(--ds-fontSize-14);font-weight:var(--ds-fontWeight-regular)}.ds-input--label-container.sc-ds-text-input small.sc-ds-text-input{font-family:var(--ds-fontFamily-body);font-size:var(--ds-fontSize-14);font-weight:var(--ds-fontWeight-regular);letter-spacing:var(--ds-letterSpacing-wide);line-height:var(--ds-lineHeight-large);display:block;margin-block-start:var(--ds-spacing-3xSmall);color:var(--ds-textColor-secondary)}.ds-input--container.sc-ds-text-input{box-sizing:border-box;width:100%;display:inline-flex;position:relative;align-items:center;border-width:var(--ds-borderWidth-thin);border-style:solid;border-color:var(--ds-borderColor-default);padding-inline:var(--ds-spacing-xSmall)}.ds-input--container.sc-ds-text-input:focus-visible,.ds-input--container.sc-ds-text-input:focus-within{box-shadow:0 0 0 var(--ds-borderWidth-thin) var(--ds-borderColor-white);outline-color:var(--ds-borderColor-black);outline-offset:var(--ds-borderWidth-thin);outline-style:solid;outline-width:var(--ds-borderWidth-thin)}.ds-input--container.invalid.sc-ds-text-input{background-color:var(--ds-bgColor-danger);border-color:var(--ds-borderColor-danger)}.ds-input--container.invalid.sc-ds-text-input:hover:not(.ds-input--container.invalid:focus-within){background-color:var(--ds-bgColor-danger-hover);border-color:var(--ds-borderColor-danger)}.ds-input--container.invalid.active.sc-ds-text-input{background-color:var(--ds-bgColor-danger-active);border-color:var(--ds-borderColor-danger)}.ds-input--container.valid.sc-ds-text-input{background-color:var(--ds-bgColor-success);border-color:var(--ds-borderColor-success)}.ds-input--container.valid.sc-ds-text-input:hover:not(.ds-input--container.valid:focus-within){background-color:var(--ds-bgColor-success-hover);border-color:var(--ds-borderColor-success)}.ds-input--container.valid.active.sc-ds-text-input{background-color:var(--ds-bgColor-success-active);border-color:var(--ds-borderColor-success)}.ds-input--container.readonly.sc-ds-text-input,.ds-input--container.disabled.sc-ds-text-input{background-color:var(--ds-bgColor-disabled-onLight);border-color:var(--ds-borderColor-disabled-onLight)}.ds-input--container.sc-ds-text-input:has(input:active){outline:none}.ds-input--container.sc-ds-text-input:has(input:active):not:has(input:disabled,input.sc-ds-text-input:readonly){border-color:var(--ds-borderColor-default)}.ds-input--container.active.sc-ds-text-input:not(.ds-input--container.disabled,.ds-input--container.readonly.sc-ds-text-input,.ds-input--container.invalid.sc-ds-text-input,.ds-input--container.valid).sc-ds-text-input{border-color:var(--ds-borderColor-default);background-color:var(--ds-bgColor-white-active)}.ds-input--container.sc-ds-text-input:hover:not(.ds-input--container.disabled,.ds-input--container.readonly.sc-ds-text-input,.ds-input--container.active.sc-ds-text-input,.ds-input--container.invalid.sc-ds-text-input,.ds-input--container.valid.sc-ds-text-input,.ds-input--container.sc-ds-text-input:focus-within){border-color:var(--ds-borderColor-default);background-color:var(--ds-bgColor-white-hover)}.ds-input--container.sc-ds-text-input:focus-within:not(.ds-input--container:focus-within.invalid,.ds-input--container.sc-ds-text-input:focus-within.valid,.ds-input--container.sc-ds-text-input:focus-within.readonly){border-color:var(--ds-borderColor-primary)}.ds-input--container.sc-ds-text-input:focus-within *.sc-ds-text-input>ds-button.suffix.sc-ds-text-input>button.sc-ds-text-input:focus-visible{background-clip:padding-box;outline-offset:-5px;box-shadow:none;height:var(--ds-spacing-xLarge);background-color:var(--ds-bgColor-transparent-onLight-hover)}.ds-input--container.sc-ds-text-input>input.sc-ds-text-input{font-family:var(--ds-fontFamily-body);font-size:var(--ds-fontSize-16);font-weight:var(--ds-fontWeight-regular);letter-spacing:var(--ds-letterSpacing-wide);line-height:var(--ds-lineHeight-large);width:100%;box-sizing:border-box;background-color:unset;flex-grow:1;height:var(--ds-spacing-xLarge);line-height:var(--ds-fontSize-24);color:var(--ds-textColor-default);border:none;padding-block:var(--ds-spacing-4xSmall)}.ds-input--container.sc-ds-text-input>input.sc-ds-text-input:disabled{color:var(--ds-textColor-disabled-onLight)}.ds-input--container.sc-ds-text-input>input.sc-ds-text-input:disabled::placeholder{color:var(--ds-textColor-disabled-onLight)}.ds-input--container.sc-ds-text-input>input.sc-ds-text-input::placeholder{font-family:var(--ds-fontFamily-body);font-size:var(--ds-fontSize-16);font-weight:var(--ds-fontWeight-regular);letter-spacing:var(--ds-letterSpacing-wide);line-height:var(--ds-lineHeight-large);color:var(--ds-textColor-secondary)}.ds-input--container.sc-ds-text-input>input.sc-ds-text-input:focus{outline:none;border:none}.ds-input--container.sc-ds-text-input>input[type=number].sc-ds-text-input{-moz-appearance:textfield}.ds-input--container.sc-ds-text-input>input.sc-ds-text-input::-webkit-search-decoration,.ds-input--container.sc-ds-text-input>input.sc-ds-text-input::-webkit-search-cancel-button,.ds-input--container.sc-ds-text-input>input.sc-ds-text-input::-webkit-search-results-button,.ds-input--container.sc-ds-text-input>input.sc-ds-text-input::-webkit-search-results-decoration,.ds-input--container.sc-ds-text-input>input.sc-ds-text-input::-webkit-inner-spin-button,.ds-input--container.sc-ds-text-input>input.sc-ds-text-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ds-input--container.sc-ds-text-input:has(span.prefix,ds-icon.prefix).sc-ds-text-input{padding-inline-start:var(--ds-spacing-2xSmall)}.ds-input--container.sc-ds-text-input:has(span.prefix,ds-icon.prefix).sc-ds-text-input>input.sc-ds-text-input{padding-inline-start:var(--ds-spacing-2xSmall)}.ds-input--container.sc-ds-text-input:has(ds-button.suffix){padding-inline-end:unset}.ds-input--container.sc-ds-text-input span.prefix.sc-ds-text-input,.ds-input--container.sc-ds-text-input span.suffix.sc-ds-text-input{color:var(--ds-palette-black-70)}.ds-input--container.sc-ds-text-input ds-icon.prefix.sc-ds-text-input,.ds-input--container.sc-ds-text-input-s>[slot=prefix],.ds-input--container .sc-ds-text-input-s>[slot=prefix]{height:1.5rem;color:var(--ds-textColor-default)}.ds-input--container.sc-ds-text-input ds-button.suffix.sc-ds-text-input{margin-top:calc(var(--ds-spacing-3xSmall) * -1);margin-right:calc(var(--ds-spacing-4xSmall) * -1);max-height:40px}.error-text--container.sc-ds-text-input,.success-text--container.sc-ds-text-input{display:flex;align-items:center;margin-top:var(--ds-spacing-2xSmall);gap:var(--ds-spacing-2xSmall)}.error-text--container.sc-ds-text-input ds-icon.sc-ds-text-input,.success-text--container.sc-ds-text-input ds-icon.sc-ds-text-input{display:block;height:1.5rem}.error-text--container.sc-ds-text-input small.sc-ds-text-input,.success-text--container.sc-ds-text-input small.sc-ds-text-input{font-family:var(--ds-fontFamily-body);font-size:var(--ds-fontSize-16);font-weight:var(--ds-fontWeight-regular);letter-spacing:var(--ds-letterSpacing-wide);line-height:var(--ds-lineHeight-large)}.error-text--container.sc-ds-text-input{color:var(--ds-textColor-danger)}.success-text--container.sc-ds-text-input{color:var(--ds-textColor-success)}";
15
9
  const DsTextInputStyle0 = dsTextInputCss;
16
10
 
17
11
  const INPUT_TYPE_ICONS_MAP = {
@@ -41,6 +35,7 @@ const DsTextInput$1 = proxyCustomElement(class DsTextInput extends H {
41
35
  dsId = 'input';
42
36
  name;
43
37
  disabled;
38
+ optional;
44
39
  required;
45
40
  readonly;
46
41
  value;
@@ -49,6 +44,7 @@ const DsTextInput$1 = proxyCustomElement(class DsTextInput extends H {
49
44
  maxlength;
50
45
  pattern;
51
46
  autocomplete;
47
+ optionalText;
52
48
  errorText;
53
49
  successText;
54
50
  assistiveText;
@@ -89,7 +85,7 @@ const DsTextInput$1 = proxyCustomElement(class DsTextInput extends H {
89
85
  const text = type === 'success' ? this.successText : this.errorText;
90
86
  const icon = type === 'success' ? 'check_circle_fill' : 'warning_fill';
91
87
  const className = type + '-text';
92
- return (h("slot", { name: className }, text && (h("div", { class: `${className}-container` }, h("ds-icon", { name: icon }), h("small", { id: textId, class: className }, text)))));
88
+ return (h("slot", { name: className }, text && (h("div", { class: `${className}--container` }, h("ds-icon", { name: icon }), h("small", { id: textId, class: className }, text)))));
93
89
  }
94
90
  renderPrefixContent() {
95
91
  if (this.prefixText) {
@@ -119,14 +115,14 @@ const DsTextInput$1 = proxyCustomElement(class DsTextInput extends H {
119
115
  }
120
116
  render() {
121
117
  const inputType = this.type === 'password' && this.passwordInputVisible ? 'text' : this.type;
122
- return (h(Fragment, { key: 'b36b842382f0f0635c5372a856b140f05f7f5cff' }, h("div", { key: '4cedfdd4a891b8317f8b948824c5fe18b8f2c345', class: "label-container" }, h("slot", { key: '5072f7cab04c4c6dcf3bc2a72f88c83f3da5c74b', name: "label" }, h("label", { key: '513249ab30b24df9ad204ec533eb5b0714a5b36e', class: classNames({ required: this.required }), htmlFor: this.dsId }, this.label)), h("slot", { key: 'c3e05ad3e51365c7e8df7a276b4fc089af4edba7', name: "help-text" }, h("small", { key: 'fdf1904fe96fd22b4ba650e693db0d3fcecdf33a', id: this.assistiveTextId }, this.assistiveText), h("ds-visually-hidden", { key: 'd9726a8a031a786169ff47a809f8309117d00eaa', id: this.visuallyHiddenAssistiveTextId }, this.hiddenAssistiveText))), h("div", { key: 'c0fb788b2f35f478015169d2fc558885fc9c205a', onMouseDown: () => (this.inputActive = true), onMouseUp: () => (this.inputActive = false), onClick: e => this.handleInputContainerClick(e), class: classNames('input-container', {
118
+ return (h(Fragment, { key: 'fe9d038685d4912e0b760bed83e21a6ae8582535' }, h("div", { key: '4c4a662fcbcbf2c9a04986ad44b018736c8ba0d7', class: "ds-input--label-container" }, h("slot", { key: '8fea3c6a05e3f5314eae43c2f2eeedc47735278a', name: "label" }, h("label", { key: '33aa9fa1ab0eba6c36b0e882d8a71000a2a2ff40', "data-optional-text": this.optionalText, class: classNames({ required: this.required, optional: this.optional }), htmlFor: this.dsId }, this.label)), h("slot", { key: '13f7adf5a85a2f2d8d5f3e7b829ff86707f75a3d', name: "help-text" }, h("small", { key: '3595ee7deb43919aeabb938a2f0cc0ce78ca181d', id: this.assistiveTextId }, this.assistiveText), h("ds-visually-hidden", { key: '001fd7a38ef2034f7e650e86d00d5a30ee217c17', id: this.visuallyHiddenAssistiveTextId }, this.hiddenAssistiveText))), h("div", { key: 'ec9f2c0d6ff40bd6c8a4618ec238e966a0756c19', onMouseDown: () => (this.inputActive = true), onMouseUp: () => (this.inputActive = false), onClick: e => this.handleInputContainerClick(e), class: classNames('ds-input--container', {
123
119
  disabled: this.disabled,
124
120
  readonly: this.readonly,
125
121
  valid: !!this.successText,
126
122
  invalid: !!this.errorText,
127
123
  focus: this.hasFocus,
128
124
  active: !!this.inputActive,
129
- }) }, this.renderPrefixContent(), h("input", { key: 'adb2aa8a54d45aeeca8e209f0c0a28d2aa0141f8', ref: e => (this.inputElement = e), id: this.dsId, name: this.name, "aria-label": this.ariaLabel, "aria-labelledby": this.ariaLabelledBy, "aria-describedby": this.ariaDescribedby ||
125
+ }) }, this.renderPrefixContent(), h("input", { key: '1cd22b415c330cb50c4c9663f6dec3a1e99e256b', ref: e => (this.inputElement = e), id: this.dsId, name: this.name, "aria-label": this.ariaLabel, "aria-labelledby": this.ariaLabelledBy, "aria-describedby": this.ariaDescribedby ||
130
126
  classNames(this.assistiveTextId, this.visuallyHiddenAssistiveTextId, {
131
127
  [this.successTextId]: this.successText,
132
128
  [this.errorTextId]: this.errorText,
@@ -136,9 +132,10 @@ const DsTextInput$1 = proxyCustomElement(class DsTextInput extends H {
136
132
  }, [6, "ds-text-input", {
137
133
  "label": [1],
138
134
  "placeholder": [1],
139
- "dsId": [1, "ds-id"],
135
+ "dsId": [1, "id"],
140
136
  "name": [1],
141
137
  "disabled": [4],
138
+ "optional": [4],
142
139
  "required": [4],
143
140
  "readonly": [4],
144
141
  "value": [1],
@@ -147,6 +144,7 @@ const DsTextInput$1 = proxyCustomElement(class DsTextInput extends H {
147
144
  "maxlength": [2],
148
145
  "pattern": [1],
149
146
  "autocomplete": [1],
147
+ "optionalText": [1, "optional-text"],
150
148
  "errorText": [1, "error-text"],
151
149
  "successText": [1, "success-text"],
152
150
  "assistiveText": [1, "assistive-text"],
@@ -10,7 +10,7 @@ const DsVisuallyHidden = proxyCustomElement(class DsVisuallyHidden extends H {
10
10
  this.__attachShadow();
11
11
  }
12
12
  render() {
13
- return (h("slot", { key: '390610148832811748f7700f0d438b257bdb354d' }));
13
+ return (h("slot", { key: '3a7edab043d1612c06a4eb6fedacec27216f3be3' }));
14
14
  }
15
15
  static get style() { return DsVisuallyHiddenStyle0; }
16
16
  }, [1, "ds-visually-hidden"]);
@@ -1,8 +1,8 @@
1
1
  const NAMESPACE = 'component-library';
2
- const BUILD = /* component-library */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: false, cmpDidRender: false, cmpDidUnload: false, cmpDidUpdate: false, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: false, cmpWillUpdate: false, connectedCallback: false, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: false, element: false, event: false, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: false, hostListenerTarget: false, hostListenerTargetBody: false, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: false, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, hydratedSelectorName: "hydrated", invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: false, lifecycle: true, lifecycleDOMEvents: false, member: true, method: true, mode: false, modernPropertyDecls: true, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: false, propNumber: true, propString: true, reflect: false, scoped: true, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: true, slot: true, slotChildNodesFix: false, slotRelocation: true, state: true, style: true, svg: false, taskQueue: true, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: true, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: true, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: true, watchCallback: true };
2
+ const BUILD = /* component-library */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: false, cmpDidRender: false, cmpDidUnload: false, cmpDidUpdate: false, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: false, cmpWillUpdate: false, connectedCallback: false, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: false, element: false, event: false, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: false, hostListenerTarget: false, hostListenerTargetBody: false, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: false, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, hydratedSelectorName: "hydrated", invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: false, lifecycle: true, lifecycleDOMEvents: false, member: true, method: true, mode: false, modernPropertyDecls: true, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: true, propNumber: true, propString: true, reflect: false, scoped: true, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: true, slot: true, slotChildNodesFix: false, slotRelocation: true, state: true, style: true, svg: false, taskQueue: true, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: true, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: true, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: true, watchCallback: true };
3
3
 
4
4
  /*
5
- Stencil Client Platform v4.25.1 | MIT Licensed | https://stenciljs.com
5
+ Stencil Client Platform v4.26.0 | MIT Licensed | https://stenciljs.com
6
6
  */
7
7
  var __defProp = Object.defineProperty;
8
8
  var __export = (target, all) => {
@@ -446,7 +446,7 @@ var addStyle = (styleContainerNode, cmpMeta, mode) => {
446
446
  styleContainerNode.append(styleElm);
447
447
  }
448
448
  }
449
- if (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */ && styleContainerNode.nodeName !== "HEAD") {
449
+ if (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {
450
450
  styleContainerNode.insertBefore(styleElm, null);
451
451
  }
452
452
  }
@@ -471,7 +471,7 @@ var attachStyles = (hostRef) => {
471
471
  const scopeId2 = addStyle(
472
472
  elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(),
473
473
  cmpMeta);
474
- if (flags & 10 /* needsScopedEncapsulation */ && flags & 2 /* scopedCssEncapsulation */) {
474
+ if ((flags & 10 /* needsScopedEncapsulation */ && flags & 2 /* scopedCssEncapsulation */ || flags & 128 /* shadowNeedsScopedCss */)) {
475
475
  elm["s-sc"] = scopeId2;
476
476
  elm.classList.add(scopeId2 + "-h");
477
477
  }
@@ -973,13 +973,13 @@ var insertBefore = (parent, newNode, reference) => {
973
973
  }
974
974
  };
975
975
  function addRemoveSlotScopedClass(reference, slotNode, newParent, oldParent) {
976
- var _a;
976
+ var _a, _b;
977
977
  let scopeId2;
978
978
  if (reference && typeof slotNode["s-sn"] === "string" && !!slotNode["s-sr"] && reference.parentNode && reference.parentNode["s-sc"] && (scopeId2 = slotNode["s-si"] || reference.parentNode["s-sc"])) {
979
979
  const scopeName = slotNode["s-sn"];
980
980
  const hostName = slotNode["s-hn"];
981
981
  (_a = newParent.classList) == null ? void 0 : _a.add(scopeId2 + "-s");
982
- if (oldParent && oldParent.classList.contains(scopeId2 + "-s")) {
982
+ if (oldParent && ((_b = oldParent.classList) == null ? void 0 : _b.contains(scopeId2 + "-s"))) {
983
983
  let child = (oldParent.__childNodes || oldParent.childNodes)[0];
984
984
  let found = false;
985
985
  while (child) {
@@ -1014,7 +1014,7 @@ var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1014
1014
  {
1015
1015
  scopeId = hostElm["s-sc"];
1016
1016
  }
1017
- useNativeShadowDom = (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) !== 0;
1017
+ useNativeShadowDom = !!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) && !(cmpMeta.$flags$ & 128 /* shadowNeedsScopedCss */);
1018
1018
  {
1019
1019
  contentRef = hostElm["s-cr"];
1020
1020
  checkSlotFallbackVisibility = false;
@@ -1219,9 +1219,6 @@ var postUpdateComponent = (hostRef) => {
1219
1219
  }
1220
1220
  };
1221
1221
  var appDidLoad = (who) => {
1222
- {
1223
- addHydratedFlag(doc.documentElement);
1224
- }
1225
1222
  nextTick(() => emitEvent(win, "appload", { detail: { namespace: NAMESPACE } }));
1226
1223
  };
1227
1224
  var safeCall = (instance, method, arg, elm) => {
@@ -0,0 +1,13 @@
1
+ const opensInNewTab = (target) => target === '_blank';
2
+ const visuallyHiddenAssistiveText = (lang) => {
3
+ switch (lang) {
4
+ case 'fi':
5
+ return 'Avautuu uuteen välilehteen';
6
+ case 'sv':
7
+ return 'Öppnas i en ny flik';
8
+ default:
9
+ return 'Opens in a new tab';
10
+ }
11
+ };
12
+
13
+ export { opensInNewTab as o, visuallyHiddenAssistiveText as v };
@@ -0,0 +1,8 @@
1
+ function* idGenerator(id) {
2
+ let currentId = 1;
3
+ while (true) {
4
+ yield `${id}-${currentId++}`;
5
+ }
6
+ }
7
+
8
+ export { idGenerator as i };
@@ -0,0 +1,75 @@
1
+ const inheritAttributes = (el, attributes = []) => {
2
+ const attributeObject = {};
3
+ attributes.forEach(attr => {
4
+ if (el.hasAttribute(attr)) {
5
+ const value = el.getAttribute(attr);
6
+ if (value !== null) {
7
+ attributeObject[attr] = el.getAttribute(attr);
8
+ }
9
+ el.removeAttribute(attr);
10
+ }
11
+ });
12
+ return attributeObject;
13
+ };
14
+ const ariaAttributes = [
15
+ 'role',
16
+ 'aria-activedescendant',
17
+ 'aria-atomic',
18
+ 'aria-autocomplete',
19
+ 'aria-braillelabel',
20
+ 'aria-brailleroledescription',
21
+ 'aria-busy',
22
+ 'aria-checked',
23
+ 'aria-colcount',
24
+ 'aria-colindex',
25
+ 'aria-colindextext',
26
+ 'aria-colspan',
27
+ 'aria-controls',
28
+ 'aria-current',
29
+ 'aria-describedby',
30
+ 'aria-description',
31
+ 'aria-details',
32
+ 'aria-disabled',
33
+ 'aria-errormessage',
34
+ 'aria-expanded',
35
+ 'aria-flowto',
36
+ 'aria-haspopup',
37
+ 'aria-hidden',
38
+ 'aria-invalid',
39
+ 'aria-keyshortcuts',
40
+ 'aria-label',
41
+ 'aria-labelledby',
42
+ 'aria-level',
43
+ 'aria-live',
44
+ 'aria-multiline',
45
+ 'aria-multiselectable',
46
+ 'aria-orientation',
47
+ 'aria-owns',
48
+ 'aria-placeholder',
49
+ 'aria-posinset',
50
+ 'aria-pressed',
51
+ 'aria-readonly',
52
+ 'aria-relevant',
53
+ 'aria-required',
54
+ 'aria-roledescription',
55
+ 'aria-rowcount',
56
+ 'aria-rowindex',
57
+ 'aria-rowindextext',
58
+ 'aria-rowspan',
59
+ 'aria-selected',
60
+ 'aria-setsize',
61
+ 'aria-sort',
62
+ 'aria-valuemax',
63
+ 'aria-valuemin',
64
+ 'aria-valuenow',
65
+ 'aria-valuetext',
66
+ ];
67
+ const inheritAriaAttributes = (el, ignoreList) => {
68
+ let attributesToInherit = [...ariaAttributes];
69
+ if (ignoreList && ignoreList.length > 0) {
70
+ attributesToInherit = attributesToInherit.filter(attr => !ignoreList.includes(attr));
71
+ }
72
+ return inheritAttributes(el, attributesToInherit);
73
+ };
74
+
75
+ export { inheritAttributes as a, inheritAriaAttributes as i };
@@ -1,9 +1,9 @@
1
- import { p as promiseResolve, b as bootstrapLazy } from './index-4200d514.js';
2
- export { s as setNonce } from './index-4200d514.js';
1
+ import { p as promiseResolve, b as bootstrapLazy } from './index-42701395.js';
2
+ export { s as setNonce } from './index-42701395.js';
3
3
  import { g as globalScripts } from './app-globals-0f993ce5.js';
4
4
 
5
5
  /*
6
- Stencil Client Patch Browser v4.25.1 | MIT Licensed | https://stenciljs.com
6
+ Stencil Client Patch Browser v4.26.0 | MIT Licensed | https://stenciljs.com
7
7
  */
8
8
  var patchBrowser = () => {
9
9
  const importMeta = import.meta.url;
@@ -16,5 +16,5 @@ var patchBrowser = () => {
16
16
 
17
17
  patchBrowser().then(async (options) => {
18
18
  await globalScripts();
19
- return bootstrapLazy([["ds-accordion_2",[[1,"ds-accordion",{"variant":[1],"borderAligned":[4,"border-aligned"],"openByDefault":[4,"open-by-default"],"accordionId":[1,"accordion-id"],"headingLevel":[2,"heading-level"],"useCloseButton":[4,"use-close-button"],"closeButtonLabel":[1,"close-button-label"],"isExpanded":[32]},null,{"isExpanded":["watchHandler"]}],[1,"ds-icon",{"name":[1],"colour":[1],"size":[1],"title":[1],"role":[1],"hidden":[4],"message":[32]}]]],["ds-button_2",[[6,"ds-button",{"value":[1],"variant":[1],"colour":[1],"size":[1],"fontWeight":[1,"font-weight"],"icon":[1],"iconPosition":[1,"icon-position"],"type":[1],"disabled":[4],"ariaDisabled":[1,"aria-disabled"]}],[1,"ds-visually-hidden"]]],["ds-text-input",[[6,"ds-text-input",{"label":[1],"placeholder":[1],"dsId":[1,"ds-id"],"name":[1],"disabled":[4],"required":[4],"readonly":[4],"value":[1],"min":[2],"max":[2],"maxlength":[2],"pattern":[1],"autocomplete":[1],"errorText":[1,"error-text"],"successText":[1,"success-text"],"assistiveText":[1,"assistive-text"],"actionButtonAriaLabel":[1,"action-button-aria-label"],"hiddenAssistiveText":[1,"hidden-assistive-text"],"prefixText":[1,"prefix-text"],"suffixText":[1,"suffix-text"],"icon":[1],"type":[1],"ariaLabel":[1,"aria-label"],"ariaLabelledBy":[1,"aria-labelledby"],"ariaDescribedby":[1,"aria-describedby"],"hasFocus":[32],"clearButtonVisible":[32],"passwordInputVisible":[32],"inputActive":[32],"togglePasswordVisibility":[64],"clearInput":[64]}]]]], options);
19
+ return bootstrapLazy([["ds-visually-hidden",[[1,"ds-visually-hidden"]]],["ds-accordion_3",[[1,"ds-accordion",{"variant":[1],"borderAligned":[4,"border-aligned"],"openByDefault":[4,"open-by-default"],"accordionId":[1,"accordion-id"],"headingLevel":[2,"heading-level"],"useCloseButton":[4,"use-close-button"],"closeButtonLabel":[1,"close-button-label"],"hideTopBorder":[4,"hide-top-border"],"isExpanded":[32]},null,{"isExpanded":["watchHandler"]}],[6,"ds-button",{"value":[1],"variant":[1],"colour":[1],"size":[1],"fontWeight":[1,"font-weight"],"icon":[1],"iconPosition":[1,"icon-position"],"type":[1],"disabled":[4],"fullWidth":[4,"full-width"],"ariaDisabled":[1,"aria-disabled"]}],[1,"ds-icon",{"name":[1],"colour":[1],"size":[1],"dsTitle":[1,"title"],"role":[1],"hidden":[4],"message":[32]}]]],["ds-text-input",[[6,"ds-text-input",{"label":[1],"placeholder":[1],"dsId":[1,"id"],"name":[1],"disabled":[4],"optional":[4],"required":[4],"readonly":[4],"value":[1],"min":[2],"max":[2],"maxlength":[2],"pattern":[1],"autocomplete":[1],"optionalText":[1,"optional-text"],"errorText":[1,"error-text"],"successText":[1,"success-text"],"assistiveText":[1,"assistive-text"],"actionButtonAriaLabel":[1,"action-button-aria-label"],"hiddenAssistiveText":[1,"hidden-assistive-text"],"prefixText":[1,"prefix-text"],"suffixText":[1,"suffix-text"],"icon":[1],"type":[1],"ariaLabel":[1,"aria-label"],"ariaLabelledBy":[1,"aria-labelledby"],"ariaDescribedby":[1,"aria-describedby"],"hasFocus":[32],"clearButtonVisible":[32],"passwordInputVisible":[32],"inputActive":[32],"togglePasswordVisibility":[64],"clearInput":[64]}]]],["ds-link",[[1,"ds-link",{"text":[1],"size":[1],"variant":[1],"weight":[1],"icon":[1025],"iconPosition":[1025,"icon-position"],"href":[1],"target":[1],"download":[4],"language":[1,"lang"]}]]],["ds-link-with-arrow",[[1,"ds-link-with-arrow",{"text":[1],"iconPosition":[1,"icon-position"],"href":[1],"target":[1],"language":[1,"lang"]}]]]], options);
20
20
  });