@zanichelli/albe-web-components 16.0.0 → 16.1.0-rc2

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 (176) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/dist/cjs/{index-5cc0f0ca.js → index-53f82896.js} +7 -3
  3. package/dist/cjs/index-53f82896.js.map +1 -0
  4. package/dist/cjs/{index-066b8da0.js → index-597156d1.js} +2 -2
  5. package/dist/cjs/{index-066b8da0.js.map → index-597156d1.js.map} +1 -1
  6. package/dist/cjs/{index-98822eac.js → index-9e2052c7.js} +3 -3
  7. package/dist/cjs/{index-98822eac.js.map → index-9e2052c7.js.map} +1 -1
  8. package/dist/cjs/index-bab7a651.js.map +1 -1
  9. package/dist/cjs/loader.cjs.js +1 -1
  10. package/dist/cjs/web-components-library.cjs.js +1 -1
  11. package/dist/cjs/z-app-header_12.cjs.entry.js +4 -5
  12. package/dist/cjs/z-app-header_12.cjs.entry.js.map +1 -1
  13. package/dist/cjs/z-card.cjs.entry.js +5 -5
  14. package/dist/cjs/z-card.cjs.entry.js.map +1 -1
  15. package/dist/cjs/z-select.cjs.entry.js +4 -4
  16. package/dist/cjs/z-select.cjs.entry.js.map +1 -1
  17. package/dist/cjs/z-table.cjs.entry.js +3 -3
  18. package/dist/cjs/z-td.cjs.entry.js +1 -1
  19. package/dist/cjs/z-th.cjs.entry.js +1 -1
  20. package/dist/cjs/z-tr.cjs.entry.js +3 -3
  21. package/dist/collection/beans/index.js.map +1 -1
  22. package/dist/collection/components/table/cells/z-td/index.js +30 -2
  23. package/dist/collection/components/table/cells/z-td/index.js.map +1 -1
  24. package/dist/collection/components/table/cells/z-td/styles.css +4 -0
  25. package/dist/collection/components/table/cells/z-th/styles.css +4 -0
  26. package/dist/collection/components/z-button-sort/test.e2e.js +16 -0
  27. package/dist/collection/components/z-button-sort/test.e2e.js.map +1 -1
  28. package/dist/collection/components/z-card/index.js +5 -5
  29. package/dist/collection/components/z-card/index.js.map +1 -1
  30. package/dist/collection/components/z-card/index.spec.js +26 -7
  31. package/dist/collection/components/z-card/index.spec.js.map +1 -1
  32. package/dist/collection/components/z-card/index.stories.js +17 -6
  33. package/dist/collection/components/z-card/index.stories.js.map +1 -1
  34. package/dist/collection/components/z-card/styles.css +10 -2
  35. package/dist/collection/components/z-chip/test.e2e.js +32 -0
  36. package/dist/collection/components/z-chip/test.e2e.js.map +1 -0
  37. package/dist/collection/components/z-combobox/test.e2e.js +45 -0
  38. package/dist/collection/components/z-combobox/test.e2e.js.map +1 -0
  39. package/dist/collection/components/z-searchbar/index.js +3 -22
  40. package/dist/collection/components/z-searchbar/index.js.map +1 -1
  41. package/dist/collection/components/z-searchbar/index.spec.js +1 -5
  42. package/dist/collection/components/z-searchbar/index.spec.js.map +1 -1
  43. package/dist/collection/components/z-searchbar/index.stories.js +131 -4
  44. package/dist/collection/components/z-searchbar/index.stories.js.map +1 -1
  45. package/dist/collection/components/z-searchbar/styles.css +94 -11
  46. package/dist/collection/components/z-searchbar/test.e2e.js +90 -0
  47. package/dist/collection/components/z-searchbar/test.e2e.js.map +1 -0
  48. package/dist/collection/components/z-select/index.js +3 -3
  49. package/dist/collection/components/z-select/index.js.map +1 -1
  50. package/dist/collection/components/z-select/index.spec.js +71 -0
  51. package/dist/collection/components/z-select/index.spec.js.map +1 -1
  52. package/dist/collection/components/z-select/index.stories.js +13 -0
  53. package/dist/collection/components/z-select/index.stories.js.map +1 -1
  54. package/dist/collection/components/z-select/styles.css +5 -0
  55. package/dist/collection/components/z-select/test.e2e.js +121 -0
  56. package/dist/collection/components/z-select/test.e2e.js.map +1 -0
  57. package/dist/collection/components/z-tag/styles.css +4 -0
  58. package/dist/collection/components/z-toggle-button/test.e2e.js +12 -0
  59. package/dist/collection/components/z-toggle-button/test.e2e.js.map +1 -0
  60. package/dist/collection/components/z-toggle-switch/test.e2e.js +22 -0
  61. package/dist/collection/components/z-toggle-switch/test.e2e.js.map +1 -0
  62. package/dist/components/index2.js.map +1 -1
  63. package/dist/components/index23.js +3 -5
  64. package/dist/components/index23.js.map +1 -1
  65. package/dist/components/index24.js +1 -1
  66. package/dist/components/index24.js.map +1 -1
  67. package/dist/components/z-card.js +5 -5
  68. package/dist/components/z-card.js.map +1 -1
  69. package/dist/components/z-select.js +24 -18
  70. package/dist/components/z-select.js.map +1 -1
  71. package/dist/components/z-td.js +8 -3
  72. package/dist/components/z-td.js.map +1 -1
  73. package/dist/components/z-th.js +1 -1
  74. package/dist/components/z-th.js.map +1 -1
  75. package/dist/esm/{index-18018bb5.js → index-7a28ff39.js} +2 -2
  76. package/dist/esm/{index-18018bb5.js.map → index-7a28ff39.js.map} +1 -1
  77. package/dist/esm/{index-292b4dd2.js → index-a52fd166.js} +8 -4
  78. package/dist/esm/index-a52fd166.js.map +1 -0
  79. package/dist/esm/index-b7dbacb4.js.map +1 -1
  80. package/dist/esm/{index-50bbb22e.js → index-ebb8a94a.js} +3 -3
  81. package/dist/esm/{index-50bbb22e.js.map → index-ebb8a94a.js.map} +1 -1
  82. package/dist/esm/loader.js +1 -1
  83. package/dist/esm/web-components-library.js +1 -1
  84. package/dist/esm/z-app-header_12.entry.js +4 -5
  85. package/dist/esm/z-app-header_12.entry.js.map +1 -1
  86. package/dist/esm/z-card.entry.js +5 -5
  87. package/dist/esm/z-card.entry.js.map +1 -1
  88. package/dist/esm/z-select.entry.js +4 -4
  89. package/dist/esm/z-select.entry.js.map +1 -1
  90. package/dist/esm/z-table.entry.js +3 -3
  91. package/dist/esm/z-td.entry.js +1 -1
  92. package/dist/esm/z-th.entry.js +1 -1
  93. package/dist/esm/z-tr.entry.js +3 -3
  94. package/dist/types/beans/index.d.ts +1 -0
  95. package/dist/types/components/table/cells/z-td/index.d.ts +5 -1
  96. package/dist/types/components/z-card/index.d.ts +3 -3
  97. package/dist/types/components/z-card/index.stories.d.ts +6 -1
  98. package/dist/types/components/z-searchbar/index.d.ts +0 -2
  99. package/dist/types/components/z-searchbar/index.stories.d.ts +64 -1
  100. package/dist/types/components.d.ts +10 -10
  101. package/dist/web-components-library/p-088a31dc.entry.js +2 -0
  102. package/dist/web-components-library/p-088a31dc.entry.js.map +1 -0
  103. package/dist/web-components-library/{p-ae94e377.js → p-191168fc.js} +2 -2
  104. package/dist/web-components-library/p-26b5c84d.js +2 -0
  105. package/{www/build/p-8de7ea6e.js.map → dist/web-components-library/p-26b5c84d.js.map} +1 -1
  106. package/dist/web-components-library/p-2a888e7e.entry.js +2 -0
  107. package/dist/web-components-library/{p-83eff308.entry.js → p-3f745628.entry.js} +2 -2
  108. package/dist/web-components-library/p-3f745628.entry.js.map +1 -0
  109. package/dist/web-components-library/p-57ecb5a7.entry.js +2 -0
  110. package/dist/web-components-library/p-57ecb5a7.entry.js.map +1 -0
  111. package/dist/web-components-library/p-6037cdf3.js.map +1 -1
  112. package/dist/web-components-library/p-6e252465.js +2 -0
  113. package/dist/web-components-library/p-6e252465.js.map +1 -0
  114. package/dist/web-components-library/p-8c125a3f.entry.js +2 -0
  115. package/dist/web-components-library/{p-c6b269ce.entry.js → p-a1d52560.entry.js} +2 -2
  116. package/dist/web-components-library/p-ed2c8484.entry.js +2 -0
  117. package/dist/web-components-library/web-components-library.esm.js +1 -1
  118. package/package.json +2 -1
  119. package/www/build/p-088a31dc.entry.js +2 -0
  120. package/www/build/p-088a31dc.entry.js.map +1 -0
  121. package/www/build/{p-ae94e377.js → p-191168fc.js} +2 -2
  122. package/www/build/p-215344e7.js +2 -0
  123. package/www/build/p-26b5c84d.js +2 -0
  124. package/{dist/web-components-library/p-8de7ea6e.js.map → www/build/p-26b5c84d.js.map} +1 -1
  125. package/www/build/p-2a888e7e.entry.js +2 -0
  126. package/www/build/{p-83eff308.entry.js → p-3f745628.entry.js} +2 -2
  127. package/www/build/p-3f745628.entry.js.map +1 -0
  128. package/www/build/p-57ecb5a7.entry.js +2 -0
  129. package/www/build/p-57ecb5a7.entry.js.map +1 -0
  130. package/www/build/p-6037cdf3.js.map +1 -1
  131. package/www/build/p-6e252465.js +2 -0
  132. package/www/build/p-6e252465.js.map +1 -0
  133. package/www/build/p-8c125a3f.entry.js +2 -0
  134. package/www/build/{p-c6b269ce.entry.js → p-a1d52560.entry.js} +2 -2
  135. package/www/build/p-ed2c8484.entry.js +2 -0
  136. package/www/build/web-components-library.esm.js +1 -1
  137. package/www/index.html +1 -1
  138. package/dist/cjs/index-5cc0f0ca.js.map +0 -1
  139. package/dist/collection/components/z-logo/test.e2e.js +0 -32
  140. package/dist/collection/components/z-logo/test.e2e.js.map +0 -1
  141. package/dist/collection/snowflakes/myz/list/z-myz-list-item/test.e2e.js +0 -35
  142. package/dist/collection/snowflakes/myz/list/z-myz-list-item/test.e2e.js.map +0 -1
  143. package/dist/esm/index-292b4dd2.js.map +0 -1
  144. package/dist/web-components-library/p-18690383.entry.js +0 -2
  145. package/dist/web-components-library/p-18690383.entry.js.map +0 -1
  146. package/dist/web-components-library/p-1edbac5f.entry.js +0 -2
  147. package/dist/web-components-library/p-5a5481be.entry.js +0 -2
  148. package/dist/web-components-library/p-5a5481be.entry.js.map +0 -1
  149. package/dist/web-components-library/p-83eff308.entry.js.map +0 -1
  150. package/dist/web-components-library/p-8de7ea6e.js +0 -2
  151. package/dist/web-components-library/p-9f2a7cf0.js +0 -2
  152. package/dist/web-components-library/p-9f2a7cf0.js.map +0 -1
  153. package/dist/web-components-library/p-bf2a057d.entry.js +0 -2
  154. package/dist/web-components-library/p-e0323da3.entry.js +0 -2
  155. package/www/build/p-18690383.entry.js +0 -2
  156. package/www/build/p-18690383.entry.js.map +0 -1
  157. package/www/build/p-1edbac5f.entry.js +0 -2
  158. package/www/build/p-5a5481be.entry.js +0 -2
  159. package/www/build/p-5a5481be.entry.js.map +0 -1
  160. package/www/build/p-774b449d.js +0 -2
  161. package/www/build/p-83eff308.entry.js.map +0 -1
  162. package/www/build/p-8de7ea6e.js +0 -2
  163. package/www/build/p-9f2a7cf0.js +0 -2
  164. package/www/build/p-9f2a7cf0.js.map +0 -1
  165. package/www/build/p-bf2a057d.entry.js +0 -2
  166. package/www/build/p-e0323da3.entry.js +0 -2
  167. /package/dist/web-components-library/{p-ae94e377.js.map → p-191168fc.js.map} +0 -0
  168. /package/dist/web-components-library/{p-1edbac5f.entry.js.map → p-2a888e7e.entry.js.map} +0 -0
  169. /package/dist/web-components-library/{p-bf2a057d.entry.js.map → p-8c125a3f.entry.js.map} +0 -0
  170. /package/dist/web-components-library/{p-c6b269ce.entry.js.map → p-a1d52560.entry.js.map} +0 -0
  171. /package/dist/web-components-library/{p-e0323da3.entry.js.map → p-ed2c8484.entry.js.map} +0 -0
  172. /package/www/build/{p-ae94e377.js.map → p-191168fc.js.map} +0 -0
  173. /package/www/build/{p-1edbac5f.entry.js.map → p-2a888e7e.entry.js.map} +0 -0
  174. /package/www/build/{p-bf2a057d.entry.js.map → p-8c125a3f.entry.js.map} +0 -0
  175. /package/www/build/{p-c6b269ce.entry.js.map → p-a1d52560.entry.js.map} +0 -0
  176. /package/www/build/{p-e0323da3.entry.js.map → p-ed2c8484.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"test.e2e.js","sourceRoot":"","sources":["../../../../src/components/z-button-sort/test.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAEjD,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;IAClE,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,EAAC,IAAI,EAAE,iCAAiC,EAAC,CAAC,CAAC;IACzE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IAE5D,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IAClB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,CAAC,UAAU,CAAC,CAAC,yBAAyB,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;IAE9D,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IAClB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,CAAC,UAAU,CAAC,CAAC,yBAAyB,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,CAAC,CAAC;AACjE,CAAC,CAAC,CAAC","sourcesContent":["import {newE2EPage} from \"@stencil/core/testing\";\n\nit(\"Test ZButtonSort should emit buttonSortClick event\", async () => {\n const page = await newE2EPage({html: \"<z-button-sort></z-button-sort>\"});\n const btn = await page.find(\"z-button-sort >>> button\");\n const clickEvent = await page.spyOnEvent(\"buttonSortClick\");\n\n await btn.click();\n await page.waitForChanges();\n expect(clickEvent).toHaveReceivedEventDetail({sortAsc: true});\n\n await btn.click();\n await page.waitForChanges();\n expect(clickEvent).toHaveReceivedEventDetail({sortAsc: false});\n});\n"]}
1
+ {"version":3,"file":"test.e2e.js","sourceRoot":"","sources":["../../../../src/components/z-button-sort/test.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAEjD,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;IAClE,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,EAAC,IAAI,EAAE,iCAAiC,EAAC,CAAC,CAAC;IACzE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IAE5D,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IAClB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,CAAC,UAAU,CAAC,CAAC,yBAAyB,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;IAE9D,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IAClB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,CAAC,UAAU,CAAC,CAAC,yBAAyB,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,CAAC,CAAC;AACjE,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;IAC7E,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC;QAC5B,IAAI,EAAE,2GAA2G;KAClH,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IAE1E,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IAClB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,CAAC,UAAU,CAAC,CAAC,yBAAyB,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,CAAC,CAAC;IAC/D,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAE1C,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IAClB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,CAAC,UAAU,CAAC,CAAC,yBAAyB,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;IAC9D,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AAC3C,CAAC,CAAC,CAAC","sourcesContent":["import {newE2EPage} from \"@stencil/core/testing\";\n\nit(\"Test ZButtonSort should emit buttonSortClick event\", async () => {\n const page = await newE2EPage({html: \"<z-button-sort></z-button-sort>\"});\n const btn = await page.find(\"z-button-sort >>> button\");\n const clickEvent = await page.spyOnEvent(\"buttonSortClick\");\n\n await btn.click();\n await page.waitForChanges();\n expect(clickEvent).toHaveReceivedEventDetail({sortAsc: true});\n\n await btn.click();\n await page.waitForChanges();\n expect(clickEvent).toHaveReceivedEventDetail({sortAsc: false});\n});\n\nit(\"changes button label on click based on sortAsc event property\", async () => {\n const page = await newE2EPage({\n html: '<z-button-sort label=\"ascending\" desclabel=\"descending\" sortasc=\"true\" isselected=\"true\"></z-button-sort>',\n });\n const btn = await page.find(\"z-button-sort >>> button\");\n const clickEvent = await page.spyOnEvent(\"buttonSortClick\");\n const btnText = await page.find(\"z-button-sort >>> button span.ellipsis\");\n\n await btn.click();\n await page.waitForChanges();\n expect(clickEvent).toHaveReceivedEventDetail({sortAsc: false});\n expect(btnText).toEqualText(\"descending\");\n\n await btn.click();\n await page.waitForChanges();\n expect(clickEvent).toHaveReceivedEventDetail({sortAsc: true});\n expect(btnText).toEqualText(\"ascending\");\n});\n"]}
@@ -37,20 +37,20 @@ export class ZCard {
37
37
  ];
38
38
  }
39
39
  /**
40
- * Template for the content div.
40
+ * Template for the content.
41
41
  */
42
- renderContentDiv() {
42
+ renderContent() {
43
43
  return (h("div", { class: "content" }, h("slot", { name: "metadata" }), h("slot", { name: "title" }), h("slot", { name: "text" }), h("div", { class: "actions" }, h("slot", { name: "action" }))));
44
44
  }
45
45
  render() {
46
46
  if (this.variant === CardVariant.TEXT) {
47
- return h(Host, null, this.renderContentDiv());
47
+ return h(Host, null, this.renderContent());
48
48
  }
49
49
  if (this.variant === CardVariant.OVERLAY || this.hasCoverImage) {
50
50
  return (h(Host, null, h("div", { class: "cover-container" }, this.hasCoverImage && [
51
51
  h("slot", { name: "cover" }),
52
52
  this.variant !== CardVariant.OVERLAY && this.coverIcon && h("z-icon", { name: this.coverIcon }),
53
- ], !this.hasCoverImage && h("div", { class: "color-cover" })), this.renderContentDiv()));
53
+ ], !this.hasCoverImage && h("div", { class: "color-cover" })), this.renderContent()));
54
54
  }
