ku4web-components 6.5.5 → 6.5.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (259) hide show
  1. package/angular/index.js +1 -1
  2. package/angular/index.mjs +1 -1
  3. package/dist/cjs/app-globals-3a1e7e63.js +5 -0
  4. package/dist/cjs/css-shim-f1391d35.js +6 -0
  5. package/dist/cjs/dom-5345ed9a.js +75 -0
  6. package/dist/cjs/index-065185f8.js +3093 -0
  7. package/dist/cjs/index-16f16ed9.js +14 -0
  8. package/dist/cjs/index-1a439af7.js +14 -0
  9. package/dist/cjs/index-436596bf.js +10 -0
  10. package/dist/cjs/index-49d3746b.js +10 -0
  11. package/dist/cjs/ku4-carousel-controls.cjs.entry.js +2 -2
  12. package/dist/cjs/ku4-carousel-slide.cjs.entry.js +1 -1
  13. package/dist/cjs/ku4-carousel.cjs.entry.js +3 -3
  14. package/dist/cjs/ku4-col.cjs.entry.js +1 -1
  15. package/dist/cjs/ku4-drawer.cjs.entry.js +1 -1
  16. package/dist/cjs/ku4-feature.cjs.entry.js +2 -2
  17. package/dist/cjs/ku4-focus-trap.cjs.entry.js +26 -26
  18. package/dist/cjs/ku4-form.cjs.entry.js +3 -3
  19. package/dist/cjs/ku4-grid.cjs.entry.js +1 -1
  20. package/dist/cjs/ku4-label.cjs.entry.js +2 -2
  21. package/dist/cjs/ku4-mask.cjs.entry.js +3 -3
  22. package/dist/cjs/ku4-modal.cjs.entry.js +3 -3
  23. package/dist/cjs/ku4-panel.cjs.entry.js +1 -1
  24. package/dist/cjs/ku4-preview.cjs.entry.js +43 -14
  25. package/dist/cjs/ku4-tab-list.cjs.entry.js +4 -4
  26. package/dist/cjs/ku4-tab-panel.cjs.entry.js +3 -3
  27. package/dist/cjs/ku4-tab.cjs.entry.js +3 -3
  28. package/dist/cjs/ku4-table.cjs.entry.js +1 -1
  29. package/dist/cjs/ku4-tooltip.cjs.entry.js +2 -2
  30. package/dist/cjs/ku4-validation.cjs.entry.js +2 -2
  31. package/dist/cjs/ku4web-components.cjs.js +101 -6
  32. package/dist/cjs/loader.cjs.js +17 -1
  33. package/dist/cjs/{uid-d533dbb1.js → uid-7f3954c8.js} +1 -1
  34. package/dist/cjs/uid-a1348ea5.js +11 -0
  35. package/dist/collection/capabilities/a11y/aria.js +26 -0
  36. package/dist/collection/capabilities/angular/index.js +24 -0
  37. package/dist/collection/capabilities/decorators/deprecated.js +20 -0
  38. package/dist/collection/capabilities/decorators/index.js +3 -0
  39. package/dist/collection/capabilities/decorators/memoize.js +7 -0
  40. package/dist/collection/capabilities/dom/isFocusable.js +7 -0
  41. package/dist/collection/capabilities/dom/queryFocusable.js +2 -0
  42. package/dist/collection/capabilities/identity/uid.js +6 -0
  43. package/dist/collection/capabilities/mask/index.js +5 -0
  44. package/dist/collection/capabilities/mask/patterns/date.js +40 -0
  45. package/dist/collection/capabilities/mask/patterns/index.js +7 -0
  46. package/dist/collection/capabilities/react/index.js +25 -0
  47. package/dist/collection/capabilities/testing/html.js +14 -0
  48. package/dist/collection/capabilities/testing/styles.js +14 -0
  49. package/dist/collection/capabilities/vue/index.js +28 -0
  50. package/dist/collection/capabilities/vue3/index.js +26 -0
  51. package/dist/collection/collection-manifest.json +31 -0
  52. package/dist/collection/components/ku4-carousel/ku4-carousel.css +221 -0
  53. package/dist/collection/components/ku4-carousel/ku4-carousel.js +369 -0
  54. package/dist/collection/components/ku4-carousel-controls/ku4-carousel-controls.css +32 -0
  55. package/dist/collection/components/ku4-carousel-controls/ku4-carousel-controls.js +112 -0
  56. package/dist/collection/components/ku4-carousel-slide/ku4-carousel-slide.css +3 -0
  57. package/dist/collection/components/ku4-carousel-slide/ku4-carousel-slide.js +159 -0
  58. package/dist/collection/components/ku4-col/ku4-col.css +601 -0
  59. package/dist/collection/components/ku4-col/ku4-col.js +288 -0
  60. package/dist/collection/components/ku4-drawer/ku4-drawer.css +56 -0
  61. package/dist/collection/components/ku4-drawer/ku4-drawer.js +163 -0
  62. package/dist/collection/components/ku4-feature/ku4-feature.js +70 -0
  63. package/dist/collection/components/ku4-focus-trap/ku4-focus-trap.css +3 -0
  64. package/dist/collection/components/ku4-focus-trap/ku4-focus-trap.js +441 -0
  65. package/dist/collection/components/ku4-form/ku4-form.js +265 -0
  66. package/dist/collection/components/ku4-grid/ku4-grid.css +751 -0
  67. package/dist/collection/components/ku4-grid/ku4-grid.js +408 -0
  68. package/dist/collection/components/ku4-label/ku4-label.css +36 -0
  69. package/dist/collection/components/ku4-label/ku4-label.js +115 -0
  70. package/dist/collection/components/ku4-mask/ku4-mask.css +3 -0
  71. package/dist/collection/components/ku4-mask/ku4-mask.js +459 -0
  72. package/dist/collection/components/ku4-modal/ku4-modal.css +85 -0
  73. package/dist/collection/components/ku4-modal/ku4-modal.js +231 -0
  74. package/dist/collection/components/ku4-panel/ku4-panel.css +14 -0
  75. package/dist/collection/components/ku4-panel/ku4-panel.js +119 -0
  76. package/dist/collection/components/ku4-preview/ku4-preview.css +23 -0
  77. package/dist/collection/components/ku4-preview/ku4-preview.js +266 -0
  78. package/dist/collection/components/ku4-tab/ku4-tab.css +82 -0
  79. package/dist/collection/components/ku4-tab/ku4-tab.js +191 -0
  80. package/dist/collection/components/ku4-tab-list/ku4-tab-list.css +6 -0
  81. package/dist/collection/components/ku4-tab-list/ku4-tab-list.js +118 -0
  82. package/dist/collection/components/ku4-tab-panel/ku4-tab-panel.css +26 -0
  83. package/dist/collection/components/ku4-tab-panel/ku4-tab-panel.js +166 -0
  84. package/dist/collection/components/ku4-table/ku4-table.css +116 -0
  85. package/dist/collection/components/ku4-table/ku4-table.js +120 -0
  86. package/dist/collection/components/ku4-tooltip/ku4-tooltip.css +56 -0
  87. package/dist/collection/components/ku4-tooltip/ku4-tooltip.js +274 -0
  88. package/dist/collection/components/ku4-validation/ku4-validation.css +19 -0
  89. package/dist/collection/components/ku4-validation/ku4-validation.js +364 -0
  90. package/dist/collection/components/ku4-validation/validate.js +14 -0
  91. package/dist/collection/index.js +1 -0
  92. package/dist/collection/security.js +27 -0
  93. package/dist/esm/app-globals-0f993ce5.js +3 -0
  94. package/dist/esm/css-shim-10e6e2ae.js +4 -0
  95. package/dist/esm/dom-7cd9cf71.js +73 -0
  96. package/dist/esm/index-5448a818.js +3 -0
  97. package/dist/esm/index-6cfd87e4.js +3 -0
  98. package/dist/esm/index-77bdf1f1.js +3 -0
  99. package/dist/esm/index-a02dcfc8.js +3057 -0
  100. package/dist/esm/index-aa119486.js +3 -0
  101. package/dist/esm/ku4-carousel-controls.entry.js +2 -2
  102. package/dist/esm/ku4-carousel-slide.entry.js +1 -1
  103. package/dist/esm/ku4-carousel.entry.js +3 -3
  104. package/dist/esm/ku4-col.entry.js +1 -1
  105. package/dist/esm/ku4-drawer.entry.js +1 -1
  106. package/dist/esm/ku4-feature.entry.js +2 -2
  107. package/dist/esm/ku4-focus-trap.entry.js +3 -3
  108. package/dist/esm/ku4-form.entry.js +3 -3
  109. package/dist/esm/ku4-grid.entry.js +1 -1
  110. package/dist/esm/ku4-label.entry.js +2 -2
  111. package/dist/esm/ku4-mask.entry.js +3 -3
  112. package/dist/esm/ku4-modal.entry.js +3 -3
  113. package/dist/esm/ku4-panel.entry.js +1 -1
  114. package/dist/esm/ku4-preview.entry.js +34 -5
  115. package/dist/esm/ku4-tab-list.entry.js +4 -4
  116. package/dist/esm/ku4-tab-panel.entry.js +3 -3
  117. package/dist/esm/ku4-tab.entry.js +3 -3
  118. package/dist/esm/ku4-table.entry.js +1 -1
  119. package/dist/esm/ku4-tooltip.entry.js +2 -2
  120. package/dist/esm/ku4-validation.entry.js +2 -2
  121. package/dist/esm/ku4web-components.js +101 -6
  122. package/dist/esm/loader.js +17 -1
  123. package/dist/esm/uid-3716c2c4.js +9 -0
  124. package/dist/esm/{uid-fbebccfd.js → uid-d593801c.js} +1 -1
  125. package/dist/esm-es5/index-5448a818.js +1 -0
  126. package/dist/esm-es5/index-77bdf1f1.js +1 -0
  127. package/dist/esm-es5/ku4-carousel-controls.entry.js +1 -1
  128. package/dist/esm-es5/ku4-carousel.entry.js +1 -1
  129. package/dist/esm-es5/ku4-feature.entry.js +1 -1
  130. package/dist/esm-es5/ku4-focus-trap.entry.js +1 -1
  131. package/dist/esm-es5/ku4-form.entry.js +1 -1
  132. package/dist/esm-es5/ku4-label.entry.js +1 -1
  133. package/dist/esm-es5/ku4-mask.entry.js +1 -1
  134. package/dist/esm-es5/ku4-modal.entry.js +1 -1
  135. package/dist/esm-es5/ku4-preview.entry.js +1 -1
  136. package/dist/esm-es5/ku4-tab-list.entry.js +1 -1
  137. package/dist/esm-es5/ku4-tab-panel.entry.js +1 -1
  138. package/dist/esm-es5/ku4-tab.entry.js +1 -1
  139. package/dist/esm-es5/ku4-tooltip.entry.js +1 -1
  140. package/dist/esm-es5/ku4-validation.entry.js +1 -1
  141. package/dist/esm-es5/uid-d593801c.js +1 -0
  142. package/dist/index.js +1 -1
  143. package/dist/ku4web-components/app-globals-0f993ce5.js +3 -0
  144. package/dist/ku4web-components/app-globals-497eb362.system.js +1 -0
  145. package/dist/ku4web-components/css-shim-10e6e2ae.js +4 -0
  146. package/dist/ku4web-components/css-shim-c8dd4551.system.js +1 -0
  147. package/dist/ku4web-components/dom-67d1e45e.system.js +21 -0
  148. package/dist/ku4web-components/dom-7cd9cf71.js +73 -0
  149. package/dist/ku4web-components/index-1c93827a.system.js +1 -0
  150. package/dist/ku4web-components/index-29f2b09f.system.js +1 -0
  151. package/dist/ku4web-components/index-5d0cb00d.system.js +1 -0
  152. package/dist/ku4web-components/index-6cfd87e4.js +3 -0
  153. package/dist/ku4web-components/index-a02dcfc8.js +3057 -0
  154. package/dist/ku4web-components/index-aa119486.js +3 -0
  155. package/dist/ku4web-components/index.esm.js +1 -0
  156. package/dist/ku4web-components/index.system.js +1 -0
  157. package/dist/ku4web-components/ku4-carousel-controls.entry.js +89 -0
  158. package/dist/ku4web-components/ku4-carousel-controls.system.entry.js +1 -0
  159. package/dist/ku4web-components/ku4-carousel-slide.entry.js +47 -0
  160. package/dist/ku4web-components/ku4-carousel-slide.system.entry.js +1 -0
  161. package/dist/ku4web-components/ku4-carousel.entry.js +175 -0
  162. package/dist/ku4web-components/ku4-carousel.system.entry.js +1 -0
  163. package/dist/ku4web-components/ku4-col.entry.js +75 -0
  164. package/dist/ku4web-components/ku4-col.system.entry.js +1 -0
  165. package/dist/ku4web-components/ku4-drawer.entry.js +35 -0
  166. package/dist/ku4web-components/ku4-drawer.system.entry.js +1 -0
  167. package/dist/ku4web-components/ku4-feature.entry.js +29 -0
  168. package/dist/ku4web-components/ku4-feature.system.entry.js +1 -0
  169. package/dist/ku4web-components/ku4-focus-trap.entry.js +323 -0
  170. package/dist/ku4web-components/ku4-focus-trap.system.entry.js +1 -0
  171. package/dist/ku4web-components/ku4-form.entry.js +120 -0
  172. package/dist/ku4web-components/ku4-form.system.entry.js +1 -0
  173. package/dist/ku4web-components/ku4-grid.entry.js +108 -0
  174. package/dist/ku4web-components/ku4-grid.system.entry.js +1 -0
  175. package/dist/ku4web-components/ku4-label.entry.js +70 -0
  176. package/dist/ku4web-components/ku4-label.system.entry.js +1 -0
  177. package/dist/ku4web-components/ku4-mask.entry.js +343 -0
  178. package/dist/ku4web-components/ku4-mask.system.entry.js +1 -0
  179. package/dist/ku4web-components/ku4-modal.entry.js +80 -0
  180. package/dist/ku4web-components/ku4-modal.system.entry.js +1 -0
  181. package/dist/ku4web-components/ku4-panel.entry.js +49 -0
  182. package/dist/ku4web-components/ku4-panel.system.entry.js +1 -0
  183. package/dist/ku4web-components/ku4-preview.entry.js +128 -0
  184. package/dist/ku4web-components/ku4-preview.system.entry.js +1 -0
  185. package/dist/ku4web-components/ku4-tab-list.entry.js +76 -0
  186. package/dist/ku4web-components/ku4-tab-list.system.entry.js +1 -0
  187. package/dist/ku4web-components/ku4-tab-panel.entry.js +72 -0
  188. package/dist/ku4web-components/ku4-tab-panel.system.entry.js +1 -0
  189. package/dist/ku4web-components/ku4-tab.entry.js +63 -0
  190. package/dist/ku4web-components/ku4-tab.system.entry.js +1 -0
  191. package/dist/ku4web-components/ku4-table.entry.js +79 -0
  192. package/dist/ku4web-components/ku4-table.system.entry.js +1 -0
  193. package/dist/ku4web-components/ku4-tooltip.entry.js +120 -0
  194. package/dist/ku4web-components/ku4-tooltip.system.entry.js +1 -0
  195. package/dist/ku4web-components/ku4-validation.entry.js +162 -0
  196. package/dist/ku4web-components/ku4-validation.system.entry.js +1 -0
  197. package/dist/ku4web-components/ku4web-components.css +299 -1
  198. package/dist/ku4web-components/ku4web-components.esm.js +129 -1
  199. package/dist/ku4web-components/ku4web-components.js +1 -1
  200. package/dist/ku4web-components/ku4web-components.system.js +1 -0
  201. package/dist/ku4web-components/{p-c6a2f4ba.entry.js → p-046b3990.entry.js} +1 -1
  202. package/dist/ku4web-components/{p-018d598f.entry.js → p-0b777b57.entry.js} +1 -1
  203. package/dist/ku4web-components/p-0de744b1.system.js +1 -0
  204. package/dist/ku4web-components/{p-c760ec1e.system.entry.js → p-0f1646ca.system.entry.js} +1 -1
  205. package/dist/ku4web-components/p-14752b72.system.js +1 -0
  206. package/dist/ku4web-components/{p-5d39e051.system.entry.js → p-17c2a7ac.system.entry.js} +1 -1
  207. package/dist/ku4web-components/{p-536d6073.entry.js → p-1abe6f26.entry.js} +1 -1
  208. package/dist/ku4web-components/{p-7bac5d20.system.entry.js → p-1e19bc01.system.entry.js} +1 -1
  209. package/dist/ku4web-components/{p-dfc33643.system.entry.js → p-27647af0.system.entry.js} +1 -1
  210. package/dist/ku4web-components/p-2ee63f57.system.js +1 -1
  211. package/dist/ku4web-components/{p-973be48d.system.entry.js → p-3deab7f6.system.entry.js} +1 -1
  212. package/dist/ku4web-components/{p-23b35ab3.system.entry.js → p-4ecd9b1d.system.entry.js} +1 -1
  213. package/dist/ku4web-components/p-563d1517.system.js +1 -0
  214. package/dist/ku4web-components/p-5a54ccf4.js +1 -0
  215. package/dist/ku4web-components/{p-2681e152.system.entry.js → p-5e8921ef.system.entry.js} +1 -1
  216. package/dist/ku4web-components/{p-6459c75c.system.entry.js → p-6509d3e7.system.entry.js} +1 -1
  217. package/dist/ku4web-components/p-791e2dfc.js +1 -0
  218. package/dist/ku4web-components/{p-4a012d6d.entry.js → p-7b6ca6a8.entry.js} +1 -1
  219. package/dist/ku4web-components/{p-ec165afd.system.entry.js → p-7b93a362.system.entry.js} +1 -1
  220. package/dist/ku4web-components/{p-2faea8a9.system.entry.js → p-8173d389.system.entry.js} +1 -1
  221. package/dist/ku4web-components/{p-13c90d3d.system.entry.js → p-96033515.system.entry.js} +1 -1
  222. package/dist/ku4web-components/{p-e7d401cc.system.entry.js → p-9778d082.system.entry.js} +1 -1
  223. package/dist/ku4web-components/{p-09fb8c34.entry.js → p-9b01a63a.entry.js} +1 -1
  224. package/dist/ku4web-components/p-a110d244.js +1 -0
  225. package/dist/ku4web-components/{p-ff9db3e7.entry.js → p-ac7884f3.entry.js} +1 -1
  226. package/dist/ku4web-components/{p-27d5ad45.system.entry.js → p-ae7ce1fe.system.entry.js} +1 -1
  227. package/dist/ku4web-components/{p-be0d8b6a.entry.js → p-b1680ef4.entry.js} +1 -1
  228. package/dist/ku4web-components/{p-2f1425ac.entry.js → p-bb5410b5.entry.js} +1 -1
  229. package/dist/ku4web-components/{p-cbee5388.system.entry.js → p-bb698020.system.entry.js} +1 -1
  230. package/dist/ku4web-components/{p-eed33b36.entry.js → p-d42bd64d.entry.js} +1 -1
  231. package/dist/ku4web-components/{p-7a3871e3.entry.js → p-d4877fdf.entry.js} +1 -1
  232. package/dist/ku4web-components/{p-1ebea98a.entry.js → p-da8a8b83.entry.js} +1 -1
  233. package/dist/ku4web-components/{p-507093a6.entry.js → p-de3b2ba1.entry.js} +1 -1
  234. package/dist/ku4web-components/{p-f791cd06.entry.js → p-e11fbd79.entry.js} +1 -1
  235. package/dist/ku4web-components/{p-991d53c6.entry.js → p-ea1961f5.entry.js} +1 -1
  236. package/dist/ku4web-components/shadow-css-38a1326b.js +388 -0
  237. package/dist/ku4web-components/shadow-css-7fde17ac.system.js +13 -0
  238. package/dist/ku4web-components/uid-2ed9f227.system.js +1 -0
  239. package/dist/ku4web-components/uid-3716c2c4.js +9 -0
  240. package/package.json +5 -5
  241. package/react/index.js +1 -1
  242. package/react/index.mjs +1 -1
  243. package/vue/index.js +1 -1
  244. package/vue/index.mjs +1 -1
  245. package/vue3/index.js +1 -1
  246. package/vue3/index.mjs +1 -1
  247. package/dist/cjs/index-57e2cfa5.js +0 -10
  248. package/dist/cjs/index-b46d22c6.js +0 -14
  249. package/dist/esm/index-919b08e6.js +0 -3
  250. package/dist/esm/index-f9890388.js +0 -3
  251. package/dist/esm-es5/index-919b08e6.js +0 -1
  252. package/dist/esm-es5/index-f9890388.js +0 -1
  253. package/dist/esm-es5/uid-fbebccfd.js +0 -1
  254. package/dist/ku4web-components/p-16f6027a.js +0 -1
  255. package/dist/ku4web-components/p-50ea6684.js +0 -1
  256. package/dist/ku4web-components/p-c38c9cd1.system.js +0 -1
  257. package/dist/ku4web-components/p-cbb6fb91.js +0 -1
  258. package/dist/ku4web-components/p-e9770900.system.js +0 -1
  259. package/dist/ku4web-components/p-f8a2bf9b.system.js +0 -1
