@zanichelli/albe-web-components 9.3.0-rc1 → 10.0.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 (191) hide show
  1. package/dist/cjs/index-e3299e0a.js +16 -20
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/web-components-library.cjs.js +1 -1
  4. package/dist/cjs/z-accordion.cjs.entry.js +1 -1
  5. package/dist/cjs/z-app-header_11.cjs.entry.js +1056 -0
  6. package/dist/cjs/z-book-card.cjs.entry.js +5 -1
  7. package/dist/cjs/z-breadcrumb.cjs.entry.js +1 -1
  8. package/dist/cjs/z-date-picker.cjs.entry.js +477 -0
  9. package/dist/cjs/z-dragdrop-area_2.cjs.entry.js +1016 -0
  10. package/dist/cjs/z-navigation-tab-link.cjs.entry.js +4 -4
  11. package/dist/cjs/z-navigation-tab.cjs.entry.js +4 -4
  12. package/dist/cjs/z-navigation-tabs.cjs.entry.js +36 -44
  13. package/dist/cjs/z-panel-elem.cjs.entry.js +6 -2
  14. package/dist/cjs/z-select.cjs.entry.js +333 -0
  15. package/dist/cjs/z-skip-to-content.cjs.entry.js +10 -2
  16. package/dist/collection/collection-manifest.json +1 -4
  17. package/dist/collection/components/modal/z-modal/styles.css +2 -6
  18. package/dist/collection/components/navigation/tabs/navigation-tab.css +2 -1
  19. package/dist/collection/components/navigation/tabs/z-navigation-tab/index.js +19 -8
  20. package/dist/collection/components/navigation/tabs/z-navigation-tab-link/index.js +19 -8
  21. package/dist/collection/components/navigation/tabs/z-navigation-tabs/index.js +35 -43
  22. package/dist/collection/components/navigation/tabs/z-navigation-tabs/index.stories.js +11 -0
  23. package/dist/collection/components/navigation/tabs/z-navigation-tabs/styles.css +2 -2
  24. package/dist/collection/components/panel/z-panel-elem/index.js +6 -2
  25. package/dist/collection/components/panel/z-panel-elem/styles.css +9 -2
  26. package/dist/collection/components/z-accordion/index.js +10 -2
  27. package/dist/collection/components/z-accordion/styles.css +21 -10
  28. package/dist/collection/components/z-book-card/index.js +23 -1
  29. package/dist/collection/components/z-breadcrumb/index.js +1 -1
  30. package/dist/collection/components/z-skip-to-content/index.js +9 -1
  31. package/dist/collection/components/z-skip-to-content/styles.css +18 -17
  32. package/dist/esm/{index-8528dee0.js → index-1b2e3e53.js} +1 -1
  33. package/dist/esm/index-a2ca4b97.js +16 -20
  34. package/dist/esm/{index-5b83b0b1.js → index-d3dfe710.js} +1 -1
  35. package/dist/esm/index.js +1 -1
  36. package/dist/esm/loader.js +1 -1
  37. package/dist/esm/{utils-6c83dfcb.js → utils-4d2d99d9.js} +1 -1
  38. package/dist/esm/web-components-library.js +1 -1
  39. package/dist/esm/z-accordion.entry.js +1 -1
  40. package/dist/esm/z-app-header_11.entry.js +1042 -0
  41. package/dist/esm/z-book-card.entry.js +6 -2
  42. package/dist/esm/z-breadcrumb.entry.js +2 -2
  43. package/dist/esm/z-chip.entry.js +1 -1
  44. package/dist/esm/z-combobox.entry.js +1 -1
  45. package/dist/esm/z-date-picker.entry.js +473 -0
  46. package/dist/esm/z-dragdrop-area_2.entry.js +1011 -0
  47. package/dist/esm/z-file-upload.entry.js +1 -1
  48. package/dist/esm/z-myz-card-info.entry.js +1 -1
  49. package/dist/esm/z-myz-list-item.entry.js +1 -1
  50. package/dist/esm/z-navigation-tab-link.entry.js +5 -5
  51. package/dist/esm/z-navigation-tab.entry.js +5 -5
  52. package/dist/esm/z-navigation-tabs.entry.js +36 -44
  53. package/dist/esm/z-panel-elem.entry.js +6 -2
  54. package/dist/esm/z-pocket_3.entry.js +1 -1
  55. package/dist/esm/z-select.entry.js +329 -0
  56. package/dist/esm/z-skip-to-content.entry.js +11 -3
  57. package/dist/esm/z-slideshow.entry.js +1 -1
  58. package/dist/esm/z-table-deprecated.entry.js +2 -2
  59. package/dist/esm/z-table-header.entry.js +2 -2
  60. package/dist/esm/z-table.entry.js +2 -2
  61. package/dist/esm/z-toggle-switch.entry.js +1 -1
  62. package/dist/esm/z-tr.entry.js +2 -2
  63. package/dist/types/components/navigation/tabs/z-navigation-tab/index.d.ts +11 -5
  64. package/dist/types/components/navigation/tabs/z-navigation-tab-link/index.d.ts +11 -7
  65. package/dist/types/components/navigation/tabs/z-navigation-tabs/index.d.ts +4 -4
  66. package/dist/types/components/z-accordion/index.d.ts +10 -2
  67. package/dist/types/components/z-book-card/index.d.ts +4 -0
  68. package/dist/types/components.d.ts +28 -120
  69. package/dist/types/{components/navigation → deprecated}/z-link/index.d.ts +1 -1
  70. package/dist/web-components-library/index.esm.js +1 -1
  71. package/dist/web-components-library/p-06d2f371.entry.js +1 -0
  72. package/dist/web-components-library/p-09be4e46.entry.js +1 -0
  73. package/dist/web-components-library/p-113762ff.entry.js +1 -0
  74. package/dist/web-components-library/p-1976afea.entry.js +1 -0
  75. package/dist/web-components-library/{p-7eb6d043.entry.js → p-1cbd8a5f.entry.js} +1 -1
  76. package/dist/web-components-library/{p-c99acff4.entry.js → p-2d0ac109.entry.js} +1 -1
  77. package/dist/web-components-library/p-2d600a28.entry.js +1 -0
  78. package/dist/web-components-library/{p-dca0db1b.entry.js → p-2f013f10.entry.js} +1 -1
  79. package/dist/web-components-library/p-36487afc.entry.js +1 -0
  80. package/dist/web-components-library/{p-13ac8bd3.entry.js → p-37e8194f.entry.js} +1 -1
  81. package/dist/web-components-library/p-386bdb7f.entry.js +1 -0
  82. package/dist/web-components-library/p-3e61bad0.entry.js +1 -0
  83. package/dist/web-components-library/{p-327b7b79.js → p-65dd23d7.js} +1 -1
  84. package/dist/web-components-library/{p-b3093245.entry.js → p-69bde29c.entry.js} +1 -1
  85. package/dist/web-components-library/p-6b6453ba.entry.js +1 -0
  86. package/dist/web-components-library/{p-aa8b0c95.entry.js → p-8b2bf3b4.entry.js} +1 -1
  87. package/dist/web-components-library/p-9829f5bd.entry.js +16 -0
  88. package/dist/web-components-library/{p-432a2f5b.entry.js → p-a6a09ce6.entry.js} +1 -1
  89. package/{www/build/p-7f43e400.entry.js → dist/web-components-library/p-c1f20cec.entry.js} +1 -1
  90. package/dist/web-components-library/p-c4263223.entry.js +1 -0
  91. package/dist/web-components-library/p-c97d133c.entry.js +1 -0
  92. package/dist/web-components-library/{p-c8bd65d9.entry.js → p-cb07de86.entry.js} +1 -1
  93. package/dist/web-components-library/{p-eb9fa72b.js → p-d7668580.js} +1 -1
  94. package/dist/web-components-library/p-dd17b462.entry.js +1 -0
  95. package/dist/web-components-library/{p-91447194.js → p-dd3e0b4e.js} +1 -1
  96. package/dist/web-components-library/p-f5b5f897.entry.js +1 -0
  97. package/dist/web-components-library/p-fef8f2e1.entry.js +1 -0
  98. package/dist/web-components-library/web-components-library.css +1 -1
  99. package/dist/web-components-library/web-components-library.esm.js +1 -1
  100. package/package.json +2 -2
  101. package/react/components.d.ts +0 -3
  102. package/react/components.js +2 -5
  103. package/react/components.js.map +1 -1
  104. package/www/build/index.esm.js +1 -1
  105. package/www/build/p-06d2f371.entry.js +1 -0
  106. package/www/build/p-09be4e46.entry.js +1 -0
  107. package/www/build/p-113762ff.entry.js +1 -0
  108. package/www/build/p-1976afea.entry.js +1 -0
  109. package/www/build/{p-7eb6d043.entry.js → p-1cbd8a5f.entry.js} +1 -1
  110. package/www/build/p-1f34248a.css +2 -0
  111. package/www/build/{p-c99acff4.entry.js → p-2d0ac109.entry.js} +1 -1
  112. package/www/build/p-2d600a28.entry.js +1 -0
  113. package/www/build/{p-dca0db1b.entry.js → p-2f013f10.entry.js} +1 -1
  114. package/www/build/p-36487afc.entry.js +1 -0
  115. package/www/build/{p-13ac8bd3.entry.js → p-37e8194f.entry.js} +1 -1
  116. package/www/build/p-386bdb7f.entry.js +1 -0
  117. package/www/build/p-3e61bad0.entry.js +1 -0
  118. package/www/build/p-4d775062.js +1 -0
  119. package/www/build/{p-327b7b79.js → p-65dd23d7.js} +1 -1
  120. package/www/build/{p-b3093245.entry.js → p-69bde29c.entry.js} +1 -1
  121. package/www/build/p-6b6453ba.entry.js +1 -0
  122. package/www/build/{p-aa8b0c95.entry.js → p-8b2bf3b4.entry.js} +1 -1
  123. package/www/build/p-9829f5bd.entry.js +16 -0
  124. package/www/build/{p-432a2f5b.entry.js → p-a6a09ce6.entry.js} +1 -1
  125. package/{dist/web-components-library/p-7f43e400.entry.js → www/build/p-c1f20cec.entry.js} +1 -1
  126. package/www/build/p-c4263223.entry.js +1 -0
  127. package/www/build/p-c97d133c.entry.js +1 -0
  128. package/www/build/{p-c8bd65d9.entry.js → p-cb07de86.entry.js} +1 -1
  129. package/www/build/{p-eb9fa72b.js → p-d7668580.js} +1 -1
  130. package/www/build/p-dd17b462.entry.js +1 -0
  131. package/www/build/{p-91447194.js → p-dd3e0b4e.js} +1 -1
  132. package/www/build/p-f5b5f897.entry.js +1 -0
  133. package/www/build/p-fef8f2e1.entry.js +1 -0
  134. package/www/build/web-components-library.css +1 -1
  135. package/www/build/web-components-library.esm.js +1 -1
  136. package/www/index.html +1 -59
  137. package/CHANGELOG.md +0 -2694
  138. package/dist/cjs/z-app-header_14.cjs.entry.js +0 -2828
  139. package/dist/cjs/z-body.cjs.entry.js +0 -18
  140. package/dist/cjs/z-dragdrop-area.cjs.entry.js +0 -37
  141. package/dist/cjs/z-heading.cjs.entry.js +0 -18
  142. package/dist/cjs/z-typography.cjs.entry.js +0 -30
  143. package/dist/collection/deprecated/typography/z-body/index.js +0 -68
  144. package/dist/collection/deprecated/typography/z-heading/index.js +0 -68
  145. package/dist/collection/deprecated/typography/z-typography/index.js +0 -91
  146. package/dist/collection/deprecated/typography/z-typography/styles.css +0 -65
  147. package/dist/esm/z-app-header_14.entry.js +0 -2811
  148. package/dist/esm/z-body.entry.js +0 -14
  149. package/dist/esm/z-dragdrop-area.entry.js +0 -33
  150. package/dist/esm/z-heading.entry.js +0 -14
  151. package/dist/esm/z-typography.entry.js +0 -26
  152. package/dist/types/deprecated/typography/z-body/index.d.ts +0 -9
  153. package/dist/types/deprecated/typography/z-heading/index.d.ts +0 -9
  154. package/dist/types/deprecated/typography/z-typography/index.d.ts +0 -11
  155. package/dist/web-components-library/p-052c06ac.entry.js +0 -1
  156. package/dist/web-components-library/p-3ee4aa12.entry.js +0 -1
  157. package/dist/web-components-library/p-438f017e.entry.js +0 -1
  158. package/dist/web-components-library/p-4423b00c.entry.js +0 -1
  159. package/dist/web-components-library/p-466c3c0b.entry.js +0 -1
  160. package/dist/web-components-library/p-52b084fb.entry.js +0 -1
  161. package/dist/web-components-library/p-5ac6109d.entry.js +0 -1
  162. package/dist/web-components-library/p-625d603e.entry.js +0 -1
  163. package/dist/web-components-library/p-76c2c26d.entry.js +0 -1
  164. package/dist/web-components-library/p-b2420056.entry.js +0 -1
  165. package/dist/web-components-library/p-bbeb69ae.entry.js +0 -1
  166. package/dist/web-components-library/p-c1de287b.entry.js +0 -1
  167. package/dist/web-components-library/p-d147e995.entry.js +0 -1
  168. package/dist/web-components-library/p-d8de02a7.entry.js +0 -1
  169. package/dist/web-components-library/p-e78ce8ec.entry.js +0 -1
  170. package/dist/web-components-library/p-f01f4e9b.entry.js +0 -16
  171. package/src-react/index.ts +0 -1
  172. package/www/build/p-052c06ac.entry.js +0 -1
  173. package/www/build/p-39b528a6.js +0 -129
  174. package/www/build/p-3ee4aa12.entry.js +0 -1
  175. package/www/build/p-438f017e.entry.js +0 -1
  176. package/www/build/p-4423b00c.entry.js +0 -1
  177. package/www/build/p-466c3c0b.entry.js +0 -1
  178. package/www/build/p-52b084fb.entry.js +0 -1
  179. package/www/build/p-5a0a4f69.css +0 -1653
  180. package/www/build/p-5ac6109d.entry.js +0 -1
  181. package/www/build/p-625d603e.entry.js +0 -1
  182. package/www/build/p-76c2c26d.entry.js +0 -1
  183. package/www/build/p-b2420056.entry.js +0 -1
  184. package/www/build/p-bbeb69ae.entry.js +0 -1
  185. package/www/build/p-c1de287b.entry.js +0 -1
  186. package/www/build/p-d147e995.entry.js +0 -1
  187. package/www/build/p-d8de02a7.entry.js +0 -1
  188. package/www/build/p-e78ce8ec.entry.js +0 -1
  189. package/www/build/p-f01f4e9b.entry.js +0 -16
  190. /package/dist/collection/{components/navigation → deprecated}/z-link/index.js +0 -0
  191. /package/dist/collection/{components/navigation → deprecated}/z-link/styles.css +0 -0
