@janga/norna 0.7.8 → 0.7.9

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 (70) hide show
  1. package/docs/README.md +4 -0
  2. package/docs/design/norna-diagram-design.md +156 -0
  3. package/examples/typography-presets/.astro/collections/site.schema.json +776 -0
  4. package/examples/typography-presets/.astro/collections/theme.schema.json +668 -0
  5. package/examples/typography-presets/.astro/content-assets.mjs +4 -0
  6. package/examples/typography-presets/.astro/content-modules.mjs +1 -0
  7. package/examples/typography-presets/.astro/content.d.ts +175 -0
  8. package/examples/typography-presets/.astro/data-store.json +1 -0
  9. package/examples/typography-presets/.astro/dev-local.json +8 -0
  10. package/examples/typography-presets/.astro/dev.json +15 -0
  11. package/examples/typography-presets/.astro/dev.log +24 -0
  12. package/examples/typography-presets/.astro/settings.json +5 -0
  13. package/examples/typography-presets/.astro/types.d.ts +2 -0
  14. package/examples/typography-presets/node_modules/.vite/deps/_metadata.json +80 -0
  15. package/examples/typography-presets/node_modules/.vite/deps/astro-D_GIpJIE.js +434 -0
  16. package/examples/typography-presets/node_modules/.vite/deps/astro-D_GIpJIE.js.map +1 -0
  17. package/examples/typography-presets/node_modules/.vite/deps/astro_n_aria-query.js +6390 -0
  18. package/examples/typography-presets/node_modules/.vite/deps/astro_n_aria-query.js.map +1 -0
  19. package/examples/typography-presets/node_modules/.vite/deps/astro_n_axobject-query.js +2702 -0
  20. package/examples/typography-presets/node_modules/.vite/deps/astro_n_axobject-query.js.map +1 -0
  21. package/examples/typography-presets/node_modules/.vite/deps/astro_n_html-escaper.js +65 -0
  22. package/examples/typography-presets/node_modules/.vite/deps/astro_n_html-escaper.js.map +1 -0
  23. package/examples/typography-presets/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +455 -0
  24. package/examples/typography-presets/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +1 -0
  25. package/examples/typography-presets/node_modules/.vite/deps/audit-DM9Hkl5B.js +1534 -0
  26. package/examples/typography-presets/node_modules/.vite/deps/audit-DM9Hkl5B.js.map +1 -0
  27. package/examples/typography-presets/node_modules/.vite/deps/embla-carousel.js +1389 -0
  28. package/examples/typography-presets/node_modules/.vite/deps/embla-carousel.js.map +1 -0
  29. package/examples/typography-presets/node_modules/.vite/deps/highlight-DnZ1ULOL.js +48 -0
  30. package/examples/typography-presets/node_modules/.vite/deps/highlight-DnZ1ULOL.js.map +1 -0
  31. package/examples/typography-presets/node_modules/.vite/deps/icons-RyebKi45.js +42 -0
  32. package/examples/typography-presets/node_modules/.vite/deps/icons-RyebKi45.js.map +1 -0
  33. package/examples/typography-presets/node_modules/.vite/deps/package.json +3 -0
  34. package/examples/typography-presets/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +4 -0
  35. package/examples/typography-presets/node_modules/.vite/deps/settings-DaU-gNnK.js +190 -0
  36. package/examples/typography-presets/node_modules/.vite/deps/settings-DaU-gNnK.js.map +1 -0
  37. package/examples/typography-presets/node_modules/.vite/deps/toolbar-63PA619H.js +458 -0
  38. package/examples/typography-presets/node_modules/.vite/deps/toolbar-63PA619H.js.map +1 -0
  39. package/examples/typography-presets/node_modules/.vite/deps/ui-library--bkcNSYz.js +1016 -0
  40. package/examples/typography-presets/node_modules/.vite/deps/ui-library--bkcNSYz.js.map +1 -0
  41. package/examples/typography-presets/node_modules/.vite/deps/window-jPkpKVcy.js +32 -0
  42. package/examples/typography-presets/node_modules/.vite/deps/window-jPkpKVcy.js.map +1 -0
  43. package/examples/typography-presets/node_modules/.vite/deps/xray-BXCHpEJP.js +111 -0
  44. package/examples/typography-presets/node_modules/.vite/deps/xray-BXCHpEJP.js.map +1 -0
  45. package/examples/typography-presets/site/.norna/generated-images.json +290 -0
  46. package/examples/typography-presets/site/config.mjs +42 -0
  47. package/examples/typography-presets/site/content.md +134 -0
  48. package/examples/typography-presets/site/images/compact-gallery/black-schnauzer.jpg +0 -0
  49. package/examples/typography-presets/site/images/compact-gallery/retriever-portrait.jpg +0 -0
  50. package/examples/typography-presets/site/images/compact-gallery/schnauzer-portrait.jpg +0 -0
  51. package/examples/typography-presets/site/images/quiet-gallery/puppy-portrait.jpg +0 -0
  52. package/examples/typography-presets/site/images/quiet-gallery/shepherd-portrait.jpg +0 -0
  53. package/examples/typography-presets/site/images/quiet-gallery/white-puppy.jpg +0 -0
  54. package/examples/typography-presets/site/images/statement/black-pedigree.jpg +0 -0
  55. package/examples/typography-presets/site/images/statement/sheepdog-grass.jpg +0 -0
  56. package/examples/typography-presets/site/images/statement/sheepdog-wide.jpg +0 -0
  57. package/examples/typography-presets/site/images/text-forward/boxer-portrait.jpg +0 -0
  58. package/examples/typography-presets/site/images/text-forward/grass-puppy.jpg +0 -0
  59. package/examples/typography-presets/site/images/text-forward/grey-street-dog.jpg +0 -0
  60. package/examples/typography-presets/site/public/robots.txt +2 -0
  61. package/examples/typography-presets/site/theme.md +43 -0
  62. package/package.json +1 -1
  63. package/scripts/lib/site-content.mjs +76 -0
  64. package/scripts/lib/theme-config.mjs +2 -0
  65. package/scripts/sync-content-sections.mjs +3 -0
  66. package/scripts/test-content-check.mjs +30 -0
  67. package/scripts/test-package-check.mjs +17 -0
  68. package/src/components/SiteSection.astro +1 -1
  69. package/src/lib/sectionContent.ts +10 -2
  70. package/src/styles/global.css +1 -1
