@june-ai/june-ui 0.2.11 → 0.2.13

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.
@@ -3705,7 +3705,7 @@ var SAVE_LABEL = {
3705
3705
  error: "Save failed"
3706
3706
  };
3707
3707
  var ZOOM_STEPS = [0.5, 0.67, 0.75, 0.9, 1, 1.1, 1.25, 1.5, 1.75, 2];
3708
- var stepZoom = (z2, dir) => dir > 0 ? _nullishCoalesce(ZOOM_STEPS.find((s) => s > z2 + 1e-3), () => ( z2)) : _nullishCoalesce([...ZOOM_STEPS].reverse().find((s) => s < z2 - 1e-3), () => ( z2));
3708
+ var stepZoom = (z4, dir) => dir > 0 ? _nullishCoalesce(ZOOM_STEPS.find((s) => s > z4 + 1e-3), () => ( z4)) : _nullishCoalesce([...ZOOM_STEPS].reverse().find((s) => s < z4 - 1e-3), () => ( z4));
3709
3709
  function DocumentEditorImpl(props) {
3710
3710
  const {
3711
3711
  documentId,
@@ -4166,15 +4166,14 @@ function DocumentPreview(props) {
4166
4166
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "june-doc-card__title", children: title }),
4167
4167
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "june-doc-card__actions", children: [
4168
4168
  notice ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "june-doc-card__notice", children: notice }) : null,
4169
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { type: "button", className: "june-doc__btn june-doc__btn--icon june-doc__btn--ghost", "aria-label": "Copy document", title: "Copy", onClick: () => void handleCopy(), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon, { name: "copy", size: 16 }) }),
4170
+ editable ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { type: "button", className: "june-doc__btn june-doc__btn--icon june-doc__btn--ghost", "aria-label": "Edit document", title: "Edit", onClick: () => setOpen(true), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon, { name: "pencil", size: 16 }) }) : null,
4169
4171
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4170
4172
  Dropdown,
4171
4173
  {
4172
4174
  align: "end",
4173
4175
  className: "june-doc__menu",
4174
- trigger: ({ open: menuOpen, toggle }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "button", { type: "button", className: "june-doc__btn june-doc__btn--ghost", "aria-label": "Download", "aria-haspopup": "menu", "aria-expanded": menuOpen, onClick: toggle, children: [
4175
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon, { name: "download", size: 16 }),
4176
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: "Download" })
4177
- ] }),
4176
+ trigger: ({ open: menuOpen, toggle }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { type: "button", className: "june-doc__btn june-doc__btn--icon june-doc__btn--ghost", "aria-label": "Download", title: "Download", "aria-haspopup": "menu", "aria-expanded": menuOpen, onClick: toggle, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon, { name: "download", size: 16 }) }),
4178
4177
  children: (dismiss) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { role: "menu", "aria-label": "Download options", children: formats.map((format2) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4179
4178
  "button",
4180
4179
  {
@@ -4190,9 +4189,7 @@ function DocumentPreview(props) {
4190
4189
  format2
4191
4190
  )) })
4192
4191
  }
4193
- ),
4194
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { type: "button", className: "june-doc__btn june-doc__btn--icon june-doc__btn--ghost", "aria-label": "Copy document", title: "Copy", onClick: () => void handleCopy(), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon, { name: "copy", size: 16 }) }),
4195
- editable ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { type: "button", className: "june-doc__btn june-doc__btn--icon june-doc__btn--ghost", "aria-label": "Edit document", title: "Edit", onClick: () => setOpen(true), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon, { name: "pencil", size: 16 }) }) : null
4192
+ )
4196
4193
  ] })
4197
4194
  ] }),
4198
4195
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "june-doc-card__canvas", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "june-doc-card__sheet", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "june-doc__prose", dangerouslySetInnerHTML: { __html: html } }) }) })
@@ -4448,6 +4445,115 @@ function ToolApproval({
4448
4445
  );
4449
4446
  }
4450
4447
 
4448
+ // src/features/tool-approval/tool-approval-card.tsx
4449
+
4450
+
4451
+
4452
+ var sideEffects = ["read", "write", "destructive"];
4453
+ var risks = ["low", "medium", "high"];
4454
+ var sideEffectLabel = {
4455
+ read: "Reads data",
4456
+ write: "Makes changes",
4457
+ destructive: "Deletes or overwrites"
4458
+ };
4459
+ var riskLabel = {
4460
+ low: "Low Risk",
4461
+ medium: "Medium Risk",
4462
+ high: "High Risk"
4463
+ };
4464
+ var cardProps = _v4.z.object({
4465
+ agent: _v4.z.string().describe("Assistant name shown in the request, e.g. Trademark Filing Assistant."),
4466
+ tool: _v4.z.string().describe("Tool the assistant wants to run, e.g. get_user_details."),
4467
+ sideEffect: _v4.z.enum(sideEffects).optional().describe('What the tool does: "read", "write", or "destructive".'),
4468
+ risk: _v4.z.enum(risks).optional().describe('Risk level: "low", "medium", or "high".')
4469
+ });
4470
+ var TOOL_APPROVAL_CARD_DESCRIPTION = "Custom component. Asks the user to approve, reject, or edit a tool call before it runs. ToolApprovalCard(agent, tool, sideEffect?, risk?). Use it when an assistant wants to run a tool that needs the user's decision.";
4471
+ function ShieldIcon() {
4472
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { className: "june-approval-card__glyph", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4473
+ "path",
4474
+ {
4475
+ fill: "currentColor",
4476
+ d: "M12 2.2 4.8 5.1v6.3c0 4.6 3 8.6 7.2 9.6 4.2-1 7.2-5 7.2-9.6V5.1L12 2.2zm0 2.1 5.4 2.1v4.9c0 3.5-2.2 6.6-5.4 7.5-3.2-.9-5.4-4-5.4-7.5V6.4L12 4.3z"
4477
+ }
4478
+ ) });
4479
+ }
4480
+ function CheckIcon() {
4481
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { className: "june-approval-card__btn-icon", viewBox: "0 0 16 16", "aria-hidden": "true", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { fill: "none", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round", d: "M3.2 8.2 6.4 11.4 12.8 4.6" }) });
4482
+ }
4483
+ function CrossIcon() {
4484
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { className: "june-approval-card__btn-icon", viewBox: "0 0 16 16", "aria-hidden": "true", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", d: "M4.2 4.2 11.8 11.8M11.8 4.2 4.2 11.8" }) });
4485
+ }
4486
+ function PencilIcon() {
4487
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { className: "june-approval-card__btn-icon", viewBox: "0 0 16 16", "aria-hidden": "true", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4488
+ "path",
4489
+ {
4490
+ fill: "none",
4491
+ stroke: "currentColor",
4492
+ strokeWidth: "1.4",
4493
+ strokeLinecap: "round",
4494
+ strokeLinejoin: "round",
4495
+ d: "M9.2 3.2 12.8 6.8 5.6 14H2v-3.6L9.2 3.2z"
4496
+ }
4497
+ ) });
4498
+ }
4499
+ function ToolApprovalCard({ agent, tool, sideEffect, risk }) {
4500
+ const triggerAction = _reactlang.useTriggerAction.call(void 0, );
4501
+ const { isStreaming } = useJuneRuntime();
4502
+ const payload = { agent, tool, sideEffect: _nullishCoalesce(sideEffect, () => ( null)), risk: _nullishCoalesce(risk, () => ( null)) };
4503
+ const choose = (choice, label) => {
4504
+ if (isStreaming) return;
4505
+ void triggerAction(`${label} ${tool}`, void 0, {
4506
+ type: `${choice}_tool`,
4507
+ params: { ...payload, choice }
4508
+ });
4509
+ };
4510
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "section", { className: "june-approval-card", "data-testid": "tool-approval-card", "data-risk": risk, "aria-label": `${agent} wants to run ${tool}`, children: [
4511
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "june-approval-card__icon", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ShieldIcon, {}) }),
4512
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "june-approval-card__body", children: [
4513
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "june-approval-card__title", children: [
4514
+ agent,
4515
+ " wants to run ",
4516
+ tool
4517
+ ] }),
4518
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "june-approval-card__meta", children: [
4519
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "june-approval-card__tool", children: tool }),
4520
+ sideEffect && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "june-approval-card__effect", children: sideEffectLabel[sideEffect] }),
4521
+ risk && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "june-approval-card__risk", "data-risk": risk, children: riskLabel[risk] })
4522
+ ] }),
4523
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "june-approval-card__actions", children: [
4524
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "button", { type: "button", className: "june-approval-card__button", "data-choice": "approve", disabled: isStreaming, onClick: () => choose("approve", "Approve"), children: [
4525
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CheckIcon, {}),
4526
+ "Approve"
4527
+ ] }),
4528
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "button", { type: "button", className: "june-approval-card__button", "data-choice": "reject", disabled: isStreaming, onClick: () => choose("reject", "Reject"), children: [
4529
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CrossIcon, {}),
4530
+ "Reject"
4531
+ ] }),
4532
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "button", { type: "button", className: "june-approval-card__button", "data-choice": "edit", disabled: isStreaming, onClick: () => choose("edit", "Edit"), children: [
4533
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PencilIcon, {}),
4534
+ "Edit"
4535
+ ] })
4536
+ ] })
4537
+ ] })
4538
+ ] });
4539
+ }
4540
+ var JuneToolApprovalCardComponent = defineComponent({
4541
+ name: "ToolApprovalCard",
4542
+ description: TOOL_APPROVAL_CARD_DESCRIPTION,
4543
+ schema: cardProps,
4544
+ component: ToolApprovalCard,
4545
+ slots: ["Card"]
4546
+ });
4547
+ function withToolApprovalCard(library) {
4548
+ try {
4549
+ return library.extend({
4550
+ components: { add: [{ component: JuneToolApprovalCardComponent, slots: ["Card"] }] }
4551
+ });
4552
+ } catch (e14) {
4553
+ return library.extend({ components: { add: [JuneToolApprovalCardComponent] } });
4554
+ }
4555
+ }
4556
+
4451
4557
  // src/features/tool-approval/tool-approval-list.tsx
