@nimtech/nimpress 2.3.1

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 (223) hide show
  1. package/.claude/rules/changelog-entries.md +229 -0
  2. package/.claude/rules/chunk-cycles.md +23 -0
  3. package/.claude/rules/component-modules.md +152 -0
  4. package/.claude/rules/dbml-pages.md +118 -0
  5. package/.claude/rules/deploy.md +47 -0
  6. package/.claude/rules/doc-pages.md +93 -0
  7. package/.claude/rules/docs-authoring.md +90 -0
  8. package/.claude/rules/docs-sync.md +59 -0
  9. package/.claude/rules/file-layout.md +49 -0
  10. package/.claude/rules/frontmatter.md +91 -0
  11. package/.claude/rules/page-types.md +108 -0
  12. package/.claude/rules/paths.md +27 -0
  13. package/.claude/rules/roadmap-entries.md +154 -0
  14. package/.claude/rules/style.md +61 -0
  15. package/LICENSE +201 -0
  16. package/README.md +137 -0
  17. package/bin/nimpress.mjs +7 -0
  18. package/config.schema.json +555 -0
  19. package/dist/DbmlNote-CTwTd5vM.js +21 -0
  20. package/dist/DbmlTable-BXIyJnLV.js +209 -0
  21. package/dist/cli.es.js +1265 -0
  22. package/dist/nimpress.es.js +8896 -0
  23. package/dist/plugin-DQtunTIv.js +8268 -0
  24. package/dist/plugin.es.js +23 -0
  25. package/dist/src/api/CodeExamples.svelte.d.ts +1 -0
  26. package/dist/src/api/MethodBadge.svelte.d.ts +1 -0
  27. package/dist/src/api/OpenApiRoot.svelte.d.ts +1 -0
  28. package/dist/src/api/Operation.svelte.d.ts +1 -0
  29. package/dist/src/api/ParamRow.svelte.d.ts +1 -0
  30. package/dist/src/api/Schema.svelte.d.ts +1 -0
  31. package/dist/src/api/TryDialog.svelte.d.ts +1 -0
  32. package/dist/src/api/TryPanel.svelte.d.ts +1 -0
  33. package/dist/src/api/refs.d.ts +12 -0
  34. package/dist/src/api/refs.d.ts.map +1 -0
  35. package/dist/src/api/tryState.d.ts +21 -0
  36. package/dist/src/api/tryState.d.ts.map +1 -0
  37. package/dist/src/api/types.d.ts +63 -0
  38. package/dist/src/api/types.d.ts.map +1 -0
  39. package/dist/src/auth/AccountMenu.svelte.d.ts +1 -0
  40. package/dist/src/auth/guard.d.ts +5 -0
  41. package/dist/src/auth/guard.d.ts.map +1 -0
  42. package/dist/src/auth/session.d.ts +8 -0
  43. package/dist/src/auth/session.d.ts.map +1 -0
  44. package/dist/src/banner.d.ts +23 -0
  45. package/dist/src/banner.d.ts.map +1 -0
  46. package/dist/src/cli/export.d.ts +4 -0
  47. package/dist/src/cli/export.d.ts.map +1 -0
  48. package/dist/src/cli/guard.d.ts +3 -0
  49. package/dist/src/cli/guard.d.ts.map +1 -0
  50. package/dist/src/cli/init.d.ts +2 -0
  51. package/dist/src/cli/init.d.ts.map +1 -0
  52. package/dist/src/cli/lint.d.ts +11 -0
  53. package/dist/src/cli/lint.d.ts.map +1 -0
  54. package/dist/src/cli/modules.d.ts +3 -0
  55. package/dist/src/cli/modules.d.ts.map +1 -0
  56. package/dist/src/cli/shared.d.ts +6 -0
  57. package/dist/src/cli/shared.d.ts.map +1 -0
  58. package/dist/src/cli/site.d.ts +7 -0
  59. package/dist/src/cli/site.d.ts.map +1 -0
  60. package/dist/src/cli.d.ts +5 -0
  61. package/dist/src/cli.d.ts.map +1 -0
  62. package/dist/src/config/base.d.ts +4 -0
  63. package/dist/src/config/base.d.ts.map +1 -0
  64. package/dist/src/config/chunkCycles.d.ts +10 -0
  65. package/dist/src/config/chunkCycles.d.ts.map +1 -0
  66. package/dist/src/config/defaults.d.ts +4 -0
  67. package/dist/src/config/defaults.d.ts.map +1 -0
  68. package/dist/src/config/html.d.ts +3 -0
  69. package/dist/src/config/html.d.ts.map +1 -0
  70. package/dist/src/config/load.d.ts +20 -0
  71. package/dist/src/config/load.d.ts.map +1 -0
  72. package/dist/src/config/paths.d.ts +8 -0
  73. package/dist/src/config/paths.d.ts.map +1 -0
  74. package/dist/src/config/schema.d.ts +1238 -0
  75. package/dist/src/config/schema.d.ts.map +1 -0
  76. package/dist/src/config/viteConfig.d.ts +11 -0
  77. package/dist/src/config/viteConfig.d.ts.map +1 -0
  78. package/dist/src/dbml/erd.d.ts +59 -0
  79. package/dist/src/dbml/erd.d.ts.map +1 -0
  80. package/dist/src/framework/configStore.d.ts +7 -0
  81. package/dist/src/framework/configStore.d.ts.map +1 -0
  82. package/dist/src/framework/createNimpressApp.d.ts +10 -0
  83. package/dist/src/framework/createNimpressApp.d.ts.map +1 -0
  84. package/dist/src/framework/gated.d.ts +5 -0
  85. package/dist/src/framework/gated.d.ts.map +1 -0
  86. package/dist/src/framework/hashSpy.d.ts +7 -0
  87. package/dist/src/framework/hashSpy.d.ts.map +1 -0
  88. package/dist/src/framework/pageMeta.d.ts +4 -0
  89. package/dist/src/framework/pageMeta.d.ts.map +1 -0
  90. package/dist/src/framework/pageStyles.d.ts +2 -0
  91. package/dist/src/framework/pageStyles.d.ts.map +1 -0
  92. package/dist/src/framework/router.d.ts +5 -0
  93. package/dist/src/framework/router.d.ts.map +1 -0
  94. package/dist/src/framework/stores/feed.d.ts +8 -0
  95. package/dist/src/framework/stores/feed.d.ts.map +1 -0
  96. package/dist/src/framework/stores/sidebar.d.ts +4 -0
  97. package/dist/src/framework/stores/sidebar.d.ts.map +1 -0
  98. package/dist/src/framework/stores/theme.d.ts +6 -0
  99. package/dist/src/framework/stores/theme.d.ts.map +1 -0
  100. package/dist/src/framework/stores/viewer.d.ts +6 -0
  101. package/dist/src/framework/stores/viewer.d.ts.map +1 -0
  102. package/dist/src/icons/FullscreenIcon.svelte.d.ts +1 -0
  103. package/dist/src/icons/IconAdd.svelte.d.ts +1 -0
  104. package/dist/src/icons/IconChevron.svelte.d.ts +1 -0
  105. package/dist/src/icons/IconClear.svelte.d.ts +1 -0
  106. package/dist/src/icons/IconConsole.svelte.d.ts +1 -0
  107. package/dist/src/icons/IconDock.svelte.d.ts +1 -0
  108. package/dist/src/icons/IconDownload.svelte.d.ts +1 -0
  109. package/dist/src/icons/IconJson.svelte.d.ts +1 -0
  110. package/dist/src/icons/IconMinus.svelte.d.ts +1 -0
  111. package/dist/src/icons/IconMock.svelte.d.ts +1 -0
  112. package/dist/src/icons/IconMoon.svelte.d.ts +1 -0
  113. package/dist/src/icons/IconOpen.svelte.d.ts +1 -0
  114. package/dist/src/icons/IconReload.svelte.d.ts +1 -0
  115. package/dist/src/icons/IconRemove.svelte.d.ts +1 -0
  116. package/dist/src/icons/IconShadow.svelte.d.ts +1 -0
  117. package/dist/src/icons/IconSun.svelte.d.ts +1 -0
  118. package/dist/src/index.d.ts +44 -0
  119. package/dist/src/index.d.ts.map +1 -0
  120. package/dist/src/layout/App.svelte.d.ts +1 -0
  121. package/dist/src/layout/AppRoot.svelte.d.ts +1 -0
  122. package/dist/src/layout/BackToTop.svelte.d.ts +1 -0
  123. package/dist/src/layout/Breadcrumbs.svelte.d.ts +1 -0
  124. package/dist/src/layout/GatedPage.svelte.d.ts +1 -0
  125. package/dist/src/layout/Header.svelte.d.ts +1 -0
  126. package/dist/src/layout/HomePage.svelte.d.ts +1 -0
  127. package/dist/src/layout/RightToc.svelte.d.ts +1 -0
  128. package/dist/src/layout/Sidebar.svelte.d.ts +1 -0
  129. package/dist/src/layout/SidebarNode.svelte.d.ts +1 -0
  130. package/dist/src/markdown/Actions.svelte.d.ts +1 -0
  131. package/dist/src/markdown/CalloutCheck.svelte.d.ts +1 -0
  132. package/dist/src/markdown/CalloutInfo.svelte.d.ts +1 -0
  133. package/dist/src/markdown/CalloutNote.svelte.d.ts +1 -0
  134. package/dist/src/markdown/CalloutTip.svelte.d.ts +1 -0
  135. package/dist/src/markdown/CalloutWarning.svelte.d.ts +1 -0
  136. package/dist/src/markdown/Card.svelte.d.ts +1 -0
  137. package/dist/src/markdown/CardGroup.svelte.d.ts +1 -0
  138. package/dist/src/markdown/ChangelogPage.svelte.d.ts +1 -0
  139. package/dist/src/markdown/CodeBlock.svelte.d.ts +1 -0
  140. package/dist/src/markdown/CodeEditor.svelte.d.ts +1 -0
  141. package/dist/src/markdown/CodeGroup.svelte.d.ts +1 -0
  142. package/dist/src/markdown/ComponentEmbed.svelte.d.ts +1 -0
  143. package/dist/src/markdown/ComponentPage.svelte.d.ts +1 -0
  144. package/dist/src/markdown/ControlNode.svelte.d.ts +1 -0
  145. package/dist/src/markdown/DBMLBlock.svelte.d.ts +1 -0
  146. package/dist/src/markdown/DbmlNote.svelte.d.ts +1 -0
  147. package/dist/src/markdown/DbmlPage.svelte.d.ts +1 -0
  148. package/dist/src/markdown/DbmlTable.svelte.d.ts +1 -0
  149. package/dist/src/markdown/DragDivider.svelte.d.ts +1 -0
  150. package/dist/src/markdown/Feature.svelte.d.ts +1 -0
  151. package/dist/src/markdown/FeatureGrid.svelte.d.ts +1 -0
  152. package/dist/src/markdown/HeroPage.svelte.d.ts +1 -0
  153. package/dist/src/markdown/MermaidBlock.svelte.d.ts +1 -0
  154. package/dist/src/markdown/Page.svelte.d.ts +1 -0
  155. package/dist/src/markdown/PlanetFooter.svelte.d.ts +1 -0
  156. package/dist/src/markdown/RoadmapBlob.svelte.d.ts +1 -0
  157. package/dist/src/markdown/RoadmapNode.svelte.d.ts +1 -0
  158. package/dist/src/markdown/RoadmapPage.svelte.d.ts +1 -0
  159. package/dist/src/markdown/SubscribeDialog.svelte.d.ts +1 -0
  160. package/dist/src/mock/index.d.ts +42 -0
  161. package/dist/src/mock/index.d.ts.map +1 -0
  162. package/dist/src/modules/autoStory.d.ts +5 -0
  163. package/dist/src/modules/autoStory.d.ts.map +1 -0
  164. package/dist/src/modules/componentData.d.ts +14 -0
  165. package/dist/src/modules/componentData.d.ts.map +1 -0
  166. package/dist/src/modules/harness.d.ts +25 -0
  167. package/dist/src/modules/harness.d.ts.map +1 -0
  168. package/dist/src/modules/importStorybook.d.ts +12 -0
  169. package/dist/src/modules/importStorybook.d.ts.map +1 -0
  170. package/dist/src/modules/lint.d.ts +3 -0
  171. package/dist/src/modules/lint.d.ts.map +1 -0
  172. package/dist/src/modules/pages.d.ts +10 -0
  173. package/dist/src/modules/pages.d.ts.map +1 -0
  174. package/dist/src/modules/parse/dts.d.ts +4 -0
  175. package/dist/src/modules/parse/dts.d.ts.map +1 -0
  176. package/dist/src/modules/parse/svelte.d.ts +3 -0
  177. package/dist/src/modules/parse/svelte.d.ts.map +1 -0
  178. package/dist/src/modules/parse/typeMembers.d.ts +64 -0
  179. package/dist/src/modules/parse/typeMembers.d.ts.map +1 -0
  180. package/dist/src/modules/parse/vue.d.ts +3 -0
  181. package/dist/src/modules/parse/vue.d.ts.map +1 -0
  182. package/dist/src/modules/resolve.d.ts +9 -0
  183. package/dist/src/modules/resolve.d.ts.map +1 -0
  184. package/dist/src/modules/schema.d.ts +53 -0
  185. package/dist/src/modules/schema.d.ts.map +1 -0
  186. package/dist/src/modules/stories.d.ts +4 -0
  187. package/dist/src/modules/stories.d.ts.map +1 -0
  188. package/dist/src/search/SearchModal.svelte.d.ts +1 -0
  189. package/dist/src/search/indexer.d.ts +5 -0
  190. package/dist/src/search/indexer.d.ts.map +1 -0
  191. package/dist/src/story/index.d.ts +17 -0
  192. package/dist/src/story/index.d.ts.map +1 -0
  193. package/dist/src/subscribe/subscribe.d.ts +5 -0
  194. package/dist/src/subscribe/subscribe.d.ts.map +1 -0
  195. package/dist/src/types.d.ts +531 -0
  196. package/dist/src/types.d.ts.map +1 -0
  197. package/dist/story.es.js +10 -0
  198. package/dist/style.css +1 -0
  199. package/dist/tailwind.preset.d.ts +4 -0
  200. package/dist/tailwind.preset.d.ts.map +1 -0
  201. package/dist/tailwind.preset.es.js +67 -0
  202. package/dist/typeMembers-CNvE92EX.js +538 -0
  203. package/package.json +125 -0
  204. package/src/harness/svelte/ComponentHarness.svelte +12 -0
  205. package/src/harness/svelte/ComponentHarnessEffects.svelte +24 -0
  206. package/src/harness/svelte/ComponentHarnessOverlay.svelte +9 -0
  207. package/src/harness/svelte/ComponentStory.svelte +9 -0
  208. package/src/harness/svelte/DefaultHarness.svelte +15 -0
  209. package/src/harness/svelte/HarnessRoot.svelte +22 -0
  210. package/src/harness/svelte/context.svelte.ts +33 -0
  211. package/src/harness/svelte/index.ts +12 -0
  212. package/src/harness/vue/ComponentHarness.vue +16 -0
  213. package/src/harness/vue/ComponentHarnessEffects.vue +27 -0
  214. package/src/harness/vue/ComponentHarnessOverlay.vue +12 -0
  215. package/src/harness/vue/ComponentStory.vue +16 -0
  216. package/src/harness/vue/DefaultHarness.vue +14 -0
  217. package/src/harness/vue/context.ts +37 -0
  218. package/src/harness/vue/index.ts +11 -0
  219. package/src/mock/index.ts +88 -0
  220. package/src/styles/app.css +3 -0
  221. package/src/styles/preflight.css +540 -0
  222. package/src/styles/theme.css +81 -0
  223. package/src/styles/tokens.css +150 -0
