@arbidocs/blocks 0.5.20 → 0.5.21

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 (183) hide show
  1. package/dist/{ConnectedNativeDocxComparison-KUDFJ3GG.js → ConnectedNativeDocxComparison-4X7H57LE.js} +9 -9
  2. package/dist/{ConnectedStreamedWordArtifact-JD2XZCYP.js.map → ConnectedNativeDocxComparison-4X7H57LE.js.map} +1 -1
  3. package/dist/{ConnectedNativeDocxComparison-FUNR66KP.cjs → ConnectedNativeDocxComparison-7WTVHEKI.cjs} +10 -10
  4. package/dist/{ConnectedNativeDocxComparison-FUNR66KP.cjs.map → ConnectedNativeDocxComparison-7WTVHEKI.cjs.map} +1 -1
  5. package/dist/{ConnectedNativeDocxEditor-G6R3SFZ3.js → ConnectedNativeDocxEditor-I6RQUSR3.js} +7 -7
  6. package/dist/{ConnectedNativeDocxEditor-G6R3SFZ3.js.map → ConnectedNativeDocxEditor-I6RQUSR3.js.map} +1 -1
  7. package/dist/{ConnectedNativeDocxEditor-XVCAXAAU.cjs → ConnectedNativeDocxEditor-PZ2ASQO3.cjs} +9 -9
  8. package/dist/{ConnectedNativeDocxEditor-XVCAXAAU.cjs.map → ConnectedNativeDocxEditor-PZ2ASQO3.cjs.map} +1 -1
  9. package/dist/{ConnectedStreamedWordArtifact-JD2XZCYP.js → ConnectedStreamedWordArtifact-KCYSJ3B2.js} +9 -9
  10. package/dist/{ConnectedNativeDocxComparison-KUDFJ3GG.js.map → ConnectedStreamedWordArtifact-KCYSJ3B2.js.map} +1 -1
  11. package/dist/{ConnectedStreamedWordArtifact-P55WP3MC.cjs → ConnectedStreamedWordArtifact-Q5KC4W7O.cjs} +10 -10
  12. package/dist/ConnectedStreamedWordArtifact-Q5KC4W7O.cjs.map +1 -0
  13. package/dist/{NativeDocxEditor-6O7UMP7Y.cjs → NativeDocxEditor-JUTTA46L.cjs} +8 -8
  14. package/dist/{NativeDocxEditor-6O7UMP7Y.cjs.map → NativeDocxEditor-JUTTA46L.cjs.map} +1 -1
  15. package/dist/{NativeDocxEditor-MHO7LF4E.js → NativeDocxEditor-PSC3JWWA.js} +4 -4
  16. package/dist/{NativeDocxEditor-MHO7LF4E.js.map → NativeDocxEditor-PSC3JWWA.js.map} +1 -1
  17. package/dist/{WorkspaceTableView-UR3WLSJG.cjs → WorkspaceTableView-6JVHGDUB.cjs} +8 -8
  18. package/dist/{WorkspaceTableView-UR3WLSJG.cjs.map → WorkspaceTableView-6JVHGDUB.cjs.map} +1 -1
  19. package/dist/{WorkspaceTableView-TNUEU6OO.js → WorkspaceTableView-ECPHGWHF.js} +6 -6
  20. package/dist/{WorkspaceTableView-TNUEU6OO.js.map → WorkspaceTableView-ECPHGWHF.js.map} +1 -1
  21. package/dist/agents/index.cjs +326 -326
  22. package/dist/agents/index.js +4 -4
  23. package/dist/auth/index.cjs +44 -44
  24. package/dist/auth/index.js +2 -2
  25. package/dist/auth0/index.cjs +4 -3
  26. package/dist/auth0/index.cjs.map +1 -1
  27. package/dist/auth0/index.js +4 -3
  28. package/dist/auth0/index.js.map +1 -1
  29. package/dist/{chunk-BQNDBWLB.js → chunk-4ML5AMMO.js} +3 -3
  30. package/dist/{chunk-BQNDBWLB.js.map → chunk-4ML5AMMO.js.map} +1 -1
  31. package/dist/{chunk-ODFDMORE.cjs → chunk-4S34OHJX.cjs} +4 -4
  32. package/dist/{chunk-ODFDMORE.cjs.map → chunk-4S34OHJX.cjs.map} +1 -1
  33. package/dist/{chunk-QS3AJ3FT.cjs → chunk-5H37UWWS.cjs} +5 -5
  34. package/dist/{chunk-QS3AJ3FT.cjs.map → chunk-5H37UWWS.cjs.map} +1 -1
  35. package/dist/{chunk-2FQ4CMRY.cjs → chunk-5ZU2XYXO.cjs} +278 -4
  36. package/dist/chunk-5ZU2XYXO.cjs.map +1 -0
  37. package/dist/{chunk-JS7KJRKG.js → chunk-75Z5AUMM.js} +3 -3
  38. package/dist/{chunk-JS7KJRKG.js.map → chunk-75Z5AUMM.js.map} +1 -1
  39. package/dist/chunk-BITGO5LI.cjs +18 -0
  40. package/dist/{chunk-WDCD3OZH.cjs.map → chunk-BITGO5LI.cjs.map} +1 -1
  41. package/dist/{chunk-E2SKI6VO.js → chunk-D3BHUDOU.js} +3 -3
  42. package/dist/{chunk-E2SKI6VO.js.map → chunk-D3BHUDOU.js.map} +1 -1
  43. package/dist/{chunk-WJZK5GAV.js → chunk-DTENNALR.js} +3 -3
  44. package/dist/{chunk-WJZK5GAV.js.map → chunk-DTENNALR.js.map} +1 -1
  45. package/dist/{chunk-P5RZPEHW.cjs → chunk-F2BYURQZ.cjs} +5 -5
  46. package/dist/{chunk-P5RZPEHW.cjs.map → chunk-F2BYURQZ.cjs.map} +1 -1
  47. package/dist/{chunk-HNGGKANF.js → chunk-F6LC2CRB.js} +5 -5
  48. package/dist/{chunk-HNGGKANF.js.map → chunk-F6LC2CRB.js.map} +1 -1
  49. package/dist/{chunk-MBRUUST5.js → chunk-F7IQGPZH.js} +4 -4
  50. package/dist/{chunk-MBRUUST5.js.map → chunk-F7IQGPZH.js.map} +1 -1
  51. package/dist/{chunk-X2SQZY7U.js → chunk-FERNQVSH.js} +274 -8
  52. package/dist/chunk-FERNQVSH.js.map +1 -0
  53. package/dist/{chunk-KBSKN3NF.cjs → chunk-FQIJICZE.cjs} +9 -9
  54. package/dist/{chunk-KBSKN3NF.cjs.map → chunk-FQIJICZE.cjs.map} +1 -1
  55. package/dist/{chunk-SSJLYCX7.cjs → chunk-FV32BTXV.cjs} +84 -56
  56. package/dist/chunk-FV32BTXV.cjs.map +1 -0
  57. package/dist/{chunk-2YZ35KKK.cjs → chunk-FZVAJFRH.cjs} +80 -84
  58. package/dist/chunk-FZVAJFRH.cjs.map +1 -0
  59. package/dist/{chunk-HHJALHRS.js → chunk-H5XHCIWY.js} +83 -55
  60. package/dist/chunk-H5XHCIWY.js.map +1 -0
  61. package/dist/{chunk-TBNXJHTP.js → chunk-IA5BYEO7.js} +7 -5
  62. package/dist/chunk-IA5BYEO7.js.map +1 -0
  63. package/dist/{chunk-NFTANEP6.cjs → chunk-IJQ5DIZT.cjs} +5 -5
  64. package/dist/{chunk-NFTANEP6.cjs.map → chunk-IJQ5DIZT.cjs.map} +1 -1
  65. package/dist/{chunk-NMZI3K6R.cjs → chunk-IRY63R4L.cjs} +16 -2
  66. package/dist/chunk-IRY63R4L.cjs.map +1 -0
  67. package/dist/{chunk-MVP7METT.js → chunk-IXBJEQH5.js} +4 -80
  68. package/dist/chunk-IXBJEQH5.js.map +1 -0
  69. package/dist/{chunk-PAKPD3LB.js → chunk-JKJI5SRF.js} +3 -3
  70. package/dist/{chunk-PAKPD3LB.js.map → chunk-JKJI5SRF.js.map} +1 -1
  71. package/dist/{chunk-EWRRV37Z.cjs → chunk-K237IYOD.cjs} +2 -80
  72. package/dist/chunk-K237IYOD.cjs.map +1 -0
  73. package/dist/chunk-KL6XOSEN.js +156 -0
  74. package/dist/chunk-KL6XOSEN.js.map +1 -0
  75. package/dist/{chunk-TRDY3ZT7.js → chunk-LU23I2HS.js} +3 -3
  76. package/dist/{chunk-TRDY3ZT7.js.map → chunk-LU23I2HS.js.map} +1 -1
  77. package/dist/{chunk-SAYEQE5R.cjs → chunk-MJT7KHHT.cjs} +48 -48
  78. package/dist/{chunk-SAYEQE5R.cjs.map → chunk-MJT7KHHT.cjs.map} +1 -1
  79. package/dist/chunk-MSCDYRSA.cjs +18 -0
  80. package/dist/{chunk-JPNFVDH4.cjs.map → chunk-MSCDYRSA.cjs.map} +1 -1
  81. package/dist/chunk-MSPNYW6Z.cjs +165 -0
  82. package/dist/chunk-MSPNYW6Z.cjs.map +1 -0
  83. package/dist/{chunk-2R3GGNPA.js → chunk-MZA7GMOH.js} +16 -3
  84. package/dist/chunk-MZA7GMOH.js.map +1 -0
  85. package/dist/{chunk-4UGVMOTK.cjs → chunk-NML42O7Q.cjs} +4 -4
  86. package/dist/{chunk-4UGVMOTK.cjs.map → chunk-NML42O7Q.cjs.map} +1 -1
  87. package/dist/{chunk-YKGZG353.js → chunk-NVRJ6WTR.js} +3 -3
  88. package/dist/{chunk-YKGZG353.js.map → chunk-NVRJ6WTR.js.map} +1 -1
  89. package/dist/{chunk-ZW4QFL3Y.cjs → chunk-PFVCOUU6.cjs} +13 -13
  90. package/dist/{chunk-ZW4QFL3Y.cjs.map → chunk-PFVCOUU6.cjs.map} +1 -1
  91. package/dist/{chunk-QLLV5UUI.cjs → chunk-PSIKUQYM.cjs} +5 -5
  92. package/dist/{chunk-QLLV5UUI.cjs.map → chunk-PSIKUQYM.cjs.map} +1 -1
  93. package/dist/{chunk-R53JJZNW.js → chunk-RVKVGS72.js} +76 -79
  94. package/dist/chunk-RVKVGS72.js.map +1 -0
  95. package/dist/{chunk-H32DV7XS.cjs → chunk-UAEYU2NN.cjs} +136 -2
  96. package/dist/chunk-UAEYU2NN.cjs.map +1 -0
  97. package/dist/{chunk-USZ32EKR.js → chunk-VFZLZSJ3.js} +4 -4
  98. package/dist/{chunk-USZ32EKR.js.map → chunk-VFZLZSJ3.js.map} +1 -1
  99. package/dist/{chunk-XRL4R2TT.js → chunk-WZ63HE2C.js} +136 -4
  100. package/dist/chunk-WZ63HE2C.js.map +1 -0
  101. package/dist/{chunk-F72ZD5Q2.cjs → chunk-YD3RN2FY.cjs} +3 -3
  102. package/dist/{chunk-F72ZD5Q2.cjs.map → chunk-YD3RN2FY.cjs.map} +1 -1
  103. package/dist/{chunk-VYFRW6NN.cjs → chunk-YRHQ7OLG.cjs} +3 -3
  104. package/dist/{chunk-VYFRW6NN.cjs.map → chunk-YRHQ7OLG.cjs.map} +1 -1
  105. package/dist/{chunk-PYJUIEYV.js → chunk-YT5OOFK3.js} +3 -3
  106. package/dist/{chunk-PYJUIEYV.js.map → chunk-YT5OOFK3.js.map} +1 -1
  107. package/dist/{chunk-XCL6ZCI5.js → chunk-Z6CAKLA5.js} +3 -3
  108. package/dist/{chunk-XCL6ZCI5.js.map → chunk-Z6CAKLA5.js.map} +1 -1
  109. package/dist/{chunk-RAYCOBF7.cjs → chunk-ZESMRGDV.cjs} +7 -5
  110. package/dist/chunk-ZESMRGDV.cjs.map +1 -0
  111. package/dist/{chunk-6FWUZGPF.js → chunk-ZMYK7XTS.js} +4 -4
  112. package/dist/{chunk-6FWUZGPF.js.map → chunk-ZMYK7XTS.js.map} +1 -1
  113. package/dist/connect/docx.cjs +13 -13
  114. package/dist/connect/docx.js +9 -9
  115. package/dist/connect/index.cjs +1138 -906
  116. package/dist/connect/index.cjs.map +1 -1
  117. package/dist/connect/index.d.ts +1 -0
  118. package/dist/connect/index.js +480 -249
  119. package/dist/connect/index.js.map +1 -1
  120. package/dist/connect/viewer.cjs +17 -17
  121. package/dist/connect/viewer.js +6 -6
  122. package/dist/connection/ConnectedAccountAccessBadge.d.ts +1 -0
  123. package/dist/connection/ConnectedSettings.d.ts +6 -2
  124. package/dist/connection/ConnectedSsoDisconnect.d.ts +2 -0
  125. package/dist/connection/auth/support.d.ts +1 -0
  126. package/dist/connection/auth/useLoginActions.d.ts +1 -1
  127. package/dist/connection/settings-page/ConnectedAccountSettings.d.ts +5 -1
  128. package/dist/document-tools/AdoptSignatureDialog.d.ts +3 -1
  129. package/dist/document-tools/index.cjs +20 -20
  130. package/dist/document-tools/index.js +3 -3
  131. package/dist/document-tools/viewer/index.cjs +10 -10
  132. package/dist/document-tools/viewer/index.js +3 -3
  133. package/dist/docx/index.cjs +51 -51
  134. package/dist/docx/index.js +4 -4
  135. package/dist/facts/index.cjs +55 -55
  136. package/dist/facts/index.js +3 -3
  137. package/dist/home/index.cjs +15 -16
  138. package/dist/home/index.cjs.map +1 -1
  139. package/dist/home/index.js +1 -2
  140. package/dist/home/index.js.map +1 -1
  141. package/dist/index.cjs +425 -425
  142. package/dist/index.js +7 -7
  143. package/dist/settings/IdentityVerification.d.ts +3 -1
  144. package/dist/settings/ProfileCard.d.ts +3 -1
  145. package/dist/settings/SettingsPanel.d.ts +6 -0
  146. package/dist/settings/SubscriptionParts.d.ts +0 -11
  147. package/dist/settings/index.cjs +162 -166
  148. package/dist/settings/index.d.ts +1 -1
  149. package/dist/settings/index.js +3 -3
  150. package/dist/workflow-canvas/index.cjs +17 -17
  151. package/dist/workflow-canvas/index.js +4 -4
  152. package/dist/workspaces/WorkspaceFormParts.d.ts +10 -2
  153. package/dist/workspaces/index.cjs +52 -287
  154. package/dist/workspaces/index.cjs.map +1 -1
  155. package/dist/workspaces/index.js +9 -268
  156. package/dist/workspaces/index.js.map +1 -1
  157. package/node_modules/@arbidocs/coedit/package.json +1 -1
  158. package/package.json +5 -5
  159. package/dist/ConnectedStreamedWordArtifact-P55WP3MC.cjs.map +0 -1
  160. package/dist/chunk-2FQ4CMRY.cjs.map +0 -1
  161. package/dist/chunk-2R3GGNPA.js.map +0 -1
  162. package/dist/chunk-2YZ35KKK.cjs.map +0 -1
  163. package/dist/chunk-5TDGVOR5.js +0 -142
  164. package/dist/chunk-5TDGVOR5.js.map +0 -1
  165. package/dist/chunk-6AXJBTHM.js +0 -77
  166. package/dist/chunk-6AXJBTHM.js.map +0 -1
  167. package/dist/chunk-EWRRV37Z.cjs.map +0 -1
  168. package/dist/chunk-H32DV7XS.cjs.map +0 -1
  169. package/dist/chunk-HHJALHRS.js.map +0 -1
  170. package/dist/chunk-JPNFVDH4.cjs +0 -18
  171. package/dist/chunk-MKNSIZWR.cjs +0 -84
  172. package/dist/chunk-MKNSIZWR.cjs.map +0 -1
  173. package/dist/chunk-MVP7METT.js.map +0 -1
  174. package/dist/chunk-NMZI3K6R.cjs.map +0 -1
  175. package/dist/chunk-R53JJZNW.js.map +0 -1
  176. package/dist/chunk-RAYCOBF7.cjs.map +0 -1
  177. package/dist/chunk-REH7PX3N.cjs +0 -145
  178. package/dist/chunk-REH7PX3N.cjs.map +0 -1
  179. package/dist/chunk-SSJLYCX7.cjs.map +0 -1
  180. package/dist/chunk-TBNXJHTP.js.map +0 -1
  181. package/dist/chunk-WDCD3OZH.cjs +0 -18
  182. package/dist/chunk-X2SQZY7U.js.map +0 -1
  183. package/dist/chunk-XRL4R2TT.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  "use client";
