@ulu/frontend 0.1.0-beta.8 → 0.1.0-beta.81

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 (294) hide show
  1. package/CHANGELOG.md +544 -0
  2. package/README.dev.md +3 -3
  3. package/README.md +14 -4
  4. package/dist/ulu-frontend.min.css +1 -1
  5. package/dist/ulu-frontend.min.js +34 -27
  6. package/docs-dev/assets/main.js +8290 -635
  7. package/docs-dev/assets/placeholder/icon-calendar.svg +1 -0
  8. package/docs-dev/assets/placeholder/icon-check.svg +1 -0
  9. package/docs-dev/assets/style.css +789 -338
  10. package/docs-dev/changelog/index.html +6593 -0
  11. package/docs-dev/demos/accordion/index.html +850 -328
  12. package/docs-dev/demos/badge/index.html +5265 -0
  13. package/docs-dev/demos/basic-hero/index.html +111 -0
  14. package/docs-dev/demos/breakpoints-manager/index.html +5276 -0
  15. package/docs-dev/demos/button/index.html +892 -328
  16. package/docs-dev/demos/button-verbose/index.html +5268 -0
  17. package/docs-dev/demos/callout/index.html +895 -332
  18. package/docs-dev/demos/captioned-figure/index.html +850 -327
  19. package/docs-dev/demos/card/index.html +930 -768
  20. package/docs-dev/demos/card-grid/index.html +5387 -0
  21. package/docs-dev/demos/counter-list/index.html +5270 -0
  22. package/docs-dev/demos/css-icons/index.html +873 -327
  23. package/docs-dev/demos/data-grid/index.html +870 -347
  24. package/docs-dev/demos/data-table/index.html +1024 -368
  25. package/docs-dev/demos/details-group/index.html +5297 -0
  26. package/docs-dev/demos/file-save/index.html +850 -327
  27. package/docs-dev/demos/flipcard/index.html +850 -327
  28. package/docs-dev/demos/form-theme/index.html +868 -358
  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 +851 -328
  32. package/docs-dev/demos/list-inline/index.html +850 -327
  33. package/docs-dev/demos/list-lines/index.html +850 -327
  34. package/docs-dev/demos/menu-stack/index.html +884 -346
  35. package/docs-dev/demos/modals/index.html +977 -331
  36. package/docs-dev/demos/nav-strip/index.html +850 -327
  37. package/docs-dev/demos/overlay-section/index.html +939 -346
  38. package/docs-dev/demos/popovers/index.html +1112 -347
  39. package/docs-dev/demos/print/index.html +850 -327
  40. package/docs-dev/demos/pull-quote/index.html +850 -327
  41. package/docs-dev/demos/rule/index.html +863 -328
  42. package/docs-dev/demos/scroll-slider/index.html +72 -106
  43. package/docs-dev/demos/scrollpoints/index.html +851 -328
  44. package/docs-dev/demos/slider/index.html +12 -4
  45. package/docs-dev/demos/spoke-spinner/index.html +850 -327
  46. package/docs-dev/demos/{list-inline.1 → sticky-list}/index.html +883 -357
  47. package/docs-dev/demos/tabs/index.html +886 -327
  48. package/docs-dev/demos/tag/index.html +850 -327
  49. package/docs-dev/demos/theme-toggle/index.html +5309 -0
  50. package/docs-dev/demos/tile-grid-overlay/index.html +12 -4
  51. package/docs-dev/demos/tiles/index.html +850 -327
  52. package/docs-dev/demos/tooltip/index.html +850 -327
  53. package/docs-dev/guide/building-stylesheet/index.html +850 -327
  54. package/docs-dev/guide/developing-ulu-scss-module/index.html +850 -327
  55. package/docs-dev/guide/index.html +850 -327
  56. package/docs-dev/index.html +850 -327
  57. package/docs-dev/javascript/events/index.html +888 -327
  58. package/docs-dev/javascript/index.html +850 -327
  59. package/docs-dev/javascript/settings/index.html +5435 -0
  60. package/docs-dev/javascript/ui-breakpoints/index.html +862 -341
  61. package/docs-dev/javascript/ui-collapsible/index.html +847 -326
  62. package/docs-dev/javascript/ui-details-group/index.html +5352 -0
  63. package/docs-dev/javascript/ui-dialog/index.html +879 -343
  64. package/docs-dev/javascript/ui-flipcard/index.html +908 -331
  65. package/docs-dev/javascript/ui-grid/index.html +857 -362
  66. package/docs-dev/javascript/ui-modal-builder/index.html +1047 -386
  67. package/docs-dev/javascript/ui-overflow-scroller/index.html +847 -326
  68. package/docs-dev/javascript/ui-overflow-scroller-pager/index.html +847 -326
  69. package/docs-dev/javascript/ui-page/index.html +847 -326
  70. package/docs-dev/javascript/ui-popover/index.html +855 -338
  71. package/docs-dev/javascript/ui-print/index.html +847 -334
  72. package/docs-dev/javascript/ui-print-details/index.html +847 -326
  73. package/docs-dev/javascript/ui-programmatic-modal/index.html +847 -326
  74. package/docs-dev/javascript/ui-proxy-click/index.html +934 -328
  75. package/docs-dev/javascript/ui-resizer/index.html +926 -336
  76. package/docs-dev/javascript/ui-scroll-slider/index.html +885 -332
  77. package/docs-dev/javascript/ui-scrollpoint/index.html +853 -339
  78. package/docs-dev/javascript/ui-slider/index.html +1043 -331
  79. package/docs-dev/javascript/ui-tabs/index.html +858 -374
  80. package/docs-dev/javascript/ui-theme-toggle/index.html +5440 -0
  81. package/docs-dev/javascript/ui-tooltip/index.html +854 -337
  82. package/docs-dev/javascript/utils-class-logger/index.html +848 -327
  83. package/docs-dev/javascript/utils-css/index.html +5254 -0
  84. package/docs-dev/javascript/utils-dom/index.html +887 -446
  85. package/docs-dev/javascript/utils-file-save/index.html +847 -326
  86. package/docs-dev/javascript/utils-floating-ui/index.html +847 -326
  87. package/docs-dev/javascript/utils-id/index.html +847 -326
  88. package/docs-dev/javascript/utils-pause-youtube-video/index.html +847 -326
  89. package/docs-dev/javascript/utils-system/index.html +5557 -0
  90. package/docs-dev/sass/base/color/index.html +847 -326
  91. package/docs-dev/sass/base/elements/index.html +847 -326
  92. package/docs-dev/sass/base/index/index.html +847 -326
  93. package/docs-dev/sass/base/index.html +850 -327
  94. package/docs-dev/sass/base/keyframes/index.html +847 -326
  95. package/docs-dev/sass/base/layout/index.html +847 -326
  96. package/docs-dev/sass/base/normalize/index.html +847 -326
  97. package/docs-dev/sass/base/print/index.html +847 -326
  98. package/docs-dev/sass/base/root/index.html +847 -326
  99. package/docs-dev/sass/base/typography/index.html +847 -326
  100. package/docs-dev/sass/components/accordion/index.html +866 -338
  101. package/docs-dev/sass/components/adaptive-spacing/index.html +847 -326
  102. package/docs-dev/sass/components/badge/index.html +869 -337
  103. package/docs-dev/sass/components/basic-hero/index.html +5415 -0
  104. package/docs-dev/sass/components/button/index.html +847 -326
  105. package/docs-dev/sass/components/button-verbose/index.html +933 -337
  106. package/docs-dev/sass/components/callout/index.html +958 -418
  107. package/docs-dev/sass/components/captioned-figure/index.html +970 -334
  108. package/docs-dev/sass/components/card/index.html +939 -346
  109. package/docs-dev/sass/components/card-grid/index.html +847 -326
  110. package/docs-dev/sass/components/counter-list/index.html +5497 -0
  111. package/docs-dev/sass/components/css-icon/index.html +864 -336
  112. package/docs-dev/sass/components/data-grid/index.html +868 -340
  113. package/docs-dev/sass/components/data-table/index.html +1063 -352
  114. package/docs-dev/sass/components/fill-context/index.html +847 -326
  115. package/docs-dev/sass/components/flipcard/index.html +888 -336
  116. package/docs-dev/sass/components/flipcard-grid/index.html +847 -326
  117. package/docs-dev/sass/components/form-theme/index.html +1063 -446
  118. package/docs-dev/sass/components/hero/index.html +903 -334
  119. package/docs-dev/sass/components/horizontal-rule/index.html +847 -326
  120. package/docs-dev/sass/components/image-grid/index.html +847 -326
  121. package/docs-dev/sass/components/index/index.html +860 -336
  122. package/docs-dev/sass/components/index.html +850 -327
  123. package/docs-dev/sass/components/links/index.html +847 -326
  124. package/docs-dev/sass/components/list-inline/index.html +847 -326
  125. package/docs-dev/sass/components/list-lines/index.html +847 -326
  126. package/docs-dev/sass/components/list-ordered/index.html +847 -326
  127. package/docs-dev/sass/components/list-unordered/index.html +847 -326
  128. package/docs-dev/sass/components/menu-stack/index.html +881 -347
  129. package/docs-dev/sass/components/modal/index.html +898 -342
  130. package/docs-dev/sass/components/nav-strip/index.html +855 -334
  131. package/docs-dev/sass/components/overlay-section/index.html +855 -334
  132. package/docs-dev/sass/components/pager/index.html +847 -326
  133. package/docs-dev/sass/components/placeholder-block/index.html +847 -326
  134. package/docs-dev/sass/components/popover/index.html +904 -347
  135. package/docs-dev/sass/components/pull-quote/index.html +859 -338
  136. package/docs-dev/sass/components/ratio-box/index.html +855 -334
  137. package/docs-dev/sass/components/rule/index.html +848 -327
  138. package/docs-dev/sass/components/scroll-slider/index.html +855 -346
  139. package/docs-dev/sass/components/skip-link/index.html +847 -326
  140. package/docs-dev/sass/components/slider/index.html +897 -388
  141. package/docs-dev/sass/components/spoke-spinner/index.html +849 -328
  142. package/docs-dev/sass/components/sticky-list/index.html +5633 -0
  143. package/docs-dev/sass/components/tabs/index.html +872 -336
  144. package/docs-dev/sass/components/tag/index.html +849 -328
  145. package/docs-dev/sass/components/tile-button/index.html +847 -326
  146. package/docs-dev/sass/components/tile-grid/index.html +847 -326
  147. package/docs-dev/sass/components/tile-grid-overlay/index.html +847 -326
  148. package/docs-dev/sass/components/vignette/index.html +861 -334
  149. package/docs-dev/sass/components/wysiwyg/index.html +847 -326
  150. package/docs-dev/sass/core/breakpoint/index.html +931 -358
  151. package/docs-dev/sass/core/button/index.html +847 -326
  152. package/docs-dev/sass/core/color/index.html +1019 -366
  153. package/docs-dev/sass/core/cssvar/index.html +847 -326
  154. package/docs-dev/sass/core/element/index.html +1108 -381
  155. package/docs-dev/sass/core/index.html +847 -326
  156. package/docs-dev/sass/core/layout/index.html +903 -363
  157. package/docs-dev/sass/core/path/index.html +847 -326
  158. package/docs-dev/sass/core/selector/index.html +847 -326
  159. package/docs-dev/sass/core/typography/index.html +847 -326
  160. package/docs-dev/sass/core/units/index.html +857 -330
  161. package/docs-dev/sass/core/utils/index.html +2104 -476
  162. package/docs-dev/sass/helpers/color/index.html +847 -326
  163. package/docs-dev/sass/helpers/display/index.html +848 -327
  164. package/docs-dev/sass/helpers/index/index.html +847 -326
  165. package/docs-dev/sass/helpers/index.html +850 -327
  166. package/docs-dev/sass/helpers/print/index.html +759 -298
  167. package/docs-dev/sass/helpers/typography/index.html +847 -326
  168. package/docs-dev/sass/helpers/units/index.html +847 -326
  169. package/docs-dev/sass/helpers/utilities/index.html +849 -328
  170. package/docs-dev/sass/index.html +850 -327
  171. package/js/events/index.js +17 -5
  172. package/js/index.js +1 -0
  173. package/js/settings.js +97 -0
  174. package/js/ui/breakpoints.js +19 -16
  175. package/js/ui/collapsible.js +8 -1
  176. package/js/ui/details-group.js +112 -0
  177. package/js/ui/dialog.js +132 -45
  178. package/js/ui/dialog.todo +2 -36
  179. package/js/ui/flipcard.js +37 -57
  180. package/js/ui/grid.js +15 -13
  181. package/js/ui/index.js +1 -0
  182. package/js/ui/modal-builder.js +126 -69
  183. package/js/ui/overflow-scroller.js +6 -4
  184. package/js/ui/page.js +2 -2
  185. package/js/ui/popover.js +38 -38
  186. package/js/ui/print.js +16 -25
  187. package/js/ui/programmatic-modal.js +9 -3
  188. package/js/ui/proxy-click.js +50 -36
  189. package/js/ui/resizer.js +186 -36
  190. package/js/ui/scroll-slider.js +24 -30
  191. package/js/ui/scrollpoint.js +29 -64
  192. package/js/ui/slider.js +108 -63
  193. package/js/ui/tabs.js +23 -36
  194. package/js/ui/theme-toggle.js +332 -94
  195. package/js/ui/tooltip.js +27 -32
  196. package/js/utils/class-logger.js +3 -3
  197. package/js/utils/css.js +13 -0
  198. package/js/utils/dom.js +23 -64
  199. package/js/utils/font-awesome.js +19 -0
  200. package/js/utils/index.js +2 -1
  201. package/js/utils/system.js +155 -0
  202. package/package.json +23 -8
  203. package/scss/README.md +4 -0
  204. package/scss/_breakpoint.scss +38 -4
  205. package/scss/_color.scss +40 -9
  206. package/scss/_element.scss +108 -2
  207. package/scss/_layout.scss +7 -8
  208. package/scss/_units.scss +3 -2
  209. package/scss/_utils.scss +380 -16
  210. package/scss/components/README.todos +14 -0
  211. package/scss/components/_accordion.scss +33 -19
  212. package/scss/components/_badge.scss +23 -4
  213. package/scss/components/_basic-hero.scss +112 -0
  214. package/scss/components/_button-verbose.scss +100 -18
  215. package/scss/components/_callout.scss +125 -78
  216. package/scss/components/_captioned-figure.scss +17 -0
  217. package/scss/components/_card-grid.scss +1 -1
  218. package/scss/components/_card.scss +246 -74
  219. package/scss/components/_counter-list.scss +151 -0
  220. package/scss/components/_css-icon.scss +35 -21
  221. package/scss/components/_data-grid.scss +55 -9
  222. package/scss/components/_data-table.scss +39 -3
  223. package/scss/components/_flipcard.scss +8 -3
  224. package/scss/components/_form-theme.scss +119 -108
  225. package/scss/components/_hero.scss +12 -10
  226. package/scss/components/_index.scss +18 -0
  227. package/scss/components/_menu-stack.scss +42 -26
  228. package/scss/components/_modal.scss +58 -29
  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 +22 -4
  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/events/index.d.ts +10 -1
  245. package/types/events/index.d.ts.map +1 -1
  246. package/types/index.d.ts +1 -0
  247. package/types/settings.d.ts +70 -0
  248. package/types/settings.d.ts.map +1 -0
  249. package/types/ui/breakpoints.d.ts +14 -14
  250. package/types/ui/breakpoints.d.ts.map +1 -1
  251. package/types/ui/collapsible.d.ts.map +1 -1
  252. package/types/ui/details-group.d.ts +38 -0
  253. package/types/ui/details-group.d.ts.map +1 -0
  254. package/types/ui/dialog.d.ts +20 -14
  255. package/types/ui/dialog.d.ts.map +1 -1
  256. package/types/ui/flipcard.d.ts +16 -10
  257. package/types/ui/flipcard.d.ts.map +1 -1
  258. package/types/ui/grid.d.ts +4 -6
  259. package/types/ui/grid.d.ts.map +1 -1
  260. package/types/ui/index.d.ts +2 -1
  261. package/types/ui/modal-builder.d.ts +116 -11
  262. package/types/ui/modal-builder.d.ts.map +1 -1
  263. package/types/ui/overflow-scroller.d.ts +2 -2
  264. package/types/ui/overflow-scroller.d.ts.map +1 -1
  265. package/types/ui/popover.d.ts +6 -7
  266. package/types/ui/popover.d.ts.map +1 -1
  267. package/types/ui/print.d.ts +0 -4
  268. package/types/ui/print.d.ts.map +1 -1
  269. package/types/ui/programmatic-modal.d.ts.map +1 -1
  270. package/types/ui/proxy-click.d.ts +19 -3
  271. package/types/ui/proxy-click.d.ts.map +1 -1
  272. package/types/ui/resizer.d.ts +39 -12
  273. package/types/ui/resizer.d.ts.map +1 -1
  274. package/types/ui/scroll-slider.d.ts +5 -7
  275. package/types/ui/scroll-slider.d.ts.map +1 -1
  276. package/types/ui/scrollpoint.d.ts +3 -8
  277. package/types/ui/scrollpoint.d.ts.map +1 -1
  278. package/types/ui/slider.d.ts +33 -14
  279. package/types/ui/slider.d.ts.map +1 -1
  280. package/types/ui/tabs.d.ts +6 -8
  281. package/types/ui/tabs.d.ts.map +1 -1
  282. package/types/ui/theme-toggle.d.ts +51 -7
  283. package/types/ui/theme-toggle.d.ts.map +1 -1
  284. package/types/ui/tooltip.d.ts +3 -5
  285. package/types/ui/tooltip.d.ts.map +1 -1
  286. package/types/utils/css.d.ts +11 -0
  287. package/types/utils/css.d.ts.map +1 -0
  288. package/types/utils/dom.d.ts +12 -32
  289. package/types/utils/dom.d.ts.map +1 -1
  290. package/types/utils/font-awesome.d.ts +5 -0
  291. package/types/utils/font-awesome.d.ts.map +1 -0
  292. package/types/utils/index.d.ts +2 -1
  293. package/types/utils/system.d.ts +113 -0
  294. package/types/utils/system.d.ts.map +1 -0
