@ulu/frontend 0.1.0-beta.6 → 0.1.0-beta.61

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 (290) hide show
  1. package/CHANGELOG.md +428 -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 +6236 -0
  9. package/docs-dev/changelog/updates-and-changes/index.html +5109 -0
  10. package/docs-dev/demos/accordion/index.html +904 -321
  11. package/docs-dev/demos/basic-hero/index.html +111 -0
  12. package/docs-dev/demos/breakpoints-manager/index.html +5246 -0
  13. package/docs-dev/demos/button/index.html +916 -323
  14. package/docs-dev/demos/button-verbose/index.html +5238 -0
  15. package/docs-dev/demos/callout/index.html +951 -328
  16. package/docs-dev/demos/captioned-figure/index.html +904 -321
  17. package/docs-dev/demos/card/index.html +970 -748
  18. package/docs-dev/demos/card-grid/index.html +5357 -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 +5224 -0
  24. package/docs-dev/demos/css-icons/index.html +904 -321
  25. package/docs-dev/demos/data-grid/index.html +1014 -511
  26. package/docs-dev/demos/data-table/index.html +1064 -348
  27. package/docs-dev/demos/details-group/index.html +5267 -0
  28. package/docs-dev/demos/file-save/index.html +904 -321
  29. package/docs-dev/demos/flipcard/index.html +904 -321
  30. package/docs-dev/demos/form-theme/index.html +922 -352
  31. package/docs-dev/demos/hero/index.html +12 -4
  32. package/docs-dev/demos/image-grid/index.html +12 -4
  33. package/docs-dev/demos/index.html +905 -322
  34. package/docs-dev/demos/list-inline/index.html +5220 -0
  35. package/docs-dev/demos/list-inline.1/index.html +4727 -0
  36. package/docs-dev/demos/list-lines/index.html +5210 -0
  37. package/docs-dev/demos/menu-stack/index.html +975 -377
  38. package/docs-dev/demos/modals/index.html +1010 -357
  39. package/docs-dev/demos/nav-strip/index.html +904 -321
  40. package/docs-dev/demos/overlay-section/index.html +979 -326
  41. package/docs-dev/demos/popovers/index.html +1152 -327
  42. package/docs-dev/demos/print/index.html +904 -321
  43. package/docs-dev/demos/pull-quote/index.html +904 -321
  44. package/docs-dev/demos/rule/index.html +952 -357
  45. package/docs-dev/demos/scroll-slider/index.html +72 -106
  46. package/docs-dev/demos/scrollpoints/index.html +905 -322
  47. package/docs-dev/demos/slider/index.html +12 -4
  48. package/docs-dev/demos/spoke-spinner/index.html +904 -321
  49. package/docs-dev/demos/sticky-list/index.html +5223 -0
  50. package/docs-dev/demos/tabs/index.html +944 -325
  51. package/docs-dev/demos/tag/index.html +904 -321
  52. package/docs-dev/demos/theme-toggle/index.html +5279 -0
  53. package/docs-dev/demos/tile-grid-overlay/index.html +12 -4
  54. package/docs-dev/demos/tiles/index.html +904 -321
  55. package/docs-dev/demos/tooltip/index.html +904 -321
  56. package/docs-dev/guide/building-stylesheet/index.html +904 -321
  57. package/docs-dev/guide/developing-ulu-scss-module/index.html +904 -321
  58. package/docs-dev/guide/index.html +904 -321
  59. package/docs-dev/guide/updates-and-changes/index.html +5033 -0
  60. package/docs-dev/index.html +904 -321
  61. package/docs-dev/javascript/events/index.html +901 -320
  62. package/docs-dev/javascript/index.html +904 -321
  63. package/docs-dev/javascript/settings/index.html +5400 -0
  64. package/docs-dev/javascript/ui-breakpoints/index.html +916 -335
  65. package/docs-dev/javascript/ui-collapsible/index.html +901 -320
  66. package/docs-dev/javascript/ui-details-group/index.html +5322 -0
  67. package/docs-dev/javascript/ui-dialog/index.html +967 -371
  68. package/docs-dev/javascript/ui-flipcard/index.html +964 -327
  69. package/docs-dev/javascript/ui-grid/index.html +913 -358
  70. package/docs-dev/javascript/ui-modal-builder/index.html +1067 -366
  71. package/docs-dev/javascript/ui-overflow-scroller/index.html +901 -320
  72. package/docs-dev/javascript/ui-overflow-scroller-pager/index.html +901 -320
  73. package/docs-dev/javascript/ui-page/index.html +901 -320
  74. package/docs-dev/javascript/ui-popover/index.html +911 -334
  75. package/docs-dev/javascript/ui-print/index.html +901 -328
  76. package/docs-dev/javascript/ui-print-details/index.html +901 -320
  77. package/docs-dev/javascript/ui-programmatic-modal/index.html +901 -320
  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 +941 -328
  81. package/docs-dev/javascript/ui-scrollpoint/index.html +907 -333
  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 +901 -320
  95. package/docs-dev/sass/base/elements/index.html +901 -320
  96. package/docs-dev/sass/base/index/index.html +901 -320
  97. package/docs-dev/sass/base/index.html +904 -321
  98. package/docs-dev/sass/base/keyframes/index.html +901 -320
  99. package/docs-dev/sass/base/layout/index.html +901 -320
  100. package/docs-dev/sass/base/normalize/index.html +901 -320
  101. package/docs-dev/sass/base/print/index.html +901 -320
  102. package/docs-dev/sass/base/root/index.html +901 -320
  103. package/docs-dev/sass/base/typography/index.html +901 -320
  104. package/docs-dev/sass/components/accordion/index.html +908 -327
  105. package/docs-dev/sass/components/adaptive-spacing/index.html +901 -320
  106. package/docs-dev/sass/components/badge/index.html +909 -328
  107. package/docs-dev/sass/components/basic-hero/index.html +5385 -0
  108. package/docs-dev/sass/components/button/index.html +901 -320
  109. package/docs-dev/sass/components/button-verbose/index.html +989 -333
  110. package/docs-dev/sass/components/callout/index.html +1018 -414
  111. package/docs-dev/sass/components/captioned-figure/index.html +1026 -330
  112. package/docs-dev/sass/components/card/index.html +1003 -350
  113. package/docs-dev/sass/components/card-grid/index.html +901 -320
  114. package/docs-dev/sass/components/counter-list/index.html +5458 -0
  115. package/docs-dev/sass/components/css-icon/index.html +918 -330
  116. package/docs-dev/sass/components/data-grid/index.html +922 -334
  117. package/docs-dev/sass/components/data-table/index.html +1106 -333
  118. package/docs-dev/sass/components/fill-context/index.html +901 -320
  119. package/docs-dev/sass/components/flipcard/index.html +939 -327
  120. package/docs-dev/sass/components/flipcard-grid/index.html +901 -320
  121. package/docs-dev/sass/components/form-theme/index.html +1110 -433
  122. package/docs-dev/sass/components/hero/index.html +995 -366
  123. package/docs-dev/sass/components/horizontal-rule/index.html +901 -320
  124. package/docs-dev/sass/components/image-grid/index.html +901 -320
  125. package/docs-dev/sass/components/index/index.html +915 -330
  126. package/docs-dev/sass/components/index.html +904 -321
  127. package/docs-dev/sass/components/links/index.html +901 -320
  128. package/docs-dev/sass/components/list-inline/index.html +5399 -0
  129. package/docs-dev/sass/components/list-lines/index.html +936 -359
  130. package/docs-dev/sass/components/list-ordered/index.html +903 -322
  131. package/docs-dev/sass/components/list-unordered/index.html +901 -320
  132. package/docs-dev/sass/components/menu-stack/index.html +973 -379
  133. package/docs-dev/sass/components/modal/index.html +953 -365
  134. package/docs-dev/sass/components/nav-strip/index.html +909 -328
  135. package/docs-dev/sass/components/overlay-section/index.html +909 -328
  136. package/docs-dev/sass/components/pager/index.html +901 -320
  137. package/docs-dev/sass/components/placeholder-block/index.html +901 -320
  138. package/docs-dev/sass/components/popover/index.html +996 -379
  139. package/docs-dev/sass/components/pull-quote/index.html +913 -332
  140. package/docs-dev/sass/components/ratio-box/index.html +909 -328
  141. package/docs-dev/sass/components/rule/index.html +909 -328
  142. package/docs-dev/sass/components/scroll-slider/index.html +944 -375
  143. package/docs-dev/sass/components/skip-link/index.html +909 -328
  144. package/docs-dev/sass/components/slider/index.html +989 -420
  145. package/docs-dev/sass/components/spoke-spinner/index.html +903 -322
  146. package/docs-dev/sass/components/sticky-list/index.html +5603 -0
  147. package/docs-dev/sass/components/tabs/index.html +910 -329
  148. package/docs-dev/sass/components/tag/index.html +903 -322
  149. package/docs-dev/sass/components/tile-button/index.html +901 -320
  150. package/docs-dev/sass/components/tile-grid/index.html +901 -320
  151. package/docs-dev/sass/components/tile-grid-overlay/index.html +901 -320
  152. package/docs-dev/sass/components/vignette/index.html +915 -328
  153. package/docs-dev/sass/components/wysiwyg/index.html +901 -320
  154. package/docs-dev/sass/core/breakpoint/index.html +947 -352
  155. package/docs-dev/sass/core/button/index.html +901 -320
  156. package/docs-dev/sass/core/color/index.html +1078 -364
  157. package/docs-dev/sass/core/cssvar/index.html +901 -320
  158. package/docs-dev/sass/core/element/index.html +1096 -368
  159. package/docs-dev/sass/core/index.html +901 -320
  160. package/docs-dev/sass/core/layout/index.html +961 -361
  161. package/docs-dev/sass/core/path/index.html +901 -320
  162. package/docs-dev/sass/core/selector/index.html +901 -320
  163. package/docs-dev/sass/core/typography/index.html +901 -320
  164. package/docs-dev/sass/core/units/index.html +911 -324
  165. package/docs-dev/sass/core/utils/index.html +1871 -430
  166. package/docs-dev/sass/helpers/color/index.html +901 -320
  167. package/docs-dev/sass/helpers/display/index.html +902 -321
  168. package/docs-dev/sass/helpers/index/index.html +901 -320
  169. package/docs-dev/sass/helpers/index.html +904 -321
  170. package/docs-dev/sass/helpers/print/index.html +843 -292
  171. package/docs-dev/sass/helpers/typography/index.html +901 -320
  172. package/docs-dev/sass/helpers/units/index.html +901 -320
  173. package/docs-dev/sass/helpers/utilities/index.html +903 -322
  174. package/docs-dev/sass/index.html +904 -321
  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 +76 -56
  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 +108 -63
  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 -7
  203. package/scss/_breakpoint.scss +16 -3
  204. package/scss/_color.scss +36 -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 +5 -7
  211. package/scss/components/_basic-hero.scss +112 -0
  212. package/scss/components/_button-verbose.scss +100 -18
  213. package/scss/components/_callout.scss +125 -78
  214. package/scss/components/_captioned-figure.scss +17 -0
  215. package/scss/components/_card-grid.scss +1 -1
  216. package/scss/components/_card.scss +246 -74
  217. package/scss/components/_counter-list.scss +137 -0
  218. package/scss/components/_css-icon.scss +25 -21
  219. package/scss/components/_data-grid.scss +38 -9
  220. package/scss/components/_data-table.scss +44 -4
  221. package/scss/components/_flipcard.scss +8 -3
  222. package/scss/components/_form-theme.scss +119 -108
  223. package/scss/components/_hero.scss +12 -10
  224. package/scss/components/_index.scss +24 -0
  225. package/scss/components/_list-inline.scss +80 -0
  226. package/scss/components/_list-lines.scss +44 -32
  227. package/scss/components/_menu-stack.scss +42 -26
  228. package/scss/components/_modal.scss +13 -6
  229. package/scss/components/_nav-strip.scss +2 -0
  230. package/scss/components/_overlay-section.scss +2 -5
  231. package/scss/components/_popover.scss +165 -64
  232. package/scss/components/_pull-quote.scss +13 -13
  233. package/scss/components/_ratio-box.scss +2 -5
  234. package/scss/components/_rule.scss +1 -0
  235. package/scss/components/_scroll-slider.scss +1 -5
  236. package/scss/components/_slider.scss +49 -72
  237. package/scss/components/_spoke-spinner.scss +2 -2
  238. package/scss/components/_sticky-list.scss +206 -0
  239. package/scss/components/_tabs.scss +3 -1
  240. package/scss/components/_vignette.scss +3 -5
  241. package/scss/helpers/_display.scss +15 -18
  242. package/scss/helpers/_print.scss +12 -7
  243. package/scss/helpers/_utilities.scss +42 -32
  244. package/types/index.d.ts +1 -0
  245. package/types/settings.d.ts +66 -0
  246. package/types/settings.d.ts.map +1 -0
  247. package/types/ui/breakpoints.d.ts +14 -14
  248. package/types/ui/breakpoints.d.ts.map +1 -1
  249. package/types/ui/collapsible.d.ts.map +1 -1
  250. package/types/ui/details-group.d.ts +38 -0
  251. package/types/ui/details-group.d.ts.map +1 -0
  252. package/types/ui/dialog.d.ts +20 -14
  253. package/types/ui/dialog.d.ts.map +1 -1
  254. package/types/ui/flipcard.d.ts +16 -10
  255. package/types/ui/flipcard.d.ts.map +1 -1
  256. package/types/ui/grid.d.ts +4 -6
  257. package/types/ui/grid.d.ts.map +1 -1
  258. package/types/ui/index.d.ts +1 -0
  259. package/types/ui/modal-builder.d.ts +93 -11
  260. package/types/ui/modal-builder.d.ts.map +1 -1
  261. package/types/ui/overflow-scroller.d.ts +2 -2
  262. package/types/ui/overflow-scroller.d.ts.map +1 -1
  263. package/types/ui/popover.d.ts +6 -7
  264. package/types/ui/popover.d.ts.map +1 -1
  265. package/types/ui/print.d.ts +0 -4
  266. package/types/ui/print.d.ts.map +1 -1
  267. package/types/ui/programmatic-modal.d.ts.map +1 -1
  268. package/types/ui/proxy-click.d.ts +19 -3
  269. package/types/ui/proxy-click.d.ts.map +1 -1
  270. package/types/ui/scroll-slider.d.ts +5 -7
  271. package/types/ui/scroll-slider.d.ts.map +1 -1
  272. package/types/ui/scrollpoint.d.ts +3 -8
  273. package/types/ui/scrollpoint.d.ts.map +1 -1
  274. package/types/ui/slider.d.ts +33 -14
  275. package/types/ui/slider.d.ts.map +1 -1
  276. package/types/ui/tabs.d.ts +6 -8
  277. package/types/ui/tabs.d.ts.map +1 -1
  278. package/types/ui/theme-toggle.d.ts +51 -7
  279. package/types/ui/theme-toggle.d.ts.map +1 -1
  280. package/types/ui/tooltip.d.ts +3 -5
  281. package/types/ui/tooltip.d.ts.map +1 -1
  282. package/types/utils/css.d.ts +11 -0
  283. package/types/utils/css.d.ts.map +1 -0
  284. package/types/utils/dom.d.ts +45 -6
  285. package/types/utils/dom.d.ts.map +1 -1
  286. package/types/utils/font-awesome.d.ts +5 -0
  287. package/types/utils/font-awesome.d.ts.map +1 -0
  288. package/types/utils/index.d.ts +1 -0
  289. package/types/utils/system.d.ts +113 -0
  290. package/types/utils/system.d.ts.map +1 -0