2
- export { AgentCard, AgentGallery, ConversationListView, ConversationTurnSpeaker, DEFAULT_AGENT_CARD_LABELS, DEFAULT_AGENT_GALLERY_LABELS, DEFAULT_SKILL_CARD_LABELS, DEFAULT_SKILL_ROW_LABELS, DEFAULT_TASKS_CHROME_LABELS, DEFAULT_TASK_LIST_LABELS, DEFAULT_TASK_OUTPUTS_CELL_LABELS, DEFAULT_TASK_STATUS_PILL_LABELS, DEFAULT_TASK_THREAD_CHIP_LABELS, DEFAULT_UPLOAD_TASK_ITEM_LABELS, DEFAULT_UPLOAD_TASK_LIST_LABELS, DEFAULT_WORKFLOWS_CHROME_LABELS, SkillCard, SkillRow, TASK_COLUMN_ORDER, TaskInbox, TaskMoveDialog, TaskOutputsCell, TaskStatusPill, TaskTable, TaskThreadChip, TasksToolbar, ThreadNotifyDialog, UploadTaskItem, UploadTaskList, WorkflowsToolbar, createTaskColumns, filterConversationRows, formatElapsed, useWorkflowPreview } from '../chunk-MBRUUST5.js';
3
- export { ANNOTATE, ANNOTATE_ID, AUTOMATION_EVENTS, ActionStepBody, AgentAvatarField, AgentBar, AgentBarIconButton, AgentBarMenu, AgentBarNotes, AgentBarProbeAnswer, AgentBarQueuedNote, AgentBarStatus, AgentConnectInstructions, AgentCreateView, AgentCreatedView, AgentCreator, AgentEditView, AgentMainView, AgentTypeSelector, ApprovalEvidence, AssigneeLine, AssistantEntity, BUILTIN_SKILLS, CHRONOLOGY, CHRONOLOGY_ID, CUSTOM_TASK, CUSTOM_TASK_ID, CapabilityGrid, CapabilityTile, ConfigField, ConfigForm, ConsentActions, ConsentBulletList, ConsentCard, ConsentFootnote, ConsentHeader, ConsentMessage, ConsentNotice, ConsentPage, ConsentPermissionList, ConsentSection, ConsentStrong, ConsentText, CopyableUrl, DASHBOARD_OPERATIONS, DASHBOARD_PINNED, DEEP_RESEARCH, DEEP_RESEARCH_ID, DEFAULT_AGENT_AVATAR_FIELD_LABELS, DEFAULT_AGENT_BAR_LABELS, DEFAULT_AGENT_CAPABILITIES, DEFAULT_AGENT_CREATOR_LABELS, DEFAULT_AGENT_STEPS_LABELS, DEFAULT_AGENT_TEMPLATES, DEFAULT_AGENT_TYPES, DEFAULT_AGENT_TYPE_SELECTOR_LABELS, DEFAULT_AUTHORIZE_AGENT_LABELS, DEFAULT_CONFIG_FIELD_LABELS, DEFAULT_CONFIG_FORM_LABELS, DEFAULT_CONSENT_ACTIONS_LABELS, DEFAULT_COPYABLE_URL_LABELS, DEFAULT_NEW_THREAD_DIALOG_LABELS, DEFAULT_PILL_SELECT_LABELS, DEFAULT_RECURRENCE, DEFAULT_RECURRENCE_BUILDER_LABELS, DEFAULT_SKILL_EDIT_FORM_LABELS, DEFAULT_SKILL_GENERATE_FORM_LABELS, DEFAULT_SKILL_GLOBAL_BADGE_LABELS, DEFAULT_SKILL_VIEW_TOGGLE_LABELS, DEFAULT_STEP_BAR_LABELS, DEFAULT_SUBAGENT_ROSTER_LABELS, DEFAULT_TASK_ACTIVITY_LABELS, DEFAULT_TASK_COMPOSER_LABELS, DEFAULT_TASK_PLAN_LABELS, DEFAULT_TASK_RUNS_DIALOG_LABELS, DEFAULT_THREAD_LAUNCHER_LABELS, DEFAULT_THREAD_STATE_LABELS, DEFAULT_TUPLE_ARRAY_FIELD_LABELS, DEFAULT_WORKFLOW_RUNNER_LABELS, DEFAULT_WORKFLOW_RUN_STATUS_LABELS, DEFAULT_WORKFLOW_STEP_PARTS_LABELS, DEFAULT_WORKFLOW_THREAD_STRIP_LABELS, DERIVED_NAME_WORDS, EMPTY_NEW_THREAD, GENERATE_IMAGE, GENERATE_IMAGE_ID, GoalCriteria, IMAGE_ASPECT_AUTO, IMAGE_ASPECT_RATIOS, MAX_TASK_DEPTH, MODEL_NAME_ICONS, MODEL_TIER_ICON_MAP, MODEL_TIER_LABELS, NewThreadDialog, PillSelect, REMIND_TASK, REMIND_TASK_ID, RecurrenceBuilder, SKILL_FIELD_TYPE_LABELS, SKILL_MAIN_FILENAME, SKILL_SOURCE_LABELS, SKILL_TYPES, SKILL_TYPE_LABELS, STATUS_LABELS, STATUS_ORDER, STATUS_TONE, STEP_ICON_MAP, SUMMARISE, SUMMARISE_ID, SendBackControl, SkillActionButton, SkillDetail, SkillDetailSection, SkillEditForm, SkillFilterChips, SkillGenerateForm, SkillGlobalBadge, SkillLibraryDetail, SkillTile, SkillTypeBadge, SkillViewToggle, StepDetail, StepNarration, StepOutcome, StepParams, StepRow, StepSummary, StepTrace, StepTraceSummary, SubAgentLane, SubStepGroup, SubagentRoster, TAG_ICONS, TIMELINE, TIMELINE_ID, TIMELINE_PROMPT, TOOL_ICON_MAP, TRANSLATE, TRANSLATE_ID, TRANSLATE_LANGUAGES, TRIGGER_LABELS, TaskActivityDialog, TaskActivityTimeline, TaskComposer, TaskEmptyState, TaskFlow, TaskPlan, TaskRunsDialog, TaskStartDialog, ThreadActivity, ThreadLauncher, ThreadStatusLine, TupleArrayField, WEB_WORKFLOWS, WEEKDAYS, WORD_ASK, WORD_ASK_ID, WORD_CONTINUE, WORD_CONTINUE_ID, WORD_SUMMARISE, WORD_SUMMARISE_ID, WORD_SUPPORT, WORD_SUPPORT_ID, WORD_WORKFLOWS, WORKFLOW_REGISTRY, WorkflowRunStatus, WorkflowRunner, WorkflowStepAction, WorkflowThreadStartedBy, WorkflowThreadStrip, activeStepId, agentConfigSectionToValues, agentCreatorToConfigSection, asTaskStatus, authModeFor, buildLibrarySkills, buildRRule, buildTaskRows, buildZipSkillImport, closeWorkflowLaunch, compactThreadActivity, composePersona, composerToTaskQuery, composerToWorkRequest, composerToWorkflowRequest, composerToWorkflowUpdate, createsWork, defaultScopeRenderer, defaultTaskComposerValues, deriveAgentName, deriveAnnotationName, deriveWorkflowName, descendantIds, describeRRule, describeTrigger, filterLibrarySkills, firstWords, fromPlanAssignee, fromPlanDocumentRef, fromPlanSteps, getAgentStepIcon, getAgentStepPresentation, getCurrentAgentStepPresentation, getModelIcon, goalProgress, groupThreadActivity, hasTaskFields, humanizeSection, importMarkdownSkill, importSkillFile, importSkillFromUrl, indexTasks, inferType, inputDocumentIds, isAgenticWorkflow, isIncompleteSignal, isMainSkillFile, isOutOfBounds, isPlainTodo, isSupersededStop, isValidAgentName, isoToLocalInput, latestMessageTime, layoutFromPlanSteps, linkedRunsFromActivity, localInputToIso, moveTargets, newThreadToRequest, nextCriterionId, notifiedLabel, openWorkflowLaunch, ownerExtId, parseRRule, parseSkillFrontmatter, prettifyKey, readSkillArchive, recordWorkflowUse, renderWorkflowIcon, resetWorkflowUsage, resolveScopeInputs, serializeSkill, skillSlug, sortByRecentUse, stepAccent, stepWindow, stripPersonaPreamble, summarizeAgent, summarizeCapabilities, taskActivityHeadline, taskComposerToCreateRequest, taskComposerToUpdateRequest, taskNeedsAccess, taskToComposerValues, toPlanAssignee, toPlanDocumentRef, toPlanSteps, unnotifiedMentions, useWorkflowLaunchRequest, useWorkflowUsage, useWorkflowView, workflowFromSkillMarkdown, workflowTaskFields, workflowToComposerValues, workflowToSkillMarkdown, workflowWhen } from '../chunk-WJZK5GAV.js';
2
+ export { AgentCard, AgentGallery, ConversationListView, ConversationTurnSpeaker, DEFAULT_AGENT_CARD_LABELS, DEFAULT_AGENT_GALLERY_LABELS, DEFAULT_SKILL_CARD_LABELS, DEFAULT_SKILL_ROW_LABELS, DEFAULT_TASKS_CHROME_LABELS, DEFAULT_TASK_LIST_LABELS, DEFAULT_TASK_OUTPUTS_CELL_LABELS, DEFAULT_TASK_STATUS_PILL_LABELS, DEFAULT_TASK_THREAD_CHIP_LABELS, DEFAULT_UPLOAD_TASK_ITEM_LABELS, DEFAULT_UPLOAD_TASK_LIST_LABELS, DEFAULT_WORKFLOWS_CHROME_LABELS, SkillCard, SkillRow, TASK_COLUMN_ORDER, TaskInbox, TaskMoveDialog, TaskOutputsCell, TaskStatusPill, TaskTable, TaskThreadChip, TasksToolbar, ThreadNotifyDialog, UploadTaskItem, UploadTaskList, WorkflowsToolbar, createTaskColumns, filterConversationRows, formatElapsed, useWorkflowPreview } from '../chunk-F7IQGPZH.js';
3
+ export { ANNOTATE, ANNOTATE_ID, AUTOMATION_EVENTS, ActionStepBody, AgentAvatarField, AgentBar, AgentBarIconButton, AgentBarMenu, AgentBarNotes, AgentBarProbeAnswer, AgentBarQueuedNote, AgentBarStatus, AgentConnectInstructions, AgentCreateView, AgentCreatedView, AgentCreator, AgentEditView, AgentMainView, AgentTypeSelector, ApprovalEvidence, AssigneeLine, AssistantEntity, BUILTIN_SKILLS, CHRONOLOGY, CHRONOLOGY_ID, CUSTOM_TASK, CUSTOM_TASK_ID, CapabilityGrid, CapabilityTile, ConfigField, ConfigForm, ConsentActions, ConsentBulletList, ConsentCard, ConsentFootnote, ConsentHeader, ConsentMessage, ConsentNotice, ConsentPage, ConsentPermissionList, ConsentSection, ConsentStrong, ConsentText, CopyableUrl, DASHBOARD_OPERATIONS, DASHBOARD_PINNED, DEEP_RESEARCH, DEEP_RESEARCH_ID, DEFAULT_AGENT_AVATAR_FIELD_LABELS, DEFAULT_AGENT_BAR_LABELS, DEFAULT_AGENT_CAPABILITIES, DEFAULT_AGENT_CREATOR_LABELS, DEFAULT_AGENT_STEPS_LABELS, DEFAULT_AGENT_TEMPLATES, DEFAULT_AGENT_TYPES, DEFAULT_AGENT_TYPE_SELECTOR_LABELS, DEFAULT_AUTHORIZE_AGENT_LABELS, DEFAULT_CONFIG_FIELD_LABELS, DEFAULT_CONFIG_FORM_LABELS, DEFAULT_CONSENT_ACTIONS_LABELS, DEFAULT_COPYABLE_URL_LABELS, DEFAULT_NEW_THREAD_DIALOG_LABELS, DEFAULT_PILL_SELECT_LABELS, DEFAULT_RECURRENCE, DEFAULT_RECURRENCE_BUILDER_LABELS, DEFAULT_SKILL_EDIT_FORM_LABELS, DEFAULT_SKILL_GENERATE_FORM_LABELS, DEFAULT_SKILL_GLOBAL_BADGE_LABELS, DEFAULT_SKILL_VIEW_TOGGLE_LABELS, DEFAULT_STEP_BAR_LABELS, DEFAULT_SUBAGENT_ROSTER_LABELS, DEFAULT_TASK_ACTIVITY_LABELS, DEFAULT_TASK_COMPOSER_LABELS, DEFAULT_TASK_PLAN_LABELS, DEFAULT_TASK_RUNS_DIALOG_LABELS, DEFAULT_THREAD_LAUNCHER_LABELS, DEFAULT_THREAD_STATE_LABELS, DEFAULT_TUPLE_ARRAY_FIELD_LABELS, DEFAULT_WORKFLOW_RUNNER_LABELS, DEFAULT_WORKFLOW_RUN_STATUS_LABELS, DEFAULT_WORKFLOW_STEP_PARTS_LABELS, DEFAULT_WORKFLOW_THREAD_STRIP_LABELS, DERIVED_NAME_WORDS, EMPTY_NEW_THREAD, GENERATE_IMAGE, GENERATE_IMAGE_ID, GoalCriteria, IMAGE_ASPECT_AUTO, IMAGE_ASPECT_RATIOS, MAX_TASK_DEPTH, MODEL_NAME_ICONS, MODEL_TIER_ICON_MAP, MODEL_TIER_LABELS, NewThreadDialog, PillSelect, REMIND_TASK, REMIND_TASK_ID, RecurrenceBuilder, SKILL_FIELD_TYPE_LABELS, SKILL_MAIN_FILENAME, SKILL_SOURCE_LABELS, SKILL_TYPES, SKILL_TYPE_LABELS, STATUS_LABELS, STATUS_ORDER, STATUS_TONE, STEP_ICON_MAP, SUMMARISE, SUMMARISE_ID, SendBackControl, SkillActionButton, SkillDetail, SkillDetailSection, SkillEditForm, SkillFilterChips, SkillGenerateForm, SkillGlobalBadge, SkillLibraryDetail, SkillTile, SkillTypeBadge, SkillViewToggle, StepDetail, StepNarration, StepOutcome, StepParams, StepRow, StepSummary, StepTrace, StepTraceSummary, SubAgentLane, SubStepGroup, SubagentRoster, TAG_ICONS, TIMELINE, TIMELINE_ID, TIMELINE_PROMPT, TOOL_ICON_MAP, TRANSLATE, TRANSLATE_ID, TRANSLATE_LANGUAGES, TRIGGER_LABELS, TaskActivityDialog, TaskActivityTimeline, TaskComposer, TaskEmptyState, TaskFlow, TaskPlan, TaskRunsDialog, TaskStartDialog, ThreadActivity, ThreadLauncher, ThreadStatusLine, TupleArrayField, WEB_WORKFLOWS, WEEKDAYS, WORD_ASK, WORD_ASK_ID, WORD_CONTINUE, WORD_CONTINUE_ID, WORD_SUMMARISE, WORD_SUMMARISE_ID, WORD_SUPPORT, WORD_SUPPORT_ID, WORD_WORKFLOWS, WORKFLOW_REGISTRY, WorkflowRunStatus, WorkflowRunner, WorkflowStepAction, WorkflowThreadStartedBy, WorkflowThreadStrip, activeStepId, agentConfigSectionToValues, agentCreatorToConfigSection, asTaskStatus, authModeFor, buildLibrarySkills, buildRRule, buildTaskRows, buildZipSkillImport, closeWorkflowLaunch, compactThreadActivity, composePersona, composerToTaskQuery, composerToWorkRequest, composerToWorkflowRequest, composerToWorkflowUpdate, createsWork, defaultScopeRenderer, defaultTaskComposerValues, deriveAgentName, deriveAnnotationName, deriveWorkflowName, descendantIds, describeRRule, describeTrigger, filterLibrarySkills, firstWords, fromPlanAssignee, fromPlanDocumentRef, fromPlanSteps, getAgentStepIcon, getAgentStepPresentation, getCurrentAgentStepPresentation, getModelIcon, goalProgress, groupThreadActivity, hasTaskFields, humanizeSection, importMarkdownSkill, importSkillFile, importSkillFromUrl, indexTasks, inferType, inputDocumentIds, isAgenticWorkflow, isIncompleteSignal, isMainSkillFile, isOutOfBounds, isPlainTodo, isSupersededStop, isValidAgentName, isoToLocalInput, latestMessageTime, layoutFromPlanSteps, linkedRunsFromActivity, localInputToIso, moveTargets, newThreadToRequest, nextCriterionId, notifiedLabel, openWorkflowLaunch, ownerExtId, parseRRule, parseSkillFrontmatter, prettifyKey, readSkillArchive, recordWorkflowUse, renderWorkflowIcon, resetWorkflowUsage, resolveScopeInputs, serializeSkill, skillSlug, sortByRecentUse, stepAccent, stepWindow, stripPersonaPreamble, summarizeAgent, summarizeCapabilities, taskActivityHeadline, taskComposerToCreateRequest, taskComposerToUpdateRequest, taskNeedsAccess, taskToComposerValues, toPlanAssignee, toPlanDocumentRef, toPlanSteps, unnotifiedMentions, useWorkflowLaunchRequest, useWorkflowUsage, useWorkflowView, workflowFromSkillMarkdown, workflowTaskFields, workflowToComposerValues, workflowToSkillMarkdown, workflowWhen } from '../chunk-DTENNALR.js';
4
4
  import '../chunk-CQCC7LE7.js';
