Automated release build for version: 1.0.0

This commit is contained in:
github-actions 2025-05-08 23:23:21 +00:00
parent 195f9dbafc
commit 6b14d2b9ce
127 changed files with 270 additions and 14040 deletions

View file

@ -0,0 +1 @@
/*! tailwindcss v4.1.2 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){[data-v-0c582c8a],[data-v-0c582c8a]:before,[data-v-0c582c8a]:after,[data-v-0c582c8a]::backdrop{--tw-border-style:solid;--tw-duration:initial;--tw-ease:initial}}}.accordion[data-v-0c582c8a]{display:grid}.accordion header[data-v-0c582c8a]{cursor:pointer;padding-inline:calc(var(--spacing,.25rem)*4);padding-block:calc(var(--spacing,.25rem)*2);grid-template-columns:1fr auto;display:grid}.accordion .accordion__wrapper[data-v-0c582c8a]{border-block-style:var(--tw-border-style);--tw-duration:.3s;--tw-ease:var(--ease-in-out,cubic-bezier(.4,0,.2,1));transition-duration:.3s;transition-timing-function:var(--ease-in-out,cubic-bezier(.4,0,.2,1));border-block-width:1px;border-top-color:#0000;border-bottom-color:#fff9;grid-template-rows:0fr;display:grid}@supports (color:color-mix(in lab,red,red)){.accordion .accordion__wrapper[data-v-0c582c8a]{border-bottom-color:color-mix(in oklab,var(--color-white,#fff)60%,transparent)}}.accordion .accordion__wrapper .accordion__content[data-v-0c582c8a]{opacity:0;transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4,0,.2,1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));grid-template-rows:0fr;transition-delay:0s;display:grid;overflow:hidden}.accordion .accordion__wrapper.open[data-v-0c582c8a]{border-top-color:#fff3;grid-template-rows:1fr}@supports (color:color-mix(in lab,red,red)){.accordion .accordion__wrapper.open[data-v-0c582c8a]{border-top-color:color-mix(in oklab,var(--color-white,#fff)20%,transparent)}}.accordion .accordion__wrapper.open .accordion__content[data-v-0c582c8a]{opacity:1;grid-template-rows:1fr;transition-delay:.2s}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}

View file

@ -0,0 +1,12 @@
import{c as d,_,a as f,o as h,b as m,d as g,e as c,g as a,k as C,t as k,j as w,h as i,u as p,l as x,L as y,E as B}from"./index-oAtpp-VZ.js";/**
* @license @tabler/icons-vue v3.31.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/var I=d("outline","chevron-down","IconChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]);/**
* @license @tabler/icons-vue v3.31.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/var A=d("outline","chevron-up","IconChevronUp",[["path",{d:"M6 15l6 -6l6 6",key:"svg-0"}]]);const $={class:"accordion"},D={class:"accordion__content"},M={__name:"AccordionComp",props:{title:String,open:Boolean},emits:["onOpen","onClose","onToggle"],setup(l,{expose:u,emit:v}){const s=v;u({toggleAccordion:n});const o=l,e=f(!1);h(()=>{o.open&&n(o.open)}),m(()=>{o.open&&n(o.open)});function n(t=!1){t?(e.value=!0,s("onOpen")):(e.value=!1,s("onClose")),s("onToggle")}return(t,r)=>(c(),g("div",$,[a("header",{onClick:r[0]||(r[0]=O=>n(!e.value))},[a("h4",null,k(l.title),1),C(x,{variant:"ghost",size:"sm",class:"!px-1"},{default:w(()=>[e.value?(c(),i(p(A),{key:1})):(c(),i(p(I),{key:0}))]),_:1})]),a("section",{class:B(`accordion__wrapper ${e.value?"open":""}`)},[a("div",D,[y(t.$slots,"default",{},void 0,!0)])],2)]))}},U=_(M,[["__scopeId","data-v-0c582c8a"]]);export{U as A};
//# sourceMappingURL=AccordionComp-D0eDAM6d.js.map

View file

@ -0,0 +1 @@
{"version":3,"file":"AccordionComp-D0eDAM6d.js","sources":["../../ui/node_modules/@tabler/icons-vue/dist/esm/icons/IconChevronDown.mjs","../../ui/node_modules/@tabler/icons-vue/dist/esm/icons/IconChevronUp.mjs","../../ui/src/components/base/AccordionComp.vue"],"sourcesContent":["/**\n * @license @tabler/icons-vue v3.31.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createVueComponent from '../createVueComponent.mjs';\n\nvar IconChevronDown = createVueComponent(\"outline\", \"chevron-down\", \"IconChevronDown\", [[\"path\", { \"d\": \"M6 9l6 6l6 -6\", \"key\": \"svg-0\" }]]);\n\nexport { IconChevronDown as default };\n//# sourceMappingURL=IconChevronDown.mjs.map\n","/**\n * @license @tabler/icons-vue v3.31.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createVueComponent from '../createVueComponent.mjs';\n\nvar IconChevronUp = createVueComponent(\"outline\", \"chevron-up\", \"IconChevronUp\", [[\"path\", { \"d\": \"M6 15l6 -6l6 6\", \"key\": \"svg-0\" }]]);\n\nexport { IconChevronUp as default };\n//# sourceMappingURL=IconChevronUp.mjs.map\n","<!--\nMacrame is a program that enables the user to create keyboard macros and button panels. \nThe macros are saved as simple JSON files and can be linked to the button panels. The panels can \nbe created with HTML and CSS.\n\nCopyright (C) 2025 Jesse Malotaux\n\nThis program is free software: you can redistribute it and/or modify \nit under the terms of the GNU General Public License as published by \nthe Free Software Foundation, either version 3 of the License, or \n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, \nbut WITHOUT ANY WARRANTY; without even the implied warranty of \nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the \nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License \nalong with this program. If not, see <https://www.gnu.org/licenses/>.\n-->\n\n<template>\n <div class=\"accordion\">\n <header @click=\"toggleAccordion(!accordionOpen)\">\n <h4>{{ title }}</h4>\n <ButtonComp variant=\"ghost\" size=\"sm\" class=\"!px-1\">\n <IconChevronDown v-if=\"!accordionOpen\" />\n <IconChevronUp v-else />\n </ButtonComp>\n </header>\n <section :class=\"`accordion__wrapper ${accordionOpen ? 'open' : ''}`\">\n <div class=\"accordion__content\">\n <slot />\n </div>\n </section>\n </div>\n</template>\n\n<script setup>\nimport { onMounted, onUpdated, ref } from 'vue'\nimport ButtonComp from './ButtonComp.vue'\nimport { IconChevronDown, IconChevronUp } from '@tabler/icons-vue'\n\nconst emit = defineEmits(['onOpen', 'onClose', 'onToggle'])\n\ndefineExpose({ toggleAccordion })\n\nconst props = defineProps({\n title: String,\n open: Boolean,\n})\n\nconst accordionOpen = ref(false)\n\nonMounted(() => {\n if (props.open) toggleAccordion(props.open)\n})\n\nonUpdated(() => {\n if (props.open) toggleAccordion(props.open)\n})\n\nfunction toggleAccordion(open = false) {\n if (open) {\n accordionOpen.value = true\n emit('onOpen')\n } else {\n accordionOpen.value = false\n emit('onClose')\n }\n\n emit('onToggle')\n}\n</script>\n\n<style scoped>\n@reference \"@/assets/main.css\";\n\n.accordion {\n @apply grid;\n\n header {\n @apply grid\n grid-cols-[1fr_auto]\n px-4 py-2\n cursor-pointer;\n }\n\n .accordion__wrapper {\n @apply grid\n grid-rows-[0fr]\n border-y\n border-b-white/60\n border-t-transparent\n duration-300\n ease-in-out;\n\n .accordion__content {\n @apply grid\n grid-rows-[0fr]\n overflow-hidden\n opacity-0\n transition-opacity\n delay-0;\n }\n\n &.open {\n @apply grid-rows-[1fr]\n border-t-white/20;\n\n .accordion__content {\n @apply grid-rows-[1fr] \n opacity-100\n delay-200;\n }\n }\n }\n}\n</style>\n"],"names":["IconChevronDown","createVueComponent","IconChevronUp","emit","__emit","__expose","toggleAccordion","props","__props","accordionOpen","ref","onMounted","onUpdated","open"],"mappings":"4IAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASA,IAAIA,EAAkBC,EAAmB,UAAW,eAAgB,kBAAmB,CAAC,CAAC,OAAQ,CAAE,EAAK,gBAAiB,IAAO,OAAO,CAAE,CAAC,CAAC,ECT3I;AAAA;AAAA;AAAA;AAAA;AAAA,GASA,IAAIC,EAAgBD,EAAmB,UAAW,aAAc,gBAAiB,CAAC,CAAC,OAAQ,CAAE,EAAK,iBAAkB,IAAO,OAAO,CAAE,CAAC,CAAC,0LCkCtI,MAAME,EAAOC,EAEbC,EAAa,CAAE,gBAAAC,CAAiB,CAAA,EAEhC,MAAMC,EAAQC,EAKRC,EAAgBC,EAAI,EAAK,EAE/BC,EAAU,IAAM,CACVJ,EAAM,MAAMD,EAAgBC,EAAM,IAAI,CAC5C,CAAC,EAEDK,EAAU,IAAM,CACVL,EAAM,MAAMD,EAAgBC,EAAM,IAAI,CAC5C,CAAC,EAED,SAASD,EAAgBO,EAAO,GAAO,CACjCA,GACFJ,EAAc,MAAQ,GACtBN,EAAK,QAAQ,IAEbM,EAAc,MAAQ,GACtBN,EAAK,SAAS,GAGhBA,EAAK,UAAU,CACjB","x_google_ignoreList":[0,1]}

View file

@ -0,0 +1 @@
.device-overview[data-v-0a3f2b41],.server-overview[data-v-6973a9f0]{align-content:flex-start;gap:calc(var(--spacing,.25rem)*4);display:grid}/*! tailwindcss v4.1.2 | MIT License | https://tailwindcss.com */

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,2 @@
import{a as i,o as r,b as v,d as _,e as k,g as c,L as d,k as u,j as C,u as b,U as $,l as B}from"./index-oAtpp-VZ.js";const x={class:"dialog-container"},L={__name:"DialogComp",props:{open:Boolean},emits:["onOpen","onClose","onToggle"],setup(p,{expose:g,emit:f}){const o=i(null),l=i(),t=f;g({toggleDialog:e});const s=p;r(()=>{s.open===!0&&e(s.open)}),v(()=>{s.open===!0&&e(s.open)});function e(n){n?(o.value.showModal(),t("onOpen")):(o.value.close(),t("onClose")),l.value=n,t("onToggle")}return r(()=>{l.value=s.open,o.value.innerHTML.includes("form")&&o.value.querySelector("form").addEventListener("submit",()=>{e()})}),(n,a)=>(k(),_("div",x,[c("div",{class:"trigger",onClick:a[0]||(a[0]=m=>e(!0))},[d(n.$slots,"trigger")]),c("dialog",{ref_key:"dialog",ref:o,class:"mcrm-block block__dark"},[u(B,{class:"dialog__close p-0",variant:"ghost",size:"sm",tabindex:"-1",onClick:a[1]||(a[1]=m=>e(!1))},{default:C(()=>[u(b($))]),_:1}),d(n.$slots,"content")],512)]))}};export{L as _};
//# sourceMappingURL=DialogComp-CyRyORDj.js.map

