@invisibleloop/pulse 0.20.5 → 0.20.7

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 (164) hide show
  1. package/.claude/pulse-checklist.md +1 -2
  2. package/CLAUDE.md +1 -2
  3. package/docs/.claude/pulse-checklist.md +1 -2
  4. package/docs/public/coutumes.css +21 -44
  5. package/docs/public/docs.css +73 -6
  6. package/docs/public/home-brut.css +175 -191
  7. package/docs/public/pulse-ui.css +8 -1037
  8. package/docs/public/retrowheels.css +23 -0
  9. package/docs/public/shop.css +35 -1
  10. package/docs/public/sparkys.css +56 -23
  11. package/docs/public/theme.css +51 -7
  12. package/docs/server.js +0 -11
  13. package/docs/src/lib/component-page.js +2 -1
  14. package/docs/src/lib/nav.js +0 -11
  15. package/docs/src/pages/accessibility.js +2 -1
  16. package/docs/src/pages/actions.js +2 -1
  17. package/docs/src/pages/auth.js +2 -1
  18. package/docs/src/pages/caching.js +2 -1
  19. package/docs/src/pages/components/accordion.js +2 -1
  20. package/docs/src/pages/components/alert.js +2 -1
  21. package/docs/src/pages/components/app-badge.js +2 -1
  22. package/docs/src/pages/components/avatar.js +2 -1
  23. package/docs/src/pages/components/badge.js +2 -1
  24. package/docs/src/pages/components/breadcrumbs.js +2 -1
  25. package/docs/src/pages/components/button.js +2 -1
  26. package/docs/src/pages/components/card.js +2 -1
  27. package/docs/src/pages/components/charts.js +4 -2
  28. package/docs/src/pages/components/checkbox.js +2 -1
  29. package/docs/src/pages/components/cluster.js +2 -1
  30. package/docs/src/pages/components/container.js +2 -1
  31. package/docs/src/pages/components/cta.js +2 -1
  32. package/docs/src/pages/components/divider.js +2 -1
  33. package/docs/src/pages/components/empty.js +2 -1
  34. package/docs/src/pages/components/feature.js +2 -1
  35. package/docs/src/pages/components/fieldset.js +2 -1
  36. package/docs/src/pages/components/fileupload.js +2 -1
  37. package/docs/src/pages/components/footer.js +2 -1
  38. package/docs/src/pages/components/grid.js +11 -6
  39. package/docs/src/pages/components/heading.js +2 -1
  40. package/docs/src/pages/components/hero.js +2 -1
  41. package/docs/src/pages/components/icons.js +2 -1
  42. package/docs/src/pages/components/image.js +2 -1
  43. package/docs/src/pages/components/input.js +2 -1
  44. package/docs/src/pages/components/media.js +2 -1
  45. package/docs/src/pages/components/modal.js +2 -1
  46. package/docs/src/pages/components/nav.js +2 -1
  47. package/docs/src/pages/components/phone-frame.js +2 -1
  48. package/docs/src/pages/components/progress.js +2 -1
  49. package/docs/src/pages/components/prose.js +2 -1
  50. package/docs/src/pages/components/pullquote.js +2 -1
  51. package/docs/src/pages/components/radio.js +2 -1
  52. package/docs/src/pages/components/rating.js +2 -1
  53. package/docs/src/pages/components/search.js +2 -1
  54. package/docs/src/pages/components/section.js +2 -1
  55. package/docs/src/pages/components/segmented.js +2 -1
  56. package/docs/src/pages/components/select.js +2 -1
  57. package/docs/src/pages/components/slider.js +2 -1
  58. package/docs/src/pages/components/spinner.js +2 -1
  59. package/docs/src/pages/components/stack.js +2 -1
  60. package/docs/src/pages/components/stat.js +2 -1
  61. package/docs/src/pages/components/stepper.js +2 -1
  62. package/docs/src/pages/components/table.js +2 -1
  63. package/docs/src/pages/components/textarea.js +2 -1
  64. package/docs/src/pages/components/toggle.js +2 -1
  65. package/docs/src/pages/components/tooltip.js +2 -1
  66. package/docs/src/pages/components.js +2 -5
  67. package/docs/src/pages/config.js +2 -1
  68. package/docs/src/pages/constraints.js +2 -1
  69. package/docs/src/pages/deploy.js +2 -1
  70. package/docs/src/pages/error-pages.js +2 -1
  71. package/docs/src/pages/extending.js +2 -1
  72. package/docs/src/pages/faq.js +2 -1
  73. package/docs/src/pages/forms.js +2 -1
  74. package/docs/src/pages/getting-started.js +2 -1
  75. package/docs/src/pages/guard.js +2 -1
  76. package/docs/src/pages/home.js +24 -15
  77. package/docs/src/pages/how-it-works.js +22 -15
  78. package/docs/src/pages/hydration.js +2 -1
  79. package/docs/src/pages/images.js +2 -1
  80. package/docs/src/pages/markdown.js +2 -1
  81. package/docs/src/pages/meta.js +2 -1
  82. package/docs/src/pages/mutations.js +2 -1
  83. package/docs/src/pages/navigation.js +2 -1
  84. package/docs/src/pages/performance.js +2 -1
  85. package/docs/src/pages/persist.js +2 -1
  86. package/docs/src/pages/project-structure.js +2 -1
  87. package/docs/src/pages/prompt-examples.js +2 -1
  88. package/docs/src/pages/raw-responses.js +2 -1
  89. package/docs/src/pages/routing.js +2 -1
  90. package/docs/src/pages/server-api.js +2 -1
  91. package/docs/src/pages/server-data.js +2 -1
  92. package/docs/src/pages/slash-commands.js +2 -1
  93. package/docs/src/pages/spec.js +2 -1
  94. package/docs/src/pages/state.js +2 -1
  95. package/docs/src/pages/store.js +2 -1
  96. package/docs/src/pages/streaming.js +2 -1
  97. package/docs/src/pages/stripe.js +2 -1
  98. package/docs/src/pages/supabase.js +2 -1
  99. package/docs/src/pages/templates/coutumes.js +83 -72
  100. package/docs/src/pages/templates/mobile-app.js +36 -9
  101. package/docs/src/pages/templates/retrowheels.js +17 -4
  102. package/docs/src/pages/templates/shop.js +21 -10
  103. package/docs/src/pages/templates/sparkys.js +35 -20
  104. package/docs/src/pages/templates.js +2 -2
  105. package/docs/src/pages/testing.js +2 -1
  106. package/docs/src/pages/validation.js +2 -1
  107. package/examples/.claude/pulse-checklist.md +1 -2
  108. package/examples/examples.test.js +4 -4
  109. package/examples/pricing.js +21 -3
  110. package/examples/public/pulse-ui.css +8 -1037
  111. package/examples/retrowheels.css +23 -0
  112. package/examples/retrowheels.js +17 -4
  113. package/package.json +5 -1
  114. package/public/.pulse-ui-version +1 -1
  115. package/public/pulse-ui.css +8 -1037
  116. package/src/agent/checklist.md +1 -2
  117. package/src/agent/guide-components.md +43 -67
  118. package/src/agent/guide-design-gallery.md +14 -14
  119. package/src/agent/guide-design-references.md +21 -21
  120. package/src/agent/guide-styles.md +2 -2
  121. package/src/agent/guide-templates.md +6 -6
  122. package/src/agent/identity.md +1 -1
  123. package/src/agent/workflow.md +1 -2
  124. package/src/mcp/server.js +31 -24
  125. package/src/ui/index.js +0 -27
  126. package/src/ui/ui.test.js +0 -137
  127. package/types/charts.d.ts +61 -0
  128. package/types/ui.d.ts +1 -129
  129. package/docs/src/pages/components/banner.js +0 -44
  130. package/docs/src/pages/components/carousel.js +0 -71
  131. package/docs/src/pages/components/code-window.js +0 -56
  132. package/docs/src/pages/components/decorate.js +0 -74
  133. package/docs/src/pages/components/gallery.js +0 -102
  134. package/docs/src/pages/components/list.js +0 -111
  135. package/docs/src/pages/components/marquee.js +0 -76
  136. package/docs/src/pages/components/photo-card.js +0 -74
  137. package/docs/src/pages/components/pricing.js +0 -67
  138. package/docs/src/pages/components/testimonial.js +0 -48
  139. package/docs/src/pages/components/timeline.js +0 -226
  140. package/src/ui/banner.js +0 -41
  141. package/src/ui/brand-statement.js +0 -58
  142. package/src/ui/carousel.js +0 -59
  143. package/src/ui/code-window.js +0 -39
  144. package/src/ui/colophon.js +0 -29
  145. package/src/ui/contact-row.js +0 -41
  146. package/src/ui/decorate.js +0 -55
  147. package/src/ui/display-heading.js +0 -44
  148. package/src/ui/drop-cap.js +0 -29
  149. package/src/ui/editorial-hero.js +0 -63
  150. package/src/ui/entry-list.js +0 -36
  151. package/src/ui/gallery.js +0 -60
  152. package/src/ui/image-pair.js +0 -72
  153. package/src/ui/list.js +0 -36
  154. package/src/ui/marquee.js +0 -48
  155. package/src/ui/photo-card.js +0 -44
  156. package/src/ui/pricing.js +0 -56
  157. package/src/ui/product-card.js +0 -65
  158. package/src/ui/section-label.js +0 -38
  159. package/src/ui/service-card.js +0 -47
  160. package/src/ui/stat-grid.js +0 -40
  161. package/src/ui/testimonial.js +0 -59
  162. package/src/ui/timeline.js +0 -72
  163. package/src/ui/top-strip.js +0 -47
  164. package/src/ui/trust-list.js +0 -46
