@mieweb/ui 0.10.0-dev.24 → 0.10.0-dev.25

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 (147) hide show
  1. package/dist/brands/bluehive.cjs +3 -3
  2. package/dist/brands/bluehive.css +3 -0
  3. package/dist/brands/bluehive.js +1 -1
  4. package/dist/brands/index.cjs +9 -9
  5. package/dist/brands/index.js +3 -3
  6. package/dist/{chunk-YQDA366U.js → chunk-33DEVA3P.js} +2 -2
  7. package/dist/{chunk-YQDA366U.js.map → chunk-33DEVA3P.js.map} +1 -1
  8. package/dist/{chunk-WNJRS7Y7.cjs → chunk-3ZWCIPFT.cjs} +4 -2
  9. package/dist/chunk-3ZWCIPFT.cjs.map +1 -0
  10. package/dist/{chunk-J5CSLNCN.cjs → chunk-6VFDHJSO.cjs} +2 -2
  11. package/dist/{chunk-J5CSLNCN.cjs.map → chunk-6VFDHJSO.cjs.map} +1 -1
  12. package/dist/{chunk-ZTW4KODY.js → chunk-6ZPTZTKN.js} +3 -3
  13. package/dist/{chunk-ZTW4KODY.js.map → chunk-6ZPTZTKN.js.map} +1 -1
  14. package/dist/{chunk-SQ2D7AON.cjs → chunk-AAYXCZMV.cjs} +6 -6
  15. package/dist/{chunk-SQ2D7AON.cjs.map → chunk-AAYXCZMV.cjs.map} +1 -1
  16. package/dist/{chunk-WCDJFMZO.cjs → chunk-ADW7ZYCY.cjs} +1235 -495
  17. package/dist/chunk-ADW7ZYCY.cjs.map +1 -0
  18. package/dist/{chunk-2G75X6TS.cjs → chunk-AHHFFXJR.cjs} +3 -3
  19. package/dist/{chunk-2G75X6TS.cjs.map → chunk-AHHFFXJR.cjs.map} +1 -1
  20. package/dist/{chunk-HQ4CGVWX.cjs → chunk-B2X732V3.cjs} +7 -7
  21. package/dist/{chunk-HQ4CGVWX.cjs.map → chunk-B2X732V3.cjs.map} +1 -1
  22. package/dist/{chunk-UAMXCMST.cjs → chunk-CFI3TQMA.cjs} +3 -3
  23. package/dist/{chunk-UAMXCMST.cjs.map → chunk-CFI3TQMA.cjs.map} +1 -1
  24. package/dist/{chunk-2ABWFQQH.js → chunk-CRS2CQWM.js} +4 -4
  25. package/dist/{chunk-2ABWFQQH.js.map → chunk-CRS2CQWM.js.map} +1 -1
  26. package/dist/{chunk-MZNCLXXU.js → chunk-D22GE27K.js} +3 -3
  27. package/dist/{chunk-MZNCLXXU.js.map → chunk-D22GE27K.js.map} +1 -1
  28. package/dist/{chunk-IH55BEB3.js → chunk-DZFGTWYF.js} +6 -6
  29. package/dist/{chunk-IH55BEB3.js.map → chunk-DZFGTWYF.js.map} +1 -1
  30. package/dist/{chunk-TF7YWJHU.js → chunk-E2PBPQGS.js} +3 -3
  31. package/dist/{chunk-TF7YWJHU.js.map → chunk-E2PBPQGS.js.map} +1 -1
  32. package/dist/chunk-FBCDYTWM.js +385 -0
  33. package/dist/chunk-FBCDYTWM.js.map +1 -0
  34. package/dist/{chunk-R2O72G6Z.cjs → chunk-HC3NAN55.cjs} +7 -7
  35. package/dist/{chunk-R2O72G6Z.cjs.map → chunk-HC3NAN55.cjs.map} +1 -1
  36. package/dist/{chunk-DSB4DKWG.js → chunk-K34DXMLZ.js} +2 -2
  37. package/dist/{chunk-DSB4DKWG.js.map → chunk-K34DXMLZ.js.map} +1 -1
  38. package/dist/{chunk-Z5V7SAZ4.js → chunk-KFEN2SRZ.js} +3 -3
  39. package/dist/{chunk-Z5V7SAZ4.js.map → chunk-KFEN2SRZ.js.map} +1 -1
  40. package/dist/{chunk-MQPG3KVK.cjs → chunk-KGKBZN3T.cjs} +2 -2
  41. package/dist/{chunk-MQPG3KVK.cjs.map → chunk-KGKBZN3T.cjs.map} +1 -1
  42. package/dist/{chunk-G45FBKKV.js → chunk-P4VGVJVI.js} +4 -4
  43. package/dist/{chunk-G45FBKKV.js.map → chunk-P4VGVJVI.js.map} +1 -1
  44. package/dist/{chunk-3T7QGLNB.js → chunk-PJEL5ZZV.js} +4 -2
  45. package/dist/chunk-PJEL5ZZV.js.map +1 -0
  46. package/dist/{chunk-LJZKEMAH.cjs → chunk-R5Z7AOVU.cjs} +10 -10
  47. package/dist/{chunk-LJZKEMAH.cjs.map → chunk-R5Z7AOVU.cjs.map} +1 -1
  48. package/dist/{chunk-RJ6NTJHC.js → chunk-SRMTRD7F.js} +3 -3
  49. package/dist/{chunk-RJ6NTJHC.js.map → chunk-SRMTRD7F.js.map} +1 -1
  50. package/dist/{chunk-KHSFJTEX.js → chunk-T4JYUICS.js} +1177 -444
  51. package/dist/chunk-T4JYUICS.js.map +1 -0
  52. package/dist/{chunk-NJ6MY6V5.js → chunk-T5BBZQ66.js} +3 -3
  53. package/dist/{chunk-NJ6MY6V5.js.map → chunk-T5BBZQ66.js.map} +1 -1
  54. package/dist/{chunk-VYPPQPSZ.cjs → chunk-TJCX4OML.cjs} +3 -3
  55. package/dist/{chunk-VYPPQPSZ.cjs.map → chunk-TJCX4OML.cjs.map} +1 -1
  56. package/dist/{chunk-TAXD5ADA.cjs → chunk-UEDTZYGI.cjs} +3 -3
  57. package/dist/{chunk-TAXD5ADA.cjs.map → chunk-UEDTZYGI.cjs.map} +1 -1
  58. package/dist/{chunk-UQ3VVR6A.cjs → chunk-UPWIJC6I.cjs} +3 -3
  59. package/dist/{chunk-UQ3VVR6A.cjs.map → chunk-UPWIJC6I.cjs.map} +1 -1
  60. package/dist/{chunk-QNDP6PE5.cjs → chunk-VCCGR4J3.cjs} +92 -3
  61. package/dist/chunk-VCCGR4J3.cjs.map +1 -0
  62. package/dist/{chunk-S7WCHDBO.js → chunk-VCI2Y7ST.js} +3 -3
  63. package/dist/{chunk-S7WCHDBO.js.map → chunk-VCI2Y7ST.js.map} +1 -1
  64. package/dist/{chunk-Z4JR23IB.cjs → chunk-VOQJHSXN.cjs} +9 -9
  65. package/dist/{chunk-Z4JR23IB.cjs.map → chunk-VOQJHSXN.cjs.map} +1 -1
  66. package/dist/{chunk-EK3BCET6.js → chunk-WFVE36PO.js} +92 -3
  67. package/dist/chunk-WFVE36PO.js.map +1 -0
  68. package/dist/chunk-XI74P5F2.cjs +424 -0
  69. package/dist/chunk-XI74P5F2.cjs.map +1 -0
  70. package/dist/components/BoardView/index.d.cts +2 -90
  71. package/dist/components/BoardView/index.d.ts +2 -90
  72. package/dist/components/CalendarView/index.d.cts +1 -1
  73. package/dist/components/CalendarView/index.d.ts +1 -1
  74. package/dist/components/CountryCodeDropdown/index.cjs +5 -5
  75. package/dist/components/CountryCodeDropdown/index.js +2 -2
  76. package/dist/components/Dropdown/index.cjs +9 -9
  77. package/dist/components/Dropdown/index.js +2 -2
  78. package/dist/components/GanttView/index.d.cts +1 -1
  79. package/dist/components/GanttView/index.d.ts +1 -1
  80. package/dist/components/GlossaryTooltip/index.cjs +3 -3
  81. package/dist/components/GlossaryTooltip/index.js +2 -2
  82. package/dist/components/Markdown/index.cjs +15 -15
  83. package/dist/components/Markdown/index.js +3 -3
  84. package/dist/components/MediaEditor/index.cjs +10 -10
  85. package/dist/components/MediaEditor/index.js +5 -5
  86. package/dist/components/RadialExplorer/index.cjs +1 -1
  87. package/dist/components/RadialExplorer/index.js +1 -1
  88. package/dist/components/RichTextEditor/index.cjs +6 -6
  89. package/dist/components/RichTextEditor/index.js +3 -3
  90. package/dist/components/Select/index.cjs +4 -4
  91. package/dist/components/Select/index.js +2 -2
  92. package/dist/components/SourceTip/index.cjs +3 -3
  93. package/dist/components/SourceTip/index.js +2 -2
  94. package/dist/components/SuperChat/index.cjs +11 -11
  95. package/dist/components/SuperChat/index.js +4 -4
  96. package/dist/components/SuperChat/plugins/index.cjs +5 -5
  97. package/dist/components/SuperChat/plugins/index.js +4 -4
  98. package/dist/components/ViewSet/index.d.cts +1 -101
  99. package/dist/components/ViewSet/index.d.ts +1 -101
  100. package/dist/components/ViewSwitcher/index.d.cts +4 -57
  101. package/dist/components/ViewSwitcher/index.d.ts +4 -57
  102. package/dist/datavis.cjs +1 -1
  103. package/dist/datavis.js +1 -1
  104. package/dist/deck.cjs +3360 -0
  105. package/dist/deck.cjs.map +1 -0
  106. package/dist/deck.d.cts +712 -0
  107. package/dist/deck.d.ts +712 -0
  108. package/dist/deck.js +3316 -0
  109. package/dist/deck.js.map +1 -0
  110. package/dist/esheet.cjs +10 -10
  111. package/dist/esheet.js +7 -7
  112. package/dist/hooks/index.cjs +15 -15
  113. package/dist/hooks/index.js +3 -3
  114. package/dist/icons-wBacj6BW.d.cts +142 -0
  115. package/dist/icons-wBacj6BW.d.ts +142 -0
  116. package/dist/index-DoYYWsNc.d.cts +127 -0
  117. package/dist/index-DoYYWsNc.d.ts +127 -0
  118. package/dist/index.cjs +604 -551
  119. package/dist/index.cjs.map +1 -1
  120. package/dist/index.d.cts +313 -4
  121. package/dist/index.d.ts +313 -4
  122. package/dist/index.js +60 -59
  123. package/dist/index.js.map +1 -1
  124. package/dist/maps.cjs +160 -0
  125. package/dist/maps.cjs.map +1 -0
  126. package/dist/maps.d.cts +42 -0
  127. package/dist/maps.d.ts +42 -0
  128. package/dist/maps.js +138 -0
  129. package/dist/maps.js.map +1 -0
  130. package/dist/styles/effects.css +100 -0
  131. package/dist/styles/init.css +3 -0
  132. package/dist/styles.css +1 -1
  133. package/dist/tailwind-preset.cjs +4 -4
  134. package/dist/tailwind-preset.js +1 -1
  135. package/dist/templates.cjs +82 -29
  136. package/dist/templates.d.cts +316 -142
  137. package/dist/templates.d.ts +316 -142
  138. package/dist/templates.js +2 -1
  139. package/dist/{types-C3HQe74F.d.cts → types-DsdZvEI1.d.cts} +7 -1
  140. package/dist/{types-C3HQe74F.d.ts → types-DsdZvEI1.d.ts} +7 -1
  141. package/package.json +27 -1
  142. package/dist/chunk-3T7QGLNB.js.map +0 -1
  143. package/dist/chunk-EK3BCET6.js.map +0 -1
  144. package/dist/chunk-KHSFJTEX.js.map +0 -1
  145. package/dist/chunk-QNDP6PE5.cjs.map +0 -1
  146. package/dist/chunk-WCDJFMZO.cjs.map +0 -1
  147. package/dist/chunk-WNJRS7Y7.cjs.map +0 -1