4452
4558
 
4453
4559
  function ToolApprovalList({ approvals, pendingOnly = false, renderItem, labels, className }) {
@@ -4532,6 +4638,81 @@ function useToolApproval() {
4532
4638
  );
4533
4639
  }
4534
4640
 
4641
+ // src/features/retry-notice/retry-notice.tsx
4642
+
4643
+
4644
+
4645
+ var noticeProps = _v4.z.object({
4646
+ title: _v4.z.string().describe("Short heading, e.g. The response couldn't be completed."),
4647
+ message: _v4.z.string().describe("Why it failed and what the user can do next.")
4648
+ });
4649
+ var RETRY_NOTICE_DESCRIPTION = "Custom component. Shows that a response failed and offers Retry. RetryNotice(title, message). Use it when the model or request could not be completed.";
4650
+ function AlertIcon() {
4651
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "svg", { className: "june-retry__glyph", viewBox: "0 0 20 20", "aria-hidden": "true", children: [
4652
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "circle", { cx: "10", cy: "10", r: "9", fill: "currentColor" }),
4653
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { fill: "#fff", d: "M9.1 5.2h1.8v6.2H9.1V5.2zm0 7.6h1.8V14.6H9.1v-1.8z" })
4654
+ ] });
4655
+ }
4656
+ function RefreshIcon() {
4657
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "svg", { className: "june-retry__btn-icon", viewBox: "0 0 16 16", "aria-hidden": "true", children: [
4658
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4659
+ "path",
4660
+ {
4661
+ fill: "none",
4662
+ stroke: "currentColor",
4663
+ strokeWidth: "1.5",
4664
+ strokeLinecap: "round",
4665
+ strokeLinejoin: "round",
4666
+ d: "M13.2 8a5.2 5.2 0 1 1-1.4-3.5"
4667
+ }
4668
+ ),
4669
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", d: "M13.4 2.8v3.2H10.2" })
4670
+ ] });
4671
+ }
4672
+ function RetryNotice({ title, message }) {
4673
+ const triggerAction = _reactlang.useTriggerAction.call(void 0, );
4674
+ const { isStreaming } = useJuneRuntime();
4675
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "section", { className: "june-retry", "data-testid": "retry-notice", role: "alert", children: [
4676
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "june-retry__icon", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AlertIcon, {}) }),
4677
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "june-retry__copy", children: [
4678
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "june-retry__title", children: title }),
4679
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "june-retry__message", children: message })
4680
+ ] }),
4681
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
4682
+ "button",
4683
+ {
4684
+ type: "button",
4685
+ className: "june-retry__button",
4686
+ disabled: isStreaming,
4687
+ onClick: () => {
4688
+ if (isStreaming) return;
4689
+ void triggerAction("Retry", void 0, { type: "retry", params: { title, message } });
4690
+ },
4691
+ children: [
4692
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RefreshIcon, {}),
4693
+ "Retry"
4694
+ ]
4695
+ }
4696
+ )
4697
+ ] });
4698
+ }
4699
+ var JuneRetryNoticeComponent = defineComponent({
4700
+ name: "RetryNotice",
4701
+ description: RETRY_NOTICE_DESCRIPTION,
4702
+ schema: noticeProps,
4703
+ component: RetryNotice,
4704
+ slots: ["Card"]
4705
+ });
4706
+ function withRetryNotice(library) {
4707
+ try {
4708
+ return library.extend({
4709
+ components: { add: [{ component: JuneRetryNoticeComponent, slots: ["Card"] }] }
4710
+ });
4711
+ } catch (e15) {
4712
+ return library.extend({ components: { add: [JuneRetryNoticeComponent] } });
4713
+ }
4714
+ }
4715
+
4535
4716
  // src/adapters/langgraph/langgraph.ts
4536
4717
  var AI_TYPES = /* @__PURE__ */ new Set(["ai", "AIMessage", "AIMessageChunk"]);
