21 files changed
+622
-414
No files matched your search
Generated
+307
-231
@@ -9,15 +9,14 @@
|
||||
"version": "7.0.0",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@radix-ui/react-icons": "^1.1.1",
|
||||
"@radix-ui/react-navigation-menu": "^1.0.0",
|
||||
"@radix-ui/react-tooltip": "^1.0.0",
|
||||
"classnames": "^2.2.6",
|
||||
"date-fns": "^2.11.1",
|
||||
"date-fns": "^2.29.0",
|
||||
"lodash": "^4.17.21",
|
||||
"markdown-it": "^13.0.1",
|
||||
"next": "^12.3.0",
|
||||
"next-seo": "^5.5.0",
|
||||
"rc-tooltip": "^5.1.0",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"react-icons": "^4.2.0",
|
||||
@@ -34,7 +33,7 @@
|
||||
"@types/node": "^12.12.34",
|
||||
"@types/react": "^18.0.18",
|
||||
"@types/sharp": "^0.29.2",
|
||||
"eslint": "^8.23.0",
|
||||
"eslint": "^8.25.0",
|
||||
"eslint-config-next": "^12.3.0",
|
||||
"feed": "^4.1.0",
|
||||
"should": "^8.2.2",
|
||||
@@ -66,9 +65,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@eslint/eslintrc": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.1.tgz",
|
||||
"integrity": "sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==",
|
||||
"version": "1.3.3",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz",
|
||||
"integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ajv": "^6.12.4",
|
||||
@@ -88,10 +87,36 @@
|
||||
"url": "https://opencollective.com/eslint"
|
||||
}
|
||||
},
|
||||
"node_modules/@floating-ui/core": {
|
||||
"version": "0.7.3",
|
||||
"resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-0.7.3.tgz",
|
||||
"integrity": "sha512-buc8BXHmG9l82+OQXOFU3Kr2XQx9ys01U/Q9HMIrZ300iLc8HLMgh7dcCqgYzAzf4BkoQvDcXf5Y+CuEZ5JBYg=="
|
||||
},
|
||||
"node_modules/@floating-ui/dom": {
|
||||
"version": "0.5.4",
|
||||
"resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-0.5.4.tgz",
|
||||
"integrity": "sha512-419BMceRLq0RrmTSDxn8hf9R3VCJv2K9PUfugh5JyEFmdjzDo+e8U5EdR8nzKq8Yj1htzLm3b6eQEEam3/rrtg==",
|
||||
"dependencies": {
|
||||
"@floating-ui/core": "^0.7.3"
|
||||
}
|
||||
},
|
||||
"node_modules/@floating-ui/react-dom": {
|
||||
"version": "0.7.2",
|
||||
"resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-0.7.2.tgz",
|
||||
"integrity": "sha512-1T0sJcpHgX/u4I1OzIEhlcrvkUN8ln39nz7fMoE/2HDHrPiMFoOGR7++GYyfUmIQHkkrTinaeQsO3XWubjSvGg==",
|
||||
"dependencies": {
|
||||
"@floating-ui/dom": "^0.5.3",
|
||||
"use-isomorphic-layout-effect": "^1.1.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": ">=16.8.0",
|
||||
"react-dom": ">=16.8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@humanwhocodes/config-array": {
|
||||
"version": "0.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz",
|
||||
"integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==",
|
||||
"version": "0.10.7",
|
||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz",
|
||||
"integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@humanwhocodes/object-schema": "^1.2.1",
|
||||
@@ -102,16 +127,6 @@
|
||||
"node": ">=10.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@humanwhocodes/gitignore-to-minimatch": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz",
|
||||
"integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==",
|
||||
"dev": true,
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/nzakas"
|
||||
}
|
||||
},
|
||||
"node_modules/@humanwhocodes/module-importer": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
|
||||
@@ -383,6 +398,19 @@
|
||||
"@babel/runtime": "^7.13.10"
|
||||
}
|
||||
},
|
||||
"node_modules/@radix-ui/react-arrow": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.0.0.tgz",
|
||||
"integrity": "sha512-1MUuv24HCdepi41+qfv125EwMuxgQ+U+h0A9K3BjCO/J8nVRREKHHpkD9clwfnjEDk9hgGzCnff4aUKCPiRepw==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.13.10",
|
||||
"@radix-ui/react-primitive": "1.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^16.8 || ^17.0 || ^18.0",
|
||||
"react-dom": "^16.8 || ^17.0 || ^18.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@radix-ui/react-collection": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.0.0.tgz",
|
||||
@@ -449,14 +477,6 @@
|
||||
"react-dom": "^16.8 || ^17.0 || ^18.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@radix-ui/react-icons": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.1.1.tgz",
|
||||
"integrity": "sha512-xc3wQC59rsFylVbSusQCrrM+6695ppF730Q6yqzhRdqDcRNWIm2R6ngpzBoSOQMcwnq4p805F+Gr7xo4fmtN1A==",
|
||||
"peerDependencies": {
|
||||
"react": "^16.x || ^17.x || ^18.x"
|
||||
}
|
||||
},
|
||||
"node_modules/@radix-ui/react-id": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.0.tgz",
|
||||
@@ -495,6 +515,40 @@
|
||||
"react-dom": "^16.8 || ^17.0 || ^18.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@radix-ui/react-popper": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.0.0.tgz",
|
||||
"integrity": "sha512-k2dDd+1Wl0XWAMs9ZvAxxYsB9sOsEhrFQV4CINd7IUZf0wfdye4OHen9siwxvZImbzhgVeKTJi68OQmPRvVdMg==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.13.10",
|
||||
"@floating-ui/react-dom": "0.7.2",
|
||||
"@radix-ui/react-arrow": "1.0.0",
|
||||
"@radix-ui/react-compose-refs": "1.0.0",
|
||||
"@radix-ui/react-context": "1.0.0",
|
||||
"@radix-ui/react-primitive": "1.0.0",
|
||||
"@radix-ui/react-use-layout-effect": "1.0.0",
|
||||
"@radix-ui/react-use-rect": "1.0.0",
|
||||
"@radix-ui/react-use-size": "1.0.0",
|
||||
"@radix-ui/rect": "1.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^16.8 || ^17.0 || ^18.0",
|
||||
"react-dom": "^16.8 || ^17.0 || ^18.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@radix-ui/react-portal": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.0.tgz",
|
||||
"integrity": "sha512-a8qyFO/Xb99d8wQdu4o7qnigNjTPG123uADNecz0eX4usnQEj7o+cG4ZX4zkqq98NYekT7UoEQIjxBNWIFuqTA==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.13.10",
|
||||
"@radix-ui/react-primitive": "1.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^16.8 || ^17.0 || ^18.0",
|
||||
"react-dom": "^16.8 || ^17.0 || ^18.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@radix-ui/react-presence": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.0.tgz",
|
||||
@@ -534,6 +588,30 @@
|
||||
"react": "^16.8 || ^17.0 || ^18.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@radix-ui/react-tooltip": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.0.0.tgz",
|
||||
"integrity": "sha512-RB06pov+O4Npy10ei1C6fsyB9QoOjz7Ubo8Sl3qdKtLgkL9iI96925DYtH0bxx6MH6YB2FuzLU6B75qn3AQQQw==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.13.10",
|
||||
"@radix-ui/primitive": "1.0.0",
|
||||
"@radix-ui/react-compose-refs": "1.0.0",
|
||||
"@radix-ui/react-context": "1.0.0",
|
||||
"@radix-ui/react-dismissable-layer": "1.0.0",
|
||||
"@radix-ui/react-id": "1.0.0",
|
||||
"@radix-ui/react-popper": "1.0.0",
|
||||
"@radix-ui/react-portal": "1.0.0",
|
||||
"@radix-ui/react-presence": "1.0.0",
|
||||
"@radix-ui/react-primitive": "1.0.0",
|
||||
"@radix-ui/react-slot": "1.0.0",
|
||||
"@radix-ui/react-use-controllable-state": "1.0.0",
|
||||
"@radix-ui/react-visually-hidden": "1.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^16.8 || ^17.0 || ^18.0",
|
||||
"react-dom": "^16.8 || ^17.0 || ^18.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@radix-ui/react-use-callback-ref": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.0.tgz",
|
||||
@@ -591,6 +669,30 @@
|
||||
"react": "^16.8 || ^17.0 || ^18.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@radix-ui/react-use-rect": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.0.0.tgz",
|
||||
"integrity": "sha512-TB7pID8NRMEHxb/qQJpvSt3hQU4sqNPM1VCTjTRjEOa7cEop/QMuq8S6fb/5Tsz64kqSvB9WnwsDHtjnrM9qew==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.13.10",
|
||||
"@radix-ui/rect": "1.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^16.8 || ^17.0 || ^18.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@radix-ui/react-use-size": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.0.0.tgz",
|
||||
"integrity": "sha512-imZ3aYcoYCKhhgNpkNDh/aTiU05qw9hX+HHI1QDBTyIlcFjgeFlKKySNGMwTp7nYFLQg/j0VA2FmCY4WPDDHMg==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.13.10",
|
||||
"@radix-ui/react-use-layout-effect": "1.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^16.8 || ^17.0 || ^18.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@radix-ui/react-visually-hidden": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.0.0.tgz",
|
||||
@@ -604,6 +706,14 @@
|
||||
"react-dom": "^16.8 || ^17.0 || ^18.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@radix-ui/rect": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.0.0.tgz",
|
||||
"integrity": "sha512-d0O68AYy/9oeEy1DdC07bz1/ZXX+DqCskRd3i4JzLSTXwefzaepQrKjXC7aNM8lTHjFLDO0pDgaEiQ7jEk+HVg==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.13.10"
|
||||
}
|
||||
},
|
||||
"node_modules/@rushstack/eslint-patch": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.4.tgz",
|
||||
@@ -1208,9 +1318,16 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/date-fns": {
|
||||
"version": "2.11.1",
|
||||
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.11.1.tgz",
|
||||
"integrity": "sha512-3RdUoinZ43URd2MJcquzBbDQo+J87cSzB8NkXdZiN5ia1UNyep0oCyitfiL88+R7clGTeq/RniXAc16gWyAu1w=="
|
||||
"version": "2.29.3",
|
||||
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz",
|
||||
"integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==",
|
||||
"engines": {
|
||||
"node": ">=0.11"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/date-fns"
|
||||
}
|
||||
},
|
||||
"node_modules/debug": {
|
||||
"version": "4.3.4",
|
||||
@@ -1305,11 +1422,6 @@
|
||||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/dom-align": {
|
||||
"version": "1.12.3",
|
||||
"resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.12.3.tgz",
|
||||
"integrity": "sha512-Gj9hZN3a07cbR6zviMUBOMPdWxYhbMI+x+WS0NAIu2zFZmbK8ys9R79g+iG9qLnlCwpFoaB+fKy8Pdv470GsPA=="
|
||||
},
|
||||
"node_modules/emoji-regex": {
|
||||
"version": "9.2.2",
|
||||
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
|
||||
@@ -1407,14 +1519,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/eslint": {
|
||||
"version": "8.23.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.0.tgz",
|
||||
"integrity": "sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==",
|
||||
"version": "8.25.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.25.0.tgz",
|
||||
"integrity": "sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@eslint/eslintrc": "^1.3.1",
|
||||
"@humanwhocodes/config-array": "^0.10.4",
|
||||
"@humanwhocodes/gitignore-to-minimatch": "^1.0.2",
|
||||
"@eslint/eslintrc": "^1.3.3",
|
||||
"@humanwhocodes/config-array": "^0.10.5",
|
||||
"@humanwhocodes/module-importer": "^1.0.1",
|
||||
"ajv": "^6.10.0",
|
||||
"chalk": "^4.0.0",
|
||||
@@ -1431,7 +1542,6 @@
|
||||
"fast-deep-equal": "^3.1.3",
|
||||
"file-entry-cache": "^6.0.1",
|
||||
"find-up": "^5.0.0",
|
||||
"functional-red-black-tree": "^1.0.1",
|
||||
"glob-parent": "^6.0.1",
|
||||
"globals": "^13.15.0",
|
||||
"globby": "^11.1.0",
|
||||
@@ -1440,6 +1550,7 @@
|
||||
"import-fresh": "^3.0.0",
|
||||
"imurmurhash": "^0.1.4",
|
||||
"is-glob": "^4.0.0",
|
||||
"js-sdsl": "^4.1.4",
|
||||
"js-yaml": "^4.1.0",
|
||||
"json-stable-stringify-without-jsonify": "^1.0.1",
|
||||
"levn": "^0.4.1",
|
||||
@@ -2083,12 +2194,6 @@
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/functional-red-black-tree": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
|
||||
"integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/functions-have-names": {
|
||||
"version": "1.2.3",
|
||||
"resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
|
||||
@@ -2584,6 +2689,12 @@
|
||||
"resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz",
|
||||
"integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ=="
|
||||
},
|
||||
"node_modules/js-sdsl": {
|
||||
"version": "4.1.5",
|
||||
"resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz",
|
||||
"integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/js-tokens": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
||||
@@ -3279,83 +3390,6 @@
|
||||
"rc": "cli.js"
|
||||
}
|
||||
},
|
||||
"node_modules/rc-align": {
|
||||
"version": "4.0.12",
|
||||
"resolved": "https://registry.npmjs.org/rc-align/-/rc-align-4.0.12.tgz",
|
||||
"integrity": "sha512-3DuwSJp8iC/dgHzwreOQl52soj40LchlfUHtgACOUtwGuoFIOVh6n/sCpfqCU8kO5+iz6qR0YKvjgB8iPdE3aQ==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.10.1",
|
||||
"classnames": "2.x",
|
||||
"dom-align": "^1.7.0",
|
||||
"lodash": "^4.17.21",
|
||||
"rc-util": "^5.3.0",
|
||||
"resize-observer-polyfill": "^1.5.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": ">=16.9.0",
|
||||
"react-dom": ">=16.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/rc-motion": {
|
||||
"version": "2.6.2",
|
||||
"resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.6.2.tgz",
|
||||
"integrity": "sha512-4w1FaX3dtV749P8GwfS4fYnFG4Rb9pxvCYPc/b2fw1cmlHJWNNgOFIz7ysiD+eOrzJSvnLJWlNQQncpNMXwwpg==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.11.1",
|
||||
"classnames": "^2.2.1",
|
||||
"rc-util": "^5.21.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": ">=16.9.0",
|
||||
"react-dom": ">=16.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/rc-tooltip": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-5.1.0.tgz",
|
||||
"integrity": "sha512-pFqD1JZwNIpbdcefB7k5xREoHAWM/k3yQwYF0iminbmDXERgq4rvBfUwIvlCqqZSM7HDr9hYeYr6ZsVNaKtvCQ==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.11.2",
|
||||
"rc-trigger": "^5.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": ">=16.9.0",
|
||||
"react-dom": ">=16.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/rc-trigger": {
|
||||
"version": "5.3.1",
|
||||
"resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-5.3.1.tgz",
|
||||
"integrity": "sha512-5gaFbDkYSefZ14j2AdzucXzlWgU2ri5uEjkHvsf1ynRhdJbKxNOnw4PBZ9+FVULNGFiDzzlVF8RJnR9P/xrnKQ==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.18.3",
|
||||
"classnames": "^2.2.6",
|
||||
"rc-align": "^4.0.0",
|
||||
"rc-motion": "^2.0.0",
|
||||
"rc-util": "^5.19.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8.x"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": ">=16.9.0",
|
||||
"react-dom": ">=16.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/rc-util": {
|
||||
"version": "5.24.2",
|
||||
"resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.24.2.tgz",
|
||||
"integrity": "sha512-MWd0ZEV7xSwN4HM9jz9BwpnMzwCPjYJ7K90lePsrdgAkrmm8U7b4BOTIsv/84BQsaF7N3ejNkcrZ3AfEwc9HXA==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.18.3",
|
||||
"react-is": "^16.12.0",
|
||||
"shallowequal": "^1.1.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": ">=16.9.0",
|
||||
"react-dom": ">=16.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/rc/node_modules/strip-json-comments": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
|
||||
@@ -3398,7 +3432,8 @@
|
||||
"node_modules/react-is": {
|
||||
"version": "16.13.1",
|
||||
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
|
||||
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
|
||||
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/react-universal-interface": {
|
||||
"version": "0.6.2",
|
||||
@@ -3639,11 +3674,6 @@
|
||||
"node": ">=6.9"
|
||||
}
|
||||
},
|
||||
"node_modules/shallowequal": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz",
|
||||
"integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ=="
|
||||
},
|
||||
"node_modules/sharp": {
|
||||
"version": "0.31.0",
|
||||
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.31.0.tgz",
|
||||
@@ -4200,6 +4230,19 @@
|
||||
"resolved": "http://storage.mds.yandex.net/get-npm/69187/url-join-1.1.0.tgz",
|
||||
"integrity": "sha1-dBxsL0WWxIMNZxhGCSDQySIC3Hg="
|
||||
},
|
||||
"node_modules/use-isomorphic-layout-effect": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz",
|
||||
"integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==",
|
||||
"peerDependencies": {
|
||||
"react": "^16.8.0 || ^17.0.0 || ^18.0.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@types/react": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/use-media": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/use-media/-/use-media-1.4.0.tgz",
|
||||
@@ -4313,9 +4356,9 @@
|
||||
}
|
||||
},
|
||||
"@eslint/eslintrc": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.1.tgz",
|
||||
"integrity": "sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==",
|
||||
"version": "1.3.3",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz",
|
||||
"integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ajv": "^6.12.4",
|
||||
@@ -4329,10 +4372,32 @@
|
||||
"strip-json-comments": "^3.1.1"
|
||||
}
|
||||
},
|
||||
"@floating-ui/core": {
|
||||
"version": "0.7.3",
|
||||
"resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-0.7.3.tgz",
|
||||
"integrity": "sha512-buc8BXHmG9l82+OQXOFU3Kr2XQx9ys01U/Q9HMIrZ300iLc8HLMgh7dcCqgYzAzf4BkoQvDcXf5Y+CuEZ5JBYg=="
|
||||
},
|
||||
"@floating-ui/dom": {
|
||||
"version": "0.5.4",
|
||||
"resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-0.5.4.tgz",
|
||||
"integrity": "sha512-419BMceRLq0RrmTSDxn8hf9R3VCJv2K9PUfugh5JyEFmdjzDo+e8U5EdR8nzKq8Yj1htzLm3b6eQEEam3/rrtg==",
|
||||
"requires": {
|
||||
"@floating-ui/core": "^0.7.3"
|
||||
}
|
||||
},
|
||||
"@floating-ui/react-dom": {
|
||||
"version": "0.7.2",
|
||||
"resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-0.7.2.tgz",
|
||||
"integrity": "sha512-1T0sJcpHgX/u4I1OzIEhlcrvkUN8ln39nz7fMoE/2HDHrPiMFoOGR7++GYyfUmIQHkkrTinaeQsO3XWubjSvGg==",
|
||||
"requires": {
|
||||
"@floating-ui/dom": "^0.5.3",
|
||||
"use-isomorphic-layout-effect": "^1.1.1"
|
||||
}
|
||||
},
|
||||
"@humanwhocodes/config-array": {
|
||||
"version": "0.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz",
|
||||
"integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==",
|
||||
"version": "0.10.7",
|
||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz",
|
||||
"integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@humanwhocodes/object-schema": "^1.2.1",
|
||||
@@ -4340,12 +4405,6 @@
|
||||
"minimatch": "^3.0.4"
|
||||
}
|
||||
},
|
||||
"@humanwhocodes/gitignore-to-minimatch": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz",
|
||||
"integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==",
|
||||
"dev": true
|
||||
},
|
||||
"@humanwhocodes/module-importer": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
|
||||
@@ -4484,6 +4543,15 @@
|
||||
"@babel/runtime": "^7.13.10"
|
||||
}
|
||||
},
|
||||
"@radix-ui/react-arrow": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.0.0.tgz",
|
||||
"integrity": "sha512-1MUuv24HCdepi41+qfv125EwMuxgQ+U+h0A9K3BjCO/J8nVRREKHHpkD9clwfnjEDk9hgGzCnff4aUKCPiRepw==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.13.10",
|
||||
"@radix-ui/react-primitive": "1.0.0"
|
||||
}
|
||||
},
|
||||
"@radix-ui/react-collection": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.0.0.tgz",
|
||||
@@ -4533,12 +4601,6 @@
|
||||
"@radix-ui/react-use-escape-keydown": "1.0.0"
|
||||
}
|
||||
},
|
||||
"@radix-ui/react-icons": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.1.1.tgz",
|
||||
"integrity": "sha512-xc3wQC59rsFylVbSusQCrrM+6695ppF730Q6yqzhRdqDcRNWIm2R6ngpzBoSOQMcwnq4p805F+Gr7xo4fmtN1A==",
|
||||
"requires": {}
|
||||
},
|
||||
"@radix-ui/react-id": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.0.tgz",
|
||||
@@ -4570,6 +4632,32 @@
|
||||
"@radix-ui/react-visually-hidden": "1.0.0"
|
||||
}
|
||||
},
|
||||
"@radix-ui/react-popper": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.0.0.tgz",
|
||||
"integrity": "sha512-k2dDd+1Wl0XWAMs9ZvAxxYsB9sOsEhrFQV4CINd7IUZf0wfdye4OHen9siwxvZImbzhgVeKTJi68OQmPRvVdMg==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.13.10",
|
||||
"@floating-ui/react-dom": "0.7.2",
|
||||
"@radix-ui/react-arrow": "1.0.0",
|
||||
"@radix-ui/react-compose-refs": "1.0.0",
|
||||
"@radix-ui/react-context": "1.0.0",
|
||||
"@radix-ui/react-primitive": "1.0.0",
|
||||
"@radix-ui/react-use-layout-effect": "1.0.0",
|
||||
"@radix-ui/react-use-rect": "1.0.0",
|
||||
"@radix-ui/react-use-size": "1.0.0",
|
||||
"@radix-ui/rect": "1.0.0"
|
||||
}
|
||||
},
|
||||
"@radix-ui/react-portal": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.0.tgz",
|
||||
"integrity": "sha512-a8qyFO/Xb99d8wQdu4o7qnigNjTPG123uADNecz0eX4usnQEj7o+cG4ZX4zkqq98NYekT7UoEQIjxBNWIFuqTA==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.13.10",
|
||||
"@radix-ui/react-primitive": "1.0.0"
|
||||
}
|
||||
},
|
||||
"@radix-ui/react-presence": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.0.tgz",
|
||||
@@ -4598,6 +4686,26 @@
|
||||
"@radix-ui/react-compose-refs": "1.0.0"
|
||||
}
|
||||
},
|
||||
"@radix-ui/react-tooltip": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.0.0.tgz",
|
||||
"integrity": "sha512-RB06pov+O4Npy10ei1C6fsyB9QoOjz7Ubo8Sl3qdKtLgkL9iI96925DYtH0bxx6MH6YB2FuzLU6B75qn3AQQQw==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.13.10",
|
||||
"@radix-ui/primitive": "1.0.0",
|
||||
"@radix-ui/react-compose-refs": "1.0.0",
|
||||
"@radix-ui/react-context": "1.0.0",
|
||||
"@radix-ui/react-dismissable-layer": "1.0.0",
|
||||
"@radix-ui/react-id": "1.0.0",
|
||||
"@radix-ui/react-popper": "1.0.0",
|
||||
"@radix-ui/react-portal": "1.0.0",
|
||||
"@radix-ui/react-presence": "1.0.0",
|
||||
"@radix-ui/react-primitive": "1.0.0",
|
||||
"@radix-ui/react-slot": "1.0.0",
|
||||
"@radix-ui/react-use-controllable-state": "1.0.0",
|
||||
"@radix-ui/react-visually-hidden": "1.0.0"
|
||||
}
|
||||
},
|
||||
"@radix-ui/react-use-callback-ref": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.0.tgz",
|
||||
@@ -4640,6 +4748,24 @@
|
||||
"@babel/runtime": "^7.13.10"
|
||||
}
|
||||
},
|
||||
"@radix-ui/react-use-rect": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.0.0.tgz",
|
||||
"integrity": "sha512-TB7pID8NRMEHxb/qQJpvSt3hQU4sqNPM1VCTjTRjEOa7cEop/QMuq8S6fb/5Tsz64kqSvB9WnwsDHtjnrM9qew==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.13.10",
|
||||
"@radix-ui/rect": "1.0.0"
|
||||
}
|
||||
},
|
||||
"@radix-ui/react-use-size": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.0.0.tgz",
|
||||
"integrity": "sha512-imZ3aYcoYCKhhgNpkNDh/aTiU05qw9hX+HHI1QDBTyIlcFjgeFlKKySNGMwTp7nYFLQg/j0VA2FmCY4WPDDHMg==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.13.10",
|
||||
"@radix-ui/react-use-layout-effect": "1.0.0"
|
||||
}
|
||||
},
|
||||
"@radix-ui/react-visually-hidden": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.0.0.tgz",
|
||||
@@ -4649,6 +4775,14 @@
|
||||
"@radix-ui/react-primitive": "1.0.0"
|
||||
}
|
||||
},
|
||||
"@radix-ui/rect": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.0.0.tgz",
|
||||
"integrity": "sha512-d0O68AYy/9oeEy1DdC07bz1/ZXX+DqCskRd3i4JzLSTXwefzaepQrKjXC7aNM8lTHjFLDO0pDgaEiQ7jEk+HVg==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.13.10"
|
||||
}
|
||||
},
|
||||
"@rushstack/eslint-patch": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.4.tgz",
|
||||
@@ -5103,9 +5237,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"date-fns": {
|
||||
"version": "2.11.1",
|
||||
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.11.1.tgz",
|
||||
"integrity": "sha512-3RdUoinZ43URd2MJcquzBbDQo+J87cSzB8NkXdZiN5ia1UNyep0oCyitfiL88+R7clGTeq/RniXAc16gWyAu1w=="
|
||||
"version": "2.29.3",
|
||||
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz",
|
||||
"integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA=="
|
||||
},
|
||||
"debug": {
|
||||
"version": "4.3.4",
|
||||
@@ -5168,11 +5302,6 @@
|
||||
"esutils": "^2.0.2"
|
||||
}
|
||||
},
|
||||
"dom-align": {
|
||||
"version": "1.12.3",
|
||||
"resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.12.3.tgz",
|
||||
"integrity": "sha512-Gj9hZN3a07cbR6zviMUBOMPdWxYhbMI+x+WS0NAIu2zFZmbK8ys9R79g+iG9qLnlCwpFoaB+fKy8Pdv470GsPA=="
|
||||
},
|
||||
"emoji-regex": {
|
||||
"version": "9.2.2",
|
||||
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
|
||||
@@ -5252,14 +5381,13 @@
|
||||
}
|
||||
},
|
||||
"eslint": {
|
||||
"version": "8.23.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.0.tgz",
|
||||
"integrity": "sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==",
|
||||
"version": "8.25.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.25.0.tgz",
|
||||
"integrity": "sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@eslint/eslintrc": "^1.3.1",
|
||||
"@humanwhocodes/config-array": "^0.10.4",
|
||||
"@humanwhocodes/gitignore-to-minimatch": "^1.0.2",
|
||||
"@eslint/eslintrc": "^1.3.3",
|
||||
"@humanwhocodes/config-array": "^0.10.5",
|
||||
"@humanwhocodes/module-importer": "^1.0.1",
|
||||
"ajv": "^6.10.0",
|
||||
"chalk": "^4.0.0",
|
||||
@@ -5276,7 +5404,6 @@
|
||||
"fast-deep-equal": "^3.1.3",
|
||||
"file-entry-cache": "^6.0.1",
|
||||
"find-up": "^5.0.0",
|
||||
"functional-red-black-tree": "^1.0.1",
|
||||
"glob-parent": "^6.0.1",
|
||||
"globals": "^13.15.0",
|
||||
"globby": "^11.1.0",
|
||||
@@ -5285,6 +5412,7 @@
|
||||
"import-fresh": "^3.0.0",
|
||||
"imurmurhash": "^0.1.4",
|
||||
"is-glob": "^4.0.0",
|
||||
"js-sdsl": "^4.1.4",
|
||||
"js-yaml": "^4.1.0",
|
||||
"json-stable-stringify-without-jsonify": "^1.0.1",
|
||||
"levn": "^0.4.1",
|
||||
@@ -5780,12 +5908,6 @@
|
||||
"functions-have-names": "^1.2.2"
|
||||
}
|
||||
},
|
||||
"functional-red-black-tree": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
|
||||
"integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
|
||||
"dev": true
|
||||
},
|
||||
"functions-have-names": {
|
||||
"version": "1.2.3",
|
||||
"resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
|
||||
@@ -6126,6 +6248,12 @@
|
||||
"resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz",
|
||||
"integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ=="
|
||||
},
|
||||
"js-sdsl": {
|
||||
"version": "4.1.5",
|
||||
"resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz",
|
||||
"integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==",
|
||||
"dev": true
|
||||
},
|
||||
"js-tokens": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
||||
@@ -6632,60 +6760,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"rc-align": {
|
||||
"version": "4.0.12",
|
||||
"resolved": "https://registry.npmjs.org/rc-align/-/rc-align-4.0.12.tgz",
|
||||
"integrity": "sha512-3DuwSJp8iC/dgHzwreOQl52soj40LchlfUHtgACOUtwGuoFIOVh6n/sCpfqCU8kO5+iz6qR0YKvjgB8iPdE3aQ==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.10.1",
|
||||
"classnames": "2.x",
|
||||
"dom-align": "^1.7.0",
|
||||
"lodash": "^4.17.21",
|
||||
"rc-util": "^5.3.0",
|
||||
"resize-observer-polyfill": "^1.5.1"
|
||||
}
|
||||
},
|
||||
"rc-motion": {
|
||||
"version": "2.6.2",
|
||||
"resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.6.2.tgz",
|
||||
"integrity": "sha512-4w1FaX3dtV749P8GwfS4fYnFG4Rb9pxvCYPc/b2fw1cmlHJWNNgOFIz7ysiD+eOrzJSvnLJWlNQQncpNMXwwpg==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.11.1",
|
||||
"classnames": "^2.2.1",
|
||||
"rc-util": "^5.21.0"
|
||||
}
|
||||
},
|
||||
"rc-tooltip": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-5.1.0.tgz",
|
||||
"integrity": "sha512-pFqD1JZwNIpbdcefB7k5xREoHAWM/k3yQwYF0iminbmDXERgq4rvBfUwIvlCqqZSM7HDr9hYeYr6ZsVNaKtvCQ==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.11.2",
|
||||
"rc-trigger": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"rc-trigger": {
|
||||
"version": "5.3.1",
|
||||
"resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-5.3.1.tgz",
|
||||
"integrity": "sha512-5gaFbDkYSefZ14j2AdzucXzlWgU2ri5uEjkHvsf1ynRhdJbKxNOnw4PBZ9+FVULNGFiDzzlVF8RJnR9P/xrnKQ==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.18.3",
|
||||
"classnames": "^2.2.6",
|
||||
"rc-align": "^4.0.0",
|
||||
"rc-motion": "^2.0.0",
|
||||
"rc-util": "^5.19.2"
|
||||
}
|
||||
},
|
||||
"rc-util": {
|
||||
"version": "5.24.2",
|
||||
"resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.24.2.tgz",
|
||||
"integrity": "sha512-MWd0ZEV7xSwN4HM9jz9BwpnMzwCPjYJ7K90lePsrdgAkrmm8U7b4BOTIsv/84BQsaF7N3ejNkcrZ3AfEwc9HXA==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.18.3",
|
||||
"react-is": "^16.12.0",
|
||||
"shallowequal": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"react": {
|
||||
"version": "18.2.0",
|
||||
"resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
|
||||
@@ -6712,7 +6786,8 @@
|
||||
"react-is": {
|
||||
"version": "16.13.1",
|
||||
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
|
||||
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
|
||||
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
|
||||
"dev": true
|
||||
},
|
||||
"react-universal-interface": {
|
||||
"version": "0.6.2",
|
||||
@@ -6871,11 +6946,6 @@
|
||||
"resolved": "https://registry.npmjs.org/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz",
|
||||
"integrity": "sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g=="
|
||||
},
|
||||
"shallowequal": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz",
|
||||
"integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ=="
|
||||
},
|
||||
"sharp": {
|
||||
"version": "0.31.0",
|
||||
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.31.0.tgz",
|
||||
@@ -7294,6 +7364,12 @@
|
||||
"resolved": "http://storage.mds.yandex.net/get-npm/69187/url-join-1.1.0.tgz",
|
||||
"integrity": "sha1-dBxsL0WWxIMNZxhGCSDQySIC3Hg="
|
||||
},
|
||||
"use-isomorphic-layout-effect": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz",
|
||||
"integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==",
|
||||
"requires": {}
|
||||
},
|
||||
"use-media": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/use-media/-/use-media-1.4.0.tgz",
|
||||
|
||||
+3
-4
@@ -18,15 +18,14 @@
|
||||
"author": "Roman Timashev",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@radix-ui/react-icons": "^1.1.1",
|
||||
"@radix-ui/react-navigation-menu": "^1.0.0",
|
||||
"@radix-ui/react-tooltip": "^1.0.0",
|
||||
"classnames": "^2.2.6",
|
||||
"date-fns": "^2.11.1",
|
||||
"date-fns": "^2.29.0",
|
||||
"lodash": "^4.17.21",
|
||||
"markdown-it": "^13.0.1",
|
||||
"next": "^12.3.0",
|
||||
"next-seo": "^5.5.0",
|
||||
"rc-tooltip": "^5.1.0",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"react-icons": "^4.2.0",
|
||||
@@ -43,7 +42,7 @@
|
||||
"@types/node": "^12.12.34",
|
||||
"@types/react": "^18.0.18",
|
||||
"@types/sharp": "^0.29.2",
|
||||
"eslint": "^8.23.0",
|
||||
"eslint": "^8.25.0",
|
||||
"eslint-config-next": "^12.3.0",
|
||||
"feed": "^4.1.0",
|
||||
"should": "^8.2.2",
|
||||
|
||||
+46
-39
@@ -8,6 +8,7 @@ import { GetStaticProps, NextPage } from "next"
|
||||
import { IMenu, IMeta, PageCardDto } from "src/types"
|
||||
import { apiGet } from "@/next-lib"
|
||||
import { createHomeCards, createMenu } from "@/remote/factory"
|
||||
import { useMobile } from "@/hooks/useMobile"
|
||||
|
||||
type Props = {
|
||||
title: string
|
||||
@@ -16,48 +17,54 @@ type Props = {
|
||||
items: PageCardDto[]
|
||||
}
|
||||
|
||||
const Index: NextPage<Props> = props => (
|
||||
<>
|
||||
<NextSeo
|
||||
title={props.meta.title}
|
||||
description={props.meta.description}
|
||||
canonical="https://art.shlisselburg.org/"
|
||||
openGraph={{
|
||||
url: props.meta.url,
|
||||
title: props.meta.title,
|
||||
description: props.meta.description,
|
||||
images: [
|
||||
{
|
||||
url: props.meta.image,
|
||||
width: props.meta.imageWidth,
|
||||
height: props.meta.imageHeight,
|
||||
alt: props.meta.description,
|
||||
type: "image/jpeg",
|
||||
},
|
||||
],
|
||||
site_name: props.meta.siteName,
|
||||
}}
|
||||
/>
|
||||
<Head>
|
||||
<title>{props.title}</title>
|
||||
</Head>
|
||||
<App
|
||||
showAuthor={true}
|
||||
menu={props.menu}
|
||||
>
|
||||
<HudozkaTitle
|
||||
style={{
|
||||
marginTop: "var(--size-m)",
|
||||
marginBottom: "var(--size-m)",
|
||||
const Index: NextPage<Props> = props => {
|
||||
const mobile = useMobile()
|
||||
|
||||
return (
|
||||
<>
|
||||
<NextSeo
|
||||
title={props.meta.title}
|
||||
description={props.meta.description}
|
||||
canonical="https://art.shlisselburg.org/"
|
||||
openGraph={{
|
||||
url: props.meta.url,
|
||||
title: props.meta.title,
|
||||
description: props.meta.description,
|
||||
images: [
|
||||
{
|
||||
url: props.meta.image,
|
||||
width: props.meta.imageWidth,
|
||||
height: props.meta.imageHeight,
|
||||
alt: props.meta.description,
|
||||
type: "image/jpeg",
|
||||
},
|
||||
],
|
||||
site_name: props.meta.siteName,
|
||||
}}
|
||||
/>
|
||||
<Head>
|
||||
<title>{props.title}</title>
|
||||
</Head>
|
||||
<App
|
||||
showAuthor={true}
|
||||
menu={props.menu}
|
||||
>
|
||||
{mobile ? null : (
|
||||
<HudozkaTitle
|
||||
style={{
|
||||
marginTop: "var(--size-m)",
|
||||
marginBottom: "var(--size-m)",
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
|
||||
<PageGrid
|
||||
items={props.items}
|
||||
/>
|
||||
</App>
|
||||
</>
|
||||
)
|
||||
<PageGrid
|
||||
items={props.items}
|
||||
/>
|
||||
</App>
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
export const getStaticProps: GetStaticProps<Props> = async () => {
|
||||
const items = await apiGet(createHomeCards)("https://hudozka.tmshv.com/home", async () => [])
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
@@ -10,7 +10,7 @@ import { useMobile } from "src/hooks/useMobile"
|
||||
import { Navigation } from "@/components/Navigation"
|
||||
import { Box } from "@/ui/Box"
|
||||
import { Button } from "@/ui/Button"
|
||||
import { EyeClosedIcon, EyeOpenIcon } from "@radix-ui/react-icons"
|
||||
import { HiOutlineEye, HiOutlineEyeOff } from "react-icons/hi"
|
||||
import { useTheme } from "@/ui/theme/useTheme"
|
||||
import { Copyright } from "../Copyright"
|
||||
import { Spacer } from "../Spacer"
|
||||
@@ -49,7 +49,7 @@ export const App: React.FC<AppProps> = ({ showAuthor = false, menu, ...props })
|
||||
header={(
|
||||
<header>
|
||||
<Navigation style={{
|
||||
// margin: "0 var(--size-m) var(--size-m)",
|
||||
padding: "var(--size-s)",
|
||||
}} />
|
||||
{hideBreadcrumbs || !props.breadcrumbs ? null : (
|
||||
<Box style={blockStyle}>
|
||||
@@ -72,7 +72,9 @@ export const App: React.FC<AppProps> = ({ showAuthor = false, menu, ...props })
|
||||
<Contacts />
|
||||
</Panel>
|
||||
|
||||
<Panel ghost>
|
||||
<Panel ghost style={{
|
||||
alignItems: "baseline",
|
||||
}}>
|
||||
<Title level={3}>
|
||||
Версия для слабовидящих
|
||||
</Title>
|
||||
@@ -80,9 +82,9 @@ export const App: React.FC<AppProps> = ({ showAuthor = false, menu, ...props })
|
||||
setTheme(theme === "default" ? "contrast" : "default")
|
||||
}}>
|
||||
{theme === "default" ? (
|
||||
<EyeOpenIcon width={24} height={24} />
|
||||
<HiOutlineEyeOff size={24} />
|
||||
) : (
|
||||
<EyeClosedIcon width={24} height={24} />
|
||||
<HiOutlineEye size={24} />
|
||||
)}
|
||||
</Button>
|
||||
</Panel>
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import "rc-tooltip/assets/bootstrap_white.css"
|
||||
import s from "./signature.module.css"
|
||||
|
||||
import { Sign } from "@/types"
|
||||
import { FiShield } from "react-icons/fi"
|
||||
import Tooltip from "rc-tooltip"
|
||||
import { HiOutlineShieldCheck } from "react-icons/hi"
|
||||
|
||||
import * as Tooltip from "@radix-ui/react-tooltip"
|
||||
|
||||
export type SignatureProps = Sign
|
||||
export const Signature: React.FC<SignatureProps> = props => {
|
||||
@@ -17,8 +17,19 @@ export const Signature: React.FC<SignatureProps> = props => {
|
||||
)
|
||||
|
||||
return (
|
||||
<Tooltip overlayClassName={"hudozka"} placement="left" trigger={["hover", "click"]} overlay={content}>
|
||||
<FiShield className={s.secure} size={20} />
|
||||
</Tooltip>
|
||||
<Tooltip.Provider>
|
||||
<Tooltip.Root>
|
||||
<Tooltip.Trigger className={s.tooltipTrigger}>
|
||||
<HiOutlineShieldCheck className={s.secure} size={20} />
|
||||
</Tooltip.Trigger>
|
||||
|
||||
<Tooltip.Portal>
|
||||
<Tooltip.Content className={s.tooltip}>
|
||||
{content}
|
||||
<Tooltip.Arrow className={s.tooltipArrow} />
|
||||
</Tooltip.Content>
|
||||
</Tooltip.Portal>
|
||||
</Tooltip.Root>
|
||||
</Tooltip.Provider>
|
||||
)
|
||||
}
|
||||
@@ -1,11 +1,16 @@
|
||||
import s from "./filecard.module.css"
|
||||
|
||||
import Image from "next/image"
|
||||
import dynamic from "next/dynamic"
|
||||
import { FileTokenData, Sign } from "@/types"
|
||||
import { size, ext } from "@/lib/file"
|
||||
import { getResizedUrl } from "@/lib/image"
|
||||
import { Signature } from "./Signature"
|
||||
import Link from "next/link"
|
||||
import { Box } from "@/ui/Box"
|
||||
|
||||
const Signature = dynamic(import("./Signature").then(m => m.Signature), {
|
||||
ssr: false,
|
||||
})
|
||||
|
||||
export type FileCardProps = FileTokenData & {
|
||||
sign?: Sign
|
||||
@@ -38,12 +43,16 @@ export const FileCard: React.FC<FileCardProps> = props => {
|
||||
</a>
|
||||
|
||||
<div>
|
||||
{!props.sign ? null : (
|
||||
<Signature
|
||||
{...props.sign}
|
||||
/>
|
||||
)}
|
||||
<a href={props.url}>{props.title}</a>
|
||||
<Box align={false} gap={"var(--size-xs)"}>
|
||||
{!props.sign ? null : (
|
||||
<Signature
|
||||
{...props.sign}
|
||||
/>
|
||||
)}
|
||||
<Link href={props.url}>
|
||||
<a>{props.title}</a>
|
||||
</Link>
|
||||
</Box>
|
||||
</div>
|
||||
|
||||
<div className={s.info}>
|
||||
|
||||
@@ -1,9 +1,27 @@
|
||||
.secure {
|
||||
padding-right: var(--size-xs);
|
||||
position: relative;
|
||||
top: 2px;
|
||||
}
|
||||
|
||||
.signature{
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.tooltipTrigger {
|
||||
background-color: rgba(0, 0, 0, 0);
|
||||
border: none;
|
||||
}
|
||||
|
||||
.tooltip {
|
||||
padding: var(--size-m);
|
||||
color: var(--color-text-opposite);
|
||||
text-align: left;
|
||||
text-decoration: none;
|
||||
background-color: var(--color-back-opposite);
|
||||
border-radius: var(--radius);
|
||||
min-height: 34px;
|
||||
border: none;
|
||||
box-shadow: var(--shadow);
|
||||
}
|
||||
|
||||
.tooltipArrow {
|
||||
width: var(--size-m);
|
||||
height: var(--size-s);
|
||||
|
||||
fill: var(--color-back-opposite);
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
import s from "./logo.module.css"
|
||||
|
||||
import Image from "next/future/image"
|
||||
import image from "src/assets/hudozka-logo.png"
|
||||
|
||||
export type HudozkaLogoProps = {
|
||||
dark?: boolean
|
||||
}
|
||||
|
||||
export const HudozkaLogo: React.FC<HudozkaLogoProps> = ({ dark }) => (
|
||||
<div className={`${s.container} ${dark ? s.dark : ""}`}>
|
||||
<Image
|
||||
src={image}
|
||||
width={36}
|
||||
height={36}
|
||||
alt={"Hudozka"}
|
||||
/>
|
||||
</div>
|
||||
)
|
||||
@@ -0,0 +1,31 @@
|
||||
.container {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
width: var(--size-l);
|
||||
height: var(--size-l);
|
||||
|
||||
border-radius: var(--radius-small);
|
||||
}
|
||||
|
||||
.dark {
|
||||
background-color: #f9ea12;
|
||||
|
||||
--shadow-color: 60deg 100% 29%;
|
||||
--shadow-elevation-high:
|
||||
0px 0.1px 0.1px hsl(var(--shadow-color) / 0.34),
|
||||
0px 0.4px 0.5px -0.4px hsl(var(--shadow-color) / 0.34),
|
||||
0px 0.8px 0.9px -0.7px hsl(var(--shadow-color) / 0.34),
|
||||
0px 1.3px 1.5px -1.1px hsl(var(--shadow-color) / 0.34),
|
||||
0px 2.1px 2.4px -1.4px hsl(var(--shadow-color) / 0.34),
|
||||
0px 3.3px 3.7px -1.8px hsl(var(--shadow-color) / 0.34),
|
||||
-0.1px 5.1px 5.7px -2.1px hsl(var(--shadow-color) / 0.34),
|
||||
-0.1px 7.5px 8.4px -2.5px hsl(var(--shadow-color) / 0.34);
|
||||
|
||||
box-shadow: var(--shadow-elevation-high);
|
||||
}
|
||||
|
||||
.dark img {
|
||||
filter: invert(0%);
|
||||
}
|
||||
@@ -3,15 +3,25 @@ import s from "./title.module.css"
|
||||
import { memo } from "react"
|
||||
|
||||
export type HudozkaTitleProps = {
|
||||
compact?: boolean
|
||||
style?: React.CSSProperties
|
||||
}
|
||||
|
||||
export const HudozkaTitle: React.FC<HudozkaTitleProps> = memo(props => (
|
||||
<h1 style={props.style} className={s.title}>
|
||||
<span className={s.prefix}>МБУДО</span>
|
||||
Шлиссельбургская <br />
|
||||
<span className={s.suffix}>детская художественная школа</span>
|
||||
</h1>
|
||||
))
|
||||
export const HudozkaTitle: React.FC<HudozkaTitleProps> = memo(({ style, compact = false }) => {
|
||||
if (compact) {
|
||||
return (
|
||||
<span>
|
||||
Шлиссельбургская ДХШ
|
||||
</span>
|
||||
)
|
||||
}
|
||||
return (
|
||||
<h1 style={style} className={s.title}>
|
||||
<span className={s.prefix}>МБУДО</span>
|
||||
Шлиссельбургская <br />
|
||||
<span className={s.suffix}>детская художественная школа</span>
|
||||
</h1>
|
||||
)
|
||||
})
|
||||
|
||||
HudozkaTitle.displayName = "HudozkaTitle"
|
||||
@@ -3,7 +3,7 @@
|
||||
align-items: flex-start;
|
||||
flex-wrap: wrap;
|
||||
|
||||
gap: var(--size-m);
|
||||
gap: var(--size-s);
|
||||
|
||||
font-size: var(--font-size-second);
|
||||
list-style: none;
|
||||
@@ -19,11 +19,18 @@
|
||||
/* MENU ITEM */
|
||||
|
||||
.menuItem {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
user-select: none;
|
||||
background-color: var(--color-back-main);
|
||||
border-radius: var(--radius-small);
|
||||
transition: box-shadow 200ms ease-in, background-color 200ms ease-in;
|
||||
padding: var(--size-s) var(--size-s);
|
||||
/* padding: var(--size-s) var(--size-s); */
|
||||
padding: 0 var(--size-s);
|
||||
|
||||
height: var(--size-l);
|
||||
}
|
||||
|
||||
.menuItem.active {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Button, ButtonProps } from "@/ui/Button"
|
||||
import { HamburgerMenuIcon, Cross1Icon } from "@radix-ui/react-icons"
|
||||
import { HiOutlineMenuAlt4, HiOutlineX } from "react-icons/hi"
|
||||
|
||||
export type MenuToggleProps = Omit<ButtonProps, "theme"> & {
|
||||
open: boolean
|
||||
@@ -7,9 +7,9 @@ export type MenuToggleProps = Omit<ButtonProps, "theme"> & {
|
||||
|
||||
export const MenuToggle: React.FC<MenuToggleProps> = ({ open, ...props }) => {
|
||||
const icon = open ? (
|
||||
<Cross1Icon width={24} height={24} />
|
||||
<HiOutlineX size={24} />
|
||||
) : (
|
||||
<HamburgerMenuIcon width={24} height={24} />
|
||||
<HiOutlineMenuAlt4 size={24} />
|
||||
)
|
||||
return (
|
||||
<Button
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
import { Menu } from "../Menu"
|
||||
import { useContext } from "react"
|
||||
import { ConfigContext } from "src/context/ConfigContext"
|
||||
import { Box } from "@/ui/Box"
|
||||
import { HudozkaLogo } from "../HudozkaLogo"
|
||||
import { useDarkTheme } from "@/hooks/useDarkTheme"
|
||||
import Link from "next/link"
|
||||
|
||||
export type DesktopNavigationProps = {
|
||||
style?: React.CSSProperties
|
||||
}
|
||||
|
||||
export const DesktopNavigation: React.FC<DesktopNavigationProps> = ({ style }) => {
|
||||
const dark = useDarkTheme()
|
||||
const { menu } = useContext(ConfigContext)
|
||||
|
||||
return (
|
||||
<Box wrap gap={"var(--size-s)"} style={style}>
|
||||
<Link href="/">
|
||||
<a>
|
||||
<HudozkaLogo dark={dark} />
|
||||
</a>
|
||||
</Link>
|
||||
|
||||
<Menu
|
||||
items={menu}
|
||||
/>
|
||||
</Box>
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
import { MenuToggle } from "../MenuToggle"
|
||||
import { Menu } from "../Menu"
|
||||
import { Overlay } from "@/ui/Overlay"
|
||||
import { useContext } from "react"
|
||||
import { ConfigContext } from "src/context/ConfigContext"
|
||||
import { Box } from "@/ui/Box"
|
||||
import { Spacer } from "../Spacer"
|
||||
import { useToggle } from "react-use"
|
||||
import { HudozkaLogo } from "../HudozkaLogo"
|
||||
import { useDarkTheme } from "@/hooks/useDarkTheme"
|
||||
import { HudozkaTitle } from "../HudozkaTitle"
|
||||
import Link from "next/link"
|
||||
|
||||
export type MobileNavigationProps = {
|
||||
style?: React.CSSProperties
|
||||
}
|
||||
|
||||
export const MobileNavigation: React.FC<MobileNavigationProps> = ({ style }) => {
|
||||
const dark = useDarkTheme()
|
||||
const [open, toggleOpen] = useToggle(false)
|
||||
const { menu } = useContext(ConfigContext)
|
||||
|
||||
return (
|
||||
<>
|
||||
<Overlay
|
||||
show={open}
|
||||
onClickOverlay={toggleOpen}
|
||||
// duration={250}
|
||||
duration={0}
|
||||
>
|
||||
<Box style={{
|
||||
padding: "var(--size-s)",
|
||||
}}>
|
||||
<Spacer />
|
||||
<MenuToggle
|
||||
open={open}
|
||||
onClick={toggleOpen}
|
||||
/>
|
||||
</Box>
|
||||
<Box style={{
|
||||
justifyContent: "center",
|
||||
}}>
|
||||
<Menu vertical
|
||||
items={menu}
|
||||
/>
|
||||
</Box>
|
||||
</Overlay>
|
||||
|
||||
<Box wrap gap={"var(--size-s)"} style={style}>
|
||||
<Link href="/">
|
||||
<a>
|
||||
<HudozkaLogo dark={dark} />
|
||||
</a>
|
||||
</Link>
|
||||
<HudozkaTitle compact />
|
||||
<Spacer />
|
||||
<MenuToggle
|
||||
open={open}
|
||||
onClick={toggleOpen}
|
||||
/>
|
||||
</Box>
|
||||
</>
|
||||
)
|
||||
}
|
||||
@@ -1,71 +1,25 @@
|
||||
import { MenuToggle } from "../MenuToggle"
|
||||
import { useMobile } from "src/hooks/useMobile"
|
||||
import { Menu } from "../Menu"
|
||||
import { Overlay } from "@/ui/Overlay"
|
||||
import { useContext } from "react"
|
||||
import { ConfigContext } from "src/context/ConfigContext"
|
||||
import { Box } from "@/ui/Box"
|
||||
import { Spacer } from "../Spacer"
|
||||
import { useToggle } from "react-use"
|
||||
import { Button } from "@/ui/Button"
|
||||
import { EyeOpenIcon } from "@radix-ui/react-icons"
|
||||
import { useDarkTheme } from "@/hooks/useDarkTheme"
|
||||
import { DesktopNavigation } from "./DesktopNavigation"
|
||||
import { MobileNavigation } from "./MobileNavigation"
|
||||
|
||||
export type NavigationProps = {
|
||||
style?: React.CSSProperties
|
||||
}
|
||||
|
||||
export const Navigation: React.FC<NavigationProps> = props => {
|
||||
const collapseMenu = useMobile()
|
||||
const [open, toggleOpen] = useToggle(false)
|
||||
const { menu } = useContext(ConfigContext)
|
||||
export const Navigation: React.FC<NavigationProps> = ({ style }) => {
|
||||
const mobile = useMobile()
|
||||
|
||||
if (mobile) {
|
||||
return (
|
||||
<MobileNavigation style={style} />
|
||||
)
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
<Overlay
|
||||
show={open}
|
||||
onClickOverlay={toggleOpen}
|
||||
// duration={250}
|
||||
duration={0}
|
||||
>
|
||||
<Box style={{
|
||||
padding: "var(--size-s)",
|
||||
}}>
|
||||
<Spacer />
|
||||
<MenuToggle
|
||||
open={open}
|
||||
onClick={toggleOpen}
|
||||
/>
|
||||
</Box>
|
||||
<Box style={{
|
||||
justifyContent: "center",
|
||||
}}>
|
||||
<Menu vertical
|
||||
items={menu}
|
||||
/>
|
||||
</Box>
|
||||
</Overlay>
|
||||
|
||||
<Box wrap style={{
|
||||
padding: "var(--size-s)",
|
||||
}}>
|
||||
{collapseMenu ? null : (
|
||||
<Menu
|
||||
items={menu}
|
||||
onItemClick={() => {
|
||||
toggleOpen(false)
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
|
||||
<Spacer />
|
||||
|
||||
{!collapseMenu ? null : (
|
||||
<MenuToggle
|
||||
open={open}
|
||||
onClick={toggleOpen}
|
||||
/>
|
||||
)}
|
||||
</Box>
|
||||
</>
|
||||
<DesktopNavigation style={style} />
|
||||
)
|
||||
}
|
||||
@@ -46,7 +46,7 @@ export const PageGrid: React.FC<PageGridProps> = props => {
|
||||
objectFit={"cover"}
|
||||
src={item.cover.src}
|
||||
alt={item.cover.alt}
|
||||
placeholder={"blur"}
|
||||
placeholder={item.cover.blur ? "blur" : "empty"}
|
||||
blurDataURL={item.cover.blur}
|
||||
/>
|
||||
)}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
import useMedia from "use-media"
|
||||
|
||||
export function useDarkTheme(): boolean {
|
||||
return useMedia("(prefers-color-scheme: dark)")
|
||||
}
|
||||
+10
-42
@@ -126,52 +126,20 @@ h3 {
|
||||
border-bottom-color: var(--color-text-opposite);
|
||||
}
|
||||
|
||||
|
||||
/* RC TOOLTIP OVERRIDE */
|
||||
.hudozka.rc-tooltip {
|
||||
position: absolute;
|
||||
background-color: initial;
|
||||
padding: 0;
|
||||
opacity: 1;
|
||||
}
|
||||
.hudozka.rc-tooltip-placement-left .rc-tooltip-arrow {
|
||||
border-left-color: var(--color-back-opposite);
|
||||
}
|
||||
.hudozka.rc-tooltip-placement-right .rc-tooltip-arrow {
|
||||
border-right-color: var(--color-back-opposite);
|
||||
}
|
||||
.hudozka.rc-tooltip-placement-top .rc-tooltip-arrow {
|
||||
border-top-color: var(--color-back-opposite);
|
||||
}
|
||||
.hudozka.rc-tooltip-placement-bottom .rc-tooltip-arrow {
|
||||
border-bottom-color: var(--color-back-opposite);
|
||||
}
|
||||
.hudozka .rc-tooltip-inner {
|
||||
padding: var(--size-m);
|
||||
color: var(--color-text-opposite);
|
||||
text-align: left;
|
||||
text-decoration: none;
|
||||
background-color: var(--color-back-opposite);
|
||||
border-radius: var(--radius);
|
||||
min-height: 34px;
|
||||
border: none;
|
||||
box-shadow: var(--shadow);
|
||||
}
|
||||
|
||||
/* MOBILE */
|
||||
@media (max-width: 31.25em) {
|
||||
:root {
|
||||
--font-size-default: 14pt;
|
||||
--font-size-accent: 16pt;
|
||||
--font-size-h1: 1.5rem;
|
||||
--font-size-h2: 1.5rem;
|
||||
--font-size-h3: 1.25rem;
|
||||
:root, .theme-contrast {
|
||||
--font-size-default: 14pt !important;
|
||||
--font-size-accent: 16pt !important;
|
||||
--font-size-h1: 1.5rem !important;
|
||||
--font-size-h2: 1.5rem !important;
|
||||
--font-size-h3: 1.25rem !important;
|
||||
|
||||
--content-width: 100%;
|
||||
--content-margin: var(--size-m);
|
||||
--content-wide-margin: var(--size-m) var(--size-m);
|
||||
--content-width: 100% !important;
|
||||
--content-margin: var(--size-m) !important;
|
||||
--content-wide-margin: var(--size-m) var(--size-m) !important;
|
||||
|
||||
--picture-wide-increase: 0px;
|
||||
--picture-wide-increase: 0px !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
.box {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
|
||||
justify-content: flex-start;
|
||||
flex-wrap: nowrap;
|
||||
flex-direction: row;
|
||||
|
||||
@@ -14,7 +14,7 @@ export type BoxProps = {
|
||||
align?: boolean
|
||||
vertical?: boolean
|
||||
center?: boolean
|
||||
gap?: number
|
||||
gap?: number | string
|
||||
}
|
||||
|
||||
export const Box: React.FC<BoxProps> = ({
|
||||
|
||||
Reference in new issue
Block a user