@@ -7,7 +7,7 @@ const utils = require('./utils-4ac02425.js');
7
7
  const index$1 = require('./index-e8ce94a1.js');
8
8
  require('./breakpoints-ebe1a437.js');
9
9
 
10
- const stylesCss = ".sc-z-skip-to-content-h{position:absolute;left:-100%;height:60px;box-sizing:border-box;padding:calc(var(--space-unit) * 1.25) calc(var(--space-unit) * 3);background-color:#24f4ff;font-family:var(--font-family-sans);font-weight:var(--font-rg)}.skip-to-content-visible.sc-z-skip-to-content-h,.sc-z-skip-to-content-h:focus{position:static;display:block}.sc-z-skip-to-content-h>z-link.sc-z-skip-to-content{display:block;text-align:center}.sc-z-skip-to-content-h>z-link.link-invisible.sc-z-skip-to-content{overflow:hidden;width:0;height:0}.sc-z-skip-to-content-h>z-link.link-visible.sc-z-skip-to-content{width:initial;height:initial}.dark.sc-z-skip-to-content-h{background-color:var(--bg-grey-800);color:var(--color-white)}.light.sc-z-skip-to-content-h{border:2px solid var(--text-grey-800);background-color:var(--bg-white);color:var(--text-grey-800)}@media (min-width: 768px){.sc-z-skip-to-content-h>z-link.sc-z-skip-to-content{text-align:left}}@media (min-width: 1152px){.sc-z-skip-to-content-h>z-link.sc-z-skip-to-content{display:inline-block;padding:0 calc(var(--space-unit) * 3);border-right:1px solid var(--bg-grey-800)}.sc-z-skip-to-content-h>z-link.link-invisible.sc-z-skip-to-content{overflow:initial;width:initial;height:initial}.sc-z-skip-to-content-h>z-link.sc-z-skip-to-content:first-child{padding-left:0}.sc-z-skip-to-content-h>z-link.sc-z-skip-to-content:last-child,.dark.sc-z-skip-to-content-h>z-link.sc-z-skip-to-content:last-child,.light.sc-z-skip-to-content-h>z-link.sc-z-skip-to-content:last-child{padding-right:0;border-right:none}.dark.sc-z-skip-to-content-h>z-link.sc-z-skip-to-content{border-right:1px solid var(--bg-white)}}";
10
+ const stylesCss = ".sc-z-skip-to-content-h{position:absolute;left:-100%;height:60px;box-sizing:border-box;padding:calc(var(--space-unit) * 1.25) calc(var(--space-unit) * 3);background-color:#24f4ff;font-family:var(--font-family-sans);font-weight:var(--font-rg);text-align:center}.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content{display:inline-flex;height:100%;align-items:center}.skip-to-content-visible.sc-z-skip-to-content-h,.sc-z-skip-to-content-h:focus{position:static;display:block}.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content>a.z-link.link-invisible.sc-z-skip-to-content{overflow:hidden;width:0;height:0}.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content>a.z-link.link-visible.sc-z-skip-to-content{width:initial;height:initial}.dark.sc-z-skip-to-content-h{background-color:var(--bg-grey-800);color:var(--color-white)}.light.sc-z-skip-to-content-h{border:2px solid var(--text-grey-800);background-color:var(--bg-white);color:var(--text-grey-800)}@media (min-width: 768px){.sc-z-skip-to-content-h{text-align:start}}@media (min-width: 1152px){.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content{padding:0 calc(var(--space-unit) * 3);border-right:1px solid var(--bg-grey-800)}.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content>a.z-link.link-invisible.sc-z-skip-to-content{overflow:initial;width:initial;height:initial}.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content:first-child{padding-left:0}.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content:last-child,.dark.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content:last-child,.light.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content:last-child{padding-right:0;border-right:none}.dark.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content{border-right:1px solid var(--bg-white)}}";
11
11
 
