@ulu/frontend 0.1.0-beta.104 → 0.1.0-beta.106

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 (191) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/GEMINI.md +9 -0
  3. package/dist/ulu-frontend.min.css +1 -1
  4. package/docs-dev/assets/main.js +494 -7738
  5. package/docs-dev/assets/style.css +166 -221
  6. package/docs-dev/changelog/index.html +50 -0
  7. package/docs-dev/changelog/updates-and-changes/index.html +5109 -0
  8. package/docs-dev/demos/accordion/index.html +30 -0
  9. package/docs-dev/demos/badge/index.html +30 -0
  10. package/docs-dev/demos/badge-stack/index.html +30 -0
  11. package/docs-dev/demos/breadcrumb/index.html +33 -3
  12. package/docs-dev/demos/breakpoints-manager/index.html +30 -0
  13. package/docs-dev/demos/button/index.html +30 -0
  14. package/docs-dev/demos/button-group/index.html +30 -0
  15. package/docs-dev/demos/button-verbose/index.html +30 -0
  16. package/docs-dev/demos/callout/index.html +30 -0
  17. package/docs-dev/demos/captioned-figure/index.html +30 -0
  18. package/docs-dev/demos/card/index.html +46 -16
  19. package/docs-dev/demos/card-grid/index.html +30 -0
  20. package/docs-dev/demos/card-new/index.html +5088 -0
  21. package/docs-dev/demos/card-old/index.html +5223 -0
  22. package/docs-dev/demos/card.1/index.html +5223 -0
  23. package/docs-dev/demos/card.TRASH/index.html +5541 -0
  24. package/docs-dev/demos/counter-list/index.html +30 -0
  25. package/docs-dev/demos/css-icons/index.html +30 -0
  26. package/docs-dev/demos/data-grid/index.html +30 -0
  27. package/docs-dev/demos/data-table/index.html +130 -100
  28. package/docs-dev/demos/details-group/index.html +30 -0
  29. package/docs-dev/demos/file-save/index.html +30 -0
  30. package/docs-dev/demos/flipcard/index.html +30 -0
  31. package/docs-dev/demos/form-theme/index.html +30 -0
  32. package/docs-dev/demos/headline-label/index.html +30 -0
  33. package/docs-dev/demos/index.html +30 -0
  34. package/docs-dev/demos/list-inline/index.html +30 -0
  35. package/docs-dev/demos/list-inline.1/index.html +4727 -0
  36. package/docs-dev/demos/list-lines/index.html +30 -0
  37. package/docs-dev/demos/menu-stack/index.html +83 -0
  38. package/docs-dev/demos/modals/index.html +30 -0
  39. package/docs-dev/demos/nav-strip/index.html +30 -0
  40. package/docs-dev/demos/overlay-section/index.html +30 -0
  41. package/docs-dev/demos/panel/index.html +30 -0
  42. package/docs-dev/demos/popovers/index.html +30 -0
  43. package/docs-dev/demos/print/index.html +30 -0
  44. package/docs-dev/demos/{badge.1 → progress-bar}/index.html +322 -43
  45. package/docs-dev/demos/pull-quote/index.html +30 -0
  46. package/docs-dev/demos/rail/index.html +30 -0
  47. package/docs-dev/demos/rule/index.html +30 -0
  48. package/docs-dev/demos/scrollpoints/index.html +30 -0
  49. package/docs-dev/demos/skeleton/index.html +30 -0
  50. package/docs-dev/demos/spoke-spinner/index.html +30 -0
  51. package/docs-dev/demos/sticky-list/index.html +30 -0
  52. package/docs-dev/demos/tabs/index.html +30 -0
  53. package/docs-dev/demos/tag/index.html +30 -0
  54. package/docs-dev/demos/theme-toggle/index.html +30 -0
  55. package/docs-dev/demos/tiles/index.html +30 -0
  56. package/docs-dev/demos/tooltip/index.html +30 -0
  57. package/docs-dev/demos/wysiwyg/index.html +30 -0
  58. package/docs-dev/guide/building-stylesheet/index.html +30 -0
  59. package/docs-dev/guide/developing-ulu-scss-module/index.html +30 -0
  60. package/docs-dev/guide/index.html +30 -0
  61. package/docs-dev/guide/updates-and-changes/index.html +5033 -0
  62. package/docs-dev/index.html +30 -0
  63. package/docs-dev/javascript/events/index.html +30 -0
  64. package/docs-dev/javascript/index.html +30 -0
  65. package/docs-dev/javascript/settings/index.html +30 -0
  66. package/docs-dev/javascript/ui-breakpoints/index.html +30 -0
  67. package/docs-dev/javascript/ui-collapsible/index.html +30 -0
  68. package/docs-dev/javascript/ui-details-group/index.html +30 -0
  69. package/docs-dev/javascript/ui-dialog/index.html +30 -0
  70. package/docs-dev/javascript/ui-flipcard/index.html +30 -0
  71. package/docs-dev/javascript/ui-grid/index.html +30 -0
  72. package/docs-dev/javascript/ui-modal-builder/index.html +30 -0
  73. package/docs-dev/javascript/ui-overflow-scroller/index.html +30 -0
  74. package/docs-dev/javascript/ui-overflow-scroller-pager/index.html +30 -0
  75. package/docs-dev/javascript/ui-page/index.html +30 -0
  76. package/docs-dev/javascript/ui-popover/index.html +30 -0
  77. package/docs-dev/javascript/ui-print/index.html +30 -0
  78. package/docs-dev/javascript/ui-print-details/index.html +30 -0
  79. package/docs-dev/javascript/ui-programmatic-modal/index.html +30 -0
  80. package/docs-dev/javascript/ui-proxy-click/index.html +30 -0
  81. package/docs-dev/javascript/ui-resizer/index.html +30 -0
  82. package/docs-dev/javascript/ui-scroll-slider/index.html +30 -0
  83. package/docs-dev/javascript/ui-scrollpoint/index.html +30 -0
  84. package/docs-dev/javascript/ui-slider/index.html +30 -0
  85. package/docs-dev/javascript/ui-tabs/index.html +30 -0
  86. package/docs-dev/javascript/ui-theme-toggle/index.html +30 -0
  87. package/docs-dev/javascript/ui-tooltip/index.html +30 -0
  88. package/docs-dev/javascript/utils-class-logger/index.html +30 -0
  89. package/docs-dev/javascript/utils-css/index.html +30 -0
  90. package/docs-dev/javascript/utils-dom/index.html +30 -0
  91. package/docs-dev/javascript/utils-file-save/index.html +30 -0
  92. package/docs-dev/javascript/utils-floating-ui/index.html +30 -0
  93. package/docs-dev/javascript/utils-id/index.html +30 -0
  94. package/docs-dev/javascript/utils-pause-youtube-video/index.html +30 -0
  95. package/docs-dev/javascript/utils-system/index.html +30 -0
  96. package/docs-dev/sass/base/color/index.html +30 -0
  97. package/docs-dev/sass/base/elements/index.html +30 -0
  98. package/docs-dev/sass/base/index/index.html +30 -0
  99. package/docs-dev/sass/base/index.html +30 -0
  100. package/docs-dev/sass/base/keyframes/index.html +30 -0
  101. package/docs-dev/sass/base/layout/index.html +30 -0
  102. package/docs-dev/sass/base/normalize/index.html +30 -0
  103. package/docs-dev/sass/base/print/index.html +30 -0
  104. package/docs-dev/sass/base/root/index.html +30 -0
  105. package/docs-dev/sass/base/typography/index.html +30 -0
  106. package/docs-dev/sass/components/accordion/index.html +30 -0
  107. package/docs-dev/sass/components/adaptive-spacing/index.html +30 -0
  108. package/docs-dev/sass/components/badge/index.html +30 -0
  109. package/docs-dev/sass/components/badge-stack/index.html +30 -0
  110. package/docs-dev/sass/components/basic-hero/index.html +30 -0
  111. package/docs-dev/sass/components/breadcrumb/index.html +30 -0
  112. package/docs-dev/sass/components/button/index.html +30 -0
  113. package/docs-dev/sass/components/button-group/index.html +30 -0
  114. package/docs-dev/sass/components/button-verbose/index.html +30 -0
  115. package/docs-dev/sass/components/callout/index.html +30 -0
  116. package/docs-dev/sass/components/captioned-figure/index.html +30 -0
  117. package/docs-dev/sass/components/card/index.html +30 -0
  118. package/docs-dev/sass/components/card-grid/index.html +30 -0
  119. package/docs-dev/sass/components/counter-list/index.html +30 -0
  120. package/docs-dev/sass/components/css-icon/index.html +30 -0
  121. package/docs-dev/sass/components/data-grid/index.html +30 -0
  122. package/docs-dev/sass/components/data-table/index.html +30 -0
  123. package/docs-dev/sass/components/fill-context/index.html +30 -0
  124. package/docs-dev/sass/components/flipcard/index.html +30 -0
  125. package/docs-dev/sass/components/flipcard-grid/index.html +30 -0
  126. package/docs-dev/sass/components/form-theme/index.html +30 -0
  127. package/docs-dev/sass/components/headline-label/index.html +30 -0
  128. package/docs-dev/sass/components/hero/index.html +30 -0
  129. package/docs-dev/sass/components/horizontal-rule/index.html +30 -0
  130. package/docs-dev/sass/components/image-grid/index.html +30 -0
  131. package/docs-dev/sass/components/index/index.html +30 -0
  132. package/docs-dev/sass/components/index.html +30 -0
  133. package/docs-dev/sass/components/links/index.html +30 -0
  134. package/docs-dev/sass/components/list-inline/index.html +30 -0
  135. package/docs-dev/sass/components/list-lines/index.html +30 -0
  136. package/docs-dev/sass/components/list-ordered/index.html +30 -0
  137. package/docs-dev/sass/components/list-unordered/index.html +30 -0
  138. package/docs-dev/sass/components/menu-stack/index.html +32 -2
  139. package/docs-dev/sass/components/modal/index.html +30 -0
  140. package/docs-dev/sass/components/nav-strip/index.html +30 -0
  141. package/docs-dev/sass/components/overlay-section/index.html +30 -0
  142. package/docs-dev/sass/components/pager/index.html +30 -0
  143. package/docs-dev/sass/components/panel/index.html +30 -0
  144. package/docs-dev/sass/components/placeholder-block/index.html +30 -0
  145. package/docs-dev/sass/components/popover/index.html +30 -0
  146. package/docs-dev/sass/components/pull-quote/index.html +30 -0
  147. package/docs-dev/sass/components/rail/index.html +30 -0
  148. package/docs-dev/sass/components/ratio-box/index.html +30 -0
  149. package/docs-dev/sass/components/rule/index.html +30 -0
  150. package/docs-dev/sass/components/scroll-slider/index.html +30 -0
  151. package/docs-dev/sass/components/skeleton/index.html +30 -0
  152. package/docs-dev/sass/components/skip-link/index.html +30 -0
  153. package/docs-dev/sass/components/slider/index.html +30 -0
  154. package/docs-dev/sass/components/spoke-spinner/index.html +30 -0
  155. package/docs-dev/sass/components/sticky-list/index.html +30 -0
  156. package/docs-dev/sass/components/table-sticky/index.html +30 -0
  157. package/docs-dev/sass/components/tabs/index.html +30 -0
  158. package/docs-dev/sass/components/tag/index.html +30 -0
  159. package/docs-dev/sass/components/tile-button/index.html +30 -0
  160. package/docs-dev/sass/components/tile-grid/index.html +30 -0
  161. package/docs-dev/sass/components/tile-grid-overlay/index.html +30 -0
  162. package/docs-dev/sass/components/vignette/index.html +30 -0
  163. package/docs-dev/sass/components/wysiwyg/index.html +30 -0
  164. package/docs-dev/sass/core/breakpoint/index.html +38 -8
  165. package/docs-dev/sass/core/button/index.html +30 -0
  166. package/docs-dev/sass/core/color/index.html +30 -0
  167. package/docs-dev/sass/core/cssvar/index.html +30 -0
  168. package/docs-dev/sass/core/element/index.html +30 -0
  169. package/docs-dev/sass/core/index.html +30 -0
  170. package/docs-dev/sass/core/layout/index.html +30 -0
  171. package/docs-dev/sass/core/path/index.html +30 -0
  172. package/docs-dev/sass/core/selector/index.html +30 -0
  173. package/docs-dev/sass/core/typography/index.html +30 -0
  174. package/docs-dev/sass/core/units/index.html +30 -0
  175. package/docs-dev/sass/core/utils/index.html +30 -0
  176. package/docs-dev/sass/helpers/color/index.html +30 -0
  177. package/docs-dev/sass/helpers/display/index.html +30 -0
  178. package/docs-dev/sass/helpers/index/index.html +30 -0
  179. package/docs-dev/sass/helpers/index.html +30 -0
  180. package/docs-dev/sass/helpers/typography/index.html +30 -0
  181. package/docs-dev/sass/helpers/units/index.html +30 -0
  182. package/docs-dev/sass/helpers/utilities/index.html +30 -0
  183. package/docs-dev/sass/index.html +30 -0
  184. package/package.json +1 -1
  185. package/scss/_breakpoint.scss +4 -4
  186. package/scss/components/_index.scss +6 -0
  187. package/scss/components/_menu-stack.scss +30 -10
  188. package/scss/components/_progress-bar.scss +257 -0
  189. package/scss/helpers/_utilities.scss +6 -0
  190. package/types/ui/index.d.ts +1 -1
  191. package/types/utils/index.d.ts +1 -1
