@keeper-security/keeper-js-ui 0.25.1 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +31 -21
  3. package/dist/index.cjs +6 -6
  4. package/dist/index.js +3395 -3382
  5. package/dist/style.css +1 -1
  6. package/dist/types/components/layout/box.d.ts +17 -3
  7. package/dist/types/components/layout/box.d.ts.map +1 -1
  8. package/dist/types/components/layout/flex.d.ts +22 -7
  9. package/dist/types/components/layout/flex.d.ts.map +1 -1
  10. package/dist/types/components/ui/button.d.ts +1 -1
  11. package/dist/types/components/ui/button.d.ts.map +1 -1
  12. package/dist/types/components/ui/collapsible.d.ts +6 -0
  13. package/dist/types/components/ui/collapsible.d.ts.map +1 -0
  14. package/dist/types/components/ui/dropdown-menu.d.ts +1 -1
  15. package/dist/types/components/ui/icon.d.ts +8 -2
  16. package/dist/types/components/ui/icon.d.ts.map +1 -1
  17. package/dist/types/components/ui/list.d.ts +1 -1
  18. package/dist/types/components/ui/loader.d.ts +1 -1
  19. package/dist/types/components/ui/tabs.d.ts +8 -0
  20. package/dist/types/components/ui/tabs.d.ts.map +1 -0
  21. package/dist/types/components/ui/typography.d.ts +9 -3
  22. package/dist/types/components/ui/typography.d.ts.map +1 -1
  23. package/dist/types/icons/app-window-2-x.d.ts +3 -0
  24. package/dist/types/icons/app-window-2-x.d.ts.map +1 -0
  25. package/dist/types/icons/docker-brand.d.ts +3 -0
  26. package/dist/types/icons/docker-brand.d.ts.map +1 -0
  27. package/dist/types/icons/docker-logo.d.ts.map +1 -1
  28. package/dist/types/icons/index.d.ts +6 -0
  29. package/dist/types/icons/index.d.ts.map +1 -1
  30. package/dist/types/icons/kubernetes-brand.d.ts +3 -0
  31. package/dist/types/icons/kubernetes-brand.d.ts.map +1 -0
  32. package/dist/types/icons/mysql-brand.d.ts +3 -0
  33. package/dist/types/icons/mysql-brand.d.ts.map +1 -0
  34. package/dist/types/icons/mysql-logo.d.ts.map +1 -1
  35. package/dist/types/icons/postgres-brand.d.ts +3 -0
  36. package/dist/types/icons/postgres-brand.d.ts.map +1 -0
  37. package/dist/types/icons/vnc-brand.d.ts +3 -0
  38. package/dist/types/icons/vnc-brand.d.ts.map +1 -0
  39. package/dist/types/lib/types.d.ts +1 -3
  40. package/dist/types/lib/types.d.ts.map +1 -1
  41. package/dist/types/lib/utils.d.ts +3 -2
  42. package/dist/types/lib/utils.d.ts.map +1 -1
  43. package/dist/types/tokens/color.d.ts +37 -91
  44. package/dist/types/tokens/color.d.ts.map +1 -1
  45. package/dist/types/tokens/color.fixtures.d.ts +138 -0
  46. package/dist/types/tokens/color.fixtures.d.ts.map +1 -0
  47. package/dist/types/tokens/typography.d.ts +7 -0
  48. package/dist/types/tokens/typography.d.ts.map +1 -1
  49. package/package.json +34 -26
