@mgamadeus/ddd-agents 0.1.0-alpha.22 → 0.1.0-alpha.24

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 (164) hide show
  1. package/README.md +3 -2
  2. package/dist/chat.js +87 -893
  3. package/dist/chat.js.map +1 -1
  4. package/dist/chunks/ConversationMessageInputComposerWidgets-BxyaFBA6.js +631 -0
  5. package/dist/chunks/ConversationMessageInputComposerWidgets-BxyaFBA6.js.map +1 -0
  6. package/dist/chunks/{WebSearchResultsConversationWidget-BvnLWHyi.js → WebSearchResultsConversationWidget-as3p5bHw.js} +147 -1125
  7. package/dist/chunks/WebSearchResultsConversationWidget-as3p5bHw.js.map +1 -0
  8. package/dist/chunks/{canvas-behaviours-BRFR1ALE.js → canvas-behaviours-AvzKSYyv.js} +4 -4
  9. package/dist/chunks/{canvas-behaviours-BRFR1ALE.js.map → canvas-behaviours-AvzKSYyv.js.map} +1 -1
  10. package/dist/chunks/canvas-reducers-Bfp_i7lc.js +88 -0
  11. package/dist/chunks/canvas-reducers-Bfp_i7lc.js.map +1 -0
  12. package/dist/chunks/{canvasBodies-9SuF6NAB.js → canvasBodies-Cvu3l38p.js} +12 -6
  13. package/dist/chunks/canvasBodies-Cvu3l38p.js.map +1 -0
  14. package/dist/chunks/canvasStorage-EvQsGdto.js +65 -0
  15. package/dist/chunks/canvasStorage-EvQsGdto.js.map +1 -0
  16. package/dist/chunks/contract-BxmMxYPF.js +96 -0
  17. package/dist/chunks/contract-BxmMxYPF.js.map +1 -0
  18. package/dist/chunks/conversation-BEF0aesf.js +31 -0
  19. package/dist/chunks/conversation-BEF0aesf.js.map +1 -0
  20. package/dist/chunks/entity-detail-name-3A82gDAp.js +15 -0
  21. package/dist/chunks/entity-detail-name-3A82gDAp.js.map +1 -0
  22. package/dist/chunks/icon-names-Di6c4zLo.js +86 -0
  23. package/dist/chunks/icon-names-Di6c4zLo.js.map +1 -0
  24. package/dist/chunks/index-7Qc_3GbG.js +1046 -0
  25. package/dist/chunks/index-7Qc_3GbG.js.map +1 -0
  26. package/dist/chunks/{ConversationMarkdown-W7NHglmL.js → widget-click-signal-sources-DulRkNvZ.js} +54 -7
  27. package/dist/chunks/widget-click-signal-sources-DulRkNvZ.js.map +1 -0
  28. package/dist/chunks/{widget-image-readiness-signal-DeOuL89j.js → widget-image-readiness-signal-D3ci53xr.js} +2 -2
  29. package/dist/chunks/{widget-image-readiness-signal-DeOuL89j.js.map → widget-image-readiness-signal-D3ci53xr.js.map} +1 -1
  30. package/dist/chunks/{widget-name-resolver-DyIY6Zu4.js → widget-name-resolver-BGN3HpoG.js} +80 -117
  31. package/dist/chunks/widget-name-resolver-BGN3HpoG.js.map +1 -0
  32. package/dist/chunks/{withPollingChangeSubscription-BLDAWF-o.js → withPollingChangeSubscription-B16htQGd.js} +2 -2
  33. package/dist/chunks/{withPollingChangeSubscription-BLDAWF-o.js.map → withPollingChangeSubscription-B16htQGd.js.map} +1 -1
  34. package/dist/client-testing.js +91 -2
  35. package/dist/client-testing.js.map +1 -1
  36. package/dist/client.js +1 -1
  37. package/dist/contract.js +8 -27
  38. package/dist/contract.js.map +1 -1
  39. package/dist/files/chat/Conversation.module.scss +268 -0
  40. package/dist/files/chat/ConversationViewBody/ConversationViewBody.module.scss +336 -0
  41. package/dist/files/chat/_conversation-tokens.scss +37 -0
  42. package/dist/files/image-render/WidgetImageRender.module.scss +22 -0
  43. package/dist/files/kit/ComposedViewConversationWidget.md +59 -0
  44. package/dist/files/kit/components/data/data.preview-fixtures.json +3298 -0
  45. package/dist/files/kit/components/embedding/widget.preview-fixtures.json +147 -0
  46. package/dist/files/kit/components/entity/entity-link.preview-fixtures.json +340 -0
  47. package/dist/files/kit/components/form/form.preview-fixtures.json +319 -0
  48. package/dist/files/kit/components/inputs/button.preview-fixtures.json +301 -0
  49. package/dist/files/kit/components/inputs/checkbox.preview-fixtures.json +35 -0
  50. package/dist/files/kit/components/inputs/date-picker.preview-fixtures.json +36 -0
  51. package/dist/files/kit/components/inputs/input.preview-fixtures.json +55 -0
  52. package/dist/files/kit/components/inputs/radio-group.preview-fixtures.json +76 -0
  53. package/dist/files/kit/components/inputs/select.preview-fixtures.json +314 -0
  54. package/dist/files/kit/components/inputs/slider.preview-fixtures.json +178 -0
  55. package/dist/files/kit/components/inputs/tabs.preview-fixtures.json +304 -0
  56. package/dist/files/kit/components/inputs/textarea.preview-fixtures.json +37 -0
  57. package/dist/files/kit/components/layout/layout.preview-fixtures.json +892 -0
  58. package/dist/files/kit/components/map/map.preview-fixtures.json +339 -0
  59. package/dist/files/kit/components/media/image-group.preview-fixtures.json +228 -0
  60. package/dist/files/kit/components/media/image.preview-fixtures.json +61 -0
  61. package/dist/files/kit/components/media/video-card/video-card.preview-fixtures.json +121 -0
  62. package/dist/files/kit/components/media/video.preview-fixtures.json +68 -0
  63. package/dist/files/kit/components/rich/code.preview-fixtures.json +105 -0
  64. package/dist/files/kit/components/rich/diagram.preview-fixtures.json +89 -0
  65. package/dist/files/kit/components/rich/math.preview-fixtures.json +152 -0
  66. package/dist/files/kit/components/rich/svg.preview-fixtures.json +243 -0
  67. package/dist/files/kit/components/text/badge.preview-fixtures.json +44 -0
  68. package/dist/files/kit/components/text/caption.preview-fixtures.json +31 -0
  69. package/dist/files/kit/components/text/favicon.preview-fixtures.json +69 -0
  70. package/dist/files/kit/components/text/label.preview-fixtures.json +48 -0
  71. package/dist/files/kit/components/text/link.preview-fixtures.json +103 -0
  72. package/dist/files/kit/components/text/markdown.preview-fixtures.json +29 -0
  73. package/dist/files/kit/components/text/source-ref.preview-fixtures.json +51 -0
  74. package/dist/files/kit/components/text/text.preview-fixtures.json +106 -0
  75. package/dist/files/kit/components/text/title.preview-fixtures.json +172 -0
  76. package/dist/files/kit/composed-view-widget-contract.json +88 -0
  77. package/dist/files/kit/composed-view.preview-fixtures.json +376 -0
  78. package/dist/files/renderer/conversation-widget-layout.module.scss +47 -0
  79. package/dist/files/renderer/widget-tree/composed-node-schema.json +3428 -0
  80. package/dist/files/styles/_conversation-widget-container.scss +6 -0
  81. package/dist/files/styles/_media.scss +50 -0
  82. package/dist/files/styles/_spacings.scss +23 -0
  83. package/dist/files/styles/_surfaces.scss +28 -0
  84. package/dist/files/widgets/ClockConversationWidget/ClockConversationWidget.md +53 -0
  85. package/dist/files/widgets/ClockConversationWidget/clock.preview-fixtures.json +76 -0
  86. package/dist/files/widgets/ConceptExplainerConversationWidget/ConceptExplainerConversationWidget.md +86 -0
  87. package/dist/files/widgets/ConceptExplainerConversationWidget/concept-explainer.preview-fixtures.json +23 -0
  88. package/dist/files/widgets/ConversationSearchResultsConversationWidget/ConversationSearchResultsConversationWidget.md +59 -0
  89. package/dist/files/widgets/ConversationSearchResultsConversationWidget/conversation-search-results.preview-fixtures.json +85 -0
  90. package/dist/files/widgets/CurrencyConverterConversationWidget/CurrencyConverterConversationWidget.md +51 -0
  91. package/dist/files/widgets/CurrencyConverterConversationWidget/currency-converter.preview-fixtures.json +73 -0
  92. package/dist/files/widgets/CustomVisualizationConversationWidget/CustomVisualizationConversationWidget.md +83 -0
  93. package/dist/files/widgets/CustomVisualizationConversationWidget/custom-visualization.preview-fixtures.json +227 -0
  94. package/dist/files/widgets/CustomVisualizationConversationWidget/sandbox-frame/custom-visualization-frame.html +188 -0
  95. package/dist/files/widgets/EntityMentionConversationWidget/EntityMentionConversationWidget.md +55 -0
  96. package/dist/files/widgets/EntityMentionConversationWidget/entity-mention.preview-fixtures.json +55 -0
  97. package/dist/files/widgets/MultiChoiceConversationWidget/MultiChoiceConversationWidget.md +61 -0
  98. package/dist/files/widgets/MultiChoiceConversationWidget/multi-choice-widget-contract.json +43 -0
  99. package/dist/files/widgets/MultiChoiceConversationWidget/multi-choice.preview-fixtures.json +103 -0
  100. package/dist/files/widgets/QuickRepliesConversationWidget/QuickRepliesConversationWidget.md +65 -0
  101. package/dist/files/widgets/QuickRepliesConversationWidget/quick-replies-widget-contract.json +43 -0
  102. package/dist/files/widgets/QuickRepliesConversationWidget/quick-replies.preview-fixtures.json +45 -0
  103. package/dist/files/widgets/SuggestedActions/SuggestedActions.md +60 -0
  104. package/dist/files/widgets/SuggestedActions/suggested-actions.preview-fixtures.json +19 -0
  105. package/dist/files/widgets/ToolTraceConversationWidget/ToolTraceConversationWidget.md +48 -0
  106. package/dist/files/widgets/ToolTraceConversationWidget/tool-trace.preview-fixtures.json +32 -0
  107. package/dist/files/widgets/WebSearchResultsConversationWidget/WebSearchResultsConversationWidget.md +49 -0
  108. package/dist/files/widgets/WebSearchResultsConversationWidget/web-search-results.preview-fixtures.json +57 -0
  109. package/dist/files/widgets/WritingDraftConversationWidget/WritingDraftConversationWidget.md +66 -0
  110. package/dist/files/widgets/WritingDraftConversationWidget/writing-draft.preview-fixtures.json +129 -0
  111. package/dist/image-render.js +11 -10
  112. package/dist/image-render.js.map +1 -1
  113. package/dist/index.js +32 -27
  114. package/dist/index.js.map +1 -1
  115. package/dist/kit.js +11 -2
  116. package/dist/kit.js.map +1 -1
  117. package/dist/preview.js +47 -18
  118. package/dist/preview.js.map +1 -1
  119. package/dist/provider.js +71 -0
  120. package/dist/provider.js.map +1 -0
  121. package/dist/renderer.js +142 -62
  122. package/dist/renderer.js.map +1 -1
  123. package/dist/styles.css +86 -38
  124. package/dist/types/client/testing/test-conversation-widgets.d.ts +25 -0
  125. package/dist/types/client/testing/widget-hydration-stand-ins.d.ts +42 -0
  126. package/dist/types/entries/chat.d.ts +12 -0
  127. package/dist/types/entries/client-testing.d.ts +4 -0
  128. package/dist/types/entries/contract.d.ts +1 -0
  129. package/dist/types/entries/index.d.ts +4 -3
  130. package/dist/types/entries/kit.d.ts +7 -0
  131. package/dist/types/entries/preview.d.ts +2 -0
  132. package/dist/types/entries/provider.d.ts +1 -0
  133. package/dist/types/entries/renderer.d.ts +19 -1
  134. package/dist/types/entries/widgets.d.ts +13 -0
  135. package/dist/types/kit/components/data/apex-chart-component.d.ts +3 -0
  136. package/dist/types/kit/components/data/chart-model.d.ts +164 -0
  137. package/dist/types/kit/components/data/data-value-format.d.ts +44 -0
  138. package/dist/types/kit/components/data/use-chart-palette.d.ts +9 -0
  139. package/dist/types/kit/components/data/use-number-locale.d.ts +5 -0
  140. package/dist/types/kit/components/map/use-google-maps-auth-failure.d.ts +18 -0
  141. package/dist/types/kit/entity-detail/entity-detail-bodies.d.ts +2 -0
  142. package/dist/types/provider/index.d.ts +1 -0
  143. package/dist/types/renderer/_access/ConversationWidgetGateSkeleton.d.ts +6 -0
  144. package/dist/types/renderer/_agent-space/use-conversation-widget-agent-space-fallback.d.ts +16 -0
  145. package/dist/types/renderer/canvas/entity-detail-instance.d.ts +5 -3
  146. package/dist/types/renderer/canvas/use-anchor-widget-agent-space-key.d.ts +17 -0
  147. package/dist/types/renderer/conversationWidgetRegistry.d.ts +6 -0
  148. package/dist/types/renderer/read-conversation-widget-variant.d.ts +22 -0
  149. package/dist/types/renderer/widget-hydration/use-widget-hydration.d.ts +5 -0
  150. package/dist/types/widgets/EntityMentionConversationWidget/stories/EntityMentionAskFlowStory.d.ts +8 -0
  151. package/dist/types/widgets/_shared/CardFooter.d.ts +6 -0
  152. package/dist/types/widgets/_shared/WidgetLabel.d.ts +8 -0
  153. package/dist/types/widgets/_shared/entity-update-channel.d.ts +17 -0
  154. package/dist/types/widgets/_shared/use-element-visible.d.ts +6 -0
  155. package/dist/widgets.js +120 -27
  156. package/dist/widgets.js.map +1 -1
  157. package/package.json +74 -1
  158. package/public-api.json +779 -0
  159. package/dist/chunks/ConversationMarkdown-W7NHglmL.js.map +0 -1
  160. package/dist/chunks/WebSearchResultsConversationWidget-BvnLWHyi.js.map +0 -1
  161. package/dist/chunks/canvasBodies-9SuF6NAB.js.map +0 -1
  162. package/dist/chunks/decide-canvas-open-Ct-wnNEJ.js +0 -20
  163. package/dist/chunks/decide-canvas-open-Ct-wnNEJ.js.map +0 -1
  164. package/dist/chunks/widget-name-resolver-DyIY6Zu4.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"widgets.js","sources":["../src/widgets/_shared/modern/WidgetListRow.tsx","../src/widgets/_shared/modern/WidgetStatusChip.tsx","../src/widgets/_shared/modern/WidgetSurfaceSkeleton.tsx"],"sourcesContent":["import { Text } from \"../../../provider/components\";\nimport { classNames } from \"../../../provider/class-names\";\nimport type { ReactNode } from \"react\";\nimport styles from \"./WidgetListRow.module.scss\";\n\nexport interface WidgetListRowProps {\n /** Business content in the owner's language (no translation). */\n title: ReactNode;\n meta?: ReactNode;\n leading?: ReactNode;\n trailing?: ReactNode;\n /** Makes the row a native button (keyboard and screen reader included); never an onClick on a div. */\n onClick?: () => void;\n className?: string;\n testId?: string;\n}\n\n/** One row of a list inside a widget surface: title over muted meta, hairline-divided. */\nexport const WidgetListRow = (props: WidgetListRowProps) => {\n const { title, meta, leading, trailing, onClick, className, testId } = props;\n const rowClassName = classNames(\n styles.row,\n leading === undefined && styles.withoutLeading,\n onClick && styles.clickable,\n className,\n );\n const content = (\n <>\n {leading}\n <span className={styles.text}>\n <Text role=\"body\" weight=\"bold\" translate={false}>\n {title}\n </Text>\n {meta ? (\n <Text role=\"caption\" color=\"var(--agents-fg-light)\" translate={false}>\n {meta}\n </Text>\n ) : null}\n </span>\n {trailing ? <span className={styles.trailing}>{trailing}</span> : <span />}\n </>\n );\n if (onClick) {\n return (\n <button type=\"button\" className={rowClassName} onClick={onClick} data-testid={testId}>\n {content}\n </button>\n );\n }\n return (\n <div className={rowClassName} data-testid={testId}>\n {content}\n </div>\n );\n};\n","import { StatusChip, type AgentsStatusChipProps, type AgentsStatusChipTone } from \"../../../provider/components\";\n\nexport type WidgetStatusTone = AgentsStatusChipTone;\n\nexport type WidgetStatusChipProps = AgentsStatusChipProps;\n\n/**\n * The status chip of the chat widgets: the `StatusChip` component (in the app: the dashboard's status\n * pill), so the chat and the dashboard read the same.\n */\nexport const WidgetStatusChip = (props: WidgetStatusChipProps) => <StatusChip {...props} />;\n","import { Text } from \"../../../provider/components\";\nimport type { ReactNode } from \"react\";\nimport { SkeletonCircle, SkeletonLine } from \"../skeleton-primitives\";\nimport { WidgetSurface, type WidgetSurfaceLevel } from \"./WidgetSurface\";\nimport styles from \"./WidgetSurfaceSkeleton.module.scss\";\n\nexport interface WidgetSurfaceSkeletonProps {\n /** The widget's title — known before the data, so it is real text, never a skeleton. */\n title?: ReactNode;\n rowCount?: number;\n level?: WidgetSurfaceLevel;\n testId?: string;\n}\n\n/** The loading state shaped like the surface it stands for: the same surface, the title, then row-shaped blocks. */\nexport const WidgetSurfaceSkeleton = (props: WidgetSurfaceSkeletonProps) => {\n const { title, rowCount = 3, level = \"elevated\", testId } = props;\n return (\n <WidgetSurface level={level} testId={testId}>\n {title ? (\n <Text role=\"intro\" weight=\"bold\" translate={false}>\n {title}\n </Text>\n ) : null}\n <div className={styles.rows} aria-busy=\"true\">\n {Array.from({ length: rowCount }, (unused, rowIndex) => (\n <div key={rowIndex} className={styles.row}>\n <SkeletonCircle size={32} />\n <span className={styles.rowText}>\n <SkeletonLine width=\"60%\" height={12} />\n <SkeletonLine width=\"35%\" height={10} />\n </span>\n </div>\n ))}\n </div>\n </WidgetSurface>\n );\n};\n"],"names":["trailing","styles"],"mappings":";;;;;;;;;;;;;;;;AAkBO,MAAM,gBAAgB,CAAC,UAA8B;AAC1D,QAAM,EAAE,OAAO,MAAM,SAAS,UAAAA,WAAU,SAAS,WAAW,WAAW;AACvE,QAAM,eAAe;AAAA,IACnBC,SAAO;AAAA,IACP,YAAY,UAAaA,SAAO;AAAA,IAChC,WAAWA,SAAO;AAAA,IAClB;AAAA,EAAA;AAEF,QAAM,UACJ,qBAAA,UAAA,EACG,UAAA;AAAA,IAAA;AAAA,IACD,qBAAC,QAAA,EAAK,WAAWA,SAAO,MACtB,UAAA;AAAA,MAAA,oBAAC,QAAK,MAAK,QAAO,QAAO,QAAO,WAAW,OACxC,UAAA,MAAA,CACH;AAAA,MACC,OACC,oBAAC,MAAA,EAAK,MAAK,WAAU,OAAM,0BAAyB,WAAW,OAC5D,UAAA,KAAA,CACH,IACE;AAAA,IAAA,GACN;AAAA,IACCD,gCAAY,QAAA,EAAK,WAAWC,SAAO,UAAW,UAAAD,UAAA,CAAS,IAAU,oBAAC,QAAA,CAAA,CAAK;AAAA,EAAA,GAC1E;AAEF,MAAI,SAAS;AACX,WACE,oBAAC,YAAO,MAAK,UAAS,WAAW,cAAc,SAAkB,eAAa,QAC3E,UAAA,QAAA,CACH;AAAA,EAEJ;AACA,6BACG,OAAA,EAAI,WAAW,cAAc,eAAa,QACxC,UAAA,SACH;AAEJ;AC5CO,MAAM,mBAAmB,CAAC,UAAiC,oBAAC,YAAA,EAAY,GAAG,MAAA,CAAO;;;;;;;;;ACKlF,MAAM,wBAAwB,CAAC,UAAsC;AAC1E,QAAM,EAAE,OAAO,WAAW,GAAG,QAAQ,YAAY,WAAW;AAC5D,SACE,qBAAC,eAAA,EAAc,OAAc,QAC1B,UAAA;AAAA,IAAA,QACC,oBAAC,QAAK,MAAK,SAAQ,QAAO,QAAO,WAAW,OACzC,UAAA,MAAA,CACH,IACE;AAAA,IACJ,oBAAC,SAAI,WAAW,OAAO,MAAM,aAAU,QACpC,gBAAM,KAAK,EAAE,QAAQ,YAAY,CAAC,QAAQ,kCACxC,OAAA,EAAmB,WAAW,OAAO,KACpC,UAAA;AAAA,MAAA,oBAAC,gBAAA,EAAe,MAAM,GAAA,CAAI;AAAA,MAC1B,qBAAC,QAAA,EAAK,WAAW,OAAO,SACtB,UAAA;AAAA,QAAA,oBAAC,cAAA,EAAa,OAAM,OAAM,QAAQ,IAAI;AAAA,QACtC,oBAAC,cAAA,EAAa,OAAM,OAAM,QAAQ,GAAA,CAAI;AAAA,MAAA,EAAA,CACxC;AAAA,IAAA,EAAA,GALQ,QAMV,CACD,EAAA,CACH;AAAA,EAAA,GACF;AAEJ;"}
