@ulu/frontend 0.1.0-beta.3 → 0.1.0-beta.30

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 (242) hide show
  1. package/CHANGELOG.md +205 -1
  2. package/dist/ulu-frontend.min.css +1 -1
  3. package/dist/ulu-frontend.min.js +19 -18
  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 +5660 -0
  9. package/docs-dev/changelog/updates-and-changes/index.html +5109 -0
  10. package/docs-dev/demos/accordion/index.html +758 -295
  11. package/docs-dev/demos/basic-hero/index.html +111 -0
  12. package/docs-dev/demos/button/index.html +758 -295
  13. package/docs-dev/demos/button-verbose/index.html +5118 -0
  14. package/docs-dev/demos/callout/index.html +783 -307
  15. package/docs-dev/demos/captioned-figure/index.html +758 -295
  16. package/docs-dev/demos/card/index.html +819 -719
  17. package/docs-dev/demos/card-grid/index.html +5241 -0
  18. package/docs-dev/demos/card-new/index.html +5088 -0
  19. package/docs-dev/demos/card-old/index.html +5223 -0
  20. package/docs-dev/demos/card.1/index.html +5223 -0
  21. package/docs-dev/demos/card.TRASH/index.html +5541 -0
  22. package/docs-dev/demos/css-icons/index.html +758 -295
  23. package/docs-dev/demos/data-grid/index.html +866 -483
  24. package/docs-dev/demos/data-table/index.html +783 -320
  25. package/docs-dev/demos/details-group/index.html +5114 -0
  26. package/docs-dev/demos/file-save/index.html +758 -295
  27. package/docs-dev/demos/flipcard/index.html +758 -295
  28. package/docs-dev/demos/form-theme/index.html +776 -326
  29. package/docs-dev/demos/hero/index.html +12 -4
  30. package/docs-dev/demos/image-grid/index.html +12 -4
  31. package/docs-dev/demos/index.html +758 -295
  32. package/docs-dev/demos/list-inline/index.html +5100 -0
  33. package/docs-dev/demos/list-inline.1/index.html +4727 -0
  34. package/docs-dev/demos/list-lines/index.html +5090 -0
  35. package/docs-dev/demos/menu-stack/index.html +777 -314
  36. package/docs-dev/demos/modals/index.html +758 -295
  37. package/docs-dev/demos/nav-strip/index.html +778 -351
  38. package/docs-dev/demos/overlay-section/index.html +758 -295
  39. package/docs-dev/demos/popovers/index.html +860 -299
  40. package/docs-dev/demos/print/index.html +758 -295
  41. package/docs-dev/demos/pull-quote/index.html +758 -295
  42. package/docs-dev/demos/rule/index.html +758 -295
  43. package/docs-dev/demos/scroll-slider/index.html +72 -106
  44. package/docs-dev/demos/scrollpoints/index.html +758 -295
  45. package/docs-dev/demos/slider/index.html +12 -4
  46. package/docs-dev/demos/spoke-spinner/index.html +758 -295
  47. package/docs-dev/demos/sticky-list/index.html +5103 -0
  48. package/docs-dev/demos/tabs/index.html +758 -295
  49. package/docs-dev/demos/tag/index.html +758 -295
  50. package/docs-dev/demos/theme-toggle/index.html +5159 -0
  51. package/docs-dev/demos/tile-grid-overlay/index.html +12 -4
  52. package/docs-dev/demos/tiles/index.html +758 -295
  53. package/docs-dev/demos/tooltip/index.html +758 -295
  54. package/docs-dev/guide/building-stylesheet/index.html +758 -295
  55. package/docs-dev/guide/developing-ulu-scss-module/index.html +758 -295
  56. package/docs-dev/guide/index.html +758 -295
  57. package/docs-dev/guide/updates-and-changes/index.html +5033 -0
  58. package/docs-dev/index.html +758 -295
  59. package/docs-dev/javascript/events/index.html +755 -294
  60. package/docs-dev/javascript/index.html +758 -295
  61. package/docs-dev/javascript/settings/index.html +5214 -0
  62. package/docs-dev/javascript/ui-breakpoints/index.html +755 -294
  63. package/docs-dev/javascript/ui-collapsible/index.html +755 -294
  64. package/docs-dev/javascript/ui-details-group/index.html +5214 -0
  65. package/docs-dev/javascript/ui-dialog/index.html +755 -294
  66. package/docs-dev/javascript/ui-flipcard/index.html +755 -294
  67. package/docs-dev/javascript/ui-grid/index.html +755 -294
  68. package/docs-dev/javascript/ui-modal-builder/index.html +755 -294
  69. package/docs-dev/javascript/ui-overflow-scroller/index.html +755 -294
  70. package/docs-dev/javascript/ui-overflow-scroller-pager/index.html +755 -294
  71. package/docs-dev/javascript/ui-page/index.html +755 -294
  72. package/docs-dev/javascript/ui-popover/index.html +755 -294
  73. package/docs-dev/javascript/ui-print/index.html +755 -294
  74. package/docs-dev/javascript/ui-print-details/index.html +755 -294
  75. package/docs-dev/javascript/ui-programmatic-modal/index.html +755 -294
  76. package/docs-dev/javascript/ui-proxy-click/index.html +755 -294
  77. package/docs-dev/javascript/ui-resizer/index.html +755 -294
  78. package/docs-dev/javascript/ui-scroll-slider/index.html +755 -294
  79. package/docs-dev/javascript/ui-scrollpoint/index.html +755 -294
  80. package/docs-dev/javascript/ui-slider/index.html +755 -294
  81. package/docs-dev/javascript/ui-tabs/index.html +755 -294
  82. package/docs-dev/javascript/ui-theme-toggle/index.html +5298 -0
  83. package/docs-dev/javascript/ui-tooltip/index.html +755 -294
  84. package/docs-dev/javascript/utils-class-logger/index.html +755 -294
  85. package/docs-dev/javascript/utils-dom/index.html +819 -298
  86. package/docs-dev/javascript/utils-file-save/index.html +755 -294
  87. package/docs-dev/javascript/utils-floating-ui/index.html +755 -294
  88. package/docs-dev/javascript/utils-id/index.html +755 -294
  89. package/docs-dev/javascript/utils-pause-youtube-video/index.html +755 -294
  90. package/docs-dev/sass/base/color/index.html +755 -294
  91. package/docs-dev/sass/base/elements/index.html +755 -294
  92. package/docs-dev/sass/base/index/index.html +755 -294
  93. package/docs-dev/sass/base/index.html +758 -295
  94. package/docs-dev/sass/base/keyframes/index.html +755 -294
  95. package/docs-dev/sass/base/layout/index.html +755 -294
  96. package/docs-dev/sass/base/normalize/index.html +755 -294
  97. package/docs-dev/sass/base/print/index.html +755 -294
  98. package/docs-dev/sass/base/root/index.html +755 -294
  99. package/docs-dev/sass/base/typography/index.html +755 -294
  100. package/docs-dev/sass/components/accordion/index.html +761 -300
  101. package/docs-dev/sass/components/adaptive-spacing/index.html +755 -294
  102. package/docs-dev/sass/components/badge/index.html +763 -302
  103. package/docs-dev/sass/components/basic-hero/index.html +5265 -0
  104. package/docs-dev/sass/components/button/index.html +755 -294
  105. package/docs-dev/sass/components/button-verbose/index.html +813 -303
  106. package/docs-dev/sass/components/callout/index.html +780 -355
  107. package/docs-dev/sass/components/captioned-figure/index.html +878 -302
  108. package/docs-dev/sass/components/card/index.html +817 -313
  109. package/docs-dev/sass/components/card-grid/index.html +755 -294
  110. package/docs-dev/sass/components/css-icon/index.html +772 -304
  111. package/docs-dev/sass/components/data-grid/index.html +755 -294
  112. package/docs-dev/sass/components/data-table/index.html +951 -305
  113. package/docs-dev/sass/components/fill-context/index.html +755 -294
  114. package/docs-dev/sass/components/flipcard/index.html +791 -299
  115. package/docs-dev/sass/components/flipcard-grid/index.html +755 -294
  116. package/docs-dev/sass/components/form-theme/index.html +926 -363
  117. package/docs-dev/sass/components/hero/index.html +811 -302
  118. package/docs-dev/sass/components/horizontal-rule/index.html +755 -294
  119. package/docs-dev/sass/components/image-grid/index.html +755 -294
  120. package/docs-dev/sass/components/index/index.html +768 -304
  121. package/docs-dev/sass/components/index.html +758 -295
  122. package/docs-dev/sass/components/links/index.html +755 -294
  123. package/docs-dev/sass/components/list-inline/index.html +5279 -0
  124. package/docs-dev/sass/components/list-lines/index.html +787 -330
  125. package/docs-dev/sass/components/list-ordered/index.html +757 -296
  126. package/docs-dev/sass/components/list-unordered/index.html +755 -294
  127. package/docs-dev/sass/components/menu-stack/index.html +789 -315
  128. package/docs-dev/sass/components/modal/index.html +776 -308
  129. package/docs-dev/sass/components/nav-strip/index.html +767 -306
  130. package/docs-dev/sass/components/overlay-section/index.html +763 -302
  131. package/docs-dev/sass/components/pager/index.html +755 -294
  132. package/docs-dev/sass/components/placeholder-block/index.html +755 -294
  133. package/docs-dev/sass/components/popover/index.html +812 -315
  134. package/docs-dev/sass/components/pull-quote/index.html +767 -306
  135. package/docs-dev/sass/components/ratio-box/index.html +755 -294
  136. package/docs-dev/sass/components/rule/index.html +763 -302
  137. package/docs-dev/sass/components/scroll-slider/index.html +755 -294
  138. package/docs-dev/sass/components/skip-link/index.html +763 -302
  139. package/docs-dev/sass/components/slider/index.html +762 -301
  140. package/docs-dev/sass/components/spoke-spinner/index.html +755 -294
  141. package/docs-dev/sass/components/sticky-list/index.html +5483 -0
  142. package/docs-dev/sass/components/tabs/index.html +764 -303
  143. package/docs-dev/sass/components/tag/index.html +755 -294
  144. package/docs-dev/sass/components/tile-button/index.html +755 -294
  145. package/docs-dev/sass/components/tile-grid/index.html +755 -294
  146. package/docs-dev/sass/components/tile-grid-overlay/index.html +755 -294
  147. package/docs-dev/sass/components/vignette/index.html +769 -302
  148. package/docs-dev/sass/components/wysiwyg/index.html +755 -294
  149. package/docs-dev/sass/core/breakpoint/index.html +755 -294
  150. package/docs-dev/sass/core/button/index.html +755 -294
  151. package/docs-dev/sass/core/color/index.html +793 -325
  152. package/docs-dev/sass/core/cssvar/index.html +755 -294
  153. package/docs-dev/sass/core/element/index.html +755 -294
  154. package/docs-dev/sass/core/index.html +755 -294
  155. package/docs-dev/sass/core/layout/index.html +755 -294
  156. package/docs-dev/sass/core/path/index.html +755 -294
  157. package/docs-dev/sass/core/selector/index.html +755 -294
  158. package/docs-dev/sass/core/typography/index.html +755 -294
  159. package/docs-dev/sass/core/units/index.html +755 -294
  160. package/docs-dev/sass/core/utils/index.html +1481 -382
  161. package/docs-dev/sass/helpers/color/index.html +755 -294
  162. package/docs-dev/sass/helpers/display/index.html +755 -294
  163. package/docs-dev/sass/helpers/index/index.html +755 -294
  164. package/docs-dev/sass/helpers/index.html +758 -295
  165. package/docs-dev/sass/helpers/print/index.html +755 -294
  166. package/docs-dev/sass/helpers/typography/index.html +755 -294
  167. package/docs-dev/sass/helpers/units/index.html +755 -294
  168. package/docs-dev/sass/helpers/utilities/index.html +755 -294
  169. package/docs-dev/sass/index.html +758 -295
  170. package/js/index.js +1 -0
  171. package/js/settings.js +78 -0
  172. package/js/ui/details-group.js +121 -0
  173. package/js/ui/index.js +1 -0
  174. package/js/ui/modal-builder.js +3 -2
  175. package/js/ui/overflow-scroller.js +5 -4
  176. package/js/ui/popover.js +1 -0
  177. package/js/ui/programmatic-modal.js +9 -3
  178. package/js/ui/slider.js +7 -6
  179. package/js/ui/theme-toggle.js +330 -89
  180. package/js/utils/dom.js +43 -1
  181. package/js/utils/font-awesome.js +18 -0
  182. package/js/utils/index.js +2 -1
  183. package/package.json +9 -6
  184. package/scss/_color.scss +9 -2
  185. package/scss/_layout.scss +1 -4
  186. package/scss/_utils.scss +187 -11
  187. package/scss/components/README.todos +14 -0
  188. package/scss/components/_accordion.scss +17 -18
  189. package/scss/components/_badge.scss +3 -2
  190. package/scss/components/_basic-hero.scss +112 -0
  191. package/scss/components/_button-verbose.scss +66 -12
  192. package/scss/components/_callout.scss +43 -54
  193. package/scss/components/_captioned-figure.scss +23 -5
  194. package/scss/components/_card-grid.scss +1 -1
  195. package/scss/components/_card.scss +190 -70
  196. package/scss/components/_css-icon.scss +16 -11
  197. package/scss/components/_data-table.scss +41 -4
  198. package/scss/components/_flipcard.scss +20 -14
  199. package/scss/components/_form-theme.scss +135 -123
  200. package/scss/components/_hero.scss +9 -0
  201. package/scss/components/_index.scss +18 -0
  202. package/scss/components/_list-inline.scss +80 -0
  203. package/scss/components/_list-lines.scss +44 -33
  204. package/scss/components/_list-ordered.scss +0 -1
  205. package/scss/components/_menu-stack.scss +42 -26
  206. package/scss/components/_modal.scss +23 -19
  207. package/scss/components/_nav-strip.scss +25 -16
  208. package/scss/components/_overlay-section.scss +2 -1
  209. package/scss/components/_pager.scss +6 -6
  210. package/scss/components/_placeholder-block.scss +4 -4
  211. package/scss/components/_popover.scss +174 -73
  212. package/scss/components/_pull-quote.scss +12 -12
  213. package/scss/components/_rule.scss +0 -1
  214. package/scss/components/_scroll-slider.scss +1 -1
  215. package/scss/components/_skip-link.scss +2 -1
  216. package/scss/components/_slider.scss +17 -38
  217. package/scss/components/_sticky-list.scss +206 -0
  218. package/scss/components/_tabs.scss +5 -2
  219. package/scss/components/_tag.scss +1 -1
  220. package/scss/components/_vignette.scss +1 -0
  221. package/types/index.d.ts +1 -0
  222. package/types/settings.d.ts +38 -0
  223. package/types/settings.d.ts.map +1 -0
  224. package/types/ui/details-group.d.ts +43 -0
  225. package/types/ui/details-group.d.ts.map +1 -0
  226. package/types/ui/index.d.ts +1 -0
  227. package/types/ui/modal-builder.d.ts +2 -2
  228. package/types/ui/modal-builder.d.ts.map +1 -1
  229. package/types/ui/overflow-scroller.d.ts +2 -2
  230. package/types/ui/overflow-scroller.d.ts.map +1 -1
  231. package/types/ui/popover.d.ts.map +1 -1
  232. package/types/ui/programmatic-modal.d.ts.map +1 -1
  233. package/types/ui/slider.d.ts +2 -2
  234. package/types/ui/slider.d.ts.map +1 -1
  235. package/types/ui/tabs.d.ts.map +1 -1
  236. package/types/ui/theme-toggle.d.ts +58 -7
  237. package/types/ui/theme-toggle.d.ts.map +1 -1
  238. package/types/utils/dom.d.ts +19 -1
  239. package/types/utils/dom.d.ts.map +1 -1
  240. package/types/utils/font-awesome.d.ts +5 -0
  241. package/types/utils/font-awesome.d.ts.map +1 -0
  242. package/types/utils/index.d.ts +1 -0
