{"_id":"@besnovatyj/snippets-core","name":"@besnovatyj/snippets-core","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@besnovatyj/snippets-core","version":"1.0.0","description":"Framework-agnostic пикер сниппетов (ядро). Используется самостоятельно или как зависимость адаптеров редакторов (Jodit, CKEditor).","main":"dist/standalone.js","module":"dist/standalone.js","types":"dist/standalone.d.ts","repository":{"type":"git","url":"git+https://github.com/besnovatyj/snippets-core.git"},"bugs":{"url":"https://github.com/besnovatyj/snippets-core/issues"},"homepage":"https://github.com/besnovatyj/snippets-core#readme","exports":{".":{"types":"./dist/standalone.d.ts","import":"./dist/standalone.js"}},"keywords":[],"author":{"name":"Besnovatyj"},"license":"MIT","type":"module","publishConfig":{"access":"public"},"scripts":{"build":"node esbuild.js","types":"tsc -p tsconfig.json --emitDeclarationOnly --declaration --noEmit false --outDir dist && tsc-alias -p tsconfig.json","prepublishOnly":"npm run build && npm run types"},"devDependencies":{"autoprefixer":"^10.5.0","esbuild":"^0.28.0","esbuild-sass-plugin":"^3.7.0","postcss":"^8.5.9","postcss-import":"^16.1.1","sass":"^1.99.0","tsc-alias":"^1.8.16","tslib":"^2.8.1","typescript":"^5.9.3"},"engines":{"node":">= 23.3.0","npm":">= 10.0.0"},"gitHead":"0ab67a8f950f03772d287b00e72ddc68da2f2d66","_id":"@besnovatyj/snippets-core@1.0.0","_nodeVersion":"24.16.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-+5Hdw+IfL4milEPQxAYkR/DycU+h37GhaezLFy5g7pc/z1UNEniqJAZcQB3cX/0gKBj++tXAQ/jBUz7ucvawgw==","shasum":"88ea3e21983c6b39d354f9c7f71da0420b335342","tarball":"https://registry.npmjs.org/@besnovatyj/snippets-core/-/snippets-core-1.0.0.tgz","fileCount":21,"unpackedSize":78395,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDV89m3ZFjgxiCsxdLVFeLIyDaBHMF/hSwwCpCj+s8bMwIgaHfStaRqdAh46ekXug2/a9nxhpG8nMk2IVCemmGCJGU="}]},"_npmUser":{"name":"besnovatyj","email":"metr31@yandex.ru"},"directories":{},"maintainers":[{"name":"besnovatyj","email":"metr31@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/snippets-core_1.0.0_1786903318550_0.6894793431212098"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-16T18:01:58.303Z","1.0.0":"2026-08-16T18:01:58.691Z","modified":"2026-08-16T18:01:58.945Z"},"maintainers":[{"name":"besnovatyj","email":"metr31@yandex.ru"}],"description":"Framework-agnostic пикер сниппетов (ядро). Используется самостоятельно или как зависимость адаптеров редакторов (Jodit, CKEditor).","homepage":"https://github.com/besnovatyj/snippets-core#readme","keywords":[],"repository":{"type":"git","url":"git+https://github.com/besnovatyj/snippets-core.git"},"author":{"name":"Besnovatyj"},"bugs":{"url":"https://github.com/besnovatyj/snippets-core/issues"},"license":"MIT","readme":"# @besnovatyj/snippets-core\n\nFramework-agnostic **пикер сниппетов** (ядро). Монтируется на любой странице, вставляет\nвыбранный HTML через коллбэк. Используется адаптерами редакторов (Jodit, CKEditor) — сам о\nредакторе ничего не знает. Аналог `@besnovatyj/filemanager-core`, но радикально проще:\nсниппеты read-only, поэтому только загрузка дерева + отображение.\n\n## Публичный API\n\n```ts\nimport {createSnippetPicker} from '@besnovatyj/snippets-core';\n\nconst picker = createSnippetPicker({\n  snippetsUrl: '/Snippets/backend/api/tree', // GET → { groups: [...] }\n  headers: {'X-Requested-With': 'XMLHttpRequest'},\n  title: 'Сниппеты',\n  onSelect: (html) => editor.insertHTML(html), // вставка в контент движка\n  onClose: () => { /* освободить ресурсы интеграции */ },\n});\n\nawait picker.open();\n```\n\n- UI: категории + поиск (по заголовку и ключевым словам) + превью, в изолированном Shadow DOM.\n- Формат ответа бэкенда — `SnippetTreeDto` (см. `src/api/dto.ts`), зеркалит PHP-эндпоинт\n  `ApiController::actionTree` модуля `besnovatyj/yii2-cms-snippets`.\n\n## Сборка\n\n```\nnpm install\nnpm run build   # → dist/standalone.js (CSS вшит в бандл)\nnpm run types   # → dist/standalone.d.ts\n```\n\nDev-потребление без публикации в npm: пакет-адаптер (напр. `yii2-cms-jodit`) алиасит\n`@besnovatyj/snippets-core` на `dist/standalone.js` этого каталога (флаг `SNIPPETS_CORE_LOCAL`),\nкак это сделано для `filemanager-core` (`FM_CORE_LOCAL`).\n","readmeFilename":"readme.md","_rev":"1-467b031fd9baa3a1eab54d866578ddfd"}