12
12
  const ZSkipToContent = class {
13
13
  constructor(hostRef) {
@@ -56,7 +56,15 @@ const ZSkipToContent = class {
56
56
  "skip-to-content-visible": this.visible,
57
57
  } }, this.links.map((link, i) => {
58
58
  const id = `skip-to-content-${i}`;
59
- return (index.h("z-link", { id: id, underline: true, "aria-label": link.ariaLabel || link.label, class: `body-1-sb ${id == this.visibleLink ? "link-visible" : "link-invisible"}`, href: link.href, textcolor: this.variant === index$1.ThemeVariant.DARK ? "white" : "black", onFocus: () => (this.visibleLink = id), onClick: () => this.handleLinkClick(), onKeyUp: (e) => utils.handleKeyboardSubmit(e, this.handleLinkClick.bind(this)) }, link.label));
59
+ return (index.h("div", { class: "link-container" }, index.h("a", { id: id, class: {
60
+ "body-1-sb": true,
61
+ "z-link": true,
62
+ "z-link-underline": true,
63
+ "z-link-white": this.variant === index$1.ThemeVariant.DARK,
64
+ "z-link-black": this.variant !== index$1.ThemeVariant.DARK,
65
+ "link-visible": id == this.visibleLink,
66
+ "link-invisible": id != this.visibleLink,
67
+ }, "aria-label": link.ariaLabel || link.label, href: link.href, onFocus: () => (this.visibleLink = id), onClick: () => this.handleLinkClick(), onKeyUp: (e) => utils.handleKeyboardSubmit(e, this.handleLinkClick.bind(this)) }, link.label)));
60
68
  })));
