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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) 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} +418 -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/01-base-components/ds-accordion/ds-accordion.css +92 -81
  19. package/dist/collection/components/01-base-components/ds-accordion/ds-accordion.js +41 -9
  20. package/dist/collection/components/01-base-components/ds-accordion/stories/ds-accordion.examples.stories.js +15 -0
  21. package/dist/collection/components/01-base-components/ds-accordion/stories/ds-accordion.features.stories.js +1 -1
  22. package/dist/collection/components/01-base-components/ds-accordion/stories/ds-accordion.stories.js +10 -1
  23. package/dist/collection/components/01-base-components/ds-button/ds-button.css +55 -55
  24. package/dist/collection/components/01-base-components/ds-button/ds-button.js +2 -2
  25. package/dist/collection/components/01-base-components/ds-button/stories/ds-button.features.stories.js +4 -8
  26. package/dist/collection/components/01-base-components/ds-icon/ds-icon.css +5 -1
  27. package/dist/collection/components/01-base-components/ds-icon/ds-icon.js +9 -6
  28. package/dist/collection/components/01-base-components/ds-icon/ds-icon.stories.js +2 -2
  29. package/dist/collection/components/01-base-components/ds-link/ds-link.css +158 -0
  30. package/dist/collection/components/01-base-components/ds-link/ds-link.js +281 -0
  31. package/dist/collection/components/01-base-components/ds-link/stories/ds-link.examples.stories.js +53 -0
  32. package/dist/collection/components/01-base-components/ds-link/stories/ds-link.features.stories.js +73 -0
  33. package/dist/collection/components/01-base-components/ds-link/stories/ds-link.stories.js +72 -0
  34. package/dist/collection/components/01-base-components/ds-link-with-arrow/ds-link-with-arrow.css +142 -0
  35. package/dist/collection/components/01-base-components/ds-link-with-arrow/ds-link-with-arrow.js +161 -0
  36. package/dist/collection/components/01-base-components/ds-link-with-arrow/stories/ds-arrow-link.examples.stories.js +33 -0
  37. package/dist/collection/components/01-base-components/ds-link-with-arrow/stories/ds-arrow-link.features.stories.js +19 -0
  38. package/dist/collection/components/01-base-components/ds-link-with-arrow/stories/ds-arrow-link.stories.js +40 -0
  39. package/dist/collection/components/01-base-components/ds-text-input/ds-text-input.css +45 -40
  40. package/dist/collection/components/01-base-components/ds-text-input/ds-text-input.js +43 -3
  41. 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
  42. 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
  43. package/dist/collection/components/01-base-components/ds-text-input/{ds-text-input.stories.js → stories/ds-text-input.stories.js} +2 -2
  44. package/dist/collection/components/01-base-components/ds-visually-hidden/ds-visually-hidden.js +1 -1
  45. package/dist/collection/introduction/introduction.stories.js +9 -0
  46. package/dist/collection/utils/link/linkUtils.js +11 -0
  47. package/dist/collection/utils/utils.js +5 -0
  48. package/dist/component-library/attributes-9419ac39.js +1 -0
  49. package/dist/component-library/component-library.css +1 -1
  50. package/dist/component-library/component-library.esm.js +1 -1
  51. package/dist/component-library/ds-accordion_3.entry.js +1 -0
  52. package/dist/component-library/ds-link-with-arrow.entry.js +1 -0
  53. package/dist/component-library/ds-link.entry.js +1 -0
  54. package/dist/component-library/ds-text-input.entry.js +1 -1
  55. package/dist/component-library/ds-visually-hidden.entry.js +1 -0
  56. package/dist/component-library/{index-4200d514.js → index-42701395.js} +2 -2
  57. package/dist/component-library/linkUtils-3d1b28cf.js +1 -0
  58. package/dist/component-library/utils-cca2a41a.js +1 -0
  59. package/dist/components/attributes.js +154 -0
  60. package/dist/components/ds-accordion.js +31 -12
  61. package/dist/components/ds-button2.js +4 -78
  62. package/dist/components/ds-icon2.js +320 -231
  63. package/dist/components/ds-link-with-arrow.d.ts +11 -0
  64. package/dist/components/ds-link-with-arrow.js +78 -0
  65. package/dist/components/ds-link.d.ts +11 -0
  66. package/dist/components/ds-link.js +90 -0
  67. package/dist/components/ds-text-input.js +10 -12
  68. package/dist/components/ds-visually-hidden2.js +1 -1
  69. package/dist/components/index2.js +7 -10
  70. package/dist/components/linkUtils.js +13 -0
  71. package/dist/components/utils.js +8 -0
  72. package/dist/esm/attributes-9419ac39.js +75 -0
  73. package/dist/esm/component-library.js +4 -4
  74. package/dist/esm/{ds-accordion_2.entry.js → ds-accordion_3.entry.js} +418 -242
  75. package/dist/esm/ds-link-with-arrow.entry.js +43 -0
  76. package/dist/esm/ds-link.entry.js +50 -0
  77. package/dist/esm/ds-text-input.entry.js +8 -12
  78. package/dist/esm/ds-visually-hidden.entry.js +16 -0
  79. package/dist/esm/{index-4200d514.js → index-42701395.js} +17 -11
  80. package/dist/esm/linkUtils-3d1b28cf.js +13 -0
  81. package/dist/esm/loader.js +3 -3
  82. package/dist/esm/utils-cca2a41a.js +8 -0
  83. package/dist/types/components/00-foundations/icons/categories/social.d.ts +5 -0
  84. package/dist/types/components/01-base-components/ds-accordion/ds-accordion.d.ts +2 -0
  85. package/dist/types/components/01-base-components/ds-accordion/stories/ds-accordion.examples.stories.d.ts +1 -0
  86. package/dist/types/components/01-base-components/ds-icon/ds-icon.d.ts +1 -1
  87. package/dist/types/components/01-base-components/ds-link/ds-link.d.ts +25 -0
  88. package/dist/types/components/01-base-components/ds-link/stories/ds-link.examples.stories.d.ts +11 -0
  89. package/dist/types/components/01-base-components/ds-link/stories/ds-link.features.stories.d.ts +11 -0
  90. package/dist/types/components/01-base-components/ds-link/stories/ds-link.stories.d.ts +7 -0
  91. package/dist/types/components/01-base-components/ds-link-with-arrow/ds-link-with-arrow.d.ts +18 -0
  92. package/dist/types/components/01-base-components/ds-link-with-arrow/stories/ds-arrow-link.examples.stories.d.ts +7 -0
  93. package/dist/types/components/01-base-components/ds-link-with-arrow/stories/ds-arrow-link.features.stories.d.ts +7 -0
  94. package/dist/types/components/01-base-components/ds-link-with-arrow/stories/ds-arrow-link.stories.d.ts +7 -0
  95. package/dist/types/components/01-base-components/ds-text-input/ds-text-input.d.ts +2 -0
  96. 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
  97. 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
  98. 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
  99. package/dist/types/components.d.ts +64 -2
  100. package/dist/types/introduction/introduction.stories.d.ts +10 -0
  101. package/dist/types/utils/link/linkUtils.d.ts +2 -0
  102. package/dist/types/utils/utils.d.ts +1 -0
  103. package/package.json +2 -2
  104. package/dist/cjs/ds-button_2.cjs.entry.js +0 -170
  105. package/dist/component-library/ds-accordion_2.entry.js +0 -1
  106. package/dist/component-library/ds-button_2.entry.js +0 -1
  107. package/dist/components/index3.js +0 -80
  108. package/dist/esm/ds-button_2.entry.js +0 -165