@@ -335,6 +335,29 @@ h1, h2, h3, h4, h5, h6,
335
335
  padding-top: var(--ui-space-3);
336
336
  }
337
337
 
338
+ /* Review cards — replaces the removed testimonial() component */
339
+ .rw-review-stars {
340
+ display: flex;
341
+ gap: 2px;
342
+ color: var(--rw-orange-dark);
343
+ margin-bottom: var(--ui-space-3);
344
+ }
345
+
346
+ .rw-review-quote {
347
+ font-style: italic;
348
+ color: var(--ui-text);
349
+ }
350
+
351
+ .rw-review-name {
352
+ font-family: var(--ui-font-display);
353
+ font-weight: 900;
354
+ }
355
+
356
+ .rw-review-role {
357
+ font-size: var(--ui-text-sm);
358
+ color: var(--ui-muted);
359
+ }
360
+
338
361
  /* --------------------------------------------------------------------------
339
362
  Visit section — hours + booking card
340
363
  -------------------------------------------------------------------------- */
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Demonstrates:
5
5
  * - Retro/vintage light-theme branding (1970s enamel-sign aesthetic)
6
- * - stat(), testimonial(), cta(), card(), badge() layout components
6
+ * - stat(), cta(), card(), badge() layout components
7
7
  * - Icon imports: iconMapPin, iconPhone, iconClock, iconSend, iconStar
