first commit

This commit is contained in:
2024-10-23 12:55:46 +02:00
commit 85c92aa932
8453 changed files with 1186172 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
{
"presets": [
[
"@babel/env",
{
"modules": false,
"loose": true
}
]
],
"env": {
"test": {
"presets": [
[
"@babel/env"
]
]
}
}
}

View File

@@ -0,0 +1,113 @@
{
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended"
],
"plugins": [
"@typescript-eslint"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 2018,
"sourceType": "module"
},
"env": {
"browser": true
},
"ignorePatterns": [
"*.esm.js"
],
"rules": {
"semi": [
"error",
"always",
{
"omitLastInOneLineBlock": true
}
],
"space-in-parens": [
"error",
"always"
],
"array-bracket-spacing": [
"error",
"always"
],
"object-curly-spacing": [
"error",
"always"
],
"computed-property-spacing": [
"error",
"always"
],
"camelcase": "error",
"comma-dangle": [
"error",
{
"arrays": "always-multiline",
"objects": "always-multiline",
"imports": "always-multiline",
"exports": "always-multiline",
"functions": "never"
}
],
"comma-spacing": [
"error",
{
"before": false,
"after": true
}
],
"eqeqeq": "error",
"indent": [
"error",
2,
{
"SwitchCase": 1,
"VariableDeclarator": "first"
}
],
"no-console": [
"error",
{
"allow": [
"error"
]
}
],
"no-empty-function": [
"error",
{
"allow": [
"methods"
]
}
],
"@typescript-eslint/no-empty-function": [
"error",
{
"allow": [
"methods"
]
}
],
"@typescript-eslint/no-unused-vars": "error",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-empty-interface": "off",
"@typescript-eslint/explicit-module-boundary-types": [
"error",
{
"allowArgumentsExplicitlyTypedAsAny": true
}
],
"@typescript-eslint/ban-types": [
"error",
{
"types": {
"object": false
}
}
]
}
}

View File

@@ -0,0 +1 @@
github: NaotoshiFujita

View File

@@ -0,0 +1,57 @@
name: Bug Report
description: Create a bug report.
labels: [ "bug" ]
body:
- type: markdown
attributes:
value: |
Thank you for taking your time to post a bug report!
Please fill out the following form. I might need to close the issue without required fields or e.g. clear repro steps.
- type: checkboxes
attributes:
label: Checks
description: Before posting a report, please check following things.
options:
- label: "Not a duplicate."
required: true
- label: "Not a question, feature request, or anything other than a bug report directly related to Splide. Use Discussions for these topics: https://github.com/Splidejs/splide/discussions"
required: true
- type: input
id: version
attributes:
label: Version
description: The version where the bug happens.
placeholder: v3.x.x
validations:
required: true
- type: textarea
attributes:
label: Description
description: Describe the bug.
placeholder: Provide a clear and precise description. Feel free to paste your code, screenshort, etc.
validations:
required: true
- type: input
id: reproduction-link
attributes:
label: Reproduction Link
description: A link to a reproduction (CodeSandbox, etc.). **Do not link to your project**, it has to be a minimal and fresh reproduction.
placeholder: "https://codesandbox.io/"
validations:
required: false
- type: textarea
attributes:
label: Steps to Reproduce
description: Describe steps how to reproduce the bug.
placeholder: |
1.
2.
...
validations:
required: true
- type: textarea
attributes:
label: Expected Behaviour
description: Describe what you expected to happen.
validations:
required: true

View File

@@ -0,0 +1 @@
blank_issues_enabled: false

View File

@@ -0,0 +1,13 @@
<!--
Please make sure to add a new issue before you send PR!
-->
## Related Issues
<!--
Link to the issue
-->
## Description
<!-- Write a brief description here -->

6
libraries/splide-4.0.6/.gitignore vendored Normal file
View File

@@ -0,0 +1,6 @@
node_modules/
local/
.idea/
.vscode/

View File

@@ -0,0 +1,14 @@
{
"extends": "stylelint-config-sass-guidelines",
"plugins": [
"stylelint-scss",
"stylelint-order"
],
"rules": {
"number-leading-zero": "never",
"max-nesting-depth": 7,
"selector-max-compound-selectors": null,
"block-no-empty": null,
"function-parentheses-space-inside": "always"
}
}

View File

