@appgram/react 0.1.1 → 0.1.4

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 (39) hide show
  1. package/dist/{useVote-CLhkwtLT.d.mts → StatusBoard-DZWI3zGJ.d.mts} +126 -1
  2. package/dist/{useVote-CLhkwtLT.d.ts → StatusBoard-DZWI3zGJ.d.ts} +126 -1
  3. package/dist/{chunk-N6PJDQCU.mjs → chunk-NABMGLTY.mjs} +210 -6
  4. package/dist/chunk-NABMGLTY.mjs.map +1 -0
  5. package/dist/chunk-NSV6Q6QQ.js +202 -0
  6. package/dist/chunk-NSV6Q6QQ.js.map +1 -0
  7. package/dist/chunk-ONZ7RQBM.mjs +199 -0
  8. package/dist/chunk-ONZ7RQBM.mjs.map +1 -0
  9. package/dist/{chunk-75P634IK.js → chunk-UPTP7QX5.js} +213 -5
  10. package/dist/chunk-UPTP7QX5.js.map +1 -0
  11. package/dist/{chunk-AIDLOCVJ.mjs → chunk-UWIJR4ZY.mjs} +760 -15
  12. package/dist/chunk-UWIJR4ZY.mjs.map +1 -0
  13. package/dist/{chunk-3UBJGXCO.js → chunk-WZIN7KEM.js} +820 -74
  14. package/dist/chunk-WZIN7KEM.js.map +1 -0
  15. package/dist/components/index.d.mts +68 -106
  16. package/dist/components/index.d.ts +68 -106
  17. package/dist/components/index.js +29 -21
  18. package/dist/components/index.mjs +2 -2
  19. package/dist/hooks/index.d.mts +3 -572
  20. package/dist/hooks/index.d.ts +3 -572
  21. package/dist/hooks/index.js +33 -13
  22. package/dist/hooks/index.mjs +2 -2
  23. package/dist/index-C_IqzaBU.d.mts +917 -0
  24. package/dist/index-h4Nbq4LC.d.ts +917 -0
  25. package/dist/index.d.mts +32 -5
  26. package/dist/index.d.ts +32 -5
  27. package/dist/index.js +124 -76
  28. package/dist/index.js.map +1 -1
  29. package/dist/index.mjs +61 -41
  30. package/dist/index.mjs.map +1 -1
  31. package/package.json +1 -1
  32. package/dist/chunk-3UBJGXCO.js.map +0 -1
  33. package/dist/chunk-75P634IK.js.map +0 -1
  34. package/dist/chunk-AIDLOCVJ.mjs.map +0 -1
  35. package/dist/chunk-KPIKYXAN.mjs +0 -47
  36. package/dist/chunk-KPIKYXAN.mjs.map +0 -1
  37. package/dist/chunk-N6PJDQCU.mjs.map +0 -1
  38. package/dist/chunk-ZJZ3A2S3.js +0 -49
  39. package/dist/chunk-ZJZ3A2S3.js.map +0 -1
package/dist/index.d.mts CHANGED
@@ -1,8 +1,9 @@
1
1
  import React from 'react';
