From bd1ea95eabbe80229739afe6badd2774acdd774d Mon Sep 17 00:00:00 2001 From: Diego Temkin <65834932+dtemkin1@users.noreply.github.com> Date: Sun, 8 Feb 2026 16:14:21 -0500 Subject: [PATCH 01/28] bump --- package-lock.json | 1936 +++++++++++++++++++++++---------------------- package.json | 12 +- 2 files changed, 996 insertions(+), 952 deletions(-) diff --git a/package-lock.json b/package-lock.json index 23386978..b72f2e8c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "hydrant", "version": "0.1.0", "dependencies": { - "@chakra-ui/react": "^3.31.0", + "@chakra-ui/react": "^3.32.0", "@emotion/cache": "^11.14.0", "@emotion/react": "^11.14.0", "@emotion/server": "^11.11.0", @@ -39,14 +39,14 @@ "timezones-ical-library": "^2.1.0" }, "devDependencies": { - "@chakra-ui/cli": "^3.31.0", + "@chakra-ui/cli": "^3.32.0", "@eslint/compat": "^2.0.2", "@eslint/js": "^9.39.2", "@react-router/dev": "^7.13.0", "@react-router/fs-routes": "^7.13.0", "@types/jsdom": "^27.0.0", - "@types/node": "^22.19.7", - "@types/react": "^19.2.10", + "@types/node": "^22.19.10", + "@types/react": "^19.2.13", "@types/react-dom": "19.2.3", "@vitest/eslint-plugin": "^1.6.6", "eslint": "^9.39.2", @@ -60,7 +60,7 @@ "typescript-eslint": "^8.54.0", "vite": "^7.3.1", "vite-plugin-checker": "^0.12.0", - "vite-tsconfig-paths": "^6.0.5", + "vite-tsconfig-paths": "^6.1.0", "vitest": "^4.0.18" }, "engines": { @@ -75,75 +75,75 @@ "license": "MIT" }, "node_modules/@ark-ui/react": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@ark-ui/react/-/react-5.30.0.tgz", - "integrity": "sha512-MIWgj6uWTuG42DGaXUQARObvuQJymm+/1wsdGEDrIHtSv0a2PFQO4svwMvMFwfFbL1jVkJzzBU6JDAH0xKbvyw==", + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@ark-ui/react/-/react-5.31.0.tgz", + "integrity": "sha512-XHzq6Y3VcORoMCk4KfkAxauyuk8sTtllb1FaD3dcKfKRxIf6fw1mlAHfGIofuaqtTnP0mt0RX0ohzCsEG7ityQ==", "license": "MIT", "dependencies": { "@internationalized/date": "3.10.0", - "@zag-js/accordion": "1.31.1", - "@zag-js/anatomy": "1.31.1", - "@zag-js/angle-slider": "1.31.1", - "@zag-js/async-list": "1.31.1", - "@zag-js/auto-resize": "1.31.1", - "@zag-js/avatar": "1.31.1", - "@zag-js/bottom-sheet": "1.31.1", - "@zag-js/carousel": "1.31.1", - "@zag-js/checkbox": "1.31.1", - "@zag-js/clipboard": "1.31.1", - "@zag-js/collapsible": "1.31.1", - "@zag-js/collection": "1.31.1", - "@zag-js/color-picker": "1.31.1", - "@zag-js/color-utils": "1.31.1", - "@zag-js/combobox": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/date-picker": "1.31.1", - "@zag-js/date-utils": "1.31.1", - "@zag-js/dialog": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/editable": "1.31.1", - "@zag-js/file-upload": "1.31.1", - "@zag-js/file-utils": "1.31.1", - "@zag-js/floating-panel": "1.31.1", - "@zag-js/focus-trap": "1.31.1", - "@zag-js/highlight-word": "1.31.1", - "@zag-js/hover-card": "1.31.1", - "@zag-js/i18n-utils": "1.31.1", - "@zag-js/image-cropper": "1.31.1", - "@zag-js/json-tree-utils": "1.31.1", - "@zag-js/listbox": "1.31.1", - "@zag-js/marquee": "1.31.1", - "@zag-js/menu": "1.31.1", - "@zag-js/navigation-menu": "1.31.1", - "@zag-js/number-input": "1.31.1", - "@zag-js/pagination": "1.31.1", - "@zag-js/password-input": "1.31.1", - "@zag-js/pin-input": "1.31.1", - "@zag-js/popover": "1.31.1", - "@zag-js/presence": "1.31.1", - "@zag-js/progress": "1.31.1", - "@zag-js/qr-code": "1.31.1", - "@zag-js/radio-group": "1.31.1", - "@zag-js/rating-group": "1.31.1", - "@zag-js/react": "1.31.1", - "@zag-js/scroll-area": "1.31.1", - "@zag-js/select": "1.31.1", - "@zag-js/signature-pad": "1.31.1", - "@zag-js/slider": "1.31.1", - "@zag-js/splitter": "1.31.1", - "@zag-js/steps": "1.31.1", - "@zag-js/switch": "1.31.1", - "@zag-js/tabs": "1.31.1", - "@zag-js/tags-input": "1.31.1", - "@zag-js/timer": "1.31.1", - "@zag-js/toast": "1.31.1", - "@zag-js/toggle": "1.31.1", - "@zag-js/toggle-group": "1.31.1", - "@zag-js/tooltip": "1.31.1", - "@zag-js/tour": "1.31.1", - "@zag-js/tree-view": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/accordion": "1.33.1", + "@zag-js/anatomy": "1.33.1", + "@zag-js/angle-slider": "1.33.1", + "@zag-js/async-list": "1.33.1", + "@zag-js/auto-resize": "1.33.1", + "@zag-js/avatar": "1.33.1", + "@zag-js/bottom-sheet": "1.33.1", + "@zag-js/carousel": "1.33.1", + "@zag-js/checkbox": "1.33.1", + "@zag-js/clipboard": "1.33.1", + "@zag-js/collapsible": "1.33.1", + "@zag-js/collection": "1.33.1", + "@zag-js/color-picker": "1.33.1", + "@zag-js/color-utils": "1.33.1", + "@zag-js/combobox": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/date-picker": "1.33.1", + "@zag-js/date-utils": "1.33.1", + "@zag-js/dialog": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/editable": "1.33.1", + "@zag-js/file-upload": "1.33.1", + "@zag-js/file-utils": "1.33.1", + "@zag-js/floating-panel": "1.33.1", + "@zag-js/focus-trap": "1.33.1", + "@zag-js/highlight-word": "1.33.1", + "@zag-js/hover-card": "1.33.1", + "@zag-js/i18n-utils": "1.33.1", + "@zag-js/image-cropper": "1.33.1", + "@zag-js/json-tree-utils": "1.33.1", + "@zag-js/listbox": "1.33.1", + "@zag-js/marquee": "1.33.1", + "@zag-js/menu": "1.33.1", + "@zag-js/navigation-menu": "1.33.1", + "@zag-js/number-input": "1.33.1", + "@zag-js/pagination": "1.33.1", + "@zag-js/password-input": "1.33.1", + "@zag-js/pin-input": "1.33.1", + "@zag-js/popover": "1.33.1", + "@zag-js/presence": "1.33.1", + "@zag-js/progress": "1.33.1", + "@zag-js/qr-code": "1.33.1", + "@zag-js/radio-group": "1.33.1", + "@zag-js/rating-group": "1.33.1", + "@zag-js/react": "1.33.1", + "@zag-js/scroll-area": "1.33.1", + "@zag-js/select": "1.33.1", + "@zag-js/signature-pad": "1.33.1", + "@zag-js/slider": "1.33.1", + "@zag-js/splitter": "1.33.1", + "@zag-js/steps": "1.33.1", + "@zag-js/switch": "1.33.1", + "@zag-js/tabs": "1.33.1", + "@zag-js/tags-input": "1.33.1", + "@zag-js/timer": "1.33.1", + "@zag-js/toast": "1.33.1", + "@zag-js/toggle": "1.33.1", + "@zag-js/toggle-group": "1.33.1", + "@zag-js/tooltip": "1.33.1", + "@zag-js/tour": "1.33.1", + "@zag-js/tree-view": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" }, "peerDependencies": { "react": ">=18.0.0", @@ -151,17 +151,17 @@ } }, "node_modules/@asamuzakjp/css-color": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.1.1.tgz", - "integrity": "sha512-B0Hv6G3gWGMn0xKJ0txEi/jM5iFpT3MfDxmhZFb4W047GvytCf1DHQ1D69W3zHI4yWe2aTZAA0JnbMZ7Xc8DuQ==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.1.2.tgz", + "integrity": "sha512-NfBUvBaYgKIuq6E/RBLY1m0IohzNHAYyaJGuTK79Z23uNwmz2jl1mPsC5ZxCCxylinKhT1Amn5oNTlx1wN8cQg==", "dev": true, "license": "MIT", "dependencies": { - "@csstools/css-calc": "^2.1.4", - "@csstools/css-color-parser": "^3.1.0", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "lru-cache": "^11.2.4" + "@csstools/css-calc": "^3.0.0", + "@csstools/css-color-parser": "^4.0.1", + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0", + "lru-cache": "^11.2.5" } }, "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { @@ -175,9 +175,9 @@ } }, "node_modules/@asamuzakjp/dom-selector": { - "version": "6.7.6", - "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.7.6.tgz", - "integrity": "sha512-hBaJER6A9MpdG3WgdlOolHmbOYvSk46y7IQN/1+iqiCuUu6iWdQrs9DGKF8ocqsEqWujWf/V7b7vaDgiUmIvUg==", + "version": "6.7.8", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.7.8.tgz", + "integrity": "sha512-stisC1nULNc9oH5lakAj8MH88ZxeGxzyWNDfbdCxvJSJIvDsHNZqYvscGTgy/ysgXWLJPt6K/4t0/GjvtKcFJQ==", "dev": true, "license": "MIT", "dependencies": { @@ -185,7 +185,7 @@ "bidi-js": "^1.0.3", "css-tree": "^3.1.0", "is-potential-custom-element-name": "^1.0.1", - "lru-cache": "^11.2.4" + "lru-cache": "^11.2.5" } }, "node_modules/@asamuzakjp/dom-selector/node_modules/lru-cache": { @@ -206,9 +206,9 @@ "license": "MIT" }, "node_modules/@babel/code-frame": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.28.6.tgz", - "integrity": "sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.28.5", @@ -220,9 +220,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.6.tgz", - "integrity": "sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", + "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", "dev": true, "license": "MIT", "engines": { @@ -230,21 +230,22 @@ } }, "node_modules/@babel/core": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.6.tgz", - "integrity": "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "@babel/code-frame": "^7.28.6", - "@babel/generator": "^7.28.6", + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-module-transforms": "^7.28.6", "@babel/helpers": "^7.28.6", - "@babel/parser": "^7.28.6", + "@babel/parser": "^7.29.0", "@babel/template": "^7.28.6", - "@babel/traverse": "^7.28.6", - "@babel/types": "^7.28.6", + "@babel/traverse": "^7.29.0", + "@babel/types": "^7.29.0", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", @@ -261,13 +262,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.6.tgz", - "integrity": "sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==", + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.6", - "@babel/types": "^7.28.6", + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -480,12 +481,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.6.tgz", - "integrity": "sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz", + "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==", "license": "MIT", "dependencies": { - "@babel/types": "^7.28.6" + "@babel/types": "^7.29.0" }, "bin": { "parser": "bin/babel-parser.js" @@ -607,17 +608,17 @@ } }, "node_modules/@babel/traverse": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.6.tgz", - "integrity": "sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.28.6", - "@babel/generator": "^7.28.6", + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.6", + "@babel/parser": "^7.29.0", "@babel/template": "^7.28.6", - "@babel/types": "^7.28.6", + "@babel/types": "^7.29.0", "debug": "^4.3.1" }, "engines": { @@ -625,9 +626,9 @@ } }, "node_modules/@babel/types": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.6.tgz", - "integrity": "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.27.1", @@ -638,9 +639,9 @@ } }, "node_modules/@chakra-ui/cli": { - "version": "3.31.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/cli/-/cli-3.31.0.tgz", - "integrity": "sha512-qRnDImPeZ2kILMlH953PfZNcrAZ4kwY8W+dL8BuBibSTDq5llbeIIowk4SA15MaSzMnRpgY7lQUNzNvN4ZPSIw==", + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/cli/-/cli-3.32.0.tgz", + "integrity": "sha512-VYFAvKNWnxagUe4yOfgQ5OlhTJeX3KabG/sWKRuBnB5j3MYtEmm0qmjf1/cK4ead4vQSIh/HD+ny8czlhqRj0g==", "dev": true, "license": "MIT", "dependencies": { @@ -693,10 +694,11 @@ } }, "node_modules/@chakra-ui/react": { - "version": "3.31.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/react/-/react-3.31.0.tgz", - "integrity": "sha512-puvrZOfnfMA+DckDcz0UxO20l7TVhwsdQ9ksCv4nIUB430yuWzon0yo9fM10lEr3hd7BhjZARpMCVw5u280clw==", + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react/-/react-3.32.0.tgz", + "integrity": "sha512-moQcmm75vm4i4IYxaRhN+49hGsQSHyB4NU84UsNjLf/XMDcg3RQzOlRfbmYp4DT7ojAtvqZld6aY6jGLikSp8Q==", "license": "MIT", + "peer": true, "dependencies": { "@ark-ui/react": "^5.29.1", "@emotion/is-prop-valid": "^1.4.0", @@ -736,9 +738,9 @@ } }, "node_modules/@csstools/color-helpers": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", - "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.0.1.tgz", + "integrity": "sha512-NmXRccUJMk2AWA5A7e5a//3bCIMyOu2hAtdRYrhPPHjDxINuCwX1w6rnIZ4xjLcp0ayv6h8Pc3X0eJUGiAAXHQ==", "dev": true, "funding": [ { @@ -752,13 +754,13 @@ ], "license": "MIT-0", "engines": { - "node": ">=18" + "node": ">=20.19.0" } }, "node_modules/@csstools/css-calc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", - "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.0.0.tgz", + "integrity": "sha512-q4d82GTl8BIlh/dTnVsWmxnbWJeb3kiU8eUH71UxlxnS+WIaALmtzTL8gR15PkYOexMQYVk0CO4qIG93C1IvPA==", "dev": true, "funding": [ { @@ -772,17 +774,17 @@ ], "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20.19.0" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0" } }, "node_modules/@csstools/css-color-parser": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz", - "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.0.1.tgz", + "integrity": "sha512-vYwO15eRBEkeF6xjAno/KQ61HacNhfQuuU/eGwH67DplL0zD5ZixUa563phQvUelA07yDczIXdtmYojCphKJcw==", "dev": true, "funding": [ { @@ -796,21 +798,21 @@ ], "license": "MIT", "dependencies": { - "@csstools/color-helpers": "^5.1.0", - "@csstools/css-calc": "^2.1.4" + "@csstools/color-helpers": "^6.0.1", + "@csstools/css-calc": "^3.0.0" }, "engines": { - "node": ">=18" + "node": ">=20.19.0" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0" } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", - "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.0.tgz", + "integrity": "sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==", "dev": true, "funding": [ { @@ -823,11 +825,12 @@ } ], "license": "MIT", + "peer": true, "engines": { - "node": ">=18" + "node": ">=20.19.0" }, "peerDependencies": { - "@csstools/css-tokenizer": "^3.0.4" + "@csstools/css-tokenizer": "^4.0.0" } }, "node_modules/@csstools/css-syntax-patches-for-csstree": { @@ -848,9 +851,9 @@ "license": "MIT-0" }, "node_modules/@csstools/css-tokenizer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", - "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.0.tgz", + "integrity": "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==", "dev": true, "funding": [ { @@ -863,8 +866,9 @@ } ], "license": "MIT", + "peer": true, "engines": { - "node": ">=18" + "node": ">=20.19.0" } }, "node_modules/@emotion/babel-plugin": { @@ -931,6 +935,7 @@ "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.13.5", @@ -1722,9 +1727,9 @@ } }, "node_modules/@exodus/bytes": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-1.10.0.tgz", - "integrity": "sha512-tf8YdcbirXdPnJ+Nd4UN1EXnz+IP2DI45YVEr3vvzcVTOyrApkmIB4zvOQVd3XPr7RXnfBtAx+PXImXOIU0Ajg==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-1.11.0.tgz", + "integrity": "sha512-wO3vd8nsEHdumsXrjGO/v4p6irbg7hy9kvIeR6i2AwylZSk4HJdWgL0FNaVquW1+AweJcdvU1IEpuIWk/WaPnA==", "dev": true, "license": "MIT", "engines": { @@ -1740,21 +1745,21 @@ } }, "node_modules/@floating-ui/core": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz", - "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.4.tgz", + "integrity": "sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==", "license": "MIT", "dependencies": { "@floating-ui/utils": "^0.2.10" } }, "node_modules/@floating-ui/dom": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz", - "integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.5.tgz", + "integrity": "sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg==", "license": "MIT", "dependencies": { - "@floating-ui/core": "^1.7.3", + "@floating-ui/core": "^1.7.4", "@floating-ui/utils": "^0.2.10" } }, @@ -1778,6 +1783,7 @@ "resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-6.1.20.tgz", "integrity": "sha512-1cukXLlePFiJ8YKXn/4tMKsy0etxYLCkXk8nUCFi11nRONF2Ba2CD5b21/ovtOO2tL6afTJfwmc1ed3HG7eB1g==", "license": "MIT", + "peer": true, "dependencies": { "preact": "~10.12.1" } @@ -1880,6 +1886,7 @@ "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.10.0.tgz", "integrity": "sha512-oxDR/NTEJ1k+UFVQElaNIk65E/Z83HK1z1WI3lQyhTtnNg4R5oVXaPzK3jcpKG8UHKDVuDQHzn+wsxSz8RP3aw==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@swc/helpers": "^0.5.0" } @@ -2180,9 +2187,9 @@ } }, "node_modules/@react-router/dev/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, "license": "ISC", "bin": { @@ -2268,6 +2275,7 @@ "resolved": "https://registry.npmjs.org/@rjsf/core/-/core-6.2.5.tgz", "integrity": "sha512-k/2aAKj9IY7JBcnPrYv7frgHkfK0KsS7h8PgPW14GJREh+X5EX/icrypcQu5ge/Ggbwi+90plJll07YiRV/lFg==", "license": "Apache-2.0", + "peer": true, "dependencies": { "lodash": "^4.17.21", "lodash-es": "^4.17.21", @@ -2287,6 +2295,7 @@ "resolved": "https://registry.npmjs.org/@rjsf/utils/-/utils-6.2.5.tgz", "integrity": "sha512-29SvRuY3gKyAHUUnIiJiAF/mTnokgrE7XqUXMj+CZK+sGcmAegwhlnQMJgLQciTodMwTwOaDyV1Fxc47VKTHFw==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@x0k/json-schema-merge": "^1.0.2", "fast-uri": "^3.1.0", @@ -2321,9 +2330,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.57.0.tgz", - "integrity": "sha512-tPgXB6cDTndIe1ah7u6amCI1T0SsnlOuKgg10Xh3uizJk4e5M1JGaUMk7J4ciuAUcFpbOiNhm2XIjP9ON0dUqA==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.57.1.tgz", + "integrity": "sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==", "cpu": [ "arm" ], @@ -2335,9 +2344,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.57.0.tgz", - "integrity": "sha512-sa4LyseLLXr1onr97StkU1Nb7fWcg6niokTwEVNOO7awaKaoRObQ54+V/hrF/BP1noMEaaAW6Fg2d/CfLiq3Mg==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.57.1.tgz", + "integrity": "sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==", "cpu": [ "arm64" ], @@ -2349,9 +2358,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.57.0.tgz", - "integrity": "sha512-/NNIj9A7yLjKdmkx5dC2XQ9DmjIECpGpwHoGmA5E1AhU0fuICSqSWScPhN1yLCkEdkCwJIDu2xIeLPs60MNIVg==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.57.1.tgz", + "integrity": "sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==", "cpu": [ "arm64" ], @@ -2363,9 +2372,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.57.0.tgz", - "integrity": "sha512-xoh8abqgPrPYPr7pTYipqnUi1V3em56JzE/HgDgitTqZBZ3yKCWI+7KUkceM6tNweyUKYru1UMi7FC060RyKwA==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.57.1.tgz", + "integrity": "sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==", "cpu": [ "x64" ], @@ -2377,9 +2386,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.57.0.tgz", - "integrity": "sha512-PCkMh7fNahWSbA0OTUQ2OpYHpjZZr0hPr8lId8twD7a7SeWrvT3xJVyza+dQwXSSq4yEQTMoXgNOfMCsn8584g==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.57.1.tgz", + "integrity": "sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==", "cpu": [ "arm64" ], @@ -2391,9 +2400,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.57.0.tgz", - "integrity": "sha512-1j3stGx+qbhXql4OCDZhnK7b01s6rBKNybfsX+TNrEe9JNq4DLi1yGiR1xW+nL+FNVvI4D02PUnl6gJ/2y6WJA==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.57.1.tgz", + "integrity": "sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==", "cpu": [ "x64" ], @@ -2405,9 +2414,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.57.0.tgz", - "integrity": "sha512-eyrr5W08Ms9uM0mLcKfM/Uzx7hjhz2bcjv8P2uynfj0yU8GGPdz8iYrBPhiLOZqahoAMB8ZiolRZPbbU2MAi6Q==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.57.1.tgz", + "integrity": "sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==", "cpu": [ "arm" ], @@ -2419,9 +2428,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.57.0.tgz", - "integrity": "sha512-Xds90ITXJCNyX9pDhqf85MKWUI4lqjiPAipJ8OLp8xqI2Ehk+TCVhF9rvOoN8xTbcafow3QOThkNnrM33uCFQA==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.57.1.tgz", + "integrity": "sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==", "cpu": [ "arm" ], @@ -2433,9 +2442,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.57.0.tgz", - "integrity": "sha512-Xws2KA4CLvZmXjy46SQaXSejuKPhwVdaNinldoYfqruZBaJHqVo6hnRa8SDo9z7PBW5x84SH64+izmldCgbezw==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.57.1.tgz", + "integrity": "sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==", "cpu": [ "arm64" ], @@ -2447,9 +2456,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.57.0.tgz", - "integrity": "sha512-hrKXKbX5FdaRJj7lTMusmvKbhMJSGWJ+w++4KmjiDhpTgNlhYobMvKfDoIWecy4O60K6yA4SnztGuNTQF+Lplw==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.57.1.tgz", + "integrity": "sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==", "cpu": [ "arm64" ], @@ -2461,9 +2470,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.57.0.tgz", - "integrity": "sha512-6A+nccfSDGKsPm00d3xKcrsBcbqzCTAukjwWK6rbuAnB2bHaL3r9720HBVZ/no7+FhZLz/U3GwwZZEh6tOSI8Q==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.57.1.tgz", + "integrity": "sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==", "cpu": [ "loong64" ], @@ -2475,9 +2484,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.57.0.tgz", - "integrity": "sha512-4P1VyYUe6XAJtQH1Hh99THxr0GKMMwIXsRNOceLrJnaHTDgk1FTcTimDgneRJPvB3LqDQxUmroBclQ1S0cIJwQ==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.57.1.tgz", + "integrity": "sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==", "cpu": [ "loong64" ], @@ -2489,9 +2498,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.57.0.tgz", - "integrity": "sha512-8Vv6pLuIZCMcgXre6c3nOPhE0gjz1+nZP6T+hwWjr7sVH8k0jRkH+XnfjjOTglyMBdSKBPPz54/y1gToSKwrSQ==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.57.1.tgz", + "integrity": "sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==", "cpu": [ "ppc64" ], @@ -2503,9 +2512,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.57.0.tgz", - "integrity": "sha512-r1te1M0Sm2TBVD/RxBPC6RZVwNqUTwJTA7w+C/IW5v9Ssu6xmxWEi+iJQlpBhtUiT1raJ5b48pI8tBvEjEFnFA==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.57.1.tgz", + "integrity": "sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==", "cpu": [ "ppc64" ], @@ -2517,9 +2526,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.57.0.tgz", - "integrity": "sha512-say0uMU/RaPm3CDQLxUUTF2oNWL8ysvHkAjcCzV2znxBr23kFfaxocS9qJm+NdkRhF8wtdEEAJuYcLPhSPbjuQ==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.57.1.tgz", + "integrity": "sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==", "cpu": [ "riscv64" ], @@ -2531,9 +2540,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.57.0.tgz", - "integrity": "sha512-/MU7/HizQGsnBREtRpcSbSV1zfkoxSTR7wLsRmBPQ8FwUj5sykrP1MyJTvsxP5KBq9SyE6kH8UQQQwa0ASeoQQ==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.57.1.tgz", + "integrity": "sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==", "cpu": [ "riscv64" ], @@ -2545,9 +2554,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.57.0.tgz", - "integrity": "sha512-Q9eh+gUGILIHEaJf66aF6a414jQbDnn29zeu0eX3dHMuysnhTvsUvZTCAyZ6tJhUjnvzBKE4FtuaYxutxRZpOg==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.57.1.tgz", + "integrity": "sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==", "cpu": [ "s390x" ], @@ -2559,9 +2568,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.57.0.tgz", - "integrity": "sha512-OR5p5yG5OKSxHReWmwvM0P+VTPMwoBS45PXTMYaskKQqybkS3Kmugq1W+YbNWArF8/s7jQScgzXUhArzEQ7x0A==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.57.1.tgz", + "integrity": "sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==", "cpu": [ "x64" ], @@ -2573,9 +2582,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.57.0.tgz", - "integrity": "sha512-XeatKzo4lHDsVEbm1XDHZlhYZZSQYym6dg2X/Ko0kSFgio+KXLsxwJQprnR48GvdIKDOpqWqssC3iBCjoMcMpw==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.57.1.tgz", + "integrity": "sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==", "cpu": [ "x64" ], @@ -2587,9 +2596,9 @@ ] }, "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.57.0.tgz", - "integrity": "sha512-Lu71y78F5qOfYmubYLHPcJm74GZLU6UJ4THkf/a1K7Tz2ycwC2VUbsqbJAXaR6Bx70SRdlVrt2+n5l7F0agTUw==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.57.1.tgz", + "integrity": "sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==", "cpu": [ "x64" ], @@ -2601,9 +2610,9 @@ ] }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.57.0.tgz", - "integrity": "sha512-v5xwKDWcu7qhAEcsUubiav7r+48Uk/ENWdr82MBZZRIm7zThSxCIVDfb3ZeRRq9yqk+oIzMdDo6fCcA5DHfMyA==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.57.1.tgz", + "integrity": "sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==", "cpu": [ "arm64" ], @@ -2615,9 +2624,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.57.0.tgz", - "integrity": "sha512-XnaaaSMGSI6Wk8F4KK3QP7GfuuhjGchElsVerCplUuxRIzdvZ7hRBpLR0omCmw+kI2RFJB80nenhOoGXlJ5TfQ==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.57.1.tgz", + "integrity": "sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==", "cpu": [ "arm64" ], @@ -2629,9 +2638,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.57.0.tgz", - "integrity": "sha512-3K1lP+3BXY4t4VihLw5MEg6IZD3ojSYzqzBG571W3kNQe4G4CcFpSUQVgurYgib5d+YaCjeFow8QivWp8vuSvA==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.57.1.tgz", + "integrity": "sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==", "cpu": [ "ia32" ], @@ -2643,9 +2652,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.57.0.tgz", - "integrity": "sha512-MDk610P/vJGc5L5ImE4k5s+GZT3en0KoK1MKPXCRgzmksAMk79j4h3k1IerxTNqwDLxsGxStEZVBqG0gIqZqoA==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.57.1.tgz", + "integrity": "sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==", "cpu": [ "x64" ], @@ -2657,9 +2666,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.57.0.tgz", - "integrity": "sha512-Zv7v6q6aV+VslnpwzqKAmrk5JdVkLUzok2208ZXGipjb+msxBr/fJPZyeEXiFgH7k62Ak0SLIfxQRZQvTuf7rQ==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.57.1.tgz", + "integrity": "sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==", "cpu": [ "x64" ], @@ -2818,9 +2827,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.19.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.7.tgz", - "integrity": "sha512-MciR4AKGHWl7xwxkBa6xUGxQJ4VBOmPTF7sL+iGzuahOFaO0jHCsuEfS80pan1ef4gWId1oWOweIhrDEYLuaOw==", + "version": "22.19.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.10.tgz", + "integrity": "sha512-tF5VOugLS/EuDlTBijk0MqABfP8UxgYazTLo3uIn3b4yJgg26QRbVYJYsDtHrjdDUIRfP70+VfhTTc+CE1yskw==", "dev": true, "license": "MIT", "dependencies": { @@ -2834,10 +2843,11 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "19.2.10", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.10.tgz", - "integrity": "sha512-WPigyYuGhgZ/cTPRXB2EwUw+XvsRA3GqHlsP4qteqrnnjDrApbS7MxcGr/hke5iUoeB7E/gQtrs9I37zAJ0Vjw==", + "version": "19.2.13", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.13.tgz", + "integrity": "sha512-KkiJeU6VbYbUOp5ITMIc7kBfqlYkKA5KhEHVrGMmUUMt7NeaZg65ojdPk+FtNrBAOXNVM5QM72jnADjM+XVRAQ==", "license": "MIT", + "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -2913,6 +2923,7 @@ "integrity": "sha512-BtE0k6cjwjLZoZixN0t5AKP0kSzlGu7FctRXYuPAm//aaiZhmfq1JwdYpYr1brzEspYyFeF+8XF5j2VK6oalrA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.54.0", "@typescript-eslint/types": "8.54.0", @@ -3057,9 +3068,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, "license": "ISC", "bin": { @@ -3317,630 +3328,630 @@ "license": "MIT" }, "node_modules/@zag-js/accordion": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/accordion/-/accordion-1.31.1.tgz", - "integrity": "sha512-3sGi4EZpGBz/O1IVkk9dzzWzP5vVVOj4Li6C+jHOnrgaWPouA/mBTP5L9HEL8qtFsECFZwpNo486eqiCmeHoGw==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/accordion/-/accordion-1.33.1.tgz", + "integrity": "sha512-D80BZxceCIrxaXCi4CWDIzrCNJtojTGysD23C8FOxEGm9pQVuF7NvIdes7lbfUvwlZypMUUvhVlh8kKXN9uyeQ==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/anatomy": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/anatomy/-/anatomy-1.31.1.tgz", - "integrity": "sha512-BhIhf3Q0tRA0Jugd7AJfUBzeAb/iATBsw7KyYThMGcPWmrWssL7KWr5AB6RufzGKU7+DCb1QEhlqd4NSOJaYxQ==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/anatomy/-/anatomy-1.33.1.tgz", + "integrity": "sha512-iME14VHGGEPNMakilI6qvEkv9sll4AFZHpeoMLpczesw5hmqQjjNRifDTPR+idqCb8O8PdkAPE9hyMeP+4JjtA==", "license": "MIT" }, "node_modules/@zag-js/angle-slider": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/angle-slider/-/angle-slider-1.31.1.tgz", - "integrity": "sha512-SfWrgnM0zMLX82rsIJOqWk430UnPA17UFGcDqMDRwXy1Wx4yptmx0aFAsSXnRnw4Ee7WaulF2RWBli6O6iYRCA==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/angle-slider/-/angle-slider-1.33.1.tgz", + "integrity": "sha512-Y44IND5koNWD/EMKEWJbuEnzNW9y1WsrQFFvKRsMp/m3n60hiLa8qtZHoZWm8eOZCKFlsjVJ0gueEuZp43nobA==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/rect-utils": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/rect-utils": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/aria-hidden": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/aria-hidden/-/aria-hidden-1.31.1.tgz", - "integrity": "sha512-SoNt4S2LkHNWPglQczWN0E5vAV15MT1GoK9MksZzbkMhl+pkDTdLytpXsQ1IgalC1YUng0XNps/Wt6P3uDuzTA==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/aria-hidden/-/aria-hidden-1.33.1.tgz", + "integrity": "sha512-TpRAtssDHVfra5qxigk7w1NMf/crKu615INu6GAbNNMUBWD1rPZAfxdg/xe/BAcxLy+XM5/q62dVSNvpjXzN3g==", "license": "MIT", "dependencies": { - "@zag-js/dom-query": "1.31.1" + "@zag-js/dom-query": "1.33.1" } }, "node_modules/@zag-js/async-list": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/async-list/-/async-list-1.31.1.tgz", - "integrity": "sha512-BDZEmr4KKh3JASgkXouOwoTWRS1UPE3gdZYZ7Sk7SJ1i8+Pk6zUQ4FnxaoF/cSAdCXyjSSr92Kns2bTk/QuNkQ==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/async-list/-/async-list-1.33.1.tgz", + "integrity": "sha512-K0OFoN9hKjM5y029kRi52sjiAct1Wl3dbcZShXZypET/Y2rGv4q9ghasuU8jyX2oAoRwBtofwQgg8nrcoxBLFg==", "license": "MIT", "dependencies": { - "@zag-js/core": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/core": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/auto-resize": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/auto-resize/-/auto-resize-1.31.1.tgz", - "integrity": "sha512-qzWHibjBekSmFweG+EWY8g0lRzKtok7o9XtQ+JFlOu3s6x4D02z2YDzjDdfSLmS7j0NxISnwQkinWiDAZEYHog==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/auto-resize/-/auto-resize-1.33.1.tgz", + "integrity": "sha512-ci+hotx5/1zig1+Z2ljNBZEQ1OWhd6MV/E/X7suXmzK3lfvMb+g4OX2FjkuGqumwZyStrg4kh/ZJ+7Bj1CxRsw==", "license": "MIT", "dependencies": { - "@zag-js/dom-query": "1.31.1" + "@zag-js/dom-query": "1.33.1" } }, "node_modules/@zag-js/avatar": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/avatar/-/avatar-1.31.1.tgz", - "integrity": "sha512-Grosi2hRn4wfDYlPd8l+d4GCIFMsoj6ZFqii+1k14AqTDiCUJ/J0jCvOrRHkvkpEqektjuSD7e/GCX+yawqkuQ==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/avatar/-/avatar-1.33.1.tgz", + "integrity": "sha512-D8HBPvIVLoty14CDx6wWfdfcalr/pf2FgJ0N7VTgExvZt8t64JWJarL75ZkIB3ROaNe4RMFdzabz1uc7BlcDyg==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/bottom-sheet": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/bottom-sheet/-/bottom-sheet-1.31.1.tgz", - "integrity": "sha512-ZBbIpYyZX2zQeqW36aODVi9/I4J3zS1XmIHUjeXmfmf6TlQUA1ydgYl7ipREfmCzNWX2LEA5ZnPJQw0UBcrB8w==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/bottom-sheet/-/bottom-sheet-1.33.1.tgz", + "integrity": "sha512-yWTAgbbb7N2B6epoq/Jpkaix8qNJz6OLZ6jDaHuZDnrEoM/LzQTHA77LQbjcWulmggBwX9IKPm1xeqFWXiHmeQ==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/aria-hidden": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dismissable": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/focus-trap": "1.31.1", - "@zag-js/remove-scroll": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/aria-hidden": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dismissable": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/focus-trap": "1.33.1", + "@zag-js/remove-scroll": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/carousel": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/carousel/-/carousel-1.31.1.tgz", - "integrity": "sha512-228Ol86G/lg8crcomy5cALkUYdOHCHcvJnSOQzeUj80JNjlELzrjBpaAj4lx8dZocfwou2Sg4NyZJ+mISSc+Dg==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/carousel/-/carousel-1.33.1.tgz", + "integrity": "sha512-FB72jCHhTTn0gXsWwDT/DrGMpBHQTxlKvwjEiBGkcprWVpptN0WGJR+EtX2Si/668sdH/471rew2DKA+h5k6Tw==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/scroll-snap": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/scroll-snap": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/checkbox": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/checkbox/-/checkbox-1.31.1.tgz", - "integrity": "sha512-oLS8bqhimckLl6coCNmKPPUmB8wIbVhtkpLwLPLgz4vhhUe7gnpB5dea14Ow2JTBnmug8bMh/bJDtuPa9qQuTw==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/checkbox/-/checkbox-1.33.1.tgz", + "integrity": "sha512-3rIPXB3O7hZukyjKpRAOn+Ob7jByBmDNU7wdpS2HRv7Urv9i5jUExlwayevw/a6JHQaT7mR1dL4culTyX+fJVA==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/focus-visible": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/focus-visible": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/clipboard": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/clipboard/-/clipboard-1.31.1.tgz", - "integrity": "sha512-pv/gOmD9DMg+YmSMjahyd5oSp7/v9K0uQ3att6fPeaNMjB42b3tnY1S1GNVy5Ltf/qHDab6WVwlEN+1zKHXaYw==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/clipboard/-/clipboard-1.33.1.tgz", + "integrity": "sha512-BcuHY3h7fOgR8yX0JHHN/SIAfZOGwrMF1AXKpqeY9Xq2R0lbDMEyXBwT7rQtQUBWCkoSau1e3Nk8ey1yOsWmYw==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/collapsible": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/collapsible/-/collapsible-1.31.1.tgz", - "integrity": "sha512-eCC5G6bBZUwF8z2XULQXUNRxqte9I2Sv+WJ2brycPn1a68uYD76RzFBmLQ2er95VbshUdeo8nRuX8MooAFuYzg==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/collapsible/-/collapsible-1.33.1.tgz", + "integrity": "sha512-FnEaoIufmYM4kFUET6gusFD7J5cAu/PY78BQ4BqhT3I6sS9FWiu/eHCCsFf/6BqhtqtiCQoki/O5g0arZqOZfw==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/collection": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/collection/-/collection-1.31.1.tgz", - "integrity": "sha512-ecpfyfCj8Y0/GUPuHYsLxexIrx10VuR3Wd0H+lamcki3lYgQxZrpLRFMwgTqmI/m7t3zhm5QeEvMUJ1H14YMLA==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/collection/-/collection-1.33.1.tgz", + "integrity": "sha512-4Js8oWS0C1zETlQzqJRny63uV/e54R6OerHfJfH9qAzkZuQnhMqZOAA4q6N+5GG6vb8WGB3927jS1A+Zn/pZuQ==", "license": "MIT", "dependencies": { - "@zag-js/utils": "1.31.1" + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/color-picker": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/color-picker/-/color-picker-1.31.1.tgz", - "integrity": "sha512-AWNZth49iEDxqh1DBZNSKpfEM/FF+MjL5bgUHVctnHdkpFsZLynJorWQQ4hNXNDFEc/I5w10KSxVCcO6tsPGFw==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/color-picker/-/color-picker-1.33.1.tgz", + "integrity": "sha512-PjssCiirvGssPPSoCqeAjK8Brh32K29I2eWck6LAK9IL7FMCpUyXKbSJNjtHeDGK60rzI/xNj8aeQgVmaBJ0Xg==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/color-utils": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dismissable": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/popper": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/color-utils": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dismissable": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/popper": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/color-utils": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/color-utils/-/color-utils-1.31.1.tgz", - "integrity": "sha512-HdjTRU8C0tO6hK+PBVlu8iQH1MJaAnJAEdq2FcD97mq0PiPhrSj6iOftnrvPsE4CRieVFjnJWOvaubWFc4VmHA==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/color-utils/-/color-utils-1.33.1.tgz", + "integrity": "sha512-YJIBn24IE5LcjKUVK8ndm3VY7ferdlJrl1J02s0uDtBbWywQ4TpufVZQ9aEONeazfCJC4/3etaQCiX9RSpW2uA==", "license": "MIT", "dependencies": { - "@zag-js/utils": "1.31.1" + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/combobox": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/combobox/-/combobox-1.31.1.tgz", - "integrity": "sha512-IT0getSAGzngdRL20iX/iAh2d7DzVoMDDppOsOFBG2owKAgLpj8uLvUhy+lcrm6N8yxYOya89D6Aef7V5KdwlQ==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/combobox/-/combobox-1.33.1.tgz", + "integrity": "sha512-9K2i5P+zf6T9Cqa9idzYXvEC/If5gDDbQWYgqflO18ptB0dTvfKkihBsA4/PEig3Ayvj/UGFTlFlbC17M5aACQ==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/aria-hidden": "1.31.1", - "@zag-js/collection": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dismissable": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/popper": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/aria-hidden": "1.33.1", + "@zag-js/collection": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dismissable": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/popper": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/core": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/core/-/core-1.31.1.tgz", - "integrity": "sha512-RaMJeqtjxG6k7iFD3WQnlyFJVT3yfQN+pJygAHH37GsMtiNzQQJOoesjb0LV9T27jwMXeNUzrh3MSDr1/0yVcQ==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/core/-/core-1.33.1.tgz", + "integrity": "sha512-8hnw0/CFTytcYiIRij4Orpni2a79NSiH6Em+58A9AqMJGX8UE1zh6GsLWgrKQPiEiC8Cf3WgNXgCddJKpm8/Yw==", "license": "MIT", "dependencies": { - "@zag-js/dom-query": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/dom-query": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/date-picker": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/date-picker/-/date-picker-1.31.1.tgz", - "integrity": "sha512-AOWN/IskGidVQt5g+uE9cILqJBTclE6OG1GC9WSWuyP/y4F+PdP/781SgYpYCZg/6pMGbL01PFKKb7xOOCeZAg==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/date-picker/-/date-picker-1.33.1.tgz", + "integrity": "sha512-PfVvttb83DosW9p9BXRAkNsk/duueicd7sEVdOGfgfIs3QJeVn+jvuli8Z2A0oQCok3VCfBwXd+MiwKjyLRpIg==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/date-utils": "1.31.1", - "@zag-js/dismissable": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/live-region": "1.31.1", - "@zag-js/popper": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/date-utils": "1.33.1", + "@zag-js/dismissable": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/live-region": "1.33.1", + "@zag-js/popper": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" }, "peerDependencies": { "@internationalized/date": ">=3.0.0" } }, "node_modules/@zag-js/date-utils": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/date-utils/-/date-utils-1.31.1.tgz", - "integrity": "sha512-+Aq9g/rqLeiRmnazgdZMc59gAxqxbw3GGy8AngrtNipgRtMhPlzGa3S4Qsq1yau6OKaHZ13uckUS+MhLNbBY+Q==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/date-utils/-/date-utils-1.33.1.tgz", + "integrity": "sha512-hnM/IJ4jBHHCcVNfZyjvAI/0suW6c2XFYwcjM6xoGyG4P1x7YU9H9vuhp8mv7XDj4qqQFS/x8+UEcytZG9wtAg==", "license": "MIT", "peerDependencies": { "@internationalized/date": ">=3.0.0" } }, "node_modules/@zag-js/dialog": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/dialog/-/dialog-1.31.1.tgz", - "integrity": "sha512-iaWlYQ6TYoVjM/X5+UZVZzKiMboE50GnEzGUpbhbeRNRiLqSu5dODSFzior1G4kde/ns5eN+BTf/Tm6AT4N2og==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/dialog/-/dialog-1.33.1.tgz", + "integrity": "sha512-OUjcIby0VSFBULpakDQJL+gtpVR13hvMZDydUm44LF5ygfoe5E7mfp24Q09VGgvbofOZTuwAK5xKTV/AaSX/MQ==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/aria-hidden": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dismissable": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/focus-trap": "1.31.1", - "@zag-js/remove-scroll": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/aria-hidden": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dismissable": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/focus-trap": "1.33.1", + "@zag-js/remove-scroll": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/dismissable": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/dismissable/-/dismissable-1.31.1.tgz", - "integrity": "sha512-jCdJwQmEkG6PlrN13fUk2l7ZclSu54FZwmT4xOtQpEbaiAiESm5KI5oyFh5jDPY47Goa28UJkEjWXVgKXKWb0g==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/dismissable/-/dismissable-1.33.1.tgz", + "integrity": "sha512-ZER2LFMTdhQxkIMuT3EMg6vZCjVjttDJJP8g6d7kSARcxN75myUG+H8qZqj9JbH5WSF6Xaf++O+LMUgwzIeixw==", "license": "MIT", "dependencies": { - "@zag-js/dom-query": "1.31.1", - "@zag-js/interact-outside": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/dom-query": "1.33.1", + "@zag-js/interact-outside": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/dom-query": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/dom-query/-/dom-query-1.31.1.tgz", - "integrity": "sha512-2tCZLwSfoXm62gwl0neiAN6u5VnzUhy5wHtKbX+klqGFatnca3Bm++H9+4PHMrwUWRbPg3H5N151lKFEOQhBfQ==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/dom-query/-/dom-query-1.33.1.tgz", + "integrity": "sha512-Iyl0D3nLvJuMkkuRy22xhj4pkzexUCDlRpCzqIrOMDKsmFka/WV9PIclZKVpMECTi9dEQmJuGTjBVaCOReLu+Q==", "license": "MIT", "dependencies": { - "@zag-js/types": "1.31.1" + "@zag-js/types": "1.33.1" } }, "node_modules/@zag-js/editable": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/editable/-/editable-1.31.1.tgz", - "integrity": "sha512-JMICHw4/x0YqDy/n+I+TeaXlFbTA0j9w3UqOWMwUFQ+dAsq4JLXeqZDXu19MQN6yaTFdOpG1EFw4FEVTsu+d3Q==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/editable/-/editable-1.33.1.tgz", + "integrity": "sha512-uLLwopl5naET76ND+/GZDVMlXaAIwepAhmfNA+Esj4Upgtd3lpD5SNzJiVuyzZ0ewVyp2cuXHHAfNiibhkoFlA==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/interact-outside": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/interact-outside": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/file-upload": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/file-upload/-/file-upload-1.31.1.tgz", - "integrity": "sha512-cp7qMiXKrIcTfDamOz9wlnJLeBF8gucTI7Y+iKaP+hiIW+OG254GElfQiqXNDad3HUmD+Dt8Tx6uAzL/mw3sbQ==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/file-upload/-/file-upload-1.33.1.tgz", + "integrity": "sha512-+1jRkJLUZZYVqZJkDOa5bGosFUM6wU6+i12GavbkVgu5QHRc7VEYlPSlX/qmDxrErI9yC/ZWtoVEVFZ8N6DW0g==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/file-utils": "1.31.1", - "@zag-js/i18n-utils": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/file-utils": "1.33.1", + "@zag-js/i18n-utils": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/file-utils": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/file-utils/-/file-utils-1.31.1.tgz", - "integrity": "sha512-MDDz52IdPh/mPUYrqUXvh7qDckJHs+mt5gjfx0N89qh2JNXuRU14zPotOKTzIKM4o+HFZkAT6BAfMpr9CX/0ug==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/file-utils/-/file-utils-1.33.1.tgz", + "integrity": "sha512-x2Vw5JrUElidDSd34x+gydxjkyy3nU6KSr3rSez231MyScj8RtoLCH1BkCLsW86Yc+Mynp8pbHLdjC++AUtKZA==", "license": "MIT", "dependencies": { - "@zag-js/i18n-utils": "1.31.1" + "@zag-js/i18n-utils": "1.33.1" } }, "node_modules/@zag-js/floating-panel": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/floating-panel/-/floating-panel-1.31.1.tgz", - "integrity": "sha512-Pjgd/wjdglZ90dtq/LC4o5sc6w0m+RehhPmJcIzq9T+E/Xrb6qrhf06QhxB9LwSj4DG/gIv87gmD2qF1VH7cRQ==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/floating-panel/-/floating-panel-1.33.1.tgz", + "integrity": "sha512-MKtFyC3xxCUmHEnugR+KMcVIX7FdHsoZfDxcKc74h+2M6FAmk6YB8lByoY9pkCR9ems/5DkHcMU9cVVJ9kiFqA==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/popper": "1.31.1", - "@zag-js/rect-utils": "1.31.1", - "@zag-js/store": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/popper": "1.33.1", + "@zag-js/rect-utils": "1.33.1", + "@zag-js/store": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/focus-trap": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/focus-trap/-/focus-trap-1.31.1.tgz", - "integrity": "sha512-omgUhAz1r81pYAujqYIIavdTKJzDRExioSiqhnx/xq10a6Q/xavMFflq8w7edMc9JHkTOnr9E5qh9abCVJjhpQ==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/focus-trap/-/focus-trap-1.33.1.tgz", + "integrity": "sha512-aX1YpER7dsegKroNGMnBDfcS14Z9LTdwESSXFDc9C9jFo45qOzfhxmXR+a5rsveMRkvhMFxGffrbpwfvZbRs0A==", "license": "MIT", "dependencies": { - "@zag-js/dom-query": "1.31.1" + "@zag-js/dom-query": "1.33.1" } }, "node_modules/@zag-js/focus-visible": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/focus-visible/-/focus-visible-1.31.1.tgz", - "integrity": "sha512-GC59A3yd7tj8aKhzvhrM+CEZZraXm5y/SpfIjz1J7kGV6eeXbUtjkbe75g99Ve8iJYfQVQlAj2GyN3oniHc5Zw==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/focus-visible/-/focus-visible-1.33.1.tgz", + "integrity": "sha512-xnk2BwO6jYuudj4jMzNYD4AxgaD2sqnLHkwmHImOnVa5frbYziGzevo9iJWC+2THyqQjUXLQ6Zfo6J/Hi3KyNQ==", "license": "MIT", "dependencies": { - "@zag-js/dom-query": "1.31.1" + "@zag-js/dom-query": "1.33.1" } }, "node_modules/@zag-js/highlight-word": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/highlight-word/-/highlight-word-1.31.1.tgz", - "integrity": "sha512-nQw7t8LgWXW+6Z5E/p6T+OST0DDXp35mrFCzrkJL54aVTZ3GuLyIP2p0/HGQr2hE/KKLbZEs5i6UcXF84tiI4g==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/highlight-word/-/highlight-word-1.33.1.tgz", + "integrity": "sha512-row6yPiADeraQFDvoiwuXP0F0qTt7gGnwdeWEcoaqGj27DYZSZKXXK03mQWMo6sdi+VU6z79ZqrlE6bnk6fqWQ==", "license": "MIT" }, "node_modules/@zag-js/hover-card": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/hover-card/-/hover-card-1.31.1.tgz", - "integrity": "sha512-R74kz2wPgGwB3jKQeD91kdtlvVKpffWBJHqw8yCBd95GXGVmhym+BPoCToJzcqiemP8+0EtSuVPU9IHaSuJnSg==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/hover-card/-/hover-card-1.33.1.tgz", + "integrity": "sha512-8f4J0UWqcnEtM5uXtF8a7WbLwo4ornXpHYEPubSLJYFKWsgaPlNtVVX8WNxB9uFFQEB111RfuQSoUrqMlRQ7xw==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dismissable": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/popper": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dismissable": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/popper": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/i18n-utils": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/i18n-utils/-/i18n-utils-1.31.1.tgz", - "integrity": "sha512-SARkFuo1+Q0WcNv4jqvxp5hjCOqu/gBa7p6BTh7v5Bo00QhKRM/bCvVt0EB6V+h2oejrZfkwZ0MwbpQiL6L2aQ==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/i18n-utils/-/i18n-utils-1.33.1.tgz", + "integrity": "sha512-7frklMwgbD7YjJqxt9nWhFMxFzrqQyPPu+r8u1hEWHwjD9GZPteHIYIyEKKmpYVQqANMpTEoIZi+oUI8YT+OhQ==", "license": "MIT", "dependencies": { - "@zag-js/dom-query": "1.31.1" + "@zag-js/dom-query": "1.33.1" } }, "node_modules/@zag-js/image-cropper": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/image-cropper/-/image-cropper-1.31.1.tgz", - "integrity": "sha512-hFuy4I3jIJ/iyJsnfbLX1l/cJtN42j7lwhw8TeWVX8Y+hHxFPMSKx7AQirt/hALUbyy7QsQgAd5IslpsYq1Nlg==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/image-cropper/-/image-cropper-1.33.1.tgz", + "integrity": "sha512-/P+IZapbSvZw7Yudmxll2Pd8/3x6sOebeQW/LghuWUbDi1ilYCjCpsuhlhZrD3NFfiZ+QZfX1+8ofLOiax1g4A==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/interact-outside": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/interact-outside/-/interact-outside-1.31.1.tgz", - "integrity": "sha512-oxBAlBqcatlxGUmhwUCRYTADIBrVoyxM1YrFzR1R8jhvVR/QCaxoLAyKwcA3mWXlZ8+NlXb7n5ELE11BZb/rEg==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/interact-outside/-/interact-outside-1.33.1.tgz", + "integrity": "sha512-XnqwYsGw0GVmjBpDziwWXKE/+KeZLgRnjEpyVr6HMATMGD+c4j6TmIbI9OGEaWliLuwvHdTclkmK4WYTaAGmiw==", "license": "MIT", "dependencies": { - "@zag-js/dom-query": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/dom-query": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/json-tree-utils": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/json-tree-utils/-/json-tree-utils-1.31.1.tgz", - "integrity": "sha512-wrNek2UBE69FWpo2f0E2MxiboBS+Uop79LeQU2jNDujA1o3x6b1Lp2r7Fl1sfnUWMdKVVQb44oqfIj2g3CTEmQ==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/json-tree-utils/-/json-tree-utils-1.33.1.tgz", + "integrity": "sha512-+t42cJY3QJirlXQHDyZmJMdWVoWlAXGUJ3vuGoUBNoHNq+rAte6i/1+VMq/KkNEh/8QehA/4FdtQAstSMVbAEQ==", "license": "MIT" }, "node_modules/@zag-js/listbox": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/listbox/-/listbox-1.31.1.tgz", - "integrity": "sha512-LcTIr4I9eN4MR1nSRfQfseWgj4ybOXXAY2o5dBpEBL67dnCSX3swNb/4LQO+ebj077BViQb66pBb1KSoeHGkEQ==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/listbox/-/listbox-1.33.1.tgz", + "integrity": "sha512-8XT+6T82xG3BJwC7VYu/I1W8Hxyjgpke8tB1odQSWOV23pVXXPbol7wQbtoieSVeNDsZD8K12CpB40oRVrcSHA==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/collection": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/focus-visible": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/collection": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/focus-visible": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/live-region": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/live-region/-/live-region-1.31.1.tgz", - "integrity": "sha512-RBx8jk1dgvkEUuFs77SBZn0WwvEkeZgVawVu6XUAy4ENfhP0D/qkvwNk+Els8InKmr1gWKajD7sh+g8M40Ex6A==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/live-region/-/live-region-1.33.1.tgz", + "integrity": "sha512-KbU2wUSMd01fY7dgc9WhvU2x07FxNHKSCrn+fFUnB+Qoy6iiVv0A729JDbzPUUcpBV0BFoQ3qNdBDVyBalbpaQ==", "license": "MIT" }, "node_modules/@zag-js/marquee": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/marquee/-/marquee-1.31.1.tgz", - "integrity": "sha512-Rt7+zy7CDOxXm0PqaTcmuWxcrZOPOpZY4T6IxOZk4ZcOXJQ2v7CkF3EK0pdI9PyI6Zpk/YIwQkENjidT55db0A==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/marquee/-/marquee-1.33.1.tgz", + "integrity": "sha512-u5tITcDMZ+L16LKJhIEHzpenxNFosq5BzwUqcF7FD5syEhbA3Jopnq+mWR5CMUaFlbYhRGMSJ1ySNyNwuxU81g==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/menu": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/menu/-/menu-1.31.1.tgz", - "integrity": "sha512-eJPRM8tlauRTsAoJXchDBzMzL2RhXYSHmHak2IJCDMApCV51p0MqGYP8Er3DbMSQTPUFuTq779uUIarDqW+zmA==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/menu/-/menu-1.33.1.tgz", + "integrity": "sha512-QihwaFCgGcrPbJSoP73nt749/rlUANiIrCU//8WWfQTgv0NBJprBD7d3banDNlK9ZSGmvELcpyQ/fKU4cfn0GQ==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dismissable": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/popper": "1.31.1", - "@zag-js/rect-utils": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dismissable": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/popper": "1.33.1", + "@zag-js/rect-utils": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/navigation-menu": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/navigation-menu/-/navigation-menu-1.31.1.tgz", - "integrity": "sha512-xS4aynqmB9NYicPbEW8lPPakAfDfSgIDL1pRVSD6f1+VXkHD6LgNn6jUNDNbFt65mGhLpA2IczbvLCxv0g/ISQ==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/navigation-menu/-/navigation-menu-1.33.1.tgz", + "integrity": "sha512-QnkK8Q7vEQtj7nc3fpzNLkjmtyxz1WGpwdDqpbiemxT8pZT3BxrSDC3n6795t9xhbOGVWjhyMfDw/3xBT/3JYA==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dismissable": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dismissable": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/number-input": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/number-input/-/number-input-1.31.1.tgz", - "integrity": "sha512-vn+BXEZ2/g2CMIFFyjjye/SbCeW3I/rlszL8EyBmhMcuA1l51OX2WKry6HeQNiU41uMyFg2rb1pb5KVw1gJsCg==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/number-input/-/number-input-1.33.1.tgz", + "integrity": "sha512-5YKr8uagIDGXp3hIqo4IUBGxS5WhH0xM1CQf2zimfDWvBOng+Y+MH/4Lwu9wKuyIq/J3SJqsjO+2OOF7u6ju/g==", "license": "MIT", "dependencies": { "@internationalized/number": "3.6.5", - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/pagination": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/pagination/-/pagination-1.31.1.tgz", - "integrity": "sha512-icW6FNzIKNz7iXU+prlQWpMFJedDrhmCKzzI39SY+dv5g1Gnrlc0b44PxvNl5PWFLSkB5KBT/R1WCqd8Kh4cCA==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/pagination/-/pagination-1.33.1.tgz", + "integrity": "sha512-TZxxFEgvkz66Y3rX9ug5Vm1CPoN1PgmR9GuW21W7ob9xSWXC9ZQKwTaC1I6qO83dZqBzRK51Q9K1iCghIb3q/w==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/password-input": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/password-input/-/password-input-1.31.1.tgz", - "integrity": "sha512-AivOeNO14a39xhxVMB2TVmIjmQ89OwVz0+2IjX3JjLS2Pmia+gg9xnVd2kBIcKfnqUN4MBnzmk7t46YWJMQVVQ==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/password-input/-/password-input-1.33.1.tgz", + "integrity": "sha512-pJrz50JhQLTfiatehATr40udJYggYmJ7V/7/dBKqthGpMwoaVV3bmtKFSenFGc2mMb5Rlf9KKqHO/dYB7jpNiA==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/pin-input": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/pin-input/-/pin-input-1.31.1.tgz", - "integrity": "sha512-k3ESoX5ve5sbWBLTCPYAzgLjRU7mVNEUiqAOhRgazOcBGV5wjGh398zWb1jr0FMxPnoAMrXDN/CQwJTmJcMKrg==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/pin-input/-/pin-input-1.33.1.tgz", + "integrity": "sha512-q6/DRsIV6ZDKzkFmdzbcsVBm7+I7hMlrsLr/P/jH0/fYE5T9t+1m9ll5j7/5RHFJHQ1WajHpdt5ad5mfXMuxKA==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/popover": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/popover/-/popover-1.31.1.tgz", - "integrity": "sha512-uCFJP3DFBkEBAre6lgGLw2xWS2ZIuT/DLeajIXb+8BmC9KCF0wY4c9qojx9F3rGMJQxcGl+WUoXENkOvkTaVhQ==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/popover/-/popover-1.33.1.tgz", + "integrity": "sha512-layppQOtvKMuJKXlyAA6rW88KfxCilRNS2uZuhJFpPwgASqk5piDdp2G3DA9s0SNTMY8rcNmc197wkDCcGnDew==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/aria-hidden": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dismissable": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/focus-trap": "1.31.1", - "@zag-js/popper": "1.31.1", - "@zag-js/remove-scroll": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/aria-hidden": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dismissable": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/focus-trap": "1.33.1", + "@zag-js/popper": "1.33.1", + "@zag-js/remove-scroll": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/popper": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/popper/-/popper-1.31.1.tgz", - "integrity": "sha512-wLXcEqzn9MK1rGbsgnDH26o5ZWqR4oeb6ZepKKy0gcuJl/1S5/dr1VBvxJNMZlf9d6etvYklG5LRnIVkXCbrjA==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/popper/-/popper-1.33.1.tgz", + "integrity": "sha512-DNKRh/SRXB2wcvVYK1wvcEufS4vfVXJOv23QUee761bTv4nrPNll5pZFsYEHatiCNkAmO0MRRYA2Sc6jk9nxNA==", "license": "MIT", "dependencies": { - "@floating-ui/dom": "1.7.4", - "@zag-js/dom-query": "1.31.1", - "@zag-js/utils": "1.31.1" + "@floating-ui/dom": "^1.7.5", + "@zag-js/dom-query": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/presence": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/presence/-/presence-1.31.1.tgz", - "integrity": "sha512-tv+WsBnA0abIlDuEfZMh0lRPF4cMs6kWJosNkGBwzeXnGds+KXjzpL2KDtwDgbJgN3sI0xHPMYjRy2v3ZamcDA==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/presence/-/presence-1.33.1.tgz", + "integrity": "sha512-IqrZa+djwkLQiANlp4nS6bq+FOtTYLZOOynJP9zz5+egNtA1qkmCdeBXA5/CgWM83sMmjJEDAe6nmp8darICyQ==", "license": "MIT", "dependencies": { - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/types": "1.31.1" + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/types": "1.33.1" } }, "node_modules/@zag-js/progress": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/progress/-/progress-1.31.1.tgz", - "integrity": "sha512-f9lIDHCRcFAG14LVEKOAPTdqPzphwIIraC6fTr9AwmNlYI6/qFDkz3jOlYVSyk5VsJAIFM/777x/CdqjliiOqg==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/progress/-/progress-1.33.1.tgz", + "integrity": "sha512-Pp4h6ChcIOLKSloBBCOcPy9/C2r3YqrSbrcbY47IjZiDg6JPkivVPqScqM3wH8OpKEEyKyljBottZmbKkjQ3Zg==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/qr-code": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/qr-code/-/qr-code-1.31.1.tgz", - "integrity": "sha512-Rxh+HF12SgUp5rvTelp1qyLK3xkn37h2fT/L4eBQ0f8OUEo8wfowEbs36+1i61d6UuH7PJt4q/07eIf6vNVevA==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/qr-code/-/qr-code-1.33.1.tgz", + "integrity": "sha512-8Fc/TwlIkLQYfcvXhxCe+rTsmS+cHJpk/WRNMwKO1QvLZw2mBdNIt2pfoGJf8SdufBv5U3KyzCQ4T9iZ1CaYAQ==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1", + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1", "proxy-memoize": "3.0.1", "uqr": "0.1.2" } }, "node_modules/@zag-js/radio-group": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/radio-group/-/radio-group-1.31.1.tgz", - "integrity": "sha512-OfKIdEtSG0EuHM+cFVqcR+04yzZmcDRgG3j0QhoJsyS1my63ZHbwC2HNAtfPFh4U4sJx9yUexwSzPGZ6pOzIdw==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/radio-group/-/radio-group-1.33.1.tgz", + "integrity": "sha512-W/T8Hea3Z4mWCErm2fJc/EYabxRkKHFJStSClyllqknF3Y+b42MaKGuub1IcACO3pe6csLTkomdxy1qDLWl/dg==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/focus-visible": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/focus-visible": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/rating-group": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/rating-group/-/rating-group-1.31.1.tgz", - "integrity": "sha512-BkQUglKm4a+KXYPACYvIvBJSuEyzV0YQqjjiucwJ5UiOlK72C66VBvyGN+DqJRDnkU1K5azt6E1Ja5ANk3fgsg==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/rating-group/-/rating-group-1.33.1.tgz", + "integrity": "sha512-Bb6mv8GE9OpMA+tEwEuR1DOqP9P9ovkeyDaehfDy/hBDT90kCjl2RJ4aCsJINX5k2E+/AD2uv36HcSClqZKiYg==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/react": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/react/-/react-1.31.1.tgz", - "integrity": "sha512-a7uYH+tcw1UYbcovyVBzlh6X8KztK/b1+s8sMs4Srhd24M+hZMetV94Z0bM1Km5aNAnoS4gkH3gtJjH0OphquQ==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/react/-/react-1.33.1.tgz", + "integrity": "sha512-TZ66zU99ixsPMWTKaGOF5u4sM9Ki25ZwuGbZXkz8K6mM28UZAt5o+bro6030XI2VLkP0W+VI9cHUFn6AXJPsHw==", "license": "MIT", "dependencies": { - "@zag-js/core": "1.31.1", - "@zag-js/store": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/core": "1.33.1", + "@zag-js/store": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" }, "peerDependencies": { "react": ">=18.0.0", @@ -3948,275 +3959,275 @@ } }, "node_modules/@zag-js/rect-utils": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/rect-utils/-/rect-utils-1.31.1.tgz", - "integrity": "sha512-lBFheAnz8+3aGDFjqlkw0Iew/F03lFjiIf26hkkcFSZu0ltNZUMG/X3XLHUnHxdfbdBguc8ons6mr2MkVvisng==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/rect-utils/-/rect-utils-1.33.1.tgz", + "integrity": "sha512-vCIgZF/z8oeYfUhGUgRiNEfOS8on4rUXi4vtL4IvHSdAv5VxZw4ODoLhIzRGT3BwsiMfr8qJ8fmrcR2oFRFQgA==", "license": "MIT" }, "node_modules/@zag-js/remove-scroll": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/remove-scroll/-/remove-scroll-1.31.1.tgz", - "integrity": "sha512-gVVJuFKaCjo652RmajYmkjXKgjJWLQ5ZhZLTaLUKWM1mAarvlqnLui8jrHEHLxqpfsjQylfdhJKkWmyF8NAgTA==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/remove-scroll/-/remove-scroll-1.33.1.tgz", + "integrity": "sha512-5+Mvboqlmv8EdJoixAbGrftFVWZTznsVJn40BuB/6fYQeqdsZ2vFmSmSIr7btFOPcj3BcTMo0SbWNNta3fAOrg==", "license": "MIT", "dependencies": { - "@zag-js/dom-query": "1.31.1" + "@zag-js/dom-query": "1.33.1" } }, "node_modules/@zag-js/scroll-area": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/scroll-area/-/scroll-area-1.31.1.tgz", - "integrity": "sha512-GBXd1K3U0AHwWlJaqAMKQMZyeoxuBO6XYrVgdvzgiftQbJrZs5fuYOFyDvPLDWHTLYxaHso44/f+9EmAUAiytw==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/scroll-area/-/scroll-area-1.33.1.tgz", + "integrity": "sha512-jJIDViQ3W1NCLNdB/Q4jfL/MnTG0BF5bEHGW5YxaigHMSXs41EVXT/aaNNwQZVlnR48NfHc9S8U9c/4fvIt3EQ==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/scroll-snap": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/scroll-snap/-/scroll-snap-1.31.1.tgz", - "integrity": "sha512-YWsfhcQqiffu2X9HuB0fMnEQAu6rEOfGcvQYinvB6pjWPOvIJGxGMi/dYyy21XQDNJ9K1IcWRIo/yuaajoJyQQ==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/scroll-snap/-/scroll-snap-1.33.1.tgz", + "integrity": "sha512-GLEb+YJj800ia2zyTFxVZomQ1cFSShazUQ/1uAxX0Lj7+aZK88cZhIn7AI0+yBXTPBS0zrZDhBPsGEDQX+Q9Fw==", "license": "MIT", "dependencies": { - "@zag-js/dom-query": "1.31.1" + "@zag-js/dom-query": "1.33.1" } }, "node_modules/@zag-js/select": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/select/-/select-1.31.1.tgz", - "integrity": "sha512-vKWb8BiRY83Y3HkDNnimf6cr1yvzJh1HwZlzXFz0y47zEvlikQaf+r96obR78RgTtMjNTTV15tTXdc1/WFoYkw==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/select/-/select-1.33.1.tgz", + "integrity": "sha512-eG+Ftdse0zvCAkXBMNZVBlM+KNvFRKHToxlxgid6wOd5QgRGwr4HaJuWaz908nBIZRYMFVvC+lLaygUVORHmGg==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/collection": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dismissable": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/popper": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/collection": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dismissable": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/popper": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/signature-pad": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/signature-pad/-/signature-pad-1.31.1.tgz", - "integrity": "sha512-bz3WtLuIZoLrJDKcdS7fPAdD/Qi9wKiKACl5cu+ftv9zg8w+qqYNLtjH9HxeUFbCtQRKqcdXjO/UZ8iL07hgsQ==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/signature-pad/-/signature-pad-1.33.1.tgz", + "integrity": "sha512-bnTuG28F1A5Kdt+tsveBgNFhRG71vBBIoW8xVW+udph+9XhWfxsLC2j/O6QlnPgYEjOPUlG6/4wNT4LHzLQYUQ==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1", + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1", "perfect-freehand": "^1.2.2" } }, "node_modules/@zag-js/slider": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/slider/-/slider-1.31.1.tgz", - "integrity": "sha512-FILbLTMd3BnyclZ28+ippfyqzYPGK60qZapxtTERmWDC75Okf8AFnTCQf84Y8jRmBKCS1yhjF+IOtkFAENeB6w==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/slider/-/slider-1.33.1.tgz", + "integrity": "sha512-tGbBiSHBXRa5y462QXVQ0YrluwlHsSCVdsInJAkQGkgBGZgikMPvYIHffmno1HVWYZlC/1hvRx7wq+PSfV/vXQ==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/splitter": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/splitter/-/splitter-1.31.1.tgz", - "integrity": "sha512-7SGBT2/xKsOzeSQEg+Otn1XV3RHrAz3jTySjBRKoEmdxubhfREqbKotbGVG65aTve11fQnmJ3Oyt3GJOeraxLA==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/splitter/-/splitter-1.33.1.tgz", + "integrity": "sha512-22mwXecfaflGoPivPj4+v2QwI9jdD5pMAgWO0CJUwDE397LtPShn8h8NHd6yTycg/Km25DyIy8wXQpX8oYtxPQ==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/steps": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/steps/-/steps-1.31.1.tgz", - "integrity": "sha512-KsBH38V3tH9/q8CDgx4sUSXLYwFdcp1crZy8hTIcN0RUiZ55PmqYKkN2znzBjTbaCW9yhP8kXsbuo2s8OIU5lQ==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/steps/-/steps-1.33.1.tgz", + "integrity": "sha512-Plo/TRi7lZFngFlJxJrqT4CSYQqdJExVSKa17RXe1lpKHjHBD7D1jHbuekUuPhurV0SS8vaU9iYTcuF1p0T39g==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/store": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/store/-/store-1.31.1.tgz", - "integrity": "sha512-d5ZTRciTuXOGQ3nML15kQLaTiR1wJPxT1Fu1nN659X6Rl8DPtubYaRCZ3RCk9Kyiyg2z5HxeVqDswaDvGbM9Rg==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/store/-/store-1.33.1.tgz", + "integrity": "sha512-FYkrR9IskD5wyKjYUAHWwdGf/C3FmnactfHR9/6dm9YzNO/+jtWxYsFnHQB8dUm9/6VxAZHofw3FbuyPRJ/x3g==", "license": "MIT", "dependencies": { "proxy-compare": "3.0.1" } }, "node_modules/@zag-js/switch": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/switch/-/switch-1.31.1.tgz", - "integrity": "sha512-Jii3OSqSa9sQux+hvSRvp9dirzUF09+PAjrLjCQs+BT08EZ0XqeGvVzM0Wqf9LFy07HdLZntai3IUaXLF6byBw==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/switch/-/switch-1.33.1.tgz", + "integrity": "sha512-2jl/R4CKLYvk+4cmSYFo3D2gQ+1ts9H7Y4yH98o9rXgPMvdEM9KMKX1FTqJRIY7v6ZkcNbvV/vKP3bDvMdTpug==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/focus-visible": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/focus-visible": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/tabs": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/tabs/-/tabs-1.31.1.tgz", - "integrity": "sha512-QBq4ngpBNMNEI7Wuaq8llwHOqgcVbNHHEDC5zHg60Bf7MY5ltP8wSq6Kldu0zZRVwrLzanYoMELDUyf9H0vtnw==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/tabs/-/tabs-1.33.1.tgz", + "integrity": "sha512-Xquhso7jUch9UrG5N+5vNfR8S2bWUk6EDpBBArY0X5oPSnlzgwJcjWh98hH1QyHX3JmWZN4kAfVKUxNdQxRnVw==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/tags-input": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/tags-input/-/tags-input-1.31.1.tgz", - "integrity": "sha512-V4lJe/aMIs7WVoXYfszU6E3iARLLRQFMiycu76/slb8NWJiLrkSIaMQ4FAe2pqkodgCWXA83tuaeAZRq7ouTFg==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/tags-input/-/tags-input-1.33.1.tgz", + "integrity": "sha512-PRRZlVBETX72e8GLg431A/CPr0Vf2dbGAq1ES8Z+3ltQurDCQaq6FQWgSXgNr3Iy+S2h+eSwKPIV7PMpjl1MCg==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/auto-resize": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/interact-outside": "1.31.1", - "@zag-js/live-region": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/auto-resize": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/interact-outside": "1.33.1", + "@zag-js/live-region": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/timer": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/timer/-/timer-1.31.1.tgz", - "integrity": "sha512-bXfeSbneWGOBKlD5dYq06T8CSY9Ky+qb1yIfJAFsRF4n34mpUYRdtfwpNQYyddGpkLD7oH4VibajeZXB7HaL0g==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/timer/-/timer-1.33.1.tgz", + "integrity": "sha512-GgqntefAEQbf66aNgA6NL9Rtrrxcd0/IJVddTj1/xihCnJ8u6AOU4syG5tie0Tpc2caDAntOwlYjpEy3n2AGcA==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/toast": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/toast/-/toast-1.31.1.tgz", - "integrity": "sha512-MueHEei9ol3H6tWBruLxF7yEUpV3vsJ8brTQVRRtPr/6pqBs5kGzfL4YskhQ2tiwO6egay8YrkbaS3xJfpKt4w==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/toast/-/toast-1.33.1.tgz", + "integrity": "sha512-kI2/VJcBQGgHpmuWiIDqPn8ejFEODh5YhjWbnvjGRG+x3XoPuMq6hhxXV6VWJslbZJtTmzxDcP+Xamdrf1hbZA==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dismissable": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dismissable": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/toggle": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/toggle/-/toggle-1.31.1.tgz", - "integrity": "sha512-HbFBuGfdyYkNvOp3cEB8Civ4E92finT4u3e4LKysB4/LboqKA0cJvFhSnHyThbROONTx06W/3CxwoSFR4o8IhA==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/toggle/-/toggle-1.33.1.tgz", + "integrity": "sha512-bmHNxuW3GVclvFTqcuLJYbEuqs6v3Sf0d2b3daOvGMZL1FwyL0zEAdo5Pui2hthe7QTaH7MJQIF8yPQ4vhLprg==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/toggle-group": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/toggle-group/-/toggle-group-1.31.1.tgz", - "integrity": "sha512-Mojc7mex01/gvwXfrUIIThzT7HOktZoMge9rrb6+P7rQX7ulyNXYPjQrW2tay+t54GOJ3xODo9dU7PpRzXeHbw==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/toggle-group/-/toggle-group-1.33.1.tgz", + "integrity": "sha512-KZaMFN5u26d8elAcdu6LDC7byltpzeoemXHMMa7H/1upS3/98ESKUzx1VlA5SSTAinU4t9+rXoR3VTtP2RJbTw==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/tooltip": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/tooltip/-/tooltip-1.31.1.tgz", - "integrity": "sha512-pWEU5XhEPpnyl2VLrGJlyjj7+p+X0UX3Fld+WGhc/hCaWiuW2ZzD/ewDRhSOZu4/TzAO3axrPqG1YhW4fhogKQ==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/tooltip/-/tooltip-1.33.1.tgz", + "integrity": "sha512-2CmOMp8qvdTYLE1kgZKnE5RiObzpjJcfVdYYRgVqyIli20AAsOxyahE7WlgLwUGjqpzezah+Z20ZOir6x4jsnQ==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/focus-visible": "1.31.1", - "@zag-js/popper": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/focus-visible": "1.33.1", + "@zag-js/popper": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/tour": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/tour/-/tour-1.31.1.tgz", - "integrity": "sha512-ZmcAevXxoENHmHG0xwdIt1oCLe2/DW1CEBFPr7YuGKc+FU3QbBVZMzcBHrJCe0nkKXhUKzHOHM78bOHD/gM76w==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/tour/-/tour-1.33.1.tgz", + "integrity": "sha512-eRZD4nePguquNkyrlMzpJr7XxXTVTm3Rxw0p5n1qwQYp3urCYIwupZcWXei1OtiYXenqIdbYMBfNtQRev0x1Ig==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dismissable": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/focus-trap": "1.31.1", - "@zag-js/interact-outside": "1.31.1", - "@zag-js/popper": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dismissable": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/focus-trap": "1.33.1", + "@zag-js/interact-outside": "1.33.1", + "@zag-js/popper": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/tree-view": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/tree-view/-/tree-view-1.31.1.tgz", - "integrity": "sha512-Q+VSQz7X1XR8gT7ICWXlQOJIvzTWw/9BlF7B073UpEgAKRFlD11FmERka5y/BYqj8uE0vazcbSEA3Vc2dgCMJA==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/tree-view/-/tree-view-1.33.1.tgz", + "integrity": "sha512-5SiwSGdcqiGoCQl46pvEAgGkM5gTsPpLLPXB2Eqfojm2fm2oev73+1gWsZt1/sX/qsIQ1hH3a2h44rXW1W2IWg==", "license": "MIT", "dependencies": { - "@zag-js/anatomy": "1.31.1", - "@zag-js/collection": "1.31.1", - "@zag-js/core": "1.31.1", - "@zag-js/dom-query": "1.31.1", - "@zag-js/types": "1.31.1", - "@zag-js/utils": "1.31.1" + "@zag-js/anatomy": "1.33.1", + "@zag-js/collection": "1.33.1", + "@zag-js/core": "1.33.1", + "@zag-js/dom-query": "1.33.1", + "@zag-js/types": "1.33.1", + "@zag-js/utils": "1.33.1" } }, "node_modules/@zag-js/types": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/types/-/types-1.31.1.tgz", - "integrity": "sha512-mKw5DoeBjFykfUHv3ifCRjcogFTqp0aCCsmqQMfnf+J/mg2aXpAx76AXT1PYXAVVhxdP6qGXNd0mOQZDVrIlSQ==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/types/-/types-1.33.1.tgz", + "integrity": "sha512-huJdwaeyptKDuZqhhFQRWNiMAJEdei4fTAQ3xIBw07GW27zKwust4Bn0y+8PYlnVVQn2auH4lpIXXwPccFRclQ==", "license": "MIT", "dependencies": { "csstype": "3.2.3" } }, "node_modules/@zag-js/utils": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@zag-js/utils/-/utils-1.31.1.tgz", - "integrity": "sha512-KLm0pmOtf4ydALbaVLboL7W98TDVxwVVLvSuvtRgV53XTjlsVopTRA5/Xmzq2NhWujDZAXv7bRV603NDgDcjSw==", + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/@zag-js/utils/-/utils-1.33.1.tgz", + "integrity": "sha512-N73enDcveuto5BdYd15m7bu08vd+Re//eufgzGyKPWuzFowEFV77si1v9zZjmK9eXVMTFyde/TPal3aHv4VEJg==", "license": "MIT" }, "node_modules/acorn": { @@ -4225,6 +4236,7 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -4417,9 +4429,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.9.18", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.18.tgz", - "integrity": "sha512-e23vBV1ZLfjb9apvfPk4rHVu2ry6RIr2Wfs+O324okSidrX7pTAnEJPCh/O5BtRlr7QtZI7ktOP3vsqr7Z5XoA==", + "version": "2.9.19", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.19.tgz", + "integrity": "sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==", "dev": true, "license": "Apache-2.0", "bin": { @@ -4492,6 +4504,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -4543,9 +4556,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001766", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001766.tgz", - "integrity": "sha512-4C0lfJ0/YPjJQHagaE9x2Elb69CIqEPZeG0anQt9SIvIoOH4a4uaRl73IavyO+0qZh6MDLH//DrXThEYKHkmYA==", + "version": "1.0.30001769", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001769.tgz", + "integrity": "sha512-BCfFL1sHijQlBGWBMuJyhZUhzo7wer5sVj9hqekB/7xn0Ypy+pER/edCYQm4exbXj4WiySGp40P8UuTh6w1srg==", "dev": true, "funding": [ { @@ -4690,9 +4703,9 @@ "license": "MIT" }, "node_modules/confbox": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz", - "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==", + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.4.tgz", + "integrity": "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==", "dev": true, "license": "MIT" }, @@ -4927,9 +4940,9 @@ } }, "node_modules/dotenv": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.3.tgz", - "integrity": "sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==", + "version": "17.2.4", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.4.tgz", + "integrity": "sha512-mudtfb4zRB4bVvdj0xRo+e6duH1csJRM8IukBqfTRvHotn9+LBXB8ynAidP9zHqoRC/fsllXgk4kCKlR21fIhw==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -4979,9 +4992,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.279", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.279.tgz", - "integrity": "sha512-0bblUU5UNdOt5G7XqGiJtpZMONma6WAfq9vsFmtn9x1+joAObr6x1chfqyxFSDCAFwFhCQDrqeAr6MYdpwJ9Hg==", + "version": "1.5.286", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.286.tgz", + "integrity": "sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==", "dev": true, "license": "ISC" }, @@ -5093,6 +5106,7 @@ "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -6522,6 +6536,7 @@ "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.4.6.tgz", "integrity": "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==", "license": "MIT", + "peer": true, "peerDependencies": { "react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", "react-dom": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc" @@ -6834,9 +6849,9 @@ "license": "MIT" }, "node_modules/perfect-freehand": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/perfect-freehand/-/perfect-freehand-1.2.2.tgz", - "integrity": "sha512-eh31l019WICQ03pkF3FSzHxB8n07ItqIQ++G5UV8JX0zVOXzgTGCqnRR0jJ2h9U8/2uW4W4mtGJELt9kEV0CFQ==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/perfect-freehand/-/perfect-freehand-1.2.3.tgz", + "integrity": "sha512-bHZSfqDHGNlPpgH2yxXgPHlQSPpEbo+qg7li0M78J9vNAi2yjwLeA4x79BEQhX44lEWpCLSFCeRZwpw0niiXPA==", "license": "MIT" }, "node_modules/picocolors": { @@ -7035,6 +7050,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -7044,6 +7060,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", "license": "MIT", + "peer": true, "dependencies": { "scheduler": "^0.27.0" }, @@ -7081,6 +7098,7 @@ "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.13.0.tgz", "integrity": "sha512-PZgus8ETambRT17BUm/LL8lX3Of+oiLaPuVTRH3l1eLvSPpKO3AvhAEb5N7ihAFZQrYDqkvvWfFh9p0z9VsjLw==", "license": "MIT", + "peer": true, "dependencies": { "cookie": "^1.0.1", "set-cookie-parser": "^2.6.0" @@ -7278,9 +7296,9 @@ } }, "node_modules/rollup": { - "version": "4.57.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.57.0.tgz", - "integrity": "sha512-e5lPJi/aui4TO1LpAXIRLySmwXSE8k3b9zoGfd42p67wzxog4WHjiZF3M2uheQih4DGyc25QEV4yRBbpueNiUA==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.57.1.tgz", + "integrity": "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==", "dev": true, "license": "MIT", "dependencies": { @@ -7294,31 +7312,31 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.57.0", - "@rollup/rollup-android-arm64": "4.57.0", - "@rollup/rollup-darwin-arm64": "4.57.0", - "@rollup/rollup-darwin-x64": "4.57.0", - "@rollup/rollup-freebsd-arm64": "4.57.0", - "@rollup/rollup-freebsd-x64": "4.57.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.57.0", - "@rollup/rollup-linux-arm-musleabihf": "4.57.0", - "@rollup/rollup-linux-arm64-gnu": "4.57.0", - "@rollup/rollup-linux-arm64-musl": "4.57.0", - "@rollup/rollup-linux-loong64-gnu": "4.57.0", - "@rollup/rollup-linux-loong64-musl": "4.57.0", - "@rollup/rollup-linux-ppc64-gnu": "4.57.0", - "@rollup/rollup-linux-ppc64-musl": "4.57.0", - "@rollup/rollup-linux-riscv64-gnu": "4.57.0", - "@rollup/rollup-linux-riscv64-musl": "4.57.0", - "@rollup/rollup-linux-s390x-gnu": "4.57.0", - "@rollup/rollup-linux-x64-gnu": "4.57.0", - "@rollup/rollup-linux-x64-musl": "4.57.0", - "@rollup/rollup-openbsd-x64": "4.57.0", - "@rollup/rollup-openharmony-arm64": "4.57.0", - "@rollup/rollup-win32-arm64-msvc": "4.57.0", - "@rollup/rollup-win32-ia32-msvc": "4.57.0", - "@rollup/rollup-win32-x64-gnu": "4.57.0", - "@rollup/rollup-win32-x64-msvc": "4.57.0", + "@rollup/rollup-android-arm-eabi": "4.57.1", + "@rollup/rollup-android-arm64": "4.57.1", + "@rollup/rollup-darwin-arm64": "4.57.1", + "@rollup/rollup-darwin-x64": "4.57.1", + "@rollup/rollup-freebsd-arm64": "4.57.1", + "@rollup/rollup-freebsd-x64": "4.57.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.57.1", + "@rollup/rollup-linux-arm-musleabihf": "4.57.1", + "@rollup/rollup-linux-arm64-gnu": "4.57.1", + "@rollup/rollup-linux-arm64-musl": "4.57.1", + "@rollup/rollup-linux-loong64-gnu": "4.57.1", + "@rollup/rollup-linux-loong64-musl": "4.57.1", + "@rollup/rollup-linux-ppc64-gnu": "4.57.1", + "@rollup/rollup-linux-ppc64-musl": "4.57.1", + "@rollup/rollup-linux-riscv64-gnu": "4.57.1", + "@rollup/rollup-linux-riscv64-musl": "4.57.1", + "@rollup/rollup-linux-s390x-gnu": "4.57.1", + "@rollup/rollup-linux-x64-gnu": "4.57.1", + "@rollup/rollup-linux-x64-musl": "4.57.1", + "@rollup/rollup-openbsd-x64": "4.57.1", + "@rollup/rollup-openharmony-arm64": "4.57.1", + "@rollup/rollup-win32-arm64-msvc": "4.57.1", + "@rollup/rollup-win32-ia32-msvc": "4.57.1", + "@rollup/rollup-win32-x64-gnu": "4.57.1", + "@rollup/rollup-win32-x64-msvc": "4.57.1", "fsevents": "~2.3.2" } }, @@ -7327,6 +7345,7 @@ "resolved": "https://registry.npmjs.org/rrule/-/rrule-2.8.1.tgz", "integrity": "sha512-hM3dHSBMeaJ0Ktp7W38BJZ7O1zOgaFEsn41PDk+yHoEtfLV+PoJt9E9xAlZiWgf/iqEqionN0ebHFZIDAp+iGw==", "license": "BSD-3-Clause", + "peer": true, "dependencies": { "tslib": "^2.4.0" } @@ -7730,6 +7749,7 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -7748,22 +7768,22 @@ } }, "node_modules/tldts": { - "version": "7.0.19", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.19.tgz", - "integrity": "sha512-8PWx8tvC4jDB39BQw1m4x8y5MH1BcQ5xHeL2n7UVFulMPH/3Q0uiamahFJ3lXA0zO2SUyRXuVVbWSDmstlt9YA==", + "version": "7.0.23", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.23.tgz", + "integrity": "sha512-ASdhgQIBSay0R/eXggAkQ53G4nTJqTXqC2kbaBbdDwM7SkjyZyO0OaaN1/FH7U/yCeqOHDwFO5j8+Os/IS1dXw==", "dev": true, "license": "MIT", "dependencies": { - "tldts-core": "^7.0.19" + "tldts-core": "^7.0.23" }, "bin": { "tldts": "bin/cli.js" } }, "node_modules/tldts-core": { - "version": "7.0.19", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.19.tgz", - "integrity": "sha512-lJX2dEWx0SGH4O6p+7FPwYmJ/bu1JbcGJ8RLaG9b7liIgZ85itUVEPbMtWRVrde/0fnDPEPHW10ZsKW3kVsE9A==", + "version": "7.0.23", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.23.tgz", + "integrity": "sha512-0g9vrtDQLrNIiCj22HSe9d4mLVG3g5ph5DZ8zCKBr4OtrspmNB6ss7hVyzArAeE88ceZocIEGkyW1Ime7fxPtQ==", "dev": true, "license": "MIT" }, @@ -7856,7 +7876,8 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" + "license": "0BSD", + "peer": true }, "node_modules/type-check": { "version": "0.4.0", @@ -7877,6 +7898,7 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "devOptional": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -8017,6 +8039,7 @@ "integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", @@ -8225,9 +8248,9 @@ } }, "node_modules/vite-tsconfig-paths": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-6.0.5.tgz", - "integrity": "sha512-f/WvY6ekHykUF1rWJUAbCU7iS/5QYDIugwpqJA+ttwKbxSbzNlqlE8vZSrsnxNQciUW+z6lvhlXMaEyZn9MSig==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-6.1.0.tgz", + "integrity": "sha512-kpd3sY9glHIDaq4V/Tlc1Y8WaKtutoc3B525GHxEVKWX42FKfQsXvjFOemu1I8VIN8pNbrMLWVTbW79JaRUxKg==", "dev": true, "license": "MIT", "dependencies": { @@ -8240,9 +8263,9 @@ } }, "node_modules/vite/node_modules/@esbuild/aix-ppc64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", - "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz", + "integrity": "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==", "cpu": [ "ppc64" ], @@ -8257,9 +8280,9 @@ } }, "node_modules/vite/node_modules/@esbuild/android-arm": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", - "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.3.tgz", + "integrity": "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==", "cpu": [ "arm" ], @@ -8274,9 +8297,9 @@ } }, "node_modules/vite/node_modules/@esbuild/android-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", - "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.3.tgz", + "integrity": "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==", "cpu": [ "arm64" ], @@ -8291,9 +8314,9 @@ } }, "node_modules/vite/node_modules/@esbuild/android-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", - "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.3.tgz", + "integrity": "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==", "cpu": [ "x64" ], @@ -8308,9 +8331,9 @@ } }, "node_modules/vite/node_modules/@esbuild/darwin-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", - "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.3.tgz", + "integrity": "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==", "cpu": [ "arm64" ], @@ -8325,9 +8348,9 @@ } }, "node_modules/vite/node_modules/@esbuild/darwin-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", - "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.3.tgz", + "integrity": "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==", "cpu": [ "x64" ], @@ -8342,9 +8365,9 @@ } }, "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", - "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.3.tgz", + "integrity": "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==", "cpu": [ "arm64" ], @@ -8359,9 +8382,9 @@ } }, "node_modules/vite/node_modules/@esbuild/freebsd-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", - "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.3.tgz", + "integrity": "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==", "cpu": [ "x64" ], @@ -8376,9 +8399,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-arm": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", - "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.3.tgz", + "integrity": "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==", "cpu": [ "arm" ], @@ -8393,9 +8416,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", - "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.3.tgz", + "integrity": "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==", "cpu": [ "arm64" ], @@ -8410,9 +8433,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-ia32": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", - "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.3.tgz", + "integrity": "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==", "cpu": [ "ia32" ], @@ -8427,9 +8450,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-loong64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", - "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.3.tgz", + "integrity": "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==", "cpu": [ "loong64" ], @@ -8444,9 +8467,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-mips64el": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", - "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.3.tgz", + "integrity": "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==", "cpu": [ "mips64el" ], @@ -8461,9 +8484,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-ppc64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", - "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.3.tgz", + "integrity": "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==", "cpu": [ "ppc64" ], @@ -8478,9 +8501,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-riscv64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", - "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.3.tgz", + "integrity": "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==", "cpu": [ "riscv64" ], @@ -8495,9 +8518,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-s390x": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", - "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.3.tgz", + "integrity": "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==", "cpu": [ "s390x" ], @@ -8512,9 +8535,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", - "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz", + "integrity": "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==", "cpu": [ "x64" ], @@ -8529,9 +8552,9 @@ } }, "node_modules/vite/node_modules/@esbuild/netbsd-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", - "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.3.tgz", + "integrity": "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==", "cpu": [ "arm64" ], @@ -8546,9 +8569,9 @@ } }, "node_modules/vite/node_modules/@esbuild/netbsd-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", - "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.3.tgz", + "integrity": "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==", "cpu": [ "x64" ], @@ -8563,9 +8586,9 @@ } }, "node_modules/vite/node_modules/@esbuild/openbsd-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", - "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.3.tgz", + "integrity": "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==", "cpu": [ "arm64" ], @@ -8580,9 +8603,9 @@ } }, "node_modules/vite/node_modules/@esbuild/openbsd-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", - "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.3.tgz", + "integrity": "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==", "cpu": [ "x64" ], @@ -8597,9 +8620,9 @@ } }, "node_modules/vite/node_modules/@esbuild/openharmony-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", - "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.3.tgz", + "integrity": "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==", "cpu": [ "arm64" ], @@ -8614,9 +8637,9 @@ } }, "node_modules/vite/node_modules/@esbuild/sunos-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", - "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.3.tgz", + "integrity": "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==", "cpu": [ "x64" ], @@ -8631,9 +8654,9 @@ } }, "node_modules/vite/node_modules/@esbuild/win32-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", - "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.3.tgz", + "integrity": "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==", "cpu": [ "arm64" ], @@ -8648,9 +8671,9 @@ } }, "node_modules/vite/node_modules/@esbuild/win32-ia32": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", - "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.3.tgz", + "integrity": "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==", "cpu": [ "ia32" ], @@ -8665,9 +8688,9 @@ } }, "node_modules/vite/node_modules/@esbuild/win32-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", - "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.3.tgz", + "integrity": "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==", "cpu": [ "x64" ], @@ -8682,9 +8705,9 @@ } }, "node_modules/vite/node_modules/esbuild": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", - "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.3.tgz", + "integrity": "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -8695,32 +8718,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.27.2", - "@esbuild/android-arm": "0.27.2", - "@esbuild/android-arm64": "0.27.2", - "@esbuild/android-x64": "0.27.2", - "@esbuild/darwin-arm64": "0.27.2", - "@esbuild/darwin-x64": "0.27.2", - "@esbuild/freebsd-arm64": "0.27.2", - "@esbuild/freebsd-x64": "0.27.2", - "@esbuild/linux-arm": "0.27.2", - "@esbuild/linux-arm64": "0.27.2", - "@esbuild/linux-ia32": "0.27.2", - "@esbuild/linux-loong64": "0.27.2", - "@esbuild/linux-mips64el": "0.27.2", - "@esbuild/linux-ppc64": "0.27.2", - "@esbuild/linux-riscv64": "0.27.2", - "@esbuild/linux-s390x": "0.27.2", - "@esbuild/linux-x64": "0.27.2", - "@esbuild/netbsd-arm64": "0.27.2", - "@esbuild/netbsd-x64": "0.27.2", - "@esbuild/openbsd-arm64": "0.27.2", - "@esbuild/openbsd-x64": "0.27.2", - "@esbuild/openharmony-arm64": "0.27.2", - "@esbuild/sunos-x64": "0.27.2", - "@esbuild/win32-arm64": "0.27.2", - "@esbuild/win32-ia32": "0.27.2", - "@esbuild/win32-x64": "0.27.2" + "@esbuild/aix-ppc64": "0.27.3", + "@esbuild/android-arm": "0.27.3", + "@esbuild/android-arm64": "0.27.3", + "@esbuild/android-x64": "0.27.3", + "@esbuild/darwin-arm64": "0.27.3", + "@esbuild/darwin-x64": "0.27.3", + "@esbuild/freebsd-arm64": "0.27.3", + "@esbuild/freebsd-x64": "0.27.3", + "@esbuild/linux-arm": "0.27.3", + "@esbuild/linux-arm64": "0.27.3", + "@esbuild/linux-ia32": "0.27.3", + "@esbuild/linux-loong64": "0.27.3", + "@esbuild/linux-mips64el": "0.27.3", + "@esbuild/linux-ppc64": "0.27.3", + "@esbuild/linux-riscv64": "0.27.3", + "@esbuild/linux-s390x": "0.27.3", + "@esbuild/linux-x64": "0.27.3", + "@esbuild/netbsd-arm64": "0.27.3", + "@esbuild/netbsd-x64": "0.27.3", + "@esbuild/openbsd-arm64": "0.27.3", + "@esbuild/openbsd-x64": "0.27.3", + "@esbuild/openharmony-arm64": "0.27.3", + "@esbuild/sunos-x64": "0.27.3", + "@esbuild/win32-arm64": "0.27.3", + "@esbuild/win32-ia32": "0.27.3", + "@esbuild/win32-x64": "0.27.3" } }, "node_modules/vite/node_modules/fdir": { @@ -8747,6 +8770,7 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -8760,6 +8784,7 @@ "integrity": "sha512-hOQuK7h0FGKgBAas7v0mSAsnvrIgAvWmRFjmzpJ7SwFHH3g1k2u37JtYwOwmEKhK6ZO3v9ggDBBm0La1LCK4uQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@vitest/expect": "4.0.18", "@vitest/mocker": "4.0.18", @@ -9016,6 +9041,24 @@ "dev": true, "license": "ISC" }, + "node_modules/yaml": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "dev": true, + "license": "ISC", + "optional": true, + "peer": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -9035,6 +9078,7 @@ "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", "dev": true, "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/package.json b/package.json index fc02f75b..6db1fcfd 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "private": true, "type": "module", "dependencies": { - "@chakra-ui/react": "^3.31.0", + "@chakra-ui/react": "^3.32.0", "@emotion/cache": "^11.14.0", "@emotion/react": "^11.14.0", "@emotion/server": "^11.11.0", @@ -51,14 +51,14 @@ "node": ">=22" }, "devDependencies": { - "@chakra-ui/cli": "^3.31.0", + "@chakra-ui/cli": "^3.32.0", "@eslint/compat": "^2.0.2", "@eslint/js": "^9.39.2", "@react-router/dev": "^7.13.0", "@react-router/fs-routes": "^7.13.0", "@types/jsdom": "^27.0.0", - "@types/node": "^22.19.7", - "@types/react": "^19.2.10", + "@types/node": "^22.19.10", + "@types/react": "^19.2.13", "@types/react-dom": "19.2.3", "@vitest/eslint-plugin": "^1.6.6", "eslint": "^9.39.2", @@ -72,7 +72,7 @@ "typescript-eslint": "^8.54.0", "vite": "^7.3.1", "vite-plugin-checker": "^0.12.0", - "vite-tsconfig-paths": "^6.0.5", + "vite-tsconfig-paths": "^6.1.0", "vitest": "^4.0.18" } -} +} \ No newline at end of file From 700afed3f1ff07bd97a017206a21d233eff05f2e Mon Sep 17 00:00:00 2001 From: Diego Temkin <65834932+dtemkin1@users.noreply.github.com> Date: Tue, 17 Feb 2026 23:05:40 -0500 Subject: [PATCH 02/28] fullcalendar 7 --- package-lock.json | 104 +++++++++++++----------------------- package.json | 8 ++- src/components/Calendar.css | 95 +++++++++++--------------------- src/components/Calendar.tsx | 23 ++++---- src/lib/activity.ts | 7 ++- 5 files changed, 87 insertions(+), 150 deletions(-) diff --git a/package-lock.json b/package-lock.json index b72f2e8c..514219d1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,10 +13,7 @@ "@emotion/react": "^11.14.0", "@emotion/server": "^11.11.0", "@fontsource-variable/inter": "^5.2.8", - "@fullcalendar/core": "^6.1.20", - "@fullcalendar/interaction": "^6.1.20", - "@fullcalendar/react": "^6.1.20", - "@fullcalendar/timegrid": "^6.1.20", + "@fullcalendar/react": "^7.0.0-beta.7", "@react-router/node": "^7.13.0", "@rjsf/chakra-ui": "^6.2.5", "@rjsf/core": "^6.2.5", @@ -36,6 +33,7 @@ "react-use": "^17.6.0", "rrule": "^2.8.1", "smol-toml": "^1.6.0", + "temporal-polyfill": "^0.3.0", "timezones-ical-library": "^2.1.0" }, "devDependencies": { @@ -1778,55 +1776,39 @@ "url": "https://github.com/sponsors/ayuhito" } }, - "node_modules/@fullcalendar/core": { - "version": "6.1.20", - "resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-6.1.20.tgz", - "integrity": "sha512-1cukXLlePFiJ8YKXn/4tMKsy0etxYLCkXk8nUCFi11nRONF2Ba2CD5b21/ovtOO2tL6afTJfwmc1ed3HG7eB1g==", + "node_modules/@full-ui/headless-calendar": { + "version": "7.0.0-beta.7", + "resolved": "https://registry.npmjs.org/@full-ui/headless-calendar/-/headless-calendar-7.0.0-beta.7.tgz", + "integrity": "sha512-6tQ7+ARLjTd/9606enUD08QBUVAb6PXZC+iNJMoJNEM7z/sqSC5BcwweU4ntx4rBCLAvz29T5TUOCBdj87ySXA==", "license": "MIT", "peer": true, - "dependencies": { - "preact": "~10.12.1" - } - }, - "node_modules/@fullcalendar/daygrid": { - "version": "6.1.20", - "resolved": "https://registry.npmjs.org/@fullcalendar/daygrid/-/daygrid-6.1.20.tgz", - "integrity": "sha512-AO9vqhkLP77EesmJzuU+IGXgxNulsA8mgQHynclJ8U70vSwAVnbcLG9qftiTAFSlZjiY/NvhE7sflve6cJelyQ==", - "license": "MIT", "peerDependencies": { - "@fullcalendar/core": "~6.1.20" + "temporal-polyfill": "^0.3.0" } }, - "node_modules/@fullcalendar/interaction": { - "version": "6.1.20", - "resolved": "https://registry.npmjs.org/@fullcalendar/interaction/-/interaction-6.1.20.tgz", - "integrity": "sha512-p6txmc5txL0bMiPaJxe2ip6o0T384TyoD2KGdsU6UjZ5yoBlaY+dg7kxfnYKpYMzEJLG58n+URrHr2PgNL2fyA==", + "node_modules/@fullcalendar/core": { + "version": "7.0.0-beta.7", + "resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-7.0.0-beta.7.tgz", + "integrity": "sha512-TvtvVGGQcPto4w+ysgyQ5IXoEDFfXEhqA+43YGnKpg1yh5faYm+W1tbveB22WwJmC/EqNzk11sDYNcnM6iFuCg==", "license": "MIT", "peerDependencies": { - "@fullcalendar/core": "~6.1.20" + "@full-ui/headless-calendar": "7.0.0-beta.7", + "temporal-polyfill": "^0.3.0" } }, "node_modules/@fullcalendar/react": { - "version": "6.1.20", - "resolved": "https://registry.npmjs.org/@fullcalendar/react/-/react-6.1.20.tgz", - "integrity": "sha512-1w0pZtceaUdfAnxMSCGHCQalhi+mR1jOe76sXzyAXpcPz/Lf0zHSdcGK/U2XpZlnQgQtBZW+d+QBnnzVQKCxAA==", - "license": "MIT", - "peerDependencies": { - "@fullcalendar/core": "~6.1.20", - "react": "^16.7.0 || ^17 || ^18 || ^19", - "react-dom": "^16.7.0 || ^17 || ^18 || ^19" - } - }, - "node_modules/@fullcalendar/timegrid": { - "version": "6.1.20", - "resolved": "https://registry.npmjs.org/@fullcalendar/timegrid/-/timegrid-6.1.20.tgz", - "integrity": "sha512-4H+/MWbz3ntA50lrPif+7TsvMeX3R1GSYjiLULz0+zEJ7/Yfd9pupZmAwUs/PBpA6aAcFmeRr0laWfcz1a9V1A==", + "version": "7.0.0-beta.7", + "resolved": "https://registry.npmjs.org/@fullcalendar/react/-/react-7.0.0-beta.7.tgz", + "integrity": "sha512-5Q2nV3yKqW0U/7GBN90/FPPwv1qXuiNz4gV742WPZd39HerNo7STl4iWsO3rzYlFkM9Woj48FimUkqTA/5O7Pw==", "license": "MIT", "dependencies": { - "@fullcalendar/daygrid": "~6.1.20" + "@full-ui/headless-calendar": "7.0.0-beta.7", + "@fullcalendar/core": "7.0.0-beta.7" }, "peerDependencies": { - "@fullcalendar/core": "~6.1.20" + "react": "^16.7.0 || ^17 || ^18 || ^19", + "react-dom": "^16.7.0 || ^17 || ^18 || ^19", + "temporal-polyfill": "^0.3.0" } }, "node_modules/@humanfs/core": { @@ -6940,16 +6922,6 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/preact": { - "version": "10.12.1", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.12.1.tgz", - "integrity": "sha512-l8386ixSsBdbreOAkqtrwqHwdvR35ID8c3rKPa8lCWuO86dBi32QWHV4vfsZK1utLLFMvw+Z5Ad4XLkZzchscg==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/preact" - } - }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -7649,6 +7621,22 @@ "dev": true, "license": "MIT" }, + "node_modules/temporal-polyfill": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/temporal-polyfill/-/temporal-polyfill-0.3.0.tgz", + "integrity": "sha512-qNsTkX9K8hi+FHDfHmf22e/OGuXmfBm9RqNismxBrnSmZVJKegQ+HYYXT+R7Ha8F/YSm2Y34vmzD4cxMu2u95g==", + "license": "MIT", + "peer": true, + "dependencies": { + "temporal-spec": "0.3.0" + } + }, + "node_modules/temporal-spec": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/temporal-spec/-/temporal-spec-0.3.0.tgz", + "integrity": "sha512-n+noVpIqz4hYgFSMOSiINNOUOMFtV5cZQNCmmszA6GiVFVRt3G7AqVyhXjhCSmowvQn+NsGn+jMDMKJYHd3bSQ==", + "license": "ISC" + }, "node_modules/throttle-debounce": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz", @@ -9041,24 +9029,6 @@ "dev": true, "license": "ISC" }, - "node_modules/yaml": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", - "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", - "dev": true, - "license": "ISC", - "optional": true, - "peer": true, - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14.6" - }, - "funding": { - "url": "https://github.com/sponsors/eemeli" - } - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index 6db1fcfd..651ac211 100644 --- a/package.json +++ b/package.json @@ -10,10 +10,7 @@ "@emotion/react": "^11.14.0", "@emotion/server": "^11.11.0", "@fontsource-variable/inter": "^5.2.8", - "@fullcalendar/core": "^6.1.20", - "@fullcalendar/interaction": "^6.1.20", - "@fullcalendar/react": "^6.1.20", - "@fullcalendar/timegrid": "^6.1.20", + "@fullcalendar/react": "^7.0.0-beta.7", "@react-router/node": "^7.13.0", "@rjsf/chakra-ui": "^6.2.5", "@rjsf/core": "^6.2.5", @@ -33,6 +30,7 @@ "react-use": "^17.6.0", "rrule": "^2.8.1", "smol-toml": "^1.6.0", + "temporal-polyfill": "^0.3.0", "timezones-ical-library": "^2.1.0" }, "scripts": { @@ -75,4 +73,4 @@ "vite-tsconfig-paths": "^6.1.0", "vitest": "^4.0.18" } -} \ No newline at end of file +} diff --git a/src/components/Calendar.css b/src/components/Calendar.css index b69ae34c..d09761b5 100644 --- a/src/components/Calendar.css +++ b/src/components/Calendar.css @@ -1,67 +1,32 @@ -.fc .fc-scrollgrid, -.fc .fc-scrollgrid-section > td, -.fc .fc-timegrid-axis { - border-color: transparent; -} - -.fc .fc-timegrid-slot { - border-color: var(--chakra-colors-border-emphasized); - border-width: 1.5px; - border-left-color: transparent; -} - -.fc td, -.fc th { - border-color: var(--chakra-colors-border-emphasized); - border-width: 1.5px; -} - -.fc .fc-scrollgrid-section > th:nth-child(1), -.fc .fc-col-header-cell:last-child { - border-right-color: transparent; -} - -.fc .fc-scrollgrid-section-sticky > * { - background: transparent; -} - -.fc .fc-col-header-cell .fc-scrollgrid-sync-inner { - background: var(--chakra-colors-bg); -} - -.fc .fc-timegrid-event-harness-inset .fc-timegrid-event { - box-shadow: var(--chakra-colors-bg) 0px 0px 0px 1.5px; -} - -.fc .fc-scroller-harness { - overflow: visible; -} - -.fc .fc-timegrid-slot-label { - border: none; -} - -.fc .fc-timegrid-slot-label-frame { - position: relative; -} - -.fc .fc-timegrid-slot-label-cushion { - font-size: 0.75rem; - line-height: 1.3; - opacity: 0.7; - position: absolute; - top: -1.25rem; - right: 0.25rem; -} - -.fc .fc-timegrid-event { - border-radius: 0; - border-width: 0; - padding-left: 0.25rem; -} -.fc .fc-col-header-cell-cushion { - font-size: 0.8rem; - letter-spacing: 0.05rem; - text-transform: uppercase; +/* +NOTE: button/toolbar UI is not defined here +*/ + +:root { + /* primary */ + --fc-classic-primary: #3788d8; + --fc-classic-primary-foreground: #fff; + + /* calendar content */ + --fc-classic-event: var(--fc-classic-primary); + --fc-classic-event-contrast: var(--fc-classic-primary-foreground); + --fc-classic-background-event: #22c55e; + --fc-classic-highlight: #cffafe66; + --fc-classic-today: #facc1526; + --fc-classic-now: #ef4444; + + /* neutral backgrounds */ + --fc-classic-background: var(--chakra-colors-bg); + --fc-classic-faint: var(--chakra-colors-bg-subtle); + --fc-classic-muted: var(--chakra-colors-bg-muted); + --fc-classic-strong: var(--chakra-colors-bg-emphasized); + + /* neutral foregrounds */ + --fc-classic-faint-foreground: var(--chakra-colors-fg-subtle); + --fc-classic-muted-foreground: var(--chakra-colors-fg-muted); + + /* neutral borders */ + --fc-classic-border: var(--chakra-colors-border); + --fc-classic-strong-border: var(--chakra-colors-border-emphasized); } diff --git a/src/components/Calendar.tsx b/src/components/Calendar.tsx index e19c9183..89b878a8 100644 --- a/src/components/Calendar.tsx +++ b/src/components/Calendar.tsx @@ -3,10 +3,13 @@ import { useContext, useMemo } from "react"; import { Box, Circle, Float, Text } from "@chakra-ui/react"; import { Tooltip } from "./ui/tooltip"; -import FullCalendar from "@fullcalendar/react"; -import type { EventContentArg, EventApi } from "@fullcalendar/core"; -import timeGridPlugin from "@fullcalendar/timegrid"; -import interactionPlugin from "@fullcalendar/interaction"; +import FullCalendar, { + type EventDisplayData, + type EventApi, +} from "@fullcalendar/react"; +import themePlugin from "@fullcalendar/react/themes/classic"; +import timeGridPlugin from "@fullcalendar/react/timegrid"; +import interactionPlugin from "@fullcalendar/react/interaction"; import type { Activity } from "../lib/activity"; import { CustomActivity, Timeslot } from "../lib/activity"; @@ -14,6 +17,8 @@ import { Slot } from "../lib/dates"; import { HydrantContext } from "../lib/hydrant"; import "./Calendar.css"; +import "@fullcalendar/react/skeleton.css"; +import "@fullcalendar/react/themes/classic/theme.css"; // Threshold at which to display a distance warning, in feet (650 meters) const DISTANCE_WARNING_THRESHOLD = 2112; @@ -100,7 +105,7 @@ export function Calendar() { return undefined; }; - const renderEvent = ({ event }: EventContentArg) => { + const renderEvent = ({ event, contrastColor }: EventDisplayData) => { const TitleText = () => ( { - const { hour } = date; + slotHeaderContent={({ date }) => { + const hour = date.getHours(); return hour === 12 ? "noon" : hour < 12 diff --git a/src/lib/activity.ts b/src/lib/activity.ts index 8b7cd623..4c8f111c 100644 --- a/src/lib/activity.ts +++ b/src/lib/activity.ts @@ -1,4 +1,4 @@ -import type { EventInput } from "@fullcalendar/core"; +import type { EventInput } from "@fullcalendar/react"; import { nanoid } from "nanoid"; import type { ColorScheme } from "./colors"; @@ -133,12 +133,11 @@ export class Event { })[] { const color = this.activity.backgroundColor; return this.slots.map((slot) => ({ - textColor: textColor(color), + contrastColor: textColor(color), title: this.name, start: slot.startTime, end: slot.endTime, - backgroundColor: color, - borderColor: color, + color: color, room: this.room, roomClarification: this.roomClarification, activity: this.activity, From 08e94a1aae74d3ecd42ea8596d47f9916baaf092 Mon Sep 17 00:00:00 2001 From: Diego Temkin <65834932+dtemkin1@users.noreply.github.com> Date: Wed, 18 Feb 2026 01:03:47 -0500 Subject: [PATCH 03/28] start work on temporal --- package-lock.json | 33 +++- package.json | 2 +- src/components/Calendar.tsx | 24 ++- src/lib/activity.ts | 24 +-- src/lib/dates.ts | 123 ++++++++------- src/lib/gapi.ts | 29 ++-- src/lib/pe.ts | 10 +- src/lib/schema.ts | 4 +- src/lib/state.ts | 3 +- src/root.tsx | 4 + tests/activity.test.ts | 74 +++++++-- tests/dates.test.ts | 304 +++++++++++++++++++++++++++++++----- 12 files changed, 476 insertions(+), 158 deletions(-) diff --git a/package-lock.json b/package-lock.json index 514219d1..12824306 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,7 +31,7 @@ "react-icons": "^5.5.0", "react-router": "^7.13.0", "react-use": "^17.6.0", - "rrule": "^2.8.1", + "rrule-temporal": "^1.4.6", "smol-toml": "^1.6.0", "temporal-polyfill": "^0.3.0", "timezones-ical-library": "^2.1.0" @@ -1928,6 +1928,18 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@js-temporal/polyfill": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@js-temporal/polyfill/-/polyfill-0.5.1.tgz", + "integrity": "sha512-hloP58zRVCRSpgDxmqCWJNlizAlUgJFqG2ypq79DCvyv9tHjRYMDOcPFjzfl/A1/YxDvRCZz8wvZvmapQnKwFQ==", + "license": "ISC", + "dependencies": { + "jsbi": "^4.3.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@mjackson/node-fetch-server": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@mjackson/node-fetch-server/-/node-fetch-server-0.2.0.tgz", @@ -6082,6 +6094,12 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsbi": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/jsbi/-/jsbi-4.3.2.tgz", + "integrity": "sha512-9fqMSQbhJykSeii05nxKl4m6Eqn2P6rOlYiS+C5Dr/HPIU/7yZxu5qzbs40tgaFORiw2Amd0mirjxatXYMkIew==", + "license": "Apache-2.0" + }, "node_modules/jsdom": { "version": "27.4.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.4.0.tgz", @@ -7312,14 +7330,13 @@ "fsevents": "~2.3.2" } }, - "node_modules/rrule": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/rrule/-/rrule-2.8.1.tgz", - "integrity": "sha512-hM3dHSBMeaJ0Ktp7W38BJZ7O1zOgaFEsn41PDk+yHoEtfLV+PoJt9E9xAlZiWgf/iqEqionN0ebHFZIDAp+iGw==", - "license": "BSD-3-Clause", - "peer": true, + "node_modules/rrule-temporal": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/rrule-temporal/-/rrule-temporal-1.4.6.tgz", + "integrity": "sha512-eRruK01K8uu0VWgn+lvKYXGZCER7eI2EaoAhsh5wwHaYMc4jPJ1cvY+bD0hBbYwCucggMpjtuwH2RpEH9oLfWg==", + "license": "MIT", "dependencies": { - "tslib": "^2.4.0" + "@js-temporal/polyfill": "^0.5.1" } }, "node_modules/rtl-css-js": { diff --git a/package.json b/package.json index 651ac211..b69e5f91 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "react-icons": "^5.5.0", "react-router": "^7.13.0", "react-use": "^17.6.0", - "rrule": "^2.8.1", + "rrule-temporal": "^1.4.6", "smol-toml": "^1.6.0", "temporal-polyfill": "^0.3.0", "timezones-ical-library": "^2.1.0" diff --git a/src/components/Calendar.tsx b/src/components/Calendar.tsx index 89b878a8..cfca35e5 100644 --- a/src/components/Calendar.tsx +++ b/src/components/Calendar.tsx @@ -76,7 +76,7 @@ export function Calendar() { if (!beforeEvent.start || !beforeEvent.room) { continue; } - if (thisEvent.start.getTime() != beforeEvent.end.getTime()) { + if (thisEvent.start.getTime() != new Date(beforeEvent.end).getTime()) { continue; } @@ -205,7 +205,7 @@ export function Calendar() { : `${(hour - 12).toString()} PM`; }} slotMinTime={ - events.some((e) => (e.start as Date).getHours() < 8) + events.some((e) => new Date(e.start).getHours() < 8) ? "06:00:00" : "08:00:00" } @@ -217,8 +217,24 @@ export function Calendar() { state.addTimeslot( viewedActivity, Timeslot.fromStartEnd( - Slot.fromStartDate(e.start), - Slot.fromStartDate(e.end), + Slot.fromStartDate( + Temporal.PlainDateTime.from({ + year: e.start.getFullYear(), + month: e.start.getMonth() + 1, + day: e.start.getDate(), + hour: e.start.getHours(), + minute: e.start.getMinutes(), + }), + ), + Slot.fromStartDate( + Temporal.PlainDateTime.from({ + year: e.end.getFullYear(), + month: e.end.getMonth() + 1, + day: e.end.getDate(), + hour: e.end.getHours(), + minute: e.end.getMinutes(), + }), + ), ), ); } diff --git a/src/lib/activity.ts b/src/lib/activity.ts index 4c8f111c..b78ad1a9 100644 --- a/src/lib/activity.ts +++ b/src/lib/activity.ts @@ -9,6 +9,14 @@ import { sum } from "./utils"; import type { PEClass } from "./pe"; import type { Class } from "./class"; +// TODO: fullcalendar's types aren't updated and require a Date, +// but it can take a string for now. +interface AcvitityEventInput extends EventInput { + room?: string; + start: string; + end: string; +} + /** A period of time, spanning several Slots. */ export class Timeslot { startSlot: Slot; @@ -30,12 +38,12 @@ export class Timeslot { } /** The start time, on the week of 2001-01-01. */ - get startTime(): Date { + get startTime(): Temporal.PlainDateTime { return this.startSlot.startDate; } /** The end time, on the week of 2001-01-01. */ - get endTime(): Date { + get endTime(): Temporal.PlainDateTime { return this.endSlot.startDate; } @@ -126,17 +134,13 @@ export class Event { } /** List of events that can be directly given to FullCalendar. */ - get eventInputs(): (EventInput & { - start: Date; - end: Date; - room?: string; - })[] { + get eventInputs(): AcvitityEventInput[] { const color = this.activity.backgroundColor; return this.slots.map((slot) => ({ contrastColor: textColor(color), title: this.name, - start: slot.startTime, - end: slot.endTime, + start: slot.startTime.toString(), + end: slot.endTime.toString(), color: color, room: this.room, roomClarification: this.roomClarification, @@ -185,7 +189,7 @@ export class CustomActivity implements BaseActivity { addTimeslot(slot: Timeslot): void { if ( this.timeslots.find((slot_) => slot_.equals(slot)) || - slot.startTime.getDate() !== slot.endTime.getDate() + slot.startTime.day !== slot.endTime.day ) return; this.timeslots.push(slot); diff --git a/src/lib/dates.ts b/src/lib/dates.ts index 8ca1b753..8ea218eb 100644 --- a/src/lib/dates.ts +++ b/src/lib/dates.ts @@ -77,11 +77,11 @@ export class Slot { } /** Converts a date, within 6 AM to 11 PM, to a slot. */ - static fromStartDate(date: Date): Slot { + static fromStartDate(date: Temporal.PlainDateTime): Slot { return new Slot( - TIMESLOTS * (date.getDay() - 1) + - 2 * (date.getHours() - 6) + - Math.floor(date.getMinutes() / 30), + TIMESLOTS * (date.dayOfWeek - 1) + + 2 * (date.hour - 6) + + Math.floor(date.minute / 30), ); } @@ -98,29 +98,25 @@ export class Slot { } /** - * The (local timezone) date on the day of date that this starts in. Assumes + * The datetime on the day of date that this starts in. Assumes * that date is the right day of the week. */ - onDate(date: Date): Date { + onDate(date: Temporal.PlainDate): Temporal.PlainDateTime { const hour = Math.floor((this.slot % TIMESLOTS) / 2) + 6; const minute = (this.slot % 2) * 30; - return new Date( - date.getFullYear(), - date.getMonth(), - date.getDate(), - hour, - minute, - ); + + const time = Temporal.PlainTime.from({ hour, minute }); + return date.toPlainDateTime(time); } /** The date in the week of 2001-01-01 that this starts in. */ - get startDate(): Date { + get startDate(): Temporal.PlainDateTime { // conveniently enough, 2001-01-01 is a Monday: - return this.onDate(new Date(2001, 0, this.weekday)); + return this.onDate(new Temporal.PlainDate(2001, 1, this.weekday)); } /** The date in the week of 2001-01-01 that this ends in. */ - get endDate(): Date { + get endDate(): Temporal.PlainDateTime { return this.add(1).startDate; } @@ -286,17 +282,17 @@ export class Term { /** Semester as a character, e.g. "f" */ public semester: TSemester; /** First day of classes, inclusive. */ - public start: Date; + public start: Temporal.PlainDate; /** Last day of H1 classes, inclusive. */ - public h1End?: Date; + public h1End?: Temporal.PlainDate; /** First day of H2 classes, inclusive. */ - public h2Start?: Date; + public h2Start?: Temporal.PlainDate; /** Last day of classes, inclusive. */ - public end: Date; + public end: Temporal.PlainDate; /** A Tuesday which runs on Monday schedule, if it exists. */ - public mondaySchedule?: Date; + public mondaySchedule?: Temporal.PlainDate; /** A list of dates with no class. */ - public holidays: Date[]; + public holidays: Temporal.PlainDate[]; constructor({ urlName, @@ -307,22 +303,21 @@ export class Term { mondayScheduleDate, holidayDates = [], }: Partial & { urlName: string }) { - const midnight = (date: string) => new Date(`${date}T00:00:00`); const { year, semester } = parseUrlName(urlName); this.year = year; this.semester = semester; - this.start = startDate - ? midnight(startDate) - : new Date(Number(`20${year}`), 0, 1); - this.h1End = h1EndDate ? midnight(h1EndDate) : undefined; - this.h2Start = h2StartDate ? midnight(h2StartDate) : undefined; + this.start = Temporal.PlainDate.from(startDate ?? `20${year}-01-01`); + this.h1End = h1EndDate ? Temporal.PlainDate.from(h1EndDate) : undefined; + this.h2Start = h2StartDate + ? Temporal.PlainDate.from(h2StartDate) + : undefined; this.end = endDate - ? midnight(endDate) - : new Date(Number(`20${year}`), 11, 31); + ? Temporal.PlainDate.from(endDate) + : Temporal.PlainDate.from(`20${year}-12-31`); this.mondaySchedule = mondayScheduleDate - ? midnight(mondayScheduleDate) + ? Temporal.PlainDate.from(mondayScheduleDate) : undefined; - this.holidays = holidayDates.map((date) => midnight(date)); + this.holidays = holidayDates.map((date) => Temporal.PlainDate.from(date)); } /** e.g. "2022" */ @@ -360,10 +355,8 @@ export class Term { slot: Slot, secondHalf = false, startDay?: [number, number], - ): Date { - const date = new Date( - (secondHalf && this.h2Start ? this.h2Start : this.start).getTime(), - ); + ): Temporal.PlainDateTime { + let date = secondHalf && this.h2Start ? this.h2Start : this.start; const startDayValid = // is defined @@ -374,25 +367,35 @@ export class Term { startDay[1] >= 1 && startDay[1] <= 31 && // before end date - new Date(date.getFullYear(), startDay[0] - 1, startDay[1]).getTime() < - this.end.getTime(); + Temporal.PlainDate.compare( + Temporal.PlainDate.from({ + year: date.year, + month: startDay[0], + day: startDay[1], + }), + this.end, + ) < 0; if (startDayValid) { - date.setMonth(startDay[0] - 1); - date.setDate(startDay[1]); + date = date.with({ + month: startDay[0], + day: startDay[1], + }); } - while (date.getDay() !== slot.weekday) { - date.setDate(date.getDate() + 1); + while (date.dayOfWeek !== slot.weekday) { + date = date.add({ days: 1 }); } return slot.onDate(date); } /** The date a slot ends on, plus an extra day. */ - endDateFor(slot: Slot, firstHalf = false, endDay?: [number, number]): Date { - const date = new Date( - (firstHalf && this.h1End ? this.h1End : this.end).getTime(), - ); + endDateFor( + slot: Slot, + firstHalf = false, + endDay?: [number, number], + ): Temporal.PlainDateTime { + let date = firstHalf && this.h1End ? this.h1End : this.end; const endDayValid = // is defined @@ -403,25 +406,33 @@ export class Term { endDay[1] >= 1 && endDay[1] <= 31 && // after start date - new Date(date.getFullYear(), endDay[0] - 1, endDay[1]).getTime() > - this.start.getTime(); + Temporal.PlainDate.compare( + Temporal.PlainDate.from({ + year: date.year, + month: endDay[0], + day: endDay[1], + }), + this.start, + ) > 0; if (endDayValid) { - date.setMonth(endDay[0] - 1); - date.setDate(endDay[1]); + date = date.with({ + month: endDay[0], + day: endDay[1], + }); } - while (date.getDay() !== slot.weekday) { - date.setDate(date.getDate() - 1); + while (date.dayOfWeek !== slot.weekday) { + date = date.subtract({ days: 1 }); } // plus an extra day, for inclusivity issues - date.setDate(date.getDate() + 1); + date = date.add({ days: 1 }); return slot.onDate(date); } /** Dates that a given slot *doesn't* run on. */ - exDatesFor(slot: Slot): Date[] { - const res = this.holidays.filter((date) => date.getDay() === slot.weekday); + exDatesFor(slot: Slot): Temporal.PlainDateTime[] { + const res = this.holidays.filter((date) => date.dayOfWeek === slot.weekday); const resDates = res.map((date) => slot.onDate(date)); // remove the tuesday for monday schedule @@ -433,7 +444,7 @@ export class Term { } /** An extra date a given slot would fall on, if it exists. */ - rDateFor(slot: Slot): Date | undefined { + rDateFor(slot: Slot): Temporal.PlainDateTime | undefined { return slot.weekday === 1 && this.mondaySchedule ? slot.onDate(this.mondaySchedule) : undefined; diff --git a/src/lib/gapi.ts b/src/lib/gapi.ts index eaacc00b..d0ee0359 100644 --- a/src/lib/gapi.ts +++ b/src/lib/gapi.ts @@ -1,6 +1,6 @@ import type { ICalEventData } from "ical-generator"; import { ICalCalendar } from "ical-generator"; -import { RRule, RRuleSet } from "rrule"; +import { RRuleTemporal } from "rrule-temporal"; import { tzlib_get_ical_block } from "timezones-ical-library"; import type { Activity } from "./activity"; @@ -28,6 +28,7 @@ function download(filename: string, text: string) { document.body.removeChild(element); } +// TODO: add tests for this... function toICalEvents(activity: Activity, term: Term): ICalEventData[] { return activity.events.flatMap((event) => event.slots.map((slot) => { @@ -53,29 +54,21 @@ function toICalEvents(activity: Activity, term: Term): ICalEventData[] { const exDates = term.exDatesFor(slot.startSlot); const rDate = term.rDateFor(slot.startSlot); - const rrule = new RRule({ - freq: RRule.WEEKLY, - until: endDate, + const rrule = new RRuleTemporal({ + freq: "WEEKLY", + dtstart: startDate.toZonedDateTime(TIMEZONE), + until: endDate.toZonedDateTime(TIMEZONE), + exDate: exDates.map((date) => date.toZonedDateTime(TIMEZONE)), + rDate: rDate ? [rDate.toZonedDateTime(TIMEZONE)] : undefined, }); - const rruleSet = new RRuleSet(); - rruleSet.rrule(rrule); - - for (const exdate of exDates) { - rruleSet.exdate(exdate); - } - - if (rDate) { - rruleSet.rdate(rDate); - } - return { summary: event.name, location: event.room, - start: startDate, - end: startDateEnd, + start: startDate.toString(), + end: startDateEnd.toString(), timezone: TIMEZONE, - repeating: rruleSet, + repeating: rrule.toString(), } satisfies ICalEventData; }), ); diff --git a/src/lib/pe.ts b/src/lib/pe.ts index 6648dd2d..1d954754 100644 --- a/src/lib/pe.ts +++ b/src/lib/pe.ts @@ -140,11 +140,11 @@ export class PEClass implements BaseActivity { } get startDate() { - return new Date(this.rawClass.startDate); + return Temporal.PlainDate.from(this.rawClass.startDate); } get endDate() { - return new Date(this.rawClass.endDate); + return Temporal.PlainDate.from(this.rawClass.endDate); } /** Fee, in dollars */ @@ -167,13 +167,11 @@ export class PEClass implements BaseActivity { } get start(): [number, number] { - const startDate = new Date(this.rawClass.startDate); - return [startDate.getMonth() + 1, startDate.getDate()]; + return [this.startDate.month, this.startDate.day]; } get end(): [number, number] { - const endDate = new Date(this.rawClass.endDate); - return [endDate.getMonth() + 1, endDate.getDate()]; + return [this.endDate.month, this.endDate.day]; } get flags(): PEFlags { diff --git a/src/lib/schema.ts b/src/lib/schema.ts index 8fe240e9..fba558d0 100644 --- a/src/lib/schema.ts +++ b/src/lib/schema.ts @@ -8,7 +8,9 @@ export enum ClassType { } /** The date the content of the banner was last changed. */ -export const BANNER_LAST_CHANGED = new Date("2026-01-23T12:00:00Z").valueOf(); +export const BANNER_LAST_CHANGED = Temporal.Instant.from( + "2026-01-23T12:00:00Z", +).epochMilliseconds; export const BANNER_MESSAGE = "Q3 Physical Education and Wellness classes are now available on Hydrant! Registration opens Jan 30 on the PE&W website."; diff --git a/src/lib/state.ts b/src/lib/state.ts index 6cb1fcbe..8bc0bfba 100644 --- a/src/lib/state.ts +++ b/src/lib/state.ts @@ -395,7 +395,8 @@ export class State { set showBanner(show: boolean) { this.preferences.showBanner = show; - this.preferences.showBannerChanged = new Date().valueOf(); + this.preferences.showBannerChanged = + Temporal.Now.instant().epochMilliseconds; this.updateState(); } diff --git a/src/root.tsx b/src/root.tsx index 02a2f74d..62ed962a 100644 --- a/src/root.tsx +++ b/src/root.tsx @@ -16,6 +16,10 @@ import { Flex, Spinner, Text, Stack, Code } from "@chakra-ui/react"; import "@fontsource-variable/inter/index.css"; +if (!("Temporal" in globalThis)) { + await import("temporal-polyfill/global"); +} + // eslint-disable-next-line react-refresh/only-export-components export const links: Route.LinksFunction = () => [ { diff --git a/tests/activity.test.ts b/tests/activity.test.ts index 3b844da0..1c618ae9 100644 --- a/tests/activity.test.ts +++ b/tests/activity.test.ts @@ -8,6 +8,10 @@ import { COLOR_SCHEME_DARK_CONTRAST, } from "../src/lib/colors"; +if (!("Temporal" in globalThis)) { + await import("temporal-polyfill/global"); +} + describe("Timeslot", () => { test("Timeslot.fromStartEnd", () => { const myStart: Slot = new Slot(2); @@ -26,14 +30,30 @@ describe("Timeslot", () => { test("Timeslot.startTime", () => { const myTimeslot: Timeslot = new Timeslot(22, 43); // note: slot 22 is Monday at 5:00 PM expect(myTimeslot.startTime).toStrictEqual( - new Date(2001, 0, 1, 17, 0, 0, 0), + Temporal.PlainDateTime.from({ + year: 2001, + month: 1, + day: 1, + hour: 17, + minute: 0, + second: 0, + millisecond: 0, + }), ); }); test("Timeslot.endTime", () => { const myTimeslot: Timeslot = new Timeslot(79, 52); // note: slot 79 + 52 = 131 is Thursday at 8:30 PM expect(myTimeslot.endTime).toStrictEqual( - new Date(2001, 0, 4, 20, 30, 0, 0), + Temporal.PlainDateTime.from({ + year: 2001, + month: 1, + day: 4, + hour: 20, + minute: 30, + second: 0, + millisecond: 0, + }), ); }); @@ -136,23 +156,53 @@ test("Event.eventInputs", () => { ); expect(myEvent.eventInputs).toStrictEqual([ { - textColor: "#ffffff", + contrastColor: "#ffffff", title: myTitle, - start: new Date(2001, 0, 1, 9, 0, 0, 0), // slot 6 = Monday at 9 AM - end: new Date(2001, 0, 1, 12, 30, 0, 0), // slot 13 = Monday at 12:30 PM - backgroundColor: myHexCode, - borderColor: myHexCode, + start: Temporal.PlainDateTime.from({ + year: 2001, + month: 1, + day: 1, + hour: 9, + minute: 0, + second: 0, + millisecond: 0, + }).toString(), + end: Temporal.PlainDateTime.from({ + year: 2001, + month: 1, + day: 1, + hour: 12, + minute: 30, + second: 0, + millisecond: 0, + }).toString(), + color: myHexCode, room: myRoom, roomClarification: undefined, activity: myCustomActivity, }, { - textColor: "#ffffff", + contrastColor: "#ffffff", title: myTitle, - start: new Date(2001, 0, 2, 17, 30, 0, 0), // slot 57 = Tuesday at 5:30 PM - end: new Date(2001, 0, 2, 22, 30, 0, 0), // slot 67 = Tuesday at 10:30 PM - backgroundColor: myHexCode, - borderColor: myHexCode, + start: Temporal.PlainDateTime.from({ + year: 2001, + month: 1, + day: 2, + hour: 17, + minute: 30, + second: 0, + millisecond: 0, + }).toString(), + end: Temporal.PlainDateTime.from({ + year: 2001, + month: 1, + day: 2, + hour: 22, + minute: 30, + second: 0, + millisecond: 0, + }).toString(), + color: myHexCode, room: myRoom, roomClarification: undefined, activity: myCustomActivity, diff --git a/tests/dates.test.ts b/tests/dates.test.ts index 1d8c67d6..e6ddfcfb 100644 --- a/tests/dates.test.ts +++ b/tests/dates.test.ts @@ -9,6 +9,10 @@ import { } from "../src/lib/dates"; import { JSDOM } from "jsdom"; +if (!("Temporal" in globalThis)) { + await import("temporal-polyfill/global"); +} + test("parseUrlName", () => { expect(parseUrlName("f22")).toStrictEqual({ year: "22", @@ -94,12 +98,24 @@ describe("Term", () => { }); expect(myTerm.year).toBe("42"); expect(myTerm.semester).toBe("f"); - expect(myTerm.start).toStrictEqual(new Date(2042, 3, 20, 0)); - expect(myTerm.h1End).toStrictEqual(new Date(2042, 3, 21, 0)); - expect(myTerm.h2Start).toStrictEqual(new Date(2042, 3, 22, 0)); - expect(myTerm.mondaySchedule).toStrictEqual(new Date(2042, 3, 23, 0)); - expect(myTerm.holidays).toStrictEqual([new Date(2042, 3, 24, 0)]); - expect(myTerm.end).toStrictEqual(new Date(2042, 3, 25, 0)); + expect(myTerm.start).toStrictEqual( + Temporal.PlainDate.from({ year: 2042, month: 4, day: 20 }), + ); + expect(myTerm.h1End).toStrictEqual( + Temporal.PlainDate.from({ year: 2042, month: 4, day: 21 }), + ); + expect(myTerm.h2Start).toStrictEqual( + Temporal.PlainDate.from({ year: 2042, month: 4, day: 22 }), + ); + expect(myTerm.mondaySchedule).toStrictEqual( + Temporal.PlainDate.from({ year: 2042, month: 4, day: 23 }), + ); + expect(myTerm.holidays).toStrictEqual([ + Temporal.PlainDate.from({ year: 2042, month: 4, day: 24 }), + ]); + expect(myTerm.end).toStrictEqual( + Temporal.PlainDate.from({ year: 2042, month: 4, day: 25 }), + ); }); test("no half", () => { @@ -112,12 +128,20 @@ describe("Term", () => { }); expect(myTerm.year).toBe("42"); expect(myTerm.semester).toBe("f"); - expect(myTerm.start).toStrictEqual(new Date(2042, 3, 20, 0)); + expect(myTerm.start).toStrictEqual( + Temporal.PlainDate.from({ year: 2042, month: 4, day: 20 }), + ); expect(myTerm.h1End).toBeUndefined(); expect(myTerm.h2Start).toBeUndefined(); - expect(myTerm.mondaySchedule).toStrictEqual(new Date(2042, 3, 23, 0)); - expect(myTerm.holidays).toStrictEqual([new Date(2042, 3, 24, 0)]); - expect(myTerm.end).toStrictEqual(new Date(2042, 3, 25, 0)); + expect(myTerm.mondaySchedule).toStrictEqual( + Temporal.PlainDate.from({ year: 2042, month: 4, day: 23 }), + ); + expect(myTerm.holidays).toStrictEqual([ + Temporal.PlainDate.from({ year: 2042, month: 4, day: 24 }), + ]); + expect(myTerm.end).toStrictEqual( + Temporal.PlainDate.from({ year: 2042, month: 4, day: 25 }), + ); }); test("no optional dates", () => { @@ -126,12 +150,16 @@ describe("Term", () => { }); expect(myTerm.year).toBe("42"); expect(myTerm.semester).toBe("f"); - expect(myTerm.start).toStrictEqual(new Date(2042, 0, 1, 0)); + expect(myTerm.start).toStrictEqual( + Temporal.PlainDate.from({ year: 2042, month: 1, day: 1 }), + ); expect(myTerm.h1End).toBeUndefined(); expect(myTerm.h2Start).toBeUndefined(); expect(myTerm.mondaySchedule).toBeUndefined(); expect(myTerm.holidays).toStrictEqual([]); - expect(myTerm.end).toStrictEqual(new Date(2042, 11, 31, 0)); + expect(myTerm.end).toStrictEqual( + Temporal.PlainDate.from({ year: 2042, month: 12, day: 31 }), + ); }); }); @@ -187,7 +215,15 @@ describe("Term", () => { false, undefined, ), - ).toStrictEqual(new Date(2044, 9, 19, 6, 30)); + ).toStrictEqual( + Temporal.PlainDateTime.from({ + year: 2044, + month: 10, + day: 19, + hour: 6, + minute: 30, + }), + ); }); test("secondHalf false, startDay undefined, slot.weekday doesn't match", () => { @@ -198,7 +234,13 @@ describe("Term", () => { undefined, ), ).toStrictEqual( - new Date(2044, 9, 25, 19, 30), // bump to next Tuesday, October 25, 2044 + Temporal.PlainDateTime.from({ + year: 2044, + month: 10, + day: 25, + hour: 19, + minute: 30, + }), ); }); @@ -209,7 +251,15 @@ describe("Term", () => { false, [11, 4], // this would mean Friday, November 4, 2044 ), - ).toStrictEqual(new Date(2044, 10, 4, 22)); + ).toStrictEqual( + Temporal.PlainDateTime.from({ + year: 2044, + month: 11, + day: 4, + hour: 22, + minute: 0, + }), + ); }); test("secondHalf false, startDay defined, slot.weekday doesn't match", () => { @@ -220,7 +270,13 @@ describe("Term", () => { [11, 4], ), ).toStrictEqual( - new Date(2044, 10, 7, 20), // bumps to next Monday, November 7, 2044 + Temporal.PlainDateTime.from({ + year: 2044, + month: 11, + day: 7, + hour: 20, + minute: 0, + }), ); }); @@ -231,7 +287,15 @@ describe("Term", () => { true, undefined, ), - ).toStrictEqual(new Date(2044, 10, 21, 6, 30)); + ).toStrictEqual( + Temporal.PlainDateTime.from({ + year: 2044, + month: 11, + day: 21, + hour: 6, + minute: 30, + }), + ); }); test("secondHalf true, startDay undefined, slot.weekday doesn't match", () => { @@ -242,7 +306,13 @@ describe("Term", () => { undefined, ), ).toStrictEqual( - new Date(2044, 10, 22, 6, 30), // bump to next day + Temporal.PlainDateTime.from({ + year: 2044, + month: 11, + day: 22, + hour: 6, + minute: 30, + }), // bump to next day ); }); @@ -253,7 +323,15 @@ describe("Term", () => { true, [11, 14], // Monday, November 14, 2044 ), - ).toStrictEqual(new Date(2044, 10, 14, 6, 30)); + ).toStrictEqual( + Temporal.PlainDateTime.from({ + year: 2044, + month: 11, + day: 14, + hour: 6, + minute: 30, + }), + ); }); test("secondHalf true, startDay defined, slot.weekday doesn't match", () => { @@ -264,7 +342,13 @@ describe("Term", () => { [11, 14], ), ).toStrictEqual( - new Date(2044, 10, 15, 6, 30), // bump to next day + Temporal.PlainDateTime.from({ + year: 2044, + month: 11, + day: 15, + hour: 6, + minute: 30, + }), // bump to next day ); }); }); @@ -285,52 +369,114 @@ describe("Term", () => { test("firstHalf false, endDay undefined, slot.weekday matches", () => { expect( myTerm.endDateFor(new Slot(1), false, undefined), // NOTE: slot 1 = Monday at 6:30 AM - ).toStrictEqual(new Date(2044, 10, 22, 6, 30, 0, 0)); + ).toStrictEqual( + Temporal.PlainDateTime.from({ + year: 2044, + month: 11, + day: 22, + hour: 6, + minute: 30, + }), + ); }); test("firstHalf false, endDay undefined, slot.weekday doesn't match", () => { expect( myTerm.endDateFor(new Slot(68), false, undefined), // NOTE: slot 68 = Wednesday at 6:00 AM ).toStrictEqual( - new Date(2044, 10, 17, 6, 0, 0, 0), // NOTE: 2044-11-17 is a Thursday + Temporal.PlainDateTime.from({ + year: 2044, + month: 11, + day: 17, + hour: 6, + minute: 0, + }), ); }); test("firstHalf true, endDay undefined, slot.weekday matches", () => { expect( myTerm.endDateFor(new Slot(94), true, undefined), // NOTE: slot 94 = Wednesday at 7:00 PM - ).toStrictEqual(new Date(2044, 9, 20, 19, 0, 0, 0)); + ).toStrictEqual( + Temporal.PlainDateTime.from({ + year: 2044, + month: 10, + day: 20, + hour: 19, + minute: 0, + }), + ); }); test("firstHalf true, endDay undefined, slot.weekday doesn't match", () => { expect( myTerm.endDateFor(new Slot(4), true, undefined), // NOTE: slot 4 = Monday at 8:00 PM ).toStrictEqual( - new Date(2044, 9, 18, 8, 0, 0, 0), // NOTE: 2044-10-18 is a Tuesday + Temporal.PlainDateTime.from({ + year: 2044, + month: 10, + day: 18, + hour: 8, + minute: 0, + }), // NOTE: 2044-10-18 is a Tuesday ); }); test("firstHalf false, endDay defined, slot.weekday matches", () => { expect( myTerm.endDateFor(new Slot(0), false, [9, 5]), // NOTE: 2044-09-05 is a Monday - ).toStrictEqual(new Date(2044, 8, 6, 6, 0, 0, 0)); + ).toStrictEqual( + Temporal.PlainDateTime.from({ + year: 2044, + month: 9, + day: 6, + hour: 6, + minute: 0, + }), + ); }); test("firstHalf true, endDay defined, slot.weekday matches", () => { expect(myTerm.endDateFor(new Slot(0), true, [9, 5])).toStrictEqual( - new Date(2044, 8, 6, 6, 0, 0, 0), + Temporal.PlainDateTime.from({ + year: 2044, + month: 9, + day: 6, + hour: 6, + minute: 0, + second: 0, + millisecond: 0, + }), ); }); test("firstHalf false, endDay defined, slot.weekday doesn't match", () => { expect( myTerm.endDateFor(new Slot(69), false, [9, 5]), // NOTE: slot 69 = Wednesday at 6:30 AM - ).toStrictEqual(new Date(2044, 8, 1, 6, 30, 0, 0)); + ).toStrictEqual( + Temporal.PlainDateTime.from({ + year: 2044, + month: 9, + day: 1, + hour: 6, + minute: 30, + second: 0, + millisecond: 0, + }), + ); }); test("firstHalf true, endDay defined, slot.weekday doesn't match", () => { expect(myTerm.endDateFor(new Slot(69), true, [9, 5])).toStrictEqual( - new Date(2044, 8, 1, 6, 30, 0, 0), + Temporal.PlainDateTime.from({ + year: 2044, + month: 9, + day: 1, + hour: 6, + minute: 30, + second: 0, + millisecond: 0, + }), ); }); }); @@ -350,8 +496,20 @@ describe("Term", () => { expect( myTerm.exDatesFor(new Slot(40)), // NOTE: slot 40 = Tuesday at 9:00 AM ).toStrictEqual([ - new Date(2079, 7, 8, 9, 0, 0, 0), - new Date(2079, 7, 11, 9, 0, 0, 0), + Temporal.PlainDateTime.from({ + year: 2079, + month: 8, + day: 8, + hour: 9, + minute: 0, + }), + Temporal.PlainDateTime.from({ + year: 2079, + month: 8, + day: 11, + hour: 9, + minute: 0, + }), ]); }); @@ -363,7 +521,15 @@ describe("Term", () => { }); expect( myTerm.exDatesFor(new Slot(100)), // NOTE: slot 100 = Wednesday at 10:00 PM - ).toStrictEqual([new Date(2079, 7, 9, 22, 0, 0, 0)]); + ).toStrictEqual([ + Temporal.PlainDateTime.from({ + year: 2079, + month: 8, + day: 9, + hour: 22, + minute: 0, + }), + ]); }); test("has non-matching holiday, tuesday on monday schedule", () => { @@ -374,7 +540,15 @@ describe("Term", () => { }); expect( myTerm.exDatesFor(new Slot(41)), // NOTE: slot 41 = Tuesday at 9:30 AM - ).toStrictEqual([new Date(2079, 7, 11, 9, 30, 0, 0)]); + ).toStrictEqual([ + Temporal.PlainDateTime.from({ + year: 2079, + month: 8, + day: 11, + hour: 9, + minute: 30, + }), + ]); }); test("has non-matching holiday, not monday schedule", () => { @@ -395,9 +569,15 @@ describe("Term", () => { }); expect( myTerm.exDatesFor(new Slot(34)), // NOTE: slot 34 = Tuesday at 6:00 AM - ).toStrictEqual( - [new Date(2079, 0, 1, 6, 0, 0, 0)], // NOTE: in some timezones this shifts to 2000-01-01 so we hardcode "America/New_York" for reproducibility - ); + ).toStrictEqual([ + Temporal.PlainDateTime.from({ + year: 2079, + month: 1, + day: 1, + hour: 6, + minute: 0, + }), + ]); }); test("no holidays, not monday schedule", () => { @@ -421,7 +601,13 @@ describe("Term", () => { mondayScheduleDate: "2056-04-24", }); expect(myTerm.rDateFor(new Slot(0))).toStrictEqual( - new Date(2056, 3, 24, 6, 0, 0, 0), + Temporal.PlainDateTime.from({ + year: 2056, + month: 4, + day: 24, + hour: 6, + minute: 0, + }), ); }); @@ -455,7 +641,15 @@ describe("Slot", () => { }); test("Slot.fromStartDate", () => { - const myDate: Date = new Date(2001, 6, 19, 22, 1, 52, 23); // randomly chosen date + const myDate = Temporal.PlainDateTime.from({ + year: 2001, + month: 7, + day: 19, + hour: 22, + minute: 1, + second: 52, + millisecond: 23, + }); // randomly chosen date const mySlot: Slot = Slot.fromStartDate(myDate); expect(mySlot.slot).toBe(134); // note: this was a Thursday (July 19, 2001), slot number 32 }); @@ -473,18 +667,46 @@ describe("Slot", () => { test("Slot.onDate", () => { const mySlot: Slot = new Slot(125); // Thursday, 5:30 PM - const myDate: Date = new Date(2068, 8, 6); // this is also a Thursday - expect(mySlot.onDate(myDate)).toStrictEqual(new Date(2068, 8, 6, 17, 30)); + const myDate = Temporal.PlainDate.from({ + year: 2068, + month: 9, + day: 6, + }); // this is also a Thursday + expect(mySlot.onDate(myDate)).toStrictEqual( + Temporal.PlainDateTime.from({ + year: 2068, + month: 9, + day: 6, + hour: 17, + minute: 30, + }), + ); }); test("Slot.startDate", () => { const mySlot: Slot = new Slot(62); // Tuesday, 8:00 PM - expect(mySlot.startDate).toStrictEqual(new Date(2001, 0, 2, 20, 0)); + expect(mySlot.startDate).toStrictEqual( + Temporal.PlainDateTime.from({ + year: 2001, + month: 1, + day: 2, + hour: 20, + minute: 0, + }), + ); }); test("Slot.endDate", () => { const mySlot: Slot = new Slot(130); // Thursday, 8:00 PM - expect(mySlot.endDate).toStrictEqual(new Date(2001, 0, 4, 20, 30)); + expect(mySlot.endDate).toStrictEqual( + Temporal.PlainDateTime.from({ + year: 2001, + month: 1, + day: 4, + hour: 20, + minute: 30, + }), + ); }); test("Slot.weekday", () => { From c22d0b5839c68a491de2f23f8504f84ea7735053 Mon Sep 17 00:00:00 2001 From: Diego Temkin <65834932+dtemkin1@users.noreply.github.com> Date: Wed, 18 Feb 2026 01:04:08 -0500 Subject: [PATCH 04/28] format --- src/components/Calendar.css | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/Calendar.css b/src/components/Calendar.css index d09761b5..f3f770be 100644 --- a/src/components/Calendar.css +++ b/src/components/Calendar.css @@ -1,4 +1,3 @@ - /* NOTE: button/toolbar UI is not defined here */ From 563f6919d2e85d2fb4f06b1163fc718593c91368 Mon Sep 17 00:00:00 2001 From: Diego Temkin <65834932+dtemkin1@users.noreply.github.com> Date: Thu, 19 Feb 2026 14:36:50 -0500 Subject: [PATCH 05/28] end reliance on 2001 dates --- src/components/Calendar.css | 6 ++++++ src/components/Calendar.tsx | 38 ++++++++++++++++++------------------- src/lib/dates.ts | 8 ++++---- src/lib/gapi.ts | 2 +- tests/dates.test.ts | 12 ++++++++++++ 5 files changed, 41 insertions(+), 25 deletions(-) diff --git a/src/components/Calendar.css b/src/components/Calendar.css index f3f770be..09ab1e49 100644 --- a/src/components/Calendar.css +++ b/src/components/Calendar.css @@ -29,3 +29,9 @@ NOTE: button/toolbar UI is not defined here --fc-classic-border: var(--chakra-colors-border); --fc-classic-strong-border: var(--chakra-colors-border-emphasized); } + +.dark { + /* calendar content */ + --fc-classic-highlight: #3b82f633; + --fc-classic-today: #fef08a1A; +} diff --git a/src/components/Calendar.tsx b/src/components/Calendar.tsx index cfca35e5..62cf7fc3 100644 --- a/src/components/Calendar.tsx +++ b/src/components/Calendar.tsx @@ -193,9 +193,10 @@ export function Calendar() { }} headerToolbar={false} height="auto" - // a date that is, conveniently enough, a monday - initialDate="2001-01-01" - slotDuration="00:30:00" + initialDate={Temporal.Now.plainDateISO() + .subtract({ days: Temporal.Now.plainDateISO().dayOfWeek - 1 }) + .toString()} + slotDuration={Temporal.Duration.from({ minutes: 30 })} slotHeaderContent={({ date }) => { const hour = date.getHours(); return hour === 12 @@ -204,12 +205,15 @@ export function Calendar() { ? `${hour.toString()} AM` : `${(hour - 12).toString()} PM`; }} + dayHeaderContent={({ text }) => { + return text.toLocaleUpperCase(); + }} slotMinTime={ events.some((e) => new Date(e.start).getHours() < 8) - ? "06:00:00" - : "08:00:00" + ? Temporal.Duration.from({ hours: 6 }) + : Temporal.Duration.from({ hours: 8 }) } - slotMaxTime="22:00:00" + slotMaxTime={Temporal.Duration.from({ hours: 22 })} weekends={false} selectable={viewedActivity instanceof CustomActivity} select={(e) => { @@ -218,22 +222,16 @@ export function Calendar() { viewedActivity, Timeslot.fromStartEnd( Slot.fromStartDate( - Temporal.PlainDateTime.from({ - year: e.start.getFullYear(), - month: e.start.getMonth() + 1, - day: e.start.getDate(), - hour: e.start.getHours(), - minute: e.start.getMinutes(), - }), + e.start + .toTemporalInstant() + .toZonedDateTimeISO(Temporal.Now.timeZoneId()) + .toPlainDateTime(), ), Slot.fromStartDate( - Temporal.PlainDateTime.from({ - year: e.end.getFullYear(), - month: e.end.getMonth() + 1, - day: e.end.getDate(), - hour: e.end.getHours(), - minute: e.end.getMinutes(), - }), + e.end + .toTemporalInstant() + .toZonedDateTimeISO(Temporal.Now.timeZoneId()) + .toPlainDateTime(), ), ), ); diff --git a/src/lib/dates.ts b/src/lib/dates.ts index 8ea218eb..9fab257f 100644 --- a/src/lib/dates.ts +++ b/src/lib/dates.ts @@ -109,13 +109,13 @@ export class Slot { return date.toPlainDateTime(time); } - /** The date in the week of 2001-01-01 that this starts in. */ + /** The date in the current week that this class starts on. */ get startDate(): Temporal.PlainDateTime { - // conveniently enough, 2001-01-01 is a Monday: - return this.onDate(new Temporal.PlainDate(2001, 1, this.weekday)); + const today = Temporal.Now.plainDateISO(); + return this.onDate(today.add({ days: this.weekday - today.dayOfWeek })); } - /** The date in the week of 2001-01-01 that this ends in. */ + /** The date in this week that this ends on. */ get endDate(): Temporal.PlainDateTime { return this.add(1).startDate; } diff --git a/src/lib/gapi.ts b/src/lib/gapi.ts index d0ee0359..6f515440 100644 --- a/src/lib/gapi.ts +++ b/src/lib/gapi.ts @@ -8,7 +8,7 @@ import type { Term } from "./dates"; import type { State } from "./state"; import { Class } from "./class"; -/** Timezone string. */ +/** MIT's Timezone string. */ const TIMEZONE = "America/New_York"; /** Downloads a file with the given text data */ diff --git a/tests/dates.test.ts b/tests/dates.test.ts index e6ddfcfb..a9224ced 100644 --- a/tests/dates.test.ts +++ b/tests/dates.test.ts @@ -635,6 +635,18 @@ describe("Slot", () => { /** * Test each method separately (most of them don't need to be partitioned) */ + + beforeEach(() => { + // Set fixed system time to ensure consistency + const mockDate = new Date(2001, 0, 1, 12, 0, 0, 0); // January 1st, 2001 at noon + vi.setSystemTime(mockDate); + }); + + afterEach(() => { + // Restore the original system time after each test + vi.useRealTimers(); + }); + test("Slot.fromSlotNumber", () => { const mySlot: Slot = Slot.fromSlotNumber(42); expect(mySlot.slot).toBe(42); From 67e449b50706000d913a8559a8a778c492e46e9d Mon Sep 17 00:00:00 2001 From: Diego Temkin <65834932+dtemkin1@users.noreply.github.com> Date: Thu, 19 Feb 2026 23:57:16 -0500 Subject: [PATCH 06/28] improve styles --- src/components/Calendar.css | 37 ------------ src/components/Calendar.module.css | 92 ++++++++++++++++++++++++++++++ src/components/Calendar.tsx | 13 +++-- 3 files changed, 99 insertions(+), 43 deletions(-) delete mode 100644 src/components/Calendar.css create mode 100644 src/components/Calendar.module.css diff --git a/src/components/Calendar.css b/src/components/Calendar.css deleted file mode 100644 index 09ab1e49..00000000 --- a/src/components/Calendar.css +++ /dev/null @@ -1,37 +0,0 @@ -/* -NOTE: button/toolbar UI is not defined here -*/ - -:root { - /* primary */ - --fc-classic-primary: #3788d8; - --fc-classic-primary-foreground: #fff; - - /* calendar content */ - --fc-classic-event: var(--fc-classic-primary); - --fc-classic-event-contrast: var(--fc-classic-primary-foreground); - --fc-classic-background-event: #22c55e; - --fc-classic-highlight: #cffafe66; - --fc-classic-today: #facc1526; - --fc-classic-now: #ef4444; - - /* neutral backgrounds */ - --fc-classic-background: var(--chakra-colors-bg); - --fc-classic-faint: var(--chakra-colors-bg-subtle); - --fc-classic-muted: var(--chakra-colors-bg-muted); - --fc-classic-strong: var(--chakra-colors-bg-emphasized); - - /* neutral foregrounds */ - --fc-classic-faint-foreground: var(--chakra-colors-fg-subtle); - --fc-classic-muted-foreground: var(--chakra-colors-fg-muted); - - /* neutral borders */ - --fc-classic-border: var(--chakra-colors-border); - --fc-classic-strong-border: var(--chakra-colors-border-emphasized); -} - -.dark { - /* calendar content */ - --fc-classic-highlight: #3b82f633; - --fc-classic-today: #fef08a1A; -} diff --git a/src/components/Calendar.module.css b/src/components/Calendar.module.css new file mode 100644 index 00000000..abb74a31 --- /dev/null +++ b/src/components/Calendar.module.css @@ -0,0 +1,92 @@ + +:global(:root) { + /* primary */ + --fc-monarch-primary: rgb(65 95 145); + --fc-monarch-primary-foreground: rgb(255 255 255); + --fc-monarch-primary-over: color-mix(in oklab, var(--fc-monarch-primary) 90%, white); + --fc-monarch-primary-down: color-mix(in oklab, var(--fc-monarch-primary) 80%, white); + + /* secondary */ + --fc-monarch-secondary: rgb(214 227 255); + --fc-monarch-secondary-foreground: rgb(40 71 119); + --fc-monarch-secondary-over: color-mix(in oklab, var(--fc-monarch-secondary) 95%, var(--fc-monarch-foreground)); + --fc-monarch-secondary-down: color-mix(in oklab, var(--fc-monarch-secondary) 90%, var(--fc-monarch-foreground)); + + /* tertiary */ + --fc-monarch-tertiary: rgb(112 85 117); + --fc-monarch-tertiary-foreground: rgb(255 255 255); + --fc-monarch-tertiary-over: color-mix(in oklab, var(--fc-monarch-tertiary) 90%, white); + --fc-monarch-tertiary-down: color-mix(in oklab, var(--fc-monarch-tertiary) 80%, white); + + /* calendar content */ + --fc-monarch-event: var(--fc-monarch-primary); + --fc-monarch-event-contrast: var(--fc-monarch-primary-foreground); + --fc-monarch-highlight: color-mix(in oklab, var(--fc-monarch-secondary) 30%, transparent); + --fc-monarch-now: rgb(186 26 26); + + /* controls */ + --fc-monarch-selected: rgb(86 95 113); + --fc-monarch-selected-foreground: rgb(255 255 255); + --fc-monarch-selected-over: color-mix(in oklab, var(--fc-monarch-selected) 90%, white); + --fc-monarch-selected-down: color-mix(in oklab, var(--fc-monarch-selected) 80%, white); + --fc-monarch-outline: red; + + /* popover */ + --fc-monarch-popover: var(--fc-monarch-background); + + /* neutral backgrounds */ + --fc-monarch-background: var(--chakra-colors-bg); + --fc-monarch-faint: var(--chakra-colors-bg-subtle); + --fc-monarch-muted: var(--chakra-colors-bg-muted); + --fc-monarch-strong: var(--chakra-colors-bg-emphasized); + --fc-monarch-stronger: var(--chakra-colors-bg-solid); + --fc-monarch-strongest: var(--chakra-colors-bg-focus-ring); + + /* neutral foregrounds */ + --fc-monarch-foreground: var(--chakra-colors-fg); + --fc-monarch-faint-foreground: var(--chakra-colors-fg-subtle); + --fc-monarch-muted-foreground: var(--chakra-colors-fg-muted); + + /* neutral borders */ + --fc-monarch-border: var(--chakra-colors-border); + --fc-monarch-strong-border: var(--chakra-colors-border-emphasized); +} + +:global(.dark) { + /* primary */ + --fc-monarch-primary: rgb(170 199 255); + --fc-monarch-primary-foreground: rgb(10 48 95); + + /* secondary */ + --fc-monarch-secondary: rgb(40 71 119); + --fc-monarch-secondary-foreground: rgb(214 227 255); + + /* tertiary */ + --fc-monarch-tertiary: rgb(221 188 224); + --fc-monarch-tertiary-foreground: rgb(63 40 68); + + /* calendar content */ + --fc-monarch-now: rgb(255 180 171); + + /* controls */ + --fc-monarch-selected: rgb(190 198 220); + --fc-monarch-selected-foreground: rgb(40 49 65); + --fc-monarch-outline: red; + + /* popover */ + --fc-monarch-popover: rgb(17 19 24); + --fc-monarch-popover-foreground: rgb(226 226 233); +} + +.fc-slot-header-inner { + line-height: 0.4rem; + padding-block: 0.1rem; + padding-block-start: 1rem; + opacity: 0.7; + font-size: 0.75rem; +} + +.fc-day-header-inner { + font-size: 0.8rem; + letter-spacing: 0.05rem; +} diff --git a/src/components/Calendar.tsx b/src/components/Calendar.tsx index 62cf7fc3..2802f107 100644 --- a/src/components/Calendar.tsx +++ b/src/components/Calendar.tsx @@ -7,7 +7,7 @@ import FullCalendar, { type EventDisplayData, type EventApi, } from "@fullcalendar/react"; -import themePlugin from "@fullcalendar/react/themes/classic"; +import themePlugin from "@fullcalendar/react/themes/monarch"; import timeGridPlugin from "@fullcalendar/react/timegrid"; import interactionPlugin from "@fullcalendar/react/interaction"; @@ -16,9 +16,9 @@ import { CustomActivity, Timeslot } from "../lib/activity"; import { Slot } from "../lib/dates"; import { HydrantContext } from "../lib/hydrant"; -import "./Calendar.css"; import "@fullcalendar/react/skeleton.css"; -import "@fullcalendar/react/themes/classic/theme.css"; +import "@fullcalendar/react/themes/monarch/theme.css"; +import styles from "./Calendar.module.css"; // Threshold at which to display a distance warning, in feet (650 meters) const DISTANCE_WARNING_THRESHOLD = 2112; @@ -181,6 +181,7 @@ export function Calendar() { return ( { - return text.toLocaleUpperCase(); - }} + slotHeaderInnerClass={styles["fc-slot-header-inner"]} + dayHeaderContent={({ text }) => text.toLocaleUpperCase()} + dayHeaderInnerClass={styles["fc-day-header-inner"]} slotMinTime={ events.some((e) => new Date(e.start).getHours() < 8) ? Temporal.Duration.from({ hours: 6 }) From 291ec335dd42a7bd387270fce760a16ce53c9f4c Mon Sep 17 00:00:00 2001 From: Diego Temkin <65834932+dtemkin1@users.noreply.github.com> Date: Thu, 19 Feb 2026 23:57:44 -0500 Subject: [PATCH 07/28] eslint --- src/components/Calendar.module.css | 55 ++++++++++++++++++++++++------ 1 file changed, 45 insertions(+), 10 deletions(-) diff --git a/src/components/Calendar.module.css b/src/components/Calendar.module.css index abb74a31..a7db5eaf 100644 --- a/src/components/Calendar.module.css +++ b/src/components/Calendar.module.css @@ -1,34 +1,69 @@ - :global(:root) { /* primary */ --fc-monarch-primary: rgb(65 95 145); --fc-monarch-primary-foreground: rgb(255 255 255); - --fc-monarch-primary-over: color-mix(in oklab, var(--fc-monarch-primary) 90%, white); - --fc-monarch-primary-down: color-mix(in oklab, var(--fc-monarch-primary) 80%, white); + --fc-monarch-primary-over: color-mix( + in oklab, + var(--fc-monarch-primary) 90%, + white + ); + --fc-monarch-primary-down: color-mix( + in oklab, + var(--fc-monarch-primary) 80%, + white + ); /* secondary */ --fc-monarch-secondary: rgb(214 227 255); --fc-monarch-secondary-foreground: rgb(40 71 119); - --fc-monarch-secondary-over: color-mix(in oklab, var(--fc-monarch-secondary) 95%, var(--fc-monarch-foreground)); - --fc-monarch-secondary-down: color-mix(in oklab, var(--fc-monarch-secondary) 90%, var(--fc-monarch-foreground)); + --fc-monarch-secondary-over: color-mix( + in oklab, + var(--fc-monarch-secondary) 95%, + var(--fc-monarch-foreground) + ); + --fc-monarch-secondary-down: color-mix( + in oklab, + var(--fc-monarch-secondary) 90%, + var(--fc-monarch-foreground) + ); /* tertiary */ --fc-monarch-tertiary: rgb(112 85 117); --fc-monarch-tertiary-foreground: rgb(255 255 255); - --fc-monarch-tertiary-over: color-mix(in oklab, var(--fc-monarch-tertiary) 90%, white); - --fc-monarch-tertiary-down: color-mix(in oklab, var(--fc-monarch-tertiary) 80%, white); + --fc-monarch-tertiary-over: color-mix( + in oklab, + var(--fc-monarch-tertiary) 90%, + white + ); + --fc-monarch-tertiary-down: color-mix( + in oklab, + var(--fc-monarch-tertiary) 80%, + white + ); /* calendar content */ --fc-monarch-event: var(--fc-monarch-primary); --fc-monarch-event-contrast: var(--fc-monarch-primary-foreground); - --fc-monarch-highlight: color-mix(in oklab, var(--fc-monarch-secondary) 30%, transparent); + --fc-monarch-highlight: color-mix( + in oklab, + var(--fc-monarch-secondary) 30%, + transparent + ); --fc-monarch-now: rgb(186 26 26); /* controls */ --fc-monarch-selected: rgb(86 95 113); --fc-monarch-selected-foreground: rgb(255 255 255); - --fc-monarch-selected-over: color-mix(in oklab, var(--fc-monarch-selected) 90%, white); - --fc-monarch-selected-down: color-mix(in oklab, var(--fc-monarch-selected) 80%, white); + --fc-monarch-selected-over: color-mix( + in oklab, + var(--fc-monarch-selected) 90%, + white + ); + --fc-monarch-selected-down: color-mix( + in oklab, + var(--fc-monarch-selected) 80%, + white + ); --fc-monarch-outline: red; /* popover */ From fb0b780423d8aefbf81196eabf5a9c434f74ffc8 Mon Sep 17 00:00:00 2001 From: Diego Temkin <65834932+dtemkin1@users.noreply.github.com> Date: Fri, 20 Feb 2026 00:45:21 -0500 Subject: [PATCH 08/28] use classes available --- src/components/Calendar.module.css | 9 ++++ src/components/Calendar.tsx | 86 +++++++++++++++--------------- 2 files changed, 53 insertions(+), 42 deletions(-) diff --git a/src/components/Calendar.module.css b/src/components/Calendar.module.css index a7db5eaf..9dc1790d 100644 --- a/src/components/Calendar.module.css +++ b/src/components/Calendar.module.css @@ -125,3 +125,12 @@ font-size: 0.8rem; letter-spacing: 0.05rem; } + +.fc-event { + cursor: pointer; +} + +.fc-event-inner { + flex-direction: column; + align-items: flex-start; +} diff --git a/src/components/Calendar.tsx b/src/components/Calendar.tsx index 2802f107..e8a32b2e 100644 --- a/src/components/Calendar.tsx +++ b/src/components/Calendar.tsx @@ -1,6 +1,6 @@ import { useContext, useMemo } from "react"; -import { Box, Circle, Float, Text } from "@chakra-ui/react"; +import { Circle, Float, Text } from "@chakra-ui/react"; import { Tooltip } from "./ui/tooltip"; import FullCalendar, { @@ -105,59 +105,58 @@ export function Calendar() { return undefined; }; - const renderEvent = ({ event, contrastColor }: EventDisplayData) => { + const renderEvent = ({ + event, + titleClass, + timeClass, + isNarrow, + }: EventDisplayData) => { + const room = event.extendedProps.room as string | undefined; + const activity = event.extendedProps.activity as Activity; + const distanceWarning = getDistanceWarning(event); + const TitleText = () => ( {event.title} ); - const room = event.extendedProps.room as string | undefined; - const activity = event.extendedProps.activity as Activity; - const distanceWarning = getDistanceWarning(event); + const RoomText = () => ( + + {room} + + ); return ( <> - - {!(activity instanceof CustomActivity) ? ( - - {TitleText()} - - ) : ( - - )} - {event.extendedProps.roomClarification ? ( - - {room} - - ) : ( - {room} - )} - + {!(activity instanceof CustomActivity) ? ( + + {TitleText()} + + ) : ( + + )} + {event.extendedProps.roomClarification ? ( + + {RoomText()} + + ) : ( + + )} {distanceWarning ? ( - + ! @@ -187,6 +187,8 @@ export function Calendar() { dayHeaderFormat={{ weekday: "short" }} editable={false} events={events} + eventClass={styles["fc-event"]} + eventInnerClass={styles["fc-event-inner"]} eventContent={renderEvent} eventClick={(e) => { // extendedProps: non-standard props of {@link Event.eventInputs} From a7f0448afa691c0daf18cf3d93934da21b7a4782 Mon Sep 17 00:00:00 2001 From: Diego Temkin <65834932+dtemkin1@users.noreply.github.com> Date: Fri, 20 Feb 2026 01:10:43 -0500 Subject: [PATCH 09/28] improve css --- src/components/Calendar.module.css | 5 +++-- src/components/SelectedActivities.tsx | 9 ++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/components/Calendar.module.css b/src/components/Calendar.module.css index 9dc1790d..249e79cd 100644 --- a/src/components/Calendar.module.css +++ b/src/components/Calendar.module.css @@ -83,8 +83,8 @@ --fc-monarch-muted-foreground: var(--chakra-colors-fg-muted); /* neutral borders */ - --fc-monarch-border: var(--chakra-colors-border); - --fc-monarch-strong-border: var(--chakra-colors-border-emphasized); + --fc-monarch-border: var(--chakra-colors-border-emphasized); + --fc-monarch-strong-border: var(--chakra-colors-border-inverted); } :global(.dark) { @@ -133,4 +133,5 @@ .fc-event-inner { flex-direction: column; align-items: flex-start; + overflow: hidden; } diff --git a/src/components/SelectedActivities.tsx b/src/components/SelectedActivities.tsx index d64334c7..1a5ff4fd 100644 --- a/src/components/SelectedActivities.tsx +++ b/src/components/SelectedActivities.tsx @@ -12,12 +12,19 @@ export function ColorButton( props: ComponentPropsWithoutRef<"button"> & { color: string }, ) { const { children, color, style, ...otherProps } = props; + const contractColor = textColor(color); return (