@scalemule/news-publication 0.0.48 → 0.0.49

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 (72) hide show
  1. package/README.md +28 -0
  2. package/dist/{chunk-GB36YM56.js → chunk-2MEYHM7M.js} +11 -1
  3. package/dist/chunk-4JRWZXAP.js +62 -0
  4. package/dist/chunk-MBBPEFDA.js +124 -0
  5. package/dist/chunk-TTLM7YOH.js +444 -0
  6. package/dist/chunk-ZXH3O537.js +251 -0
  7. package/dist/community-maps-view.d.cts +3 -3
  8. package/dist/community-maps-view.d.ts +3 -3
  9. package/dist/cookie-consent-banner.d.cts +2 -2
  10. package/dist/cookie-consent-banner.d.ts +2 -2
  11. package/dist/cookie-settings-view.d.cts +2 -2
  12. package/dist/cookie-settings-view.d.ts +2 -2
  13. package/dist/index.cjs +29 -1
  14. package/dist/index.d.cts +4 -3
  15. package/dist/index.d.ts +4 -3
  16. package/dist/index.js +4 -3
  17. package/dist/marketplace-forms.d.cts +3 -3
  18. package/dist/marketplace-forms.d.ts +3 -3
  19. package/dist/marketplace-view.d.cts +5 -5
  20. package/dist/marketplace-view.d.ts +5 -5
  21. package/dist/{meet-RWmfj3I3.d.cts → meet-BWpxY20X.d.ts} +5 -0
  22. package/dist/{meet-RWmfj3I3.d.ts → meet-CO9Unz5M.d.cts} +5 -0
  23. package/dist/meet-forms.d.cts +7 -6
  24. package/dist/meet-forms.d.ts +7 -6
  25. package/dist/meet-forms.js +2 -1
  26. package/dist/meet-view.cjs +22 -2
  27. package/dist/meet-view.d.cts +7 -5
  28. package/dist/meet-view.d.ts +7 -5
  29. package/dist/meet-view.js +21 -4
  30. package/dist/network-bar.d.cts +2 -2
  31. package/dist/network-bar.d.ts +2 -2
  32. package/dist/network-copyright.d.cts +2 -2
  33. package/dist/network-copyright.d.ts +2 -2
  34. package/dist/pets-auth-server.cjs +212 -0
  35. package/dist/pets-auth-server.d.cts +17 -0
  36. package/dist/pets-auth-server.d.ts +17 -0
  37. package/dist/pets-auth-server.js +155 -0
  38. package/dist/pets-forms.cjs +762 -0
  39. package/dist/pets-forms.d.cts +26 -0
  40. package/dist/pets-forms.d.ts +26 -0
  41. package/dist/pets-forms.js +712 -0
  42. package/dist/pets-interactions.cjs +332 -0
  43. package/dist/pets-interactions.d.cts +20 -0
  44. package/dist/pets-interactions.d.ts +20 -0
  45. package/dist/pets-interactions.js +319 -0
  46. package/dist/pets-publication.cjs +818 -0
  47. package/dist/pets-publication.d.cts +36 -0
  48. package/dist/pets-publication.d.ts +36 -0
  49. package/dist/pets-publication.js +177 -0
  50. package/dist/pets-server.cjs +289 -0
  51. package/dist/pets-server.d.cts +42 -0
  52. package/dist/pets-server.d.ts +42 -0
  53. package/dist/pets-server.js +2 -0
  54. package/dist/pets-view.cjs +541 -0
  55. package/dist/pets-view.d.cts +56 -0
  56. package/dist/pets-view.d.ts +56 -0
  57. package/dist/pets-view.js +4 -0
  58. package/dist/pets.cjs +138 -0
  59. package/dist/pets.d.cts +127 -0
  60. package/dist/pets.d.ts +127 -0
  61. package/dist/pets.js +1 -0
  62. package/dist/sponsorship-view.d.cts +2 -2
  63. package/dist/sponsorship-view.d.ts +2 -2
  64. package/dist/sponsorship-view.js +2 -62
  65. package/dist/story-review.d.cts +6 -6
  66. package/dist/story-review.d.ts +6 -6
  67. package/dist/theme-toggle.d.cts +2 -2
  68. package/dist/theme-toggle.d.ts +2 -2
  69. package/dist/verified-card.d.cts +3 -3
  70. package/dist/verified-card.d.ts +3 -3
  71. package/package.json +40 -3
  72. package/pets.css +538 -0