55
55
  return h(Host, null, this.renderColorCoverCard());
56
56
  }
@@ -138,7 +138,7 @@ export class ZCard {
138
138
  "optional": false,
139
139
  "docs": {
140
140
  "tags": [],
141
- "text": "Enable 'clickable' style like hover and focus style."
141
+ "text": "Enable \"clickable\" styles like hover background and cursor, focus shadow on the whole card, etc."
142
142
  },
143
143
  "attribute": "clickable",
144
144
  "reflect": true,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/z-card/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAC,MAAM,eAAe,CAAC;AACvE,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAExC;;;;;;;;;;;;;;GAcG;AAMH,MAAM,OAAO,KAAK;;;;0BAeH,KAAK;yBAIN,KAAK;;;IAOjB,iBAAiB;QACf,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAC1E,CAAC;IAED;;;OAGG;IACK,oBAAoB;QAC1B,OAAO;YACL,WAAK,KAAK,EAAC,iBAAiB;gBAC1B,WAAK,KAAK,EAAC,aAAa;oBACtB,WAAK,KAAK,EAAC,eAAe;wBACxB,YAAM,IAAI,EAAC,UAAU,GAAQ;wBAC7B,YAAM,IAAI,EAAC,OAAO,GAAQ,CACtB,CACF,CACF;YACN,WAAK,KAAK,EAAC,SAAS;gBAClB,YAAM,IAAI,EAAC,MAAM,GAAQ;gBACzB,WAAK,KAAK,EAAC,SAAS;oBAClB,YAAM,IAAI,EAAC,QAAQ,GAAQ,CACvB,CACF;SACP,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,gBAAgB;QACtB,OAAO,CACL,WAAK,KAAK,EAAC,SAAS;YAClB,YAAM,IAAI,EAAC,UAAU,GAAQ;YAC7B,YAAM,IAAI,EAAC,OAAO,GAAQ;YAC1B,YAAM,IAAI,EAAC,MAAM,GAAQ;YACzB,WAAK,KAAK,EAAC,SAAS;gBAClB,YAAM,IAAI,EAAC,QAAQ,GAAQ,CACvB,CACF,CACP,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;YACtC,OAAO,EAAC,IAAI,QAAE,IAAI,CAAC,gBAAgB,EAAE,CAAQ,CAAC;QAChD,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/D,OAAO,CACL,EAAC,IAAI;gBACH,WAAK,KAAK,EAAC,iBAAiB;oBACzB,IAAI,CAAC,aAAa,IAAI;wBACrB,YAAM,IAAI,EAAC,OAAO,GAAQ;wBAC1B,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,IAAI,cAAQ,IAAI,EAAE,IAAI,CAAC,SAAS,GAAW;qBAClG;oBACA,CAAC,IAAI,CAAC,aAAa,IAAI,WAAK,KAAK,EAAC,aAAa,GAAO,CACnD;gBACL,IAAI,CAAC,gBAAgB,EAAE,CACnB,CACR,CAAC;QACJ,CAAC;QAED,OAAO,EAAC,IAAI,QAAE,IAAI,CAAC,oBAAoB,EAAE,CAAQ,CAAC;IACpD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import {Component, Element, Host, Prop, State, h} from \"@stencil/core\";\nimport {CardVariant} from \"../../beans\";\n\n/**\n * ZCard component.\n * @cssprop --aspect-ratio - Cover aspect ratio. Default: `1.62`\n * @cssprop --z-card--border-color - Default: `var(--gray200)`\n * @cssprop --z-card--color-cover-background - Cover color. Default: `var(--color-surface01)`\n * @cssprop --z-card--text-background - Background color for the `text` variant. Default: `var(--color-surface01)`\n * @cssprop --z-card--text-border-radius - Default: `none`\n * @cssprop --z-card--text-border - Configure CSS `border`. Default: `none`\n * @cssprop --z-card--text-padding - Configure CSS `padding`. Default: `none`\n * @slot cover - Image cover\n * @slot metadata - Metadata\n * @slot title - Title\n * @slot text - Text content\n * @slot action - Actions\n */\n@Component({\n tag: \"z-card\",\n styleUrl: \"styles.css\",\n shadow: true,\n})\nexport class ZCard {\n /**\n * Card variant.\n * Can be one of \"text\", \"border\", \"shadow\", \"overlay\".\n * Leave it undefined for the default card.\n */\n @Prop({reflect: true})\n variant: CardVariant;\n\n /** Name of the icon to place over the image cover */\n @Prop()\n coverIcon: string;\n\n /** Enable shadow. Default: false. */\n @Prop({reflect: true})\n showShadow = false;\n\n /** Enable 'clickable' style like hover and focus style. */\n @Prop({reflect: true})\n clickable = false;\n\n @Element() host: HTMLZCardElement;\n\n @State()\n hasCoverImage: boolean;\n\n componentWillLoad(): void {\n this.hasCoverImage = this.host.querySelector('[slot=\"cover\"]') !== null;\n }\n\n /**\n * Template for a card without image cover.\n * A colored background replaces the image and some data is moved over it.\n */\n private renderColorCoverCard(): HTMLDivElement[] {\n return [\n <div class=\"cover-container\">\n <div class=\"color-cover\">\n <div class=\"cover-content\">\n <slot name=\"metadata\"></slot>\n <slot name=\"title\"></slot>\n </div>\n </div>\n </div>,\n <div class=\"content\">\n <slot name=\"text\"></slot>\n <div class=\"actions\">\n <slot name=\"action\"></slot>\n </div>\n </div>,\n ];\n }\n\n /**\n * Template for the content div.\n */\n private renderContentDiv(): HTMLDivElement {\n return (\n <div class=\"content\">\n <slot name=\"metadata\"></slot>\n <slot name=\"title\"></slot>\n <slot name=\"text\"></slot>\n <div class=\"actions\">\n <slot name=\"action\"></slot>\n </div>\n </div>\n );\n }\n\n render(): HTMLZCardElement {\n if (this.variant === CardVariant.TEXT) {\n return <Host>{this.renderContentDiv()}</Host>;\n }\n\n if (this.variant === CardVariant.OVERLAY || this.hasCoverImage) {\n return (\n <Host>\n <div class=\"cover-container\">\n {this.hasCoverImage && [\n <slot name=\"cover\"></slot>,\n this.variant !== CardVariant.OVERLAY && this.coverIcon && <z-icon name={this.coverIcon}></z-icon>,\n ]}\n {!this.hasCoverImage && <div class=\"color-cover\"></div>}\n </div>\n {this.renderContentDiv()}\n </Host>\n );\n }\n\n return <Host>{this.renderColorCoverCard()}</Host>;\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/z-card/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAC,MAAM,eAAe,CAAC;AACvE,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAExC;;;;;;;;;;;;;;GAcG;AAMH,MAAM,OAAO,KAAK;;;;0BAeH,KAAK;yBAIN,KAAK;;;IAOjB,iBAAiB;QACf,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAC1E,CAAC;IAED;;;OAGG;IACK,oBAAoB;QAC1B,OAAO;YACL,WAAK,KAAK,EAAC,iBAAiB;gBAC1B,WAAK,KAAK,EAAC,aAAa;oBACtB,WAAK,KAAK,EAAC,eAAe;wBACxB,YAAM,IAAI,EAAC,UAAU,GAAQ;wBAC7B,YAAM,IAAI,EAAC,OAAO,GAAQ,CACtB,CACF,CACF;YACN,WAAK,KAAK,EAAC,SAAS;gBAClB,YAAM,IAAI,EAAC,MAAM,GAAQ;gBACzB,WAAK,KAAK,EAAC,SAAS;oBAClB,YAAM,IAAI,EAAC,QAAQ,GAAQ,CACvB,CACF;SACP,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,aAAa;QACnB,OAAO,CACL,WAAK,KAAK,EAAC,SAAS;YAClB,YAAM,IAAI,EAAC,UAAU,GAAQ;YAC7B,YAAM,IAAI,EAAC,OAAO,GAAQ;YAC1B,YAAM,IAAI,EAAC,MAAM,GAAQ;YACzB,WAAK,KAAK,EAAC,SAAS;gBAClB,YAAM,IAAI,EAAC,QAAQ,GAAQ,CACvB,CACF,CACP,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;YACtC,OAAO,EAAC,IAAI,QAAE,IAAI,CAAC,aAAa,EAAE,CAAQ,CAAC;QAC7C,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/D,OAAO,CACL,EAAC,IAAI;gBACH,WAAK,KAAK,EAAC,iBAAiB;oBACzB,IAAI,CAAC,aAAa,IAAI;wBACrB,YAAM,IAAI,EAAC,OAAO,GAAQ;wBAC1B,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,IAAI,cAAQ,IAAI,EAAE,IAAI,CAAC,SAAS,GAAW;qBAClG;oBACA,CAAC,IAAI,CAAC,aAAa,IAAI,WAAK,KAAK,EAAC,aAAa,GAAO,CACnD;gBACL,IAAI,CAAC,aAAa,EAAE,CAChB,CACR,CAAC;QACJ,CAAC;QAED,OAAO,EAAC,IAAI,QAAE,IAAI,CAAC,oBAAoB,EAAE,CAAQ,CAAC;IACpD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import {Component, Element, Host, Prop, State, h} from \"@stencil/core\";\nimport {CardVariant} from \"../../beans\";\n\n/**\n * ZCard component.\n * @cssprop --aspect-ratio - Cover aspect ratio. Default: `1.62`\n * @cssprop --z-card--border-color - Default: `var(--gray200)`\n * @cssprop --z-card--color-cover-background - Cover color. Default: `var(--color-surface01)`\n * @cssprop --z-card--text-background - Background color for the `text` variant. Default: `var(--color-surface01)`\n * @cssprop --z-card--text-border-radius - Default: `none`\n * @cssprop --z-card--text-border - Configure CSS `border`. Default: `none`\n * @cssprop --z-card--text-padding - Configure CSS `padding`. Default: `none`\n * @slot cover - Image cover\n * @slot metadata - Metadata\n * @slot title - Title\n * @slot text - Text content\n * @slot action - Actions\n */\n@Component({\n tag: \"z-card\",\n styleUrl: \"styles.css\",\n shadow: true,\n})\nexport class ZCard {\n /**\n * Card variant.\n * Can be one of \"text\", \"border\", \"shadow\", \"overlay\".\n * Leave it undefined for the default card.\n */\n @Prop({reflect: true})\n variant: CardVariant;\n\n /** Name of the icon to place over the image cover */\n @Prop()\n coverIcon: string;\n\n /** Enable shadow. Default: false. */\n @Prop({reflect: true})\n showShadow = false;\n\n /** Enable \"clickable\" styles like hover background and cursor, focus shadow on the whole card, etc. */\n @Prop({reflect: true})\n clickable = false;\n\n @Element() host: HTMLZCardElement;\n\n @State()\n hasCoverImage: boolean;\n\n componentWillLoad(): void {\n this.hasCoverImage = this.host.querySelector('[slot=\"cover\"]') !== null;\n }\n\n /**\n * Template for a card without image cover.\n * A colored background replaces the image and some data is moved over it.\n */\n private renderColorCoverCard(): HTMLDivElement[] {\n return [\n <div class=\"cover-container\">\n <div class=\"color-cover\">\n <div class=\"cover-content\">\n <slot name=\"metadata\"></slot>\n <slot name=\"title\"></slot>\n </div>\n </div>\n </div>,\n <div class=\"content\">\n <slot name=\"text\"></slot>\n <div class=\"actions\">\n <slot name=\"action\"></slot>\n </div>\n </div>,\n ];\n }\n\n /**\n * Template for the content.\n */\n private renderContent(): HTMLDivElement {\n return (\n <div class=\"content\">\n <slot name=\"metadata\"></slot>\n <slot name=\"title\"></slot>\n <slot name=\"text\"></slot>\n <div class=\"actions\">\n <slot name=\"action\"></slot>\n </div>\n </div>\n );\n }\n\n render(): HTMLZCardElement {\n if (this.variant === CardVariant.TEXT) {\n return <Host>{this.renderContent()}</Host>;\n }\n\n if (this.variant === CardVariant.OVERLAY || this.hasCoverImage) {\n return (\n <Host>\n <div class=\"cover-container\">\n {this.hasCoverImage && [\n <slot name=\"cover\"></slot>,\n this.variant !== CardVariant.OVERLAY && this.coverIcon && <z-icon name={this.coverIcon}></z-icon>,\n ]}\n {!this.hasCoverImage && <div class=\"color-cover\"></div>}\n </div>\n {this.renderContent()}\n </Host>\n );\n }\n\n return <Host>{this.renderColorCoverCard()}</Host>;\n }\n}\n"]}