2
- import { W as WishFilters, a as WishesResponse, b as Wish, C as CommentsResponse, c as Comment, R as RoadmapData, d as Release, e as ReleaseFeature, H as HelpCollection, f as HelpFlow, g as HelpArticle, S as SupportRequestInput, h as SupportRequest } from './useVote-CLhkwtLT.mjs';
3
- export { A as ArticleType, i as Category, j as CommentAuthor, k as CommentCreateInput, F as FlowDisplayType, l as HelpArticlesResponse, m as HelpCenterData, n as ReleasesResponse, o as Roadmap, p as RoadmapColumnType, q as RoadmapItem, r as RoadmapVisibility, s as SupportAttachment, t as SupportMessage, u as SupportRequestCategory, v as SupportRequestPriority, w as SupportRequestStatus, x as SupportRequestsResponse, U as UseVoteOptions, y as UseVoteResult, z as WishAuthor, B as WishPriority, D as WishStatus, E as useVote } from './useVote-CLhkwtLT.mjs';
4
- export { UseCommentsOptions, UseCommentsResult, UseHelpArticleOptions, UseHelpArticleResult, UseHelpCenterOptions, UseHelpCenterResult, UseHelpFlowOptions, UseHelpFlowResult, UseReleaseOptions, UseReleaseResult, UseReleasesOptions, UseReleasesResult, UseRoadmapOptions, UseRoadmapResult, UseSupportOptions, UseSupportResult, UseWishOptions, UseWishResult, UseWishesOptions, UseWishesResult, useComments, useHelpArticle, useHelpCenter, useHelpFlow, useRelease, useReleases, useRoadmap, useSupport, useWish, useWishes } from './hooks/index.mjs';
5
- export { ComponentStatus, HelpArticleDetail, HelpArticleDetailProps, HelpArticles, HelpArticlesProps, HelpCenter, HelpCenterProps, HelpCollections, HelpCollectionsProps, IncidentImpact, IncidentStatus, IncidentUpdate, OverallStatus, QuickAction, ReleaseCard, ReleaseCardProps, ReleaseDetail, ReleaseDetailProps, ReleaseList, ReleaseListProps, Releases, ReleasesProps, RoadmapBoard, RoadmapBoardProps, RoadmapColumn, RoadmapColumnProps, StatusBoard, StatusBoardProps, StatusComponent, StatusData, StatusIncident, StatusIncidentDetail, StatusIncidentDetailProps, SubmitWishForm, SubmitWishFormProps, SupportForm, SupportFormProps, VoteButton, VoteButtonProps, WhatsNewPopup, WhatsNewPopupProps, WishCard, WishCardProps, WishDetail, WishDetailProps, WishList, WishListProps } from './components/index.mjs';
2
+ import { W as WishFilters, a as WishesResponse, b as Wish, C as CommentsResponse, c as Comment, R as RoadmapData, d as Release, e as ReleaseFeature, H as HelpCollection, f as HelpFlow, g as HelpArticle, S as SupportRequestInput, h as SupportRequest } from './StatusBoard-DZWI3zGJ.mjs';
3
+ export { A as ArticleType, i as Category, j as CommentAuthor, k as CommentCreateInput, l as ComponentStatus, F as FlowDisplayType, m as HelpArticlesResponse, n as HelpCenterData, I as IncidentImpact, o as IncidentStatus, p as IncidentUpdate, O as OverallStatus, q as ReleasesResponse, r as Roadmap, s as RoadmapColumnType, t as RoadmapItem, u as RoadmapVisibility, v as StatusBoard, w as StatusBoardProps, x as StatusComponent, y as StatusData, z as StatusIncident, B as SupportAttachment, D as SupportMessage, E as SupportRequestCategory, G as SupportRequestPriority, J as SupportRequestStatus, K as SupportRequestsResponse, U as UseVoteOptions, L as UseVoteResult, M as WishAuthor, N as WishPriority, P as WishStatus, Q as useVote } from './StatusBoard-DZWI3zGJ.mjs';
4
+ import { S as StatusPageOverview, a as Survey, b as SurveyNode, c as SurveySubmitInput, d as SurveyResponse, C as ContactForm, e as ContactFormSubmitInput, f as ContactFormSubmission } from './index-C_IqzaBU.mjs';
5
+ export { g as ContactFormField, h as ContactFormFieldType, i as ContactFormFieldValidation, j as StatusPage, k as StatusPageService, l as StatusState, m as StatusType, n as StatusUpdateApi, o as SurveyAnswer, p as SurveyNodeBranch, q as SurveyNodeOption, r as SurveyQuestionType, U as UseCommentsOptions, s as UseCommentsResult, t as UseContactFormOptions, u as UseContactFormResult, v as UseContactFormSubmitOptions, w as UseContactFormSubmitResult, x as UseHelpArticleOptions, y as UseHelpArticleResult, z as UseHelpCenterOptions, A as UseHelpCenterResult, B as UseHelpFlowOptions, D as UseHelpFlowResult, E as UseReleaseOptions, F as UseReleaseResult, G as UseReleasesOptions, H as UseReleasesResult, I as UseRoadmapOptions, J as UseRoadmapResult, K as UseStatusOptions, L as UseStatusResult, M as UseSupportOptions, N as UseSupportResult, O as UseSurveyOptions, P as UseSurveyResult, Q as UseSurveySubmitOptions, R as UseSurveySubmitResult, T as UseWishOptions, V as UseWishResult, W as UseWishesOptions, X as UseWishesResult, Y as useComments, Z as useContactForm, _ as useContactFormSubmit, $ as useHelpArticle, a0 as useHelpCenter, a1 as useHelpFlow, a2 as useRelease, a3 as useReleases, a4 as useRoadmap, a5 as useStatus, a6 as useSupport, a7 as useSurvey, a8 as useSurveySubmit, a9 as useWish, aa as useWishes } from './index-C_IqzaBU.mjs';
6
+ export { ContactFormRenderer, ContactFormRendererProps, HelpArticleDetail, HelpArticleDetailProps, HelpArticles, HelpArticlesProps, HelpCenter, HelpCenterProps, HelpCollections, HelpCollectionsProps, QuickAction, ReleaseCard, ReleaseCardProps, ReleaseDetail, ReleaseDetailProps, ReleaseList, ReleaseListProps, Releases, ReleasesProps, RoadmapBoard, RoadmapBoardProps, RoadmapColumn, RoadmapColumnProps, StatusIncidentDetail, StatusIncidentDetailProps, SubmitWishForm, SubmitWishFormProps, SupportForm, SupportFormProps, SurveyRenderer, SurveyRendererProps, VoteButton, VoteButtonProps, WhatsNewPopup, WhatsNewPopupProps, WishCard, WishCardProps, WishDetail, WishDetailProps, WishList, WishListProps } from './components/index.mjs';
6
7
  import { ClassValue } from 'clsx';
