@ulu/frontend 0.0.23 → 0.1.0-beta.0

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 (211) hide show
  1. package/deprecated/js/drupal-programmatic-modal.js +91 -0
  2. package/{js/ui/modals.js → deprecated/js/micromodal-modals.js} +41 -67
  3. package/dist/ulu-frontend.min.css +1 -1
  4. package/dist/ulu-frontend.min.js +70 -1
  5. package/index.js +6 -1
  6. package/js/events/index.js +58 -7
  7. package/js/index.js +3 -7
  8. package/js/{helpers/css-breakpoint.js → ui/breakpoints.js} +9 -11
  9. package/js/ui/collapsible.js +195 -0
  10. package/js/ui/dialog.js +157 -0
  11. package/js/ui/dialog.todo +37 -0
  12. package/js/ui/flipcard.js +55 -11
  13. package/js/ui/grid.js +2 -47
  14. package/js/ui/index.js +21 -0
  15. package/js/ui/modal-builder.js +197 -0
  16. package/js/ui/overflow-scroller-pager.js +1 -1
  17. package/js/ui/overflow-scroller.js +8 -5
  18. package/js/ui/page.js +14 -0
  19. package/js/ui/popover.js +135 -0
  20. package/js/ui/print-details.js +44 -0
  21. package/js/ui/print.js +67 -0
  22. package/js/ui/programmatic-modal.js +79 -81
  23. package/js/ui/proxy-click.js +80 -0
  24. package/js/ui/resizer.js +3 -3
  25. package/js/ui/scroll-slider.js +56 -0
  26. package/js/ui/scrollpoint.js +300 -0
  27. package/js/ui/slider.js +72 -10
  28. package/js/ui/tabs.js +85 -58
  29. package/js/ui/theme-toggle.js +129 -0
  30. package/js/ui/tooltip.js +268 -67
  31. package/js/utils/{logger.js → class-logger.js} +6 -5
  32. package/js/utils/dom.js +122 -0
  33. package/js/utils/file-save.js +67 -0
  34. package/js/utils/floating-ui.js +83 -0
  35. package/js/utils/id.js +22 -0
  36. package/js/utils/index.js +7 -0
  37. package/js/{helpers → utils}/pause-youtube-video.js +1 -1
  38. package/package.json +32 -11
  39. package/resources/drupal/twig-macros/accordion.twig +99 -0
  40. package/resources/drupal/twig-macros/dropdown.twig +44 -0
  41. package/resources/drupal/twig-macros/flipcard.twig +69 -0
  42. package/resources/drupal/twig-macros/image.twig +30 -0
  43. package/resources/drupal/twig-macros/layout.twig +338 -0
  44. package/resources/drupal/twig-macros/slider.twig +214 -0
  45. package/resources/drupal/twig-macros/tabs.twig +84 -0
  46. package/scss/README.md +13 -1
  47. package/scss/_breakpoint.scss +69 -26
  48. package/scss/_button.scss +148 -57
  49. package/scss/_color.scss +46 -28
  50. package/scss/_cssvar.scss +103 -12
  51. package/scss/_element.scss +84 -67
  52. package/scss/_index.scss +0 -3
  53. package/scss/_layout.scss +57 -26
  54. package/scss/_path.scss +2 -2
  55. package/scss/_selector.scss +20 -11
  56. package/scss/_typography.scss +115 -82
  57. package/scss/_units.scss +14 -13
  58. package/scss/_utils.scss +280 -18
  59. package/scss/base/_color.scss +2 -1
  60. package/scss/base/_elements.scss +61 -35
  61. package/scss/base/_index.scss +60 -23
  62. package/scss/base/_keyframes.scss +115 -16
  63. package/scss/base/_layout.scss +10 -6
  64. package/scss/base/_normalize.scss +6 -122
  65. package/scss/base/_print.scss +49 -0
  66. package/scss/base/_root.scss +28 -0
  67. package/scss/base/_typography.scss +4 -1
  68. package/scss/components/_accordion.scss +217 -0
  69. package/scss/components/_adaptive-spacing.scss +148 -0
  70. package/scss/components/_badge.scss +17 -14
  71. package/scss/components/_button-verbose.scss +138 -0
  72. package/scss/components/_button.scss +9 -4
  73. package/scss/components/_callout.scss +175 -0
  74. package/scss/components/_captioned-figure.scss +173 -0
  75. package/scss/components/_card-grid.scss +75 -0
  76. package/scss/components/_card.scss +420 -0
  77. package/scss/components/_css-icon.scss +433 -0
  78. package/scss/{_grid.scss → components/_data-grid.scss} +100 -68
  79. package/scss/components/_data-table.scss +180 -0
  80. package/scss/components/_fill-context.scss +20 -22
  81. package/scss/components/_flipcard-grid.scss +66 -0
  82. package/scss/components/_flipcard.scss +304 -0
  83. package/scss/components/_form-theme.scss +633 -0
  84. package/scss/components/_hero.scss +183 -0
  85. package/scss/components/_horizontal-rule.scss +51 -0
  86. package/scss/components/_image-grid.scss +71 -0
  87. package/scss/components/_index.scss +276 -38
  88. package/scss/components/_links.scss +1 -1
  89. package/scss/components/_list-lines.scss +14 -3
  90. package/scss/components/_list-ordered.scss +3 -1
  91. package/scss/components/_list-unordered.scss +3 -1
  92. package/scss/components/_menu-stack.scss +245 -0
  93. package/scss/components/_modal.scss +495 -0
  94. package/scss/components/_nav-strip.scss +148 -0
  95. package/scss/components/_overlay-section.scss +122 -0
  96. package/scss/components/_pager.scss +168 -0
  97. package/scss/components/_placeholder-block.scss +121 -0
  98. package/scss/components/_popover.scss +263 -0
  99. package/scss/components/_pull-quote.scss +111 -0
  100. package/scss/components/_ratio-box.scss +64 -0
  101. package/scss/components/_rule.scss +12 -9
  102. package/scss/components/_scroll-slider.scss +204 -0
  103. package/scss/components/_skip-link.scss +92 -0
  104. package/scss/components/_slider.scss +241 -0
  105. package/scss/components/_spoke-spinner.scss +193 -0
  106. package/scss/components/_tabs.scss +179 -0
  107. package/scss/components/_tag.scss +142 -0
  108. package/scss/components/_tile-button.scss +131 -0
  109. package/scss/components/_tile-grid-overlay.scss +132 -0
  110. package/scss/components/_tile-grid.scss +172 -0
  111. package/scss/components/_vignette.scss +65 -0
  112. package/scss/components/_wysiwyg.scss +94 -0
  113. package/scss/helpers/_color.scss +1 -0
  114. package/scss/helpers/_display.scss +2 -1
  115. package/scss/helpers/_index.scss +45 -22
  116. package/scss/helpers/_print.scss +20 -43
  117. package/scss/helpers/_typography.scss +3 -0
  118. package/scss/helpers/_units.scss +10 -13
  119. package/scss/helpers/_utilities.scss +5 -1
  120. package/scss/stylesheets/base-styles.scss +7 -0
  121. package/scss/stylesheets/component-styles.scss +7 -0
  122. package/scss/stylesheets/helper-styles.scss +7 -0
  123. package/types/events/index.d.ts +1 -1
  124. package/types/events/index.d.ts.map +1 -1
  125. package/types/index.d.ts +2 -2
  126. package/types/{helpers/css-breakpoint.d.ts → ui/breakpoints.d.ts} +3 -3
  127. package/types/ui/breakpoints.d.ts.map +1 -0
  128. package/types/ui/collapsible.d.ts +67 -0
  129. package/types/ui/collapsible.d.ts.map +1 -0
  130. package/types/ui/dialog.d.ts +42 -0
  131. package/types/ui/dialog.d.ts.map +1 -0
  132. package/types/ui/flipcard.d.ts +8 -1
  133. package/types/ui/flipcard.d.ts.map +1 -1
  134. package/types/ui/grid.d.ts +0 -11
  135. package/types/ui/grid.d.ts.map +1 -1
  136. package/types/ui/index.d.ts +23 -0
  137. package/types/ui/index.d.ts.map +1 -0
  138. package/types/ui/modal-builder.d.ts +54 -0
  139. package/types/ui/modal-builder.d.ts.map +1 -0
  140. package/types/ui/overflow-scroller-pager.d.ts +1 -1
  141. package/types/ui/overflow-scroller-pager.d.ts.map +1 -1
  142. package/types/ui/overflow-scroller.d.ts +3 -1
  143. package/types/ui/overflow-scroller.d.ts.map +1 -1
  144. package/types/ui/page.d.ts +5 -0
  145. package/types/ui/page.d.ts.map +1 -0
  146. package/types/ui/popover.d.ts +40 -0
  147. package/types/ui/popover.d.ts.map +1 -0
  148. package/types/ui/print-details.d.ts +10 -0
  149. package/types/ui/print-details.d.ts.map +1 -0
  150. package/types/ui/print.d.ts +10 -0
  151. package/types/ui/print.d.ts.map +1 -0
  152. package/types/ui/programmatic-modal.d.ts +19 -1
  153. package/types/ui/programmatic-modal.d.ts.map +1 -1
  154. package/types/ui/proxy-click.d.ts +18 -0
  155. package/types/ui/proxy-click.d.ts.map +1 -0
  156. package/types/ui/resizer.d.ts +1 -1
  157. package/types/ui/resizer.d.ts.map +1 -1
  158. package/types/ui/scroll-slider.d.ts +13 -0
  159. package/types/ui/scroll-slider.d.ts.map +1 -0
  160. package/types/ui/scrollpoint.d.ts +133 -0
  161. package/types/ui/scrollpoint.d.ts.map +1 -0
  162. package/types/ui/slider.d.ts +14 -2
  163. package/types/ui/slider.d.ts.map +1 -1
  164. package/types/ui/tabs.d.ts +22 -0
  165. package/types/ui/tabs.d.ts.map +1 -1
  166. package/types/ui/theme-toggle.d.ts +14 -0
  167. package/types/ui/theme-toggle.d.ts.map +1 -0
  168. package/types/ui/tooltip.d.ts +92 -10
  169. package/types/ui/tooltip.d.ts.map +1 -1
  170. package/types/utils/{logger.d.ts → class-logger.d.ts} +1 -1
  171. package/types/utils/class-logger.d.ts.map +1 -0
  172. package/types/utils/dom.d.ts +48 -0
  173. package/types/utils/dom.d.ts.map +1 -0
  174. package/types/utils/file-save.d.ts +64 -0
  175. package/types/utils/file-save.d.ts.map +1 -0
  176. package/types/utils/floating-ui.d.ts +19 -0
  177. package/types/utils/floating-ui.d.ts.map +1 -0
  178. package/types/utils/id.d.ts +10 -0
  179. package/types/utils/id.d.ts.map +1 -0
  180. package/types/utils/index.d.ts +9 -0
  181. package/types/utils/index.d.ts.map +1 -0
  182. package/types/utils/pause-youtube-video.d.ts.map +1 -0
  183. package/js/helpers/file-save.js +0 -52
  184. package/js/helpers/scrollbar-width-property.js +0 -14
  185. package/project.todo +0 -22
  186. package/scss/_calculate.scss +0 -64
  187. package/scss/_utility.scss +0 -12
  188. package/types/helpers/css-breakpoint.d.ts.map +0 -1
  189. package/types/helpers/file-save.d.ts +0 -17
  190. package/types/helpers/file-save.d.ts.map +0 -1
  191. package/types/helpers/node-data-manager.d.ts +0 -45
  192. package/types/helpers/node-data-manager.d.ts.map +0 -1
  193. package/types/helpers/pause-youtube-video.d.ts.map +0 -1
  194. package/types/helpers/scrollbar-width-property.d.ts +0 -11
  195. package/types/helpers/scrollbar-width-property.d.ts.map +0 -1
  196. package/types/ui/modals.d.ts +0 -27
  197. package/types/ui/modals.d.ts.map +0 -1
  198. package/types/utils/logger.d.ts.map +0 -1
  199. package/vite.config.js +0 -36
  200. /package/{js/deprecated → deprecated/js}/doc-ready.js +0 -0
  201. /package/{js/deprecated → deprecated/js}/jquery-prototypes.js +0 -0
  202. /package/{js/deprecated → deprecated/js}/mini-collapsible-popper-positioning.js +0 -0
  203. /package/{js/deprecated → deprecated/js}/mini-collapsible.js +0 -0
  204. /package/{js/helpers → deprecated/js}/node-data-manager.js +0 -0
  205. /package/{js/deprecated → deprecated/js}/script-loader.js +0 -0
  206. /package/{js/deprecated → deprecated/js}/waypoints/README.md +0 -0
  207. /package/{js/deprecated → deprecated/js}/waypoints/anchor-menu.js +0 -0
  208. /package/{js/deprecated → deprecated/js}/waypoints/element-waypoint.js +0 -0
  209. /package/{js/deprecated → deprecated/js}/waypoints/examples/page-link-menu.md +0 -0
  210. /package/{js/deprecated → deprecated/js}/waypoints/state-in-attribute.js +0 -0
  211. /package/types/{helpers → utils}/pause-youtube-video.d.ts +0 -0
