@reforma/components 0.1.3 → 0.1.5

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 (28) hide show
  1. package/dist/ToggleButtonGroup/ToggleButtonGroup.module.css +1 -1
  2. package/dist/chat/ComposerBanner/ComposerBanner.d.ts.map +1 -1
  3. package/dist/chat/ComposerBanner/ComposerBanner.js +16 -15
  4. package/dist/chat/ComposerBanner/ComposerBanner.js.map +1 -1
  5. package/dist/chat/Message/turn/Message.module.css +1 -1
  6. package/dist/chat/Message/turn/Message.module.css.js +22 -16
  7. package/dist/chat/Message/turn/Message.module.css.js.map +1 -1
  8. package/dist/chat/Message/turn/MessageAssistantBody.d.ts +2 -1
  9. package/dist/chat/Message/turn/MessageAssistantBody.d.ts.map +1 -1
  10. package/dist/chat/Message/turn/MessageAssistantBody.js +148 -56
  11. package/dist/chat/Message/turn/MessageAssistantBody.js.map +1 -1
  12. package/dist/chat/Message/turn/MessageUserBubble.d.ts.map +1 -1
  13. package/dist/chat/Message/turn/MessageUserBubble.js +52 -53
  14. package/dist/chat/Message/turn/MessageUserBubble.js.map +1 -1
  15. package/dist/chat/Message/turn/workedCollapse.d.ts +16 -0
  16. package/dist/chat/Message/turn/workedCollapse.d.ts.map +1 -0
  17. package/dist/chat/Message/turn/workedCollapse.js +31 -0
  18. package/dist/chat/Message/turn/workedCollapse.js.map +1 -0
  19. package/dist/chat/Tool/agent/AgentTool.d.ts +10 -0
  20. package/dist/chat/Tool/agent/AgentTool.d.ts.map +1 -1
  21. package/dist/chat/Tool/agent/AgentTool.js +110 -99
  22. package/dist/chat/Tool/agent/AgentTool.js.map +1 -1
  23. package/dist/chat/Tool/index.d.ts +1 -1
  24. package/dist/chat/Tool/index.d.ts.map +1 -1
  25. package/dist/chat/Tool/index.js +45 -44
  26. package/dist/chat/index.js +62 -61
  27. package/dist/index.js +364 -363
  28. package/package.json +1 -1