@@ -646,6 +646,21 @@
646
646
  </li>
647
647
 
648
648
 
649
+ <li class="nav-tree__item ">
650
+
651
+ <a class="nav-tree__link " href="/frontend/demos/progress-bar/">
652
+
653
+
654
+ <span class="nav-tree__text">
655
+ Progress Bar
656
+ </span>
657
+
658
+ </a>
659
+
660
+
661
+ </li>
662
+
663
+
649
664
  <li class="nav-tree__item ">
650
665
 
651
666
  <a class="nav-tree__link " href="/frontend/demos/pull-quote/">
@@ -3432,6 +3447,21 @@
3432
3447
  </li>
3433
3448
 
3434
3449
 
3450
+ <li class="nav-tree__item ">
3451
+
3452
+ <a class="nav-tree__link " href="/frontend/demos/progress-bar/">
3453
+
3454
+
3455
+ <span class="nav-tree__text">
3456
+ Progress Bar
3457
+ </span>
3458
+
3459
+ </a>
3460
+
3461
+
3462
+ </li>
3463
+
3464
+
3435
3465
  <li class="nav-tree__item ">
3436
3466
 
3437
3467
  <a class="nav-tree__link " href="/frontend/demos/pull-quote/">
@@ -646,6 +646,21 @@
646
646
  </li>