package/dist/pets.cjs ADDED
@@ -0,0 +1,138 @@
1
+ 'use strict';
2
+
3
+ // src/pets.ts
4
+ var PET_KINDS = [
5
+ "profile",
6
+ "spotlight",
7
+ "photo",
8
+ "celebration",
9
+ "lost",
10
+ "found",
11
+ "adoption",
12
+ "event"
13
+ ];
14
+ var PET_NOTIFICATION_CATEGORIES = [
15
+ ["lost_found", "Lost & found"],
16
+ ["walks", "Paw Walks"],
17
+ ["adoption_events", "Adoption events"],
18
+ ["celebrations", "Pet celebrations"],
19
+ ["spotlight", "Paw of the Week"],
20
+ ["community", "Community information"]
21
+ ];
22
+ var PET_PHOTO_CATEGORIES = [
23
+ ["cute", "Cute pets"],
24
+ ["funny", "Funny moments"],
25
+ ["adventures", "Adventures"],
26
+ ["senior", "Senior pets"],
27
+ ["rescue", "Rescue stories"],
28
+ ["young", "Puppies & kittens"],
29
+ ["unusual", "Unusual pets"],
30
+ ["friends", "Best friends"],
31
+ ["holiday", "Holiday pets"]
32
+ ];
33
+ var PET_CELEBRATIONS = [
34
+ ["birthday", "Pet birthday"],
35
+ ["adoption_anniversary", "Adoption anniversary"],
36
+ ["welcome_home", "Welcome home"],
37
+ ["rescue_story", "Rescue story"],
38
+ ["happy_reunion", "Happy reunion"],
39
+ ["memorial", "Memorial tribute"]
40
+ ];
41
+ var PET_SAFETY = {
42
+ recovery: "Bay Area Paw does not independently verify pet ownership. A report is a contributor\u2019s account. Never send money or verification codes to someone claiming to have found a pet. Keep microchip numbers and ownership evidence private.",
43
+ walks: "Walks are independently organized. Bay Area Paw does not supervise meetups or guarantee participants\u2019 safety. Meet in a public place, follow leash rules and respect other people and animals.",
44
+ adoption: "Contact the named shelter or rescue for current availability, eligibility and adoption arrangements. Bay Area Paw is not the adoption agency and does not collect adoption payments.",
45
+ wellness: "Wellness information is educational. Contact a veterinarian for advice about your pet."
46
+ };
47
+ var PET_UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
48
+ var PET_SLUG = /^[a-z0-9][a-z0-9-]{0,190}$/;
49
+ function petReferences(metadata) {
50
+ const entries = metadata && typeof metadata === "object" ? metadata.pet_resources : null;
51
+ if (!Array.isArray(entries)) return [];
52
+ return entries.slice(0, 12).flatMap((v) => {
53
+ if (!v || typeof v !== "object") return [];
54
+ const r = v;
55
+ return typeof r.collection_slug === "string" && PET_SLUG.test(r.collection_slug) && typeof r.id === "string" && PET_UUID.test(r.id) && PET_KINDS.includes(r.kind) ? [
56
+ {
57
+ collection_slug: r.collection_slug,
58
+ id: r.id,
59
+ kind: r.kind
60
+ }
61
+ ] : [];
62
+ });
63
+ }
64
+ function resolvePetCommunity(areas, selected, preference, publicationDefault) {
65
+ if (selected === "") return void 0;
66
+ for (const candidate of [selected, preference, publicationDefault]) {
67
+ const found = areas.find(
68
+ (area) => area.id === candidate || area.slug === candidate
69
+ );
70
+ if (found) return found;
71
+ }
72
+ return void 0;
73
+ }
74
+ function safePetLink(raw) {
75
+ if (raw.startsWith("/") && !raw.startsWith("//") && !/[\\\r\n]/.test(raw))
76
+ return raw;
77
+ try {
78
+ const url = new URL(raw);
79
+ return url.protocol === "https:" && !url.username && !url.password ? url.href : void 0;
80
+ } catch {
81
+ return void 0;
82
+ }
83
+ }
84
+ function adoptionAvailability(source, now = Date.now()) {
85
+ const at = source?.verified_at ? Date.parse(source.verified_at) : NaN;
86
+ return source?.availability_confirmed && Number.isFinite(at) && at <= now && now - at <= 864e5 ? "confirmed" : "check_with_organization";
87
+ }
88
+ function petProfileMetadata(resource, canonicalUrl, photoUrl) {
89
+ const canonical = safePetLink(canonicalUrl);
90
+ if (!resource || !canonical?.startsWith("https://"))
91
+ return {
92
+ title: "Pet profile unavailable",
93
+ robots: { index: false, follow: false }
94
+ };
95
+ return {
96
+ title: `Meet ${resource.content.name}`,
97
+ description: Array.from(resource.content.story).slice(0, 180).join(""),
98
+ alternates: { canonical },
99
+ openGraph: {
100
+ title: `Meet ${resource.content.name}`,
101
+ description: resource.content.story,
102
+ url: canonical,
103
+ ...photoUrl && safePetLink(photoUrl) ? { images: [{ url: photoUrl, alt: resource.content.name }] } : {}
104
+ }
105
+ };
106
+ }
107
+ function preparePawWalk(value) {
108
+ if (!Number.isInteger(value.duration_minutes) || value.duration_minutes < 10 || value.duration_minutes > 240)
109
+ throw new Error("Choose a walk duration from 10 to 240 minutes.");
110
+ if (value.distance_km !== void 0 && (!Number.isFinite(value.distance_km) || value.distance_km < 0 || value.distance_km > 30))
111
+ throw new Error("Choose a walking distance from 0 to 30 km.");
112
+ if (value.leash !== "required" && value.leash !== "venue_rules")
113
+ throw new Error("Choose the leash requirements.");
114
+ for (const field of [value.size_guidance, value.accessibility])
115
+ if (typeof field !== "string" || Array.from(field).length > 500)
116
+ throw new Error("Keep walk guidance within 500 characters.");
117
+ return {
118
+ duration_minutes: value.duration_minutes,
119
+ distance_km: value.distance_km,
120
+ leash: value.leash,
121
+ size_guidance: value.size_guidance,
122
+ accessibility: value.accessibility
123
+ };
124
+ }
125
+
126
+ exports.PET_CELEBRATIONS = PET_CELEBRATIONS;
127
+ exports.PET_KINDS = PET_KINDS;
128
+ exports.PET_NOTIFICATION_CATEGORIES = PET_NOTIFICATION_CATEGORIES;
129
+ exports.PET_PHOTO_CATEGORIES = PET_PHOTO_CATEGORIES;
130
+ exports.PET_SAFETY = PET_SAFETY;
131
+ exports.PET_SLUG = PET_SLUG;
132
+ exports.PET_UUID = PET_UUID;
133
+ exports.adoptionAvailability = adoptionAvailability;
134
+ exports.petProfileMetadata = petProfileMetadata;
135
+ exports.petReferences = petReferences;
136
+ exports.preparePawWalk = preparePawWalk;
137
+ exports.resolvePetCommunity = resolvePetCommunity;
138
+ exports.safePetLink = safePetLink;
@@ -0,0 +1,127 @@
1
+ /** Public community pet contracts. Identity and editorial records never belong in article data. */
2
+ declare const PET_KINDS: readonly ["profile", "spotlight", "photo", "celebration", "lost", "found", "adoption", "event"];
3
+ type PetKind = (typeof PET_KINDS)[number];
4
+ type PetCommunity = {
5
+ id: string;
6
+ slug: string;
7
+ name: string;
8
+ };
9
+ type PetContent = {
10
+ name: string;
11
+ species: string;
12
+ story: string;
13
+ breed: string;
14
+ age_description?: string;
15
+ birthday?: string | null;
16
+ adoption_anniversary?: string | null;
17
+ personality: string;
18
+ activities: string[];
19
+ public_place_id?: string | null;
20
+ category: string;
21
+ attribution: string;
22
+ date?: string | null;
23
+ source?: {
24
+ organization: string;
25
+ official_url: string;
26
+ verified_at?: string | null;
27
+ availability_confirmed: boolean;
28
+ } | null;
29
+ event?: {
30
+ starts_at: string;
31
+ ends_at: string;
32
+ event_type: string;
33
+ cost: "free" | "paid" | "unknown";
34
+ cost_verified: boolean;
35
+ } | null;
36
+ };
37
+ type PetPhoto = {
38
+ id: string;
39
+ caption: string;
40
+ attribution: string;
41
+ status: string;
42
+ };
43
+ type PetResource = {
44
+ id: string;
45
+ kind: PetKind;
46
+ area_id: string;
47
+ revision: number;
48
+ content: PetContent;
49
+ media: PetPhoto[];
50
+ expires_at?: string | null;
51
+ reunited_at?: string | null;
52
+ };
53
+ type OwnPetResource = PetResource & {
54
+ visibility: "public" | "private";
55
+ status: "draft" | "submitted" | "reviewing" | "changes_requested" | "approved" | "published" | "rejected" | "removed";
56
+ review_note: string;
57
+ profile_id?: string | null;
58
+ };
59
+ type PetPreferences = {
60
+ home_area_id: string | null;
61
+ followed_area_ids: string[];
62
+ categories: string[];
63
+ email_enabled: boolean;
64
+ frequency: "immediate" | "daily" | "weekly" | null;
65
+ };
66
+ type PetPreferenceRecord = {
67
+ revision: number;
68
+ preferences: PetPreferences;
69
+ };
70
+ declare const PET_NOTIFICATION_CATEGORIES: readonly [readonly ["lost_found", "Lost & found"], readonly ["walks", "Paw Walks"], readonly ["adoption_events", "Adoption events"], readonly ["celebrations", "Pet celebrations"], readonly ["spotlight", "Paw of the Week"], readonly ["community", "Community information"]];
71
+ type PetReference = {
72
+ collection_slug: string;
73
+ id: string;
74
+ kind: PetKind;
75
+ };
76
+ declare const PET_PHOTO_CATEGORIES: readonly [readonly ["cute", "Cute pets"], readonly ["funny", "Funny moments"], readonly ["adventures", "Adventures"], readonly ["senior", "Senior pets"], readonly ["rescue", "Rescue stories"], readonly ["young", "Puppies & kittens"], readonly ["unusual", "Unusual pets"], readonly ["friends", "Best friends"], readonly ["holiday", "Holiday pets"]];
77
+ declare const PET_CELEBRATIONS: readonly [readonly ["birthday", "Pet birthday"], readonly ["adoption_anniversary", "Adoption anniversary"], readonly ["welcome_home", "Welcome home"], readonly ["rescue_story", "Rescue story"], readonly ["happy_reunion", "Happy reunion"], readonly ["memorial", "Memorial tribute"]];
78
+ declare const PET_SAFETY: {
79
+ readonly recovery: "Bay Area Paw does not independently verify pet ownership. A report is a contributor’s account. Never send money or verification codes to someone claiming to have found a pet. Keep microchip numbers and ownership evidence private.";
80
+ readonly walks: "Walks are independently organized. Bay Area Paw does not supervise meetups or guarantee participants’ safety. Meet in a public place, follow leash rules and respect other people and animals.";
81
+ readonly adoption: "Contact the named shelter or rescue for current availability, eligibility and adoption arrangements. Bay Area Paw is not the adoption agency and does not collect adoption payments.";
82
+ readonly wellness: "Wellness information is educational. Contact a veterinarian for advice about your pet.";
83
+ };
84
+ declare const PET_UUID: RegExp;
85
+ declare const PET_SLUG: RegExp;
86
+ declare function petReferences(metadata: unknown): PetReference[];
87
+ /** Selection is constrained to server-resolved publication coverage. No geolocation required. */
88
+ declare function resolvePetCommunity(areas: readonly PetCommunity[], selected?: string | null, preference?: string | null, publicationDefault?: string | null): PetCommunity | undefined;
89
+ declare function safePetLink(raw: string): string | undefined;
90
+ declare function adoptionAvailability(source: PetContent["source"], now?: number): "confirmed" | "check_with_organization";
91
+ declare function petProfileMetadata(resource: PetResource | null, canonicalUrl: string, photoUrl?: string): {
92
+ title: string;
93
+ robots: {
94
+ index: boolean;
95
+ follow: boolean;
96
+ };
97
+ description?: undefined;
98
+ alternates?: undefined;
99
+ openGraph?: undefined;
100
+ } | {
101
+ title: string;
102
+ description: string;
103
+ alternates: {
104
+ canonical: string;
105
+ };
106
+ openGraph: {
107
+ images?: {
108
+ url: string;
109
+ alt: string;
110
+ }[] | undefined;
111
+ title: string;
112
+ description: string;
113
+ url: string;
114
+ };
115
+ robots?: undefined;
116
+ };
117
+ type PawWalkDetails = {
118
+ duration_minutes: number;
119
+ distance_km?: number;
120
+ leash: "required" | "venue_rules";
121
+ size_guidance: string;
122
+ accessibility: string;
123
+ };
124
+ /** Added to the existing Meet model; booking, participants, cancellation and rooms remain Meet-owned. */
125
+ declare function preparePawWalk(value: Partial<PawWalkDetails>): PawWalkDetails;
126
+
127
+ export { type OwnPetResource, PET_CELEBRATIONS, PET_KINDS, PET_NOTIFICATION_CATEGORIES, PET_PHOTO_CATEGORIES, PET_SAFETY, PET_SLUG, PET_UUID, type PawWalkDetails, type PetCommunity, type PetContent, type PetKind, type PetPhoto, type PetPreferenceRecord, type PetPreferences, type PetReference, type PetResource, adoptionAvailability, petProfileMetadata, petReferences, preparePawWalk, resolvePetCommunity, safePetLink };
package/dist/pets.d.ts ADDED
@@ -0,0 +1,127 @@
1
+ /** Public community pet contracts. Identity and editorial records never belong in article data. */
2
+ declare const PET_KINDS: readonly ["profile", "spotlight", "photo", "celebration", "lost", "found", "adoption", "event"];
3
+ type PetKind = (typeof PET_KINDS)[number];
4
+ type PetCommunity = {
5
+ id: string;
6
+ slug: string;
7
+ name: string;
8
+ };
9
+ type PetContent = {
10
+ name: string;
11
+ species: string;
12
+ story: string;
13
+ breed: string;
14
+ age_description?: string;
15
+ birthday?: string | null;
16
+ adoption_anniversary?: string | null;
17
+ personality: string;
18
+ activities: string[];
19
+ public_place_id?: string | null;
20
+ category: string;
21
+ attribution: string;
22
+ date?: string | null;
23
+ source?: {
24
+ organization: string;
25
+ official_url: string;
26
+ verified_at?: string | null;
27
+ availability_confirmed: boolean;
28
+ } | null;
29
+ event?: {
30
+ starts_at: string;
31
+ ends_at: string;
32
+ event_type: string;
33
+ cost: "free" | "paid" | "unknown";
34
+ cost_verified: boolean;
35
+ } | null;
36
+ };
37
+ type PetPhoto = {
38
+ id: string;
39
+ caption: string;
40
+ attribution: string;
41
+ status: string;
42
+ };
43
+ type PetResource = {
44
+ id: string;
45
+ kind: PetKind;
46
+ area_id: string;
47
+ revision: number;
48
+ content: PetContent;
49
+ media: PetPhoto[];
50
+ expires_at?: string | null;
51
+ reunited_at?: string | null;
52
+ };
53
+ type OwnPetResource = PetResource & {
54
+ visibility: "public" | "private";
55
+ status: "draft" | "submitted" | "reviewing" | "changes_requested" | "approved" | "published" | "rejected" | "removed";
56
+ review_note: string;
57
+ profile_id?: string | null;
58
+ };
59
+ type PetPreferences = {
60
+ home_area_id: string | null;
61
+ followed_area_ids: string[];
62
+ categories: string[];
63
+ email_enabled: boolean;
64
+ frequency: "immediate" | "daily" | "weekly" | null;
65
+ };
66
+ type PetPreferenceRecord = {
67
+ revision: number;
68
+ preferences: PetPreferences;
69
+ };
70
+ declare const PET_NOTIFICATION_CATEGORIES: readonly [readonly ["lost_found", "Lost & found"], readonly ["walks", "Paw Walks"], readonly ["adoption_events", "Adoption events"], readonly ["celebrations", "Pet celebrations"], readonly ["spotlight", "Paw of the Week"], readonly ["community", "Community information"]];
71
+ type PetReference = {
72
+ collection_slug: string;
73
+ id: string;
74
+ kind: PetKind;
75
+ };
76
+ declare const PET_PHOTO_CATEGORIES: readonly [readonly ["cute", "Cute pets"], readonly ["funny", "Funny moments"], readonly ["adventures", "Adventures"], readonly ["senior", "Senior pets"], readonly ["rescue", "Rescue stories"], readonly ["young", "Puppies & kittens"], readonly ["unusual", "Unusual pets"], readonly ["friends", "Best friends"], readonly ["holiday", "Holiday pets"]];
77
+ declare const PET_CELEBRATIONS: readonly [readonly ["birthday", "Pet birthday"], readonly ["adoption_anniversary", "Adoption anniversary"], readonly ["welcome_home", "Welcome home"], readonly ["rescue_story", "Rescue story"], readonly ["happy_reunion", "Happy reunion"], readonly ["memorial", "Memorial tribute"]];
78
+ declare const PET_SAFETY: {
79
+ readonly recovery: "Bay Area Paw does not independently verify pet ownership. A report is a contributor’s account. Never send money or verification codes to someone claiming to have found a pet. Keep microchip numbers and ownership evidence private.";
80
+ readonly walks: "Walks are independently organized. Bay Area Paw does not supervise meetups or guarantee participants’ safety. Meet in a public place, follow leash rules and respect other people and animals.";
81
+ readonly adoption: "Contact the named shelter or rescue for current availability, eligibility and adoption arrangements. Bay Area Paw is not the adoption agency and does not collect adoption payments.";
82
+ readonly wellness: "Wellness information is educational. Contact a veterinarian for advice about your pet.";
83
+ };
84
+ declare const PET_UUID: RegExp;
85
+ declare const PET_SLUG: RegExp;
86
+ declare function petReferences(metadata: unknown): PetReference[];
87
+ /** Selection is constrained to server-resolved publication coverage. No geolocation required. */
88
+ declare function resolvePetCommunity(areas: readonly PetCommunity[], selected?: string | null, preference?: string | null, publicationDefault?: string | null): PetCommunity | undefined;
89
+ declare function safePetLink(raw: string): string | undefined;
90
+ declare function adoptionAvailability(source: PetContent["source"], now?: number): "confirmed" | "check_with_organization";
91
+ declare function petProfileMetadata(resource: PetResource | null, canonicalUrl: string, photoUrl?: string): {
92
+ title: string;
93
+ robots: {
94
+ index: boolean;
95
+ follow: boolean;
96
+ };
97
+ description?: undefined;
98
+ alternates?: undefined;
99
+ openGraph?: undefined;
100
+ } | {
101
+ title: string;
102
+ description: string;
103
+ alternates: {
104
+ canonical: string;
105
+ };
106
+ openGraph: {
107
+ images?: {
108
+ url: string;
109
+ alt: string;
110
+ }[] | undefined;
111
+ title: string;
112
+ description: string;
113
+ url: string;
114
+ };
115
+ robots?: undefined;
116
+ };
117
+ type PawWalkDetails = {
118
+ duration_minutes: number;
119
+ distance_km?: number;
120
+ leash: "required" | "venue_rules";
121
+ size_guidance: string;
122
+ accessibility: string;
123
+ };
124
+ /** Added to the existing Meet model; booking, participants, cancellation and rooms remain Meet-owned. */
125
+ declare function preparePawWalk(value: Partial<PawWalkDetails>): PawWalkDetails;
126
+
127
+ export { type OwnPetResource, PET_CELEBRATIONS, PET_KINDS, PET_NOTIFICATION_CATEGORIES, PET_PHOTO_CATEGORIES, PET_SAFETY, PET_SLUG, PET_UUID, type PawWalkDetails, type PetCommunity, type PetContent, type PetKind, type PetPhoto, type PetPreferenceRecord, type PetPreferences, type PetReference, type PetResource, adoptionAvailability, petProfileMetadata, petReferences, preparePawWalk, resolvePetCommunity, safePetLink };
package/dist/pets.js ADDED
@@ -0,0 +1 @@
1
+ export { PET_CELEBRATIONS, PET_KINDS, PET_NOTIFICATION_CATEGORIES, PET_PHOTO_CATEGORIES, PET_SAFETY, PET_SLUG, PET_UUID, adoptionAvailability, petProfileMetadata, petReferences, preparePawWalk, resolvePetCommunity, safePetLink } from './chunk-MBBPEFDA.js';
@@ -1,4 +1,4 @@
1
- import react__default from 'react';
1
+ import React__default from 'react';
2
2
  import { C as Creative, P as PublicAcknowledgment } from './sponsorships-CtnBe3S8.cjs';
