From 1cc07901f661ecc8fa82c9abb1ae7159b16f2938 Mon Sep 17 00:00:00 2001 From: vcoppe Date: Sat, 21 Jun 2025 21:07:36 +0200 Subject: [PATCH] progress --- website/.prettierignore => .prettierignore | 0 .prettierrc | 2 +- README.md | 44 +- gpx/.prettierignore | 1 - website/components.json | 4 +- website/package-lock.json | 1464 +++++----- website/package.json | 20 +- website/postcss.config.js | 6 - website/src/app.css | 122 + website/src/app.pcss | 86 - website/src/hooks.server.js | 6 +- website/src/lib/assets/symbols.ts | 7 +- .../lib/components/AlgoliaDocSearch.svelte | 44 +- .../lib/components/ButtonWithTooltip.svelte | 52 +- .../lib/components/CoordinatesPopup.svelte | 18 - .../lib/components/ElevationProfile.svelte | 74 +- website/src/lib/components/Footer.svelte | 56 +- .../src/lib/components/GPXStatistics.svelte | 16 +- website/src/lib/components/Help.svelte | 6 +- .../src/lib/components/LanguageSelect.svelte | 34 +- website/src/lib/components/Map.svelte | 394 --- website/src/lib/components/MapPopup.svelte | 25 - website/src/lib/components/MapPopup.ts | 82 - website/src/lib/components/Menu.svelte | 282 +- website/src/lib/components/ModeSwitch.svelte | 9 +- website/src/lib/components/Nav.svelte | 24 +- website/src/lib/components/Resizer.svelte | 20 +- website/src/lib/components/Shortcut.svelte | 6 +- website/src/lib/components/Tooltip.svelte | 24 +- website/src/lib/components/WithUnits.svelte | 26 +- .../collapsible-tree/CollapsibleTree.svelte | 26 +- .../CollapsibleTreeNode.svelte | 49 +- .../collapsible-tree/utils.svelte.ts | 31 + .../custom-control/CustomControl.svelte | 27 - .../lib/components/docs/DocsContainer.svelte | 8 +- .../src/lib/components/docs/DocsImage.svelte | 9 +- .../src/lib/components/docs/DocsNote.svelte | 8 +- website/src/lib/components/docs/docs.ts | 12 +- .../lib/components/embedding/Embedding.svelte | 8 +- .../embedding/EmbeddingPlayground.svelte | 104 +- .../lib/components/embedding/OpenIn.svelte | 15 +- .../lib/components/{ => export}/Export.svelte | 123 +- .../src/lib/components/export/utils.svelte.ts | 67 + .../lib/components/file-list/FileList.svelte | 33 +- .../components/file-list/FileListNode.svelte | 26 +- .../file-list/FileListNodeContent.svelte | 3 +- .../file-list/FileListNodeLabel.svelte | 194 +- .../file-list/FileListNodeStore.svelte | 6 +- .../src/lib/components/file-list/Selection.ts | 48 +- .../components/file-list/StyleDialog.svelte | 173 -- .../{ => metadata}/MetadataDialog.svelte | 46 +- .../file-list/metadata/utils.svelte.ts | 3 + .../file-list/style/StyleDialog.svelte | 164 ++ .../file-list/style/utils.svelte.ts | 3 + .../gpx-layer/CopyCoordinates.svelte | 23 - .../layer-control/LayerControl.svelte | 222 -- .../components/layer-control/LayerTree.svelte | 20 - .../components/map/CoordinatesPopup.svelte | 20 + website/src/lib/components/map/Map.svelte | 254 ++ .../src/lib/components/map/MapPopup.svelte | 22 + .../map/custom-control/CustomControl.svelte | 38 + .../{ => map}/custom-control/CustomControl.ts | 0 .../map/gpx-layer/CopyCoordinates.svelte | 30 + .../{ => map}/gpx-layer/DistanceMarkers.ts | 6 +- .../{ => map}/gpx-layer/GPXLayer.ts | 6 +- .../{ => map}/gpx-layer/GPXLayerPopup.ts | 2 +- .../{ => map}/gpx-layer/GPXLayers.svelte | 0 .../{ => map}/gpx-layer/StartEndMarkers.ts | 0 .../gpx-layer/TrackpointPopup.svelte | 12 +- .../{ => map}/gpx-layer/WaypointPopup.svelte | 24 +- .../layer-control/CustomLayers.svelte | 32 +- .../map/layer-control/LayerControl.svelte | 231 ++ .../layer-control/LayerControlSettings.svelte | 84 +- .../map/layer-control/LayerTree.svelte | 29 + .../layer-control/LayerTreeNode.svelte | 77 +- .../{ => map}/layer-control/OverpassLayer.ts | 6 +- .../layer-control/OverpassPopup.svelte | 8 +- .../layer-control/utils.svelte.ts} | 4 +- .../{ => map}/street-view-control/Google.ts | 0 .../street-view-control/Mapillary.ts | 11 +- .../StreetViewControl.svelte | 79 + .../map/street-view-control/utils.svelte.ts | 3 + .../src/lib/components/map/utils.svelte.ts | 384 +++ .../StreetViewControl.svelte | 74 - .../src/lib/components/toolbar/Toolbar.svelte | 55 +- .../lib/components/toolbar/ToolbarItem.svelte | 56 +- .../components/toolbar/ToolbarItemMenu.svelte | 32 +- .../lib/components/toolbar/tools/Clean.svelte | 89 +- .../components/toolbar/tools/Elevation.svelte | 28 +- .../components/toolbar/tools/Extract.svelte | 14 +- .../lib/components/toolbar/tools/Merge.svelte | 32 +- .../components/toolbar/tools/Reduce.svelte | 156 +- .../lib/components/toolbar/tools/Time.svelte | 53 +- .../components/toolbar/tools/Waypoint.svelte | 68 +- .../toolbar/tools/routing/Routing.svelte | 67 +- .../tools/routing/RoutingControlPopup.svelte | 12 +- .../toolbar/tools/routing/RoutingControls.ts | 6 +- .../routing/{Routing.ts => routing.svelte.ts} | 36 +- .../toolbar/tools/scissors/Scissors.svelte | 113 +- ...litControls.ts => SplitControls.svelte.ts} | 12 +- .../toolbar/tools/scissors/utils.svelte.ts | 9 + .../lib/components/toolbar/utils.svelte.ts | 17 + .../ui/accordion/accordion-content.svelte | 12 +- .../ui/accordion/accordion-item.svelte | 7 +- .../ui/accordion/accordion-trigger.svelte | 13 +- .../components/ui/accordion/accordion.svelte | 16 + .../src/lib/components/ui/accordion/index.ts | 3 +- .../alert-dialog/alert-dialog-action.svelte | 7 +- .../alert-dialog/alert-dialog-cancel.svelte | 3 +- .../alert-dialog/alert-dialog-content.svelte | 9 +- .../alert-dialog-description.svelte | 1 + .../alert-dialog/alert-dialog-footer.svelte | 6 +- .../alert-dialog/alert-dialog-header.svelte | 6 +- .../alert-dialog/alert-dialog-overlay.svelte | 3 +- .../ui/alert-dialog/alert-dialog-title.svelte | 3 +- .../alert-dialog/alert-dialog-trigger.svelte | 7 + .../lib/components/ui/alert-dialog/index.ts | 2 +- .../ui/alert/alert-description.svelte | 13 +- .../components/ui/alert/alert-title.svelte | 13 +- .../src/lib/components/ui/alert/alert.svelte | 17 +- .../lib/components/ui/button/button.svelte | 130 +- .../ui/calendar/calendar-caption.svelte | 76 + .../ui/calendar/calendar-cell.svelte | 2 +- .../ui/calendar/calendar-day.svelte | 23 +- .../ui/calendar/calendar-grid.svelte | 2 +- .../ui/calendar/calendar-head-cell.svelte | 5 +- .../ui/calendar/calendar-header.svelte | 5 +- .../ui/calendar/calendar-heading.svelte | 6 +- .../ui/calendar/calendar-month-select.svelte | 44 + .../ui/calendar/calendar-month.svelte | 15 + .../ui/calendar/calendar-months.svelte | 5 +- .../ui/calendar/calendar-nav.svelte | 19 + .../ui/calendar/calendar-next-button.svelte | 15 +- .../ui/calendar/calendar-prev-button.svelte | 15 +- .../ui/calendar/calendar-year-select.svelte | 43 + .../components/ui/calendar/calendar.svelte | 114 +- .../src/lib/components/ui/calendar/index.ts | 10 + .../lib/components/ui/card/card-action.svelte | 20 + .../components/ui/card/card-content.svelte | 5 +- .../ui/card/card-description.svelte | 10 +- .../lib/components/ui/card/card-footer.svelte | 10 +- .../lib/components/ui/card/card-header.svelte | 13 +- .../lib/components/ui/card/card-title.svelte | 13 +- .../src/lib/components/ui/card/card.svelte | 9 +- website/src/lib/components/ui/card/index.ts | 3 + .../components/ui/checkbox/checkbox.svelte | 21 +- .../ui/collapsible/collapsible-content.svelte | 12 +- .../ui/collapsible/collapsible-trigger.svelte | 7 + .../ui/collapsible/collapsible.svelte | 11 + .../lib/components/ui/collapsible/index.ts | 6 +- .../context-menu-checkbox-item.svelte | 20 +- .../context-menu/context-menu-content.svelte | 3 +- .../context-menu-group-heading.svelte | 4 +- .../ui/context-menu/context-menu-group.svelte | 7 + .../ui/context-menu/context-menu-item.svelte | 8 +- .../ui/context-menu/context-menu-label.svelte | 31 +- .../context-menu-radio-group.svelte | 17 +- .../context-menu-radio-item.svelte | 13 +- .../context-menu-separator.svelte | 1 + .../context-menu/context-menu-shortcut.svelte | 4 +- .../context-menu-sub-content.svelte | 3 +- .../context-menu-sub-trigger.svelte | 13 +- .../context-menu/context-menu-trigger.svelte | 7 + .../lib/components/ui/context-menu/index.ts | 10 +- .../ui/date-picker/DatePicker.svelte | 64 +- .../components/ui/dialog/dialog-close.svelte | 7 + .../ui/dialog/dialog-content.svelte | 43 + .../ui/dialog/dialog-description.svelte | 17 + .../components/ui/dialog/dialog-footer.svelte | 20 + .../components/ui/dialog/dialog-header.svelte | 20 + .../ui/dialog/dialog-overlay.svelte | 20 + .../components/ui/dialog/dialog-title.svelte | 17 + .../ui/dialog/dialog-trigger.svelte | 7 + website/src/lib/components/ui/dialog/index.ts | 37 + .../dropdown-menu-checkbox-item.svelte | 17 +- .../dropdown-menu-content.svelte | 3 +- .../dropdown-menu-group-heading.svelte | 7 +- .../dropdown-menu/dropdown-menu-group.svelte | 7 + .../dropdown-menu/dropdown-menu-item.svelte | 8 +- .../dropdown-menu/dropdown-menu-label.svelte | 7 +- .../dropdown-menu-radio-group.svelte | 17 +- .../dropdown-menu-radio-item.svelte | 13 +- .../dropdown-menu-separator.svelte | 3 +- .../dropdown-menu-shortcut.svelte | 6 +- .../dropdown-menu-sub-content.svelte | 3 +- .../dropdown-menu-sub-trigger.svelte | 9 +- .../dropdown-menu-trigger.svelte | 7 + .../lib/components/ui/dropdown-menu/index.ts | 11 +- .../src/lib/components/ui/input/input.svelte | 13 +- .../src/lib/components/ui/label/label.svelte | 3 +- .../src/lib/components/ui/menubar/index.ts | 11 +- .../ui/menubar/menubar-checkbox-item.svelte | 17 +- .../ui/menubar/menubar-content.svelte | 3 +- .../ui/menubar/menubar-group-heading.svelte | 11 +- .../ui/menubar/menubar-group.svelte | 12 + .../components/ui/menubar/menubar-item.svelte | 8 +- .../ui/menubar/menubar-label.svelte | 30 +- .../ui/menubar/menubar-radio-item.svelte | 13 +- .../ui/menubar/menubar-separator.svelte | 3 +- .../ui/menubar/menubar-shortcut.svelte | 4 +- .../ui/menubar/menubar-sub-content.svelte | 3 +- .../ui/menubar/menubar-sub-trigger.svelte | 13 +- .../ui/menubar/menubar-trigger.svelte | 3 +- .../lib/components/ui/menubar/menubar.svelte | 6 +- .../src/lib/components/ui/popover/index.ts | 2 +- .../ui/popover/popover-content.svelte | 3 +- .../ui/popover/popover-trigger.svelte | 17 + .../ui/radio-group/radio-group-item.svelte | 15 +- .../ui/radio-group/radio-group.svelte | 8 +- .../scroll-area/scroll-area-scrollbar.svelte | 14 +- .../ui/scroll-area/scroll-area.svelte | 62 +- website/src/lib/components/ui/select/index.ts | 11 +- .../ui/select/select-content.svelte | 9 +- .../ui/select/select-group-heading.svelte | 11 +- .../components/ui/select/select-group.svelte | 7 + .../components/ui/select/select-item.svelte | 13 +- .../components/ui/select/select-label.svelte | 26 +- .../select/select-scroll-down-button.svelte | 9 +- .../ui/select/select-scroll-up-button.svelte | 9 +- .../ui/select/select-separator.svelte | 7 +- .../ui/select/select-trigger.svelte | 17 +- .../components/ui/separator/separator.svelte | 6 +- website/src/lib/components/ui/sheet/index.ts | 4 +- .../components/ui/sheet/sheet-close.svelte | 7 + .../components/ui/sheet/sheet-content.svelte | 23 +- .../ui/sheet/sheet-description.svelte | 1 + .../components/ui/sheet/sheet-footer.svelte | 6 +- .../components/ui/sheet/sheet-header.svelte | 6 +- .../components/ui/sheet/sheet-overlay.svelte | 5 +- .../components/ui/sheet/sheet-title.svelte | 3 +- .../components/ui/sheet/sheet-trigger.svelte | 7 + .../lib/components/ui/slider/slider.svelte | 20 +- .../lib/components/ui/sonner/sonner.svelte | 9 +- .../lib/components/ui/switch/switch.svelte | 10 +- .../components/ui/textarea/textarea.svelte | 6 +- .../ui/time-picker/TimeComponentInput.svelte | 62 +- .../ui/toggle-group/toggle-group-item.svelte | 4 + .../ui/toggle-group/toggle-group.svelte | 8 +- .../lib/components/ui/toggle/toggle.svelte | 11 +- .../src/lib/components/ui/tooltip/index.ts | 5 +- .../ui/tooltip/tooltip-content.svelte | 48 +- .../ui/tooltip/tooltip-trigger.svelte | 7 + website/src/lib/db.ts | 2537 ++++++++--------- website/src/lib/docs/be/files-and-stats.mdx | 2 +- website/src/lib/docs/be/gpx.mdx | 2 +- website/src/lib/docs/be/home/funding.mdx | 2 +- website/src/lib/docs/be/home/translation.mdx | 2 +- website/src/lib/docs/be/map-controls.mdx | 2 +- website/src/lib/docs/be/menu/edit.mdx | 2 +- website/src/lib/docs/be/menu/file.mdx | 2 +- website/src/lib/docs/be/menu/settings.mdx | 2 +- website/src/lib/docs/be/menu/view.mdx | 2 +- website/src/lib/docs/be/toolbar/clean.mdx | 2 +- website/src/lib/docs/be/toolbar/elevation.mdx | 2 +- website/src/lib/docs/be/toolbar/extract.mdx | 2 +- website/src/lib/docs/be/toolbar/merge.mdx | 2 +- website/src/lib/docs/be/toolbar/minify.mdx | 4 +- website/src/lib/docs/be/toolbar/poi.mdx | 2 +- website/src/lib/docs/be/toolbar/routing.mdx | 2 +- website/src/lib/docs/be/toolbar/scissors.mdx | 2 +- website/src/lib/docs/be/toolbar/time.mdx | 2 +- website/src/lib/docs/ca/files-and-stats.mdx | 2 +- website/src/lib/docs/ca/gpx.mdx | 2 +- website/src/lib/docs/ca/home/funding.mdx | 2 +- website/src/lib/docs/ca/home/translation.mdx | 2 +- website/src/lib/docs/ca/map-controls.mdx | 2 +- website/src/lib/docs/ca/menu/edit.mdx | 2 +- website/src/lib/docs/ca/menu/file.mdx | 2 +- website/src/lib/docs/ca/menu/settings.mdx | 2 +- website/src/lib/docs/ca/menu/view.mdx | 2 +- website/src/lib/docs/ca/toolbar/clean.mdx | 2 +- website/src/lib/docs/ca/toolbar/elevation.mdx | 2 +- website/src/lib/docs/ca/toolbar/extract.mdx | 2 +- website/src/lib/docs/ca/toolbar/merge.mdx | 2 +- website/src/lib/docs/ca/toolbar/minify.mdx | 4 +- website/src/lib/docs/ca/toolbar/poi.mdx | 2 +- website/src/lib/docs/ca/toolbar/routing.mdx | 2 +- website/src/lib/docs/ca/toolbar/scissors.mdx | 2 +- website/src/lib/docs/ca/toolbar/time.mdx | 2 +- website/src/lib/docs/cs/files-and-stats.mdx | 2 +- website/src/lib/docs/cs/gpx.mdx | 2 +- website/src/lib/docs/cs/home/funding.mdx | 2 +- website/src/lib/docs/cs/home/translation.mdx | 2 +- website/src/lib/docs/cs/map-controls.mdx | 2 +- website/src/lib/docs/cs/menu/edit.mdx | 2 +- website/src/lib/docs/cs/menu/file.mdx | 2 +- website/src/lib/docs/cs/menu/settings.mdx | 2 +- website/src/lib/docs/cs/menu/view.mdx | 2 +- website/src/lib/docs/cs/toolbar/clean.mdx | 2 +- website/src/lib/docs/cs/toolbar/elevation.mdx | 2 +- website/src/lib/docs/cs/toolbar/extract.mdx | 2 +- website/src/lib/docs/cs/toolbar/merge.mdx | 2 +- website/src/lib/docs/cs/toolbar/minify.mdx | 4 +- website/src/lib/docs/cs/toolbar/poi.mdx | 2 +- website/src/lib/docs/cs/toolbar/routing.mdx | 2 +- website/src/lib/docs/cs/toolbar/scissors.mdx | 2 +- website/src/lib/docs/cs/toolbar/time.mdx | 2 +- website/src/lib/docs/da/files-and-stats.mdx | 2 +- website/src/lib/docs/da/gpx.mdx | 2 +- website/src/lib/docs/da/home/funding.mdx | 2 +- website/src/lib/docs/da/home/translation.mdx | 2 +- website/src/lib/docs/da/map-controls.mdx | 2 +- website/src/lib/docs/da/menu/edit.mdx | 2 +- website/src/lib/docs/da/menu/file.mdx | 2 +- website/src/lib/docs/da/menu/settings.mdx | 2 +- website/src/lib/docs/da/menu/view.mdx | 2 +- website/src/lib/docs/da/toolbar/clean.mdx | 2 +- website/src/lib/docs/da/toolbar/elevation.mdx | 2 +- website/src/lib/docs/da/toolbar/extract.mdx | 2 +- website/src/lib/docs/da/toolbar/merge.mdx | 2 +- website/src/lib/docs/da/toolbar/minify.mdx | 4 +- website/src/lib/docs/da/toolbar/poi.mdx | 2 +- website/src/lib/docs/da/toolbar/routing.mdx | 2 +- website/src/lib/docs/da/toolbar/scissors.mdx | 2 +- website/src/lib/docs/da/toolbar/time.mdx | 2 +- website/src/lib/docs/de/files-and-stats.mdx | 2 +- website/src/lib/docs/de/gpx.mdx | 2 +- website/src/lib/docs/de/home/funding.mdx | 2 +- website/src/lib/docs/de/home/translation.mdx | 2 +- website/src/lib/docs/de/map-controls.mdx | 2 +- website/src/lib/docs/de/menu/edit.mdx | 2 +- website/src/lib/docs/de/menu/file.mdx | 2 +- website/src/lib/docs/de/menu/settings.mdx | 2 +- website/src/lib/docs/de/menu/view.mdx | 2 +- website/src/lib/docs/de/toolbar/clean.mdx | 2 +- website/src/lib/docs/de/toolbar/elevation.mdx | 2 +- website/src/lib/docs/de/toolbar/extract.mdx | 2 +- website/src/lib/docs/de/toolbar/merge.mdx | 2 +- website/src/lib/docs/de/toolbar/minify.mdx | 4 +- website/src/lib/docs/de/toolbar/poi.mdx | 2 +- website/src/lib/docs/de/toolbar/routing.mdx | 2 +- website/src/lib/docs/de/toolbar/scissors.mdx | 2 +- website/src/lib/docs/de/toolbar/time.mdx | 2 +- website/src/lib/docs/el/files-and-stats.mdx | 2 +- website/src/lib/docs/el/gpx.mdx | 2 +- website/src/lib/docs/el/home/funding.mdx | 2 +- website/src/lib/docs/el/home/translation.mdx | 2 +- website/src/lib/docs/el/map-controls.mdx | 2 +- website/src/lib/docs/el/menu/edit.mdx | 2 +- website/src/lib/docs/el/menu/file.mdx | 2 +- website/src/lib/docs/el/menu/settings.mdx | 2 +- website/src/lib/docs/el/menu/view.mdx | 2 +- website/src/lib/docs/el/toolbar/clean.mdx | 2 +- website/src/lib/docs/el/toolbar/elevation.mdx | 2 +- website/src/lib/docs/el/toolbar/extract.mdx | 2 +- website/src/lib/docs/el/toolbar/merge.mdx | 2 +- website/src/lib/docs/el/toolbar/minify.mdx | 4 +- website/src/lib/docs/el/toolbar/poi.mdx | 2 +- website/src/lib/docs/el/toolbar/routing.mdx | 2 +- website/src/lib/docs/el/toolbar/scissors.mdx | 2 +- website/src/lib/docs/el/toolbar/time.mdx | 2 +- website/src/lib/docs/en/files-and-stats.mdx | 2 +- website/src/lib/docs/en/gpx.mdx | 2 +- website/src/lib/docs/en/home/funding.mdx | 2 +- website/src/lib/docs/en/home/translation.mdx | 2 +- website/src/lib/docs/en/map-controls.mdx | 2 +- website/src/lib/docs/en/menu/edit.mdx | 2 +- website/src/lib/docs/en/menu/file.mdx | 2 +- website/src/lib/docs/en/menu/settings.mdx | 2 +- website/src/lib/docs/en/menu/view.mdx | 2 +- website/src/lib/docs/en/toolbar/clean.mdx | 2 +- website/src/lib/docs/en/toolbar/elevation.mdx | 2 +- website/src/lib/docs/en/toolbar/extract.mdx | 2 +- website/src/lib/docs/en/toolbar/merge.mdx | 2 +- website/src/lib/docs/en/toolbar/minify.mdx | 4 +- website/src/lib/docs/en/toolbar/poi.mdx | 2 +- website/src/lib/docs/en/toolbar/routing.mdx | 2 +- website/src/lib/docs/en/toolbar/scissors.mdx | 2 +- website/src/lib/docs/en/toolbar/time.mdx | 2 +- website/src/lib/docs/es/files-and-stats.mdx | 2 +- website/src/lib/docs/es/gpx.mdx | 2 +- website/src/lib/docs/es/home/funding.mdx | 2 +- website/src/lib/docs/es/home/translation.mdx | 2 +- website/src/lib/docs/es/map-controls.mdx | 2 +- website/src/lib/docs/es/menu/edit.mdx | 2 +- website/src/lib/docs/es/menu/file.mdx | 2 +- website/src/lib/docs/es/menu/settings.mdx | 2 +- website/src/lib/docs/es/menu/view.mdx | 2 +- website/src/lib/docs/es/toolbar/clean.mdx | 2 +- website/src/lib/docs/es/toolbar/elevation.mdx | 2 +- website/src/lib/docs/es/toolbar/extract.mdx | 2 +- website/src/lib/docs/es/toolbar/merge.mdx | 2 +- website/src/lib/docs/es/toolbar/minify.mdx | 4 +- website/src/lib/docs/es/toolbar/poi.mdx | 2 +- website/src/lib/docs/es/toolbar/routing.mdx | 2 +- website/src/lib/docs/es/toolbar/scissors.mdx | 2 +- website/src/lib/docs/es/toolbar/time.mdx | 2 +- website/src/lib/docs/eu/files-and-stats.mdx | 2 +- website/src/lib/docs/eu/gpx.mdx | 2 +- website/src/lib/docs/eu/home/funding.mdx | 2 +- website/src/lib/docs/eu/home/translation.mdx | 2 +- website/src/lib/docs/eu/map-controls.mdx | 2 +- website/src/lib/docs/eu/menu/edit.mdx | 2 +- website/src/lib/docs/eu/menu/file.mdx | 2 +- website/src/lib/docs/eu/menu/settings.mdx | 2 +- website/src/lib/docs/eu/menu/view.mdx | 2 +- website/src/lib/docs/eu/toolbar/clean.mdx | 2 +- website/src/lib/docs/eu/toolbar/elevation.mdx | 2 +- website/src/lib/docs/eu/toolbar/extract.mdx | 2 +- website/src/lib/docs/eu/toolbar/merge.mdx | 2 +- website/src/lib/docs/eu/toolbar/minify.mdx | 4 +- website/src/lib/docs/eu/toolbar/poi.mdx | 2 +- website/src/lib/docs/eu/toolbar/routing.mdx | 2 +- website/src/lib/docs/eu/toolbar/scissors.mdx | 2 +- website/src/lib/docs/eu/toolbar/time.mdx | 2 +- website/src/lib/docs/fi/files-and-stats.mdx | 2 +- website/src/lib/docs/fi/gpx.mdx | 2 +- website/src/lib/docs/fi/home/funding.mdx | 2 +- website/src/lib/docs/fi/home/translation.mdx | 2 +- website/src/lib/docs/fi/map-controls.mdx | 2 +- website/src/lib/docs/fi/menu/edit.mdx | 2 +- website/src/lib/docs/fi/menu/file.mdx | 2 +- website/src/lib/docs/fi/menu/settings.mdx | 2 +- website/src/lib/docs/fi/menu/view.mdx | 2 +- website/src/lib/docs/fi/toolbar/clean.mdx | 2 +- website/src/lib/docs/fi/toolbar/elevation.mdx | 2 +- website/src/lib/docs/fi/toolbar/extract.mdx | 2 +- website/src/lib/docs/fi/toolbar/merge.mdx | 2 +- website/src/lib/docs/fi/toolbar/minify.mdx | 4 +- website/src/lib/docs/fi/toolbar/poi.mdx | 2 +- website/src/lib/docs/fi/toolbar/routing.mdx | 2 +- website/src/lib/docs/fi/toolbar/scissors.mdx | 2 +- website/src/lib/docs/fi/toolbar/time.mdx | 2 +- website/src/lib/docs/fr/files-and-stats.mdx | 2 +- website/src/lib/docs/fr/gpx.mdx | 2 +- website/src/lib/docs/fr/home/funding.mdx | 2 +- website/src/lib/docs/fr/home/translation.mdx | 2 +- website/src/lib/docs/fr/map-controls.mdx | 2 +- website/src/lib/docs/fr/menu/edit.mdx | 2 +- website/src/lib/docs/fr/menu/file.mdx | 2 +- website/src/lib/docs/fr/menu/settings.mdx | 2 +- website/src/lib/docs/fr/menu/view.mdx | 2 +- website/src/lib/docs/fr/toolbar/clean.mdx | 2 +- website/src/lib/docs/fr/toolbar/elevation.mdx | 2 +- website/src/lib/docs/fr/toolbar/extract.mdx | 2 +- website/src/lib/docs/fr/toolbar/merge.mdx | 2 +- website/src/lib/docs/fr/toolbar/minify.mdx | 4 +- website/src/lib/docs/fr/toolbar/poi.mdx | 2 +- website/src/lib/docs/fr/toolbar/routing.mdx | 2 +- website/src/lib/docs/fr/toolbar/scissors.mdx | 2 +- website/src/lib/docs/fr/toolbar/time.mdx | 2 +- website/src/lib/docs/he/files-and-stats.mdx | 2 +- website/src/lib/docs/he/gpx.mdx | 2 +- website/src/lib/docs/he/home/funding.mdx | 2 +- website/src/lib/docs/he/home/translation.mdx | 2 +- website/src/lib/docs/he/map-controls.mdx | 2 +- website/src/lib/docs/he/menu/edit.mdx | 2 +- website/src/lib/docs/he/menu/file.mdx | 2 +- website/src/lib/docs/he/menu/settings.mdx | 2 +- website/src/lib/docs/he/menu/view.mdx | 2 +- website/src/lib/docs/he/toolbar/clean.mdx | 2 +- website/src/lib/docs/he/toolbar/elevation.mdx | 2 +- website/src/lib/docs/he/toolbar/extract.mdx | 2 +- website/src/lib/docs/he/toolbar/merge.mdx | 2 +- website/src/lib/docs/he/toolbar/minify.mdx | 4 +- website/src/lib/docs/he/toolbar/poi.mdx | 2 +- website/src/lib/docs/he/toolbar/routing.mdx | 2 +- website/src/lib/docs/he/toolbar/scissors.mdx | 2 +- website/src/lib/docs/he/toolbar/time.mdx | 2 +- website/src/lib/docs/hu/files-and-stats.mdx | 2 +- website/src/lib/docs/hu/gpx.mdx | 2 +- website/src/lib/docs/hu/home/funding.mdx | 2 +- website/src/lib/docs/hu/home/translation.mdx | 2 +- website/src/lib/docs/hu/map-controls.mdx | 2 +- website/src/lib/docs/hu/menu/edit.mdx | 2 +- website/src/lib/docs/hu/menu/file.mdx | 2 +- website/src/lib/docs/hu/menu/settings.mdx | 2 +- website/src/lib/docs/hu/menu/view.mdx | 2 +- website/src/lib/docs/hu/toolbar/clean.mdx | 2 +- website/src/lib/docs/hu/toolbar/elevation.mdx | 2 +- website/src/lib/docs/hu/toolbar/extract.mdx | 2 +- website/src/lib/docs/hu/toolbar/merge.mdx | 2 +- website/src/lib/docs/hu/toolbar/minify.mdx | 4 +- website/src/lib/docs/hu/toolbar/poi.mdx | 2 +- website/src/lib/docs/hu/toolbar/routing.mdx | 2 +- website/src/lib/docs/hu/toolbar/scissors.mdx | 2 +- website/src/lib/docs/hu/toolbar/time.mdx | 2 +- website/src/lib/docs/it/files-and-stats.mdx | 2 +- website/src/lib/docs/it/gpx.mdx | 2 +- website/src/lib/docs/it/home/funding.mdx | 2 +- website/src/lib/docs/it/home/translation.mdx | 2 +- website/src/lib/docs/it/map-controls.mdx | 2 +- website/src/lib/docs/it/menu/edit.mdx | 2 +- website/src/lib/docs/it/menu/file.mdx | 2 +- website/src/lib/docs/it/menu/settings.mdx | 2 +- website/src/lib/docs/it/menu/view.mdx | 2 +- website/src/lib/docs/it/toolbar/clean.mdx | 2 +- website/src/lib/docs/it/toolbar/elevation.mdx | 2 +- website/src/lib/docs/it/toolbar/extract.mdx | 2 +- website/src/lib/docs/it/toolbar/merge.mdx | 2 +- website/src/lib/docs/it/toolbar/minify.mdx | 4 +- website/src/lib/docs/it/toolbar/poi.mdx | 2 +- website/src/lib/docs/it/toolbar/routing.mdx | 2 +- website/src/lib/docs/it/toolbar/scissors.mdx | 2 +- website/src/lib/docs/it/toolbar/time.mdx | 2 +- website/src/lib/docs/ko/files-and-stats.mdx | 2 +- website/src/lib/docs/ko/gpx.mdx | 2 +- website/src/lib/docs/ko/home/funding.mdx | 2 +- website/src/lib/docs/ko/home/translation.mdx | 2 +- website/src/lib/docs/ko/map-controls.mdx | 2 +- website/src/lib/docs/ko/menu/edit.mdx | 2 +- website/src/lib/docs/ko/menu/file.mdx | 2 +- website/src/lib/docs/ko/menu/settings.mdx | 2 +- website/src/lib/docs/ko/menu/view.mdx | 2 +- website/src/lib/docs/ko/toolbar/clean.mdx | 2 +- website/src/lib/docs/ko/toolbar/elevation.mdx | 2 +- website/src/lib/docs/ko/toolbar/extract.mdx | 2 +- website/src/lib/docs/ko/toolbar/merge.mdx | 2 +- website/src/lib/docs/ko/toolbar/minify.mdx | 4 +- website/src/lib/docs/ko/toolbar/poi.mdx | 2 +- website/src/lib/docs/ko/toolbar/routing.mdx | 2 +- website/src/lib/docs/ko/toolbar/scissors.mdx | 2 +- website/src/lib/docs/ko/toolbar/time.mdx | 2 +- website/src/lib/docs/lt/files-and-stats.mdx | 2 +- website/src/lib/docs/lt/gpx.mdx | 2 +- website/src/lib/docs/lt/home/funding.mdx | 2 +- website/src/lib/docs/lt/home/translation.mdx | 2 +- website/src/lib/docs/lt/map-controls.mdx | 2 +- website/src/lib/docs/lt/menu/edit.mdx | 2 +- website/src/lib/docs/lt/menu/file.mdx | 2 +- website/src/lib/docs/lt/menu/settings.mdx | 2 +- website/src/lib/docs/lt/menu/view.mdx | 2 +- website/src/lib/docs/lt/toolbar/clean.mdx | 2 +- website/src/lib/docs/lt/toolbar/elevation.mdx | 2 +- website/src/lib/docs/lt/toolbar/extract.mdx | 2 +- website/src/lib/docs/lt/toolbar/merge.mdx | 2 +- website/src/lib/docs/lt/toolbar/minify.mdx | 4 +- website/src/lib/docs/lt/toolbar/poi.mdx | 2 +- website/src/lib/docs/lt/toolbar/routing.mdx | 2 +- website/src/lib/docs/lt/toolbar/scissors.mdx | 2 +- website/src/lib/docs/lt/toolbar/time.mdx | 2 +- website/src/lib/docs/lv/files-and-stats.mdx | 2 +- website/src/lib/docs/lv/gpx.mdx | 2 +- website/src/lib/docs/lv/home/funding.mdx | 2 +- website/src/lib/docs/lv/home/translation.mdx | 2 +- website/src/lib/docs/lv/map-controls.mdx | 2 +- website/src/lib/docs/lv/menu/edit.mdx | 2 +- website/src/lib/docs/lv/menu/file.mdx | 2 +- website/src/lib/docs/lv/menu/settings.mdx | 2 +- website/src/lib/docs/lv/menu/view.mdx | 2 +- website/src/lib/docs/lv/toolbar/clean.mdx | 2 +- website/src/lib/docs/lv/toolbar/elevation.mdx | 2 +- website/src/lib/docs/lv/toolbar/extract.mdx | 2 +- website/src/lib/docs/lv/toolbar/merge.mdx | 2 +- website/src/lib/docs/lv/toolbar/minify.mdx | 4 +- website/src/lib/docs/lv/toolbar/poi.mdx | 2 +- website/src/lib/docs/lv/toolbar/routing.mdx | 2 +- website/src/lib/docs/lv/toolbar/scissors.mdx | 2 +- website/src/lib/docs/lv/toolbar/time.mdx | 2 +- website/src/lib/docs/nl/files-and-stats.mdx | 2 +- website/src/lib/docs/nl/gpx.mdx | 2 +- website/src/lib/docs/nl/home/funding.mdx | 2 +- website/src/lib/docs/nl/home/translation.mdx | 2 +- website/src/lib/docs/nl/map-controls.mdx | 2 +- website/src/lib/docs/nl/menu/edit.mdx | 2 +- website/src/lib/docs/nl/menu/file.mdx | 2 +- website/src/lib/docs/nl/menu/settings.mdx | 2 +- website/src/lib/docs/nl/menu/view.mdx | 2 +- website/src/lib/docs/nl/toolbar/clean.mdx | 2 +- website/src/lib/docs/nl/toolbar/elevation.mdx | 2 +- website/src/lib/docs/nl/toolbar/extract.mdx | 2 +- website/src/lib/docs/nl/toolbar/merge.mdx | 2 +- website/src/lib/docs/nl/toolbar/minify.mdx | 4 +- website/src/lib/docs/nl/toolbar/poi.mdx | 2 +- website/src/lib/docs/nl/toolbar/routing.mdx | 2 +- website/src/lib/docs/nl/toolbar/scissors.mdx | 2 +- website/src/lib/docs/nl/toolbar/time.mdx | 2 +- website/src/lib/docs/no/files-and-stats.mdx | 2 +- website/src/lib/docs/no/gpx.mdx | 2 +- website/src/lib/docs/no/home/funding.mdx | 2 +- website/src/lib/docs/no/home/translation.mdx | 2 +- website/src/lib/docs/no/map-controls.mdx | 2 +- website/src/lib/docs/no/menu/edit.mdx | 2 +- website/src/lib/docs/no/menu/file.mdx | 2 +- website/src/lib/docs/no/menu/settings.mdx | 2 +- website/src/lib/docs/no/menu/view.mdx | 2 +- website/src/lib/docs/no/toolbar/clean.mdx | 2 +- website/src/lib/docs/no/toolbar/elevation.mdx | 2 +- website/src/lib/docs/no/toolbar/extract.mdx | 2 +- website/src/lib/docs/no/toolbar/merge.mdx | 2 +- website/src/lib/docs/no/toolbar/minify.mdx | 4 +- website/src/lib/docs/no/toolbar/poi.mdx | 2 +- website/src/lib/docs/no/toolbar/routing.mdx | 2 +- website/src/lib/docs/no/toolbar/scissors.mdx | 2 +- website/src/lib/docs/no/toolbar/time.mdx | 2 +- website/src/lib/docs/pl/files-and-stats.mdx | 2 +- website/src/lib/docs/pl/gpx.mdx | 2 +- website/src/lib/docs/pl/home/funding.mdx | 2 +- website/src/lib/docs/pl/home/translation.mdx | 2 +- website/src/lib/docs/pl/map-controls.mdx | 2 +- website/src/lib/docs/pl/menu/edit.mdx | 2 +- website/src/lib/docs/pl/menu/file.mdx | 2 +- website/src/lib/docs/pl/menu/settings.mdx | 2 +- website/src/lib/docs/pl/menu/view.mdx | 2 +- website/src/lib/docs/pl/toolbar/clean.mdx | 2 +- website/src/lib/docs/pl/toolbar/elevation.mdx | 2 +- website/src/lib/docs/pl/toolbar/extract.mdx | 2 +- website/src/lib/docs/pl/toolbar/merge.mdx | 2 +- website/src/lib/docs/pl/toolbar/minify.mdx | 4 +- website/src/lib/docs/pl/toolbar/poi.mdx | 2 +- website/src/lib/docs/pl/toolbar/routing.mdx | 2 +- website/src/lib/docs/pl/toolbar/scissors.mdx | 2 +- website/src/lib/docs/pl/toolbar/time.mdx | 2 +- .../src/lib/docs/pt-BR/files-and-stats.mdx | 2 +- website/src/lib/docs/pt-BR/gpx.mdx | 2 +- website/src/lib/docs/pt-BR/home/funding.mdx | 2 +- .../src/lib/docs/pt-BR/home/translation.mdx | 2 +- website/src/lib/docs/pt-BR/map-controls.mdx | 2 +- website/src/lib/docs/pt-BR/menu/edit.mdx | 2 +- website/src/lib/docs/pt-BR/menu/file.mdx | 2 +- website/src/lib/docs/pt-BR/menu/settings.mdx | 2 +- website/src/lib/docs/pt-BR/menu/view.mdx | 2 +- website/src/lib/docs/pt-BR/toolbar/clean.mdx | 2 +- .../src/lib/docs/pt-BR/toolbar/elevation.mdx | 2 +- .../src/lib/docs/pt-BR/toolbar/extract.mdx | 2 +- website/src/lib/docs/pt-BR/toolbar/merge.mdx | 2 +- website/src/lib/docs/pt-BR/toolbar/minify.mdx | 4 +- website/src/lib/docs/pt-BR/toolbar/poi.mdx | 2 +- .../src/lib/docs/pt-BR/toolbar/routing.mdx | 2 +- .../src/lib/docs/pt-BR/toolbar/scissors.mdx | 2 +- website/src/lib/docs/pt-BR/toolbar/time.mdx | 2 +- website/src/lib/docs/pt/files-and-stats.mdx | 2 +- website/src/lib/docs/pt/gpx.mdx | 2 +- website/src/lib/docs/pt/home/funding.mdx | 2 +- website/src/lib/docs/pt/home/translation.mdx | 2 +- website/src/lib/docs/pt/map-controls.mdx | 2 +- website/src/lib/docs/pt/menu/edit.mdx | 2 +- website/src/lib/docs/pt/menu/file.mdx | 2 +- website/src/lib/docs/pt/menu/settings.mdx | 2 +- website/src/lib/docs/pt/menu/view.mdx | 2 +- website/src/lib/docs/pt/toolbar/clean.mdx | 2 +- website/src/lib/docs/pt/toolbar/elevation.mdx | 2 +- website/src/lib/docs/pt/toolbar/extract.mdx | 2 +- website/src/lib/docs/pt/toolbar/merge.mdx | 2 +- website/src/lib/docs/pt/toolbar/minify.mdx | 4 +- website/src/lib/docs/pt/toolbar/poi.mdx | 2 +- website/src/lib/docs/pt/toolbar/routing.mdx | 2 +- website/src/lib/docs/pt/toolbar/scissors.mdx | 2 +- website/src/lib/docs/pt/toolbar/time.mdx | 2 +- website/src/lib/docs/ro/files-and-stats.mdx | 2 +- website/src/lib/docs/ro/gpx.mdx | 2 +- website/src/lib/docs/ro/home/funding.mdx | 2 +- website/src/lib/docs/ro/home/translation.mdx | 2 +- website/src/lib/docs/ro/map-controls.mdx | 2 +- website/src/lib/docs/ro/menu/edit.mdx | 2 +- website/src/lib/docs/ro/menu/file.mdx | 2 +- website/src/lib/docs/ro/menu/settings.mdx | 2 +- website/src/lib/docs/ro/menu/view.mdx | 2 +- website/src/lib/docs/ro/toolbar/clean.mdx | 2 +- website/src/lib/docs/ro/toolbar/elevation.mdx | 2 +- website/src/lib/docs/ro/toolbar/extract.mdx | 2 +- website/src/lib/docs/ro/toolbar/merge.mdx | 2 +- website/src/lib/docs/ro/toolbar/minify.mdx | 4 +- website/src/lib/docs/ro/toolbar/poi.mdx | 2 +- website/src/lib/docs/ro/toolbar/routing.mdx | 2 +- website/src/lib/docs/ro/toolbar/scissors.mdx | 2 +- website/src/lib/docs/ro/toolbar/time.mdx | 2 +- website/src/lib/docs/ru/files-and-stats.mdx | 2 +- website/src/lib/docs/ru/gpx.mdx | 2 +- website/src/lib/docs/ru/home/funding.mdx | 2 +- website/src/lib/docs/ru/home/translation.mdx | 2 +- website/src/lib/docs/ru/map-controls.mdx | 2 +- website/src/lib/docs/ru/menu/edit.mdx | 2 +- website/src/lib/docs/ru/menu/file.mdx | 2 +- website/src/lib/docs/ru/menu/settings.mdx | 2 +- website/src/lib/docs/ru/menu/view.mdx | 2 +- website/src/lib/docs/ru/toolbar/clean.mdx | 2 +- website/src/lib/docs/ru/toolbar/elevation.mdx | 2 +- website/src/lib/docs/ru/toolbar/extract.mdx | 2 +- website/src/lib/docs/ru/toolbar/merge.mdx | 2 +- website/src/lib/docs/ru/toolbar/minify.mdx | 4 +- website/src/lib/docs/ru/toolbar/poi.mdx | 2 +- website/src/lib/docs/ru/toolbar/routing.mdx | 2 +- website/src/lib/docs/ru/toolbar/scissors.mdx | 2 +- website/src/lib/docs/ru/toolbar/time.mdx | 2 +- website/src/lib/docs/sr/files-and-stats.mdx | 2 +- website/src/lib/docs/sr/gpx.mdx | 2 +- website/src/lib/docs/sr/home/funding.mdx | 2 +- website/src/lib/docs/sr/home/translation.mdx | 2 +- website/src/lib/docs/sr/map-controls.mdx | 2 +- website/src/lib/docs/sr/menu/edit.mdx | 2 +- website/src/lib/docs/sr/menu/file.mdx | 2 +- website/src/lib/docs/sr/menu/settings.mdx | 2 +- website/src/lib/docs/sr/menu/view.mdx | 2 +- website/src/lib/docs/sr/toolbar/clean.mdx | 2 +- website/src/lib/docs/sr/toolbar/elevation.mdx | 2 +- website/src/lib/docs/sr/toolbar/extract.mdx | 2 +- website/src/lib/docs/sr/toolbar/merge.mdx | 2 +- website/src/lib/docs/sr/toolbar/minify.mdx | 4 +- website/src/lib/docs/sr/toolbar/poi.mdx | 2 +- website/src/lib/docs/sr/toolbar/routing.mdx | 2 +- website/src/lib/docs/sr/toolbar/scissors.mdx | 2 +- website/src/lib/docs/sr/toolbar/time.mdx | 2 +- website/src/lib/docs/sv/files-and-stats.mdx | 2 +- website/src/lib/docs/sv/gpx.mdx | 2 +- website/src/lib/docs/sv/home/funding.mdx | 2 +- website/src/lib/docs/sv/home/translation.mdx | 2 +- website/src/lib/docs/sv/map-controls.mdx | 2 +- website/src/lib/docs/sv/menu/edit.mdx | 2 +- website/src/lib/docs/sv/menu/file.mdx | 2 +- website/src/lib/docs/sv/menu/settings.mdx | 2 +- website/src/lib/docs/sv/menu/view.mdx | 2 +- website/src/lib/docs/sv/toolbar/clean.mdx | 2 +- website/src/lib/docs/sv/toolbar/elevation.mdx | 2 +- website/src/lib/docs/sv/toolbar/extract.mdx | 2 +- website/src/lib/docs/sv/toolbar/merge.mdx | 2 +- website/src/lib/docs/sv/toolbar/minify.mdx | 4 +- website/src/lib/docs/sv/toolbar/poi.mdx | 2 +- website/src/lib/docs/sv/toolbar/routing.mdx | 2 +- website/src/lib/docs/sv/toolbar/scissors.mdx | 2 +- website/src/lib/docs/sv/toolbar/time.mdx | 2 +- website/src/lib/docs/tr/files-and-stats.mdx | 2 +- website/src/lib/docs/tr/gpx.mdx | 2 +- website/src/lib/docs/tr/home/funding.mdx | 2 +- website/src/lib/docs/tr/home/translation.mdx | 2 +- website/src/lib/docs/tr/map-controls.mdx | 2 +- website/src/lib/docs/tr/menu/edit.mdx | 2 +- website/src/lib/docs/tr/menu/file.mdx | 2 +- website/src/lib/docs/tr/menu/settings.mdx | 2 +- website/src/lib/docs/tr/menu/view.mdx | 2 +- website/src/lib/docs/tr/toolbar/clean.mdx | 2 +- website/src/lib/docs/tr/toolbar/elevation.mdx | 2 +- website/src/lib/docs/tr/toolbar/extract.mdx | 2 +- website/src/lib/docs/tr/toolbar/merge.mdx | 2 +- website/src/lib/docs/tr/toolbar/minify.mdx | 4 +- website/src/lib/docs/tr/toolbar/poi.mdx | 2 +- website/src/lib/docs/tr/toolbar/routing.mdx | 2 +- website/src/lib/docs/tr/toolbar/scissors.mdx | 2 +- website/src/lib/docs/tr/toolbar/time.mdx | 2 +- website/src/lib/docs/uk/files-and-stats.mdx | 2 +- website/src/lib/docs/uk/gpx.mdx | 2 +- website/src/lib/docs/uk/home/funding.mdx | 2 +- website/src/lib/docs/uk/home/translation.mdx | 2 +- website/src/lib/docs/uk/map-controls.mdx | 2 +- website/src/lib/docs/uk/menu/edit.mdx | 2 +- website/src/lib/docs/uk/menu/file.mdx | 2 +- website/src/lib/docs/uk/menu/settings.mdx | 2 +- website/src/lib/docs/uk/menu/view.mdx | 2 +- website/src/lib/docs/uk/toolbar/clean.mdx | 2 +- website/src/lib/docs/uk/toolbar/elevation.mdx | 2 +- website/src/lib/docs/uk/toolbar/extract.mdx | 2 +- website/src/lib/docs/uk/toolbar/merge.mdx | 2 +- website/src/lib/docs/uk/toolbar/minify.mdx | 4 +- website/src/lib/docs/uk/toolbar/poi.mdx | 2 +- website/src/lib/docs/uk/toolbar/routing.mdx | 2 +- website/src/lib/docs/uk/toolbar/scissors.mdx | 2 +- website/src/lib/docs/uk/toolbar/time.mdx | 2 +- website/src/lib/docs/vi/files-and-stats.mdx | 2 +- website/src/lib/docs/vi/gpx.mdx | 2 +- website/src/lib/docs/vi/home/funding.mdx | 2 +- website/src/lib/docs/vi/home/translation.mdx | 2 +- website/src/lib/docs/vi/map-controls.mdx | 2 +- website/src/lib/docs/vi/menu/edit.mdx | 2 +- website/src/lib/docs/vi/menu/file.mdx | 2 +- website/src/lib/docs/vi/menu/settings.mdx | 2 +- website/src/lib/docs/vi/menu/view.mdx | 2 +- website/src/lib/docs/vi/toolbar/clean.mdx | 2 +- website/src/lib/docs/vi/toolbar/elevation.mdx | 2 +- website/src/lib/docs/vi/toolbar/extract.mdx | 2 +- website/src/lib/docs/vi/toolbar/merge.mdx | 2 +- website/src/lib/docs/vi/toolbar/minify.mdx | 4 +- website/src/lib/docs/vi/toolbar/poi.mdx | 2 +- website/src/lib/docs/vi/toolbar/routing.mdx | 2 +- website/src/lib/docs/vi/toolbar/scissors.mdx | 2 +- website/src/lib/docs/vi/toolbar/time.mdx | 2 +- website/src/lib/docs/zh/files-and-stats.mdx | 2 +- website/src/lib/docs/zh/gpx.mdx | 2 +- website/src/lib/docs/zh/home/funding.mdx | 2 +- website/src/lib/docs/zh/home/translation.mdx | 2 +- website/src/lib/docs/zh/map-controls.mdx | 2 +- website/src/lib/docs/zh/menu/edit.mdx | 2 +- website/src/lib/docs/zh/menu/file.mdx | 2 +- website/src/lib/docs/zh/menu/settings.mdx | 2 +- website/src/lib/docs/zh/menu/view.mdx | 2 +- website/src/lib/docs/zh/toolbar/clean.mdx | 2 +- website/src/lib/docs/zh/toolbar/elevation.mdx | 2 +- website/src/lib/docs/zh/toolbar/extract.mdx | 2 +- website/src/lib/docs/zh/toolbar/merge.mdx | 2 +- website/src/lib/docs/zh/toolbar/minify.mdx | 4 +- website/src/lib/docs/zh/toolbar/poi.mdx | 2 +- website/src/lib/docs/zh/toolbar/routing.mdx | 2 +- website/src/lib/docs/zh/toolbar/scissors.mdx | 2 +- website/src/lib/docs/zh/toolbar/time.mdx | 2 +- website/src/lib/i18n.svelte.ts | 72 + website/src/lib/i18n.ts | 56 - website/src/lib/logic/files.svelte.ts | 40 + website/src/lib/logic/selection.svelte.ts | 375 +++ website/src/lib/logic/settings.svelte.ts | 121 + website/src/lib/logic/statistics.svelte.ts | 0 website/src/lib/{ => scripts}/pwa-manifest.ts | 2 +- website/src/lib/{ => scripts}/sitemap.ts | 0 website/src/lib/stores.ts | 685 ++--- website/src/lib/units.ts | 61 +- website/src/lib/utils.ts | 34 +- website/src/routes/+layout.svelte | 57 +- website/src/routes/404/+page.svelte | 24 +- website/src/routes/[[language]]/+page.svelte | 110 +- .../src/routes/[[language]]/app/+page.svelte | 179 +- .../routes/[[language]]/embed/+page.svelte | 8 +- .../routes/[[language]]/help/+layout.svelte | 27 +- .../src/routes/[[language]]/help/+page.svelte | 27 +- .../[[language]]/help/[...guide]/+page.svelte | 41 +- website/vite.config.ts | 2 + 803 files changed, 7937 insertions(+), 6329 deletions(-) rename website/.prettierignore => .prettierignore (100%) delete mode 100644 gpx/.prettierignore delete mode 100644 website/postcss.config.js create mode 100644 website/src/app.css delete mode 100644 website/src/app.pcss delete mode 100644 website/src/lib/components/CoordinatesPopup.svelte delete mode 100644 website/src/lib/components/Map.svelte delete mode 100644 website/src/lib/components/MapPopup.svelte delete mode 100644 website/src/lib/components/MapPopup.ts create mode 100644 website/src/lib/components/collapsible-tree/utils.svelte.ts delete mode 100644 website/src/lib/components/custom-control/CustomControl.svelte rename website/src/lib/components/{ => export}/Export.svelte (63%) create mode 100644 website/src/lib/components/export/utils.svelte.ts delete mode 100644 website/src/lib/components/file-list/StyleDialog.svelte rename website/src/lib/components/file-list/{ => metadata}/MetadataDialog.svelte (69%) create mode 100644 website/src/lib/components/file-list/metadata/utils.svelte.ts create mode 100644 website/src/lib/components/file-list/style/StyleDialog.svelte create mode 100644 website/src/lib/components/file-list/style/utils.svelte.ts delete mode 100644 website/src/lib/components/gpx-layer/CopyCoordinates.svelte delete mode 100644 website/src/lib/components/layer-control/LayerControl.svelte delete mode 100644 website/src/lib/components/layer-control/LayerTree.svelte create mode 100644 website/src/lib/components/map/CoordinatesPopup.svelte create mode 100644 website/src/lib/components/map/Map.svelte create mode 100644 website/src/lib/components/map/MapPopup.svelte create mode 100644 website/src/lib/components/map/custom-control/CustomControl.svelte rename website/src/lib/components/{ => map}/custom-control/CustomControl.ts (100%) create mode 100644 website/src/lib/components/map/gpx-layer/CopyCoordinates.svelte rename website/src/lib/components/{ => map}/gpx-layer/DistanceMarkers.ts (95%) rename website/src/lib/components/{ => map}/gpx-layer/GPXLayer.ts (98%) rename website/src/lib/components/{ => map}/gpx-layer/GPXLayerPopup.ts (95%) rename website/src/lib/components/{ => map}/gpx-layer/GPXLayers.svelte (100%) rename website/src/lib/components/{ => map}/gpx-layer/StartEndMarkers.ts (100%) rename website/src/lib/components/{ => map}/gpx-layer/TrackpointPopup.svelte (76%) rename website/src/lib/components/{ => map}/gpx-layer/WaypointPopup.svelte (82%) rename website/src/lib/components/{ => map}/layer-control/CustomLayers.svelte (93%) create mode 100644 website/src/lib/components/map/layer-control/LayerControl.svelte rename website/src/lib/components/{ => map}/layer-control/LayerControlSettings.svelte (71%) create mode 100644 website/src/lib/components/map/layer-control/LayerTree.svelte rename website/src/lib/components/{ => map}/layer-control/LayerTreeNode.svelte (55%) rename website/src/lib/components/{ => map}/layer-control/OverpassLayer.ts (98%) rename website/src/lib/components/{ => map}/layer-control/OverpassPopup.svelte (95%) rename website/src/lib/components/{layer-control/utils.ts => map/layer-control/utils.svelte.ts} (95%) rename website/src/lib/components/{ => map}/street-view-control/Google.ts (100%) rename website/src/lib/components/{ => map}/street-view-control/Mapillary.ts (95%) create mode 100644 website/src/lib/components/map/street-view-control/StreetViewControl.svelte create mode 100644 website/src/lib/components/map/street-view-control/utils.svelte.ts create mode 100644 website/src/lib/components/map/utils.svelte.ts delete mode 100644 website/src/lib/components/street-view-control/StreetViewControl.svelte rename website/src/lib/components/toolbar/tools/routing/{Routing.ts => routing.svelte.ts} (77%) rename website/src/lib/components/toolbar/tools/scissors/{SplitControls.ts => SplitControls.svelte.ts} (94%) create mode 100644 website/src/lib/components/toolbar/tools/scissors/utils.svelte.ts create mode 100644 website/src/lib/components/toolbar/utils.svelte.ts create mode 100644 website/src/lib/components/ui/accordion/accordion.svelte create mode 100644 website/src/lib/components/ui/alert-dialog/alert-dialog-trigger.svelte create mode 100644 website/src/lib/components/ui/calendar/calendar-caption.svelte create mode 100644 website/src/lib/components/ui/calendar/calendar-month-select.svelte create mode 100644 website/src/lib/components/ui/calendar/calendar-month.svelte create mode 100644 website/src/lib/components/ui/calendar/calendar-nav.svelte create mode 100644 website/src/lib/components/ui/calendar/calendar-year-select.svelte create mode 100644 website/src/lib/components/ui/card/card-action.svelte create mode 100644 website/src/lib/components/ui/collapsible/collapsible-trigger.svelte create mode 100644 website/src/lib/components/ui/collapsible/collapsible.svelte create mode 100644 website/src/lib/components/ui/context-menu/context-menu-group.svelte create mode 100644 website/src/lib/components/ui/context-menu/context-menu-trigger.svelte create mode 100644 website/src/lib/components/ui/dialog/dialog-close.svelte create mode 100644 website/src/lib/components/ui/dialog/dialog-content.svelte create mode 100644 website/src/lib/components/ui/dialog/dialog-description.svelte create mode 100644 website/src/lib/components/ui/dialog/dialog-footer.svelte create mode 100644 website/src/lib/components/ui/dialog/dialog-header.svelte create mode 100644 website/src/lib/components/ui/dialog/dialog-overlay.svelte create mode 100644 website/src/lib/components/ui/dialog/dialog-title.svelte create mode 100644 website/src/lib/components/ui/dialog/dialog-trigger.svelte create mode 100644 website/src/lib/components/ui/dialog/index.ts create mode 100644 website/src/lib/components/ui/dropdown-menu/dropdown-menu-group.svelte create mode 100644 website/src/lib/components/ui/dropdown-menu/dropdown-menu-trigger.svelte create mode 100644 website/src/lib/components/ui/menubar/menubar-group.svelte create mode 100644 website/src/lib/components/ui/popover/popover-trigger.svelte create mode 100644 website/src/lib/components/ui/select/select-group.svelte create mode 100644 website/src/lib/components/ui/sheet/sheet-close.svelte create mode 100644 website/src/lib/components/ui/sheet/sheet-trigger.svelte create mode 100644 website/src/lib/components/ui/tooltip/tooltip-trigger.svelte create mode 100644 website/src/lib/i18n.svelte.ts delete mode 100644 website/src/lib/i18n.ts create mode 100644 website/src/lib/logic/files.svelte.ts create mode 100644 website/src/lib/logic/selection.svelte.ts create mode 100644 website/src/lib/logic/settings.svelte.ts create mode 100644 website/src/lib/logic/statistics.svelte.ts rename website/src/lib/{ => scripts}/pwa-manifest.ts (95%) rename website/src/lib/{ => scripts}/sitemap.ts (100%) diff --git a/website/.prettierignore b/.prettierignore similarity index 100% rename from website/.prettierignore rename to .prettierignore diff --git a/.prettierrc b/.prettierrc index 61e63309..f271d719 100644 --- a/.prettierrc +++ b/.prettierrc @@ -9,7 +9,7 @@ "files": "**/*.svelte", "options": { "plugins": ["prettier-plugin-svelte"], - "parser": "svelte" + "parser": "svelte" } } ] diff --git a/README.md b/README.md index b6a51cf8..04be098d 100644 --- a/README.md +++ b/README.md @@ -26,8 +26,9 @@ Any help is greatly appreciated! ## Development The code is split into two parts: -- `gpx`: a Typescript library for parsing and manipulating GPX files, -- `website`: the website itself, which is a [SvelteKit](https://kit.svelte.dev/) application. + +- `gpx`: a Typescript library for parsing and manipulating GPX files, +- `website`: the website itself, which is a [SvelteKit](https://kit.svelte.dev/) application. You will need [Node.js](https://nodejs.org/) to build and run these two parts. @@ -54,26 +55,25 @@ npm run dev This project has been made possible thanks to the following open source projects: -- Development: - - [Svelte](https://github.com/sveltejs/svelte) and [SvelteKit](https://github.com/sveltejs/kit) — seamless development experience - - [MDsveX](https://github.com/pngwn/MDsveX) — allowing a Markdown-based documentation - - [svelte-i18n](https://github.com/kaisermann/svelte-i18n) — easy localization -- Design: - - [shadcn-svelte](https://github.com/huntabyte/shadcn-svelte) — beautiful components - - [lucide-svelte](https://github.com/lucide-icons/lucide/tree/main/packages/lucide-svelte) — beautiful icons - - [tailwindcss](https://github.com/tailwindlabs/tailwindcss) — easy styling - - [Chart.js](https://github.com/chartjs/Chart.js) — beautiful and fast charts -- Logic: - - [immer](https://github.com/immerjs/immer) — complex state management - - [Dexie.js](https://github.com/dexie/Dexie.js) — IndexedDB wrapper - - [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) — fast GPX file parsing - - [SortableJS](https://github.com/SortableJS/Sortable) — creating a sortable file tree -- Mapping: - - [Mapbox GL JS](https://github.com/mapbox/mapbox-gl-js) — beautiful and fast interactive maps - - [brouter](https://github.com/abrensch/brouter) — routing engine - - [OpenStreetMap](https://www.openstreetmap.org) — map data used by Mapbox and brouter -- Search: - - [DocSearch](https://github.com/algolia/docsearch) — search engine for the documentation +- Development: + - [Svelte](https://github.com/sveltejs/svelte) and [SvelteKit](https://github.com/sveltejs/kit) — seamless development experience + - [MDsveX](https://github.com/pngwn/MDsveX) — allowing a Markdown-based documentation +- Design: + - [shadcn-svelte](https://github.com/huntabyte/shadcn-svelte) — beautiful components + - [@lucide/svelte](https://github.com/lucide-icons/lucide/tree/main/packages/svelte) — beautiful icons + - [tailwindcss](https://github.com/tailwindlabs/tailwindcss) — easy styling + - [Chart.js](https://github.com/chartjs/Chart.js) — beautiful and fast charts +- Logic: + - [immer](https://github.com/immerjs/immer) — complex state management + - [Dexie.js](https://github.com/dexie/Dexie.js) — IndexedDB wrapper + - [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) — fast GPX file parsing + - [SortableJS](https://github.com/SortableJS/Sortable) — creating a sortable file tree +- Mapping: + - [Mapbox GL JS](https://github.com/mapbox/mapbox-gl-js) — beautiful and fast interactive maps + - [brouter](https://github.com/abrensch/brouter) — routing engine + - [OpenStreetMap](https://www.openstreetmap.org) — map data used by Mapbox and brouter +- Search: + - [DocSearch](https://github.com/algolia/docsearch) — search engine for the documentation ## License diff --git a/gpx/.prettierignore b/gpx/.prettierignore deleted file mode 100644 index 483a9c42..00000000 --- a/gpx/.prettierignore +++ /dev/null @@ -1 +0,0 @@ -package-lock.json \ No newline at end of file diff --git a/website/components.json b/website/components.json index 4f3bb350..897ab351 100644 --- a/website/components.json +++ b/website/components.json @@ -1,7 +1,7 @@ { "$schema": "https://next.shadcn-svelte.com/schema.json", "tailwind": { - "css": "src/app.pcss", + "css": "src/app.css", "baseColor": "slate" }, "aliases": { @@ -12,5 +12,5 @@ "lib": "$lib" }, "typescript": true, - "registry": "https://tw3.shadcn-svelte.com/registry/default" + "registry": "https://next.shadcn-svelte.com/registry" } diff --git a/website/package-lock.json b/website/package-lock.json index ed92234f..71cb6c0e 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -27,16 +27,16 @@ "png.js": "^0.2.1", "sanitize-html": "^2.17.0", "sortablejs": "^1.15.6", - "tailwind-merge": "^2.5.2", - "tailwind-variants": "^0.2.1", - "tailwindcss-animate": "^1.0.7" + "tailwind-merge": "^3.3.0", + "tailwind-variants": "^1.0.0" }, "devDependencies": { - "@lucide/svelte": "^0.482.0", + "@lucide/svelte": "^0.513.0", "@sveltejs/adapter-static": "^3.0.8", "@sveltejs/enhanced-img": "^0.6.0", "@sveltejs/kit": "^2.21.2", "@sveltejs/vite-plugin-svelte": "^5.1.0", + "@tailwindcss/vite": "^4.1.8", "@types/eslint": "^9.6.1", "@types/events": "^3.0.3", "@types/file-saver": "^2.0.7", @@ -48,8 +48,7 @@ "@types/sortablejs": "^1.15.8", "@typescript-eslint/eslint-plugin": "^8.33.1", "@typescript-eslint/parser": "^8.33.1", - "autoprefixer": "^10.4.21", - "bits-ui": "^1.8.0", + "bits-ui": "^2.5.0", "eslint": "^9.28.0", "eslint-config-prettier": "^10.1.5", "eslint-plugin-svelte": "^3.9.1", @@ -64,10 +63,11 @@ "prettier-plugin-svelte": "^3.4.0", "svelte": "^5.33.18", "svelte-check": "^4.0.0", - "svelte-sonner": "^0.3.28", - "tailwindcss": "^3.4.13", + "svelte-sonner": "^1.0.4", + "tailwindcss": "^4.1.8", "tslib": "^2.8.1", "tsx": "^4.19.1", + "tw-animate-css": "^1.3.4", "typescript": "^5.8.3", "vaul-svelte": "^1.0.0-next.7", "vite": "^6.3.5", @@ -315,17 +315,6 @@ "node": ">= 14.0.0" } }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", @@ -1543,6 +1532,7 @@ "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, "license": "ISC", "dependencies": { "string-width": "^5.1.2", @@ -1556,10 +1546,24 @@ "node": ">=12" } }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -1573,6 +1577,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, "engines": { "node": ">=6.0.0" } @@ -1581,6 +1586,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, "engines": { "node": ">=6.0.0" } @@ -1600,12 +1606,14 @@ "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -1617,9 +1625,9 @@ "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==" }, "node_modules/@lucide/svelte": { - "version": "0.482.0", - "resolved": "https://registry.npmjs.org/@lucide/svelte/-/svelte-0.482.0.tgz", - "integrity": "sha512-n2ycHU9cNcleRDwwpEHBJ6pYzVhHIaL3a+9dQa8kns9hB2g05bY+v2p2KP8v0pZwtNhYTHk/F2o2uZ1bVtQGhw==", + "version": "0.513.0", + "resolved": "https://registry.npmjs.org/@lucide/svelte/-/svelte-0.513.0.tgz", + "integrity": "sha512-XwBQMQkMlr9qp9yVg+epx5MzhBBrqul8atO00y/ZfhlKRJuQZVmq3ELibApqyBtj9ys0Ai4FH/SZcODTUFYXig==", "dev": true, "license": "ISC", "peerDependencies": { @@ -1748,6 +1756,7 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -1760,6 +1769,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, "engines": { "node": ">= 8" } @@ -1768,6 +1778,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -1776,16 +1787,6 @@ "node": ">= 8" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, "node_modules/@polka/url": { "version": "1.0.0-next.29", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", @@ -2270,6 +2271,283 @@ "node": ">=10" } }, + "node_modules/@tailwindcss/node": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.8.tgz", + "integrity": "sha512-OWwBsbC9BFAJelmnNcrKuf+bka2ZxCE2A4Ft53Tkg4uoiE67r/PMEYwCsourC26E+kmxfwE0hVzMdxqeW+xu7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.3.0", + "enhanced-resolve": "^5.18.1", + "jiti": "^2.4.2", + "lightningcss": "1.30.1", + "magic-string": "^0.30.17", + "source-map-js": "^1.2.1", + "tailwindcss": "4.1.8" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.8.tgz", + "integrity": "sha512-d7qvv9PsM5N3VNKhwVUhpK6r4h9wtLkJ6lz9ZY9aeZgrUWk1Z8VPyqyDT9MZlem7GTGseRQHkeB1j3tC7W1P+A==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.4", + "tar": "^7.4.3" + }, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.1.8", + "@tailwindcss/oxide-darwin-arm64": "4.1.8", + "@tailwindcss/oxide-darwin-x64": "4.1.8", + "@tailwindcss/oxide-freebsd-x64": "4.1.8", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.8", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.8", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.8", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.8", + "@tailwindcss/oxide-linux-x64-musl": "4.1.8", + "@tailwindcss/oxide-wasm32-wasi": "4.1.8", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.8", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.8" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.8.tgz", + "integrity": "sha512-Fbz7qni62uKYceWYvUjRqhGfZKwhZDQhlrJKGtnZfuNtHFqa8wmr+Wn74CTWERiW2hn3mN5gTpOoxWKk0jRxjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.8.tgz", + "integrity": "sha512-RdRvedGsT0vwVVDztvyXhKpsU2ark/BjgG0huo4+2BluxdXo8NDgzl77qh0T1nUxmM11eXwR8jA39ibvSTbi7A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.8.tgz", + "integrity": "sha512-t6PgxjEMLp5Ovf7uMb2OFmb3kqzVTPPakWpBIFzppk4JE4ix0yEtbtSjPbU8+PZETpaYMtXvss2Sdkx8Vs4XRw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.8.tgz", + "integrity": "sha512-g8C8eGEyhHTqwPStSwZNSrOlyx0bhK/V/+zX0Y+n7DoRUzyS8eMbVshVOLJTDDC+Qn9IJnilYbIKzpB9n4aBsg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.8.tgz", + "integrity": "sha512-Jmzr3FA4S2tHhaC6yCjac3rGf7hG9R6Gf2z9i9JFcuyy0u79HfQsh/thifbYTF2ic82KJovKKkIB6Z9TdNhCXQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.8.tgz", + "integrity": "sha512-qq7jXtO1+UEtCmCeBBIRDrPFIVI4ilEQ97qgBGdwXAARrUqSn/L9fUrkb1XP/mvVtoVeR2bt/0L77xx53bPZ/Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.8.tgz", + "integrity": "sha512-O6b8QesPbJCRshsNApsOIpzKt3ztG35gfX9tEf4arD7mwNinsoCKxkj8TgEE0YRjmjtO3r9FlJnT/ENd9EVefQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.8.tgz", + "integrity": "sha512-32iEXX/pXwikshNOGnERAFwFSfiltmijMIAbUhnNyjFr3tmWmMJWQKU2vNcFX0DACSXJ3ZWcSkzNbaKTdngH6g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.8.tgz", + "integrity": "sha512-s+VSSD+TfZeMEsCaFaHTaY5YNj3Dri8rST09gMvYQKwPphacRG7wbuQ5ZJMIJXN/puxPcg/nU+ucvWguPpvBDg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.8.tgz", + "integrity": "sha512-CXBPVFkpDjM67sS1psWohZ6g/2/cd+cq56vPxK4JeawelxwK4YECgl9Y9TjkE2qfF+9/s1tHHJqrC4SS6cVvSg==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@emnapi/wasi-threads": "^1.0.2", + "@napi-rs/wasm-runtime": "^0.2.10", + "@tybys/wasm-util": "^0.9.0", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.8.tgz", + "integrity": "sha512-7GmYk1n28teDHUjPlIx4Z6Z4hHEgvP5ZW2QS9ygnDAdI/myh3HTHjDqtSqgu1BpRoI4OiLx+fThAyA1JePoENA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.8.tgz", + "integrity": "sha512-fou+U20j+Jl0EHwK92spoWISON2OBnCazIc038Xj2TdweYV33ZRkS9nwqiUi2d/Wba5xg5UoHfvynnb/UB49cQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/vite": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.8.tgz", + "integrity": "sha512-CQ+I8yxNV5/6uGaJjiuymgw0kEQiNKRinYbZXPdx1fk5WgiyReG0VaUx/Xq6aVNSUNJFzxm6o8FNKS5aMaim5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tailwindcss/node": "4.1.8", + "@tailwindcss/oxide": "4.1.8", + "tailwindcss": "4.1.8" + }, + "peerDependencies": { + "vite": "^5.2.0 || ^6" + } + }, "node_modules/@types/cacheable-request": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", @@ -2816,6 +3094,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -2828,6 +3107,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -2838,28 +3118,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" - }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -2919,44 +3177,6 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, - "node_modules/autoprefixer": { - "version": "10.4.21", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", - "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "browserslist": "^4.24.4", - "caniuse-lite": "^1.0.30001702", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.1.1", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, "node_modules/available-typed-arrays": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", @@ -2984,7 +3204,8 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true }, "node_modules/base-64": { "version": "0.1.0", @@ -3011,53 +3232,43 @@ } ] }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/bits-ui": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/bits-ui/-/bits-ui-1.8.0.tgz", - "integrity": "sha512-CXD6Orp7l8QevNDcRPLXc/b8iMVgxDWT2LyTwsdLzJKh9CxesOmPuNePSPqAxKoT59FIdU4aFPS1k7eBdbaCxg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/bits-ui/-/bits-ui-2.5.0.tgz", + "integrity": "sha512-PbjylA1UWd4A/c5AYqie/EVxQ1/8uugmJKLg9whLoBBHbfPEBGhK09dCPrahK9kA6DRHhMmij0XXIUGIfrmNow==", "dev": true, "license": "MIT", "dependencies": { - "@floating-ui/core": "^1.6.4", - "@floating-ui/dom": "^1.6.7", - "@internationalized/date": "^3.5.6", + "@floating-ui/core": "^1.7.0", + "@floating-ui/dom": "^1.7.0", "css.escape": "^1.5.1", "esm-env": "^1.1.2", - "runed": "^0.23.2", - "svelte-toolbelt": "^0.7.1", + "runed": "^0.28.0", + "svelte-toolbelt": "^0.9.1", "tabbable": "^6.2.0" }, "engines": { - "node": ">=18", + "node": ">=20", "pnpm": ">=8.7.0" }, "funding": { "url": "https://github.com/sponsors/huntabyte" }, "peerDependencies": { - "svelte": "^5.11.0" + "@internationalized/date": "^3.8.1", + "svelte": "^5.33.0" } }, "node_modules/bits-ui/node_modules/runed": { - "version": "0.23.4", - "resolved": "https://registry.npmjs.org/runed/-/runed-0.23.4.tgz", - "integrity": "sha512-9q8oUiBYeXIDLWNK5DfCWlkL0EW3oGbk845VdKlPeia28l751VpfesaB/+7pI6rnbx1I6rqoZ2fZxptOJLxILA==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/runed/-/runed-0.28.0.tgz", + "integrity": "sha512-k2xx7RuO9hWcdd9f+8JoBeqWtYrm5CALfgpkg2YDB80ds/QE4w0qqu34A7fqiAwiBBSBQOid7TLxwxVC27ymWQ==", "dev": true, "funding": [ "https://github.com/sponsors/huntabyte", "https://github.com/sponsors/tglide" ], + "license": "MIT", "dependencies": { "esm-env": "^1.0.0" }, @@ -3065,6 +3276,27 @@ "svelte": "^5.7.0" } }, + "node_modules/bits-ui/node_modules/svelte-toolbelt": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/svelte-toolbelt/-/svelte-toolbelt-0.9.1.tgz", + "integrity": "sha512-wBX6MtYw/kpht80j5zLpxJyR9soLizXPIAIWEVd9llAi17SR44ZdG291bldjB7r/K5duC0opDFcuhk2cA1hb8g==", + "dev": true, + "funding": [ + "https://github.com/sponsors/huntabyte" + ], + "dependencies": { + "clsx": "^2.1.1", + "runed": "^0.28.0", + "style-to-object": "^1.0.8" + }, + "engines": { + "node": ">=18", + "pnpm": ">=8.7.0" + }, + "peerDependencies": { + "svelte": "^5.30.2" + } + }, "node_modules/bn.js": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", @@ -3075,6 +3307,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, "dependencies": { "balanced-match": "^1.0.0" } @@ -3083,6 +3316,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, "dependencies": { "fill-range": "^7.1.1" }, @@ -3233,38 +3467,6 @@ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true }, - "node_modules/browserslist": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -3399,14 +3601,6 @@ "node": ">=6" } }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "engines": { - "node": ">= 6" - } - }, "node_modules/camelcase-keys": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", @@ -3439,26 +3633,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001713", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001713.tgz", - "integrity": "sha512-wCIWIg+A4Xr7NfhTuHdX+/FKh3+Op3LBbSp2N5Pfx6T/LhdQy3GTyoTg48BReaW/MyMNZAkTadsBtai3ldWK0Q==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -3505,38 +3679,14 @@ "resolved": "https://registry.npmjs.org/cheap-ruler/-/cheap-ruler-4.0.0.tgz", "integrity": "sha512-0BJa8f4t141BYKQyn9NSQt1PguFQXMXwZiA5shfoaBYHAb2fFk2RAX+tiWMoQU+Agtzt3mdt0JtuyshAXqZ+Vw==" }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "dev": true, + "license": "BlueOak-1.0.0", "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" + "node": ">=18" } }, "node_modules/cipher-base": { @@ -3564,6 +3714,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -3586,6 +3737,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -3596,7 +3748,8 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/color-string": { "version": "1.9.1", @@ -3620,14 +3773,6 @@ "node": ">= 0.8" } }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "engines": { - "node": ">= 6" - } - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -3713,6 +3858,7 @@ "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, "license": "MIT", "dependencies": { "path-key": "^3.1.0", @@ -3761,6 +3907,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, "bin": { "cssesc": "bin/cssesc" }, @@ -3938,11 +4085,6 @@ "integrity": "sha512-SOKO002EqlvBYYKQSew3iymBoN2EQ4BDw/3yprjh7kAfFzjBYkaMNa/pZvcA7HSWlcKSQb9XhPe3wKyQ0x4A8A==", "license": "Apache-2.0" }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" - }, "node_modules/diffie-hellman": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", @@ -3960,11 +4102,6 @@ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" - }, "node_modules/dom-serializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", @@ -4057,14 +4194,9 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, "license": "MIT" }, - "node_modules/electron-to-chromium": { - "version": "1.5.136", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.136.tgz", - "integrity": "sha512-kL4+wUTD7RSA5FHx5YwWtjDnEEkIIikFgWHR4P6fqjw1PPLlqYkxeOb++wAauAssat0YClCy8Y3C5SxgSkjibQ==", - "dev": true - }, "node_modules/elliptic": { "version": "6.6.1", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", @@ -4091,6 +4223,7 @@ "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, "license": "MIT" }, "node_modules/end-of-stream": { @@ -4101,6 +4234,20 @@ "once": "^1.4.0" } }, + "node_modules/enhanced-resolve": { + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -4201,15 +4348,6 @@ "@esbuild/win32-x64": "0.25.5" } }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -4542,6 +4680,7 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -4557,6 +4696,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -4581,6 +4721,7 @@ "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, "dependencies": { "reusify": "^1.0.4" } @@ -4608,6 +4749,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -4671,6 +4813,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -4695,23 +4838,11 @@ "node": ">= 6" } }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "dev": true, - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -4838,6 +4969,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, "dependencies": { "is-glob": "^4.0.3" }, @@ -4923,6 +5055,13 @@ "resolved": "../gpx", "link": true }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", @@ -5221,17 +5360,6 @@ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -5262,6 +5390,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -5270,6 +5399,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -5294,6 +5424,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -5321,6 +5452,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, "engines": { "node": ">=0.12.0" } @@ -5382,7 +5514,8 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true }, "node_modules/isomorphic-timers-promises": { "version": "1.0.1", @@ -5410,11 +5543,13 @@ } }, "node_modules/jiti": { - "version": "1.21.6", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", - "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz", + "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==", + "dev": true, + "license": "MIT", "bin": { - "jiti": "bin/jiti.js" + "jiti": "lib/jiti-cli.mjs" } }, "node_modules/js-tokens": { @@ -5565,10 +5700,250 @@ "immediate": "~3.0.5" } }, + "node_modules/lightningcss": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz", + "integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.30.1", + "lightningcss-darwin-x64": "1.30.1", + "lightningcss-freebsd-x64": "1.30.1", + "lightningcss-linux-arm-gnueabihf": "1.30.1", + "lightningcss-linux-arm64-gnu": "1.30.1", + "lightningcss-linux-arm64-musl": "1.30.1", + "lightningcss-linux-x64-gnu": "1.30.1", + "lightningcss-linux-x64-musl": "1.30.1", + "lightningcss-win32-arm64-msvc": "1.30.1", + "lightningcss-win32-x64-msvc": "1.30.1" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz", + "integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz", + "integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz", + "integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz", + "integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz", + "integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz", + "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz", + "integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz", + "integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz", + "integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz", + "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/lilconfig": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, "engines": { "node": ">=10" } @@ -5834,6 +6209,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, "engines": { "node": ">= 8" } @@ -5842,6 +6218,7 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -5928,6 +6305,7 @@ "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, @@ -5955,11 +6333,41 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, + "node_modules/minizlib": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz", + "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/mode-watcher": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/mode-watcher/-/mode-watcher-1.0.7.tgz", @@ -6004,16 +6412,6 @@ "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==" }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, "node_modules/nanoid": { "version": "3.3.11", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", @@ -6038,12 +6436,6 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "dev": true - }, "node_modules/node-stdlib-browser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/node-stdlib-browser/-/node-stdlib-browser-1.2.1.tgz", @@ -6102,23 +6494,6 @@ "node": ">=10" } }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/normalize-url": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", @@ -6130,22 +6505,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "engines": { - "node": ">= 6" - } - }, "node_modules/object-inspect": { "version": "1.13.4", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", @@ -6283,7 +6642,8 @@ "node_modules/package-json-from-dist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true }, "node_modules/pako": { "version": "2.1.0", @@ -6390,6 +6750,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, "engines": { "node": ">=8" } @@ -6464,6 +6825,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "engines": { "node": ">=8.6" }, @@ -6471,22 +6833,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "engines": { - "node": ">= 6" - } - }, "node_modules/pkg-dir": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", @@ -6554,40 +6900,6 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, "node_modules/postcss-load-config": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", @@ -6627,30 +6939,6 @@ "node": ">= 6" } }, - "node_modules/postcss-nested": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", - "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "postcss-selector-parser": "^6.1.1" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, "node_modules/postcss-safe-parser": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz", @@ -6705,23 +6993,6 @@ "postcss": "^8.4.29" } }, - "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" - }, "node_modules/potpack": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.0.0.tgz", @@ -6873,6 +7144,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, "funding": [ { "type": "github", @@ -6936,14 +7208,6 @@ "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dependencies": { - "pify": "^2.3.0" - } - }, "node_modules/read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -7076,17 +7340,6 @@ "node": ">= 6" } }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/redent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", @@ -7162,6 +7415,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -7226,6 +7480,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, "funding": [ { "type": "github", @@ -7436,6 +7691,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -7447,6 +7703,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, "engines": { "node": ">=8" } @@ -7527,6 +7784,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, "engines": { "node": ">=14" }, @@ -7676,6 +7934,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", @@ -7694,6 +7953,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -7708,6 +7968,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -7717,12 +7978,14 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, "license": "MIT" }, "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -7735,6 +7998,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" @@ -7751,6 +8015,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -7763,6 +8028,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -7807,84 +8073,6 @@ "resolved": "https://registry.npmjs.org/subtag/-/subtag-0.5.0.tgz", "integrity": "sha512-CaIBcTSb/nyk4xiiSOtZYz1B+F12ZxW8NEp54CdT+84vmh/h4sUnHGC6+KQXUfED8u22PQjCYWfZny8d2ELXwg==" }, - "node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/sucrase/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sucrase/node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/sucrase/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "license": "ISC" - }, - "node_modules/sucrase/node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/suggestions": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/suggestions/-/suggestions-1.7.1.tgz", @@ -8104,13 +8292,33 @@ } }, "node_modules/svelte-sonner": { - "version": "0.3.28", - "resolved": "https://registry.npmjs.org/svelte-sonner/-/svelte-sonner-0.3.28.tgz", - "integrity": "sha512-K3AmlySeFifF/cKgsYNv5uXqMVNln0NBAacOYgmkQStLa/UoU0LhfAACU6Gr+YYC8bOCHdVmFNoKuDbMEsppJg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/svelte-sonner/-/svelte-sonner-1.0.4.tgz", + "integrity": "sha512-ctm9jeV0Rf3im2J6RU1emccrJFjRSdNSPsLlxaF62TLZw9bB1D40U/U7+wqEgohJY/X7FBdghdj0BFQF/IqKPQ==", "dev": true, "license": "MIT", + "dependencies": { + "runed": "^0.26.0" + }, "peerDependencies": { - "svelte": "^3.0.0 || ^4.0.0 || ^5.0.0-next.1" + "svelte": "^5.0.0" + } + }, + "node_modules/svelte-sonner/node_modules/runed": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/runed/-/runed-0.26.0.tgz", + "integrity": "sha512-qWFv0cvLVRd8pdl/AslqzvtQyEn5KaIugEernwg9G98uJVSZcs/ygvPBvF80LA46V8pwRvSKnaVLDI3+i2wubw==", + "dev": true, + "funding": [ + "https://github.com/sponsors/huntabyte", + "https://github.com/sponsors/tglide" + ], + "license": "MIT", + "dependencies": { + "esm-env": "^1.0.0" + }, + "peerDependencies": { + "svelte": "^5.7.0" } }, "node_modules/svelte-toolbelt": { @@ -8158,20 +8366,22 @@ "license": "MIT" }, "node_modules/tailwind-merge": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.2.tgz", - "integrity": "sha512-kjEBm+pvD+6eAwzJL2Bi+02/9LFLal1Gs61+QB7HvTfQQ0aXwC5LGT8PEt1gS0CWKktKe6ysPTAy3cBC5MeiIg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.3.0.tgz", + "integrity": "sha512-fyW/pEfcQSiigd5SNn0nApUOxx0zB/dm6UDU/rEwc2c3sX2smWUNbapHv+QRqLGVp9GWX3THIa7MUGPo+YkDzQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/dcastil" } }, "node_modules/tailwind-variants": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tailwind-variants/-/tailwind-variants-0.2.1.tgz", - "integrity": "sha512-2xmhAf4UIc3PijOUcJPA1LP4AbxhpcHuHM2C26xM0k81r0maAO6uoUSHl3APmvHZcY5cZCY/bYuJdfFa4eGoaw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tailwind-variants/-/tailwind-variants-1.0.0.tgz", + "integrity": "sha512-2WSbv4ulEEyuBKomOunut65D8UZwxrHoRfYnxGcQNnHqlSCp2+B7Yz2W+yrNDrxRodOXtGD/1oCcKGNBnUqMqA==", + "license": "MIT", "dependencies": { - "tailwind-merge": "^2.2.0" + "tailwind-merge": "3.0.2" }, "engines": { "node": ">=16.x", @@ -8181,94 +8391,58 @@ "tailwindcss": "*" } }, - "node_modules/tailwindcss": { - "version": "3.4.13", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.13.tgz", - "integrity": "sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw==", - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.0", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.0", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tailwindcss-animate": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", - "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", + "node_modules/tailwind-variants/node_modules/tailwind-merge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.0.2.tgz", + "integrity": "sha512-l7z+OYZ7mu3DTqrL88RiKrKIqO3NcpEO8V/Od04bNpvk0kiIFndGEoqfuzvj4yuhRkHKjRkII2z+KS2HfPcSxw==", "license": "MIT", - "peerDependencies": { - "tailwindcss": ">=3.0.0 || insiders" - } - }, - "node_modules/tailwindcss/node_modules/postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/tailwindcss/node_modules/postcss-load-config/node_modules/lilconfig": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", - "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", - "engines": { - "node": ">=14" - }, "funding": { - "url": "https://github.com/sponsors/antonk52" + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.8.tgz", + "integrity": "sha512-kjeW8gjdxasbmFKpVGrGd5T4i40mV5J2Rasw48QARfYeQ8YS9x02ON9SFWax3Qf616rt4Cp3nVNIj6Hd1mP3og==", + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz", + "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", + "dev": true, + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" } }, "node_modules/terser": { @@ -8299,25 +8473,6 @@ "optional": true, "peer": true }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/three": { "version": "0.134.0", "resolved": "https://registry.npmjs.org/three/-/three-0.134.0.tgz", @@ -8389,6 +8544,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -8427,11 +8583,6 @@ "typescript": ">=4.8.4" } }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" - }, "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", @@ -8464,6 +8615,16 @@ "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", "dev": true }, + "node_modules/tw-animate-css": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/tw-animate-css/-/tw-animate-css-1.3.4.tgz", + "integrity": "sha512-dd1Ht6/YQHcNbq0znIT6dG8uhO7Ce+VIIhZUhjsryXsMPJQz3bZg7Q2eNzLwipb25bRZslGb2myio5mScd1TFg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Wombosvideo" + } + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -8551,36 +8712,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/update-browserslist-db": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", - "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -8879,6 +9010,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -8923,6 +9055,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", @@ -8941,6 +9074,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", @@ -8958,6 +9092,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -8967,12 +9102,14 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, "license": "MIT" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -8987,6 +9124,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -8999,6 +9137,7 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -9039,7 +9178,10 @@ "version": "2.8.0", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz", "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==", + "dev": true, "license": "ISC", + "optional": true, + "peer": true, "bin": { "yaml": "bin.mjs" }, diff --git a/website/package.json b/website/package.json index b3bdf0ce..d5c43e91 100644 --- a/website/package.json +++ b/website/package.json @@ -5,8 +5,8 @@ "scripts": { "dev": "vite dev", "build": "vite build", - "prebuild": "npx tsx src/lib/pwa-manifest.ts", - "postbuild": "npx tsx src/lib/sitemap.ts", + "prebuild": "npx tsx src/lib/scripts/pwa-manifest.ts", + "postbuild": "npx tsx src/lib/scripts/sitemap.ts", "preview": "vite preview", "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", @@ -14,11 +14,12 @@ "format": "prettier --write ." }, "devDependencies": { - "@lucide/svelte": "^0.482.0", + "@lucide/svelte": "^0.513.0", "@sveltejs/adapter-static": "^3.0.8", "@sveltejs/enhanced-img": "^0.6.0", "@sveltejs/kit": "^2.21.2", "@sveltejs/vite-plugin-svelte": "^5.1.0", + "@tailwindcss/vite": "^4.1.8", "@types/eslint": "^9.6.1", "@types/events": "^3.0.3", "@types/file-saver": "^2.0.7", @@ -30,8 +31,7 @@ "@types/sortablejs": "^1.15.8", "@typescript-eslint/eslint-plugin": "^8.33.1", "@typescript-eslint/parser": "^8.33.1", - "autoprefixer": "^10.4.21", - "bits-ui": "^1.8.0", + "bits-ui": "^2.5.0", "eslint": "^9.28.0", "eslint-config-prettier": "^10.1.5", "eslint-plugin-svelte": "^3.9.1", @@ -46,10 +46,11 @@ "prettier-plugin-svelte": "^3.4.0", "svelte": "^5.33.18", "svelte-check": "^4.0.0", - "svelte-sonner": "^0.3.28", - "tailwindcss": "^3.4.13", + "svelte-sonner": "^1.0.4", + "tailwindcss": "^4.1.8", "tslib": "^2.8.1", "tsx": "^4.19.1", + "tw-animate-css": "^1.3.4", "typescript": "^5.8.3", "vaul-svelte": "^1.0.0-next.7", "vite": "^6.3.5", @@ -76,8 +77,7 @@ "png.js": "^0.2.1", "sanitize-html": "^2.17.0", "sortablejs": "^1.15.6", - "tailwind-merge": "^2.5.2", - "tailwind-variants": "^0.2.1", - "tailwindcss-animate": "^1.0.7" + "tailwind-merge": "^3.3.0", + "tailwind-variants": "^1.0.0" } } diff --git a/website/postcss.config.js b/website/postcss.config.js deleted file mode 100644 index 49c0612d..00000000 --- a/website/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -export default { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -}; diff --git a/website/src/app.css b/website/src/app.css new file mode 100644 index 00000000..b2400485 --- /dev/null +++ b/website/src/app.css @@ -0,0 +1,122 @@ +@import "tailwindcss"; +@import "tw-animate-css"; + +@custom-variant dark (&:is(.dark *)); + +:root { + --background: hsl(0 0% 100%) /* <- Wrap in HSL */; + --foreground: hsl(240 10% 3.9%); + --muted: hsl(240 4.8% 95.9%); + --muted-foreground: hsl(240 3.8% 46.1%); + --popover: hsl(0 0% 100%); + --popover-foreground: hsl(240 10% 3.9%); + --card: hsl(0 0% 100%); + --card-foreground: hsl(240 10% 3.9%); + --border: hsl(240 5.9% 90%); + --input: hsl(240 5.9% 90%); + --primary: hsl(240 5.9% 10%); + --primary-foreground: hsl(0 0% 98%); + --secondary: hsl(240 4.8% 95.9%); + --secondary-foreground: hsl(240 5.9% 10%); + --accent: hsl(240 4.8% 95.9%); + --accent-foreground: hsl(240 5.9% 10%); + --destructive: hsl(0 72.2% 50.6%); + --destructive-foreground: hsl(0 0% 98%); + --ring: hsl(240 10% 3.9%); + --sidebar: hsl(0 0% 98%); + --sidebar-foreground: hsl(240 5.3% 26.1%); + --sidebar-primary: hsl(240 5.9% 10%); + --sidebar-primary-foreground: hsl(0 0% 98%); + --sidebar-accent: hsl(240 4.8% 95.9%); + --sidebar-accent-foreground: hsl(240 5.9% 10%); + --sidebar-border: hsl(220 13% 91%); + --sidebar-ring: hsl(217.2 91.2% 59.8%); + + --support: rgb(220 15 130); + --link: rgb(0 110 180); + + --radius: 0.5rem; +} + +.dark { + --background: hsl(240 10% 3.9%); + --foreground: hsl(0 0% 98%); + --muted: hsl(240 3.7% 15.9%); + --muted-foreground: hsl(240 5% 64.9%); + --popover: hsl(240 10% 3.9%); + --popover-foreground: hsl(0 0% 98%); + --card: hsl(240 10% 3.9%); + --card-foreground: hsl(0 0% 98%); + --border: hsl(240 3.7% 15.9%); + --input: hsl(240 3.7% 15.9%); + --primary: hsl(0 0% 98%); + --primary-foreground: hsl(240 5.9% 10%); + --secondary: hsl(240 3.7% 15.9%); + --secondary-foreground: hsl(0 0% 98%); + --accent: hsl(240 3.7% 15.9%); + --accent-foreground: hsl(0 0% 98%); + --destructive: hsl(0 62.8% 30.6%); + --destructive-foreground: hsl(0 0% 98%); + --ring: hsl(240 4.9% 83.9%); + --sidebar: hsl(240 5.9% 10%); + --sidebar-foreground: hsl(240 4.8% 95.9%); + --sidebar-primary: hsl(224.3 76.3% 48%); + --sidebar-primary-foreground: hsl(0 0% 100%); + --sidebar-accent: hsl(240 3.7% 15.9%); + --sidebar-accent-foreground: hsl(240 4.8% 95.9%); + --sidebar-border: hsl(240 3.7% 15.9%); + --sidebar-ring: hsl(217.2 91.2% 59.8%); + + --support: rgb(255 110 190); + --link: rgb(80 190 255); +} + +@theme inline { + /* Radius (for rounded-*) */ + --radius-sm: calc(var(--radius) - 4px); + --radius-md: calc(var(--radius) - 2px); + --radius-lg: var(--radius); + --radius-xl: calc(var(--radius) + 4px); + + /* Colors */ + --color-background: var(--background); + --color-foreground: var(--foreground); + --color-muted: var(--muted); + --color-muted-foreground: var(--muted-foreground); + --color-popover: var(--popover); + --color-popover-foreground: var(--popover-foreground); + --color-card: var(--card); + --color-card-foreground: var(--card-foreground); + --color-border: var(--border); + --color-input: var(--input); + --color-primary: var(--primary); + --color-primary-foreground: var(--primary-foreground); + --color-secondary: var(--secondary); + --color-secondary-foreground: var(--secondary-foreground); + --color-accent: var(--accent); + --color-accent-foreground: var(--accent-foreground); + --color-destructive: var(--destructive); + --color-destructive-foreground: var(--destructive-foreground); + --color-ring: var(--ring); + --color-radius: var(--radius); + --color-sidebar: var(--sidebar); + --color-sidebar-foreground: var(--sidebar-foreground); + --color-sidebar-primary: var(--sidebar-primary); + --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); + --color-sidebar-accent: var(--sidebar-accent); + --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); + --color-sidebar-border: var(--sidebar-border); + --color-sidebar-ring: var(--sidebar-ring); + --color-support: var(--support); + --color-link: var(--link); +} + +@layer base { + * { + @apply border-border; + } + + body { + @apply bg-background text-foreground; + } +} \ No newline at end of file diff --git a/website/src/app.pcss b/website/src/app.pcss deleted file mode 100644 index ad9a3b58..00000000 --- a/website/src/app.pcss +++ /dev/null @@ -1,86 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - -@layer base { - :root { - --background: 0 0% 100%; - --foreground: 222.2 84% 4.9%; - - --muted: 210 40% 96.1%; - --muted-foreground: 215.4 16.3% 45%; - - --popover: 0 0% 100%; - --popover-foreground: 222.2 84% 4.9%; - - --card: 0 0% 100%; - --card-foreground: 222.2 84% 4.9%; - - --border: 214.3 31.8% 91.4%; - --input: 214.3 31.8% 91.4%; - - --primary: 222.2 47.4% 11.2%; - --primary-foreground: 210 40% 98%; - - --secondary: 210 40% 96.1%; - --secondary-foreground: 222.2 47.4% 11.2%; - - --accent: 210 40% 92%; - --accent-foreground: 222.2 47.4% 11.2%; - - --destructive: 0 72.2% 50.6%; - --destructive-foreground: 210 40% 98%; - - --support: 220 15 130; - - --link: 0 110 180; - - --ring: 222.2 84% 4.9%; - - --radius: 0.5rem; - } - - .dark { - --background: 222.2 84% 4.9%; - --foreground: 210 40% 98%; - - --muted: 217.2 32.6% 17.5%; - --muted-foreground: 215 20.2% 65.1%; - - --popover: 222.2 84% 4.9%; - --popover-foreground: 210 40% 98%; - - --card: 222.2 84% 4.9%; - --card-foreground: 210 40% 98%; - - --border: 217.2 32.6% 17.5%; - --input: 217.2 32.6% 17.5%; - - --primary: 210 40% 98%; - --primary-foreground: 222.2 47.4% 11.2%; - - --secondary: 217.2 32.6% 17.5%; - --secondary-foreground: 210 40% 98%; - - --accent: 217.2 32.6% 30%; - --accent-foreground: 210 40% 98%; - - --destructive: 0 62.8% 30.6%; - --destructive-foreground: 210 40% 98%; - - --support: 255 110 190; - - --link: 80 190 255; - - --ring: hsl(212.7, 26.8%, 83.9); - } -} - -@layer base { - * { - @apply border-border; - } - body { - @apply bg-background text-foreground; - } -} diff --git a/website/src/hooks.server.js b/website/src/hooks.server.js index 73934d34..08ca8baf 100644 --- a/website/src/hooks.server.js +++ b/website/src/hooks.server.js @@ -41,9 +41,11 @@ export async function handle({ event, resolve }) { `; - for (let lang of Object.keys(languages)) { - headTag += ` + if (page !== '404') { + for (let lang of Object.keys(languages)) { + headTag += ` `; + } } const response = await resolve(event, { diff --git a/website/src/lib/assets/symbols.ts b/website/src/lib/assets/symbols.ts index ed6dc345..f226ee95 100644 --- a/website/src/lib/assets/symbols.ts +++ b/website/src/lib/assets/symbols.ts @@ -29,7 +29,8 @@ import { TriangleAlert, Anchor, Toilet, -} from 'lucide-svelte'; + type IconProps, +} from '@lucide/svelte'; import { Landmark as LandmarkSvg, Shell as ShellSvg, @@ -61,11 +62,11 @@ import { Anchor as AnchorSvg, Toilet as ToiletSvg, } from 'lucide-static'; -import type { ComponentType } from 'svelte'; +import type { Component } from 'svelte'; export type Symbol = { value: string; - icon?: ComponentType; + icon?: Component; iconSvg?: string; }; diff --git a/website/src/lib/components/AlgoliaDocSearch.svelte b/website/src/lib/components/AlgoliaDocSearch.svelte index 95290559..2b4ebd96 100644 --- a/website/src/lib/components/AlgoliaDocSearch.svelte +++ b/website/src/lib/components/AlgoliaDocSearch.svelte @@ -2,7 +2,11 @@ import docsearch from '@docsearch/js'; import '@docsearch/css'; import { onMount } from 'svelte'; - import { _, locale, isLoadingLocale } from '$lib/i18n'; + import { i18n } from '$lib/i18n.svelte'; + + let props: { + class?: string; + } = $props(); let mounted = false; @@ -13,31 +17,31 @@ indexName: 'gpx', container: '#docsearch', searchParameters: { - facetFilters: ['lang:' + $locale], + facetFilters: ['lang:' + i18n.lang], }, - placeholder: $_('docs.search.search'), + placeholder: i18n._('docs.search.search'), disableUserPersonalization: true, translations: { button: { - buttonText: $_('docs.search.search'), - buttonAriaLabel: $_('docs.search.search'), + buttonText: i18n._('docs.search.search'), + buttonAriaLabel: i18n._('docs.search.search'), }, modal: { searchBox: { - resetButtonTitle: $_('docs.search.clear'), - resetButtonAriaLabel: $_('docs.search.clear'), - cancelButtonText: $_('docs.search.cancel'), - cancelButtonAriaLabel: $_('docs.search.cancel'), - searchInputLabel: $_('docs.search.search'), + resetButtonTitle: i18n._('docs.search.clear'), + resetButtonAriaLabel: i18n._('docs.search.clear'), + cancelButtonText: i18n._('docs.search.cancel'), + cancelButtonAriaLabel: i18n._('docs.search.cancel'), + searchInputLabel: i18n._('docs.search.search'), }, footer: { - selectText: $_('docs.search.to_select'), - navigateText: $_('docs.search.to_navigate'), - closeText: $_('docs.search.to_close'), + selectText: i18n._('docs.search.to_select'), + navigateText: i18n._('docs.search.to_navigate'), + closeText: i18n._('docs.search.to_close'), }, noResultsScreen: { - noResultsText: $_('docs.search.no_results'), - suggestedQueryText: $_('docs.search.no_results_suggestion'), + noResultsText: i18n._('docs.search.no_results'), + suggestedQueryText: i18n._('docs.search.no_results_suggestion'), }, }, }, @@ -48,13 +52,15 @@ mounted = true; }); - $: if (mounted && $locale && !$isLoadingLocale) { - initDocsearch(); - } + $effect(() => { + if (mounted && i18n.lang && !i18n.isLoading) { + initDocsearch(); + } + }); -
+
diff --git a/website/src/lib/components/ButtonWithTooltip.svelte b/website/src/lib/components/ButtonWithTooltip.svelte index 3f052c89..e59b5326 100644 --- a/website/src/lib/components/ButtonWithTooltip.svelte +++ b/website/src/lib/components/ButtonWithTooltip.svelte @@ -1,28 +1,36 @@ - - - - - - {label} - - + + + + {#snippet child({ props })} + + {/snippet} + + + {label} + + + diff --git a/website/src/lib/components/CoordinatesPopup.svelte b/website/src/lib/components/CoordinatesPopup.svelte deleted file mode 100644 index 4d4cc4e2..00000000 --- a/website/src/lib/components/CoordinatesPopup.svelte +++ /dev/null @@ -1,18 +0,0 @@ - diff --git a/website/src/lib/components/ElevationProfile.svelte b/website/src/lib/components/ElevationProfile.svelte index df51053e..4f69829d 100644 --- a/website/src/lib/components/ElevationProfile.svelte +++ b/website/src/lib/components/ElevationProfile.svelte @@ -18,9 +18,9 @@ Check, ChartNoAxesColumn, Construction, - } from 'lucide-svelte'; + } from '@lucide/svelte'; import { getSlopeColor, getSurfaceColor, getHighwayColor } from '$lib/assets/colors'; - import { _, df } from '$lib/i18n'; + import { _, df } from '$lib/i18n.svelte'; import { getCadenceWithUnits, getConvertedDistance, @@ -120,17 +120,17 @@ marker.addTo($map); } } - return `${$_('quantities.elevation')}: ${getElevationWithUnits(point.y, false)}`; + return `${i18n._('quantities.elevation')}: ${getElevationWithUnits(point.y, false)}`; } else if (context.datasetIndex === 1) { - return `${$velocityUnits === 'speed' ? $_('quantities.speed') : $_('quantities.pace')}: ${getVelocityWithUnits(point.y, false)}`; + return `${$velocityUnits === 'speed' ? i18n._('quantities.speed') : i18n._('quantities.pace')}: ${getVelocityWithUnits(point.y, false)}`; } else if (context.datasetIndex === 2) { - return `${$_('quantities.heartrate')}: ${getHeartRateWithUnits(point.y)}`; + return `${i18n._('quantities.heartrate')}: ${getHeartRateWithUnits(point.y)}`; } else if (context.datasetIndex === 3) { - return `${$_('quantities.cadence')}: ${getCadenceWithUnits(point.y)}`; + return `${i18n._('quantities.cadence')}: ${getCadenceWithUnits(point.y)}`; } else if (context.datasetIndex === 4) { - return `${$_('quantities.temperature')}: ${getTemperatureWithUnits(point.y, false)}`; + return `${i18n._('quantities.temperature')}: ${getTemperatureWithUnits(point.y, false)}`; } else if (context.datasetIndex === 5) { - return `${$_('quantities.power')}: ${getPowerWithUnits(point.y)}`; + return `${i18n._('quantities.power')}: ${getPowerWithUnits(point.y)}`; } }, afterBody: function (contexts: Chart.TooltipContext[]) { @@ -152,31 +152,35 @@ let mtbScale = point.extensions.mtb_scale; let labels = [ - ` ${$_('quantities.distance')}: ${getDistanceWithUnits(point.x, false)}`, - ` ${$_('quantities.slope')}: ${slope.at} %${elevationFill === 'slope' ? ` (${slope.length} @${slope.segment} %)` : ''}`, + ` ${i18n._('quantities.distance')}: ${getDistanceWithUnits(point.x, false)}`, + ` ${i18n._('quantities.slope')}: ${slope.at} %${elevationFill === 'slope' ? ` (${slope.length} @${slope.segment} %)` : ''}`, ]; if (elevationFill === 'surface') { labels.push( - ` ${$_('quantities.surface')}: ${$_(`toolbar.routing.surface.${surface}`)}` + ` ${i18n._('quantities.surface')}: ${i18n._(`toolbar.routing.surface.${surface}`)}` ); } if (elevationFill === 'highway') { labels.push( - ` ${$_('quantities.highway')}: ${$_(`toolbar.routing.highway.${highway}`)}${ + ` ${i18n._('quantities.highway')}: ${i18n._(`toolbar.routing.highway.${highway}`)}${ sacScale - ? ` (${$_(`toolbar.routing.sac_scale.${sacScale}`)})` + ? ` (${i18n._(`toolbar.routing.sac_scale.${sacScale}`)})` : '' }` ); if (mtbScale) { - labels.push(` ${$_('toolbar.routing.mtb_scale')}: ${mtbScale}`); + labels.push( + ` ${i18n._('toolbar.routing.mtb_scale')}: ${mtbScale}` + ); } } if (point.time) { - labels.push(` ${$_('quantities.time')}: ${$df.format(point.time)}`); + labels.push( + ` ${i18n._('quantities.time')}: ${$df.format(point.time)}` + ); } return labels; @@ -357,7 +361,7 @@ // update data chart.data.datasets[0] = { - label: $_('quantities.elevation'), + label: i18n._('quantities.elevation'), data: data.local.points.map((point, index) => { return { x: getConvertedDistance(data.local.distance.total[index]), @@ -552,15 +556,17 @@ {#if showControls}
- - - - + + {#snippet child({ props })} + + + + {/snippet} - {$_('quantities.slope')} + {i18n._('quantities.slope')} - {$_('quantities.surface')} + {i18n._('quantities.surface')} - {$_('quantities.highway')} + {i18n._('quantities.highway')} {$velocityUnits === 'speed' - ? $_('quantities.speed') - : $_('quantities.pace')} + ? i18n._('quantities.speed') + : i18n._('quantities.pace')} - {$_('quantities.heartrate')} + {i18n._('quantities.heartrate')} - {$_('quantities.cadence')} + {i18n._('quantities.cadence')} - {$_('quantities.temperature')} + {i18n._('quantities.temperature')} - {$_('quantities.power')} + {i18n._('quantities.power')} diff --git a/website/src/lib/components/Footer.svelte b/website/src/lib/components/Footer.svelte index 19e5ee9a..bc3153a6 100644 --- a/website/src/lib/components/Footer.svelte +++ b/website/src/lib/components/Footer.svelte @@ -2,8 +2,8 @@ import { Button } from '$lib/components/ui/button'; import LanguageSelect from '$lib/components/LanguageSelect.svelte'; import Logo from '$lib/components/Logo.svelte'; - import { AtSign, BookOpenText, Heart, Home, Map } from 'lucide-svelte'; - import { _, locale } from '$lib/i18n'; + import { AtSign, BookOpenText, Heart, Home, Map } from '@lucide/svelte'; + import { i18n } from '$lib/i18n.svelte'; import { getURLForLanguage } from '$lib/utils'; @@ -24,42 +24,42 @@
- {$_('homepage.website')} + {i18n._('homepage.website')}
- {$_('homepage.contact')} + {i18n._('homepage.contact')}
- {$_('homepage.contribute')} + {i18n._('homepage.contribute')}
diff --git a/website/src/lib/components/GPXStatistics.svelte b/website/src/lib/components/GPXStatistics.svelte index d2876019..2f0cfed6 100644 --- a/website/src/lib/components/GPXStatistics.svelte +++ b/website/src/lib/components/GPXStatistics.svelte @@ -3,9 +3,9 @@ import Tooltip from '$lib/components/Tooltip.svelte'; import WithUnits from '$lib/components/WithUnits.svelte'; - import { MoveDownRight, MoveUpRight, Ruler, Timer, Zap } from 'lucide-svelte'; + import { MoveDownRight, MoveUpRight, Ruler, Timer, Zap } from '@lucide/svelte'; - import { _ } from '$lib/i18n'; + import { i18n } from '$lib/i18n.svelte'; import type { GPXStatistics } from 'gpx'; import type { Writable } from 'svelte/store'; import { settings } from '$lib/db'; @@ -36,13 +36,13 @@ ? 'flex-col justify-center' : 'flex-row w-full justify-between'} gap-4 p-0" > - + - + @@ -54,8 +54,10 @@ @@ -72,7 +74,7 @@ {#if panelSize > 160 || orientation === 'horizontal'} diff --git a/website/src/lib/components/Help.svelte b/website/src/lib/components/Help.svelte index 04fa5f85..1b6c6d75 100644 --- a/website/src/lib/components/Help.svelte +++ b/website/src/lib/components/Help.svelte @@ -1,6 +1,6 @@ @@ -13,7 +13,7 @@ {#if link} - {$_('menu.more')} + {i18n._('menu.more')} {/if} diff --git a/website/src/lib/components/LanguageSelect.svelte b/website/src/lib/components/LanguageSelect.svelte index 4ecf793e..8e421fc3 100644 --- a/website/src/lib/components/LanguageSelect.svelte +++ b/website/src/lib/components/LanguageSelect.svelte @@ -1,37 +1,27 @@ - - + + - + + {languages[i18n.lang]} + {#each Object.entries(languages) as [lang, label]} - {#if $page.url.pathname.includes('404')} + {#if page.url.pathname.includes('404')} {label} {:else} - + {label} {/if} @@ -41,9 +31,9 @@ @@ -203,9 +215,9 @@

- {$_('homepage.identity')} + {i18n._('homepage.identity')}

-

{$_('homepage.identity_description')}

+

{i18n._('homepage.identity_description')}

@@ -213,9 +225,9 @@ @@ -244,7 +256,7 @@ fill="rgb(var(--support))" color="rgb(var(--support))" /> - {$_('homepage.support_button')} + {i18n._('homepage.support_button')}
- {$_('homepage.contribute')} + {i18n._('homepage.contribute')}
@@ -267,7 +279,7 @@ class="shrink-0 flex flex-col sm:flex-row lg:flex-col items-center gap-x-4 gap-y-2" >
- ❤️ {$_('homepage.supported_by')} + ❤️ {i18n._('homepage.supported_by')}
diff --git a/website/src/routes/[[language]]/app/+page.svelte b/website/src/routes/[[language]]/app/+page.svelte index 4acbcd22..09bae18b 100644 --- a/website/src/routes/[[language]]/app/+page.svelte +++ b/website/src/routes/[[language]]/app/+page.svelte @@ -1,24 +1,25 @@
-

{$_('metadata.home_title')} — {$_('metadata.app_title')}

-

{$_('metadata.description')}

-

{$_('toolbar.routing.tooltip')}

-

{$_('toolbar.routing.help_no_file')}

-

{$_('toolbar.routing.help')}

-

{$_('toolbar.routing.reverse.button')}

-

{$_('toolbar.routing.reverse.tooltip')}

-

{$_('toolbar.routing.route_back_to_start.button')}

-

{$_('toolbar.routing.route_back_to_start.tooltip')}

-

{$_('toolbar.routing.round_trip.button')}

-

{$_('toolbar.routing.round_trip.tooltip')}

-

{$_('toolbar.routing.start_loop_here')}

-

{$_('toolbar.scissors.tooltip')}

-

{$_('toolbar.scissors.help')}

-

{$_('toolbar.time.tooltip')}

-

{$_('toolbar.time.help')}

-

{$_('toolbar.merge.tooltip')}

-

{$_('toolbar.merge.merge_traces')}

-

{$_('toolbar.merge.help_merge_traces')}

-

{$_('toolbar.merge.merge_contents')}

-

{$_('toolbar.merge.help_merge_contents')}

-

{$_('toolbar.elevation.button')}

-

{$_('toolbar.elevation.help')}

-

{$_('toolbar.waypoint.tooltip')}

-

{$_('toolbar.waypoint.help')}

-

{$_('toolbar.reduce.tooltip')}

-

{$_('toolbar.reduce.help')}

-

{$_('toolbar.clean.tooltip')}

-

{$_('toolbar.clean.help')}

-

{$_('gpx.files')}, {$_('gpx.tracks')}, {$_('gpx.segments')}, {$_('gpx.waypoints')}

+

{i18n._('metadata.home_title')} — {i18n._('metadata.app_title')}

+

{i18n._('metadata.description')}

+

{i18n._('toolbar.routing.tooltip')}

+

{i18n._('toolbar.routing.help_no_file')}

+

{i18n._('toolbar.routing.help')}

+

{i18n._('toolbar.routing.reverse.button')}

+

{i18n._('toolbar.routing.reverse.tooltip')}

+

{i18n._('toolbar.routing.route_back_to_start.button')}

+

{i18n._('toolbar.routing.route_back_to_start.tooltip')}

+

{i18n._('toolbar.routing.round_trip.button')}

+

{i18n._('toolbar.routing.round_trip.tooltip')}

+

{i18n._('toolbar.routing.start_loop_here')}

+

{i18n._('toolbar.scissors.tooltip')}

+

{i18n._('toolbar.scissors.help')}

+

{i18n._('toolbar.time.tooltip')}

+

{i18n._('toolbar.time.help')}

+

{i18n._('toolbar.merge.tooltip')}

+

{i18n._('toolbar.merge.merge_traces')}

+

{i18n._('toolbar.merge.help_merge_traces')}

+

{i18n._('toolbar.merge.merge_contents')}

+

{i18n._('toolbar.merge.help_merge_contents')}

+

{i18n._('toolbar.elevation.button')}

+

{i18n._('toolbar.elevation.help')}

+

{i18n._('toolbar.waypoint.tooltip')}

+

{i18n._('toolbar.waypoint.help')}

+

{i18n._('toolbar.reduce.tooltip')}

+

{i18n._('toolbar.reduce.help')}

+

{i18n._('toolbar.clean.tooltip')}

+

{i18n._('toolbar.clean.help')}

+

+ {i18n._('gpx.files')}, {i18n._('gpx.tracks')}, {i18n._('gpx.segments')}, {i18n._( + 'gpx.waypoints' + )} +

- +
- +
- + - - + + - {#if !$treeFileView} +
- {#if $elevationProfile} + {#if elevationProfile.value} {/if}
- - {#if $elevationProfile} + /> --> +
- {#if $treeFileView} - - + {#if treeFileView.value} + + {/if}
@@ -152,6 +161,8 @@