@@ -107,15 +107,14 @@ describe("Suite test ZCard", () => {
107
107
  </z-card>
108
108
  `);
109
109
  });
110
- it("Test ZCard text variant", async () => {
110
+ it("Test render ZCard text variant", async () => {
111
111
  const page = await newSpecPage({
112
112
  components: [ZCard],
113
113
  html: `
114
114
  <z-card clickable variant="text" showshadow style="border: 1px solid black;">
115
115
  <h2 class="body-5" slot="metadata">metadata</h2>
116
116
  <h3 slot="title">Card title</h3>
117
- <p class="body-3" slot="text">Some description for the content of the card. </p>
118
-
117
+ <p class="body-3" slot="text">Some description for the content of the card.</p>
119
118
  <z-icon name="share" slot="action" fill="color-primary01"></z-icon>
120
119
  <z-icon name="delete" slot="action" fill="color-primary01"></z-icon>
121
120
  </z-card>
@@ -135,16 +134,16 @@ describe("Suite test ZCard", () => {
135
134
  </mock:shadow-root>
136
135
  <h2 class="body-5" slot="metadata">metadata</h2>
137
136
  <h3 slot="title">Card title</h3>
138
- <p class="body-3" slot="text">Some description for the content of the card. </p>
137
+ <p class="body-3" slot="text">Some description for the content of the card.</p>
139
138
  <z-icon name="share" slot="action" fill="color-primary01"></z-icon>
140
139
  <z-icon name="delete" slot="action" fill="color-primary01"></z-icon>
141
140
  </z-card>
142
141
  `);
143
142
  });
144
- it("Test ZCard clickable click", async () => {
143
+ it("Test ZCard click", async () => {
145
144
  const page = await newSpecPage({
146
145
  components: [ZCard],
147
- html: `<z-card>
146
+ html: `<z-card clickable>
148
147
  <h2 class="body-5" slot="metadata">metadata</h2>
149
148
  <button id="btn" slot="title">Card title</button>
150
149
  <p class="body-3" slot="text">Description</p>
@@ -152,9 +151,29 @@ describe("Suite test ZCard", () => {
152
151
  });
153
152
  const btn = page.body.querySelector("#btn");
154
153
  const buttonClickedCallback = jest.fn();
155
- page.doc.addEventListener("click", buttonClickedCallback);
154
+ btn.addEventListener("click", buttonClickedCallback);
156
155
  btn.click();
157
156
  expect(buttonClickedCallback).toHaveBeenCalled();
158
157
  });
158
+ it("Should trigger the slotted action listener but not the one for ZCard", async () => {
159
+ const page = await newSpecPage({
160
+ components: [ZCard],
161
+ html: `<z-card>
162
+ <h2 class="body-5" slot="metadata">metadata</h2>
163
+ <button id="btn" slot="title">Card title</button>
164
+ <p class="body-3" slot="text">Description</p>
165
+ <button id="action-btn" slot="action"><z-icon name="gear" /></button>
166
+ </z-card>`,
167
+ });
168
+ const btn = page.body.querySelector("#btn");
169
+ const onCardClick = jest.fn();
170
+ const action = page.body.querySelector("#action-btn");
171
+ const onActionClick = jest.fn();
172
+ btn.addEventListener("click", onCardClick);
173
+ action.addEventListener("click", onActionClick);
174
+ action.click();
175
+ expect(onActionClick).toHaveBeenCalled();
176
+ expect(onCardClick).not.toHaveBeenCalled();
177
+ });
159
178
  });
160
179
  //# sourceMappingURL=index.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../../../../src/components/z-card/index.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAE9B,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,KAAK,CAAC;YACnB,IAAI,EAAE;;;;;;;gBAOI;SACX,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;KAsB7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,KAAK,CAAC;YACnB,IAAI,EAAE;;;;;;;gBAOI;SACX,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;KAuB7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,KAAK,CAAC;YACnB,IAAI,EAAE;;;;gBAII;SACX,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;KAsB7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,KAAK,CAAC;YACnB,IAAI,EAAE;;;;;;;;;OASL;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;;KAkB7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,KAAK,CAAC;YACnB,IAAI,EAAE;;;;gBAII;SACX,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAsB,CAAC;QACjE,MAAM,qBAAqB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;QAC1D,GAAG,CAAC,KAAK,EAAE,CAAC;QAEZ,MAAM,CAAC,qBAAqB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import {newSpecPage} from \"@stencil/core/testing\";\n\nimport {ZCard} from \"./index\";\n\ndescribe(\"Suite test ZCard\", () => {\n it(\"Test render ZCard with cover\", async () => {\n const page = await newSpecPage({\n components: [ZCard],\n html: `<z-card>\n <img slot=\"cover\" src=\"https://i.pinimg.com/originals/b9/fc/7e/b9fc7e6b2dd2ca128bcc3412e68994f0.jpg\" />\n <h2 class=\"body-5\" slot=\"metadata\">metadata</h2>\n <h3 slot=\"title\">Card title</h3>\n <p class=\"body-3\" slot=\"text\">Description</p>\n <z-icon name=\"share\" slot=\"action\"></z-icon>\n <z-icon name=\"delete\" slot=\"action\"></z-icon>\n </z-card>`,\n });\n\n expect(page.root).toEqualHtml(`\n <z-card>\n <mock:shadow-root>\n <div class=\"cover-container\">\n <slot name=\"cover\"></slot>\n </div>\n <div class=\"content\">\n <slot name=\"metadata\"></slot>\n <slot name=\"title\"></slot>\n <slot name=\"text\"></slot>\n <div class=\"actions\">\n <slot name=\"action\"></slot>\n </div>\n </div>\n </mock:shadow-root>\n <img slot=\"cover\" src=\"https://i.pinimg.com/originals/b9/fc/7e/b9fc7e6b2dd2ca128bcc3412e68994f0.jpg\" />\n <h2 class=\"body-5\" slot=\"metadata\">metadata</h2>\n <h3 slot=\"title\">Card title</h3>\n <p class=\"body-3\" slot=\"text\">Description</p>\n <z-icon name=\"share\" slot=\"action\"></z-icon>\n <z-icon name=\"delete\" slot=\"action\"></z-icon>\n </z-card>\n `);\n });\n\n it(\"Test render ZCard with cover and icon\", async () => {\n const page = await newSpecPage({\n components: [ZCard],\n html: `<z-card cover-icon=\"play-filled\">\n <img slot=\"cover\" src=\"https://i.pinimg.com/originals/b9/fc/7e/b9fc7e6b2dd2ca128bcc3412e68994f0.jpg\" />\n <h2 class=\"body-5\" slot=\"metadata\">metadata</h2>\n <h3 slot=\"title\">Card title</h3>\n <p class=\"body-3\" slot=\"text\">Description</p>\n <z-icon name=\"share\" slot=\"action\"></z-icon>\n <z-icon name=\"delete\" slot=\"action\"></z-icon>\n </z-card>`,\n });\n\n expect(page.root).toEqualHtml(`\n <z-card cover-icon=\"play-filled\">\n <mock:shadow-root>\n <div class=\"cover-container\">\n <slot name=\"cover\"></slot>\n <z-icon name=\"play-filled\"></z-icon>\n </div>\n <div class=\"content\">\n <slot name=\"metadata\"></slot>\n <slot name=\"title\"></slot>\n <slot name=\"text\"></slot>\n <div class=\"actions\">\n <slot name=\"action\"></slot>\n </div>\n </div>\n </mock:shadow-root>\n <img slot=\"cover\" src=\"https://i.pinimg.com/originals/b9/fc/7e/b9fc7e6b2dd2ca128bcc3412e68994f0.jpg\" />\n <h2 class=\"body-5\" slot=\"metadata\">metadata</h2>\n <h3 slot=\"title\">Card title</h3>\n <p class=\"body-3\" slot=\"text\">Description</p>\n <z-icon name=\"share\" slot=\"action\"></z-icon>\n <z-icon name=\"delete\" slot=\"action\"></z-icon>\n </z-card>\n `);\n });\n\n it(\"Test render ZCard with color cover\", async () => {\n const page = await newSpecPage({\n components: [ZCard],\n html: `<z-card>\n <h2 class=\"body-5\" slot=\"metadata\">metadata</h2>\n <h3 slot=\"title\">Card title</h3>\n <p class=\"body-3\" slot=\"text\">Description</p>\n </z-card>`,\n });\n\n expect(page.root).toEqualHtml(`\n <z-card>\n <mock:shadow-root>\n <div class=\"cover-container\">\n <div class=\"color-cover\">\n <div class=\"cover-content\">\n <slot name=\"metadata\"></slot>\n <slot name=\"title\"></slot>\n </div>\n </div>\n </div>\n <div class=\"content\">\n <slot name=\"text\"></slot>\n <div class=\"actions\">\n <slot name=\"action\"></slot>\n </div>\n </div>\n </mock:shadow-root>\n <h2 class=\"body-5\" slot=\"metadata\">metadata</h2>\n <h3 slot=\"title\">Card title</h3>\n <p class=\"body-3\" slot=\"text\">Description</p>\n </z-card>\n `);\n });\n\n it(\"Test ZCard text variant\", async () => {\n const page = await newSpecPage({\n components: [ZCard],\n html: `\n <z-card clickable variant=\"text\" showshadow style=\"border: 1px solid black;\">\n <h2 class=\"body-5\" slot=\"metadata\">metadata</h2>\n <h3 slot=\"title\">Card title</h3>\n <p class=\"body-3\" slot=\"text\">Some description for the content of the card. </p>\n\n <z-icon name=\"share\" slot=\"action\" fill=\"color-primary01\"></z-icon>\n <z-icon name=\"delete\" slot=\"action\" fill=\"color-primary01\"></z-icon>\n </z-card>\n `,\n });\n\n expect(page.root).toEqualHtml(`\n <z-card clickable variant=\"text\" showshadow style=\"border: 1px solid black;\">\n <mock:shadow-root>\n <div class=\"content\">\n <slot name=\"metadata\"></slot>\n <slot name=\"title\"></slot>\n <slot name=\"text\"></slot>\n <div class=\"actions\">\n <slot name=\"action\"></slot>\n </div>\n </div>\n </mock:shadow-root>\n <h2 class=\"body-5\" slot=\"metadata\">metadata</h2>\n <h3 slot=\"title\">Card title</h3>\n <p class=\"body-3\" slot=\"text\">Some description for the content of the card. </p>\n <z-icon name=\"share\" slot=\"action\" fill=\"color-primary01\"></z-icon>\n <z-icon name=\"delete\" slot=\"action\" fill=\"color-primary01\"></z-icon>\n </z-card>\n `);\n });\n\n it(\"Test ZCard clickable click\", async () => {\n const page = await newSpecPage({\n components: [ZCard],\n html: `<z-card>\n <h2 class=\"body-5\" slot=\"metadata\">metadata</h2>\n <button id=\"btn\" slot=\"title\">Card title</button>\n <p class=\"body-3\" slot=\"text\">Description</p>\n </z-card>`,\n });\n\n const btn = page.body.querySelector(\"#btn\") as HTMLButtonElement;\n const buttonClickedCallback = jest.fn();\n page.doc.addEventListener(\"click\", buttonClickedCallback);\n btn.click();\n\n expect(buttonClickedCallback).toHaveBeenCalled();\n });\n});\n"]}
1
+ {"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../../../../src/components/z-card/index.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import {newSpecPage} from \"@stencil/core/testing\";\n\nimport {ZCard} from \"./index\";\n\ndescribe(\"Suite test ZCard\", () => {\n it(\"Test render ZCard with cover\", async () => {\n const page = await newSpecPage({\n components: [ZCard],\n html: `<z-card>\n <img slot=\"cover\" src=\"https://i.pinimg.com/originals/b9/fc/7e/b9fc7e6b2dd2ca128bcc3412e68994f0.jpg\" />\n <h2 class=\"body-5\" slot=\"metadata\">metadata</h2>\n <h3 slot=\"title\">Card title</h3>\n <p class=\"body-3\" slot=\"text\">Description</p>\n <z-icon name=\"share\" slot=\"action\"></z-icon>\n <z-icon name=\"delete\" slot=\"action\"></z-icon>\n </z-card>`,\n });\n\n expect(page.root).toEqualHtml(`\n <z-card>\n <mock:shadow-root>\n <div class=\"cover-container\">\n <slot name=\"cover\"></slot>\n </div>\n <div class=\"content\">\n <slot name=\"metadata\"></slot>\n <slot name=\"title\"></slot>\n <slot name=\"text\"></slot>\n <div class=\"actions\">\n <slot name=\"action\"></slot>\n </div>\n </div>\n </mock:shadow-root>\n <img slot=\"cover\" src=\"https://i.pinimg.com/originals/b9/fc/7e/b9fc7e6b2dd2ca128bcc3412e68994f0.jpg\" />\n <h2 class=\"body-5\" slot=\"metadata\">metadata</h2>\n <h3 slot=\"title\">Card title</h3>\n <p class=\"body-3\" slot=\"text\">Description</p>\n <z-icon name=\"share\" slot=\"action\"></z-icon>\n <z-icon name=\"delete\" slot=\"action\"></z-icon>\n </z-card>\n `);\n });\n\n it(\"Test render ZCard with cover and icon\", async () => {\n const page = await newSpecPage({\n components: [ZCard],\n html: `<z-card cover-icon=\"play-filled\">\n <img slot=\"cover\" src=\"https://i.pinimg.com/originals/b9/fc/7e/b9fc7e6b2dd2ca128bcc3412e68994f0.jpg\" />\n <h2 class=\"body-5\" slot=\"metadata\">metadata</h2>\n <h3 slot=\"title\">Card title</h3>\n <p class=\"body-3\" slot=\"text\">Description</p>\n <z-icon name=\"share\" slot=\"action\"></z-icon>\n <z-icon name=\"delete\" slot=\"action\"></z-icon>\n </z-card>`,\n });\n\n expect(page.root).toEqualHtml(`\n <z-card cover-icon=\"play-filled\">\n <mock:shadow-root>\n <div class=\"cover-container\">\n <slot name=\"cover\"></slot>\n <z-icon name=\"play-filled\"></z-icon>\n </div>\n <div class=\"content\">\n <slot name=\"metadata\"></slot>\n <slot name=\"title\"></slot>\n <slot name=\"text\"></slot>\n <div class=\"actions\">\n <slot name=\"action\"></slot>\n </div>\n </div>\n </mock:shadow-root>\n <img slot=\"cover\" src=\"https://i.pinimg.com/originals/b9/fc/7e/b9fc7e6b2dd2ca128bcc3412e68994f0.jpg\" />\n <h2 class=\"body-5\" slot=\"metadata\">metadata</h2>\n <h3 slot=\"title\">Card title</h3>\n <p class=\"body-3\" slot=\"text\">Description</p>\n <z-icon name=\"share\" slot=\"action\"></z-icon>\n <z-icon name=\"delete\" slot=\"action\"></z-icon>\n </z-card>\n `);\n });\n\n it(\"Test render ZCard with color cover\", async () => {\n const page = await newSpecPage({\n components: [ZCard],\n html: `<z-card>\n <h2 class=\"body-5\" slot=\"metadata\">metadata</h2>\n <h3 slot=\"title\">Card title</h3>\n <p class=\"body-3\" slot=\"text\">Description</p>\n </z-card>`,\n });\n\n expect(page.root).toEqualHtml(`\n <z-card>\n <mock:shadow-root>\n <div class=\"cover-container\">\n <div class=\"color-cover\">\n <div class=\"cover-content\">\n <slot name=\"metadata\"></slot>\n <slot name=\"title\"></slot>\n </div>\n </div>\n </div>\n <div class=\"content\">\n <slot name=\"text\"></slot>\n <div class=\"actions\">\n <slot name=\"action\"></slot>\n </div>\n </div>\n </mock:shadow-root>\n <h2 class=\"body-5\" slot=\"metadata\">metadata</h2>\n <h3 slot=\"title\">Card title</h3>\n <p class=\"body-3\" slot=\"text\">Description</p>\n </z-card>\n `);\n });\n\n it(\"Test render ZCard text variant\", async () => {\n const page = await newSpecPage({\n components: [ZCard],\n html: `\n <z-card clickable variant=\"text\" showshadow style=\"border: 1px solid black;\">\n <h2 class=\"body-5\" slot=\"metadata\">metadata</h2>\n <h3 slot=\"title\">Card title</h3>\n <p class=\"body-3\" slot=\"text\">Some description for the content of the card.</p>\n <z-icon name=\"share\" slot=\"action\" fill=\"color-primary01\"></z-icon>\n <z-icon name=\"delete\" slot=\"action\" fill=\"color-primary01\"></z-icon>\n </z-card>\n `,\n });\n\n expect(page.root).toEqualHtml(`\n <z-card clickable variant=\"text\" showshadow style=\"border: 1px solid black;\">\n <mock:shadow-root>\n <div class=\"content\">\n <slot name=\"metadata\"></slot>\n <slot name=\"title\"></slot>\n <slot name=\"text\"></slot>\n <div class=\"actions\">\n <slot name=\"action\"></slot>\n </div>\n </div>\n </mock:shadow-root>\n <h2 class=\"body-5\" slot=\"metadata\">metadata</h2>\n <h3 slot=\"title\">Card title</h3>\n <p class=\"body-3\" slot=\"text\">Some description for the content of the card.</p>\n <z-icon name=\"share\" slot=\"action\" fill=\"color-primary01\"></z-icon>\n <z-icon name=\"delete\" slot=\"action\" fill=\"color-primary01\"></z-icon>\n </z-card>\n `);\n });\n\n it(\"Test ZCard click\", async () => {\n const page = await newSpecPage({\n components: [ZCard],\n html: `<z-card clickable>\n <h2 class=\"body-5\" slot=\"metadata\">metadata</h2>\n <button id=\"btn\" slot=\"title\">Card title</button>\n <p class=\"body-3\" slot=\"text\">Description</p>\n </z-card>`,\n });\n\n const btn = page.body.querySelector(\"#btn\") as HTMLButtonElement;\n const buttonClickedCallback = jest.fn();\n btn.addEventListener(\"click\", buttonClickedCallback);\n btn.click();\n\n expect(buttonClickedCallback).toHaveBeenCalled();\n });\n\n it(\"Should trigger the slotted action listener but not the one for ZCard\", async () => {\n const page = await newSpecPage({\n components: [ZCard],\n html: `<z-card>\n <h2 class=\"body-5\" slot=\"metadata\">metadata</h2>\n <button id=\"btn\" slot=\"title\">Card title</button>\n <p class=\"body-3\" slot=\"text\">Description</p>\n <button id=\"action-btn\" slot=\"action\"><z-icon name=\"gear\" /></button>\n </z-card>`,\n });\n\n const btn = page.body.querySelector(\"#btn\") as HTMLButtonElement;\n const onCardClick = jest.fn();\n const action = page.body.querySelector(\"#action-btn\") as HTMLButtonElement;\n const onActionClick = jest.fn();\n btn.addEventListener(\"click\", onCardClick);\n action.addEventListener(\"click\", onActionClick);\n action.click();\n\n expect(onActionClick).toHaveBeenCalled();\n expect(onCardClick).not.toHaveBeenCalled();\n });\n});\n"]}
@@ -248,19 +248,29 @@ export const TextVariantWhiteBackgroundAndBordered = {
248
248
  </button>
249
249
  </z-card>`,
250
250
  };
251
- export const WithImageAndClick = {
251
+ export const WithImageAndClickListener = {
252
+ parameters: {
253
+ controls: {
254
+ exclude: ["clickable", "showShadow"],
255
+ },
256
+ },
252
257
  render: (args) => html `
253
258
  <script>
259
+ window.cardClickCount = 0;
254
260
  document.getElementById("btn-card").addEventListener("click", (e) => {
255
- // emit event, do stuff
256
- alert("Click on card");
261
+ window.cardClickCount = window.cardClickCount + 1;
262
+ const alertBox = document.getElementById("click-alert-container");
263
+ if (!alertBox) {
264
+ return;
265
+ }
266
+
267
+ alertBox.innerText = "Card click count: " + window.cardClickCount;
257
268
  });
258
269
  </script>
259
270
  <z-card
260
271
  class="demo-card"
261
- .variant="${args.variant}"
262
- .showShadow="${args.showShadow}"
263
- .clickable="${args.clickable}"
272
+ variant=${args.variant}
273
+ clickable
264
274
  >
265
275
  <img
266
276
  slot="cover"
@@ -287,6 +297,7 @@ export const WithImageAndClick = {
287
297
  <button slot="action"><z-icon name="share"></z-icon></button>
288
298
  <button slot="action"><z-icon name="delete"></z-icon></button>
289
299
  </z-card>
300
+ <div id="click-alert-container">Card click count: 0</div>
290
301
  `,
291
302
  };
292
303
  //# sourceMappingURL=index.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.stories.js","sourceRoot":"","sources":["../../../../src/components/z-card/index.stories.ts"],"names":[],"mappings":"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","sourcesContent":["import {Meta, StoryObj} from \"@storybook/web-components\";\nimport {html} from \"lit\";\nimport {styleMap} from \"lit/directives/style-map.js\";\nimport {ZCard} from \".\";\nimport {CardVariant} from \"../../beans\";\nimport {CSSVarsArguments} from \"../../utils/storybook-utils\";\nimport \"../z-icon/index\";\nimport \"./index\";\nimport \"./index.stories.css\";\n\ntype ZCardStoriesArgs = ZCard &\n CSSVarsArguments<\n | \"z-card--color-cover-background\"\n | \"z-card--color-cover-background\"\n | \"z-card--text-border\"\n | \"z-card--text-border-radius\"\n | \"z-card--text-padding\"\n >;\nconst StoryMeta = {\n title: \"ZCard\",\n component: \"z-card\",\n argTypes: {\n variant: {\n control: {\n type: \"inline-radio\",\n labels: {\n null: \"default\",\n },\n },\n options: [null, ...Object.values(CardVariant)],\n },\n },\n args: {\n variant: null,\n showShadow: false,\n clickable: false,\n },\n} satisfies Meta<ZCardStoriesArgs>;\n\nexport default StoryMeta;\n\ntype Story = StoryObj<ZCardStoriesArgs>;\n\nexport const WithImage = {\n render: (args) => html`\n <z-card\n class=\"demo-card\"\n .variant=\"${args.variant}\"\n .showShadow=\"${args.showShadow}\"\n .clickable=\"${args.clickable}\"\n >\n <img\n slot=\"cover\"\n src=\"https://i.pinimg.com/originals/b9/fc/7e/b9fc7e6b2dd2ca128bcc3412e68994f0.jpg\"\n />\n <span\n class=\"body-5\"\n slot=\"metadata\"\n >\n metadata\n </span>\n <a\n href=\"https://google.it\"\n target=\"_blank\"\n slot=\"title\"\n >\n <span>Card title</span>\n </a>\n <p\n class=\"body-3\"\n slot=\"text\"\n >\n Some description for the content of the card.\n </p>\n <button slot=\"action\"><z-icon name=\"share\"></z-icon></button>\n <button slot=\"action\"><z-icon name=\"delete\"></z-icon></button>\n </z-card>\n `,\n} satisfies Story;\n\nexport const WithImageAndIcon = {\n args: {\n coverIcon: \"play-filled\",\n },\n render: (args) => html`\n <z-card\n class=\"demo-card\"\n cover-icon=\"${args.coverIcon}\"\n .variant=\"${args.variant}\"\n .showShadow=\"${args.showShadow}\"\n .clickable=\"${args.clickable}\"\n >\n <img\n slot=\"cover\"\n src=\"https://i.pinimg.com/originals/b9/fc/7e/b9fc7e6b2dd2ca128bcc3412e68994f0.jpg\"\n />\n <h2\n class=\"body-5\"\n slot=\"metadata\"\n >\n metadata\n </h2>\n <a\n href=\"https://google.it\"\n target=\"_blank\"\n slot=\"title\"\n >\n <span>Card title</span>\n </a>\n <p\n class=\"body-3\"\n slot=\"text\"\n >\n Some description for the content of the card.\n </p>\n <button slot=\"action\"><z-icon name=\"share\"></z-icon></button>\n <button slot=\"action\"><z-icon name=\"delete\"></z-icon></button>\n </z-card>\n `,\n} satisfies Story;\n\nexport const ColorCover = {\n args: {\n \"--z-card--color-cover-background\": \"var(--yellow500)\",\n },\n render: (args) => html`\n <z-card\n class=\"demo-card\"\n .variant=\"${args.variant}\"\n .showShadow=\"${args.showShadow}\"\n .clickable=\"${args.clickable}\"\n style=\"--z-card--color-cover-background: ${args[\"--z-card--color-cover-background\"]};\"\n >\n <h2\n class=\"body-5\"\n slot=\"metadata\"\n >\n metadata\n </h2>\n <a\n href=\"https://google.it\"\n target=\"_blank\"\n slot=\"title\"\n >\n <span>Card title</span>\n </a>\n <p\n class=\"body-3\"\n slot=\"text\"\n >\n Some description for the content of the card.\n </p>\n <button slot=\"action\"><z-icon name=\"share\"></z-icon></button>\n <button slot=\"action\"><z-icon name=\"delete\"></z-icon></button>\n </z-card>\n `,\n} satisfies Story;\n\nexport const TextVariantPrimaryBackground = {\n args: {\n \"--z-card--text-border-radius\": \"4px\",\n },\n parameters: {\n controls: {\n exclude: [\"variant\"],\n },\n },\n render: (args) => html`\n <z-card\n class=\"text-variant-card\"\n variant=\"text\"\n .showShadow=\"${args.showShadow}\"\n .clickable=\"${args.clickable}\"\n style=${styleMap({\n \"--z-card--text-background\": \"var(--color-primary01)\",\n \"--z-card--text-border-radius\": `${args[\"--z-card--text-border-radius\"]}`,\n \"color\": \"var(--color-text-inverse)\",\n })}\n >\n <h2\n class=\"body-5\"\n slot=\"metadata\"\n >\n metadata\n </h2>\n <a\n href=\"https://google.it\"\n target=\"_blank\"\n slot=\"title\"\n >\n <span>Card title</span>\n </a>\n <p\n class=\"body-3\"\n slot=\"text\"\n >\n Some description for the content of the card.\n </p>\n <button slot=\"action\">\n <z-icon\n name=\"share\"\n fill=\"color-surface01\"\n ></z-icon>\n </button>\n <button slot=\"action\">\n <z-icon\n name=\"delete\"\n fill=\"color-surface01\"\n ></z-icon>\n </button>\n </z-card>\n `,\n} satisfies Story;\n\nexport const TextVariantWhiteBackgroundAndBordered = {\n args: {\n \"--z-card--text-border\": \"2px solid var(--gray800)\",\n \"--z-card--text-border-radius\": \"4px\",\n \"--z-card--text-padding\": \"16px 8px\",\n },\n parameters: {\n controls: {\n exclude: [\"variant\"],\n },\n },\n render: (args) =>\n html`<z-card\n class=\"text-variant-card\"\n variant=\"text\"\n .showShadow=\"${args.showShadow}\"\n .clickable=\"${args.clickable}\"\n style=${styleMap({\n \"--z-card--text-background\": `var(--color-white)`,\n \"--z-card--text-border\": `${args[\"--z-card--text-border\"]}`,\n \"--z-card--text-border-radius\": `${args[\"--z-card--text-border-radius\"]}`,\n \"--z-card--text-padding\": `${args[\"--z-card--text-padding\"]}`,\n })}\n >\n <h2\n class=\"body-5\"\n slot=\"metadata\"\n >\n metadata\n </h2>\n <a\n href=\"https://google.it\"\n target=\"_blank\"\n slot=\"title\"\n >\n <span>Card title</span>\n </a>\n <p\n class=\"body-3\"\n slot=\"text\"\n >\n Some description for the content of the card.\n </p>\n <button slot=\"action\">\n <z-icon\n name=\"share\"\n fill=\"color-primary01\"\n ></z-icon>\n </button>\n <button slot=\"action\">\n <z-icon\n name=\"delete\"\n fill=\"color-primary01\"\n ></z-icon>\n </button>\n </z-card>`,\n} satisfies Story;\n\nexport const WithImageAndClick = {\n render: (args) => html`\n <script>\n document.getElementById(\"btn-card\").addEventListener(\"click\", (e) => {\n // emit event, do stuff\n alert(\"Click on card\");\n });\n </script>\n <z-card\n class=\"demo-card\"\n .variant=\"${args.variant}\"\n .showShadow=\"${args.showShadow}\"\n .clickable=\"${args.clickable}\"\n >\n <img\n slot=\"cover\"\n src=\"https://i.pinimg.com/originals/b9/fc/7e/b9fc7e6b2dd2ca128bcc3412e68994f0.jpg\"\n />\n <span\n class=\"body-5\"\n slot=\"metadata\"\n >\n metadata\n </span>\n <button\n id=\"btn-card\"\n slot=\"title\"\n >\n <span>Card title</span>\n </button>\n <p\n class=\"body-3\"\n slot=\"text\"\n >\n Some description for the content of the card.\n </p>\n <button slot=\"action\"><z-icon name=\"share\"></z-icon></button>\n <button slot=\"action\"><z-icon name=\"delete\"></z-icon></button>\n </z-card>\n `,\n} satisfies Story;\n"]}
1
+ {"version":3,"file":"index.stories.js","sourceRoot":"","sources":["../../../../src/components/z-card/index.stories.ts"],"names":[],"mappings":"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","sourcesContent":["import {Meta, StoryObj} from \"@storybook/web-components\";\nimport {html} from \"lit\";\nimport {styleMap} from \"lit/directives/style-map.js\";\nimport {ZCard} from \".\";\nimport {CardVariant} from \"../../beans\";\nimport {CSSVarsArguments} from \"../../utils/storybook-utils\";\nimport \"../z-icon/index\";\nimport \"./index\";\nimport \"./index.stories.css\";\n\ntype ZCardStoriesArgs = ZCard &\n CSSVarsArguments<\n | \"z-card--color-cover-background\"\n | \"z-card--color-cover-background\"\n | \"z-card--text-border\"\n | \"z-card--text-border-radius\"\n | \"z-card--text-padding\"\n >;\nconst StoryMeta = {\n title: \"ZCard\",\n component: \"z-card\",\n argTypes: {\n variant: {\n control: {\n type: \"inline-radio\",\n labels: {\n null: \"default\",\n },\n },\n options: [null, ...Object.values(CardVariant)],\n },\n },\n args: {\n variant: null,\n showShadow: false,\n clickable: false,\n },\n} satisfies Meta<ZCardStoriesArgs>;\n\nexport default StoryMeta;\n\ntype Story = StoryObj<ZCardStoriesArgs>;\n\nexport const WithImage = {\n render: (args) => html`\n <z-card\n class=\"demo-card\"\n .variant=\"${args.variant}\"\n .showShadow=\"${args.showShadow}\"\n .clickable=\"${args.clickable}\"\n >\n <img\n slot=\"cover\"\n src=\"https://i.pinimg.com/originals/b9/fc/7e/b9fc7e6b2dd2ca128bcc3412e68994f0.jpg\"\n />\n <span\n class=\"body-5\"\n slot=\"metadata\"\n >\n metadata\n </span>\n <a\n href=\"https://google.it\"\n target=\"_blank\"\n slot=\"title\"\n >\n <span>Card title</span>\n </a>\n <p\n class=\"body-3\"\n slot=\"text\"\n >\n Some description for the content of the card.\n </p>\n <button slot=\"action\"><z-icon name=\"share\"></z-icon></button>\n <button slot=\"action\"><z-icon name=\"delete\"></z-icon></button>\n </z-card>\n `,\n} satisfies Story;\n\nexport const WithImageAndIcon = {\n args: {\n coverIcon: \"play-filled\",\n },\n render: (args) => html`\n <z-card\n class=\"demo-card\"\n cover-icon=\"${args.coverIcon}\"\n .variant=\"${args.variant}\"\n .showShadow=\"${args.showShadow}\"\n .clickable=\"${args.clickable}\"\n >\n <img\n slot=\"cover\"\n src=\"https://i.pinimg.com/originals/b9/fc/7e/b9fc7e6b2dd2ca128bcc3412e68994f0.jpg\"\n />\n <h2\n class=\"body-5\"\n slot=\"metadata\"\n >\n metadata\n </h2>\n <a\n href=\"https://google.it\"\n target=\"_blank\"\n slot=\"title\"\n >\n <span>Card title</span>\n </a>\n <p\n class=\"body-3\"\n slot=\"text\"\n >\n Some description for the content of the card.\n </p>\n <button slot=\"action\"><z-icon name=\"share\"></z-icon></button>\n <button slot=\"action\"><z-icon name=\"delete\"></z-icon></button>\n </z-card>\n `,\n} satisfies Story;\n\nexport const ColorCover = {\n args: {\n \"--z-card--color-cover-background\": \"var(--yellow500)\",\n },\n render: (args) => html`\n <z-card\n class=\"demo-card\"\n .variant=\"${args.variant}\"\n .showShadow=\"${args.showShadow}\"\n .clickable=\"${args.clickable}\"\n style=\"--z-card--color-cover-background: ${args[\"--z-card--color-cover-background\"]};\"\n >\n <h2\n class=\"body-5\"\n slot=\"metadata\"\n >\n metadata\n </h2>\n <a\n href=\"https://google.it\"\n target=\"_blank\"\n slot=\"title\"\n >\n <span>Card title</span>\n </a>\n <p\n class=\"body-3\"\n slot=\"text\"\n >\n Some description for the content of the card.\n </p>\n <button slot=\"action\"><z-icon name=\"share\"></z-icon></button>\n <button slot=\"action\"><z-icon name=\"delete\"></z-icon></button>\n </z-card>\n `,\n} satisfies Story;\n\nexport const TextVariantPrimaryBackground = {\n args: {\n \"--z-card--text-border-radius\": \"4px\",\n },\n parameters: {\n controls: {\n exclude: [\"variant\"],\n },\n },\n render: (args) => html`\n <z-card\n class=\"text-variant-card\"\n variant=\"text\"\n .showShadow=\"${args.showShadow}\"\n .clickable=\"${args.clickable}\"\n style=${styleMap({\n \"--z-card--text-background\": \"var(--color-primary01)\",\n \"--z-card--text-border-radius\": `${args[\"--z-card--text-border-radius\"]}`,\n \"color\": \"var(--color-text-inverse)\",\n })}\n >\n <h2\n class=\"body-5\"\n slot=\"metadata\"\n >\n metadata\n </h2>\n <a\n href=\"https://google.it\"\n target=\"_blank\"\n slot=\"title\"\n >\n <span>Card title</span>\n </a>\n <p\n class=\"body-3\"\n slot=\"text\"\n >\n Some description for the content of the card.\n </p>\n <button slot=\"action\">\n <z-icon\n name=\"share\"\n fill=\"color-surface01\"\n ></z-icon>\n </button>\n <button slot=\"action\">\n <z-icon\n name=\"delete\"\n fill=\"color-surface01\"\n ></z-icon>\n </button>\n </z-card>\n `,\n} satisfies Story;\n\nexport const TextVariantWhiteBackgroundAndBordered = {\n args: {\n \"--z-card--text-border\": \"2px solid var(--gray800)\",\n \"--z-card--text-border-radius\": \"4px\",\n \"--z-card--text-padding\": \"16px 8px\",\n },\n parameters: {\n controls: {\n exclude: [\"variant\"],\n },\n },\n render: (args) =>\n html`<z-card\n class=\"text-variant-card\"\n variant=\"text\"\n .showShadow=\"${args.showShadow}\"\n .clickable=\"${args.clickable}\"\n style=${styleMap({\n \"--z-card--text-background\": `var(--color-white)`,\n \"--z-card--text-border\": `${args[\"--z-card--text-border\"]}`,\n \"--z-card--text-border-radius\": `${args[\"--z-card--text-border-radius\"]}`,\n \"--z-card--text-padding\": `${args[\"--z-card--text-padding\"]}`,\n })}\n >\n <h2\n class=\"body-5\"\n slot=\"metadata\"\n >\n metadata\n </h2>\n <a\n href=\"https://google.it\"\n target=\"_blank\"\n slot=\"title\"\n >\n <span>Card title</span>\n </a>\n <p\n class=\"body-3\"\n slot=\"text\"\n >\n Some description for the content of the card.\n </p>\n <button slot=\"action\">\n <z-icon\n name=\"share\"\n fill=\"color-primary01\"\n ></z-icon>\n </button>\n <button slot=\"action\">\n <z-icon\n name=\"delete\"\n fill=\"color-primary01\"\n ></z-icon>\n </button>\n </z-card>`,\n} satisfies Story;\n\nexport const WithImageAndClickListener = {\n parameters: {\n controls: {\n exclude: [\"clickable\", \"showShadow\"],\n },\n },\n render: (args) => html`\n <script>\n window.cardClickCount = 0;\n document.getElementById(\"btn-card\").addEventListener(\"click\", (e) => {\n window.cardClickCount = window.cardClickCount + 1;\n const alertBox = document.getElementById(\"click-alert-container\");\n if (!alertBox) {\n return;\n }\n\n alertBox.innerText = \"Card click count: \" + window.cardClickCount;\n });\n </script>\n <z-card\n class=\"demo-card\"\n variant=${args.variant}\n clickable\n >\n <img\n slot=\"cover\"\n src=\"https://i.pinimg.com/originals/b9/fc/7e/b9fc7e6b2dd2ca128bcc3412e68994f0.jpg\"\n />\n <span\n class=\"body-5\"\n slot=\"metadata\"\n >\n metadata\n </span>\n <button\n id=\"btn-card\"\n slot=\"title\"\n >\n <span>Card title</span>\n </button>\n <p\n class=\"body-3\"\n slot=\"text\"\n >\n Some description for the content of the card.\n </p>\n <button slot=\"action\"><z-icon name=\"share\"></z-icon></button>\n <button slot=\"action\"><z-icon name=\"delete\"></z-icon></button>\n </z-card>\n <div id=\"click-alert-container\">Card click count: 0</div>\n `,\n} satisfies Story;\n"]}
@@ -23,6 +23,11 @@ respecting the grid indications of the design. */
23
23
  box-sizing: border-box;
24
24
  }