3
3
 
4
4
  declare function SponsorAcknowledgment({ creative, label, preview, acknowledgment, }: {
@@ -6,6 +6,6 @@ declare function SponsorAcknowledgment({ creative, label, preview, acknowledgmen
6
6
  label?: "Community Partner" | "Sponsored";
7
7
  preview?: boolean;
8
8
  acknowledgment?: PublicAcknowledgment;
9
- }): react__default.JSX.Element;
9
+ }): React__default.JSX.Element;
10
10
 
11
11
  export { SponsorAcknowledgment };
@@ -1,4 +1,4 @@
1
- import react__default from 'react';
1
+ import React__default from 'react';
2
2
  import { C as Creative, P as PublicAcknowledgment } from './sponsorships-CtnBe3S8.js';
3
3
 
4
4
  declare function SponsorAcknowledgment({ creative, label, preview, acknowledgment, }: {
@@ -6,6 +6,6 @@ declare function SponsorAcknowledgment({ creative, label, preview, acknowledgmen
6
6
  label?: "Community Partner" | "Sponsored";
7
7
  preview?: boolean;
8
8
  acknowledgment?: PublicAcknowledgment;
9
- }): react__default.JSX.Element;
9
+ }): React__default.JSX.Element;
10
10
 
11
11
  export { SponsorAcknowledgment };