@@ -1,130 +1,141 @@
1
+ :root {
2
+ --ds-breakpoint-xSmall: 20rem;
3
+ --ds-breakpoint-small: 30rem;
4
+ --ds-breakpoint-medium: 60rem;
5
+ --ds-breakpoint-large: 75rem;
6
+ --ds-breakpoint-xLarge: 90rem;
7
+ }
8
+
1
9
  .ds-accordion__open-button {
2
- color: var(--ds-textColor-default, #1A1A1A);
10
+ color: var(--ds-textColor-default);
11
+ outline: var(--ds-borderWidth-thick) solid transparent;
12
+ fill: var(--ds-textColor-default);
13
+ position: relative;
3
14
  all: unset;
15
+ align-items: flex-start;
4
16
  box-sizing: border-box;
5
17
  display: flex;
6
18
  flex-direction: row;
7
- gap: 8px;
19
+ gap: var(--ds-spacing-2xSmall);
20
+ position: relative;
8
21
  width: 100%;
9
22
  }
10
- .ds-accordion__open-button:hover {
11
- cursor: pointer;
12
- background: var(--ds-bgColor-transparent-onLight-hover, rgba(0, 0, 0, 0.1019607843));
23
+ .ds-accordion__open-button:hover:not(:focus-visible).ds-accordion--border-aligned::before, .ds-accordion__open-button:hover:not(:focus-visible).ds-accordion--border-aligned::after {
24
+ content: "";
25
+ position: absolute;
26
+ top: 0;
27
+ width: var(--ds-spacing-small);
28
+ height: 100%;
13
29
  }
14
- .ds-accordion__open-button:hover.ds-accordion--border-aligned {
15
- padding-inline: 16px;
16
- margin-inline: 0;
30
+ .ds-accordion__open-button:hover:not(:focus-visible).ds-accordion--border-aligned::before {
31
+ left: calc(var(--ds-spacing-small) * -1);
17
32
  }
18
- .ds-accordion__open-button:active {
19
- background: var(--ds-bgColor-transparent-onLight-active, rgba(0, 0, 0, 0.1490196078));
33
+ .ds-accordion__open-button:hover:not(:focus-visible).ds-accordion--border-aligned::after {
34
+ right: calc(var(--ds-spacing-small) * -1);
20
35
  }
21
- .ds-accordion__open-button:active.ds-accordion--border-aligned {
22
- padding-inline: 16px;
23
- margin-inline: 0;
36
+ .ds-accordion__open-button:hover {
37
+ cursor: pointer;
24
38
  }
25
- .ds-accordion__open-button:focus {
39
+ .ds-accordion__open-button:hover, .ds-accordion__open-button:hover::before, .ds-accordion__open-button:hover::after {
26
40
  background: var(--ds-bgColor-transparent-onLight-hover, rgba(0, 0, 0, 0.1019607843));
27
- box-shadow: 0px 0px 0px 1px var(--ds-palette-black);
28
41
  }
29
- .ds-accordion__open-button:focus.ds-accordion--border-aligned {
30
- padding-inline: 16px;
31
- margin-inline: 0;
42
+ .ds-accordion__open-button:active, .ds-accordion__open-button:active::before, .ds-accordion__open-button:active::after {
43
+ background: var(--ds-bgColor-transparent-onLight-active, rgba(0, 0, 0, 0.1490196078));
44
+ }
45
+ .ds-accordion__open-button:focus-visible {
46
+ box-shadow: 0 0 0 2px var(--ds-borderColor-black);
47
+ outline-color: var(--ds-borderColor-white);
48
+ z-index: 1;
32
49
  }
33
50
  .ds-accordion__open-button.ds-accordion--default {
34
- padding: 16px;
51
+ padding: var(--ds-spacing-small) var(--ds-spacing-small) var(--ds-spacing-xSmall) var(--ds-spacing-small);
35
52
  font-family: var(--ds-fontFamily-body);
36
53
  font-size: var(--ds-fontSize-18);
37
- font-weight: 600;
38
- line-height: 27px;
54
+ font-weight: var(--ds-fontWeight-semibold);
55
+ line-height: var(--ds-lineHeight-large);
39
56
  letter-spacing: var(--letterSpacing-wide);
40
57
  }
41
58
  .ds-accordion__open-button.ds-accordion--compact {
42
59
  font-size: var(--ds-fontSize-16);
43
- padding: 12px 16px 12px 16px;
44
- line-height: 24px;
45
- font-weight: 600;
60
+ padding: var(--ds-spacing-xSmall) var(--ds-spacing-small) var(--ds-spacing-xSmall) var(--ds-spacing-small);
61
+ line-height: var(--ds-lineHeight-large);
62
+ font-weight: var(--ds-fontWeight-semibold);
46
63
  }
47
- .ds-accordion__open-button.ds-accordion--border-aligned {
48
- padding-inline: 0;
64
+ .ds-accordion__open-button.ds-accordion--border-aligned:not(:focus-visible) {
49
65
  padding-inline: 0;
50
- margin-inline: 16px;
66
+ margin-inline: var(--ds-spacing-small);
67
+ position: relative;
68
+ width: calc(100% - var(--ds-spacing-large));
69
+ }
70
+ :host(:first-child) .ds-accordion__open-button:not(.ds-accordion--hide-top-border) {
71
+ border-top: var(--ds-borderWidth-hairline) solid var(--ds-borderColor-light, #CCCCCC);
51
72
  }
52
73
  .ds-accordion__open-button[aria-expanded=false] {
53
- border-bottom: 1px solid var(--ds-borderColor-light, #CCCCCC);
74
+ border-bottom: var(--ds-borderWidth-hairline) solid var(--ds-borderColor-light, #CCCCCC);
54
75
  }
55
76
 
77
+ .ds-accordion__panel--border-aligned {
78
+ position: relative;
79
+ width: calc(100% - 32px);
80
+ }
81
+ .ds-accordion__panel--border-aligned::before {
82
+ display: inline-block;
83
+ content: " ";
84
+ position: absolute;
85
+ bottom: -1px;
86
+ height: 1px;
87
+ left: 0px;
88
+ background: var(--ds-palette-white);
89
+ width: var(--ds-spacing-small);
90
+ }
91
+ .ds-accordion__panel--border-aligned::after {
92
+ display: inline-block;
93
+ content: " ";
94
+ position: absolute;
95
+ bottom: -1px;
96
+ height: 1px;
97
+ right: 0px;
98
+ background: var(--ds-palette-white);
99
+ width: var(--ds-spacing-small);
100
+ }
56
101
  .ds-accordion__panel--expanded {
57
- border-bottom: 1px solid var(--ds-borderColor-light, #CCCCCC);
102
+ display: block;
103
+ border-bottom: var(--ds-borderWidth-hairline) solid var(--ds-borderColor-light, #CCCCCC);
104
+ padding-inline: var(--ds-spacing-small);
105
+ }
106
+
107
+ ::slotted([slot=header]) {
108
+ color: var(--ds-textColor-default);
58
109
  }
59
110
 
60
111
  .ds-accordion__content {
61
112
  color: var(--ds-textColor-default, #1A1A1A);
62
113
  font-family: var(--ds-fontFamily-body);
63
- padding: 16px;
114
+ padding-block: var(--ds-spacing-small);
64
115
  }
65
116
  .ds-accordion__content .ds-accordion--default {
66
- font-size: var(--ds-fontSize-18);
67
- font-weight: 400;
68
- line-height: 27px;
117
+ font-size: var(--ds-fontSize-16);
118
+ font-weight: var(--ds-fontWeight-regular);
119
+ line-height: var(--ds-lineHeight-xLarge);
69
120
  letter-spacing: var(--ds-letterSpacing-wide);
70
121
  }
122
+ @media (min-width: 30rem) {
123
+ .ds-accordion__content .ds-accordion--default {
124
+ font-size: var(--ds-fontSize-18);
125
+ }
126
+ }
71
127
  .ds-accordion__content .ds-accordion--compact {
72
128
  font-size: var(--fontSize-16);
73
- font-weight: 400;
74
- line-height: 24px;
129
+ font-weight: var(--ds-fontWeight-regular);
130
+ line-height: var(--ds-lineHeight-large);
75
131
  letter-spacing: var(--letterSpacing-wide);
76
132
  }
77
133
 
78
134
  .ds-accordion__close-button {
79
- color: var(--ds-textColor-default, #1A1A1A);
80
- all: unset;
81
- border-bottom: 1px solid var(--ds-borderColor-light, #CCCCCC);
82
135
  display: flex;
83
136
  flex-direction: row;
84
- gap: 8px;
137
+ gap: var(--ds-spacing-2xSmall);
85
138
  font-family: var(--ds-fontFamily-body);
86
139
  letter-spacing: var(--ds-letterSpacing-wide);
87
140
  width: 100%;
88
- }
89
- .ds-accordion__close-button:hover {
90
- cursor: pointer;
91
- background: var(--ds-bgColor-transparent-onLight-hover, rgba(0, 0, 0, 0.1019607843));
92
- }
93
- .ds-accordion__close-button:hover.ds-accordion--border-aligned {
94
- padding-inline: 16px;
95
- margin-inline: 0;
96
- }
97
- .ds-accordion__close-button:active {
98
- background: var(--ds-bgColor-transparent-onLight-active, rgba(0, 0, 0, 0.1490196078));
99
- }
100
- .ds-accordion__close-button:active.ds-accordion--border-aligned {
101
- padding-inline: 16px;
102
- margin-inline: 0;
103
- }
104
- .ds-accordion__close-button:focus {
105
- background: var(--ds-bgColor-transparent-onLight-hover, rgba(0, 0, 0, 0.1019607843));
106
- box-shadow: 0px 0px 0px 1px var(--ds-palette-black);
107
- }
108
- .ds-accordion__close-button:focus.ds-accordion--border-aligned {
109
- padding-inline: 16px;
110
- margin-inline: 0;
111
- }
112
- .ds-accordion__close-button.ds-accordion--default {
113
- padding: 16px;
114
- font-family: var(--ds-fontFamily-body);
115
- font-size: var(--ds-fontSize-18);
116
- font-weight: 600;
117
- line-height: 27px;
118
- letter-spacing: var(--letterSpacing-wide);
119
- }
120
- .ds-accordion__close-button.ds-accordion--compact {
121
- font-size: var(--ds-fontSize-16);
122
- padding: 12px 16px 12px 16px;
123
- line-height: 24px;
124
- font-weight: 600;
125
- }
126
- .ds-accordion__close-button.ds-accordion--border-aligned {
127
- padding-inline: 0;
128
- padding-inline: 0;
129
- margin-inline: 16px;
130
141
  }
@@ -8,10 +8,16 @@ export class DsAccordion {
8
8
  headingLevel = 2;
9
9
  useCloseButton = false;
10
10
  closeButtonLabel = 'Close';
11
- isExpanded = this.openByDefault;
11
+ hideTopBorder = false;
12
+ isExpanded = false;
12
13
  host;
13
14
  headerButtonRef;
14
15
  shouldMoveFocus = false;
16
+ componentWillLoad() {
17
+ if (this.openByDefault) {
18
+ this.isExpanded = true;
19
+ }
20
+ }
15
21
  watchHandler(isExpanded) {
16
22
  if (!isExpanded && this.shouldMoveFocus && this.headerButtonRef) {
17
23
  this.headerButtonRef.focus();
@@ -35,16 +41,22 @@ export class DsAccordion {
35
41
  }
36
42
  };
37
43
  render() {
38
- return (h("div", { key: '2cc1b7c39897a2437b1c1b2a2dda3c73366f2406', class: classNames('ds-accordion', `ds-accordion--${this.variant}`, {
39
- 'ds-accordion--border-aligned': this.borderAligned
40
- }), role: "presentation" }, h("div", { key: 'a984d038525f683d8deb8cdf508f559ba0636b16', class: "ds-accordion__item" }, h("div", { key: '18e56c772766cacc2acf741777d0dd8c9dcaf4ca', role: "heading", "aria-level": this.headingLevel, class: "ds-accordion__title" }, h("button", { key: 'e89c25a2b74086bae943f6febe79783fc63bc7d6', class: classNames('ds-accordion__open-button', `ds-accordion--${this.variant}`, {
44
+ const iconSize = this.variant === 'compact' ? '1.5rem' : '2rem';
45
+ const buttonSize = this.variant === 'compact' ? 'small' : 'medium';
46
+ return (h("div", { key: '564a6e1e2e7fb75bdc76a187f2855b396765b3c2', class: classNames('ds-accordion', `ds-accordion--${this.variant}`, {
41
47
  'ds-accordion--border-aligned': this.borderAligned
42
- }), onClick: this.handleClick, onKeyDown: this.handleKeyDown, "aria-expanded": this.isExpanded ? 'true' : 'false', "aria-controls": `${this.accordionId}-panel`, id: this.accordionId, ref: (el) => this.headerButtonRef = el }, h("span", { key: '9c17fd4f9908e1cfc273929998ffb113ff750e35', class: "ds-accordion__icon", "aria-hidden": "true" }, this.isExpanded ?
43
- h("ds-icon", { hidden: true, name: "keyboard_arrow_up" })
44
- : h("ds-icon", { hidden: true, name: "keyboard_arrow_down" })), h("slot", { key: '2b426517dc51e1038524ac2954e1a48e1fc67774', name: "header" }))), h("div", { key: '8b3aeb23427ded6b5b6d98c09a2f111398ebd206', id: `${this.accordionId}-panel`, role: "region", "aria-labelledby": this.accordionId, class: `ds-accordion__panel ${this.isExpanded ? 'ds-accordion__panel--expanded' : ''}`, hidden: !this.isExpanded }, h("div", { key: 'c812dc0940c003329887a91a028fea11e8975fda', class: "ds-accordion__content" }, h("slot", { key: '6ce68b03d1f1e9673fa677581f4193d94d0fe97a', name: "content" })), this.useCloseButton &&
45
- h("button", { key: '822aa59768cec2c2acf617bf70168a0c7f882bd7', class: classNames('ds-accordion__close-button', `ds-accordion--${this.variant}`, {
48
+ }), role: "presentation" }, h("div", { key: '4c265a4f8646ea3647420ed1ceb8e038f835b1df', class: "ds-accordion__item" }, h("div", { key: 'e0296ad3be3521668b5a7c0549986318a8803405', role: "heading", "aria-level": this.headingLevel, class: "ds-accordion__title" }, h("button", { key: '6388fe84f7803e13762720de373f67cc10c71b23', class: classNames('ds-accordion__open-button', `ds-accordion--${this.variant}`, {
49
+ 'ds-accordion--border-aligned': this.borderAligned,
50
+ 'ds-accordion--hide-top-border': this.hideTopBorder
51
+ }), onClick: this.handleClick, onKeyDown: this.handleKeyDown, "aria-expanded": this.isExpanded ? 'true' : 'false', "aria-controls": `${this.accordionId}-panel`, id: this.accordionId, ref: (el) => this.headerButtonRef = el }, h("span", { key: '57aef0a27eaa0f5c26b0c3bc313308ae2cca1359', class: "ds-accordion__icon", "aria-hidden": "true" }, this.isExpanded ?
52
+ h("ds-icon", { size: iconSize, hidden: true, name: "keyboard_arrow_up" })
53
+ : h("ds-icon", { size: iconSize, hidden: true, name: "keyboard_arrow_down" })), h("slot", { key: 'dc24d59ca565b40c9338aaf30d41652b5f405ef7', name: "header" }))), h("div", { key: '39305337ccc0e6ff0a6659ca5f945d945e65605f', id: `${this.accordionId}-panel`, role: "region", "aria-labelledby": this.accordionId, class: classNames('ds-accordion__panel', `ds-accordion__panel--${this.variant}`, {
54
+ 'ds-accordion__panel--border-aligned': this.borderAligned,
55
+ 'ds-accordion__panel--expanded': this.isExpanded
56
+ }), hidden: !this.isExpanded }, h("div", { key: 'b03d48f9d0c380e4ffa38527d27a1a6d8eb97261', class: "ds-accordion__content" }, h("slot", { key: 'aeb4c794ff45117dee3f28b04549e02998e824ab', name: "content" })), this.useCloseButton &&
57
+ h("ds-button", { key: '7ecd99ad96b61825f9d40484f7abf4892f8edbd9', "aria-labelledby": `${this.accordionId}-close-button ${this.accordionId}`, id: `${this.accordionId}-close-button`, class: classNames('ds-accordion__close-button', `ds-accordion--${this.variant}`, {
46
58
  'ds-accordion--border-aligned': this.borderAligned
47
- }), "aria-labelledby": `${this.accordionId}-close-button ${this.accordionId}`, id: `${this.accordionId}-close-button`, onClick: this.handleClick, onKeyDown: this.handleKeyDown }, h("ds-icon", { key: '295bb76f0130566900081b90e5d80033bbe9758f', hidden: true, name: "keyboard_arrow_up" }), h("span", { key: '90dcf29559c485707ea8517e0056249027b1e45b' }, this.closeButtonLabel))))));
59
+ }), fontWeight: 'semiBold', variant: 'supplementary', colour: 'black', icon: 'keyboard_arrow_up', iconPosition: 'start', onClick: this.handleClick, onKeyDown: this.handleKeyDown, value: this.closeButtonLabel, size: buttonSize, type: 'button' })))));
48
60
  }
49
61
  static get is() { return "ds-accordion"; }
50
62
  static get encapsulation() { return "shadow"; }
@@ -199,6 +211,26 @@ export class DsAccordion {
199
211
  "attribute": "close-button-label",
200
212
  "reflect": false,
201
213
  "defaultValue": "'Close'"
214
+ },
215
+ "hideTopBorder": {
216
+ "type": "boolean",
217
+ "mutable": false,
218
+ "complexType": {
219
+ "original": "boolean",
220
+ "resolved": "boolean",
221
+ "references": {}
222
+ },
223
+ "required": false,
224
+ "optional": false,
225
+ "docs": {
226
+ "tags": [],
227
+ "text": ""
228
+ },
229
+ "getter": false,
230
+ "setter": false,
231
+ "attribute": "hide-top-border",
232
+ "reflect": false,
233
+ "defaultValue": "false"
202
234
  }
203
235
  };
204
236
  }
@@ -41,3 +41,18 @@ export const MultipleAccordions = {
41
41
  </ds-accordion>
42
42
  `,
43
43
  };
44
+ export const LongTitles = {
45
+ render: () => html `
46
+ <ds-accordion accordion-id="ac-1">
47
+ <div slot="header">${generateLoremIpsum({ paragraphs: 2, wordsPerParagraph: 20, consistent: true })}</div>
48
+ <div slot="content">${exampleContent}</div>
49
+ </ds-accordion>
50
+ <ds-accordion accordion-id="ac-2">
51
+ <div slot="header">${generateLoremIpsum({ paragraphs: 3, wordsPerParagraph: 30, consistent: true })}</div>
52
+ <div slot="content">
53
+ <p>${generateLoremIpsum({ paragraphs: 5, wordsPerParagraph: 20 })}</p>
54
+ <p>${generateLoremIpsum({ paragraphs: 8, wordsPerParagraph: 30 })}</p>
55
+ </div>
56
+ </ds-accordion>
57
+ `,
58
+ };
@@ -42,7 +42,7 @@ WithCloseButton.args = {
42
42
  useCloseButton: true,
43
43
  };
44
44
  WithCloseButton.render = (args) => html `
45
- <ds-accordion use-close-button="${args.useCloseButton}">
45
+ <ds-accordion use-close-button="${args.useCloseButton}" open-by-default="true">
46
46
  <div slot="header">${exampleHeader}</div>
47
47
  <div slot="content">${exampleContent}</div>
48
48
  </ds-accordion>
@@ -41,6 +41,12 @@ const meta = {
41
41
  },
42
42
  name: 'Custom id for accordion element'
43
43
  },
44
+ hideTopBorder: {
45
+ control: {
46
+ type: 'boolean'
47
+ },
48
+ name: 'Hide top border'
49
+ },
44
50
  },
45
51
  };
46
52
  const exampleHeader = generateLoremIpsum();
@@ -53,7 +59,8 @@ Default.args = {
53
59
  borderAligned: false,
54
60
  openByDefault: false,
55
61
  headingLevel: 2,
56
- accordionId: 'dsaccordion'
62
+ accordionId: 'dsaccordion',
63
+ hideTopBorder: false,
57
64
  };
58
65
  Default.render = (args) => html `
59
66
  <ds-accordion
@@ -63,6 +70,7 @@ Default.render = (args) => html `
63
70
  open-by-default="${args.openByDefault}"
64
71
  heading-level="${args.headingLevel}"
65
72
  accordion-id="${args.accordionId}"
73
+ hide-top-border="${args.hideTopBorder}"
66
74
  >
67
75
  <div slot="header">${exampleHeader}</div>
68
76
  <div slot="content">${exampleContent}</div>
@@ -92,6 +100,7 @@ Playground.render = (args) => {
92
100
  open-by-default="${args.openByDefault}"
93
101
  heading-level="${args.headingLevel}"
94
102
  accordion-id="${args.accordionId}-${index + 1}"
103
+ hide-top-border="${args.hideTopBorder}"
95
104
  >
96
105
  <div slot="header">${args.Header}</div>
97
106
  <div slot="content">${args.Content}</div>
@@ -2,7 +2,7 @@
2
2
  display: inline-block;
3
3
  }
4
4
 
5
- button {
5
+ .ds-button {
6
6
  align-items: center;
7
7
  border-radius: 0;
8
8
  border-style: solid;
@@ -15,224 +15,224 @@ button {
15
15
  min-height: 44px;
16
16
  padding: var(--ds-spacing-3xSmall) var(--ds-spacing-xSmall);
17
17
  }
18
- button:focus {
18
+ .ds-button:focus {
19
19
  outline-offset: 2px;
20
20
  outline-width: 2px;
21
21
  }
22
- button.icon-only {
22
+ .ds-button.icon-only {
23
23
  padding-left: 0;
24
24
  padding-right: 0;
25
25
  aspect-ratio: 1;
26
26
  justify-content: center;
27
27
  }
28
- button .button-value {
28
+ .ds-button .button-value {
29
29
  padding-right: var(--ds-spacing-3xSmall);
30
30
  padding-left: var(--ds-spacing-3xSmall);
31
31
  }
32
- button ds-icon {
32
+ .ds-button ds-icon {
33
33
  height: 1.5rem;
34
34
  }
35
- button.icon-start:not(.small) ds-icon {
35
+ .ds-button.icon-start:not(.small) ds-icon {
36
36
  margin-right: var(--ds-spacing-3xSmall);
37
37
  }
38
- button.icon-end:not(.small) ds-icon {
38
+ .ds-button.icon-end:not(.small) ds-icon {
39
39
  margin-left: var(--ds-spacing-3xSmall);
40
40
  }
41
- button.primary.blue {
41
+ .ds-button.primary.blue {
42
42
  background-color: var(--ds-bgColor-primary);
43
43
  border-color: transparent;
44
44
  color: var(--ds-textColor-white);
45
45
  }
46
- button.primary.blue:hover {
46
+ .ds-button.primary.blue:hover {
47
47
  background-color: var(--ds-bgColor-primary-hover);
48
48
  }
49
- button.primary.blue:active, button.primary.blue--active {
49
+ .ds-button.primary.blue:active, .ds-button.primary.blue--active {
50
50
  background-color: var(--ds-bgColor-primary-active);
51
51
  }
52
- button.primary.blue:focus-visible {
52
+ .ds-button.primary.blue:focus-visible {
53
53
  box-shadow: 0 0 0 2px var(--ds-borderColor-white);
54
54
  outline-color: var(--ds-borderColor-black);
55
55
  }
56
- button.primary.blue[aria-disabled=true], button.primary.blue.disabled, button.primary.blue:disabled {
56
+ .ds-button.primary.blue[aria-disabled=true], .ds-button.primary.blue.disabled, .ds-button.primary.blue:disabled {
57
57
  background-color: var(--ds-bgColor-disabled-onLight);
58
58
  border-color: transparent;
59
59
  color: var(--ds-textColor-disabled-onLight);
60
60
  }
61
- button.primary.black {
61
+ .ds-button.primary.black {
62
62
  background-color: var(--ds-bgColor-black);
63
63
  border-color: transparent;
64
64
  color: var(--ds-textColor-white);
65
65
  }
66
- button.primary.black:hover {
66
+ .ds-button.primary.black:hover {
67
67
  background-color: var(--ds-bgColor-black-hover);
68
68
  }
69
- button.primary.black:active, button.primary.black--active {
69
+ .ds-button.primary.black:active, .ds-button.primary.black--active {
70
70
  background-color: var(--ds-bgColor-black-active);
71
71
  }
72
- button.primary.black:focus-visible {
72
+ .ds-button.primary.black:focus-visible {
73
73
  box-shadow: 0 0 0 2px var(--ds-borderColor-white);
74
74
  outline-color: var(--ds-borderColor-black);
75
75
  }
76
- button.primary.black[aria-disabled=true], button.primary.black.disabled, button.primary.black:disabled {
76
+ .ds-button.primary.black[aria-disabled=true], .ds-button.primary.black.disabled, .ds-button.primary.black:disabled {
77
77
  background-color: var(--ds-bgColor-disabled-onLight);
78
78
  border-color: transparent;
79
79
  color: var(--ds-textColor-disabled-onLight);
80
80
  }
81
- button.primary.white {
81
+ .ds-button.primary.white {
82
82
  background-color: var(--ds-bgColor-white);
83
83
  border-color: transparent;
84
84
  color: var(--ds-textColor-default);
85
85
  }
86
- button.primary.white:hover {
86
+ .ds-button.primary.white:hover {
87
87
  background-color: var(--ds-bgColor-white-hover);
88
88
  }
89
- button.primary.white:active, button.primary.white--active {
89
+ .ds-button.primary.white:active, .ds-button.primary.white--active {
90
90
  background-color: var(--ds-bgColor-white-active);
91
91
  }
92
- button.primary.white:focus-visible {
92
+ .ds-button.primary.white:focus-visible {
93
93
  box-shadow: 0 0 0 2px var(--ds-borderColor-black);
94
94
  outline-color: var(--ds-borderColor-white);
95
95
  }
96
- button.primary.white[aria-disabled=true], button.primary.white.disabled, button.primary.white:disabled {
96
+ .ds-button.primary.white[aria-disabled=true], .ds-button.primary.white.disabled, .ds-button.primary.white:disabled {
97
97
  background-color: var(--ds-bgColor-disabled-onDark);
98
98
  border-color: transparent;
99
99
  color: var(--ds-textColor-disabled-onDark);
100
100
  }
101
- button.secondary.blue {
101
+ .ds-button.secondary.blue {
102
102
  background-color: var(--ds-bgColor-secondary);
103
103
  border-color: var(--ds-borderColor-primary);
104
104
  color: var(--ds-textColor-primary);
105
105
  }
106
- button.secondary.blue:hover {
106
+ .ds-button.secondary.blue:hover {
107
107
  background-color: var(--ds-bgColor-secondary-hover);
108
108
  }
109
- button.secondary.blue:active, button.secondary.blue--active {
109
+ .ds-button.secondary.blue:active, .ds-button.secondary.blue--active {
110
110
  background-color: var(--ds-bgColor-secondary-active);
111
111
  }
112
- button.secondary.blue:focus-visible {
112
+ .ds-button.secondary.blue:focus-visible {
113
113
  box-shadow: 0 0 0 2px var(--ds-borderColor-white);
114
114
  outline-color: var(--ds-borderColor-black);
115
115
  }
116
- button.secondary.blue[aria-disabled=true], button.secondary.blue.disabled, button.secondary.blue:disabled {
116
+ .ds-button.secondary.blue[aria-disabled=true], .ds-button.secondary.blue.disabled, .ds-button.secondary.blue:disabled {
117
117
  background-color: var(--ds-bgColor-secondary);
118
118
  border-color: var(--ds-borderColor-disabled-onLight);
119
119
  color: var(--ds-textColor-disabled-onLight);
120
120
  }
121
- button.secondary.black {
121
+ .ds-button.secondary.black {
122
122
  background-color: transparent;
123
123
  border-color: var(--ds-borderColor-black);
124
124
  color: var(--ds-textColor-default);
125
125
  }
126
- button.secondary.black:hover {
126
+ .ds-button.secondary.black:hover {
127
127
  background-color: var(--ds-bgColor-transparent-onLight-hover);
128
128
  }
129
- button.secondary.black:active, button.secondary.black--active {
129
+ .ds-button.secondary.black:active, .ds-button.secondary.black--active {
130
130
  background-color: var(--ds-bgColor-transparent-onLight-active);
131
131
  }
132
- button.secondary.black:focus-visible {
132
+ .ds-button.secondary.black:focus-visible {
133
133
  box-shadow: 0 0 0 2px var(--ds-borderColor-white);
134
134
  outline-color: var(--ds-borderColor-black);
135
135
  }
136
- button.secondary.black[aria-disabled=true], button.secondary.black.disabled, button.secondary.black:disabled {
136
+ .ds-button.secondary.black[aria-disabled=true], .ds-button.secondary.black.disabled, .ds-button.secondary.black:disabled {
137
137
  background-color: transparent;
138
138
  border-color: var(--ds-borderColor-disabled-onLight);
139
139
  color: var(--ds-textColor-disabled-onLight);
140
140
  }
141
- button.secondary.white {
141
+ .ds-button.secondary.white {
142
142
  background-color: transparent;
143
143
  border-color: var(--ds-borderColor-white);
144
144
  color: var(--ds-textColor-white);
145
145
  }
146
- button.secondary.white:hover {
146
+ .ds-button.secondary.white:hover {
147
147
  background-color: var(--ds-bgColor-transparent-onDark-hover);
148
148
  }
149
- button.secondary.white:active, button.secondary.white--active {
149
+ .ds-button.secondary.white:active, .ds-button.secondary.white--active {
150
150
  background-color: var(--ds-bgColor-transparent-onDark-active);
151
151
  }
152
- button.secondary.white:focus-visible {
152
+ .ds-button.secondary.white:focus-visible {
153
153
  box-shadow: 0 0 0 2px var(--ds-borderColor-black);
154
154
  outline-color: var(--ds-borderColor-white);
155
155
  }
156
- button.secondary.white[aria-disabled=true], button.secondary.white.disabled, button.secondary.white:disabled {
156
+ .ds-button.secondary.white[aria-disabled=true], .ds-button.secondary.white.disabled, .ds-button.secondary.white:disabled {
157
157
  background-color: transparent;
158
158
  border-color: var(--ds-borderColor-disabled-onDark);
159
159
  color: var(--ds-textColor-disabled-onDark);
160
160
  }
161
- button.supplementary.blue {
161
+ .ds-button.supplementary.blue {
162
162
  background-color: transparent;
163
163
  border-color: transparent;
164
164
  color: var(--ds-textColor-primary);
165
165
  padding-right: 0;
166
166
  padding-left: 0;
167
167
  }
168
- button.supplementary.blue:hover {
168
+ .ds-button.supplementary.blue:hover {
169
169
  background-color: var(--ds-bgColor-secondary-hover);
170
170
  }
171
- button.supplementary.blue:active, button.supplementary.blue--active {
171
+ .ds-button.supplementary.blue:active, .ds-button.supplementary.blue--active {
172
172
  background-color: var(--ds-bgColor-secondary-active);
173
173
  }
174
- button.supplementary.blue:focus-visible {
174
+ .ds-button.supplementary.blue:focus-visible {
175
175
  box-shadow: 0 0 0 2px var(--ds-borderColor-white);
176
176
  outline-color: var(--ds-borderColor-black);
177
177
  }
178
- button.supplementary.blue[aria-disabled=true], button.supplementary.blue.disabled, button.supplementary.blue:disabled {
178
+ .ds-button.supplementary.blue[aria-disabled=true], .ds-button.supplementary.blue.disabled, .ds-button.supplementary.blue:disabled {
179
179
  background-color: transparent;
180
180
  border-color: transparent;
181
181
  color: var(--ds-textColor-disabled-onLight);
182
182
  }
183
- button.supplementary.black {
183
+ .ds-button.supplementary.black {
184
184
  background-color: transparent;
185
185
  border-color: transparent;
186
186
  color: var(--ds-textColor-default);
187
187
  padding-right: 0;
188
188
  padding-left: 0;
189
189
  }
190
- button.supplementary.black:hover {
190
+ .ds-button.supplementary.black:hover {
191
191
  background-color: var(--ds-bgColor-transparent-onLight-hover);
192
192
  }
193
- button.supplementary.black:active, button.supplementary.black--active {
193
+ .ds-button.supplementary.black:active, .ds-button.supplementary.black--active {
194
194
  background-color: var(--ds-bgColor-transparent-onLight-active);
195
195
  }
196
- button.supplementary.black:focus-visible {
196
+ .ds-button.supplementary.black:focus-visible {
197
197
  box-shadow: 0 0 0 2px var(--ds-borderColor-white);
198
198
  outline-color: var(--ds-borderColor-black);
199
199
  }
200
- button.supplementary.black[aria-disabled=true], button.supplementary.black.disabled, button.supplementary.black:disabled {
200
+ .ds-button.supplementary.black[aria-disabled=true], .ds-button.supplementary.black.disabled, .ds-button.supplementary.black:disabled {
201
201
  background-color: transparent;
202
202
  border-color: transparent;
203
203
  color: var(--ds-textColor-disabled-onLight);
204
204
  }
205
- button.supplementary.white {
205
+ .ds-button.supplementary.white {
206
206
  background-color: transparent;
207
207
  border-color: transparent;
208
208
  color: var(--ds-textColor-white);
209
209
  padding-right: 0;
210
210
  padding-left: 0;
211
211
  }
212
- button.supplementary.white:hover {
212
+ .ds-button.supplementary.white:hover {
213
213
  background-color: var(--ds-bgColor-transparent-onDark-hover);
214
214
  }
215
- button.supplementary.white:active, button.supplementary.white--active {
215
+ .ds-button.supplementary.white:active, .ds-button.supplementary.white--active {
216
216
  background-color: var(--ds-bgColor-transparent-onDark-active);
217
217
  }
218
- button.supplementary.white:focus-visible {
218
+ .ds-button.supplementary.white:focus-visible {
219
219
  box-shadow: 0 0 0 2px var(--ds-borderColor-black);
220
220
  outline-color: var(--ds-borderColor-white);
221
221
  }
222
- button.supplementary.white[aria-disabled=true], button.supplementary.white.disabled, button.supplementary.white:disabled {
222
+ .ds-button.supplementary.white[aria-disabled=true], .ds-button.supplementary.white.disabled, .ds-button.supplementary.white:disabled {
223
223
  background-color: transparent;
224
224
  border-color: transparent;
225
225
  color: var(--ds-textColor-disabled-onDark);
226
226
  }
227
- button.small {
227
+ .ds-button.small {
228
228
  border-width: var(--ds-borderWidth-thin);
229
229
  font-size: var(--ds-fontSize-14);
230
230
  min-height: 32px;
231
231
  padding: var(--ds-spacing-4xSmall) var(--ds-spacing-2xSmall);
232
232
  }
233
- button.small.icon-only {
233
+ .ds-button.small.icon-only {
234
234
  width: 32px;
235
235
  }
236
- button.small ds-icon {
236
+ .ds-button.small ds-icon {
237
237
  height: 1rem;
238
238
  }