From 71c901616d692e4bbdd977d3424cf1e4df3a7b39 Mon Sep 17 00:00:00 2001 From: Sasha Khamkov Date: Mon, 17 Aug 2026 12:34:06 +0300 Subject: [PATCH] fix(styles): add nonce for injected styles CSP and handle css vars outside of components --- .gitignore | 6 +- README.md | 28 + commitlint.config.cjs | 24 + commitlint.config.js | 16 - packages/docs-site/README.md | 7 + packages/docs-site/csp-test.html | 12 + packages/docs-site/package.json | 3 + packages/docs-site/src/csp-test-main.tsx | 93 +++ .../docs-site/src/lib/parseSelectProps.ts | 238 +++++++ packages/docs-site/src/pages/Api.tsx | 616 +++--------------- packages/docs-site/vite.config.js | 35 +- .../__snapshots__/index.spec.js.snap | 109 +--- .../__snapshots__/Content.spec.js.snap | 6 - .../__snapshots__/Dropdown.spec.js.snap | 5 - .../__snapshots__/DropdownHandle.spec.js.snap | 5 - .../__snapshots__/Item.spec.js.snap | 16 - .../__snapshots__/Loading.spec.js.snap | 5 - .../__snapshots__/NoData.spec.js.snap | 5 - .../__snapshots__/Option.spec.js.snap | 6 - .../__tests__/styles.spec.js | 83 +++ .../__tests__/use-cases/helpers.js | 1 + .../__tests__/use-cases/props-config.test.js | 27 +- .../src/components/DropdownHandle.tsx | 3 +- .../src/components/Item.tsx | 11 +- .../src/components/Loading.tsx | 5 +- .../src/components/NoData.tsx | 6 +- .../src/components/Option.tsx | 11 +- .../src/hooks/useSelect.tsx | 56 +- packages/react-dropdown-select/src/index.tsx | 17 +- .../react-dropdown-select/src/select-types.ts | 423 ++++++++++++ packages/react-dropdown-select/src/styles.ts | 53 +- packages/react-dropdown-select/types.d.ts | 181 ----- .../types/components/Clear.d.ts | 3 - .../types/components/ClickOutside.d.ts | 10 - .../types/components/Content.d.ts | 4 - .../types/components/Dropdown.d.ts | 9 - .../types/components/DropdownHandle.d.ts | 7 - .../types/components/Input.d.ts | 15 - .../types/components/Item.d.ts | 16 - .../types/components/Loading.d.ts | 6 - .../types/components/NoData.d.ts | 6 - .../types/components/Option.d.ts | 3 - .../types/components/Separator.d.ts | 3 - .../types/constants.d.ts | 1 - .../types/hooks/useSelect.d.ts | 15 - .../react-dropdown-select/types/index.d.ts | 13 - .../types/select-types.d.ts | 139 ---- .../react-dropdown-select/types/styles.d.ts | 1 - .../react-dropdown-select/types/util.d.ts | 8 - 49 files changed, 1178 insertions(+), 1193 deletions(-) create mode 100644 commitlint.config.cjs delete mode 100644 commitlint.config.js create mode 100644 packages/docs-site/csp-test.html create mode 100644 packages/docs-site/src/csp-test-main.tsx create mode 100644 packages/docs-site/src/lib/parseSelectProps.ts create mode 100644 packages/react-dropdown-select/__tests__/styles.spec.js delete mode 100644 packages/react-dropdown-select/types.d.ts delete mode 100644 packages/react-dropdown-select/types/components/Clear.d.ts delete mode 100644 packages/react-dropdown-select/types/components/ClickOutside.d.ts delete mode 100644 packages/react-dropdown-select/types/components/Content.d.ts delete mode 100644 packages/react-dropdown-select/types/components/Dropdown.d.ts delete mode 100644 packages/react-dropdown-select/types/components/DropdownHandle.d.ts delete mode 100644 packages/react-dropdown-select/types/components/Input.d.ts delete mode 100644 packages/react-dropdown-select/types/components/Item.d.ts delete mode 100644 packages/react-dropdown-select/types/components/Loading.d.ts delete mode 100644 packages/react-dropdown-select/types/components/NoData.d.ts delete mode 100644 packages/react-dropdown-select/types/components/Option.d.ts delete mode 100644 packages/react-dropdown-select/types/components/Separator.d.ts delete mode 100644 packages/react-dropdown-select/types/constants.d.ts delete mode 100644 packages/react-dropdown-select/types/hooks/useSelect.d.ts delete mode 100644 packages/react-dropdown-select/types/index.d.ts delete mode 100644 packages/react-dropdown-select/types/select-types.d.ts delete mode 100644 packages/react-dropdown-select/types/styles.d.ts delete mode 100644 packages/react-dropdown-select/types/util.d.ts diff --git a/.gitignore b/.gitignore index a7d6d276..a5429660 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,8 @@ package-lock.json /packages/react-dropdown-select/src/helpers.js .DS_Store coverage -dist/ -lib/ +/packages/react-dropdown-select/dist/ +/packages/react-dropdown-select/lib/ +/packages/docs-site/dist/ +/packages/react-dropdown-select/types/ storybook-static/ diff --git a/README.md b/README.md index 1c08640a..5fa4c27e 100644 --- a/README.md +++ b/README.md @@ -129,6 +129,7 @@ pnpm test | addPlaceholder | string | "" | Secondary placeholder on search field if any value selected | | disabled | bool | false | Disable select and all interactions | | style | object | {} | Style object to pass to select | +| styleNonce | string | | Nonce value for the `