@@ -1,62 +1,2 @@
1
- import { safeSponsorUrl } from './chunk-66GI2IX6.js';
2
- import { jsxs, jsx } from 'react/jsx-runtime';
3
-
4
- function SponsorAcknowledgment({
5
- creative,
6
- label = "Community Partner",
7
- preview = false,
8
- acknowledgment
9
- }) {
10
- const logo = safeSponsorUrl(creative.logo_url);
11
- const destination = safeSponsorUrl(creative.destination_url);
12
- return /* @__PURE__ */ jsxs(
13
- "aside",
14
- {
15
- className: "sm-sponsorship",
16
- "aria-label": `${label}: ${creative.name}`,
17
- "data-sponsorship": preview ? void 0 : acknowledgment?.campaign_id,
18
- "data-placement-id": preview ? void 0 : acknowledgment?.placement_id,
19
- "data-publication-id": preview ? void 0 : acknowledgment?.publication_id,
20
- "data-sponsor-id": preview ? void 0 : acknowledgment?.sponsor_id,
21
- children: [
22
- /* @__PURE__ */ jsxs("div", { className: "sm-sponsorship-copy", children: [
23
- /* @__PURE__ */ jsxs("p", { className: "sm-sponsorship-label", children: [
24
- label,
25
- preview ? " \xB7 Illustrative preview" : ""
26
- ] }),
27
- /* @__PURE__ */ jsx("p", { className: "sm-sponsorship-name", children: creative.name }),
28
- creative.description && /* @__PURE__ */ jsx("p", { className: "sm-sponsorship-description", children: creative.description }),
29
- destination && /* @__PURE__ */ jsxs(
30
- "a",
31
- {
32
- href: destination,
33
- rel: "sponsored noopener noreferrer",
34
- referrerPolicy: "no-referrer",
35
- "data-analytics-skip": "true",
36
- children: [
37
- creative.link_label || "Learn more",
38
- /* @__PURE__ */ jsxs("span", { className: "sm-sponsorship-sr", children: [
39
- " about ",
40
- creative.name
41
- ] })
42
- ]
43
- }
44
- )
45
- ] }),
46
- logo && /* @__PURE__ */ jsx(
47
- "img",
48
- {
49
- src: logo,
50
- alt: `${creative.name} logo`,
51
- loading: "lazy",
52
- decoding: "async",
53
- referrerPolicy: "no-referrer",
54
- className: "sm-sponsorship-logo"
55
- }
56
- )
57
- ]
58
- }
59
- );
60
- }
61
-
62
- export { SponsorAcknowledgment };
1
+ export { SponsorAcknowledgment } from './chunk-4JRWZXAP.js';
2
+ import './chunk-66GI2IX6.js';
@@ -1,4 +1,4 @@
1
- import react__default from 'react';
1
+ import React__default from 'react';
2
2
  import { C as ContentBlock } from './article-blocks-DsabIDmH.cjs';