647
647
 
648
648
 
649
+ <li class="nav-tree__item ">
650
+
651
+ <a class="nav-tree__link " href="/frontend/demos/progress-bar/">
652
+
653
+
654
+ <span class="nav-tree__text">
655
+ Progress Bar
656
+ </span>
657
+
658
+ </a>
659
+
660
+
661
+ </li>
662
+
663
+
649
664
  <li class="nav-tree__item ">
650
665
 
651
666
  <a class="nav-tree__link " href="/frontend/demos/pull-quote/">
@@ -3432,6 +3447,21 @@
3432
3447
  </li>
3433
3448
 
3434
3449
 
3450
+ <li class="nav-tree__item ">
3451
+
3452
+ <a class="nav-tree__link " href="/frontend/demos/progress-bar/">
3453
+
3454
+
3455
+ <span class="nav-tree__text">
3456
+ Progress Bar
3457
+ </span>
3458
+
3459
+ </a>
3460
+
3461
+
3462
+ </li>
3463
+
3464
+
3435
3465
  <li class="nav-tree__item ">
3436
3466
 
3437
3467
  <a class="nav-tree__link " href="/frontend/demos/pull-quote/">
@@ -646,6 +646,21 @@
646
646
  </li>
647
647
 
648
648
 
649
+ <li class="nav-tree__item ">
650
+
651
+ <a class="nav-tree__link " href="/frontend/demos/progress-bar/">
652
+
653
+
654
+ <span class="nav-tree__text">
655
+ Progress Bar
656
+ </span>
657
+
658
+ </a>
659
+
660
+
661
+ </li>
662
+
663
+
649
664
  <li class="nav-tree__item ">
