diff --git a/.version-change-type b/.version-change-type index dbcae14..5a5e7a6 100644 --- a/.version-change-type +++ b/.version-change-type @@ -1 +1 @@ -patch \ No newline at end of file +major \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index b23d7e4..817bcef 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,13 +17,14 @@ "@jest/globals": "^29.5.0", "@testing-library/jest-dom": "^4.2.4", "@testing-library/react": "^14.0.0", + "@types/http-status-codes": "^1.2.0", "@types/jest": "^29.4.0", "@types/lodash.get": "^4.4.7", "@types/lodash.isempty": "^4.4.7", "@types/lodash.join": "^4.0.7", - "@types/node": "^20.2.5", - "@types/react": "^18.0.28", - "@types/react-dom": "^18.0.11", + "@types/node": "^20.3.1", + "@types/react": "^18.2.12", + "@types/react-dom": "^18.2.5", "@typescript-eslint/eslint-plugin": "^5.50.0", "@typescript-eslint/parser": "^5.52.0", "depcheck": "^1.4.3", @@ -39,12 +40,12 @@ "react-dom": "^18.2.0", "ts-jest": "^29.0.5", "ts-jest-resolver": "^2.0.0", - "typescript": "^4.9.5", + "typescript": "^5.1.3", "typescript-json-schema": "^0.57.0" }, "peerDependencies": { "@chakra-ui/react": "2.x", - "@tinystacks/ops-core": "0.x", + "@tinystacks/ops-core": "file:../ops-core/tinystacks-ops-core-0.4.0.tgz", "@tinystacks/ops-model": "0.x", "http-status-codes": "2.x", "lodash.get": "4.x", @@ -580,18 +581,18 @@ "dev": true }, "node_modules/@chakra-ui/accordion": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@chakra-ui/accordion/-/accordion-2.1.9.tgz", - "integrity": "sha512-a9CKIAUHezc0f5FR/SQ4GVxnWuIb2HbDTxTEKTp58w/J9pecIbJaNrJ5TUZ0MVbDU9jkgO9RsZ29jkja8PomAw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/accordion/-/accordion-2.2.0.tgz", + "integrity": "sha512-2IK1iLzTZ22u8GKPPPn65mqJdZidn4AvkgAbv17ISdKA07VHJ8jSd4QF1T5iCXjKfZ0XaXozmhP4kDhjwF2IbQ==", "peer": true, "dependencies": { - "@chakra-ui/descendant": "3.0.13", + "@chakra-ui/descendant": "3.0.14", "@chakra-ui/icon": "3.0.16", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-use-controllable-state": "2.0.8", "@chakra-ui/react-use-merge-refs": "2.0.7", "@chakra-ui/shared-utils": "2.0.5", - "@chakra-ui/transition": "2.0.15" + "@chakra-ui/transition": "2.0.16" }, "peerDependencies": { "@chakra-ui/system": ">=2.0.0", @@ -600,13 +601,13 @@ } }, "node_modules/@chakra-ui/alert": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/@chakra-ui/alert/-/alert-2.0.17.tgz", - "integrity": "sha512-0Y5vw+HkeXpwbL1roVpSSNM6luMRmUbwduUSHEA4OnX1ismvsDb1ZBfpi4Vxp6w8euJ2Uj6df3krbd5tbCP6tg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/alert/-/alert-2.1.0.tgz", + "integrity": "sha512-OcfHwoXI5VrmM+tHJTHT62Bx6TfyfCxSa0PWUOueJzSyhlUOKBND5we6UtrOB7D0jwX45qKKEDJOLG5yCG21jQ==", "peer": true, "dependencies": { "@chakra-ui/icon": "3.0.16", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/shared-utils": "2.0.5", "@chakra-ui/spinner": "2.0.13" }, @@ -622,14 +623,14 @@ "peer": true }, "node_modules/@chakra-ui/avatar": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/@chakra-ui/avatar/-/avatar-2.2.5.tgz", - "integrity": "sha512-TEHXuGE79+fEn61qJ7J/A0Ec+WjyNwobrDTATcLg9Zx2/WEMmZNfrWIAlI5ANQAwVbdSWeGVbyoLAK5mbcrE0A==", + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/@chakra-ui/avatar/-/avatar-2.2.11.tgz", + "integrity": "sha512-CJFkoWvlCTDJTUBrKA/aVyG5Zz6TBEIVmmsJtqC6VcQuVDTxkWod8ruXnjb0LT2DUveL7xR5qZM9a5IXcsH3zg==", "peer": true, "dependencies": { - "@chakra-ui/image": "2.0.15", + "@chakra-ui/image": "2.0.16", "@chakra-ui/react-children-utils": "2.0.6", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/shared-utils": "2.0.5" }, "peerDependencies": { @@ -638,13 +639,13 @@ } }, "node_modules/@chakra-ui/breadcrumb": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@chakra-ui/breadcrumb/-/breadcrumb-2.1.4.tgz", - "integrity": "sha512-vyBx5TAxPnHhb0b8nyRGfqyjleD//9mySFhk96c9GL+T6YDO4swHw5y/kvDv3Ngc/iRwJ9hdI49PZKwPxLqsEg==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@chakra-ui/breadcrumb/-/breadcrumb-2.1.5.tgz", + "integrity": "sha512-p3eQQrHQBkRB69xOmNyBJqEdfCrMt+e0eOH+Pm/DjFWfIVIbnIaFbmDCeWClqlLa21Ypc6h1hR9jEmvg8kmOog==", "peer": true, "dependencies": { "@chakra-ui/react-children-utils": "2.0.6", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/shared-utils": "2.0.5" }, "peerDependencies": { @@ -662,12 +663,12 @@ } }, "node_modules/@chakra-ui/button": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/@chakra-ui/button/-/button-2.0.16.tgz", - "integrity": "sha512-NjuTKa7gNhnGSUutKuTc8HoAOe9WWIigpciBG7yj3ok67kg8bXtSzPyQFZlgTY6XGdAckWTT+Do4tvhwa5LA+g==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@chakra-ui/button/-/button-2.0.18.tgz", + "integrity": "sha512-E3c99+lOm6ou4nQVOTLkG+IdOPMjsQK+Qe7VyP8A/xeAMFONuibrWPRPpprr4ZkB4kEoLMfNuyH2+aEza3ScUA==", "peer": true, "dependencies": { - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-use-merge-refs": "2.0.7", "@chakra-ui/shared-utils": "2.0.5", "@chakra-ui/spinner": "2.0.13" @@ -691,13 +692,13 @@ } }, "node_modules/@chakra-ui/checkbox": { - "version": "2.2.10", - "resolved": "https://registry.npmjs.org/@chakra-ui/checkbox/-/checkbox-2.2.10.tgz", - "integrity": "sha512-vzxEjw99qj7loxAdP1WuHNt4EAvj/t6cc8oxyOB2mEvkAzhxI34rLR+3zWDuHWsmhyUO+XEDh4FiWdR+DK5Siw==", + "version": "2.2.15", + "resolved": "https://registry.npmjs.org/@chakra-ui/checkbox/-/checkbox-2.2.15.tgz", + "integrity": "sha512-Ju2yQjX8azgFa5f6VLPuwdGYobZ+rdbcYqjiks848JvPc75UsPhpS05cb4XlrKT7M16I8txDA5rPJdqqFicHCA==", "peer": true, "dependencies": { - "@chakra-ui/form-control": "2.0.17", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/form-control": "2.0.18", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-types": "2.0.7", "@chakra-ui/react-use-callback-ref": "2.0.7", "@chakra-ui/react-use-controllable-state": "2.0.8", @@ -706,7 +707,7 @@ "@chakra-ui/react-use-update-effect": "2.0.7", "@chakra-ui/shared-utils": "2.0.5", "@chakra-ui/visually-hidden": "2.0.15", - "@zag-js/focus-visible": "0.2.1" + "@zag-js/focus-visible": "0.2.2" }, "peerDependencies": { "@chakra-ui/system": ">=2.0.0", @@ -776,9 +777,9 @@ } }, "node_modules/@chakra-ui/css-reset": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/@chakra-ui/css-reset/-/css-reset-2.0.12.tgz", - "integrity": "sha512-Q5OYIMvqTl2vZ947kIYxcS5DhQXeStB84BzzBd6C10wOx1gFUu9pL+jLpOnHR3hhpWRMdX5o7eT+gMJWIYUZ0Q==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/css-reset/-/css-reset-2.1.2.tgz", + "integrity": "sha512-4ySTLd+3iRpp4lX0yI9Yo2uQm2f+qwYGNOZF0cNcfN+4UJCd3IsaWxYRR/Anz+M51NVldZbYzC+TEYC/kpJc4A==", "peer": true, "peerDependencies": { "@emotion/react": ">=10.0.35", @@ -786,12 +787,12 @@ } }, "node_modules/@chakra-ui/descendant": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/@chakra-ui/descendant/-/descendant-3.0.13.tgz", - "integrity": "sha512-9nzxZVxUSMc4xPL5fSaRkEOQjDQWUGjGvrZI7VzWk9eq63cojOtIxtWMSW383G9148PzWJjJYt30Eud5tdZzlg==", + "version": "3.0.14", + "resolved": "https://registry.npmjs.org/@chakra-ui/descendant/-/descendant-3.0.14.tgz", + "integrity": "sha512-+Ahvp9H4HMpfScIv9w1vaecGz7qWAaK1YFHHolz/SIsGLaLGlbdp+5UNabQC7L6TUnzzJDQDxzwif78rTD7ang==", "peer": true, "dependencies": { - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-use-merge-refs": "2.0.7" }, "peerDependencies": { @@ -799,18 +800,18 @@ } }, "node_modules/@chakra-ui/dom-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@chakra-ui/dom-utils/-/dom-utils-2.0.6.tgz", - "integrity": "sha512-PVtDkPrDD5b8aoL6Atg7SLjkwhWb7BwMcLOF1L449L3nZN+DAO3nyAh6iUhZVJyunELj9d0r65CDlnMREyJZmA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/dom-utils/-/dom-utils-2.1.0.tgz", + "integrity": "sha512-ZmF2qRa1QZ0CMLU8M1zCfmw29DmPNtfjR9iTo74U5FPr3i1aoAh7fbJ4qAlZ197Xw9eAW28tvzQuoVWeL5C7fQ==", "peer": true }, "node_modules/@chakra-ui/editable": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/@chakra-ui/editable/-/editable-2.0.19.tgz", - "integrity": "sha512-YxRJsJ2JQd42zfPBgTKzIhg1HugT+gfQz1ZosmUN+IZT9YZXL2yodHTUz6Lee04Vc/CdEqgBFLuREXEUNBfGtA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/editable/-/editable-3.0.0.tgz", + "integrity": "sha512-q/7C/TM3iLaoQKlEiM8AY565i9NoaXtS6N6N4HWIEL5mZJPbMeHKxrCHUZlHxYuQJqFOGc09ZPD9fAFx1GkYwQ==", "peer": true, "dependencies": { - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-types": "2.0.7", "@chakra-ui/react-use-callback-ref": "2.0.7", "@chakra-ui/react-use-controllable-state": "2.0.8", @@ -832,26 +833,26 @@ "peer": true }, "node_modules/@chakra-ui/focus-lock": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/@chakra-ui/focus-lock/-/focus-lock-2.0.16.tgz", - "integrity": "sha512-UuAdGCPVrCa1lecoAvpOQD7JFT7a9RdmhKWhFt5ioIcekSLJcerdLHuuL3w0qz//8kd1/SOt7oP0aJqdAJQrCw==", + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@chakra-ui/focus-lock/-/focus-lock-2.0.17.tgz", + "integrity": "sha512-V+m4Ml9E8QY66DUpHX/imInVvz5XJ5zx59Tl0aNancXgeVY1Rt/ZdxuZdPLCAmPC/MF3GUOgnEA+WU8i+VL6Gw==", "peer": true, "dependencies": { - "@chakra-ui/dom-utils": "2.0.6", - "react-focus-lock": "^2.9.2" + "@chakra-ui/dom-utils": "2.1.0", + "react-focus-lock": "^2.9.4" }, "peerDependencies": { "react": ">=18" } }, "node_modules/@chakra-ui/form-control": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/@chakra-ui/form-control/-/form-control-2.0.17.tgz", - "integrity": "sha512-34ptCaJ2LNvQNOlB6MAKsmH1AkT1xo7E+3Vw10Urr81yTOjDTM/iU6vG3JKPfRDMyXeowPjXmutlnuk72SSjRg==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@chakra-ui/form-control/-/form-control-2.0.18.tgz", + "integrity": "sha512-I0a0jG01IAtRPccOXSNugyRdUAe8Dy40ctqedZvznMweOXzbMCF1m+sHPLdWeWC/VI13VoAispdPY0/zHOdjsQ==", "peer": true, "dependencies": { "@chakra-ui/icon": "3.0.16", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-types": "2.0.7", "@chakra-ui/react-use-merge-refs": "2.0.7", "@chakra-ui/shared-utils": "2.0.5" @@ -862,9 +863,9 @@ } }, "node_modules/@chakra-ui/hooks": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@chakra-ui/hooks/-/hooks-2.1.6.tgz", - "integrity": "sha512-oMSOeoOF6/UpwTVlDFHSROAA4hPY8WgJ0erdHs1ZkuwAwHv7UzjDkvrb6xYzAAH9qHoFzc5RIBm6jVoh3LCc+Q==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/hooks/-/hooks-2.2.0.tgz", + "integrity": "sha512-GZE64mcr20w+3KbCUPqQJHHmiFnX5Rcp8jS3YntGA4D5X2qU85jka7QkjfBwv/iduZ5Ei0YpCMYGCpi91dhD1Q==", "peer": true, "dependencies": { "@chakra-ui/react-utils": "2.0.12", @@ -890,9 +891,9 @@ } }, "node_modules/@chakra-ui/image": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/@chakra-ui/image/-/image-2.0.15.tgz", - "integrity": "sha512-w2rElXtI3FHXuGpMCsSklus+pO1Pl2LWDwsCGdpBQUvGFbnHfl7MftQgTlaGHeD5OS95Pxva39hKrA2VklKHiQ==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@chakra-ui/image/-/image-2.0.16.tgz", + "integrity": "sha512-iFypk1slgP3OK7VIPOtkB0UuiqVxNalgA59yoRM43xLIeZAEZpKngUVno4A2kFS61yKN0eIY4hXD3Xjm+25EJA==", "peer": true, "dependencies": { "@chakra-ui/react-use-safe-layout-effect": "2.0.5", @@ -904,15 +905,15 @@ } }, "node_modules/@chakra-ui/input": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/@chakra-ui/input/-/input-2.0.20.tgz", - "integrity": "sha512-ypmsy4n4uNBVgn6Gd24Zrpi+qRf/T9WEzWkysuYC9Qfxo+i7yuf3snp7XmBy8KSGVSiXE11eO8ZN5oCg6Xg0jg==", + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/@chakra-ui/input/-/input-2.0.22.tgz", + "integrity": "sha512-dCIC0/Q7mjZf17YqgoQsnXn0bus6vgriTRn8VmxOc+WcVl+KBSTBWujGrS5yu85WIFQ0aeqQvziDnDQybPqAbA==", "peer": true, "dependencies": { - "@chakra-ui/form-control": "2.0.17", - "@chakra-ui/object-utils": "2.0.8", + "@chakra-ui/form-control": "2.0.18", + "@chakra-ui/object-utils": "2.1.0", "@chakra-ui/react-children-utils": "2.0.6", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/shared-utils": "2.0.5" }, "peerDependencies": { @@ -921,16 +922,16 @@ } }, "node_modules/@chakra-ui/layout": { - "version": "2.1.16", - "resolved": "https://registry.npmjs.org/@chakra-ui/layout/-/layout-2.1.16.tgz", - "integrity": "sha512-QFS3feozIGsvB0H74lUocev55aRF26eNrdmhfJifwikZAiq+zzZAMdBdNU9UJhHClnMOU8/iGZ0MF7ti4zQS1A==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/layout/-/layout-2.2.0.tgz", + "integrity": "sha512-WvfsWQjqzbCxv7pbpPGVKxj9eQr7MC2i37ag4Wn7ClIG7uPuwHYTUWOnjnu27O3H/zA4cRVZ4Hs3GpSPbojZFQ==", "peer": true, "dependencies": { "@chakra-ui/breakpoint-utils": "2.0.8", "@chakra-ui/icon": "3.0.16", - "@chakra-ui/object-utils": "2.0.8", + "@chakra-ui/object-utils": "2.1.0", "@chakra-ui/react-children-utils": "2.0.6", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/shared-utils": "2.0.5" }, "peerDependencies": { @@ -969,26 +970,26 @@ } }, "node_modules/@chakra-ui/menu": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@chakra-ui/menu/-/menu-2.1.9.tgz", - "integrity": "sha512-ue5nD4QJcl3H3UwN0zZNJmH89XUebnvEdW6THAUL41hDjJ0J/Fjpg9Sgzwug2aBbBXBNbVMsUuhcCj6x91d+IQ==", + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/@chakra-ui/menu/-/menu-2.1.15.tgz", + "integrity": "sha512-+1fh7KBKZyhy8wi7Q6nQAzrvjM6xggyhGMnSna0rt6FJVA2jlfkjb5FozyIVPnkfJKjkKd8THVhrs9E7pHNV/w==", "peer": true, "dependencies": { "@chakra-ui/clickable": "2.0.14", - "@chakra-ui/descendant": "3.0.13", + "@chakra-ui/descendant": "3.0.14", "@chakra-ui/lazy-utils": "2.0.5", - "@chakra-ui/popper": "3.0.13", + "@chakra-ui/popper": "3.0.14", "@chakra-ui/react-children-utils": "2.0.6", - "@chakra-ui/react-context": "2.0.7", - "@chakra-ui/react-use-animation-state": "2.0.8", + "@chakra-ui/react-context": "2.0.8", + "@chakra-ui/react-use-animation-state": "2.0.9", "@chakra-ui/react-use-controllable-state": "2.0.8", "@chakra-ui/react-use-disclosure": "2.0.8", - "@chakra-ui/react-use-focus-effect": "2.0.9", + "@chakra-ui/react-use-focus-effect": "2.0.11", "@chakra-ui/react-use-merge-refs": "2.0.7", - "@chakra-ui/react-use-outside-click": "2.0.7", + "@chakra-ui/react-use-outside-click": "2.1.0", "@chakra-ui/react-use-update-effect": "2.0.7", "@chakra-ui/shared-utils": "2.0.5", - "@chakra-ui/transition": "2.0.15" + "@chakra-ui/transition": "2.0.16" }, "peerDependencies": { "@chakra-ui/system": ">=2.0.0", @@ -997,19 +998,19 @@ } }, "node_modules/@chakra-ui/modal": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/@chakra-ui/modal/-/modal-2.2.9.tgz", - "integrity": "sha512-nTfNp7XsVwn5+xJOtstoFA8j0kq/9sJj7KesyYzjEDaMKvCZvIOntRYowoydho43jb4+YC7ebKhp0KOIINS0gg==", + "version": "2.2.12", + "resolved": "https://registry.npmjs.org/@chakra-ui/modal/-/modal-2.2.12.tgz", + "integrity": "sha512-F1nNmYGvyqlmxidbwaBM3y57NhZ/Qeyc8BE9tb1FL1v9nxQhkfrPvMQ9miK0O1syPN6aZ5MMj+uD3AsRFE+/tA==", "peer": true, "dependencies": { "@chakra-ui/close-button": "2.0.17", - "@chakra-ui/focus-lock": "2.0.16", - "@chakra-ui/portal": "2.0.15", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/focus-lock": "2.0.17", + "@chakra-ui/portal": "2.0.16", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-types": "2.0.7", "@chakra-ui/react-use-merge-refs": "2.0.7", "@chakra-ui/shared-utils": "2.0.5", - "@chakra-ui/transition": "2.0.15", + "@chakra-ui/transition": "2.0.16", "aria-hidden": "^1.2.2", "react-remove-scroll": "^2.5.5" }, @@ -1021,15 +1022,15 @@ } }, "node_modules/@chakra-ui/number-input": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/@chakra-ui/number-input/-/number-input-2.0.18.tgz", - "integrity": "sha512-cPkyAFFHHzeFBselrT1BtjlzMkJ6TKrTDUnHFlzqXy6aqeXuhrjFhMfXucjedSpOqedsP9ZbKFTdIAhu9DdL/A==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/@chakra-ui/number-input/-/number-input-2.0.19.tgz", + "integrity": "sha512-HDaITvtMEqOauOrCPsARDxKD9PSHmhWywpcyCSOX0lMe4xx2aaGhU0QQFhsJsykj8Er6pytMv6t0KZksdDv3YA==", "peer": true, "dependencies": { "@chakra-ui/counter": "2.0.14", - "@chakra-ui/form-control": "2.0.17", + "@chakra-ui/form-control": "2.0.18", "@chakra-ui/icon": "3.0.16", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-types": "2.0.7", "@chakra-ui/react-use-callback-ref": "2.0.7", "@chakra-ui/react-use-event-listener": "2.0.7", @@ -1051,20 +1052,20 @@ "peer": true }, "node_modules/@chakra-ui/object-utils": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@chakra-ui/object-utils/-/object-utils-2.0.8.tgz", - "integrity": "sha512-2upjT2JgRuiupdrtBWklKBS6tqeGMA77Nh6Q0JaoQuH/8yq+15CGckqn3IUWkWoGI0Fg3bK9LDlbbD+9DLw95Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/object-utils/-/object-utils-2.1.0.tgz", + "integrity": "sha512-tgIZOgLHaoti5PYGPTwK3t/cqtcycW0owaiOXoZOcpwwX/vlVb+H1jFsQyWiiwQVPt9RkoSLtxzXamx+aHH+bQ==", "peer": true }, "node_modules/@chakra-ui/pin-input": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/@chakra-ui/pin-input/-/pin-input-2.0.19.tgz", - "integrity": "sha512-6O7s4vWz4cqQ6zvMov9sYj6ZqWAsTxR/MNGe3DNgu1zWQg8veNCYtj1rNGhNS3eZNUMAa8uM2dXIphGTP53Xow==", + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/@chakra-ui/pin-input/-/pin-input-2.0.20.tgz", + "integrity": "sha512-IHVmerrtHN8F+jRB3W1HnMir1S1TUCWhI7qDInxqPtoRffHt6mzZgLZ0izx8p1fD4HkW4c1d4/ZLEz9uH9bBRg==", "peer": true, "dependencies": { - "@chakra-ui/descendant": "3.0.13", + "@chakra-ui/descendant": "3.0.14", "@chakra-ui/react-children-utils": "2.0.6", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-use-controllable-state": "2.0.8", "@chakra-ui/react-use-merge-refs": "2.0.7", "@chakra-ui/shared-utils": "2.0.5" @@ -1075,19 +1076,19 @@ } }, "node_modules/@chakra-ui/popover": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@chakra-ui/popover/-/popover-2.1.8.tgz", - "integrity": "sha512-ob7fAz+WWmXIq7iGHVB3wDKzZTj+T+noYBT/U1Q+jIf+jMr2WOpJLTfb0HTZcfhvn4EBFlfBg7Wk5qbXNaOn7g==", + "version": "2.1.12", + "resolved": "https://registry.npmjs.org/@chakra-ui/popover/-/popover-2.1.12.tgz", + "integrity": "sha512-Corh8trA1f3ydcMQqomgSvYNNhAlpxiBpMY2sglwYazOJcueHA8CI05cJVD0T/wwoTob7BShabhCGFZThn61Ng==", "peer": true, "dependencies": { "@chakra-ui/close-button": "2.0.17", "@chakra-ui/lazy-utils": "2.0.5", - "@chakra-ui/popper": "3.0.13", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/popper": "3.0.14", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-types": "2.0.7", - "@chakra-ui/react-use-animation-state": "2.0.8", + "@chakra-ui/react-use-animation-state": "2.0.9", "@chakra-ui/react-use-disclosure": "2.0.8", - "@chakra-ui/react-use-focus-effect": "2.0.9", + "@chakra-ui/react-use-focus-effect": "2.0.11", "@chakra-ui/react-use-focus-on-pointer-down": "2.0.6", "@chakra-ui/react-use-merge-refs": "2.0.7", "@chakra-ui/shared-utils": "2.0.5" @@ -1099,9 +1100,9 @@ } }, "node_modules/@chakra-ui/popper": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/@chakra-ui/popper/-/popper-3.0.13.tgz", - "integrity": "sha512-FwtmYz80Ju8oK3Z1HQfisUE7JIMmDsCQsRBu6XuJ3TFQnBHit73yjZmxKjuRJ4JgyT4WBnZoTF3ATbRKSagBeg==", + "version": "3.0.14", + "resolved": "https://registry.npmjs.org/@chakra-ui/popper/-/popper-3.0.14.tgz", + "integrity": "sha512-RDMmmSfjsmHJbVn2agDyoJpTbQK33fxx//njwJdeyM0zTG/3/4xjI/Cxru3acJ2Y+1jFGmPqhO81stFjnbtfIw==", "peer": true, "dependencies": { "@chakra-ui/react-types": "2.0.7", @@ -1113,12 +1114,12 @@ } }, "node_modules/@chakra-ui/portal": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/@chakra-ui/portal/-/portal-2.0.15.tgz", - "integrity": "sha512-z8v7K3j1/nMuBzp2+wRIIw7s/eipVtnXLdjK5yqbMxMRa44E8Mu5VNJLz3aQFLHXEUST+ifqrjImQeli9do6LQ==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@chakra-ui/portal/-/portal-2.0.16.tgz", + "integrity": "sha512-bVID0qbQ0l4xq38LdqAN4EKD4/uFkDnXzFwOlviC9sl0dNhzICDb1ltuH/Adl1d2HTMqyN60O3GO58eHy7plnQ==", "peer": true, "dependencies": { - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-use-safe-layout-effect": "2.0.5" }, "peerDependencies": { @@ -1127,12 +1128,12 @@ } }, "node_modules/@chakra-ui/progress": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@chakra-ui/progress/-/progress-2.1.5.tgz", - "integrity": "sha512-jj5Vp4lxUchuwp4RPCepM0yAyKi344bgsOd3Apd+ldxclDcewPc82fbwDu7g/Xv27LqJkT+7E/SlQy04wGrk0g==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/progress/-/progress-2.1.6.tgz", + "integrity": "sha512-hHh5Ysv4z6bK+j2GJbi/FT9CVyto2PtNUNwBmr3oNMVsoOUMoRjczfXvvYqp0EHr9PCpxqrq7sRwgQXUzhbDSw==", "peer": true, "dependencies": { - "@chakra-ui/react-context": "2.0.7" + "@chakra-ui/react-context": "2.0.8" }, "peerDependencies": { "@chakra-ui/system": ">=2.0.0", @@ -1140,15 +1141,15 @@ } }, "node_modules/@chakra-ui/provider": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@chakra-ui/provider/-/provider-2.1.2.tgz", - "integrity": "sha512-4lLlz8QuJv00BhfyKzWpzfoti9MDOdJ/MqXixJV/EZ02RMBOdE9qy9bSz/WckPC2MVhtRUuwMkxH+0QY21PXuw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/provider/-/provider-2.3.0.tgz", + "integrity": "sha512-vKgmjoLVS3NnHW8RSYwmhhda2ZTi3fQc1egkYSVwngGky4CsN15I+XDhxJitVd66H41cjah/UNJyoeq7ACseLA==", "peer": true, "dependencies": { - "@chakra-ui/css-reset": "2.0.12", - "@chakra-ui/portal": "2.0.15", + "@chakra-ui/css-reset": "2.1.2", + "@chakra-ui/portal": "2.0.16", "@chakra-ui/react-env": "3.0.0", - "@chakra-ui/system": "2.5.1", + "@chakra-ui/system": "2.5.8", "@chakra-ui/utils": "2.0.15" }, "peerDependencies": { @@ -1159,17 +1160,17 @@ } }, "node_modules/@chakra-ui/radio": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/@chakra-ui/radio/-/radio-2.0.19.tgz", - "integrity": "sha512-PlJiV59eGSmeKP4v/4+ccQUWGRd0cjPKkj/p3L+UbOf8pl9dWm8y9kIeL5TYbghQSDv0nzkrH4+yMnnDTZjdMQ==", + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/@chakra-ui/radio/-/radio-2.0.22.tgz", + "integrity": "sha512-GsQ5WAnLwivWl6gPk8P1x+tCcpVakCt5R5T0HumF7DGPXKdJbjS+RaFySrbETmyTJsKY4QrfXn+g8CWVrMjPjw==", "peer": true, "dependencies": { - "@chakra-ui/form-control": "2.0.17", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/form-control": "2.0.18", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-types": "2.0.7", "@chakra-ui/react-use-merge-refs": "2.0.7", "@chakra-ui/shared-utils": "2.0.5", - "@zag-js/focus-visible": "0.2.1" + "@zag-js/focus-visible": "0.2.2" }, "peerDependencies": { "@chakra-ui/system": ">=2.0.0", @@ -1177,60 +1178,61 @@ } }, "node_modules/@chakra-ui/react": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/react/-/react-2.5.1.tgz", - "integrity": "sha512-ugkaqfcNMb9L4TkalWiF3rnqfr0TlUUD46JZaDIZiORVisaSwXTZTQrVfG40VghhaJT28rnC5WtiE8kd567ZBQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react/-/react-2.7.0.tgz", + "integrity": "sha512-+FcUFQMsPfhWuM9Iu7uqufwwhmHN2IX6FWsBixYGOalO86dpgETsILMZP9PuWfgj7GpWiy2Dum6HXekh0Tk2Mg==", "peer": true, "dependencies": { - "@chakra-ui/accordion": "2.1.9", - "@chakra-ui/alert": "2.0.17", - "@chakra-ui/avatar": "2.2.5", - "@chakra-ui/breadcrumb": "2.1.4", - "@chakra-ui/button": "2.0.16", + "@chakra-ui/accordion": "2.2.0", + "@chakra-ui/alert": "2.1.0", + "@chakra-ui/avatar": "2.2.11", + "@chakra-ui/breadcrumb": "2.1.5", + "@chakra-ui/button": "2.0.18", "@chakra-ui/card": "2.1.6", - "@chakra-ui/checkbox": "2.2.10", + "@chakra-ui/checkbox": "2.2.15", "@chakra-ui/close-button": "2.0.17", "@chakra-ui/control-box": "2.0.13", "@chakra-ui/counter": "2.0.14", - "@chakra-ui/css-reset": "2.0.12", - "@chakra-ui/editable": "2.0.19", - "@chakra-ui/focus-lock": "2.0.16", - "@chakra-ui/form-control": "2.0.17", - "@chakra-ui/hooks": "2.1.6", + "@chakra-ui/css-reset": "2.1.2", + "@chakra-ui/editable": "3.0.0", + "@chakra-ui/focus-lock": "2.0.17", + "@chakra-ui/form-control": "2.0.18", + "@chakra-ui/hooks": "2.2.0", "@chakra-ui/icon": "3.0.16", - "@chakra-ui/image": "2.0.15", - "@chakra-ui/input": "2.0.20", - "@chakra-ui/layout": "2.1.16", + "@chakra-ui/image": "2.0.16", + "@chakra-ui/input": "2.0.22", + "@chakra-ui/layout": "2.2.0", "@chakra-ui/live-region": "2.0.13", "@chakra-ui/media-query": "3.2.12", - "@chakra-ui/menu": "2.1.9", - "@chakra-ui/modal": "2.2.9", - "@chakra-ui/number-input": "2.0.18", - "@chakra-ui/pin-input": "2.0.19", - "@chakra-ui/popover": "2.1.8", - "@chakra-ui/popper": "3.0.13", - "@chakra-ui/portal": "2.0.15", - "@chakra-ui/progress": "2.1.5", - "@chakra-ui/provider": "2.1.2", - "@chakra-ui/radio": "2.0.19", + "@chakra-ui/menu": "2.1.15", + "@chakra-ui/modal": "2.2.12", + "@chakra-ui/number-input": "2.0.19", + "@chakra-ui/pin-input": "2.0.20", + "@chakra-ui/popover": "2.1.12", + "@chakra-ui/popper": "3.0.14", + "@chakra-ui/portal": "2.0.16", + "@chakra-ui/progress": "2.1.6", + "@chakra-ui/provider": "2.3.0", + "@chakra-ui/radio": "2.0.22", "@chakra-ui/react-env": "3.0.0", - "@chakra-ui/select": "2.0.18", + "@chakra-ui/select": "2.0.19", "@chakra-ui/skeleton": "2.0.24", - "@chakra-ui/slider": "2.0.21", + "@chakra-ui/slider": "2.0.25", "@chakra-ui/spinner": "2.0.13", - "@chakra-ui/stat": "2.0.17", - "@chakra-ui/styled-system": "2.6.1", - "@chakra-ui/switch": "2.0.22", - "@chakra-ui/system": "2.5.1", - "@chakra-ui/table": "2.0.16", - "@chakra-ui/tabs": "2.1.8", - "@chakra-ui/tag": "2.0.17", - "@chakra-ui/textarea": "2.0.18", - "@chakra-ui/theme": "2.2.5", - "@chakra-ui/theme-utils": "2.0.11", - "@chakra-ui/toast": "6.0.1", - "@chakra-ui/tooltip": "2.2.6", - "@chakra-ui/transition": "2.0.15", + "@chakra-ui/stat": "2.0.18", + "@chakra-ui/stepper": "2.2.0", + "@chakra-ui/styled-system": "2.9.1", + "@chakra-ui/switch": "2.0.27", + "@chakra-ui/system": "2.5.8", + "@chakra-ui/table": "2.0.17", + "@chakra-ui/tabs": "2.1.9", + "@chakra-ui/tag": "3.0.0", + "@chakra-ui/textarea": "2.0.19", + "@chakra-ui/theme": "3.1.2", + "@chakra-ui/theme-utils": "2.0.18", + "@chakra-ui/toast": "6.1.4", + "@chakra-ui/tooltip": "2.2.9", + "@chakra-ui/transition": "2.0.16", "@chakra-ui/utils": "2.0.15", "@chakra-ui/visually-hidden": "2.0.15" }, @@ -1252,9 +1254,9 @@ } }, "node_modules/@chakra-ui/react-context": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-context/-/react-context-2.0.7.tgz", - "integrity": "sha512-i7EGmSU+h2GB30cwrKB4t1R5BMHyGoJM5L2Zz7b+ZUX4aAqyPcfe97wPiQB6Rgr1ImGXrUeov4CDVrRZ2FPgLQ==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-context/-/react-context-2.0.8.tgz", + "integrity": "sha512-tRTKdn6lCTXM6WPjSokAAKCw2ioih7Eg8cNgaYRSwKBck8nkz9YqxgIIEj3dJD7MGtpl24S/SNI98iRWkRwR/A==", "peer": true, "peerDependencies": { "react": ">=18" @@ -1282,12 +1284,12 @@ } }, "node_modules/@chakra-ui/react-use-animation-state": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-animation-state/-/react-use-animation-state-2.0.8.tgz", - "integrity": "sha512-xv9zSF2Rd1mHWQ+m5DLBWeh4atF8qrNvsOs3MNrvxKYBS3f79N3pqcQGrWAEvirXWXfiCeje2VAkEggqFRIo+Q==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-animation-state/-/react-use-animation-state-2.0.9.tgz", + "integrity": "sha512-WFoD5OG03PBmzJCoRwM8rVfU442AvKBPPgA0yGGlKioH29OGuX7W78Ml+cYdXxonTiB03YSRZzUwaUnP4wAy1Q==", "peer": true, "dependencies": { - "@chakra-ui/dom-utils": "2.0.6", + "@chakra-ui/dom-utils": "2.1.0", "@chakra-ui/react-use-event-listener": "2.0.7" }, "peerDependencies": { @@ -1340,12 +1342,12 @@ } }, "node_modules/@chakra-ui/react-use-focus-effect": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-focus-effect/-/react-use-focus-effect-2.0.9.tgz", - "integrity": "sha512-20nfNkpbVwyb41q9wxp8c4jmVp6TUGAPE3uFTDpiGcIOyPW5aecQtPmTXPMJH+2aa8Nu1wyoT1btxO+UYiQM3g==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-focus-effect/-/react-use-focus-effect-2.0.11.tgz", + "integrity": "sha512-/zadgjaCWD50TfuYsO1vDS2zSBs2p/l8P2DPEIA8FuaowbBubKrk9shKQDWmbfDU7KArGxPxrvo+VXvskPPjHw==", "peer": true, "dependencies": { - "@chakra-ui/dom-utils": "2.0.6", + "@chakra-ui/dom-utils": "2.1.0", "@chakra-ui/react-use-event-listener": "2.0.7", "@chakra-ui/react-use-safe-layout-effect": "2.0.5", "@chakra-ui/react-use-update-effect": "2.0.7" @@ -1397,9 +1399,9 @@ } }, "node_modules/@chakra-ui/react-use-outside-click": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-outside-click/-/react-use-outside-click-2.0.7.tgz", - "integrity": "sha512-MsAuGLkwYNxNJ5rb8lYNvXApXxYMnJ3MzqBpQj1kh5qP/+JSla9XMjE/P94ub4fSEttmNSqs43SmPPrmPuihsQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-outside-click/-/react-use-outside-click-2.1.0.tgz", + "integrity": "sha512-JanCo4QtWvMl9ZZUpKJKV62RlMWDFdPCE0Q64a7eWTOQgWWcpyBW7TOYRunQTqrK30FqkYFJCOlAWOtn+6Rw7A==", "peer": true, "dependencies": { "@chakra-ui/react-use-callback-ref": "2.0.7" @@ -1441,12 +1443,12 @@ } }, "node_modules/@chakra-ui/react-use-size": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-size/-/react-use-size-2.0.9.tgz", - "integrity": "sha512-Jce7QmO1jlQZq+Y77VKckWzroRnajChzUQ8xhLQZO6VbYvrpg3cu+X2QCz3G+MZzB+1/hnvvAqmZ+uJLd8rEJg==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-size/-/react-use-size-2.0.10.tgz", + "integrity": "sha512-fdIkH14GDnKQrtQfxX8N3gxbXRPXEl67Y3zeD9z4bKKcQUAYIMqs0MsPZY+FMpGQw8QqafM44nXfL038aIrC5w==", "peer": true, "dependencies": { - "@zag-js/element-size": "0.3.1" + "@zag-js/element-size": "0.3.2" }, "peerDependencies": { "react": ">=18" @@ -1486,12 +1488,12 @@ } }, "node_modules/@chakra-ui/select": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/@chakra-ui/select/-/select-2.0.18.tgz", - "integrity": "sha512-1d2lUT5LM6oOs5x4lzBh4GFDuXX62+lr+sgV7099g951/5UNbb0CS2hSZHsO7yZThLNbr7QTWZvAOAayVcGzdw==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/@chakra-ui/select/-/select-2.0.19.tgz", + "integrity": "sha512-eAlFh+JhwtJ17OrB6fO6gEAGOMH18ERNrXLqWbYLrs674Le7xuREgtuAYDoxUzvYXYYTTdOJtVbcHGriI3o6rA==", "peer": true, "dependencies": { - "@chakra-ui/form-control": "2.0.17", + "@chakra-ui/form-control": "2.0.18", "@chakra-ui/shared-utils": "2.0.5" }, "peerDependencies": { @@ -1521,20 +1523,20 @@ } }, "node_modules/@chakra-ui/slider": { - "version": "2.0.21", - "resolved": "https://registry.npmjs.org/@chakra-ui/slider/-/slider-2.0.21.tgz", - "integrity": "sha512-Mm76yJxEqJl21+3waEcKg3tM8Y4elJ7mcViN6Brj35PTfzUJfSJxeBGo1nLPJ+X5jLj7o/L4kfBmUk3lY4QYEQ==", + "version": "2.0.25", + "resolved": "https://registry.npmjs.org/@chakra-ui/slider/-/slider-2.0.25.tgz", + "integrity": "sha512-FnWSi0AIXP+9sHMCPboOKGqm902k8dJtsJ7tu3D0AcKkE62WtYLZ2sTqvwJxCfSl4KqVI1i571SrF9WadnnJ8w==", "peer": true, "dependencies": { "@chakra-ui/number-utils": "2.0.7", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-types": "2.0.7", "@chakra-ui/react-use-callback-ref": "2.0.7", "@chakra-ui/react-use-controllable-state": "2.0.8", "@chakra-ui/react-use-latest-ref": "2.0.5", "@chakra-ui/react-use-merge-refs": "2.0.7", "@chakra-ui/react-use-pan-event": "2.0.9", - "@chakra-ui/react-use-size": "2.0.9", + "@chakra-ui/react-use-size": "2.0.10", "@chakra-ui/react-use-update-effect": "2.0.7" }, "peerDependencies": { @@ -1556,13 +1558,28 @@ } }, "node_modules/@chakra-ui/stat": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/@chakra-ui/stat/-/stat-2.0.17.tgz", - "integrity": "sha512-PhD+5oVLWjQmGLfeZSmexp3AtLcaggWBwoMZ4z8QMZIQzf/fJJWMk0bMqxlpTv8ORDkfY/4ImuFB/RJHvcqlcA==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@chakra-ui/stat/-/stat-2.0.18.tgz", + "integrity": "sha512-wKyfBqhVlIs9bkSerUc6F9KJMw0yTIEKArW7dejWwzToCLPr47u+CtYO6jlJHV6lRvkhi4K4Qc6pyvtJxZ3VpA==", + "peer": true, + "dependencies": { + "@chakra-ui/icon": "3.0.16", + "@chakra-ui/react-context": "2.0.8", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/stepper": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/stepper/-/stepper-2.2.0.tgz", + "integrity": "sha512-8ZLxV39oghSVtOUGK8dX8Z6sWVSQiKVmsK4c3OQDa8y2TvxP0VtFD0Z5U1xJlOjQMryZRWhGj9JBc3iQLukuGg==", "peer": true, "dependencies": { "@chakra-ui/icon": "3.0.16", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/shared-utils": "2.0.5" }, "peerDependencies": { @@ -1571,9 +1588,9 @@ } }, "node_modules/@chakra-ui/styled-system": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/styled-system/-/styled-system-2.6.1.tgz", - "integrity": "sha512-jy/1dVi1LxjoRCm+Eo5mqBgvPy5SCWMlIcz6GbIZBDpkGeKZwtqrZLjekxxLBCy8ORY+kJlUB0FT6AzVR/1tjw==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/styled-system/-/styled-system-2.9.1.tgz", + "integrity": "sha512-jhYKBLxwOPi9/bQt9kqV3ELa/4CjmNNruTyXlPp5M0v0+pDMUngPp48mVLoskm9RKZGE0h1qpvj/jZ3K7c7t8w==", "peer": true, "dependencies": { "@chakra-ui/shared-utils": "2.0.5", @@ -1582,12 +1599,12 @@ } }, "node_modules/@chakra-ui/switch": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/@chakra-ui/switch/-/switch-2.0.22.tgz", - "integrity": "sha512-+/Yy6y7VFD91uSPruF8ZvePi3tl5D8UNVATtWEQ+QBI92DLSM+PtgJ2F0Y9GMZ9NzMxpZ80DqwY7/kqcPCfLvw==", + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/@chakra-ui/switch/-/switch-2.0.27.tgz", + "integrity": "sha512-z76y2fxwMlvRBrC5W8xsZvo3gP+zAEbT3Nqy5P8uh/IPd5OvDsGeac90t5cgnQTyxMOpznUNNK+1eUZqtLxWnQ==", "peer": true, "dependencies": { - "@chakra-ui/checkbox": "2.2.10", + "@chakra-ui/checkbox": "2.2.15", "@chakra-ui/shared-utils": "2.0.5" }, "peerDependencies": { @@ -1597,18 +1614,18 @@ } }, "node_modules/@chakra-ui/system": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/system/-/system-2.5.1.tgz", - "integrity": "sha512-4+86OrcSoq7lGkm5fh+sJ3IWXSTzjz+HOllRbCW2Rtnmcg7ritiXVNV2VygEg2DrCcx5+tNqRHDM764zW+AEug==", + "version": "2.5.8", + "resolved": "https://registry.npmjs.org/@chakra-ui/system/-/system-2.5.8.tgz", + "integrity": "sha512-Vy8UUaCxikOzOGE54IP8tKouvU38rEYU1HCSquU9+oe7Jd70HaiLa4vmUKvHyMUmxkOzDHIkgZLbVQCubSnN5w==", "peer": true, "dependencies": { "@chakra-ui/color-mode": "2.1.12", - "@chakra-ui/object-utils": "2.0.8", + "@chakra-ui/object-utils": "2.1.0", "@chakra-ui/react-utils": "2.0.12", - "@chakra-ui/styled-system": "2.6.1", - "@chakra-ui/theme-utils": "2.0.11", + "@chakra-ui/styled-system": "2.9.1", + "@chakra-ui/theme-utils": "2.0.18", "@chakra-ui/utils": "2.0.15", - "react-fast-compare": "3.2.0" + "react-fast-compare": "3.2.1" }, "peerDependencies": { "@emotion/react": "^11.0.0", @@ -1617,12 +1634,12 @@ } }, "node_modules/@chakra-ui/table": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/@chakra-ui/table/-/table-2.0.16.tgz", - "integrity": "sha512-vWDXZ6Ad3Aj66curp1tZBHvCfQHX2FJ4ijLiqGgQszWFIchfhJ5vMgEBJaFMZ+BN1draAjuRTZqaQefOApzvRg==", + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@chakra-ui/table/-/table-2.0.17.tgz", + "integrity": "sha512-OScheTEp1LOYvTki2NFwnAYvac8siAhW9BI5RKm5f5ORL2gVJo4I72RUqE0aKe1oboxgm7CYt5afT5PS5cG61A==", "peer": true, "dependencies": { - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/shared-utils": "2.0.5" }, "peerDependencies": { @@ -1631,16 +1648,16 @@ } }, "node_modules/@chakra-ui/tabs": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@chakra-ui/tabs/-/tabs-2.1.8.tgz", - "integrity": "sha512-B7LeFN04Ny2jsSy5TFOQxnbZ6ITxGxLxsB2PE0vvQjMSblBrUryOxdjw80HZhfiw6od0ikK9CeKQOIt9QCguSw==", + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@chakra-ui/tabs/-/tabs-2.1.9.tgz", + "integrity": "sha512-Yf8e0kRvaGM6jfkJum0aInQ0U3ZlCafmrYYni2lqjcTtThqu+Yosmo3iYlnullXxCw5MVznfrkb9ySvgQowuYg==", "peer": true, "dependencies": { "@chakra-ui/clickable": "2.0.14", - "@chakra-ui/descendant": "3.0.13", + "@chakra-ui/descendant": "3.0.14", "@chakra-ui/lazy-utils": "2.0.5", "@chakra-ui/react-children-utils": "2.0.6", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-use-controllable-state": "2.0.8", "@chakra-ui/react-use-merge-refs": "2.0.7", "@chakra-ui/react-use-safe-layout-effect": "2.0.5", @@ -1652,13 +1669,13 @@ } }, "node_modules/@chakra-ui/tag": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/@chakra-ui/tag/-/tag-2.0.17.tgz", - "integrity": "sha512-A47zE9Ft9qxOJ+5r1cUseKRCoEdqCRzFm0pOtZgRcckqavglk75Xjgz8HbBpUO2zqqd49MlqdOwR8o87fXS1vg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/tag/-/tag-3.0.0.tgz", + "integrity": "sha512-YWdMmw/1OWRwNkG9pX+wVtZio+B89odaPj6XeMn5nfNN8+jyhIEpouWv34+CO9G0m1lupJTxPSfgLAd7cqXZMA==", "peer": true, "dependencies": { "@chakra-ui/icon": "3.0.16", - "@chakra-ui/react-context": "2.0.7" + "@chakra-ui/react-context": "2.0.8" }, "peerDependencies": { "@chakra-ui/system": ">=2.0.0", @@ -1666,12 +1683,12 @@ } }, "node_modules/@chakra-ui/textarea": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/@chakra-ui/textarea/-/textarea-2.0.18.tgz", - "integrity": "sha512-aGHHb29vVifO0OtcK/k8cMykzjOKo/coDTU0NJqz7OOLAWIMNV2eGenvmO1n9tTZbmbqHiX+Sa1nPRX+pd14lg==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/@chakra-ui/textarea/-/textarea-2.0.19.tgz", + "integrity": "sha512-adJk+qVGsFeJDvfn56CcJKKse8k7oMGlODrmpnpTdF+xvlsiTM+1GfaJvgNSpHHuQFdz/A0z1uJtfGefk0G2ZA==", "peer": true, "dependencies": { - "@chakra-ui/form-control": "2.0.17", + "@chakra-ui/form-control": "2.0.18", "@chakra-ui/shared-utils": "2.0.5" }, "peerDependencies": { @@ -1680,23 +1697,23 @@ } }, "node_modules/@chakra-ui/theme": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/@chakra-ui/theme/-/theme-2.2.5.tgz", - "integrity": "sha512-hYASZMwu0NqEv6PPydu+F3I+kMNd44yR4TwjR/lXBz/LEh64L6UPY6kQjebCfgdVtsGdl3HKg+eLlfa7SvfRgw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme/-/theme-3.1.2.tgz", + "integrity": "sha512-ebUXMS3LZw2OZxEQNYaFw3/XuA3jpyprhS/frjHMvZKSOaCjMW+c9z25S0jp1NnpQff08VGI8EWbyVZECXU1QA==", "peer": true, "dependencies": { "@chakra-ui/anatomy": "2.1.2", "@chakra-ui/shared-utils": "2.0.5", - "@chakra-ui/theme-tools": "2.0.17" + "@chakra-ui/theme-tools": "2.0.18" }, "peerDependencies": { - "@chakra-ui/styled-system": ">=2.0.0" + "@chakra-ui/styled-system": ">=2.8.0" } }, "node_modules/@chakra-ui/theme-tools": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/@chakra-ui/theme-tools/-/theme-tools-2.0.17.tgz", - "integrity": "sha512-Auu38hnihlJZQcPok6itRDBbwof3TpXGYtDPnOvrq4Xp7jnab36HLt7KEXSDPXbtOk3ZqU99pvI1en5LbDrdjg==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme-tools/-/theme-tools-2.0.18.tgz", + "integrity": "sha512-MbiRuXb2tb41FbnW41zhsYYAU0znlpfYZnu0mxCf8U2otCwPekJCfESUGYypjq4JnydQ7TDOk+Kz/Wi974l4mw==", "peer": true, "dependencies": { "@chakra-ui/anatomy": "2.1.2", @@ -1708,48 +1725,49 @@ } }, "node_modules/@chakra-ui/theme-utils": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@chakra-ui/theme-utils/-/theme-utils-2.0.11.tgz", - "integrity": "sha512-lBAay6Sq3/fl7exd3mFxWAbzgdQowytor0fnlHrpNStn1HgFjXukwsf6356XQOie2Vd8qaMM7qZtMh4AiC0dcg==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme-utils/-/theme-utils-2.0.18.tgz", + "integrity": "sha512-aSbkUUiFpc1NHC7lQdA6uYlr6EcZFXz6b4aJ7VRDpqTiywvqYnvfGzhmsB0z94vgtS9qXc6HoIwBp25jYGV2MA==", "peer": true, "dependencies": { "@chakra-ui/shared-utils": "2.0.5", - "@chakra-ui/styled-system": "2.6.1", - "@chakra-ui/theme": "2.2.5", + "@chakra-ui/styled-system": "2.9.1", + "@chakra-ui/theme": "3.1.2", "lodash.mergewith": "4.6.2" } }, "node_modules/@chakra-ui/toast": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/toast/-/toast-6.0.1.tgz", - "integrity": "sha512-ej2kJXvu/d2h6qnXU5D8XTyw0qpsfmbiU7hUffo/sPxkz89AUOQ08RUuUmB1ssW/FZcQvNMJ5WgzCTKHGBxtxw==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@chakra-ui/toast/-/toast-6.1.4.tgz", + "integrity": "sha512-wAcPHq/N/ar4jQxkUGhnsbp+lx2eKOpHxn1KaWdHXUkqCNUA1z09fvBsoMyzObSiiwbDuQPZG5RxsOhzfPZX4Q==", "peer": true, "dependencies": { - "@chakra-ui/alert": "2.0.17", + "@chakra-ui/alert": "2.1.0", "@chakra-ui/close-button": "2.0.17", - "@chakra-ui/portal": "2.0.15", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/portal": "2.0.16", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-use-timeout": "2.0.5", "@chakra-ui/react-use-update-effect": "2.0.7", "@chakra-ui/shared-utils": "2.0.5", - "@chakra-ui/styled-system": "2.6.1", - "@chakra-ui/theme": "2.2.5" + "@chakra-ui/styled-system": "2.9.1", + "@chakra-ui/theme": "3.1.2" }, "peerDependencies": { - "@chakra-ui/system": "2.5.1", + "@chakra-ui/system": "2.5.8", "framer-motion": ">=4.0.0", "react": ">=18", "react-dom": ">=18" } }, "node_modules/@chakra-ui/tooltip": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/@chakra-ui/tooltip/-/tooltip-2.2.6.tgz", - "integrity": "sha512-4cbneidZ5+HCWge3OZzewRQieIvhDjSsl+scrl4Scx7E0z3OmqlTIESU5nGIZDBLYqKn/UirEZhqaQ33FOS2fw==", + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/@chakra-ui/tooltip/-/tooltip-2.2.9.tgz", + "integrity": "sha512-ZoksllanqXRUyMDaiogvUVJ+RdFXwZrfrwx3RV22fejYZIQ602hZ3QHtHLB5ZnKFLbvXKMZKM23HxFTSb0Ytqg==", "peer": true, "dependencies": { - "@chakra-ui/popper": "3.0.13", - "@chakra-ui/portal": "2.0.15", + "@chakra-ui/dom-utils": "2.1.0", + "@chakra-ui/popper": "3.0.14", + "@chakra-ui/portal": "2.0.16", "@chakra-ui/react-types": "2.0.7", "@chakra-ui/react-use-disclosure": "2.0.8", "@chakra-ui/react-use-event-listener": "2.0.7", @@ -1764,9 +1782,9 @@ } }, "node_modules/@chakra-ui/transition": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/@chakra-ui/transition/-/transition-2.0.15.tgz", - "integrity": "sha512-o9LBK/llQfUDHF/Ty3cQ6nShpekKTqHUoJlUOzNKhoTsNpoRerr9v0jwojrX1YI02KtVjfhFU6PiqXlDfREoNw==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@chakra-ui/transition/-/transition-2.0.16.tgz", + "integrity": "sha512-E+RkwlPc3H7P1crEXmXwDXMB2lqY2LLia2P5siQ4IEnRWIgZXlIw+8Em+NtHNgusel2N+9yuB0wT9SeZZeZ3CQ==", "peer": true, "dependencies": { "@chakra-ui/shared-utils": "2.0.5" @@ -3061,9 +3079,9 @@ } }, "node_modules/@popperjs/core": { - "version": "2.11.6", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", - "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==", + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", "peer": true, "funding": { "type": "opencollective", @@ -3361,12 +3379,11 @@ }, "node_modules/@tinystacks/ops-core": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@tinystacks/ops-core/-/ops-core-0.4.0.tgz", - "integrity": "sha512-j1QdSHzJ2YhQiRacArfKNkrvzcksWsZAXTDiliZMTBsNbtbRQVpfbkOowHb1B/iUU6hOENEh83u8LTW0TOH59A==", + "resolved": "file:../ops-core/tinystacks-ops-core-0.4.0.tgz", + "integrity": "sha512-s16ZM6vwdoWLmsq1HJAOjhOStZ198vnQIO7DabSLooiR4N8nCgQ56LXdNLL5BoF3uDP2amWg3poSiy96WSUk3g==", "peer": true, "dependencies": { "@tinystacks/ops-model": "^0.5.0", - "@types/react": "^18.0.28", "http-status-codes": "^2.2.0", "lodash.get": "^4.4.2", "lodash.isnil": "^4.0.0" @@ -3486,6 +3503,16 @@ "@types/unist": "*" } }, + "node_modules/@types/http-status-codes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/http-status-codes/-/http-status-codes-1.2.0.tgz", + "integrity": "sha512-vjpjevMaxtrtdrrV/TQNIFT7mKL8nvIKG7G/LjMDZdVvqRxRg5SNfGkeuSaowVc0rbK8xDA2d/Etunyb5GyzzA==", + "deprecated": "This is a stub types definition for http-status-codes (https://github.com/prettymuchbryce/node-http-status). http-status-codes provides its own type definitions, so you don\\'t need @types/http-status-codes installed!", + "dev": true, + "dependencies": { + "http-status-codes": "*" + } + }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", @@ -3603,9 +3630,9 @@ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" }, "node_modules/@types/node": { - "version": "20.2.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.2.5.tgz", - "integrity": "sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ==", + "version": "20.3.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.1.tgz", + "integrity": "sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==", "dev": true }, "node_modules/@types/parse-json": { @@ -3625,9 +3652,9 @@ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, "node_modules/@types/react": { - "version": "18.0.28", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.28.tgz", - "integrity": "sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==", + "version": "18.2.12", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.12.tgz", + "integrity": "sha512-ndmBMLCgn38v3SntMeoJaIrO6tGHYKMEBohCUmw8HoLLQdRMOIGXfeYaBTLe2lsFaSB3MOK1VXscYFnmLtTSmw==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -3635,9 +3662,9 @@ } }, "node_modules/@types/react-dom": { - "version": "18.0.11", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz", - "integrity": "sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==", + "version": "18.2.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.5.tgz", + "integrity": "sha512-sRQsOS/sCLnpQhR4DSKGTtWFE3FZjpQa86KPVbhUqdYMRZ9FEFcfAytKhR/vUG2rH1oFbOOej6cuD7MFSobDRQ==", "dev": true, "dependencies": { "@types/react": "*" @@ -4061,15 +4088,15 @@ "dev": true }, "node_modules/@zag-js/element-size": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@zag-js/element-size/-/element-size-0.3.1.tgz", - "integrity": "sha512-jR5j4G//bRzcxwAACWi9EfITnwjNmn10LxF4NmALrdZU7/PNWP3uUCdhCxd/0SCyeiJXUl0yvD57rWAbKPs1nw==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@zag-js/element-size/-/element-size-0.3.2.tgz", + "integrity": "sha512-bVvvigUGvAuj7PCkE5AbzvTJDTw5f3bg9nQdv+ErhVN8SfPPppLJEmmWdxqsRzrHXgx8ypJt/+Ty0kjtISVDsQ==", "peer": true }, "node_modules/@zag-js/focus-visible": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@zag-js/focus-visible/-/focus-visible-0.2.1.tgz", - "integrity": "sha512-19uTjoZGP4/Ax7kSNhhay9JA83BirKzpqLkeEAilrpdI1hE5xuq6q+tzJOsrMOOqJrm7LkmZp5lbsTQzvK2pYg==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@zag-js/focus-visible/-/focus-visible-0.2.2.tgz", + "integrity": "sha512-0j2gZq8HiZ51z4zNnSkF1iSkqlwRDvdH+son3wHdoz+7IUdMN/5Exd4TxMJ+gq2Of1DiXReYLL9qqh2PdQ4wgA==", "peer": true }, "node_modules/abab": { @@ -6305,9 +6332,9 @@ } }, "node_modules/framer-motion": { - "version": "10.2.3", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-10.2.3.tgz", - "integrity": "sha512-+TBxfia8Ym/lYSvTAhome7LYFIR8fKhImuln5zcp9D8nFI2wNSDdBRtK5WoWTyjHXJ7efv5xv376Ma85zHhtUg==", + "version": "10.12.16", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-10.12.16.tgz", + "integrity": "sha512-w/SfWEIWJkYSgRHYBmln7EhcNo31ao8Xexol8lGXf1pR/tlnBtf1HcxoUmEiEh6pacB4/geku5ami53AAQWHMQ==", "peer": true, "dependencies": { "tslib": "^2.4.0" @@ -6760,8 +6787,7 @@ "node_modules/http-status-codes": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.2.0.tgz", - "integrity": "sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==", - "peer": true + "integrity": "sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==" }, "node_modules/https-proxy-agent": { "version": "5.0.1", @@ -10673,9 +10699,9 @@ } }, "node_modules/react-fast-compare": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", - "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.1.tgz", + "integrity": "sha512-xTYf9zFim2pEif/Fw16dBiXpe0hoy5PxcD8+OwBnTtNLfIm3g6WxhKNurY+6OmdH1u6Ta/W/Vl6vjbYP1MFnDg==", "peer": true }, "node_modules/react-focus-lock": { @@ -10742,12 +10768,12 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" }, "node_modules/react-remove-scroll": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz", - "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.6.tgz", + "integrity": "sha512-bO856ad1uDYLefgArk559IzUNeQ6SWH4QnrevIUjH+GczV56giDfl3h0Idptf2oIKxQmd1p9BN25jleKodTALg==", "peer": true, "dependencies": { - "react-remove-scroll-bar": "^2.3.3", + "react-remove-scroll-bar": "^2.3.4", "react-style-singleton": "^2.2.1", "tslib": "^2.1.0", "use-callback-ref": "^1.3.0", @@ -11728,9 +11754,9 @@ } }, "node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", "peer": true }, "node_modules/tsutils": { @@ -11802,16 +11828,16 @@ } }, "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.3.tgz", + "integrity": "sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, "node_modules/typescript-json-schema": { @@ -11839,6 +11865,19 @@ "integrity": "sha512-VmVm7gXwhkUimRfBwVI1CHhwp86jDWR04B5FGebMMyxV90SlCmFujwUHrxTD4oO+SOYU86SoxvhgeRQJY7iXFg==", "dev": true }, + "node_modules/typescript-json-schema/node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, "node_modules/uglify-js": { "version": "3.17.4", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", @@ -12878,28 +12917,28 @@ "dev": true }, "@chakra-ui/accordion": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@chakra-ui/accordion/-/accordion-2.1.9.tgz", - "integrity": "sha512-a9CKIAUHezc0f5FR/SQ4GVxnWuIb2HbDTxTEKTp58w/J9pecIbJaNrJ5TUZ0MVbDU9jkgO9RsZ29jkja8PomAw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/accordion/-/accordion-2.2.0.tgz", + "integrity": "sha512-2IK1iLzTZ22u8GKPPPn65mqJdZidn4AvkgAbv17ISdKA07VHJ8jSd4QF1T5iCXjKfZ0XaXozmhP4kDhjwF2IbQ==", "peer": true, "requires": { - "@chakra-ui/descendant": "3.0.13", + "@chakra-ui/descendant": "3.0.14", "@chakra-ui/icon": "3.0.16", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-use-controllable-state": "2.0.8", "@chakra-ui/react-use-merge-refs": "2.0.7", "@chakra-ui/shared-utils": "2.0.5", - "@chakra-ui/transition": "2.0.15" + "@chakra-ui/transition": "2.0.16" } }, "@chakra-ui/alert": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/@chakra-ui/alert/-/alert-2.0.17.tgz", - "integrity": "sha512-0Y5vw+HkeXpwbL1roVpSSNM6luMRmUbwduUSHEA4OnX1ismvsDb1ZBfpi4Vxp6w8euJ2Uj6df3krbd5tbCP6tg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/alert/-/alert-2.1.0.tgz", + "integrity": "sha512-OcfHwoXI5VrmM+tHJTHT62Bx6TfyfCxSa0PWUOueJzSyhlUOKBND5we6UtrOB7D0jwX45qKKEDJOLG5yCG21jQ==", "peer": true, "requires": { "@chakra-ui/icon": "3.0.16", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/shared-utils": "2.0.5", "@chakra-ui/spinner": "2.0.13" } @@ -12911,25 +12950,25 @@ "peer": true }, "@chakra-ui/avatar": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/@chakra-ui/avatar/-/avatar-2.2.5.tgz", - "integrity": "sha512-TEHXuGE79+fEn61qJ7J/A0Ec+WjyNwobrDTATcLg9Zx2/WEMmZNfrWIAlI5ANQAwVbdSWeGVbyoLAK5mbcrE0A==", + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/@chakra-ui/avatar/-/avatar-2.2.11.tgz", + "integrity": "sha512-CJFkoWvlCTDJTUBrKA/aVyG5Zz6TBEIVmmsJtqC6VcQuVDTxkWod8ruXnjb0LT2DUveL7xR5qZM9a5IXcsH3zg==", "peer": true, "requires": { - "@chakra-ui/image": "2.0.15", + "@chakra-ui/image": "2.0.16", "@chakra-ui/react-children-utils": "2.0.6", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/shared-utils": "2.0.5" } }, "@chakra-ui/breadcrumb": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@chakra-ui/breadcrumb/-/breadcrumb-2.1.4.tgz", - "integrity": "sha512-vyBx5TAxPnHhb0b8nyRGfqyjleD//9mySFhk96c9GL+T6YDO4swHw5y/kvDv3Ngc/iRwJ9hdI49PZKwPxLqsEg==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@chakra-ui/breadcrumb/-/breadcrumb-2.1.5.tgz", + "integrity": "sha512-p3eQQrHQBkRB69xOmNyBJqEdfCrMt+e0eOH+Pm/DjFWfIVIbnIaFbmDCeWClqlLa21Ypc6h1hR9jEmvg8kmOog==", "peer": true, "requires": { "@chakra-ui/react-children-utils": "2.0.6", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/shared-utils": "2.0.5" } }, @@ -12943,12 +12982,12 @@ } }, "@chakra-ui/button": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/@chakra-ui/button/-/button-2.0.16.tgz", - "integrity": "sha512-NjuTKa7gNhnGSUutKuTc8HoAOe9WWIigpciBG7yj3ok67kg8bXtSzPyQFZlgTY6XGdAckWTT+Do4tvhwa5LA+g==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@chakra-ui/button/-/button-2.0.18.tgz", + "integrity": "sha512-E3c99+lOm6ou4nQVOTLkG+IdOPMjsQK+Qe7VyP8A/xeAMFONuibrWPRPpprr4ZkB4kEoLMfNuyH2+aEza3ScUA==", "peer": true, "requires": { - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-use-merge-refs": "2.0.7", "@chakra-ui/shared-utils": "2.0.5", "@chakra-ui/spinner": "2.0.13" @@ -12964,13 +13003,13 @@ } }, "@chakra-ui/checkbox": { - "version": "2.2.10", - "resolved": "https://registry.npmjs.org/@chakra-ui/checkbox/-/checkbox-2.2.10.tgz", - "integrity": "sha512-vzxEjw99qj7loxAdP1WuHNt4EAvj/t6cc8oxyOB2mEvkAzhxI34rLR+3zWDuHWsmhyUO+XEDh4FiWdR+DK5Siw==", + "version": "2.2.15", + "resolved": "https://registry.npmjs.org/@chakra-ui/checkbox/-/checkbox-2.2.15.tgz", + "integrity": "sha512-Ju2yQjX8azgFa5f6VLPuwdGYobZ+rdbcYqjiks848JvPc75UsPhpS05cb4XlrKT7M16I8txDA5rPJdqqFicHCA==", "peer": true, "requires": { - "@chakra-ui/form-control": "2.0.17", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/form-control": "2.0.18", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-types": "2.0.7", "@chakra-ui/react-use-callback-ref": "2.0.7", "@chakra-ui/react-use-controllable-state": "2.0.8", @@ -12979,7 +13018,7 @@ "@chakra-ui/react-use-update-effect": "2.0.7", "@chakra-ui/shared-utils": "2.0.5", "@chakra-ui/visually-hidden": "2.0.15", - "@zag-js/focus-visible": "0.2.1" + "@zag-js/focus-visible": "0.2.2" } }, "@chakra-ui/clickable": { @@ -13029,35 +13068,35 @@ } }, "@chakra-ui/css-reset": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/@chakra-ui/css-reset/-/css-reset-2.0.12.tgz", - "integrity": "sha512-Q5OYIMvqTl2vZ947kIYxcS5DhQXeStB84BzzBd6C10wOx1gFUu9pL+jLpOnHR3hhpWRMdX5o7eT+gMJWIYUZ0Q==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/css-reset/-/css-reset-2.1.2.tgz", + "integrity": "sha512-4ySTLd+3iRpp4lX0yI9Yo2uQm2f+qwYGNOZF0cNcfN+4UJCd3IsaWxYRR/Anz+M51NVldZbYzC+TEYC/kpJc4A==", "peer": true, "requires": {} }, "@chakra-ui/descendant": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/@chakra-ui/descendant/-/descendant-3.0.13.tgz", - "integrity": "sha512-9nzxZVxUSMc4xPL5fSaRkEOQjDQWUGjGvrZI7VzWk9eq63cojOtIxtWMSW383G9148PzWJjJYt30Eud5tdZzlg==", + "version": "3.0.14", + "resolved": "https://registry.npmjs.org/@chakra-ui/descendant/-/descendant-3.0.14.tgz", + "integrity": "sha512-+Ahvp9H4HMpfScIv9w1vaecGz7qWAaK1YFHHolz/SIsGLaLGlbdp+5UNabQC7L6TUnzzJDQDxzwif78rTD7ang==", "peer": true, "requires": { - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-use-merge-refs": "2.0.7" } }, "@chakra-ui/dom-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@chakra-ui/dom-utils/-/dom-utils-2.0.6.tgz", - "integrity": "sha512-PVtDkPrDD5b8aoL6Atg7SLjkwhWb7BwMcLOF1L449L3nZN+DAO3nyAh6iUhZVJyunELj9d0r65CDlnMREyJZmA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/dom-utils/-/dom-utils-2.1.0.tgz", + "integrity": "sha512-ZmF2qRa1QZ0CMLU8M1zCfmw29DmPNtfjR9iTo74U5FPr3i1aoAh7fbJ4qAlZ197Xw9eAW28tvzQuoVWeL5C7fQ==", "peer": true }, "@chakra-ui/editable": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/@chakra-ui/editable/-/editable-2.0.19.tgz", - "integrity": "sha512-YxRJsJ2JQd42zfPBgTKzIhg1HugT+gfQz1ZosmUN+IZT9YZXL2yodHTUz6Lee04Vc/CdEqgBFLuREXEUNBfGtA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/editable/-/editable-3.0.0.tgz", + "integrity": "sha512-q/7C/TM3iLaoQKlEiM8AY565i9NoaXtS6N6N4HWIEL5mZJPbMeHKxrCHUZlHxYuQJqFOGc09ZPD9fAFx1GkYwQ==", "peer": true, "requires": { - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-types": "2.0.7", "@chakra-ui/react-use-callback-ref": "2.0.7", "@chakra-ui/react-use-controllable-state": "2.0.8", @@ -13075,32 +13114,32 @@ "peer": true }, "@chakra-ui/focus-lock": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/@chakra-ui/focus-lock/-/focus-lock-2.0.16.tgz", - "integrity": "sha512-UuAdGCPVrCa1lecoAvpOQD7JFT7a9RdmhKWhFt5ioIcekSLJcerdLHuuL3w0qz//8kd1/SOt7oP0aJqdAJQrCw==", + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@chakra-ui/focus-lock/-/focus-lock-2.0.17.tgz", + "integrity": "sha512-V+m4Ml9E8QY66DUpHX/imInVvz5XJ5zx59Tl0aNancXgeVY1Rt/ZdxuZdPLCAmPC/MF3GUOgnEA+WU8i+VL6Gw==", "peer": true, "requires": { - "@chakra-ui/dom-utils": "2.0.6", - "react-focus-lock": "^2.9.2" + "@chakra-ui/dom-utils": "2.1.0", + "react-focus-lock": "^2.9.4" } }, "@chakra-ui/form-control": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/@chakra-ui/form-control/-/form-control-2.0.17.tgz", - "integrity": "sha512-34ptCaJ2LNvQNOlB6MAKsmH1AkT1xo7E+3Vw10Urr81yTOjDTM/iU6vG3JKPfRDMyXeowPjXmutlnuk72SSjRg==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@chakra-ui/form-control/-/form-control-2.0.18.tgz", + "integrity": "sha512-I0a0jG01IAtRPccOXSNugyRdUAe8Dy40ctqedZvznMweOXzbMCF1m+sHPLdWeWC/VI13VoAispdPY0/zHOdjsQ==", "peer": true, "requires": { "@chakra-ui/icon": "3.0.16", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-types": "2.0.7", "@chakra-ui/react-use-merge-refs": "2.0.7", "@chakra-ui/shared-utils": "2.0.5" } }, "@chakra-ui/hooks": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@chakra-ui/hooks/-/hooks-2.1.6.tgz", - "integrity": "sha512-oMSOeoOF6/UpwTVlDFHSROAA4hPY8WgJ0erdHs1ZkuwAwHv7UzjDkvrb6xYzAAH9qHoFzc5RIBm6jVoh3LCc+Q==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/hooks/-/hooks-2.2.0.tgz", + "integrity": "sha512-GZE64mcr20w+3KbCUPqQJHHmiFnX5Rcp8jS3YntGA4D5X2qU85jka7QkjfBwv/iduZ5Ei0YpCMYGCpi91dhD1Q==", "peer": true, "requires": { "@chakra-ui/react-utils": "2.0.12", @@ -13119,9 +13158,9 @@ } }, "@chakra-ui/image": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/@chakra-ui/image/-/image-2.0.15.tgz", - "integrity": "sha512-w2rElXtI3FHXuGpMCsSklus+pO1Pl2LWDwsCGdpBQUvGFbnHfl7MftQgTlaGHeD5OS95Pxva39hKrA2VklKHiQ==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@chakra-ui/image/-/image-2.0.16.tgz", + "integrity": "sha512-iFypk1slgP3OK7VIPOtkB0UuiqVxNalgA59yoRM43xLIeZAEZpKngUVno4A2kFS61yKN0eIY4hXD3Xjm+25EJA==", "peer": true, "requires": { "@chakra-ui/react-use-safe-layout-effect": "2.0.5", @@ -13129,29 +13168,29 @@ } }, "@chakra-ui/input": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/@chakra-ui/input/-/input-2.0.20.tgz", - "integrity": "sha512-ypmsy4n4uNBVgn6Gd24Zrpi+qRf/T9WEzWkysuYC9Qfxo+i7yuf3snp7XmBy8KSGVSiXE11eO8ZN5oCg6Xg0jg==", + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/@chakra-ui/input/-/input-2.0.22.tgz", + "integrity": "sha512-dCIC0/Q7mjZf17YqgoQsnXn0bus6vgriTRn8VmxOc+WcVl+KBSTBWujGrS5yu85WIFQ0aeqQvziDnDQybPqAbA==", "peer": true, "requires": { - "@chakra-ui/form-control": "2.0.17", - "@chakra-ui/object-utils": "2.0.8", + "@chakra-ui/form-control": "2.0.18", + "@chakra-ui/object-utils": "2.1.0", "@chakra-ui/react-children-utils": "2.0.6", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/shared-utils": "2.0.5" } }, "@chakra-ui/layout": { - "version": "2.1.16", - "resolved": "https://registry.npmjs.org/@chakra-ui/layout/-/layout-2.1.16.tgz", - "integrity": "sha512-QFS3feozIGsvB0H74lUocev55aRF26eNrdmhfJifwikZAiq+zzZAMdBdNU9UJhHClnMOU8/iGZ0MF7ti4zQS1A==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/layout/-/layout-2.2.0.tgz", + "integrity": "sha512-WvfsWQjqzbCxv7pbpPGVKxj9eQr7MC2i37ag4Wn7ClIG7uPuwHYTUWOnjnu27O3H/zA4cRVZ4Hs3GpSPbojZFQ==", "peer": true, "requires": { "@chakra-ui/breakpoint-utils": "2.0.8", "@chakra-ui/icon": "3.0.16", - "@chakra-ui/object-utils": "2.0.8", + "@chakra-ui/object-utils": "2.1.0", "@chakra-ui/react-children-utils": "2.0.6", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/shared-utils": "2.0.5" } }, @@ -13180,56 +13219,56 @@ } }, "@chakra-ui/menu": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@chakra-ui/menu/-/menu-2.1.9.tgz", - "integrity": "sha512-ue5nD4QJcl3H3UwN0zZNJmH89XUebnvEdW6THAUL41hDjJ0J/Fjpg9Sgzwug2aBbBXBNbVMsUuhcCj6x91d+IQ==", + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/@chakra-ui/menu/-/menu-2.1.15.tgz", + "integrity": "sha512-+1fh7KBKZyhy8wi7Q6nQAzrvjM6xggyhGMnSna0rt6FJVA2jlfkjb5FozyIVPnkfJKjkKd8THVhrs9E7pHNV/w==", "peer": true, "requires": { "@chakra-ui/clickable": "2.0.14", - "@chakra-ui/descendant": "3.0.13", + "@chakra-ui/descendant": "3.0.14", "@chakra-ui/lazy-utils": "2.0.5", - "@chakra-ui/popper": "3.0.13", + "@chakra-ui/popper": "3.0.14", "@chakra-ui/react-children-utils": "2.0.6", - "@chakra-ui/react-context": "2.0.7", - "@chakra-ui/react-use-animation-state": "2.0.8", + "@chakra-ui/react-context": "2.0.8", + "@chakra-ui/react-use-animation-state": "2.0.9", "@chakra-ui/react-use-controllable-state": "2.0.8", "@chakra-ui/react-use-disclosure": "2.0.8", - "@chakra-ui/react-use-focus-effect": "2.0.9", + "@chakra-ui/react-use-focus-effect": "2.0.11", "@chakra-ui/react-use-merge-refs": "2.0.7", - "@chakra-ui/react-use-outside-click": "2.0.7", + "@chakra-ui/react-use-outside-click": "2.1.0", "@chakra-ui/react-use-update-effect": "2.0.7", "@chakra-ui/shared-utils": "2.0.5", - "@chakra-ui/transition": "2.0.15" + "@chakra-ui/transition": "2.0.16" } }, "@chakra-ui/modal": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/@chakra-ui/modal/-/modal-2.2.9.tgz", - "integrity": "sha512-nTfNp7XsVwn5+xJOtstoFA8j0kq/9sJj7KesyYzjEDaMKvCZvIOntRYowoydho43jb4+YC7ebKhp0KOIINS0gg==", + "version": "2.2.12", + "resolved": "https://registry.npmjs.org/@chakra-ui/modal/-/modal-2.2.12.tgz", + "integrity": "sha512-F1nNmYGvyqlmxidbwaBM3y57NhZ/Qeyc8BE9tb1FL1v9nxQhkfrPvMQ9miK0O1syPN6aZ5MMj+uD3AsRFE+/tA==", "peer": true, "requires": { "@chakra-ui/close-button": "2.0.17", - "@chakra-ui/focus-lock": "2.0.16", - "@chakra-ui/portal": "2.0.15", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/focus-lock": "2.0.17", + "@chakra-ui/portal": "2.0.16", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-types": "2.0.7", "@chakra-ui/react-use-merge-refs": "2.0.7", "@chakra-ui/shared-utils": "2.0.5", - "@chakra-ui/transition": "2.0.15", + "@chakra-ui/transition": "2.0.16", "aria-hidden": "^1.2.2", "react-remove-scroll": "^2.5.5" } }, "@chakra-ui/number-input": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/@chakra-ui/number-input/-/number-input-2.0.18.tgz", - "integrity": "sha512-cPkyAFFHHzeFBselrT1BtjlzMkJ6TKrTDUnHFlzqXy6aqeXuhrjFhMfXucjedSpOqedsP9ZbKFTdIAhu9DdL/A==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/@chakra-ui/number-input/-/number-input-2.0.19.tgz", + "integrity": "sha512-HDaITvtMEqOauOrCPsARDxKD9PSHmhWywpcyCSOX0lMe4xx2aaGhU0QQFhsJsykj8Er6pytMv6t0KZksdDv3YA==", "peer": true, "requires": { "@chakra-ui/counter": "2.0.14", - "@chakra-ui/form-control": "2.0.17", + "@chakra-ui/form-control": "2.0.18", "@chakra-ui/icon": "3.0.16", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-types": "2.0.7", "@chakra-ui/react-use-callback-ref": "2.0.7", "@chakra-ui/react-use-event-listener": "2.0.7", @@ -13247,48 +13286,48 @@ "peer": true }, "@chakra-ui/object-utils": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@chakra-ui/object-utils/-/object-utils-2.0.8.tgz", - "integrity": "sha512-2upjT2JgRuiupdrtBWklKBS6tqeGMA77Nh6Q0JaoQuH/8yq+15CGckqn3IUWkWoGI0Fg3bK9LDlbbD+9DLw95Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/object-utils/-/object-utils-2.1.0.tgz", + "integrity": "sha512-tgIZOgLHaoti5PYGPTwK3t/cqtcycW0owaiOXoZOcpwwX/vlVb+H1jFsQyWiiwQVPt9RkoSLtxzXamx+aHH+bQ==", "peer": true }, "@chakra-ui/pin-input": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/@chakra-ui/pin-input/-/pin-input-2.0.19.tgz", - "integrity": "sha512-6O7s4vWz4cqQ6zvMov9sYj6ZqWAsTxR/MNGe3DNgu1zWQg8veNCYtj1rNGhNS3eZNUMAa8uM2dXIphGTP53Xow==", + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/@chakra-ui/pin-input/-/pin-input-2.0.20.tgz", + "integrity": "sha512-IHVmerrtHN8F+jRB3W1HnMir1S1TUCWhI7qDInxqPtoRffHt6mzZgLZ0izx8p1fD4HkW4c1d4/ZLEz9uH9bBRg==", "peer": true, "requires": { - "@chakra-ui/descendant": "3.0.13", + "@chakra-ui/descendant": "3.0.14", "@chakra-ui/react-children-utils": "2.0.6", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-use-controllable-state": "2.0.8", "@chakra-ui/react-use-merge-refs": "2.0.7", "@chakra-ui/shared-utils": "2.0.5" } }, "@chakra-ui/popover": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@chakra-ui/popover/-/popover-2.1.8.tgz", - "integrity": "sha512-ob7fAz+WWmXIq7iGHVB3wDKzZTj+T+noYBT/U1Q+jIf+jMr2WOpJLTfb0HTZcfhvn4EBFlfBg7Wk5qbXNaOn7g==", + "version": "2.1.12", + "resolved": "https://registry.npmjs.org/@chakra-ui/popover/-/popover-2.1.12.tgz", + "integrity": "sha512-Corh8trA1f3ydcMQqomgSvYNNhAlpxiBpMY2sglwYazOJcueHA8CI05cJVD0T/wwoTob7BShabhCGFZThn61Ng==", "peer": true, "requires": { "@chakra-ui/close-button": "2.0.17", "@chakra-ui/lazy-utils": "2.0.5", - "@chakra-ui/popper": "3.0.13", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/popper": "3.0.14", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-types": "2.0.7", - "@chakra-ui/react-use-animation-state": "2.0.8", + "@chakra-ui/react-use-animation-state": "2.0.9", "@chakra-ui/react-use-disclosure": "2.0.8", - "@chakra-ui/react-use-focus-effect": "2.0.9", + "@chakra-ui/react-use-focus-effect": "2.0.11", "@chakra-ui/react-use-focus-on-pointer-down": "2.0.6", "@chakra-ui/react-use-merge-refs": "2.0.7", "@chakra-ui/shared-utils": "2.0.5" } }, "@chakra-ui/popper": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/@chakra-ui/popper/-/popper-3.0.13.tgz", - "integrity": "sha512-FwtmYz80Ju8oK3Z1HQfisUE7JIMmDsCQsRBu6XuJ3TFQnBHit73yjZmxKjuRJ4JgyT4WBnZoTF3ATbRKSagBeg==", + "version": "3.0.14", + "resolved": "https://registry.npmjs.org/@chakra-ui/popper/-/popper-3.0.14.tgz", + "integrity": "sha512-RDMmmSfjsmHJbVn2agDyoJpTbQK33fxx//njwJdeyM0zTG/3/4xjI/Cxru3acJ2Y+1jFGmPqhO81stFjnbtfIw==", "peer": true, "requires": { "@chakra-ui/react-types": "2.0.7", @@ -13297,106 +13336,107 @@ } }, "@chakra-ui/portal": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/@chakra-ui/portal/-/portal-2.0.15.tgz", - "integrity": "sha512-z8v7K3j1/nMuBzp2+wRIIw7s/eipVtnXLdjK5yqbMxMRa44E8Mu5VNJLz3aQFLHXEUST+ifqrjImQeli9do6LQ==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@chakra-ui/portal/-/portal-2.0.16.tgz", + "integrity": "sha512-bVID0qbQ0l4xq38LdqAN4EKD4/uFkDnXzFwOlviC9sl0dNhzICDb1ltuH/Adl1d2HTMqyN60O3GO58eHy7plnQ==", "peer": true, "requires": { - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-use-safe-layout-effect": "2.0.5" } }, "@chakra-ui/progress": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@chakra-ui/progress/-/progress-2.1.5.tgz", - "integrity": "sha512-jj5Vp4lxUchuwp4RPCepM0yAyKi344bgsOd3Apd+ldxclDcewPc82fbwDu7g/Xv27LqJkT+7E/SlQy04wGrk0g==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/progress/-/progress-2.1.6.tgz", + "integrity": "sha512-hHh5Ysv4z6bK+j2GJbi/FT9CVyto2PtNUNwBmr3oNMVsoOUMoRjczfXvvYqp0EHr9PCpxqrq7sRwgQXUzhbDSw==", "peer": true, "requires": { - "@chakra-ui/react-context": "2.0.7" + "@chakra-ui/react-context": "2.0.8" } }, "@chakra-ui/provider": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@chakra-ui/provider/-/provider-2.1.2.tgz", - "integrity": "sha512-4lLlz8QuJv00BhfyKzWpzfoti9MDOdJ/MqXixJV/EZ02RMBOdE9qy9bSz/WckPC2MVhtRUuwMkxH+0QY21PXuw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/provider/-/provider-2.3.0.tgz", + "integrity": "sha512-vKgmjoLVS3NnHW8RSYwmhhda2ZTi3fQc1egkYSVwngGky4CsN15I+XDhxJitVd66H41cjah/UNJyoeq7ACseLA==", "peer": true, "requires": { - "@chakra-ui/css-reset": "2.0.12", - "@chakra-ui/portal": "2.0.15", + "@chakra-ui/css-reset": "2.1.2", + "@chakra-ui/portal": "2.0.16", "@chakra-ui/react-env": "3.0.0", - "@chakra-ui/system": "2.5.1", + "@chakra-ui/system": "2.5.8", "@chakra-ui/utils": "2.0.15" } }, "@chakra-ui/radio": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/@chakra-ui/radio/-/radio-2.0.19.tgz", - "integrity": "sha512-PlJiV59eGSmeKP4v/4+ccQUWGRd0cjPKkj/p3L+UbOf8pl9dWm8y9kIeL5TYbghQSDv0nzkrH4+yMnnDTZjdMQ==", + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/@chakra-ui/radio/-/radio-2.0.22.tgz", + "integrity": "sha512-GsQ5WAnLwivWl6gPk8P1x+tCcpVakCt5R5T0HumF7DGPXKdJbjS+RaFySrbETmyTJsKY4QrfXn+g8CWVrMjPjw==", "peer": true, "requires": { - "@chakra-ui/form-control": "2.0.17", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/form-control": "2.0.18", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-types": "2.0.7", "@chakra-ui/react-use-merge-refs": "2.0.7", "@chakra-ui/shared-utils": "2.0.5", - "@zag-js/focus-visible": "0.2.1" + "@zag-js/focus-visible": "0.2.2" } }, "@chakra-ui/react": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/react/-/react-2.5.1.tgz", - "integrity": "sha512-ugkaqfcNMb9L4TkalWiF3rnqfr0TlUUD46JZaDIZiORVisaSwXTZTQrVfG40VghhaJT28rnC5WtiE8kd567ZBQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react/-/react-2.7.0.tgz", + "integrity": "sha512-+FcUFQMsPfhWuM9Iu7uqufwwhmHN2IX6FWsBixYGOalO86dpgETsILMZP9PuWfgj7GpWiy2Dum6HXekh0Tk2Mg==", "peer": true, "requires": { - "@chakra-ui/accordion": "2.1.9", - "@chakra-ui/alert": "2.0.17", - "@chakra-ui/avatar": "2.2.5", - "@chakra-ui/breadcrumb": "2.1.4", - "@chakra-ui/button": "2.0.16", + "@chakra-ui/accordion": "2.2.0", + "@chakra-ui/alert": "2.1.0", + "@chakra-ui/avatar": "2.2.11", + "@chakra-ui/breadcrumb": "2.1.5", + "@chakra-ui/button": "2.0.18", "@chakra-ui/card": "2.1.6", - "@chakra-ui/checkbox": "2.2.10", + "@chakra-ui/checkbox": "2.2.15", "@chakra-ui/close-button": "2.0.17", "@chakra-ui/control-box": "2.0.13", "@chakra-ui/counter": "2.0.14", - "@chakra-ui/css-reset": "2.0.12", - "@chakra-ui/editable": "2.0.19", - "@chakra-ui/focus-lock": "2.0.16", - "@chakra-ui/form-control": "2.0.17", - "@chakra-ui/hooks": "2.1.6", + "@chakra-ui/css-reset": "2.1.2", + "@chakra-ui/editable": "3.0.0", + "@chakra-ui/focus-lock": "2.0.17", + "@chakra-ui/form-control": "2.0.18", + "@chakra-ui/hooks": "2.2.0", "@chakra-ui/icon": "3.0.16", - "@chakra-ui/image": "2.0.15", - "@chakra-ui/input": "2.0.20", - "@chakra-ui/layout": "2.1.16", + "@chakra-ui/image": "2.0.16", + "@chakra-ui/input": "2.0.22", + "@chakra-ui/layout": "2.2.0", "@chakra-ui/live-region": "2.0.13", "@chakra-ui/media-query": "3.2.12", - "@chakra-ui/menu": "2.1.9", - "@chakra-ui/modal": "2.2.9", - "@chakra-ui/number-input": "2.0.18", - "@chakra-ui/pin-input": "2.0.19", - "@chakra-ui/popover": "2.1.8", - "@chakra-ui/popper": "3.0.13", - "@chakra-ui/portal": "2.0.15", - "@chakra-ui/progress": "2.1.5", - "@chakra-ui/provider": "2.1.2", - "@chakra-ui/radio": "2.0.19", + "@chakra-ui/menu": "2.1.15", + "@chakra-ui/modal": "2.2.12", + "@chakra-ui/number-input": "2.0.19", + "@chakra-ui/pin-input": "2.0.20", + "@chakra-ui/popover": "2.1.12", + "@chakra-ui/popper": "3.0.14", + "@chakra-ui/portal": "2.0.16", + "@chakra-ui/progress": "2.1.6", + "@chakra-ui/provider": "2.3.0", + "@chakra-ui/radio": "2.0.22", "@chakra-ui/react-env": "3.0.0", - "@chakra-ui/select": "2.0.18", + "@chakra-ui/select": "2.0.19", "@chakra-ui/skeleton": "2.0.24", - "@chakra-ui/slider": "2.0.21", + "@chakra-ui/slider": "2.0.25", "@chakra-ui/spinner": "2.0.13", - "@chakra-ui/stat": "2.0.17", - "@chakra-ui/styled-system": "2.6.1", - "@chakra-ui/switch": "2.0.22", - "@chakra-ui/system": "2.5.1", - "@chakra-ui/table": "2.0.16", - "@chakra-ui/tabs": "2.1.8", - "@chakra-ui/tag": "2.0.17", - "@chakra-ui/textarea": "2.0.18", - "@chakra-ui/theme": "2.2.5", - "@chakra-ui/theme-utils": "2.0.11", - "@chakra-ui/toast": "6.0.1", - "@chakra-ui/tooltip": "2.2.6", - "@chakra-ui/transition": "2.0.15", + "@chakra-ui/stat": "2.0.18", + "@chakra-ui/stepper": "2.2.0", + "@chakra-ui/styled-system": "2.9.1", + "@chakra-ui/switch": "2.0.27", + "@chakra-ui/system": "2.5.8", + "@chakra-ui/table": "2.0.17", + "@chakra-ui/tabs": "2.1.9", + "@chakra-ui/tag": "3.0.0", + "@chakra-ui/textarea": "2.0.19", + "@chakra-ui/theme": "3.1.2", + "@chakra-ui/theme-utils": "2.0.18", + "@chakra-ui/toast": "6.1.4", + "@chakra-ui/tooltip": "2.2.9", + "@chakra-ui/transition": "2.0.16", "@chakra-ui/utils": "2.0.15", "@chakra-ui/visually-hidden": "2.0.15" } @@ -13409,9 +13449,9 @@ "requires": {} }, "@chakra-ui/react-context": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-context/-/react-context-2.0.7.tgz", - "integrity": "sha512-i7EGmSU+h2GB30cwrKB4t1R5BMHyGoJM5L2Zz7b+ZUX4aAqyPcfe97wPiQB6Rgr1ImGXrUeov4CDVrRZ2FPgLQ==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-context/-/react-context-2.0.8.tgz", + "integrity": "sha512-tRTKdn6lCTXM6WPjSokAAKCw2ioih7Eg8cNgaYRSwKBck8nkz9YqxgIIEj3dJD7MGtpl24S/SNI98iRWkRwR/A==", "peer": true, "requires": {} }, @@ -13432,12 +13472,12 @@ "requires": {} }, "@chakra-ui/react-use-animation-state": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-animation-state/-/react-use-animation-state-2.0.8.tgz", - "integrity": "sha512-xv9zSF2Rd1mHWQ+m5DLBWeh4atF8qrNvsOs3MNrvxKYBS3f79N3pqcQGrWAEvirXWXfiCeje2VAkEggqFRIo+Q==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-animation-state/-/react-use-animation-state-2.0.9.tgz", + "integrity": "sha512-WFoD5OG03PBmzJCoRwM8rVfU442AvKBPPgA0yGGlKioH29OGuX7W78Ml+cYdXxonTiB03YSRZzUwaUnP4wAy1Q==", "peer": true, "requires": { - "@chakra-ui/dom-utils": "2.0.6", + "@chakra-ui/dom-utils": "2.1.0", "@chakra-ui/react-use-event-listener": "2.0.7" } }, @@ -13476,12 +13516,12 @@ } }, "@chakra-ui/react-use-focus-effect": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-focus-effect/-/react-use-focus-effect-2.0.9.tgz", - "integrity": "sha512-20nfNkpbVwyb41q9wxp8c4jmVp6TUGAPE3uFTDpiGcIOyPW5aecQtPmTXPMJH+2aa8Nu1wyoT1btxO+UYiQM3g==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-focus-effect/-/react-use-focus-effect-2.0.11.tgz", + "integrity": "sha512-/zadgjaCWD50TfuYsO1vDS2zSBs2p/l8P2DPEIA8FuaowbBubKrk9shKQDWmbfDU7KArGxPxrvo+VXvskPPjHw==", "peer": true, "requires": { - "@chakra-ui/dom-utils": "2.0.6", + "@chakra-ui/dom-utils": "2.1.0", "@chakra-ui/react-use-event-listener": "2.0.7", "@chakra-ui/react-use-safe-layout-effect": "2.0.5", "@chakra-ui/react-use-update-effect": "2.0.7" @@ -13520,9 +13560,9 @@ "requires": {} }, "@chakra-ui/react-use-outside-click": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-outside-click/-/react-use-outside-click-2.0.7.tgz", - "integrity": "sha512-MsAuGLkwYNxNJ5rb8lYNvXApXxYMnJ3MzqBpQj1kh5qP/+JSla9XMjE/P94ub4fSEttmNSqs43SmPPrmPuihsQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-outside-click/-/react-use-outside-click-2.1.0.tgz", + "integrity": "sha512-JanCo4QtWvMl9ZZUpKJKV62RlMWDFdPCE0Q64a7eWTOQgWWcpyBW7TOYRunQTqrK30FqkYFJCOlAWOtn+6Rw7A==", "peer": true, "requires": { "@chakra-ui/react-use-callback-ref": "2.0.7" @@ -13554,12 +13594,12 @@ "requires": {} }, "@chakra-ui/react-use-size": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-size/-/react-use-size-2.0.9.tgz", - "integrity": "sha512-Jce7QmO1jlQZq+Y77VKckWzroRnajChzUQ8xhLQZO6VbYvrpg3cu+X2QCz3G+MZzB+1/hnvvAqmZ+uJLd8rEJg==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-size/-/react-use-size-2.0.10.tgz", + "integrity": "sha512-fdIkH14GDnKQrtQfxX8N3gxbXRPXEl67Y3zeD9z4bKKcQUAYIMqs0MsPZY+FMpGQw8QqafM44nXfL038aIrC5w==", "peer": true, "requires": { - "@zag-js/element-size": "0.3.1" + "@zag-js/element-size": "0.3.2" } }, "@chakra-ui/react-use-timeout": { @@ -13588,12 +13628,12 @@ } }, "@chakra-ui/select": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/@chakra-ui/select/-/select-2.0.18.tgz", - "integrity": "sha512-1d2lUT5LM6oOs5x4lzBh4GFDuXX62+lr+sgV7099g951/5UNbb0CS2hSZHsO7yZThLNbr7QTWZvAOAayVcGzdw==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/@chakra-ui/select/-/select-2.0.19.tgz", + "integrity": "sha512-eAlFh+JhwtJ17OrB6fO6gEAGOMH18ERNrXLqWbYLrs674Le7xuREgtuAYDoxUzvYXYYTTdOJtVbcHGriI3o6rA==", "peer": true, "requires": { - "@chakra-ui/form-control": "2.0.17", + "@chakra-ui/form-control": "2.0.18", "@chakra-ui/shared-utils": "2.0.5" } }, @@ -13615,20 +13655,20 @@ } }, "@chakra-ui/slider": { - "version": "2.0.21", - "resolved": "https://registry.npmjs.org/@chakra-ui/slider/-/slider-2.0.21.tgz", - "integrity": "sha512-Mm76yJxEqJl21+3waEcKg3tM8Y4elJ7mcViN6Brj35PTfzUJfSJxeBGo1nLPJ+X5jLj7o/L4kfBmUk3lY4QYEQ==", + "version": "2.0.25", + "resolved": "https://registry.npmjs.org/@chakra-ui/slider/-/slider-2.0.25.tgz", + "integrity": "sha512-FnWSi0AIXP+9sHMCPboOKGqm902k8dJtsJ7tu3D0AcKkE62WtYLZ2sTqvwJxCfSl4KqVI1i571SrF9WadnnJ8w==", "peer": true, "requires": { "@chakra-ui/number-utils": "2.0.7", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-types": "2.0.7", "@chakra-ui/react-use-callback-ref": "2.0.7", "@chakra-ui/react-use-controllable-state": "2.0.8", "@chakra-ui/react-use-latest-ref": "2.0.5", "@chakra-ui/react-use-merge-refs": "2.0.7", "@chakra-ui/react-use-pan-event": "2.0.9", - "@chakra-ui/react-use-size": "2.0.9", + "@chakra-ui/react-use-size": "2.0.10", "@chakra-ui/react-use-update-effect": "2.0.7" } }, @@ -13642,20 +13682,31 @@ } }, "@chakra-ui/stat": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/@chakra-ui/stat/-/stat-2.0.17.tgz", - "integrity": "sha512-PhD+5oVLWjQmGLfeZSmexp3AtLcaggWBwoMZ4z8QMZIQzf/fJJWMk0bMqxlpTv8ORDkfY/4ImuFB/RJHvcqlcA==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@chakra-ui/stat/-/stat-2.0.18.tgz", + "integrity": "sha512-wKyfBqhVlIs9bkSerUc6F9KJMw0yTIEKArW7dejWwzToCLPr47u+CtYO6jlJHV6lRvkhi4K4Qc6pyvtJxZ3VpA==", + "peer": true, + "requires": { + "@chakra-ui/icon": "3.0.16", + "@chakra-ui/react-context": "2.0.8", + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "@chakra-ui/stepper": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/stepper/-/stepper-2.2.0.tgz", + "integrity": "sha512-8ZLxV39oghSVtOUGK8dX8Z6sWVSQiKVmsK4c3OQDa8y2TvxP0VtFD0Z5U1xJlOjQMryZRWhGj9JBc3iQLukuGg==", "peer": true, "requires": { "@chakra-ui/icon": "3.0.16", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/shared-utils": "2.0.5" } }, "@chakra-ui/styled-system": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/styled-system/-/styled-system-2.6.1.tgz", - "integrity": "sha512-jy/1dVi1LxjoRCm+Eo5mqBgvPy5SCWMlIcz6GbIZBDpkGeKZwtqrZLjekxxLBCy8ORY+kJlUB0FT6AzVR/1tjw==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/styled-system/-/styled-system-2.9.1.tgz", + "integrity": "sha512-jhYKBLxwOPi9/bQt9kqV3ELa/4CjmNNruTyXlPp5M0v0+pDMUngPp48mVLoskm9RKZGE0h1qpvj/jZ3K7c7t8w==", "peer": true, "requires": { "@chakra-ui/shared-utils": "2.0.5", @@ -13664,51 +13715,51 @@ } }, "@chakra-ui/switch": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/@chakra-ui/switch/-/switch-2.0.22.tgz", - "integrity": "sha512-+/Yy6y7VFD91uSPruF8ZvePi3tl5D8UNVATtWEQ+QBI92DLSM+PtgJ2F0Y9GMZ9NzMxpZ80DqwY7/kqcPCfLvw==", + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/@chakra-ui/switch/-/switch-2.0.27.tgz", + "integrity": "sha512-z76y2fxwMlvRBrC5W8xsZvo3gP+zAEbT3Nqy5P8uh/IPd5OvDsGeac90t5cgnQTyxMOpznUNNK+1eUZqtLxWnQ==", "peer": true, "requires": { - "@chakra-ui/checkbox": "2.2.10", + "@chakra-ui/checkbox": "2.2.15", "@chakra-ui/shared-utils": "2.0.5" } }, "@chakra-ui/system": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/system/-/system-2.5.1.tgz", - "integrity": "sha512-4+86OrcSoq7lGkm5fh+sJ3IWXSTzjz+HOllRbCW2Rtnmcg7ritiXVNV2VygEg2DrCcx5+tNqRHDM764zW+AEug==", + "version": "2.5.8", + "resolved": "https://registry.npmjs.org/@chakra-ui/system/-/system-2.5.8.tgz", + "integrity": "sha512-Vy8UUaCxikOzOGE54IP8tKouvU38rEYU1HCSquU9+oe7Jd70HaiLa4vmUKvHyMUmxkOzDHIkgZLbVQCubSnN5w==", "peer": true, "requires": { "@chakra-ui/color-mode": "2.1.12", - "@chakra-ui/object-utils": "2.0.8", + "@chakra-ui/object-utils": "2.1.0", "@chakra-ui/react-utils": "2.0.12", - "@chakra-ui/styled-system": "2.6.1", - "@chakra-ui/theme-utils": "2.0.11", + "@chakra-ui/styled-system": "2.9.1", + "@chakra-ui/theme-utils": "2.0.18", "@chakra-ui/utils": "2.0.15", - "react-fast-compare": "3.2.0" + "react-fast-compare": "3.2.1" } }, "@chakra-ui/table": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/@chakra-ui/table/-/table-2.0.16.tgz", - "integrity": "sha512-vWDXZ6Ad3Aj66curp1tZBHvCfQHX2FJ4ijLiqGgQszWFIchfhJ5vMgEBJaFMZ+BN1draAjuRTZqaQefOApzvRg==", + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@chakra-ui/table/-/table-2.0.17.tgz", + "integrity": "sha512-OScheTEp1LOYvTki2NFwnAYvac8siAhW9BI5RKm5f5ORL2gVJo4I72RUqE0aKe1oboxgm7CYt5afT5PS5cG61A==", "peer": true, "requires": { - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/shared-utils": "2.0.5" } }, "@chakra-ui/tabs": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@chakra-ui/tabs/-/tabs-2.1.8.tgz", - "integrity": "sha512-B7LeFN04Ny2jsSy5TFOQxnbZ6ITxGxLxsB2PE0vvQjMSblBrUryOxdjw80HZhfiw6od0ikK9CeKQOIt9QCguSw==", + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@chakra-ui/tabs/-/tabs-2.1.9.tgz", + "integrity": "sha512-Yf8e0kRvaGM6jfkJum0aInQ0U3ZlCafmrYYni2lqjcTtThqu+Yosmo3iYlnullXxCw5MVznfrkb9ySvgQowuYg==", "peer": true, "requires": { "@chakra-ui/clickable": "2.0.14", - "@chakra-ui/descendant": "3.0.13", + "@chakra-ui/descendant": "3.0.14", "@chakra-ui/lazy-utils": "2.0.5", "@chakra-ui/react-children-utils": "2.0.6", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-use-controllable-state": "2.0.8", "@chakra-ui/react-use-merge-refs": "2.0.7", "@chakra-ui/react-use-safe-layout-effect": "2.0.5", @@ -13716,40 +13767,40 @@ } }, "@chakra-ui/tag": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/@chakra-ui/tag/-/tag-2.0.17.tgz", - "integrity": "sha512-A47zE9Ft9qxOJ+5r1cUseKRCoEdqCRzFm0pOtZgRcckqavglk75Xjgz8HbBpUO2zqqd49MlqdOwR8o87fXS1vg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/tag/-/tag-3.0.0.tgz", + "integrity": "sha512-YWdMmw/1OWRwNkG9pX+wVtZio+B89odaPj6XeMn5nfNN8+jyhIEpouWv34+CO9G0m1lupJTxPSfgLAd7cqXZMA==", "peer": true, "requires": { "@chakra-ui/icon": "3.0.16", - "@chakra-ui/react-context": "2.0.7" + "@chakra-ui/react-context": "2.0.8" } }, "@chakra-ui/textarea": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/@chakra-ui/textarea/-/textarea-2.0.18.tgz", - "integrity": "sha512-aGHHb29vVifO0OtcK/k8cMykzjOKo/coDTU0NJqz7OOLAWIMNV2eGenvmO1n9tTZbmbqHiX+Sa1nPRX+pd14lg==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/@chakra-ui/textarea/-/textarea-2.0.19.tgz", + "integrity": "sha512-adJk+qVGsFeJDvfn56CcJKKse8k7oMGlODrmpnpTdF+xvlsiTM+1GfaJvgNSpHHuQFdz/A0z1uJtfGefk0G2ZA==", "peer": true, "requires": { - "@chakra-ui/form-control": "2.0.17", + "@chakra-ui/form-control": "2.0.18", "@chakra-ui/shared-utils": "2.0.5" } }, "@chakra-ui/theme": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/@chakra-ui/theme/-/theme-2.2.5.tgz", - "integrity": "sha512-hYASZMwu0NqEv6PPydu+F3I+kMNd44yR4TwjR/lXBz/LEh64L6UPY6kQjebCfgdVtsGdl3HKg+eLlfa7SvfRgw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme/-/theme-3.1.2.tgz", + "integrity": "sha512-ebUXMS3LZw2OZxEQNYaFw3/XuA3jpyprhS/frjHMvZKSOaCjMW+c9z25S0jp1NnpQff08VGI8EWbyVZECXU1QA==", "peer": true, "requires": { "@chakra-ui/anatomy": "2.1.2", "@chakra-ui/shared-utils": "2.0.5", - "@chakra-ui/theme-tools": "2.0.17" + "@chakra-ui/theme-tools": "2.0.18" } }, "@chakra-ui/theme-tools": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/@chakra-ui/theme-tools/-/theme-tools-2.0.17.tgz", - "integrity": "sha512-Auu38hnihlJZQcPok6itRDBbwof3TpXGYtDPnOvrq4Xp7jnab36HLt7KEXSDPXbtOk3ZqU99pvI1en5LbDrdjg==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme-tools/-/theme-tools-2.0.18.tgz", + "integrity": "sha512-MbiRuXb2tb41FbnW41zhsYYAU0znlpfYZnu0mxCf8U2otCwPekJCfESUGYypjq4JnydQ7TDOk+Kz/Wi974l4mw==", "peer": true, "requires": { "@chakra-ui/anatomy": "2.1.2", @@ -13758,42 +13809,43 @@ } }, "@chakra-ui/theme-utils": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@chakra-ui/theme-utils/-/theme-utils-2.0.11.tgz", - "integrity": "sha512-lBAay6Sq3/fl7exd3mFxWAbzgdQowytor0fnlHrpNStn1HgFjXukwsf6356XQOie2Vd8qaMM7qZtMh4AiC0dcg==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme-utils/-/theme-utils-2.0.18.tgz", + "integrity": "sha512-aSbkUUiFpc1NHC7lQdA6uYlr6EcZFXz6b4aJ7VRDpqTiywvqYnvfGzhmsB0z94vgtS9qXc6HoIwBp25jYGV2MA==", "peer": true, "requires": { "@chakra-ui/shared-utils": "2.0.5", - "@chakra-ui/styled-system": "2.6.1", - "@chakra-ui/theme": "2.2.5", + "@chakra-ui/styled-system": "2.9.1", + "@chakra-ui/theme": "3.1.2", "lodash.mergewith": "4.6.2" } }, "@chakra-ui/toast": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/toast/-/toast-6.0.1.tgz", - "integrity": "sha512-ej2kJXvu/d2h6qnXU5D8XTyw0qpsfmbiU7hUffo/sPxkz89AUOQ08RUuUmB1ssW/FZcQvNMJ5WgzCTKHGBxtxw==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@chakra-ui/toast/-/toast-6.1.4.tgz", + "integrity": "sha512-wAcPHq/N/ar4jQxkUGhnsbp+lx2eKOpHxn1KaWdHXUkqCNUA1z09fvBsoMyzObSiiwbDuQPZG5RxsOhzfPZX4Q==", "peer": true, "requires": { - "@chakra-ui/alert": "2.0.17", + "@chakra-ui/alert": "2.1.0", "@chakra-ui/close-button": "2.0.17", - "@chakra-ui/portal": "2.0.15", - "@chakra-ui/react-context": "2.0.7", + "@chakra-ui/portal": "2.0.16", + "@chakra-ui/react-context": "2.0.8", "@chakra-ui/react-use-timeout": "2.0.5", "@chakra-ui/react-use-update-effect": "2.0.7", "@chakra-ui/shared-utils": "2.0.5", - "@chakra-ui/styled-system": "2.6.1", - "@chakra-ui/theme": "2.2.5" + "@chakra-ui/styled-system": "2.9.1", + "@chakra-ui/theme": "3.1.2" } }, "@chakra-ui/tooltip": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/@chakra-ui/tooltip/-/tooltip-2.2.6.tgz", - "integrity": "sha512-4cbneidZ5+HCWge3OZzewRQieIvhDjSsl+scrl4Scx7E0z3OmqlTIESU5nGIZDBLYqKn/UirEZhqaQ33FOS2fw==", + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/@chakra-ui/tooltip/-/tooltip-2.2.9.tgz", + "integrity": "sha512-ZoksllanqXRUyMDaiogvUVJ+RdFXwZrfrwx3RV22fejYZIQ602hZ3QHtHLB5ZnKFLbvXKMZKM23HxFTSb0Ytqg==", "peer": true, "requires": { - "@chakra-ui/popper": "3.0.13", - "@chakra-ui/portal": "2.0.15", + "@chakra-ui/dom-utils": "2.1.0", + "@chakra-ui/popper": "3.0.14", + "@chakra-ui/portal": "2.0.16", "@chakra-ui/react-types": "2.0.7", "@chakra-ui/react-use-disclosure": "2.0.8", "@chakra-ui/react-use-event-listener": "2.0.7", @@ -13802,9 +13854,9 @@ } }, "@chakra-ui/transition": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/@chakra-ui/transition/-/transition-2.0.15.tgz", - "integrity": "sha512-o9LBK/llQfUDHF/Ty3cQ6nShpekKTqHUoJlUOzNKhoTsNpoRerr9v0jwojrX1YI02KtVjfhFU6PiqXlDfREoNw==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@chakra-ui/transition/-/transition-2.0.16.tgz", + "integrity": "sha512-E+RkwlPc3H7P1crEXmXwDXMB2lqY2LLia2P5siQ4IEnRWIgZXlIw+8Em+NtHNgusel2N+9yuB0wT9SeZZeZ3CQ==", "peer": true, "requires": { "@chakra-ui/shared-utils": "2.0.5" @@ -14815,9 +14867,9 @@ } }, "@popperjs/core": { - "version": "2.11.6", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", - "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==", + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", "peer": true }, "@sinclair/typebox": { @@ -15051,13 +15103,11 @@ } }, "@tinystacks/ops-core": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@tinystacks/ops-core/-/ops-core-0.4.0.tgz", - "integrity": "sha512-j1QdSHzJ2YhQiRacArfKNkrvzcksWsZAXTDiliZMTBsNbtbRQVpfbkOowHb1B/iUU6hOENEh83u8LTW0TOH59A==", + "version": "file:../ops-core/tinystacks-ops-core-0.4.0.tgz", + "integrity": "sha512-s16ZM6vwdoWLmsq1HJAOjhOStZ198vnQIO7DabSLooiR4N8nCgQ56LXdNLL5BoF3uDP2amWg3poSiy96WSUk3g==", "peer": true, "requires": { "@tinystacks/ops-model": "^0.5.0", - "@types/react": "^18.0.28", "http-status-codes": "^2.2.0", "lodash.get": "^4.4.2", "lodash.isnil": "^4.0.0" @@ -15174,6 +15224,15 @@ "@types/unist": "*" } }, + "@types/http-status-codes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/http-status-codes/-/http-status-codes-1.2.0.tgz", + "integrity": "sha512-vjpjevMaxtrtdrrV/TQNIFT7mKL8nvIKG7G/LjMDZdVvqRxRg5SNfGkeuSaowVc0rbK8xDA2d/Etunyb5GyzzA==", + "dev": true, + "requires": { + "http-status-codes": "*" + } + }, "@types/istanbul-lib-coverage": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", @@ -15291,9 +15350,9 @@ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" }, "@types/node": { - "version": "20.2.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.2.5.tgz", - "integrity": "sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ==", + "version": "20.3.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.1.tgz", + "integrity": "sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==", "dev": true }, "@types/parse-json": { @@ -15313,9 +15372,9 @@ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, "@types/react": { - "version": "18.0.28", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.28.tgz", - "integrity": "sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==", + "version": "18.2.12", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.12.tgz", + "integrity": "sha512-ndmBMLCgn38v3SntMeoJaIrO6tGHYKMEBohCUmw8HoLLQdRMOIGXfeYaBTLe2lsFaSB3MOK1VXscYFnmLtTSmw==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -15323,9 +15382,9 @@ } }, "@types/react-dom": { - "version": "18.0.11", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz", - "integrity": "sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==", + "version": "18.2.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.5.tgz", + "integrity": "sha512-sRQsOS/sCLnpQhR4DSKGTtWFE3FZjpQa86KPVbhUqdYMRZ9FEFcfAytKhR/vUG2rH1oFbOOej6cuD7MFSobDRQ==", "dev": true, "requires": { "@types/react": "*" @@ -15637,15 +15696,15 @@ "dev": true }, "@zag-js/element-size": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@zag-js/element-size/-/element-size-0.3.1.tgz", - "integrity": "sha512-jR5j4G//bRzcxwAACWi9EfITnwjNmn10LxF4NmALrdZU7/PNWP3uUCdhCxd/0SCyeiJXUl0yvD57rWAbKPs1nw==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@zag-js/element-size/-/element-size-0.3.2.tgz", + "integrity": "sha512-bVvvigUGvAuj7PCkE5AbzvTJDTw5f3bg9nQdv+ErhVN8SfPPppLJEmmWdxqsRzrHXgx8ypJt/+Ty0kjtISVDsQ==", "peer": true }, "@zag-js/focus-visible": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@zag-js/focus-visible/-/focus-visible-0.2.1.tgz", - "integrity": "sha512-19uTjoZGP4/Ax7kSNhhay9JA83BirKzpqLkeEAilrpdI1hE5xuq6q+tzJOsrMOOqJrm7LkmZp5lbsTQzvK2pYg==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@zag-js/focus-visible/-/focus-visible-0.2.2.tgz", + "integrity": "sha512-0j2gZq8HiZ51z4zNnSkF1iSkqlwRDvdH+son3wHdoz+7IUdMN/5Exd4TxMJ+gq2Of1DiXReYLL9qqh2PdQ4wgA==", "peer": true }, "abab": { @@ -17345,9 +17404,9 @@ } }, "framer-motion": { - "version": "10.2.3", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-10.2.3.tgz", - "integrity": "sha512-+TBxfia8Ym/lYSvTAhome7LYFIR8fKhImuln5zcp9D8nFI2wNSDdBRtK5WoWTyjHXJ7efv5xv376Ma85zHhtUg==", + "version": "10.12.16", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-10.12.16.tgz", + "integrity": "sha512-w/SfWEIWJkYSgRHYBmln7EhcNo31ao8Xexol8lGXf1pR/tlnBtf1HcxoUmEiEh6pacB4/geku5ami53AAQWHMQ==", "peer": true, "requires": { "@emotion/is-prop-valid": "^0.8.2", @@ -17674,8 +17733,7 @@ "http-status-codes": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.2.0.tgz", - "integrity": "sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==", - "peer": true + "integrity": "sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==" }, "https-proxy-agent": { "version": "5.0.1", @@ -20417,9 +20475,9 @@ } }, "react-fast-compare": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", - "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.1.tgz", + "integrity": "sha512-xTYf9zFim2pEif/Fw16dBiXpe0hoy5PxcD8+OwBnTtNLfIm3g6WxhKNurY+6OmdH1u6Ta/W/Vl6vjbYP1MFnDg==", "peer": true }, "react-focus-lock": { @@ -20471,12 +20529,12 @@ } }, "react-remove-scroll": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz", - "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.6.tgz", + "integrity": "sha512-bO856ad1uDYLefgArk559IzUNeQ6SWH4QnrevIUjH+GczV56giDfl3h0Idptf2oIKxQmd1p9BN25jleKodTALg==", "peer": true, "requires": { - "react-remove-scroll-bar": "^2.3.3", + "react-remove-scroll-bar": "^2.3.4", "react-style-singleton": "^2.2.1", "tslib": "^2.1.0", "use-callback-ref": "^1.3.0", @@ -21173,9 +21231,9 @@ } }, "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", "peer": true }, "tsutils": { @@ -21228,9 +21286,9 @@ } }, "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.3.tgz", + "integrity": "sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==", "dev": true }, "typescript-json-schema": { @@ -21254,6 +21312,12 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.34.tgz", "integrity": "sha512-VmVm7gXwhkUimRfBwVI1CHhwp86jDWR04B5FGebMMyxV90SlCmFujwUHrxTD4oO+SOYU86SoxvhgeRQJY7iXFg==", "dev": true + }, + "typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true } } }, diff --git a/package.json b/package.json index 545c5bb..10955a5 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,16 @@ { "name": "@tinystacks/ops-core-widgets", "version": "0.0.16", - "main": "dist/index.js", + "main": "./dist/index.js", + "exports": { + "./dist/ops-types.json": "./dist/ops-types.json", + "./package.json": "./package.json", + ".": { + "node": "./dist/node.js", + "browser": "./dist/browser.js", + "default": "./dist/index.js" + } + }, "type": "module", "files": [ "dist" @@ -37,13 +46,14 @@ "@jest/globals": "^29.5.0", "@testing-library/jest-dom": "^4.2.4", "@testing-library/react": "^14.0.0", + "@types/http-status-codes": "^1.2.0", "@types/jest": "^29.4.0", "@types/lodash.get": "^4.4.7", "@types/lodash.isempty": "^4.4.7", "@types/lodash.join": "^4.0.7", - "@types/node": "^20.2.5", - "@types/react": "^18.0.28", - "@types/react-dom": "^18.0.11", + "@types/node": "^20.3.1", + "@types/react": "^18.2.12", + "@types/react-dom": "^18.2.5", "@typescript-eslint/eslint-plugin": "^5.50.0", "@typescript-eslint/parser": "^5.52.0", "depcheck": "^1.4.3", @@ -59,23 +69,21 @@ "react-dom": "^18.2.0", "ts-jest": "^29.0.5", "ts-jest-resolver": "^2.0.0", - "typescript": "^4.9.5", + "typescript": "^5.1.3", "typescript-json-schema": "^0.57.0" }, - "dependencies": { - "@octokit/core": "^4.2.1", - "chakra-ui-markdown-renderer": "^4.1.0", - "dayjs": "^1.11.7", - "react-markdown": "^8.0.5" - }, "peerDependencies": { "@chakra-ui/react": "2.x", - "@tinystacks/ops-core": "0.x", + "@tinystacks/ops-core": "/Users/calebcourier/Projects/ops/ops-core/tinystacks-ops-core-0.4.0.tgz", "@tinystacks/ops-model": "0.x", + "@octokit/core": "4.x", + "chakra-ui-markdown-renderer": "4.x", + "dayjs": "1.x", "http-status-codes": "2.x", "lodash.get": "4.x", "lodash.isempty": "4.x", "lodash.isnil": "4.x", - "react": "18.x" + "react": "18.x", + "react-markdown": "8.x" } } diff --git a/src/browser.ts b/src/browser.ts new file mode 100644 index 0000000..5791380 --- /dev/null +++ b/src/browser.ts @@ -0,0 +1,5 @@ +export * as Models from './models/index.js'; +export * as OpsTypes from './ops-types.js'; +export * from './views/index.js'; +export * from './utils/index.js'; +export * from './core/index.js'; \ No newline at end of file diff --git a/src/cli.tsx b/src/cli.tsx deleted file mode 100644 index 693d30a..0000000 --- a/src/cli.tsx +++ /dev/null @@ -1,147 +0,0 @@ -import React from 'react'; -import isEmpty from 'lodash.isempty'; -import { BaseProvider, BaseWidget } from '@tinystacks/ops-core'; -import { Box, Button, Code, Heading, HStack, Spacer, Stack } from '@chakra-ui/react'; -import { CliEnvironmentProvider } from './providers/cli-environment-provider.js'; -import { Cli as CliProps } from './ops-types.js'; - -type CliOverrides = { - clear?: boolean, - run?: boolean -} - -export class Cli extends BaseWidget { - static type = 'Cli'; - command: string; - runOnStart: boolean; - commandResult: { stdout: string, stderr: string }; - hasRun: boolean; - environmentVariables: { [key: string]: string } | undefined; - - constructor (props: CliProps) { - super(props); - this.command = props.command; - this.runOnStart = props.runOnStart === true; - this.commandResult = props.commandResult || { - stdout: '', - stderr: '' - }; - this.hasRun = props.hasRun === true; - this.environmentVariables = props.environmentVariables; - } - - static fromJson (object: CliProps): Cli { - return new Cli(object); - } - - envVarMapper (envVars: {[key: string]: string}) { - return Object.entries(envVars).map(([envKey, envVal]) => `export ${envKey}=${envVal}`); - } - - toJson (): CliProps { - return { - ...super.toJson(), - command: this.command, - commandResult: this.commandResult, - runOnStart: this.runOnStart, - hasRun: this.hasRun, - environmentVariables: this.environmentVariables - }; - } - - async getData (providers?: BaseProvider[], overrides?: CliOverrides): Promise { - // This is imported like this to avoid webpack throwing up over node dependencies when this widget is used - // in the frontend next app - const depMap = { - childproc: 'child_process', - nodeutil: 'node:util' - }; - - const exec = (await import(depMap['childproc']))['exec']; - const promisify = (await import(depMap['nodeutil']))['promisify']; - const execPromise = promisify(exec); - - const shouldRun = - // if this is the first load and runOnStart is true - (!this.hasRun && this.runOnStart === true) - // if an override told it to run - || (overrides && overrides.run === true); - - const commands = []; - let allEnvVars = {}; - for (const envProvider of (providers || []) .filter(p => 'getCliEnvironment' in p)) { - const cliEnv = await (envProvider as unknown as CliEnvironmentProvider).getCliEnvironment(); - allEnvVars = { ...allEnvVars, ...cliEnv }; - } - - allEnvVars = { ...allEnvVars, ...(this.environmentVariables || {}), PATH: process.env.PATH }; - - commands.push(this.command); - try { - if (shouldRun) { - const { stdout, stderr } = await execPromise(commands.join(';'), { env: allEnvVars, shell: '/bin/bash' }); - this.commandResult = { - stdout: stdout.trim(), - stderr: stderr.trim() - }; - this.hasRun = true; - } else if (overrides && overrides.clear === true) { - this.commandResult = { - stdout: '', - stderr: '' - }; - } - } catch (e: any) { - console.error(e); - this.commandResult = { stdout: '', stderr: e.toString() }; - } - - } - - render (_children?: any, overridesCallback?: (overrides: CliOverrides) => void): JSX.Element { - const commandResultRender = (!isEmpty(this.commandResult.stderr) || !isEmpty(this.commandResult.stdout)) ? - - -
-            {this.commandResult.stderr}
-            {this.commandResult.stdout}
-          
-
- - -
- : 'Command has not been run yet!'; - - return ( - - - - -
-                {this.command}
-              
-
- - -
-
- - Response: - - - {commandResultRender} - -
- ); - } -} \ No newline at end of file diff --git a/src/controllers/cli.ts b/src/controllers/cli.ts new file mode 100644 index 0000000..1540f87 --- /dev/null +++ b/src/controllers/cli.ts @@ -0,0 +1,68 @@ +/* env: node */ +import { Controllers, Provider } from '@tinystacks/ops-core'; +import { Cli as CliModel } from '../models/cli.js'; +import { CliEnvironmentProvider } from '../core/cli-environment-provider.js'; +import { Cli as CliProps } from '../ops-types.js'; + +import WidgetController = Controllers.Widget; + +type CliOverrides = { + clear?: boolean, + run?: boolean +} + +export class Cli extends CliModel implements WidgetController { + + static fromJson (object: CliProps): Cli { + return new Cli(object); + } + + async getData (providers?: Provider[], overrides?: CliOverrides): Promise { + // This is imported like this to avoid webpack throwing up over node dependencies when this widget is used + // in the frontend next app + const depMap = { + childproc: 'child_process', + nodeutil: 'node:util' + }; + + const exec = (await import(depMap['childproc']))['exec']; + const promisify = (await import(depMap['nodeutil']))['promisify']; + const execPromise = promisify(exec); + + const shouldRun = + // if this is the first load and runOnStart is true + (!this.hasRun && this.runOnStart === true) + // if an override told it to run + || (overrides && overrides.run === true); + + const commands: string[] = []; + let allEnvVars = {}; + for (const envProvider of (providers || []) .filter(p => 'getCliEnvironment' in p)) { + const cliEnv = await (envProvider as unknown as CliEnvironmentProvider).getCliEnvironment(); + allEnvVars = { ...allEnvVars, ...cliEnv }; + } + + allEnvVars = { ...allEnvVars, ...(this.environmentVariables || {}), PATH: process.env.PATH }; + + commands.push(this.command); + try { + if (shouldRun) { + const { stdout, stderr } = await execPromise(commands.join(';'), { env: allEnvVars, shell: '/bin/bash' }); + this.commandResult = { + stdout: stdout.trim(), + stderr: stderr.trim() + }; + this.hasRun = true; + } else if (overrides && overrides.clear === true) { + this.commandResult = { + stdout: '', + stderr: '' + }; + } + } catch (e: any) { + console.error(e); + this.commandResult = { stdout: '', stderr: e.toString() }; + } + + } +} \ No newline at end of file diff --git a/src/controllers/github.ts b/src/controllers/github.ts new file mode 100644 index 0000000..f2fce1a --- /dev/null +++ b/src/controllers/github.ts @@ -0,0 +1,86 @@ +import { Octokit } from '@octokit/core'; +import { Controllers, Json, Provider } from '@tinystacks/ops-core'; +import { GithubCredentialsProvider } from '../core/github-credentials-provider.js'; +import { findProvider } from '../utils/find-provider.js'; +import { Github as GithubModel } from '../models/github.js'; +import { Github as GithubType } from '../ops-types.js'; + +import WidgetController = Controllers.Widget; + +type GithubOverrides = { + host?: string; + organization?: string; + repository?: string; +}; + +class Github extends GithubModel implements WidgetController { + static fromJson (object: GithubType, _dependencySource?: string): Github { + return new Github(object); + } + + async getData (providers?: Provider[], overrides: GithubOverrides = {}, _parameters?: Json): Promise { + const { + organization = this.organization, + repository = this.repository + } = overrides; + + const githubCredentialsProvider = findProvider(providers, GithubCredentialsProvider.type); + const githubToken = githubCredentialsProvider.getCredentials().token; + + + const githubClient = new Octokit({ auth: githubToken, baseUrl: this.host }); + + const actionsResponse = await githubClient.request('GET /repos/{owner}/{repo}/actions/workflows', { + owner: organization, + repo: repository, + headers: { + 'X-GitHub-Api-Version': '2022-11-28' + } + }); + + const { workflows = [] } = actionsResponse?.data || {}; + + for (const workflow of workflows) { + const gqlResponse: any = await githubClient.graphql( + `query ($NODE_ID: ID!) { + node(id: $NODE_ID) { + ... on Workflow { + name + url + runs (first:1) { + edges { + node { + id + createdAt + event + checkSuite { + conclusion + status + commit { + id + } + } + } + } + } + } + } + }`, + { + NODE_ID: workflow.node_id + } + ); + this.actions.push({ + name: gqlResponse?.node?.name, + url: gqlResponse?.node?.url, + status: gqlResponse?.node?.runs?.edges?.at(0)?.node?.checkSuite?.conclusion, + lastExecuted: gqlResponse?.node?.runs?.edges?.at(0)?.node?.createdAt, + trigger: gqlResponse?.node?.runs?.edges?.at(0)?.node?.event + }); + } + } +} + +export { + Github +}; \ No newline at end of file diff --git a/src/controllers/index.ts b/src/controllers/index.ts new file mode 100644 index 0000000..8f27c03 --- /dev/null +++ b/src/controllers/index.ts @@ -0,0 +1,7 @@ +export * from './cli.js'; +export * from './github.js'; +export * from '../grid.js'; +export * from '../json-filter.js'; +export * from '../markdown.js'; +export * from '../panel.js'; +export * from '../tabs.js'; \ No newline at end of file diff --git a/src/providers/cli-environment-provider.ts b/src/core/cli-environment-provider.ts similarity index 100% rename from src/providers/cli-environment-provider.ts rename to src/core/cli-environment-provider.ts diff --git a/src/providers/credentials-provider.ts b/src/core/credentials-provider.ts similarity index 100% rename from src/providers/credentials-provider.ts rename to src/core/credentials-provider.ts diff --git a/src/providers/github-credentials-provider.ts b/src/core/github-credentials-provider.ts similarity index 76% rename from src/providers/github-credentials-provider.ts rename to src/core/github-credentials-provider.ts index 7e33177..2351506 100644 --- a/src/providers/github-credentials-provider.ts +++ b/src/core/github-credentials-provider.ts @@ -1,5 +1,4 @@ -import { BaseProvider } from '@tinystacks/ops-core'; -import { OtherProperties } from '@tinystacks/ops-core/dist/types.js'; +import { Provider, Json } from '@tinystacks/ops-core'; import { CliEnvironmentProvider } from './cli-environment-provider.js'; import { CredentialsProvider } from './credentials-provider.js'; import { @@ -7,8 +6,7 @@ import { GithubCredentialsProvider as GithubCredentialsProviderType } from '../ops-types.js'; - -class GithubCredentialsProvider extends BaseProvider implements CliEnvironmentProvider, CredentialsProvider, GithubCredentialsProviderType { +class GithubCredentialsProvider extends Provider implements CliEnvironmentProvider, CredentialsProvider, GithubCredentialsProviderType { static type = 'GithubCredentialsProvider'; credentials: GithubCredentials; host?: string; @@ -30,7 +28,7 @@ class GithubCredentialsProvider extends BaseProvider implements CliEnvironmentPr return this.credentials; } - getCliEnvironment (envVars: OtherProperties = {}): OtherProperties { + getCliEnvironment (envVars: Json = {}): Json { if (this.host) { envVars['GH_HOST'] = this.host; } diff --git a/src/core/index.ts b/src/core/index.ts new file mode 100644 index 0000000..131a9e9 --- /dev/null +++ b/src/core/index.ts @@ -0,0 +1,3 @@ +export * from './cli-environment-provider.js'; +export * from './credentials-provider.js'; +export * from './github-credentials-provider.js'; \ No newline at end of file diff --git a/src/github.tsx b/src/github.tsx deleted file mode 100644 index dd3e1fe..0000000 --- a/src/github.tsx +++ /dev/null @@ -1,182 +0,0 @@ -import React from 'react'; -import dayjs from 'dayjs'; -import { Octokit } from '@octokit/core'; -import { BaseProvider, BaseWidget } from '@tinystacks/ops-core'; -import { OtherProperties } from '@tinystacks/ops-core/dist/types'; -import { Widget } from '@tinystacks/ops-model'; -import { - SimpleGrid, - Stack, - Table, - TableContainer, - Tbody, - Th, - Thead, - Tr, - Text, - Link, - Td -} from '@chakra-ui/react'; -import { GithubCredentialsProvider } from './providers/github-credentials-provider.js'; -import { findProvider } from './utils/find-provider.js'; -import KeyValueStat from './components/key-value-stat.js'; -import { GithubAction, Github as GithubType } from './ops-types.js'; - -type GithubOverrides = { - host?: string; - organization?: string; - repository?: string; -}; - -class Github extends BaseWidget implements GithubType { - host?: string; - organization: string; - repository: string; - actions?: GithubAction[]; - - constructor (props: GithubType) { - super(props); - const { - host, - organization, - repository, - actions - } = props; - this.host = host; - this.organization = organization; - this.repository = repository; - this.actions = actions || []; - } - - static fromJson (object: GithubType, _dependencySource?: string): Github { - return new Github(object); - } - - toJson (): GithubType { - return { - ...super.toJson(), - host: this.host, - organization: this.organization, - repository: this.repository, - actions: this.actions - }; - } - - async getData (providers?: BaseProvider[], overrides: GithubOverrides = {}, _parameters?: OtherProperties): Promise { - const { - organization = this.organization, - repository = this.repository - } = overrides; - - const githubCredentialsProvider = findProvider(providers, GithubCredentialsProvider.type); - const githubToken = githubCredentialsProvider.getCredentials().token; - - - const githubClient = new Octokit({ auth: githubToken, baseUrl: this.host }); - - const actionsResponse = await githubClient.request('GET /repos/{owner}/{repo}/actions/workflows', { - owner: organization, - repo: repository, - headers: { - 'X-GitHub-Api-Version': '2022-11-28' - } - }); - - const { workflows = [] } = actionsResponse?.data || {}; - - for (const workflow of workflows) { - const gqlResponse: any = await githubClient.graphql( - `query ($NODE_ID: ID!) { - node(id: $NODE_ID) { - ... on Workflow { - name - url - runs (first:1) { - edges { - node { - id - createdAt - event - checkSuite { - conclusion - status - commit { - id - } - } - } - } - } - } - } - }`, - { - NODE_ID: workflow.node_id - } - ); - this.actions.push({ - name: gqlResponse?.node?.name, - url: gqlResponse?.node?.url, - status: gqlResponse?.node?.runs?.edges?.at(0)?.node?.checkSuite?.conclusion, - lastExecuted: gqlResponse?.node?.runs?.edges?.at(0)?.node?.createdAt, - trigger: gqlResponse?.node?.runs?.edges?.at(0)?.node?.event - }); - } - } - render (_children?: (Widget & { renderedElement: JSX.Element; })[], _overridesCallback?: (overrides: any) => void): JSX.Element { - return ( - - - - - - - Workflows - - - - - - - - - - - - {this.actions?.map((action) => { - const { - name, - url, - status, - lastExecuted, - trigger - } = action; - return ( - - - - - - - ); - })} - -
NameStatusLast ExecutedLast Trigger
{name}{status}{lastExecuted ? ` ${dayjs(new Date(lastExecuted)).format('M/D/YYYY h:mA')}` : ''}{trigger}
-
-
-
- ); - } -} - -export { - Github -}; \ No newline at end of file diff --git a/src/grid.tsx b/src/grid.tsx index d286c7b..f7964d0 100644 --- a/src/grid.tsx +++ b/src/grid.tsx @@ -1,11 +1,15 @@ import React from 'react'; import isEmpty from 'lodash.isempty'; import { Box, SimpleGrid } from '@chakra-ui/react'; -import { BaseWidget } from '@tinystacks/ops-core'; +import { Controllers, Models, Views } from '@tinystacks/ops-core'; import { Widget } from '@tinystacks/ops-model'; import { Grid as GridProps } from './ops-types.js'; -export class Grid extends BaseWidget { +import WidgetController = Controllers.Widget; +import WidgetModel = Models.Widget; +import WidgetView = Views.Widget; + +export class Grid extends WidgetModel implements WidgetController, WidgetView { columns: number | undefined; constructor (props: GridProps) { super(props); diff --git a/src/index.ts b/src/index.ts index 4203435..41a6d93 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,11 +1,6 @@ -export * from './markdown.js'; -export * from './tabs.js'; -export * from './panel.js'; -export * from './grid.js'; -export * from './providers/cli-environment-provider.js'; -export * from './providers/credentials-provider.js'; -export * from './providers/github-credentials-provider.js'; -export * from './github.js'; -export * from './cli.js'; -export * from './json-filter.js'; -export * as OpsTypes from './ops-types.js'; \ No newline at end of file +export * as Controllers from './controllers/index.js'; +export * as Models from './models/index.js'; +export * as Views from './views/index.js'; +export * as OpsTypes from './ops-types.js'; +export * from './utils/index.js'; +export * from './core/index.js'; \ No newline at end of file diff --git a/src/json-filter.tsx b/src/json-filter.tsx index 735ba26..2a50750 100644 --- a/src/json-filter.tsx +++ b/src/json-filter.tsx @@ -1,11 +1,15 @@ import React from 'react'; import get from 'lodash.get'; -import { BaseWidget, TinyStacksError } from '@tinystacks/ops-core'; +import { ReasonPhrases } from 'http-status-codes'; +import { Controllers, Models, Views, TinyStacksError } from '@tinystacks/ops-core'; import { Box, Stack } from '@chakra-ui/react'; import { JsonFilter as JsonFilterProps } from './ops-types.js'; -import { ReasonPhrases } from 'http-status-codes'; -export class JsonFilter extends BaseWidget { +import WidgetController = Controllers.Widget; +import WidgetModel = Models.Widget; +import WidgetView = Views.Widget; + +export class JsonFilter extends WidgetModel implements WidgetController, WidgetView { static type = 'JsonFilter'; jsonObject: { [key: string]: any; }; paths: { diff --git a/src/markdown.tsx b/src/markdown.tsx index 25cf593..cef32e0 100644 --- a/src/markdown.tsx +++ b/src/markdown.tsx @@ -1,11 +1,15 @@ import React from 'react'; -import { BaseWidget } from '@tinystacks/ops-core'; +import { Controllers, Models, Views } from '@tinystacks/ops-core'; import { default as ReactMarkdown } from 'react-markdown'; import { default as ChakraUIRenderer } from 'chakra-ui-markdown-renderer'; import { Box } from '@chakra-ui/react'; import { Markdown as MarkdownProps } from './ops-types.js'; -export class Markdown extends BaseWidget { +import WidgetController = Controllers.Widget; +import WidgetModel = Models.Widget; +import WidgetView = Views.Widget; + +export class Markdown extends WidgetModel implements WidgetController, WidgetView { markdown: string; constructor (props: MarkdownProps) { diff --git a/src/models/cli.ts b/src/models/cli.ts new file mode 100644 index 0000000..e6c80da --- /dev/null +++ b/src/models/cli.ts @@ -0,0 +1,44 @@ +import { Models } from '@tinystacks/ops-core'; +import { Cli as CliProps } from '../ops-types.js'; + +import Widget = Models.Widget; + +export class Cli extends Widget { + static type = 'Cli'; + command: string; + runOnStart: boolean; + commandResult: { stdout: string, stderr: string }; + hasRun: boolean; + environmentVariables: { [key: string]: string } | undefined; + + constructor (props: CliProps) { + super(props); + this.command = props.command; + this.runOnStart = props.runOnStart === true; + this.commandResult = props.commandResult || { + stdout: '', + stderr: '' + }; + this.hasRun = props.hasRun === true; + this.environmentVariables = props.environmentVariables; + } + + static fromJson (object: CliProps): Cli { + return new Cli(object); + } + + envVarMapper (envVars: {[key: string]: string}) { + return Object.entries(envVars).map(([envKey, envVal]) => `export ${envKey}=${envVal}`); + } + + toJson (): CliProps { + return { + ...super.toJson(), + command: this.command, + commandResult: this.commandResult, + runOnStart: this.runOnStart, + hasRun: this.hasRun, + environmentVariables: this.environmentVariables + }; + } +} \ No newline at end of file diff --git a/src/models/github.ts b/src/models/github.ts new file mode 100644 index 0000000..a1b16aa --- /dev/null +++ b/src/models/github.ts @@ -0,0 +1,43 @@ +import { Models } from '@tinystacks/ops-core'; +import { GithubAction, Github as GithubType } from '../ops-types.js'; + +import Widget = Models.Widget; + +class Github extends Widget implements GithubType { + host?: string; + organization: string; + repository: string; + actions?: GithubAction[]; + + constructor (props: GithubType) { + super(props); + const { + host, + organization, + repository, + actions + } = props; + this.host = host; + this.organization = organization; + this.repository = repository; + this.actions = actions || []; + } + + static fromJson (object: GithubType, _dependencySource?: string): Github { + return new Github(object); + } + + toJson (): GithubType { + return { + ...super.toJson(), + host: this.host, + organization: this.organization, + repository: this.repository, + actions: this.actions + }; + } +} + +export { + Github +}; \ No newline at end of file diff --git a/src/models/index.ts b/src/models/index.ts new file mode 100644 index 0000000..8f27c03 --- /dev/null +++ b/src/models/index.ts @@ -0,0 +1,7 @@ +export * from './cli.js'; +export * from './github.js'; +export * from '../grid.js'; +export * from '../json-filter.js'; +export * from '../markdown.js'; +export * from '../panel.js'; +export * from '../tabs.js'; \ No newline at end of file diff --git a/src/node.ts b/src/node.ts new file mode 100644 index 0000000..502d104 --- /dev/null +++ b/src/node.ts @@ -0,0 +1,5 @@ +export * as Models from './models/index.js'; +export * as OpsTypes from './ops-types.js'; +export * from './controllers/index.js'; +export * from './utils/index.js'; +export * from './core/index.js'; \ No newline at end of file diff --git a/src/ops-types.ts b/src/ops-types.ts index 9786b51..6e898d3 100644 --- a/src/ops-types.ts +++ b/src/ops-types.ts @@ -39,12 +39,12 @@ export interface GithubCredentialsProvider extends Provider { aws ecs list-tasks --cluster $CLUSTER_NAME | jq '[.taskArns[0]][0]' | xargs -I{} bash -c 'aws ecs execute-command --cluster $CLUSTER_NAME --task {} --container $CONTAINER_NAME --command "df" --interactive'; * ``` */ -export interface Cli extends Widget { - command: string +export interface Cli extends Widget { + command: string; commandResult?: { stdout: string, stderr: string }; - runOnStart?: boolean - hasRun?: boolean - environmentVariables?: { [key: string]: string } + runOnStart?: boolean; + hasRun?: boolean; + environmentVariables?: { [key: string]: string }; } export interface GithubAction { diff --git a/src/panel.tsx b/src/panel.tsx index 2a95f60..4a6a3d4 100644 --- a/src/panel.tsx +++ b/src/panel.tsx @@ -1,11 +1,15 @@ import React from 'react'; import isEmpty from 'lodash.isempty'; import { Box, HStack, Stack } from '@chakra-ui/react'; -import { BaseWidget } from '@tinystacks/ops-core'; +import { Controllers, Models, Views } from '@tinystacks/ops-core'; import { Widget } from '@tinystacks/ops-model'; import { Panel as PanelProps } from './ops-types.js'; -export class Panel extends BaseWidget { +import WidgetController = Controllers.Widget; +import WidgetModel = Models.Widget; +import WidgetView = Views.Widget; + +export class Panel extends WidgetModel implements WidgetController, WidgetView { orientation: string; constructor (props: PanelProps) { super(props); diff --git a/src/tabs.tsx b/src/tabs.tsx index 1392f41..401681c 100644 --- a/src/tabs.tsx +++ b/src/tabs.tsx @@ -1,6 +1,6 @@ import React from 'react'; import isEmpty from 'lodash.isempty'; -import { BaseWidget } from '@tinystacks/ops-core'; +import { Controllers, Models, Views } from '@tinystacks/ops-core'; import { Tabs as ChakraTabs, TabList as ChakraTabList, TabPanel as ChakraTabPanel, Tab as ChakraTab, TabPanels as ChakraTabPanels @@ -8,7 +8,11 @@ import { import { Widget } from '@tinystacks/ops-model'; import { Tabs as TabsProps } from './ops-types.js'; -export class Tabs extends BaseWidget { +import WidgetController = Controllers.Widget; +import WidgetModel = Models.Widget; +import WidgetView = Views.Widget; + +export class Tabs extends WidgetModel implements WidgetController, WidgetView { tabNames: string[]; constructor (props: TabsProps) { super(props); diff --git a/src/utils/do-nothing.ts b/src/utils/do-nothing.ts new file mode 100644 index 0000000..b14dd6f --- /dev/null +++ b/src/utils/do-nothing.ts @@ -0,0 +1 @@ +export function doNothing (..._args: any[]): void { return; } \ No newline at end of file diff --git a/src/utils/find-provider.ts b/src/utils/find-provider.ts index dffe439..84db8f9 100644 --- a/src/utils/find-provider.ts +++ b/src/utils/find-provider.ts @@ -1,7 +1,7 @@ -import { BaseProvider, TinyStacksError } from '@tinystacks/ops-core'; +import { TinyStacksError, Provider } from '@tinystacks/ops-core'; import isEmpty from 'lodash.isempty'; -export function findProvider (providers: BaseProvider[] = [], providerType: string): T { +export function findProvider (providers: Provider[] = [], providerType: string): T { if (!providers || isEmpty(providers)) { throw TinyStacksError.fromJson({ message: 'No providers are available!', diff --git a/src/utils/index.ts b/src/utils/index.ts new file mode 100644 index 0000000..3b65ef0 --- /dev/null +++ b/src/utils/index.ts @@ -0,0 +1,2 @@ +export * from './do-nothing.js'; +export * from './find-provider.js'; \ No newline at end of file diff --git a/src/views/cli.tsx b/src/views/cli.tsx new file mode 100644 index 0000000..e161792 --- /dev/null +++ b/src/views/cli.tsx @@ -0,0 +1,67 @@ +import React from 'react'; +import isEmpty from 'lodash.isempty'; +import { Box, Button, Code, Heading, HStack, Spacer, Stack } from '@chakra-ui/react'; +import { Views } from '@tinystacks/ops-core'; +import { Cli as CliModel } from '../models/cli.js'; +import { Cli as CliProps } from '../ops-types.js'; + +import WidgetView = Views.Widget; +import { doNothing } from '../utils/do-nothing.js'; + +type CliOverrides = { + clear?: boolean, + run?: boolean +} + +export class Cli extends CliModel implements WidgetView { + static fromJson (object: CliProps): Cli { + return new Cli(object); + } + + render (_children?: any, overridesCallback: (overrides: CliOverrides) => void = doNothing): JSX.Element { + const commandResultRender = (!isEmpty(this.commandResult.stderr) || !isEmpty(this.commandResult.stdout)) ? + + +
+            {this.commandResult.stderr}
+            {this.commandResult.stdout}
+          
+
+ + +
+ : 'Command has not been run yet!'; + + return ( + + + + +
+                {this.command}
+              
+
+ + +
+
+ + Response: + + + {commandResultRender} + +
+ ); + } +} \ No newline at end of file diff --git a/src/views/components/index.ts b/src/views/components/index.ts new file mode 100644 index 0000000..b2b7e94 --- /dev/null +++ b/src/views/components/index.ts @@ -0,0 +1 @@ +export * from './key-value-stat.js'; \ No newline at end of file diff --git a/src/components/key-value-stat.tsx b/src/views/components/key-value-stat.tsx similarity index 100% rename from src/components/key-value-stat.tsx rename to src/views/components/key-value-stat.tsx diff --git a/src/views/github.tsx b/src/views/github.tsx new file mode 100644 index 0000000..c4f35ba --- /dev/null +++ b/src/views/github.tsx @@ -0,0 +1,85 @@ +import React from 'react'; +import dayjs from 'dayjs'; +import { Widget } from '@tinystacks/ops-model'; +import { Views } from '@tinystacks/ops-core'; +import { + SimpleGrid, + Stack, + Table, + TableContainer, + Tbody, + Th, + Thead, + Tr, + Text, + Link, + Td +} from '@chakra-ui/react'; +import KeyValueStat from './components/key-value-stat.js'; +import { Github as GithubModel } from '../models/github.js'; +import { Github as GithubType } from '../ops-types.js'; + +import WidgetView = Views.Widget; + +class Github extends GithubModel implements WidgetView { + static fromJson (object: GithubType, _dependencySource?: string): Github { + return new Github(object); + } + + render (_children?: (Widget & { renderedElement: JSX.Element; })[], _overridesCallback?: (overrides: any) => void): JSX.Element { + return ( + + + + + + + Workflows + + + + + + + + + + + + {this.actions?.map((action) => { + const { + name, + url, + status, + lastExecuted, + trigger + } = action; + return ( + + + + + + + ); + })} + +
NameStatusLast ExecutedLast Trigger
{name}{status}{lastExecuted ? ` ${dayjs(new Date(lastExecuted)).format('M/D/YYYY h:mA')}` : ''}{trigger}
+
+
+
+ ); + } +} + +export { + Github +}; \ No newline at end of file diff --git a/src/views/index.ts b/src/views/index.ts new file mode 100644 index 0000000..b5f618d --- /dev/null +++ b/src/views/index.ts @@ -0,0 +1,8 @@ +export * from './cli.js'; +export * from './github.js'; +export * from '../grid.js'; +export * from '../json-filter.js'; +export * from '../markdown.js'; +export * from '../panel.js'; +export * from '../tabs.js'; +export * as Components from './components/index.js'; \ No newline at end of file diff --git a/test/cli.test.tsx b/test/cli.test.tsx index 2296690..a6ec0e4 100644 --- a/test/cli.test.tsx +++ b/test/cli.test.tsx @@ -1,4 +1,5 @@ -import { Cli } from '../src/cli'; +import { Cli } from '../src/controllers/cli'; +import { Cli as CliView } from '../src/views/cli'; import {jest} from '@jest/globals' import { render, cleanup, screen } from '@testing-library/react'; import '@testing-library/jest-dom/extend-expect'; @@ -134,7 +135,7 @@ describe('Cli', () => { jest.mock('child_process', () => ({ exec: jest.fn() })); jest.mock('node:util', () => ({ promisify: jest.fn(() => mockExecPromise) })); - const cli = Cli.fromJson({ + const cli = CliView.fromJson({ id: 'MockWidget', type: 'Cli', displayName: 'mock widget', @@ -153,7 +154,7 @@ describe('Cli', () => { jest.mock('child_process', () => ({ exec: jest.fn() })); jest.mock('node:util', () => ({ promisify: jest.fn(() => mockExecPromise) })); - const cli = Cli.fromJson({ + const cli = CliView.fromJson({ id: 'MockWidget', type: 'Cli', displayName: 'mock widget', @@ -181,9 +182,10 @@ describe('Cli', () => { command: 'echo Hello', runOnStart: true }); - await cli.getData(); - const renderedCli = cli.render(); + const cliView = CliView.fromJson(cli.toJson()); + + const renderedCli = cliView.render(); render(renderedCli); expect(screen.getByText(stdout)).toBeInTheDocument(); expect(screen.getByText('Clear')).toBeInTheDocument(); diff --git a/test/github.test.tsx b/test/github.test.tsx index 2979d29..1937fc9 100644 --- a/test/github.test.tsx +++ b/test/github.test.tsx @@ -15,8 +15,9 @@ const mockFormat = jest.fn(); jest.mock('dayjs', () => mockDayJs) -const { Github } = await import('../src/github'); -const { GithubCredentialsProvider } = await import('../src/providers/github-credentials-provider'); +const { Github } = await import('../src/controllers/github'); +const { Github: GithubView } = await import('../src/views/github'); +const { GithubCredentialsProvider } = await import('../src/core/github-credentials-provider'); describe('Github', () => { beforeEach(() => { @@ -55,7 +56,6 @@ describe('Github', () => { expect(githubWidget).toHaveProperty('repository'); expect(githubWidget).toHaveProperty('toJson'); expect(githubWidget).toHaveProperty('getData'); - expect(githubWidget).toHaveProperty('render'); }); it('toJson', () => { const githubWidget = Github.fromJson({ @@ -187,15 +187,16 @@ describe('Github', () => { } }); - const githubWidget = Github.fromJson({ + const githubController = Github.fromJson({ id: 'GithubWidget', type: 'Github', displayName: 'Github Widget', organization: 'mock-org', repository: 'mock-repo' }); + await githubController.getData([githubProvider]); + const githubWidget = GithubView.fromJson(githubController.toJson()); - await githubWidget.getData([githubProvider]); const renderedGithubWidget = githubWidget.render(); render(renderedGithubWidget); diff --git a/test/mocks/MockProvider.ts b/test/mocks/MockProvider.ts index 46b4360..649b1aa 100644 --- a/test/mocks/MockProvider.ts +++ b/test/mocks/MockProvider.ts @@ -1,6 +1,6 @@ -import { BaseProvider } from "@tinystacks/ops-core"; +import { Provider } from "@tinystacks/ops-core"; -class MockProvider extends BaseProvider { +class MockProvider extends Provider { static type = 'MockProvider'; } diff --git a/test/providers/github-credentials-provider.test.ts b/test/providers/github-credentials-provider.test.ts index ab57d69..388ea7d 100644 --- a/test/providers/github-credentials-provider.test.ts +++ b/test/providers/github-credentials-provider.test.ts @@ -1,4 +1,5 @@ -import { GithubCredentialsProvider, GithubCredentialsProviderType } from '../../src/providers/github-credentials-provider'; +import { GithubCredentialsProvider } from '../../src/core/github-credentials-provider'; +import { GithubCredentialsProvider as GithubCredentialsProviderType } from '../../src/ops-types'; describe('GithubCredentialsProvider', () => { it('fromJson', () => { diff --git a/test/utils/find-provider.test.ts b/test/utils/find-provider.test.ts index 81f4f14..5b4dbb6 100644 --- a/test/utils/find-provider.test.ts +++ b/test/utils/find-provider.test.ts @@ -1,5 +1,5 @@ import { findProvider } from '../../src/utils/find-provider.js'; -import { GithubCredentialsProvider } from '../../src/providers/github-credentials-provider.js'; +import { GithubCredentialsProvider } from '../../src/core/github-credentials-provider.js'; import { MockProvider } from '../mocks/MockProvider.js'; describe('findProvider', () => {