@@ -0,0 +1,20 @@
The MIT License (MIT)
Copyright (c) 2022 Naotoshi Fujita
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -0,0 +1,114 @@
<div align="center">
<a href="https://splidejs.com">
<img alt="Splide" src="./images/logo.svg" width="70">
</a>
<h1>Splide</h1>
<p>
Splide is a lightweight, flexible and accessible slider and carousel.<br>
No dependencies, no Lighthouse errors.
</p>
[![](https://data.jsdelivr.com/v1/package/npm/@splidejs/splide/badge?v=1)](https://www.jsdelivr.com/package/npm/@splidejs/splide)
<p>
<a href="https://github.com/Splidejs/splide/releases/latest">Download</a>
<br>
<a href="https://splidejs.com/guides/getting-started/">Getting Started</a>
<br>
<a href="https://splidejs.com/">Demo</a>
<br>
<a href="https://splidejs.com/documents/">Documents</a>
<br>
<a href="https://splidejs.com/guides/themes/">Themes</a>
<br>
<a href="https://splidejs.com/guides/version4/">About v4</a>
<br>
<a href="https://github.com/Splidejs/splide/discussions">Discussions/Q&A</a>
</p>
<h3>
Ready For
</h3>
<p>
<a href="https://splidejs.com/guides/getting-started/">
<img alt="React Splide" src="./images/javascript-logo.svg" width="30">
</a>
<a href="https://splidejs.com/guides/getting-started/">
<img alt="React Splide" src="./images/typescript-logo.svg" width="30">
</a>
<a href="https://splidejs.com/integration/react-splide/">
<img alt="React Splide" src="./images/react-logo.svg" width="30">
</a>
<a href="https://splidejs.com/integration/vue-splide/">
<img alt="Vue Splide" src="./images/vue-logo.svg" width="30">
</a>
<a href="https://splidejs.com/integration/svelte-splide/">
<img alt="Vue Splide" src="./images/svelte-logo.svg" width="30">
</a>
</p>
<h3>
Extensions
</h3>
<p>
<a href="https://splidejs.com/extensions/auto-scroll/">Auto Scroll</a> ・
<a href="https://splidejs.com/extensions/intersection/">Intersection</a> ・
<a href="https://splidejs.com/extensions/grid/">Grid</a> ・
<a href="https://splidejs.com/extensions/video/">Video</a> ・
<a href="https://splidejs.com/extensions/url-hash/">URL Hash</a>
</p>
<h3>
Translation
</h3>
<p>
<a href="https://ja.splidejs.com">日本語</a>
</p>
</div>
## Support Splide
Please support the project if you like it!
- [GitHub Sponsors](https://github.com/sponsors/NaotoshiFujita)
## Features
- Written in TypeScript
- No dependencies
- Lightweight, 29kB (12kB gzipped)
- Flexible and extensible
- Protected by 300+ test cases
- Multiple slides
- Slide or fade transition by CSS
- Supports breakpoints
- Accepts CSS relative units
- Autoplay with progress bar and a play-pause toggle button
- RTL and vertical direction
- Mouse drag and touch swipe
- Free drag mode
- Mouse wheel navigation
- Nested slider
- Lazy loading
- Thumbnail slider
- Auto width and height
- Accessibility friendly
- Live Region
- Internet Explorer 10
## No Lighthouse Errors
Here is the mobile version result of the [Splide front page](https://splidejs.com):
<img alt="Lighthouse result of the Splide frontpage" src="./images/lighthouse-mobile.png" width="500">
The Splide slider does not degrade Accessibility, Best Practices and SEO 🎉
## License
Splide is released under MIT license. © 2022 Naotoshi Fujita

View File

@@ -0,0 +1 @@
@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.splide__track--fade>.splide__list{display:block}.splide__track--fade>.splide__list>.splide__slide{left:0;opacity:0;position:absolute;top:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;position:relative;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__container{box-sizing:border-box;position:relative}.splide__list{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:-ms-flexbox;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

3122
libraries/splide-4.0.6/dist/js/splide.js vendored Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,379 @@
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
function empty(array) {
array.length = 0;
}
function slice(arrayLike, start, end) {
return Array.prototype.slice.call(arrayLike, start, end);
}
function find(arrayLike, predicate) {
return slice(arrayLike).filter(predicate)[0];
}
function apply(func) {
return func.bind(null, ...slice(arguments, 1));
}
const nextTick = setTimeout;
const noop = () => {
};
function raf(func) {
return requestAnimationFrame(func);
}
function typeOf(type, subject) {
return typeof subject === type;
}
function isObject(subject) {
return !isNull(subject) && typeOf("object", subject);
}
const isArray = Array.isArray;
const isFunction = apply(typeOf, "function");
const isString = apply(typeOf, "string");
const isUndefined = apply(typeOf, "undefined");
function isNull(subject) {
return subject === null;
}
function isHTMLElement(subject) {
return subject instanceof HTMLElement;
}
function isHTMLButtonElement(subject) {
return subject instanceof HTMLButtonElement;
}
function toArray(value) {
return isArray(value) ? value : [value];
}
function forEach(values, iteratee) {
toArray(values).forEach(iteratee);
}
function includes(array, value) {
return array.indexOf(value) > -1;
}
function push(array, items) {
array.push(...toArray(items));
return array;
}
function toggleClass(elm, classes, add) {
if (elm) {
forEach(classes, (name) => {
if (name) {
elm.classList[add ? "add" : "remove"](name);
}
});
}
}
function addClass(elm, classes) {
toggleClass(elm, isString(classes) ? classes.split(" ") : classes, true);
}
function append(parent, children) {
forEach(children, parent.appendChild.bind(parent));
}
function before(nodes, ref) {
forEach(nodes, (node) => {
const parent = (ref || node).parentNode;
if (parent) {
parent.insertBefore(node, ref);
}
});
}
function matches(elm, selector) {
return isHTMLElement(elm) && (elm["msMatchesSelector"] || elm.matches).call(elm, selector);
}
function children(parent, selector) {
const children2 = parent ? slice(parent.children) : [];
return selector ? children2.filter((child) => matches(child, selector)) : children2;
}
function child(parent, selector) {
return selector ? children(parent, selector)[0] : parent.firstElementChild;
}
const ownKeys = Object.keys;
function forOwn(object, iteratee, right) {
if (object) {
let keys = ownKeys(object);
keys = right ? keys.reverse() : keys;
for (let i = 0; i < keys.length; i++) {
const key = keys[i];
if (key !== "__proto__") {
if (iteratee(object[key], key) === false) {
break;
}
}
}
}
return object;
}
function assign(object) {
slice(arguments, 1).forEach((source) => {
forOwn(source, (value, key) => {
object[key] = source[key];
});
});
return object;
}
function merge(object) {
slice(arguments, 1).forEach((source) => {
forOwn(source, (value, key) => {
if (isArray(value)) {
object[key] = value.slice();
} else if (isObject(value)) {
object[key] = merge({}, isObject(object[key]) ? object[key] : {}, value);
} else {
object[key] = value;
}
});
});
return object;
}
function omit(object, keys) {
toArray(keys || ownKeys(object)).forEach((key) => {
delete object[key];
});
}
function removeAttribute(elms, attrs) {
forEach(elms, (elm) => {
forEach(attrs, (attr) => {
elm && elm.removeAttribute(attr);
});
});
}
function setAttribute(elms, attrs, value) {
if (isObject(attrs)) {
forOwn(attrs, (value2, name) => {
setAttribute(elms, name, value2);
});
} else {
forEach(elms, (elm) => {
isNull(value) || value === "" ? removeAttribute(elm, attrs) : elm.setAttribute(attrs, String(value));
});
}
}
function create(tag, attrs, parent) {
const elm = document.createElement(tag);
if (attrs) {
isString(attrs) ? addClass(elm, attrs) : setAttribute(elm, attrs);
}
parent && append(parent, elm);
return elm;
}
function style(elm, prop, value) {
if (isUndefined(value)) {
return getComputedStyle(elm)[prop];
}
if (!isNull(value)) {
elm.style[prop] = `${value}`;
}
}
function display(elm, display2) {
style(elm, "display", display2);
}
function focus(elm) {
elm["setActive"] && elm["setActive"]() || elm.focus({ preventScroll: true });
}
function getAttribute(elm, attr) {
return elm.getAttribute(attr);
}
function hasClass(elm, className) {
return elm && elm.classList.contains(className);
}
function rect(target) {
return target.getBoundingClientRect();
}
function remove(nodes) {
forEach(nodes, (node) => {
if (node && node.parentNode) {
node.parentNode.removeChild(node);
}
});
}
function measure(parent, value) {
if (isString(value)) {
const div = create("div", { style: `width: ${value}; position: absolute;` }, parent);
value = rect(div).width;
remove(div);
}
return value;
}
function parseHtml(html) {
return child(new DOMParser().parseFromString(html, "text/html").body);
}
function prevent(e, stopPropagation) {
e.preventDefault();
if (stopPropagation) {
e.stopPropagation();
e.stopImmediatePropagation();
}
}
function query(parent, selector) {
return parent && parent.querySelector(selector);
}
function queryAll(parent, selector) {
return selector ? slice(parent.querySelectorAll(selector)) : [];
}
function removeClass(elm, classes) {
toggleClass(elm, classes, false);
}
function timeOf(e) {
return e.timeStamp;
}
function unit(value) {
return isString(value) ? value : value ? `${value}px` : "";
}
const PROJECT_CODE = "splide";
function assert(condition, message) {
if (!condition) {
throw new Error(`[${PROJECT_CODE}] ${message || ""}`);
}
}
function error(message) {
console.error(`[${PROJECT_CODE}] ${message}`);
}
const { min, max, floor, ceil, abs } = Math;
function approximatelyEqual(x, y, epsilon) {
return abs(x - y) < epsilon;
}
function between(number, minOrMax, maxOrMin, exclusive) {
const minimum = min(minOrMax, maxOrMin);
const maximum = max(minOrMax, maxOrMin);
return exclusive ? minimum < number && number < maximum : minimum <= number && number <= maximum;
}
function clamp(number, x, y) {
const minimum = min(x, y);
const maximum = max(x, y);
return min(max(minimum, number), maximum);
}
function sign(x) {
return +(x > 0) - +(x < 0);
}
function camelToKebab(string) {
return string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
}
function format(string, replacements) {
forEach(replacements, (replacement) => {
string = string.replace("%s", `${replacement}`);
});
return string;
}
function pad(number) {
return number < 10 ? `0${number}` : `${number}`;
}
const ids = {};
function uniqueId(prefix) {
return `${prefix}${pad(ids[prefix] = (ids[prefix] || 0) + 1)}`;
}
exports.abs = abs;
exports.addClass = addClass;
exports.append = append;
exports.apply = apply;
exports.approximatelyEqual = approximatelyEqual;
exports.assert = assert;
exports.assign = assign;
exports.before = before;
exports.between = between;
exports.camelToKebab = camelToKebab;
exports.ceil = ceil;
exports.child = child;
exports.children = children;
exports.clamp = clamp;
exports.create = create;
exports.display = display;
exports.empty = empty;
exports.error = error;
exports.find = find;
exports.floor = floor;
exports.focus = focus;
exports.forEach = forEach;
exports.forOwn = forOwn;
exports.format = format;
exports.getAttribute = getAttribute;
exports.hasClass = hasClass;
exports.includes = includes;
exports.isArray = isArray;
exports.isFunction = isFunction;
exports.isHTMLButtonElement = isHTMLButtonElement;
exports.isHTMLElement = isHTMLElement;
exports.isNull = isNull;
exports.isObject = isObject;
exports.isString = isString;
exports.isUndefined = isUndefined;
exports.matches = matches;
exports.max = max;
exports.measure = measure;
exports.merge = merge;
exports.min = min;
exports.nextTick = nextTick;
exports.noop = noop;
exports.omit = omit;
exports.ownKeys = ownKeys;
exports.pad = pad;
exports.parseHtml = parseHtml;
exports.prevent = prevent;
exports.push = push;
exports.query = query;
exports.queryAll = queryAll;
exports.raf = raf;
exports.rect = rect;
exports.remove = remove;
exports.removeAttribute = removeAttribute;
exports.removeClass = removeClass;
exports.setAttribute = setAttribute;
exports.sign = sign;
exports.slice = slice;
exports.style = style;
exports.timeOf = timeOf;
exports.toArray = toArray;
exports.toggleClass = toggleClass;
exports.uniqueId = uniqueId;
exports.unit = unit;

View File

@@ -0,0 +1,312 @@
function empty(array) {
array.length = 0;
}
function slice(arrayLike, start, end) {
return Array.prototype.slice.call(arrayLike, start, end);
}
function find(arrayLike, predicate) {
return slice(arrayLike).filter(predicate)[0];
}
function apply(func) {
return func.bind(null, ...slice(arguments, 1));
}
const nextTick = setTimeout;
const noop = () => {
};
function raf(func) {
return requestAnimationFrame(func);
}
function typeOf(type, subject) {
return typeof subject === type;
}
function isObject(subject) {
return !isNull(subject) && typeOf("object", subject);
}
const isArray = Array.isArray;
const isFunction = apply(typeOf, "function");
const isString = apply(typeOf, "string");
const isUndefined = apply(typeOf, "undefined");
function isNull(subject) {
return subject === null;
}
function isHTMLElement(subject) {
return subject instanceof HTMLElement;
}
function isHTMLButtonElement(subject) {
return subject instanceof HTMLButtonElement;
}
function toArray(value) {
return isArray(value) ? value : [value];
}
function forEach(values, iteratee) {
toArray(values).forEach(iteratee);
}
function includes(array, value) {
return array.indexOf(value) > -1;
}
function push(array, items) {
array.push(...toArray(items));
return array;
}
function toggleClass(elm, classes, add) {
if (elm) {
forEach(classes, (name) => {
if (name) {
elm.classList[add ? "add" : "remove"](name);
}
});
}
}
function addClass(elm, classes) {
toggleClass(elm, isString(classes) ? classes.split(" ") : classes, true);
}
function append(parent, children) {
forEach(children, parent.appendChild.bind(parent));
}
function before(nodes, ref) {
forEach(nodes, (node) => {
const parent = (ref || node).parentNode;
if (parent) {
parent.insertBefore(node, ref);
}
});
}
function matches(elm, selector) {
return isHTMLElement(elm) && (elm["msMatchesSelector"] || elm.matches).call(elm, selector);
}
function children(parent, selector) {
const children2 = parent ? slice(parent.children) : [];
return selector ? children2.filter((child) => matches(child, selector)) : children2;
}
function child(parent, selector) {
return selector ? children(parent, selector)[0] : parent.firstElementChild;
}
const ownKeys = Object.keys;
function forOwn(object, iteratee, right) {
if (object) {
let keys = ownKeys(object);
keys = right ? keys.reverse() : keys;
for (let i = 0; i < keys.length; i++) {
const key = keys[i];
if (key !== "__proto__") {
if (iteratee(object[key], key) === false) {
break;
}
}
}
}
return object;
}
function assign(object) {
slice(arguments, 1).forEach((source) => {
forOwn(source, (value, key) => {
object[key] = source[key];
});
});
return object;
}
function merge(object) {
slice(arguments, 1).forEach((source) => {
forOwn(source, (value, key) => {
if (isArray(value)) {
object[key] = value.slice();
} else if (isObject(value)) {
object[key] = merge({}, isObject(object[key]) ? object[key] : {}, value);
} else {
object[key] = value;
}
});
});
return object;
}
function omit(object, keys) {
toArray(keys || ownKeys(object)).forEach((key) => {
delete object[key];
});
}
function removeAttribute(elms, attrs) {
forEach(elms, (elm) => {
forEach(attrs, (attr) => {
elm && elm.removeAttribute(attr);
});
});
}
function setAttribute(elms, attrs, value) {
if (isObject(attrs)) {
forOwn(attrs, (value2, name) => {
setAttribute(elms, name, value2);
});
} else {
forEach(elms, (elm) => {
isNull(value) || value === "" ? removeAttribute(elm, attrs) : elm.setAttribute(attrs, String(value));
});
}
}
function create(tag, attrs, parent) {
const elm = document.createElement(tag);
if (attrs) {
isString(attrs) ? addClass(elm, attrs) : setAttribute(elm, attrs);
}
parent && append(parent, elm);
return elm;
}
function style(elm, prop, value) {
if (isUndefined(value)) {
return getComputedStyle(elm)[prop];
}
if (!isNull(value)) {
elm.style[prop] = `${value}`;
}
}
function display(elm, display2) {
style(elm, "display", display2);
}
function focus(elm) {
elm["setActive"] && elm["setActive"]() || elm.focus({ preventScroll: true });
}
function getAttribute(elm, attr) {
return elm.getAttribute(attr);
}
function hasClass(elm, className) {
return elm && elm.classList.contains(className);
}
function rect(target) {
return target.getBoundingClientRect();
}
function remove(nodes) {
forEach(nodes, (node) => {
if (node && node.parentNode) {
node.parentNode.removeChild(node);
}
});
}
function measure(parent, value) {
if (isString(value)) {
const div = create("div", { style: `width: ${value}; position: absolute;` }, parent);
value = rect(div).width;
remove(div);
}
return value;
}
function parseHtml(html) {
return child(new DOMParser().parseFromString(html, "text/html").body);
}
function prevent(e, stopPropagation) {
e.preventDefault();
if (stopPropagation) {
e.stopPropagation();
e.stopImmediatePropagation();
}
}
function query(parent, selector) {
return parent && parent.querySelector(selector);
}
function queryAll(parent, selector) {
return selector ? slice(parent.querySelectorAll(selector)) : [];
}
function removeClass(elm, classes) {
toggleClass(elm, classes, false);
}
function timeOf(e) {
return e.timeStamp;
}
function unit(value) {
return isString(value) ? value : value ? `${value}px` : "";
}
const PROJECT_CODE = "splide";
function assert(condition, message) {
if (!condition) {
throw new Error(`[${PROJECT_CODE}] ${message || ""}`);
}
}
function error(message) {
console.error(`[${PROJECT_CODE}] ${message}`);
}
const { min, max, floor, ceil, abs } = Math;
function approximatelyEqual(x, y, epsilon) {
return abs(x - y) < epsilon;
}
function between(number, minOrMax, maxOrMin, exclusive) {
const minimum = min(minOrMax, maxOrMin);
const maximum = max(minOrMax, maxOrMin);
return exclusive ? minimum < number && number < maximum : minimum <= number && number <= maximum;
}
function clamp(number, x, y) {
const minimum = min(x, y);
const maximum = max(x, y);
return min(max(minimum, number), maximum);
}
function sign(x) {
return +(x > 0) - +(x < 0);
}
function camelToKebab(string) {
return string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
}
function format(string, replacements) {
forEach(replacements, (replacement) => {
string = string.replace("%s", `${replacement}`);
});
return string;
}
function pad(number) {
return number < 10 ? `0${number}` : `${number}`;
}
const ids = {};
function uniqueId(prefix) {
return `${prefix}${pad(ids[prefix] = (ids[prefix] || 0) + 1)}`;
}
export { abs, addClass, append, apply, approximatelyEqual, assert, assign, before, between, camelToKebab, ceil, child, children, clamp, create, display, empty, error, find, floor, focus, forEach, forOwn, format, getAttribute, hasClass, includes, isArray, isFunction, isHTMLButtonElement, isHTMLElement, isNull, isObject, isString, isUndefined, matches, max, measure, merge, min, nextTick, noop, omit, ownKeys, pad, parseHtml, prevent, push, query, queryAll, raf, rect, remove, removeAttribute, removeClass, setAttribute, sign, slice, style, timeOf, toArray, toggleClass, uniqueId, unit };

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,4 @@
<svg width="200" height="200" version="1.1" viewBox="0 0 52.9 52.9" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<rect x="1.25e-6" y="1.25e-6" width="52.9" height="52.9" fill="#f7df1e"/>
<path d="m35.54 41.33c1.066 1.74 2.452 3.019 4.904 3.019 2.06 0 3.376-1.029 3.376-2.452 0-1.705-1.352-2.308-3.619-3.3l-1.243-0.5332c-3.587-1.528-5.97-3.443-5.97-7.49 0-3.728 2.841-6.566 7.28-6.566 3.161 0 5.433 1.1 7.07 3.98l-3.871 2.485c-0.8523-1.528-1.772-2.13-3.199-2.13-1.456 0-2.379 0.9237-2.379 2.13 0 1.491 0.9236 2.095 3.056 3.019l1.243 0.5324c4.224 1.811 6.608 3.658 6.608 7.809 0 4.476-3.516 6.927-8.237 6.927-4.617 0-7.599-2.2-9.058-5.083zm-17.56 0.4308c0.7809 1.385 1.491 2.557 3.199 2.557 1.633 0 2.663-0.639 2.663-3.124v-16.9h4.971v16.97c0 5.147-3.018 7.49-7.423 7.49-3.98 0-6.285-2.06-7.457-4.541z"/>
</svg>

After

Width:  |  Height:  |  Size: 846 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View File

@@ -0,0 +1,12 @@
<svg width="200" height="200" version="1.1" viewBox="0 0 52.9 52.9" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<linearGradient id="logo-d">
<stop stop-color="#c0e900" offset="0"/>
<stop stop-color="#00c3f3" offset="1"/>
</linearGradient>
<linearGradient id="logo-e" x1="-17.6" x2="-39" y1="125" y2="125" gradientTransform="matrix(-.9412 0 0 -.9412 -10.48 143.8)" gradientUnits="userSpaceOnUse" xlink:href="#logo-d"/>
<linearGradient id="logo-f" x1="-42.4" x2="-11.2" y1="125" y2="125" gradientTransform="matrix(.9412 0 0 .9412 63.36 -91.31)" gradientUnits="userSpaceOnUse" xlink:href="#logo-d"/>
</defs>
<path d="m8.803 17.65 26.45 26.45-8.803 8.803-26.45-26.45zm-8.803 8.803 26.45-26.45 8.803 8.803-26.45 26.45z" fill="url(#logo-e)"/>
<path d="m44.1 35.25-26.45-26.45 8.803-8.803 26.45 26.45zm8.803-8.803-26.45 26.45-8.803-8.803 26.45-26.45z" fill="url(#logo-f)"/>
</svg>

After

Width:  |  Height:  |  Size: 934 B

View File

@@ -0,0 +1,4 @@
<svg width="200" height="200" version="1.1" viewBox="0 0 52.9 52.9" xmlns="http://www.w3.org/2000/svg">
<path d="m52.9 26.5c0-3.51-4.39-6.83-11.1-8.89 1.55-6.86 0.863-12.3-2.18-14.1-0.701-0.41-1.52-0.604-2.42-0.604v2.41c0.496 0 0.895 0.0971 1.23 0.28 1.47 0.841 2.1 4.04 1.61 8.17-0.119 1.01-0.313 2.08-0.55 3.17-2.11-0.518-4.42-0.917-6.85-1.18-1.46-2-2.97-3.81-4.49-5.39 3.52-3.27 6.82-5.06 9.06-5.06v-2.41c-2.97 0-6.85 2.11-10.8 5.78-3.93-3.65-7.81-5.74-10.8-5.74v2.41c2.23 0 5.54 1.78 9.06 5.03-1.51 1.59-3.02 3.39-4.45 5.38-2.44 0.259-4.75 0.658-6.86 1.19-0.248-1.08-0.431-2.12-0.561-3.13-0.507-4.12 0.119-7.32 1.57-8.18 0.324-0.194 0.744-0.28 1.24-0.28v-2.41c-0.906 0-1.73 0.194-2.44 0.604-3.03 1.75-3.71 7.19-2.15 14-6.71 2.07-11.1 5.38-11.1 8.88 0 3.51 4.39 6.83 11.1 8.89-1.55 6.86-0.863 12.3 2.18 14.1 0.701 0.41 1.52 0.604 2.43 0.604 2.97 0 6.85-2.11 10.8-5.78 3.93 3.65 7.81 5.74 10.8 5.74 0.906 0 1.73-0.194 2.44-0.604 3.03-1.75 3.71-7.19 2.15-14 6.69-2.06 11.1-5.38 11.1-8.88zm-14-7.19c-0.399 1.39-0.895 2.83-1.46 4.26-0.442-0.863-0.906-1.73-1.41-2.59-0.496-0.863-1.02-1.7-1.55-2.52 1.53 0.227 3.01 0.507 4.42 0.852zm-4.94 11.5c-0.841 1.46-1.7 2.84-2.6 4.12-1.61 0.14-3.24 0.216-4.88 0.216-1.63 0-3.26-0.0755-4.85-0.205-0.895-1.28-1.77-2.65-2.61-4.1-0.82-1.41-1.56-2.85-2.24-4.29 0.669-1.45 1.42-2.89 2.23-4.3 0.841-1.46 1.7-2.84 2.6-4.12 1.61-0.14 3.24-0.216 4.88-0.216 1.63 0 3.26 0.0755 4.85 0.205 0.895 1.28 1.77 2.65 2.61 4.1 0.82 1.41 1.56 2.85 2.24 4.29-0.68 1.45-1.42 2.89-2.23 4.3zm3.48-1.4c0.582 1.45 1.08 2.89 1.49 4.29-1.41 0.345-2.9 0.636-4.44 0.863 0.529-0.831 1.06-1.68 1.55-2.56 0.496-0.863 0.96-1.74 1.4-2.6zm-10.9 11.5c-1-1.04-2.01-2.19-3-3.45 0.971 0.0431 1.96 0.0755 2.97 0.0755 1.01 0 2.02-0.0216 3-0.0755-0.971 1.26-1.97 2.42-2.97 3.45zm-8.02-6.35c-1.53-0.226-3.01-0.507-4.42-0.852 0.399-1.39 0.895-2.83 1.46-4.26 0.442 0.863 0.906 1.73 1.41 2.59 0.507 0.863 1.02 1.7 1.55 2.52zm7.97-22.4c1 1.04 2.01 2.19 3 3.45-0.971-0.0431-1.96-0.0755-2.97-0.0755-1.01 0-2.02 0.0216-3 0.0755 0.971-1.26 1.97-2.42 2.97-3.45zm-7.98 6.35c-0.529 0.831-1.06 1.68-1.55 2.56-0.496 0.863-0.96 1.73-1.4 2.59-0.582-1.45-1.08-2.89-1.49-4.29 1.41-0.334 2.9-0.626 4.44-0.852zm-9.76 13.5c-3.82-1.63-6.29-3.76-6.29-5.46 0-1.69 2.47-3.84 6.29-5.46 0.928-0.399 1.94-0.755 2.99-1.09 0.615 2.11 1.42 4.31 2.43 6.57-0.992 2.24-1.79 4.43-2.39 6.54-1.07-0.334-2.08-0.701-3.02-1.1zm5.8 15.4c-1.47-0.841-2.1-4.04-1.61-8.17 0.119-1.01 0.313-2.08 0.55-3.17 2.11 0.518 4.42 0.917 6.85 1.18 1.46 2 2.97 3.81 4.49 5.39-3.52 3.27-6.82 5.06-9.06 5.06-0.485-0.0108-0.895-0.108-1.22-0.291zm25.6-8.22c0.507 4.12-0.119 7.32-1.57 8.18-0.324 0.194-0.744 0.28-1.24 0.28-2.23 0-5.54-1.78-9.06-5.03 1.51-1.59 3.02-3.39 4.45-5.38 2.44-0.259 4.75-0.658 6.86-1.19 0.248 1.09 0.442 2.14 0.561 3.14zm4.15-7.19c-0.928 0.399-1.94 0.755-2.99 1.09-0.615-2.11-1.42-4.31-2.43-6.57 0.992-2.24 1.79-4.43 2.39-6.54 1.07 0.334 2.08 0.701 3.03 1.1 3.82 1.63 6.29 3.76 6.29 5.46-0.0108 1.69-2.48 3.84-6.3 5.46z" fill="#61dafb"/>
<circle cx="26.5" cy="26.5" r="4.93" fill="#61dafb"/>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -0,0 +1,4 @@
<svg width="200" height="200" version="1.1" viewBox="0 0 52.9 52.9" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<path d="m45.65 6.999c-4.912-7.031-14.61-9.114-21.63-4.645l-12.32 7.852a14.13 14.13 0 0 0-6.385 9.467 14.88 14.88 0 0 0 1.468 9.556 14.17 14.17 0 0 0-2.114 5.282 15.06 15.06 0 0 0 2.573 11.39c4.913 7.031 14.61 9.114 21.63 4.645l12.32-7.852a14.13 14.13 0 0 0 6.385-9.467 14.89 14.89 0 0 0-1.467-9.556 14.17 14.17 0 0 0 2.113-5.282 15.06 15.06 0 0 0-2.573-11.39" fill="#ff3e00" stroke-width=".2645"/>
<path d="m22.82 46.56a9.786 9.786 0 0 1-10.5-3.893 9.056 9.056 0 0 1-1.548-6.85 8.591 8.591 0 0 1 0.2944-1.15l0.232-0.7074 0.6312 0.4636a15.89 15.89 0 0 0 4.819 2.408l0.4579 0.1389-0.04218 0.457a2.762 2.762 0 0 0 0.4969 1.832 2.947 2.947 0 0 0 3.162 1.174 2.713 2.713 0 0 0 0.7567-0.3326l12.32-7.851a2.565 2.565 0 0 0 1.157-1.715 2.737 2.737 0 0 0-0.4664-2.065 2.949 2.949 0 0 0-3.164-1.174 2.712 2.712 0 0 0-0.7557 0.3323l-4.701 2.997a8.99 8.99 0 0 1-2.502 1.099 9.786 9.786 0 0 1-10.5-3.893 9.056 9.056 0 0 1-1.548-6.85 8.496 8.496 0 0 1 3.84-5.692l12.32-7.851a8.976 8.976 0 0 1 2.503-1.1 9.786 9.786 0 0 1 10.5 3.893 9.056 9.056 0 0 1 1.548 6.85 8.691 8.691 0 0 1-0.2944 1.15l-0.232 0.7074-0.6308-0.4629a15.88 15.88 0 0 0-4.819-2.409l-0.4579-0.139 0.04218-0.457a2.767 2.767 0 0 0-0.4969-1.832 2.947 2.947 0 0 0-3.162-1.174 2.713 2.713 0 0 0-0.7567 0.3326l-12.32 7.851a2.561 2.561 0 0 0-1.157 1.715 2.733 2.733 0 0 0 0.4655 2.065 2.949 2.949 0 0 0 3.164 1.174 2.723 2.723 0 0 0 0.7567-0.3326l4.7-2.996a8.964 8.964 0 0 1 2.501-1.099 9.786 9.786 0 0 1 10.5 3.893 9.056 9.056 0 0 1 1.548 6.85 8.501 8.501 0 0 1-3.84 5.693l-12.32 7.851a8.976 8.976 0 0 1-2.503 1.1" fill="#fff" stroke-width=".2645"/>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -0,0 +1,4 @@
<svg width="200" height="200" version="1.1" viewBox="0 0 52.9 52.9" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<rect width="52.9" height="52.9" rx="5.29" ry="5.29" fill="#3178c6"/>
<path d="m31.1 41.43v5.707c0.9282 0.4757 2.026 0.8323 3.293 1.07 1.267 0.2378 2.603 0.3567 4.007 0.3567 1.368 0 2.669-0.1308 3.9-0.3924 1.232-0.2616 2.312-0.6927 3.24-1.293 0.9282-0.6005 1.663-1.385 2.205-2.354 0.5414-0.9689 0.8121-2.167 0.8121-3.594 0-1.034-0.1548-1.941-0.4641-2.72-0.3093-0.7788-0.7557-1.471-1.339-2.078-0.5829-0.6065-1.282-1.15-2.097-1.632-0.8152-0.4815-1.735-0.9363-2.758-1.364-0.7497-0.3093-1.422-0.6094-2.017-0.9007-0.5949-0.2914-1.101-0.5885-1.517-0.8919-0.4166-0.3031-0.7379-0.6243-0.964-0.9632-0.2261-0.3389-0.3391-0.7222-0.3391-1.15 0-0.3924 0.101-0.746 0.3033-1.061s0.4881-0.5856 0.8569-0.8115c0.3689-0.2261 0.821-0.4013 1.357-0.5263 0.5354-0.1248 1.131-0.1872 1.785-0.1872 0.4761 0 0.9789 0.03575 1.508 0.107 0.5296 0.07129 1.062 0.1812 1.598 0.33 0.5354 0.1486 1.056 0.3358 1.562 0.5619 0.5056 0.2259 0.9729 0.4875 1.401 0.7846v-5.333c-0.8687-0.3329-1.818-0.5796-2.847-0.7402s-2.21-0.2407-3.543-0.2407c-1.357 0-2.642 0.1457-3.856 0.437-1.214 0.2912-2.282 0.746-3.204 1.364-0.9222 0.6185-1.651 1.406-2.187 2.363-0.5354 0.9572-0.8032 2.102-0.8032 3.433 0 1.7 0.4908 3.151 1.473 4.352 0.9818 1.201 2.472 2.217 4.471 3.05 0.7854 0.3211 1.517 0.636 2.196 0.9454 0.6784 0.3091 1.264 0.63 1.758 0.9629s0.8836 0.6956 1.169 1.088c0.2856 0.3924 0.4284 0.8383 0.4284 1.338 0 0.3684-0.08927 0.7104-0.2678 1.026-0.1783 0.3149-0.4492 0.5885-0.8121 0.8204s-0.8152 0.4131-1.357 0.5439c-0.5414 0.1308-1.175 0.1963-1.901 0.1963-1.238 0-2.463-0.217-3.677-0.6511-1.214-0.4339-2.339-1.085-3.374-1.953zm-9.513-14.2h7.339v-4.699h-20.46v4.699h7.304v20.92h5.814z" fill="#fff"/>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -0,0 +1,4 @@
<svg width="200" height="200" version="1.1" viewBox="0 0 52.9 52.9" xmlns="http://www.w3.org/2000/svg">
<path d="m32.6 3.54-6.11 10.6-6.11-10.6h-20.3l26.5 45.8 26.5-45.8z" fill="#41b883"/>
<path d="m32.6 3.54-6.11 10.6-6.11-10.6h-9.76l15.9 27.5 15.9-27.5z" fill="#34495e"/>
</svg>

After

Width:  |  Height:  |  Size: 283 B

View File

@@ -0,0 +1,14 @@
module.exports = {
rootDir: './src',
transform: {
'^.+\\.(ts|tsx)$': 'ts-jest',
},
testEnvironment: 'jsdom',
setupFiles: [
'./js/test/jest/setup.ts',
],
transformIgnorePatterns: [
'<rootDir>/node_modules/@babel',
'<rootDir>/node_modules/@jest',
],
};

19124
libraries/splide-4.0.6/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,110 @@
{
"name": "@splidejs/splide",
"version": "4.0.6",
"description": "Splide is a lightweight, flexible and accessible slider/carousel. No dependencies, no Lighthouse errors.",
"author": "Naotoshi Fujita",
"license": "MIT",
"main": "dist/js/splide.cjs.js",
"module": "dist/js/splide.esm.js",
"types": "dist/types/index.d.ts",
"svelte": "dist/js/splide.esm.js",
"jsdelivr": "dist/js/splide.min.js",
"keywords": [
"splide",
"slider",
"carousel",
"slideshow",
"gallery",
"lightweight",
"touch",
"responsive",
"typescript"
],
"homepage": "https://splidejs.com/",
"repository": {
"type": "git",
"url": "git+https://github.com/Splidejs/splide.git"
},
"bugs": {
"url": "https://github.com/Splidejs/splide/issues"
},
"devDependencies": {
"@babel/core": "^7.16.10",
"@babel/preset-env": "^7.16.11",
"@rollup/plugin-babel": "^5.3.0",
"@rollup/plugin-node-resolve": "^13.1.3",
"@types/jest": "^27.4.0",
"@types/node": "^17.0.35",
"@typescript-eslint/eslint-plugin": "^5.10.0",
"@typescript-eslint/parser": "^5.10.0",
"autoprefixer": "^10.4.2",
"babel-jest": "^27.4.6",
"babel-loader": "^8.2.3",
"chokidar": "^3.5.3",
"cssnano": "^5.0.15",
"esbuild": "^0.14.12",
"eslint": "^8.7.0",
"jest": "^27.4.7",
"postcss": "^8.4.5",
"rollup": "^2.66.0",
"rollup-plugin-dts": "^4.1.0",
"rollup-plugin-esbuild": "^4.8.2",
"sass": "^1.49.0",
"stylelint": "^14.2.0",
"stylelint-config-sass-guidelines": "^9.0.1",
"stylelint-order": "^5.0.0",
"stylelint-scss": "^4.1.0",
"ts-jest": "^27.1.3",
"tslib": "^2.3.1",
"typescript": "^4.5.5",
"uglify-js": "^3.14.5"
},
"scripts": {
"develop": "node scripts/develop.js",
"build:js": "node scripts/build-script.js",
"build:module": "node scripts/build-module.js",
"build:types": "node scripts/build-types.js",
"build:css": "node scripts/build-css.js",
"build:all": "npm run build:js && npm run build:module && npm run build:css && npm run build:types && node scripts/build-utils.js",
"check:types": "tsc --noEmit",
"jest": "jest --clearCache && jest",
"eslint": "eslint src",
"stylelint": "npx stylelint --fix ./src/css/**/*.scss",
"beforecommit": "npm run eslint && npm run stylelint && npm run jest && npm run build:all"
},
"browserslist": [
"> 5%",
"ie 10"
],
"files": [
"dist",
"src/css/",
"src/js/components",
"src/js/constants",
"src/js/constructors",
"src/js/core",
"src/js/renderer",
"src/js/transitions",
"src/js/types",
"src/js/utils"
],
"exports": {
".": {
"require": "./dist/js/splide.cjs.js",
"import": "./dist/js/splide.esm.js",
"default": "./dist/js/splide.esm.js"
},
"./src/js/utils": {
"require": "./dist/js/utils/splide-utils.cjs.js",
"import": "./dist/js/utils/splide-utils.esm.js",
"default": "./dist/js/utils/splide-utils.esm.js",
"types": "./src/js/utils/index.ts"
},
"./css": "./dist/css/splide.min.css",
"./css/core": "./dist/css/splide-core.min.css",
"./css/*": "./dist/css/themes/splide-*.min.css",
"./dist/": "./dist/",
"./src/css/template/": "./src/css/template/",
"./package.json": "./package.json"
}
}

View File

@@ -0,0 +1,52 @@
const sass = require( 'sass' );
const fs = require( 'fs' ).promises;
const path = require( 'path' );
const postcss = require( 'postcss' );
const cssnano = require( 'cssnano' );
const autoprefixer = require( 'autoprefixer' );
const name = 'splide';
const files = [
'./src/css/core/index.scss',
'./src/css/themes/default/index.scss',
'./src/css/themes/sea-green/index.scss',
'./src/css/themes/skyblue/index.scss',
];
function buildCss( file ) {
const result = sass.renderSync( { file, outputStyle: 'compressed' } );
const outFile = rename( file );
return postcss( [
cssnano( { reduceIdents: false } ),
autoprefixer(),
] )
.process( result.css, { from: undefined } )
.then( result => {
result.warnings().forEach( warn => {
console.warn( warn.toString() );
} );
return fs.writeFile( outFile, result.css ).then( () => result );
} )
.then( result => {
if ( outFile.includes( 'splide-default' ) ) {
const dir = path.dirname( outFile ).split( '/' ).slice( 0, -1 ).join( '/' );
return fs.writeFile( `${ dir }/${ name }.min.css`, result.css ).then( () => result );
}
} );
}
function rename( file ) {
file = file.replace( './src/', '' );
const fragments = path.dirname( file ).split( '/' );
const dirname = fragments.slice( 0, -1 ).join( '/' );
return `./dist/${ dirname }/${ name }-${ fragments[ fragments.length - 1 ] }.min.css`;
}
Promise.all( files.map( buildCss ) ).catch( e => console.error( e ) );
exports.buildCss = () => {
files.forEach( buildCss );
};

View File

@@ -0,0 +1,35 @@
const rollup = require( 'rollup' ).rollup;
const resolve = require( '@rollup/plugin-node-resolve' ).nodeResolve;
const esbuild = require( 'rollup-plugin-esbuild' ).default;
const banner = require( './constants/banner' );
const babel = require( '@rollup/plugin-babel' );
const path = require( 'path' );
const name = 'splide';
function buildModule( type ) {
return rollup( {
input: './src/js/index.ts',
plugins: [
resolve(),
esbuild(),
babel.getBabelOutputPlugin( {
configFile: path.resolve( __dirname, '../.babelrc' ),
allowAllFormats: true,
} ),
],
} ).then( bundle => {
return bundle.write( {
banner,
file : `./dist/js/${ name }.${ type }.js`,
format : type,
sourcemap: false,
exports : 'named',
} );
} );
}
Promise.all( [ buildModule( 'cjs' ), buildModule( 'esm' ) ] ).catch( e => console.error( e ) );
exports.buildCjs = () => buildModule( 'cjs' );
exports.buildEsm = () => buildModule( 'esm' );

View File

@@ -0,0 +1,60 @@
const rollup = require( 'rollup' ).rollup;
const esbuild = require( 'rollup-plugin-esbuild' ).default;
const babel = require( '@rollup/plugin-babel' );
const resolve = require( '@rollup/plugin-node-resolve' ).nodeResolve;
const path = require( 'path' );
const minify = require( './plugins/minify' ).minify;
const banner = require( './constants/banner' );
const fs = require( 'fs' ).promises;
const zlib = require( 'zlib' );
const name = 'splide';
async function buildScript( compress, type = 'default' ) {
const file = `./dist/js/${ name }${ type !== 'default' ? `-${ type }` : '' }${ compress ? '.min' : '' }.js`;
const bundle = await rollup( {
input: `./src/js/build/${ type }.ts`,
plugins: [
resolve(),
esbuild( { minify: false } ),
babel.getBabelOutputPlugin( {
configFile: path.resolve( __dirname, '../.babelrc' ),
allowAllFormats: true,
} ),
compress ? minify( { minify: { sourceMap: true } } ) : false,
]
} );
await bundle.write( {
banner,
file,
format : 'umd',
name : type === 'default' ? 'Splide' : 'SplideRenderer',
sourcemap: compress,
} );
if ( compress && type === 'default' ) {
await fs.readFile( file ).then( content => {
return new Promise( ( resolve, reject ) => {
zlib.gzip( content, ( err, binary ) => {
if ( err ) {
return reject( err );
}
fs.writeFile( `${ file }.gz`, binary ).then( resolve, reject );
} );
} );
} );
}
}
Promise.all( [
buildScript(),
buildScript( true ),
buildScript( true, 'renderer' ),
] ).catch( e => console.error( e ) );
exports.buildJs = () => buildScript();
exports.buildMin = () => buildScript( true );
exports.buildRenderer = () => buildScript( true, 'renderer' );

View File

@@ -0,0 +1,42 @@
const { default: dts } = require( 'rollup-plugin-dts' );
const { rollup } = require( 'rollup' );
const { promises: fs } = require( 'fs' );
const path = require( 'path' );
const util = require( 'util' );
const exec = util.promisify( require( 'child_process' ).exec );
const dir = './dist/types';
async function clean() {
const files = await fs.readdir( dir );
await Promise.all( files.map( file => {
if ( file !== 'index.d.ts' ) {
return fs.rm( path.join( dir, file ), { recursive: true, force: true } );
}
} ) );
}
async function emit() {
await exec( 'tsc --emitDeclarationOnly' );
}
async function bundle() {
const file = path.join( dir, 'index.d.ts' )
const bundle = await rollup( {
input : file,
plugins: [ dts( { respectExternal: true } ) ],
} );
await bundle.write( { file } );
}
async function build() {
await clean();
await emit();
await bundle();
await clean();
}
build().catch( e => console.error( e ) );

View File

@@ -0,0 +1,22 @@
const rollup = require( 'rollup' ).rollup;
const esbuild = require( 'rollup-plugin-esbuild' ).default;
const name = 'splide-utils';
function buildModule( type ) {
return rollup( {
input: './src/js/utils/index.ts',
plugins: [
esbuild(),
],
} ).then( bundle => {
return bundle.write( {
file : `./dist/js/utils/${ name }.${ type }.js`,
format : type,
sourcemap: false,
exports : 'named',
} );
} );
}
Promise.all( [ buildModule( 'cjs' ), buildModule( 'esm' ) ] ).catch( e => console.error( e ) );

View File

@@ -0,0 +1,8 @@
const info = require( '../../package.json' );
module.exports = `/*!
* Splide.js
* Version : ${ info.version }
* License : ${ info.license }
* Copyright: ${ new Date().getFullYear() } ${ info.author }
*/`;

View File

@@ -0,0 +1,22 @@
const chokidar = require( 'chokidar' );
const { buildJs, buildRenderer } = require( './build-script' );
const { buildCss } = require( './build-css' );
chokidar.watch( [ './src/js/**/*.ts', '!*.test.ts', '!./src/js/renderer/**/*.ts' ] ).on( 'change', async () => {
console.log( 'Building Script...' );
await buildJs()
console.log( 'Finished' );
} );
chokidar.watch( [ './src/js/renderer/**/*.ts', '!*.test.ts' ] ).on( 'change', async () => {
console.log( 'Building Renderer Script...' );
await buildRenderer()
console.log( 'Finished' );
} );
chokidar.watch( [ './src/css/**/*.scss' ] ).on( 'change', async () => {
console.log( 'Building CSS...' );
await buildCss()
console.log( 'Finished' );
} );

View File

@@ -0,0 +1,36 @@
const uglify = require( 'uglify-js' );
const plugin = require( 'rollup-plugin-dts' );
const DEFAULTS = {
minify: {
sourceMap: true,
output: {
comments: /^!/,
},
toplevel: true,
mangle: {
properties: {
regex: /^_/,
},
},
},
};
function minify( pluginOptions = {} ) {
pluginOptions = { ...DEFAULTS, ...pluginOptions };
return {
name: 'minify',
renderChunk( code ) {
const result = uglify.minify( code, pluginOptions.minify );
if ( result.error ) {
throw new Error( result.error );
}
return result;
},
}
}
exports.minify = minify;

View File

@@ -0,0 +1,32 @@
const http = require( 'http' );
const path = require( 'path' );
const fs = require( 'fs' ).promises;
const server = http.createServer();
const mime = {
'.html': 'text/html',
'.css' : 'text/css',
'.jpg' : 'image/jpeg',
'.js' : 'application/javascript',
};
server.on( 'request', async ( request, response ) => {
const { url } = request;
let fullPath;
if ( url === '/' ) {
fullPath = path.resolve( './src/js/test/html/index.html' );
} else if ( url.startsWith( '/' ) ) {
fullPath = path.resolve( `.${ url }` );
} else {
fullPath = url;
}
const type = mime[ path.extname( fullPath ) ] || 'text/plain';
const buffer = await fs.readFile( fullPath ).catch( e => console.warn( e ) );
response.writeHead( 200, { 'Content-Type': type } );
response.end( buffer );
} );
server.listen( 3000 );

View File

@@ -0,0 +1,9 @@
@keyframes splide-loading {
0% {
transform: rotateZ( 0 );
}
100% {
transform: rotateZ( 360deg );
}
}

View File

@@ -0,0 +1,3 @@
@forward 'foundation/animations';
@forward 'object/modifiers';
@forward 'object/objects';

View File

@@ -0,0 +1,8 @@
.splide {
$root: &;
&__track--draggable {
-webkit-touch-callout: none;
user-select: none;
}
}

View File

@@ -0,0 +1,23 @@
.splide {
$root: &;
&__track--fade {
> #{ $root }__list {
display: block;
> #{ $root }__slide {
left: 0;
opacity: 0;
position: absolute;
top: 0;
z-index: 0;
&.is-active {
opacity: 1;
position: relative;
z-index: 1;
}
}
}
}
}

View File

@@ -0,0 +1,4 @@
@forward 'draggable';
@forward 'fade';
@forward 'rtl';
@forward 'ttb';

View File

@@ -0,0 +1,5 @@
.splide {
&--rtl {
direction: rtl;
}
}

View File

@@ -0,0 +1,9 @@
.splide {
$root: &;
&__track--ttb {
> #{ $root }__list {
display: block;
}
}
}

View File

@@ -0,0 +1,6 @@
.splide {
&__container {
box-sizing: border-box;
position: relative;
}
}

View File

@@ -0,0 +1,10 @@
@forward 'container';
@forward 'list';
@forward 'pagination';
@forward 'progress';
@forward 'root';
@forward 'slide';
@forward 'spinner' as spinner-*;
@forward 'sr';
@forward 'toggle';
@forward 'track';

View File

@@ -0,0 +1,17 @@
.splide {
$root: &;
&__list {
backface-visibility: hidden;
display: flex;
height: 100%;
margin: 0 !important;
padding: 0 !important;
}
&.is-initialized:not(.is-active) {
#{ $root }__list {
display: block;
}
}
}

View File

@@ -0,0 +1,18 @@
.splide {
&__pagination {
align-items: center;
display: flex;
flex-wrap: wrap;
justify-content: center;
margin: 0;
pointer-events: none;
li {
display: inline-block;
line-height: 1;
list-style-type: none;
margin: 0;
pointer-events: auto;
}
}
}

View File

@@ -0,0 +1,7 @@
.splide {
&__progress {
&__bar {
width: 0;
}
}
}

View File

@@ -0,0 +1,9 @@
.splide {
position: relative;
visibility: hidden;
&.is-initialized,
&.is-rendered {
visibility: visible;
}
}

View File

@@ -0,0 +1,14 @@
.splide {
&__slide {
backface-visibility: hidden;
box-sizing: border-box;
flex-shrink: 0;
list-style-type: none !important;
margin: 0;
position: relative;
img {
vertical-align: bottom;
}
}
}

View File

@@ -0,0 +1,21 @@
$size: 20px !default;
$border: 2px solid #999 !default;
.splide {
&__spinner {
animation: splide-loading 1s infinite linear;
border: $border;
border-left-color: transparent;
border-radius: 50%;
bottom: 0;
contain: strict;
display: inline-block;
height: $size;
left: 0;
margin: auto;
position: absolute;
right: 0;
top: 0;
width: $size;
}
}

View File

@@ -0,0 +1,12 @@
.splide {
&__sr {
border: 0;
clip: rect( 0 0 0 0 );
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
}

View File

@@ -0,0 +1,22 @@
.splide {
&__toggle {
$parent: &;
&__play {
}
&__pause {
display: none;
}
&.is-active {
#{ $parent }__play {
display: none;
}
#{ $parent }__pause {
display: inline;
}
}
}
}

View File

@@ -0,0 +1,7 @@
.splide {
&__track {
overflow: hidden;
position: relative;
z-index: 0;
}
}

View File

@@ -0,0 +1 @@
.splide__container{box-sizing:border-box;position:relative}/*# sourceMappingURL=container.css.map */

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../objects/container.scss"],"names":[],"mappings":"AACE,mBACE,qBAAA,CACA,iBAAA","file":"container.css"}

View File

@@ -0,0 +1 @@
.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}/*# sourceMappingURL=draggable.css.map */

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../modifiers/draggable.scss"],"names":[],"mappings":"AAGE,0BACE,0BAAA,CACA,wBAAA,CAAA,qBAAA,CAAA,gBAAA","file":"draggable.css"}