@@ -0,0 +1,183 @@
1
+
2
+ ////
3
+ /// @group hero
4
+ ////
5
+
6
+ @use "sass:map";
7
+ @use "sass:math";
8
+ @use "sass:list";
9
+
10
+ @use "../selector";
11
+ @use "../utils";
12
+ @use "../breakpoint";
13
+ @use "../typography";
14
+
15
+ /// Module Settings
16
+ /// @type Map
17
+ /// @prop {Map} extra-split-ratios [wide 70/30] A map where the name is the modifier and the value is a list with two percentages (the first percentage will be correspond with the graphic or content depending on selector [ie. .hero--split-graphic-[name] would apply the first percentage to the graphic while hero--split-content-[name] would apply the first percentage to the content])
18
+
19
+ $config: (
20
+ "breakpoint" : "medium",
21
+ "height" : 100vh,
22
+ "height-compact" : 40vh,
23
+ "graphic-height-stacked" : 60vh,
24
+ "content-max-width" : 40rem,
25
+ "content-padding-top" : 3rem,
26
+ "content-padding-bottom" : 3rem,
27
+ "text-align" : center,
28
+ "extra-split-ratios" : (
29
+ "wide" : (60%, 40%)
30
+ )
31
+ ) !default;
32
+
33
+ /// Change modules $config
34
+ /// @param {Map} $changes Map of changes
35
+ /// @example
36
+ /// @include ulu.component-hero-set(( "property" : value ));
37
+
38
+ @mixin set($changes) {
39
+ $config: map.merge($config, $changes) !global;
40
+ }
41
+
42
+ /// Get a config option
43
+ /// @param {Map} $name Name of property
44
+ /// @example
45
+ /// @include ulu.component-hero-get("property");
46
+
47
+ @function get($name) {
48
+ @return utils.require-map-get($config, $name, "hero [config]");
49
+ }
50
+
51
+ /// Prints component styles
52
+ /// @example scss
53
+ /// @include ulu.component-hero-styles();
54
+
55
+ @mixin styles {
56
+ $prefix: selector.class("hero");
57
+ $height: get("height");
58
+ $breakpoint: get("breakpoint");
59
+
60
+ #{ $prefix } {
61
+ display: flex;
62
+ flex-direction: column;
63
+ text-align: get("text-align");
64
+ }
65
+ #{ $prefix }__content-container {
66
+ padding-top: get("content-padding-top");
67
+ padding-top: get("content-padding-bottom");
68
+ }
69
+ #{ $prefix }__content-inner {
70
+ max-width: get("content-max-width");
71
+ margin-left: auto;
72
+ margin-right: auto;
73
+ }
74
+ #{ $prefix }__graphic {
75
+ position: relative;
76
+ flex-grow: 1;
77
+ width: 100%;
78
+ }
79
+ #{ $prefix }__graphic-media {
80
+ position: absolute;
81
+ top: 0;
82
+ left: 0;
83
+ width: 100%;
84
+ height: 100%;
85
+ object-fit: cover;
86
+ }
87
+
88
+
89
+
90
+ // This doesn't interfere with overlay
91
+ #{ $prefix }--top {
92
+ #{ $prefix }__graphic {
93
+ @include breakpoint.min($breakpoint) {
94
+ order: -1;
95
+ }
96
+ }
97
+ }
98
+ // These are shared between overlay and split style
99
+ @include breakpoint.min($breakpoint) {
100
+ #{ $prefix }--right,
101
+ #{ $prefix }--left {
102
+ text-align: right;
103
+ flex-direction: row;
104
+ #{ $prefix }__graphic,
105
+ #{ $prefix }__content {
106
+ flex: 1 0 50%;
107
+ }
108
+ #{ $prefix }__content {
109
+ display: flex;
110
+ flex-direction: column;
111
+ justify-content: center;
112
+ }
113
+ }
114
+ #{ $prefix }--right {
115
+ #{ $prefix }__content-inner {
116
+ margin-right: 0;
117
+ }
118
+ }
119
+ #{ $prefix }--left {
120
+ text-align: left;
121
+ #{ $prefix }__graphic {
122
+ order: -1;
123
+ }
124
+ #{ $prefix }__content-inner {
125
+ margin-left: 0;
126
+ }
127
+ }
128
+ }
129
+ #{ $prefix }--split {
130
+ @include breakpoint.min($breakpoint) {
131
+ min-height: $height;
132
+ }
133
+ #{ $prefix }__graphic {
134
+ @include breakpoint.max($breakpoint) {
135
+ height: get("graphic-height-stacked");
136
+ }
137
+ }
138
+ }
139
+
140
+ @if get("extra-split-ratios") {
141
+ @include breakpoint.min($breakpoint) {
142
+ @each $name, $ratio in get("extra-split-ratios") {
143
+ #{ $prefix }--split-graphic-#{ $name } #{ $prefix }__graphic,
144
+ #{ $prefix }--split-content-#{ $name } #{ $prefix }__content {
145
+ flex-basis: list.nth($ratio, 1);
146
+ }
147
+ #{ $prefix }--split-graphic-#{ $name } #{ $prefix }__content,
148
+ #{ $prefix }--split-content-#{ $name } #{ $prefix }__graphic {
149
+ flex-basis: list.nth($ratio, 2);
150
+ }
151
+ }
152
+ }
153
+ }
154
+
155
+
156
+ #{ $prefix }--overlay {
157
+ position: relative;
158
+ justify-content: center;
159
+ min-height: $height;
160
+ #{ $prefix }__content {
161
+ position: relative;
162
+ z-index: 2;
163
+ }
164
+ #{ $prefix }__graphic {
165
+ position: absolute;
166
+ top: 0;
167
+ left: 0;
168
+ right: 0;
169
+ bottom: 0;
170
+ }
171
+ &#{ $prefix }--bottom,
172
+ &#{ $prefix }--bottom #{ $prefix }__content {
173
+ justify-content: flex-end;
174
+ }
175
+ &#{ $prefix }--top,
176
+ &#{ $prefix }--top #{ $prefix }__content {
177
+ justify-content: flex-start;
178
+ }
179
+ }
180
+ #{ $prefix }--compact {
181
+ min-height: get("height-compact");
182
+ }
183
+ }
@@ -0,0 +1,51 @@
1
+ ////
2
+ /// @group horizontal-rule
3
+ ////
4
+
5
+ @use "sass:map";
6
+ @use "../utils";
7
+ @use "../element";
8
+
9
+ /// Module Settings
10
+ /// @type Map
11
+ /// @prop {Dimension} min-height [1em] Min height for rule.
12
+ /// @prop {Dimension} margin [1em] Top and bottom margin for rule.
13
+
14
+ $config: (
15
+ "margin": 1em,
16
+ "min-height": 1em,
17
+ ) !default;
18
+
19
+ /// Change modules $config
20
+ /// @param {Map} $changes Map of changes
21
+ /// @example scss
22
+ /// @include ulu.component-horizontal-rule-set(( "property" : value ));
23
+
24
+ @mixin set($changes) {
25
+ $config: map.merge($config, $changes) !global;
26
+ }
27
+
28
+ /// Get a config option
29
+ /// @param {Map} $name Name of property
30
+ /// @example scss
31
+ /// @include ulu.component-horizontal-rule-get("property");
32
+
33
+ @function get($name) {
34
+ @return utils.require-map-get($config, $name, "horizontal-rule [config]");
35
+ }
36
+
37
+ /// Prints adaptive spacing component styles
38
+ /// @example scss
39
+ /// @include ulu.component-horizontal-styles();
40
+
41
+ @mixin styles {
42
+ .horizontal-rule {
43
+ display: inline-block;
44
+ min-height: get("min-height");
45
+ vertical-align: middle;
46
+ border-right: element.get-rule-style();
47
+ margin: 0 get("margin");
48
+ flex-grow: 0;
49
+ align-self: stretch;
50
+ }
51
+ }
@@ -0,0 +1,71 @@
1
+ ////
2
+ /// @group image-grid
3
+ ////
4
+
5
+ @use "sass:map";
6
+ @use "sass:math";
7
+
8
+ @use "../selector";
9
+ @use "../utils";
10
+ @use "../breakpoint";
11
+
12
+
13
+ /// Module Settings
14
+ /// @type Map
15
+ /// @prop {String} breakpoint ["small"] Sets the min breakpoint for the grid to print. This uses breakpoint.scss, so the value of this option should be a breakpoint variable from breakpoint.scss.
16
+ /// @prop {Dimension} gap [3px] The gap between images in the grid.
17
+ /// @prop {Dimension} min-width [math.div(100%, 3)] The min-width of the images in the grid.
18
+
19
+ $config: (
20
+ "breakpoint": "small",
21
+ "gap": 3px,
22
+ "min-width": math.div(100%, 3)
23
+ ) !default;
24
+
25
+ /// Change modules $config
26
+ /// @param {Map} $changes Map of changes
27
+ /// @example
28
+ /// @include ulu.component-image-grid-set(( "property" : value ));
29
+
30
+ @mixin set($changes) {
31
+ $config: map.merge($config, $changes) !global;
32
+ }
33
+
34
+ /// Get a config option
35
+ /// @param {Map} $name Name of property
36
+ /// @example
37
+ /// @include ulu.component-image-grid-get("property");
38
+
39
+ @function get($name) {
40
+ @return utils.require-map-get($config, $name, "image-grid [config]");
41
+ }
42
+
43
+ /// Prints component styles
44
+ /// @example scss
45
+ /// @include ulu.component-image-grid-styles();
46
+
47
+ @mixin styles {
48
+
49
+ $prefix: selector.class("image-grid");
50
+ $gap: get("gap");
51
+
52
+ #{ $prefix } {
53
+ display: flex;
54
+ flex-wrap: wrap;
55
+ margin: -($gap);
56
+ overflow: hidden;
57
+ }
58
+ #{ $prefix }__item {
59
+ // Have to use borders vs flexbox gap (adds to percentages) @important
60
+ border-bottom: $gap solid transparent;
61
+ border-top: $gap solid transparent;
62
+ @include breakpoint.min(get("breakpoint")) {
63
+ border: $gap solid transparent;
64
+ flex: 1 1;
65
+ min-width: get("min-width");
66
+ }
67
+ > img {
68
+ width: 100%;
69
+ }
70
+ }
71
+ }
@@ -1,75 +1,313 @@
1
1
  ////
