feat: update npm packages use terser to minify (#3614)

This commit is contained in:
dni ⚡ 2025-12-04 08:20:01 +01:00 committed by GitHub
parent af9331eede
commit 5213508dc1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
21 changed files with 6975 additions and 6185 deletions

View file

@ -23,7 +23,7 @@ repos:
- id: ruff - id: ruff
args: [ --fix, --exit-non-zero-on-fix ] args: [ --fix, --exit-non-zero-on-fix ]
- repo: https://github.com/rbubley/mirrors-prettier - repo: https://github.com/rbubley/mirrors-prettier
rev: v3.6.2 rev: v3.7.4
hooks: hooks:
- id: prettier - id: prettier
types_or: [css, javascript, html, json] types_or: [css, javascript, html, json]

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

View file

@ -473,7 +473,6 @@ function confettiStars() {
F = t.width * I.x, F = t.width * I.x,
N = t.height * I.y; N = t.height * I.y;
E--; E--;
) )
S.push( S.push(
((o = { ((o = {

View file

@ -1,6 +1,7 @@
@use 'sass:color'; @use 'sass:color';
@use 'themes';
@each $theme, $colors in $themes { @each $theme, $colors in themes.$themes {
body[data-theme='#{$theme}'] { body[data-theme='#{$theme}'] {
@each $name, $color in $colors { @each $name, $color in $colors {
@if $name== 'dark' { @if $name== 'dark' {

View file

@ -1,7 +1,7 @@
@import 'themes'; @use 'themes';
@import 'borders'; @use 'borders';
@import 'background'; @use 'background';
@import 'home'; @use 'home';
[v-cloak] { [v-cloak] {
display: none; display: none;

View file

@ -1,4 +1,6 @@
@each $theme, $colors in $themes { @use 'themes';
@each $theme, $colors in themes.$themes {
@each $name, $color in $colors { @each $name, $color in $colors {
@if $name== 'primary' { @if $name== 'primary' {
body[data-theme='#{$theme}'].neon-border { body[data-theme='#{$theme}'].neon-border {

View file

@ -1,4 +1,4 @@
/*! Axios v1.12.0 Copyright (c) 2025 Matt Zabriskie and contributors */ /*! Axios v1.13.2 Copyright (c) 2025 Matt Zabriskie and contributors */
(function (global, factory) { (function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) : typeof define === 'function' && define.amd ? define(factory) :
@ -668,6 +668,13 @@
}; };
} }
/**
* Create a bound version of a function with a specified `this` context
*
* @param {Function} fn - The function to bind
* @param {*} thisArg - The value to be passed as the `this` parameter
* @returns {Function} A new function that will call the original function with the specified `this` context
*/
function bind(fn, thisArg) { function bind(fn, thisArg) {
return function wrap() { return function wrap() {
return fn.apply(thisArg, arguments); return fn.apply(thisArg, arguments);
@ -1031,11 +1038,9 @@
result[targetKey] = merge({}, val); result[targetKey] = merge({}, val);
} else if (isArray(val)) { } else if (isArray(val)) {
result[targetKey] = val.slice(); result[targetKey] = val.slice();
} else { } else if (!skipUndefined || !isUndefined(val)) {
if (!skipUndefined || !isUndefined(val)) {
result[targetKey] = val; result[targetKey] = val;
} }
}
}; };
for (var i = 0, l = arguments.length; i < l; i++) { for (var i = 0, l = arguments.length; i < l; i++) {
arguments[i] && forEach(arguments[i], assignValue); arguments[i] && forEach(arguments[i], assignValue);
@ -1833,7 +1838,7 @@
* *
* @param {Number} id The ID that was returned by `use` * @param {Number} id The ID that was returned by `use`
* *
* @returns {Boolean} `true` if the interceptor was removed, `false` otherwise * @returns {void}
*/ */
}, { }, {
key: "eject", key: "eject",
@ -2704,20 +2709,33 @@
var cookies = platform.hasStandardBrowserEnv ? var cookies = platform.hasStandardBrowserEnv ?
// Standard browser envs support document.cookie // Standard browser envs support document.cookie
{ {
write: function write(name, value, expires, path, domain, secure) { write: function write(name, value, expires, path, domain, secure, sameSite) {
var cookie = [name + '=' + encodeURIComponent(value)]; if (typeof document === 'undefined') return;
utils$1.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString()); var cookie = ["".concat(name, "=").concat(encodeURIComponent(value))];
utils$1.isString(path) && cookie.push('path=' + path); if (utils$1.isNumber(expires)) {
utils$1.isString(domain) && cookie.push('domain=' + domain); cookie.push("expires=".concat(new Date(expires).toUTCString()));
secure === true && cookie.push('secure'); }
if (utils$1.isString(path)) {
cookie.push("path=".concat(path));
}
if (utils$1.isString(domain)) {
cookie.push("domain=".concat(domain));
}
if (secure === true) {
cookie.push('secure');
}
if (utils$1.isString(sameSite)) {
cookie.push("SameSite=".concat(sameSite));
}
document.cookie = cookie.join('; '); document.cookie = cookie.join('; ');
}, },
read: function read(name) { read: function read(name) {
var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); if (typeof document === 'undefined') return null;
return match ? decodeURIComponent(match[3]) : null; var match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)'));
return match ? decodeURIComponent(match[1]) : null;
}, },
remove: function remove(name) { remove: function remove(name) {
this.write(name, '', Date.now() - 86400000); this.write(name, '', Date.now() - 86400000, '/');
} }
} : } :
// Non-standard browser env (web workers, react-native) lack needed support. // Non-standard browser env (web workers, react-native) lack needed support.
@ -3353,11 +3371,9 @@
var DEFAULT_CHUNK_SIZE = 64 * 1024; var DEFAULT_CHUNK_SIZE = 64 * 1024;
var isFunction = utils$1.isFunction; var isFunction = utils$1.isFunction;
var globalFetchAPI = function (_ref) { var globalFetchAPI = function (_ref) {
var fetch = _ref.fetch, var Request = _ref.Request,
Request = _ref.Request,
Response = _ref.Response; Response = _ref.Response;
return { return {
fetch: fetch,
Request: Request, Request: Request,
Response: Response Response: Response
}; };
@ -3376,11 +3392,14 @@
} }
}; };
var factory = function factory(env) { var factory = function factory(env) {
var _Object$assign = Object.assign({}, globalFetchAPI, env), env = utils$1.merge.call({
fetch = _Object$assign.fetch, skipUndefined: true
Request = _Object$assign.Request, }, globalFetchAPI, env);
Response = _Object$assign.Response; var _env = env,
var isFetchSupported = isFunction(fetch); envFetch = _env.fetch,
Request = _env.Request,
Response = _env.Response;
var isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';
var isRequestSupported = isFunction(Request); var isRequestSupported = isFunction(Request);
var isResponseSupported = isFunction(Response); var isResponseSupported = isFunction(Response);
if (!isFetchSupported) { if (!isFetchSupported) {
@ -3521,31 +3540,32 @@
}(); }();
return /*#__PURE__*/function () { return /*#__PURE__*/function () {
var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(config) { var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(config) {
var _resolveConfig, url, method, data, signal, cancelToken, timeout, onDownloadProgress, onUploadProgress, responseType, headers, _resolveConfig$withCr, withCredentials, fetchOptions, composedSignal, request, unsubscribe, requestContentLength, _request, contentTypeHeader, _progressEventDecorat, _progressEventDecorat2, onProgress, flush, isCredentialsSupported, resolvedOptions, response, isStreamResponse, options, responseContentLength, _ref6, _ref7, _onProgress, _flush, responseData; var _resolveConfig, url, method, data, signal, cancelToken, timeout, onDownloadProgress, onUploadProgress, responseType, headers, _resolveConfig$withCr, withCredentials, fetchOptions, _fetch, composedSignal, request, unsubscribe, requestContentLength, _request, contentTypeHeader, _progressEventDecorat, _progressEventDecorat2, onProgress, flush, isCredentialsSupported, resolvedOptions, response, isStreamResponse, options, responseContentLength, _ref6, _ref7, _onProgress, _flush, responseData;
return _regeneratorRuntime().wrap(function _callee4$(_context4) { return _regeneratorRuntime().wrap(function _callee4$(_context4) {
while (1) switch (_context4.prev = _context4.next) { while (1) switch (_context4.prev = _context4.next) {
case 0: case 0:
_resolveConfig = resolveConfig(config), url = _resolveConfig.url, method = _resolveConfig.method, data = _resolveConfig.data, signal = _resolveConfig.signal, cancelToken = _resolveConfig.cancelToken, timeout = _resolveConfig.timeout, onDownloadProgress = _resolveConfig.onDownloadProgress, onUploadProgress = _resolveConfig.onUploadProgress, responseType = _resolveConfig.responseType, headers = _resolveConfig.headers, _resolveConfig$withCr = _resolveConfig.withCredentials, withCredentials = _resolveConfig$withCr === void 0 ? 'same-origin' : _resolveConfig$withCr, fetchOptions = _resolveConfig.fetchOptions; _resolveConfig = resolveConfig(config), url = _resolveConfig.url, method = _resolveConfig.method, data = _resolveConfig.data, signal = _resolveConfig.signal, cancelToken = _resolveConfig.cancelToken, timeout = _resolveConfig.timeout, onDownloadProgress = _resolveConfig.onDownloadProgress, onUploadProgress = _resolveConfig.onUploadProgress, responseType = _resolveConfig.responseType, headers = _resolveConfig.headers, _resolveConfig$withCr = _resolveConfig.withCredentials, withCredentials = _resolveConfig$withCr === void 0 ? 'same-origin' : _resolveConfig$withCr, fetchOptions = _resolveConfig.fetchOptions;
_fetch = envFetch || fetch;
responseType = responseType ? (responseType + '').toLowerCase() : 'text'; responseType = responseType ? (responseType + '').toLowerCase() : 'text';
composedSignal = composeSignals$1([signal, cancelToken && cancelToken.toAbortSignal()], timeout); composedSignal = composeSignals$1([signal, cancelToken && cancelToken.toAbortSignal()], timeout);
request = null; request = null;
unsubscribe = composedSignal && composedSignal.unsubscribe && function () { unsubscribe = composedSignal && composedSignal.unsubscribe && function () {
composedSignal.unsubscribe(); composedSignal.unsubscribe();
}; };
_context4.prev = 5; _context4.prev = 6;
_context4.t0 = onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head'; _context4.t0 = onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head';
if (!_context4.t0) { if (!_context4.t0) {
_context4.next = 12; _context4.next = 13;
break; break;
} }
_context4.next = 10; _context4.next = 11;
return resolveBodyLength(headers, data); return resolveBodyLength(headers, data);
case 10: case 11:
_context4.t1 = requestContentLength = _context4.sent; _context4.t1 = requestContentLength = _context4.sent;
_context4.t0 = _context4.t1 !== 0; _context4.t0 = _context4.t1 !== 0;
case 12: case 13:
if (!_context4.t0) { if (!_context4.t0) {
_context4.next = 16; _context4.next = 17;
break; break;
} }
_request = new Request(url, { _request = new Request(url, {
@ -3560,7 +3580,7 @@
_progressEventDecorat = progressEventDecorator(requestContentLength, progressEventReducer(asyncDecorator(onUploadProgress))), _progressEventDecorat2 = _slicedToArray(_progressEventDecorat, 2), onProgress = _progressEventDecorat2[0], flush = _progressEventDecorat2[1]; _progressEventDecorat = progressEventDecorator(requestContentLength, progressEventReducer(asyncDecorator(onUploadProgress))), _progressEventDecorat2 = _slicedToArray(_progressEventDecorat, 2), onProgress = _progressEventDecorat2[0], flush = _progressEventDecorat2[1];
data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush); data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);
} }
case 16: case 17:
if (!utils$1.isString(withCredentials)) { if (!utils$1.isString(withCredentials)) {
withCredentials = withCredentials ? 'include' : 'omit'; withCredentials = withCredentials ? 'include' : 'omit';
} }
@ -3577,9 +3597,9 @@
credentials: isCredentialsSupported ? withCredentials : undefined credentials: isCredentialsSupported ? withCredentials : undefined
}); });
request = isRequestSupported && new Request(url, resolvedOptions); request = isRequestSupported && new Request(url, resolvedOptions);
_context4.next = 22; _context4.next = 23;
return isRequestSupported ? fetch(request, fetchOptions) : fetch(url, resolvedOptions); return isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions);
case 22: case 23:
response = _context4.sent; response = _context4.sent;
isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response'); isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');
if (supportsResponseStream && (onDownloadProgress || isStreamResponse && unsubscribe)) { if (supportsResponseStream && (onDownloadProgress || isStreamResponse && unsubscribe)) {
@ -3595,12 +3615,12 @@
}), options); }), options);
} }
responseType = responseType || 'text'; responseType = responseType || 'text';
_context4.next = 28; _context4.next = 29;
return resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config); return resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config);
case 28: case 29:
responseData = _context4.sent; responseData = _context4.sent;
!isStreamResponse && unsubscribe && unsubscribe(); !isStreamResponse && unsubscribe && unsubscribe();
_context4.next = 32; _context4.next = 33;
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
settle(resolve, reject, { settle(resolve, reject, {
data: responseData, data: responseData,
@ -3611,26 +3631,26 @@
request: request request: request
}); });
}); });
case 32: case 33:
return _context4.abrupt("return", _context4.sent); return _context4.abrupt("return", _context4.sent);
case 35: case 36:
_context4.prev = 35; _context4.prev = 36;
_context4.t2 = _context4["catch"](5); _context4.t2 = _context4["catch"](6);
unsubscribe && unsubscribe(); unsubscribe && unsubscribe();
if (!(_context4.t2 && _context4.t2.name === 'TypeError' && /Load failed|fetch/i.test(_context4.t2.message))) { if (!(_context4.t2 && _context4.t2.name === 'TypeError' && /Load failed|fetch/i.test(_context4.t2.message))) {
_context4.next = 40; _context4.next = 41;
break; break;
} }
throw Object.assign(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request), { throw Object.assign(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request), {
cause: _context4.t2.cause || _context4.t2 cause: _context4.t2.cause || _context4.t2
}); });
case 40:
throw AxiosError.from(_context4.t2, _context4.t2 && _context4.t2.code, config, request);
case 41: case 41:
throw AxiosError.from(_context4.t2, _context4.t2 && _context4.t2.code, config, request);
case 42:
case "end": case "end":
return _context4.stop(); return _context4.stop();
} }
}, _callee4, null, [[5, 35]]); }, _callee4, null, [[6, 36]]);
})); }));
return function (_x5) { return function (_x5) {
return _ref5.apply(this, arguments); return _ref5.apply(this, arguments);
@ -3639,9 +3659,7 @@
}; };
var seedCache = new Map(); var seedCache = new Map();
var getFetch = function getFetch(config) { var getFetch = function getFetch(config) {
var env = utils$1.merge.call({ var env = config && config.env || {};
skipUndefined: true
}, globalFetchAPI, config ? config.env : null);
var fetch = env.fetch, var fetch = env.fetch,
Request = env.Request, Request = env.Request,
Response = env.Response; Response = env.Response;
@ -3661,6 +3679,15 @@
}; };
getFetch(); getFetch();
/**
* Known adapters mapping.
* Provides environment-specific adapters for Axios:
* - `http` for Node.js
* - `xhr` for browsers
* - `fetch` for fetch API-based requests
*
* @type {Object<string, Function|Object>}
*/
var knownAdapters = { var knownAdapters = {
http: httpAdapter, http: httpAdapter,
xhr: xhrAdapter, xhr: xhrAdapter,
@ -3668,6 +3695,8 @@
get: getFetch get: getFetch
} }
}; };
// Assign adapter names for easier debugging and identification
utils$1.forEach(knownAdapters, function (fn, value) { utils$1.forEach(knownAdapters, function (fn, value) {
if (fn) { if (fn) {
try { try {
@ -3682,14 +3711,38 @@
}); });
} }
}); });
/**
* Render a rejection reason string for unknown or unsupported adapters
*
* @param {string} reason
* @returns {string}
*/
var renderReason = function renderReason(reason) { var renderReason = function renderReason(reason) {
return "- ".concat(reason); return "- ".concat(reason);
}; };
/**
* Check if the adapter is resolved (function, null, or false)
*
* @param {Function|null|false} adapter
* @returns {boolean}
*/
var isResolvedHandle = function isResolvedHandle(adapter) { var isResolvedHandle = function isResolvedHandle(adapter) {
return utils$1.isFunction(adapter) || adapter === null || adapter === false; return utils$1.isFunction(adapter) || adapter === null || adapter === false;
}; };
var adapters = {
getAdapter: function getAdapter(adapters, config) { /**
* Get the first suitable adapter from the provided list.
* Tries each adapter in order until a supported one is found.
* Throws an AxiosError if no adapter is suitable.
*
* @param {Array<string|Function>|string|Function} adapters - Adapter(s) by name or function.
* @param {Object} config - Axios request configuration
* @throws {AxiosError} If no suitable adapter is available
* @returns {Function} The resolved adapter function
*/
function getAdapter(adapters, config) {
adapters = utils$1.isArray(adapters) ? adapters : [adapters]; adapters = utils$1.isArray(adapters) ? adapters : [adapters];
var _adapters = adapters, var _adapters = adapters,
length = _adapters.length; length = _adapters.length;
@ -3722,7 +3775,21 @@
throw new AxiosError("There is no suitable adapter to dispatch the request " + s, 'ERR_NOT_SUPPORT'); throw new AxiosError("There is no suitable adapter to dispatch the request " + s, 'ERR_NOT_SUPPORT');
} }
return adapter; return adapter;
}, }
/**
* Exports Axios adapters and utility to resolve an adapter
*/
var adapters = {
/**
* Resolve an adapter from a list of adapter names or functions.
* @type {Function}
*/
getAdapter: getAdapter,
/**
* Exposes all known adapters
* @type {Object<string, Function|Object>}
*/
adapters: knownAdapters adapters: knownAdapters
}; };
@ -3780,7 +3847,7 @@
}); });
} }
var VERSION = "1.12.0"; var VERSION = "1.13.2";
var validators$1 = {}; var validators$1 = {};
@ -4023,7 +4090,6 @@
} }
len = requestInterceptorChain.length; len = requestInterceptorChain.length;
var newConfig = config; var newConfig = config;
i = 0;
while (i < len) { while (i < len) {
var onFulfilled = requestInterceptorChain[i++]; var onFulfilled = requestInterceptorChain[i++];
var onRejected = requestInterceptorChain[i++]; var onRejected = requestInterceptorChain[i++];
@ -4317,7 +4383,13 @@
InsufficientStorage: 507, InsufficientStorage: 507,
LoopDetected: 508, LoopDetected: 508,
NotExtended: 510, NotExtended: 510,
NetworkAuthenticationRequired: 511 NetworkAuthenticationRequired: 511,
WebServerIsDown: 521,
ConnectionTimedOut: 522,
OriginIsUnreachable: 523,
TimeoutOccurred: 524,
SslHandshakeFailed: 525,
InvalidSslCertificate: 526
}; };
Object.entries(HttpStatusCode).forEach(function (_ref) { Object.entries(HttpStatusCode).forEach(function (_ref) {
var _ref2 = _slicedToArray(_ref, 2), var _ref2 = _slicedToArray(_ref, 2),

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

View file

@ -1,14 +1,14 @@
/*! /*!
* qrcode.vue v3.4.1 * qrcode.vue v3.6.0
* A Vue.js component to generate QRCode. * A Vue.js component to generate QRCode. Both support Vue 2 and Vue 3
* © 2017-2023 @scopewu(https://github.com/scopewu) * © 2017-PRESENT @scopewu(https://github.com/scopewu)
* MIT License. * MIT License.
*/ */
(function (global, factory) { (function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('vue')) : typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vue')) :
typeof define === 'function' && define.amd ? define(['vue'], factory) : typeof define === 'function' && define.amd ? define(['exports', 'vue'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.QrcodeVue = factory(global.Vue)); (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.QrcodeVue = {}, global.Vue));
})(this, (function (vue) { 'use strict'; })(this, (function (exports, vue) { 'use strict';
/****************************************************************************** /******************************************************************************
Copyright (c) Microsoft Corporation. Copyright (c) Microsoft Corporation.
@ -24,7 +24,7 @@
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE. PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */ ***************************************************************************** */
/* global Reflect, Promise, SuppressedError, Symbol */ /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
var __assign = function() { var __assign = function() {
@ -527,8 +527,7 @@
return []; return [];
else { else {
var numAlign = Math.floor(this.version / 7) + 2; var numAlign = Math.floor(this.version / 7) + 2;
var step = (this.version == 32) ? 26 : var step = Math.floor((this.version * 8 + numAlign * 3 + 5) / (numAlign * 4 - 4)) * 2;
Math.ceil((this.version * 4 + 4) / (numAlign * 2 - 2)) * 2;
var result = [6]; var result = [6];
for (var pos = this.size - 7; result.length < numAlign; pos -= step) for (var pos = this.size - 7; result.length < numAlign; pos -= step)
result.splice(1, 0, pos); result.splice(1, 0, pos);
@ -654,17 +653,17 @@
QrCode.ECC_CODEWORDS_PER_BLOCK = [ QrCode.ECC_CODEWORDS_PER_BLOCK = [
// Version: (note that index 0 is for padding, and is set to an illegal value) // Version: (note that index 0 is for padding, and is set to an illegal value)
//0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 Error correction level //0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 Error correction level
[-1, 7, 10, 15, 20, 26, 18, 20, 24, 30, 18, 20, 24, 26, 30, 22, 24, 28, 30, 28, 28, 28, 28, 30, 30, 26, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30], [-1, 7, 10, 15, 20, 26, 18, 20, 24, 30, 18, 20, 24, 26, 30, 22, 24, 28, 30, 28, 28, 28, 28, 30, 30, 26, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30], // Low
[-1, 10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24, 24, 28, 28, 26, 26, 26, 26, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28], [-1, 10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24, 24, 28, 28, 26, 26, 26, 26, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28], // Medium
[-1, 13, 22, 18, 26, 18, 24, 18, 22, 20, 24, 28, 26, 24, 20, 30, 24, 28, 28, 26, 30, 28, 30, 30, 30, 30, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30], [-1, 13, 22, 18, 26, 18, 24, 18, 22, 20, 24, 28, 26, 24, 20, 30, 24, 28, 28, 26, 30, 28, 30, 30, 30, 30, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30], // Quartile
[-1, 17, 28, 22, 16, 22, 28, 26, 26, 24, 28, 24, 28, 22, 24, 24, 30, 28, 28, 26, 28, 30, 24, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30], // High [-1, 17, 28, 22, 16, 22, 28, 26, 26, 24, 28, 24, 28, 22, 24, 24, 30, 28, 28, 26, 28, 30, 24, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30], // High
]; ];
QrCode.NUM_ERROR_CORRECTION_BLOCKS = [ QrCode.NUM_ERROR_CORRECTION_BLOCKS = [
// Version: (note that index 0 is for padding, and is set to an illegal value) // Version: (note that index 0 is for padding, and is set to an illegal value)
//0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 Error correction level //0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 Error correction level
[-1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 7, 8, 8, 9, 9, 10, 12, 12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 24, 25], [-1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 7, 8, 8, 9, 9, 10, 12, 12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 24, 25], // Low
[-1, 1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, 17, 17, 18, 20, 21, 23, 25, 26, 28, 29, 31, 33, 35, 37, 38, 40, 43, 45, 47, 49], [-1, 1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, 17, 17, 18, 20, 21, 23, 25, 26, 28, 29, 31, 33, 35, 37, 38, 40, 43, 45, 47, 49], // Medium
[-1, 1, 1, 2, 2, 4, 4, 6, 6, 8, 8, 8, 10, 12, 16, 12, 17, 16, 18, 21, 20, 23, 23, 25, 27, 29, 34, 34, 35, 38, 40, 43, 45, 48, 51, 53, 56, 59, 62, 65, 68], [-1, 1, 1, 2, 2, 4, 4, 6, 6, 8, 8, 8, 10, 12, 16, 12, 17, 16, 18, 21, 20, 23, 23, 25, 27, 29, 34, 34, 35, 38, 40, 43, 45, 48, 51, 53, 56, 59, 62, 65, 68], // Quartile
[-1, 1, 1, 2, 4, 4, 4, 5, 6, 8, 8, 11, 11, 16, 16, 18, 16, 19, 21, 25, 25, 25, 34, 30, 32, 35, 37, 40, 42, 45, 48, 51, 54, 57, 60, 63, 66, 70, 74, 77, 81], // High [-1, 1, 1, 2, 4, 4, 4, 5, 6, 8, 8, 11, 11, 16, 16, 18, 16, 19, 21, 25, 25, 25, 34, 30, 32, 35, 37, 40, 42, 45, 48, 51, 54, 57, 60, 63, 66, 70, 74, 77, 81], // High
]; ];
return QrCode; return QrCode;
@ -910,7 +909,7 @@
})(qrcodegen || (qrcodegen = {})); })(qrcodegen || (qrcodegen = {}));
var QR = qrcodegen; var QR = qrcodegen;
var defaultErrorCorrectLevel = 'H'; var defaultErrorCorrectLevel = 'L';
var ErrorCorrectLevelMap = { var ErrorCorrectLevelMap = {
L: QR.QrCode.Ecc.LOW, L: QR.QrCode.Ecc.LOW,
M: QR.QrCode.Ecc.MEDIUM, M: QR.QrCode.Ecc.MEDIUM,
@ -967,6 +966,38 @@
}); });
return ops.join(''); return ops.join('');
} }
function getImageSettings(cells, size, margin, imageSettings) {
var width = imageSettings.width, height = imageSettings.height, imageX = imageSettings.x, imageY = imageSettings.y;
var numCells = cells.length + margin * 2;
var defaultSize = Math.floor(size * 0.1);
var scale = numCells / size;
var w = (width || defaultSize) * scale;
var h = (height || defaultSize) * scale;
var x = imageX == null ? cells.length / 2 - w / 2 : imageX * scale;
var y = imageY == null ? cells.length / 2 - h / 2 : imageY * scale;
var excavation = null;
if (imageSettings.excavate) {
var floorX = Math.floor(x);
var floorY = Math.floor(y);
var ceilW = Math.ceil(w + x - floorX);
var ceilH = Math.ceil(h + y - floorY);
excavation = { x: floorX, y: floorY, w: ceilW, h: ceilH };
}
return { x: x, y: y, h: h, w: w, excavation: excavation };
}
function excavateModules(modules, excavation) {
return modules.slice().map(function (row, y) {
if (y < excavation.y || y >= excavation.y + excavation.h) {
return row;
}
return row.map(function (cell, x) {
if (x < excavation.x || x >= excavation.x + excavation.w) {
return cell;
}
return false;
});
});
}
var QRCodeProps = { var QRCodeProps = {
value: { value: {
type: String, type: String,
@ -995,6 +1026,32 @@
required: false, required: false,
default: 0, default: 0,
}, },
imageSettings: {
type: Object,
required: false,
default: function () { return ({}); },
},
gradient: {
type: Boolean,
required: false,
default: false,
},
gradientType: {
type: String,
required: false,
default: 'linear',
validator: function (t) { return ['linear', 'radial'].indexOf(t) > -1; },
},
gradientStartColor: {
type: String,
required: false,
default: '#000',
},
gradientEndColor: {
type: String,
required: false,
default: '#fff',
},
}; };
var QRCodeVueProps = __assign(__assign({}, QRCodeProps), { renderAs: { var QRCodeVueProps = __assign(__assign({}, QRCodeProps), { renderAs: {
type: String, type: String,
@ -1002,16 +1059,31 @@
default: 'canvas', default: 'canvas',
validator: function (as) { return ['canvas', 'svg'].indexOf(as) > -1; }, validator: function (as) { return ['canvas', 'svg'].indexOf(as) > -1; },
} }); } });
var QRCodeSvg = vue.defineComponent({ var QrcodeSvg = vue.defineComponent({
name: 'QRCodeSvg', name: 'QRCodeSvg',
props: QRCodeProps, props: QRCodeProps,
setup: function (props) { setup: function (props) {
var numCells = vue.ref(0); var numCells = vue.ref(0);
var fgPath = vue.ref(''); var fgPath = vue.ref('');
var imageProps;
var generate = function () { var generate = function () {
var value = props.value, level = props.level, margin = props.margin; var value = props.value, _level = props.level, _margin = props.margin;
var margin = _margin >>> 0;
var level = validErrorCorrectLevel(_level) ? _level : defaultErrorCorrectLevel;
var cells = QR.QrCode.encodeText(value, ErrorCorrectLevelMap[level]).getModules(); var cells = QR.QrCode.encodeText(value, ErrorCorrectLevelMap[level]).getModules();
numCells.value = cells.length + margin * 2; numCells.value = cells.length + margin * 2;
if (props.imageSettings.src) {
var imageSettings = getImageSettings(cells, props.size, margin, props.imageSettings);
imageProps = {
x: imageSettings.x + margin,
y: imageSettings.y + margin,
width: imageSettings.w,
height: imageSettings.h,
};
if (imageSettings.excavation) {
cells = excavateModules(cells, imageSettings.excavation);
}
}
// Drawing strategy: instead of a rect per module, we're going to create a // Drawing strategy: instead of a rect per module, we're going to create a
// single path for the dark modules and layer that on top of a light rect, // single path for the dark modules and layer that on top of a light rect,
// for a total of 2 DOM nodes. We pay a bit more in string concat but that's // for a total of 2 DOM nodes. We pay a bit more in string concat but that's
@ -1020,6 +1092,34 @@
// For level 40, 31329 -> 2 // For level 40, 31329 -> 2
fgPath.value = generatePath(cells, margin); fgPath.value = generatePath(cells, margin);
}; };
var renderGradient = function () {
if (!props.gradient)
return null;
var gradientProps = props.gradientType === 'linear'
? {
x1: '0%',
y1: '0%',
x2: '100%',
y2: '100%',
}
: {
cx: '50%',
cy: '50%',
r: '50%',
fx: '50%',
fy: '50%',
};
return vue.h(props.gradientType === 'linear' ? 'linearGradient' : 'radialGradient', __assign({ id: 'qr-gradient' }, gradientProps), [
vue.h('stop', {
offset: '0%',
style: { stopColor: props.gradientStartColor },
}),
vue.h('stop', {
offset: '100%',
style: { stopColor: props.gradientEndColor },
}),
]);
};
generate(); generate();
vue.onUpdated(generate); vue.onUpdated(generate);
return function () { return vue.h('svg', { return function () { return vue.h('svg', {
@ -1029,21 +1129,30 @@
xmlns: 'http://www.w3.org/2000/svg', xmlns: 'http://www.w3.org/2000/svg',
viewBox: "0 0 ".concat(numCells.value, " ").concat(numCells.value), viewBox: "0 0 ".concat(numCells.value, " ").concat(numCells.value),
}, [ }, [
vue.h('path', { vue.h('defs', {}, [renderGradient()]),
vue.h('rect', {
width: '100%',
height: '100%',
fill: props.background, fill: props.background,
d: "M0,0 h".concat(numCells.value, "v").concat(numCells.value, "H0z"),
}), }),
vue.h('path', { fill: props.foreground, d: fgPath.value }), vue.h('path', {
fill: props.gradient ? 'url(#qr-gradient)' : props.foreground,
d: fgPath.value,
}),
props.imageSettings.src && vue.h('image', __assign({ href: props.imageSettings.src }, imageProps)),
]); }; ]); };
}, },
}); });
var QRCodeCanvas = vue.defineComponent({ var QrcodeCanvas = vue.defineComponent({
name: 'QRCodeCanvas', name: 'QRCodeCanvas',
props: QRCodeProps, props: QRCodeProps,
setup: function (props) { setup: function (props, ctx) {
var canvasEl = vue.ref(null); var canvasEl = vue.ref(null);
var imageRef = vue.ref(null);
var generate = function () { var generate = function () {
var value = props.value, level = props.level, size = props.size, margin = props.margin, background = props.background, foreground = props.foreground; var value = props.value, _level = props.level, size = props.size, _margin = props.margin, background = props.background, foreground = props.foreground, gradient = props.gradient, gradientType = props.gradientType, gradientStartColor = props.gradientStartColor, gradientEndColor = props.gradientEndColor;
var margin = _margin >>> 0;
var level = validErrorCorrectLevel(_level) ? _level : defaultErrorCorrectLevel;
var canvas = canvasEl.value; var canvas = canvasEl.value;
if (!canvas) { if (!canvas) {
return; return;
@ -1054,13 +1163,42 @@
} }
var cells = QR.QrCode.encodeText(value, ErrorCorrectLevelMap[level]).getModules(); var cells = QR.QrCode.encodeText(value, ErrorCorrectLevelMap[level]).getModules();
var numCells = cells.length + margin * 2; var numCells = cells.length + margin * 2;
var image = imageRef.value;
var imageProps = { x: 0, y: 0, width: 0, height: 0 };
var showImage = props.imageSettings.src && image != null && image.naturalWidth !== 0 && image.naturalHeight !== 0;
if (showImage) {
var imageSettings = getImageSettings(cells, props.size, margin, props.imageSettings);
imageProps = {
x: imageSettings.x + margin,
y: imageSettings.y + margin,
width: imageSettings.w,
height: imageSettings.h,
};
if (imageSettings.excavation) {
cells = excavateModules(cells, imageSettings.excavation);
}
}
var devicePixelRatio = window.devicePixelRatio || 1; var devicePixelRatio = window.devicePixelRatio || 1;
var scale = (size / numCells) * devicePixelRatio; var scale = (size / numCells) * devicePixelRatio;
canvas.height = canvas.width = size * devicePixelRatio; canvas.height = canvas.width = size * devicePixelRatio;
ctx.scale(scale, scale); ctx.scale(scale, scale);
ctx.fillStyle = background; ctx.fillStyle = background;
ctx.fillRect(0, 0, numCells, numCells); ctx.fillRect(0, 0, numCells, numCells);
if (gradient) {
var grad = void 0;
if (gradientType === 'linear') {
grad = ctx.createLinearGradient(0, 0, numCells, numCells);
}
else {
grad = ctx.createRadialGradient(numCells / 2, numCells / 2, 0, numCells / 2, numCells / 2, numCells / 2);
}
grad.addColorStop(0, gradientStartColor);
grad.addColorStop(1, gradientEndColor);
ctx.fillStyle = grad;
}
else {
ctx.fillStyle = foreground; ctx.fillStyle = foreground;
}
if (SUPPORTS_PATH2D) { if (SUPPORTS_PATH2D) {
ctx.fill(new Path2D(generatePath(cells, margin))); ctx.fill(new Path2D(generatePath(cells, margin)));
} }
@ -1073,27 +1211,49 @@
}); });
}); });
} }
if (showImage) {
ctx.drawImage(image, imageProps.x, imageProps.y, imageProps.width, imageProps.height);
}
}; };
vue.onMounted(generate); vue.onMounted(generate);
vue.onUpdated(generate); vue.onUpdated(generate);
return function () { return vue.h('canvas', { var style = ctx.attrs.style;
ref: canvasEl, return function () { return vue.h(vue.Fragment, [
style: { width: "".concat(props.size, "px"), height: "".concat(props.size, "px") }, vue.h('canvas', __assign(__assign({}, ctx.attrs), { ref: canvasEl, style: __assign(__assign({}, style), { width: "".concat(props.size, "px"), height: "".concat(props.size, "px") }) })),
}); }; props.imageSettings.src && vue.h('img', {
ref: imageRef,
src: props.imageSettings.src,
style: { display: 'none' },
onLoad: generate,
})
]); };
}, },
}); });
var QrcodeVue = vue.defineComponent({ var QrcodeVue = vue.defineComponent({
name: 'Qrcode', name: 'Qrcode',
render: function () { render: function () {
var _a = this.$props, renderAs = _a.renderAs, value = _a.value, _size = _a.size, _margin = _a.margin, _level = _a.level, background = _a.background, foreground = _a.foreground; var _a = this.$props, renderAs = _a.renderAs, value = _a.value, size = _a.size, margin = _a.margin, level = _a.level, background = _a.background, foreground = _a.foreground, imageSettings = _a.imageSettings, gradient = _a.gradient, gradientType = _a.gradientType, gradientStartColor = _a.gradientStartColor, gradientEndColor = _a.gradientEndColor;
var size = _size >>> 0; return vue.h(renderAs === 'svg' ? QrcodeSvg : QrcodeCanvas, {
var margin = _margin >>> 0; value: value,
var level = validErrorCorrectLevel(_level) ? _level : defaultErrorCorrectLevel; size: size,
return vue.h(renderAs === 'svg' ? QRCodeSvg : QRCodeCanvas, { value: value, size: size, margin: margin, level: level, background: background, foreground: foreground }); margin: margin,
level: level,
background: background,
foreground: foreground,
imageSettings: imageSettings,
gradient: gradient,
gradientType: gradientType,
gradientStartColor: gradientStartColor,
gradientEndColor: gradientEndColor,
});
}, },
props: QRCodeVueProps, props: QRCodeVueProps,
}); });
return QrcodeVue; exports.QrcodeCanvas = QrcodeCanvas;
exports.QrcodeSvg = QrcodeSvg;
exports.default = QrcodeVue;
Object.defineProperty(exports, '__esModule', { value: true });
})); }));