1
+ {"version":3,"file":"widgets.js","sources":["../src/widgets/_shared/modern/WidgetListRow.tsx","../src/widgets/_shared/modern/WidgetStatusChip.tsx","../src/widgets/_shared/modern/WidgetSurfaceSkeleton.tsx","../src/widgets/_shared/WidgetLabel.tsx","../src/widgets/_shared/CardFooter.tsx","../src/widgets/_shared/entity-update-channel.ts","../src/widgets/_shared/use-element-visible.ts"],"sourcesContent":["import { Text } from \"../../../provider/components\";\nimport { classNames } from \"../../../provider/class-names\";\nimport type { ReactNode } from \"react\";\nimport styles from \"./WidgetListRow.module.scss\";\n\nexport interface WidgetListRowProps {\n /** Business content in the owner's language (no translation). */\n title: ReactNode;\n meta?: ReactNode;\n leading?: ReactNode;\n trailing?: ReactNode;\n /** Makes the row a native button (keyboard and screen reader included); never an onClick on a div. */\n onClick?: () => void;\n className?: string;\n testId?: string;\n}\n\n/** One row of a list inside a widget surface: title over muted meta, hairline-divided. */\nexport const WidgetListRow = (props: WidgetListRowProps) => {\n const { title, meta, leading, trailing, onClick, className, testId } = props;\n const rowClassName = classNames(\n styles.row,\n leading === undefined && styles.withoutLeading,\n onClick && styles.clickable,\n className,\n );\n const content = (\n <>\n {leading}\n <span className={styles.text}>\n <Text role=\"body\" weight=\"bold\" translate={false}>\n {title}\n </Text>\n {meta ? (\n <Text role=\"caption\" color=\"var(--agents-fg-light)\" translate={false}>\n {meta}\n </Text>\n ) : null}\n </span>\n {trailing ? <span className={styles.trailing}>{trailing}</span> : <span />}\n </>\n );\n if (onClick) {\n return (\n <button type=\"button\" className={rowClassName} onClick={onClick} data-testid={testId}>\n {content}\n </button>\n );\n }\n return (\n <div className={rowClassName} data-testid={testId}>\n {content}\n </div>\n );\n};\n","import { StatusChip, type AgentsStatusChipProps, type AgentsStatusChipTone } from \"../../../provider/components\";\n\nexport type WidgetStatusTone = AgentsStatusChipTone;\n\nexport type WidgetStatusChipProps = AgentsStatusChipProps;\n\n/**\n * The status chip of the chat widgets: the `StatusChip` component (in the app: the dashboard's status\n * pill), so the chat and the dashboard read the same.\n */\nexport const WidgetStatusChip = (props: WidgetStatusChipProps) => <StatusChip {...props} />;\n","import { Text } from \"../../../provider/components\";\nimport type { ReactNode } from \"react\";\nimport { SkeletonCircle, SkeletonLine } from \"../skeleton-primitives\";\nimport { WidgetSurface, type WidgetSurfaceLevel } from \"./WidgetSurface\";\nimport styles from \"./WidgetSurfaceSkeleton.module.scss\";\n\nexport interface WidgetSurfaceSkeletonProps {\n /** The widget's title — known before the data, so it is real text, never a skeleton. */\n title?: ReactNode;\n rowCount?: number;\n level?: WidgetSurfaceLevel;\n testId?: string;\n}\n\n/** The loading state shaped like the surface it stands for: the same surface, the title, then row-shaped blocks. */\nexport const WidgetSurfaceSkeleton = (props: WidgetSurfaceSkeletonProps) => {\n const { title, rowCount = 3, level = \"elevated\", testId } = props;\n return (\n <WidgetSurface level={level} testId={testId}>\n {title ? (\n <Text role=\"intro\" weight=\"bold\" translate={false}>\n {title}\n </Text>\n ) : null}\n <div className={styles.rows} aria-busy=\"true\">\n {Array.from({ length: rowCount }, (unused, rowIndex) => (\n <div key={rowIndex} className={styles.row}>\n <SkeletonCircle size={32} />\n <span className={styles.rowText}>\n <SkeletonLine width=\"60%\" height={12} />\n <SkeletonLine width=\"35%\" height={10} />\n </span>\n </div>\n ))}\n </div>\n </WidgetSurface>\n );\n};\n","import { Text, type AgentsTextReplacements } from \"../../provider/components\";\nimport React from \"react\";\nimport styles from \"./WidgetLabel.module.scss\";\n\ninterface WidgetLabelProps {\n children: React.ReactNode;\n replacements?: AgentsTextReplacements;\n}\n\nexport const WidgetLabel = (props: WidgetLabelProps) => {\n const { children, replacements } = props;\n return (\n <Text\n className={styles.widgetLabel}\n role=\"help\"\n weight=\"medium\"\n color={\"--agents-fg-light\"}\n replacements={replacements}\n >\n {children}\n </Text>\n );\n};\n","import { classNames } from \"../../provider/class-names\";\nimport React from \"react\";\nimport { useIsEmailWidgetRender } from \"../../renderer/ConversationWidgetRenderContext\";\nimport styles from \"./CardFooter.module.scss\";\n\nexport const CardFooter = (props: { children: React.ReactNode; actionOnly?: boolean; className?: string }) => {\n const { children, actionOnly = true, className } = props;\n const isEmailRender = useIsEmailWidgetRender();\n if (isEmailRender && actionOnly) return null;\n return <div className={classNames(styles.cardFooter, className)}>{children}</div>;\n};\n","import { useSyncExternalStore } from \"react\";\n\n/** One published update: a strictly increasing revision, so a consumer reacts to each publication exactly once. */\nexport interface EntityUpdate<TUpdate> {\n readonly revision: number;\n readonly update: TUpdate;\n}\n\n/**\n * A tiny shared channel between a canvas BODY and the inline widget that opened it: the body publishes\n * \"this entity changed\" / \"this entity was removed\", the inline list applies or refetches. Stands in for callbacks\n * captured into a rendered canvas node: a body mounted from the canvas model has no closure into the\n * widget instance, and the widget instance may have been windowed out meanwhile. Module state with\n * `useSyncExternalStore`.\n */\nexport const createEntityUpdateChannel = <TUpdate>() => {\n let latest: EntityUpdate<TUpdate> | null = null;\n const listeners = new Set<() => void>();\n const subscribe = (listener: () => void) => {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n };\n const read = () => latest;\n return {\n publish: (update: TUpdate): void => {\n latest = { revision: (latest?.revision ?? 0) + 1, update };\n listeners.forEach((listener) => listener());\n },\n /** The latest publication (null before the first). Re-renders the consumer on every publication. */\n useLatestUpdate: (): EntityUpdate<TUpdate> | null => useSyncExternalStore(subscribe, read, read),\n };\n};\n","import { RefObject, useEffect, useState } from \"react\";\n\n/**\n * True while the element is in the viewport (IntersectionObserver) AND the document is visible — the widget polls only\n * when someone can see it. Environments without IntersectionObserver (jsdom) count as visible.\n */\nexport const useElementVisible = (ref: RefObject<HTMLElement | null>): boolean => {\n const [intersecting, setIntersecting] = useState<boolean>(true);\n const [documentVisible, setDocumentVisible] = useState<boolean>(\n typeof document === \"undefined\" || document.visibilityState !== \"hidden\",\n );\n\n useEffect(() => {\n const element = ref.current;\n if (!element || typeof IntersectionObserver === \"undefined\") return undefined;\n const observer = new IntersectionObserver((entries) => {\n setIntersecting(entries.some((entry) => entry.isIntersecting));\n });\n observer.observe(element);\n return () => observer.disconnect();\n }, [ref]);\n\n useEffect(() => {\n if (typeof document === \"undefined\") return undefined;\n const onChange = () => setDocumentVisible(document.visibilityState !== \"hidden\");\n document.addEventListener(\"visibilitychange\", onChange);\n return () => document.removeEventListener(\"visibilitychange\", onChange);\n }, []);\n\n return intersecting && documentVisible;\n};\n"],"names":["trailing","styles"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mgamadeus/ddd-agents",
3
- "version": "0.1.0-alpha.22",
3
+ "version": "0.1.0-alpha.24",
4
4
  "description": "The web frontend of the ddd-agents module: the agent chat, the widget renderer and the composed-view kit.",
5
5
  "keywords": [
6
6
  "ddd",
@@ -29,6 +29,7 @@
29
29
  "./dist/chat.js",
30
30
  "./dist/preview.js",
31
31
  "./dist/image-render.js",
32
+ "./dist/provider.js",
32
33
  "./dist/chunks/*.js"
33
34
  ],
34
35
  "exports": {
@@ -72,11 +73,83 @@
72
73
  "types": "./dist/types/entries/image-render.d.ts",
73
74
  "import": "./dist/image-render.js"
74
75
  },
76
+ "./provider": {
77
+ "types": "./dist/types/entries/provider.d.ts",
78
+ "import": "./dist/provider.js"
79
+ },
75
80
  "./styles.css": "./dist/styles.css",
81
+ "./kit/ComposedViewConversationWidget.md": "./dist/files/kit/ComposedViewConversationWidget.md",
82
+ "./widgets/ClockConversationWidget/ClockConversationWidget.md": "./dist/files/widgets/ClockConversationWidget/ClockConversationWidget.md",
83
+ "./widgets/ConceptExplainerConversationWidget/ConceptExplainerConversationWidget.md": "./dist/files/widgets/ConceptExplainerConversationWidget/ConceptExplainerConversationWidget.md",
84
+ "./widgets/ConversationSearchResultsConversationWidget/ConversationSearchResultsConversationWidget.md": "./dist/files/widgets/ConversationSearchResultsConversationWidget/ConversationSearchResultsConversationWidget.md",
85
+ "./widgets/CurrencyConverterConversationWidget/CurrencyConverterConversationWidget.md": "./dist/files/widgets/CurrencyConverterConversationWidget/CurrencyConverterConversationWidget.md",
86
+ "./widgets/CustomVisualizationConversationWidget/CustomVisualizationConversationWidget.md": "./dist/files/widgets/CustomVisualizationConversationWidget/CustomVisualizationConversationWidget.md",
87
+ "./widgets/EntityMentionConversationWidget/EntityMentionConversationWidget.md": "./dist/files/widgets/EntityMentionConversationWidget/EntityMentionConversationWidget.md",
88
+ "./widgets/MultiChoiceConversationWidget/MultiChoiceConversationWidget.md": "./dist/files/widgets/MultiChoiceConversationWidget/MultiChoiceConversationWidget.md",
89
+ "./widgets/QuickRepliesConversationWidget/QuickRepliesConversationWidget.md": "./dist/files/widgets/QuickRepliesConversationWidget/QuickRepliesConversationWidget.md",
90
+ "./widgets/SuggestedActions/SuggestedActions.md": "./dist/files/widgets/SuggestedActions/SuggestedActions.md",
91
+ "./widgets/ToolTraceConversationWidget/ToolTraceConversationWidget.md": "./dist/files/widgets/ToolTraceConversationWidget/ToolTraceConversationWidget.md",
92
+ "./widgets/WebSearchResultsConversationWidget/WebSearchResultsConversationWidget.md": "./dist/files/widgets/WebSearchResultsConversationWidget/WebSearchResultsConversationWidget.md",
93
+ "./widgets/WritingDraftConversationWidget/WritingDraftConversationWidget.md": "./dist/files/widgets/WritingDraftConversationWidget/WritingDraftConversationWidget.md",
94
+ "./kit/components/data/data.preview-fixtures.json": "./dist/files/kit/components/data/data.preview-fixtures.json",
95
+ "./kit/components/embedding/widget.preview-fixtures.json": "./dist/files/kit/components/embedding/widget.preview-fixtures.json",
96
+ "./kit/components/entity/entity-link.preview-fixtures.json": "./dist/files/kit/components/entity/entity-link.preview-fixtures.json",
97
+ "./kit/components/form/form.preview-fixtures.json": "./dist/files/kit/components/form/form.preview-fixtures.json",
98
+ "./kit/components/inputs/button.preview-fixtures.json": "./dist/files/kit/components/inputs/button.preview-fixtures.json",
99
+ "./kit/components/inputs/checkbox.preview-fixtures.json": "./dist/files/kit/components/inputs/checkbox.preview-fixtures.json",
100
+ "./kit/components/inputs/date-picker.preview-fixtures.json": "./dist/files/kit/components/inputs/date-picker.preview-fixtures.json",
101
+ "./kit/components/inputs/input.preview-fixtures.json": "./dist/files/kit/components/inputs/input.preview-fixtures.json",
102
+ "./kit/components/inputs/radio-group.preview-fixtures.json": "./dist/files/kit/components/inputs/radio-group.preview-fixtures.json",
103
+ "./kit/components/inputs/select.preview-fixtures.json": "./dist/files/kit/components/inputs/select.preview-fixtures.json",
104
+ "./kit/components/inputs/slider.preview-fixtures.json": "./dist/files/kit/components/inputs/slider.preview-fixtures.json",
105
+ "./kit/components/inputs/tabs.preview-fixtures.json": "./dist/files/kit/components/inputs/tabs.preview-fixtures.json",
106
+ "./kit/components/inputs/textarea.preview-fixtures.json": "./dist/files/kit/components/inputs/textarea.preview-fixtures.json",
107
+ "./kit/components/layout/layout.preview-fixtures.json": "./dist/files/kit/components/layout/layout.preview-fixtures.json",
108
+ "./kit/components/map/map.preview-fixtures.json": "./dist/files/kit/components/map/map.preview-fixtures.json",
109
+ "./kit/components/media/image-group.preview-fixtures.json": "./dist/files/kit/components/media/image-group.preview-fixtures.json",
110
+ "./kit/components/media/image.preview-fixtures.json": "./dist/files/kit/components/media/image.preview-fixtures.json",
111
+ "./kit/components/media/video-card/video-card.preview-fixtures.json": "./dist/files/kit/components/media/video-card/video-card.preview-fixtures.json",
112
+ "./kit/components/media/video.preview-fixtures.json": "./dist/files/kit/components/media/video.preview-fixtures.json",
113
+ "./kit/components/rich/code.preview-fixtures.json": "./dist/files/kit/components/rich/code.preview-fixtures.json",
114
+ "./kit/components/rich/diagram.preview-fixtures.json": "./dist/files/kit/components/rich/diagram.preview-fixtures.json",
115
+ "./kit/components/rich/math.preview-fixtures.json": "./dist/files/kit/components/rich/math.preview-fixtures.json",
116
+ "./kit/components/rich/svg.preview-fixtures.json": "./dist/files/kit/components/rich/svg.preview-fixtures.json",
117
+ "./kit/components/text/badge.preview-fixtures.json": "./dist/files/kit/components/text/badge.preview-fixtures.json",
118
+ "./kit/components/text/caption.preview-fixtures.json": "./dist/files/kit/components/text/caption.preview-fixtures.json",
119
+ "./kit/components/text/favicon.preview-fixtures.json": "./dist/files/kit/components/text/favicon.preview-fixtures.json",
120
+ "./kit/components/text/label.preview-fixtures.json": "./dist/files/kit/components/text/label.preview-fixtures.json",
121
+ "./kit/components/text/link.preview-fixtures.json": "./dist/files/kit/components/text/link.preview-fixtures.json",
122
+ "./kit/components/text/markdown.preview-fixtures.json": "./dist/files/kit/components/text/markdown.preview-fixtures.json",
123
+ "./kit/components/text/source-ref.preview-fixtures.json": "./dist/files/kit/components/text/source-ref.preview-fixtures.json",
124
+ "./kit/components/text/text.preview-fixtures.json": "./dist/files/kit/components/text/text.preview-fixtures.json",
125
+ "./kit/components/text/title.preview-fixtures.json": "./dist/files/kit/components/text/title.preview-fixtures.json",
126
+ "./kit/composed-view.preview-fixtures.json": "./dist/files/kit/composed-view.preview-fixtures.json",
127
+ "./widgets/ClockConversationWidget/clock.preview-fixtures.json": "./dist/files/widgets/ClockConversationWidget/clock.preview-fixtures.json",
128
+ "./widgets/ConceptExplainerConversationWidget/concept-explainer.preview-fixtures.json": "./dist/files/widgets/ConceptExplainerConversationWidget/concept-explainer.preview-fixtures.json",
129
+ "./widgets/ConversationSearchResultsConversationWidget/conversation-search-results.preview-fixtures.json": "./dist/files/widgets/ConversationSearchResultsConversationWidget/conversation-search-results.preview-fixtures.json",
130
+ "./widgets/CurrencyConverterConversationWidget/currency-converter.preview-fixtures.json": "./dist/files/widgets/CurrencyConverterConversationWidget/currency-converter.preview-fixtures.json",
131
+ "./widgets/CustomVisualizationConversationWidget/custom-visualization.preview-fixtures.json": "./dist/files/widgets/CustomVisualizationConversationWidget/custom-visualization.preview-fixtures.json",
132
+ "./widgets/EntityMentionConversationWidget/entity-mention.preview-fixtures.json": "./dist/files/widgets/EntityMentionConversationWidget/entity-mention.preview-fixtures.json",
133
+ "./widgets/MultiChoiceConversationWidget/multi-choice.preview-fixtures.json": "./dist/files/widgets/MultiChoiceConversationWidget/multi-choice.preview-fixtures.json",
134
+ "./widgets/QuickRepliesConversationWidget/quick-replies.preview-fixtures.json": "./dist/files/widgets/QuickRepliesConversationWidget/quick-replies.preview-fixtures.json",
135
+ "./widgets/SuggestedActions/suggested-actions.preview-fixtures.json": "./dist/files/widgets/SuggestedActions/suggested-actions.preview-fixtures.json",
136
+ "./widgets/ToolTraceConversationWidget/tool-trace.preview-fixtures.json": "./dist/files/widgets/ToolTraceConversationWidget/tool-trace.preview-fixtures.json",
137
+ "./widgets/WebSearchResultsConversationWidget/web-search-results.preview-fixtures.json": "./dist/files/widgets/WebSearchResultsConversationWidget/web-search-results.preview-fixtures.json",
138
+ "./widgets/WritingDraftConversationWidget/writing-draft.preview-fixtures.json": "./dist/files/widgets/WritingDraftConversationWidget/writing-draft.preview-fixtures.json",
139
+ "./kit/composed-view-widget-contract.json": "./dist/files/kit/composed-view-widget-contract.json",
140
+ "./widgets/MultiChoiceConversationWidget/multi-choice-widget-contract.json": "./dist/files/widgets/MultiChoiceConversationWidget/multi-choice-widget-contract.json",
141
+ "./widgets/QuickRepliesConversationWidget/quick-replies-widget-contract.json": "./dist/files/widgets/QuickRepliesConversationWidget/quick-replies-widget-contract.json",
142
+ "./renderer/widget-tree/composed-node-schema.json": "./dist/files/renderer/widget-tree/composed-node-schema.json",
143
+ "./widgets/CustomVisualizationConversationWidget/sandbox-frame/custom-visualization-frame.html": "./dist/files/widgets/CustomVisualizationConversationWidget/sandbox-frame/custom-visualization-frame.html",
144
+ "./chat/_conversation-tokens.scss": "./dist/files/chat/_conversation-tokens.scss",
145
+ "./chat/Conversation.module.scss": "./dist/files/chat/Conversation.module.scss",
146
+ "./chat/ConversationViewBody/ConversationViewBody.module.scss": "./dist/files/chat/ConversationViewBody/ConversationViewBody.module.scss",
147
+ "./image-render/WidgetImageRender.module.scss": "./dist/files/image-render/WidgetImageRender.module.scss",
76
148
  "./package.json": "./package.json"
77
149
  },
78
150
  "files": [
79
151
  "dist",
152
+ "public-api.json",
80
153
  "README.md",
81
154
  "LICENSE"
82
155
  ],