2
- /// @group all
2
+ /// @group index
3
+ /// Outputs all component stylesheets, optionally choose to set includes or excludes to narrow down components that are output.
3
4
  ////
4
5
 
5
- @forward "links" as links-*;
6
- @forward "button" as button-*;
6
+ @forward "accordion" as accordion-*;
7
+ @forward "adaptive-spacing" as adaptive-spacing-*;
7
8
  @forward "badge" as badge-*;
8
- @forward "rule" as rule-*;
9
+ @forward "button" as button-*;
10
+ @forward "button-verbose" as button-verbose-*;
11
+ @forward "callout" as callout-*;
12
+ @forward "card" as card-*;
13
+ @forward "card-grid" as card-grid-*;
14
+ @forward "css-icon" as css-icon-*;
15
+ @forward "data-grid" as data-grid-*;
16
+ @forward "data-table" as data-table-*;
17
+ @forward "fill-context" as fill-context-*;
18
+ @forward "flipcard" as flipcard-*;
19
+ @forward "flipcard-grid" as flipcard-grid-*;
20
+ @forward "form-theme" as form-theme-*;
21
+ @forward "horizontal-rule" as horizontal-rule-*;
22
+ @forward "image-grid" as image-grid-*;
23
+ @forward "links" as links-*;
9
24
  @forward "list-lines" as list-lines-*;
