@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,12 +1,12 @@
1
1
  /**
2
- * @module utils/system
2
+ * @module core/component
3
3
  * @description Core classes and mechanisms that define how UI components are created and managed within the library
4
4
  */
5
5
 
6
6
  import { hasRequiredProps } from "@ulu/utils/object.js";
7
7
  import { getDatasetOptionalJson } from "@ulu/utils/browser/dom.js";
8
- import { dataAttributeToDatasetKey } from "./dom.js";
9
- import { getName } from "../events/index.js";
8
+ import { dataAttributeToDatasetKey } from "../utils/dom.js";
9
+ import { getCoreEventName } from "./events.js";
10
10
 
11
11
  /**
12
12
  * Class serves as a utility for UI modules, handling the selection of elements and the initialization of corresponding component instances, ensuring consistent setup within the module
@@ -45,18 +45,20 @@ export class ComponentInitializer {
45
45
  * @param {Function} config.setup The setup function to call for each element.
46
46
  * @param {String} config.key [null] The optional key to use with attribute selector.
47
47
  * @param {Boolean} config.withData [null] Whether to retrieve element data.
48
- * @param {Array} config.events [null] Ulu events that should call setup when dispatched (ie. pageModified, pageResized)
49
- * @param {Boolean} config.onPageResized [null] Whether to bind event listener for page resize end
48
+ * @param {Array} config.coreEvents [null] An array of core event names (e.g., 'pageModified') that should trigger a re-initialization.
50
49
  * @param {HTMLElement} config.context [document] The context to query within.
51
50
  */