@@ -3,24 +3,40 @@
3
3
  ////
4
4
 
5
5
  @use "sass:map";
6
+ @use "sass:meta";
6
7
 
7
8
  @use "../element";
8
9
  @use "../typography";
10
+ @use "../selector";
9
11
  @use "../utils";
10
12
 
13
+ // Used for function fallback
14
+ $-fallbacks: (
15
+ "dense-line-height" : (
16
+ "function" : meta.get-function("get", false, "typography"),
17
+ "property" : "line-height-dense"
18
+ ),
19
+ );
20
+
11
21
  /// Module Config
12
22
  /// @prop {Boolean} border-first [true] If enabled, adds a top border to the first item in list-lines.
13
23
  /// @prop {Boolean} border-last [true] If enabled, adds a bottom border to the last item in list-lines.
24
+ /// @prop {String} rule-style ["light"] Name of element > rule style to use for divider/border
14
25
  /// @prop {Dimension} margin-bottom [1em] Bottom margin of list.
15
26
  /// @prop {Dimension} margin-top [0] Top margin of list.
16
27
  /// @prop {Dimension} padding-between [1em] Padding between items in list.
28
+ /// @prop {Dimension} padding-between [1em] Padding between items in list when using dense modifier
29
+ /// @prop {Dimension} line-height-dense [true] Line height when list lines has dense modifier (defaults to typography line-height-dense)
17
30
 