7
8
 
8
9
  /**
@@ -265,6 +266,32 @@ declare class AppgramClient {
265
266
  content: string;
266
267
  created_at: string;
267
268
  }>>;
269
+ /**
270
+ * Get public status page overview (services, active updates, overall status)
271
+ */
272
+ getPublicStatusOverview(slug?: string): Promise<ApiResponse<StatusPageOverview>>;
273
+ /**
274
+ * Get a public survey by slug
275
+ */
276
+ getPublicSurvey(slug: string): Promise<ApiResponse<Survey & {
277
+ nodes: SurveyNode[];
278
+ }>>;
279
+ /**
280
+ * Submit a survey response
281
+ */
282
+ submitSurveyResponse(surveyId: string, data: SurveySubmitInput): Promise<ApiResponse<SurveyResponse>>;
283
+ /**
284
+ * Get survey customization settings
285
+ */
286
+ getPublicSurveyCustomization(surveyId: string): Promise<ApiResponse<Record<string, unknown>>>;
287
+ /**
288
+ * Get a public contact form by ID
289
+ */
290
+ getPublicForm(formId: string): Promise<ApiResponse<ContactForm>>;
291
+ /**
292
+ * Submit a contact form
293
+ */
294
+ submitContactForm(projectId: string, formId: string, data: ContactFormSubmitInput): Promise<ApiResponse<ContactFormSubmission>>;
268
295
  /**
269
296
  * Get all public page data in one request
270
297
  */
@@ -396,4 +423,4 @@ declare function getFingerprint(): string;
396
423
  */
397
424
  declare function resetFingerprint(): void;
398
425
 
