@ulu/frontend 0.2.0-beta.5 → 0.2.0-beta.7
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/dist/README.md +12 -0
- package/dist/{types → es}/core/component.d.ts +3 -9
- package/dist/es/core/component.d.ts.map +1 -0
- package/dist/es/core/component.js +134 -0
- package/dist/{types → es}/core/events.d.ts +1 -1
- package/dist/{types → es}/core/events.d.ts.map +1 -1
- package/dist/es/core/events.js +45 -0
- package/dist/es/core/index.d.ts +4 -0
- package/dist/{types → es}/core/settings.d.ts +1 -1
- package/dist/es/core/settings.d.ts.map +1 -0
- package/dist/es/core/settings.js +44 -0
- package/dist/es/index.d.ts +4 -0
- package/dist/es/index.js +123 -0
- package/dist/{types → es}/ui/breakpoints.d.ts +5 -3
- package/dist/es/ui/breakpoints.d.ts.map +1 -0
- package/dist/es/ui/breakpoints.js +194 -0
- package/dist/{types → es}/ui/collapsible.d.ts +28 -7
- package/dist/es/ui/collapsible.d.ts.map +1 -0
- package/dist/es/ui/collapsible.js +140 -0
- package/dist/{types → es}/ui/details-group.d.ts +1 -1
- package/dist/es/ui/details-group.js +49 -0
- package/dist/{types → es}/ui/dialog.d.ts +3 -3
- package/dist/es/ui/dialog.d.ts.map +1 -0
- package/dist/es/ui/dialog.js +112 -0
- package/dist/{types → es}/ui/flipcard.d.ts +1 -1
- package/dist/es/ui/flipcard.js +97 -0
- package/dist/{types → es}/ui/grid.d.ts +2 -2
- package/dist/{types → es}/ui/grid.d.ts.map +1 -1
- package/dist/es/ui/grid.js +18 -0
- package/dist/{types → es}/ui/index.d.ts +21 -21
- package/dist/{types → es}/ui/modal-builder.d.ts +21 -16
- package/dist/es/ui/modal-builder.d.ts.map +1 -0
- package/dist/es/ui/modal-builder.js +136 -0
- package/dist/es/ui/overflow-scroller-pager.js +28 -0
- package/dist/{types → es}/ui/overflow-scroller.d.ts +3 -3
- package/dist/{types → es}/ui/overflow-scroller.d.ts.map +1 -1
- package/dist/es/ui/overflow-scroller.js +90 -0
- package/dist/es/ui/page.js +7 -0
- package/dist/{types → es}/ui/popover.d.ts +3 -3
- package/dist/{types → es}/ui/popover.d.ts.map +1 -1
- package/dist/es/ui/popover.js +77 -0
- package/dist/es/ui/print-details.js +22 -0
- package/dist/es/ui/print.js +34 -0
- package/dist/{types → es}/ui/programmatic-modal.d.ts +1 -1
- package/dist/{types → es}/ui/programmatic-modal.d.ts.map +1 -1
- package/dist/{types → es}/ui/proxy-click.d.ts +4 -4
- package/dist/es/ui/proxy-click.d.ts.map +1 -0
- package/dist/es/ui/proxy-click.js +44 -0
- package/dist/{types → es}/ui/resizer.d.ts +16 -16
- package/dist/es/ui/resizer.d.ts.map +1 -0
- package/dist/es/ui/resizer.js +242 -0
- package/dist/{types → es}/ui/scroll-slider.d.ts +1 -1
- package/dist/es/ui/scroll-slider.js +29 -0
- package/dist/{types → es}/ui/scrollpoint.d.ts +79 -11
- package/dist/es/ui/scrollpoint.d.ts.map +1 -0
- package/dist/es/ui/scrollpoint.js +178 -0
- package/dist/{types → es}/ui/slider.d.ts +11 -8
- package/dist/es/ui/slider.d.ts.map +1 -0
- package/dist/es/ui/slider.js +292 -0
- package/dist/{types → es}/ui/tabs.d.ts +2 -2
- package/dist/{types → es}/ui/tabs.d.ts.map +1 -1
- package/dist/es/ui/tabs.js +64 -0
- package/dist/{types → es}/ui/theme-toggle.d.ts +4 -4
- package/dist/es/ui/theme-toggle.d.ts.map +1 -0
- package/dist/es/ui/theme-toggle.js +190 -0
- package/dist/{types → es}/ui/tooltip.d.ts +5 -5
- package/dist/es/ui/tooltip.d.ts.map +1 -0
- package/dist/es/ui/tooltip.js +184 -0
- package/dist/{types → es}/utils/class-logger.d.ts +4 -4
- package/dist/es/utils/class-logger.d.ts.map +1 -0
- package/dist/es/utils/class-logger.js +37 -0
- package/dist/es/utils/css.js +6 -0
- package/dist/{types → es}/utils/dom.d.ts +1 -1
- package/dist/{types → es}/utils/dom.d.ts.map +1 -1
- package/dist/es/utils/dom.js +29 -0
- package/dist/{types → es}/utils/file-save.d.ts.map +1 -1
- package/dist/es/utils/file-save.js +46 -0
- package/dist/{types → es}/utils/floating-ui.d.ts +1 -1
- package/dist/{types → es}/utils/floating-ui.d.ts.map +1 -1
- package/dist/es/utils/floating-ui.js +46 -0
- package/dist/es/utils/font-awesome.js +13 -0
- package/dist/es/utils/id.js +11 -0
- package/dist/{types → es}/utils/index.d.ts +7 -7
- package/dist/es/utils/pause-youtube-video.js +27 -0
- package/dist/umd/style.css +1 -0
- package/dist/{ulu-frontend.umd.js → umd/ulu-frontend.umd.js} +15 -15
- package/lib/js/ui/breakpoints.js +12 -12
- package/lib/js/ui/modal-builder.js +5 -3
- package/lib/js/ui/slider.js +19 -10
- package/lib/scss/_element.scss +10 -4
- package/lib/scss/components/_accordion.scss +1 -7
- package/lib/scss/components/_button.scss +11 -2
- package/lib/scss/components/_card.scss +0 -2
- package/lib/scss/components/_form-theme.scss +3 -3
- package/lib/scss/components/_menu-stack.scss +1 -0
- package/lib/scss/components/_modal.scss +13 -13
- package/lib/scss/helpers/_utilities.scss +0 -3
- package/package.json +19 -16
- package/dist/style.css +0 -1
- package/dist/types/core/component.d.ts.map +0 -1
- package/dist/types/core/index.d.ts +0 -4
- package/dist/types/core/settings.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -4
- package/dist/types/ui/breakpoints.d.ts.map +0 -1
- package/dist/types/ui/collapsible.d.ts.map +0 -1
- package/dist/types/ui/dialog.d.ts.map +0 -1
- package/dist/types/ui/modal-builder.d.ts.map +0 -1
- package/dist/types/ui/proxy-click.d.ts.map +0 -1
- package/dist/types/ui/resizer.d.ts.map +0 -1
- package/dist/types/ui/scrollpoint.d.ts.map +0 -1
- package/dist/types/ui/slider.d.ts.map +0 -1
- package/dist/types/ui/theme-toggle.d.ts.map +0 -1
- package/dist/types/ui/tooltip.d.ts.map +0 -1
- package/dist/types/utils/class-logger.d.ts.map +0 -1
- package/dist/ulu-frontend.es.js +0 -5743
- /package/dist/{types → es}/core/index.d.ts.map +0 -0
- /package/dist/{types → es}/index.d.ts.map +0 -0
- /package/dist/{types → es}/ui/details-group.d.ts.map +0 -0
- /package/dist/{types → es}/ui/flipcard.d.ts.map +0 -0
- /package/dist/{types → es}/ui/index.d.ts.map +0 -0
- /package/dist/{types → es}/ui/overflow-scroller-pager.d.ts +0 -0
- /package/dist/{types → es}/ui/overflow-scroller-pager.d.ts.map +0 -0
- /package/dist/{types → es}/ui/page.d.ts +0 -0
- /package/dist/{types → es}/ui/page.d.ts.map +0 -0
- /package/dist/{types → es}/ui/print-details.d.ts +0 -0
- /package/dist/{types → es}/ui/print-details.d.ts.map +0 -0
- /package/dist/{types → es}/ui/print.d.ts +0 -0
- /package/dist/{types → es}/ui/print.d.ts.map +0 -0
- /package/dist/{types → es}/ui/scroll-slider.d.ts.map +0 -0
- /package/dist/{types → es}/utils/css.d.ts +0 -0
- /package/dist/{types → es}/utils/css.d.ts.map +0 -0
- /package/dist/{types → es}/utils/file-save.d.ts +0 -0
- /package/dist/{types → es}/utils/font-awesome.d.ts +0 -0
- /package/dist/{types → es}/utils/font-awesome.d.ts.map +0 -0
- /package/dist/{types → es}/utils/id.d.ts +0 -0
- /package/dist/{types → es}/utils/id.d.ts.map +0 -0
- /package/dist/{types → es}/utils/index.d.ts.map +0 -0
- /package/dist/{types → es}/utils/pause-youtube-video.d.ts +0 -0
- /package/dist/{types → es}/utils/pause-youtube-video.d.ts.map +0 -0
package/lib/js/ui/breakpoints.js
CHANGED
|
@@ -12,10 +12,6 @@ import { log, logError } from "../utils/class-logger.js";
|
|
|
12
12
|
|
|
13
13
|
const getDefaultCustomProperty = prefix => getCustomProperty(prefix, "breakpoint");
|
|
14
14
|
|
|
15
|
-
if (isBrowser()) {
|
|
16
|
-
initResizeHandler();
|
|
17
|
-
}
|
|
18
|
-
|
|
19
15
|
/**
|
|
20
16
|
* @class
|
|
21
17
|
* Class that provides method for retrieving and acting on breakpoints passed
|
|
@@ -23,6 +19,17 @@ if (isBrowser()) {
|
|
|
23
19
|
*/
|
|
24
20
|
export class BreakpointManager {
|
|
25
21
|
static instances = [];
|
|
22
|
+
static globalsInitialized = false;
|
|
23
|
+
|
|
24
|
+
static _initializeGlobals() {
|
|
25
|
+
if (BreakpointManager.globalsInitialized || !isBrowser()) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
window.addEventListener(getCoreEventName("pageResized"), () => {
|
|
29
|
+
BreakpointManager.instances.forEach(i => i.update());
|
|
30
|
+
});
|
|
31
|
+
BreakpointManager.globalsInitialized = true;
|
|
32
|
+
}
|
|
26
33
|
static defaults = {
|
|
27
34
|
element: document?.documentElement,
|
|
28
35
|
valueFromPseudo: false,
|
|
@@ -41,6 +48,7 @@ export class BreakpointManager {
|
|
|
41
48
|
* @param {String} config.pseudoSelector Change pseudo selector used to get the breakpoint from the pseudo's content property
|
|
42
49
|
*/
|
|
43
50
|
constructor(config) {
|
|
51
|
+
BreakpointManager._initializeGlobals();
|
|
44
52
|
Object.assign(this, BreakpointManager.defaults, config);
|
|
45
53
|
this.active = null;
|
|
46
54
|
this.previous = null;
|
|
@@ -281,12 +289,4 @@ class Breakpoint {
|
|
|
281
289
|
msg.unshift(`Breakpoint (${ this.name }):`);
|
|
282
290
|
this._manager.log.apply(this._manager, msg);
|
|
283
291
|
}
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
// Resize Handler to update breakpoints for all instances (Called after resize finished)
|
|
287
|
-
// - Only setup in browser environment
|
|
288
|
-
function initResizeHandler() {
|
|
289
|
-
window.addEventListener(getCoreEventName("pageResized"), () => {
|
|
290
|
-
BreakpointManager.instances.forEach(i => i.update());
|
|
291
|
-
});
|
|
292
292
|
}
|
|
@@ -41,7 +41,8 @@ export const initializer = new ComponentInitializer({
|
|
|
41
41
|
* @property {boolean} noMinHeight - If `true`, the modal will not have a minimum height. Defaults to `false`.
|
|
42
42
|
* @property {string} class - Additional CSS class(es) to add to the modal. Defaults to `""`.
|
|
43
43
|
* @property {string} baseClass - The base CSS class for the modal elements. Defaults to `"modal"`.
|
|
44
|
-
* @property {string}
|
|
44
|
+
* @property {string} classClose - The class name for the close button. Defaults to 'button button--icon' styling.
|
|
45
|
+
* @property {string} classCloseIcon - The class name for the close icon. Defaults to 'button__icon' styling. Uses the wrapped setting string.
|
|
45
46
|
* @property {string} classResizerIcon - The class name for the resizer icon. Uses the wrapped setting string.
|
|
46
47
|
* @property {string|Node} footerElement - Element or selector to use as the footer (will be moved to dialog on creation, used for DOM API)
|
|
47
48
|
* @property {string|Node} footerHtml - Markup to use in the footer
|
|
@@ -76,7 +77,8 @@ export const defaults = {
|
|
|
76
77
|
baseClass: "modal",
|
|
77
78
|
footerElement: null,
|
|
78
79
|
footerHtml: null,
|
|
79
|
-
|
|
80
|
+
classClose: "button button--icon",
|
|
81
|
+
classCloseIcon: wrapSettingString("iconClassClose", (v) => `${v} button__icon`),
|
|
80
82
|
classResizerIcon: wrapSettingString("iconClassDragX"),
|
|
81
83
|
classResizerIconBoth: wrapSettingString("iconClassDragBoth"),
|
|
82
84
|
debug: false,
|
|
@@ -124,7 +126,7 @@ export const defaults = {
|
|
|
124
126
|
}
|
|
125
127
|
<span class="${ baseClass }__title-text">${ config.title }</span>
|
|
126
128
|
</h2>
|
|
127
|
-
<button class="${ baseClass }__close" aria-label="Close modal" ${ closeAttribute } autofocus>
|
|
129
|
+
<button class="${ baseClass }__close ${ config.classClose }" aria-label="Close modal" ${ closeAttribute } autofocus>
|
|
128
130
|
${ config.templateCloseIcon(config) }
|
|
129
131
|
</button>
|
|
130
132
|
</header>
|
package/lib/js/ui/slider.js
CHANGED
|
@@ -53,17 +53,9 @@ const attrSelectorControlContext = initializer.attributeSelector("control-contex
|
|
|
53
53
|
const attrSelectorSlide = initializer.attributeSelector("slide");
|
|
54
54
|
|
|
55
55
|
const instances = [];
|
|
56
|
-
const reduceMotion = matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
57
56
|
const eventOnce = { once: true };
|
|
58
57
|
const cssDuration = d => `${ d }ms`;
|
|
59
58
|
|
|
60
|
-
// Resize handlers for all slider instances, Load event to avoid triggering
|
|
61
|
-
addEventListener('load', () => {
|
|
62
|
-
addEventListener('resize', debounce(() => {
|
|
63
|
-
Slider.instances.forEach(i => i.handleResize());
|
|
64
|
-
}, 250));
|
|
65
|
-
});
|
|
66
|
-
|
|
67
59
|
const requiredElements = [
|
|
68
60
|
"container",
|
|
69
61
|
"trackContainer",
|
|
@@ -112,6 +104,22 @@ export function setupSlider(container, options) {
|
|
|
112
104
|
*/
|
|
113
105
|
export class Slider {
|
|
114
106
|
static instances = [];
|
|
107
|
+
static globalsInitialized = false;
|
|
108
|
+
static reduceMotion = false;
|
|
109
|
+
|
|
110
|
+
static _initializeGlobals() {
|
|
111
|
+
if (Slider.globalsInitialized) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
// Load event to avoid triggering before page is ready
|
|
115
|
+
addEventListener('load', () => {
|
|
116
|
+
addEventListener('resize', debounce(() => {
|
|
117
|
+
Slider.instances.forEach(i => i.handleResize());
|
|
118
|
+
}, 250));
|
|
119
|
+
});
|
|
120
|
+
Slider.reduceMotion = matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
121
|
+
Slider.globalsInitialized = true;
|
|
122
|
+
}
|
|
115
123
|
/**
|
|
116
124
|
* Default options for slider
|
|
117
125
|
*/
|
|
@@ -133,6 +141,7 @@ export class Slider {
|
|
|
133
141
|
}
|
|
134
142
|
}
|
|
135
143
|
constructor(elements, config) {
|
|
144
|
+
Slider._initializeGlobals();
|
|
136
145
|
const options = Object.assign({}, Slider.defaults, config);
|
|
137
146
|
this.options = options;
|
|
138
147
|
this.slide = null;
|
|
@@ -161,8 +170,8 @@ export class Slider {
|
|
|
161
170
|
...this.createNav(elements.navContext || elements.container)
|
|
162
171
|
};
|
|
163
172
|
// Choose the appropriate transition method
|
|
164
|
-
this.transition =
|
|
165
|
-
|
|
173
|
+
this.transition = options.transition ? options.transitionFade || Slider.reduceMotion ?
|
|
174
|
+
this.fadeTransition : this.slideTransition : this.noTransition;
|
|
166
175
|
this.setup();
|
|
167
176
|
this.goto(0, null, "init");
|
|
168
177
|
log(this, "Slider Instance Created", this);
|
package/lib/scss/_element.scss
CHANGED
|
@@ -71,7 +71,7 @@ $config: (
|
|
|
71
71
|
"ul-list-style-type-3": square,
|
|
72
72
|
"cap-color" : "accent",
|
|
73
73
|
"cap-size" : 5px,
|
|
74
|
-
"icon-centered-vertical-offset" : 0.
|
|
74
|
+
"icon-centered-vertical-offset" : 0.02em,
|
|
75
75
|
) !default;
|
|
76
76
|
|
|
77
77
|
/// Rule style map, redefine defaults or add to
|
|
@@ -415,6 +415,12 @@ $rule-margins: (
|
|
|
415
415
|
}
|
|
416
416
|
}
|
|
417
417
|
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
418
|
+
/// Remove default details arrow from the summary element
|
|
419
|
+
@mixin summary-remove-marker() {
|
|
420
|
+
list-style: none; // Remove the default arrow (old safari?)
|
|
421
|
+
&::-webkit-details-marker,
|
|
422
|
+
&::marker {
|
|
423
|
+
display: none;
|
|
424
|
+
content: "";
|
|
425
|
+
}
|
|
426
|
+
}
|
|
@@ -180,7 +180,6 @@ $config: (
|
|
|
180
180
|
#{ $prefix }__summary {
|
|
181
181
|
position: relative; // For pseudo border (done this way for animations)
|
|
182
182
|
display: flex;
|
|
183
|
-
list-style: none; // Remove the default arrow (old safari?)
|
|
184
183
|
width: 100%; // For <button>
|
|
185
184
|
background-color: color.get(get("summary-background-color"));
|
|
186
185
|
color: color.get(get("summary-color"));
|
|
@@ -192,12 +191,7 @@ $config: (
|
|
|
192
191
|
align-items: center;
|
|
193
192
|
|
|
194
193
|
@include typography.optional-size(get("summary-type-size"), $only-font-size: true);
|
|
195
|
-
|
|
196
|
-
&::-webkit-details-marker,
|
|
197
|
-
&::marker {
|
|
198
|
-
display: none;
|
|
199
|
-
content: "";
|
|
200
|
-
}
|
|
194
|
+
@include element.summary-remove-marker;
|
|
201
195
|
&:hover,
|
|
202
196
|
&:focus {
|
|
203
197
|
background-color: color.get(get("summary-background-color-hover"));
|
|
@@ -22,7 +22,7 @@ $-fallbacks: (
|
|
|
22
22
|
|
|
23
23
|
$config: (
|
|
24
24
|
"icon-margin" : 0.5em,
|
|
25
|
-
"icon-centered-vertical-offset":
|
|
25
|
+
"icon-centered-vertical-offset": true
|
|
26
26
|
) !default;
|
|
27
27
|
|
|
28
28
|
/// Change modules $config
|
|
@@ -63,7 +63,6 @@ $config: (
|
|
|
63
63
|
@include button.default();
|
|
64
64
|
}
|
|
65
65
|
#{ $prefix }__icon {
|
|
66
|
-
@include element.icon-vert-translate(get("icon-centered-vertical-offset"));
|
|
67
66
|
&:first-child {
|
|
68
67
|
margin-right: get("icon-margin");
|
|
69
68
|
}
|
|
@@ -96,6 +95,16 @@ $config: (
|
|
|
96
95
|
width: button.get("icon-size");
|
|
97
96
|
height: button.get("icon-size");
|
|
98
97
|
padding: 0 !important;
|
|
98
|
+
|
|
99
|
+
#{ $prefix }__icon {
|
|
100
|
+
transform: translatey(get("icon-centered-vertical-offset"));
|
|
101
|
+
&:first-child {
|
|
102
|
+
margin-right: 0;
|
|
103
|
+
}
|
|
104
|
+
&:last-child {
|
|
105
|
+
margin-left: 0;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
99
108
|
}
|
|
100
109
|
|
|
101
110
|
@each $size, $values in button.$sizes {
|
|
@@ -233,7 +233,6 @@ $config: (
|
|
|
233
233
|
grid-column: 1;
|
|
234
234
|
display: flex;
|
|
235
235
|
flex-direction: column;
|
|
236
|
-
flex-grow: 1;
|
|
237
236
|
min-height: get("body-min-height");
|
|
238
237
|
}
|
|
239
238
|
#{ $prefix }__main {
|
|
@@ -243,7 +242,6 @@ $config: (
|
|
|
243
242
|
grid-column: 1;
|
|
244
243
|
display: flex;
|
|
245
244
|
align-items: center;
|
|
246
|
-
flex: 0;
|
|
247
245
|
padding-top: get("footer-padding-y");
|
|
248
246
|
padding-bottom: get("footer-padding-y");
|
|
249
247
|
min-height: get("footer-min-height");
|
|
@@ -80,7 +80,7 @@ $-fallbacks: (
|
|
|
80
80
|
/// @prop {Color} check-input-mark-color-checked [null] Check input color when checked.
|
|
81
81
|
/// @prop {Color} check-input-mark-color-indeterminate [null] Check input color when indeterminate.
|
|
82
82
|
/// @prop {Number} check-input-disabled-opacity [0.6] Opacity of the check input when disabled.
|
|
83
|
-
/// @prop {Dimension} check-input-border-radius [
|
|
83
|
+
/// @prop {Dimension} check-input-border-radius [0] Checkbox input border radius.
|
|
84
84
|
/// @prop {Color} description-color [false] Color of help text.
|
|
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.
|
|
@@ -164,7 +164,7 @@ $config: (
|
|
|
164
164
|
"check-input-mark-color-checked" : null,
|
|
165
165
|
"check-input-mark-color-indeterminate" : null,
|
|
166
166
|
"check-input-disabled-opacity" : 0.6,
|
|
167
|
-
"check-input-border-radius" :
|
|
167
|
+
"check-input-border-radius" : 0,
|
|
168
168
|
"description-color" : false,
|
|
169
169
|
"description-margin" : (0.25em 0),
|
|
170
170
|
"description-max-width" : 25em,
|
|
@@ -427,7 +427,7 @@ $config: (
|
|
|
427
427
|
}
|
|
428
428
|
[type="checkbox"] {
|
|
429
429
|
&::before {
|
|
430
|
-
border-radius:
|
|
430
|
+
border-radius: get("check-input-border-radius");
|
|
431
431
|
}
|
|
432
432
|
&::after {
|
|
433
433
|
border-radius: 0;
|
|
@@ -48,11 +48,12 @@ $-fallbacks: (
|
|
|
48
48
|
/// @prop {CssValue} animation-timing-function [cubic-bezier(0, 0, .2, 1)] The animation timing menu of the modal.
|
|
49
49
|
/// @prop {Color} close-background-color [white] Background color for the modal close icon.
|
|
50
50
|
/// @prop {Close} close-background-color-hover [blue] Background color for the modal close icon when hovered or focused.
|
|
51
|
+
/// @prop {Color} close-border-color [null] Border color of the modal__close element. Overrides button border color if using button styling. Fallback to close-background-color.
|
|
52
|
+
/// @prop {Color} close-border-color-hover [null] Border color hover of the modal__close element. Overrides button border color if using button styling. Fallback to close-background-color-hover.
|
|
53
|
+
/// @prop {Color} close-box-shadow [none] Box-shadow of the modal__close element. Overrides button border color if using button styling. Defaults to remove box-shadow styling.
|
|
51
54
|
/// @prop {Color} close-color [black] Type color for the modal close icon.
|
|
52
55
|
/// @prop {Color} close-color-hover [black] Type color for the modal close icon when hovered or focused.
|
|
53
|
-
/// @prop {Dimension} close-font-size [1.2rem] Font-siz of of the modal close icon font size.
|
|
54
56
|
/// @prop {Dimension} close-margin [0.5rem] The margin for the modal close icon.
|
|
55
|
-
/// @prop {Dimension} close-size [2.5rem] Size of the modal close icon.
|
|
56
57
|
/// @prop {Color} header-background-color [black] Background color for the header.
|
|
57
58
|
/// @prop {CssValue} header-border-bottom [none] Bottom-border on the modal header.
|
|
58
59
|
/// @prop {Color} header-color [white] Type color of the header.
|
|
@@ -91,12 +92,13 @@ $config: (
|
|
|
91
92
|
"animation-timing-function" : cubic-bezier(0, 0, .2, 1),
|
|
92
93
|
"close-background-color": white,
|
|
93
94
|
"close-background-color-hover": blue,
|
|
95
|
+
"close-border-color": null,
|
|
96
|
+
"close-border-color-hover": null,
|
|
97
|
+
"close-box-shadow": none,
|
|
94
98
|
"close-color": black,
|
|
95
99
|
"close-color-hover": black,
|
|
96
|
-
"close-font-size": 1.2rem,
|
|
97
100
|
"close-margin": 0.5rem,
|
|
98
101
|
"close-icon-vertical-offset" : true,
|
|
99
|
-
"close-size": 2.5rem,
|
|
100
102
|
"header-background-color": black,
|
|
101
103
|
"header-border-bottom": none,
|
|
102
104
|
"header-color": white,
|
|
@@ -230,23 +232,21 @@ $config: (
|
|
|
230
232
|
#{ $prefix }__close {
|
|
231
233
|
margin: 0 0 0 get("close-margin");
|
|
232
234
|
flex: 0 0 auto;
|
|
233
|
-
font-size: get("close-font-size");
|
|
234
|
-
width: get("close-size");
|
|
235
|
-
height: get("close-size");
|
|
236
235
|
background-color: color.get(get("close-background-color"));
|
|
237
|
-
border-
|
|
238
|
-
display: flex;
|
|
239
|
-
align-items: center;
|
|
240
|
-
justify-content: center;
|
|
236
|
+
border-color: color.get(utils.fallback(get("close-border-color"), get("close-background-color")));
|
|
241
237
|
color: color.get(get("close-color"));
|
|
242
|
-
|
|
238
|
+
box-shadow: get("close-box-shadow");
|
|
239
|
+
&:hover,
|
|
240
|
+
&:focus {
|
|
243
241
|
background-color: color.get(get("close-background-color-hover"));
|
|
244
242
|
color: color.get(get("close-color-hover"));
|
|
243
|
+
border-color: color.get(utils.fallback(get("close-border-color-hover"), get("close-background-color-hover")));
|
|
244
|
+
// need border-color-hover use utils fallback
|
|
245
245
|
}
|
|
246
246
|
}
|
|
247
247
|
|
|
248
248
|
#{ $prefix }__close-icon {
|
|
249
|
-
|
|
249
|
+
// transform: translatey(get("close-icon-vertical-offset"));
|
|
250
250
|
}
|
|
251
251
|
|
|
252
252
|
#{ $prefix }__resizer {
|
package/package.json
CHANGED
|
@@ -1,36 +1,37 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ulu/frontend",
|
|
3
|
-
"version": "0.2.0-beta.
|
|
3
|
+
"version": "0.2.0-beta.7",
|
|
4
4
|
"description": "A framework-agnostic frontend toolkit providing a modular, tree-shakable library of accessible components and utilities. Designed for seamless integration, it features a highly configurable SCSS system for any environment and vanilla JavaScript modules optimized for traditional websites and content management systems.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
7
7
|
"dist",
|
|
8
8
|
"lib"
|
|
9
9
|
],
|
|
10
|
-
"main": "./dist/ulu-frontend.umd.js",
|
|
11
|
-
"module": "./dist/
|
|
12
|
-
"types": "./dist/
|
|
10
|
+
"main": "./dist/umd/ulu-frontend.umd.js",
|
|
11
|
+
"module": "./dist/es/index.js",
|
|
12
|
+
"types": "./dist/es/index.d.ts",
|
|
13
13
|
"exports": {
|
|
14
14
|
".": {
|
|
15
|
-
"import": "./dist/
|
|
16
|
-
"require": "./dist/ulu-frontend.umd.js",
|
|
17
|
-
"types": "./dist/
|
|
15
|
+
"import": "./dist/es/index.js",
|
|
16
|
+
"require": "./dist/umd/ulu-frontend.umd.js",
|
|
17
|
+
"types": "./dist/es/index.d.ts"
|
|
18
18
|
},
|
|
19
|
-
"./style.css": "./dist/style.css",
|
|
19
|
+
"./style.css": "./dist/umd/style.css",
|
|
20
20
|
"./scss/*.scss": "./lib/scss/*.scss",
|
|
21
21
|
"./scss/*": "./lib/scss/*",
|
|
22
22
|
"./scss": "./lib/scss/index.scss",
|
|
23
23
|
"./js/*": {
|
|
24
|
-
"import": "./
|
|
25
|
-
"types": "./dist/
|
|
24
|
+
"import": "./dist/es/*",
|
|
25
|
+
"types": "./dist/es/*"
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
|
+
"sideEffects": [
|
|
29
|
+
"lib/js/core/events.js"
|
|
30
|
+
],
|
|
28
31
|
"scripts": {
|
|
29
|
-
"
|
|
30
|
-
"build": "
|
|
31
|
-
"build:es": "vite build",
|
|
32
|
+
"build": "npm run build:es && npm run build:umd",
|
|
33
|
+
"build:es": "BUILD_FORMAT=es vite build",
|
|
32
34
|
"build:umd": "BUILD_FORMAT=umd vite build",
|
|
33
|
-
"types": "npx tsc",
|
|
34
35
|
"docs": "npx @11ty/eleventy --serve --config=docs.eleventy.js",
|
|
35
36
|
"docs:incremental": "npx @11ty/eleventy --serve --incremental --config=docs.eleventy.js",
|
|
36
37
|
"docs:nogen": "NO_DOC_GEN=true npx @11ty/eleventy --serve --incremental --config=docs.eleventy.js",
|
|
@@ -115,12 +116,14 @@
|
|
|
115
116
|
"markdown-it-anchor": "^8.6.7",
|
|
116
117
|
"markdown-it-attrs": "^4.1.6",
|
|
117
118
|
"micromodal": "^0.4.10",
|
|
119
|
+
"rollup-plugin-peer-deps-external": "^2.2.4",
|
|
118
120
|
"sass-embedded": "^1.81.0",
|
|
119
121
|
"sharp": "^0.33.4",
|
|
120
122
|
"svgo": "^3.3.2",
|
|
121
123
|
"swipe-listener": "^1.3.0",
|
|
122
124
|
"twig": "^1.17.1",
|
|
123
125
|
"typescript": "^5.3.3",
|
|
124
|
-
"vite": "^5.4.11"
|
|
126
|
+
"vite": "^5.4.11",
|
|
127
|
+
"vite-plugin-dts": "^4.5.4"
|
|
125
128
|
}
|
|
126
|
-
}
|
|
129
|
+
}
|