@ulu/frontend 0.1.0-beta.11 → 0.1.0-beta.111

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 (342) hide show
  1. package/CHANGELOG.md +680 -0
  2. package/GEMINI.md +9 -0
  3. package/README.dev.md +3 -3
  4. package/README.md +14 -4
  5. package/dist/ulu-frontend.min.css +1 -1
  6. package/dist/ulu-frontend.min.js +36 -29
  7. package/docs-dev/.nojekyll +1 -0
  8. package/docs-dev/assets/main.js +832 -421
  9. package/docs-dev/assets/placeholder/icon-calendar.svg +1 -0
  10. package/docs-dev/assets/placeholder/icon-check.svg +1 -0
  11. package/docs-dev/assets/style.css +629 -233
  12. package/docs-dev/changelog/index.html +7484 -0
  13. package/docs-dev/changelog/updates-and-changes/index.html +5109 -0
  14. package/docs-dev/demos/accordion/index.html +1442 -364
  15. package/docs-dev/demos/badge/index.html +5835 -0
  16. package/docs-dev/demos/badge-stack/index.html +5816 -0
  17. package/docs-dev/demos/basic-hero/index.html +111 -0
  18. package/docs-dev/demos/breadcrumb/index.html +5870 -0
  19. package/docs-dev/demos/breakpoints-manager/index.html +5846 -0
  20. package/docs-dev/demos/button/index.html +1490 -356
  21. package/docs-dev/demos/button-group/index.html +5832 -0
  22. package/docs-dev/demos/button-verbose/index.html +5838 -0
  23. package/docs-dev/demos/callout/index.html +1469 -349
  24. package/docs-dev/demos/captioned-figure/index.html +1446 -353
  25. package/docs-dev/demos/card/index.html +1518 -786
  26. package/docs-dev/demos/card-grid/index.html +5957 -0
  27. package/docs-dev/demos/card-new/index.html +5088 -0
  28. package/docs-dev/demos/card-old/index.html +5223 -0
  29. package/docs-dev/demos/card.1/index.html +5223 -0
  30. package/docs-dev/demos/card.TRASH/index.html +5541 -0
  31. package/docs-dev/demos/counter-list/index.html +5840 -0
  32. package/docs-dev/demos/css-icons/index.html +1466 -350
  33. package/docs-dev/demos/data-grid/index.html +1446 -353
  34. package/docs-dev/demos/data-table/index.html +1621 -395
  35. package/docs-dev/demos/details-group/index.html +5867 -0
  36. package/docs-dev/demos/donut-chart/index.html +5874 -0
  37. package/docs-dev/demos/file-save/index.html +1446 -353
  38. package/docs-dev/demos/flipcard/index.html +1446 -353
  39. package/docs-dev/demos/form-theme/index.html +1453 -360
  40. package/docs-dev/demos/headline-label/index.html +5802 -0
  41. package/docs-dev/demos/hero/index.html +12 -4
  42. package/docs-dev/demos/image-grid/index.html +12 -4
  43. package/docs-dev/demos/index.html +1447 -354
  44. package/docs-dev/demos/list-inline/index.html +1446 -353
  45. package/docs-dev/demos/list-lines/index.html +1446 -353
  46. package/docs-dev/demos/menu-stack/index.html +1550 -389
  47. package/docs-dev/demos/modals/index.html +1616 -400
  48. package/docs-dev/demos/nav-strip/index.html +1446 -353
  49. package/docs-dev/demos/overlay-section/index.html +1532 -369
  50. package/docs-dev/demos/panel/index.html +5862 -0
  51. package/docs-dev/demos/popovers/index.html +1710 -375
  52. package/docs-dev/demos/print/index.html +1446 -353
  53. package/docs-dev/demos/progress-bar/index.html +5964 -0
  54. package/docs-dev/demos/progress-circle/index.html +6137 -0
  55. package/docs-dev/demos/progress-donut/index.html +6107 -0
  56. package/docs-dev/demos/pull-quote/index.html +1446 -353
  57. package/docs-dev/demos/rail/index.html +5910 -0
  58. package/docs-dev/demos/rule/index.html +1455 -350
  59. package/docs-dev/demos/scroll-slider/index.html +72 -106
  60. package/docs-dev/demos/scrollpoints/index.html +1447 -354
  61. package/docs-dev/demos/skeleton/index.html +5858 -0
  62. package/docs-dev/demos/slider/index.html +12 -4
  63. package/docs-dev/demos/spoke-spinner/index.html +1446 -353
  64. package/docs-dev/demos/sticky-list/index.html +5823 -0
  65. package/docs-dev/demos/tabs/index.html +1474 -345
  66. package/docs-dev/demos/tag/index.html +1463 -358
  67. package/docs-dev/demos/theme-toggle/index.html +5879 -0
  68. package/docs-dev/demos/tile-grid-overlay/index.html +12 -4
  69. package/docs-dev/demos/tiles/index.html +1446 -353
  70. package/docs-dev/demos/tooltip/index.html +1446 -353
  71. package/docs-dev/demos/wysiwyg/index.html +5852 -0
  72. package/docs-dev/guide/building-stylesheet/index.html +1446 -353
  73. package/docs-dev/guide/developing-ulu-scss-module/index.html +1446 -353
  74. package/docs-dev/guide/index.html +1446 -353
  75. package/docs-dev/guide/updates-and-changes/index.html +5033 -0
  76. package/docs-dev/index.html +1446 -353
  77. package/docs-dev/javascript/events/index.html +1476 -345
  78. package/docs-dev/javascript/index.html +1446 -353
  79. package/docs-dev/javascript/settings/index.html +6005 -0
  80. package/docs-dev/javascript/ui-breakpoints/index.html +1466 -375
  81. package/docs-dev/javascript/ui-collapsible/index.html +1451 -360
  82. package/docs-dev/javascript/ui-details-group/index.html +5922 -0
  83. package/docs-dev/javascript/ui-dialog/index.html +1469 -363
  84. package/docs-dev/javascript/ui-flipcard/index.html +1498 -351
  85. package/docs-dev/javascript/ui-grid/index.html +1448 -383
  86. package/docs-dev/javascript/ui-modal-builder/index.html +1661 -430
  87. package/docs-dev/javascript/ui-overflow-scroller/index.html +1451 -360
  88. package/docs-dev/javascript/ui-overflow-scroller-pager/index.html +1451 -360
  89. package/docs-dev/javascript/ui-page/index.html +1451 -360
  90. package/docs-dev/javascript/ui-popover/index.html +1447 -360
  91. package/docs-dev/javascript/ui-print/index.html +1443 -360
  92. package/docs-dev/javascript/ui-print-details/index.html +1451 -360
  93. package/docs-dev/javascript/ui-programmatic-modal/index.html +1451 -360
  94. package/docs-dev/javascript/ui-proxy-click/index.html +1555 -379
  95. package/docs-dev/javascript/ui-resizer/index.html +1756 -400
  96. package/docs-dev/javascript/ui-scroll-slider/index.html +1477 -354
  97. package/docs-dev/javascript/ui-scrollpoint/index.html +1448 -364
  98. package/docs-dev/javascript/ui-slider/index.html +1681 -399
  99. package/docs-dev/javascript/ui-tabs/index.html +1495 -441
  100. package/docs-dev/javascript/ui-theme-toggle/index.html +6010 -0
  101. package/docs-dev/javascript/ui-tooltip/index.html +1454 -367
  102. package/docs-dev/javascript/utils-class-logger/index.html +1452 -361
  103. package/docs-dev/javascript/utils-css/index.html +5824 -0
  104. package/docs-dev/javascript/utils-dom/index.html +1484 -473
  105. package/docs-dev/javascript/utils-file-save/index.html +1451 -360
  106. package/docs-dev/javascript/utils-floating-ui/index.html +1451 -360
  107. package/docs-dev/javascript/utils-id/index.html +1451 -360
  108. package/docs-dev/javascript/utils-pause-youtube-video/index.html +1451 -360
  109. package/docs-dev/javascript/utils-system/index.html +6127 -0
  110. package/docs-dev/sass/base/color/index.html +1451 -360
  111. package/docs-dev/sass/base/elements/index.html +1452 -361
  112. package/docs-dev/sass/base/index/index.html +1452 -361
  113. package/docs-dev/sass/base/index.html +1446 -353
  114. package/docs-dev/sass/base/keyframes/index.html +1452 -361
  115. package/docs-dev/sass/base/layout/index.html +1452 -361
  116. package/docs-dev/sass/base/normalize/index.html +1451 -360
  117. package/docs-dev/sass/base/print/index.html +1452 -361
  118. package/docs-dev/sass/base/root/index.html +1455 -364
  119. package/docs-dev/sass/base/typography/index.html +1451 -360
  120. package/docs-dev/sass/components/accordion/index.html +1538 -406
  121. package/docs-dev/sass/components/adaptive-spacing/index.html +1451 -360
  122. package/docs-dev/sass/components/badge/index.html +1468 -359
  123. package/docs-dev/sass/components/badge-stack/index.html +5991 -0
  124. package/docs-dev/sass/components/basic-hero/index.html +5985 -0
  125. package/docs-dev/sass/components/breadcrumb/index.html +6032 -0
  126. package/docs-dev/sass/components/button/index.html +1451 -360
  127. package/docs-dev/sass/components/button-group/index.html +5983 -0
  128. package/docs-dev/sass/components/button-verbose/index.html +1523 -357
  129. package/docs-dev/sass/components/callout/index.html +1572 -422
  130. package/docs-dev/sass/components/captioned-figure/index.html +1591 -385
  131. package/docs-dev/sass/components/card/index.html +1511 -363
  132. package/docs-dev/sass/components/card-grid/index.html +1451 -360
  133. package/docs-dev/sass/components/counter-list/index.html +6067 -0
  134. package/docs-dev/sass/components/css-icon/index.html +1452 -361
  135. package/docs-dev/sass/components/data-grid/index.html +1465 -367
  136. package/docs-dev/sass/components/data-table/index.html +1648 -369
  137. package/docs-dev/sass/components/fill-context/index.html +1451 -360
  138. package/docs-dev/sass/components/flipcard/index.html +1479 -357
  139. package/docs-dev/sass/components/flipcard-grid/index.html +1451 -360
  140. package/docs-dev/sass/components/form-theme/index.html +1652 -566
  141. package/docs-dev/sass/components/headline-label/index.html +6013 -0
  142. package/docs-dev/sass/components/hero/index.html +1497 -358
  143. package/docs-dev/sass/components/horizontal-rule/index.html +1451 -360
  144. package/docs-dev/sass/components/image-grid/index.html +1451 -360
  145. package/docs-dev/sass/components/index/index.html +1466 -362
  146. package/docs-dev/sass/components/index.html +1446 -353
  147. package/docs-dev/sass/components/links/index.html +1451 -360
  148. package/docs-dev/sass/components/list-inline/index.html +1451 -360
  149. package/docs-dev/sass/components/list-lines/index.html +1451 -360
  150. package/docs-dev/sass/components/list-ordered/index.html +1451 -360
  151. package/docs-dev/sass/components/list-unordered/index.html +1451 -360
  152. package/docs-dev/sass/components/menu-stack/index.html +1476 -371
  153. package/docs-dev/sass/components/modal/index.html +1486 -360
  154. package/docs-dev/sass/components/nav-strip/index.html +1459 -368
  155. package/docs-dev/sass/components/overlay-section/index.html +1459 -368
  156. package/docs-dev/sass/components/pager/index.html +1451 -360
  157. package/docs-dev/sass/components/panel/index.html +6213 -0
  158. package/docs-dev/sass/components/placeholder-block/index.html +1451 -360
  159. package/docs-dev/sass/components/popover/index.html +1497 -370
  160. package/docs-dev/sass/components/progress-bar/index.html +6192 -0
  161. package/docs-dev/sass/components/progress-circle/index.html +6084 -0
  162. package/docs-dev/sass/components/pull-quote/index.html +1463 -372
  163. package/docs-dev/sass/components/rail/index.html +6003 -0
  164. package/docs-dev/sass/components/ratio-box/index.html +1459 -368
  165. package/docs-dev/sass/components/rule/index.html +1452 -361
  166. package/docs-dev/sass/components/scroll-slider/index.html +1447 -368
  167. package/docs-dev/sass/components/skeleton/index.html +6041 -0
  168. package/docs-dev/sass/components/skip-link/index.html +1451 -360
  169. package/docs-dev/sass/components/slider/index.html +1491 -412
  170. package/docs-dev/sass/components/spoke-spinner/index.html +1453 -362
  171. package/docs-dev/sass/components/sticky-list/index.html +6203 -0
  172. package/docs-dev/sass/components/table-sticky/index.html +5707 -0
  173. package/docs-dev/sass/components/tabs/index.html +1472 -366
  174. package/docs-dev/sass/components/tag/index.html +1563 -378
  175. package/docs-dev/sass/components/tile-button/index.html +1451 -360
  176. package/docs-dev/sass/components/tile-grid/index.html +1451 -360
  177. package/docs-dev/sass/components/tile-grid-overlay/index.html +1451 -360
  178. package/docs-dev/sass/components/vignette/index.html +1457 -360
  179. package/docs-dev/sass/components/wysiwyg/index.html +1477 -368
  180. package/docs-dev/sass/core/breakpoint/index.html +1530 -387
  181. package/docs-dev/sass/core/button/index.html +1483 -390
  182. package/docs-dev/sass/core/color/index.html +1666 -443
  183. package/docs-dev/sass/core/cssvar/index.html +1451 -360
  184. package/docs-dev/sass/core/element/index.html +1790 -417
  185. package/docs-dev/sass/core/index.html +1451 -360
  186. package/docs-dev/sass/core/layout/index.html +1491 -381
  187. package/docs-dev/sass/core/path/index.html +1451 -360
  188. package/docs-dev/sass/core/selector/index.html +1451 -360
  189. package/docs-dev/sass/core/typography/index.html +1591 -442
  190. package/docs-dev/sass/core/units/index.html +1453 -356
  191. package/docs-dev/sass/core/utils/index.html +2744 -504
  192. package/docs-dev/sass/helpers/color/index.html +1451 -360
  193. package/docs-dev/sass/helpers/display/index.html +1452 -361
  194. package/docs-dev/sass/helpers/index/index.html +1451 -360
  195. package/docs-dev/sass/helpers/index.html +1446 -353
  196. package/docs-dev/sass/helpers/print/index.html +759 -298
  197. package/docs-dev/sass/helpers/typography/index.html +1451 -360
  198. package/docs-dev/sass/helpers/units/index.html +1451 -360
  199. package/docs-dev/sass/helpers/utilities/index.html +1449 -354
  200. package/docs-dev/sass/index.html +1446 -353
  201. package/js/events/index.js +17 -5
  202. package/js/index.js +1 -0
  203. package/js/settings.js +97 -0
  204. package/js/ui/breakpoints.js +19 -16
  205. package/js/ui/collapsible.js +8 -1
  206. package/js/ui/details-group.js +112 -0
  207. package/js/ui/dialog.js +103 -44
  208. package/js/ui/dialog.todo +2 -36
  209. package/js/ui/flipcard.js +37 -57
  210. package/js/ui/grid.js +15 -13
  211. package/js/ui/index.js +1 -0
  212. package/js/ui/modal-builder.js +127 -70
  213. package/js/ui/overflow-scroller.js +6 -4
  214. package/js/ui/page.js +2 -2
  215. package/js/ui/popover.js +38 -38
  216. package/js/ui/print.js +16 -25
  217. package/js/ui/programmatic-modal.js +9 -3
  218. package/js/ui/proxy-click.js +50 -36
  219. package/js/ui/resizer.js +408 -39
  220. package/js/ui/scroll-slider.js +24 -30
  221. package/js/ui/scrollpoint.js +29 -64
  222. package/js/ui/slider.js +108 -63
  223. package/js/ui/tabs.js +23 -36
  224. package/js/ui/theme-toggle.js +332 -94
  225. package/js/ui/tooltip.js +27 -32
  226. package/js/utils/class-logger.js +3 -3
  227. package/js/utils/css.js +13 -0
  228. package/js/utils/dom.js +23 -64
  229. package/js/utils/font-awesome.js +19 -0
  230. package/js/utils/index.js +2 -1
  231. package/js/utils/system.js +155 -0
  232. package/package.json +23 -8
  233. package/scss/README.md +9 -0
  234. package/scss/_breakpoint.scss +39 -5
  235. package/scss/_button.scss +7 -5
  236. package/scss/_color.scss +71 -40
  237. package/scss/_element.scss +124 -2
  238. package/scss/_layout.scss +7 -8
  239. package/scss/_typography.scss +15 -0
  240. package/scss/_units.scss +3 -2
  241. package/scss/_utils.scss +387 -16
  242. package/scss/base/_elements.scss +0 -1
  243. package/scss/base/_index.scss +1 -1
  244. package/scss/base/_keyframes.scss +15 -0
  245. package/scss/base/_layout.scss +1 -0
  246. package/scss/base/_print.scss +2 -0
  247. package/scss/base/_root.scss +2 -0
  248. package/scss/components/README.todos +1 -0
  249. package/scss/components/_accordion.scss +166 -109
  250. package/scss/components/_badge-stack.scss +84 -0
  251. package/scss/components/_badge.scss +30 -7
  252. package/scss/components/_basic-hero.scss +112 -0
  253. package/scss/components/_breadcrumb.scss +110 -0
  254. package/scss/components/_button-group.scss +90 -0
  255. package/scss/components/_button-verbose.scss +100 -18
  256. package/scss/components/_callout.scss +112 -53
  257. package/scss/components/_captioned-figure.scss +17 -0
  258. package/scss/components/_card.scss +222 -66
  259. package/scss/components/_counter-list.scss +151 -0
  260. package/scss/components/_css-icon.scss +27 -17
  261. package/scss/components/_data-grid.scss +55 -12
  262. package/scss/components/_data-table.scss +31 -0
  263. package/scss/components/_flipcard.scss +8 -3
  264. package/scss/components/_form-theme.scss +106 -95
  265. package/scss/components/_headline-label.scss +83 -0
  266. package/scss/components/_hero.scss +12 -10
  267. package/scss/components/_index.scss +73 -0
  268. package/scss/components/_menu-stack.scss +69 -32
  269. package/scss/components/_modal.scss +51 -23
  270. package/scss/components/_nav-strip.scss +2 -0
  271. package/scss/components/_overlay-section.scss +2 -5
  272. package/scss/components/_panel.scss +246 -0
  273. package/scss/components/_popover.scss +165 -64
  274. package/scss/components/_progress-bar.scss +254 -0
  275. package/scss/components/_progress-circle.scss +175 -0
  276. package/scss/components/_pull-quote.scss +13 -13
  277. package/scss/components/_rail.scss +127 -0
  278. package/scss/components/_ratio-box.scss +2 -5
  279. package/scss/components/_rule.scss +1 -0
  280. package/scss/components/_scroll-slider.scss +1 -5
  281. package/scss/components/_skeleton.scss +126 -0
  282. package/scss/components/_slider.scss +49 -72
  283. package/scss/components/_spoke-spinner.scss +2 -2
  284. package/scss/components/_sticky-list.scss +206 -0
  285. package/scss/components/_tabs.scss +22 -4
  286. package/scss/components/_tag.scss +49 -7
  287. package/scss/components/_vignette.scss +3 -5
  288. package/scss/components/_wysiwyg.scss +21 -13
  289. package/scss/helpers/_display.scss +15 -18
  290. package/scss/helpers/_print.scss +12 -7
  291. package/scss/helpers/_utilities.scss +56 -34
  292. package/types/events/index.d.ts +10 -1
  293. package/types/events/index.d.ts.map +1 -1
  294. package/types/index.d.ts +1 -0
  295. package/types/settings.d.ts +70 -0
  296. package/types/settings.d.ts.map +1 -0
  297. package/types/ui/breakpoints.d.ts +14 -14
  298. package/types/ui/breakpoints.d.ts.map +1 -1
  299. package/types/ui/collapsible.d.ts.map +1 -1
  300. package/types/ui/details-group.d.ts +38 -0
  301. package/types/ui/details-group.d.ts.map +1 -0
  302. package/types/ui/dialog.d.ts +20 -14
  303. package/types/ui/dialog.d.ts.map +1 -1
  304. package/types/ui/flipcard.d.ts +16 -10
  305. package/types/ui/flipcard.d.ts.map +1 -1
  306. package/types/ui/grid.d.ts +4 -6
  307. package/types/ui/grid.d.ts.map +1 -1
  308. package/types/ui/index.d.ts +1 -0
  309. package/types/ui/modal-builder.d.ts +116 -11
  310. package/types/ui/modal-builder.d.ts.map +1 -1
  311. package/types/ui/overflow-scroller.d.ts +2 -2
  312. package/types/ui/overflow-scroller.d.ts.map +1 -1
  313. package/types/ui/popover.d.ts +6 -7
  314. package/types/ui/popover.d.ts.map +1 -1
  315. package/types/ui/print.d.ts +0 -4
  316. package/types/ui/print.d.ts.map +1 -1
  317. package/types/ui/programmatic-modal.d.ts.map +1 -1
  318. package/types/ui/proxy-click.d.ts +19 -3
  319. package/types/ui/proxy-click.d.ts.map +1 -1
  320. package/types/ui/resizer.d.ts +116 -16
  321. package/types/ui/resizer.d.ts.map +1 -1
  322. package/types/ui/scroll-slider.d.ts +5 -7
  323. package/types/ui/scroll-slider.d.ts.map +1 -1
  324. package/types/ui/scrollpoint.d.ts +3 -8
  325. package/types/ui/scrollpoint.d.ts.map +1 -1
  326. package/types/ui/slider.d.ts +33 -14
  327. package/types/ui/slider.d.ts.map +1 -1
  328. package/types/ui/tabs.d.ts +6 -8
  329. package/types/ui/tabs.d.ts.map +1 -1
  330. package/types/ui/theme-toggle.d.ts +51 -7
  331. package/types/ui/theme-toggle.d.ts.map +1 -1
  332. package/types/ui/tooltip.d.ts +3 -5
  333. package/types/ui/tooltip.d.ts.map +1 -1
  334. package/types/utils/css.d.ts +11 -0
  335. package/types/utils/css.d.ts.map +1 -0
  336. package/types/utils/dom.d.ts +12 -32
  337. package/types/utils/dom.d.ts.map +1 -1
  338. package/types/utils/font-awesome.d.ts +5 -0
  339. package/types/utils/font-awesome.d.ts.map +1 -0
  340. package/types/utils/index.d.ts +1 -0
  341. package/types/utils/system.d.ts +113 -0
  342. package/types/utils/system.d.ts.map +1 -0
