feat: set up base layout and content test

This commit is contained in:
mdatelle
2025-07-21 17:30:00 -04:00
committed by Eli Bosley
parent 88087d5201
commit d4a8edab49
6 changed files with 322 additions and 94 deletions

322
pnpm-lock.yaml generated
View File

@@ -1071,8 +1071,8 @@ importers:
specifier: 3.6.0
version: 3.6.0(@jsonforms/core@3.6.0)(@jsonforms/vue@3.6.0(@jsonforms/core@3.6.0)(vue@3.5.20(typescript@5.9.2)))(ajv@8.17.1)(dayjs@1.11.14)(lodash@4.17.21)(maska@2.1.11)(vue@3.5.20(typescript@5.9.2))(vuetify@3.9.6)
'@nuxt/ui':
specifier: 3.3.2
version: 3.3.2(@babel/parser@7.28.3)(@netlify/blobs@9.1.2)(change-case@5.4.4)(db0@0.3.2)(embla-carousel@8.6.0)(focus-trap@7.6.5)(ioredis@5.6.1)(jwt-decode@4.0.0)(magicast@0.3.5)(typescript@5.9.2)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(stylus@0.57.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.20(typescript@5.9.2)))(vue@3.5.20(typescript@5.9.2))(zod@3.25.76)
specifier: 4.0.0-alpha.0
version: 4.0.0-alpha.0(@babel/parser@7.28.3)(@netlify/blobs@9.1.2)(change-case@5.4.4)(db0@0.3.2)(embla-carousel@8.6.0)(focus-trap@7.6.5)(ioredis@5.6.1)(jwt-decode@4.0.0)(magicast@0.3.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.9.2)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(stylus@0.57.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.20(typescript@5.9.2)))(vue@3.5.20(typescript@5.9.2))(zod@3.25.76)
'@nuxtjs/color-mode':
specifier: 3.5.2
version: 3.5.2(magicast@0.3.5)
@@ -1315,6 +1315,31 @@ packages:
'@adobe/css-tools@4.4.3':
resolution: {integrity: sha512-VQKMkwriZbaOgVCby1UDY/LDk5fIjhQicCvVPFqfe+69fWaPWydbWJ3wRt59/YzIwda1I81loas3oCoHxnqvdA==}
'@ai-sdk/gateway@1.0.15':
resolution: {integrity: sha512-xySXoQ29+KbGuGfmDnABx+O6vc7Gj7qugmj1kGpn0rW0rQNn6UKUuvscKMzWyv1Uv05GyC1vqHq8ZhEOLfXscQ==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4
'@ai-sdk/provider-utils@3.0.7':
resolution: {integrity: sha512-o3BS5/t8KnBL3ubP8k3w77AByOypLm+pkIL/DCw0qKkhDbvhCy+L3hRTGPikpdb8WHcylAeKsjgwOxhj4cqTUA==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4
'@ai-sdk/provider@2.0.0':
resolution: {integrity: sha512-6o7Y2SeO9vFKB8lArHXehNuusnpddKPk7xqL7T2/b+OvXMRIXUO1rR4wcv1hAFUAT9avGZshty3Wlua/XA7TvA==}
engines: {node: '>=18'}
'@ai-sdk/vue@2.0.26':
resolution: {integrity: sha512-QNaG+kbIZMN8xW5JMlDSCPVtnDm3SP7g5i8/yRJGI4skEVVWiscRqEfleLeBWNrUtZbHSxaV1+4EqFJAP70/dg==}
engines: {node: '>=18'}
peerDependencies:
vue: ^3.3.4
peerDependenciesMeta:
vue:
optional: true
'@alloc/quick-lru@5.2.0':
resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
engines: {node: '>=10'}
@@ -1329,8 +1354,8 @@ packages:
'@antfu/utils@0.7.10':
resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==}
'@antfu/utils@8.1.1':
resolution: {integrity: sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==}
'@antfu/utils@9.2.0':
resolution: {integrity: sha512-Oq1d9BGZakE/FyoEtcNeSwM7MpDO2vUBi11RWBZXf75zPsbUVWmUs03EqkRFrcgbXyKTas0BdZWC1wcuSoqSAw==}
'@apidevtools/json-schema-ref-parser@14.1.1':
resolution: {integrity: sha512-uGF1YGOzzD50L7HLNWclXmsEhQflw8/zZHIz0/AzkJrKL5r9PceUipZxR/cp/8veTk4TVfdDJLyIwXLjaP5ePg==}
@@ -1365,7 +1390,6 @@ packages:
'@apollo/server-gateway-interface@1.1.1':
resolution: {integrity: sha512-pGwCl/po6+rxRmDMFgozKQo2pbsSwE91TpsDBAOgf74CRDPXHHtM88wbwjab0wMMZh95QfR45GGyDIdhY24bkQ==}
deprecated: '@apollo/server-gateway-interface v1 is part of Apollo Server v4, which is deprecated and will transition to end-of-life on January 26, 2026. As long as you are already using a non-EOL version of Node.js, upgrading to v2 should take only a few minutes. See https://www.apollographql.com/docs/apollo-server/previous-versions for details.'
peerDependencies:
graphql: 16.11.0
@@ -1379,7 +1403,6 @@ packages:
'@apollo/server@4.12.2':
resolution: {integrity: sha512-jKRlf+sBMMdKYrjMoiWKne42Eb6paBfDOr08KJnUaeaiyWFj+/040FjVPQI7YGLfdwnYIsl1NUUqS2UdgezJDg==}
engines: {node: '>=14.16.0'}
deprecated: Apollo Server v4 is deprecated and will transition to end-of-life on January 26, 2026. As long as you are already using a non-EOL version of Node.js, upgrading to v5 should take only a few minutes. See https://www.apollographql.com/docs/apollo-server/previous-versions for details.
peerDependencies:
graphql: 16.11.0
@@ -3054,14 +3077,14 @@ packages:
prettier-plugin-ember-template-tag:
optional: true
'@iconify/collections@1.0.569':
resolution: {integrity: sha512-PclOVcAlvv55Fv5kRJmxk/KMoFLNBMLh0q9LDMlonIPJMUu958VsNw7F7CVurfyEbCf/54i7eF+q6LHqJxeQvg==}
'@iconify/collections@1.0.588':
resolution: {integrity: sha512-K6jijh3aEZ937R+ES5Swd62NOCZ868PNCyHNg+R7c9Kn9yurtuiLM/zkpN8KxRwVvTX8w83EkBqhUjqo+wFgDw==}
'@iconify/types@2.0.0':
resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
'@iconify/utils@2.3.0':
resolution: {integrity: sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==}
'@iconify/utils@3.0.1':
resolution: {integrity: sha512-A78CUEnFGX8I/WlILxJCuIJXloL0j/OJ9PSchPAfCargEIKmUBWvvEMmKWB5oONwiUqlNt+5eRufdkLxeHIWYw==}
'@iconify/vue@5.0.0':
resolution: {integrity: sha512-C+KuEWIF5nSBrobFJhT//JS87OZ++QDORB6f2q2Wm6fl2mueSTpFBeBsveK0KW9hWiZ4mNiPjsh6Zs4jjdROSg==}
@@ -3745,8 +3768,8 @@ packages:
'@nuxt/fonts@0.11.4':
resolution: {integrity: sha512-GbLavsC+9FejVwY+KU4/wonJsKhcwOZx/eo4EuV57C4osnF/AtEmev8xqI0DNlebMEhEGZbu1MGwDDDYbeR7Bw==}
'@nuxt/icon@1.15.0':
resolution: {integrity: sha512-kA0rxqr1B601zNJNcOXera8CyYcxUCEcT7dXEC7rwAz71PRCN5emf7G656eKEQgtqrD4JSj6NQqWDgrmFcf/GQ==}
'@nuxt/icon@2.0.0':
resolution: {integrity: sha512-sy8+zkKMYp+H09S0cuTteL3zPTmktqzYPpPXV9ZkLNjrQsaPH08n7s/9wjr+C/K/w2R3u18E3+P1VIQi3xaq1A==}
'@nuxt/kit@3.17.5':
resolution: {integrity: sha512-NdCepmA+S/SzgcaL3oYUeSlXGYO6BXGr9K/m1D0t0O9rApF8CSq/QQ+ja5KYaYMO1kZAEWH4s2XVcE3uPrrAVg==}
@@ -3818,8 +3841,8 @@ packages:
vitest:
optional: true
'@nuxt/ui@3.3.2':
resolution: {integrity: sha512-LN8axCK/0zCqWC/m0nN5R4vQyGmv6Viu9K1ZyzApgAg4vsyRYKXLtr2ta/vXv2y4/CtKfncry1zs/IfsktDyuw==}
'@nuxt/ui@4.0.0-alpha.0':
resolution: {integrity: sha512-Gvjfoyw2VkyovMddhUhu+ixHpcCHb/MDlqlcYt29knxvVcJqMGNW/BvSgcmAVrttNb9xUnL6rvg0bneFXU48Gg==}
hasBin: true
peerDependencies:
'@inertiajs/vue3': ^2.0.7
@@ -3858,6 +3881,10 @@ packages:
'@one-ini/wasm@0.1.1':
resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==}
'@opentelemetry/api@1.9.0':
resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==}
engines: {node: '>=8.0.0'}
'@originjs/vite-plugin-commonjs@1.0.3':
resolution: {integrity: sha512-KuEXeGPptM2lyxdIEJ4R11+5ztipHoE7hy8ClZt3PYaOVQ/pyngd2alaSrPnwyFeOW1UagRBaQ752aA1dTMdOQ==}
@@ -5997,6 +6024,12 @@ packages:
resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
engines: {node: '>=8'}
ai@5.0.26:
resolution: {integrity: sha512-bGNtG+nYQ2U+5mzuLbxIg9WxGQJ2u5jv2gYgP8C+CJ1YI4qqIjvjOgGEZWzvNet8jiOGIlqstsht9aQefKzmBw==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4
ajv-errors@3.0.0:
resolution: {integrity: sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==}
peerDependencies:
@@ -6520,6 +6553,9 @@ packages:
caniuse-lite@1.0.30001727:
resolution: {integrity: sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==}
caniuse-lite@1.0.30001731:
resolution: {integrity: sha512-lDdp2/wrOmTRWuoB5DpfNkC0rJDU8DqRa6nYL6HK6sytw70QMopt/NIc/9SM7ylItlBWfACXk0tEn37UWM/+mg==}
capital-case@1.0.4:
resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==}
@@ -7443,10 +7479,6 @@ packages:
resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==}
engines: {node: '>=12'}
dotenv@16.5.0:
resolution: {integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==}
engines: {node: '>=12'}
dotenv@16.6.1:
resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==}
engines: {node: '>=12'}
@@ -7477,8 +7509,8 @@ packages:
ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
electron-to-chromium@1.5.191:
resolution: {integrity: sha512-xcwe9ELcuxYLUFqZZxL19Z6HVKcvNkIwhbHUz7L3us6u12yR+7uY89dSl570f/IqNthx8dAw3tojG7i4Ni4tDA==}
electron-to-chromium@1.5.192:
resolution: {integrity: sha512-rP8Ez0w7UNw/9j5eSXCe10o1g/8B1P5SM90PCCMVkIRQn2R0LEHWz4Eh9RnxkniuDe1W0cTSOB3MLlkTGDcuCg==}
embla-carousel-auto-height@8.6.0:
resolution: {integrity: sha512-/HrJQOEM6aol/oF33gd2QlINcXy3e19fJWvHDuHWp2bpyTa+2dm9tVVJak30m2Qy6QyQ6Fc8DkImtv7pxWOJUQ==}
@@ -7515,8 +7547,8 @@ packages:
peerDependencies:
vue: ^3.2.37
embla-carousel-wheel-gestures@8.0.2:
resolution: {integrity: sha512-gtE8xHRwMGsfsMAgco/QoYhvcxNoMLmFF0DaWH7FXJJWk8RlEZyiZHZRZL6TZVCgooo9/hKyYWITLaSZLIvkbQ==}
embla-carousel-wheel-gestures@8.1.0:
resolution: {integrity: sha512-J68jkYrxbWDmXOm2n2YHl+uMEXzkGSKjWmjaEgL9xVvPb3HqVmg6rJSKfI3sqIDVvm7mkeTy87wtG/5263XqHQ==}
engines: {node: '>=10'}
peerDependencies:
embla-carousel: ^8.0.0 || ~8.0.0-rc03
@@ -8089,6 +8121,10 @@ packages:
resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
engines: {node: '>=0.8.x'}
eventsource-parser@3.0.5:
resolution: {integrity: sha512-bSRG85ZrMdmWtm7qkF9He9TNRzc/Bm99gEJMaQoHJ9E6Kv9QBbsldh2oMj7iXmYNEAVvNgvv5vPorG6W+XtBhQ==}
engines: {node: '>=20.0.0'}
execa@5.1.1:
resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
engines: {node: '>=10'}
@@ -8238,14 +8274,6 @@ packages:
fd-slicer@1.1.0:
resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==}
fdir@6.4.6:
resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==}
peerDependencies:
picomatch: ^3 || ^4
peerDependenciesMeta:
picomatch:
optional: true
fdir@6.5.0:
resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
engines: {node: '>=12.0.0'}
@@ -8398,6 +8426,20 @@ packages:
fraction.js@4.3.7:
resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
framer-motion@12.23.12:
resolution: {integrity: sha512-6e78rdVtnBvlEVgu6eFEAgG9v3wLnYEboM8I5O5EXvfKC8gxGQB8wXJdhkMy10iVcn05jl6CNw7/HTsTCfwcWg==}
peerDependencies:
'@emotion/is-prop-valid': '*'
react: ^18.0.0 || ^19.0.0
react-dom: ^18.0.0 || ^19.0.0
peerDependenciesMeta:
'@emotion/is-prop-valid':
optional: true
react:
optional: true
react-dom:
optional: true
fresh@0.5.2:
resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
engines: {node: '>= 0.6'}
@@ -8774,6 +8816,9 @@ packages:
hex-to-rgba@2.0.1:
resolution: {integrity: sha512-5XqPJBpsEUMsseJUi2w2Hl7cHFFi3+OO10M2pzAvKB1zL6fc+koGMhmBqoDOCB4GemiRM/zvDMRIhVw6EkB8dQ==}
hey-listen@1.0.8:
resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==}
highlight.js@11.11.1:
resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==}
engines: {node: '>=12.0.0'}
@@ -9437,6 +9482,9 @@ packages:
json-schema-traverse@1.0.0:
resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
json-schema@0.4.0:
resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==}
json-stable-stringify-without-jsonify@1.0.1:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
@@ -10038,6 +10086,18 @@ packages:
module-details-from-path@1.0.3:
resolution: {integrity: sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==}
motion-dom@12.23.12:
resolution: {integrity: sha512-RcR4fvMCTESQBD/uKQe49D5RUeDOokkGRmz4ceaJKDBgHYtZtntC/s2vLvY38gqGaytinij/yi3hMcWVcEF5Kw==}
motion-utils@12.23.6:
resolution: {integrity: sha512-eAWoPgr4eFEOFfg2WjIsMoqJTW6Z8MTUCgn/GZ3VRpClWBdnbjryiA3ZSNLyxCTmCQx4RmYX6jX1iWHbenUPNQ==}
motion-v@1.7.0:
resolution: {integrity: sha512-5oPDF5GBpcRnIZuce7Wap09S8afH4JeBWD3VbMRg4hZKk0olQnTFuHjgQUGMpX3V1WXrZgyveoF02W51XMxx9w==}
peerDependencies:
'@vueuse/core': '>=10.0.0'
vue: '>=3.0.0'
mri@1.2.0:
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
engines: {node: '>=4'}
@@ -12108,6 +12168,11 @@ packages:
swap-case@2.0.2:
resolution: {integrity: sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==}
swrv@1.1.0:
resolution: {integrity: sha512-pjllRDr2s0iTwiE5Isvip51dZGR7GjLH1gCSVyE8bQnbAx6xackXsFdojau+1O5u98yHF5V73HQGOFxKUXO9gQ==}
peerDependencies:
vue: '>=3.2.26 < 4'
symbol-observable@1.2.0:
resolution: {integrity: sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==}
engines: {node: '>=0.10.0'}
@@ -13441,6 +13506,33 @@ snapshots:
'@adobe/css-tools@4.4.3': {}
'@ai-sdk/gateway@1.0.15(zod@3.25.76)':
dependencies:
'@ai-sdk/provider': 2.0.0
'@ai-sdk/provider-utils': 3.0.7(zod@3.25.76)
zod: 3.25.76
'@ai-sdk/provider-utils@3.0.7(zod@3.25.76)':
dependencies:
'@ai-sdk/provider': 2.0.0
'@standard-schema/spec': 1.0.0
eventsource-parser: 3.0.5
zod: 3.25.76
'@ai-sdk/provider@2.0.0':
dependencies:
json-schema: 0.4.0
'@ai-sdk/vue@2.0.26(vue@3.5.20(typescript@5.9.2))(zod@3.25.76)':
dependencies:
'@ai-sdk/provider-utils': 3.0.7(zod@3.25.76)
ai: 5.0.26(zod@3.25.76)
swrv: 1.1.0(vue@3.5.20(typescript@5.9.2))
optionalDependencies:
vue: 3.5.20(typescript@5.9.2)
transitivePeerDependencies:
- zod
'@alloc/quick-lru@5.2.0': {}
'@ampproject/remapping@2.3.0':
@@ -13455,7 +13547,7 @@ snapshots:
'@antfu/utils@0.7.10': {}
'@antfu/utils@8.1.1': {}
'@antfu/utils@9.2.0': {}
'@apidevtools/json-schema-ref-parser@14.1.1':
dependencies:
@@ -13610,7 +13702,7 @@ snapshots:
dependencies:
'@babel/core': 7.28.0
'@babel/generator': 7.28.0
'@babel/parser': 7.28.0
'@babel/parser': 7.28.3
'@babel/runtime': 7.27.6
'@babel/traverse': 7.28.0
'@babel/types': 7.28.0
@@ -13676,7 +13768,7 @@ snapshots:
'@babel/helper-compilation-targets': 7.27.2
'@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4)
'@babel/helpers': 7.27.6
'@babel/parser': 7.28.0
'@babel/parser': 7.28.3
'@babel/template': 7.27.2
'@babel/traverse': 7.28.0
'@babel/types': 7.28.0
@@ -15211,7 +15303,7 @@ snapshots:
'@whatwg-node/fetch': 0.10.8
chalk: 4.1.2
debug: 4.4.1(supports-color@5.5.0)
dotenv: 16.5.0
dotenv: 16.6.1
graphql: 16.11.0
graphql-request: 6.1.0(graphql@16.11.0)
http-proxy-agent: 7.0.2
@@ -15365,21 +15457,21 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@iconify/collections@1.0.569':
'@iconify/collections@1.0.588':
dependencies:
'@iconify/types': 2.0.0
'@iconify/types@2.0.0': {}
'@iconify/utils@2.3.0':
'@iconify/utils@3.0.1':
dependencies:
'@antfu/install-pkg': 1.1.0
'@antfu/utils': 8.1.1
'@antfu/utils': 9.2.0
'@iconify/types': 2.0.0
debug: 4.4.1(supports-color@5.5.0)
globals: 15.15.0
kolorist: 1.8.0
local-pkg: 1.1.1
local-pkg: 1.1.2
mlly: 1.7.4
transitivePeerDependencies:
- supports-color
@@ -16241,7 +16333,7 @@ snapshots:
'@nuxt/fonts@0.11.4(@netlify/blobs@9.1.2)(db0@0.3.2)(ioredis@5.6.1)(magicast@0.3.5)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(stylus@0.57.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))':
dependencies:
'@nuxt/devtools-kit': 2.6.2(magicast@0.3.5)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(stylus@0.57.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))
'@nuxt/devtools-kit': 2.6.3(magicast@0.3.5)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(stylus@0.57.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))
'@nuxt/kit': 3.18.1(magicast@0.3.5)
consola: 3.4.2
css-tree: 3.1.0
@@ -16259,7 +16351,7 @@ snapshots:
tinyglobby: 0.2.14
ufo: 1.6.1
unifont: 0.4.1
unplugin: 2.3.5
unplugin: 2.3.8
unstorage: 1.16.1(@netlify/blobs@9.1.2)(db0@0.3.2)(ioredis@5.6.1)
transitivePeerDependencies:
- '@azure/app-configuration'
@@ -16284,16 +16376,16 @@ snapshots:
- uploadthing
- vite
'@nuxt/icon@1.15.0(magicast@0.3.5)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(stylus@0.57.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vue@3.5.20(typescript@5.9.2))':
'@nuxt/icon@2.0.0(magicast@0.3.5)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(stylus@0.57.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vue@3.5.20(typescript@5.9.2))':
dependencies:
'@iconify/collections': 1.0.569
'@iconify/collections': 1.0.588
'@iconify/types': 2.0.0
'@iconify/utils': 2.3.0
'@iconify/utils': 3.0.1
'@iconify/vue': 5.0.0(vue@3.5.20(typescript@5.9.2))
'@nuxt/devtools-kit': 2.6.2(magicast@0.3.5)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(stylus@0.57.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))
'@nuxt/kit': 3.18.1(magicast@0.3.5)
'@nuxt/devtools-kit': 2.6.3(magicast@0.3.5)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(stylus@0.57.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))
'@nuxt/kit': 4.0.3(magicast@0.3.5)
consola: 3.4.2
local-pkg: 1.1.1
local-pkg: 1.1.2
mlly: 1.7.4
ohash: 2.0.11
pathe: 2.0.3
@@ -16401,7 +16493,7 @@ snapshots:
mlly: 1.7.4
ohash: 2.0.11
pathe: 2.0.3
pkg-types: 2.2.0
pkg-types: 2.3.0
scule: 1.3.0
semver: 7.7.2
std-env: 3.9.0
@@ -16428,7 +16520,7 @@ snapshots:
'@nuxt/schema@4.0.3':
dependencies:
'@vue/shared': 3.5.18
'@vue/shared': 3.5.20
consola: 3.4.2
defu: 6.1.4
pathe: 2.0.3
@@ -16489,13 +16581,14 @@ snapshots:
- magicast
- typescript
'@nuxt/ui@3.3.2(@babel/parser@7.28.3)(@netlify/blobs@9.1.2)(change-case@5.4.4)(db0@0.3.2)(embla-carousel@8.6.0)(focus-trap@7.6.5)(ioredis@5.6.1)(jwt-decode@4.0.0)(magicast@0.3.5)(typescript@5.9.2)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(stylus@0.57.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.20(typescript@5.9.2)))(vue@3.5.20(typescript@5.9.2))(zod@3.25.76)':
'@nuxt/ui@4.0.0-alpha.0(@babel/parser@7.28.3)(@netlify/blobs@9.1.2)(change-case@5.4.4)(db0@0.3.2)(embla-carousel@8.6.0)(focus-trap@7.6.5)(ioredis@5.6.1)(jwt-decode@4.0.0)(magicast@0.3.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.9.2)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(stylus@0.57.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.20(typescript@5.9.2)))(vue@3.5.20(typescript@5.9.2))(zod@3.25.76)':
dependencies:
'@ai-sdk/vue': 2.0.26(vue@3.5.20(typescript@5.9.2))(zod@3.25.76)
'@iconify/vue': 5.0.0(vue@3.5.20(typescript@5.9.2))
'@internationalized/date': 3.8.2
'@internationalized/number': 3.6.5
'@nuxt/fonts': 0.11.4(@netlify/blobs@9.1.2)(db0@0.3.2)(ioredis@5.6.1)(magicast@0.3.5)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(stylus@0.57.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))
'@nuxt/icon': 1.15.0(magicast@0.3.5)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(stylus@0.57.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vue@3.5.20(typescript@5.9.2))
'@nuxt/icon': 2.0.0(magicast@0.3.5)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(stylus@0.57.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vue@3.5.20(typescript@5.9.2))
'@nuxt/kit': 4.0.3(magicast@0.3.5)
'@nuxt/schema': 4.0.3
'@nuxtjs/color-mode': 3.5.2(magicast@0.3.5)
@@ -16515,12 +16608,13 @@ snapshots:
embla-carousel-class-names: 8.6.0(embla-carousel@8.6.0)
embla-carousel-fade: 8.6.0(embla-carousel@8.6.0)
embla-carousel-vue: 8.6.0(vue@3.5.20(typescript@5.9.2))
embla-carousel-wheel-gestures: 8.0.2(embla-carousel@8.6.0)
embla-carousel-wheel-gestures: 8.1.0(embla-carousel@8.6.0)
fuse.js: 7.1.0
hookable: 5.5.3
knitwork: 1.2.0
magic-string: 0.30.17
mlly: 1.7.4
motion-v: 1.7.0(@vueuse/core@13.8.0(vue@3.5.20(typescript@5.9.2)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(vue@3.5.20(typescript@5.9.2))
ohash: 2.0.11
pathe: 2.0.3
reka-ui: 2.4.1(typescript@5.9.2)(vue@3.5.20(typescript@5.9.2))
@@ -16530,7 +16624,7 @@ snapshots:
tailwindcss: 4.1.12
tinyglobby: 0.2.14
typescript: 5.9.2
unplugin: 2.3.5
unplugin: 2.3.8
unplugin-auto-import: 19.3.0(@nuxt/kit@4.0.3(magicast@0.3.5))(@vueuse/core@13.8.0(vue@3.5.20(typescript@5.9.2)))
unplugin-vue-components: 28.8.0(@babel/parser@7.28.3)(@nuxt/kit@4.0.3(magicast@0.3.5))(vue@3.5.20(typescript@5.9.2))
vaul-vue: 0.4.1(reka-ui@2.4.1(typescript@5.9.2)(vue@3.5.20(typescript@5.9.2)))(vue@3.5.20(typescript@5.9.2))
@@ -16548,6 +16642,7 @@ snapshots:
- '@babel/parser'
- '@capacitor/preferences'
- '@deno/kv'
- '@emotion/is-prop-valid'
- '@netlify/blobs'
- '@planetscale/database'
- '@upstash/redis'
@@ -16569,6 +16664,8 @@ snapshots:
- magicast
- nprogress
- qrcode
- react
- react-dom
- sortablejs
- supports-color
- universal-cookie
@@ -16647,6 +16744,8 @@ snapshots:
'@one-ini/wasm@0.1.1': {}
'@opentelemetry/api@1.9.0': {}
'@originjs/vite-plugin-commonjs@1.0.3':
dependencies:
esbuild: 0.14.54
@@ -17048,7 +17147,7 @@ snapshots:
'@rollup/pluginutils': 5.2.0(rollup@4.46.2)
commondir: 1.0.1
estree-walker: 2.0.2
fdir: 6.4.6(picomatch@4.0.3)
fdir: 6.5.0(picomatch@4.0.3)
is-reference: 1.2.1
magic-string: 0.30.17
picomatch: 4.0.3
@@ -18312,7 +18411,7 @@ snapshots:
dependencies:
'@vue/compiler-sfc': 3.5.18
ast-kit: 2.1.1
local-pkg: 1.1.1
local-pkg: 1.1.2
magic-string-ast: 1.0.0
unplugin-utils: 0.2.4
optionalDependencies:
@@ -18343,7 +18442,7 @@ snapshots:
'@babel/types': 7.28.0
'@vue/babel-helper-vue-transform-on': 1.4.0
'@vue/babel-plugin-resolve-type': 1.4.0(@babel/core@7.28.0)
'@vue/shared': 3.5.18
'@vue/shared': 3.5.20
optionalDependencies:
'@babel/core': 7.28.0
transitivePeerDependencies:
@@ -18362,7 +18461,7 @@ snapshots:
'@vue/compiler-core@3.5.17':
dependencies:
'@babel/parser': 7.28.0
'@babel/parser': 7.28.3
'@vue/shared': 3.5.17
entities: 4.5.0
estree-walker: 2.0.2
@@ -18532,7 +18631,7 @@ snapshots:
'@volar/language-core': 2.4.22
'@vue/compiler-dom': 3.5.18
'@vue/compiler-vue2': 2.7.16
'@vue/shared': 3.5.18
'@vue/shared': 3.5.20
alien-signals: 1.0.13
minimatch: 9.0.5
muggle-string: 0.4.1
@@ -18545,7 +18644,7 @@ snapshots:
'@volar/language-core': 2.4.22
'@vue/compiler-dom': 3.5.18
'@vue/compiler-vue2': 2.7.16
'@vue/shared': 3.5.18
'@vue/shared': 3.5.20
alien-signals: 2.0.5
muggle-string: 0.4.1
path-browserify: 1.0.1
@@ -18783,6 +18882,14 @@ snapshots:
clean-stack: 2.2.0
indent-string: 4.0.0
ai@5.0.26(zod@3.25.76):
dependencies:
'@ai-sdk/gateway': 1.0.15(zod@3.25.76)
'@ai-sdk/provider': 2.0.0
'@ai-sdk/provider-utils': 3.0.7(zod@3.25.76)
'@opentelemetry/api': 1.9.0
zod: 3.25.76
ajv-errors@3.0.0(ajv@8.17.1):
dependencies:
ajv: 8.17.1
@@ -19209,8 +19316,8 @@ snapshots:
browserslist@4.25.1:
dependencies:
caniuse-lite: 1.0.30001727
electron-to-chromium: 1.5.191
caniuse-lite: 1.0.30001731
electron-to-chromium: 1.5.192
node-releases: 2.0.19
update-browserslist-db: 1.1.3(browserslist@4.25.1)
@@ -19269,7 +19376,7 @@ snapshots:
chokidar: 4.0.3
confbox: 0.2.2
defu: 6.1.4
dotenv: 16.5.0
dotenv: 16.6.1
exsolve: 1.0.7
giget: 2.0.0
jiti: 2.5.1
@@ -19293,7 +19400,7 @@ snapshots:
ohash: 2.0.11
pathe: 2.0.3
perfect-debounce: 1.0.0
pkg-types: 2.2.0
pkg-types: 2.3.0
rc9: 2.1.2
optionalDependencies:
magicast: 0.3.5
@@ -19379,6 +19486,8 @@ snapshots:
caniuse-lite@1.0.30001727: {}
caniuse-lite@1.0.30001731: {}
capital-case@1.0.4:
dependencies:
no-case: 3.0.4
@@ -19700,7 +19809,7 @@ snapshots:
constantinople@4.0.1:
dependencies:
'@babel/parser': 7.28.0
'@babel/parser': 7.28.3
'@babel/types': 7.28.0
content-disposition@0.5.4:
@@ -20329,12 +20438,10 @@ snapshots:
dotenv-expand@12.0.1:
dependencies:
dotenv: 16.5.0
dotenv: 16.6.1
dotenv@16.4.7: {}
dotenv@16.5.0: {}
dotenv@16.6.1: {}
dotenv@17.2.1: {}
@@ -20360,7 +20467,7 @@ snapshots:
ee-first@1.1.1: {}
electron-to-chromium@1.5.191: {}
electron-to-chromium@1.5.192: {}
embla-carousel-auto-height@8.6.0(embla-carousel@8.6.0):
dependencies:
@@ -20392,7 +20499,7 @@ snapshots:
embla-carousel-reactive-utils: 8.6.0(embla-carousel@8.6.0)
vue: 3.5.20(typescript@5.9.2)
embla-carousel-wheel-gestures@8.0.2(embla-carousel@8.6.0):
embla-carousel-wheel-gestures@8.1.0(embla-carousel@8.6.0):
dependencies:
embla-carousel: 8.6.0
wheel-gestures: 2.2.48
@@ -21145,6 +21252,8 @@ snapshots:
events@3.3.0: {}
eventsource-parser@3.0.5: {}
execa@5.1.1:
dependencies:
cross-spawn: 7.0.6
@@ -21396,14 +21505,6 @@ snapshots:
dependencies:
pend: 1.2.0
fdir@6.4.6(picomatch@4.0.2):
optionalDependencies:
picomatch: 4.0.2
fdir@6.4.6(picomatch@4.0.3):
optionalDependencies:
picomatch: 4.0.3
fdir@6.5.0(picomatch@4.0.3):
optionalDependencies:
picomatch: 4.0.3
@@ -21522,7 +21623,7 @@ snapshots:
magic-string: 0.30.17
pathe: 2.0.3
ufo: 1.6.1
unplugin: 2.3.5
unplugin: 2.3.8
transitivePeerDependencies:
- encoding
@@ -21577,6 +21678,15 @@ snapshots:
fraction.js@4.3.7: {}
framer-motion@12.23.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
dependencies:
motion-dom: 12.23.12
motion-utils: 12.23.6
tslib: 2.8.1
optionalDependencies:
react: 19.1.0
react-dom: 19.1.0(react@19.1.0)
fresh@0.5.2: {}
fresh@2.0.0: {}
@@ -21993,6 +22103,8 @@ snapshots:
hex-to-rgba@2.0.1: {}
hey-listen@1.0.8: {}
highlight.js@11.11.1: {}
hoist-non-react-statics@3.3.2:
@@ -22141,7 +22253,7 @@ snapshots:
exsolve: 1.0.7
mocked-exports: 0.1.1
pathe: 2.0.3
unplugin: 2.3.5
unplugin: 2.3.8
unplugin-utils: 0.2.4
imurmurhash@0.1.4: {}
@@ -22671,6 +22783,8 @@ snapshots:
json-schema-traverse@1.0.0: {}
json-schema@0.4.0: {}
json-stable-stringify-without-jsonify@1.0.1: {}
json-stringify-safe@5.0.1: {}
@@ -23036,7 +23150,7 @@ snapshots:
regexp-tree: 0.1.27
type-level-regexp: 0.1.17
ufo: 1.6.1
unplugin: 2.3.5
unplugin: 2.3.8
magic-string-ast@1.0.0:
dependencies:
@@ -23227,6 +23341,24 @@ snapshots:
module-details-from-path@1.0.3: {}
motion-dom@12.23.12:
dependencies:
motion-utils: 12.23.6
motion-utils@12.23.6: {}
motion-v@1.7.0(@vueuse/core@13.8.0(vue@3.5.20(typescript@5.9.2)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(vue@3.5.20(typescript@5.9.2)):
dependencies:
'@vueuse/core': 13.8.0(vue@3.5.20(typescript@5.9.2))
framer-motion: 12.23.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
hey-listen: 1.0.8
motion-dom: 12.23.12
vue: 3.5.20(typescript@5.9.2)
transitivePeerDependencies:
- '@emotion/is-prop-valid'
- react
- react-dom
mri@1.2.0: {}
mrmime@2.0.1: {}
@@ -23473,7 +23605,7 @@ snapshots:
node-source-walk@7.0.1:
dependencies:
'@babel/parser': 7.28.0
'@babel/parser': 7.28.3
node-window-polyfill@1.0.4:
dependencies:
@@ -25810,6 +25942,10 @@ snapshots:
dependencies:
tslib: 2.8.1
swrv@1.1.0(vue@3.5.20(typescript@5.9.2)):
dependencies:
vue: 3.5.20(typescript@5.9.2)
symbol-observable@1.2.0: {}
symbol-observable@4.0.0: {}
@@ -25930,8 +26066,8 @@ snapshots:
tinyglobby@0.2.14:
dependencies:
fdir: 6.4.6(picomatch@4.0.2)
picomatch: 4.0.2
fdir: 6.5.0(picomatch@4.0.3)
picomatch: 4.0.3
tinypool@1.1.1: {}
@@ -26170,7 +26306,7 @@ snapshots:
acorn: 8.15.0
estree-walker: 3.0.3
magic-string: 0.30.17
unplugin: 2.3.5
unplugin: 2.3.8
undefsafe@2.0.5: {}
@@ -26216,16 +26352,16 @@ snapshots:
acorn: 8.15.0
escape-string-regexp: 5.0.0
estree-walker: 3.0.3
local-pkg: 1.1.1
local-pkg: 1.1.2
magic-string: 0.30.17
mlly: 1.7.4
pathe: 2.0.3
picomatch: 4.0.3
pkg-types: 2.2.0
pkg-types: 2.3.0
scule: 1.3.0
strip-literal: 3.0.0
tinyglobby: 0.2.14
unplugin: 2.3.5
unplugin: 2.3.8
unplugin-utils: 0.2.4
unimport@5.2.0:
@@ -26242,7 +26378,7 @@ snapshots:
scule: 1.3.0
strip-literal: 3.0.0
tinyglobby: 0.2.14
unplugin: 2.3.5
unplugin: 2.3.8
unplugin-utils: 0.2.4
union@0.5.0:
@@ -26261,11 +26397,11 @@ snapshots:
unplugin-auto-import@19.3.0(@nuxt/kit@4.0.3(magicast@0.3.5))(@vueuse/core@13.8.0(vue@3.5.20(typescript@5.9.2))):
dependencies:
local-pkg: 1.1.1
local-pkg: 1.1.2
magic-string: 0.30.17
picomatch: 4.0.3
unimport: 4.2.0
unplugin: 2.3.5
unplugin: 2.3.8
unplugin-utils: 0.2.4
optionalDependencies:
'@nuxt/kit': 4.0.3(magicast@0.3.5)
@@ -26294,11 +26430,11 @@ snapshots:
dependencies:
chokidar: 3.6.0
debug: 4.4.1(supports-color@5.5.0)
local-pkg: 1.1.1
local-pkg: 1.1.2
magic-string: 0.30.17
mlly: 1.7.4
tinyglobby: 0.2.14
unplugin: 2.3.5
unplugin: 2.3.8
unplugin-utils: 0.2.4
vue: 3.5.20(typescript@5.9.2)
optionalDependencies:
@@ -26323,7 +26459,7 @@ snapshots:
picomatch: 4.0.3
scule: 1.3.0
tinyglobby: 0.2.14
unplugin: 2.3.5
unplugin: 2.3.8
unplugin-utils: 0.2.4
yaml: 2.8.0
optionalDependencies:
@@ -27043,7 +27179,7 @@ snapshots:
with@7.0.2:
dependencies:
'@babel/parser': 7.28.0
'@babel/parser': 7.28.3
'@babel/types': 7.28.0
assert-never: 1.4.0
babel-walk: 3.0.0-canary-5

View File

@@ -8,6 +8,7 @@
@import 'tailwindcss/utilities.css';
@import 'tw-animate-css';
@import '../../@tailwind-shared/index.css';
@import '@nuxt/ui';
/* Scan unraid-ui package from linked directory for class usage */

View File

@@ -9,6 +9,8 @@ import ColorSwitcherCe from '~/components/ColorSwitcher.ce.vue';
import DummyServerSwitcher from '~/components/DummyServerSwitcher.vue';
import ModalsCe from '~/components/Modals.ce.vue';
import { storeToRefs } from 'pinia';
const router = useRouter();
const routes = computed(() => {

View File

@@ -0,0 +1,67 @@
<script setup lang="ts">
import { ref } from 'vue';
import { UNavigationMenu, UPage } from '#components';
const items = ref([
{
label: 'Guide',
icon: 'i-lucide-book-open',
to: '/getting-started',
children: [
{
label: 'Introduction',
description: 'Fully styled and customizable components for Nuxt.',
icon: 'i-lucide-house',
},
{
label: 'Installation',
description: 'Learn how to install and configure Nuxt UI in your application.',
icon: 'i-lucide-cloud-download',
},
],
},
{
label: 'Components',
icon: 'i-lucide-box',
to: '/components',
active: true,
children: [
{
label: 'Link',
icon: 'i-lucide-file-text',
description: 'Use NuxtLink with superpowers.',
to: '/components/link',
},
{
label: 'Modal',
icon: 'i-lucide-file-text',
description: 'Display a modal within your application.',
to: '/components/modal',
},
],
},
{
label: 'GitHub',
icon: 'i-simple-icons-github',
badge: '3.8k',
to: 'https://github.com/nuxt/ui',
target: '_blank',
},
{
label: 'Help',
icon: 'i-lucide-circle-help',
disabled: true,
},
]);
</script>
<template>
<UPage>
<template #left>
<UNavigationMenu collapsed orientation="vertical" :items="items" />
</template>
<slot />
</UPage>
</template>

View File

@@ -101,7 +101,7 @@
"@jsonforms/vue": "3.6.0",
"@jsonforms/vue-vanilla": "3.6.0",
"@jsonforms/vue-vuetify": "3.6.0",
"@nuxt/ui": "3.3.2",
"@nuxt/ui": "4.0.0-alpha.0",
"@nuxtjs/color-mode": "3.5.2",
"@pinia/nuxt": "0.11.2",
"@unraid/shared-callbacks": "1.1.1",

22
web/pages/docker.vue Normal file
View File

@@ -0,0 +1,22 @@
<script setup lang="ts">
import { UButton, UPageHeader } from '#components';
import { definePageMeta } from '#imports';
definePageMeta({
layout: 'unraid-next',
});
const test = 'Unraid Next Page';
const description = 'This is a sample page using the Unraid Next layout.';
</script>
<template>
<div>
<UPageHeader :title="test" :description="description" />
<p class="mb-4">This is a sample page using the Unraid Next layout.</p>
<p class="mb-4">You can customize this page as needed.</p>
<UButton color="primary" />
</div>
</template>