@@ -1 +1 @@
1
- @layer components{.ToggleButtonGroup_group_aBSDUm{--reforma-toggle-group-radius: var(--radius-md);display:inline-flex;align-items:center;gap:var(--spacing-sm);box-sizing:border-box;border-radius:calc(var(--reforma-toggle-group-radius) * var(--squircle-radius-factor));corner-shape:superellipse(var(--squircle-value));background-color:var(--color-secondary);overflow:hidden;color:var(--color-text)}.ToggleButtonGroup_group_aBSDUm[data-variant=filled]{padding:0 var(--spacing-xxs)}.ToggleButtonGroup_group_aBSDUm[data-variant=transparent]{gap:1px;background-color:transparent;padding:0;overflow:visible}.ToggleButtonGroup_group_aBSDUm[data-variant=multiselect]{gap:1px;background-color:transparent}.ToggleButtonGroup_group_aBSDUm[data-variant=text]{background-color:transparent;padding:0;overflow:visible}.ToggleButtonGroup_group_aBSDUm[data-active]{box-shadow:0 0 0 1px var(--color-primary)}.ToggleButtonGroup_group_aBSDUm[data-size=xs][data-variant=text]{gap:var(--spacing-8)}.ToggleButtonGroup_group_aBSDUm[data-size=sm][data-variant=text]{gap:var(--spacing-12)}.ToggleButtonGroup_group_aBSDUm[data-size=md][data-variant=text]{gap:var(--spacing-16)}.ToggleButtonGroup_group_aBSDUm[data-size=lg][data-variant=text]{gap:var(--spacing-18)}.ToggleButtonGroup_item_92PAm9{--reforma-toggle-bg: transparent;--reforma-toggle-bg--selected: transparent;--reforma-toggle-color: var(--color-text);--reforma-toggle-color--selected: var(--color-text);--reforma-toggle-opacity: 1;--reforma-toggle-opacity--hover: 1;--reforma-toggle-opacity--selected: 1;--reforma-toggle-item-radius: 0;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;-webkit-tap-highlight-color:transparent;display:inline-flex;flex:1 1 auto;justify-content:center;align-items:center;gap:var(--spacing-sm);opacity:var(--reforma-toggle-opacity);outline:none;border:none;border-radius:calc(var(--reforma-toggle-item-radius) * var(--squircle-radius-factor));background-color:var(--reforma-toggle-bg);padding:var(--spacing-xs) var(--spacing-md);color:var(--reforma-toggle-color);corner-shape:superellipse(var(--squircle-value));transition-duration:var(--transition-duration-fast);transition-property:background-color,color,opacity;transition-timing-function:var(--ease-in-out)}.ToggleButtonGroup_item_92PAm9:not([data-disabled]):hover{opacity:var(--reforma-toggle-opacity--hover)}.ToggleButtonGroup_item_92PAm9[data-selected=true]{opacity:var(--reforma-toggle-opacity--selected);background-color:var(--reforma-toggle-bg--selected);color:var(--reforma-toggle-color--selected)}.ToggleButtonGroup_group_aBSDUm[data-placeholder-selected] .ToggleButtonGroup_item_92PAm9[data-selected=true]{--reforma-toggle-color--selected: var(--color-secondary-muted-text)}.ToggleButtonGroup_item_92PAm9[data-disabled]{opacity:var(--opacity-disabled);cursor:not-allowed}.ToggleButtonGroup_item_92PAm9[data-focus-visible]{outline:var(--spacing-4) solid var(--color-primary-muted-border);outline-offset:0}.ToggleButtonGroup_group_aBSDUm[data-size=xs]{--reforma-toggle-group-radius: var(--radius-sm);height:var(--spacing-24);font-weight:400;font-size:var(--text-sm);line-height:var(--leading-sm);font-family:Onest,sans-serif;letter-spacing:0}.ToggleButtonGroup_group_aBSDUm[data-size=xs][data-variant=filled]{padding:var(--spacing-xxs)}.ToggleButtonGroup_group_aBSDUm[data-size=sm]{--reforma-toggle-group-radius: var(--radius-md);height:var(--spacing-30);font-weight:400;font-size:var(--text-sm);line-height:var(--leading-sm);font-family:Onest,sans-serif;letter-spacing:0}.ToggleButtonGroup_group_aBSDUm[data-size=sm][data-variant=filled]{padding:var(--spacing-xxs)}.ToggleButtonGroup_group_aBSDUm[data-size=md]{--reforma-toggle-group-radius: var(--radius-lg);height:var(--spacing-36);font-weight:400;font-size:var(--text-md);line-height:var(--leading-md);font-family:Onest,sans-serif;letter-spacing:0}.ToggleButtonGroup_group_aBSDUm[data-size=md][data-variant=filled]{padding:var(--spacing-xs)}.ToggleButtonGroup_group_aBSDUm[data-size=lg]{--reforma-toggle-group-radius: var(--radius-xl);height:var(--spacing-56);font-weight:400;font-size:var(--text-lg);line-height:var(--leading-lg);font-family:Onest,sans-serif;letter-spacing:0}.ToggleButtonGroup_group_aBSDUm[data-size=lg][data-variant=filled]{padding:var(--spacing-sm)}.ToggleButtonGroup_group_aBSDUm[data-variant=text]{height:auto}.ToggleButtonGroup_group_aBSDUm[data-variant=text],.ToggleButtonGroup_group_aBSDUm[data-variant=transparent]{--reforma-toggle-group-radius: 0}.ToggleButtonGroup_group_aBSDUm[data-orientation=vertical]{flex-direction:column;align-items:stretch;width:-moz-fit-content;width:fit-content;height:auto}.ToggleButtonGroup_item_92PAm9[data-size=xs][data-variant=filled]{padding:var(--spacing-2) var(--spacing-6);min-width:var(--spacing-20);height:var(--spacing-20);min-height:var(--spacing-20);--reforma-toggle-item-radius: var(--radius-xs)}.ToggleButtonGroup_item_92PAm9[data-size=sm][data-variant=filled]{padding:var(--spacing-4) var(--spacing-10);min-width:var(--spacing-26);height:var(--spacing-26);min-height:var(--spacing-26);--reforma-toggle-item-radius: var(--radius-sm)}.ToggleButtonGroup_item_92PAm9[data-size=md][data-variant=filled]{padding:var(--spacing-6) var(--spacing-14);min-width:var(--spacing-28);height:var(--spacing-28);min-height:var(--spacing-28);--reforma-toggle-item-radius: var(--radius-md)}.ToggleButtonGroup_item_92PAm9[data-size=lg][data-variant=filled]{padding:var(--spacing-10) var(--spacing-30);min-width:var(--spacing-44);height:var(--spacing-44);min-height:var(--spacing-44);--reforma-toggle-item-radius: var(--radius-lg)}.ToggleButtonGroup_item_92PAm9[data-size=xs][data-variant=transparent],.ToggleButtonGroup_item_92PAm9[data-size=xs][data-variant=multiselect]{padding:var(--spacing-2) var(--spacing-6);min-width:var(--spacing-24);height:var(--spacing-24)}.ToggleButtonGroup_item_92PAm9[data-size=sm][data-variant=transparent],.ToggleButtonGroup_item_92PAm9[data-size=sm][data-variant=multiselect]{padding:var(--spacing-4) var(--spacing-10);min-width:var(--spacing-30);height:var(--spacing-30)}.ToggleButtonGroup_item_92PAm9[data-size=md][data-variant=transparent],.ToggleButtonGroup_item_92PAm9[data-size=md][data-variant=multiselect]{padding:var(--spacing-6) var(--spacing-14);min-width:var(--spacing-36);height:var(--spacing-36)}.ToggleButtonGroup_item_92PAm9[data-size=lg][data-variant=transparent],.ToggleButtonGroup_item_92PAm9[data-size=lg][data-variant=multiselect]{padding:var(--spacing-10) var(--spacing-30);min-width:var(--spacing-56);height:var(--spacing-56)}.ToggleButtonGroup_item_92PAm9[data-size=xs][data-variant=transparent]{--reforma-toggle-item-radius: var(--radius-sm)}.ToggleButtonGroup_item_92PAm9[data-size=sm][data-variant=transparent]{--reforma-toggle-item-radius: var(--radius-md)}.ToggleButtonGroup_item_92PAm9[data-size=md][data-variant=transparent]{--reforma-toggle-item-radius: var(--radius-lg)}.ToggleButtonGroup_item_92PAm9[data-size=lg][data-variant=transparent]{--reforma-toggle-item-radius: var(--radius-xl)}.ToggleButtonGroup_item_92PAm9[data-size=xs][data-variant=text]{padding:var(--spacing-2);min-width:var(--spacing-24);height:var(--spacing-24);font-weight:500;font-size:var(--text-xs);line-height:var(--leading-xs);font-family:Onest,sans-serif;letter-spacing:0}.ToggleButtonGroup_item_92PAm9[data-size=sm][data-variant=text]{padding:var(--spacing-2);min-width:var(--spacing-30);height:var(--spacing-30);font-weight:500;font-size:var(--text-sm);line-height:var(--leading-sm);font-family:Onest,sans-serif;letter-spacing:0}.ToggleButtonGroup_item_92PAm9[data-size=md][data-variant=text]{padding:var(--spacing-2);min-width:var(--spacing-36);height:var(--spacing-36);font-weight:500;font-size:var(--text-md);line-height:var(--leading-md);font-family:Onest,sans-serif;letter-spacing:0}.ToggleButtonGroup_item_92PAm9[data-size=lg][data-variant=text]{padding:var(--spacing-2);min-width:var(--spacing-56);height:var(--spacing-56);font-weight:500;font-size:var(--text-lg);line-height:var(--leading-lg);font-family:Onest,sans-serif;letter-spacing:0}.ToggleButtonGroup_item_92PAm9[data-variant=text][data-selected=true]{--reforma-toggle-opacity--hover: 1 !important}.ToggleButtonGroup_item_92PAm9[data-icon-only][data-size=xs]{padding:var(--spacing-2)}.ToggleButtonGroup_item_92PAm9[data-icon-only][data-size=sm]{padding:var(--spacing-4)}.ToggleButtonGroup_item_92PAm9[data-icon-only][data-size=md]{padding:var(--spacing-6)}.ToggleButtonGroup_item_92PAm9[data-icon-only][data-size=lg]{padding:var(--spacing-10)}.ToggleButtonGroup_item_92PAm9:not([data-icon-only]):not([data-select-item]){min-width:-moz-max-content;min-width:max-content}.ToggleButtonGroup_item_92PAm9[data-variant=filled],.ToggleButtonGroup_item_92PAm9[data-variant=transparent]{--reforma-toggle-color: var(--color-secondary-muted-text);--reforma-toggle-color--selected: var(--color-text);--reforma-toggle-press-nudge: var(--spacing-2);position:relative;z-index:1}.ToggleButtonGroup_item_92PAm9[data-variant=filled]:not([data-selected=true]):not([data-disabled]):is([data-hovered],[data-pressed],:hover),.ToggleButtonGroup_item_92PAm9[data-variant=transparent]:not([data-selected=true]):not([data-disabled]):is([data-hovered],[data-pressed],:hover){background-color:var(--color-secondary-muted-light)}.ToggleButtonGroup_item_92PAm9[data-variant=filled][data-selected=true],.ToggleButtonGroup_item_92PAm9[data-variant=transparent][data-selected=true]{z-index:0}.ToggleButtonGroup_item_92PAm9[data-variant=filled] .ToggleButtonGroup_selectionIndicator_HFwFs0,.ToggleButtonGroup_item_92PAm9[data-variant=transparent] .ToggleButtonGroup_selectionIndicator_HFwFs0{position:absolute;z-index:-1;inset:0;border-radius:inherit;corner-shape:inherit;transition-duration:var(--transition-duration-fast);transition-property:translate,width,scale;transition-timing-function:var(--ease-in-out)}.ToggleButtonGroup_item_92PAm9[data-variant=filled][data-selected=true][data-pressed] .ToggleButtonGroup_selectionIndicator_HFwFs0,.ToggleButtonGroup_item_92PAm9[data-variant=transparent][data-selected=true][data-pressed] .ToggleButtonGroup_selectionIndicator_HFwFs0{scale:.97}.ToggleButtonGroup_group_aBSDUm[data-orientation=horizontal][data-variant=filled]:has(.ToggleButtonGroup_item_92PAm9[data-pressed]:not([data-selected=true])+.ToggleButtonGroup_item_92PAm9[data-selected=true]) .ToggleButtonGroup_item_92PAm9[data-selected=true] .ToggleButtonGroup_selectionIndicator_HFwFs0,.ToggleButtonGroup_group_aBSDUm[data-orientation=horizontal][data-variant=transparent]:has(.ToggleButtonGroup_item_92PAm9[data-pressed]:not([data-selected=true])+.ToggleButtonGroup_item_92PAm9[data-selected=true]) .ToggleButtonGroup_item_92PAm9[data-selected=true] .ToggleButtonGroup_selectionIndicator_HFwFs0{translate:calc(var(--reforma-toggle-press-nudge) * -1) 0;width:calc(100% + var(--reforma-toggle-press-nudge))}.ToggleButtonGroup_group_aBSDUm[data-orientation=horizontal][data-variant=filled]:has(.ToggleButtonGroup_item_92PAm9[data-selected=true]+.ToggleButtonGroup_item_92PAm9[data-pressed]:not([data-selected=true])) .ToggleButtonGroup_item_92PAm9[data-selected=true] .ToggleButtonGroup_selectionIndicator_HFwFs0,.ToggleButtonGroup_group_aBSDUm[data-orientation=horizontal][data-variant=transparent]:has(.ToggleButtonGroup_item_92PAm9[data-selected=true]+.ToggleButtonGroup_item_92PAm9[data-pressed]:not([data-selected=true])) .ToggleButtonGroup_item_92PAm9[data-selected=true] .ToggleButtonGroup_selectionIndicator_HFwFs0{width:calc(100% + var(--reforma-toggle-press-nudge))}.ToggleButtonGroup_group_aBSDUm[data-orientation=horizontal][data-variant=filled]:has(.ToggleButtonGroup_item_92PAm9[data-pressed]:not([data-selected=true])+.ToggleButtonGroup_item_92PAm9:not([data-selected=true])+.ToggleButtonGroup_item_92PAm9[data-selected=true]) .ToggleButtonGroup_item_92PAm9[data-selected=true] .ToggleButtonGroup_selectionIndicator_HFwFs0,.ToggleButtonGroup_group_aBSDUm[data-orientation=horizontal][data-variant=transparent]:has(.ToggleButtonGroup_item_92PAm9[data-pressed]:not([data-selected=true])+.ToggleButtonGroup_item_92PAm9:not([data-selected=true])+.ToggleButtonGroup_item_92PAm9[data-selected=true]) .ToggleButtonGroup_item_92PAm9[data-selected=true] .ToggleButtonGroup_selectionIndicator_HFwFs0{translate:calc(var(--reforma-toggle-press-nudge) * -2) 0;width:calc(100% + var(--reforma-toggle-press-nudge) * 2)}.ToggleButtonGroup_group_aBSDUm[data-orientation=horizontal][data-variant=filled]:has(.ToggleButtonGroup_item_92PAm9[data-selected=true]+.ToggleButtonGroup_item_92PAm9:not([data-selected=true])+.ToggleButtonGroup_item_92PAm9[data-pressed]:not([data-selected=true])) .ToggleButtonGroup_item_92PAm9[data-selected=true] .ToggleButtonGroup_selectionIndicator_HFwFs0,.ToggleButtonGroup_group_aBSDUm[data-orientation=horizontal][data-variant=transparent]:has(.ToggleButtonGroup_item_92PAm9[data-selected=true]+.ToggleButtonGroup_item_92PAm9:not([data-selected=true])+.ToggleButtonGroup_item_92PAm9[data-pressed]:not([data-selected=true])) .ToggleButtonGroup_item_92PAm9[data-selected=true] .ToggleButtonGroup_selectionIndicator_HFwFs0{width:calc(100% + var(--reforma-toggle-press-nudge) * 2)}.ToggleButtonGroup_item_92PAm9[data-variant=filled] .ToggleButtonGroup_selectionIndicator_HFwFs0{box-shadow:0 var(--spacing-4) var(--spacing-6) 0 var(--color-dark-a8);background-color:var(--color-surface)}.ToggleButtonGroup_item_92PAm9[data-variant=transparent] .ToggleButtonGroup_selectionIndicator_HFwFs0{background-color:var(--color-secondary)}.ToggleButtonGroup_group_aBSDUm[data-placeholder-selected] .ToggleButtonGroup_item_92PAm9[data-variant=filled] .ToggleButtonGroup_selectionIndicator_HFwFs0,.ToggleButtonGroup_group_aBSDUm[data-placeholder-selected] .ToggleButtonGroup_item_92PAm9[data-variant=transparent] .ToggleButtonGroup_selectionIndicator_HFwFs0{box-shadow:none}.ToggleButtonGroup_item_92PAm9[data-variant=multiselect]{--reforma-toggle-bg: var(--color-secondary);--reforma-toggle-color: var(--color-secondary-muted-text);--reforma-toggle-bg--selected: var(--color-secondary-light);--reforma-toggle-color--selected: var(--color-text);--reforma-toggle-item-radius: 0;padding:var(--spacing-md)}.ToggleButtonGroup_item_92PAm9[data-variant=text]{--reforma-toggle-opacity: var(--opacity-inactive);--reforma-toggle-opacity--hover: var(--opacity-hover);--reforma-toggle-opacity--selected: 1;flex:0 0 auto}@media(prefers-reduced-motion:reduce){.ToggleButtonGroup_item_92PAm9[data-variant=filled] .ToggleButtonGroup_selectionIndicator_HFwFs0,.ToggleButtonGroup_item_92PAm9[data-variant=transparent] .ToggleButtonGroup_selectionIndicator_HFwFs0{transition:none}.ToggleButtonGroup_item_92PAm9[data-variant=filled][data-selected=true][data-pressed] .ToggleButtonGroup_selectionIndicator_HFwFs0,.ToggleButtonGroup_item_92PAm9[data-variant=transparent][data-selected=true][data-pressed] .ToggleButtonGroup_selectionIndicator_HFwFs0{scale:none}}.ToggleButtonGroup_itemContent_38HpIc{display:inline-flex;justify-content:center;align-items:center;gap:var(--spacing-sm);width:100%;min-width:0}.ToggleButtonGroup_selectItem_6o13WW{display:contents}.ToggleButtonGroup_item_92PAm9[data-select-item]{min-width:0}.ToggleButtonGroup_selectItemLabel_8QT16c{padding-right:var(--spacing-4);min-width:0;overflow:hidden;text-overflow:clip;white-space:nowrap;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - var(--spacing-2)),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - var(--spacing-2)),transparent)}.ToggleButtonGroup_itemChevron_9sOsUI{flex-shrink:0;opacity:var(--opacity-inactive);transition:transform var(--transition-duration-fast) var(--ease-in-out);fill:currentColor}.ToggleButtonGroup_selectItem_6o13WW[data-open] .ToggleButtonGroup_itemChevron_9sOsUI{transform:rotate(180deg)}.ToggleButtonGroup_selectPopover_Ecq4nt{min-width:var(--trigger-width)}.ToggleButtonGroup_selectListBox_Lv53fJ{min-width:100%}}
1
+ @layer components{.ToggleButtonGroup_group_aBSDUm{--reforma-toggle-group-radius: var(--radius-md);display:inline-flex;align-items:center;gap:var(--spacing-sm);box-sizing:border-box;border-radius:calc(var(--reforma-toggle-group-radius) * var(--squircle-radius-factor));corner-shape:superellipse(var(--squircle-value));background-color:var(--color-secondary);overflow:hidden;color:var(--color-text)}.ToggleButtonGroup_group_aBSDUm[data-variant=filled]{padding:0 var(--spacing-xxs)}.ToggleButtonGroup_group_aBSDUm[data-variant=transparent]{gap:1px;background-color:transparent;padding:0;overflow:visible}.ToggleButtonGroup_group_aBSDUm[data-variant=multiselect]{gap:1px;background-color:transparent}.ToggleButtonGroup_group_aBSDUm[data-variant=text]{background-color:transparent;padding:0;overflow:visible}.ToggleButtonGroup_group_aBSDUm[data-active]{box-shadow:0 0 0 1px var(--color-primary)}.ToggleButtonGroup_group_aBSDUm[data-size=xs][data-variant=text]{gap:var(--spacing-8)}.ToggleButtonGroup_group_aBSDUm[data-size=sm][data-variant=text]{gap:var(--spacing-12)}.ToggleButtonGroup_group_aBSDUm[data-size=md][data-variant=text]{gap:var(--spacing-16)}.ToggleButtonGroup_group_aBSDUm[data-size=lg][data-variant=text]{gap:var(--spacing-18)}.ToggleButtonGroup_item_92PAm9{--reforma-toggle-bg: transparent;--reforma-toggle-bg--selected: transparent;--reforma-toggle-color: var(--color-text);--reforma-toggle-color--selected: var(--color-text);--reforma-toggle-opacity: 1;--reforma-toggle-opacity--hover: 1;--reforma-toggle-opacity--selected: 1;--reforma-toggle-item-radius: 0;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;-webkit-tap-highlight-color:transparent;display:inline-flex;flex:1 1 auto;justify-content:center;align-items:center;gap:var(--spacing-sm);opacity:var(--reforma-toggle-opacity);outline:none;border:none;border-radius:calc(var(--reforma-toggle-item-radius) * var(--squircle-radius-factor));background-color:var(--reforma-toggle-bg);padding:var(--spacing-xs) var(--spacing-md);color:var(--reforma-toggle-color);corner-shape:superellipse(var(--squircle-value));transition-duration:var(--transition-duration-fast);transition-property:background-color,color,opacity;transition-timing-function:var(--ease-in-out)}.ToggleButtonGroup_item_92PAm9:not([data-disabled]):hover{opacity:var(--reforma-toggle-opacity--hover)}.ToggleButtonGroup_item_92PAm9[data-selected=true]{opacity:var(--reforma-toggle-opacity--selected);background-color:var(--reforma-toggle-bg--selected);color:var(--reforma-toggle-color--selected)}.ToggleButtonGroup_group_aBSDUm[data-placeholder-selected] .ToggleButtonGroup_item_92PAm9[data-selected=true]{--reforma-toggle-color--selected: var(--color-secondary-muted-text)}.ToggleButtonGroup_item_92PAm9[data-disabled]{opacity:var(--opacity-disabled);cursor:not-allowed}.ToggleButtonGroup_item_92PAm9[data-focus-visible]{outline:var(--spacing-4) solid var(--color-primary-muted-border);outline-offset:0}.ToggleButtonGroup_group_aBSDUm[data-size=xs]{--reforma-toggle-group-radius: var(--radius-sm);height:var(--spacing-24);font-weight:400;font-size:var(--text-sm);line-height:var(--leading-sm);font-family:Onest,sans-serif;letter-spacing:0}.ToggleButtonGroup_group_aBSDUm[data-size=xs][data-variant=filled]{padding:var(--spacing-xxs)}.ToggleButtonGroup_group_aBSDUm[data-size=sm]{--reforma-toggle-group-radius: var(--radius-md);height:var(--spacing-30);font-weight:400;font-size:var(--text-sm);line-height:var(--leading-sm);font-family:Onest,sans-serif;letter-spacing:0}.ToggleButtonGroup_group_aBSDUm[data-size=sm][data-variant=filled]{padding:var(--spacing-xxs)}.ToggleButtonGroup_group_aBSDUm[data-size=md]{--reforma-toggle-group-radius: var(--radius-lg);height:var(--spacing-36);font-weight:400;font-size:var(--text-md);line-height:var(--leading-md);font-family:Onest,sans-serif;letter-spacing:0}.ToggleButtonGroup_group_aBSDUm[data-size=md][data-variant=filled]{padding:var(--spacing-xs)}.ToggleButtonGroup_group_aBSDUm[data-size=lg]{--reforma-toggle-group-radius: var(--radius-xl);height:var(--spacing-56);font-weight:400;font-size:var(--text-lg);line-height:var(--leading-lg);font-family:Onest,sans-serif;letter-spacing:0}.ToggleButtonGroup_group_aBSDUm[data-size=lg][data-variant=filled]{padding:var(--spacing-sm)}.ToggleButtonGroup_group_aBSDUm[data-variant=text]{height:auto}.ToggleButtonGroup_group_aBSDUm[data-variant=text],.ToggleButtonGroup_group_aBSDUm[data-variant=transparent]{--reforma-toggle-group-radius: 0}.ToggleButtonGroup_group_aBSDUm[data-orientation=vertical]{flex-direction:column;align-items:stretch;width:-moz-fit-content;width:fit-content;height:auto}.ToggleButtonGroup_item_92PAm9[data-size=xs][data-variant=filled]{padding:var(--spacing-2) var(--spacing-6);min-width:var(--spacing-20);height:var(--spacing-20);min-height:var(--spacing-20);--reforma-toggle-item-radius: var(--radius-xs)}.ToggleButtonGroup_item_92PAm9[data-size=sm][data-variant=filled]{padding:var(--spacing-4) var(--spacing-10);min-width:var(--spacing-26);height:var(--spacing-26);min-height:var(--spacing-26);--reforma-toggle-item-radius: var(--radius-sm)}.ToggleButtonGroup_item_92PAm9[data-size=md][data-variant=filled]{padding:var(--spacing-6) var(--spacing-14);min-width:var(--spacing-28);height:var(--spacing-28);min-height:var(--spacing-28);--reforma-toggle-item-radius: var(--radius-md)}.ToggleButtonGroup_item_92PAm9[data-size=lg][data-variant=filled]{padding:var(--spacing-10) var(--spacing-30);min-width:var(--spacing-44);height:var(--spacing-44);min-height:var(--spacing-44);--reforma-toggle-item-radius: var(--radius-lg)}.ToggleButtonGroup_item_92PAm9[data-size=xs][data-variant=transparent],.ToggleButtonGroup_item_92PAm9[data-size=xs][data-variant=multiselect]{padding:var(--spacing-2) var(--spacing-6);min-width:var(--spacing-24);height:var(--spacing-24)}.ToggleButtonGroup_item_92PAm9[data-size=sm][data-variant=transparent],.ToggleButtonGroup_item_92PAm9[data-size=sm][data-variant=multiselect]{padding:var(--spacing-4) var(--spacing-10);min-width:var(--spacing-30);height:var(--spacing-30)}.ToggleButtonGroup_item_92PAm9[data-size=md][data-variant=transparent],.ToggleButtonGroup_item_92PAm9[data-size=md][data-variant=multiselect]{padding:var(--spacing-6) var(--spacing-14);min-width:var(--spacing-36);height:var(--spacing-36)}.ToggleButtonGroup_item_92PAm9[data-size=lg][data-variant=transparent],.ToggleButtonGroup_item_92PAm9[data-size=lg][data-variant=multiselect]{padding:var(--spacing-10) var(--spacing-30);min-width:var(--spacing-56);height:var(--spacing-56)}.ToggleButtonGroup_item_92PAm9[data-size=xs][data-variant=transparent]{--reforma-toggle-item-radius: var(--radius-sm)}.ToggleButtonGroup_item_92PAm9[data-size=sm][data-variant=transparent]{--reforma-toggle-item-radius: var(--radius-md)}.ToggleButtonGroup_item_92PAm9[data-size=md][data-variant=transparent]{--reforma-toggle-item-radius: var(--radius-lg)}.ToggleButtonGroup_item_92PAm9[data-size=lg][data-variant=transparent]{--reforma-toggle-item-radius: var(--radius-xl)}.ToggleButtonGroup_item_92PAm9[data-size=xs][data-variant=text]{padding:var(--spacing-2);min-width:var(--spacing-24);height:var(--spacing-24);font-weight:500;font-size:var(--text-xs);line-height:var(--leading-xs);font-family:Onest,sans-serif;letter-spacing:0}.ToggleButtonGroup_item_92PAm9[data-size=sm][data-variant=text]{padding:var(--spacing-2);min-width:var(--spacing-30);height:var(--spacing-30);font-weight:500;font-size:var(--text-sm);line-height:var(--leading-sm);font-family:Onest,sans-serif;letter-spacing:0}.ToggleButtonGroup_item_92PAm9[data-size=md][data-variant=text]{padding:var(--spacing-2);min-width:var(--spacing-36);height:var(--spacing-36);font-weight:500;font-size:var(--text-md);line-height:var(--leading-md);font-family:Onest,sans-serif;letter-spacing:0}.ToggleButtonGroup_item_92PAm9[data-size=lg][data-variant=text]{padding:var(--spacing-2);min-width:var(--spacing-56);height:var(--spacing-56);font-weight:500;font-size:var(--text-lg);line-height:var(--leading-lg);font-family:Onest,sans-serif;letter-spacing:0}.ToggleButtonGroup_item_92PAm9[data-variant=text][data-selected=true]{--reforma-toggle-opacity--hover: 1 !important}.ToggleButtonGroup_item_92PAm9[data-icon-only][data-size=xs]{padding:var(--spacing-2)}.ToggleButtonGroup_item_92PAm9[data-icon-only][data-size=sm]{padding:var(--spacing-4)}.ToggleButtonGroup_item_92PAm9[data-icon-only][data-size=md]{padding:var(--spacing-6)}.ToggleButtonGroup_item_92PAm9[data-icon-only][data-size=lg]{padding:var(--spacing-10)}.ToggleButtonGroup_item_92PAm9:not([data-icon-only]):not([data-select-item]){min-width:-moz-max-content;min-width:max-content}.ToggleButtonGroup_item_92PAm9[data-variant=filled],.ToggleButtonGroup_item_92PAm9[data-variant=transparent]{--reforma-toggle-color: var(--color-secondary-muted-text);--reforma-toggle-color--selected: var(--color-text);--reforma-toggle-press-nudge: var(--spacing-2);position:relative;z-index:1}.ToggleButtonGroup_item_92PAm9[data-variant=filled]:not([data-selected=true]):not([data-disabled]):is([data-hovered],[data-pressed],:hover),.ToggleButtonGroup_item_92PAm9[data-variant=transparent]:not([data-selected=true]):not([data-disabled]):is([data-hovered],[data-pressed],:hover){background-color:var(--color-secondary-muted-light)}.ToggleButtonGroup_item_92PAm9[data-variant=filled][data-selected=true],.ToggleButtonGroup_item_92PAm9[data-variant=transparent][data-selected=true]{z-index:0}.ToggleButtonGroup_item_92PAm9[data-variant=filled] .ToggleButtonGroup_selectionIndicator_HFwFs0,.ToggleButtonGroup_item_92PAm9[data-variant=transparent] .ToggleButtonGroup_selectionIndicator_HFwFs0{position:absolute;z-index:-1;inset:0;border-radius:inherit;corner-shape:inherit;transition-duration:var(--transition-duration-fast);transition-property:translate,width,scale;transition-timing-function:var(--ease-in-out)}.ToggleButtonGroup_item_92PAm9[data-variant=filled][data-selected=true][data-pressed] .ToggleButtonGroup_selectionIndicator_HFwFs0,.ToggleButtonGroup_item_92PAm9[data-variant=transparent][data-selected=true][data-pressed] .ToggleButtonGroup_selectionIndicator_HFwFs0{scale:.97}.ToggleButtonGroup_group_aBSDUm[data-orientation=horizontal][data-variant=filled]:has(.ToggleButtonGroup_item_92PAm9[data-pressed]:not([data-selected=true])+.ToggleButtonGroup_item_92PAm9[data-selected=true]) .ToggleButtonGroup_item_92PAm9[data-selected=true] .ToggleButtonGroup_selectionIndicator_HFwFs0,.ToggleButtonGroup_group_aBSDUm[data-orientation=horizontal][data-variant=transparent]:has(.ToggleButtonGroup_item_92PAm9[data-pressed]:not([data-selected=true])+.ToggleButtonGroup_item_92PAm9[data-selected=true]) .ToggleButtonGroup_item_92PAm9[data-selected=true] .ToggleButtonGroup_selectionIndicator_HFwFs0{translate:calc(var(--reforma-toggle-press-nudge) * -1) 0;width:calc(100% + var(--reforma-toggle-press-nudge))}.ToggleButtonGroup_group_aBSDUm[data-orientation=horizontal][data-variant=filled]:has(.ToggleButtonGroup_item_92PAm9[data-selected=true]+.ToggleButtonGroup_item_92PAm9[data-pressed]:not([data-selected=true])) .ToggleButtonGroup_item_92PAm9[data-selected=true] .ToggleButtonGroup_selectionIndicator_HFwFs0,.ToggleButtonGroup_group_aBSDUm[data-orientation=horizontal][data-variant=transparent]:has(.ToggleButtonGroup_item_92PAm9[data-selected=true]+.ToggleButtonGroup_item_92PAm9[data-pressed]:not([data-selected=true])) .ToggleButtonGroup_item_92PAm9[data-selected=true] .ToggleButtonGroup_selectionIndicator_HFwFs0{width:calc(100% + var(--reforma-toggle-press-nudge))}.ToggleButtonGroup_group_aBSDUm[data-orientation=horizontal][data-variant=filled]:has(.ToggleButtonGroup_item_92PAm9[data-pressed]:not([data-selected=true])+.ToggleButtonGroup_item_92PAm9:not([data-selected=true])+.ToggleButtonGroup_item_92PAm9[data-selected=true]) .ToggleButtonGroup_item_92PAm9[data-selected=true] .ToggleButtonGroup_selectionIndicator_HFwFs0,.ToggleButtonGroup_group_aBSDUm[data-orientation=horizontal][data-variant=transparent]:has(.ToggleButtonGroup_item_92PAm9[data-pressed]:not([data-selected=true])+.ToggleButtonGroup_item_92PAm9:not([data-selected=true])+.ToggleButtonGroup_item_92PAm9[data-selected=true]) .ToggleButtonGroup_item_92PAm9[data-selected=true] .ToggleButtonGroup_selectionIndicator_HFwFs0{translate:calc(var(--reforma-toggle-press-nudge) * -2) 0;width:calc(100% + var(--reforma-toggle-press-nudge) * 2)}.ToggleButtonGroup_group_aBSDUm[data-orientation=horizontal][data-variant=filled]:has(.ToggleButtonGroup_item_92PAm9[data-selected=true]+.ToggleButtonGroup_item_92PAm9:not([data-selected=true])+.ToggleButtonGroup_item_92PAm9[data-pressed]:not([data-selected=true])) .ToggleButtonGroup_item_92PAm9[data-selected=true] .ToggleButtonGroup_selectionIndicator_HFwFs0,.ToggleButtonGroup_group_aBSDUm[data-orientation=horizontal][data-variant=transparent]:has(.ToggleButtonGroup_item_92PAm9[data-selected=true]+.ToggleButtonGroup_item_92PAm9:not([data-selected=true])+.ToggleButtonGroup_item_92PAm9[data-pressed]:not([data-selected=true])) .ToggleButtonGroup_item_92PAm9[data-selected=true] .ToggleButtonGroup_selectionIndicator_HFwFs0{width:calc(100% + var(--reforma-toggle-press-nudge) * 2)}.ToggleButtonGroup_item_92PAm9[data-variant=filled] .ToggleButtonGroup_selectionIndicator_HFwFs0{box-shadow:0 var(--spacing-4) var(--spacing-6) 0 var(--color-dark-a8);background-color:var(--color-surface)}.ToggleButtonGroup_item_92PAm9[data-variant=transparent] .ToggleButtonGroup_selectionIndicator_HFwFs0{background-color:var(--color-secondary)}.ToggleButtonGroup_group_aBSDUm[data-placeholder-selected] .ToggleButtonGroup_item_92PAm9[data-variant=filled] .ToggleButtonGroup_selectionIndicator_HFwFs0,.ToggleButtonGroup_group_aBSDUm[data-placeholder-selected] .ToggleButtonGroup_item_92PAm9[data-variant=transparent] .ToggleButtonGroup_selectionIndicator_HFwFs0{box-shadow:none}.ToggleButtonGroup_item_92PAm9[data-variant=multiselect]{--reforma-toggle-bg: var(--color-secondary);--reforma-toggle-color: var(--color-secondary-muted-text);--reforma-toggle-bg--selected: var(--color-secondary-light);--reforma-toggle-color--selected: var(--color-text);--reforma-toggle-item-radius: 0;padding:var(--spacing-md)}.ToggleButtonGroup_item_92PAm9[data-variant=text]{--reforma-toggle-opacity: var(--opacity-inactive);--reforma-toggle-opacity--hover: var(--opacity-hover);--reforma-toggle-opacity--selected: 1;position:relative;flex:0 0 auto}.ToggleButtonGroup_item_92PAm9[data-variant=text]:after{position:absolute;bottom:-1px;transform:scaleX(0);transition:transform var(--transition-duration-fast) var(--ease);inset-inline:0;background:var(--color-primary);height:2px;content:""}.ToggleButtonGroup_item_92PAm9[data-variant=text][data-selected=true]:after{transform:scaleX(1)}@media(prefers-reduced-motion:reduce){.ToggleButtonGroup_item_92PAm9[data-variant=filled] .ToggleButtonGroup_selectionIndicator_HFwFs0,.ToggleButtonGroup_item_92PAm9[data-variant=transparent] .ToggleButtonGroup_selectionIndicator_HFwFs0,.ToggleButtonGroup_item_92PAm9[data-variant=text]:after{transition:none}.ToggleButtonGroup_item_92PAm9[data-variant=filled][data-selected=true][data-pressed] .ToggleButtonGroup_selectionIndicator_HFwFs0,.ToggleButtonGroup_item_92PAm9[data-variant=transparent][data-selected=true][data-pressed] .ToggleButtonGroup_selectionIndicator_HFwFs0{scale:none}}.ToggleButtonGroup_itemContent_38HpIc{display:inline-flex;justify-content:center;align-items:center;gap:var(--spacing-sm);width:100%;min-width:0}.ToggleButtonGroup_selectItem_6o13WW{display:contents}.ToggleButtonGroup_item_92PAm9[data-select-item]{min-width:0}.ToggleButtonGroup_selectItemLabel_8QT16c{padding-right:var(--spacing-4);min-width:0;overflow:hidden;text-overflow:clip;white-space:nowrap;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - var(--spacing-2)),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - var(--spacing-2)),transparent)}.ToggleButtonGroup_itemChevron_9sOsUI{flex-shrink:0;opacity:var(--opacity-inactive);transition:transform var(--transition-duration-fast) var(--ease-in-out);fill:currentColor}.ToggleButtonGroup_selectItem_6o13WW[data-open] .ToggleButtonGroup_itemChevron_9sOsUI{transform:rotate(180deg)}.ToggleButtonGroup_selectPopover_Ecq4nt{min-width:var(--trigger-width)}.ToggleButtonGroup_selectListBox_Lv53fJ{min-width:100%}}
@@ -1 +1 @@
1
- {"version":3,"file":"ComposerBanner.d.ts","sourceRoot":"","sources":["../../../src/chat/ComposerBanner/ComposerBanner.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,GAAG;IAC9E,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,yDAAyD;IACzD,KAAK,CAAC,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF,qDAAqD;AACrD,wBAAgB,cAAc,CAAC,EAC3B,QAAQ,EACR,SAAS,EACT,KAAK,EACL,IAAI,EACJ,GAAG,KAAK,EACX,EAAE,mBAAmB,+BAYrB;AAED,MAAM,MAAM,yBAAyB,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IACrE,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB,CAAC;AAEF,uEAAuE;AACvE,wBAAgB,oBAAoB,CAAC,EACjC,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACX,EAAE,yBAAyB,+BAiB3B"}
1
+ {"version":3,"file":"ComposerBanner.d.ts","sourceRoot":"","sources":["../../../src/chat/ComposerBanner/ComposerBanner.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,GAAG;IAC9E,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,yDAAyD;IACzD,KAAK,CAAC,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF,qDAAqD;AACrD,wBAAgB,cAAc,CAAC,EAC3B,QAAQ,EACR,SAAS,EACT,KAAK,EACL,IAAI,EACJ,GAAG,KAAK,EACX,EAAE,mBAAmB,+BAYrB;AAED,MAAM,MAAM,yBAAyB,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IACrE,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB,CAAC;AAEF,uEAAuE;AACvE,wBAAgB,oBAAoB,CAAC,EACjC,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACX,EAAE,yBAAyB,+BAkB3B"}
@@ -1,44 +1,45 @@
1
- import { cn as m } from "@reforma/lib";
2
- import { Button as i } from "../../Button/Button.js";
3
- import { Text as c } from "../../Text/Text.js";
1
+ import { cn as i } from "@reforma/lib";
2
+ import { Button as m } from "../../Button/Button.js";
3
+ import { Text as l } from "../../Text/Text.js";
4
4
  import a from "./ComposerBanner.module.css.js";
5
- import { jsx as n, jsxs as l } from "react/jsx-runtime";
5
+ import { jsx as n, jsxs as c } from "react/jsx-runtime";
6
6
  function v({
7
7
  children: o,
8
- className: t,
8
+ className: s,
9
9
  color: r,
10
- role: s,
10
+ role: t,
11
11
  ...e
12
12
  }) {
13
13
  return /* @__PURE__ */ n("div", {
14
14
  "data-slot": "composer-banner",
15
15
  "data-color": r,
16
- role: s ?? (r === "danger" ? "alert" : void 0),
17
- className: m(a.root, t),
16
+ role: t ?? (r === "danger" ? "alert" : void 0),
17
+ className: i(a.root, s),
18
18
  ...e,
19
19
  children: o
20
20
  });
21
21
  }
22
22
  function h({
23
23
  children: o,
24
- action: t,
24
+ action: s,
25
25
  onAction: r,
26
- className: s,
26
+ className: t,
27
27
  ...e
28
28
  }) {
29
- return /* @__PURE__ */ l("div", {
30
- className: m(a.status, s),
29
+ return /* @__PURE__ */ c("div", {
30
+ className: i(a.status, t),
31
31
  ...e,
32
- children: [/* @__PURE__ */ n(c, {
32
+ children: [/* @__PURE__ */ n(l, {
33
33
  variant: "xs",
34
34
  className: a.text,
35
35
  children: o
36
- }), /* @__PURE__ */ n(i, {
36
+ }), /* @__PURE__ */ n(m, {
37
37
  size: "xs",
38
38
  variant: "ghost",
39
39
  color: "secondary",
40
+ isDisabled: !r,
40
41
  onPress: r,
41
- children: t
42
+ children: s
42
43
  })]
43
44
  });
44
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ComposerBanner.js","sources":["../../../src/chat/ComposerBanner/ComposerBanner.tsx"],"sourcesContent":["import { cn } from '@reforma/lib';\n\nimport { Button } from '../../Button';\nimport { Text } from '../../Text';\nimport styles from './ComposerBanner.module.css';\n\nimport type { HTMLAttributes, ReactNode } from 'react';\n\nexport type ComposerBannerProps = Omit<HTMLAttributes<HTMLDivElement>, 'color'> & {\n children?: ReactNode;\n /** Plate tint. Default is the muted interrupt chrome. */\n color?: 'danger';\n};\n\n/** Shared plate above the composer — chrome only. */\nexport function ComposerBanner({\n children,\n className,\n color,\n role,\n ...props\n}: ComposerBannerProps) {\n return (\n <div\n data-slot=\"composer-banner\"\n data-color={ color }\n role={ role ?? (color === 'danger' ? 'alert' : undefined) }\n className={ cn(styles.root, className) }\n { ...props }\n >\n { children }\n </div>\n );\n}\n\nexport type ComposerBannerStatusProps = HTMLAttributes<HTMLDivElement> & {\n children: ReactNode;\n action: string;\n onAction?: () => void;\n};\n\n/** One status row inside {@link ComposerBanner} — message + action. */\nexport function ComposerBannerStatus({\n children,\n action,\n onAction,\n className,\n ...props\n}: ComposerBannerStatusProps) {\n return (\n <div className={ cn(styles.status, className) } { ...props }>\n <Text variant=\"xs\" className={ styles.text }>\n { children }\n </Text>\n\n <Button\n size=\"xs\"\n variant=\"ghost\"\n color=\"secondary\"\n onPress={ onAction }\n >\n { action }\n </Button>\n </div>\n );\n}\n"],"names":["ComposerBanner","children","className","color","role","props","cn","styles","ComposerBannerStatus","action","onAction","_jsx","Text","Button"],"mappings":";;;;;AAMO,SAASA,EAAe;AAAA,EAC7B,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,GAAGC;AACL,GAAG;AACD,2BAAyB,OAAO;AAAA,IAC9B,aAAa;AAAA,IACb,cAAcF;AAAA,IACd,MAAMC,MAASD,MAAU,WAAW,UAAU;AAAA,IAC9C,WAAWG,EAAGC,EAAO,MAAML,CAAS;AAAA,IACpC,GAAGG;AAAA,IACH,UAAAJ;AAAA,EAAA,CACD;AACH;AAEO,SAASO,EAAqB;AAAA,EACnC,UAAAP;AAAA,EACA,QAAAQ;AAAA,EACA,UAAAC;AAAA,EACA,WAAAR;AAAA,EACA,GAAGG;AACL,GAAG;AACD,2BAA0B,OAAO;AAAA,IAC/B,WAAWC,EAAGC,EAAO,QAAQL,CAAS;AAAA,IACtC,GAAGG;AAAA,IACH,UAAU,CAAcM,gBAAAA,EAAKC,GAAM;AAAA,MACjC,SAAS;AAAA,MACT,WAAWL,EAAO;AAAA,MAClB,UAAAN;AAAA,IAAA,CACD,GAAgBU,gBAAAA,EAAKE,GAAQ;AAAA,MAC5B,MAAM;AAAA,MACN,SAAS;AAAA,MACT,OAAO;AAAA,MACP,SAASH;AAAA,MACT,UAAUD;AAAA,IAAA,CACX,CAAC;AAAA,EAAA,CACH;AACH;"}
1
+ {"version":3,"file":"ComposerBanner.js","sources":["../../../src/chat/ComposerBanner/ComposerBanner.tsx"],"sourcesContent":["import { cn } from '@reforma/lib';\n\nimport { Button } from '../../Button';\nimport { Text } from '../../Text';\nimport styles from './ComposerBanner.module.css';\n\nimport type { HTMLAttributes, ReactNode } from 'react';\n\nexport type ComposerBannerProps = Omit<HTMLAttributes<HTMLDivElement>, 'color'> & {\n children?: ReactNode;\n /** Plate tint. Default is the muted interrupt chrome. */\n color?: 'danger';\n};\n\n/** Shared plate above the composer — chrome only. */\nexport function ComposerBanner({\n children,\n className,\n color,\n role,\n ...props\n}: ComposerBannerProps) {\n return (\n <div\n data-slot=\"composer-banner\"\n data-color={ color }\n role={ role ?? (color === 'danger' ? 'alert' : undefined) }\n className={ cn(styles.root, className) }\n { ...props }\n >\n { children }\n </div>\n );\n}\n\nexport type ComposerBannerStatusProps = HTMLAttributes<HTMLDivElement> & {\n children: ReactNode;\n action: string;\n onAction?: () => void;\n};\n\n/** One status row inside {@link ComposerBanner} — message + action. */\nexport function ComposerBannerStatus({\n children,\n action,\n onAction,\n className,\n ...props\n}: ComposerBannerStatusProps) {\n return (\n <div className={ cn(styles.status, className) } { ...props }>\n <Text variant=\"xs\" className={ styles.text }>\n { children }\n </Text>\n\n <Button\n size=\"xs\"\n variant=\"ghost\"\n color=\"secondary\"\n isDisabled={ !onAction }\n onPress={ onAction }\n >\n { action }\n </Button>\n </div>\n );\n}\n"],"names":["ComposerBanner","children","className","color","role","props","cn","styles","ComposerBannerStatus","action","onAction","_jsx","Text","Button"],"mappings":";;;;;AAMO,SAASA,EAAe;AAAA,EAC7B,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,GAAGC;AACL,GAAG;AACD,2BAAyB,OAAO;AAAA,IAC9B,aAAa;AAAA,IACb,cAAcF;AAAA,IACd,MAAMC,MAASD,MAAU,WAAW,UAAU;AAAA,IAC9C,WAAWG,EAAGC,EAAO,MAAML,CAAS;AAAA,IACpC,GAAGG;AAAA,IACH,UAAAJ;AAAA,EAAA,CACD;AACH;AAEO,SAASO,EAAqB;AAAA,EACnC,UAAAP;AAAA,EACA,QAAAQ;AAAA,EACA,UAAAC;AAAA,EACA,WAAAR;AAAA,EACA,GAAGG;AACL,GAAG;AACD,2BAA0B,OAAO;AAAA,IAC/B,WAAWC,EAAGC,EAAO,QAAQL,CAAS;AAAA,IACtC,GAAGG;AAAA,IACH,UAAU,CAAcM,gBAAAA,EAAKC,GAAM;AAAA,MACjC,SAAS;AAAA,MACT,WAAWL,EAAO;AAAA,MAClB,UAAAN;AAAA,IAAA,CACD,GAAgBU,gBAAAA,EAAKE,GAAQ;AAAA,MAC5B,MAAM;AAAA,MACN,SAAS;AAAA,MACT,OAAO;AAAA,MACP,YAAY,CAACH;AAAA,MACb,SAASA;AAAA,MACT,UAAUD;AAAA,IAAA,CACX,CAAC;AAAA,EAAA,CACH;AACH;"}
@@ -1 +1 @@
1
- @keyframes Message_message-user-enter_tpC2Ro{0%{transform:translateY(12px) scale(.96);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@layer components{.Message_message_ZGJhqY{display:flex;flex-direction:column;gap:var(--spacing-md);content-visibility:auto;contain:content layout paint;contain-intrinsic-size:auto none;padding-block:20px;width:100%}.Message_message_ZGJhqY[data-role=user]{justify-content:flex-end;padding-left:var(--spacing-10)}.Message_message_ZGJhqY[data-role=user] [data-slot=attachments]{justify-content:flex-end}.Message_message_ZGJhqY[data-role=user][data-animate-entry]{animation:Message_message-user-enter_tpC2Ro .5s linear(0,.446 10%,.866 20%,1.002 30%,1.017 40%,1.008 50%,1) both}@media(prefers-reduced-motion:reduce){.Message_message_ZGJhqY[data-role=user][data-animate-entry]{animation:none}}.Message_message_ZGJhqY[data-role=user]+.Message_message_ZGJhqY[data-role=user],.Message_message_ZGJhqY[data-role=assistant]+.Message_message_ZGJhqY[data-role=assistant]{padding-top:0}.Message_message_ZGJhqY[data-role=assistant]{padding-inline:var(--spacing-sm);width:100%}.Message_messageText_eZIs9c{display:block;width:100%;min-width:0;font-weight:400;font-size:var(--text-md);font-size:calc(var(--text-md) * var(--streamdown-font-factor, 1));line-height:var(--leading-md);line-height:calc(var(--leading-lg) * var(--streamdown-font-factor, 1));font-family:Onest,sans-serif;letter-spacing:0;overflow-wrap:anywhere}.Message_messageText_eZIs9c.Message_userMessageFragment_exz01E{display:inline;width:auto}.Message_messageBubble_nXUDl1{align-self:flex-end;border-radius:calc(var(--radius-xl) * var(--squircle-radius-factor));border-bottom-right-radius:0;max-width:90%;overflow:hidden;corner-shape:superellipse(var(--squircle-value));background-color:var(--color-chat-message);padding:var(--spacing-md);color:var(--color-chat-message-content)}.Message_userBubble_a0Jcec{display:flex;flex-direction:column;align-items:flex-start;gap:var(--spacing-sm);min-width:0}.Message_userMessageBody_pNc11Y{overflow-wrap:anywhere}.Message_userMessageWithCites_SLaFWP [data-streamdown=p]{display:inline}.Message_userCite_VkVwBX{display:inline-flex;vertical-align:middle;margin-inline:.05em;max-width:100%}.Message_userMessageScroll_mmelNB{width:100%;min-width:0;max-width:100%}.Message_userMessageScrollPort_eMVwNQ{min-width:0;max-width:100%}.Message_messageBubble_nXUDl1 .Message_userMessageScroll_mmelNB[aria-expanded=false]{max-height:calc(16lh + var(--spacing-md) * 2 + var(--spacing-xxs))}.Message_messageBubble_nXUDl1 .Message_userMessageScroll_mmelNB[aria-expanded=true]{max-height:70vh}.Message_userMessageExpandToggle_6FM7T4{position:absolute;bottom:0;left:50%;transform:translate(-50%)!important;z-index:1}.Message_userMessageExpandToggle_6FM7T4[data-hovered=true]{opacity:.75}.Message_parts_J4bcdT{display:flex;flex-direction:column;gap:var(--spacing-lg);min-width:0;max-width:100%}}
1
+ @keyframes Message_message-user-enter_tpC2Ro{0%{transform:translateY(12px) scale(.96);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@layer components{.Message_message_ZGJhqY{display:flex;flex-direction:column;content-visibility:auto;contain:content layout paint;contain-intrinsic-size:auto none;padding-block:20px;width:100%}.Message_message_ZGJhqY[data-role=user]{justify-content:flex-end;padding-left:var(--spacing-10)}.Message_message_ZGJhqY[data-role=user] [data-slot=attachments]{justify-content:flex-end;margin-bottom:var(--spacing-md)}.Message_message_ZGJhqY[data-role=user][data-animate-entry]{animation:Message_message-user-enter_tpC2Ro .5s linear(0,.446 10%,.866 20%,1.002 30%,1.017 40%,1.008 50%,1) both}@media(prefers-reduced-motion:reduce){.Message_message_ZGJhqY[data-role=user][data-animate-entry]{animation:none}}.Message_message_ZGJhqY[data-role=user]+.Message_message_ZGJhqY[data-role=user],.Message_message_ZGJhqY[data-role=assistant]+.Message_message_ZGJhqY[data-role=assistant]{padding-top:0}.Message_message_ZGJhqY[data-role=assistant]{padding-inline:var(--spacing-sm);width:100%}.Message_messageText_eZIs9c{display:block;width:100%;min-width:0;font-weight:400;font-size:var(--text-md);font-size:calc(var(--text-md) * var(--streamdown-font-factor, 1));line-height:var(--leading-md);line-height:calc(var(--leading-lg) * var(--streamdown-font-factor, 1));font-family:Onest,sans-serif;letter-spacing:0;overflow-wrap:anywhere}.Message_messageText_eZIs9c.Message_userMessageFragment_exz01E{display:inline;width:auto}.Message_messageBubble_nXUDl1{align-self:flex-end;border-radius:calc(var(--radius-xl) * var(--squircle-radius-factor));border-bottom-right-radius:0;max-width:90%;overflow:hidden;corner-shape:superellipse(var(--squircle-value));background-color:var(--color-chat-message);padding:var(--spacing-md);color:var(--color-chat-message-content)}.Message_userBubble_a0Jcec{display:flex;position:relative;flex-direction:column;align-items:flex-start;gap:var(--spacing-sm);min-width:0}.Message_userMessageBody_pNc11Y{overflow-wrap:anywhere}.Message_userMessageWithCites_SLaFWP [data-streamdown=p]{display:inline}.Message_userCite_VkVwBX{display:inline-flex;vertical-align:middle;margin-inline:.05em;max-width:100%}.Message_userMessageScroll_mmelNB{width:100%;min-width:0;max-width:100%}.Message_userMessageScrollPort_eMVwNQ{min-width:0;max-width:100%}.Message_messageBubble_nXUDl1 .Message_userMessageScroll_mmelNB[aria-expanded=false]{max-height:calc(16lh + var(--spacing-md) * 2 + var(--spacing-xxs))}.Message_messageBubble_nXUDl1 .Message_userMessageScroll_mmelNB[aria-expanded=true]{max-height:none;overflow:visible}.Message_messageBubble_nXUDl1 .Message_userMessageScroll_mmelNB[aria-expanded=true] .Message_userMessageScrollPort_eMVwNQ{flex:none;height:auto;min-height:auto;max-height:none;overflow:visible}.Message_messageBubble_nXUDl1 .Message_userMessageExpandToggle_6FM7T4{position:absolute;bottom:0;left:50%;transform:translate(-50%)!important;z-index:1}[data-hovered=true]:is(.Message_messageBubble_nXUDl1 .Message_userMessageExpandToggle_6FM7T4){opacity:.75}.Message_parts_J4bcdT{display:flex;flex-direction:column;gap:var(--spacing-lg);min-width:0;max-width:100%}.Message_worked_eYBr7U{display:flex;flex-direction:column;align-items:flex-start;gap:var(--spacing-md);width:100%;min-width:0}.Message_workedTrigger_ddlr5n{font-weight:400;font-size:var(--text-sm);line-height:var(--leading-sm);font-family:Onest,sans-serif;letter-spacing:0}.Message_workedPanel_uxV37n{width:100%;min-width:0}}
@@ -1,30 +1,36 @@
1
- const e = "Message_message_ZGJhqY", s = "Message_messageText_eZIs9c", a = "Message_userMessageFragment_exz01E", g = "Message_messageBubble_nXUDl1", r = "Message_userBubble_a0Jcec", t = "Message_userMessageBody_pNc11Y", M = "Message_userMessageWithCites_SLaFWP", u = "Message_userCite_VkVwBX", o = "Message_userMessageScroll_mmelNB", l = "Message_userMessageScrollPort_eMVwNQ", c = "Message_userMessageExpandToggle_6FM7T4", _ = "Message_parts_J4bcdT", n = {
1
+ const e = "Message_message_ZGJhqY", s = "Message_messageText_eZIs9c", a = "Message_userMessageFragment_exz01E", g = "Message_messageBubble_nXUDl1", r = "Message_userBubble_a0Jcec", o = "Message_userMessageBody_pNc11Y", t = "Message_userMessageWithCites_SLaFWP", M = "Message_userCite_VkVwBX", u = "Message_userMessageScroll_mmelNB", _ = "Message_userMessageScrollPort_eMVwNQ", l = "Message_userMessageExpandToggle_6FM7T4", n = "Message_parts_J4bcdT", c = "Message_worked_eYBr7U", d = "Message_workedTrigger_ddlr5n", m = "Message_workedPanel_uxV37n", b = {
2
2
  message: e,
3
3
  messageText: s,
4
4
  userMessageFragment: a,
5
5
  messageBubble: g,
6
6
  userBubble: r,
7
- userMessageBody: t,
8
- userMessageWithCites: M,
9
- userCite: u,
10
- userMessageScroll: o,
11
- userMessageScrollPort: l,
12
- userMessageExpandToggle: c,
13
- parts: _
7
+ userMessageBody: o,
8
+ userMessageWithCites: t,
9
+ userCite: M,
10
+ userMessageScroll: u,
11
+ userMessageScrollPort: _,
12
+ userMessageExpandToggle: l,
13
+ parts: n,
14
+ worked: c,
15
+ workedTrigger: d,
16
+ workedPanel: m
14
17
  };
15
18
  export {
16
- n as default,
19
+ b as default,
17
20
  e as message,
18
21
  g as messageBubble,
19
22
  s as messageText,
20
- _ as parts,
23
+ n as parts,
21
24
  r as userBubble,
22
- u as userCite,
23
- t as userMessageBody,
24
- c as userMessageExpandToggle,
25
+ M as userCite,
26
+ o as userMessageBody,
27
+ l as userMessageExpandToggle,
25
28
  a as userMessageFragment,
26
- o as userMessageScroll,
27
- l as userMessageScrollPort,
28
- M as userMessageWithCites
29
+ u as userMessageScroll,
30
+ _ as userMessageScrollPort,
31
+ t as userMessageWithCites,
32
+ c as worked,
33
+ m as workedPanel,
34
+ d as workedTrigger
29
35
  };
30
36
  //# sourceMappingURL=Message.module.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Message.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Message.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Assistant turn segments and streaming pending loader.
3
- * While streaming, keep the loader even when all parts are invisible (todos, step-start, …).
3
+ * A finished text answer folds the work into one "Worked for …" disclosure.
4
+ * Cancelled turns and turns that do not end on text keep the phase rows open.
4
5
  */
5
6
  export declare const MessageAssistantBody: (({ hideSources, }?: {
6
7
  /** Editor footer owns citations — drop in-body Sources groups. */
@@ -1 +1 @@
1
- {"version":3,"file":"MessageAssistantBody.d.ts","sourceRoot":"","sources":["../../../../src/chat/Message/turn/MessageAssistantBody.tsx"],"names":[],"mappings":"AA2BA;;;GAGG;AACH,eAAO,MAAM,oBAAoB,uBAE9B;IACC,kEAAkE;IAClE,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;IAFG,kEAAkE;kBACpD,OAAO;;uCAFtB;QACC,kEAAkE;QAClE,WAAW,CAAC,EAAE,OAAO,CAAC;KACzB;CAiEC,CAAC"}
1
+ {"version":3,"file":"MessageAssistantBody.d.ts","sourceRoot":"","sources":["../../../../src/chat/Message/turn/MessageAssistantBody.tsx"],"names":[],"mappings":"AAwIA;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,uBAE9B;IACC,kEAAkE;IAClE,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;IAFG,kEAAkE;kBACpD,OAAO;;uCAFtB;QACC,kEAAkE;QAClE,WAAW,CAAC,EAAE,OAAO,CAAC;KACzB;CA8EC,CAAC"}
@@ -1,70 +1,162 @@
1
- import { observer as S } from "mobx-react-lite";
2
- import { For as v } from "../../../For/For.js";
1
+ import { ChevronDown as A } from "@reforma/icons/8";
2
+ import { cn as C } from "@reforma/lib";
3
+ import { observer as P } from "mobx-react-lite";
4
+ import { Button as T } from "../../../Button/Button.js";
5
+ import { Collapsible as F, CollapsibleContent as y, useCollapsible as L, CollapsibleTrigger as M } from "../../../Collapsible/Collapsible.js";
6
+ import { For as N } from "../../../For/For.js";
3
7
  import { Show as x } from "../../../Show/Show.js";
4
- import { ConversationPendingLoader as u } from "../../Conversation/ConversationPendingLoader.js";
5
- import { streamingPhaseActiveIndex as P, partsFromSegmentGroups as A } from "../normalize/normalizeMessageParts.js";
6
- import { MessagePhaseSection as M } from "../segments/MessagePhaseSection.js";
7
- import { useMessageTurn as w } from "./messageTurnContext.js";
8
- import { jsxs as F, Fragment as I, jsx as o } from "react/jsx-runtime";
9
- function j(m) {
10
- const s = [];
11
- for (const e of m) {
12
- const t = e.groups.filter((n) => n.kind !== "sources");
13
- t.length > 0 && s.push({
14
- ...e,
15
- groups: t
8
+ import { ConversationPendingLoader as S } from "../../Conversation/ConversationPendingLoader.js";
9
+ import { streamingPhaseActiveIndex as W, partsFromSegmentGroups as j } from "../normalize/normalizeMessageParts.js";
10
+ import { MessagePhaseSection as B } from "../segments/MessagePhaseSection.js";
11
+ import v from "./Message.module.css.js";
12
+ import { useMessageTurn as $ } from "./messageTurnContext.js";
13
+ import { splitFinishedWork as D, workedForLabel as E } from "./workedCollapse.js";
14
+ import { jsx as r, jsxs as d, Fragment as b } from "react/jsx-runtime";
15
+ function G(t) {
16
+ const e = [];
17
+ for (const s of t) {
18
+ const n = s.groups.filter((l) => l.kind !== "sources");
19
+ n.length > 0 && e.push({
20
+ ...s,
21
+ groups: n
16
22
  });
17
23
  }
18
- return s;
24
+ return e;
19
25
  }
20
- const T = S(({
21
- hideSources: m = !1
26
+ function k({
27
+ segments: t,
28
+ messageId: e,
29
+ isStreaming: s,
30
+ isLiveMessage: n,
31
+ turnActive: l,
32
+ phaseActiveIndex: u,
33
+ getPhaseStats: o,
34
+ lastPart: p,
35
+ loaderParts: g,
36
+ markTail: a
37
+ }) {
38
+ return /* @__PURE__ */ r(N, {
39
+ each: t,
40
+ children: (i, m, {
41
+ isLast: f
42
+ }) => {
43
+ const c = a && f;
44
+ return /* @__PURE__ */ r(B, {
45
+ segment: i,
46
+ messageId: e,
47
+ isStreaming: s,
48
+ isLiveMessage: n,
49
+ isLastSegment: c,
50
+ streamActive: l && (c || m === u),
51
+ fileStats: i.layout === "grouped" ? o?.(j(i.groups)) : void 0,
52
+ children: c && s ? /* @__PURE__ */ r(S, {
53
+ lastPart: p,
54
+ messageId: e,
55
+ parts: g
56
+ }) : null
57
+ }, `${e}-${i.index}`);
58
+ }
59
+ });
60
+ }
61
+ function I({
62
+ label: t
63
+ }) {
64
+ const {
65
+ state: e
66
+ } = L();
67
+ return /* @__PURE__ */ r(M, {
68
+ asChild: !0,
69
+ children: /* @__PURE__ */ d(T, {
70
+ type: "button",
71
+ variant: "inline",
72
+ color: "secondary",
73
+ className: v.workedTrigger,
74
+ children: [t, /* @__PURE__ */ r(A, {
75
+ className: C("chevron", "next"),
76
+ "aria-expanded": e.isExpanded,
77
+ "aria-hidden": !0
78
+ })]
79
+ })
80
+ });
81
+ }
82
+ function O({
83
+ label: t,
84
+ children: e
85
+ }) {
86
+ return /* @__PURE__ */ d(F, {
87
+ className: v.worked,
88
+ defaultOpen: !1,
89
+ children: [/* @__PURE__ */ r(I, {
90
+ label: t
91
+ }), /* @__PURE__ */ r(y, {
92
+ className: v.workedPanel,
93
+ children: e
94
+ })]
95
+ });
96
+ }
97
+ const re = P(({
98
+ hideSources: t = !1
22
99
  } = {}) => {
23
- const s = w();
24
- if (s?.role !== "assistant")
100
+ const e = $();
101
+ if (e?.role !== "assistant" || e.message.role !== "assistant")
25
102
  return null;
26
103
  const {
27
- messageId: e,
28
- segments: t,
29
- lastPart: n,
30
- turnActive: l,
31
- isStreaming: r,
104
+ messageId: s,
105
+ segments: n,
106
+ lastPart: l,
107
+ turnActive: u,
108
+ isStreaming: o,
32
109
  isLastMessage: p,
33
- getPhaseStats: f
34
- } = s, i = m ? j(t) : t, c = s.message.parts;
35
- if (i.length === 0 && !r)
110
+ getPhaseStats: g
111
+ } = e, a = t ? G(n) : n, i = e.message.parts, m = e.message.metadata;
112
+ if (a.length === 0 && !o)
36
113
  return null;
37
- const h = P(i, r);
38
- return /* @__PURE__ */ F(I, {
39
- children: [/* @__PURE__ */ o(v, {
40
- each: i,
41
- children: (a, d, {
42
- isLast: g
43
- }) => /* @__PURE__ */ o(M, {
44
- segment: a,
45
- messageId: e,
46
- isStreaming: r,
47
- isLiveMessage: p,
48
- isLastSegment: g,
49
- streamActive: l && (g || d === h),
50
- fileStats: a.layout === "grouped" ? f?.(A(a.groups)) : void 0,
51
- children: g && r ? /* @__PURE__ */ o(u, {
52
- lastPart: n,
53
- messageId: e,
54
- parts: c
55
- }) : null
56
- }, `${e}-${a.index}`)
57
- }), /* @__PURE__ */ o(x, {
58
- when: r && i.length === 0,
59
- children: /* @__PURE__ */ o(u, {
60
- lastPart: n,
61
- messageId: e,
62
- parts: c
63
- })
64
- })]
114
+ const f = W(a, o), c = D(a, {
115
+ streaming: o,
116
+ cancelled: m?.stopReason === "cancelled"
117
+ }), h = {
118
+ messageId: s,
119
+ isStreaming: o,
120
+ isLiveMessage: p,
121
+ turnActive: u,
122
+ phaseActiveIndex: f,
123
+ getPhaseStats: g,
124
+ lastPart: l,
125
+ loaderParts: i
126
+ };
127
+ return /* @__PURE__ */ r(x, {
128
+ when: c,
129
+ fallback: /* @__PURE__ */ d(b, {
130
+ children: [/* @__PURE__ */ r(k, {
131
+ ...h,
132
+ segments: a,
133
+ markTail: !0
134
+ }), /* @__PURE__ */ r(x, {
135
+ when: o && a.length === 0,
136
+ children: /* @__PURE__ */ r(S, {
137
+ lastPart: l,
138
+ messageId: s,
139
+ parts: i
140
+ })
141
+ })]
142
+ }),
143
+ children: (w) => /* @__PURE__ */ d(b, {
144
+ children: [/* @__PURE__ */ r(O, {
145
+ label: E(m?.startedAt, m?.endedAt),
146
+ children: /* @__PURE__ */ r(k, {
147
+ ...h,
148
+ segments: w.work,
149
+ markTail: !1
150
+ })
151
+ }), /* @__PURE__ */ r(k, {
152
+ ...h,
153
+ segments: [w.answer],
154
+ markTail: !0
155
+ })]
156
+ })
65
157
  });
66
158
  });
67
159
  export {
68
- T as MessageAssistantBody
160
+ re as MessageAssistantBody
69
161
  };
70
162
  //# sourceMappingURL=MessageAssistantBody.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageAssistantBody.js","sources":["../../../../src/chat/Message/turn/MessageAssistantBody.tsx"],"sourcesContent":["'use client';\n\nimport { observer } from 'mobx-react-lite';\n\nimport { For } from '../../../For';\nimport { Show } from '../../../Show';\nimport { ConversationPendingLoader } from '../../Conversation/ConversationPendingLoader';\nimport { partsFromSegmentGroups, streamingPhaseActiveIndex } from '../normalize/normalizeMessageParts';\nimport { MessagePhaseSection } from '../segments';\nimport { useMessageTurn } from './messageTurnContext';\n\nimport type { MessageSegment } from '../normalize/normalizeMessageParts';\n\nfunction segmentsWithoutSources(segments: readonly MessageSegment[]): MessageSegment[] {\n const next: MessageSegment[] = [];\n\n for (const segment of segments) {\n const groups = segment.groups.filter(group => group.kind !== 'sources');\n\n if (groups.length > 0) {\n next.push({ ...segment, groups });\n }\n }\n\n return next;\n}\n\n/**\n * Assistant turn segments and streaming pending loader.\n * While streaming, keep the loader even when all parts are invisible (todos, step-start, …).\n */\nexport const MessageAssistantBody = observer(({\n hideSources = false,\n}: {\n /** Editor footer owns citations — drop in-body Sources groups. */\n hideSources?: boolean;\n} = {}) => {\n const turn = useMessageTurn();\n\n if (turn?.role !== 'assistant') {\n return null;\n }\n\n const {\n messageId,\n segments: rawSegments,\n lastPart,\n turnActive,\n isStreaming,\n isLastMessage,\n getPhaseStats,\n } = turn;\n const segments = hideSources ? segmentsWithoutSources(rawSegments) : rawSegments;\n const loaderParts = turn.message.parts;\n\n if (segments.length === 0 && !isStreaming) {\n return null;\n }\n\n const phaseActiveIndex = streamingPhaseActiveIndex(segments, isStreaming);\n\n return (\n <>\n <For each={ segments }>\n { (segment, segIndex, { isLast }) => (\n <MessagePhaseSection\n key={ `${ messageId }-${ segment.index }` }\n segment={ segment }\n messageId={ messageId }\n isStreaming={ isStreaming }\n isLiveMessage={ isLastMessage }\n isLastSegment={ isLast }\n streamActive={ turnActive && (isLast || segIndex === phaseActiveIndex) }\n fileStats={\n segment.layout === 'grouped'\n ? getPhaseStats?.(partsFromSegmentGroups(segment.groups))\n : undefined\n }\n >\n { isLast && isStreaming\n ? (\n <ConversationPendingLoader\n lastPart={ lastPart }\n messageId={ messageId }\n parts={ loaderParts }\n />\n )\n : null }\n </MessagePhaseSection>\n ) }\n </For>\n\n <Show when={ isStreaming && segments.length === 0 }>\n <ConversationPendingLoader\n lastPart={ lastPart }\n messageId={ messageId }\n parts={ loaderParts }\n />\n </Show>\n </>\n );\n});\n"],"names":["segmentsWithoutSources","segments","next","segment","groups","group","MessageAssistantBody","observer","hideSources","turn","useMessageTurn","messageId","rawSegments","lastPart","turnActive","isStreaming","isLastMessage","getPhaseStats","loaderParts","phaseActiveIndex","streamingPhaseActiveIndex","_Fragment","_jsx","For","segIndex","isLast","MessagePhaseSection","partsFromSegmentGroups","ConversationPendingLoader","Show"],"mappings":";;;;;;;;AAUA,SAASA,EAAuBC,GAAU;AACxC,QAAMC,IAAO,CAAA;AACb,aAAWC,KAAWF,GAAU;AAC9B,UAAMG,IAASD,EAAQ,OAAO,OAAO,CAAAE,MAASA,EAAM,SAAS,SAAS;AACtE,IAAID,EAAO,SAAS,KAClBF,EAAK,KAAK;AAAA,MACR,GAAGC;AAAA,MACH,QAAAC;AAAA,IAAA,CACD;AAAA,EAEL;AACA,SAAOF;AACT;AAMO,MAAMI,IAAuBC,EAAS,CAAC;AAAA,EAC5C,aAAAC,IAAc;AAChB,IAAI,OAAO;AACT,QAAMC,IAAOC,EAAA;AACb,MAAID,GAAM,SAAS;AACjB,WAAO;AAET,QAAM;AAAA,IACJ,WAAAE;AAAA,IACA,UAAUC;AAAA,IACV,UAAAC;AAAA,IACA,YAAAC;AAAA,IACA,aAAAC;AAAA,IACA,eAAAC;AAAA,IACA,eAAAC;AAAA,EAAA,IACER,GACER,IAAWO,IAAcR,EAAuBY,CAAW,IAAIA,GAC/DM,IAAcT,EAAK,QAAQ;AACjC,MAAIR,EAAS,WAAW,KAAK,CAACc;AAC5B,WAAO;AAET,QAAMI,IAAmBC,EAA0BnB,GAAUc,CAAW;AACxE,2BAA0BM,GAAW;AAAA,IACnC,UAAU,CAAcC,gBAAAA,EAAKC,GAAK;AAAA,MAChC,MAAMtB;AAAA,MACN,UAAU,CAACE,GAASqB,GAAU;AAAA,QAC5B,QAAAC;AAAA,MAAA,wBACsBC,GAAqB;AAAA,QAC3C,SAAAvB;AAAA,QACA,WAAAQ;AAAA,QACA,aAAAI;AAAA,QACA,eAAeC;AAAA,QACf,eAAeS;AAAA,QACf,cAAcX,MAAeW,KAAUD,MAAaL;AAAA,QACpD,WAAWhB,EAAQ,WAAW,YAAYc,IAAgBU,EAAuBxB,EAAQ,MAAM,CAAC,IAAI;AAAA,QACpG,UAAUsB,KAAUV,IAA2BO,gBAAAA,EAAKM,GAA2B;AAAA,UAC7E,UAAAf;AAAA,UACA,WAAAF;AAAA,UACA,OAAOO;AAAA,QAAA,CACR,IAAI;AAAA,MAAA,GACJ,GAAGP,CAAS,IAAIR,EAAQ,KAAK,EAAE;AAAA,IAAA,CACnC,GAAgBmB,gBAAAA,EAAKO,GAAM;AAAA,MAC1B,MAAMd,KAAed,EAAS,WAAW;AAAA,MACzC,4BAA4B2B,GAA2B;AAAA,QACrD,UAAAf;AAAA,QACA,WAAAF;AAAA,QACA,OAAOO;AAAA,MAAA,CACR;AAAA,IAAA,CACF,CAAC;AAAA,EAAA,CACH;AACH,CAAC;"}
1
+ {"version":3,"file":"MessageAssistantBody.js","sources":["../../../../src/chat/Message/turn/MessageAssistantBody.tsx"],"sourcesContent":["'use client';\n\nimport { ChevronDown } from '@reforma/icons/8';\nimport { cn } from '@reforma/lib';\nimport { observer } from 'mobx-react-lite';\n\nimport { Button } from '../../../Button';\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n useCollapsible,\n} from '../../../Collapsible';\nimport { For } from '../../../For';\nimport { Show } from '../../../Show';\nimport { ConversationPendingLoader } from '../../Conversation/ConversationPendingLoader';\nimport { partsFromSegmentGroups, streamingPhaseActiveIndex } from '../normalize/normalizeMessageParts';\nimport { MessagePhaseSection } from '../segments';\nimport styles from './Message.module.css';\nimport { useMessageTurn } from './messageTurnContext';\nimport { splitFinishedWork, workedForLabel } from './workedCollapse';\n\nimport type { ReactNode } from 'react';\nimport type { MessageSegment } from '../normalize/normalizeMessageParts';\nimport type { ReformaUIMessagePart } from '../types';\nimport type { GetPhaseStats } from './messageTurnContext';\n\nfunction segmentsWithoutSources(segments: readonly MessageSegment[]): MessageSegment[] {\n const next: MessageSegment[] = [];\n\n for (const segment of segments) {\n const groups = segment.groups.filter(group => group.kind !== 'sources');\n\n if (groups.length > 0) {\n next.push({ ...segment, groups });\n }\n }\n\n return next;\n}\n\ntype SegmentListProps = {\n segments: readonly MessageSegment[];\n messageId: string;\n isStreaming: boolean;\n isLiveMessage: boolean;\n turnActive: boolean;\n phaseActiveIndex: number;\n getPhaseStats: GetPhaseStats | undefined;\n lastPart: ReformaUIMessagePart | undefined;\n loaderParts: readonly ReformaUIMessagePart[];\n /** Work under the spoiler is not the message tail, so its phases stay closed. */\n markTail: boolean;\n};\n\nfunction AssistantSegments({\n segments,\n messageId,\n isStreaming,\n isLiveMessage,\n turnActive,\n phaseActiveIndex,\n getPhaseStats,\n lastPart,\n loaderParts,\n markTail,\n}: SegmentListProps) {\n return (\n <For each={ segments }>\n { (segment, segIndex, { isLast }) => {\n const isLastSegment = markTail && isLast;\n\n return (\n <MessagePhaseSection\n key={ `${ messageId }-${ segment.index }` }\n segment={ segment }\n messageId={ messageId }\n isStreaming={ isStreaming }\n isLiveMessage={ isLiveMessage }\n isLastSegment={ isLastSegment }\n streamActive={ turnActive && (isLastSegment || segIndex === phaseActiveIndex) }\n fileStats={\n segment.layout === 'grouped'\n ? getPhaseStats?.(partsFromSegmentGroups(segment.groups))\n : undefined\n }\n >\n { isLastSegment && isStreaming\n ? (\n <ConversationPendingLoader\n lastPart={ lastPart }\n messageId={ messageId }\n parts={ loaderParts }\n />\n )\n : null }\n </MessagePhaseSection>\n );\n } }\n </For>\n );\n}\n\nfunction WorkedTrigger({ label }: { label: string }) {\n const { state } = useCollapsible();\n\n return (\n <CollapsibleTrigger asChild>\n <Button\n type=\"button\"\n variant=\"inline\"\n color=\"secondary\"\n className={ styles.workedTrigger }\n >\n { label }\n <ChevronDown\n className={ cn('chevron', 'next') }\n aria-expanded={ state.isExpanded }\n aria-hidden\n />\n </Button>\n </CollapsibleTrigger>\n );\n}\n\nfunction WorkedFor({ label, children }: { label: string; children: ReactNode }) {\n return (\n <Collapsible className={ styles.worked } defaultOpen={ false }>\n <WorkedTrigger label={ label } />\n <CollapsibleContent className={ styles.workedPanel }>\n { children }\n </CollapsibleContent>\n </Collapsible>\n );\n}\n\n/**\n * Assistant turn segments and streaming pending loader.\n * A finished text answer folds the work into one \"Worked for …\" disclosure.\n * Cancelled turns and turns that do not end on text keep the phase rows open.\n */\nexport const MessageAssistantBody = observer(({\n hideSources = false,\n}: {\n /** Editor footer owns citations — drop in-body Sources groups. */\n hideSources?: boolean;\n} = {}) => {\n const turn = useMessageTurn();\n\n if (turn?.role !== 'assistant' || turn.message.role !== 'assistant') {\n return null;\n }\n\n const {\n messageId,\n segments: rawSegments,\n lastPart,\n turnActive,\n isStreaming,\n isLastMessage,\n getPhaseStats,\n } = turn;\n const segments = hideSources ? segmentsWithoutSources(rawSegments) : rawSegments;\n const loaderParts = turn.message.parts;\n const metadata = turn.message.metadata;\n\n if (segments.length === 0 && !isStreaming) {\n return null;\n }\n\n const phaseActiveIndex = streamingPhaseActiveIndex(segments, isStreaming);\n const finished = splitFinishedWork(segments, {\n streaming: isStreaming,\n cancelled: metadata?.stopReason === 'cancelled',\n });\n const listProps = {\n messageId,\n isStreaming,\n isLiveMessage: isLastMessage,\n turnActive,\n phaseActiveIndex,\n getPhaseStats,\n lastPart,\n loaderParts,\n };\n\n return (\n <Show\n when={ finished }\n fallback={ (\n <>\n <AssistantSegments\n { ...listProps }\n segments={ segments }\n markTail\n />\n <Show when={ isStreaming && segments.length === 0 }>\n <ConversationPendingLoader\n lastPart={ lastPart }\n messageId={ messageId }\n parts={ loaderParts }\n />\n </Show>\n </>\n ) }\n >\n { split => (\n <>\n <WorkedFor label={ workedForLabel(metadata?.startedAt, metadata?.endedAt) }>\n <AssistantSegments\n { ...listProps }\n segments={ split.work }\n markTail={ false }\n />\n </WorkedFor>\n <AssistantSegments\n { ...listProps }\n segments={ [split.answer] }\n markTail\n />\n </>\n ) }\n </Show>\n );\n});\n"],"names":["segmentsWithoutSources","segments","next","segment","groups","group","AssistantSegments","messageId","isStreaming","isLiveMessage","turnActive","phaseActiveIndex","getPhaseStats","lastPart","loaderParts","markTail","For","segIndex","isLast","isLastSegment","MessagePhaseSection","partsFromSegmentGroups","_jsx","ConversationPendingLoader","WorkedTrigger","label","state","useCollapsible","CollapsibleTrigger","Button","styles","ChevronDown","cn","WorkedFor","children","Collapsible","CollapsibleContent","MessageAssistantBody","observer","hideSources","turn","useMessageTurn","rawSegments","isLastMessage","metadata","streamingPhaseActiveIndex","finished","splitFinishedWork","listProps","Show","_Fragment","split","_jsxs","workedForLabel"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MessageUserBubble.d.ts","sourceRoot":"","sources":["../../../../src/chat/Message/turn/MessageUserBubble.tsx"],"names":[],"mappings":"AA4BA,eAAO,MAAM,+BAA+B,MAAM,CAAC;AAqPnD,wFAAwF;AACxF,eAAO,MAAM,iBAAiB;;CA8D5B,CAAC"}
1
+ {"version":3,"file":"MessageUserBubble.d.ts","sourceRoot":"","sources":["../../../../src/chat/Message/turn/MessageUserBubble.tsx"],"names":[],"mappings":"AA4BA,eAAO,MAAM,+BAA+B,MAAM,CAAC;AAqPnD,wFAAwF;AACxF,eAAO,MAAM,iBAAiB;;CA4D5B,CAAC"}