View file

@ -0,0 +1 @@
{"version":3,"file":"DialogComp-CyRyORDj.js","sources":["../../ui/src/components/base/DialogComp.vue"],"sourcesContent":["<!--\nMacrame is a program that enables the user to create keyboard macros and button panels. \nThe macros are saved as simple JSON files and can be linked to the button panels. The panels can \nbe created with HTML and CSS.\n\nCopyright (C) 2025 Jesse Malotaux\n\nThis program is free software: you can redistribute it and/or modify \nit under the terms of the GNU General Public License as published by \nthe Free Software Foundation, either version 3 of the License, or \n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, \nbut WITHOUT ANY WARRANTY; without even the implied warranty of \nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the \nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License \nalong with this program. If not, see <https://www.gnu.org/licenses/>.\n-->\n\n<template>\n <div class=\"dialog-container\">\n <div class=\"trigger\" @click=\"toggleDialog(true)\">\n <slot name=\"trigger\" />\n </div>\n <dialog ref=\"dialog\" class=\"mcrm-block block__dark\">\n <ButtonComp\n class=\"dialog__close p-0\"\n variant=\"ghost\"\n size=\"sm\"\n tabindex=\"-1\"\n @click=\"toggleDialog(false)\"\n >\n <IconX />\n </ButtonComp>\n <slot name=\"content\" />\n </dialog>\n </div>\n</template>\n\n<script setup>\nimport ButtonComp from './ButtonComp.vue'\nimport { IconX } from '@tabler/icons-vue'\nimport { onMounted, onUpdated, ref } from 'vue'\n\nconst dialog = ref(null)\nconst openDialog = ref()\n\nconst emit = defineEmits(['onOpen', 'onClose', 'onToggle'])\n\ndefineExpose({ toggleDialog })\n\nconst props = defineProps({\n open: Boolean,\n})\n\nonMounted(() => {\n if (props.open === true) toggleDialog(props.open)\n})\n\nonUpdated(() => {\n if (props.open === true) toggleDialog(props.open)\n})\n\nfunction toggleDialog(openToggle) {\n if (openToggle) {\n dialog.value.showModal()\n emit('onOpen')\n } else {\n dialog.value.close()\n emit('onClose')\n }\n\n openDialog.value = openToggle\n emit('onToggle')\n}\n\nonMounted(() => {\n openDialog.value = props.open\n\n if (dialog.value.innerHTML.includes('form')) {\n dialog.value.querySelector('form').addEventListener('submit', () => {\n toggleDialog()\n })\n }\n})\n</script>\n\n<style>\n@reference \"@/assets/main.css\";\n\n.dialog-container {\n @apply relative;\n\n dialog {\n @apply fixed\n top-1/2 left-1/2\n -translate-x-1/2 -translate-y-1/2\n max-w-[calc(100vw-2rem)]\n text-slate-200\n /* shadow-md */\n /* shadow-black */\n z-50\n pointer-events-none;\n\n &[open] {\n @apply pointer-events-auto;\n }\n\n &::backdrop {\n @apply bg-black/50 backdrop-blur-xs transition;\n }\n\n .dialog__close {\n @apply absolute\n top-4 right-4\n p-0\n text-white;\n\n svg {\n @apply size-5;\n }\n }\n }\n}\n.dialog__content {\n > *:first-child {\n @apply pr-8;\n }\n}\n</style>\n"],"names":["dialog","ref","openDialog","emit","__emit","__expose","toggleDialog","props","__props","onMounted","onUpdated","openToggle"],"mappings":"qQA8CA,MAAMA,EAASC,EAAI,IAAI,EACjBC,EAAaD,EAAG,EAEhBE,EAAOC,EAEbC,EAAa,CAAE,aAAAC,CAAc,CAAA,EAE7B,MAAMC,EAAQC,EAIdC,EAAU,IAAM,CACVF,EAAM,OAAS,IAAMD,EAAaC,EAAM,IAAI,CAClD,CAAC,EAEDG,EAAU,IAAM,CACVH,EAAM,OAAS,IAAMD,EAAaC,EAAM,IAAI,CAClD,CAAC,EAED,SAASD,EAAaK,EAAY,CAC5BA,GACFX,EAAO,MAAM,UAAS,EACtBG,EAAK,QAAQ,IAEbH,EAAO,MAAM,MAAK,EAClBG,EAAK,SAAS,GAGhBD,EAAW,MAAQS,EACnBR,EAAK,UAAU,CACjB,CAEA,OAAAM,EAAU,IAAM,CACdP,EAAW,MAAQK,EAAM,KAErBP,EAAO,MAAM,UAAU,SAAS,MAAM,GACxCA,EAAO,MAAM,cAAc,MAAM,EAAE,iBAAiB,SAAU,IAAM,CAClEM,EAAY,CACb,CAAA,CAEL,CAAC"}

