@optionfactory/fml 9.0.0-rc28 → 9.0.0-rc29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client-errors.iife.js +21 -16
- package/dist/client-errors.iife.js.map +1 -1
- package/dist/client-errors.iife.min.js +1 -1
- package/dist/client-errors.iife.min.js.map +1 -1
- package/dist/custom-elements.json +16 -16
- package/dist/fml.css +13 -13
- package/dist/fml.css.map +1 -1
- package/dist/fml.iife.js +871 -883
- package/dist/fml.iife.js.map +1 -1
- package/dist/fml.iife.min.js +1 -1
- package/dist/fml.iife.min.js.map +1 -1
- package/dist/ftl.d.mts +3 -3
- package/dist/ftl.iife.js +275 -679
- package/dist/ftl.iife.js.map +1 -1
- package/dist/ftl.iife.min.js +1 -1
- package/dist/ftl.iife.min.js.map +1 -1
- package/dist/ftl.min.mjs +1 -1
- package/dist/ftl.min.mjs.map +1 -1
- package/dist/ftl.mjs +275 -679
- package/dist/ftl.mjs.map +1 -1
- package/dist/ful.css +13 -13
- package/dist/ful.css.map +1 -1
- package/dist/ful.d.mts +195 -71
- package/dist/ful.iife.js +564 -189
- package/dist/ful.iife.js.map +1 -1
- package/dist/ful.iife.min.js +1 -1
- package/dist/ful.iife.min.js.map +1 -1
- package/dist/ful.min.mjs +1 -1
- package/dist/ful.min.mjs.map +1 -1
- package/dist/ful.mjs +564 -189
- package/dist/ful.mjs.map +1 -1
- package/dist/httpc.d.mts +9 -7
- package/dist/httpc.iife.js +32 -15
- package/dist/httpc.iife.js.map +1 -1
- package/dist/httpc.iife.min.js +1 -1
- package/dist/httpc.iife.min.js.map +1 -1
- package/dist/httpc.min.mjs +1 -1
- package/dist/httpc.min.mjs.map +1 -1
- package/dist/httpc.mjs +32 -15
- package/dist/httpc.mjs.map +1 -1
- package/dist/vscode.html-custom-data.json +13 -13
- package/dist/web-types.json +17 -17
- package/package.json +2 -2
|
@@ -5,10 +5,11 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* Posts a json report of an `error` or `unhandledrejection` event (page url,
|
|
7
7
|
* location, message with its cause chain, stack) to the uri the script tag's
|
|
8
|
-
* `data-report-client-errors-uri` names, same-origin and `keepalive
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
8
|
+
* `data-report-client-errors-uri` names, same-origin, and `keepalive` unless
|
|
9
|
+
* the body is over the 64KiB keepalive quota. The csrf header is sent only
|
|
10
|
+
* when both `_csrf_header` and `_csrf` metas are present. A missing or empty
|
|
11
|
+
* uri is complained about once. The reporter never reports itself: a failed
|
|
12
|
+
* or throwing report is dropped.
|
|
12
13
|
* @param {any} evt an ErrorEvent or a PromiseRejectionEvent
|
|
13
14
|
*/
|
|
14
15
|
function ful_report_error(evt) {
|
|
@@ -27,14 +28,15 @@
|
|
|
27
28
|
function configured_report_uri() {
|
|
28
29
|
/** @type {HTMLScriptElement | null} */
|
|
29
30
|
var scriptEl = document.querySelector('script[data-report-client-errors-uri]');
|
|
30
|
-
|
|
31
|
+
var uri = scriptEl?.getAttribute('data-report-client-errors-uri');
|
|
32
|
+
if (!uri) {
|
|
31
33
|
if (!complained_missing_uri) {
|
|
32
34
|
complained_missing_uri = true;
|
|
33
|
-
console?.error?.('missing attribute data-report-client-errors-uri');
|
|
35
|
+
console?.error?.('missing or empty attribute data-report-client-errors-uri');
|
|
34
36
|
}
|
|
35
37
|
return null;
|
|
36
38
|
}
|
|
37
|
-
return
|
|
39
|
+
return uri;
|
|
38
40
|
}
|
|
39
41
|
|
|
40
42
|
/** @returns {string[]|undefined} */
|
|
@@ -90,24 +92,27 @@
|
|
|
90
92
|
headers[csrfHeader] = csrfToken;
|
|
91
93
|
}
|
|
92
94
|
|
|
95
|
+
var body;
|
|
93
96
|
try {
|
|
97
|
+
body = JSON.stringify({
|
|
98
|
+
page: window.location?.href ? window.location.href : 'unknown',
|
|
99
|
+
filename: evt.filename,
|
|
100
|
+
line: evt.lineno,
|
|
101
|
+
col: evt.colno,
|
|
102
|
+
message: message(),
|
|
103
|
+
stack: split_stack(),
|
|
104
|
+
});
|
|
94
105
|
fetch(uri, {
|
|
95
106
|
method: 'POST',
|
|
96
107
|
mode: 'same-origin',
|
|
97
108
|
cache: 'no-cache',
|
|
98
109
|
credentials: 'same-origin',
|
|
99
|
-
keepalive
|
|
110
|
+
// fetch rejects a keepalive body over the 64KiB quota outright
|
|
111
|
+
keepalive: new TextEncoder().encode(body).length <= 64 * 1024,
|
|
100
112
|
headers: headers,
|
|
101
113
|
redirect: 'error',
|
|
102
114
|
referrerPolicy: 'no-referrer-when-downgrade',
|
|
103
|
-
body:
|
|
104
|
-
page: window.location?.href ? window.location.href : 'unknown',
|
|
105
|
-
filename: evt.filename,
|
|
106
|
-
line: evt.lineno,
|
|
107
|
-
col: evt.colno,
|
|
108
|
-
message: message(),
|
|
109
|
-
stack: split_stack(),
|
|
110
|
-
}),
|
|
115
|
+
body: body,
|
|
111
116
|
}).catch(() => {});
|
|
112
117
|
} catch {}
|
|
113
118
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-errors.iife.js","sources":["../src/client-errors/client-errors.mjs"],"sourcesContent":["var complained_missing_uri = false;\n/**\n * Posts a json report of an `error` or `unhandledrejection` event (page url,\n * location, message with its cause chain, stack) to the uri the script tag's\n * `data-report-client-errors-uri` names, same-origin and `keepalive
|
|
1
|
+
{"version":3,"file":"client-errors.iife.js","sources":["../src/client-errors/client-errors.mjs"],"sourcesContent":["var complained_missing_uri = false;\n/**\n * Posts a json report of an `error` or `unhandledrejection` event (page url,\n * location, message with its cause chain, stack) to the uri the script tag's\n * `data-report-client-errors-uri` names, same-origin, and `keepalive` unless\n * the body is over the 64KiB keepalive quota. The csrf header is sent only\n * when both `_csrf_header` and `_csrf` metas are present. A missing or empty\n * uri is complained about once. The reporter never reports itself: a failed\n * or throwing report is dropped.\n * @param {any} evt an ErrorEvent or a PromiseRejectionEvent\n */\nfunction ful_report_error(evt) {\n /**\n * @param {string} name\n * @returns {string|undefined}\n */\n function meta_content(name) {\n var cleanName = name.replace(/[\"\\\\]/g, '\\\\$&');\n /** @type {HTMLMetaElement | null} */\n var metaEl = document.querySelector(`meta[name=\"${cleanName}\"]`);\n return metaEl ? metaEl.content : undefined;\n }\n\n /** @returns {string|null} */\n function configured_report_uri() {\n /** @type {HTMLScriptElement | null} */\n var scriptEl = document.querySelector('script[data-report-client-errors-uri]');\n var uri = scriptEl?.getAttribute('data-report-client-errors-uri');\n if (!uri) {\n if (!complained_missing_uri) {\n complained_missing_uri = true;\n console?.error?.('missing or empty attribute data-report-client-errors-uri');\n }\n return null;\n }\n return uri;\n }\n\n /** @returns {string[]|undefined} */\n function split_stack() {\n if (evt.error?.stack?.split) {\n return evt.error.stack.split('\\n');\n }\n if (evt.reason?.stack?.split) {\n return evt.reason.stack.split('\\n');\n }\n return undefined;\n }\n\n /**\n * The message followed by up to five `Caused by:` lines, stopping at a cause\n * with no message or one already seen.\n * @returns {string|undefined}\n */\n function message() {\n const thrown = evt.reason ?? evt.error;\n const head = evt.message ?? thrown?.message;\n if (!head) {\n return undefined;\n }\n const parts = [head];\n const seen = [];\n for (let e = thrown?.cause; e && parts.length < 6 && seen.indexOf(e) === -1; e = e.cause) {\n seen.push(e);\n if (!e.message) {\n break;\n }\n parts.push(`Caused by: ${e.message}`);\n }\n if (thrown?.truncated) {\n parts.push('Caused by: … outer frames omitted');\n }\n return parts.join('\\n');\n }\n\n var uri = configured_report_uri();\n if (!uri) {\n return;\n }\n\n /** @type {Record<string, any>} */\n var headers = {\n 'Content-Type': 'application/json',\n };\n\n var csrfHeader = meta_content('_csrf_header');\n var csrfToken = meta_content('_csrf');\n if (csrfHeader && csrfToken) {\n headers[csrfHeader] = csrfToken;\n }\n\n var body;\n try {\n body = JSON.stringify({\n page: window.location?.href ? window.location.href : 'unknown',\n filename: evt.filename,\n line: evt.lineno,\n col: evt.colno,\n message: message(),\n stack: split_stack(),\n });\n fetch(uri, {\n method: 'POST',\n mode: 'same-origin',\n cache: 'no-cache',\n credentials: 'same-origin',\n // fetch rejects a keepalive body over the 64KiB quota outright\n keepalive: new TextEncoder().encode(body).length <= 64 * 1024,\n headers: headers,\n redirect: 'error',\n referrerPolicy: 'no-referrer-when-downgrade',\n body: body,\n }).catch(() => {});\n } catch {}\n}\n\nwindow.addEventListener('error', ful_report_error);\nwindow.addEventListener('unhandledrejection', ful_report_error);\n"],"names":[],"mappings":";;;IAAA,IAAI,sBAAsB,GAAG,KAAK;IAClC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,gBAAgB,CAAC,GAAG,EAAE;IAC/B;IACA;IACA;IACA;IACA,IAAI,SAAS,YAAY,CAAC,IAAI,EAAE;IAChC,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;IACtD;IACA,QAAQ,IAAI,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;IACxE,QAAQ,OAAO,MAAM,GAAG,MAAM,CAAC,OAAO,GAAG,SAAS;IAClD,IAAI;;IAEJ;IACA,IAAI,SAAS,qBAAqB,GAAG;IACrC;IACA,QAAQ,IAAI,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,uCAAuC,CAAC;IACtF,QAAQ,IAAI,GAAG,GAAG,QAAQ,EAAE,YAAY,CAAC,+BAA+B,CAAC;IACzE,QAAQ,IAAI,CAAC,GAAG,EAAE;IAClB,YAAY,IAAI,CAAC,sBAAsB,EAAE;IACzC,gBAAgB,sBAAsB,GAAG,IAAI;IAC7C,gBAAgB,OAAO,EAAE,KAAK,GAAG,0DAA0D,CAAC;IAC5F,YAAY;IACZ,YAAY,OAAO,IAAI;IACvB,QAAQ;IACR,QAAQ,OAAO,GAAG;IAClB,IAAI;;IAEJ;IACA,IAAI,SAAS,WAAW,GAAG;IAC3B,QAAQ,IAAI,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;IACrC,YAAY,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;IAC9C,QAAQ;IACR,QAAQ,IAAI,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE;IACtC,YAAY,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;IAC/C,QAAQ;IACR,QAAQ,OAAO,SAAS;IACxB,IAAI;;IAEJ;IACA;IACA;IACA;IACA;IACA,IAAI,SAAS,OAAO,GAAG;IACvB,QAAQ,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK;IAC9C,QAAQ,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,IAAI,MAAM,EAAE,OAAO;IACnD,QAAQ,IAAI,CAAC,IAAI,EAAE;IACnB,YAAY,OAAO,SAAS;IAC5B,QAAQ;IACR,QAAQ,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC;IAC5B,QAAQ,MAAM,IAAI,GAAG,EAAE;IACvB,QAAQ,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE;IAClG,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACxB,YAAY,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE;IAC5B,gBAAgB;IAChB,YAAY;IACZ,YAAY,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,QAAQ;IACR,QAAQ,IAAI,MAAM,EAAE,SAAS,EAAE;IAC/B,YAAY,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC;IAC3D,QAAQ;IACR,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;IAC/B,IAAI;;IAEJ,IAAI,IAAI,GAAG,GAAG,qBAAqB,EAAE;IACrC,IAAI,IAAI,CAAC,GAAG,EAAE;IACd,QAAQ;IACR,IAAI;;IAEJ;IACA,IAAI,IAAI,OAAO,GAAG;IAClB,QAAQ,cAAc,EAAE,kBAAkB;IAC1C,KAAK;;IAEL,IAAI,IAAI,UAAU,GAAG,YAAY,CAAC,cAAc,CAAC;IACjD,IAAI,IAAI,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;IACzC,IAAI,IAAI,UAAU,IAAI,SAAS,EAAE;IACjC,QAAQ,OAAO,CAAC,UAAU,CAAC,GAAG,SAAS;IACvC,IAAI;;IAEJ,IAAI,IAAI,IAAI;IACZ,IAAI,IAAI;IACR,QAAQ,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;IAC9B,YAAY,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,SAAS;IAC1E,YAAY,QAAQ,EAAE,GAAG,CAAC,QAAQ;IAClC,YAAY,IAAI,EAAE,GAAG,CAAC,MAAM;IAC5B,YAAY,GAAG,EAAE,GAAG,CAAC,KAAK;IAC1B,YAAY,OAAO,EAAE,OAAO,EAAE;IAC9B,YAAY,KAAK,EAAE,WAAW,EAAE;IAChC,SAAS,CAAC;IACV,QAAQ,KAAK,CAAC,GAAG,EAAE;IACnB,YAAY,MAAM,EAAE,MAAM;IAC1B,YAAY,IAAI,EAAE,aAAa;IAC/B,YAAY,KAAK,EAAE,UAAU;IAC7B,YAAY,WAAW,EAAE,aAAa;IACtC;IACA,YAAY,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,GAAG,IAAI;IACzE,YAAY,OAAO,EAAE,OAAO;IAC5B,YAAY,QAAQ,EAAE,OAAO;IAC7B,YAAY,cAAc,EAAE,4BAA4B;IACxD,YAAY,IAAI,EAAE,IAAI;IACtB,SAAS,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1B,IAAI,CAAC,CAAC,MAAM,CAAC;IACb;;IAEA,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,CAAC;IAClD,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(){"use strict";var e=!1;function r(r){function
|
|
1
|
+
!function(){"use strict";var e=!1;function r(r){function n(e){var r=e.replace(/["\\]/g,"\\$&"),n=document.querySelector(`meta[name="${r}"]`);return n?n.content:void 0}var t=function(){var r=document.querySelector("script[data-report-client-errors-uri]"),n=r?.getAttribute("data-report-client-errors-uri");return n||(e||(e=!0,console?.error?.("missing or empty attribute data-report-client-errors-uri")),null)}();if(t){var o,a={"Content-Type":"application/json"},i=n("_csrf_header"),s=n("_csrf");i&&s&&(a[i]=s);try{o=JSON.stringify({page:window.location?.href?window.location.href:"unknown",filename:r.filename,line:r.lineno,col:r.colno,message:function(){const e=r.reason??r.error,n=r.message??e?.message;if(!n)return;const t=[n],o=[];for(let r=e?.cause;r&&t.length<6&&-1===o.indexOf(r)&&(o.push(r),r.message);r=r.cause)t.push(`Caused by: ${r.message}`);return e?.truncated&&t.push("Caused by: … outer frames omitted"),t.join("\n")}(),stack:r.error?.stack?.split?r.error.stack.split("\n"):r.reason?.stack?.split?r.reason.stack.split("\n"):void 0}),fetch(t,{method:"POST",mode:"same-origin",cache:"no-cache",credentials:"same-origin",keepalive:(new TextEncoder).encode(o).length<=65536,headers:a,redirect:"error",referrerPolicy:"no-referrer-when-downgrade",body:o}).catch(()=>{})}catch{}}}window.addEventListener("error",r),window.addEventListener("unhandledrejection",r)}();
|
|
2
2
|
//# sourceMappingURL=client-errors.iife.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-errors.iife.min.js","sources":["../src/client-errors/client-errors.mjs"],"sourcesContent":["var complained_missing_uri = false;\n/**\n * Posts a json report of an `error` or `unhandledrejection` event (page url,\n * location, message with its cause chain, stack) to the uri the script tag's\n * `data-report-client-errors-uri` names, same-origin and `keepalive
|
|
1
|
+
{"version":3,"file":"client-errors.iife.min.js","sources":["../src/client-errors/client-errors.mjs"],"sourcesContent":["var complained_missing_uri = false;\n/**\n * Posts a json report of an `error` or `unhandledrejection` event (page url,\n * location, message with its cause chain, stack) to the uri the script tag's\n * `data-report-client-errors-uri` names, same-origin, and `keepalive` unless\n * the body is over the 64KiB keepalive quota. The csrf header is sent only\n * when both `_csrf_header` and `_csrf` metas are present. A missing or empty\n * uri is complained about once. The reporter never reports itself: a failed\n * or throwing report is dropped.\n * @param {any} evt an ErrorEvent or a PromiseRejectionEvent\n */\nfunction ful_report_error(evt) {\n /**\n * @param {string} name\n * @returns {string|undefined}\n */\n function meta_content(name) {\n var cleanName = name.replace(/[\"\\\\]/g, '\\\\$&');\n /** @type {HTMLMetaElement | null} */\n var metaEl = document.querySelector(`meta[name=\"${cleanName}\"]`);\n return metaEl ? metaEl.content : undefined;\n }\n\n /** @returns {string|null} */\n function configured_report_uri() {\n /** @type {HTMLScriptElement | null} */\n var scriptEl = document.querySelector('script[data-report-client-errors-uri]');\n var uri = scriptEl?.getAttribute('data-report-client-errors-uri');\n if (!uri) {\n if (!complained_missing_uri) {\n complained_missing_uri = true;\n console?.error?.('missing or empty attribute data-report-client-errors-uri');\n }\n return null;\n }\n return uri;\n }\n\n /** @returns {string[]|undefined} */\n function split_stack() {\n if (evt.error?.stack?.split) {\n return evt.error.stack.split('\\n');\n }\n if (evt.reason?.stack?.split) {\n return evt.reason.stack.split('\\n');\n }\n return undefined;\n }\n\n /**\n * The message followed by up to five `Caused by:` lines, stopping at a cause\n * with no message or one already seen.\n * @returns {string|undefined}\n */\n function message() {\n const thrown = evt.reason ?? evt.error;\n const head = evt.message ?? thrown?.message;\n if (!head) {\n return undefined;\n }\n const parts = [head];\n const seen = [];\n for (let e = thrown?.cause; e && parts.length < 6 && seen.indexOf(e) === -1; e = e.cause) {\n seen.push(e);\n if (!e.message) {\n break;\n }\n parts.push(`Caused by: ${e.message}`);\n }\n if (thrown?.truncated) {\n parts.push('Caused by: … outer frames omitted');\n }\n return parts.join('\\n');\n }\n\n var uri = configured_report_uri();\n if (!uri) {\n return;\n }\n\n /** @type {Record<string, any>} */\n var headers = {\n 'Content-Type': 'application/json',\n };\n\n var csrfHeader = meta_content('_csrf_header');\n var csrfToken = meta_content('_csrf');\n if (csrfHeader && csrfToken) {\n headers[csrfHeader] = csrfToken;\n }\n\n var body;\n try {\n body = JSON.stringify({\n page: window.location?.href ? window.location.href : 'unknown',\n filename: evt.filename,\n line: evt.lineno,\n col: evt.colno,\n message: message(),\n stack: split_stack(),\n });\n fetch(uri, {\n method: 'POST',\n mode: 'same-origin',\n cache: 'no-cache',\n credentials: 'same-origin',\n // fetch rejects a keepalive body over the 64KiB quota outright\n keepalive: new TextEncoder().encode(body).length <= 64 * 1024,\n headers: headers,\n redirect: 'error',\n referrerPolicy: 'no-referrer-when-downgrade',\n body: body,\n }).catch(() => {});\n } catch {}\n}\n\nwindow.addEventListener('error', ful_report_error);\nwindow.addEventListener('unhandledrejection', ful_report_error);\n"],"names":["complained_missing_uri","ful_report_error","evt","meta_content","name","cleanName","replace","metaEl","document","querySelector","content","undefined","uri","scriptEl","getAttribute","console","error","configured_report_uri","body","headers","csrfHeader","csrfToken","JSON","stringify","page","window","location","href","filename","line","lineno","col","colno","message","thrown","reason","head","parts","seen","e","cause","length","indexOf","push","truncated","join","stack","split","fetch","method","mode","cache","credentials","keepalive","TextEncoder","encode","redirect","referrerPolicy","catch","addEventListener"],"mappings":"yBAAA,IAAIA,GAAyB,EAW7B,SAASC,EAAiBC,GAKtB,SAASC,EAAaC,GAClB,IAAIC,EAAYD,EAAKE,QAAQ,SAAU,QAEnCC,EAASC,SAASC,cAAc,cAAcJ,OAClD,OAAOE,EAASA,EAAOG,aAAUC,CACrC,CAsDA,IAAIC,EAnDJ,WAEI,IAAIC,EAAWL,SAASC,cAAc,yCAClCG,EAAMC,GAAUC,aAAa,iCACjC,OAAKF,IACIZ,IACDA,GAAyB,EACzBe,SAASC,QAAQ,6DAEd,KAGf,CAuCUC,GACV,GAAKL,EAAL,CAKA,IAUIM,EAVAC,EAAU,CACV,eAAgB,oBAGhBC,EAAajB,EAAa,gBAC1BkB,EAAYlB,EAAa,SACzBiB,GAAcC,IACdF,EAAQC,GAAcC,GAI1B,IACIH,EAAOI,KAAKC,UAAU,CAClBC,KAAMC,OAAOC,UAAUC,KAAOF,OAAOC,SAASC,KAAO,UACrDC,SAAU1B,EAAI0B,SACdC,KAAM3B,EAAI4B,OACVC,IAAK7B,EAAI8B,MACTC,QA5CR,WACI,MAAMC,EAAShC,EAAIiC,QAAUjC,EAAIc,MAC3BoB,EAAOlC,EAAI+B,SAAWC,GAAQD,QACpC,IAAKG,EACD,OAEJ,MAAMC,EAAQ,CAACD,GACTE,EAAO,GACb,IAAK,IAAIC,EAAIL,GAAQM,MAAOD,GAAKF,EAAMI,OAAS,IAAyB,IAApBH,EAAKI,QAAQH,KAC9DD,EAAKK,KAAKJ,GACLA,EAAEN,SAFkEM,EAAIA,EAAEC,MAK/EH,EAAMM,KAAK,cAAcJ,EAAEN,WAK/B,OAHIC,GAAQU,WACRP,EAAMM,KAAK,qCAERN,EAAMQ,KAAK,KACtB,CAyBiBZ,GACTa,MA3DA5C,EAAIc,OAAO8B,OAAOC,MACX7C,EAAIc,MAAM8B,MAAMC,MAAM,MAE7B7C,EAAIiC,QAAQW,OAAOC,MACZ7C,EAAIiC,OAAOW,MAAMC,MAAM,WADlC,IA0DAC,MAAMpC,EAAK,CACPqC,OAAQ,OACRC,KAAM,cACNC,MAAO,WACPC,YAAa,cAEbC,WAAW,IAAIC,aAAcC,OAAOrC,GAAMuB,QAAU,MACpDtB,QAASA,EACTqC,SAAU,QACVC,eAAgB,6BAChBvC,KAAMA,IACPwC,MAAM,OACb,CAAE,MAAO,CAnCT,CAoCJ,CAEAjC,OAAOkC,iBAAiB,QAAS1D,GACjCwB,OAAOkC,iBAAiB,qBAAsB1D"}
|
|
@@ -122,7 +122,7 @@
|
|
|
122
122
|
"name": "Drawer",
|
|
123
123
|
"tagName": "ful-drawer",
|
|
124
124
|
"customElement": true,
|
|
125
|
-
"description": "A side panel drawer on the native dialog platform: a header with its title (the header attribute, or update()'s own) and close button, and a body that
|
|
125
|
+
"description": "A side panel drawer on the native dialog platform: a header with its title (the header attribute, or update()'s own) and close button, and a body that shows the slotted content or, under update(header, callback), opens in a loading state and then shows either the content the callback delivered or the error a rejecting callback carries. placement picks the side, end by default, start its mirror. open()/ask() answer with how the drawer ended, as a ful-dialog's do, an ask() on a drawer update() opened waiting for that opening's ending; dismiss(reason) dismisses it as the close button would, refusable and guarded alike, answering whether it closed. Any element carrying dialog-target set to its id opens it too.",
|
|
126
126
|
"attributes": [
|
|
127
127
|
{
|
|
128
128
|
"name": "header",
|
|
@@ -426,14 +426,14 @@
|
|
|
426
426
|
},
|
|
427
427
|
{
|
|
428
428
|
"name": "submit:success",
|
|
429
|
-
"description": "Fired with the submitted values and the mapped response.",
|
|
429
|
+
"description": "Fired with the submitted values and the mapped response, once the form has settled: the spinner is released, the buttons are no longer held off and a listener may submit again.",
|
|
430
430
|
"type": {
|
|
431
431
|
"text": "CustomEvent"
|
|
432
432
|
}
|
|
433
433
|
},
|
|
434
434
|
{
|
|
435
435
|
"name": "submit:failure",
|
|
436
|
-
"description": "Fired with the exception when the submit fails. The form does not rethrow: submit() resolves false, as it resolves true after submit:success.",
|
|
436
|
+
"description": "Fired with the exception when the submit fails, once the form has settled: the spinner is released and the problems of a Failure are already shown, so a listener writing errors has the last word. The form does not rethrow: submit() resolves false, as it resolves true after submit:success.",
|
|
437
437
|
"type": {
|
|
438
438
|
"text": "CustomEvent"
|
|
439
439
|
}
|
|
@@ -533,7 +533,7 @@
|
|
|
533
533
|
},
|
|
534
534
|
{
|
|
535
535
|
"name": "keep",
|
|
536
|
-
"description": "A regular expression naming the
|
|
536
|
+
"description": "A regular expression naming what survives: on every input event the whole value is filtered to its matches, concatenated, so keep=\"[0-9]\" is digits only. It matches rather than negating, so it takes a pattern and not only a character class, and the pattern must match each partial value typed on the way to a complete one.",
|
|
537
537
|
"type": {
|
|
538
538
|
"text": "string"
|
|
539
539
|
}
|
|
@@ -660,7 +660,7 @@
|
|
|
660
660
|
},
|
|
661
661
|
{
|
|
662
662
|
"name": "keep",
|
|
663
|
-
"description": "A regular expression naming the
|
|
663
|
+
"description": "A regular expression naming what survives: on every input event the whole value is filtered to its matches, concatenated, so keep=\"[0-9]\" is digits only. It matches rather than negating, so it takes a pattern and not only a character class, and the pattern must match each partial value typed on the way to a complete one.",
|
|
664
664
|
"type": {
|
|
665
665
|
"text": "string"
|
|
666
666
|
}
|
|
@@ -890,7 +890,7 @@
|
|
|
890
890
|
},
|
|
891
891
|
{
|
|
892
892
|
"name": "keep",
|
|
893
|
-
"description": "A regular expression naming the
|
|
893
|
+
"description": "A regular expression naming what survives: on every input event the whole value is filtered to its matches, concatenated, so keep=\"[0-9]\" is digits only. It matches rather than negating, so it takes a pattern and not only a character class, and the pattern must match each partial value typed on the way to a complete one.",
|
|
894
894
|
"type": {
|
|
895
895
|
"text": "string"
|
|
896
896
|
}
|
|
@@ -1038,7 +1038,7 @@
|
|
|
1038
1038
|
},
|
|
1039
1039
|
{
|
|
1040
1040
|
"name": "keep",
|
|
1041
|
-
"description": "A regular expression naming the
|
|
1041
|
+
"description": "A regular expression naming what survives: on every input event the whole value is filtered to its matches, concatenated, so keep=\"[0-9]\" is digits only. It matches rather than negating, so it takes a pattern and not only a character class, and the pattern must match each partial value typed on the way to a complete one.",
|
|
1042
1042
|
"type": {
|
|
1043
1043
|
"text": "string"
|
|
1044
1044
|
}
|
|
@@ -1186,7 +1186,7 @@
|
|
|
1186
1186
|
},
|
|
1187
1187
|
{
|
|
1188
1188
|
"name": "keep",
|
|
1189
|
-
"description": "A regular expression naming the
|
|
1189
|
+
"description": "A regular expression naming what survives: on every input event the whole value is filtered to its matches, concatenated, so keep=\"[0-9]\" is digits only. It matches rather than negating, so it takes a pattern and not only a character class, and the pattern must match each partial value typed on the way to a complete one.",
|
|
1190
1190
|
"type": {
|
|
1191
1191
|
"text": "string"
|
|
1192
1192
|
}
|
|
@@ -1401,7 +1401,7 @@
|
|
|
1401
1401
|
},
|
|
1402
1402
|
{
|
|
1403
1403
|
"name": "autoload",
|
|
1404
|
-
"description": "Loads the first page while upgrading, instead of waiting for a reload(). The load is not awaited, so a slow or failing loader cannot hold up the page.",
|
|
1404
|
+
"description": "Loads the first page while upgrading, instead of waiting for a reload(). With a filters slot the load goes through the filter form's submit, so its submit listeners shape it as they shape the later loads. The load is not awaited, so a slow or failing loader cannot hold up the page.",
|
|
1405
1405
|
"type": {
|
|
1406
1406
|
"text": "boolean"
|
|
1407
1407
|
}
|
|
@@ -1449,7 +1449,7 @@
|
|
|
1449
1449
|
"events": [
|
|
1450
1450
|
{
|
|
1451
1451
|
"name": "load:success",
|
|
1452
|
-
"description": "Fired once a load has settled, after the rows are in place and the busy state is gone, carrying the page response and the three requests that asked for it. Not fired for a load a newer one superseded, which owns nothing.",
|
|
1452
|
+
"description": "Fired once a load has settled, after the rows are in place, the elements in them have rendered and the busy state is gone, carrying the page response and the three requests that asked for it. Not fired for a load a newer one superseded, which owns nothing.",
|
|
1453
1453
|
"type": {
|
|
1454
1454
|
"text": "CustomEvent"
|
|
1455
1455
|
}
|
|
@@ -1559,7 +1559,7 @@
|
|
|
1559
1559
|
},
|
|
1560
1560
|
{
|
|
1561
1561
|
"name": "keep",
|
|
1562
|
-
"description": "A regular expression naming the
|
|
1562
|
+
"description": "A regular expression naming what survives: on every input event the whole value is filtered to its matches, concatenated, so keep=\"[0-9]\" is digits only. It matches rather than negating, so it takes a pattern and not only a character class, and the pattern must match each partial value typed on the way to a complete one.",
|
|
1563
1563
|
"type": {
|
|
1564
1564
|
"text": "string"
|
|
1565
1565
|
}
|
|
@@ -1700,7 +1700,7 @@
|
|
|
1700
1700
|
},
|
|
1701
1701
|
{
|
|
1702
1702
|
"name": "keep",
|
|
1703
|
-
"description": "A regular expression naming the
|
|
1703
|
+
"description": "A regular expression naming what survives: on every input event the whole value is filtered to its matches, concatenated, so keep=\"[0-9]\" is digits only. It matches rather than negating, so it takes a pattern and not only a character class, and the pattern must match each partial value typed on the way to a complete one.",
|
|
1704
1704
|
"type": {
|
|
1705
1705
|
"text": "string"
|
|
1706
1706
|
}
|
|
@@ -1841,7 +1841,7 @@
|
|
|
1841
1841
|
},
|
|
1842
1842
|
{
|
|
1843
1843
|
"name": "keep",
|
|
1844
|
-
"description": "A regular expression naming the
|
|
1844
|
+
"description": "A regular expression naming what survives: on every input event the whole value is filtered to its matches, concatenated, so keep=\"[0-9]\" is digits only. It matches rather than negating, so it takes a pattern and not only a character class, and the pattern must match each partial value typed on the way to a complete one.",
|
|
1845
1845
|
"type": {
|
|
1846
1846
|
"text": "string"
|
|
1847
1847
|
}
|
|
@@ -2053,7 +2053,7 @@
|
|
|
2053
2053
|
},
|
|
2054
2054
|
{
|
|
2055
2055
|
"name": "keep",
|
|
2056
|
-
"description": "A regular expression naming the
|
|
2056
|
+
"description": "A regular expression naming what survives: on every input event the whole value is filtered to its matches, concatenated, so keep=\"[0-9]\" is digits only. It matches rather than negating, so it takes a pattern and not only a character class, and the pattern must match each partial value typed on the way to a complete one.",
|
|
2057
2057
|
"type": {
|
|
2058
2058
|
"text": "string"
|
|
2059
2059
|
}
|
|
@@ -2313,7 +2313,7 @@
|
|
|
2313
2313
|
},
|
|
2314
2314
|
{
|
|
2315
2315
|
"name": "item-list",
|
|
2316
|
-
"description": "Shows the selection as a ful-item-list under the control
|
|
2316
|
+
"description": "Shows the selection as a ful-item-list under the control. For a multiple select the list replaces the ful-badge chips, which it hides; a single select keeps its label in the field as well.",
|
|
2317
2317
|
"type": {
|
|
2318
2318
|
"text": "boolean"
|
|
2319
2319
|
}
|
|
@@ -2486,7 +2486,7 @@
|
|
|
2486
2486
|
},
|
|
2487
2487
|
{
|
|
2488
2488
|
"name": "item-list",
|
|
2489
|
-
"description": "Shows the selection as a ful-item-list under the control
|
|
2489
|
+
"description": "Shows the selection as a ful-item-list under the control. For a multiple select the list replaces the ful-badge chips, which it hides; a single select keeps its label in the field as well.",
|
|
2490
2490
|
"type": {
|
|
2491
2491
|
"text": "boolean"
|
|
2492
2492
|
}
|
package/dist/fml.css
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
@layer ful.theme, ful.components, ful.hidden;@layer ful.theme{@property --ful-border-width{syntax:"<length>";inherits:true;initial-value:1px}@property --ful-border-radius{syntax:"<length>";inherits:true;initial-value:.375rem}@property --ful-scrollbar-width{syntax:"<length>";inherits:true;initial-value:12px}@property --ful-scrollbar-border-width{syntax:"<length>";inherits:true;initial-value:1px}:root{--ful-color:light-dark(#212529, #dee2e6);--ful-bg:light-dark(#fff, #212529);--ful-muted-color:light-dark(#495057, #adb5bd);--ful-border-width:1px;--ful-border-radius:0.375rem;--ful-border-color:light-dark(#dee2e6, #495057);--ful-disabled-bg:light-dark(#e9ecef, #343a40);--ful-selected-bg:light-dark(#f8f9fa, #343a40);--ful-active-color:#fff;--ful-active-bg:#007376;--ful-accent-ink:light-dark(var(--ful-active-bg), color-mix(in srgb, var(--ful-active-bg) 55%, #fff));--ful-focus-border-color:color-mix(in srgb, var(--ful-active-bg) 75%, #fff);--ful-focus-box-shadow:0 0 0 0.25rem color-mix(in srgb, var(--ful-active-bg) 25%, transparent);--ful-backdrop-color:rgba(0,0,0,.5);--ful-invalid-color:light-dark(#dc3545, #ea868f);--ful-invalid-border-color:var(--ful-invalid-color);--ful-invalid-box-shadow:0 0 0 0.25rem color-mix(in srgb, var(--ful-invalid-color) 25%, transparent);--ful-error-color:light-dark(#58151c, #ea868f);--ful-error-bg:light-dark(#f8d7da, #2c0b0e);--ful-error-border-color:light-dark(#f1aeb5, #842029);--ful-warning-color:light-dark(#664d03, #ffda6a);--ful-warning-bg:light-dark(#fff3cd, #332701);--ful-warning-border-color:light-dark(#ffe69c, #997404);--ful-dirty-mark-color:#ffc107;--ful-scrollbar-bg:var(--ful-disabled-bg);--ful-scrollbar-thumb-bg:var(--ful-active-bg);--ful-scrollbar-width:12px;--ful-scrollbar-border-width:1px;--ful-controls-bg:var(--ful-bg);--ful-controls-border-width:var(--ful-border-width);--ful-controls-border-radius:var(--ful-border-radius);--ful-controls-border-color:var(--ful-border-color);--ful-controls-height:calc(1.5em + .75rem + 2px);--ful-spinner-icon-width:1rem;--ful-spinner-icon-height:1rem;--ful-spinner-icon-border-width:0.2em;--ful-spinner-icon-animation-speed:0.75s;--ful-spinner-icon-animation-name:ful-spinner-border;--ful-spinner-icon-color:currentcolor}}
|
|
2
2
|
@layer ful.components{ful-errors{--ful-errors-color:var(--ful-error-color);--ful-errors-bg:var(--ful-error-bg);--ful-errors-border-color:var(--ful-error-border-color);display:block;padding:1rem;margin-bottom:1rem;color:var(--ful-errors-color);background-color:var(--ful-errors-bg);border:1px solid var(--ful-errors-border-color);border-radius:var(--ful-border-radius)}ful-field-error{--ful-field-error-invalid-color:var(--ful-invalid-color);display:none;font-size:.875rem;:invalid &{display:block;margin-top:.25rem;color:var(--ful-field-error-invalid-color)}}ful-field-warnings{display:none;&:not(:empty){display:block}}ful-field-warning{display:block;margin:.5rem 0;padding:15px;color:var(--ful-warning-color);background-color:var(--ful-warning-bg);border-color:var(--ful-warning-border-color);border-radius:8px;animation:ful-field-warning 5s ease forwards;animation-composition:initial}@keyframes ful-field-warning{0%{opacity:0;display:block}3%{opacity:1}90%{opacity:1}to{opacity:0;display:none}}}
|
|
3
|
-
@layer ful.components{*,:after,:before{box-sizing:border-box}ful-form{display:block}ful-form>form{display:contents}button[data-ful-dirty]{background-image:radial-gradient(circle at calc(100% - .525rem) .525rem,var(--ful-dirty-mark-color) .225rem,transparent calc(.225rem + .5px))}:has(>ful-control-group){display:block}:has(>fieldset>ful-radio-list)>fieldset>legend,:has(>ful-control-group)>label{display:inline-block;margin:0 .25rem .5rem 0;color:var(--ful-color)}:has(>fieldset>ful-radio-list)[required]>fieldset>legend:before,:has(>ful-choice)[required]>ful-choice>label:before,:has(>ful-control-group)[required]>label:before{content:"* ";display:inline;font-weight:700;color:var(--ful-color)}ful-control-group{position:relative;display:flex;flex-wrap:nowrap;width:100%;color:var(--ful-color);background-color:var(--ful-controls-bg);border:var(--ful-controls-border-width) solid var(--ful-controls-border-color);border-radius:var(--ful-controls-border-radius);&:has(:focus-visible):not(:has([popover] :focus-visible)){border-color:var(--ful-focus-border-color);box-shadow:var(--ful-focus-box-shadow)}&>ful-control>input,&>input,&>textarea{flex:1 1 auto;width:1%;min-width:0;min-height:var(--ful-controls-height);padding:.375rem .75rem;font:inherit;line-height:1.5;color:inherit;background-color:transparent;border:0;border-radius:0;&:focus{outline:0}}&>ful-affix:first-child{border-top-left-radius:calc(var(--ful-controls-border-radius) - var(--ful-controls-border-width));border-bottom-left-radius:calc(var(--ful-controls-border-radius) - var(--ful-controls-border-width))}&>ful-affix:has(+ful-dropdown),&>ful-affix:last-child{border-top-right-radius:calc(var(--ful-controls-border-radius) - var(--ful-controls-border-width));border-bottom-right-radius:calc(var(--ful-controls-border-radius) - var(--ful-controls-border-width))}}ful-affix{display:flex;flex:0 0 auto;align-items:center;justify-content:center;min-width:var(--ful-controls-height);padding:.375rem .75rem;line-height:1.5;color:var(--ful-color);white-space:nowrap;background-color:var(--ful-selected-bg);border:0;border-radius:0}ful-affix:has(>button){padding:0;overflow:hidden}ful-affix>button{display:flex;flex:1 1 auto;align-self:stretch;align-items:center;justify-content:center;padding:.375rem .75rem;font:inherit;line-height:1.5;color:var(--ful-color);white-space:nowrap;background-color:transparent;cursor:pointer}ful-affix>button,ful-affix>button.ful-button,ful-control{border:0;border-radius:0}ful-control{position:relative;display:flex;flex:1 1 auto;align-items:center;min-width:0;min-height:var(--ful-controls-height);cursor:text}:invalid>ful-control-group{border-color:var(--ful-invalid-border-color);&:has(:focus-visible):not(:has([popover] :focus-visible)){border-color:var(--ful-invalid-border-color);box-shadow:var(--ful-invalid-box-shadow)}}:disabled>ful-control-group{background-color:var(--ful-disabled-bg)}ful-form [aria-disabled=true]{opacity:.65;cursor:default}ful-badge{display:flex;flex:0 0 auto;align-items:center;margin:5px 0;padding:5px 7px;line-height:1em;color:var(--ful-color);white-space:nowrap;cursor:pointer;background-color:var(--ful-selected-bg);border:var(--ful-border-width) solid var(--ful-border-color);border-radius:var(--ful-border-radius);&:hover{background-color:var(--ful-disabled-bg)}&:focus-visible{border-color:var(--ful-focus-border-color);outline:0}}ful-choice{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.25rem 0;&>label{margin:0;cursor:pointer;flex:1 1 0;min-width:0}& input[type=checkbox]{width:1em;height:1em;margin:0;font-size:inherit;accent-color:var(--ful-active-bg);&:focus-visible{outline:0;box-shadow:var(--ful-focus-box-shadow)}}&[switch] input[type=checkbox]{appearance:none;position:relative;width:2em;height:1em;margin:0;cursor:pointer;background-color:var(--ful-border-color);border-radius:1em;transition:background-color .15s ease-in-out;&:before{content:"";display:block;width:1em;height:1em;background-color:var(--ful-active-color);border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,.15);transition:translate .15s ease-in-out}&:checked{background-color:var(--ful-active-bg);&:before{translate:1em 0}}@media
|
|
4
|
-
@layer ful.components{ful-icon,ful-sorter:before{background-color:currentcolor;mask-repeat:no-repeat;mask-position:center;mask-size:contain}ful-icon{display:inline-block;width:1em;height:1em;vertical-align:-.125em;&[name=search]{mask-image:url(
|
|
3
|
+
@layer ful.components{*,:after,:before{box-sizing:border-box}ful-form{display:block}ful-form>form{display:contents}button[data-ful-dirty]{background-image:radial-gradient(circle at calc(100% - .525rem) .525rem,var(--ful-dirty-mark-color) .225rem,transparent calc(.225rem + .5px))}:has(>ful-control-group){display:block}:has(>fieldset>ful-radio-list)>fieldset>legend,:has(>ful-control-group)>label{display:inline-block;margin:0 .25rem .5rem 0;color:var(--ful-color)}:has(>ful-control-group)>label:empty{display:none}:has(>fieldset>ful-radio-list)[required]>fieldset>legend:before,:has(>ful-choice)[required]>ful-choice>label:before,:has(>ful-control-group)[required]>label:before{content:"* ";display:inline;font-weight:700;color:var(--ful-color)}ful-control-group{position:relative;display:flex;flex-wrap:nowrap;width:100%;color:var(--ful-color);background-color:var(--ful-controls-bg);border:var(--ful-controls-border-width) solid var(--ful-controls-border-color);border-radius:var(--ful-controls-border-radius);&:has(:focus-visible,:is(input[type=date],input[type=time],input[type=datetime-local]):focus):not(:has([popover] :focus-visible)){border-color:var(--ful-focus-border-color);box-shadow:var(--ful-focus-box-shadow)}&>ful-control>input,&>input,&>textarea{flex:1 1 auto;width:1%;min-width:0;min-height:var(--ful-controls-height);padding:.375rem .75rem;font:inherit;line-height:1.5;color:inherit;background-color:transparent;border:0;border-radius:0;&:focus{outline:0}}&>ful-affix:first-child{border-top-left-radius:calc(var(--ful-controls-border-radius) - var(--ful-controls-border-width));border-bottom-left-radius:calc(var(--ful-controls-border-radius) - var(--ful-controls-border-width))}&>ful-affix:has(+ful-dropdown),&>ful-affix:last-child{border-top-right-radius:calc(var(--ful-controls-border-radius) - var(--ful-controls-border-width));border-bottom-right-radius:calc(var(--ful-controls-border-radius) - var(--ful-controls-border-width))}}ful-affix{display:flex;flex:0 0 auto;align-items:center;justify-content:center;min-width:var(--ful-controls-height);padding:.375rem .75rem;line-height:1.5;color:var(--ful-color);white-space:nowrap;background-color:var(--ful-selected-bg);border:0;border-radius:0}ful-affix:has(>button){padding:0;overflow:hidden}ful-affix>button{display:flex;flex:1 1 auto;align-self:stretch;align-items:center;justify-content:center;padding:.375rem .75rem;font:inherit;line-height:1.5;color:var(--ful-color);white-space:nowrap;background-color:transparent;cursor:pointer}ful-affix>button,ful-affix>button.ful-button,ful-control{border:0;border-radius:0}ful-control{position:relative;display:flex;flex:1 1 auto;align-items:center;min-width:0;min-height:var(--ful-controls-height);cursor:text}:invalid>ful-control-group{border-color:var(--ful-invalid-border-color);&:has(:focus-visible,:is(input[type=date],input[type=time],input[type=datetime-local]):focus):not(:has([popover] :focus-visible)){border-color:var(--ful-invalid-border-color);box-shadow:var(--ful-invalid-box-shadow)}}:disabled>ful-control-group{background-color:var(--ful-disabled-bg)}ful-form [aria-disabled=true]{opacity:.65;cursor:default}ful-badge{display:flex;flex:0 0 auto;align-items:center;margin:5px 0;padding:5px 7px;line-height:1em;color:var(--ful-color);white-space:nowrap;cursor:pointer;background-color:var(--ful-selected-bg);border:var(--ful-border-width) solid var(--ful-border-color);border-radius:var(--ful-border-radius);&:hover{background-color:var(--ful-disabled-bg)}&:focus-visible{border-color:var(--ful-focus-border-color);outline:0}}ful-choice{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.25rem 0;&>label{margin:0;cursor:pointer;flex:1 1 0;min-width:0}& input[type=checkbox]{width:1em;height:1em;margin:0;font-size:inherit;accent-color:var(--ful-active-bg);&:focus-visible{outline:0;box-shadow:var(--ful-focus-box-shadow)}}&[switch] input[type=checkbox]{appearance:none;position:relative;width:2em;height:1em;margin:0;cursor:pointer;background-color:var(--ful-border-color);border-radius:1em;transition:background-color .15s ease-in-out;&:before{content:"";display:block;width:1em;height:1em;background-color:var(--ful-active-color);border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,.15);transition:translate .15s ease-in-out}&:checked{background-color:var(--ful-active-bg);&:before{translate:1em 0}}@media(prefers-reduced-motion:reduce){&,&:before{transition:none}}}}:has(>ful-choice):invalid ful-choice input[type=checkbox]{outline:1px solid var(--ful-invalid-border-color);outline-offset:2px}}
|
|
4
|
+
@layer ful.components{ful-icon,ful-sorter:before{background-color:currentcolor;mask-repeat:no-repeat;mask-position:center;mask-size:contain}ful-icon{display:inline-block;width:1em;height:1em;vertical-align:-.125em;&[name=search]{mask-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001q.044.06.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1 1 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0'/></svg>")}&[name=chevron-left]{mask-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path fill-rule='evenodd' d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/></svg>")}&[name=chevron-right]{mask-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path fill-rule='evenodd' d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/></svg>")}&[name=chevron-down]{mask-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/></svg>")}&[name=arrow-clockwise]{mask-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path fill-rule='evenodd' d='M8 3a5 5 0 1 0 4.546 2.914.5.5 0 0 1 .908-.417A6 6 0 1 1 8 2z'/><path d='M8 4.466V.534a.25.25 0 0 1 .41-.192l2.36 1.966c.12.1.12.284 0 .384L8.41 4.658A.25.25 0 0 1 8 4.466'/></svg>")}&[name=x-lg]{mask-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path d='M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8z'/></svg>")}&[name=info-circle]{mask-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/><path d='m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0'/></svg>")}&[name=info-circle-fill]{mask-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path d='M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.93-9.412-1 4.705c-.07.34.029.533.304.533.194 0 .487-.07.686-.246l-.088.416c-.287.346-.92.598-1.465.598-.703 0-1.002-.422-.808-1.319l.738-3.468c.064-.293.006-.399-.287-.47l-.451-.081.082-.381 2.29-.287zM8 5.5a1 1 0 1 1 0-2 1 1 0 0 1 0 2'/></svg>")}&[name=upload]{mask-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path d='M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5'/><path d='M7.646 1.146a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1-.708.708L8.5 2.707V11.5a.5.5 0 0 1-1 0V2.707L5.354 4.854a.5.5 0 1 1-.708-.708z'/></svg>")}&[name=arrow-down]{mask-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path fill-rule='evenodd' d='M8 1a.5.5 0 0 1 .5.5v11.793l3.146-3.147a.5.5 0 0 1 .708.708l-4 4a.5.5 0 0 1-.708 0l-4-4a.5.5 0 0 1 .708-.708L7.5 13.293V1.5A.5.5 0 0 1 8 1'/></svg>")}&[name=arrow-up]{mask-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path fill-rule='evenodd' d='M8 15a.5.5 0 0 0 .5-.5V2.707l3.146 3.147a.5.5 0 0 0 .708-.708l-4-4a.5.5 0 0 0-.708 0l-4 4a.5.5 0 1 0 .708.708L7.5 2.707V14.5a.5.5 0 0 0 .5.5'/></svg>")}&[name=inbox]{mask-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path d='M4.98 4a.5.5 0 0 0-.39.188L1.54 8H6a.5.5 0 0 1 .5.5 1.5 1.5 0 1 0 3 0A.5.5 0 0 1 10 8h4.46l-3.05-3.812A.5.5 0 0 0 11.02 4zm9.954 5H10.45a2.5 2.5 0 0 1-4.9 0H1.066l.32 2.562a.5.5 0 0 0 .497.438h12.234a.5.5 0 0 0 .496-.438zM3.809 3.563A1.5 1.5 0 0 1 4.981 3h6.038a1.5 1.5 0 0 1 1.172.563l3.7 4.625a.5.5 0 0 1 .105.374l-.39 3.124A1.5 1.5 0 0 1 14.117 13H1.883a1.5 1.5 0 0 1-1.489-1.314l-.39-3.124a.5.5 0 0 1 .106-.374z'/></svg>")}&[name=star]{mask-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path d='M2.866 14.85c-.078.444.36.791.746.593l4.39-2.256 4.389 2.256c.386.198.824-.149.746-.592l-.83-4.73 3.522-3.356c.33-.314.16-.888-.282-.95l-4.898-.696L8.465.792a.513.513 0 0 0-.927 0L5.354 5.12l-4.898.696c-.441.062-.612.636-.283.95l3.523 3.356-.83 4.73zm4.905-2.767-3.686 1.894.694-3.957a.56.56 0 0 0-.163-.505L1.71 6.745l4.052-.576a.53.53 0 0 0 .393-.288L8 2.223l1.847 3.658a.53.53 0 0 0 .393.288l4.052.575-2.906 2.77a.56.56 0 0 0-.163.506l.694 3.957-3.686-1.894a.5.5 0 0 0-.461 0z'/></svg>")}}}
|
|
5
5
|
@layer ful.components{.ful-button{--ful-button-height:var(--ful-controls-height);--ful-button-border-width:var(--ful-controls-border-width);--ful-button-border-radius:var(--ful-controls-border-radius);--ful-button-color:var(--ful-active-color);--ful-button-bg:var(--ful-active-bg);--ful-button-border-color:var(--ful-button-bg);--ful-button-hover-bg:color-mix(in srgb, var(--ful-active-bg) 85%, #000);--ful-button-hover-color:var(--ful-button-color);display:inline-flex;align-items:center;justify-content:center;gap:.375rem;min-height:var(--ful-button-height);padding:.375rem .75rem;font:inherit;line-height:1.5;text-decoration:none;color:var(--ful-button-color);background-color:var(--ful-button-bg);border:var(--ful-button-border-width) solid var(--ful-button-border-color);border-radius:var(--ful-button-border-radius);cursor:pointer;&:hover{color:var(--ful-button-hover-color);background-color:var(--ful-button-hover-bg)}&:focus-visible{outline:0;box-shadow:var(--ful-focus-box-shadow)}&:disabled,&[aria-disabled=true]{opacity:.5;pointer-events:none}&.ghost{--ful-button-color:var(--ful-accent-ink);--ful-button-bg:transparent;--ful-button-border-color:var(--ful-accent-ink)}&.ghost,&.soft{--ful-button-hover-color:var(--ful-active-color);--ful-button-hover-bg:var(--ful-active-bg)}&.soft{--ful-button-color:var(--ful-color);--ful-button-bg:var(--ful-selected-bg);--ful-button-border-color:var(--ful-controls-border-color)}&.small{--ful-button-height:calc(1.25em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem}}:has(>ful-toast)>ful-toast>button,:is(dialog.ful-dialog>header,dialog.ful-dialog .ful-dialog-header)>button[data-ref=close],dialog.ful-drawer>header>button{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;padding:0;border:0;border-radius:var(--ful-border-radius);background:none;color:var(--ful-muted-color);cursor:pointer;& ful-icon{width:1em;height:1em}&:hover{color:var(--ful-active-color);background-color:var(--ful-active-bg)}&:focus-visible{outline:0;box-shadow:var(--ful-focus-box-shadow)}}}
|
|
6
6
|
@layer ful.components{:is(ful-tabs,ful-wizard,ful-dialog,ful-drawer) [loading=""]:after,ful-spinner:after{width:var(--ful-spinner-icon-width);height:var(--ful-spinner-icon-height);border-radius:50%;border:var(--ful-spinner-icon-border-width) solid var(--ful-spinner-icon-color);animation:var(--ful-spinner-icon-animation-speed) linear infinite var(--ful-spinner-icon-animation-name)}}
|
|
7
|
-
@layer ful.components{:is(ful-tabs,ful-wizard,ful-dialog,ful-drawer){& [loading=""]{position:relative}& [loading=""]:after{content:"";position:absolute;inset:0;margin:auto;border-inline-end-color:transparent;@media
|
|
7
|
+
@layer ful.components{:is(ful-tabs,ful-wizard,ful-dialog,ful-drawer){& [loading=""]{position:relative}& [loading=""]:after{content:"";position:absolute;inset:0;margin:auto;border-inline-end-color:transparent;@media(prefers-reduced-motion:reduce){animation:none}}& .ful-section-error{margin-bottom:1rem}}:is(ful-tabs,ful-wizard,ful-dialog,ful-drawer) .ful-section-error,dialog.ful-dialog>[data-ref=error],dialog.ful-drawer>section[data-ref=error]{padding:1rem;white-space:pre-line;color:var(--ful-error-color);background-color:var(--ful-error-bg);border:var(--ful-border-width) solid var(--ful-error-border-color);border-radius:var(--ful-border-radius)}}
|
|
8
8
|
@layer ful.components{:is(ful-input,.ful-input,ful-input-file,ful-input-local-date,ful-input-local-time,ful-input-instant,ful-checkbox,ful-radio-group,ful-select,ful-filter-text,ful-filter-number,ful-filter-boolean,ful-filter-local-date,ful-filter-instant,ful-filter-in,ful-tabs,ful-wizard,ful-tooltip,ful-dialog,ful-drawer,ful-table,ful-pagination):not(:state(rendered)){visibility:hidden}}
|
|
9
9
|
@layer ful.components{:has(>ful-control-group>input,>ful-control-group>textarea){&[uppercase] input,&[uppercase] textarea{text-transform:uppercase}}:has(>ful-item-list){&:not([item-list])>ful-item-list{display:none}&[item-list][readonly]{&>ful-control-group{display:none}&>ful-item-list>ful-item:first-child{margin-top:0}&>ful-item-list>ful-item:last-child{margin-bottom:0}}}:has(>ful-item-list):is([readonly],:disabled){&>ful-item-list button{display:none}&>ful-item-list>ful-item>div{padding-right:.5rem}}ful-item-list{--ful-item-list-item-color:var(--ful-active-color);--ful-item-list-item-border-radius:var(--ful-border-radius);--ful-item-list-item-bg:var(--ful-active-bg);display:grid;grid-template-columns:minmax(0,1fr);gap:.5rem;&>ful-item:first-child{margin-top:.5rem}&>ful-item:last-child{margin-bottom:.5rem}&>ful-item>div{display:flex;align-items:center;gap:.5rem;min-width:0;min-height:calc(var(--ful-controls-height) + 2 * var(--ful-controls-border-width));padding:5px .25rem 5px .5rem;color:var(--ful-item-list-item-color);border-radius:var(--ful-item-list-item-border-radius);background-color:var(--ful-item-list-item-bg);&:has(:focus-visible){outline:2px solid var(--ful-active-bg);outline-offset:2px}&>span{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}&>span+span{flex:0 0 auto;font-size:.875em;opacity:.75}&>button{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:calc(-.625rem + var(--ful-controls-height));height:calc(-.625rem + var(--ful-controls-height));padding:0;font-size:inherit;font-family:inherit;color:inherit;background-color:transparent;border:0;border-radius:calc(-.1875rem + var(--ful-item-list-item-border-radius));cursor:pointer;& ful-icon{width:1em;height:1em}&:hover{background-color:color-mix(in srgb,var(--ful-invalid-color) 25%,transparent)}&:focus-visible{outline:0}}}}}
|
|
10
10
|
@layer ful.components{:has(>ful-control-group>input[type=file]){&>ful-control-group>input[type=file]{padding-left:0}&>ful-control-group>input[type=file]::file-selector-button{margin:-.375rem .75rem -.375rem 0;padding:.375rem .75rem;height:var(--ful-controls-height);font-size:inherit;font-family:inherit;line-height:1.5;color:var(--ful-color);background-color:var(--ful-selected-bg);border:0;cursor:pointer}&>ful-control-group>input[type=file]:first-child::file-selector-button{border-start-start-radius:calc(var(--ful-controls-border-radius) - var(--ful-controls-border-width));border-end-start-radius:calc(var(--ful-controls-border-radius) - var(--ful-controls-border-width))}&>ful-control-group>input[type=file]::file-selector-button:hover{color:var(--ful-active-color);background-color:var(--ful-active-bg)}&>ful-control-group>input[type=file]:focus::file-selector-button{outline:0}&[readonly]>ful-control-group>input[type=file]::file-selector-button{display:none}&[readonly]>ful-control-group>input[type=file]{padding-left:.75rem}&:disabled>ful-control-group>input[type=file]::file-selector-button{opacity:.5;cursor:default}&>.default-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;min-height:100px;margin-top:.5rem;padding:1.5rem;color:var(--ful-color);text-align:center;background-color:var(--ful-bg);border:var(--ful-controls-border-width) dashed var(--ful-controls-border-color);border-radius:var(--ful-controls-border-radius)}&>.default-dropzone,&>.dropzone{cursor:pointer}&>.default-dropzone:hover{border-color:var(--ful-focus-border-color);box-shadow:var(--ful-focus-box-shadow)}&[dragover]>.default-dropzone{color:var(--ful-active-color);background-color:var(--ful-active-bg);border-color:var(--ful-active-bg);box-shadow:none}&:disabled>.default-dropzone,&:disabled>.dropzone,&:not([dropzone])>.default-dropzone,&:not([dropzone])>.dropzone,&[noinput]>ful-control-group,&[readonly]>.default-dropzone,&[readonly]>.dropzone{display:none}&[readonly]{&>ful-control-group>input,&>ful-item-list{pointer-events:none}}&:disabled>ful-item-list{pointer-events:none}}}
|
|
11
|
-
@layer ful.components{:has(>ful-control-group>ful-dropdown){cursor:pointer;&[item-list] ful-control-group ful-badge{display:none}&>ful-control-group>ful-control{cursor:pointer;padding-left:5px;padding-right:2.25rem;overflow:hidden;&:after{content:"";position:absolute;top:50%;right:.75rem;width:16px;height:12px;translate:0 -50%;background-color:currentcolor;mask:url("data:image/svg+xml
|
|
11
|
+
@layer ful.components{:has(>ful-control-group>ful-dropdown){cursor:pointer;&[item-list] ful-control-group ful-badge{display:none}&>ful-control-group>ful-control{cursor:pointer;padding-left:5px;padding-right:2.25rem;overflow:hidden;&:after{content:"";position:absolute;top:50%;right:.75rem;width:16px;height:12px;translate:0 -50%;background-color:currentcolor;mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e") center/16px 12px no-repeat;pointer-events:none}&>ful-badge+ful-badge{margin-left:3px}}&[multiple]:not([item-list])>ful-control-group>ful-control{flex-wrap:wrap;column-gap:3px;&>ful-badge+ful-badge{margin-left:0}}&:disabled,&[readonly]{cursor:default}&:disabled>ful-control-group>ful-control,&[readonly]>ful-control-group>ful-control{cursor:default;padding-right:5px;&:after{display:none}}&>ful-control-group>ful-control>input{flex:1 1 auto;width:1em;min-width:1em;margin:0;padding:.375rem 0 .375rem 7px;font-size:inherit;font-family:inherit;line-height:1.5;color:var(--ful-color);background-color:transparent;border:0;outline:0}}ful-dropdown{--ful-dropdown-color:var(--ful-color);--ful-dropdown-selected-bg:var(--ful-selected-bg);--ful-dropdown-active-bg:var(--ful-active-bg);--ful-dropdown-border-width:var(--ful-border-width);--ful-dropdown-border-radius:var(--ful-border-radius);--ful-dropdown-border-color:var(--ful-border-color);--ful-dropdown-background-color:var(--ful-bg);--ful-dropdown-scrollbar-width:var(--ful-scrollbar-width);--ful-dropdown-scrollbar-border-width:var(--ful-scrollbar-border-width);--ful-dropdown-scrollbar-bg:var(--ful-scrollbar-bg);--ful-dropdown-scrollbar-thumb-bg:var(--ful-scrollbar-thumb-bg);--ful-dropdown-max-width:30rem;padding:.5rem 0;margin:.3rem 0 0;background-color:var(--ful-dropdown-background-color);background-clip:padding-box;border:var(--ful-dropdown-border-width) solid var(--ful-dropdown-border-color);border-radius:var(--ful-dropdown-border-radius);&:popover-open{display:block;inset:auto;top:anchor(bottom);left:anchor(left);position-try-fallbacks:flip-block;min-width:anchor-size(width);max-width:var(--ful-dropdown-max-width)}ful-empty{padding:.5rem .75rem;color:var(--ful-dropdown-color);text-align:start}menu{height:auto;max-height:200px;overflow-y:auto;padding:0;margin:0;&::-webkit-scrollbar{width:var(--ful-dropdown-scrollbar-width)}&::-webkit-scrollbar-track{background-color:var(--ful-dropdown-scrollbar-bg);border-radius:var(--ful-dropdown-scrollbar-width)}&::-webkit-scrollbar-thumb{border-radius:var(--ful-dropdown-scrollbar-width);background-color:var(--ful-dropdown-active-bg);border:var(--ful-dropdown-scrollbar-border-width) solid var(--ful-dropdown-scrollbar-bg)}}li{padding:.5rem .75rem;color:var(--ful-dropdown-color);display:block;border:0;cursor:pointer}li[aria-disabled=true]{color:var(--ful-muted-color);cursor:default}li:not([aria-disabled=true]):hover,li[selected]{color:var(--ful-dropdown-color);background-color:var(--ful-dropdown-selected-bg)}li[picked]{background-color:color-mix(in srgb,var(--ful-dropdown-active-bg) 12%,transparent);box-shadow:inset .2rem 0 0 var(--ful-dropdown-active-bg)}li:not([aria-disabled=true]):active{color:var(--ful-active-color);background-color:var(--ful-dropdown-active-bg)}}}
|
|
12
12
|
@layer ful.components{:has(>fieldset>ful-radio-list){--ful-radio-group-label-border-color:var(--ful-border-color);--ful-radio-group-label-bg:inherit;--ful-radio-group-label-checked-border-color:var(--ful-accent-ink);--ful-radio-group-label-checked-bg:light-dark(#eefbfb, var(--ful-selected-bg));--ful-radio-group-label-disabled-border-color:var(--ful-border-color);--ful-radio-group-label-disabled-bg:var(--ful-disabled-bg);--ful-radio-group-active-bg:var(--ful-active-bg);display:block;&>fieldset{display:block;min-width:0;width:100%;margin:0;padding:0;border:0;&>legend{font-size:16px;width:100%;padding:0;line-height:inherit}}&.horizontal>fieldset>ful-radio-list{gap:16px;grid-template-columns:1fr 1fr}&:invalid>fieldset>ful-radio-list label{border-color:var(--ful-invalid-border-color)}}ful-radio-list{display:grid;gap:10px;grid-template-columns:1fr;& label{display:flex;align-items:center;border:1px solid var(--ful-radio-group-label-border-color);background-color:var(--ful-radio-group-label-bg);border-radius:4px;padding:8px 10px;height:100%;cursor:pointer;&>div{flex:1}}& label:has(input[type=radio]:checked){background-color:var(--ful-radio-group-label-checked-bg);border-color:var(--ful-radio-group-label-checked-border-color)}& label:has(input[type=radio]:disabled){background-color:var(--ful-radio-group-label-disabled-bg);border-color:var(--ful-radio-group-label-disabled-border-color)}& input[type=radio]{margin-left:8px;margin-right:12px;height:16px;width:16px;vertical-align:text-bottom;accent-color:var(--ful-accent-ink)}& input[type=radio]:focus-visible{outline:0}& label:has(input[type=radio]:focus-visible){border-color:var(--ful-focus-border-color);box-shadow:var(--ful-focus-box-shadow)}}ful-radio{display:none}}
|
|
13
13
|
@layer ful.components{:has(>ful-choice){display:block}.ful-stacked>ful-choice{display:grid;grid-template-columns:max-content auto;grid-template-rows:auto minmax(calc(var(--ful-controls-height) + 2 * var(--ful-controls-border-width)),auto);justify-content:start;align-items:center;column-gap:.5rem;row-gap:0;padding:0;&>label{grid-row:1;grid-column:1;display:inline-block;flex:none;margin:0 .25rem .5rem 0;color:var(--ful-color)}&>input[type=checkbox]{grid-row:2;grid-column:1/-1;justify-self:start;font-size:1.25em}}}
|
|
14
|
-
@layer ful.components{ful-spinner{display:inline-flex;align-items:center;gap:.375rem;&:after{content:"";flex:0 0 auto;display:inline-block;border-right-color:transparent}@media
|
|
14
|
+
@layer ful.components{ful-spinner{display:inline-flex;align-items:center;gap:.375rem;&:after{content:"";flex:0 0 auto;display:inline-block;border-right-color:transparent}@media(prefers-reduced-motion:reduce){&:after{animation:none}}&.centered{display:flex;align-items:center;justify-content:center}&.big{--ful-spinner-icon-width:2rem;--ful-spinner-icon-height:2rem;--ful-spinner-icon-border-width:0.25rem}&.bigger{--ful-spinner-icon-width:4rem;--ful-spinner-icon-height:4rem;--ful-spinner-icon-border-width:0.5rem}&.backdrop{--ful-spinner-icon-width:4rem;--ful-spinner-icon-height:4rem;--ful-spinner-icon-border-width:0.5rem;z-index:2000;position:fixed;inset:0;margin:auto;width:fit-content;height:fit-content;display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem;border-radius:1rem;text-align:center;background-color:var(--ful-bg);box-shadow:0 0 0 100vmax hsla(0,0%,65.5%,.8);&:before{content:"";position:fixed;inset:0;z-index:-1}&:after{order:-1}}}body:has(ful-spinner.backdrop:not([hidden])){overflow:hidden}@keyframes ful-spinner-border{to{transform:rotate(1turn)}}}
|
|
15
15
|
@layer ful.components{ful-empty{display:block;padding:2rem 1rem;color:var(--ful-color);text-align:center;opacity:.65;&>ful-icon{display:block;width:2rem;height:2rem;margin:0 auto .5rem}&>:first-child{margin-block-start:0}&>:last-child{margin-block-end:0}}}
|
|
16
|
-
@layer ful.components{:has(>ful-table-wrapper){display:block;& th{text-align:start}&[aria-busy=true] tbody:not([data-ref]){opacity:.6;pointer-events:none}& tbody[data-ref=empty],& tbody[data-ref=feedback],& tbody[data-ref=initial],& tbody[data-ref=loading]{height:360px;& td{& p{margin-top:1rem}}}& td[colspan]:has(>ful-empty){padding:0}}:has(>ful-table-wrapper).ful-fill{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;&>ful-table-wrapper{flex:1 1 auto;min-height:0;overflow:auto}&>:not(ful-table-wrapper){flex:none}}ful-sorter{display:inline-flex;align-items:baseline;gap:.25em;cursor:pointer;&:not(:state(rendered)){visibility:hidden}&:focus-visible{outline:0;box-shadow:var(--ful-focus-box-shadow)}&:before{content:"";display:inline-block;flex:0 0 auto;width:1em;height:1em;mask-image:url(
|
|
17
|
-
@layer ful.components{ful-affix:has(>button[data-ref=operator],>button[data-ref=sensitivity]){min-width:4rem;&>button[data-ref=operator]{min-width:4rem}&>button[data-ref=sensitivity]{min-width:2.5rem}&>button[data-ref=operator]:hover,&>button[data-ref=sensitivity]:hover{color:var(--ful-active-color);background-color:var(--ful-active-bg)}&>button[data-ref=operator]:focus,&>button[data-ref=sensitivity]:focus{outline:0}&>button[data-ref=operator]:focus-visible,&>button[data-ref=sensitivity]:focus-visible{background-color:color-mix(in srgb,var(--ful-active-bg) 20%,transparent)}&>button[data-ref=operator]:disabled,&>button[data-ref=sensitivity]:disabled{cursor:default;opacity:.5}}ful-affix:has(>button[hidden]):not(:has(>button:not([hidden]))){display:none}ful-control-group>button[data-ref=value]{position:relative;display:flex;align-items:center;justify-content:flex-start;flex:1 1 auto;min-width:0;padding:.375rem 2rem .375rem .75rem;font-size:inherit;font-family:inherit;line-height:1.5;color:var(--ful-color);white-space:nowrap;text-align:left;background-color:transparent;border:0;border-radius:0;cursor:pointer;&:after{content:"";position:absolute;top:50%;right:.75rem;width:16px;height:12px;translate:0 -50%;background-color:currentcolor;mask:url("data:image/svg+xml
|
|
18
|
-
@layer ful.components{.ful-tip,button:has(+ful-note){display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;font:inherit;position:relative;top:calc(.5ex - .5cap);width:1.5rem;height:1.5rem;padding:0;border:0;border-radius:50%;background:none;color:var(--ful-muted-color);cursor:pointer;& ful-icon{width:1rem;height:1rem}&:hover{color:var(--ful-accent-ink);background-color:color-mix(in srgb,var(--ful-active-bg) 12%,transparent)}&:focus-visible{outline:0;box-shadow:var(--ful-focus-box-shadow)}}.ful-note,ful-note{--ful-note-gap:0.5rem;--ful-note-callout-size:0.5rem;--ful-note-callout-edge:calc(var(--ful-border-radius) + var(--ful-note-callout-size));display:none;max-width:20rem;padding:.5rem .75rem;color:var(--ful-color);background-color:var(--ful-bg);background-clip:padding-box;border:var(--ful-border-width) solid var(--ful-border-color);border-radius:var(--ful-border-radius);font-size:.875rem;font-weight:400;font-style:normal;text-align:start;white-space:normal;margin:var(--ful-note-gap) 0 0;&>:first-child{margin-block-start:0}&>:last-child{margin-block-end:0}&:popover-open{display:block;overflow:visible}&:popover-open:after{content:"";position:absolute;width:var(--ful-note-callout-size);height:var(--ful-note-callout-size);background-color:inherit;border:0 solid var(--ful-border-color);rotate:45deg}&:popover-open:after{top:calc(
|
|
19
|
-
@layer ful.components{dialog.ful-dialog{width:var(--ful-dialog-width,min(90vw,32rem));padding:0;border:var(--ful-border-width) solid var(--ful-border-color);border-radius:var(--ful-border-radius);background-color:var(--ful-bg);color:var(--ful-color);&::backdrop{background-color:var(--ful-backdrop-color)}& :has(.ful-dialog-body),&[open]{display:flex;flex-direction:column;min-height:0}& :has(.ful-dialog-body){flex:1 1 auto}& .ful-dialog-header,&>header{flex:none;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:1rem 1.25rem .5rem;& h2{margin:0;font-size:1.125rem;margin-inline-end:auto}&>:not(h2,button[data-ref=close]){flex:0 0 auto}&>button[data-ref=close]:only-child{margin-inline-start:auto}}& .ful-dialog-body,&>[data-ref=body]{flex:1 1 auto;min-height:0;overflow-y:auto;padding:.5rem 1.25rem}& .ful-dialog-body .ful-dialog-footer:last-child{position:sticky;z-index:2;inset-block-end:-.5rem;margin-block-end:-.5rem;background-color:var(--ful-bg)}&>[data-ref=loading]{display:grid;place-items:center;padding:2rem 1.25rem}&>[data-ref=error]{margin:.5rem 1.25rem}&>footer.ful-dialog-footer:empty{display:none}& .ful-dialog-body :is(.ful-dialog-header,.ful-dialog-footer){padding-inline:0}& .ful-dialog-footer,&>footer{flex:none;display:flex;justify-content:flex-end;gap:.5rem;padding:.5rem 1.25rem 1rem;&>button:not(.ful-button){padding:.375rem .75rem;height:var(--ful-controls-height);border:var(--ful-controls-border-width) solid var(--ful-controls-border-color);border-radius:var(--ful-controls-border-radius);background-color:var(--ful-selected-bg);color:var(--ful-color);cursor:pointer;&:hover{background-color:var(--ful-active-bg);color:var(--ful-active-color)}&:focus-visible{outline:0;box-shadow:var(--ful-focus-box-shadow)}}}}}
|
|
20
|
-
@layer ful.components{dialog.ful-drawer{position:fixed;inset-block:0;inset-inline-start:auto;inset-inline-end:0;width:var(--ful-drawer-width,min(90vw,28rem));max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:0;border:var(--ful-border-width) solid var(--ful-border-color);border-start-start-radius:var(--ful-border-radius);border-end-start-radius:var(--ful-border-radius);background-color:var(--ful-bg);color:var(--ful-color);&::backdrop{background-color:var(--ful-backdrop-color)}&[open]{display:flex;flex-direction:column;animation:ful-drawer-slide-in .2s ease-out;&[closing]{animation:ful-drawer-slide-out .2s ease-in forwards}}&>header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:1rem 1.25rem .5rem;& h2{margin:0;font-size:1.125rem}}&>section{padding:.5rem 1.25rem 1rem;overflow-y:auto;&[data-ref=content]{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;&>ful-form:has(>form>footer:last-child){display:flex;flex-direction:column;flex:1 1 auto}&>footer:last-child,&>ful-form>form>footer:last-child{position:sticky;z-index:2;inset-block-end:-1rem;margin-block:auto -1rem;padding-block-end:1rem;background-color:var(--ful-bg)}}&[data-ref=loading]{display:grid;place-items:center;flex-grow:1}&[data-ref=error]{margin:0 1.25rem}}&[placement=start]{inset-inline-end:auto;inset-inline-start:0;border-start-start-radius:0;border-end-start-radius:0;border-start-end-radius:var(--ful-border-radius);border-end-end-radius:var(--ful-border-radius);&[open]{animation-name:ful-drawer-slide-in-start;&[closing]{animation-name:ful-drawer-slide-out-start}}}&:dir(rtl)[open]{animation-name:ful-drawer-slide-in-start;&[closing]{animation-name:ful-drawer-slide-out-start}}&[placement=start]:dir(rtl)[open]{animation-name:ful-drawer-slide-in;&[closing]{animation-name:ful-drawer-slide-out}}@media
|
|
16
|
+
@layer ful.components{:has(>ful-table-wrapper){display:block;& th{text-align:start}&[aria-busy=true] tbody:not([data-ref]){opacity:.6;pointer-events:none}& tbody[data-ref=empty],& tbody[data-ref=feedback],& tbody[data-ref=initial],& tbody[data-ref=loading]{height:360px;& td{& p{margin-top:1rem}}}& td[colspan]:has(>ful-empty){padding:0}}:has(>ful-table-wrapper).ful-fill{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;&>ful-table-wrapper{flex:1 1 auto;min-height:0;overflow:auto}&>:not(ful-table-wrapper){flex:none}}ful-sorter{display:inline-flex;align-items:baseline;gap:.25em;cursor:pointer;&:not(:state(rendered)){visibility:hidden}&:focus-visible{outline:0;box-shadow:var(--ful-focus-box-shadow)}&:before{content:"";display:inline-block;flex:0 0 auto;width:1em;height:1em;mask-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path fill-rule='evenodd' d='M8 1a.5.5 0 0 1 .5.5v11.793l3.146-3.147a.5.5 0 0 1 .708.708l-4 4a.5.5 0 0 1-.708 0l-4-4a.5.5 0 0 1 .708-.708L7.5 13.293V1.5A.5.5 0 0 1 8 1'/></svg>")}&:not([order]):before{opacity:.35}&[order=desc]:before{mask-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path fill-rule='evenodd' d='M8 15a.5.5 0 0 0 .5-.5V2.707l3.146 3.147a.5.5 0 0 0 .708-.708l-4-4a.5.5 0 0 0-.708 0l-4 4a.5.5 0 1 0 .708.708L7.5 2.707V14.5a.5.5 0 0 0 .5.5'/></svg>")}}:has(>ful-pagination-bar){display:block;margin-top:auto}ful-pagination-bar{display:block;user-select:none;& ul{display:flex;align-items:center;gap:.25rem;margin:.5rem 0 0;padding:0;list-style:none}& li[data-ref=index]{margin-left:0;margin-right:auto;color:var(--ful-color)}& li[data-ref=reload] button{border:0;font-size:1.25rem}& button{display:flex;align-items:center;justify-content:center;min-width:2.25rem;height:2.25rem;padding:0 .5rem;font-size:inherit;font-family:inherit;line-height:1.5;color:var(--ful-color);text-decoration:none;background-color:transparent;border:var(--ful-border-width) solid var(--ful-border-color);border-radius:var(--ful-border-radius);cursor:pointer}& button:hover{background-color:var(--ful-selected-bg)}& button:disabled{opacity:.5;pointer-events:none}& button:focus-visible{outline:0;box-shadow:var(--ful-focus-box-shadow)}& button[aria-current=page]{color:var(--ful-active-color);background-color:var(--ful-active-bg);border-color:var(--ful-active-bg)}}ful-table-wrapper{& table{width:100%;margin-bottom:1rem;border-collapse:separate;border-spacing:0}& caption,& table{color:var(--ful-color)}& caption{padding:.5rem 0;text-align:left;caption-side:bottom}& :is(th,td){padding:.5rem;vertical-align:top;border-bottom:var(--ful-border-width) solid var(--ful-border-color)}& thead th{position:sticky;inset-block-start:0;z-index:1;background-color:var(--ful-bg);border-bottom-width:calc(2 * var(--ful-border-width))}& td[colspan]{padding:1.5rem;text-align:center;vertical-align:middle}& tbody[data-ref=feedback]{&>tr>td>div{padding:1rem;color:var(--ful-error-color);background-color:var(--ful-error-bg);border:var(--ful-border-width) solid var(--ful-error-border-color);border-radius:var(--ful-border-radius)}& p{margin:0 0 .5rem;font-weight:600}}}}
|
|
17
|
+
@layer ful.components{ful-affix:has(>button[data-ref=operator],>button[data-ref=sensitivity]){min-width:4rem;&>button[data-ref=operator]{min-width:4rem}&>button[data-ref=sensitivity]{min-width:2.5rem}&>button[data-ref=operator]:hover,&>button[data-ref=sensitivity]:hover{color:var(--ful-active-color);background-color:var(--ful-active-bg)}&>button[data-ref=operator]:focus,&>button[data-ref=sensitivity]:focus{outline:0}&>button[data-ref=operator]:focus-visible,&>button[data-ref=sensitivity]:focus-visible{background-color:color-mix(in srgb,var(--ful-active-bg) 20%,transparent)}&>button[data-ref=operator]:disabled,&>button[data-ref=sensitivity]:disabled{cursor:default;opacity:.5}}ful-affix:has(>button[hidden]):not(:has(>button:not([hidden]))){display:none}ful-control-group>button[data-ref=value]{position:relative;display:flex;align-items:center;justify-content:flex-start;flex:1 1 auto;min-width:0;padding:.375rem 2rem .375rem .75rem;font-size:inherit;font-family:inherit;line-height:1.5;color:var(--ful-color);white-space:nowrap;text-align:left;background-color:transparent;border:0;border-radius:0;cursor:pointer;&:after{content:"";position:absolute;top:50%;right:.75rem;width:16px;height:12px;translate:0 -50%;background-color:currentcolor;mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e") center/16px 12px no-repeat;pointer-events:none}}ful-control-group>button[data-ref=value]:focus{outline:0}ful-control-group>button[data-ref=value]:disabled{cursor:default;opacity:.5;&:after{display:none}}ful-affix:has(>button[data-ref=operator],>button[data-ref=sensitivity])>ul[popover],ful-control-group>button[data-ref=value]+ul[popover]{min-width:6rem;list-style:none;&>li>a{display:flex;align-items:center;gap:.5rem;padding:.25rem 1rem;color:var(--ful-color);text-decoration:none;cursor:pointer;&>span:first-child{flex:0 0 2.25em;text-align:center}}&>li>a[aria-checked=true]{background-color:color-mix(in srgb,var(--ful-active-bg) 12%,transparent);box-shadow:inset .2rem 0 0 var(--ful-active-bg)}&>li>a:hover{background-color:var(--ful-selected-bg)}&>li>a:focus-visible{background-color:var(--ful-selected-bg);outline:0}&>li>a:active{color:var(--ful-active-color);background-color:var(--ful-active-bg)}}}
|
|
18
|
+
@layer ful.components{.ful-tip,button:has(+ful-note){display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;font:inherit;position:relative;top:calc(.5ex - .5cap);width:1.5rem;height:1.5rem;padding:0;border:0;border-radius:50%;background:none;color:var(--ful-muted-color);cursor:pointer;& ful-icon{width:1rem;height:1rem}&:hover{color:var(--ful-accent-ink);background-color:color-mix(in srgb,var(--ful-active-bg) 12%,transparent)}&:focus-visible{outline:0;box-shadow:var(--ful-focus-box-shadow)}}.ful-note,ful-note{--ful-note-gap:0.5rem;--ful-note-callout-size:0.5rem;--ful-note-callout-edge:calc(var(--ful-border-radius) + var(--ful-note-callout-size));display:none;max-width:20rem;padding:.5rem .75rem;color:var(--ful-color);background-color:var(--ful-bg);background-clip:padding-box;border:var(--ful-border-width) solid var(--ful-border-color);border-radius:var(--ful-border-radius);font-size:.875rem;font-weight:400;font-style:normal;text-align:start;white-space:normal;margin:var(--ful-note-gap) 0 0;&>:first-child{margin-block-start:0}&>:last-child{margin-block-end:0}&:popover-open{display:block;overflow:visible}&:popover-open:after{content:"";position:absolute;width:var(--ful-note-callout-size);height:var(--ful-note-callout-size);background-color:inherit;border:0 solid var(--ful-border-color);rotate:45deg}&:popover-open:after{top:calc(var(--ful-note-callout-size) / -2 - var(--ful-border-width) / 2);left:clamp(var(--ful-note-callout-edge),var(--ful-note-callout-inline,50%),100% - var(--ful-note-callout-edge));translate:-50% 0;border-block-start-width:var(--ful-border-width);border-inline-start-width:var(--ful-border-width)}&[placement=top]:popover-open{margin:0 0 var(--ful-note-gap);&:after{top:auto;bottom:calc(var(--ful-note-callout-size) / -2 - var(--ful-border-width) / 2);border-block-start-width:0;border-inline-start-width:0;border-block-end-width:var(--ful-border-width);border-inline-end-width:var(--ful-border-width)}}&[placement=right]:popover-open{margin:0 0 0 var(--ful-note-gap);&:after{top:clamp(var(--ful-note-callout-edge),var(--ful-note-callout-block,50%),100% - var(--ful-note-callout-edge));left:calc(var(--ful-note-callout-size) / -2 - var(--ful-border-width) / 2);translate:0 -50%;border-block-start-width:0;border-inline-start-width:var(--ful-border-width);border-block-end-width:var(--ful-border-width)}}&[placement=left]:popover-open{margin:0 var(--ful-note-gap) 0 0;&:after{top:clamp(var(--ful-note-callout-edge),var(--ful-note-callout-block,50%),100% - var(--ful-note-callout-edge));left:auto;right:calc(var(--ful-note-callout-size) / -2 - var(--ful-border-width) / 2);translate:0 -50%;border-block-start-width:var(--ful-border-width);border-inline-end-width:var(--ful-border-width);border-inline-start-width:0}}}}
|
|
19
|
+
@layer ful.components{dialog.ful-dialog{width:var(--ful-dialog-width,calc(min(90vw,32rem)));padding:0;border:var(--ful-border-width) solid var(--ful-border-color);border-radius:var(--ful-border-radius);background-color:var(--ful-bg);color:var(--ful-color);&::backdrop{background-color:var(--ful-backdrop-color)}& :has(.ful-dialog-body),&[open]{display:flex;flex-direction:column;min-height:0}& :has(.ful-dialog-body){flex:1 1 auto}& .ful-dialog-header,&>header{flex:none;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:1rem 1.25rem .5rem;& h2{margin:0;font-size:1.125rem;margin-inline-end:auto}&>:not(h2,button[data-ref=close]){flex:0 0 auto}&>button[data-ref=close]:only-child{margin-inline-start:auto}}& .ful-dialog-body,&>[data-ref=body]{flex:1 1 auto;min-height:0;overflow-y:auto;padding:.5rem 1.25rem}& .ful-dialog-body .ful-dialog-footer:last-child{position:sticky;z-index:2;inset-block-end:-.5rem;margin-block-end:-.5rem;background-color:var(--ful-bg)}&>[data-ref=loading]{display:grid;place-items:center;padding:2rem 1.25rem}&>[data-ref=error]{margin:.5rem 1.25rem}&>footer.ful-dialog-footer:empty{display:none}& .ful-dialog-body :is(.ful-dialog-header,.ful-dialog-footer){padding-inline:0}& .ful-dialog-footer,&>footer{flex:none;display:flex;justify-content:flex-end;gap:.5rem;padding:.5rem 1.25rem 1rem;&>button:not(.ful-button){padding:.375rem .75rem;height:var(--ful-controls-height);border:var(--ful-controls-border-width) solid var(--ful-controls-border-color);border-radius:var(--ful-controls-border-radius);background-color:var(--ful-selected-bg);color:var(--ful-color);cursor:pointer;&:hover{background-color:var(--ful-active-bg);color:var(--ful-active-color)}&:focus-visible{outline:0;box-shadow:var(--ful-focus-box-shadow)}}}}}
|
|
20
|
+
@layer ful.components{dialog.ful-drawer{position:fixed;inset-block:0;inset-inline-start:auto;inset-inline-end:0;width:var(--ful-drawer-width,calc(min(90vw,28rem)));max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:0;border:var(--ful-border-width) solid var(--ful-border-color);border-start-start-radius:var(--ful-border-radius);border-end-start-radius:var(--ful-border-radius);background-color:var(--ful-bg);color:var(--ful-color);&::backdrop{background-color:var(--ful-backdrop-color)}&[open]{display:flex;flex-direction:column;animation:ful-drawer-slide-in .2s ease-out;&[closing]{animation:ful-drawer-slide-out .2s ease-in forwards}}&>header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:1rem 1.25rem .5rem;& h2{margin:0;font-size:1.125rem}}&>section{padding:.5rem 1.25rem 1rem;overflow-y:auto;&[data-ref=content]{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;&>ful-form:has(>form>footer:last-child){display:flex;flex-direction:column;flex:1 1 auto}&>footer:last-child,&>ful-form>form>footer:last-child{position:sticky;z-index:2;inset-block-end:-1rem;margin-block:auto -1rem;padding-block-end:1rem;background-color:var(--ful-bg)}}&[data-ref=loading]{display:grid;place-items:center;flex-grow:1}&[data-ref=error]{margin:0 1.25rem}}&[placement=start]{inset-inline-end:auto;inset-inline-start:0;border-start-start-radius:0;border-end-start-radius:0;border-start-end-radius:var(--ful-border-radius);border-end-end-radius:var(--ful-border-radius);&[open]{animation-name:ful-drawer-slide-in-start;&[closing]{animation-name:ful-drawer-slide-out-start}}}&:dir(rtl)[open]{animation-name:ful-drawer-slide-in-start;&[closing]{animation-name:ful-drawer-slide-out-start}}&[placement=start]:dir(rtl)[open]{animation-name:ful-drawer-slide-in;&[closing]{animation-name:ful-drawer-slide-out}}@media(max-width:30rem){width:var(--ful-drawer-width,100vw);&,&[placement=start]{border-radius:0}}}@keyframes ful-drawer-slide-in{0%{transform:translateX(1rem);opacity:0}}@keyframes ful-drawer-slide-in-start{0%{transform:translateX(-1rem);opacity:0}}@keyframes ful-drawer-slide-out{to{transform:translateX(1rem);opacity:0}}@keyframes ful-drawer-slide-out-start{to{transform:translateX(-1rem);opacity:0}}@media(prefers-reduced-motion:reduce){dialog.ful-drawer[open]{animation:none}}}
|
|
21
21
|
@layer ful.components{ful-affix:has(>button[data-ref=operator],>button[data-ref=sensitivity])>ul[popover],ful-control-group>button[data-ref=value]+ul[popover],ful-menu[popover]{inset:auto;top:anchor(bottom);left:anchor(left);position-try-fallbacks:flip-block;margin:.3rem 0 0;padding:.5rem 0;color:var(--ful-color);background-color:var(--ful-bg);background-clip:padding-box;border:var(--ful-border-width) solid var(--ful-border-color);border-radius:var(--ful-border-radius);&:popover-open{display:block}}ful-menu[popover]{min-width:8rem;&>a,&>button{display:flex;align-items:center;gap:.5rem;width:100%;padding:.25rem 1rem;font:inherit;color:var(--ful-color);text-align:start;text-decoration:none;cursor:pointer;background:none;border:0}&>a:focus,&>a:hover,&>button:focus,&>button:hover{background-color:var(--ful-selected-bg);outline:0}&>a:active,&>button:active{color:var(--ful-active-color);background-color:var(--ful-active-bg)}&>button:disabled{cursor:default;opacity:.5;background:none}&>hr{margin:.5rem 0;border:0;border-top:var(--ful-border-width) solid var(--ful-border-color)}}}
|
|
22
|
-
@layer ful.components{ful-toasts:not(:has(>ful-toast)){display:none}:has(>ful-toast){position:fixed;inset-block:1rem auto;inset-inline:auto 1rem;overflow:visible;margin:0;padding:0;border:0;background:transparent;color:inherit;display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;max-width:var(--ful-toasts-max-width,min(90vw,24rem));&>ful-toast{display:flex;align-items:flex-start;gap:.5rem;padding:.625rem .75rem;border:var(--ful-controls-border-width) solid var(--ful-border-color);border-radius:var(--ful-controls-border-radius);background-color:var(--ful-bg);color:var(--ful-color);white-space:pre-line;animation:ful-toast-in .2s ease-out;&>div:first-child{flex-grow:1}&>button{flex:0 0 auto;width:1.25rem;height:1.25rem;color:inherit}&>button.ful-toast-action{width:auto;align-self:center;padding:0 .375rem;font-weight:600;color:var(--ful-accent-ink)}&.success{border-color:var(--ful-accent-ink);color:var(--ful-accent-ink)}&.warning{border-color:var(--ful-warning-border-color);background-color:var(--ful-warning-bg);color:var(--ful-warning-color)}&.error{border-color:var(--ful-error-border-color);background-color:var(--ful-error-bg);color:var(--ful-error-color)}&.ful-toast-out{animation:ful-toast-out .2s ease-in forwards}}}@keyframes ful-toast-in{0%{transform:translateY(-.5rem);opacity:0}}@keyframes ful-toast-out{to{transform:translateY(-.5rem);opacity:0}}@media
|
|
23
|
-
@layer ful.components{:has(>ful-tablist){display:block;position:relative;&>[role=tabpanel]{padding-block-start:1rem}}ful-tablist{display:flex;flex-shrink:0;flex-wrap:nowrap;gap:.25rem;overflow-x:auto;scrollbar-width:none;border-block-end:var(--ful-border-width) solid var(--ful-border-color);&::-webkit-scrollbar{display:none}&>button{flex:0 0 auto;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:.375rem;min-height:var(--ful-controls-height);padding:.375rem .75rem;font:inherit;line-height:1.5;color:var(--ful-muted-color);background:none;border:var(--ful-border-width) solid transparent;border-start-start-radius:var(--ful-border-radius);border-start-end-radius:var(--ful-border-radius);cursor:pointer;&:hover{color:var(--ful-color);background-color:var(--ful-selected-bg)}&:focus-visible{outline:0;box-shadow:inset var(--ful-focus-box-shadow)}&[aria-selected=true]{color:var(--ful-color);background-color:var(--ful-bg);border-color:var(--ful-border-color) var(--ful-border-color) transparent;font-weight:600}}}.ful-tabs-scroll{position:absolute;inset-block-start:0;z-index:1;display:inline-flex;align-items:center;inline-size:2.5rem;padding:0;color:var(--ful-color);border:0;cursor:pointer;&[data-ref=scroll-start]{inset-inline-start:0;justify-content:start;background:linear-gradient(to right,var(--ful-tabs-scroll-bg,var(--ful-bg)) 55%,transparent)}&[data-ref=scroll-end]{inset-inline-end:0;justify-content:end;background:linear-gradient(to left,var(--ful-tabs-scroll-bg,var(--ful-bg)) 55%,transparent)}&:hover{color:var(--ful-accent-ink)}}}
|
|
24
|
-
@layer ful.components{:has(>ful-accordion-group){display:block}ful-accordion-group{display:block;&>details{color:var(--ful-color);background-color:var(--ful-bg);border:var(--ful-border-width) solid var(--ful-border-color);border-radius:var(--ful-border-radius);&+details{margin-top:.5rem}&:has(>summary:focus-visible){border-color:var(--ful-focus-border-color);box-shadow:var(--ful-focus-box-shadow)}&>summary{display:flex;align-items:center;gap:.5rem;min-height:var(--ful-controls-height);padding:.375rem .75rem;font:inherit;line-height:1.5;cursor:pointer;list-style:none;outline:0;&::-webkit-details-marker{display:none}&:after{content:"";margin-inline-start:auto;flex:0 0 auto;width:1em;height:1em;background-color:currentcolor;mask-image:url(
|
|
22
|
+
@layer ful.components{ful-toasts:not(:has(>ful-toast)){display:none}:has(>ful-toast){position:fixed;inset-block:1rem auto;inset-inline:auto 1rem;overflow:visible;margin:0;padding:0;border:0;background:transparent;color:inherit;display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;max-width:var(--ful-toasts-max-width,calc(min(90vw,24rem)));&>ful-toast{display:flex;align-items:flex-start;gap:.5rem;padding:.625rem .75rem;border:var(--ful-controls-border-width) solid var(--ful-border-color);border-radius:var(--ful-controls-border-radius);background-color:var(--ful-bg);color:var(--ful-color);white-space:pre-line;animation:ful-toast-in .2s ease-out;&>div:first-child{flex-grow:1}&>button{flex:0 0 auto;width:1.25rem;height:1.25rem;color:inherit}&>button.ful-toast-action{width:auto;align-self:center;padding:0 .375rem;font-weight:600;color:var(--ful-accent-ink)}&.success{border-color:var(--ful-accent-ink);color:var(--ful-accent-ink)}&.warning{border-color:var(--ful-warning-border-color);background-color:var(--ful-warning-bg);color:var(--ful-warning-color)}&.error{border-color:var(--ful-error-border-color);background-color:var(--ful-error-bg);color:var(--ful-error-color)}&.ful-toast-out{animation:ful-toast-out .2s ease-in forwards}}}@keyframes ful-toast-in{0%{transform:translateY(-.5rem);opacity:0}}@keyframes ful-toast-out{to{transform:translateY(-.5rem);opacity:0}}@media(prefers-reduced-motion:reduce){:has(>ful-toast)>ful-toast{animation:none}}}
|
|
23
|
+
@layer ful.components{:has(>ful-tablist){display:block;position:relative;&>[role=tabpanel]{padding-block-start:1rem}}ful-tablist{display:flex;flex-shrink:0;flex-wrap:nowrap;gap:.25rem;overflow-x:auto;scrollbar-width:none;border-block-end:var(--ful-border-width) solid var(--ful-border-color);&::-webkit-scrollbar{display:none}&>button{flex:0 0 auto;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:.375rem;min-height:var(--ful-controls-height);padding:.375rem .75rem;font:inherit;line-height:1.5;color:var(--ful-muted-color);background:none;border:var(--ful-border-width) solid transparent;border-start-start-radius:var(--ful-border-radius);border-start-end-radius:var(--ful-border-radius);cursor:pointer;&:hover{color:var(--ful-color);background-color:var(--ful-selected-bg)}&:focus-visible{outline:0;box-shadow:inset var(--ful-focus-box-shadow)}&[aria-selected=true]{color:var(--ful-color);background-color:var(--ful-bg);border-color:var(--ful-border-color) var(--ful-border-color) transparent;font-weight:600}}}.ful-tabs-scroll{position:absolute;inset-block-start:0;z-index:1;display:inline-flex;align-items:center;inline-size:2.5rem;padding:0;color:var(--ful-color);border:0;cursor:pointer;&[data-ref=scroll-start]{inset-inline-start:0;justify-content:start;background:linear-gradient(to right,var(--ful-tabs-scroll-bg,var(--ful-bg)) 55%,transparent)}&[data-ref=scroll-end]{inset-inline-end:0;justify-content:end;background:linear-gradient(to left,var(--ful-tabs-scroll-bg,var(--ful-bg)) 55%,transparent)}&:dir(rtl){&[data-ref=scroll-start]{background-image:linear-gradient(to left,var(--ful-tabs-scroll-bg,var(--ful-bg)) 55%,transparent)}&[data-ref=scroll-end]{background-image:linear-gradient(to right,var(--ful-tabs-scroll-bg,var(--ful-bg)) 55%,transparent)}&>ful-icon{scale:-1 1}}&:hover{color:var(--ful-accent-ink)}}}
|
|
24
|
+
@layer ful.components{:has(>ful-accordion-group){display:block}ful-accordion-group{display:block;&>details{color:var(--ful-color);background-color:var(--ful-bg);border:var(--ful-border-width) solid var(--ful-border-color);border-radius:var(--ful-border-radius);&+details{margin-top:.5rem}&:has(>summary:focus-visible){border-color:var(--ful-focus-border-color);box-shadow:var(--ful-focus-box-shadow)}&>summary{display:flex;align-items:center;gap:.5rem;min-height:var(--ful-controls-height);padding:.375rem .75rem;font:inherit;line-height:1.5;cursor:pointer;list-style:none;outline:0;&::-webkit-details-marker{display:none}&:after{content:"";margin-inline-start:auto;flex:0 0 auto;width:1em;height:1em;background-color:currentcolor;mask-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/></svg>");mask-repeat:no-repeat;mask-position:center;mask-size:contain;transition:rotate .2s ease-out;@media(prefers-reduced-motion:reduce){transition:none}}}&[open]>summary:after{rotate:180deg}&>:not(summary){padding:.5rem .75rem .75rem}}}}
|
|
25
25
|
@layer ful.components{:has(>ful-steps){display:flex;flex-direction:column;&>section:not([aria-current=step]){display:none}}ful-steps{display:block;& ol{display:flex;flex-wrap:wrap;margin:0 0 1rem;padding:0;list-style:none}& li:not([aria-current=step]){display:none}& li[aria-current=step]{display:flex;align-items:center;flex:0 1 auto;min-height:var(--ful-controls-height);padding:.375rem .5rem;font-weight:700;color:var(--ful-accent-ink)}}ful-wizard{&[progress=timeline]{& ful-steps li{display:flex;justify-content:center;flex:1 1 auto;min-width:min(100%,8rem);text-align:center;color:var(--ful-accent-ink);border-block-end:calc(2 * var(--ful-border-width)) solid var(--ful-accent-ink)}& ful-steps li[aria-current=step]~li{color:color-mix(in srgb,var(--ful-color) 65%,var(--ful-bg));border-block-end-color:var(--ful-border-color)}}&[progress=dots]{& ful-steps ol{gap:.375rem;margin-block-end:1rem}& ful-steps li{display:block;flex:0 0 auto;min-width:0;min-height:0;width:.5rem;height:.5rem;padding:0;font-size:0;border-radius:50%;background-color:var(--ful-accent-ink)}& ful-steps li[aria-current=step]{background-color:var(--ful-active-bg);box-shadow:0 0 0 .125rem color-mix(in srgb,var(--ful-active-bg) 35%,transparent)}& ful-steps li[aria-current=step]~li{background-color:var(--ful-border-color)}}&[progress=none]{& ful-steps{display:none}}}}
|
|
26
26
|
@layer ful.hidden{[hidden]{display:none}.ful-sr-label>fieldset>legend,.ful-sr-label>ful-choice>label,.ful-sr-label>label,.ful-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}}
|
|
27
27
|
/*# sourceMappingURL=fml.css.map */
|