{"_id":"@bojantest/ui","_rev":"16-995a34d1f29fe94c16fa9a6daf21181e","name":"@bojantest/ui","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.2":{"name":"@bojantest/ui","version":"1.0.2","author":{"name":"Bojan Stojanovic"},"license":"ISC","_id":"@bojantest/ui@1.0.2","maintainers":[{"name":"bojan-dm","email":"bojan.stojanovic@daviesmeyer.com"}],"dist":{"shasum":"2ff6cc0726fe667111659441be9f2a92eda0cf3c","tarball":"https://registry.npmjs.org/@bojantest/ui/-/ui-1.0.2.tgz","fileCount":100,"integrity":"sha512-3JkeaO6cGHfW76wtMaxTes+jLj/1+a8xj99S/HNJqkqaRYVpLs77lzMDkn3PzfpBdEQ/mtPk8/MOa1ilgD+vVw==","signatures":[{"sig":"MEYCIQD7UDLkjXm+KfbXAfdT/HBi93llIazhVCUiq3b6tnYwmwIhANUPZBO3arJ3anoZjh3gl47L5hvWftJVILaoRZ6c1Kq2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1681419},"type":"module","milram":{"schema":"./dist/registry.schema.json","registry":"./dist/registry.json","designSystem":true},"exports":{"./css":"./dist/index.css","./js/*":"./dist/js/*","./css/*":"./dist/css/*","./html/*":"./dist/html/*","./fonts/*":"./dist/fonts/*","./assets/*":"./dist/assets/*","./registry":"./dist/registry.mjs","./img/_icn/*":"./dist/img/_icn/*","./registry.json":"./dist/registry.json"},"scripts":{"build":"npm run build:css && npm run build:js && npm run build:html && npm run build:registry","build:js":"node ./scripts/build-js.mjs","build:css":"node ./scripts/build-css.mjs","build:html":"node ./scripts/build-html.mjs","build:registry":"node ./scripts/build-registry.mjs"},"_npmUser":{"name":"bojan-dm","email":"bojan.stojanovic@daviesmeyer.com"},"_npmVersion":"10.9.7","description":"MILRAM design system — HTML, CSS, and JS components","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"linkedom":"^0.18.12"},"peerDependencies":{"swiper":"^12.0.0","@floating-ui/dom":"^1.7.0"},"_npmOperationalInternal":{"tmp":"tmp/ui_1.0.2_1783587905724_0.3919276070824138","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@bojantest/ui","version":"1.0.3","description":"MILRAM design system — HTML, CSS, and JS components","author":{"name":"Bojan Stojanovic"},"license":"ISC","type":"module","publishConfig":{"access":"public"},"milram":{"designSystem":true,"registry":"./dist/registry.json","schema":"./dist/registry.schema.json"},"sideEffects":["**/*.css"],"exports":{"./css":"./dist/index.css","./css/*":"./dist/css/*","./fonts/*":"./dist/fonts/*","./assets/*":"./dist/assets/*","./img/_icn/*":"./dist/img/_icn/*","./js/*":"./dist/js/*","./html/*":"./dist/html/*","./registry":"./dist/registry.mjs","./registry.json":"./dist/registry.json"},"scripts":{"build":"npm run build:css && npm run build:js && npm run build:html && npm run build:registry","build:css":"node ./scripts/build-css.mjs","build:js":"node ./scripts/build-js.mjs","build:html":"node ./scripts/build-html.mjs","build:registry":"node ./scripts/build-registry.mjs"},"peerDependencies":{"@floating-ui/dom":"^1.7.0","swiper":"^12.0.0"},"devDependencies":{"linkedom":"^0.18.12"},"_id":"@bojantest/ui@1.0.3","_nodeVersion":"22.22.2","_npmVersion":"10.9.7","dist":{"integrity":"sha512-meNP8Yb8csKUZ8HOiLKJoXma4QDT0EcrgisBag0HihuxQF8y5L+OL9p5IBlw15iZQq6NJGZlshE1WmGyY5QSvQ==","shasum":"d76cbf951fb4eb7d67ec9dd9fbb3f26df781e41a","tarball":"https://registry.npmjs.org/@bojantest/ui/-/ui-1.0.3.tgz","fileCount":100,"unpackedSize":1682902,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCK+yFAxAUVJdb2grRG7T7cdir7FK61wxBBEtANIdXgdQIgVpzQf125SgpcemKOdC97dLMpzztG56MiRzIjptuG0Ms="}]},"_npmUser":{"name":"bojan-dm","email":"bojan.stojanovic@daviesmeyer.com"},"directories":{},"maintainers":[{"name":"bojan-dm","email":"bojan.stojanovic@daviesmeyer.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ui_1.0.3_1783590054331_0.8673949093228457"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-09T09:05:05.608Z","modified":"2026-07-09T09:40:54.719Z","0.1.1":"2026-06-09T10:07:57.923Z","0.1.2":"2026-06-09T10:29:15.153Z","0.1.3":"2026-06-09T10:45:23.580Z","0.1.4":"2026-06-09T10:51:44.921Z","0.1.5":"2026-06-12T09:52:50.503Z","0.1.6":"2026-06-24T07:51:24.873Z","0.1.7":"2026-06-24T08:39:17.399Z","0.1.8":"2026-06-24T11:11:47.425Z","0.1.9":"2026-06-24T11:26:46.727Z","0.1.10":"2026-06-24T12:39:15.033Z","0.1.11":"2026-06-24T14:37:17.450Z","0.1.12":"2026-06-25T07:49:08.459Z","1.0.2":"2026-07-09T09:05:05.912Z","1.0.3":"2026-07-09T09:40:54.587Z"},"author":{"name":"Bojan Stojanovic"},"license":"ISC","description":"MILRAM design system — HTML, CSS, and JS components","maintainers":[{"name":"bojan-dm","email":"bojan.stojanovic@daviesmeyer.com"}],"readme":"# @bojantest/ui\n\nMILRAM design system — per-component CSS, HTML snippets, JS modules, and a machine-readable registry.\n\n**Full workflow:** see [`docs/storybook-and-npm-workflow.md`](../../docs/storybook-and-npm-workflow.md) in the repo root.\n\nPair with **`@bojantest/storybook`** for visual documentation.\n\n## Asset policy\n\n| Shipped in npm | Not shipped (CMS) |\n|----------------|-------------------|\n| `dist/fonts/` | Product photos, packshots |\n| `dist/img/_icn/` | Hero / slide / recipe images |\n| `dist/assets/*.svg` (brushes, edges) | `assets/*.png` in repo (dev/Storybook only) |\n\nHTML uses raster paths as **placeholders** — CMS replaces `src` / `srcset` at render time.\n\n## Install\n\n```bash\nnpm install @bojantest/ui swiper @floating-ui/dom\n```\n\n- `@bojantest/ui` — CSS, HTML, JS\n- `swiper` — image slider, product slider, recipe teaser\n- `@floating-ui/dom` — popovers on image slider\n\n## CSS\n\n### Full bundle\n\n```html\n<link rel=\"stylesheet\" href=\"node_modules/swiper/swiper-bundle.css\">\n<link rel=\"stylesheet\" href=\"node_modules/@bojantest/ui/dist/index.css\">\n```\n\n### Per component\n\n```html\n<link rel=\"stylesheet\" href=\"node_modules/swiper/swiper-bundle.css\">\n<link rel=\"stylesheet\" href=\"node_modules/@bojantest/ui/dist/css/foundation.css\">\n<link rel=\"stylesheet\" href=\"node_modules/@bojantest/ui/dist/css/img-slider.css\">\n```\n\nOr via imports:\n\n```js\nimport 'swiper/swiper-bundle.css';\nimport '@bojantest/ui/css/foundation.css';\nimport '@bojantest/ui/css/img-slider.css';\n```\n\n## HTML\n\n```html\n<!-- node_modules/@bojantest/ui/dist/html/img-slider.html -->\n```\n\n```js\nimport imgSliderHtml from '@bojantest/ui/html/img-slider.html?raw';\n```\n\n## JS\n\n```html\n<script type=\"module\">\n  import { initImgSlider } from '@bojantest/ui/js/img-slider.js';\n  initImgSlider();\n</script>\n```\n\n## Component registry\n\n```js\nimport {\n  components,\n  getComponent,\n  getComponentsByCategory,\n  getComponentByBlock,\n} from '@bojantest/ui/registry';\n\nconst slider = getComponent('img-slider');\n```\n\n```bash\ncat node_modules/@bojantest/ui/dist/registry.json\n```\n\nSource of truth: `stories/registry/components.mjs`.\n\n## Components\n\n| ID | Category | JS | Notes |\n|----|----------|-----|-------|\n| `button` | components | — | CTA primitives |\n| `popover` | components | `initPopovers` | needs `@floating-ui/dom` |\n| `header` | layout | — | Hero section |\n| `img-slider` | layout | `initImgSlider` | swiper + popovers |\n| `product-slider` | layout | `initProductSlider` | swiper |\n| `recipe-teaser` | layout | `initRecipeTeaser` | swiper |\n| `footer` | layout | — | Site footer |\n\n## Build (maintainers)\n\n```bash\nnpm run build:ui\n```\n\n## Publish\n\n```bash\ncd packages/ui\nnpm version patch\nnpm publish\n```\n","readmeFilename":"README.md"}