25
25
 
26
+ *:focus:focus-visible {
27
+ box-shadow: var(--shadow-focus-primary);
28
+ outline: none;
29
+ }
30
+
26
31
  :host(:not([variant="overlay"])) .cover-container {
27
32
  position: relative;
28
33
  width: 100%;
@@ -100,6 +105,7 @@ Unfortunately the `aspect-ratio` property is still experimental */
100
105
  ::slotted([slot="metadata"]:not(:last-child)) {
101
106
  margin: 0 0 calc(var(--space-unit) * 0.25);
102
107
  -webkit-line-clamp: 1;
108
+ line-clamp: 1;
103
109
  text-transform: uppercase;
104
110
  }
105
111
 
@@ -109,17 +115,19 @@ Unfortunately the `aspect-ratio` property is still experimental */
109
115
  font-size: inherit;
110
116
  font-weight: var(--font-sb);
111
117
  -webkit-line-clamp: 2;
118
+ line-clamp: 2;
112
119
  text-decoration: none;
113
120
  }
114
121
 
115
- ::slotted([slot="title"]:focus) {
122
+ ::slotted([slot="title"]:focus:focus-visible) {
116
123
  box-shadow: var(--shadow-focus-primary);
117
- outline: none !important;
124
+ outline: none;
118
125
  }
119
126
 
120
127
  ::slotted([slot="text"]) {
121
128
  margin: 0;
122
129
  -webkit-line-clamp: 3;
130
+ line-clamp: 3;
123
131
  }
124
132
 
125
133
  .actions {
@@ -0,0 +1,32 @@
1
+ import { newE2EPage } from "@stencil/core/testing";
2
+ it("Clicks on chip component, not on the interactive icon", async () => {
3
+ const page = await newE2EPage({
4
+ html: '<z-chip type="default" icon="pdf" disabled="false" interactive-icon="multiply-circled">chip text</z-chip>',
5
+ });
6
+ const chip = await page.find("z-chip");
7
+ const clickEvent = await page.spyOnEvent("interactiveIconClick");
8
+ await chip.click();
9
+ await page.waitForChanges();
10
+ expect(clickEvent).not.toHaveReceivedEvent();
11
+ });
12
+ it("Clicks on chip interactive icon", async () => {
13
+ const page = await newE2EPage({
14
+ html: '<z-chip type="default" icon="pdf" disabled="false" interactive-icon="multiply-circled">chip text</z-chip>',
15
+ });
16
+ const chipIcon = await page.find("z-chip .interactive-icon");
17
+ const clickEvent = await page.spyOnEvent("interactiveIconClick");
18
+ await chipIcon.click();
19
+ await page.waitForChanges();
20
+ expect(clickEvent).toHaveReceivedEvent();
21
+ });
22
+ it("Clicks on chip interactive icon when disabled", async () => {
23
+ const page = await newE2EPage({
24
+ html: '<z-chip type="default" icon="pdf" disabled="true" interactive-icon="multiply-circled">chip text</z-chip>',
25
+ });
26
+ const chipIcon = await page.find("z-chip .interactive-icon");
27
+ const clickEvent = await page.spyOnEvent("interactiveIconClick");
28
+ await chipIcon.click();
29
+ await page.waitForChanges();
30
+ expect(clickEvent).not.toHaveReceivedEvent();
31
+ });
32
+ //# sourceMappingURL=test.e2e.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.e2e.js","sourceRoot":"","sources":["../../../../src/components/z-chip/test.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAEjD,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;IACrE,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC;QAC5B,IAAI,EAAE,2GAA2G;KAClH,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;IACjE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IAEnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;IAC/C,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC;QAC5B,IAAI,EAAE,2GAA2G;KAClH,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;IACjE,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;IAEvB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,CAAC,UAAU,CAAC,CAAC,mBAAmB,EAAE,CAAC;AAC3C,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;IAC7D,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC;QAC5B,IAAI,EAAE,0GAA0G;KACjH,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;IACjE,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;IAEvB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;AAC/C,CAAC,CAAC,CAAC","sourcesContent":["import {newE2EPage} from \"@stencil/core/testing\";\n\nit(\"Clicks on chip component, not on the interactive icon\", async () => {\n const page = await newE2EPage({\n html: '<z-chip type=\"default\" icon=\"pdf\" disabled=\"false\" interactive-icon=\"multiply-circled\">chip text</z-chip>',\n });\n const chip = await page.find(\"z-chip\");\n const clickEvent = await page.spyOnEvent(\"interactiveIconClick\");\n await chip.click();\n\n await page.waitForChanges();\n expect(clickEvent).not.toHaveReceivedEvent();\n});\n\nit(\"Clicks on chip interactive icon\", async () => {\n const page = await newE2EPage({\n html: '<z-chip type=\"default\" icon=\"pdf\" disabled=\"false\" interactive-icon=\"multiply-circled\">chip text</z-chip>',\n });\n const chipIcon = await page.find(\"z-chip .interactive-icon\");\n const clickEvent = await page.spyOnEvent(\"interactiveIconClick\");\n await chipIcon.click();\n\n await page.waitForChanges();\n expect(clickEvent).toHaveReceivedEvent();\n});\n\nit(\"Clicks on chip interactive icon when disabled\", async () => {\n const page = await newE2EPage({\n html: '<z-chip type=\"default\" icon=\"pdf\" disabled=\"true\" interactive-icon=\"multiply-circled\">chip text</z-chip>',\n });\n const chipIcon = await page.find(\"z-chip .interactive-icon\");\n const clickEvent = await page.spyOnEvent(\"interactiveIconClick\");\n await chipIcon.click();\n\n await page.waitForChanges();\n expect(clickEvent).not.toHaveReceivedEvent();\n});\n"]}
@@ -0,0 +1,45 @@
1
+ import { newE2EPage } from "@stencil/core/testing";
2
+ const items = [
3
+ { id: "ite_m_1", name: "First item", checked: false, category: "Gruppo 1" },
4
+ { id: "ite_m_2", name: "Second item", checked: false, category: "Gruppo 1" },
5
+ { id: "it_em_3", name: "Other item", checked: false, category: "Gruppo 2" },
6
+ { id: "it_e_m_5", name: "Last item", checked: false, category: "Gruppo 3" },
7
+ ];
8
+ it("Tests z-combobox search", async () => {
9
+ const page = await newE2EPage();
10
+ await page.setContent(`
11
+ <z-combobox
12
+ checkalltext="Select all"
13
+ closesearchtext="Close"
14
+ hascheckall="true"
15
+ hassearch="true"
16
+ inputid="combo_1"
17
+ isfixed="true"
18
+ isopen="true"
19
+ items='${JSON.stringify(items)}'
20
+ label="Combobox Label"
21
+ maxcheckableitems="4"
22
+ hasgroupitems="false"
23
+ noresultslabel="No items"
24
+ searchlabel="Search Label"
25
+ searchplaceholder="Search Placeholder"
26
+ searchtitle="Search Title"
27
+ uncheckalltext="Uncheck All"
28
+ />
29
+ `);
30
+ const input = await page.find("z-combobox >>> z-input input");
31
+ const listbox = await page.find("z-combobox >>> #combo_1_list");
32
+ const listElements = await listbox.findAll("z-list-element");
33
+ expect(listElements.map(({ id }) => id)).toEqual(items.map(({ id }) => id));
34
+ await input.type(items[0].name);
35
+ await page.waitForChanges();
36
+ const filteredListElems = await listbox.findAll("z-list-element");
37
+ expect(filteredListElems.map(({ id }) => id)).toEqual([items[0].id]);
38
+ const clickEvent = await page.spyOnEvent("comboboxChange");
39
+ const checkbox = await filteredListElems[0].find("z-input div input");
40
+ console.log(checkbox);
41
+ await checkbox.click();
42
+ await page.waitForChanges();
43
+ expect(clickEvent).toHaveReceivedEvent();
44
+ });
45
+ //# sourceMappingURL=test.e2e.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.e2e.js","sourceRoot":"","sources":["../../../../src/components/z-combobox/test.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAEjD,MAAM,KAAK,GAAG;IACZ,EAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAC;IACzE,EAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAC;IAC1E,EAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAC;IACzE,EAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAC;CAC1E,CAAC;AAEF,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;IACvC,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;IAChC,MAAM,IAAI,CAAC,UAAU,CAAC;;;;;;;;;eAST,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;;;;;;;;;;GAUjC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7D,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAExE,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAElE,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAE3D,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtB,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;IACvB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,MAAM,CAAC,UAAU,CAAC,CAAC,mBAAmB,EAAE,CAAC;AAC3C,CAAC,CAAC,CAAC","sourcesContent":["import {newE2EPage} from \"@stencil/core/testing\";\n\nconst items = [\n {id: \"ite_m_1\", name: \"First item\", checked: false, category: \"Gruppo 1\"},\n {id: \"ite_m_2\", name: \"Second item\", checked: false, category: \"Gruppo 1\"},\n {id: \"it_em_3\", name: \"Other item\", checked: false, category: \"Gruppo 2\"},\n {id: \"it_e_m_5\", name: \"Last item\", checked: false, category: \"Gruppo 3\"},\n];\n\nit(\"Tests z-combobox search\", async () => {\n const page = await newE2EPage();\n await page.setContent(`\n <z-combobox\n checkalltext=\"Select all\"\n closesearchtext=\"Close\"\n hascheckall=\"true\"\n hassearch=\"true\"\n inputid=\"combo_1\"\n isfixed=\"true\"\n isopen=\"true\"\n items='${JSON.stringify(items)}'\n label=\"Combobox Label\"\n maxcheckableitems=\"4\"\n hasgroupitems=\"false\"\n noresultslabel=\"No items\"\n searchlabel=\"Search Label\"\n searchplaceholder=\"Search Placeholder\"\n searchtitle=\"Search Title\"\n uncheckalltext=\"Uncheck All\"\n />\n `);\n\n const input = await page.find(\"z-combobox >>> z-input input\");\n const listbox = await page.find(\"z-combobox >>> #combo_1_list\");\n const listElements = await listbox.findAll(\"z-list-element\");\n expect(listElements.map(({id}) => id)).toEqual(items.map(({id}) => id));\n\n await input.type(items[0].name);\n await page.waitForChanges();\n const filteredListElems = await listbox.findAll(\"z-list-element\");\n\n expect(filteredListElems.map(({id}) => id)).toEqual([items[0].id]);\n\n const clickEvent = await page.spyOnEvent(\"comboboxChange\");\n\n const checkbox = await filteredListElems[0].find(\"z-input div input\");\n console.log(checkbox);\n await checkbox.click();\n await page.waitForChanges();\n\n expect(clickEvent).toHaveReceivedEvent();\n});\n"]}
@@ -16,7 +16,6 @@ export class ZSearchbar {
16
16
  this.autocomplete = false;
17
17
  this.autocompleteMinChars = 3;
18
18
  this.resultsCount = undefined;
19
- this.resultsEllipsis = true;
20
19
  this.searchHelperLabel = "Cerca {searchString}";
21
20
  this.resultsItems = undefined;
22
21
  this.sortResultsItems = false;
@@ -192,7 +191,7 @@ export class ZSearchbar {
192
191
  return listGroups;
193
192
  }
194
193
  renderItem(item, key, divider) {
195
- return (h("z-list-element", { id: `list-item-${this.htmlid}-${key}`, role: "option", tabindex: 0, dividerType: divider ? ListDividerType.ELEMENT : undefined, clickable: true, onClickItem: () => this.emitSearchItemClick(item) }, h("div", { class: "list-element" }, h("span", { class: { "item": true, "ellipsis": this.resultsEllipsis, "has-category": !!item.category } }, (item === null || item === void 0 ? void 0 : item.icon) && (h("z-icon", { class: "item-icon", name: item.icon })), h("span", { class: "item-label", title: item.label, innerHTML: this.renderItemLabel(item.label) })), (item === null || item === void 0 ? void 0 : item.tag) && h("z-tag", { icon: item.tag.icon }, !this.isMobile ? item.tag.text : ""))));
194
+ return (h("z-list-element", { id: `list-item-${this.htmlid}-${key}`, role: "option", tabindex: 0, dividerType: divider ? ListDividerType.ELEMENT : undefined }, h("div", { class: "list-element", onClick: () => this.emitSearchItemClick(item) }, h("span", { class: "item ellipsis" }, (item === null || item === void 0 ? void 0 : item.icon) && (h("z-icon", { class: "item-icon", name: item.icon })), h("span", { class: "item-label", title: item.label, innerHTML: this.renderItemLabel(item.label) })), (item === null || item === void 0 ? void 0 : item.tag) && h("z-tag", { icon: item.tag.icon }, !this.isMobile ? item.tag.text : "")), item.children && item.children.length > 0 ? (h("z-list", null, h("div", { class: "children-node" }, item.children.map((child, index) => this.renderItem(child, index, false))))) : null));
196
195
  }
197
196
  renderItemLabel(label) {
198
197
  if (!this.searchString) {
@@ -223,7 +222,7 @@ export class ZSearchbar {
223
222
  return (h("z-list-element", { role: "option", tabindex: 0, clickable: true, id: `list-item-${this.htmlid}-show-all`, onClickItem: () => (this.currResultsCount = 0), color: "color-primary01" }, h("div", { class: "item-show-all" }, "Vedi tutti i risultati")));
224
223
  }
225
224
  render() {
226
- return (h(Host, { key: 'af318a5b693c0048c368776744d9090bdebe6c8c', onFocus: () => (this.showResults = true), onClick: (e) => this.handleOutsideClick(e), class: { "has-submit": this.showSearchButton, "has-results": this.autocomplete } }, h("div", { key: 'aba6d0bd87ba308a8f664ca5f86e5d0b96c734af', class: "input-container" }, this.renderInput(), this.renderResults()), this.renderButton()));
225
+ return (h(Host, { key: '9e8e62ecafdfd6f8a26c88ae89de0af9ae888bb3', onFocus: () => (this.showResults = true), onClick: (e) => this.handleOutsideClick(e), class: { "has-submit": this.showSearchButton, "has-results": this.autocomplete } }, h("div", { key: '19ea613b5434d4ceb27402c47f00e58ba2661859', class: "input-container" }, this.renderInput(), this.renderResults()), this.renderButton()));
227
226
  }
228
227
  static get is() { return "z-searchbar"; }
229
228
  static get encapsulation() { return "shadow"; }
@@ -362,24 +361,6 @@ export class ZSearchbar {
362
361
  "attribute": "results-count",
363
362
  "reflect": false
364
363
  },
365
- "resultsEllipsis": {
366
- "type": "boolean",
367
- "mutable": false,
368
- "complexType": {
369
- "original": "boolean",
370
- "resolved": "boolean",
371
- "references": {}
372
- },
373
- "required": false,
374
- "optional": true,
375
- "docs": {
376
- "tags": [],
377
- "text": "Truncate results to single row"
378
- },
379
- "attribute": "results-ellipsis",
380
- "reflect": false,
381
- "defaultValue": "true"
382
- },
383
364
  "searchHelperLabel": {
384
365
  "type": "string",
385
366
  "mutable": false,
@@ -576,7 +557,7 @@ export class ZSearchbar {
576
557
  },
577
558
  "complexType": {
578
559
  "original": "SearchbarItem",
579
- "resolved": "{ label: string; id?: string; icon?: string; tag?: { icon?: string; text: string; }; category?: string; subcategory?: string; }",
560
+ "resolved": "{ label: string; id?: string; icon?: string; tag?: { icon?: string; text: string; }; category?: string; subcategory?: string; children?: Omit<SearchbarItem, \"category\" | \"subcategory\">[]; }",
580
561
  "references": {
581
562
  "SearchbarItem": {
582
563
  "location": "import",