diff --git a/package.json b/package.json index e6635e9..aaeeb76 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "dependencies": { "@codemirror/lang-css": "^6.0.0", "@codemirror/theme-one-dark": "^6.0.0", + "@headlessui/vue": "1.7.23", "axios": "^0.28.0", "codemirror": "^6.0.0", "vue": "^3.2.25" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e0cbb82..87fc63f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,6 +14,9 @@ importers: '@codemirror/theme-one-dark': specifier: ^6.0.0 version: 6.0.0 + '@headlessui/vue': + specifier: 1.7.23 + version: 1.7.23(vue@3.2.37) axios: specifier: ^0.28.0 version: 0.28.0 @@ -97,6 +100,12 @@ packages: '@codemirror/view@6.0.1': resolution: {integrity: sha512-n5olUr4Ld+XDTZN8+cnUHzkqJPeO2kr55HvBQ+4C1xWlDaRGrsedAoxCgeuGZsXRTUup/H/0e2kAN+a0R3skdA==} + '@headlessui/vue@1.7.23': + resolution: {integrity: sha512-JzdCNqurrtuu0YW6QaDtR2PIYCKPUWq28csDyMvN4zmGccmE7lz40Is6hc3LA4HFeCI7sekZ/PQMTNmn9I/4Wg==} + engines: {node: '>=10'} + peerDependencies: + vue: ^3.2.0 + '@lezer/common@1.0.0': resolution: {integrity: sha512-ohydQe+Hb+w4oMDvXzs8uuJd2NoA3D8YDcLiuDsLqH+yflDTPEpgCsWI3/6rH5C3BAedtH1/R51dxENldQceEA==} @@ -109,6 +118,14 @@ packages: '@lezer/lr@1.0.0': resolution: {integrity: sha512-k6DEqBh4HxqO/cVGedb6Ern6LS7K6IOzfydJ5WaqCR26v6UR9sIFyb6PS+5rPUs/mXgnBR/QQCW7RkyjSCMoQA==} + '@tanstack/virtual-core@3.17.8': + resolution: {integrity: sha512-BfEvehNpOT75r5Ksc5xW6NZuXujTfb7nlSEyVu4XHG3gdxNg1KqXruWbDewXOUaUYIo4oRbSfkjIajz4MAT8tA==} + + '@tanstack/vue-virtual@3.13.36': + resolution: {integrity: sha512-gKpExv4RbB9luVG+SucTXoqPZv/gzu/Yvz6BNO+8kpNxJ2x+I/ulryzl5W9BRciahZGp5Tls3Dp5XP1ztVGbMw==} + peerDependencies: + vue: ^2.7.0 || ^3.0.0 + '@types/less@3.0.3': resolution: {integrity: sha512-1YXyYH83h6We1djyoUEqTlVyQtCfJAFXELSKW2ZRtjHD4hQ82CC4lvrv5D0l0FLcKBaiPbXyi3MpMsI9ZRgKsw==} @@ -566,6 +583,11 @@ snapshots: style-mod: 4.0.0 w3c-keyname: 2.2.4 + '@headlessui/vue@1.7.23(vue@3.2.37)': + dependencies: + '@tanstack/vue-virtual': 3.13.36(vue@3.2.37) + vue: 3.2.37 + '@lezer/common@1.0.0': {} '@lezer/css@1.0.0': @@ -581,6 +603,13 @@ snapshots: dependencies: '@lezer/common': 1.0.0 + '@tanstack/virtual-core@3.17.8': {} + + '@tanstack/vue-virtual@3.13.36(vue@3.2.37)': + dependencies: + '@tanstack/virtual-core': 3.17.8 + vue: 3.2.37 + '@types/less@3.0.3': {} '@types/node@16.11.41': {} diff --git a/src/App.vue b/src/App.vue index e3b4774..10e7e38 100644 --- a/src/App.vue +++ b/src/App.vue @@ -4,6 +4,10 @@ import { utoa, atou, LESS_DATA } from './utils' import Header from '@components/Header.vue' import Editor from '@components/Editor.vue' import Layout from '@components/Layout.vue' +import Select from '@components/Select.vue' +import { Switch } from '@headlessui/vue' + +const mathOptions = ['always', 'parens-division', 'parens'].map(value => ({ value })) let input = $ref(LESS_DATA) let output = $ref('') @@ -76,20 +80,18 @@ onMounted(() => { diff --git a/src/components/Header.vue b/src/components/Header.vue index 6ac820e..87326ab 100644 --- a/src/components/Header.vue +++ b/src/components/Header.vue @@ -1,16 +1,20 @@ + + + + diff --git a/src/theme.less b/src/theme.less new file mode 100644 index 0000000..dfc55b7 --- /dev/null +++ b/src/theme.less @@ -0,0 +1,27 @@ +// Shared palette + control base. Imported (reference) by every component's