61
69
  }
62
70
  get hostElement() { return index.getElement(this); }
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "entries": [
3
- "./deprecated/typography/z-typography/index.js",
4
3
  "./components/buttons/z-button/index.js",
5
4
  "./components/buttons/z-button-sort/index.js",
6
5
  "./components/buttons/z-chip/index.js",
@@ -30,7 +29,6 @@
30
29
  "./components/navigation/tabs/z-navigation-tab-link/index.js",
31
30
  "./components/navigation/tabs/z-navigation-tabs/index.js",
32
31
  "./components/navigation/z-app-header/index.js",
33
- "./components/navigation/z-link/index.js",
34
32
  "./components/navigation/z-menu/index.js",
35
33
  "./components/navigation/z-menu-section/index.js",
36
34
  "./components/notification/z-info-box/index.js",
@@ -65,8 +63,7 @@
65
63
  "./components/z-skip-to-content/index.js",
66
64
  "./components/z-tag/index.js",
67
65
  "./components/z-visually-hidden/index.js",
68
- "./deprecated/typography/z-body/index.js",
69
- "./deprecated/typography/z-heading/index.js",
66
+ "./deprecated/z-link/index.js",
70
67
  "./deprecated/z-table-deprecated/z-table-body/index.js",
71
68
  "./deprecated/z-table-deprecated/z-table-cell/index.js",
72
69
  "./deprecated/z-table-deprecated/z-table-empty-box/index.js",
@@ -184,7 +184,8 @@
184
184
  overflow: initial;
185
185
  }
186
186
 
187
- .modal-container-scroll-outside > header {
187
+ .modal-container-scroll-outside > header,
188
+ .modal-container-scroll-inside > header {
188
189
  border-top-left-radius: var(--border-radius);
189
190
  border-top-right-radius: var(--border-radius);
190
191
  }
@@ -209,11 +210,6 @@
209
210
  border-bottom-right-radius: var(--border-radius);
210
211
  }
211
212
 
212
- .modal-container-scroll-inside > header {
213
- border-top-left-radius: var(--border-radius);
214
- border-top-right-radius: var(--border-radius);
215
- }
216
-
217
213
  .modal-dialog::-webkit-scrollbar {
218
214
  display: none;
219
215
  }
