@timardex/cluemart-shared 1.5.599 → 1.5.601

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.
package/dist/index.d.mts CHANGED
@@ -2659,6 +2659,7 @@ type ShareStallType = {
2659
2659
  type ShareEventInfoForInvitation = {
2660
2660
  applicationDeadlineHours: number;
2661
2661
  dateTime: Array<{
2662
+ startDate: string;
2662
2663
  stallTypes: ShareStallType[];
2663
2664
  }>;
2664
2665
  requirements?: Array<{
@@ -2686,7 +2687,15 @@ type ShareVendorInfoForApplication = {
2686
2687
  };
2687
2688
  };
2688
2689
 
2690
+ /** Formats event `startDate` (`DD-MM-YYYY`) for share copy — same as share preview UI. */
2691
+ declare function formatShareMarketDate(dateStr: string): string;
2689
2692
  declare function formatStallCapacityLabel(stallCapacity: number): string;
2693
+ /** Nested market dates + per-date stall lines for invitation share copy. */
2694
+ declare function formatShareInvitationMarketDatesSection(dateTime: ShareEventInfoForInvitation["dateTime"]): string;
2695
+ /** Bulleted requirements list for invitation share copy. */
2696
+ declare function formatShareInvitationRequirementsSection(requirementLabels: string[]): string;
2697
+ /** Bulleted categories list for application share copy. */
2698
+ declare function formatShareApplicationCategoriesSection(categoryLabels: string[]): string;
2690
2699
  declare function buildInvitationShareDescription(event: ShareEventForInvitation, eventInfo: ShareEventInfoForInvitation | null | undefined): string;
2691
2700
  declare function buildApplicationShareDescription(vendor: ShareVendorForApplication, vendorInfo: ShareVendorInfoForApplication | null | undefined): string;
2692
2701
 
@@ -2709,6 +2718,15 @@ declare const SHARE_TYPE_PATH_REGEX: string;
2709
2718
  declare function buildShareUrl(type: ShareType, id: string): string;
2710
2719
 
2711
2720
  declare const SHARE_SITE_URL = "https://cluemart.co.nz";
2721
+ /** Calendar marker for invitation market-dates share copy (U+1F4C5 📅). */
2722
+ declare const SHARE_CALENDAR_ICON = "\uD83D\uDCC5";
2723
+ declare const SHARE_MARKET_DATES_SECTION_HEADING = "\uD83D\uDCC5 Market dates:";
2724
+ /** Check mark for invitation requirements share copy (U+2705 ✅). */
2725
+ declare const SHARE_CHECKMARK_ICON = "\u2705";
2726
+ declare const SHARE_REQUIREMENTS_SECTION_HEADING = "\u2705 Requirements:";
2727
+ /** Label tag for application categories share copy (U+1F3F7 🏷️). */
2728
+ declare const SHARE_CATEGORY_ICON = "\uD83C\uDFF7\uFE0F";
2729
+ declare const SHARE_CATEGORIES_SECTION_HEADING = "\uD83C\uDFF7\uFE0F Categories:";
2712
2730
  declare const DEFAULT_SHARE_OG_IMAGE = "https://cluemart.co.nz/assets/logo.webp";
2713
2731
  declare const RESOURCE_SHARE_TYPES: readonly ["market", "stallholder", "partner"];
2714
2732
  type ResourceShareType = (typeof RESOURCE_SHARE_TYPES)[number];
@@ -2724,8 +2742,16 @@ declare function formatCategoryLabel(category: ShareVendorCategory): string;
2724
2742
  declare const SHARE_DESCRIPTION_SECTION_SEPARATOR = " \u00B7 ";
2725
2743
  /** Blank line between share sections — title, address, dates, URL, etc. */
2726
2744
  declare const SHARE_DESCRIPTION_SECTION_BREAK = "\n\n";
2745
+ /**
2746
+ * Line break for `og:description` meta content. Use instead of `\n` — Next.js
2747
+ * HTML serialisation collapses literal newlines to spaces; Facebook reads `&#10;`.
2748
+ */
2749
+ declare const OG_DESCRIPTION_LINE_BREAK = "&#10;";
2750
+ /** Joins OG description sections for Facebook link cards (and Twitter). */
2751
+ declare function joinShareOgDescriptionSections(sections: ReadonlyArray<string | false | null | undefined>): string;
2727
2752
  declare function joinShareDescriptionSections(sections: ReadonlyArray<string | false | null | undefined>): string;
2728
2753
 
2754
+ declare function splitShareDescriptionSections(value: string): string[];
2729
2755
  /**
2730
2756
  * Share copy with a blank line between each section (share sheet message, previews).
2731
2757
  */
@@ -2735,8 +2761,8 @@ declare function formatShareSectionsForMultilineDisplay(value: string): string;
2735
2761
  */
2736
2762
  declare function formatShareSectionsForCompactDisplay(value: string): string;
2737
2763
  /**
2738
- * Formats share descriptions for Open Graph / Twitter meta tags when crawlers
2739
- * collapse line breaks.
2764
+ * Formats share descriptions for Open Graph / Twitter meta tags.
2765
+ * Sections are joined with {@link OG_DESCRIPTION_LINE_BREAK} (`&#10;`).
2740
2766
  */
2741
2767
  declare function normalizeShareOgDescription(value: string): string;
2742
2768
  /**
@@ -2747,9 +2773,13 @@ declare function normalizeShareOgDescription(value: string): string;
2747
2773
  */
2748
2774
  declare function buildFacebookShareQuote(title: string, description: string): string | undefined;
2749
2775
  /**
2750
- * Open Graph / Twitter description single line, no repeated `og:title`.
2751
- *
2752
- * Facebook's link card does not render `\n`; sections are joined with ` · `.
2776
+ * Open Graph / Twitter description from pre-built section strings.
2777
+ * Prefer {@link joinShareOgDescriptionSections} when sections are already known.
2778
+ */
2779
+ declare function buildShareOgDescriptionFromSections(sections: ReadonlyArray<string | false | null | undefined>): string;
2780
+ /**
2781
+ * Open Graph / Twitter description — body sections only (`og:title` is separate).
2782
+ * Multiline / legacy ` · ` input is split into sections, then joined with `&#10;`.
2753
2783
  */
2754
2784
  declare function buildShareOgDescription(_title: string, description: string): string;
2755
2785
 
@@ -2872,4 +2902,4 @@ declare const ANDROID_URL = "https://play.google.com/store/apps/details?id=com.t
2872
2902
  declare const SCHOOL_MIN_STUDENT_COUNT = 300;
2873
2903
  declare const SCHOOL_MAX_STUDENT_COUNT = 0;
2874
2904
 
2875
- export { ANDROID_URL, type AdFormData, type AdResource, type AdType, type AdminUpdateResourceType, type AppSettingsFormData, type AppSettingsType, type AssociateType, type BadgeBasename, type BadgeId, type BaseGameMap, type BaseGameType, type BaseResourceType, type BaseResourceTypeFormData, type Category, type ChatMessageInput, type ChatMessageReaction, type ChatMessageReplyPreview, type ChatMessageSeen, type ChatMessageType, type ChatType, type CluiImageBasename, type CluiImageId, type ContactUsFormData, type CreateAdFormData, type CreateAppSettingsFormData, type CreateBulkNotificationInput, type CreateContactUsFormData, type CreateEventFormData, type CreateEventInfoFormData, type CreateFormData, type CreateLoginFormData, type CreatePartnerFormData, type CreatePostFormData, type CreateRegisterFormData, type CreateRequestPasswordResetFormData, type CreateResetPasswordFormData, type CreateSchoolFormData, type CreateUnregisteredVendorFormData, type CreateUserFormData, type CreateValidateVerificationTokenFormData, type CreateVendorFormData, type CreateVendorInfoFormData, DEFAULT_SHARE_OG_IMAGE, type DailyClueBaseGame, type DailyClueGameData, type DateTimeType, type DateTimeWithPriceType, type DeviceInfo, EnumActivity, EnumAdShowOn, EnumAdStatus, EnumAdStyle, EnumAdType, EnumBillingPeriod, EnumChatReportReason, EnumChatType, EnumEventDateStatus, EnumEventType, EnumFoodFlavor, EnumFoodType, EnumGameStatus, EnumGameType, EnumInviteStatus, EnumNotificationResourceType, EnumNotificationType, EnumOSPlatform, EnumPartnerType, EnumPaymentMethod, EnumPostContentType, EnumPostType, EnumRegions, EnumRelationResource, EnumResourceType, EnumSocialMedia, EnumSubscriptionStatus, EnumUserLicence, EnumUserRole, EnumVendorType, EnumVerificationType, type EventFormData, type EventInfoFormData, type EventInfoType, type EventListItemType, type EventStatusType, type EventType, type FormDateField, type FormField, type GameDate, type GameDocType, type GameHistory, type GameLeaderboard, type GamePlacement, type GamePlacementClue, type GameType, type GeocodeLocation, type GlobalGameData, type GoogleAddressComponent, type GoogleImportedMarket, IMAGE_EXTENSION, IOS_URL, type IconBasename, type IconId, type ImageObjectType, ImageTypeEnum, type LocationGeoType, type LocationType, type LoginFormData, type LogoBasename, type LogoId, type MarketingMaterialRequestInputType, type MiniQuizAnswer, type MiniQuizAnsweredQuestion, type MiniQuizBaseGame, type MiniQuizGameData, type MiniQuizQuestion, type NotificationCount, type NotificationDataType, type NotificationType, type Nullable, type OptionItem, type OtherImagesBasename, type OtherImagesId, type OwnerType, POST_SHARE_RESOURCE_TYPES, PROMO_CODE_PREFIX, PUBLIC_SHARE_PATH_TYPES, type ParticipantType, type PartnerFormData, type PartnerType, type PaymentInfoType, type PlacePrediction, type PostContentData, type PostContentFormData, type PostContentGame, type PostContentImage, type PostContentList, type PostContentTextarea, type PostContentType, type PostContentVideo, type PostFileInput, type PostFormData, type PostShareResourceType, type PostType, type PosterAssetId, type PosterImageBasename, type PosterInputType, type PosterUsageType, type PromoCodeType, type PublicSharePathType, RELATION_SHARE_APPLICATION, RELATION_SHARE_INVITATION, RELATION_SHARE_RESOURCE_TYPES, RESOURCE_SHARE_TYPES, RESOURCE_SHARE_TYPES_FOR_URL, type RefundPolicy, type Region, type RegisterFormData, type RelationDate, type RelationSharePathType, type RelationShareResourceType, type RelationType, type ReportChatUser, type RequestPasswordResetFormData, type Requirement, type ResetPasswordFormData, type ResourceActivityEntry, type ResourceActivityInputType, type ResourceActivityType, type ResourceByUser, type ResourceConnectionsType, type ResourceContactDetailsType, type ResourceDetails, type ResourceImageType, type ResourceShareType, SAVED_EMAIL_KEY, SAVED_PASSWORD_KEY, SAVED_REFRESH_TOKEN_KEY, SAVED_TOKEN_KEY, SCHOOL_MAX_STUDENT_COUNT, SCHOOL_MIN_STUDENT_COUNT, SHARE_DESCRIPTION_SECTION_BREAK, SHARE_DESCRIPTION_SECTION_SEPARATOR, SHARE_RESOURCE_LABEL, SHARE_SITE_URL, SHARE_TYPE_PATH_REGEX, type SchoolCampaignType, type SchoolFormData, type SchoolRegisteredUserType, type SchoolReturnType, type SchoolType, type ShareEventDateTime, type ShareEventForInvitation, type ShareEventInfoForInvitation, type ShareResourceType, type ShareStallType, type ShareType, type ShareVendorCategory, type ShareVendorForApplication, type ShareVendorInfoForApplication, type SocialMediaType, type StallType, type StripeSubscription, type Subcategory, type SubcategoryItems, type SubscriptionPlanData, type SubscriptionPlansResponse, type SubscriptionPricingData, type SubscriptionStatusData, type TermsAgreement, USER_STORAGE_KEY, type UnregisteredVendorFormData, type UnregisteredVendorInvitationType, type UnregisteredVendorType, type UseGetEventsByRegionOptions, type UserActivity, type UserActivityEvent, type UserFormData, type UserLicenceType, type UserType, type ValidateVerificationTokenFormData, type VendorAttributes, type VendorCalendarData, type VendorFormData, type VendorInfoFormData, type VendorInfoType, type VendorProductList, type VendorType, availableCategories, availableRegionOptions, availableRegionTypes, availableTagTypes, badgeFiles, badgeIds, badges, buildApplicationShareDescription, buildFacebookShareQuote, buildInvitationShareDescription, buildShareOgDescription, buildSharePagePath, buildShareUrl, capitalizeFirstLetter, categoryColors, cluemartSocialMedia, cluiFiles, cluiIds, cluiImages, companyContactFields, computeDailyClueState, contactUsFields, darkColors, dateFormat, defaultEventFormValues, defaultEventInfoFormValues, defaultLocation, defaultPartnerFormValues, defaultUnregisteredVendorFormValues, defaultVendorFormValues, defaultVendorInfoFormValues, emailField, eventBasicInfoFields, eventEndDateFields, eventInfo, eventInfoPaymentInfo, eventStartDateFields, fonts, foodFlavourOptions, formatCategoryLabel, formatDate, formatShareSectionsForCompactDisplay, formatShareSectionsForMultilineDisplay, formatStallCapacityLabel, formatTimestamp, gameScreenIdentifierList, gameTypeToDisplayName, getCurrentAndFutureDates, globalDefaultValues, iconFiles, iconIds, icons, isFutureDatesBeforeThreshold, isIsoDateString, isPostShareResourceType, isRelationShareResourceType, joinShareDescriptionSections, licenseNiceNames, lightColors, loginFields, logoFiles, logoIds, logos, mapArrayToOptions, mapBaseResourceTypeToFormData, normalizeShareOgDescription, normalizeShareRouteId, normalizeUrl, nzStartOfDay, otherImages, otherImagesFiles, otherImagesIds, packagingOptions, partnerBasicInfoFields, paymentMethodOptions, posterFiles, posterIds, posters, priceUnits, producedIngOptions, productLabelGroups, profileFields, refundPolicyOptions, registerFields, removeTypename, requestPasswordResetFields, requirementsOptions, resetPasswordFields, seededShuffle, socialMediaFields, sortDatesChronologically, stallTypeOptions, statusOptions, tagOptions, timeFormat, toNZTime, truncateText, useAdForm, useAddParticipantToChat, useAddUserFavouriteResource, useAddUserGoingResource, useAddUserInterestResource, useAddUserPresentResource, useAdminPermanentlyDeleteResource, useAdminResendUserVerificationEmail, useAdminUpdateResourceType, useAppSettingsForm, useCancelSubscription, useContactUs, useContactUsForm, useCrawlGoogleMarkets, useCreateAd, useCreateBulkNotifications, useCreateCheckoutSession, useCreateCustomerPortal, useCreateEvent, useCreateEventInfo, useCreatePartner, useCreatePost, useCreatePoster, useCreatePrivateChat, useCreatePushToken, useCreateRelation, useCreateResourceActivity, useCreateSchool, useCreateUnregisteredVendor, useCreateUser, useCreateVendor, useCreateVendorInfo, useDeleteAd, useDeleteAllNotifications, useDeleteChat, useDeleteEvent, useDeleteNotification, useDeletePartner, useDeletePost, useDeleteRelation, useDeleteSchool, useDeleteUnregisteredVendor, useDeleteUser, useDeleteVendor, useEventForm, useEventInfoForm, useGetAd, useGetAds, useGetAdsByRegion, useGetAppSettings, useGetChat, useGetChatSubscription, useGetChatsByRegion, useGetEvent, useGetEventByPlaceId, useGetEventInfo, useGetEventRelations, useGetEvents, useGetEventsByRegion, useGetEventsNearMe, useGetGame, useGetGameLeaderboard, useGetGames, useGetNotificationCount, useGetNotificationCountSubscription, useGetPartner, useGetPartners, useGetPartnersByRegion, useGetPost, useGetPosts, useGetPostsByType, useGetRelation, useGetRelationByEventAndVendor, useGetReportedChatUsers, useGetResourceActivity, useGetResourceConnections, useGetSchool, useGetSchools, useGetSubscriptionPlans, useGetSubscriptionStatus, useGetUnregisteredVendor, useGetUnregisteredVendors, useGetUnregisteredVendorsByInviterId, useGetUser, useGetUserActivities, useGetUserChats, useGetUserEvents, useGetUserNotifications, useGetUserNotificationsSubscription, useGetUserPartners, useGetUserResources, useGetUserVendors, useGetUsers, useGetVendor, useGetVendorInfo, useGetVendorRelations, useGetVendors, useGetVendorsByRegion, useLeaveGame, useLocationSearch, useLogin, useLoginForm, useLogout, useMarkAllNotificationsRead, useMarkChatMessagesSeen, useMarkNotificationRead, usePartnerForm, usePostForm, useRefreshToken, useRegister, useRegisterForm, useRemoveParticipantFromChat, useRemoveUserFavouriteResource, useRemoveUserGoingResource, useRemoveUserInterestResource, useRemoveUserPresentResource, useReportChatUser, useRequestMarketingMaterial, useRequestPasswordReset, useRequestPasswordResetForm, useResetPassword, useResetPasswordForm, useSchoolForm, useSearchEvents, useSearchPartners, useSearchVendors, useSelectPackage, useSelectStandardPackage, useSendChatMessage, useStartGame, useToggleChatMessageLike, useUnlinkUnregisteredVendorByInviterId, useUnregisteredVendorForm, useUpdateAd, useUpdateAppSettings, useUpdateDailyClueGame, useUpdateEvent, useUpdateEventInfo, useUpdateGoogleImportedMarkets, useUpdateMiniQuizGame, useUpdatePartner, useUpdatePost, useUpdateRelation, useUpdateSchool, useUpdateSubscriptionPlan, useUpdateUnregisteredVendor, useUpdateUser, useUpdateVendor, useUpdateVendorInfo, useUserForm, useValidateVerificationToken, useValidateVerificationTokenForm, useVendorForm, useVendorInfoForm, validateVerificationTokenFields, vendorAvailability, vendorBasicInfoFields, vendorCompliance, vendorElectricity, vendorEndDateFields, vendorFoodFlavour, vendorFullAddress, vendorGazebo, vendorLocationDescription, vendorMenuFields, vendorPackaging, vendorPriceRange, vendorProducedIn, vendorStallSize, vendorStartDateFields, vendorTable };
2905
+ export { ANDROID_URL, type AdFormData, type AdResource, type AdType, type AdminUpdateResourceType, type AppSettingsFormData, type AppSettingsType, type AssociateType, type BadgeBasename, type BadgeId, type BaseGameMap, type BaseGameType, type BaseResourceType, type BaseResourceTypeFormData, type Category, type ChatMessageInput, type ChatMessageReaction, type ChatMessageReplyPreview, type ChatMessageSeen, type ChatMessageType, type ChatType, type CluiImageBasename, type CluiImageId, type ContactUsFormData, type CreateAdFormData, type CreateAppSettingsFormData, type CreateBulkNotificationInput, type CreateContactUsFormData, type CreateEventFormData, type CreateEventInfoFormData, type CreateFormData, type CreateLoginFormData, type CreatePartnerFormData, type CreatePostFormData, type CreateRegisterFormData, type CreateRequestPasswordResetFormData, type CreateResetPasswordFormData, type CreateSchoolFormData, type CreateUnregisteredVendorFormData, type CreateUserFormData, type CreateValidateVerificationTokenFormData, type CreateVendorFormData, type CreateVendorInfoFormData, DEFAULT_SHARE_OG_IMAGE, type DailyClueBaseGame, type DailyClueGameData, type DateTimeType, type DateTimeWithPriceType, type DeviceInfo, EnumActivity, EnumAdShowOn, EnumAdStatus, EnumAdStyle, EnumAdType, EnumBillingPeriod, EnumChatReportReason, EnumChatType, EnumEventDateStatus, EnumEventType, EnumFoodFlavor, EnumFoodType, EnumGameStatus, EnumGameType, EnumInviteStatus, EnumNotificationResourceType, EnumNotificationType, EnumOSPlatform, EnumPartnerType, EnumPaymentMethod, EnumPostContentType, EnumPostType, EnumRegions, EnumRelationResource, EnumResourceType, EnumSocialMedia, EnumSubscriptionStatus, EnumUserLicence, EnumUserRole, EnumVendorType, EnumVerificationType, type EventFormData, type EventInfoFormData, type EventInfoType, type EventListItemType, type EventStatusType, type EventType, type FormDateField, type FormField, type GameDate, type GameDocType, type GameHistory, type GameLeaderboard, type GamePlacement, type GamePlacementClue, type GameType, type GeocodeLocation, type GlobalGameData, type GoogleAddressComponent, type GoogleImportedMarket, IMAGE_EXTENSION, IOS_URL, type IconBasename, type IconId, type ImageObjectType, ImageTypeEnum, type LocationGeoType, type LocationType, type LoginFormData, type LogoBasename, type LogoId, type MarketingMaterialRequestInputType, type MiniQuizAnswer, type MiniQuizAnsweredQuestion, type MiniQuizBaseGame, type MiniQuizGameData, type MiniQuizQuestion, type NotificationCount, type NotificationDataType, type NotificationType, type Nullable, OG_DESCRIPTION_LINE_BREAK, type OptionItem, type OtherImagesBasename, type OtherImagesId, type OwnerType, POST_SHARE_RESOURCE_TYPES, PROMO_CODE_PREFIX, PUBLIC_SHARE_PATH_TYPES, type ParticipantType, type PartnerFormData, type PartnerType, type PaymentInfoType, type PlacePrediction, type PostContentData, type PostContentFormData, type PostContentGame, type PostContentImage, type PostContentList, type PostContentTextarea, type PostContentType, type PostContentVideo, type PostFileInput, type PostFormData, type PostShareResourceType, type PostType, type PosterAssetId, type PosterImageBasename, type PosterInputType, type PosterUsageType, type PromoCodeType, type PublicSharePathType, RELATION_SHARE_APPLICATION, RELATION_SHARE_INVITATION, RELATION_SHARE_RESOURCE_TYPES, RESOURCE_SHARE_TYPES, RESOURCE_SHARE_TYPES_FOR_URL, type RefundPolicy, type Region, type RegisterFormData, type RelationDate, type RelationSharePathType, type RelationShareResourceType, type RelationType, type ReportChatUser, type RequestPasswordResetFormData, type Requirement, type ResetPasswordFormData, type ResourceActivityEntry, type ResourceActivityInputType, type ResourceActivityType, type ResourceByUser, type ResourceConnectionsType, type ResourceContactDetailsType, type ResourceDetails, type ResourceImageType, type ResourceShareType, SAVED_EMAIL_KEY, SAVED_PASSWORD_KEY, SAVED_REFRESH_TOKEN_KEY, SAVED_TOKEN_KEY, SCHOOL_MAX_STUDENT_COUNT, SCHOOL_MIN_STUDENT_COUNT, SHARE_CALENDAR_ICON, SHARE_CATEGORIES_SECTION_HEADING, SHARE_CATEGORY_ICON, SHARE_CHECKMARK_ICON, SHARE_DESCRIPTION_SECTION_BREAK, SHARE_DESCRIPTION_SECTION_SEPARATOR, SHARE_MARKET_DATES_SECTION_HEADING, SHARE_REQUIREMENTS_SECTION_HEADING, SHARE_RESOURCE_LABEL, SHARE_SITE_URL, SHARE_TYPE_PATH_REGEX, type SchoolCampaignType, type SchoolFormData, type SchoolRegisteredUserType, type SchoolReturnType, type SchoolType, type ShareEventDateTime, type ShareEventForInvitation, type ShareEventInfoForInvitation, type ShareResourceType, type ShareStallType, type ShareType, type ShareVendorCategory, type ShareVendorForApplication, type ShareVendorInfoForApplication, type SocialMediaType, type StallType, type StripeSubscription, type Subcategory, type SubcategoryItems, type SubscriptionPlanData, type SubscriptionPlansResponse, type SubscriptionPricingData, type SubscriptionStatusData, type TermsAgreement, USER_STORAGE_KEY, type UnregisteredVendorFormData, type UnregisteredVendorInvitationType, type UnregisteredVendorType, type UseGetEventsByRegionOptions, type UserActivity, type UserActivityEvent, type UserFormData, type UserLicenceType, type UserType, type ValidateVerificationTokenFormData, type VendorAttributes, type VendorCalendarData, type VendorFormData, type VendorInfoFormData, type VendorInfoType, type VendorProductList, type VendorType, availableCategories, availableRegionOptions, availableRegionTypes, availableTagTypes, badgeFiles, badgeIds, badges, buildApplicationShareDescription, buildFacebookShareQuote, buildInvitationShareDescription, buildShareOgDescription, buildShareOgDescriptionFromSections, buildSharePagePath, buildShareUrl, capitalizeFirstLetter, categoryColors, cluemartSocialMedia, cluiFiles, cluiIds, cluiImages, companyContactFields, computeDailyClueState, contactUsFields, darkColors, dateFormat, defaultEventFormValues, defaultEventInfoFormValues, defaultLocation, defaultPartnerFormValues, defaultUnregisteredVendorFormValues, defaultVendorFormValues, defaultVendorInfoFormValues, emailField, eventBasicInfoFields, eventEndDateFields, eventInfo, eventInfoPaymentInfo, eventStartDateFields, fonts, foodFlavourOptions, formatCategoryLabel, formatDate, formatShareApplicationCategoriesSection, formatShareInvitationMarketDatesSection, formatShareInvitationRequirementsSection, formatShareMarketDate, formatShareSectionsForCompactDisplay, formatShareSectionsForMultilineDisplay, formatStallCapacityLabel, formatTimestamp, gameScreenIdentifierList, gameTypeToDisplayName, getCurrentAndFutureDates, globalDefaultValues, iconFiles, iconIds, icons, isFutureDatesBeforeThreshold, isIsoDateString, isPostShareResourceType, isRelationShareResourceType, joinShareDescriptionSections, joinShareOgDescriptionSections, licenseNiceNames, lightColors, loginFields, logoFiles, logoIds, logos, mapArrayToOptions, mapBaseResourceTypeToFormData, normalizeShareOgDescription, normalizeShareRouteId, normalizeUrl, nzStartOfDay, otherImages, otherImagesFiles, otherImagesIds, packagingOptions, partnerBasicInfoFields, paymentMethodOptions, posterFiles, posterIds, posters, priceUnits, producedIngOptions, productLabelGroups, profileFields, refundPolicyOptions, registerFields, removeTypename, requestPasswordResetFields, requirementsOptions, resetPasswordFields, seededShuffle, socialMediaFields, sortDatesChronologically, splitShareDescriptionSections, stallTypeOptions, statusOptions, tagOptions, timeFormat, toNZTime, truncateText, useAdForm, useAddParticipantToChat, useAddUserFavouriteResource, useAddUserGoingResource, useAddUserInterestResource, useAddUserPresentResource, useAdminPermanentlyDeleteResource, useAdminResendUserVerificationEmail, useAdminUpdateResourceType, useAppSettingsForm, useCancelSubscription, useContactUs, useContactUsForm, useCrawlGoogleMarkets, useCreateAd, useCreateBulkNotifications, useCreateCheckoutSession, useCreateCustomerPortal, useCreateEvent, useCreateEventInfo, useCreatePartner, useCreatePost, useCreatePoster, useCreatePrivateChat, useCreatePushToken, useCreateRelation, useCreateResourceActivity, useCreateSchool, useCreateUnregisteredVendor, useCreateUser, useCreateVendor, useCreateVendorInfo, useDeleteAd, useDeleteAllNotifications, useDeleteChat, useDeleteEvent, useDeleteNotification, useDeletePartner, useDeletePost, useDeleteRelation, useDeleteSchool, useDeleteUnregisteredVendor, useDeleteUser, useDeleteVendor, useEventForm, useEventInfoForm, useGetAd, useGetAds, useGetAdsByRegion, useGetAppSettings, useGetChat, useGetChatSubscription, useGetChatsByRegion, useGetEvent, useGetEventByPlaceId, useGetEventInfo, useGetEventRelations, useGetEvents, useGetEventsByRegion, useGetEventsNearMe, useGetGame, useGetGameLeaderboard, useGetGames, useGetNotificationCount, useGetNotificationCountSubscription, useGetPartner, useGetPartners, useGetPartnersByRegion, useGetPost, useGetPosts, useGetPostsByType, useGetRelation, useGetRelationByEventAndVendor, useGetReportedChatUsers, useGetResourceActivity, useGetResourceConnections, useGetSchool, useGetSchools, useGetSubscriptionPlans, useGetSubscriptionStatus, useGetUnregisteredVendor, useGetUnregisteredVendors, useGetUnregisteredVendorsByInviterId, useGetUser, useGetUserActivities, useGetUserChats, useGetUserEvents, useGetUserNotifications, useGetUserNotificationsSubscription, useGetUserPartners, useGetUserResources, useGetUserVendors, useGetUsers, useGetVendor, useGetVendorInfo, useGetVendorRelations, useGetVendors, useGetVendorsByRegion, useLeaveGame, useLocationSearch, useLogin, useLoginForm, useLogout, useMarkAllNotificationsRead, useMarkChatMessagesSeen, useMarkNotificationRead, usePartnerForm, usePostForm, useRefreshToken, useRegister, useRegisterForm, useRemoveParticipantFromChat, useRemoveUserFavouriteResource, useRemoveUserGoingResource, useRemoveUserInterestResource, useRemoveUserPresentResource, useReportChatUser, useRequestMarketingMaterial, useRequestPasswordReset, useRequestPasswordResetForm, useResetPassword, useResetPasswordForm, useSchoolForm, useSearchEvents, useSearchPartners, useSearchVendors, useSelectPackage, useSelectStandardPackage, useSendChatMessage, useStartGame, useToggleChatMessageLike, useUnlinkUnregisteredVendorByInviterId, useUnregisteredVendorForm, useUpdateAd, useUpdateAppSettings, useUpdateDailyClueGame, useUpdateEvent, useUpdateEventInfo, useUpdateGoogleImportedMarkets, useUpdateMiniQuizGame, useUpdatePartner, useUpdatePost, useUpdateRelation, useUpdateSchool, useUpdateSubscriptionPlan, useUpdateUnregisteredVendor, useUpdateUser, useUpdateVendor, useUpdateVendorInfo, useUserForm, useValidateVerificationToken, useValidateVerificationTokenForm, useVendorForm, useVendorInfoForm, validateVerificationTokenFields, vendorAvailability, vendorBasicInfoFields, vendorCompliance, vendorElectricity, vendorEndDateFields, vendorFoodFlavour, vendorFullAddress, vendorGazebo, vendorLocationDescription, vendorMenuFields, vendorPackaging, vendorPriceRange, vendorProducedIn, vendorStallSize, vendorStartDateFields, vendorTable };
package/dist/index.d.ts CHANGED
@@ -2659,6 +2659,7 @@ type ShareStallType = {
2659
2659
  type ShareEventInfoForInvitation = {
2660
2660
  applicationDeadlineHours: number;
2661
2661
  dateTime: Array<{
2662
+ startDate: string;
2662
2663
  stallTypes: ShareStallType[];
2663
2664
  }>;
2664
2665
  requirements?: Array<{
@@ -2686,7 +2687,15 @@ type ShareVendorInfoForApplication = {
2686
2687
  };
2687
2688
  };
2688
2689
 
2690
+ /** Formats event `startDate` (`DD-MM-YYYY`) for share copy — same as share preview UI. */
2691
+ declare function formatShareMarketDate(dateStr: string): string;
2689
2692
  declare function formatStallCapacityLabel(stallCapacity: number): string;
2693
+ /** Nested market dates + per-date stall lines for invitation share copy. */
2694
+ declare function formatShareInvitationMarketDatesSection(dateTime: ShareEventInfoForInvitation["dateTime"]): string;
2695
+ /** Bulleted requirements list for invitation share copy. */
2696
+ declare function formatShareInvitationRequirementsSection(requirementLabels: string[]): string;
2697
+ /** Bulleted categories list for application share copy. */
2698
+ declare function formatShareApplicationCategoriesSection(categoryLabels: string[]): string;
2690
2699
  declare function buildInvitationShareDescription(event: ShareEventForInvitation, eventInfo: ShareEventInfoForInvitation | null | undefined): string;
2691
2700
  declare function buildApplicationShareDescription(vendor: ShareVendorForApplication, vendorInfo: ShareVendorInfoForApplication | null | undefined): string;
2692
2701
 
@@ -2709,6 +2718,15 @@ declare const SHARE_TYPE_PATH_REGEX: string;
2709
2718
  declare function buildShareUrl(type: ShareType, id: string): string;
2710
2719
 
2711
2720
  declare const SHARE_SITE_URL = "https://cluemart.co.nz";
2721
+ /** Calendar marker for invitation market-dates share copy (U+1F4C5 📅). */
2722
+ declare const SHARE_CALENDAR_ICON = "\uD83D\uDCC5";
2723
+ declare const SHARE_MARKET_DATES_SECTION_HEADING = "\uD83D\uDCC5 Market dates:";
2724
+ /** Check mark for invitation requirements share copy (U+2705 ✅). */
2725
+ declare const SHARE_CHECKMARK_ICON = "\u2705";
2726
+ declare const SHARE_REQUIREMENTS_SECTION_HEADING = "\u2705 Requirements:";
2727
+ /** Label tag for application categories share copy (U+1F3F7 🏷️). */
2728
+ declare const SHARE_CATEGORY_ICON = "\uD83C\uDFF7\uFE0F";
2729
+ declare const SHARE_CATEGORIES_SECTION_HEADING = "\uD83C\uDFF7\uFE0F Categories:";
2712
2730
  declare const DEFAULT_SHARE_OG_IMAGE = "https://cluemart.co.nz/assets/logo.webp";
2713
2731
  declare const RESOURCE_SHARE_TYPES: readonly ["market", "stallholder", "partner"];
2714
2732
  type ResourceShareType = (typeof RESOURCE_SHARE_TYPES)[number];
@@ -2724,8 +2742,16 @@ declare function formatCategoryLabel(category: ShareVendorCategory): string;
2724
2742
  declare const SHARE_DESCRIPTION_SECTION_SEPARATOR = " \u00B7 ";
2725
2743
  /** Blank line between share sections — title, address, dates, URL, etc. */
2726
2744
  declare const SHARE_DESCRIPTION_SECTION_BREAK = "\n\n";
2745
+ /**
2746
+ * Line break for `og:description` meta content. Use instead of `\n` — Next.js
2747
+ * HTML serialisation collapses literal newlines to spaces; Facebook reads `&#10;`.
2748
+ */
2749
+ declare const OG_DESCRIPTION_LINE_BREAK = "&#10;";
2750
+ /** Joins OG description sections for Facebook link cards (and Twitter). */
2751
+ declare function joinShareOgDescriptionSections(sections: ReadonlyArray<string | false | null | undefined>): string;
2727
2752
  declare function joinShareDescriptionSections(sections: ReadonlyArray<string | false | null | undefined>): string;
2728
2753
 
2754
+ declare function splitShareDescriptionSections(value: string): string[];
2729
2755
  /**
2730
2756
  * Share copy with a blank line between each section (share sheet message, previews).
2731
2757
  */
@@ -2735,8 +2761,8 @@ declare function formatShareSectionsForMultilineDisplay(value: string): string;
2735
2761
  */
2736
2762
  declare function formatShareSectionsForCompactDisplay(value: string): string;
2737
2763
  /**
2738
- * Formats share descriptions for Open Graph / Twitter meta tags when crawlers
2739
- * collapse line breaks.
2764
+ * Formats share descriptions for Open Graph / Twitter meta tags.
2765
+ * Sections are joined with {@link OG_DESCRIPTION_LINE_BREAK} (`&#10;`).
2740
2766
  */
2741
2767
  declare function normalizeShareOgDescription(value: string): string;
2742
2768
  /**
@@ -2747,9 +2773,13 @@ declare function normalizeShareOgDescription(value: string): string;
2747
2773
  */
2748
2774
  declare function buildFacebookShareQuote(title: string, description: string): string | undefined;
2749
2775
  /**
2750
- * Open Graph / Twitter description single line, no repeated `og:title`.
2751
- *
2752
- * Facebook's link card does not render `\n`; sections are joined with ` · `.
2776
+ * Open Graph / Twitter description from pre-built section strings.
2777
+ * Prefer {@link joinShareOgDescriptionSections} when sections are already known.
2778
+ */
2779
+ declare function buildShareOgDescriptionFromSections(sections: ReadonlyArray<string | false | null | undefined>): string;
2780
+ /**
2781
+ * Open Graph / Twitter description — body sections only (`og:title` is separate).
2782
+ * Multiline / legacy ` · ` input is split into sections, then joined with `&#10;`.
2753
2783
  */
2754
2784
  declare function buildShareOgDescription(_title: string, description: string): string;
2755
2785
 
@@ -2872,4 +2902,4 @@ declare const ANDROID_URL = "https://play.google.com/store/apps/details?id=com.t
2872
2902
  declare const SCHOOL_MIN_STUDENT_COUNT = 300;
2873
2903
  declare const SCHOOL_MAX_STUDENT_COUNT = 0;
2874
2904
 
2875
- export { ANDROID_URL, type AdFormData, type AdResource, type AdType, type AdminUpdateResourceType, type AppSettingsFormData, type AppSettingsType, type AssociateType, type BadgeBasename, type BadgeId, type BaseGameMap, type BaseGameType, type BaseResourceType, type BaseResourceTypeFormData, type Category, type ChatMessageInput, type ChatMessageReaction, type ChatMessageReplyPreview, type ChatMessageSeen, type ChatMessageType, type ChatType, type CluiImageBasename, type CluiImageId, type ContactUsFormData, type CreateAdFormData, type CreateAppSettingsFormData, type CreateBulkNotificationInput, type CreateContactUsFormData, type CreateEventFormData, type CreateEventInfoFormData, type CreateFormData, type CreateLoginFormData, type CreatePartnerFormData, type CreatePostFormData, type CreateRegisterFormData, type CreateRequestPasswordResetFormData, type CreateResetPasswordFormData, type CreateSchoolFormData, type CreateUnregisteredVendorFormData, type CreateUserFormData, type CreateValidateVerificationTokenFormData, type CreateVendorFormData, type CreateVendorInfoFormData, DEFAULT_SHARE_OG_IMAGE, type DailyClueBaseGame, type DailyClueGameData, type DateTimeType, type DateTimeWithPriceType, type DeviceInfo, EnumActivity, EnumAdShowOn, EnumAdStatus, EnumAdStyle, EnumAdType, EnumBillingPeriod, EnumChatReportReason, EnumChatType, EnumEventDateStatus, EnumEventType, EnumFoodFlavor, EnumFoodType, EnumGameStatus, EnumGameType, EnumInviteStatus, EnumNotificationResourceType, EnumNotificationType, EnumOSPlatform, EnumPartnerType, EnumPaymentMethod, EnumPostContentType, EnumPostType, EnumRegions, EnumRelationResource, EnumResourceType, EnumSocialMedia, EnumSubscriptionStatus, EnumUserLicence, EnumUserRole, EnumVendorType, EnumVerificationType, type EventFormData, type EventInfoFormData, type EventInfoType, type EventListItemType, type EventStatusType, type EventType, type FormDateField, type FormField, type GameDate, type GameDocType, type GameHistory, type GameLeaderboard, type GamePlacement, type GamePlacementClue, type GameType, type GeocodeLocation, type GlobalGameData, type GoogleAddressComponent, type GoogleImportedMarket, IMAGE_EXTENSION, IOS_URL, type IconBasename, type IconId, type ImageObjectType, ImageTypeEnum, type LocationGeoType, type LocationType, type LoginFormData, type LogoBasename, type LogoId, type MarketingMaterialRequestInputType, type MiniQuizAnswer, type MiniQuizAnsweredQuestion, type MiniQuizBaseGame, type MiniQuizGameData, type MiniQuizQuestion, type NotificationCount, type NotificationDataType, type NotificationType, type Nullable, type OptionItem, type OtherImagesBasename, type OtherImagesId, type OwnerType, POST_SHARE_RESOURCE_TYPES, PROMO_CODE_PREFIX, PUBLIC_SHARE_PATH_TYPES, type ParticipantType, type PartnerFormData, type PartnerType, type PaymentInfoType, type PlacePrediction, type PostContentData, type PostContentFormData, type PostContentGame, type PostContentImage, type PostContentList, type PostContentTextarea, type PostContentType, type PostContentVideo, type PostFileInput, type PostFormData, type PostShareResourceType, type PostType, type PosterAssetId, type PosterImageBasename, type PosterInputType, type PosterUsageType, type PromoCodeType, type PublicSharePathType, RELATION_SHARE_APPLICATION, RELATION_SHARE_INVITATION, RELATION_SHARE_RESOURCE_TYPES, RESOURCE_SHARE_TYPES, RESOURCE_SHARE_TYPES_FOR_URL, type RefundPolicy, type Region, type RegisterFormData, type RelationDate, type RelationSharePathType, type RelationShareResourceType, type RelationType, type ReportChatUser, type RequestPasswordResetFormData, type Requirement, type ResetPasswordFormData, type ResourceActivityEntry, type ResourceActivityInputType, type ResourceActivityType, type ResourceByUser, type ResourceConnectionsType, type ResourceContactDetailsType, type ResourceDetails, type ResourceImageType, type ResourceShareType, SAVED_EMAIL_KEY, SAVED_PASSWORD_KEY, SAVED_REFRESH_TOKEN_KEY, SAVED_TOKEN_KEY, SCHOOL_MAX_STUDENT_COUNT, SCHOOL_MIN_STUDENT_COUNT, SHARE_DESCRIPTION_SECTION_BREAK, SHARE_DESCRIPTION_SECTION_SEPARATOR, SHARE_RESOURCE_LABEL, SHARE_SITE_URL, SHARE_TYPE_PATH_REGEX, type SchoolCampaignType, type SchoolFormData, type SchoolRegisteredUserType, type SchoolReturnType, type SchoolType, type ShareEventDateTime, type ShareEventForInvitation, type ShareEventInfoForInvitation, type ShareResourceType, type ShareStallType, type ShareType, type ShareVendorCategory, type ShareVendorForApplication, type ShareVendorInfoForApplication, type SocialMediaType, type StallType, type StripeSubscription, type Subcategory, type SubcategoryItems, type SubscriptionPlanData, type SubscriptionPlansResponse, type SubscriptionPricingData, type SubscriptionStatusData, type TermsAgreement, USER_STORAGE_KEY, type UnregisteredVendorFormData, type UnregisteredVendorInvitationType, type UnregisteredVendorType, type UseGetEventsByRegionOptions, type UserActivity, type UserActivityEvent, type UserFormData, type UserLicenceType, type UserType, type ValidateVerificationTokenFormData, type VendorAttributes, type VendorCalendarData, type VendorFormData, type VendorInfoFormData, type VendorInfoType, type VendorProductList, type VendorType, availableCategories, availableRegionOptions, availableRegionTypes, availableTagTypes, badgeFiles, badgeIds, badges, buildApplicationShareDescription, buildFacebookShareQuote, buildInvitationShareDescription, buildShareOgDescription, buildSharePagePath, buildShareUrl, capitalizeFirstLetter, categoryColors, cluemartSocialMedia, cluiFiles, cluiIds, cluiImages, companyContactFields, computeDailyClueState, contactUsFields, darkColors, dateFormat, defaultEventFormValues, defaultEventInfoFormValues, defaultLocation, defaultPartnerFormValues, defaultUnregisteredVendorFormValues, defaultVendorFormValues, defaultVendorInfoFormValues, emailField, eventBasicInfoFields, eventEndDateFields, eventInfo, eventInfoPaymentInfo, eventStartDateFields, fonts, foodFlavourOptions, formatCategoryLabel, formatDate, formatShareSectionsForCompactDisplay, formatShareSectionsForMultilineDisplay, formatStallCapacityLabel, formatTimestamp, gameScreenIdentifierList, gameTypeToDisplayName, getCurrentAndFutureDates, globalDefaultValues, iconFiles, iconIds, icons, isFutureDatesBeforeThreshold, isIsoDateString, isPostShareResourceType, isRelationShareResourceType, joinShareDescriptionSections, licenseNiceNames, lightColors, loginFields, logoFiles, logoIds, logos, mapArrayToOptions, mapBaseResourceTypeToFormData, normalizeShareOgDescription, normalizeShareRouteId, normalizeUrl, nzStartOfDay, otherImages, otherImagesFiles, otherImagesIds, packagingOptions, partnerBasicInfoFields, paymentMethodOptions, posterFiles, posterIds, posters, priceUnits, producedIngOptions, productLabelGroups, profileFields, refundPolicyOptions, registerFields, removeTypename, requestPasswordResetFields, requirementsOptions, resetPasswordFields, seededShuffle, socialMediaFields, sortDatesChronologically, stallTypeOptions, statusOptions, tagOptions, timeFormat, toNZTime, truncateText, useAdForm, useAddParticipantToChat, useAddUserFavouriteResource, useAddUserGoingResource, useAddUserInterestResource, useAddUserPresentResource, useAdminPermanentlyDeleteResource, useAdminResendUserVerificationEmail, useAdminUpdateResourceType, useAppSettingsForm, useCancelSubscription, useContactUs, useContactUsForm, useCrawlGoogleMarkets, useCreateAd, useCreateBulkNotifications, useCreateCheckoutSession, useCreateCustomerPortal, useCreateEvent, useCreateEventInfo, useCreatePartner, useCreatePost, useCreatePoster, useCreatePrivateChat, useCreatePushToken, useCreateRelation, useCreateResourceActivity, useCreateSchool, useCreateUnregisteredVendor, useCreateUser, useCreateVendor, useCreateVendorInfo, useDeleteAd, useDeleteAllNotifications, useDeleteChat, useDeleteEvent, useDeleteNotification, useDeletePartner, useDeletePost, useDeleteRelation, useDeleteSchool, useDeleteUnregisteredVendor, useDeleteUser, useDeleteVendor, useEventForm, useEventInfoForm, useGetAd, useGetAds, useGetAdsByRegion, useGetAppSettings, useGetChat, useGetChatSubscription, useGetChatsByRegion, useGetEvent, useGetEventByPlaceId, useGetEventInfo, useGetEventRelations, useGetEvents, useGetEventsByRegion, useGetEventsNearMe, useGetGame, useGetGameLeaderboard, useGetGames, useGetNotificationCount, useGetNotificationCountSubscription, useGetPartner, useGetPartners, useGetPartnersByRegion, useGetPost, useGetPosts, useGetPostsByType, useGetRelation, useGetRelationByEventAndVendor, useGetReportedChatUsers, useGetResourceActivity, useGetResourceConnections, useGetSchool, useGetSchools, useGetSubscriptionPlans, useGetSubscriptionStatus, useGetUnregisteredVendor, useGetUnregisteredVendors, useGetUnregisteredVendorsByInviterId, useGetUser, useGetUserActivities, useGetUserChats, useGetUserEvents, useGetUserNotifications, useGetUserNotificationsSubscription, useGetUserPartners, useGetUserResources, useGetUserVendors, useGetUsers, useGetVendor, useGetVendorInfo, useGetVendorRelations, useGetVendors, useGetVendorsByRegion, useLeaveGame, useLocationSearch, useLogin, useLoginForm, useLogout, useMarkAllNotificationsRead, useMarkChatMessagesSeen, useMarkNotificationRead, usePartnerForm, usePostForm, useRefreshToken, useRegister, useRegisterForm, useRemoveParticipantFromChat, useRemoveUserFavouriteResource, useRemoveUserGoingResource, useRemoveUserInterestResource, useRemoveUserPresentResource, useReportChatUser, useRequestMarketingMaterial, useRequestPasswordReset, useRequestPasswordResetForm, useResetPassword, useResetPasswordForm, useSchoolForm, useSearchEvents, useSearchPartners, useSearchVendors, useSelectPackage, useSelectStandardPackage, useSendChatMessage, useStartGame, useToggleChatMessageLike, useUnlinkUnregisteredVendorByInviterId, useUnregisteredVendorForm, useUpdateAd, useUpdateAppSettings, useUpdateDailyClueGame, useUpdateEvent, useUpdateEventInfo, useUpdateGoogleImportedMarkets, useUpdateMiniQuizGame, useUpdatePartner, useUpdatePost, useUpdateRelation, useUpdateSchool, useUpdateSubscriptionPlan, useUpdateUnregisteredVendor, useUpdateUser, useUpdateVendor, useUpdateVendorInfo, useUserForm, useValidateVerificationToken, useValidateVerificationTokenForm, useVendorForm, useVendorInfoForm, validateVerificationTokenFields, vendorAvailability, vendorBasicInfoFields, vendorCompliance, vendorElectricity, vendorEndDateFields, vendorFoodFlavour, vendorFullAddress, vendorGazebo, vendorLocationDescription, vendorMenuFields, vendorPackaging, vendorPriceRange, vendorProducedIn, vendorStallSize, vendorStartDateFields, vendorTable };
2905
+ export { ANDROID_URL, type AdFormData, type AdResource, type AdType, type AdminUpdateResourceType, type AppSettingsFormData, type AppSettingsType, type AssociateType, type BadgeBasename, type BadgeId, type BaseGameMap, type BaseGameType, type BaseResourceType, type BaseResourceTypeFormData, type Category, type ChatMessageInput, type ChatMessageReaction, type ChatMessageReplyPreview, type ChatMessageSeen, type ChatMessageType, type ChatType, type CluiImageBasename, type CluiImageId, type ContactUsFormData, type CreateAdFormData, type CreateAppSettingsFormData, type CreateBulkNotificationInput, type CreateContactUsFormData, type CreateEventFormData, type CreateEventInfoFormData, type CreateFormData, type CreateLoginFormData, type CreatePartnerFormData, type CreatePostFormData, type CreateRegisterFormData, type CreateRequestPasswordResetFormData, type CreateResetPasswordFormData, type CreateSchoolFormData, type CreateUnregisteredVendorFormData, type CreateUserFormData, type CreateValidateVerificationTokenFormData, type CreateVendorFormData, type CreateVendorInfoFormData, DEFAULT_SHARE_OG_IMAGE, type DailyClueBaseGame, type DailyClueGameData, type DateTimeType, type DateTimeWithPriceType, type DeviceInfo, EnumActivity, EnumAdShowOn, EnumAdStatus, EnumAdStyle, EnumAdType, EnumBillingPeriod, EnumChatReportReason, EnumChatType, EnumEventDateStatus, EnumEventType, EnumFoodFlavor, EnumFoodType, EnumGameStatus, EnumGameType, EnumInviteStatus, EnumNotificationResourceType, EnumNotificationType, EnumOSPlatform, EnumPartnerType, EnumPaymentMethod, EnumPostContentType, EnumPostType, EnumRegions, EnumRelationResource, EnumResourceType, EnumSocialMedia, EnumSubscriptionStatus, EnumUserLicence, EnumUserRole, EnumVendorType, EnumVerificationType, type EventFormData, type EventInfoFormData, type EventInfoType, type EventListItemType, type EventStatusType, type EventType, type FormDateField, type FormField, type GameDate, type GameDocType, type GameHistory, type GameLeaderboard, type GamePlacement, type GamePlacementClue, type GameType, type GeocodeLocation, type GlobalGameData, type GoogleAddressComponent, type GoogleImportedMarket, IMAGE_EXTENSION, IOS_URL, type IconBasename, type IconId, type ImageObjectType, ImageTypeEnum, type LocationGeoType, type LocationType, type LoginFormData, type LogoBasename, type LogoId, type MarketingMaterialRequestInputType, type MiniQuizAnswer, type MiniQuizAnsweredQuestion, type MiniQuizBaseGame, type MiniQuizGameData, type MiniQuizQuestion, type NotificationCount, type NotificationDataType, type NotificationType, type Nullable, OG_DESCRIPTION_LINE_BREAK, type OptionItem, type OtherImagesBasename, type OtherImagesId, type OwnerType, POST_SHARE_RESOURCE_TYPES, PROMO_CODE_PREFIX, PUBLIC_SHARE_PATH_TYPES, type ParticipantType, type PartnerFormData, type PartnerType, type PaymentInfoType, type PlacePrediction, type PostContentData, type PostContentFormData, type PostContentGame, type PostContentImage, type PostContentList, type PostContentTextarea, type PostContentType, type PostContentVideo, type PostFileInput, type PostFormData, type PostShareResourceType, type PostType, type PosterAssetId, type PosterImageBasename, type PosterInputType, type PosterUsageType, type PromoCodeType, type PublicSharePathType, RELATION_SHARE_APPLICATION, RELATION_SHARE_INVITATION, RELATION_SHARE_RESOURCE_TYPES, RESOURCE_SHARE_TYPES, RESOURCE_SHARE_TYPES_FOR_URL, type RefundPolicy, type Region, type RegisterFormData, type RelationDate, type RelationSharePathType, type RelationShareResourceType, type RelationType, type ReportChatUser, type RequestPasswordResetFormData, type Requirement, type ResetPasswordFormData, type ResourceActivityEntry, type ResourceActivityInputType, type ResourceActivityType, type ResourceByUser, type ResourceConnectionsType, type ResourceContactDetailsType, type ResourceDetails, type ResourceImageType, type ResourceShareType, SAVED_EMAIL_KEY, SAVED_PASSWORD_KEY, SAVED_REFRESH_TOKEN_KEY, SAVED_TOKEN_KEY, SCHOOL_MAX_STUDENT_COUNT, SCHOOL_MIN_STUDENT_COUNT, SHARE_CALENDAR_ICON, SHARE_CATEGORIES_SECTION_HEADING, SHARE_CATEGORY_ICON, SHARE_CHECKMARK_ICON, SHARE_DESCRIPTION_SECTION_BREAK, SHARE_DESCRIPTION_SECTION_SEPARATOR, SHARE_MARKET_DATES_SECTION_HEADING, SHARE_REQUIREMENTS_SECTION_HEADING, SHARE_RESOURCE_LABEL, SHARE_SITE_URL, SHARE_TYPE_PATH_REGEX, type SchoolCampaignType, type SchoolFormData, type SchoolRegisteredUserType, type SchoolReturnType, type SchoolType, type ShareEventDateTime, type ShareEventForInvitation, type ShareEventInfoForInvitation, type ShareResourceType, type ShareStallType, type ShareType, type ShareVendorCategory, type ShareVendorForApplication, type ShareVendorInfoForApplication, type SocialMediaType, type StallType, type StripeSubscription, type Subcategory, type SubcategoryItems, type SubscriptionPlanData, type SubscriptionPlansResponse, type SubscriptionPricingData, type SubscriptionStatusData, type TermsAgreement, USER_STORAGE_KEY, type UnregisteredVendorFormData, type UnregisteredVendorInvitationType, type UnregisteredVendorType, type UseGetEventsByRegionOptions, type UserActivity, type UserActivityEvent, type UserFormData, type UserLicenceType, type UserType, type ValidateVerificationTokenFormData, type VendorAttributes, type VendorCalendarData, type VendorFormData, type VendorInfoFormData, type VendorInfoType, type VendorProductList, type VendorType, availableCategories, availableRegionOptions, availableRegionTypes, availableTagTypes, badgeFiles, badgeIds, badges, buildApplicationShareDescription, buildFacebookShareQuote, buildInvitationShareDescription, buildShareOgDescription, buildShareOgDescriptionFromSections, buildSharePagePath, buildShareUrl, capitalizeFirstLetter, categoryColors, cluemartSocialMedia, cluiFiles, cluiIds, cluiImages, companyContactFields, computeDailyClueState, contactUsFields, darkColors, dateFormat, defaultEventFormValues, defaultEventInfoFormValues, defaultLocation, defaultPartnerFormValues, defaultUnregisteredVendorFormValues, defaultVendorFormValues, defaultVendorInfoFormValues, emailField, eventBasicInfoFields, eventEndDateFields, eventInfo, eventInfoPaymentInfo, eventStartDateFields, fonts, foodFlavourOptions, formatCategoryLabel, formatDate, formatShareApplicationCategoriesSection, formatShareInvitationMarketDatesSection, formatShareInvitationRequirementsSection, formatShareMarketDate, formatShareSectionsForCompactDisplay, formatShareSectionsForMultilineDisplay, formatStallCapacityLabel, formatTimestamp, gameScreenIdentifierList, gameTypeToDisplayName, getCurrentAndFutureDates, globalDefaultValues, iconFiles, iconIds, icons, isFutureDatesBeforeThreshold, isIsoDateString, isPostShareResourceType, isRelationShareResourceType, joinShareDescriptionSections, joinShareOgDescriptionSections, licenseNiceNames, lightColors, loginFields, logoFiles, logoIds, logos, mapArrayToOptions, mapBaseResourceTypeToFormData, normalizeShareOgDescription, normalizeShareRouteId, normalizeUrl, nzStartOfDay, otherImages, otherImagesFiles, otherImagesIds, packagingOptions, partnerBasicInfoFields, paymentMethodOptions, posterFiles, posterIds, posters, priceUnits, producedIngOptions, productLabelGroups, profileFields, refundPolicyOptions, registerFields, removeTypename, requestPasswordResetFields, requirementsOptions, resetPasswordFields, seededShuffle, socialMediaFields, sortDatesChronologically, splitShareDescriptionSections, stallTypeOptions, statusOptions, tagOptions, timeFormat, toNZTime, truncateText, useAdForm, useAddParticipantToChat, useAddUserFavouriteResource, useAddUserGoingResource, useAddUserInterestResource, useAddUserPresentResource, useAdminPermanentlyDeleteResource, useAdminResendUserVerificationEmail, useAdminUpdateResourceType, useAppSettingsForm, useCancelSubscription, useContactUs, useContactUsForm, useCrawlGoogleMarkets, useCreateAd, useCreateBulkNotifications, useCreateCheckoutSession, useCreateCustomerPortal, useCreateEvent, useCreateEventInfo, useCreatePartner, useCreatePost, useCreatePoster, useCreatePrivateChat, useCreatePushToken, useCreateRelation, useCreateResourceActivity, useCreateSchool, useCreateUnregisteredVendor, useCreateUser, useCreateVendor, useCreateVendorInfo, useDeleteAd, useDeleteAllNotifications, useDeleteChat, useDeleteEvent, useDeleteNotification, useDeletePartner, useDeletePost, useDeleteRelation, useDeleteSchool, useDeleteUnregisteredVendor, useDeleteUser, useDeleteVendor, useEventForm, useEventInfoForm, useGetAd, useGetAds, useGetAdsByRegion, useGetAppSettings, useGetChat, useGetChatSubscription, useGetChatsByRegion, useGetEvent, useGetEventByPlaceId, useGetEventInfo, useGetEventRelations, useGetEvents, useGetEventsByRegion, useGetEventsNearMe, useGetGame, useGetGameLeaderboard, useGetGames, useGetNotificationCount, useGetNotificationCountSubscription, useGetPartner, useGetPartners, useGetPartnersByRegion, useGetPost, useGetPosts, useGetPostsByType, useGetRelation, useGetRelationByEventAndVendor, useGetReportedChatUsers, useGetResourceActivity, useGetResourceConnections, useGetSchool, useGetSchools, useGetSubscriptionPlans, useGetSubscriptionStatus, useGetUnregisteredVendor, useGetUnregisteredVendors, useGetUnregisteredVendorsByInviterId, useGetUser, useGetUserActivities, useGetUserChats, useGetUserEvents, useGetUserNotifications, useGetUserNotificationsSubscription, useGetUserPartners, useGetUserResources, useGetUserVendors, useGetUsers, useGetVendor, useGetVendorInfo, useGetVendorRelations, useGetVendors, useGetVendorsByRegion, useLeaveGame, useLocationSearch, useLogin, useLoginForm, useLogout, useMarkAllNotificationsRead, useMarkChatMessagesSeen, useMarkNotificationRead, usePartnerForm, usePostForm, useRefreshToken, useRegister, useRegisterForm, useRemoveParticipantFromChat, useRemoveUserFavouriteResource, useRemoveUserGoingResource, useRemoveUserInterestResource, useRemoveUserPresentResource, useReportChatUser, useRequestMarketingMaterial, useRequestPasswordReset, useRequestPasswordResetForm, useResetPassword, useResetPasswordForm, useSchoolForm, useSearchEvents, useSearchPartners, useSearchVendors, useSelectPackage, useSelectStandardPackage, useSendChatMessage, useStartGame, useToggleChatMessageLike, useUnlinkUnregisteredVendorByInviterId, useUnregisteredVendorForm, useUpdateAd, useUpdateAppSettings, useUpdateDailyClueGame, useUpdateEvent, useUpdateEventInfo, useUpdateGoogleImportedMarkets, useUpdateMiniQuizGame, useUpdatePartner, useUpdatePost, useUpdateRelation, useUpdateSchool, useUpdateSubscriptionPlan, useUpdateUnregisteredVendor, useUpdateUser, useUpdateVendor, useUpdateVendorInfo, useUserForm, useValidateVerificationToken, useValidateVerificationTokenForm, useVendorForm, useVendorInfoForm, validateVerificationTokenFields, vendorAvailability, vendorBasicInfoFields, vendorCompliance, vendorElectricity, vendorEndDateFields, vendorFoodFlavour, vendorFullAddress, vendorGazebo, vendorLocationDescription, vendorMenuFields, vendorPackaging, vendorPriceRange, vendorProducedIn, vendorStallSize, vendorStartDateFields, vendorTable };
package/dist/index.mjs CHANGED
@@ -8470,6 +8470,54 @@ var otherImages = Object.fromEntries(
8470
8470
  Object.entries(otherImagesFiles).map(([key, file]) => [key, `${PKG}/images/${file}`])
8471
8471
  );
8472
8472
 
8473
+ // src/sharing/relationShareTypes.ts
8474
+ var RELATION_SHARE_INVITATION = "invitation";
8475
+ var RELATION_SHARE_APPLICATION = "application";
8476
+ var RELATION_SHARE_RESOURCE_TYPES = [
8477
+ RELATION_SHARE_INVITATION,
8478
+ RELATION_SHARE_APPLICATION
8479
+ ];
8480
+ function isRelationShareResourceType(resourceType) {
8481
+ return RELATION_SHARE_RESOURCE_TYPES.includes(
8482
+ resourceType
8483
+ );
8484
+ }
8485
+
8486
+ // src/sharing/constants.ts
8487
+ var SHARE_SITE_URL = "https://cluemart.co.nz";
8488
+ var SHARE_CALENDAR_ICON = "\u{1F4C5}";
8489
+ var SHARE_MARKET_DATES_SECTION_HEADING = `${SHARE_CALENDAR_ICON} Market dates:`;
8490
+ var SHARE_CHECKMARK_ICON = "\u2705";
8491
+ var SHARE_REQUIREMENTS_SECTION_HEADING = `${SHARE_CHECKMARK_ICON} Requirements:`;
8492
+ var SHARE_CATEGORY_ICON = "\u{1F3F7}\uFE0F";
8493
+ var SHARE_CATEGORIES_SECTION_HEADING = `${SHARE_CATEGORY_ICON} Categories:`;
8494
+ var DEFAULT_SHARE_OG_IMAGE = `${SHARE_SITE_URL}/assets/logo.webp`;
8495
+ var RESOURCE_SHARE_TYPES = [
8496
+ "market",
8497
+ "stallholder",
8498
+ "partner"
8499
+ ];
8500
+ var POST_SHARE_RESOURCE_TYPES = [
8501
+ "daily_meets",
8502
+ "daily_tips",
8503
+ "daily_games"
8504
+ ];
8505
+ var SHARE_RESOURCE_LABEL = {
8506
+ [RELATION_SHARE_APPLICATION]: "Application",
8507
+ [RELATION_SHARE_INVITATION]: "Invitation",
8508
+ daily_games: "Daily Game",
8509
+ daily_meets: "Daily Meet",
8510
+ daily_tips: "Daily Tip",
8511
+ market: "Market",
8512
+ partner: "Partner",
8513
+ stallholder: "Stallholder"
8514
+ };
8515
+ function isPostShareResourceType(resourceType) {
8516
+ return POST_SHARE_RESOURCE_TYPES.includes(
8517
+ resourceType
8518
+ );
8519
+ }
8520
+
8473
8521
  // src/sharing/formatCategoryLabel.ts
8474
8522
  function formatCategoryLabel(category) {
8475
8523
  const subcategoryNames = category.subcategories.map((subcategory) => subcategory.name).filter(Boolean);
@@ -8482,25 +8530,43 @@ function formatCategoryLabel(category) {
8482
8530
  // src/sharing/joinShareDescriptionSections.ts
8483
8531
  var SHARE_DESCRIPTION_SECTION_SEPARATOR = " \xB7 ";
8484
8532
  var SHARE_DESCRIPTION_SECTION_BREAK = "\n\n";
8533
+ var OG_DESCRIPTION_LINE_BREAK = "&#10;";
8534
+ function joinShareOgDescriptionSections(sections) {
8535
+ return sections.map((section) => typeof section === "string" ? section.trim() : "").filter((section) => section.length > 0).join(OG_DESCRIPTION_LINE_BREAK);
8536
+ }
8485
8537
  function joinShareDescriptionSections(sections) {
8486
8538
  return sections.filter((section) => Boolean(section)).join(SHARE_DESCRIPTION_SECTION_BREAK);
8487
8539
  }
8488
8540
 
8489
8541
  // src/sharing/buildRelationShareDescription.ts
8490
- function formatShareDate(isoDate) {
8491
- try {
8492
- return new Intl.DateTimeFormat("en-NZ", {
8493
- day: "numeric",
8494
- month: "short",
8495
- year: "numeric"
8496
- }).format(new Date(isoDate));
8497
- } catch {
8498
- return isoDate;
8499
- }
8542
+ function formatShareMarketDate(dateStr) {
8543
+ return formatDate(dateStr, "date");
8500
8544
  }
8501
8545
  function formatStallCapacityLabel(stallCapacity) {
8502
8546
  return stallCapacity > 0 ? ` (${stallCapacity} spaces available)` : " - Full";
8503
8547
  }
8548
+ function formatShareStallLine(stall) {
8549
+ return ` - ${stall.label} \u2014 $${stall.price}${formatStallCapacityLabel(stall.stallCapacity)}`;
8550
+ }
8551
+ function formatShareInvitationMarketDatesSection(dateTime) {
8552
+ const dateBlocks = dateTime.map((date3) => {
8553
+ const formattedDate = formatShareMarketDate(date3.startDate);
8554
+ const stallLines = date3.stallTypes.map(formatShareStallLine);
8555
+ return [`- ${formattedDate}`, ...stallLines].join("\n");
8556
+ });
8557
+ return `${SHARE_MARKET_DATES_SECTION_HEADING}
8558
+ ${dateBlocks.join("\n")}`;
8559
+ }
8560
+ function formatShareInvitationRequirementsSection(requirementLabels) {
8561
+ const bullets = requirementLabels.map((label) => `- ${label}`);
8562
+ return `${SHARE_REQUIREMENTS_SECTION_HEADING}
8563
+ ${bullets.join("\n")}`;
8564
+ }
8565
+ function formatShareApplicationCategoriesSection(categoryLabels) {
8566
+ const bullets = categoryLabels.map((label) => `- ${label}`);
8567
+ return `${SHARE_CATEGORIES_SECTION_HEADING}
8568
+ ${bullets.join("\n")}`;
8569
+ }
8504
8570
  function buildInvitationShareDescription(event, eventInfo2) {
8505
8571
  const stallTypes2 = eventInfo2?.dateTime?.flatMap((date3) => date3.stallTypes) ?? [];
8506
8572
  if (!eventInfo2 || stallTypes2.length === 0) {
@@ -8509,15 +8575,9 @@ function buildInvitationShareDescription(event, eventInfo2) {
8509
8575
  const requirementLabels = (eventInfo2.requirements ?? []).filter((item) => item.value).map((item) => item.label);
8510
8576
  const sections = [
8511
8577
  event.location.fullAddress,
8512
- ...event.dateTime.map((date3) => {
8513
- const start = formatShareDate(date3.startDate);
8514
- return `Market date: ${start}`;
8515
- }),
8578
+ formatShareInvitationMarketDatesSection(eventInfo2.dateTime),
8516
8579
  `Application deadline: vendors must apply at least ${eventInfo2.applicationDeadlineHours} hours before each market date.`,
8517
- ...stallTypes2.map(
8518
- (stall) => `Stall: ${stall.label} \u2014 $${stall.price}${formatStallCapacityLabel(stall.stallCapacity)}`
8519
- ),
8520
- requirementLabels.length > 0 && `Requirements: ${requirementLabels.join(", ")}`
8580
+ requirementLabels.length > 0 && formatShareInvitationRequirementsSection(requirementLabels)
8521
8581
  ];
8522
8582
  return joinShareDescriptionSections(sections);
8523
8583
  }
@@ -8535,57 +8595,15 @@ function buildApplicationShareDescription(vendor, vendorInfo) {
8535
8595
  ].filter(Boolean);
8536
8596
  const profileDescription = vendor.description?.trim();
8537
8597
  const sections = [
8538
- categoryLabels.length > 0 && `Categories: ${categoryLabels.join(", ")}`,
8598
+ categoryLabels.length > 0 && formatShareApplicationCategoriesSection(categoryLabels),
8539
8599
  `Stall size: ${vendorInfo.stallInfo.size.width}m \xD7 ${vendorInfo.stallInfo.size.depth}m`,
8540
- `Compliance: ${complianceLabels.length > 0 ? complianceLabels.join(", ") : "Not specified"}`,
8600
+ complianceLabels.length > 0 && `Compliance: ${complianceLabels.join(", ")}`,
8541
8601
  `Price range: $${vendorInfo.product.priceRange.min} \u2013 $${vendorInfo.product.priceRange.max}`,
8542
8602
  profileDescription
8543
8603
  ];
8544
8604
  return joinShareDescriptionSections(sections);
8545
8605
  }
8546
8606
 
8547
- // src/sharing/relationShareTypes.ts
8548
- var RELATION_SHARE_INVITATION = "invitation";
8549
- var RELATION_SHARE_APPLICATION = "application";
8550
- var RELATION_SHARE_RESOURCE_TYPES = [
8551
- RELATION_SHARE_INVITATION,
8552
- RELATION_SHARE_APPLICATION
8553
- ];
8554
- function isRelationShareResourceType(resourceType) {
8555
- return RELATION_SHARE_RESOURCE_TYPES.includes(
8556
- resourceType
8557
- );
8558
- }
8559
-
8560
- // src/sharing/constants.ts
8561
- var SHARE_SITE_URL = "https://cluemart.co.nz";
8562
- var DEFAULT_SHARE_OG_IMAGE = `${SHARE_SITE_URL}/assets/logo.webp`;
8563
- var RESOURCE_SHARE_TYPES = [
8564
- "market",
8565
- "stallholder",
8566
- "partner"
8567
- ];
8568
- var POST_SHARE_RESOURCE_TYPES = [
8569
- "daily_meets",
8570
- "daily_tips",
8571
- "daily_games"
8572
- ];
8573
- var SHARE_RESOURCE_LABEL = {
8574
- [RELATION_SHARE_APPLICATION]: "Application",
8575
- [RELATION_SHARE_INVITATION]: "Invitation",
8576
- daily_games: "Daily Game",
8577
- daily_meets: "Daily Meet",
8578
- daily_tips: "Daily Tip",
8579
- market: "Market",
8580
- partner: "Partner",
8581
- stallholder: "Stallholder"
8582
- };
8583
- function isPostShareResourceType(resourceType) {
8584
- return POST_SHARE_RESOURCE_TYPES.includes(
8585
- resourceType
8586
- );
8587
- }
8588
-
8589
8607
  // src/sharing/buildShareUrl.ts
8590
8608
  var PUBLIC_SHARE_PATH_TYPES = [
8591
8609
  ...RESOURCE_SHARE_TYPES,
@@ -8607,7 +8625,14 @@ function normalizeShareSection(value) {
8607
8625
  if (value == null) {
8608
8626
  return "";
8609
8627
  }
8610
- return value.trim().split("\n").map((line) => line.trim().replace(/[ \t]+/g, " ")).join("\n").replace(/\n{3,}/g, "\n\n");
8628
+ return value.trim().split("\n").map((line) => {
8629
+ const match = line.match(/^([ \t]*)(.*)$/);
8630
+ if (!match) {
8631
+ return line;
8632
+ }
8633
+ const [, leading, rest] = match;
8634
+ return leading + rest.trim().replace(/[ \t]{2,}/g, " ");
8635
+ }).join("\n").replace(/\n{3,}/g, "\n\n");
8611
8636
  }
8612
8637
  function stripLegacyBulletPrefix(section) {
8613
8638
  return section.startsWith(LEGACY_BULLET_PREFIX) ? section.slice(LEGACY_BULLET_PREFIX.length) : section;
@@ -8642,14 +8667,7 @@ function formatShareSectionsForCompactDisplay(value) {
8642
8667
  );
8643
8668
  }
8644
8669
  function normalizeShareOgDescription(value) {
8645
- const trimmed = value.trim();
8646
- if (!trimmed) {
8647
- return "";
8648
- }
8649
- if (/\n\n/.test(trimmed) || trimmed.includes(SHARE_DESCRIPTION_SECTION_SEPARATOR)) {
8650
- return formatShareSectionsForCompactDisplay(trimmed);
8651
- }
8652
- return trimmed.replace(/\s+/g, " ").trim();
8670
+ return joinShareOgDescriptionSections(splitShareDescriptionSections(value));
8653
8671
  }
8654
8672
  function buildFacebookShareQuote(title, description) {
8655
8673
  const titleSection = normalizeShareSection(title);
@@ -8660,8 +8678,11 @@ function buildFacebookShareQuote(title, description) {
8660
8678
  const quote = sections.join(SHARE_DESCRIPTION_SECTION_BREAK).trim();
8661
8679
  return quote.length > 0 ? quote : void 0;
8662
8680
  }
8681
+ function buildShareOgDescriptionFromSections(sections) {
8682
+ return joinShareOgDescriptionSections(sections);
8683
+ }
8663
8684
  function buildShareOgDescription(_title, description) {
8664
- return normalizeShareOgDescription(description);
8685
+ return joinShareOgDescriptionSections(splitShareDescriptionSections(description));
8665
8686
  }
8666
8687
 
8667
8688
  // src/sharing/normalizeShareRouteId.ts
@@ -8801,6 +8822,7 @@ export {
8801
8822
  IMAGE_EXTENSION,
8802
8823
  IOS_URL,
8803
8824
  ImageTypeEnum,
8825
+ OG_DESCRIPTION_LINE_BREAK,
8804
8826
  POST_SHARE_RESOURCE_TYPES,
8805
8827
  PROMO_CODE_PREFIX,
8806
8828
  PUBLIC_SHARE_PATH_TYPES,
@@ -8815,8 +8837,14 @@ export {
8815
8837
  SAVED_TOKEN_KEY,
8816
8838
  SCHOOL_MAX_STUDENT_COUNT,
8817
8839
  SCHOOL_MIN_STUDENT_COUNT,
8840
+ SHARE_CALENDAR_ICON,
8841
+ SHARE_CATEGORIES_SECTION_HEADING,
8842
+ SHARE_CATEGORY_ICON,
8843
+ SHARE_CHECKMARK_ICON,
8818
8844
  SHARE_DESCRIPTION_SECTION_BREAK,
8819
8845
  SHARE_DESCRIPTION_SECTION_SEPARATOR,
8846
+ SHARE_MARKET_DATES_SECTION_HEADING,
8847
+ SHARE_REQUIREMENTS_SECTION_HEADING,
8820
8848
  SHARE_RESOURCE_LABEL,
8821
8849
  SHARE_SITE_URL,
8822
8850
  SHARE_TYPE_PATH_REGEX,
@@ -8832,6 +8860,7 @@ export {
8832
8860
  buildFacebookShareQuote,
8833
8861
  buildInvitationShareDescription,
8834
8862
  buildShareOgDescription,
8863
+ buildShareOgDescriptionFromSections,
8835
8864
  buildSharePagePath,
8836
8865
  buildShareUrl,
8837
8866
  capitalizeFirstLetter,
@@ -8862,6 +8891,10 @@ export {
8862
8891
  foodFlavourOptions,
8863
8892
  formatCategoryLabel,
8864
8893
  formatDate,
8894
+ formatShareApplicationCategoriesSection,
8895
+ formatShareInvitationMarketDatesSection,
8896
+ formatShareInvitationRequirementsSection,
8897
+ formatShareMarketDate,
8865
8898
  formatShareSectionsForCompactDisplay,
8866
8899
  formatShareSectionsForMultilineDisplay,
8867
8900
  formatStallCapacityLabel,
@@ -8878,6 +8911,7 @@ export {
8878
8911
  isPostShareResourceType,
8879
8912
  isRelationShareResourceType,
8880
8913
  joinShareDescriptionSections,
8914
+ joinShareOgDescriptionSections,
8881
8915
  licenseNiceNames,
8882
8916
  lightColors,
8883
8917
  loginFields,
@@ -8912,6 +8946,7 @@ export {
8912
8946
  seededShuffle,
8913
8947
  socialMediaFields,
8914
8948
  sortDatesChronologically,
8949
+ splitShareDescriptionSections,
8915
8950
  stallTypeOptions,
8916
8951
  statusOptions,
8917
8952
  tagOptions,