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

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 +669 -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 +7445 -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 +1141 -940
  78. package/docs-dev/javascript/index.html +1446 -353
  79. package/docs-dev/javascript/settings/index.html +5629 -0
  80. package/docs-dev/javascript/ui-breakpoints/index.html +1270 -719
  81. package/docs-dev/javascript/ui-collapsible/index.html +1135 -824
  82. package/docs-dev/javascript/ui-details-group/index.html +5382 -0
  83. package/docs-dev/javascript/ui-dialog/index.html +1167 -841
  84. package/docs-dev/javascript/ui-flipcard/index.html +833 -2058
  85. package/docs-dev/javascript/ui-grid/index.html +835 -1962
  86. package/docs-dev/javascript/ui-modal-builder/index.html +988 -1919
  87. package/docs-dev/javascript/ui-overflow-scroller/index.html +811 -1912
  88. package/docs-dev/javascript/ui-overflow-scroller-pager/index.html +1643 -928
  89. package/docs-dev/javascript/ui-page/index.html +1643 -928
  90. package/docs-dev/javascript/ui-popover/index.html +1484 -773
  91. package/docs-dev/javascript/ui-print/index.html +1637 -930
  92. package/docs-dev/javascript/ui-print-details/index.html +1643 -928
  93. package/docs-dev/javascript/ui-programmatic-modal/index.html +1643 -928
  94. package/docs-dev/javascript/ui-proxy-click/index.html +1395 -595
  95. package/docs-dev/javascript/ui-resizer/index.html +1986 -1006
  96. package/docs-dev/javascript/ui-scroll-slider/index.html +1514 -767
  97. package/docs-dev/javascript/ui-scrollpoint/index.html +1649 -941
  98. package/docs-dev/javascript/ui-slider/index.html +1723 -817
  99. package/docs-dev/javascript/ui-tabs/index.html +1537 -859
  100. package/docs-dev/javascript/ui-theme-toggle/index.html +5634 -0
  101. package/docs-dev/javascript/ui-tooltip/index.html +1649 -938
  102. package/docs-dev/javascript/utils-class-logger/index.html +1644 -929
  103. package/docs-dev/javascript/utils-css/index.html +5448 -0
  104. package/docs-dev/javascript/utils-dom/index.html +1320 -685
  105. package/docs-dev/javascript/utils-file-save/index.html +1643 -928
  106. package/docs-dev/javascript/utils-floating-ui/index.html +1643 -928
  107. package/docs-dev/javascript/utils-id/index.html +1643 -928
  108. package/docs-dev/javascript/utils-pause-youtube-video/index.html +1643 -928
  109. package/docs-dev/javascript/utils-system/index.html +5751 -0
  110. package/docs-dev/sass/base/color/index.html +1451 -360
  111. package/docs-dev/sass/base/elements/index.html +1645 -930
  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 +1644 -929
  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 +1643 -928
  193. package/docs-dev/sass/helpers/display/index.html +1644 -929
  194. package/docs-dev/sass/helpers/index/index.html +1643 -928
  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 +1643 -928
  198. package/docs-dev/sass/helpers/units/index.html +1643 -928
  199. package/docs-dev/sass/helpers/utilities/index.html +1643 -924
  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 +154 -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 +224 -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