399
- export { type ApiResponse, AppgramClient, type AppgramClientConfig, type AppgramConfig, type AppgramContextValue, AppgramProvider, type AppgramProviderProps, type AppgramTheme, Comment, CommentsResponse, type CustomColors, type CustomTypography, HelpArticle, HelpCollection, HelpFlow, type LayoutConfig, type PaginatedResponse, Release, ReleaseFeature, RoadmapData, SupportRequest, SupportRequestInput, type ThemeMode, type Vote, type VoteCheckResponse, type VoteCreateInput, type VoteState, Wish, WishFilters, WishesResponse, cn, getFingerprint, resetFingerprint, useAppgramContext };
426
+ export { type ApiResponse, AppgramClient, type AppgramClientConfig, type AppgramConfig, type AppgramContextValue, AppgramProvider, type AppgramProviderProps, type AppgramTheme, Comment, CommentsResponse, ContactForm, ContactFormSubmission, ContactFormSubmitInput, type CustomColors, type CustomTypography, HelpArticle, HelpCollection, HelpFlow, type LayoutConfig, type PaginatedResponse, Release, ReleaseFeature, RoadmapData, StatusPageOverview, SupportRequest, SupportRequestInput, Survey, SurveyNode, SurveyResponse, SurveySubmitInput, type ThemeMode, type Vote, type VoteCheckResponse, type VoteCreateInput, type VoteState, Wish, WishFilters, WishesResponse, cn, getFingerprint, resetFingerprint, useAppgramContext };
package/dist/index.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  import React from 'react';
2
- import { W as WishFilters, a as WishesResponse, b as Wish, C as CommentsResponse, c as Comment, R as RoadmapData, d as Release, e as ReleaseFeature, H as HelpCollection, f as HelpFlow, g as HelpArticle, S as SupportRequestInput, h as SupportRequest } from './useVote-CLhkwtLT.js';
3
- export { A as ArticleType, i as Category, j as CommentAuthor, k as CommentCreateInput, F as FlowDisplayType, l as HelpArticlesResponse, m as HelpCenterData, n as ReleasesResponse, o as Roadmap, p as RoadmapColumnType, q as RoadmapItem, r as RoadmapVisibility, s as SupportAttachment, t as SupportMessage, u as SupportRequestCategory, v as SupportRequestPriority, w as SupportRequestStatus, x as SupportRequestsResponse, U as UseVoteOptions, y as UseVoteResult, z as WishAuthor, B as WishPriority, D as WishStatus, E as useVote } from './useVote-CLhkwtLT.js';
4
- export { UseCommentsOptions, UseCommentsResult, UseHelpArticleOptions, UseHelpArticleResult, UseHelpCenterOptions, UseHelpCenterResult, UseHelpFlowOptions, UseHelpFlowResult, UseReleaseOptions, UseReleaseResult, UseReleasesOptions, UseReleasesResult, UseRoadmapOptions, UseRoadmapResult, UseSupportOptions, UseSupportResult, UseWishOptions, UseWishResult, UseWishesOptions, UseWishesResult, useComments, useHelpArticle, useHelpCenter, useHelpFlow, useRelease, useReleases, useRoadmap, useSupport, useWish, useWishes } from './hooks/index.js';
5
- export { ComponentStatus, HelpArticleDetail, HelpArticleDetailProps, HelpArticles, HelpArticlesProps, HelpCenter, HelpCenterProps, HelpCollections, HelpCollectionsProps, IncidentImpact, IncidentStatus, IncidentUpdate, OverallStatus, QuickAction, ReleaseCard, ReleaseCardProps, ReleaseDetail, ReleaseDetailProps, ReleaseList, ReleaseListProps, Releases, ReleasesProps, RoadmapBoard, RoadmapBoardProps, RoadmapColumn, RoadmapColumnProps, StatusBoard, StatusBoardProps, StatusComponent, StatusData, StatusIncident, StatusIncidentDetail, StatusIncidentDetailProps, SubmitWishForm, SubmitWishFormProps, SupportForm, SupportFormProps, VoteButton, VoteButtonProps, WhatsNewPopup, WhatsNewPopupProps, WishCard, WishCardProps, WishDetail, WishDetailProps, WishList, WishListProps } from './components/index.js';
2
+ import { W as WishFilters, a as WishesResponse, b as Wish, C as CommentsResponse, c as Comment, R as RoadmapData, d as Release, e as ReleaseFeature, H as HelpCollection, f as HelpFlow, g as HelpArticle, S as SupportRequestInput, h as SupportRequest } from './StatusBoard-DZWI3zGJ.js';
3
+ export { A as ArticleType, i as Category, j as CommentAuthor, k as CommentCreateInput, l as ComponentStatus, F as FlowDisplayType, m as HelpArticlesResponse, n as HelpCenterData, I as IncidentImpact, o as IncidentStatus, p as IncidentUpdate, O as OverallStatus, q as ReleasesResponse, r as Roadmap, s as RoadmapColumnType, t as RoadmapItem, u as RoadmapVisibility, v as StatusBoard, w as StatusBoardProps, x as StatusComponent, y as StatusData, z as StatusIncident, B as SupportAttachment, D as SupportMessage, E as SupportRequestCategory, G as SupportRequestPriority, J as SupportRequestStatus, K as SupportRequestsResponse, U as UseVoteOptions, L as UseVoteResult, M as WishAuthor, N as WishPriority, P as WishStatus, Q as useVote } from './StatusBoard-DZWI3zGJ.js';
4
+ import { S as StatusPageOverview, a as Survey, b as SurveyNode, c as SurveySubmitInput, d as SurveyResponse, C as ContactForm, e as ContactFormSubmitInput, f as ContactFormSubmission } from './index-h4Nbq4LC.js';
5
+ export { g as ContactFormField, h as ContactFormFieldType, i as ContactFormFieldValidation, j as StatusPage, k as StatusPageService, l as StatusState, m as StatusType, n as StatusUpdateApi, o as SurveyAnswer, p as SurveyNodeBranch, q as SurveyNodeOption, r as SurveyQuestionType, U as UseCommentsOptions, s as UseCommentsResult, t as UseContactFormOptions, u as UseContactFormResult, v as UseContactFormSubmitOptions, w as UseContactFormSubmitResult, x as UseHelpArticleOptions, y as UseHelpArticleResult, z as UseHelpCenterOptions, A as UseHelpCenterResult, B as UseHelpFlowOptions, D as UseHelpFlowResult, E as UseReleaseOptions, F as UseReleaseResult, G as UseReleasesOptions, H as UseReleasesResult, I as UseRoadmapOptions, J as UseRoadmapResult, K as UseStatusOptions, L as UseStatusResult, M as UseSupportOptions, N as UseSupportResult, O as UseSurveyOptions, P as UseSurveyResult, Q as UseSurveySubmitOptions, R as UseSurveySubmitResult, T as UseWishOptions, V as UseWishResult, W as UseWishesOptions, X as UseWishesResult, Y as useComments, Z as useContactForm, _ as useContactFormSubmit, $ as useHelpArticle, a0 as useHelpCenter, a1 as useHelpFlow, a2 as useRelease, a3 as useReleases, a4 as useRoadmap, a5 as useStatus, a6 as useSupport, a7 as useSurvey, a8 as useSurveySubmit, a9 as useWish, aa as useWishes } from './index-h4Nbq4LC.js';
6
+ export { ContactFormRenderer, ContactFormRendererProps, HelpArticleDetail, HelpArticleDetailProps, HelpArticles, HelpArticlesProps, HelpCenter, HelpCenterProps, HelpCollections, HelpCollectionsProps, QuickAction, ReleaseCard, ReleaseCardProps, ReleaseDetail, ReleaseDetailProps, ReleaseList, ReleaseListProps, Releases, ReleasesProps, RoadmapBoard, RoadmapBoardProps, RoadmapColumn, RoadmapColumnProps, StatusIncidentDetail, StatusIncidentDetailProps, SubmitWishForm, SubmitWishFormProps, SupportForm, SupportFormProps, SurveyRenderer, SurveyRendererProps, VoteButton, VoteButtonProps, WhatsNewPopup, WhatsNewPopupProps, WishCard, WishCardProps, WishDetail, WishDetailProps, WishList, WishListProps } from './components/index.js';
6
7
  import { ClassValue } from 'clsx';
