{
  "name": "@bloklabs/core",
  "version": "1.15.2",
  "description": "Blok — headless, highly extensible rich text editor built for developers who need to implement a block-based editing experience (similar to Notion) without building it from scratch",
  "module": "dist/blok.mjs",
  "main": "./dist/blok.cjs",
  "browser": "./dist/blok.iife.js",
  "unpkg": "./dist/blok.iife.js",
  "jsdelivr": "./dist/blok.iife.js",
  "types": "./types/index.d.ts",
  "typesVersions": {
    "*": {
      "tools": [
        "./types/tools-entry.d.ts"
      ],
      "full": [
        "./types/full.d.ts"
      ],
      "locales": [
        "./types/locales.d.ts"
      ],
      "markdown": [
        "./types/markdown.d.ts"
      ],
      "migrate": [
        "./types/migrate.d.ts"
      ],
      "view": [
        "./types/view.d.ts"
      ],
      "icons": [
        "./types/icons.d.ts"
      ],
      "preprocess": [
        "./types/preprocess.d.ts"
      ]
    }
  },
  "exports": {
    ".": {
      "types": "./types/index.d.ts",
      "import": "./dist/blok.mjs",
      "require": "./dist/blok.cjs"
    },
    "./tools": {
      "types": "./types/tools-entry.d.ts",
      "import": "./dist/tools.mjs",
      "require": "./dist/tools.cjs"
    },
    "./full": {
      "types": "./types/full.d.ts",
      "import": "./dist/full.mjs",
      "require": "./dist/full.cjs"
    },
    "./locales": {
      "types": "./types/locales.d.ts",
      "import": "./dist/locales.mjs"
    },
    "./markdown": {
      "types": "./types/markdown.d.ts",
      "import": "./dist/markdown.mjs",
      "require": "./dist/markdown.cjs"
    },
    "./view": {
      "types": "./types/view.d.ts",
      "import": "./dist/view.mjs",
      "require": "./dist/view.cjs"
    },
    "./migrate": {
      "types": "./types/migrate.d.ts",
      "import": "./dist/migrate.mjs",
      "require": "./dist/migrate.cjs"
    },
    "./adapters": {
      "import": "./dist/adapters.mjs",
      "require": "./dist/adapters.cjs"
    },
    "./preprocess": {
      "types": "./types/preprocess.d.ts",
      "import": "./dist/preprocess.mjs",
      "require": "./dist/preprocess.cjs"
    },
    "./icons": {
      "types": "./types/icons.d.ts",
      "import": "./dist/icons.mjs",
      "require": "./dist/icons.cjs"
    },
    "./umd": {
      "default": "./dist/blok.umd.js"
    },
    "./dist/*": "./dist/*",
    "./view.css": "./view.css"
  },
  "bin": {
    "migrate-from-editorjs": "./codemod/migrate-editorjs-to-blok.js"
  },
  "files": [
    "dist",
    "types",
    "src",
    "codemod",
    "view.css",
    "NOTICE"
  ],
  "publishConfig": {
    "access": "public"
  },
  "packageManager": "yarn@4.9.4",
  "workspaces": [
    "packages/*"
  ],
  "engines": {
    "node": ">=20.19.0"
  },
  "keywords": [
    "blok",
    "block-editor",
    "rich-text-editor",
    "wysiwyg",
    "editor",
    "text editor",
    "rich text editor",
    "block-based",
    "block-based editor",
    "notion",
    "notion-like",
    "notion-like editor",
    "headless",
    "headless editor",
    "contenteditable",
    "json",
    "typescript",
    "extensible editor",
    "react",
    "vue",
    "angular"
  ],
  "sideEffects": [
    "./src/components/polyfills.ts",
    "*.css"
  ],
  "scripts": {
    "serve": "node scripts/dev.mjs",
    "serve:docs": "cd docs && vite --port 8080",
    "build": "node scripts/build-all.mjs",
    "build:angular": "node scripts/build-angular.mjs",
    "build:cli": "node scripts/build-cli.mjs",
    "build:test": "node scripts/build-all.mjs --mode test",
    "lint": "sh -c 'ESLINT_CONCURRENCY=off; ESLINT_CACHE=warm; if [ ! -f node_modules/.cache/blok-eslint ]; then ESLINT_CONCURRENCY=4; ESLINT_CACHE=cold; fi; ESLINT_STARTED=$(date +%s); echo \"Lint: ESLint ($ESLINT_CACHE cache, concurrency=$ESLINT_CONCURRENCY)\"; eslint . --concurrency=$ESLINT_CONCURRENCY --cache --cache-location node_modules/.cache/blok-eslint --cache-strategy content; ESLINT_EXIT=$?; ESLINT_SECONDS=$(($(date +%s) - ESLINT_STARTED)); echo \"Lint: ESLint finished in ${ESLINT_SECONDS}s (exit $ESLINT_EXIT)\"; TSC_STARTED=$(date +%s); echo \"Lint: TypeScript (incremental)\"; tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/blok-lint.tsbuildinfo; TSC_EXIT=$?; TSC_SECONDS=$(($(date +%s) - TSC_STARTED)); echo \"Lint: TypeScript finished in ${TSC_SECONDS}s (exit $TSC_EXIT)\"; if [ $ESLINT_EXIT -ne 0 ] || [ $TSC_EXIT -ne 0 ]; then exit 1; fi'",
    "lint:fix": "eslint . --fix",
    "lint:tests": "eslint test/",
    "lint:types": "tsc --noEmit",
    "lint:angular": "ngc -p tsconfig.spec.json --noEmit",
    "i18n:audit": "node scripts/i18n-audit.js",
    "i18n:check": "node scripts/i18n/check-translations.mjs",
    "i18n:check:docs": "node scripts/i18n/check-docs-translations.mjs",
    "typography:check": "node scripts/typography-finder/cli.mjs",
    "override:sync": "node scripts/override/sync.mjs",
    "e2e": "playwright test",
    "e2e:smoke": "playwright test --project=chromium --grep=\"@smoke\"",
    "e2e:chrome": "playwright test --project=chromium",
    "e2e:firefox": "playwright test --project=firefox",
    "e2e:safari": "playwright test --project=webkit",
    "e2e:ui": "playwright test --ui",
    "e2e:ui:chrome": "playwright test --ui --project=chromium",
    "e2e:ui:firefox": "playwright test --ui --project=firefox",
    "e2e:ui:safari": "playwright test --ui --project=webkit",
    "test": "vitest run --project=unit --project=unit-angular",
    "test:watch": "vitest --project=unit --project=unit-angular",
    "test:angular": "vitest run --project=unit-angular",
    "test:coverage": "vitest run --coverage --project=unit",
    "mutate": "node scripts/mutation-scope.mjs run",
    "mutate:plan": "node scripts/mutation-scope.mjs plan",
    "mutate:seed": "node scripts/mutation-scope.mjs seed",
    "jscpd": "jscpd src/ test/",
    "jscpd:report": "jscpd . --reporters html,json --output .jscpd-report",
    "prepublishOnly": "yarn build",
    "prepare": "husky",
    "storybook": "storybook dev -p 6006 --no-open",
    "storybook:build": "storybook build --stats-json",
    "storybook:test": "vitest --project=storybook --run",
    "chromatic": "chromatic --exit-zero-on-changes",
    "perf:analyze": "node scripts/analyze-performance.mjs",
    "perf:compare": "node scripts/analyze-performance.mjs --baseline",
    "perf:dashboard": "node scripts/generate-performance-dashboard.mjs",
    "e2e:validate-categories": "node scripts/validate-test-categories.mjs",
    "validate:spec-coverage": "node scripts/validate-spec-file-coverage.mjs",
    "ci:timing": "node scripts/ci-timing-probe.mjs",
    "release": "node scripts/release.mjs",
    "release:preflight": "node scripts/release-preflight.mjs",
    "unused-css": "node scripts/unused-css-finder/cli.mjs"
  },
  "author": "JackUait",
  "contributors": [
    "CodeX (the author of initial solution)"
  ],
  "license": "Apache-2.0",
  "homepage": "https://blokeditor.com",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/JackUait/blok.git"
  },
  "bugs": {
    "url": "https://github.com/JackUait/blok/issues"
  },
  "devDependencies": {
    "@aiden0z/pptx-renderer": "1.2.4",
    "@analogjs/vite-plugin-angular": "2.7.1",
    "@angular/build": "22.1.7",
    "@angular/common": "22.1.5",
    "@angular/compiler": "22.1.5",
    "@angular/compiler-cli": "22.1.5",
    "@angular/core": "22.1.5",
    "@angular/forms": "22.1.5",
    "@angular/platform-browser": "22.1.5",
    "@angular/platform-server": "22.1.5",
    "@axe-core/playwright": "4.13.0",
    "@commitlint/cli": "21.2.2",
    "@commitlint/config-conventional": "21.2.2",
    "@emoji-mart/data": "^1.2.1",
    "@fontsource-variable/inter": "^5.3.0",
    "@fontsource-variable/jetbrains-mono": "^5.3.0",
    "@fontsource-variable/source-serif-4": "^5.3.0",
    "@fontsource/permanent-marker": "^5.3.0",
    "@oxc-project/runtime": "0.148.0",
    "@playwright/test": "1.62.1",
    "@storybook/addon-a11y": "10.6.0",
    "@storybook/addon-vitest": "10.6.0",
    "@storybook/html-vite": "10.6.0",
    "@stryker-mutator/core": "10.0.0",
    "@stryker-mutator/vitest-runner": "10.0.0",
    "@tailwindcss/node": "4.3.3",
    "@tailwindcss/vite": "4.3.3",
    "@testing-library/dom": "^10.4.1",
    "@testing-library/jest-dom": "^7.0.1",
    "@testing-library/react": "^16.3.2",
    "@types/mdast": "^4.0.4",
    "@types/node": "26.4.1",
    "@types/prismjs": "^1.26.6",
    "@types/react": "^19.2.17",
    "@types/react-dom": "^19.2.3",
    "@vitest/browser-playwright": "4.1.11",
    "@vitest/coverage-v8": "4.1.11",
    "@vitest/eslint-plugin": "1.6.27",
    "@vitest/ui": "4.1.11",
    "@vue/test-utils": "^2.4.11",
    "chromatic": "18.7.2",
    "cldr-annotations-full": "^48.2.0",
    "docx-preview": "0.4.0",
    "dompurify": "^3.4.13",
    "es-module-lexer": "^2.3.2",
    "esbuild": "0.28.2",
    "eslint": "10.10.0",
    "eslint-plugin-import": "2.32.0",
    "eslint-plugin-jest": "29.16.6",
    "eslint-plugin-jest-dom": "^5.5.0",
    "eslint-plugin-jsdoc": "64.3.5",
    "eslint-plugin-playwright": "2.11.0",
    "eslint-plugin-react-hooks": "^7.1.1",
    "eslint-plugin-sonarjs": "4.2.0",
    "eslint-plugin-storybook": "10.6.0",
    "eslint-plugin-tailwindcss": "4.4.0",
    "eslint-plugin-testing-library": "^7.16.2",
    "fake-indexeddb": "6.2.5",
    "fractional-indexing": "^4.0.0",
    "glob": "13.0.6",
    "html-janitor": "2.0.4",
    "husky": "9.1.7",
    "i18next": "26.4.2",
    "jscpd": "5.1.2",
    "jsdom": "29.1.1",
    "jszip": "^3.10.1",
    "katex": "0.18.5",
    "lib0": "0.2.117",
    "mdast-util-from-markdown": "^2.0.3",
    "mdast-util-gfm": "^3.1.0",
    "mdast-util-math": "^3.0.0",
    "mermaid": "11.17.2",
    "micromark-extension-gfm": "^3.0.0",
    "micromark-extension-math": "^3.1.0",
    "micromark-util-types": "^2.0.2",
    "music-metadata": "^11.14.0",
    "nanoid": "6.0.1",
    "ng-packagr": "22.1.1",
    "parse5": "^8.0.0",
    "playwright": "1.62.1",
    "postcss": "8.5.28",
    "postcss-selector-parser": "7.1.6",
    "prismjs": "^1.30.0",
    "react": "^19.2.7",
    "react-dom": "^19.2.7",
    "rollup": "4.63.1",
    "rollup-plugin-dts": "6.5.1",
    "rollup-plugin-license": "3.7.1",
    "rxjs": "7.8.2",
    "serve": "14.2.6",
    "storybook": "10.6.0",
    "tailwindcss": "4.3.3",
    "tslib": "2.8.1",
    "typescript": "6.0.3",
    "typescript-eslint": "8.68.0",
    "vite": "8.2.2",
    "vite-plugin-css-injected-by-js": "5.0.2",
    "vitest": "4.1.11",
    "vue": "^3.5.40",
    "webm-muxer": "^5.1.4",
    "y-protocols": "1.0.7",
    "y-websocket": "3.1.0",
    "yaml": "^2.9.0",
    "yjs": "13.6.32",
    "zone.js": "0.16.3"
  },
  "resolutions": {
    "@typescript-eslint/utils": "8.68.0",
    "lodash-es": "^4.18.0"
  }
}
