@kubex/zinc 0.0.3 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (599) hide show
  1. package/.editorconfig +18 -0
  2. package/.eslintignore +8 -0
  3. package/.eslintrc.cjs +208 -0
  4. package/.github/workflows/eleventy_build.yml +42 -0
  5. package/.github/workflows/js_build_and_deploy.yaml +65 -0
  6. package/custom-elements-manifest.config.js +230 -0
  7. package/docs/_includes/component.njk +340 -0
  8. package/docs/_includes/default.njk +137 -0
  9. package/docs/_includes/sidebar.njk +24 -0
  10. package/docs/_utilities/active-links.cjs +41 -0
  11. package/docs/_utilities/anchor-headings.cjs +74 -0
  12. package/docs/_utilities/cem.cjs +89 -0
  13. package/docs/_utilities/code-previews.cjs +98 -0
  14. package/docs/_utilities/copy-code-buttons.cjs +26 -0
  15. package/docs/_utilities/external-links.cjs +53 -0
  16. package/docs/_utilities/highlight-code.cjs +74 -0
  17. package/docs/_utilities/markdown.cjs +74 -0
  18. package/docs/_utilities/prettier.cjs +26 -0
  19. package/docs/_utilities/replacer.cjs +24 -0
  20. package/docs/_utilities/scrolling-tables.cjs +23 -0
  21. package/docs/_utilities/strings.cjs +16 -0
  22. package/docs/_utilities/table-of-contents.cjs +48 -0
  23. package/docs/_utilities/typography.cjs +24 -0
  24. package/docs/assets/icons.json +57989 -0
  25. package/docs/assets/images/chrome.png +0 -0
  26. package/docs/assets/images/edge.png +0 -0
  27. package/docs/assets/images/firefox.png +0 -0
  28. package/docs/assets/images/opera.png +0 -0
  29. package/docs/assets/images/safari.png +0 -0
  30. package/docs/assets/images/watermark.svg +1 -0
  31. package/docs/assets/rip.js +78 -0
  32. package/docs/assets/scripts/code-previews.js +250 -0
  33. package/docs/assets/scripts/docs.js +374 -0
  34. package/docs/assets/scripts/search.js +441 -0
  35. package/docs/assets/scripts/turbo.js +29 -0
  36. package/docs/assets/styles/code-previews.css +169 -0
  37. package/docs/assets/styles/docs.css +1168 -0
  38. package/docs/assets/styles/search.css +347 -0
  39. package/docs/eleventy.config.cjs +262 -0
  40. package/docs/pages/components/absolute-container.md +35 -0
  41. package/docs/pages/components/action-bar.md +58 -0
  42. package/docs/pages/components/alert.md +45 -0
  43. package/docs/pages/components/bulk-actions.md +26 -0
  44. package/docs/pages/components/button-group.md +78 -0
  45. package/docs/pages/components/button-menu.md +127 -0
  46. package/docs/pages/components/button.md +80 -0
  47. package/docs/pages/components/chart.md +27 -0
  48. package/docs/pages/components/checkbox-group.md +196 -0
  49. package/docs/pages/components/checkbox.md +157 -0
  50. package/docs/pages/components/chip.md +61 -0
  51. package/docs/pages/components/collapsible.md +52 -0
  52. package/docs/pages/components/cols.md +66 -0
  53. package/docs/pages/components/confirm.md +52 -0
  54. package/docs/pages/components/content-block.md +108 -0
  55. package/docs/pages/components/copy-button.md +22 -0
  56. package/docs/pages/components/data-select.md +54 -0
  57. package/docs/pages/components/data-table-filter.md +23 -0
  58. package/docs/pages/components/data-table-sort.md +20 -0
  59. package/docs/pages/components/data-table.md +74 -0
  60. package/docs/pages/components/datepicker.md +25 -0
  61. package/docs/pages/components/defined-label.md +26 -0
  62. package/docs/pages/components/dialog.md +145 -0
  63. package/docs/pages/components/dropdown.md +22 -0
  64. package/docs/pages/components/editor.md +26 -0
  65. package/docs/pages/components/empty-state.md +51 -0
  66. package/docs/pages/components/expanding-action.md +55 -0
  67. package/docs/pages/components/file.md +45 -0
  68. package/docs/pages/components/form-group.md +22 -0
  69. package/docs/pages/components/header.md +103 -0
  70. package/docs/pages/components/icon.md +322 -0
  71. package/docs/pages/components/inline-edit.md +41 -0
  72. package/docs/pages/components/input.md +261 -0
  73. package/docs/pages/components/item.md +78 -0
  74. package/docs/pages/components/linked-select.md +41 -0
  75. package/docs/pages/components/menu-item.md +22 -0
  76. package/docs/pages/components/menu.md +36 -0
  77. package/docs/pages/components/navbar.md +57 -0
  78. package/docs/pages/components/note.md +55 -0
  79. package/docs/pages/components/option.md +22 -0
  80. package/docs/pages/components/order-table.md +22 -0
  81. package/docs/pages/components/page-nav.md +23 -0
  82. package/docs/pages/components/pagination.md +22 -0
  83. package/docs/pages/components/pane.md +22 -0
  84. package/docs/pages/components/panel.md +124 -0
  85. package/docs/pages/components/popup.md +22 -0
  86. package/docs/pages/components/progress-bar.md +22 -0
  87. package/docs/pages/components/progress-tile.md +22 -0
  88. package/docs/pages/components/query-builder.md +148 -0
  89. package/docs/pages/components/radio-group.md +129 -0
  90. package/docs/pages/components/radio.md +20 -0
  91. package/docs/pages/components/rating.md +28 -0
  92. package/docs/pages/components/scroll-container.md +22 -0
  93. package/docs/pages/components/select.md +452 -0
  94. package/docs/pages/components/sidebar.md +28 -0
  95. package/docs/pages/components/simple-chart.md +23 -0
  96. package/docs/pages/components/skeleton.md +70 -0
  97. package/docs/pages/components/slideout.md +23 -0
  98. package/docs/pages/components/sp.md +87 -0
  99. package/docs/pages/components/split-button.md +32 -0
  100. package/docs/pages/components/split-pane.md +22 -0
  101. package/docs/pages/components/stat.md +24 -0
  102. package/docs/pages/components/status-indicator.md +13 -0
  103. package/docs/pages/components/stepper.md +20 -0
  104. package/docs/pages/components/style.md +106 -0
  105. package/docs/pages/components/table.md +22 -0
  106. package/docs/pages/components/tabs.md +57 -0
  107. package/docs/pages/components/textarea.md +120 -0
  108. package/docs/pages/components/tile-property.md +29 -0
  109. package/docs/pages/components/tile.md +51 -0
  110. package/docs/pages/components/timer.md +22 -0
  111. package/docs/pages/components/toggle.md +22 -0
  112. package/docs/pages/components/tooltip.md +242 -0
  113. package/docs/pages/components/vertical-stepper.md +22 -0
  114. package/docs/pages/components/well.md +13 -0
  115. package/docs/pages/getting-started/example-layout.md +143 -0
  116. package/docs/pages/getting-started/example-page.md +83 -0
  117. package/docs/pages/getting-started/form-controls.md +552 -0
  118. package/docs/pages/getting-started/form-examples.md +122 -0
  119. package/docs/pages/getting-started/table-examples.md +43 -0
  120. package/docs/pages/index.md +32 -0
  121. package/index.html +22 -0
  122. package/package.json +111 -11
  123. package/scripts/build.js +381 -0
  124. package/scripts/generator/generator.js +102 -0
  125. package/scripts/generator/index.js +17 -0
  126. package/scripts/generator/preprocess.js +20 -0
  127. package/scripts/generator/resolver.js +86 -0
  128. package/scripts/generator/tailwind.config.js +14 -0
  129. package/scripts/make-metadata.js +10 -0
  130. package/scripts/make-themes.js +27 -0
  131. package/scripts/plop/plopfile.js +63 -0
  132. package/scripts/plop/templates/component.hbs +43 -0
  133. package/scripts/plop/templates/define.hbs +12 -0
  134. package/scripts/plop/templates/docs.hbs +20 -0
  135. package/scripts/plop/templates/style.hbs +5 -0
  136. package/scripts/plop/templates/test.hbs +10 -0
  137. package/scss/_global-components.scss +4 -0
  138. package/scss/_global-spacing.scss +96 -0
  139. package/scss/_root.scss +202 -0
  140. package/scss/boot.scss +29 -0
  141. package/scss/mixins/_helper-mixins.scss +24 -0
  142. package/scss/mixins/_spacing-mixins.scss +84 -0
  143. package/scss/mixins/index.scss +2 -0
  144. package/scss/shared/_base.scss +138 -0
  145. package/scss/shared/_button.scss +27 -0
  146. package/scss/shared/_form-elements.scss +162 -0
  147. package/scss/shared/_opacity.scss +27 -0
  148. package/scss/shared/_reset.scss +288 -0
  149. package/scss/shared/_table.scss +73 -0
  150. package/scss/shared/divide.scss +41 -0
  151. package/scss/shared/index.scss +12 -0
  152. package/scss/shared/layout.scss +290 -0
  153. package/scss/shared/nav.scss +71 -0
  154. package/scss/themes/_dark.scss +277 -0
  155. package/scss/themes/_index.scss +3 -0
  156. package/scss/themes/_light.scss +540 -0
  157. package/scss/themes/_utility.scss +44 -0
  158. package/scss/variables/_spacing.scss +35 -0
  159. package/scss/variables/index.scss +1 -0
  160. package/src/components/absolute-container/absolute-container.component.ts +62 -0
  161. package/src/components/absolute-container/absolute-container.test.ts +10 -0
  162. package/src/components/absolute-container/index.ts +12 -0
  163. package/src/components/action-bar/action-bar.component.ts +41 -0
  164. package/src/components/action-bar/action-bar.scss +33 -0
  165. package/src/components/action-bar/action-bar.test.ts +10 -0
  166. package/src/components/action-bar/index.ts +12 -0
  167. package/src/components/alert/alert.component.ts +71 -0
  168. package/src/components/alert/alert.scss +170 -0
  169. package/src/components/alert/alert.test.ts +10 -0
  170. package/src/components/alert/index.ts +12 -0
  171. package/src/components/bulk-actions/bulk-actions.component.ts +229 -0
  172. package/src/components/bulk-actions/bulk-actions.scss +56 -0
  173. package/src/components/bulk-actions/bulk-actions.test.ts +10 -0
  174. package/src/components/bulk-actions/index.ts +12 -0
  175. package/src/components/button/button.component.ts +242 -0
  176. package/src/components/button/button.scss +346 -0
  177. package/src/components/button/button.test.ts +32 -0
  178. package/src/components/button/index.ts +12 -0
  179. package/src/components/button-group/button-group.component.ts +74 -0
  180. package/src/components/button-group/button-group.scss +39 -0
  181. package/src/components/button-group/button-group.test.ts +10 -0
  182. package/src/components/button-group/index.ts +12 -0
  183. package/src/components/button-menu/button-menu.component.ts +353 -0
  184. package/src/components/button-menu/button-menu.scss +41 -0
  185. package/src/components/button-menu/button-menu.test.ts +10 -0
  186. package/src/components/button-menu/index.ts +12 -0
  187. package/src/components/chart/chart.component.ts +206 -0
  188. package/src/components/chart/chart.scss +11 -0
  189. package/src/components/chart/chart.test.ts +10 -0
  190. package/src/components/chart/index.ts +12 -0
  191. package/src/components/checkbox/checkbox.component.ts +326 -0
  192. package/src/components/checkbox/checkbox.scss +202 -0
  193. package/src/components/checkbox/checkbox.test.ts +10 -0
  194. package/src/components/checkbox/index.ts +12 -0
  195. package/src/components/checkbox-group/checkbox-group.component.ts +351 -0
  196. package/src/components/checkbox-group/checkbox-group.scss +60 -0
  197. package/src/components/checkbox-group/checkbox-group.test.ts +10 -0
  198. package/src/components/checkbox-group/index.ts +12 -0
  199. package/src/components/chip/chip.component.ts +70 -0
  200. package/src/components/chip/chip.scss +101 -0
  201. package/src/components/chip/chip.test.ts +10 -0
  202. package/src/components/chip/index.ts +12 -0
  203. package/src/components/collapsible/collapsible.component.ts +86 -0
  204. package/src/components/collapsible/collapsible.scss +100 -0
  205. package/src/components/collapsible/collapsible.test.ts +10 -0
  206. package/src/components/collapsible/index.ts +12 -0
  207. package/src/components/cols/cols.component.ts +76 -0
  208. package/src/components/cols/cols.scss +99 -0
  209. package/src/components/cols/cols.test.ts +10 -0
  210. package/src/components/cols/index.ts +12 -0
  211. package/src/components/confirm/confirm.component.ts +181 -0
  212. package/src/components/confirm/confirm.scss +44 -0
  213. package/src/components/confirm/confirm.test.ts +10 -0
  214. package/src/components/confirm/index.ts +12 -0
  215. package/src/components/content-block/content-block.component.ts +225 -0
  216. package/src/components/content-block/content-block.scss +64 -0
  217. package/src/components/content-block/content-block.test.ts +10 -0
  218. package/src/components/content-block/index.ts +12 -0
  219. package/src/components/copy-button/copy-button.component.ts +163 -0
  220. package/src/components/copy-button/copy-button.scss +47 -0
  221. package/src/components/copy-button/copy-button.test.ts +10 -0
  222. package/src/components/copy-button/index.ts +12 -0
  223. package/src/components/data-select/data-select.component.ts +219 -0
  224. package/src/components/data-select/data-select.scss +43 -0
  225. package/src/components/data-select/data-select.test.ts +10 -0
  226. package/src/components/data-select/index.ts +12 -0
  227. package/src/components/data-select/providers/color-data-provider.ts +16 -0
  228. package/src/components/data-select/providers/country-code-data-provider.ts +517 -0
  229. package/src/components/data-select/providers/country-data-provider.ts +527 -0
  230. package/src/components/data-select/providers/currency-data-provider.ts +328 -0
  231. package/src/components/data-select/providers/provider.ts +32 -0
  232. package/src/components/data-table/data-table.component.ts +1093 -0
  233. package/src/components/data-table/data-table.scss +330 -0
  234. package/src/components/data-table/data-table.test.ts +10 -0
  235. package/src/components/data-table/index.ts +12 -0
  236. package/src/components/data-table-filter/data-table-filter.component.ts +126 -0
  237. package/src/components/data-table-filter/data-table-filter.scss +22 -0
  238. package/src/components/data-table-filter/data-table-filter.test.ts +10 -0
  239. package/src/components/data-table-filter/index.ts +12 -0
  240. package/src/components/data-table-sort/data-table-sort.component.ts +56 -0
  241. package/src/components/data-table-sort/data-table-sort.scss +37 -0
  242. package/src/components/data-table-sort/data-table-sort.test.ts +10 -0
  243. package/src/components/data-table-sort/index.ts +12 -0
  244. package/src/components/datepicker/datepicker.component.ts +315 -0
  245. package/src/components/datepicker/datepicker.scss +237 -0
  246. package/src/components/datepicker/datepicker.test.ts +10 -0
  247. package/src/components/datepicker/index.ts +12 -0
  248. package/src/components/defined-label/defined-label.component.ts +241 -0
  249. package/src/components/defined-label/defined-label.scss +43 -0
  250. package/src/components/defined-label/defined-label.test.ts +10 -0
  251. package/src/components/defined-label/index.ts +12 -0
  252. package/src/components/dialog/dialog.component.ts +237 -0
  253. package/src/components/dialog/dialog.scss +197 -0
  254. package/src/components/dialog/dialog.test.ts +10 -0
  255. package/src/components/dialog/index.ts +12 -0
  256. package/src/components/dropdown/dropdown.component.ts +380 -0
  257. package/src/components/dropdown/dropdown.scss +9 -0
  258. package/src/components/dropdown/dropdown.test.ts +10 -0
  259. package/src/components/dropdown/index.ts +12 -0
  260. package/src/components/editor/editor.component.ts +423 -0
  261. package/src/components/editor/editor.scss +131 -0
  262. package/src/components/editor/editor.test.ts +10 -0
  263. package/src/components/editor/index.ts +12 -0
  264. package/src/components/editor/modules/attachment-module.ts +195 -0
  265. package/src/components/editor/modules/dialog-module/dialog-module.component.ts +289 -0
  266. package/src/components/editor/modules/dialog-module/dialog-module.scss +115 -0
  267. package/src/components/editor/modules/dialog-module/dialog-module.ts +99 -0
  268. package/src/components/editor/modules/drag-drop-module.ts +125 -0
  269. package/src/components/editor/modules/events/zn-command-select.ts +7 -0
  270. package/src/components/editor/modules/events/zn-editor-update.ts +7 -0
  271. package/src/components/editor/modules/events/zn-show-canned-response-dialog.ts +15 -0
  272. package/src/components/editor/modules/image-resize-module/image-resize-module.ts +157 -0
  273. package/src/components/editor/modules/menu-module/menu-module.component.ts +149 -0
  274. package/src/components/editor/modules/menu-module/menu-module.scss +17 -0
  275. package/src/components/editor/modules/menu-module/menu-module.ts +203 -0
  276. package/src/components/editor/modules/time-tracking-module.ts +35 -0
  277. package/src/components/empty-state/empty-state.component.ts +63 -0
  278. package/src/components/empty-state/empty-state.scss +91 -0
  279. package/src/components/empty-state/empty-state.test.ts +10 -0
  280. package/src/components/empty-state/index.ts +12 -0
  281. package/src/components/expanding-action/expanding-action.component.ts +312 -0
  282. package/src/components/expanding-action/expanding-action.scss +87 -0
  283. package/src/components/expanding-action/expanding-action.test.ts +10 -0
  284. package/src/components/expanding-action/index.ts +12 -0
  285. package/src/components/file/file.component.ts +619 -0
  286. package/src/components/file/file.scss +200 -0
  287. package/src/components/file/file.test.ts +10 -0
  288. package/src/components/file/index.ts +12 -0
  289. package/src/components/form-group/form-group.component.ts +93 -0
  290. package/src/components/form-group/form-group.scss +84 -0
  291. package/src/components/form-group/form-group.test.ts +10 -0
  292. package/src/components/form-group/index.ts +12 -0
  293. package/src/components/header/header.component.ts +186 -0
  294. package/src/components/header/header.scss +244 -0
  295. package/src/components/header/header.test.ts +10 -0
  296. package/src/components/header/index.ts +12 -0
  297. package/src/components/hover-container/hover-container.component.ts +214 -0
  298. package/src/components/hover-container/hover-container.scss +59 -0
  299. package/src/components/hover-container/hover-container.ts +10 -0
  300. package/src/components/hover-container/index.ts +12 -0
  301. package/src/components/icon/icon.component.ts +251 -0
  302. package/src/components/icon/icon.scss +186 -0
  303. package/src/components/icon/icon.test.ts +10 -0
  304. package/src/components/icon/index.ts +13 -0
  305. package/src/components/icon/lni.scss +2492 -0
  306. package/src/components/inline-edit/index.ts +12 -0
  307. package/src/components/inline-edit/inline-edit.component.ts +289 -0
  308. package/src/components/inline-edit/inline-edit.scss +139 -0
  309. package/src/components/inline-edit/inline-edit.test.ts +10 -0
  310. package/src/components/input/index.ts +12 -0
  311. package/src/components/input/input.component.ts +614 -0
  312. package/src/components/input/input.scss +355 -0
  313. package/src/components/input/input.test.ts +10 -0
  314. package/src/components/item/index.ts +12 -0
  315. package/src/components/item/item.component.ts +102 -0
  316. package/src/components/item/item.scss +161 -0
  317. package/src/components/item/item.test.ts +10 -0
  318. package/src/components/linked-select/index.ts +12 -0
  319. package/src/components/linked-select/linked-select.component.ts +156 -0
  320. package/src/components/linked-select/linked-select.scss +9 -0
  321. package/src/components/linked-select/linked-select.test.ts +17 -0
  322. package/src/components/menu/index.ts +12 -0
  323. package/src/components/menu/menu.component.ts +243 -0
  324. package/src/components/menu/menu.scss +14 -0
  325. package/src/components/menu/menu.test.ts +10 -0
  326. package/src/components/menu-item/index.ts +12 -0
  327. package/src/components/menu-item/menu-item.component.ts +220 -0
  328. package/src/components/menu-item/menu-item.scss +157 -0
  329. package/src/components/menu-item/menu-item.test.ts +10 -0
  330. package/src/components/menu-item/submenu-controller.ts +291 -0
  331. package/src/components/navbar/index.ts +12 -0
  332. package/src/components/navbar/navbar.component.ts +240 -0
  333. package/src/components/navbar/navbar.scss +411 -0
  334. package/src/components/navbar/navbar.test.ts +10 -0
  335. package/src/components/note/index.ts +12 -0
  336. package/src/components/note/note.component.ts +60 -0
  337. package/src/components/note/note.scss +69 -0
  338. package/src/components/note/note.test.ts +10 -0
  339. package/src/components/option/index.ts +12 -0
  340. package/src/components/option/option.component.ts +152 -0
  341. package/src/components/option/option.scss +88 -0
  342. package/src/components/option/option.test.ts +10 -0
  343. package/src/components/order-table/index.ts +12 -0
  344. package/src/components/order-table/order-table.component.ts +323 -0
  345. package/src/components/order-table/order-table.scss +154 -0
  346. package/src/components/order-table/order-table.test.ts +10 -0
  347. package/src/components/page-nav/index.ts +12 -0
  348. package/src/components/page-nav/page-nav.component.ts +117 -0
  349. package/src/components/page-nav/page-nav.scss +155 -0
  350. package/src/components/page-nav/page-nav.test.ts +10 -0
  351. package/src/components/pagination/index.ts +12 -0
  352. package/src/components/pagination/pagination.component.ts +91 -0
  353. package/src/components/pagination/pagination.scss +76 -0
  354. package/src/components/pagination/pagination.test.ts +10 -0
  355. package/src/components/pane/index.ts +12 -0
  356. package/src/components/pane/pane.component.ts +52 -0
  357. package/src/components/pane/pane.scss +45 -0
  358. package/src/components/pane/pane.test.ts +10 -0
  359. package/src/components/panel/index.ts +12 -0
  360. package/src/components/panel/panel.component.ts +100 -0
  361. package/src/components/panel/panel.scss +129 -0
  362. package/src/components/panel/panel.test.ts +10 -0
  363. package/src/components/popup/index.ts +12 -0
  364. package/src/components/popup/popup.component.ts +543 -0
  365. package/src/components/popup/popup.scss +59 -0
  366. package/src/components/popup/popup.test.ts +10 -0
  367. package/src/components/progress-bar/index.ts +12 -0
  368. package/src/components/progress-bar/progress-bar.component.ts +80 -0
  369. package/src/components/progress-bar/progress-bar.scss +46 -0
  370. package/src/components/progress-bar/progress-bar.test.ts +10 -0
  371. package/src/components/progress-tile/index.ts +12 -0
  372. package/src/components/progress-tile/progress-tile.component.ts +127 -0
  373. package/src/components/progress-tile/progress-tile.scss +116 -0
  374. package/src/components/progress-tile/progress-tile.test.ts +10 -0
  375. package/src/components/query-builder/index.ts +12 -0
  376. package/src/components/query-builder/query-builder.component.ts +544 -0
  377. package/src/components/query-builder/query-builder.scss +53 -0
  378. package/src/components/query-builder/query-builder.test.ts +10 -0
  379. package/src/components/radio/index.ts +12 -0
  380. package/src/components/radio/radio.component.ts +305 -0
  381. package/src/components/radio/radio.scss +197 -0
  382. package/src/components/radio/radio.test.ts +10 -0
  383. package/src/components/radio-group/index.ts +12 -0
  384. package/src/components/radio-group/radio-group.component.ts +362 -0
  385. package/src/components/radio-group/radio-group.scss +60 -0
  386. package/src/components/radio-group/radio-group.test.ts +10 -0
  387. package/src/components/rating/index.ts +12 -0
  388. package/src/components/rating/rating.component.ts +235 -0
  389. package/src/components/rating/rating.scss +82 -0
  390. package/src/components/rating/rating.test.ts +10 -0
  391. package/src/components/scroll-container/index.ts +12 -0
  392. package/src/components/scroll-container/scroll-container.component.ts +41 -0
  393. package/src/components/scroll-container/scroll-container.scss +17 -0
  394. package/src/components/scroll-container/scroll-container.test.ts +10 -0
  395. package/src/components/select/index.ts +12 -0
  396. package/src/components/select/select.component.ts +984 -0
  397. package/src/components/select/select.scss +325 -0
  398. package/src/components/select/select.test.ts +10 -0
  399. package/src/components/sidebar/index.ts +12 -0
  400. package/src/components/sidebar/sidebar.component.ts +98 -0
  401. package/src/components/sidebar/sidebar.scss +294 -0
  402. package/src/components/sidebar/sidebar.test.ts +10 -0
  403. package/src/components/simple-chart/index.ts +12 -0
  404. package/src/components/simple-chart/simple-chart.component.ts +204 -0
  405. package/src/components/simple-chart/simple-chart.scss +9 -0
  406. package/src/components/simple-chart/simple-chart.test.ts +10 -0
  407. package/src/components/skeleton/index.ts +12 -0
  408. package/src/components/skeleton/skeleton.component.ts +34 -0
  409. package/src/components/skeleton/skeleton.scss +39 -0
  410. package/src/components/skeleton/skeleton.test.ts +10 -0
  411. package/src/components/slideout/index.ts +12 -0
  412. package/src/components/slideout/slideout.component.ts +223 -0
  413. package/src/components/slideout/slideout.scss +96 -0
  414. package/src/components/slideout/slideout.test.ts +10 -0
  415. package/src/components/sp/index.ts +12 -0
  416. package/src/components/sp/sp.component.ts +86 -0
  417. package/src/components/sp/sp.scss +88 -0
  418. package/src/components/sp/sp.test.ts +10 -0
  419. package/src/components/split-button/index.ts +12 -0
  420. package/src/components/split-button/split-button.component.ts +154 -0
  421. package/src/components/split-button/split-button.scss +9 -0
  422. package/src/components/split-button/split-button.test.ts +10 -0
  423. package/src/components/split-pane/index.ts +12 -0
  424. package/src/components/split-pane/split-pane.component.ts +195 -0
  425. package/src/components/split-pane/split-pane.scss +303 -0
  426. package/src/components/split-pane/split-pane.test.ts +10 -0
  427. package/src/components/stat/index.ts +12 -0
  428. package/src/components/stat/stat.component.ts +117 -0
  429. package/src/components/stat/stat.scss +92 -0
  430. package/src/components/stat/stat.test.ts +10 -0
  431. package/src/components/status-indicator/index.ts +12 -0
  432. package/src/components/status-indicator/status-indicator.component.ts +31 -0
  433. package/src/components/status-indicator/status-indicator.scss +32 -0
  434. package/src/components/status-indicator/status-indicator.test.ts +10 -0
  435. package/src/components/stepper/index.ts +12 -0
  436. package/src/components/stepper/stepper.component.ts +80 -0
  437. package/src/components/stepper/stepper.scss +88 -0
  438. package/src/components/stepper/stepper.test.ts +10 -0
  439. package/src/components/style/index.ts +12 -0
  440. package/src/components/style/style.component.ts +150 -0
  441. package/src/components/style/style.scss +1 -0
  442. package/src/components/style/style.test.ts +10 -0
  443. package/src/components/table/index.ts +12 -0
  444. package/src/components/table/table.component.ts +297 -0
  445. package/src/components/table/table.scss +209 -0
  446. package/src/components/table/table.test.ts +10 -0
  447. package/src/components/tabs/index.ts +12 -0
  448. package/src/components/tabs/tabs.component.ts +496 -0
  449. package/src/components/tabs/tabs.scss +147 -0
  450. package/src/components/tabs/tabs.test.ts +10 -0
  451. package/src/components/textarea/index.ts +12 -0
  452. package/src/components/textarea/textarea.component.ts +417 -0
  453. package/src/components/textarea/textarea.scss +152 -0
  454. package/src/components/textarea/textarea.test.ts +10 -0
  455. package/src/components/tile/index.ts +12 -0
  456. package/src/components/tile/tile.component.ts +105 -0
  457. package/src/components/tile/tile.scss +144 -0
  458. package/src/components/tile/tile.test.ts +10 -0
  459. package/src/components/tile-property/index.ts +12 -0
  460. package/src/components/tile-property/tile-property.component.ts +43 -0
  461. package/src/components/tile-property/tile-property.scss +43 -0
  462. package/src/components/tile-property/tile-property.test.ts +10 -0
  463. package/src/components/timer/index.ts +12 -0
  464. package/src/components/timer/timer.component.ts +88 -0
  465. package/src/components/timer/timer.scss +40 -0
  466. package/src/components/timer/timer.test.ts +10 -0
  467. package/src/components/toggle/index.ts +12 -0
  468. package/src/components/toggle/toggle.component.ts +203 -0
  469. package/src/components/toggle/toggle.scss +93 -0
  470. package/src/components/toggle/toggle.test.ts +10 -0
  471. package/src/components/tooltip/index.ts +12 -0
  472. package/src/components/tooltip/tooltip.component.ts +215 -0
  473. package/src/components/tooltip/tooltip.scss +43 -0
  474. package/src/components/tooltip/tooltip.test.ts +10 -0
  475. package/src/components/vertical-stepper/index.ts +12 -0
  476. package/src/components/vertical-stepper/vertical-stepper.component.ts +53 -0
  477. package/src/components/vertical-stepper/vertical-stepper.scss +84 -0
  478. package/src/components/vertical-stepper/vertical-stepper.test.ts +10 -0
  479. package/src/components/well/index.ts +12 -0
  480. package/src/components/well/well.component.ts +43 -0
  481. package/src/components/well/well.scss +19 -0
  482. package/src/components/well/well.test.ts +10 -0
  483. package/src/declaration.d.ts +39 -0
  484. package/src/events/events.ts +7 -0
  485. package/src/events/zn-after-collapse.ts +7 -0
  486. package/src/events/zn-after-expand.ts +7 -0
  487. package/src/events/zn-after-hide.ts +7 -0
  488. package/src/events/zn-after-show.ts +7 -0
  489. package/src/events/zn-blur.ts +7 -0
  490. package/src/events/zn-cancel.ts +7 -0
  491. package/src/events/zn-change.ts +7 -0
  492. package/src/events/zn-clear.ts +7 -0
  493. package/src/events/zn-close.ts +7 -0
  494. package/src/events/zn-collapse.ts +7 -0
  495. package/src/events/zn-copy.ts +7 -0
  496. package/src/events/zn-element-added.ts +7 -0
  497. package/src/events/zn-error.ts +7 -0
  498. package/src/events/zn-expand.ts +7 -0
  499. package/src/events/zn-filter-change.ts +7 -0
  500. package/src/events/zn-finish.ts +7 -0
  501. package/src/events/zn-focus.ts +7 -0
  502. package/src/events/zn-hide.ts +7 -0
  503. package/src/events/zn-hover.ts +10 -0
  504. package/src/events/zn-initial-focus.ts +7 -0
  505. package/src/events/zn-input.ts +7 -0
  506. package/src/events/zn-invalid.ts +7 -0
  507. package/src/events/zn-load.ts +7 -0
  508. package/src/events/zn-menu-ready.ts +9 -0
  509. package/src/events/zn-menu-select.ts +9 -0
  510. package/src/events/zn-open.ts +7 -0
  511. package/src/events/zn-remove.ts +7 -0
  512. package/src/events/zn-request-close.ts +7 -0
  513. package/src/events/zn-select.ts +9 -0
  514. package/src/events/zn-show.ts +7 -0
  515. package/src/events/zn-sort-change.ts +7 -0
  516. package/src/events/zn-submit.ts +7 -0
  517. package/src/form-control.scss +123 -0
  518. package/src/internal/animate.ts +64 -0
  519. package/src/internal/default-value.ts +49 -0
  520. package/src/internal/event.ts +75 -0
  521. package/src/internal/form.ts +527 -0
  522. package/src/internal/offset.ts +13 -0
  523. package/src/internal/scroll.ts +69 -0
  524. package/src/internal/slot.ts +110 -0
  525. package/src/internal/storage.ts +70 -0
  526. package/src/internal/tabbable.ts +198 -0
  527. package/src/internal/theme.ts +54 -0
  528. package/src/internal/watch.ts +63 -0
  529. package/src/internal/zinc-element.ts +113 -0
  530. package/src/translations/en.ts +30 -0
  531. package/src/utilities/animation-registry.ts +74 -0
  532. package/src/utilities/base-path.ts +46 -0
  533. package/src/utilities/lit-to-html.ts +7 -0
  534. package/src/utilities/localize.ts +37 -0
  535. package/src/utilities/md5.ts +216 -0
  536. package/src/utilities/on.ts +29 -0
  537. package/src/utilities/query.ts +36 -0
  538. package/src/wc.scss +33 -0
  539. package/src/zinc-autoloader.ts +58 -0
  540. package/src/zinc.ts +83 -0
  541. package/tsconfig.json +41 -0
  542. package/tsconfig.prod.json +12 -0
  543. package/web-test-runner.config.js +50 -0
  544. package/.idea/.name +0 -1
  545. package/.idea/fusion.iml +0 -9
  546. package/.idea/modules.xml +0 -8
  547. package/.idea/php.xml +0 -4
  548. package/.idea/vcs.xml +0 -6
  549. package/.idea/watcherTasks.xml +0 -25
  550. package/components/Blank/demo/demo.html +0 -11
  551. package/components/Blank/dist/zn-blank.js +0 -39
  552. package/components/Blank/go/component.go +0 -18
  553. package/components/Blank/go/go.mod +0 -3
  554. package/components/Blank/package.json +0 -33
  555. package/components/Blank/php/composer.json +0 -25
  556. package/components/Blank/php/src/Blank.php +0 -15
  557. package/components/Blank/rollup.config.js +0 -32
  558. package/components/Blank/scss/Styles.scss +0 -6
  559. package/components/Blank/ts/Component.ts +0 -15
  560. package/components/Blank/tsconfig.json +0 -7
  561. package/components/Icon/demo/demo.html +0 -90
  562. package/components/Icon/dist/zn-icon.js +0 -55
  563. package/components/Icon/go/component.go +0 -56
  564. package/components/Icon/go/go.mod +0 -3
  565. package/components/Icon/package.json +0 -33
  566. package/components/Icon/php/composer.json +0 -26
  567. package/components/Icon/php/src/Icon.php +0 -38
  568. package/components/Icon/php/src/Library.php +0 -17
  569. package/components/Icon/php/src/Size.php +0 -42
  570. package/components/Icon/roadmap.md +0 -7
  571. package/components/Icon/rollup.config.js +0 -32
  572. package/components/Icon/scss/Styles.scss +0 -65
  573. package/components/Icon/ts/Component.ts +0 -108
  574. package/components/Icon/ts/md5.ts +0 -215
  575. package/components/Icon/tsconfig.json +0 -7
  576. package/components/MaxWidth/demo/demo.html +0 -11
  577. package/components/MaxWidth/dist/zn-max-width.js +0 -51
  578. package/components/MaxWidth/go/component.go +0 -24
  579. package/components/MaxWidth/go/go.mod +0 -3
  580. package/components/MaxWidth/package.json +0 -33
  581. package/components/MaxWidth/php/composer.json +0 -25
  582. package/components/MaxWidth/php/src/MaxWidth.php +0 -32
  583. package/components/MaxWidth/rollup.config.js +0 -32
  584. package/components/MaxWidth/scss/Styles.scss +0 -13
  585. package/components/MaxWidth/ts/Component.ts +0 -27
  586. package/components/MaxWidth/tsconfig.json +0 -7
  587. package/components/roadmap.md +0 -4
  588. package/layout/components/Columns/demo/demo.html +0 -16
  589. package/layout/components/Columns/ts/Component.ts +0 -59
  590. package/layout/demo/index.html +0 -26
  591. package/layout/dist/zn-layout.js +0 -93
  592. package/layout/package.json +0 -38
  593. package/layout/rollup.config.js +0 -38
  594. package/layout/scss/layout.scss +0 -24
  595. package/layout/tailwind.config.js +0 -42
  596. package/layout/ts/container.ts +0 -132
  597. package/layout/ts/import.ts +0 -2
  598. package/layout/tsconfig.json +0 -7
  599. /package/{layout/components/Columns/scss/Styles.scss → src/internal/zinc-element.test.ts} +0 -0