@@ -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
  }
@@ -0,0 +1,254 @@
1
+ ////
2
+ /// @group progress-bar
3
+ /// Groups a set of buttons
4
+ ////
5
+
6
+ @use "sass:map";
7
+ @use "sass:meta";
8
+ @use "sass:math";
9
+
10
+ @use "../selector";
11
+ @use "../utils";
12
+ @use "../color";
13
+ @use "../typography";
14
+
15
+
16
+ // Used for function fallback
17
+ $-fallbacks: (
18
+ "line-height" : (
19
+ "function" : meta.get-function("get", false, "typography"),
20
+ "property" : "line-height-dense"
21
+ ),
22
+ "value-font-weight" : (
23
+ "function" : meta.get-function("get", false, "typography"),
24
+ "property" : "font-weight-light"
25
+ )
26
+ );
27
+
28
+ /// Module Settings
29
+ /// @type Map
30
+ /// @prop {List} margin [(0 0 0.5em 0)] Margin for the progress bar.
31
+ /// @prop {Boolean} line-height [true] Line height for the progress bar. If true, falls back to typography's `line-height-dense`.
32
+ /// @prop {Color} value-color ["type-tertiary"] Color of the value text.
33
+ /// @prop {Dimension} value-margin [0.5em] Margin for the value text.
34
+ /// @prop {Boolean} value-font-weight [true] Font weight for the value text. If true, falls back to typography's `font-weight-light`.
35
+ /// @prop {Dimension} value-margin-deficit [0.3em] Margin for the deficit value text.
36
+ /// @prop {Color} value-color-deficit ["danger"] Color of the deficit value text.
37
+ /// @prop {Dimension} bar-height [12px] Height of the progress bar.
38
+ /// @prop {Color} bar-color [rgb(80, 80, 171)] Color of the progress bar.
39
+ /// @prop {Color} bar-color-deficit ["danger"] Color of the deficit portion of the progress bar.
40
+ /// @prop {Dimension} icon-margin [0.25em] Margin for the icon.
41
+ /// @prop {Color} icon-color ["type-tertiary"] Color of the icon.
42
+ /// @prop {Color} icon-color-deficit ["danger"] Color of the icon in a deficit state.
43
+ /// @prop {Color} track-color [#ccc] Color of the progress bar track.
44
+ /// @prop {List} track-margin [(0.1em 0)] Margin for the progress bar track.
45
+ /// @prop {Time} animation-duration [200ms] Duration of the width transition animation.
46
+ /// @prop {CssValue} animation-timing [ease] Timing function for the width transition animation.
47
+ /// @prop {Time} animation-initial-duration [500ms] Duration of the initial fill animation.
48
+ /// @prop {CssValue} animation-initial-timing [ease-in] Timing function for the initial fill animation.
49
+ /// @prop {Time} animation-indeterminate-duration [2.5s] Duration of the indeterminate loading animation.
50
+
51
+ $config: (
52
+ "margin" : (0 0 0.5em 0),
53
+ "line-height" : true,
54
+ "value-color" : "type-tertiary",
55
+ "value-margin" : 0.5em,
56
+ "value-font-weight" : true,
57
+ "value-margin-deficit" : 0.3em,
58
+ "value-color-deficit" : "danger",
59
+ "bar-height" : 12px,
60
+ "bar-color" : "indicator",
61
+ "bar-color-deficit" : "danger",
62
+ "icon-margin" : 0.25em,
63
+ "icon-color" : "type-tertiary",
64
+ "icon-color-deficit" : "danger",
65
+ "track-color" : "placeholder-background-alt",
66
+ "track-margin" : (0.1em 0),
67
+ "animation-duration" : 200ms,
68
+ "animation-timing" : ease,
69
+ "animation-initial-duration" : 500ms,
70
+ "animation-initial-timing" : ease-in,
71
+ "animation-indeterminate-duration" : 2.5s
72
+ ) !default;
73
+
74
+ /// @type Map
75
+ /// This is the map of styles (variations in progress bar types)
76
+ /// - Each style becomes the modifier and accepts ("bar-color", "bar-height", "track-color")
77
+ /// - Use this to match whatever progress system(s) your creating
78
+ $styles: (
79
+ "positive" : (
80
+ "bar-color" : "success",
81
+ "icon-color" : "success"
82
+ ),
83
+ "negative" : (
84
+ "bar-color" : "danger",
85
+ "icon-color" : "danger"
86
+ ),
87
+ "small" : (
88
+ "bar-height" : 8px
89
+ ),
90
+ "loader" : (
91
+ "bar-height" : 4px,
92
+ "track-color" : transparent
93
+ )
94
+ ) !default;
95
+
96
+ /// Change modules $config
97
+ /// @param {Map} $changes Map of changes
98
+ /// @example scss
99
+ /// @include ulu.component-progress-bar-set(( "property" : value ));
100
+
101
+ @mixin set($changes) {
102
+ $config: map.merge($config, $changes) !global;
103
+ }
104
+
105
+ /// Change modules $config
106
+ /// @param {Map} $changes Map of changes
107
+ /// @example scss
108
+ /// @include ulu.component-progress-bar-set-styles(( "small" : ( "bar-height" : 8px ) ));
109
+
110
+ @mixin set-styles($changes) {
111
+ $styles: map.merge($styles, $changes) !global;
112
+ }
113
+
114
+ /// Get a config option
115
+ /// @param {Map} $name Name of property
116
+ /// @example scss
117
+ /// @include ulu.component-progress-bar-get("property");
118
+
119
+ @function get($name) {
120
+ $value: utils.require-map-get($config, $name, "progress-bar [config]");
121
+ @return utils.function-fallback($name, $value, $-fallbacks);
122
+ }
123
+
124
+ /// Prints component styles
125
+ /// @demo progress-bar
126
+ /// @example scss
127
+ /// @include ulu.component-progress-bar-styles();
128
+
129
+ @mixin styles {
130
+ $prefix: selector.class("progress-bar");
131
+
132
+ #{ $prefix } {
133
+ line-height: get("line-height");
134
+ margin: get("margin");
135
+ }
136
+ #{ $prefix }__header {
137
+ display: flex;
138
+ align-items: flex-end;
139
+ }
140
+ #{ $prefix }__icon {
141
+ margin-left: auto;
142
+ padding-left: get("icon-margin");
143
+ color: color.get(get("icon-color"));
144
+ }
145
+ #{ $prefix }__track {
146
+ position: relative; // For indeterminate animation
147
+ margin: get("track-margin");
148
+ display: flex;
149
+ width: 100%;
150
+ height: get("bar-height");
151
+ overflow: hidden;
152
+ background-color: color.get(get("track-color"));
153
+ }
154
+ #{ $prefix }__bar {
155
+ display: flex;
156
+ height: 100%;
157
+ // This is the animation when the component is living in the page
158
+ transition: width get("animation-duration") get("animation-timing");
159
+ // This is the initial animation of the bar within itself (ie. filling up)
160
+ &:before {
161
+ content: '';
162
+ display: block;
163
+ width: 100%;
164
+ background-color: color.get(get("bar-color"));
165
+ transform-origin: left center;
166
+ animation: ulu-progress-bar get("animation-initial-duration") forwards get("animation-initial-timing");
167
+ }
168
+ }
169
+ #{ $prefix }--deficit {
170
+ #{ $prefix }__icon {
171
+ color: color.get(get("icon-color-deficit"));
172
+ }
173
+ }
174
+ #{ $prefix }__bar--deficit {
175
+ align-items: flex-end;
176
+ margin-left: auto;
177
+ background-color: color.get(get("bar-color-deficit"));
178
+ }
179
+ #{ $prefix }__values {
180
+ display: flex;
181
+ font-weight: get("value-font-weight");
182
+ color: color.get(get("value-color"));
183
+ }
184
+ #{ $prefix }__value {
185
+ margin-right: get("value-margin");
186
+ }
187
+ #{ $prefix }__value--deficit {
188
+ margin-left: auto;
189
+ margin-right: get("value-margin-deficit");
190
+ color: color.get(get("value-color-deficit"));
191
+ & + #{ $prefix }__value--total {
192
+ margin-left: 0;
193
+ }
194
+ }
195
+ #{ $prefix }__value--total {
196
+ margin-left: auto;
197
+ margin-right: 0;
198
+ }
199
+
200
+ @each $name, $props in $styles {
201
+ #{ $prefix }--#{ $name } {
202
+ #{ $prefix }__track {
203
+ height: map.get($props, "bar-height");
204
+ }
205
+ #{ $prefix }__bar:before {
206
+ background-color: color.get(map.get($props, "bar-color"));
207
+ }
208
+ #{ $prefix }__track {
209
+ background-color: color.get(map.get($props, "track-color"));
210
+ }
211
+ #{ $prefix }__icon {
212
+ color: color.get(map.get($props, "icon-color"));
213
+ }
214
+ }
215
+ }
216
+
217
+
218
+ // For Site Loading (Async Content, not charting/visualization)
219
+ #{ $prefix }--indeterminate {
220
+ #{ $prefix }__bar {
221
+ position: absolute;
222
+ top: 0;
223
+ left: 0;
224
+ width: 30%;
225
+ animation: ulu-progress-bar-indeterminate get("animation-indeterminate-duration") linear infinite;
226
+ }
227
+ // &#{ $prefix }--loaded {
228
+ // #{ $prefix }__bar {
229
+ // display: none;
230
+ // }
231
+ // }
232
+ }
233
+
234
+ @keyframes ulu-progress-bar {
235
+ from {
236
+ transform: scaleX(0);
237
+ }
238
+ to {
239
+ transform: scaleX(1);
240
+ }
241
+ }
242
+
243
+ @keyframes ulu-progress-bar-indeterminate {
244
+ 0% {
245
+ left: -100%;
246
+ }
247
+ 50% {
248
+ left: 100%;
249
+ }
250
+ 100% {
251
+ left: -100%;
252
+ }
253
+ }
254
+ }