4537
4718
  function isAiMessage(message) {
@@ -4553,7 +4734,7 @@ function messageContentToText(content) {
4553
4734
  function parse(data) {
4554
4735
  try {
4555
4736
  return JSON.parse(data);
4556
- } catch (e14) {
4737
+ } catch (e16) {
4557
4738
  return void 0;
4558
4739
  }
4559
4740
  }
@@ -4695,4 +4876,12 @@ function interruptToApprovalRequests(value, idPrefix = "interrupt") {
4695
4876
 
4696
4877
 
4697
4878
 
4698
- exports.useJuneTheme = useJuneTheme; exports.JuneRuntimeContext = JuneRuntimeContext; exports.useJuneRuntime = useJuneRuntime; exports.defaultParseActionEvent = defaultParseActionEvent; exports.runAction = runAction; exports.createActionHandler = createActionHandler; exports.JuneDocumentContext = JuneDocumentContext; exports.DocumentEditorConfigContext = DocumentEditorConfigContext; exports.useDocumentEditorConfig = useDocumentEditorConfig; exports.useDocumentOptions = useDocumentOptions; exports.mergeDocuments = mergeDocuments; exports.createDocumentStore = createDocumentStore; exports.rememberDocumentEcho = rememberDocumentEcho; exports.isDocumentEcho = isDocumentEcho; exports.getDefaultDocumentStore = getDefaultDocumentStore; exports.updateDocumentInProgram = updateDocumentInProgram; exports.readDocumentFromProgram = readDocumentFromProgram; exports.useDocumentBridge = useDocumentBridge; exports.DocumentBridge = DocumentBridge; exports.darkTheme = darkTheme; exports.lightTheme = lightTheme; exports.isThemeSet = isThemeSet; exports.resolveThemeVars = resolveThemeVars; exports.createTheme = createTheme; exports.useResolvedTheme = useResolvedTheme; exports.JuneThemeProvider = JuneThemeProvider; exports.normalizeProgram = normalizeProgram; exports.splitResponse = splitResponse; exports.resolveMixedContent = resolveMixedContent; exports.JuneErrorBoundary = JuneErrorBoundary; exports.MarkdownText = MarkdownText; exports.JuneRenderer = JuneRenderer; exports.validateComponentDefinition = validateComponentDefinition; exports.defineComponent = defineComponent; exports.isJuneComponent = isJuneComponent; exports.ComponentRegistry = ComponentRegistry; exports.createComponentRegistry = createComponentRegistry; exports.useRegistryLibrary = useRegistryLibrary; exports.defineJuneComponent = defineJuneComponent; exports.createJuneLibrary = createJuneLibrary; exports.defineJuneAction = defineJuneAction; exports.toAsyncIterable = toAsyncIterable; exports.consumeStream = consumeStream; exports.sseToText = sseToText; exports.jsonFieldExtractor = jsonFieldExtractor; exports.fetchStream = fetchStream; exports.useJuneStream = useJuneStream; exports.registerDocumentExporter = registerDocumentExporter; exports.listDocumentExporters = listDocumentExporters; exports.exportDocument = exportDocument; exports.downloadResult = downloadResult; exports.copyDocumentToClipboard = copyDocumentToClipboard; exports.ALL_EXPORT_FORMATS = ALL_EXPORT_FORMATS; exports.resolveDocumentPresentation = resolveDocumentPresentation; exports.documentPanelWidth = documentPanelWidth; exports.DOCUMENT_COMPONENT_DESCRIPTION = DOCUMENT_COMPONENT_DESCRIPTION; exports.DocumentEditor = DocumentEditor; exports.JuneDocumentEditorComponent = JuneDocumentEditorComponent; exports.withDocumentEditor = withDocumentEditor; exports.getDocumentEditorRules = getDocumentEditorRules; exports.getDocumentEditorInstructions = getDocumentEditorInstructions; exports.documentPromptOptions = documentPromptOptions; exports.serializeDocumentsForAgent = serializeDocumentsForAgent; exports.defaultToolApprovalLabels = defaultToolApprovalLabels; exports.ToolApproval = ToolApproval; exports.ToolApprovalList = ToolApprovalList; exports.useToolApproval = useToolApproval; exports.messageContentToText = messageContentToText; exports.createLangGraphExtractor = createLangGraphExtractor; exports.langGraphStreamOptions = langGraphStreamOptions; exports.readLangGraphInterrupts = readLangGraphInterrupts; exports.interruptToApprovalRequests = interruptToApprovalRequests;
4879
+
4880
+
4881
+
4882
+
4883
+
4884
+
4885
+
4886
+
4887
+ exports.useJuneTheme = useJuneTheme; exports.JuneRuntimeContext = JuneRuntimeContext; exports.useJuneRuntime = useJuneRuntime; exports.defaultParseActionEvent = defaultParseActionEvent; exports.runAction = runAction; exports.createActionHandler = createActionHandler; exports.JuneDocumentContext = JuneDocumentContext; exports.DocumentEditorConfigContext = DocumentEditorConfigContext; exports.useDocumentEditorConfig = useDocumentEditorConfig; exports.useDocumentOptions = useDocumentOptions; exports.mergeDocuments = mergeDocuments; exports.createDocumentStore = createDocumentStore; exports.rememberDocumentEcho = rememberDocumentEcho; exports.isDocumentEcho = isDocumentEcho; exports.getDefaultDocumentStore = getDefaultDocumentStore; exports.updateDocumentInProgram = updateDocumentInProgram; exports.readDocumentFromProgram = readDocumentFromProgram; exports.useDocumentBridge = useDocumentBridge; exports.DocumentBridge = DocumentBridge; exports.darkTheme = darkTheme; exports.lightTheme = lightTheme; exports.isThemeSet = isThemeSet; exports.resolveThemeVars = resolveThemeVars; exports.createTheme = createTheme; exports.useResolvedTheme = useResolvedTheme; exports.JuneThemeProvider = JuneThemeProvider; exports.normalizeProgram = normalizeProgram; exports.splitResponse = splitResponse; exports.resolveMixedContent = resolveMixedContent; exports.JuneErrorBoundary = JuneErrorBoundary; exports.MarkdownText = MarkdownText; exports.JuneRenderer = JuneRenderer; exports.validateComponentDefinition = validateComponentDefinition; exports.defineComponent = defineComponent; exports.isJuneComponent = isJuneComponent; exports.ComponentRegistry = ComponentRegistry; exports.createComponentRegistry = createComponentRegistry; exports.useRegistryLibrary = useRegistryLibrary; exports.defineJuneComponent = defineJuneComponent; exports.createJuneLibrary = createJuneLibrary; exports.defineJuneAction = defineJuneAction; exports.toAsyncIterable = toAsyncIterable; exports.consumeStream = consumeStream; exports.sseToText = sseToText; exports.jsonFieldExtractor = jsonFieldExtractor; exports.fetchStream = fetchStream; exports.useJuneStream = useJuneStream; exports.registerDocumentExporter = registerDocumentExporter; exports.listDocumentExporters = listDocumentExporters; exports.exportDocument = exportDocument; exports.downloadResult = downloadResult; exports.copyDocumentToClipboard = copyDocumentToClipboard; exports.ALL_EXPORT_FORMATS = ALL_EXPORT_FORMATS; exports.resolveDocumentPresentation = resolveDocumentPresentation; exports.documentPanelWidth = documentPanelWidth; exports.DOCUMENT_COMPONENT_DESCRIPTION = DOCUMENT_COMPONENT_DESCRIPTION; exports.DocumentEditor = DocumentEditor; exports.JuneDocumentEditorComponent = JuneDocumentEditorComponent; exports.withDocumentEditor = withDocumentEditor; exports.getDocumentEditorRules = getDocumentEditorRules; exports.getDocumentEditorInstructions = getDocumentEditorInstructions; exports.documentPromptOptions = documentPromptOptions; exports.serializeDocumentsForAgent = serializeDocumentsForAgent; exports.defaultToolApprovalLabels = defaultToolApprovalLabels; exports.ToolApproval = ToolApproval; exports.TOOL_APPROVAL_CARD_DESCRIPTION = TOOL_APPROVAL_CARD_DESCRIPTION; exports.ToolApprovalCard = ToolApprovalCard; exports.JuneToolApprovalCardComponent = JuneToolApprovalCardComponent; exports.withToolApprovalCard = withToolApprovalCard; exports.ToolApprovalList = ToolApprovalList; exports.useToolApproval = useToolApproval; exports.RETRY_NOTICE_DESCRIPTION = RETRY_NOTICE_DESCRIPTION; exports.RetryNotice = RetryNotice; exports.JuneRetryNoticeComponent = JuneRetryNoticeComponent; exports.withRetryNotice = withRetryNotice; exports.messageContentToText = messageContentToText; exports.createLangGraphExtractor = createLangGraphExtractor; exports.langGraphStreamOptions = langGraphStreamOptions; exports.readLangGraphInterrupts = readLangGraphInterrupts; exports.interruptToApprovalRequests = interruptToApprovalRequests;
@@ -3705,7 +3705,7 @@ var SAVE_LABEL = {
3705
3705
  error: "Save failed"
3706
3706
  };
3707
3707
  var ZOOM_STEPS = [0.5, 0.67, 0.75, 0.9, 1, 1.1, 1.25, 1.5, 1.75, 2];
3708
- var stepZoom = (z2, dir) => dir > 0 ? ZOOM_STEPS.find((s) => s > z2 + 1e-3) ?? z2 : [...ZOOM_STEPS].reverse().find((s) => s < z2 - 1e-3) ?? z2;
3708
+ var stepZoom = (z4, dir) => dir > 0 ? ZOOM_STEPS.find((s) => s > z4 + 1e-3) ?? z4 : [...ZOOM_STEPS].reverse().find((s) => s < z4 - 1e-3) ?? z4;
3709
3709
  function DocumentEditorImpl(props) {
3710
3710
  const {
3711
3711
  documentId,
@@ -4166,15 +4166,14 @@ function DocumentPreview(props) {
4166
4166
  /* @__PURE__ */ jsx17("span", { className: "june-doc-card__title", children: title }),
4167
4167
  /* @__PURE__ */ jsxs11("div", { className: "june-doc-card__actions", children: [
4168
4168
  notice ? /* @__PURE__ */ jsx17("span", { className: "june-doc-card__notice", children: notice }) : null,
4169
+ /* @__PURE__ */ jsx17("button", { type: "button", className: "june-doc__btn june-doc__btn--icon june-doc__btn--ghost", "aria-label": "Copy document", title: "Copy", onClick: () => void handleCopy(), children: /* @__PURE__ */ jsx17(Icon, { name: "copy", size: 16 }) }),
4170
+ editable ? /* @__PURE__ */ jsx17("button", { type: "button", className: "june-doc__btn june-doc__btn--icon june-doc__btn--ghost", "aria-label": "Edit document", title: "Edit", onClick: () => setOpen(true), children: /* @__PURE__ */ jsx17(Icon, { name: "pencil", size: 16 }) }) : null,
4169
4171
  /* @__PURE__ */ jsx17(
4170
4172
  Dropdown,
4171
4173
  {
4172
4174
  align: "end",
4173
4175
  className: "june-doc__menu",
4174
- trigger: ({ open: menuOpen, toggle }) => /* @__PURE__ */ jsxs11("button", { type: "button", className: "june-doc__btn june-doc__btn--ghost", "aria-label": "Download", "aria-haspopup": "menu", "aria-expanded": menuOpen, onClick: toggle, children: [
4175
- /* @__PURE__ */ jsx17(Icon, { name: "download", size: 16 }),
4176
- /* @__PURE__ */ jsx17("span", { children: "Download" })
4177
- ] }),
4176
+ trigger: ({ open: menuOpen, toggle }) => /* @__PURE__ */ jsx17("button", { type: "button", className: "june-doc__btn june-doc__btn--icon june-doc__btn--ghost", "aria-label": "Download", title: "Download", "aria-haspopup": "menu", "aria-expanded": menuOpen, onClick: toggle, children: /* @__PURE__ */ jsx17(Icon, { name: "download", size: 16 }) }),
4178
4177
  children: (dismiss) => /* @__PURE__ */ jsx17("div", { role: "menu", "aria-label": "Download options", children: formats.map((format2) => /* @__PURE__ */ jsx17(
4179
4178
  "button",
4180
4179
  {
@@ -4190,9 +4189,7 @@ function DocumentPreview(props) {
4190
4189
  format2
4191
4190
  )) })
4192
4191
  }
4193
- ),
4194
- /* @__PURE__ */ jsx17("button", { type: "button", className: "june-doc__btn june-doc__btn--icon june-doc__btn--ghost", "aria-label": "Copy document", title: "Copy", onClick: () => void handleCopy(), children: /* @__PURE__ */ jsx17(Icon, { name: "copy", size: 16 }) }),
4195
- editable ? /* @__PURE__ */ jsx17("button", { type: "button", className: "june-doc__btn june-doc__btn--icon june-doc__btn--ghost", "aria-label": "Edit document", title: "Edit", onClick: () => setOpen(true), children: /* @__PURE__ */ jsx17(Icon, { name: "pencil", size: 16 }) }) : null
4192
+ )
4196
4193
  ] })
4197
4194
  ] }),
4198
4195
  /* @__PURE__ */ jsx17("div", { className: "june-doc-card__canvas", children: /* @__PURE__ */ jsx17("div", { className: "june-doc-card__sheet", children: /* @__PURE__ */ jsx17("div", { className: "june-doc__prose", dangerouslySetInnerHTML: { __html: html } }) }) })
@@ -4448,13 +4445,122 @@ function ToolApproval({
4448
4445
  );
4449
4446
  }
4450
4447
 
4448
+ // src/features/tool-approval/tool-approval-card.tsx
4449
+ import { useTriggerAction } from "@openuidev/react-lang";
4450
+ import { z as z2 } from "zod/v4";
4451
+ import { jsx as jsx20, jsxs as jsxs13 } from "react/jsx-runtime";
4452
+ var sideEffects = ["read", "write", "destructive"];
4453
+ var risks = ["low", "medium", "high"];
4454
+ var sideEffectLabel = {
4455
+ read: "Reads data",
4456
+ write: "Makes changes",
4457
+ destructive: "Deletes or overwrites"
4458
+ };
4459
+ var riskLabel = {
4460
+ low: "Low Risk",
4461
+ medium: "Medium Risk",
4462
+ high: "High Risk"
4463
+ };
4464
+ var cardProps = z2.object({
4465
+ agent: z2.string().describe("Assistant name shown in the request, e.g. Trademark Filing Assistant."),
4466
+ tool: z2.string().describe("Tool the assistant wants to run, e.g. get_user_details."),
4467
+ sideEffect: z2.enum(sideEffects).optional().describe('What the tool does: "read", "write", or "destructive".'),
4468
+ risk: z2.enum(risks).optional().describe('Risk level: "low", "medium", or "high".')
4469
+ });
4470
+ var TOOL_APPROVAL_CARD_DESCRIPTION = "Custom component. Asks the user to approve, reject, or edit a tool call before it runs. ToolApprovalCard(agent, tool, sideEffect?, risk?). Use it when an assistant wants to run a tool that needs the user's decision.";
4471
+ function ShieldIcon() {
4472
+ return /* @__PURE__ */ jsx20("svg", { className: "june-approval-card__glyph", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ jsx20(
4473
+ "path",
4474
+ {
4475
+ fill: "currentColor",
4476
+ d: "M12 2.2 4.8 5.1v6.3c0 4.6 3 8.6 7.2 9.6 4.2-1 7.2-5 7.2-9.6V5.1L12 2.2zm0 2.1 5.4 2.1v4.9c0 3.5-2.2 6.6-5.4 7.5-3.2-.9-5.4-4-5.4-7.5V6.4L12 4.3z"
4477
+ }
4478
+ ) });
4479
+ }
4480
+ function CheckIcon() {
4481
+ return /* @__PURE__ */ jsx20("svg", { className: "june-approval-card__btn-icon", viewBox: "0 0 16 16", "aria-hidden": "true", children: /* @__PURE__ */ jsx20("path", { fill: "none", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round", d: "M3.2 8.2 6.4 11.4 12.8 4.6" }) });
4482
+ }
4483
+ function CrossIcon() {
4484
+ return /* @__PURE__ */ jsx20("svg", { className: "june-approval-card__btn-icon", viewBox: "0 0 16 16", "aria-hidden": "true", children: /* @__PURE__ */ jsx20("path", { fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", d: "M4.2 4.2 11.8 11.8M11.8 4.2 4.2 11.8" }) });
4485
+ }
4486
+ function PencilIcon() {
4487
+ return /* @__PURE__ */ jsx20("svg", { className: "june-approval-card__btn-icon", viewBox: "0 0 16 16", "aria-hidden": "true", children: /* @__PURE__ */ jsx20(
4488
+ "path",
4489
+ {
4490
+ fill: "none",
4491
+ stroke: "currentColor",
4492
+ strokeWidth: "1.4",
4493
+ strokeLinecap: "round",
4494
+ strokeLinejoin: "round",
4495
+ d: "M9.2 3.2 12.8 6.8 5.6 14H2v-3.6L9.2 3.2z"
4496
+ }
4497
+ ) });
4498
+ }
4499
+ function ToolApprovalCard({ agent, tool, sideEffect, risk }) {
4500
+ const triggerAction = useTriggerAction();
4501
+ const { isStreaming } = useJuneRuntime();
4502
+ const payload = { agent, tool, sideEffect: sideEffect ?? null, risk: risk ?? null };
4503
+ const choose = (choice, label) => {
4504
+ if (isStreaming) return;
4505
+ void triggerAction(`${label} ${tool}`, void 0, {
4506
+ type: `${choice}_tool`,
4507
+ params: { ...payload, choice }
4508
+ });
4509
+ };
4510
+ return /* @__PURE__ */ jsxs13("section", { className: "june-approval-card", "data-testid": "tool-approval-card", "data-risk": risk, "aria-label": `${agent} wants to run ${tool}`, children: [
4511
+ /* @__PURE__ */ jsx20("span", { className: "june-approval-card__icon", children: /* @__PURE__ */ jsx20(ShieldIcon, {}) }),
4512
+ /* @__PURE__ */ jsxs13("div", { className: "june-approval-card__body", children: [
4513
+ /* @__PURE__ */ jsxs13("p", { className: "june-approval-card__title", children: [
4514
+ agent,
4515
+ " wants to run ",
4516
+ tool
4517
+ ] }),
4518
+ /* @__PURE__ */ jsxs13("div", { className: "june-approval-card__meta", children: [
4519
+ /* @__PURE__ */ jsx20("span", { className: "june-approval-card__tool", children: tool }),
4520
+ sideEffect && /* @__PURE__ */ jsx20("span", { className: "june-approval-card__effect", children: sideEffectLabel[sideEffect] }),
4521
+ risk && /* @__PURE__ */ jsx20("span", { className: "june-approval-card__risk", "data-risk": risk, children: riskLabel[risk] })
4522
+ ] }),
4523
+ /* @__PURE__ */ jsxs13("div", { className: "june-approval-card__actions", children: [
4524
+ /* @__PURE__ */ jsxs13("button", { type: "button", className: "june-approval-card__button", "data-choice": "approve", disabled: isStreaming, onClick: () => choose("approve", "Approve"), children: [
4525
+ /* @__PURE__ */ jsx20(CheckIcon, {}),
4526
+ "Approve"
4527
+ ] }),
4528
+ /* @__PURE__ */ jsxs13("button", { type: "button", className: "june-approval-card__button", "data-choice": "reject", disabled: isStreaming, onClick: () => choose("reject", "Reject"), children: [
4529
+ /* @__PURE__ */ jsx20(CrossIcon, {}),
4530
+ "Reject"
4531
+ ] }),
4532
+ /* @__PURE__ */ jsxs13("button", { type: "button", className: "june-approval-card__button", "data-choice": "edit", disabled: isStreaming, onClick: () => choose("edit", "Edit"), children: [
4533
+ /* @__PURE__ */ jsx20(PencilIcon, {}),
4534
+ "Edit"
4535
+ ] })
4536
+ ] })
4537
+ ] })
4538
+ ] });
4539
+ }
4540
+ var JuneToolApprovalCardComponent = defineComponent({
4541
+ name: "ToolApprovalCard",
4542
+ description: TOOL_APPROVAL_CARD_DESCRIPTION,
4543
+ schema: cardProps,
4544
+ component: ToolApprovalCard,
4545
+ slots: ["Card"]
4546
+ });
4547
+ function withToolApprovalCard(library) {
4548
+ try {
4549
+ return library.extend({
4550
+ components: { add: [{ component: JuneToolApprovalCardComponent, slots: ["Card"] }] }
4551
+ });
4552
+ } catch {
4553
+ return library.extend({ components: { add: [JuneToolApprovalCardComponent] } });
4554
+ }
4555
+ }
4556
+
4451
4557
  // src/features/tool-approval/tool-approval-list.tsx
4452
- import { jsx as jsx20 } from "react/jsx-runtime";
4558
+ import { jsx as jsx21 } from "react/jsx-runtime";
4453
4559
  function ToolApprovalList({ approvals, pendingOnly = false, renderItem, labels, className }) {
4454
4560
  const entries = pendingOnly ? approvals.entries.filter((e) => e.status === "pending") : approvals.entries;
4455
4561
  if (entries.length === 0) return null;
4456
- return /* @__PURE__ */ jsx20("div", { className: className ? `june-approval-list ${className}` : "june-approval-list", children: entries.map(
4457
- (entry) => renderItem ? /* @__PURE__ */ jsx20("div", { children: renderItem(entry, approvals.decide) }, entry.request.id) : /* @__PURE__ */ jsx20(
4562
+ return /* @__PURE__ */ jsx21("div", { className: className ? `june-approval-list ${className}` : "june-approval-list", children: entries.map(
4563
+ (entry) => renderItem ? /* @__PURE__ */ jsx21("div", { children: renderItem(entry, approvals.decide) }, entry.request.id) : /* @__PURE__ */ jsx21(
4458
4564
  ToolApproval,
4459
4565
  {
4460
4566
  request: entry.request,
@@ -4532,6 +4638,81 @@ function useToolApproval() {
4532
4638
  );
4533
4639
  }
4534
4640
 
4641
+ // src/features/retry-notice/retry-notice.tsx
4642
+ import { useTriggerAction as useTriggerAction2 } from "@openuidev/react-lang";
4643
+ import { z as z3 } from "zod/v4";
4644
+ import { jsx as jsx22, jsxs as jsxs14 } from "react/jsx-runtime";
4645
+ var noticeProps = z3.object({
4646
+ title: z3.string().describe("Short heading, e.g. The response couldn't be completed."),
4647
+ message: z3.string().describe("Why it failed and what the user can do next.")
4648
+ });
4649
+ var RETRY_NOTICE_DESCRIPTION = "Custom component. Shows that a response failed and offers Retry. RetryNotice(title, message). Use it when the model or request could not be completed.";
4650
+ function AlertIcon() {
4651
+ return /* @__PURE__ */ jsxs14("svg", { className: "june-retry__glyph", viewBox: "0 0 20 20", "aria-hidden": "true", children: [
4652
+ /* @__PURE__ */ jsx22("circle", { cx: "10", cy: "10", r: "9", fill: "currentColor" }),
4653
+ /* @__PURE__ */ jsx22("path", { fill: "#fff", d: "M9.1 5.2h1.8v6.2H9.1V5.2zm0 7.6h1.8V14.6H9.1v-1.8z" })
4654
+ ] });
4655
+ }
4656
+ function RefreshIcon() {
4657
+ return /* @__PURE__ */ jsxs14("svg", { className: "june-retry__btn-icon", viewBox: "0 0 16 16", "aria-hidden": "true", children: [
4658
+ /* @__PURE__ */ jsx22(
4659
+ "path",
4660
+ {
4661
+ fill: "none",
4662
+ stroke: "currentColor",
4663
+ strokeWidth: "1.5",
4664
+ strokeLinecap: "round",
4665
+ strokeLinejoin: "round",
4666
+ d: "M13.2 8a5.2 5.2 0 1 1-1.4-3.5"
4667
+ }
4668
+ ),
4669
+ /* @__PURE__ */ jsx22("path", { fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", d: "M13.4 2.8v3.2H10.2" })
4670
+ ] });
4671
+ }
4672
+ function RetryNotice({ title, message }) {
4673
+ const triggerAction = useTriggerAction2();
4674
+ const { isStreaming } = useJuneRuntime();
4675
+ return /* @__PURE__ */ jsxs14("section", { className: "june-retry", "data-testid": "retry-notice", role: "alert", children: [
4676
+ /* @__PURE__ */ jsx22("span", { className: "june-retry__icon", children: /* @__PURE__ */ jsx22(AlertIcon, {}) }),
4677
+ /* @__PURE__ */ jsxs14("div", { className: "june-retry__copy", children: [
4678
+ /* @__PURE__ */ jsx22("p", { className: "june-retry__title", children: title }),
4679
+ /* @__PURE__ */ jsx22("p", { className: "june-retry__message", children: message })
4680
+ ] }),
4681
+ /* @__PURE__ */ jsxs14(
4682
+ "button",
4683
+ {
4684
+ type: "button",
4685
+ className: "june-retry__button",
4686
+ disabled: isStreaming,
4687
+ onClick: () => {
4688
+ if (isStreaming) return;
4689
+ void triggerAction("Retry", void 0, { type: "retry", params: { title, message } });
4690
+ },
4691
+ children: [
4692
+ /* @__PURE__ */ jsx22(RefreshIcon, {}),
4693
+ "Retry"
4694
+ ]
4695
+ }
4696
+ )
4697
+ ] });
4698
+ }
4699
+ var JuneRetryNoticeComponent = defineComponent({
4700
+ name: "RetryNotice",
4701
+ description: RETRY_NOTICE_DESCRIPTION,
4702
+ schema: noticeProps,
4703
+ component: RetryNotice,
4704
+ slots: ["Card"]
4705
+ });
4706
+ function withRetryNotice(library) {
4707
+ try {
4708
+ return library.extend({
4709
+ components: { add: [{ component: JuneRetryNoticeComponent, slots: ["Card"] }] }
4710
+ });
4711
+ } catch {
4712
+ return library.extend({ components: { add: [JuneRetryNoticeComponent] } });
4713
+ }
4714
+ }
4715
+
4535
4716
  // src/adapters/langgraph/langgraph.ts
4536
4717
  var AI_TYPES = /* @__PURE__ */ new Set(["ai", "AIMessage", "AIMessageChunk"]);
4537
4718
  function isAiMessage(message) {
@@ -4688,8 +4869,16 @@ export {
4688
4869
  serializeDocumentsForAgent,
4689
4870
  defaultToolApprovalLabels,
4690
4871
  ToolApproval,
4872
+ TOOL_APPROVAL_CARD_DESCRIPTION,
4873
+ ToolApprovalCard,
4874
+ JuneToolApprovalCardComponent,
4875
+ withToolApprovalCard,
4691
4876
  ToolApprovalList,
4692
4877
  useToolApproval,
4878
+ RETRY_NOTICE_DESCRIPTION,
4879
+ RetryNotice,
4880
+ JuneRetryNoticeComponent,
4881
+ withRetryNotice,
4693
4882
  messageContentToText,
4694
4883
  createLangGraphExtractor,
4695
4884
  langGraphStreamOptions,
@@ -71,7 +71,15 @@
71
71
 
72
72
 
73
73
 
74
- var _chunkTD6GKOURcjs = require('./chunk-TD6GKOUR.cjs');
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
+
82
+ var _chunkNMTAZCQDcjs = require('./chunk-NMTAZCQD.cjs');
75
83
 
76
84
 
77
85
 
@@ -153,4 +161,12 @@ var _chunkG6YPSE6Jcjs = require('./chunk-G6YPSE6J.cjs');
153
161
 
154
162
 
155
163
 
156
- exports.ALL_EXPORT_FORMATS = _chunkTD6GKOURcjs.ALL_EXPORT_FORMATS; exports.ComponentRegistry = _chunkTD6GKOURcjs.ComponentRegistry; exports.DOCUMENT_COMPONENT_DESCRIPTION = _chunkTD6GKOURcjs.DOCUMENT_COMPONENT_DESCRIPTION; exports.DocumentBridge = _chunkTD6GKOURcjs.DocumentBridge; exports.DocumentEditor = _chunkTD6GKOURcjs.DocumentEditor; exports.DocumentEditorConfigContext = _chunkTD6GKOURcjs.DocumentEditorConfigContext; exports.JuneDocumentContext = _chunkTD6GKOURcjs.JuneDocumentContext; exports.JuneDocumentEditorComponent = _chunkTD6GKOURcjs.JuneDocumentEditorComponent; exports.JuneError = _chunkG6YPSE6Jcjs.JuneError; exports.JuneErrorBoundary = _chunkTD6GKOURcjs.JuneErrorBoundary; exports.JuneRenderer = _chunkTD6GKOURcjs.JuneRenderer; exports.JuneRuntimeContext = _chunkTD6GKOURcjs.JuneRuntimeContext; exports.JuneThemeProvider = _chunkTD6GKOURcjs.JuneThemeProvider; exports.MarkdownText = _chunkTD6GKOURcjs.MarkdownText; exports.ToolApproval = _chunkTD6GKOURcjs.ToolApproval; exports.ToolApprovalList = _chunkTD6GKOURcjs.ToolApprovalList; exports.consumeStream = _chunkTD6GKOURcjs.consumeStream; exports.copyDocumentToClipboard = _chunkTD6GKOURcjs.copyDocumentToClipboard; exports.createActionHandler = _chunkTD6GKOURcjs.createActionHandler; exports.createComponentRegistry = _chunkTD6GKOURcjs.createComponentRegistry; exports.createDocumentStore = _chunkTD6GKOURcjs.createDocumentStore; exports.createJuneLibrary = _chunkTD6GKOURcjs.createJuneLibrary; exports.createLangGraphExtractor = _chunkTD6GKOURcjs.createLangGraphExtractor; exports.createTheme = _chunkTD6GKOURcjs.createTheme; exports.darkTheme = _chunkTD6GKOURcjs.darkTheme; exports.defaultParseActionEvent = _chunkTD6GKOURcjs.defaultParseActionEvent; exports.defaultToolApprovalLabels = _chunkTD6GKOURcjs.defaultToolApprovalLabels; exports.defineComponent = _chunkTD6GKOURcjs.defineComponent; exports.defineJuneAction = _chunkTD6GKOURcjs.defineJuneAction; exports.defineJuneComponent = _chunkTD6GKOURcjs.defineJuneComponent; exports.documentPanelWidth = _chunkTD6GKOURcjs.documentPanelWidth; exports.documentPromptOptions = _chunkTD6GKOURcjs.documentPromptOptions; exports.downloadResult = _chunkTD6GKOURcjs.downloadResult; exports.exportDocument = _chunkTD6GKOURcjs.exportDocument; exports.fetchStream = _chunkTD6GKOURcjs.fetchStream; exports.getDefaultDocumentStore = _chunkTD6GKOURcjs.getDefaultDocumentStore; exports.getDocumentEditorInstructions = _chunkTD6GKOURcjs.getDocumentEditorInstructions; exports.getDocumentEditorRules = _chunkTD6GKOURcjs.getDocumentEditorRules; exports.interruptToApprovalRequests = _chunkTD6GKOURcjs.interruptToApprovalRequests; exports.isDocumentEcho = _chunkTD6GKOURcjs.isDocumentEcho; exports.isJuneComponent = _chunkTD6GKOURcjs.isJuneComponent; exports.isJuneError = _chunkG6YPSE6Jcjs.isJuneError; exports.isThemeSet = _chunkTD6GKOURcjs.isThemeSet; exports.jsonFieldExtractor = _chunkTD6GKOURcjs.jsonFieldExtractor; exports.langGraphStreamOptions = _chunkTD6GKOURcjs.langGraphStreamOptions; exports.lightTheme = _chunkTD6GKOURcjs.lightTheme; exports.listDocumentExporters = _chunkTD6GKOURcjs.listDocumentExporters; exports.mergeDocuments = _chunkTD6GKOURcjs.mergeDocuments; exports.messageContentToText = _chunkTD6GKOURcjs.messageContentToText; exports.normalizeProgram = _chunkTD6GKOURcjs.normalizeProgram; exports.readDocumentFromProgram = _chunkTD6GKOURcjs.readDocumentFromProgram; exports.readLangGraphInterrupts = _chunkTD6GKOURcjs.readLangGraphInterrupts; exports.registerDocumentExporter = _chunkTD6GKOURcjs.registerDocumentExporter; exports.rememberDocumentEcho = _chunkTD6GKOURcjs.rememberDocumentEcho; exports.resolveDocumentPresentation = _chunkTD6GKOURcjs.resolveDocumentPresentation; exports.resolveMixedContent = _chunkTD6GKOURcjs.resolveMixedContent; exports.resolveThemeVars = _chunkTD6GKOURcjs.resolveThemeVars; exports.runAction = _chunkTD6GKOURcjs.runAction; exports.serializeDocumentsForAgent = _chunkTD6GKOURcjs.serializeDocumentsForAgent; exports.splitResponse = _chunkTD6GKOURcjs.splitResponse; exports.sseToText = _chunkTD6GKOURcjs.sseToText; exports.toAsyncIterable = _chunkTD6GKOURcjs.toAsyncIterable; exports.toJuneError = _chunkG6YPSE6Jcjs.toJuneError; exports.updateDocumentInProgram = _chunkTD6GKOURcjs.updateDocumentInProgram; exports.useDocumentBridge = _chunkTD6GKOURcjs.useDocumentBridge; exports.useDocumentEditorConfig = _chunkTD6GKOURcjs.useDocumentEditorConfig; exports.useDocumentOptions = _chunkTD6GKOURcjs.useDocumentOptions; exports.useJuneRuntime = _chunkTD6GKOURcjs.useJuneRuntime; exports.useJuneStream = _chunkTD6GKOURcjs.useJuneStream; exports.useJuneTheme = _chunkTD6GKOURcjs.useJuneTheme; exports.useRegistryLibrary = _chunkTD6GKOURcjs.useRegistryLibrary; exports.useResolvedTheme = _chunkTD6GKOURcjs.useResolvedTheme; exports.useToolApproval = _chunkTD6GKOURcjs.useToolApproval; exports.validateComponentDefinition = _chunkTD6GKOURcjs.validateComponentDefinition; exports.withDocumentEditor = _chunkTD6GKOURcjs.withDocumentEditor;
164
+
165
+
166
+
167
+
168
+
169
+
170
+
171
+
172
+ exports.ALL_EXPORT_FORMATS = _chunkNMTAZCQDcjs.ALL_EXPORT_FORMATS; exports.ComponentRegistry = _chunkNMTAZCQDcjs.ComponentRegistry; exports.DOCUMENT_COMPONENT_DESCRIPTION = _chunkNMTAZCQDcjs.DOCUMENT_COMPONENT_DESCRIPTION; exports.DocumentBridge = _chunkNMTAZCQDcjs.DocumentBridge; exports.DocumentEditor = _chunkNMTAZCQDcjs.DocumentEditor; exports.DocumentEditorConfigContext = _chunkNMTAZCQDcjs.DocumentEditorConfigContext; exports.JuneDocumentContext = _chunkNMTAZCQDcjs.JuneDocumentContext; exports.JuneDocumentEditorComponent = _chunkNMTAZCQDcjs.JuneDocumentEditorComponent; exports.JuneError = _chunkG6YPSE6Jcjs.JuneError; exports.JuneErrorBoundary = _chunkNMTAZCQDcjs.JuneErrorBoundary; exports.JuneRenderer = _chunkNMTAZCQDcjs.JuneRenderer; exports.JuneRetryNoticeComponent = _chunkNMTAZCQDcjs.JuneRetryNoticeComponent; exports.JuneRuntimeContext = _chunkNMTAZCQDcjs.JuneRuntimeContext; exports.JuneThemeProvider = _chunkNMTAZCQDcjs.JuneThemeProvider; exports.JuneToolApprovalCardComponent = _chunkNMTAZCQDcjs.JuneToolApprovalCardComponent; exports.MarkdownText = _chunkNMTAZCQDcjs.MarkdownText; exports.RETRY_NOTICE_DESCRIPTION = _chunkNMTAZCQDcjs.RETRY_NOTICE_DESCRIPTION; exports.RetryNotice = _chunkNMTAZCQDcjs.RetryNotice; exports.TOOL_APPROVAL_CARD_DESCRIPTION = _chunkNMTAZCQDcjs.TOOL_APPROVAL_CARD_DESCRIPTION; exports.ToolApproval = _chunkNMTAZCQDcjs.ToolApproval; exports.ToolApprovalCard = _chunkNMTAZCQDcjs.ToolApprovalCard; exports.ToolApprovalList = _chunkNMTAZCQDcjs.ToolApprovalList; exports.consumeStream = _chunkNMTAZCQDcjs.consumeStream; exports.copyDocumentToClipboard = _chunkNMTAZCQDcjs.copyDocumentToClipboard; exports.createActionHandler = _chunkNMTAZCQDcjs.createActionHandler; exports.createComponentRegistry = _chunkNMTAZCQDcjs.createComponentRegistry; exports.createDocumentStore = _chunkNMTAZCQDcjs.createDocumentStore; exports.createJuneLibrary = _chunkNMTAZCQDcjs.createJuneLibrary; exports.createLangGraphExtractor = _chunkNMTAZCQDcjs.createLangGraphExtractor; exports.createTheme = _chunkNMTAZCQDcjs.createTheme; exports.darkTheme = _chunkNMTAZCQDcjs.darkTheme; exports.defaultParseActionEvent = _chunkNMTAZCQDcjs.defaultParseActionEvent; exports.defaultToolApprovalLabels = _chunkNMTAZCQDcjs.defaultToolApprovalLabels; exports.defineComponent = _chunkNMTAZCQDcjs.defineComponent; exports.defineJuneAction = _chunkNMTAZCQDcjs.defineJuneAction; exports.defineJuneComponent = _chunkNMTAZCQDcjs.defineJuneComponent; exports.documentPanelWidth = _chunkNMTAZCQDcjs.documentPanelWidth; exports.documentPromptOptions = _chunkNMTAZCQDcjs.documentPromptOptions; exports.downloadResult = _chunkNMTAZCQDcjs.downloadResult; exports.exportDocument = _chunkNMTAZCQDcjs.exportDocument; exports.fetchStream = _chunkNMTAZCQDcjs.fetchStream; exports.getDefaultDocumentStore = _chunkNMTAZCQDcjs.getDefaultDocumentStore; exports.getDocumentEditorInstructions = _chunkNMTAZCQDcjs.getDocumentEditorInstructions; exports.getDocumentEditorRules = _chunkNMTAZCQDcjs.getDocumentEditorRules; exports.interruptToApprovalRequests = _chunkNMTAZCQDcjs.interruptToApprovalRequests; exports.isDocumentEcho = _chunkNMTAZCQDcjs.isDocumentEcho; exports.isJuneComponent = _chunkNMTAZCQDcjs.isJuneComponent; exports.isJuneError = _chunkG6YPSE6Jcjs.isJuneError; exports.isThemeSet = _chunkNMTAZCQDcjs.isThemeSet; exports.jsonFieldExtractor = _chunkNMTAZCQDcjs.jsonFieldExtractor; exports.langGraphStreamOptions = _chunkNMTAZCQDcjs.langGraphStreamOptions; exports.lightTheme = _chunkNMTAZCQDcjs.lightTheme; exports.listDocumentExporters = _chunkNMTAZCQDcjs.listDocumentExporters; exports.mergeDocuments = _chunkNMTAZCQDcjs.mergeDocuments; exports.messageContentToText = _chunkNMTAZCQDcjs.messageContentToText; exports.normalizeProgram = _chunkNMTAZCQDcjs.normalizeProgram; exports.readDocumentFromProgram = _chunkNMTAZCQDcjs.readDocumentFromProgram; exports.readLangGraphInterrupts = _chunkNMTAZCQDcjs.readLangGraphInterrupts; exports.registerDocumentExporter = _chunkNMTAZCQDcjs.registerDocumentExporter; exports.rememberDocumentEcho = _chunkNMTAZCQDcjs.rememberDocumentEcho; exports.resolveDocumentPresentation = _chunkNMTAZCQDcjs.resolveDocumentPresentation; exports.resolveMixedContent = _chunkNMTAZCQDcjs.resolveMixedContent; exports.resolveThemeVars = _chunkNMTAZCQDcjs.resolveThemeVars; exports.runAction = _chunkNMTAZCQDcjs.runAction; exports.serializeDocumentsForAgent = _chunkNMTAZCQDcjs.serializeDocumentsForAgent; exports.splitResponse = _chunkNMTAZCQDcjs.splitResponse; exports.sseToText = _chunkNMTAZCQDcjs.sseToText; exports.toAsyncIterable = _chunkNMTAZCQDcjs.toAsyncIterable; exports.toJuneError = _chunkG6YPSE6Jcjs.toJuneError; exports.updateDocumentInProgram = _chunkNMTAZCQDcjs.updateDocumentInProgram; exports.useDocumentBridge = _chunkNMTAZCQDcjs.useDocumentBridge; exports.useDocumentEditorConfig = _chunkNMTAZCQDcjs.useDocumentEditorConfig; exports.useDocumentOptions = _chunkNMTAZCQDcjs.useDocumentOptions; exports.useJuneRuntime = _chunkNMTAZCQDcjs.useJuneRuntime; exports.useJuneStream = _chunkNMTAZCQDcjs.useJuneStream; exports.useJuneTheme = _chunkNMTAZCQDcjs.useJuneTheme; exports.useRegistryLibrary = _chunkNMTAZCQDcjs.useRegistryLibrary; exports.useResolvedTheme = _chunkNMTAZCQDcjs.useResolvedTheme; exports.useToolApproval = _chunkNMTAZCQDcjs.useToolApproval; exports.validateComponentDefinition = _chunkNMTAZCQDcjs.validateComponentDefinition; exports.withDocumentEditor = _chunkNMTAZCQDcjs.withDocumentEditor; exports.withRetryNotice = _chunkNMTAZCQDcjs.withRetryNotice; exports.withToolApprovalCard = _chunkNMTAZCQDcjs.withToolApprovalCard;