10
- @forward "list-unordered" as list-unordered-*;
11
25
  @forward "list-ordered" as list-ordered-*;
12
- @forward "fill-context" as fill-context-*;
26
+ @forward "list-unordered" as list-unordered-*;
27
+ @forward "menu-stack" as menu-stack-*;
28
+ @forward "modal" as modal-*;
29
+ @forward "nav-strip" as nav-strip-*;
30
+ @forward "overlay-section" as overlay-section-*;
31
+ @forward "pager" as pager-*;
32
+ @forward "placeholder-block" as placeholder-block-*;
33
+ @forward "pull-quote" as pull-quote-*;
34
+ @forward "popover" as popover-*;
35
+ @forward "ratio-box" as ratio-box-*;
36
+ @forward "rule" as rule-*;
37
+ @forward "scroll-slider" as scroll-slider-*;
38
+ @forward "skip-link" as skip-link-*;
39
+ @forward "slider" as slider-*;
40
+ @forward "hero" as hero-*;
41
+ @forward "tabs" as tabs-*;
42
+ @forward "tag" as tag-*;
43
+ @forward "tile-grid" as tile-grid-*;
44
+ @forward "tile-button" as tile-button-*;
45
+ @forward "tile-grid-overlay" as tile-grid-overlay-*;
46
+ @forward "vignette" as vignette-*;
47
+ @forward "captioned-figure" as captioned-figure-*;
48
+ @forward "spoke-spinner" as spoke-spinner-*;
49
+ @forward "wysiwyg" as wysiwyg-*;
13
50
 