@@ -7,99 +7,111 @@
7
7
  @use "sass:meta";
8
8
  @use "sass:math";
9
9
  @use "sass:list";
10
+
10
11
  @use "../selector";
11
12
  @use "../utils";
12
13
  @use "../color";
13
14
  @use "../element";
14
15
  @use "../typography";
15
16
 
17
+ // Used for function fallback
18
+ $-fallbacks: (
19
+ "description-line-height" : (
20
+ "function" : meta.get-function("get", false, "typography"),
21
+ "property" : "line-height-dense",
22
+ ),
23
+ );
24
+
16
25
  /// Module Settings
17
26
  /// @type Map
18
- /// @prop {} color [inherit]
19
- /// @prop {} color-placeholder ["type-tertiary"]
20
- /// @prop {} drupal [false]
21
- /// @prop {} error-color ["error"]
22
- /// @prop {} error-highlight-color [rgb(251, 242, 242)]
23
- /// @prop {} error-selector [".is-danger"]
24
- /// @prop {} file-button-style [true]
25
- /// @prop {} font-weight-label [bold]
26
- /// @prop {} font-weight-legend [bold]
27
- /// @prop {} font-weight-placeholder [normal]
28
- /// @prop {} font-weight-input [null]
29
- /// @prop {} font-weight-textarea [null]
30
- /// @prop {} font-weight-select [null]
31
- /// @prop {} input-border [element.get-rule-style()]
32
- /// @prop {} input-border-radius [0]
33
- /// @prop {} input-margin-y [0.75em]
34
- /// @prop {} input-padding-x [0.5em]
35
- /// @prop {} input-padding-y [0.25em]
36
- /// @prop {} input-min-width [10em]
37
- /// @prop {} input-background-color [white]
38
- /// @prop {} item-border-radius [null]
39
- /// @prop {} item-highlight-width [6px]
40
- /// @prop {} required-color ["error"]
41
- /// @prop {} text-input-margin-bottom [0.5em]
42
- /// @prop {} text-input-margin-top [1em]
43
- /// @prop {} warning-color ["warning"]
44
- /// @prop {} warning-highlight-color [rgb(255, 249, 237)]
45
- /// @prop {} warning-selector [".is-warning"]
46
- /// @prop {} check-input-color [currentColor]
47
- /// @prop {} check-input-size [1.15em]
48
- /// @prop {} check-input-touch-size [2em]
49
- /// @prop {} check-input-background-color [white]
50
- /// @prop {} check-input-background-color-checked [white]
51
- /// @prop {} check-input-background-color-hover [white]
52
- /// @prop {} check-input-background-color-indeterminate [white]
53
- /// @prop {} check-input-border [null]
54
- /// @prop {} check-input-border-color-hover [null]
55
- /// @prop {} check-input-border-color-checked [null]
56
- /// @prop {} check-input-border-color-indeterminate [null]
57
- /// @prop {} check-input-border-color-focus [null]
58
- /// @prop {} check-input-outline [null]
59
- /// @prop {} check-input-outline-hover [null]
60
- /// @prop {} check-input-outline-checked [null]
61
- /// @prop {} check-input-outline-focus [1px solid white]
62
- /// @prop {} check-input-touch-color-hover [#e8e8e8]
63
- /// @prop {} check-input-touch-color-focus [null]
64
- /// @prop {} check-input-radio-size [0.3em]
65
- /// @prop {} check-input-checkmark-width [0.38em]
66
- /// @prop {} check-input-checkmark-height [0.68em]
67
- /// @prop {} check-input-checkmark-offset-y [-0.2em]
68
- /// @prop {} check-input-checkmark-stroke-size [0.18em]
69
- /// @prop {} check-input-mark-color [currentColor]
70
- /// @prop {} check-input-mark-color-hover [null]
71
- /// @prop {} check-input-mark-color-focus [null]
72
- /// @prop {} check-input-mark-color-checked [null]
73
- /// @prop {} check-input-mark-color-indeterminate [null]
74
- /// @prop {} check-input-disabled-opacity [0.6]
75
- /// @prop {} check-input-border-radius [null]
76
- /// @prop {} description-color [false]
77
- /// @prop {} description-margin [(0.25em 0)]
78
- /// @prop {} description-max-width [25em]
79
- /// @prop {} fieldset-background [transparent]
80
- /// @prop {} fieldset-border [none]
81
- /// @prop {} fieldset-margin-bottom [1rem]
82
- /// @prop {} fieldset-margin-top [1rem]
83
- /// @prop {} fieldset-padding [0]
84
- /// @prop {} fieldset-margin-compact [0]
85
- /// @prop {} fieldset-border-radius [0]
86
- /// @prop {} fieldset-legend-color [inherit]
87
- /// @prop {} fieldset-legend-border-bottom [null]
88
- /// @prop {} select-border-radius [4px]
89
- /// @prop {} select-background-color [null]
90
- /// @prop {} select-border [null]
91
- /// @prop {} select-padding-x [null]
92
- /// @prop {} select-padding-y [null]
93
- /// @prop {} select-image [null]
94
- /// @prop {} select-image-size [0.9em]
95
- /// @prop {} select-image-offset [0.7em]
96
- /// @prop {} select-image-margin [0.65em]
27
+ /// @prop {CssValue} color [inherit] Color of the text of the form.
28
+ /// @prop {CssValue} color-placeholder ["type-tertiary"] Color for the placeholder text.
29
+ /// @prop {Boolean} drupal [false] Toggle if using drupal to include drupal specific styling.
30
+ /// @prop {Color} error-color ["danger"] Type color for errors.
31
+ /// @prop {Color} error-highlight-color [rgb(251, 242, 242)] Outline color of error container.
32
+ /// @prop {String} error-selector [".is-danger"] Class for error styling.
33
+ /// @prop {} file-button-style [true] @joe-check should this have a fallback
34
+ /// @prop {CssValue} font-weight-label [bold] Font weight of the labels.
35
+ /// @prop {CssValue} font-weight-legend [bold] Font weight of the legend.
36
+ /// @prop {CssValue} font-weight-placeholder [normal] Font weight of placeholder text.
37
+ /// @prop {CssValue} font-weight-input [null] Font weight of input text.
38
+ /// @prop {CssValue} font-weight-textarea [null] Font weight of textarea text.
39
+ /// @prop {CssValue} font-weight-select [null] Font weight of select text.
40
+ /// @prop {CssValue} input-border [element.get-rule-style()] Border of the input.
41
+ /// @prop {Dimension} input-border-radius [0] Border radius of the input.
42
+ /// @prop {Dimension} input-padding-x [0.5em] Horizontal padding of the input.
43
+ /// @prop {Dimension} input-padding-y [0.25em] Vertical padding of the input.
44
+ /// @prop {Dimension} input-min-width [10em] Min width of the input.
45
+ /// @prop {Color} input-background-color [white] Background color of the input.
46
+ /// @prop {Dimension} item-border-radius [null] Border radius for __item.
47
+ /// @prop {Dimension} item-highlight-width [6px] Width of the item box highlight.
48
+ /// @prop {Color} required-color ["danger"] Color for required text.
49
+ /// @prop {Dimension} text-input-margin-bottom [0.5em] Bottom margin for the label.
50
+ /// @prop {Dimension} text-input-margin-top [1em] Top margin for the label.
51
+ /// @prop {Color} warning-color ["warning"] The warning text color.
52
+ /// @prop {Color} warning-highlight-color [rgb(255, 249, 237)] Outline color of the warning.
53
+ /// @prop {String} warning-selector [".is-warning"] Selector for adding warning styles.
54
+ /// @prop {Color} check-input-color [currentColor] @joe-check unused
55
+ /// @prop {Dimension} check-input-size [1.15em] Size of input box.
56
+ /// @prop {Dimension} check-input-touch-size [2em] Touchable size of the input box.
57
+ /// @prop {Color} check-input-background-color [white] Background color for the check input.
58
+ /// @prop {Color} check-input-background-color-checked [white] Background color for the check input when checked.
59
+ /// @prop {Color} check-input-background-color-hover [white] Background color for the check input when hovered or focused.
60
+ /// @prop {Color} check-input-background-color-indeterminate [white] Background color for the indeterminate check input.
61
+ /// @prop {} check-input-border [null] @joe-check check how this is called with a fallback in the styles mixin
62
+ /// @prop {Color} check-input-border-color-hover [null] Check input border color.
63
+ /// @prop {Color} check-input-border-color-checked [null] Check input border color when checked.
64
+ /// @prop {Color} check-input-border-color-indeterminate [null] Indeterminate check input border color.
65
+ /// @prop {Color} check-input-border-color-focus [null] Check input border color when hovered or focused.
66
+ /// @prop {CssValue} check-input-outline [null] Check input outline.
67
+ /// @prop {CssValue} check-input-outline-hover [null]
68
+ /// @prop {CssValue} check-input-outline-checked [null]
69
+ /// @prop {CssValue} check-input-outline-focus [1px solid white]
70
+ /// @prop {Color} check-input-touch-color-hover [#e8e8e8]
71
+ /// @prop {Color} check-input-touch-color-focus [null]
72
+ /// @prop {Dimension} check-input-radio-size [0.3em]
73
+ /// @prop {Dimension} check-input-checkmark-width [0.38em]
74
+ /// @prop {Dimension} check-input-checkmark-height [0.68em]
75
+ /// @prop {Dimension} check-input-checkmark-offset-y [-0.2em]
76
+ /// @prop {Dimension} check-input-checkmark-stroke-size [0.18em]
77
+ /// @prop {Color} check-input-mark-color [currentColor]
78
+ /// @prop {Color} check-input-mark-color-hover [null]
79
+ /// @prop {Color} check-input-mark-color-focus [null]
80
+ /// @prop {Color} check-input-mark-color-checked [null]
81
+ /// @prop {Color} check-input-mark-color-indeterminate [null]
82
+ /// @prop {Number} check-input-disabled-opacity [0.6]
83
+ /// @prop {Dimension} check-input-border-radius [null]
84
+ /// @prop {Color} description-color [false]
85
+ /// @prop {CssValue} description-margin [(0.25em 0)]
86
+ /// @prop {Dimension} description-max-width [25em]
87
+ /// @prop {Number} description-line-height [true] Line height for description element, defaults to typograpahy line-height-dense
88
+ /// @prop {Color} fieldset-background [transparent]
89
+ /// @prop {CssValue} fieldset-border [none]
90
+ /// @prop {Dimension} fieldset-margin-bottom [1rem]
91
+ /// @prop {Dimension} fieldset-margin-top [1rem]
92
+ /// @prop {Dimension} fieldset-padding [0]
93
+ /// @prop {Dimension} fieldset-margin-compact [0]
94
+ /// @prop {Dimension} fieldset-border-bottom [0]
95
+ /// @prop {Dimension} fieldset-border-radius [0]
96
+ /// @prop {Color} fieldset-legend-color [inherit]
97
+ /// @prop {Dimension} fieldset-legend-border-bottom [null]
98
+ /// @prop {Dimension} fieldset-legend-padding-bottom [null]
99
+ /// @prop {Dimension} select-border-radius [4px]
100
+ /// @prop {Color} select-background-color [null]
101
+ /// @prop {CssValue} select-border [null]
102
+ /// @prop {Dimension} select-padding-x [null]
103
+ /// @prop {Dimension} select-padding-y [null]
104
+ /// @prop {CssValue} select-image [null]
105
+ /// @prop {Dimension} select-image-size [0.9em]
106
+ /// @prop {Dimension} select-image-offset [0.7em]
107
+ /// @prop {Dimension} select-image-margin [0.65em]
108
+ /// @prop {Dimension} inline-gap [1em] Gap between items that are inline like checkboxes
97
109
 
