@ulu/frontend 0.1.0-beta.99 → 0.2.0-beta.10

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 (563) hide show
  1. package/dist/README.md +12 -0
  2. package/{types/utils/system.d.ts → dist/es/core/component.d.ts} +7 -16
  3. package/dist/es/core/component.d.ts.map +1 -0
  4. package/dist/es/core/component.js +134 -0
  5. package/dist/es/core/events.d.ts +27 -0
  6. package/dist/es/core/events.d.ts.map +1 -0
  7. package/dist/es/core/events.js +45 -0
  8. package/dist/es/core/index.d.ts +4 -0
  9. package/{types/utils → dist/es/core}/index.d.ts.map +1 -1
  10. package/{types → dist/es/core}/settings.d.ts +1 -1
  11. package/dist/es/core/settings.d.ts.map +1 -0
  12. package/dist/es/core/settings.js +44 -0
  13. package/dist/es/index.d.ts +4 -0
  14. package/{types → dist/es}/index.d.ts.map +1 -1
  15. package/dist/es/index.js +125 -0
  16. package/{types → dist/es}/ui/breakpoints.d.ts +9 -9
  17. package/dist/es/ui/breakpoints.d.ts.map +1 -0
  18. package/dist/es/ui/breakpoints.js +194 -0
  19. package/{types → dist/es}/ui/collapsible.d.ts +28 -7
  20. package/dist/es/ui/collapsible.d.ts.map +1 -0
  21. package/dist/es/ui/collapsible.js +140 -0
  22. package/{types → dist/es}/ui/details-group.d.ts +1 -1
  23. package/dist/es/ui/details-group.d.ts.map +1 -0
  24. package/dist/es/ui/details-group.js +49 -0
  25. package/{types → dist/es}/ui/dialog.d.ts +3 -3
  26. package/dist/es/ui/dialog.d.ts.map +1 -0
  27. package/dist/es/ui/dialog.js +112 -0
  28. package/{types → dist/es}/ui/flipcard.d.ts +1 -1
  29. package/dist/es/ui/flipcard.d.ts.map +1 -0
  30. package/dist/es/ui/flipcard.js +97 -0
  31. package/{types → dist/es}/ui/grid.d.ts +2 -2
  32. package/dist/es/ui/grid.d.ts.map +1 -0
  33. package/dist/es/ui/grid.js +18 -0
  34. package/dist/es/ui/index.d.ts +23 -0
  35. package/{types → dist/es}/ui/index.d.ts.map +1 -1
  36. package/{types → dist/es}/ui/modal-builder.d.ts +22 -17
  37. package/dist/es/ui/modal-builder.d.ts.map +1 -0
  38. package/dist/es/ui/modal-builder.js +136 -0
  39. package/dist/es/ui/overflow-scroller-pager.d.ts.map +1 -0
  40. package/dist/es/ui/overflow-scroller-pager.js +28 -0
  41. package/{types → dist/es}/ui/overflow-scroller.d.ts +3 -3
  42. package/dist/es/ui/overflow-scroller.d.ts.map +1 -0
  43. package/dist/es/ui/overflow-scroller.js +90 -0
  44. package/dist/es/ui/page.d.ts.map +1 -0
  45. package/dist/es/ui/page.js +7 -0
  46. package/{types → dist/es}/ui/popover.d.ts +4 -4
  47. package/dist/es/ui/popover.d.ts.map +1 -0
  48. package/dist/es/ui/popover.js +77 -0
  49. package/dist/es/ui/print-details.d.ts.map +1 -0
  50. package/dist/es/ui/print-details.js +22 -0
  51. package/dist/es/ui/print.d.ts.map +1 -0
  52. package/dist/es/ui/print.js +34 -0
  53. package/{types → dist/es}/ui/programmatic-modal.d.ts +2 -2
  54. package/dist/es/ui/programmatic-modal.d.ts.map +1 -0
  55. package/dist/es/ui/programmatic-modal.js +55 -0
  56. package/{types → dist/es}/ui/proxy-click.d.ts +4 -4
  57. package/dist/es/ui/proxy-click.d.ts.map +1 -0
  58. package/dist/es/ui/proxy-click.js +44 -0
  59. package/{types → dist/es}/ui/resizer.d.ts +17 -17
  60. package/dist/es/ui/resizer.d.ts.map +1 -0
  61. package/dist/es/ui/resizer.js +242 -0
  62. package/{types → dist/es}/ui/scroll-slider.d.ts +1 -1
  63. package/dist/es/ui/scroll-slider.d.ts.map +1 -0
  64. package/dist/es/ui/scroll-slider.js +29 -0
  65. package/{types → dist/es}/ui/scrollpoint.d.ts +80 -12
  66. package/dist/es/ui/scrollpoint.d.ts.map +1 -0
  67. package/dist/es/ui/scrollpoint.js +178 -0
  68. package/{types → dist/es}/ui/slider.d.ts +16 -13
  69. package/dist/es/ui/slider.d.ts.map +1 -0
  70. package/dist/es/ui/slider.js +290 -0
  71. package/{types → dist/es}/ui/tabs.d.ts +2 -2
  72. package/dist/es/ui/tabs.d.ts.map +1 -0
  73. package/dist/es/ui/tabs.js +64 -0
  74. package/{types → dist/es}/ui/theme-toggle.d.ts +4 -4
  75. package/dist/es/ui/theme-toggle.d.ts.map +1 -0
  76. package/dist/es/ui/theme-toggle.js +190 -0
  77. package/{types → dist/es}/ui/tooltip.d.ts +5 -5
  78. package/dist/es/ui/tooltip.d.ts.map +1 -0
  79. package/dist/es/ui/tooltip.js +184 -0
  80. package/{types → dist/es}/utils/class-logger.d.ts +4 -4
  81. package/dist/es/utils/class-logger.d.ts.map +1 -0
  82. package/dist/es/utils/class-logger.js +37 -0
  83. package/dist/es/utils/css.d.ts.map +1 -0
  84. package/dist/es/utils/css.js +6 -0
  85. package/{types → dist/es}/utils/dom.d.ts +1 -1
  86. package/dist/es/utils/dom.d.ts.map +1 -0
  87. package/dist/es/utils/dom.js +29 -0
  88. package/{types → dist/es}/utils/file-save.d.ts +4 -1
  89. package/dist/es/utils/file-save.d.ts.map +1 -0
  90. package/dist/es/utils/file-save.js +46 -0
  91. package/{types → dist/es}/utils/floating-ui.d.ts +1 -1
  92. package/dist/es/utils/floating-ui.d.ts.map +1 -0
  93. package/dist/es/utils/floating-ui.js +46 -0
  94. package/dist/es/utils/font-awesome.d.ts.map +1 -0
  95. package/dist/es/utils/font-awesome.js +13 -0
  96. package/dist/es/utils/id.d.ts.map +1 -0
  97. package/dist/es/utils/id.js +11 -0
  98. package/dist/es/utils/index.d.ts +8 -0
  99. package/dist/es/utils/index.d.ts.map +1 -0
  100. package/dist/es/utils/pause-youtube-video.d.ts.map +1 -0
  101. package/dist/es/utils/pause-youtube-video.js +27 -0
  102. package/dist/umd/style.css +1 -0
  103. package/dist/umd/ulu-frontend.umd.js +70 -0
  104. package/lib/index.js +5 -0
  105. package/{js/utils/system.js → lib/js/core/component.js} +13 -12
  106. package/lib/js/core/events.js +98 -0
  107. package/lib/js/core/index.js +34 -0
  108. package/{js → lib/js/core}/settings.js +3 -3
  109. package/lib/js/exports.md +126 -0
  110. package/lib/js/index.js +7 -0
  111. package/{js → lib/js}/ui/breakpoints.js +40 -35
  112. package/{js → lib/js}/ui/collapsible.js +2 -2
  113. package/{js → lib/js}/ui/details-group.js +2 -2
  114. package/{js → lib/js}/ui/dialog.js +6 -6
  115. package/{js → lib/js}/ui/flipcard.js +2 -2
  116. package/{js → lib/js}/ui/grid.js +2 -2
  117. package/lib/js/ui/index.js +165 -0
  118. package/{js → lib/js}/ui/modal-builder.js +11 -9
  119. package/{js → lib/js}/ui/overflow-scroller.js +2 -2
  120. package/{js → lib/js}/ui/popover.js +2 -2
  121. package/{js → lib/js}/ui/print-details.js +3 -3
  122. package/{js → lib/js}/ui/print.js +2 -2
  123. package/{js → lib/js}/ui/programmatic-modal.js +3 -3
  124. package/{js → lib/js}/ui/proxy-click.js +2 -2
  125. package/{js → lib/js}/ui/resizer.js +2 -2
  126. package/{js → lib/js}/ui/scroll-slider.js +2 -2
  127. package/{js → lib/js}/ui/scrollpoint.js +2 -2
  128. package/{js → lib/js}/ui/slider.js +25 -16
  129. package/{js → lib/js}/ui/tabs.js +2 -2
  130. package/{js → lib/js}/ui/theme-toggle.js +5 -5
  131. package/{js → lib/js}/ui/tooltip.js +4 -4
  132. package/{js → lib/js}/utils/css.js +1 -1
  133. package/{js → lib/js}/utils/font-awesome.js +2 -2
  134. package/lib/js/utils/index.js +63 -0
  135. package/{scss → lib/scss}/_breakpoint.scss +4 -4
  136. package/{scss → lib/scss}/_button.scss +1 -0
  137. package/{scss → lib/scss}/_color.scss +42 -38
  138. package/{scss → lib/scss}/_element.scss +13 -2
  139. package/{scss → lib/scss}/_typography.scss +15 -0
  140. package/lib/scss/components/_accordion.scss +268 -0
  141. package/{scss → lib/scss}/components/_basic-hero.scss +1 -1
  142. package/lib/scss/components/_breadcrumb.scss +110 -0
  143. package/{scss → lib/scss}/components/_button.scss +23 -4
  144. package/{scss → lib/scss}/components/_card-grid.scss +8 -2
  145. package/lib/scss/components/_card.scss +655 -0
  146. package/lib/scss/components/_definition-list.scss +178 -0
  147. package/{scss → lib/scss}/components/_form-theme.scss +3 -3
  148. package/{scss → lib/scss}/components/_index.scss +25 -0
  149. package/{scss → lib/scss}/components/_menu-stack.scss +170 -16
  150. package/{scss → lib/scss}/components/_modal.scss +23 -13
  151. package/lib/scss/components/_progress-bar.scss +260 -0
  152. package/lib/scss/components/_progress-circle.scss +175 -0
  153. package/{scss → lib/scss}/components/_skeleton.scss +24 -20
  154. package/{scss → lib/scss}/components/_tag.scss +49 -7
  155. package/{scss → lib/scss}/helpers/_utilities.scss +22 -3
  156. package/package.json +65 -43
  157. package/.browserslistrc +0 -2
  158. package/.eslintrc +0 -17
  159. package/.prettierrc +0 -10
  160. package/CHANGELOG.md +0 -750
  161. package/deprecated/js/doc-ready.js +0 -28
  162. package/deprecated/js/drupal-programmatic-modal.js +0 -91
  163. package/deprecated/js/jquery-prototypes.js +0 -309
  164. package/deprecated/js/micromodal-modals.js +0 -196
  165. package/deprecated/js/mini-collapsible-popper-positioning.js +0 -126
  166. package/deprecated/js/mini-collapsible.js +0 -607
  167. package/deprecated/js/node-data-manager.js +0 -78
  168. package/deprecated/js/script-loader.js +0 -60
  169. package/deprecated/js/waypoints/README.md +0 -3
  170. package/deprecated/js/waypoints/anchor-menu.js +0 -76
  171. package/deprecated/js/waypoints/element-waypoint.js +0 -75
  172. package/deprecated/js/waypoints/examples/page-link-menu.md +0 -106
  173. package/deprecated/js/waypoints/state-in-attribute.js +0 -32
  174. package/dist/ulu-frontend.min.css +0 -1
  175. package/dist/ulu-frontend.min.js +0 -77
  176. package/docs-dev/.nojekyll +0 -1
  177. package/docs-dev/assets/chunks/modulepreload-polyfill.DaKOjhqt.js +0 -37
  178. package/docs-dev/assets/favicons/android-chrome-192x192.png +0 -0
  179. package/docs-dev/assets/favicons/android-chrome-256x256.png +0 -0
  180. package/docs-dev/assets/favicons/apple-touch-icon.png +0 -0
  181. package/docs-dev/assets/favicons/browserconfig.xml +0 -9
  182. package/docs-dev/assets/favicons/favicon-16x16.png +0 -0
  183. package/docs-dev/assets/favicons/favicon-32x32.png +0 -0
  184. package/docs-dev/assets/favicons/favicon.ico +0 -0
  185. package/docs-dev/assets/favicons/mstile-150x150.png +0 -0
  186. package/docs-dev/assets/favicons/safari-pinned-tab.svg +0 -1
  187. package/docs-dev/assets/favicons/site.webmanifest +0 -19
  188. package/docs-dev/assets/fonts/fontawesome/fa-brands-400.ttf +0 -0
  189. package/docs-dev/assets/fonts/fontawesome/fa-brands-400.woff2 +0 -0
  190. package/docs-dev/assets/fonts/fontawesome/fa-regular-400.ttf +0 -0
  191. package/docs-dev/assets/fonts/fontawesome/fa-regular-400.woff2 +0 -0
  192. package/docs-dev/assets/fonts/fontawesome/fa-solid-900.ttf +0 -0
  193. package/docs-dev/assets/fonts/fontawesome/fa-solid-900.woff2 +0 -0
  194. package/docs-dev/assets/fonts/fontawesome/fa-v4compatibility.ttf +0 -0
  195. package/docs-dev/assets/fonts/fontawesome/fa-v4compatibility.woff2 +0 -0
  196. package/docs-dev/assets/fonts/inter/Inter-Black.woff2 +0 -0
  197. package/docs-dev/assets/fonts/inter/Inter-BlackItalic.woff2 +0 -0
  198. package/docs-dev/assets/fonts/inter/Inter-Bold.woff2 +0 -0
  199. package/docs-dev/assets/fonts/inter/Inter-BoldItalic.woff2 +0 -0
  200. package/docs-dev/assets/fonts/inter/Inter-ExtraBold.woff2 +0 -0
  201. package/docs-dev/assets/fonts/inter/Inter-ExtraBoldItalic.woff2 +0 -0
  202. package/docs-dev/assets/fonts/inter/Inter-ExtraLight.woff2 +0 -0
  203. package/docs-dev/assets/fonts/inter/Inter-ExtraLightItalic.woff2 +0 -0
  204. package/docs-dev/assets/fonts/inter/Inter-Italic.woff2 +0 -0
  205. package/docs-dev/assets/fonts/inter/Inter-Light.woff2 +0 -0
  206. package/docs-dev/assets/fonts/inter/Inter-LightItalic.woff2 +0 -0
  207. package/docs-dev/assets/fonts/inter/Inter-Medium.woff2 +0 -0
  208. package/docs-dev/assets/fonts/inter/Inter-MediumItalic.woff2 +0 -0
  209. package/docs-dev/assets/fonts/inter/Inter-Regular.woff2 +0 -0
  210. package/docs-dev/assets/fonts/inter/Inter-SemiBold.woff2 +0 -0
  211. package/docs-dev/assets/fonts/inter/Inter-SemiBoldItalic.woff2 +0 -0
  212. package/docs-dev/assets/fonts/inter/Inter-Thin.woff2 +0 -0
  213. package/docs-dev/assets/fonts/inter/Inter-ThinItalic.woff2 +0 -0
  214. package/docs-dev/assets/fonts/inter/InterDisplay-Black.woff2 +0 -0
  215. package/docs-dev/assets/fonts/inter/InterDisplay-BlackItalic.woff2 +0 -0
  216. package/docs-dev/assets/fonts/inter/InterDisplay-Bold.woff2 +0 -0
  217. package/docs-dev/assets/fonts/inter/InterDisplay-BoldItalic.woff2 +0 -0
  218. package/docs-dev/assets/fonts/inter/InterDisplay-ExtraBold.woff2 +0 -0
  219. package/docs-dev/assets/fonts/inter/InterDisplay-ExtraBoldItalic.woff2 +0 -0
  220. package/docs-dev/assets/fonts/inter/InterDisplay-ExtraLight.woff2 +0 -0
  221. package/docs-dev/assets/fonts/inter/InterDisplay-ExtraLightItalic.woff2 +0 -0
  222. package/docs-dev/assets/fonts/inter/InterDisplay-Italic.woff2 +0 -0
  223. package/docs-dev/assets/fonts/inter/InterDisplay-Light.woff2 +0 -0
  224. package/docs-dev/assets/fonts/inter/InterDisplay-LightItalic.woff2 +0 -0
  225. package/docs-dev/assets/fonts/inter/InterDisplay-Medium.woff2 +0 -0
  226. package/docs-dev/assets/fonts/inter/InterDisplay-MediumItalic.woff2 +0 -0
  227. package/docs-dev/assets/fonts/inter/InterDisplay-Regular.woff2 +0 -0
  228. package/docs-dev/assets/fonts/inter/InterDisplay-SemiBold.woff2 +0 -0
  229. package/docs-dev/assets/fonts/inter/InterDisplay-SemiBoldItalic.woff2 +0 -0
  230. package/docs-dev/assets/fonts/inter/InterDisplay-Thin.woff2 +0 -0
  231. package/docs-dev/assets/fonts/inter/InterDisplay-ThinItalic.woff2 +0 -0
  232. package/docs-dev/assets/fonts/inter/InterVariable-Italic.woff2 +0 -0
  233. package/docs-dev/assets/fonts/inter/InterVariable.woff2 +0 -0
  234. package/docs-dev/assets/fonts/inter/LICENSE.txt +0 -92
  235. package/docs-dev/assets/fonts/inter/inter.css +0 -37
  236. package/docs-dev/assets/main.js +0 -23312
  237. package/docs-dev/assets/placeholder/4065947-uhd_4096_2160_25fps.credits.txt +0 -2
  238. package/docs-dev/assets/placeholder/4065947-uhd_4096_2160_25fps.mp4 +0 -0
  239. package/docs-dev/assets/placeholder/icon-calendar.svg +0 -1
  240. package/docs-dev/assets/placeholder/icon-check.svg +0 -1
  241. package/docs-dev/assets/placeholder/image-1-attribution.txt +0 -7
  242. package/docs-dev/assets/placeholder/image-1-darkened.jpg +0 -0
  243. package/docs-dev/assets/placeholder/image-1-lightened.jpg +0 -0
  244. package/docs-dev/assets/placeholder/image-1.jpg +0 -0
  245. package/docs-dev/assets/style.css +0 -19153
  246. package/docs-dev/changelog/index.html +0 -7184
  247. package/docs-dev/demos/accordion/index.html +0 -5811
  248. package/docs-dev/demos/badge/index.html +0 -5655
  249. package/docs-dev/demos/badge-stack/index.html +0 -5636
  250. package/docs-dev/demos/badge.1/index.html +0 -5595
  251. package/docs-dev/demos/basic-hero/index.html +0 -111
  252. package/docs-dev/demos/breakpoints-manager/index.html +0 -5666
  253. package/docs-dev/demos/button/index.html +0 -5665
  254. package/docs-dev/demos/button-group/index.html +0 -5652
  255. package/docs-dev/demos/button-verbose/index.html +0 -5658
  256. package/docs-dev/demos/callout/index.html +0 -5704
  257. package/docs-dev/demos/captioned-figure/index.html +0 -5686
  258. package/docs-dev/demos/card/index.html +0 -5682
  259. package/docs-dev/demos/card-grid/index.html +0 -5777
  260. package/docs-dev/demos/counter-list/index.html +0 -5660
  261. package/docs-dev/demos/css-icons/index.html +0 -6298
  262. package/docs-dev/demos/data-grid/index.html +0 -6529
  263. package/docs-dev/demos/data-table/index.html +0 -5833
  264. package/docs-dev/demos/details-group/index.html +0 -5687
  265. package/docs-dev/demos/file-save/index.html +0 -5675
  266. package/docs-dev/demos/flipcard/index.html +0 -6224
  267. package/docs-dev/demos/form-theme/index.html +0 -5842
  268. package/docs-dev/demos/headline-label/index.html +0 -5622
  269. package/docs-dev/demos/hero/index.html +0 -309
  270. package/docs-dev/demos/image-grid/index.html +0 -165
  271. package/docs-dev/demos/index.html +0 -5613
  272. package/docs-dev/demos/list-inline/index.html +0 -5640
  273. package/docs-dev/demos/list-lines/index.html +0 -5630
  274. package/docs-dev/demos/menu-stack/index.html +0 -5769
  275. package/docs-dev/demos/modals/index.html +0 -5844
  276. package/docs-dev/demos/nav-strip/index.html +0 -5725
  277. package/docs-dev/demos/overlay-section/index.html +0 -5701
  278. package/docs-dev/demos/panel/index.html +0 -5682
  279. package/docs-dev/demos/popovers/index.html +0 -0
  280. package/docs-dev/demos/print/index.html +0 -5633
  281. package/docs-dev/demos/pull-quote/index.html +0 -5632
  282. package/docs-dev/demos/rail/index.html +0 -5730
  283. package/docs-dev/demos/rule/index.html +0 -5694
  284. package/docs-dev/demos/scroll-slider/index.html +0 -170
  285. package/docs-dev/demos/scrollpoints/index.html +0 -5651
  286. package/docs-dev/demos/skeleton/index.html +0 -5676
  287. package/docs-dev/demos/slider/index.html +0 -172
  288. package/docs-dev/demos/spoke-spinner/index.html +0 -5628
  289. package/docs-dev/demos/sticky-list/index.html +0 -5643
  290. package/docs-dev/demos/tabs/index.html +0 -5753
  291. package/docs-dev/demos/tag/index.html +0 -5633
  292. package/docs-dev/demos/theme-toggle/index.html +0 -5699
  293. package/docs-dev/demos/tile-grid-overlay/index.html +0 -390
  294. package/docs-dev/demos/tiles/index.html +0 -5882
  295. package/docs-dev/demos/tooltip/index.html +0 -5661
  296. package/docs-dev/demos/wysiwyg/index.html +0 -5672
  297. package/docs-dev/guide/building-stylesheet/index.html +0 -5682
  298. package/docs-dev/guide/developing-ulu-scss-module/index.html +0 -5734
  299. package/docs-dev/guide/index.html +0 -5615
  300. package/docs-dev/index.html +0 -5662
  301. package/docs-dev/javascript/events/index.html +0 -5811
  302. package/docs-dev/javascript/index.html +0 -5628
  303. package/docs-dev/javascript/settings/index.html +0 -5825
  304. package/docs-dev/javascript/ui-breakpoints/index.html +0 -6071
  305. package/docs-dev/javascript/ui-collapsible/index.html +0 -5738
  306. package/docs-dev/javascript/ui-details-group/index.html +0 -5742
  307. package/docs-dev/javascript/ui-dialog/index.html +0 -5787
  308. package/docs-dev/javascript/ui-flipcard/index.html +0 -5678
  309. package/docs-dev/javascript/ui-grid/index.html +0 -5653
  310. package/docs-dev/javascript/ui-modal-builder/index.html +0 -5901
  311. package/docs-dev/javascript/ui-overflow-scroller/index.html +0 -5611
  312. package/docs-dev/javascript/ui-overflow-scroller-pager/index.html +0 -5629
  313. package/docs-dev/javascript/ui-page/index.html +0 -5626
  314. package/docs-dev/javascript/ui-popover/index.html +0 -5661
  315. package/docs-dev/javascript/ui-print/index.html +0 -5670
  316. package/docs-dev/javascript/ui-print-details/index.html +0 -5641
  317. package/docs-dev/javascript/ui-programmatic-modal/index.html +0 -5611
  318. package/docs-dev/javascript/ui-proxy-click/index.html +0 -5740
  319. package/docs-dev/javascript/ui-resizer/index.html +0 -5946
  320. package/docs-dev/javascript/ui-scroll-slider/index.html +0 -5672
  321. package/docs-dev/javascript/ui-scrollpoint/index.html +0 -5851
  322. package/docs-dev/javascript/ui-slider/index.html +0 -5813
  323. package/docs-dev/javascript/ui-tabs/index.html +0 -5706
  324. package/docs-dev/javascript/ui-theme-toggle/index.html +0 -5830
  325. package/docs-dev/javascript/ui-tooltip/index.html +0 -5754
  326. package/docs-dev/javascript/utils-class-logger/index.html +0 -5746
  327. package/docs-dev/javascript/utils-css/index.html +0 -5644
  328. package/docs-dev/javascript/utils-dom/index.html +0 -5711
  329. package/docs-dev/javascript/utils-file-save/index.html +0 -5783
  330. package/docs-dev/javascript/utils-floating-ui/index.html +0 -5643
  331. package/docs-dev/javascript/utils-id/index.html +0 -5653
  332. package/docs-dev/javascript/utils-pause-youtube-video/index.html +0 -5661
  333. package/docs-dev/javascript/utils-system/index.html +0 -5947
  334. package/docs-dev/sass/base/color/index.html +0 -5644
  335. package/docs-dev/sass/base/elements/index.html +0 -5815
  336. package/docs-dev/sass/base/index/index.html +0 -5814
  337. package/docs-dev/sass/base/index.html +0 -5622
  338. package/docs-dev/sass/base/keyframes/index.html +0 -5646
  339. package/docs-dev/sass/base/layout/index.html +0 -5806
  340. package/docs-dev/sass/base/normalize/index.html +0 -5654
  341. package/docs-dev/sass/base/print/index.html +0 -5650
  342. package/docs-dev/sass/base/root/index.html +0 -5670
  343. package/docs-dev/sass/base/typography/index.html +0 -5670
  344. package/docs-dev/sass/components/accordion/index.html +0 -5979
  345. package/docs-dev/sass/components/adaptive-spacing/index.html +0 -5915
  346. package/docs-dev/sass/components/badge/index.html +0 -5881
  347. package/docs-dev/sass/components/badge-stack/index.html +0 -5811
  348. package/docs-dev/sass/components/basic-hero/index.html +0 -5805
  349. package/docs-dev/sass/components/button/index.html +0 -5799
  350. package/docs-dev/sass/components/button-group/index.html +0 -5803
  351. package/docs-dev/sass/components/button-verbose/index.html +0 -5986
  352. package/docs-dev/sass/components/callout/index.html +0 -5961
  353. package/docs-dev/sass/components/captioned-figure/index.html +0 -5904
  354. package/docs-dev/sass/components/card/index.html +0 -6219
  355. package/docs-dev/sass/components/card-grid/index.html +0 -5813
  356. package/docs-dev/sass/components/counter-list/index.html +0 -5887
  357. package/docs-dev/sass/components/css-icon/index.html +0 -5917
  358. package/docs-dev/sass/components/data-grid/index.html +0 -6052
  359. package/docs-dev/sass/components/data-table/index.html +0 -5988
  360. package/docs-dev/sass/components/fill-context/index.html +0 -5679
  361. package/docs-dev/sass/components/flipcard/index.html +0 -5980
  362. package/docs-dev/sass/components/flipcard-grid/index.html +0 -5800
  363. package/docs-dev/sass/components/form-theme/index.html +0 -6525
  364. package/docs-dev/sass/components/headline-label/index.html +0 -5833
  365. package/docs-dev/sass/components/hero/index.html +0 -5849
  366. package/docs-dev/sass/components/horizontal-rule/index.html +0 -5798
  367. package/docs-dev/sass/components/image-grid/index.html +0 -5805
  368. package/docs-dev/sass/components/index/index.html +0 -5859
  369. package/docs-dev/sass/components/index.html +0 -5622
  370. package/docs-dev/sass/components/links/index.html +0 -5649
  371. package/docs-dev/sass/components/list-inline/index.html +0 -5819
  372. package/docs-dev/sass/components/list-lines/index.html +0 -5840
  373. package/docs-dev/sass/components/list-ordered/index.html +0 -5645
  374. package/docs-dev/sass/components/list-unordered/index.html +0 -5649
  375. package/docs-dev/sass/components/menu-stack/index.html +0 -5992
  376. package/docs-dev/sass/components/modal/index.html +0 -6068
  377. package/docs-dev/sass/components/nav-strip/index.html +0 -5899
  378. package/docs-dev/sass/components/overlay-section/index.html +0 -5843
  379. package/docs-dev/sass/components/pager/index.html +0 -5961
  380. package/docs-dev/sass/components/panel/index.html +0 -6033
  381. package/docs-dev/sass/components/placeholder-block/index.html +0 -5883
  382. package/docs-dev/sass/components/popover/index.html +0 -5994
  383. package/docs-dev/sass/components/pull-quote/index.html +0 -5857
  384. package/docs-dev/sass/components/rail/index.html +0 -5823
  385. package/docs-dev/sass/components/ratio-box/index.html +0 -5803
  386. package/docs-dev/sass/components/rule/index.html +0 -5805
  387. package/docs-dev/sass/components/scroll-slider/index.html +0 -5904
  388. package/docs-dev/sass/components/skeleton/index.html +0 -5860
  389. package/docs-dev/sass/components/skip-link/index.html +0 -5789
  390. package/docs-dev/sass/components/slider/index.html +0 -5913
  391. package/docs-dev/sass/components/spoke-spinner/index.html +0 -5863
  392. package/docs-dev/sass/components/sticky-list/index.html +0 -6023
  393. package/docs-dev/sass/components/table-sticky/index.html +0 -5677
  394. package/docs-dev/sass/components/tabs/index.html +0 -5954
  395. package/docs-dev/sass/components/tag/index.html +0 -5964
  396. package/docs-dev/sass/components/tile-button/index.html +0 -5844
  397. package/docs-dev/sass/components/tile-grid/index.html +0 -5979
  398. package/docs-dev/sass/components/tile-grid-overlay/index.html +0 -5780
  399. package/docs-dev/sass/components/vignette/index.html +0 -5799
  400. package/docs-dev/sass/components/wysiwyg/index.html +0 -5827
  401. package/docs-dev/sass/core/breakpoint/index.html +0 -6454
  402. package/docs-dev/sass/core/button/index.html +0 -6538
  403. package/docs-dev/sass/core/color/index.html +0 -6520
  404. package/docs-dev/sass/core/cssvar/index.html +0 -6411
  405. package/docs-dev/sass/core/element/index.html +0 -6816
  406. package/docs-dev/sass/core/index.html +0 -5609
  407. package/docs-dev/sass/core/layout/index.html +0 -6388
  408. package/docs-dev/sass/core/path/index.html +0 -5778
  409. package/docs-dev/sass/core/selector/index.html +0 -5857
  410. package/docs-dev/sass/core/typography/index.html +0 -6783
  411. package/docs-dev/sass/core/units/index.html +0 -5822
  412. package/docs-dev/sass/core/utils/index.html +0 -8406
  413. package/docs-dev/sass/helpers/color/index.html +0 -5644
  414. package/docs-dev/sass/helpers/display/index.html +0 -5649
  415. package/docs-dev/sass/helpers/index/index.html +0 -5811
  416. package/docs-dev/sass/helpers/index.html +0 -5622
  417. package/docs-dev/sass/helpers/print/index.html +0 -5199
  418. package/docs-dev/sass/helpers/typography/index.html +0 -5672
  419. package/docs-dev/sass/helpers/units/index.html +0 -5818
  420. package/docs-dev/sass/helpers/utilities/index.html +0 -5649
  421. package/docs-dev/sass/index.html +0 -5673
  422. package/index.js +0 -7
  423. package/js/events/index.js +0 -108
  424. package/js/index.js +0 -11
  425. package/js/ui/index.js +0 -22
  426. package/js/utils/index.js +0 -8
  427. package/resources/drupal/twig-macros/accordion.twig +0 -99
  428. package/resources/drupal/twig-macros/dropdown.twig +0 -44
  429. package/resources/drupal/twig-macros/flipcard.twig +0 -69
  430. package/resources/drupal/twig-macros/image.twig +0 -30
  431. package/resources/drupal/twig-macros/layout.twig +0 -338
  432. package/resources/drupal/twig-macros/slider.twig +0 -214
  433. package/resources/drupal/twig-macros/tabs.twig +0 -84
  434. package/scss/components/_accordion.scss +0 -231
  435. package/scss/components/_card.scss +0 -596
  436. package/types/events/index.d.ts +0 -26
  437. package/types/events/index.d.ts.map +0 -1
  438. package/types/index.d.ts +0 -5
  439. package/types/settings.d.ts.map +0 -1
  440. package/types/ui/breakpoints.d.ts.map +0 -1
  441. package/types/ui/collapsible.d.ts.map +0 -1
  442. package/types/ui/details-group.d.ts.map +0 -1
  443. package/types/ui/dialog.d.ts.map +0 -1
  444. package/types/ui/flipcard.d.ts.map +0 -1
  445. package/types/ui/grid.d.ts.map +0 -1
  446. package/types/ui/index.d.ts +0 -24
  447. package/types/ui/modal-builder.d.ts.map +0 -1
  448. package/types/ui/overflow-scroller-pager.d.ts.map +0 -1
  449. package/types/ui/overflow-scroller.d.ts.map +0 -1
  450. package/types/ui/page.d.ts.map +0 -1
  451. package/types/ui/popover.d.ts.map +0 -1
  452. package/types/ui/print-details.d.ts.map +0 -1
  453. package/types/ui/print.d.ts.map +0 -1
  454. package/types/ui/programmatic-modal.d.ts.map +0 -1
  455. package/types/ui/proxy-click.d.ts.map +0 -1
  456. package/types/ui/resizer.d.ts.map +0 -1
  457. package/types/ui/scroll-slider.d.ts.map +0 -1
  458. package/types/ui/scrollpoint.d.ts.map +0 -1
  459. package/types/ui/slider.d.ts.map +0 -1
  460. package/types/ui/tabs.d.ts.map +0 -1
  461. package/types/ui/theme-toggle.d.ts.map +0 -1
  462. package/types/ui/tooltip.d.ts.map +0 -1
  463. package/types/utils/class-logger.d.ts.map +0 -1
  464. package/types/utils/css.d.ts.map +0 -1
  465. package/types/utils/dom.d.ts.map +0 -1
  466. package/types/utils/file-save.d.ts.map +0 -1
  467. package/types/utils/floating-ui.d.ts.map +0 -1
  468. package/types/utils/font-awesome.d.ts.map +0 -1
  469. package/types/utils/id.d.ts.map +0 -1
  470. package/types/utils/index.d.ts +0 -10
  471. package/types/utils/pause-youtube-video.d.ts.map +0 -1
  472. package/types/utils/system.d.ts.map +0 -1
  473. /package/{types → dist/es}/ui/overflow-scroller-pager.d.ts +0 -0
  474. /package/{types → dist/es}/ui/page.d.ts +0 -0
  475. /package/{types → dist/es}/ui/print-details.d.ts +0 -0
  476. /package/{types → dist/es}/ui/print.d.ts +0 -0
  477. /package/{types → dist/es}/utils/css.d.ts +0 -0
  478. /package/{types → dist/es}/utils/font-awesome.d.ts +0 -0
  479. /package/{types → dist/es}/utils/id.d.ts +0 -0
  480. /package/{types → dist/es}/utils/pause-youtube-video.d.ts +0 -0
  481. /package/{js → lib/js}/ui/dialog.todo +0 -0
  482. /package/{js → lib/js}/ui/overflow-scroller-pager.js +0 -0
  483. /package/{js → lib/js}/ui/page.js +0 -0
  484. /package/{js → lib/js}/utils/class-logger.js +0 -0
  485. /package/{js → lib/js}/utils/dom.js +0 -0
  486. /package/{js → lib/js}/utils/file-save.js +0 -0
  487. /package/{js → lib/js}/utils/floating-ui.js +0 -0
  488. /package/{js → lib/js}/utils/id.js +0 -0
  489. /package/{js → lib/js}/utils/pause-youtube-video.js +0 -0
  490. /package/{scss → lib/scss}/README.md +0 -0
  491. /package/{scss → lib/scss}/_cssvar.scss +0 -0
  492. /package/{scss → lib/scss}/_index.scss +0 -0
  493. /package/{scss → lib/scss}/_layout.scss +0 -0
  494. /package/{scss → lib/scss}/_path.scss +0 -0
  495. /package/{scss → lib/scss}/_selector.scss +0 -0
  496. /package/{scss → lib/scss}/_units.scss +0 -0
  497. /package/{scss → lib/scss}/_utils.scss +0 -0
  498. /package/{scss → lib/scss}/base/_color.scss +0 -0
  499. /package/{scss → lib/scss}/base/_elements.scss +0 -0
  500. /package/{scss → lib/scss}/base/_index.scss +0 -0
  501. /package/{scss → lib/scss}/base/_keyframes.scss +0 -0
  502. /package/{scss → lib/scss}/base/_layout.scss +0 -0
  503. /package/{scss → lib/scss}/base/_normalize.scss +0 -0
  504. /package/{scss → lib/scss}/base/_print.scss +0 -0
  505. /package/{scss → lib/scss}/base/_root.scss +0 -0
  506. /package/{scss → lib/scss}/base/_typography.scss +0 -0
  507. /package/{scss → lib/scss}/components/README.md +0 -0
  508. /package/{scss → lib/scss}/components/README.todos +0 -0
  509. /package/{scss → lib/scss}/components/_adaptive-spacing.scss +0 -0
  510. /package/{scss → lib/scss}/components/_badge-stack.scss +0 -0
  511. /package/{scss → lib/scss}/components/_badge.scss +0 -0
  512. /package/{scss → lib/scss}/components/_button-group.scss +0 -0
  513. /package/{scss → lib/scss}/components/_button-verbose.scss +0 -0
  514. /package/{scss → lib/scss}/components/_callout.scss +0 -0
  515. /package/{scss → lib/scss}/components/_captioned-figure.scss +0 -0
  516. /package/{scss → lib/scss}/components/_counter-list.scss +0 -0
  517. /package/{scss → lib/scss}/components/_css-icon.scss +0 -0
  518. /package/{scss → lib/scss}/components/_data-grid.scss +0 -0
  519. /package/{scss → lib/scss}/components/_data-table.scss +0 -0
  520. /package/{scss → lib/scss}/components/_fill-context.scss +0 -0
  521. /package/{scss → lib/scss}/components/_flipcard-grid.scss +0 -0
  522. /package/{scss → lib/scss}/components/_flipcard.scss +0 -0
  523. /package/{scss → lib/scss}/components/_headline-label.scss +0 -0
  524. /package/{scss → lib/scss}/components/_hero.scss +0 -0
  525. /package/{scss → lib/scss}/components/_horizontal-rule.scss +0 -0
  526. /package/{scss → lib/scss}/components/_image-grid.scss +0 -0
  527. /package/{scss → lib/scss}/components/_links.scss +0 -0
  528. /package/{scss → lib/scss}/components/_list-inline.scss +0 -0
  529. /package/{scss → lib/scss}/components/_list-lines.scss +0 -0
  530. /package/{scss → lib/scss}/components/_list-ordered.scss +0 -0
  531. /package/{scss → lib/scss}/components/_list-unordered.scss +0 -0
  532. /package/{scss → lib/scss}/components/_nav-strip.scss +0 -0
  533. /package/{scss → lib/scss}/components/_overlay-section.scss +0 -0
  534. /package/{scss → lib/scss}/components/_pager.scss +0 -0
  535. /package/{scss → lib/scss}/components/_panel.scss +0 -0
  536. /package/{scss → lib/scss}/components/_placeholder-block.scss +0 -0
  537. /package/{scss → lib/scss}/components/_popover.scss +0 -0
  538. /package/{scss → lib/scss}/components/_pull-quote.scss +0 -0
  539. /package/{scss → lib/scss}/components/_rail.scss +0 -0
  540. /package/{scss → lib/scss}/components/_ratio-box.scss +0 -0
  541. /package/{scss → lib/scss}/components/_rule.scss +0 -0
  542. /package/{scss → lib/scss}/components/_scroll-slider.scss +0 -0
  543. /package/{scss → lib/scss}/components/_skip-link.scss +0 -0
  544. /package/{scss → lib/scss}/components/_slider.scss +0 -0
  545. /package/{scss → lib/scss}/components/_spoke-spinner.scss +0 -0
  546. /package/{scss → lib/scss}/components/_sticky-list.scss +0 -0
  547. /package/{scss → lib/scss}/components/_tabs.scss +0 -0
  548. /package/{scss → lib/scss}/components/_tile-button.scss +0 -0
  549. /package/{scss → lib/scss}/components/_tile-grid-overlay.scss +0 -0
  550. /package/{scss → lib/scss}/components/_tile-grid.scss +0 -0
  551. /package/{scss → lib/scss}/components/_vignette.scss +0 -0
  552. /package/{scss → lib/scss}/components/_wysiwyg.scss +0 -0
  553. /package/{scss → lib/scss}/helpers/_color.scss +0 -0
  554. /package/{scss → lib/scss}/helpers/_display.scss +0 -0
  555. /package/{scss → lib/scss}/helpers/_index.scss +0 -0
  556. /package/{scss → lib/scss}/helpers/_print.scss +0 -0
  557. /package/{scss → lib/scss}/helpers/_typography.scss +0 -0
  558. /package/{scss → lib/scss}/helpers/_units.scss +0 -0
  559. /package/{scss → lib/scss}/stylesheets/README.md +0 -0
  560. /package/{scss → lib/scss}/stylesheets/base-styles.scss +0 -0
  561. /package/{scss → lib/scss}/stylesheets/component-styles.scss +0 -0
  562. /package/{scss → lib/scss}/stylesheets/full.scss +0 -0
  563. /package/{scss → lib/scss}/stylesheets/helper-styles.scss +0 -0
