@sumaq/site-kit 0.2.0

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 (60) hide show
  1. package/README.md +93 -0
  2. package/package.json +57 -0
  3. package/src/astro-modules.d.ts +11 -0
  4. package/src/blocks/About.astro +94 -0
  5. package/src/blocks/Audience.astro +66 -0
  6. package/src/blocks/BlockRenderer.astro +105 -0
  7. package/src/blocks/Contact.astro +58 -0
  8. package/src/blocks/ContactDetails.astro +91 -0
  9. package/src/blocks/CtaBand.astro +53 -0
  10. package/src/blocks/EmergencyGrid.astro +47 -0
  11. package/src/blocks/EmergencyHelplines.astro +109 -0
  12. package/src/blocks/EmergencyPrimary.astro +51 -0
  13. package/src/blocks/Faq.astro +56 -0
  14. package/src/blocks/FeatureList.astro +73 -0
  15. package/src/blocks/Gallery.astro +95 -0
  16. package/src/blocks/Generic.astro +30 -0
  17. package/src/blocks/Hero.astro +82 -0
  18. package/src/blocks/IntroCta.astro +41 -0
  19. package/src/blocks/LegalDocument.astro +83 -0
  20. package/src/blocks/LocationsOverview.astro +161 -0
  21. package/src/blocks/NotFound.astro +33 -0
  22. package/src/blocks/Notice.astro +49 -0
  23. package/src/blocks/PageBanner.astro +57 -0
  24. package/src/blocks/Pricing.astro +97 -0
  25. package/src/blocks/ProfileDetail.astro +202 -0
  26. package/src/blocks/Projects.astro +91 -0
  27. package/src/blocks/Quote.astro +53 -0
  28. package/src/blocks/Services.astro +46 -0
  29. package/src/blocks/Skills.astro +65 -0
  30. package/src/blocks/Stats.astro +54 -0
  31. package/src/blocks/Steps.astro +76 -0
  32. package/src/blocks/TeamDirectory.astro +164 -0
  33. package/src/blocks/TeamTeaser.astro +84 -0
  34. package/src/blocks/Testimonials.astro +75 -0
  35. package/src/blocks/Timeline.astro +65 -0
  36. package/src/components/Actions.astro +67 -0
  37. package/src/components/Card.astro +104 -0
  38. package/src/components/Logo.astro +57 -0
  39. package/src/components/Media.astro +83 -0
  40. package/src/components/Prose.astro +29 -0
  41. package/src/components/ScrollToTop.astro +49 -0
  42. package/src/components/Section.astro +75 -0
  43. package/src/components/SectionHeader.astro +58 -0
  44. package/src/components/SectionHeading.astro +76 -0
  45. package/src/components/Seo.astro +55 -0
  46. package/src/components/SiteFooter.astro +90 -0
  47. package/src/components/SiteHeader.astro +97 -0
  48. package/src/config.ts +59 -0
  49. package/src/index.ts +75 -0
  50. package/src/layouts/Base.astro +57 -0
  51. package/src/lib/collections.ts +101 -0
  52. package/src/lib/content.ts +51 -0
  53. package/src/lib/format.ts +17 -0
  54. package/src/lib/markdown.ts +5 -0
  55. package/src/profiles/clinic.yaml +35 -0
  56. package/src/profiles/portfolio.yaml +27 -0
  57. package/src/profiles/therapist.yaml +31 -0
  58. package/src/scripts/enhancements.js +459 -0
  59. package/src/tokens/class-inventory.json +284 -0
  60. package/src/tokens/index.css +83 -0