3
3
 
4
4
  type Media = {
@@ -46,17 +46,17 @@ declare function StoryReview({ sessionId, publicationName, nameplateUrl, publica
46
46
  publicationName: string;
47
47
  nameplateUrl?: string;
48
48
  /** The publication supplies its real shell; private content still loads only through the review capability. */
49
- publicationHeader?: react__default.ReactNode;
50
- publicationFooter?: react__default.ReactNode;
49
+ publicationHeader?: React__default.ReactNode;
50
+ publicationFooter?: React__default.ReactNode;
51
51
  /** Reuse the publication's existing account and sign-in components. */
52
52
  readerAccountUrl?: string;
53
- renderSignIn?: (returnTo: string) => react__default.ReactNode;
53
+ renderSignIn?: (returnTo: string) => React__default.ReactNode;
54
54
  feedbackEmail?: string;
55
- }): react__default.JSX.Element;
55
+ }): React__default.JSX.Element;
56
56
  /** Paragraph comparisons preserve readable prose and identify title/dek and media changes. */
57
57
  declare function ReviewDiff({ before, after, }: {
58
58
  before: Revision;
59
59
  after: Revision;
60
- }): react__default.JSX.Element;
60
+ }): React__default.JSX.Element;
61
61
 
62
62
  export { type Document, type Media, ReviewDiff, StoryReview };