14
- @use "sass:map";
51
+ @use "sass:list";
15
52
 
16
53
  @use "../utils";
17
- @use "links";
18
- @use "button";
54
+ @use "adaptive-spacing";
55
+ @use "accordion";
19
56
  @use "badge";
20
- @use "rule";
57
+ @use "button";
58
+ @use "button-verbose";
59
+ @use "callout";
60
+ @use "card";
61
+ @use "card-grid";
62
+ @use "css-icon";
63
+ @use "data-grid";
64
+ @use "data-table";
65
+ @use "fill-context";
66
+ @use "flipcard";
67
+ @use "flipcard-grid";
68
+ @use "form-theme";
69
+ @use "horizontal-rule";
70
+ @use "image-grid";
21
71
  @use "list-lines";
22
- @use "list-unordered";
23
72
  @use "list-ordered";
24
- @use "fill-context";
73
+ @use "list-unordered";
74
+ @use "links";
75
+ @use "menu-stack";
76
+ @use "modal";
77
+ @use "nav-strip";
78
+ @use "overlay-section";
79
+ @use "pager";
80
+ @use "placeholder-block";
81
+ @use "popover";
82
+ @use "pull-quote";
83
+ @use "ratio-box";
84
+ @use "rule";
85
+ @use "scroll-slider";
86
+ @use "skip-link";
87
+ @use "slider";
88
+ @use "hero";
89
+ @use "tabs";
90
+ @use "tag";
91
+ @use "tile-grid";
92
+ @use "tile-button";
93
+ @use "tile-grid-overlay";
94
+ @use "vignette";
95
+ @use "captioned-figure";
96
+ @use "spoke-spinner";
97
+ @use "wysiwyg";
25
98
 