View File

@@ -0,0 +1 @@
.splide__track--fade>.splide__list{display:block}.splide__track--fade>.splide__list>.splide__slide{left:0;opacity:0;position:absolute;top:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;position:relative;z-index:1}/*# sourceMappingURL=fade.css.map */

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../modifiers/fade.scss"],"names":[],"mappings":"AAII,mCACE,aAAA,CAEA,kDACE,MAAA,CACA,SAAA,CACA,iBAAA,CACA,KAAA,CACA,SAAA,CAEA,4DACE,SAAA,CACA,iBAAA,CACA,SAAA","file":"fade.css"}

View File

@@ -0,0 +1 @@
.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:flex;height:100%;margin:0 !important;padding:0 !important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{align-items:center;display:flex;flex-wrap:wrap;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;flex-shrink:0;list-style-type:none !important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s infinite linear;border:2px solid #999;border-left-color:rgba(0,0,0,0);border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__play{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}/*# sourceMappingURL=index.css.map */

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../objects/container.scss","../objects/list.scss","../objects/pagination.scss","../objects/progress.scss","../objects/root.scss","../objects/slide.scss","../objects/spinner.scss","../objects/sr.scss","../objects/toggle.scss","../objects/track.scss"],"names":[],"mappings":"AACE,mBACE,qBAAA,CACA,iBAAA,CAAA,cCCA,0BAAA,CACA,YAAA,CACA,WAAA,CACA,mBAAA,CACA,oBAAA,CAIA,qDACE,aAAA,CCZJ,oBACE,kBAAA,CACA,YAAA,CACA,cAAA,CACA,sBAAA,CACA,QAAA,CACA,mBAAA,CAEA,uBACE,oBAAA,CACA,aAAA,CACA,oBAAA,CACA,QAAA,CACA,mBAAA,CCZF,uBACE,OAAA,CCHN,QACE,iBAAA,CACA,iBAAA,CAEA,2CAEE,kBAAA,CCLF,eACE,0BAAA,CACA,qBAAA,CACA,aAAA,CACA,+BAAA,CACA,QAAA,CACA,iBAAA,CAEA,mBACE,qBAAA,CCNJ,iBACE,2CAAA,CACA,qBALK,CAML,+BAAA,CACA,iBAAA,CACA,QAAA,CACA,cAAA,CACA,oBAAA,CACA,WAZG,CAaH,MAAA,CACA,WAAA,CACA,iBAAA,CACA,OAAA,CACA,KAAA,CACA,UAlBG,CCCL,YACE,QAAA,CACA,kBAAA,CACA,UAAA,CACA,WAAA,CACA,eAAA,CACA,SAAA,CACA,iBAAA,CACA,SAAA,CCFA,uBACE,YAAA,CAIA,gDACE,YAAA,CAGF,iDACE,cAAA,CChBN,eACE,eAAA,CACA,iBAAA,CACA,SAAA","file":"index.css"}

View File

@@ -0,0 +1 @@
.splide__list{backface-visibility:hidden;display:flex;height:100%;margin:0 !important;padding:0 !important}.splide.is-initialized:not(.is-active) .splide__list{display:block}/*# sourceMappingURL=list.css.map */

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../objects/list.scss"],"names":[],"mappings":"AAGE,cACE,0BAAA,CACA,YAAA,CACA,WAAA,CACA,mBAAA,CACA,oBAAA,CAIA,qDACE,aAAA","file":"list.css"}

View File

@@ -0,0 +1 @@
.splide__pagination{align-items:center;display:flex;flex-wrap:wrap;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}/*# sourceMappingURL=pagination.css.map */

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../objects/pagination.scss"],"names":[],"mappings":"AACE,oBACE,kBAAA,CACA,YAAA,CACA,cAAA,CACA,sBAAA,CACA,QAAA,CACA,mBAAA,CAEA,uBACE,oBAAA,CACA,aAAA,CACA,oBAAA,CACA,QAAA,CACA,mBAAA","file":"pagination.css"}

View File

@@ -0,0 +1 @@
.splide__progress__bar{width:0}/*# sourceMappingURL=progress.css.map */

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../objects/progress.scss"],"names":[],"mappings":"AAEI,uBACE,OAAA","file":"progress.css"}

View File

@@ -0,0 +1 @@
.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}/*# sourceMappingURL=root.css.map */

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../objects/root.scss"],"names":[],"mappings":"AAAA,QACE,iBAAA,CACA,iBAAA,CAEA,2CAEE,kBAAA","file":"root.css"}