650
665
 
651
666
  <a class="nav-tree__link " href="/frontend/demos/pull-quote/">
@@ -3432,6 +3447,21 @@
3432
3447
  </li>
3433
3448
 
3434
3449
 
3450
+ <li class="nav-tree__item ">
3451
+
3452
+ <a class="nav-tree__link " href="/frontend/demos/progress-bar/">
3453
+
3454
+
3455
+ <span class="nav-tree__text">
3456
+ Progress Bar
3457
+ </span>
3458
+
3459
+ </a>
3460
+
3461
+
3462
+ </li>
3463
+
3464
+
3435
3465
  <li class="nav-tree__item ">
3436
3466
 
3437
3467
  <a class="nav-tree__link " href="/frontend/demos/pull-quote/">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ulu/frontend",
3
- "version": "0.1.0-beta.104",
3
+ "version": "0.1.0-beta.106",
4
4
  "description": "A versatile SCSS and JavaScript component library offering configurable, accessible components and flexible integration into any project, with SCSS modules suitable for modern JS frameworks.",
5
5
  "browser": "js/index.js",
6
6
  "main": "index.js",
@@ -72,7 +72,7 @@ $sizes: (
72
72
  /// @example scss {compile} Example usage
73
73
  /// .test-get-sizes {
74
74
  /// $sizes: ulu.breakpoint-get-sizes();
75
- /// height: map.get($sizes, "medium");
75
+ /// content: map.get($sizes, "medium");
76
76
  /// }
77
77
  /// @return {Map} Map of breakpoints (equivalent to $sizes)
78
78
 
@@ -85,7 +85,7 @@ $sizes: (
85
85
  /// @compiler
86
86
  /// @example scss {compile} Example usage
87
87
  /// .test-get-size {
88
- /// height: ulu.breakpoint-get-size("medium");
88
+ /// content: ulu.breakpoint-get-size("medium");
89
89
  /// }
90
90
  /// @return {Number} The sizes value
91
91
 
@@ -98,8 +98,8 @@ $sizes: (
98
98
  /// @compiler
99
99
  /// @example scss {compile} Example usage
100
100
  /// .test-get-size-value {
101
- /// height: ulu.breakpoint-get-size-value("medium", true);
102
- /// max-height: ulu.breakpoint-get-size-value("medium");
101
+ /// content: ulu.breakpoint-get-size-value("medium", true);
102
+ /// content: ulu.breakpoint-get-size-value("medium");
103
103
  /// }
104
104
  /// @return {Number} The value for the given size
105
105
 
@@ -40,6 +40,7 @@
40
40
  @forward "placeholder-block" as placeholder-block-*;
41
41
  @forward "pull-quote" as pull-quote-*;
42
42
  @forward "popover" as popover-*;
43
+ @forward "progress-bar" as progress-bar-*;
43
44
  @forward "rail" as rail-*;
44
45
  @forward "ratio-box" as ratio-box-*;
45
46
  @forward "rule" as rule-*;
@@ -98,6 +99,7 @@
98
99
  @use "panel";
99
100
  @use "placeholder-block";
100
101
  @use "popover";
102
+ @use "progress-bar";
101
103
  @use "pull-quote";
102
104
  @use "rail";
103
105
  @use "ratio-box";
@@ -157,6 +159,7 @@ $all-includes: (
157
159
  "pager",
158
160
  "panel",
159
161
  "popover",
162
+ "progress-bar",
160
163
  "rail",
161
164
  "ratio-box",
162
165
  "rule",
@@ -325,6 +328,9 @@ $current-includes: $all-includes;
325
328
  @if (list.index($includes, "popover")) {
326
329
  @include popover.styles;
327
330
  }
331
+ @if (list.index($includes, "progress-bar")) {
332
+ @include progress-bar.styles;
333
+ }
328
334
  @if (list.index($includes, "pull-quote")) {
329
335
  @include pull-quote.styles;
330
336
  }
@@ -75,7 +75,7 @@ $config: (
75
75
  "label-line-height" : true,
76
76
  "link-separated-margin" : false,
77
77
  "link-separated-rule-style" : false,
78
- "link-active-selectors" : (".is-active", '[aria-current="page"]'),
78
+ "link-active-selectors" : (".is-active",),
79
79
  "link-background-color" : transparent,
80
80
  "link-background-color-active" : rgb(219, 219, 219),
81
81
  "link-background-color-hover" : rgb(240, 240, 240),
@@ -181,20 +181,27 @@ $config: (
181
181
  color: color.get(get("link-color-hover"));
182
182
  background-color: color.get(get("link-background-color-hover"));
183
183
  }
184
- @each $active-selector in get("link-active-selectors") {
185
- &#{ $active-selector } {
186
- &,
187
- &:hover {
188
- color: color.get(get("link-color-active"));
189
- background-color: color.get(get("link-background-color-active"));
190
- }
191
- }
192
- }
193
184
  }
194
185
  #{ $prefix }__selectable {
195
186
  padding: 0;
196
187
  position: relative;
197
188
  }
189
+
190
+ // Combine all active selectors using sass:selector functions
191
+ $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;
192
+ $active-from-config: get("link-active-selectors");
193
+ $traditional-active: sassSelector.append($base-selectors, $active-from-config);
194
+
195
+ $checked-active: sassSelector.parse("#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)");
196
+
197
+ #{ $traditional-active, $checked-active },
198
+ #{ $prefix }__link[aria-current="page"] {
199
+ &,
200
+ &:hover {
201
+ color: color.get(get("link-color-active"));
202
+ background-color: color.get(get("link-background-color-active"));
203
+ }
204
+ }
198
205
  #{ $prefix }__selectable [type="checkbox"],
199
206
  #{ $prefix }__selectable [type="radio"],
200
207
  #{ $prefix }__selectable-input {
@@ -258,4 +265,17 @@ $config: (
258
265
  padding: get("compact-link-padding-y") get("compact-link-padding-x");
259
266
  }
260
267
  }