98
110
  $config: (
99
111
  "color" : inherit,
100
112
  "color-placeholder" : "type-tertiary",
101
113
  "drupal" : false,
102
- "error-color" : "error",
114
+ "error-color" : "danger",
103
115
  "error-highlight-color" : rgb(251, 242, 242),
104
116
  "error-selector" : ".is-danger",
105
117
  "file-button-style" : true,
@@ -111,14 +123,14 @@ $config: (
111
123
  "font-weight-select" : null,
112
124
  "input-border" : element.get-rule-style(),
113
125
  "input-border-radius" : 0,
114
- "input-margin-y" : 0.75em,
126
+ "item-margin-y" : 0.75em,
115
127
  "input-padding-x" : 0.5em,
116
128
  "input-padding-y" : 0.25em,
117
129
  "input-min-width" : 10em,
118
130
  "input-background-color" : white,
119
131
  "item-border-radius" : null,
120
132
  "item-highlight-width" : 6px,
121
- "required-color" : "error",
133
+ "required-color" : "danger",
122
134
  "text-input-margin-bottom" : 0.5em,
123
135
  "text-input-margin-top" : 1em,
124
136
  "warning-color" : "warning",
@@ -157,6 +169,7 @@ $config: (
157
169
  "description-color" : false,
158
170
  "description-margin" : (0.25em 0),
159
171
  "description-max-width" : 25em,
172
+ "description-line-height" : true,
160
173
  "fieldset-background" : transparent,
161
174
  "fieldset-border" : none,
162
175
  "fieldset-margin-bottom" : 1rem,
@@ -166,6 +179,8 @@ $config: (
166
179
  "fieldset-border-radius" : 0,
167
180
  "fieldset-legend-color" : inherit,
168
181
  "fieldset-legend-border-bottom" : null,
182
+ "fieldset-legend-padding-bottom" : 0,
183
+ "fieldset-legend-margin-bottom" : 0.5em,
169
184
  "select-border-radius" : 4px,
170
185
  "select-background-color" : null,
171
186
  "select-border" : null,
@@ -175,6 +190,7 @@ $config: (
175
190
  "select-image-size" : 0.9em,
176
191
  "select-image-offset" : 0.7em,
177
192
  "select-image-margin" : 0.65em,
193
+ "inline-gap" : 1em
178
194
  ) !default;
179
195
 
180
196
  /// Change modules $config
@@ -192,7 +208,8 @@ $config: (
192
208
  /// @include ulu.component-form-theme-get("property");
193
209
 
194
210
  @function get($name) {
195
- @return utils.require-map-get($config, $name, "component-form-theme [config]");
211
+ $value: utils.require-map-get($config, $name, "component-form-theme [config]");
212
+ @return utils.function-fallback($name, $value, $-fallbacks);
196
213
  }
197
214
 
198
215
  @function -fallback($op1, $op2) {
@@ -258,7 +275,7 @@ $config: (
258
275
  textarea,
259
276
  label,
260
277
  legend {
261
- color: get("color");
278
+ color: color.get(get("color"));
262
279
  font-size: 1em;
263
280
  max-width: 100%;
264
281
  line-height: typography.get("line-height-dense");
@@ -291,7 +308,7 @@ $config: (
291
308
  [type="password"],
292
309
  [type="file"] {
293
310
  padding: get("input-padding-y") get("input-padding-x");
294
- background-color: get("input-background-color");
311
+ background-color: color.get(get("input-background-color"));
295
312
  border-radius: get("input-border-radius");
296
313
  transition: border linear 0.2s;
297
314
  border: get("input-border");
@@ -305,9 +322,8 @@ $config: (
305
322
  }
306
323
  select {
307
324
  font-weight: get("font-weight-select");
308
- border: get("select-border");
309
325
  border-radius: get("select-border-radius");
310
- background-color: get("select-background-color");
326
+ background-color: color.get(get("select-background-color"));
311
327
  padding: -fallback("select-padding-y", "input-padding-y") -fallback("select-padding-x", "input-padding-x");
312
328
  border: -fallback("select-border", "input-border");
313
329
  @if get("select-image") {
@@ -365,39 +381,39 @@ $config: (
365
381
  opacity: 0;
366
382
  transform: rotate(45deg);
367
383
  transition: opacity ease-out 150ms;
368
- border: get("check-input-radio-size") solid get("check-input-mark-color");
384
+ border: get("check-input-radio-size") solid color.get(get("check-input-mark-color"));
369
385
  border-radius: 50%;
370
386
  }
371
387
  &:focus {
372
- background-color: get("check-input-touch-color-focus");
388
+ background-color: color.get(get("check-input-touch-color-focus"));
373
389
  &:before {
374
- border-color: get("check-input-border-color-focus");
390
+ border-color: color.get(get("check-input-border-color-focus"));
375
391
  outline: get("check-input-outline-focus");
376
392
  }
377
393
  &:after {
378
- border-color: get("check-input-mark-color-focus");
394
+ border-color: color.get(get("check-input-mark-color-focus"));
379
395
  }
380
396
  }
381
397
  &:hover {
382
- background-color: get("check-input-touch-color-hover");
398
+ background-color: color.get(get("check-input-touch-color-hover"));
383
399
  &:before {
384
400
  outline: get("check-input-outline-hover");
385
- background-color: get("check-input-background-color-hover");
386
- border-color: get("check-input-border-color-hover");
401
+ background-color: color.get(get("check-input-background-color-hover"));
402
+ border-color: color.get(get("check-input-border-color-hover"));
387
403
  }
388
404
  &:after {
389
- border-color: get("check-input-mark-color-hover");
405
+ border-color: color.get(get("check-input-mark-color-hover"));
390
406
  }
391
407
  }
392
408
  &:checked {
393
409
  &:before {
394
- background-color: get("check-input-background-color-checked");
395
- border-color: get("check-input-border-color-checked");
410
+ background-color: color.get(get("check-input-background-color-checked"));
411
+ border-color: color.get(get("check-input-border-color-checked"));
396
412
  outline: get("check-input-outline-checked");
397
413
  }
398
414
  &:after {
399
415
  opacity: 1;
400
- border-color: get("check-input-mark-color-checked");
416
+ border-color: color.get(get("check-input-mark-color-checked"));
401
417
  }
402
418
  }
403
419
 
@@ -428,15 +444,15 @@ $config: (
428
444
  &:indeterminate,
429
445
  &[aria-checked=mixed] {
430
446
  &:before {
431
- background-color: get("check-input-background-color-indeterminate");
432
- border-color: get("check-input-border-color-indeterminate");
447
+ background-color: color.get(get("check-input-background-color-indeterminate"));
448
+ border-color: color.get(get("check-input-border-color-indeterminate"));
433
449
  }
434
450
  &:after {
435
451
  border-right: none;
436
452
  transform: translatey(50%);
437
453
  opacity: 1;
438
454
  height: get("check-input-checkmark-stroke-size");
439
- border-color: get("check-input-mark-color-indeterminate");
455
+ border-color: color.get(get("check-input-mark-color-indeterminate"));
440
456
  }
441
457
  }
442
458
  }
@@ -449,38 +465,32 @@ $config: (
449
465
  margin-top: get("fieldset-margin-top");
450
466
  margin-bottom: get("fieldset-margin-bottom");
451
467
  border: get("fieldset-border");
452
- background-color: get("fieldset-background");
468
+ background-color: color.get(get("fieldset-background"));
453
469
  border-radius: get("fieldset-border-radius");
454
470
  padding: get("fieldset-padding");
455
471
 
456
472
  > legend {
457
473
  font-weight: get("font-weight-legend");
458
474
  display: block;
459
- margin: 0 0 0.5em 0;
475
+ margin: 0 0 get("fieldset-legend-margin-bottom") 0;
460
476
  border: 0;
461
- padding: 0;
477
+ padding: 0 0 get("fieldset-legend-padding-bottom") 0;
462
478
  width: 100%;
463
479
  float: left;
464
- > span {
465
- display: block;
466
- margin-bottom: 1rem;
467
- padding-bottom: 0.5em;
468
- padding-top: 0.5em;
469
- border-bottom: get("fieldset-legend-border-bottom");
470
- color: get("fieldset-legend-color");
471
- }
480
+ border-bottom: get("fieldset-legend-border-bottom");
481
+ color: color.get(get("fieldset-legend-color"));
472
482
  & ~ * {
473
483
  clear: left;
474
484
  }
475
485
  }
476
486
  &#{ $selectError } {
477
487
  > legend {
478
- color: $errorColor;
488
+ color: color.get($errorColor);
479
489
  }
480
490
  }
481
491
  &#{ $selectWarning } {
482
492
  > legend {
483
- color: $warningColor;
493
+ color: color.get($warningColor);
484
494
  }
485
495
  }
486
496
  }
@@ -501,8 +511,9 @@ $config: (
501
511
  margin: get("description-margin");
502
512
  font-style: italic;
503
513
  @include typography.size("small", null, true);
514
+ line-height: get("description-line-height");
504
515
  max-width: get("description-max-width");
505
- color: get("description-color");
516
+ color: color.get(get("description-color"));
506
517
  }
507
518
 
508
519
  /// Styles for form item that should have label as block and text input
@@ -547,11 +558,11 @@ $config: (
547
558
  #{ $prefix }__item {
548
559
  display: flex;
549
560
  align-items: center;
550
- margin-bottom: get("input-margin-y");
561
+ margin-bottom: get("item-margin-y");
551
562
  border-radius: get("item-border-radius");
552
563
  flex-shrink: 0; // Cannot be smaller than content within
553
- @include -form-item-state($selectError, $errorColor, get("error-highlight-color"));
554
- @include -form-item-state($selectWarning, $warningColor, get("warning-highlight-color"));
564
+ @include -form-item-state($selectError, $errorColor, color.get(get("error-highlight-color")));
565
+ @include -form-item-state($selectWarning, $warningColor, color.get(get("warning-highlight-color")));
555
566
  }
556
567
  #{ $prefix }__item--align-top {
557
568
  align-items: flex-start;
@@ -565,8 +576,9 @@ $config: (
565
576
  #{ $prefix }__items-inline {
566
577
  display: flex;
567
578
  flex-wrap: wrap;
579
+ gap: get("inline-gap");
568
580
  > #{ $prefix }__item {
569
- margin-right: 1.5em;
581
+ margin: 0;
570
582
  }
571
583
  }
572
584
  #{ $prefix }__actions {
@@ -578,10 +590,10 @@ $config: (
578
590
  }
579
591
  }
580
592
  #{ $prefix }__error {
581
- color: $errorColor;
593
+ color: color.get($errorColor);
582
594
  }
583
595
  #{ $prefix }__warning {
584
- color: $warningColor;
596
+ color: color.get($warningColor);
585
597
  }
586
598
  }
587
599
 
@@ -622,12 +634,12 @@ $config: (
622
634
  // outline: get("item-outline-width") solid $highlightColor;
623
635
  box-shadow: 0 0 0 get("item-highlight-width") $highlightColor;
624
636
  label {
625
- color: $color;
637
+ color: color.get($color);
626
638
  }
627
639
  select,
628
640
  textarea,
629
641
  input:not([type="checkbox"]):not([type="radio"]) {
630
- border-color: $color;
642
+ border-color: color.get($color);
631
643
  }
632
644
  }
633
645
  }
@@ -15,6 +15,15 @@
15
15
  /// Module Settings
16
16
  /// @type Map
17
17
  /// @prop {Map} extra-split-ratios [wide 70/30] A map where the name is the modifier and the value is a list with two percentages (the first percentage will be correspond with the graphic or content depending on selector [ie. .hero--split-graphic-[name] would apply the first percentage to the graphic while hero--split-content-[name] would apply the first percentage to the content])
18
+ /// @prop {String} breakpoint ["medium"] At what breakpoint the hero goes to small screen styling.
19
+ /// @prop {Dimension} height [100vh] Height of the hero.
20
+ /// @prop {Dimension} height-compact [40vh] Height of the hero when using the "--compact" styling.
21
+ /// @prop {Dimension} graphic-height-stacked [60vh] Height of the graphic.
22
+ /// @prop {Dimension} content-max-width [40rem] Max width of the content.
23
+ /// @prop {Dimension} content-padding-top [3rem] Top padding of the content.
24
+ /// @prop {Dimension} content-padding-bottom [3rem] Bottom padding of the content.
25
+ /// @prop {CssValue} text-align [center] Text align of the content.
26
+
18
27
 
19
28
  $config: (
20
29
  "breakpoint" : "medium",
@@ -6,6 +6,7 @@
6
6
  @forward "accordion" as accordion-*;
7
7
  @forward "adaptive-spacing" as adaptive-spacing-*;
8
8
  @forward "badge" as badge-*;
9
+ @forward "basic-hero" as basic-hero-*;
9
10
  @forward "button" as button-*;
10
11
  @forward "button-verbose" as button-verbose-*;
11
12
  @forward "callout" as callout-*;
@@ -22,6 +23,7 @@
22
23
  @forward "image-grid" as image-grid-*;
23
24
  @forward "links" as links-*;
24
25
  @forward "list-lines" as list-lines-*;
26
+ @forward "list-inline" as list-inline-*;
25
27
  @forward "list-ordered" as list-ordered-*;
26
28
  @forward "list-unordered" as list-unordered-*;
27
29
  @forward "menu-stack" as menu-stack-*;
@@ -36,6 +38,7 @@
36
38
  @forward "rule" as rule-*;
37
39
  @forward "scroll-slider" as scroll-slider-*;
38
40
  @forward "skip-link" as skip-link-*;
41
+ @forward "sticky-list" as sticky-list-*;
39
42
  @forward "slider" as slider-*;
40
43
  @forward "hero" as hero-*;
41
44
  @forward "tabs" as tabs-*;
@@ -54,6 +57,7 @@
54
57
  @use "adaptive-spacing";
55
58
  @use "accordion";
56
59
  @use "badge";
60
+ @use "basic-hero";
57
61
  @use "button";
58
62
  @use "button-verbose";
59
63
  @use "callout";
@@ -69,6 +73,7 @@
69
73
  @use "horizontal-rule";
70
74
  @use "image-grid";
71
75
  @use "list-lines";
76
+ @use "list-inline";
72
77
  @use "list-ordered";
73
78
  @use "list-unordered";
74
79
  @use "links";
@@ -84,6 +89,7 @@
84
89
  @use "rule";
85
90
  @use "scroll-slider";
86
91
  @use "skip-link";
92
+ @use "sticky-list";
87
93
  @use "slider";
88
94
  @use "hero";
89
95
  @use "tabs";
@@ -103,6 +109,7 @@ $all-includes: (
103
109
  "accordion",
104
110
  "adaptive-spacing",
105
111
  "badge",
112
+ "basic-hero",
106
113
  "button",
107
114
  "button-verbose",
108
115
  "callout",
@@ -119,6 +126,7 @@ $all-includes: (
119
126
  "image-grid",
120
127
  "links",
121
128
  "list-lines",
129
+ "list-inline",
122
130
  "list-ordered",
123
131
  "list-unordered",
124
132
  "menu-stack",
@@ -131,6 +139,7 @@ $all-includes: (
131
139
  "rule",
132
140
  "scroll-slider",
133
141
  "skip-link",
142
+ "sticky-list",
134
143
  "slider",
135
144
  "hero",
136
145
  "tabs",
@@ -196,6 +205,9 @@ $current-includes: $all-includes;
196
205
  @if (list.index($includes, "badge")) {
197
206
  @include badge.styles;
198
207
  }
208
+ @if (list.index($includes, "basic-hero")) {
209
+ @include basic-hero.styles;
210
+ }
199
211
  @if (list.index($includes, "tag")) {
200
212
  @include tag.styles;
201
213
  }
@@ -241,6 +253,9 @@ $current-includes: $all-includes;
241
253
  @if (list.index($includes, "list-lines")) {
242
254
  @include list-lines.styles;
243
255
  }
256
+ @if (list.index($includes, "list-inline")) {
257
+ @include list-inline.styles;
258
+ }
244
259
  @if (list.index($includes, "list-unordered")) {
245
260
  @include list-unordered.styles;
246
261
  }
@@ -283,6 +298,9 @@ $current-includes: $all-includes;
283
298
  @if (list.index($includes, "skip-link")) {
284
299
  @include skip-link.styles;
285
300
  }
301
+ @if (list.index($includes, "sticky-list")) {
302
+ @include sticky-list.styles;
303
+ }
286
304
  @if (list.index($includes, "slider")) {
287
305
  @include slider.styles;
288
306
  }
@@ -0,0 +1,80 @@
1
+ ////
2
+ /// @group list-inline
3
+ ////
4
+
5
+ @use "sass:map";
6
+
7
+ @use "../element";
8
+ @use "../selector";
9
+ @use "../utils";
10
+
11
+ /// Module Config
12
+ /// @prop {String} rule-style ["light"] Name of element > rule style to use for divider/border
13
+ /// @prop {Dimension} margin-top [0] Top margin of list.
14
+ /// @prop {Dimension} margin-bottom [1em] Bottom margin of list.
15
+ /// @prop {Dimension} space-between [1em] Gap between item and dividers
16
+ /// @prop {Dimension} space-between-large [1em] Gap between item and dividers when using large-gap modifier
17
+
18
+ $config: (
19
+ "rule-style" : "light",
20
+ "margin-top": 0,
21
+ "margin-bottom": 1em,
22
+ "space-between" : 1em,
23
+ "space-between-large" : 2em
24
+ ) !default;
25
+
26
+ /// Change modules $config
27
+ /// @param {Map} $changes Map of changes
28
+ /// @example scss
29
+ /// @include ulu.component-list-inline-set(( "property" : value ));
30
+
31
+ @mixin set($changes) {
32
+ $config: map.merge($config, $changes) !global;
33
+ }
34
+
35
+ /// Get a config option
36
+ /// @param {Map} $name Name of property
37
+ /// @example scss
38
+ /// @include ulu.component-list-inline-get("property");
39
+
40
+ @function get($name) {
41
+ @return utils.require-map-get($config, $name, "list-inline [config]");
42
+ }
43
+
44
+ /// Output component stylesheet
45
+ /// @example scss
46
+ /// @include ulu.component-list-inline-styles();
47
+
48
+ @mixin styles {
49
+ $prefix: selector.class("list-inline");
50
+ $border: element.get-rule-style(get("rule-style"));
51
+
52
+ ul#{ $prefix },
53
+ #{ $prefix } ul {
54
+ list-style: none;
55
+ display: inline-flex;
56
+ flex-wrap: wrap;
57
+ margin: get("margin-top") 0 get("margin-bottom") 0;
58
+ }
59
+ #{ $prefix } {
60
+ li {
61
+ // Not using flex gap because we would need to position
62
+ // pseudo for divider, so we would still need to use math
63
+ // So custom properties couldn't be used (no benefit)
64
+ padding-right: get("space-between");
65
+ margin-right: get("space-between");
66
+ border-right: $border;
67
+ &:last-child {
68
+ border-right: none;
69
+ padding-right: 0;
70
+ margin-right: 0;
71
+ }
72
+ }
73
+ }
74
+ #{ $prefix }--large-gap {
75
+ li {
76
+ padding-right: get("space-between-large");
77
+ margin-right: get("space-between-large");
78
+ }
79
+ }
80
+ }