@@ -53,11 +53,16 @@ $-fallbacks: (
53
53
  /// @prop {CssValue} header-border-bottom [none] Bottom-border on the modal header.
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
+ /// @prop {Dimension} footer-padding [(0.5rem 1rem)] The padding of the modal footer.
57
+ /// @prop {Color} footer-background-color [(0.5rem 1rem)] The background color of the footer
58
+ /// @prop {Color} footer-border-top [(0.5rem 1rem)] The border between body and footer
59
+ /// @prop {CssValue} footer-text-align [right] Text alignment for footer
56
60
  /// @prop {Color} resizer-background-color [rgb(221, 221, 221)] The background color of the resizer.
57
61
  /// @prop {Color} resizer-background-color-hover [rgb(192, 192, 192)] The background color of the resizer when hovered or focused.
58
62
  /// @prop {Color} resizer-color [rgb(99, 99, 99)] The type color of the resizer.
59
63
  /// @prop {Color} resizer-color-hover [black] The type color of the resizer when hovered or focused.
60
64
  /// @prop {Dimension} resizer-width [1rem] The width of the resizer.
65
+ /// @prop {Dimension} resizer-center-size [1.65rem] The width/height of the resizer (in bottom right corner) used when position center with resize enabled
61
66
  /// @prop {Color} title-color [white] Type color of the title.
62
67
  /// @prop {CssValue} title-font-weight [bold] Font weight of the title.
63
68
  /// @prop {CssValue} title-font-family [null] Font family for title
@@ -69,8 +74,8 @@ $-fallbacks: (
69
74
  $config: (
70
75
  "backdrop-color" : true,
71
76
  "backdrop-blur" : 4px,
72
- "background-color": white,
73
- "body-padding": 1rem,
77
+ "background-color" : white,
78
+ "body-padding" : 1rem,
74
79
  "border-radius" : true,
75
80
  "box-shadow" : true,
76
81
  "height": 340px,
@@ -91,11 +96,16 @@ $config: (
91
96
  "header-border-bottom": none,
92
97
  "header-color": white,
93
98
  "header-padding": 1rem,
99
+ "footer-padding" : (0.5rem 1rem),
100
+ "footer-background-color" : #f6f6f6,
101
+ "footer-border-top" : none,
102
+ "footer-text-align" : right,
94
103
  "resizer-background-color": rgb(221, 221, 221),
95
104
  "resizer-background-color-hover": rgb(192, 192, 192),
96
105
  "resizer-color": rgb(99, 99, 99),
97
106
  "resizer-color-hover": black,
98
107
  "resizer-width": 1.25rem,
108
+ "resizer-center-size" : 1.65rem,
99
109
  "title-color": white,
100
110
  "title-font-weight": bold,
101
111
  "title-font-family" : null,
@@ -142,6 +152,7 @@ $config: (
142
152
  #{ $prefix } {
143
153
  // Required for click outside
144
154
  position: fixed;
155
+ flex-direction: column;
145
156
  // Important: If you use the margin layout system (ie. auto) on dialogs they
146
157
  // can't animate out correctly (thinking it jumps from dialog display system
147
158
  // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close
@@ -165,9 +176,8 @@ $config: (
165
176
  box-sizing: border-box;
166
177
  animation: uluModalCenterOut get("animation-duration-exit") get("animation-timing-function");
167
178
  &[open] {
168
- animation: uluModalCenterIn get("animation-duration") get("animation-timing-function");
169
179
  display: flex;
170
- flex-direction: column;
180
+ animation: uluModalCenterIn get("animation-duration") get("animation-timing-function");
171
181
  }
172
182
  &::backdrop {
173
183
  background: color.get(get("backdrop-color"));
@@ -190,6 +200,13 @@ $config: (
190
200
  overflow: auto;
191
201
  padding: get("body-padding");
192
202
  }
203
+ #{ $prefix }__footer {
204
+ flex: 0;
205
+ padding: get("footer-padding");
206
+ background-color: color.get(get("footer-background-color"));
207
+ border-top: get("footer-border-top");
208
+ text-align: get("footer-text-align");
209
+ }
193
210
  #{ $prefix }__title {
194
211
  display: flex;
195
212
  align-items: baseline;
@@ -224,6 +241,7 @@ $config: (
224
241
  }
225
242
  #{ $prefix }__resizer {
226
243
  position: absolute;
244
+ overflow: hidden;
227
245
  top: 0;
228
246
  bottom: 0;
229
247
  left: 0;
@@ -246,12 +264,16 @@ $config: (
246
264
  left: auto;
247
265
  right: 0;
248
266
  }
249
- }
250
- #{ $prefix }__content {
251
- margin-top: 2rem;
252
- margin-bottom: 2rem;
253
- line-height: 1.5;
254
- color: rgba(0,0,0,.8);
267
+ #{ $prefix }--center & {
268
+ left: auto;
269
+ right: 0;
270
+ bottom: 0;
271
+ top: auto;
272
+ height: get("resizer-center-size");
273
+ width: get("resizer-center-size");
274
+ background-color: transparent;
275
+ cursor: nwse-resize;
276
+ }
255
277
  }
256
278
 
257
279
  // Modifiers
@@ -260,6 +282,12 @@ $config: (
260
282
  width: $size-width;
261
283
  }
262
284
  }
285
+
286
+ #{ $prefix }--fullscreen {
287
+ width: 100%;
288
+ height: 100%;
289
+ border-radius: 0;
290
+ }
263
291
  #{ $prefix }--right,
264
292
  #{ $prefix }--left {
265
293
  border-radius: 0;
@@ -314,15 +342,15 @@ $config: (
314
342
  }
315
343
  }
