diff --git a/airflow/ui/package.json b/airflow/ui/package.json index 390b575c45d4..b17e35b31409 100644 --- a/airflow/ui/package.json +++ b/airflow/ui/package.json @@ -17,18 +17,20 @@ }, "dependencies": { "@chakra-ui/anatomy": "^2.2.2", - "@chakra-ui/react": "^3.0.2", + "@chakra-ui/react": "^3.1.1", "@codemirror/lang-json": "^6.0.1", "@emotion/react": "^11.13.3", "@tanstack/react-query": "^5.52.1", "@tanstack/react-table": "^8.20.1", - "@uiw/react-codemirror": "^4.23.5", "@uiw/codemirror-themes-all": "^4.23.5", + "@uiw/react-codemirror": "^4.23.5", "axios": "^1.7.7", "chakra-react-select": "6.0.0-next.2", + "chart.js": "^4.4.6", "dayjs": "^1.11.13", "next-themes": "^0.3.0", "react": "^18.3.1", + "react-chartjs-2": "^5.2.0", "react-dom": "^18.3.1", "react-hook-form": "^7.20.0", "react-icons": "^5.3.0", diff --git a/airflow/ui/pnpm-lock.yaml b/airflow/ui/pnpm-lock.yaml index dcbb72a466f3..600e74c5b489 100644 --- a/airflow/ui/pnpm-lock.yaml +++ b/airflow/ui/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: ^2.2.2 version: 2.2.2 '@chakra-ui/react': - specifier: ^3.0.2 - version: 3.0.2(@emotion/react@11.13.3(@types/react@18.3.5)(react@18.3.1))(@internationalized/date@3.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^3.1.1 + version: 3.1.1(@emotion/react@11.13.3(@types/react@18.3.5)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@codemirror/lang-json': specifier: ^6.0.1 version: 6.0.1 @@ -37,7 +37,10 @@ importers: version: 1.7.7 chakra-react-select: specifier: 6.0.0-next.2 - version: 6.0.0-next.2(@chakra-ui/react@3.0.2(@emotion/react@11.13.3(@types/react@18.3.5)(react@18.3.1))(@internationalized/date@3.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.5)(next-themes@0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.0.0-next.2(@chakra-ui/react@3.1.1(@emotion/react@11.13.3(@types/react@18.3.5)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.5)(next-themes@0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + chart.js: + specifier: ^4.4.6 + version: 4.4.6 dayjs: specifier: ^1.11.13 version: 1.11.13 @@ -47,6 +50,9 @@ importers: react: specifier: ^18.3.1 version: 18.3.1 + react-chartjs-2: + specifier: ^5.2.0 + version: 5.2.0(chart.js@4.4.6)(react@18.3.1) react-dom: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) @@ -183,9 +189,6 @@ packages: resolution: {integrity: sha512-9K6xOqeevacvweLGik6LnZCb1fBtCOSIWQs8d096XGeqoLKC33UVMGz9+77Gw44KvbH4pKcQPWo4ZpxkXYj05w==} engines: {node: '>= 16'} - '@ark-ui/anatomy@3.5.0': - resolution: {integrity: sha512-KoROLVVT23BvFHcye/GYhG8NJ2CH0C+CaoJhXrkEjvk8pbEx80Xk5NIUy5gL7xmX+LDD7kY5t3NotBqCu+2L2w==} - '@ark-ui/react@4.1.2': resolution: {integrity: sha512-7Y8NToONNbfDngQh15GNzn4i4RLJTRRmXm9tXB09a1nKbuYICbxFcX+5IgdhvRudoIFR9r2sCbeEy69I6T13gg==} peerDependencies: @@ -292,8 +295,8 @@ packages: '@chakra-ui/anatomy@2.2.2': resolution: {integrity: sha512-MV6D4VLRIHr4PkW4zMyqfrNS1mPlCTiCXwvYGtDFQYr+xHFfonhAuf9WjsSc0nyp2m0OdkSLnzmVKkZFLo25Tg==} - '@chakra-ui/react@3.0.2': - resolution: {integrity: sha512-xfW0tGCLJSvNkMFrz4zyjvImugwVb4gYvsGOT9hISMhDvh20ciS3WEI8S+jia4ytkl5yI4H0KPyuMjQt/gM69Q==} + '@chakra-ui/react@3.1.1': + resolution: {integrity: sha512-n7sDBwr99nUNJiLYy6WOIXZr5Sn9W5myo982MGuo5GieFxrP40uH8VyXbq9XaQk+KiZiF4PleQd4R/7yG597RA==} peerDependencies: '@emotion/react': '>=11' react: '>=18' @@ -559,9 +562,6 @@ packages: '@floating-ui/dom@1.6.11': resolution: {integrity: sha512-qkMCxSR24v2vGkhYDo/UzxfJN3D4syqSjyuTFz6C7XcpU1pASPRieNI0Kj5VP3/503mOfYiGY891ugBX1GlABQ==} - '@floating-ui/dom@1.6.8': - resolution: {integrity: sha512-kx62rP19VZ767Q653wsP1XZCGIirkE09E0QUGNYTM/ttbbQHqcGPdSfWFxUyyNLc/W6aoJRBajOSXhP6GXjC0Q==} - '@floating-ui/utils@0.2.7': resolution: {integrity: sha512-X8R8Oj771YRl/w+c1HqAC1szL8zWQRwFvgDwT129k9ACdBoud/+/rX9V0qiMl6LWUdP9voC2nDVZYPMQQsb6eA==} @@ -583,9 +583,6 @@ packages: resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} engines: {node: '>=18.18'} - '@internationalized/date@3.5.5': - resolution: {integrity: sha512-H+CfYvOZ0LTJeeLOqm19E3uj/4YjrmOFtBufDHPfvtI80hFAMqtrp7oCACpe4Cil5l8S0Qu/9dYfZc/5lY8WQQ==} - '@internationalized/date@3.5.6': resolution: {integrity: sha512-jLxQjefH9VI5P9UQuqB6qNKnvFt1Ky1TPIzHGsIlCi7sZZoMR8SdYbBGRvM0y+Jtb+ez4ieBzmiAUcpmPYpyOw==} @@ -621,6 +618,9 @@ packages: '@jsdevtools/ono@7.1.3': resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} + '@kurkle/color@0.3.2': + resolution: {integrity: sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==} + '@lezer/common@1.2.3': resolution: {integrity: sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==} @@ -1187,273 +1187,142 @@ packages: '@vitest/utils@2.1.1': resolution: {integrity: sha512-Y6Q9TsI+qJ2CC0ZKj6VBb+T8UPz593N113nnUykqwANqhgf3QkZeHFlusgKLTqrnVHbj/XDKZcDHol+dxVT+rQ==} - '@zag-js/accordion@0.62.1': - resolution: {integrity: sha512-1lMKuD1GbiMuemOHOu+24BSAAG8iTD6l/4zYrQRBCTsxXzHhWqTtLF7okGgmSAs8iyNfOuWefCfaJJ3BJNSh5A==} - '@zag-js/accordion@0.74.2': resolution: {integrity: sha512-0E6LpQgmcbDe12akh2sKYVvk+fwxVUwjVdclj8ntzlkAYy8PNTTbd9kfNB6rX9+lJUXk/Iqb5+Qgy9RjWplnNw==} - '@zag-js/anatomy@0.62.1': - resolution: {integrity: sha512-1JiPQOyVlO1jHwLTSNJpyfy1R1UYoaVU1mKSUww5+htAuT/1txjs04pr+8vTF/L/UVzNEZZYepB1tTabyb9LYg==} - '@zag-js/anatomy@0.74.2': resolution: {integrity: sha512-wIJQGBiSHYB94UA7k7o4a8xbyqDwIQ0dG52xcD7+eV1ypT+dP+BtxQKmS5w06aghNdHs8b4F2hVLDVSdyLqRkQ==} - '@zag-js/aria-hidden@0.62.1': - resolution: {integrity: sha512-vVV8bwZhNU+AOOf/USEGV/n9zuTID+spHeC9ZAj29ibWAMmaiq2bx4t1kO4v9eKqKXULUBPPrZQ7CX7oiU616A==} - '@zag-js/aria-hidden@0.74.2': resolution: {integrity: sha512-F4dkdLZ3Qeu6Er9rwl8IWEAdhAjcOTRKsE1Otoi0SKjcQKlQfLTPutVDVaZQxz1ZNXNlyq3YUgFE+EiwMV7jxA==} - '@zag-js/auto-resize@0.62.1': - resolution: {integrity: sha512-nznVkAsZGS+L+VhNO8hPnEyvagNhTezkb64SSPa8E49hJHS2DEN3T5hKCx86tDuiCMd0EdjwUCCQq3pnbzbnCQ==} - '@zag-js/auto-resize@0.74.2': resolution: {integrity: sha512-h7gR3LCcxgURg/Xz4IoI4ccN/A+u63zNT8HoXjBWezy050YsItj20q2Yelm6ADT9qcbC+a6W83j4C43ejy5Q5w==} - '@zag-js/avatar@0.62.1': - resolution: {integrity: sha512-J+IRqJlpL4S9ikCQle/FHj6p8uT8Ee/D88u4k7m/An4Ot1FcrfKqfC3INB5YOI+d8hkIQVtEIAC8Yt/s4OzAMg==} - '@zag-js/avatar@0.74.2': resolution: {integrity: sha512-Ctk/r+rbA0ZvdORRKyLMvtxxulda5m0moa5NtT2TuZe3WlTmJRYBMlSQzXwfOAXCjQlLp+zkeyyriP441sm9OQ==} - '@zag-js/carousel@0.62.1': - resolution: {integrity: sha512-0YQ2jJjzaS1zFLVnPBslVKI8/fY2Z6aOrcJbBjxozG27iSS6zEqmbsz3OOtcYJRlB8jLboZutpMBs3PGh5zg5Q==} - '@zag-js/carousel@0.74.2': resolution: {integrity: sha512-EAM3hHXlC5HNcT7D2IaX7p4aOaXLaLYkSCJcMqqo9H3CxVWa7Kfw00yTG1Z0HcRNKiPYTBF/W9fqtHwfpa5s+w==} - '@zag-js/checkbox@0.62.1': - resolution: {integrity: sha512-xiubQLhRXedlZe4Vc6zxaDFWLSpRdGEG0jTrF3OXovYZLN7bmq0iXiYcWqsLa012+2dYN9w5B1zfQQlzf4sk2w==} - '@zag-js/checkbox@0.74.2': resolution: {integrity: sha512-bmF1I179fhEvEXBJU5yzHi+W2Oett0PUVUw2GFFzfIn6w0AgZKNIr8+NLtEWR0Wn0UELXNhLnBSqZC3j2jZHlA==} - '@zag-js/clipboard@0.62.1': - resolution: {integrity: sha512-gEhCGLkAlrgNWkd7ZqF4p4yNKsR54+0YQPevEv7iX9oio8T/F8OWaDmDjA4NsXxqRe6hr5KLJbVp8dYRop30TQ==} - '@zag-js/clipboard@0.74.2': resolution: {integrity: sha512-0D7sIBilV+KTMwArmfa73uJUtDbAqHH3g5o3RFJ+RYpAIYQTINGLw13tsmUK7xQ8gd6M8ARAcAv1khZdwO4ykA==} - '@zag-js/collapsible@0.62.1': - resolution: {integrity: sha512-M4hsuqf6dVra6RvKaxQjgQjZ+iYj3XH84w6QOnt/SXbJauQoE6nfy77RI/A8O2pPuP6uLq0h2E9Eo3ftcbGBoQ==} - '@zag-js/collapsible@0.74.2': resolution: {integrity: sha512-wZI57xWU2tlcJDPlQBUyBxg39PUkY12H6MKcf/+1KBOpJiWc87+4HDBCVSt31diUAhJwcbNsYFwJg3BA4vTw7Q==} - '@zag-js/collection@0.62.1': - resolution: {integrity: sha512-Qg3OvGCvcoeV4u8IcQmNCu4dChRttVyQ9DF8Ab0qlyrjRDF+w8vMAcNcgNqn10/xX4A7B743cz023LooVsW6VA==} - '@zag-js/collection@0.74.2': resolution: {integrity: sha512-8Ls5TR1kKPLDucuJJ0kuwJ45jOEzhcVN4T/mbkShUrgRSB4FrcNzwdpMrKqidNz8OrtphgYYcn3xx/gGUIHLRQ==} - '@zag-js/color-picker@0.62.1': - resolution: {integrity: sha512-GLeADGcoMLcVS+UM6rn/c1BmBgSB2uTc5AWBkuKoH7TktsKo6+T/v3/QZIU7/b69qBAp3/vWZti99Flw42IDdw==} - '@zag-js/color-picker@0.74.2': resolution: {integrity: sha512-l5YAxXjSNWT++gCBLkP/qKwdHpNSxZYGdLU5f1fNupFSSZgZlNTz99ArxsypqFrJKTVvPjDSoOhjG4BeKHAAdg==} - '@zag-js/color-utils@0.62.1': - resolution: {integrity: sha512-uXsEA0xsI4NT7YFwWZldy7LXsk32Ta+41MrckhzbSA766v+bW4sFDUYmJxwLkN4nl1QzlLAlGghhauXmW9Fs8g==} - '@zag-js/color-utils@0.74.2': resolution: {integrity: sha512-yoavZXIGuVXi/QCO89hBu9Ni0xH7o8ZcDFX/CIjr3S9sI3fjNak9efkfPFx0Ooo9x0Fvz8mpu+DPB2uk7voXDA==} - '@zag-js/combobox@0.62.1': - resolution: {integrity: sha512-EovqyFqD61YmYJYc42qKH2OE7GxMm3gamWLU/lvZe/3eyZt6TsxFe2xeP7WSsvq2v90myMajAnUb0DOpvYaCKw==} - '@zag-js/combobox@0.74.2': resolution: {integrity: sha512-NqG2R01NjZz5a3hGYI0Ok7MNM7OkMlYlTI5fJXDgkkhgXi5Mk87R4+AQNjP7xzSEI35rSlVIJt4ecW59cklHng==} - '@zag-js/core@0.62.1': - resolution: {integrity: sha512-ZSjqnV5vcGDassjmZ/lxWbG244A0i+IHImVZ/a4/0JkjkH126ly+At4FC+HI571pNKiNlrqYmGzRRSBMqm37yQ==} - '@zag-js/core@0.74.2': resolution: {integrity: sha512-UAnj9WJdFYeTxbwSCdX8zRYhtLvlJqfqy9cn2NEugpxf+9W/GA89JzH1ZdKLyVJUIuIPoqGd4ZaAgv2p64DZ1Q==} - '@zag-js/date-picker@0.62.1': - resolution: {integrity: sha512-Wl6yzMtrTy7XgDFbYJaRO8M5dkxLPBvAo3ilDvFBicbJViJCZ9pg1AJYh+xGaK/gfAd7O9wBdYJdHxfESlmlDg==} - '@zag-js/date-picker@0.74.2': resolution: {integrity: sha512-iIVQLEAV1FKM+aB7v7Xk5o4w95vdmJhe3aTYDxc6Xo+Fw4tsdUmg/UtQ1ScPzbagBo8Cut2krvkG/8SrlCRMyw==} peerDependencies: '@internationalized/date': '>=3.0.0' - '@zag-js/date-utils@0.62.1': - resolution: {integrity: sha512-YBqT5YRtHOCDS2IcCZtrq7BfzBkU5c+Sc2pVTncf06/3jxjE6l6YbBncMPu5a3uWKjNld1wOTFszhSoPKZfrJA==} - peerDependencies: - '@internationalized/date': '>=3.0.0' - '@zag-js/date-utils@0.74.2': resolution: {integrity: sha512-Pb7FggFOTzCTyo+ap4uuA6vBFrYDSoqW/sMI6kwuOBWL3IjFKfmmSVaem6MYycycWN8d7on4IOp0muWCcJaDUQ==} peerDependencies: '@internationalized/date': '>=3.0.0' - '@zag-js/dialog@0.62.1': - resolution: {integrity: sha512-7YRvWZ9UMUjFz0q537/uaTMBljLimWISfVHkUSa2ngbXB8LPYYbqYv5Vio2rvRFqy3nJR3HTO4cGZJGDjO655g==} - '@zag-js/dialog@0.74.2': resolution: {integrity: sha512-2kYqFSqpa1SShS2Z8cVqtoOML3uiwIUOZxNVKIea3ItdlMTqHJI+X/NudFvgpUvVj4NMLbUhwIgC+jN2SWDL7g==} - '@zag-js/dismissable@0.62.1': - resolution: {integrity: sha512-muGTBISpjQEWLCrsYa9wAFaGXlVxYtyMaDgpcPpQdQPwZF86b445y4d8h9FjwkESdJ6Zcdjn21pu5CWD28T3uQ==} - '@zag-js/dismissable@0.74.2': resolution: {integrity: sha512-Wl6n1lW1eTKKu5Kg+6jum9nZDXYGA86XL24Rip2aOScrAo2UGCA+nSIgg7GGO5qGs52iawITba38tAe6maZQLw==} - '@zag-js/dom-event@0.62.1': - resolution: {integrity: sha512-/+okVW69Xdoot7dutJVMz0iciwWM6DvAeLWr7LB5DZsUQMu93oqV/8BE2JArDxEcg5C208HNThGStcWlTaddgA==} - '@zag-js/dom-event@0.74.2': resolution: {integrity: sha512-duuwxowflkY7UUI+1vHr9ttzqn2JtJ+mgAS0cBeNmqtvK6XrNaHSrm0B4u4R/KIJ73Tx8TZGbmgN9Vwj/U2FrA==} - '@zag-js/dom-query@0.62.1': - resolution: {integrity: sha512-sI/urNd3QX/WI7Sii+X1Z/OTWNisn7EaW3T0X9Rbn41u79DC4KeUnP+wpIq1igSJNH2zQWIWBLJ1OGhAjuSl5g==} - '@zag-js/dom-query@0.74.2': resolution: {integrity: sha512-g+7wIdhT1nlY5yhQWoMDzin8uYoBXeQk8TNUj3GZH/1dTX9YC0vs7vz7rotzunLkEA7nEGfLNzdO5CRQBhGp0w==} - '@zag-js/editable@0.62.1': - resolution: {integrity: sha512-BkPLV8T9ixdhz3IxvseV24a1pBNmYhR1np+JUKap0C8thtFbDoF361haEQjCqTCfHDv+j5l1rtq/+H/TF3eEIg==} - '@zag-js/editable@0.74.2': resolution: {integrity: sha512-SXSaAmaqvhFPJmX25tz487skF+GTIGAmp0Y6iHqDUsUh0qDncUPOr90M+kFtud/6YUPFkzEpKQtmeczJR0LURw==} - '@zag-js/element-rect@0.62.1': - resolution: {integrity: sha512-SefRp1IeiENoUkl7yxGzUIdxtQqgKlI+G1qlgx9MZgchH2VZCpqi+EuZgLEKzz7REMabOYqbgs6EEIxGIyNueg==} - '@zag-js/element-rect@0.74.2': resolution: {integrity: sha512-FK+bQ4nhdcR52868uE0rlmmq4+un5P++WDoe6S4Aldrx7FJS2XTtWMBdx09zBe48DvUYjGM4o3RbuxbCQoD0BQ==} - '@zag-js/element-size@0.62.1': - resolution: {integrity: sha512-QCtVeIJ611hJPorKEkdfrWWcMohadplZoW8xQW/2PLSmKUhTNLfHsZLyeoYKyj5Jk4X8OAN4onnMVETFw232EA==} - '@zag-js/element-size@0.74.2': resolution: {integrity: sha512-mqw0PLdPs17zrolZBlsYby5kUfo8+QpaU/HAVQavnHQZwNiX4CRBvG1YeqSP699Mvh6QDKc0JhchwAfh+eGGnA==} - '@zag-js/file-upload@0.62.1': - resolution: {integrity: sha512-Wh33acYMJLNRIV2y0GdSZqoN3aX/t/uzIBWh3rVsN7tpjDYWXLYIsXQttkGLFf0sgICK+3PVD+LLaIpiGDh4+Q==} - '@zag-js/file-upload@0.74.2': resolution: {integrity: sha512-VVko5ojAoRQsalsaQxGwTt5ONcYaHuw6yFL/HqPKNzGyyG8zPBl0nRGMSZQprTyUSMDtsxNp8ydL1cbauDqU3Q==} - '@zag-js/file-utils@0.62.1': - resolution: {integrity: sha512-p363S2pqz29wf1shcSfoY2GI9wWrJkKamNiwuehqoYFh2b8isrcWFVL3VYxm937N1/m5+rtMATQbn0a9j9sggA==} - '@zag-js/file-utils@0.74.2': resolution: {integrity: sha512-pTyU33Ag7533X3/RCBvfbGBHFMncg5x2/3n1htSxEVLIIHxbRvvDab2IN550n3OIjMzBLfM4xjNu1R87ed2hlQ==} '@zag-js/focus-visible@0.74.2': resolution: {integrity: sha512-CO5x3uCGKgigQ91S3c3vy/KEKyXK+eTveIzprFTxlQs4Zu2qMe/nJCIhIkG54fhvW/a5F9wY7Ox1f8hGZ1Z1fA==} - '@zag-js/form-utils@0.62.1': - resolution: {integrity: sha512-GJWRRtEpro8TNEUuEWMhIOWmVFXqiHNTTrrRLxijxUIWbsPrPdPiKL7qwBAESYoZQCmN0hU99S0w2Xmm7Q05Zg==} - '@zag-js/form-utils@0.74.2': resolution: {integrity: sha512-LPaZfDhQmhyL4fMMKm4gZGUg6vwcSzaHOVlQHdAR8yoSqvO4yXEdxr2xz4civNNknD0crST2erfexGHEY6Oa/Q==} '@zag-js/highlight-word@0.74.2': resolution: {integrity: sha512-zuy2E62F/w3G94kh4l3iEAtNxqwuAdNkMwcS8EhT6mnzNcf4BgzW7Ne+O1fRb4IGazZwHPaWC0rYdTUuErK9IA==} - '@zag-js/hover-card@0.62.1': - resolution: {integrity: sha512-ryiNHQmmHpiDiZ5nuk9nvGUgnT017q8hYf+wLSI5OJ+klHPjrHObb7I7v/fUmKzWNtIOhaL0uw9afzjRt3bLEw==} - '@zag-js/hover-card@0.74.2': resolution: {integrity: sha512-Li1lrePYcTC2UqAP/oOLcK4syyBomTmAp06CJukSXpGcYe6qUD4CqhLva0qYjvZ6SKaB9Y3BryD9RTjFvZOuZA==} - '@zag-js/i18n-utils@0.62.1': - resolution: {integrity: sha512-ipzx0W6VK5x+w/PnUrN8z5SULJuLqvdzsPVBJ2iGHrMcTPC/y9JDt82nJV9fUYmG898pOZUx7vysfLLPNEAFTQ==} - '@zag-js/i18n-utils@0.74.2': resolution: {integrity: sha512-S+ZJ3OFUtCoUdKkDfiF3sgXr+98rhVV+BmHgfAiEYRQA7RjeHDB3jX+eBbeZTLFqvHGtaGWCRE3knto3Ed7YvQ==} - '@zag-js/interact-outside@0.62.1': - resolution: {integrity: sha512-V5N+kr2Uv97HWYL0U5ZVS//NMQu87XGLtI7Ae5EtHrdAEKxO2NpPwf50Gzza4zc1VEVYYFqobTlkNQ3hrrL6VQ==} - '@zag-js/interact-outside@0.74.2': resolution: {integrity: sha512-58ilkSC2UQw9PsFo4HKBrYcWC1+WRA8M6MqNf9MnxxOvAq+Y8APH0I6ExxAfUhLsk9v+6kPf0txM9MDoB0iNFA==} - '@zag-js/live-region@0.62.1': - resolution: {integrity: sha512-Giu7d5UWc2Sqb3/T0tSzqSwxJ4mVrNN+MTu06J7EaD4khK5RgX4GRpQ9rpwOS/GJT+8nc6YBhWTi7tqKN/+iHQ==} - '@zag-js/live-region@0.74.2': resolution: {integrity: sha512-l9cipG1hykvSWIbKc3/3imFQ+Sp3u2VjZirmdM2K9julo7DKxU3r63aQI2s6SpD4tfQPq4AcoXqzZBF0RnQRUg==} - '@zag-js/menu@0.62.1': - resolution: {integrity: sha512-l/PartHj6//NMlENYNBmUmeYG9K0SbjbnnIudv+rK+oyrUoX/MDCJ7bdy7ZMYxWTR127WdZlLHBxsgMe86lBqQ==} - '@zag-js/menu@0.74.2': resolution: {integrity: sha512-dEBerxdgPH4dGWEbFM/aY8zYtUAQL7hopv4iWPHv1NMFhWu7IShmKe2xm/4ZSKaOkiWZ2CJyMI0oHr+qQ+ZhWg==} - '@zag-js/number-input@0.62.1': - resolution: {integrity: sha512-THizFB4Qwq4erMk6mI82voIo/PbbrAOSQXyPF8NPyGupSzqYntS1XPEdyqFH677PhHweelxQnvtZEm5alm1HLw==} - '@zag-js/number-input@0.74.2': resolution: {integrity: sha512-I889jfoTiKX9gRbyZCgKDyBj1+VgFCKyELbFVJhgnWQhip4MLjzI0YjWWp/wgHs/ZwEBaxvy6CRq1KOtvGkQNg==} - '@zag-js/number-utils@0.62.1': - resolution: {integrity: sha512-ktnGSYKKLG9No14ivlboEzq4+jiOIWU+8yeoRrZmfdCG58g4s9JF0lBDRf3ts9vhUdofJ+vUFMPqkk2eCWyQlA==} - '@zag-js/number-utils@0.74.2': resolution: {integrity: sha512-wNaixDQDotwUUKtpA524tfDvsiQQroDFZYFPZfnwKq89rPT0Zlh8LMKLL/Mfi32Zqp8UP9srdcMEy1XEGrIiNA==} - '@zag-js/numeric-range@0.62.1': - resolution: {integrity: sha512-R4/II5MvS+eJ880srPuIlexqRH7kVsGomcsDlB5yyhHsradm7OJfC5L6osvKj1DNAitfFh8901BZFaWmQe8O1w==} - '@zag-js/numeric-range@0.74.2': resolution: {integrity: sha512-sm2xlc03Zy4DdCRNmr7jUgL9s34rK0bVDezn35TCq3QMPWQndIlsCbywcmxqxxtUymwnSwizWenZaWVlspFlgg==} - '@zag-js/pagination@0.62.1': - resolution: {integrity: sha512-fyDXNnAGyRsQEugvNR1kfEO8hGeesOV6l2rEACdvNN6G9Cqktqd52aaWVIf805G3Ig72igW2SybI9md/rDflzQ==} - '@zag-js/pagination@0.74.2': resolution: {integrity: sha512-aqwqxHrgvfm6rAcxIRTSRFaWA9/UCQGiLP+P01Hg+/+IkVJeJIdxN10ImSOL4Sl9zvsu3jVCXg6xLh4ydnaWqw==} - '@zag-js/pin-input@0.62.1': - resolution: {integrity: sha512-CTAOyQCLaNSWH29bhc4XruEkvnYFJN1QF/x5axtHV+cir05zcdB3L7Sna4D6nUBSwd0tOGnUmPlviyP7zkpgBA==} - '@zag-js/pin-input@0.74.2': resolution: {integrity: sha512-1LxK/VSU8t9w9/c726gZNHXnawU4SnN0DxsYQa4YxN1RDwFp/RwKp0hLAsunKx7yBdyC1VVyqVPYZdZYQotdQg==} - '@zag-js/popover@0.62.1': - resolution: {integrity: sha512-cT6okb5Yq69YWx6G1vonNEnEg4MlBXRbXLflLBqOP1PTwhk6RwlndXGV2uCdlnR0mUJa/RKldzdUcwOQesJaag==} - '@zag-js/popover@0.74.2': resolution: {integrity: sha512-B0U2/XJ630kWYY1x5UTBMxXjy2EfbH9T3eRQlSXZS/uToEzvhsYvw/YaIRqyvYxPyrnmB72to6r5Kw8omryw4Q==} - '@zag-js/popper@0.62.1': - resolution: {integrity: sha512-tyLEdYIsv3cgnWCWzPPv9f72hzmQDQcObDIczIZt+OQr89qgyhGHt5jR1f0Qxsz9zZlSPsEftccyXRQYInQtxQ==} - '@zag-js/popper@0.74.2': resolution: {integrity: sha512-gsS32rxw+bSKOLOtF/VPNNafzO/fEU58OYIfM7yA4swrEupUqdfAF/ihNH+Uj/AZQKj2tnwLTR1fJ1w3czpY9w==} - '@zag-js/presence@0.62.1': - resolution: {integrity: sha512-qjnr1WpW5yetRp2j2V0ocRvr6X6TuWNxjL2DyJAusodcsSElF2V0UuFOLT/xIZA8BVIbgcyCvcPB01PHugC5Ww==} - '@zag-js/presence@0.74.2': resolution: {integrity: sha512-57eBd5C205jYUQ7Rsbft9YRy4euNDdxKDpdLdInqk8egf2vFaUWIV152pm5iOGRVidDGgcIunTFvHFCT1rbATQ==} - '@zag-js/progress@0.62.1': - resolution: {integrity: sha512-7FyeP/wCiJ2dao1y/4RzhrLeIse305YtRMTDaVE5EnOJK3nit2Rrl+z8kGx5aqrGQcGsLH/rh5QYFp689Nx57Q==} - '@zag-js/progress@0.74.2': resolution: {integrity: sha512-4LNhFP18g21ni4Hv0RQEYqcMhiyMzTsu1IPizy8I5l3mJvsV6b7w591K2iC4mybLynPBodvkl+fLKqKm3Z+1IA==} - '@zag-js/qr-code@0.62.1': - resolution: {integrity: sha512-648qXQduIqq4CZWN07D1UOcczZrdp3UjBSHFEi4PQHTz1Vg08pH0BIZDqiqpupG9niYJEB/GPLGofRQQYoIoDw==} - '@zag-js/qr-code@0.74.2': resolution: {integrity: sha512-GHAmnHz9pdaP0c5/n4aPSo67Bk1Cvv9PIHuOKKLyalRcao/ARvtiS6371logfB1l9DHtMSARWaZXDrIdNZx/gQ==} - '@zag-js/radio-group@0.62.1': - resolution: {integrity: sha512-VVGTUkHgD27vBTYeP7hPYi+eDRXkq7xtlv6Ml062t3gcTWBhc/2eaI6iZ7awlxTl9052sflzbawrrDysPREuAQ==} - '@zag-js/radio-group@0.74.2': resolution: {integrity: sha512-Ntbi21CTqXIVMrGccVSefwCapACSTOy4XFDM9/piTLeRlfmNxsy7j9hl7EFBpovbe4WYLHjNQaL3MM+hXEjRRQ==} - '@zag-js/rating-group@0.62.1': - resolution: {integrity: sha512-gXvHofr3gfZcaMh7Y3FU+wyj7ge1R0BgsuPJWFUShlAlxjnnE7e3AqjSGlzuvpkWMkc6KKDyKRJlMVWLCv94OA==} - '@zag-js/rating-group@0.74.2': resolution: {integrity: sha512-Yg30ph9YMy5g6TPHU9MD/NEheaz8qOsVVkefG2EvRVfO2ZGXJclqZHg8/TW8nzUGp3Mt/fAq0A7jfeKvJBcNng==} @@ -1463,78 +1332,42 @@ packages: react: '>=18.0.0' react-dom: '>=18.0.0' - '@zag-js/rect-utils@0.62.1': - resolution: {integrity: sha512-6w56LuRD382Oa2FXi4AfKQqgtUPS/nc/mZzXiaqKz9b5aFA1CXtmEwNC2GaiXhkqJp5DyxHwujDfQP1WXACnRQ==} - '@zag-js/rect-utils@0.74.2': resolution: {integrity: sha512-bG48u1NsWBRx/fTQfDFskOkwKzpROVhuzJQi/OtnugHQj1nFfZ5CMpEX3BPv5PGwvOia2ZDm84+e12WucFhr0g==} - '@zag-js/remove-scroll@0.62.1': - resolution: {integrity: sha512-7xpX6HUrOEq/TNLIWojYnQf7kj20bk8ueOKpu7cTZmoN0LSL6cS09uil+NOqb+SzZsiRmQKvzd3fQBNwbdab5Q==} - '@zag-js/remove-scroll@0.74.2': resolution: {integrity: sha512-aEuspeZ98eAEGlAfnCh0syzbmFnMuov9yJc8Ud//pbXd+96J7X1xa4TilHZ+ppm8IZZLGc91axXHwkbIINC1Qw==} - '@zag-js/select@0.62.1': - resolution: {integrity: sha512-dgU65imBSeB8+QfHkN68j7Xqd/d6wsF42itJ0AeRSdgnCHgTWdN9rRCK5EDbNkJue51oMkdsnJ7XG1k+oCgiAg==} - '@zag-js/select@0.74.2': resolution: {integrity: sha512-Xl3CV1ONpQG3Ah0sriiuCFHXuiuzYz9KQkmEapcE+O5kzLADheIvgFRQYiMdLCltEfSBSBJvPrRM08aGyQgSpw==} - '@zag-js/signature-pad@0.62.1': - resolution: {integrity: sha512-hWZSWT9J9V1kbImkj8qXHCqS0TYm7nms9oAhcQ2QNIiGO38wqW8Yswos8sqAj8VtzHxkSMIeL1by7Zgy3Xjq9g==} - '@zag-js/signature-pad@0.74.2': resolution: {integrity: sha512-Ba5v3J/fQWVR81wvhHAfwbCjqJlv/15If0SCbKiTA879I5s9dZVYAkvibeGlIEK46SEKbeUpAewE/+eGgrrE6A==} - '@zag-js/slider@0.62.1': - resolution: {integrity: sha512-v5rgPJF3fh7bBPu0wzEGpN4EcXpK5cSw4OAwxatmbtkYsg2Udwv6WL26CB5Q2zVwYIR6R532b/bjFqicfVs+SA==} - '@zag-js/slider@0.74.2': resolution: {integrity: sha512-aDuzKySgFOm/D0opDyQOo2KMWFN9ZHuF50rG5cfIgl9dzo447iJfLzObcpAwNpQJq5P7/q+23K+sh+/NRGoUbw==} - '@zag-js/splitter@0.62.1': - resolution: {integrity: sha512-Ni93ZaprnbctAsbuot8sEw9DDfNMgkelnd5xQfAiwpgjwUgnY8733LRbWydC5OUPoJ/cCs3XiNKa0CHwclcq6Q==} - '@zag-js/splitter@0.74.2': resolution: {integrity: sha512-2PHBD4Y8h4ZcVphMWSDP6EsSamLYburQDDgJTSN5npcWsLu4iZ45T1U8bV0uICs+UJP9fko4YvjABrPv42asLQ==} '@zag-js/steps@0.74.2': resolution: {integrity: sha512-UTf5SIvfIfuAuGxRZLi5zDN3LGWQp2jdycS9JnKwL+KJKeHPmTu4OtXbRc2c4lEO0z1T9sVOHB0GPwBGK4+c3Q==} - '@zag-js/store@0.62.1': - resolution: {integrity: sha512-0xkz7b/Rs9cHeI5CB3UH4yMlVzys3l+IsJU3KRWZwqWohDjTEqRyzcuFD6AH28WAcJPjIgOQYnRYzYSoMGZtDQ==} - '@zag-js/store@0.74.2': resolution: {integrity: sha512-LXCSyIVf6G4SvoPojNxOUiK45Lg1Qo/I8NCIoWAgSh6WgthuyEP05oLlW0OdvfHWLsnSwUjJmfuoRQAQNS3M8Q==} - '@zag-js/switch@0.62.1': - resolution: {integrity: sha512-uh0yy3NuZqHF+jPVZ2oMcAtPx32eTnBebiROBGBDgj1A5yZBirfQm8j/vZLSILhDq9TdktHS9/gITJ7TvgV4cQ==} - '@zag-js/switch@0.74.2': resolution: {integrity: sha512-I5OTZ26Rp3ADySnzpIlI47+BiUAhSIXLMpQQ/T2XCpF9hsrxmAwmpyyJ+48L7aLHtzeEusBOATU+CWMEgycRPQ==} - '@zag-js/tabs@0.62.1': - resolution: {integrity: sha512-BpY6oA2nmZLpYu8nQrpi+zTF4txTiMYIMB31CmbFmbJ3hMVkEqk8sgNzNQY3LrzkkSemDRBHxPZ5H+YKaQrEdg==} - '@zag-js/tabs@0.74.2': resolution: {integrity: sha512-e/xkk4aihOikJsw47Q8nwAm/vUlfgXkkGxydquZg4Z42EDNYt5XcxPpIW+7gbzK+ergDYN7JyHQ4+sIRRPA/jg==} - '@zag-js/tags-input@0.62.1': - resolution: {integrity: sha512-8gJ4ckQQ0BB3oUGgIEGkmB6wIKSf7xx0q6e3tqTbfZnPhmWP4hpli38XAOYjsBQyNXmQW89H/Rp8/8W1A/Vpow==} - '@zag-js/tags-input@0.74.2': resolution: {integrity: sha512-bE1Z2dANz7f734AuX2b4RtGk6/L8Nf44Q1wxCZ++3CLYV6EBBBDb2kNWr/Pz23md58ve+AcFcd/pzKtoXfWcdw==} - '@zag-js/text-selection@0.62.1': - resolution: {integrity: sha512-0b049CnWN/Nyp/F/nbeU6G8BI/fzwlSQTTDWK81yRFADDFTZ2mWpVAWJF/fY0rKjsn4ucDykCS7GXMIo5rYILQ==} - '@zag-js/text-selection@0.74.2': resolution: {integrity: sha512-c7fLss1VyFnQzs5f5HNMD3qyJczH+SNzOgqMwU6apKpgYRLMMI0S4F03I/cyDQrCPZMcy6F/bl6zlQmdqb6WLQ==} - '@zag-js/time-picker@0.62.1': - resolution: {integrity: sha512-THNASHp9Fu5f4/LC3t3qJfsYD6FqjhbP7HrjIDDFOcdNGRzOTfbEpKF3JtJgmM6F+/fuQKhe6FUbcluMd9zo8Q==} - '@zag-js/time-picker@0.74.2': resolution: {integrity: sha512-VSsIQ+RUKo1hC+ip2Hq2jsiBTZNV+cuRntGXvVFegI1VG8W2ug6CtW5ilfxcQte8dfn1s6g2F4TY0g79F7svgA==} peerDependencies: @@ -1543,39 +1376,21 @@ packages: '@zag-js/timer@0.74.2': resolution: {integrity: sha512-T8JGTNd9tJXUZqerBSDVsv1upD0vpccZqXZthpl8u4KFXj8vR/CZ9fW00linc+tR9XdxvBbkxk3EW/BPbNvoDw==} - '@zag-js/toast@0.62.1': - resolution: {integrity: sha512-Kb+OiFx7KUG0fAExIL06xWEfhxeMRJACvP6q4B4FNuFX+6N06RbV/PZtLbPbffOodd7VhSk1W37T7t6Np32mvg==} - '@zag-js/toast@0.74.2': resolution: {integrity: sha512-Xt4F1BxP0U15WoNx73gIpnFRkCB3/dRkA5zQPECzR/U2drN2JAoCdb9wNQjxmR/6DWkT4PuCeWliUcskHDY8Wg==} - '@zag-js/toggle-group@0.62.1': - resolution: {integrity: sha512-h7jQtWJt11uws6IYBd3kQzOyOemtZ5CqR7lt4XZdni3J1EtymKRJNha2JIukIETZS9/0VU1fPcuDkQeCXcGHgQ==} - '@zag-js/toggle-group@0.74.2': resolution: {integrity: sha512-4wAsl33rP/LQq052sE+UYn0tfiJtZeINishI+0xrWc7iQY61F6l6UtZUR4I/NT3sa8XV2xSgunVPP4dVN0JlpA==} - '@zag-js/tooltip@0.62.1': - resolution: {integrity: sha512-318EJU6B4FR0nMNU79qMAgdOiVM6vbDiRWBHjGLDBK3z5No3lKfo4TZb/NqBmmi2W7ZFPiPwvLFsTql+H0xDbA==} - '@zag-js/tooltip@0.74.2': resolution: {integrity: sha512-lHs7dp1wUK4B+iY227ZfsQelVcRrad7ZVAh27ZzRdCkUE7KMi8ev45YudbnSM3ltCMGe6F+it7jWcalccFad4w==} - '@zag-js/tree-view@0.62.1': - resolution: {integrity: sha512-Y7qj16X18uElsD5jA9l03+rKEg1/5JIGRutO+NlEbs9Ffb7y34vqcEWquA+YgDfqXVWk2b5v9xcU1iKuKhOagQ==} - '@zag-js/tree-view@0.74.2': resolution: {integrity: sha512-oLizz/iU5xj3KCIy/oADAIhs2NjLl3LawYYktD8k02JF2XRPi8bDnRF96E0YPeLOnf5XdEEXmDD2A1l+gWrReg==} - '@zag-js/types@0.62.1': - resolution: {integrity: sha512-wjJvasoxg/rsFhMTaGLJEjYnSGaXz7DymtO+wWOIfa+O6y44flHc8wRQ1l6ZRRetCz4RALTuwhZI+0ESZ1Bpwg==} - '@zag-js/types@0.74.2': resolution: {integrity: sha512-UYdHh5Jj2LZZwP8Amm9YEoj9f/zYNWuuw+HRGCLZew6moHvKj/HHKJHLooPPjGztFIeRsnicE1mJ9E2bDllBaw==} - '@zag-js/utils@0.62.1': - resolution: {integrity: sha512-90sk7Li2mqoMCAfZbns1xrySEg4PIFPwLpiRO/T2kvKpc9z/qsq2WqDFpS8eqHfYRmkLnmQa0Bw1LzItYYsGVQ==} - '@zag-js/utils@0.74.2': resolution: {integrity: sha512-WtIsNyDvnslCjtIIP/bRzx3bJMaT0cIgI3f+TgiFWhtQMlUZMpBkwkKVfvUwI5qcZ+ZOMeoonAWFqFECCb3h3g==} @@ -1780,6 +1595,10 @@ packages: character-reference-invalid@1.1.4: resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} + chart.js@4.4.6: + resolution: {integrity: sha512-8Y406zevUPbbIBA/HRk33khEmQPk5+cxeflWE/2rx1NJsjVWMPw/9mSP9rxHP5eqi6LNoPBVMfZHxbwLSgldYA==} + engines: {pnpm: '>=8'} + check-error@2.1.1: resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} engines: {node: '>= 16'} @@ -2191,9 +2010,6 @@ packages: flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - focus-trap@7.5.4: - resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==} - focus-trap@7.6.0: resolution: {integrity: sha512-1td0l3pMkWJLFipobUcGaf+5DTY4PLDDrcqoSaKP8ediO/CoWCCYk/fT/Y2A4e6TNB+Sh6clRJCjOPPnKoNHnQ==} @@ -2990,6 +2806,12 @@ packages: rc9@2.1.2: resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} + react-chartjs-2@5.2.0: + resolution: {integrity: sha512-98iN5aguJyVSxp5U3CblRLH67J8gkfyGNbiK3c+l1QI/G4irHMPQw44aEPmjVag+YKTyQ260NcF82GTQ3bdscA==} + peerDependencies: + chart.js: ^4.1.1 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom@18.3.1: resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} peerDependencies: @@ -3567,49 +3389,6 @@ snapshots: '@types/json-schema': 7.0.15 js-yaml: 4.1.0 - '@ark-ui/anatomy@3.5.0(@internationalized/date@3.5.6)': - dependencies: - '@zag-js/accordion': 0.62.1 - '@zag-js/anatomy': 0.62.1 - '@zag-js/avatar': 0.62.1 - '@zag-js/carousel': 0.62.1 - '@zag-js/checkbox': 0.62.1 - '@zag-js/clipboard': 0.62.1 - '@zag-js/collapsible': 0.62.1 - '@zag-js/color-picker': 0.62.1 - '@zag-js/color-utils': 0.62.1 - '@zag-js/combobox': 0.62.1 - '@zag-js/date-picker': 0.62.1 - '@zag-js/date-utils': 0.62.1(@internationalized/date@3.5.6) - '@zag-js/dialog': 0.62.1 - '@zag-js/editable': 0.62.1 - '@zag-js/file-upload': 0.62.1 - '@zag-js/hover-card': 0.62.1 - '@zag-js/menu': 0.62.1 - '@zag-js/number-input': 0.62.1 - '@zag-js/pagination': 0.62.1 - '@zag-js/pin-input': 0.62.1 - '@zag-js/popover': 0.62.1 - '@zag-js/presence': 0.62.1 - '@zag-js/progress': 0.62.1 - '@zag-js/qr-code': 0.62.1 - '@zag-js/radio-group': 0.62.1 - '@zag-js/rating-group': 0.62.1 - '@zag-js/select': 0.62.1 - '@zag-js/signature-pad': 0.62.1 - '@zag-js/slider': 0.62.1 - '@zag-js/splitter': 0.62.1 - '@zag-js/switch': 0.62.1 - '@zag-js/tabs': 0.62.1 - '@zag-js/tags-input': 0.62.1 - '@zag-js/time-picker': 0.62.1 - '@zag-js/toast': 0.62.1 - '@zag-js/toggle-group': 0.62.1 - '@zag-js/tooltip': 0.62.1 - '@zag-js/tree-view': 0.62.1 - transitivePeerDependencies: - - '@internationalized/date' - '@ark-ui/react@4.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@internationalized/date': 3.5.6 @@ -3795,9 +3574,8 @@ snapshots: '@chakra-ui/anatomy@2.2.2': {} - '@chakra-ui/react@3.0.2(@emotion/react@11.13.3(@types/react@18.3.5)(react@18.3.1))(@internationalized/date@3.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@chakra-ui/react@3.1.1(@emotion/react@11.13.3(@types/react@18.3.5)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@ark-ui/anatomy': 3.5.0(@internationalized/date@3.5.6) '@ark-ui/react': 4.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@emotion/is-prop-valid': 1.3.1 '@emotion/react': 11.13.3(@types/react@18.3.5)(react@18.3.1) @@ -3805,11 +3583,10 @@ snapshots: '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@18.3.1) '@emotion/utils': 1.4.1 '@pandacss/is-valid-prop': 0.41.0 + '@zag-js/anatomy': 0.74.2 csstype: 3.1.3 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - transitivePeerDependencies: - - '@internationalized/date' '@codemirror/autocomplete@6.18.2(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.3)': dependencies: @@ -3872,7 +3649,7 @@ snapshots: '@babel/runtime': 7.25.6 '@emotion/hash': 0.9.2 '@emotion/memoize': 0.9.0 - '@emotion/serialize': 1.3.1 + '@emotion/serialize': 1.3.2 babel-plugin-macros: 3.1.0 convert-source-map: 1.9.0 escape-string-regexp: 4.0.0 @@ -3886,7 +3663,7 @@ snapshots: dependencies: '@emotion/memoize': 0.9.0 '@emotion/sheet': 1.4.0 - '@emotion/utils': 1.4.0 + '@emotion/utils': 1.4.1 '@emotion/weak-memoize': 0.4.0 stylis: 4.2.0 @@ -3919,7 +3696,7 @@ snapshots: '@emotion/hash': 0.9.2 '@emotion/memoize': 0.9.0 '@emotion/unitless': 0.10.0 - '@emotion/utils': 1.4.0 + '@emotion/utils': 1.4.1 csstype: 3.1.3 '@emotion/serialize@1.3.2': @@ -4061,11 +3838,6 @@ snapshots: '@floating-ui/core': 1.6.7 '@floating-ui/utils': 0.2.8 - '@floating-ui/dom@1.6.8': - dependencies: - '@floating-ui/core': 1.6.7 - '@floating-ui/utils': 0.2.8 - '@floating-ui/utils@0.2.7': {} '@floating-ui/utils@0.2.8': {} @@ -4085,10 +3857,6 @@ snapshots: '@humanwhocodes/retry@0.3.0': {} - '@internationalized/date@3.5.5': - dependencies: - '@swc/helpers': 0.5.13 - '@internationalized/date@3.5.6': dependencies: '@swc/helpers': 0.5.13 @@ -4127,6 +3895,8 @@ snapshots: '@jsdevtools/ono@7.1.3': {} + '@kurkle/color@0.3.2': {} + '@lezer/common@1.2.3': {} '@lezer/highlight@1.2.1': @@ -4934,15 +4704,6 @@ snapshots: loupe: 3.1.1 tinyrainbow: 1.2.0 - '@zag-js/accordion@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/accordion@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -4952,34 +4713,16 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/anatomy@0.62.1': {} - '@zag-js/anatomy@0.74.2': {} - '@zag-js/aria-hidden@0.62.1': - dependencies: - '@zag-js/dom-query': 0.62.1 - '@zag-js/aria-hidden@0.74.2': dependencies: aria-hidden: 1.2.4 - '@zag-js/auto-resize@0.62.1': - dependencies: - '@zag-js/dom-query': 0.62.1 - '@zag-js/auto-resize@0.74.2': dependencies: '@zag-js/dom-query': 0.74.2 - '@zag-js/avatar@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/avatar@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -4988,14 +4731,6 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/carousel@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/carousel@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5004,16 +4739,6 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/checkbox@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/checkbox@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5025,14 +4750,6 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/clipboard@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/clipboard@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5041,14 +4758,6 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/collapsible@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/collapsible@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5057,28 +4766,10 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/collection@0.62.1': - dependencies: - '@zag-js/utils': 0.62.1 - '@zag-js/collection@0.74.2': dependencies: '@zag-js/utils': 0.74.2 - '@zag-js/color-picker@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/color-utils': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/popper': 0.62.1 - '@zag-js/text-selection': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/color-picker@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5093,27 +4784,10 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/color-utils@0.62.1': - dependencies: - '@zag-js/numeric-range': 0.62.1 - '@zag-js/color-utils@0.74.2': dependencies: '@zag-js/numeric-range': 0.74.2 - '@zag-js/combobox@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/aria-hidden': 0.62.1 - '@zag-js/collection': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/popper': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/combobox@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5127,33 +4801,12 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/core@0.62.1': - dependencies: - '@zag-js/store': 0.62.1 - klona: 2.0.6 - '@zag-js/core@0.74.2': dependencies: '@zag-js/store': 0.74.2 '@zag-js/utils': 0.74.2 klona: 2.0.6 - '@zag-js/date-picker@0.62.1': - dependencies: - '@internationalized/date': 3.5.5 - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/date-utils': 0.62.1(@internationalized/date@3.5.5) - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/live-region': 0.62.1 - '@zag-js/popper': 0.62.1 - '@zag-js/text-selection': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/date-picker@0.74.2(@internationalized/date@3.5.6)': dependencies: '@internationalized/date': 3.5.6 @@ -5170,30 +4823,10 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/date-utils@0.62.1(@internationalized/date@3.5.5)': - dependencies: - '@internationalized/date': 3.5.5 - - '@zag-js/date-utils@0.62.1(@internationalized/date@3.5.6)': - dependencies: - '@internationalized/date': 3.5.6 - '@zag-js/date-utils@0.74.2(@internationalized/date@3.5.6)': dependencies: '@internationalized/date': 3.5.6 - '@zag-js/dialog@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/aria-hidden': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/remove-scroll': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - focus-trap: 7.5.4 - '@zag-js/dialog@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5206,13 +4839,6 @@ snapshots: '@zag-js/utils': 0.74.2 focus-trap: 7.6.0 - '@zag-js/dismissable@0.62.1': - dependencies: - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/interact-outside': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/dismissable@0.74.2': dependencies: '@zag-js/dom-event': 0.74.2 @@ -5220,33 +4846,14 @@ snapshots: '@zag-js/interact-outside': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/dom-event@0.62.1': - dependencies: - '@zag-js/dom-query': 0.62.1 - '@zag-js/text-selection': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/dom-event@0.74.2': dependencies: '@zag-js/dom-query': 0.74.2 '@zag-js/text-selection': 0.74.2 '@zag-js/types': 0.74.2 - '@zag-js/dom-query@0.62.1': {} - '@zag-js/dom-query@0.74.2': {} - '@zag-js/editable@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/interact-outside': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/editable@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5258,24 +4865,10 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/element-rect@0.62.1': {} - '@zag-js/element-rect@0.74.2': {} - '@zag-js/element-size@0.62.1': {} - '@zag-js/element-size@0.74.2': {} - '@zag-js/file-upload@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/file-utils': 0.62.1 - '@zag-js/i18n-utils': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/file-upload@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5286,10 +4879,6 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/file-utils@0.62.1': - dependencies: - '@zag-js/i18n-utils': 0.62.1 - '@zag-js/file-utils@0.74.2': dependencies: '@zag-js/i18n-utils': 0.74.2 @@ -5298,22 +4887,10 @@ snapshots: dependencies: '@zag-js/dom-query': 0.74.2 - '@zag-js/form-utils@0.62.1': {} - '@zag-js/form-utils@0.74.2': {} '@zag-js/highlight-word@0.74.2': {} - '@zag-js/hover-card@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/popper': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/hover-card@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5324,42 +4901,18 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/i18n-utils@0.62.1': - dependencies: - '@zag-js/dom-query': 0.62.1 - '@zag-js/i18n-utils@0.74.2': dependencies: '@zag-js/dom-query': 0.74.2 - '@zag-js/interact-outside@0.62.1': - dependencies: - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/interact-outside@0.74.2': dependencies: '@zag-js/dom-event': 0.74.2 '@zag-js/dom-query': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/live-region@0.62.1': {} - '@zag-js/live-region@0.74.2': {} - '@zag-js/menu@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/popper': 0.62.1 - '@zag-js/rect-utils': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/menu@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5372,18 +4925,6 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/number-input@0.62.1': - dependencies: - '@internationalized/number': 3.5.3 - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/number-utils': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/number-input@0.74.2': dependencies: '@internationalized/number': 3.5.3 @@ -5396,22 +4937,10 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/number-utils@0.62.1': {} - '@zag-js/number-utils@0.74.2': {} - '@zag-js/numeric-range@0.62.1': {} - '@zag-js/numeric-range@0.74.2': {} - '@zag-js/pagination@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/pagination@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5420,16 +4949,6 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/pin-input@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/pin-input@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5440,19 +4959,6 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/popover@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/aria-hidden': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/popper': 0.62.1 - '@zag-js/remove-scroll': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - focus-trap: 7.5.4 - '@zag-js/popover@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5466,36 +4972,17 @@ snapshots: '@zag-js/utils': 0.74.2 focus-trap: 7.6.0 - '@zag-js/popper@0.62.1': - dependencies: - '@floating-ui/dom': 1.6.8 - '@zag-js/dom-query': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/popper@0.74.2': dependencies: '@floating-ui/dom': 1.6.11 '@zag-js/dom-query': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/presence@0.62.1': - dependencies: - '@zag-js/core': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/presence@0.74.2': dependencies: '@zag-js/core': 0.74.2 '@zag-js/types': 0.74.2 - '@zag-js/progress@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/progress@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5504,16 +4991,6 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/qr-code@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - proxy-memoize: 3.0.1 - uqr: 0.1.2 - '@zag-js/qr-code@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5524,16 +5001,6 @@ snapshots: proxy-memoize: 3.0.1 uqr: 0.1.2 - '@zag-js/radio-group@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/element-rect': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/radio-group@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5545,16 +5012,6 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/rating-group@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/rating-group@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5574,31 +5031,12 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@zag-js/rect-utils@0.62.1': {} - '@zag-js/rect-utils@0.74.2': {} - '@zag-js/remove-scroll@0.62.1': - dependencies: - '@zag-js/dom-query': 0.62.1 - '@zag-js/remove-scroll@0.74.2': dependencies: '@zag-js/dom-query': 0.74.2 - '@zag-js/select@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/collection': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/popper': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/select@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5612,16 +5050,6 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/signature-pad@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - perfect-freehand: 1.2.2 - '@zag-js/signature-pad@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5632,18 +5060,6 @@ snapshots: '@zag-js/utils': 0.74.2 perfect-freehand: 1.2.2 - '@zag-js/slider@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/element-size': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/numeric-range': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/slider@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5656,16 +5072,6 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/splitter@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/number-utils': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/splitter@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5684,24 +5090,10 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/store@0.62.1': - dependencies: - proxy-compare: 3.0.0 - '@zag-js/store@0.74.2': dependencies: proxy-compare: 3.0.0 - '@zag-js/switch@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/switch@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5713,16 +5105,6 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/tabs@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/element-rect': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/tabs@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5733,19 +5115,6 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/tags-input@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/auto-resize': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/interact-outside': 0.62.1 - '@zag-js/live-region': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/tags-input@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5759,26 +5128,10 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/text-selection@0.62.1': - dependencies: - '@zag-js/dom-query': 0.62.1 - '@zag-js/text-selection@0.74.2': dependencies: '@zag-js/dom-query': 0.74.2 - '@zag-js/time-picker@0.62.1': - dependencies: - '@internationalized/date': 3.5.5 - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/popper': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/time-picker@0.74.2(@internationalized/date@3.5.6)': dependencies: '@internationalized/date': 3.5.6 @@ -5799,16 +5152,6 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/toast@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/toast@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5819,15 +5162,6 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/toggle-group@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/toggle-group@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5837,16 +5171,6 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/tooltip@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/popper': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/tooltip@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5858,15 +5182,6 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/tree-view@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/tree-view@0.74.2': dependencies: '@zag-js/anatomy': 0.74.2 @@ -5876,16 +5191,10 @@ snapshots: '@zag-js/types': 0.74.2 '@zag-js/utils': 0.74.2 - '@zag-js/types@0.62.1': - dependencies: - csstype: 3.1.3 - '@zag-js/types@0.74.2': dependencies: csstype: 3.1.3 - '@zag-js/utils@0.62.1': {} - '@zag-js/utils@0.74.2': {} acorn-jsx@5.3.2(acorn@8.12.1): @@ -6089,9 +5398,9 @@ snapshots: loupe: 3.1.1 pathval: 2.0.0 - chakra-react-select@6.0.0-next.2(@chakra-ui/react@3.0.2(@emotion/react@11.13.3(@types/react@18.3.5)(react@18.3.1))(@internationalized/date@3.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.5)(next-themes@0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + chakra-react-select@6.0.0-next.2(@chakra-ui/react@3.1.1(@emotion/react@11.13.3(@types/react@18.3.5)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.5)(next-themes@0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@chakra-ui/react': 3.0.2(@emotion/react@11.13.3(@types/react@18.3.5)(react@18.3.1))(@internationalized/date@3.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@chakra-ui/react': 3.1.1(@emotion/react@11.13.3(@types/react@18.3.5)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-themes: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -6122,6 +5431,10 @@ snapshots: character-reference-invalid@1.1.4: {} + chart.js@4.4.6: + dependencies: + '@kurkle/color': 0.3.2 + check-error@2.1.1: {} chokidar@3.6.0: @@ -6687,10 +6000,6 @@ snapshots: flatted@3.3.1: {} - focus-trap@7.5.4: - dependencies: - tabbable: 6.2.0 - focus-trap@7.6.0: dependencies: tabbable: 6.2.0 @@ -7448,6 +6757,11 @@ snapshots: defu: 6.1.4 destr: 2.0.3 + react-chartjs-2@5.2.0(chart.js@4.4.6)(react@18.3.1): + dependencies: + chart.js: 4.4.6 + react: 18.3.1 + react-dom@18.3.1(react@18.3.1): dependencies: loose-envify: 1.4.0 diff --git a/airflow/ui/src/components/StateCircle.tsx b/airflow/ui/src/components/StateCircle.tsx index 11fd70de43da..50a2310a0ffc 100644 --- a/airflow/ui/src/components/StateCircle.tsx +++ b/airflow/ui/src/components/StateCircle.tsx @@ -32,7 +32,7 @@ export const StateCircle = ({ bg={stateColor[state]} borderRadius="50%" h={2} - maxW={2} + minW={2} w={2} /> ); diff --git a/airflow/ui/src/components/TimeRangeSelector.tsx b/airflow/ui/src/components/TimeRangeSelector.tsx index dbf44342950a..8ce7bef53a87 100644 --- a/airflow/ui/src/components/TimeRangeSelector.tsx +++ b/airflow/ui/src/components/TimeRangeSelector.tsx @@ -16,12 +16,11 @@ * specific language governing permissions and limitations * under the License. */ +import { HStack, Text, type SelectValueChangeDetails } from "@chakra-ui/react"; import { - HStack, - Text, - type SelectValueChangeDetails, + createListCollection, type ListCollection, -} from "@chakra-ui/react"; +} from "@chakra-ui/react/collection"; import dayjs from "dayjs"; import { FiCalendar } from "react-icons/fi"; @@ -34,16 +33,26 @@ type Props = { readonly setEndDate: (startDate: string) => void; readonly setStartDate: (startDate: string) => void; readonly startDate: string; - readonly timeOptions: ListCollection<{ label: string; value: string }>; + readonly timeOptions?: ListCollection<{ label: string; value: string }>; }; +const defaultTimeOptions = createListCollection({ + items: [ + { label: "Last 1 hour", value: "1" }, + { label: "Last 8 hours", value: "8" }, + { label: "Last 12 hours", value: "12" }, + { label: "Last 24 hours", value: "24" }, + { label: "Last week", value: "168" }, + ], +}); + const TimeRangeSelector = ({ defaultValue, endDate, setEndDate, setStartDate, startDate, - timeOptions, + timeOptions = defaultTimeOptions, }: Props) => { const handleTimeChange = ({ value, diff --git a/airflow/ui/src/pages/DagsList/Dag/Overview/Chart.tsx b/airflow/ui/src/pages/DagsList/Dag/Overview/Chart.tsx new file mode 100644 index 000000000000..b67796a7a684 --- /dev/null +++ b/airflow/ui/src/pages/DagsList/Dag/Overview/Chart.tsx @@ -0,0 +1,160 @@ +/*! + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import { Box, useToken } from "@chakra-ui/react"; +import { + Chart as ChartJS, + CategoryScale, + LinearScale, + PointElement, + LineElement, + Filler, + Tooltip, + type ChartOptions, +} from "chart.js"; +import dayjs from "dayjs"; +import { useMemo, useRef, useEffect } from "react"; +import { Line } from "react-chartjs-2"; + +import { useColorMode } from "src/context/colorMode"; + +ChartJS.register( + CategoryScale, + LinearScale, + PointElement, + LineElement, + Filler, + Tooltip, +); + +type Event = { timestamp: string }; + +const aggregateEventsIntoIntervals = ( + events: Array, + startDate: string, + endDate: string, +) => { + const totalMinutes = dayjs(endDate).diff(startDate, "minutes"); + const intervalSize = Math.floor(totalMinutes / 10); + const intervals = Array.from({ length: 10 }).fill(0) as Array; + + events.forEach((event) => { + const minutesSinceStart = dayjs(event.timestamp).diff(startDate, "minutes"); + const intervalIndex = Math.min( + Math.floor(minutesSinceStart / intervalSize), + 9, + ); + + if (intervals[intervalIndex] !== undefined) { + intervals[intervalIndex] += 1; + } + }); + + return intervals; +}; + +const options = { + layout: { + padding: { + bottom: 2, + top: 2, + }, + }, + maintainAspectRatio: false, + plugins: { + legend: { + display: false, + }, + tooltip: { + enabled: false, + }, + }, + responsive: true, + scales: { + x: { + display: false, + grid: { + display: false, + }, + }, + y: { + display: false, + grid: { + display: false, + }, + }, + }, +} satisfies ChartOptions; + +type Props = { + readonly endDate: string; + readonly events: Array; + readonly startDate: string; +}; + +export const Chart = ({ endDate, events, startDate }: Props) => { + const { colorMode } = useColorMode(); + const chartRef = useRef>(); + + // Get raw color values instead of CSS variables + const [bgLight, bgDark, lineLight, lineDark] = useToken("colors", [ + "red.100", + "red.800", + "red.500", + "red.400", + ]); + + const backgroundColor = colorMode === "light" ? bgLight : bgDark; + const lineColor = colorMode === "light" ? lineLight : lineDark; + + const intervalData = useMemo( + () => aggregateEventsIntoIntervals(events, startDate, endDate), + [events, startDate, endDate], + ); + + // Cleanup chart instance on unmount + useEffect( + () => () => { + if (chartRef.current) { + chartRef.current.destroy(); + } + }, + [], + ); + + const data = { + datasets: [ + { + backgroundColor, + borderColor: lineColor, + borderWidth: 2, + data: intervalData, + fill: true, + pointRadius: 0, + tension: 0.4, + }, + ], + labels: Array.from({ length: 10 }).fill(""), + }; + + return ( + + + + ); +}; diff --git a/airflow/ui/src/pages/DagsList/Dag/Overview/Overview.tsx b/airflow/ui/src/pages/DagsList/Dag/Overview/Overview.tsx new file mode 100644 index 000000000000..be94a01d8edc --- /dev/null +++ b/airflow/ui/src/pages/DagsList/Dag/Overview/Overview.tsx @@ -0,0 +1,96 @@ +/*! + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import { Box, HStack, Badge, Text, Skeleton } from "@chakra-ui/react"; +import dayjs from "dayjs"; +import { useState } from "react"; +import { Link, useLocation, useParams } from "react-router-dom"; + +import { useTaskInstanceServiceGetTaskInstances } from "openapi/queries"; +import TimeRangeSelector from "src/components/TimeRangeSelector"; +import { pluralize } from "src/utils"; +import { stateColor } from "src/utils/stateColor"; + +import { Chart } from "./Chart"; + +const defaultHour = "8"; + +export const Overview = () => { + const { dagId } = useParams(); + + const now = dayjs(); + const [startDate, setStartDate] = useState( + now.subtract(Number(defaultHour), "hour").toISOString(), + ); + const [endDate, setEndDate] = useState(now.toISOString()); + + const { data: failedTasks, isLoading } = + useTaskInstanceServiceGetTaskInstances({ + dagId: dagId ?? "", + dagRunId: "~", + logicalDateGte: startDate, + logicalDateLte: endDate, + state: ["failed"], + }); + + const location = useLocation(); + + // TODO actually link to task instances list + return ( + + + + + {failedTasks?.total_entries !== undefined && + failedTasks.total_entries > 0 ? ( + // TODO: make sure url params pass correctly + + + + {failedTasks.total_entries} + + + Failed{" "} + {pluralize("Task", failedTasks.total_entries, undefined, true)} + + ({ + timestamp: ti.start_date ?? ti.logical_date, + }))} + startDate={startDate} + /> + + + ) : undefined} + {isLoading ? ( + + ) : undefined} + + ); +}; diff --git a/airflow/ui/src/pages/DagsList/Dag/Overview/index.ts b/airflow/ui/src/pages/DagsList/Dag/Overview/index.ts new file mode 100644 index 000000000000..c13238bb3268 --- /dev/null +++ b/airflow/ui/src/pages/DagsList/Dag/Overview/index.ts @@ -0,0 +1,20 @@ +/*! + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +export * from "./Overview"; diff --git a/airflow/ui/src/pages/Dashboard/HistoricalMetrics/HistoricalMetrics.tsx b/airflow/ui/src/pages/Dashboard/HistoricalMetrics/HistoricalMetrics.tsx index ecd895055c6e..7d1037cbeb0d 100644 --- a/airflow/ui/src/pages/Dashboard/HistoricalMetrics/HistoricalMetrics.tsx +++ b/airflow/ui/src/pages/Dashboard/HistoricalMetrics/HistoricalMetrics.tsx @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -import { Box, VStack, createListCollection } from "@chakra-ui/react"; +import { Box, VStack } from "@chakra-ui/react"; import dayjs from "dayjs"; import { useState } from "react"; @@ -28,17 +28,9 @@ import { DagRunMetrics } from "./DagRunMetrics"; import { MetricSectionSkeleton } from "./MetricSectionSkeleton"; import { TaskInstanceMetrics } from "./TaskInstanceMetrics"; -const timeOptions = createListCollection({ - items: [ - { label: "Last 1 hour", value: "1" }, - { label: "Last 8 hours", value: "8" }, - { label: "Last 12 hours", value: "12" }, - { label: "Last 24 hours", value: "24" }, - ], -}); +const defaultHour = "8"; export const HistoricalMetrics = () => { - const defaultHour = "8"; const now = dayjs(); const [startDate, setStartDate] = useState( now.subtract(Number(defaultHour), "hour").toISOString(), @@ -74,7 +66,6 @@ export const HistoricalMetrics = () => { setEndDate={setEndDate} setStartDate={setStartDate} startDate={startDate} - timeOptions={timeOptions} /> {isLoading ? : undefined} {!isLoading && data !== undefined && ( diff --git a/airflow/ui/src/router.tsx b/airflow/ui/src/router.tsx index e8585e1811e0..ae33b021d211 100644 --- a/airflow/ui/src/router.tsx +++ b/airflow/ui/src/router.tsx @@ -24,6 +24,7 @@ import { Dashboard } from "src/pages/Dashboard"; import { BaseLayout } from "./layouts/BaseLayout"; import { Dag } from "./pages/DagsList/Dag"; import { Code } from "./pages/DagsList/Dag/Code"; +import { Overview } from "./pages/DagsList/Dag/Overview"; import { ErrorPage } from "./pages/Error"; import { Events } from "./pages/Events"; @@ -45,7 +46,7 @@ export const router = createBrowserRouter( }, { children: [ - { element:
Overview
, path: "" }, + { element: , path: "" }, { element:
Runs
, path: "runs" }, { element:
Tasks
, path: "tasks" }, { element: , path: "events" },