From 25beca60bb288ee15daafab97a36c77efd913491 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Ruz=CC=8Cevic=CC=81?= Date: Tue, 23 Dec 2025 15:04:49 +0100 Subject: [PATCH 1/6] updating tailwind styles --- .prettierrc | 20 +- .stylelintrc | 2 +- bun.lock | 1297 ++++++----------- eslint.config.mjs | 2 +- package.json | 13 +- postcss.config.js | 10 +- preprocess-tailwind.js | 74 + src/Blocks/assets/application-admin-all.js | 6 +- src/Blocks/assets/application-admin.js | 6 +- .../assets/application-blocks-editor.js | 6 +- .../application-blocks-frontend-mandatory.js | 2 +- .../assets/application-blocks-frontend.js | 2 +- src/Blocks/assets/scripts/admin.js | 7 +- src/Blocks/assets/scripts/blocks-editor.js | 12 +- src/Blocks/assets/scripts/blocks-frontend.js | 10 +- src/Blocks/assets/scripts/store/index.js | 14 +- src/Blocks/assets/styles/admin-all.css | 7 + src/Blocks/assets/styles/admin-all.scss | 14 - src/Blocks/assets/styles/admin.css | 7 + src/Blocks/assets/styles/admin.scss | 32 - src/Blocks/assets/styles/blocks-editor.css | 16 + src/Blocks/assets/styles/blocks-editor.scss | 24 - .../styles/blocks-frontend-mandatory.css | 0 .../styles/blocks-frontend-mandatory.scss | 21 - src/Blocks/assets/styles/blocks-frontend.css | 0 src/Blocks/assets/styles/blocks-frontend.scss | 20 - .../admin-listing/admin-listing.php | 2 +- .../admin-settings/admin-settings.php | 2 +- .../components/card-inline/card-inline.php | 2 +- src/Blocks/components/checkbox/checkbox.php | 4 +- .../checkbox/components/checkbox-editor.js | 89 +- .../checkbox/components/checkbox-options.js | 217 +-- .../components/checkboxes-editor.js | 43 +- .../components/checkboxes-options.js | 185 +-- .../components/conditional-tags-editor.js | 28 - .../conditional-tags-forms-options.js | 142 +- .../components/conditional-tags-options.js | 287 ++-- .../country/components/country-editor.js | 46 +- .../country/components/country-options.js | 340 ++--- src/Blocks/components/country/country.php | 2 +- .../components/date/components/date-editor.js | 45 +- .../date/components/date-options.js | 354 ++--- src/Blocks/components/date/date.php | 2 +- src/Blocks/components/divider/divider.php | 2 +- .../dynamic/components/dynamic-editor.js | 52 +- .../dynamic/components/dynamic-options.js | 91 +- src/Blocks/components/error/error.php | 2 +- .../field/components/field-editor.js | 144 +- .../field/components/field-options.js | 232 ++- src/Blocks/components/field/field.php | 22 +- .../components/file/components/file-editor.js | 53 +- .../file/components/file-options.js | 292 ++-- src/Blocks/components/file/file.php | 2 +- .../components/form/assets/enrichment.js | 2 +- src/Blocks/components/form/assets/form.js | 269 ++-- .../components/form/assets/geolocation.js | 21 +- .../components/form/components/form-editor.js | 32 +- .../form/components/form-options.js | 97 +- src/Blocks/components/form/form.php | 2 +- src/Blocks/components/form/styles-editor.css | 28 + .../components/global-msg/global-msg.php | 2 +- src/Blocks/components/group/group.php | 2 +- .../highlighted-content.php | 2 +- .../input/components/input-editor.js | 53 +- .../input/components/input-options.js | 851 ++++++----- .../components/integrations-editor.js | 48 +- .../integrations-internal-options.js | 66 +- .../components/integrations-options.js | 203 +-- src/Blocks/components/intro/intro.php | 4 +- .../invalid/components/invalid-editor.js | 16 +- src/Blocks/components/layout/layout.php | 2 +- src/Blocks/components/loader/loader.php | 6 +- src/Blocks/components/notice/notice.php | 2 +- .../phone/components/phone-editor.js | 67 +- .../phone/components/phone-options.js | 382 +++-- src/Blocks/components/phone/phone.php | 4 +- .../components/progress-bar-options.js | 27 +- .../progress-bar/partials/multistep.php | 2 +- .../components/progress-bar/progress-bar.php | 2 +- .../radio/components/radio-editor.js | 88 +- .../radio/components/radio-options.js | 195 +-- src/Blocks/components/radio/radio.php | 4 +- .../radios/components/radios-editor.js | 43 +- .../radios/components/radios-options.js | 142 +- .../rating/components/rating-editor.js | 63 +- .../rating/components/rating-options.js | 206 +-- src/Blocks/components/rating/rating.php | 2 +- src/Blocks/components/react-flow/index.js | 71 +- .../components/select-option-editor.js | 66 +- .../components/select-option-options.js | 117 +- .../select/components/select-editor.js | 56 +- .../select/components/select-options.js | 309 ++-- src/Blocks/components/select/select.php | 2 +- src/Blocks/components/spacer/spacer.php | 2 +- .../components/step/components/step-editor.js | 32 +- .../step/components/step-multiflow-options.js | 271 ++-- .../step/components/step-options.js | 96 +- src/Blocks/components/steps/steps.php | 2 +- .../submit/components/submit-editor.js | 31 +- .../submit/components/submit-options.js | 99 +- src/Blocks/components/tab/tab.php | 4 +- src/Blocks/components/tabs/tabs.php | 2 +- .../textarea/components/textarea-editor.js | 48 +- .../textarea/components/textarea-options.js | 357 ++--- src/Blocks/components/textarea/textarea.php | 2 +- src/Blocks/components/tooltip/tooltip.php | 2 +- src/Blocks/components/utils/index.js | 291 ++-- .../utils/partials/debug-field-details.php | 2 +- .../components/activecampaign-editor.js | 28 +- .../components/activecampaign-options.js | 18 +- .../airtable/components/airtable-editor.js | 36 +- .../airtable/components/airtable-options.js | 19 +- .../components/calculator-editor.js | 9 +- .../components/calculator-options.js | 15 +- .../checkbox/components/checkbox-editor.js | 6 +- .../checkbox/components/checkbox-options.js | 2 +- .../components/checkboxes-editor.js | 12 +- .../components/checkboxes-options.js | 4 +- .../custom/corvus/components/corvus-editor.js | 25 +- .../corvus/components/corvus-options.js | 17 +- .../country/components/country-editor.js | 2 +- .../country/components/country-options.js | 2 +- .../custom/date/components/date-editor.js | 2 +- .../custom/date/components/date-options.js | 2 +- .../dynamic/components/dynamic-editor.js | 2 +- .../dynamic/components/dynamic-options.js | 2 +- .../custom/field/components/field-options.js | 8 +- src/Blocks/custom/field/field-hooks.js | 20 +- .../custom/file/components/file-editor.js | 4 +- .../custom/file/components/file-options.js | 2 +- .../components/form-selector-editor.js | 82 +- .../components/form-selector-options.js | 6 +- .../form-selector/form-selector-block.js | 4 +- .../custom/forms/components/forms-editor.js | 76 +- .../custom/forms/components/forms-options.js | 307 ++-- src/Blocks/custom/forms/forms-block.js | 39 +- src/Blocks/custom/forms/forms-hooks.js | 22 +- src/Blocks/custom/forms/forms.php | 2 +- .../goodbits/components/goodbits-editor.js | 28 +- .../goodbits/components/goodbits-options.js | 18 +- .../components/greenhouse-editor.js | 28 +- .../components/greenhouse-options.js | 18 +- .../hubspot/components/hubspot-editor.js | 28 +- .../hubspot/components/hubspot-options.js | 18 +- .../custom/input/components/input-editor.js | 2 +- .../custom/input/components/input-options.js | 2 +- .../custom/jira/components/jira-editor.js | 25 +- .../custom/jira/components/jira-options.js | 15 +- .../mailchimp/components/mailchimp-editor.js | 28 +- .../mailchimp/components/mailchimp-options.js | 18 +- .../custom/mailer/components/mailer-editor.js | 9 +- .../mailer/components/mailer-options.js | 15 +- .../components/mailerlite-editor.js | 16 +- .../components/mailerlite-options.js | 18 +- .../moments/components/moments-editor.js | 16 +- .../moments/components/moments-options.js | 18 +- .../components/nationbuilder-editor.js | 19 +- .../components/nationbuilder-options.js | 15 +- .../custom/paycek/components/paycek-editor.js | 19 +- .../paycek/components/paycek-options.js | 15 +- .../custom/phone/components/phone-editor.js | 2 +- .../custom/phone/components/phone-options.js | 2 +- .../pipedrive/components/pipedrive-editor.js | 19 +- .../pipedrive/components/pipedrive-options.js | 15 +- .../custom/radio/components/radio-editor.js | 6 +- .../custom/radio/components/radio-options.js | 2 +- .../custom/radios/components/radios-editor.js | 9 +- .../radios/components/radios-options.js | 2 +- .../custom/rating/components/rating-editor.js | 2 +- .../rating/components/rating-options.js | 2 +- .../components/result-output-item-editor.js | 40 +- .../components/result-output-item-options.js | 65 +- .../result-output-item/result-output-item.php | 2 +- .../components/result-output-editor.js | 110 +- .../components/result-output-options.js | 47 +- .../result-output/result-output-block.js | 37 +- .../custom/result-output/result-output.php | 2 +- .../components/select-option-editor.js | 7 +- .../components/select-option-options.js | 2 +- .../custom/select/components/select-editor.js | 9 +- .../select/components/select-options.js | 2 +- .../custom/step/components/step-editor.js | 2 +- .../custom/step/components/step-options.js | 2 +- .../custom/submit/components/submit-editor.js | 2 +- .../submit/components/submit-options.js | 2 +- .../components/talentlyft-editor.js | 16 +- .../components/talentlyft-options.js | 18 +- .../textarea/components/textarea-editor.js | 2 +- .../textarea/components/textarea-options.js | 2 +- .../workable/components/workable-editor.js | 16 +- .../workable/components/workable-options.js | 18 +- src/Blocks/manifest.json | 219 +-- src/Enqueue/Blocks/EnqueueBlocks.php | 4 +- tailwind.css | 205 +++ webpack.config.js | 45 - webpack.config.mjs | 84 ++ 196 files changed, 5202 insertions(+), 6085 deletions(-) create mode 100644 preprocess-tailwind.js create mode 100644 src/Blocks/assets/styles/admin-all.css delete mode 100644 src/Blocks/assets/styles/admin-all.scss create mode 100644 src/Blocks/assets/styles/admin.css delete mode 100644 src/Blocks/assets/styles/admin.scss create mode 100644 src/Blocks/assets/styles/blocks-editor.css delete mode 100644 src/Blocks/assets/styles/blocks-editor.scss create mode 100644 src/Blocks/assets/styles/blocks-frontend-mandatory.css delete mode 100644 src/Blocks/assets/styles/blocks-frontend-mandatory.scss create mode 100644 src/Blocks/assets/styles/blocks-frontend.css delete mode 100644 src/Blocks/assets/styles/blocks-frontend.scss delete mode 100644 src/Blocks/components/conditional-tags/components/conditional-tags-editor.js create mode 100644 src/Blocks/components/form/styles-editor.css create mode 100644 tailwind.css delete mode 100644 webpack.config.js create mode 100644 webpack.config.mjs diff --git a/.prettierrc b/.prettierrc index e7e0f9a4a..6837e51f4 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,12 +1,12 @@ { - "plugins": ["prettier-plugin-tailwindcss"], - "useTabs": true, - "jsxSingleQuote": true, - "singleQuote": true, - "singleAttributePerLine": true, - "printWidth": 180, - "arrowParens": "always", - "bracketSpacing": true, - "semi": true, - "trailingComma": "all" + "plugins": ["prettier-plugin-tailwindcss"], + "useTabs": true, + "jsxSingleQuote": true, + "singleQuote": true, + "singleAttributePerLine": true, + "printWidth": 120, + "arrowParens": "always", + "bracketSpacing": true, + "semi": true, + "trailingComma": "all" } diff --git a/.stylelintrc b/.stylelintrc index 3a127493d..2f30a4605 100644 --- a/.stylelintrc +++ b/.stylelintrc @@ -1,4 +1,4 @@ { - "extends": "./node_modules/@eightshift/frontend-libs/linters/stylelint.config.js", + "extends": "./node_modules/@eightshift/frontend-libs-tailwind/linters/stylelint.config.js", "ignoreFiles": "public/**/*.css" } diff --git a/bun.lock b/bun.lock index 04958c537..5bd2f1d35 100644 --- a/bun.lock +++ b/bun.lock @@ -1,12 +1,14 @@ { "lockfileVersion": 1, - "configVersion": 0, + "configVersion": 1, "workspaces": { "": { "name": "@eightshift/eightshift-forms", "dependencies": { - "@eightshift/frontend-libs": "^12.1.9", - "@eightshift/ui-components": "^5.6.1", + "@eightshift/frontend-libs-tailwind": "^2.3.0", + "@eightshift/ui-components": "^6.0.6", + "@tailwindcss/postcss": "^4.1.17", + "@tailwindcss/typography": "^0.5.19", "autosize": "^6.0.1", "baseline-browser-mapping": "^2.8.32", "caniuse-lite": "^1.0.30001757", @@ -14,6 +16,9 @@ "dropzone": "^6.0.0-beta.2", "flatpickr": "^4.6.13", "reactflow": "^11.11.4", + "tailwindcss": "^4.1.17", + "tailwindcss-motion": "^1.1.1", + "tailwindcss-react-aria-components": "^2.0.1", }, "devDependencies": { "@playwright/test": "^1.56.1", @@ -24,21 +29,15 @@ }, }, "packages": { - "@ampproject/remapping": ["@ampproject/remapping@2.3.0", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="], - - "@ariakit/core": ["@ariakit/core@0.3.11", "", {}, "sha512-+MnOeqnA4FLI/7vqsZLbZQHHN4ofd9kvkNjz44fNi0gqmD+ZbMWiDkFAvZII75dYnxYw5ZPpWjA4waK22VBWig=="], - - "@ariakit/react": ["@ariakit/react@0.3.14", "", { "dependencies": { "@ariakit/react-core": "0.3.14" }, "peerDependencies": { "react": "^17.0.0 || ^18.0.0", "react-dom": "^17.0.0 || ^18.0.0" } }, "sha512-h71BPMZ2eW+E2ESbdYxSAEMR1DozYzd5eHE5IOzGd9Egi5u7EZxqmuW4CXVXZ1Y6vbaDMV3SudgPh7iHS/ArFw=="], - - "@ariakit/react-core": ["@ariakit/react-core@0.3.14", "", { "dependencies": { "@ariakit/core": "0.3.11", "@floating-ui/dom": "^1.0.0", "use-sync-external-store": "^1.2.0" }, "peerDependencies": { "react": "^17.0.0 || ^18.0.0", "react-dom": "^17.0.0 || ^18.0.0" } }, "sha512-16Qj6kDPglpdWtU5roY9q+G66naOjauTY5HvUIaL2aLY0187ATaRrABIKoMMzTtJyhvsud4jFlzivz+/zCQ8yw=="], + "@alloc/quick-lru": ["@alloc/quick-lru@5.2.0", "", {}, "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw=="], "@babel/code-frame": ["@babel/code-frame@7.27.1", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg=="], - "@babel/compat-data": ["@babel/compat-data@7.28.0", "", {}, "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw=="], + "@babel/compat-data": ["@babel/compat-data@7.28.5", "", {}, "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA=="], - "@babel/core": ["@babel/core@7.28.3", "", { "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.3", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-module-transforms": "^7.28.3", "@babel/helpers": "^7.28.3", "@babel/parser": "^7.28.3", "@babel/template": "^7.27.2", "@babel/traverse": "^7.28.3", "@babel/types": "^7.28.2", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ=="], + "@babel/core": ["@babel/core@7.28.5", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-module-transforms": "^7.28.3", "@babel/helpers": "^7.28.4", "@babel/parser": "^7.28.5", "@babel/template": "^7.27.2", "@babel/traverse": "^7.28.5", "@babel/types": "^7.28.5", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw=="], - "@babel/generator": ["@babel/generator@7.28.3", "", { "dependencies": { "@babel/parser": "^7.28.3", "@babel/types": "^7.28.2", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" } }, "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw=="], + "@babel/generator": ["@babel/generator@7.28.5", "", { "dependencies": { "@babel/parser": "^7.28.5", "@babel/types": "^7.28.5", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" } }, "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ=="], "@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.27.2", "", { "dependencies": { "@babel/compat-data": "^7.27.2", "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" } }, "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ=="], @@ -50,129 +49,93 @@ "@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="], - "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.27.1", "", {}, "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow=="], + "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.28.5", "", {}, "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q=="], "@babel/helper-validator-option": ["@babel/helper-validator-option@7.27.1", "", {}, "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg=="], - "@babel/helpers": ["@babel/helpers@7.28.3", "", { "dependencies": { "@babel/template": "^7.27.2", "@babel/types": "^7.28.2" } }, "sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw=="], - - "@babel/parser": ["@babel/parser@7.28.3", "", { "dependencies": { "@babel/types": "^7.28.2" }, "bin": "./bin/babel-parser.js" }, "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA=="], + "@babel/helpers": ["@babel/helpers@7.28.4", "", { "dependencies": { "@babel/template": "^7.27.2", "@babel/types": "^7.28.4" } }, "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w=="], - "@babel/runtime": ["@babel/runtime@7.27.6", "", {}, "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q=="], + "@babel/parser": ["@babel/parser@7.28.5", "", { "dependencies": { "@babel/types": "^7.28.5" }, "bin": "./bin/babel-parser.js" }, "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ=="], "@babel/template": ["@babel/template@7.27.2", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/parser": "^7.27.2", "@babel/types": "^7.27.1" } }, "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw=="], - "@babel/traverse": ["@babel/traverse@7.28.3", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.3", "@babel/helper-globals": "^7.28.0", "@babel/parser": "^7.28.3", "@babel/template": "^7.27.2", "@babel/types": "^7.28.2", "debug": "^4.3.1" } }, "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ=="], - - "@babel/types": ["@babel/types@7.28.2", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" } }, "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ=="], - - "@csstools/css-parser-algorithms": ["@csstools/css-parser-algorithms@2.7.1", "", { "peerDependencies": { "@csstools/css-tokenizer": "^2.4.1" } }, "sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw=="], - - "@csstools/css-tokenizer": ["@csstools/css-tokenizer@2.4.1", "", {}, "sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg=="], - - "@csstools/media-query-list-parser": ["@csstools/media-query-list-parser@2.1.13", "", { "peerDependencies": { "@csstools/css-parser-algorithms": "^2.7.1", "@csstools/css-tokenizer": "^2.4.1" } }, "sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA=="], - - "@csstools/selector-specificity": ["@csstools/selector-specificity@5.0.0", "", { "peerDependencies": { "postcss-selector-parser": "^7.0.0" } }, "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw=="], - - "@discoveryjs/json-ext": ["@discoveryjs/json-ext@0.6.3", "", {}, "sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ=="], - - "@dnd-kit/accessibility": ["@dnd-kit/accessibility@3.1.1", "", { "dependencies": { "tslib": "^2.0.0" }, "peerDependencies": { "react": ">=16.8.0" } }, "sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw=="], - - "@dnd-kit/core": ["@dnd-kit/core@6.3.1", "", { "dependencies": { "@dnd-kit/accessibility": "^3.1.1", "@dnd-kit/utilities": "^3.2.2", "tslib": "^2.0.0" }, "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0" } }, "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ=="], + "@babel/traverse": ["@babel/traverse@7.28.5", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", "@babel/helper-globals": "^7.28.0", "@babel/parser": "^7.28.5", "@babel/template": "^7.27.2", "@babel/types": "^7.28.5", "debug": "^4.3.1" } }, "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ=="], - "@dnd-kit/modifiers": ["@dnd-kit/modifiers@7.0.0", "", { "dependencies": { "@dnd-kit/utilities": "^3.2.2", "tslib": "^2.0.0" }, "peerDependencies": { "@dnd-kit/core": "^6.1.0", "react": ">=16.8.0" } }, "sha512-BG/ETy3eBjFap7+zIti53f0PCLGDzNXyTmn6fSdrudORf+OH04MxrW4p5+mPu4mgMk9kM41iYONjc3DOUWTcfg=="], + "@babel/types": ["@babel/types@7.28.5", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA=="], - "@dnd-kit/sortable": ["@dnd-kit/sortable@8.0.0", "", { "dependencies": { "@dnd-kit/utilities": "^3.2.2", "tslib": "^2.0.0" }, "peerDependencies": { "@dnd-kit/core": "^6.1.0", "react": ">=16.8.0" } }, "sha512-U3jk5ebVXe1Lr7c2wU7SBZjcWdQP+j7peHJfCspnA81enlu88Mgd7CC8Q+pub9ubP7eKVETzJW+IBAhsqbSu/g=="], + "@cacheable/memory": ["@cacheable/memory@2.0.6", "", { "dependencies": { "@cacheable/utils": "^2.3.2", "@keyv/bigmap": "^1.3.0", "hookified": "^1.13.0", "keyv": "^5.5.4" } }, "sha512-7e8SScMocHxcAb8YhtkbMhGG+EKLRIficb1F5sjvhSYsWTZGxvg4KIDp8kgxnV2PUJ3ddPe6J9QESjKvBWRDkg=="], - "@dnd-kit/utilities": ["@dnd-kit/utilities@3.2.2", "", { "dependencies": { "tslib": "^2.0.0" }, "peerDependencies": { "react": ">=16.8.0" } }, "sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg=="], + "@cacheable/utils": ["@cacheable/utils@2.3.2", "", { "dependencies": { "hashery": "^1.2.0", "keyv": "^5.5.4" } }, "sha512-8kGE2P+HjfY8FglaOiW+y8qxcaQAfAhVML+i66XJR3YX5FtyDqn6Txctr3K2FrbxLKixRRYYBWMbuGciOhYNDg=="], - "@dual-bundle/import-meta-resolve": ["@dual-bundle/import-meta-resolve@4.1.0", "", {}, "sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg=="], + "@csstools/css-parser-algorithms": ["@csstools/css-parser-algorithms@3.0.5", "", { "peerDependencies": { "@csstools/css-tokenizer": "^3.0.4" } }, "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ=="], - "@eightshift/frontend-libs": ["@eightshift/frontend-libs@12.1.9", "", { "dependencies": { "@dnd-kit/core": "^6.1.0", "@dnd-kit/modifiers": "^7.0.0", "@dnd-kit/sortable": "^8.0.0", "@dnd-kit/utilities": "^3.2.2", "@stylistic/eslint-plugin-js": "^2.3.0", "@stylistic/stylelint-plugin": "^2.1.2", "@swc/core": "^1.5.25", "@uidotdev/usehooks": "^2.4.1", "@wordpress/api-fetch": "^6.55.0", "@wordpress/block-editor": "^12.26.0", "@wordpress/dependency-extraction-webpack-plugin": "^5.9.0", "@wordpress/dom-ready": "^4.0.0", "autoprefixer": "^10.4.19", "babel-loader": "^9.1.3", "clean-webpack-plugin": "^4.0.0", "core-js": "^3.37.1", "css-loader": "^7.1.2", "css-minimizer-webpack-plugin": "^7.0.0", "eslint": "^9.6.0", "file-loader": "^6.2.0", "framer-motion": "^11.2.10", "globals": "^15.8.0", "husky": "^9.0.11", "import-glob": "^1.5.0", "just-camel-case": "^6.2.0", "just-debounce-it": "^3.2.0", "just-has": "^2.3.0", "just-is-empty": "^3.4.1", "just-kebab-case": "^4.2.0", "just-throttle": "^4.2.0", "media-blender": "^2.1.0", "mini-css-extract-plugin": "^2.9.0", "postcss": "^8.4.38", "postcss-loader": "^8.1.1", "postcss-scss": "^4.0.9", "promisify-child-process": "^4.1.2", "raw-loader": "^4.0.2", "rc-slider": "^10.6.2", "rc-tooltip": "^6.2.0", "react-colorful": "^5.6.1", "react-gcolor-picker": "^1.3.3", "react-select": "^5.8.0", "regenerator-runtime": "^0.14.1", "sass": "^1.77.4", "sass-loader": "^14.2.1", "style-loader": "^4.0.0", "stylelint": "^16.6.1", "stylelint-config-standard": "^36.0.0", "stylelint-config-standard-scss": "^13.1.0", "swc-loader": "^0.2.6", "terser-webpack-plugin": "^5.3.10", "webpack": "^5.91.0", "webpack-cli": "^5.1.4", "webpack-manifest-plugin": "^5.0.0", "webpack-merge": "^5.10.0" } }, "sha512-fDJ5HbyGqXmRS1BkFYF25CdhlVd1NcapBdo+c0e/S0WxmTAr9kRklr3Cgs9gj/jWp0RCG7CNE4ejkBMRUFjfxg=="], + "@csstools/css-syntax-patches-for-csstree": ["@csstools/css-syntax-patches-for-csstree@1.0.21", "", {}, "sha512-plP8N8zKfEZ26figX4Nvajx8DuzfuRpLTqglQ5d0chfnt35Qt3X+m6ASZ+rG0D0kxe/upDVNwSIVJP5n4FuNfw=="], - "@eightshift/ui-components": ["@eightshift/ui-components@5.6.1", "", { "dependencies": { "@fontsource-variable/geist": "^5.2.8", "@fontsource-variable/geist-mono": "^5.2.7" }, "peerDependencies": { "react": "^18.3.1", "react-dom": "^18.3.1" } }, "sha512-VaLXLGQf6jyEQXPi2BKIJ2rSzRCgbRnDxJU1UDxllnkxCt18b9I7izXrArbbwVBdlLZ4iHk37OvT47d9GdncWg=="], + "@csstools/css-tokenizer": ["@csstools/css-tokenizer@3.0.4", "", {}, "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw=="], - "@emotion/babel-plugin": ["@emotion/babel-plugin@11.13.5", "", { "dependencies": { "@babel/helper-module-imports": "^7.16.7", "@babel/runtime": "^7.18.3", "@emotion/hash": "^0.9.2", "@emotion/memoize": "^0.9.0", "@emotion/serialize": "^1.3.3", "babel-plugin-macros": "^3.1.0", "convert-source-map": "^1.5.0", "escape-string-regexp": "^4.0.0", "find-root": "^1.1.0", "source-map": "^0.5.7", "stylis": "4.2.0" } }, "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ=="], + "@csstools/media-query-list-parser": ["@csstools/media-query-list-parser@4.0.3", "", { "peerDependencies": { "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4" } }, "sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ=="], - "@emotion/cache": ["@emotion/cache@11.14.0", "", { "dependencies": { "@emotion/memoize": "^0.9.0", "@emotion/sheet": "^1.4.0", "@emotion/utils": "^1.4.2", "@emotion/weak-memoize": "^0.4.0", "stylis": "4.2.0" } }, "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA=="], - - "@emotion/css": ["@emotion/css@11.13.5", "", { "dependencies": { "@emotion/babel-plugin": "^11.13.5", "@emotion/cache": "^11.13.5", "@emotion/serialize": "^1.3.3", "@emotion/sheet": "^1.4.0", "@emotion/utils": "^1.4.2" } }, "sha512-wQdD0Xhkn3Qy2VNcIzbLP9MR8TafI0MJb7BEAXKp+w4+XqErksWR4OXomuDzPsN4InLdGhVe6EYcn2ZIUCpB8w=="], - - "@emotion/hash": ["@emotion/hash@0.9.2", "", {}, "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g=="], - - "@emotion/is-prop-valid": ["@emotion/is-prop-valid@1.3.1", "", { "dependencies": { "@emotion/memoize": "^0.9.0" } }, "sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw=="], - - "@emotion/memoize": ["@emotion/memoize@0.9.0", "", {}, "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ=="], - - "@emotion/react": ["@emotion/react@11.14.0", "", { "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.13.5", "@emotion/cache": "^11.14.0", "@emotion/serialize": "^1.3.3", "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", "@emotion/utils": "^1.4.2", "@emotion/weak-memoize": "^0.4.0", "hoist-non-react-statics": "^3.3.1" }, "peerDependencies": { "react": ">=16.8.0" } }, "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA=="], - - "@emotion/serialize": ["@emotion/serialize@1.3.3", "", { "dependencies": { "@emotion/hash": "^0.9.2", "@emotion/memoize": "^0.9.0", "@emotion/unitless": "^0.10.0", "@emotion/utils": "^1.4.2", "csstype": "^3.0.2" } }, "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA=="], - - "@emotion/sheet": ["@emotion/sheet@1.4.0", "", {}, "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg=="], - - "@emotion/styled": ["@emotion/styled@11.14.1", "", { "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.13.5", "@emotion/is-prop-valid": "^1.3.0", "@emotion/serialize": "^1.3.3", "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", "@emotion/utils": "^1.4.2" }, "peerDependencies": { "@emotion/react": "^11.0.0-rc.0", "react": ">=16.8.0" } }, "sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw=="], - - "@emotion/unitless": ["@emotion/unitless@0.10.0", "", {}, "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg=="], - - "@emotion/use-insertion-effect-with-fallbacks": ["@emotion/use-insertion-effect-with-fallbacks@1.2.0", "", { "peerDependencies": { "react": ">=16.8.0" } }, "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg=="], - - "@emotion/utils": ["@emotion/utils@1.4.2", "", {}, "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA=="], - - "@emotion/weak-memoize": ["@emotion/weak-memoize@0.4.0", "", {}, "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg=="], - - "@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.7.0", "", { "dependencies": { "eslint-visitor-keys": "^3.4.3" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw=="], + "@csstools/selector-specificity": ["@csstools/selector-specificity@5.0.0", "", { "peerDependencies": { "postcss-selector-parser": "^7.0.0" } }, "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw=="], - "@eslint-community/regexpp": ["@eslint-community/regexpp@4.12.1", "", {}, "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ=="], + "@discoveryjs/json-ext": ["@discoveryjs/json-ext@0.6.3", "", {}, "sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ=="], - "@eslint/config-array": ["@eslint/config-array@0.21.0", "", { "dependencies": { "@eslint/object-schema": "^2.1.6", "debug": "^4.3.1", "minimatch": "^3.1.2" } }, "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ=="], + "@dual-bundle/import-meta-resolve": ["@dual-bundle/import-meta-resolve@4.2.1", "", {}, "sha512-id+7YRUgoUX6CgV0DtuhirQWodeeA7Lf4i2x71JS/vtA5pRb/hIGWlw+G6MeXvsM+MXrz0VAydTGElX1rAfgPg=="], - "@eslint/config-helpers": ["@eslint/config-helpers@0.3.0", "", {}, "sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw=="], + "@eightshift/frontend-libs-tailwind": ["@eightshift/frontend-libs-tailwind@2.3.0", "", { "dependencies": { "@stylistic/eslint-plugin": "^5.6.1", "@stylistic/stylelint-plugin": "^4.0.0", "@swc/core": "^1.15.3", "@wordpress/dependency-extraction-webpack-plugin": "^6.36.0", "browserslist": "^4.28.1", "css-loader": "^7.1.2", "css-minimizer-webpack-plugin": "^7.0.3", "eslint": "^9.39.1", "eslint-config-prettier": "^10.1.8", "eslint-plugin-prettier": "^5.5.4", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.0.1", "globals": "^16.5.0", "husky": "^9.1.7", "lightningcss": "^1.30.2", "mini-css-extract-plugin": "^2.9.4", "postcss": "^8.5.6", "postcss-loader": "^8.2.0", "prettier": "^3.7.4", "prettier-plugin-tailwindcss": "^0.7.2", "sonner": "^2.0.7", "stylelint": "^16.26.1", "stylelint-config-standard": "^39.0.1", "swc-loader": "^0.2.6", "terser-webpack-plugin": "^5.3.15", "webpack": "^5.103.0", "webpack-cli": "^6.0.1", "webpack-manifest-plugin": "^6.0.1", "webpack-merge": "^6.0.1" }, "peerDependencies": { "@eightshift/ui-components": "^6.0.8" } }, "sha512-96cQVDbuCPJ8dUJJig7YONnaXQB5gy5HKCVXJdNeKIyd0+J3lDvbuoqD3ZcOC9CesUSrklb2RkfEbaAtULcDEg=="], - "@eslint/core": ["@eslint/core@0.15.1", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA=="], + "@eightshift/ui-components": ["@eightshift/ui-components@6.0.8", "", { "dependencies": { "@fontsource-variable/geist-mono": "^5.2.7", "@fontsource-variable/roboto-flex": "^5.2.8", "motion": "^12.23.25" }, "peerDependencies": { "react": "^18.3.1", "react-dom": "^18.3.1" } }, "sha512-L8OgjTDTBJj+d5g4msQEOwKv6CCT2bxPLedEXWFRfRRIc1Hoz46EupyB/SSWKs2/4fOpu55anNY0S/8F2BxjsA=="], - "@eslint/eslintrc": ["@eslint/eslintrc@3.3.1", "", { "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^10.0.1", "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" } }, "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ=="], + "@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.9.0", "", { "dependencies": { "eslint-visitor-keys": "^3.4.3" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g=="], - "@eslint/js": ["@eslint/js@9.31.0", "", {}, "sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw=="], + "@eslint-community/regexpp": ["@eslint-community/regexpp@4.12.2", "", {}, "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew=="], - "@eslint/object-schema": ["@eslint/object-schema@2.1.6", "", {}, "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA=="], + "@eslint/config-array": ["@eslint/config-array@0.21.1", "", { "dependencies": { "@eslint/object-schema": "^2.1.7", "debug": "^4.3.1", "minimatch": "^3.1.2" } }, "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA=="], - "@eslint/plugin-kit": ["@eslint/plugin-kit@0.3.3", "", { "dependencies": { "@eslint/core": "^0.15.1", "levn": "^0.4.1" } }, "sha512-1+WqvgNMhmlAambTvT3KPtCl/Ibr68VldY2XY40SL1CE0ZXiakFR/cbTspaF5HsnpDMvcYYoJHfl4980NBjGag=="], + "@eslint/config-helpers": ["@eslint/config-helpers@0.4.2", "", { "dependencies": { "@eslint/core": "^0.17.0" } }, "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw=="], - "@floating-ui/core": ["@floating-ui/core@1.7.2", "", { "dependencies": { "@floating-ui/utils": "^0.2.10" } }, "sha512-wNB5ooIKHQc+Kui96jE/n69rHFWAVoxn5CAzL1Xdd8FG03cgY3MLO+GF9U3W737fYDSgPWA6MReKhBQBop6Pcw=="], + "@eslint/core": ["@eslint/core@0.17.0", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ=="], - "@floating-ui/dom": ["@floating-ui/dom@1.7.2", "", { "dependencies": { "@floating-ui/core": "^1.7.2", "@floating-ui/utils": "^0.2.10" } }, "sha512-7cfaOQuCS27HD7DX+6ib2OrnW+b4ZBwDNnCcT0uTyidcmyWb03FnQqJybDBoCnpdxwBSfA94UAYlRCt7mV+TbA=="], + "@eslint/eslintrc": ["@eslint/eslintrc@3.3.3", "", { "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^10.0.1", "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.1", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" } }, "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ=="], - "@floating-ui/react-dom": ["@floating-ui/react-dom@2.1.4", "", { "dependencies": { "@floating-ui/dom": "^1.7.2" }, "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0" } }, "sha512-JbbpPhp38UmXDDAu60RJmbeme37Jbgsm7NrHGgzYYFKmblzRUh6Pa641dII6LsjwF4XlScDrde2UAzDo/b9KPw=="], + "@eslint/js": ["@eslint/js@9.39.2", "", {}, "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA=="], - "@floating-ui/utils": ["@floating-ui/utils@0.2.10", "", {}, "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ=="], + "@eslint/object-schema": ["@eslint/object-schema@2.1.7", "", {}, "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA=="], - "@fontsource-variable/geist": ["@fontsource-variable/geist@5.2.8", "", {}, "sha512-cJ6m9e+8MQ5dCYJsLylfZrgBh6KkG4bOLckB35Tr9J/EqdkEM6QllH5PxqP1dhTvFup+HtMRPuz9xOjxXJggxw=="], + "@eslint/plugin-kit": ["@eslint/plugin-kit@0.4.1", "", { "dependencies": { "@eslint/core": "^0.17.0", "levn": "^0.4.1" } }, "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA=="], "@fontsource-variable/geist-mono": ["@fontsource-variable/geist-mono@5.2.7", "", {}, "sha512-ZKlZ5sjtalb2TwXKs400mAGDlt/+2ENLNySPx0wTz3bP3mWARCsUW+rpxzZc7e05d2qGch70pItt3K4qttbIYA=="], + "@fontsource-variable/roboto-flex": ["@fontsource-variable/roboto-flex@5.2.8", "", {}, "sha512-Q9zbz+P2VrDeIxBu9YAIG+eYpLmQF5FIJEEwAWn8En9Lao1TOISnoYcywGV+jSv7LGsHEndCR8hveXPnvCBEQQ=="], + "@humanfs/core": ["@humanfs/core@0.19.1", "", {}, "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA=="], - "@humanfs/node": ["@humanfs/node@0.16.6", "", { "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.3.0" } }, "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw=="], + "@humanfs/node": ["@humanfs/node@0.16.7", "", { "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.4.0" } }, "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ=="], "@humanwhocodes/module-importer": ["@humanwhocodes/module-importer@1.0.1", "", {}, "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="], "@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.3", "", {}, "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ=="], - "@jest/schemas": ["@jest/schemas@29.6.3", "", { "dependencies": { "@sinclair/typebox": "^0.27.8" } }, "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA=="], + "@jest/pattern": ["@jest/pattern@30.0.1", "", { "dependencies": { "@types/node": "*", "jest-regex-util": "30.0.1" } }, "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA=="], + + "@jest/schemas": ["@jest/schemas@30.0.5", "", { "dependencies": { "@sinclair/typebox": "^0.34.0" } }, "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA=="], + + "@jest/types": ["@jest/types@30.2.0", "", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], - "@jest/types": ["@jest/types@29.6.3", "", { "dependencies": { "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^17.0.8", "chalk": "^4.0.0" } }, "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw=="], + "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], - "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.12", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg=="], + "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], - "@jridgewell/source-map": ["@jridgewell/source-map@0.3.10", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" } }, "sha512-0pPkgz9dY+bijgistcTTJ5mR+ocqRXLuhXHYdzoMmmoJ2C9S46RCm2GMUbatPEUK9Yjy26IrAy8D/M00lLkv+Q=="], + "@jridgewell/source-map": ["@jridgewell/source-map@0.3.11", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" } }, "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA=="], - "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.4", "", {}, "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw=="], + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], - "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.29", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ=="], + "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], - "@keyv/serialize": ["@keyv/serialize@1.0.3", "", { "dependencies": { "buffer": "^6.0.3" } }, "sha512-qnEovoOp5Np2JDGonIDL6Ayihw0RhnRh6vxPuHo4RDn1UOzwEo4AeIfpL6UGIrsceWrCMiVPgwRjbHu4vYFc3g=="], + "@keyv/bigmap": ["@keyv/bigmap@1.3.0", "", { "dependencies": { "hashery": "^1.2.0", "hookified": "^1.13.0" }, "peerDependencies": { "keyv": "^5.5.4" } }, "sha512-KT01GjzV6AQD5+IYrcpoYLkCu1Jod3nau1Z7EsEuViO3TZGRacSbO9MfHmbJ1WaOXFtWLxPVj169cn2WNKPkIg=="], + + "@keyv/serialize": ["@keyv/serialize@1.1.1", "", {}, "sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA=="], "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="], @@ -180,141 +143,91 @@ "@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="], - "@parcel/watcher": ["@parcel/watcher@2.5.1", "", { "dependencies": { "detect-libc": "^1.0.3", "is-glob": "^4.0.3", "micromatch": "^4.0.5", "node-addon-api": "^7.0.0" }, "optionalDependencies": { "@parcel/watcher-android-arm64": "2.5.1", "@parcel/watcher-darwin-arm64": "2.5.1", "@parcel/watcher-darwin-x64": "2.5.1", "@parcel/watcher-freebsd-x64": "2.5.1", "@parcel/watcher-linux-arm-glibc": "2.5.1", "@parcel/watcher-linux-arm-musl": "2.5.1", "@parcel/watcher-linux-arm64-glibc": "2.5.1", "@parcel/watcher-linux-arm64-musl": "2.5.1", "@parcel/watcher-linux-x64-glibc": "2.5.1", "@parcel/watcher-linux-x64-musl": "2.5.1", "@parcel/watcher-win32-arm64": "2.5.1", "@parcel/watcher-win32-ia32": "2.5.1", "@parcel/watcher-win32-x64": "2.5.1" } }, "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg=="], - - "@parcel/watcher-android-arm64": ["@parcel/watcher-android-arm64@2.5.1", "", { "os": "android", "cpu": "arm64" }, "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA=="], - - "@parcel/watcher-darwin-arm64": ["@parcel/watcher-darwin-arm64@2.5.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw=="], - - "@parcel/watcher-darwin-x64": ["@parcel/watcher-darwin-x64@2.5.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg=="], - - "@parcel/watcher-freebsd-x64": ["@parcel/watcher-freebsd-x64@2.5.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ=="], - - "@parcel/watcher-linux-arm-glibc": ["@parcel/watcher-linux-arm-glibc@2.5.1", "", { "os": "linux", "cpu": "arm" }, "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA=="], - - "@parcel/watcher-linux-arm-musl": ["@parcel/watcher-linux-arm-musl@2.5.1", "", { "os": "linux", "cpu": "arm" }, "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q=="], - - "@parcel/watcher-linux-arm64-glibc": ["@parcel/watcher-linux-arm64-glibc@2.5.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w=="], - - "@parcel/watcher-linux-arm64-musl": ["@parcel/watcher-linux-arm64-musl@2.5.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg=="], - - "@parcel/watcher-linux-x64-glibc": ["@parcel/watcher-linux-x64-glibc@2.5.1", "", { "os": "linux", "cpu": "x64" }, "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A=="], - - "@parcel/watcher-linux-x64-musl": ["@parcel/watcher-linux-x64-musl@2.5.1", "", { "os": "linux", "cpu": "x64" }, "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg=="], - - "@parcel/watcher-win32-arm64": ["@parcel/watcher-win32-arm64@2.5.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw=="], - - "@parcel/watcher-win32-ia32": ["@parcel/watcher-win32-ia32@2.5.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ=="], - - "@parcel/watcher-win32-x64": ["@parcel/watcher-win32-x64@2.5.1", "", { "os": "win32", "cpu": "x64" }, "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA=="], - - "@playwright/test": ["@playwright/test@1.56.1", "", { "dependencies": { "playwright": "1.56.1" }, "bin": { "playwright": "cli.js" } }, "sha512-vSMYtL/zOcFpvJCW71Q/OEGQb7KYBPAdKh35WNSkaZA75JlAO8ED8UN6GUNTm3drWomcbcqRPFqQbLae8yBTdg=="], - - "@radix-ui/primitive": ["@radix-ui/primitive@1.0.0", "", { "dependencies": { "@babel/runtime": "^7.13.10" } }, "sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA=="], - - "@radix-ui/react-compose-refs": ["@radix-ui/react-compose-refs@1.0.0", "", { "dependencies": { "@babel/runtime": "^7.13.10" }, "peerDependencies": { "react": "^16.8 || ^17.0 || ^18.0" } }, "sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA=="], - - "@radix-ui/react-context": ["@radix-ui/react-context@1.0.0", "", { "dependencies": { "@babel/runtime": "^7.13.10" }, "peerDependencies": { "react": "^16.8 || ^17.0 || ^18.0" } }, "sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg=="], - - "@radix-ui/react-dialog": ["@radix-ui/react-dialog@1.0.0", "", { "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-focus-guards": "1.0.0", "@radix-ui/react-focus-scope": "1.0.0", "@radix-ui/react-id": "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", "aria-hidden": "^1.1.1", "react-remove-scroll": "2.5.4" }, "peerDependencies": { "react": "^16.8 || ^17.0 || ^18.0", "react-dom": "^16.8 || ^17.0 || ^18.0" } }, "sha512-Yn9YU+QlHYLWwV1XfKiqnGVpWYWk6MeBVM6x/bcoyPvxgjQGoeT35482viLPctTMWoMw0PoHgqfSox7Ig+957Q=="], - - "@radix-ui/react-dismissable-layer": ["@radix-ui/react-dismissable-layer@1.0.0", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "1.0.0", "@radix-ui/react-compose-refs": "1.0.0", "@radix-ui/react-primitive": "1.0.0", "@radix-ui/react-use-callback-ref": "1.0.0", "@radix-ui/react-use-escape-keydown": "1.0.0" }, "peerDependencies": { "react": "^16.8 || ^17.0 || ^18.0", "react-dom": "^16.8 || ^17.0 || ^18.0" } }, "sha512-n7kDRfx+LB1zLueRDvZ1Pd0bxdJWDUZNQ/GWoxDn2prnuJKRdxsjulejX/ePkOsLi2tTm6P24mDqlMSgQpsT6g=="], - - "@radix-ui/react-focus-guards": ["@radix-ui/react-focus-guards@1.0.0", "", { "dependencies": { "@babel/runtime": "^7.13.10" }, "peerDependencies": { "react": "^16.8 || ^17.0 || ^18.0" } }, "sha512-UagjDk4ijOAnGu4WMUPj9ahi7/zJJqNZ9ZAiGPp7waUWJO0O1aWXi/udPphI0IUjvrhBsZJGSN66dR2dsueLWQ=="], - - "@radix-ui/react-focus-scope": ["@radix-ui/react-focus-scope@1.0.0", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-compose-refs": "1.0.0", "@radix-ui/react-primitive": "1.0.0", "@radix-ui/react-use-callback-ref": "1.0.0" }, "peerDependencies": { "react": "^16.8 || ^17.0 || ^18.0", "react-dom": "^16.8 || ^17.0 || ^18.0" } }, "sha512-C4SWtsULLGf/2L4oGeIHlvWQx7Rf+7cX/vKOAD2dXW0A1b5QXwi3wWeaEgW+wn+SEVrraMUk05vLU9fZZz5HbQ=="], - - "@radix-ui/react-id": ["@radix-ui/react-id@1.0.0", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-layout-effect": "1.0.0" }, "peerDependencies": { "react": "^16.8 || ^17.0 || ^18.0" } }, "sha512-Q6iAB/U7Tq3NTolBBQbHTgclPmGWE3OlktGGqrClPozSw4vkQ1DfQAOtzgRPecKsMdJINE05iaoDUG8tRzCBjw=="], - - "@radix-ui/react-portal": ["@radix-ui/react-portal@1.0.0", "", { "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" } }, "sha512-a8qyFO/Xb99d8wQdu4o7qnigNjTPG123uADNecz0eX4usnQEj7o+cG4ZX4zkqq98NYekT7UoEQIjxBNWIFuqTA=="], + "@pkgr/core": ["@pkgr/core@0.2.9", "", {}, "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA=="], - "@radix-ui/react-presence": ["@radix-ui/react-presence@1.0.0", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-compose-refs": "1.0.0", "@radix-ui/react-use-layout-effect": "1.0.0" }, "peerDependencies": { "react": "^16.8 || ^17.0 || ^18.0", "react-dom": "^16.8 || ^17.0 || ^18.0" } }, "sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w=="], + "@playwright/test": ["@playwright/test@1.57.0", "", { "dependencies": { "playwright": "1.57.0" }, "bin": { "playwright": "cli.js" } }, "sha512-6TyEnHgd6SArQO8UO2OMTxshln3QMWBtPGrOCgs3wVEmQmwyuNtB10IZMfmYDE0riwNR1cu4q+pPcxMVtaG3TA=="], - "@radix-ui/react-primitive": ["@radix-ui/react-primitive@1.0.0", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-slot": "1.0.0" }, "peerDependencies": { "react": "^16.8 || ^17.0 || ^18.0", "react-dom": "^16.8 || ^17.0 || ^18.0" } }, "sha512-EyXe6mnRlHZ8b6f4ilTDrXmkLShICIuOTTj0GX4w1rp+wSxf3+TD05u1UOITC8VsJ2a9nwHvdXtOXEOl0Cw/zQ=="], - - "@radix-ui/react-slot": ["@radix-ui/react-slot@1.0.0", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-compose-refs": "1.0.0" }, "peerDependencies": { "react": "^16.8 || ^17.0 || ^18.0" } }, "sha512-3mrKauI/tWXo1Ll+gN5dHcxDPdm/Df1ufcDLCecn+pnCIVcdWE7CujXo8QaXOWRJyZyQWWbpB8eFwHzWXlv5mQ=="], - - "@radix-ui/react-use-callback-ref": ["@radix-ui/react-use-callback-ref@1.0.0", "", { "dependencies": { "@babel/runtime": "^7.13.10" }, "peerDependencies": { "react": "^16.8 || ^17.0 || ^18.0" } }, "sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg=="], + "@reactflow/background": ["@reactflow/background@11.3.14", "", { "dependencies": { "@reactflow/core": "11.11.4", "classcat": "^5.0.3", "zustand": "^4.4.1" }, "peerDependencies": { "react": ">=17", "react-dom": ">=17" } }, "sha512-Gewd7blEVT5Lh6jqrvOgd4G6Qk17eGKQfsDXgyRSqM+CTwDqRldG2LsWN4sNeno6sbqVIC2fZ+rAUBFA9ZEUDA=="], - "@radix-ui/react-use-controllable-state": ["@radix-ui/react-use-controllable-state@1.0.0", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-callback-ref": "1.0.0" }, "peerDependencies": { "react": "^16.8 || ^17.0 || ^18.0" } }, "sha512-FohDoZvk3mEXh9AWAVyRTYR4Sq7/gavuofglmiXB2g1aKyboUD4YtgWxKj8O5n+Uak52gXQ4wKz5IFST4vtJHg=="], + "@reactflow/controls": ["@reactflow/controls@11.2.14", "", { "dependencies": { "@reactflow/core": "11.11.4", "classcat": "^5.0.3", "zustand": "^4.4.1" }, "peerDependencies": { "react": ">=17", "react-dom": ">=17" } }, "sha512-MiJp5VldFD7FrqaBNIrQ85dxChrG6ivuZ+dcFhPQUwOK3HfYgX2RHdBua+gx+40p5Vw5It3dVNp/my4Z3jF0dw=="], - "@radix-ui/react-use-escape-keydown": ["@radix-ui/react-use-escape-keydown@1.0.0", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-callback-ref": "1.0.0" }, "peerDependencies": { "react": "^16.8 || ^17.0 || ^18.0" } }, "sha512-JwfBCUIfhXRxKExgIqGa4CQsiMemo1Xt0W/B4ei3fpzpvPENKpMKQ8mZSB6Acj3ebrAEgi2xiQvcI1PAAodvyg=="], + "@reactflow/core": ["@reactflow/core@11.11.4", "", { "dependencies": { "@types/d3": "^7.4.0", "@types/d3-drag": "^3.0.1", "@types/d3-selection": "^3.0.3", "@types/d3-zoom": "^3.0.1", "classcat": "^5.0.3", "d3-drag": "^3.0.0", "d3-selection": "^3.0.0", "d3-zoom": "^3.0.0", "zustand": "^4.4.1" }, "peerDependencies": { "react": ">=17", "react-dom": ">=17" } }, "sha512-H4vODklsjAq3AMq6Np4LE12i1I4Ta9PrDHuBR9GmL8uzTt2l2jh4CiQbEMpvMDcp7xi4be0hgXj+Ysodde/i7Q=="], - "@radix-ui/react-use-layout-effect": ["@radix-ui/react-use-layout-effect@1.0.0", "", { "dependencies": { "@babel/runtime": "^7.13.10" }, "peerDependencies": { "react": "^16.8 || ^17.0 || ^18.0" } }, "sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ=="], + "@reactflow/minimap": ["@reactflow/minimap@11.7.14", "", { "dependencies": { "@reactflow/core": "11.11.4", "@types/d3-selection": "^3.0.3", "@types/d3-zoom": "^3.0.1", "classcat": "^5.0.3", "d3-selection": "^3.0.0", "d3-zoom": "^3.0.0", "zustand": "^4.4.1" }, "peerDependencies": { "react": ">=17", "react-dom": ">=17" } }, "sha512-mpwLKKrEAofgFJdkhwR5UQ1JYWlcAAL/ZU/bctBkuNTT1yqV+y0buoNVImsRehVYhJwffSWeSHaBR5/GJjlCSQ=="], - "@rc-component/portal": ["@rc-component/portal@1.1.2", "", { "dependencies": { "@babel/runtime": "^7.18.0", "classnames": "^2.3.2", "rc-util": "^5.24.4" }, "peerDependencies": { "react": ">=16.9.0", "react-dom": ">=16.9.0" } }, "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg=="], + "@reactflow/node-resizer": ["@reactflow/node-resizer@2.2.14", "", { "dependencies": { "@reactflow/core": "11.11.4", "classcat": "^5.0.4", "d3-drag": "^3.0.0", "d3-selection": "^3.0.0", "zustand": "^4.4.1" }, "peerDependencies": { "react": ">=17", "react-dom": ">=17" } }, "sha512-fwqnks83jUlYr6OHcdFEedumWKChTHRGw/kbCxj0oqBd+ekfs+SIp4ddyNU0pdx96JIm5iNFS0oNrmEiJbbSaA=="], - "@rc-component/trigger": ["@rc-component/trigger@2.3.0", "", { "dependencies": { "@babel/runtime": "^7.23.2", "@rc-component/portal": "^1.1.0", "classnames": "^2.3.2", "rc-motion": "^2.0.0", "rc-resize-observer": "^1.3.1", "rc-util": "^5.44.0" }, "peerDependencies": { "react": ">=16.9.0", "react-dom": ">=16.9.0" } }, "sha512-iwaxZyzOuK0D7lS+0AQEtW52zUWxoGqTGkke3dRyb8pYiShmRpCjB/8TzPI4R6YySCH7Vm9BZj/31VPiiQTLBg=="], + "@reactflow/node-toolbar": ["@reactflow/node-toolbar@1.3.14", "", { "dependencies": { "@reactflow/core": "11.11.4", "classcat": "^5.0.3", "zustand": "^4.4.1" }, "peerDependencies": { "react": ">=17", "react-dom": ">=17" } }, "sha512-rbynXQnH/xFNu4P9H+hVqlEUafDCkEoCy0Dg9mG22Sg+rY/0ck6KkrAQrYrTgXusd+cEJOMK0uOOFCK2/5rSGQ=="], - "@react-spring/animated": ["@react-spring/animated@9.7.5", "", { "dependencies": { "@react-spring/shared": "~9.7.5", "@react-spring/types": "~9.7.5" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, "sha512-Tqrwz7pIlsSDITzxoLS3n/v/YCUHQdOIKtOJf4yL6kYVSDTSmVK1LI1Q3M/uu2Sx4X3pIWF3xLUhlsA6SPNTNg=="], + "@sinclair/typebox": ["@sinclair/typebox@0.34.41", "", {}, "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g=="], - "@react-spring/core": ["@react-spring/core@9.7.5", "", { "dependencies": { "@react-spring/animated": "~9.7.5", "@react-spring/shared": "~9.7.5", "@react-spring/types": "~9.7.5" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, "sha512-rmEqcxRcu7dWh7MnCcMXLvrf6/SDlSokLaLTxiPlAYi11nN3B5oiCUAblO72o+9z/87j2uzxa2Inm8UbLjXA+w=="], + "@stylistic/eslint-plugin": ["@stylistic/eslint-plugin@5.6.1", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.9.0", "@typescript-eslint/types": "^8.47.0", "eslint-visitor-keys": "^4.2.1", "espree": "^10.4.0", "estraverse": "^5.3.0", "picomatch": "^4.0.3" }, "peerDependencies": { "eslint": ">=9.0.0" } }, "sha512-JCs+MqoXfXrRPGbGmho/zGS/jMcn3ieKl/A8YImqib76C8kjgZwq5uUFzc30lJkMvcchuRn6/v8IApLxli3Jyw=="], - "@react-spring/rafz": ["@react-spring/rafz@9.7.5", "", {}, "sha512-5ZenDQMC48wjUzPAm1EtwQ5Ot3bLIAwwqP2w2owG5KoNdNHpEJV263nGhCeKKmuA3vG2zLLOdu3or6kuDjA6Aw=="], + "@stylistic/stylelint-plugin": ["@stylistic/stylelint-plugin@4.0.0", "", { "dependencies": { "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", "@csstools/media-query-list-parser": "^4.0.3", "postcss": "^8.5.6", "postcss-selector-parser": "^7.1.0", "postcss-value-parser": "^4.2.0", "style-search": "^0.1.0" }, "peerDependencies": { "stylelint": "^16.22.0" } }, "sha512-CFwt3K4Y/7bygNCLCQ8Sy4Hzgbhxq3BsNW0FIuYxl17HD3ywptm54ocyeiLVRrk5jtz1Zwks7Xr9eiZt8SWHAw=="], - "@react-spring/shared": ["@react-spring/shared@9.7.5", "", { "dependencies": { "@react-spring/rafz": "~9.7.5", "@react-spring/types": "~9.7.5" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, "sha512-wdtoJrhUeeyD/PP/zo+np2s1Z820Ohr/BbuVYv+3dVLW7WctoiN7std8rISoYoHpUXtbkpesSKuPIw/6U1w1Pw=="], + "@swc/core": ["@swc/core@1.15.4", "", { "dependencies": { "@swc/counter": "^0.1.3", "@swc/types": "^0.1.25" }, "optionalDependencies": { "@swc/core-darwin-arm64": "1.15.4", "@swc/core-darwin-x64": "1.15.4", "@swc/core-linux-arm-gnueabihf": "1.15.4", "@swc/core-linux-arm64-gnu": "1.15.4", "@swc/core-linux-arm64-musl": "1.15.4", "@swc/core-linux-x64-gnu": "1.15.4", "@swc/core-linux-x64-musl": "1.15.4", "@swc/core-win32-arm64-msvc": "1.15.4", "@swc/core-win32-ia32-msvc": "1.15.4", "@swc/core-win32-x64-msvc": "1.15.4" }, "peerDependencies": { "@swc/helpers": ">=0.5.17" }, "optionalPeers": ["@swc/helpers"] }, "sha512-fH81BPo6EiJ7BUb6Qa5SY/NLWIRVambqU3740g0XPFPEz5KFPnzRYpR6zodQNOcEb9XUtZzRO1Y0WyIJP7iBxQ=="], - "@react-spring/types": ["@react-spring/types@9.7.5", "", {}, "sha512-HVj7LrZ4ReHWBimBvu2SKND3cDVUPWKLqRTmWe/fNY6o1owGOX0cAHbdPDTMelgBlVbrTKrre6lFkhqGZErK/g=="], + "@swc/core-darwin-arm64": ["@swc/core-darwin-arm64@1.15.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-NU/Of+ShFGG/i0lXKsF6GaGeTBNsr9iD8uUzdXxFfGbEjTeuKNXc5CWn3/Uo4Gr4LMAGD3hsRwG2Jq5iBDMalw=="], - "@react-spring/web": ["@react-spring/web@9.7.5", "", { "dependencies": { "@react-spring/animated": "~9.7.5", "@react-spring/core": "~9.7.5", "@react-spring/shared": "~9.7.5", "@react-spring/types": "~9.7.5" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, "sha512-lmvqGwpe+CSttsWNZVr+Dg62adtKhauGwLyGE/RRyZ8AAMLgb9x3NDMA5RMElXo+IMyTkPp7nxTB8ZQlmhb6JQ=="], + "@swc/core-darwin-x64": ["@swc/core-darwin-x64@1.15.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-9oWYMZHiEfHLqjjRGrXL17I8HdAOpWK/Rps34RKQ74O+eliygi1Iyq1TDUzYqUXcNvqN2K5fHgoMLRIni41ClQ=="], - "@reactflow/background": ["@reactflow/background@11.3.14", "", { "dependencies": { "@reactflow/core": "11.11.4", "classcat": "^5.0.3", "zustand": "^4.4.1" }, "peerDependencies": { "react": ">=17", "react-dom": ">=17" } }, "sha512-Gewd7blEVT5Lh6jqrvOgd4G6Qk17eGKQfsDXgyRSqM+CTwDqRldG2LsWN4sNeno6sbqVIC2fZ+rAUBFA9ZEUDA=="], + "@swc/core-linux-arm-gnueabihf": ["@swc/core-linux-arm-gnueabihf@1.15.4", "", { "os": "linux", "cpu": "arm" }, "sha512-I1dPxXli3N1Vr71JXogUTLcspM5ICgCYaA16RE+JKchj3XKKmxLlYjwAHAA4lh/Cy486ikzACaG6pIBcegoGkg=="], - "@reactflow/controls": ["@reactflow/controls@11.2.14", "", { "dependencies": { "@reactflow/core": "11.11.4", "classcat": "^5.0.3", "zustand": "^4.4.1" }, "peerDependencies": { "react": ">=17", "react-dom": ">=17" } }, "sha512-MiJp5VldFD7FrqaBNIrQ85dxChrG6ivuZ+dcFhPQUwOK3HfYgX2RHdBua+gx+40p5Vw5It3dVNp/my4Z3jF0dw=="], + "@swc/core-linux-arm64-gnu": ["@swc/core-linux-arm64-gnu@1.15.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-iGpuS/2PDZ68ioAlhkxiN5M4+pB9uDJolTKk4mZ0JM29uFf9YIkiyk7Bbr2y1QtmD82rF0tDHhoG9jtnV8mZMg=="], - "@reactflow/core": ["@reactflow/core@11.11.4", "", { "dependencies": { "@types/d3": "^7.4.0", "@types/d3-drag": "^3.0.1", "@types/d3-selection": "^3.0.3", "@types/d3-zoom": "^3.0.1", "classcat": "^5.0.3", "d3-drag": "^3.0.0", "d3-selection": "^3.0.0", "d3-zoom": "^3.0.0", "zustand": "^4.4.1" }, "peerDependencies": { "react": ">=17", "react-dom": ">=17" } }, "sha512-H4vODklsjAq3AMq6Np4LE12i1I4Ta9PrDHuBR9GmL8uzTt2l2jh4CiQbEMpvMDcp7xi4be0hgXj+Ysodde/i7Q=="], + "@swc/core-linux-arm64-musl": ["@swc/core-linux-arm64-musl@1.15.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-Ly95wc+VXDhl08pjAoPUhVu5vNbuPMbURknRZa5QOZuiizJ6DkaSI0/zsEc26PpC6HTc4prNLY3ARVwZ7j/IJQ=="], - "@reactflow/minimap": ["@reactflow/minimap@11.7.14", "", { "dependencies": { "@reactflow/core": "11.11.4", "@types/d3-selection": "^3.0.3", "@types/d3-zoom": "^3.0.1", "classcat": "^5.0.3", "d3-selection": "^3.0.0", "d3-zoom": "^3.0.0", "zustand": "^4.4.1" }, "peerDependencies": { "react": ">=17", "react-dom": ">=17" } }, "sha512-mpwLKKrEAofgFJdkhwR5UQ1JYWlcAAL/ZU/bctBkuNTT1yqV+y0buoNVImsRehVYhJwffSWeSHaBR5/GJjlCSQ=="], + "@swc/core-linux-x64-gnu": ["@swc/core-linux-x64-gnu@1.15.4", "", { "os": "linux", "cpu": "x64" }, "sha512-7pIG0BnaMn4zTpHeColPwyrWoTY9Drr+ISZQIgYHUKh3oaPtNCrXb289ScGbPPPjLsSfcGTeOy2pXmNczMC+yg=="], - "@reactflow/node-resizer": ["@reactflow/node-resizer@2.2.14", "", { "dependencies": { "@reactflow/core": "11.11.4", "classcat": "^5.0.4", "d3-drag": "^3.0.0", "d3-selection": "^3.0.0", "zustand": "^4.4.1" }, "peerDependencies": { "react": ">=17", "react-dom": ">=17" } }, "sha512-fwqnks83jUlYr6OHcdFEedumWKChTHRGw/kbCxj0oqBd+ekfs+SIp4ddyNU0pdx96JIm5iNFS0oNrmEiJbbSaA=="], + "@swc/core-linux-x64-musl": ["@swc/core-linux-x64-musl@1.15.4", "", { "os": "linux", "cpu": "x64" }, "sha512-oaqTV25V9H+PpSkvTcK25q6Q56FvXc6d2xBu486dv9LAPCHWgeAworE8WpBLV26g8rubcN5nGhO5HwSunXA7Ww=="], - "@reactflow/node-toolbar": ["@reactflow/node-toolbar@1.3.14", "", { "dependencies": { "@reactflow/core": "11.11.4", "classcat": "^5.0.3", "zustand": "^4.4.1" }, "peerDependencies": { "react": ">=17", "react-dom": ">=17" } }, "sha512-rbynXQnH/xFNu4P9H+hVqlEUafDCkEoCy0Dg9mG22Sg+rY/0ck6KkrAQrYrTgXusd+cEJOMK0uOOFCK2/5rSGQ=="], + "@swc/core-win32-arm64-msvc": ["@swc/core-win32-arm64-msvc@1.15.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-VcPuUJw27YbGo1HcOaAriI50dpM3ZZeDW3x2cMnJW6vtkeyzUFk1TADmTwFax0Fn+yicCxhaWjnFE3eAzGAxIQ=="], - "@sinclair/typebox": ["@sinclair/typebox@0.27.8", "", {}, "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA=="], + "@swc/core-win32-ia32-msvc": ["@swc/core-win32-ia32-msvc@1.15.4", "", { "os": "win32", "cpu": "ia32" }, "sha512-dREjghAZEuKAK9nQzJETAiCSihSpAVS6Vk9+y2ElaoeTj68tNB1txV/m1RTPPD/+Kgbz6ITPNyXRWxPdkP5aXw=="], - "@stylistic/eslint-plugin-js": ["@stylistic/eslint-plugin-js@2.13.0", "", { "dependencies": { "eslint-visitor-keys": "^4.2.0", "espree": "^10.3.0" }, "peerDependencies": { "eslint": ">=8.40.0" } }, "sha512-GPPDK4+fcbsQD58a3abbng2Dx+jBoxM5cnYjBM4T24WFZRZdlNSKvR19TxP8CPevzMOodQ9QVzNeqWvMXzfJRA=="], + "@swc/core-win32-x64-msvc": ["@swc/core-win32-x64-msvc@1.15.4", "", { "os": "win32", "cpu": "x64" }, "sha512-o/odIBuQkoxKbRweJWOMI9LeRSOenFKN2zgPeaaNQ/cyuVk2r6DCAobKMOodvDdZWlMn6N1xJrldeCRSTZIgiQ=="], - "@stylistic/stylelint-plugin": ["@stylistic/stylelint-plugin@2.1.3", "", { "dependencies": { "@csstools/css-parser-algorithms": "^2.7.1", "@csstools/css-tokenizer": "^2.4.1", "@csstools/media-query-list-parser": "^2.1.13", "is-plain-object": "^5.0.0", "postcss-selector-parser": "^6.1.1", "postcss-value-parser": "^4.2.0", "style-search": "^0.1.0", "stylelint": "^16.8.0" } }, "sha512-/KUcqX36AbbUk7KvNuM0dWv2XSlPa1M12CPcC//eA4MNEFsZFl+2Kf8UZCLjlIWIrDNitd591vaVkXfOwUtsFQ=="], + "@swc/counter": ["@swc/counter@0.1.3", "", {}, "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ=="], - "@swc/core": ["@swc/core@1.12.14", "", { "dependencies": { "@swc/counter": "^0.1.3", "@swc/types": "^0.1.23" }, "optionalDependencies": { "@swc/core-darwin-arm64": "1.12.14", "@swc/core-darwin-x64": "1.12.14", "@swc/core-linux-arm-gnueabihf": "1.12.14", "@swc/core-linux-arm64-gnu": "1.12.14", "@swc/core-linux-arm64-musl": "1.12.14", "@swc/core-linux-x64-gnu": "1.12.14", "@swc/core-linux-x64-musl": "1.12.14", "@swc/core-win32-arm64-msvc": "1.12.14", "@swc/core-win32-ia32-msvc": "1.12.14", "@swc/core-win32-x64-msvc": "1.12.14" }, "peerDependencies": { "@swc/helpers": ">=0.5.17" }, "optionalPeers": ["@swc/helpers"] }, "sha512-CJSn2vstd17ddWIHBsjuD4OQnn9krQfaq6EO+w9YfId5DKznyPmzxAARlOXG99cC8/3Kli8ysKy6phL43bSr0w=="], + "@swc/helpers": ["@swc/helpers@0.2.14", "", {}, "sha512-wpCQMhf5p5GhNg2MmGKXzUNwxe7zRiCsmqYsamez2beP7mKPCSiu+BjZcdN95yYSzO857kr0VfQewmGpS77nqA=="], - "@swc/core-darwin-arm64": ["@swc/core-darwin-arm64@1.12.14", "", { "os": "darwin", "cpu": "arm64" }, "sha512-HNukQoOKgMsHSETj8vgGGKK3SEcH7Cz6k4bpntCxBKNkO3sH7RcBTDulWGGHJfZaDNix7Rw2ExUVWtLZlzkzXg=="], + "@swc/types": ["@swc/types@0.1.25", "", { "dependencies": { "@swc/counter": "^0.1.3" } }, "sha512-iAoY/qRhNH8a/hBvm3zKj9qQ4oc2+3w1unPJa2XvTK3XjeLXtzcCingVPw/9e5mn1+0yPqxcBGp9Jf0pkfMb1g=="], - "@swc/core-darwin-x64": ["@swc/core-darwin-x64@1.12.14", "", { "os": "darwin", "cpu": "x64" }, "sha512-4Ttf3Obtk3MvFrR0e04qr6HfXh4L1Z+K3dRej63TAFuYpo+cPXeOZdPUddAW73lSUGkj+61IHnGPoXD3OQYy4Q=="], + "@tailwindcss/node": ["@tailwindcss/node@4.1.18", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "enhanced-resolve": "^5.18.3", "jiti": "^2.6.1", "lightningcss": "1.30.2", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", "tailwindcss": "4.1.18" } }, "sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ=="], - "@swc/core-linux-arm-gnueabihf": ["@swc/core-linux-arm-gnueabihf@1.12.14", "", { "os": "linux", "cpu": "arm" }, "sha512-zhJOH2KWjtQpzJ27Xjw/RKLVOa1aiEJC2b70xbCwEX6ZTVAl8tKbhkZ3GMphhfVmLJ9gf/2UQR58oxVnsXqX5Q=="], + "@tailwindcss/oxide": ["@tailwindcss/oxide@4.1.18", "", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.1.18", "@tailwindcss/oxide-darwin-arm64": "4.1.18", "@tailwindcss/oxide-darwin-x64": "4.1.18", "@tailwindcss/oxide-freebsd-x64": "4.1.18", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.18", "@tailwindcss/oxide-linux-arm64-gnu": "4.1.18", "@tailwindcss/oxide-linux-arm64-musl": "4.1.18", "@tailwindcss/oxide-linux-x64-gnu": "4.1.18", "@tailwindcss/oxide-linux-x64-musl": "4.1.18", "@tailwindcss/oxide-wasm32-wasi": "4.1.18", "@tailwindcss/oxide-win32-arm64-msvc": "4.1.18", "@tailwindcss/oxide-win32-x64-msvc": "4.1.18" } }, "sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A=="], - "@swc/core-linux-arm64-gnu": ["@swc/core-linux-arm64-gnu@1.12.14", "", { "os": "linux", "cpu": "arm64" }, "sha512-akUAe1YrBqZf1EDdUxahQ8QZnJi8Ts6Ya0jf6GBIMvnXL4Y6QIuvKTRwfNxy7rJ+x9zpzP1Vlh14ZZkSKZ1EGA=="], + "@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.1.18", "", { "os": "android", "cpu": "arm64" }, "sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q=="], - "@swc/core-linux-arm64-musl": ["@swc/core-linux-arm64-musl@1.12.14", "", { "os": "linux", "cpu": "arm64" }, "sha512-ZkOOIpSMXuPAjfOXEIAEQcrPOgLi6CaXvA5W+GYnpIpFG21Nd0qb0WbwFRv4K8BRtl993Q21v0gPpOaFHU+wdA=="], + "@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.1.18", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A=="], - "@swc/core-linux-x64-gnu": ["@swc/core-linux-x64-gnu@1.12.14", "", { "os": "linux", "cpu": "x64" }, "sha512-71EPPccwJiJUxd2aMwNlTfom2mqWEWYGdbeTju01tzSHsEuD7E6ePlgC3P3ngBqB3urj41qKs87z7zPOswT5Iw=="], + "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.1.18", "", { "os": "darwin", "cpu": "x64" }, "sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw=="], - "@swc/core-linux-x64-musl": ["@swc/core-linux-x64-musl@1.12.14", "", { "os": "linux", "cpu": "x64" }, "sha512-nImF1hZJqKTcl0WWjHqlelOhvuB9rU9kHIw/CmISBUZXogjLIvGyop1TtJNz0ULcz2Oxr3Q2YpwfrzsgvgbGkA=="], + "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.1.18", "", { "os": "freebsd", "cpu": "x64" }, "sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA=="], - "@swc/core-win32-arm64-msvc": ["@swc/core-win32-arm64-msvc@1.12.14", "", { "os": "win32", "cpu": "arm64" }, "sha512-sABFQFxSuStFoxvEWZUHWYldtB1B4A9eDNFd4Ty50q7cemxp7uoscFoaCqfXSGNBwwBwpS5EiPB6YN4y6hqmLQ=="], + "@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18", "", { "os": "linux", "cpu": "arm" }, "sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA=="], - "@swc/core-win32-ia32-msvc": ["@swc/core-win32-ia32-msvc@1.12.14", "", { "os": "win32", "cpu": "ia32" }, "sha512-KBznRB02NASkpepRdWIK4f1AvmaJCDipKWdW1M1xV9QL2tE4aySJFojVuG1+t0tVDkjRfwcZjycQfRoJ4RjD7Q=="], + "@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.1.18", "", { "os": "linux", "cpu": "arm64" }, "sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw=="], - "@swc/core-win32-x64-msvc": ["@swc/core-win32-x64-msvc@1.12.14", "", { "os": "win32", "cpu": "x64" }, "sha512-SymoP2CJHzrYaFKjWvuQljcF7BkTpzaS1vpywv7K9EzdTb5N8qPDvNd+PhWUqBz9JHBhbJxpaeTDQBXF/WWPmw=="], + "@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.1.18", "", { "os": "linux", "cpu": "arm64" }, "sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg=="], - "@swc/counter": ["@swc/counter@0.1.3", "", {}, "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ=="], + "@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.1.18", "", { "os": "linux", "cpu": "x64" }, "sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g=="], - "@swc/helpers": ["@swc/helpers@0.2.14", "", {}, "sha512-wpCQMhf5p5GhNg2MmGKXzUNwxe7zRiCsmqYsamez2beP7mKPCSiu+BjZcdN95yYSzO857kr0VfQewmGpS77nqA=="], + "@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.1.18", "", { "os": "linux", "cpu": "x64" }, "sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ=="], - "@swc/types": ["@swc/types@0.1.23", "", { "dependencies": { "@swc/counter": "^0.1.3" } }, "sha512-u1iIVZV9Q0jxY+yM2vw/hZGDNudsN85bBpTqzAQ9rzkxW9D+e3aEM4Han+ow518gSewkXgjmEK0BD79ZcNVgPw=="], + "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.1.18", "", { "dependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1", "@emnapi/wasi-threads": "^1.1.0", "@napi-rs/wasm-runtime": "^1.1.0", "@tybys/wasm-util": "^0.10.1", "tslib": "^2.4.0" }, "cpu": "none" }, "sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA=="], - "@tannin/compile": ["@tannin/compile@1.1.0", "", { "dependencies": { "@tannin/evaluate": "^1.2.0", "@tannin/postfix": "^1.1.0" } }, "sha512-n8m9eNDfoNZoxdvWiTfW/hSPhehzLJ3zW7f8E7oT6mCROoMNWCB4TYtv041+2FMAxweiE0j7i1jubQU4MEC/Gg=="], + "@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.1.18", "", { "os": "win32", "cpu": "arm64" }, "sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA=="], - "@tannin/evaluate": ["@tannin/evaluate@1.2.0", "", {}, "sha512-3ioXvNowbO/wSrxsDG5DKIMxC81P0QrQTYai8zFNY+umuoHWRPbQ/TuuDEOju9E+jQDXmj6yI5GyejNuh8I+eg=="], + "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.1.18", "", { "os": "win32", "cpu": "x64" }, "sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q=="], - "@tannin/plural-forms": ["@tannin/plural-forms@1.1.0", "", { "dependencies": { "@tannin/compile": "^1.1.0" } }, "sha512-xl9R2mDZO/qiHam1AgMnAES6IKIg7OBhcXqy6eDsRCdXuxAFPcjrej9HMjyCLE0DJ/8cHf0i5OQTstuBRhpbHw=="], + "@tailwindcss/postcss": ["@tailwindcss/postcss@4.1.18", "", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "@tailwindcss/node": "4.1.18", "@tailwindcss/oxide": "4.1.18", "postcss": "^8.4.41", "tailwindcss": "4.1.18" } }, "sha512-Ce0GFnzAOuPyfV5SxjXGn0CubwGcuDB0zcdaPuCSzAa/2vII24JTkH+I6jcbXLb1ctjZMZZI6OjDaLPJQL1S0g=="], - "@tannin/postfix": ["@tannin/postfix@1.1.0", "", {}, "sha512-oocsqY7g0cR+Gur5jRQLSrX2OtpMLMse1I10JQBm8CdGMrDkh1Mg2gjsiquMHRtBs4Qwu5wgEp5GgIYHk4SNPw=="], + "@tailwindcss/typography": ["@tailwindcss/typography@0.5.19", "", { "dependencies": { "postcss-selector-parser": "6.0.10" }, "peerDependencies": { "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1" } }, "sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg=="], "@types/d3": ["@types/d3@7.4.3", "", { "dependencies": { "@types/d3-array": "*", "@types/d3-axis": "*", "@types/d3-brush": "*", "@types/d3-chord": "*", "@types/d3-color": "*", "@types/d3-contour": "*", "@types/d3-delaunay": "*", "@types/d3-dispatch": "*", "@types/d3-drag": "*", "@types/d3-dsv": "*", "@types/d3-ease": "*", "@types/d3-fetch": "*", "@types/d3-force": "*", "@types/d3-format": "*", "@types/d3-geo": "*", "@types/d3-hierarchy": "*", "@types/d3-interpolate": "*", "@types/d3-path": "*", "@types/d3-polygon": "*", "@types/d3-quadtree": "*", "@types/d3-random": "*", "@types/d3-scale": "*", "@types/d3-scale-chromatic": "*", "@types/d3-selection": "*", "@types/d3-shape": "*", "@types/d3-time": "*", "@types/d3-time-format": "*", "@types/d3-timer": "*", "@types/d3-transition": "*", "@types/d3-zoom": "*" } }, "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww=="], - "@types/d3-array": ["@types/d3-array@3.2.1", "", {}, "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg=="], + "@types/d3-array": ["@types/d3-array@3.2.2", "", {}, "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw=="], "@types/d3-axis": ["@types/d3-axis@3.0.6", "", { "dependencies": { "@types/d3-selection": "*" } }, "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw=="], @@ -328,7 +241,7 @@ "@types/d3-delaunay": ["@types/d3-delaunay@6.0.4", "", {}, "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw=="], - "@types/d3-dispatch": ["@types/d3-dispatch@3.0.6", "", {}, "sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ=="], + "@types/d3-dispatch": ["@types/d3-dispatch@3.0.7", "", {}, "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA=="], "@types/d3-drag": ["@types/d3-drag@3.0.7", "", { "dependencies": { "@types/d3-selection": "*" } }, "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ=="], @@ -382,12 +295,6 @@ "@types/geojson": ["@types/geojson@7946.0.16", "", {}, "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg=="], - "@types/glob": ["@types/glob@7.2.0", "", { "dependencies": { "@types/minimatch": "*", "@types/node": "*" } }, "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA=="], - - "@types/gradient-parser": ["@types/gradient-parser@0.1.3", "", {}, "sha512-XDbrTSBlQV9nxE1GiDL3FaOPy4G/KaJkhDutBX48Kg8CYZMBARyyDFGCWfWJn4pobmInmwud1xxH7VJMAr0CKQ=="], - - "@types/highlight-words-core": ["@types/highlight-words-core@1.2.1", "", {}, "sha512-9VZUA5omXBfn+hDxFjUDu1FOJTBM3LmvqfDey+Z6Aa8B8/JmF5SMj6FBrjfgJ/Q3YXOZd3qyTDfJyMZSs/wCUA=="], - "@types/istanbul-lib-coverage": ["@types/istanbul-lib-coverage@2.0.6", "", {}, "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w=="], "@types/istanbul-lib-report": ["@types/istanbul-lib-report@3.0.3", "", { "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA=="], @@ -396,33 +303,15 @@ "@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], - "@types/minimatch": ["@types/minimatch@6.0.0", "", { "dependencies": { "minimatch": "*" } }, "sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA=="], - - "@types/mousetrap": ["@types/mousetrap@1.6.15", "", {}, "sha512-qL0hyIMNPow317QWW/63RvL1x5MVMV+Ru3NaY9f/CuEpCqrmb7WeuK2071ZY5hczOnm38qExWM2i2WtkXLSqFw=="], - - "@types/node": ["@types/node@24.0.14", "", { "dependencies": { "undici-types": "~7.8.0" } }, "sha512-4zXMWD91vBLGRtHK3YbIoFMia+1nqEz72coM42C5ETjnNCa/heoj7NT1G67iAfOqMmcfhuCZ4uNpyz8EjlAejw=="], - - "@types/parse-json": ["@types/parse-json@4.0.2", "", {}, "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw=="], - - "@types/prop-types": ["@types/prop-types@15.7.15", "", {}, "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw=="], - - "@types/react": ["@types/react@18.3.23", "", { "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" } }, "sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w=="], - - "@types/react-dom": ["@types/react-dom@18.3.7", "", { "peerDependencies": { "@types/react": "^18.0.0" } }, "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ=="], - - "@types/react-transition-group": ["@types/react-transition-group@4.4.12", "", { "peerDependencies": { "@types/react": "*" } }, "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w=="], + "@types/node": ["@types/node@25.0.2", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-gWEkeiyYE4vqjON/+Obqcoeffmk0NF15WSBwSs7zwVA2bAbTaE0SJ7P0WNGoJn8uE7fiaV5a7dKYIJriEqOrmA=="], - "@types/tinycolor2": ["@types/tinycolor2@1.4.6", "", {}, "sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw=="], - - "@types/yargs": ["@types/yargs@17.0.33", "", { "dependencies": { "@types/yargs-parser": "*" } }, "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA=="], + "@types/yargs": ["@types/yargs@17.0.35", "", { "dependencies": { "@types/yargs-parser": "*" } }, "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg=="], "@types/yargs-parser": ["@types/yargs-parser@21.0.3", "", {}, "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ=="], - "@uidotdev/usehooks": ["@uidotdev/usehooks@2.4.1", "", { "peerDependencies": { "react": ">=18.0.0", "react-dom": ">=18.0.0" } }, "sha512-1I+RwWyS+kdv3Mv0Vmc+p0dPYH0DTRAo04HLyXReYBL9AeseDWUJyi4THuksBJcu9F0Pih69Ak150VDnqbVnXg=="], - - "@use-gesture/core": ["@use-gesture/core@10.3.1", "", {}, "sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw=="], + "@typescript-eslint/types": ["@typescript-eslint/types@8.49.0", "", {}, "sha512-e9k/fneezorUo6WShlQpMxXh8/8wfyc+biu6tnAqA81oWrEic0k21RHzP9uqqpyBBeBKu4T+Bsjy9/b8u7obXQ=="], - "@use-gesture/react": ["@use-gesture/react@10.3.1", "", { "dependencies": { "@use-gesture/core": "10.3.1" }, "peerDependencies": { "react": ">= 16.8.0" } }, "sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g=="], + "@ungap/structured-clone": ["@ungap/structured-clone@1.3.0", "", {}, "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g=="], "@webassemblyjs/ast": ["@webassemblyjs/ast@1.14.1", "", { "dependencies": { "@webassemblyjs/helper-numbers": "1.13.2", "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ=="], @@ -460,83 +349,7 @@ "@webpack-cli/serve": ["@webpack-cli/serve@3.0.1", "", { "peerDependencies": { "webpack": "^5.82.0", "webpack-cli": "6.x.x" } }, "sha512-sbgw03xQaCLiT6gcY/6u3qBDn01CWw/nbaXl3gTdTFuJJ75Gffv3E3DBpgvY2fkkrdS1fpjaXNOmJlnbtKauKg=="], - "@wordpress/a11y": ["@wordpress/a11y@3.58.0", "", { "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/dom-ready": "^3.58.0", "@wordpress/i18n": "^4.58.0" } }, "sha512-7NnJKl4+pxP6kV/jvXaJcZZCGzW7zaj6YeMnyjUd96cH4ta1ykBIveWgejerFOGsbK+88FnStcxSFj+dbDXs/w=="], - - "@wordpress/api-fetch": ["@wordpress/api-fetch@6.55.0", "", { "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/i18n": "^4.58.0", "@wordpress/url": "^3.59.0" } }, "sha512-1HrCUsJdeRY5Y0IjplotINwqMRO81e7O7VhBScuKk7iOuDm/E1ioKv2uLGnPNWziYu+Zf025byxOqVzXDyM2gw=="], - - "@wordpress/autop": ["@wordpress/autop@3.58.0", "", { "dependencies": { "@babel/runtime": "^7.16.0" } }, "sha512-RsdUV57A+DTJGU3slq/S9vTOtVkatnT1YyGIK3UDKaEhXkvBPtLTWwd3WR13GCfjFZ5XupH9FAGUQFkOve0eKQ=="], - - "@wordpress/blob": ["@wordpress/blob@3.58.0", "", { "dependencies": { "@babel/runtime": "^7.16.0" } }, "sha512-6L3WqbOWEGFOSs3vLMwJ83YScggCiJ9NvZj1kC7mgeiP302UP2Fxkt4KlfjeTsD350XcvakkD/57wRkHXd819Q=="], - - "@wordpress/block-editor": ["@wordpress/block-editor@12.26.0", "", { "dependencies": { "@babel/runtime": "^7.16.0", "@emotion/react": "^11.7.1", "@emotion/styled": "^11.6.0", "@react-spring/web": "^9.4.5", "@wordpress/a11y": "^3.58.0", "@wordpress/api-fetch": "^6.55.0", "@wordpress/blob": "^3.58.0", "@wordpress/blocks": "^12.35.0", "@wordpress/commands": "^0.29.0", "@wordpress/components": "^27.6.0", "@wordpress/compose": "^6.35.0", "@wordpress/data": "^9.28.0", "@wordpress/date": "^4.58.0", "@wordpress/deprecated": "^3.58.0", "@wordpress/dom": "^3.58.0", "@wordpress/element": "^5.35.0", "@wordpress/escape-html": "^2.58.0", "@wordpress/hooks": "^3.58.0", "@wordpress/html-entities": "^3.58.0", "@wordpress/i18n": "^4.58.0", "@wordpress/icons": "^9.49.0", "@wordpress/is-shallow-equal": "^4.58.0", "@wordpress/keyboard-shortcuts": "^4.35.0", "@wordpress/keycodes": "^3.58.0", "@wordpress/notices": "^4.26.0", "@wordpress/preferences": "^3.35.0", "@wordpress/private-apis": "^0.40.0", "@wordpress/rich-text": "^6.35.0", "@wordpress/style-engine": "^1.41.0", "@wordpress/token-list": "^2.58.0", "@wordpress/url": "^3.59.0", "@wordpress/warning": "^2.58.0", "@wordpress/wordcount": "^3.58.0", "change-case": "^4.1.2", "clsx": "^2.1.1", "colord": "^2.7.0", "deepmerge": "^4.3.0", "diff": "^4.0.2", "fast-deep-equal": "^3.1.3", "memize": "^2.1.0", "postcss": "^8.4.21", "postcss-prefixwrap": "^1.41.0", "postcss-urlrebase": "^1.0.0", "react-autosize-textarea": "^7.1.0", "react-easy-crop": "^5.0.6", "remove-accents": "^0.5.0" }, "peerDependencies": { "react": "^18.0.0", "react-dom": "^18.0.0" } }, "sha512-wkBP37hB6Fb1AaUIjry6S3LlFrjnVq3Seg8ktZPLozDv2cyODs/ym8+wjv8TR/aiuSWdk0dZZywYMNc+vHEfEg=="], - - "@wordpress/block-serialization-default-parser": ["@wordpress/block-serialization-default-parser@4.58.0", "", { "dependencies": { "@babel/runtime": "^7.16.0" } }, "sha512-++fowmFEJC+1SwiCGuLPO9k+g3rgI2SCAA/p8/Bc1rNgnKB+rowzmQvSIIlRpcUkmOxHOrH5uruOEX27Ksg6uw=="], - - "@wordpress/blocks": ["@wordpress/blocks@12.35.0", "", { "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/autop": "^3.58.0", "@wordpress/blob": "^3.58.0", "@wordpress/block-serialization-default-parser": "^4.58.0", "@wordpress/compose": "^6.35.0", "@wordpress/data": "^9.28.0", "@wordpress/deprecated": "^3.58.0", "@wordpress/dom": "^3.58.0", "@wordpress/element": "^5.35.0", "@wordpress/hooks": "^3.58.0", "@wordpress/html-entities": "^3.58.0", "@wordpress/i18n": "^4.58.0", "@wordpress/is-shallow-equal": "^4.58.0", "@wordpress/private-apis": "^0.40.0", "@wordpress/rich-text": "^6.35.0", "@wordpress/shortcode": "^3.58.0", "change-case": "^4.1.2", "colord": "^2.7.0", "fast-deep-equal": "^3.1.3", "hpq": "^1.3.0", "is-plain-object": "^5.0.0", "memize": "^2.1.0", "react-is": "^18.3.0", "remove-accents": "^0.5.0", "showdown": "^1.9.1", "simple-html-tokenizer": "^0.5.7", "uuid": "^9.0.1" }, "peerDependencies": { "react": "^18.0.0" } }, "sha512-BwjMca4aGuttu3C0nLLpt6MBg6IBCogA6ulGTyg+0YdKnwac52k+2wfersqAem8AFgG0hTDwrIpLsWLxpF9dtg=="], - - "@wordpress/commands": ["@wordpress/commands@0.29.0", "", { "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/components": "^27.6.0", "@wordpress/data": "^9.28.0", "@wordpress/element": "^5.35.0", "@wordpress/i18n": "^4.58.0", "@wordpress/icons": "^9.49.0", "@wordpress/keyboard-shortcuts": "^4.35.0", "@wordpress/private-apis": "^0.40.0", "clsx": "^2.1.1", "cmdk": "^0.2.0" }, "peerDependencies": { "react": "^18.0.0", "react-dom": "^18.0.0" } }, "sha512-HqTrYfQw/5cdT2hPgmuKW6gugnt1Pqtg9zjRHUa+D4ME7mjR4dYQoHRgnFM+hm8OOuEZRVBsa1kYO3t3041Jew=="], - - "@wordpress/components": ["@wordpress/components@27.6.0", "", { "dependencies": { "@ariakit/react": "^0.3.12", "@babel/runtime": "^7.16.0", "@emotion/cache": "^11.7.1", "@emotion/css": "^11.7.1", "@emotion/react": "^11.7.1", "@emotion/serialize": "^1.0.2", "@emotion/styled": "^11.6.0", "@emotion/utils": "^1.0.0", "@floating-ui/react-dom": "^2.0.8", "@types/gradient-parser": "0.1.3", "@types/highlight-words-core": "1.2.1", "@use-gesture/react": "^10.3.1", "@wordpress/a11y": "^3.58.0", "@wordpress/compose": "^6.35.0", "@wordpress/date": "^4.58.0", "@wordpress/deprecated": "^3.58.0", "@wordpress/dom": "^3.58.0", "@wordpress/element": "^5.35.0", "@wordpress/escape-html": "^2.58.0", "@wordpress/hooks": "^3.58.0", "@wordpress/html-entities": "^3.58.0", "@wordpress/i18n": "^4.58.0", "@wordpress/icons": "^9.49.0", "@wordpress/is-shallow-equal": "^4.58.0", "@wordpress/keycodes": "^3.58.0", "@wordpress/primitives": "^3.56.0", "@wordpress/private-apis": "^0.40.0", "@wordpress/rich-text": "^6.35.0", "@wordpress/warning": "^2.58.0", "change-case": "^4.1.2", "clsx": "^2.1.1", "colord": "^2.7.0", "date-fns": "^3.6.0", "deepmerge": "^4.3.0", "downshift": "^6.0.15", "fast-deep-equal": "^3.1.3", "framer-motion": "^11.1.9", "gradient-parser": "^0.1.5", "highlight-words-core": "^1.2.2", "is-plain-object": "^5.0.0", "memize": "^2.1.0", "path-to-regexp": "^6.2.1", "re-resizable": "^6.4.0", "react-colorful": "^5.3.1", "remove-accents": "^0.5.0", "use-lilius": "^2.0.5", "uuid": "^9.0.1" }, "peerDependencies": { "react": "^18.0.0", "react-dom": "^18.0.0" } }, "sha512-f+fXENkgrPs5GLo2yu9fEAdVX0KriEatRcjDUyw0+DbNbJR62sCdDtGdhJRW4jPUUoUowxaGO0y4+jvQWxnbyg=="], - - "@wordpress/compose": ["@wordpress/compose@6.35.0", "", { "dependencies": { "@babel/runtime": "^7.16.0", "@types/mousetrap": "^1.6.8", "@wordpress/deprecated": "^3.58.0", "@wordpress/dom": "^3.58.0", "@wordpress/element": "^5.35.0", "@wordpress/is-shallow-equal": "^4.58.0", "@wordpress/keycodes": "^3.58.0", "@wordpress/priority-queue": "^2.58.0", "@wordpress/undo-manager": "^0.18.0", "change-case": "^4.1.2", "clipboard": "^2.0.11", "mousetrap": "^1.6.5", "use-memo-one": "^1.1.1" }, "peerDependencies": { "react": "^18.0.0" } }, "sha512-PfruhCxxxJokDQHc2YBgerEiHV7BIxQk9g5vU4/f9X/0PBQWUTuxOzSFcAba03vnjfAgtPTSMp50T50hcJwXfA=="], - - "@wordpress/data": ["@wordpress/data@9.28.0", "", { "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/compose": "^6.35.0", "@wordpress/deprecated": "^3.58.0", "@wordpress/element": "^5.35.0", "@wordpress/is-shallow-equal": "^4.58.0", "@wordpress/priority-queue": "^2.58.0", "@wordpress/private-apis": "^0.40.0", "@wordpress/redux-routine": "^4.58.0", "deepmerge": "^4.3.0", "equivalent-key-map": "^0.2.2", "is-plain-object": "^5.0.0", "is-promise": "^4.0.0", "redux": "^4.1.2", "rememo": "^4.0.2", "use-memo-one": "^1.1.1" }, "peerDependencies": { "react": "^18.0.0" } }, "sha512-EDPpZdkngdoW7EMzPpGj0BmNcr7syJO67pgTODtN/4XFIdYL2RKzFyn3nlLBKhX17UsE/ALq9WdijacH4QJ9qw=="], - - "@wordpress/date": ["@wordpress/date@4.58.0", "", { "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/deprecated": "^3.58.0", "moment": "^2.29.4", "moment-timezone": "^0.5.40" } }, "sha512-yFT7DU0H9W0lsDytMaVMmjho08X1LeBMIQMppxdtKB04Ujx58hVh7gtunOsstUQ7pVg23nE2eLaVfx5JOdjzAw=="], - - "@wordpress/dependency-extraction-webpack-plugin": ["@wordpress/dependency-extraction-webpack-plugin@5.9.0", "", { "dependencies": { "json2php": "^0.0.7" }, "peerDependencies": { "webpack": "^5.0.0" } }, "sha512-hXbCkbG1XES47t7hFSETRrLfaRSPyQPlCnhlCx7FfhYFD0wh1jVArApXX5dD+A6wTrayXX/a16MpfaNqE662XA=="], - - "@wordpress/deprecated": ["@wordpress/deprecated@3.58.0", "", { "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/hooks": "^3.58.0" } }, "sha512-knweE2lLEUxWRr6A48sHiO0ww5pPybGe2NVIZVq/y7EaYCMdpy6gYA0ZdVqMKZvtxKKqicJfwigcn+hinsTvUQ=="], - - "@wordpress/dom": ["@wordpress/dom@3.58.0", "", { "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/deprecated": "^3.58.0" } }, "sha512-t3xSr/nqekj2qwUGRAqSeGx6116JOBxzI+VBiUfZrjGEnuyKdLelXDEeYtcwbb7etMkj/6F60/NB7GTl5IwizQ=="], - - "@wordpress/dom-ready": ["@wordpress/dom-ready@4.29.0", "", { "dependencies": { "@babel/runtime": "7.25.7" } }, "sha512-B1hoNo8uYYVsAlKXkbuMbn7InRksxXAYLdfM0Nuz/Ab+k8AoY3IUqufd2PAwLo+JzkLsyDeyvvLG8VgmK7+uFw=="], - - "@wordpress/element": ["@wordpress/element@5.35.0", "", { "dependencies": { "@babel/runtime": "^7.16.0", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@wordpress/escape-html": "^2.58.0", "change-case": "^4.1.2", "is-plain-object": "^5.0.0", "react": "^18.3.0", "react-dom": "^18.3.0" } }, "sha512-puswpGcIdS+0A2g28uHriMkZqqRCmzFczue5Tk99VNtzBdehyk7Ae+DZ4xw5yT6GqYai8NTqv6MRwCB78uh5Mw=="], - - "@wordpress/escape-html": ["@wordpress/escape-html@2.58.0", "", { "dependencies": { "@babel/runtime": "^7.16.0" } }, "sha512-9YJXMNfzkrhHEVP1jFEhgijbZqW8Mt3NHIMZjIQoWtBf7QE86umpYpGGBXzYC0YlpGTRGzZTBwYaqFKxjeaSgA=="], - - "@wordpress/hooks": ["@wordpress/hooks@3.58.0", "", { "dependencies": { "@babel/runtime": "^7.16.0" } }, "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q=="], - - "@wordpress/html-entities": ["@wordpress/html-entities@3.58.0", "", { "dependencies": { "@babel/runtime": "^7.16.0" } }, "sha512-FU7b6QZdwTCuLKq6wCl0IZqqOMcMRxMcekVVytzTse7hYk9dvL1qQL/U4eQ/CNyKqiT9u7fb5NKTQILOzoolVQ=="], - - "@wordpress/i18n": ["@wordpress/i18n@4.58.0", "", { "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/hooks": "^3.58.0", "gettext-parser": "^1.3.1", "memize": "^2.1.0", "sprintf-js": "^1.1.1", "tannin": "^1.2.0" }, "bin": { "pot-to-php": "tools/pot-to-php.js" } }, "sha512-VfvS3BWv/RDjRKD6PscIcvYfWKnGJcI/DEqyDgUMhxCM6NRwoL478CsUKTiGJIymeyRodNRfprdcF086DpGKYw=="], - - "@wordpress/icons": ["@wordpress/icons@9.49.0", "", { "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/element": "^5.35.0", "@wordpress/primitives": "^3.56.0" } }, "sha512-Z8F+ledkfkcKDuS1c/RkM0dEWdfv2AXs6bCgey89p0atJSscf7qYbMJR9zE5rZ5aqXyFfV0DAFKJEgayNqneNQ=="], - - "@wordpress/is-shallow-equal": ["@wordpress/is-shallow-equal@4.58.0", "", { "dependencies": { "@babel/runtime": "^7.16.0" } }, "sha512-NH2lbXo/6ix1t4Zu9UBXpXNtoLwSaYmIRSyDH34XNb0ic8a7yjEOhYWVW3LTfSCv9dJVyxlM5TJPtL85q7LdeQ=="], - - "@wordpress/keyboard-shortcuts": ["@wordpress/keyboard-shortcuts@4.35.0", "", { "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/data": "^9.28.0", "@wordpress/element": "^5.35.0", "@wordpress/keycodes": "^3.58.0" }, "peerDependencies": { "react": "^18.0.0" } }, "sha512-DR+fWhHt67GQT6PlrfMBpSmEYNCep+XvMYA55cnxoQ80LIFN5N5bkr4VeYdbrSatuOSRACm+6cfoQSIMQbdmjw=="], - - "@wordpress/keycodes": ["@wordpress/keycodes@3.58.0", "", { "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/i18n": "^4.58.0" } }, "sha512-Q/LRKpx8ndzuHlkxSQ2BD+NTYYKQPIneNNMng8hTAfyU7RFwXpqj06HpeOFGh4XIdPKCs/8hmucoLJRmmLmZJA=="], - - "@wordpress/notices": ["@wordpress/notices@4.26.0", "", { "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/a11y": "^3.58.0", "@wordpress/data": "^9.28.0" }, "peerDependencies": { "react": "^18.0.0" } }, "sha512-Lu98xQdtZHgC3d32IFalZbOiIu8aRFWlEQXXfRutD7EhXXp6FIXvnvc054700/Dk1mg9P/bWd0zm/cigkXgfkA=="], - - "@wordpress/preferences": ["@wordpress/preferences@3.35.0", "", { "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/a11y": "^3.58.0", "@wordpress/components": "^27.6.0", "@wordpress/compose": "^6.35.0", "@wordpress/data": "^9.28.0", "@wordpress/deprecated": "^3.58.0", "@wordpress/element": "^5.35.0", "@wordpress/i18n": "^4.58.0", "@wordpress/icons": "^9.49.0", "@wordpress/private-apis": "^0.40.0", "clsx": "^2.1.1" }, "peerDependencies": { "react": "^18.0.0", "react-dom": "^18.0.0" } }, "sha512-OFzSEiI8Kk5YJtyPFnAauRHXtjuTJHkWapvcagpMoTP0WvwBwGfr5AeIIgV2ONtA3edrfMGgmrJUK7pd61K/1Q=="], - - "@wordpress/primitives": ["@wordpress/primitives@3.56.0", "", { "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/element": "^5.35.0", "clsx": "^2.1.1" } }, "sha512-NXBq1ODjl6inMWx/l7KCbATcjdoeIOqYeL9i9alqdAfWeKx1EH9PIvKWylIkqZk7erXxCxldiRkuyjTtwjNBxw=="], - - "@wordpress/priority-queue": ["@wordpress/priority-queue@2.58.0", "", { "dependencies": { "@babel/runtime": "^7.16.0", "requestidlecallback": "^0.3.0" } }, "sha512-W+qCS8HJWsXG8gE6yK/H/IObowcghPrQMM3cQHtfd/U05yFNU1Bd/fbj3AO1fVRztktS47lIpi9m3ll1evPEHA=="], - - "@wordpress/private-apis": ["@wordpress/private-apis@0.40.0", "", { "dependencies": { "@babel/runtime": "^7.16.0" } }, "sha512-ZX/9Y8eA3C3K6LOj32bHFj+9tNV819CBd8+chqMmmlvQRcTngiuXbMbnSdZnnAr1gLQgNpH9PJ60dIwJnGSEtQ=="], - - "@wordpress/redux-routine": ["@wordpress/redux-routine@4.58.0", "", { "dependencies": { "@babel/runtime": "^7.16.0", "is-plain-object": "^5.0.0", "is-promise": "^4.0.0", "rungen": "^0.3.2" }, "peerDependencies": { "redux": ">=4" } }, "sha512-r0mMWFeJr93yPy2uY/M5+gdUUYj0Zu8+21OFFb5hyQ0z7UHIa3IdgQxzCaTbV1LDA1ZYJrjHeCnA6s4gNHjA2Q=="], - - "@wordpress/rich-text": ["@wordpress/rich-text@6.35.0", "", { "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/a11y": "^3.58.0", "@wordpress/compose": "^6.35.0", "@wordpress/data": "^9.28.0", "@wordpress/deprecated": "^3.58.0", "@wordpress/element": "^5.35.0", "@wordpress/escape-html": "^2.58.0", "@wordpress/i18n": "^4.58.0", "@wordpress/keycodes": "^3.58.0", "memize": "^2.1.0" }, "peerDependencies": { "react": "^18.0.0" } }, "sha512-h6/XftSqo9UQZebuNZyLfOVu+ButBLITW/BILsKeJhSpmM19VNdz8UhVGLp+xQPE+/GPCIMJrhhqipISDfc2Ig=="], - - "@wordpress/shortcode": ["@wordpress/shortcode@3.58.0", "", { "dependencies": { "@babel/runtime": "^7.16.0", "memize": "^2.0.1" } }, "sha512-yM3Y25XqLfz/X6xXowXbrTvk+tslKeALNNESI5nGt1X7wWPsYQDOqyBb1HT9TglSLFgWYlQlNtgEbz07dEiDgQ=="], - - "@wordpress/style-engine": ["@wordpress/style-engine@1.41.0", "", { "dependencies": { "@babel/runtime": "^7.16.0", "change-case": "^4.1.2" } }, "sha512-aM5bbJn6m8SHRotCoh/fSGuIB0MQJoVFBjpzIDoUDQ1KlO7CbY+fj9daDV1FZPMNv0h0ZEFWZ+y7Gv/CERypMA=="], - - "@wordpress/token-list": ["@wordpress/token-list@2.58.0", "", { "dependencies": { "@babel/runtime": "^7.16.0" } }, "sha512-xzNGzAZ87GERq7rZvZjMv742nj37tSLFBb8+c7oaLdpUpfn8YTaXQacvphdN2jmtfHvEZHivW7hErwqF9eQW/A=="], - - "@wordpress/undo-manager": ["@wordpress/undo-manager@0.18.0", "", { "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/is-shallow-equal": "^4.58.0" } }, "sha512-upbzPEToa095XG+2JXLHaolF1LfXEMFS0lNMYV37myoUS+eZ7/tl9Gx+yU2+OqWy57TMwx33NlWUX/n+ynzPRw=="], - - "@wordpress/url": ["@wordpress/url@3.59.0", "", { "dependencies": { "@babel/runtime": "^7.16.0", "remove-accents": "^0.5.0" } }, "sha512-GxvoMjYCav0w4CiX0i0h3qflrE/9rhLIZg5aPCQjbrBdwTxYR3Exfw0IJYcmVaTKXQOUU8fOxlDxULsbLmKe9w=="], - - "@wordpress/warning": ["@wordpress/warning@2.58.0", "", {}, "sha512-9bZlORhyMY2nbWozeyC5kqJsFzEPP4DCLhGmjtbv+YWGHttUrxUZEfrKdqO+rUODA8rP5zeIly1nCQOUnkw4Lg=="], - - "@wordpress/wordcount": ["@wordpress/wordcount@3.58.0", "", { "dependencies": { "@babel/runtime": "^7.16.0" } }, "sha512-cxmOOh8d4VeIC3B9HcqhlTQePmNkNrPeHQLj6xWHfC0Elflj+kYAjsTwkjVQ3tBMC4+mQzva1O8tFSVh02gs7w=="], + "@wordpress/dependency-extraction-webpack-plugin": ["@wordpress/dependency-extraction-webpack-plugin@6.36.0", "", { "dependencies": { "json2php": "^0.0.7" }, "peerDependencies": { "webpack": "^5.0.0" } }, "sha512-x59HhuZflt6gjm74m5ymuJgLsfvY0pwYhfy42SfrYN/V59vXkl5S6jEmzhlUsdDGVrQG6lSVDJm7n5btohPXvg=="], "@xtuc/ieee754": ["@xtuc/ieee754@1.2.0", "", {}, "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA=="], @@ -560,29 +373,33 @@ "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], - "aria-hidden": ["aria-hidden@1.2.6", "", { "dependencies": { "tslib": "^2.0.0" } }, "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA=="], + "array-buffer-byte-length": ["array-buffer-byte-length@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "is-array-buffer": "^3.0.5" } }, "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw=="], + + "array-includes": ["array-includes@3.1.9", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-abstract": "^1.24.0", "es-object-atoms": "^1.1.1", "get-intrinsic": "^1.3.0", "is-string": "^1.1.1", "math-intrinsics": "^1.1.0" } }, "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ=="], "array-union": ["array-union@2.1.0", "", {}, "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="], - "array-uniq": ["array-uniq@1.0.3", "", {}, "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q=="], + "array.prototype.findlast": ["array.prototype.findlast@1.2.5", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "es-shim-unscopables": "^1.0.2" } }, "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ=="], - "astral-regex": ["astral-regex@2.0.0", "", {}, "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ=="], + "array.prototype.flat": ["array.prototype.flat@1.3.3", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-shim-unscopables": "^1.0.2" } }, "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg=="], - "autoprefixer": ["autoprefixer@10.4.21", "", { "dependencies": { "browserslist": "^4.24.4", "caniuse-lite": "^1.0.30001702", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.1.0" }, "bin": { "autoprefixer": "bin/autoprefixer" } }, "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ=="], + "array.prototype.flatmap": ["array.prototype.flatmap@1.3.3", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-shim-unscopables": "^1.0.2" } }, "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg=="], - "autosize": ["autosize@6.0.1", "", {}, "sha512-f86EjiUKE6Xvczc4ioP1JBlWG7FKrE13qe/DxBCpe8GCipCq2nFw73aO8QEBKHfSbYGDN5eB9jXWKen7tspDqQ=="], + "array.prototype.tosorted": ["array.prototype.tosorted@1.1.4", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.3", "es-errors": "^1.3.0", "es-shim-unscopables": "^1.0.2" } }, "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA=="], - "babel-loader": ["babel-loader@9.2.1", "", { "dependencies": { "find-cache-dir": "^4.0.0", "schema-utils": "^4.0.0" }, "peerDependencies": { "@babel/core": "^7.12.0", "webpack": ">=5" } }, "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA=="], + "arraybuffer.prototype.slice": ["arraybuffer.prototype.slice@1.0.4", "", { "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "is-array-buffer": "^3.0.4" } }, "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ=="], - "babel-plugin-macros": ["babel-plugin-macros@3.1.0", "", { "dependencies": { "@babel/runtime": "^7.12.5", "cosmiconfig": "^7.0.0", "resolve": "^1.19.0" } }, "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg=="], + "astral-regex": ["astral-regex@2.0.0", "", {}, "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ=="], - "balanced-match": ["balanced-match@2.0.0", "", {}, "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA=="], + "async-function": ["async-function@1.0.0", "", {}, "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA=="], - "base64-js": ["base64-js@1.5.1", "", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="], + "autosize": ["autosize@6.0.1", "", {}, "sha512-f86EjiUKE6Xvczc4ioP1JBlWG7FKrE13qe/DxBCpe8GCipCq2nFw73aO8QEBKHfSbYGDN5eB9jXWKen7tspDqQ=="], - "baseline-browser-mapping": ["baseline-browser-mapping@2.8.32", "", { "bin": { "baseline-browser-mapping": "dist/cli.js" } }, "sha512-OPz5aBThlyLFgxyhdwf/s2+8ab3OvT7AdTNvKHBwpXomIYeXqpUUuT8LrdtxZSsWJ4R4CU1un4XGh5Ez3nlTpw=="], + "available-typed-arrays": ["available-typed-arrays@1.0.7", "", { "dependencies": { "possible-typed-array-names": "^1.0.0" } }, "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ=="], - "big.js": ["big.js@5.2.2", "", {}, "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ=="], + "balanced-match": ["balanced-match@2.0.0", "", {}, "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA=="], + + "baseline-browser-mapping": ["baseline-browser-mapping@2.9.7", "", { "bin": { "baseline-browser-mapping": "dist/cli.js" } }, "sha512-k9xFKplee6KIio3IDbwj+uaCLpqzOwakOgmqzPezM0sFJlFKcg30vk2wOiAJtkTSfx0SSQDSe8q+mWA/fSH5Zg=="], "boolbase": ["boolbase@1.0.0", "", {}, "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="], @@ -590,54 +407,36 @@ "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], - "browserslist": ["browserslist@4.26.3", "", { "dependencies": { "baseline-browser-mapping": "^2.8.9", "caniuse-lite": "^1.0.30001746", "electron-to-chromium": "^1.5.227", "node-releases": "^2.0.21", "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w=="], - - "buffer": ["buffer@6.0.3", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA=="], + "browserslist": ["browserslist@4.28.1", "", { "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", "electron-to-chromium": "^1.5.263", "node-releases": "^2.0.27", "update-browserslist-db": "^1.2.0" }, "bin": { "browserslist": "cli.js" } }, "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA=="], "buffer-from": ["buffer-from@1.1.2", "", {}, "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="], - "cacheable": ["cacheable@1.10.1", "", { "dependencies": { "hookified": "^1.10.0", "keyv": "^5.3.4" } }, "sha512-Fa2BZY0CS9F0PFc/6aVA6tgpOdw+hmv9dkZOlHXII5v5Hw+meJBIWDcPrG9q/dXxGcNbym5t77fzmawrBQfTmQ=="], + "cacheable": ["cacheable@2.3.0", "", { "dependencies": { "@cacheable/memory": "^2.0.6", "@cacheable/utils": "^2.3.2", "hookified": "^1.13.0", "keyv": "^5.5.4", "qified": "^0.5.2" } }, "sha512-HHiAvOBmlcR2f3SQ7kdlYD8+AUJG+wlFZ/Ze8tl1Vzvz0MdOh8IYA/EFU4ve8t1/sZ0j4MGi7ST5MoTwHessQA=="], - "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], + "call-bind": ["call-bind@1.0.8", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", "get-intrinsic": "^1.2.4", "set-function-length": "^1.2.2" } }, "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww=="], - "camel-case": ["camel-case@4.1.2", "", { "dependencies": { "pascal-case": "^3.1.2", "tslib": "^2.0.3" } }, "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw=="], + "call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="], - "camelcase": ["camelcase@5.3.1", "", {}, "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="], + "call-bound": ["call-bound@1.0.4", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" } }, "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="], - "caniuse-api": ["caniuse-api@3.0.0", "", { "dependencies": { "browserslist": "^4.0.0", "caniuse-lite": "^1.0.0", "lodash.memoize": "^4.1.2", "lodash.uniq": "^4.5.0" } }, "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw=="], + "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], - "caniuse-lite": ["caniuse-lite@1.0.30001757", "", {}, "sha512-r0nnL/I28Zi/yjk1el6ilj27tKcdjLsNqAOZr0yVjWPrSQyHgKI2INaEWw21bAQSv2LXRt1XuCS/GomNpWOxsQ=="], + "caniuse-api": ["caniuse-api@3.0.0", "", { "dependencies": { "browserslist": "^4.0.0", "caniuse-lite": "^1.0.0", "lodash.memoize": "^4.1.2", "lodash.uniq": "^4.5.0" } }, "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw=="], - "capital-case": ["capital-case@1.0.4", "", { "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", "upper-case-first": "^2.0.2" } }, "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A=="], + "caniuse-lite": ["caniuse-lite@1.0.30001760", "", {}, "sha512-7AAMPcueWELt1p3mi13HR/LHH0TJLT11cnwDJEs3xA4+CK/PLKeO9Kl1oru24htkyUKtkGCvAx4ohB0Ttry8Dw=="], "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "change-case": ["change-case@4.1.2", "", { "dependencies": { "camel-case": "^4.1.2", "capital-case": "^1.0.4", "constant-case": "^3.0.4", "dot-case": "^3.0.4", "header-case": "^2.0.4", "no-case": "^3.0.4", "param-case": "^3.0.4", "pascal-case": "^3.1.2", "path-case": "^3.0.4", "sentence-case": "^3.0.4", "snake-case": "^3.0.4", "tslib": "^2.0.3" } }, "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A=="], - "choices.js": ["choices.js@11.1.0", "", { "dependencies": { "fuse.js": "^7.0.0" } }, "sha512-mIt0uLhedHg2ea/K2PACrVpt391vRGHuOoctPAiHcyemezwzNMxj7jOzNEk8e7EbjLh0S0sspDkSCADOKz9kcw=="], - "chokidar": ["chokidar@4.0.3", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="], - "chrome-trace-event": ["chrome-trace-event@1.0.4", "", {}, "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ=="], - "ci-info": ["ci-info@3.9.0", "", {}, "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ=="], + "ci-info": ["ci-info@4.3.1", "", {}, "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA=="], "classcat": ["classcat@5.0.5", "", {}, "sha512-JhZUT7JFcQy/EzW605k/ktHtncoo9vnyW/2GspNYwFlN1C/WmjuV/xtS04e9SOkL2sTdw0VAZ2UGCcQ9lR6p6w=="], - "classnames": ["classnames@2.5.1", "", {}, "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow=="], - - "clean-webpack-plugin": ["clean-webpack-plugin@4.0.0", "", { "dependencies": { "del": "^4.1.1" }, "peerDependencies": { "webpack": ">=4.0.0 <6.0.0" } }, "sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w=="], - - "clipboard": ["clipboard@2.0.11", "", { "dependencies": { "good-listener": "^1.2.2", "select": "^1.1.2", "tiny-emitter": "^2.0.0" } }, "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw=="], - - "cliui": ["cliui@5.0.0", "", { "dependencies": { "string-width": "^3.1.0", "strip-ansi": "^5.2.0", "wrap-ansi": "^5.1.0" } }, "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA=="], - "clone-deep": ["clone-deep@4.0.1", "", { "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", "shallow-clone": "^3.0.0" } }, "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ=="], - "clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="], - - "cmdk": ["cmdk@0.2.1", "", { "dependencies": { "@radix-ui/react-dialog": "1.0.0" }, "peerDependencies": { "react": "^18.0.0", "react-dom": "^18.0.0" } }, "sha512-U6//9lQ6JvT47+6OF6Gi8BvkxYQ8SCRRSKIJkthIMsFsLZRG0cKvTtuTaefyIKMQb8rvvXy0wGdpTNq/jPtm+g=="], - "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], @@ -648,31 +447,21 @@ "commander": ["commander@12.1.0", "", {}, "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA=="], - "common-path-prefix": ["common-path-prefix@3.0.0", "", {}, "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w=="], - - "compute-scroll-into-view": ["compute-scroll-into-view@1.0.20", "", {}, "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg=="], - - "computed-style": ["computed-style@0.1.4", "", {}, "sha512-WpAmaKbMNmS3OProfHIdJiNleNJdgUrJfbKArXua28QF7+0CoZjlLn0lp6vlc+dl5r2/X9GQiQRQQU4BzSa69w=="], - "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], - "constant-case": ["constant-case@3.0.4", "", { "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", "upper-case": "^2.0.2" } }, "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ=="], - "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], - "core-js": ["core-js@3.44.0", "", {}, "sha512-aFCtd4l6GvAXwVEh3XbbVqJGHDJt0OZRa+5ePGx3LLwi12WfexqQxcsohb2wgsa/92xtl19Hd66G/L+TaAxDMw=="], - "cosmiconfig": ["cosmiconfig@9.0.0", "", { "dependencies": { "env-paths": "^2.2.1", "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", "parse-json": "^5.2.0" }, "peerDependencies": { "typescript": ">=4.9.5" }, "optionalPeers": ["typescript"] }, "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg=="], "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], - "css-declaration-sorter": ["css-declaration-sorter@7.2.0", "", { "peerDependencies": { "postcss": "^8.0.9" } }, "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow=="], + "css-declaration-sorter": ["css-declaration-sorter@7.3.0", "", { "peerDependencies": { "postcss": "^8.0.9" } }, "sha512-LQF6N/3vkAMYF4xoHLJfG718HRJh34Z8BnNhd6bosOMIVjMlhuZK5++oZa3uYAgrI5+7x2o27gUqTR2U/KjUOQ=="], "css-functions-list": ["css-functions-list@3.2.3", "", {}, "sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA=="], "css-loader": ["css-loader@7.1.2", "", { "dependencies": { "icss-utils": "^5.1.0", "postcss": "^8.4.33", "postcss-modules-extract-imports": "^3.1.0", "postcss-modules-local-by-default": "^4.0.5", "postcss-modules-scope": "^3.2.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", "semver": "^7.5.4" }, "peerDependencies": { "@rspack/core": "0.x || 1.x", "webpack": "^5.27.0" }, "optionalPeers": ["@rspack/core", "webpack"] }, "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA=="], - "css-minimizer-webpack-plugin": ["css-minimizer-webpack-plugin@7.0.2", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "cssnano": "^7.0.4", "jest-worker": "^29.7.0", "postcss": "^8.4.40", "schema-utils": "^4.2.0", "serialize-javascript": "^6.0.2" }, "peerDependencies": { "webpack": "^5.0.0" } }, "sha512-nBRWZtI77PBZQgcXMNqiIXVshiQOVLGSf2qX/WZfG8IQfMbeHUMXaBWQmiiSTmPJUflQxHjZjzAmuyO7tpL2Jg=="], + "css-minimizer-webpack-plugin": ["css-minimizer-webpack-plugin@7.0.4", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "cssnano": "^7.0.4", "jest-worker": "^30.0.5", "postcss": "^8.4.40", "schema-utils": "^4.2.0", "serialize-javascript": "^6.0.2" }, "peerDependencies": { "webpack": "^5.0.0" } }, "sha512-2iACis+P8qdLj1tHcShtztkGhCNIRUajJj7iX0IM9a5FA0wXGwjV8Nf6+HsBjBfb4LO8TTAVoetBbM54V6f3+Q=="], "css-select": ["css-select@5.2.2", "", { "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", "domhandler": "^5.0.2", "domutils": "^3.0.1", "nth-check": "^2.0.1" } }, "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw=="], @@ -682,16 +471,14 @@ "cssesc": ["cssesc@3.0.0", "", { "bin": { "cssesc": "bin/cssesc" } }, "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="], - "cssnano": ["cssnano@7.1.0", "", { "dependencies": { "cssnano-preset-default": "^7.0.8", "lilconfig": "^3.1.3" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-Pu3rlKkd0ZtlCUzBrKL1Z4YmhKppjC1H9jo7u1o4qaKqyhvixFgu5qLyNIAOjSTg9DjVPtUqdROq2EfpVMEe+w=="], + "cssnano": ["cssnano@7.1.2", "", { "dependencies": { "cssnano-preset-default": "^7.0.10", "lilconfig": "^3.1.3" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-HYOPBsNvoiFeR1eghKD5C3ASm64v9YVyJB4Ivnl2gqKoQYvjjN/G0rztvKQq8OxocUtC6sjqY8jwYngIB4AByA=="], - "cssnano-preset-default": ["cssnano-preset-default@7.0.8", "", { "dependencies": { "browserslist": "^4.25.1", "css-declaration-sorter": "^7.2.0", "cssnano-utils": "^5.0.1", "postcss-calc": "^10.1.1", "postcss-colormin": "^7.0.4", "postcss-convert-values": "^7.0.6", "postcss-discard-comments": "^7.0.4", "postcss-discard-duplicates": "^7.0.2", "postcss-discard-empty": "^7.0.1", "postcss-discard-overridden": "^7.0.1", "postcss-merge-longhand": "^7.0.5", "postcss-merge-rules": "^7.0.6", "postcss-minify-font-values": "^7.0.1", "postcss-minify-gradients": "^7.0.1", "postcss-minify-params": "^7.0.4", "postcss-minify-selectors": "^7.0.5", "postcss-normalize-charset": "^7.0.1", "postcss-normalize-display-values": "^7.0.1", "postcss-normalize-positions": "^7.0.1", "postcss-normalize-repeat-style": "^7.0.1", "postcss-normalize-string": "^7.0.1", "postcss-normalize-timing-functions": "^7.0.1", "postcss-normalize-unicode": "^7.0.4", "postcss-normalize-url": "^7.0.1", "postcss-normalize-whitespace": "^7.0.1", "postcss-ordered-values": "^7.0.2", "postcss-reduce-initial": "^7.0.4", "postcss-reduce-transforms": "^7.0.1", "postcss-svgo": "^7.1.0", "postcss-unique-selectors": "^7.0.4" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-d+3R2qwrUV3g4LEMOjnndognKirBZISylDZAF/TPeCWVjEwlXS2e4eN4ICkoobRe7pD3H6lltinKVyS1AJhdjQ=="], + "cssnano-preset-default": ["cssnano-preset-default@7.0.10", "", { "dependencies": { "browserslist": "^4.27.0", "css-declaration-sorter": "^7.2.0", "cssnano-utils": "^5.0.1", "postcss-calc": "^10.1.1", "postcss-colormin": "^7.0.5", "postcss-convert-values": "^7.0.8", "postcss-discard-comments": "^7.0.5", "postcss-discard-duplicates": "^7.0.2", "postcss-discard-empty": "^7.0.1", "postcss-discard-overridden": "^7.0.1", "postcss-merge-longhand": "^7.0.5", "postcss-merge-rules": "^7.0.7", "postcss-minify-font-values": "^7.0.1", "postcss-minify-gradients": "^7.0.1", "postcss-minify-params": "^7.0.5", "postcss-minify-selectors": "^7.0.5", "postcss-normalize-charset": "^7.0.1", "postcss-normalize-display-values": "^7.0.1", "postcss-normalize-positions": "^7.0.1", "postcss-normalize-repeat-style": "^7.0.1", "postcss-normalize-string": "^7.0.1", "postcss-normalize-timing-functions": "^7.0.1", "postcss-normalize-unicode": "^7.0.5", "postcss-normalize-url": "^7.0.1", "postcss-normalize-whitespace": "^7.0.1", "postcss-ordered-values": "^7.0.2", "postcss-reduce-initial": "^7.0.5", "postcss-reduce-transforms": "^7.0.1", "postcss-svgo": "^7.1.0", "postcss-unique-selectors": "^7.0.4" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-6ZBjW0Lf1K1Z+0OKUAUpEN62tSXmYChXWi2NAA0afxEVsj9a+MbcB1l5qel6BHJHmULai2fCGRthCeKSFbScpA=="], "cssnano-utils": ["cssnano-utils@5.0.1", "", { "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-ZIP71eQgG9JwjVZsTPSqhc6GHgEr53uJ7tK5///VfyWj6Xp2DBmixWHqJgPno+PqATzn48pL42ww9x5SSGmhZg=="], "csso": ["csso@5.0.5", "", { "dependencies": { "css-tree": "~2.2.0" } }, "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ=="], - "csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="], - "d3-color": ["d3-color@3.1.0", "", {}, "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA=="], "d3-dispatch": ["d3-dispatch@3.0.1", "", {}, "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg=="], @@ -710,29 +497,25 @@ "d3-zoom": ["d3-zoom@3.0.0", "", { "dependencies": { "d3-dispatch": "1 - 3", "d3-drag": "2 - 3", "d3-interpolate": "1 - 3", "d3-selection": "2 - 3", "d3-transition": "2 - 3" } }, "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw=="], - "date-fns": ["date-fns@3.6.0", "", {}, "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww=="], + "data-view-buffer": ["data-view-buffer@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-data-view": "^1.0.2" } }, "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ=="], - "debug": ["debug@4.4.1", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ=="], - - "decamelize": ["decamelize@1.2.0", "", {}, "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA=="], - - "deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="], + "data-view-byte-length": ["data-view-byte-length@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-data-view": "^1.0.2" } }, "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ=="], - "deepmerge": ["deepmerge@4.3.1", "", {}, "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="], + "data-view-byte-offset": ["data-view-byte-offset@1.0.1", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" } }, "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ=="], - "del": ["del@4.1.1", "", { "dependencies": { "@types/glob": "^7.1.1", "globby": "^6.1.0", "is-path-cwd": "^2.0.0", "is-path-in-cwd": "^2.0.0", "p-map": "^2.0.0", "pify": "^4.0.1", "rimraf": "^2.6.3" } }, "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ=="], + "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], - "delegate": ["delegate@3.2.0", "", {}, "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw=="], + "deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="], - "detect-libc": ["detect-libc@1.0.3", "", { "bin": { "detect-libc": "./bin/detect-libc.js" } }, "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg=="], + "define-data-property": ["define-data-property@1.1.4", "", { "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "gopd": "^1.0.1" } }, "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A=="], - "detect-node-es": ["detect-node-es@1.1.0", "", {}, "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ=="], + "define-properties": ["define-properties@1.2.1", "", { "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } }, "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg=="], - "diff": ["diff@4.0.2", "", {}, "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A=="], + "detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], "dir-glob": ["dir-glob@3.0.1", "", { "dependencies": { "path-type": "^4.0.0" } }, "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA=="], - "dom-helpers": ["dom-helpers@5.2.1", "", { "dependencies": { "@babel/runtime": "^7.8.7", "csstype": "^3.0.2" } }, "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA=="], + "doctrine": ["doctrine@2.1.0", "", { "dependencies": { "esutils": "^2.0.2" } }, "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw=="], "dom-serializer": ["dom-serializer@2.0.0", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", "entities": "^4.2.0" } }, "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg=="], @@ -742,39 +525,55 @@ "domutils": ["domutils@3.2.2", "", { "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3" } }, "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw=="], - "dot-case": ["dot-case@3.0.4", "", { "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" } }, "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w=="], - - "downshift": ["downshift@6.1.12", "", { "dependencies": { "@babel/runtime": "^7.14.8", "compute-scroll-into-view": "^1.0.17", "prop-types": "^15.7.2", "react-is": "^17.0.2", "tslib": "^2.3.0" }, "peerDependencies": { "react": ">=16.12.0" } }, "sha512-7XB/iaSJVS4T8wGFT3WRXmSF1UlBHAA40DshZtkrIscIN+VC+Lh363skLxFTvJwtNgHxAMDGEHT4xsyQFWL+UA=="], - "dropzone": ["dropzone@6.0.0-beta.2", "", { "dependencies": { "@swc/helpers": "^0.2.13", "just-extend": "^5.0.0" } }, "sha512-k44yLuFFhRk53M8zP71FaaNzJYIzr99SKmpbO/oZKNslDjNXQsBTdfLs+iONd0U0L94zzlFzRnFdqbLcs7h9fQ=="], - "electron-to-chromium": ["electron-to-chromium@1.5.235", "", {}, "sha512-i/7ntLFwOdoHY7sgjlTIDo4Sl8EdoTjWIaKinYOVfC6bOp71bmwenyZthWHcasxgHDNWbWxvG9M3Ia116zIaYQ=="], + "dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="], - "emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], + "electron-to-chromium": ["electron-to-chromium@1.5.267", "", {}, "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw=="], - "emojis-list": ["emojis-list@3.0.0", "", {}, "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q=="], - - "encoding": ["encoding@0.1.13", "", { "dependencies": { "iconv-lite": "^0.6.2" } }, "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A=="], + "emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], - "enhanced-resolve": ["enhanced-resolve@5.18.2", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, "sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ=="], + "enhanced-resolve": ["enhanced-resolve@5.18.4", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, "sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q=="], "entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], "env-paths": ["env-paths@2.2.1", "", {}, "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A=="], - "envinfo": ["envinfo@7.14.0", "", { "bin": { "envinfo": "dist/cli.js" } }, "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg=="], + "envinfo": ["envinfo@7.21.0", "", { "bin": { "envinfo": "dist/cli.js" } }, "sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow=="], + + "error-ex": ["error-ex@1.3.4", "", { "dependencies": { "is-arrayish": "^0.2.1" } }, "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ=="], - "equivalent-key-map": ["equivalent-key-map@0.2.2", "", {}, "sha512-xvHeyCDbZzkpN4VHQj/n+j2lOwL0VWszG30X4cOrc9Y7Tuo2qCdZK/0AMod23Z5dCtNUbaju6p0rwOhHUk05ew=="], + "es-abstract": ["es-abstract@1.24.1", "", { "dependencies": { "array-buffer-byte-length": "^1.0.2", "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", "data-view-buffer": "^1.0.2", "data-view-byte-length": "^1.0.2", "data-view-byte-offset": "^1.0.1", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "es-set-tostringtag": "^2.1.0", "es-to-primitive": "^1.3.0", "function.prototype.name": "^1.1.8", "get-intrinsic": "^1.3.0", "get-proto": "^1.0.1", "get-symbol-description": "^1.1.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", "has-proto": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "internal-slot": "^1.1.0", "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", "is-data-view": "^1.0.2", "is-negative-zero": "^2.0.3", "is-regex": "^1.2.1", "is-set": "^2.0.3", "is-shared-array-buffer": "^1.0.4", "is-string": "^1.1.1", "is-typed-array": "^1.1.15", "is-weakref": "^1.1.1", "math-intrinsics": "^1.1.0", "object-inspect": "^1.13.4", "object-keys": "^1.1.1", "object.assign": "^4.1.7", "own-keys": "^1.0.1", "regexp.prototype.flags": "^1.5.4", "safe-array-concat": "^1.1.3", "safe-push-apply": "^1.0.0", "safe-regex-test": "^1.1.0", "set-proto": "^1.0.0", "stop-iteration-iterator": "^1.1.0", "string.prototype.trim": "^1.2.10", "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", "typed-array-buffer": "^1.0.3", "typed-array-byte-length": "^1.0.3", "typed-array-byte-offset": "^1.0.4", "typed-array-length": "^1.0.7", "unbox-primitive": "^1.1.0", "which-typed-array": "^1.1.19" } }, "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw=="], - "error-ex": ["error-ex@1.3.2", "", { "dependencies": { "is-arrayish": "^0.2.1" } }, "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g=="], + "es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="], + + "es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="], + + "es-iterator-helpers": ["es-iterator-helpers@1.2.2", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-abstract": "^1.24.1", "es-errors": "^1.3.0", "es-set-tostringtag": "^2.1.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.3.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", "has-proto": "^1.2.0", "has-symbols": "^1.1.0", "internal-slot": "^1.1.0", "iterator.prototype": "^1.1.5", "safe-array-concat": "^1.1.3" } }, "sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w=="], "es-module-lexer": ["es-module-lexer@1.7.0", "", {}, "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA=="], + "es-object-atoms": ["es-object-atoms@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="], + + "es-set-tostringtag": ["es-set-tostringtag@2.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA=="], + + "es-shim-unscopables": ["es-shim-unscopables@1.1.0", "", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw=="], + + "es-to-primitive": ["es-to-primitive@1.3.0", "", { "dependencies": { "is-callable": "^1.2.7", "is-date-object": "^1.0.5", "is-symbol": "^1.0.4" } }, "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g=="], + "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], "escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="], - "eslint": ["eslint@9.31.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.0", "@eslint/config-helpers": "^0.3.0", "@eslint/core": "^0.15.0", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "9.31.0", "@eslint/plugin-kit": "^0.3.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.4.0", "eslint-visitor-keys": "^4.2.1", "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-QldCVh/ztyKJJZLr4jXNUByx3gR+TDYZCRXEktiZoUR3PGy4qCmSbkxcIle8GEwGpb5JBZazlaJ/CxLidXdEbQ=="], + "eslint": ["eslint@9.39.2", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.1", "@eslint/config-helpers": "^0.4.2", "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "9.39.2", "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.4.0", "eslint-visitor-keys": "^4.2.1", "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw=="], + + "eslint-config-prettier": ["eslint-config-prettier@10.1.8", "", { "peerDependencies": { "eslint": ">=7.0.0" }, "bin": { "eslint-config-prettier": "bin/cli.js" } }, "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w=="], + + "eslint-plugin-prettier": ["eslint-plugin-prettier@5.5.4", "", { "dependencies": { "prettier-linter-helpers": "^1.0.0", "synckit": "^0.11.7" }, "peerDependencies": { "@types/eslint": ">=8.0.0", "eslint": ">=8.0.0", "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", "prettier": ">=3.0.0" }, "optionalPeers": ["@types/eslint", "eslint-config-prettier"] }, "sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg=="], + + "eslint-plugin-react": ["eslint-plugin-react@7.37.5", "", { "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", "array.prototype.flatmap": "^1.3.3", "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", "es-iterator-helpers": "^1.2.1", "estraverse": "^5.3.0", "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.9", "object.fromentries": "^2.0.8", "object.values": "^1.2.1", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", "semver": "^6.3.1", "string.prototype.matchall": "^4.0.12", "string.prototype.repeat": "^1.0.0" }, "peerDependencies": { "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA=="], + + "eslint-plugin-react-hooks": ["eslint-plugin-react-hooks@7.0.1", "", { "dependencies": { "@babel/core": "^7.24.4", "@babel/parser": "^7.24.4", "hermes-parser": "^0.25.1", "zod": "^3.25.0 || ^4.0.0", "zod-validation-error": "^3.5.0 || ^4.0.0" }, "peerDependencies": { "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, "sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA=="], "eslint-scope": ["eslint-scope@5.1.1", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw=="], @@ -794,13 +593,15 @@ "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], + "fast-diff": ["fast-diff@1.3.0", "", {}, "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw=="], + "fast-glob": ["fast-glob@3.3.3", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="], "fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="], "fast-levenshtein": ["fast-levenshtein@2.0.6", "", {}, "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="], - "fast-uri": ["fast-uri@3.0.6", "", {}, "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw=="], + "fast-uri": ["fast-uri@3.1.0", "", {}, "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA=="], "fastest-levenshtein": ["fastest-levenshtein@1.0.16", "", {}, "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg=="], @@ -808,14 +609,8 @@ "file-entry-cache": ["file-entry-cache@8.0.0", "", { "dependencies": { "flat-cache": "^4.0.0" } }, "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ=="], - "file-loader": ["file-loader@6.2.0", "", { "dependencies": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0" }, "peerDependencies": { "webpack": "^4.0.0 || ^5.0.0" } }, "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw=="], - "fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="], - "find-cache-dir": ["find-cache-dir@4.0.0", "", { "dependencies": { "common-path-prefix": "^3.0.0", "pkg-dir": "^7.0.0" } }, "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg=="], - - "find-root": ["find-root@1.1.0", "", {}, "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng=="], - "find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="], "flat": ["flat@5.0.2", "", { "bin": { "flat": "cli.js" } }, "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ=="], @@ -826,27 +621,29 @@ "flatted": ["flatted@3.3.3", "", {}, "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg=="], - "fraction.js": ["fraction.js@4.3.7", "", {}, "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew=="], + "for-each": ["for-each@0.3.5", "", { "dependencies": { "is-callable": "^1.2.7" } }, "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg=="], - "framer-motion": ["framer-motion@11.18.2", "", { "dependencies": { "motion-dom": "^11.18.1", "motion-utils": "^11.18.1", "tslib": "^2.4.0" }, "peerDependencies": { "@emotion/is-prop-valid": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@emotion/is-prop-valid", "react", "react-dom"] }, "sha512-5F5Och7wrvtLVElIpclDT0CBzMVg3dL22B64aZwHtsIY8RB4mXICLrkajK4G9R+ieSAGcgrLeae2SeUTg2pr6w=="], - - "fs.realpath": ["fs.realpath@1.0.0", "", {}, "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="], + "framer-motion": ["framer-motion@12.23.26", "", { "dependencies": { "motion-dom": "^12.23.23", "motion-utils": "^12.23.6", "tslib": "^2.4.0" }, "peerDependencies": { "@emotion/is-prop-valid": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@emotion/is-prop-valid", "react", "react-dom"] }, "sha512-cPcIhgR42xBn1Uj+PzOyheMtZ73H927+uWPDVhUMqxy8UHt6Okavb6xIz9J/phFUHUj0OncR6UvMfJTXoc/LKA=="], "fsevents": ["fsevents@2.3.2", "", { "os": "darwin" }, "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA=="], "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="], + "function.prototype.name": ["function.prototype.name@1.1.8", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "functions-have-names": "^1.2.3", "hasown": "^2.0.2", "is-callable": "^1.2.7" } }, "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q=="], + + "functions-have-names": ["functions-have-names@1.2.3", "", {}, "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="], + "fuse.js": ["fuse.js@7.1.0", "", {}, "sha512-trLf4SzuuUxfusZADLINj+dE8clK1frKdmqiJNb1Es75fmI5oY6X2mxLVUciLLjxqw/xr72Dhy+lER6dGd02FQ=="], - "gensync": ["gensync@1.0.0-beta.2", "", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="], + "generator-function": ["generator-function@2.0.1", "", {}, "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g=="], - "get-caller-file": ["get-caller-file@2.0.5", "", {}, "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="], + "gensync": ["gensync@1.0.0-beta.2", "", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="], - "get-nonce": ["get-nonce@1.0.1", "", {}, "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q=="], + "get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="], - "gettext-parser": ["gettext-parser@1.4.0", "", { "dependencies": { "encoding": "^0.1.12", "safe-buffer": "^5.1.1" } }, "sha512-sedZYLHlHeBop/gZ1jdg59hlUEcpcZJofLq2JFwJT1zTqAU3l2wFv6IsuwFHGqbiT9DWzMUW4/em2+hspnmMMA=="], + "get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="], - "glob": ["glob@5.0.15", "", { "dependencies": { "inflight": "^1.0.4", "inherits": "2", "minimatch": "2 || 3", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA=="], + "get-symbol-description": ["get-symbol-description@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6" } }, "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg=="], "glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], @@ -856,97 +653,135 @@ "global-prefix": ["global-prefix@3.0.0", "", { "dependencies": { "ini": "^1.3.5", "kind-of": "^6.0.2", "which": "^1.3.1" } }, "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg=="], - "globals": ["globals@15.15.0", "", {}, "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg=="], + "globals": ["globals@16.5.0", "", {}, "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ=="], + + "globalthis": ["globalthis@1.0.4", "", { "dependencies": { "define-properties": "^1.2.1", "gopd": "^1.0.1" } }, "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ=="], "globby": ["globby@11.1.0", "", { "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", "fast-glob": "^3.2.9", "ignore": "^5.2.0", "merge2": "^1.4.1", "slash": "^3.0.0" } }, "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g=="], "globjoin": ["globjoin@0.1.4", "", {}, "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg=="], - "good-listener": ["good-listener@1.2.2", "", { "dependencies": { "delegate": "^3.1.2" } }, "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw=="], + "gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="], "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], - "gradient-parser": ["gradient-parser@0.1.5", "", {}, "sha512-+uPlcVbjrKOnTzvz0MjTj7BfACj8OmxIa1moIjJV7btvhUMSJk0D47RfDCgDrZE3dYMz9Cf5xKJwnrKLjUq0KQ=="], + "has-bigints": ["has-bigints@1.1.0", "", {}, "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg=="], "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], - "hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="], + "has-property-descriptors": ["has-property-descriptors@1.0.2", "", { "dependencies": { "es-define-property": "^1.0.0" } }, "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg=="], - "header-case": ["header-case@2.0.4", "", { "dependencies": { "capital-case": "^1.0.4", "tslib": "^2.0.3" } }, "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q=="], + "has-proto": ["has-proto@1.2.0", "", { "dependencies": { "dunder-proto": "^1.0.0" } }, "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ=="], - "highlight-words-core": ["highlight-words-core@1.2.3", "", {}, "sha512-m1O9HW3/GNHxzSIXWw1wCNXXsgLlxrP0OI6+ycGUhiUHkikqW3OrwVHz+lxeNBe5yqLESdIcj8PowHQ2zLvUvQ=="], + "has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="], - "hoist-non-react-statics": ["hoist-non-react-statics@3.3.2", "", { "dependencies": { "react-is": "^16.7.0" } }, "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw=="], + "has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="], - "hookified": ["hookified@1.10.0", "", {}, "sha512-dJw0492Iddsj56U1JsSTm9E/0B/29a1AuoSLRAte8vQg/kaTGF3IgjEWT8c8yG4cC10+HisE1x5QAwR0Xwc+DA=="], + "hashery": ["hashery@1.3.0", "", { "dependencies": { "hookified": "^1.13.0" } }, "sha512-fWltioiy5zsSAs9ouEnvhsVJeAXRybGCNNv0lvzpzNOSDbULXRy7ivFWwCCv4I5Am6kSo75hmbsCduOoc2/K4w=="], - "hpq": ["hpq@1.4.0", "", {}, "sha512-ycJQMRaRPBcfnoT1gS5I1XCvbbw9KO94Y0vkwksuOjcJMqNZtb03MF2tCItLI2mQbkZWSSeFinoRDPmjzv4tKg=="], + "hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="], + + "hermes-estree": ["hermes-estree@0.25.1", "", {}, "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw=="], + + "hermes-parser": ["hermes-parser@0.25.1", "", { "dependencies": { "hermes-estree": "0.25.1" } }, "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA=="], + + "hookified": ["hookified@1.14.0", "", {}, "sha512-pi1ynXIMFx/uIIwpWJ/5CEtOHLGtnUB0WhGeeYT+fKcQ+WCQbm3/rrkAXnpfph++PgepNqPdTC2WTj8A6k6zoQ=="], "html-tags": ["html-tags@3.3.1", "", {}, "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ=="], "husky": ["husky@9.1.7", "", { "bin": { "husky": "bin.js" } }, "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA=="], - "iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="], - "icss-utils": ["icss-utils@5.1.0", "", { "peerDependencies": { "postcss": "^8.1.0" } }, "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA=="], - "ieee754": ["ieee754@1.2.1", "", {}, "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="], - "ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], - "immutable": ["immutable@5.1.3", "", {}, "sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg=="], - "import-fresh": ["import-fresh@3.3.1", "", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ=="], - "import-glob": ["import-glob@1.5.0", "", { "dependencies": { "glob": "^5.0.13" } }, "sha512-Xz84PoAQ+NIXFxdhUiMAqrrS8qws6CpGfo81C/9CL8JgRaAJEttJJtvjhcZJIEeYvT9rzFQ3+9x9koSqwoE36w=="], - "import-local": ["import-local@3.2.0", "", { "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" }, "bin": { "import-local-fixture": "fixtures/cli.js" } }, "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA=="], "imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="], - "inflight": ["inflight@1.0.6", "", { "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="], - - "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], - "ini": ["ini@1.3.8", "", {}, "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="], + "internal-slot": ["internal-slot@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.2", "side-channel": "^1.1.0" } }, "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw=="], + "interpret": ["interpret@3.1.1", "", {}, "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ=="], + "is-array-buffer": ["is-array-buffer@3.0.5", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A=="], + "is-arrayish": ["is-arrayish@0.2.1", "", {}, "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="], + "is-async-function": ["is-async-function@2.1.1", "", { "dependencies": { "async-function": "^1.0.0", "call-bound": "^1.0.3", "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" } }, "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ=="], + + "is-bigint": ["is-bigint@1.1.0", "", { "dependencies": { "has-bigints": "^1.0.2" } }, "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ=="], + + "is-boolean-object": ["is-boolean-object@1.2.2", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A=="], + + "is-callable": ["is-callable@1.2.7", "", {}, "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="], + "is-core-module": ["is-core-module@2.16.1", "", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w=="], + "is-data-view": ["is-data-view@1.0.2", "", { "dependencies": { "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", "is-typed-array": "^1.1.13" } }, "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw=="], + + "is-date-object": ["is-date-object@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" } }, "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg=="], + "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], + "is-finalizationregistry": ["is-finalizationregistry@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg=="], + "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="], + "is-generator-function": ["is-generator-function@1.1.2", "", { "dependencies": { "call-bound": "^1.0.4", "generator-function": "^2.0.0", "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" } }, "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA=="], + "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], - "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="], + "is-map": ["is-map@2.0.3", "", {}, "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw=="], - "is-path-cwd": ["is-path-cwd@2.2.0", "", {}, "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ=="], + "is-negative-zero": ["is-negative-zero@2.0.3", "", {}, "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw=="], - "is-path-in-cwd": ["is-path-in-cwd@2.1.0", "", { "dependencies": { "is-path-inside": "^2.1.0" } }, "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ=="], + "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="], - "is-path-inside": ["is-path-inside@2.1.0", "", { "dependencies": { "path-is-inside": "^1.0.2" } }, "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg=="], + "is-number-object": ["is-number-object@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw=="], "is-plain-object": ["is-plain-object@5.0.0", "", {}, "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q=="], - "is-promise": ["is-promise@4.0.0", "", {}, "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ=="], + "is-regex": ["is-regex@1.2.1", "", { "dependencies": { "call-bound": "^1.0.2", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g=="], + + "is-set": ["is-set@2.0.3", "", {}, "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg=="], + + "is-shared-array-buffer": ["is-shared-array-buffer@1.0.4", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A=="], + + "is-string": ["is-string@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA=="], + + "is-symbol": ["is-symbol@1.1.1", "", { "dependencies": { "call-bound": "^1.0.2", "has-symbols": "^1.1.0", "safe-regex-test": "^1.1.0" } }, "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w=="], + + "is-typed-array": ["is-typed-array@1.1.15", "", { "dependencies": { "which-typed-array": "^1.1.16" } }, "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ=="], + + "is-weakmap": ["is-weakmap@2.0.2", "", {}, "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w=="], + + "is-weakref": ["is-weakref@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew=="], + + "is-weakset": ["is-weakset@2.0.4", "", { "dependencies": { "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ=="], + + "isarray": ["isarray@2.0.5", "", {}, "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="], "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], "isobject": ["isobject@3.0.1", "", {}, "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg=="], - "jest-util": ["jest-util@29.7.0", "", { "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", "graceful-fs": "^4.2.9", "picomatch": "^2.2.3" } }, "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA=="], + "iterator.prototype": ["iterator.prototype@1.1.5", "", { "dependencies": { "define-data-property": "^1.1.4", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.6", "get-proto": "^1.0.0", "has-symbols": "^1.1.0", "set-function-name": "^2.0.2" } }, "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g=="], + + "jest-regex-util": ["jest-regex-util@30.0.1", "", {}, "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA=="], + + "jest-util": ["jest-util@30.2.0", "", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], "jest-worker": ["jest-worker@27.5.1", "", { "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" } }, "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg=="], - "jiti": ["jiti@1.21.7", "", { "bin": { "jiti": "bin/jiti.js" } }, "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A=="], + "jiti": ["jiti@2.6.1", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ=="], "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], - "js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="], + "js-yaml": ["js-yaml@4.1.1", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA=="], "jsesc": ["jsesc@3.1.0", "", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="], @@ -962,20 +797,10 @@ "json5": ["json5@2.2.3", "", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], - "just-camel-case": ["just-camel-case@6.2.0", "", {}, "sha512-ICenRLXwkQYLk3UyvLQZ+uKuwFVJ3JHFYFn7F2782G2Mv2hW8WPePqgdhpnjGaqkYtSVWnyCESZhGXUmY3/bEg=="], - - "just-debounce-it": ["just-debounce-it@3.2.0", "", {}, "sha512-WXzwLL0745uNuedrCsCs3rpmfD6DBaf7uuVwaq98/8dafURfgQaBsSpjiPp5+CW6Vjltwy9cOGI6qE71b3T8iQ=="], + "jsx-ast-utils": ["jsx-ast-utils@3.3.5", "", { "dependencies": { "array-includes": "^3.1.6", "array.prototype.flat": "^1.3.1", "object.assign": "^4.1.4", "object.values": "^1.1.6" } }, "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ=="], "just-extend": ["just-extend@5.1.1", "", {}, "sha512-b+z6yF1d4EOyDgylzQo5IminlUmzSeqR1hs/bzjBNjuGras4FXq/6TrzjxfN0j+TmI0ltJzTNlqXUMCniciwKQ=="], - "just-has": ["just-has@2.3.0", "", {}, "sha512-JzxCot/ETqLDullSSC5OtT/PLWiqgRNO5z33gVit6BoCXe/6BHut33o9ZunG5jQSqeY4EyzFnl8Wqc7S8Ci/wQ=="], - - "just-is-empty": ["just-is-empty@3.4.1", "", {}, "sha512-bweyqPPl3HReVyVzLJvCJn+cfXJKh6dy4kSLoW9YLqwFz+2vZbWLN38AOK7esEIVPQwY1W48HaNvOFZqYAjLpw=="], - - "just-kebab-case": ["just-kebab-case@4.2.0", "", {}, "sha512-p2BdO7o4BI+pMun3J+dhaOfYan5JsZrw9wjshRjkWY9+p+u+kKSMhNWYnot2yHDR9CSahZ9iT3dcqJ+V72qHMw=="], - - "just-throttle": ["just-throttle@4.2.0", "", {}, "sha512-/iAZv1953JcExpvsywaPKjSzfTiCLqeguUTE6+VmK15mOcwxBx7/FHrVvS4WEErMR03TRazH8kcBSHqMagYIYg=="], - "keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="], "kind-of": ["kind-of@6.0.3", "", {}, "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="], @@ -984,16 +809,36 @@ "levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="], - "lilconfig": ["lilconfig@3.1.3", "", {}, "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw=="], + "lightningcss": ["lightningcss@1.30.2", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.30.2", "lightningcss-darwin-arm64": "1.30.2", "lightningcss-darwin-x64": "1.30.2", "lightningcss-freebsd-x64": "1.30.2", "lightningcss-linux-arm-gnueabihf": "1.30.2", "lightningcss-linux-arm64-gnu": "1.30.2", "lightningcss-linux-arm64-musl": "1.30.2", "lightningcss-linux-x64-gnu": "1.30.2", "lightningcss-linux-x64-musl": "1.30.2", "lightningcss-win32-arm64-msvc": "1.30.2", "lightningcss-win32-x64-msvc": "1.30.2" } }, "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ=="], + + "lightningcss-android-arm64": ["lightningcss-android-arm64@1.30.2", "", { "os": "android", "cpu": "arm64" }, "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A=="], + + "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.30.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA=="], + + "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.30.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ=="], - "line-height": ["line-height@0.3.1", "", { "dependencies": { "computed-style": "~0.1.3" } }, "sha512-YExecgqPwnp5gplD2+Y8e8A5+jKpr25+DzMbFdI1/1UAr0FJrTFv4VkHLf8/6B590i1wUPJWMKKldkd/bdQ//w=="], + "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.30.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA=="], + + "lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.30.2", "", { "os": "linux", "cpu": "arm" }, "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA=="], + + "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.30.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A=="], + + "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.30.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA=="], + + "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.30.2", "", { "os": "linux", "cpu": "x64" }, "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w=="], + + "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.30.2", "", { "os": "linux", "cpu": "x64" }, "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA=="], + + "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.30.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ=="], + + "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.30.2", "", { "os": "win32", "cpu": "x64" }, "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw=="], + + "lilconfig": ["lilconfig@3.1.3", "", {}, "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw=="], "lines-and-columns": ["lines-and-columns@1.2.4", "", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="], "loader-runner": ["loader-runner@4.3.1", "", {}, "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q=="], - "loader-utils": ["loader-utils@2.0.4", "", { "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", "json5": "^2.1.2" } }, "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw=="], - "locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="], "lodash.memoize": ["lodash.memoize@4.1.2", "", {}, "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag=="], @@ -1006,19 +851,15 @@ "loose-envify": ["loose-envify@1.4.0", "", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="], - "lower-case": ["lower-case@2.0.2", "", { "dependencies": { "tslib": "^2.0.3" } }, "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg=="], - "lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], - "mathml-tag-names": ["mathml-tag-names@2.1.3", "", {}, "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg=="], - - "mdn-data": ["mdn-data@2.12.2", "", {}, "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA=="], + "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], - "media-blender": ["media-blender@2.1.0", "", {}, "sha512-BqAvKQuyh68s1OGGzFW5pTIPYLBUA2HUWBnMLQaPIbI4PhBl0GWKbdPJL1eSUs3cedwdPXlhSqz/SY+YNc7zBA=="], + "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="], - "memize": ["memize@2.1.0", "", {}, "sha512-yywVJy8ctVlN5lNPxsep5urnZ6TTclwPEyigM9M3Bi8vseJBOfqNrGWN/r8NzuIt3PovM323W04blJfGQfQSVg=="], + "mathml-tag-names": ["mathml-tag-names@2.1.3", "", {}, "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg=="], - "memoize-one": ["memoize-one@6.0.0", "", {}, "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="], + "mdn-data": ["mdn-data@2.12.2", "", {}, "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA=="], "meow": ["meow@13.2.0", "", {}, "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA=="], @@ -1032,19 +873,15 @@ "mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], - "mini-css-extract-plugin": ["mini-css-extract-plugin@2.9.2", "", { "dependencies": { "schema-utils": "^4.0.0", "tapable": "^2.2.1" }, "peerDependencies": { "webpack": "^5.0.0" } }, "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w=="], + "mini-css-extract-plugin": ["mini-css-extract-plugin@2.9.4", "", { "dependencies": { "schema-utils": "^4.0.0", "tapable": "^2.2.1" }, "peerDependencies": { "webpack": "^5.0.0" } }, "sha512-ZWYT7ln73Hptxqxk2DxPU9MmapXRhxkJD6tkSR04dnQxm8BGu2hzgKLugK5yySD97u/8yy7Ma7E76k9ZdvtjkQ=="], "minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], - "moment": ["moment@2.30.1", "", {}, "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how=="], - - "moment-timezone": ["moment-timezone@0.5.48", "", { "dependencies": { "moment": "^2.29.4" } }, "sha512-f22b8LV1gbTO2ms2j2z13MuPogNoh5UzxL3nzNAYKGraILnbGc9NEE6dyiiiLv46DGRb8A4kg8UKWLjPthxBHw=="], - - "motion-dom": ["motion-dom@11.18.1", "", { "dependencies": { "motion-utils": "^11.18.1" } }, "sha512-g76KvA001z+atjfxczdRtw/RXOM3OMSdd1f4DL77qCTF/+avrRJiawSG4yDibEQ215sr9kpinSlX2pCTJ9zbhw=="], + "motion": ["motion@12.23.26", "", { "dependencies": { "framer-motion": "^12.23.26", "tslib": "^2.4.0" }, "peerDependencies": { "@emotion/is-prop-valid": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@emotion/is-prop-valid", "react", "react-dom"] }, "sha512-Ll8XhVxY8LXMVYTCfme27WH2GjBrCIzY4+ndr5QKxsK+YwCtOi2B/oBi5jcIbik5doXuWT/4KKDOVAZJkeY5VQ=="], - "motion-utils": ["motion-utils@11.18.1", "", {}, "sha512-49Kt+HKjtbJKLtgO/LKj9Ld+6vw9BjH5d9sc40R/kVyH8GLAXgT42M2NnuPcJNuA3s9ZfZBUcwIgpmZWGEE+hA=="], + "motion-dom": ["motion-dom@12.23.23", "", { "dependencies": { "motion-utils": "^12.23.6" } }, "sha512-n5yolOs0TQQBRUFImrRfs/+6X4p3Q4n1dUEqt/H58Vx7OW6RF+foWEgmTVDhIWJIMXOuNNL0apKH2S16en9eiA=="], - "mousetrap": ["mousetrap@1.6.5", "", {}, "sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA=="], + "motion-utils": ["motion-utils@12.23.6", "", {}, "sha512-eAWoPgr4eFEOFfg2WjIsMoqJTW6Z8MTUCgn/GZ3VRpClWBdnbjryiA3ZSNLyxCTmCQx4RmYX6jX1iWHbenUPNQ=="], "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], @@ -1054,83 +891,69 @@ "neo-async": ["neo-async@2.6.2", "", {}, "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="], - "no-case": ["no-case@3.0.4", "", { "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" } }, "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg=="], + "node-releases": ["node-releases@2.0.27", "", {}, "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA=="], - "node-addon-api": ["node-addon-api@7.1.1", "", {}, "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ=="], + "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], - "node-releases": ["node-releases@2.0.23", "", {}, "sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg=="], + "nth-check": ["nth-check@2.1.1", "", { "dependencies": { "boolbase": "^1.0.0" } }, "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w=="], - "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], + "object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="], - "normalize-range": ["normalize-range@0.1.2", "", {}, "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA=="], + "object-inspect": ["object-inspect@1.13.4", "", {}, "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew=="], - "normalize-wheel": ["normalize-wheel@1.0.1", "", {}, "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA=="], + "object-keys": ["object-keys@1.1.1", "", {}, "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="], - "nth-check": ["nth-check@2.1.1", "", { "dependencies": { "boolbase": "^1.0.0" } }, "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w=="], + "object.assign": ["object.assign@4.1.7", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0", "has-symbols": "^1.1.0", "object-keys": "^1.1.1" } }, "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw=="], - "object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="], + "object.entries": ["object.entries@1.1.9", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-object-atoms": "^1.1.1" } }, "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw=="], + + "object.fromentries": ["object.fromentries@2.0.8", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-object-atoms": "^1.0.0" } }, "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ=="], - "once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="], + "object.values": ["object.values@1.2.1", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA=="], "optionator": ["optionator@0.9.4", "", { "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="], + "own-keys": ["own-keys@1.0.1", "", { "dependencies": { "get-intrinsic": "^1.2.6", "object-keys": "^1.1.1", "safe-push-apply": "^1.0.0" } }, "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg=="], + "p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], "p-locate": ["p-locate@5.0.0", "", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="], - "p-map": ["p-map@2.1.0", "", {}, "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw=="], - "p-try": ["p-try@2.2.0", "", {}, "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="], - "param-case": ["param-case@3.0.4", "", { "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" } }, "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A=="], - "parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="], "parse-json": ["parse-json@5.2.0", "", { "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" } }, "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg=="], - "pascal-case": ["pascal-case@3.1.2", "", { "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" } }, "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g=="], - - "path-case": ["path-case@3.0.4", "", { "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" } }, "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg=="], - "path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], - "path-is-absolute": ["path-is-absolute@1.0.1", "", {}, "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="], - - "path-is-inside": ["path-is-inside@1.0.2", "", {}, "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w=="], - "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], "path-parse": ["path-parse@1.0.7", "", {}, "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="], - "path-to-regexp": ["path-to-regexp@6.3.0", "", {}, "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ=="], - "path-type": ["path-type@4.0.0", "", {}, "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="], "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], - "picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], - - "pify": ["pify@4.0.1", "", {}, "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="], - - "pinkie": ["pinkie@2.0.4", "", {}, "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg=="], - - "pinkie-promise": ["pinkie-promise@2.0.1", "", { "dependencies": { "pinkie": "^2.0.0" } }, "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw=="], + "picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], "pkg-dir": ["pkg-dir@4.2.0", "", { "dependencies": { "find-up": "^4.0.0" } }, "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ=="], - "playwright": ["playwright@1.56.1", "", { "dependencies": { "playwright-core": "1.56.1" }, "optionalDependencies": { "fsevents": "2.3.2" }, "bin": { "playwright": "cli.js" } }, "sha512-aFi5B0WovBHTEvpM3DzXTUaeN6eN0qWnTkKx4NQaH4Wvcmc153PdaY2UBdSYKaGYw+UyWXSVyxDUg5DoPEttjw=="], + "playwright": ["playwright@1.57.0", "", { "dependencies": { "playwright-core": "1.57.0" }, "optionalDependencies": { "fsevents": "2.3.2" }, "bin": { "playwright": "cli.js" } }, "sha512-ilYQj1s8sr2ppEJ2YVadYBN0Mb3mdo9J0wQ+UuDhzYqURwSoW4n1Xs5vs7ORwgDGmyEh33tRMeS8KhdkMoLXQw=="], + + "playwright-core": ["playwright-core@1.57.0", "", { "bin": { "playwright-core": "cli.js" } }, "sha512-agTcKlMw/mjBWOnD6kFZttAAGHgi/Nw0CZ2o6JqWSbMlI219lAFLZZCyqByTsvVAJq5XA5H8cA6PrvBRpBWEuQ=="], - "playwright-core": ["playwright-core@1.56.1", "", { "bin": { "playwright-core": "cli.js" } }, "sha512-hutraynyn31F+Bifme+Ps9Vq59hKuUCz7H1kDOcBs+2oGguKkWTU50bBWrtz34OUWmIwpBTWDxaRPXrIXkgvmQ=="], + "possible-typed-array-names": ["possible-typed-array-names@1.1.0", "", {}, "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg=="], "postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="], "postcss-calc": ["postcss-calc@10.1.1", "", { "dependencies": { "postcss-selector-parser": "^7.0.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.38" } }, "sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw=="], - "postcss-colormin": ["postcss-colormin@7.0.4", "", { "dependencies": { "browserslist": "^4.25.1", "caniuse-api": "^3.0.0", "colord": "^2.9.3", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-ziQuVzQZBROpKpfeDwmrG+Vvlr0YWmY/ZAk99XD+mGEBuEojoFekL41NCsdhyNUtZI7DPOoIWIR7vQQK9xwluw=="], + "postcss-colormin": ["postcss-colormin@7.0.5", "", { "dependencies": { "browserslist": "^4.27.0", "caniuse-api": "^3.0.0", "colord": "^2.9.3", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-ekIBP/nwzRWhEMmIxHHbXHcMdzd1HIUzBECaj5KEdLz9DVP2HzT065sEhvOx1dkLjYW7jyD0CngThx6bpFi2fA=="], - "postcss-convert-values": ["postcss-convert-values@7.0.6", "", { "dependencies": { "browserslist": "^4.25.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-MD/eb39Mr60hvgrqpXsgbiqluawYg/8K4nKsqRsuDX9f+xN1j6awZCUv/5tLH8ak3vYp/EMXwdcnXvfZYiejCQ=="], + "postcss-convert-values": ["postcss-convert-values@7.0.8", "", { "dependencies": { "browserslist": "^4.27.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-+XNKuPfkHTCEo499VzLMYn94TiL3r9YqRE3Ty+jP7UX4qjewUONey1t7CG21lrlTLN07GtGM8MqFVp86D4uKJg=="], - "postcss-discard-comments": ["postcss-discard-comments@7.0.4", "", { "dependencies": { "postcss-selector-parser": "^7.1.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-6tCUoql/ipWwKtVP/xYiFf1U9QgJ0PUvxN7pTcsQ8Ns3Fnwq1pU5D5s1MhT/XySeLq6GXNvn37U46Ded0TckWg=="], + "postcss-discard-comments": ["postcss-discard-comments@7.0.5", "", { "dependencies": { "postcss-selector-parser": "^7.1.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-IR2Eja8WfYgN5n32vEGSctVQ1+JARfu4UH8M7bgGh1bC+xI/obsPJXaBpQF7MAByvgwZinhpHpdrmXtvVVlKcQ=="], "postcss-discard-duplicates": ["postcss-discard-duplicates@7.0.2", "", { "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-eTonaQvPZ/3i1ASDHOKkYwAybiM45zFIc7KXils4mQmHLqIswXD9XNOKEVxtTFnsmwYzF66u4LMgSr0abDlh5w=="], @@ -1138,19 +961,17 @@ "postcss-discard-overridden": ["postcss-discard-overridden@7.0.1", "", { "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-7c3MMjjSZ/qYrx3uc1940GSOzN1Iqjtlqe8uoSg+qdVPYyRb0TILSqqmtlSFuE4mTDECwsm397Ya7iXGzfF7lg=="], - "postcss-loader": ["postcss-loader@8.1.1", "", { "dependencies": { "cosmiconfig": "^9.0.0", "jiti": "^1.20.0", "semver": "^7.5.4" }, "peerDependencies": { "@rspack/core": "0.x || 1.x", "postcss": "^7.0.0 || ^8.0.1", "webpack": "^5.0.0" }, "optionalPeers": ["@rspack/core", "webpack"] }, "sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ=="], - - "postcss-media-query-parser": ["postcss-media-query-parser@0.2.3", "", {}, "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig=="], + "postcss-loader": ["postcss-loader@8.2.0", "", { "dependencies": { "cosmiconfig": "^9.0.0", "jiti": "^2.5.1", "semver": "^7.6.2" }, "peerDependencies": { "@rspack/core": "0.x || 1.x", "postcss": "^7.0.0 || ^8.0.1", "webpack": "^5.0.0" }, "optionalPeers": ["@rspack/core", "webpack"] }, "sha512-tHX+RkpsXVcc7st4dSdDGliI+r4aAQDuv+v3vFYHixb6YgjreG5AG4SEB0kDK8u2s6htqEEpKlkhSBUTvWKYnA=="], "postcss-merge-longhand": ["postcss-merge-longhand@7.0.5", "", { "dependencies": { "postcss-value-parser": "^4.2.0", "stylehacks": "^7.0.5" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-Kpu5v4Ys6QI59FxmxtNB/iHUVDn9Y9sYw66D6+SZoIk4QTz1prC4aYkhIESu+ieG1iylod1f8MILMs1Em3mmIw=="], - "postcss-merge-rules": ["postcss-merge-rules@7.0.6", "", { "dependencies": { "browserslist": "^4.25.1", "caniuse-api": "^3.0.0", "cssnano-utils": "^5.0.1", "postcss-selector-parser": "^7.1.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-2jIPT4Tzs8K87tvgCpSukRQ2jjd+hH6Bb8rEEOUDmmhOeTcqDg5fEFK8uKIu+Pvc3//sm3Uu6FRqfyv7YF7+BQ=="], + "postcss-merge-rules": ["postcss-merge-rules@7.0.7", "", { "dependencies": { "browserslist": "^4.27.0", "caniuse-api": "^3.0.0", "cssnano-utils": "^5.0.1", "postcss-selector-parser": "^7.1.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-njWJrd/Ms6XViwowaaCc+/vqhPG3SmXn725AGrnl+BgTuRPEacjiLEaGq16J6XirMJbtKkTwnt67SS+e2WGoew=="], "postcss-minify-font-values": ["postcss-minify-font-values@7.0.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-2m1uiuJeTplll+tq4ENOQSzB8LRnSUChBv7oSyFLsJRtUgAAJGP6LLz0/8lkinTgxrmJSPOEhgY1bMXOQ4ZXhQ=="], "postcss-minify-gradients": ["postcss-minify-gradients@7.0.1", "", { "dependencies": { "colord": "^2.9.3", "cssnano-utils": "^5.0.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-X9JjaysZJwlqNkJbUDgOclyG3jZEpAMOfof6PUZjPnPrePnPG62pS17CjdM32uT1Uq1jFvNSff9l7kNbmMSL2A=="], - "postcss-minify-params": ["postcss-minify-params@7.0.4", "", { "dependencies": { "browserslist": "^4.25.1", "cssnano-utils": "^5.0.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-3OqqUddfH8c2e7M35W6zIwv7jssM/3miF9cbCSb1iJiWvtguQjlxZGIHK9JRmc8XAKmE2PFGtHSM7g/VcW97sw=="], + "postcss-minify-params": ["postcss-minify-params@7.0.5", "", { "dependencies": { "browserslist": "^4.27.0", "cssnano-utils": "^5.0.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-FGK9ky02h6Ighn3UihsyeAH5XmLEE2MSGH5Tc4tXMFtEDx7B+zTG6hD/+/cT+fbF7PbYojsmmWjyTwFwW1JKQQ=="], "postcss-minify-selectors": ["postcss-minify-selectors@7.0.5", "", { "dependencies": { "cssesc": "^3.0.0", "postcss-selector-parser": "^7.1.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-x2/IvofHcdIrAm9Q+p06ZD1h6FPcQ32WtCRVodJLDR+WMn8EVHI1kvLxZuGKz/9EY5nAmI6lIQIrpo4tBy5+ug=="], @@ -1174,7 +995,7 @@ "postcss-normalize-timing-functions": ["postcss-normalize-timing-functions@7.0.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-bHifyuuSNdKKsnNJ0s8fmfLMlvsQwYVxIoUBnowIVl2ZAdrkYQNGVB4RxjfpvkMjipqvbz0u7feBZybkl/6NJg=="], - "postcss-normalize-unicode": ["postcss-normalize-unicode@7.0.4", "", { "dependencies": { "browserslist": "^4.25.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-LvIURTi1sQoZqj8mEIE8R15yvM+OhbR1avynMtI9bUzj5gGKR/gfZFd8O7VMj0QgJaIFzxDwxGl/ASMYAkqO8g=="], + "postcss-normalize-unicode": ["postcss-normalize-unicode@7.0.5", "", { "dependencies": { "browserslist": "^4.27.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-X6BBwiRxVaFHrb2WyBMddIeB5HBjJcAaUHyhLrM2FsxSq5TFqcHSsK7Zu1otag+o0ZphQGJewGH1tAyrD0zX1Q=="], "postcss-normalize-url": ["postcss-normalize-url@7.0.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-sUcD2cWtyK1AOL/82Fwy1aIVm/wwj5SdZkgZ3QiUzSzQQofrbq15jWJ3BA7Z+yVRwamCjJgZJN0I9IS7c6tgeQ=="], @@ -1182,9 +1003,7 @@ "postcss-ordered-values": ["postcss-ordered-values@7.0.2", "", { "dependencies": { "cssnano-utils": "^5.0.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-AMJjt1ECBffF7CEON/Y0rekRLS6KsePU6PRP08UqYW4UGFRnTXNrByUzYK1h8AC7UWTZdQ9O3Oq9kFIhm0SFEw=="], - "postcss-prefixwrap": ["postcss-prefixwrap@1.56.2", "", { "peerDependencies": { "postcss": "*" } }, "sha512-PnIsMX/VTtLYUrZe8Cex4vqXVvl5PUKbDbD52Wcp94ObZkt05oehCuOVvsUeig0eQoGOhTDBHfR8nnIkjf1/uA=="], - - "postcss-reduce-initial": ["postcss-reduce-initial@7.0.4", "", { "dependencies": { "browserslist": "^4.25.1", "caniuse-api": "^3.0.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-rdIC9IlMBn7zJo6puim58Xd++0HdbvHeHaPgXsimMfG1ijC5A9ULvNLSE0rUKVJOvNMcwewW4Ga21ngyJjY/+Q=="], + "postcss-reduce-initial": ["postcss-reduce-initial@7.0.5", "", { "dependencies": { "browserslist": "^4.27.0", "caniuse-api": "^3.0.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-RHagHLidG8hTZcnr4FpyMB2jtgd/OcyAazjMhoy5qmWJOx1uxKh4ntk0Pb46ajKM0rkf32lRH4C8c9qQiPR6IA=="], "postcss-reduce-transforms": ["postcss-reduce-transforms@7.0.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-MhyEbfrm+Mlp/36hvZ9mT9DaO7dbncU0CvWI8V93LRkY6IYlu38OPg3FObnuKTUxJ4qA8HpurdQOo5CyqqO76g=="], @@ -1192,93 +1011,49 @@ "postcss-safe-parser": ["postcss-safe-parser@7.0.1", "", { "peerDependencies": { "postcss": "^8.4.31" } }, "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A=="], - "postcss-scss": ["postcss-scss@4.0.9", "", { "peerDependencies": { "postcss": "^8.4.29" } }, "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A=="], - - "postcss-selector-parser": ["postcss-selector-parser@6.1.2", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg=="], + "postcss-selector-parser": ["postcss-selector-parser@6.0.10", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w=="], "postcss-svgo": ["postcss-svgo@7.1.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0", "svgo": "^4.0.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-KnAlfmhtoLz6IuU3Sij2ycusNs4jPW+QoFE5kuuUOK8awR6tMxZQrs5Ey3BUz7nFCzT3eqyFgqkyrHiaU2xx3w=="], "postcss-unique-selectors": ["postcss-unique-selectors@7.0.4", "", { "dependencies": { "postcss-selector-parser": "^7.1.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-pmlZjsmEAG7cHd7uK3ZiNSW6otSZ13RHuZ/4cDN/bVglS5EpF2r2oxY99SuOHa8m7AWoBCelTS3JPpzsIs8skQ=="], - "postcss-urlrebase": ["postcss-urlrebase@1.4.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.3.0" } }, "sha512-rRaxMmWvXrn8Rk1PqsxmaJwldRHsr0WbbASKKCZYxXwotHkM/5X/6IrwaEe8pdzpbNGCEY86yhYMN0MhgOkADA=="], - "postcss-value-parser": ["postcss-value-parser@4.2.0", "", {}, "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="], "prelude-ls": ["prelude-ls@1.2.1", "", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="], - "promisify-child-process": ["promisify-child-process@4.1.2", "", {}, "sha512-APnkIgmaHNJpkAn7k+CrJSi9WMuff5ctYFbD0CO2XIPkM8yO7d/ShouU2clywbpHV/DUsyc4bpJCsNgddNtx4g=="], + "prettier": ["prettier@3.7.4", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA=="], + + "prettier-linter-helpers": ["prettier-linter-helpers@1.0.0", "", { "dependencies": { "fast-diff": "^1.1.2" } }, "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w=="], + + "prettier-plugin-tailwindcss": ["prettier-plugin-tailwindcss@0.7.2", "", { "peerDependencies": { "@ianvs/prettier-plugin-sort-imports": "*", "@prettier/plugin-hermes": "*", "@prettier/plugin-oxc": "*", "@prettier/plugin-pug": "*", "@shopify/prettier-plugin-liquid": "*", "@trivago/prettier-plugin-sort-imports": "*", "@zackad/prettier-plugin-twig": "*", "prettier": "^3.0", "prettier-plugin-astro": "*", "prettier-plugin-css-order": "*", "prettier-plugin-jsdoc": "*", "prettier-plugin-marko": "*", "prettier-plugin-multiline-arrays": "*", "prettier-plugin-organize-attributes": "*", "prettier-plugin-organize-imports": "*", "prettier-plugin-sort-imports": "*", "prettier-plugin-svelte": "*" }, "optionalPeers": ["@ianvs/prettier-plugin-sort-imports", "@prettier/plugin-hermes", "@prettier/plugin-oxc", "@prettier/plugin-pug", "@shopify/prettier-plugin-liquid", "@trivago/prettier-plugin-sort-imports", "@zackad/prettier-plugin-twig", "prettier-plugin-astro", "prettier-plugin-css-order", "prettier-plugin-jsdoc", "prettier-plugin-marko", "prettier-plugin-multiline-arrays", "prettier-plugin-organize-attributes", "prettier-plugin-organize-imports", "prettier-plugin-sort-imports", "prettier-plugin-svelte"] }, "sha512-LkphyK3Fw+q2HdMOoiEHWf93fNtYJwfamoKPl7UwtjFQdei/iIBoX11G6j706FzN3ymX9mPVi97qIY8328vdnA=="], "prop-types": ["prop-types@15.8.1", "", { "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" } }, "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="], "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], + "qified": ["qified@0.5.3", "", { "dependencies": { "hookified": "^1.13.0" } }, "sha512-kXuQdQTB6oN3KhI6V4acnBSZx8D2I4xzZvn9+wFLLFCoBNQY/sFnCW6c43OL7pOQ2HvGV4lnWIXNmgfp7cTWhQ=="], + "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="], "randombytes": ["randombytes@2.1.0", "", { "dependencies": { "safe-buffer": "^5.1.0" } }, "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ=="], - "raw-loader": ["raw-loader@4.0.2", "", { "dependencies": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0" }, "peerDependencies": { "webpack": "^4.0.0 || ^5.0.0" } }, "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA=="], - - "rc-motion": ["rc-motion@2.9.5", "", { "dependencies": { "@babel/runtime": "^7.11.1", "classnames": "^2.2.1", "rc-util": "^5.44.0" }, "peerDependencies": { "react": ">=16.9.0", "react-dom": ">=16.9.0" } }, "sha512-w+XTUrfh7ArbYEd2582uDrEhmBHwK1ZENJiSJVb7uRxdE7qJSYjbO2eksRXmndqyKqKoYPc9ClpPh5242mV1vA=="], - - "rc-resize-observer": ["rc-resize-observer@1.4.3", "", { "dependencies": { "@babel/runtime": "^7.20.7", "classnames": "^2.2.1", "rc-util": "^5.44.1", "resize-observer-polyfill": "^1.5.1" }, "peerDependencies": { "react": ">=16.9.0", "react-dom": ">=16.9.0" } }, "sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ=="], - - "rc-slider": ["rc-slider@10.6.2", "", { "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "^2.2.5", "rc-util": "^5.36.0" }, "peerDependencies": { "react": ">=16.9.0", "react-dom": ">=16.9.0" } }, "sha512-FjkoFjyvUQWcBo1F3RgSglky3ar0+qHLM41PlFVYB4Bj3RD8E/Mv7kqMouLFBU+3aFglMzzctAIWRwajEuueSw=="], - - "rc-tooltip": ["rc-tooltip@6.4.0", "", { "dependencies": { "@babel/runtime": "^7.11.2", "@rc-component/trigger": "^2.0.0", "classnames": "^2.3.1", "rc-util": "^5.44.3" }, "peerDependencies": { "react": ">=16.9.0", "react-dom": ">=16.9.0" } }, "sha512-kqyivim5cp8I5RkHmpsp1Nn/Wk+1oeloMv9c7LXNgDxUpGm+RbXJGL+OPvDlcRnx9DBeOe4wyOIl4OKUERyH1g=="], - - "rc-util": ["rc-util@5.44.4", "", { "dependencies": { "@babel/runtime": "^7.18.3", "react-is": "^18.2.0" }, "peerDependencies": { "react": ">=16.9.0", "react-dom": ">=16.9.0" } }, "sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w=="], - - "re-resizable": ["re-resizable@6.11.2", "", { "peerDependencies": { "react": "^16.13.1 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-2xI2P3OHs5qw7K0Ud1aLILK6MQxW50TcO+DetD9eIV58j84TqYeHoZcL9H4GXFXXIh7afhH8mv5iUCXII7OW7A=="], - - "react": ["react@18.3.1", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ=="], - - "react-autosize-textarea": ["react-autosize-textarea@7.1.0", "", { "dependencies": { "autosize": "^4.0.2", "line-height": "^0.3.1", "prop-types": "^15.5.6" }, "peerDependencies": { "react": "^0.14.0 || ^15.0.0 || ^16.0.0", "react-dom": "^0.14.0 || ^15.0.0 || ^16.0.0" } }, "sha512-BHpjCDkuOlllZn3nLazY2F8oYO1tS2jHnWhcjTWQdcKiiMU6gHLNt/fzmqMSyerR0eTdKtfSIqtSeTtghNwS+g=="], - - "react-colorful": ["react-colorful@5.6.1", "", { "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0" } }, "sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw=="], - - "react-dom": ["react-dom@18.3.1", "", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" }, "peerDependencies": { "react": "^18.3.1" } }, "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw=="], - - "react-easy-crop": ["react-easy-crop@5.5.0", "", { "dependencies": { "normalize-wheel": "^1.0.1", "tslib": "^2.0.1" }, "peerDependencies": { "react": ">=16.4.0", "react-dom": ">=16.4.0" } }, "sha512-OZzU+yXMhe69vLkDex+5QxcfT94FdcgVCyW2dBUw35ZoC3Is42TUxUy04w8nH1mfMKaizVdC3rh/wUfNW1mK4w=="], - - "react-gcolor-picker": ["react-gcolor-picker@1.3.3", "", { "dependencies": { "@types/tinycolor2": "^1.4.2", "tinycolor2": "^1.4.2" }, "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0" } }, "sha512-EIOdLzHY8Z1Wrbgs7nspo1FxpXskhkscyOlE1z6MQgO7qLyYuRcQ6OAS2NYBpHo7puqvCpe9fPCejtu8pxFARw=="], + "react": ["react@19.2.3", "", {}, "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA=="], - "react-is": ["react-is@18.3.1", "", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], + "react-dom": ["react-dom@19.2.3", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.3" } }, "sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg=="], - "react-remove-scroll": ["react-remove-scroll@2.5.4", "", { "dependencies": { "react-remove-scroll-bar": "^2.3.3", "react-style-singleton": "^2.2.1", "tslib": "^2.1.0", "use-callback-ref": "^1.3.0", "use-sidecar": "^1.1.2" }, "peerDependencies": { "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", "react": "^16.8.0 || ^17.0.0 || ^18.0.0" }, "optionalPeers": ["@types/react"] }, "sha512-xGVKJJr0SJGQVirVFAUZ2k1QLyO6m+2fy0l8Qawbp5Jgrv3DeLalrfMNBFSlmz5kriGGzsVBtGVnf4pTKIhhWA=="], - - "react-remove-scroll-bar": ["react-remove-scroll-bar@2.3.8", "", { "dependencies": { "react-style-singleton": "^2.2.2", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, "optionalPeers": ["@types/react"] }, "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q=="], - - "react-select": ["react-select@5.10.2", "", { "dependencies": { "@babel/runtime": "^7.12.0", "@emotion/cache": "^11.4.0", "@emotion/react": "^11.8.1", "@floating-ui/dom": "^1.0.1", "@types/react-transition-group": "^4.4.0", "memoize-one": "^6.0.0", "prop-types": "^15.6.0", "react-transition-group": "^4.3.0", "use-isomorphic-layout-effect": "^1.2.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-Z33nHdEFWq9tfnfVXaiM12rbJmk+QjFEztWLtmXqQhz6Al4UZZ9xc0wiatmGtUOCCnHN0WizL3tCMYRENX4rVQ=="], - - "react-style-singleton": ["react-style-singleton@2.2.3", "", { "dependencies": { "get-nonce": "^1.0.0", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ=="], - - "react-transition-group": ["react-transition-group@4.4.5", "", { "dependencies": { "@babel/runtime": "^7.5.5", "dom-helpers": "^5.0.1", "loose-envify": "^1.4.0", "prop-types": "^15.6.2" }, "peerDependencies": { "react": ">=16.6.0", "react-dom": ">=16.6.0" } }, "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g=="], + "react-is": ["react-is@16.13.1", "", {}, "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="], "reactflow": ["reactflow@11.11.4", "", { "dependencies": { "@reactflow/background": "11.3.14", "@reactflow/controls": "11.2.14", "@reactflow/core": "11.11.4", "@reactflow/minimap": "11.7.14", "@reactflow/node-resizer": "2.2.14", "@reactflow/node-toolbar": "1.3.14" }, "peerDependencies": { "react": ">=17", "react-dom": ">=17" } }, "sha512-70FOtJkUWH3BAOsN+LU9lCrKoKbtOPnz2uq0CV2PLdNSwxTXOhCbsZr50GmZ+Rtw3jx8Uv7/vBFtCGixLfd4Og=="], - "readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="], - "rechoir": ["rechoir@0.8.0", "", { "dependencies": { "resolve": "^1.20.0" } }, "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ=="], - "redux": ["redux@4.2.1", "", { "dependencies": { "@babel/runtime": "^7.9.2" } }, "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w=="], - - "regenerator-runtime": ["regenerator-runtime@0.14.1", "", {}, "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="], - - "rememo": ["rememo@4.0.2", "", {}, "sha512-NVfSP9NstE3QPNs/TnegQY0vnJnstKQSpcrsI2kBTB3dB2PkdfKdTa+abbjMIDqpc63fE5LfjLgfMst0ULMFxQ=="], + "reflect.getprototypeof": ["reflect.getprototypeof@1.0.10", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.9", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.7", "get-proto": "^1.0.1", "which-builtin-type": "^1.2.1" } }, "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw=="], - "remove-accents": ["remove-accents@0.5.0", "", {}, "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A=="], - - "requestidlecallback": ["requestidlecallback@0.3.0", "", {}, "sha512-TWHFkT7S9p7IxLC5A1hYmAYQx2Eb9w1skrXmQ+dS1URyvR8tenMLl4lHbqEOUnpEYxNKpkVMXUgknVpBZWXXfQ=="], - - "require-directory": ["require-directory@2.1.1", "", {}, "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="], + "regexp.prototype.flags": ["regexp.prototype.flags@1.5.4", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", "get-proto": "^1.0.1", "gopd": "^1.2.0", "set-function-name": "^2.0.2" } }, "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA=="], "require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="], - "require-main-filename": ["require-main-filename@2.0.0", "", {}, "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="], - - "resize-observer-polyfill": ["resize-observer-polyfill@1.5.1", "", {}, "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="], - - "resolve": ["resolve@1.22.10", "", { "dependencies": { "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w=="], + "resolve": ["resolve@1.22.11", "", { "dependencies": { "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ=="], "resolve-cwd": ["resolve-cwd@3.0.0", "", { "dependencies": { "resolve-from": "^5.0.0" } }, "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg=="], @@ -1286,35 +1061,31 @@ "reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="], - "rimraf": ["rimraf@2.7.1", "", { "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "./bin.js" } }, "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w=="], - "run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="], - "rungen": ["rungen@0.3.2", "", {}, "sha512-zWl10xu2D7zoR8zSC2U6bg5bYF6T/Wk7rxwp8IPaJH7f0Ge21G03kNHVgHR7tyVkSSfAOG0Rqf/Cl38JftSmtw=="], + "safe-array-concat": ["safe-array-concat@1.1.3", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", "has-symbols": "^1.1.0", "isarray": "^2.0.5" } }, "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q=="], "safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], - "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="], - - "sass": ["sass@1.89.2", "", { "dependencies": { "chokidar": "^4.0.0", "immutable": "^5.0.2", "source-map-js": ">=0.6.2 <2.0.0" }, "optionalDependencies": { "@parcel/watcher": "^2.4.1" }, "bin": { "sass": "sass.js" } }, "sha512-xCmtksBKd/jdJ9Bt9p7nPKiuqrlBMBuuGkQlkhZjjQk3Ty48lv93k5Dq6OPkKt4XwxDJ7tvlfrTa1MPA9bf+QA=="], + "safe-push-apply": ["safe-push-apply@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "isarray": "^2.0.5" } }, "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA=="], - "sass-loader": ["sass-loader@14.2.1", "", { "dependencies": { "neo-async": "^2.6.2" }, "peerDependencies": { "@rspack/core": "0.x || 1.x", "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", "sass": "^1.3.0", "sass-embedded": "*", "webpack": "^5.0.0" }, "optionalPeers": ["@rspack/core", "node-sass", "sass", "sass-embedded", "webpack"] }, "sha512-G0VcnMYU18a4N7VoNDegg2OuMjYtxnqzQWARVWCIVSZwJeiL9kg8QMsuIZOplsJgTzZLF6jGxI3AClj8I9nRdQ=="], + "safe-regex-test": ["safe-regex-test@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-regex": "^1.2.1" } }, "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw=="], - "sax": ["sax@1.4.1", "", {}, "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg=="], + "sax": ["sax@1.4.3", "", {}, "sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ=="], - "scheduler": ["scheduler@0.23.2", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="], + "scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], "schema-utils": ["schema-utils@4.3.3", "", { "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.1.0" } }, "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA=="], - "select": ["select@1.1.2", "", {}, "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA=="], + "semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], - "semver": ["semver@7.7.2", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA=="], + "serialize-javascript": ["serialize-javascript@6.0.2", "", { "dependencies": { "randombytes": "^2.1.0" } }, "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g=="], - "sentence-case": ["sentence-case@3.0.4", "", { "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", "upper-case-first": "^2.0.2" } }, "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg=="], + "set-function-length": ["set-function-length@1.2.2", "", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2" } }, "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg=="], - "serialize-javascript": ["serialize-javascript@6.0.2", "", { "dependencies": { "randombytes": "^2.1.0" } }, "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g=="], + "set-function-name": ["set-function-name@2.0.2", "", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", "has-property-descriptors": "^1.0.2" } }, "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ=="], - "set-blocking": ["set-blocking@2.0.0", "", {}, "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="], + "set-proto": ["set-proto@1.0.0", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0" } }, "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw=="], "shallow-clone": ["shallow-clone@3.0.1", "", { "dependencies": { "kind-of": "^6.0.2" } }, "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA=="], @@ -1322,19 +1093,21 @@ "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], - "showdown": ["showdown@1.9.1", "", { "dependencies": { "yargs": "^14.2" }, "bin": { "showdown": "bin/showdown.js" } }, "sha512-9cGuS382HcvExtf5AHk7Cb4pAeQQ+h0eTr33V1mu+crYWV4KvWAw6el92bDrqGEk5d46Ai/fhbEUwqJ/mTCNEA=="], + "side-channel": ["side-channel@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", "side-channel-list": "^1.0.0", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw=="], - "signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="], + "side-channel-list": ["side-channel-list@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" } }, "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA=="], - "simple-html-tokenizer": ["simple-html-tokenizer@0.5.11", "", {}, "sha512-C2WEK/Z3HoSFbYq8tI7ni3eOo/NneSPRoPpcM7WdLjFOArFuyXEjAoCdOC3DgMfRyziZQ1hCNR4mrNdWEvD0og=="], + "side-channel-map": ["side-channel-map@1.0.1", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3" } }, "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA=="], + + "side-channel-weakmap": ["side-channel-weakmap@1.0.2", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3", "side-channel-map": "^1.0.1" } }, "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A=="], + + "signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="], "slash": ["slash@3.0.0", "", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="], "slice-ansi": ["slice-ansi@4.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } }, "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ=="], - "snake-case": ["snake-case@3.0.4", "", { "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" } }, "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg=="], - - "source-list-map": ["source-list-map@2.0.1", "", {}, "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw=="], + "sonner": ["sonner@2.0.7", "", { "peerDependencies": { "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" } }, "sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w=="], "source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], @@ -1342,33 +1115,33 @@ "source-map-support": ["source-map-support@0.5.21", "", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w=="], - "sprintf-js": ["sprintf-js@1.1.3", "", {}, "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA=="], + "stop-iteration-iterator": ["stop-iteration-iterator@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "internal-slot": "^1.1.0" } }, "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ=="], "string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], - "strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + "string.prototype.matchall": ["string.prototype.matchall@4.0.12", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-abstract": "^1.23.6", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.6", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "internal-slot": "^1.1.0", "regexp.prototype.flags": "^1.5.3", "set-function-name": "^2.0.2", "side-channel": "^1.1.0" } }, "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA=="], - "strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], + "string.prototype.repeat": ["string.prototype.repeat@1.0.0", "", { "dependencies": { "define-properties": "^1.1.3", "es-abstract": "^1.17.5" } }, "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w=="], - "style-loader": ["style-loader@4.0.0", "", { "peerDependencies": { "webpack": "^5.27.0" } }, "sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA=="], + "string.prototype.trim": ["string.prototype.trim@1.2.10", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "define-data-property": "^1.1.4", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-object-atoms": "^1.0.0", "has-property-descriptors": "^1.0.2" } }, "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA=="], - "style-search": ["style-search@0.1.0", "", {}, "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg=="], + "string.prototype.trimend": ["string.prototype.trimend@1.0.9", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ=="], - "stylehacks": ["stylehacks@7.0.6", "", { "dependencies": { "browserslist": "^4.25.1", "postcss-selector-parser": "^7.1.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-iitguKivmsueOmTO0wmxURXBP8uqOO+zikLGZ7Mm9e/94R4w5T999Js2taS/KBOnQ/wdC3jN3vNSrkGDrlnqQg=="], + "string.prototype.trimstart": ["string.prototype.trimstart@1.0.8", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg=="], - "stylelint": ["stylelint@16.21.1", "", { "dependencies": { "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", "@csstools/media-query-list-parser": "^4.0.3", "@csstools/selector-specificity": "^5.0.0", "@dual-bundle/import-meta-resolve": "^4.1.0", "balanced-match": "^2.0.0", "colord": "^2.9.3", "cosmiconfig": "^9.0.0", "css-functions-list": "^3.2.3", "css-tree": "^3.1.0", "debug": "^4.4.1", "fast-glob": "^3.3.3", "fastest-levenshtein": "^1.0.16", "file-entry-cache": "^10.1.1", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", "html-tags": "^3.3.1", "ignore": "^7.0.5", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", "known-css-properties": "^0.37.0", "mathml-tag-names": "^2.1.3", "meow": "^13.2.0", "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "picocolors": "^1.1.1", "postcss": "^8.5.6", "postcss-resolve-nested-selector": "^0.1.6", "postcss-safe-parser": "^7.0.1", "postcss-selector-parser": "^7.1.0", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "string-width": "^4.2.3", "supports-hyperlinks": "^3.2.0", "svg-tags": "^1.0.0", "table": "^6.9.0", "write-file-atomic": "^5.0.1" }, "bin": { "stylelint": "bin/stylelint.mjs" } }, "sha512-WCXdXnYK2tpCbebgMF0Bme3YZH/Rh/UXerj75twYo4uLULlcrLwFVdZTvTEF8idFnAcW21YUDJFyKOfaf6xJRw=="], + "strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "stylelint-config-recommended": ["stylelint-config-recommended@14.0.1", "", { "peerDependencies": { "stylelint": "^16.1.0" } }, "sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg=="], + "strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], - "stylelint-config-recommended-scss": ["stylelint-config-recommended-scss@14.1.0", "", { "dependencies": { "postcss-scss": "^4.0.9", "stylelint-config-recommended": "^14.0.1", "stylelint-scss": "^6.4.0" }, "peerDependencies": { "postcss": "^8.3.3", "stylelint": "^16.6.1" }, "optionalPeers": ["postcss"] }, "sha512-bhaMhh1u5dQqSsf6ri2GVWWQW5iUjBYgcHkh7SgDDn92ijoItC/cfO/W+fpXshgTQWhwFkP1rVcewcv4jaftRg=="], + "style-search": ["style-search@0.1.0", "", {}, "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg=="], - "stylelint-config-standard": ["stylelint-config-standard@36.0.1", "", { "dependencies": { "stylelint-config-recommended": "^14.0.1" }, "peerDependencies": { "stylelint": "^16.1.0" } }, "sha512-8aX8mTzJ6cuO8mmD5yon61CWuIM4UD8Q5aBcWKGSf6kg+EC3uhB+iOywpTK4ca6ZL7B49en8yanOFtUW0qNzyw=="], + "stylehacks": ["stylehacks@7.0.7", "", { "dependencies": { "browserslist": "^4.27.0", "postcss-selector-parser": "^7.1.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-bJkD0JkEtbRrMFtwgpJyBbFIwfDDONQ1Ov3sDLZQP8HuJ73kBOyx66H4bOcAbVWmnfLdvQ0AJwXxOMkpujcO6g=="], - "stylelint-config-standard-scss": ["stylelint-config-standard-scss@13.1.0", "", { "dependencies": { "stylelint-config-recommended-scss": "^14.0.0", "stylelint-config-standard": "^36.0.0" }, "peerDependencies": { "postcss": "^8.3.3", "stylelint": "^16.3.1" }, "optionalPeers": ["postcss"] }, "sha512-Eo5w7/XvwGHWkeGLtdm2FZLOMYoZl1omP2/jgFCXyl2x5yNz7/8vv4Tj6slHvMSSUNTaGoam/GAZ0ZhukvalfA=="], + "stylelint": ["stylelint@16.26.1", "", { "dependencies": { "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-syntax-patches-for-csstree": "^1.0.19", "@csstools/css-tokenizer": "^3.0.4", "@csstools/media-query-list-parser": "^4.0.3", "@csstools/selector-specificity": "^5.0.0", "@dual-bundle/import-meta-resolve": "^4.2.1", "balanced-match": "^2.0.0", "colord": "^2.9.3", "cosmiconfig": "^9.0.0", "css-functions-list": "^3.2.3", "css-tree": "^3.1.0", "debug": "^4.4.3", "fast-glob": "^3.3.3", "fastest-levenshtein": "^1.0.16", "file-entry-cache": "^11.1.1", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", "html-tags": "^3.3.1", "ignore": "^7.0.5", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", "known-css-properties": "^0.37.0", "mathml-tag-names": "^2.1.3", "meow": "^13.2.0", "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "picocolors": "^1.1.1", "postcss": "^8.5.6", "postcss-resolve-nested-selector": "^0.1.6", "postcss-safe-parser": "^7.0.1", "postcss-selector-parser": "^7.1.0", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "string-width": "^4.2.3", "supports-hyperlinks": "^3.2.0", "svg-tags": "^1.0.0", "table": "^6.9.0", "write-file-atomic": "^5.0.1" }, "bin": { "stylelint": "bin/stylelint.mjs" } }, "sha512-v20V59/crfc8sVTAtge0mdafI3AdnzQ2KsWe6v523L4OA1bJO02S7MO2oyXDCS6iWb9ckIPnqAFVItqSBQr7jw=="], - "stylelint-scss": ["stylelint-scss@6.12.1", "", { "dependencies": { "css-tree": "^3.0.1", "is-plain-object": "^5.0.0", "known-css-properties": "^0.36.0", "mdn-data": "^2.21.0", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.6", "postcss-selector-parser": "^7.1.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "stylelint": "^16.0.2" } }, "sha512-UJUfBFIvXfly8WKIgmqfmkGKPilKB4L5j38JfsDd+OCg2GBdU0vGUV08Uw82tsRZzd4TbsUURVVNGeOhJVF7pA=="], + "stylelint-config-recommended": ["stylelint-config-recommended@17.0.0", "", { "peerDependencies": { "stylelint": "^16.23.0" } }, "sha512-WaMSdEiPfZTSFVoYmJbxorJfA610O0tlYuU2aEwY33UQhSPgFbClrVJYWvy3jGJx+XW37O+LyNLiZOEXhKhJmA=="], - "stylis": ["stylis@4.2.0", "", {}, "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw=="], + "stylelint-config-standard": ["stylelint-config-standard@39.0.1", "", { "dependencies": { "stylelint-config-recommended": "^17.0.0" }, "peerDependencies": { "stylelint": "^16.23.0" } }, "sha512-b7Fja59EYHRNOTa3aXiuWnhUWXFU2Nfg6h61bLfAb5GS5fX3LMUD0U5t4S8N/4tpHQg3Acs2UVPR9jy2l1g/3A=="], "supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], @@ -1382,19 +1155,21 @@ "swc-loader": ["swc-loader@0.2.6", "", { "dependencies": { "@swc/counter": "^0.1.3" }, "peerDependencies": { "@swc/core": "^1.2.147", "webpack": ">=2" } }, "sha512-9Zi9UP2YmDpgmQVbyOPJClY0dwf58JDyDMQ7uRc4krmc72twNI2fvlBWHLqVekBpPc7h5NJkGVT1zNDxFrqhvg=="], + "synckit": ["synckit@0.11.11", "", { "dependencies": { "@pkgr/core": "^0.2.9" } }, "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw=="], + "table": ["table@6.9.0", "", { "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", "string-width": "^4.2.3", "strip-ansi": "^6.0.1" } }, "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A=="], - "tannin": ["tannin@1.2.0", "", { "dependencies": { "@tannin/plural-forms": "^1.1.0" } }, "sha512-U7GgX/RcSeUETbV7gYgoz8PD7Ni4y95pgIP/Z6ayI3CfhSujwKEBlGFTCRN+Aqnuyf4AN2yHL+L8x+TCGjb9uA=="], + "tailwindcss": ["tailwindcss@4.1.18", "", {}, "sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw=="], - "tapable": ["tapable@2.3.0", "", {}, "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg=="], + "tailwindcss-motion": ["tailwindcss-motion@1.1.1", "", { "peerDependencies": { "tailwindcss": ">=3.0.0 || insiders" } }, "sha512-CeeQAc5o31BuEPMyWdq/786X7QWNeifa+8khfu74Fs8lGkgEwjNYv6dGv+lRFS8FWXV5dp7F3AU9JjBXjiaQfw=="], - "terser": ["terser@5.43.1", "", { "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.14.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, "bin": { "terser": "bin/terser" } }, "sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg=="], + "tailwindcss-react-aria-components": ["tailwindcss-react-aria-components@2.0.1", "", { "peerDependencies": { "tailwindcss": "^4.0.0" } }, "sha512-yTAfYv9BE/gKczS+b8UiFMqxnrEYKKNE6Y4vAWzGadkHGb4Yuawp0SHbZKkZJQgFvK0KjO3JpCq/0kzR5jJ9tw=="], - "terser-webpack-plugin": ["terser-webpack-plugin@5.3.14", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", "schema-utils": "^4.3.0", "serialize-javascript": "^6.0.2", "terser": "^5.31.1" }, "peerDependencies": { "webpack": "^5.1.0" } }, "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw=="], + "tapable": ["tapable@2.3.0", "", {}, "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg=="], - "tiny-emitter": ["tiny-emitter@2.1.0", "", {}, "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q=="], + "terser": ["terser@5.44.1", "", { "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.15.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, "bin": { "terser": "bin/terser" } }, "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw=="], - "tinycolor2": ["tinycolor2@1.6.0", "", {}, "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw=="], + "terser-webpack-plugin": ["terser-webpack-plugin@5.3.16", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", "schema-utils": "^4.3.0", "serialize-javascript": "^6.0.2", "terser": "^5.31.1" }, "peerDependencies": { "webpack": "^5.1.0" } }, "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q=="], "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], @@ -1402,39 +1177,33 @@ "type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="], - "undici-types": ["undici-types@7.8.0", "", {}, "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw=="], - - "update-browserslist-db": ["update-browserslist-db@1.1.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw=="], + "typed-array-buffer": ["typed-array-buffer@1.0.3", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-typed-array": "^1.1.14" } }, "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw=="], - "upper-case": ["upper-case@2.0.2", "", { "dependencies": { "tslib": "^2.0.3" } }, "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg=="], + "typed-array-byte-length": ["typed-array-byte-length@1.0.3", "", { "dependencies": { "call-bind": "^1.0.8", "for-each": "^0.3.3", "gopd": "^1.2.0", "has-proto": "^1.2.0", "is-typed-array": "^1.1.14" } }, "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg=="], - "upper-case-first": ["upper-case-first@2.0.2", "", { "dependencies": { "tslib": "^2.0.3" } }, "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg=="], - - "uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="], + "typed-array-byte-offset": ["typed-array-byte-offset@1.0.4", "", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "for-each": "^0.3.3", "gopd": "^1.2.0", "has-proto": "^1.2.0", "is-typed-array": "^1.1.15", "reflect.getprototypeof": "^1.0.9" } }, "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ=="], - "use-callback-ref": ["use-callback-ref@1.3.3", "", { "dependencies": { "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg=="], + "typed-array-length": ["typed-array-length@1.0.7", "", { "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", "is-typed-array": "^1.1.13", "possible-typed-array-names": "^1.0.0", "reflect.getprototypeof": "^1.0.6" } }, "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg=="], - "use-isomorphic-layout-effect": ["use-isomorphic-layout-effect@1.2.1", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-tpZZ+EX0gaghDAiFR37hj5MgY6ZN55kLiPkJsKxBMZ6GZdOSPJXiOzPM984oPYZ5AnehYx5WQp1+ME8I/P/pRA=="], + "unbox-primitive": ["unbox-primitive@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", "has-symbols": "^1.1.0", "which-boxed-primitive": "^1.1.1" } }, "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw=="], - "use-lilius": ["use-lilius@2.0.5", "", { "dependencies": { "date-fns": "^3.6.0" }, "peerDependencies": { "react": "*", "react-dom": "*" } }, "sha512-IbPjJe4T6B0zQV6ahftVtHvCAxi6RAuDpEcO8TmnHh4nBtx7JbGdpbgXWOUj/9YjrzEbdT/lW7JWcBVbX3MbrA=="], + "undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="], - "use-memo-one": ["use-memo-one@1.1.3", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, "sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ=="], + "update-browserslist-db": ["update-browserslist-db@1.2.2", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA=="], - "use-sidecar": ["use-sidecar@1.1.3", "", { "dependencies": { "detect-node-es": "^1.1.0", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ=="], + "uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="], - "use-sync-external-store": ["use-sync-external-store@1.5.0", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A=="], + "use-sync-external-store": ["use-sync-external-store@1.6.0", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w=="], "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="], - "uuid": ["uuid@9.0.1", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA=="], - "watchpack": ["watchpack@2.4.4", "", { "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" } }, "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA=="], "webpack": ["webpack@5.103.0", "", { "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", "@types/json-schema": "^7.0.15", "@webassemblyjs/ast": "^1.14.1", "@webassemblyjs/wasm-edit": "^1.14.1", "@webassemblyjs/wasm-parser": "^1.14.1", "acorn": "^8.15.0", "acorn-import-phases": "^1.0.3", "browserslist": "^4.26.3", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.17.3", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.3.1", "mime-types": "^2.1.27", "neo-async": "^2.6.2", "schema-utils": "^4.3.3", "tapable": "^2.3.0", "terser-webpack-plugin": "^5.3.11", "watchpack": "^2.4.4", "webpack-sources": "^3.3.3" }, "bin": { "webpack": "bin/webpack.js" } }, "sha512-HU1JOuV1OavsZ+mfigY0j8d1TgQgbZ6M+J75zDkpEAwYeXjWSqrGJtgnPblJjd/mAyTNQ7ygw0MiKOn6etz8yw=="], "webpack-cli": ["webpack-cli@6.0.1", "", { "dependencies": { "@discoveryjs/json-ext": "^0.6.1", "@webpack-cli/configtest": "^3.0.1", "@webpack-cli/info": "^3.0.1", "@webpack-cli/serve": "^3.0.1", "colorette": "^2.0.14", "commander": "^12.1.0", "cross-spawn": "^7.0.3", "envinfo": "^7.14.0", "fastest-levenshtein": "^1.0.12", "import-local": "^3.0.2", "interpret": "^3.1.1", "rechoir": "^0.8.0", "webpack-merge": "^6.0.1" }, "peerDependencies": { "webpack": "^5.82.0" }, "bin": { "webpack-cli": "./bin/cli.js" } }, "sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw=="], - "webpack-manifest-plugin": ["webpack-manifest-plugin@5.0.1", "", { "dependencies": { "tapable": "^2.0.0", "webpack-sources": "^2.2.0" }, "peerDependencies": { "webpack": "^5.75.0" } }, "sha512-xTlX7dC3hrASixA2inuWFMz6qHsNi6MT3Uiqw621sJjRTShtpMjbDYhPPZBwWUKdIYKIjSq9em6+uzWayf38aQ=="], + "webpack-manifest-plugin": ["webpack-manifest-plugin@6.0.1", "", { "dependencies": { "tapable": "^2.0.0", "webpack-sources": "^3.3.3" }, "peerDependencies": { "webpack": "^5.75.0" } }, "sha512-R0p/8/IJVY5hIhQtkeWUQugalVpIwojc09eb14zGq+oiZOCmN5paAz2NBJfd+6v9eBbxAS3YMjc2ov8UMlCDLQ=="], "webpack-merge": ["webpack-merge@6.0.1", "", { "dependencies": { "clone-deep": "^4.0.1", "flat": "^5.0.2", "wildcard": "^2.0.1" } }, "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg=="], @@ -1442,57 +1211,39 @@ "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], - "which-module": ["which-module@2.0.1", "", {}, "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ=="], + "which-boxed-primitive": ["which-boxed-primitive@1.1.1", "", { "dependencies": { "is-bigint": "^1.1.0", "is-boolean-object": "^1.2.1", "is-number-object": "^1.1.1", "is-string": "^1.1.1", "is-symbol": "^1.1.1" } }, "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA=="], - "wildcard": ["wildcard@2.0.1", "", {}, "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ=="], + "which-builtin-type": ["which-builtin-type@1.2.1", "", { "dependencies": { "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", "is-date-object": "^1.1.0", "is-finalizationregistry": "^1.1.0", "is-generator-function": "^1.0.10", "is-regex": "^1.2.1", "is-weakref": "^1.0.2", "isarray": "^2.0.5", "which-boxed-primitive": "^1.1.0", "which-collection": "^1.0.2", "which-typed-array": "^1.1.16" } }, "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q=="], - "word-wrap": ["word-wrap@1.2.5", "", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="], + "which-collection": ["which-collection@1.0.2", "", { "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", "is-weakmap": "^2.0.2", "is-weakset": "^2.0.3" } }, "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw=="], - "wrap-ansi": ["wrap-ansi@5.1.0", "", { "dependencies": { "ansi-styles": "^3.2.0", "string-width": "^3.0.0", "strip-ansi": "^5.0.0" } }, "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q=="], + "which-typed-array": ["which-typed-array@1.1.19", "", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", "for-each": "^0.3.5", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" } }, "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw=="], - "wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="], + "wildcard": ["wildcard@2.0.1", "", {}, "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ=="], - "write-file-atomic": ["write-file-atomic@5.0.1", "", { "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^4.0.1" } }, "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw=="], + "word-wrap": ["word-wrap@1.2.5", "", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="], - "y18n": ["y18n@4.0.3", "", {}, "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="], + "write-file-atomic": ["write-file-atomic@5.0.1", "", { "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^4.0.1" } }, "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw=="], "yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], - "yaml": ["yaml@1.10.2", "", {}, "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="], - - "yargs": ["yargs@14.2.3", "", { "dependencies": { "cliui": "^5.0.0", "decamelize": "^1.2.0", "find-up": "^3.0.0", "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", "string-width": "^3.0.0", "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^15.0.1" } }, "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg=="], + "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], - "yargs-parser": ["yargs-parser@15.0.3", "", { "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" } }, "sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA=="], + "zod": ["zod@4.1.13", "", {}, "sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig=="], - "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], + "zod-validation-error": ["zod-validation-error@4.0.2", "", { "peerDependencies": { "zod": "^3.25.0 || ^4.0.0" } }, "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ=="], "zustand": ["zustand@4.5.7", "", { "dependencies": { "use-sync-external-store": "^1.2.2" }, "peerDependencies": { "@types/react": ">=16.8", "immer": ">=9.0.6", "react": ">=16.8" }, "optionalPeers": ["@types/react", "immer", "react"] }, "sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw=="], "@babel/core/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "@babel/helper-compilation-targets/browserslist": ["browserslist@4.25.1", "", { "dependencies": { "caniuse-lite": "^1.0.30001726", "electron-to-chromium": "^1.5.173", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw=="], - "@babel/helper-compilation-targets/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "@babel/helper-module-imports/@babel/traverse": ["@babel/traverse@7.28.0", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.0", "@babel/helper-globals": "^7.28.0", "@babel/parser": "^7.28.0", "@babel/template": "^7.27.2", "@babel/types": "^7.28.0", "debug": "^4.3.1" } }, "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg=="], - - "@babel/helper-module-imports/@babel/types": ["@babel/types@7.28.1", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" } }, "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ=="], - - "@babel/template/@babel/parser": ["@babel/parser@7.28.0", "", { "dependencies": { "@babel/types": "^7.28.0" }, "bin": "./bin/babel-parser.js" }, "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g=="], - - "@babel/template/@babel/types": ["@babel/types@7.28.1", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" } }, "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ=="], - - "@csstools/selector-specificity/postcss-selector-parser": ["postcss-selector-parser@7.1.0", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA=="], - - "@eightshift/frontend-libs/webpack": ["webpack@5.101.3", "", { "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", "@types/json-schema": "^7.0.15", "@webassemblyjs/ast": "^1.14.1", "@webassemblyjs/wasm-edit": "^1.14.1", "@webassemblyjs/wasm-parser": "^1.14.1", "acorn": "^8.15.0", "acorn-import-phases": "^1.0.3", "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.17.3", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", "schema-utils": "^4.3.2", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.3.11", "watchpack": "^2.4.1", "webpack-sources": "^3.3.3" }, "bin": { "webpack": "bin/webpack.js" } }, "sha512-7b0dTKR3Ed//AD/6kkx/o7duS8H3f1a4w3BYpIriX4BzIhjkn4teo05cptsxvLesHFKK5KObnadmCHBwGc+51A=="], + "@cacheable/memory/keyv": ["keyv@5.5.5", "", { "dependencies": { "@keyv/serialize": "^1.1.1" } }, "sha512-FA5LmZVF1VziNc0bIdCSA1IoSVnDCqE8HJIZZv2/W8YmoAM50+tnUgJR/gQZwEeIMleuIOnRnHA/UaZRNeV4iQ=="], - "@eightshift/frontend-libs/webpack-cli": ["webpack-cli@5.1.4", "", { "dependencies": { "@discoveryjs/json-ext": "^0.5.0", "@webpack-cli/configtest": "^2.1.1", "@webpack-cli/info": "^2.0.2", "@webpack-cli/serve": "^2.0.5", "colorette": "^2.0.14", "commander": "^10.0.1", "cross-spawn": "^7.0.3", "envinfo": "^7.7.3", "fastest-levenshtein": "^1.0.12", "import-local": "^3.0.2", "interpret": "^3.1.1", "rechoir": "^0.8.0", "webpack-merge": "^5.7.3" }, "peerDependencies": { "webpack": "5.x.x" }, "bin": { "webpack-cli": "bin/cli.js" } }, "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg=="], + "@cacheable/utils/keyv": ["keyv@5.5.5", "", { "dependencies": { "@keyv/serialize": "^1.1.1" } }, "sha512-FA5LmZVF1VziNc0bIdCSA1IoSVnDCqE8HJIZZv2/W8YmoAM50+tnUgJR/gQZwEeIMleuIOnRnHA/UaZRNeV4iQ=="], - "@eightshift/frontend-libs/webpack-merge": ["webpack-merge@5.10.0", "", { "dependencies": { "clone-deep": "^4.0.1", "flat": "^5.0.2", "wildcard": "^2.0.0" } }, "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA=="], - - "@emotion/babel-plugin/convert-source-map": ["convert-source-map@1.9.0", "", {}, "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="], - - "@emotion/babel-plugin/source-map": ["source-map@0.5.7", "", {}, "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="], + "@csstools/selector-specificity/postcss-selector-parser": ["postcss-selector-parser@7.1.1", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg=="], "@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], @@ -1500,57 +1251,45 @@ "@eslint/eslintrc/globals": ["globals@14.0.0", "", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="], - "@humanfs/node/@humanwhocodes/retry": ["@humanwhocodes/retry@0.3.1", "", {}, "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA=="], + "@keyv/bigmap/keyv": ["keyv@5.5.5", "", { "dependencies": { "@keyv/serialize": "^1.1.1" } }, "sha512-FA5LmZVF1VziNc0bIdCSA1IoSVnDCqE8HJIZZv2/W8YmoAM50+tnUgJR/gQZwEeIMleuIOnRnHA/UaZRNeV4iQ=="], - "@wordpress/a11y/@wordpress/dom-ready": ["@wordpress/dom-ready@3.58.0", "", { "dependencies": { "@babel/runtime": "^7.16.0" } }, "sha512-sDgRPjNBToRKgYrpwvMRv2Yc7/17+sp8hm/rRnbubwb+d/DbGkK4Tc/r4sNLSZCqUAtcBXq9uk1lzvhge3QUSg=="], + "@stylistic/eslint-plugin/estraverse": ["estraverse@5.3.0", "", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="], - "@wordpress/dom-ready/@babel/runtime": ["@babel/runtime@7.25.7", "", { "dependencies": { "regenerator-runtime": "^0.14.0" } }, "sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w=="], + "@stylistic/stylelint-plugin/postcss-selector-parser": ["postcss-selector-parser@7.1.1", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg=="], - "autoprefixer/browserslist": ["browserslist@4.25.1", "", { "dependencies": { "caniuse-lite": "^1.0.30001726", "electron-to-chromium": "^1.5.173", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw=="], + "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.7.1", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" }, "bundled": true }, "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg=="], - "autoprefixer/caniuse-lite": ["caniuse-lite@1.0.30001727", "", {}, "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q=="], + "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.7.1", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA=="], - "babel-loader/schema-utils": ["schema-utils@4.3.2", "", { "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.1.0" } }, "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ=="], + "@tailwindcss/oxide-wasm32-wasi/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.1.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ=="], - "babel-plugin-macros/cosmiconfig": ["cosmiconfig@7.1.0", "", { "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", "parse-json": "^5.0.0", "path-type": "^4.0.0", "yaml": "^1.10.0" } }, "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA=="], - - "brace-expansion/balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], + "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.0", "", { "dependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1", "@tybys/wasm-util": "^0.10.1" }, "bundled": true }, "sha512-Fq6DJW+Bb5jaWE69/qOE0D1TUN9+6uWhCeZpdnSBk14pjLcCWR7Q8n49PTSPHazM37JqrsdpEthXy2xn6jWWiA=="], - "browserslist/baseline-browser-mapping": ["baseline-browser-mapping@2.8.16", "", { "bin": { "baseline-browser-mapping": "dist/cli.js" } }, "sha512-OMu3BGQ4E7P1ErFsIPpbJh0qvDudM/UuJeHgkAvfWe+0HFJCXh+t/l8L6fVLR55RI/UbKrVLnAXZSVwd9ysWYw=="], + "@tailwindcss/oxide-wasm32-wasi/@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], - "browserslist/caniuse-lite": ["caniuse-lite@1.0.30001750", "", {}, "sha512-cuom0g5sdX6rw00qOoLNSFCJ9/mYIsuSOA+yzpDw8eopiFqcVwQvZHqov0vmEighRxX++cfC0Vg1G+1Iy/mSpQ=="], + "@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - "cacheable/keyv": ["keyv@5.3.4", "", { "dependencies": { "@keyv/serialize": "^1.0.3" } }, "sha512-ypEvQvInNpUe+u+w8BIcPkQvEqXquyyibWE/1NB5T2BTzIpS5cGEV1LZskDzPSTvNAaT4+5FutvzlvnkxOSKlw=="], - - "caniuse-api/browserslist": ["browserslist@4.25.1", "", { "dependencies": { "caniuse-lite": "^1.0.30001726", "electron-to-chromium": "^1.5.173", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw=="], + "brace-expansion/balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], - "caniuse-api/caniuse-lite": ["caniuse-lite@1.0.30001727", "", {}, "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q=="], + "cacheable/keyv": ["keyv@5.5.5", "", { "dependencies": { "@keyv/serialize": "^1.1.1" } }, "sha512-FA5LmZVF1VziNc0bIdCSA1IoSVnDCqE8HJIZZv2/W8YmoAM50+tnUgJR/gQZwEeIMleuIOnRnHA/UaZRNeV4iQ=="], "chalk/supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], - "cliui/string-width": ["string-width@3.1.0", "", { "dependencies": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } }, "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w=="], - - "cliui/strip-ansi": ["strip-ansi@5.2.0", "", { "dependencies": { "ansi-regex": "^4.1.0" } }, "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA=="], - "clone-deep/is-plain-object": ["is-plain-object@2.0.4", "", { "dependencies": { "isobject": "^3.0.1" } }, "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og=="], - "css-minimizer-webpack-plugin/jest-worker": ["jest-worker@29.7.0", "", { "dependencies": { "@types/node": "*", "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" } }, "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw=="], - - "css-minimizer-webpack-plugin/schema-utils": ["schema-utils@4.3.2", "", { "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.1.0" } }, "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ=="], - - "cssnano-preset-default/browserslist": ["browserslist@4.25.1", "", { "dependencies": { "caniuse-lite": "^1.0.30001726", "electron-to-chromium": "^1.5.173", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw=="], + "css-minimizer-webpack-plugin/jest-worker": ["jest-worker@30.2.0", "", { "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", "jest-util": "30.2.0", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" } }, "sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g=="], "csso/css-tree": ["css-tree@2.2.1", "", { "dependencies": { "mdn-data": "2.0.28", "source-map-js": "^1.0.1" } }, "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA=="], - "del/globby": ["globby@6.1.0", "", { "dependencies": { "array-union": "^1.0.1", "glob": "^7.0.3", "object-assign": "^4.0.1", "pify": "^2.0.0", "pinkie-promise": "^2.0.0" } }, "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw=="], + "eslint/ajv": ["ajv@6.12.6", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="], - "downshift/react-is": ["react-is@17.0.2", "", {}, "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="], + "eslint/eslint-scope": ["eslint-scope@8.4.0", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg=="], - "enhanced-resolve/tapable": ["tapable@2.2.2", "", {}, "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg=="], + "eslint-plugin-react/estraverse": ["estraverse@5.3.0", "", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="], - "eslint/ajv": ["ajv@6.12.6", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="], + "eslint-plugin-react/resolve": ["resolve@2.0.0-next.5", "", { "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA=="], - "eslint/eslint-scope": ["eslint-scope@8.4.0", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg=="], + "eslint-plugin-react/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], "esquery/estraverse": ["estraverse@5.3.0", "", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="], @@ -1558,77 +1297,35 @@ "fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], - "file-loader/schema-utils": ["schema-utils@3.3.0", "", { "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" } }, "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg=="], - - "find-cache-dir/pkg-dir": ["pkg-dir@7.0.0", "", { "dependencies": { "find-up": "^6.3.0" } }, "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA=="], - "global-prefix/which": ["which@1.3.1", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "which": "./bin/which" } }, "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ=="], - "hoist-non-react-statics/react-is": ["react-is@16.13.1", "", {}, "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="], - "import-fresh/resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], - "mini-css-extract-plugin/schema-utils": ["schema-utils@4.3.2", "", { "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.1.0" } }, "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ=="], - - "mini-css-extract-plugin/tapable": ["tapable@2.2.2", "", {}, "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg=="], + "micromatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], "pkg-dir/find-up": ["find-up@4.1.0", "", { "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="], - "postcss-calc/postcss-selector-parser": ["postcss-selector-parser@7.1.0", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA=="], - - "postcss-colormin/browserslist": ["browserslist@4.25.1", "", { "dependencies": { "caniuse-lite": "^1.0.30001726", "electron-to-chromium": "^1.5.173", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw=="], - - "postcss-convert-values/browserslist": ["browserslist@4.25.1", "", { "dependencies": { "caniuse-lite": "^1.0.30001726", "electron-to-chromium": "^1.5.173", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw=="], - - "postcss-discard-comments/postcss-selector-parser": ["postcss-selector-parser@7.1.0", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA=="], + "postcss-calc/postcss-selector-parser": ["postcss-selector-parser@7.1.1", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg=="], - "postcss-merge-rules/browserslist": ["browserslist@4.25.1", "", { "dependencies": { "caniuse-lite": "^1.0.30001726", "electron-to-chromium": "^1.5.173", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw=="], + "postcss-discard-comments/postcss-selector-parser": ["postcss-selector-parser@7.1.1", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg=="], - "postcss-merge-rules/postcss-selector-parser": ["postcss-selector-parser@7.1.0", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA=="], + "postcss-merge-rules/postcss-selector-parser": ["postcss-selector-parser@7.1.1", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg=="], - "postcss-minify-params/browserslist": ["browserslist@4.25.1", "", { "dependencies": { "caniuse-lite": "^1.0.30001726", "electron-to-chromium": "^1.5.173", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw=="], + "postcss-minify-selectors/postcss-selector-parser": ["postcss-selector-parser@7.1.1", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg=="], - "postcss-minify-selectors/postcss-selector-parser": ["postcss-selector-parser@7.1.0", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA=="], + "postcss-modules-local-by-default/postcss-selector-parser": ["postcss-selector-parser@7.1.1", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg=="], - "postcss-modules-local-by-default/postcss-selector-parser": ["postcss-selector-parser@7.1.0", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA=="], + "postcss-modules-scope/postcss-selector-parser": ["postcss-selector-parser@7.1.1", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg=="], - "postcss-modules-scope/postcss-selector-parser": ["postcss-selector-parser@7.1.0", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA=="], + "postcss-unique-selectors/postcss-selector-parser": ["postcss-selector-parser@7.1.1", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg=="], - "postcss-normalize-unicode/browserslist": ["browserslist@4.25.1", "", { "dependencies": { "caniuse-lite": "^1.0.30001726", "electron-to-chromium": "^1.5.173", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw=="], + "stylehacks/postcss-selector-parser": ["postcss-selector-parser@7.1.1", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg=="], - "postcss-reduce-initial/browserslist": ["browserslist@4.25.1", "", { "dependencies": { "caniuse-lite": "^1.0.30001726", "electron-to-chromium": "^1.5.173", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw=="], - - "postcss-unique-selectors/postcss-selector-parser": ["postcss-selector-parser@7.1.0", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA=="], - - "prop-types/react-is": ["react-is@16.13.1", "", {}, "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="], - - "raw-loader/schema-utils": ["schema-utils@3.3.0", "", { "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" } }, "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg=="], - - "react-autosize-textarea/autosize": ["autosize@4.0.4", "", {}, "sha512-5yxLQ22O0fCRGoxGfeLSNt3J8LB1v+umtpMnPW6XjkTWXKoN0AmXAIhelJcDtFT/Y/wYWmfE+oqU10Q0b8FhaQ=="], - - "rimraf/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], - - "stylehacks/browserslist": ["browserslist@4.25.1", "", { "dependencies": { "caniuse-lite": "^1.0.30001726", "electron-to-chromium": "^1.5.173", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw=="], - - "stylehacks/postcss-selector-parser": ["postcss-selector-parser@7.1.0", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA=="], - - "stylelint/@csstools/css-parser-algorithms": ["@csstools/css-parser-algorithms@3.0.5", "", { "peerDependencies": { "@csstools/css-tokenizer": "^3.0.4" } }, "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ=="], - - "stylelint/@csstools/css-tokenizer": ["@csstools/css-tokenizer@3.0.4", "", {}, "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw=="], - - "stylelint/@csstools/media-query-list-parser": ["@csstools/media-query-list-parser@4.0.3", "", { "peerDependencies": { "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4" } }, "sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ=="], - - "stylelint/file-entry-cache": ["file-entry-cache@10.1.1", "", { "dependencies": { "flat-cache": "^6.1.10" } }, "sha512-zcmsHjg2B2zjuBgjdnB+9q0+cWcgWfykIcsDkWDB4GTPtl1eXUA+gTI6sO0u01AqK3cliHryTU55/b2Ow1hfZg=="], + "stylelint/file-entry-cache": ["file-entry-cache@11.1.1", "", { "dependencies": { "flat-cache": "^6.1.19" } }, "sha512-TPVFSDE7q91Dlk1xpFLvFllf8r0HyOMOlnWy7Z2HBku5H3KhIeOGInexrIeg2D64DosVB/JXkrrk6N/7Wriq4A=="], "stylelint/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], - "stylelint/postcss-selector-parser": ["postcss-selector-parser@7.1.0", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA=="], - - "stylelint-scss/known-css-properties": ["known-css-properties@0.36.0", "", {}, "sha512-A+9jP+IUmuQsNdsLdcg6Yt7voiMF/D4K83ew0OpJtpu+l34ef7LaohWV0Rc6KNvzw6ZDizkqfyB5JznZnzuKQA=="], - - "stylelint-scss/mdn-data": ["mdn-data@2.22.1", "", {}, "sha512-u9Xnc9zLuF/CL2IHPow7HcXPpb8okQyzYpwL5wFsY//JRedSWYglYRg3PYWoQCu1zO+tBTmWOJN/iM0mPC5CRQ=="], - - "stylelint-scss/postcss-selector-parser": ["postcss-selector-parser@7.1.0", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA=="], + "stylelint/postcss-selector-parser": ["postcss-selector-parser@7.1.1", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg=="], "supports-hyperlinks/supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], @@ -1636,188 +1333,20 @@ "terser/commander": ["commander@2.20.3", "", {}, "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="], - "terser-webpack-plugin/schema-utils": ["schema-utils@4.3.2", "", { "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.1.0" } }, "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ=="], - - "webpack-manifest-plugin/tapable": ["tapable@2.2.2", "", {}, "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg=="], - - "webpack-manifest-plugin/webpack-sources": ["webpack-sources@2.3.1", "", { "dependencies": { "source-list-map": "^2.0.1", "source-map": "^0.6.1" } }, "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA=="], - - "wrap-ansi/ansi-styles": ["ansi-styles@3.2.1", "", { "dependencies": { "color-convert": "^1.9.0" } }, "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="], - - "wrap-ansi/string-width": ["string-width@3.1.0", "", { "dependencies": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } }, "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w=="], - - "wrap-ansi/strip-ansi": ["strip-ansi@5.2.0", "", { "dependencies": { "ansi-regex": "^4.1.0" } }, "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA=="], - - "yargs/find-up": ["find-up@3.0.0", "", { "dependencies": { "locate-path": "^3.0.0" } }, "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg=="], - - "yargs/string-width": ["string-width@3.1.0", "", { "dependencies": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } }, "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w=="], - - "@babel/helper-compilation-targets/browserslist/caniuse-lite": ["caniuse-lite@1.0.30001727", "", {}, "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q=="], - - "@babel/helper-compilation-targets/browserslist/electron-to-chromium": ["electron-to-chromium@1.5.183", "", {}, "sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA=="], - - "@babel/helper-compilation-targets/browserslist/node-releases": ["node-releases@2.0.19", "", {}, "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw=="], - - "@babel/helper-module-imports/@babel/traverse/@babel/generator": ["@babel/generator@7.28.0", "", { "dependencies": { "@babel/parser": "^7.28.0", "@babel/types": "^7.28.0", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" } }, "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg=="], - - "@babel/helper-module-imports/@babel/traverse/@babel/parser": ["@babel/parser@7.28.0", "", { "dependencies": { "@babel/types": "^7.28.0" }, "bin": "./bin/babel-parser.js" }, "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g=="], - - "@eightshift/frontend-libs/webpack/browserslist": ["browserslist@4.25.1", "", { "dependencies": { "caniuse-lite": "^1.0.30001726", "electron-to-chromium": "^1.5.173", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw=="], - - "@eightshift/frontend-libs/webpack/loader-runner": ["loader-runner@4.3.0", "", {}, "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg=="], - - "@eightshift/frontend-libs/webpack/schema-utils": ["schema-utils@4.3.2", "", { "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.1.0" } }, "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ=="], - - "@eightshift/frontend-libs/webpack/tapable": ["tapable@2.2.2", "", {}, "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg=="], - - "@eightshift/frontend-libs/webpack-cli/@discoveryjs/json-ext": ["@discoveryjs/json-ext@0.5.7", "", {}, "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw=="], - - "@eightshift/frontend-libs/webpack-cli/@webpack-cli/configtest": ["@webpack-cli/configtest@2.1.1", "", { "peerDependencies": { "webpack": "5.x.x", "webpack-cli": "5.x.x" } }, "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw=="], - - "@eightshift/frontend-libs/webpack-cli/@webpack-cli/info": ["@webpack-cli/info@2.0.2", "", { "peerDependencies": { "webpack": "5.x.x", "webpack-cli": "5.x.x" } }, "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A=="], - - "@eightshift/frontend-libs/webpack-cli/@webpack-cli/serve": ["@webpack-cli/serve@2.0.5", "", { "peerDependencies": { "webpack": "5.x.x", "webpack-cli": "5.x.x" } }, "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ=="], - - "@eightshift/frontend-libs/webpack-cli/commander": ["commander@10.0.1", "", {}, "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug=="], - "@eslint/eslintrc/ajv/json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], - "autoprefixer/browserslist/electron-to-chromium": ["electron-to-chromium@1.5.183", "", {}, "sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA=="], - - "autoprefixer/browserslist/node-releases": ["node-releases@2.0.19", "", {}, "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw=="], - - "caniuse-api/browserslist/electron-to-chromium": ["electron-to-chromium@1.5.183", "", {}, "sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA=="], - - "caniuse-api/browserslist/node-releases": ["node-releases@2.0.19", "", {}, "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw=="], - - "cliui/string-width/emoji-regex": ["emoji-regex@7.0.3", "", {}, "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="], - - "cliui/string-width/is-fullwidth-code-point": ["is-fullwidth-code-point@2.0.0", "", {}, "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w=="], - - "cliui/strip-ansi/ansi-regex": ["ansi-regex@4.1.1", "", {}, "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g=="], - - "cssnano-preset-default/browserslist/caniuse-lite": ["caniuse-lite@1.0.30001727", "", {}, "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q=="], - - "cssnano-preset-default/browserslist/electron-to-chromium": ["electron-to-chromium@1.5.183", "", {}, "sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA=="], - - "cssnano-preset-default/browserslist/node-releases": ["node-releases@2.0.19", "", {}, "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw=="], - "csso/css-tree/mdn-data": ["mdn-data@2.0.28", "", {}, "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g=="], - "del/globby/array-union": ["array-union@1.0.2", "", { "dependencies": { "array-uniq": "^1.0.1" } }, "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng=="], - - "del/globby/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], - - "del/globby/pify": ["pify@2.3.0", "", {}, "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="], - "eslint/ajv/json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], "eslint/eslint-scope/estraverse": ["estraverse@5.3.0", "", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="], - "file-loader/schema-utils/ajv": ["ajv@6.12.6", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="], - - "file-loader/schema-utils/ajv-keywords": ["ajv-keywords@3.5.2", "", { "peerDependencies": { "ajv": "^6.9.1" } }, "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ=="], - - "find-cache-dir/pkg-dir/find-up": ["find-up@6.3.0", "", { "dependencies": { "locate-path": "^7.1.0", "path-exists": "^5.0.0" } }, "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw=="], - "pkg-dir/find-up/locate-path": ["locate-path@5.0.0", "", { "dependencies": { "p-locate": "^4.1.0" } }, "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="], - "postcss-colormin/browserslist/caniuse-lite": ["caniuse-lite@1.0.30001727", "", {}, "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q=="], - - "postcss-colormin/browserslist/electron-to-chromium": ["electron-to-chromium@1.5.183", "", {}, "sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA=="], - - "postcss-colormin/browserslist/node-releases": ["node-releases@2.0.19", "", {}, "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw=="], - - "postcss-convert-values/browserslist/caniuse-lite": ["caniuse-lite@1.0.30001727", "", {}, "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q=="], - - "postcss-convert-values/browserslist/electron-to-chromium": ["electron-to-chromium@1.5.183", "", {}, "sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA=="], - - "postcss-convert-values/browserslist/node-releases": ["node-releases@2.0.19", "", {}, "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw=="], - - "postcss-merge-rules/browserslist/caniuse-lite": ["caniuse-lite@1.0.30001727", "", {}, "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q=="], - - "postcss-merge-rules/browserslist/electron-to-chromium": ["electron-to-chromium@1.5.183", "", {}, "sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA=="], - - "postcss-merge-rules/browserslist/node-releases": ["node-releases@2.0.19", "", {}, "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw=="], - - "postcss-minify-params/browserslist/caniuse-lite": ["caniuse-lite@1.0.30001727", "", {}, "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q=="], - - "postcss-minify-params/browserslist/electron-to-chromium": ["electron-to-chromium@1.5.183", "", {}, "sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA=="], - - "postcss-minify-params/browserslist/node-releases": ["node-releases@2.0.19", "", {}, "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw=="], - - "postcss-normalize-unicode/browserslist/caniuse-lite": ["caniuse-lite@1.0.30001727", "", {}, "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q=="], - - "postcss-normalize-unicode/browserslist/electron-to-chromium": ["electron-to-chromium@1.5.183", "", {}, "sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA=="], - - "postcss-normalize-unicode/browserslist/node-releases": ["node-releases@2.0.19", "", {}, "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw=="], - - "postcss-reduce-initial/browserslist/caniuse-lite": ["caniuse-lite@1.0.30001727", "", {}, "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q=="], - - "postcss-reduce-initial/browserslist/electron-to-chromium": ["electron-to-chromium@1.5.183", "", {}, "sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA=="], - - "postcss-reduce-initial/browserslist/node-releases": ["node-releases@2.0.19", "", {}, "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw=="], - - "raw-loader/schema-utils/ajv": ["ajv@6.12.6", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="], - - "raw-loader/schema-utils/ajv-keywords": ["ajv-keywords@3.5.2", "", { "peerDependencies": { "ajv": "^6.9.1" } }, "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ=="], - - "stylehacks/browserslist/caniuse-lite": ["caniuse-lite@1.0.30001727", "", {}, "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q=="], - - "stylehacks/browserslist/electron-to-chromium": ["electron-to-chromium@1.5.183", "", {}, "sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA=="], - - "stylehacks/browserslist/node-releases": ["node-releases@2.0.19", "", {}, "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw=="], - - "stylelint/file-entry-cache/flat-cache": ["flat-cache@6.1.11", "", { "dependencies": { "cacheable": "^1.10.1", "flatted": "^3.3.3", "hookified": "^1.10.0" } }, "sha512-zfOAns94mp7bHG/vCn9Ru2eDCmIxVQ5dELUHKjHfDEOJmHNzE+uGa6208kfkgmtym4a0FFjEuFksCXFacbVhSg=="], - - "wrap-ansi/ansi-styles/color-convert": ["color-convert@1.9.3", "", { "dependencies": { "color-name": "1.1.3" } }, "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="], - - "wrap-ansi/string-width/emoji-regex": ["emoji-regex@7.0.3", "", {}, "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="], - - "wrap-ansi/string-width/is-fullwidth-code-point": ["is-fullwidth-code-point@2.0.0", "", {}, "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w=="], - - "wrap-ansi/strip-ansi/ansi-regex": ["ansi-regex@4.1.1", "", {}, "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g=="], - - "yargs/find-up/locate-path": ["locate-path@3.0.0", "", { "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" } }, "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A=="], - - "yargs/string-width/emoji-regex": ["emoji-regex@7.0.3", "", {}, "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="], - - "yargs/string-width/is-fullwidth-code-point": ["is-fullwidth-code-point@2.0.0", "", {}, "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w=="], - - "yargs/string-width/strip-ansi": ["strip-ansi@5.2.0", "", { "dependencies": { "ansi-regex": "^4.1.0" } }, "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA=="], - - "@eightshift/frontend-libs/webpack/browserslist/caniuse-lite": ["caniuse-lite@1.0.30001727", "", {}, "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q=="], - - "@eightshift/frontend-libs/webpack/browserslist/electron-to-chromium": ["electron-to-chromium@1.5.183", "", {}, "sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA=="], - - "@eightshift/frontend-libs/webpack/browserslist/node-releases": ["node-releases@2.0.19", "", {}, "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw=="], - - "file-loader/schema-utils/ajv/json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], - - "find-cache-dir/pkg-dir/find-up/locate-path": ["locate-path@7.2.0", "", { "dependencies": { "p-locate": "^6.0.0" } }, "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA=="], - - "find-cache-dir/pkg-dir/find-up/path-exists": ["path-exists@5.0.0", "", {}, "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ=="], + "stylelint/file-entry-cache/flat-cache": ["flat-cache@6.1.19", "", { "dependencies": { "cacheable": "^2.2.0", "flatted": "^3.3.3", "hookified": "^1.13.0" } }, "sha512-l/K33newPTZMTGAnnzaiqSl6NnH7Namh8jBNjrgjprWxGmZUuxx/sJNIRaijOh3n7q7ESbhNZC+pvVZMFdeU4A=="], "pkg-dir/find-up/locate-path/p-locate": ["p-locate@4.1.0", "", { "dependencies": { "p-limit": "^2.2.0" } }, "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="], - "raw-loader/schema-utils/ajv/json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], - - "wrap-ansi/ansi-styles/color-convert/color-name": ["color-name@1.1.3", "", {}, "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="], - - "yargs/find-up/locate-path/p-locate": ["p-locate@3.0.0", "", { "dependencies": { "p-limit": "^2.0.0" } }, "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ=="], - - "yargs/find-up/locate-path/path-exists": ["path-exists@3.0.0", "", {}, "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ=="], - - "yargs/string-width/strip-ansi/ansi-regex": ["ansi-regex@4.1.1", "", {}, "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g=="], - - "find-cache-dir/pkg-dir/find-up/locate-path/p-locate": ["p-locate@6.0.0", "", { "dependencies": { "p-limit": "^4.0.0" } }, "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw=="], - "pkg-dir/find-up/locate-path/p-locate/p-limit": ["p-limit@2.3.0", "", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="], - - "yargs/find-up/locate-path/p-locate/p-limit": ["p-limit@2.3.0", "", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="], - - "find-cache-dir/pkg-dir/find-up/locate-path/p-locate/p-limit": ["p-limit@4.0.0", "", { "dependencies": { "yocto-queue": "^1.0.0" } }, "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ=="], - - "find-cache-dir/pkg-dir/find-up/locate-path/p-locate/p-limit/yocto-queue": ["yocto-queue@1.2.1", "", {}, "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg=="], } } diff --git a/eslint.config.mjs b/eslint.config.mjs index ad1e5cbbd..b7d247b90 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,3 +1,3 @@ -import config from '@eightshift/frontend-libs/linters/eslint.config.mjs'; +import config from '@eightshift/frontend-libs-tailwind/linters/eslint.config.mjs'; export default config; diff --git a/package.json b/package.json index a12938975..75664d0c8 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ }, "homepage": "https://github.com/infinum/eightshift-forms#readme", "scripts": { - "lintStyle": "stylelint **/*.scss", + "lintStyle": "stylelint **/*.css", "lintJs": "eslint src/", "lint": "npm run lintJs && npm run lintStyle && composer test:standards", "start": "webpack --progress --watch --mode development", @@ -38,15 +38,20 @@ "webpack-cli": "^6.0.1" }, "dependencies": { - "@eightshift/frontend-libs": "^12.1.9", - "@eightshift/ui-components": "^5.6.1", + "@eightshift/frontend-libs-tailwind": "^2.3.0", + "@eightshift/ui-components": "^6.0.6", "autosize": "^6.0.1", "baseline-browser-mapping": "^2.8.32", "caniuse-lite": "^1.0.30001757", "choices.js": "^11.1.0", "dropzone": "^6.0.0-beta.2", "flatpickr": "^4.6.13", - "reactflow": "^11.11.4" + "reactflow": "^11.11.4", + "@tailwindcss/postcss": "^4.1.17", + "@tailwindcss/typography": "^0.5.19", + "tailwindcss": "^4.1.17", + "tailwindcss-motion": "^1.1.1", + "tailwindcss-react-aria-components": "^2.0.1" }, "husky": { "hooks": { diff --git a/postcss.config.js b/postcss.config.js index 355e47e6e..8e8b1fa89 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,9 +1,5 @@ -/* eslint-disable import/no-extraneous-dependencies, global-require */ - -const autoprefixer = require('autoprefixer'); - module.exports = { - plugins: [ - autoprefixer, - ], + plugins: { + '@tailwindcss/postcss': {}, + }, }; diff --git a/preprocess-tailwind.js b/preprocess-tailwind.js new file mode 100644 index 000000000..cc807654e --- /dev/null +++ b/preprocess-tailwind.js @@ -0,0 +1,74 @@ +const fs = require('fs'); +const glob = require('glob'); + +// Make sure to change this in your project! +const BREAKPOINTS = ['sm', 'md']; + +const JSON_GLOB_PATTERN = 'src/**/manifest.json'; // Recursively find all manifest.json files + +const OUTPUT_FILE = 'es-tw-responsive-classes.txt'; // A file Tailwind will scan + +let classes = new Set(); + +const verbose = process.argv.includes('--verbose'); + +const getAllClasses = (input) => { + return Object.values(input).forEach((value) => { + value.split(' ').forEach((cls) => { + // classes.add(cls); + + BREAKPOINTS.forEach((bp) => { + classes.add(`${bp}:${cls}`); + classes.add(`max-${bp}:${cls}`); + }); + }); + }); +}; + +function processJsonFile(jsonPath) { + const content = fs.readFileSync(jsonPath, 'utf-8'); + const json = JSON.parse(content); + + if (!json?.tailwind?.options) { + return ''; + } + + classes = new Set(); + + const responsiveOptions = Object.values(json?.tailwind?.options)?.filter((option) => option.responsive); + + responsiveOptions.forEach(({ twClasses, twClassesEditor, twClassesEditorOnly }) => { + if (twClasses) { + getAllClasses(twClasses); + } + + if (twClassesEditor) { + getAllClasses(twClassesEditor); + } + + if (twClassesEditorOnly) { + getAllClasses(twClassesEditorOnly); + } + }); + + return [...classes].join(' '); +} + +// Find all manifest.json files inside src/ +const manifestFiles = glob.sync(JSON_GLOB_PATTERN); + +// Using Set to avoid duplicates. +const allClasses = new Set(); + +// Process manifests. +manifestFiles.forEach((filePath) => { + if (verbose) { + console.log(`├─ ${filePath}`); + } + + processJsonFile(filePath) + .split(/\s+/) + .forEach((cls) => allClasses.add(cls)); +}); + +fs.writeFileSync(OUTPUT_FILE, [...allClasses].join(' ')); diff --git a/src/Blocks/assets/application-admin-all.js b/src/Blocks/assets/application-admin-all.js index 044ecab77..80aa29224 100644 --- a/src/Blocks/assets/application-admin-all.js +++ b/src/Blocks/assets/application-admin-all.js @@ -5,5 +5,9 @@ * Usage: `WordPress admin all`. */ +import { dynamicImport } from '@eightshift/frontend-libs-tailwind/scripts/helpers'; + // Styles. -import './styles/admin-all.scss'; +import './styles/admin-all.css'; + +dynamicImport(require.context('./../components', true, /styles-admin-all\.css$/)); diff --git a/src/Blocks/assets/application-admin.js b/src/Blocks/assets/application-admin.js index f7c014eaf..73c7814f1 100644 --- a/src/Blocks/assets/application-admin.js +++ b/src/Blocks/assets/application-admin.js @@ -5,8 +5,12 @@ * Usage: `WordPress admin`. */ +import { dynamicImport } from '@eightshift/frontend-libs-tailwind/scripts/helpers'; + // Styles. -import './styles/admin.scss'; +import './styles/admin.css'; + +dynamicImport(require.context('./../components', true, /styles-admin\.css$/)); // Scripts. import './scripts/admin'; diff --git a/src/Blocks/assets/application-blocks-editor.js b/src/Blocks/assets/application-blocks-editor.js index 0429ce964..2900f4a1e 100644 --- a/src/Blocks/assets/application-blocks-editor.js +++ b/src/Blocks/assets/application-blocks-editor.js @@ -5,11 +5,15 @@ * Usage: `WordPress admin editor`. */ +import { dynamicImport } from '@eightshift/frontend-libs-tailwind/scripts'; + // Images. import './images/blocks-editor'; // Styles. -import './styles/blocks-editor.scss'; +import './styles/blocks-editor.css'; + +dynamicImport(require.context('./../components', true, /styles-editor\.css$/)); // Scripts. import './scripts/blocks-editor'; diff --git a/src/Blocks/assets/application-blocks-frontend-mandatory.js b/src/Blocks/assets/application-blocks-frontend-mandatory.js index c11c4f6b4..f7b8c4487 100644 --- a/src/Blocks/assets/application-blocks-frontend-mandatory.js +++ b/src/Blocks/assets/application-blocks-frontend-mandatory.js @@ -9,4 +9,4 @@ import './images/blocks-frontend-mandatory'; // Styles. -import './styles/blocks-frontend-mandatory.scss'; +import './styles/blocks-frontend-mandatory.css'; diff --git a/src/Blocks/assets/application-blocks-frontend.js b/src/Blocks/assets/application-blocks-frontend.js index a3319af87..e3c9c716b 100644 --- a/src/Blocks/assets/application-blocks-frontend.js +++ b/src/Blocks/assets/application-blocks-frontend.js @@ -6,7 +6,7 @@ */ // Styles. -import './styles/blocks-frontend.scss'; +import './styles/blocks-frontend.css'; // Scripts. import './scripts/blocks-frontend'; diff --git a/src/Blocks/assets/scripts/admin.js b/src/Blocks/assets/scripts/admin.js index fe8b646e0..63b28dc24 100644 --- a/src/Blocks/assets/scripts/admin.js +++ b/src/Blocks/assets/scripts/admin.js @@ -8,7 +8,12 @@ * Usage: `WordPress admin `. */ - import { dynamicImport } from '@eightshift/frontend-libs/scripts/helpers'; +import { dynamicImport } from '@eightshift/frontend-libs-tailwind/scripts/helpers'; // Find all blocks and require assets index.js inside it. dynamicImport(require.context('./../../components', true, /assets-admin\/index\.js$/)); +dynamicImport(require.context('./../../custom', true, /assets-admin\/index\.js$/)); + +// Output all frontend-only styles. +dynamicImport(require.context('./../../components', true, /styles-admin.css$/)); +dynamicImport(require.context('./../../custom', true, /styles-admin.css$/)); diff --git a/src/Blocks/assets/scripts/blocks-editor.js b/src/Blocks/assets/scripts/blocks-editor.js index 2aec795ab..ac2f2186e 100644 --- a/src/Blocks/assets/scripts/blocks-editor.js +++ b/src/Blocks/assets/scripts/blocks-editor.js @@ -11,10 +11,8 @@ */ import { unregisterBlockType } from '@wordpress/blocks'; -import { - registerBlocks, - outputCssVariablesGlobal, -} from '@eightshift/frontend-libs/scripts/editor'; +import { registerBlocks } from '@eightshift/frontend-libs-tailwind/scripts/editor'; +import { dynamicImport } from '@eightshift/frontend-libs-tailwind/scripts'; import globalManifest from '../../manifest.json'; import './store'; @@ -31,8 +29,9 @@ registerBlocks( require.context('./../../custom', true, /-overrides.js$/), ); -// Output global css variables. -outputCssVariablesGlobal(); +// Import styles. +dynamicImport(require.context('./../../components', true, /styles-editor.css$/)); +dynamicImport(require.context('./../../custom', true, /styles-editor.css$/)); if (esFormsLocalization?.currentPostType?.isForms) { globalManifest?.unregisterBlocks?.forms?.forEach((block) => unregisterBlockType(block)); @@ -45,4 +44,3 @@ if (esFormsLocalization?.currentPostType?.isResults) { if (esFormsLocalization?.currentPostType?.isCommon) { globalManifest?.unregisterBlocks?.common?.forEach((block) => unregisterBlockType(block)); } - diff --git a/src/Blocks/assets/scripts/blocks-frontend.js b/src/Blocks/assets/scripts/blocks-frontend.js index 758dd445b..58a6ab179 100644 --- a/src/Blocks/assets/scripts/blocks-frontend.js +++ b/src/Blocks/assets/scripts/blocks-frontend.js @@ -8,7 +8,15 @@ * Usage: `WordPress frontend screen`. */ -import { dynamicImport } from '@eightshift/frontend-libs/scripts/helpers'; +import { dynamicImport } from '@eightshift/frontend-libs-tailwind/scripts/helpers'; // Find all blocks and require assets index.js inside it. dynamicImport(require.context('./../../components', true, /assets\/index\.js$/)); +dynamicImport(require.context('./../../custom', true, /assets\/index\.js$/)); + +// Output all frontend-only styles. +dynamicImport(require.context('./../../components', true, /styles-frontend.css$/)); +dynamicImport(require.context('./../../custom', true, /styles-frontend.css$/)); + +// Images. +dynamicImport(require.context('./../images', true, /.svg$/)); diff --git a/src/Blocks/assets/scripts/store/index.js b/src/Blocks/assets/scripts/store/index.js index c2f36b6ac..4d7757ede 100644 --- a/src/Blocks/assets/scripts/store/index.js +++ b/src/Blocks/assets/scripts/store/index.js @@ -35,7 +35,7 @@ const actions = { }; // Define reducers - only setters. -const reducer = ( state = DEFAULT_STATE, action ) => { +const reducer = (state = DEFAULT_STATE, action) => { switch (action.type) { case 'SET_SYNC_DIALOG': { return { @@ -52,8 +52,10 @@ const reducer = ( state = DEFAULT_STATE, action ) => { } }; -register(createReduxStore(FORMS_STORE_NAME, { - selectors, - actions, - reducer, -})); +register( + createReduxStore(FORMS_STORE_NAME, { + selectors, + actions, + reducer, + }), +); diff --git a/src/Blocks/assets/styles/admin-all.css b/src/Blocks/assets/styles/admin-all.css new file mode 100644 index 000000000..def21ad66 --- /dev/null +++ b/src/Blocks/assets/styles/admin-all.css @@ -0,0 +1,7 @@ +/* Eightshift UI components */ +@import '@eightshift/ui-components/dist/assets/wp-overrides/replace-fonts.css'; +@import '@eightshift/ui-components/dist/assets/style-admin.css'; + +/* ES Utils styles */ +@import 'tailwindcss' prefix(esf); +@import '../../../../tailwind.css'; diff --git a/src/Blocks/assets/styles/admin-all.scss b/src/Blocks/assets/styles/admin-all.scss deleted file mode 100644 index 850314e87..000000000 --- a/src/Blocks/assets/styles/admin-all.scss +++ /dev/null @@ -1,14 +0,0 @@ -// stylelint-disable scss/load-partial-extension - -/** - * This is the main entry point for Admin styles used for the `WordPress admin`. - * File names must follow naming convention to be able to run dynamically. - * - * `src/blocks/custom/block_name/block_name-admin-all.scss`. - * - * Usage: `WordPress admin`. - * - */ - -// Find all components and require component_name-admin.scss inside it. -@import './../../components/*/*-admin-all.scss'; diff --git a/src/Blocks/assets/styles/admin.css b/src/Blocks/assets/styles/admin.css new file mode 100644 index 000000000..def21ad66 --- /dev/null +++ b/src/Blocks/assets/styles/admin.css @@ -0,0 +1,7 @@ +/* Eightshift UI components */ +@import '@eightshift/ui-components/dist/assets/wp-overrides/replace-fonts.css'; +@import '@eightshift/ui-components/dist/assets/style-admin.css'; + +/* ES Utils styles */ +@import 'tailwindcss' prefix(esf); +@import '../../../../tailwind.css'; diff --git a/src/Blocks/assets/styles/admin.scss b/src/Blocks/assets/styles/admin.scss deleted file mode 100644 index 8b644aa00..000000000 --- a/src/Blocks/assets/styles/admin.scss +++ /dev/null @@ -1,32 +0,0 @@ -// stylelint-disable scss/load-partial-extension - -/** - * This is the main entry point for Admin styles used for the `WordPress admin`. - * File names must follow naming convention to be able to run dynamically. - * - * `src/blocks/custom/block_name/block_name-admin.scss`. - * - * Usage: `WordPress admin`. - * - */ - -// Globals. -@import './parts/admin-theme-colors'; -@import './parts/shared'; - -// Find all components and require component_name-admin.scss inside it. -@import './../../components/*/*-admin.scss'; - -// Additional variables. -:root { - --global-es-radius-24: 1.5rem; - --global-es-radius-20: 1.25rem; - --global-es-radius-16: 1rem; - --global-es-radius-12: 0.75rem; - --global-es-radius-8: 0.5rem; -} - -.es-form-is-hidden { - display: none; - user-select: none; -} diff --git a/src/Blocks/assets/styles/blocks-editor.css b/src/Blocks/assets/styles/blocks-editor.css new file mode 100644 index 000000000..75f7a9e53 --- /dev/null +++ b/src/Blocks/assets/styles/blocks-editor.css @@ -0,0 +1,16 @@ +/* Eightshift UI components - WP overrides */ +@import '@eightshift/ui-components/dist/assets/wp-overrides/fix-label-text-case.css'; +@import '@eightshift/ui-components/dist/assets/wp-overrides/increase-sidebar-width.css'; +@import '@eightshift/ui-components/dist/assets/wp-overrides/make-block-messages-nicer.css'; +@import '@eightshift/ui-components/dist/assets/wp-overrides/restyle-tooltips.css'; +@import '@eightshift/ui-components/dist/assets/wp-overrides/round-corners.css'; +@import '@eightshift/ui-components/dist/assets/wp-overrides/unify-button-sizes.css'; +@import '@eightshift/ui-components/dist/assets/wp-overrides/replace-fonts.css'; +@import '@eightshift/ui-components/dist/assets/wp-overrides/allow-full-width-blocks.css'; + +/* Eightshift UI components */ +@import '@eightshift/ui-components/dist/assets/style.css'; + +/* ES Forms styles */ +@import 'tailwindcss' prefix(esf); +@import '../../../../tailwind.css'; diff --git a/src/Blocks/assets/styles/blocks-editor.scss b/src/Blocks/assets/styles/blocks-editor.scss deleted file mode 100644 index 44258a6da..000000000 --- a/src/Blocks/assets/styles/blocks-editor.scss +++ /dev/null @@ -1,24 +0,0 @@ -// stylelint-disable scss/load-partial-extension - -/** - * This is the main entry point for Block Editor blocks styles used for the `WordPress admin editor`. - * File names must follow naming convention to be able to run dynamically. - * - * `src/blocks/custom/block_name/block_name-editor.scss`. - * - * Usage: `WordPress admin editor`. - * - */ - -// Global. -@import './parts/shared'; - -// Utils helpers -@import '@eightshift/frontend-libs/styles/es-utility-classes'; -@import '@eightshift/frontend-libs/styles/es-component-styles'; - -// Find all components and require component_name-style.scss inside it. -@import './../../components/*/*-editor.scss'; - -// Find all blocks and require block_name-editor.scss inside it. -@import './../../custom/*/*-editor.scss'; diff --git a/src/Blocks/assets/styles/blocks-frontend-mandatory.css b/src/Blocks/assets/styles/blocks-frontend-mandatory.css new file mode 100644 index 000000000..e69de29bb diff --git a/src/Blocks/assets/styles/blocks-frontend-mandatory.scss b/src/Blocks/assets/styles/blocks-frontend-mandatory.scss deleted file mode 100644 index 4b26560af..000000000 --- a/src/Blocks/assets/styles/blocks-frontend-mandatory.scss +++ /dev/null @@ -1,21 +0,0 @@ -// stylelint-disable scss/load-partial-extension - -/** - * This is the main entry point for Block Editor blocks styles used for the `WordPress frontend screen`. - * But files that are mandatory to load if the user disables the options in admin. - * File names must follow naming convention to be able to run dynamically. - * - * `src/blocks/custom/block_name/block_name-editor.scss`. - * - * Usage: `WordPress frontend screen`. - * - */ - -// Globals. -@import './parts/shared'; - -// Find all components and require component_name-style.scss inside it. -@import './../../components/*/*-frontend-mandatory.scss'; - -// Find all blocks and require block_name-editor.scss inside it. -@import './../../custom/*/*-frontend-mandatory.scss'; diff --git a/src/Blocks/assets/styles/blocks-frontend.css b/src/Blocks/assets/styles/blocks-frontend.css new file mode 100644 index 000000000..e69de29bb diff --git a/src/Blocks/assets/styles/blocks-frontend.scss b/src/Blocks/assets/styles/blocks-frontend.scss deleted file mode 100644 index a4b4718d7..000000000 --- a/src/Blocks/assets/styles/blocks-frontend.scss +++ /dev/null @@ -1,20 +0,0 @@ -// stylelint-disable scss/load-partial-extension - -/** - * This is the main entry point for Block Editor blocks styles used for the `WordPress frontend screen`. - * File names must follow naming convention to be able to run dynamically. - * - * `src/blocks/custom/block_name/block_name-editor.scss`. - * - * Usage: `WordPress frontend screen`. - * - */ - -// Globals. -@import './parts/shared'; - -// Find all components and require component_name-style.scss inside it. -@import './../../components/*/*-frontend.scss'; - -// Find all blocks and require block_name-editor.scss inside it. -// @import './../../custom/*/*-frontend.scss'; diff --git a/src/Blocks/components/admin-listing/admin-listing.php b/src/Blocks/components/admin-listing/admin-listing.php index eca9b5f3e..243863e74 100644 --- a/src/Blocks/components/admin-listing/admin-listing.php +++ b/src/Blocks/components/admin-listing/admin-listing.php @@ -91,7 +91,7 @@ // This is fake form to be able to init state for global msg. -$formClasses = Helpers::classnames([ +$formClasses = Helpers::clsx([ UtilsHelper::getStateSelector('form'), Helpers::selector($componentClass, $componentClass, 'form'), ]); diff --git a/src/Blocks/components/admin-settings/admin-settings.php b/src/Blocks/components/admin-settings/admin-settings.php index f5447f13a..5adc013e9 100644 --- a/src/Blocks/components/admin-settings/admin-settings.php +++ b/src/Blocks/components/admin-settings/admin-settings.php @@ -28,7 +28,7 @@ $adminSettingsIsGlobal = Helpers::checkAttr('adminSettingsIsGlobal', $attributes, $manifest); $adminSettingsNotice = Helpers::checkAttr('adminSettingsNotice', $attributes, $manifest); -$layoutClass = Helpers::classnames([ +$layoutClass = Helpers::clsx([ Helpers::selector($componentClass, $componentClass), Helpers::selector($sectionClass, $sectionClass), Helpers::selector($sectionClass, $sectionClass, '', 'with-sidebar'), diff --git a/src/Blocks/components/card-inline/card-inline.php b/src/Blocks/components/card-inline/card-inline.php index 95a6e4e76..f7cb44b0c 100644 --- a/src/Blocks/components/card-inline/card-inline.php +++ b/src/Blocks/components/card-inline/card-inline.php @@ -25,7 +25,7 @@ $cardInlineUseHover = Helpers::checkAttr('cardInlineUseHover', $attributes, $manifest); $cardInlineUseDivider = Helpers::checkAttr('cardInlineUseDivider', $attributes, $manifest); -$cardInlineClass = Helpers::classnames([ +$cardInlineClass = Helpers::clsx([ Helpers::selector($componentClass, $componentClass), Helpers::selector($additionalClass, $additionalClass), Helpers::selector($cardInlineLastItem, $componentClass, '', 'last'), diff --git a/src/Blocks/components/checkbox/checkbox.php b/src/Blocks/components/checkbox/checkbox.php index df73f52ef..3444aefec 100644 --- a/src/Blocks/components/checkbox/checkbox.php +++ b/src/Blocks/components/checkbox/checkbox.php @@ -44,7 +44,7 @@ $twClasses = FormsHelper::getTwSelectors($checkboxTwSelectorsData, ['checkbox']); -$checkboxClass = Helpers::classnames([ +$checkboxClass = Helpers::clsx([ FormsHelper::getTwBase($twClasses, 'checkbox', $componentClass), Helpers::selector($componentClass && $checkboxAsToggleSize, $componentClass, '', $checkboxAsToggleSize), Helpers::selector($additionalClass, $additionalClass), @@ -52,7 +52,7 @@ Helpers::selector($checkboxIsHidden, UtilsHelper::getStateSelector('isHidden')), ]); -$checkboxInputClass = Helpers::classnames([ +$checkboxInputClass = Helpers::clsx([ FormsHelper::getTwPart($twClasses, 'checkbox', 'input', "{$componentClass}__input"), Helpers::selector($checkboxSingleSubmit, UtilsHelper::getStateSelectorAdmin('singleSubmit')), ]); diff --git a/src/Blocks/components/checkbox/components/checkbox-editor.js b/src/Blocks/components/checkbox/components/checkbox-editor.js index 7773d62c9..5a5414b30 100644 --- a/src/Blocks/components/checkbox/components/checkbox-editor.js +++ b/src/Blocks/components/checkbox/components/checkbox-editor.js @@ -1,30 +1,18 @@ -import React from 'react'; -import { select } from '@wordpress/data'; +import React from 'react'; import { __ } from '@wordpress/i18n'; -import classnames from 'classnames'; +import { checkAttr, getAttrKey } from '@eightshift/frontend-libs-tailwind/scripts'; import { - selector, - checkAttr, - props, - STORE_NAME, - getAttrKey, -} from '@eightshift/frontend-libs/scripts'; -import { ConditionalTagsEditor } from '../../conditional-tags/components/conditional-tags-editor'; -import { MissingName, VisibilityHidden, preventSaveOnMissingProps } from './../../utils'; + StatusFieldOutput, + StatusIconConditionals, + StatusIconHidden, + StatusIconMissingName, + preventSaveOnMissingProps, +} from './../../utils'; +import manifest from '../manifest.json'; +import { clsx } from '@eightshift/ui-components/utilities'; export const CheckboxEditor = (attributes) => { - const manifest = select(STORE_NAME).getComponent('checkbox'); - - const { - componentClass, - } = manifest; - - const { - selectorClass = componentClass, - blockClass, - additionalClass, - blockClientId, - } = attributes; + const { blockClientId, prefix } = attributes; const checkboxLabel = checkAttr('checkboxLabel', attributes, manifest); const checkboxValue = checkAttr('checkboxValue', attributes, manifest); @@ -33,36 +21,33 @@ export const CheckboxEditor = (attributes) => { preventSaveOnMissingProps(blockClientId, getAttrKey('checkboxValue', attributes, manifest), checkboxValue); - const checkboxClass = classnames([ - selector(componentClass, componentClass), - selector(blockClass, blockClass, selectorClass), - selector(additionalClass, additionalClass), - selector(checkboxIsHidden, 'es-form-is-hidden'), - ]); - - const checkboxLabelClass = classnames([ - selector(componentClass, componentClass, 'label'), - selector(checkboxLabel === '', componentClass, 'label', 'placeholder'), - selector(checkboxIsChecked, componentClass, 'label', 'checked'), - ]); - return ( -
- - -
-
- -
- - - - {checkboxValue && - - } -
+
+ + , + !checkboxValue && , + attributes?.[`${prefix}ConditionalTagsUse`] && , + ]} + />
); }; diff --git a/src/Blocks/components/checkbox/components/checkbox-options.js b/src/Blocks/components/checkbox/components/checkbox-options.js index 2f6e06e84..baf0cca93 100644 --- a/src/Blocks/components/checkbox/components/checkbox-options.js +++ b/src/Blocks/components/checkbox/components/checkbox-options.js @@ -1,29 +1,24 @@ import React from 'react'; -import { select } from '@wordpress/data'; import { useState } from '@wordpress/element'; import { __ } from '@wordpress/i18n'; -import { TextControl, PanelBody, Button, TextareaControl } from '@wordpress/components'; import { MediaPlaceholder } from '@wordpress/block-editor'; +import { checkAttr, getAttrKey, props } from '@eightshift/frontend-libs-tailwind/scripts'; import { - checkAttr, - getAttrKey, - icons, - IconLabel, - IconToggle, - Section, - props, - AnimatedContentVisibility, - STORE_NAME, -} from '@eightshift/frontend-libs/scripts'; + AnimatedVisibility, + RichLabel, + Button, + ContainerPanel, + InputField, + Toggle, + Spacer, +} from '@eightshift/ui-components'; +import { icons } from '@eightshift/ui-components/icons'; import { isOptionDisabled, NameField } from './../../utils'; import { ConditionalTagsOptions } from '../../conditional-tags/components/conditional-tags-options'; +import manifest from '../manifest.json'; export const CheckboxOptions = (attributes) => { - const manifest = select(STORE_NAME).getComponent('checkbox'); - - const { - setAttributes, - } = attributes; + const { setAttributes } = attributes; const [isNameChanged, setIsNameChanged] = useState(false); @@ -38,102 +33,120 @@ export const CheckboxOptions = (attributes) => { const checkboxIsHidden = checkAttr('checkboxIsHidden', attributes, manifest); return ( - -
- + + + + setAttributes({ [getAttrKey('checkboxHideLabelText', attributes, manifest)]: !value })} + /> + + {!checkboxHideLabelText && ( + setAttributes({ [getAttrKey('checkboxLabel', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('checkboxLabel', attributes, manifest), checkboxDisabledOptions)} /> -
+ )} -
- setAttributes({ [getAttrKey('checkboxHideLabelText', attributes, manifest)]: !value })} - reducedBottomSpacing + + + - {!checkboxHideLabelText && - setAttributes({ [getAttrKey('checkboxLabel', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('checkboxLabel', attributes, manifest), checkboxDisabledOptions)} - /> - } + + setAttributes({ [getAttrKey('checkboxIsChecked', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('checkboxIsChecked', attributes, manifest), checkboxDisabledOptions)} + /> - - - -
+ setAttributes({ [getAttrKey('checkboxIsDisabled', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('checkboxIsDisabled', attributes, manifest), checkboxDisabledOptions)} + /> -
- setAttributes({ [getAttrKey('checkboxIsChecked', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('checkboxIsChecked', attributes, manifest), checkboxDisabledOptions)} - /> + setAttributes({ [getAttrKey('checkboxIsHidden', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('checkboxIsHidden', attributes, manifest), checkboxDisabledOptions)} + /> - setAttributes({ [getAttrKey('checkboxIsDisabled', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('checkboxIsDisabled', attributes, manifest), checkboxDisabledOptions)} - /> + - setAttributes({ [getAttrKey('checkboxIsHidden', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('checkboxIsHidden', attributes, manifest), checkboxDisabledOptions)} - noBottomSpacing + {checkboxIcon ? ( + <> + +
+ )} -
- {checkboxIcon ? - <> - -
- -
- } - value={checkboxTracking} - onChange={(value) => setAttributes({ [getAttrKey('checkboxTracking', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('checkboxTracking', attributes, manifest), checkboxDisabledOptions)} - className='es-no-field-spacing' - /> -
+ value={checkboxTracking} + onChange={(value) => setAttributes({ [getAttrKey('checkboxTracking', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('checkboxTracking', attributes, manifest), checkboxDisabledOptions)} + /> { conditionalTagsIsHidden: checkboxIsHidden, })} /> -
+ ); }; diff --git a/src/Blocks/components/checkboxes/components/checkboxes-editor.js b/src/Blocks/components/checkboxes/components/checkboxes-editor.js index 8426c9854..e03cc4da2 100644 --- a/src/Blocks/components/checkboxes/components/checkboxes-editor.js +++ b/src/Blocks/components/checkboxes/components/checkboxes-editor.js @@ -1,45 +1,18 @@ import React from 'react'; -import { select } from '@wordpress/data'; -import { - STORE_NAME, - checkAttr, - props, - getAttrKey, -} from '@eightshift/frontend-libs/scripts'; +import { checkAttr, props, getAttrKey } from '@eightshift/frontend-libs-tailwind/scripts'; import { FieldEditor } from '../../field/components/field-editor'; -import { MissingName, preventSaveOnMissingProps } from './../../utils'; -import { ConditionalTagsEditor } from '../../conditional-tags/components/conditional-tags-editor'; +import { preventSaveOnMissingProps, StatusIconConditionals, StatusIconMissingName } from './../../utils'; +import manifest from '../manifest.json'; export const CheckboxesEditor = (attributes) => { - const manifest = select(STORE_NAME).getComponent('checkboxes'); - - const { - componentName - } = manifest; - - const { - additionalFieldClass, - blockClientId, - } = attributes; + const { blockClientId, prefix } = attributes; const checkboxesContent = checkAttr('checkboxesContent', attributes, manifest); const checkboxesName = checkAttr('checkboxesName', attributes, manifest); preventSaveOnMissingProps(blockClientId, getAttrKey('checkboxesName', attributes, manifest), checkboxesName); - const checkboxes = ( - <> - {checkboxesContent} - - - - {checkboxesName && - - } - - ); + const checkboxes =
{checkboxesContent}
; return ( <> @@ -48,8 +21,10 @@ export const CheckboxesEditor = (attributes) => { fieldContent: checkboxes, fieldIsRequired: checkAttr('checkboxesIsRequired', attributes, manifest), })} - additionalFieldClass={additionalFieldClass} - selectorClass={componentName} + statusSlog={[ + !checkboxesName && , + attributes?.[`${prefix}ConditionalTagsUse`] && , + ]} /> ); diff --git a/src/Blocks/components/checkboxes/components/checkboxes-options.js b/src/Blocks/components/checkboxes/components/checkboxes-options.js index 9f0bb4eef..f63ec3e73 100644 --- a/src/Blocks/components/checkboxes/components/checkboxes-options.js +++ b/src/Blocks/components/checkboxes/components/checkboxes-options.js @@ -1,35 +1,25 @@ import React, { useEffect } from 'react'; +import { useSelect } from '@wordpress/data'; import { useState } from '@wordpress/element'; -import { useSelect, select } from '@wordpress/data'; import { __, _n } from '@wordpress/i18n'; -import { TextControl, PanelBody } from '@wordpress/components'; +import { checkAttr, getAttrKey, props } from '@eightshift/frontend-libs-tailwind/scripts'; +import { AnimatedVisibility, Select, ContainerPanel, InputField, Toggle, Spacer } from '@eightshift/ui-components'; import { - checkAttr, - getAttrKey, - props, - icons, - Section, - IconToggle, - AnimatedContentVisibility, - STORE_NAME, - Select, - } from '@eightshift/frontend-libs/scripts'; -import { FieldOptions, FieldOptionsMore, FieldOptionsLayout, FieldOptionsVisibility } from '../../field/components/field-options'; + FieldOptions, + FieldOptionsMore, + FieldOptionsLayout, + FieldOptionsVisibility, +} from '../../field/components/field-options'; +import { icons } from '@eightshift/ui-components/icons'; import { isOptionDisabled, NameField } from './../../utils'; import { ConditionalTagsOptions } from '../../conditional-tags/components/conditional-tags-options'; +import manifest from '../manifest.json'; +import globalManifest from '../../../manifest.json'; export const CheckboxesOptions = (attributes) => { - const globalManifest = select(STORE_NAME).getSettings(); - const manifest = select(STORE_NAME).getComponent('checkboxes'); + const { options } = manifest; - const { - options, - } = manifest; - - const { - setAttributes, - clientId, - } = attributes; + const { setAttributes, clientId } = attributes; const [isNameChanged, setIsNameChanged] = useState(false); @@ -56,18 +46,22 @@ export const CheckboxesOptions = (attributes) => { }, [countInnerBlocksCheck]); return ( - -
- -
+ + + + { @@ -81,43 +77,43 @@ export const ConditionalTagsFormsOptions = (attributes) => { })} onChange={(value) => { conditionalTagsRulesForms[index][2] = value; - setAttributes({ [getAttrKey('conditionalTagsRulesForms', attributes, manifest)]: [...conditionalTagsRulesForms] }); + setAttributes({ + [getAttrKey('conditionalTagsRulesForms', attributes, manifest)]: [...conditionalTagsRulesForms], + }); }} - noBottomSpacing simpleValue noSearch - additionalSelectClasses='es-w-40' /> - } + )} - { conditionalTagsRulesForms[index][1] = value; - setAttributes({ [getAttrKey('conditionalTagsAction', attributes, manifest)]: [...conditionalTagsRulesForms] }); + setAttributes({ + [getAttrKey('conditionalTagsAction', attributes, manifest)]: [...conditionalTagsRulesForms], + }); }} - additionalContainerClass='es-w-40' - additionalButtonClass='es-h-7.5' - noBottomSpacing /> - - + + - {conditionalTagsUse && isModalOpen && + {conditionalTagsUse && isModalOpen && ( } + title={ + + } onRequestClose={() => setIsModalOpen(false)} > - - {conditionalTagsRulesForms.length > 0 && -
- {__('Field', 'eightshift-forms')} - {__('Visibility', 'eightshift-forms')} + {conditionalTagsRulesForms.length > 0 && ( +
+ {__('Field', 'eightshift-forms')} + {__('Visibility', 'eightshift-forms')}
- } + )} -
+
{conditionalTagsRulesForms?.map((_, index) => { return ( -
+
); @@ -185,30 +185,36 @@ export const ConditionalTagsFormsOptions = (attributes) => { -
- +
- } - + )} + ); }; diff --git a/src/Blocks/components/conditional-tags/components/conditional-tags-options.js b/src/Blocks/components/conditional-tags/components/conditional-tags-options.js index c9618def0..c93badbfb 100644 --- a/src/Blocks/components/conditional-tags/components/conditional-tags-options.js +++ b/src/Blocks/components/conditional-tags/components/conditional-tags-options.js @@ -1,20 +1,21 @@ import React, { useState, useEffect } from 'react'; import { __, sprintf } from '@wordpress/i18n'; -import { select } from "@wordpress/data"; +import { select } from '@wordpress/data'; import apiFetch from '@wordpress/api-fetch'; -import { TextControl, Button, Modal } from '@wordpress/components'; +import { Modal } from '@wordpress/components'; +import { getAttrKey, checkAttr } from '@eightshift/frontend-libs-tailwind/scripts'; import { - icons, - getAttrKey, - checkAttr, - IconToggle, - IconLabel, + BaseControl, Select, - Control, - Section, - STORE_NAME, - Notification, -} from '@eightshift/frontend-libs/scripts'; + RichLabel, + Notice, + Button, + InputField, + Toggle, + ContainerGroup, + Spacer, +} from '@eightshift/ui-components'; +import { icons } from '@eightshift/ui-components/icons'; import { getConstantsOptions } from '../../utils'; import { CONDITIONAL_TAGS_ACTIONS_LABELS, @@ -23,14 +24,10 @@ import { } from './conditional-tags-labels'; import { getRestUrl } from '../../form/assets/state-init'; import globalManifest from '../../../manifest.json'; +import manifest from '../manifest.json'; export const ConditionalTagsOptions = (attributes) => { - const manifest = select(STORE_NAME).getComponent('conditional-tags'); - - const { - setAttributes, - useCustom, - } = attributes; + const { setAttributes } = attributes; const postId = select('core/editor').getCurrentPostId(); @@ -45,13 +42,13 @@ export const ConditionalTagsOptions = (attributes) => { }); }, [postId]); - const conditionalTagsUse = !useCustom ? checkAttr('conditionalTagsUse', attributes, manifest) : attributes?.conditionalTagsUse; - const conditionalTagsRules = !useCustom ? checkAttr('conditionalTagsRules', attributes, manifest) : attributes?.conditionalTagsRules; - const conditionalTagsBlockName = !useCustom ? checkAttr('conditionalTagsBlockName', attributes, manifest) : attributes?.conditionalTagsBlockName; - const conditionalTagsIsHidden = !useCustom ? checkAttr('conditionalTagsIsHidden', attributes, manifest) : attributes?.conditionalTagsIsHidden; + const conditionalTagsUse = checkAttr('conditionalTagsUse', attributes, manifest); + const conditionalTagsRules = checkAttr('conditionalTagsRules', attributes, manifest); + const conditionalTagsBlockName = checkAttr('conditionalTagsBlockName', attributes, manifest); + const conditionalTagsIsHidden = checkAttr('conditionalTagsIsHidden', attributes, manifest); - const conditionalTagsUseKey = !useCustom ? getAttrKey('conditionalTagsUse', attributes, manifest) : 'conditionalTagsUse'; - const conditionalTagsRulesKey = !useCustom ? getAttrKey('conditionalTagsRules', attributes, manifest) : 'conditionalTagsRules'; + const conditionalTagsUseKey = getAttrKey('conditionalTagsUse', attributes, manifest); + const conditionalTagsRulesKey = getAttrKey('conditionalTagsRules', attributes, manifest); const ConditionalTagsType = () => { if (!formFields) { @@ -61,7 +58,10 @@ export const ConditionalTagsOptions = (attributes) => { return ( <>
- {sprintf(__('This field will be %s by default, but you can provide exception to this rule.', 'eightshift-forms'), CONDITIONAL_TAGS_ACTIONS_LABELS[conditionalTagsRules[0]])} + {sprintf( + __('This field will be %s by default, but you can provide exception to this rule.', 'eightshift-forms'), + CONDITIONAL_TAGS_ACTIONS_LABELS[conditionalTagsRules[0]], + )}
{ @@ -146,10 +152,8 @@ export const ConditionalTagsOptions = (attributes) => { conditionalTagsRules[1][parent][index][2] = ''; setAttributes({ [conditionalTagsRulesKey]: [...conditionalTagsRules] }); }} - noBottomSpacing simpleValue noSearch - additionalSelectClasses='es-w-40' /> { conditionalTagsRules[1][parent][index][2] = value; setAttributes({ [conditionalTagsRulesKey]: [...conditionalTagsRules] }); }} - noBottomSpacing simpleValue noSearch - additionalSelectClasses='es-w-40' /> - } + )} - {(total === index + 1) && + {total === index + 1 && ( - } + )}
); @@ -223,90 +225,93 @@ export const ConditionalTagsOptions = (attributes) => { const rulesCount = conditionalTagsRules?.[1]?.length && conditionalTagsRules?.[1]?.flat()?.length; return ( -
+ <> + <> - {formFields?.length < 1 ? - : - <> - { - setAttributes({ [conditionalTagsUseKey]: value }); - setAttributes({ [conditionalTagsRulesKey]: !value ? undefined : [globalManifest.comparatorActions.HIDE, []]}); - }} - noBottomSpacing={!conditionalTagsUse} - additionalClasses='es-font-weight-500' + {formFields?.length < 1 ? ( + - -
- {conditionalTagsIsHidden && - - } - - 0) && sprintf(__('%d rules', 'eightshift-forms'), rulesCount)} - noBottomSpacing - inlineLabel - > - - - - {isModalOpen && - } - onRequestClose={() => setIsModalOpen(false)} + ) : ( + <> + { + setAttributes({ [conditionalTagsUseKey]: value }); + setAttributes({ + [conditionalTagsRulesKey]: !value ? undefined : [globalManifest.comparatorActions.HIDE, []], + }); + }} + /> + + + {conditionalTagsIsHidden && ( + + )} + + 0 && sprintf(__('%d rules', 'eightshift-forms'), rulesCount)} > -
- -
- -
- - - -
-
- } -
- - } + + + + {isModalOpen && ( + + } + onRequestClose={() => setIsModalOpen(false)} + > +
+ +
+ +
+ + + +
+
+ )} + + + )} -
+ ); }; diff --git a/src/Blocks/components/country/components/country-editor.js b/src/Blocks/components/country/components/country-editor.js index 1d119541d..3c6bfd2a4 100644 --- a/src/Blocks/components/country/components/country-editor.js +++ b/src/Blocks/components/country/components/country-editor.js @@ -1,28 +1,12 @@ import React from 'react'; import { __ } from '@wordpress/i18n'; -import { select } from '@wordpress/data'; -import { - props, - checkAttr, - STORE_NAME, - getAttrKey, -} from '@eightshift/frontend-libs/scripts'; +import { props, checkAttr, getAttrKey } from '@eightshift/frontend-libs-tailwind/scripts'; import { FieldEditor } from '../../field/components/field-editor'; -import { MissingName, preventSaveOnMissingProps } from '../../utils'; -import { ConditionalTagsEditor } from '../../conditional-tags/components/conditional-tags-editor'; +import { preventSaveOnMissingProps, StatusIconMissingName, StatusIconConditionals } from '../../utils'; +import manifest from '../manifest.json'; export const CountryEditor = (attributes) => { - const manifest = select(STORE_NAME).getComponent('country'); - - const { - componentClass, - componentName - } = manifest; - - const { - additionalFieldClass, - blockClientId, - } = attributes; + const { blockClientId, prefix } = attributes; const countryName = checkAttr('countryName', attributes, manifest); @@ -30,17 +14,11 @@ export const CountryEditor = (attributes) => { const country = ( <> -
- {__('This data will be provided by an external source select in the sidebar!', 'eightshift-forms')} -
- - - - {countryName && - - } + ); @@ -51,8 +29,10 @@ export const CountryEditor = (attributes) => { fieldContent: country, fieldIsRequired: checkAttr('countryIsRequired', attributes, manifest), })} - additionalFieldClass={additionalFieldClass} - selectorClass={componentName} + statusSlog={[ + !countryName && , + attributes?.[`${prefix}ConditionalTagsUse`] && , + ]} /> ); diff --git a/src/Blocks/components/country/components/country-options.js b/src/Blocks/components/country/components/country-options.js index 4e3fef31e..5407955f2 100644 --- a/src/Blocks/components/country/components/country-options.js +++ b/src/Blocks/components/country/components/country-options.js @@ -1,16 +1,31 @@ import React from 'react'; import { __ } from '@wordpress/i18n'; -import { select } from '@wordpress/data'; import { useState } from '@wordpress/element'; -import { TextControl, PanelBody, Button } from '@wordpress/components'; -import { icons, checkAttr, getAttrKey, IconLabel, props, Section, IconToggle, STORE_NAME, Select, Control, NumberPicker } from '@eightshift/frontend-libs/scripts'; -import { FieldOptions, FieldOptionsMore, FieldOptionsLayout, FieldOptionsVisibility } from '../../field/components/field-options'; +import { checkAttr, getAttrKey, props } from '@eightshift/frontend-libs-tailwind/scripts'; +import { + BaseControl, + Select, + RichLabel, + NumberPicker, + Button, + ContainerPanel, + InputField, + Toggle, + ContainerGroup, + Spacer, +} from '@eightshift/ui-components'; +import { icons } from '@eightshift/ui-components/icons'; +import { + FieldOptions, + FieldOptionsMore, + FieldOptionsLayout, + FieldOptionsVisibility, +} from '../../field/components/field-options'; import { isOptionDisabled, NameField } from '../../utils'; import { ConditionalTagsOptions } from '../../conditional-tags/components/conditional-tags-options'; +import manifest from '../manifest.json'; export const CountryOptions = (attributes) => { - const manifest = select(STORE_NAME).getComponent('country'); - const { options } = manifest; const { setAttributes } = attributes; @@ -32,21 +47,21 @@ export const CountryOptions = (attributes) => { const countryValue = checkAttr('countryValue', attributes, manifest); return ( - -
+ - -
+ text={__('General', 'eightshift-forms')} + /> + { })} /> -
{!countryUseLabelAsPlaceholder && ( - setAttributes({ [getAttrKey('countryPlaceholder', attributes, manifest)]: value })} disabled={isOptionDisabled(getAttrKey('countryPlaceholder', attributes, manifest), countryDisabledOptions)} - className='es-no-field-spacing' /> )} - { setAttributes({ [getAttrKey('countryUseLabelAsPlaceholder', attributes, manifest)]: value }); }} /> -
+ { })} /> -
- setAttributes({ [getAttrKey('countryIsRequired', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('countryIsRequired', attributes, manifest), countryDisabledOptions)} - noBottomSpacing - /> + text={__('Validation', 'eightshift-forms')} + /> + setAttributes({ [getAttrKey('countryIsRequired', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('countryIsRequired', attributes, manifest), countryDisabledOptions)} + /> - {countryIsMultiple && ( - -
-
- setAttributes({ [getAttrKey('countryMinCount', attributes, manifest)]: value })} - min={options.countryMinCount.min} - step={options.countryMinCount.step} - disabled={isOptionDisabled(getAttrKey('countryMinCount', attributes, manifest), countryDisabledOptions)} - placeholder='–' - fixedWidth={4} - noBottomSpacing - /> + {countryIsMultiple && ( + +
+
+ setAttributes({ [getAttrKey('countryMinCount', attributes, manifest)]: value })} + min={options.countryMinCount.min} + step={options.countryMinCount.step} + disabled={isOptionDisabled(getAttrKey('countryMinCount', attributes, manifest), countryDisabledOptions)} + placeholder='–' + fixedWidth={4} + /> - {countryMinCount > 0 && !isOptionDisabled(getAttrKey('countryMinCount', attributes, manifest), countryDisabledOptions) && ( + {countryMinCount > 0 && + !isOptionDisabled(getAttrKey('countryMinCount', attributes, manifest), countryDisabledOptions) && (
+
-
- setAttributes({ [getAttrKey('countryMaxCount', attributes, manifest)]: value })} - min={options.countryMaxCount.min} - step={options.countryMaxCount.step} - disabled={isOptionDisabled(getAttrKey('countryMaxCount', attributes, manifest), countryDisabledOptions)} - placeholder='–' - fixedWidth={4} - noBottomSpacing - /> +
+ setAttributes({ [getAttrKey('countryMaxCount', attributes, manifest)]: value })} + min={options.countryMaxCount.min} + step={options.countryMaxCount.step} + disabled={isOptionDisabled(getAttrKey('countryMaxCount', attributes, manifest), countryDisabledOptions)} + placeholder='–' + fixedWidth={4} + /> - {countryMaxCount > 0 && !isOptionDisabled(getAttrKey('countryMaxCount', attributes, manifest), countryDisabledOptions) && ( + {countryMaxCount > 0 && + !isOptionDisabled(getAttrKey('countryMaxCount', attributes, manifest), countryDisabledOptions) && (
- - )} -
+
+ + )} -
- - } - value={countryValue} - onChange={(value) => setAttributes({ [getAttrKey('countryValue', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('countryValue', attributes, manifest), countryDisabledOptions)} - help={__('Initial value of the field in country code format (e.g. "hr"). If you want to select multiple countries, separate them with a comma. If geolocation is enabled it will be preselected based on the user\'s location.', 'eightshift-forms')} - /> + text={__('Advanced', 'eightshift-forms')} + /> + + } + value={countryValue} + onChange={(value) => setAttributes({ [getAttrKey('countryValue', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('countryValue', attributes, manifest), countryDisabledOptions)} + help={__( + 'Initial value of the field in country code format (e.g. "hr"). If you want to select multiple countries, separate them with a comma. If geolocation is enabled it will be preselected based on the user\'s location.', + 'eightshift-forms', + )} + /> - setAttributes({ [getAttrKey('countryValueType', attributes, manifest)]: value })} + label={__('Output value type', 'eightshift-forms')} + help={__('Determine which value to send on form submission.', 'eightshift-forms')} + options={[ + { + value: 'countryCode', + label: __('Country code (lowercase)', 'eightshift-forms'), + }, + { + value: 'countryCodeUppercase', + label: __('Country code (uppercase)', 'eightshift-forms'), + }, + { + value: 'countryName', + label: __('Localized country name (site locale)', 'eightshift-forms'), + }, + { + value: 'countryUnlocalizedName', + label: __('Country name in English', 'eightshift-forms'), + }, + ]} + simpleValue + /> - + - setAttributes({ [getAttrKey('countryIsDisabled', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('countryIsDisabled', attributes, manifest), countryDisabledOptions)} - /> + setAttributes({ [getAttrKey('countryIsDisabled', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('countryIsDisabled', attributes, manifest), countryDisabledOptions)} + /> - setAttributes({ [getAttrKey('countryUseSearch', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('countryUseSearch', attributes, manifest), countryDisabledOptions)} - /> + setAttributes({ [getAttrKey('countryUseSearch', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('countryUseSearch', attributes, manifest), countryDisabledOptions)} + /> - { - setAttributes({ [getAttrKey('countryIsMultiple', attributes, manifest)]: value }); - }} - disabled={isOptionDisabled(getAttrKey('countryIsMultiple', attributes, manifest), countryDisabledOptions)} - /> -
+ { + setAttributes({ [getAttrKey('countryIsMultiple', attributes, manifest)]: value }); + }} + disabled={isOptionDisabled(getAttrKey('countryIsMultiple', attributes, manifest), countryDisabledOptions)} + /> -
- - } - value={countryTracking} - onChange={(value) => setAttributes({ [getAttrKey('countryTracking', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('countryTracking', attributes, manifest), countryDisabledOptions)} - className='es-no-field-spacing' - /> -
+ text={__('Tracking', 'eightshift-forms')} + /> + + + } + value={countryTracking} + onChange={(value) => setAttributes({ [getAttrKey('countryTracking', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('countryTracking', attributes, manifest), countryDisabledOptions)} + /> { conditionalTagsIsHidden: checkAttr('countryFieldHidden', attributes, manifest), })} /> - + ); }; diff --git a/src/Blocks/components/country/country.php b/src/Blocks/components/country/country.php index 4e3f01e79..6bdd5c8fe 100644 --- a/src/Blocks/components/country/country.php +++ b/src/Blocks/components/country/country.php @@ -46,7 +46,7 @@ $countryHideLabel = false; $countryFieldLabel = $attributes[Helpers::getAttrKey('countryFieldLabel', $attributes, $manifest)] ?? ''; -$countryClass = Helpers::classnames([ +$countryClass = Helpers::clsx([ Helpers::selector($manifestSelect['componentClass'], $manifestSelect['componentClass'], 'select'), Helpers::selector($componentClass, $componentClass, 'select'), Helpers::selector($additionalClass, $additionalClass), diff --git a/src/Blocks/components/date/components/date-editor.js b/src/Blocks/components/date/components/date-editor.js index 4b902ad7f..b502bdb2f 100644 --- a/src/Blocks/components/date/components/date-editor.js +++ b/src/Blocks/components/date/components/date-editor.js @@ -1,25 +1,11 @@ import React from 'react'; -import classnames from 'classnames'; -import { select } from '@wordpress/data'; -import { - selector, - checkAttr, - props, - STORE_NAME, - getAttrKey, -} from '@eightshift/frontend-libs/scripts'; +import { checkAttr, props, getAttrKey } from '@eightshift/frontend-libs-tailwind/scripts'; import { FieldEditor } from '../../field/components/field-editor'; -import { MissingName, preventSaveOnMissingProps } from './../../utils'; -import { ConditionalTagsEditor } from '../../conditional-tags/components/conditional-tags-editor'; +import { preventSaveOnMissingProps, StatusIconConditionals, StatusIconMissingName } from './../../utils'; +import manifest from '../manifest.json'; export const DateEditor = (attributes) => { - const manifest = select(STORE_NAME).getComponent('date'); - - const { - additionalFieldClass, - additionalClass, - blockClientId, - } = attributes; + const { blockClientId, prefix } = attributes; const dateValue = checkAttr('dateValue', attributes, manifest); const datePlaceholder = checkAttr('datePlaceholder', attributes, manifest); @@ -28,28 +14,15 @@ export const DateEditor = (attributes) => { preventSaveOnMissingProps(blockClientId, getAttrKey('dateName', attributes, manifest), dateName); - const dateClass = classnames([ - selector(manifest.componentClass, manifest.componentClass), - selector(additionalClass, additionalClass), - ]); - const date = ( <> - - - - {dateName && - - } ); @@ -60,8 +33,10 @@ export const DateEditor = (attributes) => { fieldContent: date, fieldIsRequired: checkAttr('dateIsRequired', attributes, manifest), })} - additionalFieldClass={additionalFieldClass} - selectorClass={manifest.componentName} + statusSlog={[ + !dateName && , + attributes?.[`${prefix}ConditionalTagsUse`] && , + ]} /> ); diff --git a/src/Blocks/components/date/components/date-options.js b/src/Blocks/components/date/components/date-options.js index ff8fa266c..97825dbee 100644 --- a/src/Blocks/components/date/components/date-options.js +++ b/src/Blocks/components/date/components/date-options.js @@ -1,34 +1,32 @@ /* global esFormsLocalization */ import React from 'react'; -import { isArray } from 'lodash'; -import { select } from '@wordpress/data'; import { useState } from '@wordpress/element'; import { __ } from '@wordpress/i18n'; -import { TextControl, PanelBody, Button } from '@wordpress/components'; +import { checkAttr, getAttrKey, props, getOption } from '@eightshift/frontend-libs-tailwind/scripts'; +import { + FieldOptions, + FieldOptionsMore, + FieldOptionsLayout, + FieldOptionsVisibility, +} from '../../field/components/field-options'; import { - icons, - checkAttr, - getAttrKey, - IconLabel, - props, - Section, Select, - IconToggle, - getOption, - STORE_NAME, -} from '@eightshift/frontend-libs/scripts'; -import { FieldOptions, FieldOptionsMore, FieldOptionsLayout, FieldOptionsVisibility } from '../../field/components/field-options'; + RichLabel, + Button, + ContainerPanel, + InputField, + Toggle, + ContainerGroup, + Spacer, +} from '@eightshift/ui-components'; +import { icons } from '@eightshift/ui-components/icons'; import { isOptionDisabled, NameField } from '../../utils'; import { ConditionalTagsOptions } from '../../conditional-tags/components/conditional-tags-options'; +import manifest from '../manifest.json'; export const DateOptions = (attributes) => { - const manifest = select(STORE_NAME).getComponent('date'); - - const { - setAttributes, - title = __('Date', 'eightshift-forms'), - } = attributes; + const { setAttributes } = attributes; const [isNameChanged, setIsNameChanged] = useState(false); @@ -49,36 +47,38 @@ export const DateOptions = (attributes) => { let dateValidationPatternOptions = []; - if (typeof esFormsLocalization !== 'undefined' && isArray(esFormsLocalization?.validationPatternsOptions)) { + if (typeof esFormsLocalization !== 'undefined') { dateValidationPatternOptions = esFormsLocalization.validationPatternsOptions; } return ( - -
- + + - setAttributes({ [getAttrKey('dateType', attributes, manifest)]: value })} + simpleValue + noSearch + /> { })} /> -
- {!dateUseLabelAsPlaceholder && - setAttributes({ [getAttrKey('datePlaceholder', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('datePlaceholder', attributes, manifest), dateDisabledOptions)} - className='es-no-field-spacing' - /> - } - { - setAttributes({ [getAttrKey('datePlaceholder', attributes, manifest)]: undefined }); - setAttributes({ [getAttrKey('dateUseLabelAsPlaceholder', attributes, manifest)]: value }); - }} + {!dateUseLabelAsPlaceholder && ( + setAttributes({ [getAttrKey('datePlaceholder', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('datePlaceholder', attributes, manifest), dateDisabledOptions)} /> -
+ )} + { + setAttributes({ [getAttrKey('datePlaceholder', attributes, manifest)]: undefined }); + setAttributes({ [getAttrKey('dateUseLabelAsPlaceholder', attributes, manifest)]: value }); + }} + /> { })} /> -
- setAttributes({ [getAttrKey('dateIsRequired', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('dateIsRequired', attributes, manifest), dateDisabledOptions)} - /> + + setAttributes({ [getAttrKey('dateIsRequired', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('dateIsRequired', attributes, manifest), dateDisabledOptions)} + /> - setAttributes({ [getAttrKey('dateValidationPattern', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('dateValidationPattern', attributes, manifest), dateDisabledOptions)} + placeholder='–' + clearable + /> -
+ {__('You can use any valid formats by visiting the following button.', 'eightshift-forms')} + + - -

- - } - value={datePreviewFormat} - placeholder={manifest.formats[dateType].preview} - help={__('Define format of date/time the user will see', 'eightshift-forms')} - onChange={(value) => setAttributes({ [getAttrKey('datePreviewFormat', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('datePreviewFormat', attributes, manifest), dateDisabledOptions)} - /> + {__('View valid formats', 'eightshift-forms')} + - } - value={dateOutputFormat} - placeholder={manifest.formats[dateType].output} - help={__('Define format of date/time that will be sent when form is processed', 'eightshift-forms')} - onChange={(value) => setAttributes({ [getAttrKey('dateOutputFormat', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('dateOutputFormat', attributes, manifest), dateDisabledOptions)} - /> -
- -
- } - value={dateValue} - onChange={(value) => setAttributes({ [getAttrKey('dateValue', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('dateValue', attributes, manifest), dateDisabledOptions)} - /> + + } + value={datePreviewFormat} + placeholder={manifest.formats[dateType].preview} + help={__('Define format of date/time the user will see', 'eightshift-forms')} + onChange={(value) => setAttributes({ [getAttrKey('datePreviewFormat', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('datePreviewFormat', attributes, manifest), dateDisabledOptions)} + /> - setAttributes({ [getAttrKey('dateMode', attributes, manifest)]: value })} + simpleValue + noSearch + /> + + + + setAttributes({ [getAttrKey('dateIsReadOnly', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('dateIsReadOnly', attributes, manifest), dateDisabledOptions)} + /> + + setAttributes({ [getAttrKey('dateIsDisabled', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('dateIsDisabled', attributes, manifest), dateDisabledOptions)} + /> + + + + } + value={dateTracking} + onChange={(value) => setAttributes({ [getAttrKey('dateTracking', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('dateTracking', attributes, manifest), dateDisabledOptions)} + /> { conditionalTagsIsHidden: checkAttr('dateFieldHidden', attributes, manifest), })} /> - + ); }; diff --git a/src/Blocks/components/date/date.php b/src/Blocks/components/date/date.php index b66584322..adee7a3c5 100644 --- a/src/Blocks/components/date/date.php +++ b/src/Blocks/components/date/date.php @@ -43,7 +43,7 @@ $twClasses = FormsHelper::getTwSelectors($dateTwSelectorsData, ['date']); -$dateClass = Helpers::classnames([ +$dateClass = Helpers::clsx([ FormsHelper::getTwBase($twClasses, 'date', $componentClass), Helpers::selector($additionalClass, $additionalClass), ]); diff --git a/src/Blocks/components/divider/divider.php b/src/Blocks/components/divider/divider.php index 82a4e7737..deb06810e 100644 --- a/src/Blocks/components/divider/divider.php +++ b/src/Blocks/components/divider/divider.php @@ -15,7 +15,7 @@ $dividerNoSpacing = Helpers::checkAttr('dividerNoSpacing', $attributes, $manifest); $dividerNoDivider = Helpers::checkAttr('dividerNoDivider', $attributes, $manifest); -$dividerClass = Helpers::classnames([ +$dividerClass = Helpers::clsx([ Helpers::selector($componentClass, $componentClass), Helpers::selector($additionalClass, $additionalClass), Helpers::selector($dividerExtraVSpacing, $componentClass, '', 'extra-v-spacing'), diff --git a/src/Blocks/components/dynamic/components/dynamic-editor.js b/src/Blocks/components/dynamic/components/dynamic-editor.js index ed84e0594..972dc2420 100644 --- a/src/Blocks/components/dynamic/components/dynamic-editor.js +++ b/src/Blocks/components/dynamic/components/dynamic-editor.js @@ -1,54 +1,18 @@ import React from 'react'; -import { select } from '@wordpress/data'; -import classnames from 'classnames'; -import { - selector, - checkAttr, - props, - STORE_NAME, - getAttrKey, -} from '@eightshift/frontend-libs/scripts'; +import { checkAttr, props, getAttrKey } from '@eightshift/frontend-libs-tailwind/scripts'; import { FieldEditor } from '../../field/components/field-editor'; -import { MissingName, preventSaveOnMissingProps } from '../../utils'; -import { ConditionalTagsEditor } from '../../conditional-tags/components/conditional-tags-editor'; +import { preventSaveOnMissingProps, StatusIconMissingName, StatusIconConditionals } from '../../utils'; +import manifest from '../manifest.json'; export const DynamicEditor = (attributes) => { - const manifest = select(STORE_NAME).getComponent('dynamic'); - - const { - componentName, - componentClass - } = manifest; - - const { - additionalFieldClass, - blockClientId, - additionalClass, - } = attributes; + const { blockClientId, prefix } = attributes; const dynamicName = checkAttr('dynamicName', attributes, manifest); const dynamicCustomLabel = checkAttr('dynamicCustomLabel', attributes, manifest); - const dynamicClass = classnames([ - selector(componentClass, componentClass), - selector(additionalClass, additionalClass), - ]); - preventSaveOnMissingProps(blockClientId, getAttrKey('dynamicName', attributes, manifest), dynamicName); - const dynamic = ( -
- {dynamicCustomLabel} - - - - {dynamicName && - - } -
- ); + const dynamic =
{dynamicCustomLabel}
; return ( { fieldIsRequired: checkAttr('dynamicIsRequired', attributes, manifest), fieldHidden: checkAttr('dynamicIsDeactivated', attributes, manifest), })} - additionalFieldClass={additionalFieldClass} - selectorClass={componentName} + statusSlog={[ + !dynamicName && , + attributes?.[`${prefix}ConditionalTagsUse`] && , + ]} /> ); }; diff --git a/src/Blocks/components/dynamic/components/dynamic-options.js b/src/Blocks/components/dynamic/components/dynamic-options.js index 84c02f0cc..093eed165 100644 --- a/src/Blocks/components/dynamic/components/dynamic-options.js +++ b/src/Blocks/components/dynamic/components/dynamic-options.js @@ -1,29 +1,21 @@ import React from 'react'; import { useState } from '@wordpress/element'; -import { select } from '@wordpress/data'; import { __ } from '@wordpress/i18n'; -import { TextControl, PanelBody } from '@wordpress/components'; +import { checkAttr, getAttrKey, props } from '@eightshift/frontend-libs-tailwind/scripts'; import { - icons, - checkAttr, - getAttrKey, - IconLabel, - props, - Section, - IconToggle, - STORE_NAME, -} from '@eightshift/frontend-libs/scripts'; -import { FieldOptions, FieldOptionsMore, FieldOptionsLayout, FieldOptionsVisibility } from '../../field/components/field-options'; + FieldOptions, + FieldOptionsMore, + FieldOptionsLayout, + FieldOptionsVisibility, +} from '../../field/components/field-options'; +import { RichLabel, ContainerPanel, InputField, Toggle, ContainerGroup } from '@eightshift/ui-components'; +import { icons } from '@eightshift/ui-components/icons'; import { isOptionDisabled, NameField } from '../../utils'; import { ConditionalTagsOptions } from '../../conditional-tags/components/conditional-tags-options'; +import manifest from '../manifest.json'; export const DynamicOptions = (attributes) => { - const manifest = select(STORE_NAME).getComponent('dynamic'); - - const { - setAttributes, - title = __('Dynamic', 'eightshift-forms'), - } = attributes; + const { setAttributes, title = __('Dynamic', 'eightshift-forms') } = attributes; const [isNameChanged, setIsNameChanged] = useState(false); @@ -36,8 +28,8 @@ export const DynamicOptions = (attributes) => { const dynamicIsMultiple = checkAttr('dynamicIsMultiple', attributes, manifest); return ( - - + { disabled={isOptionDisabled(getAttrKey('dynamicIsDeactivated', attributes, manifest), dynamicDisabledOptions)} /> - {!dynamicIsDeactivated && + {!dynamicIsDeactivated && ( <> -
+ { isChanged={isNameChanged} setIsChanged={setIsNameChanged} /> -
+ { })} /> -
+ - {dynamicType === 'select' && - { setAttributes({ [getAttrKey('dynamicIsMultiple', attributes, manifest)]: value }); }} - disabled={isOptionDisabled(getAttrKey('dynamicIsMultiple', attributes, manifest), dynamicDisabledOptions)} - noBottomSpacing + disabled={isOptionDisabled( + getAttrKey('dynamicIsMultiple', attributes, manifest), + dynamicDisabledOptions, + )} /> - } -
+ )} + -
- + setAttributes({ [getAttrKey('dynamicIsRequired', attributes, manifest)]: value })} disabled={isOptionDisabled(getAttrKey('dynamicIsRequired', attributes, manifest), dynamicDisabledOptions)} /> -
+ -
- } + + + } value={dynamicTracking} onChange={(value) => setAttributes({ [getAttrKey('dynamicTracking', attributes, manifest)]: value })} disabled={isOptionDisabled(getAttrKey('dynamicTracking', attributes, manifest), dynamicDisabledOptions)} - className='es-no-field-spacing' /> -
+ { })} /> - } -
+ )} + ); }; diff --git a/src/Blocks/components/error/error.php b/src/Blocks/components/error/error.php index 4434f5a1c..5d547648f 100644 --- a/src/Blocks/components/error/error.php +++ b/src/Blocks/components/error/error.php @@ -20,7 +20,7 @@ $twClasses = FormsHelper::getTwSelectors($errorTwSelectorsData, ['error']); -$errorClass = Helpers::classnames([ +$errorClass = Helpers::clsx([ FormsHelper::getTwBase($twClasses, 'error', $componentClass), Helpers::selector($selectorClass, $selectorClass, $componentClass), Helpers::selector($additionalClass, $additionalClass), diff --git a/src/Blocks/components/field/components/field-editor.js b/src/Blocks/components/field/components/field-editor.js index 4ac63c2ad..1b88a3997 100644 --- a/src/Blocks/components/field/components/field-editor.js +++ b/src/Blocks/components/field/components/field-editor.js @@ -1,54 +1,34 @@ /* global esFormsLocalization */ import React from 'react'; -import classnames from 'classnames'; -import { isObject } from 'lodash'; import { __ } from '@wordpress/i18n'; -import { dispatch, select } from '@wordpress/data'; -import { selector, checkAttr, outputCssVariables, STORE_NAME, props } from '@eightshift/frontend-libs/scripts'; -import { MissingName, VisibilityHidden } from './../../utils'; -import { ConditionalTagsEditor } from '../../conditional-tags/components/conditional-tags-editor'; - -export const FieldEditorExternalBlocks = ({ attributes, children, clientId, fieldName }) => { - const manifest = select(STORE_NAME).getComponent('field'); - - const { componentClass } = manifest; - - const fieldClass = classnames([selector(componentClass, componentClass), selector(componentClass, componentClass, '', 'field')]); +import { checkAttr } from '@eightshift/frontend-libs-tailwind/scripts'; +import { StatusIconHidden, StatusFieldOutput } from './../../utils'; +import manifest from '../manifest.json'; +import { clsx } from '@eightshift/ui-components/utilities'; +export const FieldEditorExternalBlocks = ({ attributes, children, fieldName }) => { return ( -
- {outputCssVariables(attributes, manifest, clientId, {}, 'wp-block')} -
-
-
+
+
+
+
{children} - - - {fieldName && ( + {/* {fieldName && ( - )} + )} */}
); }; - export const FieldEditor = (attributes) => { - const manifest = select(STORE_NAME).getComponent('field'); - - const { componentClass } = manifest; - - const { selectorClass = componentClass, additionalFieldClass, clientId } = attributes; + const { statusSlog = [] } = attributes; const fieldContent = checkAttr('fieldContent', attributes, manifest); const fieldSkip = checkAttr('fieldSkip', attributes, manifest); @@ -64,98 +44,26 @@ export const FieldEditor = (attributes) => { const fieldBeforeContent = checkAttr('fieldBeforeContent', attributes, manifest); const fieldAfterContent = checkAttr('fieldAfterContent', attributes, manifest); const fieldSuffixContent = checkAttr('fieldSuffixContent', attributes, manifest); - const fieldType = checkAttr('fieldType', attributes, manifest); const fieldHelp = checkAttr('fieldHelp', attributes, manifest); - const fieldStyle = checkAttr('fieldStyle', attributes, manifest); const fieldHidden = checkAttr('fieldHidden', attributes, manifest); - const fieldClass = classnames([ - selector(componentClass, componentClass), - selector(componentClass, componentClass, '', selectorClass), - selector(additionalFieldClass, additionalFieldClass), - selector(fieldHidden, 'es-form-is-hidden'), - selector(fieldStyle && componentClass, componentClass, '', fieldStyle), - ]); - - const labelClass = classnames([selector(componentClass, componentClass, 'label'), selector(fieldIsRequired && componentClass, componentClass, 'label', 'is-required')]); - - const LabelDefault = () => ( - <> - {!fieldHideLabel && ( -
- -
- )} - - ); - - const LegendDefault = () => ( - <> - {!fieldHideLabel && ( -
- -
+ return ( +
+ {fieldLabel && !fieldHideLabel && ( +
)} - - ); - - const Content = () => ( -
- {fieldBeforeContent &&
{fieldBeforeContent}
} -
- {fieldContent} + {fieldBeforeContent &&
{fieldBeforeContent}
} - {fieldSuffixContent &&
{fieldSuffixContent}
} +
+ {fieldContent} , ...statusSlog]} />
- {fieldAfterContent &&
{fieldAfterContent}
} + + {fieldSuffixContent &&
{fieldSuffixContent}
} + {fieldAfterContent &&
{fieldAfterContent}
} + {fieldHelp &&
{fieldHelp}
}
); - - const Help = () =>
{fieldHelp}
; - - const DivContent = () => { - return ( -
- {outputCssVariables(attributes, manifest, clientId, {}, 'wp-block')} - -
- {fieldLabel && } - - -
- - -
- ); - }; - - const FieldsetContent = () => { - return ( -
- {outputCssVariables(attributes, manifest, clientId, {}, 'wp-block')} - -
- {fieldLabel && } - - -
- - -
- ); - }; - - return fieldType === 'div' ? : ; }; diff --git a/src/Blocks/components/field/components/field-options.js b/src/Blocks/components/field/components/field-options.js index 12296e7c1..1e8e9d223 100644 --- a/src/Blocks/components/field/components/field-options.js +++ b/src/Blocks/components/field/components/field-options.js @@ -3,47 +3,34 @@ import React from 'react'; import { __ } from '@wordpress/i18n'; import { useState } from '@wordpress/element'; -import { select } from '@wordpress/data'; -import { TextareaControl, TextControl } from '@wordpress/components'; -import { isObject } from 'lodash'; -import { - icons, - checkAttr, - getAttrKey, - IconLabel, - IconToggle, - AnimatedContentVisibility, - STORE_NAME, - Section, - ResponsiveNumberPicker, - getDefaultBreakpointNames, - ucfirst, - MultiSelect, - props, -} from '@eightshift/frontend-libs/scripts'; +import { isObject } from '@eightshift/ui-components/utilities'; +import { checkAttr, getAttrKey, props } from '@eightshift/frontend-libs-tailwind/scripts'; +import { AnimatedVisibility, MultiSelect, RichLabel, InputField, Toggle, Spacer } from '@eightshift/ui-components'; +import { icons } from '@eightshift/ui-components/icons'; import { isOptionDisabled, NameField } from '../../utils'; import { ConditionalTagsOptions } from '../../../components/conditional-tags/components/conditional-tags-options'; +import manifest from '../manifest.json'; -export const FieldOptionsExternalBlocks = ({ - attributes, - setAttributes, -}) => { - +export const FieldOptionsExternalBlocks = ({ attributes, setAttributes }) => { const [isNameChanged, setIsNameChanged] = useState(false); return ( <> -
- -
+ + + ); }; export const FieldOptions = (attributes) => { - const manifest = select(STORE_NAME).getComponent('field'); - const { setAttributes, @@ -75,30 +59,38 @@ export const FieldOptions = (attributes) => { return ( <> - {showFieldLabel && -
- {showFieldHideLabel && - + + {showFieldHideLabel && ( + setAttributes({ [getAttrKey('fieldHideLabel', attributes, manifest)]: !value })} - reducedBottomSpacing /> - } + )} - {!fieldHideLabel && - setAttributes({ [getAttrKey('fieldLabel', attributes, manifest)]: value })} disabled={fieldHideLabel} /> - } + )} - - - -
- } + + + + + )} {additionalControls} @@ -106,19 +98,12 @@ export const FieldOptions = (attributes) => { }; export const FieldOptionsLayout = (attributes) => { - const manifest = select(STORE_NAME).getComponent('field'); - const { - responsiveAttributes: { - fieldWidth, - }, + responsiveAttributes: { fieldWidth }, options, } = manifest; - const { - blockName, - setAttributes, - } = attributes; + const { blockName, setAttributes } = attributes; const fieldStyle = checkAttr('fieldStyle', attributes, manifest); @@ -129,39 +114,32 @@ export const FieldOptionsLayout = (attributes) => { } return ( -
- { - return { - ...all, - [current]: checkAttr(fieldWidth[current], attributes, manifest, true), - }; - }, {})} - onChange={(value) => { - const newData = Object.entries(value).reduce((all, [breakpoint, currentValue]) => { - return { - ...all, - [getAttrKey(`fieldWidth${ucfirst(breakpoint)}`, attributes, manifest)]: currentValue, - }; - }, {}); - - setAttributes(newData); - }} - - min={options.fieldWidth.min} - max={options.fieldWidth.max} - step={options.fieldWidth.step} - + <> + + {/* - - {fieldStyleOptions?.length > 0 && + > + {({ currentValue, handleChange }) => ( + + )} + */} + + {fieldStyleOptions?.length > 0 && ( { options={fieldStyleOptions} onChange={(value) => setAttributes({ [getAttrKey('fieldStyle', attributes, manifest)]: value })} simpleValue - additionalSelectClasses='es-w-50' - inlineLabel /> - } -
+ )} + ); }; export const FieldOptionsMore = (attributes) => { - const manifest = select(STORE_NAME).getComponent('field'); - - const { - setAttributes, - } = attributes; + const { setAttributes } = attributes; const fieldHelp = checkAttr('fieldHelp', attributes, manifest); const fieldBeforeContent = checkAttr('fieldBeforeContent', attributes, manifest); @@ -190,54 +162,69 @@ export const FieldOptionsMore = (attributes) => { const fieldSuffixContent = checkAttr('fieldSuffixContent', attributes, manifest); return ( -
+ <> + <> - } + + } value={fieldHelp} onChange={(value) => setAttributes({ [getAttrKey('fieldHelp', attributes, manifest)]: value })} /> - } + + } value={fieldBeforeContent} onChange={(value) => setAttributes({ [getAttrKey('fieldBeforeContent', attributes, manifest)]: value })} /> - } + + } value={fieldAfterContent} onChange={(value) => setAttributes({ [getAttrKey('fieldAfterContent', attributes, manifest)]: value })} - className='es-no-field-spacing' /> - } + + } value={fieldSuffixContent} onChange={(value) => setAttributes({ [getAttrKey('fieldSuffixContent', attributes, manifest)]: value })} - className='es-no-field-spacing' /> -
+ ); }; export const FieldOptionsVisibility = (attributes) => { - const manifest = select(STORE_NAME).getComponent('field'); - - const { - setAttributes, - } = attributes; + const { setAttributes } = attributes; const fieldHidden = checkAttr('fieldHidden', attributes, manifest); const fieldDisabledOptions = checkAttr('fieldDisabledOptions', attributes, manifest); return ( - { /> ); }; - diff --git a/src/Blocks/components/field/field.php b/src/Blocks/components/field/field.php index de49dfded..007d4fd3a 100644 --- a/src/Blocks/components/field/field.php +++ b/src/Blocks/components/field/field.php @@ -85,7 +85,7 @@ static function ($item) use ($componentClass) { $selectorClass, ]); -$fieldClass = Helpers::classnames([ +$fieldClass = Helpers::clsx([ FormsHelper::getTwBase($twClasses, 'field', $componentClass), FormsHelper::getTwPart($twClasses, $selectorClass, 'field', "{$componentClass}--{$selectorClass}"), Helpers::selector($additionalFieldClass, $additionalFieldClass), @@ -99,48 +99,48 @@ static function ($item) use ($componentClass) { ...$fieldStyleOutput, ]); -$labelClass = Helpers::classnames([ +$labelClass = Helpers::clsx([ FormsHelper::getTwPart($twClasses, 'field', 'label', "{$componentClass}__label"), FormsHelper::getTwPart($twClasses, $selectorClass, 'field-label'), Helpers::selector($fieldIsRequired && $componentClass, $componentClass, 'label', 'is-required'), ]); -$labelInnerClass = Helpers::classnames([ +$labelInnerClass = Helpers::clsx([ FormsHelper::getTwPart($twClasses, 'field', 'label-inner', "{$componentClass}__label-inner"), FormsHelper::getTwPart($twClasses, $selectorClass, 'field-label-inner'), ]); -$innerClass = Helpers::classnames([ +$innerClass = Helpers::clsx([ FormsHelper::getTwPart($twClasses, 'field', 'inner', "{$componentClass}__inner"), FormsHelper::getTwPart($twClasses, $selectorClass, 'field-inner'), ]); -$contentClass = Helpers::classnames([ +$contentClass = Helpers::clsx([ FormsHelper::getTwPart($twClasses, 'field', 'content', "{$componentClass}__content"), FormsHelper::getTwPart($twClasses, $selectorClass, 'field-content'), ]); -$beforeContentClass = Helpers::classnames([ +$beforeContentClass = Helpers::clsx([ FormsHelper::getTwPart($twClasses, 'field', 'before-content', "{$componentClass}__before-content"), FormsHelper::getTwPart($twClasses, $selectorClass, 'field-before-content'), ]); -$suffixContentClass = Helpers::classnames([ +$suffixContentClass = Helpers::clsx([ FormsHelper::getTwPart($twClasses, 'field', 'suffix-content', "{$componentClass}__suffix-content"), FormsHelper::getTwPart($twClasses, $selectorClass, 'field-suffix-content'), ]); -$afterContentClass = Helpers::classnames([ +$afterContentClass = Helpers::clsx([ FormsHelper::getTwPart($twClasses, 'field', 'after-content', "{$componentClass}__after-content"), FormsHelper::getTwPart($twClasses, $selectorClass, 'field-after-content'), ]); -$helpClass = Helpers::classnames([ +$helpClass = Helpers::clsx([ FormsHelper::getTwPart($twClasses, 'field', 'help', "{$componentClass}__help"), FormsHelper::getTwPart($twClasses, $selectorClass, 'field-help'), ]); -$contentWrapClass = Helpers::classnames([ +$contentWrapClass = Helpers::clsx([ FormsHelper::getTwPart($twClasses, 'field', 'content-wrap', "{$componentClass}__content-wrap"), FormsHelper::getTwPart($twClasses, $selectorClass, 'field-content-wrap'), ]); @@ -260,7 +260,7 @@ class="" Helpers::props('error', $attributes, [ 'errorId' => $fieldId, 'selectorClass' => $componentClass, - 'additionalClass' => Helpers::classnames([ + 'additionalClass' => Helpers::clsx([ FormsHelper::getTwPart($twClasses, 'field', 'error'), FormsHelper::getTwPart($twClasses, $selectorClass, 'field-error'), ]), diff --git a/src/Blocks/components/file/components/file-editor.js b/src/Blocks/components/file/components/file-editor.js index 654df49fe..44a85837f 100644 --- a/src/Blocks/components/file/components/file-editor.js +++ b/src/Blocks/components/file/components/file-editor.js @@ -1,28 +1,12 @@ import React from 'react'; import { __ } from '@wordpress/i18n'; -import { select } from '@wordpress/data'; -import { - props, - checkAttr, - STORE_NAME, - getAttrKey, -} from '@eightshift/frontend-libs/scripts'; +import { props, checkAttr, getAttrKey } from '@eightshift/frontend-libs-tailwind/scripts'; import { FieldEditor } from '../../field/components/field-editor'; -import { MissingName, preventSaveOnMissingProps } from './../../utils'; -import { ConditionalTagsEditor } from '../../conditional-tags/components/conditional-tags-editor'; +import { preventSaveOnMissingProps, StatusIconConditionals, StatusIconMissingName } from './../../utils'; +import manifest from '../manifest.json'; export const FileEditor = (attributes) => { - const manifest = select(STORE_NAME).getComponent('file'); - - const { - componentClass, - componentName, - } = manifest; - - const { - additionalFieldClass, - blockClientId, - } = attributes; + const { blockClientId, prefix } = attributes; const fileName = checkAttr('fileName', attributes, manifest); const fileCustomInfoText = checkAttr('fileCustomInfoText', attributes, manifest); @@ -32,25 +16,18 @@ export const FileEditor = (attributes) => { preventSaveOnMissingProps(blockClientId, getAttrKey('fileName', attributes, manifest), fileName); const file = ( - <> -
- {fileCustomInfoTextUse && fileCustomInfoText} - {!fileCustomInfoTextUse && __('Drag and drop files here', 'eightshift-forms')} - +
+
+
+ {fileCustomInfoTextUse && fileCustomInfoText} + {!fileCustomInfoTextUse && __('Drag and drop files here', 'eightshift-forms')} +
-
+
{fileCustomInfoButtonText?.length > 0 ? fileCustomInfoButtonText : __('Add files', 'eightshift-forms')}
- - - - {fileName && - - } - +
); return ( @@ -60,8 +37,10 @@ export const FileEditor = (attributes) => { fieldContent: file, fieldIsRequired: checkAttr('fileIsRequired', attributes, manifest), })} - additionalFieldClass={additionalFieldClass} - selectorClass={componentName} + statusSlog={[ + !fileName && , + attributes?.[`${prefix}ConditionalTagsUse`] && , + ]} /> ); diff --git a/src/Blocks/components/file/components/file-options.js b/src/Blocks/components/file/components/file-options.js index 17256f4ef..5656cadb2 100644 --- a/src/Blocks/components/file/components/file-options.js +++ b/src/Blocks/components/file/components/file-options.js @@ -1,19 +1,29 @@ import React from 'react'; import { useState } from '@wordpress/element'; -import { select } from '@wordpress/data'; import { __ } from '@wordpress/i18n'; -import { TextControl, PanelBody } from '@wordpress/components'; -import { icons, checkAttr, getAttrKey, IconLabel, props, Section, IconToggle, Control, STORE_NAME } from '@eightshift/frontend-libs/scripts'; -import { FieldOptions, FieldOptionsMore, FieldOptionsLayout, FieldOptionsVisibility } from '../../field/components/field-options'; +import { checkAttr, getAttrKey, props } from '@eightshift/frontend-libs-tailwind/scripts'; +import { + BaseControl, + RichLabel, + ContainerPanel, + InputField, + Toggle, + ContainerGroup, + Spacer, +} from '@eightshift/ui-components'; +import { + FieldOptions, + FieldOptionsMore, + FieldOptionsLayout, + FieldOptionsVisibility, +} from '../../field/components/field-options'; import { isOptionDisabled, NameField } from './../../utils'; import { ConditionalTagsOptions } from '../../conditional-tags/components/conditional-tags-options'; +import { icons } from '@eightshift/ui-components/icons'; +import manifest from '../manifest.json'; export const FileOptions = (attributes) => { - const manifest = select(STORE_NAME).getComponent('file'); - - const { - setAttributes, - } = attributes; + const { setAttributes } = attributes; const [isNameChanged, setIsNameChanged] = useState(false); @@ -30,18 +40,22 @@ export const FileOptions = (attributes) => { const fileIsDisabled = checkAttr('fileIsDisabled', attributes, manifest); return ( - -
- -
+ + + + { })} /> -
- setAttributes({ [getAttrKey('fileIsRequired', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('fileIsRequired', attributes, manifest), fileDisabledOptions)} - /> - - } - value={fileAccept} - help={__('Separate items with a comma.', 'eightshift-forms')} - placeholder={__('e.g. .jpg,.png,.pdf', 'eightshift-forms')} - onChange={(value) => setAttributes({ [getAttrKey('fileAccept', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('fileAccept', attributes, manifest), fileDisabledOptions)} - /> - - -
- setAttributes({ [getAttrKey('fileMinSize', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('fileMinSize', attributes, manifest), fileDisabledOptions)} - className='es-no-field-spacing' - /> - - setAttributes({ [getAttrKey('fileMaxSize', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('fileMaxSize', attributes, manifest), fileDisabledOptions)} - className='es-no-field-spacing' - /> -
-
-
- -
- - - setAttributes({ [getAttrKey('fileIsMultiple', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('fileIsMultiple', attributes, manifest), fileDisabledOptions)} - /> - - setAttributes({ [getAttrKey('fileIsDisabled', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('fileIsDisabled', attributes, manifest), fileDisabledOptions)} - noBottomSpacing - /> -
- -
- } - placeholder={__('Drag and drop files here', 'eightshift-forms')} - onChange={(value) => setAttributes({ + + + setAttributes({ [getAttrKey('fileIsRequired', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('fileIsRequired', attributes, manifest), fileDisabledOptions)} + /> + + + } + value={fileAccept} + help={__('Separate items with a comma.', 'eightshift-forms')} + placeholder={__('e.g. .jpg,.png,.pdf', 'eightshift-forms')} + onChange={(value) => setAttributes({ [getAttrKey('fileAccept', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('fileAccept', attributes, manifest), fileDisabledOptions)} + /> + + +
+ setAttributes({ [getAttrKey('fileMinSize', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('fileMinSize', attributes, manifest), fileDisabledOptions)} + /> + + setAttributes({ [getAttrKey('fileMaxSize', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('fileMaxSize', attributes, manifest), fileDisabledOptions)} + /> +
+
+ + + + + + setAttributes({ [getAttrKey('fileIsMultiple', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('fileIsMultiple', attributes, manifest), fileDisabledOptions)} + /> + + setAttributes({ [getAttrKey('fileIsDisabled', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('fileIsDisabled', attributes, manifest), fileDisabledOptions)} + /> + + + + + } + placeholder={__('Drag and drop files here', 'eightshift-forms')} + onChange={(value) => + setAttributes({ [getAttrKey('fileCustomInfoText', attributes, manifest)]: value, [getAttrKey('fileCustomInfoTextUse', attributes, manifest)]: value?.length > 0, - })} - disabled={ - isOptionDisabled(getAttrKey('fileCustomInfoText', attributes, manifest), fileDisabledOptions) - || isOptionDisabled(getAttrKey('fileCustomInfoTextUse', attributes, manifest), fileDisabledOptions) - } - /> - - } - value={fileCustomInfoButtonText} - placeholder={__('Add files', 'eightshift-forms')} - onChange={(value) => setAttributes({ [getAttrKey('fileCustomInfoButtonText', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('fileCustomInfoButtonText', attributes, manifest), fileDisabledOptions)} - className='es-no-field-spacing' - /> -
- -
- } - value={fileTracking} - onChange={(value) => setAttributes({ [getAttrKey('fileTracking', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('fileTracking', attributes, manifest), fileDisabledOptions)} - className='es-no-field-spacing' - /> -
+ }) + } + disabled={ + isOptionDisabled(getAttrKey('fileCustomInfoText', attributes, manifest), fileDisabledOptions) || + isOptionDisabled(getAttrKey('fileCustomInfoTextUse', attributes, manifest), fileDisabledOptions) + } + /> + + + } + value={fileCustomInfoButtonText} + placeholder={__('Add files', 'eightshift-forms')} + onChange={(value) => setAttributes({ [getAttrKey('fileCustomInfoButtonText', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('fileCustomInfoButtonText', attributes, manifest), fileDisabledOptions)} + /> + + + + + } + value={fileTracking} + onChange={(value) => setAttributes({ [getAttrKey('fileTracking', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('fileTracking', attributes, manifest), fileDisabledOptions)} + /> { conditionalTagsIsHidden: checkAttr('fileFieldHidden', attributes, manifest), })} /> -
+ ); }; diff --git a/src/Blocks/components/file/file.php b/src/Blocks/components/file/file.php index 516b1ecc9..e9974f008 100644 --- a/src/Blocks/components/file/file.php +++ b/src/Blocks/components/file/file.php @@ -40,7 +40,7 @@ $twClasses = FormsHelper::getTwSelectors($fileTwSelectorsData, ['file']); -$fileClass = Helpers::classnames([ +$fileClass = Helpers::clsx([ FormsHelper::getTwBase($twClasses, 'file', $componentClass), Helpers::selector($additionalClass, $additionalClass), ]); diff --git a/src/Blocks/components/form/assets/enrichment.js b/src/Blocks/components/form/assets/enrichment.js index 7095ca133..4184b6583 100644 --- a/src/Blocks/components/form/assets/enrichment.js +++ b/src/Blocks/components/form/assets/enrichment.js @@ -1,4 +1,4 @@ -import { cookies } from '@eightshift/frontend-libs/scripts/helpers'; +import { cookies } from '@eightshift/frontend-libs-tailwind/scripts/helpers'; import { prefix, setStateWindow } from './state-init'; /** diff --git a/src/Blocks/components/form/assets/form.js b/src/Blocks/components/form/assets/form.js index c304dcc34..ccb7d3edf 100644 --- a/src/Blocks/components/form/assets/form.js +++ b/src/Blocks/components/form/assets/form.js @@ -1,6 +1,7 @@ /* global grecaptcha */ -import { cookies, debounce } from '@eightshift/frontend-libs/scripts/helpers'; +import { cookies } from '@eightshift/frontend-libs-tailwind/scripts/helpers'; +import { debounce } from '@eightshift/ui-components/utilities'; import selectManifest from './../../select/manifest.json'; import { StateEnum, prefix, setStateFormInitial, setStateWindow, removeStateForm } from './state-init'; @@ -60,7 +61,11 @@ export class Form { initOnlyForms() { if (this.state.getStateConfigIsAdmin()) { // If is admin do normal init. - this.initOnlyFormsInner(document.querySelector(this.state.getStateSelector('form', true))?.getAttribute(this.state.getStateAttribute('formId')) || '0'); + this.initOnlyFormsInner( + document + .querySelector(this.state.getStateSelector('form', true)) + ?.getAttribute(this.state.getStateAttribute('formId')) || '0', + ); } else { // Find all forms elements. const forms = document.querySelectorAll(this.state.getStateSelector('forms', true)); @@ -77,7 +82,10 @@ export class Form { // If forms element have geolocation data attribute, init geolocation via ajax. this.initGeolocationForm(formsItems); } else { - const formId = formsItems?.querySelector(this.state.getStateSelector('form', true))?.getAttribute(this.state.getStateAttribute('formId')) || '0'; + const formId = + formsItems + ?.querySelector(this.state.getStateSelector('form', true)) + ?.getAttribute(this.state.getStateAttribute('formId')) || '0'; // Bailout if 0 as formId === 0 can only be used in admin. if (formId === '0') { @@ -100,7 +108,10 @@ export class Form { async initGeolocationForm(formsElement) { // If you have geolocation configured on the form but global setting is turned off. Return first form. if (!this.state.getStateGeolocationIsUsed()) { - const formId = formsElement?.querySelector(this.state.getStateSelector('form', true))?.getAttribute(this.state.getStateAttribute('formId')) || '0'; + const formId = + formsElement + ?.querySelector(this.state.getStateSelector('form', true)) + ?.getAttribute(this.state.getStateAttribute('formId')) || '0'; this.initOnlyFormsInner(formId); @@ -145,7 +156,10 @@ export class Form { // Loop all form elements and remove all except the one we need. [...forms].forEach((form) => { - if (form.getAttribute(this.state.getStateAttribute('formFid')) !== parsedResponseData?.[this.state.getStateResponseOutputKey('geoId')]) { + if ( + form.getAttribute(this.state.getStateAttribute('formFid')) !== + parsedResponseData?.[this.state.getStateResponseOutputKey('geoId')] + ) { // Remove all forms except the one we got from ajax. form.remove(); } else { @@ -159,8 +173,7 @@ export class Form { // Remove loading class from forms element. formsElement?.classList?.remove(this.state.getStateSelector('isGeoLoading')); - - } catch ({name, message}) { + } catch ({ name, message }) { if (name === 'AbortError') { return; } @@ -211,7 +224,10 @@ export class Form { this.state.getStateFormElement(formId).addEventListener('submit', this.onFormSubmitEvent); // Select. - [...this.state.getStateElementByTypeField('select', formId), ...this.state.getStateElementByTypeField('country', formId)].forEach((select) => { + [ + ...this.state.getStateElementByTypeField('select', formId), + ...this.state.getStateElementByTypeField('country', formId), + ].forEach((select) => { this.setupSelectField(formId, select.name); }); @@ -236,7 +252,10 @@ export class Form { }); // Date. - [...this.state.getStateElementByTypeField('date', formId), ...this.state.getStateElementByTypeField('dateTime', formId)].forEach((date) => { + [ + ...this.state.getStateElementByTypeField('date', formId), + ...this.state.getStateElementByTypeField('dateTime', formId), + ].forEach((date) => { this.setupDateField(formId, date.name); }); @@ -343,7 +362,7 @@ export class Form { this.CONTROLLER = null; return parsedResponse; - } catch ({name, message}) { + } catch ({ name, message }) { if (name === 'AbortError') { return; } @@ -397,7 +416,7 @@ export class Form { this.steps.formStepSubmit(formId, parsedResponse); this.steps.formStepSubmitAfter(formId, parsedResponse); this.state.setStateFormIsProcessing(false, formId); - } catch ({name, message}) { + } catch ({ name, message }) { if (name === 'AbortError') { return; } @@ -476,7 +495,11 @@ export class Form { } // This will be changed in the next release. - if (Boolean(this.state.getStateFormElement(formId)?.getAttribute(this.state.getStateAttribute('formHideOnSuccess')))) { + if ( + Boolean( + this.state.getStateFormElement(formId)?.getAttribute(this.state.getStateAttribute('formHideOnSuccess')), + ) + ) { this.state.getStateFormElement(formId).classList.add(this.state.getStateSelector('isHidden')); } @@ -615,7 +638,7 @@ export class Form { if (response?.data?.[this.state.getStateResponseOutputKey('captchaRetry')] && retry === false) { this.executeEnterpriseCaptcha(actionName, siteKey, formId, true, filter); } - } catch ({name, message}) { + } catch ({ name, message }) { if (name === 'AbortError') { return; } @@ -652,7 +675,7 @@ export class Form { if (response?.data?.[this.state.getStateResponseOutputKey('captchaRetry')] && retry === false) { this.executeFreeCaptcha(actionName, siteKey, formId, true, filter); } - } catch ({name, message}) { + } catch ({ name, message }) { if (name === 'AbortError') { return; } @@ -861,7 +884,10 @@ export class Form { const fieldset = field.closest('fieldset'); // If we have input on the checkbox/radio fieldset don't sent the input value but append it to the parent fieldset. - if (fieldset?.getAttribute(this.state.getStateAttribute('fieldType')) === 'checkbox' || fieldset?.getAttribute(this.state.getStateAttribute('fieldType')) === 'radio') { + if ( + fieldset?.getAttribute(this.state.getStateAttribute('fieldType')) === 'checkbox' || + fieldset?.getAttribute(this.state.getStateAttribute('fieldType')) === 'radio' + ) { if (value !== '') { fieldsetOtherOutput.push({ name, @@ -934,7 +960,9 @@ export class Form { */ getFormDataGroup(formId) { const output = []; - const groups = this.state.getStateFormElement(formId).querySelectorAll(`${this.state.getStateSelector('group', true)}`); + const groups = this.state + .getStateFormElement(formId) + .querySelectorAll(`${this.state.getStateSelector('group', true)}`); // Check if we are saving group items in one key. if (!groups.length) { @@ -999,13 +1027,16 @@ export class Form { * @returns {void} */ setFormDataStep(formId) { - this.utils.buildFormDataItems([ - { - name: this.state.getStateParam('steps'), - value: this.state.getStateFormStepsItem(this.state.getStateFormStepsCurrent(formId), formId), - custom: this.state.getStateFormStepsCurrent(formId), - }, - ], this.FORM_DATA); + this.utils.buildFormDataItems( + [ + { + name: this.state.getStateParam('steps'), + value: this.state.getStateFormStepsItem(this.state.getStateFormStepsCurrent(formId), formId), + custom: this.state.getStateFormStepsCurrent(formId), + }, + ], + this.FORM_DATA, + ); } /** @@ -1016,32 +1047,35 @@ export class Form { * @returns {void} */ setFormDataCommon(formId) { - this.utils.buildFormDataItems([ - { - name: this.state.getStateParam('formId'), - value: this.state.getStateFormFid(formId), - }, - { - name: this.state.getStateParam('postId'), - value: this.state.getStateFormPostId(formId), - }, - { - name: this.state.getStateParam('type'), - value: this.state.getStateFormType(formId), - }, - { - name: this.state.getStateParam('action'), - value: this.state.getStateFormAction(formId) ?? '', - }, - { - name: this.state.getStateParam('actionExternal'), - value: this.state.getStateFormActionExternal(formId) ?? '', - }, - { - name: this.state.getStateParam('secureData'), - value: this.state.getStateFormSecureData(formId) ?? '', - }, - ], this.FORM_DATA); + this.utils.buildFormDataItems( + [ + { + name: this.state.getStateParam('formId'), + value: this.state.getStateFormFid(formId), + }, + { + name: this.state.getStateParam('postId'), + value: this.state.getStateFormPostId(formId), + }, + { + name: this.state.getStateParam('type'), + value: this.state.getStateFormType(formId), + }, + { + name: this.state.getStateParam('action'), + value: this.state.getStateFormAction(formId) ?? '', + }, + { + name: this.state.getStateParam('actionExternal'), + value: this.state.getStateFormActionExternal(formId) ?? '', + }, + { + name: this.state.getStateParam('secureData'), + value: this.state.getStateFormSecureData(formId) ?? '', + }, + ], + this.FORM_DATA, + ); } /** @@ -1059,12 +1093,15 @@ export class Form { const data = this.enrichment.getLocalStorage(this.state.getStateEnrichmentStorageName()); if (data) { - this.utils.buildFormDataItems([ - { - name: this.state.getStateParam('storage'), - value: data, - }, - ], this.FORM_DATA); + this.utils.buildFormDataItems( + [ + { + name: this.state.getStateParam('storage'), + value: data, + }, + ], + this.FORM_DATA, + ); } } @@ -1076,12 +1113,15 @@ export class Form { * @returns {void} */ setFormDataAdmin(formId) { - this.utils.buildFormDataItems([ - { - name: this.state.getStateParam('settingsType'), - value: this.state.getStateFormTypeSettings(formId), - }, - ], this.FORM_DATA); + this.utils.buildFormDataItems( + [ + { + name: this.state.getStateParam('settingsType'), + value: this.state.getStateFormTypeSettings(formId), + }, + ], + this.FORM_DATA, + ); } /** @@ -1125,12 +1165,15 @@ export class Form { * @returns {void} */ setFormDataCaptcha(data) { - this.utils.buildFormDataItems([ - { - name: this.state.getStateParam('captcha'), - value: data, - }, - ], this.FORM_DATA); + this.utils.buildFormDataItems( + [ + { + name: this.state.getStateParam('captcha'), + value: data, + }, + ], + this.FORM_DATA, + ); } //////////////////////////////////////////////////////////////// @@ -1159,7 +1202,8 @@ export class Form { if ( (this.state.getStateConfigIsAdmin() && this.state.getStateElementIsSingleSubmit(name, formId)) || - (this.state.getStateFormConfigUseSingleSubmit(formId) && this.state.getStateElementTypeCustom(name, formId) === 'number') + (this.state.getStateFormConfigUseSingleSubmit(formId) && + this.state.getStateElementTypeCustom(name, formId) === 'number') ) { input.addEventListener('input', debounce(this.onInputEvent, 300)); } else { @@ -1190,7 +1234,10 @@ export class Form { this.utils.setRangeCurrentValue(formId, name); - if ((this.state.getStateConfigIsAdmin() && this.state.getStateElementIsSingleSubmit(name, formId)) || this.state.getStateFormConfigUseSingleSubmit(formId)) { + if ( + (this.state.getStateConfigIsAdmin() && this.state.getStateElementIsSingleSubmit(name, formId)) || + this.state.getStateFormConfigUseSingleSubmit(formId) + ) { input.addEventListener('input', debounce(this.onInputEvent, 300)); } else { input.addEventListener('input', this.onInputEvent); @@ -1542,20 +1589,27 @@ export class Form { const validationOutputKey = this.state.getStateResponseOutputKey('validation'); // Output errors if there are any. - if (typeof response?.data?.[validationOutputKey] !== 'undefined' && Object.keys(response?.data?.[validationOutputKey])?.length > 0) { - file.previewTemplate.querySelector('.dz-error-message span').innerHTML = response?.data?.[validationOutputKey]?.[file?.upload?.uuid]; + if ( + typeof response?.data?.[validationOutputKey] !== 'undefined' && + Object.keys(response?.data?.[validationOutputKey])?.length > 0 + ) { + file.previewTemplate.querySelector('.dz-error-message span').innerHTML = + response?.data?.[validationOutputKey]?.[file?.upload?.uuid]; } field?.classList?.add(this.state.getStateSelector('isFilled')); button.focus(); this.utils.setOnFocus(button); - } catch ({name, message}) { - file.previewTemplate.querySelector('.dz-error-message span').innerHTML = this.state.getStateSettingsFormServerErrorMsg(); + } catch ({ name, message }) { + file.previewTemplate.querySelector('.dz-error-message span').innerHTML = + this.state.getStateSettingsFormServerErrorMsg(); button.focus(); this.utils.setOnFocus(button); - throw new Error(`API response returned an error. Function used: "fileUploadSuccess" with error: "${name}" and a message: "${message}" for form id: "${formId}"`); + throw new Error( + `API response returned an error. Function used: "fileUploadSuccess" with error: "${name}" and a message: "${message}" for form id: "${formId}"`, + ); } }); @@ -1566,8 +1620,12 @@ export class Form { const validationOutputKey = this.state.getStateResponseOutputKey('validation'); // Output errors if there are any. - if (typeof response?.data?.[validationOutputKey] !== 'undefined' && Object.keys(response?.data?.[validationOutputKey])?.length > 0) { - file.previewTemplate.querySelector('.dz-error-message span').innerHTML = response?.data?.[validationOutputKey]?.[file?.upload?.uuid]; + if ( + typeof response?.data?.[validationOutputKey] !== 'undefined' && + Object.keys(response?.data?.[validationOutputKey])?.length > 0 + ) { + file.previewTemplate.querySelector('.dz-error-message span').innerHTML = + response?.data?.[validationOutputKey]?.[file?.upload?.uuid]; } else { file.previewTemplate.querySelector('.dz-error-message span').innerHTML = response?.message; } @@ -1576,12 +1634,15 @@ export class Form { button.focus(); this.utils.setOnFocus(button); - } catch ({name, message}) { - file.previewTemplate.querySelector('.dz-error-message span').innerHTML = this.state.getStateSettingsFormServerErrorMsg(); + } catch ({ name, message }) { + file.previewTemplate.querySelector('.dz-error-message span').innerHTML = + this.state.getStateSettingsFormServerErrorMsg(); button.focus(); this.utils.setOnFocus(button); - throw new Error(`API response returned an error. Function used: "fileUploadError" with error: "${name}" and a message: "${message}" for form id: "${formId}"`); + throw new Error( + `API response returned an error. Function used: "fileUploadError" with error: "${name}" and a message: "${message}" for form id: "${formId}"`, + ); } }); @@ -1614,7 +1675,10 @@ export class Form { this.state.getStateFormElement(formId)?.removeEventListener('submit', this.onFormSubmitEvent); // Select. - [...this.state.getStateElementByTypeField('select', formId), ...this.state.getStateElementByTypeField('country', formId)].forEach((select) => { + [ + ...this.state.getStateElementByTypeField('select', formId), + ...this.state.getStateElementByTypeField('country', formId), + ].forEach((select) => { const choices = this.state.getStateElementCustom(select.name, formId); choices?.passedElement?.element?.removeEventListener('change', this.onSelectChangeEvent); @@ -1671,7 +1735,10 @@ export class Form { }); // Date. - [...this.state.getStateElementByTypeField('date', formId), ...this.state.getStateElementByTypeField('dateTime', formId)].forEach((date) => { + [ + ...this.state.getStateElementByTypeField('date', formId), + ...this.state.getStateElementByTypeField('dateTime', formId), + ].forEach((date) => { this.state.getStateElementCustom(date.name, formId)?.destroy(); }); @@ -1786,7 +1853,10 @@ export class Form { this.utils.showLoader(formId); const filterFinal = { - [this.FILTER_SKIP_FIELDS]: [...this.steps.getIgnoreFields(formId), ...this.conditionalTags.getIgnoreFields(formId)], + [this.FILTER_SKIP_FIELDS]: [ + ...this.steps.getIgnoreFields(formId), + ...this.conditionalTags.getIgnoreFields(formId), + ], [this.FILTER_IS_STEPS_FINAL_SUBMIT]: true, }; @@ -1869,7 +1939,28 @@ export class Form { const name = field.getAttribute(this.state.getStateAttribute('fieldName')); if (this.state.getStateElementTypeCustom(name, formId) === 'number') { - const allowedKeys = ['Backspace', 'Enter', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.', '-', 'Tab', 'Delete']; + const allowedKeys = [ + 'Backspace', + 'Enter', + 'ArrowUp', + 'ArrowDown', + 'ArrowLeft', + 'ArrowRight', + '0', + '1', + '2', + '3', + '4', + '5', + '6', + '7', + '8', + '9', + '.', + '-', + 'Tab', + 'Delete', + ]; // Prevent the default action if the key is not allowed if (!allowedKeys.includes(event.key)) { @@ -1893,7 +1984,9 @@ export class Form { this.state.setState([StateEnum.ELEMENTS, name, StateEnum.INPUT_SELECT], event.target, formId); - const options = [...custom?.passedElement?.element?.selectedOptions].map((option) => option?.value).filter((option) => option !== ''); + const options = [...custom?.passedElement?.element?.selectedOptions] + .map((option) => option?.value) + .filter((option) => option !== ''); switch (this.state.getStateElementTypeField(name, formId)) { case 'phone': @@ -1950,7 +2043,7 @@ export class Form { custom?.showDropdown(); } - if (!this.state.getStateSettingsDisableScrollToFieldOnFocus()) { + if (!this.state.getStateSettingsDisableScrollToFieldOnFocus()) { this.utils.scrollAction(field); } @@ -2005,7 +2098,11 @@ export class Form { if ( !this.state.getStateConfigIsAdmin() && this.state.getStateFormConfigUseSingleSubmit(formId) && - (typeCustom === 'range' || typeCustom === 'number' || typeCustom === 'checkbox' || typeCustom === 'radio' || typeCustom === 'rating') + (typeCustom === 'range' || + typeCustom === 'number' || + typeCustom === 'checkbox' || + typeCustom === 'radio' || + typeCustom === 'rating') ) { if (this.state.getStateCaptchaIsUsed()) { this.runFormCaptcha(formId); diff --git a/src/Blocks/components/form/assets/geolocation.js b/src/Blocks/components/form/assets/geolocation.js index 44debecf0..242a43473 100644 --- a/src/Blocks/components/form/assets/geolocation.js +++ b/src/Blocks/components/form/assets/geolocation.js @@ -1,4 +1,4 @@ -import { cookies } from '@eightshift/frontend-libs/scripts/helpers'; +import { cookies } from '@eightshift/frontend-libs-tailwind/scripts/helpers'; import { prefix, setStateWindow } from './state-init'; /** @@ -66,17 +66,30 @@ export class Geolocation { return; } - [...this.state.getStateElementByTypeField('country', formId), ...this.state.getStateElementByTypeField('phone', formId)].forEach((select) => { + [ + ...this.state.getStateElementByTypeField('country', formId), + ...this.state.getStateElementByTypeField('phone', formId), + ].forEach((select) => { const name = select.name; const type = this.state.getStateElementTypeField(name, formId); switch (type) { case 'country': - this.utils.setManualSelectByAttributeValue(formId, name, [countryCookie], this.state.getStateAttribute('countryCode')); + this.utils.setManualSelectByAttributeValue( + formId, + name, + [countryCookie], + this.state.getStateAttribute('countryCode'), + ); break; case 'phone': - this.utils.setManualPhonePrefixByAttributeValue(formId, name, countryCookie, this.state.getStateAttribute('countryCode')); + this.utils.setManualPhonePrefixByAttributeValue( + formId, + name, + countryCookie, + this.state.getStateAttribute('countryCode'), + ); break; } }); diff --git a/src/Blocks/components/form/components/form-editor.js b/src/Blocks/components/form/components/form-editor.js index 7b3e1c7ec..f0e6ddd89 100644 --- a/src/Blocks/components/form/components/form-editor.js +++ b/src/Blocks/components/form/components/form-editor.js @@ -1,10 +1,9 @@ /* global esFormsLocalization */ import React from 'react'; -import { select } from '@wordpress/data'; -import classnames from 'classnames'; -import { selector, checkAttr, STORE_NAME } from '@eightshift/frontend-libs/scripts'; +import { checkAttr } from '@eightshift/frontend-libs-tailwind/scripts'; import globalSettings from '../../../manifest.json'; +import manifest from '../manifest.json'; export const additionalBlocksNoIntegration = [ ...esFormsLocalization.additionalBlocks, @@ -17,32 +16,7 @@ export const additionalBlocksIntegration = [ ]; export const FormEditor = (attributes) => { - const manifest = select(STORE_NAME).getComponent('form'); - - const { - componentClass, - } = manifest; - - const { - selectorClass = componentClass, - blockClass, - additionalClass, - } = attributes; - const formContent = checkAttr('formContent', attributes, manifest); - const formClass = classnames([ - selector(componentClass, componentClass), - selector(componentClass, componentClass, 'editor'), - selector(blockClass, blockClass, selectorClass), - selector(additionalClass, additionalClass), - ]); - - return ( -
-
- {formContent} -
-
- ); + return
{formContent}
; }; diff --git a/src/Blocks/components/form/components/form-options.js b/src/Blocks/components/form/components/form-options.js index ee9eec9aa..6d267135d 100644 --- a/src/Blocks/components/form/components/form-options.js +++ b/src/Blocks/components/form/components/form-options.js @@ -1,15 +1,12 @@ import React from 'react'; import { __ } from '@wordpress/i18n'; -import { select } from '@wordpress/data'; -import { TextControl } from '@wordpress/components'; -import { icons, checkAttr, getAttrKey, IconLabel, Section, IconToggle, STORE_NAME } from '@eightshift/frontend-libs/scripts'; +import { checkAttr, getAttrKey } from '@eightshift/frontend-libs-tailwind/scripts'; +import { RichLabel, InputField, Toggle, ContainerGroup, Spacer } from '@eightshift/ui-components'; +import { icons } from '@eightshift/ui-components/icons'; +import manifest from '../manifest.json'; export const FormOptions = (attributes) => { - const manifest = select(STORE_NAME).getComponent('form'); - - const { - setAttributes, - } = attributes; + const { setAttributes } = attributes; const formName = checkAttr('formName', attributes, manifest); const formAction = checkAttr('formAction', attributes, manifest); @@ -18,37 +15,65 @@ export const FormOptions = (attributes) => { return ( <> -
- } - help={__('Used as a name attribute for form element Useful if you want to add additional code style for the form.', 'eightshift-forms')} - value={formName} - onChange={(value) => setAttributes({ [getAttrKey('formName', attributes, manifest)]: value })} - /> -
+ + + } + help={__( + 'Used as a name attribute for form element Useful if you want to add additional code style for the form.', + 'eightshift-forms', + )} + value={formName} + onChange={(value) => setAttributes({ [getAttrKey('formName', attributes, manifest)]: value })} + /> + + -
- } - value={formAction} - help={__('Custom form action that will process form data.', 'eightshift-forms')} - onChange={(value) => setAttributes({ [getAttrKey('formAction', attributes, manifest)]: value })} - /> + + } + value={formAction} + help={__('Custom form action that will process form data.', 'eightshift-forms')} + onChange={(value) => setAttributes({ [getAttrKey('formAction', attributes, manifest)]: value })} + /> - setAttributes({ [getAttrKey('formActionExternal', attributes, manifest)]: value })} - /> + setAttributes({ [getAttrKey('formActionExternal', attributes, manifest)]: value })} + /> - } - value={formId} - onChange={(value) => setAttributes({ [getAttrKey('formId', attributes, manifest)]: value })} - /> -
+ + } + value={formId} + onChange={(value) => setAttributes({ [getAttrKey('formId', attributes, manifest)]: value })} + /> ); }; diff --git a/src/Blocks/components/form/form.php b/src/Blocks/components/form/form.php index 02e8c83d6..5717d2eb6 100644 --- a/src/Blocks/components/form/form.php +++ b/src/Blocks/components/form/form.php @@ -58,7 +58,7 @@ $customClassSelectorFilterName = HooksHelpers::getFilterName(['block', 'form', 'customClassSelector']); $customClassSelector = apply_filters($customClassSelectorFilterName, '', $attributes, $formId); -$formClass = Helpers::classnames([ +$formClass = Helpers::clsx([ FormsHelper::getTwBase($twClasses, 'form', $componentClass), Helpers::selector($additionalClass, $additionalClass), Helpers::selector($customClassSelector, $customClassSelector), diff --git a/src/Blocks/components/form/styles-editor.css b/src/Blocks/components/form/styles-editor.css new file mode 100644 index 000000000..b44ee68e7 --- /dev/null +++ b/src/Blocks/components/form/styles-editor.css @@ -0,0 +1,28 @@ +@import 'tailwindcss' prefix(esf); +@reference '../../../../tailwind.css'; + +@layer esf { + .esf-form { + @apply esf:max-w-3xl! esf:mx-auto! esf:px-48!; + } + + .esf-form .block-editor-block-list__layout { + @apply esf:flex! esf:flex-row! esf:flex-wrap! esf:gap-15!; + } + + .esf-form .block-editor-block-list__layout > * { + @apply esf:w-full!; + } + + .esf-form .eightshift-block { + @apply esf:transition-[padding]!; + } + + .esf-form .eightshift-block.is-selected::after { + @apply esf:outline-accent-500!; + } + + .esf-form .eightshift-block.is-selected { + @apply esf:p-10!; + } +} diff --git a/src/Blocks/components/global-msg/global-msg.php b/src/Blocks/components/global-msg/global-msg.php index b2f1bc955..91caf055f 100644 --- a/src/Blocks/components/global-msg/global-msg.php +++ b/src/Blocks/components/global-msg/global-msg.php @@ -20,7 +20,7 @@ $twClasses = FormsHelper::getTwSelectors($globalMsgTwSelectorsData, ['global-msg']); -$globalMsgClass = Helpers::classnames([ +$globalMsgClass = Helpers::clsx([ FormsHelper::getTwBase($twClasses, 'global-msg', $componentClass), Helpers::selector($additionalClass, $additionalClass), UtilsHelper::getStateSelector('globalMsg'), diff --git a/src/Blocks/components/group/group.php b/src/Blocks/components/group/group.php index 47f0fdbd4..ff165ac3c 100644 --- a/src/Blocks/components/group/group.php +++ b/src/Blocks/components/group/group.php @@ -21,7 +21,7 @@ $groupBeforeContent = Helpers::checkAttr('groupBeforeContent', $attributes, $manifest); $groupHelp = Helpers::checkAttr('groupHelp', $attributes, $manifest); -$groupClass = Helpers::classnames([ +$groupClass = Helpers::clsx([ Helpers::selector($componentClass, $componentClass), Helpers::selector($additionalGroupClass, $additionalGroupClass), Helpers::selector($groupStyle, $componentClass, '', $groupStyle), diff --git a/src/Blocks/components/highlighted-content/highlighted-content.php b/src/Blocks/components/highlighted-content/highlighted-content.php index 7f60e657b..2e89004cc 100644 --- a/src/Blocks/components/highlighted-content/highlighted-content.php +++ b/src/Blocks/components/highlighted-content/highlighted-content.php @@ -16,7 +16,7 @@ $highlightedContentSubtitle = Helpers::checkAttr('highlightedContentSubtitle', $attributes, $manifest); $highlightedContentIcon = Helpers::checkAttr('highlightedContentIcon', $attributes, $manifest); -$highlightedContentClass = Helpers::classnames([ +$highlightedContentClass = Helpers::clsx([ Helpers::selector($componentClass, $componentClass), Helpers::selector($additionalClass, $additionalClass), ]); diff --git a/src/Blocks/components/input/components/input-editor.js b/src/Blocks/components/input/components/input-editor.js index 2ae3984c6..ad4335892 100644 --- a/src/Blocks/components/input/components/input-editor.js +++ b/src/Blocks/components/input/components/input-editor.js @@ -1,24 +1,12 @@ import React from 'react'; -import classnames from 'classnames'; -import { select } from '@wordpress/data'; -import { selector, checkAttr, props, STORE_NAME, getAttrKey } from '@eightshift/frontend-libs/scripts'; +import { checkAttr, props, getAttrKey } from '@eightshift/frontend-libs-tailwind/scripts'; import { FieldEditor } from '../../../components/field/components/field-editor'; -import { MissingName, preventSaveOnMissingProps } from './../../utils'; -import { ConditionalTagsEditor } from '../../conditional-tags/components/conditional-tags-editor'; +import { preventSaveOnMissingProps, StatusIconConditionals, StatusIconMissingName } from './../../utils'; +import manifest from '../manifest.json'; +import { clsx } from '@eightshift/ui-components/utilities'; export const InputEditor = (attributes) => { - const manifest = select(STORE_NAME).getComponent('input'); - - const { - componentClass, - componentName - } = manifest; - - const { - additionalFieldClass, - additionalClass, - blockClientId, - } = attributes; + const { blockClientId, prefix } = attributes; const inputName = checkAttr('inputName', attributes, manifest); const inputValue = checkAttr('inputValue', attributes, manifest); @@ -27,14 +15,12 @@ export const InputEditor = (attributes) => { const inputMin = checkAttr('inputMin', attributes, manifest); const inputMax = checkAttr('inputMax', attributes, manifest); const inputStep = checkAttr('inputStep', attributes, manifest); + const inputIsDisabled = checkAttr('inputIsDisabled', attributes, manifest); + const inputIsReadOnly = checkAttr('inputIsReadOnly', attributes, manifest); + const inputIsRequired = checkAttr('inputIsRequired', attributes, manifest); preventSaveOnMissingProps(blockClientId, getAttrKey('inputName', attributes, manifest), inputName); - const inputClass = classnames([ - selector(componentClass, componentClass), - selector(additionalClass, additionalClass), - ]); - let additionalProps = {}; if (inputType === 'range') { @@ -49,21 +35,18 @@ export const InputEditor = (attributes) => { const input = ( <> - - - - {inputName && - - } ); @@ -74,8 +57,10 @@ export const InputEditor = (attributes) => { fieldContent: input, fieldIsRequired: checkAttr('inputIsRequired', attributes, manifest), })} - additionalFieldClass={additionalFieldClass} - selectorClass={componentName} + statusSlog={[ + !inputName && , + attributes?.[`${prefix}ConditionalTagsUse`] && , + ]} /> ); diff --git a/src/Blocks/components/input/components/input-options.js b/src/Blocks/components/input/components/input-options.js index 346aae437..3bafed204 100644 --- a/src/Blocks/components/input/components/input-options.js +++ b/src/Blocks/components/input/components/input-options.js @@ -2,58 +2,33 @@ import React from 'react'; import { useState } from '@wordpress/element'; -import { select } from '@wordpress/data'; -import { isArray } from 'lodash'; import { __ } from '@wordpress/i18n'; -import { TextControl, PanelBody, Button } from '@wordpress/components'; +import { getOption, checkAttr, getAttrKey, props } from '@eightshift/frontend-libs-tailwind/scripts'; import { - icons, - getOption, - checkAttr, - getAttrKey, - IconLabel, - props, Select, - Section, + RichLabel, NumberPicker, - IconToggle, - UseToggle, - Control, - STORE_NAME, -} from '@eightshift/frontend-libs/scripts'; -import { FieldOptions, FieldOptionsMore, FieldOptionsLayout, FieldOptionsVisibility } from '../../field/components/field-options'; + ContainerPanel, + InputField, + Toggle, + HStack, + Spacer, +} from '@eightshift/ui-components'; +import { icons } from '@eightshift/ui-components/icons'; +import { + FieldOptions, + FieldOptionsMore, + FieldOptionsLayout, + FieldOptionsVisibility, +} from '../../field/components/field-options'; import { isOptionDisabled, NameField } from './../../utils'; import { ConditionalTagsOptions } from '../../conditional-tags/components/conditional-tags-options'; +import manifest from '../manifest.json'; export const InputOptions = (attributes) => { - const manifest = select(STORE_NAME).getComponent('input'); - - const { - options, - } = manifest; - - const { - setAttributes, - - showInputName = true, - showInputValue = true, - showInputAdvancedOptions = true, - showInputPlaceholder = true, - showInputType = true, - showInputValidationOptions = true, - showInputIsDisabled = true, - showInputIsReadOnly = true, - showInputIsRequired = true, - showInputTracking = true, - showInputValidationPattern = true, - showInputMinLength = true, - showInputMaxLength = true, - showInputMin = true, - showInputMax = true, - showInputStep = true, - - title = __('Input', 'eightshift-forms'), - } = attributes; + const { options } = manifest; + + const { setAttributes } = attributes; const [isNameChanged, setIsNameChanged] = useState(false); @@ -88,72 +63,69 @@ export const InputOptions = (attributes) => { let inputValidationPatternOptions = []; - if (typeof esFormsLocalization !== 'undefined' && isArray(esFormsLocalization?.validationPatternsOptions)) { + if (typeof esFormsLocalization !== 'undefined') { inputValidationPatternOptions = esFormsLocalization.validationPatternsOptions; } // Output number to 2 decimal places if it's a float, otherwise output to fixed number. - const formatNumber = (number) => Number((Number.isInteger(number) ? number.toString() : number.toFixed(2))); + const formatNumber = (number) => Number(Number.isInteger(number) ? number.toString() : number.toFixed(2)); return ( - -
- - - {showInputType && - { + setAttributes({ [getAttrKey('inputType', attributes, manifest)]: value }); + + setAttributes({ [getAttrKey('inputIsEmail', attributes, manifest)]: false }); + setAttributes({ [getAttrKey('inputIsNumber', attributes, manifest)]: false }); + setAttributes({ [getAttrKey('inputIsUrl', attributes, manifest)]: false }); + + if (value === 'email') { + setAttributes({ [getAttrKey('inputIsEmail', attributes, manifest)]: true }); + } + + if (value === 'number' || value === 'range') { + setAttributes({ [getAttrKey('inputIsNumber', attributes, manifest)]: true }); + } + + if (value === 'url') { + setAttributes({ [getAttrKey('inputIsUrl', attributes, manifest)]: true }); + } + + setAttributes({ [getAttrKey('inputRangeUseCustomField', attributes, manifest)]: undefined }); + }} + simpleValue + noSearch + /> - {inputType === 'range' && ( - setAttributes({ [getAttrKey('inputRangeUseCustomField', attributes, manifest)]: value })} - /> - )} -
+ {inputType === 'range' && ( + setAttributes({ [getAttrKey('inputRangeUseCustomField', attributes, manifest)]: value })} + /> + )} { })} /> -
- {!inputUseLabelAsPlaceholder && - setAttributes({ [getAttrKey('inputPlaceholder', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('inputPlaceholder', attributes, manifest), inputDisabledOptions)} - className='es-no-field-spacing' - /> - } - { - setAttributes({ [getAttrKey('inputPlaceholder', attributes, manifest)]: undefined }); - setAttributes({ [getAttrKey('inputUseLabelAsPlaceholder', attributes, manifest)]: value }); - }} + {!inputUseLabelAsPlaceholder && ( + setAttributes({ [getAttrKey('inputPlaceholder', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('inputPlaceholder', attributes, manifest), inputDisabledOptions)} /> -
+ )} + + { + setAttributes({ [getAttrKey('inputPlaceholder', attributes, manifest)]: undefined }); + setAttributes({ [getAttrKey('inputUseLabelAsPlaceholder', attributes, manifest)]: value }); + }} + /> { })} /> -
- {showInputValue && - } - value={inputValue} - onChange={(value) => setAttributes({ [getAttrKey('inputValue', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('inputValue', attributes, manifest), inputDisabledOptions)} - /> - } - - - + - {showInputIsReadOnly && - setAttributes({ [getAttrKey('inputIsReadOnly', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('inputIsReadOnly', attributes, manifest), inputDisabledOptions)} + } + value={inputValue} + onChange={(value) => setAttributes({ [getAttrKey('inputValue', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('inputValue', attributes, manifest), inputDisabledOptions)} + /> - {showInputIsDisabled && - setAttributes({ [getAttrKey('inputIsDisabled', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('inputIsDisabled', attributes, manifest), inputDisabledOptions)} - noBottomSpacing - /> - } -
- -
- {showInputIsRequired && - setAttributes({ [getAttrKey('inputIsRequired', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('inputIsRequired', attributes, manifest), inputDisabledOptions)} - /> - } + - {(!['number', 'range'].includes(inputType) && (showInputMinLength || showInputMaxLength)) && - -
- {showInputMinLength && -
- setAttributes({ [getAttrKey('inputMinLength', attributes, manifest)]: value })} - min={options.inputMinLength.min} - max={options.inputMinLength.max} - step={options.inputMinLength.step} - disabled={isOptionDisabled(getAttrKey('inputMinLength', attributes, manifest), inputDisabledOptions)} - placeholder='–' - fixedWidth={5} - noBottomSpacing - /> + setAttributes({ [getAttrKey('inputIsReadOnly', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('inputIsReadOnly', attributes, manifest), inputDisabledOptions)} + /> - {inputMinLength > 0 && !isOptionDisabled(getAttrKey('inputMinLength', attributes, manifest), inputDisabledOptions) && -
- } + setAttributes({ [getAttrKey('inputIsDisabled', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('inputIsDisabled', attributes, manifest), inputDisabledOptions)} + /> - {showInputMaxLength && -
- setAttributes({ [getAttrKey('inputMaxLength', attributes, manifest)]: value })} - min={options.inputMaxLength.min} - max={options.inputMaxLength.max} - step={options.inputMaxLength.step} - disabled={isOptionDisabled(getAttrKey('inputMaxLength', attributes, manifest), inputDisabledOptions)} - placeholder='–' - fixedWidth={5} - noBottomSpacing - /> + + setAttributes({ [getAttrKey('inputIsRequired', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('inputIsRequired', attributes, manifest), inputDisabledOptions)} + /> - {inputMaxLength > 0 && !isOptionDisabled(getAttrKey('inputMaxLength', attributes, manifest), inputDisabledOptions) && -
- } -
-
- } + {!inputIsUrl && !inputIsEmail && ( + setAttributes({ [getAttrKey('inputValidationPattern', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('inputValidationPattern', attributes, manifest), inputDisabledOptions)} - placeholder='–' - additionalSelectClasses='es-w-32' - noBottomSpacing - inlineLabel - clearable + min={options.inputMax.min} + max={options.inputMax.max} + step={options.inputMax.step} + disabled={isOptionDisabled(getAttrKey('inputMax', attributes, manifest), inputDisabledOptions)} + placeholder='–' + prefix={__('Max', 'eightshift-forms')} + > + + + + + )} + + {(inputType === 'number' || inputType === 'range') && ( + <> + - } -
- -
- {showInputTracking && - } - value={inputTracking} - onChange={(value) => setAttributes({ [getAttrKey('inputTracking', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('inputTracking', attributes, manifest), inputDisabledOptions)} - className='es-no-field-spacing' + setAttributes({ [getAttrKey('inputStep', attributes, manifest)]: value })} + min={options.inputStep.min} + max={options.inputStep.max} + step={options.inputStep.step} + disabled={isOptionDisabled(getAttrKey('inputStep', attributes, manifest), inputDisabledOptions)} + prefix={__('Step', 'eightshift-forms')} + > + + + + )} + + + + } -
+ value={inputTracking} + onChange={(value) => setAttributes({ [getAttrKey('inputTracking', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('inputTracking', attributes, manifest), inputDisabledOptions)} + /> { conditionalTagsIsHidden: checkAttr('inputFieldHidden', attributes, manifest), })} /> -
+ ); }; diff --git a/src/Blocks/components/integrations/components/integrations-editor.js b/src/Blocks/components/integrations/components/integrations-editor.js index b1c1560d4..d13850f9b 100644 --- a/src/Blocks/components/integrations/components/integrations-editor.js +++ b/src/Blocks/components/integrations/components/integrations-editor.js @@ -4,7 +4,7 @@ import React from 'react'; import { useSelect } from '@wordpress/data'; import { __ } from '@wordpress/i18n'; import { InnerBlocks } from '@wordpress/block-editor'; -import { BlockInserter, props } from '@eightshift/frontend-libs/scripts'; +import { BlockInserter, props } from '@eightshift/frontend-libs-tailwind/scripts'; import { additionalBlocksIntegration, FormEditor } from './../../form/components/form-editor'; import { InvalidEditor } from './../../invalid/components/invalid-editor'; @@ -17,7 +17,6 @@ export const IntegrationsEditor = ({ useInnerId = false, allowedBlocks = [], }) => { - // Check if form selector has inner blocks. const hasInnerBlocks = useSelect((select) => { const blocks = select('core/block-editor').getBlock(clientId); @@ -27,32 +26,16 @@ export const IntegrationsEditor = ({ const InvalidPlaceholder = () => { return ( - + ); }; const OutputDefault = () => { - return ( - <> - {itemId ? - : - - } - - ); + return <>{itemId ? : }; }; const OutputWithInner = () => { - return ( - <> - {(itemId && innerId) ? - : - - } - - ); + return <>{itemId && innerId ? : }; }; const Output = () => { @@ -60,27 +43,20 @@ export const IntegrationsEditor = ({ } - /> + formContent: ( + } + /> + ), })} /> ); }; if (hasInnerBlocks) { - return ( - useInnerId ? : - ); + return useInnerId ? : ; } - return ( - - ); + return ; }; diff --git a/src/Blocks/components/integrations/components/integrations-internal-options.js b/src/Blocks/components/integrations/components/integrations-internal-options.js index 2632aba24..1790d0bdb 100644 --- a/src/Blocks/components/integrations/components/integrations-internal-options.js +++ b/src/Blocks/components/integrations/components/integrations-internal-options.js @@ -1,53 +1,53 @@ import React from 'react'; import { __ } from '@wordpress/i18n'; -import { select } from "@wordpress/data"; -import { PanelBody, Button } from '@wordpress/components'; -import { props, Section, Control, icons } from '@eightshift/frontend-libs/scripts'; +import { select } from '@wordpress/data'; +import { props } from '@eightshift/frontend-libs-tailwind/scripts'; +import { BaseControl, Button, ContainerPanel, Spacer, HStack } from '@eightshift/ui-components'; import { LocationsButton, SettingsButton, resetInnerBlocks } from '../../utils'; +import { icons } from '@eightshift/ui-components/icons'; import { FormOptions } from '../../../components/form/components/form-options'; import { StepMultiflowOptions } from '../../step/components/step-multiflow-options'; -export const IntegrationsInternalOptions = ({ - title, - attributes, - setAttributes, - clientId, -}) => { - +export const IntegrationsInternalOptions = ({ attributes, setAttributes, clientId }) => { const postId = select('core/editor').getCurrentPostId(); return ( <> - - -
- - -
-
+ + + + + + + -
- - - -
+ + + - -
+ { const postId = select('core/editor').getCurrentPostId(); - // Check if form selector has inner blocks. + // Check if form selector has inner blocks. const hasInnerBlocks = useSelect((select) => { const blocks = select('core/block-editor').getBlock(clientId); @@ -73,58 +75,73 @@ export const IntegrationsOptions = ({ return ( } + title={ + + } onRequestClose={() => { setModalOpen(false); dispatch(FORMS_STORE_NAME).setIsSyncDialogOpen(false); }} > -
0} icon={icons.add} label={__('Added fields', 'eightshift-forms')} - additionalLabelClasses='es-nested-bg-green-500!' - noBottomSpacing={changed.length < 1 && replaced.length < 1 && removed?.length < 1} > -
- {added.map((item, i) => )} +
+ {added.map((item, i) => ( + + ))}
-
+ -
0} icon={icons.trash} + 0} + icon={icons.trash} label={__('Removed fields', 'eightshift-forms')} - additionalLabelClasses='es-nested-bg-red-500!' - noBottomSpacing={changed.length < 1 && replaced.length < 1} > -
- {removed.map((item, i) => )} +
+ {removed.map((item, i) => ( + + ))}
-
+ -
0} icon={icons.swap} label={__('Replaced fields', 'eightshift-forms')} - additionalLabelClasses='es-nested-bg-yellow-500!' - noBottomSpacing={changed.length < 1} > -
- {replaced.map((item, i) => )} +
+ {replaced.map((item, i) => ( + + ))}
-
+ -
0} icon={icons.edit} label={__('Updated field attributes', 'eightshift-forms')} - additionalLabelClasses='es-nested-bg-blue-500!' - noBottomSpacing > -
- {changed.map((item, i) => - + {changed.map((item, i) => ( + @@ -132,30 +149,38 @@ export const IntegrationsOptions = ({ } key={i} - standalone - />) - } + /> + ))}
-
+
); }; return ( <> - - -
+ + +
- +
-
+ { @@ -195,17 +221,18 @@ export const IntegrationsOptions = ({ setAttributes({ [innerIdKey]: value.toString() }); } }} - closeMenuAfterSelect simpleValue clearable /> - } + )} - {hasInnerBlocks && -
- + - {Object.keys(modalContent).length > 0 && + {Object.keys(modalContent).length > 0 && ( - } - + )} + - + - +
- } -
+ )} + -
- + + - -
- - {isModalOpen && - - } + + - + {isModalOpen && } +
{ return ( -
-
- {icon && getUtilsIcons(icon) &&
} +
+
+ {icon && getUtilsIcons(icon) &&
} {(!icon || (icon && !getUtilsIcons(icon))) && icons.warningFillTransparent}
- {heading && - {heading} - } + {heading && {heading}} - {text && - {text} - } + {text && {text}}
); }; diff --git a/src/Blocks/components/layout/layout.php b/src/Blocks/components/layout/layout.php index a13a5cdca..84c944f27 100644 --- a/src/Blocks/components/layout/layout.php +++ b/src/Blocks/components/layout/layout.php @@ -22,7 +22,7 @@ $layoutTag = Helpers::checkAttr('layoutTag', $attributes, $manifest); $layoutType = Helpers::checkAttr('layoutType', $attributes, $manifest); -$layoutClass = Helpers::classnames([ +$layoutClass = Helpers::clsx([ Helpers::selector($componentClass, $componentClass), Helpers::selector($blockClass, $blockClass, $selectorClass), Helpers::selector($additionalClass, $additionalClass), diff --git a/src/Blocks/components/loader/loader.php b/src/Blocks/components/loader/loader.php index be26adac7..b751dfd35 100644 --- a/src/Blocks/components/loader/loader.php +++ b/src/Blocks/components/loader/loader.php @@ -19,7 +19,7 @@ $twClasses = FormsHelper::getTwSelectors($loaderTwSelectorsData, ['loader']); -$loaderClass = Helpers::classnames([ +$loaderClass = Helpers::clsx([ FormsHelper::getTwBase($twClasses, 'loader', $componentClass), Helpers::selector($additionalClass, $additionalClass), UtilsHelper::getStateSelector('loader'), @@ -27,11 +27,11 @@ Helpers::selector(!$loaderIsGeolocation && $componentClass, $componentClass, 'form'), ]); -$loaderSpinnerClass = Helpers::classnames([ +$loaderSpinnerClass = Helpers::clsx([ FormsHelper::getTwPart($twClasses, 'loader', 'spinner', "{$componentClass}__spinner"), ]); -$loaderOverlayClass = Helpers::classnames([ +$loaderOverlayClass = Helpers::clsx([ FormsHelper::getTwPart($twClasses, 'loader', 'overlay', "{$componentClass}__overlay"), ]); diff --git a/src/Blocks/components/notice/notice.php b/src/Blocks/components/notice/notice.php index eb7ddd1f6..357d8e2b2 100644 --- a/src/Blocks/components/notice/notice.php +++ b/src/Blocks/components/notice/notice.php @@ -15,7 +15,7 @@ $noticeContent = Helpers::checkAttr('noticeContent', $attributes, $manifest); -$noticeClass = Helpers::classnames([ +$noticeClass = Helpers::clsx([ Helpers::selector($componentClass, $componentClass), Helpers::selector($selectorClass, $selectorClass, $componentClass), Helpers::selector($additionalNoticeClass, $additionalNoticeClass), diff --git a/src/Blocks/components/phone/components/phone-editor.js b/src/Blocks/components/phone/components/phone-editor.js index e1a81ff5f..039eb9423 100644 --- a/src/Blocks/components/phone/components/phone-editor.js +++ b/src/Blocks/components/phone/components/phone-editor.js @@ -1,32 +1,12 @@ import React from 'react'; -import classnames from 'classnames'; -import { select } from '@wordpress/data'; -import { - selector, - checkAttr, - props, - STORE_NAME, - getAttrKey, -} from '@eightshift/frontend-libs/scripts'; +import { __ } from '@wordpress/i18n'; +import { checkAttr, props, getAttrKey } from '@eightshift/frontend-libs-tailwind/scripts'; import { FieldEditor } from '../../field/components/field-editor'; -import { MissingName, preventSaveOnMissingProps } from './../../utils'; -import { ConditionalTagsEditor } from '../../conditional-tags/components/conditional-tags-editor'; +import { preventSaveOnMissingProps, StatusIconConditionals, StatusIconMissingName } from './../../utils'; +import manifest from '../manifest.json'; export const PhoneEditor = (attributes) => { - const manifest = select(STORE_NAME).getComponent('phone'); - - const { - componentClass, - componentName - } = manifest; - - const { - additionalFieldClass, - additionalClass, - blockClientId, - } = attributes; - - const manifestSelect = select(STORE_NAME).getComponent('select'); + const { blockClientId, prefix } = attributes; const phoneValue = checkAttr('phoneValue', attributes, manifest); const phonePlaceholder = checkAttr('phonePlaceholder', attributes, manifest); @@ -34,33 +14,22 @@ export const PhoneEditor = (attributes) => { preventSaveOnMissingProps(blockClientId, getAttrKey('phoneName', attributes, manifest), phoneName); - const phoneClass = classnames([ - selector(componentClass, componentClass), - selector(additionalClass, additionalClass), - ]); - - const selectClass = classnames([ - selector(manifestSelect.componentClass, manifestSelect.componentClass), - selector(additionalClass, additionalClass), - ]); - const phone = ( - <> - + + - - - - - +
); return ( @@ -70,8 +39,10 @@ export const PhoneEditor = (attributes) => { fieldContent: phone, fieldIsRequired: checkAttr('phoneIsRequired', attributes, manifest), })} - additionalFieldClass={additionalFieldClass} - selectorClass={componentName} + statusSlog={[ + !phoneName && , + attributes?.[`${prefix}ConditionalTagsUse`] && , + ]} /> ); diff --git a/src/Blocks/components/phone/components/phone-options.js b/src/Blocks/components/phone/components/phone-options.js index 8aa6b9ba2..ccc67918a 100644 --- a/src/Blocks/components/phone/components/phone-options.js +++ b/src/Blocks/components/phone/components/phone-options.js @@ -2,19 +2,22 @@ import React from 'react'; import { useState } from '@wordpress/element'; -import { select } from '@wordpress/data'; -import { isArray } from 'lodash'; import { __ } from '@wordpress/i18n'; -import { TextControl, PanelBody } from '@wordpress/components'; -import { icons, checkAttr, getAttrKey, IconLabel, props, IconToggle, Section, Select, STORE_NAME, getOption } from '@eightshift/frontend-libs/scripts'; -import { FieldOptions, FieldOptionsMore, FieldOptionsLayout, FieldOptionsVisibility } from '../../field/components/field-options'; +import { checkAttr, getAttrKey, props } from '@eightshift/frontend-libs-tailwind/scripts'; +import { Select, RichLabel, ContainerPanel, InputField, Toggle, Spacer } from '@eightshift/ui-components'; +import { icons } from '@eightshift/ui-components/icons'; +import { + FieldOptions, + FieldOptionsMore, + FieldOptionsLayout, + FieldOptionsVisibility, +} from '../../field/components/field-options'; import { isOptionDisabled, NameField } from '../../utils'; import { ConditionalTagsOptions } from '../../conditional-tags/components/conditional-tags-options'; +import manifest from '../manifest.json'; export const PhoneOptions = (attributes) => { - const manifest = select(STORE_NAME).getComponent('phone'); - - const { setAttributes, title = __('Phone', 'eightshift-forms') } = attributes; + const { setAttributes } = attributes; const [isNameChanged, setIsNameChanged] = useState(false); @@ -36,26 +39,26 @@ export const PhoneOptions = (attributes) => { let phoneValidationPatternOptions = []; - if (typeof esFormsLocalization !== 'undefined' && isArray(esFormsLocalization?.validationPatternsOptions)) { + if (typeof esFormsLocalization !== 'undefined') { phoneValidationPatternOptions = esFormsLocalization.validationPatternsOptions; } return ( - -
+ - -
+ text={__('General', 'eightshift-forms')} + /> + { })} /> -
- {!phoneUseLabelAsPlaceholder && ( - setAttributes({ [getAttrKey('phonePlaceholder', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('phonePlaceholder', attributes, manifest), phoneDisabledOptions)} - className='es-no-field-spacing' - /> - )} - { - setAttributes({ [getAttrKey('phonePlaceholder', attributes, manifest)]: undefined }); - setAttributes({ [getAttrKey('phoneUseLabelAsPlaceholder', attributes, manifest)]: value }); - }} + {!phoneUseLabelAsPlaceholder && ( + setAttributes({ [getAttrKey('phonePlaceholder', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('phonePlaceholder', attributes, manifest), phoneDisabledOptions)} /> -
+ )} + { + setAttributes({ [getAttrKey('phonePlaceholder', attributes, manifest)]: undefined }); + setAttributes({ [getAttrKey('phoneUseLabelAsPlaceholder', attributes, manifest)]: value }); + }} + /> { })} /> -
- - } - type='number' - min='1' - value={phoneValue} - onChange={(value) => setAttributes({ [getAttrKey('phoneValue', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('phoneValue', attributes, manifest), phoneDisabledOptions)} - help={__('Initial value of the field in phone number format (e.g. "1234567890").', 'eightshift-forms')} - /> + text={__('Advanced', 'eightshift-forms')} + /> - - } - value={phoneSelectValue} - onChange={(value) => setAttributes({ [getAttrKey('phoneSelectValue', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('phoneSelectValue', attributes, manifest), phoneDisabledOptions)} - help={__('Initial value of the field in country code format (e.g. "hr"). Only one value is allowed. Phone dropdown can\'t be empty so if no value is provided, the first option will be selected. If geolocation is enabled it will be preselected based on the user\'s location.', 'eightshift-forms')} - /> + + } + type='number' + min='1' + value={phoneValue} + onChange={(value) => setAttributes({ [getAttrKey('phoneValue', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('phoneValue', attributes, manifest), phoneDisabledOptions)} + help={__('Initial value of the field in phone number format (e.g. "1234567890").', 'eightshift-forms')} + /> - setAttributes({ [getAttrKey('phoneValueType', attributes, manifest)]: value })} - label={__('Output value type', 'eightshift-forms')} - help={__('Determine what value to sent on form submission.', 'eightshift-forms')} - options={[ - { - value: 'countryNumber', - label: __('Country number', 'eightshift-forms') - }, - { - value: 'countryNumberWithPlusPrefix', - label: __('Country number with "+" prefix', 'eightshift-forms') - }, - ]} - simpleValue - /> + setAttributes({ [getAttrKey('phoneValueType', attributes, manifest)]: value })} + label={__('Output value type', 'eightshift-forms')} + help={__('Determine what value to sent on form submission.', 'eightshift-forms')} + options={[ + { + value: 'countryNumber', + label: __('Country number', 'eightshift-forms'), + }, + { + value: 'countryNumberWithPlusPrefix', + label: __('Country number with "+" prefix', 'eightshift-forms'), + }, + ]} + simpleValue + /> - setAttributes({ [getAttrKey('phoneIsReadOnly', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('phoneIsReadOnly', attributes, manifest), phoneDisabledOptions)} - /> + - setAttributes({ [getAttrKey('phoneIsDisabled', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('phoneIsDisabled', attributes, manifest), phoneDisabledOptions)} - /> + setAttributes({ [getAttrKey('phoneIsReadOnly', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('phoneIsReadOnly', attributes, manifest), phoneDisabledOptions)} + /> - setAttributes({ [getAttrKey('phoneIsNumber', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('phoneIsNumber', attributes, manifest), phoneDisabledOptions)} - /> + setAttributes({ [getAttrKey('phoneIsDisabled', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('phoneIsDisabled', attributes, manifest), phoneDisabledOptions)} + /> - setAttributes({ [getAttrKey('phoneUseSearch', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('phoneUseSearch', attributes, manifest), phoneDisabledOptions)} - noBottomSpacing - /> -
+ setAttributes({ [getAttrKey('phoneIsNumber', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('phoneIsNumber', attributes, manifest), phoneDisabledOptions)} + /> + + setAttributes({ [getAttrKey('phoneUseSearch', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('phoneUseSearch', attributes, manifest), phoneDisabledOptions)} + /> -
- setAttributes({ [getAttrKey('phoneIsRequired', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('phoneIsRequired', attributes, manifest), phoneDisabledOptions)} - /> + text={__('Validation', 'eightshift-forms')} + /> + setAttributes({ [getAttrKey('phoneIsRequired', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('phoneIsRequired', attributes, manifest), phoneDisabledOptions)} + /> - setAttributes({ [getAttrKey('phoneValidationPattern', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('phoneValidationPattern', attributes, manifest), phoneDisabledOptions)} + placeholder='–' + clearable + /> -
- - } - value={phoneTracking} - onChange={(value) => setAttributes({ [getAttrKey('phoneTracking', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('phoneTracking', attributes, manifest), phoneDisabledOptions)} - className='es-no-field-spacing' - /> -
+ text={__('Tracking', 'eightshift-forms')} + /> + + + } + value={phoneTracking} + onChange={(value) => setAttributes({ [getAttrKey('phoneTracking', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('phoneTracking', attributes, manifest), phoneDisabledOptions)} + /> { conditionalTagsIsHidden: checkAttr('phoneFieldHidden', attributes, manifest), })} /> - + ); }; diff --git a/src/Blocks/components/phone/phone.php b/src/Blocks/components/phone/phone.php index 96e1932b5..a389a4d21 100644 --- a/src/Blocks/components/phone/phone.php +++ b/src/Blocks/components/phone/phone.php @@ -48,12 +48,12 @@ $twClasses = FormsHelper::getTwSelectors($phoneTwSelectorsData, ['phone']); -$phoneClass = Helpers::classnames([ +$phoneClass = Helpers::clsx([ FormsHelper::getTwBase($twClasses, 'phone', $componentClass), Helpers::selector($additionalClass, $additionalClass), ]); -$phoneSelectClass = Helpers::classnames([ +$phoneSelectClass = Helpers::clsx([ Helpers::selector($manifestSelect['componentClass'], $manifestSelect['componentClass'], 'select'), Helpers::selector($componentClass, $componentClass, 'select'), ]); diff --git a/src/Blocks/components/progress-bar/components/progress-bar-options.js b/src/Blocks/components/progress-bar/components/progress-bar-options.js index 33643c7d6..c4e7d23ca 100644 --- a/src/Blocks/components/progress-bar/components/progress-bar-options.js +++ b/src/Blocks/components/progress-bar/components/progress-bar-options.js @@ -1,15 +1,12 @@ import React from 'react'; import { __ } from '@wordpress/i18n'; -import { select } from '@wordpress/data'; -import { TextControl } from '@wordpress/components'; -import { icons, checkAttr, IconToggle, getAttrKey, STORE_NAME } from '@eightshift/frontend-libs/scripts'; +import { checkAttr, getAttrKey } from '@eightshift/frontend-libs-tailwind/scripts'; +import { icons } from '@eightshift/ui-components/icons'; +import { InputField, Toggle } from '@eightshift/ui-components'; +import manifest from '../manifest.json'; export const ProgressBarOptions = (attributes) => { - const manifest = select(STORE_NAME).getComponent('progress-bar'); - - const { - setAttributes, - } = attributes; + const { setAttributes } = attributes; const progressBarUse = checkAttr('progressBarUse', attributes, manifest); const progressBarHideLabels = checkAttr('progressBarHideLabels', attributes, manifest); @@ -18,7 +15,7 @@ export const ProgressBarOptions = (attributes) => { return ( <> - { }} /> - { }} /> - {progressBarMultiflowUse && - setAttributes({ [getAttrKey('progressBarMultiflowInitCount', attributes, manifest)]: value })} + onChange={(value) => + setAttributes({ [getAttrKey('progressBarMultiflowInitCount', attributes, manifest)]: value }) + } /> - } + )} ); }; diff --git a/src/Blocks/components/progress-bar/partials/multistep.php b/src/Blocks/components/progress-bar/partials/multistep.php index f0d8c22a1..7860e407d 100644 --- a/src/Blocks/components/progress-bar/partials/multistep.php +++ b/src/Blocks/components/progress-bar/partials/multistep.php @@ -22,7 +22,7 @@ $hideLabels = $attributes['hideLabels'] ?? false; -$progressBarItemClass = Helpers::classnames([ +$progressBarItemClass = Helpers::clsx([ FormsHelper::getTwPart($twClasses, 'progress-bar', 'item', "{$componentClass}__item"), Helpers::selector($jsClass, $jsClass), ]); diff --git a/src/Blocks/components/progress-bar/progress-bar.php b/src/Blocks/components/progress-bar/progress-bar.php index c6b28e8d3..bfb26d3ec 100644 --- a/src/Blocks/components/progress-bar/progress-bar.php +++ b/src/Blocks/components/progress-bar/progress-bar.php @@ -30,7 +30,7 @@ $twClasses = FormsHelper::getTwSelectors($progressBarTwSelectorsData, ['progress-bar']); -$progressBarClass = Helpers::classnames([ +$progressBarClass = Helpers::clsx([ FormsHelper::getTwBase($twClasses, 'progress-bar', $componentClass), $progressBarMultiflowUse ? FormsHelper::getTwPart($twClasses, 'progress-bar', 'multiflow', "{$componentClass}--multiflow") : FormsHelper::getTwPart($twClasses, 'progress-bar', 'multistep', "{$componentClass}--multistep"), Helpers::selector($progressBarMultiflowUse, $componentClass, '', 'multiflow'), diff --git a/src/Blocks/components/radio/components/radio-editor.js b/src/Blocks/components/radio/components/radio-editor.js index 88fa1dc9f..5eb5be7a0 100644 --- a/src/Blocks/components/radio/components/radio-editor.js +++ b/src/Blocks/components/radio/components/radio-editor.js @@ -1,30 +1,18 @@ import React from 'react'; import { __ } from '@wordpress/i18n'; -import { select } from '@wordpress/data'; -import classnames from 'classnames'; +import { checkAttr, getAttrKey } from '@eightshift/frontend-libs-tailwind/scripts'; import { - selector, - checkAttr, - props, - STORE_NAME, - getAttrKey, -} from '@eightshift/frontend-libs/scripts'; -import { ConditionalTagsEditor } from '../../conditional-tags/components/conditional-tags-editor'; -import { MissingName, VisibilityHidden, preventSaveOnMissingProps } from './../../utils'; + StatusFieldOutput, + StatusIconConditionals, + StatusIconHidden, + StatusIconMissingName, + preventSaveOnMissingProps, +} from './../../utils'; +import manifest from '../manifest.json'; +import { clsx } from '@eightshift/ui-components/utilities'; export const RadioEditor = (attributes) => { - const manifest = select(STORE_NAME).getComponent('radio'); - - const { - componentClass, - } = manifest; - - const { - selectorClass = componentClass, - blockClass, - additionalClass, - blockClientId, - } = attributes; + const { blockClientId, prefix } = attributes; const radioLabel = checkAttr('radioLabel', attributes, manifest); const radioValue = checkAttr('radioValue', attributes, manifest); @@ -33,36 +21,34 @@ export const RadioEditor = (attributes) => { preventSaveOnMissingProps(blockClientId, getAttrKey('radioValue', attributes, manifest), radioValue); - const radioClass = classnames([ - selector(componentClass, componentClass), - selector(blockClass, blockClass, selectorClass), - selector(additionalClass, additionalClass), - selector(radioIsHidden, 'es-form-is-hidden'), - ]); - - const radioLabelClass = classnames([ - selector(componentClass, componentClass, 'label'), - selector(radioLabel === '', componentClass, 'label', 'placeholder'), - selector(radioIsChecked, componentClass, 'label', 'checked'), - ]); - return ( -
- - -
-
- -
- - - - {radioValue && - - } -
+
+ + , + !radioValue && , + attributes?.[`${prefix}ConditionalTagsUse`] && , + ]} + />
); }; diff --git a/src/Blocks/components/radio/components/radio-options.js b/src/Blocks/components/radio/components/radio-options.js index 289601c01..29ea8f76a 100644 --- a/src/Blocks/components/radio/components/radio-options.js +++ b/src/Blocks/components/radio/components/radio-options.js @@ -1,29 +1,24 @@ import React from 'react'; import { useState } from '@wordpress/element'; import { __ } from '@wordpress/i18n'; -import { select } from '@wordpress/data'; -import { PanelBody, Button, TextareaControl } from '@wordpress/components'; import { MediaPlaceholder } from '@wordpress/block-editor'; +import { checkAttr, getAttrKey, props } from '@eightshift/frontend-libs-tailwind/scripts'; +import { icons } from '@eightshift/ui-components/icons'; import { - checkAttr, - getAttrKey, - icons, - IconLabel, - IconToggle, - props, - Section, - AnimatedContentVisibility, - STORE_NAME, -} from '@eightshift/frontend-libs/scripts'; + AnimatedVisibility, + RichLabel, + Button, + ContainerPanel, + InputField, + Toggle, + Spacer, +} from '@eightshift/ui-components'; import { ConditionalTagsOptions } from '../../conditional-tags/components/conditional-tags-options'; import { isOptionDisabled, NameField } from './../../utils'; +import manifest from '../manifest.json'; export const RadioOptions = (attributes) => { - const manifest = select(STORE_NAME).getComponent('radio'); - - const { - setAttributes, - } = attributes; + const { setAttributes } = attributes; const [isNameChanged, setIsNameChanged] = useState(false); @@ -37,92 +32,102 @@ export const RadioOptions = (attributes) => { const radioIsHidden = checkAttr('radioIsHidden', attributes, manifest); return ( - -
- -
- -
- setAttributes({ [getAttrKey('radioHideLabelText', attributes, manifest)]: !value })} - reducedBottomSpacing - /> - - {!radioHideLabelText && - setAttributes({ [getAttrKey('radioLabel', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('radioLabel', attributes, manifest), radioDisabledOptions)} - /> - } + + + - - - -
+ setAttributes({ [getAttrKey('radioHideLabelText', attributes, manifest)]: !value })} + /> -
- setAttributes({ [getAttrKey('radioIsChecked', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('radioIsChecked', attributes, manifest), radioDisabledOptions)} + {!radioHideLabelText && ( + setAttributes({ [getAttrKey('radioLabel', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('radioLabel', attributes, manifest), radioDisabledOptions)} /> + )} - setAttributes({ [getAttrKey('radioIsDisabled', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('radioIsDisabled', attributes, manifest), radioDisabledOptions)} + + + - setAttributes({ [getAttrKey('radioIsHidden', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('radioIsHidden', attributes, manifest), radioDisabledOptions)} - noBottomSpacing - /> -
+ + setAttributes({ [getAttrKey('radioIsChecked', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('radioIsChecked', attributes, manifest), radioDisabledOptions)} + /> + + setAttributes({ [getAttrKey('radioIsDisabled', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('radioIsDisabled', attributes, manifest), radioDisabledOptions)} + /> + + setAttributes({ [getAttrKey('radioIsHidden', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('radioIsHidden', attributes, manifest), radioDisabledOptions)} + /> -
- {radioIcon ? - <> - -
+
- -
- setAttributes({ [getAttrKey('selectMaxCount', attributes, manifest)]: value })} - min={options.selectMaxCount.min} - step={options.selectMaxCount.step} - disabled={isOptionDisabled(getAttrKey('selectMaxCount', attributes, manifest), selectDisabledOptions)} - placeholder='–' - fixedWidth={4} - noBottomSpacing - /> - - {selectMaxCount > 0 && !isOptionDisabled(getAttrKey('selectMaxCount', attributes, manifest), selectDisabledOptions) && + )} +
+ +
+ setAttributes({ [getAttrKey('selectMaxCount', attributes, manifest)]: value })} + min={options.selectMaxCount.min} + step={options.selectMaxCount.step} + disabled={isOptionDisabled(getAttrKey('selectMaxCount', attributes, manifest), selectDisabledOptions)} + placeholder='–' + fixedWidth={4} + /> + + {selectMaxCount > 0 && + !isOptionDisabled(getAttrKey('selectMaxCount', attributes, manifest), selectDisabledOptions) && (
+ )}
- - } +
+ + )} + + + -
+ setAttributes({ [getAttrKey('selectIsDisabled', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('selectIsDisabled', attributes, manifest), selectDisabledOptions)} + /> -
- + setAttributes({ [getAttrKey('selectUseSearch', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('selectUseSearch', attributes, manifest), selectDisabledOptions)} + /> - setAttributes({ [getAttrKey('selectIsDisabled', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('selectIsDisabled', attributes, manifest), selectDisabledOptions)} - /> + { + setAttributes({ [getAttrKey('selectIsMultiple', attributes, manifest)]: value }); + setAttributes({ [getAttrKey('selectMaxCount', attributes, manifest)]: undefined }); + setAttributes({ [getAttrKey('selectMinCount', attributes, manifest)]: undefined }); + }} + disabled={isOptionDisabled(getAttrKey('selectIsMultiple', attributes, manifest), selectDisabledOptions)} + /> - setAttributes({ [getAttrKey('selectUseSearch', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('selectUseSearch', attributes, manifest), selectDisabledOptions)} - /> + - { - setAttributes({ [getAttrKey('selectIsMultiple', attributes, manifest)]: value }); - setAttributes({ [getAttrKey('selectMaxCount', attributes, manifest)]: undefined }); - setAttributes({ [getAttrKey('selectMinCount', attributes, manifest)]: undefined }); - }} - disabled={isOptionDisabled(getAttrKey('selectIsMultiple', attributes, manifest), selectDisabledOptions)} - noBottomSpacing - /> -
- -
- } - value={selectTracking} - onChange={(value) => setAttributes({ [getAttrKey('selectTracking', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('selectTracking', attributes, manifest), selectDisabledOptions)} - className='es-no-field-spacing' - /> -
+ + } + value={selectTracking} + onChange={(value) => setAttributes({ [getAttrKey('selectTracking', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('selectTracking', attributes, manifest), selectDisabledOptions)} + /> { conditionalTagsIsHidden: checkAttr('selectFieldHidden', attributes, manifest), })} /> - + ); }; diff --git a/src/Blocks/components/select/select.php b/src/Blocks/components/select/select.php index 45c6604db..f8cb03218 100644 --- a/src/Blocks/components/select/select.php +++ b/src/Blocks/components/select/select.php @@ -39,7 +39,7 @@ $selectHideLabel = false; $selectFieldLabel = $attributes[Helpers::getAttrKey('selectFieldLabel', $attributes, $manifest)] ?? ''; -$selectClass = Helpers::classnames([ +$selectClass = Helpers::clsx([ Helpers::selector($componentClass, $componentClass, 'select'), Helpers::selector($additionalClass, $additionalClass), Helpers::selector($selectSingleSubmit, UtilsHelper::getStateSelectorAdmin('singleSubmit')), diff --git a/src/Blocks/components/spacer/spacer.php b/src/Blocks/components/spacer/spacer.php index 18eca8088..32199f9c5 100644 --- a/src/Blocks/components/spacer/spacer.php +++ b/src/Blocks/components/spacer/spacer.php @@ -11,7 +11,7 @@ $componentClass = $manifest['componentClass'] ?? ''; $additionalClass = $attributes['additionalClass'] ?? ''; -$spacerClass = Helpers::classnames([ +$spacerClass = Helpers::clsx([ Helpers::selector($componentClass, $componentClass), Helpers::selector($additionalClass, $additionalClass), ]); diff --git a/src/Blocks/components/step/components/step-editor.js b/src/Blocks/components/step/components/step-editor.js index f10610bd4..593bd0f5a 100644 --- a/src/Blocks/components/step/components/step-editor.js +++ b/src/Blocks/components/step/components/step-editor.js @@ -1,43 +1,23 @@ import React from 'react'; -import classnames from 'classnames'; -import { select } from '@wordpress/data'; -import { - selector, - checkAttr, - STORE_NAME, - getAttrKey, -} from '@eightshift/frontend-libs/scripts'; +import { checkAttr, getAttrKey } from '@eightshift/frontend-libs-tailwind/scripts'; import { MissingName, preventSaveOnMissingProps } from './../../utils'; +import manifest from '../manifest.json'; export const StepEditor = (attributes) => { - const manifest = select(STORE_NAME).getComponent('step'); - - const { - componentClass, - } = manifest; - - const { - additionalClass, - blockClientId, - } = attributes; + const { blockClientId } = attributes; const stepName = checkAttr('stepName', attributes, manifest); const stepLabel = checkAttr('stepLabel', attributes, manifest); preventSaveOnMissingProps(blockClientId, getAttrKey('stepName', attributes, manifest), stepName); - const stepClass = classnames([ - selector(componentClass, componentClass), - selector(additionalClass, additionalClass), - ]); - return ( -
-
+
+
{stepLabel ? stepLabel : stepName}
- +
); }; diff --git a/src/Blocks/components/step/components/step-multiflow-options.js b/src/Blocks/components/step/components/step-multiflow-options.js index 9d15cd078..f32924d7f 100644 --- a/src/Blocks/components/step/components/step-multiflow-options.js +++ b/src/Blocks/components/step/components/step-multiflow-options.js @@ -1,23 +1,32 @@ import React, { useEffect } from 'react'; import { useState } from '@wordpress/element'; import { __, sprintf } from '@wordpress/i18n'; -import { select } from '@wordpress/data'; import apiFetch from '@wordpress/api-fetch'; -import { TextControl, PanelBody, Button, Modal } from '@wordpress/components'; -import { icons, getAttrKey, checkAttr, IconToggle, props, Select, Control, Section, IconLabel, STORE_NAME } from '@eightshift/frontend-libs/scripts'; +import { Modal } from '@wordpress/components'; +import { icons } from '@eightshift/ui-components/icons'; +import { getAttrKey, checkAttr, props } from '@eightshift/frontend-libs-tailwind/scripts'; +import { + BaseControl, + Select, + RichLabel, + Button, + ContainerPanel, + InputField, + Toggle, + ContainerGroup, + Spacer, + Notice, +} from '@eightshift/ui-components'; import { CONDITIONAL_TAGS_OPERATORS_LABELS } from './../../conditional-tags/components/conditional-tags-labels'; import { getConstantsOptions } from '../../utils'; import { getRestUrl } from '../../form/assets/state-init'; import { ProgressBarOptions } from '../../progress-bar/components/progress-bar-options'; import { MultiflowFormsReactFlow } from '../../react-flow'; import globalManifest from '../../../manifest.json'; +import manifest from '../manifest.json'; export const StepMultiflowOptions = (attributes) => { - const manifest = select(STORE_NAME).getComponent('step'); - - const { - setAttributes, - } = attributes; + const { setAttributes } = attributes; const stepMultiflowUse = checkAttr('stepMultiflowUse', attributes, manifest); const stepMultiflowRules = checkAttr('stepMultiflowRules', attributes, manifest); @@ -45,8 +54,8 @@ export const StepMultiflowOptions = (attributes) => { <> {stepMultiflowRules?.map((_, index) => { return ( -
-
+
+
{__('Go to from step', 'eightshift-forms')} { stepMultiflowRules[topParent][2][parent][index][2] = ''; setAttributes({ [getAttrKey('stepMultiflowRules', attributes, manifest)]: [...stepMultiflowRules] }); }} - noBottomSpacing simpleValue noSearch - additionalSelectClasses='es-w-40' /> { stepMultiflowRules[topParent][2][parent][index][2] = value; setAttributes({ [getAttrKey('stepMultiflowRules', attributes, manifest)]: [...stepMultiflowRules] }); }} - noBottomSpacing simpleValue noSearch - additionalSelectClasses='es-w-40' /> - } + )} - {(total === index + 1) && + {total === index + 1 && ( - } + )}
@@ -282,8 +298,14 @@ export const StepMultiflowOptions = (attributes) => { }; return ( - - {(formFields?.length > 1) ? + + + + {formFields?.length > 1 ? ( <> { })} /> - setIsModalPreviewOpen(true)} /> - { setAttributes({ [getAttrKey('stepMultiflowRules', attributes, manifest)]: [] }); } }} - additionalClasses='es-font-weight-500 es-mb-5' /> -
- + 0 && sprintf(__('%d added', 'eightshift-forms'), stepMultiflowRules.length)} - inlineLabel + subtitle={ + stepMultiflowRules?.length > 0 && sprintf(__('%d added', 'eightshift-forms'), stepMultiflowRules.length) + } > - -
+ + - {isModalPreviewOpen && + {isModalPreviewOpen && ( } - onRequestClose={() => { - setIsModalPreviewOpen(false); - }} - > - + } + onRequestClose={() => { + setIsModalPreviewOpen(false); + }} + > + - } + )} - {isModalOpen && + {isModalOpen && ( } + title={ + + } onRequestClose={() => { setIsModalOpen(false); }} > -
+
-
- +
- } - : - + ) : ( + - } - + )} + ); }; diff --git a/src/Blocks/components/step/components/step-options.js b/src/Blocks/components/step/components/step-options.js index 253002493..38ba68adc 100644 --- a/src/Blocks/components/step/components/step-options.js +++ b/src/Blocks/components/step/components/step-options.js @@ -1,17 +1,14 @@ import React from 'react'; -import { select } from '@wordpress/data'; import { useState } from '@wordpress/element'; import { __ } from '@wordpress/i18n'; -import { TextControl, PanelBody } from '@wordpress/components'; -import { icons, checkAttr, getAttrKey, IconLabel, Section, STORE_NAME } from '@eightshift/frontend-libs/scripts'; +import { icons } from '@eightshift/ui-components/icons'; +import { checkAttr, getAttrKey } from '@eightshift/frontend-libs-tailwind/scripts'; import { NameField } from './../../utils'; +import { RichLabel, ContainerPanel, InputField, Spacer } from '@eightshift/ui-components'; +import manifest from '../manifest.json'; export const StepOptions = (attributes) => { - const manifest = select(STORE_NAME).getComponent('step'); - - const { - setAttributes, - } = attributes; + const { setAttributes } = attributes; const [isNameChanged, setIsNameChanged] = useState(false); @@ -21,45 +18,60 @@ export const StepOptions = (attributes) => { const stepNextLabel = checkAttr('stepNextLabel', attributes, manifest); return ( - <> - -
- -
+ + + -
- setAttributes({ [getAttrKey('stepLabel', attributes, manifest)]: value })} - /> -
+ setAttributes({ [getAttrKey('stepLabel', attributes, manifest)]: value })} + /> -
+ - } - placeholder={__('Previous', 'eightshift-forms')} - value={stepPrevLabel} - onChange={(value) => setAttributes({ [getAttrKey('stepPrevLabel', attributes, manifest)]: value })} + + } + placeholder={__('Previous', 'eightshift-forms')} + value={stepPrevLabel} + onChange={(value) => setAttributes({ [getAttrKey('stepPrevLabel', attributes, manifest)]: value })} + /> - } - placeholder={__('Next', 'eightshift-forms')} - value={stepNextLabel} - onChange={(value) => setAttributes({ [getAttrKey('stepNextLabel', attributes, manifest)]: value })} + -
-
- + } + placeholder={__('Next', 'eightshift-forms')} + value={stepNextLabel} + onChange={(value) => setAttributes({ [getAttrKey('stepNextLabel', attributes, manifest)]: value })} + /> + ); }; diff --git a/src/Blocks/components/steps/steps.php b/src/Blocks/components/steps/steps.php index 4ca176961..a0b17b487 100644 --- a/src/Blocks/components/steps/steps.php +++ b/src/Blocks/components/steps/steps.php @@ -13,7 +13,7 @@ $stepsTitle = Helpers::checkAttr('stepsTitle', $attributes, $manifest); $stepsContent = Helpers::checkAttr('stepsContent', $attributes, $manifest); -$stepsClass = Helpers::classnames([ +$stepsClass = Helpers::clsx([ Helpers::selector($componentClass, $componentClass), ]); diff --git a/src/Blocks/components/submit/components/submit-editor.js b/src/Blocks/components/submit/components/submit-editor.js index fb29d0c32..4eca67d72 100644 --- a/src/Blocks/components/submit/components/submit-editor.js +++ b/src/Blocks/components/submit/components/submit-editor.js @@ -1,37 +1,14 @@ import React from 'react'; import { __ } from '@wordpress/i18n'; -import classnames from 'classnames'; -import { select } from '@wordpress/data'; -import { - selector, - props, - STORE_NAME, - checkAttr, -} from '@eightshift/frontend-libs/scripts'; +import { props, checkAttr } from '@eightshift/frontend-libs-tailwind/scripts'; import { FieldEditor } from '../../../components/field/components/field-editor'; +import manifest from '../manifest.json'; export const SubmitEditor = (attributes) => { - const manifest = select(STORE_NAME).getComponent('submit'); - - const { - componentClass, - componentName - } = manifest; - - const { - additionalFieldClass, - additionalClass, - } = attributes; - const submitValue = checkAttr('submitValue', attributes, manifest); - const submitClass = classnames([ - selector(componentClass, componentClass), - selector(additionalClass, additionalClass), - ]); - const submitComponent = ( - ); @@ -42,8 +19,6 @@ export const SubmitEditor = (attributes) => { {...props('field', attributes, { fieldContent: submitComponent, })} - additionalFieldClass={additionalFieldClass} - selectorClass={componentName} /> ); diff --git a/src/Blocks/components/submit/components/submit-options.js b/src/Blocks/components/submit/components/submit-options.js index c030c020e..a56bedf97 100644 --- a/src/Blocks/components/submit/components/submit-options.js +++ b/src/Blocks/components/submit/components/submit-options.js @@ -1,17 +1,14 @@ import React from 'react'; import { __ } from '@wordpress/i18n'; -import { select } from '@wordpress/data'; -import { TextControl, PanelBody } from '@wordpress/components'; -import { icons, checkAttr, getAttrKey, IconLabel, props, IconToggle, Section, STORE_NAME } from '@eightshift/frontend-libs/scripts'; +import { icons } from '@eightshift/ui-components/icons'; +import { checkAttr, getAttrKey, props } from '@eightshift/frontend-libs-tailwind/scripts'; import { FieldOptionsMore, FieldOptionsLayout, FieldOptionsVisibility } from '../../field/components/field-options'; import { isOptionDisabled } from './../../utils'; +import { RichLabel, ContainerPanel, InputField, Toggle, Spacer } from '@eightshift/ui-components'; +import manifest from '../manifest.json'; export const SubmitOptions = (attributes) => { - const manifest = select(STORE_NAME).getComponent('submit'); - - const { - setAttributes, - } = attributes; + const { setAttributes } = attributes; const submitValue = checkAttr('submitValue', attributes, manifest); const submitIsDisabled = checkAttr('submitIsDisabled', attributes, manifest); @@ -19,15 +16,23 @@ export const SubmitOptions = (attributes) => { const submitDisabledOptions = checkAttr('submitDisabledOptions', attributes, manifest); return ( - -
- } - value={submitValue} - onChange={(value) => setAttributes({ [getAttrKey('submitValue', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('submitValue', attributes, manifest), submitDisabledOptions)} - /> -
+ + + + } + value={submitValue} + onChange={(value) => setAttributes({ [getAttrKey('submitValue', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('submitValue', attributes, manifest), submitDisabledOptions)} + /> { })} /> -
- + + + - setAttributes({ [getAttrKey('submitIsDisabled', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('submitIsDisabled', attributes, manifest), submitDisabledOptions)} - noBottomSpacing - /> -
+ setAttributes({ [getAttrKey('submitIsDisabled', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('submitIsDisabled', attributes, manifest), submitDisabledOptions)} + /> -
- } - value={submitTracking} - onChange={(value) => setAttributes({ [getAttrKey('submitTracking', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('submitTracking', attributes, manifest), submitDisabledOptions)} - className='es-no-field-spacing' - /> -
+ + + } + value={submitTracking} + onChange={(value) => setAttributes({ [getAttrKey('submitTracking', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('submitTracking', attributes, manifest), submitDisabledOptions)} + /> -
+ ); }; diff --git a/src/Blocks/components/tab/tab.php b/src/Blocks/components/tab/tab.php index ecad60a79..1063bf6f7 100644 --- a/src/Blocks/components/tab/tab.php +++ b/src/Blocks/components/tab/tab.php @@ -16,12 +16,12 @@ $tabContent = Helpers::checkAttr('tabContent', $attributes, $manifest); $tabNoBg = Helpers::checkAttr('tabNoBg', $attributes, $manifest); -$tabLabelClass = Helpers::classnames([ +$tabLabelClass = Helpers::clsx([ Helpers::selector($componentClass, $componentClass, 'label'), UtilsHelper::getStateSelectorAdmin('tabsItem'), ]); -$tabContentClass = Helpers::classnames([ +$tabContentClass = Helpers::clsx([ Helpers::selector($componentClass, $componentClass, 'content'), Helpers::selector($tabNoBg, $componentClass, 'content', 'no-bg'), ]); diff --git a/src/Blocks/components/tabs/tabs.php b/src/Blocks/components/tabs/tabs.php index d2324e41c..5212d892d 100644 --- a/src/Blocks/components/tabs/tabs.php +++ b/src/Blocks/components/tabs/tabs.php @@ -15,7 +15,7 @@ $tabsContent = Helpers::checkAttr('tabsContent', $attributes, $manifest); -$tabsClass = Helpers::classnames([ +$tabsClass = Helpers::clsx([ Helpers::selector($componentClass, $componentClass), Helpers::selector($additionalClass, $additionalClass), UtilsHelper::getStateSelectorAdmin('tabs'), diff --git a/src/Blocks/components/textarea/components/textarea-editor.js b/src/Blocks/components/textarea/components/textarea-editor.js index beaf6c9a4..cc5bb0d6f 100644 --- a/src/Blocks/components/textarea/components/textarea-editor.js +++ b/src/Blocks/components/textarea/components/textarea-editor.js @@ -1,30 +1,11 @@ import React from 'react'; -import classnames from 'classnames'; -import { select } from '@wordpress/data'; -import { - selector, - checkAttr, - props, - STORE_NAME, - getAttrKey, -} from '@eightshift/frontend-libs/scripts'; +import { checkAttr, props, getAttrKey } from '@eightshift/frontend-libs-tailwind/scripts'; import { FieldEditor } from '../../../components/field/components/field-editor'; -import { MissingName, preventSaveOnMissingProps } from './../../utils'; -import { ConditionalTagsEditor } from '../../conditional-tags/components/conditional-tags-editor'; +import { preventSaveOnMissingProps, StatusIconConditionals, StatusIconMissingName } from './../../utils'; +import manifest from '../manifest.json'; export const TextareaEditor = (attributes) => { - const manifest = select(STORE_NAME).getComponent('textarea'); - - const { - componentClass, - componentName - } = manifest; - - const { - additionalFieldClass, - additionalClass, - blockClientId, - } = attributes; + const { blockClientId, prefix } = attributes; const textareaValue = checkAttr('textareaValue', attributes, manifest); const textareaPlaceholder = checkAttr('textareaPlaceholder', attributes, manifest); @@ -32,28 +13,15 @@ export const TextareaEditor = (attributes) => { preventSaveOnMissingProps(blockClientId, getAttrKey('textareaName', attributes, manifest), textareaName); - const textareaClass = classnames([ - selector(componentClass, componentClass), - selector(additionalClass, additionalClass), - ]); - const textarea = ( <> - - - - {textareaName && - - } ); @@ -64,8 +32,10 @@ export const TextareaEditor = (attributes) => { fieldContent: textarea, fieldIsRequired: checkAttr('textareaIsRequired', attributes, manifest), })} - additionalFieldClass={additionalFieldClass} - selectorClass={componentName} + statusSlog={[ + !textareaName && , + attributes?.[`${prefix}ConditionalTagsUse`] && , + ]} /> ); diff --git a/src/Blocks/components/textarea/components/textarea-options.js b/src/Blocks/components/textarea/components/textarea-options.js index 40471f3e7..639839a66 100644 --- a/src/Blocks/components/textarea/components/textarea-options.js +++ b/src/Blocks/components/textarea/components/textarea-options.js @@ -3,39 +3,34 @@ import React from 'react'; import { __ } from '@wordpress/i18n'; import { useState } from '@wordpress/element'; -import { isArray } from 'lodash'; -import { select } from '@wordpress/data'; -import { TextControl, PanelBody, Button } from '@wordpress/components'; +import { icons } from '@eightshift/ui-components/icons'; +import { checkAttr, getAttrKey, props } from '@eightshift/frontend-libs-tailwind/scripts'; import { - icons, - checkAttr, - getAttrKey, - IconLabel, - props, - Section, + BaseControl, Select, - IconToggle, + RichLabel, NumberPicker, - Control, - STORE_NAME, -} from '@eightshift/frontend-libs/scripts'; -import { FieldOptions, FieldOptionsMore, FieldOptionsLayout, FieldOptionsVisibility } from '../../field/components/field-options'; + Button, + InputField, + Toggle, + ContainerGroup, + ContainerPanel, + Spacer, +} from '@eightshift/ui-components'; +import { + FieldOptions, + FieldOptionsMore, + FieldOptionsLayout, + FieldOptionsVisibility, +} from '../../field/components/field-options'; import { isOptionDisabled, NameField } from './../../utils'; import { ConditionalTagsOptions } from '../../conditional-tags/components/conditional-tags-options'; +import manifest from '../manifest.json'; export const TextareaOptions = (attributes) => { - const manifest = select(STORE_NAME).getComponent('textarea'); - - const { - options, - } = manifest; - - const { - setAttributes, + const { options } = manifest; - showTextareaMinLength = true, - showTextareaMaxLength = true, - } = attributes; + const { setAttributes } = attributes; const [isNameChanged, setIsNameChanged] = useState(false); @@ -54,23 +49,26 @@ export const TextareaOptions = (attributes) => { let textareaValidationPatternOptions = []; - if (typeof esFormsLocalization !== 'undefined' && isArray(esFormsLocalization?.validationPatternsOptions)) { + if (typeof esFormsLocalization !== 'undefined') { textareaValidationPatternOptions = esFormsLocalization.validationPatternsOptions; } return ( - -
- -
+ + + { })} /> -
- {!textareaUseLabelAsPlaceholder && - + {!textareaUseLabelAsPlaceholder && ( + setAttributes({ [getAttrKey('textareaPlaceholder', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('textareaPlaceholder', attributes, manifest), textareaDisabledOptions)} - className='es-no-field-spacing' + disabled={isOptionDisabled( + getAttrKey('textareaPlaceholder', attributes, manifest), + textareaDisabledOptions, + )} /> - } - { setAttributes({ [getAttrKey('textareaUseLabelAsPlaceholder', attributes, manifest)]: value }); }} /> -
+ { })} /> -
- setAttributes({ [getAttrKey('textareaIsRequired', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('textareaIsRequired', attributes, manifest), textareaDisabledOptions)} - /> + - setAttributes({ [getAttrKey('textareaValidationPattern', attributes, manifest)]: value })} + disabled={isOptionDisabled( + getAttrKey('textareaValidationPattern', attributes, manifest), + textareaDisabledOptions, + )} + placeholder='–' + clearable + /> + + +
+
+ setAttributes({ [getAttrKey('textareaMinLength', attributes, manifest)]: value })} + min={options.textareaMinLength.min} + step={options.textareaMinLength.step} + disabled={isOptionDisabled( + getAttrKey('textareaMinLength', attributes, manifest), + textareaDisabledOptions, + )} + placeholder='–' + fixedWidth={4} + /> + + {textareaMinLength > 0 && + !isOptionDisabled(getAttrKey('textareaMinLength', attributes, manifest), textareaDisabledOptions) && ( +
+
+ setAttributes({ [getAttrKey('textareaMaxLength', attributes, manifest)]: value })} + min={options.textareaMaxLength.min} + step={options.textareaMaxLength.step} + disabled={isOptionDisabled( + getAttrKey('textareaMaxLength', attributes, manifest), + textareaDisabledOptions, + )} + placeholder='–' + fixedWidth={4} + /> - {(showTextareaMinLength || showTextareaMaxLength) && - -
- {showTextareaMinLength && -
- setAttributes({ [getAttrKey('textareaMinLength', attributes, manifest)]: value })} - min={options.textareaMinLength.min} - step={options.textareaMinLength.step} - disabled={isOptionDisabled(getAttrKey('textareaMinLength', attributes, manifest), textareaDisabledOptions)} - placeholder='–' - fixedWidth={4} - noBottomSpacing - /> - - {textareaMinLength > 0 && !isOptionDisabled(getAttrKey('textareaMinLength', attributes, manifest), textareaDisabledOptions) && -
- } - - {showTextareaMaxLength && -
- setAttributes({ [getAttrKey('textareaMaxLength', attributes, manifest)]: value })} - min={options.textareaMaxLength.min} - step={options.textareaMaxLength.step} - disabled={isOptionDisabled(getAttrKey('textareaMaxLength', attributes, manifest), textareaDisabledOptions)} - placeholder='–' - fixedWidth={4} - noBottomSpacing - /> - - {textareaMaxLength > 0 && !isOptionDisabled(getAttrKey('textareaMaxLength', attributes, manifest), textareaDisabledOptions) && -
- } -
-
+ {textareaMaxLength > 0 && + !isOptionDisabled(getAttrKey('textareaMaxLength', attributes, manifest), textareaDisabledOptions) && ( +
+
+
+ + + + } -
- -
- } - value={textareaValue} - onChange={(value) => setAttributes({ [getAttrKey('textareaValue', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('textareaValue', attributes, manifest), textareaDisabledOptions)} - /> + value={textareaValue} + onChange={(value) => setAttributes({ [getAttrKey('textareaValue', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('textareaValue', attributes, manifest), textareaDisabledOptions)} + /> - + - setAttributes({ [getAttrKey('textareaIsReadOnly', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('textareaIsReadOnly', attributes, manifest), textareaDisabledOptions)} - /> + setAttributes({ [getAttrKey('textareaIsReadOnly', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('textareaIsReadOnly', attributes, manifest), textareaDisabledOptions)} + /> - setAttributes({ [getAttrKey('textareaIsDisabled', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('textareaIsDisabled', attributes, manifest), textareaDisabledOptions)} - noBottomSpacing - /> -
- -
- } - value={textareaTracking} - onChange={(value) => setAttributes({ [getAttrKey('textareaTracking', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('textareaTracking', attributes, manifest), textareaDisabledOptions)} - className='es-no-field-spacing' - /> -
+ setAttributes({ [getAttrKey('textareaIsDisabled', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('textareaIsDisabled', attributes, manifest), textareaDisabledOptions)} + /> + + + + + } + value={textareaTracking} + onChange={(value) => setAttributes({ [getAttrKey('textareaTracking', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('textareaTracking', attributes, manifest), textareaDisabledOptions)} + /> { conditionalTagsIsHidden: checkAttr('textareaFieldHidden', attributes, manifest), })} /> -
+ ); }; diff --git a/src/Blocks/components/textarea/textarea.php b/src/Blocks/components/textarea/textarea.php index faa527ed3..52f61b570 100644 --- a/src/Blocks/components/textarea/textarea.php +++ b/src/Blocks/components/textarea/textarea.php @@ -44,7 +44,7 @@ $twClasses = FormsHelper::getTwSelectors($textareaTwSelectorsData, ['textarea']); -$textareaClass = Helpers::classnames([ +$textareaClass = Helpers::clsx([ FormsHelper::getTwBase($twClasses, 'textarea', $componentClass), Helpers::selector($additionalClass, $additionalClass), Helpers::selector($textareaIsMonospace, $componentClass, '', 'monospace'), diff --git a/src/Blocks/components/tooltip/tooltip.php b/src/Blocks/components/tooltip/tooltip.php index a00d1a46c..361c56eac 100644 --- a/src/Blocks/components/tooltip/tooltip.php +++ b/src/Blocks/components/tooltip/tooltip.php @@ -16,7 +16,7 @@ $tooltipContent = Helpers::checkAttr('tooltipContent', $attributes, $manifest); $tooltipPosition = Helpers::checkAttr('tooltipPosition', $attributes, $manifest); -$tooltipClass = Helpers::classnames([ +$tooltipClass = Helpers::clsx([ Helpers::selector($componentClass, $componentClass), Helpers::selector($tooltipPosition, $componentClass, '', $tooltipPosition), Helpers::selector($selectorClass, $selectorClass, $componentClass), diff --git a/src/Blocks/components/utils/index.js b/src/Blocks/components/utils/index.js index 2a6bcebad..e5c7c47f4 100644 --- a/src/Blocks/components/utils/index.js +++ b/src/Blocks/components/utils/index.js @@ -2,26 +2,17 @@ import React, { useEffect } from 'react'; import { __, sprintf } from '@wordpress/i18n'; -import { select, dispatch } from "@wordpress/data"; +import { select, dispatch } from '@wordpress/data'; import apiFetch from '@wordpress/api-fetch'; -import { Tooltip, Button, TextControl } from '@wordpress/components'; +import { Tooltip } from '@wordpress/components'; import { createBlock, createBlocksFromInnerBlocksTemplate } from '@wordpress/blocks'; -import { - AnimatedContentVisibility, - camelize, - classnames, - IconLabel, - icons, - STORE_NAME, - Notification, - lockPostEditing, - unlockPostEditing, - unescapeHTML, - getUnique, -} from '@eightshift/frontend-libs/scripts'; +import { icons } from '@eightshift/ui-components/icons'; +import { STORE_NAME, lockPostEditing, unlockPostEditing, getUnique } from '@eightshift/frontend-libs-tailwind/scripts'; +import { AnimatedVisibility, RichLabel, Notice, Button, InputField } from '@eightshift/ui-components'; +import { unescapeHTML, camelCase } from '@eightshift/ui-components/utilities'; import { FORMS_STORE_NAME } from './../../assets/scripts/store'; import { getRestUrl, getRestUrlByType, getUtilsIcons } from '../form/assets/state-init'; -import globalSettings from './../../manifest.json'; +import globalSettings from './../../manifest.json'; /** * check if block options is disabled by integration or other component. @@ -155,11 +146,7 @@ export const clearTransientCache = (type) => { * @returns {void} */ export const createBlockFromTemplate = (clientId, name, templates) => { - const { - blockName, - attributes = {}, - innerBlocks = [], - } = templates.filter((form) => form.slug === name)[0]; + const { blockName, attributes = {}, innerBlocks = [] } = templates.filter((form) => form.slug === name)[0]; // Build all inner blocks. const inner = innerBlocks.map((item) => createBlock(item[0], item[1] ?? {}, item[2] ?? [])); @@ -221,30 +208,30 @@ export const getFormFields = () => { value: '', label: '', }, - ...fields.map((item) => { - const { - attributes, - attributes: { - blockName, + ...fields + .map((item) => { + const { + attributes, + attributes: { blockName }, + } = item; + + const value = attributes[camelCase(`${blockName}-${blockName}-name`)]; + let label = attributes[camelCase(`${blockName}-${blockName}-field-label`)]; + + if (value === 'submit') { + return null; } - } = item; - const value = attributes[camelize(`${blockName}-${blockName}-name`)]; - let label = attributes[camelize(`${blockName}-${blockName}-field-label`)]; - - if (value === 'submit') { - return null; - } - - if (label === 'Label') { - label = value; - } + if (label === 'Label') { + label = value; + } - return { - 'label': label, - 'value': value, - }; - }).filter((elm) => elm), + return { + label: label, + value: value, + }; + }) + .filter((elm) => elm), ]; }; @@ -290,8 +277,8 @@ export const getConstantsOptions = (options, useEmpty = false) => { if (options) { for (const [key, value] of Object.entries(options)) { items.push({ - 'value': key, - 'label': value + value: key, + label: value, }); } } @@ -317,8 +304,8 @@ export const getSettingsJsonOptions = (options, useEmpty = false) => { if (options) { options.map((item) => { items.push({ - 'value': item[0], - 'label': item[1], + value: item[0], + label: item[1], }); }); } @@ -331,55 +318,72 @@ export const getSettingsJsonOptions = (options, useEmpty = false) => { * * @param {string} value Field name value. * @param {bool} asPlaceholder If this is a placeholder. - * @param {string} className Additional class name to add. + * @param {bool} isOptional If this is an optional field. * * @returns Component */ -export const MissingName = ({ - value, - asPlaceholder, - className = '', - isOptional = false, -}) => { +export const MissingName = ({ value, asPlaceholder, isOptional = false }) => { if (value || asPlaceholder) { return null; } - const style = classnames( - 'es-position-absolute es-right-0 es-top-0 es-nested-color-pure-white es-nested-w-5 es-nested-h-5 es-w-8 es-h-8 es-rounded-full es-has-enhanced-contrast-icon es-display-flex es-items-center es-content-center', - isOptional ? 'es-bg-yellow-500' : 'es-bg-red-500', - className, + return ( +
+ + {React.cloneElement(icons.warning)} + +
); +}; + +export const StatusFieldOutput = ({ components }) => { + if (!components) { + return null; + } return ( -
- - {React.cloneElement(icons.warning, {className: 'es-mb-0.5'})} - +
+ {components.map((component) => { + if (!component) { + return null; + } + + return ( +
+ {component} +
+ ); + })}
); }; /** - * Outputs notification if visibility is hidden. + * Outputs notification if status is conditionals. * * @param {bool} value Field value. - * @param {string} label Field label. * * @returns Component */ -export const VisibilityHidden = ({ value, label }) => { - if (!value) { - return null; - } +export const StatusIconConditionals = () => { + return icons.conditionalVisibility; +}; - return ( -
- - {icons.hide} - -
- ); +export const StatusIconHidden = () => { + return icons.hide; +}; + +export const StatusIconMissingName = () => { + return icons.warning; }; /** @@ -409,58 +413,74 @@ export const NameField = ({ isOptional = false, setIsChanged, }) => { - const isDisabled = isOptionDisabled(attribute, disabledOptions); const NameFieldLabel = () => { - let labelTipText = !isOptional ? __('The form may not work correctly.', 'eightshift-forms') : __('Name field is required only if you are using conditional tags on this field.', 'eightshift-forms'); + let labelTipText = !isOptional + ? __('The form may not work correctly.', 'eightshift-forms') + : __('Name field is required only if you are using conditional tags on this field.', 'eightshift-forms'); if (type === 'resultOutputItem') { - labelTipText = __(`Variable name you can use is "${globalSettings.enums.successRedirectUrlKeys.variation}" or any other provided by the plugins' add-on.`, 'eightshift-forms'); + labelTipText = __( + `Variable name you can use is "${globalSettings.enums.successRedirectUrlKeys.variation}" or any other provided by the plugins' add-on.`, + 'eightshift-forms', + ); } return ( -
- +
+ - + - { - !isOptional ? - {__('Required', 'eightshift-forms')} : - {__('Optional', 'eightshift-forms')} - } + {!isOptional ? ( + {__('Required', 'eightshift-forms')} + ) : ( + {__('Optional', 'eightshift-forms')} + )} - + - {(!value && !isDisabled) && + {!value && !isDisabled && ( - } + )}
); }; - let helpText = sprintf(__('Identifies the %s within form submission data. Must be unique. %s', 'eightshift-forms'), type, help); + let helpText = sprintf( + __('Identifies the %s within form submission data. Must be unique. %s', 'eightshift-forms'), + type, + help, + ); if (type === 'resultOutputItem') { - helpText = __('Identifies the what result output item the user will see after successful submit redirect.', 'eightshift-forms'); + helpText = __( + 'Identifies the what result output item the user will see after successful submit redirect.', + 'eightshift-forms', + ); } return ( <> - {show && + {show && ( <> - } help={helpText} value={value} @@ -471,9 +491,12 @@ export const NameField = ({ disabled={isDisabled} /> - + - } + )} ); }; @@ -492,7 +515,7 @@ export const preventSaveOnMissingProps = (blockClientId, key, value) => { // Allows triggering this action only when the block is inserted in the editor. if (select('core/block-editor').getBlock(blockClientId)) { // Lock/unlock depending on the value. - (value === '') ? lockPostEditing(blockClientId, key) : unlockPostEditing(blockClientId, key); + value === '' ? lockPostEditing(blockClientId, key) : unlockPostEditing(blockClientId, key); } // Use this method to detect if the block has been deleted from the block editor. @@ -510,10 +533,7 @@ export const preventSaveOnMissingProps = (blockClientId, key, value) => { * * @returns Component */ -export const NameChangeWarning = ({ - isChanged = false, - type = 'default' - }) => { +export const NameChangeWarning = ({ isChanged = false, type = 'default' }) => { let text = ''; if (!isChanged) { @@ -522,22 +542,34 @@ export const NameChangeWarning = ({ switch (type) { case 'value': - text = __('After changing the field value, ensure that you review all conditional tags and form multi-flow configurations to avoid any errors.', 'eightshift-forms'); + text = __( + 'After changing the field value, ensure that you review all conditional tags and form multi-flow configurations to avoid any errors.', + 'eightshift-forms', + ); break; case 'step': - text = __('After changing the step name, ensure that you review forms multi-flow configurations to avoid any errors.', 'eightshift-forms'); + text = __( + 'After changing the step name, ensure that you review forms multi-flow configurations to avoid any errors.', + 'eightshift-forms', + ); break; case 'resultOutputItem': - text = __('After changing the result item variable name, ensure that you provide the correct variation name via form settings.', 'eightshift-forms'); + text = __( + 'After changing the result item variable name, ensure that you provide the correct variation name via form settings.', + 'eightshift-forms', + ); break; default: - text = __('After changing the field name, ensure that you review all conditional tags and form multi-flow configurations to avoid any errors.', 'eightshift-forms'); + text = __( + 'After changing the field name, ensure that you review all conditional tags and form multi-flow configurations to avoid any errors.', + 'eightshift-forms', + ); break; } return ( - ); @@ -548,18 +580,15 @@ export const NameChangeWarning = ({ * * @returns Component */ -export const FormEditButton = ({formId}) => { +export const FormEditButton = ({ formId }) => { const wpAdminUrl = esFormsLocalization.wpAdminUrl; - const { - editFormUrl, - } = select(STORE_NAME).getSettings(); + const { editFormUrl } = select(STORE_NAME).getSettings(); return ( @@ -571,21 +600,18 @@ export const FormEditButton = ({formId}) => { * * @returns Component */ -export const SettingsButton = ({formId}) => { +export const SettingsButton = ({ formId }) => { const wpAdminUrl = esFormsLocalization.wpAdminUrl; const postId = select('core/editor').getCurrentPostId(); const id = formId ?? postId; - const { - settingsPageUrl, - } = select(STORE_NAME).getSettings(); + const { settingsPageUrl } = select(STORE_NAME).getSettings(); return ( @@ -600,15 +626,12 @@ export const SettingsButton = ({formId}) => { export const GlobalSettingsButton = () => { const wpAdminUrl = esFormsLocalization.wpAdminUrl; - const { - globalSettingsPageUrl, - } = select(STORE_NAME).getSettings(); + const { globalSettingsPageUrl } = select(STORE_NAME).getSettings(); return ( @@ -620,21 +643,18 @@ export const GlobalSettingsButton = () => { * * @returns Component */ -export const LocationsButton = ({formId}) => { +export const LocationsButton = ({ formId }) => { const wpAdminUrl = esFormsLocalization.wpAdminUrl; const postId = select('core/editor').getCurrentPostId(); const id = formId ?? postId; - const { - locationsPageUrl, - } = select(STORE_NAME).getSettings(); + const { locationsPageUrl } = select(STORE_NAME).getSettings(); return ( @@ -649,15 +669,12 @@ export const LocationsButton = ({formId}) => { export const DashboardButton = () => { const wpAdminUrl = esFormsLocalization.wpAdminUrl; - const { - dashboardPageUrl, - } = select(STORE_NAME).getSettings(); + const { dashboardPageUrl } = select(STORE_NAME).getSettings(); return ( @@ -670,11 +687,7 @@ export const DashboardButton = () => { * @returns object */ export const outputFormSelectItemWithIcon = (props) => { - const { - label, - id, - metadata, - } = props; + const { label, id, metadata } = props; if (!id) { return ''; @@ -697,7 +710,13 @@ export const outputFormSelectItemWithIcon = (props) => { return { id, - label: ${icon}${outputLabel}`}} />, + label: ( + ${icon}${outputLabel}`, + }} + /> + ), value: id, metadata, }; diff --git a/src/Blocks/components/utils/partials/debug-field-details.php b/src/Blocks/components/utils/partials/debug-field-details.php index 8b181afdf..ba171712b 100644 --- a/src/Blocks/components/utils/partials/debug-field-details.php +++ b/src/Blocks/components/utils/partials/debug-field-details.php @@ -20,7 +20,7 @@ $fieldManifest = Helpers::getComponent('field'); -$componentClass = Helpers::classnames([ +$componentClass = Helpers::clsx([ Helpers::selector(true, $fieldManifest['componentClass'], 'debug'), ]); diff --git a/src/Blocks/custom/activecampaign/components/activecampaign-editor.js b/src/Blocks/custom/activecampaign/components/activecampaign-editor.js index f6f0bf47b..83b4caa5c 100644 --- a/src/Blocks/custom/activecampaign/components/activecampaign-editor.js +++ b/src/Blocks/custom/activecampaign/components/activecampaign-editor.js @@ -1,26 +1,14 @@ import React from 'react'; -import { select } from '@wordpress/data'; -import { STORE_NAME, checkAttr } from '@eightshift/frontend-libs/scripts'; +import { checkAttr } from '@eightshift/frontend-libs-tailwind/scripts'; import { IntegrationsEditor } from '../../../components/integrations/components/integrations-editor'; +import manifest from '../manifest.json'; -export const ActivecampaignEditor = ({ - attributes, - setAttributes, - itemIdKey, -}) => { - const manifest = select(STORE_NAME).getBlock('activecampaign'); - - const { - blockClass, - } = attributes; - +export const ActivecampaignEditor = ({ attributes, setAttributes, itemIdKey }) => { return ( -
- -
+ ); }; diff --git a/src/Blocks/custom/activecampaign/components/activecampaign-options.js b/src/Blocks/custom/activecampaign/components/activecampaign-options.js index 42c8283fe..2e3f4011d 100644 --- a/src/Blocks/custom/activecampaign/components/activecampaign-options.js +++ b/src/Blocks/custom/activecampaign/components/activecampaign-options.js @@ -1,20 +1,10 @@ import React from 'react'; -import { select } from '@wordpress/data'; -import { STORE_NAME, checkAttr } from '@eightshift/frontend-libs/scripts'; +import { checkAttr } from '@eightshift/frontend-libs-tailwind/scripts'; import { IntegrationsOptions } from '../../../components/integrations/components/integrations-options'; +import manifest from '../manifest.json'; -export const ActivecampaignOptions = ({ - attributes, - setAttributes, - clientId, - itemIdKey, -}) => { - const manifest = select(STORE_NAME).getBlock('activecampaign'); - - const { - title, - blockName, - } = manifest; +export const ActivecampaignOptions = ({ attributes, setAttributes, clientId, itemIdKey }) => { + const { title, blockName } = manifest; return ( { - const manifest = select(STORE_NAME).getBlock('airtable'); - - const { - blockClass, - } = attributes; - +export const AirtableEditor = ({ attributes, setAttributes, itemIdKey, innerIdKey, clientId }) => { return ( -
- -
+ ); }; diff --git a/src/Blocks/custom/airtable/components/airtable-options.js b/src/Blocks/custom/airtable/components/airtable-options.js index 311a64a77..49411a0ac 100644 --- a/src/Blocks/custom/airtable/components/airtable-options.js +++ b/src/Blocks/custom/airtable/components/airtable-options.js @@ -1,21 +1,10 @@ import React from 'react'; -import { select } from '@wordpress/data'; -import { STORE_NAME, checkAttr } from '@eightshift/frontend-libs/scripts'; +import { checkAttr } from '@eightshift/frontend-libs-tailwind/scripts'; import { IntegrationsOptions } from './../../../components/integrations/components/integrations-options'; +import manifest from '../manifest.json'; -export const AirtableOptions = ({ - attributes, - setAttributes, - clientId, - itemIdKey, - innerIdKey, -}) => { - const manifest = select(STORE_NAME).getBlock('airtable'); - - const { - title, - blockName, - } = manifest; +export const AirtableOptions = ({ attributes, setAttributes, clientId, itemIdKey, innerIdKey }) => { + const { title, blockName } = manifest; return ( { - const { - blockClass, - } = attributes; + const { blockClass } = attributes; return (
} /> + ), })} />
diff --git a/src/Blocks/custom/calculator/components/calculator-options.js b/src/Blocks/custom/calculator/components/calculator-options.js index c007b2af8..af5b5a003 100644 --- a/src/Blocks/custom/calculator/components/calculator-options.js +++ b/src/Blocks/custom/calculator/components/calculator-options.js @@ -1,18 +1,9 @@ import React from 'react'; -import { select } from '@wordpress/data'; import { IntegrationsInternalOptions } from '../../../components/integrations/components/integrations-internal-options'; -import { STORE_NAME } from '@eightshift/frontend-libs/scripts'; +import manifest from '../manifest.json'; -export const CalculatorOptions = ({ - attributes, - setAttributes, - clientId, -}) => { - const manifest = select(STORE_NAME).getBlock('calculator'); - - const { - title, - } = manifest; +export const CalculatorOptions = ({ attributes, setAttributes, clientId }) => { + const { title } = manifest; return ( { - const { - blockClass, - } = attributes; + const { blockClass } = attributes; return (
diff --git a/src/Blocks/custom/checkbox/components/checkbox-options.js b/src/Blocks/custom/checkbox/components/checkbox-options.js index 6d923140b..ac49d6813 100644 --- a/src/Blocks/custom/checkbox/components/checkbox-options.js +++ b/src/Blocks/custom/checkbox/components/checkbox-options.js @@ -1,5 +1,5 @@ import React from 'react'; -import { props } from '@eightshift/frontend-libs/scripts'; +import { props } from '@eightshift/frontend-libs-tailwind/scripts'; import { CheckboxOptions as CheckboxOptionsComponent } from '../../../components/checkbox/components/checkbox-options'; export const CheckboxOptions = ({ attributes, setAttributes }) => { diff --git a/src/Blocks/custom/checkboxes/components/checkboxes-editor.js b/src/Blocks/custom/checkboxes/components/checkboxes-editor.js index 57ee6ac6b..2fee2491a 100644 --- a/src/Blocks/custom/checkboxes/components/checkboxes-editor.js +++ b/src/Blocks/custom/checkboxes/components/checkboxes-editor.js @@ -1,31 +1,29 @@ import React, { useEffect, useState } from 'react'; import { select } from '@wordpress/data'; import { InnerBlocks } from '@wordpress/block-editor'; -import { props, BlockInserter, STORE_NAME } from '@eightshift/frontend-libs/scripts'; +import { props, BlockInserter } from '@eightshift/frontend-libs-tailwind/scripts'; import { CheckboxesEditor as CheckboxesEditorComponent } from '../../../components/checkboxes/components/checkboxes-editor'; import globalManifest from '../../../manifest.json'; +import manifest from '../manifest.json'; export const CheckboxesEditor = ({ attributes, setAttributes, clientId }) => { - const manifest = select(STORE_NAME).getBlock('checkboxes'); - const { template } = manifest; - const { blockClass } = attributes; - const [parentBlock, setParentBlock] = useState([]); useEffect(() => { const parentBlockIds = select('core/block-editor').getBlockParents(clientId); const parents = select('core/block-editor').getBlocksByClientId(parentBlockIds); - setParentBlock(parents.filter((parent) => globalManifest.allowedBlocksList.integrationsBuilder.includes(parent.name))); + setParentBlock( + parents.filter((parent) => globalManifest.allowedBlocksList.integrationsBuilder.includes(parent.name)), + ); }, [clientId]); return ( { @@ -7,7 +7,7 @@ export const CheckboxesOptions = ({ attributes, setAttributes, clientId }) => { ); diff --git a/src/Blocks/custom/corvus/components/corvus-editor.js b/src/Blocks/custom/corvus/components/corvus-editor.js index a881e6434..f1c66e0ec 100644 --- a/src/Blocks/custom/corvus/components/corvus-editor.js +++ b/src/Blocks/custom/corvus/components/corvus-editor.js @@ -1,27 +1,20 @@ import React from 'react'; -import { select } from '@wordpress/data'; import { InnerBlocks } from '@wordpress/block-editor'; -import { props, BlockInserter, STORE_NAME } from '@eightshift/frontend-libs/scripts'; +import { props, BlockInserter } from '@eightshift/frontend-libs-tailwind/scripts'; import { FormEditor, additionalBlocksNoIntegration } from '../../../components/form/components/form-editor'; export const CorvusEditor = ({ attributes, setAttributes, clientId }) => { - const manifest = select(STORE_NAME).getBlock('corvus'); - - const { - blockClass, - } = attributes; - return ( -
- } /> - })} - /> -
+ ), + })} + /> ); }; diff --git a/src/Blocks/custom/corvus/components/corvus-options.js b/src/Blocks/custom/corvus/components/corvus-options.js index f3336dc99..3926c44a2 100644 --- a/src/Blocks/custom/corvus/components/corvus-options.js +++ b/src/Blocks/custom/corvus/components/corvus-options.js @@ -1,22 +1,11 @@ import React from 'react'; -import { select } from '@wordpress/data'; import { IntegrationsInternalOptions } from '../../../components/integrations/components/integrations-internal-options'; -import { STORE_NAME } from '@eightshift/frontend-libs/scripts'; - -export const CorvusOptions = ({ - attributes, - setAttributes, - clientId, -}) => { - const manifest = select(STORE_NAME).getBlock('corvus'); - - const { - title, - } = manifest; +import manifest from '../manifest.json'; +export const CorvusOptions = ({ attributes, setAttributes, clientId }) => { return ( { diff --git a/src/Blocks/custom/country/components/country-options.js b/src/Blocks/custom/country/components/country-options.js index de8008158..13c03ad98 100644 --- a/src/Blocks/custom/country/components/country-options.js +++ b/src/Blocks/custom/country/components/country-options.js @@ -1,5 +1,5 @@ import React from 'react'; -import { props } from '@eightshift/frontend-libs/scripts'; +import { props } from '@eightshift/frontend-libs-tailwind/scripts'; import { CountryOptions as CountryOptionsComponent } from '../../../components/country/components/country-options'; export const CountryOptions = ({ attributes, setAttributes }) => { diff --git a/src/Blocks/custom/date/components/date-editor.js b/src/Blocks/custom/date/components/date-editor.js index 578b49a69..eff365d2a 100644 --- a/src/Blocks/custom/date/components/date-editor.js +++ b/src/Blocks/custom/date/components/date-editor.js @@ -1,5 +1,5 @@ import React from 'react'; -import { props } from '@eightshift/frontend-libs/scripts'; +import { props } from '@eightshift/frontend-libs-tailwind/scripts'; import { DateEditor as DateEditorComponent } from '../../../components/date/components/date-editor'; export const DateEditor = ({ attributes, setAttributes, clientId }) => { diff --git a/src/Blocks/custom/date/components/date-options.js b/src/Blocks/custom/date/components/date-options.js index d002627b9..9ae853569 100644 --- a/src/Blocks/custom/date/components/date-options.js +++ b/src/Blocks/custom/date/components/date-options.js @@ -1,5 +1,5 @@ import React from 'react'; -import { props } from '@eightshift/frontend-libs/scripts'; +import { props } from '@eightshift/frontend-libs-tailwind/scripts'; import { DateOptions as DateOptionsComponent } from '../../../components/date/components/date-options'; export const DateOptions = ({ attributes, setAttributes }) => { diff --git a/src/Blocks/custom/dynamic/components/dynamic-editor.js b/src/Blocks/custom/dynamic/components/dynamic-editor.js index b717f5369..1c0f57772 100644 --- a/src/Blocks/custom/dynamic/components/dynamic-editor.js +++ b/src/Blocks/custom/dynamic/components/dynamic-editor.js @@ -1,5 +1,5 @@ import React from 'react'; -import { props } from '@eightshift/frontend-libs/scripts'; +import { props } from '@eightshift/frontend-libs-tailwind/scripts'; import { DynamicEditor as DynamicEditorComponent } from '../../../components/dynamic/components/dynamic-editor'; export const DynamicEditor = ({ attributes, setAttributes, clientId }) => { diff --git a/src/Blocks/custom/dynamic/components/dynamic-options.js b/src/Blocks/custom/dynamic/components/dynamic-options.js index afca064fa..5664a88b8 100644 --- a/src/Blocks/custom/dynamic/components/dynamic-options.js +++ b/src/Blocks/custom/dynamic/components/dynamic-options.js @@ -1,5 +1,5 @@ import React from 'react'; -import { props } from '@eightshift/frontend-libs/scripts'; +import { props } from '@eightshift/frontend-libs-tailwind/scripts'; import { DynamicOptions as DynamicOptionsComponent } from '../../../components/dynamic/components/dynamic-options'; export const DynamicOptions = ({ attributes, setAttributes }) => { diff --git a/src/Blocks/custom/field/components/field-options.js b/src/Blocks/custom/field/components/field-options.js index d00221b9d..f8f7f8918 100644 --- a/src/Blocks/custom/field/components/field-options.js +++ b/src/Blocks/custom/field/components/field-options.js @@ -1,13 +1,13 @@ import React from 'react'; import { __ } from '@wordpress/i18n'; -import { PanelBody } from '@wordpress/components'; -import { props } from '@eightshift/frontend-libs/scripts'; +import { props } from '@eightshift/frontend-libs-tailwind/scripts'; import { FieldOptionsExternalBlocks, FieldOptionsLayout } from './../../../components/field/components/field-options'; +import { ContainerPanel } from '@eightshift/ui-components'; // This block is only used if you want to include custom external blocks to forms. export const FieldOptions = ({ attributes, setAttributes }) => { return ( - + { attributes={attributes} setAttributes={setAttributes} /> - + ); }; diff --git a/src/Blocks/custom/field/field-hooks.js b/src/Blocks/custom/field/field-hooks.js index 2fa3c9d4f..fc91db955 100644 --- a/src/Blocks/custom/field/field-hooks.js +++ b/src/Blocks/custom/field/field-hooks.js @@ -1,17 +1,16 @@ /* global esFormsLocalization */ import { addFilter } from '@wordpress/hooks'; -import { select } from '@wordpress/data'; import { createHigherOrderComponent } from '@wordpress/compose'; -import { STORE_NAME } from '@eightshift/frontend-libs/scripts/editor'; import { Field } from './field-block'; +import manifestField from './manifest.json'; +import manifestConditionalTags from '../../components/conditional-tags/manifest.json'; +import globalManifest from '../../manifest.json'; // Wrap none forms block with field block. const setNoneEightshiftFormsBlocksField = createHigherOrderComponent((BlockEdit) => { return (innerProps) => { - const { - name, - } = innerProps; + const { name } = innerProps; // Change only none forms blocks in forms post type. if (esFormsLocalization?.currentPostType.isForms && !name.includes(esFormsLocalization?.postTypes?.forms)) { @@ -27,17 +26,16 @@ const setNoneEightshiftFormsBlocksField = createHigherOrderComponent((BlockEdit) }; }, 'setNoneEightshiftFormsBlocksField'); - // Add none forms block attributes from field block. -function setNoneEightshiftBlocksFieldAttributes( settings, name ) { +function setNoneEightshiftBlocksFieldAttributes(settings, name) { // Change only none forms blocks in forms post type. if (esFormsLocalization?.currentPostType.isForms && !name.includes(esFormsLocalization?.postTypes?.forms)) { return { ...settings, attributes: { ...settings.attributes, - ...select(STORE_NAME).getComponent('field').attributes, - ...select(STORE_NAME).getComponent('conditional-tags').attributes, + ...manifestField.attributes, + ...manifestConditionalTags.attributes, }, }; } @@ -46,8 +44,8 @@ function setNoneEightshiftBlocksFieldAttributes( settings, name ) { } export const hooks = () => { - const { blockName } = select(STORE_NAME).getBlock('field'); - const namespace = select(STORE_NAME).getSettingsNamespace(); + const { blockName } = manifestField; + const { namespace } = globalManifest; addFilter('editor.BlockEdit', `${namespace}/${blockName}`, setNoneEightshiftFormsBlocksField); addFilter('blocks.registerBlockType', `${namespace}/${blockName}`, setNoneEightshiftBlocksFieldAttributes); diff --git a/src/Blocks/custom/file/components/file-editor.js b/src/Blocks/custom/file/components/file-editor.js index 4c73cedc0..2b5bfaec7 100644 --- a/src/Blocks/custom/file/components/file-editor.js +++ b/src/Blocks/custom/file/components/file-editor.js @@ -1,5 +1,5 @@ import React from 'react'; -import { props } from '@eightshift/frontend-libs/scripts'; +import { props } from '@eightshift/frontend-libs-tailwind/scripts'; import { FileEditor as FileEditorComponent } from '../../../components/file/components/file-editor'; export const FileEditor = ({ attributes, setAttributes, clientId }) => { @@ -7,7 +7,7 @@ export const FileEditor = ({ attributes, setAttributes, clientId }) => { ); diff --git a/src/Blocks/custom/file/components/file-options.js b/src/Blocks/custom/file/components/file-options.js index 8fca58e2b..07a331463 100644 --- a/src/Blocks/custom/file/components/file-options.js +++ b/src/Blocks/custom/file/components/file-options.js @@ -1,5 +1,5 @@ import React from 'react'; -import { props } from '@eightshift/frontend-libs/scripts'; +import { props } from '@eightshift/frontend-libs-tailwind/scripts'; import { FileOptions as FileOptionsComponent } from '../../../components/file/components/file-options'; export const FileOptions = ({ attributes, setAttributes }) => { diff --git a/src/Blocks/custom/form-selector/components/form-selector-editor.js b/src/Blocks/custom/form-selector/components/form-selector-editor.js index 4d9795b1f..e1671fe09 100644 --- a/src/Blocks/custom/form-selector/components/form-selector-editor.js +++ b/src/Blocks/custom/form-selector/components/form-selector-editor.js @@ -1,75 +1,65 @@ import React from 'react'; -import { camelCase } from 'lodash'; import { __ } from '@wordpress/i18n'; -import { select } from '@wordpress/data'; -import { Button, Placeholder } from '@wordpress/components'; +import { Placeholder } from '@wordpress/components'; import { InnerBlocks } from '@wordpress/block-editor'; -import { STORE_NAME, icons } from '@eightshift/frontend-libs/scripts'; +import { icons } from '@eightshift/ui-components/icons'; +import { Button } from '@eightshift/ui-components'; import { createBlockFromTemplate, DashboardButton } from './../../../components/utils'; +import { camelCase } from '@eightshift/ui-components/utilities'; import { getUtilsIcons } from '../../../components/form/assets/state-init'; import globalSettings from './../../../manifest.json'; -export const FormSelectorEditor = ({ - clientId, - hasInnerBlocks, -}) => { - const manifest = select(STORE_NAME).getBlock('form-selector'); - - const { - forms, - } = manifest; - +export const FormSelectorEditor = ({ clientId, hasInnerBlocks }) => { return ( <> - {!hasInnerBlocks && ( + {!hasInnerBlocks && ( {__('Eightshift Forms', 'eightshift-forms')}} - className='es-max-w-108 es-rounded-3! es-mx-auto! es-font-weight-400 es-color-cool-gray-500! es-nested-color-current!' + label={{__('Eightshift Forms', 'eightshift-forms')}} > -

{__('What type is your new form?', 'eightshift-forms')}

- {forms.length > 0 && -
+

{__('What type is your new form?', 'eightshift-forms')}

+ {forms.length > 0 && ( +
{forms.map((form, index) => { - const { label, slug, icon } = form; + const { label, slug, icon } = form; - let iconComponent = icon; + let iconComponent = icon; - if (!icon) { - iconComponent = getUtilsIcons(camelCase(slug)); - } + if (!icon) { + iconComponent = getUtilsIcons(camelCase(slug)); + } - return ( - - ); - })} + return ( + + ); + })}
- } + )} - {forms.length < 1 && + {forms.length < 1 && ( <> - {__('It appears that you don\'t have any active integrations set up for your project. Please go to the Eightshift Forms dashboard and configure your first integration.', 'eightshift-forms')} + {__( + "It appears that you don't have any active integrations set up for your project. Please go to the Eightshift Forms dashboard and configure your first integration.", + 'eightshift-forms', + )} - } + )} )} ); diff --git a/src/Blocks/custom/form-selector/components/form-selector-options.js b/src/Blocks/custom/form-selector/components/form-selector-options.js index 91c47de79..2e8f4d457 100644 --- a/src/Blocks/custom/form-selector/components/form-selector-options.js +++ b/src/Blocks/custom/form-selector/components/form-selector-options.js @@ -1,15 +1,15 @@ import React from 'react'; import { __ } from '@wordpress/i18n'; -import { PanelBody } from '@wordpress/components'; import { SettingsButton, GlobalSettingsButton } from '../../../components/utils'; +import { ContainerPanel } from '@eightshift/ui-components'; export const FormSelectorOptions = () => { return ( - +

-
+ ); }; diff --git a/src/Blocks/custom/form-selector/form-selector-block.js b/src/Blocks/custom/form-selector/form-selector-block.js index ae10671af..d7133e1dc 100644 --- a/src/Blocks/custom/form-selector/form-selector-block.js +++ b/src/Blocks/custom/form-selector/form-selector-block.js @@ -5,9 +5,7 @@ import { FormSelectorEditor } from './components/form-selector-editor'; import { FormSelectorOptions } from './components/form-selector-options'; export const FormSelector = (props) => { - const { - clientId - } = props; + const { clientId } = props; const postId = select('core/editor').getCurrentPostId(); diff --git a/src/Blocks/custom/forms/components/forms-editor.js b/src/Blocks/custom/forms/components/forms-editor.js index 9b77da1e0..2df4db5c1 100644 --- a/src/Blocks/custom/forms/components/forms-editor.js +++ b/src/Blocks/custom/forms/components/forms-editor.js @@ -1,29 +1,14 @@ import React from 'react'; -import { select } from '@wordpress/data'; -import { - checkAttr, - props, - icons, - AsyncSelect, - getAttrKey, - STORE_NAME, -} from '@eightshift/frontend-libs/scripts'; +import { checkAttr, getAttrKey } from '@eightshift/frontend-libs-tailwind/scripts'; +import { AsyncSelect } from '@eightshift/ui-components'; +import { icons } from '@eightshift/ui-components/icons'; import { __, sprintf } from '@wordpress/i18n'; import { Placeholder } from '@wordpress/components'; -import { ConditionalTagsEditor } from '../../../components/conditional-tags/components/conditional-tags-editor'; import { FormEditButton, outputFormSelectItemWithIcon } from '../../../components/utils'; +import manifest from '../manifest.json'; -export const FormsEditor = ({ - attributes, - setAttributes, - preview, - formSelectOptions, -}) => { - const manifest = select(STORE_NAME).getBlock('forms'); - - const { - isGeoPreview, - } = preview; +export const FormsEditor = ({ attributes, setAttributes, preview, formSelectOptions }) => { + const { isGeoPreview } = preview; const formsFormGeolocationAlternatives = checkAttr('formsFormGeolocationAlternatives', attributes, manifest); const formsFormPostIdRaw = checkAttr('formsFormPostIdRaw', attributes, manifest); @@ -33,13 +18,14 @@ export const FormsEditor = ({ return ( {__('Eightshift Forms', 'eightshift-forms')}} - className='es-max-w-80 es-rounded-3! es-mx-auto! es-font-weight-400 es-color-cool-gray-500! es-nested-color-current!' + label={{__('Eightshift Forms', 'eightshift-forms')}} > To get started, select a form:} - help={__('If you can\'t find a form, start typing its name while the dropdown is open.', 'eightshift-forms')} - value={outputFormSelectItemWithIcon(Object.keys(formsFormPostIdRaw).length ? formsFormPostIdRaw : {id: formsFormPostId})} + label={{__('To get started, select a form:', 'eightshift-forms')}} + help={__("If you can't find a form, start typing its name while the dropdown is open.", 'eightshift-forms')} + value={outputFormSelectItemWithIcon( + Object.keys(formsFormPostIdRaw).length ? formsFormPostIdRaw : { id: formsFormPostId }, + )} loadOptions={formSelectOptions} onChange={(value) => { setAttributes({ @@ -52,7 +38,6 @@ export const FormsEditor = ({ [getAttrKey('formsFormPostId', attributes, manifest)]: `${value?.value}`, }); }} - noBottomSpacing /> ); @@ -60,42 +45,37 @@ export const FormsEditor = ({ return ( <> - {isGeoPreview && -
- {__('Original form', 'eightshift-forms')} -
- } + {isGeoPreview &&
{__('Original form', 'eightshift-forms')}
} {__('Eightshift Forms', 'eightshift-forms')}} - className='es-rounded-3! es-mx-auto! es-font-weight-400 es-color-cool-gray-500! es-nested-color-current!' + label={{__('Eightshift Forms', 'eightshift-forms')}} isColumnLayout={true} > - {sprintf(__('Form "%s" with type "%s" will be displayed here.', 'eightshift-forms'), formsFormPostIdRaw?.label, formsFormPostIdRaw?.metadata)} + {sprintf( + __('Form "%s" with type "%s" will be displayed here.', 'eightshift-forms'), + formsFormPostIdRaw?.label, + formsFormPostIdRaw?.metadata, + )}
- - - {isGeoPreview && + {isGeoPreview && ( <> -
- {__('Geolocation alternatives', 'eightshift-forms')} -
+
{__('Geolocation alternatives', 'eightshift-forms')}
{formsFormGeolocationAlternatives.map((item, index) => { return ( {__('Eightshift Forms', 'eightshift-forms')}} - className='es-rounded-3! es-mt-5! es-mx-auto! es-font-weight-400 es-color-cool-gray-500! es-nested-color-current!' + label={{__('Eightshift Forms', 'eightshift-forms')}} > - {sprintf(__('Form "%s" with type "%s" will be displayed here.', 'eightshift-forms'), item?.form?.label, item?.form?.metadata)} + {sprintf( + __('Form "%s" with type "%s" will be displayed here.', 'eightshift-forms'), + item?.form?.label, + item?.form?.metadata, + )}
{sprintf(__('Geolocation used: "%s"', 'eightshift-forms'), item.geoLocation.join(', '))}
@@ -104,7 +84,7 @@ export const FormsEditor = ({ ); })} - } + )} ); }; diff --git a/src/Blocks/custom/forms/components/forms-options.js b/src/Blocks/custom/forms/components/forms-options.js index ba7b39143..1461a809b 100644 --- a/src/Blocks/custom/forms/components/forms-options.js +++ b/src/Blocks/custom/forms/components/forms-options.js @@ -2,28 +2,25 @@ import React, { useEffect } from 'react'; import { useState } from '@wordpress/element'; -import { isArray } from 'lodash'; import { __, sprintf } from '@wordpress/i18n'; -import { select } from '@wordpress/data'; import { MediaPlaceholder } from '@wordpress/block-editor'; -import { PanelBody, TextControl, Button, Modal, ExternalLink } from '@wordpress/components'; +import { Modal, ExternalLink } from '@wordpress/components'; import apiFetch from '@wordpress/api-fetch'; +import { getAttrKey, checkAttr, props } from '@eightshift/frontend-libs-tailwind/scripts'; import { - IconLabel, - icons, - getAttrKey, - checkAttr, - props, - AsyncSelect, + BaseControl, MultiSelect, - IconToggle, - Control, - Section, - STORE_NAME, + AsyncSelect, + RichLabel, + Toggle, Repeater, RepeaterItem, - Toggle, -} from '@eightshift/frontend-libs/scripts'; + Button, + ContainerPanel, + InputField, + ContainerGroup, +} from '@eightshift/ui-components'; +import { icons } from '@eightshift/ui-components/icons'; import { ConditionalTagsFormsOptions } from '../../../components/conditional-tags/components/conditional-tags-forms-options'; import { FormEditButton, @@ -32,19 +29,10 @@ import { outputFormSelectItemWithIcon, } from '../../../components/utils'; import { getRestUrl } from '../../../components/form/assets/state-init'; +import manifest from '../manifest.json'; -export const FormsOptions = ({ - attributes, - setAttributes, - preview, - formSelectOptions -}) => { - const manifest = select(STORE_NAME).getBlock('forms'); - - const { - isGeoPreview, - setIsGeoPreview, - } = preview; +export const FormsOptions = ({ attributes, setAttributes, preview, formSelectOptions }) => { + const { isGeoPreview, setIsGeoPreview } = preview; const formsFormPostId = checkAttr('formsFormPostId', attributes, manifest); const formsFormPostIdRaw = checkAttr('formsFormPostIdRaw', attributes, manifest); @@ -77,7 +65,7 @@ export const FormsOptions = ({ if (typeof esFormsLocalization !== 'undefined') { // Custom block forms style options. - if (isArray(esFormsLocalization?.formsBlockStyleOptions)) { + if (typeof esFormsLocalization !== 'undefined') { formsStyleOptions = esFormsLocalization.formsBlockStyleOptions; } @@ -96,10 +84,12 @@ export const FormsOptions = ({ return ( <> - + { setAttributes({ @@ -114,27 +104,36 @@ export const FormsOptions = ({ }} /> - {formsFormPostId && - -
+ {formsFormPostId && ( + +
- - } - +
+ )} -
- } + + + } help={__('Additional data type selectors', 'eightshift-forms')} value={formsFormDataTypeSelector} - onChange={(value) => setAttributes({ [getAttrKey('formsFormDataTypeSelector', attributes, manifest)]: value })} + onChange={(value) => + setAttributes({ [getAttrKey('formsFormDataTypeSelector', attributes, manifest)]: value }) + } /> -
+ - {formsStyleOptions?.length > 0 && + {formsStyleOptions?.length > 0 && ( setAttributes({ [getAttrKey('formsStyle', attributes, manifest)]: value })} simpleValue /> - } - + )} + - + -
- + { @@ -172,7 +174,7 @@ export const FormsOptions = ({ setAttributes({ [getAttrKey('formsVariation', attributes, manifest)]: newArray }); }} /> - { @@ -187,12 +189,11 @@ export const FormsOptions = ({ ))} - {formsUseCustomResultOutputFeature && + {formsUseCustomResultOutputFeature && ( <> @@ -200,27 +201,30 @@ export const FormsOptions = ({ {isResultOutputModalOpen && ( } + title={ + + } onRequestClose={() => setIsResultOutputModalOpen(false)} > - { - const newArray = {...formsVariationData}; + const newArray = { ...formsVariationData }; newArray.title = value; setAttributes({ [getAttrKey('formsVariationData', attributes, manifest)]: newArray }); }} /> - { - const newArray = {...formsVariationData}; + const newArray = { ...formsVariationData }; newArray.subtitle = value; setAttributes({ [getAttrKey('formsVariationData', attributes, manifest)]: newArray }); @@ -234,7 +238,6 @@ export const FormsOptions = ({ items={formsVariationDataFiles} attributeName={getAttrKey('formsVariationDataFiles', attributes, manifest)} setAttributes={setAttributes} - additionalClasses='es-border-t-cool-gray-300 es-mt-4 es-pt-4' > {formsVariationDataFiles.map((item, index) => ( -
- + { @@ -253,7 +256,7 @@ export const FormsOptions = ({ setAttributes({ [getAttrKey('formsVariationDataFiles', attributes, manifest)]: newArray }); }} /> - { @@ -268,7 +271,6 @@ export const FormsOptions = ({ { const newArray = [...formsVariationDataFiles]; newArray[index].asFile = value; @@ -283,8 +285,8 @@ export const FormsOptions = ({ }} /> - {!formsVariationDataFiles[index].asFile && - { @@ -294,7 +296,7 @@ export const FormsOptions = ({ setAttributes({ [getAttrKey('formsVariationDataFiles', attributes, manifest)]: newArray }); }} /> - } + )} {formsVariationDataFiles[index].asFile && ( <> @@ -309,49 +311,52 @@ export const FormsOptions = ({ url: value.url, }; - setAttributes({ [getAttrKey('formsVariationDataFiles', attributes, manifest)]: newArray }); + setAttributes({ + [getAttrKey('formsVariationDataFiles', attributes, manifest)]: newArray, + }); }} /> )} {formsVariationDataFiles[index]?.file && ( -
-
+
+
{icons.file} {formsVariationDataFiles[index]?.file?.title}
)} )} -
- + { const newArray = [...formsVariationDataFiles]; newArray[index].fieldName = value; - + setAttributes({ [getAttrKey('formsVariationDataFiles', attributes, manifest)]: newArray }); }} /> - { const newArray = [...formsVariationDataFiles]; newArray[index].fieldValue = value; - + setAttributes({ [getAttrKey('formsVariationDataFiles', attributes, manifest)]: newArray }); }} /> @@ -362,85 +367,107 @@ export const FormsOptions = ({ )} - } - + )} + - {formsUseGeolocation && - + {formsUseGeolocation && ( + 0 ? [] : formsFormGeolocation} options={geoFormFields} onChange={(value) => setAttributes({ [getAttrKey('formsFormGeolocation', attributes, manifest)]: value })} cacheOptions={false} simpleValue disabled={formsFormGeolocationAlternatives?.length > 0} - placeholder={formsFormGeolocationAlternatives?.length > 0 && __('Overriden by advanced rules', 'eightshift-forms')} + placeholder={ + formsFormGeolocationAlternatives?.length > 0 && __('Overriden by advanced rules', 'eightshift-forms') + } /> - 0 && sprintf(__('%d added', 'eightshift-forms'), formsFormGeolocationAlternatives.length)} - noBottomSpacing={formsFormGeolocationAlternatives?.length < 1} - reducedBottomSpacing={formsFormGeolocationAlternatives?.length > 0} - inlineLabel + subtitle={ + formsFormGeolocationAlternatives?.length > 0 && + sprintf(__('%d added', 'eightshift-forms'), formsFormGeolocationAlternatives.length) + } > - + - {formsFormGeolocationAlternatives?.length > 0 && - 0 && ( + setIsGeoPreview(value)} - noBottomSpacing /> - } + )} {isGeoModalOpen && ( } + title={ + + } onRequestClose={() => setIsGeoModalOpen(false)} > -

{__('Geolocation rules allow you to display alternate forms based on the user\'s location.', 'eightshift-forms')}

-

{__('If no rules are added and the "Show form only if in countries" field is populated, the form will only be shown in these countries. Otherwise, the form is shown everywhere.', 'eightshift-forms')}

- - {geolocationApi && -

{__('You can find complete list of countries and regions on this', 'eightshift-forms')} {__('link', 'eightshift-forms')}.

- } +

+ {__( + "Geolocation rules allow you to display alternate forms based on the user's location.", + 'eightshift-forms', + )} +

+

+ {__( + 'If no rules are added and the "Show form only if in countries" field is populated, the form will only be shown in these countries. Otherwise, the form is shown everywhere.', + 'eightshift-forms', + )} +

+ + {geolocationApi && ( +

+ {__('You can find complete list of countries and regions on this', 'eightshift-forms')}{' '} + {__('link', 'eightshift-forms')}. +

+ )}
- {formsFormGeolocationAlternatives?.length > 0 && -
- {__('Form to display', 'eightshift-forms')} - {__('Countries to show the form in', 'eightshift-forms')} + {formsFormGeolocationAlternatives?.length > 0 && ( +
+ {__('Form to display', 'eightshift-forms')} + {__('Countries to show the form in', 'eightshift-forms')}
- } + )} {formsFormGeolocationAlternatives?.map((_, index) => { return ( -
+
{ const newData = [...formsFormGeolocationAlternatives]; @@ -451,10 +478,10 @@ export const FormsOptions = ({ metadata: value?.metadata?.metadata, }; newData[index].formId = value.value.toString(); - setAttributes({ [getAttrKey('formsFormGeolocationAlternatives', attributes, manifest)]: newData }); + setAttributes({ + [getAttrKey('formsFormGeolocationAlternatives', attributes, manifest)]: newData, + }); }} - additionalSelectClasses='es-w-64' - noBottomSpacing /> { const newData = [...formsFormGeolocationAlternatives]; newData[index].geoLocation = value; - setAttributes({ [getAttrKey('formsFormGeolocationAlternatives', attributes, manifest)]: newData }); + setAttributes({ + [getAttrKey('formsFormGeolocationAlternatives', attributes, manifest)]: newData, + }); }} - additionalSelectClasses='es-w-80' - noBottomSpacing simpleValue /> @@ -474,10 +501,13 @@ export const FormsOptions = ({ icon={icons.trash} onClick={() => { formsFormGeolocationAlternatives.splice(index, 1); - setAttributes({ [getAttrKey('formsFormGeolocationAlternatives', attributes, manifest)]: [...formsFormGeolocationAlternatives] }); + setAttributes({ + [getAttrKey('formsFormGeolocationAlternatives', attributes, manifest)]: [ + ...formsFormGeolocationAlternatives, + ], + }); }} label={__('Remove', 'eightshift-forms')} - className='es-ml-auto es-rounded-1!' />
); @@ -485,25 +515,30 @@ export const FormsOptions = ({ -
+
)} - - } + + )} { const [isGeoPreview, setIsGeoPreview] = useState(false); - const formSelectOptions = getFetchWpApi( - esFormsLocalization?.postTypes?.forms, - { - noCache: true, - processLabel: ({ title: { rendered: label }, integration_type: metadata, id }) => { - return outputFormSelectItemWithIcon({ - label, - id, - metadata, - })?.label; - }, - fields: 'id,title,integration_type', - processMetadata: ({ title: { rendered: label }, integration_type: metadata, id }) => ({ - id, - value: id, + const formSelectOptions = fetchFromWpRest(esFormsLocalization?.postTypes?.forms, { + noCache: true, + processLabel: ({ title: { rendered: label }, integration_type: metadata, id }) => { + return outputFormSelectItemWithIcon({ label, + id, metadata, - }), - } - ); + })?.label; + }, + fields: 'id,title,integration_type', + processMetadata: ({ title: { rendered: label }, integration_type: metadata, id }) => ({ + id, + value: id, + label, + metadata, + }), + }); return ( <> @@ -39,7 +36,7 @@ export const Forms = (props) => { {...props} preview={{ isGeoPreview: isGeoPreview, - setIsGeoPreview: setIsGeoPreview + setIsGeoPreview: setIsGeoPreview, }} formSelectOptions={formSelectOptions} /> @@ -48,7 +45,7 @@ export const Forms = (props) => { {...props} preview={{ isGeoPreview: isGeoPreview, - setIsGeoPreview: setIsGeoPreview + setIsGeoPreview: setIsGeoPreview, }} formSelectOptions={formSelectOptions} /> diff --git a/src/Blocks/custom/forms/forms-hooks.js b/src/Blocks/custom/forms/forms-hooks.js index 046bdf08b..2c50f3203 100644 --- a/src/Blocks/custom/forms/forms-hooks.js +++ b/src/Blocks/custom/forms/forms-hooks.js @@ -3,13 +3,11 @@ import { createHigherOrderComponent } from '@wordpress/compose'; import { addFilter } from '@wordpress/hooks'; import globalManifest from '../../manifest.json'; import manifest from './manifest.json'; -import { classnames } from '@eightshift/frontend-libs/scripts'; +import { clsx } from '@eightshift/ui-components/utilities'; const { namespace, - globalVariables: { - customBlocksName, - }, + globalVariables: { customBlocksName }, } = globalManifest; const { blockName } = manifest; @@ -21,18 +19,13 @@ const parentComponentBlock = createHigherOrderComponent((BlockListBlock) => { const { name, clientId, - attributes: { - blockClass, - }, + attributes: { blockClass }, } = innerProps; - let updatedProps = {...innerProps}; + let updatedProps = { ...innerProps }; if (name === fullBlockName) { - const componentClass = classnames( - blockClass, - customBlocksName, - ); + const componentClass = clsx(blockClass, customBlocksName); updatedProps = { ...innerProps, @@ -43,7 +36,10 @@ const parentComponentBlock = createHigherOrderComponent((BlockListBlock) => { const dataProps = { 'data-id': clientId }; return ( - + ); }; }, 'parentComponentBlock'); diff --git a/src/Blocks/custom/forms/forms.php b/src/Blocks/custom/forms/forms.php index b77b43e1d..9c1fcb310 100644 --- a/src/Blocks/custom/forms/forms.php +++ b/src/Blocks/custom/forms/forms.php @@ -88,7 +88,7 @@ static function ($item) { $twClassesData = FormsHelper::getTwSelectorsData($attributes); $twClasses = FormsHelper::getTwSelectors($twClassesData, ['forms']); -$formsClass = Helpers::classnames([ +$formsClass = Helpers::clsx([ FormsHelper::getTwBase($twClasses, 'forms', $blockClass), UtilsHelper::getStateSelector('forms'), Helpers::selector($hasGeolocation, UtilsHelper::getStateSelector('isGeoLoading')), diff --git a/src/Blocks/custom/goodbits/components/goodbits-editor.js b/src/Blocks/custom/goodbits/components/goodbits-editor.js index 44b9f9e78..3c4b73524 100644 --- a/src/Blocks/custom/goodbits/components/goodbits-editor.js +++ b/src/Blocks/custom/goodbits/components/goodbits-editor.js @@ -1,26 +1,14 @@ import React from 'react'; -import { select } from '@wordpress/data'; -import { STORE_NAME, checkAttr } from '@eightshift/frontend-libs/scripts'; +import { checkAttr } from '@eightshift/frontend-libs-tailwind/scripts'; import { IntegrationsEditor } from './../../../components/integrations/components/integrations-editor'; +import manifest from '../manifest.json'; -export const GoodbitsEditor = ({ - attributes, - setAttributes, - itemIdKey, -}) => { - const manifest = select(STORE_NAME).getBlock('goodbits'); - - const { - blockClass, - } = attributes; - +export const GoodbitsEditor = ({ attributes, setAttributes, itemIdKey }) => { return ( -
- -
+ ); }; diff --git a/src/Blocks/custom/goodbits/components/goodbits-options.js b/src/Blocks/custom/goodbits/components/goodbits-options.js index 42a3b55d0..853b38af1 100644 --- a/src/Blocks/custom/goodbits/components/goodbits-options.js +++ b/src/Blocks/custom/goodbits/components/goodbits-options.js @@ -1,20 +1,10 @@ import React from 'react'; -import { select } from '@wordpress/data'; -import { STORE_NAME, checkAttr } from '@eightshift/frontend-libs/scripts'; +import { checkAttr } from '@eightshift/frontend-libs-tailwind/scripts'; import { IntegrationsOptions } from './../../../components/integrations/components/integrations-options'; +import manifest from '../manifest.json'; -export const GoodbitsOptions = ({ - attributes, - setAttributes, - clientId, - itemIdKey, -}) => { - const manifest = select(STORE_NAME).getBlock('goodbits'); - - const { - title, - blockName, - } = manifest; +export const GoodbitsOptions = ({ attributes, setAttributes, clientId, itemIdKey }) => { + const { title, blockName } = manifest; return ( { - const manifest = select(STORE_NAME).getBlock('greenhouse'); - - const { - blockClass, - } = attributes; - +export const GreenhouseEditor = ({ attributes, setAttributes, itemIdKey }) => { return ( -
- -
+ ); }; diff --git a/src/Blocks/custom/greenhouse/components/greenhouse-options.js b/src/Blocks/custom/greenhouse/components/greenhouse-options.js index bd92b9a46..87974cf51 100644 --- a/src/Blocks/custom/greenhouse/components/greenhouse-options.js +++ b/src/Blocks/custom/greenhouse/components/greenhouse-options.js @@ -1,20 +1,10 @@ import React from 'react'; -import { select } from '@wordpress/data'; -import { STORE_NAME, checkAttr } from '@eightshift/frontend-libs/scripts'; +import { checkAttr } from '@eightshift/frontend-libs-tailwind/scripts'; import { IntegrationsOptions } from './../../../components/integrations/components/integrations-options'; +import manifest from '../manifest.json'; -export const GreenhouseOptions = ({ - attributes, - setAttributes, - clientId, - itemIdKey, -}) => { - const manifest = select(STORE_NAME).getBlock('greenhouse'); - - const { - title, - blockName, - } = manifest; +export const GreenhouseOptions = ({ attributes, setAttributes, clientId, itemIdKey }) => { + const { title, blockName } = manifest; return ( { - const manifest = select(STORE_NAME).getBlock('hubspot'); - - const { - blockClass, - } = attributes; - +export const HubspotEditor = ({ attributes, setAttributes, itemIdKey }) => { return ( -
- -
+ ); }; diff --git a/src/Blocks/custom/hubspot/components/hubspot-options.js b/src/Blocks/custom/hubspot/components/hubspot-options.js index 390e9e2ae..88a9a4142 100644 --- a/src/Blocks/custom/hubspot/components/hubspot-options.js +++ b/src/Blocks/custom/hubspot/components/hubspot-options.js @@ -1,20 +1,10 @@ import React from 'react'; -import { select } from '@wordpress/data'; -import { STORE_NAME, checkAttr } from '@eightshift/frontend-libs/scripts'; +import { checkAttr } from '@eightshift/frontend-libs-tailwind/scripts'; import { IntegrationsOptions } from './../../../components/integrations/components/integrations-options'; +import manifest from '../manifest.json'; -export const HubspotOptions = ({ - attributes, - setAttributes, - clientId, - itemIdKey, -}) => { - const manifest = select(STORE_NAME).getBlock('hubspot'); - - const { - title, - blockName, - } = manifest; +export const HubspotOptions = ({ attributes, setAttributes, clientId, itemIdKey }) => { + const { title, blockName } = manifest; return ( { diff --git a/src/Blocks/custom/input/components/input-options.js b/src/Blocks/custom/input/components/input-options.js index 9fd06d50d..25bcdbb65 100644 --- a/src/Blocks/custom/input/components/input-options.js +++ b/src/Blocks/custom/input/components/input-options.js @@ -1,5 +1,5 @@ import React from 'react'; -import { props } from '@eightshift/frontend-libs/scripts'; +import { props } from '@eightshift/frontend-libs-tailwind/scripts'; import { InputOptions as InputOptionsComponent } from '../../../components/input/components/input-options'; export const InputOptions = ({ attributes, setAttributes }) => { diff --git a/src/Blocks/custom/jira/components/jira-editor.js b/src/Blocks/custom/jira/components/jira-editor.js index 5c69eb192..6c25797b6 100644 --- a/src/Blocks/custom/jira/components/jira-editor.js +++ b/src/Blocks/custom/jira/components/jira-editor.js @@ -1,27 +1,20 @@ import React from 'react'; -import { select } from '@wordpress/data'; import { InnerBlocks } from '@wordpress/block-editor'; -import { props, BlockInserter, STORE_NAME } from '@eightshift/frontend-libs/scripts'; +import { props, BlockInserter } from '@eightshift/frontend-libs-tailwind/scripts'; import { FormEditor, additionalBlocksNoIntegration } from '../../../components/form/components/form-editor'; export const JiraEditor = ({ attributes, setAttributes, clientId }) => { - const manifest = select(STORE_NAME).getBlock('jira'); - - const { - blockClass, - } = attributes; - return ( -
- } /> - })} - /> -
+ ), + })} + /> ); }; diff --git a/src/Blocks/custom/jira/components/jira-options.js b/src/Blocks/custom/jira/components/jira-options.js index cbaa1ff5c..9aa75604b 100644 --- a/src/Blocks/custom/jira/components/jira-options.js +++ b/src/Blocks/custom/jira/components/jira-options.js @@ -1,18 +1,9 @@ import React from 'react'; -import { select } from '@wordpress/data'; import { IntegrationsInternalOptions } from '../../../components/integrations/components/integrations-internal-options'; -import { STORE_NAME } from '@eightshift/frontend-libs/scripts'; +import manifest from '../manifest.json'; -export const JiraOptions = ({ - attributes, - setAttributes, - clientId, -}) => { - const manifest = select(STORE_NAME).getBlock('jira'); - - const { - title, - } = manifest; +export const JiraOptions = ({ attributes, setAttributes, clientId }) => { + const { title } = manifest; return ( { - const manifest = select(STORE_NAME).getBlock('mailchimp'); - - const { - blockClass, - } = attributes; - +export const MailchimpEditor = ({ attributes, setAttributes, itemIdKey }) => { return ( -
- -
+ ); }; diff --git a/src/Blocks/custom/mailchimp/components/mailchimp-options.js b/src/Blocks/custom/mailchimp/components/mailchimp-options.js index 882d34ed8..f365d163d 100644 --- a/src/Blocks/custom/mailchimp/components/mailchimp-options.js +++ b/src/Blocks/custom/mailchimp/components/mailchimp-options.js @@ -1,20 +1,10 @@ import React from 'react'; -import { select } from '@wordpress/data'; -import { STORE_NAME, checkAttr } from '@eightshift/frontend-libs/scripts'; +import { checkAttr } from '@eightshift/frontend-libs-tailwind/scripts'; import { IntegrationsOptions } from './../../../components/integrations/components/integrations-options'; +import manifest from '../manifest.json'; -export const MailchimpOptions = ({ - attributes, - setAttributes, - clientId, - itemIdKey, -}) => { - const manifest = select(STORE_NAME).getBlock('mailchimp'); - - const { - title, - blockName, - } = manifest; +export const MailchimpOptions = ({ attributes, setAttributes, clientId, itemIdKey }) => { + const { title, blockName } = manifest; return ( { - const { - blockClass, - } = attributes; + const { blockClass } = attributes; return (
} /> + ), })} />
diff --git a/src/Blocks/custom/mailer/components/mailer-options.js b/src/Blocks/custom/mailer/components/mailer-options.js index 291cce685..a7531fa77 100644 --- a/src/Blocks/custom/mailer/components/mailer-options.js +++ b/src/Blocks/custom/mailer/components/mailer-options.js @@ -1,18 +1,9 @@ import React from 'react'; -import { select } from '@wordpress/data'; import { IntegrationsInternalOptions } from '../../../components/integrations/components/integrations-internal-options'; -import { STORE_NAME } from '@eightshift/frontend-libs/scripts'; +import manifest from '../manifest.json'; -export const MailerOptions = ({ - attributes, - setAttributes, - clientId, -}) => { - const manifest = select(STORE_NAME).getBlock('mailer'); - - const { - title, - } = manifest; +export const MailerOptions = ({ attributes, setAttributes, clientId }) => { + const { title } = manifest; return ( { - const manifest = select(STORE_NAME).getBlock('mailerlite'); - - const { - blockClass, - } = attributes; +export const MailerliteEditor = ({ attributes, setAttributes, itemIdKey }) => { + const { blockClass } = attributes; return (
diff --git a/src/Blocks/custom/mailerlite/components/mailerlite-options.js b/src/Blocks/custom/mailerlite/components/mailerlite-options.js index 6d78db339..987bd39ce 100644 --- a/src/Blocks/custom/mailerlite/components/mailerlite-options.js +++ b/src/Blocks/custom/mailerlite/components/mailerlite-options.js @@ -1,20 +1,10 @@ import React from 'react'; -import { select } from '@wordpress/data'; -import { STORE_NAME, checkAttr } from '@eightshift/frontend-libs/scripts'; +import { checkAttr } from '@eightshift/frontend-libs-tailwind/scripts'; import { IntegrationsOptions } from './../../../components/integrations/components/integrations-options'; +import manifest from '../manifest.json'; -export const MailerliteOptions = ({ - attributes, - setAttributes, - clientId, - itemIdKey, -}) => { - const manifest = select(STORE_NAME).getBlock('mailerlite'); - - const { - title, - blockName, - } = manifest; +export const MailerliteOptions = ({ attributes, setAttributes, clientId, itemIdKey }) => { + const { title, blockName } = manifest; return ( { - const manifest = select(STORE_NAME).getBlock('moments'); - - const { - blockClass, - } = attributes; +export const MomentsEditor = ({ attributes, setAttributes, itemIdKey }) => { + const { blockClass } = attributes; return (
diff --git a/src/Blocks/custom/moments/components/moments-options.js b/src/Blocks/custom/moments/components/moments-options.js index 300bc7057..f18f05309 100644 --- a/src/Blocks/custom/moments/components/moments-options.js +++ b/src/Blocks/custom/moments/components/moments-options.js @@ -1,20 +1,10 @@ import React from 'react'; -import { select } from '@wordpress/data'; -import { STORE_NAME, checkAttr } from '@eightshift/frontend-libs/scripts'; +import { checkAttr } from '@eightshift/frontend-libs-tailwind/scripts'; import { IntegrationsOptions } from './../../../components/integrations/components/integrations-options'; +import manifest from '../manifest.json'; -export const MomentsOptions = ({ - attributes, - setAttributes, - clientId, - itemIdKey, -}) => { - const manifest = select(STORE_NAME).getBlock('moments'); - - const { - title, - blockName, - } = manifest; +export const MomentsOptions = ({ attributes, setAttributes, clientId, itemIdKey }) => { + const { title, blockName } = manifest; return ( { - const manifest = select(STORE_NAME).getBlock('nationbuilder'); - - const { - blockClass, - } = attributes; + const { blockClass } = attributes; return (
} - /> + formContent: ( + } + /> + ), })} />
diff --git a/src/Blocks/custom/nationbuilder/components/nationbuilder-options.js b/src/Blocks/custom/nationbuilder/components/nationbuilder-options.js index d2e39e094..537d2944e 100644 --- a/src/Blocks/custom/nationbuilder/components/nationbuilder-options.js +++ b/src/Blocks/custom/nationbuilder/components/nationbuilder-options.js @@ -1,18 +1,9 @@ import React from 'react'; -import { select } from '@wordpress/data'; import { IntegrationsInternalOptions } from '../../../components/integrations/components/integrations-internal-options'; -import { STORE_NAME } from '@eightshift/frontend-libs/scripts'; +import manifest from '../manifest.json'; -export const NationbuilderOptions = ({ - attributes, - setAttributes, - clientId, -}) => { - const manifest = select(STORE_NAME).getBlock('nationbuilder'); - - const { - title, - } = manifest; +export const NationbuilderOptions = ({ attributes, setAttributes, clientId }) => { + const { title } = manifest; return ( { - const manifest = select(STORE_NAME).getBlock('paycek'); - - const { - blockClass, - } = attributes; + const { blockClass } = attributes; return (
} - /> + formContent: ( + } + /> + ), })} />
diff --git a/src/Blocks/custom/paycek/components/paycek-options.js b/src/Blocks/custom/paycek/components/paycek-options.js index 3a781374b..9c5c0c795 100644 --- a/src/Blocks/custom/paycek/components/paycek-options.js +++ b/src/Blocks/custom/paycek/components/paycek-options.js @@ -1,18 +1,9 @@ import React from 'react'; -import { select } from '@wordpress/data'; import { IntegrationsInternalOptions } from '../../../components/integrations/components/integrations-internal-options'; -import { STORE_NAME } from '@eightshift/frontend-libs/scripts'; +import manifest from '../manifest.json'; -export const PaycekOptions = ({ - attributes, - setAttributes, - clientId, -}) => { - const manifest = select(STORE_NAME).getBlock('paycek'); - - const { - title, - } = manifest; +export const PaycekOptions = ({ attributes, setAttributes, clientId }) => { + const { title } = manifest; return ( { diff --git a/src/Blocks/custom/phone/components/phone-options.js b/src/Blocks/custom/phone/components/phone-options.js index 70085d057..7dc4ffcb8 100644 --- a/src/Blocks/custom/phone/components/phone-options.js +++ b/src/Blocks/custom/phone/components/phone-options.js @@ -1,5 +1,5 @@ import React from 'react'; -import { props } from '@eightshift/frontend-libs/scripts'; +import { props } from '@eightshift/frontend-libs-tailwind/scripts'; import { PhoneOptions as PhoneOptionsComponent } from '../../../components/phone/components/phone-options'; export const PhoneOptions = ({ attributes, setAttributes }) => { diff --git a/src/Blocks/custom/pipedrive/components/pipedrive-editor.js b/src/Blocks/custom/pipedrive/components/pipedrive-editor.js index da2d1c219..d264b7c60 100644 --- a/src/Blocks/custom/pipedrive/components/pipedrive-editor.js +++ b/src/Blocks/custom/pipedrive/components/pipedrive-editor.js @@ -1,25 +1,22 @@ import React from 'react'; -import { select } from '@wordpress/data'; import { InnerBlocks } from '@wordpress/block-editor'; -import { props, BlockInserter, STORE_NAME } from '@eightshift/frontend-libs/scripts'; +import { props, BlockInserter } from '@eightshift/frontend-libs-tailwind/scripts'; import { FormEditor, additionalBlocksNoIntegration } from '../../../components/form/components/form-editor'; export const PipedriveEditor = ({ attributes, setAttributes, clientId }) => { - const manifest = select(STORE_NAME).getBlock('pipedrive'); - - const { - blockClass, - } = attributes; + const { blockClass } = attributes; return (
} - /> + formContent: ( + } + /> + ), })} />
diff --git a/src/Blocks/custom/pipedrive/components/pipedrive-options.js b/src/Blocks/custom/pipedrive/components/pipedrive-options.js index b6c9e0c30..16e27eac2 100644 --- a/src/Blocks/custom/pipedrive/components/pipedrive-options.js +++ b/src/Blocks/custom/pipedrive/components/pipedrive-options.js @@ -1,18 +1,9 @@ import React from 'react'; -import { select } from '@wordpress/data'; import { IntegrationsInternalOptions } from '../../../components/integrations/components/integrations-internal-options'; -import { STORE_NAME } from '@eightshift/frontend-libs/scripts'; +import manifest from '../manifest.json'; -export const PipedriveOptions = ({ - attributes, - setAttributes, - clientId, -}) => { - const manifest = select(STORE_NAME).getBlock('pipedrive'); - - const { - title, - } = manifest; +export const PipedriveOptions = ({ attributes, setAttributes, clientId }) => { + const { title } = manifest; return ( { - const { - blockClass, - } = attributes; + const { blockClass } = attributes; return (
diff --git a/src/Blocks/custom/radio/components/radio-options.js b/src/Blocks/custom/radio/components/radio-options.js index b52811d0a..b5a05bc45 100644 --- a/src/Blocks/custom/radio/components/radio-options.js +++ b/src/Blocks/custom/radio/components/radio-options.js @@ -1,5 +1,5 @@ import React from 'react'; -import { props } from '@eightshift/frontend-libs/scripts'; +import { props } from '@eightshift/frontend-libs-tailwind/scripts'; import { RadioOptions as RadioOptionsComponent } from '../../../components/radio/components/radio-options'; export const RadioOptions = ({ attributes, setAttributes }) => { diff --git a/src/Blocks/custom/radios/components/radios-editor.js b/src/Blocks/custom/radios/components/radios-editor.js index a064d5bd4..fc78e327e 100644 --- a/src/Blocks/custom/radios/components/radios-editor.js +++ b/src/Blocks/custom/radios/components/radios-editor.js @@ -1,13 +1,12 @@ import React, { useEffect, useState } from 'react'; import { select } from '@wordpress/data'; import { InnerBlocks } from '@wordpress/block-editor'; -import { props, BlockInserter, STORE_NAME } from '@eightshift/frontend-libs/scripts'; +import { props, BlockInserter } from '@eightshift/frontend-libs-tailwind/scripts'; import { RadiosEditor as RadiosEditorComponent } from '../../../components/radios/components/radios-editor'; import globalManifest from '../../../manifest.json'; +import manifest from '../manifest.json'; export const RadiosEditor = ({ attributes, setAttributes, clientId }) => { - const manifest = select(STORE_NAME).getBlock('radios'); - const { template } = manifest; const [parentBlock, setParentBlock] = useState([]); @@ -16,7 +15,9 @@ export const RadiosEditor = ({ attributes, setAttributes, clientId }) => { const parentBlockIds = select('core/block-editor').getBlockParents(clientId); const parents = select('core/block-editor').getBlocksByClientId(parentBlockIds); - setParentBlock(parents.filter((parent) => globalManifest.allowedBlocksList.integrationsBuilder.includes(parent.name))); + setParentBlock( + parents.filter((parent) => globalManifest.allowedBlocksList.integrationsBuilder.includes(parent.name)), + ); }, [clientId]); return ( diff --git a/src/Blocks/custom/radios/components/radios-options.js b/src/Blocks/custom/radios/components/radios-options.js index bd784d04d..c210cb350 100644 --- a/src/Blocks/custom/radios/components/radios-options.js +++ b/src/Blocks/custom/radios/components/radios-options.js @@ -1,5 +1,5 @@ import React from 'react'; -import { props } from '@eightshift/frontend-libs/scripts'; +import { props } from '@eightshift/frontend-libs-tailwind/scripts'; import { RadiosOptions as RadiosOptionsComponent } from '../../../components/radios/components/radios-options'; export const RadiosOptions = ({ attributes, setAttributes }) => { diff --git a/src/Blocks/custom/rating/components/rating-editor.js b/src/Blocks/custom/rating/components/rating-editor.js index 824e6e480..9e2c17f1e 100644 --- a/src/Blocks/custom/rating/components/rating-editor.js +++ b/src/Blocks/custom/rating/components/rating-editor.js @@ -1,5 +1,5 @@ import React from 'react'; -import { props } from '@eightshift/frontend-libs/scripts'; +import { props } from '@eightshift/frontend-libs-tailwind/scripts'; import { RatingEditor as RatingEditorComponent } from '../../../components/rating/components/rating-editor'; export const RatingEditor = ({ attributes, setAttributes, clientId }) => { diff --git a/src/Blocks/custom/rating/components/rating-options.js b/src/Blocks/custom/rating/components/rating-options.js index f4c7ac230..f2c1a900e 100644 --- a/src/Blocks/custom/rating/components/rating-options.js +++ b/src/Blocks/custom/rating/components/rating-options.js @@ -1,5 +1,5 @@ import React from 'react'; -import { props } from '@eightshift/frontend-libs/scripts'; +import { props } from '@eightshift/frontend-libs-tailwind/scripts'; import { RatingOptions as RatingOptionsComponent } from '../../../components/rating/components/rating-options'; export const RatingOptions = ({ attributes, setAttributes }) => { diff --git a/src/Blocks/custom/result-output-item/components/result-output-item-editor.js b/src/Blocks/custom/result-output-item/components/result-output-item-editor.js index d79fdc594..1513269c0 100644 --- a/src/Blocks/custom/result-output-item/components/result-output-item-editor.js +++ b/src/Blocks/custom/result-output-item/components/result-output-item-editor.js @@ -2,15 +2,16 @@ import React from 'react'; import { __ } from '@wordpress/i18n'; import { useState, useEffect } from '@wordpress/element'; import { InnerBlocks } from '@wordpress/block-editor'; -import { checkAttr, BlockInserter, selector } from '@eightshift/frontend-libs/scripts'; +import { checkAttr, BlockInserter } from '@eightshift/frontend-libs-tailwind/scripts'; import manifest from '../manifest.json'; -import { CONDITIONAL_TAGS_OPERATORS_EXTENDED_LABELS, CONDITIONAL_TAGS_OPERATORS_LABELS } from '../../../components/conditional-tags/components/conditional-tags-labels'; +import { + CONDITIONAL_TAGS_OPERATORS_EXTENDED_LABELS, + CONDITIONAL_TAGS_OPERATORS_LABELS, +} from '../../../components/conditional-tags/components/conditional-tags-labels'; import globalManifest from '../../../manifest.json'; export const ResultOutputItemEditor = ({ attributes, clientId }) => { - const { - blockClass, - } = attributes; + const { blockClass } = attributes; const resultOutputItemName = checkAttr('resultOutputItemName', attributes, manifest); const resultOutputItemValueStart = checkAttr('resultOutputItemValue', attributes, manifest); @@ -23,10 +24,11 @@ export const ResultOutputItemEditor = ({ attributes, clientId }) => { setIsValidConfiguration(resultOutputItemName && resultOutputItemValueStart); }, [resultOutputItemName, resultOutputItemValueStart]); - const operatorLabel = { - ...CONDITIONAL_TAGS_OPERATORS_LABELS, - ...CONDITIONAL_TAGS_OPERATORS_EXTENDED_LABELS, - }?.[resultOutputItemOperator] ?? CONDITIONAL_TAGS_OPERATORS_LABELS[globalManifest.comparator.IS]; + const operatorLabel = + { + ...CONDITIONAL_TAGS_OPERATORS_LABELS, + ...CONDITIONAL_TAGS_OPERATORS_EXTENDED_LABELS, + }?.[resultOutputItemOperator] ?? CONDITIONAL_TAGS_OPERATORS_LABELS[globalManifest.comparator.IS]; let outputName = ''; @@ -53,30 +55,22 @@ export const ResultOutputItemEditor = ({ attributes, clientId }) => { return (
-
- {!isValidConfiguration && -
{__('Missing configuration options!', 'eightshift-forms')}
- } +
+ {!isValidConfiguration &&
{__('Missing configuration options!', 'eightshift-forms')}
} - {isValidConfiguration && + {isValidConfiguration && ( <> {__('SHOW', 'eightshift-forms')} {__(' if the variable name is ', 'eightshift-forms')} {resultOutputItemName} {__(' and variable value ', 'eightshift-forms')}
- - {outputName} - + {outputName} - } + )}
- {isValidConfiguration && - } - /> - } + {isValidConfiguration && } />}
); }; diff --git a/src/Blocks/custom/result-output-item/components/result-output-item-options.js b/src/Blocks/custom/result-output-item/components/result-output-item-options.js index a9b0aaba2..ae7dac4d9 100644 --- a/src/Blocks/custom/result-output-item/components/result-output-item-options.js +++ b/src/Blocks/custom/result-output-item/components/result-output-item-options.js @@ -1,14 +1,9 @@ import React from 'react'; import { useState } from '@wordpress/element'; import { __ } from '@wordpress/i18n'; -import { PanelBody, TextControl } from '@wordpress/components'; -import { - checkAttr, - getAttrKey, - icons, - IconLabel, - Select, -} from '@eightshift/frontend-libs/scripts'; +import { checkAttr, getAttrKey } from '@eightshift/frontend-libs-tailwind/scripts'; +import { Select, RichLabel, ContainerPanel, InputField } from '@eightshift/ui-components'; +import { icons } from '@eightshift/ui-components/icons'; import { CONDITIONAL_TAGS_OPERATORS_EXTENDED_LABELS, CONDITIONAL_TAGS_OPERATORS_LABELS, @@ -17,10 +12,7 @@ import { getConstantsOptions, NameField } from './../../../components/utils'; import manifest from '../manifest.json'; import globalManifest from '../../../manifest.json'; -export const ResultOutputItemOptions = ({ - attributes, - setAttributes, -}) => { +export const ResultOutputItemOptions = ({ attributes, setAttributes }) => { const [isNameChanged, setIsNameChanged] = useState(false); const resultOutputItemName = checkAttr('resultOutputItemName', attributes, manifest); @@ -28,10 +20,12 @@ export const ResultOutputItemOptions = ({ const resultOutputItemValueEnd = checkAttr('resultOutputItemValueEnd', attributes, manifest); const resultOutputItemOperator = checkAttr('resultOutputItemOperator', attributes, manifest); - const [showEndValue, setShowEndValue] = useState(resultOutputItemOperator.toUpperCase() in globalManifest.comparatorExtended); + const [showEndValue, setShowEndValue] = useState( + resultOutputItemOperator.toUpperCase() in globalManifest.comparatorExtended, + ); return ( - + { simpleValue /> - setAttributes({ [getAttrKey('countryIsDisabled', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('countryIsDisabled', attributes, manifest), countryDisabledOptions)} + icon={icons.fieldRequired} + label={__('Required', 'eightshift-forms')} + checked={countryIsRequired} + onChange={(value) => setAttributes({ [getAttrKey('countryIsRequired', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('countryIsRequired', attributes, manifest), countryDisabledOptions)} /> - setAttributes({ [getAttrKey('countryUseSearch', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('countryUseSearch', attributes, manifest), countryDisabledOptions)} - /> + {countryIsMultiple && ( + + + setAttributes({ [getAttrKey('countryMinCount', attributes, manifest)]: value })} + min={options.countryMinCount.min} + step={options.countryMinCount.step} + disabled={isOptionDisabled(getAttrKey('countryMinCount', attributes, manifest), countryDisabledOptions)} + placeholder='–' + fixedWidth={4} + prefix={__('Min', 'eightshift-forms')} + > + + - { - setAttributes({ [getAttrKey('countryIsMultiple', attributes, manifest)]: value }); - }} - disabled={isOptionDisabled(getAttrKey('countryIsMultiple', attributes, manifest), countryDisabledOptions)} - /> + setAttributes({ [getAttrKey('countryMaxCount', attributes, manifest)]: value })} + min={options.countryMaxCount.min} + step={options.countryMaxCount.step} + disabled={isOptionDisabled(getAttrKey('countryMaxCount', attributes, manifest), countryDisabledOptions)} + placeholder='–' + fixedWidth={4} + prefix={__('Max', 'eightshift-forms')} + > + + + + + )} { /> - } + icon={icons.googleTagManager} + label={__('GTM tracking code', 'eightshift-forms')} + placeholder={__('Enter GTM tracking code', 'eightshift-forms')} value={countryTracking} onChange={(value) => setAttributes({ [getAttrKey('countryTracking', attributes, manifest)]: value })} disabled={isOptionDisabled(getAttrKey('countryTracking', attributes, manifest), countryDisabledOptions)} diff --git a/src/Blocks/components/date/components/date-options.js b/src/Blocks/components/date/components/date-options.js index 97825dbee..715f83b98 100644 --- a/src/Blocks/components/date/components/date-options.js +++ b/src/Blocks/components/date/components/date-options.js @@ -10,16 +10,7 @@ import { FieldOptionsLayout, FieldOptionsVisibility, } from '../../field/components/field-options'; -import { - Select, - RichLabel, - Button, - ContainerPanel, - InputField, - Toggle, - ContainerGroup, - Spacer, -} from '@eightshift/ui-components'; +import { Select, Button, ContainerPanel, InputField, Toggle, ContainerGroup, Spacer } from '@eightshift/ui-components'; import { icons } from '@eightshift/ui-components/icons'; import { isOptionDisabled, NameField } from '../../utils'; import { ConditionalTagsOptions } from '../../conditional-tags/components/conditional-tags-options'; @@ -86,23 +77,26 @@ export const DateOptions = (attributes) => { })} /> - {!dateUseLabelAsPlaceholder && ( - setAttributes({ [getAttrKey('datePlaceholder', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('datePlaceholder', attributes, manifest), dateDisabledOptions)} + + { + setAttributes({ [getAttrKey('datePlaceholder', attributes, manifest)]: undefined }); + setAttributes({ [getAttrKey('dateUseLabelAsPlaceholder', attributes, manifest)]: value }); + }} /> - )} - { - setAttributes({ [getAttrKey('datePlaceholder', attributes, manifest)]: undefined }); - setAttributes({ [getAttrKey('dateUseLabelAsPlaceholder', attributes, manifest)]: value }); - }} - /> + {!dateUseLabelAsPlaceholder && ( + setAttributes({ [getAttrKey('datePlaceholder', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('datePlaceholder', attributes, manifest), dateDisabledOptions)} + /> + )} + { })} /> - - setAttributes({ [getAttrKey('dateIsRequired', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('dateIsRequired', attributes, manifest), dateDisabledOptions)} - /> - - setAttributes({ [getAttrKey('dateValidationPattern', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('dateValidationPattern', attributes, manifest), dateDisabledOptions)} + placeholder='–' + clearable + /> + + - } + icon={icons.googleTagManager} + label={__('GTM tracking code', 'eightshift-forms')} + placeholder={__('Enter GTM tracking code', 'eightshift-forms')} value={dateTracking} onChange={(value) => setAttributes({ [getAttrKey('dateTracking', attributes, manifest)]: value })} disabled={isOptionDisabled(getAttrKey('dateTracking', attributes, manifest), dateDisabledOptions)} diff --git a/src/Blocks/components/dynamic/components/dynamic-options.js b/src/Blocks/components/dynamic/components/dynamic-options.js index 093eed165..1ec8fd803 100644 --- a/src/Blocks/components/dynamic/components/dynamic-options.js +++ b/src/Blocks/components/dynamic/components/dynamic-options.js @@ -8,7 +8,7 @@ import { FieldOptionsLayout, FieldOptionsVisibility, } from '../../field/components/field-options'; -import { RichLabel, ContainerPanel, InputField, Toggle, ContainerGroup } from '@eightshift/ui-components'; +import { ContainerPanel, InputField, Toggle, ContainerGroup } from '@eightshift/ui-components'; import { icons } from '@eightshift/ui-components/icons'; import { isOptionDisabled, NameField } from '../../utils'; import { ConditionalTagsOptions } from '../../conditional-tags/components/conditional-tags-options'; @@ -98,7 +98,7 @@ export const DynamicOptions = (attributes) => { label={__('Validation', 'eightshift-forms')} > setAttributes({ [getAttrKey('dynamicIsRequired', attributes, manifest)]: value })} @@ -112,12 +112,9 @@ export const DynamicOptions = (attributes) => { collapsable > - } + icon={icons.googleTagManager} + label={__('GTM tracking code', 'eightshift-forms')} + placeholder={__('Enter GTM tracking code', 'eightshift-forms')} value={dynamicTracking} onChange={(value) => setAttributes({ [getAttrKey('dynamicTracking', attributes, manifest)]: value })} disabled={isOptionDisabled(getAttrKey('dynamicTracking', attributes, manifest), dynamicDisabledOptions)} diff --git a/src/Blocks/components/field/components/field-options.js b/src/Blocks/components/field/components/field-options.js index 1e8e9d223..af7f09b6a 100644 --- a/src/Blocks/components/field/components/field-options.js +++ b/src/Blocks/components/field/components/field-options.js @@ -5,11 +5,12 @@ import { __ } from '@wordpress/i18n'; import { useState } from '@wordpress/element'; import { isObject } from '@eightshift/ui-components/utilities'; import { checkAttr, getAttrKey, props } from '@eightshift/frontend-libs-tailwind/scripts'; -import { AnimatedVisibility, MultiSelect, RichLabel, InputField, Toggle, Spacer } from '@eightshift/ui-components'; +import { MultiSelect, InputField, Toggle, Spacer, ResponsiveLegacy, Slider, Notice } from '@eightshift/ui-components'; import { icons } from '@eightshift/ui-components/icons'; import { isOptionDisabled, NameField } from '../../utils'; import { ConditionalTagsOptions } from '../../../components/conditional-tags/components/conditional-tags-options'; import manifest from '../manifest.json'; +import globalManifest from '../../../manifest.json'; export const FieldOptionsExternalBlocks = ({ attributes, setAttributes }) => { const [isNameChanged, setIsNameChanged] = useState(false); @@ -76,6 +77,7 @@ export const FieldOptions = (attributes) => { {!fieldHideLabel && ( setAttributes({ [getAttrKey('fieldLabel', attributes, manifest)]: value })} @@ -83,12 +85,13 @@ export const FieldOptions = (attributes) => { /> )} - - - + )} )} @@ -120,7 +123,7 @@ export const FieldOptionsLayout = (attributes) => { icon={icons.containerSpacing} text={__('Layout', 'eightshift-forms')} /> - {/* { after={currentValue} /> )} - */} + {fieldStyleOptions?.length > 0 && ( { /> <> - } + icon={icons.help} + label={__('Help text', 'eightshift-forms')} value={fieldHelp} onChange={(value) => setAttributes({ [getAttrKey('fieldHelp', attributes, manifest)]: value })} /> - } + icon={icons.fieldBeforeText} + label={__('Below the field label', 'eightshift-forms')} value={fieldBeforeContent} onChange={(value) => setAttributes({ [getAttrKey('fieldBeforeContent', attributes, manifest)]: value })} /> - } + icon={icons.fieldAfterText} + label={__('Above the help text', 'eightshift-forms')} value={fieldAfterContent} onChange={(value) => setAttributes({ [getAttrKey('fieldAfterContent', attributes, manifest)]: value })} /> - } + icon={icons.fieldAfterText} + label={__('After field text', 'eightshift-forms')} value={fieldSuffixContent} onChange={(value) => setAttributes({ [getAttrKey('fieldSuffixContent', attributes, manifest)]: value })} /> @@ -233,3 +220,27 @@ export const FieldOptionsVisibility = (attributes) => { /> ); }; + +/** + * Get the data for `ResponsiveLegacy` from Eightshift UI components. + * + * @param {Object} responsiveAttr - Responsive attribute data, usually from `manifest.responsiveAttributes`. + * @param {Object} attributes - Component/block attributes. + * @param {Object} manifest - Component/block manifest. + * @param {function} setAttributes - The `setAttributes` function. + * + * @access public + * @since 13.0.0 + * + * @returns Object + */ +export const getResponsiveLegacyData = (responsiveAttr, attributes, manifest, setAttributes) => ({ + attribute: Object.fromEntries( + Object.entries(responsiveAttr).map(([breakpoint, attrName]) => [ + breakpoint, + getAttrKey(attrName, attributes, manifest), + ]), + ), + value: attributes, + onChange: (attributeName, value) => setAttributes({ [attributeName]: value }), +}); diff --git a/src/Blocks/components/file/components/file-options.js b/src/Blocks/components/file/components/file-options.js index 5656cadb2..59956ccdc 100644 --- a/src/Blocks/components/file/components/file-options.js +++ b/src/Blocks/components/file/components/file-options.js @@ -2,15 +2,7 @@ import React from 'react'; import { useState } from '@wordpress/element'; import { __ } from '@wordpress/i18n'; import { checkAttr, getAttrKey, props } from '@eightshift/frontend-libs-tailwind/scripts'; -import { - BaseControl, - RichLabel, - ContainerPanel, - InputField, - Toggle, - ContainerGroup, - Spacer, -} from '@eightshift/ui-components'; +import { BaseControl, ContainerPanel, InputField, Toggle, Spacer } from '@eightshift/ui-components'; import { FieldOptions, FieldOptionsMore, @@ -21,6 +13,8 @@ import { isOptionDisabled, NameField } from './../../utils'; import { ConditionalTagsOptions } from '../../conditional-tags/components/conditional-tags-options'; import { icons } from '@eightshift/ui-components/icons'; import manifest from '../manifest.json'; +import { NumberPicker } from '@eightshift/ui-components'; +import { HStack } from '@eightshift/ui-components'; export const FileOptions = (attributes) => { const { setAttributes } = attributes; @@ -69,58 +63,6 @@ export const FileOptions = (attributes) => { })} /> - - - setAttributes({ [getAttrKey('fileIsRequired', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('fileIsRequired', attributes, manifest), fileDisabledOptions)} - /> - - - } - value={fileAccept} - help={__('Separate items with a comma.', 'eightshift-forms')} - placeholder={__('e.g. .jpg,.png,.pdf', 'eightshift-forms')} - onChange={(value) => setAttributes({ [getAttrKey('fileAccept', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('fileAccept', attributes, manifest), fileDisabledOptions)} - /> - - -
- setAttributes({ [getAttrKey('fileMinSize', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('fileMinSize', attributes, manifest), fileDisabledOptions)} - /> - - setAttributes({ [getAttrKey('fileMaxSize', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('fileMaxSize', attributes, manifest), fileDisabledOptions)} - /> -
-
- { })} /> - setAttributes({ [getAttrKey('fileIsMultiple', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('fileIsMultiple', attributes, manifest), fileDisabledOptions)} - /> - { disabled={isOptionDisabled(getAttrKey('fileIsDisabled', attributes, manifest), fileDisabledOptions)} /> - setAttributes({ [getAttrKey('fileIsMultiple', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('fileIsMultiple', attributes, manifest), fileDisabledOptions)} /> - } + icon={icons.infoCircle} + label={__('Prompt text', 'eightshift-forms')} placeholder={__('Drag and drop files here', 'eightshift-forms')} onChange={(value) => setAttributes({ @@ -177,18 +109,68 @@ export const FileOptions = (attributes) => { /> - } + icon={icons.buttonOutline} + label={__('Upload button text', 'eightshift-forms')} value={fileCustomInfoButtonText} placeholder={__('Add files', 'eightshift-forms')} onChange={(value) => setAttributes({ [getAttrKey('fileCustomInfoButtonText', attributes, manifest)]: value })} disabled={isOptionDisabled(getAttrKey('fileCustomInfoButtonText', attributes, manifest), fileDisabledOptions)} /> + + + setAttributes({ [getAttrKey('fileIsRequired', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('fileIsRequired', attributes, manifest), fileDisabledOptions)} + /> + + setAttributes({ [getAttrKey('fileAccept', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('fileAccept', attributes, manifest), fileDisabledOptions)} + /> + + + + setAttributes({ [getAttrKey('fileMinSize', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('fileMinSize', attributes, manifest), fileDisabledOptions)} + placeholder='–' + prefix={__('Min', 'eightshift-forms')} + suffix={__('KB', 'eightshift-forms')} + /> + + setAttributes({ [getAttrKey('fileMaxSize', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('fileMaxSize', attributes, manifest), fileDisabledOptions)} + placeholder='–' + prefix={__('Max', 'eightshift-forms')} + suffix={__('KB', 'eightshift-forms')} + /> + + + { /> - } + icon={icons.googleTagManager} + label={__('GTM tracking code', 'eightshift-forms')} + placeholder={__('Enter GTM tracking code', 'eightshift-forms')} value={fileTracking} onChange={(value) => setAttributes({ [getAttrKey('fileTracking', attributes, manifest)]: value })} disabled={isOptionDisabled(getAttrKey('fileTracking', attributes, manifest), fileDisabledOptions)} diff --git a/src/Blocks/components/form/components/form-options.js b/src/Blocks/components/form/components/form-options.js index 6d267135d..8f80c55ea 100644 --- a/src/Blocks/components/form/components/form-options.js +++ b/src/Blocks/components/form/components/form-options.js @@ -1,7 +1,7 @@ import React from 'react'; import { __ } from '@wordpress/i18n'; import { checkAttr, getAttrKey } from '@eightshift/frontend-libs-tailwind/scripts'; -import { RichLabel, InputField, Toggle, ContainerGroup, Spacer } from '@eightshift/ui-components'; +import { InputField, Toggle, Spacer } from '@eightshift/ui-components'; import { icons } from '@eightshift/ui-components/icons'; import manifest from '../manifest.json'; @@ -21,12 +21,8 @@ export const FormOptions = (attributes) => { text={__('General', 'eightshift-forms')} /> - } + icon={icons.tag} + label={__('Form name', 'eightshift-forms')} help={__( 'Used as a name attribute for form element Useful if you want to add additional code style for the form.', 'eightshift-forms', @@ -42,12 +38,8 @@ export const FormOptions = (attributes) => { /> - } + icon={icons.gears} + label={__('Custom action', 'eightshift-forms')} value={formAction} help={__('Custom form action that will process form data.', 'eightshift-forms')} onChange={(value) => setAttributes({ [getAttrKey('formAction', attributes, manifest)]: value })} @@ -65,12 +57,8 @@ export const FormOptions = (attributes) => { /> - } + icon={icons.id} + label={__('Unique identifier', 'eightshift-forms')} value={formId} onChange={(value) => setAttributes({ [getAttrKey('formId', attributes, manifest)]: value })} /> diff --git a/src/Blocks/components/form/form-editor.scss b/src/Blocks/components/form/form-editor.scss deleted file mode 100644 index c9cfe5213..000000000 --- a/src/Blocks/components/form/form-editor.scss +++ /dev/null @@ -1,32 +0,0 @@ -// stylelint-disable max-nesting-depth - -@import './form-style'; - -.es-form { - $this: &; - - @include form-reset; - @include form-styles; - - > #{$this}__fields { - > .block-editor-inner-blocks { - > .block-editor-block-list__layout { - @include form-fields-mandatory-styles; - @include form-fields-styles; - - > * { - @include form-fields-children-mandatory-styles; - @include form-fields-children-styles; - - margin-inline: 0; - margin-block-start: 0; - padding-block: 0; - } - } - } - } - - &__editor { - @include form-width-limit-styles; - } -} diff --git a/src/Blocks/components/form/form-style.scss b/src/Blocks/components/form/form-style.scss index 990aff3b3..5f68ec62f 100644 --- a/src/Blocks/components/form/form-style.scss +++ b/src/Blocks/components/form/form-style.scss @@ -1,30 +1,30 @@ @mixin form-styles() { - margin: 0 auto; - position: relative; + // margin: 0 auto; + // position: relative; } @mixin form-width-limit-styles() { - max-inline-size: var(--es-max-width); - padding: 0 var(--es-grid-spacing); + // max-inline-size: var(--es-max-width); + // padding: 0 var(--es-grid-spacing); } @mixin form-fields-mandatory-styles() { - display: flex; - flex-wrap: wrap; + // display: flex; + // flex-wrap: wrap; } @mixin form-fields-styles() { - margin-inline: calc(var(--es-grid-spacing) * -1); + // margin-inline: calc(var(--es-grid-spacing) * -1); } @mixin form-fields-children-mandatory-styles() { - flex: 0 0 var(--es-field-width, 100%); - max-inline-size: var(--es-field-width, 100%); + // flex: 0 0 var(--es-field-width, 100%); + // max-inline-size: var(--es-field-width, 100%); } @mixin form-fields-children-styles() { - padding-inline: var(--es-grid-spacing); - margin-block-end: var(--es-field-spacing); + // padding-inline: var(--es-grid-spacing); + // margin-block-end: var(--es-field-spacing); } @mixin form-reset() { diff --git a/src/Blocks/components/form/styles-editor.css b/src/Blocks/components/form/styles-editor.css index b44ee68e7..4116eab46 100644 --- a/src/Blocks/components/form/styles-editor.css +++ b/src/Blocks/components/form/styles-editor.css @@ -3,15 +3,15 @@ @layer esf { .esf-form { - @apply esf:max-w-3xl! esf:mx-auto! esf:px-48!; + @apply esf:mx-auto! esf:max-w-3xl!; } .esf-form .block-editor-block-list__layout { - @apply esf:flex! esf:flex-row! esf:flex-wrap! esf:gap-15!; + @apply esf:grid! esf:grid-cols-12! esf:gap-15!; } .esf-form .block-editor-block-list__layout > * { - @apply esf:w-full!; + @apply esf:col-span-12! esf:w-full!; } .esf-form .eightshift-block { @@ -19,7 +19,8 @@ } .esf-form .eightshift-block.is-selected::after { - @apply esf:outline-accent-500!; + @apply esf:content-['']!; + @apply esf:outline-accent-500! esf:outline! esf:absolute! esf:inset-0! esf:z-1!; } .esf-form .eightshift-block.is-selected { diff --git a/src/Blocks/components/input/components/input-options.js b/src/Blocks/components/input/components/input-options.js index 3bafed204..c16293ad8 100644 --- a/src/Blocks/components/input/components/input-options.js +++ b/src/Blocks/components/input/components/input-options.js @@ -4,16 +4,7 @@ import React from 'react'; import { useState } from '@wordpress/element'; import { __ } from '@wordpress/i18n'; import { getOption, checkAttr, getAttrKey, props } from '@eightshift/frontend-libs-tailwind/scripts'; -import { - Select, - RichLabel, - NumberPicker, - ContainerPanel, - InputField, - Toggle, - HStack, - Spacer, -} from '@eightshift/ui-components'; +import { Select, NumberPicker, ContainerPanel, InputField, Toggle, HStack, Spacer } from '@eightshift/ui-components'; import { icons } from '@eightshift/ui-components/icons'; import { FieldOptions, @@ -77,6 +68,7 @@ export const InputOptions = (attributes) => { icon={icons.options} text={__('General', 'eightshift-forms')} /> + { })} /> - {!inputUseLabelAsPlaceholder && ( - setAttributes({ [getAttrKey('inputPlaceholder', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('inputPlaceholder', attributes, manifest), inputDisabledOptions)} + <> + { + setAttributes({ [getAttrKey('inputPlaceholder', attributes, manifest)]: undefined }); + setAttributes({ [getAttrKey('inputUseLabelAsPlaceholder', attributes, manifest)]: value }); + }} /> - )} - - { - setAttributes({ [getAttrKey('inputPlaceholder', attributes, manifest)]: undefined }); - setAttributes({ [getAttrKey('inputUseLabelAsPlaceholder', attributes, manifest)]: value }); - }} - /> + {!inputUseLabelAsPlaceholder && ( + setAttributes({ [getAttrKey('inputPlaceholder', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('inputPlaceholder', attributes, manifest), inputDisabledOptions)} + /> + )} + { /> - } + icon={icons.titleGeneric} + label={__('Initial value', 'eightshift-forms')} + placeholder={__('Enter initial value', 'eightshift-forms')} value={inputValue} onChange={(value) => setAttributes({ [getAttrKey('inputValue', attributes, manifest)]: value })} disabled={isOptionDisabled(getAttrKey('inputValue', attributes, manifest), inputDisabledOptions)} @@ -204,7 +195,7 @@ export const InputOptions = (attributes) => { text={__('Validation', 'eightshift-forms')} /> setAttributes({ [getAttrKey('inputIsRequired', attributes, manifest)]: value })} @@ -225,29 +216,74 @@ export const InputOptions = (attributes) => { )} {!['number', 'range'].includes(inputType) && ( + + setAttributes({ [getAttrKey('inputMinLength', attributes, manifest)]: value })} + min={options.inputMinLength.min} + max={options.inputMinLength.max} + step={options.inputMinLength.step} + disabled={isOptionDisabled(getAttrKey('inputMinLength', attributes, manifest), inputDisabledOptions)} + placeholder='–' + prefix={__('Min length', 'eightshift-forms')} + > + + + + setAttributes({ [getAttrKey('inputMaxLength', attributes, manifest)]: value })} + min={options.inputMaxLength.min} + max={options.inputMaxLength.max} + step={options.inputMaxLength.step} + disabled={isOptionDisabled(getAttrKey('inputMaxLength', attributes, manifest), inputDisabledOptions)} + placeholder='–' + prefix={__('Max length', 'eightshift-forms')} + > + + + + )} + + {(inputType === 'number' || inputType === 'range') && ( <> - setAttributes({ [getAttrKey('inputMinLength', attributes, manifest)]: value })} - min={options.inputMinLength.min} - max={options.inputMinLength.max} - step={options.inputMinLength.step} - disabled={isOptionDisabled(getAttrKey('inputMinLength', attributes, manifest), inputDisabledOptions)} + value={inputMin} + onChange={(value) => + setAttributes({ [getAttrKey('inputMin', attributes, manifest)]: formatNumber(value) }) + } + min={options.inputMin.min} + max={options.inputMin.max} + step={options.inputMin.step} + disabled={isOptionDisabled(getAttrKey('inputMin', attributes, manifest), inputDisabledOptions)} placeholder='–' prefix={__('Min', 'eightshift-forms')} > + + setAttributes({ [getAttrKey('inputStep', attributes, manifest)]: value })} + min={options.inputStep.min} + max={options.inputStep.max} + step={options.inputStep.step} + disabled={isOptionDisabled(getAttrKey('inputStep', attributes, manifest), inputDisabledOptions)} + prefix={__('Step', 'eightshift-forms')} + > + - - )} - {(inputType === 'number' || inputType === 'range') && ( - <> - {inputType === 'range' && ( <> { > } + label={__('Min prefix', 'eightshift-forms')} value={inputRangeShowMinPrefix} onChange={(value) => setAttributes({ [getAttrKey('inputRangeShowMinPrefix', attributes, manifest)]: value }) @@ -314,7 +362,7 @@ export const InputOptions = (attributes) => { )} /> } + label={__('Min suffix', 'eightshift-forms')} value={inputRangeShowMinSuffix} onChange={(value) => setAttributes({ [getAttrKey('inputRangeShowMinSuffix', attributes, manifest)]: value }) @@ -344,7 +392,7 @@ export const InputOptions = (attributes) => { > } + label={__('Current prefix', 'eightshift-forms')} value={inputRangeShowCurrentPrefix} onChange={(value) => setAttributes({ [getAttrKey('inputRangeShowCurrentPrefix', attributes, manifest)]: value }) @@ -355,7 +403,7 @@ export const InputOptions = (attributes) => { )} /> } + label={__('Current suffix', 'eightshift-forms')} value={inputRangeShowCurrentSuffix} onChange={(value) => setAttributes({ [getAttrKey('inputRangeShowCurrentSuffix', attributes, manifest)]: value }) @@ -382,7 +430,7 @@ export const InputOptions = (attributes) => { > } + label={__('Max prefix', 'eightshift-forms')} value={inputRangeShowMaxPrefix} onChange={(value) => setAttributes({ [getAttrKey('inputRangeShowMaxPrefix', attributes, manifest)]: value }) @@ -393,7 +441,7 @@ export const InputOptions = (attributes) => { )} /> } + label={__('Max suffix', 'eightshift-forms')} value={inputRangeShowMaxSuffix} onChange={(value) => setAttributes({ [getAttrKey('inputRangeShowMaxSuffix', attributes, manifest)]: value }) @@ -407,85 +455,6 @@ export const InputOptions = (attributes) => { )} - - - - setAttributes({ [getAttrKey('inputMin', attributes, manifest)]: formatNumber(value) }) - } - min={options.inputMin.min} - max={options.inputMin.max} - step={options.inputMin.step} - disabled={isOptionDisabled(getAttrKey('inputMin', attributes, manifest), inputDisabledOptions)} - placeholder='–' - prefix={__('Min', 'eightshift-forms')} - > - - - - - setAttributes({ [getAttrKey('inputMax', attributes, manifest)]: formatNumber(value) }) - } - min={options.inputMax.min} - max={options.inputMax.max} - step={options.inputMax.step} - disabled={isOptionDisabled(getAttrKey('inputMax', attributes, manifest), inputDisabledOptions)} - placeholder='–' - prefix={__('Max', 'eightshift-forms')} - > - - - - - )} - - {(inputType === 'number' || inputType === 'range') && ( - <> - - setAttributes({ [getAttrKey('inputStep', attributes, manifest)]: value })} - min={options.inputStep.min} - max={options.inputStep.max} - step={options.inputStep.step} - disabled={isOptionDisabled(getAttrKey('inputStep', attributes, manifest), inputDisabledOptions)} - prefix={__('Step', 'eightshift-forms')} - > - - )} @@ -496,12 +465,8 @@ export const InputOptions = (attributes) => { /> - } + icon={icons.googleTagManager} + label={__('GTM tracking code', 'eightshift-forms')} value={inputTracking} onChange={(value) => setAttributes({ [getAttrKey('inputTracking', attributes, manifest)]: value })} disabled={isOptionDisabled(getAttrKey('inputTracking', attributes, manifest), inputDisabledOptions)} diff --git a/src/Blocks/components/phone/components/phone-options.js b/src/Blocks/components/phone/components/phone-options.js index ccc67918a..921c3edad 100644 --- a/src/Blocks/components/phone/components/phone-options.js +++ b/src/Blocks/components/phone/components/phone-options.js @@ -4,7 +4,7 @@ import React from 'react'; import { useState } from '@wordpress/element'; import { __ } from '@wordpress/i18n'; import { checkAttr, getAttrKey, props } from '@eightshift/frontend-libs-tailwind/scripts'; -import { Select, RichLabel, ContainerPanel, InputField, Toggle, Spacer } from '@eightshift/ui-components'; +import { Select, ContainerPanel, InputField, Toggle, Spacer } from '@eightshift/ui-components'; import { icons } from '@eightshift/ui-components/icons'; import { FieldOptions, @@ -15,6 +15,7 @@ import { import { isOptionDisabled, NameField } from '../../utils'; import { ConditionalTagsOptions } from '../../conditional-tags/components/conditional-tags-options'; import manifest from '../manifest.json'; +import { ContainerGroup } from '@eightshift/ui-components'; export const PhoneOptions = (attributes) => { const { setAttributes } = attributes; @@ -66,23 +67,26 @@ export const PhoneOptions = (attributes) => { })} /> - {!phoneUseLabelAsPlaceholder && ( - setAttributes({ [getAttrKey('phonePlaceholder', attributes, manifest)]: value })} - disabled={isOptionDisabled(getAttrKey('phonePlaceholder', attributes, manifest), phoneDisabledOptions)} + + { + setAttributes({ [getAttrKey('phonePlaceholder', attributes, manifest)]: undefined }); + setAttributes({ [getAttrKey('phoneUseLabelAsPlaceholder', attributes, manifest)]: value }); + }} /> - )} - { - setAttributes({ [getAttrKey('phonePlaceholder', attributes, manifest)]: undefined }); - setAttributes({ [getAttrKey('phoneUseLabelAsPlaceholder', attributes, manifest)]: value }); - }} - /> + {!phoneUseLabelAsPlaceholder && ( + setAttributes({ [getAttrKey('phonePlaceholder', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('phonePlaceholder', attributes, manifest), phoneDisabledOptions)} + /> + )} + { /> - } + icon={icons.fieldValue} + label={__('Initial value', 'eightshift-forms')} + placeholder={__('Enter initial value', 'eightshift-forms')} type='number' min='1' value={phoneValue} @@ -112,12 +113,9 @@ export const PhoneOptions = (attributes) => { /> - } + icon={icons.titleGeneric} + label={__('Dropdown initial value', 'eightshift-forms')} + placeholder={__('Enter dropdown initial value', 'eightshift-forms')} value={phoneSelectValue} onChange={(value) => setAttributes({ [getAttrKey('phoneSelectValue', attributes, manifest)]: value })} disabled={isOptionDisabled(getAttrKey('phoneSelectValue', attributes, manifest), phoneDisabledOptions)} @@ -127,6 +125,44 @@ export const PhoneOptions = (attributes) => { )} /> + + + setAttributes({ [getAttrKey('phoneIsReadOnly', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('phoneIsReadOnly', attributes, manifest), phoneDisabledOptions)} + /> + + setAttributes({ [getAttrKey('phoneIsDisabled', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('phoneIsDisabled', attributes, manifest), phoneDisabledOptions)} + /> + + setAttributes({ [getAttrKey('phoneIsNumber', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('phoneIsNumber', attributes, manifest), phoneDisabledOptions)} + /> + + setAttributes({ [getAttrKey('phoneUseSearch', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('phoneUseSearch', attributes, manifest), phoneDisabledOptions)} + /> + setAttributes({ [getAttrKey('textareaValidationPattern', attributes, manifest)]: value })} - disabled={isOptionDisabled( - getAttrKey('textareaValidationPattern', attributes, manifest), - textareaDisabledOptions, - )} - placeholder='–' - clearable - /> - - -
-
- setAttributes({ [getAttrKey('textareaMinLength', attributes, manifest)]: value })} - min={options.textareaMinLength.min} - step={options.textareaMinLength.step} - disabled={isOptionDisabled( - getAttrKey('textareaMinLength', attributes, manifest), - textareaDisabledOptions, - )} - placeholder='–' - fixedWidth={4} - /> - - {textareaMinLength > 0 && - !isOptionDisabled(getAttrKey('textareaMinLength', attributes, manifest), textareaDisabledOptions) && ( -
-
- setAttributes({ [getAttrKey('textareaMaxLength', attributes, manifest)]: value })} - min={options.textareaMaxLength.min} - step={options.textareaMaxLength.step} - disabled={isOptionDisabled( - getAttrKey('textareaMaxLength', attributes, manifest), - textareaDisabledOptions, - )} - placeholder='–' - fixedWidth={4} - /> - - {textareaMaxLength > 0 && - !isOptionDisabled(getAttrKey('textareaMaxLength', attributes, manifest), textareaDisabledOptions) && ( -
-
-
- { /> - } + icon={icons.fieldValue} + label={__('Initial value', 'eightshift-forms')} + placeholder={__('Enter initial value', 'eightshift-forms')} value={textareaValue} onChange={(value) => setAttributes({ [getAttrKey('textareaValue', attributes, manifest)]: value })} disabled={isOptionDisabled(getAttrKey('textareaValue', attributes, manifest), textareaDisabledOptions)} @@ -235,6 +138,80 @@ export const TextareaOptions = (attributes) => { disabled={isOptionDisabled(getAttrKey('textareaIsDisabled', attributes, manifest), textareaDisabledOptions)} /> + + + setAttributes({ [getAttrKey('textareaIsRequired', attributes, manifest)]: value })} + disabled={isOptionDisabled(getAttrKey('textareaIsRequired', attributes, manifest), textareaDisabledOptions)} + /> + + - } + icon={icons.containerSpacing} + label={__('Compare operator', 'eightshift-forms')} value={resultOutputItemOperator} options={getConstantsOptions({ ...CONDITIONAL_TAGS_OPERATORS_LABELS, @@ -55,14 +51,8 @@ export const ResultOutputItemOptions = ({ attributes, setAttributes }) => { /> - } + icon={icons.positionHStart} + label={showEndValue ? __('Variable value start', 'eightshift-forms') : __('Variable value', 'eightshift-forms')} help={showEndValue && __('Start value must be number.', 'eightshift-forms')} value={resultOutputItemValueStart} onChange={(value) => setAttributes({ [getAttrKey('resultOutputItemValue', attributes, manifest)]: value })} @@ -70,12 +60,8 @@ export const ResultOutputItemOptions = ({ attributes, setAttributes }) => { {showEndValue && ( - } + icon={icons.positionHEnd} + label={__('Variable value end', 'eightshift-forms')} value={resultOutputItemValueEnd} onChange={(value) => setAttributes({ [getAttrKey('resultOutputItemValueEnd', attributes, manifest)]: value })} help={showEndValue && __('End value must be number.', 'eightshift-forms')} diff --git a/src/Blocks/custom/result-output-item/manifest.json b/src/Blocks/custom/result-output-item/manifest.json index 7b97ff6f3..13d9aae3a 100644 --- a/src/Blocks/custom/result-output-item/manifest.json +++ b/src/Blocks/custom/result-output-item/manifest.json @@ -5,7 +5,7 @@ "description" : "Display the result output variable blocks based on the users form submission", "category": "eightshift-forms", "icon": { - "src": "esf-checkbox" + "src": "checkbox" }, "keywords": [ "result", diff --git a/src/Blocks/custom/result-output-item/result-output-item-overrides.js b/src/Blocks/custom/result-output-item/result-output-item-overrides.js deleted file mode 100644 index 3feaca110..000000000 --- a/src/Blocks/custom/result-output-item/result-output-item-overrides.js +++ /dev/null @@ -1,9 +0,0 @@ -import manifest from './manifest.json'; -import { getUtilsIcons } from '../../components/form/assets/state-init'; - -export const overrides = { - ...manifest, - icon:{ - src: getUtilsIcons('resultOutputItem') ?? manifest.icon.src, - } -}; diff --git a/src/Blocks/custom/result-output/manifest.json b/src/Blocks/custom/result-output/manifest.json index 1149ea93a..d01404f4e 100644 --- a/src/Blocks/custom/result-output/manifest.json +++ b/src/Blocks/custom/result-output/manifest.json @@ -5,7 +5,7 @@ "description" : "Display the result output of the form after success", "category": "eightshift-forms", "icon": { - "src": "esf-checkbox" + "src": "checkbox" }, "keywords": [ "result", diff --git a/src/Blocks/custom/result-output/result-output-overrides.js b/src/Blocks/custom/result-output/result-output-overrides.js deleted file mode 100644 index 43dfef152..000000000 --- a/src/Blocks/custom/result-output/result-output-overrides.js +++ /dev/null @@ -1,9 +0,0 @@ -import manifest from './manifest.json'; -import { getUtilsIcons } from '../../components/form/assets/state-init'; - -export const overrides = { - ...manifest, - icon:{ - src: getUtilsIcons('resultOutput') ?? manifest.icon.src, - } -}; diff --git a/src/Blocks/custom/select-option/manifest.json b/src/Blocks/custom/select-option/manifest.json index 28b1b0ced..72e61393d 100644 --- a/src/Blocks/custom/select-option/manifest.json +++ b/src/Blocks/custom/select-option/manifest.json @@ -5,7 +5,7 @@ "description" : "Select field option", "category": "eightshift-forms", "icon": { - "src": "esf-select-option" + "src": "select-option" }, "keywords": [ "select", diff --git a/src/Blocks/custom/select-option/select-option-overrides.js b/src/Blocks/custom/select-option/select-option-overrides.js deleted file mode 100644 index e015f09b1..000000000 --- a/src/Blocks/custom/select-option/select-option-overrides.js +++ /dev/null @@ -1,9 +0,0 @@ -import manifest from './manifest.json'; -import { getUtilsIcons } from '../../components/form/assets/state-init'; - -export const overrides = { - ...manifest, - icon:{ - src: getUtilsIcons('selectOption') ?? manifest.icon.src, - } -}; diff --git a/src/Blocks/custom/select/manifest.json b/src/Blocks/custom/select/manifest.json index a87e4ea04..a8465db7c 100644 --- a/src/Blocks/custom/select/manifest.json +++ b/src/Blocks/custom/select/manifest.json @@ -5,7 +5,7 @@ "description" : "An item selection field", "category": "eightshift-forms", "icon": { - "src": "esf-select" + "src": "select" }, "keywords": [ "select" diff --git a/src/Blocks/custom/select/select-overrides.js b/src/Blocks/custom/select/select-overrides.js index 0a0de19e0..83e5cea62 100644 --- a/src/Blocks/custom/select/select-overrides.js +++ b/src/Blocks/custom/select/select-overrides.js @@ -1,10 +1,7 @@ import manifest from './manifest.json'; -import { getUtilsIcons } from '../../components/form/assets/state-init'; import globalSettings from './../../manifest.json'; + export const overrides = { ...manifest, - icon:{ - src: getUtilsIcons('select') ?? manifest.icon.src, - }, parent: globalSettings.allowedBlocksList.integrationsNoBuilder, }; diff --git a/src/Blocks/custom/step/manifest.json b/src/Blocks/custom/step/manifest.json index 149c973e3..ba2df3d66 100644 --- a/src/Blocks/custom/step/manifest.json +++ b/src/Blocks/custom/step/manifest.json @@ -5,7 +5,7 @@ "description" : "Separate your form in multiple step or multiple flows.", "category": "eightshift-forms", "icon": { - "src": "esf-steps" + "src": "steps" }, "keywords": [ "step", diff --git a/src/Blocks/custom/step/step-overrides.js b/src/Blocks/custom/step/step-overrides.js index ad95c4e3d..83f7f65ee 100644 --- a/src/Blocks/custom/step/step-overrides.js +++ b/src/Blocks/custom/step/step-overrides.js @@ -1,13 +1,8 @@ - import manifest from './manifest.json'; -import { getUtilsIcons } from '../../components/form/assets/state-init'; import globalSettings from './../../manifest.json'; export const overrides = { ...manifest, - icon:{ - src: getUtilsIcons('steps') ?? manifest.icon.src, - }, parent: [ ...globalSettings.allowedBlocksList.integrationsBuilder, ...globalSettings.allowedBlocksList.integrationsNoBuilder, diff --git a/src/Blocks/custom/submit/manifest.json b/src/Blocks/custom/submit/manifest.json index 81d67f2bc..c090bae6b 100644 --- a/src/Blocks/custom/submit/manifest.json +++ b/src/Blocks/custom/submit/manifest.json @@ -5,7 +5,7 @@ "description" : "Form submission button", "category": "eightshift-forms", "icon": { - "src": "esf-submit" + "src": "submit" }, "keywords": [ "submit" diff --git a/src/Blocks/custom/submit/submit-overrides.js b/src/Blocks/custom/submit/submit-overrides.js index a319060b8..83e5cea62 100644 --- a/src/Blocks/custom/submit/submit-overrides.js +++ b/src/Blocks/custom/submit/submit-overrides.js @@ -1,11 +1,7 @@ import manifest from './manifest.json'; -import { getUtilsIcons } from '../../components/form/assets/state-init'; import globalSettings from './../../manifest.json'; export const overrides = { ...manifest, - icon:{ - src: getUtilsIcons('submit') ?? manifest.icon.src, - }, parent: globalSettings.allowedBlocksList.integrationsNoBuilder, }; diff --git a/src/Blocks/custom/talentlyft/manifest.json b/src/Blocks/custom/talentlyft/manifest.json index 8d1ed8157..38e146043 100644 --- a/src/Blocks/custom/talentlyft/manifest.json +++ b/src/Blocks/custom/talentlyft/manifest.json @@ -5,7 +5,7 @@ "description" : "Talentlyft job application form", "category": "eightshift-forms", "icon": { - "src": "esf-form-talentlyft" + "src": "talentlyft" }, "keywords": [ "talentlyft" diff --git a/src/Blocks/custom/talentlyft/talentlyft-overrides.js b/src/Blocks/custom/talentlyft/talentlyft-overrides.js index e33a0ce25..8adb1f640 100644 --- a/src/Blocks/custom/talentlyft/talentlyft-overrides.js +++ b/src/Blocks/custom/talentlyft/talentlyft-overrides.js @@ -1,10 +1,7 @@ import manifest from './manifest.json'; -import { getUtilsIcons } from '../../components/form/assets/state-init'; import globalSettings from './../../manifest.json'; + export const overrides = { ...manifest, - icon:{ - src: getUtilsIcons('talentlyft') ?? manifest.icon.src, - }, parent: globalSettings.allowedBlocksList.formsCpt, }; diff --git a/src/Blocks/custom/textarea/manifest.json b/src/Blocks/custom/textarea/manifest.json index d9c14c9b8..b3ccbd6b4 100644 --- a/src/Blocks/custom/textarea/manifest.json +++ b/src/Blocks/custom/textarea/manifest.json @@ -5,7 +5,7 @@ "description" : "Multiline text input field", "category": "eightshift-forms", "icon": { - "src": "esf-textarea" + "src": "textarea" }, "keywords": [ "textarea" diff --git a/src/Blocks/custom/textarea/textarea-overrides.js b/src/Blocks/custom/textarea/textarea-overrides.js index 3a918ec20..83e5cea62 100644 --- a/src/Blocks/custom/textarea/textarea-overrides.js +++ b/src/Blocks/custom/textarea/textarea-overrides.js @@ -1,11 +1,7 @@ import manifest from './manifest.json'; -import { getUtilsIcons } from '../../components/form/assets/state-init'; import globalSettings from './../../manifest.json'; export const overrides = { ...manifest, - icon:{ - src: getUtilsIcons('textarea') ?? manifest.icon.src, - }, parent: globalSettings.allowedBlocksList.integrationsNoBuilder, }; diff --git a/src/Blocks/custom/workable/manifest.json b/src/Blocks/custom/workable/manifest.json index 1374305a6..25925bcdc 100644 --- a/src/Blocks/custom/workable/manifest.json +++ b/src/Blocks/custom/workable/manifest.json @@ -2,14 +2,12 @@ "$schema": "https://raw.githubusercontent.com/infinum/eightshift-frontend-libs/develop/schemas/block.json", "blockName": "workable", "title": "Workable form", - "description" : "Workable job application form", + "description": "Workable job application form", "category": "eightshift-forms", "icon": { - "src": "esf-form-workable" + "src": "workable" }, - "keywords": [ - "workable" - ], + "keywords": ["workable"], "components": { "form": "form", "step": "step" diff --git a/src/Blocks/custom/workable/workable-overrides.js b/src/Blocks/custom/workable/workable-overrides.js index 6ef6079a5..8adb1f640 100644 --- a/src/Blocks/custom/workable/workable-overrides.js +++ b/src/Blocks/custom/workable/workable-overrides.js @@ -1,10 +1,7 @@ import manifest from './manifest.json'; -import { getUtilsIcons } from '../../components/form/assets/state-init'; import globalSettings from './../../manifest.json'; + export const overrides = { ...manifest, - icon:{ - src: getUtilsIcons('workable') ?? manifest.icon.src, - }, parent: globalSettings.allowedBlocksList.formsCpt, }; diff --git a/src/Blocks/manifest.json b/src/Blocks/manifest.json index 5352159d1..d74b63d26 100644 --- a/src/Blocks/manifest.json +++ b/src/Blocks/manifest.json @@ -41,6 +41,7 @@ "eightshift-forms/dynamic" ], "fieldsIntegration": ["eightshift-forms/step"], + "fieldsWithChildren": ["eightshift-forms/checkbox", "eightshift-forms/radio", "eightshift-forms/select-option"], "integrationsNoBuilder": [ "eightshift-forms/mailer", "eightshift-forms/jira", diff --git a/tailwind.css b/tailwind.css index adf16eef6..f75e6f6c8 100644 --- a/tailwind.css +++ b/tailwind.css @@ -8,6 +8,7 @@ @source '/*.php'; @source '/es-tw-responsive-classes.txt'; @source '/manifest.json'; +@source '/src/Blocks/assets/styles/safelist-tailwind.txt'; @theme { --spacing: 0.0625rem; /* 1px */ @@ -32,51 +33,6 @@ --color-secondary-900: var(--esf-color-zinc-900); --color-secondary-950: var(--esf-color-zinc-950); - /* --color-error-50: oklch(0.971 0.013 17.38); - --color-error-100: oklch(0.936 0.032 17.717); - --color-error-200: oklch(0.885 0.062 18.334); - --color-error-300: oklch(0.808 0.114 19.571); - --color-error-400: oklch(0.704 0.191 22.216); - --color-error-500: oklch(0.637 0.237 25.331); - --color-error-600: oklch(0.577 0.245 27.325); - --color-error-700: oklch(0.505 0.213 27.518); - --color-error-800: oklch(0.444 0.177 26.899); - --color-error-900: oklch(0.396 0.141 25.723); - --color-error-950: oklch(0.258 0.092 26.042); - - --color-red-50: oklch(0.971 0.013 17.38); - --color-red-100: oklch(0.936 0.032 17.717); - --color-red-200: oklch(0.885 0.062 18.334); - --color-red-300: oklch(0.808 0.114 19.571); - --color-red-400: oklch(0.704 0.191 22.216); - --color-red-500: oklch(0.637 0.237 25.331); - --color-red-600: oklch(0.577 0.245 27.325); - --color-red-700: oklch(0.505 0.213 27.518); - --color-red-800: oklch(0.444 0.177 26.899); - --color-red-900: oklch(0.396 0.141 25.723); - --color-red-950: oklch(0.258 0.092 26.042); - - --color-cyan-400: oklch(0.789 0.154 211.53); - --color-blue-400: oklch(0.707 0.165 254.624); - --color-emerald-400: oklch(0.765 0.177 163.223); - --color-orange-400: oklch(0.75 0.183 55.934); - --color-violet-400: oklch(0.702 0.183 293.541); - - --color-yellow-400: oklch(0.852 0.199 91.936); - - --color-secondary-50: var(--esf-color-zinc-50); - --color-secondary-100: var(--esf-color-zinc-100); - --color-secondary-200: var(--esf-color-zinc-200); - --color-secondary-300: var(--esf-color-zinc-300); - --color-secondary-400: var(--esf-color-zinc-400); - --color-secondary-500: var(--esf-color-zinc-500); - --color-secondary-600: var(--esf-color-zinc-600); - --color-secondary-700: var(--esf-color-zinc-700); - --color-secondary-800: var(--esf-color-zinc-800); - --color-secondary-900: var(--esf-color-zinc-900); - --color-secondary-950: var(--esf-color-zinc-950); - */ - --color-accent-50: var(--esf-color-teal-50); --color-accent-100: var(--esf-color-teal-100); --color-accent-200: var(--esf-color-teal-200); @@ -88,53 +44,6 @@ --color-accent-800: var(--esf-color-teal-800); --color-accent-900: var(--esf-color-teal-900); --color-accent-950: var(--esf-color-teal-950); - - /* - - --color-green-50: oklch(0.982 0.018 155.826); - --color-green-100: oklch(0.962 0.044 156.743); - --color-green-200: oklch(0.925 0.084 155.995); - --color-green-300: oklch(0.871 0.15 154.449); - --color-green-400: oklch(0.792 0.209 151.711); - --color-green-500: oklch(0.723 0.219 149.579); - --color-green-600: oklch(0.627 0.194 149.214); - --color-green-700: oklch(0.527 0.154 150.069); - --color-green-800: oklch(0.448 0.119 151.328); - --color-green-900: oklch(0.393 0.095 152.535); - --color-green-950: oklch(0.266 0.065 152.934); - - --radius-*: initial; - --radius-none: 0; - --radius-2xs: 0.125rem; - --radius-xs: 0.25rem; - --radius-sm: 0.5rem; - --radius-md: 0.75rem; - --radius-lg: 1rem; - --radius-xl: 1.125rem; - --radius-2xl: 1.5rem; - --radius-3xl: 2rem; - --radius-10: 0.625rem; - - --aspect-2-3: 2 / 3; - --aspect-3-2: 3 / 2; - --aspect-3-4: 3 / 4; - --aspect-4-3: 4 / 3; - --aspect-4-5: 4 / 5; - --aspect-5-4: 5 / 4; - --aspect-cinema: 21 / 9; - --aspect-video-portrait: 9 / 16; - --aspect-cinema-portrait: 9 / 21; - - --default-transition-duration: 300ms; - - /* Easings */ - - /* --ease-spring-smooth: var(--motion-spring-smooth); - --ease-spring-snappy: var(--motion-spring-snappy); - --ease-spring-bouncy: var(--motion-spring-bouncy); - --ease-spring-bouncier: var(--motion-spring-bouncier); - --ease-spring-bounciest: var(--motion-spring-bounciest); - --ease-bounce: var(--motion-bounce); */ } body { From f2ab6f10c538f9ba0ae2b955394ff4aeac6c4ce3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Ruz=CC=8Cevic=CC=81?= Date: Wed, 24 Dec 2025 16:19:42 +0100 Subject: [PATCH 3/6] update logo style --- src/Blocks/components/rating/components/rating-options.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Blocks/components/rating/components/rating-options.js b/src/Blocks/components/rating/components/rating-options.js index 2858299f7..877c46613 100644 --- a/src/Blocks/components/rating/components/rating-options.js +++ b/src/Blocks/components/rating/components/rating-options.js @@ -13,6 +13,7 @@ import { ConditionalTagsOptions } from '../../conditional-tags/components/condit import { icons } from '@eightshift/ui-components/icons'; import { ContainerPanel, InputField, Toggle, Spacer } from '@eightshift/ui-components'; import manifest from '../manifest.json'; +import { Slider } from '@eightshift/ui-components'; export const RatingOptions = (attributes) => { const { setAttributes, title = __('Rating', 'eightshift-forms') } = attributes; @@ -46,14 +47,13 @@ export const RatingOptions = (attributes) => { setIsChanged={setIsNameChanged} /> - setAttributes({ [getAttrKey('ratingAmount', attributes, manifest)]: value })} min={1} max={10} - type='number' disabled={isOptionDisabled(getAttrKey('ratingAmount', attributes, manifest), ratingDisabledOptions)} /> From 7aadb7ea7112d39070d0eb25d01ad274e5da9449 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Ruz=CC=8Cevic=CC=81?= Date: Mon, 5 Jan 2026 19:55:07 +0100 Subject: [PATCH 4/6] update --- src/Blocks/components/utils/index.js | 21 ++++++++++--------- .../components/form-selector-editor.js | 3 +++ .../components/form-selector-options.js | 10 ++++----- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/Blocks/components/utils/index.js b/src/Blocks/components/utils/index.js index cc8394904..d0791e826 100644 --- a/src/Blocks/components/utils/index.js +++ b/src/Blocks/components/utils/index.js @@ -601,7 +601,7 @@ export const FormEditButton = ({ formId }) => { * * @returns Component */ -export const SettingsButton = ({ formId }) => { +export const SettingsButton = ({ formId = null }) => { const wpAdminUrl = esFormsLocalization.wpAdminUrl; const postId = select('core/editor').getCurrentPostId(); @@ -611,7 +611,9 @@ export const SettingsButton = ({ formId }) => { return ( + { fixedWidth={4} prefix={__('Max', 'eightshift-forms')} > - + diff --git a/src/Blocks/components/file/components/file-options.js b/src/Blocks/components/file/components/file-options.js index 59956ccdc..1deb333a6 100644 --- a/src/Blocks/components/file/components/file-options.js +++ b/src/Blocks/components/file/components/file-options.js @@ -2,7 +2,16 @@ import React from 'react'; import { useState } from '@wordpress/element'; import { __ } from '@wordpress/i18n'; import { checkAttr, getAttrKey, props } from '@eightshift/frontend-libs-tailwind/scripts'; -import { BaseControl, ContainerPanel, InputField, Toggle, Spacer } from '@eightshift/ui-components'; +import { + BaseControl, + ContainerPanel, + InputField, + Toggle, + Spacer, + Button, + HStack, + NumberPicker, +} from '@eightshift/ui-components'; import { FieldOptions, FieldOptionsMore, @@ -13,8 +22,6 @@ import { isOptionDisabled, NameField } from './../../utils'; import { ConditionalTagsOptions } from '../../conditional-tags/components/conditional-tags-options'; import { icons } from '@eightshift/ui-components/icons'; import manifest from '../manifest.json'; -import { NumberPicker } from '@eightshift/ui-components'; -import { HStack } from '@eightshift/ui-components'; export const FileOptions = (attributes) => { const { setAttributes } = attributes; @@ -156,8 +163,18 @@ export const FileOptions = (attributes) => { placeholder='–' prefix={__('Min', 'eightshift-forms')} suffix={__('KB', 'eightshift-forms')} - /> - + > + + { placeholder='–' prefix={__('Max', 'eightshift-forms')} suffix={__('KB', 'eightshift-forms')} - /> + > + + diff --git a/src/Blocks/components/input/components/input-options.js b/src/Blocks/components/input/components/input-options.js index c16293ad8..a4425d23b 100644 --- a/src/Blocks/components/input/components/input-options.js +++ b/src/Blocks/components/input/components/input-options.js @@ -4,7 +4,16 @@ import React from 'react'; import { useState } from '@wordpress/element'; import { __ } from '@wordpress/i18n'; import { getOption, checkAttr, getAttrKey, props } from '@eightshift/frontend-libs-tailwind/scripts'; -import { Select, NumberPicker, ContainerPanel, InputField, Toggle, HStack, Spacer } from '@eightshift/ui-components'; +import { + Select, + NumberPicker, + ContainerPanel, + InputField, + Toggle, + HStack, + Spacer, + Button, +} from '@eightshift/ui-components'; import { icons } from '@eightshift/ui-components/icons'; import { FieldOptions, @@ -228,15 +237,16 @@ export const InputOptions = (attributes) => { placeholder='–' prefix={__('Min length', 'eightshift-forms')} > - + { placeholder='–' prefix={__('Max length', 'eightshift-forms')} > - + )} @@ -279,15 +290,16 @@ export const InputOptions = (attributes) => { placeholder='–' prefix={__('Min', 'eightshift-forms')} > - + { placeholder='–' prefix={__('Max', 'eightshift-forms')} > - + { disabled={isOptionDisabled(getAttrKey('inputStep', attributes, manifest), inputDisabledOptions)} prefix={__('Step', 'eightshift-forms')} > - + diff --git a/src/Blocks/components/select/components/select-options.js b/src/Blocks/components/select/components/select-options.js index fef1e1b66..6ef84ecaa 100644 --- a/src/Blocks/components/select/components/select-options.js +++ b/src/Blocks/components/select/components/select-options.js @@ -11,6 +11,9 @@ import { Toggle, Select, Spacer, + Button, + HStack, + ContainerGroup, } from '@eightshift/ui-components'; import { FieldOptions, @@ -22,8 +25,6 @@ import { isOptionDisabled, NameField } from './../../utils'; import { ConditionalTagsOptions } from '../../conditional-tags/components/conditional-tags-options'; import manifest from '../manifest.json'; import globalManifest from '../../../manifest.json'; -import { ContainerGroup } from '@eightshift/ui-components'; -import { HStack } from '@eightshift/ui-components'; export const SelectOptions = (attributes) => { const { options } = manifest; @@ -179,15 +180,16 @@ export const SelectOptions = (attributes) => { fixedWidth={4} prefix={__('Min', 'eightshift-forms')} > - + { fixedWidth={4} prefix={__('Max', 'eightshift-forms')} > - + diff --git a/src/Blocks/components/textarea/components/textarea-options.js b/src/Blocks/components/textarea/components/textarea-options.js index 41b1784f2..34364bb60 100644 --- a/src/Blocks/components/textarea/components/textarea-options.js +++ b/src/Blocks/components/textarea/components/textarea-options.js @@ -11,9 +11,9 @@ import { HStack, InputField, Toggle, - ContainerGroup, ContainerPanel, Spacer, + Button, } from '@eightshift/ui-components'; import { FieldOptions, @@ -178,15 +178,16 @@ export const TextareaOptions = (attributes) => { fixedWidth={4} prefix={__('Min length', 'eightshift-forms')} > - + { fixedWidth={4} prefix={__('Max length', 'eightshift-forms')} > - + From 13da89665d280b62f39ec0a89e63de0bb7ae3af5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Ruz=CC=8Cevic=CC=81?= Date: Wed, 7 Jan 2026 13:48:46 +0100 Subject: [PATCH 6/6] update --- .../conditional-tags-forms-options.js | 139 +++++++++--------- .../components/conditional-tags-options.js | 129 ++++++++-------- .../components/integrations-options.js | 11 +- .../step/components/step-multiflow-options.js | 2 +- src/Blocks/components/utils/index.js | 7 +- .../custom/forms/components/forms-options.js | 3 +- 6 files changed, 147 insertions(+), 144 deletions(-) diff --git a/src/Blocks/components/conditional-tags/components/conditional-tags-forms-options.js b/src/Blocks/components/conditional-tags/components/conditional-tags-forms-options.js index d7b880695..9183a41cc 100644 --- a/src/Blocks/components/conditional-tags/components/conditional-tags-forms-options.js +++ b/src/Blocks/components/conditional-tags/components/conditional-tags-forms-options.js @@ -2,7 +2,6 @@ import React, { useEffect } from 'react'; import { useState } from '@wordpress/element'; import { __, sprintf } from '@wordpress/i18n'; import apiFetch from '@wordpress/api-fetch'; -import { Modal } from '@wordpress/components'; import { getAttrKey, checkAttr } from '@eightshift/frontend-libs-tailwind/scripts'; import { BaseControl, @@ -14,6 +13,7 @@ import { ContainerPanel, Toggle, ContainerGroup, + Modal, } from '@eightshift/ui-components'; import { icons } from '@eightshift/ui-components/icons'; import { CONDITIONAL_TAGS_ACTIONS_LABELS } from './conditional-tags-labels'; @@ -28,7 +28,6 @@ export const ConditionalTagsFormsOptions = (attributes) => { const conditionalTagsRulesForms = checkAttr('conditionalTagsRulesForms', attributes, manifest); const conditionalTagsPostId = checkAttr('conditionalTagsPostId', attributes, manifest); - const [isModalOpen, setIsModalOpen] = useState(false); const [formFields, setFormFields] = useState([]); useEffect(() => { @@ -37,7 +36,7 @@ export const ConditionalTagsFormsOptions = (attributes) => { setFormFields(response.data.fields); } }); - }, [conditionalTagsPostId, isModalOpen]); + }, [conditionalTagsPostId]); const ConditionalTagsItem = ({ index }) => { if (!formFields) { @@ -129,8 +128,8 @@ export const ConditionalTagsFormsOptions = (attributes) => { }} /> - - + /> - {conditionalTagsUse && isModalOpen && ( - - } - onRequestClose={() => setIsModalOpen(false)} - > - - - {conditionalTagsRulesForms.length > 0 && ( -
- {__('Field', 'eightshift-forms')} - {__('Visibility', 'eightshift-forms')} -
- )} - -
- {conditionalTagsRulesForms?.map((_, index) => { - return ( -
- -
- ); - })} -
- + } + triggerLabel={ + conditionalTagsRulesForms?.length > 0 + ? __('Edit rules', 'eightshift-forms') + : __('Add rule', 'eightshift-forms') + } + actions={ + } + > + + {conditionalTagsRulesForms.length > 0 && (
- - - + {__('Field', 'eightshift-forms')} + {__('Visibility', 'eightshift-forms')}
-
- )} + )} + +
+ {conditionalTagsRulesForms?.map((_, index) => { + return ( +
+ +
+ ); + })} +
+ + + + +
); }; diff --git a/src/Blocks/components/conditional-tags/components/conditional-tags-options.js b/src/Blocks/components/conditional-tags/components/conditional-tags-options.js index c93badbfb..a73cc00e6 100644 --- a/src/Blocks/components/conditional-tags/components/conditional-tags-options.js +++ b/src/Blocks/components/conditional-tags/components/conditional-tags-options.js @@ -2,10 +2,8 @@ import React, { useState, useEffect } from 'react'; import { __, sprintf } from '@wordpress/i18n'; import { select } from '@wordpress/data'; import apiFetch from '@wordpress/api-fetch'; -import { Modal } from '@wordpress/components'; import { getAttrKey, checkAttr } from '@eightshift/frontend-libs-tailwind/scripts'; import { - BaseControl, Select, RichLabel, Notice, @@ -14,6 +12,8 @@ import { Toggle, ContainerGroup, Spacer, + Modal, + HStack, } from '@eightshift/ui-components'; import { icons } from '@eightshift/ui-components/icons'; import { getConstantsOptions } from '../../utils'; @@ -25,13 +25,13 @@ import { import { getRestUrl } from '../../form/assets/state-init'; import globalManifest from '../../../manifest.json'; import manifest from '../manifest.json'; +import { truncateMiddle } from '@eightshift/ui-components/utilities'; export const ConditionalTagsOptions = (attributes) => { const { setAttributes } = attributes; const postId = select('core/editor').getCurrentPostId(); - const [isModalOpen, setIsModalOpen] = useState(false); const [formFields, setFormFields] = useState([]); useEffect(() => { @@ -72,11 +72,12 @@ export const ConditionalTagsOptions = (attributes) => { }} simpleValue noSearch + className='esf:max-w-24' /> -
{__('Set field exception rules', 'eightshift-forms')}
+
{__('Set field exception rules', 'eightshift-forms')}
-
+
{sprintf( __('%s "%s" field if:', 'eightshift-forms'), CONDITIONAL_TAGS_ACTIONS_INVERSE_LABELS[conditionalTagsRules[0]], @@ -100,7 +101,9 @@ export const ConditionalTagsOptions = (attributes) => { ); })} - {conditionalTagsRules?.[1]?.length > 1 && index + 1 < total &&
{__('OR', 'eightshift-forms')}
} + {conditionalTagsRules?.[1]?.length > 1 && index + 1 < total && ( +
{__('OR', 'eightshift-forms')}
+ )} ); })} @@ -136,17 +139,21 @@ export const ConditionalTagsOptions = (attributes) => { (operatorValue === globalManifest.comparator.IS || operatorValue === globalManifest.comparator.ISN); return ( -
+