@ulu/frontend 0.1.0-beta.35 → 0.1.0-beta.36
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 +41 -2
- package/dist/ulu-frontend.min.css +1 -1
- package/dist/ulu-frontend.min.js +20 -20
- package/docs-dev/changelog/index.html +40 -1
- package/docs-dev/demos/button/index.html +10 -0
- package/docs-dev/demos/card/index.html +21 -15
- package/docs-dev/demos/card-grid/index.html +34 -38
- package/docs-dev/demos/data-table/index.html +158 -25
- package/docs-dev/demos/menu-stack/index.html +15 -0
- package/docs-dev/demos/overlay-section/index.html +73 -3
- package/docs-dev/demos/popovers/index.html +88 -0
- package/docs-dev/demos/rule/index.html +13 -1
- package/docs-dev/demos/scroll-slider/index.html +12 -12
- package/docs-dev/sass/components/card/index.html +15 -9
- package/docs-dev/sass/components/form-theme/index.html +17 -17
- package/docs-dev/sass/components/rule/index.html +1 -1
- package/js/settings.js +23 -6
- package/js/ui/breakpoints.js +18 -14
- package/js/ui/collapsible.js +8 -1
- package/js/ui/modal-builder.js +21 -17
- package/js/ui/overflow-scroller.js +1 -0
- package/js/utils/css.js +13 -0
- package/package.json +1 -1
- package/scss/_breakpoint.scss +15 -2
- package/scss/_utils.scss +19 -2
- package/scss/components/_button-verbose.scss +19 -2
- package/scss/components/_card.scss +54 -5
- package/scss/components/_data-grid.scss +36 -7
- package/scss/components/_form-theme.scss +17 -17
- package/scss/components/_modal.scss +6 -0
- package/scss/components/_rule.scss +1 -0
- package/types/settings.d.ts +31 -3
- package/types/settings.d.ts.map +1 -1
- package/types/ui/breakpoints.d.ts +14 -14
- package/types/ui/breakpoints.d.ts.map +1 -1
- package/types/ui/collapsible.d.ts.map +1 -1
- package/types/ui/modal-builder.d.ts +1 -0
- package/types/ui/modal-builder.d.ts.map +1 -1
- package/types/ui/overflow-scroller.d.ts.map +1 -1
- package/types/utils/css.d.ts +11 -0
- package/types/utils/css.d.ts.map +1 -0
package/js/ui/collapsible.js
CHANGED
|
@@ -71,7 +71,14 @@ export class Collapsible {
|
|
|
71
71
|
}
|
|
72
72
|
this.focusoutHandler = (event) => {
|
|
73
73
|
if (focusoutCloses) {
|
|
74
|
-
|
|
74
|
+
// If closing on focus out we attach one-time event to
|
|
75
|
+
// see which element is focused next (in between focusout and focusin
|
|
76
|
+
// it's the body) so doing the logic in focusout won't work
|
|
77
|
+
document.addEventListener('focusin', () => {
|
|
78
|
+
if (!content.contains(document.activeElement)) {
|
|
79
|
+
this.close(event);
|
|
80
|
+
}
|
|
81
|
+
}, { once: true });
|
|
75
82
|
}
|
|
76
83
|
};
|
|
77
84
|
trigger.addEventListener("click", this.clickHandler);
|
package/js/ui/modal-builder.js
CHANGED
|
@@ -37,14 +37,17 @@ export const defaults = {
|
|
|
37
37
|
print: false,
|
|
38
38
|
noMinHeight: false,
|
|
39
39
|
class: "",
|
|
40
|
+
baseClass: "modal",
|
|
40
41
|
classCloseIcon: wrapSettingString("iconClassClose"),
|
|
41
42
|
classResizerIcon: wrapSettingString("iconClassDragX"),
|
|
42
43
|
debug: false,
|
|
43
44
|
templateCloseIcon(config) {
|
|
44
|
-
|
|
45
|
+
const { baseClass, classCloseIcon } = config;
|
|
46
|
+
return `<span class="${ baseClass }__close-icon ${ classCloseIcon }" aria-hidden="true"></span>`;
|
|
45
47
|
},
|
|
46
48
|
templateResizerIcon(config) {
|
|
47
|
-
|
|
49
|
+
const { baseClass, classResizerIcon } = config;
|
|
50
|
+
return `<span class="${ baseClass }__resizer-icon ${ classResizerIcon }" aria-hidden="true"></span>`;
|
|
48
51
|
},
|
|
49
52
|
/**
|
|
50
53
|
* Default modal template
|
|
@@ -53,35 +56,36 @@ export const defaults = {
|
|
|
53
56
|
* @returns {String} Markup for modal
|
|
54
57
|
*/
|
|
55
58
|
template(id, config) {
|
|
59
|
+
const { baseClass } = config;
|
|
56
60
|
const classes = [
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
...(!config.title ? [
|
|
62
|
-
...(config.bodyFills ? [
|
|
63
|
-
...(config.noBackdrop ? [
|
|
64
|
-
...(config.noMinHeight ? [
|
|
61
|
+
baseClass,
|
|
62
|
+
`${ baseClass }--${ config.position }`,
|
|
63
|
+
`${ baseClass }--${ config.size }`,
|
|
64
|
+
`${ baseClass }--${ config.allowResize ? "resize" : "no-resize" }`,
|
|
65
|
+
...(!config.title ? [`${ baseClass }--no-header`] : []),
|
|
66
|
+
...(config.bodyFills ? [`${ baseClass }--body-fills`] : []),
|
|
67
|
+
...(config.noBackdrop ? [`${ baseClass }--no-backdrop`] : []),
|
|
68
|
+
...(config.noMinHeight ? [`${ baseClass }--no-min-height`] : [] ),
|
|
65
69
|
...(config.class ? [config.class] : []),
|
|
66
70
|
];
|
|
67
71
|
return `
|
|
68
72
|
<dialog id="${ id }" class="${ classes.join(" ") }">
|
|
69
73
|
${ config.title ? `
|
|
70
|
-
<header class="
|
|
71
|
-
<h2 class="
|
|
74
|
+
<header class="${ baseClass }__header">
|
|
75
|
+
<h2 class="${ baseClass }__title">
|
|
72
76
|
${ config.titleIcon ?
|
|
73
|
-
`<span class="
|
|
77
|
+
`<span class="${ baseClass }__title-icon ${ config.titleIcon }" aria-hidden="true"></span>` : ""
|
|
74
78
|
}
|
|
75
|
-
<span class="
|
|
79
|
+
<span class="${ baseClass }__title-text">${ config.title }</span>
|
|
76
80
|
</h2>
|
|
77
|
-
<button class="
|
|
81
|
+
<button class="${ baseClass }__close" aria-label="Close modal" ${ closeAttribute } autofocus>
|
|
78
82
|
${ config.templateCloseIcon(config) }
|
|
79
83
|
</button>
|
|
80
84
|
</header>
|
|
81
85
|
` : "" }
|
|
82
|
-
<div class="
|
|
86
|
+
<div class="${ baseClass }__body" ${ initializer.getAttribute("body") }></div>
|
|
83
87
|
${ config.hasResizer ?
|
|
84
|
-
`<div class="
|
|
88
|
+
`<div class="${ baseClass }__resizer" ${ initializer.getAttribute("resizer") }>
|
|
85
89
|
${ config.templateResizerIcon(config) }
|
|
86
90
|
</div>` : ""
|
|
87
91
|
}
|
package/js/utils/css.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module utils/css
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Generates a CSS custom property name with a given prefix.
|
|
7
|
+
* @param {string} prefix The prefix to apply to the custom property name.
|
|
8
|
+
* @param {string} propertyName The base name of the custom property.
|
|
9
|
+
* @returns {string} The fully formed CSS custom property name (e.g., "--prefix-propertyName").
|
|
10
|
+
*/
|
|
11
|
+
export function getCustomProperty(prefix, propertyName) {
|
|
12
|
+
return `--${prefix}-${propertyName}`;
|
|
13
|
+
}
|
package/package.json
CHANGED
package/scss/_breakpoint.scss
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
////
|
|
5
5
|
|
|
6
6
|
@use "sass:map";
|
|
7
|
+
@use "sass:list";
|
|
7
8
|
@use "utils";
|
|
8
9
|
|
|
9
10
|
/// Module Settings
|
|
@@ -30,8 +31,12 @@ $config: (
|
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
/// Get a config option
|
|
33
|
-
/// @
|
|
34
|
-
///
|
|
34
|
+
/// @compiler
|
|
35
|
+
/// @use "index" as ulu;
|
|
36
|
+
/// @example scss {compile} Example usage
|
|
37
|
+
/// .test-get {
|
|
38
|
+
/// font-size: ulu.breakpoint-get("base");
|
|
39
|
+
/// }
|
|
35
40
|
/// @param {Map} $name Name of property
|
|
36
41
|
/// @return {*} Property Value
|
|
37
42
|
|
|
@@ -66,6 +71,14 @@ $sizes: (
|
|
|
66
71
|
|
|
67
72
|
/// Get all breakpoint sizes
|
|
68
73
|
/// @return {Map} Map of breakpoints (equivalent to $sizes)
|
|
74
|
+
/// @compiler
|
|
75
|
+
/// @use "index" as ulu;
|
|
76
|
+
/// @use "sass:map";
|
|
77
|
+
/// @example scss {compile} Example usage
|
|
78
|
+
/// .test-get {
|
|
79
|
+
/// $sizes: ulu.breakpoint-get-sizes();
|
|
80
|
+
/// height: map.get($sizes, "medium");
|
|
81
|
+
/// }
|
|
69
82
|
|
|
70
83
|
@function get-sizes() {
|
|
71
84
|
@return $sizes;
|
package/scss/_utils.scss
CHANGED
|
@@ -34,8 +34,12 @@ $config: (
|
|
|
34
34
|
|
|
35
35
|
/// Get a config option
|
|
36
36
|
/// @param {Map} $name Name of property
|
|
37
|
-
/// @
|
|
38
|
-
/// @
|
|
37
|
+
/// @compiler
|
|
38
|
+
/// @use "index" as ulu;
|
|
39
|
+
/// @example scss {compile} Example usage
|
|
40
|
+
/// .test-em-to-pixel {
|
|
41
|
+
/// width: ulu.utils-get("pixel-em-base");
|
|
42
|
+
/// }
|
|
39
43
|
|
|
40
44
|
@function get($name) {
|
|
41
45
|
@return require-map-get($config, $name, 'utils');
|
|
@@ -47,6 +51,13 @@ $config: (
|
|
|
47
51
|
/// @param {String} $key The key in the map to get value from
|
|
48
52
|
/// @param {String} $context The context of using this function for debugging help
|
|
49
53
|
/// @return {*} The value from the map
|
|
54
|
+
/// @compiler
|
|
55
|
+
/// @use "index" as ulu;
|
|
56
|
+
/// @example scss {compile} Example usage
|
|
57
|
+
/// .test-require-map {
|
|
58
|
+
/// $test-map: ("test-font-size": 12px);
|
|
59
|
+
/// font-size: ulu.utils-require-map-get($test-map, "test-font-size");
|
|
60
|
+
/// }
|
|
50
61
|
|
|
51
62
|
@function require-map-get($map, $key, $context: "unknown") {
|
|
52
63
|
// $value: map.get($map, $key);
|
|
@@ -473,6 +484,12 @@ $config: (
|
|
|
473
484
|
/// Strips the unit from the number
|
|
474
485
|
/// - Normally this shouldn't be needed
|
|
475
486
|
/// @link https://stackoverflow.com/questions/12328259/how-do-you-strip-the-unit-from-any-number-in-sass/12335841#12335841 Original source (Miriam Suzanne)
|
|
487
|
+
/// @compiler
|
|
488
|
+
/// @use "index" as ulu;
|
|
489
|
+
/// @example scss {compile} Example usage
|
|
490
|
+
/// .test {
|
|
491
|
+
/// line-height: ulu.utils-strip-unit(4rem);
|
|
492
|
+
/// }
|
|
476
493
|
|
|
477
494
|
@function strip-unit($value) {
|
|
478
495
|
@if (is-number($value)) {
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
@use "../color";
|
|
11
11
|
@use "../element";
|
|
12
12
|
@use "../selector";
|
|
13
|
+
@use "../button";
|
|
13
14
|
|
|
14
15
|
// Used for function fallback
|
|
15
16
|
$-fallbacks: (
|
|
@@ -24,6 +25,14 @@ $-fallbacks: (
|
|
|
24
25
|
"box-shadow-hover" : (
|
|
25
26
|
"function" : meta.get-function("get", false, "element"),
|
|
26
27
|
"property" : "box-shadow-hover"
|
|
28
|
+
),
|
|
29
|
+
"border-color" : (
|
|
30
|
+
"function" : meta.get-function("get", false, "button"),
|
|
31
|
+
"property" : "border-color"
|
|
32
|
+
),
|
|
33
|
+
"border-width" : (
|
|
34
|
+
"function" : meta.get-function("get", false, "button"),
|
|
35
|
+
"property" : "border-width"
|
|
27
36
|
)
|
|
28
37
|
);
|
|
29
38
|
|
|
@@ -32,6 +41,8 @@ $-fallbacks: (
|
|
|
32
41
|
/// @prop {Color} background-color [white] Background color for the button.
|
|
33
42
|
/// @prop {Color} background-color-hover [link] Background color for the button when hovered or focused.
|
|
34
43
|
/// @prop {String} border-radius [border-radius] Border radius of the button.
|
|
44
|
+
/// @prop {String} border-width [null] Border width (or set to true to inherit button border width default)
|
|
45
|
+
/// @prop {String} border-color [null] Border color (or set to true to inherit button border width default)
|
|
35
46
|
/// @prop {CssValue} box-shadow [true] Box shadow for the button. If set to true, uses default box-shadow.
|
|
36
47
|
/// @prop {CssValue} box-shadow-hover [true] Box shadow for the button when hovered or focused. If set to true, uses default box-shadow-hover.
|
|
37
48
|
/// @prop {String} color [type] Text color for the button.
|
|
@@ -58,6 +69,8 @@ $config: (
|
|
|
58
69
|
"background-color" : white,
|
|
59
70
|
"background-color-hover" : #F7F8F7,
|
|
60
71
|
"border-radius" : true,
|
|
72
|
+
"border-color" : null,
|
|
73
|
+
"border-width" : null,
|
|
61
74
|
"box-shadow" : true,
|
|
62
75
|
"box-shadow-hover" : true,
|
|
63
76
|
"color" : "type",
|
|
@@ -122,17 +135,21 @@ $config: (
|
|
|
122
135
|
$padding-right: ($padding-x * 2) + 1em;
|
|
123
136
|
$cap-side: get("cap-side");
|
|
124
137
|
$cap-defaults: (
|
|
138
|
+
"offset" : utils.if-type("number", get("border-width"), 0),
|
|
125
139
|
"border-radius" : if(get("cap-match-radius"), get("border-radius"), 0),
|
|
126
140
|
"padding-adjust" : if(utils.is-side($cap-side), $padding-x, $padding-y)
|
|
127
141
|
);
|
|
128
142
|
|
|
129
143
|
#{ $prefix } {
|
|
144
|
+
position: relative; // For cap and icon
|
|
145
|
+
display: block;
|
|
130
146
|
text-decoration: none;
|
|
131
147
|
border-radius: get("border-radius");
|
|
148
|
+
@if (get("border-width")) {
|
|
149
|
+
border: get("border-width") solid color.get(get("border-color"));
|
|
150
|
+
}
|
|
132
151
|
box-shadow: get("box-shadow");
|
|
133
152
|
line-height: get("line-height");
|
|
134
|
-
position: relative; // For cap and icon
|
|
135
|
-
display: block;
|
|
136
153
|
margin-bottom: get("margin");
|
|
137
154
|
max-width: 100%;
|
|
138
155
|
width: get("min-width");
|
|
@@ -122,6 +122,12 @@ $config: (
|
|
|
122
122
|
"overlay-background-color": rgba(0, 0, 0, 0.6),
|
|
123
123
|
"overlay-shading": true,
|
|
124
124
|
"overlay-body-padding-y": 1rem,
|
|
125
|
+
// new below
|
|
126
|
+
"toggle-aside-rule" : true,
|
|
127
|
+
"aside-rule-width" : 6px,
|
|
128
|
+
"aside-background-color" : rgb(197, 197, 197),
|
|
129
|
+
"aside-rule-color": green,
|
|
130
|
+
|
|
125
131
|
) !default;
|
|
126
132
|
|
|
127
133
|
/// Change modules $config
|
|
@@ -309,9 +315,15 @@ $config: (
|
|
|
309
315
|
}
|
|
310
316
|
}
|
|
311
317
|
}
|
|
312
|
-
|
|
313
|
-
#{ $prefix }__footer
|
|
314
|
-
|
|
318
|
+
|
|
319
|
+
#{ $prefix }__footer {
|
|
320
|
+
padding: get("padding");
|
|
321
|
+
}
|
|
322
|
+
#{ $prefix }__main {
|
|
323
|
+
padding: get("padding");
|
|
324
|
+
}
|
|
325
|
+
#{ $prefix }__aside {
|
|
326
|
+
position: relative;
|
|
315
327
|
padding: get("padding");
|
|
316
328
|
}
|
|
317
329
|
|
|
@@ -320,6 +332,7 @@ $config: (
|
|
|
320
332
|
display: flex;
|
|
321
333
|
align-items: center;
|
|
322
334
|
justify-content: center;
|
|
335
|
+
// padding: 2rem;
|
|
323
336
|
img {
|
|
324
337
|
position: static;
|
|
325
338
|
display: block;
|
|
@@ -335,9 +348,25 @@ $config: (
|
|
|
335
348
|
z-index: 2; // Above image
|
|
336
349
|
}
|
|
337
350
|
#{ $prefix }__body {
|
|
351
|
+
display: flex;
|
|
352
|
+
flex-direction: column;
|
|
338
353
|
flex-grow: 1;
|
|
339
354
|
min-height: get("body-min-height");
|
|
340
355
|
}
|
|
356
|
+
@if(get("toggle-aside-rule")) {
|
|
357
|
+
#{ $prefix }__aside {
|
|
358
|
+
background-color: color.get(get("aside-background-color"));
|
|
359
|
+
}
|
|
360
|
+
#{ $prefix }__aside::after {
|
|
361
|
+
content: "";
|
|
362
|
+
position: absolute;
|
|
363
|
+
top: calc(0rem - get("aside-rule-width") / 2);
|
|
364
|
+
left: get("padding");
|
|
365
|
+
right: get("padding");
|
|
366
|
+
height: get("aside-rule-width");
|
|
367
|
+
background-color: color.get(get("aside-rule-color"));
|
|
368
|
+
}
|
|
369
|
+
}
|
|
341
370
|
// For actions/messages
|
|
342
371
|
// - Layout as flex with min height to support buttons
|
|
343
372
|
// and text without relying so much on padding
|
|
@@ -475,11 +504,31 @@ $config: (
|
|
|
475
504
|
grid-column: 2 / 3;
|
|
476
505
|
}
|
|
477
506
|
#{ $prefix }__body {
|
|
478
|
-
display: flex;
|
|
479
|
-
flex-direction:
|
|
507
|
+
// display: flex;
|
|
508
|
+
flex-direction: row;
|
|
480
509
|
justify-content: center;
|
|
481
510
|
max-width: get("horizontal-body-max-width");
|
|
482
511
|
}
|
|
512
|
+
@if(get("toggle-aside-rule")) {
|
|
513
|
+
#{ $prefix }__main {
|
|
514
|
+
flex: 1 1 60%;
|
|
515
|
+
}
|
|
516
|
+
#{ $prefix }__aside {
|
|
517
|
+
flex: 1 1 40%;
|
|
518
|
+
height: 100%;
|
|
519
|
+
// flex-basis: 40%;
|
|
520
|
+
// min-width: 40%;
|
|
521
|
+
}
|
|
522
|
+
#{ $prefix }__aside::after {
|
|
523
|
+
content: "";
|
|
524
|
+
position: absolute;
|
|
525
|
+
top: get("padding");
|
|
526
|
+
left: calc(0rem - get("aside-rule-width") / 2);
|
|
527
|
+
height: calc(100% - get("padding") - get("padding"));
|
|
528
|
+
width: get("aside-rule-width");
|
|
529
|
+
background-color: get("aside-rule-color");
|
|
530
|
+
}
|
|
531
|
+
}
|
|
483
532
|
|
|
484
533
|
// For modern browsers
|
|
485
534
|
// Optionally use no-image modifier for older browser support
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
$config: (
|
|
39
39
|
"attribute": "data-grid",
|
|
40
40
|
"attribute-container": "data-grid-container",
|
|
41
|
+
"attribute-init": "data-grid-init",
|
|
41
42
|
"breakpoint": false, // Fallback to default
|
|
42
43
|
"columns": 12,
|
|
43
44
|
"gutter": 14px,
|
|
@@ -49,6 +50,7 @@ $config: (
|
|
|
49
50
|
"sticky-top": var(--ulu-sticky-top-offset, 0),
|
|
50
51
|
"rule-color" : "rule",
|
|
51
52
|
"rule-size" : 1px,
|
|
53
|
+
"rule-fade-duration" : 400ms,
|
|
52
54
|
"extra-breakpoints": (
|
|
53
55
|
"medium" : (
|
|
54
56
|
"breakpoint": "medium",
|
|
@@ -134,6 +136,7 @@ $config: (
|
|
|
134
136
|
/// @param {Map} $extra-rule-styles Map of other rule styles to add (map of maps of size, and color), key is the styles name ("name": ("size" : 4px, "color" : "color name" || color))
|
|
135
137
|
/// @param {String} $extra-gutter-scales A map of gutter scales used like `data-grid="gutter-scale: large`, configuration map property becomes scale name and value is the amount (multiplier) to apply to the grid's gutter ie `( "large" : 2.25 )`
|
|
136
138
|
/// @param {Map} $attribute Attribute to use for selecting grid and children. Children attribute get's "-item" as a suffix ("ie. data-grid, data-grid-item")
|
|
139
|
+
/// @param {CssDuration} $rule-fade-duration The amount of time for rules to fade in (after init, script positioning), set to falsey value to disable rule fade in (rules will always be shown)
|
|
137
140
|
|
|
138
141
|
@mixin create(
|
|
139
142
|
$columns: get("columns"),
|
|
@@ -146,14 +149,17 @@ $config: (
|
|
|
146
149
|
$extra-rule-styles: get("extra-rule-styles"),
|
|
147
150
|
$extra-gutter-scales: get("extra-gutter-scales"),
|
|
148
151
|
$attribute: get("attribute"),
|
|
152
|
+
$attribute-init: get("attribute-init"),
|
|
149
153
|
$include-container: true,
|
|
150
154
|
$container-attribute: get("attribute-container"),
|
|
151
155
|
$container-gutter-scales: true,
|
|
152
156
|
$sticky-top: get("sticky-top"),
|
|
153
|
-
$sticky-bottom: get("sticky-bottom")
|
|
157
|
+
$sticky-bottom: get("sticky-bottom"),
|
|
158
|
+
$rule-fade-duration: get("rule-fade-duration")
|
|
154
159
|
) {
|
|
155
160
|
$attribute-item: "#{ $attribute }-item";
|
|
156
161
|
$select-grid: '[#{ $attribute }*="columns: #{ $columns }"]';
|
|
162
|
+
$select-grid-not-init: '[#{ $attribute }]:not([#{ $attribute-init }])';
|
|
157
163
|
$select-item: '[#{ $attribute-item }]';
|
|
158
164
|
$select-rule-col: "::before";
|
|
159
165
|
$select-rule-row: "::after";
|
|
@@ -215,6 +221,20 @@ $config: (
|
|
|
215
221
|
}
|
|
216
222
|
}
|
|
217
223
|
}
|
|
224
|
+
// Rules: Applies to both column and row
|
|
225
|
+
&#{'[#{ $attribute }*="rules"]'} {
|
|
226
|
+
> #{ $select-item } {
|
|
227
|
+
position: relative;
|
|
228
|
+
@if ($rule-fade-duration) {
|
|
229
|
+
&#{ $select-rule-col },
|
|
230
|
+
&#{ $select-rule-row } {
|
|
231
|
+
// For when grid init fades them in
|
|
232
|
+
opacity: 1;
|
|
233
|
+
transition: opacity $rule-fade-duration ease-in;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
218
238
|
// Rules: Row
|
|
219
239
|
&#{'[#{ $attribute }*="rules-row:"]'} {
|
|
220
240
|
> #{ $select-item } {
|
|
@@ -227,12 +247,6 @@ $config: (
|
|
|
227
247
|
}
|
|
228
248
|
}
|
|
229
249
|
}
|
|
230
|
-
// Rules: Applies to both column and row
|
|
231
|
-
&#{'[#{ $attribute }*="rules"]'} {
|
|
232
|
-
> #{ $select-item } {
|
|
233
|
-
position: relative;
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
250
|
// Rules: Column
|
|
237
251
|
&#{'[#{ $attribute }*="rules-column:"]'} {
|
|
238
252
|
> #{ $select-item } {
|
|
@@ -580,6 +594,21 @@ $config: (
|
|
|
580
594
|
}
|
|
581
595
|
}
|
|
582
596
|
}
|
|
597
|
+
|
|
598
|
+
// Disable grid rules until init attribute it present (from positioning script)
|
|
599
|
+
// - In order to keep the rules for this compact it will only hide them if the init
|
|
600
|
+
// is not present
|
|
601
|
+
|
|
602
|
+
@if ($rule-fade-duration) {
|
|
603
|
+
#{ $select-grid-not-init } {
|
|
604
|
+
> #{ $select-item } {
|
|
605
|
+
&#{ $select-rule-col },
|
|
606
|
+
&#{ $select-rule-row } {
|
|
607
|
+
opacity: 0 !important;
|
|
608
|
+
}
|
|
609
|
+
}
|
|
610
|
+
}
|
|
611
|
+
}
|
|
583
612
|
}
|
|
584
613
|
|
|
585
614
|
@mixin -create-extra-breakpoint(
|
|
@@ -85,25 +85,25 @@ $-fallbacks: (
|
|
|
85
85
|
/// @prop {CssValue} description-margin [(0.25em 0)] Margin for help text.
|
|
86
86
|
/// @prop {Dimension} description-max-width [25em] Max width of help text.
|
|
87
87
|
/// @prop {Number} description-line-height [true] Line height for description element, defaults to typography line-height-dense
|
|
88
|
-
/// @prop {Color} fieldset-background [transparent] Background color of fieldset.
|
|
88
|
+
/// @prop {Color} fieldset-background [transparent] Background color of fieldset element.
|
|
89
89
|
/// @prop {CssValue} fieldset-border [none] Border for fieldset
|
|
90
|
-
/// @prop {Dimension} fieldset-margin-bottom [1rem]
|
|
91
|
-
/// @prop {Dimension} fieldset-margin-top [1rem]
|
|
92
|
-
/// @prop {Dimension} fieldset-padding [0]
|
|
90
|
+
/// @prop {Dimension} fieldset-margin-bottom [1rem] Bottom margin for the fieldset element.
|
|
91
|
+
/// @prop {Dimension} fieldset-margin-top [1rem] Bottom margin for the fieldset element.
|
|
92
|
+
/// @prop {Dimension} fieldset-padding [0] Padding for the fieldset element.
|
|
93
93
|
/// @prop {Dimension} fieldset-margin-compact [0] @joe-check unused
|
|
94
|
-
/// @prop {Dimension} fieldset-border-radius [0]
|
|
95
|
-
/// @prop {Color} fieldset-legend-color [inherit]
|
|
96
|
-
/// @prop {Dimension} fieldset-legend-border-bottom [null]
|
|
97
|
-
/// @prop {Dimension} fieldset-legend-padding-bottom [null]
|
|
98
|
-
/// @prop {Dimension} select-border-radius [4px]
|
|
99
|
-
/// @prop {Color} select-background-color [null]
|
|
100
|
-
/// @prop {CssValue} select-border [null]
|
|
101
|
-
/// @prop {Dimension} select-padding-x [null]
|
|
102
|
-
/// @prop {Dimension} select-padding-y [null]
|
|
103
|
-
/// @prop {CssValue} select-image [null]
|
|
104
|
-
/// @prop {Dimension} select-image-size [0.9em]
|
|
105
|
-
/// @prop {Dimension} select-image-offset [0.7em]
|
|
106
|
-
/// @prop {Dimension} select-image-margin [0.65em]
|
|
94
|
+
/// @prop {Dimension} fieldset-border-radius [0] Border radius of the fieldset element.
|
|
95
|
+
/// @prop {Color} fieldset-legend-color [inherit] Text color for the fieldset's label.
|
|
96
|
+
/// @prop {Dimension} fieldset-legend-border-bottom [null] Bottom border color for the fieldset's label
|
|
97
|
+
/// @prop {Dimension} fieldset-legend-padding-bottom [null] Bottom padding for the fieldset's label
|
|
98
|
+
/// @prop {Dimension} select-border-radius [4px] Border radius for the select element.
|
|
99
|
+
/// @prop {Color} select-background-color [null] Background color for the select element.
|
|
100
|
+
/// @prop {CssValue} select-border [null] The border for the select element. Fallback to input border.
|
|
101
|
+
/// @prop {Dimension} select-padding-x [null] Horizontal padding for the select element. Fallback to input-padding-x.
|
|
102
|
+
/// @prop {Dimension} select-padding-y [null] Vertical padding for the select element. Fallback to input-padding-y.
|
|
103
|
+
/// @prop {CssValue} select-image [null] Url for select element's background image.
|
|
104
|
+
/// @prop {Dimension} select-image-size [0.9em] Background size for the select image.
|
|
105
|
+
/// @prop {Dimension} select-image-offset [0.7em] Offset for the select image.
|
|
106
|
+
/// @prop {Dimension} select-image-margin [0.65em] select image margin.
|
|
107
107
|
/// @prop {Dimension} inline-gap [1em] Gap between items that are inline like checkboxes
|
|
108
108
|
|
|
109
109
|
$config: (
|
package/types/settings.d.ts
CHANGED
|
@@ -31,8 +31,36 @@ export function updateSetting(key: string, value: any): void;
|
|
|
31
31
|
* retrieves the current value of the specified setting. This allows the setting
|
|
32
32
|
* to be used as a string literal, dynamically retrieving its value.
|
|
33
33
|
*
|
|
34
|
-
* @param {
|
|
35
|
-
* @
|
|
34
|
+
* @param {String} key The key of the setting to wrap.
|
|
35
|
+
* @param {Function} transform Optional function to transform the setting's
|
|
36
|
+
* value when its string representation is requested.
|
|
37
|
+
* @returns {Object} An object with a `toString()` method that returns the
|
|
38
|
+
* (optionally transformed) setting value as a string.
|
|
36
39
|
*/
|
|
37
|
-
export function wrapSettingString(key: string):
|
|
40
|
+
export function wrapSettingString(key: string, transform: Function): any;
|
|
41
|
+
/**
|
|
42
|
+
* Default settings
|
|
43
|
+
*/
|
|
44
|
+
export type Defaults = {
|
|
45
|
+
/**
|
|
46
|
+
* - The CSS class string for the close icon
|
|
47
|
+
*/
|
|
48
|
+
iconClassClose: string;
|
|
49
|
+
/**
|
|
50
|
+
* - The CSS class string for the drag X icon
|
|
51
|
+
*/
|
|
52
|
+
iconClassDragX: string;
|
|
53
|
+
/**
|
|
54
|
+
* - The CSS class string for the previous icon
|
|
55
|
+
*/
|
|
56
|
+
iconClassPrevious: string;
|
|
57
|
+
/**
|
|
58
|
+
* - The CSS class string for the next icon
|
|
59
|
+
*/
|
|
60
|
+
iconClassNext: string;
|
|
61
|
+
/**
|
|
62
|
+
* - The prefix to use for CSS custom properties
|
|
63
|
+
*/
|
|
64
|
+
cssvarPrefix: string;
|
|
65
|
+
};
|
|
38
66
|
//# sourceMappingURL=settings.d.ts.map
|
package/types/settings.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../js/settings.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../js/settings.js"],"names":[],"mappings":"AA6BA;;;GAGG;AACH,sCAFa,MAAM,CAIlB;AAED;;;GAGG;AACH,wCAFW,MAAM,QAIhB;AAED;;;GAGG;AACH,+BAFa,MAAM,CAIlB;AAED;;;;GAIG;AACH,gCAHW,MAAM,OAShB;AAED;;;;GAIG;AACH,mCAHW,MAAM,oBAKhB;AAED;;;;;;;;;;;GAWG;AACH,yEAOC;;;;;;;;oBAtFa,MAAM;;;;oBACN,MAAM;;;;uBACN,MAAM;;;;mBACN,MAAM;;;;kBACN,MAAM"}
|
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @class
|
|
3
3
|
* Class that provides method for retrieving and acting on breakpoints passed
|
|
4
|
-
* from CSS (using element
|
|
4
|
+
* from CSS (using element pseudo content prop)
|
|
5
5
|
*/
|
|
6
6
|
export class BreakpointManager {
|
|
7
7
|
static instances: any[];
|
|
8
8
|
static defaults: {
|
|
9
9
|
element: HTMLElement;
|
|
10
|
-
|
|
11
|
-
customProperty:
|
|
12
|
-
|
|
10
|
+
valueFromPseudo: boolean;
|
|
11
|
+
customProperty: any;
|
|
12
|
+
pseudoSelector: string;
|
|
13
13
|
order: string[];
|
|
14
14
|
debug: boolean;
|
|
15
15
|
};
|
|
16
16
|
/**
|
|
17
|
-
* @param {Object} config
|
|
17
|
+
* @param {Object} config Configuration object
|
|
18
18
|
* @param {Array} config.order Array of strings that correspond to the breakpoints setup in the styles, Breakpoints from smallest to largest, defaults to [small, medium, large]
|
|
19
19
|
* @param {Array} config.customProperty Property to grab breakpoint from (default is --breakpoint)
|
|
20
|
-
* @param {Array} config.
|
|
21
|
-
* @param {Node} config.element The element to retrieve active breakpoint from stylesheet. (default is html) For using the old
|
|
22
|
-
* @param {String} config.
|
|
20
|
+
* @param {Array} config.valueFromPseudo Use the legacy method of grabbing breakpoint from pseudo element, default uses custom property
|
|
21
|
+
* @param {Node} config.element The element to retrieve active breakpoint from stylesheet. (default is html) For using the old pseudo method, adjust this to document.body
|
|
22
|
+
* @param {String} config.pseudoSelector Change pseudo selector used to get the breakpoint from the pseudo's content property
|
|
23
23
|
*/
|
|
24
24
|
constructor(config: {
|
|
25
25
|
order: any[];
|
|
26
26
|
customProperty: any[];
|
|
27
|
-
|
|
27
|
+
valueFromPseudo: any[];
|
|
28
28
|
element: Node;
|
|
29
|
-
|
|
29
|
+
pseudoSelector: string;
|
|
30
30
|
});
|
|
31
31
|
active: any;
|
|
32
32
|
previous: any;
|
|
@@ -36,9 +36,9 @@ export class BreakpointManager {
|
|
|
36
36
|
breakpoints: {};
|
|
37
37
|
onChangeCallbacks: any[];
|
|
38
38
|
/**
|
|
39
|
-
* Add a callback for
|
|
39
|
+
* Add a callback for every time a breakpoint changes
|
|
40
40
|
* - Not recommended, possibly use to watch for changes, etc
|
|
41
|
-
* - For more control use
|
|
41
|
+
* - For more control use instance.at(name) with breakpoint methods
|
|
42
42
|
* @param {Function} callback Function to call, passed one argument current instance which can be used to get information about breakpoints
|
|
43
43
|
*/
|
|
44
44
|
onChange(callback: Function): void;
|
|
@@ -48,9 +48,9 @@ export class BreakpointManager {
|
|
|
48
48
|
*/
|
|
49
49
|
removeOnChange(callback: Function): void;
|
|
50
50
|
/**
|
|
51
|
-
* Get breakpoint from a
|
|
51
|
+
* Get breakpoint from a pseudo element
|
|
52
52
|
*/
|
|
53
|
-
|
|
53
|
+
getBreakpointInPseudo(): string;
|
|
54
54
|
/**
|
|
55
55
|
* Get breakpoint from a custom property
|
|
56
56
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breakpoints.d.ts","sourceRoot":"","sources":["../../js/ui/breakpoints.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"breakpoints.d.ts","sourceRoot":"","sources":["../../js/ui/breakpoints.js"],"names":[],"mappings":"AAkBA;;;;GAIG;AACH;IACE,wBAAsB;IACtB;;;;;;;MAQC;IACD;;;;;;;OAOG;IACH;QANyB,KAAK;QACL,cAAc;QACd,eAAe;QAChB,OAAO,EAApB,IAAI;QACW,cAAc;OAevC;IAXC,YAAkB;IAClB,cAAoB;IACpB,iBAAuB;IACvB,wBAA2B;IAC3B,mBAAyB;IACzB,gBAAqB;IACrB,yBAA2B;IAM7B;;;;;OAKG;IACH,mCAEC;IACD;;;OAGG;IACH,yCAEC;IACD;;OAEG;IACH,gCAEC;IACD;;OAEG;IACH,kCAEC;IACD;;OAEG;IACH,wBAMC;IACD;;OAEG;IACH,eA4CC;IACD;;;;OAIG;IACH,kBAFY,UAAU,CAQrB;CACF;AAsED;;;GAGG;AACH;IACE,qCAQC;IAPC;;;;MAIC;IACD,cAAuB;IACvB,UAAgB;IAElB;;;;;OAKG;IACH,wDAEC;IACD;;;;;OAKG;IACH,6BAEC;IACD;;;;;OAKG;IACH,6BAEC;IACD;;;OAGG;IACH,8BAEC;IACD;;;;OAIG;IACH,mDAGC;IAED,yBAGC;CACF;AAnID;;;GAGG;AACH;IACE,6CAMC;IALC,eAA0B;IAC1B,gBAAmB;IACnB,UAAY;IACZ,WAAa;IACb,gBAA4B;IAE9B;;OAEG;IACH,sBAMC;IACD;;OAEG;IACH,4BAIC;IACD;;OAEG;IACH,+BAEC;IACD;;;;;OAKG;IACH,aAJW,cAAe,QAiBzB;IACD;;OAEG;IACH,2BAQC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collapsible.d.ts","sourceRoot":"","sources":["../../js/ui/collapsible.js"],"names":[],"mappings":"AAQA;;GAEG;AACH;IACE;;;;QAME;;WAEG;;QAGH;;WAEG;;QAEH;;WAEG;;QAEH;;WAEG;;;MAKH;IACF;;;;;;OAMG;IACH;QAL0B,OAAO,EAAtB,IAAI;QACW,OAAO,EAAtB,IAAI;oBAsBd;IAXC;iBAZS,IAAI;iBACJ,IAAI;MAWW;IACxB,aAAsB;IACtB,gBAAmB;IACnB,aAAkB;IASpB,
|
|
1
|
+
{"version":3,"file":"collapsible.d.ts","sourceRoot":"","sources":["../../js/ui/collapsible.js"],"names":[],"mappings":"AAQA;;GAEG;AACH;IACE;;;;QAME;;WAEG;;QAGH;;WAEG;;QAEH;;WAEG;;QAEH;;WAEG;;;MAKH;IACF;;;;;;OAMG;IACH;QAL0B,OAAO,EAAtB,IAAI;QACW,OAAO,EAAtB,IAAI;oBAsBd;IAXC;iBAZS,IAAI;iBACJ,IAAI;MAWW;IACxB,aAAsB;IACtB,gBAAmB;IACnB,aAAkB;IASpB,uBAoBC;IAjBC,mCAEC;IACD,sCAWC;IAIH,uBAIC;IACD,0BAEC;IACD,gBAGC;IACD,+BAIC;IACD,cAOC;IACD,sDAEC;IACD,wCAqBC;IACD;;OAEG;IACH,+BAoBC;IACD;;OAEG;IACH,iCAQC;IACD,uBAEC;IACD,wBAEC;IACD,yBAEC;CAqBF"}
|