@@ -1,65 +1,8 @@
1
1
  import * as React from 'react';
2
+ import { S as SectionBaseProps, T as TemplateLink, a as TemplateIconRegistry, b as TemplateImage, c as TemplateComponents, d as SectionAlign, e as SectionTone } from './icons-wBacj6BW.js';
3
+ export { f as TemplateIcon, g as TemplateIconComponent, h as TemplateIconName, i as TemplateIconProps, j as TemplateImageProps, k as TemplateLinkProps, t as templateIcons } from './icons-wBacj6BW.js';
2
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
3
- import * as lucide_react from 'lucide-react';
4
-
5
- /** A navigational call to action. Always rendered as a real anchor so it is crawlable. */
6
- interface TemplateLink {
7
- label: string;
8
- href: string;
9
- /** Rendered as `data-track` for the site's analytics to pick up. */
10
- trackingId?: string;
11
- }
12
- interface TemplateImage {
13
- src: string;
14
- alt: string;
15
- width?: number;
16
- height?: number;
17
- }
18
- /**
19
- * Surface a section sits on. `brand` is a saturated primary band with light
20
- * text in both colour modes; the others follow the active theme.
21
- */
22
- type SectionTone = 'default' | 'muted' | 'brand';
23
- type SectionAlign = 'start' | 'center';
24
- /** Props a site's image component receives, e.g. an adapter around `next/image`. */
25
- interface TemplateImageProps extends TemplateImage {
26
- className?: string;
27
- /** True for the likely LCP image (the hero); load it eagerly at high priority. */
28
- priority?: boolean;
29
- }
30
- /** Props a site's link component receives, e.g. `next/link`. */
31
- interface TemplateLinkProps {
32
- href: string;
33
- className?: string;
34
- children?: React.ReactNode;
35
- tabIndex?: number;
36
- 'aria-current'?: 'page';
37
- 'data-slot'?: string;
38
- 'data-track'?: string;
39
- }
40
- /**
41
- * Swap the plain `<img>` and `<a>` the sections render for the site's own,
42
- * so pages get optimized images and client-side navigation.
43
- */
44
- interface TemplateComponents {
45
- Image?: React.ComponentType<TemplateImageProps>;
46
- Link?: React.ComponentType<TemplateLinkProps>;
47
- }
48
- /** Fields every landing section shares. Everything except `components` is JSON-serializable. */
49
- interface SectionBaseProps extends Omit<React.HTMLAttributes<HTMLElement>, 'title' | 'children'> {
50
- /** Anchor id for in-page links (`#faq`). */
51
- id?: string;
52
- /** Short label above the heading. */
53
- eyebrow?: string;
54
- /** Section heading, rendered as an `<h2>`. */
55
- title?: string;
56
- /** Supporting paragraph under the heading. */
57
- description?: string;
58
- tone?: SectionTone;
59
- align?: SectionAlign;
60
- /** Site image and link components; `LandingPage` passes its own to every section. */
61
- components?: TemplateComponents;
62
- }
5
+ import 'lucide-react';
63
6
 