7
8
 
8
9
  /**
@@ -265,6 +266,32 @@ declare class AppgramClient {
265
266
  content: string;
266
267
  created_at: string;
267
268
  }>>;
269
+ /**
270
+ * Get public status page overview (services, active updates, overall status)
271
+ */
272
+ getPublicStatusOverview(slug?: string): Promise<ApiResponse<StatusPageOverview>>;
273
+ /**
274
+ * Get a public survey by slug
275
+ */
276
+ getPublicSurvey(slug: string): Promise<ApiResponse<Survey & {
277
+ nodes: SurveyNode[];
278
+ }>>;
279
+ /**
280
+ * Submit a survey response
281
+ */
282
+ submitSurveyResponse(surveyId: string, data: SurveySubmitInput): Promise<ApiResponse<SurveyResponse>>;
283
+ /**
284
+ * Get survey customization settings
285
+ */
286
+ getPublicSurveyCustomization(surveyId: string): Promise<ApiResponse<Record<string, unknown>>>;
287
+ /**
288
+ * Get a public contact form by ID
289
+ */
290
+ getPublicForm(formId: string): Promise<ApiResponse<ContactForm>>;
291
+ /**
292
+ * Submit a contact form
293
+ */
294
+ submitContactForm(projectId: string, formId: string, data: ContactFormSubmitInput): Promise<ApiResponse<ContactFormSubmission>>;
268
295
  /**
269
296
  * Get all public page data in one request
270
297
  */
@@ -396,4 +423,4 @@ declare function getFingerprint(): string;
396
423
  */
397
424
  declare function resetFingerprint(): void;
398
425
 
399
- export { type ApiResponse, AppgramClient, type AppgramClientConfig, type AppgramConfig, type AppgramContextValue, AppgramProvider, type AppgramProviderProps, type AppgramTheme, Comment, CommentsResponse, type CustomColors, type CustomTypography, HelpArticle, HelpCollection, HelpFlow, type LayoutConfig, type PaginatedResponse, Release, ReleaseFeature, RoadmapData, SupportRequest, SupportRequestInput, type ThemeMode, type Vote, type VoteCheckResponse, type VoteCreateInput, type VoteState, Wish, WishFilters, WishesResponse, cn, getFingerprint, resetFingerprint, useAppgramContext };
426
+ export { type ApiResponse, AppgramClient, type AppgramClientConfig, type AppgramConfig, type AppgramContextValue, AppgramProvider, type AppgramProviderProps, type AppgramTheme, Comment, CommentsResponse, ContactForm, ContactFormSubmission, ContactFormSubmitInput, type CustomColors, type CustomTypography, HelpArticle, HelpCollection, HelpFlow, type LayoutConfig, type PaginatedResponse, Release, ReleaseFeature, RoadmapData, StatusPageOverview, SupportRequest, SupportRequestInput, Survey, SurveyNode, SurveyResponse, SurveySubmitInput, type ThemeMode, type Vote, type VoteCheckResponse, type VoteCreateInput, type VoteState, Wish, WishFilters, WishesResponse, cn, getFingerprint, resetFingerprint, useAppgramContext };
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunkZJZ3A2S3_js = require('./chunk-ZJZ3A2S3.js');
4
- var chunk3UBJGXCO_js = require('./chunk-3UBJGXCO.js');
5
- var chunk75P634IK_js = require('./chunk-75P634IK.js');
3
+ var chunkNSV6Q6QQ_js = require('./chunk-NSV6Q6QQ.js');
4
+ var chunkWZIN7KEM_js = require('./chunk-WZIN7KEM.js');
5
+ var chunkUPTP7QX5_js = require('./chunk-UPTP7QX5.js');
6
6
  var react = require('react');
7
7
  var jsxRuntime = require('react/jsx-runtime');
8
8
 
@@ -425,6 +425,7 @@ var AppgramClient = class {
425
425
  user_email: data.user_email
426
426
  };
427
427
  if (data.user_name) payload.user_name = data.user_name;
428
+ if (data.external_user_id) payload.external_user_id = data.external_user_id;
428
429
  if (data.category) payload.category = data.category;
429
430
  if (uploadedAttachments.length > 0) payload.attachments = uploadedAttachments;
430
431
  return this.post("/portal/support-requests", payload);