@@ -38,7 +38,8 @@ z-navigation-tab-link *::after {
38
38
 
39
39
  z-navigation-tab > *:focus:focus-visible,
40
40
  z-navigation-tab-link > *:focus:focus-visible {
41
- box-shadow: inset var(--shadow-focus-primary);
41
+ z-index: 1;
42
+ box-shadow: inset 0 0 4px 3px var(--color-highlight);
42
43
  }
43
44
 
44
45
  z-navigation-tab:not([disabled]):hover > *,
@@ -1,8 +1,10 @@
1
- import { h } from "@stencil/core";
1
+ import { h, Host } from "@stencil/core";
2
2
  import { NavigationTabsOrientation, NavigationTabsSize } from "../../../../beans";
3
3
  import { ICONS } from "../../../icons/icons";
4
4
  /**
5
5
  * Single tab component to use inside `z-navigation-tabs`. It renders a button.
6
+ * This component uses the `tab` role:
7
+ * @link https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/tab_role
6
8
  */
7
9
  export class ZNavigationTab {
8
10
  constructor() {
@@ -27,9 +29,9 @@ export class ZNavigationTab {
27
29
  * Scroll into view to center the tab.
28
30
  */
29
31
  scrollToTab({ target: button }) {
30
- const scrollOptions = this.orientation === NavigationTabsOrientation.HORIZONTAL
32
+ const scrollOptions = (this.orientation === NavigationTabsOrientation.HORIZONTAL
31
33
  ? { block: "nearest", inline: "center" }
32
- : { block: "center", inline: "nearest" };
34
+ : { block: "center", inline: "nearest" });
33
35
  button.scrollIntoView(Object.assign({ behavior: "smooth" }, scrollOptions));
34
36
  }
35
37
  onClick() {
@@ -56,7 +58,7 @@ export class ZNavigationTab {
56
58
  return h("z-icon", { name: icon });
57
59
  }
58
60
  render() {
59
- return (h("button", { role: "tab", id: this.tabId, disabled: this.disabled, title: this.htmlTitle, onFocus: this.scrollToTab.bind(this), "aria-selected": this.selected ? "true" : "false", "aria-controls": this.ariaControls, tabindex: this.selected ? "0" : "-1" }, this.icon && this.renderIcon(), this.orientation === NavigationTabsOrientation.HORIZONTAL && this.label));
61
+ return (h(Host, { role: "tab", id: this.tabId, "aria-selected": this.selected ? "true" : "false", "aria-controls": this.ariaControls }, h("button", { tabIndex: this.selected ? 0 : -1, onFocus: this.scrollToTab.bind(this), disabled: this.disabled, title: this.htmlTitle }, this.icon && this.renderIcon(), this.orientation === NavigationTabsOrientation.HORIZONTAL && this.label)));
60
62
  }
61
63
  static get is() { return "z-navigation-tab"; }
62
64
  static get originalStyleUrls() {
@@ -82,8 +84,11 @@ export class ZNavigationTab {
82
84
  "required": false,
83
85
  "optional": true,
84
86
  "docs": {
85
- "tags": [],
86
- "text": "The aria-controls attribute refers to the id of the HTML element that has role=\"tabpanel\" and that contains the actual content of this tab.\nref: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-controls"
87
+ "tags": [{
88
+ "name": "link",
89
+ "text": "https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-controls"
90
+ }],
91
+ "text": "`aria-controls` attribute of the tab.\nIdentifies the element (with `role=tabpanel`) whose contents or presence are controlled by this tab.\nThe value must be the `id` of the element it controls."
87
92
  },
88
93
  "attribute": "aria-controls",
89
94
  "reflect": false
@@ -99,8 +104,14 @@ export class ZNavigationTab {
99
104
  "required": false,
100
105
  "optional": true,
101
106
  "docs": {
102
- "tags": [],
103
- "text": "set id attribute to tab property identifying a corresponding tabpanel attribute aria-labelledby.\nref: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/tab_role"
107
+ "tags": [{
108
+ "name": "link",
109
+ "text": "https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-labelledby"
110
+ }, {
111
+ "name": "deprecated",
112
+ "text": "Use native `id` attribute instead"
113
+ }],
114
+ "text": "`id` attribute of the tab.\nSet this id to the `aria-labelledby` attribute of the controlled `tabpanel` element."
104
115
  },
105
116
  "attribute": "tab-id",
106
117
  "reflect": false
@@ -1,8 +1,10 @@
1
- import { h } from "@stencil/core";
1
+ import { h, Host } from "@stencil/core";
2
2
  import { NavigationTabsOrientation, NavigationTabsSize } from "../../../../beans";
3
3
  import { ICONS } from "../../../icons/icons";
4
4
  /**
5
5
  * Single tab component to use inside `z-navigation-tabs`. It renders an anchor element.
6
+ * This component uses the `tab` role:
7
+ * @link https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/tab_role
6
8
  */
7
9
  export class ZNavigationTabLink {
8
10
  constructor() {
@@ -27,9 +29,9 @@ export class ZNavigationTabLink {
27
29
  * Scroll into view to center the tab.
28
30
  */
29
31
  scrollToTab({ target: button }) {
30
- const scrollOptions = this.orientation === NavigationTabsOrientation.HORIZONTAL
32
+ const scrollOptions = (this.orientation === NavigationTabsOrientation.HORIZONTAL
31
33
  ? { block: "nearest", inline: "center" }
32
- : { block: "center", inline: "nearest" };
34
+ : { block: "center", inline: "nearest" });
33
35
  button.scrollIntoView(Object.assign({ behavior: "smooth" }, scrollOptions));
34
36
  }
35
37
  onClick() {
@@ -54,7 +56,7 @@ export class ZNavigationTabLink {
54
56
  return h("z-icon", { name: icon });
55
57
  }
56
58
  render() {
57
- return (h("a", { role: "tab", id: this.tabId, href: !this.disabled && this.href, title: this.htmlTitle, target: this.target, onFocus: this.scrollToTab.bind(this), "aria-selected": this.selected ? "true" : "false", "aria-controls": this.ariaControls, tabindex: this.selected ? "0" : "-1" }, this.icon && this.renderIcon(), this.orientation === "horizontal" && this.label));
59
+ return (h(Host, { role: "tab", id: this.tabId, "aria-selected": this.selected ? "true" : "false", "aria-controls": this.ariaControls }, h("a", { tabIndex: this.selected ? 0 : -1, onFocus: this.scrollToTab.bind(this), href: !this.disabled && this.href, title: this.htmlTitle, target: this.target }, this.icon && this.renderIcon(), this.orientation === "horizontal" && this.label)));
58
60
  }
59
61
  static get is() { return "z-navigation-tab-link"; }
60
62
  static get originalStyleUrls() {
@@ -80,8 +82,11 @@ export class ZNavigationTabLink {
80
82
  "required": false,
81
83
  "optional": true,
82
84
  "docs": {
83
- "tags": [],
84
- "text": "set aria-controls attribute to tab property identifying a corresponding tabpanel\n(that has a tabpanel role) by that element's id.\nWhen an element with the tabpanel role has focus, or a child of it has focus,\nthat indicates that the connected element with the tab role is the active tab in a tablist."
85
+ "tags": [{
86
+ "name": "link",
87
+ "text": "https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-controls"
88
+ }],
89
+ "text": "`aria-controls` attribute of the tab.\nIdentifies the element (with `role=tabpanel`) whose contents or presence are controlled by this tab.\nThe value must be the `id` of the element it controls."
85
90
  },
86
91
  "attribute": "aria-controls",
87
92
  "reflect": false
@@ -97,8 +102,14 @@ export class ZNavigationTabLink {
97
102
  "required": false,
98
103
  "optional": true,
99
104
  "docs": {
100
- "tags": [],
101
- "text": "set id attribute to tab property identifying a corresponding tabpanel\n(that has a tabpanel role) by that element's attribute aria-labelledby."
105
+ "tags": [{
106
+ "name": "link",
107
+ "text": "https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-labelledby"
108
+ }, {
109
+ "name": "deprecated",
110
+ "text": "Use native `id` attribute instead"
111
+ }],
112
+ "text": "`id` attribute of the tab.\nSet this id to the `aria-labelledby` attribute of the controlled `tabpanel` element."
102
113
  },
103
114
  "attribute": "tab-id",
104
115
  "reflect": false
@@ -27,22 +27,23 @@ export class ZNavigationTabs {
27
27
  get dimension() {
28
28
  return this.orientation == NavigationTabsOrientation.HORIZONTAL ? "Width" : "Height";
29
29
  }
30
+ get tabs() {
31
+ return Array.from(this.host.children);
32
+ }
30
33
  /**
31
34
  * Set the `size` prop to all `z-navigation-tab` children.
32
35
  */
33
36
  setChildrenSize() {
34
- const children = Array.from(this.host.children);
35
- children.forEach((child) => {
36
- child.setAttribute("size", this.size);
37
+ this.tabs.forEach((tab) => {
38
+ tab.size = this.size;
37
39
  });
38
40
  }
39
41
  /**
40
42
  * Set the `orientation` prop to all `z-navigation-tab` children.
41
43
  */
42
44
  setChildrenOrientation() {
43
- const children = Array.from(this.host.children);
44
- children.forEach((child) => {
45
- child.setAttribute("orientation", this.orientation);
45
+ this.tabs.forEach((tab) => {
46
+ tab.orientation = this.orientation;
46
47
  });
47
48
  }
48
49
  /**
@@ -73,11 +74,10 @@ export class ZNavigationTabs {
73
74
  * @param {CustomEvent} event `selected` event triggered by a child tab
74
75
  */
75
76
  onTabSelected(event) {
76
- const tab = event.target;
77
- const children = Array.from(this.host.children);
78
- children.forEach((child, i) => {
79
- if (child !== tab) {
80
- child.removeAttribute("selected");
77
+ const selectedTab = event.target;
78
+ this.tabs.forEach((tab, i) => {
79
+ if (tab !== selectedTab) {
80
+ tab.selected = undefined;
81
81
  }
82
82
  else {
83
83
  this.tabFocus = i;
@@ -103,30 +103,31 @@ export class ZNavigationTabs {
103
103
  });
104
104
  }
105
105
  /**
106
- * move focus though tabs using keyboad arrows.
106
+ * Move focus through tabs using keyboard arrows.
107
+ * When `TAB` is pressed, focus the currently selected tab, if any.
107
108
  */
108
109
  navigateThroughTabs(e) {
109
- const children = Array.from(this.host.children);
110
+ const tabs = this.tabs;
110
111
  if (e.key === KeyboardCode.TAB) {
111
- children.forEach((child, i) => {
112
- var _a, _b;
113
- if (child.hasAttribute("selected") &&
114
- ((_b = (_a = e.target) === null || _a === void 0 ? void 0 : _a.offsetParent) === null || _b === void 0 ? void 0 : _b.nodeName) === "Z-NAVIGATION-TABS") {
112
+ tabs.forEach((tab, i) => {
113
+ if (tab.selected && tabs.some((tab) => tab === e.target)) {
115
114
  this.tabFocus = i;
116
115
  }
117
116
  });
117
+ tabs[this.tabFocus].children[0].tabIndex = 0;
118
+ tabs[this.tabFocus].children[0].focus();
118
119
  return;
119
120
  }
120
121
  if (!this.isArrowNavigation(e)) {
121
122
  return true;
122
123
  }
123
124
  e.preventDefault();
124
- children[this.tabFocus].querySelector('[role="tab"]').setAttribute("tabindex", "-1");
125
+ tabs[this.tabFocus].children[0].tabIndex = -1;
125
126
  // Move forward
126
127
  if ((e.key === NavigationTabsKeyboardEvents.RIGHT && this.orientation == NavigationTabsOrientation.HORIZONTAL) ||
127
128
  (e.key === NavigationTabsKeyboardEvents.DOWN && this.orientation == NavigationTabsOrientation.VERTICAL)) {
128
129
  this.tabFocus++;
129
- if (this.tabFocus >= children.length) {
130
+ if (this.tabFocus >= tabs.length) {
130
131
  this.tabFocus = 0;
131
132
  }
132
133
  // Move backward
@@ -135,50 +136,41 @@ export class ZNavigationTabs {
135
136
  (e.key === NavigationTabsKeyboardEvents.UP && this.orientation == NavigationTabsOrientation.VERTICAL)) {
136
137
  this.tabFocus--;
137
138
  if (this.tabFocus < 0) {
138
- this.tabFocus = children.length - 1;
139
+ this.tabFocus = tabs.length - 1;
139
140
  }
140
141
  }
141
- //ignore disabled tabs
142
- if (children[this.tabFocus].querySelector('[role="tab"]').hasAttribute("disabled")) {
142
+ // ignore disabled tabs
143
+ if (tabs[this.tabFocus].disabled) {
143
144
  this.navigateThroughTabs(e);
144
145
  }
145
146
  else {
146
- children[this.tabFocus].querySelector('[role="tab"]').setAttribute("tabindex", "0");
147
- children[this.tabFocus].querySelector('[role="tab"]').focus();
147
+ tabs[this.tabFocus].children[0].tabIndex = 0;
148
+ tabs[this.tabFocus].children[0].focus();
148
149
  }
149
150
  }
150
151
  /**
151
- * move focus though tabs using keyboad arrows.
152
+ * Check if a keyboard event was triggered by an arrow key.
152
153
  */
153
154
  isArrowNavigation(e) {
154
- return !!Object.keys(NavigationTabsKeyboardEvents).find((key) => NavigationTabsKeyboardEvents[key] === e.key);
155
- }
156
- setTabindex() {
157
- var _a;
158
- const children = Array.from(this.host.children);
159
- if (children.length > 0) {
160
- children.forEach((child, i) => {
161
- var _a;
162
- child.hasAttribute("aria-selected") && (this.tabFocus = i);
163
- (_a = child.querySelector('[role="tab"]')) === null || _a === void 0 ? void 0 : _a.setAttribute("tabindex", "-1");
164
- });
165
- (_a = children[this.tabFocus].querySelector('[role="tab"]')) === null || _a === void 0 ? void 0 : _a.setAttribute("tabindex", "0");
166
- }
167
- }
168
- componentWillLoad() {
169
- this.tabFocus = 0;
155
+ return Object.values(NavigationTabsKeyboardEvents).includes(e.key);
170
156
  }
171
157
  componentDidRender() {
172
158
  this.setChildrenSize();
173
159
  this.setChildrenOrientation();
174
160
  this.checkScrollVisible();
175
- this.setTabindex();
161
+ if (!this.tabFocus) {
162
+ this.tabFocus = 0;
163
+ const tabChild = this.tabs[this.tabFocus].children[0];
164
+ if (tabChild) {
165
+ tabChild.tabIndex = 0;
166
+ }
167
+ }
176
168
  }
177
169
  render() {
178
170
  return (h(Host, { class: {
179
171
  "interactive-2": this.size === NavigationTabsSize.SMALL,
180
172
  "interactive-1": this.size !== NavigationTabsSize.SMALL,
181
- }, scrollable: this.canNavigate }, this.canNavigate && (h("button", { class: "navigation-button", onClick: this.navigateBackwards.bind(this), tabindex: "-1", disabled: !this.canNavigatePrev }, h("z-icon", { name: this.orientation === NavigationTabsOrientation.HORIZONTAL ? "chevron-left" : "chevron-up", width: 16, height: 16 }))), h("nav", { role: "tablist", "aria-label": this.ariaLabel, ref: (el) => (this.tabsNav = el !== null && el !== void 0 ? el : this.tabsNav), onScroll: this.checkScrollEnabled.bind(this) }, h("slot", null)), this.canNavigate && (h("button", { class: "navigation-button", onClick: this.navigateForward.bind(this), onKeyDown: (e) => {
173
+ }, scrollable: this.canNavigate }, this.canNavigate && (h("button", { class: "navigation-button", onClick: this.navigateBackwards.bind(this), tabindex: "-1", disabled: !this.canNavigatePrev }, h("z-icon", { name: this.orientation === NavigationTabsOrientation.HORIZONTAL ? "chevron-left" : "chevron-up", width: 16, height: 16 }))), h("nav", { role: "tablist", "aria-label": this.ariaLabel, ref: (el) => (this.tabsNav = el !== null && el !== void 0 ? el : this.tabsNav), onScroll: this.checkScrollEnabled.bind(this), "aria-orientation": this.orientation }, h("slot", null)), this.canNavigate && (h("button", { class: "navigation-button", onClick: this.navigateForward.bind(this), onKeyDown: (e) => {
182
174
  this.navigateThroughTabs(e);
183
175
  }, tabindex: "-1", disabled: !this.canNavigateNext }, h("z-icon", { name: this.orientation === NavigationTabsOrientation.HORIZONTAL ? "chevron-right" : "chevron-down", width: 16, height: 16 })))));
184
176
  }
@@ -0,0 +1,11 @@
1
+ document.addEventListener("DOMContentLoaded", () => {
2
+ document.querySelector("z-navigation-tabs")?.addEventListener("selected", (event) => {
3
+ const controlledPanel = event.target.closest("[aria-controls]")?.ariaControls;
4
+ const panels = Array.from(document.querySelectorAll("[role=tabpanel]"));
5
+ panels.forEach((panel) => (panel.hidden = true));
6
+ const panelToActivate = panels.find((panel) => panel.id === controlledPanel);
7
+ if (panelToActivate) {
8
+ panelToActivate.hidden = false;
9
+ }
10
+ });
11
+ });
@@ -29,14 +29,14 @@
29
29
  margin: 0;
30
30
  background: var(--color-white);
31
31
  border-radius: var(--border-no-radius);
32
- box-shadow: 0 0 4px 1px rgb(66 69 72 / 40%);
32
+ box-shadow: 0 0 4px 1px (--shadow-color-base);
33
33
  cursor: pointer;
34
34
  fill: var(--color-primary01);
35
35
  outline: none;
36
36
  }
37
37
 
38
38
  .navigation-button:focus:focus-visible {
39
- box-shadow: inset var(--shadow-focus-primary);
39
+ box-shadow: inset 0 0 4px 3px var(--color-highlight);
40
40
  fill: var(--color-primary01);
41
41
  }
42
42
 
@@ -17,10 +17,14 @@ export class ZPanelElem {
17
17
  }
18
18
  render() {
19
19
  const elemId = this.elemid ? this.elemid : "";
20
- return (h("div", { class: "panel-elem-container" }, (this.imgurl || this.imgalt) && (h("div", { "aria-hidden": "true", class: "panel-elem-icon" }, this.renderIcon())), h("div", { class: "panel-elem-link" }, h("z-link", { href: this.url, icon: this.linkicon, isdisabled: this.isdisabled, target: this.target, htmlid: elemId + "link_id" }, this.linklabel)), this.descrSlotName && (h("div", { class: "panel-elem-desc body-long-01" }, h("slot", { name: this.descrSlotName })))));
20
+ return (h("div", { class: "panel-elem-container" }, (this.imgurl || this.imgalt) && (h("div", { "aria-hidden": "true", class: "panel-elem-icon" }, this.renderIcon())), h("div", { class: "panel-elem-link" }, h("a", { class: {
21
+ "z-link": true,
22
+ "z-link-disabled": this.isdisabled,
23
+ "z-link-icon": true,
24
+ }, id: elemId + "link_id", href: this.url, target: this.target }, h("z-icon", { class: "z-link-icon-left", height: 14, width: 14, name: this.linkicon }), this.linklabel)), this.descrSlotName && (h("div", { class: "panel-elem-desc" }, h("slot", { name: this.descrSlotName })))));
21
25
  }
22
26
  static get is() { return "z-panel-elem"; }
23
- static get encapsulation() { return "shadow"; }
27
+ static get encapsulation() { return "scoped"; }
24
28
  static get originalStyleUrls() {
25
29
  return {
26
30
  "$": ["styles.css"]
@@ -21,13 +21,16 @@
21
21
  }
22
22
 
23
23
  .panel-elem-link {
24
+ display: flex;
25
+ align-items: center;
26
+ justify-content: center;
24
27
  margin: var(--space-unit) auto 0;
25
28
  border-radius: var(--border-no-radius);
26
29
  font-size: 12px;
27
- text-align: center;
28
30
  }
29
31
 
30
- .panel-elem-link > z-link {
32
+ .panel-elem-link > a.z-link {
33
+ padding: calc(var(--space-unit) * 0.5) 0;
31
34
  font-weight: var(--font-sb);
32
35
  }
33
36
 
@@ -37,3 +40,7 @@
37
40
  letter-spacing: 0.16px;
38
41
  text-align: center;
39
42
  }
43
+
44
+ a > z-icon {
45
+ margin-right: var(--space-unit);
46
+ }
@@ -5,8 +5,16 @@ import { ControlSize, AccordionVariant } from "../../beans";
5
5
  *
6
6
  * @slot - Slot for the main content.
7
7
  * @slot tag - Slot for tags.
8
- * @cssprop --z-accordion-highlight-color - Color of the highlight band on the `summary`'s left edge. Only applies when `highlight` is true. Default: `transparent`.
9
- * @cssprop --z-accordion-bg - Background color of the accordion. Default: `var(--color-surface02)`.
8
+ * @cssprop --z-accordion-highlight-color - Color of the highlight band on the summary's left edge. Only applies when `highlight` is true. Default: `transparent`.
9
+ * @cssprop --z-accordion-bg - Background color of the summary. Default: `--color-surface02`.
10
+ * @cssprop --z-accordion-label-color - Label color. Default: `--color-text01`.
11
+ * @cssprop --z-accordion-disabled-label-color - Label color when disabled. Default: `--color-text03`.
12
+ * @cssprop --z-accordion-content-bg - Background color of the accordion. Default: `--color-surface02`.
13
+ * @cssprop --z-accordion-content-fg - Content text color. Default: `--color-text01`.
14
+ * @cssprop --z-accordion-hover-color - Hover color of the summary. Default: `--color-surface03`.
15
+ * @cssprop --z-accordion-left-padding - Left padding of the summary. Default: `--space-unit` * 2.
16
+ * @cssprop --z-accordion-right-padding - Right padding of the summary. Default: `--space-unit`.
17
+ * @cssprop --z-accordion-label-font-weight - Font weight of the summary label. Default: `--font-sb`.
10
18
  */
11
19
  export class ZAccordion {
12
20
  constructor() {
@@ -7,11 +7,18 @@
7
7
  :host {
8
8
  --z-accordion-highlight-color: transparent;
9
9
  --z-accordion-bg: var(--color-surface01);
10
+ --z-accordion-label-color: var(--color-text01);
11
+ --z-accordion-disabled-label-color: var(--color-text03);
12
+ --z-accordion-content-bg: var(--color-surface01);
13
+ --z-accordion-content-fg: var(--color-text01);
14
+ --z-accordion-hover-color: var(--color-surface03);
15
+ --z-accordion-left-padding: calc(var(--space-unit) * 2);
16
+ --z-accordion-right-padding: var(--space-unit);
17
+ --z-accordion-label-font-weight: var(--font-sb);
10
18
 
11
19
  display: block;
12
20
  border-top: var(--border-size-small) solid var(--color-surface03);
13
21
  border-bottom: var(--border-size-small) solid var(--color-surface03);
14
- background-color: var(--z-accordion-bg);
15
22
  font-family: var(--font-family-sans);
16
23
  font-weight: var(--font-rg);
17
24
  }
@@ -40,7 +47,9 @@ summary {
40
47
  display: flex;
41
48
  height: var(--summary-height);
42
49
  align-items: center;
43
- padding: var(--summary-y-padding) var(--space-unit) var(--summary-y-padding) calc(var(--space-unit) * 2);
50
+ padding: var(--summary-y-padding) var(--z-accordion-right-padding) var(--summary-y-padding)
51
+ var(--z-accordion-left-padding);
52
+ background-color: var(--z-accordion-bg);
44
53
  column-gap: var(--space-unit);
45
54
  cursor: pointer;
46
55
  list-style: none;
@@ -109,21 +118,21 @@ summary::before,
109
118
 
110
119
  :host([is-disabled][highlight]) summary::before,
111
120
  :host([is-disabled][highlight][variant="background"]) .z-accordion-content::before {
112
- background-color: var(--color-text03);
121
+ background-color: var(--z-accordion-disabled-label-color);
113
122
  }
114
123
 
115
124
  summary > z-icon {
116
- fill: var(--color-text01);
125
+ fill: var(--z-accordion-label-color);
117
126
  }
118
127
 
119
128
  :host([is-disabled]) summary > z-icon {
120
- fill: var(--color-text03);
129
+ fill: var(--z-accordion-disabled-label-color);
121
130
  }
122
131
 
123
132
  .z-accordion-label {
124
- color: var(--color-text01);
133
+ color: var(--z-accordion-label-color);
125
134
  font-size: var(--font-size-3); /* for "small" and "big" sizes */
126
- font-weight: var(--font-sb);
135
+ font-weight: var(--z-accordion-label-font-weight);
127
136
  }
128
137
 
129
138
  :host([size="x-small"]) .z-accordion-label {
@@ -148,6 +157,8 @@ summary z-icon.z-accordion-chevron {
148
157
  .z-accordion-content {
149
158
  position: relative;
150
159
  padding: var(--space-unit) var(--space-unit) calc(var(--space-unit) * 2) calc(var(--space-unit) * 2);
160
+ background-color: var(--z-accordion-content-bg);
161
+ color: var(--z-accordion-content-fg);
151
162
  font-size: var(--font-size-2); /* for "small" and "big" sizes */
152
163
  }
153
164
 
@@ -164,11 +175,11 @@ summary z-icon.z-accordion-chevron {
164
175
  }
165
176
 
166
177
  :host([is-disabled]) .z-accordion-label {
167
- color: var(--color-text03);
178
+ color: var(--z-accordion-disabled-label-color);
168
179
  }
169
180
 
170
181
  :host([is-disabled]) .z-accordion-tags ::slotted(z-tag[slot="tag"]) {
171
- --z-tag-bg: var(--color-text03) !important;
182
+ --z-tag-bg: var(--z-accordion-disabled-label-color) !important;
172
183
  --z-tag-text-color: var(--color-text-inverse) !important;
173
184
  }
174
185
 
@@ -180,7 +191,7 @@ summary z-icon.z-accordion-chevron {
180
191
  }
181
192
 
182
193
  :host(:not([is-disabled])) summary:hover {
183
- background-color: var(--color-surface03);
194
+ background-color: var(--z-accordion-hover-color);
184
195
  }
185
196
 
186
197
  :host(:not([is-disabled])) summary:hover .z-accordion-label {
@@ -14,6 +14,10 @@ import { randomId } from "../../utils/utils";
14
14
  */
15
15
  export class ZBookCard {
16
16
  constructor() {
17
+ /**
18
+ * [optional] ISBN label
19
+ */
20
+ this.isbnLabel = "";
17
21
  this.isMobile = false;
18
22
  this.hasResources = false;
19
23
  this.showResources = false;
@@ -83,7 +87,7 @@ export class ZBookCard {
83
87
  return this.authors ? (h("div", { class: "authors", "aria-description": "Autori" }, this.authors)) : null;
84
88
  }
85
89
  renderIsbn() {
86
- return this.isbn ? (h("div", { class: "isbn" }, h("span", { class: "code", "aria-description": "ISBN edizione cartacea" }, this.isbn), h("span", { class: "label" }, " (ed. cartacea)"))) : null;
90
+ return this.isbn ? (h("div", { class: "isbn" }, h("span", { class: "code", "aria-description": `ISBN ${this.isbnLabel}` }, this.isbn), this.isbnLabel ? h("span", { class: "label" }, " ", this.isbnLabel) : null)) : null;
87
91
  }
88
92
  renderShowResources() {
89
93
  return (h("button", { class: "show-resources", "aria-label": `Risorse del libro ${this.operaTitle}`, "aria-expanded": this.showResources.toString(), "aria-controls": `resources-${this.id}`, onClick: () => this.toggleResources() }, this.showResources ? "Chiudi" : "Vedi tutto", h("z-icon", { name: this.showResources ? "chevron-up" : "chevron-down" })));
@@ -227,6 +231,24 @@ export class ZBookCard {
227
231
  "attribute": "isbn",
228
232
  "reflect": false
229
233
  },
234
+ "isbnLabel": {
235
+ "type": "string",
236
+ "mutable": false,
237
+ "complexType": {
238
+ "original": "string",
239
+ "resolved": "string",
240
+ "references": {}
241
+ },
242
+ "required": false,
243
+ "optional": false,
244
+ "docs": {
245
+ "tags": [],
246
+ "text": "[optional] ISBN label"
247
+ },
248
+ "attribute": "isbn-label",
249
+ "reflect": false,
250
+ "defaultValue": "\"\""
251
+ },
230
252
  "ribbon": {
231
253
  "type": "string",
232
254
  "mutable": false,
@@ -153,7 +153,7 @@ export class ZBreadcrumb {
153
153
  if (item.hasTooltip) {
154
154
  this.popoverEllipsisOpen = false;
155
155
  }
156
- }, innerHTML: mobile ? `<z-icon fill="color-link-primary" name="chevron-left"></z-icon> ${item.text}` : item.text })));
156
+ }, innerHTML: mobile ? `<z-icon fill="color-link-primary" name="chevron-left"></z-icon>${item.text}` : item.text })));
157
157
  }
158
158
  renderBreadcrumb() {
159
159
  return (h("nav", { ref: (val) => (this.wrapElement = val), "aria-label": "Breadcrumb", class: {
@@ -50,7 +50,15 @@ export class ZSkipToContent {
50
50
  "skip-to-content-visible": this.visible,
51
51
  } }, this.links.map((link, i) => {
52
52
  const id = `skip-to-content-${i}`;
53
- return (h("z-link", { id: id, underline: true, "aria-label": link.ariaLabel || link.label, class: `body-1-sb ${id == this.visibleLink ? "link-visible" : "link-invisible"}`, href: link.href, textcolor: this.variant === ThemeVariant.DARK ? "white" : "black", onFocus: () => (this.visibleLink = id), onClick: () => this.handleLinkClick(), onKeyUp: (e) => handleKeyboardSubmit(e, this.handleLinkClick.bind(this)) }, link.label));
53
+ return (h("div", { class: "link-container" }, h("a", { id: id, class: {
54
+ "body-1-sb": true,
55
+ "z-link": true,
56
+ "z-link-underline": true,
57
+ "z-link-white": this.variant === ThemeVariant.DARK,
58
+ "z-link-black": this.variant !== ThemeVariant.DARK,
59
+ "link-visible": id == this.visibleLink,
60
+ "link-invisible": id != this.visibleLink,
61
+ }, "aria-label": link.ariaLabel || link.label, href: link.href, onFocus: () => (this.visibleLink = id), onClick: () => this.handleLinkClick(), onKeyUp: (e) => handleKeyboardSubmit(e, this.handleLinkClick.bind(this)) }, link.label)));
54
62
  })));
55
63
  }
56
64
  static get is() { return "z-skip-to-content"; }