64
7
  interface ComparisonRow {
65
8
  feature: string;
@@ -107,84 +50,6 @@ interface FaqSectionProps extends SectionBaseProps {
107
50
  }
108
51
  declare const FaqSection: React.ForwardRefExoticComponent<FaqSectionProps & React.RefAttributes<HTMLElement>>;
109
52
 
110
- type TemplateIconComponent = React.ComponentType<{
111
- className?: string;
112
- strokeWidth?: number;
113
- 'aria-hidden'?: boolean | 'true' | 'false';
114
- }>;
115
- /** Extra icon tokens a site maps to its own components; merged over the built-ins. */
116
- type TemplateIconRegistry = Record<string, TemplateIconComponent>;
117
- /**
118
- * Built-in icon tokens. Page data names an icon by token (`"shield-check"`)
119
- * rather than holding a component, so it stays JSON-serializable.
120
- */
121
- declare const templateIcons: {
122
- activity: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
123
- award: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
124
- 'badge-check': React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
125
- bell: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
126
- briefcase: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
127
- building: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
128
- calendar: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
129
- 'calendar-check': React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
130
- 'chart-column': React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
131
- 'chart-line': React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
132
- 'circle-check': React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
133
- 'clipboard-check': React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
134
- clock: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
135
- cloud: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
136
- database: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
137
- 'dollar-sign': React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
138
- factory: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
139
- 'file-text': React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
140
- flask: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
141
- globe: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
142
- 'graduation-cap': React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
143
- handshake: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
144
- 'hard-hat': React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
145
- headset: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
146
- 'heart-pulse': React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
147
- hospital: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
148
- layers: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
149
- leaf: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
150
- lightbulb: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
151
- lock: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
152
- mail: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
153
- 'map-pin': React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
154
- 'message-square': React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
155
- microscope: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
156
- phone: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
157
- plane: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
158
- plug: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
159
- rocket: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
160
- scale: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
161
- search: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
162
- settings: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
163
- shield: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
164
- 'shield-check': React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
165
- smartphone: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
166
- sparkles: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
167
- stethoscope: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
168
- syringe: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
169
- target: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
170
- timer: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
171
- 'trending-up': React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
172
- truck: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
173
- 'user-check': React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
174
- users: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
175
- workflow: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
176
- wrench: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
177
- zap: React.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
178
- };
179
- type TemplateIconName = keyof typeof templateIcons;
180
- interface TemplateIconProps {
181
- /** A built-in token, a token from `icons`, or a lettermark of up to four characters. */
182
- name: string;
183
- icons?: TemplateIconRegistry;
184
- className?: string;
185
- }
186
- declare function TemplateIcon({ name, icons, className }: TemplateIconProps): react_jsx_runtime.JSX.Element | null;
187
-
188
53
  interface FeatureItem {
189
54
  title: string;
190
55
  description: string;
@@ -217,6 +82,10 @@ interface HeroSectionProps extends Omit<SectionBaseProps, 'align'> {
217
82
  ctaNote?: string;
218
83
  /** Short trust points rendered as a checked list. */
219
84
  highlights?: string[];
85
+ /** Dateline items under the heading, e.g. `['Benchmark report', '2027 edition']`. */
86
+ meta?: string[];
87
+ /** Brand mark above the heading. */
88
+ logo?: TemplateImage;
220
89
  image?: TemplateImage;
221
90
  /** Trail ending in the current page, which renders unlinked. */
222
91
  breadcrumbs?: TemplateLink[];
@@ -258,6 +127,8 @@ interface LeadFormSectionProps extends Omit<SectionBaseProps, 'align' | 'onSubmi
258
127
  submitTrackingId?: string;
259
128
  /** `split` puts the heading beside the form; `stacked` centres it above. */
260
129
  layout?: 'split' | 'stacked';
130
+ /** What the visitor gets, as a checked list under the heading — e.g. a gated report's contents. */
131
+ highlights?: string[];
261
132
  }
262
133
  declare const defaultLeadFormFields: LeadFormField[];
263
134
  declare const LeadFormSection: React.ForwardRefExoticComponent<LeadFormSectionProps & React.RefAttributes<HTMLElement>>;
@@ -342,6 +213,21 @@ interface SplitContentSectionProps extends Omit<SectionBaseProps, 'align'> {
342
213
  }
343
214
  declare const SplitContentSection: React.ForwardRefExoticComponent<SplitContentSectionProps & React.RefAttributes<HTMLElement>>;
344
215
 
216
+ /** Where a figure comes from: measured, estimated, or still being instrumented. */
217
+ type MetricStatus = 'live' | 'modeled' | 'maturing';
218
+ /** Translated badge text, per status. */
219
+ type MetricStatusLabels = Partial<Record<MetricStatus, string>>;
220
+ declare const defaultMetricStatusLabels: Record<MetricStatus, string>;
221
+ interface MetricStatusBadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
222
+ status: MetricStatus;
223
+ /** Override the visible label, e.g. for translation. */
224
+ label?: string;
225
+ /** Set on dark or brand surfaces. */
226
+ onDark?: boolean;
227
+ }
228
+ /** Labels a figure by provenance so readers can tell measured data from estimates. */
229
+ declare const MetricStatusBadge: React.ForwardRefExoticComponent<MetricStatusBadgeProps & React.RefAttributes<HTMLSpanElement>>;
230
+
345
231
  interface StatItem {
346
232
  /** Numbers are locale-formatted; strings render as written. */
347
233
  value: number | string;
@@ -354,9 +240,14 @@ interface StatItem {
354
240
  }
355
241
  interface StatsSectionProps extends SectionBaseProps {
356
242
  stats: StatItem[];
357
- variant?: 'plain' | 'cards';
243
+ /** `ruled` sets an accent rule beside each figure — a report's key-findings band. */
244
+ variant?: 'plain' | 'cards' | 'ruled';
358
245
  /** BCP 47 locale for number formatting. */
359
246
  locale?: string;
247
+ /** Provenance badge under the heading. */
248
+ status?: MetricStatus;
249
+ /** Translated text for the `status` badge. */
250
+ statusLabels?: MetricStatusLabels;
360
251
  }
361
252
  declare const StatsSection: React.ForwardRefExoticComponent<StatsSectionProps & React.RefAttributes<HTMLElement>>;
362
253
 
@@ -408,6 +299,261 @@ interface VideoSectionProps extends SectionBaseProps {
408
299
  }
409
300
  declare const VideoSection: React.ForwardRefExoticComponent<VideoSectionProps & React.RefAttributes<HTMLElement>>;
410
301
 
302
+ type BenchmarkValue = number | string | null;
303
+ interface BenchmarkColumn {
304
+ /** Key into each row's `values`. */
305
+ key: string;
306
+ label: string;
307
+ /** Number formatting, e.g. `{ style: 'currency', currency: 'USD', maximumFractionDigits: 0 }`. */
308
+ format?: Intl.NumberFormatOptions;
309
+ /** Draw a bar scaled to the column's largest value beside the number. */
310
+ bar?: boolean;
311
+ /** Tint the column \u2014 the figure readers should compare first. */
312
+ emphasis?: boolean;
313
+ }
314
+ interface BenchmarkRow {
315
+ label: string;
316
+ /** Second line under the label, e.g. a category. */
317
+ sublabel?: string;
318
+ href?: string;
319
+ /** Numbers are formatted by the column; strings render as written; `null` shows a dash. */
320
+ values: Record<string, BenchmarkValue>;
321
+ }
322
+ interface BenchmarkTableSectionProps extends Omit<SectionBaseProps, 'align'> {
323
+ columns: BenchmarkColumn[];
324
+ rows: BenchmarkRow[];
325
+ /** Header of the row-label column. */
326
+ rowHeader: string;
327
+ /** Visually hidden table caption; defaults to `title`. */
328
+ caption?: string;
329
+ /** Method note under the table. */
330
+ footnote?: string;
331
+ status?: MetricStatus;
332
+ /** Translated text for the `status` badge. */
333
+ statusLabels?: MetricStatusLabels;
334
+ /** BCP 47 locale for number formatting. */
335
+ locale?: string;
336
+ }
337
+ /**
338
+ * A benchmark table: labelled rows, formatted numeric columns, optional inline
339
+ * bars, and a sticky label column so wide tables scroll sideways on phones.
340
+ */
341
+ declare const BenchmarkTableSection: React.ForwardRefExoticComponent<BenchmarkTableSectionProps & React.RefAttributes<HTMLElement>>;
342
+
343
+ interface LinkGroup {
344
+ title: string;
345
+ description?: string;
346
+ links: TemplateLink[];
347
+ }
348
+ interface LinkGroupsSectionProps extends SectionBaseProps {
349
+ groups: LinkGroup[];
350
+ columns?: 2 | 3;
351
+ }
352
+ /** Grouped lists of internal links — "explore the pages behind these numbers". */
353
+ declare const LinkGroupsSection: React.ForwardRefExoticComponent<LinkGroupsSectionProps & React.RefAttributes<HTMLElement>>;
354
+
355
+ interface MetricDefinition {
356
+ label: string;
357
+ /** Unit chip, e.g. `hours` or `%`. */
358
+ unit?: string;
359
+ /** How the figure is (or will be) measured. */
360
+ description: string;
361
+ /** Leave unset until the figure is measured; the section then reads as a roadmap preview. */
362
+ value?: string;
363
+ }
364
+ interface MetricListSectionLabels {
365
+ preview?: string;
366
+ }
367
+ interface MetricListSectionProps extends Omit<SectionBaseProps, 'align'> {
368
+ metrics: MetricDefinition[];
369
+ /** Plain-language headline for the result. */
370
+ takeaway?: string;
371
+ /** Mark measured values as good news with a success rule. */
372
+ positive?: boolean;
373
+ /** Translated text for the derived live / maturing badge. */
374
+ statusLabels?: MetricStatusLabels;
375
+ labels?: MetricListSectionLabels;
376
+ }
377
+ /**
378
+ * Metric definitions with or without values. Publishing the definitions before
379
+ * the data lands is honest about what isn't measured yet; values drop in later
380
+ * with no layout change, and the badge flips from "maturing" to "live".
381
+ */
382
+ declare const MetricListSection: React.ForwardRefExoticComponent<MetricListSectionProps & React.RefAttributes<HTMLElement>>;
383
+
384
+ interface PdfEmbedSectionLabels {
385
+ download?: string;
386
+ open?: string;
387
+ /** Shown where the browser can't display PDFs inline. */
388
+ fallback?: string;
389
+ }
390
+ interface PdfEmbedSectionProps extends SectionBaseProps {
391
+ title: string;
392
+ /** Root-relative or absolute URL of the PDF. */
393
+ src: string;
394
+ /** Suggested filename for the download link. */
395
+ downloadAs?: string;
396
+ /** Viewer height ÷ width. US Letter portrait is ~1.29; 16:9 slides are 0.5625. */
397
+ aspectRatio?: number;
398
+ /** Callout above the viewer, e.g. "embedded videos only play in Acrobat". */
399
+ notice?: string;
400
+ labels?: PdfEmbedSectionLabels;
401
+ }
402
+ /**
403
+ * An inline PDF viewer with download and open-in-new-tab links. Uses
404
+ * `<object>`, whose fallback content (a link) shows where inline PDF isn't
405
+ * supported, so it needs no client JavaScript.
406
+ */
407
+ declare const PdfEmbedSection: React.ForwardRefExoticComponent<PdfEmbedSectionProps & React.RefAttributes<HTMLElement>>;
408
+
409
+ interface RankedItem {
410
+ label: string;
411
+ /** Sets the bar length, relative to the list's largest value. */
412
+ value: number;
413
+ /** Text shown for the value; defaults to the locale-formatted number. */
414
+ display?: string;
415
+ href?: string;
416
+ /** Small context to the side, e.g. `12 industries`. */
417
+ note?: string;
418
+ }
419
+ interface RankedList {
420
+ title?: string;
421
+ items: RankedItem[];
422
+ }
423
+ interface RankedListSectionProps extends Omit<SectionBaseProps, 'align'> {
424
+ /** One list, or several side by side (e.g. best- and worst-served). */
425
+ lists: RankedList[];
426
+ /** Prefix each item with its rank. */
427
+ numbered?: boolean;
428
+ /** `stacked` gives each item a card with the bar underneath; `inline` puts label, bar and value on one row. */
429
+ layout?: 'stacked' | 'inline';
430
+ bar?: 'primary' | 'accent' | 'success';
431
+ status?: MetricStatus;
432
+ /** Translated text for the `status` badge. */
433
+ statusLabels?: MetricStatusLabels;
434
+ /** BCP 47 locale for number formatting. */
435
+ locale?: string;
436
+ }
437
+ /** Ranked horizontal bars \u2014 top services, most-searched terms, best- and worst-served regions. */
438
+ declare const RankedListSection: React.ForwardRefExoticComponent<RankedListSectionProps & React.RefAttributes<HTMLElement>>;
439
+
440
+ interface ReportAuthor {
441
+ name: string;
442
+ /** Job title or credentials. */
443
+ role?: string;
444
+ /** Author page; the name links here. */
445
+ href?: string;
446
+ avatar?: TemplateImage;
447
+ /** External profiles, e.g. `{ label: 'LinkedIn', href }`. */
448
+ profiles?: TemplateLink[];
449
+ }
450
+ interface ReportBylineLabels {
451
+ /** Visually hidden section heading. */
452
+ heading?: string;
453
+ by?: string;
454
+ published?: string;
455
+ updated?: string;
456
+ }
457
+ interface ReportBylineProps extends Omit<SectionBaseProps, 'title' | 'eyebrow' | 'description' | 'align'> {
458
+ authors: ReportAuthor[];
459
+ /** Display date, formatted by the site. */
460
+ published?: string;
461
+ updated?: string;
462
+ labels?: ReportBylineLabels;
463
+ }
464
+ /** Who wrote a report and when, with links to author pages and profiles. */
465
+ declare const ReportByline: React.ForwardRefExoticComponent<ReportBylineProps & React.RefAttributes<HTMLElement>>;
466
+
467
+ interface ReportLegendEntry {
468
+ status: MetricStatus;
469
+ /** What this label means in this report. */
470
+ description: string;
471
+ /** Override the badge text, e.g. for translation. */
472
+ label?: string;
473
+ }
474
+ interface ReportLegendProps extends SectionBaseProps {
475
+ entries: ReportLegendEntry[];
476
+ }
477
+ /** The key to a report's provenance badges, set near the top so readers know how to weigh every figure. */
478
+ declare const ReportLegend: React.ForwardRefExoticComponent<ReportLegendProps & React.RefAttributes<HTMLElement>>;
479
+
480
+ interface MethodologySource {
481
+ label: string;
482
+ description: string;
483
+ /** Link to the dataset or document itself. */
484
+ href?: string;
485
+ }
486
+ interface MethodologyNote {
487
+ title: string;
488
+ body: string;
489
+ }
490
+ interface ReportMethodologyLabels {
491
+ citation?: string;
492
+ sourceLink?: string;
493
+ }
494
+ interface ReportMethodologyProps extends SectionBaseProps {
495
+ sources: MethodologySource[];
496
+ /** Suggested citation, shown selectable in a monospace block. */
497
+ citation?: string;
498
+ /** Short notes such as the publishing cadence or known limitations. */
499
+ notes?: MethodologyNote[];
500
+ /** A closing panel of links, e.g. the API or dataset downloads. */
501
+ resources?: {
502
+ title: string;
503
+ description?: string;
504
+ links: TemplateLink[];
505
+ };
506
+ labels?: ReportMethodologyLabels;
507
+ }
508
+ /** Sources, how to cite, and caveats — the section that makes a report's figures checkable. */
509
+ declare const ReportMethodology: React.ForwardRefExoticComponent<ReportMethodologyProps & React.RefAttributes<HTMLElement>>;
510
+
511
+ interface TilePosition {
512
+ code: string;
513
+ name: string;
514
+ /** Zero-based grid row. */
515
+ row: number;
516
+ /** Zero-based grid column. */
517
+ col: number;
518
+ }
519
+ /** US states and DC on an 11-column tile grid, every state the same size. */
520
+ declare const usStateTiles: TilePosition[];
521
+ type TileBucket = 0 | 1 | 2 | 3 | 4;
522
+ /**
523
+ * Quartile buckets for a set of values: 1 (lowest) to 4 (highest), and 0 for
524
+ * a missing value. Run it in the data layer; pass the result to `TileCartogramSection`.
525
+ */
526
+ declare function quartileBuckets(values: Record<string, number | null | undefined>): Record<string, TileBucket>;
527
+
528
+ interface TileValue {
529
+ bucket: TileBucket;
530
+ /** Read out with the tile's name, e.g. `12.4 providers per 100k`. */
531
+ detail?: string;
532
+ }
533
+ interface TileLegendEntry {
534
+ bucket: TileBucket;
535
+ label: string;
536
+ }
537
+ interface TileCartogramSectionProps extends Omit<SectionBaseProps, 'align'> {
538
+ /** Values keyed by tile code. Tiles with no entry render as bucket 0. */
539
+ values: Record<string, TileValue>;
540
+ legend: TileLegendEntry[];
541
+ /** Tile positions; defaults to `usStateTiles`. */
542
+ layout?: TilePosition[];
543
+ /** Heading of the map card. */
544
+ mapTitle?: string;
545
+ mapDescription?: string;
546
+ status?: MetricStatus;
547
+ /** Translated text for the `status` badge. */
548
+ statusLabels?: MetricStatusLabels;
549
+ }
550
+ /**
551
+ * A tile-grid map: every region the same size, shaded by bucket, so small
552
+ * states are as visible as large ones. Each tile is a list item that reads its
553
+ * full name and detail to screen readers.
554
+ */
555
+ declare const TileCartogramSection: React.ForwardRefExoticComponent<TileCartogramSectionProps & React.RefAttributes<HTMLElement>>;
556
+
411
557
  /** A section the site renders itself, looked up by name in `LandingPage`'s `custom` map. */
412
558
  interface CustomBlock {
413
559
  type: 'custom';
@@ -449,7 +595,25 @@ type LandingBlock = ({
449
595
  action: string;
450
596
  }) | ({
451
597
  type: 'cta';
452
- } & BlockData<CtaSectionProps>) | CustomBlock;
598
+ } & BlockData<CtaSectionProps>) | ({
599
+ type: 'report-legend';
600
+ } & BlockData<ReportLegendProps>) | ({
601
+ type: 'benchmark-table';
602
+ } & BlockData<BenchmarkTableSectionProps>) | ({
603
+ type: 'ranked-list';
604
+ } & BlockData<RankedListSectionProps>) | ({
605
+ type: 'tile-cartogram';
606
+ } & BlockData<TileCartogramSectionProps>) | ({
607
+ type: 'metric-list';
608
+ } & BlockData<MetricListSectionProps>) | ({
609
+ type: 'methodology';
610
+ } & BlockData<ReportMethodologyProps>) | ({
611
+ type: 'byline';
612
+ } & BlockData<ReportBylineProps>) | ({
613
+ type: 'link-groups';
614
+ } & BlockData<LinkGroupsSectionProps>) | ({
615
+ type: 'pdf-embed';
616
+ } & BlockData<PdfEmbedSectionProps>) | CustomBlock;
453
617
  type LandingBlockType = LandingBlock['type'];
454
618
  interface LandingPageProps extends React.HTMLAttributes<HTMLDivElement> {
455
619
  /** The page, top to bottom. Plain data — import it from a content file or a CMS. */
@@ -478,7 +642,7 @@ declare const landingPresets: {
478
642
  'vertical-hub': {
479
643
  label: string;
480
644
  description: string;
481
- sequence: ("split" | "hero" | "features" | "logos" | "stats" | "testimonials" | "process" | "resources" | "faq" | "cta")[];
645
+ sequence: ("split" | "hero" | "features" | "logos" | "stats" | "testimonials" | "resources" | "process" | "faq" | "cta")[];
482
646
  required: ("hero" | "features" | "faq" | "cta")[];
483
647
  };
484
648
  'service-detail': {
@@ -511,6 +675,12 @@ declare const landingPresets: {
511
675
  sequence: ("hero" | "stats" | "testimonials" | "comparison" | "pricing" | "faq" | "cta")[];
512
676
  required: ("hero" | "pricing" | "faq")[];
513
677
  };
678
+ 'benchmark-report': {
679
+ label: string;
680
+ description: string;
681
+ sequence: ("hero" | "features" | "stats" | "report-legend" | "lead-form" | "cta" | "benchmark-table" | "ranked-list" | "tile-cartogram" | "metric-list" | "methodology" | "byline" | "link-groups" | "pdf-embed")[];
682
+ required: ("hero" | "methodology")[];
683
+ };
514
684
  };
515
685
  type LandingPresetId = keyof typeof landingPresets;
516
686
  interface LandingPageIssue {
@@ -548,6 +718,10 @@ interface SectionShellProps extends Omit<React.HTMLAttributes<HTMLElement>, 'tit
548
718
  align?: SectionAlign;
549
719
  width?: 'wide' | 'narrow';
550
720
  spacing?: 'default' | 'compact';
721
+ /** Provenance badge under the heading, for sections that report figures. */
722
+ status?: MetricStatus;
723
+ /** Translated text for the `status` badge. */
724
+ statusLabels?: MetricStatusLabels;
551
725
  /** Accepted so sections can forward their props; the shell renders no links or images. */
552
726
  components?: TemplateComponents;
553
727
  }
@@ -557,4 +731,4 @@ interface SectionShellProps extends Omit<React.HTMLAttributes<HTMLElement>, 'tit
557
731
  */
558
732
  declare const SectionShell: React.ForwardRefExoticComponent<SectionShellProps & React.RefAttributes<HTMLElement>>;
559
733
 
560
- export { type ComparisonRow, ComparisonSection, type ComparisonSectionLabels, type ComparisonSectionProps, CtaSection, type CtaSectionProps, type CustomBlock, type FaqItem, FaqSection, type FaqSectionProps, FeatureGridSection, type FeatureGridSectionProps, type FeatureItem, HeroSection, type HeroSectionLabels, type HeroSectionProps, type LandingBlock, type LandingBlockType, LandingPage, type LandingPageIssue, type LandingPageProps, type LandingPreset, type LandingPresetId, type LeadFormField, LeadFormSection, type LeadFormSectionProps, LogoCloudSection, type LogoCloudSectionProps, type LogoItem, type PricingPlan, PricingSection, type PricingSectionProps, type ProcessStep, ProcessStepsSection, type ProcessStepsSectionProps, ResourceCardsSection, type ResourceCardsSectionProps, type ResourceItem, type SectionAlign, type SectionBaseProps, SectionHeading, type SectionHeadingProps, SectionShell, type SectionShellProps, type SectionTone, SplitContentSection, type SplitContentSectionProps, type StatItem, StatsSection, type StatsSectionProps, type TemplateComponents, TemplateIcon, type TemplateIconComponent, type TemplateIconName, type TemplateIconProps, type TemplateIconRegistry, type TemplateImage, type TemplateImageProps, type TemplateLink, type TemplateLinkProps, type TestimonialItem, TestimonialSection, type TestimonialSectionLabels, type TestimonialSectionProps, VideoSection, type VideoSectionProps, type VideoSource, defaultLeadFormFields, landingPresets, templateIcons, validateLandingPage };
734
+ export { type BenchmarkColumn, type BenchmarkRow, BenchmarkTableSection, type BenchmarkTableSectionProps, type BenchmarkValue, type ComparisonRow, ComparisonSection, type ComparisonSectionLabels, type ComparisonSectionProps, CtaSection, type CtaSectionProps, type CustomBlock, type FaqItem, FaqSection, type FaqSectionProps, FeatureGridSection, type FeatureGridSectionProps, type FeatureItem, HeroSection, type HeroSectionLabels, type HeroSectionProps, type LandingBlock, type LandingBlockType, LandingPage, type LandingPageIssue, type LandingPageProps, type LandingPreset, type LandingPresetId, type LeadFormField, LeadFormSection, type LeadFormSectionProps, type LinkGroup, LinkGroupsSection, type LinkGroupsSectionProps, LogoCloudSection, type LogoCloudSectionProps, type LogoItem, type MethodologyNote, type MethodologySource, type MetricDefinition, MetricListSection, type MetricListSectionLabels, type MetricListSectionProps, type MetricStatus, MetricStatusBadge, type MetricStatusBadgeProps, type MetricStatusLabels, PdfEmbedSection, type PdfEmbedSectionLabels, type PdfEmbedSectionProps, type PricingPlan, PricingSection, type PricingSectionProps, type ProcessStep, ProcessStepsSection, type ProcessStepsSectionProps, type RankedItem, type RankedList, RankedListSection, type RankedListSectionProps, type ReportAuthor, ReportByline, type ReportBylineLabels, type ReportBylineProps, ReportLegend, type ReportLegendEntry, type ReportLegendProps, ReportMethodology, type ReportMethodologyLabels, type ReportMethodologyProps, ResourceCardsSection, type ResourceCardsSectionProps, type ResourceItem, SectionAlign, SectionBaseProps, SectionHeading, type SectionHeadingProps, SectionShell, type SectionShellProps, SectionTone, SplitContentSection, type SplitContentSectionProps, type StatItem, StatsSection, type StatsSectionProps, TemplateComponents, TemplateIconRegistry, TemplateImage, TemplateLink, type TestimonialItem, TestimonialSection, type TestimonialSectionLabels, type TestimonialSectionProps, type TileBucket, TileCartogramSection, type TileCartogramSectionProps, type TileLegendEntry, type TilePosition, type TileValue, VideoSection, type VideoSectionProps, type VideoSource, defaultLeadFormFields, defaultMetricStatusLabels, landingPresets, quartileBuckets, usStateTiles, validateLandingPage };
package/dist/templates.js CHANGED
@@ -1,5 +1,6 @@
1
- export { ComparisonSection, CtaSection, FaqSection, FeatureGridSection, HeroSection, LandingPage, LeadFormSection, LogoCloudSection, PricingSection, ProcessStepsSection, ResourceCardsSection, SectionHeading, SectionShell, SplitContentSection, StatsSection, TemplateIcon, TestimonialSection, VideoSection, defaultLeadFormFields, landingPresets, templateIcons, validateLandingPage } from './chunk-KHSFJTEX.js';
1
+ export { BenchmarkTableSection, ComparisonSection, CtaSection, FaqSection, FeatureGridSection, HeroSection, LandingPage, LeadFormSection, LinkGroupsSection, LogoCloudSection, MetricListSection, PdfEmbedSection, PricingSection, ProcessStepsSection, RankedListSection, ReportByline, ReportLegend, ReportMethodology, ResourceCardsSection, SplitContentSection, StatsSection, TestimonialSection, TileCartogramSection, VideoSection, defaultLeadFormFields, landingPresets, quartileBuckets, usStateTiles, validateLandingPage } from './chunk-T4JYUICS.js';
2
2
  import './chunk-IQ4KQJAO.js';
3
+ export { MetricStatusBadge, SectionHeading, SectionShell, TemplateIcon, defaultMetricStatusLabels, templateIcons } from './chunk-FBCDYTWM.js';
3
4
  import './chunk-6NZXWKUE.js';
4
5
  import './chunk-3IMM2PM4.js';
5
6
  import './chunk-BMSG4NBH.js';
@@ -25,6 +25,12 @@ type ViewId = 'overview' | 'list' | 'board' | 'calendar' | 'gantt' | 'roadmap' |
25
25
  * hardcode a palette that breaks under another brand or in dark mode.
26
26
  */
27
27
  type Accent = 'primary' | 'success' | 'warning' | 'destructive' | 'info' | 'neutral';
28
+ /** A named stage: a board column, and the segments of a stage bar. */
29
+ interface Stage {
30
+ id: string;
31
+ label: string;
32
+ accent?: Accent;
33
+ }
28
34
  /**
29
35
  * How a view reads one item. Only `getId` and `getTitle` are always required;
30
36
  * each view documents which of the rest it needs (a board needs `getStatus`, a
@@ -83,4 +89,4 @@ interface ViewBaseProps<T> {
83
89
  className?: string;
84
90
  }
85
91
 
86
- export type { ViewLabels as V, ViewBaseProps as a };
92
+ export type { Stage as S, ViewLabels as V, ViewBaseProps as a };
@@ -25,6 +25,12 @@ type ViewId = 'overview' | 'list' | 'board' | 'calendar' | 'gantt' | 'roadmap' |
25
25
  * hardcode a palette that breaks under another brand or in dark mode.
26
26
  */
27
27
  type Accent = 'primary' | 'success' | 'warning' | 'destructive' | 'info' | 'neutral';
28
+ /** A named stage: a board column, and the segments of a stage bar. */
29
+ interface Stage {
30
+ id: string;
31
+ label: string;
32
+ accent?: Accent;
33
+ }
28
34
  /**
29
35
  * How a view reads one item. Only `getId` and `getTitle` are always required;
30
36
  * each view documents which of the rest it needs (a board needs `getStatus`, a
@@ -83,4 +89,4 @@ interface ViewBaseProps<T> {
83
89
  className?: string;
84
90
  }
85
91
 
86
- export type { ViewLabels as V, ViewBaseProps as a };
92
+ export type { Stage as S, ViewLabels as V, ViewBaseProps as a };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mieweb/ui",
3
- "version": "0.10.0-dev.24",
3
+ "version": "0.10.0-dev.25",
4
4
  "description": "A themeable, accessible React component library built with Tailwind CSS",
5
5
  "author": "Medical Informatics Engineering, Inc.",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -151,6 +151,26 @@
151
151
  "default": "./dist/globe.cjs"
152
152
  }
153
153
  },
154
+ "./deck": {
155
+ "import": {
156
+ "types": "./dist/deck.d.ts",
157
+ "default": "./dist/deck.js"
158
+ },
159
+ "require": {
160
+ "types": "./dist/deck.d.cts",
161
+ "default": "./dist/deck.cjs"
162
+ }
163
+ },
164
+ "./maps": {
165
+ "import": {
166
+ "types": "./dist/maps.d.ts",
167
+ "default": "./dist/maps.js"
168
+ },
169
+ "require": {
170
+ "types": "./dist/maps.d.cts",
171
+ "default": "./dist/maps.cjs"
172
+ }
173
+ },
154
174
  "./templates": {
155
175
  "import": {
156
176
  "types": "./dist/templates.d.ts",
@@ -296,6 +316,7 @@
296
316
  "ag-grid-react": ">=32.0.0",
297
317
  "js-yaml": ">=4.0.0",
298
318
  "katex": ">=0.16.0",
319
+ "leaflet": ">=1.9.0",
299
320
  "mermaid": ">=11.0.0",
300
321
  "motion": ">=12.0.0",
301
322
  "papaparse": ">=5.0.0",
@@ -314,6 +335,9 @@
314
335
  "yjs": ">=13.6.0"
315
336
  },
316
337
  "peerDependenciesMeta": {
338
+ "leaflet": {
339
+ "optional": true
340
+ },
317
341
  "react-globe.gl": {
318
342
  "optional": true
319
343
  },
@@ -445,6 +469,7 @@
445
469
  "@testing-library/user-event": "^14.6.1",
446
470
  "@types/google-libphonenumber": "^7.4.30",
447
471
  "@types/js-yaml": "^4.0.9",
472
+ "@types/leaflet": "^1.9.22",
448
473
  "@types/luxon": "^3.7.1",
449
474
  "@types/node": "^22.19.11",
450
475
  "@types/papaparse": "^5.3.16",
@@ -479,6 +504,7 @@
479
504
  "js-yaml": "^4.1.1",
480
505
  "jsdom": "^26.1.0",
481
506
  "katex": "^0.17.0",
507
+ "leaflet": "^1.9.4",
482
508
  "mermaid": "^11.15.0",
483
509
  "motion": "^12.34.2",
484
510
  "papaparse": "^5.5.3",