@ulu/frontend 0.1.0-beta.83 → 0.1.0-beta.85
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.
- package/CHANGELOG.md +25 -0
- package/dist/ulu-frontend.min.css +1 -1
- package/docs-dev/changelog/index.html +345 -3
- package/docs-dev/demos/accordion/index.html +270 -0
- package/docs-dev/demos/badge/index.html +270 -0
- package/docs-dev/demos/breakpoints-manager/index.html +270 -0
- package/docs-dev/demos/button/index.html +270 -0
- package/docs-dev/demos/button-group/index.html +5532 -0
- package/docs-dev/demos/button-verbose/index.html +270 -0
- package/docs-dev/demos/callout/index.html +270 -0
- package/docs-dev/demos/captioned-figure/index.html +270 -0
- package/docs-dev/demos/card/index.html +286 -16
- package/docs-dev/demos/card-grid/index.html +270 -0
- package/docs-dev/demos/counter-list/index.html +270 -0
- package/docs-dev/demos/css-icons/index.html +270 -0
- package/docs-dev/demos/data-grid/index.html +270 -0
- package/docs-dev/demos/data-table/index.html +370 -100
- package/docs-dev/demos/details-group/index.html +270 -0
- package/docs-dev/demos/file-save/index.html +270 -0
- package/docs-dev/demos/flipcard/index.html +270 -0
- package/docs-dev/demos/form-theme/index.html +270 -0
- package/docs-dev/demos/headline-label/index.html +5502 -0
- package/docs-dev/demos/index.html +270 -0
- package/docs-dev/demos/list-inline/index.html +270 -0
- package/docs-dev/demos/list-lines/index.html +270 -0
- package/docs-dev/demos/menu-stack/index.html +270 -0
- package/docs-dev/demos/modals/index.html +270 -0
- package/docs-dev/demos/nav-strip/index.html +270 -0
- package/docs-dev/demos/overlay-section/index.html +270 -0
- package/docs-dev/demos/panel/index.html +5562 -0
- package/docs-dev/demos/popovers/index.html +270 -0
- package/docs-dev/demos/print/index.html +270 -0
- package/docs-dev/demos/pull-quote/index.html +270 -0
- package/docs-dev/demos/rail/index.html +5598 -0
- package/docs-dev/demos/rule/index.html +270 -0
- package/docs-dev/demos/scrollpoints/index.html +270 -0
- package/docs-dev/demos/spoke-spinner/index.html +270 -0
- package/docs-dev/demos/sticky-list/index.html +270 -0
- package/docs-dev/demos/tabs/index.html +270 -0
- package/docs-dev/demos/tag/index.html +270 -0
- package/docs-dev/demos/theme-toggle/index.html +270 -0
- package/docs-dev/demos/tiles/index.html +270 -0
- package/docs-dev/demos/tooltip/index.html +270 -0
- package/docs-dev/guide/building-stylesheet/index.html +270 -0
- package/docs-dev/guide/developing-ulu-scss-module/index.html +270 -0
- package/docs-dev/guide/index.html +270 -0
- package/docs-dev/index.html +270 -0
- package/docs-dev/javascript/events/index.html +270 -0
- package/docs-dev/javascript/index.html +270 -0
- package/docs-dev/javascript/settings/index.html +270 -0
- package/docs-dev/javascript/ui-breakpoints/index.html +270 -0
- package/docs-dev/javascript/ui-collapsible/index.html +270 -0
- package/docs-dev/javascript/ui-details-group/index.html +270 -0
- package/docs-dev/javascript/ui-dialog/index.html +270 -0
- package/docs-dev/javascript/ui-flipcard/index.html +270 -0
- package/docs-dev/javascript/ui-grid/index.html +270 -0
- package/docs-dev/javascript/ui-modal-builder/index.html +270 -0
- package/docs-dev/javascript/ui-overflow-scroller/index.html +270 -0
- package/docs-dev/javascript/ui-overflow-scroller-pager/index.html +270 -0
- package/docs-dev/javascript/ui-page/index.html +270 -0
- package/docs-dev/javascript/ui-popover/index.html +270 -0
- package/docs-dev/javascript/ui-print/index.html +270 -0
- package/docs-dev/javascript/ui-print-details/index.html +270 -0
- package/docs-dev/javascript/ui-programmatic-modal/index.html +270 -0
- package/docs-dev/javascript/ui-proxy-click/index.html +270 -0
- package/docs-dev/javascript/ui-resizer/index.html +270 -0
- package/docs-dev/javascript/ui-scroll-slider/index.html +270 -0
- package/docs-dev/javascript/ui-scrollpoint/index.html +270 -0
- package/docs-dev/javascript/ui-slider/index.html +270 -0
- package/docs-dev/javascript/ui-tabs/index.html +270 -0
- package/docs-dev/javascript/ui-theme-toggle/index.html +270 -0
- package/docs-dev/javascript/ui-tooltip/index.html +270 -0
- package/docs-dev/javascript/utils-class-logger/index.html +270 -0
- package/docs-dev/javascript/utils-css/index.html +270 -0
- package/docs-dev/javascript/utils-dom/index.html +270 -0
- package/docs-dev/javascript/utils-file-save/index.html +270 -0
- package/docs-dev/javascript/utils-floating-ui/index.html +270 -0
- package/docs-dev/javascript/utils-id/index.html +270 -0
- package/docs-dev/javascript/utils-pause-youtube-video/index.html +270 -0
- package/docs-dev/javascript/utils-system/index.html +270 -0
- package/docs-dev/sass/base/color/index.html +270 -0
- package/docs-dev/sass/base/elements/index.html +270 -0
- package/docs-dev/sass/base/index/index.html +270 -0
- package/docs-dev/sass/base/index.html +270 -0
- package/docs-dev/sass/base/keyframes/index.html +270 -0
- package/docs-dev/sass/base/layout/index.html +270 -0
- package/docs-dev/sass/base/normalize/index.html +270 -0
- package/docs-dev/sass/base/print/index.html +270 -0
- package/docs-dev/sass/base/root/index.html +270 -0
- package/docs-dev/sass/base/typography/index.html +270 -0
- package/docs-dev/sass/components/accordion/index.html +270 -0
- package/docs-dev/sass/components/adaptive-spacing/index.html +270 -0
- package/docs-dev/sass/components/badge/index.html +270 -0
- package/docs-dev/sass/components/basic-hero/index.html +270 -0
- package/docs-dev/sass/components/button/index.html +270 -0
- package/docs-dev/sass/components/button-group/index.html +5683 -0
- package/docs-dev/sass/components/button-verbose/index.html +270 -0
- package/docs-dev/sass/components/callout/index.html +270 -0
- package/docs-dev/sass/components/captioned-figure/index.html +270 -0
- package/docs-dev/sass/components/card/index.html +270 -0
- package/docs-dev/sass/components/card-grid/index.html +270 -0
- package/docs-dev/sass/components/counter-list/index.html +270 -0
- package/docs-dev/sass/components/css-icon/index.html +270 -0
- package/docs-dev/sass/components/data-grid/index.html +284 -14
- package/docs-dev/sass/components/data-table/index.html +270 -0
- package/docs-dev/sass/components/fill-context/index.html +270 -0
- package/docs-dev/sass/components/flipcard/index.html +270 -0
- package/docs-dev/sass/components/flipcard-grid/index.html +270 -0
- package/docs-dev/sass/components/form-theme/index.html +270 -0
- package/docs-dev/sass/components/headline-label/index.html +5713 -0
- package/docs-dev/sass/components/hero/index.html +270 -0
- package/docs-dev/sass/components/horizontal-rule/index.html +270 -0
- package/docs-dev/sass/components/image-grid/index.html +270 -0
- package/docs-dev/sass/components/index/index.html +285 -10
- package/docs-dev/sass/components/index.html +270 -0
- package/docs-dev/sass/components/links/index.html +270 -0
- package/docs-dev/sass/components/list-inline/index.html +270 -0
- package/docs-dev/sass/components/list-lines/index.html +270 -0
- package/docs-dev/sass/components/list-ordered/index.html +270 -0
- package/docs-dev/sass/components/list-unordered/index.html +270 -0
- package/docs-dev/sass/components/menu-stack/index.html +270 -0
- package/docs-dev/sass/components/modal/index.html +270 -0
- package/docs-dev/sass/components/nav-strip/index.html +270 -0
- package/docs-dev/sass/components/overlay-section/index.html +270 -0
- package/docs-dev/sass/components/pager/index.html +270 -0
- package/docs-dev/sass/components/panel/index.html +5913 -0
- package/docs-dev/sass/components/placeholder-block/index.html +270 -0
- package/docs-dev/sass/components/popover/index.html +270 -0
- package/docs-dev/sass/components/pull-quote/index.html +270 -0
- package/docs-dev/sass/components/rail/index.html +5700 -0
- package/docs-dev/sass/components/ratio-box/index.html +270 -0
- package/docs-dev/sass/components/rule/index.html +270 -0
- package/docs-dev/sass/components/scroll-slider/index.html +270 -0
- package/docs-dev/sass/components/skip-link/index.html +270 -0
- package/docs-dev/sass/components/slider/index.html +270 -0
- package/docs-dev/sass/components/spoke-spinner/index.html +270 -0
- package/docs-dev/sass/components/sticky-list/index.html +270 -0
- package/docs-dev/sass/components/table-sticky/index.html +5677 -0
- package/docs-dev/sass/components/tabs/index.html +270 -0
- package/docs-dev/sass/components/tag/index.html +270 -0
- package/docs-dev/sass/components/tile-button/index.html +270 -0
- package/docs-dev/sass/components/tile-grid/index.html +270 -0
- package/docs-dev/sass/components/tile-grid-overlay/index.html +270 -0
- package/docs-dev/sass/components/vignette/index.html +270 -0
- package/docs-dev/sass/components/wysiwyg/index.html +270 -0
- package/docs-dev/sass/core/breakpoint/index.html +271 -1
- package/docs-dev/sass/core/button/index.html +302 -30
- package/docs-dev/sass/core/color/index.html +270 -0
- package/docs-dev/sass/core/cssvar/index.html +270 -0
- package/docs-dev/sass/core/element/index.html +376 -30
- package/docs-dev/sass/core/index.html +270 -0
- package/docs-dev/sass/core/layout/index.html +270 -0
- package/docs-dev/sass/core/path/index.html +270 -0
- package/docs-dev/sass/core/selector/index.html +270 -0
- package/docs-dev/sass/core/typography/index.html +270 -0
- package/docs-dev/sass/core/units/index.html +270 -0
- package/docs-dev/sass/core/utils/index.html +388 -76
- package/docs-dev/sass/helpers/color/index.html +270 -0
- package/docs-dev/sass/helpers/display/index.html +270 -0
- package/docs-dev/sass/helpers/index/index.html +270 -0
- package/docs-dev/sass/helpers/index.html +270 -0
- package/docs-dev/sass/helpers/typography/index.html +270 -0
- package/docs-dev/sass/helpers/units/index.html +270 -0
- package/docs-dev/sass/helpers/utilities/index.html +270 -0
- package/docs-dev/sass/index.html +270 -0
- package/package.json +1 -1
- package/scss/_breakpoint.scss +1 -1
- package/scss/_button.scss +7 -5
- package/scss/_element.scss +16 -0
- package/scss/_utils.scss +7 -0
- package/scss/components/_button-group.scss +90 -0
- package/scss/components/_data-grid.scss +0 -3
- package/scss/components/_headline-label.scss +83 -0
- package/scss/components/_index.scss +30 -0
- package/scss/components/_panel.scss +246 -0
- package/scss/components/_rail.scss +120 -0
- package/scss/components/_table-sticky.scss +185 -0
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
@forward "badge" as badge-*;
|
|
9
9
|
@forward "basic-hero" as basic-hero-*;
|
|
10
10
|
@forward "button" as button-*;
|
|
11
|
+
@forward "button-group" as button-group-*;
|
|
11
12
|
@forward "button-verbose" as button-verbose-*;
|
|
12
13
|
@forward "callout" as callout-*;
|
|
13
14
|
@forward "card" as card-*;
|
|
@@ -20,6 +21,7 @@
|
|
|
20
21
|
@forward "flipcard" as flipcard-*;
|
|
21
22
|
@forward "flipcard-grid" as flipcard-grid-*;
|
|
22
23
|
@forward "form-theme" as form-theme-*;
|
|
24
|
+
@forward "headline-label" as headline-label-*;
|
|
23
25
|
@forward "horizontal-rule" as horizontal-rule-*;
|
|
24
26
|
@forward "image-grid" as image-grid-*;
|
|
25
27
|
@forward "links" as links-*;
|
|
@@ -32,9 +34,11 @@
|
|
|
32
34
|
@forward "nav-strip" as nav-strip-*;
|
|
33
35
|
@forward "overlay-section" as overlay-section-*;
|
|
34
36
|
@forward "pager" as pager-*;
|
|
37
|
+
@forward "panel" as panel-*;
|
|
35
38
|
@forward "placeholder-block" as placeholder-block-*;
|
|
36
39
|
@forward "pull-quote" as pull-quote-*;
|
|
37
40
|
@forward "popover" as popover-*;
|
|
41
|
+
@forward "rail" as rail-*;
|
|
38
42
|
@forward "ratio-box" as ratio-box-*;
|
|
39
43
|
@forward "rule" as rule-*;
|
|
40
44
|
@forward "scroll-slider" as scroll-slider-*;
|
|
@@ -44,6 +48,7 @@
|
|
|
44
48
|
@forward "hero" as hero-*;
|
|
45
49
|
@forward "tabs" as tabs-*;
|
|
46
50
|
@forward "tag" as tag-*;
|
|
51
|
+
@forward "table-sticky" as table-sticky-*;
|
|
47
52
|
@forward "tile-grid" as tile-grid-*;
|
|
48
53
|
@forward "tile-button" as tile-button-*;
|
|
49
54
|
@forward "tile-grid-overlay" as tile-grid-overlay-*;
|
|
@@ -60,6 +65,7 @@
|
|
|
60
65
|
@use "badge";
|
|
61
66
|
@use "basic-hero";
|
|
62
67
|
@use "button";
|
|
68
|
+
@use "button-group";
|
|
63
69
|
@use "button-verbose";
|
|
64
70
|
@use "callout";
|
|
65
71
|
@use "card";
|
|
@@ -72,6 +78,7 @@
|
|
|
72
78
|
@use "flipcard";
|
|
73
79
|
@use "flipcard-grid";
|
|
74
80
|
@use "form-theme";
|
|
81
|
+
@use "headline-label";
|
|
75
82
|
@use "horizontal-rule";
|
|
76
83
|
@use "image-grid";
|
|
77
84
|
@use "list-lines";
|
|
@@ -84,9 +91,11 @@
|
|
|
84
91
|
@use "nav-strip";
|
|
85
92
|
@use "overlay-section";
|
|
86
93
|
@use "pager";
|
|
94
|
+
@use "panel";
|
|
87
95
|
@use "placeholder-block";
|
|
88
96
|
@use "popover";
|
|
89
97
|
@use "pull-quote";
|
|
98
|
+
@use "rail";
|
|
90
99
|
@use "ratio-box";
|
|
91
100
|
@use "rule";
|
|
92
101
|
@use "scroll-slider";
|
|
@@ -97,6 +106,7 @@
|
|
|
97
106
|
@use "tabs";
|
|
98
107
|
@use "tag";
|
|
99
108
|
@use "tile-grid";
|
|
109
|
+
@use "table-sticky";
|
|
100
110
|
@use "tile-button";
|
|
101
111
|
@use "tile-grid-overlay";
|
|
102
112
|
@use "vignette";
|
|
@@ -113,6 +123,7 @@ $all-includes: (
|
|
|
113
123
|
"badge",
|
|
114
124
|
"basic-hero",
|
|
115
125
|
"button",
|
|
126
|
+
"button-group",
|
|
116
127
|
"button-verbose",
|
|
117
128
|
"callout",
|
|
118
129
|
"card",
|
|
@@ -125,6 +136,7 @@ $all-includes: (
|
|
|
125
136
|
"flipcard",
|
|
126
137
|
"flipcard-grid",
|
|
127
138
|
"form-theme",
|
|
139
|
+
"headline-label",
|
|
128
140
|
"horizontal-rule",
|
|
129
141
|
"image-grid",
|
|
130
142
|
"links",
|
|
@@ -137,7 +149,9 @@ $all-includes: (
|
|
|
137
149
|
"nav-strip",
|
|
138
150
|
"overlay-section",
|
|
139
151
|
"pager",
|
|
152
|
+
"panel",
|
|
140
153
|
"popover",
|
|
154
|
+
"rail",
|
|
141
155
|
"ratio-box",
|
|
142
156
|
"rule",
|
|
143
157
|
"scroll-slider",
|
|
@@ -147,6 +161,7 @@ $all-includes: (
|
|
|
147
161
|
"hero",
|
|
148
162
|
"tabs",
|
|
149
163
|
"tag",
|
|
164
|
+
// "table-sticky", // Has to be included (for vue plugin)
|
|
150
165
|
"tile-grid",
|
|
151
166
|
"tile-button",
|
|
152
167
|
"tile-grid-overlay",
|
|
@@ -202,6 +217,9 @@ $current-includes: $all-includes;
|
|
|
202
217
|
@if (list.index($includes, "button")) {
|
|
203
218
|
@include button.styles;
|
|
204
219
|
}
|
|
220
|
+
@if (list.index($includes, "button-group")) {
|
|
221
|
+
@include button-group.styles;
|
|
222
|
+
}
|
|
205
223
|
@if (list.index($includes, "button-verbose")) {
|
|
206
224
|
@include button-verbose.styles;
|
|
207
225
|
}
|
|
@@ -247,6 +265,9 @@ $current-includes: $all-includes;
|
|
|
247
265
|
@if (list.index($includes, "form-theme")) {
|
|
248
266
|
@include form-theme.styles;
|
|
249
267
|
}
|
|
268
|
+
@if (list.index($includes, "headline-label")) {
|
|
269
|
+
@include headline-label.styles;
|
|
270
|
+
}
|
|
250
271
|
@if (list.index($includes, "horizontal-rule")) {
|
|
251
272
|
@include horizontal-rule.styles;
|
|
252
273
|
}
|
|
@@ -283,6 +304,9 @@ $current-includes: $all-includes;
|
|
|
283
304
|
@if (list.index($includes, "pager")) {
|
|
284
305
|
@include pager.styles;
|
|
285
306
|
}
|
|
307
|
+
@if (list.index($includes, "panel")) {
|
|
308
|
+
@include panel.styles;
|
|
309
|
+
}
|
|
286
310
|
@if (list.index($includes, "placeholder-block")) {
|
|
287
311
|
@include placeholder-block.styles;
|
|
288
312
|
}
|
|
@@ -292,6 +316,9 @@ $current-includes: $all-includes;
|
|
|
292
316
|
@if (list.index($includes, "pull-quote")) {
|
|
293
317
|
@include pull-quote.styles;
|
|
294
318
|
}
|
|
319
|
+
@if (list.index($includes, "rail")) {
|
|
320
|
+
@include rail.styles;
|
|
321
|
+
}
|
|
295
322
|
@if (list.index($includes, "ratio-box")) {
|
|
296
323
|
@include ratio-box.styles;
|
|
297
324
|
}
|
|
@@ -313,6 +340,9 @@ $current-includes: $all-includes;
|
|
|
313
340
|
@if (list.index($includes, "tabs")) {
|
|
314
341
|
@include tabs.styles;
|
|
315
342
|
}
|
|
343
|
+
@if (list.index($includes, "table-sticky")) {
|
|
344
|
+
@include table-sticky.styles;
|
|
345
|
+
}
|
|
316
346
|
@if (list.index($includes, "tile-grid")) {
|
|
317
347
|
@include tile-grid.styles;
|
|
318
348
|
}
|
|
@@ -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
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
////
|
|
2
|
+
/// @group rail
|
|
3
|
+
////
|
|
4
|
+
/// A horizontal, flexible container for arranging diverse inline elements.
|
|
5
|
+
/// It provides a consistent layout for icons, labels, buttons, or other
|
|
6
|
+
/// modular components, aligning content to either end or centering it.
|
|
7
|
+
/// Item spacing is controlled via margins, allowing for individual item gap adjustments.
|
|
8
|
+
|
|
9
|
+
@use "sass:map";
|
|
10
|
+
@use "sass:meta";
|
|
11
|
+
@use "sass:math";
|
|
12
|
+
|
|
13
|
+
@use "../utils";
|
|
14
|
+
@use "../color";
|
|
15
|
+
@use "../selector";
|
|
16
|
+
@use "../layout";
|
|
17
|
+
@use "../element";
|
|
18
|
+
|
|
19
|
+
// Used for function fallback
|
|
20
|
+
$-fallbacks: (
|
|
21
|
+
"separator" : (
|
|
22
|
+
"function" : meta.get-function("get-rule-style", false, "element"),
|
|
23
|
+
"arguments" : ("light",)
|
|
24
|
+
),
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
/// Module Settings
|
|
29
|
+
/// @type Map
|
|
30
|
+
/// @prop {Dimension} gap [1em] The default space between items in the rail
|
|
31
|
+
/// @prop {Map} gap-modifiers [("small" : 0.5em, "large" : 2em )] Alternate gaps (use child modifiers .rail__item--gap-[name], these apply gap changes between the item and the item before it
|
|
32
|
+
/// @prop {Dimension} margin-bottom [1em] The default space after rail
|
|
33
|
+
/// @prop {CssValue} separator [true] Pass border property for separator, defaults to element rule style light
|
|
34
|
+
|
|
35
|
+
$config: (
|
|
36
|
+
"gap" : 1em,
|
|
37
|
+
"margin-bottom" : 1em,
|
|
38
|
+
"separator" : true,
|
|
39
|
+
"gap-modifiers": (
|
|
40
|
+
"small" : 0.5em,
|
|
41
|
+
"none" : 0,
|
|
42
|
+
"large" : 2em
|
|
43
|
+
),
|
|
44
|
+
) !default;
|
|
45
|
+
|
|
46
|
+
/// Change modules $config
|
|
47
|
+
/// @param {Map} $changes Map of changes
|
|
48
|
+
/// @example scss
|
|
49
|
+
/// @include ulu.component-rail-set(( "gap" : 1.5em ));
|
|
50
|
+
|
|
51
|
+
@mixin set($changes) {
|
|
52
|
+
$config: map.merge($config, $changes) !global;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/// Get a config option
|
|
56
|
+
/// @param {Map} $name Name of property
|
|
57
|
+
/// @example scss
|
|
58
|
+
/// @include ulu.component-rail-get("gap");
|
|
59
|
+
|
|
60
|
+
@function get($name) {
|
|
61
|
+
$value: utils.require-map-get($config, $name, "rail [config]");
|
|
62
|
+
@return utils.function-fallback($name, $value, $-fallbacks);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/// Prints component styles
|
|
66
|
+
/// @example scss
|
|
67
|
+
/// @include ulu.component-rail-styles();
|
|
68
|
+
|
|
69
|
+
@mixin styles {
|
|
70
|
+
$prefix: selector.class("rail");
|
|
71
|
+
$gap: get("gap");
|
|
72
|
+
|
|
73
|
+
#{ $prefix } {
|
|
74
|
+
display: flex;
|
|
75
|
+
align-items: center;
|
|
76
|
+
flex-wrap: wrap;
|
|
77
|
+
gap: $gap;
|
|
78
|
+
margin-bottom: get("margin-bottom");
|
|
79
|
+
max-width: 100%;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// Modifiers
|
|
83
|
+
// - Note: Originally had mods for each type of flexbox layout
|
|
84
|
+
// simplified to just agnostic naming and only what is currently needed
|
|
85
|
+
// can update this in the future to add more alignment options if
|
|
86
|
+
// use cases come up
|
|
87
|
+
|
|
88
|
+
#{ $prefix }--justified {
|
|
89
|
+
justify-content: space-between;
|
|
90
|
+
}
|
|
91
|
+
#{ $prefix }--baseline {
|
|
92
|
+
align-items: baseline;
|
|
93
|
+
}
|
|
94
|
+
#{ $prefix }--nowrap {
|
|
95
|
+
flex-wrap: nowrap;
|
|
96
|
+
overflow-x: auto;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// Item level modifiers
|
|
100
|
+
#{ $prefix }__item--pull {
|
|
101
|
+
margin-inline-start: auto;
|
|
102
|
+
}
|
|
103
|
+
#{ $prefix }__item--separator {
|
|
104
|
+
border-inline-start: get("separator");
|
|
105
|
+
padding-inline-start: $gap;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
@each $name, $value in get("gap-modifiers") {
|
|
109
|
+
|
|
110
|
+
$calc-gap: $value - $gap;
|
|
111
|
+
|
|
112
|
+
#{ $prefix }__item--gap-#{ $name } {
|
|
113
|
+
margin-inline-start: $calc-gap;
|
|
114
|
+
|
|
115
|
+
&#{ $prefix }__item--separator {
|
|
116
|
+
padding-inline-start: $value;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
////
|
|
2
|
+
/// @group table-sticky
|
|
3
|
+
/// For use with table-sticky plugin (vue) or other framework implementations, not output by default must be enabled.
|
|
4
|
+
////
|
|
5
|
+
|
|
6
|
+
@use "sass:map";
|
|
7
|
+
@use "sass:meta";
|
|
8
|
+
|
|
9
|
+
@use "../selector";
|
|
10
|
+
@use "../utils";
|
|
11
|
+
@use "../color";
|
|
12
|
+
@use "../element";
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
// Used for function fallback
|
|
16
|
+
$-fallbacks: (
|
|
17
|
+
"box-shadow" : (
|
|
18
|
+
"function" : meta.get-function("get", false, "element"),
|
|
19
|
+
"property" : "box-shadow"
|
|
20
|
+
),
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
/// Module Settings
|
|
24
|
+
/// @type Map
|
|
25
|
+
/// @prop {CssValue} box-shadow [true] Box shadow for controls, defaults to element box-shadow
|
|
26
|
+
|
|
27
|
+
$config: (
|
|
28
|
+
"box-shadow": true,
|
|
29
|
+
"ui-color-disabled": #6490af,
|
|
30
|
+
) !default;
|
|
31
|
+
|
|
32
|
+
/// Change modules $config
|
|
33
|
+
/// @param {Map} $changes Map of changes
|
|
34
|
+
/// @example scss
|
|
35
|
+
/// @include ulu.component-table-sticky-set(( "property" : value ));
|
|
36
|
+
|
|
37
|
+
@mixin set($changes) {
|
|
38
|
+
$config: map.merge($config, $changes) !global;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/// Get a config option
|
|
42
|
+
/// @param {Map} $name Name of property
|
|
43
|
+
/// @example scss
|
|
44
|
+
/// @include ulu.component-table-sticky-get("property");
|
|
45
|
+
|
|
46
|
+
@function get($name) {
|
|
47
|
+
$value: utils.require-map-get($config, $name, "table-sticky [config]");
|
|
48
|
+
@return utils.function-fallback($name, $value, $-fallbacks);
|
|
49
|
+
}
|
|
50
|
+
/// Prints component styles
|
|
51
|
+
/// @demo table-sticky
|
|
52
|
+
/// @example scss
|
|
53
|
+
/// @include ulu.component-table-sticky-styles();
|
|
54
|
+
|
|
55
|
+
@mixin styles {
|
|
56
|
+
$prefix: selector.class("table-sticky");
|
|
57
|
+
|
|
58
|
+
#{ $prefix } {
|
|
59
|
+
position: relative; // For controls
|
|
60
|
+
width: 100%;
|
|
61
|
+
* {
|
|
62
|
+
box-sizing: border-box;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
#{ $prefix }__display {
|
|
66
|
+
overflow-x: auto;
|
|
67
|
+
overflow-y: hidden;
|
|
68
|
+
// scroll-behavior: smooth;
|
|
69
|
+
}
|
|
70
|
+
#{ $prefix }__table {
|
|
71
|
+
// border-collapse: collapse;
|
|
72
|
+
margin: 0;
|
|
73
|
+
padding: 0;
|
|
74
|
+
width: 100%;
|
|
75
|
+
}
|
|
76
|
+
#{ $prefix }__sticky-wrap {
|
|
77
|
+
position: sticky;
|
|
78
|
+
top: -1px;
|
|
79
|
+
left: 0;
|
|
80
|
+
width: 100%;
|
|
81
|
+
z-index: 2;
|
|
82
|
+
margin-bottom: 200px; // Distance from bottom of table to disable
|
|
83
|
+
margin-top: -200px; // Distance from bottom of table to disable
|
|
84
|
+
}
|
|
85
|
+
#{ $prefix }__sticky-wrap--first-column-header {
|
|
86
|
+
z-index: 4;
|
|
87
|
+
}
|
|
88
|
+
#{ $prefix }__sticky-wrap--controls {
|
|
89
|
+
margin-top: -52vh;
|
|
90
|
+
margin-bottom: 52vh;
|
|
91
|
+
}
|
|
92
|
+
#{ $prefix }__header-wrap {
|
|
93
|
+
position: absolute;
|
|
94
|
+
top: 0;
|
|
95
|
+
left: 0;
|
|
96
|
+
right: 0;
|
|
97
|
+
overflow: hidden;
|
|
98
|
+
}
|
|
99
|
+
#{ $prefix }__table--first-column-header,
|
|
100
|
+
#{ $prefix }__table--first-column {
|
|
101
|
+
position: absolute;
|
|
102
|
+
top: 0;
|
|
103
|
+
left: 0;
|
|
104
|
+
width: auto !important;
|
|
105
|
+
}
|
|
106
|
+
#{ $prefix }__table--first-column {
|
|
107
|
+
z-index: 3;
|
|
108
|
+
}
|
|
109
|
+
#{ $prefix }__table--header {
|
|
110
|
+
will-change: transform;
|
|
111
|
+
}
|
|
112
|
+
#{ $prefix }__hidden-visually {
|
|
113
|
+
position: absolute;
|
|
114
|
+
left: -10000px;
|
|
115
|
+
top: auto;
|
|
116
|
+
width: 1px;
|
|
117
|
+
height: 1px;
|
|
118
|
+
overflow: hidden;
|
|
119
|
+
}
|
|
120
|
+
// NOTE: The table caption needs to be positioned normally
|
|
121
|
+
// as display table-cell. Making absolute for hidden-visually
|
|
122
|
+
// is causing chrome to add an anonymous cell to the table resulting in a 1px
|
|
123
|
+
// cell under the header. Which is messing up alignments. The only solution
|
|
124
|
+
// without removing the <caption> (not good for WCAG) is to position it at the
|
|
125
|
+
// of the table so it doesn't affect the header alignments. Then cropping it to
|
|
126
|
+
// a pixel and using negative margin to remove it's pixel from the flow beneath
|
|
127
|
+
#{ $prefix }__caption {
|
|
128
|
+
margin-bottom: -1px;
|
|
129
|
+
height: 1px;
|
|
130
|
+
padding: 0 !important;
|
|
131
|
+
margin: 0 !important;
|
|
132
|
+
overflow: hidden;
|
|
133
|
+
display: none;
|
|
134
|
+
}
|
|
135
|
+
// Allow initiating scrolling by dragging first column
|
|
136
|
+
#{ $prefix }--can-scroll-right:not(#{ $prefix }--can-scroll-left) {
|
|
137
|
+
#{ $prefix }__table--first-column-header,
|
|
138
|
+
#{ $prefix }__table--first-column {
|
|
139
|
+
// pointer-events: none;
|
|
140
|
+
visibility: hidden;
|
|
141
|
+
// opacity: 0 !important;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
#{ $prefix }__controls {
|
|
145
|
+
position: absolute;
|
|
146
|
+
top: 50vh;
|
|
147
|
+
right: 20px;
|
|
148
|
+
}
|
|
149
|
+
#{ $prefix }__controls-inner {
|
|
150
|
+
display: flex;
|
|
151
|
+
}
|
|
152
|
+
#{ $prefix }__control {
|
|
153
|
+
box-shadow: get("box-shadow");
|
|
154
|
+
}
|
|
155
|
+
#{ $prefix }__sort-button {
|
|
156
|
+
display: flex;
|
|
157
|
+
align-items: center;
|
|
158
|
+
font-weight: inherit;
|
|
159
|
+
font-style: inherit;
|
|
160
|
+
font-size: inherit;
|
|
161
|
+
}
|
|
162
|
+
#{ $prefix }__sort-button--focused {
|
|
163
|
+
outline: 2px auto Highlight;
|
|
164
|
+
outline: 2px auto -webkit-focus-ring-color;
|
|
165
|
+
}
|
|
166
|
+
#{ $prefix }__sort-icon {
|
|
167
|
+
margin-left: auto;
|
|
168
|
+
padding-left: 1em;
|
|
169
|
+
display: block;
|
|
170
|
+
opacity: 0.5;
|
|
171
|
+
.sort-active & {
|
|
172
|
+
opacity: 1;
|
|
173
|
+
}
|
|
174
|
+
.sort-ascending & {
|
|
175
|
+
#{ $prefix }__sort-icon-inner {
|
|
176
|
+
transform: rotate(180deg);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
#{ $prefix }__sort-icon-inner {
|
|
181
|
+
display: block;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
|