@@ -462,43 +463,62 @@ var AppgramClient = class {
462
463
  * Add a message to a support ticket
463
464
  */
464
465
  async addSupportMessage(ticketId, token, content) {
465
- const url = `/portal/support-requests/${ticketId}/messages`;
466
- const fullUrl = `${this.baseUrl}${url}`;
467
- try {
468
- const response = await fetch(fullUrl, {
469
- method: "POST",
470
- headers: {
471
- "Content-Type": "application/json",
472
- "Authorization": `Bearer ${token}`
473
- },
474
- body: JSON.stringify({ content })
475
- });
476
- const data = await response.json();
477
- if (!response.ok) {
478
- return {
479
- success: false,
480
- error: {
481
- code: String(response.status),
482
- message: data.message || data.error || "An error occurred"
483
- }
484
- };
485
- }
486
- if (data && typeof data === "object" && "success" in data) {
487
- return data;
488
- }
489
- return {
490
- success: true,
491
- data
492
- };
493
- } catch (error) {
494
- return {
495
- success: false,
496
- error: {
497
- code: "NETWORK_ERROR",
498
- message: error instanceof Error ? error.message : "Network error"
499
- }
500
- };
501
- }
466
+ return this.post(
467
+ `/portal/support-requests/${ticketId}/messages?token=${encodeURIComponent(token)}`,
468
+ { content }
469
+ );
470
+ }
471
+ // ============================================================================
472
+ // Status Pages
473
+ // ============================================================================
474
+ /**
475
+ * Get public status page overview (services, active updates, overall status)
476
+ */
477
+ async getPublicStatusOverview(slug = "status") {
478
+ return this.get(
479
+ `/api/v1/status-pages/public/${this.projectId}/${slug}/overview`
480
+ );
481
+ }
482
+ // ============================================================================
483
+ // Surveys
484
+ // ============================================================================
485
+ /**
486
+ * Get a public survey by slug
487
+ */
488
+ async getPublicSurvey(slug) {
489
+ return this.get(`/portal/surveys/${slug}`, {
490
+ project_id: this.projectId
491
+ });
492
+ }
493
+ /**
494
+ * Submit a survey response
495
+ */
496
+ async submitSurveyResponse(surveyId, data) {
497
+ return this.post(`/portal/surveys/${surveyId}/responses`, data);
498
+ }
499
+ /**
500
+ * Get survey customization settings
501
+ */
502
+ async getPublicSurveyCustomization(surveyId) {
503
+ return this.get(`/portal/surveys/customization/${surveyId}`);
504
+ }
505
+ // ============================================================================
506
+ // Contact Forms
507
+ // ============================================================================
508
+ /**
509
+ * Get a public contact form by ID
510
+ */
511
+ async getPublicForm(formId) {
512
+ return this.get(`/api/v1/forms/${formId}`);
513
+ }
514
+ /**
515
+ * Submit a contact form
516
+ */
517
+ async submitContactForm(projectId, formId, data) {
518
+ return this.post(
519
+ `/api/v1/projects/${projectId}/contact-forms/${formId}/submit`,
520
+ data
521
+ );
502
522
  }
503
523
  // ============================================================================
504
524
  // Page Data (Combined)
@@ -568,7 +588,7 @@ function AppgramProvider({
568
588
  const [isDark, setIsDark] = react.useState(() => resolveIsDark(themeMode));
569
589
  react.useEffect(() => {
570
590
  if (config.enableFingerprinting !== false) {
571
- setFingerprint(chunk75P634IK_js.getFingerprint());
591
+ setFingerprint(chunkUPTP7QX5_js.getFingerprint());
572
592
  }
573
593
  }, [config.enableFingerprinting]);
574
594
  react.useEffect(() => {
@@ -638,144 +658,172 @@ function AppgramProvider({
638
658
  if (theme.borderRadius) root.style.setProperty("--appgram-radius", `${theme.borderRadius}px`);
639
659
  if (theme.typography?.fontFamily) root.style.setProperty("--appgram-font-family", theme.typography.fontFamily);
640
660
  }, [currentColors, isDark, theme.borderRadius, theme.typography?.fontFamily]);
641
- return /* @__PURE__ */ jsxRuntime.jsx(chunk75P634IK_js.AppgramContext.Provider, { value: contextValue, children });
661
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkUPTP7QX5_js.AppgramContext.Provider, { value: contextValue, children });
642
662
  }
643
663
 
664
+ Object.defineProperty(exports, "useStatus", {
665
+ enumerable: true,
666
+ get: function () { return chunkNSV6Q6QQ_js.useStatus; }
667
+ });
644
668
  Object.defineProperty(exports, "useWish", {
645
669
  enumerable: true,
646
- get: function () { return chunkZJZ3A2S3_js.useWish; }
670
+ get: function () { return chunkNSV6Q6QQ_js.useWish; }
671
+ });
672
+ Object.defineProperty(exports, "ContactFormRenderer", {
673
+ enumerable: true,
674
+ get: function () { return chunkWZIN7KEM_js.ContactFormRenderer; }
647
675
  });
648
676
  Object.defineProperty(exports, "HelpArticleDetail", {
649
677
  enumerable: true,
650
- get: function () { return chunk3UBJGXCO_js.HelpArticleDetail; }
678
+ get: function () { return chunkWZIN7KEM_js.HelpArticleDetail; }
651
679
  });
652
680
  Object.defineProperty(exports, "HelpArticles", {
653
681
  enumerable: true,
654
- get: function () { return chunk3UBJGXCO_js.HelpArticles; }
682
+ get: function () { return chunkWZIN7KEM_js.HelpArticles; }
655
683
  });
656
684
  Object.defineProperty(exports, "HelpCenter", {
657
685
  enumerable: true,
658
- get: function () { return chunk3UBJGXCO_js.HelpCenter; }
686
+ get: function () { return chunkWZIN7KEM_js.HelpCenter; }
659
687
  });
660
688
  Object.defineProperty(exports, "HelpCollections", {
661
689
  enumerable: true,
662
- get: function () { return chunk3UBJGXCO_js.HelpCollections; }
690
+ get: function () { return chunkWZIN7KEM_js.HelpCollections; }
663
691
  });
664
692
  Object.defineProperty(exports, "ReleaseCard", {
665
693
  enumerable: true,
666
- get: function () { return chunk3UBJGXCO_js.ReleaseCard; }
694
+ get: function () { return chunkWZIN7KEM_js.ReleaseCard; }
667
695
  });
668
696
  Object.defineProperty(exports, "ReleaseDetail", {
669
697
  enumerable: true,
670
- get: function () { return chunk3UBJGXCO_js.ReleaseDetail; }
698
+ get: function () { return chunkWZIN7KEM_js.ReleaseDetail; }
671
699
  });
672
700
  Object.defineProperty(exports, "ReleaseList", {
673
701
  enumerable: true,
674
- get: function () { return chunk3UBJGXCO_js.ReleaseList; }
702
+ get: function () { return chunkWZIN7KEM_js.ReleaseList; }
675
703
  });
676
704
  Object.defineProperty(exports, "Releases", {
677
705
  enumerable: true,
678
- get: function () { return chunk3UBJGXCO_js.Releases; }
706
+ get: function () { return chunkWZIN7KEM_js.Releases; }
679
707
  });
680
708
  Object.defineProperty(exports, "RoadmapBoard", {
681
709
  enumerable: true,
682
- get: function () { return chunk3UBJGXCO_js.RoadmapBoard; }
710
+ get: function () { return chunkWZIN7KEM_js.RoadmapBoard; }
683
711
  });
684
712
  Object.defineProperty(exports, "RoadmapColumn", {
685
713
  enumerable: true,
686
- get: function () { return chunk3UBJGXCO_js.RoadmapColumn; }
714
+ get: function () { return chunkWZIN7KEM_js.RoadmapColumn; }
687
715
  });
688
716
  Object.defineProperty(exports, "StatusBoard", {
689
717
  enumerable: true,
690
- get: function () { return chunk3UBJGXCO_js.StatusBoard; }
718
+ get: function () { return chunkWZIN7KEM_js.StatusBoard; }
691
719
  });
692
720
  Object.defineProperty(exports, "StatusIncidentDetail", {
693
721
  enumerable: true,
694
- get: function () { return chunk3UBJGXCO_js.StatusIncidentDetail; }
722
+ get: function () { return chunkWZIN7KEM_js.StatusIncidentDetail; }
695
723
  });
696
724
  Object.defineProperty(exports, "SubmitWishForm", {
697
725
  enumerable: true,
698
- get: function () { return chunk3UBJGXCO_js.SubmitWishForm; }
726
+ get: function () { return chunkWZIN7KEM_js.SubmitWishForm; }
699
727
  });
700
728
  Object.defineProperty(exports, "SupportForm", {
701
729
  enumerable: true,
702
- get: function () { return chunk3UBJGXCO_js.SupportForm; }
730
+ get: function () { return chunkWZIN7KEM_js.SupportForm; }
731
+ });
732
+ Object.defineProperty(exports, "SurveyRenderer", {
733
+ enumerable: true,
734
+ get: function () { return chunkWZIN7KEM_js.SurveyRenderer; }
703
735
  });
704
736
  Object.defineProperty(exports, "VoteButton", {
705
737
  enumerable: true,
706
- get: function () { return chunk3UBJGXCO_js.VoteButton; }
738
+ get: function () { return chunkWZIN7KEM_js.VoteButton; }
707
739
  });
708
740
  Object.defineProperty(exports, "WhatsNewPopup", {
709
741
  enumerable: true,
710
- get: function () { return chunk3UBJGXCO_js.WhatsNewPopup; }
742
+ get: function () { return chunkWZIN7KEM_js.WhatsNewPopup; }
711
743
  });
712
744
  Object.defineProperty(exports, "WishCard", {
713
745
  enumerable: true,
714
- get: function () { return chunk3UBJGXCO_js.WishCard; }
746
+ get: function () { return chunkWZIN7KEM_js.WishCard; }
715
747
  });
716
748
  Object.defineProperty(exports, "WishDetail", {
717
749
  enumerable: true,
718
- get: function () { return chunk3UBJGXCO_js.WishDetail; }
750
+ get: function () { return chunkWZIN7KEM_js.WishDetail; }
719
751
  });
720
752
  Object.defineProperty(exports, "WishList", {
721
753
  enumerable: true,
722
- get: function () { return chunk3UBJGXCO_js.WishList; }
754
+ get: function () { return chunkWZIN7KEM_js.WishList; }
723
755
  });
724
756
  Object.defineProperty(exports, "cn", {
725
757
  enumerable: true,
726
- get: function () { return chunk75P634IK_js.cn; }
758
+ get: function () { return chunkUPTP7QX5_js.cn; }
727
759
  });
728
760
  Object.defineProperty(exports, "getFingerprint", {
729
761
  enumerable: true,
730
- get: function () { return chunk75P634IK_js.getFingerprint; }
762
+ get: function () { return chunkUPTP7QX5_js.getFingerprint; }
731
763
  });
732
764
  Object.defineProperty(exports, "resetFingerprint", {
733
765
  enumerable: true,
734
- get: function () { return chunk75P634IK_js.resetFingerprint; }
766
+ get: function () { return chunkUPTP7QX5_js.resetFingerprint; }
735
767
  });
736
768
  Object.defineProperty(exports, "useAppgramContext", {
737
769
  enumerable: true,
738
- get: function () { return chunk75P634IK_js.useAppgramContext; }
770
+ get: function () { return chunkUPTP7QX5_js.useAppgramContext; }
739
771
  });
740
772
  Object.defineProperty(exports, "useComments", {
741
773
  enumerable: true,
742
- get: function () { return chunk75P634IK_js.useComments; }
774
+ get: function () { return chunkUPTP7QX5_js.useComments; }
775
+ });
776
+ Object.defineProperty(exports, "useContactForm", {
777
+ enumerable: true,
778
+ get: function () { return chunkUPTP7QX5_js.useContactForm; }
779
+ });
780
+ Object.defineProperty(exports, "useContactFormSubmit", {
781
+ enumerable: true,
782
+ get: function () { return chunkUPTP7QX5_js.useContactFormSubmit; }
743
783
  });
744
784
  Object.defineProperty(exports, "useHelpArticle", {
745
785
  enumerable: true,
746
- get: function () { return chunk75P634IK_js.useHelpArticle; }
786
+ get: function () { return chunkUPTP7QX5_js.useHelpArticle; }
747
787
  });
748
788
  Object.defineProperty(exports, "useHelpCenter", {
749
789
  enumerable: true,
750
- get: function () { return chunk75P634IK_js.useHelpCenter; }
790
+ get: function () { return chunkUPTP7QX5_js.useHelpCenter; }
751
791
  });
752
792
  Object.defineProperty(exports, "useHelpFlow", {
753
793
  enumerable: true,
754
- get: function () { return chunk75P634IK_js.useHelpFlow; }
794
+ get: function () { return chunkUPTP7QX5_js.useHelpFlow; }
755
795
  });
756
796
  Object.defineProperty(exports, "useRelease", {
757
797
  enumerable: true,
758
- get: function () { return chunk75P634IK_js.useRelease; }
798
+ get: function () { return chunkUPTP7QX5_js.useRelease; }
759
799
  });
760
800
  Object.defineProperty(exports, "useReleases", {
761
801
  enumerable: true,
762
- get: function () { return chunk75P634IK_js.useReleases; }
802
+ get: function () { return chunkUPTP7QX5_js.useReleases; }
763
803
  });
764
804
  Object.defineProperty(exports, "useRoadmap", {
765
805
  enumerable: true,
766
- get: function () { return chunk75P634IK_js.useRoadmap; }
806
+ get: function () { return chunkUPTP7QX5_js.useRoadmap; }
767
807
  });
768
808
  Object.defineProperty(exports, "useSupport", {
769
809
  enumerable: true,
770
- get: function () { return chunk75P634IK_js.useSupport; }
810
+ get: function () { return chunkUPTP7QX5_js.useSupport; }
811
+ });
812
+ Object.defineProperty(exports, "useSurvey", {
813
+ enumerable: true,
814
+ get: function () { return chunkUPTP7QX5_js.useSurvey; }
815
+ });
816
+ Object.defineProperty(exports, "useSurveySubmit", {
817
+ enumerable: true,
818
+ get: function () { return chunkUPTP7QX5_js.useSurveySubmit; }
771
819
  });
772
820
  Object.defineProperty(exports, "useVote", {
773
821
  enumerable: true,
774
- get: function () { return chunk75P634IK_js.useVote; }
822
+ get: function () { return chunkUPTP7QX5_js.useVote; }
775
823
  });
776
824
  Object.defineProperty(exports, "useWishes", {
777
825
  enumerable: true,
778
- get: function () { return chunk75P634IK_js.useWishes; }
826
+ get: function () { return chunkUPTP7QX5_js.useWishes; }
779
827
  });
780
828
  exports.AppgramClient = AppgramClient;
781
829
  exports.AppgramProvider = AppgramProvider;