@@ -14,10 +14,6 @@
14
14
 
15
15
  // Used for function fallback
16
16
  $-fallbacks: (
17
- "border" : (
18
- "function" : meta.get-function("get-rule-style", false, "element"),
19
- "property" : "light"
20
- ),
21
17
  "border-radius" : (
22
18
  "function" : meta.get-function("get", false, "element"),
23
19
  "property" : "border-radius"
@@ -27,69 +23,56 @@ $-fallbacks: (
27
23
  /// Module Settings
28
24
  /// @type Map
29
25
  /// @prop {Color} background-color [rgb(240, 240, 240)] The background color of the Callout.
30
- /// @prop {Boolean} border [true] The border of the Callout.
26
+ /// @prop {Color} border-color ["rule-light"] The border color of the Callout.
31
27
  /// @prop {Boolean} border-radius [true] The border radius of the Callout.
28
+ /// @prop {Dimension} border-width [1px] The border width of the Callout.
32
29
  /// @prop {CssValue} box-shadow [none] The box-shadow of the Callout.
33
- /// @prop {Boolean} left-cap [false] Toggles the use of left caps in styled callouts.
34
- /// @prop {Color} left-cap-color [green] Color of the left cap.
35
- /// @prop {Dimension} left-cap-width [0.5rem] Width of the left cap.
30
+ /// @prop {Boolean} caps-disabled [false] If set will not output any cap styles for both base and styles
31
+ /// @prop {Boolean} cap [false] Toggles the use of caps on default callout
32
+ /// @prop {Boolean} cap-side ["left"] The side that gets the cap
33
+ /// @prop {Number} cap-match-radius [true] The cap should have be rounded to match the parent's border radius
34
+ /// @prop {Map} cap-options The options for cap (see element.cap for options)
36
35
  /// @prop {Dimension} margin [2rem] Bottom margin of the Callout.
37
36
  /// @prop {Dimension} padding [1.5rem] Padding of the Callout.
38
37
 
39
38
  $config: (
40
39
  "background-color" : rgb(240, 240, 240),
41
- "border" : true,
42
- "border-radius" : true,
40
+ "border-color" : "rule-light",
41
+ "border-radius" : 6px,
42
+ "border-width" : 1px,
43
43
  "box-shadow" : none,
44
- "left-cap" : false,
45
- "left-cap-color" : green,
46
- "left-cap-width" : 0.5rem,
44
+ "caps-disabled" : false,
45
+ "cap" : false,
46
+ "cap-side" : "left",
47
+ "cap-match-radius" : false,
48
+ "cap-options" : (
49
+ "color" : rgb(160, 160, 160),
50
+ "size" : 0.5rem,
51
+ ),
47
52
  "margin" : 2rem,
48
53
  "padding" : 1.5rem,
49
54
  ) !default;
50
55
 
56
+ /// Styles Map (for unique variations/modifiers)
57
+ /// - Adjust this with set-styles
58
+ /// @type Map
59
+
51
60
  $styles: (
52
- "background-dark" : (
53
- "background-color" : rgb(240, 240, 240)
54
- ),
55
61
  "outline" : (
56
62
  "background-color": transparent
57
63
  ),
58
- "light" : (
59
- "background-color" : white,
60
- "border-color" : gray
61
- ),
62
- "informative" : (
63
- "background-color" : #e7f6f8,
64
- "left-cap-color" : #00bde3,
65
- "left-cap" : true,
66
- "left-cap-width": 0.5rem
64
+ "info" : (
65
+ "background-color" : "info-background",
67
66
  ),
68
67
  "warning" : (
69
- "background-color" : #faf3d1,
70
- "left-cap-color" : #ffbe2e,
71
- "left-cap" : true,
72
- "left-cap-width": 0.5rem
68
+ "background-color" : "info-background",
73
69
  ),
74
70
  "success" : (
75
- "background-color" : #ecf3ec,
76
- "left-cap-color" : #00a91c,
77
- "left-cap" : true,
78
- "left-cap-width": 0.5rem
71
+ "background-color" : "success-background",
79
72
  ),
80
73
  "danger" : (
81
- "background-color" : #f4e3db,
82
- "left-cap-color" : #d54309,
83
- "left-cap" : true,
84
- "left-cap-width": 0.5rem
74
+ "background-color" : "danger-background",
85
75
  ),
86
- "emergency" : (
87
- "background-color" : #9c3d10,
88
- "left-cap-color" : #9c3d10,
89
- "left-cap" : true,
90
- "color" : white,
91
- "left-cap-width": 0.5rem
92
- )
93
76
  ) !default;
94
77
 
95
78
  /// Change modules $config
@@ -112,64 +95,128 @@ $styles: (
112
95
  }
113
96
 
114
97
  /// Set callout style variations
115
- /// @param {Map} $changes Map of changes (options for style include [background-color, color, border, border-radius, border-color, box-shadow, padding, left-cap, left-cap-width, left-cap-color]
98
+ /// - Styles that modify padding when using mix-match caps on/off should be included last
99
+ /// @param {Map} $changes Map of changes (options for style include [background-color, color, border-color, border-radius, border-width, box-shadow, padding, cap, cap-options]
116
100
  /// @param {String} $merge-mode Merge mode see utils.map-merge() [null|"deep"|"overwrite"]
117
101
 
118
102
  @mixin set-styles($changes, $merge-mode: null) {
119
103
  $styles: utils.map-merge($styles, $changes, $merge-mode) !global;
120
104
  }
121
105
 
122
- /// Output styling for a callout that adds a left cap
123
- /// @param {Dimension} $width The width of the left cap
124
- /// @param {Color} $color The left cap color
125
-
126
- @mixin left-cap($width: get("left-cap-width"), $color: get("left-cap-color")) {
127
- position: relative;
128
- border-top-left-radius: 0;
129
- border-bottom-left-radius: 0;
130
- &::before {
131
- position: absolute;
132
- content: "";
133
- left: 0;
134
- top: 0;
135
- bottom: 0;
136
- width: $width;
137
- background-color: color.get($color);
138
- }
139
- }
140
-
141
106
  /// Output component stylesheet
142
107
  /// @example scss
143
108
  /// @include ulu.component-callout-styles();
144
109
 
145
110
  @mixin styles {
146
- $prefix: selector.class("callout");
111
+ $prefix: selector.class("callout");
112
+ $padding: get("padding");
113
+ $padding-info: utils.get-spacing($padding);
114
+ $cap-options: get("cap-options");
115
+ $cap-size: map.get($cap-options, "size");
116
+ $cap-side: get("cap-side");
147
117
 
148
118
  #{ $prefix } {
119
+ position: relative; // For cap
149
120
  background-color: color.get(get("background-color"));
150
- padding: get("padding");
151
- border: get("border");
121
+ padding: $padding;
122
+ border: get("border-width") solid color.get(get("border-color"));
152
123
  margin-bottom: get("margin");
153
124
  box-shadow: get("box-shadow");
154
125
  border-radius: get("border-radius");
155
126
  & >:first-child {
156
127
  margin-top: 0;
157
128
  }
158
- @if get("left-cap") {
159
- @include left-cap();
129
+
130
+ // If we have left cap on default we reuse this for all
131
+ // Else we will print it out manually for each unique style
132
+ @if (not get("caps-disabled")) {
133
+ $cap-defaults: (
134
+ "offset" : get("border-width"),
135
+ "border-radius" : if(get("cap-match-radius"), get("border-radius"), null),
136
+ // "padding-adjust" : map.get($padding-info, $cap-side)
137
+ );
138
+ @include element.cap(
139
+ $side: $cap-side,
140
+ $options: map.merge($cap-defaults, $cap-options)
141
+ );
142
+ }
143
+
144
+ // If the left cap is disabled we still include it's CSS but we hide it
145
+ // so that other styles of callouts can use it
146
+ @if (not get("cap")) {
147
+ &::before {
148
+ content: none;
149
+ }
150
+ // Since this is hidden and reused we need to not use padding adjust unless it
151
+ // was visible
152
+ } @else if ($cap-size) {
153
+ padding-#{ $cap-side }: calc(map.get($padding-info, $cap-side) + $cap-size);
160
154
  }
161
155
  }
156
+
157
+ @include -output-style-modifiers();
158
+ }
159
+
160
+ // Output Each Style Modifier
161
+ // - Note if cap is not disabled this will just update appearance values of cap styling
162
+ @mixin -output-style-modifiers() {
163
+ $prefix: selector.class("callout");
164
+ $caps-enabled: not get("caps-disabled");
165
+ $cap-side: get("cap-side");
166
+
162
167
  @each $name, $style in $styles {
168
+ $cap: map.get($style, "cap");
169
+ $padding: map.get($style, "padding");
170
+ $border-radius: map.get($style, "border-radius");
171
+ $background-color: map.get($style, "background-color");
172
+ $color: map.get($style, "color");
173
+ $border-color: map.get($style, "border-color");
174
+ $border-width: map.get($style, "border-width");
175
+ $box-shadow: map.get($style, "box-shadow");
176
+ $cap-match-radius: map.get($style, "cap-match-radius");
177
+
163
178
  #{ $prefix }--#{ $name } {
164
- background-color: color.get(map.get($style, "background-color"));
165
- color: color.get(map.get($style, "color"));
166
- border: map.get($style, "border");
167
- border-radius: map.get($style, "border-radius");
168
- border-color: color.get(map.get($style, "border-color"));
169
- box-shadow: map.get($style, "box-shadow");
170
- padding: map.get($style, "padding");
171
- @if map.get($style, "left-cap") {
172
- @include left-cap( map.get($style, "left-cap-width"), map.get($style, "left-cap-color"));
179
+ background-color: color.get($background-color);
180
+ color: color.get($color);
181
+ border-radius: $border-radius;
182
+ border-color: color.get($border-color);
183
+ border-width: $border-width;
184
+ box-shadow: $box-shadow;
185
+ padding: $padding;
186
+
187
+ @if ($cap and $caps-enabled) {
188
+ $match-radius: utils.if-type("bool", $cap-match-radius, get("cap-match-radius"));
189
+ // Padding adjust always has to be set (since size could change or padding)
190
+ $padding-info: utils.get-spacing(if($padding, $padding, get("padding")));
191
+ $cap-radius: utils.if-type("number", $border-radius, get("border-radius"));
192
+ $cap-options: utils.ensure-map(map.get($style, "cap-options"));
193
+ $cap-defaults: (
194
+ "size" : map.get(get("cap-options"), "size"),
195
+ "padding-adjust" : map.get($padding-info, $cap-side),
196
+ "offset" : $border-width,
197
+ "border-radius" : if($match-radius, $cap-radius, null)
198
+ );
199
+
200
+ @include element.cap-appearance(
201
+ $side: $cap-side,
202
+ $options: map.merge($cap-defaults, $cap-options),
203
+ $before: true
204
+ );
205
+
206
+ // Because the main callout's cap may not be visible
207
+ &::before {
208
+ content: "";
209
+ }
210
+ // If set to false remove the cap (if enabled) and reset default cap padding adjust
211
+ } @else if ($cap == false and $caps-enabled) {
212
+ // if this style doesn't set padding
213
+ @if (not $padding) {
214
+ $padding-info: utils.get-spacing(get("padding"));
215
+ padding-#{ $cap-side }: map.get($padding-info, $cap-side);
216
+ }
217
+ &::before {
218
+ content: none;
219
+ }
173
220
  }
174
221
  }
175
222
  }
@@ -30,6 +30,23 @@ $-fallbacks: (
30
30
 
31
31
  /// Module Settings
32
32
  /// @type Map
33
+ /// @prop {Boolean} text-alignment-matches [false] Toggles matching alignment.
34
+ /// @prop {Boolean} text-alignment-matches-center-only [true] Toggles matching alignment, but only if center.
35
+ /// @prop {Color} background-color [white] Background color of the component.
36
+ /// @prop {CssValue} box-shadow [true] Box shadow the captioned figure.
37
+ /// @prop {Dimension} margin-bottom [true] Bottom margin of the captioned figure.
38
+ /// @prop {Number} line-height [true] Line height of the captioned figure caption.
39
+ /// @prop {Dimension} caption-padding [0.5em] Padding of the captioned figure caption.
40
+ /// @prop {Color} color [null] Font color of the captioned figure caption.
41
+ /// @prop {String} type-size ["small"] Font size of the captioned figure caption.
42
+ /// @prop {Dimension} caption-max-width [min(100%, 15em)] Max width of the captioned figure caption.
43
+ /// @prop {Color} caption-background-color [rgba(255,255,255,0.7)] background color of the captioned figure caption.
44
+ /// @prop {CssValue} caption-backdrop-filter [blur(2px)] Filter of the backdrop of the captioned figure.
45
+ /// @prop {Color} traditional-caption-color [null] Traditional style for font color.
46
+ /// @prop {Color} traditional-caption-background-color [transparent] Traditional style for caption background color.
47
+ /// @prop {Dimension} traditional-caption-padding [0.5em] Traditional style for caption padding.
48
+ /// @prop {Dimension} traditional-caption-max-width [35em] Traditional style for caption max width.
49
+ /// @prop {CssValue} traditional-caption-text-align [right] Traditional style for caption text-align.
33
50
 
34
51
  $config: (
35
52
  "text-alignment-matches" : false,
@@ -51,7 +51,7 @@ $config: (
51
51
 
52
52
  #{ $prefix } {
53
53
  display: grid;
54
- grid-template-columns: get("template-columns");
54
+ grid-template-columns: get("template-columns");
55
55
  grid-auto-rows: 1fr;
56
56
  gap: get("gap");
57
57
  margin: get("gap") 0;