5
- export { AgentSelect, DEFAULT_AGENT_SELECT_LABELS, DEFAULT_SCHEMA_FORM_LABELS, DEFAULT_TASK_TRIGGER_CHIP_LABELS, DEFAULT_WORKFLOW_CONFIG_DIALOG_LABELS, DEFAULT_WORKFLOW_DOCUMENTS_FIELD_LABELS, DEFAULT_WORKFLOW_LIST_LABELS, PersonPill, SchemaForm, TaskTriggerChip, WORKFLOW_COLUMN_ORDER, WorkflowConfigDialog, WorkflowDocumentsField, WorkflowLauncher, WorkflowsTable, buildWorkflowScopeSource, createWorkflowColumns, documentScopeLabels, hasTrigger, isSkillRow, matchWorkflowScope, workflowStatus, workflowTriggerType } from '../chunk-PYJUIEYV.js';
5
+ export { AgentSelect, DEFAULT_AGENT_SELECT_LABELS, DEFAULT_SCHEMA_FORM_LABELS, DEFAULT_TASK_TRIGGER_CHIP_LABELS, DEFAULT_WORKFLOW_CONFIG_DIALOG_LABELS, DEFAULT_WORKFLOW_DOCUMENTS_FIELD_LABELS, DEFAULT_WORKFLOW_LIST_LABELS, PersonPill, SchemaForm, TaskTriggerChip, WORKFLOW_COLUMN_ORDER, WorkflowConfigDialog, WorkflowDocumentsField, WorkflowLauncher, WorkflowsTable, buildWorkflowScopeSource, createWorkflowColumns, documentScopeLabels, hasTrigger, isSkillRow, matchWorkflowScope, workflowStatus, workflowTriggerType } from '../chunk-YT5OOFK3.js';
6
6
  import '../chunk-KMF3ORIV.js';