8
8
  * - Async action with onStart / run / onSuccess / onError lifecycle
9
9
  * - State-driven form (idle → sending → sent) with disabled submit
@@ -11,14 +11,14 @@
11
11
  * - System web fonts (Rockwell + Courier New) — zero extra HTTP requests
12
12
  * - Full-bleed hero with background image + gradient overlay
13
13
  * - Stat strip with inverted navy background
14
- * - Drop cap typography for editorial prose section
14
+ * - Reviews rendered with card() (quote + name/role + star rating)
15
15
  * - Opening hours list with Courier monospace styling
16
16
  *
17
17
  * Run: node examples/dev.server.js → http://localhost:3001/retrowheels
18
18
  */
19
19
 
20
20
  import {
21
- nav, footer, button, input, stat, testimonial, cta, card, badge,
21
+ nav, footer, button, input, stat, cta, card, badge,
22
22
  } from '../src/ui/index.js'
23
23
  import { iconMapPin, iconPhone, iconClock, iconSend, iconStar } from '../src/ui/icons.js'
24
24
 
@@ -119,6 +119,19 @@ const renderHourRow = (h) => `
119
119
  </li>
120
120
  `
121
121
 
122
+ // Review card — replaces the removed testimonial() component with card()
123
+ const renderReview = (r) => card({
124
+ content: `
125
+ <div class="rw-review-stars" aria-hidden="true">${iconStar({ size: 14 }).repeat(r.rating || 0)}</div>
126
+ <p class="rw-review-quote">&ldquo;${r.quote}&rdquo;</p>
127
+ `,
128
+ footer: `
129
+ <p class="rw-review-name">${r.name}</p>
130
+ <p class="rw-review-role">${r.role}</p>
131
+ `,
132
+ class: 'rw-review',
133
+ })
134
+
122
135
  // ---------------------------------------------------------------------------
123
136
  // Spec
124
137
  // ---------------------------------------------------------------------------
@@ -225,7 +238,7 @@ export default {
225
238
  <h2 class="rw-section-title">What folks have been saying.</h2>
226
239
  <p class="rw-section-deck">Reviews collected from customers, riders, and the occasional postcard pinned to the workshop wall.</p>
227
240
  <div class="rw-service-grid">
228
- ${REVIEWS.map(r => testimonial(r)).join('')}
241
+ ${REVIEWS.map(renderReview).join('')}
229
242
  </div>
230
243
  </div>
231
244
  </section>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@invisibleloop/pulse",
3
- "version": "0.20.5",
3
+ "version": "0.20.7",
4
4
  "type": "module",
5
5
  "description": "AI-first frontend framework. The spec is the source of truth.",
6
6
  "license": "MIT",
@@ -45,6 +45,10 @@
45
45
  "types": "./types/ui.d.ts",
46
46
  "default": "./src/ui/index.js"
47
47
  },
48
+ "./charts": {
49
+ "types": "./types/charts.d.ts",
50
+ "default": "./src/ui/charts.js"
51
+ },
48
52
  "./testing": {
49
53
  "types": "./types/testing.d.ts",
50
54
  "default": "./src/testing/index.js"
@@ -1 +1 @@
1
- 0.20.5
1
+ 0.20.7