268
+
269
+ #{ $prefix }--hide-inputs {
270
+ #{ $prefix }__selectable-input,
271
+ #{ $prefix }__selectable [type="checkbox"],
272
+ #{ $prefix }__selectable [type="radio"] {
273
+ @include element.hidden-visually();
274
+ }
275
+
276
+ #{ $prefix }__selectable label,
277
+ #{ $prefix }__selectable-label {
278
+ padding-left: get("link-padding-x");
279
+ }
280
+ }
261
281
  }
@@ -0,0 +1,257 @@
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 {Dimension} max-width [20rem] Max-width of the progress bar.
31
+ /// @prop {List} margin [(0 0 0.5em 0)] Margin for the progress bar.
32
+ /// @prop {Boolean} line-height [true] Line height for the progress bar. If true, falls back to typography's `line-height-dense`.
33
+ /// @prop {Color} value-color ["type-tertiary"] Color of the value text.
34
+ /// @prop {Dimension} value-margin [0.5em] Margin for the value text.
35
+ /// @prop {Boolean} value-font-weight [true] Font weight for the value text. If true, falls back to typography's `font-weight-light`.
36
+ /// @prop {Dimension} value-margin-deficit [0.3em] Margin for the deficit value text.
37
+ /// @prop {Color} value-color-deficit ["danger"] Color of the deficit value text.
38
+ /// @prop {Dimension} bar-height [12px] Height of the progress bar.
39
+ /// @prop {Color} bar-color [rgb(80, 80, 171)] Color of the progress bar.
40
+ /// @prop {Color} bar-color-deficit ["danger"] Color of the deficit portion of the progress bar.
41
+ /// @prop {Dimension} icon-margin [0.25em] Margin for the icon.
42
+ /// @prop {Color} icon-color ["type-tertiary"] Color of the icon.
43
+ /// @prop {Color} icon-color-deficit ["danger"] Color of the icon in a deficit state.
44
+ /// @prop {Color} track-color [#ccc] Color of the progress bar track.
45
+ /// @prop {List} track-margin [(0.1em 0)] Margin for the progress bar track.
46
+ /// @prop {Time} animation-duration [200ms] Duration of the width transition animation.
47
+ /// @prop {CssValue} animation-timing [ease] Timing function for the width transition animation.
48
+ /// @prop {Time} animation-initial-duration [500ms] Duration of the initial fill animation.
49
+ /// @prop {CssValue} animation-initial-timing [ease-in] Timing function for the initial fill animation.
50
+ /// @prop {Time} animation-indeterminate-duration [2.5s] Duration of the indeterminate loading animation.
51
+
52
+ $config: (
53
+ "max-width" : 20rem,
54
+ "margin" : (0 0 0.5em 0),
55
+ "line-height" : true,
56
+ "value-color" : "type-tertiary",
57
+ "value-margin" : 0.5em,
58
+ "value-font-weight" : true,
59
+ "value-margin-deficit" : 0.3em,
60
+ "value-color-deficit" : "danger",
61
+ "bar-height" : 12px,
62
+ "bar-color" : rgb(80, 80, 171),
63
+ "bar-color-deficit" : "danger",
64
+ "icon-margin" : 0.25em,
65
+ "icon-color" : "type-tertiary",
66
+ "icon-color-deficit" : "danger",
67
+ "track-color" : #ccc,
68
+ "track-margin" : (0.1em 0),
69
+ "animation-duration" : 200ms,
70
+ "animation-timing" : ease,
71
+ "animation-initial-duration" : 500ms,
72
+ "animation-initial-timing" : ease-in,
73
+ "animation-indeterminate-duration" : 2.5s
74
+ ) !default;
75
+
76
+ /// @type Map
77
+ /// This is the map of styles (variations in progress bar types)
78
+ /// - Each style becomes the modifier and accepts ("bar-color", "bar-height", "track-color")
79
+ /// - Use this to match whatever progress system(s) your creating
80
+ $styles: (
81
+ "positive" : (
82
+ "bar-color" : "success",
83
+ "icon-color" : "success"
84
+ ),
85
+ "negative" : (
86
+ "bar-color" : "danger",
87
+ "icon-color" : "danger"
88
+ ),
89
+ "small" : (
90
+ "bar-height" : 8px
91
+ ),
92
+ "loader" : (
93
+ "bar-height" : 4px,
94
+ "track-color" : transparent
95
+ )
96
+ ) !default;
97
+
98
+ /// Change modules $config
99
+ /// @param {Map} $changes Map of changes
100
+ /// @example scss
101
+ /// @include ulu.component-progress-bar-set(( "property" : value ));
102
+
103
+ @mixin set($changes) {
104
+ $config: map.merge($config, $changes) !global;
105
+ }
106
+
107
+ /// Change modules $config
108
+ /// @param {Map} $changes Map of changes
109
+ /// @example scss
110
+ /// @include ulu.component-progress-bar-set-styles(( "small" : ( "bar-height" : 8px ) ));
111
+
112
+ @mixin set-styles($changes) {
113
+ $styles: map.merge($styles, $changes) !global;
114
+ }
115
+
116
+ /// Get a config option
117
+ /// @param {Map} $name Name of property
118
+ /// @example scss
119
+ /// @include ulu.component-progress-bar-get("property");
120
+
121
+ @function get($name) {
122
+ $value: utils.require-map-get($config, $name, "progress-bar [config]");
123
+ @return utils.function-fallback($name, $value, $-fallbacks);
124
+ }
125
+
126
+ /// Prints component styles
127
+ /// @demo progress-bar
128
+ /// @example scss
129
+ /// @include ulu.component-progress-bar-styles();
130
+
131
+ @mixin styles {
132
+ $prefix: selector.class("progress-bar");
133
+
134
+ #{ $prefix } {
135
+ max-width: get("max-width");
136
+ line-height: get("line-height");
137
+ margin: get("margin");
138
+ }
139
+ #{ $prefix }__header {
140
+ display: flex;
141
+ align-items: flex-end;
142
+ }
143
+ #{ $prefix }__icon {
144
+ margin-left: auto;
145
+ padding-left: get("icon-margin");
146
+ color: color.get(get("icon-color"));
147
+ }
148
+ #{ $prefix }__track {
149
+ position: relative; // For indeterminate animation
150
+ margin: get("track-margin");
151
+ display: flex;
152
+ width: 100%;
153
+ height: get("bar-height");
154
+ overflow: hidden;
155
+ background-color: color.get(get("track-color"));
156
+ }
157
+ #{ $prefix }__bar {
158
+ display: flex;
159
+ height: 100%;
160
+ // This is the animation when the component is living in the page
161
+ transition: width get("animation-duration") get("animation-timing");
162
+ // This is the initial animation of the bar within itself (ie. filling up)
163
+ &:before {
164
+ content: '';
165
+ display: block;
166
+ width: 100%;
167
+ background-color: color.get(get("bar-color"));
168
+ transform-origin: left center;
169
+ animation: ulu-progress-bar get("animation-initial-duration") forwards get("animation-initial-timing");
170
+ }
171
+ }
172
+ #{ $prefix }--deficit {
173
+ #{ $prefix }__icon {
174
+ color: color.get(get("icon-color-deficit"));
175
+ }
176
+ }
177
+ #{ $prefix }__bar--deficit {
178
+ align-items: flex-end;
179
+ margin-left: auto;
180
+ background-color: color.get(get("bar-color-deficit"));
181
+ }
182
+ #{ $prefix }__values {
183
+ display: flex;
184
+ font-weight: get("value-font-weight");
185
+ color: color.get(get("value-color"));
186
+ }
187
+ #{ $prefix }__value {
188
+ margin-right: get("value-margin");
189
+ }
190
+ #{ $prefix }__value--deficit {
191
+ margin-left: auto;
192
+ margin-right: get("value-margin-deficit");
193
+ color: color.get(get("value-color-deficit"));
194
+ & + #{ $prefix }__value--total {
195
+ margin-left: 0;
196
+ }
197
+ }
198
+ #{ $prefix }__value--total {
199
+ margin-left: auto;
200
+ margin-right: 0;
201
+ }
202
+
203
+ @each $name, $props in $styles {
204
+ #{ $prefix }--#{ $name } {
205
+ #{ $prefix }__track {
206
+ height: map.get($props, "bar-height");
207
+ }
208
+ #{ $prefix }__bar:before {
209
+ background-color: color.get(map.get($props, "bar-color"));
210
+ }
211
+ #{ $prefix }__track {
212
+ background-color: color.get(map.get($props, "track-color"));
213
+ }
214
+ #{ $prefix }__icon {
215
+ color: color.get(map.get($props, "icon-color"));
216
+ }
217
+ }
218
+ }
219
+
220
+
221
+ // For Site Loading (Async Content, not charting/visualization)
222
+ #{ $prefix }--indeterminate {
223
+ #{ $prefix }__bar {
224
+ position: absolute;
225
+ top: 0;
226
+ left: 0;
227
+ width: 30%;
228
+ animation: ulu-progress-bar-indeterminate get("animation-indeterminate-duration") linear infinite;
229
+ }
230
+ // &#{ $prefix }--loaded {
231
+ // #{ $prefix }__bar {
232
+ // display: none;
233
+ // }
234
+ // }
235
+ }
236
+
237
+ @keyframes ulu-progress-bar {
238
+ from {
239
+ transform: scaleX(0);
240
+ }
241
+ to {
242
+ transform: scaleX(1);
243
+ }
244
+ }
245
+
246
+ @keyframes ulu-progress-bar-indeterminate {
247
+ 0% {
248
+ left: -100%;
249
+ }
250
+ 50% {
251
+ left: 100%;
252
+ }
253
+ 100% {
254
+ left: -100%;
255
+ }
256
+ }
257
+ }
@@ -42,6 +42,12 @@
42
42
  #{ selector.class("flex-basis-full") } {