7
7
  import '../chunk-G4GLDQLY.js';
8
8
  import '../chunk-M4S75AEJ.js';
@@ -12,9 +12,9 @@ import '../chunk-RLWIUUQ5.js';
12
12
  import '../chunk-YU2KUMGE.js';
13
13
  import '../chunk-ML62FUHZ.js';
14
14
  import '../chunk-7F5Z4K5W.js';
15
+ import '../chunk-WNDIVNPT.js';
15
16
  import '../chunk-ABEKUV6L.js';
16
17
  import '../chunk-P6GHJSLR.js';
17
- import '../chunk-WNDIVNPT.js';
18
18
  export { DEFAULT_ASSIGNEE_WORDING, DEFAULT_STEP_DOCUMENT_LABELS, DEFAULT_STEP_KIND_LABELS, DEFAULT_STEP_RECORD_LABELS, STEP_KIND_ICONS, StepDocumentButton, StepDocumentCards, StepRecord, WORKFLOW_STEP_KINDS, assigneeName, canAssign, composeStepPrompt, dependsOn, fillRunText, fillStepInputs, initialRunInputs, isPersonAction, isPersonStep, isRunFinished, isSteppedWorkflow, nextAction, orderSteps, reviewInstructions, runFields, runFieldsOf, runThreadTitle, sendBackTargets, splitDocRef, stepConfigProblems, stepDependencies, stepDocuments, stepFields, stepKindOf, stepLevels, stepPhase, stepStatesFromActivity, upstreamSteps, validateStep, validateWorkflowGraph, workflowSteps } from '../chunk-THNTNAYI.js';
19
19
  export { EMPTY_WORKFLOW_SCOPE, SKILL_PROMPT_FALLBACK_PLACEHOLDER, SKILL_PROMPT_LABEL, buildLaunch, composeWorkflowPrompt, defaultInputs, fieldToFrontmatter, inputsFromContext, isEmptyWorkflowScope, isWorkflowScope, mergeSkillWorkflows, promptFieldName, skillTitle, skillToWorkflow, validateInputs, workflowAccepts, workflowFromFrontmatter, workflowsAccepting, workflowsForHost } from '../chunk-TZGBRLPK.js';
20
20
  import '../chunk-AUS3KBHJ.js';
@@ -1,157 +1,157 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkMKNSIZWR_cjs = require('../chunk-MKNSIZWR.cjs');
5
- var chunkEWRRV37Z_cjs = require('../chunk-EWRRV37Z.cjs');
4
+ var chunkMSPNYW6Z_cjs = require('../chunk-MSPNYW6Z.cjs');
5
+ var chunkK237IYOD_cjs = require('../chunk-K237IYOD.cjs');
6
6
  var chunkCG757WKY_cjs = require('../chunk-CG757WKY.cjs');
7
7
  require('../chunk-MHVNT4J3.cjs');
8
8
  require('../chunk-DES3K4SD.cjs');
9
9
 
10
10
 
11
11
 
12
+ Object.defineProperty(exports, "DEFAULT_SSO_LOGIN_BUTTON_LABELS", {
13
+ enumerable: true,
14
+ get: function () { return chunkMSPNYW6Z_cjs.DEFAULT_SSO_LOGIN_BUTTON_LABELS; }
15
+ });
16
+ Object.defineProperty(exports, "SsoLoginButton", {
17
+ enumerable: true,
18
+ get: function () { return chunkMSPNYW6Z_cjs.SsoLoginButton; }
19
+ });
12
20
  Object.defineProperty(exports, "consumeFragmentCredentials", {
13
21
  enumerable: true,
14
- get: function () { return chunkMKNSIZWR_cjs.consumeFragmentCredentials; }
22
+ get: function () { return chunkMSPNYW6Z_cjs.consumeFragmentCredentials; }
15
23
  });
16
24
  Object.defineProperty(exports, "isAuthRoutePath", {
17
25
  enumerable: true,
18
- get: function () { return chunkMKNSIZWR_cjs.isAuthRoutePath; }
26
+ get: function () { return chunkMSPNYW6Z_cjs.isAuthRoutePath; }
19
27
  });
20
28
  Object.defineProperty(exports, "normalizeAuthPath", {
21
29
  enumerable: true,
22
- get: function () { return chunkMKNSIZWR_cjs.normalizeAuthPath; }
30
+ get: function () { return chunkMSPNYW6Z_cjs.normalizeAuthPath; }
23
31
  });
24
32
  Object.defineProperty(exports, "parseFragmentCredentials", {
25
33
  enumerable: true,
26
- get: function () { return chunkMKNSIZWR_cjs.parseFragmentCredentials; }
34
+ get: function () { return chunkMSPNYW6Z_cjs.parseFragmentCredentials; }
27
35
  });
28
36
  Object.defineProperty(exports, "preserveAuthReturnUrl", {
29
37
  enumerable: true,
30
- get: function () { return chunkMKNSIZWR_cjs.preserveAuthReturnUrl; }
38
+ get: function () { return chunkMSPNYW6Z_cjs.preserveAuthReturnUrl; }
31
39
  });
32
40
  Object.defineProperty(exports, "useFragmentCredentials", {
33
41
  enumerable: true,
34
- get: function () { return chunkMKNSIZWR_cjs.useFragmentCredentials; }
42
+ get: function () { return chunkMSPNYW6Z_cjs.useFragmentCredentials; }
35
43
  });
36
44
  Object.defineProperty(exports, "AccountRecoveryDialog", {
37
45
  enumerable: true,
38
- get: function () { return chunkEWRRV37Z_cjs.AccountRecoveryDialog; }
46
+ get: function () { return chunkK237IYOD_cjs.AccountRecoveryDialog; }
39
47
  });
40
48
  Object.defineProperty(exports, "AuthAlert", {
41
49
  enumerable: true,
42
- get: function () { return chunkEWRRV37Z_cjs.AuthAlert; }
50
+ get: function () { return chunkK237IYOD_cjs.AuthAlert; }
43
51
  });
44
52
  Object.defineProperty(exports, "AuthConsent", {
45
53
  enumerable: true,
46
- get: function () { return chunkEWRRV37Z_cjs.AuthConsent; }
54
+ get: function () { return chunkK237IYOD_cjs.AuthConsent; }
47
55
  });
48
56
  Object.defineProperty(exports, "AuthDivider", {
49
57
  enumerable: true,
50
- get: function () { return chunkEWRRV37Z_cjs.AuthDivider; }
58
+ get: function () { return chunkK237IYOD_cjs.AuthDivider; }
51
59
  });
52
60
  Object.defineProperty(exports, "AuthField", {
53
61
  enumerable: true,
54
- get: function () { return chunkEWRRV37Z_cjs.AuthField; }
62
+ get: function () { return chunkK237IYOD_cjs.AuthField; }
55
63
  });
56
64
  Object.defineProperty(exports, "AuthFieldBadge", {
57
65
  enumerable: true,
58
- get: function () { return chunkEWRRV37Z_cjs.AuthFieldBadge; }
66
+ get: function () { return chunkK237IYOD_cjs.AuthFieldBadge; }
59
67
  });
60
68
  Object.defineProperty(exports, "AuthFooterLinks", {
61
69
  enumerable: true,
62
- get: function () { return chunkEWRRV37Z_cjs.AuthFooterLinks; }
70
+ get: function () { return chunkK237IYOD_cjs.AuthFooterLinks; }
63
71
  });
64
72
  Object.defineProperty(exports, "AuthHeading", {
65
73
  enumerable: true,
66
- get: function () { return chunkEWRRV37Z_cjs.AuthHeading; }
74
+ get: function () { return chunkK237IYOD_cjs.AuthHeading; }
67
75
  });
68
76
  Object.defineProperty(exports, "AuthHero", {
69
77
  enumerable: true,
70
- get: function () { return chunkEWRRV37Z_cjs.AuthHero; }
78
+ get: function () { return chunkK237IYOD_cjs.AuthHero; }
71
79
  });
72
80
  Object.defineProperty(exports, "AuthInput", {
73
81
  enumerable: true,
74
- get: function () { return chunkEWRRV37Z_cjs.AuthInput; }
82
+ get: function () { return chunkK237IYOD_cjs.AuthInput; }
75
83
  });
76
84
  Object.defineProperty(exports, "AuthLayout", {
77
85
  enumerable: true,
78
- get: function () { return chunkEWRRV37Z_cjs.AuthLayout; }
86
+ get: function () { return chunkK237IYOD_cjs.AuthLayout; }
79
87
  });
80
88
  Object.defineProperty(exports, "AuthLink", {
81
89
  enumerable: true,
82
- get: function () { return chunkEWRRV37Z_cjs.AuthLink; }
90
+ get: function () { return chunkK237IYOD_cjs.AuthLink; }
83
91
  });
84
92
  Object.defineProperty(exports, "AuthNote", {
85
93
  enumerable: true,
86
- get: function () { return chunkEWRRV37Z_cjs.AuthNote; }
94
+ get: function () { return chunkK237IYOD_cjs.AuthNote; }
87
95
  });