@@ -0,0 +1,540 @@
1
+ .np-prose {
2
+ color: var(--np-text-primary);
3
+ font-size: 16px;
4
+ line-height: 1.7;
5
+ max-width: var(--np-content-max);
6
+ }
7
+
8
+ .np-prose > :first-child { margin-top: 0; }
9
+ .np-prose > :last-child { margin-bottom: 0; }
10
+
11
+ .np-prose h1 {
12
+ font-size: 34px;
13
+ line-height: 1.2;
14
+ font-weight: 700;
15
+ letter-spacing: -0.015em;
16
+ margin-top: 0;
17
+ margin-bottom: 18px;
18
+ color: var(--np-brand);
19
+ }
20
+
21
+ .np-prose h2 {
22
+ font-size: 26px;
23
+ line-height: 1.3;
24
+ font-weight: 600;
25
+ letter-spacing: -0.01em;
26
+ margin-top: 72px;
27
+ margin-bottom: 16px;
28
+ padding-top: 24px;
29
+ border-top: 1px solid var(--np-divider);
30
+ color: var(--np-text-primary);
31
+ position: relative;
32
+ }
33
+
34
+ .np-prose h2::before {
35
+ content: '';
36
+ position: absolute;
37
+ top: -1px;
38
+ left: 0;
39
+ width: 48px;
40
+ height: 2px;
41
+ background-color: var(--np-brand);
42
+ border-radius: 1px;
43
+ }
44
+
45
+ .np-prose h3 {
46
+ font-size: 20px;
47
+ line-height: 1.35;
48
+ font-weight: 600;
49
+ margin-top: 56px;
50
+ margin-bottom: 12px;
51
+ color: var(--np-text-primary);
52
+ border-left: 3px solid var(--np-brand);
53
+ padding-left: 12px;
54
+ margin-left: -15px;
55
+ }
56
+
57
+ .np-prose h4 {
58
+ font-size: 17px;
59
+ line-height: 1.4;
60
+ font-weight: 600;
61
+ margin-top: 40px;
62
+ margin-bottom: 10px;
63
+ color: var(--np-text-primary);
64
+ }
65
+
66
+ .np-prose h5 {
67
+ font-size: 14px;
68
+ line-height: 1.4;
69
+ font-weight: 700;
70
+ margin-top: 32px;
71
+ margin-bottom: 8px;
72
+ color: var(--np-brand);
73
+ text-transform: uppercase;
74
+ letter-spacing: 0.06em;
75
+ }
76
+
77
+ .np-prose h6 {
78
+ font-size: 12px;
79
+ line-height: 1.4;
80
+ font-weight: 700;
81
+ margin-top: 28px;
82
+ margin-bottom: 6px;
83
+ color: var(--np-text-muted);
84
+ text-transform: uppercase;
85
+ letter-spacing: 0.08em;
86
+ }
87
+
88
+ .np-prose h1 + h2,
89
+ .np-prose h2 + h3,
90
+ .np-prose h3 + h4 {
91
+ margin-top: 24px;
92
+ }
93
+
94
+ .np-prose h1 a,
95
+ .np-prose h2 a,
96
+ .np-prose h3 a,
97
+ .np-prose h4 a,
98
+ .np-prose h5 a,
99
+ .np-prose h6 a {
100
+ color: inherit;
101
+ text-decoration: none;
102
+ border-bottom: 0;
103
+ }
104
+
105
+ .np-prose h1 a:hover,
106
+ .np-prose h2 a:hover,
107
+ .np-prose h3 a:hover,
108
+ .np-prose h4 a:hover,
109
+ .np-prose h5 a:hover,
110
+ .np-prose h6 a:hover {
111
+ color: inherit;
112
+ border-bottom: 0;
113
+ }
114
+
115
+ .np-prose .header-anchor {
116
+ text-decoration: none;
117
+ }
118
+
119
+ .np-prose p {
120
+ margin-top: 0;
121
+ margin-bottom: 16px;
122
+ }
123
+
124
+ .np-prose a {
125
+ color: var(--np-link);
126
+ text-decoration: underline;
127
+ text-decoration-color: color-mix(in srgb, var(--np-link) 35%, transparent);
128
+ text-underline-offset: 3px;
129
+ text-decoration-thickness: 1px;
130
+ border-bottom: 0;
131
+ }
132
+
133
+ .np-prose a:hover {
134
+ text-decoration-color: var(--np-link);
135
+ }
136
+
137
+ .np-prose code {
138
+ background-color: var(--np-bg-code-inline);
139
+ color: var(--np-text-primary);
140
+ border: 1px solid var(--np-border);
141
+ border-radius: var(--np-radius-sm);
142
+ padding: 1px 6px;
143
+ font-size: 0.875em;
144
+ }
145
+
146
+ .np-prose pre {
147
+ background-color: var(--np-bg-code-block);
148
+ color: var(--np-text-code-block);
149
+ border-radius: var(--np-radius-md);
150
+ padding: 16px;
151
+ overflow-x: auto;
152
+ font-size: 13.5px;
153
+ line-height: 1.6;
154
+ margin: 16px 0;
155
+ }
156
+
157
+ .np-prose pre code {
158
+ background: transparent;
159
+ border: 0;
160
+ padding: 0;
161
+ font-size: inherit;
162
+ color: inherit;
163
+ }
164
+
165
+ .np-prose ul,
166
+ .np-prose ol {
167
+ padding-left: 24px;
168
+ margin: 0 0 16px;
169
+ }
170
+
171
+ .np-prose li {
172
+ margin-bottom: 6px;
173
+ }
174
+
175
+ .np-prose li > p { margin-bottom: 6px; }
176
+
177
+ .np-prose ul ul,
178
+ .np-prose ul ol,
179
+ .np-prose ol ul,
180
+ .np-prose ol ol {
181
+ margin: 6px 0;
182
+ }
183
+
184
+ .np-prose blockquote {
185
+ border-left: 4px solid var(--np-border);
186
+ padding: 4px 16px;
187
+ color: var(--np-text-secondary);
188
+ margin: 16px 0;
189
+ background-color: color-mix(in srgb, var(--np-bg-surface) 60%, transparent);
190
+ border-radius: 0 var(--np-radius-md) var(--np-radius-md) 0;
191
+ }
192
+
193
+ .np-prose blockquote > :last-child { margin-bottom: 0; }
194
+
195
+ .np-prose table {
196
+ width: 100%;
197
+ border-collapse: collapse;
198
+ margin: 16px 0;
199
+ font-size: 14px;
200
+ border: 1px solid var(--np-border);
201
+ border-radius: var(--np-radius-md);
202
+ overflow: hidden;
203
+ }
204
+
205
+ .np-prose thead {
206
+ background-color: var(--np-table-header-bg);
207
+ }
208
+
209
+ .np-prose tbody tr:nth-child(even) {
210
+ background-color: var(--np-table-row-alt);
211
+ }
212
+
213
+ .np-prose tbody tr:hover {
214
+ background-color: var(--np-table-row-hover);
215
+ }
216
+
217
+ .np-prose th,
218
+ .np-prose td {
219
+ padding: 10px 14px;
220
+ border-bottom: 1px solid var(--np-divider);
221
+ text-align: left;
222
+ vertical-align: top;
223
+ }
224
+
225
+ .np-prose tbody tr:last-child td {
226
+ border-bottom: 0;
227
+ }
228
+
229
+ .np-prose th {
230
+ font-weight: 600;
231
+ color: var(--np-text-secondary);
232
+ font-size: 12px;
233
+ text-transform: uppercase;
234
+ letter-spacing: 0.06em;
235
+ border-bottom: 1px solid var(--np-border);
236
+ }
237
+
238
+ .np-prose hr {
239
+ border: 0;
240
+ border-top: 1px solid var(--np-divider);
241
+ margin: 32px 0;
242
+ }
243
+
244
+ .np-prose img {
245
+ max-width: 100%;
246
+ border-radius: var(--np-radius-md);
247
+ margin: 16px 0;
248
+ }
249
+
250
+ .np-prose kbd {
251
+ font-family: var(--np-font-mono);
252
+ background-color: var(--np-bg-surface);
253
+ border: 1px solid var(--np-border);
254
+ border-bottom-width: 2px;
255
+ border-radius: var(--np-radius-sm);
256
+ padding: 1px 6px;
257
+ font-size: 12px;
258
+ }
259
+
260
+ .np-prose details {
261
+ border: 1px solid var(--np-border);
262
+ border-radius: var(--np-radius-md);
263
+ padding: 12px 16px;
264
+ margin: 16px 0;
265
+ background-color: var(--np-bg-surface);
266
+ }
267
+
268
+ .np-prose summary {
269
+ cursor: pointer;
270
+ font-weight: 500;
271
+ color: var(--np-text-primary);
272
+ }
273
+
274
+ .np-callout {
275
+ border-radius: var(--np-radius-md);
276
+ padding: 12px 16px;
277
+ border-left: 4px solid;
278
+ margin: 16px 0;
279
+ display: flex;
280
+ gap: 12px;
281
+ align-items: flex-start;
282
+ }
283
+
284
+ .np-callout-body { flex: 1; min-width: 0; }
285
+ .np-callout-body > :last-child { margin-bottom: 0; }
286
+
287
+ .np-callout-title {
288
+ display: inline-flex;
289
+ align-items: center;
290
+ gap: 6px;
291
+ font-weight: 700;
292
+ font-size: 11px;
293
+ text-transform: uppercase;
294
+ letter-spacing: 0.1em;
295
+ margin: 0 0 8px;
296
+ padding: 3px 10px;
297
+ border-radius: var(--np-radius-pill);
298
+ border: 1px solid;
299
+ line-height: 1.2;
300
+ }
301
+
302
+ .np-callout-title::before {
303
+ font-size: 12px;
304
+ line-height: 1;
305
+ }
306
+
307
+ .np-callout-tip {
308
+ border-color: var(--np-tip);
309
+ background-color: color-mix(in srgb, var(--np-tip) 10%, transparent);
310
+ }
311
+ .np-callout-tip .np-callout-title {
312
+ color: var(--np-tip);
313
+ background-color: color-mix(in srgb, var(--np-tip) 14%, transparent);
314
+ border-color: color-mix(in srgb, var(--np-tip) 40%, transparent);
315
+ }
316
+ .np-callout-tip .np-callout-title::before { content: '✦'; }
317
+
318
+ .np-callout-note {
319
+ border-color: var(--np-note);
320
+ background-color: color-mix(in srgb, var(--np-note) 10%, transparent);
321
+ }
322
+ .np-callout-note .np-callout-title {
323
+ color: var(--np-note);
324
+ background-color: color-mix(in srgb, var(--np-note) 14%, transparent);
325
+ border-color: color-mix(in srgb, var(--np-note) 40%, transparent);
326
+ }
327
+ .np-callout-note .np-callout-title::before { content: 'ℹ'; }
328
+
329
+ .np-callout-warning {
330
+ border-color: var(--np-warning);
331
+ background-color: color-mix(in srgb, var(--np-warning) 10%, transparent);
332
+ }
333
+ .np-callout-warning .np-callout-title {
334
+ color: var(--np-warning);
335
+ background-color: color-mix(in srgb, var(--np-warning) 14%, transparent);
336
+ border-color: color-mix(in srgb, var(--np-warning) 40%, transparent);
337
+ }
338
+ .np-callout-warning .np-callout-title::before { content: '⚠'; }
339
+
340
+ .np-callout-info {
341
+ border-color: var(--np-info);
342
+ background-color: color-mix(in srgb, var(--np-info) 10%, transparent);
343
+ }
344
+ .np-callout-info .np-callout-title {
345
+ color: var(--np-info);
346
+ background-color: color-mix(in srgb, var(--np-info) 14%, transparent);
347
+ border-color: color-mix(in srgb, var(--np-info) 40%, transparent);
348
+ }
349
+ .np-callout-info .np-callout-title::before { content: 'ℹ'; }
350
+
351
+ .np-callout-check {
352
+ border-color: var(--np-check);
353
+ background-color: color-mix(in srgb, var(--np-check) 10%, transparent);
354
+ }
355
+ .np-callout-check .np-callout-title {
356
+ color: var(--np-check);
357
+ background-color: color-mix(in srgb, var(--np-check) 14%, transparent);
358
+ border-color: color-mix(in srgb, var(--np-check) 40%, transparent);
359
+ }
360
+ .np-callout-check .np-callout-title::before { content: '✓'; }
361
+
362
+ .np-details {
363
+ padding: 0;
364
+ border: 1px solid var(--np-border);
365
+ border-radius: var(--np-radius-md);
366
+ background-color: var(--np-bg-surface);
367
+ margin: 16px 0;
368
+ overflow: hidden;
369
+ }
370
+ .np-details-summary {
371
+ display: flex;
372
+ align-items: center;
373
+ cursor: pointer;
374
+ padding: 10px 12px;
375
+ font-weight: 500;
376
+ font-size: 13px;
377
+ color: var(--np-text-primary);
378
+ list-style: none;
379
+ line-height: 1.4;
380
+ }
381
+ .np-details-summary::-webkit-details-marker { display: none; }
382
+ .np-details-summary::before {
383
+ content: '›';
384
+ display: inline-block;
385
+ margin-right: 8px;
386
+ transition: transform 150ms ease;
387
+ font-size: 16px;
388
+ line-height: 1;
389
+ }
390
+ .np-details[open] > .np-details-summary::before { transform: rotate(90deg); }
391
+ .np-details-body {
392
+ padding: 0;
393
+ margin: 0;
394
+ border-top: 1px solid var(--np-divider);
395
+ }
396
+ .np-details-body > * {
397
+ margin: 0;
398
+ }
399
+ .np-details-body > .np-code-group {
400
+ margin: 0;
401
+ border: 0;
402
+ border-radius: 0;
403
+ }
404
+ .np-details-body > pre,
405
+ .np-details-body > .np-code-mount {
406
+ margin: 0;
407
+ border: 0;
408
+ border-radius: 0;
409
+ }
410
+
411
+ .np-code-group {
412
+ border: 1px solid var(--np-border);
413
+ border-radius: var(--np-radius-md);
414
+ margin: 16px 0;
415
+ overflow: hidden;
416
+ }
417
+ .np-code-group :global(pre) { margin: 0; border-radius: 0; }
418
+
419
+ .np-cards-grid {
420
+ display: grid;
421
+ grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
422
+ gap: 16px;
423
+ margin: 16px 0;
424
+ }
425
+
426
+ .np-prose dl {
427
+ display: grid;
428
+ grid-template-columns: minmax(0, 260px) minmax(0, 1fr);
429
+ gap: 0;
430
+ margin: 28px 0;
431
+ padding: 0;
432
+ border-radius: var(--np-radius-lg);
433
+ border: 1px solid var(--np-border);
434
+ overflow: hidden;
435
+ background-color: var(--np-bg-card);
436
+ box-shadow: 0 1px 0 0 color-mix(in srgb, var(--np-brand) 6%, transparent) inset;
437
+ }
438
+ .np-prose dt {
439
+ position: relative;
440
+ font-family: var(--np-font-mono);
441
+ font-size: 13.5px;
442
+ font-weight: 600;
443
+ color: var(--np-brand);
444
+ padding: 16px 16px 16px 28px;
445
+ margin: 0;
446
+ background-color: color-mix(in srgb, var(--np-brand) 6%, transparent);
447
+ border-top: 1px solid var(--np-divider);
448
+ border-right: 1px solid var(--np-divider);
449
+ letter-spacing: 0.01em;
450
+ word-break: break-word;
451
+ display: flex;
452
+ align-items: flex-start;
453
+ transition: background-color 0.15s ease;
454
+ }
455
+ .np-prose dt::before {
456
+ content: '';
457
+ position: absolute;
458
+ left: 12px;
459
+ top: 21px;
460
+ width: 6px;
461
+ height: 6px;
462
+ border-radius: 50%;
463
+ background-color: var(--np-brand);
464
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--np-brand) 18%, transparent);
465
+ }
466
+ .np-prose dl > dt:first-of-type,
467
+ .np-prose dl > dt:first-of-type + dd {
468
+ border-top: 0;
469
+ }
470
+ .np-prose dd {
471
+ margin: 0;
472
+ padding: 16px 22px;
473
+ color: var(--np-text-secondary);
474
+ font-size: 14.5px;
475
+ line-height: 1.65;
476
+ border-top: 1px solid var(--np-divider);
477
+ background-color: transparent;
478
+ transition: background-color 0.15s ease;
479
+ }
480
+ .np-prose dt:hover,
481
+ .np-prose dt:hover + dd {
482
+ background-color: color-mix(in srgb, var(--np-brand) 10%, transparent);
483
+ }
484
+ .np-prose dd > p { margin: 0 0 6px; }
485
+ .np-prose dd > p:last-child { margin-bottom: 0; }
486
+ .np-prose dd code {
487
+ font-family: var(--np-font-mono);
488
+ background-color: var(--np-bg-code-inline);
489
+ padding: 1px 6px;
490
+ border-radius: var(--np-radius-sm);
491
+ border: 1px solid var(--np-border);
492
+ font-size: 12.5px;
493
+ }
494
+ @media (max-width: 720px) {
495
+ .np-prose dl {
496
+ grid-template-columns: 1fr;
497
+ }
498
+ .np-prose dt {
499
+ border-right: 0;
500
+ border-bottom: 1px solid var(--np-divider);
501
+ padding: 12px 14px 10px 28px;
502
+ }
503
+ .np-prose dt::before {
504
+ top: 17px;
505
+ }
506
+ .np-prose dd {
507
+ border-top: 0;
508
+ padding: 8px 14px 16px;
509
+ }
510
+ }
511
+
512
+ .np-features {
513
+ display: grid;
514
+ grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
515
+ gap: 20px;
516
+ margin: 32px 0;
517
+ padding: 0;
518
+ background: transparent;
519
+ border: 0;
520
+ width: 100%;
521
+ box-sizing: border-box;
522
+ }
523
+ .np-features[data-columns="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
524
+ .np-features[data-columns="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
525
+ .np-features[data-columns="4"] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
526
+ @media (max-width: 720px) {
527
+ .np-features,
528
+ .np-features[data-columns] { grid-template-columns: 1fr; }
529
+ }
530
+
531
+ .np-page-loading {
532
+ min-height: 320px;
533
+ }
534
+ .np-page-error {
535
+ padding: 24px;
536
+ color: var(--np-callout-warning, #b04a2a);
537
+ background-color: color-mix(in srgb, var(--np-brand) 8%, transparent);
538
+ border-radius: var(--np-radius-md);
539
+ margin: 24px;
540
+ }
@@ -0,0 +1,81 @@
1
+ /*
2
+ * @nimtech/nimpress/theme.css
3
+ *
4
+ * Theme override template for the markdown renderer.
5
+ *
6
+ * Two layers are available:
7
+ * 1. CSS custom properties on :root and html.dark (from tokens.css).
8
+ * Override these to recolor or resize tokens consistently.
9
+ * 2. Class selectors below. Override these to change typography, spacing,
10
+ * callout chrome, or table chrome on a per-element basis.
11
+ *
12
+ * Import this file directly in your consumer entry CSS to copy the defaults,
13
+ * then comment out any block you want the framework to keep owning.
14
+ *
15
+ * @import 'tailwindcss';
16
+ * @import '@nimtech/nimpress/style.css';
17
+ * @import '@nimtech/nimpress/theme.css';
18
+ *
19
+ * Class inventory used by the markdown renderer:
20
+ *
21
+ * Layout
22
+ * .np-page Wrapper around the page content
23
+ * .np-prose The rendered article body
24
+ *
25
+ * Inline + block markdown
26
+ * .np-prose h1..h6 Headings
27
+ * .np-prose p Paragraphs
28
+ * .np-prose a Links
29
+ * .np-prose code Inline code
30
+ * .np-prose pre Code blocks (before CodeBlock hydration)
31
+ * .np-prose ul/ol Lists
32
+ * .np-prose li List items
33
+ * .np-prose blockquote
34
+ * .np-prose table / thead / th / td
35
+ * .np-prose img
36
+ * .np-prose hr
37
+ * .np-prose kbd
38
+ * .np-prose details / summary
39
+ * .header-anchor The anchor link wrapping each heading text
40
+ *
41
+ * Callouts (from :::tip / :::note / :::warning / :::info / :::check)
42
+ * .np-callout
43
+ * .np-callout-body
44
+ * .np-callout-title
45
+ * .np-callout-tip
46
+ * .np-callout-note
47
+ * .np-callout-warning
48
+ * .np-callout-info
49
+ * .np-callout-check
50
+ *
51
+ * Cards directive (from :::cards / :::card)
52
+ * .np-cards-grid
53
+ *
54
+ * Mermaid host (rehydrated client-side)
55
+ * .np-mermaid
56
+ *
57
+ * DBML host (rehydrated client-side)
58
+ * .np-dbml
59
+ * .np-dbml-wrapper
60
+ * .np-dbml-host
61
+ * .np-dbml-toolbar
62
+ *
63
+ * Code block component
64
+ * .np-code
65
+ * .np-code-bar
66
+ * .np-code-lang
67
+ * .np-code-copy
68
+ * .np-code-body
69
+ */
70
+
71
+ /* Example overrides. Uncomment and adjust. */
72
+
73
+ /*
74
+ .np-prose h1 { font-size: 36px; }
75
+ .np-prose h2 { border-top: 0; padding-top: 0; }
76
+ .np-prose a { text-decoration: none; }
77
+
78
+ .np-callout-tip { background-color: rgba(0, 200, 120, 0.08); border-color: #00C878; }
79
+
80
+ .np-code-bar { background-color: var(--np-bg-surface); }
81
+ */