package/docs/README.md CHANGED
@@ -32,6 +32,7 @@ For design and naming principles:
32
32
 
33
33
  1. [Command Organization](design/command-organization.md)
34
34
  2. [Site Examples Structure](design/site-examples-structure.md)
35
+ 3. [Norna Diagram Design](design/norna-diagram-design.md)
35
36
 
36
37
  For a quick reference:
37
38
 
@@ -58,6 +59,9 @@ Design documents are intentionally separate from the user reference:
58
59
  - [Site Examples Structure](design/site-examples-structure.md) defines the
59
60
  intended vocabulary for starters, examples, documentation sites, reference
60
61
  docs, and fixtures.
62
+ - [Norna Diagram Design](design/norna-diagram-design.md) defines the first
63
+ experiment for technical and pedagogical diagrams without adding external
64
+ diagram tooling to the build pipeline.
61
65
 
62
66
  Site repositories should document only their site-specific choices and link here
63
67
  for generic `norna` behavior.
@@ -0,0 +1,156 @@
1
+ # Norna Diagram Design
2
+
3
+ This document defines a repository-local workflow for creating technical and
4
+ pedagogical diagrams for Norna.
5
+
6
+ It is intentionally not a vendored copy of any external skill, MCP server, or
7
+ diagram tool. The first experiment should use hand-authored SVG assets managed
8
+ by Norna's existing image model.
9
+
10
+ ## Goal
11
+
12
+ Norna diagrams should help a new reader understand the site model faster than
13
+ text alone.
14
+
15
+ A diagram should explain one idea clearly, not show every related feature. If a
16
+ topic needs several ideas, split it into several diagrams.
17
+
18
+ ## Current Scope
19
+
20
+ Use this workflow for diagrams in the Norna documentation site under `site/`.
21
+
22
+ Do not add diagram generation to the Norna build pipeline yet. Diagram creation
23
+ is an authoring workflow for now, not product functionality.
24
+
25
+ Do not require Excalidraw, MCP servers, browser plugins, or external layout
26
+ tools for the first experiment.
27
+
28
+ ## Diagram Brief
29
+
30
+ Before creating or replacing a diagram, write a short brief:
31
+
32
+ ```md
33
+ Purpose:
34
+ Audience:
35
+ Main message:
36
+ Concepts to show:
37
+ Concepts to avoid:
38
+ Norna features that must not be implied:
39
+ Suggested layout:
40
+ Mobile/readability requirement:
41
+ Where the SVG will live:
42
+ Markdown block and alt text:
43
+ ```
44
+
45
+ The brief can live in the discussion, in a source-only Markdown comment near
46
+ the image, or in `docs/design/` when it is useful for future maintenance.
47
+
48
+ ## Design Principles
49
+
50
+ - Show one primary flow or relationship.
51
+ - Prefer two to five main objects.
52
+ - Use short labels.
53
+ - Use one clear visual hierarchy.
54
+ - Keep arrows few and directional.
55
+ - Avoid diagrams where every object connects to every other object.
56
+ - Prefer multiple simple diagrams over one dense diagram.
57
+ - Make route order, URL slugs, section ids, image folders, source files, and
58
+ generated output visually distinct when those ideas matter.
59
+ - Do not show templates, components, custom rendering logic, route-level
60
+ technical configuration, or hosting integrations that Norna does not support.
61
+ - Do not show page layouts that Norna cannot actually render unless the diagram
62
+ is clearly abstract and not a product capability example.
63
+
64
+ ## Norna-Specific Accuracy
65
+
66
+ Diagrams must match the current Norna model:
67
+
68
+ - A Norna site is described with site files, not arbitrary project structure.
69
+ - `content.md` is the homepage content file.
70
+ - Additional pages are route directories with `route-content.md`.
71
+ - Route folder prefixes control route presentation order.
72
+ - Route ids become default URL slugs.
73
+ - Images belong under the image root for the page or route, usually grouped by
74
+ section id.
75
+ - Markdown remains the primary writing format.
76
+ - Norna managed media blocks cover fixed site patterns such as image stacks,
77
+ carousels, and card lists.
78
+ - `theme.md` controls visual presentation.
79
+ - `config.mjs` controls technical site configuration.
80
+ - `dist/` is generated static output.
81
+ - GitHub Pages is the integrated publishing target today.
82
+
83
+ ## SVG Requirements
84
+
85
+ Use hand-authored SVG for the first experiment.
86
+
87
+ SVG assets should:
88
+
89
+ - have a `viewBox`;
90
+ - include `<title>` and `<desc>`;
91
+ - use real text, not outlined text;
92
+ - avoid external fonts and external image files;
93
+ - remain readable at the size used on the site;
94
+ - work when scaled down on a phone;
95
+ - use restrained colors that fit the surrounding page;
96
+ - avoid decorative effects that compete with the explanation;
97
+ - keep text inside boxes with visible margins;
98
+ - be maintainable by editing the SVG source.
99
+
100
+ If a diagram is too wide for mobile, prefer splitting it into smaller diagrams
101
+ over relying on horizontal scrolling.
102
+
103
+ ## Source Placement
104
+
105
+ Store diagram SVG files as normal Norna managed image assets:
106
+
107
+ ```text
108
+ site/routes/<NNN-route-id>/images/<section-id>/<diagram-name>.svg
109
+ ```
110
+
111
+ Reference them with a Norna managed media block:
112
+
113
+ ````md
114
+ <!-- norna-image-provenance:
115
+ image: diagram-name.svg
116
+ source: hand-authored
117
+ Short maintenance note explaining why the diagram exists.
118
+ -->
119
+
120
+ ```norna-image-stack
121
+ - image: diagram-name.svg
122
+ alt: Concise explanation of what the diagram shows.
123
+ ```
124
+ ````
125
+
126
+ ## Review Checklist
127
+
128
+ Before accepting a diagram:
129
+
130
+ - The main message is obvious without reading the surrounding section.
131
+ - The diagram does not imply unsupported Norna functionality.
132
+ - URL, route, section, image, theme, config, and output terminology is
133
+ consistent with documentation.
134
+ - Text fits inside boxes at desktop and mobile widths.
135
+ - Arrows clarify the relationship instead of adding noise.
136
+ - The SVG has title, description, and useful alt text in Markdown.
137
+ - `norna content:check` passes.
138
+ - A desktop and mobile visual check has been done when layout changed.
139
+
140
+ ## Relationship To Excalidraw
141
+
142
+ Excalidraw can be useful as a sketching style or inspiration for box-and-arrow
143
+ clarity, but the first Norna experiment should not depend on Excalidraw files,
144
+ exports, or MCP tooling.
145
+
146
+ If future experiments show that diagram generation should be automated, evaluate
147
+ that as a separate authoring tool or CLI. Do not make it part of the site build
148
+ engine unless there is a clear product reason.
149
+
150
+ ## Future Questions
151
+
152
+ - Should diagram briefs become tracked files next to SVG assets?
153
+ - Should Norna have a separate authoring helper for diagrams?
154
+ - Should generated diagrams store both a source format and exported SVG?
155
+ - Should a later tool create Excalidraw-compatible files, plain SVG, or both?
156
+ - What review rules are needed before diagrams are used in starters or examples?