View file

@ -1119,16 +1119,19 @@ body.desktop .q-checkbox--dense:not(.disabled):focus .q-checkbox__inner:before,
.q-chip--colored .q-chip__icon, .q-chip--dark .q-chip__icon { .q-chip--colored .q-chip__icon, .q-chip--dark .q-chip__icon {
color: inherit; color: inherit;
} }
.q-chip--outline {
background: transparent !important;
border: 1px solid currentColor;
}
.q-chip .q-avatar { .q-chip .q-avatar {
font-size: 2em; font-size: 2em;
margin-left: -0.45em; margin-left: -0.45em;
margin-right: 0.2em; margin-right: 0.2em;
border-radius: 16px; border-radius: 16px;
} }
.q-chip--outline {
background: transparent !important;
border: 1px solid currentColor;
}
.q-chip--outline .q-avatar {
margin-left: calc(-0.45em - 1px);
}
.q-chip--selected .q-avatar { .q-chip--selected .q-avatar {
display: none; display: none;
} }
@ -1239,10 +1242,6 @@ body.desktop.body--dark .q-chip--clickable:focus {
min-width: 180px; min-width: 180px;
border-radius: 4px; border-radius: 4px;
box-shadow: 0 1px 5px rgba(0, 0, 0, 0.2), 0 2px 2px rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12); box-shadow: 0 1px 5px rgba(0, 0, 0, 0.2), 0 2px 2px rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12);
/* Saturation Tab */
/* Tune Tab */
/* Palette Tab */
/* Generic */
} }
.q-color-picker .q-tab { .q-color-picker .q-tab {
padding: 0 !important; padding: 0 !important;
@ -1310,6 +1309,9 @@ body.desktop.body--dark .q-chip--clickable:focus {
.q-color-picker__footer .q-tab--inactive { .q-color-picker__footer .q-tab--inactive {
background: linear-gradient(to bottom, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.15) 25%, rgba(0, 0, 0, 0.1)); background: linear-gradient(to bottom, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.15) 25%, rgba(0, 0, 0, 0.1));
} }
.q-color-picker {
/* Saturation Tab */
}
.q-color-picker__spectrum { .q-color-picker__spectrum {
width: 100%; width: 100%;
height: 100%; height: 100%;
@ -1360,6 +1362,9 @@ body.desktop.body--dark .q-chip--clickable:focus {
.q-color-picker__sliders .q-slider--active path { .q-color-picker__sliders .q-slider--active path {
stroke-width: 3px; stroke-width: 3px;
} }
.q-color-picker {
/* Tune Tab */
}
.q-color-picker__tune-tab .q-slider { .q-color-picker__tune-tab .q-slider {
margin-left: 18px; margin-left: 18px;
margin-right: 18px; margin-right: 18px;
@ -1370,6 +1375,9 @@ body.desktop.body--dark .q-chip--clickable:focus {
border-radius: 4px; border-radius: 4px;
width: 3.5em; width: 3.5em;
} }
.q-color-picker {
/* Palette Tab */
}
.q-color-picker__palette-tab { .q-color-picker__palette-tab {
padding: 0 !important; padding: 0 !important;
} }
@ -1380,6 +1388,9 @@ body.desktop.body--dark .q-chip--clickable:focus {
padding-bottom: 10%; padding-bottom: 10%;
width: 10% !important; width: 10% !important;
} }
.q-color-picker {
/* Generic */
}
.q-color-picker input { .q-color-picker input {
color: inherit; color: inherit;
background: transparent; background: transparent;
@ -2208,12 +2219,6 @@ body.q-ios-padding .q-dialog__inner > div {
-webkit-animation-name: q-autofill; -webkit-animation-name: q-autofill;
-webkit-animation-fill-mode: both; -webkit-animation-fill-mode: both;
} }
.q-field__native:-webkit-autofill + .q-field__label, .q-field__input:-webkit-autofill + .q-field__label {
transform: translateY(-40%) scale(0.75);
}
.q-field__native[type=color] + .q-field__label, .q-field__native[type=date] + .q-field__label, .q-field__native[type=datetime-local] + .q-field__label, .q-field__native[type=month] + .q-field__label, .q-field__native[type=time] + .q-field__label, .q-field__native[type=week] + .q-field__label, .q-field__input[type=color] + .q-field__label, .q-field__input[type=date] + .q-field__label, .q-field__input[type=datetime-local] + .q-field__label, .q-field__input[type=month] + .q-field__label, .q-field__input[type=time] + .q-field__label, .q-field__input[type=week] + .q-field__label {
transform: translateY(-40%) scale(0.75);
}
.q-field__native:invalid, .q-field__input:invalid { .q-field__native:invalid, .q-field__input:invalid {
box-shadow: none; box-shadow: none;
} }
@ -2273,6 +2278,15 @@ body.q-ios-padding .q-dialog__inner > div {
transition: transform 0.36s cubic-bezier(0.4, 0, 0.2, 1), max-width 0.324s cubic-bezier(0.4, 0, 0.2, 1); transition: transform 0.36s cubic-bezier(0.4, 0, 0.2, 1), max-width 0.324s cubic-bezier(0.4, 0, 0.2, 1);
backface-visibility: hidden; backface-visibility: hidden;
} }
.q-field__label:has(+ :is(.q-field__native, .q-field__input):is(:-webkit-autofill,
[type=color],
[type=date],
[type=datetime-local],
[type=month],
[type=time],
[type=week])) {
transform: translateY(-40%) scale(0.75);
}
.q-field--float .q-field__label { .q-field--float .q-field__label {
max-width: 133%; max-width: 133%;
transform: translateY(-40%) scale(0.75); transform: translateY(-40%) scale(0.75);
@ -2491,10 +2505,13 @@ body.q-ios-padding .q-dialog__inner > div {
.q-field--dense.q-field--float .q-field__label { .q-field--dense.q-field--float .q-field__label {
transform: translateY(-30%) scale(0.75); transform: translateY(-30%) scale(0.75);
} }
.q-field--dense .q-field__native:-webkit-autofill + .q-field__label, .q-field--dense .q-field__input:-webkit-autofill + .q-field__label { .q-field--dense .q-field__label:has(+ :is(.q-field__native, .q-field__input):is(:-webkit-autofill,
transform: translateY(-30%) scale(0.75); [type=color],
} [type=date],
.q-field--dense .q-field__native[type=color] + .q-field__label, .q-field--dense .q-field__native[type=date] + .q-field__label, .q-field--dense .q-field__native[type=datetime-local] + .q-field__label, .q-field--dense .q-field__native[type=month] + .q-field__label, .q-field--dense .q-field__native[type=time] + .q-field__label, .q-field--dense .q-field__native[type=week] + .q-field__label, .q-field--dense .q-field__input[type=color] + .q-field__label, .q-field--dense .q-field__input[type=date] + .q-field__label, .q-field--dense .q-field__input[type=datetime-local] + .q-field__label, .q-field--dense .q-field__input[type=month] + .q-field__label, .q-field--dense .q-field__input[type=time] + .q-field__label, .q-field--dense .q-field__input[type=week] + .q-field__label { [type=datetime-local],
[type=month],
[type=time],
[type=week])) {
transform: translateY(-30%) scale(0.75); transform: translateY(-30%) scale(0.75);
} }
.q-field--borderless .q-field__bottom, .q-field--borderless.q-field--dense .q-field__control, .q-field--standard .q-field__bottom, .q-field--standard.q-field--dense .q-field__control { .q-field--borderless .q-field__bottom, .q-field--borderless.q-field--dense .q-field__control, .q-field--standard .q-field__bottom, .q-field--standard.q-field--dense .q-field__control {
@ -3384,7 +3401,7 @@ body.desktop .q-radio--dense:not(.disabled):focus .q-radio__inner:before, body.d
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); text-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
position: relative; position: relative;
opacity: 0.4; opacity: 0.4;
transition: transform 0.2s ease-in, opacity 0.2s ease-in; transition: transform 0.2s ease-in, opacity 0.2s ease-in, color 0.2s ease-in;
} }
.q-rating__icon--hovered { .q-rating__icon--hovered {
transform: scale(1.3); transform: scale(1.3);
@ -4704,7 +4721,7 @@ body.desktop .q-slider.q-slider--enabled .q-slider__track-container:hover .q-sli
/* * On light background /* * On light background
* */ * */
.q-table__bottom { .q-table__bottom:not(.q-table__bottom--nodata) {
border-top: 1px solid rgba(0, 0, 0, 0.12); border-top: 1px solid rgba(0, 0, 0, 0.12);
} }
@ -11315,7 +11332,6 @@ p {
} }
.text-justify { .text-justify {
text-align: justify; text-align: justify;
-webkit-hyphens: auto;
hyphens: auto; hyphens: auto;
} }
.text-italic { .text-italic {

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 one or more lines are too long

1269
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -7,31 +7,32 @@
"vendor_bundle_css": "node -e \"require('concat')(require('./package.json').bundle.css.map(a => 'lnbits/static/'+a), './lnbits/static/bundle.css')\"", "vendor_bundle_css": "node -e \"require('concat')(require('./package.json').bundle.css.map(a => 'lnbits/static/'+a), './lnbits/static/bundle.css')\"",
"vendor_bundle_js": "node -e \"require('concat')(require('./package.json').bundle.js.map(a => 'lnbits/static/'+a),'./lnbits/static/bundle.js')\"", "vendor_bundle_js": "node -e \"require('concat')(require('./package.json').bundle.js.map(a => 'lnbits/static/'+a),'./lnbits/static/bundle.js')\"",
"vendor_bundle_components": "node -e \"require('concat')(require('./package.json').bundle.components.map(a => 'lnbits/static/'+a), './lnbits/static/bundle-components.js')\"", "vendor_bundle_components": "node -e \"require('concat')(require('./package.json').bundle.components.map(a => 'lnbits/static/'+a), './lnbits/static/bundle-components.js')\"",
"vendor_minify_css": "./node_modules/.bin/minify ./lnbits/static/bundle.css > ./lnbits/static/bundle.min.css", "vendor_minify_css": "./node_modules/.bin/cleancss -o ./lnbits/static/bundle.min.css ./lnbits/static/bundle.css",
"vendor_minify_js": "./node_modules/.bin/minify ./lnbits/static/bundle.js > ./lnbits/static/bundle.min.js", "vendor_minify_js": "./node_modules/.bin/terser ./lnbits/static/bundle.js -o ./lnbits/static/bundle.min.js --compress --mangle",
"vendor_minify_components": "./node_modules/.bin/minify ./lnbits/static/bundle-components.js > ./lnbits/static/bundle-components.min.js", "vendor_minify_components": "./node_modules/.bin/terser ./lnbits/static/bundle-components.js -o ./lnbits/static/bundle-components.min.js --compress --mangle",
"bundle": "npm run sass && npm run vendor_copy && npm run vendor_json && npm run vendor_bundle_css && npm run vendor_bundle_js && npm run vendor_bundle_components && npm run vendor_minify_css && npm run vendor_minify_js && npm run vendor_minify_components" "bundle": "npm run sass && npm run vendor_copy && npm run vendor_json && npm run vendor_bundle_css && npm run vendor_bundle_js && npm run vendor_bundle_components && npm run vendor_minify_css && npm run vendor_minify_js && npm run vendor_minify_components"
}, },
"devDependencies": { "devDependencies": {
"clean-css-cli": "^5.6.3",
"concat": "^1.0.3", "concat": "^1.0.3",
"minify": "^9.2.0", "prettier": "^3.7.4",
"prettier": "^3.6.2",
"pyright": "1.1.289", "pyright": "1.1.289",
"sass": "^1.78.0" "sass": "^1.94.2",
"terser": "^5.44.1"
}, },
"dependencies": { "dependencies": {
"axios": "^1.12.0", "axios": "^1.13.2",
"chart.js": "^4.4.4", "chart.js": "^4.5.1",
"moment": "^2.30.1", "moment": "^2.30.1",
"nostr-tools": "^2.7.2", "nostr-tools": "^2.18.2",
"qrcode.vue": "^3.4.1", "qrcode.vue": "^3.6.0",
"quasar": "2.17.0", "quasar": "2.18.6",
"showdown": "^2.1.0", "showdown": "^2.1.0",
"underscore": "^1.13.7", "underscore": "^1.13.7",
"vue": "3.5.8", "vue": "3.5.25",
"vue-i18n": "^10.0.8", "vue-i18n": "^11.2.2",
"vue-qrcode-reader": "^5.5.10", "vue-qrcode-reader": "^5.7.3",
"vue-router": "4.4.5", "vue-router": "4.6.3",
"vuex": "4.1.0" "vuex": "4.1.0"
}, },
"vendor": [ "vendor": [