package/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.26.0](https://github.com/Keeper-Security/keeper-js-ui/compare/v0.25.2...v0.26.0) (2026-06-09)
4
+
5
+
6
+ ### Features
7
+
8
+ * **Box:** accept any element type via `as` ([#588](https://github.com/Keeper-Security/keeper-js-ui/issues/588)) ([72d2881](https://github.com/Keeper-Security/keeper-js-ui/commit/72d2881e44fba7aa517b15154fbe316834ebf928))
9
+ * **Icon:** add AppWindow2XIcon to library ([#587](https://github.com/Keeper-Security/keeper-js-ui/issues/587)) ([7316bc4](https://github.com/Keeper-Security/keeper-js-ui/commit/7316bc4503b1be3a2d94543baea87c50ce25ad47))
10
+ * **Typography:** deprecate "default" size, add "md" alias ([#573](https://github.com/Keeper-Security/keeper-js-ui/issues/573)) ([c760368](https://github.com/Keeper-Security/keeper-js-ui/commit/c760368d7d887bd1ac083d1fb7e87bdbf13a0b7a))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * **Button:** apply consistent 8px padding across all sizes ([#590](https://github.com/Keeper-Security/keeper-js-ui/issues/590)) ([c948488](https://github.com/Keeper-Security/keeper-js-ui/commit/c94848827ce24a0b8cd478bc6039de23cf77989f)), closes [#589](https://github.com/Keeper-Security/keeper-js-ui/issues/589)
16
+ * **deps:** move react/react-dom from dependencies to devDependencies ([f5c047b](https://github.com/Keeper-Security/keeper-js-ui/commit/f5c047b8683a18ee0411daded706b55e70d0dc11)), closes [#594](https://github.com/Keeper-Security/keeper-js-ui/issues/594)
17
+
18
+ ## [0.25.2](https://github.com/Keeper-Security/keeper-js-ui/compare/v0.25.1...v0.25.2) (2026-05-18)
19
+
20
+
21
+ ### Bug Fixes
22
+
23
+ * **Icon:** distinguish between brand and logo icons ([#562](https://github.com/Keeper-Security/keeper-js-ui/issues/562)) ([ecf7e75](https://github.com/Keeper-Security/keeper-js-ui/commit/ecf7e75c8e44cef580e95ca1cd03986dc49db3fb))
24
+ * **Icon:** include Typography color mapping ([#557](https://github.com/Keeper-Security/keeper-js-ui/issues/557)) ([7e11965](https://github.com/Keeper-Security/keeper-js-ui/commit/7e11965e71060d9aae5191081fb4ff197d62ac6a))
25
+ * **Input:** adjust IconButton alignments ([#564](https://github.com/Keeper-Security/keeper-js-ui/issues/564)) ([890882a](https://github.com/Keeper-Security/keeper-js-ui/commit/890882a716032a1c4d89df03dc618da9f0dc2730)), closes [#563](https://github.com/Keeper-Security/keeper-js-ui/issues/563)
26
+
3
27
  ## [0.25.1](https://github.com/Keeper-Security/keeper-js-ui/compare/v0.25.0...v0.25.1) (2026-05-13)
4
28
 
5
29
 
package/README.md CHANGED
@@ -6,12 +6,10 @@ _React components built for accessibility, consistency, and speed._
6
6
 
7
7
  - Terminal of your choice.
8
8
  - [git](https://github.com/git-guides/install-git) - Type `git -v` into your terminal to verify.
9
- - [Node.js v24](https://nodejs.org/en/download/package-manager) - Type `node -v` into your terminal to verify.
10
-
11
- ## Recommendations
12
-
13
- - [nvm](https://github.com/nvm-sh/nvm) - Manage multiple versions of node/npm. Type `nvm -v` into your terminal to verify.
14
- - [VS Code](https://code.visualstudio.com/) - Popular code editor with a healthy ecosystem of [extensions](https://marketplace.visualstudio.com/VSCode)/plugins.
9
+ - [Node.js v24](https://nodejs.org/en/download/package-manager) - Type `node -v` into your terminal to verify. **Recommendation**: use [nvm](https://github.com/nvm-sh/nvm) to install and manage different versions of Node.
10
+ - [pnpm v11.4.0](https://pnpm.io/installation) - Type `pnpm -v` to verify. **Recommendation**: use [Corepack](https://pnpm.io/installation#using-corepack) that comes bundled with Node since `v16.13`:
11
+ 1. `corepack enable pnpm`
12
+ 2. `corepack prepare --activate`
15
13
 
16
14
  ## Getting Started
17
15
 
@@ -20,13 +18,13 @@ Git clone or [download](https://github.com/Keeper-Security/keeper-js-ui/archive/
20
18
  Open a terminal from the root of the project and run:
21
19
 
22
20
  ```sh
23
- npm ci
21
+ pnpm ci
24
22
  ```
25
23
 
26
24
  Views are rendered via [Storybook](https://storybook.js.org/). To see components in action and start making edits, simply run:
27
25
 
28
26
  ```sh
29
- npm run storybook
27
+ pnpm storybook
30
28
  ```
31
29
 
32
30
  `ctrl + c` to stop the server.
@@ -45,7 +43,7 @@ The [src/](./src/) folder holds all component-related code.
45
43
  - [src/hooks](./src/hooks/): React-specific [hooks](https://react.dev/reference/react/hooks).
46
44
  - [src/lib/](./src/lib/): Internal utility/helper functions.
47
45
 
48
- With [Storybook](https://storybook.js.org/) running (`npm run storybook`), most edits are shown immediately upon saving without the need for browser refreshes or server restarts. Exceptions would be changes to infrastructure code like edits to Storybook itself.
46
+ With [Storybook](https://storybook.js.org/) running (`pnpm storybook`), most edits are shown immediately upon saving without the need for browser refreshes or server restarts. Exceptions would be changes to infrastructure code like edits to Storybook itself.
49
47
 
50
48
  ### Creating a Story
51
49
 
@@ -218,15 +216,28 @@ and allow enough time for migration before removal.
218
216
  export { MyNewExampleIcon } from '@/icons/my-new-example'
219
217
  ```
220
218
 
219
+ ### Icon Naming Conventions
220
+
221
+ - All files are located in `/src/icons`.
222
+ - All publicly available icons must be added to `/src/icons/index.ts`.
223
+ - A **logo** icon represents a company.
224
+ - Filename: `*-logo.tsx`.
225
+ - All logo icons must be be able to inherit the `currentColor` or define a semantic color.
226
+ - A logo icon should include `logo` in its `alias` array.
227
+ - A **brand** icon represents a company and preserves brand color.
228
+ - Filename: `*-brand.tsx`.
229
+ - All brand icons must not change their color in any way. Using `color` should cause a TS error.
230
+ - A brand icon should include `brand` and `logo` in its `alias` array.
231
+
221
232
  ## Testing
222
233
 
223
- The [Vitest addon](https://storybook.js.org/docs/writing-tests/integrations/vitest-addon) will run smoke tests and unit tests with the command: `npm test`.
234
+ The [Vitest addon](https://storybook.js.org/docs/writing-tests/integrations/vitest-addon) will run smoke tests and unit tests with the command: `pnpm test`.
224
235
 
225
236
  ### Smoke Tests
226
237
 
227
238
  Also known as confidence testing or sanity testing, smoke testing is the practice of testing the most important functionality of a system or feature. In this case, we use them to also check if any code changes have broken components in obvious ways. This automated process would be the equivalent of manually clicking on each story and verifying that it loaded without errors.
228
239
 
229
- There is no additional code you need to write after creating a new story. Stories will get picked up automatically and tested whenever `npm test` is ran.
240
+ There is no additional code you need to write after creating a new story. Stories will get picked up automatically and tested whenever `pnpm test` is ran.
230
241
 
231
242
  When you push a change up to Github, an [action will run](https://github.com/Keeper-Security/keeper-js-ui/actions/workflows/storybook-tests.yml) these tests and give you feedback to the outcome.
232
243
 
@@ -356,7 +367,7 @@ These standards are enforced with the help of [commitlint](https://commitlint.js
356
367
  If you're not comfortable with [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) and you're ready to commit your **staged changes**, you can run:
357
368
 
358
369
  ```sh
359
- npm run commit
370
+ pnpm commit
360
371
  ```
361
372
 
362
373
  [czhgit](https://github.com/Zhengqbbb/cz-git) will prompt a series of questions and format your answers per the [Conventional Commits specification](https://www.conventionalcommits.org/en/v1.0.0/#specification):
@@ -415,16 +426,16 @@ Occassionally, a PR might be created when a security patch is available from one
415
426
  > It's always a good idea to `git pull` and `git checkout` that branch locally to run some smoke tests before merging.
416
427
 
417
428
  ```
418
- npm ci && npm run build && npm start
429
+ pnpm ci && pnpm build && pnpm start
419
430
  ```
420
431
 
421
- If you want to take an additional step to smoke test, you can run `npm test` in a new terminal while `npm start` is still running.
432
+ If you want to take an additional step to smoke test, you can run `pnpm test` in a new terminal while `pnpm start` is still running.
422
433
 
423
434
  ### Release PRs
424
435
 
425
436
  Whenever a PR is merged into the `main` branch, a [Release Github Action](https://github.com/Keeper-Security/keeper-js-ui/actions/workflows/release-please.yml) is automatically triggered to parse through the git history for certain keywords.
426
437
 
427
- Based on the existence of these keywords, a new PR may be created automatically with updates to `package.json`, `package-lock.json`, and `CHANGELOG.md`.
438
+ Based on the existence of these keywords, a new PR may be created automatically with updates to `package.json`, `pnpm-lock.yaml`, and `CHANGELOG.md`.
428
439
 
429
440
  Once that PR is merged into `main`, a release tag is created. See [Publishing an NPM Package](#publishing-an-npm-package) for more info.
430
441
 
@@ -492,7 +503,6 @@ This provides 100% customizable opportunities and 100% ownership. It also relies
492
503
 
493
504
  - [.czrc](./.czrc) => [cz-git](https://github.com/Zhengqbbb/cz-git#readme)
494
505
  - [.husky/\*](./.husky/) => [Husky](https://typicode.github.io/husky/how-to.html)
495
- - [.nvmrc](./.nvmrc) => [nvm](https://github.com/nvm-sh/nvm#readme)
496
506
  - [prettier.config.js](./prettier.config.js) => [Prettier](https://prettier.io/docs/en/configuration.html)
497
507
  - [.storybook/\*](./.storybook/) => [Storybook](https://storybook.js.org/docs/get-started/setup)
498
508
  - [commitlint.config.mjs](./commitlint.config.mjs) => [commitlint](https://commitlint.js.org/reference/configuration.html)
@@ -507,7 +517,7 @@ This provides 100% customizable opportunities and 100% ownership. It also relies
507
517
  To create a production-ready build, you can run:
508
518
 
509
519
  ```sh
510
- npm run build
520
+ pnpm build
511
521
  ```
512
522
 
513
523
  This process inspects the [src/index.ts](./src/index.ts) file and pulls in only the necessary code. Packages listed under [package.json's](./package.json) `peerDependencies` will be ignored and left to the external implementations to install separately. This avoids redundancy and keeps file sizes down.
@@ -523,13 +533,13 @@ A `dist` folder will be created at the root of the project. This folder is ignor
523
533
 
524
534
  Before publishing, you want to make sure that external projects have access to expected components and intellisense/autocomplete still works.
525
535
 
526
- [npm link](https://docs.npmjs.com/cli/v9/commands/npm-link) can be flakey, so the alternative would be run [npm pack](https://docs.npmjs.com/cli/v9/commands/npm-pack) to create a local \*.tgz file in the library and install that file into the external project importing the library.
536
+ The recommended approach is to run [pnpm pack](https://pnpm.io/cli/pack) to create a local \*.tgz file in the library and install that file into the external project importing the library.
527
537
 
528
538
  0. (Optional): Update the library's `package.json` version number, **_but don't commit it_**. This step is automated with the correct next version number.
529
539
  1. From the library, run:
530
540
 
531
541
  ```sh
532
- npm run build && npm pack
542
+ pnpm build && pnpm pack
533
543
  ```
534
544
 
535
545
  2. Copy the name and location of the new `*.tgz` file that was created at the root of the library.
@@ -544,10 +554,10 @@ npm run build && npm pack
544
554
  5. From the external project, run:
545
555
 
546
556
  ```sh
547
- npm install
557
+ pnpm install
548
558
  ```
549
559
 
550
- 6. After testing for component behavior and availability, as well as intellisense/autocomplete and TypeScript prop validation, undo your package reference changes to `package.json` & `package-lock.json`. **_Do not commit them into your external project._**
560
+ 6. After testing for component behavior and availability, as well as intellisense/autocomplete and TypeScript prop validation, undo your package reference changes to `package.json` & `pnpm-lock.yaml`. **_Do not commit them into your external project._**
551
561
 
552
562
  ## Publishing an NPM Package
553
563