@bikdotai/bik-component-library 0.0.863-beta.1 → 0.0.863-beta.2

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 (127) hide show
  1. package/dist/cjs/components/agent-builder/AgentBuilder.js +1 -1
  2. package/dist/cjs/components/agent-builder/AgentBuilder.js.map +1 -1
  3. package/dist/cjs/components/agent-builder/AgentBuilder.styled.js +54 -44
  4. package/dist/cjs/components/agent-builder/AgentBuilder.styled.js.map +1 -1
  5. package/dist/cjs/components/agent-builder/components/AgentStateModal.js +2 -0
  6. package/dist/cjs/components/agent-builder/components/AgentStateModal.js.map +1 -0
  7. package/dist/cjs/components/agent-builder/components/MentionPicker.js +1 -1
  8. package/dist/cjs/components/agent-builder/components/MentionPicker.js.map +1 -1
  9. package/dist/cjs/components/agent-builder/components/SelectableListSection.js +1 -1
  10. package/dist/cjs/components/agent-builder/components/SelectableListSection.js.map +1 -1
  11. package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js +1 -1
  12. package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
  13. package/dist/cjs/components/agent-builder/steps/Step2WhenItStepsIn.js +1 -1
  14. package/dist/cjs/components/agent-builder/steps/Step2WhenItStepsIn.js.map +1 -1
  15. package/dist/cjs/components/agent-listing/AgentTableRow.js +1 -1
  16. package/dist/cjs/components/agent-listing/AgentTableRow.js.map +1 -1
  17. package/dist/cjs/index.js +1 -1
  18. package/dist/esm/components/agent-builder/AgentBuilder.js +3 -3
  19. package/dist/esm/components/agent-builder/AgentBuilder.js.map +1 -1
  20. package/dist/esm/components/agent-builder/AgentBuilder.styled.d.ts +23 -0
  21. package/dist/esm/components/agent-builder/AgentBuilder.styled.js +99 -86
  22. package/dist/esm/components/agent-builder/AgentBuilder.styled.js.map +1 -1
  23. package/dist/esm/components/agent-builder/components/AgentStateModal.d.ts +47 -0
  24. package/dist/esm/components/agent-builder/components/AgentStateModal.js +82 -0
  25. package/dist/esm/components/agent-builder/components/AgentStateModal.js.map +1 -0
  26. package/dist/esm/components/agent-builder/components/MentionPicker.js +27 -27
  27. package/dist/esm/components/agent-builder/components/MentionPicker.js.map +1 -1
  28. package/dist/esm/components/agent-builder/components/SelectableListSection.js +16 -23
  29. package/dist/esm/components/agent-builder/components/SelectableListSection.js.map +1 -1
  30. package/dist/esm/components/agent-builder/context/AgentBuilderContext.js +132 -124
  31. package/dist/esm/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
  32. package/dist/esm/components/agent-builder/index.d.ts +2 -0
  33. package/dist/esm/components/agent-builder/steps/Step2WhenItStepsIn.js +13 -15
  34. package/dist/esm/components/agent-builder/steps/Step2WhenItStepsIn.js.map +1 -1
  35. package/dist/esm/components/agent-listing/AgentTableRow.js +71 -38
  36. package/dist/esm/components/agent-listing/AgentTableRow.js.map +1 -1
  37. package/dist/esm/index.d.ts +0 -1
  38. package/dist/esm/index.js +784 -832
  39. package/dist/esm/index.js.map +1 -1
  40. package/package.json +1 -1
  41. package/dist/cjs/components/bik-copilot/BIKCopilot.js +0 -2
  42. package/dist/cjs/components/bik-copilot/BIKCopilot.js.map +0 -1
  43. package/dist/cjs/components/bik-copilot/ControlledCopilot.js +0 -2
  44. package/dist/cjs/components/bik-copilot/ControlledCopilot.js.map +0 -1
  45. package/dist/cjs/components/bik-copilot/ControlledCopilot.styled.js +0 -27
  46. package/dist/cjs/components/bik-copilot/ControlledCopilot.styled.js.map +0 -1
  47. package/dist/cjs/components/bik-copilot/CopilotBall.js +0 -2
  48. package/dist/cjs/components/bik-copilot/CopilotBall.js.map +0 -1
  49. package/dist/cjs/components/bik-copilot/CopilotBall.styled.js +0 -42
  50. package/dist/cjs/components/bik-copilot/CopilotBall.styled.js.map +0 -1
  51. package/dist/cjs/components/bik-copilot/CopilotPanel.js +0 -2
  52. package/dist/cjs/components/bik-copilot/CopilotPanel.js.map +0 -1
  53. package/dist/cjs/components/bik-copilot/CopilotPanel.styled.js +0 -460
  54. package/dist/cjs/components/bik-copilot/CopilotPanel.styled.js.map +0 -1
  55. package/dist/cjs/components/bik-copilot/copilotPlacement.js +0 -2
  56. package/dist/cjs/components/bik-copilot/copilotPlacement.js.map +0 -1
  57. package/dist/cjs/components/bik-copilot/services/copilotDb.js +0 -2
  58. package/dist/cjs/components/bik-copilot/services/copilotDb.js.map +0 -1
  59. package/dist/cjs/components/bik-copilot/services/copilotIcebreakersClient.js +0 -2
  60. package/dist/cjs/components/bik-copilot/services/copilotIcebreakersClient.js.map +0 -1
  61. package/dist/cjs/components/bik-copilot/services/copilotMessagesClient.js +0 -2
  62. package/dist/cjs/components/bik-copilot/services/copilotMessagesClient.js.map +0 -1
  63. package/dist/cjs/components/bik-copilot/services/copilotPageSession.js +0 -2
  64. package/dist/cjs/components/bik-copilot/services/copilotPageSession.js.map +0 -1
  65. package/dist/cjs/components/bik-copilot/services/copilotSseParser.js +0 -7
  66. package/dist/cjs/components/bik-copilot/services/copilotSseParser.js.map +0 -1
  67. package/dist/cjs/components/bik-copilot/services/copilotStreamClient.js +0 -2
  68. package/dist/cjs/components/bik-copilot/services/copilotStreamClient.js.map +0 -1
  69. package/dist/cjs/components/bik-copilot/useCopilotIcebreakers.js +0 -2
  70. package/dist/cjs/components/bik-copilot/useCopilotIcebreakers.js.map +0 -1
  71. package/dist/cjs/components/bik-copilot/useCopilotStreamChat.js +0 -2
  72. package/dist/cjs/components/bik-copilot/useCopilotStreamChat.js.map +0 -1
  73. package/dist/cjs/components/bik-copilot/useDraggableFloater.js +0 -2
  74. package/dist/cjs/components/bik-copilot/useDraggableFloater.js.map +0 -1
  75. package/dist/esm/components/bik-copilot/BIKCopilot.d.ts +0 -32
  76. package/dist/esm/components/bik-copilot/BIKCopilot.js +0 -114
  77. package/dist/esm/components/bik-copilot/BIKCopilot.js.map +0 -1
  78. package/dist/esm/components/bik-copilot/ControlledCopilot.d.ts +0 -14
  79. package/dist/esm/components/bik-copilot/ControlledCopilot.js +0 -170
  80. package/dist/esm/components/bik-copilot/ControlledCopilot.js.map +0 -1
  81. package/dist/esm/components/bik-copilot/ControlledCopilot.styled.d.ts +0 -7
  82. package/dist/esm/components/bik-copilot/ControlledCopilot.styled.js +0 -31
  83. package/dist/esm/components/bik-copilot/ControlledCopilot.styled.js.map +0 -1
  84. package/dist/esm/components/bik-copilot/CopilotBall.d.ts +0 -13
  85. package/dist/esm/components/bik-copilot/CopilotBall.js +0 -50
  86. package/dist/esm/components/bik-copilot/CopilotBall.js.map +0 -1
  87. package/dist/esm/components/bik-copilot/CopilotBall.styled.d.ts +0 -9
  88. package/dist/esm/components/bik-copilot/CopilotBall.styled.js +0 -46
  89. package/dist/esm/components/bik-copilot/CopilotBall.styled.js.map +0 -1
  90. package/dist/esm/components/bik-copilot/CopilotPanel.d.ts +0 -9
  91. package/dist/esm/components/bik-copilot/CopilotPanel.js +0 -379
  92. package/dist/esm/components/bik-copilot/CopilotPanel.js.map +0 -1
  93. package/dist/esm/components/bik-copilot/CopilotPanel.styled.d.ts +0 -64
  94. package/dist/esm/components/bik-copilot/CopilotPanel.styled.js +0 -496
  95. package/dist/esm/components/bik-copilot/CopilotPanel.styled.js.map +0 -1
  96. package/dist/esm/components/bik-copilot/copilotPlacement.d.ts +0 -24
  97. package/dist/esm/components/bik-copilot/copilotPlacement.js +0 -38
  98. package/dist/esm/components/bik-copilot/copilotPlacement.js.map +0 -1
  99. package/dist/esm/components/bik-copilot/index.d.ts +0 -16
  100. package/dist/esm/components/bik-copilot/model.d.ts +0 -674
  101. package/dist/esm/components/bik-copilot/services/copilotDb.d.ts +0 -90
  102. package/dist/esm/components/bik-copilot/services/copilotDb.js +0 -96
  103. package/dist/esm/components/bik-copilot/services/copilotDb.js.map +0 -1
  104. package/dist/esm/components/bik-copilot/services/copilotIcebreakersClient.d.ts +0 -11
  105. package/dist/esm/components/bik-copilot/services/copilotIcebreakersClient.js +0 -54
  106. package/dist/esm/components/bik-copilot/services/copilotIcebreakersClient.js.map +0 -1
  107. package/dist/esm/components/bik-copilot/services/copilotMessagesClient.d.ts +0 -23
  108. package/dist/esm/components/bik-copilot/services/copilotMessagesClient.js +0 -78
  109. package/dist/esm/components/bik-copilot/services/copilotMessagesClient.js.map +0 -1
  110. package/dist/esm/components/bik-copilot/services/copilotPageSession.d.ts +0 -37
  111. package/dist/esm/components/bik-copilot/services/copilotPageSession.js +0 -35
  112. package/dist/esm/components/bik-copilot/services/copilotPageSession.js.map +0 -1
  113. package/dist/esm/components/bik-copilot/services/copilotSseParser.d.ts +0 -22
  114. package/dist/esm/components/bik-copilot/services/copilotSseParser.js +0 -52
  115. package/dist/esm/components/bik-copilot/services/copilotSseParser.js.map +0 -1
  116. package/dist/esm/components/bik-copilot/services/copilotStreamClient.d.ts +0 -31
  117. package/dist/esm/components/bik-copilot/services/copilotStreamClient.js +0 -103
  118. package/dist/esm/components/bik-copilot/services/copilotStreamClient.js.map +0 -1
  119. package/dist/esm/components/bik-copilot/useCopilotIcebreakers.d.ts +0 -17
  120. package/dist/esm/components/bik-copilot/useCopilotIcebreakers.js +0 -60
  121. package/dist/esm/components/bik-copilot/useCopilotIcebreakers.js.map +0 -1
  122. package/dist/esm/components/bik-copilot/useCopilotStreamChat.d.ts +0 -20
  123. package/dist/esm/components/bik-copilot/useCopilotStreamChat.js +0 -333
  124. package/dist/esm/components/bik-copilot/useCopilotStreamChat.js.map +0 -1
  125. package/dist/esm/components/bik-copilot/useDraggableFloater.d.ts +0 -9
  126. package/dist/esm/components/bik-copilot/useDraggableFloater.js +0 -118
  127. package/dist/esm/components/bik-copilot/useDraggableFloater.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AgentBuilder.styled.js","sources":["../../../../src/components/agent-builder/AgentBuilder.styled.tsx"],"sourcesContent":["import styled, { css } from 'styled-components';\nimport { BASE_COLORS, COLORS } from '@src/constants/Theme';\n\n// Shared look for the 24×24 transparent icon buttons (add / row-menu / close).\nconst iconActionButton = css`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 24px;\n\theight: 24px;\n\tborder: none;\n\tbackground: transparent;\n\tpadding: 0;\n\tcursor: pointer;\n\tborder-radius: 4px;\n\n\t&:hover {\n\t\tbackground: ${COLORS.surface.subdued};\n\t}\n\n\t&:disabled {\n\t\tcursor: not-allowed;\n\t\topacity: 0.5;\n\t\tbackground: transparent;\n\t}\n`;\n\nexport const BuilderRoot = styled.div.attrs({ className: 'bik-builder-root' })`\n\tdisplay: flex;\n\tflex-direction: column;\n\theight: 100%;\n\twidth: 100%;\n\tmin-height: 0;\n\tbackground: ${COLORS.surface.standard};\n`;\n\nexport const TopBar = styled.div.attrs({ className: 'bik-top-bar' })`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\theight: 56px;\n\tpadding: 12px 16px;\n\tborder-bottom: 1px solid ${COLORS.stroke.primary};\n\tflex-shrink: 0;\n`;\n\nexport const TopBarSide = styled.div.attrs({ className: 'bik-top-bar-side' })`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n`;\n\nexport const BackButton = styled.button.attrs({ className: 'bik-back-button' })`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 28px;\n\theight: 28px;\n\tborder: none;\n\tbackground: transparent;\n\tpadding: 0;\n\tcursor: pointer;\n\tborder-radius: 4px;\n\n\t&:hover {\n\t\tbackground: ${COLORS.surface.subdued};\n\t}\n`;\n\nexport const Main = styled.div.attrs({ className: 'bik-main' })`\n\tdisplay: flex;\n\tflex: 1;\n\tmin-height: 0;\n`;\n\nexport const Rail = styled.div.attrs({ className: 'bik-rail' })`\n\twidth: 234px;\n\tflex-shrink: 0;\n\tborder-right: 1px solid ${COLORS.stroke.primary};\n\tpadding: 16px;\n\toverflow-y: auto;\n\tbackground: ${COLORS.surface.standard};\n`;\n\nexport const Content = styled.div.attrs({ className: 'bik-content' })`\n\tflex: 1;\n\tmin-width: 0;\n\tmin-height: 0;\n\toverflow: hidden;\n\tdisplay: flex;\n\tflex-direction: column;\n\tpadding: 16px;\n\tbackground: ${COLORS.surface.standard};\n`;\n\nexport const ContentCard = styled.div.attrs({ className: 'bik-content-card' })`\n\tflex: 1;\n\tmin-height: 0;\n\tdisplay: flex;\n\tflex-direction: column;\n\toverflow: hidden;\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 8px;\n\tbox-sizing: border-box;\n`;\n\n// Scrollable step body inside the card; the footer stays pinned below it.\nexport const StepScroll = styled.div.attrs({ className: 'bik-step-scroll' })`\n\tflex: 1;\n\tmin-height: 0;\n\toverflow-y: auto;\n`;\n\nexport const Footer = styled.div.attrs({ className: 'bik-footer' })`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tmin-height: 56px;\n\tpadding: 12px 16px;\n\tborder-top: 1px solid ${COLORS.stroke.primary};\n\tflex-shrink: 0;\n\tbox-shadow: 0px -2px 12px 0px #0000000a;\n`;\n\nexport const FooterHint = styled.div.attrs({ className: 'bik-footer-hint' })`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n`;\n\nexport const FooterActions = styled.div.attrs({\n\tclassName: 'bik-footer-actions',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n`;\n\n// ── Step rail items ─────────────────────────────────────────────────────────\n\nexport const RailList = styled.div.attrs({ className: 'bik-rail-list' })`\n\tdisplay: flex;\n\tflex-direction: column;\n`;\n\nexport const RailItem = styled.button.attrs({ className: 'bik-rail-item' })`\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: flex-start;\n\tgap: 8px;\n\t/* Bottom padding leaves room for the connector down to the next badge. */\n\tpadding: 0 0 24px;\n\tborder: none;\n\tbackground: transparent;\n\tcursor: pointer;\n\ttext-align: left;\n\twidth: 100%;\n\n\t&:last-child {\n\t\tpadding-bottom: 0;\n\t}\n\n\t&:disabled {\n\t\tcursor: default;\n\t}\n\n\t/* Dashed connector line between consecutive step badges (centered on the badge). */\n\t&:not(:last-child)::after {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tleft: 9px;\n\t\ttop: 20px;\n\t\twidth: 0;\n\t\theight: 24px;\n\t\tborder-left: 1px dashed #e0e0e0;\n\t\tpointer-events: none;\n\t}\n`;\n\nexport const StepBadge = styled.div.attrs({ className: 'bik-step-badge' })<{\n\tstate: 'active' | 'complete' | 'inactive';\n}>`\n\twidth: 20px;\n\theight: 20px;\n\tflex-shrink: 0;\n\tborder-radius: 50%;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tfont-family: Inter;\n\tfont-size: 10px;\n\tfont-weight: 400;\n\tline-height: 12px;\n\tbackground: ${(p) =>\n\t\tp.state === 'complete'\n\t\t\t? COLORS.background.inverseLight\n\t\t\t: p.state === 'active'\n\t\t\t? COLORS.background.brandLight\n\t\t\t: COLORS.background.base};\n\tcolor: ${(p) =>\n\t\tp.state === 'complete'\n\t\t\t? COLORS.surface.standard\n\t\t\t: p.state === 'active'\n\t\t\t? COLORS.background.inverseLight\n\t\t\t: COLORS.content.secondary};\n`;\n\n// ── Shared step pieces ──────────────────────────────────────────────────────\n\nexport const SectionHeaderWrap = styled.div.attrs({\n\tclassName: 'bik-section-header-wrap',\n})`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px;\n\tpadding: 16px;\n\tborder-bottom: 1px solid ${COLORS.stroke.primary};\n`;\n\nexport const SectionBodyWrap = styled.div.attrs({\n\tclassName: 'bik-section-header-wrap',\n})`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 16px;\n\tpadding: 16px;\n`;\n\nexport const FieldBlock = styled.div.attrs({ className: 'bik-field-block' })`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 8px;\n`;\n\nexport const FieldLabelRow = styled.div.attrs({\n\tclassName: 'bik-field-label-row',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n`;\n\n// ── Labelled text area ──────────────────────────────────────────────────────\n\nexport const AiTextAreaShell = styled.div.attrs({\n\tclassName: 'bik-ai-text-area-shell',\n})<{\n\tfocused?: boolean;\n\tminHeight?: string;\n}>`\n\tdisplay: flex;\n\tflex-direction: column;\n\tborder: 1px solid\n\t\t${(p) => (p.focused ? COLORS.stroke.brand : COLORS.stroke.primary)};\n\tborder-radius: 4px;\n\tpadding: 8px 12px;\n\tgap: 8px;\n\tmin-height: ${(p) => p.minHeight ?? '120px'};\n\tbackground: ${COLORS.surface.standard};\n`;\n\nexport const AiTextAreaInput = styled.textarea.attrs({\n\tclassName: 'bik-ai-text-area-input',\n})`\n\tflex: 1;\n\tborder: none;\n\toutline: none;\n\tresize: none;\n\tfont-family: Inter;\n\tfont-size: 14px;\n\tline-height: 20px;\n\tcolor: ${COLORS.content.primary};\n\tbackground: transparent;\n\tmin-height: 60px;\n\n\t&::placeholder {\n\t\tcolor: ${COLORS.content.placeholder};\n\t}\n`;\n\n// ── Radio card (Step 2 / Step 4 option cards) ───────────────────────────────\n\nexport const CardRow = styled.div.attrs({ className: 'bik-card-row' })`\n\tdisplay: flex;\n\tgap: 12px;\n`;\n\nexport const RadioCard = styled.button.attrs({ className: 'bik-radio-card' })<{\n\tselected?: boolean;\n}>`\n\tflex: 1;\n\tdisplay: flex;\n\talign-items: flex-start;\n\tgap: 12px;\n\tpadding: 16px;\n\tborder: 1px solid\n\t\t${(p) => (p.selected ? BASE_COLORS.brand['800'] : COLORS.stroke.primary)};\n\tbackground: ${(p) =>\n\t\tp.selected ? COLORS.background.brandLight : COLORS.surface.standard};\n\tborder-radius: 8px;\n\tcursor: pointer;\n\ttext-align: left;\n\twidth: 100%;\n`;\n\nexport const RadioCardText = styled.div.attrs({\n\tclassName: 'bik-radio-card-text',\n})`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px;\n`;\n\n// ── Intent chips (Step 2) ───────────────────────────────────────────────────\n\nexport const ChipWrap = styled.div.attrs({ className: 'bik-chip-wrap' })`\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-items: center;\n\tgap: 8px;\n`;\n\nexport const AddChipButton = styled.button.attrs({\n\tclassName: 'bik-add-chip-button',\n})`\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 6px;\n\tpadding: 4px 8px;\n\tborder: 1px dashed ${COLORS.stroke.primary};\n\tborder-radius: 4px;\n\tbackground: transparent;\n\tcursor: pointer;\n`;\n\n// ── Step 3 two-column layout + tool / sub-agent rows ────────────────────────\n\n// Fills the scroll area so the step header + grow-body chain reaches the footer.\nexport const Step3Root = styled.div.attrs({\n\tclassName: 'bik-agent-step bik-agent-step--response',\n})`\n\tdisplay: flex;\n\tflex-direction: column;\n\tmin-height: 100%;\n`;\n\nexport const Step3Grid = styled.div.attrs({ className: 'bik-step3-grid' })<{\n\t$grow?: boolean;\n}>`\n\tdisplay: grid;\n\tgrid-template-columns: minmax(0, 1fr) 1px 360px;\n\t/* Single row that fills the grid's height, so the divider spans the full\n\t height (down to the footer) rather than stopping at the taller column. */\n\tgrid-template-rows: 1fr;\n\tflex: 1;\n\tmin-height: 0;\n\n\t@media (max-width: 1100px) {\n\t\tgrid-template-columns: 1fr;\n\t\tgrid-template-rows: auto;\n\t}\n\n\t/* Fill the remaining card height so a full-height child (e.g. the Step 3\n\t column divider) can stretch all the way down to the footer. */\n\t${(p) =>\n\t\tp.$grow &&\n\t\tcss`\n\t\t\tflex: 1;\n\t\t\tmin-height: 0;\n\t\t`}\n`;\n\n// Vertical rule between the main column and the side (tools / sub-agents) column;\n// hidden once the grid collapses to a single column.\nexport const Step3Divider = styled.div.attrs({\n\tclassName: 'bik-step3-divider',\n})`\n\twidth: 1px;\n\talign-self: stretch;\n\tbackground: ${COLORS.stroke.primary};\n\n\t@media (max-width: 1100px) {\n\t\tdisplay: none;\n\t}\n`;\n\nexport const SideSection = styled.div.attrs({ className: 'bik-side-section' })`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 8px;\n`;\n\nexport const SideSectionHeader = styled.div.attrs({\n\tclassName: 'bik-side-section-header',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n`;\n\nexport const AddIconButton = styled.button.attrs({\n\tclassName: 'bik-add-icon-button',\n})`\n\t${iconActionButton}\n\tbackground: ${COLORS.surface.standard};\n\tborder: 1px solid ${COLORS.stroke.primary};\n`;\n\n// Empty-state tool-source picker (e.g. Manifest / Shopify buttons).\nexport const SourceButtonRow = styled.div.attrs({\n\tclassName: 'bik-source-button-row',\n})`\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 8px;\n`;\n\nexport const SourceButton = styled.button.attrs({\n\tclassName: 'bik-source-button',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tpadding: 6px;\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 4px;\n\tbackground: ${COLORS.surface.standard};\n\tcursor: pointer;\n\theight: 28px;\n\n\t&:hover {\n\t\tbackground: ${COLORS.surface.subdued};\n\t}\n`;\n\nexport const SelectableRow = styled.div.attrs({\n\tclassName: 'bik-selectable-row',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tpadding: 8px 12px;\n\t/* Fixed 48px rows regardless of the (variably-sized) leading source icon.\n\t box-sizing pins the height across hosts with differing resets; flex-shrink:0\n\t + min-height stop a height-constrained flex column (the merchant side panel)\n\t from squashing the rows — Storybook has room, so it looked fine there. */\n\tmin-height: 48px;\n\tbox-sizing: border-box;\n\tflex-shrink: 0;\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 4px;\n\tmin-width: 0;\n\toverflow: hidden;\n\n\t/* Leading icon (e.g. tool source) keeps its size; the label takes the rest. */\n\t& > svg {\n\t\tflex-shrink: 0;\n\t}\n`;\n\nexport const RowText = styled.div.attrs({ className: 'bik-row-text' })`\n\tflex: 1;\n\tmin-width: 0;\n\toverflow: hidden;\n\n\t/* Truncate the label to one line with an ellipsis. */\n\t& > * {\n\t\tdisplay: block;\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n`;\n\n/* Label + trailing verification shield on one row. */\nexport const RowLabel = styled.div.attrs({ className: 'bik-row-label' })`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n\tmin-width: 0;\n\tflex: 1;\n\n\t/* Shrink the label to its text so the shield sits just after it, rather than\n\t RowText's default flex: 1 filling the row and pushing the shield to the end. */\n\t& .bik-row-text {\n\t\tflex: 0 1 auto;\n\t}\n`;\n\nexport const RowRemoveButton = styled.button.attrs({\n\tclassName: 'bik-row-remove-button',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tborder: none;\n\tbackground: transparent;\n\tpadding: 0;\n\tcursor: pointer;\n`;\n\n// ── Per-row actions (always-visible edit / delete icon buttons) ───────────────\n\nexport const RowActions = styled.div.attrs({ className: 'bik-row-actions' })`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 4px;\n\tflex-shrink: 0;\n`;\n\n// Vertical separator between the edit and delete icon buttons.\nexport const RowActionDivider = styled.span.attrs({\n\tclassName: 'bik-row-action-divider',\n})`\n\twidth: 1px;\n\talign-self: stretch;\n\tmargin: 4px 0;\n\tbackground: ${COLORS.stroke.primary};\n`;\n\nexport const RowMenuButton = styled.button.attrs({\n\tclassName: 'bik-row-menu-button',\n})`\n\t${iconActionButton}\n`;\n\nexport const DraftButtonScope = styled.div.attrs({\n\tclassName: 'bik-draft-button-scope',\n})`\n\tdisplay: flex;\n\tflex: 1;\n\n\tbutton {\n\t\tborder-color: ${BASE_COLORS.brand['800']};\n\t}\n\tbutton .text {\n\t\tcolor: ${BASE_COLORS.brand['800']};\n\t}\n`;\n\n// ── Go-live modal ───────────────────────────────────────────────────────────\n\nexport const ModalBody = styled.div.attrs({ className: 'bik-modal-body' })`\n\tpadding: 24px;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: 16px;\n\ttext-align: center;\n`;\n\nexport const ModalIcon = styled.div.attrs({ className: 'bik-modal-icon' })`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n`;\n\nexport const ModalActions = styled.div.attrs({\n\tclassName: 'bik-modal-actions',\n})`\n\tdisplay: flex;\n\tgap: 12px;\n\twidth: 100%;\n\t/* Every action shares the row equally. Each action MUST be its own flex\n\t wrapper (a plain <div style=\"display:flex\">, or DraftButtonScope) rather\n\t than a bare Button: on hover the Button relocates its padding into an\n\t inner container, and as the flex item itself that changes its resolved\n\t width — the button visibly grows/shrinks. Wrapped, the div is the sized\n\t track (flex:1) and the Button grows to fill it, absorbing the padding\n\t move so the width stays put. */\n\t> * {\n\t\tflex: 1;\n\t}\n`;\n\n/** Inline action row inside a rich field (e.g. \"Improve with AI\"). */\nexport const FieldActionRow = styled.div.attrs({\n\tclassName: 'bik-field-action-row',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n`;\n"],"names":["iconActionButton","css","COLORS","BuilderRoot","styled","TopBar","TopBarSide","BackButton","Main","Rail","Content","ContentCard","StepScroll","Footer","FooterHint","FooterActions","RailList","RailItem","StepBadge","p","SectionHeaderWrap","SectionBodyWrap","FieldBlock","FieldLabelRow","AiTextAreaShell","AiTextAreaInput","CardRow","RadioCard","BASE_COLORS","RadioCardText","ChipWrap","Step3Root","Step3Grid","Step3Divider","SideSection","SideSectionHeader","AddIconButton","SourceButtonRow","SourceButton","SelectableRow","RowText","RowLabel","RowActions","RowActionDivider","RowMenuButton","DraftButtonScope","ModalBody","ModalIcon","ModalActions"],"mappings":"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"}