View File

@@ -0,0 +1 @@
.splide--rtl{direction:rtl}/*# sourceMappingURL=rtl.css.map */

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../modifiers/rtl.scss"],"names":[],"mappings":"AACE,aACE,aAAA","file":"rtl.css"}

View File

@@ -0,0 +1 @@
.splide__slide{backface-visibility:hidden;box-sizing:border-box;flex-shrink:0;list-style-type:none !important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}/*# sourceMappingURL=slide.css.map */

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../objects/slide.scss"],"names":[],"mappings":"AACE,eACE,0BAAA,CACA,qBAAA,CACA,aAAA,CACA,+BAAA,CACA,QAAA,CACA,iBAAA,CAEA,mBACE,qBAAA","file":"slide.css"}

View File

@@ -0,0 +1 @@
.splide__spinner{animation:splide-loading 1s infinite linear;border:2px solid #999;border-left-color:rgba(0,0,0,0);border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}/*# sourceMappingURL=spinner.css.map */

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../objects/spinner.scss"],"names":[],"mappings":"AAIE,iBACE,2CAAA,CACA,qBALK,CAML,+BAAA,CACA,iBAAA,CACA,QAAA,CACA,cAAA,CACA,oBAAA,CACA,WAZG,CAaH,MAAA,CACA,WAAA,CACA,iBAAA,CACA,OAAA,CACA,KAAA,CACA,UAlBG","file":"spinner.css"}

View File

@@ -0,0 +1 @@
.splide__sr{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}/*# sourceMappingURL=sr.css.map */

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../objects/sr.scss"],"names":[],"mappings":"AACE,YACE,QAAA,CACA,kBAAA,CACA,UAAA,CACA,WAAA,CACA,eAAA,CACA,SAAA,CACA,iBAAA,CACA,SAAA","file":"sr.css"}

View File

@@ -0,0 +1 @@
.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__play{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}/*# sourceMappingURL=toggle.css.map */

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../objects/toggle.scss"],"names":[],"mappings":"AAOI,uBACE,YAAA,CAIA,gDACE,YAAA,CAGF,iDACE,cAAA","file":"toggle.css"}

View File

@@ -0,0 +1 @@
.splide__track{overflow:hidden;position:relative;z-index:0}/*# sourceMappingURL=track.css.map */

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../objects/track.scss"],"names":[],"mappings":"AACE,eACE,eAAA,CACA,iBAAA,CACA,SAAA","file":"track.css"}

View File

@@ -0,0 +1 @@
.splide__track--ttb>.splide__list{display:block}/*# sourceMappingURL=ttb.css.map */

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../modifiers/ttb.scss"],"names":[],"mappings":"AAII,kCACE,aAAA","file":"ttb.css"}

View File

@@ -0,0 +1 @@
@keyframes splide-loading{0%{transform:rotateZ(0)}100%{transform:rotateZ(360deg)}}/*# sourceMappingURL=animations.css.map */

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../foundation/animations.scss"],"names":[],"mappings":"AAAA,0BACE,GACE,oBAAA,CAGF,KACE,yBAAA,CAAA","file":"animations.css"}

View File

@@ -0,0 +1 @@
@keyframes splide-loading{0%{transform:rotateZ(0)}100%{transform:rotateZ(360deg)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.splide__track--fade>.splide__list{display:block}.splide__track--fade>.splide__list>.splide__slide{left:0;opacity:0;position:absolute;top:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;position:relative;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:flex;height:100%;margin:0 !important;padding:0 !important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{align-items:center;display:flex;flex-wrap:wrap;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;flex-shrink:0;list-style-type:none !important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s infinite linear;border:2px solid #999;border-left-color:rgba(0,0,0,0);border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__play{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}/*# sourceMappingURL=index.css.map */

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../core/foundation/animations.scss","../core/object/modifiers/draggable.scss","../core/object/modifiers/fade.scss","../core/object/modifiers/rtl.scss","../core/object/modifiers/ttb.scss","../core/object/objects/container.scss","../core/object/objects/list.scss","../core/object/objects/pagination.scss","../core/object/objects/progress.scss","../core/object/objects/root.scss","../core/object/objects/slide.scss","../core/object/objects/spinner.scss","../core/object/objects/sr.scss","../core/object/objects/toggle.scss","../core/object/objects/track.scss"],"names":[],"mappings":"AAAA,0BACE,GACE,oBAAA,CAGF,KACE,yBAAA,CAAA,CCHF,0BACE,0BAAA,CACA,wBAAA,CAAA,qBAAA,CAAA,gBAAA,CCDA,mCACE,aAAA,CAEA,kDACE,MAAA,CACA,SAAA,CACA,iBAAA,CACA,KAAA,CACA,SAAA,CAEA,4DACE,SAAA,CACA,iBAAA,CACA,SAAA,CChBR,aACE,aAAA,CCEA,kCACE,aAAA,CCJJ,mBACE,qBAAA,CACA,iBAAA,CAAA,cCCA,0BAAA,CACA,YAAA,CACA,WAAA,CACA,mBAAA,CACA,oBAAA,CAIA,qDACE,aAAA,CCZJ,oBACE,kBAAA,CACA,YAAA,CACA,cAAA,CACA,sBAAA,CACA,QAAA,CACA,mBAAA,CAEA,uBACE,oBAAA,CACA,aAAA,CACA,oBAAA,CACA,QAAA,CACA,mBAAA,CCZF,uBACE,OAAA,CCHN,QACE,iBAAA,CACA,iBAAA,CAEA,2CAEE,kBAAA,CCLF,eACE,0BAAA,CACA,qBAAA,CACA,aAAA,CACA,+BAAA,CACA,QAAA,CACA,iBAAA,CAEA,mBACE,qBAAA,CCNJ,iBACE,2CAAA,CACA,qBALK,CAML,+BAAA,CACA,iBAAA,CACA,QAAA,CACA,cAAA,CACA,oBAAA,CACA,WAZG,CAaH,MAAA,CACA,WAAA,CACA,iBAAA,CACA,OAAA,CACA,KAAA,CACA,UAlBG,CCCL,YACE,QAAA,CACA,kBAAA,CACA,UAAA,CACA,WAAA,CACA,eAAA,CACA,SAAA,CACA,iBAAA,CACA,SAAA,CCFA,uBACE,YAAA,CAIA,gDACE,YAAA,CAGF,iDACE,cAAA,CChBN,eACE,eAAA,CACA,iBAAA,CACA,SAAA","file":"index.css"}

View File

@@ -0,0 +1,8 @@
$main: #000 !default;
$sub01: #333 !default;
$sub02: #999 !default;
$background: #ccc !default;
$background-active: #fff !default;
$focus: #0bf !default;

View File

@@ -0,0 +1,27 @@
@use './colors';
$outline: colors.$focus 3px solid !default;
$outline-offset: 3px !default;
$outline-offset-inset: -3px !default;
@mixin ie-only {
@media screen and (-ms-high-contrast: none) {
@content;
}
}
@mixin focus-outline( $offset: $outline-offset ) {
outline: $outline;
outline-offset: $offset;
}
@mixin focus-outline-inset {
@supports ( outline-offset: $outline-offset-inset ) {
@include focus-outline( $outline-offset-inset );
}
/* IE does not support outline-offset */
@include ie-only {
border: $outline;
}
}

View File

@@ -0,0 +1,13 @@
@use 'foundation/colors';
$spinner-size: 20px !default;
$spinner-border: 2px solid colors.$sub02 !default;
@use '../../core/object/objects' with (
$spinner-size: $spinner-size,
$spinner-border: $spinner-border,
);
@forward '../../core';
@forward 'object/objects';
@forward 'object/modifiers';

Some files were not shown because too many files have changed in this diff Show More