@@ -0,0 +1,284 @@
1
+ {
2
+ "$comment": "Generated by scripts/build-class-inventory.mjs — do not edit by hand. `sq-*` is the kit's namespace; site-local components must use their own prefix.",
3
+ "version": "0.2.0",
4
+ "classes": [
5
+ "sq-about",
6
+ "sq-about__body",
7
+ "sq-about__body--reverse",
8
+ "sq-about__copy",
9
+ "sq-about__identity",
10
+ "sq-about__media",
11
+ "sq-about__name",
12
+ "sq-about__qualifications",
13
+ "sq-about__role",
14
+ "sq-accent",
15
+ "sq-audience",
16
+ "sq-audience__body",
17
+ "sq-audience__card",
18
+ "sq-audience__grid",
19
+ "sq-banner",
20
+ "sq-banner__content",
21
+ "sq-banner__lede",
22
+ "sq-banner__overlay",
23
+ "sq-banner__title",
24
+ "sq-btn",
25
+ "sq-btn--block",
26
+ "sq-btn--ghost",
27
+ "sq-btn--outline-light",
28
+ "sq-btn--primary",
29
+ "sq-btn--sm",
30
+ "sq-btn--spaced",
31
+ "sq-card",
32
+ "sq-card__badge",
33
+ "sq-card__body",
34
+ "sq-card__icon",
35
+ "sq-card__list",
36
+ "sq-card__media",
37
+ "sq-card__text",
38
+ "sq-card__title",
39
+ "sq-center",
40
+ "sq-contact",
41
+ "sq-contact-details",
42
+ "sq-contact-details__body",
43
+ "sq-contact-details__icon",
44
+ "sq-contact-details__label",
45
+ "sq-contact-details__row",
46
+ "sq-contact-details__value",
47
+ "sq-contact__card",
48
+ "sq-contact__grid",
49
+ "sq-contact__grid--single",
50
+ "sq-contact__item-action",
51
+ "sq-contact__item-desc",
52
+ "sq-contact__item-info",
53
+ "sq-contact__item-title",
54
+ "sq-contact__item-value",
55
+ "sq-contact__list--narrow",
56
+ "sq-contact__role",
57
+ "sq-container",
58
+ "sq-container--narrow",
59
+ "sq-cta",
60
+ "sq-cta__actions",
61
+ "sq-cta__inner",
62
+ "sq-cta__title",
63
+ "sq-emergency__card",
64
+ "sq-emergency__grid",
65
+ "sq-emergency__headline",
66
+ "sq-emergency__hours",
67
+ "sq-emergency__item",
68
+ "sq-emergency__item-desc",
69
+ "sq-emergency__item-name",
70
+ "sq-emergency__item-number",
71
+ "sq-emergency__phone",
72
+ "sq-emergency__phone-label",
73
+ "sq-emergency__phone-number",
74
+ "sq-emergency__title",
75
+ "sq-eyebrow",
76
+ "sq-eyebrow--emergency",
77
+ "sq-faq",
78
+ "sq-faq__answer",
79
+ "sq-faq__body",
80
+ "sq-faq__item",
81
+ "sq-faq__question",
82
+ "sq-feature-list",
83
+ "sq-feature-list--centered",
84
+ "sq-feature-list__icon",
85
+ "sq-feature-list__text",
86
+ "sq-feature-list__title",
87
+ "sq-features",
88
+ "sq-footer",
89
+ "sq-footer__bottom",
90
+ "sq-footer__brand",
91
+ "sq-footer__inner",
92
+ "sq-footer__nav",
93
+ "sq-footer__nav-title",
94
+ "sq-footer__tagline",
95
+ "sq-gallery",
96
+ "sq-gallery__body",
97
+ "sq-gallery__caption",
98
+ "sq-gallery__item",
99
+ "sq-gallery__trigger",
100
+ "sq-generic",
101
+ "sq-header",
102
+ "sq-header__actions",
103
+ "sq-header__bar",
104
+ "sq-header__inner",
105
+ "sq-hero",
106
+ "sq-hero__actions",
107
+ "sq-hero__actions--center",
108
+ "sq-hero__content",
109
+ "sq-hero__lede",
110
+ "sq-hero__media",
111
+ "sq-hero__overlay",
112
+ "sq-hero__stats",
113
+ "sq-hero__title",
114
+ "sq-intro-cta",
115
+ "sq-legal",
116
+ "sq-legal__head",
117
+ "sq-legal__meta",
118
+ "sq-lightbox",
119
+ "sq-lightbox__close",
120
+ "sq-lightbox__image",
121
+ "sq-lightbox__next",
122
+ "sq-lightbox__prev",
123
+ "sq-location__address",
124
+ "sq-location__body",
125
+ "sq-location__card",
126
+ "sq-location__card--reverse",
127
+ "sq-location__desc",
128
+ "sq-location__foot",
129
+ "sq-location__gallery",
130
+ "sq-location__index",
131
+ "sq-location__main",
132
+ "sq-location__name",
133
+ "sq-location__stack",
134
+ "sq-location__thumb",
135
+ "sq-location__thumbs",
136
+ "sq-locations-overview",
137
+ "sq-logo",
138
+ "sq-logo--footer",
139
+ "sq-logo__image",
140
+ "sq-logo__name",
141
+ "sq-nav",
142
+ "sq-nav__emergency",
143
+ "sq-nav__list",
144
+ "sq-nav__toggle",
145
+ "sq-nav__toggle-bar",
146
+ "sq-not-found",
147
+ "sq-not-found__code",
148
+ "sq-notice",
149
+ "sq-notice--danger",
150
+ "sq-notice--info",
151
+ "sq-notice--warning",
152
+ "sq-notice__body",
153
+ "sq-notice__title",
154
+ "sq-pricing",
155
+ "sq-pricing__badge",
156
+ "sq-pricing__card",
157
+ "sq-pricing__card--featured",
158
+ "sq-pricing__desc",
159
+ "sq-pricing__grid",
160
+ "sq-pricing__list",
161
+ "sq-pricing__tag",
162
+ "sq-profile",
163
+ "sq-profile__grid",
164
+ "sq-profile__info-label",
165
+ "sq-profile__info-list",
166
+ "sq-profile__info-value",
167
+ "sq-profile__main",
168
+ "sq-profile__photo",
169
+ "sq-profile__quote",
170
+ "sq-profile__return",
171
+ "sq-profile__section",
172
+ "sq-profile__section-title",
173
+ "sq-profile__sidebar",
174
+ "sq-profile__sidebar-name",
175
+ "sq-profile__sidebar-title",
176
+ "sq-profile__tags",
177
+ "sq-profile__timeline",
178
+ "sq-profile__timeline-item",
179
+ "sq-projects",
180
+ "sq-projects__body",
181
+ "sq-projects__desc",
182
+ "sq-projects__details",
183
+ "sq-projects__item",
184
+ "sq-projects__link",
185
+ "sq-projects__media",
186
+ "sq-projects__name",
187
+ "sq-projects__tags",
188
+ "sq-prose",
189
+ "sq-quote",
190
+ "sq-quote__author",
191
+ "sq-quote__author-role",
192
+ "sq-quote__body",
193
+ "sq-quote__media",
194
+ "sq-quote__text",
195
+ "sq-room__dot",
196
+ "sq-room__slides",
197
+ "sq-scroll-top",
198
+ "sq-scroll-top__icon",
199
+ "sq-scroll-top__label",
200
+ "sq-section",
201
+ "sq-section--light",
202
+ "sq-section--loose",
203
+ "sq-section--muted",
204
+ "sq-section--tight",
205
+ "sq-section__actions",
206
+ "sq-section__head",
207
+ "sq-section__label",
208
+ "sq-section__lede",
209
+ "sq-section__lede--sm",
210
+ "sq-section__note",
211
+ "sq-section__title",
212
+ "sq-section__title--compact",
213
+ "sq-section__title--spaced",
214
+ "sq-services",
215
+ "sq-services__card",
216
+ "sq-services__grid",
217
+ "sq-services__icon",
218
+ "sq-skills",
219
+ "sq-skills__body",
220
+ "sq-skills__group",
221
+ "sq-skills__label",
222
+ "sq-skills__tags",
223
+ "sq-skip-link",
224
+ "sq-split",
225
+ "sq-split__copy",
226
+ "sq-split__visual",
227
+ "sq-stack-end",
228
+ "sq-stats",
229
+ "sq-stats__body",
230
+ "sq-stats__item",
231
+ "sq-stats__label",
232
+ "sq-stats__value",
233
+ "sq-steps",
234
+ "sq-steps__body",
235
+ "sq-steps__icon",
236
+ "sq-steps__item",
237
+ "sq-steps__note",
238
+ "sq-steps__num",
239
+ "sq-steps__text",
240
+ "sq-steps__title",
241
+ "sq-tag",
242
+ "sq-team-directory",
243
+ "sq-team-teaser",
244
+ "sq-team-teaser__badge",
245
+ "sq-team-teaser__badge-label",
246
+ "sq-team-teaser__badge-num",
247
+ "sq-team-teaser__frame",
248
+ "sq-team__body",
249
+ "sq-team__card",
250
+ "sq-team__counter",
251
+ "sq-team__desc",
252
+ "sq-team__empty",
253
+ "sq-team__filter",
254
+ "sq-team__filters",
255
+ "sq-team__grid",
256
+ "sq-team__name",
257
+ "sq-team__photo",
258
+ "sq-team__role",
259
+ "sq-team__search",
260
+ "sq-team__search-icon",
261
+ "sq-team__search-input",
262
+ "sq-team__search-wrap",
263
+ "sq-testimonials",
264
+ "sq-testimonials__author",
265
+ "sq-testimonials__author-role",
266
+ "sq-testimonials__body",
267
+ "sq-testimonials__card",
268
+ "sq-testimonials__photo",
269
+ "sq-testimonials__text",
270
+ "sq-timeline",
271
+ "sq-timeline__body",
272
+ "sq-timeline__dot",
273
+ "sq-timeline__item",
274
+ "sq-timeline__period",
275
+ "sq-timeline__text",
276
+ "sq-timeline__title",
277
+ "sq-to-top"
278
+ ],
279
+ "patterns": {
280
+ "sq-services__icon--*": "services.items[].icon",
281
+ "sq-feature-list--*": "FeatureList `columns` prop",
282
+ "sq-tag--*": "ProfileDetail tagSections[].modifier"
283
+ }
284
+ }
@@ -0,0 +1,83 @@
1
+ /* @sumaq/site-kit tokens — reset + scales (no colors, no fonts).
2
+ Site-specific design stays in the client's site.css. */
3
+
4
+ *,
5
+ *::before,
6
+ *::after {
7
+ box-sizing: border-box;
8
+ }
9
+
10
+ html {
11
+ -webkit-text-size-adjust: 100%;
12
+ }
13
+
14
+ body {
15
+ margin: 0;
16
+ }
17
+
18
+ img,
19
+ picture,
20
+ video,
21
+ canvas,
22
+ svg {
23
+ display: block;
24
+ max-width: 100%;
25
+ }
26
+
27
+ input,
28
+ button,
29
+ textarea,
30
+ select {
31
+ font: inherit;
32
+ }
33
+
34
+ p,
35
+ h1,
36
+ h2,
37
+ h3,
38
+ h4,
39
+ h5,
40
+ h6 {
41
+ overflow-wrap: break-word;
42
+ }
43
+
44
+ /* --------------------------------------------------------------------------
45
+ Vocabulario CMS (whitelist)
46
+ --------------------------------------------------------------------------
47
+ Las únicas clases que el editor puede emitir dentro de un campo de texto.
48
+ Viven aquí, y no en el repo del sitio, para que el inventario de `sq-*` tenga
49
+ un solo dueño: `class-map-1to1.json` de este paquete. Ampliar con criterio —
50
+ esto no es una capa de utilidades a lo Tailwind.
51
+
52
+ `--color-muted` lo define el `site.css` de cada cliente; si falta, el texto
53
+ simplemente hereda el color del cuerpo.
54
+ -------------------------------------------------------------------------- */
55
+
56
+ .sq-align-left {
57
+ text-align: left;
58
+ }
59
+
60
+ .sq-align-center {
61
+ text-align: center;
62
+ }
63
+
64
+ .sq-align-right {
65
+ text-align: right;
66
+ }
67
+
68
+ .sq-strong {
69
+ font-weight: 700;
70
+ }
71
+
72
+ .sq-em {
73
+ font-style: italic;
74
+ }
75
+
76
+ .sq-muted {
77
+ color: var(--color-muted, inherit);
78
+ }
79
+
80
+ .sq-underline {
81
+ text-decoration: underline;
82
+ text-underline-offset: 0.2em;
83
+ }