52
51
  init(config) {
53
52
  this.setupElements(config);
54
53
  // Attach Handler to reinitialize if page is updated
55
- // Specifically checking entire document incase element that dispatched
54
+ // Specifically checking entire document in case element that dispatched
56
55
  // event made alterations outside of itself
57
- if (config.events?.length) {
58
- config.events.forEach(name => {
59
- document.addEventListener(getName(name), () => this.setupElements(config));
56
+ if (config.coreEvents?.length) {
57
+ config.coreEvents.forEach(name => {
58
+ const eventName = getCoreEventName(name);
59
+ if (eventName) {
60
+ document.addEventListener(eventName, () => this.setupElements(config));
61
+ }
60
62
  });
61
63
  }
62
64
  }
@@ -66,7 +68,6 @@ export class ComponentInitializer {
66
68
  * @param {function} config.setup The setup function to call for each element.
67
69
  * @param {string} config.key The optional key to use with attribute selector.
68
70
  * @param {boolean} config.withData [false] Whether to retrieve element data.
69
- * @param {boolean} config.onPageModified [true] Whether to bind event listener for page modifications.
70
71
  * @param {HTMLElement} config.context [document] The context to query within.
71
72
  */
72
73
  setupElements(config) {
@@ -150,6 +151,6 @@ export class ComponentInitializer {
150
151
  /**
151
152
  * Class serves as a base for representing individual occurrences of a UI component, providing a consistent structure for each
152
153
  */
153
- export class ComponentInstance {
154
+ // export class ComponentInstance {
154
155
 
155
- }
156
+ // }
@@ -0,0 +1,98 @@
1
+ /**
2
+ * @module core/events
3
+ * @description Internal implementation of global event handling.
4
+ */
5
+
6
+ import { debounce } from "@ulu/utils/performance.js";
7
+ import { isBrowser } from "@ulu/utils/browser/dom.js";
8
+
9
+ // Setup global document events
10
+ if (isBrowser()) {
11
+ initResize();
12
+ initPrint();
13
+ }
14
+
15
+ /**
16
+ * Event object - called on dispatch
17
+ */
18
+ const events = {
19
+ pageModified(context) {
20
+ context.dispatchEvent(createUluEvent("pageModified"));
21
+ },
22
+ pageResized(context) {
23
+ context.dispatchEvent(createUluEvent("pageResized"));
24
+ },
25
+ beforePrint(context) {
26
+ context.dispatchEvent(createUluEvent("beforePrint"));
27
+ },
28
+ afterPrint(context) {
29
+ context.dispatchEvent(createUluEvent("afterPrint"));
30
+ }
31
+ };
32
+
33
+ const eventKeys = Object.keys(events);
34
+
35
+ /**
36
+ * Triggers one of the predefined core lifecycle events.
37
+ * @param {String} type Type of core event to dispatch.
38
+ * @param {Node} context Element to trigger the event from.
39
+ */
40
+ export function dispatchCoreEvent(type, context) {
41
+ if (events[type]) {
42
+ events[type](context);
43
+ } else {
44
+ console.warn(`Unable to dispatch non-core event: ${type}`);
45
+ }
46
+ }
47
+
48
+ /**
49
+ * A general-purpose utility to get a ULU-namespaced event name.
50
+ * @param {String} type The base name for the event.
51
+ * @returns {String} The `ulu:` prefixed event name.
52
+ */
53
+ export function getUluEventName(type) {
54
+ return "ulu:" + type;
55
+ }
56
+
57
+ /**
58
+ * Safely gets the full namespaced name for a predefined core event.
59
+ * @param {String} type The base name of the core event (e.g., 'pageModified').
60
+ * @returns {String|null} The full event name if valid, otherwise null.
61
+ */
62
+ export function getCoreEventName(type) {
63
+ if (eventKeys.includes(type)) {
64
+ return getUluEventName(type);
65
+ }
66
+ console.warn(`'${type}' is not a valid core event type.`);
67
+ return null;
68
+ }
69
+
70
+ /**
71
+ * A general-purpose utility to create a ULU-namespaced CustomEvent.
72
+ * @param {String} type Event base name.
73
+ * @param {any} data Custom data to pass with the event.
74
+ * @param {Object} options CustomEvent options.
75
+ * @returns {CustomEvent}
76
+ */
77
+ export function createUluEvent(type, data = null, options = { bubbles: true }) {
78
+ return new CustomEvent(getUluEventName(type), { detail: data, ...options });
79
+ }
80
+
81
+ /**
82
+ * Setup resize handler/dispatch
83
+ */
84
+ function initResize() {
85
+ window.addEventListener("resize", debounce(() => dispatchCoreEvent("pageResized", document), 250));
86
+ }
87
+
88
+ /**
89
+ * Setup print listeners
90
+ */
91
+ function initPrint() {
92
+ window.addEventListener("beforeprint", () => {
93
+ dispatchCoreEvent("beforePrint", document);
94
+ });
95
+ window.addEventListener("afterprint", () => {
96
+ dispatchCoreEvent("afterPrint", document);
97
+ });
98
+ }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @module core
3
+ * @description
4
+ * Public API for the core modules.
5
+ *
6
+ * This file re-exports the internal implementations from the `core` directory
7
+ * with new names where appropriate, defining the public-facing API for the
8
+ * library bundle.
9
+ *
10
+ * For internal library usage, import directly from the specific file within
11
+ * the `core` directory (e.g., `import { ... } from './settings.js'`).
12
+ */
13
+
14
+ export {
15
+ dispatchCoreEvent,
16
+ getCoreEventName,
17
+ getUluEventName,
18
+ createUluEvent
19
+ } from './events.js';
20
+
21
+ export {
22
+ getDefaultSettings,
23
+ updateSettings,
24
+ getSettings,
25
+ getSetting,
26
+ updateSetting,
27
+ wrapSettingString
28
+ } from './settings.js';
29
+
30
+ export {
31
+ ComponentInitializer
32
+ } from './component.js';
33
+
34
+
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @module settings
3
- * @description Manages shared configuration for the library.
2
+ * @module core/settings
3
+ * @description Internal implementation for managing shared configuration.
4
4
  */
5
5
 
6
6
  /**
@@ -94,4 +94,4 @@ export function wrapSettingString(key, transform) {
94
94
  return transform ? transform(value) : value;
95
95
  }
96
96
  };
97
- }
97
+ }
@@ -0,0 +1,126 @@
1
+ # Exports Map
2
+
3
+ ## Example Import
4
+
5
+ All JavaScript modules are exported from the main `@ulu/frontend` package entry point.
6
+
7
+ **Example Usage:**
8
+ ```javascript
9
+ import { dialogInit, Slider, updateSettings } from '@ulu/frontend';
10
+
11
+ // Update a library setting
12
+ updateSettings({ cssvarPrefix: "my-app" });
13
+
14
+ // Initialize all dialogs
15
+ dialogInit();
16
+
17
+ // Create a new slider
18
+ const slider = new Slider(...);
19
+ ```
20
+
21
+ ## Exports Map
22
+
23
+ ### Core Modules
24
+
25
+ These exports originate from the `lib/js/core/` directory and provide the foundational, cross-cutting logic for the library.
26
+
27
+ - `ComponentInitializer`
28
+ - `createUluEvent`
29
+ - `dispatchCoreEvent`
30
+ - `getCoreEventName`
31
+ - `getDefaultSettings`
32
+ - `getSettings`
33
+ - `getSetting`
34
+ - `getUluEventName`
35
+ - `updateSetting`
36
+ - `updateSettings`
37
+ - `wrapSettingString`
38
+
39
+ ### UI Modules
40
+
41
+ These exports originate from the `lib/js/ui/` directory.
42
+
43
+ - `BreakpointManager`
44
+ - `Collapsible`
45
+ - `detailsGroupInit`
46
+ - `detailsGroupInitializer`
47
+ - `detailsGroupSetupGroup`
48
+ - `dialogBaseAttribute`
49
+ - `dialogCloseAttribute`
50
+ - `dialogDefaults`
51
+ - `dialogGetDialogOptions`
52
+ - `dialogInit`
53
+ - `dialogInitializer`
54
+ - `dialogSetDefaults`
55
+ - `dialogSetupDialog`
56
+ - `dialogSetupTrigger`
57
+ - `Flipcard`
58
+ - `flipcardInit`
59
+ - `flipcardInitializer`
60
+ - `gridInit`
61
+ - `gridInitializer`
62
+ - `modalBuilderBuildModal`
63
+ - `modalBuilderDefaults`
64
+ - `modalBuilderInit`
65
+ - `modalBuilderInitializer`
66
+ - `modalBuilderSetDefaults`
67
+ - `OverflowScroller`
68
+ - `overflowScrollerCreatePager`
69
+ - `pageInit`
70
+ - `Popover`
71
+ - `popoverGetContentByTrigger`
72
+ - `popoverInit`
73
+ - `popoverInitializer`
74
+ - `popoverInstances`
75
+ - `popoverResolve`
76
+ - `printDetailsAttrs`
77
+ - `printDetailsInit`
78
+ - `printInit`
79
+ - `proxyClickAttachHandlers`
80
+ - `proxyClickDefaults`
81
+ - `proxyClickInit`
82
+ - `proxyClickInitializer`
83
+ - `proxyClickSetDefaults`
84
+ - `proxyClickSetupProxy`
85
+ - `Resizer`
86
+ - `scrollSliderInit`
87
+ - `scrollSliderInitializer`
88
+ - `Scrollpoint`
89
+ - `scrollpointInit`
90
+ - `scrollpointInitializer`
91
+ - `Slider`
92
+ - `sliderInit`
93
+ - `sliderInitializer`
94
+ - `sliderSetupSlider`
95
+ - `tabsInit`
96
+ - `tabsInitializer`
97
+ - `tabsInstances`
98
+ - `tabsSetup`
99
+ - `themeToggleDefaults`
100
+ - `themeToggleInit`
101
+ - `themeToggleInitializer`
102
+ - `themeToggleSetDefaults`
103
+ - `themeToggleSetupToggle`
104
+ - `Tooltip`
105
+ - `tooltipInit`
106
+ - `tooltipInitializer`
107
+
108
+ ### Utility Modules
109
+
110
+ These exports originate from the `lib/js/utils/` directory.
111
+
112
+ - `classLoggerLog`
113
+ - `classLoggerLogError`
114
+ - `classLoggerLogWarning`
115
+ - `classLoggerSet`
116
+ - `fontAwesomeConfigureIcons`
117
+ - `createFloatingUi`
118
+ - `dataAttributeToDatasetKey`
119
+ - `ensureId`
120
+ - `FileSave`
121
+ - `floatingUiDefaults`
122
+ - `newId`
123
+ - `resolveClasses`
124
+ - `setPositionClasses`
125
+ - `youtubePauseVideos`
126
+ - `youtubePrepVideos`
@@ -0,0 +1,7 @@
1
+ // Re-export all flattened, prefixed modules from the library.
2
+ // This serves as the main entry point for the tree-shakable ESM bundle.
3
+
4
+ export * from "./core/index.js";
5
+ export * from "./ui/index.js";
6
+ export * from "./utils/index.js";
7
+
@@ -4,18 +4,14 @@
4
4
 
5
5
  // Pass breakpoints from CSS to stylesheet, use this to attach behaviors on breakpoints
6
6
  import { removeArrayElement } from "@ulu/utils/array.js";
7
- import { getName } from "../events/index.js";
8
- import { wrapSettingString } from "../settings.js";
7
+ import { isBrowser } from "@ulu/utils/browser/dom.js";
8
+ import { getCoreEventName } from "../core/events.js";
9
+ import { wrapSettingString } from "../core/settings.js";
9
10
  import { getCustomProperty } from "../utils/css.js";
10
11
  import { log, logError } from "../utils/class-logger.js";
11
12
 
12
13
  const getDefaultCustomProperty = prefix => getCustomProperty(prefix, "breakpoint");
13
14
 
14
- // Resize Handler to update breakpoints for all instances (Called after resize finished)
15
- window.addEventListener(getName("pageResized"), () => {
16
- BreakpointManager.instances.forEach(i => i.update());
17
- });
18
-
19
15
  /**
20
16
  * @class
21
17
  * Class that provides method for retrieving and acting on breakpoints passed
@@ -23,6 +19,17 @@ window.addEventListener(getName("pageResized"), () => {
23
19
  */
24
20
  export class BreakpointManager {
25
21
  static instances = [];
22
+ static globalsInitialized = false;
23
+
24
+ static _initializeGlobals() {
25
+ if (BreakpointManager.globalsInitialized || !isBrowser()) {
26
+ return;
27
+ }
28
+ window.addEventListener(getCoreEventName("pageResized"), () => {
29
+ BreakpointManager.instances.forEach(i => i.update());
30
+ });
31
+ BreakpointManager.globalsInitialized = true;
32
+ }
26
33
  static defaults = {
27
34
  element: document?.documentElement,
28
35
  valueFromPseudo: false,
@@ -41,6 +48,7 @@ export class BreakpointManager {
41
48
  * @param {String} config.pseudoSelector Change pseudo selector used to get the breakpoint from the pseudo's content property
42
49
  */
43
50
  constructor(config) {
51
+ BreakpointManager._initializeGlobals();
44
52
  Object.assign(this, BreakpointManager.defaults, config);
45
53
  this.active = null;
46
54
  this.previous = null;
@@ -110,28 +118,23 @@ export class BreakpointManager {
110
118
  const index = this.order.indexOf(name);
111
119
  this.active = name;
112
120
  this.activeIndex = index;
113
- const activeBreakpoint = this.at(this.active);
114
- // Get arrays of breakpoints based on the order array
115
- const mapBreakpoints = n => this.at(n);
116
- // From breakpoint to end (highest)
117
- const max = this.order.slice(index).map(mapBreakpoints);
118
- const notMax = this.order.slice(0, index).map(mapBreakpoints);
119
- // From start up to this breakpoint
120
- const min = this.order.slice(0, index + 1).map(mapBreakpoints);
121
- const notMin = this.order.slice(index + 1).map(mapBreakpoints);
122
- const notOnly = this.order.slice().map(mapBreakpoints);
123
- notOnly.splice(index, 1);
124
-
125
- log(this, 'max:', max.map(b => b.name).join());
126
- log(this, 'min:', min.map(b => b.name).join());
127
-
128
- max.forEach(b => b._setDirection('max', true));
129
- min.forEach(b => b._setDirection('min', true));
130
- activeBreakpoint._setDirection('only', true);
121
+ // const activeBreakpoint = this.at(this.active);
122
+
123
+ // For each breakpoint, set its directional status based on the active index.
124
+ // This ensures the JS methods match the SCSS mixin behavior.
125
+ this.order.forEach((bpName, bpIndex) => {
126
+ const bp = this.breakpoints[bpName];
127
+ const activeIndex = this.activeIndex;
128
+
129
+ // at(NAME).min() is active if active breakpoint is >= NAME.
130
+ bp._setDirection('min', bpIndex <= activeIndex);
131
+
132
+ // at(NAME).max() is active if active breakpoint is < NAME.
133
+ bp._setDirection('max', bpIndex > activeIndex);
131
134
 
132
- notMax.forEach(b => b._setDirection('max', false));
133
- notMin.forEach(b => b._setDirection('min', false));
134
- notOnly.forEach(b => b._setDirection('only', false));
135
+ // at(NAME).only() is active if active breakpoint is == NAME.
136
+ bp._setDirection('only', bpIndex === activeIndex);
137
+ });
135
138
 
136
139
  // Set direction (extra info if needed)
137
140
  if (this.previousIndex !== null) {
@@ -246,18 +249,16 @@ class Breakpoint {
246
249
  this.directions[direction].change(active);
247
250
  }
248
251
  /**
249
- * Attach handler to be executed from the breakpoint and to all breakpoints below.
250
- * - If the browser resizes from a breakpoint below this breakpoint,
251
- * and above the breakpoint name specified, this handler will fire
252
+ * Attach handler to be executed from the breakpoint and to all breakpoints below (inclusive).
253
+ * This corresponds to a `max-width` media query in SCSS.
252
254
  * @param {Function} handler Handler to be executed
253
255
  */
254
256
  max(handler) {
255
257
  this.directions.max.add(handler);
256
258
  }
257
259
  /**
258
- * Attach handler to be executed from the breakpoint and to all breakpoints below.
259
- * - If the browser resizes from a breakpoint above this breakpoint,
260
- * and below the breakpoint name specified, this handler will fire
260
+ * Attach handler to be executed from the breakpoint and to all breakpoints above (inclusive).
261
+ * This corresponds to a `min-width` media query in SCSS.
261
262
  * @param {Function} handler Handler to be executed
262
263
  */
263
264
  min(handler) {
@@ -277,7 +278,11 @@ class Breakpoint {
277
278
  */
278
279
  remove(handler, direction) {
279
280
  const directions = direction ? [ direction ] : ['max', 'min', 'only'];
280
- directions.forEach(d => d.remove(handler));
281
+ directions.forEach(d => {
282
+ if (this.directions[d]) {
283
+ this.directions[d].remove(handler);
284
+ }
285
+ });
281
286
  }
282
287
 
283
288
  log(...msg) {
@@ -2,7 +2,7 @@
2
2
  * @module ui/collapsible
3
3
  */
4
4
 
5
- import { getName as getEventName } from "../events/index.js";
5
+ import { getUluEventName } from "../core/events.js";
6
6
  import { log, logError } from "../utils/class-logger.js";
7
7
  import { ensureId } from "../utils/id.js";
8
8
 
@@ -110,7 +110,7 @@ export class Collapsible {
110
110
  this.setState(startOpen);
111
111
  }
112
112
  createEvent(name, detail) {
113
- return new CustomEvent(getEventName("collapsible:" + name), { detail });
113
+ return new CustomEvent(getUluEventName("collapsible:" + name), { detail });
114
114
  }
115
115
  setState(isOpen, event) {
116
116
  const ctx = {
@@ -3,7 +3,7 @@
3
3
  * @description Manages groups of details (ie. onlyOneOpen at a time)
4
4
  */
5
5
 
6
- import { ComponentInitializer } from "../utils/system.js";
6
+ import { ComponentInitializer } from "../core/component.js";
7
7
 
8
8
  /**
9
9
  * Dialog Component Initializer
@@ -26,7 +26,7 @@ const defaults = {
26
26
  export function init() {
27
27
  initializer.init({
28
28
  withData: true,
29
- events: ["pageModified"],
29
+ coreEvents: ["pageModified"],
30
30
  setup({ element, data, initialize }) {
31
31
  setupGroup(element, data);
32
32
  initialize();
@@ -2,8 +2,8 @@
2
2
  * @module ui/dialog
3
3
  */
4
4
 
5
- import { getName } from "../events/index.js";
6
- import { ComponentInitializer } from "../utils/system.js";
5
+ import { getUluEventName } from "../core/events.js";
6
+ import { ComponentInitializer } from "../core/component.js";
7
7
  import { wasClickOutside, preventScroll as setupPreventScroll } from "@ulu/utils/browser/dom.js";
8
8
  import { pauseVideos as pauseYoutubeVideos, prepVideos as prepYoutubeVideos } from "../utils/pause-youtube-video.js";
9
9
 
@@ -73,7 +73,7 @@ export function setDefaults(options) {
73
73
  export function init() {
74
74
  // Initialize all the dialogs
75
75
  initializer.init({
76
- events: ["pageModified"],
76
+ coreEvents: ["pageModified"],
77
77
  withData: true,
78
78
  setup({ element, initialize, data }) {
79
79
  setupDialog(element, data);
@@ -84,7 +84,7 @@ export function init() {
84
84
  // Initialize all triggers (things that trigger opening a dialog)
85
85
  initializer.init({
86
86
  key: "trigger",
87
- events: ["pageModified"],
87
+ coreEvents: ["pageModified"],
88
88
  withData: true,
89
89
  setup({ element, initialize, data: dialogId }) {
90
90
  setupTrigger(element, dialogId);
@@ -137,8 +137,8 @@ export function setupDialog(dialog, userOptions) {
137
137
  // is finished which is after the click is complete
138
138
  let activeResizePointer;
139
139
 
140
- dialog.addEventListener(getName("resizer:start"), handleResizeStart);
141
- dialog.addEventListener(getName("resizer:end"), handleResizeEnd);
140
+ dialog.addEventListener(getUluEventName("resizer:start"), handleResizeStart);
141
+ dialog.addEventListener(getUluEventName("resizer:end"), handleResizeEnd);
142
142
  dialog.addEventListener("click", handleClicks);
143
143
 
144
144
  if (options.documentEnd) {
@@ -2,7 +2,7 @@
2
2
  * @module ui/flipcard
3
3
  */
4
4
 
5
- import { ComponentInitializer } from "../utils/system.js";
5
+ import { ComponentInitializer } from "../core/component.js";
6
6
  import { trimWhitespace } from "@ulu/utils/string.js";
7
7
  import { log, logError } from "../utils/class-logger.js";
8
8
 
@@ -20,7 +20,7 @@ export const initializer = new ComponentInitializer({
20
20
  export function init() {
21
21
  initializer.init({
22
22
  withData: true,
23
- events: ["pageModified"],
23
+ coreEvents: ["pageModified"],
24
24
  setup({ element, data, initialize }) {
25
25
  const options = Object.assign({}, data);
26
26
  const front = element.querySelector(initializer.attributeSelector("front"));
@@ -2,7 +2,7 @@
2
2
  * @module ui/grid
3
3
  */
4
4
 
5
- import { ComponentInitializer } from "../utils/system.js";
5
+ import { ComponentInitializer } from "../core/component.js";
6
6
  import { setPositionClasses } from "../utils/dom.js";
7
7
 
8
8
  /**
@@ -19,7 +19,7 @@ export const initializer = new ComponentInitializer({
19
19
  */
20
20
  export function init(classes) {
21
21
  initializer.init({
22
- events: ["pageModified", "pageResized"],
22
+ coreEvents: ["pageModified", "pageResized"],
23
23
  setup({ element, initialize }) {
24
24
  setPositionClasses(element, classes);
25
25
  initialize();