@@ -1,4 +1,4 @@
1
- import react__default from 'react';
1
+ import React__default from 'react';
2
2
  import { C as ContentBlock } from './article-blocks-DsabIDmH.js';
3
3
 
4
4
  type Media = {
@@ -46,17 +46,17 @@ declare function StoryReview({ sessionId, publicationName, nameplateUrl, publica
46
46
  publicationName: string;
47
47
  nameplateUrl?: string;
48
48
  /** The publication supplies its real shell; private content still loads only through the review capability. */
49
- publicationHeader?: react__default.ReactNode;
50
- publicationFooter?: react__default.ReactNode;
49
+ publicationHeader?: React__default.ReactNode;
50
+ publicationFooter?: React__default.ReactNode;
51
51
  /** Reuse the publication's existing account and sign-in components. */
52
52
  readerAccountUrl?: string;
53
- renderSignIn?: (returnTo: string) => react__default.ReactNode;
53
+ renderSignIn?: (returnTo: string) => React__default.ReactNode;
54
54
  feedbackEmail?: string;
55
- }): react__default.JSX.Element;
55
+ }): React__default.JSX.Element;
56
56
  /** Paragraph comparisons preserve readable prose and identify title/dek and media changes. */
57
57
  declare function ReviewDiff({ before, after, }: {
58
58
  before: Revision;
59
59
  after: Revision;
60
- }): react__default.JSX.Element;
60
+ }): React__default.JSX.Element;
61
61
 
