@flamingo-stack/openframe-frontend-core 0.0.296 → 0.0.297
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/README.md +9 -0
- package/dist/{chunk-7RIYT7ZH.js → chunk-2QG57XOJ.js} +1067 -205
- package/dist/chunk-2QG57XOJ.js.map +1 -0
- package/dist/{chunk-WHMATDVP.js → chunk-3JIQVE7T.js} +9 -15
- package/dist/{chunk-WHMATDVP.js.map → chunk-3JIQVE7T.js.map} +1 -1
- package/dist/{chunk-GLLDTKZK.cjs → chunk-4PSQS3SW.cjs} +7 -9
- package/dist/chunk-4PSQS3SW.cjs.map +1 -0
- package/dist/{chunk-OY7OF7E7.js → chunk-4TLE6VLU.js} +30 -24
- package/dist/chunk-4TLE6VLU.js.map +1 -0
- package/dist/{chunk-W6M2FLLT.cjs → chunk-53FUMSZ5.cjs} +40 -46
- package/dist/chunk-53FUMSZ5.cjs.map +1 -0
- package/dist/{chunk-D3LEFMOA.cjs → chunk-54KNMC2R.cjs} +3 -3
- package/dist/{chunk-D3LEFMOA.cjs.map → chunk-54KNMC2R.cjs.map} +1 -1
- package/dist/{chunk-EYEW6PTA.cjs → chunk-6C526VNN.cjs} +358 -118
- package/dist/chunk-6C526VNN.cjs.map +1 -0
- package/dist/{chunk-XREEV72C.cjs → chunk-7OVGB2DQ.cjs} +19 -25
- package/dist/chunk-7OVGB2DQ.cjs.map +1 -0
- package/dist/{chunk-6GCI7JOE.js → chunk-AD6C23QY.js} +8 -7
- package/dist/{chunk-6GCI7JOE.js.map → chunk-AD6C23QY.js.map} +1 -1
- package/dist/chunk-F5OB2YAL.cjs +144 -0
- package/dist/chunk-F5OB2YAL.cjs.map +1 -0
- package/dist/chunk-FBWXMMRB.cjs +2 -0
- package/dist/chunk-FBWXMMRB.cjs.map +1 -0
- package/dist/{chunk-YIGPRLQY.cjs → chunk-FCDQNTDG.cjs} +21 -20
- package/dist/chunk-FCDQNTDG.cjs.map +1 -0
- package/dist/{chunk-IE6OU3WQ.cjs → chunk-FQOTC3UU.cjs} +318 -16
- package/dist/chunk-FQOTC3UU.cjs.map +1 -0
- package/dist/{chunk-QHIXS3W2.cjs → chunk-GUTS7HGA.cjs} +11590 -2105
- package/dist/chunk-GUTS7HGA.cjs.map +1 -0
- package/dist/chunk-GZ4C3XW6.js +2 -0
- package/dist/chunk-GZ4C3XW6.js.map +1 -0
- package/dist/{chunk-5P3B2LZW.js → chunk-IL47XWV5.js} +8 -14
- package/dist/{chunk-5P3B2LZW.js.map → chunk-IL47XWV5.js.map} +1 -1
- package/dist/{chunk-LCNMR277.js → chunk-IZ7JSBFP.js} +1 -1
- package/dist/chunk-IZ7JSBFP.js.map +1 -0
- package/dist/{chunk-EL6QLAWX.js → chunk-JALO4TAZ.js} +357 -55
- package/dist/chunk-JALO4TAZ.js.map +1 -0
- package/dist/{chunk-AQOWFSMB.cjs → chunk-L6PSSIUQ.cjs} +1 -1
- package/dist/chunk-L6PSSIUQ.cjs.map +1 -0
- package/dist/{chunk-MBFWU2EM.js → chunk-L7ULJKG7.js} +6 -10
- package/dist/{chunk-MBFWU2EM.js.map → chunk-L7ULJKG7.js.map} +1 -1
- package/dist/{chunk-K2PFPBMF.js → chunk-PC746XCO.js} +15050 -5565
- package/dist/chunk-PC746XCO.js.map +1 -0
- package/dist/{chunk-3ZXUQQL4.js → chunk-PI4WSYQV.js} +2 -2
- package/dist/{chunk-E4XABBSU.js → chunk-PWQUAVA3.js} +338 -98
- package/dist/chunk-PWQUAVA3.js.map +1 -0
- package/dist/chunk-SA2WPJVO.js +144 -0
- package/dist/chunk-SA2WPJVO.js.map +1 -0
- package/dist/{chunk-X6BV7MB7.cjs → chunk-UNVE2SDJ.cjs} +37 -31
- package/dist/chunk-UNVE2SDJ.cjs.map +1 -0
- package/dist/{chunk-5E2HOSSH.cjs → chunk-WMSTJAZT.cjs} +913 -51
- package/dist/chunk-WMSTJAZT.cjs.map +1 -0
- package/dist/{chunk-ZP4AVIZP.js → chunk-X4DOXQRT.js} +4 -6
- package/dist/{chunk-ZP4AVIZP.js.map → chunk-X4DOXQRT.js.map} +1 -1
- package/dist/{chunk-X647HY3F.cjs → chunk-YBYI62OE.cjs} +33 -37
- package/dist/chunk-YBYI62OE.cjs.map +1 -0
- package/dist/components/case-studies/index.cjs +126 -0
- package/dist/components/case-studies/index.cjs.map +1 -0
- package/dist/components/case-studies/index.d.ts +2 -0
- package/dist/components/case-studies/index.d.ts.map +1 -0
- package/dist/components/case-studies/index.js +126 -0
- package/dist/components/case-studies/index.js.map +1 -0
- package/dist/components/case-studies/share-experience-section.d.ts +48 -0
- package/dist/components/case-studies/share-experience-section.d.ts.map +1 -0
- package/dist/components/chat/index.cjs +8 -18
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.js +75 -85
- package/dist/components/contact/index.cjs +8 -15
- package/dist/components/contact/index.cjs.map +1 -1
- package/dist/components/contact/index.js +7 -14
- package/dist/components/docs/doc-viewer.d.ts +39 -2
- package/dist/components/docs/doc-viewer.d.ts.map +1 -1
- package/dist/components/docs/docs-hub-page.d.ts +46 -0
- package/dist/components/docs/docs-hub-page.d.ts.map +1 -0
- package/dist/components/docs/index.cjs +17 -9
- package/dist/components/docs/index.cjs.map +1 -1
- package/dist/components/docs/index.d.ts +4 -0
- package/dist/components/docs/index.d.ts.map +1 -1
- package/dist/components/docs/index.js +16 -8
- package/dist/components/docs/skeletons.d.ts +32 -0
- package/dist/components/docs/skeletons.d.ts.map +1 -0
- package/dist/components/docs/use-docs-resolve-link.d.ts +20 -0
- package/dist/components/docs/use-docs-resolve-link.d.ts.map +1 -0
- package/dist/components/docs/use-document-tree.d.ts.map +1 -1
- package/dist/components/embeds/embed-container.d.ts +37 -0
- package/dist/components/embeds/embed-container.d.ts.map +1 -0
- package/dist/components/embeds/embed-iframe.d.ts.map +1 -1
- package/dist/components/embeds/file-download-card.d.ts +18 -0
- package/dist/components/embeds/file-download-card.d.ts.map +1 -0
- package/dist/components/embeds/index.cjs +38 -15
- package/dist/components/embeds/index.cjs.map +1 -1
- package/dist/components/embeds/index.d.ts +8 -0
- package/dist/components/embeds/index.d.ts.map +1 -1
- package/dist/components/embeds/index.js +40 -17
- package/dist/components/embeds/linkedin-embed-client.d.ts +8 -0
- package/dist/components/embeds/linkedin-embed-client.d.ts.map +1 -0
- package/dist/components/embeds/markdown-image.d.ts +5 -0
- package/dist/components/embeds/markdown-image.d.ts.map +1 -0
- package/dist/components/embeds/reddit-embed-client.d.ts +7 -0
- package/dist/components/embeds/reddit-embed-client.d.ts.map +1 -0
- package/dist/components/embeds/rich-markdown-runtime.d.ts +46 -0
- package/dist/components/embeds/rich-markdown-runtime.d.ts.map +1 -0
- package/dist/components/embeds/twitter-embed-client.d.ts +8 -0
- package/dist/components/embeds/twitter-embed-client.d.ts.map +1 -0
- package/dist/components/faq/index.cjs +9 -16
- package/dist/components/faq/index.cjs.map +1 -1
- package/dist/components/faq/index.js +8 -15
- package/dist/components/features/index.cjs +8 -16
- package/dist/components/features/index.cjs.map +1 -1
- package/dist/components/features/index.js +24 -32
- package/dist/components/index.cjs +257 -452
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +781 -976
- package/dist/components/index.js.map +1 -1
- package/dist/components/layout/page-header.d.ts +78 -0
- package/dist/components/layout/page-header.d.ts.map +1 -0
- package/dist/components/layout/page-layout.d.ts +10 -1
- package/dist/components/layout/page-layout.d.ts.map +1 -1
- package/dist/components/layout/page-with-header.d.ts +67 -0
- package/dist/components/layout/page-with-header.d.ts.map +1 -0
- package/dist/components/layout/title-block.d.ts +17 -1
- package/dist/components/layout/title-block.d.ts.map +1 -1
- package/dist/components/navigation/index.cjs +7 -15
- package/dist/components/navigation/index.cjs.map +1 -1
- package/dist/components/navigation/index.js +9 -17
- package/dist/components/onboarding-guides/index.cjs +35 -36
- package/dist/components/onboarding-guides/index.cjs.map +1 -1
- package/dist/components/onboarding-guides/index.js +13 -14
- package/dist/components/onboarding-guides/index.js.map +1 -1
- package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts +1 -1
- package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts.map +1 -1
- package/dist/components/related-content/index.cjs +9 -16
- package/dist/components/related-content/index.cjs.map +1 -1
- package/dist/components/related-content/index.js +8 -15
- package/dist/components/shared/dev-section/dev-section-page.d.ts +9 -0
- package/dist/components/shared/dev-section/dev-section-page.d.ts.map +1 -1
- package/dist/components/shared/dev-section/dev-section-view.d.ts.map +1 -1
- package/dist/components/shared/dev-section/index.d.ts +1 -1
- package/dist/components/shared/dev-section/index.d.ts.map +1 -1
- package/dist/components/shared/doc-search/use-doc-search.d.ts.map +1 -1
- package/dist/components/shared/legal-document/legal-document-page.d.ts.map +1 -1
- package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
- package/dist/components/tickets/index.cjs +100 -112
- package/dist/components/tickets/index.cjs.map +1 -1
- package/dist/components/tickets/index.js +20 -32
- package/dist/components/tickets/index.js.map +1 -1
- package/dist/components/ui/file-manager/index.cjs +50 -52
- package/dist/components/ui/file-manager/index.cjs.map +1 -1
- package/dist/components/ui/file-manager/index.js +4 -6
- package/dist/components/ui/file-manager/index.js.map +1 -1
- package/dist/components/ui/index.cjs +13 -19
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.d.ts +2 -0
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +133 -139
- package/dist/components/ui/release-changelog-section.d.ts +6 -2
- package/dist/components/ui/release-changelog-section.d.ts.map +1 -1
- package/dist/components/ui/rich-markdown-renderer.d.ts +34 -0
- package/dist/components/ui/rich-markdown-renderer.d.ts.map +1 -0
- package/dist/components/ui/simple-markdown-renderer.d.ts +2 -8
- package/dist/components/ui/simple-markdown-renderer.d.ts.map +1 -1
- package/dist/contexts/chat-runtime-context.d.ts +14 -0
- package/dist/contexts/chat-runtime-context.d.ts.map +1 -1
- package/dist/contexts/index.cjs +3 -3
- package/dist/contexts/index.js +5 -5
- package/dist/embed-shims/index.cjs +3 -3
- package/dist/embed-shims/index.cjs.map +1 -1
- package/dist/embed-shims/index.js +4 -4
- package/dist/hooks/index.cjs +4 -9
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.js +6 -11
- package/dist/index.cjs +14 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +362 -368
- package/dist/types/doc-source.d.ts +31 -1
- package/dist/types/doc-source.d.ts.map +1 -1
- package/dist/utils/index.cjs +4 -0
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +4 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/page-header-constants.d.ts +15 -0
- package/dist/utils/page-header-constants.d.ts.map +1 -0
- package/dist/utils/social-embed-cache.d.ts +29 -0
- package/dist/utils/social-embed-cache.d.ts.map +1 -0
- package/package.json +7 -1
- package/src/components/case-studies/index.ts +4 -0
- package/src/components/case-studies/share-experience-section.tsx +185 -0
- package/src/components/chat/embeddable-chat.tsx +1 -1
- package/src/components/docs/doc-viewer.tsx +111 -19
- package/src/components/docs/docs-hub-page.tsx +149 -0
- package/src/components/docs/index.ts +17 -0
- package/src/components/docs/skeletons.tsx +138 -0
- package/src/components/docs/use-docs-resolve-link.ts +52 -0
- package/src/components/docs/use-document-tree.ts +21 -0
- package/src/components/embeds/embed-container.tsx +80 -0
- package/src/components/embeds/embed-iframe.tsx +7 -9
- package/src/components/embeds/file-download-card.tsx +54 -0
- package/src/components/embeds/index.ts +30 -0
- package/src/components/embeds/linkedin-embed-client.tsx +100 -0
- package/src/components/embeds/markdown-image.tsx +88 -0
- package/src/components/embeds/og-link-preview.tsx +13 -13
- package/src/components/embeds/reddit-embed-client.tsx +550 -0
- package/src/components/embeds/rich-markdown-runtime.tsx +79 -0
- package/src/components/embeds/twitter-embed-client.tsx +308 -0
- package/src/components/layout/page-header.tsx +182 -0
- package/src/components/layout/page-layout.tsx +14 -1
- package/src/components/layout/page-with-header.tsx +110 -0
- package/src/components/layout/title-block.tsx +40 -62
- package/src/components/onboarding-guides/onboarding-guide-detail-view.tsx +3 -3
- package/src/components/shared/dev-section/dev-section-page.tsx +9 -1
- package/src/components/shared/dev-section/dev-section-view.tsx +14 -9
- package/src/components/shared/dev-section/index.ts +1 -1
- package/src/components/shared/doc-search/use-doc-search.ts +7 -3
- package/src/components/shared/legal-document/legal-document-page.tsx +2 -2
- package/src/components/shared/product-release/release-detail-page.tsx +6 -4
- package/src/components/ui/index.ts +2 -0
- package/src/components/ui/release-changelog-section.tsx +7 -2
- package/src/components/ui/rich-markdown-renderer.tsx +1203 -0
- package/src/components/ui/simple-markdown-renderer.tsx +7 -11
- package/src/contexts/chat-runtime-context.tsx +14 -0
- package/src/types/doc-source.ts +33 -1
- package/src/utils/index.ts +1 -0
- package/src/utils/page-header-constants.ts +15 -0
- package/src/utils/social-embed-cache.ts +391 -0
- package/dist/chunk-26PKDALD.js +0 -2379
- package/dist/chunk-26PKDALD.js.map +0 -1
- package/dist/chunk-3MCHAFHB.js +0 -89
- package/dist/chunk-3MCHAFHB.js.map +0 -1
- package/dist/chunk-5E2HOSSH.cjs.map +0 -1
- package/dist/chunk-66AANIOC.cjs +0 -619
- package/dist/chunk-66AANIOC.cjs.map +0 -1
- package/dist/chunk-6JINAOI7.cjs +0 -311
- package/dist/chunk-6JINAOI7.cjs.map +0 -1
- package/dist/chunk-7RIYT7ZH.js.map +0 -1
- package/dist/chunk-AQOWFSMB.cjs.map +0 -1
- package/dist/chunk-BOCFIKYS.cjs +0 -3009
- package/dist/chunk-BOCFIKYS.cjs.map +0 -1
- package/dist/chunk-D652TJBQ.js +0 -3009
- package/dist/chunk-D652TJBQ.js.map +0 -1
- package/dist/chunk-E4XABBSU.js.map +0 -1
- package/dist/chunk-EL6QLAWX.js.map +0 -1
- package/dist/chunk-EYEW6PTA.cjs.map +0 -1
- package/dist/chunk-FQJK446R.js +0 -1606
- package/dist/chunk-FQJK446R.js.map +0 -1
- package/dist/chunk-GLLDTKZK.cjs.map +0 -1
- package/dist/chunk-IE6OU3WQ.cjs.map +0 -1
- package/dist/chunk-J54Z3OCR.cjs +0 -1606
- package/dist/chunk-J54Z3OCR.cjs.map +0 -1
- package/dist/chunk-K2PFPBMF.js.map +0 -1
- package/dist/chunk-KXCRGTRN.cjs +0 -2379
- package/dist/chunk-KXCRGTRN.cjs.map +0 -1
- package/dist/chunk-LCNMR277.js.map +0 -1
- package/dist/chunk-LFGGF7OT.cjs +0 -449
- package/dist/chunk-LFGGF7OT.cjs.map +0 -1
- package/dist/chunk-M2OCXTNT.js +0 -311
- package/dist/chunk-M2OCXTNT.js.map +0 -1
- package/dist/chunk-ME4EVDFP.js +0 -619
- package/dist/chunk-ME4EVDFP.js.map +0 -1
- package/dist/chunk-OQ6X7ZOC.js +0 -449
- package/dist/chunk-OQ6X7ZOC.js.map +0 -1
- package/dist/chunk-OY7OF7E7.js.map +0 -1
- package/dist/chunk-POKKCWKF.js +0 -354
- package/dist/chunk-POKKCWKF.js.map +0 -1
- package/dist/chunk-QHIXS3W2.cjs.map +0 -1
- package/dist/chunk-TFSYSWPS.cjs +0 -89
- package/dist/chunk-TFSYSWPS.cjs.map +0 -1
- package/dist/chunk-W6M2FLLT.cjs.map +0 -1
- package/dist/chunk-X647HY3F.cjs.map +0 -1
- package/dist/chunk-X6BV7MB7.cjs.map +0 -1
- package/dist/chunk-XREEV72C.cjs.map +0 -1
- package/dist/chunk-YETA25JW.cjs +0 -354
- package/dist/chunk-YETA25JW.cjs.map +0 -1
- package/dist/chunk-YIGPRLQY.cjs.map +0 -1
- /package/dist/{chunk-3ZXUQQL4.js.map → chunk-PI4WSYQV.js.map} +0 -0
|
@@ -7,11 +7,11 @@
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _chunkUNVE2SDJcjs = require('../../chunk-UNVE2SDJ.cjs');
|
|
11
11
|
require('../../chunk-VFKQMAUF.cjs');
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _chunkYBYI62OEcjs = require('../../chunk-YBYI62OE.cjs');
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
|
|
@@ -32,67 +32,55 @@ var _chunkX647HY3Fcjs = require('../../chunk-X647HY3F.cjs');
|
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
|
|
35
|
-
var _chunkQHIXS3W2cjs = require('../../chunk-QHIXS3W2.cjs');
|
|
36
35
|
|
|
37
36
|
|
|
38
37
|
|
|
39
38
|
|
|
40
|
-
var _chunkKXCRGTRNcjs = require('../../chunk-KXCRGTRN.cjs');
|
|
41
39
|
|
|
42
40
|
|
|
41
|
+
var _chunkGUTS7HGAcjs = require('../../chunk-GUTS7HGA.cjs');
|
|
43
42
|
|
|
44
|
-
var _chunk5E2HOSSHcjs = require('../../chunk-5E2HOSSH.cjs');
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
var _chunkLFGGF7OTcjs = require('../../chunk-LFGGF7OT.cjs');
|
|
49
|
-
require('../../chunk-27APPAJN.cjs');
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
var _chunk6JINAOI7cjs = require('../../chunk-6JINAOI7.cjs');
|
|
54
|
-
require('../../chunk-PXXS27EE.cjs');
|
|
55
43
|
|
|
56
44
|
|
|
57
45
|
|
|
58
46
|
|
|
59
|
-
var _chunkBOCFIKYScjs = require('../../chunk-BOCFIKYS.cjs');
|
|
60
|
-
require('../../chunk-J54Z3OCR.cjs');
|
|
61
|
-
require('../../chunk-TFSYSWPS.cjs');
|
|
62
47
|
|
|
48
|
+
var _chunkWMSTJAZTcjs = require('../../chunk-WMSTJAZT.cjs');
|
|
63
49
|
|
|
64
|
-
var _chunkYETA25JWcjs = require('../../chunk-YETA25JW.cjs');
|
|
65
50
|
|
|
66
|
-
|
|
67
|
-
|
|
51
|
+
var _chunkL6PSSIUQcjs = require('../../chunk-L6PSSIUQ.cjs');
|
|
52
|
+
require('../../chunk-27APPAJN.cjs');
|
|
53
|
+
require('../../chunk-BZFW3FOF.cjs');
|
|
68
54
|
|
|
69
55
|
|
|
70
56
|
|
|
71
57
|
|
|
72
58
|
var _chunkG7UE6RKVcjs = require('../../chunk-G7UE6RKV.cjs');
|
|
73
59
|
require('../../chunk-XL4V2PYG.cjs');
|
|
74
|
-
require('../../chunk-BZFW3FOF.cjs');
|
|
75
60
|
|
|
76
61
|
|
|
77
62
|
|
|
78
|
-
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
var _chunkFQOTC3UUcjs = require('../../chunk-FQOTC3UU.cjs');
|
|
79
66
|
require('../../chunk-WBR7H6E3.cjs');
|
|
80
67
|
require('../../chunk-LGLPNWS6.cjs');
|
|
81
68
|
require('../../chunk-FIG2RKZF.cjs');
|
|
82
69
|
require('../../chunk-ZS2SBWBR.cjs');
|
|
83
70
|
require('../../chunk-WZW7C7TF.cjs');
|
|
84
71
|
require('../../chunk-XQFFGR6U.cjs');
|
|
72
|
+
require('../../chunk-PXXS27EE.cjs');
|
|
85
73
|
require('../../chunk-VRHGVLSL.cjs');
|
|
86
74
|
|
|
87
75
|
// src/components/tickets/ticket-center.tsx
|
|
88
76
|
var _react = require('react');
|
|
89
77
|
var _reactquery = require('@tanstack/react-query');
|
|
90
|
-
|
|
78
|
+
_chunkFQOTC3UUcjs.init_button2.call(void 0, );
|
|
91
79
|
var _lucidereact = require('lucide-react');
|
|
92
80
|
|
|
93
81
|
// src/components/tickets/ticket-open-form.tsx
|
|
94
82
|
|
|
95
|
-
|
|
83
|
+
_chunkFQOTC3UUcjs.init_button2.call(void 0, );
|
|
96
84
|
|
|
97
85
|
// src/components/tickets/types.ts
|
|
98
86
|
function isOptimistic(t) {
|
|
@@ -120,7 +108,7 @@ function TicketOpenForm({
|
|
|
120
108
|
}) {
|
|
121
109
|
const [subject, setSubject] = _react.useState.call(void 0, "");
|
|
122
110
|
const [content, setContent] = _react.useState.call(void 0, "");
|
|
123
|
-
const { attachments, readyAttachments, hasInflightUploads, addFiles, removeAttachment, clear } =
|
|
111
|
+
const { attachments, readyAttachments, hasInflightUploads, addFiles, removeAttachment, clear } = _chunkGUTS7HGAcjs.useChatAttachments.call(void 0, );
|
|
124
112
|
const trimmedSubject = subject.trim();
|
|
125
113
|
const trimmedContent = content.trim();
|
|
126
114
|
const overCap = content.length > TICKET_TEXT_MAX_CHARS;
|
|
@@ -140,7 +128,7 @@ function TicketOpenForm({
|
|
|
140
128
|
clear();
|
|
141
129
|
}
|
|
142
130
|
};
|
|
143
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
131
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGUTS7HGAcjs.Card, { className: "p-6", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "form", { onSubmit: handleSubmit, className: "flex flex-col md:flex-row gap-6", children: [
|
|
144
132
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 md:max-w-md", children: [
|
|
145
133
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "text-2xl font-semibold text-ods-text-primary mb-2", children: "Need Support?" }),
|
|
146
134
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-sm", children: "Can't find what you're looking for? Submit a support ticket below \u2014 we'll follow up shortly." }),
|
|
@@ -157,7 +145,7 @@ function TicketOpenForm({
|
|
|
157
145
|
}
|
|
158
146
|
),
|
|
159
147
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
160
|
-
|
|
148
|
+
_chunkFQOTC3UUcjs.Input,
|
|
161
149
|
{
|
|
162
150
|
id: "ticket-subject",
|
|
163
151
|
type: "text",
|
|
@@ -179,7 +167,7 @@ function TicketOpenForm({
|
|
|
179
167
|
}
|
|
180
168
|
),
|
|
181
169
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
182
|
-
|
|
170
|
+
_chunkGUTS7HGAcjs.Textarea,
|
|
183
171
|
{
|
|
184
172
|
id: "ticket-content",
|
|
185
173
|
placeholder: "Describe your issue or question in detail...",
|
|
@@ -203,7 +191,7 @@ function TicketOpenForm({
|
|
|
203
191
|
)
|
|
204
192
|
] }),
|
|
205
193
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
206
|
-
|
|
194
|
+
_chunkGUTS7HGAcjs.ChatAttachmentChipStrip,
|
|
207
195
|
{
|
|
208
196
|
attachments,
|
|
209
197
|
onRemove: removeAttachment,
|
|
@@ -212,7 +200,7 @@ function TicketOpenForm({
|
|
|
212
200
|
),
|
|
213
201
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between gap-3", children: [
|
|
214
202
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
215
|
-
|
|
203
|
+
_chunkGUTS7HGAcjs.ChatAttachmentAddButton,
|
|
216
204
|
{
|
|
217
205
|
attachmentsEnabled: !supportSystemDown,
|
|
218
206
|
attachmentsCount: attachments.length,
|
|
@@ -221,7 +209,7 @@ function TicketOpenForm({
|
|
|
221
209
|
}
|
|
222
210
|
),
|
|
223
211
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
224
|
-
|
|
212
|
+
_chunkFQOTC3UUcjs.Button,
|
|
225
213
|
{
|
|
226
214
|
type: "submit",
|
|
227
215
|
disabled: !canSubmit,
|
|
@@ -243,16 +231,16 @@ var Collapsible = CollapsiblePrimitive.Root;
|
|
|
243
231
|
var CollapsibleContent2 = CollapsiblePrimitive.CollapsibleContent;
|
|
244
232
|
|
|
245
233
|
// src/components/tickets/ticket-detail-drawer.tsx
|
|
246
|
-
|
|
234
|
+
_chunkFQOTC3UUcjs.init_button2.call(void 0, );
|
|
247
235
|
var _usesticktobottom = require('use-stick-to-bottom');
|
|
248
236
|
|
|
249
237
|
// src/components/tickets/hooks/use-ticket-engagements.ts
|
|
250
238
|
|
|
251
239
|
var LIST_ENGAGEMENTS_ENDPOINT = "/api/chat/agent/list-engagements";
|
|
252
240
|
function useTicketEngagements(externalTicketId, enabled = true, refetchInterval = false) {
|
|
253
|
-
const identity =
|
|
241
|
+
const identity = _chunkGUTS7HGAcjs.useChatIdentity.call(void 0, );
|
|
254
242
|
const identityKey = _nullishCoalesce(_optionalChain([identity, 'access', _2 => _2.user, 'optionalAccess', _3 => _3.email]), () => ( "anon"));
|
|
255
|
-
const listEngagementsEndpoint = _nullishCoalesce(
|
|
243
|
+
const listEngagementsEndpoint = _nullishCoalesce(_chunkL6PSSIUQcjs.useRequiredChatRuntime.call(void 0, ).endpoints.listEngagementsUrl, () => ( LIST_ENGAGEMENTS_ENDPOINT));
|
|
256
244
|
const fetchable = enabled && !!externalTicketId && !externalTicketId.startsWith("temp-");
|
|
257
245
|
const queryEnabled = fetchable && identity.authTier !== "anon" && !!_optionalChain([identity, 'access', _4 => _4.user, 'optionalAccess', _5 => _5.email]);
|
|
258
246
|
const query = _reactquery.useQuery.call(void 0, {
|
|
@@ -271,7 +259,7 @@ function useTicketEngagements(externalTicketId, enabled = true, refetchInterval
|
|
|
271
259
|
// so polling pauses on a hidden tab.
|
|
272
260
|
refetchInterval,
|
|
273
261
|
queryFn: async () => {
|
|
274
|
-
const response = await
|
|
262
|
+
const response = await _chunkWMSTJAZTcjs.embedAuthedFetch.call(void 0, listEngagementsEndpoint, {
|
|
275
263
|
method: "POST",
|
|
276
264
|
body: JSON.stringify({ ticket_id: externalTicketId })
|
|
277
265
|
});
|
|
@@ -332,7 +320,7 @@ function TicketLinkedDeliveryCard({
|
|
|
332
320
|
{
|
|
333
321
|
className: `rounded-md border border-ods-border bg-ods-bg overflow-hidden ${_nullishCoalesce(className, () => ( ""))}`,
|
|
334
322
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
335
|
-
|
|
323
|
+
_chunkUNVE2SDJcjs.DeliveryRow,
|
|
336
324
|
{
|
|
337
325
|
item,
|
|
338
326
|
href: clickup.delivery_href,
|
|
@@ -344,7 +332,7 @@ function TicketLinkedDeliveryCard({
|
|
|
344
332
|
}
|
|
345
333
|
|
|
346
334
|
// src/components/tickets/ticket-reply-composer.tsx
|
|
347
|
-
|
|
335
|
+
_chunkFQOTC3UUcjs.init_button2.call(void 0, );
|
|
348
336
|
|
|
349
337
|
|
|
350
338
|
function TicketReplyComposer({
|
|
@@ -356,7 +344,7 @@ function TicketReplyComposer({
|
|
|
356
344
|
}) {
|
|
357
345
|
const [resolution, setResolution] = _react.useState.call(void 0, "");
|
|
358
346
|
const [closeDialogOpen, setCloseDialogOpen] = _react.useState.call(void 0, false);
|
|
359
|
-
const attachments =
|
|
347
|
+
const attachments = _chunkGUTS7HGAcjs.useChatAttachments.call(void 0, );
|
|
360
348
|
const ticketRef = { id: ticket.id, external_id: ticket.external_id };
|
|
361
349
|
const hasReadyFiles = attachments.readyAttachments.length > 0;
|
|
362
350
|
const handleSend = _react.useCallback.call(void 0,
|
|
@@ -384,7 +372,7 @@ function TicketReplyComposer({
|
|
|
384
372
|
const disabled = busy || supportSystemDown;
|
|
385
373
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2", children: [
|
|
386
374
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
387
|
-
|
|
375
|
+
_chunkGUTS7HGAcjs.ChatAttachmentChipStrip,
|
|
388
376
|
{
|
|
389
377
|
attachments: attachments.attachments,
|
|
390
378
|
onRemove: attachments.removeAttachment,
|
|
@@ -393,7 +381,7 @@ function TicketReplyComposer({
|
|
|
393
381
|
}
|
|
394
382
|
),
|
|
395
383
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
396
|
-
|
|
384
|
+
_chunkGUTS7HGAcjs.ChatInput,
|
|
397
385
|
{
|
|
398
386
|
fullWidth: true,
|
|
399
387
|
autoFocus: true,
|
|
@@ -407,7 +395,7 @@ function TicketReplyComposer({
|
|
|
407
395
|
),
|
|
408
396
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2 w-full", children: [
|
|
409
397
|
!supportSystemDown && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
410
|
-
|
|
398
|
+
_chunkGUTS7HGAcjs.ChatAttachmentAddButton,
|
|
411
399
|
{
|
|
412
400
|
attachmentsEnabled: true,
|
|
413
401
|
attachmentsCount: attachments.attachments.length,
|
|
@@ -418,7 +406,7 @@ function TicketReplyComposer({
|
|
|
418
406
|
),
|
|
419
407
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1 min-w-0" }),
|
|
420
408
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
421
|
-
|
|
409
|
+
_chunkFQOTC3UUcjs.Button,
|
|
422
410
|
{
|
|
423
411
|
type: "button",
|
|
424
412
|
variant: "transparent",
|
|
@@ -430,13 +418,13 @@ function TicketReplyComposer({
|
|
|
430
418
|
}
|
|
431
419
|
)
|
|
432
420
|
] }),
|
|
433
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
434
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
435
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
436
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
421
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGUTS7HGAcjs.AlertDialog, { open: closeDialogOpen, onOpenChange: setCloseDialogOpen, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkGUTS7HGAcjs.AlertDialogContent, { className: "bg-ods-card border-ods-border", children: [
|
|
422
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkGUTS7HGAcjs.AlertDialogHeader, { children: [
|
|
423
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGUTS7HGAcjs.AlertDialogTitle, { className: "text-ods-text-primary", children: "Close this ticket?" }),
|
|
424
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGUTS7HGAcjs.AlertDialogDescription, { className: "text-ods-text-secondary", children: "Add an optional resolution note below. You can reopen the ticket later if needed." })
|
|
437
425
|
] }),
|
|
438
426
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
439
|
-
|
|
427
|
+
_chunkGUTS7HGAcjs.Textarea,
|
|
440
428
|
{
|
|
441
429
|
value: resolution,
|
|
442
430
|
onChange: (e) => setResolution(e.target.value),
|
|
@@ -446,9 +434,9 @@ function TicketReplyComposer({
|
|
|
446
434
|
className: "mt-2"
|
|
447
435
|
}
|
|
448
436
|
),
|
|
449
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
437
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkGUTS7HGAcjs.AlertDialogFooter, { children: [
|
|
450
438
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
451
|
-
|
|
439
|
+
_chunkGUTS7HGAcjs.AlertDialogCancel,
|
|
452
440
|
{
|
|
453
441
|
disabled: busy,
|
|
454
442
|
className: "bg-transparent border-ods-border text-ods-text-primary hover:bg-ods-border",
|
|
@@ -456,7 +444,7 @@ function TicketReplyComposer({
|
|
|
456
444
|
}
|
|
457
445
|
),
|
|
458
446
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
459
|
-
|
|
447
|
+
_chunkGUTS7HGAcjs.AlertDialogAction,
|
|
460
448
|
{
|
|
461
449
|
onClick: () => void confirmClose(),
|
|
462
450
|
disabled: busy,
|
|
@@ -526,7 +514,7 @@ var TICKET_FEED_HEIGHT = "h-[60vh] md:h-[420px]";
|
|
|
526
514
|
var TICKET_FEED_INNER = "flex flex-col gap-4 md:gap-6 px-4 md:px-6 py-4 md:py-6";
|
|
527
515
|
var TICKET_FEED_SKELETON_ROWS = 6;
|
|
528
516
|
function TicketTimelinePanel({ ticket }) {
|
|
529
|
-
const identity =
|
|
517
|
+
const identity = _chunkGUTS7HGAcjs.useChatIdentity.call(void 0, );
|
|
530
518
|
const externalId = isOptimistic(ticket) ? null : ticket.external_id;
|
|
531
519
|
const { engagements, isLoading } = useTicketEngagements(
|
|
532
520
|
externalId,
|
|
@@ -546,11 +534,11 @@ function TicketTimelinePanel({ ticket }) {
|
|
|
546
534
|
const customerName = (isViewerTheCustomer ? viewerName : null) || ticketCustomerName || viewerName || _optionalChain([identity, 'access', _19 => _19.user, 'optionalAccess', _20 => _20.email]) || "You";
|
|
547
535
|
const customerAvatar = isViewerTheCustomer ? _nullishCoalesce(_optionalChain([identity, 'access', _21 => _21.user, 'optionalAccess', _22 => _22.avatarUrl]), () => ( void 0)) : void 0;
|
|
548
536
|
if (isLoading) {
|
|
549
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `${TICKET_FEED_FRAME} ${TICKET_FEED_HEIGHT}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: TICKET_FEED_INNER, children: Array.from({ length: TICKET_FEED_SKELETON_ROWS }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
537
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `${TICKET_FEED_FRAME} ${TICKET_FEED_HEIGHT}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: TICKET_FEED_INNER, children: Array.from({ length: TICKET_FEED_SKELETON_ROWS }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGUTS7HGAcjs.ChatMessageRowSkeleton, {}, i)) }) });
|
|
550
538
|
}
|
|
551
539
|
if (bodyTurns.length === 0 && engagements.length === 0) {
|
|
552
540
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
553
|
-
|
|
541
|
+
_chunkUNVE2SDJcjs.EmptyState,
|
|
554
542
|
{
|
|
555
543
|
type: "generic",
|
|
556
544
|
title: "No conversation yet",
|
|
@@ -565,7 +553,7 @@ function TicketTimelinePanel({ ticket }) {
|
|
|
565
553
|
const isResolution = turn.startsWith("[Resolution]");
|
|
566
554
|
const text = isResolution ? turn.replace(/^\[Resolution\]\s*/, "") : turn;
|
|
567
555
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
568
|
-
|
|
556
|
+
_chunkGUTS7HGAcjs.ChatMessageRow,
|
|
569
557
|
{
|
|
570
558
|
displayName: customerName,
|
|
571
559
|
avatarUrl: customerAvatar,
|
|
@@ -594,13 +582,13 @@ function TicketTimelinePanel({ ticket }) {
|
|
|
594
582
|
}
|
|
595
583
|
const engAttachments = mapEngagementAttachments(eng.attachments);
|
|
596
584
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
597
|
-
|
|
585
|
+
_chunkGUTS7HGAcjs.ChatMessageRow,
|
|
598
586
|
{
|
|
599
587
|
displayName: author,
|
|
600
588
|
avatarUrl: avatarSrc,
|
|
601
|
-
timeLabel: eng.createdAt ?
|
|
589
|
+
timeLabel: eng.createdAt ? _chunkGUTS7HGAcjs.formatRelativeTime.call(void 0, eng.createdAt) : null,
|
|
602
590
|
body: stripAttachmentsPreamble(_nullishCoalesce(eng.body, () => ( ""))),
|
|
603
|
-
footer: engAttachments.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
591
|
+
footer: engAttachments.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGUTS7HGAcjs.TicketAttachmentsList, { attachments: engAttachments, size: "compact" }) }) : null
|
|
604
592
|
},
|
|
605
593
|
eng.id
|
|
606
594
|
);
|
|
@@ -639,7 +627,7 @@ function ReopenAction({
|
|
|
639
627
|
void await onReopen(ticketRef);
|
|
640
628
|
};
|
|
641
629
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex justify-end", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
642
|
-
|
|
630
|
+
_chunkFQOTC3UUcjs.Button,
|
|
643
631
|
{
|
|
644
632
|
type: "button",
|
|
645
633
|
variant: "outline",
|
|
@@ -664,7 +652,7 @@ function ReplyFailureBanner({
|
|
|
664
652
|
children: [
|
|
665
653
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "font-medium leading-snug", children: error.message }),
|
|
666
654
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
667
|
-
|
|
655
|
+
_chunkFQOTC3UUcjs.Button,
|
|
668
656
|
{
|
|
669
657
|
type: "button",
|
|
670
658
|
variant: "transparent",
|
|
@@ -688,7 +676,7 @@ function AssignedAgentRow({
|
|
|
688
676
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary uppercase tracking-wider font-medium", children: "Assigned to" }),
|
|
689
677
|
displayLabel ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-1.5 text-ods-text-primary font-medium", children: [
|
|
690
678
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
691
|
-
|
|
679
|
+
_chunkGUTS7HGAcjs.SquareAvatar,
|
|
692
680
|
{
|
|
693
681
|
size: "sm",
|
|
694
682
|
variant: "round",
|
|
@@ -720,7 +708,7 @@ function TicketRow({
|
|
|
720
708
|
const rowRef = _react.useRef.call(void 0, null);
|
|
721
709
|
const handleClick = _react.useCallback.call(void 0, () => {
|
|
722
710
|
onToggle(ticket.id);
|
|
723
|
-
|
|
711
|
+
_chunkWMSTJAZTcjs.scrollElementIntoView.call(void 0, rowRef.current, {
|
|
724
712
|
adjustTargetY: (raw) => {
|
|
725
713
|
if (!rowRef.current) return raw;
|
|
726
714
|
const expandedDrawer = document.querySelector(
|
|
@@ -746,7 +734,7 @@ function TicketRow({
|
|
|
746
734
|
// so the badge accurately reflects "Closed" with a checkmark.
|
|
747
735
|
statusLabel: _nullishCoalesce(ticket.pipeline_stage_label, () => ( void 0)),
|
|
748
736
|
category: _nullishCoalesce(ticket.customer_company, () => ( void 0)),
|
|
749
|
-
timeAgo: ticket.hubspot_updated_at ?
|
|
737
|
+
timeAgo: ticket.hubspot_updated_at ? _chunkGUTS7HGAcjs.formatRelativeTime.call(void 0, ticket.hubspot_updated_at) : void 0,
|
|
750
738
|
// Linked-work chip: surfaced whenever the ticket has a linked
|
|
751
739
|
// ClickUp task. Uses the linked task's own status so the chip text
|
|
752
740
|
// reads "Working" / "Waiting on version release" / etc. — useful
|
|
@@ -761,7 +749,7 @@ function TicketRow({
|
|
|
761
749
|
className: "border-b border-ods-border last:border-b-0",
|
|
762
750
|
children: [
|
|
763
751
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
764
|
-
|
|
752
|
+
_chunkGUTS7HGAcjs.ChatTicketItem,
|
|
765
753
|
{
|
|
766
754
|
ticket: tileData,
|
|
767
755
|
onClick: optimistic ? void 0 : handleClick,
|
|
@@ -798,7 +786,7 @@ function TicketRow({
|
|
|
798
786
|
var FIND_TICKET_ENDPOINT = "/api/chat/agent/find-ticket";
|
|
799
787
|
var DEFAULT_PAGE_SIZE = 20;
|
|
800
788
|
function useTicketsList(filters) {
|
|
801
|
-
const findTicketEndpoint = _nullishCoalesce(
|
|
789
|
+
const findTicketEndpoint = _nullishCoalesce(_chunkL6PSSIUQcjs.useRequiredChatRuntime.call(void 0, ).endpoints.findTicketUrl, () => ( FIND_TICKET_ENDPOINT));
|
|
802
790
|
const customerEmail = filters.customerEmail;
|
|
803
791
|
const search = (_nullishCoalesce(filters.search, () => ( ""))).trim();
|
|
804
792
|
const status = (_nullishCoalesce(filters.status, () => ( ""))).trim().toLowerCase();
|
|
@@ -831,7 +819,7 @@ function useTicketsList(filters) {
|
|
|
831
819
|
pageSize
|
|
832
820
|
};
|
|
833
821
|
if (statusFilter) body.status = statusFilter;
|
|
834
|
-
const response = await
|
|
822
|
+
const response = await _chunkWMSTJAZTcjs.embedAuthedFetch.call(void 0, findTicketEndpoint, {
|
|
835
823
|
method: "POST",
|
|
836
824
|
body: JSON.stringify(body)
|
|
837
825
|
});
|
|
@@ -897,7 +885,7 @@ var REPLY_BANNER_CODES = /* @__PURE__ */ new Set([
|
|
|
897
885
|
var MIRROR_SYNC_BACKOFF_MS = [3e3, 6e3, 12e3];
|
|
898
886
|
function useTicketActions(options) {
|
|
899
887
|
const queryClient = _reactquery.useQueryClient.call(void 0, );
|
|
900
|
-
const ticketActionEndpoint = _nullishCoalesce(
|
|
888
|
+
const ticketActionEndpoint = _nullishCoalesce(_chunkL6PSSIUQcjs.useRequiredChatRuntime.call(void 0, ).endpoints.ticketActionUrl, () => ( TICKET_ACTION_ENDPOINT));
|
|
901
889
|
const { prependOptimistic, removeOptimistic, removeTicketFromCache, toast: toast2, onSupportSystemDown } = options;
|
|
902
890
|
const formInFlightRef = _react.useRef.call(void 0, false);
|
|
903
891
|
const [isSubmittingForm, setIsSubmittingForm] = _react.useState.call(void 0, false);
|
|
@@ -946,7 +934,7 @@ function useTicketActions(options) {
|
|
|
946
934
|
}, []);
|
|
947
935
|
const executeTicketAction = _react.useCallback.call(void 0,
|
|
948
936
|
async (toolName, args) => {
|
|
949
|
-
const res = await
|
|
937
|
+
const res = await _chunkWMSTJAZTcjs.embedAuthedFetch.call(void 0, ticketActionEndpoint, {
|
|
950
938
|
method: "POST",
|
|
951
939
|
body: JSON.stringify({ tool_name: toolName, args })
|
|
952
940
|
});
|
|
@@ -1330,14 +1318,14 @@ function resolveErrorCode(bodyCode, status) {
|
|
|
1330
1318
|
|
|
1331
1319
|
// src/components/tickets/ticket-center.tsx
|
|
1332
1320
|
|
|
1333
|
-
function TicketCenter({ toast: toast2 =
|
|
1334
|
-
const identity =
|
|
1321
|
+
function TicketCenter({ toast: toast2 = _chunkWMSTJAZTcjs.toast } = {}) {
|
|
1322
|
+
const identity = _chunkGUTS7HGAcjs.useChatIdentity.call(void 0, );
|
|
1335
1323
|
if (identity.isLoading) {
|
|
1336
1324
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketCenterSkeleton, {});
|
|
1337
1325
|
}
|
|
1338
1326
|
if (identity.authTier === "anon" || !_optionalChain([identity, 'access', _58 => _58.user, 'optionalAccess', _59 => _59.email])) {
|
|
1339
1327
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1340
|
-
|
|
1328
|
+
_chunkUNVE2SDJcjs.EmptyState,
|
|
1341
1329
|
{
|
|
1342
1330
|
type: "generic",
|
|
1343
1331
|
title: "Sign in to manage tickets",
|
|
@@ -1408,10 +1396,10 @@ function TicketCenterAuthed({
|
|
|
1408
1396
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3 text-xs text-ods-text-secondary", children: [
|
|
1409
1397
|
lastUpdatedAt && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { children: [
|
|
1410
1398
|
"Updated ",
|
|
1411
|
-
|
|
1399
|
+
_chunkGUTS7HGAcjs.formatRelativeTime.call(void 0, new Date(lastUpdatedAt))
|
|
1412
1400
|
] }),
|
|
1413
1401
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1414
|
-
|
|
1402
|
+
_chunkFQOTC3UUcjs.Button,
|
|
1415
1403
|
{
|
|
1416
1404
|
type: "button",
|
|
1417
1405
|
variant: "transparent",
|
|
@@ -1424,18 +1412,18 @@ function TicketCenterAuthed({
|
|
|
1424
1412
|
)
|
|
1425
1413
|
] })
|
|
1426
1414
|
] }),
|
|
1427
|
-
isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketListSkeleton, {}) : merged.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1428
|
-
|
|
1415
|
+
isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketListSkeleton, {}) : merged.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGUTS7HGAcjs.Card, { className: "p-6", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1416
|
+
_chunkUNVE2SDJcjs.EmptyState,
|
|
1429
1417
|
{
|
|
1430
1418
|
type: "generic",
|
|
1431
1419
|
title: "No tickets yet",
|
|
1432
1420
|
description: "Open one above to start the conversation.",
|
|
1433
1421
|
showCTA: false
|
|
1434
1422
|
}
|
|
1435
|
-
) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1423
|
+
) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGUTS7HGAcjs.Card, { className: "overflow-hidden", children: merged.map((ticket) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1436
1424
|
TicketRow,
|
|
1437
1425
|
{
|
|
1438
|
-
id:
|
|
1426
|
+
id: _chunkGUTS7HGAcjs.devSectionAnchorId.call(void 0, "ticket", ticket.external_id),
|
|
1439
1427
|
ticket,
|
|
1440
1428
|
expanded: expandedTicketId === ticket.id,
|
|
1441
1429
|
onToggle: toggleRow,
|
|
@@ -1453,29 +1441,29 @@ function TicketCenterAuthed({
|
|
|
1453
1441
|
}
|
|
1454
1442
|
function TicketCenterSkeleton() {
|
|
1455
1443
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-6", children: [
|
|
1456
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1457
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1458
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1459
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1444
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkGUTS7HGAcjs.Card, { className: "p-6", children: [
|
|
1445
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-7 w-48 mb-4" }),
|
|
1446
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-10 w-full mb-3" }),
|
|
1447
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-24 w-full" })
|
|
1460
1448
|
] }),
|
|
1461
1449
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketListSkeleton, {})
|
|
1462
1450
|
] });
|
|
1463
1451
|
}
|
|
1464
1452
|
function TicketListSkeleton() {
|
|
1465
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1453
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGUTS7HGAcjs.Card, { className: "overflow-hidden", children: [0, 1, 2].map((i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "h-20 px-4 flex items-center gap-4 border-b border-ods-border last:border-b-0", children: [
|
|
1466
1454
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 flex flex-col gap-2", children: [
|
|
1467
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1468
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1455
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-4 w-2/3" }),
|
|
1456
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-3 w-full" })
|
|
1469
1457
|
] }),
|
|
1470
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1471
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1458
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-8 w-20" }),
|
|
1459
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-8 w-16" })
|
|
1472
1460
|
] }, i)) });
|
|
1473
1461
|
}
|
|
1474
1462
|
|
|
1475
1463
|
// src/components/tickets/help-center-list.tsx
|
|
1476
1464
|
|
|
1477
1465
|
|
|
1478
|
-
|
|
1466
|
+
_chunkUNVE2SDJcjs.init_unified_pagination.call(void 0, );
|
|
1479
1467
|
|
|
1480
1468
|
// src/components/tickets/help-center-card.tsx
|
|
1481
1469
|
|
|
@@ -1497,7 +1485,7 @@ function HelpCenterCard({
|
|
|
1497
1485
|
const optimistic = isOptimistic(ticket);
|
|
1498
1486
|
const rawStatus = (_nullishCoalesce(ticket.status, () => ( "OPEN"))).toUpperCase();
|
|
1499
1487
|
const priority = (_nullishCoalesce(ticket.priority, () => ( ""))).toUpperCase();
|
|
1500
|
-
const relativeUpdated = ticket.hubspot_updated_at ?
|
|
1488
|
+
const relativeUpdated = ticket.hubspot_updated_at ? _chunkGUTS7HGAcjs.formatRelativeTime.call(void 0, ticket.hubspot_updated_at) : "recently";
|
|
1501
1489
|
const title = (ticket.subject || "").trim() || "(untitled)";
|
|
1502
1490
|
const subtitle = `UPDATED ${relativeUpdated}, #${ticket.external_id || "\u2014"}${ticket.pipeline_stage_label ? `, ${ticket.pipeline_stage_label}` : ""}`;
|
|
1503
1491
|
const description = _nullishCoalesce(_nullishCoalesce(ticket.preview, () => ( ticket.body)), () => ( ""));
|
|
@@ -1510,24 +1498,24 @@ function HelpCenterCard({
|
|
|
1510
1498
|
_react.useEffect.call(void 0, () => {
|
|
1511
1499
|
if (!isExpanded) return;
|
|
1512
1500
|
const raf = requestAnimationFrame(() => {
|
|
1513
|
-
|
|
1514
|
-
headerOffset:
|
|
1501
|
+
_chunkWMSTJAZTcjs.scrollElementIntoView.call(void 0, rowRef.current, {
|
|
1502
|
+
headerOffset: _chunkWMSTJAZTcjs.STICKY_HEADER_OFFSET_PX
|
|
1515
1503
|
});
|
|
1516
1504
|
});
|
|
1517
1505
|
return () => cancelAnimationFrame(raf);
|
|
1518
1506
|
}, [isExpanded]);
|
|
1519
1507
|
const rightBadges = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
1520
1508
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1521
|
-
|
|
1509
|
+
_chunkGUTS7HGAcjs.StatusBadge,
|
|
1522
1510
|
{
|
|
1523
1511
|
text: rawStatus,
|
|
1524
|
-
colorScheme:
|
|
1512
|
+
colorScheme: _chunkGUTS7HGAcjs.getStatusColorScheme.call(void 0, rawStatus),
|
|
1525
1513
|
variant: "card",
|
|
1526
1514
|
className: "border border-ods-border"
|
|
1527
1515
|
}
|
|
1528
1516
|
),
|
|
1529
1517
|
priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1530
|
-
|
|
1518
|
+
_chunkGUTS7HGAcjs.StatusBadge,
|
|
1531
1519
|
{
|
|
1532
1520
|
text: priority,
|
|
1533
1521
|
colorScheme: mapPriorityScheme(priority),
|
|
@@ -1541,7 +1529,7 @@ function HelpCenterCard({
|
|
|
1541
1529
|
{
|
|
1542
1530
|
ref: rowRef,
|
|
1543
1531
|
id,
|
|
1544
|
-
style: { scrollMarginTop:
|
|
1532
|
+
style: { scrollMarginTop: _chunkWMSTJAZTcjs.STICKY_HEADER_OFFSET_PX },
|
|
1545
1533
|
className: `border-b border-ods-border last:border-b-0 ${optimistic ? "opacity-60" : ""}`,
|
|
1546
1534
|
"aria-busy": optimistic || void 0,
|
|
1547
1535
|
children: [
|
|
@@ -1555,7 +1543,7 @@ function HelpCenterCard({
|
|
|
1555
1543
|
"aria-controls": isExpanded ? `help-center-drawer-${ticket.id}` : void 0,
|
|
1556
1544
|
className: "w-full text-left p-[12px] md:p-[16px] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent focus-visible:ring-inset disabled:cursor-default",
|
|
1557
1545
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1558
|
-
|
|
1546
|
+
_chunkUNVE2SDJcjs.DevCardRowContent,
|
|
1559
1547
|
{
|
|
1560
1548
|
title,
|
|
1561
1549
|
subtitle,
|
|
@@ -1630,12 +1618,12 @@ function HelpCenterCreateForm({
|
|
|
1630
1618
|
const [subject, setSubject] = _react.useState.call(void 0, "");
|
|
1631
1619
|
const [subjectError, setSubjectError] = _react.useState.call(void 0, null);
|
|
1632
1620
|
const subjectField = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
|
|
1633
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1621
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkGUTS7HGAcjs.Label, { htmlFor: "help-center-subject", children: [
|
|
1634
1622
|
"Subject",
|
|
1635
1623
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: "*" })
|
|
1636
1624
|
] }),
|
|
1637
1625
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1638
|
-
|
|
1626
|
+
_chunkFQOTC3UUcjs.Input,
|
|
1639
1627
|
{
|
|
1640
1628
|
id: "help-center-subject",
|
|
1641
1629
|
type: "text",
|
|
@@ -1662,7 +1650,7 @@ function HelpCenterCreateForm({
|
|
|
1662
1650
|
)
|
|
1663
1651
|
] });
|
|
1664
1652
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1665
|
-
|
|
1653
|
+
_chunkYBYI62OEcjs.ContactForm,
|
|
1666
1654
|
{
|
|
1667
1655
|
title: "Open a new ticket",
|
|
1668
1656
|
footerText: "The support team typically responds within one business day.",
|
|
@@ -1699,8 +1687,8 @@ function HelpCenterCreateForm({
|
|
|
1699
1687
|
|
|
1700
1688
|
// src/components/tickets/help-center-list.tsx
|
|
1701
1689
|
|
|
1702
|
-
function HelpCenterList({ toast: toast2 =
|
|
1703
|
-
const identity =
|
|
1690
|
+
function HelpCenterList({ toast: toast2 = _chunkWMSTJAZTcjs.toast, backButton } = {}) {
|
|
1691
|
+
const identity = _chunkGUTS7HGAcjs.useChatIdentity.call(void 0, );
|
|
1704
1692
|
const searchParams = _chunkG7UE6RKVcjs.useSearchParams.call(void 0, );
|
|
1705
1693
|
const router = _chunkG7UE6RKVcjs.useRouter.call(void 0, );
|
|
1706
1694
|
const pathname = _chunkG7UE6RKVcjs.usePathname.call(void 0, );
|
|
@@ -1710,11 +1698,11 @@ function HelpCenterList({ toast: toast2 = _chunk5E2HOSSHcjs.toast, backButton }
|
|
|
1710
1698
|
const rawPage = Number(searchParams.get("page"));
|
|
1711
1699
|
const page = Number.isFinite(rawPage) && rawPage > 0 ? Math.floor(rawPage) : 1;
|
|
1712
1700
|
if (identity.isLoading) {
|
|
1713
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1701
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUNVE2SDJcjs.DevSectionPage, { sectionKey: "tickets", backButton, preControls: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HelpCenterCreateFormSkeleton, {}), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUNVE2SDJcjs.DevCardRowSkeletonList, {}) });
|
|
1714
1702
|
}
|
|
1715
1703
|
if (identity.authTier === "anon" || !_optionalChain([identity, 'access', _60 => _60.user, 'optionalAccess', _61 => _61.email])) {
|
|
1716
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1717
|
-
|
|
1704
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUNVE2SDJcjs.DevSectionPage, { sectionKey: "tickets", backButton, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1705
|
+
_chunkUNVE2SDJcjs.EmptyState,
|
|
1718
1706
|
{
|
|
1719
1707
|
type: "generic",
|
|
1720
1708
|
title: "Sign in to manage tickets",
|
|
@@ -1822,7 +1810,7 @@ function HelpCenterListAuthed({
|
|
|
1822
1810
|
[tickets, ticketParam, setOpenTicket]
|
|
1823
1811
|
);
|
|
1824
1812
|
const merged = [...optimisticTickets, ...tickets];
|
|
1825
|
-
|
|
1813
|
+
_chunkWMSTJAZTcjs.useScrollToHash.call(void 0, tickets, { headerOffset: _chunkWMSTJAZTcjs.STICKY_HEADER_OFFSET_PX });
|
|
1826
1814
|
const hasActiveFilters = search !== "" || status !== "" && status !== "all";
|
|
1827
1815
|
const hasResults = merged.length > 0;
|
|
1828
1816
|
const form = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -1840,17 +1828,17 @@ function HelpCenterListAuthed({
|
|
|
1840
1828
|
"Couldn\u2019t load your tickets. ",
|
|
1841
1829
|
error.message
|
|
1842
1830
|
] }),
|
|
1843
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1831
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Button, { type: "button", variant: "accent", onClick: () => refetch(), children: "Retry" })
|
|
1844
1832
|
] }),
|
|
1845
|
-
!error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1833
|
+
!error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUNVE2SDJcjs.DevCardRowSkeletonList, {}) : !hasResults && isFetching ? (
|
|
1846
1834
|
// Bridge state — background refetch in flight and the
|
|
1847
1835
|
// optimistic placeholder was just removed by the mutation
|
|
1848
1836
|
// callback. Without this branch "No tickets yet" would flash
|
|
1849
1837
|
// for ~50ms between `removeOptimistic` and the server
|
|
1850
1838
|
// response landing.
|
|
1851
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1839
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUNVE2SDJcjs.DevCardRowSkeletonList, { rows: 1 })
|
|
1852
1840
|
) : !hasResults ? hasActiveFilters ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1853
|
-
|
|
1841
|
+
_chunkUNVE2SDJcjs.EmptyState,
|
|
1854
1842
|
{
|
|
1855
1843
|
type: "search",
|
|
1856
1844
|
title: "No tickets found",
|
|
@@ -1865,7 +1853,7 @@ function HelpCenterListAuthed({
|
|
|
1865
1853
|
}
|
|
1866
1854
|
}
|
|
1867
1855
|
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1868
|
-
|
|
1856
|
+
_chunkUNVE2SDJcjs.EmptyState,
|
|
1869
1857
|
{
|
|
1870
1858
|
type: "generic",
|
|
1871
1859
|
title: "No tickets yet",
|
|
@@ -1884,7 +1872,7 @@ function HelpCenterListAuthed({
|
|
|
1884
1872
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-card border border-ods-border rounded-[6px] overflow-clip w-full", children: merged.map((ticket) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1885
1873
|
HelpCenterCard,
|
|
1886
1874
|
{
|
|
1887
|
-
id:
|
|
1875
|
+
id: _chunkGUTS7HGAcjs.devSectionAnchorId.call(void 0, "ticket", ticket.external_id),
|
|
1888
1876
|
ticket,
|
|
1889
1877
|
expanded: expandedTicketId === ticket.id,
|
|
1890
1878
|
onToggle: toggleRow,
|
|
@@ -1900,9 +1888,9 @@ function HelpCenterListAuthed({
|
|
|
1900
1888
|
ticket.id
|
|
1901
1889
|
)) })
|
|
1902
1890
|
) }),
|
|
1903
|
-
!error && totalPages > 1 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1891
|
+
!error && totalPages > 1 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUNVE2SDJcjs.UnifiedPagination, { currentPage: page, totalPages })
|
|
1904
1892
|
] });
|
|
1905
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1893
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUNVE2SDJcjs.DevSectionPage, { sectionKey: "tickets", backButton, preControls: form, children: body });
|
|
1906
1894
|
}
|
|
1907
1895
|
|
|
1908
1896
|
|