43
43
  flex-basis: 100%;
44
44
  }
45
+ #{ selector.class("flex-grow") } {
46
+ flex-grow: 1;
47
+ }
48
+ #{ selector.class("flex-shrink") } {
49
+ flex-shrink: 1;
50
+ }
45
51
  #{ selector.class("full-min-height") } {
46
52
  min-height: 100%;
47
53
  }
@@ -20,5 +20,5 @@ export * as printDetails from "./print-details.js";
20
20
  export * as scrollSlider from "./scroll-slider.js";
21
21
  export * as themeToggle from "./theme-toggle.js";
22
22
  export * as detailsGroup from "./details-group.js";
23
- declare namespace ___Users_joe_Projects_Personal_Github_frontend_js_ui_index_ { }
23
+ declare namespace ___Users_joescherben_Personal_Projects_ULU_frontend_js_ui_index_ { }
24
24
  //# sourceMappingURL=index.d.ts.map
@@ -6,5 +6,5 @@ export * as index from "./index.js";
6
6
  export * as pauseYoutubeVideo from "./pause-youtube-video.js";
7
7
  export * as fileSave from "./file-save.js";
8
8
  export * as fontAwesome from "./font-awesome.js";
9
- declare namespace ___Users_joe_Projects_Personal_Github_frontend_js_utils_index_ { }
9
+ declare namespace ___Users_joescherben_Personal_Projects_ULU_frontend_js_utils_index_ { }
10
10
  //# sourceMappingURL=index.d.ts.map