26
- // Used to check against user's includes
99
+ /// Default includes, all modules
100
+ /// @type List
27
101
 
28
- $-all-includes: (
29
- "links" : true,
30
- "button" : true,
31
- "badge" : true,
32
- "rule" : true,
33
- "list-lines" : true,
34
- "list-unordered" : true,
35
- "list-ordered" : true,
36
- "fill-context" : true,
102
+ $all-includes: (
103
+ "accordion",
104
+ "adaptive-spacing",
105
+ "badge",
106
+ "button",
107
+ "button-verbose",
108
+ "callout",
109
+ "card",
110
+ "card-grid",
111
+ "css-icon",
112
+ "data-grid",
113
+ "data-table",
114
+ "fill-context",
115
+ "flipcard",
116
+ "flipcard-grid",
117
+ "form-theme",
118
+ "horizontal-rule",
119
+ "image-grid",
120
+ "links",
121
+ "list-lines",
122
+ "list-ordered",
123
+ "list-unordered",
124
+ "menu-stack",
125
+ "modal",
126
+ "nav-strip",
127
+ "overlay-section",
128
+ "pager",
129
+ "popover",
130
+ "ratio-box",
131
+ "rule",
132
+ "scroll-slider",
133
+ "skip-link",
134
+ "slider",
135
+ "hero",
136
+ "tabs",
137
+ "tag",
138
+ "tile-grid",
139
+ "tile-button",
140
+ "tile-grid-overlay",
141
+ "placeholder-block",
142
+ "pull-quote",
143
+ "vignette",
144
+ "captioned-figure",
145
+ "spoke-spinner",
146
+ "wysiwyg",
37
147
  );
38
148
 
149
+ /// Current included modules (for output when using styles), defaults to all
150
+ /// @type List
151
+
152
+ $current-includes: $all-includes;
153
+
154
+ /// Change default includes (when user prints modules)
155
+ /// - This available as configuration so that it can be configured (to allow easily copying configuration)
156
+ /// @param {List} $includes List of modules by name to be included when styles are printed
157
+
158
+ @mixin set-includes($includes) {
159
+ @include utils.require-list-contains($all-includes, $includes, "components.set-includes", true);
160
+ $current-includes: $includes !global;
161
+ }
162
+
163
+ /// Exclude certain items from includes
164
+ /// @param {List} $excludes List of item names
165
+
166
+ @mixin set-excludes($excludes) {
167
+ $current-includes: utils.list-without($current-includes, $excludes) !global;
168
+ }
169
+
39
170
  /// Prints all Components styles
40
171
  /// @name component-styles
41
- /// @param {List} $includes A list of changes to module includes
172
+ /// @param {List} $includes [$all-includes] A list of components to include (defaults to all)
42
173
  /// @example scss
43
174
  /// @include ulu.component-styles();
44
175
 
45
- @mixin styles($includes: null) {
176
+ @mixin styles($includes: $current-includes) {
46
177
  @include utils.file-header("components");
47
- @if $includes {
48
- @include utils.require-list-contains($-all-includes, $includes);
49
- $-all-includes: map.merge($-all-includes, $includes) !global;
178
+
179
+ @include utils.require-list-contains($all-includes, $includes, "components.$includes", true);
180
+
181
+ @if (list.index($includes, "accordion")) {
182
+ @include accordion.styles;
50
183
  }
51
- @if (map.get($-all-includes, "links")) {
52
- @include links.styles;
184
+ @if (list.index($includes, "adaptive-spacing")) {
185
+ @include adaptive-spacing.styles;
53
186
  }
54
- @if (map.get($-all-includes, "button")) {
187
+ @if (list.index($includes, "hero")) {
188
+ @include hero.styles;
189
+ }
190
+ @if (list.index($includes, "button")) {
55
191
  @include button.styles;
56
192
  }
57
- @if (map.get($-all-includes, "badge")) {
193
+ @if (list.index($includes, "button-verbose")) {
194
+ @include button-verbose.styles;
195
+ }
196
+ @if (list.index($includes, "badge")) {
58
197
  @include badge.styles;
59
198
  }
60
- @if (map.get($-all-includes, "rule")) {
61
- @include rule.styles;
199
+ @if (list.index($includes, "tag")) {
200
+ @include tag.styles;
201
+ }
202
+ @if (list.index($includes, "callout")) {
203
+ @include callout.styles;
204
+ }
205
+ @if (list.index($includes, "card")) {
206
+ @include card.styles;
207
+ }
208
+ @if (list.index($includes, "card-grid")) {
209
+ @include card-grid.styles;
62
210
  }
63
- @if (map.get($-all-includes, "list-lines")) {
211
+ @if (list.index($includes, "css-icon")) {
212
+ @include css-icon.styles;
213
+ }
214
+ @if (list.index($includes, "data-grid")) {
215
+ @include data-grid.styles;
216
+ }
217
+ @if (list.index($includes, "data-table")) {
218
+ @include data-table.styles;
219
+ }
220
+ @if (list.index($includes, "fill-context")) {
221
+ @include fill-context.styles;
222
+ }
223
+ @if (list.index($includes, "flipcard")) {
224
+ @include flipcard.styles;
225
+ }
226
+ @if (list.index($includes, "flipcard-grid")) {
227
+ @include flipcard-grid.styles;
228
+ }
229
+ @if (list.index($includes, "form-theme")) {
230
+ @include form-theme.styles;
231
+ }
232
+ @if (list.index($includes, "horizontal-rule")) {
233
+ @include horizontal-rule.styles;
234
+ }
235
+ @if (list.index($includes, "image-grid")) {
236
+ @include image-grid.styles;
237
+ }
238
+ @if (list.index($includes, "links")) {
239
+ @include links.styles;
240
+ }
241
+ @if (list.index($includes, "list-lines")) {
64
242
  @include list-lines.styles;
65
243
  }
66
- @if (map.get($-all-includes, "list-unordered")) {
244
+ @if (list.index($includes, "list-unordered")) {
67
245
  @include list-unordered.styles;
68
246
  }
69
- @if (map.get($-all-includes, "list-ordered")) {
247
+ @if (list.index($includes, "list-ordered")) {
70
248
  @include list-ordered.styles;
71
249
  }
72
- @if (map.get($-all-includes, "fill-context")) {
73
- @include fill-context.styles;
250
+ @if (list.index($includes, "menu-stack")) {
251
+ @include menu-stack.styles;
252
+ }
253
+ @if (list.index($includes, "modal")) {
254
+ @include modal.styles;
255
+ }
256
+ @if (list.index($includes, "nav-strip")) {
257
+ @include nav-strip.styles;
258
+ }
259
+ @if (list.index($includes, "overlay-section")) {
260
+ @include overlay-section.styles;
261
+ }
262
+ @if (list.index($includes, "pager")) {
263
+ @include pager.styles;
264
+ }
265
+ @if (list.index($includes, "placeholder-block")) {
266
+ @include placeholder-block.styles;
267
+ }
268
+ @if (list.index($includes, "popover")) {
269
+ @include popover.styles;
270
+ }
271
+ @if (list.index($includes, "pull-quote")) {
272
+ @include pull-quote.styles;
273
+ }
274
+ @if (list.index($includes, "ratio-box")) {
275
+ @include ratio-box.styles;
276
+ }
277
+ @if (list.index($includes, "rule")) {
278
+ @include rule.styles;
279
+ }
280
+ @if (list.index($includes, "scroll-slider")) {
281
+ @include scroll-slider.styles;
282
+ }
283
+ @if (list.index($includes, "skip-link")) {
284
+ @include skip-link.styles;
285
+ }
286
+ @if (list.index($includes, "slider")) {
287
+ @include slider.styles;
288
+ }
289
+ @if (list.index($includes, "tabs")) {
290
+ @include tabs.styles;
291
+ }
292
+ @if (list.index($includes, "tile-grid")) {
293
+ @include tile-grid.styles;
294
+ }
295
+ @if (list.index($includes, "tile-button")) {
296
+ @include tile-button.styles;
297
+ }
298
+ @if (list.index($includes, "tile-grid-overlay")) {
299
+ @include tile-grid-overlay.styles;
300
+ }
301
+ @if (list.index($includes, "vignette")) {
302
+ @include vignette.styles;
303
+ }
304
+ @if (list.index($includes, "captioned-figure")) {
305
+ @include captioned-figure.styles;
306
+ }
307
+ @if (list.index($includes, "spoke-spinner")) {
308
+ @include spoke-spinner.styles;
309
+ }
310
+ @if (list.index($includes, "wysiwyg")) {
311
+ @include wysiwyg.styles;
74
312
  }
75
313
  }
@@ -5,7 +5,7 @@
5
5
  @use "../element";
6
6
  @use "../selector";
7
7
 
8
- /// Link compontent styles (.link)
8
+ /// Link component styles (.link)
9
9
  /// - Contextual link styling
10
10
  /// - Styles all links within as normal text hyperlinks (hover, visited)
11
11
  /// @example scss