View file

@ -0,0 +1 @@
/*! tailwindcss v4.1.2 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}.dialog-container{position:relative}.dialog-container dialog{pointer-events:none;z-index:50;--tw-translate-x: -50% ;max-width:calc(100vw - 2rem);--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y);color:var(--color-slate-200,oklch(92.9% .013 255.508));position:fixed;top:50%;left:50%}.dialog-container dialog[open]{pointer-events:auto}.dialog-container dialog::backdrop{--tw-backdrop-blur:blur(var(--blur-xs,4px));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4,0,.2,1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.dialog-container dialog::backdrop{background-color:color-mix(in oklab,var(--color-black,#000)50%,transparent)}}.dialog-container dialog .dialog__close{top:calc(var(--spacing,.25rem)*4);right:calc(var(--spacing,.25rem)*4);padding:calc(var(--spacing,.25rem)*0);color:var(--color-white,#fff);position:absolute}.dialog-container dialog .dialog__close svg{width:calc(var(--spacing,.25rem)*5);height:calc(var(--spacing,.25rem)*5)}.dialog__content>:first-child{padding-right:calc(var(--spacing,.25rem)*8)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}

View file

@ -0,0 +1,17 @@
import{c as a}from"./index-oAtpp-VZ.js";/**
* @license @tabler/icons-vue v3.31.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/var l=a("outline","device-floppy","IconDeviceFloppy",[["path",{d:"M6 4h10l4 4v10a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2",key:"svg-0"}],["path",{d:"M12 14m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-1"}],["path",{d:"M14 4l0 4l-6 0l0 -4",key:"svg-2"}]]);/**
* @license @tabler/icons-vue v3.31.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/var v=a("outline","pencil","IconPencil",[["path",{d:"M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4",key:"svg-0"}],["path",{d:"M13.5 6.5l4 4",key:"svg-1"}]]);/**
* @license @tabler/icons-vue v3.31.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/var p=a("outline","trash","IconTrash",[["path",{d:"M4 7l16 0",key:"svg-0"}],["path",{d:"M10 11l0 6",key:"svg-1"}],["path",{d:"M14 11l0 6",key:"svg-2"}],["path",{d:"M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12",key:"svg-3"}],["path",{d:"M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3",key:"svg-4"}]]);export{p as I,l as a,v as b};
//# sourceMappingURL=IconTrash-DtIpQ-M_.js.map

View file

@ -0,0 +1 @@
{"version":3,"file":"IconTrash-DtIpQ-M_.js","sources":["../../ui/node_modules/@tabler/icons-vue/dist/esm/icons/IconDeviceFloppy.mjs","../../ui/node_modules/@tabler/icons-vue/dist/esm/icons/IconPencil.mjs","../../ui/node_modules/@tabler/icons-vue/dist/esm/icons/IconTrash.mjs"],"sourcesContent":["/**\n * @license @tabler/icons-vue v3.31.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createVueComponent from '../createVueComponent.mjs';\n\nvar IconDeviceFloppy = createVueComponent(\"outline\", \"device-floppy\", \"IconDeviceFloppy\", [[\"path\", { \"d\": \"M6 4h10l4 4v10a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M12 14m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0\", \"key\": \"svg-1\" }], [\"path\", { \"d\": \"M14 4l0 4l-6 0l0 -4\", \"key\": \"svg-2\" }]]);\n\nexport { IconDeviceFloppy as default };\n//# sourceMappingURL=IconDeviceFloppy.mjs.map\n","/**\n * @license @tabler/icons-vue v3.31.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createVueComponent from '../createVueComponent.mjs';\n\nvar IconPencil = createVueComponent(\"outline\", \"pencil\", \"IconPencil\", [[\"path\", { \"d\": \"M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M13.5 6.5l4 4\", \"key\": \"svg-1\" }]]);\n\nexport { IconPencil as default };\n//# sourceMappingURL=IconPencil.mjs.map\n","/**\n * @license @tabler/icons-vue v3.31.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createVueComponent from '../createVueComponent.mjs';\n\nvar IconTrash = createVueComponent(\"outline\", \"trash\", \"IconTrash\", [[\"path\", { \"d\": \"M4 7l16 0\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M10 11l0 6\", \"key\": \"svg-1\" }], [\"path\", { \"d\": \"M14 11l0 6\", \"key\": \"svg-2\" }], [\"path\", { \"d\": \"M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12\", \"key\": \"svg-3\" }], [\"path\", { \"d\": \"M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3\", \"key\": \"svg-4\" }]]);\n\nexport { IconTrash as default };\n//# sourceMappingURL=IconTrash.mjs.map\n"],"names":["IconDeviceFloppy","createVueComponent","IconPencil","IconTrash"],"mappings":"wCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASG,IAACA,EAAmBC,EAAmB,UAAW,gBAAiB,mBAAoB,CAAC,CAAC,OAAQ,CAAE,EAAK,uEAAwE,IAAO,OAAS,CAAA,EAAG,CAAC,OAAQ,CAAE,EAAK,2CAA4C,IAAO,OAAS,CAAA,EAAG,CAAC,OAAQ,CAAE,EAAK,sBAAuB,IAAO,OAAS,CAAA,CAAC,CAAC,ECT9U;AAAA;AAAA;AAAA;AAAA;AAAA,GASG,IAACC,EAAaD,EAAmB,UAAW,SAAU,aAAc,CAAC,CAAC,OAAQ,CAAE,EAAK,0DAA2D,IAAO,OAAS,CAAA,EAAG,CAAC,OAAQ,CAAE,EAAK,gBAAiB,IAAO,OAAO,CAAE,CAAC,CAAC,ECTzN;AAAA;AAAA;AAAA;AAAA;AAAA,GASG,IAACE,EAAYF,EAAmB,UAAW,QAAS,YAAa,CAAC,CAAC,OAAQ,CAAE,EAAK,YAAa,IAAO,OAAS,CAAA,EAAG,CAAC,OAAQ,CAAE,EAAK,aAAc,IAAO,OAAO,CAAE,EAAG,CAAC,OAAQ,CAAE,EAAK,aAAc,IAAO,OAAS,CAAA,EAAG,CAAC,OAAQ,CAAE,EAAK,iDAAkD,IAAO,OAAS,CAAA,EAAG,CAAC,OAAQ,CAAE,EAAK,2CAA4C,IAAO,OAAO,CAAE,CAAC,CAAC","x_google_ignoreList":[0,1,2]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
:root{--vt-c-white: #ffffff;--vt-c-white-soft: #f8f8f8;--vt-c-white-mute: #f2f2f2;--vt-c-black: #181818;--vt-c-black-soft: #222222;--vt-c-black-mute: #282828;--vt-c-indigo: #2c3e50;--vt-c-divider-light-1: rgba(60, 60, 60, .29);--vt-c-divider-light-2: rgba(60, 60, 60, .12);--vt-c-divider-dark-1: rgba(84, 84, 84, .65);--vt-c-divider-dark-2: rgba(84, 84, 84, .48);--vt-c-text-light-1: var(--vt-c-indigo);--vt-c-text-light-2: rgba(60, 60, 60, .66);--vt-c-text-dark-1: var(--vt-c-white);--vt-c-text-dark-2: rgba(235, 235, 235, .64)}:root{--color-background: var(--vt-c-white);--color-background-soft: var(--vt-c-white-soft);--color-background-mute: var(--vt-c-white-mute);--color-border: var(--vt-c-divider-light-2);--color-border-hover: var(--vt-c-divider-light-1);--color-heading: var(--vt-c-text-light-1);--color-text: var(--vt-c-text-light-1);--section-gap: 160px}@media (prefers-color-scheme: dark){:root{--color-background: var(--vt-c-black);--color-background-soft: var(--vt-c-black-soft);--color-background-mute: var(--vt-c-black-mute);--color-border: var(--vt-c-divider-dark-2);--color-border-hover: var(--vt-c-divider-dark-1);--color-heading: var(--vt-c-text-dark-1);--color-text: var(--vt-c-text-dark-2)}}*,*:before,*:after{box-sizing:border-box;margin:0;font-weight:400}body{min-height:100vh;color:var(--color-text);background:var(--color-background);transition:color .5s,background-color .5s;line-height:1.6;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{max-width:1280px;margin:0 auto;padding:2rem;font-weight:400}a,.green{text-decoration:none;color:#00bd7e;transition:.4s;padding:3px}@media (hover: hover){a:hover{background-color:#00bd7e33}}@media (min-width: 1024px){body{display:flex;place-items:center}#app{display:grid;grid-template-columns:1fr 1fr;padding:0 2rem}}

View file

@ -0,0 +1,60 @@
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px"
viewBox="0 0 140 80"
style="enable-background:new 0 0 140 80;"
xml:space="preserve">
<style type="text/css">
.st0{fill:url(#SVGID_1_);}
.st1{fill:url(#SVGID_2_);}
.st2{fill:url(#SVGID_3_);}
.st3{fill:url(#SVGID_4_);}
.st4{fill:url(#SVGID_5_);}
.st5{fill:url(#SVGID_6_);}
.st6{fill:url(#SVGID_7_);}
</style>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-9.094947e-13" y1="28.05" x2="140" y2="28.05">
<stop offset="0" style="stop-color:#FFB900"/>
<stop offset="1" style="stop-color:#00BCFF"/>
</linearGradient>
<path class="st0" d="M95.5,18.3l-0.2-0.1C95.2,18.1,95,18,94.8,18c-0.3,0-0.5,0.1-0.7,0.3L82.8,29.6l8.5,8.5l12-12L95.5,18.3z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-9.094947e-13" y1="28" x2="140" y2="28">
<stop offset="0" style="stop-color:#FFB900"/>
<stop offset="1" style="stop-color:#00BCFF"/>
</linearGradient>
<path class="st1" d="M57.3,29.5L46,18.3c-0.2-0.2-0.5-0.3-0.7-0.3s-0.4,0-0.5,0.1l-0.2,0.1L36.8,26l12,12L57.3,29.5z"/>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="-9.094947e-13" y1="65.25" x2="140" y2="65.25">
<stop offset="0" style="stop-color:#FFB900"/>
<stop offset="1" style="stop-color:#00BCFF"/>
</linearGradient>
<path class="st2" d="M94.7,67l-14-14l-8.5,8.5l11.3,11.3c1,1,2.1,1.8,3.2,2.5c2.5,1.5,5.3,2.2,8.1,2.2s5.6-0.7,8.1-2.2L94.7,67
L94.7,67z"/>
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="-9.094947e-13" y1="32.9162" x2="140" y2="32.9162">
<stop offset="0" style="stop-color:#FFB900"/>
<stop offset="1" style="stop-color:#00BCFF"/>
</linearGradient>
<path class="st3" d="M114,15.5l-7.8-7.8c-0.2-0.2-0.5-0.5-0.7-0.7c-5.3-4.6-12.8-5.2-18.7-1.8c-1.1,0.7-2.2,1.5-3.2,2.5L72.2,19
l2.6,2.6l5.9,5.9L92,16.2c0.8-0.8,1.8-1.1,2.8-1.1c0.7,0,1.4,0.2,2,0.5l0.1-0.1l8.5,8.5l13.4,13.4c0.8,0.8,1.1,1.8,1.1,2.8
s-0.4,2.1-1.1,2.8l-11.3,11.3l5,5l3.5,3.5l11.3-11.3c3.1-3.1,4.7-7.2,4.7-11.3c0-4.1-1.5-8.2-4.6-11.3L114,15.5z"/>
<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="-9.094947e-13" y1="38.2163" x2="140" y2="38.2163">
<stop offset="0" style="stop-color:#FFB900"/>
<stop offset="1" style="stop-color:#00BCFF"/>
</linearGradient>
<path class="st4" d="M105.4,56.5l-3.5-3.5l-4.5-4.5L81.2,32.2l-8.5-8.5l-2.6-2.6L56.6,7.7c-1-1-2.1-1.8-3.2-2.5
C47.6,1.8,40,2.4,34.8,7c-0.3,0.2-0.5,0.4-0.7,0.7l-7.8,7.8L12.8,28.9C9.7,32,8.1,36.1,8.1,40.2c0,4.1,1.6,8.2,4.7,11.3l11.3,11.3
l3.5-3.5l5-5L21.3,43c-0.8-0.8-1.1-1.8-1.1-2.8s0.4-2.1,1.1-2.8L34.7,24l8.5-8.5l0.1,0.1c1.5-0.9,3.6-0.7,4.8,0.6l11.3,11.3l2.1,2.1
l8.5,8.5l2.1,2.1l8.5,8.5l16.2,16.2L97,65l8.4,8.4c0.3-0.2,0.5-0.4,0.7-0.7l7.8-7.8l-3.5-3.4L105.4,56.5z"/>
<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="-9.094947e-13" y1="59.85" x2="140" y2="59.85">
<stop offset="0" style="stop-color:#FFB900"/>
<stop offset="1" style="stop-color:#00BCFF"/>
</linearGradient>
<path class="st5" d="M70.1,42.3l-8.5,8.5L45.4,67l-0.1,0.1L40.4,72l-3.2,3.2c2.5,1.5,5.3,2.2,8.1,2.2s5.6-0.8,8.1-2.2
c1.1-0.7,2.2-1.5,3.2-2.5L70,59.3l8.5-8.5L70.1,42.3z"/>
<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="-9.094947e-13" y1="52.6" x2="140" y2="52.6">
<stop offset="0" style="stop-color:#FFB900"/>
<stop offset="1" style="stop-color:#00BCFF"/>
</linearGradient>
<path class="st6" d="M43.1,65.1l0.1-0.1l16.2-16.2l8.5-8.5l-8.4-8.6L51,40.2L38.2,53l-3.5,3.5l-5,5L26.2,65l7.8,7.8
c0.2,0.2,0.5,0.5,0.7,0.7l3.5-3.5L43.1,65.1z"/>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB