@ulu/frontend 0.1.0-beta.5 → 0.1.0-beta.50

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 (296) hide show
  1. package/CHANGELOG.md +382 -0
  2. package/dist/ulu-frontend.min.css +1 -1
  3. package/dist/ulu-frontend.min.js +28 -27
  4. package/docs-dev/assets/main.js +832 -421
  5. package/docs-dev/assets/placeholder/icon-calendar.svg +1 -0
  6. package/docs-dev/assets/placeholder/icon-check.svg +1 -0
  7. package/docs-dev/assets/style.css +629 -233
  8. package/docs-dev/changelog/index.html +0 -0
  9. package/docs-dev/changelog/updates-and-changes/index.html +5109 -0
  10. package/docs-dev/demos/accordion/index.html +0 -4809
  11. package/docs-dev/demos/basic-hero/index.html +0 -0
  12. package/docs-dev/demos/breakpoints-manager/index.html +0 -0
  13. package/docs-dev/demos/button/index.html +0 -4621
  14. package/docs-dev/demos/button-verbose/index.html +0 -0
  15. package/docs-dev/demos/callout/index.html +0 -4661
  16. package/docs-dev/demos/captioned-figure/index.html +0 -4683
  17. package/docs-dev/demos/card/index.html +0 -5040
  18. package/docs-dev/demos/card-grid/index.html +0 -0
  19. package/docs-dev/demos/card-new/index.html +5088 -0
  20. package/docs-dev/demos/card-old/index.html +5223 -0
  21. package/docs-dev/demos/card.1/index.html +5223 -0
  22. package/docs-dev/demos/card.TRASH/index.html +5541 -0
  23. package/docs-dev/demos/counter-list/index.html +0 -0
  24. package/docs-dev/demos/css-icons/index.html +0 -5272
  25. package/docs-dev/demos/data-grid/index.html +0 -5606
  26. package/docs-dev/demos/data-table/index.html +0 -4697
  27. package/docs-dev/demos/details-group/index.html +0 -0
  28. package/docs-dev/demos/file-save/index.html +0 -4672
  29. package/docs-dev/demos/flipcard/index.html +0 -5221
  30. package/docs-dev/demos/form-theme/index.html +0 -4852
  31. package/docs-dev/demos/hero/index.html +0 -301
  32. package/docs-dev/demos/image-grid/index.html +0 -157
  33. package/docs-dev/demos/index.html +0 -4610
  34. package/docs-dev/demos/list-inline/index.html +0 -0
  35. package/docs-dev/demos/list-inline.1/index.html +4727 -0
  36. package/docs-dev/demos/list-lines/index.html +0 -0
  37. package/docs-dev/demos/menu-stack/index.html +0 -4751
  38. package/docs-dev/demos/modals/index.html +0 -4718
  39. package/docs-dev/demos/nav-strip/index.html +0 -4722
  40. package/docs-dev/demos/overlay-section/index.html +0 -4628
  41. package/docs-dev/demos/popovers/index.html +0 -4628
  42. package/docs-dev/demos/print/index.html +0 -4630
  43. package/docs-dev/demos/pull-quote/index.html +0 -4629
  44. package/docs-dev/demos/rule/index.html +0 -4679
  45. package/docs-dev/demos/scroll-slider/index.html +0 -204
  46. package/docs-dev/demos/scrollpoints/index.html +0 -4648
  47. package/docs-dev/demos/slider/index.html +0 -164
  48. package/docs-dev/demos/spoke-spinner/index.html +0 -4625
  49. package/docs-dev/demos/sticky-list/index.html +0 -0
  50. package/docs-dev/demos/tabs/index.html +0 -4714
  51. package/docs-dev/demos/tag/index.html +0 -4630
  52. package/docs-dev/demos/theme-toggle/index.html +0 -0
  53. package/docs-dev/demos/tile-grid-overlay/index.html +0 -382
  54. package/docs-dev/demos/tiles/index.html +0 -4879
  55. package/docs-dev/demos/tooltip/index.html +0 -4658
  56. package/docs-dev/guide/building-stylesheet/index.html +0 -4679
  57. package/docs-dev/guide/developing-ulu-scss-module/index.html +0 -4731
  58. package/docs-dev/guide/index.html +0 -4612
  59. package/docs-dev/guide/updates-and-changes/index.html +5033 -0
  60. package/docs-dev/index.html +0 -4659
  61. package/docs-dev/javascript/events/index.html +0 -4770
  62. package/docs-dev/javascript/index.html +0 -4625
  63. package/docs-dev/javascript/settings/index.html +0 -0
  64. package/docs-dev/javascript/ui-breakpoints/index.html +0 -5070
  65. package/docs-dev/javascript/ui-collapsible/index.html +0 -4737
  66. package/docs-dev/javascript/ui-details-group/index.html +0 -0
  67. package/docs-dev/javascript/ui-dialog/index.html +0 -4771
  68. package/docs-dev/javascript/ui-flipcard/index.html +0 -4621
  69. package/docs-dev/javascript/ui-grid/index.html +0 -4678
  70. package/docs-dev/javascript/ui-modal-builder/index.html +0 -4760
  71. package/docs-dev/javascript/ui-overflow-scroller/index.html +0 -4610
  72. package/docs-dev/javascript/ui-overflow-scroller-pager/index.html +0 -4628
  73. package/docs-dev/javascript/ui-page/index.html +0 -4625
  74. package/docs-dev/javascript/ui-popover/index.html +0 -4664
  75. package/docs-dev/javascript/ui-print/index.html +0 -4677
  76. package/docs-dev/javascript/ui-print-details/index.html +0 -4640
  77. package/docs-dev/javascript/ui-programmatic-modal/index.html +0 -4610
  78. package/docs-dev/javascript/ui-proxy-click/index.html +990 -324
  79. package/docs-dev/javascript/ui-resizer/index.html +901 -320
  80. package/docs-dev/javascript/ui-scroll-slider/index.html +0 -4639
  81. package/docs-dev/javascript/ui-scrollpoint/index.html +0 -4857
  82. package/docs-dev/javascript/ui-slider/index.html +1099 -327
  83. package/docs-dev/javascript/ui-tabs/index.html +914 -370
  84. package/docs-dev/javascript/ui-theme-toggle/index.html +5410 -0
  85. package/docs-dev/javascript/ui-tooltip/index.html +940 -363
  86. package/docs-dev/javascript/utils-class-logger/index.html +901 -320
  87. package/docs-dev/javascript/utils-css/index.html +5224 -0
  88. package/docs-dev/javascript/utils-dom/index.html +1054 -339
  89. package/docs-dev/javascript/utils-file-save/index.html +901 -320
  90. package/docs-dev/javascript/utils-floating-ui/index.html +901 -320
  91. package/docs-dev/javascript/utils-id/index.html +901 -320
  92. package/docs-dev/javascript/utils-pause-youtube-video/index.html +901 -320
  93. package/docs-dev/javascript/utils-system/index.html +5527 -0
  94. package/docs-dev/sass/base/color/index.html +0 -4643
  95. package/docs-dev/sass/base/elements/index.html +0 -4814
  96. package/docs-dev/sass/base/index/index.html +0 -4813
  97. package/docs-dev/sass/base/index.html +0 -4619
  98. package/docs-dev/sass/base/keyframes/index.html +0 -4645
  99. package/docs-dev/sass/base/layout/index.html +0 -4805
  100. package/docs-dev/sass/base/normalize/index.html +0 -4653
  101. package/docs-dev/sass/base/print/index.html +0 -4649
  102. package/docs-dev/sass/base/root/index.html +0 -4669
  103. package/docs-dev/sass/base/typography/index.html +0 -4669
  104. package/docs-dev/sass/components/accordion/index.html +0 -4971
  105. package/docs-dev/sass/components/adaptive-spacing/index.html +0 -4914
  106. package/docs-dev/sass/components/badge/index.html +0 -4862
  107. package/docs-dev/sass/components/basic-hero/index.html +0 -0
  108. package/docs-dev/sass/components/button/index.html +0 -4798
  109. package/docs-dev/sass/components/button-verbose/index.html +0 -4910
  110. package/docs-dev/sass/components/callout/index.html +0 -4937
  111. package/docs-dev/sass/components/captioned-figure/index.html +0 -4788
  112. package/docs-dev/sass/components/card/index.html +0 -5146
  113. package/docs-dev/sass/components/card-grid/index.html +0 -4812
  114. package/docs-dev/sass/components/counter-list/index.html +0 -0
  115. package/docs-dev/sass/components/css-icon/index.html +0 -4909
  116. package/docs-dev/sass/components/data-grid/index.html +0 -5044
  117. package/docs-dev/sass/components/data-table/index.html +0 -4795
  118. package/docs-dev/sass/components/fill-context/index.html +0 -4678
  119. package/docs-dev/sass/components/flipcard/index.html +0 -4948
  120. package/docs-dev/sass/components/flipcard-grid/index.html +0 -4799
  121. package/docs-dev/sass/components/form-theme/index.html +0 -5428
  122. package/docs-dev/sass/components/hero/index.html +0 -4800
  123. package/docs-dev/sass/components/horizontal-rule/index.html +0 -4797
  124. package/docs-dev/sass/components/image-grid/index.html +0 -4804
  125. package/docs-dev/sass/components/index/index.html +0 -4848
  126. package/docs-dev/sass/components/index.html +0 -4619
  127. package/docs-dev/sass/components/links/index.html +0 -4648
  128. package/docs-dev/sass/components/list-inline/index.html +0 -0
  129. package/docs-dev/sass/components/list-lines/index.html +0 -4843
  130. package/docs-dev/sass/components/list-ordered/index.html +0 -4644
  131. package/docs-dev/sass/components/list-unordered/index.html +0 -4648
  132. package/docs-dev/sass/components/menu-stack/index.html +0 -4978
  133. package/docs-dev/sass/components/modal/index.html +0 -5025
  134. package/docs-dev/sass/components/nav-strip/index.html +0 -4898
  135. package/docs-dev/sass/components/overlay-section/index.html +0 -4842
  136. package/docs-dev/sass/components/pager/index.html +0 -4960
  137. package/docs-dev/sass/components/placeholder-block/index.html +0 -4882
  138. package/docs-dev/sass/components/popover/index.html +0 -4957
  139. package/docs-dev/sass/components/pull-quote/index.html +0 -4856
  140. package/docs-dev/sass/components/ratio-box/index.html +0 -4802
  141. package/docs-dev/sass/components/rule/index.html +0 -4804
  142. package/docs-dev/sass/components/scroll-slider/index.html +0 -4915
  143. package/docs-dev/sass/components/skip-link/index.html +0 -4788
  144. package/docs-dev/sass/components/slider/index.html +0 -4924
  145. package/docs-dev/sass/components/spoke-spinner/index.html +0 -4862
  146. package/docs-dev/sass/components/sticky-list/index.html +0 -0
  147. package/docs-dev/sass/components/tabs/index.html +0 -4938
  148. package/docs-dev/sass/components/tag/index.html +0 -4963
  149. package/docs-dev/sass/components/tile-button/index.html +0 -4843
  150. package/docs-dev/sass/components/tile-grid/index.html +0 -4978
  151. package/docs-dev/sass/components/tile-grid-overlay/index.html +0 -4779
  152. package/docs-dev/sass/components/vignette/index.html +0 -4792
  153. package/docs-dev/sass/components/wysiwyg/index.html +0 -4808
  154. package/docs-dev/sass/core/breakpoint/index.html +0 -5401
  155. package/docs-dev/sass/core/button/index.html +0 -5535
  156. package/docs-dev/sass/core/color/index.html +0 -5385
  157. package/docs-dev/sass/core/cssvar/index.html +0 -5410
  158. package/docs-dev/sass/core/element/index.html +0 -5533
  159. package/docs-dev/sass/core/index.html +0 -4608
  160. package/docs-dev/sass/core/layout/index.html +0 -5368
  161. package/docs-dev/sass/core/path/index.html +0 -4777
  162. package/docs-dev/sass/core/selector/index.html +0 -4856
  163. package/docs-dev/sass/core/typography/index.html +0 -5782
  164. package/docs-dev/sass/core/units/index.html +0 -4815
  165. package/docs-dev/sass/core/utils/index.html +0 -6256
  166. package/docs-dev/sass/helpers/color/index.html +0 -4643
  167. package/docs-dev/sass/helpers/display/index.html +0 -4648
  168. package/docs-dev/sass/helpers/index/index.html +0 -4810
  169. package/docs-dev/sass/helpers/index.html +0 -4619
  170. package/docs-dev/sass/helpers/print/index.html +843 -292
  171. package/docs-dev/sass/helpers/typography/index.html +0 -4671
  172. package/docs-dev/sass/helpers/units/index.html +0 -4817
  173. package/docs-dev/sass/helpers/utilities/index.html +0 -4648
  174. package/docs-dev/sass/index.html +0 -4670
  175. package/js/index.js +1 -0
  176. package/js/settings.js +95 -0
  177. package/js/ui/breakpoints.js +19 -16
  178. package/js/ui/collapsible.js +8 -1
  179. package/js/ui/details-group.js +112 -0
  180. package/js/ui/dialog.js +90 -42
  181. package/js/ui/dialog.todo +2 -36
  182. package/js/ui/flipcard.js +37 -57
  183. package/js/ui/grid.js +15 -13
  184. package/js/ui/index.js +1 -0
  185. package/js/ui/modal-builder.js +45 -54
  186. package/js/ui/overflow-scroller.js +6 -4
  187. package/js/ui/popover.js +38 -38
  188. package/js/ui/print.js +16 -25
  189. package/js/ui/programmatic-modal.js +9 -3
  190. package/js/ui/proxy-click.js +50 -36
  191. package/js/ui/scroll-slider.js +24 -30
  192. package/js/ui/scrollpoint.js +28 -64
  193. package/js/ui/slider.js +61 -62
  194. package/js/ui/tabs.js +23 -36
  195. package/js/ui/theme-toggle.js +331 -94
  196. package/js/ui/tooltip.js +27 -32
  197. package/js/utils/css.js +13 -0
  198. package/js/utils/dom.js +85 -8
  199. package/js/utils/font-awesome.js +18 -0
  200. package/js/utils/index.js +2 -1
  201. package/js/utils/system.js +154 -0
  202. package/package.json +14 -8
  203. package/scss/_breakpoint.scss +16 -3
  204. package/scss/_color.scss +37 -5
  205. package/scss/_element.scss +94 -2
  206. package/scss/_layout.scss +7 -8
  207. package/scss/_units.scss +3 -2
  208. package/scss/_utils.scss +248 -13
  209. package/scss/components/README.todos +14 -0
  210. package/scss/components/_accordion.scss +18 -20
  211. package/scss/components/_badge.scss +3 -2
  212. package/scss/components/_basic-hero.scss +112 -0
  213. package/scss/components/_button-verbose.scss +102 -20
  214. package/scss/components/_callout.scss +127 -79
  215. package/scss/components/_captioned-figure.scss +23 -5
  216. package/scss/components/_card-grid.scss +1 -1
  217. package/scss/components/_card.scss +261 -88
  218. package/scss/components/_counter-list.scss +133 -0
  219. package/scss/components/_css-icon.scss +33 -28
  220. package/scss/components/_data-grid.scss +38 -9
  221. package/scss/components/_data-table.scss +44 -4
  222. package/scss/components/_flipcard.scss +21 -15
  223. package/scss/components/_form-theme.scss +146 -135
  224. package/scss/components/_hero.scss +12 -10
  225. package/scss/components/_index.scss +24 -0
  226. package/scss/components/_list-inline.scss +80 -0
  227. package/scss/components/_list-lines.scss +44 -33
  228. package/scss/components/_list-ordered.scss +0 -1
  229. package/scss/components/_menu-stack.scss +42 -26
  230. package/scss/components/_modal.scss +29 -19
  231. package/scss/components/_nav-strip.scss +5 -1
  232. package/scss/components/_overlay-section.scss +4 -6
  233. package/scss/components/_pager.scss +6 -6
  234. package/scss/components/_placeholder-block.scss +4 -4
  235. package/scss/components/_popover.scss +174 -73
  236. package/scss/components/_pull-quote.scss +13 -13
  237. package/scss/components/_ratio-box.scss +2 -5
  238. package/scss/components/_rule.scss +1 -1
  239. package/scss/components/_scroll-slider.scss +2 -6
  240. package/scss/components/_skip-link.scss +2 -1
  241. package/scss/components/_slider.scss +18 -38
  242. package/scss/components/_spoke-spinner.scss +2 -2
  243. package/scss/components/_sticky-list.scss +206 -0
  244. package/scss/components/_tabs.scss +4 -2
  245. package/scss/components/_tag.scss +1 -1
  246. package/scss/components/_vignette.scss +3 -5
  247. package/scss/helpers/_display.scss +15 -18
  248. package/scss/helpers/_print.scss +12 -7
  249. package/scss/helpers/_utilities.scss +42 -32
  250. package/types/index.d.ts +1 -0
  251. package/types/settings.d.ts +66 -0
  252. package/types/settings.d.ts.map +1 -0
  253. package/types/ui/breakpoints.d.ts +14 -14
  254. package/types/ui/breakpoints.d.ts.map +1 -1
  255. package/types/ui/collapsible.d.ts.map +1 -1
  256. package/types/ui/details-group.d.ts +38 -0
  257. package/types/ui/details-group.d.ts.map +1 -0
  258. package/types/ui/dialog.d.ts +20 -14
  259. package/types/ui/dialog.d.ts.map +1 -1
  260. package/types/ui/flipcard.d.ts +16 -10
  261. package/types/ui/flipcard.d.ts.map +1 -1
  262. package/types/ui/grid.d.ts +4 -6
  263. package/types/ui/grid.d.ts.map +1 -1
  264. package/types/ui/index.d.ts +1 -0
  265. package/types/ui/modal-builder.d.ts +8 -11
  266. package/types/ui/modal-builder.d.ts.map +1 -1
  267. package/types/ui/overflow-scroller.d.ts +2 -2
  268. package/types/ui/overflow-scroller.d.ts.map +1 -1
  269. package/types/ui/popover.d.ts +6 -7
  270. package/types/ui/popover.d.ts.map +1 -1
  271. package/types/ui/print.d.ts +0 -4
  272. package/types/ui/print.d.ts.map +1 -1
  273. package/types/ui/programmatic-modal.d.ts.map +1 -1
  274. package/types/ui/proxy-click.d.ts +19 -3
  275. package/types/ui/proxy-click.d.ts.map +1 -1
  276. package/types/ui/scroll-slider.d.ts +5 -7
  277. package/types/ui/scroll-slider.d.ts.map +1 -1
  278. package/types/ui/scrollpoint.d.ts +3 -8
  279. package/types/ui/scrollpoint.d.ts.map +1 -1
  280. package/types/ui/slider.d.ts +24 -14
  281. package/types/ui/slider.d.ts.map +1 -1
  282. package/types/ui/tabs.d.ts +6 -8
  283. package/types/ui/tabs.d.ts.map +1 -1
  284. package/types/ui/theme-toggle.d.ts +51 -7
  285. package/types/ui/theme-toggle.d.ts.map +1 -1
  286. package/types/ui/tooltip.d.ts +3 -5
  287. package/types/ui/tooltip.d.ts.map +1 -1
  288. package/types/utils/css.d.ts +11 -0
  289. package/types/utils/css.d.ts.map +1 -0
  290. package/types/utils/dom.d.ts +45 -6
  291. package/types/utils/dom.d.ts.map +1 -1
  292. package/types/utils/font-awesome.d.ts +5 -0
  293. package/types/utils/font-awesome.d.ts.map +1 -0
  294. package/types/utils/index.d.ts +1 -0
  295. package/types/utils/system.d.ts +113 -0
  296. package/types/utils/system.d.ts.map +1 -0
@@ -0,0 +1,206 @@
1
+
2
+ ////
3
+ /// @group sticky-list
4
+ ////
5
+ /// Sticky first column, sticky elements inside adjacent columns to first. (Sticky list with header)
6
+
7
+ @use "sass:map";
8
+ @use "sass:meta";
9
+ @use "sass:color" as sassColor;
10
+
11
+ @use "../color";
12
+ @use "../element";
13
+ @use "../breakpoint";
14
+ @use "../typography";
15
+ @use "../utils";
16
+ @use "../selector";
17
+
18
+ // Used for function fallback
19
+ $-fallbacks: (
20
+ "margin" : (
21
+ "function" : meta.get-function("get", false, "element"),
22
+ "property" : "margin"
23
+ ),
24
+ );
25
+
26
+ /// Module Settings
27
+ /// @type Map
28
+ /// @prop {Color} background-color [transparent] Background color for the entire slider section.
29
+ /// @prop {Number} margin [true] Margin on ends of component (defaults to element margin)
30
+ /// @prop {Number} mask-offset-bottom [55vh] The offset for the mask (on bottom)
31
+ /// @prop {Number} mask-offset-top [5rem] The offset for the mask (on top)
32
+ /// @prop {Number} sticky-top [45vh] When to stick
33
+ /// @prop {String} breakpoint ["medium"] The upward breakpoint that this is allowed to be sticky
34
+ /// @prop {String} type-size ["medium"] The typography size to use for title
35
+ /// @prop {Number} title-width [40%] The width of the title when this is displayed in columns
36
+ /// @prop {Number} title-min-width [8em] The min width for title when displayed in columns
37
+ /// @prop {CssValue} title-text-align [right] Text alignment for title when displayed in columns
38
+ /// @prop {Number} item-padding-x [0] Optional padding on the left/right for items
39
+ /// @prop {Number} gap [2rem] The gap between title and items when displayed in columns
40
+ /// @prop {Color} background-color [white] The background color used for the mask
41
+ /// @prop {List} background-contexts Adjust the background mask color by contextual selectors. Pass List of Maps with ("selector" [parent/contextual selector], "background-color", "item-padding-x" [optional])
42
+
43
+ $config: (
44
+ "margin" : true,
45
+ "mask-offset-bottom" : 55vh,
46
+ "mask-offset-top" : 5rem,
47
+ "sticky-top" : 45vh,
48
+ "breakpoint" : "medium",
49
+ "type-size" : "large",
50
+ "title-width" : 40%,
51
+ "title-min-width" : 8em,
52
+ "title-text-align" : right,
53
+ "item-padding-x" : 0,
54
+ "gap" : 2rem,
55
+ "background-color" : white,
56
+ "background-contexts" : (
57
+ (
58
+ "selector" : ".background-dark",
59
+ "background-color" : black,
60
+ "item-padding-x" : 1em
61
+ ),
62
+ )
63
+ );
64
+
65
+ /// Change modules $config
66
+ /// @param {Map} $changes Map of changes
67
+ /// @example scss
68
+ /// @include ulu.component-sticky-list-set(( "property" : value ));
69
+
70
+ @mixin set($changes) {
71
+ $config: map.merge($config, $changes) !global;
72
+ }
73
+
74
+ /// Set sizes map
75
+ /// @param {Map} $changes Map of changes
76
+ /// @param {String} $merge-mode Merge mode see utils.map-merge() [null|"deep"|"overwrite"]
77
+
78
+ @mixin set-sizes($changes, $merge-mode: null) {
79
+ $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;
80
+ }
81
+
82
+ /// Get a config option
83
+ /// @param {Map} $name Name of property
84
+ /// @example scss
85
+ /// @include ulu.component-sticky-list-get("property");
86
+
87
+ @function get($name) {
88
+ $value: utils.require-map-get($config, $name, "sticky-list [config]");
89
+ @return utils.function-fallback($name, $value, $-fallbacks);
90
+ }
91
+
92
+ /// Prints component styles
93
+ /// @demo sticky-list
94
+ /// @example scss
95
+ /// @include ulu.component-sticky-list-styles();
96
+ /// @example html {preview}
97
+ /// <div class="sticky-list">
98
+ /// <strong class="sticky-list__title">Example:</strong>
99
+ /// <ul class="sticky-list__list">
100
+ /// <li class="sticky-list__item">
101
+ /// Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras nec nisl magna
102
+ /// </li>
103
+ /// <li class="sticky-list__item">
104
+ /// Aenean sollicitudin mauris lectus, blandit suscipit lectus fringilla sed
105
+ /// </li>
106
+ /// <li class="sticky-list__item">
107
+ /// Suspendisse sollicitudin, justo sed efficitur tempor, risus
108
+ /// </li>
109
+ /// <li class="sticky-list__item">
110
+ /// Suspendisse sollicitudin, justo sed efficitur tempor, risus
111
+ /// </li>
112
+ /// <li class="sticky-list__item">
113
+ /// Suspendisse sollicitudin, justo sed efficitur tempor, risus
114
+ /// </li>
115
+ /// </ul>
116
+ /// </div>
117
+
118
+ @mixin styles {
119
+ $prefix: selector.class("sticky-list");
120
+ $mask-offset-top: get("mask-offset-top");
121
+ $mask-offset-bottom: get("mask-offset-bottom");
122
+ $type-size: get("type-size");
123
+ $sticky-top: get("sticky-top");
124
+
125
+ #{ $prefix } {
126
+ padding: get("margin") 0;
127
+ }
128
+ @include breakpoint.min(get("breakpoint")) {
129
+ #{ $prefix } {
130
+ display: flex;
131
+ align-items: flex-start;
132
+ gap: get("gap");
133
+ position: relative;
134
+ @if ($type-size and typography.has-size($type-size)) {
135
+ @include typography.size($type-size, $only-font-size: true);
136
+ } @else if ($type-size) {
137
+ @warn "Unable to find '#{$type-size}' typography size for title";
138
+ }
139
+ }
140
+ #{ $prefix }__title,
141
+ #{ $prefix } > :not(ul) {
142
+ display: block;
143
+ position: sticky;
144
+ top: $sticky-top;
145
+ flex-basis: get("title-width");
146
+ min-width: get("title-min-width");
147
+ padding-top: $mask-offset-top;
148
+ padding-bottom: $mask-offset-bottom;
149
+ text-align: get("title-text-align");
150
+ }
151
+ #{ $prefix }__list,
152
+ #{ $prefix } > ul {
153
+ list-style: none;
154
+ margin: 0;
155
+ display: flex;
156
+ flex-direction: column;
157
+ justify-content: space-between;
158
+ align-self: stretch;
159
+ }
160
+ #{ $prefix }__item,
161
+ #{ $prefix } > ul > li {
162
+ display: block;
163
+ position: sticky;
164
+ top: $sticky-top;
165
+ margin: 0 !important; // If in editor (to complicated for :not())
166
+ padding: $mask-offset-top get("item-padding-x") $mask-offset-bottom get("item-padding-x");
167
+ @include set-background(get("background-color"));
168
+ }
169
+ #{ $prefix }__item:first-child,
170
+ #{ $prefix } > ul > li:first-child {
171
+ margin-top: 0;
172
+ }
173
+ #{ $prefix }__item:last-child,
174
+ #{ $prefix } > ul > li:last-child {
175
+ margin-bottom: 0;
176
+ }
177
+ }
178
+
179
+ // Print out any contextual background styles
180
+ @each $props in get("background-contexts") {
181
+ $selector: map.get($props, "selector");
182
+ $item-padding-x: map.get($props, "item-padding-x");
183
+ @include breakpoint.min(get("breakpoint")) {
184
+ #{ $selector } {
185
+ #{ $prefix }__item,
186
+ #{ $prefix } > ul > li {
187
+ @if ($item-padding-x) {
188
+ padding-left: $item-padding-x;
189
+ padding-right: $item-padding-x;
190
+ }
191
+ @include set-background(map.get($props, "background-color"));
192
+ }
193
+ }
194
+ }
195
+ }
196
+ }
197
+
198
+ /// Outputs background color mask CSS (gradient from transparent to original color)
199
+ /// @param {Color} $color The color to create the CSS for
200
+
201
+ @mixin set-background($color) {
202
+ $color: color.get($color);
203
+ $color-transparent: sassColor.change($color, $alpha: 0);
204
+ background-color: $color;
205
+ background: linear-gradient(180deg, $color-transparent 0%, $color get("mask-offset-top"));
206
+ }
@@ -9,6 +9,7 @@
9
9
  @use "../color";
10
10
  @use "../selector";
11
11
  @use "../breakpoint";
12
+ @use "../layout";
12
13
  @use "../typography";
13
14
  @use "../element";
14
15
  @use "../utils";
@@ -55,7 +56,7 @@ $-fallbacks: (
55
56
  /// @prop {Boolean} horizontal-tab-wrap [false] Set to true to allow line wrapping when the tabs are in horizontal orientation, vertical is always allowed to wrap
56
57
 
57
58
  $config: (
58
- "margin" : (2rem, 0),
59
+ "margin" : (2rem 0),
59
60
  "print-margin" : 1.5em,
60
61
  "tablist-divider" : true,
61
62
  "tablist-divider-width" : 1px,
@@ -118,6 +119,7 @@ $config: (
118
119
  overflow-x: auto;
119
120
  border-bottom: get("tablist-divider");
120
121
  border-bottom-width: get("tablist-divider-width");
122
+ @include layout.remove-scrollbar();
121
123
  }
122
124
  [role="tab"] {
123
125
  display: block;
@@ -157,7 +159,7 @@ $config: (
157
159
  z-index: 1;
158
160
  padding: get("tabpanel-padding");
159
161
  overflow: hidden;
160
- background-color: get("tabpanel-background-color");
162
+ background-color: color.get(get("tabpanel-background-color"));
161
163
  }
162
164
  }
163
165
  // For images, etc that should fill tabpanel
@@ -144,7 +144,7 @@ $styles: (
144
144
  border: map.get($style, "border");
145
145
  border-radius: map.get($style, "border-radius");
146
146
  border-color: color.get(map.get($style, "border-color"));
147
- border-width: color.get(map.get($style, "border-width"));
147
+ border-width: map.get($style, "border-width");
148
148
  box-shadow: map.get($style, "box-shadow");
149
149
  padding: map.get($style, "padding");
150
150
  @if (typography.has-size($type-size)) {
@@ -8,10 +8,12 @@
8
8
  @use "sass:map";
9
9
  @use "../utils";
10
10
  @use "../selector";
11
+ @use "../layout";
11
12
 
12
13
  /// Module Settings
13
14
  /// @type Map
14
15
  /// @prop {Color} background-color [rgb(0,0,0)] Color used for the fade-in of the vignette. Must be actual color not color module palette name
16
+ /// @prop {CssValue} image-filter [saturate(85%)] Filter value placed over image.
15
17
 
16
18
  $config: (
17
19
  "background-color" : rgb(0,0,0),
@@ -48,11 +50,7 @@ $config: (
48
50
  &::after {
49
51
  content: "";
50
52
  display: block;
51
- position: absolute;
52
- top: 0;
53
- bottom: 0;
54
- left: 0;
55
- right: 0;
53
+ @include layout.absolute-fill();
56
54
  background: linear-gradient(0deg,color.change(get("background-color"), $alpha: 0.8),color.change(get("background-color"), $alpha: 0) 45%);
57
55
  pointer-events: none;
58
56
  }
@@ -20,53 +20,50 @@
20
20
 
21
21
  @include utils.file-header('helpers', 'display');
22
22
 
23
- $hiddenVisuallyPrefix: selector.class("hidden-visually");
23
+ $prefix-hidden-visually: selector.class("hidden-visually");
24
+ $prefix-display: selector.class("display");
25
+ $prefix-hidden: selector.class("hidden");
24
26
 
25
- #{ $hiddenVisuallyPrefix } {
27
+ #{ $prefix-hidden-visually } {
26
28
  @include element.hidden-visually();
27
29
  }
28
- #{ $hiddenVisuallyPrefix }-focusable {
30
+ #{ $prefix-hidden-visually }-focusable {
29
31
  &:not(:active):not(:focus) {
30
32
  @include element.hidden-visually();
31
33
  }
32
34
  }
33
- // Consider removing
34
- .clearfix,
35
- .cf {
36
- @include layout.clearfix();
37
- }
38
- .display-block {
35
+ #{ $prefix-display }-block {
39
36
  display: block;
40
37
  }
41
- .display-flex {
38
+ #{ $prefix-display }-flex {
42
39
  display: flex;
43
40
  }
44
- .display-inline-flex {
41
+ #{ $prefix-display }-inline-flex {
45
42
  display: inline-flex;
46
43
  }
47
- .display-inline {
44
+ #{ $prefix-display }-inline {
48
45
  display: inline;
49
46
  }
50
- .display-inline-all * {
47
+ #{ $prefix-display }-inline-all * {
51
48
  display: inline;
52
49
  }
53
- .display-inline-block {
50
+ #{ $prefix-display }-inline-block {
54
51
  display: inline-block;
55
52
  }
56
- .hidden,
57
- .display-none {
53
+ #{ $prefix-hidden },
54
+ #{ $prefix-display }-none {
58
55
  display: none !important;
59
56
  }
60
57
 
61
58
  // Display none per breakpoint
62
59
  @each $name in map.keys(breakpoint.$sizes) {
63
60
  @include breakpoint.min($name) {
64
- .hidden-min-#{ $name } {
61
+ #{ $prefix-hidden }-min-#{ $name } {
65
62
  display: none !important;
66
63
  }
67
64
  }
68
65
  @include breakpoint.max($name) {
69
- .hidden-max-#{ $name } {
66
+ #{ $prefix-hidden }-max-#{ $name } {
70
67
  display: none !important;
71
68
  }
72
69
  }
@@ -8,18 +8,23 @@
8
8
  /// @example scss
9
9
  /// @include ulu.helper-print-styles();
10
10
 
11
+ @use "../selector";
12
+
11
13
  @mixin styles {
14
+ $prefix-print: selector.class("print");
15
+ $prefix-no-print: selector.class("no-print");
12
16
 
13
- .print-exact {
14
- print-color-adjust: exact;
15
- -webkit-print-color-adjust: exact;
16
- }
17
- .no-print {
17
+ #{ $prefix-no-print } {
18
18
  @media print {
19
19
  display: none !important;
20
20
  }
21
21
  }
22
- .print-only {
22
+
23
+ #{ $prefix-print }-exact {
24
+ print-color-adjust: exact;
25
+ -webkit-print-color-adjust: exact;
26
+ }
27
+ #{ $prefix-print }-only {
23
28
  @media screen {
24
29
  display: none !important;
25
30
  }
@@ -27,7 +32,7 @@
27
32
  // Utility for making dark backgrounds print "ok"
28
33
  // - Grayscale added because colors are flipped
29
34
  // - Rotating colors doesn't really work
30
- .print-invert {
35
+ #{ $prefix-print }-invert {
31
36
  @media print {
32
37
  filter: invert(1) saturate(0);
33
38
  }
@@ -5,6 +5,7 @@
5
5
 
6
6
  @use "../utils";
7
7
  @use "../layout";
8
+ @use "../selector";
8
9
 
9
10
  /// Print utilities helper styles
10
11
  /// - Includes classes like (.crop-margins, .no-scroll-y, .image-full-width, etc)
@@ -13,99 +14,108 @@
13
14
 
14
15
  @mixin styles {
15
16
 
17
+ $prefix-no-scroll: selector.class("no-scroll");
18
+ $prefix-image: selector.class("image");
19
+ $prefix-margin: selector.class("margin");
20
+ $prefix-no-margin: selector.class("no-margin");
21
+ $prefix-crop-margins: selector.class("crop-margins");
22
+ $prefix-no-padding: selector.class("no-padding");
23
+ $prefix-align-self: selector.class("align-self");
24
+
25
+
16
26
  @include utils.file-header('helpers', 'utilities');
17
27
 
18
28
  // Consider removing
19
- .no-scroll-y {
29
+ #{ $prefix-no-scroll }-y {
20
30
  overflow-y: hidden;
21
31
  }
22
- .no-scroll-x {
32
+ #{ $prefix-no-scroll }-x {
23
33
  overflow-x: hidden;
24
34
  }
25
- .full-height {
35
+ #{ selector.class("full-height") } {
26
36
  height: 100%;
27
37
  }
28
- .full-width {
38
+ #{ selector.class("full-width") } {
29
39
  width: 100%;
30
40
  }
31
- .flex-basis-full {
41
+ #{ selector.class("flex-basis-full") } {
32
42
  flex-basis: 100%;
33
43
  }
34
- .full-min-height {
44
+ #{ selector.class("full-min-height") } {
35
45
  min-height: 100%;
36
46
  }
37
- .image-fill {
47
+ #{ $prefix-image }-fill {
38
48
  width: 100%;
39
49
  height: 100%;
40
50
  object-fit: cover;
41
51
  }
42
- .image-full-width img,
43
- .image-full-width {
52
+ #{ $prefix-image }-full-width img,
53
+ #{ $prefix-image }-full-width {
44
54
  width: 100%;
45
55
  height: auto;
46
56
  }
47
- .margin-auto,
48
- .center {
57
+ #{ $prefix-margin }-auto,
58
+ #{ selector.class("center") } {
49
59
  margin-left: auto;
50
60
  margin-right: auto;
51
61
  }
52
- .margin-left-auto {
53
- margin-left: auto;
62
+ #{ $prefix-margin }-left-auto {
63
+ margin-left: auto;
54
64
  }
55
- .margin-right-auto {
65
+ #{ $prefix-margin }-right-auto {
56
66
  margin-right: auto;
57
67
  }
58
- .no-margin {
68
+ #{ $prefix-no-margin } {
59
69
  margin: 0;
60
70
  }
61
- .no-margin-top {
71
+ #{ $prefix-no-margin }-top {
62
72
  margin-top: 0;
63
73
  }
64
- .no-margin-bottom {
74
+ #{ $prefix-no-margin }-bottom {
65
75
  margin-bottom: 0;
66
76
  }
67
- .no-margin-left {
77
+ #{ $prefix-no-margin }-left {
68
78
  margin-left: 0;
69
79
  }
70
- .no-margin-right {
80
+ #{ $prefix-no-margin }-right {
71
81
  margin-right: 0;
72
82
  }
73
- .crop-margins {
74
- &:not(.crop-margins--last) >:first-child {
83
+ #{ $prefix-crop-margins } {
84
+ &:not( #{ $prefix-crop-margins }--last) >:first-child {
75
85
  margin-top: 0;
76
86
  }
77
- &:not(.crop-margins--first) >:last-child {
87
+ &:not( #{ $prefix-crop-margins }--first) >:last-child {
78
88
  margin-bottom: 0;
79
89
  }
80
90
  }
81
- .no-padding {
91
+ #{ $prefix-no-padding } {
82
92
  padding: 0;
83
93
  }
84
- .no-padding-top {
94
+ #{ $prefix-no-padding }-top {
85
95
  padding-top: 0;
86
96
  }
87
- .no-padding-bottom {
97
+ #{ $prefix-no-padding }-bottom {
88
98
  padding-bottom: 0;
89
99
  }
90
- .no-padding-left {
100
+ #{ $prefix-no-padding }-left {
91
101
  padding-left: 0;
92
102
  }
93
- .no-padding-right {
103
+ #{ $prefix-no-padding }-right {
94
104
  padding-right: 0;
95
105
  }
96
- .align-self-start {
106
+ #{ $prefix-align-self }-start {
97
107
  align-self: start;
98
108
  }
99
- .align-self-center {
109
+ #{ $prefix-align-self }-center {
100
110
  align-self: center;
101
111
  }
102
- .align-self-end {
112
+ #{ $prefix-align-self }-end {
103
113
  align-self: end;
104
114
  }
105
- .align-self-baseline {
115
+ #{ $prefix-align-self }-baseline {
106
116
  align-self: baseline;
107
117
  }
108
- .overflow-hidden {
118
+ #{ selector.class("overflow-hidden") } {
109
119
  overflow: hidden;
110
120
  }
111
121
  // .justify-self-center {
package/types/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export * as settings from "./settings.js";
1
2
  export * as events from "./events/index.js";
2
3
  export * as ui from "./ui/index.js";
3
4
  export * as utils from "./utils/index.js";
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Retrieves a copy of the default settings.
3
+ * @returns {object} A copy of the default settings object.
4
+ */
5
+ export function getDefaultSettings(): object;
6
+ /**
7
+ * Updates multiple configuration settings.
8
+ * @param {object} changes An object containing the settings to update.
9
+ */
10
+ export function updateSettings(changes: object): void;
11
+ /**
12
+ * Retrieves a copy of the current configuration settings.
13
+ * @returns {object} A copy of the current settings object.
14
+ */
15
+ export function getSettings(): object;
16
+ /**
17
+ * Retrieves a specific configuration setting by key.
18
+ * @param {string} key The key of the setting to retrieve.
19
+ * @returns {*} The value of the setting, or undefined if not found.
20
+ */
21
+ export function getSetting(key: string): any;
22
+ /**
23
+ * Updates a specific configuration setting.
24
+ * @param {string} key The key of the setting to update.
25
+ * @param {*} value The new value for the setting.
26
+ */
27
+ export function updateSetting(key: string, value: any): void;
28
+ /**
29
+ * Creates a wrapped string representation of a configuration setting.
30
+ * This function returns an object with a `toString()` method that, when called,
31
+ * retrieves the current value of the specified setting. This allows the setting
32
+ * to be used as a string literal, dynamically retrieving its value.
33
+ *
34
+ * @param {String} key The key of the setting to wrap.
35
+ * @param {Function} transform Optional function to transform the setting's
36
+ * value when its string representation is requested.
37
+ * @returns {Object} An object with a `toString()` method that returns the
38
+ * (optionally transformed) setting value as a string.
39
+ */
40
+ export function wrapSettingString(key: string, transform: Function): any;
41
+ /**
42
+ * Default settings
43
+ */
44
+ export type Defaults = {
45
+ /**
46
+ * - The CSS class string for the close icon
47
+ */
48
+ iconClassClose: string;
49
+ /**
50
+ * - The CSS class string for the drag X icon
51
+ */
52
+ iconClassDragX: string;
53
+ /**
54
+ * - The CSS class string for the previous icon
55
+ */
56
+ iconClassPrevious: string;
57
+ /**
58
+ * - The CSS class string for the next icon
59
+ */
60
+ iconClassNext: string;
61
+ /**
62
+ * - The prefix to use for CSS custom properties
63
+ */
64
+ cssvarPrefix: string;
65
+ };
66
+ //# sourceMappingURL=settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../js/settings.js"],"names":[],"mappings":"AA6BA;;;GAGG;AACH,sCAFa,MAAM,CAIlB;AAED;;;GAGG;AACH,wCAFW,MAAM,QAIhB;AAED;;;GAGG;AACH,+BAFa,MAAM,CAIlB;AAED;;;;GAIG;AACH,gCAHW,MAAM,OAShB;AAED;;;;GAIG;AACH,mCAHW,MAAM,oBAKhB;AAED;;;;;;;;;;;GAWG;AACH,yEAOC;;;;;;;;oBAtFa,MAAM;;;;oBACN,MAAM;;;;uBACN,MAAM;;;;mBACN,MAAM;;;;kBACN,MAAM"}
@@ -1,32 +1,32 @@
1
1
  /**
2
2
  * @class
3
3
  * Class that provides method for retrieving and acting on breakpoints passed
4
- * from CSS (using element psuedo content prop)
4
+ * from CSS (using element pseudo content prop)
5
5
  */
6
6
  export class BreakpointManager {
7
7
  static instances: any[];
8
8
  static defaults: {
9
9
  element: HTMLElement;
10
- valueFromPsuedo: boolean;
11
- customProperty: string;
12
- psuedoSelector: string;
10
+ valueFromPseudo: boolean;
11
+ customProperty: any;
12
+ pseudoSelector: string;
13
13
  order: string[];
14
14
  debug: boolean;
15
15
  };
16
16
  /**
17
- * @param {Object} config Configruation object
17
+ * @param {Object} config Configuration object
18
18
  * @param {Array} config.order Array of strings that correspond to the breakpoints setup in the styles, Breakpoints from smallest to largest, defaults to [small, medium, large]
19
19
  * @param {Array} config.customProperty Property to grab breakpoint from (default is --breakpoint)
20
- * @param {Array} config.valueFromPsuedo Use the legacy method of grabbing breakpoint from psuedo element, default uses custom property
21
- * @param {Node} config.element The element to retrieve active breakpoint from stylesheet. (default is html) For using the old psuedo method, adjust this to document.body
22
- * @param {String} config.psuedoSelector Change psuedo selector used to get the breakpoint from the psuedo's content property
20
+ * @param {Array} config.valueFromPseudo Use the legacy method of grabbing breakpoint from pseudo element, default uses custom property
21
+ * @param {Node} config.element The element to retrieve active breakpoint from stylesheet. (default is html) For using the old pseudo method, adjust this to document.body
22
+ * @param {String} config.pseudoSelector Change pseudo selector used to get the breakpoint from the pseudo's content property
23
23
  */
24
24
  constructor(config: {
25
25
  order: any[];
26
26
  customProperty: any[];
27
- valueFromPsuedo: any[];
27
+ valueFromPseudo: any[];
28
28
  element: Node;
29
- psuedoSelector: string;
29
+ pseudoSelector: string;
30
30
  });
31
31
  active: any;
32
32
  previous: any;
@@ -36,9 +36,9 @@ export class BreakpointManager {
36
36
  breakpoints: {};
37
37
  onChangeCallbacks: any[];
38
38
  /**
39
- * Add a callback for everytime a breakpoint changes
39
+ * Add a callback for every time a breakpoint changes
40
40
  * - Not recommended, possibly use to watch for changes, etc
41
- * - For more control use intance.at(name) with breakpoint methods
41
+ * - For more control use instance.at(name) with breakpoint methods
42
42
  * @param {Function} callback Function to call, passed one argument current instance which can be used to get information about breakpoints
43
43
  */
44
44
  onChange(callback: Function): void;
@@ -48,9 +48,9 @@ export class BreakpointManager {
48
48
  */
49
49
  removeOnChange(callback: Function): void;
50
50
  /**
51
- * Get breakpoint from a psuedo element
51
+ * Get breakpoint from a pseudo element
52
52
  */
53
- getBreakpointInPsuedo(): string;
53
+ getBreakpointInPseudo(): string;
54
54
  /**
55
55
  * Get breakpoint from a custom property
56
56
  */