@@ -1,607 +0,0 @@
1
- // =============================================================================
2
- // Collapsibles Mini
3
- // =============================================================================
4
-
5
- // Version: 1.0.9
6
- //
7
- // Requires: Ally.js v1.4.1
8
-
9
- // Changes: 1.0.2 | Added clickWithinCloses
10
- // 1.0.3 | Tested In NVDA on Firefox Windows (everything works for basic and accordion)
11
- // 1.0.4 | Fixed duplicate ID, remove incorrect aria-selected attr
12
- // 1.0.5 | Converted to ES module
13
- // 1.0.6 | Added the ability to change the toggle text with [data-cc-state-text]
14
- // 1.0.7 | Added ability to fade instead of just slide
15
- // 1.0.8 | Added dependency ally.js for focus trapping, and added
16
- // option for closeOnEscape.
17
- // 1.0.9 | Added event object from click/keyboard that caused change
18
-
19
- // Description: Mini collapsible module that supports basic show and hide
20
- // and accordions. This is not maintained with the Informatics
21
- // core module Collapsibles but works similarly, based on
22
- // version 4.0.7.
23
- // - Handlers are attached to the document for convenience.
24
- // - Self managed option exists for those that want to manage the click handlers.
25
- // - Callbacks for change in state (before and after)
26
- // - Type support:
27
- // - hide/show
28
- // - accordion
29
- // - tabs (with keyboard controls) @coming-soon
30
-
31
- // Support: - Built to work in legacy jQuery 1.12 (may not work in newer versions)
32
- // - Uses ES5 include polyfill for:
33
- // - Array.every(), Array.forEach()
34
- // - Object.assign
35
- // - Function.bind()
36
-
37
- // Options: See the "defaults" object below for options and descriptions. All default
38
- // properties can be modified and viewed at MiniCollapsibles.defaults [object]
39
-
40
-
41
- // Setup: 1. Create the correct markup (see below)
42
- // - This plugin will set the aria attributes for you with one exception
43
- // if an element is added to the page after calling the constructor
44
- // you will need to run instance.init(); to do the same for new elements.
45
- // For convenience the module provides a method to update all instances with:
46
- //
47
- // MiniCollapsibles.parse()
48
- //
49
- // - This can be avoided by including the aria attributes in the HTML
50
- // use the ariaStates object below for reference on what attributes
51
- // should be set initially (based on if you want it open or closed)
52
- // 2. Setup an instance by calling the constructor:
53
- //
54
- // var dropdown = new MiniCollapsible({
55
- // container: '.collapsible',
56
- // toggle: '.collapsible__toggle',
57
- // content: '.collapsible__content',
58
- // slide: 500
59
- // });
60
- //
61
- // 3. Setup the CSS, the only requirement is adding display none when closed
62
- // on the content container:
63
-
64
- // .collapsible__content {
65
- // display: none;
66
- // }
67
- // .collapsible__content[data-cc-state="open"] {
68
- // display: block;
69
- // }
70
- //
71
- // Markup: See comments below code
72
-
73
-
74
- // Todo: - Tabs type (time permitting)
75
- // - Add arrow key cycler from framework collapsible module
76
-
77
- import maintain from 'ally.js/maintain/_maintain';
78
- import { hasRequiredProps } from "@ulu/utils/object.js";
79
-
80
- const requiredProps = ['selectorContainer', 'selectorToggle', 'selectorContent'];
81
- const hasRequired = hasRequiredProps(requiredProps);
82
- const $ = jQuery;
83
- const $document = $(document);
84
- const merge = Object.assign;
85
- const elementsFocusable = [
86
- 'a[href]',
87
- 'button:not([disabled])',
88
- 'area[href]',
89
- 'input:not([disabled])',
90
- 'select:not([disabled])',
91
- 'textarea:not([disabled])',
92
- 'iframe','object',
93
- 'embed','*[tabindex]',
94
- '*[contenteditable]'
95
- ];
96
- const selectorFocusable = elementsFocusable.join(' ');
97
- const dataKeyParsed = "MiniCollapsibleInit";
98
- const defaults = {
99
- idPrefix: 'mc-id--', // So user can adjust if needed
100
- selectorContainer: null, // (required, string) Selector
101
- selectorToggle: null, // see above
102
- selectorContent: null, // see above
103
- selectorContext: 'body', // (string) Selector for container that holds multiple collapsibles (oneOpenPerContext)
104
- aria: true, // (boolean) Toggle aria attributes for accessibility
105
- selfManaged: false, // (boolean) The module will not handle the clicks (Attach yourself and run methods yourself)
106
- clickOutsideCloses: false, // Will close the collapsible if it's open and the user clicks outside, not available to self managed
107
- clickWithinCloses: false, // Useful for menus
108
- focusoutCloses: false, // Focusing away from the element closes it
109
- closeOnEscape: false, // Add escape key handler when collapsible is open
110
- onChangeBefore: null, // Callback(elements, newState, event) called before open/closed/toggled
111
- onChangeAfter: null, // Callback(elements, newState, event) called after open/closed/toggled
112
- attr: 'data-cc-state', // The attribute to use to indicate the state (for styling), for adding a class use the callbacks
113
- slide: false, // Whether or not to use jQuery slide animation pass value for duration or false, also can use keywords
114
- fade: false, // Whether or not to use jQuery fadeIn/Out animation pass value for duration or false, also can use keywords (Cannot slide and fade)
115
- oneOpenPerContext: false, // If enabled the selector for "context" will be used to close all others before opening a new one
116
- closeBeforeOpen: true, // The closing of other items in the context (may be expanded to other things in future) should be done before opening another
117
- type: 'basic', // The type of collapsible (basic, accordion, tabs[not created yet])
118
- trapFocus: false // Only allow focusing within the open collapsible
119
- };
120
- // Object holds info for plugin internally
121
- const managed = {
122
- all: [],
123
- click: {
124
- // ".container-selector .toggle-selector" : { instance object }
125
- },
126
- clickOutside: {
127
- // ".container-selector .toggle-selector" : { instance object }
128
- },
129
- clickWithin: {
130
- // ".container-selector .toggle-selector" : { instance object }
131
- }
132
- };
133
- let ariaStates = {
134
- basic: {
135
- init: { // Dev note: Use this property to add specific props for this type (non dynamic like aria-role, etc)
136
- toggle: null,
137
- content: null,
138
- container: null,
139
- callback: null // Dev note: Use this for doing custom stuff
140
- },
141
- open: {
142
- toggle: {
143
- 'aria-expanded' : 'true',
144
- },
145
- content: {
146
- 'aria-hidden' : 'false'
147
- }
148
- },
149
- closed: {
150
- toggle: {
151
- 'aria-expanded' : 'false',
152
- },
153
- content: {
154
- 'aria-hidden' : 'true'
155
- }
156
- }
157
- }
158
- };
159
- let instanceCount = 0;
160
-
161
- // Adding other merged Aria States
162
- ariaStates.accordion = merge({}, ariaStates.basic, {
163
- init: {
164
- callback: function(elements) {
165
- if (elements.index === 0) {
166
- elements.context.attr('aria-label', 'Accordion Control Group Buttons');
167
- }
168
- }
169
- }
170
- });
171
-
172
-
173
-
174
- class MiniCollapsible {
175
- constructor(options) {
176
- if (!hasRequired(options)) {
177
- console.warn('MiniCollapsible: Missing required options:', options);
178
- }
179
-
180
- merge(this, defaults, options);
181
- managed.all.push(this); // Register
182
-
183
- // Click handlers
184
- if (!this.selfManaged) {
185
- var clickSelector = this.clickSelector();
186
- managed.click[clickSelector] = this;
187
-
188
- if (this.clickOutsideCloses) {
189
- managed.clickOutside[clickSelector] = this;
190
- }
191
- if (this.clickWithinCloses) {
192
- managed.clickWithin[this.clickSelectorWithin()] = this;
193
- }
194
- }
195
-
196
- this.init();
197
- }
198
- // Plugin Interface to re-parse plugin managed collapsibles
199
- static parse() {
200
- var all = managed.all;
201
- for(var k = 0, l = all.length; k < l; k++) {
202
- all[k].init();
203
- }
204
- }
205
- clickSelector() {
206
- return this.selectorContainer + ' ' + this.selectorToggle;
207
- }
208
- clickSelectorWithin() {
209
- return this.selectorContainer + ' ' + this.selectorContent;
210
- }
211
- openSelector() {
212
- return this.selectorContainer + '[' + this.attr + '="open"]';
213
- }
214
- handleClick(event, $toggle) {
215
- var elements = this.getElements($toggle);
216
- this.toggle(elements, event);
217
- }
218
- getElements($toggle) {
219
-
220
- var $container = $toggle.closest(this.selectorContainer),
221
- $content = $container.find(this.selectorContent).first();
222
- return {
223
- container: $container,
224
- toggle: $toggle,
225
- content: $content,
226
- context: $container.closest(this.selectorContext),
227
- all: $container.add($toggle).add($content)
228
- };
229
- }
230
- getElementsFromContainer($container) {
231
- var $toggle = $container.find(this.selectorToggle).first(),
232
- $content = $container.find(this.selectorContent).first();
233
- return {
234
- container: $container,
235
- toggle: $toggle,
236
- content: $content,
237
- context: $container.closest(this.selectorContext),
238
- all: $container.add($toggle).add($content)
239
- };
240
- }
241
- getElementsFromContent($content) {
242
- var $container = $content.closest(this.selectorContainer),
243
- $toggle = $container.find(this.selectorToggle).first();
244
- return {
245
- container: $container,
246
- toggle: $toggle,
247
- content: $content,
248
- context: $container.closest(this.selectorContext),
249
- all: $container.add($toggle).add($content)
250
- };
251
- }
252
- getElementsArray($container) {
253
- // Expects multiple containers returns arrays of elements objects
254
- var self = this,
255
- elementsArray = [];
256
-
257
- function collect() {
258
- elementsArray.push(self.getElementsFromContainer($(this)));
259
- }
260
-
261
- $container.each(collect);
262
- return elementsArray;
263
- }
264
- getOtherElements({ container, content, toggle }) {
265
-
266
- var $context = container.closest(this.selectorContext),
267
- $container = $context.find(this.selectorContainer).not(container),
268
- $toggle = $context.find(this.selectorToggle).not(toggle),
269
- $content = $context.find(this.selectorContent).not(content);
270
-
271
- return {
272
- container: $container,
273
- toggle: $toggle,
274
- content: $content,
275
- context: $context,
276
- all: $container.add($toggle).add($content)
277
- };
278
- }
279
- // Switched the state
280
- toggle(elements, event) {
281
- const state = this.getState(elements),
282
- isOpening = state === "closed",
283
- changeTo = isOpening ? "open" : "closed",
284
- change = () => this.setState(elements, changeTo, event);
285
- if (isOpening && this.oneOpenPerContext) {
286
- if (this.closeBeforeOpen) {
287
- this.setState(this.getOtherElements(elements), "closed", event, change);
288
- } else {
289
- this.setState(this.getOtherElements(elements), "closed", event);
290
- change();
291
- }
292
- } else {
293
- change();
294
- }
295
- }
296
- setState(elements, state, event, onComplete) {
297
- const handleComplete = () => onComplete && onComplete();
298
- // Don't want to fire callbacks if no changes were made
299
- if (!elements.container.length) return handleComplete();
300
-
301
- // Callback after element is open/closed
302
- const after = () => {
303
- elements.all.attr(this.attr, state);
304
- if (this.onChangeAfter) {
305
- this.onChangeAfter.call(this, elements, state, event);
306
- }
307
- if (this.aria) {
308
- this.setAriaAttr(elements, state);
309
- }
310
- if (this.trapFocus) {
311
- this.setTrapFocus(elements, state);
312
- }
313
- if (this.closeOnEscape) {
314
- this.setEscapeClose(elements, state);
315
- }
316
- if (this.focusoutCloses) {
317
- this.setFocusoutCloses(elements, state);
318
- }
319
-
320
- // Change the toggle text if user passes state text object
321
- const textState = elements.toggle.data('cc-state-text');
322
- if (textState) {
323
- elements.toggle.text(textState[state]);
324
- }
325
- handleComplete();
326
- }
327
- // Change the state and call callback
328
- if (this.onChangeBefore) {
329
- this.onChangeBefore.call(this, elements, state, event);
330
- }
331
- if (this.slide) {
332
- elements.content[state === "open" ? "slideDown" : "slideUp"](this.slide, after);
333
- } else if (this.fade) {
334
- elements.content[state === "open" ? "fadeIn" : "fadeOut"](this.slide, after);
335
- } else {
336
- after();
337
- }
338
- }
339
- getState({ content }) {
340
- return content.attr(this.attr) || "closed";
341
- }
342
- setAriaAttr(elements, state, setImmutable) {
343
-
344
- var ariaAttrs = ariaStates[this.type],
345
- ariaInit = ariaAttrs.init,
346
- ariaState = ariaAttrs[state],
347
- toggleAttrs = ariaState.toggle,
348
- contentAttrs = ariaState.content;
349
-
350
- if (setImmutable) {
351
-
352
- var tid = this.uniqueId(),
353
- cid = this.uniqueId();
354
-
355
- toggleAttrs = merge(toggleAttrs, ariaInit.toggle, {
356
- "id": tid,
357
- "aria-controls" : cid,
358
- });
359
-
360
- contentAttrs = merge(contentAttrs, ariaInit.content, {
361
- "id": cid,
362
- "aria-labelledby" : tid
363
- });
364
-
365
- if (ariaInit.container) {
366
- elements.container.attr(ariaInit.container);
367
- }
368
- if (ariaInit.context) {
369
- elements.context.attr(ariaInit.context);
370
- }
371
- // Do custom stuff
372
- if (ariaInit.callback) {
373
- ariaInit.callback.call(this, elements);
374
- }
375
- }
376
-
377
- elements.toggle.attr(toggleAttrs);
378
- elements.content.attr(contentAttrs);
379
- }
380
- /**
381
- * Attaches temporary ally handler for disabling
382
- * focus outside of the collapsible instance
383
- * @param {Object} elements
384
- * @param {String} state
385
- */
386
- setTrapFocus(elements, state) {
387
- const filter = elements.container.get(0);
388
- if (state === "open") {
389
- this._focusTrapHandler = maintain.disabled({ filter });
390
- } else if (this.focusTrapHandler) {
391
- this._focusTrapHandler.disengage();
392
- delete this._focusTrapHandler;
393
- }
394
- }
395
- /**
396
- * Attaches temporary handler for the escape key
397
- * while the collapsible is open. Removing it when
398
- * it closes.
399
- * @param {Object} elements
400
- * @param {String} state
401
- */
402
- setEscapeClose(elements, state) {
403
- const { container } = elements;
404
- if (state === "open") {
405
- this._escapeCloseHandler = e => {
406
- if (e.keyCode === 27) {
407
- this.setState(elements, "closed", e);
408
- container.off('keyup', handler);
409
- delete this._escapeCloseHandler;
410
- }
411
- };
412
- container.on('keyup', this._escapeCloseHandler);
413
- } else if (this._escapeCloseHandler) {
414
- container.off('keyup', this._escapeCloseHandler);
415
- delete this._escapeCloseHandler;
416
- }
417
- }
418
- setFocusoutCloses(elements, state) {
419
- const { container } = elements;
420
- if (state === "open") {
421
- this._focusoutClosesHandler = e => {
422
- if (!container.get(0).contains(e.relatedTarget)) {
423
- console.log('Closed due to focu out');
424
- this.setState(elements, "closed", e);
425
- delete this._focusoutClosesHandler;
426
- }
427
- };
428
- container.on('focusout', this._focusoutClosesHandler);
429
- } else if (this._focusoutClosesHandler) {
430
- container.off('focusout', this._focusoutClosesHandler);
431
- delete this._focusoutClosesHandler;
432
- }
433
- }
434
- init() {
435
- this.each(this.initElementSet);
436
- }
437
- initElementSet(elements) {
438
- // Check if they are already setting attributes if not set them
439
- if (elements.container.data(dataKeyParsed)) {
440
- return;
441
- }
442
- var state = this.getState(elements);
443
- this.setAriaAttr(elements, state, true);
444
- elements.container.data(dataKeyParsed, true);
445
- }
446
- each(callback) {
447
-
448
- $(this.selectorContainer).each(eachContainer.bind(this));
449
-
450
- function eachContainer(index, container) {
451
- var $container = $(container),
452
- $toggle = $container.find(this.selectorToggle).first(),
453
- $content = $container.find(this.selectorContent).first();
454
-
455
- var elements = {
456
- container: $container,
457
- toggle: $toggle,
458
- content: $content,
459
- index: index,
460
- context: $container.closest(this.selectorContext),
461
- all: $container.add($toggle).add($content)
462
- };
463
-
464
- callback.call(this, elements);
465
- }
466
- }
467
- // Function should test DOM for an ID and return one that doesn't exist.
468
- // - User can override this function if needed
469
- uniqueId(attempt) {
470
-
471
- attempt = attempt === undefined ? 1 : ++attempt;
472
-
473
- var id = this.idPrefix + (++instanceCount),
474
- el = $('#' + id);
475
-
476
- // Check to make sure this ID isn't in the DOM (try again)
477
- // The attempt limit is so this doesn't go into infinite loop for some
478
- // reason (very unlikely but it didn't feel right leaving the
479
- // opportunity to loop forever)
480
- if (el.length && attempt < 50) {
481
- return this.uniqueId(attempt);
482
- } else {
483
- return id;
484
- }
485
- }
486
- }
487
-
488
- // Attaching properties to class so user can modify globally
489
- MiniCollapsible.defaults = defaults;
490
- MiniCollapsible.ariaStates = ariaStates;
491
- MiniCollapsible.managed = managed;
492
-
493
- $document.on('click', onClick); // Module click handler
494
-
495
- // Internal Functions
496
- // =============================================================================
497
-
498
- function onClick(event) {
499
- var $target = $(event.target),
500
- selector,
501
- $toggle,
502
- $content,
503
- instance,
504
- elements;
505
-
506
-
507
- // Check for open instances before changing new ones
508
- for (selector in managed.clickOutside) {
509
- // Need to select all open
510
- instance = managed.clickOutside[selector];
511
- ifOutsideClose(instance, $target, event);
512
- }
513
- // Check all instances
514
- for (selector in managed.click) {
515
- $toggle = $target.closest(selector);
516
- if ($toggle.length) {
517
- instance = managed.click[selector];
518
- instance.handleClick(event, $toggle);
519
- }
520
- }
521
- // check Click within and close
522
- for (selector in managed.clickWithin) {
523
- $content = $target.closest(selector);
524
- if ($content.length) {
525
- instance = managed.clickWithin[selector];
526
- elements = instance.getElementsFromContent($content);
527
- instance.setState(elements, 'closed', event);
528
- }
529
- }
530
- }
531
- function ifOutsideClose(self, $target, event) {
532
- // Decide if the current click target is a toggle
533
- var cont = self.selectorContainer,
534
- contOpen = self.openSelector(),
535
- $targetContainer = $target.parents(cont).addBack(cont),
536
- $openContainer = $document.find(contOpen).not($targetContainer);
537
-
538
- // Then close the open containers
539
- if ($openContainer.length) {
540
- var elementsArray = self.getElementsArray($openContainer);
541
- for(var i = 0; i < elementsArray.length; i++){
542
- self.setState(elementsArray[i], "closed", event);
543
- }
544
- }
545
- }
546
-
547
- export default MiniCollapsible;
548
-
549
- /*
550
- Markup Example:
551
-
552
- <!-- Basic Hide and Show -->
553
- <div class="collapsible" data-cc-state="closed">
554
- <button class="collapsible__toggle" type="button" data-cc-state="closed" data-cc-state-text='{ "open" : "Hide Filters", "closed" : "Show Filters" }'>
555
- Open Me
556
- </button>
557
- <div class="collapsible__content" data-cc-state="closed">
558
- <p>
559
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam eu molestie est. Proin ante augue, sollicitudin at diam sed, ullamcorper vehicula libero. Vestibulum hendrerit, arcu eget viverra imperdiet, ipsum nunc consectetur sapien, eu tincidunt velit leo vel neque. Quisque sit amet venenatis turpis. Donec ac faucibus nisi. Aliquam nec rhoncus
560
- </p>
561
- </div>
562
- </div>
563
-
564
- <!-- Example accordion -->
565
- <ul class="accordion">
566
- <li class="accordion__item" data-cc-state="open">
567
- <button class="accordion__toggle" data-cc-state="open" type="button">
568
- <strong>Toggle the accordion</strong>
569
- </button>
570
- <div class="accordion__content" data-cc-state="open">
571
- <p>
572
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam eu molestie est. Proin ante augue, sollicitudin at diam sed, ullamcorper vehicula libero. Vestibulum hendrerit, arcu eget viverra imperdiet, ipsum nunc consectetur sapien, eu tincidunt velit leo vel neque. Quisque sit amet venenatis turpis. Donec ac faucibus nisi. Aliquam nec rhoncus turpis, sit amet euismod sem. Morbi facilisis, ipsum eget fermentum interdum, ligula diam tincidunt nisi, eu auctor lacus sem maximus erat. Sed at metus ex. Nam vestibulum convallis magna, et ultricies eros suscipit non. Quisque ornare semper ipsum vitae tempor. Aliquam semper ante leo, eget pretium nisi fringilla quis.
573
- </p>
574
- </div>
575
- </li>
576
- <li class="accordion__item" data-cc-state="closed">
577
- <button class="accordion__toggle" data-cc-state="closed">
578
- <strong>Toggle the accordion</strong>
579
- </button>
580
- <div class="accordion__content" data-cc-state="closed">
581
- <p>
582
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam eu molestie est. Proin ante augue, sollicitudin at diam sed, ullamcorper vehicula libero. Vestibulum hendrerit, arcu eget viverra imperdiet, ipsum nunc consectetur sapien, eu tincidunt velit leo vel neque. Quisque sit amet venenatis turpis. Donec ac faucibus nisi. Aliquam nec rhoncus turpis, sit amet euismod sem. Morbi facilisis, ipsum eget fermentum interdum, ligula diam tincidunt nisi, eu auctor lacus sem maximus erat. Sed at metus ex. Nam vestibulum convallis magna, et ultricies eros suscipit non. Quisque ornare semper ipsum vitae tempor. Aliquam semper ante leo, eget pretium nisi fringilla quis.
583
- </p>
584
- </div>
585
- </li>
586
- <li class="accordion__item" data-cc-state="closed">
587
- <button class="accordion__toggle" data-cc-state="closed">
588
- <strong>Toggle the accordion</strong>
589
- </button>
590
- <div class="accordion__content" data-cc-state="closed">
591
- <p>
592
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam eu molestie est. Proin ante augue, sollicitudin at diam sed, ullamcorper vehicula libero. Vestibulum hendrerit, arcu eget viverra imperdiet, ipsum nunc consectetur sapien, eu tincidunt velit leo vel neque. Quisque sit amet venenatis turpis. Donec ac faucibus nisi. Aliquam nec rhoncus turpis, sit amet euismod sem. Morbi facilisis, ipsum eget fermentum interdum, ligula diam tincidunt nisi, eu auctor lacus sem maximus erat. Sed at metus ex. Nam vestibulum convallis magna, et ultricies eros suscipit non. Quisque ornare semper ipsum vitae tempor. Aliquam semper ante leo, eget pretium nisi fringilla quis.
593
- </p>
594
- </div>
595
- </li>
596
- <li class="accordion__item" data-cc-state="closed">
597
- <button class="accordion__toggle" data-cc-state="closed">
598
- <strong>Toggle the accordion</strong>
599
- </button>
600
- <div class="accordion__content" data-cc-state="closed">
601
- <p>
602
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam eu molestie est. Proin ante augue, sollicitudin at diam sed, ullamcorper vehicula libero. Vestibulum hendrerit, arcu eget viverra imperdiet, ipsum nunc consectetur sapien, eu tincidunt velit leo vel neque. Quisque sit amet venenatis turpis. Donec ac faucibus nisi. Aliquam nec rhoncus turpis, sit amet euismod sem. Morbi facilisis, ipsum eget fermentum interdum, ligula diam tincidunt nisi, eu auctor lacus sem maximus erat. Sed at metus ex. Nam vestibulum convallis magna, et ultricies eros suscipit non. Quisque ornare semper ipsum vitae tempor. Aliquam semper ante leo, eget pretium nisi fringilla quis.
603
- </p>
604
- </div>
605
- </li>
606
- </ul>
607
- */
@@ -1,78 +0,0 @@
1
- /**
2
- * @module helpers/node-data-manager
3
- */
4
-
5
- /**
6
- * Class that provides a method to store data based on node/element
7
- */
8
- export default class NodeDataManager {
9
- constructor() {
10
- this.store = [];
11
- }
12
- /**
13
- * Get data for an element/node
14
- * @param {Node} node Html Node/Element to get data for
15
- * @param {String|Boolean} key If key is passed, return that key's data for the element, if falsey return elements complete dataset
16
- */
17
- get(node, key = false) {
18
- const nodeData = this.find(node);
19
- if (nodeData) {
20
- return nodeData.get(key);
21
- }
22
- }
23
- /**
24
- * Bind data to a specific Node/Element
25
- * @param {Node} node Html Node/Element to get data for
26
- * @param {String} key Key to save the data under
27
- * @param {*} value Value to save
28
- */
29
- set(node, key, value) {
30
- const nodeData = this.find(node);
31
- if (nodeData) {
32
- nodeData.set(key, value);
33
- } else {
34
- this.store.push(new NodeDataStore(node, { [key] : value }));
35
- }
36
- }
37
- /**
38
- * Return an elements store object
39
- */
40
- find(node) {
41
- return this.store.find(nd => nd.isNode(node));
42
- }
43
- /**
44
- * Destroy all references to data and nodes/elements
45
- */
46
- destroy() {
47
- this.store.forEach(nd => nd.destroy());
48
- this.store = [];
49
- }
50
- }
51
- /**
52
- * Child class that provides a store for one specific node/element
53
- */
54
- export class NodeDataStore {
55
- constructor(node, data) {
56
- this.node = node;
57
- this.data = data || {}; // Lookup
58
- }
59
- set(key, value) {
60
- this.data[key] = value;
61
- }
62
- get(key = false) {
63
- return key ? this.data[key] : this.data;
64
- }
65
- remove(key) {
66
- delete this.data[key];
67
- }
68
- isNode(node) {
69
- return this.node.isSameNode(node);
70
- }
71
- clearData() {
72
- this.data = {};
73
- }
74
- destroy() {
75
- this.clearData();
76
- this.node = null;
77
- }
78
- }