88
96
  Object.defineProperty(exports, "AuthOfflineBadge", {
89
97
  enumerable: true,
90
- get: function () { return chunkEWRRV37Z_cjs.AuthOfflineBadge; }
98
+ get: function () { return chunkK237IYOD_cjs.AuthOfflineBadge; }
91
99
  });
92
100
  Object.defineProperty(exports, "AuthSubmitButton", {
93
101
  enumerable: true,
94
- get: function () { return chunkEWRRV37Z_cjs.AuthSubmitButton; }
102
+ get: function () { return chunkK237IYOD_cjs.AuthSubmitButton; }
95
103
  });
96
104
  Object.defineProperty(exports, "AuthTabs", {
97
105
  enumerable: true,
98
- get: function () { return chunkEWRRV37Z_cjs.AuthTabs; }
106
+ get: function () { return chunkK237IYOD_cjs.AuthTabs; }
99
107
  });
100
108
  Object.defineProperty(exports, "DEFAULT_ACCOUNT_RECOVERY_DIALOG_LABELS", {
101
109
  enumerable: true,
102
- get: function () { return chunkEWRRV37Z_cjs.DEFAULT_ACCOUNT_RECOVERY_DIALOG_LABELS; }
110
+ get: function () { return chunkK237IYOD_cjs.DEFAULT_ACCOUNT_RECOVERY_DIALOG_LABELS; }
103
111
  });
104
112
  Object.defineProperty(exports, "DEFAULT_AUTH_CONSENT_LABELS", {
105
113
  enumerable: true,
106
- get: function () { return chunkEWRRV37Z_cjs.DEFAULT_AUTH_CONSENT_LABELS; }
114
+ get: function () { return chunkK237IYOD_cjs.DEFAULT_AUTH_CONSENT_LABELS; }
107
115
  });
108
116
  Object.defineProperty(exports, "DEFAULT_AUTH_FOOTER_LINKS_LABELS", {
109
117
  enumerable: true,
110
- get: function () { return chunkEWRRV37Z_cjs.DEFAULT_AUTH_FOOTER_LINKS_LABELS; }
118
+ get: function () { return chunkK237IYOD_cjs.DEFAULT_AUTH_FOOTER_LINKS_LABELS; }
111
119
  });
112
120
  Object.defineProperty(exports, "DEFAULT_AUTH_OFFLINE_BADGE_LABELS", {
113
121
  enumerable: true,
114
- get: function () { return chunkEWRRV37Z_cjs.DEFAULT_AUTH_OFFLINE_BADGE_LABELS; }
122
+ get: function () { return chunkK237IYOD_cjs.DEFAULT_AUTH_OFFLINE_BADGE_LABELS; }
115
123
  });
116
124
  Object.defineProperty(exports, "DEFAULT_PASSWORD_RULES", {
117
125
  enumerable: true,
118
- get: function () { return chunkEWRRV37Z_cjs.DEFAULT_PASSWORD_RULES; }
126
+ get: function () { return chunkK237IYOD_cjs.DEFAULT_PASSWORD_RULES; }
119
127
  });
120
128
  Object.defineProperty(exports, "DEFAULT_RECOVERY_KEY_DIALOG_LABELS", {
121
129
  enumerable: true,
122
- get: function () { return chunkEWRRV37Z_cjs.DEFAULT_RECOVERY_KEY_DIALOG_LABELS; }
130
+ get: function () { return chunkK237IYOD_cjs.DEFAULT_RECOVERY_KEY_DIALOG_LABELS; }
123
131
  });
124
132
  Object.defineProperty(exports, "DEFAULT_REVEALABLE_PASSWORD_INPUT_LABELS", {
125
133
  enumerable: true,
126
- get: function () { return chunkEWRRV37Z_cjs.DEFAULT_REVEALABLE_PASSWORD_INPUT_LABELS; }
127
- });
128
- Object.defineProperty(exports, "DEFAULT_SSO_LOGIN_BUTTON_LABELS", {
129
- enumerable: true,
130
- get: function () { return chunkEWRRV37Z_cjs.DEFAULT_SSO_LOGIN_BUTTON_LABELS; }
134
+ get: function () { return chunkK237IYOD_cjs.DEFAULT_REVEALABLE_PASSWORD_INPUT_LABELS; }
131
135
  });
132
136
  Object.defineProperty(exports, "RecoveryKeyDialog", {
133
137
  enumerable: true,
134
- get: function () { return chunkEWRRV37Z_cjs.RecoveryKeyDialog; }
138
+ get: function () { return chunkK237IYOD_cjs.RecoveryKeyDialog; }
135
139
  });
136
140
  Object.defineProperty(exports, "RevealablePasswordInput", {
137
141
  enumerable: true,
138
- get: function () { return chunkEWRRV37Z_cjs.RevealablePasswordInput; }
139
- });
140
- Object.defineProperty(exports, "SsoLoginButton", {
141
- enumerable: true,
142
- get: function () { return chunkEWRRV37Z_cjs.SsoLoginButton; }
142
+ get: function () { return chunkK237IYOD_cjs.RevealablePasswordInput; }
143
143
  });
144
144
  Object.defineProperty(exports, "createPasswordRules", {
145
145
  enumerable: true,
146
- get: function () { return chunkEWRRV37Z_cjs.createPasswordRules; }
146
+ get: function () { return chunkK237IYOD_cjs.createPasswordRules; }
147
147
  });
148
148
  Object.defineProperty(exports, "parseAuthError", {
149
149
  enumerable: true,
150
- get: function () { return chunkEWRRV37Z_cjs.parseAuthError; }
150
+ get: function () { return chunkK237IYOD_cjs.parseAuthError; }
151
151
  });
152
152
  Object.defineProperty(exports, "promptSaveCredential", {
153
153
  enumerable: true,
154
- get: function () { return chunkEWRRV37Z_cjs.promptSaveCredential; }
154
+ get: function () { return chunkK237IYOD_cjs.promptSaveCredential; }
155
155
  });