62
62
  export { type Document, type Media, ReviewDiff, StoryReview };
@@ -1,4 +1,4 @@
1
- import react__default from 'react';
1
+ import React__default from 'react';
2
2
 
3
3
  interface ThemeToggleProps {
4
4
  /**
@@ -17,6 +17,6 @@ interface ThemeToggleProps {
17
17
  /** Link for reader account / sync. Default: "/account" */
18
18
  accountUrl?: string;
19
19
  }
20
- declare function ThemeToggle({ variant, className, showPromotion, accountUrl, }: ThemeToggleProps): react__default.JSX.Element;
20
+ declare function ThemeToggle({ variant, className, showPromotion, accountUrl, }: ThemeToggleProps): React__default.JSX.Element;
21
21
 
22
22
  export { ThemeToggle, type ThemeToggleProps };
@@ -1,4 +1,4 @@
1
- import react__default from 'react';
1
+ import React__default from 'react';
2
2
 
3
3
  interface ThemeToggleProps {
4
4
  /**
@@ -17,6 +17,6 @@ interface ThemeToggleProps {
17
17
  /** Link for reader account / sync. Default: "/account" */
18
18
  accountUrl?: string;
19
19
  }
20
- declare function ThemeToggle({ variant, className, showPromotion, accountUrl, }: ThemeToggleProps): react__default.JSX.Element;
20
+ declare function ThemeToggle({ variant, className, showPromotion, accountUrl, }: ThemeToggleProps): React__default.JSX.Element;
21
21
 