1
+ {"version":3,"file":"AgentBuilder.styled.js","sources":["../../../../src/components/agent-builder/AgentBuilder.styled.tsx"],"sourcesContent":["import styled, { css } from 'styled-components';\nimport { BASE_COLORS, COLORS } from '@src/constants/Theme';\n\n// Shared look for the 24×24 transparent icon buttons (add / row-menu / close).\nconst iconActionButton = css`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 24px;\n\theight: 24px;\n\tborder: none;\n\tbackground: transparent;\n\tpadding: 0;\n\tcursor: pointer;\n\tborder-radius: 4px;\n\n\t&:hover {\n\t\tbackground: ${COLORS.surface.subdued};\n\t}\n\n\t&:disabled {\n\t\tcursor: not-allowed;\n\t\topacity: 0.5;\n\t\tbackground: transparent;\n\t}\n`;\n\nexport const BuilderRoot = styled.div.attrs({ className: 'bik-builder-root' })`\n\tdisplay: flex;\n\tflex-direction: column;\n\theight: 100%;\n\twidth: 100%;\n\tmin-height: 0;\n\tbackground: ${COLORS.surface.standard};\n`;\n\nexport const TopBar = styled.div.attrs({ className: 'bik-top-bar' })`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\theight: 56px;\n\tpadding: 12px 16px;\n\tborder-bottom: 1px solid ${COLORS.stroke.primary};\n\tflex-shrink: 0;\n`;\n\nexport const TopBarSide = styled.div.attrs({ className: 'bik-top-bar-side' })`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n`;\n\nexport const BackButton = styled.button.attrs({ className: 'bik-back-button' })`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 28px;\n\theight: 28px;\n\tborder: none;\n\tbackground: transparent;\n\tpadding: 0;\n\tcursor: pointer;\n\tborder-radius: 4px;\n\n\t&:hover {\n\t\tbackground: ${COLORS.surface.subdued};\n\t}\n`;\n\nexport const Main = styled.div.attrs({ className: 'bik-main' })`\n\tdisplay: flex;\n\tflex: 1;\n\tmin-height: 0;\n`;\n\nexport const Rail = styled.div.attrs({ className: 'bik-rail' })`\n\twidth: 234px;\n\tflex-shrink: 0;\n\tborder-right: 1px solid ${COLORS.stroke.primary};\n\tpadding: 16px;\n\toverflow-y: auto;\n\tbackground: ${COLORS.surface.standard};\n`;\n\nexport const Content = styled.div.attrs({ className: 'bik-content' })`\n\tflex: 1;\n\tmin-width: 0;\n\tmin-height: 0;\n\toverflow: hidden;\n\tdisplay: flex;\n\tflex-direction: column;\n\tpadding: 16px;\n\tbackground: ${COLORS.surface.standard};\n`;\n\nexport const ContentCard = styled.div.attrs({ className: 'bik-content-card' })`\n\tflex: 1;\n\tmin-height: 0;\n\tdisplay: flex;\n\tflex-direction: column;\n\toverflow: hidden;\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 8px;\n\tbox-sizing: border-box;\n`;\n\n// Scrollable step body inside the card; the footer stays pinned below it.\nexport const StepScroll = styled.div.attrs({ className: 'bik-step-scroll' })`\n\tflex: 1;\n\tmin-height: 0;\n\toverflow-y: auto;\n`;\n\nexport const Footer = styled.div.attrs({ className: 'bik-footer' })`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tmin-height: 56px;\n\tpadding: 12px 16px;\n\tborder-top: 1px solid ${COLORS.stroke.primary};\n\tflex-shrink: 0;\n\tbox-shadow: 0px -2px 12px 0px #0000000a;\n`;\n\nexport const FooterHint = styled.div.attrs({ className: 'bik-footer-hint' })`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n`;\n\nexport const FooterActions = styled.div.attrs({\n\tclassName: 'bik-footer-actions',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n`;\n\n// ── Step rail items ─────────────────────────────────────────────────────────\n\nexport const RailList = styled.div.attrs({ className: 'bik-rail-list' })`\n\tdisplay: flex;\n\tflex-direction: column;\n`;\n\nexport const RailItem = styled.button.attrs({ className: 'bik-rail-item' })`\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: flex-start;\n\tgap: 8px;\n\t/* Bottom padding leaves room for the connector down to the next badge. */\n\tpadding: 0 0 24px;\n\tborder: none;\n\tbackground: transparent;\n\tcursor: pointer;\n\ttext-align: left;\n\twidth: 100%;\n\n\t&:last-child {\n\t\tpadding-bottom: 0;\n\t}\n\n\t&:disabled {\n\t\tcursor: default;\n\t}\n\n\t/* Dashed connector line between consecutive step badges (centered on the badge). */\n\t&:not(:last-child)::after {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tleft: 9px;\n\t\ttop: 20px;\n\t\twidth: 0;\n\t\theight: 24px;\n\t\tborder-left: 1px dashed #e0e0e0;\n\t\tpointer-events: none;\n\t}\n`;\n\nexport const StepBadge = styled.div.attrs({ className: 'bik-step-badge' })<{\n\tstate: 'active' | 'complete' | 'inactive';\n}>`\n\twidth: 20px;\n\theight: 20px;\n\tflex-shrink: 0;\n\tborder-radius: 50%;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tfont-family: Inter;\n\tfont-size: 10px;\n\tfont-weight: 400;\n\tline-height: 12px;\n\tbackground: ${(p) =>\n\t\tp.state === 'complete'\n\t\t\t? COLORS.background.inverseLight\n\t\t\t: p.state === 'active'\n\t\t\t? COLORS.background.brandLight\n\t\t\t: COLORS.background.base};\n\tcolor: ${(p) =>\n\t\tp.state === 'complete'\n\t\t\t? COLORS.surface.standard\n\t\t\t: p.state === 'active'\n\t\t\t? COLORS.background.inverseLight\n\t\t\t: COLORS.content.secondary};\n`;\n\n// ── Shared step pieces ──────────────────────────────────────────────────────\n\nexport const SectionHeaderWrap = styled.div.attrs({\n\tclassName: 'bik-section-header-wrap',\n})`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px;\n\tpadding: 16px;\n\tborder-bottom: 1px solid ${COLORS.stroke.primary};\n`;\n\nexport const SectionBodyWrap = styled.div.attrs({\n\tclassName: 'bik-section-header-wrap',\n})`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 16px;\n\tpadding: 16px;\n`;\n\nexport const FieldBlock = styled.div.attrs({ className: 'bik-field-block' })`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 8px;\n`;\n\nexport const FieldLabelRow = styled.div.attrs({\n\tclassName: 'bik-field-label-row',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n`;\n\n// ── Labelled text area ──────────────────────────────────────────────────────\n\nexport const AiTextAreaShell = styled.div.attrs({\n\tclassName: 'bik-ai-text-area-shell',\n})<{\n\tfocused?: boolean;\n\tminHeight?: string;\n}>`\n\tdisplay: flex;\n\tflex-direction: column;\n\tborder: 1px solid\n\t\t${(p) => (p.focused ? COLORS.stroke.brand : COLORS.stroke.primary)};\n\tborder-radius: 4px;\n\tpadding: 8px 12px;\n\tgap: 8px;\n\tmin-height: ${(p) => p.minHeight ?? '120px'};\n\tbackground: ${COLORS.surface.standard};\n`;\n\nexport const AiTextAreaInput = styled.textarea.attrs({\n\tclassName: 'bik-ai-text-area-input',\n})`\n\tflex: 1;\n\tborder: none;\n\toutline: none;\n\tresize: none;\n\tfont-family: Inter;\n\tfont-size: 14px;\n\tline-height: 20px;\n\tcolor: ${COLORS.content.primary};\n\tbackground: transparent;\n\tmin-height: 60px;\n\n\t&::placeholder {\n\t\tcolor: ${COLORS.content.placeholder};\n\t}\n`;\n\n// ── Radio card (Step 2 / Step 4 option cards) ───────────────────────────────\n\nexport const CardRow = styled.div.attrs({ className: 'bik-card-row' })`\n\tdisplay: flex;\n\tgap: 12px;\n`;\n\nexport const RadioCard = styled.button.attrs({ className: 'bik-radio-card' })<{\n\tselected?: boolean;\n}>`\n\tflex: 1;\n\tdisplay: flex;\n\talign-items: flex-start;\n\tgap: 12px;\n\tpadding: 16px;\n\tborder: 1px solid\n\t\t${(p) => (p.selected ? BASE_COLORS.brand['800'] : COLORS.stroke.primary)};\n\tbackground: ${(p) =>\n\t\tp.selected ? COLORS.background.brandLight : COLORS.surface.standard};\n\tborder-radius: 8px;\n\tcursor: pointer;\n\ttext-align: left;\n\twidth: 100%;\n`;\n\nexport const RadioCardText = styled.div.attrs({\n\tclassName: 'bik-radio-card-text',\n})`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px;\n`;\n\n// ── Intent chips (Step 2) ───────────────────────────────────────────────────\n\nexport const ChipWrap = styled.div.attrs({ className: 'bik-chip-wrap' })`\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-items: center;\n\tgap: 8px;\n`;\n\nexport const AddChipButton = styled.button.attrs({\n\tclassName: 'bik-add-chip-button',\n})`\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 6px;\n\tpadding: 4px 8px;\n\tborder: 1px dashed ${COLORS.stroke.primary};\n\tborder-radius: 4px;\n\tbackground: transparent;\n\tcursor: pointer;\n`;\n\n// ── Step 3 two-column layout + tool / sub-agent rows ────────────────────────\n\n// Fills the scroll area so the step header + grow-body chain reaches the footer.\nexport const Step3Root = styled.div.attrs({\n\tclassName: 'bik-agent-step bik-agent-step--response',\n})`\n\tdisplay: flex;\n\tflex-direction: column;\n\tmin-height: 100%;\n`;\n\nexport const Step3Grid = styled.div.attrs({ className: 'bik-step3-grid' })<{\n\t$grow?: boolean;\n}>`\n\tdisplay: grid;\n\tgrid-template-columns: minmax(0, 1fr) 1px 360px;\n\t/* Single row that fills the grid's height, so the divider spans the full\n\t height (down to the footer) rather than stopping at the taller column. */\n\tgrid-template-rows: 1fr;\n\tflex: 1;\n\tmin-height: 0;\n\n\t@media (max-width: 1100px) {\n\t\tgrid-template-columns: 1fr;\n\t\tgrid-template-rows: auto;\n\t}\n\n\t/* Fill the remaining card height so a full-height child (e.g. the Step 3\n\t column divider) can stretch all the way down to the footer. */\n\t${(p) =>\n\t\tp.$grow &&\n\t\tcss`\n\t\t\tflex: 1;\n\t\t\tmin-height: 0;\n\t\t`}\n`;\n\n// Vertical rule between the main column and the side (tools / sub-agents) column;\n// hidden once the grid collapses to a single column.\nexport const Step3Divider = styled.div.attrs({\n\tclassName: 'bik-step3-divider',\n})`\n\twidth: 1px;\n\talign-self: stretch;\n\tbackground: ${COLORS.stroke.primary};\n\n\t@media (max-width: 1100px) {\n\t\tdisplay: none;\n\t}\n`;\n\nexport const SideSection = styled.div.attrs({ className: 'bik-side-section' })`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 8px;\n`;\n\nexport const SideSectionHeader = styled.div.attrs({\n\tclassName: 'bik-side-section-header',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n`;\n\nexport const AddIconButton = styled.button.attrs({\n\tclassName: 'bik-add-icon-button',\n})`\n\t${iconActionButton}\n\tbackground: ${COLORS.surface.standard};\n\tborder: 1px solid ${COLORS.stroke.primary};\n`;\n\n// Empty-state tool-source picker (e.g. Manifest / Shopify buttons).\nexport const SourceButtonRow = styled.div.attrs({\n\tclassName: 'bik-source-button-row',\n})`\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 8px;\n`;\n\nexport const SourceButton = styled.button.attrs({\n\tclassName: 'bik-source-button',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tpadding: 6px;\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 4px;\n\tbackground: ${COLORS.surface.standard};\n\tcursor: pointer;\n\theight: 28px;\n\n\t&:hover {\n\t\tbackground: ${COLORS.surface.subdued};\n\t}\n`;\n\nexport const SelectableRow = styled.div.attrs({\n\tclassName: 'bik-selectable-row',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tpadding: 8px 12px;\n\t/* Fixed 48px rows regardless of the (variably-sized) leading source icon.\n\t box-sizing pins the height across hosts with differing resets; flex-shrink:0\n\t + min-height stop a height-constrained flex column (the merchant side panel)\n\t from squashing the rows — Storybook has room, so it looked fine there. */\n\tmin-height: 48px;\n\tbox-sizing: border-box;\n\tflex-shrink: 0;\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 4px;\n\tmin-width: 0;\n\toverflow: hidden;\n\n\t/* Leading icon (e.g. tool source) keeps its size; the label takes the rest. */\n\t& > svg {\n\t\tflex-shrink: 0;\n\t}\n`;\n\nexport const RowText = styled.div.attrs({ className: 'bik-row-text' })`\n\tflex: 1;\n\tmin-width: 0;\n\toverflow: hidden;\n\n\t/* Truncate the label to one line with an ellipsis. */\n\t& > * {\n\t\tdisplay: block;\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n`;\n\n/* Label + trailing verification shield on one row. */\nexport const RowLabel = styled.div.attrs({ className: 'bik-row-label' })`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n\tmin-width: 0;\n\tflex: 1;\n\n\t/* Shrink the label to its text so the shield sits just after it, rather than\n\t RowText's default flex: 1 filling the row and pushing the shield to the end. */\n\t& .bik-row-text {\n\t\tflex: 0 1 auto;\n\t}\n`;\n\nexport const RowRemoveButton = styled.button.attrs({\n\tclassName: 'bik-row-remove-button',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tborder: none;\n\tbackground: transparent;\n\tpadding: 0;\n\tcursor: pointer;\n`;\n\n// ── Per-row actions (always-visible edit / delete icon buttons) ───────────────\n\nexport const RowActions = styled.div.attrs({ className: 'bik-row-actions' })`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 4px;\n\tflex-shrink: 0;\n`;\n\n// Vertical separator between the edit and delete icon buttons.\nexport const RowActionDivider = styled.span.attrs({\n\tclassName: 'bik-row-action-divider',\n})`\n\twidth: 1px;\n\talign-self: stretch;\n\tmargin: 4px 0;\n\tbackground: ${COLORS.stroke.primary};\n`;\n\nexport const RowMenuButton = styled.button.attrs({\n\tclassName: 'bik-row-menu-button',\n})`\n\t${iconActionButton}\n`;\n\nexport const DraftButtonScope = styled.div.attrs({\n\tclassName: 'bik-draft-button-scope',\n})`\n\tdisplay: flex;\n\tflex: 1;\n\n\tbutton {\n\t\tborder-color: ${BASE_COLORS.brand['800']};\n\t}\n\tbutton .text {\n\t\tcolor: ${BASE_COLORS.brand['800']};\n\t}\n`;\n\n// ── Go-live modal ───────────────────────────────────────────────────────────\n\nexport const ModalBody = styled.div.attrs({ className: 'bik-modal-body' })`\n\tpadding: 24px;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: 16px;\n\ttext-align: center;\n`;\n\nexport const ModalIcon = styled.div.attrs({ className: 'bik-modal-icon' })`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n`;\n\n/**\n * The go-live SUCCESS dialog's natural height, which every state of\n * `AgentStateModal` is pinned to so the card doesn't resize as a publish moves\n * loading → error, or loading → success (a different dialog at the same size).\n *\n * 24 + 24 padding + 64 icon + 8 gap + 28 title (TitleMedium 20/28) + 8 gap\n * + 48 body (BodyPrimary 16/24, two lines at this width) + 24 gap\n * + 40 action row (medium Button: 10px padding + 20px line-height) = 268.\n *\n * Deliberately NOT on `ModalBody`: DiscardModal and RequireVerificationModal share\n * it and are not part of this sequence.\n */\nexport const AGENT_STATE_MODAL_MIN_HEIGHT = 268;\n\n/** `ModalBody` pinned to the height above. The body itself is NOT centred — that\n * floats the action row in the middle of the card. The hero takes the slack instead\n * (see `AgentStateModalHero`), so the actions stay at the bottom, above the body's\n * own 24px padding. */\nexport const AgentStateModalBody = styled(ModalBody)`\n\tmin-height: ${AGENT_STATE_MODAL_MIN_HEIGHT}px;\n`;\n\n/** Badge + title + message. Grows into whatever height the pinned card has spare and\n * centres itself there, which is what keeps the actions pinned to the bottom. */\nexport const AgentStateModalHero = styled.div`\n\tflex: 1;\n\twidth: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: center;\n\talign-items: center;\n\tgap: 8px;\n`;\n\nexport const ModalActions = styled.div.attrs({\n\tclassName: 'bik-modal-actions',\n})`\n\tdisplay: flex;\n\tgap: 12px;\n\twidth: 100%;\n\t/* Every action shares the row equally. Each action MUST be its own flex\n\t wrapper (a plain <div style=\"display:flex\">, or DraftButtonScope) rather\n\t than a bare Button: on hover the Button relocates its padding into an\n\t inner container, and as the flex item itself that changes its resolved\n\t width — the button visibly grows/shrinks. Wrapped, the div is the sized\n\t track (flex:1) and the Button grows to fill it, absorbing the padding\n\t move so the width stays put. */\n\t> * {\n\t\tflex: 1;\n\t}\n`;\n\n/** Inline action row inside a rich field (e.g. \"Improve with AI\"). */\nexport const FieldActionRow = styled.div.attrs({\n\tclassName: 'bik-field-action-row',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n`;\n"],"names":["iconActionButton","css","COLORS","BuilderRoot","styled","TopBar","TopBarSide","BackButton","Main","Rail","Content","ContentCard","StepScroll","Footer","FooterHint","FooterActions","RailList","RailItem","StepBadge","p","SectionHeaderWrap","SectionBodyWrap","FieldBlock","FieldLabelRow","AiTextAreaShell","AiTextAreaInput","CardRow","RadioCard","BASE_COLORS","RadioCardText","ChipWrap","Step3Root","Step3Grid","Step3Divider","SideSection","SideSectionHeader","AddIconButton","SourceButtonRow","SourceButton","SelectableRow","RowText","RowLabel","RowActions","RowActionDivider","RowMenuButton","DraftButtonScope","ModalBody","ModalIcon","AGENT_STATE_MODAL_MIN_HEIGHT","AgentStateModalBody","AgentStateModalHero","ModalActions"],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import { default as React } from 'react';
2
+ export type AgentModalState = 'loading' | 'error';
3
+ interface AgentStateAction {
4
+ text: string;
5
+ onClick: () => void;
6
+ isLoading?: boolean;
7
+ }
8
+ interface AgentStateModalProps {
9
+ open: boolean;
10
+ /** `loading` while the write is in flight, `error` once it came back badly. */
11
+ state: AgentModalState;
12
+ /** Heading, e.g. "Agent couldn't go live". Comes from the caller — on `error` the
13
+ * server owns this copy, so the builder never composes it. */
14
+ title: string;
15
+ /** Body copy. Line breaks are preserved, so a caller can pass one line per reason
16
+ * (e.g. per conflicting intent) without markup. */
17
+ message: string;
18
+ /** Right-hand action, e.g. "Try again", or the step to fix when the caller knows
19
+ * one ("Go to When it steps in"). */
20
+ primaryButton?: AgentStateAction;
21
+ /** Left-hand action, e.g. "Go back to editing". */
22
+ secondaryButton?: AgentStateAction;
23
+ /** 64px image for the `loading` badge — pass the host's loader asset to match its
24
+ * other dialogs. Falls back to `Spinner`, so the library needs no remote asset. */
25
+ loadingImageUrl?: string;
26
+ /** Cross button / outside click. Always available, so a message-only dialog is
27
+ * still dismissible with no actions at all. Not offered while `loading`. */
28
+ onClose: () => void;
29
+ zIndex?: number;
30
+ }
31
+ /**
32
+ * What's happening to a save or publish: in flight, or failed. Sibling of
33
+ * `GoLiveModal` — same hero layout (badge, title, body, actions), and the actions sit
34
+ * inside the body for the same reason (see GoLiveModal). Every state is pinned to
35
+ * `AGENT_STATE_MODAL_MIN_HEIGHT`, the go-live success height, so the card doesn't
36
+ * resize as one state replaces another.
37
+ *
38
+ * Deliberately copy-free: title, message and button labels all come from the caller,
39
+ * because the server owns the wording of the failure it just reported.
40
+ *
41
+ * Both buttons are optional, so one component covers every shape — two actions, one,
42
+ * or message-only. That last one is for a failure with nothing to offer: no step to
43
+ * send the merchant to and nothing a retry would change. `loading` never renders
44
+ * actions or a cross, since there is nothing to decide yet.
45
+ */
46
+ export declare const AgentStateModal: React.FC<AgentStateModalProps>;
47
+ export {};
@@ -0,0 +1,82 @@
1
+ import { jsx as t, jsxs as r } from "react/jsx-runtime";
2
+ import x from "../../../assets/icons/errorIcon.svg.js";
3
+ import { Spinner as f } from "../../spinner/Spinner.js";
4
+ import { TitleMedium as y, BodyPrimary as u } from "../../TypographyStyle.js";
5
+ import { COLORS as l } from "../../../constants/Theme.js";
6
+ import { AgentStateModalBody as S, AgentStateModalHero as C, ModalIcon as M, ModalActions as k } from "../AgentBuilder.styled.js";
7
+ import { StyledModal as L } from "../../modals/styledModal.js";
8
+ import { Button as d } from "../../button/Button.js";
9
+ const j = ({
10
+ open: a,
11
+ state: s,
12
+ title: c,
13
+ message: m,
14
+ primaryButton: e,
15
+ secondaryButton: i,
16
+ loadingImageUrl: n,
17
+ onClose: h,
18
+ zIndex: p
19
+ }) => {
20
+ if (!a)
21
+ return null;
22
+ const o = s === "loading", g = o ? null : i ?? e;
23
+ return /* @__PURE__ */ t(
24
+ L,
25
+ {
26
+ "data-test": "agent-state-modal",
27
+ open: !0,
28
+ onClose: h,
29
+ width: "520px",
30
+ zIndex: p,
31
+ hideCrossButton: o,
32
+ closeOnOutsideClick: !o,
33
+ closeOnEscapeKey: !o,
34
+ children: /* @__PURE__ */ r(S, { style: { gap: "24px" }, children: [
35
+ /* @__PURE__ */ r(C, { children: [
36
+ /* @__PURE__ */ t(M, { children: o ? n ? /* @__PURE__ */ t("img", { src: n, alt: "", width: 64, height: 64 }) : /* @__PURE__ */ t(f, { size: "large", color: l.stroke.brand }) : /* @__PURE__ */ t(x, { width: 64, height: 64 }) }),
37
+ /* @__PURE__ */ r("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: [
38
+ /* @__PURE__ */ t(y, { color: l.content.primary, children: c }),
39
+ /* @__PURE__ */ t(
40
+ u,
41
+ {
42
+ color: l.content.secondary,
43
+ style: { whiteSpace: "pre-line" },
44
+ children: m
45
+ }
46
+ )
47
+ ] })
48
+ ] }),
49
+ g && /* @__PURE__ */ r(k, { children: [
50
+ i && /* @__PURE__ */ t("div", { style: { display: "flex" }, children: /* @__PURE__ */ t(
51
+ d,
52
+ {
53
+ "data-test": "agent-state-secondary",
54
+ buttonType: "secondary",
55
+ size: "medium",
56
+ matchParentWidth: !0,
57
+ buttonText: i.text,
58
+ isLoading: i.isLoading,
59
+ onClick: i.onClick
60
+ }
61
+ ) }),
62
+ e && /* @__PURE__ */ t("div", { style: { display: "flex" }, children: /* @__PURE__ */ t(
63
+ d,
64
+ {
65
+ "data-test": "agent-state-primary",
66
+ buttonType: "primary",
67
+ size: "medium",
68
+ matchParentWidth: !0,
69
+ buttonText: e.text,
70
+ isLoading: e.isLoading,
71
+ onClick: e.onClick
72
+ }
73
+ ) })
74
+ ] })
75
+ ] })
76
+ }
77
+ );
78
+ };
79
+ export {
80
+ j as AgentStateModal
81
+ };
82
+ //# sourceMappingURL=AgentStateModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentStateModal.js","sources":["../../../../../src/components/agent-builder/components/AgentStateModal.tsx"],"sourcesContent":["import ErrorIcon from '@src/assets/icons/errorIcon.svg';\nimport React from 'react';\nimport { Button } from '@src/components/button';\nimport { StyledModal } from '@src/components/modals';\nimport { Spinner } from '@src/components/spinner/Spinner';\nimport { BodyPrimary, TitleMedium } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport {\n\tAgentStateModalBody,\n\tAgentStateModalHero,\n\tModalActions,\n\tModalIcon,\n} from '../AgentBuilder.styled';\n\nexport type AgentModalState = 'loading' | 'error';\n\ninterface AgentStateAction {\n\ttext: string;\n\tonClick: () => void;\n\tisLoading?: boolean;\n}\n\ninterface AgentStateModalProps {\n\topen: boolean;\n\t/** `loading` while the write is in flight, `error` once it came back badly. */\n\tstate: AgentModalState;\n\t/** Heading, e.g. \"Agent couldn't go live\". Comes from the caller — on `error` the\n\t * server owns this copy, so the builder never composes it. */\n\ttitle: string;\n\t/** Body copy. Line breaks are preserved, so a caller can pass one line per reason\n\t * (e.g. per conflicting intent) without markup. */\n\tmessage: string;\n\t/** Right-hand action, e.g. \"Try again\", or the step to fix when the caller knows\n\t * one (\"Go to When it steps in\"). */\n\tprimaryButton?: AgentStateAction;\n\t/** Left-hand action, e.g. \"Go back to editing\". */\n\tsecondaryButton?: AgentStateAction;\n\t/** 64px image for the `loading` badge — pass the host's loader asset to match its\n\t * other dialogs. Falls back to `Spinner`, so the library needs no remote asset. */\n\tloadingImageUrl?: string;\n\t/** Cross button / outside click. Always available, so a message-only dialog is\n\t * still dismissible with no actions at all. Not offered while `loading`. */\n\tonClose: () => void;\n\tzIndex?: number;\n}\n\n/**\n * What's happening to a save or publish: in flight, or failed. Sibling of\n * `GoLiveModal` — same hero layout (badge, title, body, actions), and the actions sit\n * inside the body for the same reason (see GoLiveModal). Every state is pinned to\n * `AGENT_STATE_MODAL_MIN_HEIGHT`, the go-live success height, so the card doesn't\n * resize as one state replaces another.\n *\n * Deliberately copy-free: title, message and button labels all come from the caller,\n * because the server owns the wording of the failure it just reported.\n *\n * Both buttons are optional, so one component covers every shape — two actions, one,\n * or message-only. That last one is for a failure with nothing to offer: no step to\n * send the merchant to and nothing a retry would change. `loading` never renders\n * actions or a cross, since there is nothing to decide yet.\n */\nexport const AgentStateModal: React.FC<AgentStateModalProps> = ({\n\topen,\n\tstate,\n\ttitle,\n\tmessage,\n\tprimaryButton,\n\tsecondaryButton,\n\tloadingImageUrl,\n\tonClose,\n\tzIndex,\n}) => {\n\tif (!open) {\n\t\treturn null;\n\t}\n\n\tconst isLoading = state === 'loading';\n\tconst actions = isLoading ? null : secondaryButton ?? primaryButton;\n\n\treturn (\n\t\t<StyledModal\n\t\t\tdata-test=\"agent-state-modal\"\n\t\t\topen\n\t\t\tonClose={onClose}\n\t\t\twidth=\"520px\"\n\t\t\tzIndex={zIndex}\n\t\t\thideCrossButton={isLoading}\n\t\t\tcloseOnOutsideClick={!isLoading}\n\t\t\tcloseOnEscapeKey={!isLoading}\n\t\t>\n\t\t\t<AgentStateModalBody style={{ gap: '24px' }}>\n\t\t\t\t<AgentStateModalHero>\n\t\t\t\t\t<ModalIcon>\n\t\t\t\t\t\t{isLoading ? (\n\t\t\t\t\t\t\tloadingImageUrl ? (\n\t\t\t\t\t\t\t\t<img src={loadingImageUrl} alt=\"\" width={64} height={64} />\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<Spinner size=\"large\" color={COLORS.stroke.brand} />\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<ErrorIcon width={64} height={64} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</ModalIcon>\n\n\t\t\t\t\t<div style={{ display: 'flex', flexDirection: 'column', gap: '8px' }}>\n\t\t\t\t\t\t<TitleMedium color={COLORS.content.primary}>{title}</TitleMedium>\n\t\t\t\t\t\t<BodyPrimary\n\t\t\t\t\t\t\tcolor={COLORS.content.secondary}\n\t\t\t\t\t\t\tstyle={{ whiteSpace: 'pre-line' }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{message}\n\t\t\t\t\t\t</BodyPrimary>\n\t\t\t\t\t</div>\n\t\t\t\t</AgentStateModalHero>\n\n\t\t\t\t{actions && (\n\t\t\t\t\t<ModalActions>\n\t\t\t\t\t\t{secondaryButton && (\n\t\t\t\t\t\t\t<div style={{ display: 'flex' }}>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tdata-test=\"agent-state-secondary\"\n\t\t\t\t\t\t\t\t\tbuttonType=\"secondary\"\n\t\t\t\t\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\t\t\t\t\tmatchParentWidth\n\t\t\t\t\t\t\t\t\tbuttonText={secondaryButton.text}\n\t\t\t\t\t\t\t\t\tisLoading={secondaryButton.isLoading}\n\t\t\t\t\t\t\t\t\tonClick={secondaryButton.onClick}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{primaryButton && (\n\t\t\t\t\t\t\t<div style={{ display: 'flex' }}>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tdata-test=\"agent-state-primary\"\n\t\t\t\t\t\t\t\t\tbuttonType=\"primary\"\n\t\t\t\t\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\t\t\t\t\tmatchParentWidth\n\t\t\t\t\t\t\t\t\tbuttonText={primaryButton.text}\n\t\t\t\t\t\t\t\t\tisLoading={primaryButton.isLoading}\n\t\t\t\t\t\t\t\t\tonClick={primaryButton.onClick}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</ModalActions>\n\t\t\t\t)}\n\t\t\t</AgentStateModalBody>\n\t\t</StyledModal>\n\t);\n};\n"],"names":["AgentStateModal","open","state","title","message","primaryButton","secondaryButton","loadingImageUrl","onClose","zIndex","isLoading","actions","jsx","StyledModal","AgentStateModalBody","jsxs","AgentStateModalHero","ModalIcon","Spinner","COLORS","ErrorIcon","TitleMedium","BodyPrimary","ModalActions","Button"],"mappings":";;;;;;;;AA6DO,MAAMA,IAAkD,CAAC;AAAA,EAC/D,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,eAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,SAAAC;AAAA,EACA,QAAAC;AACD,MAAM;AACL,MAAI,CAACR;AACJ,WAAO;AAGR,QAAMS,IAAYR,MAAU,WACtBS,IAAUD,IAAY,OAAOJ,KAAmBD;AAEtD,SACC,gBAAAO;AAAA,IAACC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,MAAI;AAAA,MACJ,SAAAL;AAAA,MACA,OAAM;AAAA,MACN,QAAAC;AAAA,MACA,iBAAiBC;AAAA,MACjB,qBAAqB,CAACA;AAAA,MACtB,kBAAkB,CAACA;AAAA,MAEnB,4BAACI,GAAA,EAAoB,OAAO,EAAE,KAAK,UAClC,UAAA;AAAA,QAAA,gBAAAC,EAACC,GAAA,EACA,UAAA;AAAA,UAAA,gBAAAJ,EAACK,GAAA,EACC,UAAAP,IACAH,IACC,gBAAAK,EAAC,OAAA,EAAI,KAAKL,GAAiB,KAAI,IAAG,OAAO,IAAI,QAAQ,IAAI,IAEzD,gBAAAK,EAACM,GAAA,EAAQ,MAAK,SAAQ,OAAOC,EAAO,OAAO,MAAA,CAAO,IAGnD,gBAAAP,EAACQ,GAAA,EAAU,OAAO,IAAI,QAAQ,IAAI,GAEpC;AAAA,UAEA,gBAAAL,EAAC,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,eAAe,UAAU,KAAK,MAAA,GAC5D,UAAA;AAAA,YAAA,gBAAAH,EAACS,GAAA,EAAY,OAAOF,EAAO,QAAQ,SAAU,UAAAhB,GAAM;AAAA,YACnD,gBAAAS;AAAA,cAACU;AAAA,cAAA;AAAA,gBACA,OAAOH,EAAO,QAAQ;AAAA,gBACtB,OAAO,EAAE,YAAY,WAAA;AAAA,gBAEpB,UAAAf;AAAA,cAAA;AAAA,YAAA;AAAA,UACF,EAAA,CACD;AAAA,QAAA,GACD;AAAA,QAECO,uBACCY,GAAA,EACC,UAAA;AAAA,UAAAjB,uBACC,OAAA,EAAI,OAAO,EAAE,SAAS,UACtB,UAAA,gBAAAM;AAAA,YAACY;AAAA,YAAA;AAAA,cACA,aAAU;AAAA,cACV,YAAW;AAAA,cACX,MAAK;AAAA,cACL,kBAAgB;AAAA,cAChB,YAAYlB,EAAgB;AAAA,cAC5B,WAAWA,EAAgB;AAAA,cAC3B,SAASA,EAAgB;AAAA,YAAA;AAAA,UAAA,GAE3B;AAAA,UAEAD,KACA,gBAAAO,EAAC,OAAA,EAAI,OAAO,EAAE,SAAS,UACtB,UAAA,gBAAAA;AAAA,YAACY;AAAA,YAAA;AAAA,cACA,aAAU;AAAA,cACV,YAAW;AAAA,cACX,MAAK;AAAA,cACL,kBAAgB;AAAA,cAChB,YAAYnB,EAAc;AAAA,cAC1B,WAAWA,EAAc;AAAA,cACzB,SAASA,EAAc;AAAA,YAAA;AAAA,UAAA,EACxB,CACD;AAAA,QAAA,EAAA,CAEF;AAAA,MAAA,EAAA,CAEF;AAAA,IAAA;AAAA,EAAA;AAGH;"}
@@ -30,10 +30,10 @@ const ne = {
30
30
  variablesData: D,
31
31
  onSelectVariable: G
32
32
  }) => {
33
- const [oe, T] = M(null), [i, S] = M(H ?? null), [$, m] = M(-1), [E, Q] = M(""), k = I(
33
+ const [oe, $] = M(null), [i, S] = M(H ?? null), [B, m] = M(-1), [E, Q] = M(""), k = I(
34
34
  () => s.filter((e) => b(e)?.kind === "tool"),
35
35
  [s]
36
- ), B = I(
36
+ ), O = I(
37
37
  () => s.filter((e) => b(e)?.kind === "subagent"),
38
38
  [s]
39
39
  ), F = I(() => {
@@ -47,25 +47,25 @@ const ne = {
47
47
  (y ?? []).map((e) => [e.source, e])
48
48
  ),
49
49
  [y]
50
- ), O = I(
51
- () => be.filter((e) => e.key === "tool" ? k.length > 0 || (y?.length ?? 0) > 0 : e.key === "variable" ? (D?.length ?? 0) > 0 && !!G : B.length > 0 || !!R),
50
+ ), T = I(
51
+ () => be.filter((e) => e.key === "tool" ? k.length > 0 || (y?.length ?? 0) > 0 : e.key === "variable" ? (D?.length ?? 0) > 0 && !!G : O.length > 0 || !!R),
52
52
  [
53
53
  k.length,
54
- B.length,
54
+ O.length,
55
55
  R,
56
56
  y?.length,
57
57
  D?.length,
58
58
  G
59
59
  ]
60
- ), _ = O.length === 1 ? O[0].key : null, a = oe ?? _, h = a ? a === "subagent" ? (
60
+ ), _ = T.length === 1 ? T[0].key : null, a = oe ?? _, h = a ? a === "subagent" ? (
61
61
  // Always titled — with a back arrow only when the category chooser is above.
62
62
  {
63
63
  title: "Sub-agent",
64
- onBack: _ ? void 0 : () => T(null)
64
+ onBack: _ ? void 0 : () => $(null)
65
65
  }
66
66
  ) : a === "variable" ? {
67
67
  title: "Variables",
68
- onBack: _ ? void 0 : () => T(null)
68
+ onBack: _ ? void 0 : () => $(null)
69
69
  } : i === v ? {
70
70
  title: ee,
71
71
  onBack: () => S(null),
@@ -85,20 +85,20 @@ const ne = {
85
85
  // category chooser is above (i.e. not the sole category).
86
86
  {
87
87
  title: "Tools",
88
- onBack: _ ? void 0 : () => T(null)
88
+ onBack: _ ? void 0 : () => $(null)
89
89
  }
90
90
  ) : null, d = I(() => {
91
91
  if (!a)
92
- return O.map((r) => ({
92
+ return T.map((r) => ({
93
93
  id: r.key,
94
94
  label: r.label,
95
95
  drillsIn: !0,
96
96
  onActivate: () => {
97
- T(r.key), S(null);
97
+ $(r.key), S(null);
98
98
  }
99
99
  }));
100
100
  if (a === "subagent") {
101
- const r = E.trim().toLowerCase(), p = B.filter((g) => !r || A(g).toLowerCase().includes(r)).map((g) => ({
101
+ const r = E.trim().toLowerCase(), p = O.filter((g) => !r || A(g).toLowerCase().includes(r)).map((g) => ({
102
102
  id: String(g.id),
103
103
  label: A(g),
104
104
  drillsIn: !1,
@@ -199,11 +199,11 @@ const ne = {
199
199
  return n;
200
200
  }, [
201
201
  a,
202
- O,
202
+ T,
203
203
  i,
204
204
  E,
205
205
  k,
206
- B,
206
+ O,
207
207
  F,
208
208
  L,
209
209
  w,
@@ -214,8 +214,8 @@ const ne = {
214
214
  K
215
215
  ]);
216
216
  V(() => m(-1), [a, i, E, s]), V(() => Q(""), [a, i]);
217
- const W = ue({ rows: d, activeIndex: $, header: h });
218
- W.current = { rows: d, activeIndex: $, header: h }, V(() => {
217
+ const W = ue({ rows: d, activeIndex: B, header: h });
218
+ W.current = { rows: d, activeIndex: B, header: h }, V(() => {
219
219
  if (C)
220
220
  return C((e) => {
221
221
  const { rows: n, activeIndex: f, header: r } = W.current;
@@ -244,7 +244,7 @@ const ne = {
244
244
  $fixedHeight: a === "variable",
245
245
  children: [
246
246
  h && /* @__PURE__ */ x(
247
- Oe,
247
+ Te,
248
248
  {
249
249
  type: "button",
250
250
  onClick: h.onBack,
@@ -288,7 +288,7 @@ const ne = {
288
288
  "data-test": "mention-picker-search",
289
289
  onChange: (e) => Q(e.target.value),
290
290
  onKeyDown: (e) => {
291
- d.length && (e.key === "ArrowDown" ? (e.preventDefault(), m((n) => (n + 1) % d.length)) : e.key === "ArrowUp" ? (e.preventDefault(), m((n) => (n + d.length - 1) % d.length)) : e.key === "Enter" && (e.preventDefault(), (d[$] ?? d[0])?.onActivate()));
291
+ d.length && (e.key === "ArrowDown" ? (e.preventDefault(), m((n) => (n + 1) % d.length)) : e.key === "ArrowUp" ? (e.preventDefault(), m((n) => (n + d.length - 1) % d.length)) : e.key === "Enter" && (e.preventDefault(), (d[B] ?? d[0])?.onActivate()));
292
292
  }
293
293
  }
294
294
  )
@@ -315,11 +315,11 @@ const ne = {
315
315
  Le,
316
316
  {
317
317
  type: "button",
318
- $active: n === $,
318
+ $active: n === B,
319
319
  onMouseEnter: () => m(n),
320
320
  onMouseLeave: () => m(-1),
321
321
  onClick: e.onActivate,
322
- children: e.isCreate ? /* @__PURE__ */ c(Be, { children: e.label }) : /* @__PURE__ */ x(ae, { children: [
322
+ children: e.isCreate ? /* @__PURE__ */ c(Oe, { children: e.label }) : /* @__PURE__ */ x(ae, { children: [
323
323
  /* @__PURE__ */ x(Ce, { children: [
324
324
  te(e.icon),
325
325
  /* @__PURE__ */ c(pe, { color: o.content.primary, children: e.label }),
@@ -331,14 +331,14 @@ const ne = {
331
331
  }
332
332
  )
333
333
  ] }),
334
- e.rightLabel ? /* @__PURE__ */ c($e, { children: e.rightLabel }) : e.drillsIn && /* @__PURE__ */ c(ce, { width: 12, height: 12 })
334
+ e.rightLabel ? /* @__PURE__ */ c(Be, { children: e.rightLabel }) : e.drillsIn && /* @__PURE__ */ c(ce, { width: 12, height: 12 })
335
335
  ] })
336
336
  },
337
337
  e.id
338
338
  )) }),
339
- d.some((e) => e.authRequired) && /* @__PURE__ */ x(Te, { children: [
339
+ d.some((e) => e.authRequired) && /* @__PURE__ */ x($e, { children: [
340
340
  /* @__PURE__ */ c(re, { size: 16 }),
341
- /* @__PURE__ */ c(fe, { color: o.content.secondary, children: "This tool requires customer verification" })
341
+ /* @__PURE__ */ c(fe, { color: o.content.secondary, children: "Requires customer verification" })
342
342
  ] })
343
343
  ]
344
344
  }
@@ -427,27 +427,27 @@ const ne = {
427
427
  align-items: center;
428
428
  gap: 12px;
429
429
  min-width: 0;
430
- `, Te = u.div`
430
+ `, $e = u.div`
431
431
  display: flex;
432
432
  align-items: center;
433
433
  gap: 6px;
434
434
  padding: 8px 12px;
435
435
  border-top: 1px solid ${o.stroke.primary};
436
- `, $e = u.span`
436
+ `, Be = u.span`
437
437
  flex-shrink: 0;
438
438
  color: ${o.content.brand};
439
439
  font-family: Inter;
440
440
  font-size: 14px;
441
441
  font-weight: 600;
442
442
  white-space: nowrap;
443
- `, Be = u.div`
443
+ `, Oe = u.div`
444
444
  width: 100%;
445
445
  text-align: center;
446
446
  color: ${o.content.brand};
447
447
  font-family: Inter;
448
448
  font-size: 14px;
449
449
  font-weight: 600;
450
- `, Oe = u.button`
450
+ `, Te = u.button`
451
451
  display: flex;
452
452
  align-items: center;
453
453
  padding: 12px 16px;