156
156
  Object.defineProperty(exports, "DEFAULT_PASSWORD_STRENGTH_INPUT_LABELS", {
157
157
  enumerable: true,
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- export { consumeFragmentCredentials, isAuthRoutePath, normalizeAuthPath, parseFragmentCredentials, preserveAuthReturnUrl, useFragmentCredentials } from '../chunk-6AXJBTHM.js';
3
- export { AccountRecoveryDialog, AuthAlert, AuthConsent, AuthDivider, AuthField, AuthFieldBadge, AuthFooterLinks, AuthHeading, AuthHero, AuthInput, AuthLayout, AuthLink, AuthNote, AuthOfflineBadge, AuthSubmitButton, AuthTabs, DEFAULT_ACCOUNT_RECOVERY_DIALOG_LABELS, DEFAULT_AUTH_CONSENT_LABELS, DEFAULT_AUTH_FOOTER_LINKS_LABELS, DEFAULT_AUTH_OFFLINE_BADGE_LABELS, DEFAULT_PASSWORD_RULES, DEFAULT_RECOVERY_KEY_DIALOG_LABELS, DEFAULT_REVEALABLE_PASSWORD_INPUT_LABELS, DEFAULT_SSO_LOGIN_BUTTON_LABELS, RecoveryKeyDialog, RevealablePasswordInput, SsoLoginButton, createPasswordRules, parseAuthError, promptSaveCredential } from '../chunk-MVP7METT.js';
2
+ export { DEFAULT_SSO_LOGIN_BUTTON_LABELS, SsoLoginButton, consumeFragmentCredentials, isAuthRoutePath, normalizeAuthPath, parseFragmentCredentials, preserveAuthReturnUrl, useFragmentCredentials } from '../chunk-KL6XOSEN.js';
3
+ export { AccountRecoveryDialog, AuthAlert, AuthConsent, AuthDivider, AuthField, AuthFieldBadge, AuthFooterLinks, AuthHeading, AuthHero, AuthInput, AuthLayout, AuthLink, AuthNote, AuthOfflineBadge, AuthSubmitButton, AuthTabs, DEFAULT_ACCOUNT_RECOVERY_DIALOG_LABELS, DEFAULT_AUTH_CONSENT_LABELS, DEFAULT_AUTH_FOOTER_LINKS_LABELS, DEFAULT_AUTH_OFFLINE_BADGE_LABELS, DEFAULT_PASSWORD_RULES, DEFAULT_RECOVERY_KEY_DIALOG_LABELS, DEFAULT_REVEALABLE_PASSWORD_INPUT_LABELS, RecoveryKeyDialog, RevealablePasswordInput, createPasswordRules, parseAuthError, promptSaveCredential } from '../chunk-IXBJEQH5.js';
4
4
  export { DEFAULT_PASSWORD_STRENGTH_INPUT_LABELS, PasswordStrengthInput } from '../chunk-P6OLZGQA.js';
5
5
  import '../chunk-7F6CBP3Z.js';
6
6
  import '../chunk-VUNV25KB.js';
@@ -84,14 +84,15 @@ function auth0Sso({ domain, callbackPath = "/sso" }) {
84
84
  family_name: user.family_name,
85
85
  picture: user.picture
86
86
  } : null,
87
- async signIn({ returnTo, redirectUri, consent } = {}) {
87
+ async signIn({ returnTo, redirectUri, consent, connection } = {}) {
88
88
  rememberAuth0Token(null);
89
89
  await loginWithRedirect({
90
90
  ...returnTo ? { appState: { returnTo } } : {},
91
- ...redirectUri || consent ? {
91
+ ...redirectUri || consent || connection ? {
92
92
  authorizationParams: {
93
93
  ...redirectUri ? { redirect_uri: redirectUri } : {},
94
- ...consent ? { prompt: "consent" } : {}
94
+ ...consent ? { prompt: "consent" } : {},
95
+ ...connection ? { connection } : {}
95
96
  }
96
97
  } : {}
97
98
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/auth0/availability.ts","../../src/auth0/token-source.ts","../../src/auth0/Auth0Gate.tsx","../../src/auth0/sso.ts"],"names":["initialContext","useAuth0","useEffect","Auth0Context","jsxs","Auth0Provider","jsx","useMemo"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * Whether Auth0 can run in this browsing context. `auth0-spa-js` needs Web Crypto, which browsers\n * expose only on a SECURE ORIGIN (https, or `localhost`): a dev server reached over a LAN address\n * (`http://10.0.0.5:5173`) is not one. The site's own email + password sign-in does not need\n * Auth0, so the SSO affordances are hidden there rather than let them throw.\n */\nexport const isAuth0Available: boolean =\n typeof window !== 'undefined' && window.isSecureContext && !!window.crypto?.subtle\n","/**\n * Auth0 as the SDK client's `SsoTokenSource` (`createArbiClient({ sso: auth0TokenSource })`): the\n * token for a silent re-login of an SSO account. `Auth0Gate` registers Auth0's token getter once\n * Auth0 is signed in; the client asks only in SSO mode, which is also the cross-deployment guard\n * (Auth0's cache is shared by every deployment on the tenant).\n */\n\nimport type { SsoTokenSource } from '@arbidocs/client'\n\n/** How long a re-login waits for Auth0 to expose its token getter after a page load. */\nconst GETTER_WAIT_MS = 1_000\nconst GETTER_POLL_MS = 250\n\nlet tokenGetter: (() => Promise<string>) | null = null\nlet lastToken: string | null = null\n\n/** Auth0's token getter, once signed in there (`Auth0Gate`); `null` to drop it. */\nexport function setAuth0TokenGetter(getter: (() => Promise<string>) | null): void {\n tokenGetter = getter\n}\n\n/** The last token Auth0 gave (the re-login's fallback); `null` to forget it. */\nexport function rememberAuth0Token(token: string | null): void {\n lastToken = token\n}\n\nexport const auth0TokenSource: SsoTokenSource = {\n async getToken() {\n // On a page load the getter may not exist yet: wait up to 1s for it, then fall back to the\n // last token Auth0 gave.\n for (let waited = 0; ; waited += GETTER_POLL_MS) {\n if (tokenGetter) {\n try {\n const token = await tokenGetter()\n if (token) return token\n break\n } catch (error) {\n // Auth0 not settled yet: try again until the wait is over.\n console.error('[SSO] Failed to get the Auth0 token:', error)\n }\n }\n if (waited >= GETTER_WAIT_MS) break\n if (waited === 0) console.info('[SSO] No Auth0 token getter yet - waiting for Auth0')\n await new Promise((resolve) => setTimeout(resolve, GETTER_POLL_MS))\n }\n return lastToken\n },\n}\n","/**\n * Auth0Gate — mount Auth0 only where it can actually run.\n *\n * `auth0-spa-js` requires Web Crypto, which the browser only exposes on a SECURE\n * ORIGIN (https, or `localhost`). Reached over a LAN address — `http://10.0.0.5:5173`,\n * the way a dev server started with `--host` is usually opened — it throws\n * \"auth0-spa-js must run on a secure origin\" while `Auth0Provider` initialises,\n * and the app never boots.\n *\n * That is a shame, because ARBI's own email + password login does not need Auth0\n * at all: Auth0 backs the SSO buttons and the hosted password-reset flow. So on an\n * insecure origin we render an INERT Auth0 context instead of the real provider.\n * The app boots, native sign-in works, and the SSO paths are hidden (see\n * `isAuth0Available`) rather than throwing when clicked.\n *\n * It is the site's `Auth0Gate`: mounted once around the app, it is also where the re-login gets\n * Auth0's token (`auth0TokenSource`).\n *\n * Note the context must be inert, not absent: `useAuth0()` outside a provider\n * returns `isLoading: true` forever, which would hang `App` on its loading screen.\n */\n\nimport { useEffect, type ReactNode } from 'react'\nimport {\n Auth0Context,\n Auth0Provider,\n initialContext,\n useAuth0,\n type Auth0ProviderOptions,\n} from '@auth0/auth0-react'\nimport { isAuth0Available } from './availability'\nimport { rememberAuth0Token, setAuth0TokenGetter } from './token-source'\n\n/** Rejects rather than silently no-oping, so a stray SSO call is visible in dev. */\nfunction unavailable(): never {\n throw new Error(\n 'Auth0 is unavailable on a non-secure origin. Open the app over https or on localhost.'\n )\n}\n\n/**\n * A settled, signed-out Auth0 context, built from the library's own default so it\n * cannot drift as the interface grows. `isLoading: false` is the load-bearing\n * override — it lets `App` finish booting instead of waiting on a provider that\n * will never initialise. The auth methods keep the defaults' throwing stubs.\n */\nconst INERT_CONTEXT = { ...initialContext, isLoading: false, getAccessTokenSilently: unavailable }\n\n/**\n * Hands Auth0's token getter to the re-login (`auth0TokenSource`) once Auth0 is signed in, and\n * keeps its last token as the fallback. The client asks for it only in SSO mode.\n */\nfunction Auth0TokenBridge() {\n const { isAuthenticated, isLoading, getAccessTokenSilently } = useAuth0()\n useEffect(() => {\n if (!isAuthenticated || isLoading) return\n setAuth0TokenGetter(getAccessTokenSilently)\n getAccessTokenSilently().then(rememberAuth0Token, () => {\n // Expected during registration: no token yet.\n })\n return () => setAuth0TokenGetter(null)\n }, [isAuthenticated, isLoading, getAccessTokenSilently])\n return null\n}\n\n/** Auth0 for the site, where it can run (see above); its token is handed to the re-login. */\nexport function Auth0Gate({\n children,\n ...options\n}: Auth0ProviderOptions & { children: ReactNode }) {\n if (!isAuth0Available) {\n return <Auth0Context.Provider value={INERT_CONTEXT}>{children}</Auth0Context.Provider>\n }\n return (\n <Auth0Provider {...options}>\n <Auth0TokenBridge />\n {children}\n </Auth0Provider>\n )\n}\n","/**\n * Auth0 as the site's single sign-on provider (the host configuration's `sso`): the sign-in kits\n * reach Auth0 through it, never through `@auth0/auth0-react` themselves.\n *\n * <ArbiHost config={{ sso: auth0Sso({ domain: 'auth.example.com' }), … }}>\n *\n * Needs `Auth0Gate` around the site.\n */\n\nimport { useMemo } from 'react'\nimport { useAuth0 } from '@auth0/auth0-react'\nimport type { SsoSignIn, SsoSupport } from '../connection/auth/support'\nimport { isAuth0Available } from './availability'\nimport { rememberAuth0Token } from './token-source'\n\nexport interface Auth0SsoOptions {\n /** The Auth0 tenant's domain: an account link continues there. */\n domain: string\n /** Where Auth0 comes back to after an account link (default: `<origin>/sso`). */\n callbackPath?: string\n}\n\n/** The SSO provider backed by Auth0. */\nexport function auth0Sso({ domain, callbackPath = '/sso' }: Auth0SsoOptions): SsoSupport {\n function useSignIn(): SsoSignIn {\n const { isLoading, isAuthenticated, user, loginWithRedirect, logout, getAccessTokenSilently } =\n useAuth0()\n return useMemo(\n () => ({\n available: isAuth0Available,\n isLoading,\n isAuthenticated,\n user: user?.sub\n ? {\n sub: user.sub,\n email: user.email,\n name: user.name,\n given_name: user.given_name,\n family_name: user.family_name,\n picture: user.picture,\n }\n : null,\n async signIn({ returnTo, redirectUri, consent } = {}) {\n // A token from a previous Auth0 session must not stand in for the coming one.\n rememberAuth0Token(null)\n await loginWithRedirect({\n ...(returnTo ? { appState: { returnTo } } : {}),\n ...(redirectUri || consent\n ? {\n authorizationParams: {\n ...(redirectUri ? { redirect_uri: redirectUri } : {}),\n ...(consent ? { prompt: 'consent' as const } : {}),\n },\n }\n : {}),\n })\n },\n signOut({ returnTo } = {}) {\n void logout(returnTo ? { logoutParams: { returnTo } } : undefined)\n },\n getToken: () => getAccessTokenSilently().catch(() => null),\n continueUrl: (action, state) =>\n `https://${domain}/continue?redirect_uri=${encodeURIComponent(\n window.location.origin + callbackPath\n )}&action=${action}&state=${state}`,\n }),\n [isLoading, isAuthenticated, user, loginWithRedirect, logout, getAccessTokenSilently]\n )\n }\n return { useSignIn }\n}\n"]}
1
+ {"version":3,"sources":["../../src/auth0/availability.ts","../../src/auth0/token-source.ts","../../src/auth0/Auth0Gate.tsx","../../src/auth0/sso.ts"],"names":["initialContext","useAuth0","useEffect","Auth0Context","jsxs","Auth0Provider","jsx","useMemo"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * Whether Auth0 can run in this browsing context. `auth0-spa-js` needs Web Crypto, which browsers\n * expose only on a SECURE ORIGIN (https, or `localhost`): a dev server reached over a LAN address\n * (`http://10.0.0.5:5173`) is not one. The site's own email + password sign-in does not need\n * Auth0, so the SSO affordances are hidden there rather than let them throw.\n */\nexport const isAuth0Available: boolean =\n typeof window !== 'undefined' && window.isSecureContext && !!window.crypto?.subtle\n","/**\n * Auth0 as the SDK client's `SsoTokenSource` (`createArbiClient({ sso: auth0TokenSource })`): the\n * token for a silent re-login of an SSO account. `Auth0Gate` registers Auth0's token getter once\n * Auth0 is signed in; the client asks only in SSO mode, which is also the cross-deployment guard\n * (Auth0's cache is shared by every deployment on the tenant).\n */\n\nimport type { SsoTokenSource } from '@arbidocs/client'\n\n/** How long a re-login waits for Auth0 to expose its token getter after a page load. */\nconst GETTER_WAIT_MS = 1_000\nconst GETTER_POLL_MS = 250\n\nlet tokenGetter: (() => Promise<string>) | null = null\nlet lastToken: string | null = null\n\n/** Auth0's token getter, once signed in there (`Auth0Gate`); `null` to drop it. */\nexport function setAuth0TokenGetter(getter: (() => Promise<string>) | null): void {\n tokenGetter = getter\n}\n\n/** The last token Auth0 gave (the re-login's fallback); `null` to forget it. */\nexport function rememberAuth0Token(token: string | null): void {\n lastToken = token\n}\n\nexport const auth0TokenSource: SsoTokenSource = {\n async getToken() {\n // On a page load the getter may not exist yet: wait up to 1s for it, then fall back to the\n // last token Auth0 gave.\n for (let waited = 0; ; waited += GETTER_POLL_MS) {\n if (tokenGetter) {\n try {\n const token = await tokenGetter()\n if (token) return token\n break\n } catch (error) {\n // Auth0 not settled yet: try again until the wait is over.\n console.error('[SSO] Failed to get the Auth0 token:', error)\n }\n }\n if (waited >= GETTER_WAIT_MS) break\n if (waited === 0) console.info('[SSO] No Auth0 token getter yet - waiting for Auth0')\n await new Promise((resolve) => setTimeout(resolve, GETTER_POLL_MS))\n }\n return lastToken\n },\n}\n","/**\n * Auth0Gate — mount Auth0 only where it can actually run.\n *\n * `auth0-spa-js` requires Web Crypto, which the browser only exposes on a SECURE\n * ORIGIN (https, or `localhost`). Reached over a LAN address — `http://10.0.0.5:5173`,\n * the way a dev server started with `--host` is usually opened — it throws\n * \"auth0-spa-js must run on a secure origin\" while `Auth0Provider` initialises,\n * and the app never boots.\n *\n * That is a shame, because ARBI's own email + password login does not need Auth0\n * at all: Auth0 backs the SSO buttons and the hosted password-reset flow. So on an\n * insecure origin we render an INERT Auth0 context instead of the real provider.\n * The app boots, native sign-in works, and the SSO paths are hidden (see\n * `isAuth0Available`) rather than throwing when clicked.\n *\n * It is the site's `Auth0Gate`: mounted once around the app, it is also where the re-login gets\n * Auth0's token (`auth0TokenSource`).\n *\n * Note the context must be inert, not absent: `useAuth0()` outside a provider\n * returns `isLoading: true` forever, which would hang `App` on its loading screen.\n */\n\nimport { useEffect, type ReactNode } from 'react'\nimport {\n Auth0Context,\n Auth0Provider,\n initialContext,\n useAuth0,\n type Auth0ProviderOptions,\n} from '@auth0/auth0-react'\nimport { isAuth0Available } from './availability'\nimport { rememberAuth0Token, setAuth0TokenGetter } from './token-source'\n\n/** Rejects rather than silently no-oping, so a stray SSO call is visible in dev. */\nfunction unavailable(): never {\n throw new Error(\n 'Auth0 is unavailable on a non-secure origin. Open the app over https or on localhost.'\n )\n}\n\n/**\n * A settled, signed-out Auth0 context, built from the library's own default so it\n * cannot drift as the interface grows. `isLoading: false` is the load-bearing\n * override — it lets `App` finish booting instead of waiting on a provider that\n * will never initialise. The auth methods keep the defaults' throwing stubs.\n */\nconst INERT_CONTEXT = { ...initialContext, isLoading: false, getAccessTokenSilently: unavailable }\n\n/**\n * Hands Auth0's token getter to the re-login (`auth0TokenSource`) once Auth0 is signed in, and\n * keeps its last token as the fallback. The client asks for it only in SSO mode.\n */\nfunction Auth0TokenBridge() {\n const { isAuthenticated, isLoading, getAccessTokenSilently } = useAuth0()\n useEffect(() => {\n if (!isAuthenticated || isLoading) return\n setAuth0TokenGetter(getAccessTokenSilently)\n getAccessTokenSilently().then(rememberAuth0Token, () => {\n // Expected during registration: no token yet.\n })\n return () => setAuth0TokenGetter(null)\n }, [isAuthenticated, isLoading, getAccessTokenSilently])\n return null\n}\n\n/** Auth0 for the site, where it can run (see above); its token is handed to the re-login. */\nexport function Auth0Gate({\n children,\n ...options\n}: Auth0ProviderOptions & { children: ReactNode }) {\n if (!isAuth0Available) {\n return <Auth0Context.Provider value={INERT_CONTEXT}>{children}</Auth0Context.Provider>\n }\n return (\n <Auth0Provider {...options}>\n <Auth0TokenBridge />\n {children}\n </Auth0Provider>\n )\n}\n","/**\n * Auth0 as the site's single sign-on provider (the host configuration's `sso`): the sign-in kits\n * reach Auth0 through it, never through `@auth0/auth0-react` themselves.\n *\n * <ArbiHost config={{ sso: auth0Sso({ domain: 'auth.example.com' }), … }}>\n *\n * Needs `Auth0Gate` around the site.\n */\n\nimport { useMemo } from 'react'\nimport { useAuth0 } from '@auth0/auth0-react'\nimport type { SsoSignIn, SsoSupport } from '../connection/auth/support'\nimport { isAuth0Available } from './availability'\nimport { rememberAuth0Token } from './token-source'\n\nexport interface Auth0SsoOptions {\n /** The Auth0 tenant's domain: an account link continues there. */\n domain: string\n /** Where Auth0 comes back to after an account link (default: `<origin>/sso`). */\n callbackPath?: string\n}\n\n/** The SSO provider backed by Auth0. */\nexport function auth0Sso({ domain, callbackPath = '/sso' }: Auth0SsoOptions): SsoSupport {\n function useSignIn(): SsoSignIn {\n const { isLoading, isAuthenticated, user, loginWithRedirect, logout, getAccessTokenSilently } =\n useAuth0()\n return useMemo(\n () => ({\n available: isAuth0Available,\n isLoading,\n isAuthenticated,\n user: user?.sub\n ? {\n sub: user.sub,\n email: user.email,\n name: user.name,\n given_name: user.given_name,\n family_name: user.family_name,\n picture: user.picture,\n }\n : null,\n async signIn({ returnTo, redirectUri, consent, connection } = {}) {\n // A token from a previous Auth0 session must not stand in for the coming one.\n rememberAuth0Token(null)\n await loginWithRedirect({\n ...(returnTo ? { appState: { returnTo } } : {}),\n ...(redirectUri || consent || connection\n ? {\n authorizationParams: {\n ...(redirectUri ? { redirect_uri: redirectUri } : {}),\n ...(consent ? { prompt: 'consent' as const } : {}),\n ...(connection ? { connection } : {}),\n },\n }\n : {}),\n })\n },\n signOut({ returnTo } = {}) {\n void logout(returnTo ? { logoutParams: { returnTo } } : undefined)\n },\n getToken: () => getAccessTokenSilently().catch(() => null),\n continueUrl: (action, state) =>\n `https://${domain}/continue?redirect_uri=${encodeURIComponent(\n window.location.origin + callbackPath\n )}&action=${action}&state=${state}`,\n }),\n [isLoading, isAuthenticated, user, loginWithRedirect, logout, getAccessTokenSilently]\n )\n }\n return { useSignIn }\n}\n"]}
@@ -82,14 +82,15 @@ function auth0Sso({ domain, callbackPath = "/sso" }) {
82
82
  family_name: user.family_name,
83
83
  picture: user.picture
84
84
  } : null,
85
- async signIn({ returnTo, redirectUri, consent } = {}) {
85
+ async signIn({ returnTo, redirectUri, consent, connection } = {}) {
86
86
  rememberAuth0Token(null);
87
87
  await loginWithRedirect({
88
88
  ...returnTo ? { appState: { returnTo } } : {},
89
- ...redirectUri || consent ? {
89
+ ...redirectUri || consent || connection ? {
90
90
  authorizationParams: {
91
91
  ...redirectUri ? { redirect_uri: redirectUri } : {},
92
- ...consent ? { prompt: "consent" } : {}
92
+ ...consent ? { prompt: "consent" } : {},
93
+ ...connection ? { connection } : {}
93
94
  }
94
95
  } : {}
95
96
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/auth0/availability.ts","../../src/auth0/token-source.ts","../../src/auth0/Auth0Gate.tsx","../../src/auth0/sso.ts"],"names":["useAuth0"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Whether Auth0 can run in this browsing context. `auth0-spa-js` needs Web Crypto, which browsers\n * expose only on a SECURE ORIGIN (https, or `localhost`): a dev server reached over a LAN address\n * (`http://10.0.0.5:5173`) is not one. The site's own email + password sign-in does not need\n * Auth0, so the SSO affordances are hidden there rather than let them throw.\n */\nexport const isAuth0Available: boolean =\n typeof window !== 'undefined' && window.isSecureContext && !!window.crypto?.subtle\n","/**\n * Auth0 as the SDK client's `SsoTokenSource` (`createArbiClient({ sso: auth0TokenSource })`): the\n * token for a silent re-login of an SSO account. `Auth0Gate` registers Auth0's token getter once\n * Auth0 is signed in; the client asks only in SSO mode, which is also the cross-deployment guard\n * (Auth0's cache is shared by every deployment on the tenant).\n */\n\nimport type { SsoTokenSource } from '@arbidocs/client'\n\n/** How long a re-login waits for Auth0 to expose its token getter after a page load. */\nconst GETTER_WAIT_MS = 1_000\nconst GETTER_POLL_MS = 250\n\nlet tokenGetter: (() => Promise<string>) | null = null\nlet lastToken: string | null = null\n\n/** Auth0's token getter, once signed in there (`Auth0Gate`); `null` to drop it. */\nexport function setAuth0TokenGetter(getter: (() => Promise<string>) | null): void {\n tokenGetter = getter\n}\n\n/** The last token Auth0 gave (the re-login's fallback); `null` to forget it. */\nexport function rememberAuth0Token(token: string | null): void {\n lastToken = token\n}\n\nexport const auth0TokenSource: SsoTokenSource = {\n async getToken() {\n // On a page load the getter may not exist yet: wait up to 1s for it, then fall back to the\n // last token Auth0 gave.\n for (let waited = 0; ; waited += GETTER_POLL_MS) {\n if (tokenGetter) {\n try {\n const token = await tokenGetter()\n if (token) return token\n break\n } catch (error) {\n // Auth0 not settled yet: try again until the wait is over.\n console.error('[SSO] Failed to get the Auth0 token:', error)\n }\n }\n if (waited >= GETTER_WAIT_MS) break\n if (waited === 0) console.info('[SSO] No Auth0 token getter yet - waiting for Auth0')\n await new Promise((resolve) => setTimeout(resolve, GETTER_POLL_MS))\n }\n return lastToken\n },\n}\n","/**\n * Auth0Gate — mount Auth0 only where it can actually run.\n *\n * `auth0-spa-js` requires Web Crypto, which the browser only exposes on a SECURE\n * ORIGIN (https, or `localhost`). Reached over a LAN address — `http://10.0.0.5:5173`,\n * the way a dev server started with `--host` is usually opened — it throws\n * \"auth0-spa-js must run on a secure origin\" while `Auth0Provider` initialises,\n * and the app never boots.\n *\n * That is a shame, because ARBI's own email + password login does not need Auth0\n * at all: Auth0 backs the SSO buttons and the hosted password-reset flow. So on an\n * insecure origin we render an INERT Auth0 context instead of the real provider.\n * The app boots, native sign-in works, and the SSO paths are hidden (see\n * `isAuth0Available`) rather than throwing when clicked.\n *\n * It is the site's `Auth0Gate`: mounted once around the app, it is also where the re-login gets\n * Auth0's token (`auth0TokenSource`).\n *\n * Note the context must be inert, not absent: `useAuth0()` outside a provider\n * returns `isLoading: true` forever, which would hang `App` on its loading screen.\n */\n\nimport { useEffect, type ReactNode } from 'react'\nimport {\n Auth0Context,\n Auth0Provider,\n initialContext,\n useAuth0,\n type Auth0ProviderOptions,\n} from '@auth0/auth0-react'\nimport { isAuth0Available } from './availability'\nimport { rememberAuth0Token, setAuth0TokenGetter } from './token-source'\n\n/** Rejects rather than silently no-oping, so a stray SSO call is visible in dev. */\nfunction unavailable(): never {\n throw new Error(\n 'Auth0 is unavailable on a non-secure origin. Open the app over https or on localhost.'\n )\n}\n\n/**\n * A settled, signed-out Auth0 context, built from the library's own default so it\n * cannot drift as the interface grows. `isLoading: false` is the load-bearing\n * override — it lets `App` finish booting instead of waiting on a provider that\n * will never initialise. The auth methods keep the defaults' throwing stubs.\n */\nconst INERT_CONTEXT = { ...initialContext, isLoading: false, getAccessTokenSilently: unavailable }\n\n/**\n * Hands Auth0's token getter to the re-login (`auth0TokenSource`) once Auth0 is signed in, and\n * keeps its last token as the fallback. The client asks for it only in SSO mode.\n */\nfunction Auth0TokenBridge() {\n const { isAuthenticated, isLoading, getAccessTokenSilently } = useAuth0()\n useEffect(() => {\n if (!isAuthenticated || isLoading) return\n setAuth0TokenGetter(getAccessTokenSilently)\n getAccessTokenSilently().then(rememberAuth0Token, () => {\n // Expected during registration: no token yet.\n })\n return () => setAuth0TokenGetter(null)\n }, [isAuthenticated, isLoading, getAccessTokenSilently])\n return null\n}\n\n/** Auth0 for the site, where it can run (see above); its token is handed to the re-login. */\nexport function Auth0Gate({\n children,\n ...options\n}: Auth0ProviderOptions & { children: ReactNode }) {\n if (!isAuth0Available) {\n return <Auth0Context.Provider value={INERT_CONTEXT}>{children}</Auth0Context.Provider>\n }\n return (\n <Auth0Provider {...options}>\n <Auth0TokenBridge />\n {children}\n </Auth0Provider>\n )\n}\n","/**\n * Auth0 as the site's single sign-on provider (the host configuration's `sso`): the sign-in kits\n * reach Auth0 through it, never through `@auth0/auth0-react` themselves.\n *\n * <ArbiHost config={{ sso: auth0Sso({ domain: 'auth.example.com' }), … }}>\n *\n * Needs `Auth0Gate` around the site.\n */\n\nimport { useMemo } from 'react'\nimport { useAuth0 } from '@auth0/auth0-react'\nimport type { SsoSignIn, SsoSupport } from '../connection/auth/support'\nimport { isAuth0Available } from './availability'\nimport { rememberAuth0Token } from './token-source'\n\nexport interface Auth0SsoOptions {\n /** The Auth0 tenant's domain: an account link continues there. */\n domain: string\n /** Where Auth0 comes back to after an account link (default: `<origin>/sso`). */\n callbackPath?: string\n}\n\n/** The SSO provider backed by Auth0. */\nexport function auth0Sso({ domain, callbackPath = '/sso' }: Auth0SsoOptions): SsoSupport {\n function useSignIn(): SsoSignIn {\n const { isLoading, isAuthenticated, user, loginWithRedirect, logout, getAccessTokenSilently } =\n useAuth0()\n return useMemo(\n () => ({\n available: isAuth0Available,\n isLoading,\n isAuthenticated,\n user: user?.sub\n ? {\n sub: user.sub,\n email: user.email,\n name: user.name,\n given_name: user.given_name,\n family_name: user.family_name,\n picture: user.picture,\n }\n : null,\n async signIn({ returnTo, redirectUri, consent } = {}) {\n // A token from a previous Auth0 session must not stand in for the coming one.\n rememberAuth0Token(null)\n await loginWithRedirect({\n ...(returnTo ? { appState: { returnTo } } : {}),\n ...(redirectUri || consent\n ? {\n authorizationParams: {\n ...(redirectUri ? { redirect_uri: redirectUri } : {}),\n ...(consent ? { prompt: 'consent' as const } : {}),\n },\n }\n : {}),\n })\n },\n signOut({ returnTo } = {}) {\n void logout(returnTo ? { logoutParams: { returnTo } } : undefined)\n },\n getToken: () => getAccessTokenSilently().catch(() => null),\n continueUrl: (action, state) =>\n `https://${domain}/continue?redirect_uri=${encodeURIComponent(\n window.location.origin + callbackPath\n )}&action=${action}&state=${state}`,\n }),\n [isLoading, isAuthenticated, user, loginWithRedirect, logout, getAccessTokenSilently]\n )\n }\n return { useSignIn }\n}\n"]}
1
+ {"version":3,"sources":["../../src/auth0/availability.ts","../../src/auth0/token-source.ts","../../src/auth0/Auth0Gate.tsx","../../src/auth0/sso.ts"],"names":["useAuth0"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Whether Auth0 can run in this browsing context. `auth0-spa-js` needs Web Crypto, which browsers\n * expose only on a SECURE ORIGIN (https, or `localhost`): a dev server reached over a LAN address\n * (`http://10.0.0.5:5173`) is not one. The site's own email + password sign-in does not need\n * Auth0, so the SSO affordances are hidden there rather than let them throw.\n */\nexport const isAuth0Available: boolean =\n typeof window !== 'undefined' && window.isSecureContext && !!window.crypto?.subtle\n","/**\n * Auth0 as the SDK client's `SsoTokenSource` (`createArbiClient({ sso: auth0TokenSource })`): the\n * token for a silent re-login of an SSO account. `Auth0Gate` registers Auth0's token getter once\n * Auth0 is signed in; the client asks only in SSO mode, which is also the cross-deployment guard\n * (Auth0's cache is shared by every deployment on the tenant).\n */\n\nimport type { SsoTokenSource } from '@arbidocs/client'\n\n/** How long a re-login waits for Auth0 to expose its token getter after a page load. */\nconst GETTER_WAIT_MS = 1_000\nconst GETTER_POLL_MS = 250\n\nlet tokenGetter: (() => Promise<string>) | null = null\nlet lastToken: string | null = null\n\n/** Auth0's token getter, once signed in there (`Auth0Gate`); `null` to drop it. */\nexport function setAuth0TokenGetter(getter: (() => Promise<string>) | null): void {\n tokenGetter = getter\n}\n\n/** The last token Auth0 gave (the re-login's fallback); `null` to forget it. */\nexport function rememberAuth0Token(token: string | null): void {\n lastToken = token\n}\n\nexport const auth0TokenSource: SsoTokenSource = {\n async getToken() {\n // On a page load the getter may not exist yet: wait up to 1s for it, then fall back to the\n // last token Auth0 gave.\n for (let waited = 0; ; waited += GETTER_POLL_MS) {\n if (tokenGetter) {\n try {\n const token = await tokenGetter()\n if (token) return token\n break\n } catch (error) {\n // Auth0 not settled yet: try again until the wait is over.\n console.error('[SSO] Failed to get the Auth0 token:', error)\n }\n }\n if (waited >= GETTER_WAIT_MS) break\n if (waited === 0) console.info('[SSO] No Auth0 token getter yet - waiting for Auth0')\n await new Promise((resolve) => setTimeout(resolve, GETTER_POLL_MS))\n }\n return lastToken\n },\n}\n","/**\n * Auth0Gate — mount Auth0 only where it can actually run.\n *\n * `auth0-spa-js` requires Web Crypto, which the browser only exposes on a SECURE\n * ORIGIN (https, or `localhost`). Reached over a LAN address — `http://10.0.0.5:5173`,\n * the way a dev server started with `--host` is usually opened — it throws\n * \"auth0-spa-js must run on a secure origin\" while `Auth0Provider` initialises,\n * and the app never boots.\n *\n * That is a shame, because ARBI's own email + password login does not need Auth0\n * at all: Auth0 backs the SSO buttons and the hosted password-reset flow. So on an\n * insecure origin we render an INERT Auth0 context instead of the real provider.\n * The app boots, native sign-in works, and the SSO paths are hidden (see\n * `isAuth0Available`) rather than throwing when clicked.\n *\n * It is the site's `Auth0Gate`: mounted once around the app, it is also where the re-login gets\n * Auth0's token (`auth0TokenSource`).\n *\n * Note the context must be inert, not absent: `useAuth0()` outside a provider\n * returns `isLoading: true` forever, which would hang `App` on its loading screen.\n */\n\nimport { useEffect, type ReactNode } from 'react'\nimport {\n Auth0Context,\n Auth0Provider,\n initialContext,\n useAuth0,\n type Auth0ProviderOptions,\n} from '@auth0/auth0-react'\nimport { isAuth0Available } from './availability'\nimport { rememberAuth0Token, setAuth0TokenGetter } from './token-source'\n\n/** Rejects rather than silently no-oping, so a stray SSO call is visible in dev. */\nfunction unavailable(): never {\n throw new Error(\n 'Auth0 is unavailable on a non-secure origin. Open the app over https or on localhost.'\n )\n}\n\n/**\n * A settled, signed-out Auth0 context, built from the library's own default so it\n * cannot drift as the interface grows. `isLoading: false` is the load-bearing\n * override — it lets `App` finish booting instead of waiting on a provider that\n * will never initialise. The auth methods keep the defaults' throwing stubs.\n */\nconst INERT_CONTEXT = { ...initialContext, isLoading: false, getAccessTokenSilently: unavailable }\n\n/**\n * Hands Auth0's token getter to the re-login (`auth0TokenSource`) once Auth0 is signed in, and\n * keeps its last token as the fallback. The client asks for it only in SSO mode.\n */\nfunction Auth0TokenBridge() {\n const { isAuthenticated, isLoading, getAccessTokenSilently } = useAuth0()\n useEffect(() => {\n if (!isAuthenticated || isLoading) return\n setAuth0TokenGetter(getAccessTokenSilently)\n getAccessTokenSilently().then(rememberAuth0Token, () => {\n // Expected during registration: no token yet.\n })\n return () => setAuth0TokenGetter(null)\n }, [isAuthenticated, isLoading, getAccessTokenSilently])\n return null\n}\n\n/** Auth0 for the site, where it can run (see above); its token is handed to the re-login. */\nexport function Auth0Gate({\n children,\n ...options\n}: Auth0ProviderOptions & { children: ReactNode }) {\n if (!isAuth0Available) {\n return <Auth0Context.Provider value={INERT_CONTEXT}>{children}</Auth0Context.Provider>\n }\n return (\n <Auth0Provider {...options}>\n <Auth0TokenBridge />\n {children}\n </Auth0Provider>\n )\n}\n","/**\n * Auth0 as the site's single sign-on provider (the host configuration's `sso`): the sign-in kits\n * reach Auth0 through it, never through `@auth0/auth0-react` themselves.\n *\n * <ArbiHost config={{ sso: auth0Sso({ domain: 'auth.example.com' }), … }}>\n *\n * Needs `Auth0Gate` around the site.\n */\n\nimport { useMemo } from 'react'\nimport { useAuth0 } from '@auth0/auth0-react'\nimport type { SsoSignIn, SsoSupport } from '../connection/auth/support'\nimport { isAuth0Available } from './availability'\nimport { rememberAuth0Token } from './token-source'\n\nexport interface Auth0SsoOptions {\n /** The Auth0 tenant's domain: an account link continues there. */\n domain: string\n /** Where Auth0 comes back to after an account link (default: `<origin>/sso`). */\n callbackPath?: string\n}\n\n/** The SSO provider backed by Auth0. */\nexport function auth0Sso({ domain, callbackPath = '/sso' }: Auth0SsoOptions): SsoSupport {\n function useSignIn(): SsoSignIn {\n const { isLoading, isAuthenticated, user, loginWithRedirect, logout, getAccessTokenSilently } =\n useAuth0()\n return useMemo(\n () => ({\n available: isAuth0Available,\n isLoading,\n isAuthenticated,\n user: user?.sub\n ? {\n sub: user.sub,\n email: user.email,\n name: user.name,\n given_name: user.given_name,\n family_name: user.family_name,\n picture: user.picture,\n }\n : null,\n async signIn({ returnTo, redirectUri, consent, connection } = {}) {\n // A token from a previous Auth0 session must not stand in for the coming one.\n rememberAuth0Token(null)\n await loginWithRedirect({\n ...(returnTo ? { appState: { returnTo } } : {}),\n ...(redirectUri || consent || connection\n ? {\n authorizationParams: {\n ...(redirectUri ? { redirect_uri: redirectUri } : {}),\n ...(consent ? { prompt: 'consent' as const } : {}),\n ...(connection ? { connection } : {}),\n },\n }\n : {}),\n })\n },\n signOut({ returnTo } = {}) {\n void logout(returnTo ? { logoutParams: { returnTo } } : undefined)\n },\n getToken: () => getAccessTokenSilently().catch(() => null),\n continueUrl: (action, state) =>\n `https://${domain}/continue?redirect_uri=${encodeURIComponent(\n window.location.origin + callbackPath\n )}&action=${action}&state=${state}`,\n }),\n [isLoading, isAuthenticated, user, loginWithRedirect, logout, getAccessTokenSilently]\n )\n }\n return { useSignIn }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { TYPED_SIGNATURE_STYLE, AdoptSignatureDialog } from './chunk-TBNXJHTP.js';
2
+ import { TYPED_SIGNATURE_STYLE, AdoptSignatureDialog } from './chunk-IA5BYEO7.js';
3
3
  import { ModalScaffold } from './chunk-TX2ZICS7.js';
4
4
  import { useRef, useState, useMemo, useEffect, useCallback } from 'react';
5
5
  import { X, ArrowRight, ArrowLeft, Check } from 'lucide-react';
@@ -805,5 +805,5 @@ function SharedFilesInbox() {
805
805
  }
806
806
 
807
807
  export { GuidedSigningViewer, SIGNER_COLORS, SharedFileView, SharedFilesInbox, SignatureFieldsOverlay, signingDate };
808
- //# sourceMappingURL=chunk-BQNDBWLB.js.map
809
- //# sourceMappingURL=chunk-BQNDBWLB.js.map
808
+ //# sourceMappingURL=chunk-4ML5AMMO.js.map
809
+ //# sourceMappingURL=chunk-4ML5AMMO.js.map