@@ -0,0 +1,7 @@
1
+ export type ZnAfterCollapseEvent = CustomEvent<Record<PropertyKey, never>>;
2
+
3
+ declare global {
4
+ interface GlobalEventHandlersEventMap {
5
+ 'zn-after-collapse': ZnAfterCollapseEvent;
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ export type ZnAfterHideEvent = CustomEvent<Record<PropertyKey, never>>;
2
+
3
+ declare global {
4
+ interface GlobalEventHandlersEventMap {
5
+ 'zn-after-hide': ZnAfterHideEvent;
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ export type ZnAfterShowEvent = CustomEvent<Record<PropertyKey, never>>;
2
+
3
+ declare global {
4
+ interface GlobalEventHandlersEventMap {
5
+ 'zn-after-show': ZnAfterShowEvent;
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ export type ZnBlurEvent = CustomEvent<Record<PropertyKey, never>>;
2
+
3
+ declare global {
4
+ interface GlobalEventHandlersEventMap {
5
+ 'zn-blur': ZnBlurEvent;
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ export type ZnCancelEvent = CustomEvent<Record<PropertyKey, never>>;
2
+
3
+ declare global {
4
+ interface GlobalEventHandlersEventMap {
5
+ 'zn-cancel': ZnCancelEvent;
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ export type ZnChangeEvent = CustomEvent<Record<PropertyKey, never>>;
2
+
3
+ declare global {
4
+ interface GlobalEventHandlersEventMap {
5
+ 'zn-change': ZnChangeEvent;
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ export type ZnClearEvent = CustomEvent<Record<PropertyKey, never>>;
2
+
3
+ declare global {
4
+ interface GlobalEventHandlersEventMap {
5
+ 'zn-clear': ZnClearEvent;
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ export type ZnCloseEvent = CustomEvent<{ element: Element }>;
2
+
3
+ declare global {
4
+ interface GlobalEventHandlersEventMap {
5
+ 'zn-close': ZnCloseEvent;
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ export type ZnCollapseEvent = CustomEvent<Record<PropertyKey, never>>;
2
+
3
+ declare global {
4
+ interface GlobalEventHandlersEventMap {
5
+ 'zn-collapse': ZnCollapseEvent;
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ export type ZnCopyEvent = CustomEvent<{ value: string }>;
2
+
3
+ declare global {
4
+ interface GlobalEventHandlersEventMap {
5
+ 'zn-copy': ZnCopyEvent;
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ export type ZnElementAddedEvent = CustomEvent<{ element: Element }>;
2
+
3
+ declare global {
4
+ interface GlobalEventHandlersEventMap {
5
+ 'zn-element-added': ZnElementAddedEvent;
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ export type ZnErrorEvent = CustomEvent<{ status?: number }>;
2
+
3
+ declare global {
4
+ interface GlobalEventHandlersEventMap {
5
+ 'zn-error': ZnErrorEvent;
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ export type ZnExpandEvent = CustomEvent<Record<PropertyKey, never>>;
2
+
3
+ declare global {
4
+ interface GlobalEventHandlersEventMap {
5
+ 'zn-expand': ZnExpandEvent;
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ export type ZnFilterChangeEvent = CustomEvent<Record<PropertyKey, never>>;
2
+
3
+ declare global {
4
+ interface GlobalEventHandlersEventMap {
5
+ 'zn-filter-change': ZnFilterChangeEvent;
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ export type ZnFinishEvent = CustomEvent<Record<PropertyKey, never>>;
2
+
3
+ declare global {
4
+ interface GlobalEventHandlersEventMap {
5
+ 'zn-finish': ZnFinishEvent;
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ export type ZnFocusEvent = CustomEvent<Record<PropertyKey, never>>;
2
+
3
+ declare global {
4
+ interface GlobalEventHandlersEventMap {
5
+ 'zn-focus': ZnFocusEvent;
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ export type ZnHideEvent = CustomEvent<Record<PropertyKey, never>>;
2
+
3
+ declare global {
4
+ interface GlobalEventHandlersEventMap {
5
+ 'zn-hide': ZnHideEvent;
6
+ }
7
+ }
@@ -0,0 +1,10 @@
1
+ export type ZnHoverEvent = CustomEvent<{
2
+ phase: 'start' | 'move' | 'end';
3
+ value: number;
4
+ }>;
5
+
6
+ declare global {
7
+ interface GlobalEventHandlersEventMap {
8
+ 'zn-hover': ZnHoverEvent;
9
+ }
10
+ }
@@ -0,0 +1,7 @@
1
+ export type ZnInitialFocusEvent = CustomEvent<Record<PropertyKey, never>>;
2
+
3
+ declare global {
4
+ interface GlobalEventHandlersEventMap {
5
+ 'zn-initial-focus': ZnInitialFocusEvent;
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ export type ZnInputEvent = CustomEvent<Record<PropertyKey, never>>;
2
+
3
+ declare global {
4
+ interface GlobalEventHandlersEventMap {
5
+ 'zn-input': ZnInputEvent;
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ export type ZnInvalidEvent = CustomEvent<Record<PropertyKey, never>>;
2
+
3
+ declare global {
4
+ interface GlobalEventHandlersEventMap {
5
+ 'zn-invalid': ZnInvalidEvent;
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ export type ZnLoadEvent = CustomEvent<Record<PropertyKey, never>>;
2
+
3
+ declare global {
4
+ interface GlobalEventHandlersEventMap {
5
+ 'zn-load': ZnLoadEvent;
6
+ }
7
+ }
@@ -0,0 +1,9 @@
1
+ export type ZnMenuReadyEvent = CustomEvent<{ value: string; element: HTMLElement }>;
2
+
3
+ declare global
4
+ {
5
+ interface GlobalEventHandlersEventMap
6
+ {
7
+ 'zn-menu-ready': ZnMenuReadyEvent;
8
+ }
9
+ }
@@ -0,0 +1,9 @@
1
+ export type ZnMenuSelectEvent = CustomEvent<{ value: string; element: HTMLElement }>;
2
+
3
+ declare global
4
+ {
5
+ interface GlobalEventHandlersEventMap
6
+ {
7
+ 'zn-menu-select': ZnMenuSelectEvent;
8
+ }
9
+ }
@@ -0,0 +1,7 @@
1
+ export type ZnOpenEvent = CustomEvent<{ element: Element }>;
2
+
3
+ declare global {
4
+ interface GlobalEventHandlersEventMap {
5
+ 'zn-open': ZnOpenEvent;
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ export type ZnRemoveEvent = CustomEvent<Record<PropertyKey, never>>;
2
+
3
+ declare global {
4
+ interface GlobalEventHandlersEventMap {
5
+ 'zn-remove': ZnRemoveEvent;
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ export type ZnRequestCloseEvent = CustomEvent<{ source: 'close-button' | 'keyboard' | 'overlay' }>;
2
+
3
+ declare global {
4
+ interface GlobalEventHandlersEventMap {
5
+ 'zn-request-close': ZnRequestCloseEvent;
6
+ }
7
+ }
@@ -0,0 +1,9 @@
1
+ import type ZnMenuItem from "../components/menu-item";
2
+
3
+ export type ZnSelectEvent = CustomEvent<{ item: ZnMenuItem }>;
4
+
5
+ declare global {
6
+ interface GlobalEventHandlersEventMap {
7
+ 'zn-select': ZnSelectEvent;
8
+ }
9
+ }
@@ -0,0 +1,7 @@
1
+ export type ZnShowEvent = CustomEvent<Record<PropertyKey, never>>;
2
+
3
+ declare global {
4
+ interface GlobalEventHandlersEventMap {
5
+ 'zn-show': ZnShowEvent;
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ export type ZnSortChangeEvent = CustomEvent<Record<PropertyKey, never>>;
2
+
3
+ declare global {
4
+ interface GlobalEventHandlersEventMap {
5
+ 'zn-sort-change': ZnSortChangeEvent;
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ export type ZnSubmitEvent = CustomEvent<{ value: string; element: HTMLElement }>;
2
+
3
+ declare global {
4
+ interface GlobalEventHandlersEventMap {
5
+ 'zn-submit': ZnSubmitEvent;
6
+ }
7
+ }
@@ -0,0 +1,123 @@
1
+ .form-control-input {
2
+ margin: var(--zn-spacing-2x-small) 3px 3px;
3
+ }
4
+
5
+ .form-control .form-control__label {
6
+ display: none;
7
+ }
8
+
9
+ .form-control .form-control__help-text {
10
+ display: none;
11
+ }
12
+
13
+ /* Label */
14
+ .form-control--has-label .form-control__label {
15
+ display: inline-block;
16
+ color: var(--zn-input-label-color);
17
+ font-weight: var(--zn-font-weight-semibold);
18
+ margin-bottom: var(--zn-spacing-2x-small);
19
+ }
20
+
21
+ .form-control--has-label.form-control--medium .form-control__label {
22
+ font-size: var(--zn-input-label-font-size-medium);
23
+ }
24
+
25
+ .form-control--has-label.form-control--large .form-control__label {
26
+ font-size: var(--zn-input-label-font-size-large);
27
+ }
28
+
29
+ :host([required]) .form-control--has-label .form-control__label::after {
30
+ content: var(--zn-input-required-content);
31
+ margin-inline-start: var(--zn-input-required-content-offset);
32
+ color: var(--zn-input-required-content-color);
33
+ }
34
+
35
+ .form-control--has-label.form-control--radio-group .form-control__label,
36
+ .form-control--has-label.form-control--checkbox-group .form-control__label {
37
+ margin-bottom: 0;
38
+ }
39
+
40
+ /* Label with tooltip */
41
+ .form-control--has-label.form-control--has-label-tooltip .form-control__label {
42
+ display: inline-flex;
43
+ align-items: center;
44
+ gap: var(--zn-spacing-2x-small);
45
+ }
46
+
47
+ .form-control--has-label.form-control--small .form-control__label {
48
+ font-size: var(--zn-input-label-font-size-small);
49
+ }
50
+
51
+ .form-control--label-tooltip {
52
+ color: var(--zn-color-neutral-700);
53
+ font-size: var(--zn-font-size-small);
54
+
55
+ zn-icon {
56
+ --icon-color: var(--zn-color-neutral-700);
57
+ --icon-size: var(--zn-font-size-small);
58
+ }
59
+ }
60
+
61
+ /* Label with optional context note */
62
+ .form-control--has-label.form-control--has-context-note {
63
+ display: flex;
64
+ justify-content: space-between;
65
+ flex-wrap: wrap;
66
+ }
67
+
68
+ .form-control__label-context-note {
69
+ color: var(--zn-input-help-text-color);
70
+ font-size: var(--zn-font-size-small);
71
+ margin-bottom: var(--zn-spacing-2x-small);
72
+ }
73
+
74
+ .form-control--has-label.form-control--has-context-note .form-control-input {
75
+ width: 100%;
76
+ }
77
+
78
+ /* Help text, description, selected content */
79
+ .form-control--has-help-text .form-control__help-text,
80
+ .radio--has-description .radio__description,
81
+ .checkbox--has-description .checkbox__description {
82
+ display: block;
83
+ color: var(--zn-input-help-text-color);
84
+ margin-top: var(--zn-spacing-x-small);
85
+ }
86
+
87
+ .radio--has-description .radio__description,
88
+ .checkbox--has-description .checkbox__description {
89
+ margin-top: 0.375rem;
90
+ }
91
+
92
+ .radio--has-selected-content .radio__selected-content,
93
+ .checkbox--has-selected-content .checkbox__selected-content {
94
+ display: block;
95
+ margin-top: var(--zn-spacing-small);
96
+ }
97
+
98
+ .form-control--has-help-text.form-control--small .form-control__help-text {
99
+ font-size: var(--zn-input-help-text-font-size-small);
100
+ }
101
+
102
+ .form-control--has-help-text.form-control--medium .form-control__help-text,
103
+ .radio--has-description .radio__description,
104
+ .checkbox--has-description .checkbox__description {
105
+ font-size: var(--zn-input-help-text-font-size-medium);
106
+ }
107
+
108
+ .form-control--has-help-text.form-control--large .form-control__help-text {
109
+ font-size: var(--zn-input-help-text-font-size-large);
110
+ }
111
+
112
+ .form-control--has-help-text.form-control--radio-group .form-control__help-text,
113
+ .form-control--has-help-text.form-control--checkbox-group .form-control__help-text {
114
+ margin-top: var(--zn-spacing-medium);
115
+ }
116
+
117
+ .form-control--has-help-text .switch .form-control__help-text {
118
+ margin-top: var(--zn-spacing-3x-small);
119
+ }
120
+
121
+ .form-control--checkbox-contained-wrapper {
122
+ height: 100%;
123
+ }
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Animates an element using keyframes. Returns a promise that resolves after the animation completes or gets canceled.
3
+ */
4
+ export function animateTo(el: HTMLElement, keyframes: Keyframe[], options?: KeyframeAnimationOptions) {
5
+ return new Promise(resolve => {
6
+ if (options?.duration === Infinity) {
7
+ throw new Error('Promise-based animations must be finite.');
8
+ }
9
+
10
+ const animation = el.animate(keyframes, {
11
+ ...options,
12
+ duration: prefersReducedMotion() ? 0 : options!.duration
13
+ });
14
+
15
+ animation.addEventListener('cancel', resolve, {once: true});
16
+ animation.addEventListener('finish', resolve, {once: true});
17
+ });
18
+ }
19
+
20
+ /** Parses a CSS duration and returns the number of milliseconds. */
21
+ export function parseDuration(delay: number | string) {
22
+ delay = delay.toString().toLowerCase();
23
+
24
+ if (delay.indexOf('ms') > -1) {
25
+ return parseFloat(delay);
26
+ }
27
+
28
+ if (delay.indexOf('s') > -1) {
29
+ return parseFloat(delay) * 1000;
30
+ }
31
+
32
+ return parseFloat(delay);
33
+ }
34
+
35
+ /** Tells if the user has enabled the "reduced motion" setting in their browser or OS. */
36
+ export function prefersReducedMotion() {
37
+ const query = window.matchMedia('(prefers-reduced-motion: reduce)');
38
+ return query.matches;
39
+ }
40
+
41
+ /**
42
+ * Stops all active animations on the target element. Returns a promise that resolves after all animations are canceled.
43
+ */
44
+ export function stopAnimations(el: HTMLElement) {
45
+ return Promise.all(
46
+ el.getAnimations().map(animation => {
47
+ return new Promise(resolve => {
48
+ animation.cancel();
49
+ requestAnimationFrame(resolve);
50
+ });
51
+ })
52
+ );
53
+ }
54
+
55
+ /**
56
+ * We can't animate `height: auto`, but we can calculate the height and shim keyframes by replacing it with the
57
+ * element's scrollHeight before the animation.
58
+ */
59
+ export function shimKeyframesHeightAuto(keyframes: Keyframe[], calculatedHeight: number) {
60
+ return keyframes.map(keyframe => ({
61
+ ...keyframe,
62
+ height: keyframe.height === 'auto' ? `${calculatedHeight}px` : keyframe.height
63
+ }));
64
+ }
@@ -0,0 +1,49 @@
1
+ // @defaultValue decorator
2
+ //
3
+ // Runs when the corresponding attribute of the observed property changes, e.g. after calling Element.setAttribute or after updating
4
+ // the observed property.
5
+ //
6
+ // The decorator checks whether the value of the attribute is different from the value of the property and in that case
7
+ // it saves the new value.
8
+ //
9
+ //
10
+ // Usage:
11
+ //
12
+ // @property({ type: Boolean, reflect: true }) checked = false;
13
+ //
14
+ // @defaultValue('checked') defaultChecked = false;
15
+ //
16
+
17
+ import { defaultConverter } from 'lit';
18
+ import type { ReactiveElement } from 'lit';
19
+
20
+ export const defaultValue =
21
+ (propertyName = 'value') =>
22
+ (proto: ReactiveElement, key: string) => {
23
+ const ctor = proto.constructor as typeof ReactiveElement;
24
+
25
+ const attributeChangedCallback = ctor.prototype.attributeChangedCallback;
26
+ ctor.prototype.attributeChangedCallback = function (
27
+ this: ReactiveElement & { [name: string]: unknown },
28
+ name,
29
+ old,
30
+ value
31
+ ) {
32
+ const options = ctor.getPropertyOptions(propertyName);
33
+ const attributeName = typeof options.attribute === 'string' ? options.attribute : propertyName;
34
+
35
+ if (name === attributeName) {
36
+ const converter = options.converter || defaultConverter;
37
+ const fromAttribute =
38
+ typeof converter === 'function' ? converter : converter?.fromAttribute ?? defaultConverter.fromAttribute;
39
+
40
+ const newValue: unknown = fromAttribute!(value, options.type);
41
+
42
+ if (this[propertyName] !== newValue) {
43
+ this[key] = newValue;
44
+ }
45
+ }
46
+
47
+ attributeChangedCallback.call(this, name, old, value);
48
+ };
49
+ };
@@ -0,0 +1,75 @@
1
+ // Match event type name strings that are registered on GlobalEventHandlersEventMap...
2
+ export type EventTypeRequiresDetail<T> = T extends keyof GlobalEventHandlersEventMap
3
+ ? // ...where the event detail is an object...
4
+ GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>>
5
+ ? // ...that is non-empty...
6
+ GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>>
7
+ ? never
8
+ : // ...and has at least one non-optional property
9
+ Partial<GlobalEventHandlersEventMap[T]['detail']> extends GlobalEventHandlersEventMap[T]['detail']
10
+ ? never
11
+ : T
12
+ : never
13
+ : never;
14
+
15
+ // The inverse of the above (match any type that doesn't match EventTypeRequiresDetail)
16
+ export type EventTypeDoesNotRequireDetail<T> = T extends keyof GlobalEventHandlersEventMap
17
+ ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>>
18
+ ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>>
19
+ ? T
20
+ : Partial<GlobalEventHandlersEventMap[T]['detail']> extends GlobalEventHandlersEventMap[T]['detail']
21
+ ? T
22
+ : never
23
+ : T
24
+ : T;
25
+
26
+ // `keyof EventTypesWithRequiredDetail` lists all registered event types that require detail
27
+ export type EventTypesWithRequiredDetail = {
28
+ [EventType in keyof GlobalEventHandlersEventMap as EventTypeRequiresDetail<EventType>]: true;
29
+ };
30
+
31
+ // `keyof EventTypesWithoutRequiredDetail` lists all registered event types that do NOT require detail
32
+ export type EventTypesWithoutRequiredDetail = {
33
+ [EventType in keyof GlobalEventHandlersEventMap as EventTypeDoesNotRequireDetail<EventType>]: true;
34
+ };
35
+
36
+ // Helper to make a specific property of an object non-optional
37
+ type WithRequired<T, K extends keyof T> = T & { [P in K]-?: T[P] };
38
+
39
+ // Given an event name string, get a valid type for the options to initialize the event that is more restrictive than
40
+ // just CustomEventInit when appropriate (validate the type of the event detail, and require it to be provided if the
41
+ // event requires it)
42
+ export type ZincEventInit<T> = T extends keyof GlobalEventHandlersEventMap
43
+ ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>>
44
+ ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>>
45
+ ? CustomEventInit<GlobalEventHandlersEventMap[T]['detail']>
46
+ : Partial<GlobalEventHandlersEventMap[T]['detail']> extends GlobalEventHandlersEventMap[T]['detail']
47
+ ? CustomEventInit<GlobalEventHandlersEventMap[T]['detail']>
48
+ : WithRequired<CustomEventInit<GlobalEventHandlersEventMap[T]['detail']>, 'detail'>
49
+ : CustomEventInit
50
+ : CustomEventInit;
51
+
52
+ // Given an event name string, get the type of the event
53
+ export type GetCustomEventType<T> = T extends keyof GlobalEventHandlersEventMap
54
+ ? GlobalEventHandlersEventMap[T] extends CustomEvent<unknown>
55
+ ? GlobalEventHandlersEventMap[T]
56
+ : CustomEvent<unknown>
57
+ : CustomEvent<unknown>;
58
+
59
+ // `keyof ValidEventTypeMap` is equivalent to `keyof GlobalEventHandlersEventMap` but gives a nicer error message
60
+ export type ValidEventTypeMap = EventTypesWithRequiredDetail | EventTypesWithoutRequiredDetail;
61
+
62
+
63
+ export function waitForEvent(el: HTMLElement, eventName: string) {
64
+ return new Promise<void>(resolve => {
65
+ function done(event: Event) {
66
+ if (event.target === el) {
67
+ el.removeEventListener(eventName, done);
68
+ resolve();
69
+ }
70
+ }
71
+
72
+
73
+ el.addEventListener(eventName, done);
74
+ });
75
+ }