18
31
  $config: (
19
32
  "border-first" : true,
20
33
  "border-last" : true,
21
34
  "margin-bottom": 1em,
22
35
  "margin-top": 0,
23
- "padding-between" : 1em
36
+ "rule-style" : "light",
37
+ "padding-between" : 1em,
38
+ "dense-padding-between" : 0.65em,
39
+ "dense-line-height" : true
24
40
  ) !default;
25
41
 
26
42
  /// Change modules $config
@@ -38,31 +54,8 @@ $config: (
38
54
  /// @include ulu.component-list-lines-get("property");
39
55
 
40
56
  @function get($name) {
41
- @return utils.require-map-get($config, $name, "grid [config]");
42
- }
43
-
44
- /// Output component styles
45
-
46
- @mixin inner-styles {
47
- $border: element.get-rule-style("light") !default;
48
- list-style: none;
49
- margin: get("margin-top") 0 get("margin-bottom") 0;
50
- padding: 0;
51
- @if (get("border-first")) {
52
- border-top: $border;
53
- }
54
- >li {
55
- border-bottom: $border;
56
- padding: get("padding-between") 0;
57
- >*:last-child {
58
- margin-bottom: 0;
59
- }
60
- @if (not get("border-last")) {
61
- &:last-child {
62
- border-bottom-width: 0;
63
- }
64
- }
65
- }
57
+ $value: utils.require-map-get($config, $name, "list-lines [config]");
58
+ @return utils.function-fallback($name, $value, $-fallbacks);
66
59
  }
67
60
 
68
61
  /// Output component stylesheet
@@ -70,14 +63,33 @@ $config: (
70
63
  /// @include ulu.component-list-lines-styles();
71
64
 
72
65
  @mixin styles {
73
-
74
- .list-lines {
75
- @include inner-styles;
66
+ $prefix: selector.class("list-lines");
67
+ $border: element.get-rule-style(get("rule-style"));
68
+
69
+ #{ $prefix } {
70
+ list-style: none;
71
+ margin: get("margin-top") 0 get("margin-bottom") 0;
72
+ padding: 0;
73
+ @if (get("border-first")) {
74
+ border-top: $border;
75
+ }
76
+ >li {
77
+ border-bottom: $border;
78
+ padding: get("padding-between") 0;
79
+ >*:last-child {
80
+ margin-bottom: 0;
81
+ }
82
+ @if (not get("border-last")) {
83
+ &:last-child {
84
+ border-bottom-width: 0;
85
+ }
86
+ }
87
+ }
76
88
  }
77
- .list-lines--dense {
89
+ #{ $prefix }--dense {
78
90
  >li {
79
- padding: 0.5em 0;
80
- line-height: typography.get("line-height-dense");
91
+ padding: get("dense-padding-between") 0;
92
+ line-height: get("dense-line-height");
81
93
  }
82
94
  }
83
95
  }
@@ -19,12 +19,20 @@ $-fallbacks: (
19
19
  "link-border-radius" : (
20
20
  "function" : meta.get-function("get", false, "button"),
21
21
  "property" : "border-radius"
22
+ ),
23
+ "label-line-height" : (
24
+ "function" : meta.get-function("get", false, "typography"),
25
+ "property" : "line-height-dense"
26
+ ),
27
+ "link-line-height" : (
28
+ "function" : meta.get-function("get", false, "typography"),
29
+ "property" : "line-height-dense"
22
30
  )
23
31
  );
24
32
 
25
33
  /// Module Settings
26
34
  /// @type Map
27
- /// @prop {Dimension} checkbox-area-width [3em] The width of the checkbox are.
35
+ /// @prop {Dimension} selectable-input-width [3em] The width of the checkbox/radio input
28
36
  /// @prop {Boolean} link-separated-margin [false] Enables a margin between the items in the menu-stack.
29
37
  /// @prop {Boolean} link-separated-rule-style [false] Enables a rule between the items in the menu-stack.
30
38
  /// @prop {Dimension} nested-indent [0.5em] The indentation of child lists within the menu-stack.
@@ -36,7 +44,8 @@ $-fallbacks: (
36
44
  /// @prop {Color} label-color [null] The type color of the label.
37
45
  /// @prop {Dimension} label-margin [0.5em] The margin of the label.
38
46
  /// @prop {CssValue} label-text-transform [uppercase] Transforms the label text.
39
- /// @prop {CssValue} label-type-size [false] Adjusts the type size of the label.
47
+ /// @prop {CssValue} label-type-size [false] Adjusts the type size of the label. Only uses font-size from type size.
48
+ /// @prop {CssValue} label-line-height [true] Adjust the label line-height, defaults to typography line-height-dense
40
49
  /// @prop {list} link-active-selectors [(.is-active, '[aria-current=page]')] Selectors to apply active styling.
41
50
  /// @prop {Color} link-background-color [transparent] The background color of the menu-stack toggle.
42
51
  /// @prop {Color} link-background-color-active [rgb(219, 219, 219)] The background color of the menu-stack toggle when active.
@@ -46,6 +55,7 @@ $-fallbacks: (
46
55
  /// @prop {Color} link-color-active [black] The type color of the menu-stack toggle when active.
47
56
  /// @prop {String} link-color-hover [link-hover] The type color of the menu-stack toggle when hovered or focused. This uses color.scss, so the value of this option should be a color variable from color.scss.
48
57
  /// @prop {CssValue} link-font-weight [null] The font weight of the menu-stack toggle.
58
+ /// @prop {CssValue} label-line-height [true] Adjust the link line-height, defaults to typography line-height-dense
49
59
  /// @prop {Dimension} link-icon-margin [0.65em] Adds a right margin to the icon.
50
60
  /// @prop {Dimension} link-icon-width [1em] The width of the icon.
51
61
  /// @prop {Dimension} link-margin [0.2em] Margin for the menu-stack toggle.
@@ -53,34 +63,35 @@ $-fallbacks: (
53
63
  /// @prop {Dimension} link-padding-y [0.35em] Vertical padding for menu-stack toggle.
54
64
 
55
65
  $config: (
56
- "checkbox-area-width" : 3em,
66
+ "selectable-input-width" : 3em,
57
67
  "nested-indent" : 0.5em,
58
- "rule-style" : "default",
68
+ "rule-style" : "light",
59
69
  "rule-margin" : 0.5em,
60
- "link-separated-margin" : false,
61
- "link-separated-rule-style" : false,
62
70
  "toggle-icon-rotate" : false,
63
- "compact-link-padding-x": 0.75em,
64
- "compact-link-padding-y": 0.25em,
65
-
66
71
  "label-color" : null,
67
72
  "label-margin" : 0.5em,
68
73
  "label-text-transform" : uppercase,
69
74
  "label-type-size" : false,
75
+ "label-line-height" : true,
76
+ "link-separated-margin" : false,
77
+ "link-separated-rule-style" : false,
70
78
  "link-active-selectors" : (".is-active", '[aria-current="page"]'),
71
79
  "link-background-color" : transparent,
72
80
  "link-background-color-active" : rgb(219, 219, 219),
73
- "link-background-color-hover" : rgb(219, 219, 219),
81
+ "link-background-color-hover" : rgb(240, 240, 240),
74
82
  "link-border-radius" : true,
75
83
  "link-color" : "link",
76
84
  "link-color-active" : black,
77
85
  "link-color-hover" : "link-hover",
78
86
  "link-font-weight" : null,
87
+ "link-line-height" : true,
79
88
  "link-icon-margin" : 0.65em,
80
89
  "link-icon-width" : 1em,
81
90
  "link-margin" : 0.2em,
82
- "link-padding-x": 1em,
83
- "link-padding-y": 0.35em,
91
+ "link-padding-x": 1.25em,
92
+ "link-padding-y": 0.5em,
93
+ "compact-link-padding-x": 0.75em,
94
+ "compact-link-padding-y": 0.25em,
84
95
  ) !default;
85
96
 
86
97
 
@@ -116,6 +127,7 @@ $config: (
116
127
 
117
128
  @mixin styles {
118
129
  $prefix: selector.class("menu-stack");
130
+ $selectable-y: (get("link-padding-y") + get("link-margin"));
119
131
 
120
132
  #{ $prefix }--separated {
121
133
  border-top: element.get-rule-style(get("rule-style"));
@@ -126,6 +138,7 @@ $config: (
126
138
  text-transform: get("label-text-transform");
127
139
  padding-bottom: get("label-margin");
128
140
  color: color.get(get("label-color"));
141
+ line-height: get("label-line-height");
129
142
  @if (get("label-type-size")) {
130
143
  @include typography.size(get("label-type-size"), $only-font-size: true);
131
144
  }
@@ -150,7 +163,7 @@ $config: (
150
163
  // - Use the modifier "site-menu--contained" to keep the links within
151
164
  // the parent container (no optical alignment), should be within something that contains it
152
165
  #{ $prefix }__link,
153
- #{ $prefix }__checkbox,
166
+ #{ $prefix }__selectable,
154
167
  #{ $prefix }__toggle {
155
168
  width: 100%;
156
169
  display: flex;
@@ -159,6 +172,7 @@ $config: (
159
172
  margin: get("link-margin") 0;
160
173
  border-radius: get("link-border-radius");
161
174
  font-weight: get("link-font-weight");
175
+ line-height: get("link-line-height");
162
176
  color: color.get(get("link-color"));
163
177
  background-color: color.get(get("link-background-color"));
164
178
  box-sizing: border-box;
@@ -177,19 +191,21 @@ $config: (
177
191
  }
178
192
  }
179
193
  }
180
- #{ $prefix }__checkbox {
181
- $checkbox-y: (get("link-padding-y") + get("link-margin"));
194
+ #{ $prefix }__selectable {
182
195
  padding: 0;
183
196
  position: relative;
184
- [type="checkbox"] {
185
- position: absolute;
186
- top: $checkbox-y;
187
- left: get("link-padding-x");
188
- }
189
- label {
190
- width: 100%;
191
- padding: $checkbox-y get("link-padding-x") $checkbox-y get("checkbox-area-width");
192
- }
197
+ }
198
+ #{ $prefix }__selectable [type="checkbox"],
199
+ #{ $prefix }__selectable [type="radio"],
200
+ #{ $prefix }__selectable-input {
201
+ position: absolute;
202
+ top: $selectable-y;
203
+ left: get("link-padding-x");
204
+ }
205
+ #{ $prefix }__selectable label,
206
+ #{ $prefix }__selectable-label {
207
+ width: 100%;
208
+ padding: $selectable-y get("link-padding-x") $selectable-y get("selectable-input-width");
193
209
  }
194
210
  #{ $prefix }__link-text {
195
211
  display: block;
@@ -220,8 +236,8 @@ $config: (
220
236
 
221
237
  // Link buttons hang outside in margin so that text optically aligns
222
238
  #{ $prefix }--hanging {
223
- padding-left: get("link-padding-x");
224
- padding-right: get("link-padding-x");
239
+ // padding-left: get("link-padding-x");
240
+ // padding-right: get("link-padding-x");
225
241
  > #{ $prefix }__list > #{ $prefix }__item {
226
242
  > #{ $prefix }__link,
227
243
  >#{ $prefix }__collapsible > #{ $prefix }__toggle {
@@ -54,8 +54,8 @@ $-fallbacks: (
54
54
  /// @prop {Color} header-color [white] Type color of the header.
55
55
  /// @prop {Dimension} header-padding [1rem] The padding of the modal header.
56
56
  /// @prop {Color} resizer-background-color [rgb(221, 221, 221)] The background color of the resizer.
57
- /// @prop {Color} resizer-background-color-hover [rgb(66, 66, 66)] The background color of the resizer when hovered or focused.
58
- /// @prop {Color} resizer-color [black] The type color of the resizer.
57
+ /// @prop {Color} resizer-background-color-hover [rgb(192, 192, 192)] The background color of the resizer when hovered or focused.
58
+ /// @prop {Color} resizer-color [rgb(99, 99, 99)] The type color of the resizer.
59
59
  /// @prop {Color} resizer-color-hover [black] The type color of the resizer when hovered or focused.
60
60
  /// @prop {Dimension} resizer-width [1rem] The width of the resizer.
61
61
  /// @prop {Color} title-color [white] Type color of the title.
@@ -76,7 +76,7 @@ $config: (
76
76
  "height": 340px,
77
77
  "height-no-header": 100px,
78
78
  "width": 60rem,
79
-
79
+ "width-left-right" : 30rem,
80
80
  "animation-duration" : 300ms,
81
81
  "animation-duration-exit" : 150ms,
82
82
  "animation-timing-function" : cubic-bezier(0, 0, .2, 1),
@@ -92,10 +92,10 @@ $config: (
92
92
  "header-color": white,
93
93
  "header-padding": 1rem,
94
94
  "resizer-background-color": rgb(221, 221, 221),
95
- "resizer-background-color-hover": rgb(66, 66, 66),
96
- "resizer-color": black,
95
+ "resizer-background-color-hover": rgb(192, 192, 192),
96
+ "resizer-color": rgb(99, 99, 99),
97
97
  "resizer-color-hover": black,
98
- "resizer-width": 1rem,
98
+ "resizer-width": 1.25rem,
99
99
  "title-color": white,
100
100
  "title-font-weight": bold,
101
101
  "title-font-family" : null,
@@ -260,10 +260,17 @@ $config: (
260
260
  width: $size-width;
261
261
  }
262
262
  }
263
+
264
+ #{ $prefix }--fullscreen {
265
+ width: 100%;
266
+ height: 100%;
267
+ border-radius: 0;
268
+ }
263
269
  #{ $prefix }--right,
264
270
  #{ $prefix }--left {
265
271
  border-radius: 0;
266
272
  height: 100vh;
273
+ width: get("width-left-right");
267
274
  top: 0;
268
275
  bottom: 0;
269
276
  transform: none;
@@ -10,6 +10,7 @@
10
10
  @use "../utils";
11
11
  @use "../color";
12
12
  @use "../selector";
13
+ @use "../layout";
13
14
  @use "../typography";
14
15
 
15
16
  /// Module Settings
@@ -88,6 +89,7 @@ $config: (
88
89
  overflow-x: auto;
89
90
  line-height: typography.get("line-height-dense");
90
91
  gap: get("margin-between");
92
+ @include layout.remove-scrollbar();
91
93
  }
92
94
  #{ $prefix }__item,
93
95
  #{ $prefix }--auto li {
@@ -9,6 +9,7 @@
9
9
  @use "../utils";
10
10
  @use "../breakpoint";
11
11
  @use "../color";
12
+ @use "../layout";
12
13
 
13
14
  /// Module Settings
14
15
  /// @type Map
@@ -81,11 +82,7 @@ $config: (
81
82
  }
82
83
  }
83
84
  .overlay-section__background {
84
- position: absolute;
85
- top: 0;
86
- left: 0;
87
- right: 0;
88
- bottom: 0;
85
+ @include layout.absolute-fill();
89
86
  img,
90
87
  video {
91
88
  object-fit: cover;
@@ -29,38 +29,41 @@ $-fallbacks: (
29
29
 
30
30
  /// Module Settings
31
31
  /// @type Map
32
- /// @prop {Dimension} arrow-size [16px]
33
- /// @prop {Color} background-color [white]
34
- /// @prop {Dimension} border-radius [6px]
35
- /// @prop {Color} color [inherit]
36
- /// @prop {Dimension} max-width [90vw]
37
- /// @prop {Dimension} max-height [25rem]
38
- /// @prop {Dimension} padding [1rem]
39
- /// @prop {Dimension} padding-large [2rem]
40
- /// @prop {Dimension} type-size [null]
41
- /// @prop {Number} z-index [true]
42
- /// @prop {CssValue} box-shadow [true]
43
- /// @prop {CssValue} box-shadow-footer [0 0 4px]
44
- /// @prop {String} box-shadow-footer-color ["box-shadow"]
45
- /// @prop {Color} header-background-color [#ccc]
46
- /// @prop {Color} header-color [null]
47
- /// @prop {Color} header-media-background-color [black]
48
- /// @prop {Dimension} header-padding-y [0.25rem]
49
- /// @prop {Color} footer-background-color [#ccc]
50
- /// @prop {Color} footer-color [null]
51
- /// @prop {Dimension} footer-padding-y [0.25rem]
52
- /// @prop {Dimension} footer-padding-y-large [0.5rem]
53
- /// @prop {Color} tooltip-background-color [white]
54
- /// @prop {Color} tooltip-color [null]
55
- /// @prop {Dimension} tooltip-max-width [20rem]
56
- /// @prop {Dimension} tooltip-padding [0.5rem]
57
- /// @prop {Dimension} tooltip-width [auto]
58
- /// @prop {Dimension} width [15rem]
59
- /// @prop {Dimension} width-large [30rem]
60
- /// @prop {Dimension} width-large-x [50rem]
32
+ /// @prop {Dimension} arrow-size [16px] Size of the dropdown arrow.
33
+ /// @prop {Boolean} arrow-box-shadow [true] When true the arrow will get the popover's box shadow. Note if the box shadow is not a list (for example custom property), the mask won't be calculated from the box-shadow (use arrow-box-shadow-extent to specify manually)
34
+ /// @prop {Number} arrow-box-shadow-extent [null] If set will determine the amount of overlap added to the arrow mask, else it's calculated automatically by the box-shadow option (can be used if box-shadow is custom property)
35
+ /// @prop {Color} background-color [white] Background color of the popover.
36
+ /// @prop {Dimension} border-radius [6px] Border radius of the popover.
37
+ /// @prop {Color} color [inherit] Text color of the popover.
38
+ /// @prop {Dimension} max-width [90vw] Max width of the popover.
39
+ /// @prop {Dimension} max-height [25rem] Max height of the popover.
40
+ /// @prop {Dimension} padding [1rem] Padding of the popover.
41
+ /// @prop {Dimension} padding-large [2rem] Padding of the popover if using "--large" or "--large-x" styling.
42
+ /// @prop {Dimension} type-size [null] Font size of the popover.
43
+ /// @prop {Number} z-index [true] z-index of the popover.
44
+ /// @prop {CssValue} box-shadow [true] Box shadow of the popover.
45
+ /// @prop {Color} header-background-color [#ccc] Background color of the popover header
46
+ /// @prop {Color} header-color [null] Text color for the header.
47
+ /// @prop {Color} header-media-background-color [black] background color for header media.
48
+ /// @prop {Dimension} header-padding-y [0.25rem] Vertical padding of the header.
49
+ /// @prop {Color} footer-background-color [#ccc] Background color of the footer.
50
+ /// @prop {Color} footer-border-top [1px solid #dfdfdf] Optional border used to separate the content from footer
51
+ /// @prop {Color} footer-color [null] Text color of the footer.
52
+ /// @prop {Dimension} footer-padding-y [0.25rem] Vertical padding of the footer.
53
+ /// @prop {Dimension} footer-padding-y-large [0.5rem] Vertical padding of the footer if using "--large" or "--large-x" styling.
54
+ /// @prop {Color} tooltip-background-color [white] Background color of the tooltip.
55
+ /// @prop {Color} tooltip-color [null] Font color of the tooltip.
56
+ /// @prop {Dimension} tooltip-max-width [20rem] Max width of the tooltip.
57
+ /// @prop {Dimension} tooltip-padding [0.5rem] Padding of the tooltip.
58
+ /// @prop {Dimension} tooltip-width [auto] Width of the tooltip.
59
+ /// @prop {Dimension} width [15rem] Width of the popover.
60
+ /// @prop {Dimension} width-large [30rem] Width of the popover if using "--large".
61
+ /// @prop {Dimension} width-large-x [50rem] Width of the popover if using "--large-x".
61
62
 
62
63
  $config: (
63
64
  "arrow-size" : 16px,
65
+ "arrow-box-shadow" : true,
66
+ "arrow-box-shadow-extent" : null,
64
67
  "background-color" : white,
65
68
  "border-radius" : 6px,
66
69
  "color" : inherit,
@@ -70,14 +73,12 @@ $config: (
70
73
  "padding-large" : 2rem,
71
74
  "type-size" : null,
72
75
  "z-index" : true,
73
-
74
76
  "box-shadow" : true,
75
- "box-shadow-footer" : 0 0 4px,
76
- "box-shadow-footer-color" : "box-shadow",
77
77
  "header-background-color" : #ccc,
78
78
  "header-color" : null,
79
79
  "header-media-background-color": black,
80
80
  "header-padding-y" : 0.25rem,
81
+ "footer-border-top" : 1px solid #dfdfdf,
81
82
  "footer-background-color" : #ccc,
82
83
  "footer-color" : null,
83
84
  "footer-padding-y" : 0.25rem,
@@ -117,39 +118,9 @@ $config: (
117
118
 
118
119
  @mixin styles {
119
120
  $prefix: selector.class("popover");
120
- $arrow-size-half: math.div(get("arrow-size"), 2);
121
121
 
122
122
  @if (get("arrow-size")) {
123
- #{ $prefix }__arrow {
124
- display: block;
125
- visibility: hidden;
126
- z-index: 1;
127
- &,
128
- &:before {
129
- position: absolute;
130
- width: get("arrow-size");
131
- height: get("arrow-size");
132
- background: inherit;
133
- }
134
- &:before {
135
- visibility: visible;
136
- content: '';
137
- transform: rotate(45deg);
138
- // box-shadow: $box-shadow;
139
- }
140
- [data-placement^='top'] > & {
141
- bottom: -($arrow-size-half);
142
- }
143
- [data-placement^='bottom'] > & {
144
- top: -($arrow-size-half);
145
- }
146
- [data-placement^='left'] > & {
147
- right: -($arrow-size-half);
148
- }
149
- [data-placement^='right'] > & {
150
- left: -($arrow-size-half);
151
- }
152
- }
123
+ @include -arrow-styles();
153
124
  }
154
125
  // Default position is on the right of the container (Popper handles positioning)
155
126
  #{ $prefix } {
@@ -197,7 +168,7 @@ $config: (
197
168
  background-color: color.get(get("header-media-background-color"));
198
169
  }
199
170
  #{ $prefix }__footer {
200
- box-shadow: get("box-shadow-footer") color.get(get("box-shadow-footer-color"));
171
+ border-top: get("footer-border-top");
201
172
  padding: get("footer-padding-y") get("padding");
202
173
  color: color.get(get("footer-color"));
203
174
  background-color: color.get(get("footer-background-color"));
@@ -260,4 +231,134 @@ $config: (
260
231
  }
261
232
  }
262
233
  }
234
+ }
235
+
236
+ @mixin -arrow-styles() {
237
+ @if get("arrow-box-shadow") {
238
+ @include -arrow-styles-with-box-shadow();
239
+ } @else {
240
+ @include -arrow-styles-simple();
241
+ }
242
+ }
243
+
244
+ // Internal mixin for original arrow styles without box-shadow
245
+ @mixin -arrow-styles-simple() {
246
+ $prefix: selector.class("popover");
247
+ $size: get("arrow-size");
248
+ $half: math.div($size, 2);
249
+
250
+ #{ $prefix }__arrow {
251
+ visibility: hidden;
252
+ z-index: 1;
253
+ &,
254
+ &::before {
255
+ display: block;
256
+ position: absolute;
257
+ width: $size;
258
+ height: $size;
259
+ background: inherit;
260
+ }
261
+ &::before {
262
+ visibility: visible;
263
+ content: '';
264
+ transform: rotate(45deg);
265
+ }
266
+ [data-placement^="top"] > & {
267
+ bottom: -($half);
268
+ }
269
+ [data-placement^="bottom"] > & {
270
+ top: -($half);
271
+ }
272
+ [data-placement^="left"] > & {
273
+ right: -($half);
274
+ }
275
+ [data-placement^="right"] > & {
276
+ left: -($half);
277
+ }
278
+ }
279
+ // Account for footer and change arrow color when positioned next to it
280
+ #{ $prefix }__footer ~ #{ $prefix }__arrow {
281
+ [data-placement^="top"] > & {
282
+ &::before {
283
+ background-color: get("footer-background-color");
284
+ }
285
+ }
286
+ }
287
+ }
288
+
289
+ // Internal mixin for arrow styles when using the mask (extra pseudo element)
290
+ @mixin -arrow-styles-with-box-shadow() {
291
+ $prefix: selector.class("popover");
292
+ $box-shadow: get("box-shadow");
293
+ $size: get("arrow-size");
294
+ $half: math.div($size, 2);
295
+ $size-info: utils.number-info($size);
296
+ $unitless: map.get($size-info, "value");
297
+ $unit: map.get($size-info, "unit");
298
+ $hypotenuse: utils.hypotenuse($unitless, $unitless);
299
+ $hypotenuse-half: math.div($hypotenuse, 2);
300
+ $manual-extent: get("arrow-box-shadow-extent");
301
+ $shadow-extent: if(
302
+ $manual-extent,
303
+ $manual-extent,
304
+ if(utils.is-list($box-shadow), utils.box-shadow-extent($box-shadow), 5px)
305
+ );
306
+ $overlap: utils.strip-unit($shadow-extent);
307
+ $mask-height: utils.add-unit($hypotenuse-half + $overlap, $unit);
308
+ $mask-width: utils.add-unit($hypotenuse + $overlap, $unit);
309
+
310
+ #{ $prefix }__arrow {
311
+ visibility: hidden;
312
+ z-index: 1;
313
+ &,
314
+ &::before,
315
+ &::after {
316
+ display: block;
317
+ position: absolute;
318
+ width: $size;
319
+ height: $size;
320
+ background: inherit;
321
+ }
322
+ &::before,
323
+ &::after {
324
+ visibility: visible;
325
+ content: '';
326
+ }
327
+ &::before {
328
+ box-shadow: get("box-shadow");
329
+ transform: rotate(45deg);
330
+ }
331
+ // Masking shape
332
+ &::after {
333
+ top: 50%;
334
+ left: 50%;
335
+ transform: translateX(-50%);
336
+ height: $mask-height;
337
+ width: $mask-width;
338
+ }
339
+ [data-placement^="top"] > & {
340
+ bottom: -($half);
341
+ transform: rotate(180deg); // Rotate w. mask
342
+ }
343
+ [data-placement^="bottom"] > & {
344
+ top: -($half);
345
+ }
346
+ [data-placement^="left"] > & {
347
+ right: -($half);
348
+ transform: rotate(90deg); // Rotate w. mask
349
+ }
350
+ [data-placement^="right"] > & {
351
+ left: -($half);
352
+ transform: rotate(-90deg); // Rotate w. mask
353
+ }
354
+ }
355
+ // Account for footer and change arrow color when positioned next to it
356
+ #{ $prefix }__footer ~ #{ $prefix }__arrow {
357
+ [data-placement^="top"] > & {
358
+ &::before,
359
+ &::after {
360
+ background-color: get("footer-background-color");
361
+ }
362
+ }
363
+ }
263
364
  }
@@ -21,18 +21,18 @@ $-fallbacks: (
21
21
 
22
22
  /// Module Settings
23
23
  /// @type Map
24
- /// @prop {} body-line-height [true]
25
- /// @prop {} image-margin-bottom [1rem]
26
- /// @prop {} image-margin-top [2.5rem]
27
- /// @prop {} name-margin-bottom [1rem]
28
- /// @prop {} padding-y [2em]
29
- /// @prop {} title-font-style [italic]
30
- /// @prop {} quote-mark-character ["\201c"]
31
- /// @prop {} quote-mark-color [null]
32
- /// @prop {} quote-mark-font-family ["Georgia"]
33
- /// @prop {} quote-mark-font-size [3.75em]
34
- /// @prop {} quote-mark-enabled [true]
35
- /// @prop {} quote-mark-line-height [0.35]
24
+ /// @prop {Number} body-line-height [true]
25
+ /// @prop {Dimension} image-margin-bottom [1rem]
26
+ /// @prop {Dimension} image-margin-top [2.5rem]
27
+ /// @prop {Dimension} name-margin-bottom [1rem]
28
+ /// @prop {Dimension} padding-y [2em]
29
+ /// @prop {CssValue} title-font-style [italic]
30
+ /// @prop {String} quote-mark-character ["\201c"]
31
+ /// @prop {Color} quote-mark-color [null]
32
+ /// @prop {String} quote-mark-font-family ["Georgia"]
33
+ /// @prop {Dimension} quote-mark-font-size [3.75em]
34
+ /// @prop {Boolean} quote-mark-enabled [true]
35
+ /// @prop {Number} quote-mark-line-height [0.35]
36
36
 
37
37
  $config: (
38
38
  "body-line-height" : true,
@@ -83,7 +83,7 @@ $config: (
83
83
  #{ $prefix }__body {
84
84
  line-height: get("body-line-height");
85
85
  @if (get("quote-mark-enabled")) {
86
- &:before {
86
+ &::before {
87
87
  display: block;
88
88
  position: relative;
89
89
  // content: open-quote;