Convert React packages to ESM (#1650)

* react-base16-styling

* Use inline react-base16-styling themes

* Fix

* Format

* Fix

* Fixes

* Transform more

* react-json-tree

* Update lock

* Remove unnecessary

* react-dock

* Move to dep

* Lock

* Fix

* Fix

* Create tame-eagles-relax.md
This commit is contained in:
Nathan Bierema 2024-04-07 17:04:45 -04:00 committed by GitHub
parent 18cde73771
commit bbb1a40395
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
136 changed files with 1141 additions and 833 deletions

View File

@ -0,0 +1,7 @@
---
'react-base16-styling': major
'react-dock': major
'react-json-tree': major
---
Convert React packages to ESM

View File

@ -1,4 +1,4 @@
import { map2tree, Node } from '../src'; import { map2tree, Node } from '../src/index.js';
import * as immutable from 'immutable'; import * as immutable from 'immutable';
test('# rootNodeKey', () => { test('# rootNodeKey', () => {

View File

@ -1,7 +0,0 @@
{
"presets": [
["@babel/preset-env", { "targets": "defaults", "modules": false }],
"@babel/preset-typescript"
],
"plugins": ["@babel/plugin-transform-runtime"]
}

View File

@ -1,7 +0,0 @@
{
"presets": [
["@babel/preset-env", { "targets": "defaults" }],
"@babel/preset-typescript"
],
"plugins": ["@babel/plugin-transform-runtime"]
}

View File

@ -0,0 +1,10 @@
module.exports = {
testEnvironment: 'jsdom',
extensionsToTreatAsEsm: ['.ts'],
moduleNameMapper: {
'^(\\.{1,2}/.*)\\.js$': '$1',
},
transform: {
'^.+\\.ts$': ['ts-jest', { tsconfig: 'tsconfig.test.json', useESM: true }],
},
};

View File

@ -1,7 +0,0 @@
module.exports = {
preset: 'ts-jest',
testEnvironment: 'jsdom',
transform: {
'^.+\\.tsx?$': ['ts-jest', { tsconfig: 'tsconfig.test.json' }],
},
};

View File

@ -18,45 +18,33 @@
"lib", "lib",
"src" "src"
], ],
"main": "lib/cjs/index.js", "main": "lib/index.js",
"module": "lib/esm/index.js", "types": "lib/index.d.ts",
"types": "lib/types/index.d.ts", "type": "module",
"sideEffects": false, "sideEffects": false,
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://github.com/reduxjs/redux-devtools.git" "url": "git+https://github.com/reduxjs/redux-devtools.git"
}, },
"scripts": { "scripts": {
"build": "pnpm run build:cjs && pnpm run build:esm && pnpm run build:types", "build": "tsc",
"build:cjs": "babel src --extensions \".ts\" --out-dir lib/cjs",
"build:esm": "babel src --config-file ./babel.config.esm.json --extensions \".ts\" --out-dir lib/esm",
"build:types": "tsc --emitDeclarationOnly",
"clean": "rimraf lib", "clean": "rimraf lib",
"test": "jest", "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
"lint": "eslint . --ext .ts", "lint": "eslint . --ext .ts",
"type-check": "tsc --noEmit", "type-check": "tsc --noEmit",
"prepack": "pnpm run clean && pnpm run build", "prepack": "pnpm run clean && pnpm run build",
"prepublish": "pnpm run type-check && pnpm run lint && pnpm run test" "prepublish": "pnpm run lint && pnpm run test"
}, },
"dependencies": { "dependencies": {
"@babel/runtime": "^7.24.1",
"@types/base16": "^1.0.5",
"@types/lodash": "^4.17.0", "@types/lodash": "^4.17.0",
"base16": "^1.0.0",
"color": "^4.2.3", "color": "^4.2.3",
"csstype": "^3.1.3", "csstype": "^3.1.3",
"lodash.curry": "^4.1.1" "lodash-es": "^4.17.21"
}, },
"devDependencies": { "devDependencies": {
"@babel/cli": "^7.24.1",
"@babel/core": "^7.24.3",
"@babel/eslint-parser": "^7.24.1",
"@babel/plugin-transform-runtime": "^7.24.3",
"@babel/preset-env": "^7.24.3",
"@babel/preset-typescript": "^7.24.1",
"@types/color": "^3.0.6", "@types/color": "^3.0.6",
"@types/jest": "^29.5.12", "@types/jest": "^29.5.12",
"@types/lodash.curry": "^4.1.9", "@types/lodash-es": "^4.17.12",
"@typescript-eslint/eslint-plugin": "^7.4.0", "@typescript-eslint/eslint-plugin": "^7.4.0",
"@typescript-eslint/parser": "^7.4.0", "@typescript-eslint/parser": "^7.4.0",
"eslint": "^8.57.0", "eslint": "^8.57.0",

View File

@ -1,10 +1,8 @@
import * as base16 from 'base16';
import { Base16Theme } from 'base16';
import Color from 'color'; import Color from 'color';
import * as CSS from 'csstype'; import * as CSS from 'csstype';
import curry from 'lodash.curry'; import { curry } from 'lodash-es';
import type { CurriedFunction3 } from 'lodash'; import type { CurriedFunction3 } from 'lodash';
import { Color as ColorTuple, yuv2rgb, rgb2yuv } from './colorConverters'; import { Color as ColorTuple, yuv2rgb, rgb2yuv } from './colorConverters.js';
import { import {
Styling, Styling,
StylingConfig, StylingConfig,
@ -12,7 +10,9 @@ import {
StylingValue, StylingValue,
StylingValueFunction, StylingValueFunction,
Theme, Theme,
} from './types'; } from './types.js';
import { base16Themes as base16 } from './themes/index.js';
import type { Base16Theme } from './themes/index.js';
const DEFAULT_BASE16 = base16.default; const DEFAULT_BASE16 = base16.default;
@ -272,7 +272,7 @@ export const getBase16Theme = (
if (base16Themes) { if (base16Themes) {
theme = base16Themes[themeName]; theme = base16Themes[themeName];
} else { } else {
theme = base16[themeName as keyof typeof base16]; theme = base16[themeName as keyof typeof base16] as Base16Theme;
} }
if (modifier === 'inverted') { if (modifier === 'inverted') {
theme = invertBase16Theme(theme); theme = invertBase16Theme(theme);
@ -308,4 +308,5 @@ export const invertTheme = (theme: Theme | undefined): Theme | undefined => {
}; };
export type { Base16Theme }; export type { Base16Theme };
export * from './types'; export { base16 as base16Themes };
export * from './types.js';

View File

@ -0,0 +1,20 @@
export default {
scheme: 'apathy',
author: 'jannik siebert (https://github.com/janniks)',
base00: '#031A16',
base01: '#0B342D',
base02: '#184E45',
base03: '#2B685E',
base04: '#5F9C92',
base05: '#81B5AC',
base06: '#A7CEC8',
base07: '#D2E7E4',
base08: '#3E9688',
base09: '#3E7996',
base0A: '#3E4C96',
base0B: '#883E96',
base0C: '#963E4C',
base0D: '#96883E',
base0E: '#4C963E',
base0F: '#3E965B',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'ashes',
author: 'jannik siebert (https://github.com/janniks)',
base00: '#1C2023',
base01: '#393F45',
base02: '#565E65',
base03: '#747C84',
base04: '#ADB3BA',
base05: '#C7CCD1',
base06: '#DFE2E5',
base07: '#F3F4F5',
base08: '#C7AE95',
base09: '#C7C795',
base0A: '#AEC795',
base0B: '#95C7AE',
base0C: '#95AEC7',
base0D: '#AE95C7',
base0E: '#C795AE',
base0F: '#C79595',
};

View File

@ -0,0 +1,21 @@
export default {
scheme: 'atelier dune',
author:
'bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune)',
base00: '#20201d',
base01: '#292824',
base02: '#6e6b5e',
base03: '#7d7a68',
base04: '#999580',
base05: '#a6a28c',
base06: '#e8e4cf',
base07: '#fefbec',
base08: '#d73737',
base09: '#b65611',
base0A: '#cfb017',
base0B: '#60ac39',
base0C: '#1fad83',
base0D: '#6684e1',
base0E: '#b854d4',
base0F: '#d43552',
};

View File

@ -0,0 +1,21 @@
export default {
scheme: 'atelier forest',
author:
'bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest)',
base00: '#1b1918',
base01: '#2c2421',
base02: '#68615e',
base03: '#766e6b',
base04: '#9c9491',
base05: '#a8a19f',
base06: '#e6e2e0',
base07: '#f1efee',
base08: '#f22c40',
base09: '#df5320',
base0A: '#d5911a',
base0B: '#5ab738',
base0C: '#00ad9c',
base0D: '#407ee7',
base0E: '#6666ea',
base0F: '#c33ff3',
};

View File

@ -0,0 +1,21 @@
export default {
scheme: 'atelier heath',
author:
'bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath)',
base00: '#1b181b',
base01: '#292329',
base02: '#695d69',
base03: '#776977',
base04: '#9e8f9e',
base05: '#ab9bab',
base06: '#d8cad8',
base07: '#f7f3f7',
base08: '#ca402b',
base09: '#a65926',
base0A: '#bb8a35',
base0B: '#379a37',
base0C: '#159393',
base0D: '#516aec',
base0E: '#7b59c0',
base0F: '#cc33cc',
};

View File

@ -0,0 +1,21 @@
export default {
scheme: 'atelier lakeside',
author:
'bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside/)',
base00: '#161b1d',
base01: '#1f292e',
base02: '#516d7b',
base03: '#5a7b8c',
base04: '#7195a8',
base05: '#7ea2b4',
base06: '#c1e4f6',
base07: '#ebf8ff',
base08: '#d22d72',
base09: '#935c25',
base0A: '#8a8a0f',
base0B: '#568c3b',
base0C: '#2d8f6f',
base0D: '#257fad',
base0E: '#5d5db1',
base0F: '#b72dd2',
};

View File

@ -0,0 +1,21 @@
export default {
scheme: 'atelier seaside',
author:
'bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside/)',
base00: '#131513',
base01: '#242924',
base02: '#5e6e5e',
base03: '#687d68',
base04: '#809980',
base05: '#8ca68c',
base06: '#cfe8cf',
base07: '#f0fff0',
base08: '#e6193c',
base09: '#87711d',
base0A: '#c3c322',
base0B: '#29a329',
base0C: '#1999b3',
base0D: '#3d62f5',
base0E: '#ad2bee',
base0F: '#e619c3',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'bespin',
author: 'jan t. sott',
base00: '#28211c',
base01: '#36312e',
base02: '#5e5d5c',
base03: '#666666',
base04: '#797977',
base05: '#8a8986',
base06: '#9d9b97',
base07: '#baae9e',
base08: '#cf6a4c',
base09: '#cf7d34',
base0A: '#f9ee98',
base0B: '#54be0d',
base0C: '#afc4db',
base0D: '#5ea6ea',
base0E: '#9b859d',
base0F: '#937121',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'brewer',
author: 'timothée poisot (http://github.com/tpoisot)',
base00: '#0c0d0e',
base01: '#2e2f30',
base02: '#515253',
base03: '#737475',
base04: '#959697',
base05: '#b7b8b9',
base06: '#dadbdc',
base07: '#fcfdfe',
base08: '#e31a1c',
base09: '#e6550d',
base0A: '#dca060',
base0B: '#31a354',
base0C: '#80b1d3',
base0D: '#3182bd',
base0E: '#756bb1',
base0F: '#b15928',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'bright',
author: 'chris kempson (http://chriskempson.com)',
base00: '#000000',
base01: '#303030',
base02: '#505050',
base03: '#b0b0b0',
base04: '#d0d0d0',
base05: '#e0e0e0',
base06: '#f5f5f5',
base07: '#ffffff',
base08: '#fb0120',
base09: '#fc6d24',
base0A: '#fda331',
base0B: '#a1c659',
base0C: '#76c7b7',
base0D: '#6fb3d2',
base0E: '#d381c3',
base0F: '#be643c',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'chalk',
author: 'chris kempson (http://chriskempson.com)',
base00: '#151515',
base01: '#202020',
base02: '#303030',
base03: '#505050',
base04: '#b0b0b0',
base05: '#d0d0d0',
base06: '#e0e0e0',
base07: '#f5f5f5',
base08: '#fb9fb1',
base09: '#eda987',
base0A: '#ddb26f',
base0B: '#acc267',
base0C: '#12cfc0',
base0D: '#6fc2ef',
base0E: '#e1a3ee',
base0F: '#deaf8f',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'codeschool',
author: 'brettof86',
base00: '#232c31',
base01: '#1c3657',
base02: '#2a343a',
base03: '#3f4944',
base04: '#84898c',
base05: '#9ea7a6',
base06: '#a7cfa3',
base07: '#b5d8f6',
base08: '#2a5491',
base09: '#43820d',
base0A: '#a03b1e',
base0B: '#237986',
base0C: '#b02f30',
base0D: '#484d79',
base0E: '#c59820',
base0F: '#c98344',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'colors',
author: 'mrmrs (http://clrs.cc)',
base00: '#111111',
base01: '#333333',
base02: '#555555',
base03: '#777777',
base04: '#999999',
base05: '#bbbbbb',
base06: '#dddddd',
base07: '#ffffff',
base08: '#ff4136',
base09: '#ff851b',
base0A: '#ffdc00',
base0B: '#2ecc40',
base0C: '#7fdbff',
base0D: '#0074d9',
base0E: '#b10dc9',
base0F: '#85144b',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'default',
author: 'chris kempson (http://chriskempson.com)',
base00: '#181818',
base01: '#282828',
base02: '#383838',
base03: '#585858',
base04: '#b8b8b8',
base05: '#d8d8d8',
base06: '#e8e8e8',
base07: '#f8f8f8',
base08: '#ab4642',
base09: '#dc9656',
base0A: '#f7ca88',
base0B: '#a1b56c',
base0C: '#86c1b9',
base0D: '#7cafc2',
base0E: '#ba8baf',
base0F: '#a16946',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'eighties',
author: 'chris kempson (http://chriskempson.com)',
base00: '#2d2d2d',
base01: '#393939',
base02: '#515151',
base03: '#747369',
base04: '#a09f93',
base05: '#d3d0c8',
base06: '#e8e6df',
base07: '#f2f0ec',
base08: '#f2777a',
base09: '#f99157',
base0A: '#ffcc66',
base0B: '#99cc99',
base0C: '#66cccc',
base0D: '#6699cc',
base0E: '#cc99cc',
base0F: '#d27b53',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'embers',
author: 'jannik siebert (https://github.com/janniks)',
base00: '#16130F',
base01: '#2C2620',
base02: '#433B32',
base03: '#5A5047',
base04: '#8A8075',
base05: '#A39A90',
base06: '#BEB6AE',
base07: '#DBD6D1',
base08: '#826D57',
base09: '#828257',
base0A: '#6D8257',
base0B: '#57826D',
base0C: '#576D82',
base0D: '#6D5782',
base0E: '#82576D',
base0F: '#825757',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'flat',
author: 'chris kempson (http://chriskempson.com)',
base00: '#2C3E50',
base01: '#34495E',
base02: '#7F8C8D',
base03: '#95A5A6',
base04: '#BDC3C7',
base05: '#e0e0e0',
base06: '#f5f5f5',
base07: '#ECF0F1',
base08: '#E74C3C',
base09: '#E67E22',
base0A: '#F1C40F',
base0B: '#2ECC71',
base0C: '#1ABC9C',
base0D: '#3498DB',
base0E: '#9B59B6',
base0F: '#be643c',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'google',
author: 'seth wright (http://sethawright.com)',
base00: '#1d1f21',
base01: '#282a2e',
base02: '#373b41',
base03: '#969896',
base04: '#b4b7b4',
base05: '#c5c8c6',
base06: '#e0e0e0',
base07: '#ffffff',
base08: '#CC342B',
base09: '#F96A38',
base0A: '#FBA922',
base0B: '#198844',
base0C: '#3971ED',
base0D: '#3971ED',
base0E: '#A36AC7',
base0F: '#3971ED',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'grayscale',
author: 'alexandre gavioli (https://github.com/alexx2/)',
base00: '#101010',
base01: '#252525',
base02: '#464646',
base03: '#525252',
base04: '#ababab',
base05: '#b9b9b9',
base06: '#e3e3e3',
base07: '#f7f7f7',
base08: '#7c7c7c',
base09: '#999999',
base0A: '#a0a0a0',
base0B: '#8e8e8e',
base0C: '#868686',
base0D: '#686868',
base0E: '#747474',
base0F: '#5e5e5e',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'green screen',
author: 'chris kempson (http://chriskempson.com)',
base00: '#001100',
base01: '#003300',
base02: '#005500',
base03: '#007700',
base04: '#009900',
base05: '#00bb00',
base06: '#00dd00',
base07: '#00ff00',
base08: '#007700',
base09: '#009900',
base0A: '#007700',
base0B: '#00bb00',
base0C: '#005500',
base0D: '#009900',
base0E: '#00bb00',
base0F: '#005500',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'harmonic16',
author: 'jannik siebert (https://github.com/janniks)',
base00: '#0b1c2c',
base01: '#223b54',
base02: '#405c79',
base03: '#627e99',
base04: '#aabcce',
base05: '#cbd6e2',
base06: '#e5ebf1',
base07: '#f7f9fb',
base08: '#bf8b56',
base09: '#bfbf56',
base0A: '#8bbf56',
base0B: '#56bf8b',
base0C: '#568bbf',
base0D: '#8b56bf',
base0E: '#bf568b',
base0F: '#bf5656',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'hopscotch',
author: 'jan t. sott',
base00: '#322931',
base01: '#433b42',
base02: '#5c545b',
base03: '#797379',
base04: '#989498',
base05: '#b9b5b8',
base06: '#d5d3d5',
base07: '#ffffff',
base08: '#dd464c',
base09: '#fd8b19',
base0A: '#fdcc59',
base0B: '#8fc13e',
base0C: '#149b93',
base0D: '#1290bf',
base0E: '#c85e7c',
base0F: '#b33508',
};

View File

@ -0,0 +1,100 @@
import { default as threezerotwofour } from './threezerotwofour.js';
import { default as apathy } from './apathy.js';
import { default as ashes } from './ashes.js';
import { default as atelierDune } from './atelier-dune.js';
import { default as atelierForest } from './atelier-forest.js';
import { default as atelierHeath } from './atelier-heath.js';
import { default as atelierLakeside } from './atelier-lakeside.js';
import { default as atelierSeaside } from './atelier-seaside.js';
import { default as bespin } from './bespin.js';
import { default as brewer } from './brewer.js';
import { default as bright } from './bright.js';
import { default as chalk } from './chalk.js';
import { default as codeschool } from './codeschool.js';
import { default as colors } from './colors.js';
import { default as defaultTheme } from './default.js';
import { default as eighties } from './eighties.js';
import { default as embers } from './embers.js';
import { default as flat } from './flat.js';
import { default as google } from './google.js';
import { default as grayscale } from './grayscale.js';
import { default as greenscreen } from './greenscreen.js';
import { default as harmonic } from './harmonic.js';
import { default as hopscotch } from './hopscotch.js';
import { default as isotope } from './isotope.js';
import { default as marrakesh } from './marrakesh.js';
import { default as mocha } from './mocha.js';
import { default as monokai } from './monokai.js';
import { default as nicinabox } from './nicinabox.js';
import { default as ocean } from './ocean.js';
import { default as paraiso } from './paraiso.js';
import { default as pop } from './pop.js';
import { default as railscasts } from './railscasts.js';
import { default as shapeshifter } from './shapeshifter.js';
import { default as solarized } from './solarized.js';
import { default as summerfruit } from './summerfruit.js';
import { default as tomorrow } from './tomorrow.js';
import { default as tube } from './tube.js';
import { default as twilight } from './twilight.js';
export interface Base16Theme {
scheme: string;
author: string;
base00: string;
base01: string;
base02: string;
base03: string;
base04: string;
base05: string;
base06: string;
base07: string;
base08: string;
base09: string;
base0A: string;
base0B: string;
base0C: string;
base0D: string;
base0E: string;
base0F: string;
}
export const base16Themes = {
threezerotwofour,
apathy,
ashes,
atelierDune,
atelierForest,
atelierHeath,
atelierLakeside,
atelierSeaside,
bespin,
brewer,
bright,
chalk,
codeschool,
colors,
default: defaultTheme,
eighties,
embers,
flat,
google,
grayscale,
greenscreen,
harmonic,
hopscotch,
isotope,
marrakesh,
mocha,
monokai,
nicinabox,
ocean,
paraiso,
pop,
railscasts,
shapeshifter,
solarized,
summerfruit,
tomorrow,
tube,
twilight,
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'isotope',
author: 'jan t. sott',
base00: '#000000',
base01: '#404040',
base02: '#606060',
base03: '#808080',
base04: '#c0c0c0',
base05: '#d0d0d0',
base06: '#e0e0e0',
base07: '#ffffff',
base08: '#ff0000',
base09: '#ff9900',
base0A: '#ff0099',
base0B: '#33ff00',
base0C: '#00ffff',
base0D: '#0066ff',
base0E: '#cc00ff',
base0F: '#3300ff',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'marrakesh',
author: 'alexandre gavioli (http://github.com/alexx2/)',
base00: '#201602',
base01: '#302e00',
base02: '#5f5b17',
base03: '#6c6823',
base04: '#86813b',
base05: '#948e48',
base06: '#ccc37a',
base07: '#faf0a5',
base08: '#c35359',
base09: '#b36144',
base0A: '#a88339',
base0B: '#18974e',
base0C: '#75a738',
base0D: '#477ca1',
base0E: '#8868b3',
base0F: '#b3588e',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'mocha',
author: 'chris kempson (http://chriskempson.com)',
base00: '#3B3228',
base01: '#534636',
base02: '#645240',
base03: '#7e705a',
base04: '#b8afad',
base05: '#d0c8c6',
base06: '#e9e1dd',
base07: '#f5eeeb',
base08: '#cb6077',
base09: '#d28b71',
base0A: '#f4bc87',
base0B: '#beb55b',
base0C: '#7bbda4',
base0D: '#8ab3b5',
base0E: '#a89bb9',
base0F: '#bb9584',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'monokai',
author: 'wimer hazenberg (http://www.monokai.nl)',
base00: '#272822',
base01: '#383830',
base02: '#49483e',
base03: '#75715e',
base04: '#a59f85',
base05: '#f8f8f2',
base06: '#f5f4f1',
base07: '#f9f8f5',
base08: '#f92672',
base09: '#fd971f',
base0A: '#f4bf75',
base0B: '#a6e22e',
base0C: '#a1efe4',
base0D: '#66d9ef',
base0E: '#ae81ff',
base0F: '#cc6633',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'nicinabox',
author: 'nicinabox (http://github.com/nicinabox)',
base00: '#2A2F3A',
base01: '#3C444F',
base02: '#4F5A65',
base03: '#BEBEBE',
base04: '#b0b0b0', // based on ocean theme
base05: '#d0d0d0', // based on ocean theme
base06: '#FFFFFF',
base07: '#f5f5f5', // based on ocean theme
base08: '#fb9fb1', // based on ocean theme
base09: '#FC6D24',
base0A: '#ddb26f', // based on ocean theme
base0B: '#A1C659',
base0C: '#12cfc0', // based on ocean theme
base0D: '#6FB3D2',
base0E: '#D381C3',
base0F: '#deaf8f', // based on ocean theme
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'ocean',
author: 'chris kempson (http://chriskempson.com)',
base00: '#2b303b',
base01: '#343d46',
base02: '#4f5b66',
base03: '#65737e',
base04: '#a7adba',
base05: '#c0c5ce',
base06: '#dfe1e8',
base07: '#eff1f5',
base08: '#bf616a',
base09: '#d08770',
base0A: '#ebcb8b',
base0B: '#a3be8c',
base0C: '#96b5b4',
base0D: '#8fa1b3',
base0E: '#b48ead',
base0F: '#ab7967',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'paraiso',
author: 'jan t. sott',
base00: '#2f1e2e',
base01: '#41323f',
base02: '#4f424c',
base03: '#776e71',
base04: '#8d8687',
base05: '#a39e9b',
base06: '#b9b6b0',
base07: '#e7e9db',
base08: '#ef6155',
base09: '#f99b15',
base0A: '#fec418',
base0B: '#48b685',
base0C: '#5bc4bf',
base0D: '#06b6ef',
base0E: '#815ba4',
base0F: '#e96ba8',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'pop',
author: 'chris kempson (http://chriskempson.com)',
base00: '#000000',
base01: '#202020',
base02: '#303030',
base03: '#505050',
base04: '#b0b0b0',
base05: '#d0d0d0',
base06: '#e0e0e0',
base07: '#ffffff',
base08: '#eb008a',
base09: '#f29333',
base0A: '#f8ca12',
base0B: '#37b349',
base0C: '#00aabb',
base0D: '#0e5a94',
base0E: '#b31e8d',
base0F: '#7a2d00',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'railscasts',
author: 'ryan bates (http://railscasts.com)',
base00: '#2b2b2b',
base01: '#272935',
base02: '#3a4055',
base03: '#5a647e',
base04: '#d4cfc9',
base05: '#e6e1dc',
base06: '#f4f1ed',
base07: '#f9f7f3',
base08: '#da4939',
base09: '#cc7833',
base0A: '#ffc66d',
base0B: '#a5c261',
base0C: '#519f50',
base0D: '#6d9cbe',
base0E: '#b6b3eb',
base0F: '#bc9458',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'shapeshifter',
author: 'tyler benziger (http://tybenz.com)',
base00: '#000000',
base01: '#040404',
base02: '#102015',
base03: '#343434',
base04: '#555555',
base05: '#ababab',
base06: '#e0e0e0',
base07: '#f9f9f9',
base08: '#e92f2f',
base09: '#e09448',
base0A: '#dddd13',
base0B: '#0ed839',
base0C: '#23edda',
base0D: '#3b48e3',
base0E: '#f996e2',
base0F: '#69542d',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'solarized',
author: 'ethan schoonover (http://ethanschoonover.com/solarized)',
base00: '#002b36',
base01: '#073642',
base02: '#586e75',
base03: '#657b83',
base04: '#839496',
base05: '#93a1a1',
base06: '#eee8d5',
base07: '#fdf6e3',
base08: '#dc322f',
base09: '#cb4b16',
base0A: '#b58900',
base0B: '#859900',
base0C: '#2aa198',
base0D: '#268bd2',
base0E: '#6c71c4',
base0F: '#d33682',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'summerfruit',
author: 'christopher corley (http://cscorley.github.io/)',
base00: '#151515',
base01: '#202020',
base02: '#303030',
base03: '#505050',
base04: '#B0B0B0',
base05: '#D0D0D0',
base06: '#E0E0E0',
base07: '#FFFFFF',
base08: '#FF0086',
base09: '#FD8900',
base0A: '#ABA800',
base0B: '#00C918',
base0C: '#1faaaa',
base0D: '#3777E6',
base0E: '#AD00A1',
base0F: '#cc6633',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'threezerotwofour',
author: 'jan t. sott (http://github.com/idleberg)',
base00: '#090300',
base01: '#3a3432',
base02: '#4a4543',
base03: '#5c5855',
base04: '#807d7c',
base05: '#a5a2a2',
base06: '#d6d5d4',
base07: '#f7f7f7',
base08: '#db2d20',
base09: '#e8bbd0',
base0A: '#fded02',
base0B: '#01a252',
base0C: '#b5e4f4',
base0D: '#01a0e4',
base0E: '#a16a94',
base0F: '#cdab53',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'tomorrow',
author: 'chris kempson (http://chriskempson.com)',
base00: '#1d1f21',
base01: '#282a2e',
base02: '#373b41',
base03: '#969896',
base04: '#b4b7b4',
base05: '#c5c8c6',
base06: '#e0e0e0',
base07: '#ffffff',
base08: '#cc6666',
base09: '#de935f',
base0A: '#f0c674',
base0B: '#b5bd68',
base0C: '#8abeb7',
base0D: '#81a2be',
base0E: '#b294bb',
base0F: '#a3685a',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'london tube',
author: 'jan t. sott',
base00: '#231f20',
base01: '#1c3f95',
base02: '#5a5758',
base03: '#737171',
base04: '#959ca1',
base05: '#d9d8d8',
base06: '#e7e7e8',
base07: '#ffffff',
base08: '#ee2e24',
base09: '#f386a1',
base0A: '#ffd204',
base0B: '#00853e',
base0C: '#85cebc',
base0D: '#009ddc',
base0E: '#98005d',
base0F: '#b06110',
};

View File

@ -0,0 +1,20 @@
export default {
scheme: 'twilight',
author: 'david hart (http://hart-dev.com)',
base00: '#1e1e1e',
base01: '#323537',
base02: '#464b50',
base03: '#5f5a60',
base04: '#838184',
base05: '#a7a7a7',
base06: '#c3c3c3',
base07: '#ffffff',
base08: '#cf6a4c',
base09: '#cda869',
base0A: '#f9ee98',
base0B: '#8f9d6a',
base0C: '#afc4db',
base0D: '#7587a6',
base0E: '#9b859d',
base0F: '#9b703f',
};

View File

@ -1,5 +1,5 @@
import { Base16Theme } from 'base16';
import * as CSS from 'csstype'; import * as CSS from 'csstype';
import type { Base16Theme } from './themes/index.js';
export interface Styling { export interface Styling {
className?: string; className?: string;

View File

@ -1,6 +1,10 @@
import { createStyling, invertBase16Theme, getBase16Theme } from '../src'; import {
import { apathy, Base16Theme } from 'base16'; createStyling,
import { Styling, StylingConfig } from '../src/types'; invertBase16Theme,
getBase16Theme,
} from '../src/index.js';
import { base16Themes, Base16Theme } from '../src/themes/index.js';
import { Styling, StylingConfig } from '../src/types.js';
const base16Theme = { const base16Theme = {
scheme: 'myscheme', scheme: 'myscheme',
@ -94,34 +98,34 @@ test('invertTheme', () => {
}); });
test('getBase16Theme', () => { test('getBase16Theme', () => {
expect(getBase16Theme('apathy')).toEqual(apathy); expect(getBase16Theme('apathy')).toEqual(base16Themes.apathy);
expect(getBase16Theme({ extend: 'apathy' })).toEqual(apathy); expect(getBase16Theme({ extend: 'apathy' })).toEqual(base16Themes.apathy);
expect(getBase16Theme('apathy:inverted')).toEqual(apathyInverted); expect(getBase16Theme('apathy:inverted')).toEqual(apathyInverted);
expect(getBase16Theme({})).toBeUndefined(); expect(getBase16Theme({})).toBeUndefined();
}); });
test('createStyling (default)', () => { test('createStyling (default)', () => {
const styling = createStyling(getStylingFromBase16, { const styling = createStyling(getStylingFromBase16, {
defaultBase16: apathy, defaultBase16: base16Themes.apathy,
}); });
const defaultStyling = styling(undefined); const defaultStyling = styling(undefined);
expect(defaultStyling('testClass')).toEqual({ className: 'testClass' }); expect(defaultStyling('testClass')).toEqual({ className: 'testClass' });
expect(defaultStyling('testStyle')).toEqual({ expect(defaultStyling('testStyle')).toEqual({
style: { color: apathy.base00 }, style: { color: base16Themes.apathy.base00 },
}); });
expect(defaultStyling('testFunc', 'mod')).toEqual({ expect(defaultStyling('testFunc', 'mod')).toEqual({
className: 'testClass--mod', className: 'testClass--mod',
style: { style: {
width: 0, width: 0,
color: apathy.base00, color: base16Themes.apathy.base00,
}, },
}); });
}); });
test('createStyling (custom)', () => { test('createStyling (custom)', () => {
const styling = createStyling(getStylingFromBase16, { const styling = createStyling(getStylingFromBase16, {
defaultBase16: apathy, defaultBase16: base16Themes.apathy,
}); });
let customStyling = styling({ let customStyling = styling({
testClass: 'customClass', testClass: 'customClass',
@ -146,13 +150,13 @@ test('createStyling (custom)', () => {
className: 'testClass customClass', className: 'testClass customClass',
}); });
expect(customStyling('testStyle')).toEqual({ expect(customStyling('testStyle')).toEqual({
style: { color: apathy.base00, height: 0 }, style: { color: base16Themes.apathy.base00, height: 0 },
}); });
expect(customStyling('testFunc', 'mod')).toEqual({ expect(customStyling('testFunc', 'mod')).toEqual({
className: 'testClass--mod customClass--mod', className: 'testClass--mod customClass--mod',
style: { style: {
width: 0, width: 0,
color: apathy.base00, color: base16Themes.apathy.base00,
border: 0, border: 0,
}, },
}); });
@ -180,7 +184,7 @@ test('createStyling (custom)', () => {
test('createStyling (multiple)', () => { test('createStyling (multiple)', () => {
const styling = createStyling(getStylingFromBase16, { const styling = createStyling(getStylingFromBase16, {
defaultBase16: apathy, defaultBase16: base16Themes.apathy,
}); });
let customStyling = styling({ let customStyling = styling({
baseStyle: ({ style }) => ({ style: { ...style, color: 'blue' } }), baseStyle: ({ style }) => ({ style: { ...style, color: 'blue' } }),

View File

@ -1,7 +1,7 @@
{ {
"extends": "../../tsconfig.base.json", "extends": "../../tsconfig.esm.base.json",
"compilerOptions": { "compilerOptions": {
"outDir": "lib/types" "outDir": "lib"
}, },
"include": ["src"] "include": ["src"]
} }

View File

@ -1,5 +1,5 @@
{ {
"extends": "../../tsconfig.base.json", "extends": "../../tsconfig.esm.base.json",
"compilerOptions": { "compilerOptions": {
"types": ["jest"] "types": ["jest"]
}, },

View File

@ -1,8 +0,0 @@
{
"presets": [
["@babel/preset-env", { "targets": "defaults", "modules": false }],
"@babel/preset-react",
"@babel/preset-typescript"
],
"plugins": ["@babel/plugin-transform-runtime"]
}

View File

@ -1,8 +0,0 @@
{
"presets": [
["@babel/preset-env", { "targets": "defaults" }],
"@babel/preset-react",
"@babel/preset-typescript"
],
"plugins": ["@babel/plugin-transform-runtime"]
}

View File

@ -4,7 +4,7 @@ import Form from 'react-bootstrap/Form';
import { BsX } from 'react-icons/bs'; import { BsX } from 'react-icons/bs';
import styled from 'styled-components'; import styled from 'styled-components';
import Dock from '../../src/Dock'; import { Dock } from 'react-dock';
const Root = styled.div` const Root = styled.div`
font-size: 16px; font-size: 16px;

View File

@ -0,0 +1,13 @@
module.exports = {
testEnvironment: 'jsdom',
extensionsToTreatAsEsm: ['.ts', '.tsx'],
moduleNameMapper: {
'^(\\.{1,2}/.*)\\.js$': '$1',
},
transform: {
'^.+\\.tsx?$': [
'ts-jest',
{ tsconfig: 'tsconfig.test.json', useESM: true },
],
},
};

View File

@ -1,7 +0,0 @@
module.exports = {
preset: 'ts-jest',
testEnvironment: 'jsdom',
transform: {
'^.+\\.tsx?$': ['ts-jest', { tsconfig: 'tsconfig.test.json' }],
},
};

View File

@ -18,41 +18,29 @@
"lib", "lib",
"src" "src"
], ],
"main": "lib/cjs/index.js", "main": "lib/index.js",
"module": "lib/esm/index.js", "types": "lib/index.d.ts",
"types": "lib/types/index.d.ts", "type": "module",
"sideEffects": false, "sideEffects": false,
"repository": { "repository": {
"type": "git", "type": "git",
"url": "https://github.com/reduxjs/redux-devtools.git" "url": "https://github.com/reduxjs/redux-devtools.git"
}, },
"scripts": { "scripts": {
"build": "pnpm run build:cjs && pnpm run build:esm && pnpm run build:types", "build": "tsc",
"build:cjs": "babel src --extensions \".ts,.tsx\" --out-dir lib/cjs",
"build:esm": "babel src --config-file ./babel.config.esm.json --extensions \".ts,.tsx\" --out-dir lib/esm",
"build:types": "tsc --emitDeclarationOnly",
"clean": "rimraf lib", "clean": "rimraf lib",
"test": "jest", "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
"lint": "eslint . --ext .ts,.tsx", "lint": "eslint . --ext .ts,.tsx",
"type-check": "tsc --noEmit", "type-check": "tsc --noEmit",
"prepack": "pnpm run clean && pnpm run build", "prepack": "pnpm run clean && pnpm run build",
"prepublish": "pnpm run type-check && pnpm run lint && pnpm run test" "prepublish": "pnpm run lint && pnpm run test"
}, },
"dependencies": { "dependencies": {
"@babel/runtime": "^7.24.1", "@types/lodash-es": "^4.17.12",
"@types/lodash": "^4.17.0", "lodash-es": "^4.17.21"
"lodash.debounce": "^4.0.8"
}, },
"devDependencies": { "devDependencies": {
"@babel/cli": "^7.24.1",
"@babel/core": "^7.24.3",
"@babel/eslint-parser": "^7.24.1",
"@babel/plugin-transform-runtime": "^7.24.3",
"@babel/preset-env": "^7.24.3",
"@babel/preset-react": "^7.24.1",
"@babel/preset-typescript": "^7.24.1",
"@types/jest": "^29.5.12", "@types/jest": "^29.5.12",
"@types/lodash.debounce": "^4.0.9",
"@types/react": "^18.2.72", "@types/react": "^18.2.72",
"@types/react-test-renderer": "^18.0.7", "@types/react-test-renderer": "^18.0.7",
"@typescript-eslint/eslint-plugin": "^7.4.0", "@typescript-eslint/eslint-plugin": "^7.4.0",

View File

@ -1,7 +1,7 @@
import React, { Component, ReactNode } from 'react'; import React, { Component, ReactNode } from 'react';
import debounce from 'lodash.debounce'; import { debounce } from 'lodash-es';
import type { DebouncedFunc } from 'lodash'; import type { DebouncedFunc } from 'lodash-es';
import autoprefix from './autoprefix'; import autoprefix from './autoprefix.js';
interface Styles { interface Styles {
[key: string]: React.CSSProperties; [key: string]: React.CSSProperties;

View File

@ -1 +1 @@
export { default as Dock } from './Dock'; export { default as Dock } from './Dock.js';

View File

@ -1,10 +1,10 @@
import React from 'react'; import React from 'react';
import { createRenderer } from 'react-test-renderer/shallow'; import TestRenderer from 'react-test-renderer/shallow';
import Dock from '../src/Dock'; import Dock from '../src/Dock.js';
describe('Dock component', function () { describe('Dock component', function () {
it('should have shallow rendering', function () { it('should have shallow rendering', function () {
const renderer = createRenderer(); const renderer = TestRenderer.createRenderer();
const DockEl = <Dock />; const DockEl = <Dock />;
renderer.render(DockEl); renderer.render(DockEl);

View File

@ -1,7 +1,7 @@
{ {
"extends": "../../tsconfig.react.base.json", "extends": "../../tsconfig.esm.react.base.json",
"compilerOptions": { "compilerOptions": {
"outDir": "lib/types" "outDir": "lib"
}, },
"include": ["src"] "include": ["src"]
} }

View File

@ -1,5 +1,5 @@
{ {
"extends": "../../tsconfig.react.base.json", "extends": "../../tsconfig.esm.react.base.json",
"compilerOptions": { "compilerOptions": {
"types": ["jest"] "types": ["jest"]
}, },

View File

@ -1,8 +0,0 @@
{
"presets": [
["@babel/preset-env", { "targets": "defaults", "modules": false }],
"@babel/preset-react",
"@babel/preset-typescript"
],
"plugins": ["@babel/plugin-transform-runtime"]
}

View File

@ -1,8 +0,0 @@
{
"presets": [
["@babel/preset-env", { "targets": "defaults" }],
"@babel/preset-react",
"@babel/preset-typescript"
],
"plugins": ["@babel/plugin-transform-runtime"]
}

View File

@ -0,0 +1,12 @@
module.exports = {
extensionsToTreatAsEsm: ['.ts', '.tsx'],
moduleNameMapper: {
'^(\\.{1,2}/.*)\\.js$': '$1',
},
transform: {
'^.+\\.tsx?$': [
'ts-jest',
{ tsconfig: 'tsconfig.test.json', useESM: true },
],
},
};

View File

@ -1,6 +0,0 @@
module.exports = {
preset: 'ts-jest',
transform: {
'^.+\\.tsx?$': ['ts-jest', { tsconfig: 'tsconfig.test.json' }],
},
};

View File

@ -22,47 +22,29 @@
"lib", "lib",
"src" "src"
], ],
"main": "lib/cjs/index.js", "main": "lib/index.js",
"module": "lib/esm/index.js", "types": "lib/index.d.ts",
"types": "lib/types/index.d.ts", "type": "module",
"unpkg": "lib/umd/react-json-tree.umd.js",
"sideEffects": false, "sideEffects": false,
"repository": { "repository": {
"type": "git", "type": "git",
"url": "https://github.com/reduxjs/redux-devtools.git" "url": "https://github.com/reduxjs/redux-devtools.git"
}, },
"scripts": { "scripts": {
"build": "pnpm run build:cjs && pnpm run build:esm && pnpm run build:types && pnpm run build:umd", "build": "tsc",
"build:cjs": "babel src --extensions \".ts,.tsx\" --out-dir lib/cjs",
"build:esm": "babel src --config-file ./babel.config.esm.json --extensions \".ts,.tsx\" --out-dir lib/esm",
"build:types": "tsc --emitDeclarationOnly",
"build:umd": "rollup -c",
"clean": "rimraf lib", "clean": "rimraf lib",
"test": "jest", "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
"lint": "eslint . --ext .ts,.tsx", "lint": "eslint . --ext .ts,.tsx",
"type-check": "tsc --noEmit", "type-check": "tsc --noEmit",
"prepack": "pnpm run clean && pnpm run build", "prepack": "pnpm run clean && pnpm run build",
"prepublish": "pnpm run type-check && pnpm run lint && pnpm run test" "prepublish": "pnpm run lint && pnpm run test"
}, },
"dependencies": { "dependencies": {
"@babel/runtime": "^7.24.1",
"@types/lodash": "^4.17.0", "@types/lodash": "^4.17.0",
"react-base16-styling": "^0.9.1" "react-base16-styling": "^0.9.1"
}, },
"devDependencies": { "devDependencies": {
"@babel/cli": "^7.24.1",
"@babel/core": "^7.24.3",
"@babel/eslint-parser": "^7.24.1",
"@babel/plugin-transform-runtime": "^7.24.3",
"@babel/preset-env": "^7.24.3",
"@babel/preset-react": "^7.24.1",
"@babel/preset-typescript": "^7.24.1",
"@rollup/plugin-babel": "^6.0.4",
"@rollup/plugin-commonjs": "^25.0.7",
"@rollup/plugin-node-resolve": "^15.2.3",
"@rollup/plugin-terser": "^0.4.4",
"@types/jest": "^29.5.12", "@types/jest": "^29.5.12",
"@types/node": "^20.11.30",
"@types/react": "^18.2.72", "@types/react": "^18.2.72",
"@types/react-test-renderer": "^18.0.7", "@types/react-test-renderer": "^18.0.7",
"@typescript-eslint/eslint-plugin": "^7.4.0", "@typescript-eslint/eslint-plugin": "^7.4.0",
@ -76,10 +58,7 @@
"react": "^18.2.0", "react": "^18.2.0",
"react-test-renderer": "^18.2.0", "react-test-renderer": "^18.2.0",
"rimraf": "^5.0.5", "rimraf": "^5.0.5",
"rollup": "^4.13.0",
"rollup-plugin-typescript2": "^0.36.0",
"ts-jest": "^29.1.2", "ts-jest": "^29.1.2",
"tslib": "^2.6.2",
"typescript": "~5.3.3" "typescript": "~5.3.3"
}, },
"peerDependencies": { "peerDependencies": {

View File

@ -1,59 +0,0 @@
import typescript from 'rollup-plugin-typescript2';
import resolve from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';
import babel from '@rollup/plugin-babel';
import terser from '@rollup/plugin-terser';
const config = [
{
input: 'src/index.tsx',
output: {
name: 'ReactJsonTree',
file: 'lib/umd/react-json-tree.js',
format: 'umd',
globals: {
react: 'React',
},
},
plugins: [
typescript({
tsconfigOverride: { compilerOptions: { declaration: false } },
}),
resolve(),
commonjs(),
babel({
babelHelpers: 'runtime',
extensions: ['.ts', '.tsx'],
plugins: ['@babel/plugin-transform-runtime'],
}),
],
external: ['react'],
},
{
input: 'src/index.tsx',
output: {
name: 'ReactJsonTree',
file: 'lib/umd/react-json-tree.min.js',
format: 'umd',
globals: {
react: 'React',
},
},
plugins: [
typescript({
tsconfigOverride: { compilerOptions: { declaration: false } },
}),
resolve(),
commonjs(),
babel({
babelHelpers: 'runtime',
extensions: ['.ts', '.tsx'],
plugins: ['@babel/plugin-transform-runtime'],
}),
terser(),
],
external: ['react'],
},
];
export default config;

View File

@ -1,6 +1,6 @@
import React, { useCallback, useState } from 'react'; import React, { useCallback, useState } from 'react';
import JSONArrow from './JSONArrow'; import JSONArrow from './JSONArrow.js';
import type { CircularCache, CommonInternalProps } from './types'; import type { CircularCache, CommonInternalProps } from './types.js';
interface Props extends CommonInternalProps { interface Props extends CommonInternalProps {
data: unknown; data: unknown;

View File

@ -1,6 +1,6 @@
import React from 'react'; import React from 'react';
import JSONNestedNode from './JSONNestedNode'; import JSONNestedNode from './JSONNestedNode.js';
import type { CommonInternalProps } from './types'; import type { CommonInternalProps } from './types.js';
// Returns the "n Items" string for this node, // Returns the "n Items" string for this node,
// generating and caching it if it hasn't been created yet. // generating and caching it if it hasn't been created yet.

View File

@ -1,6 +1,6 @@
import React from 'react'; import React from 'react';
import JSONNestedNode from './JSONNestedNode'; import JSONNestedNode from './JSONNestedNode.js';
import type { CommonInternalProps } from './types'; import type { CommonInternalProps } from './types.js';
// Returns the "n Items" string for this node, // Returns the "n Items" string for this node,
// generating and caching it if it hasn't been created yet. // generating and caching it if it hasn't been created yet.

View File

@ -1,9 +1,9 @@
import React, { useCallback, useState } from 'react'; import React, { useCallback, useState } from 'react';
import JSONArrow from './JSONArrow'; import JSONArrow from './JSONArrow.js';
import getCollectionEntries from './getCollectionEntries'; import getCollectionEntries from './getCollectionEntries.js';
import JSONNode from './JSONNode'; import JSONNode from './JSONNode.js';
import ItemRange from './ItemRange'; import ItemRange from './ItemRange.js';
import type { CircularCache, CommonInternalProps } from './types'; import type { CircularCache, CommonInternalProps } from './types.js';
/** /**
* Renders nested values (eg. objects, arrays, lists, etc.) * Renders nested values (eg. objects, arrays, lists, etc.)

View File

@ -1,10 +1,10 @@
import React from 'react'; import React from 'react';
import objType from './objType'; import objType from './objType.js';
import JSONObjectNode from './JSONObjectNode'; import JSONObjectNode from './JSONObjectNode.js';
import JSONArrayNode from './JSONArrayNode'; import JSONArrayNode from './JSONArrayNode.js';
import JSONIterableNode from './JSONIterableNode'; import JSONIterableNode from './JSONIterableNode.js';
import JSONValueNode from './JSONValueNode'; import JSONValueNode from './JSONValueNode.js';
import type { CommonInternalProps } from './types'; import type { CommonInternalProps } from './types.js';
interface Props extends CommonInternalProps { interface Props extends CommonInternalProps {
value: unknown; value: unknown;

View File

@ -1,6 +1,6 @@
import React from 'react'; import React from 'react';
import JSONNestedNode from './JSONNestedNode'; import JSONNestedNode from './JSONNestedNode.js';
import type { CommonInternalProps } from './types'; import type { CommonInternalProps } from './types.js';
// Returns the "n Items" string for this node, // Returns the "n Items" string for this node,
// generating and caching it if it hasn't been created yet. // generating and caching it if it hasn't been created yet.

View File

@ -6,7 +6,7 @@ import type {
LabelRenderer, LabelRenderer,
Styling, Styling,
ValueRenderer, ValueRenderer,
} from './types'; } from './types.js';
/** /**
* Renders simple values (eg. strings, numbers, booleans, etc) * Renders simple values (eg. strings, numbers, booleans, etc)

View File

@ -6,7 +6,7 @@ import type {
StylingFunction, StylingFunction,
Theme, Theme,
} from 'react-base16-styling'; } from 'react-base16-styling';
import solarized from './themes/solarized'; import solarized from './themes/solarized.js';
const colorMap = (theme: Base16Theme) => ({ const colorMap = (theme: Base16Theme) => ({
BACKGROUND_COLOR: theme.base00, BACKGROUND_COLOR: theme.base00,

View File

@ -1,4 +1,4 @@
import type { SortObjectKeys } from './types'; import type { SortObjectKeys } from './types.js';
function getLength(type: string, collection: unknown) { function getLength(type: string, collection: unknown) {
if (type === 'Object') { if (type === 'Object') {

View File

@ -4,17 +4,17 @@
// port by Daniele Zannotti http://www.github.com/dzannotti <dzannotti@me.com> // port by Daniele Zannotti http://www.github.com/dzannotti <dzannotti@me.com>
import React, { useMemo } from 'react'; import React, { useMemo } from 'react';
import JSONNode from './JSONNode';
import createStylingFromTheme from './createStylingFromTheme';
import { invertTheme } from 'react-base16-styling'; import { invertTheme } from 'react-base16-styling';
import type { StylingValue, Theme } from 'react-base16-styling'; import type { StylingValue, Theme } from 'react-base16-styling';
import JSONNode from './JSONNode.js';
import createStylingFromTheme from './createStylingFromTheme.js';
import type { import type {
CommonExternalProps, CommonExternalProps,
GetItemString, GetItemString,
IsCustomNode, IsCustomNode,
LabelRenderer, LabelRenderer,
ShouldExpandNodeInitially, ShouldExpandNodeInitially,
} from './types'; } from './types.js';
interface Props extends Partial<CommonExternalProps> { interface Props extends Partial<CommonExternalProps> {
data: unknown; data: unknown;
@ -86,5 +86,5 @@ export type {
SortObjectKeys, SortObjectKeys,
Styling, Styling,
CommonExternalProps, CommonExternalProps,
} from './types'; } from './types.js';
export type { StylingValue }; export type { StylingValue };

View File

@ -1,13 +1,13 @@
import React from 'react'; import React from 'react';
import { createRenderer } from 'react-test-renderer/shallow'; import TestRenderer from 'react-test-renderer/shallow';
import { JSONTree } from '../src/index'; import { JSONTree } from '../src/index.js';
import JSONNode from '../src/JSONNode'; import JSONNode from '../src/JSONNode.js';
const BASIC_DATA = { a: 1, b: 'c' }; const BASIC_DATA = { a: 1, b: 'c' };
function render(component: React.ReactElement) { function render(component: React.ReactElement) {
const renderer = createRenderer(); const renderer = TestRenderer.createRenderer();
renderer.render(component); renderer.render(component);
return renderer.getRenderOutput(); return renderer.getRenderOutput();
} }

View File

@ -1,4 +1,4 @@
import objType from '../src/objType'; import objType from '../src/objType.js';
describe('objType', () => { describe('objType', () => {
it('should determine the correct type', () => { it('should determine the correct type', () => {

View File

@ -1,7 +1,7 @@
{ {
"extends": "../../tsconfig.react.base.json", "extends": "../../tsconfig.esm.react.base.json",
"compilerOptions": { "compilerOptions": {
"outDir": "lib/types" "outDir": "lib"
}, },
"include": ["src"] "include": ["src"]
} }

View File

@ -1,5 +1,5 @@
{ {
"extends": "../../tsconfig.react.base.json", "extends": "../../tsconfig.esm.react.base.json",
"compilerOptions": { "compilerOptions": {
"types": ["jest"] "types": ["jest"]
}, },

View File

@ -40,10 +40,9 @@
}, },
"dependencies": { "dependencies": {
"@babel/runtime": "^7.24.1", "@babel/runtime": "^7.24.1",
"@types/redux-devtools-themes": "^1.0.3",
"d3-state-visualizer": "^3.0.0", "d3-state-visualizer": "^3.0.0",
"deepmerge": "^4.3.1", "deepmerge": "^4.3.1",
"redux-devtools-themes": "^1.0.0" "react-base16-styling": "^0.9.1"
}, },
"devDependencies": { "devDependencies": {
"@babel/cli": "^7.24.1", "@babel/cli": "^7.24.1",

View File

@ -1,9 +1,10 @@
import React, { Component, createRef } from 'react'; import React, { Component, createRef } from 'react';
import { tree } from 'd3-state-visualizer'; import { tree } from 'd3-state-visualizer';
import type { Options } from 'd3-state-visualizer'; import type { Options } from 'd3-state-visualizer';
import { base16Themes } from 'react-base16-styling';
import type { Base16Theme } from 'react-base16-styling';
import { Action, Dispatch } from 'redux'; import { Action, Dispatch } from 'redux';
import { LiftedAction, LiftedState } from '@redux-devtools/core'; import { LiftedAction, LiftedState } from '@redux-devtools/core';
import * as themes from 'redux-devtools-themes';
import { ChartMonitorState } from './reducers'; import { ChartMonitorState } from './reducers';
const wrapperStyle = { const wrapperStyle = {
@ -17,7 +18,7 @@ export interface Props<S, A extends Action<string>>
dispatch: Dispatch<LiftedAction<S, A, ChartMonitorState>>; dispatch: Dispatch<LiftedAction<S, A, ChartMonitorState>>;
preserveScrollTop: boolean; preserveScrollTop: boolean;
select: (state: S) => unknown; select: (state: S) => unknown;
theme: keyof typeof themes | themes.Base16Theme; theme: keyof typeof base16Themes | Base16Theme;
invertTheme: boolean; invertTheme: boolean;
state: S | null; state: S | null;

View File

@ -1,5 +1,6 @@
import React, { CSSProperties, PureComponent } from 'react'; import React, { CSSProperties, PureComponent } from 'react';
import * as themes from 'redux-devtools-themes'; import { base16Themes } from 'react-base16-styling';
import type { Base16Theme } from 'react-base16-styling';
import { import {
ActionCreators, ActionCreators,
LiftedAction, LiftedAction,
@ -25,7 +26,7 @@ const styles: { container: CSSProperties } = {
}, },
}; };
function invertColors(theme: themes.Base16Theme) { function invertColors(theme: Base16Theme) {
return { return {
...theme, ...theme,
base00: theme.base07, base00: theme.base07,
@ -45,7 +46,7 @@ export interface ChartMonitorProps<S, A extends Action<string>>
dispatch: Dispatch<LiftedAction<S, A, ChartMonitorState>>; dispatch: Dispatch<LiftedAction<S, A, ChartMonitorState>>;
preserveScrollTop: boolean; preserveScrollTop: boolean;
select: (state: S) => unknown; select: (state: S) => unknown;
theme: keyof typeof themes | themes.Base16Theme; theme: keyof typeof base16Themes | Base16Theme;
invertTheme: boolean; invertTheme: boolean;
defaultIsVisible?: boolean; defaultIsVisible?: boolean;
@ -89,14 +90,18 @@ class ChartMonitor<S, A extends Action<string>> extends PureComponent<
return invertTheme ? invertColors(theme) : theme; return invertTheme ? invertColors(theme) : theme;
} }
if (typeof themes[theme] !== 'undefined') { if (typeof base16Themes[theme] !== 'undefined') {
return invertTheme ? invertColors(themes[theme]) : themes[theme]; return invertTheme
? invertColors(base16Themes[theme])
: base16Themes[theme];
} }
console.warn( console.warn(
'DevTools theme ' + theme + ' not found, defaulting to nicinabox', 'DevTools theme ' + theme + ' not found, defaulting to nicinabox',
); );
return invertTheme ? invertColors(themes.nicinabox) : themes.nicinabox; return invertTheme
? invertColors(base16Themes.nicinabox)
: base16Themes.nicinabox;
} }
getChartOptions(props = this.props): Props<S, A> { getChartOptions(props = this.props): Props<S, A> {

View File

@ -8,5 +8,5 @@ module.exports = {
'^.+\\.jsx?$': 'babel-jest', '^.+\\.jsx?$': 'babel-jest',
'^.+\\.tsx?$': ['ts-jest', { tsconfig: 'tsconfig.test.json' }], '^.+\\.tsx?$': ['ts-jest', { tsconfig: 'tsconfig.test.json' }],
}, },
transformIgnorePatterns: ['node_modules/(?!.pnpm|nanoid)'], transformIgnorePatterns: ['node_modules/(?!.pnpm|lodash-es|nanoid)'],
}; };

View File

@ -6,6 +6,6 @@ module.exports = {
'^.+\\.tsx?$': ['ts-jest', { tsconfig: 'tsconfig.test.json' }], '^.+\\.tsx?$': ['ts-jest', { tsconfig: 'tsconfig.test.json' }],
}, },
transformIgnorePatterns: [ transformIgnorePatterns: [
'node_modules/(?!.pnpm|@babel/code-frame|@babel/highlight|@babel/helper-validator-identifier|chalk)', 'node_modules/(?!.pnpm|@babel/code-frame|@babel/highlight|@babel/helper-validator-identifier|chalk|lodash-es)',
], ],
}; };

View File

@ -36,7 +36,7 @@
"anser": "^2.1.1", "anser": "^2.1.1",
"html-entities": "^2.5.2", "html-entities": "^2.5.2",
"path-browserify": "^1.0.1", "path-browserify": "^1.0.1",
"redux-devtools-themes": "^1.0.0", "react-base16-styling": "^0.9.1",
"source-map": "^0.5.7" "source-map": "^0.5.7"
}, },
"devDependencies": { "devDependencies": {
@ -57,7 +57,6 @@
"@types/node": "^20.11.30", "@types/node": "^20.11.30",
"@types/path-browserify": "^1.0.2", "@types/path-browserify": "^1.0.2",
"@types/react": "^18.2.72", "@types/react": "^18.2.72",
"@types/redux-devtools-themes": "^1.0.3",
"@types/source-map": "0.5.2", "@types/source-map": "0.5.2",
"@typescript-eslint/eslint-plugin": "^7.4.0", "@typescript-eslint/eslint-plugin": "^7.4.0",
"@typescript-eslint/parser": "^7.4.0", "@typescript-eslint/parser": "^7.4.0",

View File

@ -6,7 +6,9 @@
*/ */
import React, { Component, CSSProperties, ReactNode } from 'react'; import React, { Component, CSSProperties, ReactNode } from 'react';
import { nicinabox as theme } from 'redux-devtools-themes'; import { base16Themes } from 'react-base16-styling';
const theme = base16Themes.nicinabox;
const _collapsibleStyle: CSSProperties = { const _collapsibleStyle: CSSProperties = {
color: theme.base06, color: theme.base06,

View File

@ -8,11 +8,13 @@
import React, { Component, CSSProperties } from 'react'; import React, { Component, CSSProperties } from 'react';
import CodeBlock from './StackFrameCodeBlock'; import CodeBlock from './StackFrameCodeBlock';
import { getPrettyURL } from '../utils/getPrettyURL'; import { getPrettyURL } from '../utils/getPrettyURL';
import { nicinabox as theme } from 'redux-devtools-themes'; import { base16Themes } from 'react-base16-styling';
import type { StackFrame as StackFrameType } from '../utils/stack-frame'; import type { StackFrame as StackFrameType } from '../utils/stack-frame';
import type { ErrorLocation } from '../utils/parseCompileError'; import type { ErrorLocation } from '../utils/parseCompileError';
const theme = base16Themes.nicinabox;
const linkStyle: CSSProperties = { const linkStyle: CSSProperties = {
fontSize: '0.9em', fontSize: '0.9em',
marginBottom: '0.9em', marginBottom: '0.9em',

View File

@ -13,7 +13,9 @@ import { ScriptLine } from '../utils/stack-frame';
import generateAnsiHTML from '../utils/generateAnsiHTML'; import generateAnsiHTML from '../utils/generateAnsiHTML';
import { codeFrameColumns } from '@babel/code-frame'; import { codeFrameColumns } from '@babel/code-frame';
import { nicinabox as theme } from 'redux-devtools-themes'; import { base16Themes } from 'react-base16-styling';
const theme = base16Themes.nicinabox;
interface StackFrameCodeBlockPropsType { interface StackFrameCodeBlockPropsType {
lines: ScriptLine[]; lines: ScriptLine[];

View File

@ -6,9 +6,11 @@
*/ */
import Anser from 'anser'; import Anser from 'anser';
import { nicinabox as theme } from 'redux-devtools-themes'; import { base16Themes } from 'react-base16-styling';
import { encode } from 'html-entities'; import { encode } from 'html-entities';
const theme = base16Themes.nicinabox;
const anserMap = { const anserMap = {
'ansi-bright-black': theme.base03, 'ansi-bright-black': theme.base03,
'ansi-bright-yellow': theme.base0A, 'ansi-bright-yellow': theme.base0A,

View File

@ -14,10 +14,10 @@
"@redux-devtools/core": "^4.0.0", "@redux-devtools/core": "^4.0.0",
"@redux-devtools/dock-monitor": "^4.0.0", "@redux-devtools/dock-monitor": "^4.0.0",
"@redux-devtools/inspector-monitor": "^6.0.0", "@redux-devtools/inspector-monitor": "^6.0.0",
"base16": "^1.0.0",
"immutable": "^4.3.5", "immutable": "^4.3.5",
"lodash.shuffle": "^4.2.0", "lodash.shuffle": "^4.2.0",
"react": "^18.2.0", "react": "^18.2.0",
"react-base16-styling": "^0.9.1",
"react-bootstrap": "^2.10.2", "react-bootstrap": "^2.10.2",
"react-dom": "^18.2.0", "react-dom": "^18.2.0",
"react-redux": "^8.1.3", "react-redux": "^8.1.3",
@ -30,7 +30,6 @@
"@babel/preset-env": "^7.24.3", "@babel/preset-env": "^7.24.3",
"@babel/preset-react": "^7.24.1", "@babel/preset-react": "^7.24.1",
"@babel/preset-typescript": "^7.24.1", "@babel/preset-typescript": "^7.24.1",
"@types/base16": "^1.0.5",
"@types/lodash.shuffle": "^4.2.9", "@types/lodash.shuffle": "^4.2.9",
"@types/node": "^20.11.30", "@types/node": "^20.11.30",
"@types/react": "^18.2.72", "@types/react": "^18.2.72",

View File

@ -9,7 +9,7 @@ import Form from 'react-bootstrap/Form';
import Col from 'react-bootstrap/Col'; import Col from 'react-bootstrap/Col';
import InputGroup from 'react-bootstrap/InputGroup'; import InputGroup from 'react-bootstrap/InputGroup';
import Row from 'react-bootstrap/Row'; import Row from 'react-bootstrap/Row';
import * as base16 from 'base16'; import { base16Themes } from 'react-base16-styling';
import { inspectorThemes } from '@redux-devtools/inspector-monitor'; import { inspectorThemes } from '@redux-devtools/inspector-monitor';
import { useLocation, useNavigate } from 'react-router-dom'; import { useLocation, useNavigate } from 'react-router-dom';
import getOptions, { Options } from './getOptions'; import getOptions, { Options } from './getOptions';
@ -92,10 +92,10 @@ const themeOptions = [
label: inspectorThemes[value as keyof typeof inspectorThemes].scheme, label: inspectorThemes[value as keyof typeof inspectorThemes].scheme,
})), })),
null, null,
...Object.keys(base16) ...Object.keys(base16Themes)
.map((value) => ({ .map((value) => ({
value, value,
label: base16[value as keyof typeof base16].scheme, label: base16Themes[value as keyof typeof base16Themes].scheme,
})) }))
.filter((opt) => opt.label), .filter((opt) => opt.label),
]; ];

View File

@ -41,7 +41,6 @@
"@dnd-kit/sortable": "^8.0.0", "@dnd-kit/sortable": "^8.0.0",
"@dnd-kit/utilities": "^3.2.2", "@dnd-kit/utilities": "^3.2.2",
"@types/lodash": "^4.17.0", "@types/lodash": "^4.17.0",
"@types/redux-devtools-themes": "^1.0.3",
"dateformat": "^5.0.3", "dateformat": "^5.0.3",
"hex-rgba": "^1.0.2", "hex-rgba": "^1.0.2",
"immutable": "^4.3.5", "immutable": "^4.3.5",
@ -49,8 +48,7 @@
"jsondiffpatch": "^0.6.0", "jsondiffpatch": "^0.6.0",
"lodash.debounce": "^4.0.8", "lodash.debounce": "^4.0.8",
"react-base16-styling": "^0.9.1", "react-base16-styling": "^0.9.1",
"react-json-tree": "^0.18.0", "react-json-tree": "^0.18.0"
"redux-devtools-themes": "^1.0.0"
}, },
"devDependencies": { "devDependencies": {
"@babel/cli": "^7.24.1", "@babel/cli": "^7.24.1",

View File

@ -1,5 +1,5 @@
import React, { Component } from 'react'; import React, { Component } from 'react';
import { Base16Theme } from 'redux-devtools-themes'; import type { Base16Theme } from 'react-base16-styling';
import { Action } from 'redux'; import { Action } from 'redux';
import type { LabelRenderer } from 'react-json-tree'; import type { LabelRenderer } from 'react-json-tree';
import { PerformAction } from '@redux-devtools/core'; import { PerformAction } from '@redux-devtools/core';

View File

@ -1,5 +1,5 @@
import React, { PureComponent } from 'react'; import React, { PureComponent } from 'react';
import { Base16Theme } from 'redux-devtools-themes'; import type { Base16Theme } from 'react-base16-styling';
import { import {
ActionCreators, ActionCreators,
LiftedAction, LiftedAction,

Some files were not shown because too many files have changed in this diff Show More