316
344
  #{ $prefix }--resize {
317
- &#{ $prefix }--center {
318
- resize: both;
319
- }
320
345
  &#{ $prefix }--right {
321
346
  padding-left: get("resizer-width");
322
347
  }
323
348
  &#{ $prefix }--left {
324
349
  padding-right: get("resizer-width");
325
350
  }
351
+ // &#{ $prefix }--center {
352
+ // resize: both;
353
+ // }
326
354
  }
327
355
  #{ $prefix }--body-fills {
328
356
  #{ $prefix }__header {
@@ -371,13 +399,13 @@ $config: (
371
399
  to {
372
400
  opacity: 1;
373
401
  transform: translate(-50%, -50%);
374
- display: block;
402
+ display: flex;
375
403
  }
376
404
  }
377
405
  @keyframes uluModalCenterOut {
378
406
  from {
379
407
  opacity: 1;
380
- display: block;
408
+ display: flex;
381
409
  transform: translate(-50%, -50%);
382
410
  }
383
411
  to {
@@ -395,13 +423,13 @@ $config: (
395
423
  to {
396
424
  opacity: 1;
397
425
  transform: translate(-50%, 0);
398
- display: block;
426
+ display: flex;
399
427
  }
400
428
  }
401
429
  @keyframes uluModalTopOut {
402
430
  from {
403
431
  opacity: 1;
404
- display: block;
432
+ display: flex;
405
433
  transform: translate(-50%, 0);
406
434
  }
407
435
  to {
@@ -419,13 +447,13 @@ $config: (
419
447
  to {
420
448
  opacity: 1;
421
449
  transform: translate(-50%, 0);
422
- display: block;
450
+ display: flex;
423
451
  }
424
452
  }
425
453
  @keyframes uluModalBottomOut {
426
454
  from {
427
455
  opacity: 1;
428
- display: block;
456
+ display: flex;
429
457
  transform: translate(-50%, 0);
430
458
  }
431
459
  to {
@@ -443,13 +471,13 @@ $config: (
443
471
  to {
444
472
  opacity: 1;
445
473
  transform: translateX(0);
446
- display: block;
474
+ display: flex;
447
475
  }
448
476
  }
449
477
  @keyframes uluModalLeftOut {
450
478
  from {
451
479
  opacity: 1;
452
- display: block;
480
+ display: flex;
453
481
  transform: translateX(0);
454
482
  }
455
483
  to {
@@ -467,13 +495,13 @@ $config: (
467
495
  to {
468
496
  opacity: 1;
469
497
  transform: translateX(0);
470
- display: block;
498
+ display: flex;
471
499
  }
472
500
  }
473
501
  @keyframes uluModalRightOut {
474
502
  from {
475
503
  opacity: 1;
476
- display: block;
504
+ display: flex;
477
505
  transform: translateX(0);
478
506
  }
479
507
  to {
@@ -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;
@@ -0,0 +1,246 @@
1
+ ////
2
+ /// @group panel
3
+ /// A structured container for content with distinct header, body, and footer sections that can bleed to the edges.
4
+ ////
5
+
6
+ @use "sass:map";
7
+ @use "sass:list";
8
+ @use "sass:meta";
9
+
10
+ @use "../utils";
11
+ @use "../selector";
12
+ @use "../color";
13
+ @use "../element";
14
+ @use "../breakpoint";
15
+
16
+ // Used for function fallback
17
+ $-fallbacks: (
18
+ "box-shadow" : (
19
+ "function" : meta.get-function("get", false, "element"),
20
+ "property" : "box-shadow"
21
+ ),
22
+ "border-radius" : (
23
+ "function" : meta.get-function("get", false, "element"),
24
+ "property" : "border-radius"
25
+ ),
26
+ );
27
+
28
+ /// Module Settings
29
+ /// @type Map
30
+ /// @prop {Color} background-color [rgb(255, 255, 255)] The background color of the panel
31
+ /// @prop {Color} border [null] Set border to panel
32
+ /// @prop {Dimension} border-radius [element.$config.border-radius] The border radius of the panel
33
+ /// @prop {CssValue} box-shadow [element.$config.box-shadow] The box-shadow of the panel
34
+ /// @prop {Dimension} margin-bottom [1.5rem] The bottom margin of the panel
35
+ /// @prop {CssValue} overflow [null] Value for overflow, not included by default as it interferes with position sticky, but could be useful for cropping if that's needed (can be set on rows too)
36
+
37
+ $config: (
38
+ "background-color" : rgb(255, 255, 255),
39
+ "border" : null,
40
+ "border-radius" : true,
41
+ "box-shadow" : true,
42
+ "margin-bottom" : 1.5em,
43
+ "overflow" : null,
44
+ ) !default;
45
+
46
+ /// Styles Map (for unique variations/modifiers)
47
+ /// - Use this map to define distinct visual styles for the panel
48
+ /// - This map is two levels the first level is the name of the modifier (see default below).
49
+ /// This will become the modifier for the pane; so ("transparent" : (...)) = .panel--transparent.
50
+ /// The second level is that modifier row modifiers (ie. panel__row--header) (see row options below)
51
+ /// - Keyword "default" means without modifier for both parent and row configs
52
+ /// - For example "default" as panel container modifier name will mean
53
+ /// styles for this without any modifiers
54
+ /// - In a panels row config (second level) "default" will refer to the non-modified row (ie .panel__row)
55
+ /// - Order matters, default should be first
56
+ /// - Row Options
57
+ /// - Each row can have the following options:
58
+ /// overflow: Set overflow property if needed,
59
+ /// aspect-ratio,
60
+ /// height,
61
+ /// min-height,
62
+ /// padding,
63
+ /// margin: Can be used to create gap between container and row
64
+ /// background-color,
65
+ /// font-weight,
66
+ /// font-family,
67
+ /// color,
68
+ /// box-shadow,
69
+ /// grow: Default the panel will grow to fill the containers height, passing false disables this
70
+ /// border-top: If a string is passed it will resolved as an element rule style
71
+ /// border-bottom: If a string is passed it will resolved as an element rule style
72
+ /// @type Map
73
+
74
+ $styles: (
75
+ "default" : (
76
+ "default" : (
77
+ "padding": 1em,
78
+ ),
79
+ "header" : (
80
+ "padding" : (0.75em 1em),
81
+ "background-color" : #e7e7e7,
82
+ "border-bottom" : "default",
83
+ "font-weight" : bold,
84
+ "grow" : false,
85
+ "breakpoints" : (
86
+ "small" : (
87
+ "direction" : "max",
88
+ "padding" : (0.25em 0.5em)
89
+ )
90
+ )
91
+ ),
92
+ "footer" : (
93
+ "padding" : (0.5em 1em),
94
+ "background-color" : #f4f4f4,
95
+ "border-top" : "default",
96
+ "grow" : false
97
+ ),
98
+ "separator-top" : (
99
+ "border-top" : "light",
100
+ ),
101
+ "separator-bottom" : (
102
+ "border-bottom" : "light",
103
+ )
104
+ ),
105
+ "transparent" : (
106
+ "default" : (
107
+ "padding" : (1em 0),
108
+ "margin" : (0 1em),
109
+ ),
110
+ "header" : (
111
+ "padding" : (1em 0),
112
+ "margin" : (0 1em),
113
+ "background-color" : transparent,
114
+ "grow" : false
115
+ ),
116
+ "footer" : (
117
+ "padding" : (1em 0),
118
+ "margin" : (0 1em),
119
+ "background-color" : transparent,
120
+ "grow" : false
121
+ )
122
+ ),
123
+ "compact" : (
124
+ "default" : (
125
+ "padding" : (0.25em 0.5em)
126
+ ),
127
+ "header" : (
128
+ "padding" : (0.25em 0.5em)
129
+ ),
130
+ "body" : (
131
+ "padding" : (0.5em 1em)
132
+ )
133
+ )
134
+ ) !default;
135
+
136
+ /// Change modules $config
137
+ /// @param {Map} $changes Map of changes
138
+ /// @example scss
139
+ /// @include ulu.component-panel-set(( "property" : value ));
140
+ @mixin set($changes) {
141
+ $config: map.merge($config, $changes) !global;
142
+ }
143
+
144
+ /// Get a config option
145
+ /// @param {Map} $name Name of property
146
+ /// @example scss
147
+ /// @include ulu.component-panel-get("property");
148
+ @function get($name) {
149
+ $value: utils.require-map-get($config, $name, "panel [config]");
150
+ @return utils.function-fallback($name, $value, $-fallbacks);
151
+ }
152
+
153
+ /// Set style variations
154
+ /// - See $styles for more information on map properties/structure
155
+ /// @param {Map} $changes Map of changes (options for style include all config properties)
156
+ /// @param {String} $merge-mode Merge mode see utils.map-merge() [null|"deep"|"overwrite"]
157
+ @mixin set-styles($changes, $merge-mode: null) {
158
+ $styles: utils.map-merge($styles, $changes, $merge-mode) !global;
159
+ }
160
+
161
+ /// Output component styles
162
+ /// @example scss
163
+ /// @include ulu.component-panel-styles();
164
+ @mixin styles {
165
+ $prefix: selector.class("panel");
166
+
167
+ #{ $prefix } {
168
+ display: flex;
169
+ flex-direction: column;
170
+ overflow: get("overflow");
171
+ background-color: get("background-color");
172
+ box-shadow: get("box-shadow");
173
+ border: get("border");
174
+ border-radius: get("border-radius");
175
+ }
176
+ #{ $prefix }__row {
177
+ &:first-child {
178
+ border-top-left-radius: get("border-radius");
179
+ border-top-right-radius: get("border-radius");
180
+ }
181
+ &:last-child {
182
+ border-bottom-left-radius: get("border-radius");
183
+ border-bottom-right-radius: get("border-radius");
184
+ }
185
+ }
186
+
187
+ @each $modifier, $rows in $styles {
188
+ @if ($modifier == "default") {
189
+ @each $row-name, $props in $rows {
190
+ @if ($row-name == "default") {
191
+ #{ $prefix }__row {
192
+ @include create-row-style($props);
193
+ }
194
+ } @else {
195
+ #{ $prefix }__row--#{ $row-name } {
196
+ @include create-row-style($props);
197
+ }
198
+ }
199
+ }
200
+ } @else {
201
+ #{ $prefix }--#{ $modifier } {
202
+ @each $row-name, $props in $rows {
203
+ @if ($row-name == "default") {
204
+ #{ $prefix }__row {
205
+ @include create-row-style($props);
206
+ }
207
+ } @else {
208
+ #{ $prefix }__row--#{ $row-name } {
209
+ @include create-row-style($props);
210
+ }
211
+ }
212
+ }
213
+ }
214
+ }
215
+ }
216
+ }
217
+
218
+ /// Create row styles
219
+ /// @param {Map} $props - Row Options
220
+ @mixin create-row-style($props) {
221
+ overflow: map.get($props, "overflow");
222
+ aspect-ratio: map.get($props, "aspect-ratio");
223
+ height: map.get($props, "height");
224
+ min-height: map.get($props, "min-height");
225
+ padding: map.get($props, "padding");
226
+ margin: map.get($props, "margin");
227
+ background-color: color.get(map.get($props, "background-color"));
228
+ font-weight: map.get($props, "font-weight");
229
+ font-family: map.get($props, "font-family");
230
+ color: color.get(map.get($props, "color"));
231
+ box-shadow: map.get($props, "box-shadow");
232
+ flex-grow: if(map.get($props, "grow") == false, 0, 1); // Default is grow
233
+ border-top: element.get-optional-rule-style(map.get($props, "border-top"));
234
+ border-bottom: element.get-optional-rule-style(map.get($props, "border-bottom"));
235
+
236
+
237
+ // Allow passing breakpoint maps
238
+ $breakpoints: map.get($props, "breakpoints");
239
+ $b-options: ( "directionRequired" : true );
240
+
241
+ @if ($breakpoints and list.length($breakpoints)) {
242
+ @include breakpoint.from-each($breakpoints, $b-options) using ($b-props) {
243
+ @include create-row-style($b-props);
244
+ }
245
+ }
246
+ }