22
22
  export { ThemeToggle, type ThemeToggleProps };
@@ -1,4 +1,4 @@
1
- import * as react from 'react';
1
+ import * as React from 'react';
2
2
  import { V as VerifiedCard } from './types-BJFCWWi0.cjs';
3
3
 
4
4
  /**
@@ -14,10 +14,10 @@ declare function getArticleCards(rawCards?: unknown, slug?: string): VerifiedCar
14
14
  declare function VerifiedCardComponent({ card, className, }: {
15
15
  card: VerifiedCard;
16
16
  className?: string;
17
- }): react.JSX.Element;
17
+ }): React.JSX.Element;
18
18
  declare function VerifiedCardSection({ cards, className, }: {
19
19
  cards?: VerifiedCard[];
20
20
  className?: string;
21
- }): react.JSX.Element | null;
21
+ }): React.JSX.Element | null;
22
22
 
23
23
  export { VerifiedCardComponent, VerifiedCardSection, getArticleCards, isSafeActionUrl };
@@ -1,4 +1,4 @@
1
- import * as react from 'react';
1
+ import * as React from 'react';
2
2
  import { V as VerifiedCard } from './types-BJFCWWi0.js';
3
3
 
4
4
  /**
@@ -14,10 +14,10 @@ declare function getArticleCards(rawCards?: unknown, slug?: string): VerifiedCar
14
14
  declare function VerifiedCardComponent({ card, className, }: {
15
15
  card: VerifiedCard;
16
16
  className?: string;
17
- }): react.JSX.Element;
17
+ }): React.JSX.Element;
18
18
  declare function VerifiedCardSection({ cards, className, }: {
19
19
  cards?: VerifiedCard[];
20
20
  className?: string;
21
- }): react.JSX.Element | null;
21
+ }): React.JSX.Element | null;
22
22
 
23
23
  export { VerifiedCardComponent, VerifiedCardSection, getArticleCards, isSafeActionUrl };