@@ -0,0 +1,82 @@
1
+ /** START | style resets **/
2
+ button {
3
+ margin: 0;
4
+ padding: 0;
5
+ border: none;
6
+ background: transparent;
7
+ -webkit-appearance: none;
8
+ }
9
+
10
+ /** END | style resets **/
11
+ :host {
12
+ position: relative;
13
+ display: block;
14
+ width: 100%;
15
+ padding: 20px 30px;
16
+ background-color: #eee;
17
+ text-align: center;
18
+ color: #aaa;
19
+ cursor: pointer;
20
+ }
21
+
22
+ :host(:focus) {
23
+ background-color: #eee;
24
+ color: #666;
25
+ z-index: 2;
26
+ }
27
+
28
+ :host(:hover) {
29
+ background-color: #eee;
30
+ color: #666;
31
+ }
32
+
33
+ :host(:active) {
34
+ background-color: #fff;
35
+ color: #333;
36
+ }
37
+
38
+ :host([selected]) {
39
+ border-top: 1px solid #ccc;
40
+ border-bottom: 1px solid #ccc;
41
+ background-color: #fff;
42
+ color: #444;
43
+ }
44
+
45
+ button {
46
+ display: flex;
47
+ flex-direction: row;
48
+ width: 100%;
49
+ }
50
+
51
+ @media only screen and (min-width: 768px) {
52
+ :host {
53
+ width: auto;
54
+ border-top: 1px solid #ccc;
55
+ border-right: 1px solid #ccc;
56
+ border-top-left-radius: 4px;
57
+ border-top-right-radius: 4px;
58
+ background-color: #eee;
59
+ }
60
+
61
+ :host(:first-of-type) {
62
+ border-left: 1px solid #ccc;
63
+ }
64
+
65
+ :host([selected]) {
66
+ padding-bottom: 1px;
67
+ border-top: 1px solid #ccc;
68
+ border-bottom: none;
69
+ }
70
+
71
+ :host([selected]):after {
72
+ content: " ";
73
+ position: absolute;
74
+ display: block;
75
+ left: 0;
76
+ bottom: -1px;
77
+ width: 100%;
78
+ height: 1px;
79
+ box-sizing: border-box;
80
+ background-color: inherit;
81
+ }
82
+ }
@@ -0,0 +1,191 @@
1
+ import { Component, Element, Host, Prop, State, Method, Listen, Event, h, } from '@stencil/core';
2
+ import uid from '../../capabilities/identity/uid';
3
+ /**
4
+ * @description ku4-tab
5
+ */
6
+ export class Ku4Tab {
7
+ constructor() {
8
+ /**
9
+ * Active when true
10
+ */
11
+ this.selected = false;
12
+ }
13
+ handleClick(e) {
14
+ this.tabClick.emit(e);
15
+ }
16
+ handleKeyUp(e) {
17
+ this.tabKeyUp.emit(e);
18
+ }
19
+ /**
20
+ * Set this tab as selected.
21
+ */
22
+ async select() {
23
+ this.selected = true;
24
+ this.panel.select();
25
+ this.host.focus();
26
+ }
27
+ /**
28
+ * Unset this tab as selected
29
+ */
30
+ async deselect() {
31
+ this.selected = false;
32
+ this.panel.deselect();
33
+ }
34
+ /**
35
+ * Connect this tab to a panel
36
+ * @param {HTMLElement} panel - The target ku4-tab-panel HTMLElement
37
+ */
38
+ async connect(panel) {
39
+ panel.connect(this);
40
+ }
41
+ get id() {
42
+ return this.host.id || uid();
43
+ }
44
+ /**
45
+ * @param {Ku4TabPanel} panel - panel to assign to this tab
46
+ * @internal
47
+ */
48
+ $assignPanel(panel) {
49
+ this.panel = panel;
50
+ }
51
+ render() {
52
+ const { selected, panel } = this;
53
+ return (h(Host, { id: this.host.id || uid(), role: "tab", type: "button", tabIndex: selected ? 0 : -1, "aria-controls": panel && panel.id, "aria-selected": selected ? 'true' : 'false' },
54
+ h("slot", null)));
55
+ }
56
+ static get is() { return "ku4-tab"; }
57
+ static get encapsulation() { return "shadow"; }
58
+ static get originalStyleUrls() { return {
59
+ "$": ["ku4-tab.scss"]
60
+ }; }
61
+ static get styleUrls() { return {
62
+ "$": ["ku4-tab.css"]
63
+ }; }
64
+ static get properties() { return {
65
+ "selected": {
66
+ "type": "boolean",
67
+ "mutable": true,
68
+ "complexType": {
69
+ "original": "boolean",
70
+ "resolved": "boolean",
71
+ "references": {}
72
+ },
73
+ "required": false,
74
+ "optional": false,
75
+ "docs": {
76
+ "tags": [],
77
+ "text": "Active when true"
78
+ },
79
+ "attribute": "selected",
80
+ "reflect": true,
81
+ "defaultValue": "false"
82
+ }
83
+ }; }
84
+ static get states() { return {
85
+ "panel": {}
86
+ }; }
87
+ static get events() { return [{
88
+ "method": "tabClick",
89
+ "name": "ku4TabClick",
90
+ "bubbles": true,
91
+ "cancelable": true,
92
+ "composed": true,
93
+ "docs": {
94
+ "tags": [],
95
+ "text": "Event fired when this tab is clicked."
96
+ },
97
+ "complexType": {
98
+ "original": "any",
99
+ "resolved": "any",
100
+ "references": {}
101
+ }
102
+ }, {
103
+ "method": "tabKeyUp",
104
+ "name": "ku4TabKeyup",
105
+ "bubbles": true,
106
+ "cancelable": true,
107
+ "composed": true,
108
+ "docs": {
109
+ "tags": [],
110
+ "text": "Event fired when this tab is keyup."
111
+ },
112
+ "complexType": {
113
+ "original": "any",
114
+ "resolved": "any",
115
+ "references": {}
116
+ }
117
+ }]; }
118
+ static get methods() { return {
119
+ "select": {
120
+ "complexType": {
121
+ "signature": "() => Promise<void>",
122
+ "parameters": [],
123
+ "references": {
124
+ "Promise": {
125
+ "location": "global"
126
+ }
127
+ },
128
+ "return": "Promise<void>"
129
+ },
130
+ "docs": {
131
+ "text": "Set this tab as selected.",
132
+ "tags": []
133
+ }
134
+ },
135
+ "deselect": {
136
+ "complexType": {
137
+ "signature": "() => Promise<void>",
138
+ "parameters": [],
139
+ "references": {
140
+ "Promise": {
141
+ "location": "global"
142
+ }
143
+ },
144
+ "return": "Promise<void>"
145
+ },
146
+ "docs": {
147
+ "text": "Unset this tab as selected",
148
+ "tags": []
149
+ }
150
+ },
151
+ "connect": {
152
+ "complexType": {
153
+ "signature": "(panel: any) => Promise<void>",
154
+ "parameters": [{
155
+ "tags": [{
156
+ "name": "param",
157
+ "text": "panel - The target ku4-tab-panel HTMLElement"
158
+ }],
159
+ "text": "- The target ku4-tab-panel HTMLElement"
160
+ }],
161
+ "references": {
162
+ "Promise": {
163
+ "location": "global"
164
+ }
165
+ },
166
+ "return": "Promise<void>"
167
+ },
168
+ "docs": {
169
+ "text": "Connect this tab to a panel",
170
+ "tags": [{
171
+ "name": "param",
172
+ "text": "panel - The target ku4-tab-panel HTMLElement"
173
+ }]
174
+ }
175
+ }
176
+ }; }
177
+ static get elementRef() { return "host"; }
178
+ static get listeners() { return [{
179
+ "name": "click",
180
+ "method": "handleClick",
181
+ "target": undefined,
182
+ "capture": false,
183
+ "passive": false
184
+ }, {
185
+ "name": "keyup",
186
+ "method": "handleKeyUp",
187
+ "target": undefined,
188
+ "capture": false,
189
+ "passive": false
190
+ }]; }
191
+ }
@@ -0,0 +1,6 @@
1
+ :host {
2
+ position: relative;
3
+ display: flex;
4
+ flex-direction: row;
5
+ flex-wrap: wrap;
6
+ }
@@ -0,0 +1,118 @@
1
+ import { Component, Host, Element, Listen, Method, h } from '@stencil/core';
2
+ import { Key } from 'ku4es-ui-kernel';
3
+ import uid from '../../capabilities/identity/uid';
4
+ /**
5
+ * @description ku4-tab-list
6
+ */
7
+ export class Ku4TabList {
8
+ handleTabClick({ target }) {
9
+ this.tabs.includes(target) && this.open(target);
10
+ }
11
+ handleTabKeyUp({ target, detail: e }) {
12
+ if (!(this.tabs.includes(target))) {
13
+ return;
14
+ }
15
+ if (Key.left.didFire(e)) {
16
+ this.open(this.previous(target));
17
+ }
18
+ if (Key.right.didFire(e)) {
19
+ this.open(this.next(target));
20
+ }
21
+ }
22
+ /**
23
+ * Open a ku4-tab in this ku4-tab-list.
24
+ * @param {Ku4Tab} tab - ku4-tab target to open.
25
+ */
26
+ async open(tab) {
27
+ return this.reset().select(tab);
28
+ }
29
+ select(tab) {
30
+ tab.select();
31
+ return this;
32
+ }
33
+ deselect(tab) {
34
+ tab.deselect();
35
+ return this;
36
+ }
37
+ reset() {
38
+ this.tabs.forEach(tab => this.deselect(tab));
39
+ return this;
40
+ }
41
+ previous(tab) {
42
+ const { tabs, tabs: { length } } = this;
43
+ const index = tabs.indexOf(tab) - 1;
44
+ return tabs[index > -1 ? index : length - 1];
45
+ }
46
+ next(tab) {
47
+ const { tabs, tabs: { length } } = this;
48
+ const index = tabs.indexOf(tab) + 1;
49
+ return tabs[index < length ? index : 0];
50
+ }
51
+ componentDidRender() {
52
+ const tabs = [];
53
+ const panels = [];
54
+ [].slice.call(this.host.children).forEach((child) => {
55
+ if (child.tagName === 'KU4-TAB') {
56
+ tabs.push(child);
57
+ }
58
+ if (child.tagName === 'KU4-TAB-PANEL') {
59
+ panels.push(child);
60
+ }
61
+ });
62
+ this.tabs = tabs;
63
+ this.tabs.forEach((tab, index) => tab.connect(panels[index]));
64
+ }
65
+ render() {
66
+ return (h(Host, { id: this.host.id || uid(), role: "tablist", "aria-owns": this.host.id || uid() },
67
+ h("slot", null)));
68
+ }
69
+ static get is() { return "ku4-tab-list"; }
70
+ static get encapsulation() { return "shadow"; }
71
+ static get originalStyleUrls() { return {
72
+ "$": ["ku4-tab-list.scss"]
73
+ }; }
74
+ static get styleUrls() { return {
75
+ "$": ["ku4-tab-list.css"]
76
+ }; }
77
+ static get methods() { return {
78
+ "open": {
79
+ "complexType": {
80
+ "signature": "(tab: any) => Promise<this>",
81
+ "parameters": [{
82
+ "tags": [{
83
+ "name": "param",
84
+ "text": "tab - ku4-tab target to open."
85
+ }],
86
+ "text": "- ku4-tab target to open."
87
+ }],
88
+ "references": {
89
+ "Promise": {
90
+ "location": "global"
91
+ }
92
+ },
93
+ "return": "Promise<this>"
94
+ },
95
+ "docs": {
96
+ "text": "Open a ku4-tab in this ku4-tab-list.",
97
+ "tags": [{
98
+ "name": "param",
99
+ "text": "tab - ku4-tab target to open."
100
+ }]
101
+ }
102
+ }
103
+ }; }
104
+ static get elementRef() { return "host"; }
105
+ static get listeners() { return [{
106
+ "name": "ku4TabClick",
107
+ "method": "handleTabClick",
108
+ "target": undefined,
109
+ "capture": false,
110
+ "passive": false
111
+ }, {
112
+ "name": "ku4TabKeyup",
113
+ "method": "handleTabKeyUp",
114
+ "target": undefined,
115
+ "capture": false,
116
+ "passive": false
117
+ }]; }
118
+ }
@@ -0,0 +1,26 @@
1
+ :host {
2
+ -webkit-backface-visibility: hidden;
3
+ display: block;
4
+ width: 100%;
5
+ height: auto;
6
+ max-height: 0;
7
+ transition: max-height 0.4s, padding 0.6s;
8
+ overflow: auto;
9
+ }
10
+
11
+ @media only screen and (min-width: 768px) {
12
+ :host {
13
+ display: none;
14
+ border-top: 1px solid #ccc;
15
+ border-bottom: 1px solid #ccc;
16
+ max-height: initial !important;
17
+ transition: none;
18
+ order: 2;
19
+ }
20
+
21
+ :host([selected]) {
22
+ display: block;
23
+ max-height: initial !important;
24
+ transition: none;
25
+ }
26
+ }
@@ -0,0 +1,166 @@
1
+ import { Component, Element, Host, Prop, State, Method, h, Listen } from '@stencil/core';
2
+ import uid from '../../capabilities/identity/uid';
3
+ /**
4
+ * @description ku4-tab-panel
5
+ */
6
+ export class Ku4TabPanel {
7
+ constructor() {
8
+ /**
9
+ * Set true to display panel
10
+ */
11
+ this.selected = false;
12
+ this.maxHeight = this.selected ? 'none' : '0px';
13
+ }
14
+ handleTransitionEnd() {
15
+ this.maxHeight = this.selected ? 'none' : '0px';
16
+ }
17
+ /**
18
+ * Set this panel as selected.
19
+ */
20
+ async select() {
21
+ if (this.selected) {
22
+ return;
23
+ }
24
+ this.selected = true;
25
+ if (this.hasTransition) {
26
+ this.maxHeight = `${this.host.scrollHeight}px`;
27
+ }
28
+ else {
29
+ this.handleTransitionEnd();
30
+ }
31
+ }
32
+ /**
33
+ * Unset this panel as selected.
34
+ */
35
+ async deselect() {
36
+ if (!this.selected) {
37
+ return;
38
+ }
39
+ this.selected = false;
40
+ this.host.style.maxHeight = `${this.host.scrollHeight}px`;
41
+ if (this.hasTransition) {
42
+ this.maxHeight = '0px';
43
+ }
44
+ else {
45
+ this.handleTransitionEnd();
46
+ }
47
+ }
48
+ /**
49
+ * Connect this panel to a tab.
50
+ * @param {Ku4Tab} tab - Tab to connect to this panel
51
+ */
52
+ async connect(tab) {
53
+ tab.$assignPanel(this);
54
+ this.tab = tab;
55
+ }
56
+ get hasTransition() {
57
+ const transition = window
58
+ .getComputedStyle(this.host)
59
+ .getPropertyValue('transition');
60
+ return !/none/.test(transition);
61
+ }
62
+ render() {
63
+ const { selected, tab, maxHeight } = this;
64
+ return (h(Host, { role: "tabpanel", id: this.host.id || uid(), "aria-hidden": selected ? 'false' : 'true', "aria-labelledby": tab && tab.id, tabIndex: selected ? 0 : -1, style: { maxHeight } },
65
+ h("slot", null)));
66
+ }
67
+ static get is() { return "ku4-tab-panel"; }
68
+ static get encapsulation() { return "shadow"; }
69
+ static get originalStyleUrls() { return {
70
+ "$": ["ku4-tab-panel.scss"]
71
+ }; }
72
+ static get styleUrls() { return {
73
+ "$": ["ku4-tab-panel.css"]
74
+ }; }
75
+ static get properties() { return {
76
+ "selected": {
77
+ "type": "boolean",
78
+ "mutable": true,
79
+ "complexType": {
80
+ "original": "boolean",
81
+ "resolved": "boolean",
82
+ "references": {}
83
+ },
84
+ "required": false,
85
+ "optional": false,
86
+ "docs": {
87
+ "tags": [],
88
+ "text": "Set true to display panel"
89
+ },
90
+ "attribute": "selected",
91
+ "reflect": true,
92
+ "defaultValue": "false"
93
+ }
94
+ }; }
95
+ static get states() { return {
96
+ "maxHeight": {},
97
+ "tab": {}
98
+ }; }
99
+ static get methods() { return {
100
+ "select": {
101
+ "complexType": {
102
+ "signature": "() => Promise<void>",
103
+ "parameters": [],
104
+ "references": {
105
+ "Promise": {
106
+ "location": "global"
107
+ }
108
+ },
109
+ "return": "Promise<void>"
110
+ },
111
+ "docs": {
112
+ "text": "Set this panel as selected.",
113
+ "tags": []
114
+ }
115
+ },
116
+ "deselect": {
117
+ "complexType": {
118
+ "signature": "() => Promise<void>",
119
+ "parameters": [],
120
+ "references": {
121
+ "Promise": {
122
+ "location": "global"
123
+ }
124
+ },
125
+ "return": "Promise<void>"
126
+ },
127
+ "docs": {
128
+ "text": "Unset this panel as selected.",
129
+ "tags": []
130
+ }
131
+ },
132
+ "connect": {
133
+ "complexType": {
134
+ "signature": "(tab: any) => Promise<void>",
135
+ "parameters": [{
136
+ "tags": [{
137
+ "name": "param",
138
+ "text": "tab - Tab to connect to this panel"
139
+ }],
140
+ "text": "- Tab to connect to this panel"
141
+ }],
142
+ "references": {
143
+ "Promise": {
144
+ "location": "global"
145
+ }
146
+ },
147
+ "return": "Promise<void>"
148
+ },
149
+ "docs": {
150
+ "text": "Connect this panel to a tab.",
151
+ "tags": [{
152
+ "name": "param",
153
+ "text": "tab - Tab to connect to this panel"
154
+ }]
155
+ }
156
+ }
157
+ }; }
158
+ static get elementRef() { return "host"; }
159
+ static get listeners() { return [{
160
+ "name": "transitionend",
161
+ "method": "handleTransitionEnd",
162
+ "target": undefined,
163
+ "capture": false,
164
+ "passive": false
165
+ }]; }
166
+ }
@@ -0,0 +1,116 @@
1
+ ku4-table {
2
+ position: relative;
3
+ display: block;
4
+ }
5
+ @media only screen and (min-width: 1px) and (max-width: 767px) {
6
+ @supports (display: contents) {
7
+ ku4-table[stack-xs=column] table {
8
+ display: flex;
9
+ flex-direction: column;
10
+ }
11
+ ku4-table[stack-xs=column] thead,
12
+ ku4-table[stack-xs=column] tbody,
13
+ ku4-table[stack-xs=column] tfoot,
14
+ ku4-table[stack-xs=column] tr {
15
+ display: contents;
16
+ }
17
+ ku4-table[stack-xs=column] thead .ku4-head-header {
18
+ display: none;
19
+ }
20
+ ku4-table[stack-xs=column] tbody th,
21
+ ku4-table[stack-xs=column] tfoot th {
22
+ position: absolute;
23
+ display: block;
24
+ width: 0;
25
+ height: 0;
26
+ margin: 0;
27
+ padding: 0;
28
+ line-height: 0;
29
+ font-size: 0;
30
+ }
31
+ ku4-table[stack-xs=column] tbody td,
32
+ ku4-table[stack-xs=column] tfoot td {
33
+ display: flex;
34
+ }
35
+ ku4-table[stack-xs=column] tbody td:before,
36
+ ku4-table[stack-xs=column] tfoot td:before {
37
+ content: attr(data-ku4-row-header);
38
+ }
39
+ }
40
+ ku4-table[stack-xs=row] table {
41
+ display: flex;
42
+ flex-direction: column;
43
+ }
44
+ ku4-table[stack-xs=row] thead th,
45
+ ku4-table[stack-xs=row] thead td {
46
+ display: none;
47
+ }
48
+ ku4-table[stack-xs=row] thead,
49
+ ku4-table[stack-xs=row] tbody,
50
+ ku4-table[stack-xs=row] tfoot,
51
+ ku4-table[stack-xs=row] tr,
52
+ ku4-table[stack-xs=row] th,
53
+ ku4-table[stack-xs=row] td {
54
+ display: block;
55
+ }
56
+ ku4-table[stack-xs=row] tbody td:before,
57
+ ku4-table[stack-xs=row] tfoot td:before {
58
+ content: attr(data-ku4-column-header);
59
+ }
60
+ }
61
+ @media only screen and (min-width: 768px) and (max-width: 991px) {
62
+ @supports (display: contents) {
63
+ ku4-table[stack-sm=column] table {
64
+ display: flex;
65
+ flex-direction: column;
66
+ }
67
+ ku4-table[stack-sm=column] thead,
68
+ ku4-table[stack-sm=column] tbody,
69
+ ku4-table[stack-sm=column] tfoot,
70
+ ku4-table[stack-sm=column] tr {
71
+ display: contents;
72
+ }
73
+ ku4-table[stack-sm=column] thead .ku4-head-header {
74
+ display: none;
75
+ }
76
+ ku4-table[stack-sm=column] tbody th,
77
+ ku4-table[stack-sm=column] tfoot th {
78
+ position: absolute;
79
+ display: block;
80
+ width: 0;
81
+ height: 0;
82
+ margin: 0;
83
+ padding: 0;
84
+ line-height: 0;
85
+ font-size: 0;
86
+ }
87
+ ku4-table[stack-sm=column] tbody td,
88
+ ku4-table[stack-sm=column] tfoot td {
89
+ display: flex;
90
+ }
91
+ ku4-table[stack-sm=column] tbody td:before,
92
+ ku4-table[stack-sm=column] tfoot td:before {
93
+ content: attr(data-ku4-row-header);
94
+ }
95
+ }
96
+ ku4-table[stack-sm=row] table {
97
+ display: flex;
98
+ flex-direction: column;
99
+ }
100
+ ku4-table[stack-sm=row] thead th,
101
+ ku4-table[stack-sm=row] thead td {
102
+ display: none;
103
+ }
104
+ ku4-table[stack-sm=row] thead,
105
+ ku4-table[stack-sm=row] tbody,
106
+ ku4-table[stack-sm=row] tfoot,
107
+ ku4-table[stack-sm=row] tr,
108
+ ku4-table[stack-sm=row] th,
109
+ ku4-table[stack-sm=row] td {
110
+ display: block;
111
+ }
112
+ ku4-table[stack-sm=row] tbody td:before,
113
+ ku4-table[stack-sm=row] tfoot td:before {
114
+ content: attr(data-ku4-column-header);
115
+ }
116
+ }