@vadimcomanescu/nadicode-design-system 4.0.0 → 4.0.2

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/.agents/skills/seed/SKILL.md +38 -166
  2. package/.agents/skills/seed/references/animation.md +2 -2
  3. package/.agents/skills/seed/references/responsive.md +1 -1
  4. package/README.md +2 -2
  5. package/dist/catalog/components.js +4 -4
  6. package/dist/{chunk-7A2RXKGH.js → chunk-GJ557DGH.js} +1 -1
  7. package/dist/{chunk-7XLZCXUL.js → chunk-K4U67BVG.js} +1 -1
  8. package/dist/{chunk-TUJZMJXW.js → chunk-LK2L3C7D.js} +1 -1
  9. package/dist/{chunk-DSMGCFMJ.js → chunk-POFFOUQW.js} +2 -5
  10. package/dist/components/blocks/HeroBlock.js +2 -2
  11. package/dist/components/page-kits/LandingPageKit.js +3 -3
  12. package/dist/components/page-kits/ServiceSuitePageKit.js +3 -3
  13. package/dist/components/ui/AvatarUpload.js +1 -1
  14. package/dist/components/ui/MouseEffect.js +1 -1
  15. package/eslint-rules/nadicode/config.js +1 -0
  16. package/eslint-rules/nadicode/index.js +2 -0
  17. package/eslint-rules/nadicode/rules/__tests__/require-catalog-import.test.js +111 -0
  18. package/eslint-rules/nadicode/rules/no-has-svg-selector.js +1 -1
  19. package/eslint-rules/nadicode/rules/require-catalog-import.js +59 -0
  20. package/package.json +1 -338
  21. package/scripts/ds-check.mjs +0 -10
  22. package/scripts/sync-seed-skill.mjs +0 -3
  23. package/.agents/skills/seed/contract.md +0 -104
  24. package/.agents/skills/seed/intent-map.md +0 -320
  25. package/.agents/skills/seed/recipes/agency-home.md +0 -311
  26. package/.agents/skills/seed/recipes/agents-chat.md +0 -305
  27. package/.agents/skills/seed/recipes/analytics.md +0 -253
  28. package/.agents/skills/seed/recipes/auth.md +0 -254
  29. package/.agents/skills/seed/recipes/blog-content.md +0 -307
  30. package/.agents/skills/seed/recipes/checkout.md +0 -311
  31. package/.agents/skills/seed/recipes/company-about.md +0 -276
  32. package/.agents/skills/seed/recipes/company-contact.md +0 -234
  33. package/.agents/skills/seed/recipes/crud-form.md +0 -233
  34. package/.agents/skills/seed/recipes/crud-list-detail.md +0 -230
  35. package/.agents/skills/seed/recipes/dashboard.md +0 -354
  36. package/.agents/skills/seed/recipes/digital-workers.md +0 -314
  37. package/.agents/skills/seed/recipes/error-pages.md +0 -199
  38. package/.agents/skills/seed/recipes/marketing-landing.md +0 -293
  39. package/.agents/skills/seed/recipes/marketing-shell.md +0 -156
  40. package/.agents/skills/seed/recipes/navigation-shell.md +0 -786
  41. package/.agents/skills/seed/recipes/onboarding.md +0 -258
  42. package/.agents/skills/seed/recipes/pricing.md +0 -271
  43. package/.agents/skills/seed/recipes/service-detail.md +0 -302
  44. package/.agents/skills/seed/recipes/settings.md +0 -252
  45. package/.agents/skills/seed/references/blocks.md +0 -128
  46. package/.agents/skills/seed/references/components.md +0 -287
  47. package/.agents/skills/seed/references/icons.md +0 -169
  48. package/.agents/skills/seed/references/nextjs.md +0 -49
  49. package/.agents/skills/seed/references/tokens.md +0 -88
@@ -0,0 +1,59 @@
1
+ import { getFilename, isTestFile, normalizePath } from "../utils.js";
2
+
3
+ /**
4
+ * Matches import sources that resolve to a block or page-kit file.
5
+ * Catches both absolute alias (@/components/blocks/X) and relative (../../blocks/X).
6
+ */
7
+ const BLOCK_OR_PAGEKIT_RE = /(?:^|\/)(?:blocks|page-kits)\//;
8
+
9
+ /** Files that are allowed to use direct block/page-kit imports. */
10
+ const EXEMPT_PATH_MARKERS = [
11
+ "/src/catalog/components.tsx",
12
+ "/src/components/blocks/",
13
+ "/src/components/page-kits/",
14
+ ];
15
+
16
+ function isExemptFile(filename) {
17
+ return EXEMPT_PATH_MARKERS.some((marker) => filename.includes(marker));
18
+ }
19
+
20
+ const rule = {
21
+ meta: {
22
+ type: "problem",
23
+ docs: {
24
+ description:
25
+ "Require blocks and page-kits to be imported from @/catalog/components via seedComponents (ADR 0009).",
26
+ },
27
+ schema: [],
28
+ },
29
+ create(context) {
30
+ const filename = normalizePath(getFilename(context));
31
+ if (isTestFile(filename)) return {};
32
+ if (isExemptFile(filename)) return {};
33
+
34
+ return {
35
+ ImportDeclaration(node) {
36
+ // Skip type-only imports
37
+ if (node.importKind === "type") return;
38
+
39
+ const source = node.source.value;
40
+ if (typeof source !== "string") return;
41
+
42
+ if (!BLOCK_OR_PAGEKIT_RE.test(source)) return;
43
+
44
+ // Extract the component name from the last path segment
45
+ const segments = source.split("/");
46
+ const name = segments[segments.length - 1] || segments[segments.length - 2];
47
+
48
+ context.report({
49
+ node,
50
+ message:
51
+ "Import '{{name}}' from '@/catalog/components' via seedComponents. Direct block/page-kit imports are not allowed (ADR 0009).",
52
+ data: { name },
53
+ });
54
+ },
55
+ };
56
+ },
57
+ };
58
+
59
+ export default rule;