@bikdotai/bik-component-library 0.0.821-beta.0 → 0.0.821-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.
- package/dist/cjs/components/BikGiftedChat/Bubble/Bubble.js +1 -1
- package/dist/cjs/components/BikGiftedChat/Bubble/Bubble.js.map +1 -1
- package/dist/cjs/components/BikGiftedChat/GiftedChat/Day.js +1 -1
- package/dist/cjs/components/BikGiftedChat/GiftedChat/Day.js.map +1 -1
- package/dist/cjs/components/BikGiftedChat/GiftedChat/GiftedChat.js +1 -1
- package/dist/cjs/components/BikGiftedChat/GiftedChat/GiftedChat.js.map +1 -1
- package/dist/cjs/components/BikGiftedChat/GiftedChat/types.js.map +1 -1
- package/dist/cjs/components/TypographyStyle.js +41 -20
- package/dist/cjs/components/TypographyStyle.js.map +1 -1
- package/dist/cjs/components/avatar/Avatar.js +1 -1
- package/dist/cjs/components/avatar/Avatar.js.map +1 -1
- package/dist/cjs/components/avatar/Avatar.styled.js +4 -4
- package/dist/cjs/components/avatar/Avatar.styled.js.map +1 -1
- package/dist/cjs/components/avatar/AvatarHelper.js +1 -1
- package/dist/cjs/components/avatar/AvatarHelper.js.map +1 -1
- package/dist/cjs/components/bik-layout/BikSidebar.js.map +1 -1
- package/dist/cjs/components/bik-layout/BikSidebarV2/BikSidebarV2.js +2 -0
- package/dist/cjs/components/bik-layout/BikSidebarV2/BikSidebarV2.js.map +1 -0
- package/dist/cjs/components/bik-layout/BikSidebarV2/SidebarV2Popup.js +2 -0
- package/dist/cjs/components/bik-layout/BikSidebarV2/SidebarV2Popup.js.map +1 -0
- package/dist/cjs/components/bik-layout/BikSidebarV2/SidebarV2Styles.js +294 -0
- package/dist/cjs/components/bik-layout/BikSidebarV2/SidebarV2Styles.js.map +1 -0
- package/dist/cjs/components/bik-layout/BikSidebarV2/SimpleSidebarV2.js +2 -0
- package/dist/cjs/components/bik-layout/BikSidebarV2/SimpleSidebarV2.js.map +1 -0
- package/dist/cjs/components/bik-layout/CommonStyles.js +1 -1
- package/dist/cjs/components/bik-layout/CommonStyles.js.map +1 -1
- package/dist/cjs/components/button/Button.js +1 -1
- package/dist/cjs/components/button/Button.js.map +1 -1
- package/dist/cjs/components/button/Button.styled.js +13 -13
- package/dist/cjs/components/button/Button.styled.js.map +1 -1
- package/dist/cjs/components/button/themes.js +6 -6
- package/dist/cjs/components/button/themes.js.map +1 -1
- package/dist/cjs/components/checkBox/CheckBox.js +1 -1
- package/dist/cjs/components/checkBox/CheckBox.js.map +1 -1
- package/dist/cjs/components/checkBox/CheckBox.styled.js +21 -20
- package/dist/cjs/components/checkBox/CheckBox.styled.js.map +1 -1
- package/dist/cjs/components/country-code-picker/CountryCodePicker.js.map +1 -1
- package/dist/cjs/components/country-code-picker/CountryPicker.js.map +1 -1
- package/dist/cjs/components/dropdown/Dropdown.js +1 -1
- package/dist/cjs/components/dropdown/Dropdown.js.map +1 -1
- package/dist/cjs/components/dropdown/DropdownPopover/index.js +1 -1
- package/dist/cjs/components/dropdown/DropdownPopover/index.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.js +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.js +9 -8
- package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/description/Description.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/description/Description.styled.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.js +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuItem.js +9 -9
- package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuItem.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuList.js +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuList.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuList.styled.js +6 -2
- package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuList.styled.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/searchbox/SearchZeroState.js +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/searchbox/SearchZeroState.js.map +1 -1
- package/dist/cjs/components/dropdown-button/DropdownButton.js +1 -1
- package/dist/cjs/components/dropdown-button/DropdownButton.js.map +1 -1
- package/dist/cjs/components/dropdown-button/DropdownButton.style.js +20 -6
- package/dist/cjs/components/dropdown-button/DropdownButton.style.js.map +1 -1
- package/dist/cjs/components/dual-icon-button/DualIconButton.js +2 -0
- package/dist/cjs/components/dual-icon-button/DualIconButton.js.map +1 -0
- package/dist/cjs/components/dual-icon-button/DualIconButton.styled.js +33 -0
- package/dist/cjs/components/dual-icon-button/DualIconButton.styled.js.map +1 -0
- package/dist/cjs/components/fab-menu/FABMenu.js.map +1 -1
- package/dist/cjs/components/icon-button/IconButton.js +1 -1
- package/dist/cjs/components/icon-button/IconButton.js.map +1 -1
- package/dist/cjs/components/icon-button/IconButton.styled.js +18 -12
- package/dist/cjs/components/icon-button/IconButton.styled.js.map +1 -1
- package/dist/cjs/components/icon-button/theme.js +1 -1
- package/dist/cjs/components/icon-button/theme.js.map +1 -1
- package/dist/cjs/components/input/Input.js +1 -1
- package/dist/cjs/components/input/Input.js.map +1 -1
- package/dist/cjs/components/input/Input.styled.js +27 -16
- package/dist/cjs/components/input/Input.styled.js.map +1 -1
- package/dist/cjs/components/input-with-vars/InputWithVariables.js +3 -3
- package/dist/cjs/components/input-with-vars/InputWithVariables.js.map +1 -1
- package/dist/cjs/components/list-item/ListItem.js +1 -1
- package/dist/cjs/components/list-item/ListItem.js.map +1 -1
- package/dist/cjs/components/list-item/ListItem.styled.js +6 -6
- package/dist/cjs/components/list-item/ListItem.styled.js.map +1 -1
- package/dist/cjs/components/list-item/themes.js +32 -20
- package/dist/cjs/components/list-item/themes.js.map +1 -1
- package/dist/cjs/components/multi-level-dropdown/GroupedMenuList.js +1 -1
- package/dist/cjs/components/multi-level-dropdown/GroupedMenuList.js.map +1 -1
- package/dist/cjs/components/multi-level-dropdown/MenuItem.js +1 -1
- package/dist/cjs/components/multi-level-dropdown/MenuItem.js.map +1 -1
- package/dist/cjs/components/multi-level-dropdown/MenuList.js +1 -1
- package/dist/cjs/components/multi-level-dropdown/MenuList.js.map +1 -1
- package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.js +1 -1
- package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.js.map +1 -1
- package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.styled.js +32 -29
- package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.styled.js.map +1 -1
- package/dist/cjs/components/tag/Tag.js +1 -1
- package/dist/cjs/components/tag/Tag.js.map +1 -1
- package/dist/cjs/components/tag/Tag.styled.js +4 -4
- package/dist/cjs/components/tag/Tag.styled.js.map +1 -1
- package/dist/cjs/components/tag/model.js.map +1 -1
- package/dist/cjs/components/variable-picker-v3/Content.js +1 -1
- package/dist/cjs/components/variable-picker-v3/Content.js.map +1 -1
- package/dist/cjs/components/variable-picker-v3/model.js.map +1 -1
- package/dist/cjs/components/whats-new/WhatsNew.js +1 -1
- package/dist/cjs/components/whats-new/WhatsNew.js.map +1 -1
- package/dist/cjs/components/whats-new/WhatsNewButton.js +2 -2
- package/dist/cjs/components/whats-new/WhatsNewButton.js.map +1 -1
- package/dist/cjs/components/whats-new/WhatsNewPanel.js.map +1 -1
- package/dist/cjs/constants/Theme.js +1 -1
- package/dist/cjs/constants/Theme.js.map +1 -1
- package/dist/cjs/editor/BikEditor.js +1 -1
- package/dist/cjs/editor/BikEditor.js.map +1 -1
- package/dist/cjs/editor/BikEditor.styles.js +1 -14
- package/dist/cjs/editor/BikEditor.styles.js.map +1 -1
- package/dist/cjs/editor/BikEditor.types.js.map +1 -1
- package/dist/cjs/editor/BikEditor.utils.js +2 -2
- package/dist/cjs/editor/BikEditor.utils.js.map +1 -1
- package/dist/cjs/editor/extensions/buildExtensions.js +1 -1
- package/dist/cjs/editor/extensions/buildExtensions.js.map +1 -1
- package/dist/cjs/editor/extensions/editorDropdown.styles.js +10 -15
- package/dist/cjs/editor/extensions/editorDropdown.styles.js.map +1 -1
- package/dist/cjs/editor/extensions/mention/MentionDropdown.js +1 -1
- package/dist/cjs/editor/extensions/mention/MentionDropdown.js.map +1 -1
- package/dist/cjs/editor/extensions/mention/MentionExtension.js +1 -1
- package/dist/cjs/editor/extensions/mention/MentionExtension.js.map +1 -1
- package/dist/cjs/icons/Arrows/Chevron/ChevronUp.js +1 -1
- package/dist/cjs/icons/Arrows/Chevron/ChevronUp.js.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/esm/components/BikGiftedChat/Bubble/Bubble.js +88 -73
- package/dist/esm/components/BikGiftedChat/Bubble/Bubble.js.map +1 -1
- package/dist/esm/components/BikGiftedChat/GiftedChat/Day.d.ts +6 -0
- package/dist/esm/components/BikGiftedChat/GiftedChat/Day.js +124 -88
- package/dist/esm/components/BikGiftedChat/GiftedChat/Day.js.map +1 -1
- package/dist/esm/components/BikGiftedChat/GiftedChat/GiftedChat.js +225 -128
- package/dist/esm/components/BikGiftedChat/GiftedChat/GiftedChat.js.map +1 -1
- package/dist/esm/components/BikGiftedChat/GiftedChat/types.d.ts +6 -2
- package/dist/esm/components/BikGiftedChat/GiftedChat/types.js.map +1 -1
- package/dist/esm/components/TypographyStyle.d.ts +8 -0
- package/dist/esm/components/TypographyStyle.js +63 -40
- package/dist/esm/components/TypographyStyle.js.map +1 -1
- package/dist/esm/components/avatar/Avatar.d.ts +2 -1
- package/dist/esm/components/avatar/Avatar.js +51 -73
- package/dist/esm/components/avatar/Avatar.js.map +1 -1
- package/dist/esm/components/avatar/Avatar.styled.js +8 -8
- package/dist/esm/components/avatar/Avatar.styled.js.map +1 -1
- package/dist/esm/components/avatar/AvatarHelper.d.ts +5 -4
- package/dist/esm/components/avatar/AvatarHelper.js +4 -4
- package/dist/esm/components/avatar/AvatarHelper.js.map +1 -1
- package/dist/esm/components/bik-layout/BikSidebar.js.map +1 -1
- package/dist/esm/components/bik-layout/BikSidebarV2/BikSidebarV2.d.ts +33 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/BikSidebarV2.js +272 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/BikSidebarV2.js.map +1 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2.model.d.ts +27 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2Popup.d.ts +12 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2Popup.js +53 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2Popup.js.map +1 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2Styles.d.ts +44 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2Styles.js +310 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2Styles.js.map +1 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/SimpleSidebarV2.d.ts +2 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/SimpleSidebarV2.js +107 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/SimpleSidebarV2.js.map +1 -0
- package/dist/esm/components/bik-layout/CommonStyles.js +1 -1
- package/dist/esm/components/bik-layout/CommonStyles.js.map +1 -1
- package/dist/esm/components/bik-layout/index.d.ts +2 -0
- package/dist/esm/components/button/Button.js +31 -31
- package/dist/esm/components/button/Button.js.map +1 -1
- package/dist/esm/components/button/Button.styled.d.ts +1 -1
- package/dist/esm/components/button/Button.styled.js +20 -20
- package/dist/esm/components/button/Button.styled.js.map +1 -1
- package/dist/esm/components/button/model.d.ts +3 -3
- package/dist/esm/components/button/themes.d.ts +2 -2
- package/dist/esm/components/button/themes.js +31 -17
- package/dist/esm/components/button/themes.js.map +1 -1
- package/dist/esm/components/checkBox/CheckBox.d.ts +2 -1
- package/dist/esm/components/checkBox/CheckBox.js +124 -87
- package/dist/esm/components/checkBox/CheckBox.js.map +1 -1
- package/dist/esm/components/checkBox/CheckBox.styled.d.ts +1 -1
- package/dist/esm/components/checkBox/CheckBox.styled.js +10 -9
- package/dist/esm/components/checkBox/CheckBox.styled.js.map +1 -1
- package/dist/esm/components/country-code-picker/CountryCodePicker.d.ts +1 -1
- package/dist/esm/components/country-code-picker/CountryCodePicker.js.map +1 -1
- package/dist/esm/components/country-code-picker/CountryPicker.d.ts +1 -1
- package/dist/esm/components/country-code-picker/CountryPicker.js.map +1 -1
- package/dist/esm/components/dropdown/Dropdown.js +67 -67
- package/dist/esm/components/dropdown/Dropdown.js.map +1 -1
- package/dist/esm/components/dropdown/DropdownPopover/index.js +74 -61
- package/dist/esm/components/dropdown/DropdownPopover/index.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.js +183 -174
- package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.d.ts +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.js +5 -4
- package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/description/Description.d.ts +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/description/Description.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/description/Description.styled.d.ts +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/description/Description.styled.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.d.ts +3 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.js +29 -20
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.d.ts +3 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.js +93 -87
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.d.ts +3 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.js +68 -61
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.styled.d.ts +2 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.styled.js +7 -2
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.styled.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.d.ts +3 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js +18 -10
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.d.ts +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js +18 -18
- package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchZeroState.d.ts +1 -0
- package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchZeroState.js +43 -17
- package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchZeroState.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/utils/iterationOnOptions.d.ts +2 -0
- package/dist/esm/components/dropdown/hooks/useDropdown.d.ts +2 -0
- package/dist/esm/components/dropdown/type.d.ts +6 -1
- package/dist/esm/components/dropdown-button/DropdownButton.d.ts +3 -1
- package/dist/esm/components/dropdown-button/DropdownButton.js +71 -17
- package/dist/esm/components/dropdown-button/DropdownButton.js.map +1 -1
- package/dist/esm/components/dropdown-button/DropdownButton.style.d.ts +9 -2
- package/dist/esm/components/dropdown-button/DropdownButton.style.js +35 -9
- package/dist/esm/components/dropdown-button/DropdownButton.style.js.map +1 -1
- package/dist/esm/components/dual-icon-button/DualIconButton.d.ts +3 -0
- package/dist/esm/components/dual-icon-button/DualIconButton.js +53 -0
- package/dist/esm/components/dual-icon-button/DualIconButton.js.map +1 -0
- package/dist/esm/components/dual-icon-button/DualIconButton.styled.d.ts +7 -0
- package/dist/esm/components/dual-icon-button/DualIconButton.styled.js +40 -0
- package/dist/esm/components/dual-icon-button/DualIconButton.styled.js.map +1 -0
- package/dist/esm/components/dual-icon-button/index.d.ts +2 -0
- package/dist/esm/components/dual-icon-button/model.d.ts +12 -0
- package/dist/esm/components/fab-menu/FABMenu.d.ts +1 -1
- package/dist/esm/components/fab-menu/FABMenu.js.map +1 -1
- package/dist/esm/components/icon-button/IconButton.js +36 -32
- package/dist/esm/components/icon-button/IconButton.js.map +1 -1
- package/dist/esm/components/icon-button/IconButton.styled.d.ts +3 -1
- package/dist/esm/components/icon-button/IconButton.styled.js +20 -14
- package/dist/esm/components/icon-button/IconButton.styled.js.map +1 -1
- package/dist/esm/components/icon-button/model.d.ts +12 -1
- package/dist/esm/components/icon-button/theme.js +12 -10
- package/dist/esm/components/icon-button/theme.js.map +1 -1
- package/dist/esm/components/input/Input.js +119 -115
- package/dist/esm/components/input/Input.js.map +1 -1
- package/dist/esm/components/input/Input.model.d.ts +2 -3
- package/dist/esm/components/input/Input.styled.d.ts +8 -1
- package/dist/esm/components/input/Input.styled.js +34 -22
- package/dist/esm/components/input/Input.styled.js.map +1 -1
- package/dist/esm/components/input-with-vars/InputWithVariables.d.ts +0 -2
- package/dist/esm/components/input-with-vars/InputWithVariables.js +75 -81
- package/dist/esm/components/input-with-vars/InputWithVariables.js.map +1 -1
- package/dist/esm/components/list-item/List.model.d.ts +2 -1
- package/dist/esm/components/list-item/ListItem.js +40 -38
- package/dist/esm/components/list-item/ListItem.js.map +1 -1
- package/dist/esm/components/list-item/ListItem.styled.d.ts +2 -1
- package/dist/esm/components/list-item/ListItem.styled.js +8 -8
- package/dist/esm/components/list-item/ListItem.styled.js.map +1 -1
- package/dist/esm/components/list-item/themes.d.ts +2 -2
- package/dist/esm/components/list-item/themes.js +20 -6
- package/dist/esm/components/list-item/themes.js.map +1 -1
- package/dist/esm/components/multi-level-dropdown/GroupedMenuList.d.ts +1 -0
- package/dist/esm/components/multi-level-dropdown/GroupedMenuList.js +30 -28
- package/dist/esm/components/multi-level-dropdown/GroupedMenuList.js.map +1 -1
- package/dist/esm/components/multi-level-dropdown/MenuItem.d.ts +1 -0
- package/dist/esm/components/multi-level-dropdown/MenuItem.js +57 -54
- package/dist/esm/components/multi-level-dropdown/MenuItem.js.map +1 -1
- package/dist/esm/components/multi-level-dropdown/MenuList.d.ts +1 -0
- package/dist/esm/components/multi-level-dropdown/MenuList.js +46 -42
- package/dist/esm/components/multi-level-dropdown/MenuList.js.map +1 -1
- package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.js +95 -59
- package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.js.map +1 -1
- package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.styled.d.ts +13 -3
- package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.styled.js +50 -41
- package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.styled.js.map +1 -1
- package/dist/esm/components/multi-level-dropdown/type.d.ts +1 -0
- package/dist/esm/components/tag/Tag.d.ts +1 -1
- package/dist/esm/components/tag/Tag.js +22 -18
- package/dist/esm/components/tag/Tag.js.map +1 -1
- package/dist/esm/components/tag/Tag.styled.d.ts +3 -1
- package/dist/esm/components/tag/Tag.styled.js +7 -7
- package/dist/esm/components/tag/Tag.styled.js.map +1 -1
- package/dist/esm/components/tag/model.d.ts +5 -1
- package/dist/esm/components/tag/model.js.map +1 -1
- package/dist/esm/components/variable-picker-v3/Content.js +69 -69
- package/dist/esm/components/variable-picker-v3/Content.js.map +1 -1
- package/dist/esm/components/variable-picker-v3/model.d.ts +0 -2
- package/dist/esm/components/variable-picker-v3/model.js.map +1 -1
- package/dist/esm/components/whats-new/WhatsNew.d.ts +2 -0
- package/dist/esm/components/whats-new/WhatsNew.js +23 -19
- package/dist/esm/components/whats-new/WhatsNew.js.map +1 -1
- package/dist/esm/components/whats-new/WhatsNew.types.d.ts +2 -0
- package/dist/esm/components/whats-new/WhatsNewButton.js +34 -38
- package/dist/esm/components/whats-new/WhatsNewButton.js.map +1 -1
- package/dist/esm/components/whats-new/WhatsNewPanel.js.map +1 -1
- package/dist/esm/constants/Theme.d.ts +36 -0
- package/dist/esm/constants/Theme.js +21 -1
- package/dist/esm/constants/Theme.js.map +1 -1
- package/dist/esm/editor/BikEditor.js +18 -19
- package/dist/esm/editor/BikEditor.js.map +1 -1
- package/dist/esm/editor/BikEditor.styles.js +0 -13
- package/dist/esm/editor/BikEditor.styles.js.map +1 -1
- package/dist/esm/editor/BikEditor.types.d.ts +0 -14
- package/dist/esm/editor/BikEditor.types.js.map +1 -1
- package/dist/esm/editor/BikEditor.utils.js +75 -76
- package/dist/esm/editor/BikEditor.utils.js.map +1 -1
- package/dist/esm/editor/extensions/buildExtensions.d.ts +0 -1
- package/dist/esm/editor/extensions/buildExtensions.js +29 -31
- package/dist/esm/editor/extensions/buildExtensions.js.map +1 -1
- package/dist/esm/editor/extensions/editorDropdown.styles.d.ts +8 -2
- package/dist/esm/editor/extensions/editorDropdown.styles.js +18 -22
- package/dist/esm/editor/extensions/editorDropdown.styles.js.map +1 -1
- package/dist/esm/editor/extensions/mention/MentionDropdown.js +28 -34
- package/dist/esm/editor/extensions/mention/MentionDropdown.js.map +1 -1
- package/dist/esm/editor/extensions/mention/MentionExtension.d.ts +2 -2
- package/dist/esm/editor/extensions/mention/MentionExtension.js +60 -81
- package/dist/esm/editor/extensions/mention/MentionExtension.js.map +1 -1
- package/dist/esm/icons/Arrows/Chevron/ChevronUp.d.ts +1 -2
- package/dist/esm/icons/Arrows/Chevron/ChevronUp.js +24 -28
- package/dist/esm/icons/Arrows/Chevron/ChevronUp.js.map +1 -1
- package/dist/esm/icons/index.d.ts +24 -24
- package/dist/esm/index.d.ts +1 -2
- package/dist/esm/index.js +798 -806
- package/dist/esm/index.js.map +1 -1
- package/package.json +2 -3
- package/dist/cjs/assets/icons/ManifestGlass.svg.js +0 -2
- package/dist/cjs/assets/icons/ManifestGlass.svg.js.map +0 -1
- package/dist/cjs/assets/icons/playOutline.svg.js +0 -2
- package/dist/cjs/assets/icons/playOutline.svg.js.map +0 -1
- package/dist/cjs/components/agent-builder/AgentBuilder.js +0 -2
- package/dist/cjs/components/agent-builder/AgentBuilder.js.map +0 -1
- package/dist/cjs/components/agent-builder/AgentBuilder.styled.js +0 -285
- package/dist/cjs/components/agent-builder/AgentBuilder.styled.js.map +0 -1
- package/dist/cjs/components/agent-builder/components/AgentBuilderFooter.js +0 -2
- package/dist/cjs/components/agent-builder/components/AgentBuilderFooter.js.map +0 -1
- package/dist/cjs/components/agent-builder/components/AgentBuilderTopBar.js +0 -2
- package/dist/cjs/components/agent-builder/components/AgentBuilderTopBar.js.map +0 -1
- package/dist/cjs/components/agent-builder/components/AiTextArea.js +0 -2
- package/dist/cjs/components/agent-builder/components/AiTextArea.js.map +0 -1
- package/dist/cjs/components/agent-builder/components/DiscardModal.js +0 -2
- package/dist/cjs/components/agent-builder/components/DiscardModal.js.map +0 -1
- package/dist/cjs/components/agent-builder/components/GoLiveModal.js +0 -2
- package/dist/cjs/components/agent-builder/components/GoLiveModal.js.map +0 -1
- package/dist/cjs/components/agent-builder/components/InstructionsField.js +0 -2
- package/dist/cjs/components/agent-builder/components/InstructionsField.js.map +0 -1
- package/dist/cjs/components/agent-builder/components/MentionPicker.js +0 -47
- package/dist/cjs/components/agent-builder/components/MentionPicker.js.map +0 -1
- package/dist/cjs/components/agent-builder/components/RichTextField.js +0 -2
- package/dist/cjs/components/agent-builder/components/RichTextField.js.map +0 -1
- package/dist/cjs/components/agent-builder/components/SelectableListSection.js +0 -2
- package/dist/cjs/components/agent-builder/components/SelectableListSection.js.map +0 -1
- package/dist/cjs/components/agent-builder/components/StepRail.js +0 -2
- package/dist/cjs/components/agent-builder/components/StepRail.js.map +0 -1
- package/dist/cjs/components/agent-builder/components/StepSectionHeader.js +0 -2
- package/dist/cjs/components/agent-builder/components/StepSectionHeader.js.map +0 -1
- package/dist/cjs/components/agent-builder/constants/charLimits.js +0 -2
- package/dist/cjs/components/agent-builder/constants/charLimits.js.map +0 -1
- package/dist/cjs/components/agent-builder/constants/editorStyle.js +0 -2
- package/dist/cjs/components/agent-builder/constants/editorStyle.js.map +0 -1
- package/dist/cjs/components/agent-builder/constants/steps.js +0 -2
- package/dist/cjs/components/agent-builder/constants/steps.js.map +0 -1
- package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js +0 -2
- package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js.map +0 -1
- package/dist/cjs/components/agent-builder/hooks/useAgentDraft.js +0 -2
- package/dist/cjs/components/agent-builder/hooks/useAgentDraft.js.map +0 -1
- package/dist/cjs/components/agent-builder/steps/Step1About.js +0 -2
- package/dist/cjs/components/agent-builder/steps/Step1About.js.map +0 -1
- package/dist/cjs/components/agent-builder/steps/Step2WhenItStepsIn.js +0 -2
- package/dist/cjs/components/agent-builder/steps/Step2WhenItStepsIn.js.map +0 -1
- package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js +0 -2
- package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js.map +0 -1
- package/dist/cjs/components/agent-builder/steps/Step4HandoverRules.js +0 -2
- package/dist/cjs/components/agent-builder/steps/Step4HandoverRules.js.map +0 -1
- package/dist/cjs/components/agent-builder/utils/mentionSerialization.js +0 -4
- package/dist/cjs/components/agent-builder/utils/mentionSerialization.js.map +0 -1
- package/dist/cjs/components/agent-listing/AgentListing.js +0 -2
- package/dist/cjs/components/agent-listing/AgentListing.js.map +0 -1
- package/dist/cjs/components/agent-listing/AgentListing.styled.js +0 -115
- package/dist/cjs/components/agent-listing/AgentListing.styled.js.map +0 -1
- package/dist/cjs/components/agent-listing/AgentListingFilters.js +0 -2
- package/dist/cjs/components/agent-listing/AgentListingFilters.js.map +0 -1
- package/dist/cjs/components/agent-listing/AgentListingHeader.js +0 -2
- package/dist/cjs/components/agent-listing/AgentListingHeader.js.map +0 -1
- package/dist/cjs/components/agent-listing/AgentTable.js +0 -2
- package/dist/cjs/components/agent-listing/AgentTable.js.map +0 -1
- package/dist/cjs/components/agent-listing/AgentTableRow.js +0 -2
- package/dist/cjs/components/agent-listing/AgentTableRow.js.map +0 -1
- package/dist/esm/assets/icons/ManifestGlass.svg.js +0 -6
- package/dist/esm/assets/icons/ManifestGlass.svg.js.map +0 -1
- package/dist/esm/assets/icons/playOutline.svg.js +0 -6
- package/dist/esm/assets/icons/playOutline.svg.js.map +0 -1
- package/dist/esm/components/agent-builder/AgentBuilder.d.ts +0 -18
- package/dist/esm/components/agent-builder/AgentBuilder.js +0 -190
- package/dist/esm/components/agent-builder/AgentBuilder.js.map +0 -1
- package/dist/esm/components/agent-builder/AgentBuilder.model.d.ts +0 -73
- package/dist/esm/components/agent-builder/AgentBuilder.styled.d.ts +0 -121
- package/dist/esm/components/agent-builder/AgentBuilder.styled.js +0 -353
- package/dist/esm/components/agent-builder/AgentBuilder.styled.js.map +0 -1
- package/dist/esm/components/agent-builder/components/AgentBuilderFooter.d.ts +0 -10
- package/dist/esm/components/agent-builder/components/AgentBuilderFooter.js +0 -70
- package/dist/esm/components/agent-builder/components/AgentBuilderFooter.js.map +0 -1
- package/dist/esm/components/agent-builder/components/AgentBuilderTopBar.d.ts +0 -12
- package/dist/esm/components/agent-builder/components/AgentBuilderTopBar.js +0 -73
- package/dist/esm/components/agent-builder/components/AgentBuilderTopBar.js.map +0 -1
- package/dist/esm/components/agent-builder/components/AiTextArea.d.ts +0 -14
- package/dist/esm/components/agent-builder/components/AiTextArea.js +0 -44
- package/dist/esm/components/agent-builder/components/AiTextArea.js.map +0 -1
- package/dist/esm/components/agent-builder/components/DiscardModal.d.ts +0 -18
- package/dist/esm/components/agent-builder/components/DiscardModal.js +0 -54
- package/dist/esm/components/agent-builder/components/DiscardModal.js.map +0 -1
- package/dist/esm/components/agent-builder/components/GoLiveModal.d.ts +0 -18
- package/dist/esm/components/agent-builder/components/GoLiveModal.js +0 -73
- package/dist/esm/components/agent-builder/components/GoLiveModal.js.map +0 -1
- package/dist/esm/components/agent-builder/components/InstructionsField.d.ts +0 -2
- package/dist/esm/components/agent-builder/components/InstructionsField.js +0 -81
- package/dist/esm/components/agent-builder/components/InstructionsField.js.map +0 -1
- package/dist/esm/components/agent-builder/components/MentionPicker.d.ts +0 -12
- package/dist/esm/components/agent-builder/components/MentionPicker.js +0 -154
- package/dist/esm/components/agent-builder/components/MentionPicker.js.map +0 -1
- package/dist/esm/components/agent-builder/components/RichTextField.d.ts +0 -21
- package/dist/esm/components/agent-builder/components/RichTextField.js +0 -66
- package/dist/esm/components/agent-builder/components/RichTextField.js.map +0 -1
- package/dist/esm/components/agent-builder/components/SelectableListSection.d.ts +0 -19
- package/dist/esm/components/agent-builder/components/SelectableListSection.js +0 -79
- package/dist/esm/components/agent-builder/components/SelectableListSection.js.map +0 -1
- package/dist/esm/components/agent-builder/components/StepRail.d.ts +0 -2
- package/dist/esm/components/agent-builder/components/StepRail.js +0 -35
- package/dist/esm/components/agent-builder/components/StepRail.js.map +0 -1
- package/dist/esm/components/agent-builder/components/StepSectionHeader.d.ts +0 -7
- package/dist/esm/components/agent-builder/components/StepSectionHeader.js +0 -15
- package/dist/esm/components/agent-builder/components/StepSectionHeader.js.map +0 -1
- package/dist/esm/components/agent-builder/constants/charLimits.d.ts +0 -21
- package/dist/esm/components/agent-builder/constants/charLimits.js +0 -18
- package/dist/esm/components/agent-builder/constants/charLimits.js.map +0 -1
- package/dist/esm/components/agent-builder/constants/editorStyle.d.ts +0 -8
- package/dist/esm/components/agent-builder/constants/editorStyle.js +0 -10
- package/dist/esm/components/agent-builder/constants/editorStyle.js.map +0 -1
- package/dist/esm/components/agent-builder/constants/steps.d.ts +0 -13
- package/dist/esm/components/agent-builder/constants/steps.js +0 -32
- package/dist/esm/components/agent-builder/constants/steps.js.map +0 -1
- package/dist/esm/components/agent-builder/context/AgentBuilderContext.d.ts +0 -53
- package/dist/esm/components/agent-builder/context/AgentBuilderContext.js +0 -118
- package/dist/esm/components/agent-builder/context/AgentBuilderContext.js.map +0 -1
- package/dist/esm/components/agent-builder/hooks/useAgentDraft.d.ts +0 -24
- package/dist/esm/components/agent-builder/hooks/useAgentDraft.js +0 -27
- package/dist/esm/components/agent-builder/hooks/useAgentDraft.js.map +0 -1
- package/dist/esm/components/agent-builder/index.d.ts +0 -7
- package/dist/esm/components/agent-builder/steps/Step1About.d.ts +0 -2
- package/dist/esm/components/agent-builder/steps/Step1About.js +0 -43
- package/dist/esm/components/agent-builder/steps/Step1About.js.map +0 -1
- package/dist/esm/components/agent-builder/steps/Step2WhenItStepsIn.d.ts +0 -2
- package/dist/esm/components/agent-builder/steps/Step2WhenItStepsIn.js +0 -148
- package/dist/esm/components/agent-builder/steps/Step2WhenItStepsIn.js.map +0 -1
- package/dist/esm/components/agent-builder/steps/Step3HowItResponds.d.ts +0 -2
- package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js +0 -112
- package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js.map +0 -1
- package/dist/esm/components/agent-builder/steps/Step4HandoverRules.d.ts +0 -2
- package/dist/esm/components/agent-builder/steps/Step4HandoverRules.js +0 -83
- package/dist/esm/components/agent-builder/steps/Step4HandoverRules.js.map +0 -1
- package/dist/esm/components/agent-builder/utils/mentionSerialization.d.ts +0 -55
- package/dist/esm/components/agent-builder/utils/mentionSerialization.js +0 -95
- package/dist/esm/components/agent-builder/utils/mentionSerialization.js.map +0 -1
- package/dist/esm/components/agent-listing/AgentListing.d.ts +0 -18
- package/dist/esm/components/agent-listing/AgentListing.js +0 -141
- package/dist/esm/components/agent-listing/AgentListing.js.map +0 -1
- package/dist/esm/components/agent-listing/AgentListing.model.d.ts +0 -69
- package/dist/esm/components/agent-listing/AgentListing.styled.d.ts +0 -56
- package/dist/esm/components/agent-listing/AgentListing.styled.js +0 -145
- package/dist/esm/components/agent-listing/AgentListing.styled.js.map +0 -1
- package/dist/esm/components/agent-listing/AgentListingFilters.d.ts +0 -16
- package/dist/esm/components/agent-listing/AgentListingFilters.js +0 -81
- package/dist/esm/components/agent-listing/AgentListingFilters.js.map +0 -1
- package/dist/esm/components/agent-listing/AgentListingHeader.d.ts +0 -8
- package/dist/esm/components/agent-listing/AgentListingHeader.js +0 -40
- package/dist/esm/components/agent-listing/AgentListingHeader.js.map +0 -1
- package/dist/esm/components/agent-listing/AgentTable.d.ts +0 -10
- package/dist/esm/components/agent-listing/AgentTable.js +0 -33
- package/dist/esm/components/agent-listing/AgentTable.js.map +0 -1
- package/dist/esm/components/agent-listing/AgentTableRow.d.ts +0 -10
- package/dist/esm/components/agent-listing/AgentTableRow.js +0 -88
- package/dist/esm/components/agent-listing/AgentTableRow.js.map +0 -1
- package/dist/esm/components/agent-listing/index.d.ts +0 -2
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),j=require("../../../assets/icons/chevronLeft.svg.js"),I=require("../../../assets/icons/chevronRight.svg.js"),r=require("react"),$=require("styled-components"),w=require("../../TypographyStyle.js"),o=require("../../../constants/Theme.js"),C=require("../utils/mentionSerialization.js"),q=t=>t&&typeof t=="object"&&"default"in t?t:{default:t},h=q($),E=[{key:"tool",label:"Tools"},{key:"subagent",label:"Sub-agent"}],u=t=>t.meta,L=t=>u(t)?.plainLabel??t.label,M=({items:t,onSelect:g,registerKeyHandler:d})=>{const[a,x]=r.useState(null),[l,k]=r.useState(null),[y,p]=r.useState(0),f=r.useMemo(()=>t.filter(e=>u(e)?.kind==="tool"),[t]),S=r.useMemo(()=>t.filter(e=>u(e)?.kind==="subagent"),[t]),v=r.useMemo(()=>{const e=[];return f.forEach(n=>{const b=u(n)?.source??"other";e.includes(b)||e.push(b)}),e},[f]),c=a?a==="subagent"?{title:"Sub-agent",onBack:()=>x(null)}:l?{title:C.toolSourceLabel(l),onBack:()=>k(null)}:{title:"Tools",onBack:()=>x(null)}:null,i=r.useMemo(()=>a?a==="subagent"?S.map(e=>({id:String(e.id),label:L(e),drillsIn:!1,onActivate:()=>g(e)})):l?f.filter(e=>(u(e)?.source??"other")===l).map(e=>({id:String(e.id),label:L(e),drillsIn:!1,onActivate:()=>g(e)})):v.map(e=>({id:e,label:C.toolSourceLabel(e),drillsIn:!0,onActivate:()=>k(e)})):E.map(e=>({id:e.key,label:e.label,drillsIn:!0,onActivate:()=>{x(e.key),k(null)}})),[a,l,f,S,v,g]);r.useEffect(()=>p(0),[a,l,t]);const O=r.useRef({rows:i,activeIndex:y,header:c});O.current={rows:i,activeIndex:y,header:c},r.useEffect(()=>{if(d)return d(e=>{const{rows:n,activeIndex:b,header:R}=O.current;switch(e.key){case"ArrowDown":return n.length&&p(m=>(m+1)%n.length),!0;case"ArrowUp":return n.length&&p(m=>(m+n.length-1)%n.length),!0;case"ArrowRight":case"Enter":return n[b]?.onActivate(),!0;case"ArrowLeft":return R?(R.onBack(),!0):!1;default:return!1}}),()=>d(null)},[d]);const A=a?i.length&&!i[0].drillsIn?"items":"sources":"categories";return s.jsxs(B,{className:`bik-mention-picker bik-mention-picker--${A}`,children:[c&&s.jsxs(T,{type:"button",onClick:c.onBack,style:{background:o.COLORS.surface.subdued},children:[s.jsx(j.default,{width:12,height:12}),s.jsxs(w.TitleSmall,{children:[" ",c.title]})]}),i.length===0?s.jsx(z,{children:a==="subagent"?"No sub-agents available":"No tools available"}):i.map((e,n)=>s.jsxs(P,{type:"button",$active:n===y,onMouseEnter:()=>p(n),onClick:e.onActivate,children:[s.jsx(w.BodySecondary,{color:o.COLORS.content.primary,children:e.label}),e.drillsIn&&s.jsx(I.default,{width:12,height:12})]},e.id))]})},B=h.default.div`
|
|
2
|
-
display: flex;
|
|
3
|
-
flex-direction: column;
|
|
4
|
-
min-width: 240px;
|
|
5
|
-
max-height: 280px;
|
|
6
|
-
overflow-y: auto;
|
|
7
|
-
background: ${o.COLORS.surface.standard};
|
|
8
|
-
border: 1px solid ${o.COLORS.stroke.primary};
|
|
9
|
-
border-radius: 4px;
|
|
10
|
-
box-shadow: 0px -2px 8px 0px #0000001f;
|
|
11
|
-
`,P=h.default.button`
|
|
12
|
-
display: flex;
|
|
13
|
-
justify-content: space-between;
|
|
14
|
-
align-items: center;
|
|
15
|
-
gap: 2px;
|
|
16
|
-
width: 100%;
|
|
17
|
-
padding: 8px 10px;
|
|
18
|
-
height: 48px;
|
|
19
|
-
border: none;
|
|
20
|
-
border-bottom: 1px solid ${o.COLORS.stroke.primary};
|
|
21
|
-
background: ${t=>t.$active?o.COLORS.surface.subdued:"transparent"};
|
|
22
|
-
cursor: pointer;
|
|
23
|
-
text-align: left;
|
|
24
|
-
|
|
25
|
-
&:hover {
|
|
26
|
-
background: ${o.COLORS.surface.subdued};
|
|
27
|
-
}
|
|
28
|
-
`,T=h.default.button`
|
|
29
|
-
display: flex;
|
|
30
|
-
align-items: center;
|
|
31
|
-
padding: 12px 16px;
|
|
32
|
-
border: none;
|
|
33
|
-
border-bottom: 1px solid ${o.COLORS.stroke.primary};
|
|
34
|
-
background: transparent;
|
|
35
|
-
cursor: pointer;
|
|
36
|
-
font-family: Inter;
|
|
37
|
-
font-size: 12px;
|
|
38
|
-
font-weight: 600;
|
|
39
|
-
height: 48px;
|
|
40
|
-
gap: 4px;
|
|
41
|
-
`,z=h.default.div`
|
|
42
|
-
padding: 12px 10px;
|
|
43
|
-
font-family: Inter;
|
|
44
|
-
font-size: 13px;
|
|
45
|
-
color: ${o.COLORS.content.secondary};
|
|
46
|
-
`;exports.MentionPicker=M;
|
|
47
|
-
//# sourceMappingURL=MentionPicker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MentionPicker.js","sources":["../../../../../src/components/agent-builder/components/MentionPicker.tsx"],"sourcesContent":["import ChevronLeft from '@src/assets/icons/chevronLeft.svg';\nimport ChevronRight from '@src/assets/icons/chevronRight.svg';\nimport type { MentionDropdownRenderProps, MentionItem } from '@src/editor';\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport styled from 'styled-components';\nimport { BodySecondary, TitleSmall } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport {\n\tMentionKindMeta,\n\ttoolSourceLabel,\n} from '../utils/mentionSerialization';\n\ntype Category = 'tool' | 'subagent';\n\nconst CATEGORIES: { key: Category; label: string }[] = [\n\t{ key: 'tool', label: 'Tools' },\n\t{ key: 'subagent', label: 'Sub-agent' },\n];\n\nconst metaOf = (item: MentionItem): MentionKindMeta | undefined =>\n\titem.meta as unknown as MentionKindMeta | undefined;\n\nconst rowLabel = (item: MentionItem): string =>\n\tmetaOf(item)?.plainLabel ?? item.label;\n\n/** One navigable row in the picker's current view. */\ntype PickerRowModel = {\n\tid: string;\n\tlabel: string;\n\t/** Drill-in rows show a chevron; leaf (selectable) rows do not. */\n\tdrillsIn: boolean;\n\tonActivate: () => void;\n};\n\n/**\n * `@` reference picker. Drills:\n * root → Tools → <source> (Manifest / Shopify / …) → tool\n * → Sub-agent → sub-agent\n * (\"Add condition\" and \"Variables\" are intentionally not shown yet.)\n *\n * Owns keyboard navigation (↑/↓ move, →/Enter activate, ← go back) over the\n * CURRENTLY visible rows — registered with the editor via `registerKeyHandler`.\n */\nexport const MentionPicker: React.FC<MentionDropdownRenderProps> = ({\n\titems,\n\tonSelect,\n\tregisterKeyHandler,\n}) => {\n\tconst [category, setCategory] = useState<Category | null>(null);\n\tconst [source, setSource] = useState<string | null>(null);\n\tconst [activeIndex, setActiveIndex] = useState(0);\n\n\tconst tools = useMemo(\n\t\t() => items.filter((i) => metaOf(i)?.kind === 'tool'),\n\t\t[items],\n\t);\n\tconst subAgents = useMemo(\n\t\t() => items.filter((i) => metaOf(i)?.kind === 'subagent'),\n\t\t[items],\n\t);\n\tconst sources = useMemo(() => {\n\t\tconst acc: string[] = [];\n\t\ttools.forEach((t) => {\n\t\t\tconst s = metaOf(t)?.source ?? 'other';\n\t\t\tif (!acc.includes(s)) {\n\t\t\t\tacc.push(s);\n\t\t\t}\n\t\t});\n\t\treturn acc;\n\t}, [tools]);\n\n\t// Title shown above the current view, and whether we can go back a level.\n\tconst header: { title: string; onBack: () => void } | null = !category\n\t\t? null\n\t\t: category === 'subagent'\n\t\t? { title: 'Sub-agent', onBack: () => setCategory(null) }\n\t\t: source\n\t\t? { title: toolSourceLabel(source), onBack: () => setSource(null) }\n\t\t: { title: 'Tools', onBack: () => setCategory(null) };\n\n\t// Build the navigable rows for the current view.\n\tconst rows: PickerRowModel[] = useMemo(() => {\n\t\tif (!category) {\n\t\t\treturn CATEGORIES.map((c) => ({\n\t\t\t\tid: c.key,\n\t\t\t\tlabel: c.label,\n\t\t\t\tdrillsIn: true,\n\t\t\t\tonActivate: () => {\n\t\t\t\t\tsetCategory(c.key);\n\t\t\t\t\tsetSource(null);\n\t\t\t\t},\n\t\t\t}));\n\t\t}\n\t\tif (category === 'subagent') {\n\t\t\treturn subAgents.map((item) => ({\n\t\t\t\tid: String(item.id),\n\t\t\t\tlabel: rowLabel(item),\n\t\t\t\tdrillsIn: false,\n\t\t\t\tonActivate: () => onSelect(item),\n\t\t\t}));\n\t\t}\n\t\tif (!source) {\n\t\t\treturn sources.map((s) => ({\n\t\t\t\tid: s,\n\t\t\t\tlabel: toolSourceLabel(s),\n\t\t\t\tdrillsIn: true,\n\t\t\t\tonActivate: () => setSource(s),\n\t\t\t}));\n\t\t}\n\t\treturn tools\n\t\t\t.filter((t) => (metaOf(t)?.source ?? 'other') === source)\n\t\t\t.map((item) => ({\n\t\t\t\tid: String(item.id),\n\t\t\t\tlabel: rowLabel(item),\n\t\t\t\tdrillsIn: false,\n\t\t\t\tonActivate: () => onSelect(item),\n\t\t\t}));\n\t}, [category, source, tools, subAgents, sources, onSelect]);\n\n\t// Reset highlight whenever the view (or filtered result set) changes.\n\tuseEffect(() => setActiveIndex(0), [category, source, items]);\n\n\t// Keep the latest rows/index reachable from the stable key handler.\n\tconst navRef = useRef({ rows, activeIndex, header });\n\tnavRef.current = { rows, activeIndex, header };\n\n\tuseEffect(() => {\n\t\tif (!registerKeyHandler) {\n\t\t\treturn;\n\t\t}\n\t\tregisterKeyHandler((event) => {\n\t\t\tconst { rows: r, activeIndex: i, header: h } = navRef.current;\n\t\t\tswitch (event.key) {\n\t\t\t\tcase 'ArrowDown':\n\t\t\t\t\tif (r.length) setActiveIndex((p) => (p + 1) % r.length);\n\t\t\t\t\treturn true;\n\t\t\t\tcase 'ArrowUp':\n\t\t\t\t\tif (r.length) setActiveIndex((p) => (p + r.length - 1) % r.length);\n\t\t\t\t\treturn true;\n\t\t\t\tcase 'ArrowRight':\n\t\t\t\tcase 'Enter':\n\t\t\t\t\tr[i]?.onActivate();\n\t\t\t\t\treturn true;\n\t\t\t\tcase 'ArrowLeft':\n\t\t\t\t\tif (h) {\n\t\t\t\t\t\th.onBack();\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\tdefault:\n\t\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\treturn () => registerKeyHandler(null);\n\t}, [registerKeyHandler]);\n\n\tconst variant = !category\n\t\t? 'categories'\n\t\t: rows.length && !rows[0].drillsIn\n\t\t? 'items'\n\t\t: 'sources';\n\n\treturn (\n\t\t<PickerCard className={`bik-mention-picker bik-mention-picker--${variant}`}>\n\t\t\t{header && (\n\t\t\t\t<PickerBack\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tonClick={header.onBack}\n\t\t\t\t\tstyle={{ background: COLORS.surface.subdued }}\n\t\t\t\t>\n\t\t\t\t\t<ChevronLeft width={12} height={12} />\n\t\t\t\t\t<TitleSmall> {header.title}</TitleSmall>\n\t\t\t\t</PickerBack>\n\t\t\t)}\n\t\t\t{rows.length === 0 ? (\n\t\t\t\t<PickerEmpty>\n\t\t\t\t\t{category === 'subagent'\n\t\t\t\t\t\t? 'No sub-agents available'\n\t\t\t\t\t\t: 'No tools available'}\n\t\t\t\t</PickerEmpty>\n\t\t\t) : (\n\t\t\t\trows.map((row, i) => (\n\t\t\t\t\t<PickerRow\n\t\t\t\t\t\tkey={row.id}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t$active={i === activeIndex}\n\t\t\t\t\t\tonMouseEnter={() => setActiveIndex(i)}\n\t\t\t\t\t\tonClick={row.onActivate}\n\t\t\t\t\t>\n\t\t\t\t\t\t<BodySecondary color={COLORS.content.primary}>\n\t\t\t\t\t\t\t{row.label}\n\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t\t{row.drillsIn && <ChevronRight width={12} height={12} />}\n\t\t\t\t\t</PickerRow>\n\t\t\t\t))\n\t\t\t)}\n\t\t</PickerCard>\n\t);\n};\n\nconst PickerCard = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tmin-width: 240px;\n\tmax-height: 280px;\n\toverflow-y: auto;\n\tbackground: ${COLORS.surface.standard};\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 4px;\n\tbox-shadow: 0px -2px 8px 0px #0000001f;\n`;\n\nconst PickerRow = styled.button<{ $active?: boolean }>`\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-items: center;\n\tgap: 2px;\n\twidth: 100%;\n\tpadding: 8px 10px;\n\theight: 48px;\n\tborder: none;\n\tborder-bottom: 1px solid ${COLORS.stroke.primary};\n\tbackground: ${(p) => (p.$active ? COLORS.surface.subdued : 'transparent')};\n\tcursor: pointer;\n\ttext-align: left;\n\n\t&:hover {\n\t\tbackground: ${COLORS.surface.subdued};\n\t}\n`;\n\nconst PickerBack = styled.button`\n\tdisplay: flex;\n\talign-items: center;\n\tpadding: 12px 16px;\n\tborder: none;\n\tborder-bottom: 1px solid ${COLORS.stroke.primary};\n\tbackground: transparent;\n\tcursor: pointer;\n\tfont-family: Inter;\n\tfont-size: 12px;\n\tfont-weight: 600;\n\theight: 48px;\n\tgap: 4px;\n`;\n\nconst PickerEmpty = styled.div`\n\tpadding: 12px 10px;\n\tfont-family: Inter;\n\tfont-size: 13px;\n\tcolor: ${COLORS.content.secondary};\n`;\n"],"names":["CATEGORIES","metaOf","item","rowLabel","MentionPicker","items","onSelect","registerKeyHandler","category","setCategory","useState","source","setSource","activeIndex","setActiveIndex","tools","useMemo","i","subAgents","sources","acc","t","s","header","toolSourceLabel","rows","c","useEffect","navRef","useRef","event","r","h","p","variant","jsxs","PickerCard","PickerBack","COLORS","jsx","ChevronLeft","TitleSmall","PickerEmpty","row","PickerRow","BodySecondary","ChevronRight","styled"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("react"),c=require("../../TypographyStyle.js"),l=require("../../../constants/Theme.js"),o=require("../AgentBuilder.styled.js"),q=require("../constants/editorStyle.js"),u=require("../utils/mentionSerialization.js"),C=require("../../../editor/BikEditor.js"),f=({label:d,value:r,onChange:a,maxLength:n,placeholder:h,minHeight:x="140px",resetKey:S,...y})=>{const i=t.useRef(null),[T,m]=t.useState(r.length),[R,s]=t.useState(!1),g=t.useMemo(()=>u.instructionsToEditorHtml(r),[S]);return e.jsxs(o.FieldBlock,{children:[e.jsxs(o.FieldLabelRow,{children:[e.jsx(c.TitleSmall,{color:l.COLORS.content.primary,children:d}),e.jsxs(c.BodyCaption,{color:l.COLORS.content.secondary,children:[T,"/",n]})]}),e.jsx(o.AiTextAreaShell,{focused:R,minHeight:x,"data-test":y["data-test"],children:e.jsx(C.BikEditor,{ref:i,initialContent:g,placeholder:h,maxCharacters:n,minHeight:"120px",maxHeight:"320px",style:{border:"none"},editorStyle:q.AGENT_EDITOR_STYLE,onFocus:()=>s(!0),onBlur:()=>s(!1),onChange:j=>{m(j.characterCount);const p=i.current?.getJSON()??null;a(u.editorDocToInstructions(p,[]))}})})]})};exports.RichTextField=f;
|
|
2
|
-
//# sourceMappingURL=RichTextField.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RichTextField.js","sources":["../../../../../src/components/agent-builder/components/RichTextField.tsx"],"sourcesContent":["import { BikEditor, BikEditorRef } from '@src/editor';\nimport React, { useMemo, useRef, useState } from 'react';\nimport { BodyCaption, TitleSmall } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport {\n\tAiTextAreaShell,\n\tFieldBlock,\n\tFieldLabelRow,\n} from '../AgentBuilder.styled';\nimport { AGENT_EDITOR_STYLE } from '../constants/editorStyle';\nimport {\n\teditorDocToInstructions,\n\tinstructionsToEditorHtml,\n} from '../utils/mentionSerialization';\n\ninterface RichTextFieldProps {\n\tlabel: string;\n\tvalue: string;\n\tonChange: (value: string) => void;\n\tmaxLength: number;\n\tplaceholder?: string;\n\tminHeight?: string;\n\t/** Changing this remounts the editor with fresh content (e.g. agent id). */\n\tresetKey?: string;\n\t'data-test'?: string;\n}\n\n/**\n * A rich (BikEditor-backed) plain-text field — same look/feel/font as the\n * Instructions editor, but WITHOUT mentions. Content is stored as plain text:\n * deserialized via `instructionsToEditorHtml` (no mention items → just escaped\n * paragraphs) and serialized back with `editorDocToInstructions` (no tools →\n * plain text). Used for Guardrails so both Step-3 inputs match visually.\n */\nexport const RichTextField: React.FC<RichTextFieldProps> = ({\n\tlabel,\n\tvalue,\n\tonChange,\n\tmaxLength,\n\tplaceholder,\n\tminHeight = '140px',\n\tresetKey,\n\t...rest\n}) => {\n\tconst editorRef = useRef<BikEditorRef>(null);\n\tconst [count, setCount] = useState(value.length);\n\tconst [focused, setFocused] = useState(false);\n\n\t// Mount-only initial HTML; recomputed when the agent (resetKey) changes.\n\tconst initialHtml = useMemo(\n\t\t() => instructionsToEditorHtml(value),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[resetKey],\n\t);\n\n\treturn (\n\t\t<FieldBlock>\n\t\t\t<FieldLabelRow>\n\t\t\t\t<TitleSmall color={COLORS.content.primary}>{label}</TitleSmall>\n\t\t\t\t<BodyCaption color={COLORS.content.secondary}>\n\t\t\t\t\t{count}/{maxLength}\n\t\t\t\t</BodyCaption>\n\t\t\t</FieldLabelRow>\n\n\t\t\t<AiTextAreaShell\n\t\t\t\tfocused={focused}\n\t\t\t\tminHeight={minHeight}\n\t\t\t\tdata-test={rest['data-test']}\n\t\t\t>\n\t\t\t\t<BikEditor\n\t\t\t\t\tref={editorRef}\n\t\t\t\t\tinitialContent={initialHtml}\n\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\tmaxCharacters={maxLength}\n\t\t\t\t\tminHeight=\"120px\"\n\t\t\t\t\tmaxHeight=\"320px\"\n\t\t\t\t\tstyle={{ border: 'none' }}\n\t\t\t\t\teditorStyle={AGENT_EDITOR_STYLE}\n\t\t\t\t\tonFocus={() => setFocused(true)}\n\t\t\t\t\tonBlur={() => setFocused(false)}\n\t\t\t\t\tonChange={(snapshot) => {\n\t\t\t\t\t\tsetCount(snapshot.characterCount);\n\t\t\t\t\t\tconst doc = editorRef.current?.getJSON() ?? null;\n\t\t\t\t\t\tonChange(editorDocToInstructions(doc, []));\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t</AiTextAreaShell>\n\t\t</FieldBlock>\n\t);\n};\n"],"names":["RichTextField","label","value","onChange","maxLength","placeholder","minHeight","resetKey","rest","editorRef","useRef","count","setCount","useState","focused","setFocused","initialHtml","useMemo","instructionsToEditorHtml","FieldBlock","jsxs","FieldLabelRow","jsx","TitleSmall","COLORS","BodyCaption","AiTextAreaShell","BikEditor","AGENT_EDITOR_STYLE","snapshot","doc","editorDocToInstructions"],"mappings":"+XAkCaA,EAA8C,CAAC,CAC3D,MAAAC,EACA,MAAAC,EACA,SAAAC,EACA,UAAAC,EACA,YAAAC,EACA,UAAAC,EAAY,QACZ,SAAAC,EACA,GAAGC,CACJ,IAAM,CACL,MAAMC,EAAYC,EAAAA,OAAqB,IAAI,EACrC,CAACC,EAAOC,CAAQ,EAAIC,EAAAA,SAASX,EAAM,MAAM,EACzC,CAACY,EAASC,CAAU,EAAIF,EAAAA,SAAS,EAAK,EAGtCG,EAAcC,EAAAA,QACnB,IAAMC,EAAAA,yBAAyBhB,CAAK,EAEpC,CAACK,CAAQ,CAAA,EAGV,cACEY,aAAA,CACA,SAAA,CAAAC,OAACC,EAAAA,cAAA,CACA,SAAA,CAAAC,MAACC,EAAAA,WAAA,CAAW,MAAOC,EAAAA,OAAO,QAAQ,QAAU,SAAAvB,EAAM,EAClDmB,EAAAA,KAACK,EAAAA,YAAA,CAAY,MAAOD,EAAAA,OAAO,QAAQ,UACjC,SAAA,CAAAb,EAAM,IAAEP,CAAA,CAAA,CACV,CAAA,EACD,EAEAkB,EAAAA,IAACI,EAAAA,gBAAA,CACA,QAAAZ,EACA,UAAAR,EACA,YAAWE,EAAK,WAAW,EAE3B,SAAAc,EAAAA,IAACK,EAAAA,UAAA,CACA,IAAKlB,EACL,eAAgBO,EAChB,YAAAX,EACA,cAAeD,EACf,UAAU,QACV,UAAU,QACV,MAAO,CAAE,OAAQ,MAAA,EACjB,YAAawB,EAAAA,mBACb,QAAS,IAAMb,EAAW,EAAI,EAC9B,OAAQ,IAAMA,EAAW,EAAK,EAC9B,SAAWc,GAAa,CACvBjB,EAASiB,EAAS,cAAc,EAChC,MAAMC,EAAMrB,EAAU,SAAS,QAAA,GAAa,KAC5CN,EAAS4B,EAAAA,wBAAwBD,EAAK,CAAA,CAAE,CAAC,CAC1C,CAAA,CAAA,CACD,CAAA,CACD,EACD,CAEF"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),g=require("../../../assets/icons/cross.svg.js"),x=require("../../../assets/icons/plus.svg.js"),R=require("react"),t=require("../../TypographyStyle.js"),n=require("../../../constants/Theme.js"),r=require("../AgentBuilder.styled.js"),O=require("../../dropdown/Dropdown.js"),w=({title:c,helper:i,items:d,addableOptions:l,onAdd:u,onRemove:y,dataTestPrefix:s,emptyText:j})=>{const[a,S]=R.useState(!1);return e.jsxs(r.SideSection,{children:[e.jsxs(r.SideSectionHeader,{children:[e.jsx(t.TitleSmall,{color:n.COLORS.content.primary,children:c}),l.length>0&&e.jsx(r.AddIconButton,{"data-test":`${s}-add`,onClick:()=>S(o=>!o),"aria-label":`Add ${c}`,children:e.jsx(x.default,{width:20,height:20,color:n.COLORS.content.brand})})]}),i&&e.jsx(t.BodyCaption,{color:n.COLORS.content.secondary,children:i}),a&&l.length>0&&e.jsx(O.Dropdown,{"data-test":`${s}-dropdown`,size:"small",width:"100%",isSearchable:!0,placeHolder:`Select ${c.toLowerCase()}`,options:l,onSelect:o=>{const h=(Array.isArray(o)?o[0]:o)?.value;h&&u(h),S(!1)}}),d.length===0&&!a?e.jsx(t.BodyCaption,{color:n.COLORS.content.placeholder,children:j}):d.map(o=>e.jsxs(r.SelectableRow,{"data-test":`${s}-row-${o.id}`,children:[e.jsx(r.RowText,{children:e.jsx(t.BodySecondary,{numberOfLines:1,color:n.COLORS.content.primary,children:o.label})}),e.jsx(r.RowRemoveButton,{onClick:()=>y(o.id),"aria-label":`Remove ${o.label}`,children:e.jsx(g.default,{width:16,height:16,color:n.COLORS.content.secondary})})]},o.id))]})};exports.SelectableListSection=w;
|
|
2
|
-
//# sourceMappingURL=SelectableListSection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SelectableListSection.js","sources":["../../../../../src/components/agent-builder/components/SelectableListSection.tsx"],"sourcesContent":["import CrossIcon from '@src/assets/icons/cross.svg';\nimport PlusIcon from '@src/assets/icons/plus.svg';\nimport React, { useState } from 'react';\nimport { Dropdown } from '@src/components/dropdown';\nimport { SingleOption } from '@src/components/dropdown/type';\nimport {\n\tBodyCaption,\n\tBodySecondary,\n\tTitleSmall,\n} from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport {\n\tAddIconButton,\n\tRowRemoveButton,\n\tRowText,\n\tSelectableRow,\n\tSideSection,\n\tSideSectionHeader,\n} from '../AgentBuilder.styled';\n\nexport interface SelectableItem {\n\tid: string;\n\tlabel: string;\n}\n\ninterface SelectableListSectionProps {\n\ttitle: string;\n\thelper?: string;\n\titems: SelectableItem[];\n\t/** Options not yet selected, available to add. */\n\taddableOptions: SingleOption[];\n\tonAdd: (id: string) => void;\n\tonRemove: (id: string) => void;\n\tdataTestPrefix: string;\n\temptyText: string;\n}\n\nexport const SelectableListSection: React.FC<SelectableListSectionProps> = ({\n\ttitle,\n\thelper,\n\titems,\n\taddableOptions,\n\tonAdd,\n\tonRemove,\n\tdataTestPrefix,\n\temptyText,\n}) => {\n\tconst [adding, setAdding] = useState(false);\n\n\treturn (\n\t\t<SideSection>\n\t\t\t<SideSectionHeader>\n\t\t\t\t<TitleSmall color={COLORS.content.primary}>{title}</TitleSmall>\n\t\t\t\t{addableOptions.length > 0 && (\n\t\t\t\t\t<AddIconButton\n\t\t\t\t\t\tdata-test={`${dataTestPrefix}-add`}\n\t\t\t\t\t\tonClick={() => setAdding((v) => !v)}\n\t\t\t\t\t\taria-label={`Add ${title}`}\n\t\t\t\t\t>\n\t\t\t\t\t\t<PlusIcon width={20} height={20} color={COLORS.content.brand} />\n\t\t\t\t\t</AddIconButton>\n\t\t\t\t)}\n\t\t\t</SideSectionHeader>\n\n\t\t\t{helper && (\n\t\t\t\t<BodyCaption color={COLORS.content.secondary}>{helper}</BodyCaption>\n\t\t\t)}\n\n\t\t\t{adding && addableOptions.length > 0 && (\n\t\t\t\t<Dropdown\n\t\t\t\t\tdata-test={`${dataTestPrefix}-dropdown`}\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\twidth=\"100%\"\n\t\t\t\t\tisSearchable\n\t\t\t\t\tplaceHolder={`Select ${title.toLowerCase()}`}\n\t\t\t\t\toptions={addableOptions}\n\t\t\t\t\tonSelect={(opt) => {\n\t\t\t\t\t\tconst single = Array.isArray(opt) ? opt[0] : opt;\n\t\t\t\t\t\tconst v = (single as SingleOption)?.value;\n\t\t\t\t\t\tif (v) {\n\t\t\t\t\t\t\tonAdd(v);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetAdding(false);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{items.length === 0 && !adding ? (\n\t\t\t\t<BodyCaption color={COLORS.content.placeholder}>\n\t\t\t\t\t{emptyText}\n\t\t\t\t</BodyCaption>\n\t\t\t) : (\n\t\t\t\titems.map((item) => (\n\t\t\t\t\t<SelectableRow\n\t\t\t\t\t\tkey={item.id}\n\t\t\t\t\t\tdata-test={`${dataTestPrefix}-row-${item.id}`}\n\t\t\t\t\t>\n\t\t\t\t\t\t<RowText>\n\t\t\t\t\t\t\t<BodySecondary numberOfLines={1} color={COLORS.content.primary}>\n\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t\t</RowText>\n\t\t\t\t\t\t<RowRemoveButton\n\t\t\t\t\t\t\tonClick={() => onRemove(item.id)}\n\t\t\t\t\t\t\taria-label={`Remove ${item.label}`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<CrossIcon\n\t\t\t\t\t\t\t\twidth={16}\n\t\t\t\t\t\t\t\theight={16}\n\t\t\t\t\t\t\t\tcolor={COLORS.content.secondary}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</RowRemoveButton>\n\t\t\t\t\t</SelectableRow>\n\t\t\t\t))\n\t\t\t)}\n\t\t</SideSection>\n\t);\n};\n"],"names":["SelectableListSection","title","helper","items","addableOptions","onAdd","onRemove","dataTestPrefix","emptyText","adding","setAdding","useState","SideSection","jsxs","SideSectionHeader","jsx","TitleSmall","COLORS","AddIconButton","v","PlusIcon","BodyCaption","Dropdown","opt","item","SelectableRow","RowText","BodySecondary","RowRemoveButton","CrossIcon"],"mappings":"qYAqCaA,EAA8D,CAAC,CAC3E,MAAAC,EACA,OAAAC,EACA,MAAAC,EACA,eAAAC,EACA,MAAAC,EACA,SAAAC,EACA,eAAAC,EACA,UAAAC,CACD,IAAM,CACL,KAAM,CAACC,EAAQC,CAAS,EAAIC,EAAAA,SAAS,EAAK,EAE1C,cACEC,cAAA,CACA,SAAA,CAAAC,OAACC,EAAAA,kBAAA,CACA,SAAA,CAAAC,MAACC,EAAAA,WAAA,CAAW,MAAOC,EAAAA,OAAO,QAAQ,QAAU,SAAAhB,EAAM,EACjDG,EAAe,OAAS,GACxBW,EAAAA,IAACG,EAAAA,cAAA,CACA,YAAW,GAAGX,CAAc,OAC5B,QAAS,IAAMG,EAAWS,GAAM,CAACA,CAAC,EAClC,aAAY,OAAOlB,CAAK,GAExB,SAAAc,EAAAA,IAACK,WAAS,MAAO,GAAI,OAAQ,GAAI,MAAOH,SAAO,QAAQ,KAAA,CAAO,CAAA,CAAA,CAC/D,EAEF,EAECf,GACAa,EAAAA,IAACM,EAAAA,YAAA,CAAY,MAAOJ,SAAO,QAAQ,UAAY,SAAAf,EAAO,EAGtDO,GAAUL,EAAe,OAAS,GAClCW,EAAAA,IAACO,EAAAA,SAAA,CACA,YAAW,GAAGf,CAAc,YAC5B,KAAK,QACL,MAAM,OACN,aAAY,GACZ,YAAa,UAAUN,EAAM,YAAA,CAAa,GAC1C,QAASG,EACT,SAAWmB,GAAQ,CAElB,MAAMJ,GADS,MAAM,QAAQI,CAAG,EAAIA,EAAI,CAAC,EAAIA,IACT,MAChCJ,GACHd,EAAMc,CAAC,EAERT,EAAU,EAAK,CAChB,CAAA,CAAA,EAIDP,EAAM,SAAW,GAAK,CAACM,QACtBY,EAAAA,YAAA,CAAY,MAAOJ,EAAAA,OAAO,QAAQ,YACjC,SAAAT,CAAA,CACF,EAEAL,EAAM,IAAKqB,GACVX,EAAAA,KAACY,EAAAA,cAAA,CAEA,YAAW,GAAGlB,CAAc,QAAQiB,EAAK,EAAE,GAE3C,SAAA,CAAAT,EAAAA,IAACW,EAAAA,QAAA,CACA,SAAAX,EAAAA,IAACY,EAAAA,cAAA,CAAc,cAAe,EAAG,MAAOV,EAAAA,OAAO,QAAQ,QACrD,SAAAO,EAAK,KAAA,CACP,EACD,EACAT,EAAAA,IAACa,EAAAA,gBAAA,CACA,QAAS,IAAMtB,EAASkB,EAAK,EAAE,EAC/B,aAAY,UAAUA,EAAK,KAAK,GAEhC,SAAAT,EAAAA,IAACc,EAAAA,QAAA,CACA,MAAO,GACP,OAAQ,GACR,MAAOZ,EAAAA,OAAO,QAAQ,SAAA,CAAA,CACvB,CAAA,CACD,CAAA,EAjBKO,EAAK,EAAA,CAmBX,CAAA,EAEH,CAEF"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),a=require("../../TypographyStyle.js"),y=require("../../../constants/Theme.js"),i=require("../AgentBuilder.styled.js"),g=require("../constants/steps.js"),x=require("../context/AgentBuilderContext.js"),m=()=>{const{activeStep:c,activeIndex:l,validation:s,goToStep:d,disableStepNavigation:n}=x.useAgentBuilderContext();return t.jsx(i.RailList,{children:g.STEP_DEFINITIONS.map(e=>{const o=e.key===c,r=e.index-1<l&&s[e.key],u=o?"active":r?"complete":"inactive",S=o?a.TitleSmall:a.BodySecondary;return t.jsxs(i.RailItem,{"data-test":`agent-step-${e.key}`,disabled:n,onClick:n?void 0:()=>d(e.key),children:[t.jsx(i.StepBadge,{state:u,children:r?"✓":e.index}),t.jsx(S,{color:y.COLORS.content.primary,children:e.title})]},e.key)})})};exports.StepRail=m;
|
|
2
|
-
//# sourceMappingURL=StepRail.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StepRail.js","sources":["../../../../../src/components/agent-builder/components/StepRail.tsx"],"sourcesContent":["import React from 'react';\nimport { BodySecondary, TitleSmall } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport { RailItem, RailList, StepBadge } from '../AgentBuilder.styled';\nimport { STEP_DEFINITIONS } from '../constants/steps';\nimport { useAgentBuilderContext } from '../context/AgentBuilderContext';\n\nexport const StepRail: React.FC = () => {\n\tconst {\n\t\tactiveStep,\n\t\tactiveIndex,\n\t\tvalidation,\n\t\tgoToStep,\n\t\tdisableStepNavigation,\n\t} = useAgentBuilderContext();\n\n\treturn (\n\t\t<RailList>\n\t\t\t{STEP_DEFINITIONS.map((step) => {\n\t\t\t\tconst isActive = step.key === activeStep;\n\t\t\t\tconst isComplete = step.index - 1 < activeIndex && validation[step.key];\n\t\t\t\tconst badgeState = isActive\n\t\t\t\t\t? 'active'\n\t\t\t\t\t: isComplete\n\t\t\t\t\t? 'complete'\n\t\t\t\t\t: 'inactive';\n\n\t\t\t\tconst Label = isActive ? TitleSmall : BodySecondary;\n\n\t\t\t\treturn (\n\t\t\t\t\t<RailItem\n\t\t\t\t\t\tkey={step.key}\n\t\t\t\t\t\tdata-test={`agent-step-${step.key}`}\n\t\t\t\t\t\tdisabled={disableStepNavigation}\n\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\tdisableStepNavigation ? undefined : () => goToStep(step.key)\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<StepBadge state={badgeState}>\n\t\t\t\t\t\t\t{isComplete ? '✓' : step.index}\n\t\t\t\t\t\t</StepBadge>\n\t\t\t\t\t\t<Label color={COLORS.content.primary}>{step.title}</Label>\n\t\t\t\t\t</RailItem>\n\t\t\t\t);\n\t\t\t})}\n\t\t</RailList>\n\t);\n};\n"],"names":["StepRail","activeStep","activeIndex","validation","goToStep","disableStepNavigation","useAgentBuilderContext","jsx","RailList","STEP_DEFINITIONS","step","isActive","isComplete","badgeState","Label","TitleSmall","BodySecondary","jsxs","RailItem","StepBadge","COLORS"],"mappings":"6TAOaA,EAAqB,IAAM,CACvC,KAAM,CACL,WAAAC,EACA,YAAAC,EACA,WAAAC,EACA,SAAAC,EACA,sBAAAC,CAAA,EACGC,yBAAA,EAEJ,OACCC,EAAAA,IAACC,EAAAA,SAAA,CACC,SAAAC,EAAAA,iBAAiB,IAAKC,GAAS,CAC/B,MAAMC,EAAWD,EAAK,MAAQT,EACxBW,EAAaF,EAAK,MAAQ,EAAIR,GAAeC,EAAWO,EAAK,GAAG,EAChEG,EAAaF,EAChB,SACAC,EACA,WACA,WAEGE,EAAQH,EAAWI,EAAAA,WAAaC,EAAAA,cAEtC,OACCC,EAAAA,KAACC,EAAAA,SAAA,CAEA,YAAW,cAAcR,EAAK,GAAG,GACjC,SAAUL,EACV,QACCA,EAAwB,OAAY,IAAMD,EAASM,EAAK,GAAG,EAG5D,SAAA,CAAAH,MAACY,EAAAA,WAAU,MAAON,EAChB,SAAAD,EAAa,IAAMF,EAAK,MAC1B,QACCI,EAAA,CAAM,MAAOM,EAAAA,OAAO,QAAQ,QAAU,WAAK,KAAA,CAAM,CAAA,CAAA,EAV7CV,EAAK,GAAA,CAab,CAAC,CAAA,CACF,CAEF"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("../../TypographyStyle.js"),o=require("../../../constants/Theme.js"),c=require("../AgentBuilder.styled.js"),i=({title:n,helper:r})=>e.jsxs(c.SectionHeaderWrap,{children:[e.jsx(t.TitleRegular,{color:o.COLORS.content.primary,children:n}),r&&e.jsx(t.BodySecondary,{color:o.COLORS.content.secondary,children:r})]});exports.StepSectionHeader=i;
|
|
2
|
-
//# sourceMappingURL=StepSectionHeader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StepSectionHeader.js","sources":["../../../../../src/components/agent-builder/components/StepSectionHeader.tsx"],"sourcesContent":["import React from 'react';\nimport { BodySecondary, TitleRegular } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport { SectionHeaderWrap } from '../AgentBuilder.styled';\n\ninterface StepSectionHeaderProps {\n\ttitle: string;\n\thelper?: string;\n}\n\nexport const StepSectionHeader: React.FC<StepSectionHeaderProps> = ({\n\ttitle,\n\thelper,\n}) => (\n\t<SectionHeaderWrap>\n\t\t<TitleRegular color={COLORS.content.primary}>{title}</TitleRegular>\n\t\t{helper && (\n\t\t\t<BodySecondary color={COLORS.content.secondary}>{helper}</BodySecondary>\n\t\t)}\n\t</SectionHeaderWrap>\n);\n"],"names":["StepSectionHeader","title","helper","SectionHeaderWrap","jsx","TitleRegular","COLORS","BodySecondary"],"mappings":"2OAUaA,EAAsD,CAAC,CACnE,MAAAC,EACA,OAAAC,CACD,WACEC,oBAAA,CACA,SAAA,CAAAC,MAACC,EAAAA,aAAA,CAAa,MAAOC,EAAAA,OAAO,QAAQ,QAAU,SAAAL,EAAM,EACnDC,GACAE,EAAAA,IAACG,EAAAA,cAAA,CAAc,MAAOD,EAAAA,OAAO,QAAQ,UAAY,SAAAJ,CAAA,CAAO,CAAA,CAAA,CAE1D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"charLimits.js","sources":["../../../../../src/components/agent-builder/constants/charLimits.ts"],"sourcesContent":["/**\n * Character limits for AgentBuilder fields.\n *\n * `name` and `description` are taken directly from the Figma spec. The rest are\n * sized to match the 0/1000 counters shown on the response/handover steps; adjust\n * here if product changes them.\n */\nexport const AGENT_CHAR_LIMITS = {\n\t/** Step 1 — Agent name. */\n\tname: 60,\n\t/** Step 1 — \"What it does\". */\n\tdescription: 1000,\n\t/** Step 2 — custom intent free text. */\n\tcustomIntent: 1000,\n\t/** Step 3 — Instructions (BikEditor `maxCharacters`). */\n\tinstructions: 1000,\n\t/** Step 3 — Guardrails. */\n\tguardrail: 1000,\n\t/** Step 4 — \"Handover when\". */\n\thandoverWhen: 1000,\n} as const;\n"],"names":["AGENT_CHAR_LIMITS"],"mappings":"gFAOO,MAAMA,EAAoB,CAEhC,KAAM,GAEN,YAAa,IAEb,aAAc,IAEd,aAAc,IAEd,UAAW,IAEX,aAAc,GACf"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"editorStyle.js","sources":["../../../../../src/components/agent-builder/constants/editorStyle.ts"],"sourcesContent":["import type React from 'react';\n\n/**\n * Inline ProseMirror style applied to the agent-builder BikEditors so the rich\n * inputs (Instructions, Guardrails) render in the SAME font/metrics as the plain\n * `AiTextAreaInput` textarea (Inter 14/20). `.ProseMirror` itself sets no\n * font-family, so without this it inherits the host default and looks different.\n */\nexport const AGENT_EDITOR_STYLE: React.CSSProperties = {\n\tpadding: 0,\n\tfontFamily: 'Inter',\n\tfontSize: '14px',\n\tlineHeight: '20px',\n};\n"],"names":["AGENT_EDITOR_STYLE"],"mappings":"gFAQO,MAAMA,EAA0C,CACtD,QAAS,EACT,WAAY,QACZ,SAAU,OACV,WAAY,MACb"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=[{key:"about",index:1,title:"About this agent",helper:"Give it a name and one clear job. One agent → one job, that’s what keeps answers sharp."},{key:"trigger",index:2,title:"When it steps in",helper:"Choose how Manifest knows when to route a conversation to this agent."},{key:"response",index:3,title:"How it responds",helper:"Write what this agent should do. Type @ to reference a tool, add a condition, or hand off to a sub-agent."},{key:"handover",index:4,title:"Handover rules",helper:"Define when this agent passes the conversation to a human, and how."}],n=t.map(e=>e.key),o=e=>n.indexOf(e);exports.STEP_DEFINITIONS=t;exports.STEP_KEYS=n;exports.getStepIndex=o;
|
|
2
|
-
//# sourceMappingURL=steps.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"steps.js","sources":["../../../../../src/components/agent-builder/constants/steps.ts"],"sourcesContent":["import { StepKey } from '../AgentBuilder.model';\n\nexport interface StepDefinition {\n\tkey: StepKey;\n\t/** 1-based number shown in the rail. */\n\tindex: number;\n\t/** Rail label + content section title. */\n\ttitle: string;\n\t/** Helper text under the section title. */\n\thelper: string;\n}\n\nexport const STEP_DEFINITIONS: StepDefinition[] = [\n\t{\n\t\tkey: 'about',\n\t\tindex: 1,\n\t\ttitle: 'About this agent',\n\t\thelper:\n\t\t\t'Give it a name and one clear job. One agent → one job, that’s what keeps answers sharp.',\n\t},\n\t{\n\t\tkey: 'trigger',\n\t\tindex: 2,\n\t\ttitle: 'When it steps in',\n\t\thelper:\n\t\t\t'Choose how Manifest knows when to route a conversation to this agent.',\n\t},\n\t{\n\t\tkey: 'response',\n\t\tindex: 3,\n\t\ttitle: 'How it responds',\n\t\thelper:\n\t\t\t'Write what this agent should do. Type @ to reference a tool, add a condition, or hand off to a sub-agent.',\n\t},\n\t{\n\t\tkey: 'handover',\n\t\tindex: 4,\n\t\ttitle: 'Handover rules',\n\t\thelper:\n\t\t\t'Define when this agent passes the conversation to a human, and how.',\n\t},\n];\n\nexport const STEP_KEYS: StepKey[] = STEP_DEFINITIONS.map((s) => s.key);\n\nexport const getStepIndex = (key: StepKey): number => STEP_KEYS.indexOf(key);\n"],"names":["STEP_DEFINITIONS","STEP_KEYS","s","getStepIndex","key"],"mappings":"gFAYO,MAAMA,EAAqC,CACjD,CACC,IAAK,QACL,MAAO,EACP,MAAO,mBACP,OACC,yFAAA,EAEF,CACC,IAAK,UACL,MAAO,EACP,MAAO,mBACP,OACC,uEAAA,EAEF,CACC,IAAK,WACL,MAAO,EACP,MAAO,kBACP,OACC,2GAAA,EAEF,CACC,IAAK,WACL,MAAO,EACP,MAAO,iBACP,OACC,qEAAA,CAEH,EAEaC,EAAuBD,EAAiB,IAAKE,GAAMA,EAAE,GAAG,EAExDC,EAAgBC,GAAyBH,EAAU,QAAQG,CAAG"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Y=require("react/jsx-runtime"),n=require("react"),B=require("../constants/charLimits.js"),u=require("../constants/steps.js"),w=t=>t&&typeof t=="object"&&"default"in t?t:{default:t},V=w(n),K=V.default.createContext(null),F=()=>{const t=n.useContext(K);if(!t)throw new Error("useAgentBuilderContext must be used within an AgentBuilderProvider");return t},G=t=>{const s=t.trigger.mode==="custom_intent"?(t.trigger.customIntent??"").trim().length>0:t.trigger.intents.length>0;return{about:t.name.trim().length>0&&t.name.length<=B.AGENT_CHAR_LIMITS.name&&t.description.length<=B.AGENT_CHAR_LIMITS.description,trigger:s,response:t.instructions.trim().length>0,handover:!0}},H=({value:t,onChange:s,activeStep:l,onStepChange:S,availableTools:g,availableSubAgents:x,availableIntents:f,availableModels:_,validation:p,applicationType:a,disableStepNavigation:A=!0,children:M})=>{const[T,j]=n.useState("about"),d=l??T,r=u.getStepIndex(d),[E,y]=n.useState(0),i=n.useCallback(e=>{l===void 0&&j(e),S?.(e)},[l,S]),P=n.useCallback(()=>{const e=u.STEP_KEYS[Math.min(r+1,u.STEP_KEYS.length-1)];i(e)},[r,i]),h=n.useCallback(()=>{const e=u.STEP_KEYS[Math.max(r-1,0)];i(e)},[r,i]),C=n.useCallback(e=>s(e),[s]),I=n.useCallback((e,c)=>s({[e]:c}),[s]),R=n.useCallback((e,c)=>{const b=e==="tool"?(()=>{const o=g.find(L=>L.tool_id===c);return o?`{{tool:${o.function_key}}}`:null})():`{{subagent:${c}}}`,k=b?t.instructions.split(b).join(""):t.instructions;s(e==="tool"?{tools:t.tools.filter(o=>o!==c),instructions:k}:{subagents:t.subagents.filter(o=>o!==c),instructions:k}),y(o=>o+1)},[g,t,s]),m=n.useMemo(()=>({...G(t),...p}),[t,p]),q=n.useMemo(()=>({value:t,patch:C,updateField:I,removeReference:R,instructionsResetKey:E,activeStep:d,activeIndex:r,goToStep:i,goNext:P,goPrev:h,isFirstStep:r===0,isLastStep:r===u.STEP_KEYS.length-1,validation:m,isActiveStepValid:m[d],availableTools:g,availableSubAgents:x,availableIntents:f,availableModels:_,applicationType:a,disableStepNavigation:A}),[t,C,I,R,E,d,r,i,P,h,m,g,x,f,_,a,A]);return Y.jsx(K.Provider,{value:q,children:M})};exports.AgentBuilderProvider=H;exports.useAgentBuilderContext=F;
|
|
2
|
-
//# sourceMappingURL=AgentBuilderContext.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AgentBuilderContext.js","sources":["../../../../../src/components/agent-builder/context/AgentBuilderContext.tsx"],"sourcesContent":["import type { ApplicationType } from '@bikdotai/bik-models/growth';\nimport React, { useCallback, useContext, useMemo, useState } from 'react';\nimport {\n\tAgentTool,\n\tAgentValue,\n\tIntentOption,\n\tModelOption,\n\tStepKey,\n\tStepValidation,\n\tSubAgentRef,\n} from '../AgentBuilder.model';\nimport { AGENT_CHAR_LIMITS } from '../constants/charLimits';\nimport { getStepIndex, STEP_KEYS } from '../constants/steps';\n\nexport interface AgentBuilderContextShape {\n\t/** Controlled value relayed from props. */\n\tvalue: AgentValue;\n\t/** Patch one or more fields. */\n\tpatch: (partial: Partial<AgentValue>) => void;\n\t/** Patch a single field. */\n\tupdateField: <K extends keyof AgentValue>(key: K, val: AgentValue[K]) => void;\n\t/**\n\t * Remove a tool / sub-agent everywhere: drops it from the list AND strips ALL\n\t * its `{{tool:KEY}}` / `{{subagent:ID}}` tokens from the instructions, then\n\t * bumps `instructionsResetKey` so the editor remounts without those chips.\n\t */\n\tremoveReference: (kind: 'tool' | 'subagent', id: string) => void;\n\t/** Remount signal for the instructions editor after an external edit. */\n\tinstructionsResetKey: number;\n\n\t// Navigation\n\tactiveStep: StepKey;\n\tactiveIndex: number;\n\tgoToStep: (step: StepKey) => void;\n\tgoNext: () => void;\n\tgoPrev: () => void;\n\tisFirstStep: boolean;\n\tisLastStep: boolean;\n\n\t// Validation\n\tvalidation: StepValidation;\n\tisActiveStepValid: boolean;\n\n\t// Reference data\n\tavailableTools: AgentTool[];\n\tavailableSubAgents: SubAgentRef[];\n\tavailableIntents: IntentOption[];\n\tavailableModels: ModelOption[];\n\t/** Host application context (e.g. MANIFEST) — drives tool-chip labelling. */\n\tapplicationType?: ApplicationType;\n\t/** When true, step-rail items are not clickable (Back / Next only). */\n\tdisableStepNavigation: boolean;\n}\n\nconst AgentBuilderContext =\n\tReact.createContext<AgentBuilderContextShape | null>(null);\n\nexport const useAgentBuilderContext = (): AgentBuilderContextShape => {\n\tconst ctx = useContext(AgentBuilderContext);\n\tif (!ctx) {\n\t\tthrow new Error(\n\t\t\t'useAgentBuilderContext must be used within an AgentBuilderProvider',\n\t\t);\n\t}\n\treturn ctx;\n};\n\n/** Validity derived purely from the current value (no effects). */\nconst deriveValidation = (value: AgentValue): StepValidation => {\n\tconst triggerValid =\n\t\tvalue.trigger.mode === 'custom_intent'\n\t\t\t? (value.trigger.customIntent ?? '').trim().length > 0\n\t\t\t: value.trigger.intents.length > 0;\n\n\treturn {\n\t\tabout:\n\t\t\tvalue.name.trim().length > 0 &&\n\t\t\tvalue.name.length <= AGENT_CHAR_LIMITS.name &&\n\t\t\tvalue.description.length <= AGENT_CHAR_LIMITS.description,\n\t\ttrigger: triggerValid,\n\t\tresponse: value.instructions.trim().length > 0,\n\t\t// Optional until specced further — never blocks go-live.\n\t\thandover: true,\n\t};\n};\n\ninterface ProviderProps {\n\tvalue: AgentValue;\n\tonChange: (patch: Partial<AgentValue>) => void;\n\tactiveStep?: StepKey;\n\tonStepChange?: (step: StepKey) => void;\n\tavailableTools: AgentTool[];\n\tavailableSubAgents: SubAgentRef[];\n\tavailableIntents: IntentOption[];\n\tavailableModels: ModelOption[];\n\tvalidation?: Partial<StepValidation>;\n\tapplicationType?: ApplicationType;\n\tdisableStepNavigation?: boolean;\n\tchildren: React.ReactNode;\n}\n\nexport const AgentBuilderProvider: React.FC<ProviderProps> = ({\n\tvalue,\n\tonChange,\n\tactiveStep: controlledStep,\n\tonStepChange,\n\tavailableTools,\n\tavailableSubAgents,\n\tavailableIntents,\n\tavailableModels,\n\tvalidation: validationOverride,\n\tapplicationType,\n\tdisableStepNavigation = true,\n\tchildren,\n}) => {\n\tconst [internalStep, setInternalStep] = useState<StepKey>('about');\n\tconst activeStep = controlledStep ?? internalStep;\n\tconst activeIndex = getStepIndex(activeStep);\n\n\t// Bumped when instructions are edited from OUTSIDE the editor (e.g. removing\n\t// a tool from the side list), forcing the instructions editor to remount.\n\tconst [instructionsResetKey, setInstructionsResetKey] = useState(0);\n\n\tconst goToStep = useCallback(\n\t\t(step: StepKey) => {\n\t\t\tif (controlledStep === undefined) {\n\t\t\t\tsetInternalStep(step);\n\t\t\t}\n\t\t\tonStepChange?.(step);\n\t\t},\n\t\t[controlledStep, onStepChange],\n\t);\n\n\tconst goNext = useCallback(() => {\n\t\tconst next = STEP_KEYS[Math.min(activeIndex + 1, STEP_KEYS.length - 1)];\n\t\tgoToStep(next);\n\t}, [activeIndex, goToStep]);\n\n\tconst goPrev = useCallback(() => {\n\t\tconst prev = STEP_KEYS[Math.max(activeIndex - 1, 0)];\n\t\tgoToStep(prev);\n\t}, [activeIndex, goToStep]);\n\n\tconst patch = useCallback(\n\t\t(partial: Partial<AgentValue>) => onChange(partial),\n\t\t[onChange],\n\t);\n\n\tconst updateField = useCallback(\n\t\t<K extends keyof AgentValue>(key: K, val: AgentValue[K]) =>\n\t\t\tonChange({ [key]: val } as Partial<AgentValue>),\n\t\t[onChange],\n\t);\n\n\tconst removeReference = useCallback(\n\t\t(kind: 'tool' | 'subagent', id: string) => {\n\t\t\tconst token =\n\t\t\t\tkind === 'tool'\n\t\t\t\t\t? (() => {\n\t\t\t\t\t\t\tconst tool = availableTools.find((t) => t.tool_id === id);\n\t\t\t\t\t\t\treturn tool ? `{{tool:${tool.function_key}}}` : null;\n\t\t\t\t\t })()\n\t\t\t\t\t: `{{subagent:${id}}}`;\n\t\t\tconst instructions = token\n\t\t\t\t? value.instructions.split(token).join('')\n\t\t\t\t: value.instructions;\n\t\t\tonChange(\n\t\t\t\tkind === 'tool'\n\t\t\t\t\t? { tools: value.tools.filter((t) => t !== id), instructions }\n\t\t\t\t\t: {\n\t\t\t\t\t\t\tsubagents: value.subagents.filter((s) => s !== id),\n\t\t\t\t\t\t\tinstructions,\n\t\t\t\t\t },\n\t\t\t);\n\t\t\tsetInstructionsResetKey((k) => k + 1);\n\t\t},\n\t\t[availableTools, value, onChange],\n\t);\n\n\tconst validation: StepValidation = useMemo(\n\t\t() => ({ ...deriveValidation(value), ...validationOverride }),\n\t\t[value, validationOverride],\n\t);\n\n\tconst ctx = useMemo<AgentBuilderContextShape>(\n\t\t() => ({\n\t\t\tvalue,\n\t\t\tpatch,\n\t\t\tupdateField,\n\t\t\tremoveReference,\n\t\t\tinstructionsResetKey,\n\t\t\tactiveStep,\n\t\t\tactiveIndex,\n\t\t\tgoToStep,\n\t\t\tgoNext,\n\t\t\tgoPrev,\n\t\t\tisFirstStep: activeIndex === 0,\n\t\t\tisLastStep: activeIndex === STEP_KEYS.length - 1,\n\t\t\tvalidation,\n\t\t\tisActiveStepValid: validation[activeStep],\n\t\t\tavailableTools,\n\t\t\tavailableSubAgents,\n\t\t\tavailableIntents,\n\t\t\tavailableModels,\n\t\t\tapplicationType,\n\t\t\tdisableStepNavigation,\n\t\t}),\n\t\t[\n\t\t\tvalue,\n\t\t\tpatch,\n\t\t\tupdateField,\n\t\t\tremoveReference,\n\t\t\tinstructionsResetKey,\n\t\t\tactiveStep,\n\t\t\tactiveIndex,\n\t\t\tgoToStep,\n\t\t\tgoNext,\n\t\t\tgoPrev,\n\t\t\tvalidation,\n\t\t\tavailableTools,\n\t\t\tavailableSubAgents,\n\t\t\tavailableIntents,\n\t\t\tavailableModels,\n\t\t\tapplicationType,\n\t\t\tdisableStepNavigation,\n\t\t],\n\t);\n\n\treturn (\n\t\t<AgentBuilderContext.Provider value={ctx}>\n\t\t\t{children}\n\t\t</AgentBuilderContext.Provider>\n\t);\n};\n"],"names":["AgentBuilderContext","React","useAgentBuilderContext","ctx","useContext","deriveValidation","value","triggerValid","AGENT_CHAR_LIMITS","AgentBuilderProvider","onChange","controlledStep","onStepChange","availableTools","availableSubAgents","availableIntents","availableModels","validationOverride","applicationType","disableStepNavigation","children","internalStep","setInternalStep","useState","activeStep","activeIndex","getStepIndex","instructionsResetKey","setInstructionsResetKey","goToStep","useCallback","step","goNext","next","STEP_KEYS","goPrev","prev","patch","partial","updateField","key","val","removeReference","kind","id","token","tool","t","instructions","s","k","validation","useMemo"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react"),o=(e,t)=>{switch(t.type){case"patch":return{...e,...t.patch};case"set":return t.value;default:return e}},p=e=>{const t=s.useRef(e),[r,u]=s.useReducer(o,e),a=s.useCallback(c=>u({type:"patch",patch:c}),[]),n=s.useCallback(c=>u({type:"set",value:c}),[]),l=s.useCallback(()=>u({type:"set",value:t.current}),[]);return{value:r,onChange:a,setValue:n,reset:l}};exports.useAgentDraft=p;
|
|
2
|
-
//# sourceMappingURL=useAgentDraft.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useAgentDraft.js","sources":["../../../../../src/components/agent-builder/hooks/useAgentDraft.ts"],"sourcesContent":["import { useCallback, useReducer, useRef } from 'react';\nimport { AgentValue } from '../AgentBuilder.model';\n\ntype DraftAction =\n\t| { type: 'patch'; patch: Partial<AgentValue> }\n\t| { type: 'set'; value: AgentValue };\n\nconst reducer = (state: AgentValue, action: DraftAction): AgentValue => {\n\tswitch (action.type) {\n\t\tcase 'patch':\n\t\t\treturn { ...state, ...action.patch };\n\t\tcase 'set':\n\t\t\treturn action.value;\n\t\tdefault:\n\t\t\treturn state;\n\t}\n};\n\nexport interface AgentDraft {\n\t/** Current draft value — pass straight to `<AgentBuilder value={...} />`. */\n\tvalue: AgentValue;\n\t/** Merge a partial — pass straight to `<AgentBuilder onChange={...} />`. */\n\tonChange: (patch: Partial<AgentValue>) => void;\n\t/** Replace the whole value (e.g. after an async edit-mode load). */\n\tsetValue: (value: AgentValue) => void;\n\t/** Reset back to the initial value this hook was created with. */\n\treset: () => void;\n}\n\n/**\n * `useReducer`-based state helper for driving a controlled `<AgentBuilder />` from\n * the consumer (e.g. merchantAdminReact) without hand-writing the patch/merge logic.\n *\n * The consumer remains the single source of truth — this just packages the reducer.\n * For edit mode where the agent loads asynchronously, either key the host component\n * on the agent id, or call `setValue` once the data arrives.\n *\n * @example\n * const { value, onChange } = useAgentDraft(mapDocToAgentValue(doc));\n * <AgentBuilder value={value} onChange={onChange} onSaveDraft={() => save(value)} ... />\n */\nexport const useAgentDraft = (initial: AgentValue): AgentDraft => {\n\tconst initialRef = useRef(initial);\n\tconst [value, dispatch] = useReducer(reducer, initial);\n\n\tconst onChange = useCallback(\n\t\t(patch: Partial<AgentValue>) => dispatch({ type: 'patch', patch }),\n\t\t[],\n\t);\n\tconst setValue = useCallback(\n\t\t(next: AgentValue) => dispatch({ type: 'set', value: next }),\n\t\t[],\n\t);\n\tconst reset = useCallback(\n\t\t() => dispatch({ type: 'set', value: initialRef.current }),\n\t\t[],\n\t);\n\n\treturn { value, onChange, setValue, reset };\n};\n"],"names":["reducer","state","action","useAgentDraft","initial","initialRef","useRef","value","dispatch","useReducer","onChange","useCallback","patch","setValue","next","reset"],"mappings":"yGAOMA,EAAU,CAACC,EAAmBC,IAAoC,CACvE,OAAQA,EAAO,KAAA,CACd,IAAK,QACJ,MAAO,CAAE,GAAGD,EAAO,GAAGC,EAAO,KAAA,EAC9B,IAAK,MACJ,OAAOA,EAAO,MACf,QACC,OAAOD,CAAA,CAEV,EAyBaE,EAAiBC,GAAoC,CACjE,MAAMC,EAAaC,EAAAA,OAAOF,CAAO,EAC3B,CAACG,EAAOC,CAAQ,EAAIC,EAAAA,WAAWT,EAASI,CAAO,EAE/CM,EAAWC,EAAAA,YACfC,GAA+BJ,EAAS,CAAE,KAAM,QAAS,MAAAI,EAAO,EACjE,CAAA,CAAC,EAEIC,EAAWF,EAAAA,YACfG,GAAqBN,EAAS,CAAE,KAAM,MAAO,MAAOM,EAAM,EAC3D,CAAA,CAAC,EAEIC,EAAQJ,EAAAA,YACb,IAAMH,EAAS,CAAE,KAAM,MAAO,MAAOH,EAAW,QAAS,EACzD,CAAA,CAAC,EAGF,MAAO,CAAE,MAAAE,EAAO,SAAAG,EAAU,SAAAG,EAAU,MAAAE,CAAA,CACrC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),o=require("../components/AiTextArea.js"),s=require("../components/StepSectionHeader.js"),a=require("../constants/charLimits.js"),l=require("../constants/steps.js"),c=require("../context/AgentBuilderContext.js"),u=require("../../input/Input.js"),r=l.STEP_DEFINITIONS[0],d=()=>{const{value:n,updateField:i}=c.useAgentBuilderContext();return e.jsxs("div",{className:"bik-agent-step bik-agent-step--about",children:[e.jsx(s.StepSectionHeader,{title:r.title,helper:r.helper}),e.jsx("div",{style:{marginBottom:20},children:e.jsx(u.Input,{"data-test":"agent-name",labelText:"Agent name",labelTextBold:!0,placeholder:"Enter agent name",value:n.name,maxCharLimit:a.AGENT_CHAR_LIMITS.name,maxCharLimitPosition:"TOP",maxCharStyle:{fontSize:12,lineHeight:"16px"},onChangeText:t=>i("name",t)})}),e.jsx(o.AiTextArea,{"data-test":"agent-description",label:"What it does",value:n.description,onChange:t=>i("description",t),maxLength:a.AGENT_CHAR_LIMITS.description,placeholder:"Enter description",minHeight:"200px"})]})};exports.Step1About=d;
|
|
2
|
-
//# sourceMappingURL=Step1About.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Step1About.js","sources":["../../../../../src/components/agent-builder/steps/Step1About.tsx"],"sourcesContent":["import React from 'react';\nimport { Input } from '@src/components/input';\nimport { AiTextArea } from '../components/AiTextArea';\nimport { StepSectionHeader } from '../components/StepSectionHeader';\nimport { AGENT_CHAR_LIMITS } from '../constants/charLimits';\nimport { STEP_DEFINITIONS } from '../constants/steps';\nimport { useAgentBuilderContext } from '../context/AgentBuilderContext';\n\nconst STEP = STEP_DEFINITIONS[0];\n\nexport const Step1About: React.FC = () => {\n\tconst { value, updateField } = useAgentBuilderContext();\n\n\treturn (\n\t\t<div className=\"bik-agent-step bik-agent-step--about\">\n\t\t\t<StepSectionHeader title={STEP.title} helper={STEP.helper} />\n\n\t\t\t<div style={{ marginBottom: 20 }}>\n\t\t\t\t<Input\n\t\t\t\t\tdata-test=\"agent-name\"\n\t\t\t\t\tlabelText=\"Agent name\"\n\t\t\t\t\tlabelTextBold\n\t\t\t\t\tplaceholder=\"Enter agent name\"\n\t\t\t\t\tvalue={value.name}\n\t\t\t\t\tmaxCharLimit={AGENT_CHAR_LIMITS.name}\n\t\t\t\t\tmaxCharLimitPosition=\"TOP\"\n\t\t\t\t\tmaxCharStyle={{ fontSize: 12, lineHeight: '16px' }}\n\t\t\t\t\tonChangeText={(text) => updateField('name', text)}\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t<AiTextArea\n\t\t\t\tdata-test=\"agent-description\"\n\t\t\t\tlabel=\"What it does\"\n\t\t\t\tvalue={value.description}\n\t\t\t\tonChange={(text) => updateField('description', text)}\n\t\t\t\tmaxLength={AGENT_CHAR_LIMITS.description}\n\t\t\t\tplaceholder=\"Enter description\"\n\t\t\t\tminHeight=\"200px\"\n\t\t\t/>\n\t\t</div>\n\t);\n};\n"],"names":["STEP","STEP_DEFINITIONS","Step1About","value","updateField","useAgentBuilderContext","jsxs","jsx","StepSectionHeader","Input","AGENT_CHAR_LIMITS","text","AiTextArea"],"mappings":"0WAQMA,EAAOC,EAAAA,iBAAiB,CAAC,EAElBC,EAAuB,IAAM,CACzC,KAAM,CAAE,MAAAC,EAAO,YAAAC,CAAA,EAAgBC,yBAAA,EAE/B,OACCC,EAAAA,KAAC,MAAA,CAAI,UAAU,uCACd,SAAA,CAAAC,MAACC,EAAAA,mBAAkB,MAAOR,EAAK,MAAO,OAAQA,EAAK,OAAQ,QAE1D,MAAA,CAAI,MAAO,CAAE,aAAc,IAC3B,SAAAO,EAAAA,IAACE,EAAAA,MAAA,CACA,YAAU,aACV,UAAU,aACV,cAAa,GACb,YAAY,mBACZ,MAAON,EAAM,KACb,aAAcO,EAAAA,kBAAkB,KAChC,qBAAqB,MACrB,aAAc,CAAE,SAAU,GAAI,WAAY,MAAA,EAC1C,aAAeC,GAASP,EAAY,OAAQO,CAAI,CAAA,CAAA,EAElD,EAEAJ,EAAAA,IAACK,EAAAA,WAAA,CACA,YAAU,oBACV,MAAM,eACN,MAAOT,EAAM,YACb,SAAWQ,GAASP,EAAY,cAAeO,CAAI,EACnD,UAAWD,EAAAA,kBAAkB,YAC7B,YAAY,oBACZ,UAAU,OAAA,CAAA,CACX,EACD,CAEF"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),y=require("../../../assets/icons/cross.svg.js"),j=require("../../../assets/icons/plus.svg.js"),O=require("react"),p=require("../../radioButton/RadioButton.js"),s=require("../../TypographyStyle.js"),o=require("../../../constants/Theme.js"),i=require("../AgentBuilder.styled.js"),R=require("../components/AiTextArea.js"),v=require("../components/StepSectionHeader.js"),I=require("../constants/charLimits.js"),T=require("../constants/steps.js"),b=require("../context/AgentBuilderContext.js"),A=require("../../dropdown/Dropdown.js"),_=r=>r&&typeof r=="object"&&"default"in r?r:{default:r},L=_(O),C=T.STEP_DEFINITIONS[1],q=()=>{const{value:r,patch:a,availableIntents:u}=b.useAgentBuilderContext(),{trigger:n}=r,[S,h]=L.default.useState(!1),c=e=>a({trigger:{...n,mode:e}}),x=e=>{n.intents.includes(e)||a({trigger:{...n,intents:[...n.intents,e]}}),h(!1)},f=e=>a({trigger:{...n,intents:n.intents.filter(l=>l!==e)}}),m=e=>u.find(l=>l.value===e)?.label??e,d=u.filter(e=>!n.intents.includes(e.value)).map(e=>({label:e.label,value:e.value}));return t.jsxs("div",{children:[t.jsx(v.StepSectionHeader,{title:C.title,helper:C.helper}),t.jsxs(i.CardRow,{children:[t.jsxs(i.RadioCard,{"data-test":"trigger-mode-manifest",selected:n.mode==="manifest_intent",onClick:()=>c("manifest_intent"),children:[t.jsx(p.RadioButton,{isActive:n.mode==="manifest_intent",onValueChange:()=>c("manifest_intent"),skipSelectingOff:!0,activeColor:o.COLORS.content.brand}),t.jsxs(i.RadioCardText,{children:[t.jsx(s.TitleSmall,{color:o.COLORS.content.primary,children:"Manifest intent"}),t.jsx(s.BodyCaption,{color:o.COLORS.content.secondary,children:"Manifest's AI classifier routes conversations automatically — no keywords needed."})]})]}),t.jsxs(i.RadioCard,{"data-test":"trigger-mode-custom",selected:n.mode==="custom_intent",onClick:()=>c("custom_intent"),children:[t.jsx(p.RadioButton,{isActive:n.mode==="custom_intent",onValueChange:()=>c("custom_intent"),skipSelectingOff:!0,activeColor:o.COLORS.content.brand}),t.jsxs(i.RadioCardText,{children:[t.jsx(s.TitleSmall,{color:o.COLORS.content.primary,children:"Custom intent"}),t.jsx(s.BodyCaption,{color:o.COLORS.content.secondary,children:"Define your own trigger — use exact phrases or describe the customer's intent."})]})]})]}),n.mode==="manifest_intent"?t.jsxs(i.FieldBlock,{children:[t.jsx(s.TitleSmall,{color:o.COLORS.content.primary,children:"If customer talks about"}),t.jsxs(i.ChipWrap,{children:[n.intents.map(e=>t.jsxs(i.IntentChip,{"data-test":`intent-chip-${e}`,children:[t.jsx(s.BodySecondary,{color:o.COLORS.content.primary,children:m(e)}),t.jsx(i.ChipCloseButton,{onClick:()=>f(e),"aria-label":`Remove ${m(e)}`,children:t.jsx(y.default,{width:14,height:14,color:o.COLORS.content.secondary})})]},e)),S&&d.length>0?t.jsx(A.Dropdown,{"data-test":"intent-add-dropdown",size:"small",width:"200px",placeHolder:"Select intent",isSearchable:!0,options:d,onSelect:e=>{const g=(Array.isArray(e)?e[0]:e)?.value;g&&x(g)}}):d.length>0&&t.jsxs(i.AddChipButton,{"data-test":"intent-add-button",onClick:()=>h(!0),children:[t.jsx(j.default,{width:16,height:16,color:o.COLORS.content.secondary}),t.jsx(s.BodySecondary,{color:o.COLORS.content.secondary,children:"Intent"})]})]}),t.jsx(s.BodyCaption,{color:o.COLORS.content.secondary,children:"This agent takes over from your main assistant when this intent is detected. The changeover is automatic when you go live."})]}):t.jsx(R.AiTextArea,{"data-test":"custom-intent",label:"Describe the trigger",value:n.customIntent??"",onChange:e=>a({trigger:{...n,customIntent:e}}),maxLength:I.AGENT_CHAR_LIMITS.customIntent,placeholder:"e.g. The customer wants to cancel an order they placed.",minHeight:"120px"})]})};exports.Step2WhenItStepsIn=q;
|
|
2
|
-
//# sourceMappingURL=Step2WhenItStepsIn.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Step2WhenItStepsIn.js","sources":["../../../../../src/components/agent-builder/steps/Step2WhenItStepsIn.tsx"],"sourcesContent":["import CrossIcon from '@src/assets/icons/cross.svg';\nimport PlusIcon from '@src/assets/icons/plus.svg';\nimport React from 'react';\nimport { Dropdown } from '@src/components/dropdown';\nimport { SingleOption } from '@src/components/dropdown/type';\nimport { RadioButton } from '@src/components/radioButton/RadioButton';\nimport {\n\tBodyCaption,\n\tBodySecondary,\n\tTitleSmall,\n} from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport { TriggerMode } from '../AgentBuilder.model';\nimport {\n\tAddChipButton,\n\tCardRow,\n\tChipCloseButton,\n\tChipWrap,\n\tFieldBlock,\n\tIntentChip,\n\tRadioCard,\n\tRadioCardText,\n} from '../AgentBuilder.styled';\nimport { AiTextArea } from '../components/AiTextArea';\nimport { StepSectionHeader } from '../components/StepSectionHeader';\nimport { AGENT_CHAR_LIMITS } from '../constants/charLimits';\nimport { STEP_DEFINITIONS } from '../constants/steps';\nimport { useAgentBuilderContext } from '../context/AgentBuilderContext';\n\nconst STEP = STEP_DEFINITIONS[1];\n\nexport const Step2WhenItStepsIn: React.FC = () => {\n\tconst { value, patch, availableIntents } = useAgentBuilderContext();\n\tconst { trigger } = value;\n\tconst [adding, setAdding] = React.useState(false);\n\n\tconst setMode = (mode: TriggerMode) =>\n\t\tpatch({ trigger: { ...trigger, mode } });\n\n\tconst addIntent = (intentValue: string) => {\n\t\tif (!trigger.intents.includes(intentValue)) {\n\t\t\tpatch({\n\t\t\t\ttrigger: { ...trigger, intents: [...trigger.intents, intentValue] },\n\t\t\t});\n\t\t}\n\t\tsetAdding(false);\n\t};\n\n\tconst removeIntent = (intentValue: string) =>\n\t\tpatch({\n\t\t\ttrigger: {\n\t\t\t\t...trigger,\n\t\t\t\tintents: trigger.intents.filter((i) => i !== intentValue),\n\t\t\t},\n\t\t});\n\n\tconst labelFor = (v: string) =>\n\t\tavailableIntents.find((o) => o.value === v)?.label ?? v;\n\n\tconst remainingOptions: SingleOption[] = availableIntents\n\t\t.filter((o) => !trigger.intents.includes(o.value))\n\t\t.map((o) => ({ label: o.label, value: o.value }));\n\n\treturn (\n\t\t<div>\n\t\t\t<StepSectionHeader title={STEP.title} helper={STEP.helper} />\n\n\t\t\t<CardRow>\n\t\t\t\t<RadioCard\n\t\t\t\t\tdata-test=\"trigger-mode-manifest\"\n\t\t\t\t\tselected={trigger.mode === 'manifest_intent'}\n\t\t\t\t\tonClick={() => setMode('manifest_intent')}\n\t\t\t\t>\n\t\t\t\t\t<RadioButton\n\t\t\t\t\t\tisActive={trigger.mode === 'manifest_intent'}\n\t\t\t\t\t\tonValueChange={() => setMode('manifest_intent')}\n\t\t\t\t\t\tskipSelectingOff\n\t\t\t\t\t\tactiveColor={COLORS.content.brand}\n\t\t\t\t\t/>\n\t\t\t\t\t<RadioCardText>\n\t\t\t\t\t\t<TitleSmall color={COLORS.content.primary}>\n\t\t\t\t\t\t\tManifest intent\n\t\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t\t<BodyCaption color={COLORS.content.secondary}>\n\t\t\t\t\t\t\tManifest's AI classifier routes conversations automatically —\n\t\t\t\t\t\t\tno keywords needed.\n\t\t\t\t\t\t</BodyCaption>\n\t\t\t\t\t</RadioCardText>\n\t\t\t\t</RadioCard>\n\n\t\t\t\t<RadioCard\n\t\t\t\t\tdata-test=\"trigger-mode-custom\"\n\t\t\t\t\tselected={trigger.mode === 'custom_intent'}\n\t\t\t\t\tonClick={() => setMode('custom_intent')}\n\t\t\t\t>\n\t\t\t\t\t<RadioButton\n\t\t\t\t\t\tisActive={trigger.mode === 'custom_intent'}\n\t\t\t\t\t\tonValueChange={() => setMode('custom_intent')}\n\t\t\t\t\t\tskipSelectingOff\n\t\t\t\t\t\tactiveColor={COLORS.content.brand}\n\t\t\t\t\t/>\n\t\t\t\t\t<RadioCardText>\n\t\t\t\t\t\t<TitleSmall color={COLORS.content.primary}>\n\t\t\t\t\t\t\tCustom intent\n\t\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t\t<BodyCaption color={COLORS.content.secondary}>\n\t\t\t\t\t\t\tDefine your own trigger — use exact phrases or describe the\n\t\t\t\t\t\t\tcustomer's intent.\n\t\t\t\t\t\t</BodyCaption>\n\t\t\t\t\t</RadioCardText>\n\t\t\t\t</RadioCard>\n\t\t\t</CardRow>\n\n\t\t\t{trigger.mode === 'manifest_intent' ? (\n\t\t\t\t<FieldBlock>\n\t\t\t\t\t<TitleSmall color={COLORS.content.primary}>\n\t\t\t\t\t\tIf customer talks about\n\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t<ChipWrap>\n\t\t\t\t\t\t{trigger.intents.map((intent) => (\n\t\t\t\t\t\t\t<IntentChip key={intent} data-test={`intent-chip-${intent}`}>\n\t\t\t\t\t\t\t\t<BodySecondary color={COLORS.content.primary}>\n\t\t\t\t\t\t\t\t\t{labelFor(intent)}\n\t\t\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t\t\t\t<ChipCloseButton\n\t\t\t\t\t\t\t\t\tonClick={() => removeIntent(intent)}\n\t\t\t\t\t\t\t\t\taria-label={`Remove ${labelFor(intent)}`}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<CrossIcon\n\t\t\t\t\t\t\t\t\t\twidth={14}\n\t\t\t\t\t\t\t\t\t\theight={14}\n\t\t\t\t\t\t\t\t\t\tcolor={COLORS.content.secondary}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</ChipCloseButton>\n\t\t\t\t\t\t\t</IntentChip>\n\t\t\t\t\t\t))}\n\n\t\t\t\t\t\t{adding && remainingOptions.length > 0 ? (\n\t\t\t\t\t\t\t<Dropdown\n\t\t\t\t\t\t\t\tdata-test=\"intent-add-dropdown\"\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\twidth=\"200px\"\n\t\t\t\t\t\t\t\tplaceHolder=\"Select intent\"\n\t\t\t\t\t\t\t\tisSearchable\n\t\t\t\t\t\t\t\toptions={remainingOptions}\n\t\t\t\t\t\t\t\tonSelect={(opt) => {\n\t\t\t\t\t\t\t\t\tconst single = Array.isArray(opt) ? opt[0] : opt;\n\t\t\t\t\t\t\t\t\tconst v = (single as SingleOption)?.value;\n\t\t\t\t\t\t\t\t\tif (v) {\n\t\t\t\t\t\t\t\t\t\taddIntent(v);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\tremainingOptions.length > 0 && (\n\t\t\t\t\t\t\t\t<AddChipButton\n\t\t\t\t\t\t\t\t\tdata-test=\"intent-add-button\"\n\t\t\t\t\t\t\t\t\tonClick={() => setAdding(true)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<PlusIcon\n\t\t\t\t\t\t\t\t\t\twidth={16}\n\t\t\t\t\t\t\t\t\t\theight={16}\n\t\t\t\t\t\t\t\t\t\tcolor={COLORS.content.secondary}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<BodySecondary color={COLORS.content.secondary}>\n\t\t\t\t\t\t\t\t\t\tIntent\n\t\t\t\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t\t\t\t</AddChipButton>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)}\n\t\t\t\t\t</ChipWrap>\n\t\t\t\t\t<BodyCaption color={COLORS.content.secondary}>\n\t\t\t\t\t\tThis agent takes over from your main assistant when this intent is\n\t\t\t\t\t\tdetected. The changeover is automatic when you go live.\n\t\t\t\t\t</BodyCaption>\n\t\t\t\t</FieldBlock>\n\t\t\t) : (\n\t\t\t\t<AiTextArea\n\t\t\t\t\tdata-test=\"custom-intent\"\n\t\t\t\t\tlabel=\"Describe the trigger\"\n\t\t\t\t\tvalue={trigger.customIntent ?? ''}\n\t\t\t\t\tonChange={(text) =>\n\t\t\t\t\t\tpatch({ trigger: { ...trigger, customIntent: text } })\n\t\t\t\t\t}\n\t\t\t\t\tmaxLength={AGENT_CHAR_LIMITS.customIntent}\n\t\t\t\t\tplaceholder=\"e.g. The customer wants to cancel an order they placed.\"\n\t\t\t\t\tminHeight=\"120px\"\n\t\t\t\t/>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n"],"names":["STEP","STEP_DEFINITIONS","Step2WhenItStepsIn","value","patch","availableIntents","useAgentBuilderContext","trigger","adding","setAdding","React","setMode","mode","addIntent","intentValue","removeIntent","i","labelFor","v","o","remainingOptions","jsx","StepSectionHeader","CardRow","jsxs","RadioCard","RadioButton","COLORS","RadioCardText","TitleSmall","BodyCaption","FieldBlock","ChipWrap","intent","IntentChip","BodySecondary","ChipCloseButton","CrossIcon","Dropdown","opt","AddChipButton","PlusIcon","AiTextArea","text","AGENT_CHAR_LIMITS"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),g=require("../../TypographyStyle.js"),m=require("../../../constants/Theme.js"),o=require("../AgentBuilder.styled.js"),j=require("../components/InstructionsField.js"),A=require("../components/RichTextField.js"),b=require("../components/SelectableListSection.js"),f=require("../components/StepSectionHeader.js"),q=require("../constants/charLimits.js"),I=require("../constants/steps.js"),O=require("../context/AgentBuilderContext.js"),R=require("../../dropdown/Dropdown.js"),S=I.STEP_DEFINITIONS[2],L=()=>{const{value:l,patch:r,updateField:d,removeReference:c,availableTools:u,availableSubAgents:p,availableModels:i}=O.useAgentBuilderContext(),x=l.tools.map(e=>{const s=u.find(n=>n.tool_id===e);return s?{id:e,label:s.displayName}:null}).filter(e=>e!==null),h=u.filter(e=>!l.tools.includes(e.tool_id)).map(e=>({label:e.displayName,value:e.tool_id,subText:e.description})),v=l.subagents.map(e=>{const s=p.find(n=>n.id===e);return s?{id:e,label:s.name}:null}).filter(e=>e!==null),T=p.filter(e=>!l.subagents.includes(e.id)).map(e=>({label:e.name,value:e.id})),y=i.map(e=>({label:e.label,value:e.value,selected:e.value===l.model})),a=i.find(e=>e.value===l.model);return t.jsxs("div",{className:"bik-agent-step bik-agent-step--response",children:[t.jsx(f.StepSectionHeader,{title:S.title,helper:S.helper}),t.jsxs(o.Step3Grid,{children:[t.jsxs(o.Step3Main,{children:[t.jsx(j.InstructionsField,{}),t.jsx(A.RichTextField,{"data-test":"agent-guardrail",label:"Guardrails",value:l.guardrail??"",onChange:e=>d("guardrail",e),maxLength:q.AGENT_CHAR_LIMITS.guardrail,placeholder:"Things this agent must never do.",minHeight:"140px",resetKey:l.id})]}),t.jsxs(o.Step3Side,{children:[t.jsx(b.SelectableListSection,{title:"Tools",dataTestPrefix:"agent-tools",items:x,addableOptions:h,emptyText:"No tools added yet.",onAdd:e=>r({tools:[...l.tools,e]}),onRemove:e=>c("tool",e)}),t.jsx(b.SelectableListSection,{title:"Sub-agents",dataTestPrefix:"agent-subagents",items:v,addableOptions:T,emptyText:"No sub-agents added yet.",onAdd:e=>r({subagents:[...l.subagents,e]}),onRemove:e=>c("subagent",e)}),i.length>0&&t.jsxs(o.SideSection,{children:[t.jsx(g.TitleSmall,{color:m.COLORS.content.primary,children:"Advanced settings"}),t.jsx(g.TitleSmall,{color:m.COLORS.content.secondary,children:"Select AI model"}),t.jsx(R.Dropdown,{"data-test":"agent-model",size:"small",width:"100%",placeHolder:"Select model",options:y,defaultOptions:a?[{label:a.label,value:a.value}]:void 0,onSelect:e=>{const n=(Array.isArray(e)?e[0]:e)?.value;n&&d("model",n)}})]})]})]})]})};exports.Step3HowItResponds=L;
|
|
2
|
-
//# sourceMappingURL=Step3HowItResponds.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Step3HowItResponds.js","sources":["../../../../../src/components/agent-builder/steps/Step3HowItResponds.tsx"],"sourcesContent":["import React from 'react';\nimport { Dropdown } from '@src/components/dropdown';\nimport { SingleOption } from '@src/components/dropdown/type';\nimport { TitleSmall } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport {\n\tSideSection,\n\tStep3Grid,\n\tStep3Main,\n\tStep3Side,\n} from '../AgentBuilder.styled';\nimport { InstructionsField } from '../components/InstructionsField';\nimport { RichTextField } from '../components/RichTextField';\nimport {\n\tSelectableItem,\n\tSelectableListSection,\n} from '../components/SelectableListSection';\nimport { StepSectionHeader } from '../components/StepSectionHeader';\nimport { AGENT_CHAR_LIMITS } from '../constants/charLimits';\nimport { STEP_DEFINITIONS } from '../constants/steps';\nimport { useAgentBuilderContext } from '../context/AgentBuilderContext';\n\nconst STEP = STEP_DEFINITIONS[2];\n\nexport const Step3HowItResponds: React.FC = () => {\n\tconst {\n\t\tvalue,\n\t\tpatch,\n\t\tupdateField,\n\t\tremoveReference,\n\t\tavailableTools,\n\t\tavailableSubAgents,\n\t\tavailableModels,\n\t} = useAgentBuilderContext();\n\n\tconst toolItems: SelectableItem[] = value.tools\n\t\t.map((id): SelectableItem | null => {\n\t\t\tconst tool = availableTools.find((t) => t.tool_id === id);\n\t\t\treturn tool ? { id, label: tool.displayName } : null;\n\t\t})\n\t\t.filter((x): x is SelectableItem => x !== null);\n\n\tconst toolOptions: SingleOption[] = availableTools\n\t\t.filter((t) => !value.tools.includes(t.tool_id))\n\t\t.map((t) => ({\n\t\t\tlabel: t.displayName,\n\t\t\tvalue: t.tool_id,\n\t\t\tsubText: t.description,\n\t\t}));\n\n\tconst subAgentItems: SelectableItem[] = value.subagents\n\t\t.map((id): SelectableItem | null => {\n\t\t\tconst sub = availableSubAgents.find((s) => s.id === id);\n\t\t\treturn sub ? { id, label: sub.name } : null;\n\t\t})\n\t\t.filter((x): x is SelectableItem => x !== null);\n\n\tconst subAgentOptions: SingleOption[] = availableSubAgents\n\t\t.filter((s) => !value.subagents.includes(s.id))\n\t\t.map((s) => ({ label: s.name, value: s.id }));\n\n\tconst modelOptions: SingleOption[] = availableModels.map((m) => ({\n\t\tlabel: m.label,\n\t\tvalue: m.value,\n\t\tselected: m.value === value.model,\n\t}));\n\tconst selectedModel = availableModels.find((m) => m.value === value.model);\n\n\treturn (\n\t\t<div className=\"bik-agent-step bik-agent-step--response\">\n\t\t\t<StepSectionHeader title={STEP.title} helper={STEP.helper} />\n\n\t\t\t<Step3Grid>\n\t\t\t\t<Step3Main>\n\t\t\t\t\t<InstructionsField />\n\n\t\t\t\t\t<RichTextField\n\t\t\t\t\t\tdata-test=\"agent-guardrail\"\n\t\t\t\t\t\tlabel=\"Guardrails\"\n\t\t\t\t\t\tvalue={value.guardrail ?? ''}\n\t\t\t\t\t\tonChange={(text) => updateField('guardrail', text)}\n\t\t\t\t\t\tmaxLength={AGENT_CHAR_LIMITS.guardrail}\n\t\t\t\t\t\tplaceholder=\"Things this agent must never do.\"\n\t\t\t\t\t\tminHeight=\"140px\"\n\t\t\t\t\t\tresetKey={value.id}\n\t\t\t\t\t/>\n\t\t\t\t</Step3Main>\n\n\t\t\t\t<Step3Side>\n\t\t\t\t\t<SelectableListSection\n\t\t\t\t\t\ttitle=\"Tools\"\n\t\t\t\t\t\t// helper=\"Actions this agent can take while responding.\"\n\t\t\t\t\t\tdataTestPrefix=\"agent-tools\"\n\t\t\t\t\t\titems={toolItems}\n\t\t\t\t\t\taddableOptions={toolOptions}\n\t\t\t\t\t\temptyText=\"No tools added yet.\"\n\t\t\t\t\t\tonAdd={(id) => patch({ tools: [...value.tools, id] })}\n\t\t\t\t\t\tonRemove={(id) => removeReference('tool', id)}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<SelectableListSection\n\t\t\t\t\t\ttitle=\"Sub-agents\"\n\t\t\t\t\t\t// helper=\"Other agents this agent can hand off the conversation to.\"\n\t\t\t\t\t\tdataTestPrefix=\"agent-subagents\"\n\t\t\t\t\t\titems={subAgentItems}\n\t\t\t\t\t\taddableOptions={subAgentOptions}\n\t\t\t\t\t\temptyText=\"No sub-agents added yet.\"\n\t\t\t\t\t\tonAdd={(id) => patch({ subagents: [...value.subagents, id] })}\n\t\t\t\t\t\tonRemove={(id) => removeReference('subagent', id)}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{availableModels.length > 0 && (\n\t\t\t\t\t\t<SideSection>\n\t\t\t\t\t\t\t<TitleSmall color={COLORS.content.primary}>\n\t\t\t\t\t\t\t\tAdvanced settings\n\t\t\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t\t\t<TitleSmall color={COLORS.content.secondary}>\n\t\t\t\t\t\t\t\tSelect AI model\n\t\t\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t\t\t<Dropdown\n\t\t\t\t\t\t\t\tdata-test=\"agent-model\"\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\twidth=\"100%\"\n\t\t\t\t\t\t\t\tplaceHolder=\"Select model\"\n\t\t\t\t\t\t\t\toptions={modelOptions}\n\t\t\t\t\t\t\t\tdefaultOptions={\n\t\t\t\t\t\t\t\t\tselectedModel\n\t\t\t\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel: selectedModel.label,\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: selectedModel.value,\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t ]\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonSelect={(opt) => {\n\t\t\t\t\t\t\t\t\tconst single = Array.isArray(opt) ? opt[0] : opt;\n\t\t\t\t\t\t\t\t\tconst v = (single as SingleOption)?.value;\n\t\t\t\t\t\t\t\t\tif (v) {\n\t\t\t\t\t\t\t\t\t\tupdateField('model', v);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</SideSection>\n\t\t\t\t\t)}\n\t\t\t\t</Step3Side>\n\t\t\t</Step3Grid>\n\t\t</div>\n\t);\n};\n"],"names":["STEP","STEP_DEFINITIONS","Step3HowItResponds","value","patch","updateField","removeReference","availableTools","availableSubAgents","availableModels","useAgentBuilderContext","toolItems","id","tool","t","x","toolOptions","subAgentItems","sub","s","subAgentOptions","modelOptions","m","selectedModel","jsxs","jsx","StepSectionHeader","Step3Grid","Step3Main","InstructionsField","RichTextField","text","AGENT_CHAR_LIMITS","Step3Side","SelectableListSection","SideSection","TitleSmall","COLORS","Dropdown","opt","v"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),c=require("../../radioButton/RadioButton.js"),r=require("../../TypographyStyle.js"),n=require("../../../constants/Theme.js"),o=require("../AgentBuilder.styled.js"),h=require("../components/AiTextArea.js"),u=require("../components/StepSectionHeader.js"),p=require("../constants/charLimits.js"),C=require("../constants/steps.js"),x=require("../context/AgentBuilderContext.js"),d=C.STEP_DEFINITIONS[3],S=()=>{const{value:l,patch:a}=x.useAgentBuilderContext(),{handover:t}=l,s=i=>a({handover:{...t,method:i}});return e.jsxs("div",{className:"bik-agent-step bik-agent-step--handover",children:[e.jsx(u.StepSectionHeader,{title:d.title,helper:d.helper}),e.jsx(h.AiTextArea,{"data-test":"handover-when",label:"Handover when",value:t.when,onChange:i=>a({handover:{...t,when:i}}),maxLength:p.AGENT_CHAR_LIMITS.handoverWhen,placeholder:"e.g. Hand over if the customer is angry or requests a human agent.",minHeight:"120px"}),e.jsxs(o.FieldBlock,{children:[e.jsx(r.TitleSmall,{color:n.COLORS.content.primary,children:"Handover method"}),e.jsxs(o.CardRow,{children:[e.jsxs(o.RadioCard,{"data-test":"handover-method-default",selected:t.method==="default",onClick:()=>s("default"),children:[e.jsx(c.RadioButton,{isActive:t.method==="default",onValueChange:()=>s("default"),skipSelectingOff:!0,activeColor:n.COLORS.content.brand}),e.jsxs(o.RadioCardText,{children:[e.jsx(r.TitleSmall,{color:n.COLORS.content.primary,children:"Use default settings"}),e.jsx(r.BodyCaption,{color:n.COLORS.content.secondary,children:"Defined in Customize > Agent handover"})]})]}),e.jsxs(o.RadioCard,{"data-test":"handover-method-specific",selected:t.method==="specific_channels",onClick:()=>s("specific_channels"),children:[e.jsx(c.RadioButton,{isActive:t.method==="specific_channels",onValueChange:()=>s("specific_channels"),skipSelectingOff:!0,activeColor:n.COLORS.content.brand}),e.jsxs(o.RadioCardText,{children:[e.jsx(r.TitleSmall,{color:n.COLORS.content.primary,children:"Choose specific channels"}),e.jsx(r.BodyCaption,{color:n.COLORS.content.secondary,children:"Always hands over regardless of business hours."})]})]})]})]})]})};exports.Step4HandoverRules=S;
|
|
2
|
-
//# sourceMappingURL=Step4HandoverRules.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Step4HandoverRules.js","sources":["../../../../../src/components/agent-builder/steps/Step4HandoverRules.tsx"],"sourcesContent":["import React from 'react';\nimport { RadioButton } from '@src/components/radioButton/RadioButton';\nimport { BodyCaption, TitleSmall } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport { HandoverMethod } from '../AgentBuilder.model';\nimport {\n\tCardRow,\n\tFieldBlock,\n\tRadioCard,\n\tRadioCardText,\n} from '../AgentBuilder.styled';\nimport { AiTextArea } from '../components/AiTextArea';\nimport { StepSectionHeader } from '../components/StepSectionHeader';\nimport { AGENT_CHAR_LIMITS } from '../constants/charLimits';\nimport { STEP_DEFINITIONS } from '../constants/steps';\nimport { useAgentBuilderContext } from '../context/AgentBuilderContext';\n\nconst STEP = STEP_DEFINITIONS[3];\n\nexport const Step4HandoverRules: React.FC = () => {\n\tconst { value, patch } = useAgentBuilderContext();\n\tconst { handover } = value;\n\n\tconst setMethod = (method: HandoverMethod) =>\n\t\tpatch({ handover: { ...handover, method } });\n\n\treturn (\n\t\t<div className=\"bik-agent-step bik-agent-step--handover\">\n\t\t\t<StepSectionHeader title={STEP.title} helper={STEP.helper} />\n\n\t\t\t<AiTextArea\n\t\t\t\tdata-test=\"handover-when\"\n\t\t\t\tlabel=\"Handover when\"\n\t\t\t\tvalue={handover.when}\n\t\t\t\tonChange={(text) => patch({ handover: { ...handover, when: text } })}\n\t\t\t\tmaxLength={AGENT_CHAR_LIMITS.handoverWhen}\n\t\t\t\tplaceholder=\"e.g. Hand over if the customer is angry or requests a human agent.\"\n\t\t\t\tminHeight=\"120px\"\n\t\t\t/>\n\n\t\t\t<FieldBlock>\n\t\t\t\t<TitleSmall color={COLORS.content.primary}>Handover method</TitleSmall>\n\t\t\t\t<CardRow>\n\t\t\t\t\t<RadioCard\n\t\t\t\t\t\tdata-test=\"handover-method-default\"\n\t\t\t\t\t\tselected={handover.method === 'default'}\n\t\t\t\t\t\tonClick={() => setMethod('default')}\n\t\t\t\t\t>\n\t\t\t\t\t\t<RadioButton\n\t\t\t\t\t\t\tisActive={handover.method === 'default'}\n\t\t\t\t\t\t\tonValueChange={() => setMethod('default')}\n\t\t\t\t\t\t\tskipSelectingOff\n\t\t\t\t\t\t\tactiveColor={COLORS.content.brand}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<RadioCardText>\n\t\t\t\t\t\t\t<TitleSmall color={COLORS.content.primary}>\n\t\t\t\t\t\t\t\tUse default settings\n\t\t\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t\t\t<BodyCaption color={COLORS.content.secondary}>\n\t\t\t\t\t\t\t\tDefined in Customize > Agent handover\n\t\t\t\t\t\t\t</BodyCaption>\n\t\t\t\t\t\t</RadioCardText>\n\t\t\t\t\t</RadioCard>\n\n\t\t\t\t\t<RadioCard\n\t\t\t\t\t\tdata-test=\"handover-method-specific\"\n\t\t\t\t\t\tselected={handover.method === 'specific_channels'}\n\t\t\t\t\t\tonClick={() => setMethod('specific_channels')}\n\t\t\t\t\t>\n\t\t\t\t\t\t<RadioButton\n\t\t\t\t\t\t\tisActive={handover.method === 'specific_channels'}\n\t\t\t\t\t\t\tonValueChange={() => setMethod('specific_channels')}\n\t\t\t\t\t\t\tskipSelectingOff\n\t\t\t\t\t\t\tactiveColor={COLORS.content.brand}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<RadioCardText>\n\t\t\t\t\t\t\t<TitleSmall color={COLORS.content.primary}>\n\t\t\t\t\t\t\t\tChoose specific channels\n\t\t\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t\t\t<BodyCaption color={COLORS.content.secondary}>\n\t\t\t\t\t\t\t\tAlways hands over regardless of business hours.\n\t\t\t\t\t\t\t</BodyCaption>\n\t\t\t\t\t\t</RadioCardText>\n\t\t\t\t\t</RadioCard>\n\t\t\t\t</CardRow>\n\t\t\t</FieldBlock>\n\t\t</div>\n\t);\n};\n"],"names":["STEP","STEP_DEFINITIONS","Step4HandoverRules","value","patch","useAgentBuilderContext","handover","setMethod","method","jsxs","jsx","StepSectionHeader","AiTextArea","text","AGENT_CHAR_LIMITS","FieldBlock","TitleSmall","COLORS","CardRow","RadioCard","RadioButton","RadioCardText","BodyCaption"],"mappings":"4eAiBMA,EAAOC,EAAAA,iBAAiB,CAAC,EAElBC,EAA+B,IAAM,CACjD,KAAM,CAAE,MAAAC,EAAO,MAAAC,CAAA,EAAUC,yBAAA,EACnB,CAAE,SAAAC,GAAaH,EAEfI,EAAaC,GAClBJ,EAAM,CAAE,SAAU,CAAE,GAAGE,EAAU,OAAAE,CAAA,EAAU,EAE5C,OACCC,EAAAA,KAAC,MAAA,CAAI,UAAU,0CACd,SAAA,CAAAC,MAACC,EAAAA,mBAAkB,MAAOX,EAAK,MAAO,OAAQA,EAAK,OAAQ,EAE3DU,EAAAA,IAACE,EAAAA,WAAA,CACA,YAAU,gBACV,MAAM,gBACN,MAAON,EAAS,KAChB,SAAWO,GAAST,EAAM,CAAE,SAAU,CAAE,GAAGE,EAAU,KAAMO,CAAA,EAAQ,EACnE,UAAWC,EAAAA,kBAAkB,aAC7B,YAAY,qEACZ,UAAU,OAAA,CAAA,SAGVC,EAAAA,WAAA,CACA,SAAA,CAAAL,MAACM,EAAAA,WAAA,CAAW,MAAOC,EAAAA,OAAO,QAAQ,QAAS,SAAA,kBAAe,SACzDC,EAAAA,QAAA,CACA,SAAA,CAAAT,EAAAA,KAACU,EAAAA,UAAA,CACA,YAAU,0BACV,SAAUb,EAAS,SAAW,UAC9B,QAAS,IAAMC,EAAU,SAAS,EAElC,SAAA,CAAAG,EAAAA,IAACU,EAAAA,YAAA,CACA,SAAUd,EAAS,SAAW,UAC9B,cAAe,IAAMC,EAAU,SAAS,EACxC,iBAAgB,GAChB,YAAaU,EAAAA,OAAO,QAAQ,KAAA,CAAA,SAE5BI,EAAAA,cAAA,CACA,SAAA,CAAAX,MAACM,EAAAA,WAAA,CAAW,MAAOC,EAAAA,OAAO,QAAQ,QAAS,SAAA,uBAE3C,QACCK,EAAAA,YAAA,CAAY,MAAOL,EAAAA,OAAO,QAAQ,UAAW,SAAA,uCAAA,CAE9C,CAAA,CAAA,CACD,CAAA,CAAA,CAAA,EAGDR,EAAAA,KAACU,EAAAA,UAAA,CACA,YAAU,2BACV,SAAUb,EAAS,SAAW,oBAC9B,QAAS,IAAMC,EAAU,mBAAmB,EAE5C,SAAA,CAAAG,EAAAA,IAACU,EAAAA,YAAA,CACA,SAAUd,EAAS,SAAW,oBAC9B,cAAe,IAAMC,EAAU,mBAAmB,EAClD,iBAAgB,GAChB,YAAaU,EAAAA,OAAO,QAAQ,KAAA,CAAA,SAE5BI,EAAAA,cAAA,CACA,SAAA,CAAAX,MAACM,EAAAA,WAAA,CAAW,MAAOC,EAAAA,OAAO,QAAQ,QAAS,SAAA,2BAE3C,QACCK,EAAAA,YAAA,CAAY,MAAOL,EAAAA,OAAO,QAAQ,UAAW,SAAA,iDAAA,CAE9C,CAAA,CAAA,CACD,CAAA,CAAA,CAAA,CACD,CAAA,CACD,CAAA,CAAA,CACD,CAAA,EACD,CAEF"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c={manifest:"Manifest",shopify:"Shopify",integration:"Integration"},u=(t,o="Manifest")=>t?c[t]??t:o,m=t=>{const o=t?String(t):"";return o==="BIK"?"BIK":o==="BSP"?"BSP":"Manifest"},b=(t,o,e="Manifest")=>[...t.map(n=>({id:n.tool_id,label:`${u(n.source,e)} : ${n.displayName}`,meta:{kind:"tool",functionKey:n.function_key,plainLabel:n.displayName,source:n.source}})),...o.map(n=>({id:n.id,label:`sub-agent: ${n.name}`,meta:{kind:"subagent",plainLabel:n.name}}))],a=t=>t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"),s=t=>a(t).replace(/"/g,"""),g=(t,o,e)=>`<span data-type="mentionAgent" class="bik-mention bik-mention--agent" data-id="${s(t)}" data-label="${s(o)}" data-kind="${s(e)}">${a(o)}</span>`,f=t=>{const o=new Map;for(const e of t){const n=e.meta;n?.kind==="tool"&&n.functionKey?o.set(`tool:${n.functionKey}`,e):n?.kind==="subagent"&&o.set(`subagent:${String(e.id)}`,e)}return o},l=/\{\{(tool:[^}]+|subagent:[^}]+)\}\}/g,k=(t,o)=>{let e="",n=0;l.lastIndex=0;let i;for(;(i=l.exec(t))!==null;){e+=a(t.slice(n,i.index));const r=o.get(i[1]);if(r){const d=r.meta.kind;e+=g(String(r.id),r.label,d)}else e+=a(i[0]);n=l.lastIndex}return e+=a(t.slice(n)),e.replace(/\n/g,"<br>")},y=(t,o=[])=>{if(!t)return"";const e=f(o);return t.split(/\n{2,}/).map(n=>`<p>${k(n,e)}</p>`).join("")},S=(t,o)=>{const e=o[t];return e?`{{tool:${e}}}`:`{{subagent:${t}}}`},p=(t,o)=>{switch(t.type){case"text":return t.text??"";case"mentionAgent":case"mentionTeam":{const e=t.attrs?.id;return e==null?"":S(String(e),o)}case"variable":return`{{${String(t.attrs?.variableName??"")}}}`;case"hardBreak":return`
|
|
2
|
-
`;default:{const e=(t.content??[]).map(i=>p(i,o)).join("");return["paragraph","heading","listItem","blockquote"].includes(t.type)?`${e}
|
|
3
|
-
`:e}}},T=(t,o)=>{if(!t)return"";const e=o.reduce((n,i)=>(n[i.tool_id]=i.function_key,n),{});return p(t,e).replace(/\n+$/,"")};exports.TOOL_SOURCE_LABELS=c;exports.appTypeLabel=m;exports.buildAgentMentionItems=b;exports.editorDocToInstructions=T;exports.instructionsToEditorHtml=y;exports.toolSourceLabel=u;
|
|
4
|
-
//# sourceMappingURL=mentionSerialization.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mentionSerialization.js","sources":["../../../../../src/components/agent-builder/utils/mentionSerialization.ts"],"sourcesContent":["import type { ApplicationType } from '@bikdotai/bik-models/growth';\nimport { MentionItem } from '@src/editor';\nimport { AgentTool, SubAgentRef } from '../AgentBuilder.model';\n\n/**\n * Serialization helpers between the BikEditor document and the firebase\n * `instructions` string.\n *\n * Firebase stores `instructions` as PLAIN TEXT with inline reference tokens:\n * - `{{subagent:<agentId>}}` — hand-off to another agent\n * - `{{tool:<function_key>}}` — an action the agent can call\n * - `{{<variableName>}}` — a template variable\n *\n * In the editor those references are inserted via the `@` mention menu (which we\n * populate with BOTH tools and sub-agents). Mention nodes keep their `id` in the\n * ProseMirror doc JSON (the rendered HTML drops it), so we serialize from the doc\n * JSON — not from HTML.\n */\n\nexport interface MentionKindMeta {\n\t/** Distinguishes a tool reference from a sub-agent reference. */\n\tkind: 'tool' | 'subagent';\n\t/** For tools: the function_key used in the `{{tool:KEY}}` token. */\n\tfunctionKey?: string;\n\t/** Plain item name (no prefix) shown in the picker dropdown rows. */\n\tplainLabel?: string;\n\t/** For tools: the source bucket (manifest / shopify / …) the picker groups by. */\n\tsource?: string;\n}\n\n/** Display labels for the known tool sources (drives picker headers + chip prefix). */\nexport const TOOL_SOURCE_LABELS: Record<string, string> = {\n\tmanifest: 'Manifest',\n\tshopify: 'Shopify',\n\tintegration: 'Integration',\n};\n\n/** Human label for a tool source; falls back to the host-app label, then the raw key. */\nexport const toolSourceLabel = (\n\tsource: string | undefined,\n\tfallback = 'Manifest',\n): string => {\n\tif (!source) {\n\t\treturn fallback;\n\t}\n\treturn TOOL_SOURCE_LABELS[source] ?? source;\n};\n\n/** Human label for the host application, used as the tool-chip prefix. */\nexport const appTypeLabel = (applicationType?: ApplicationType): string => {\n\tconst key = applicationType ? String(applicationType) : '';\n\tif (key === 'BIK') {\n\t\treturn 'BIK';\n\t}\n\tif (key === 'BSP') {\n\t\treturn 'BSP';\n\t}\n\treturn 'Manifest';\n};\n\n/**\n * Build the combined `@` mention list from the available tools + sub-agents.\n *\n * The `label` is the CHIP text shown once inserted — tools read\n * `\"<App> : <tool name>\"` (e.g. \"Manifest : Look up order\"), sub-agents read\n * `\"sub-agent: <name>\"`. `meta.plainLabel` is the un-prefixed name for the\n * picker rows, and `meta.kind` drives the `{{tool}}` / `{{subagent}}` colour.\n */\nexport const buildAgentMentionItems = (\n\ttools: AgentTool[],\n\tsubAgents: SubAgentRef[],\n\tappLabel = 'Manifest',\n): MentionItem[] => [\n\t...tools.map(\n\t\t(t): MentionItem => ({\n\t\t\tid: t.tool_id,\n\t\t\tlabel: `${toolSourceLabel(t.source, appLabel)} : ${t.displayName}`,\n\t\t\tmeta: {\n\t\t\t\tkind: 'tool',\n\t\t\t\tfunctionKey: t.function_key,\n\t\t\t\tplainLabel: t.displayName,\n\t\t\t\tsource: t.source,\n\t\t\t},\n\t\t}),\n\t),\n\t...subAgents.map(\n\t\t(s): MentionItem => ({\n\t\t\tid: s.id,\n\t\t\tlabel: `sub-agent: ${s.name}`,\n\t\t\tmeta: { kind: 'subagent', plainLabel: s.name },\n\t\t}),\n\t),\n];\n\nconst escapeHtml = (raw: string): string =>\n\traw.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');\n\nconst escapeAttr = (raw: string): string =>\n\tescapeHtml(raw).replace(/\"/g, '"');\n\n/**\n * The HTML for a single mention chip. Must round-trip through the TipTap mention\n * extension's `parseHTML` (`span[data-type=\"mentionAgent\"]`, reading\n * `data-id`/`data-label`/`data-kind`) — see MentionExtension.ts. `normalizeHtml`\n * is taught to keep `data-type=\"mention…\"` spans so this survives to the parser.\n */\nconst mentionSpanHtml = (id: string, label: string, kind: string): string =>\n\t`<span data-type=\"mentionAgent\" class=\"bik-mention bik-mention--agent\"` +\n\t` data-id=\"${escapeAttr(id)}\" data-label=\"${escapeAttr(label)}\"` +\n\t` data-kind=\"${escapeAttr(kind)}\">${escapeHtml(label)}</span>`;\n\n/** `{{tool:KEY}}` / `{{subagent:ID}}` → the mention item that produced them. */\nconst buildTokenLookup = (\n\tmentionItems: MentionItem[],\n): Map<string, MentionItem> => {\n\tconst byToken = new Map<string, MentionItem>();\n\tfor (const item of mentionItems) {\n\t\tconst meta = item.meta as unknown as MentionKindMeta | undefined;\n\t\tif (meta?.kind === 'tool' && meta.functionKey) {\n\t\t\tbyToken.set(`tool:${meta.functionKey}`, item);\n\t\t} else if (meta?.kind === 'subagent') {\n\t\t\tbyToken.set(`subagent:${String(item.id)}`, item);\n\t\t}\n\t}\n\treturn byToken;\n};\n\n// Matches the reference tokens we render as chips. Other `{{var}}` tokens fall\n// through untouched (left as literal text for the variable decoration).\nconst REFERENCE_TOKEN = /\\{\\{(tool:[^}]+|subagent:[^}]+)\\}\\}/g;\n\n/** Escape plain text, swapping recognised reference tokens for mention spans. */\nconst inlineToHtml = (\n\tsegment: string,\n\tbyToken: Map<string, MentionItem>,\n): string => {\n\tlet out = '';\n\tlet lastIndex = 0;\n\tREFERENCE_TOKEN.lastIndex = 0;\n\tlet match: RegExpExecArray | null;\n\twhile ((match = REFERENCE_TOKEN.exec(segment)) !== null) {\n\t\tout += escapeHtml(segment.slice(lastIndex, match.index));\n\t\tconst item = byToken.get(match[1]);\n\t\tif (item) {\n\t\t\tconst kind = (item.meta as unknown as MentionKindMeta).kind;\n\t\t\tout += mentionSpanHtml(String(item.id), item.label, kind);\n\t\t} else {\n\t\t\t// Tool/sub-agent no longer in the available list → keep the raw token.\n\t\t\tout += escapeHtml(match[0]);\n\t\t}\n\t\tlastIndex = REFERENCE_TOKEN.lastIndex;\n\t}\n\tout += escapeHtml(segment.slice(lastIndex));\n\treturn out.replace(/\\n/g, '<br>');\n};\n\n/**\n * Convert the stored instructions string into HTML for `BikEditor.initialContent`.\n * `{{tool:KEY}}` / `{{subagent:ID}}` tokens are rehydrated into mention chips\n * (resolved via `mentionItems`); any other `{{…}}` token is left as literal text\n * for the editor's variable decoration. Newlines become paragraph / line breaks.\n */\nexport const instructionsToEditorHtml = (\n\ttext: string,\n\tmentionItems: MentionItem[] = [],\n): string => {\n\tif (!text) {\n\t\treturn '';\n\t}\n\tconst byToken = buildTokenLookup(mentionItems);\n\treturn text\n\t\t.split(/\\n{2,}/)\n\t\t.map((para) => `<p>${inlineToHtml(para, byToken)}</p>`)\n\t\t.join('');\n};\n\ninterface ProseMirrorNode {\n\ttype: string;\n\ttext?: string;\n\tattrs?: Record<string, unknown>;\n\tcontent?: ProseMirrorNode[];\n}\n\n/** Map of mention node id → token, derived from the available tools. */\nconst resolveMentionToken = (\n\tid: string,\n\ttoolKeyById: Record<string, string>,\n): string => {\n\tconst functionKey = toolKeyById[id];\n\tif (functionKey) {\n\t\treturn `{{tool:${functionKey}}}`;\n\t}\n\treturn `{{subagent:${id}}}`;\n};\n\nconst nodeToText = (\n\tnode: ProseMirrorNode,\n\ttoolKeyById: Record<string, string>,\n): string => {\n\tswitch (node.type) {\n\t\tcase 'text':\n\t\t\treturn node.text ?? '';\n\t\tcase 'mentionAgent':\n\t\tcase 'mentionTeam': {\n\t\t\tconst id = node.attrs?.['id'];\n\t\t\treturn id == null ? '' : resolveMentionToken(String(id), toolKeyById);\n\t\t}\n\t\tcase 'variable':\n\t\t\treturn `{{${String(node.attrs?.['variableName'] ?? '')}}}`;\n\t\tcase 'hardBreak':\n\t\t\treturn '\\n';\n\t\tdefault: {\n\t\t\tconst inner = (node.content ?? [])\n\t\t\t\t.map((child) => nodeToText(child, toolKeyById))\n\t\t\t\t.join('');\n\t\t\t// Block nodes terminate with a newline so paragraphs stay separated.\n\t\t\tconst BLOCK_NODES = ['paragraph', 'heading', 'listItem', 'blockquote'];\n\t\t\treturn BLOCK_NODES.includes(node.type) ? `${inner}\\n` : inner;\n\t\t}\n\t}\n};\n\n/**\n * Convert a BikEditor document (from `ref.getJSON()`) into the firebase\n * instructions string, replacing mention nodes with `{{subagent:ID}}` /\n * `{{tool:KEY}}` tokens.\n */\nexport const editorDocToInstructions = (\n\tdoc: Record<string, unknown> | null,\n\ttools: AgentTool[],\n): string => {\n\tif (!doc) {\n\t\treturn '';\n\t}\n\tconst toolKeyById = tools.reduce<Record<string, string>>((acc, t) => {\n\t\tacc[t.tool_id] = t.function_key;\n\t\treturn acc;\n\t}, {});\n\treturn nodeToText(doc as unknown as ProseMirrorNode, toolKeyById).replace(\n\t\t/\\n+$/,\n\t\t'',\n\t);\n};\n"],"names":["TOOL_SOURCE_LABELS","toolSourceLabel","source","fallback","appTypeLabel","applicationType","key","buildAgentMentionItems","tools","subAgents","appLabel","t","s","escapeHtml","raw","escapeAttr","mentionSpanHtml","id","label","kind","buildTokenLookup","mentionItems","byToken","item","meta","REFERENCE_TOKEN","inlineToHtml","segment","out","lastIndex","match","instructionsToEditorHtml","text","para","resolveMentionToken","toolKeyById","functionKey","nodeToText","node","inner","child","editorDocToInstructions","doc","acc"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),a=require("react"),I=require("../TablePagination/TablePagination.js"),Z=require("../zeroState/ZeroState.js"),d=require("./AgentListing.styled.js"),M=require("./AgentListingFilters.js"),V=require("./AgentListingHeader.js"),_=require("./AgentTable.js"),N=({config:P,onSearchChange:h,onFilterChange:s,onSortChange:o,onNewAgent:b,onBrowseTemplates:l,onRunAgent:A,onEditAgent:C,onRowClick:r,...j})=>{const{agents:p,isLoading:g,searchValue:k,searchPlaceholder:x="Search",filterOptions:L,filterPlaceholder:T="Filters",sortOptions:w,selectedSort:q,title:R="AI Agents",pagination:i,emptyState:c,debugLog:m}=P,z=!g&&p.length===0,t=a.useCallback((e,...u)=>{m&&console.log(`[AgentListing] ${e}`,...u)},[m]),f=a.useCallback(e=>{t("onSearchChange",e),h(e)},[t,h]),v=a.useCallback(e=>{t("onFilterChange",e),s?.(e)},[t,s]),F=a.useCallback(e=>{t("onSortChange",e),o?.(e)},[t,o]),S=a.useCallback(()=>{t("onNewAgent"),b()},[t,b]),O=a.useCallback(()=>{t("onBrowseTemplates"),l?.()},[t,l]),B=a.useCallback(e=>{t("onRunAgent",e.id),A(e)},[t,A]),E=a.useCallback(e=>{t("onEditAgent",e.id),C(e)},[t,C]),H=a.useCallback(e=>{t("onRowClick",e.id),r?.(e)},[t,r]);return n.jsxs(d.Page,{"data-test":j["data-test"]??"agent-listing",children:[n.jsx(V.AgentListingHeader,{title:R,onNewAgent:S,onBrowseTemplates:l?O:void 0}),n.jsx(M.AgentListingFilters,{searchValue:k,onSearchChange:f,searchPlaceholder:x,filterOptions:L,onFilterChange:s?v:void 0,filterPlaceholder:T,sortOptions:w,selectedSort:q,onSortChange:o?F:void 0}),n.jsx(d.Body,{children:g||z?n.jsx(d.EmptyHolder,{children:n.jsx(Z.ZeroState,{isLoading:g,title:c?.title??"No agents yet",subTitle:c?.subTitle??"Create your first AI agent to start automating conversations.",actionButton:c?.actionButton??{buttonText:"New AI agent",buttonType:"primary",size:"small",onClick:S}})}):n.jsxs(n.Fragment,{children:[n.jsx(_.AgentTable,{agents:p,onRunAgent:B,onEditAgent:E,onRowClick:r?H:void 0}),i&&i.totalRows>0&&n.jsx(I.TablePagination,{pageNumber:i.pageNumber,pageSize:i.pageSize,totalRows:i.totalRows,hidePageSizeOptions:i.hidePageSizeOptions,updatePageNumber:i.onPageChange,updatePageSize:e=>{const u=Array.isArray(e)?e[0]:e,y=Number(u?.value);Number.isNaN(y)||i.onPageSizeChange(y)}})]})})]})};N.displayName="AgentListing";exports.AgentListing=N;
|
|
2
|
-
//# sourceMappingURL=AgentListing.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AgentListing.js","sources":["../../../../src/components/agent-listing/AgentListing.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport { DropdownOption } from '@src/components/dropdown/type';\nimport { TablePagination } from '@src/components/TablePagination/TablePagination';\nimport { ZeroState } from '@src/components/zeroState/ZeroState';\nimport { AgentListingProps, AgentListItem } from './AgentListing.model';\nimport { Body, EmptyHolder, Page } from './AgentListing.styled';\nimport { AgentListingFilters } from './AgentListingFilters';\nimport { AgentListingHeader } from './AgentListingHeader';\nimport { AgentTable } from './AgentTable';\n\n/**\n * Full body of the \"AI Agents\" listing screen (header + filters + table).\n * Presentational and fully controlled — the consumer owns data, search, sort,\n * pagination and routing. Render it inside your app shell (next to the sidebar).\n *\n * @example\n * <AgentListing\n * agents={rows}\n * searchValue={search}\n * onSearchChange={setSearch}\n * onNewAgent={() => router.push('/agents/new')}\n * onRunAgent={runAgent}\n * onEditAgent={(a) => router.push(`/agents/${a.id}`)}\n * />\n */\nexport const AgentListing: React.FC<AgentListingProps> = ({\n\tconfig,\n\tonSearchChange,\n\tonFilterChange,\n\tonSortChange,\n\tonNewAgent,\n\tonBrowseTemplates,\n\tonRunAgent,\n\tonEditAgent,\n\tonRowClick,\n\t...rest\n}) => {\n\tconst {\n\t\tagents,\n\t\tisLoading,\n\t\tsearchValue,\n\t\tsearchPlaceholder = 'Search',\n\t\tfilterOptions,\n\t\tfilterPlaceholder = 'Filters',\n\t\tsortOptions,\n\t\tselectedSort,\n\t\ttitle = 'AI Agents',\n\t\tpagination,\n\t\temptyState,\n\t\tdebugLog,\n\t} = config;\n\n\tconst showEmpty = !isLoading && agents.length === 0;\n\n\t// Gated debug logging: each handler logs at its start only when `debugLog`.\n\tconst logAction = useCallback(\n\t\t(action: string, ...args: unknown[]) => {\n\t\t\tif (debugLog) {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.log(`[AgentListing] ${action}`, ...args);\n\t\t\t}\n\t\t},\n\t\t[debugLog],\n\t);\n\n\tconst handleSearchChange = useCallback(\n\t\t(v: string) => {\n\t\t\tlogAction('onSearchChange', v);\n\t\t\tonSearchChange(v);\n\t\t},\n\t\t[logAction, onSearchChange],\n\t);\n\tconst handleFilterChange = useCallback(\n\t\t(selected: DropdownOption | DropdownOption[]) => {\n\t\t\tlogAction('onFilterChange', selected);\n\t\t\tonFilterChange?.(selected);\n\t\t},\n\t\t[logAction, onFilterChange],\n\t);\n\tconst handleSortChange = useCallback(\n\t\t(v: string) => {\n\t\t\tlogAction('onSortChange', v);\n\t\t\tonSortChange?.(v);\n\t\t},\n\t\t[logAction, onSortChange],\n\t);\n\tconst handleNewAgent = useCallback(() => {\n\t\tlogAction('onNewAgent');\n\t\tonNewAgent();\n\t}, [logAction, onNewAgent]);\n\tconst handleBrowseTemplates = useCallback(() => {\n\t\tlogAction('onBrowseTemplates');\n\t\tonBrowseTemplates?.();\n\t}, [logAction, onBrowseTemplates]);\n\tconst handleRunAgent = useCallback(\n\t\t(agent: AgentListItem) => {\n\t\t\tlogAction('onRunAgent', agent.id);\n\t\t\tonRunAgent(agent);\n\t\t},\n\t\t[logAction, onRunAgent],\n\t);\n\tconst handleEditAgent = useCallback(\n\t\t(agent: AgentListItem) => {\n\t\t\tlogAction('onEditAgent', agent.id);\n\t\t\tonEditAgent(agent);\n\t\t},\n\t\t[logAction, onEditAgent],\n\t);\n\tconst handleRowClick = useCallback(\n\t\t(agent: AgentListItem) => {\n\t\t\tlogAction('onRowClick', agent.id);\n\t\t\tonRowClick?.(agent);\n\t\t},\n\t\t[logAction, onRowClick],\n\t);\n\n\treturn (\n\t\t<Page data-test={rest['data-test'] ?? 'agent-listing'}>\n\t\t\t<AgentListingHeader\n\t\t\t\ttitle={title}\n\t\t\t\tonNewAgent={handleNewAgent}\n\t\t\t\tonBrowseTemplates={\n\t\t\t\t\tonBrowseTemplates ? handleBrowseTemplates : undefined\n\t\t\t\t}\n\t\t\t/>\n\n\t\t\t<AgentListingFilters\n\t\t\t\tsearchValue={searchValue}\n\t\t\t\tonSearchChange={handleSearchChange}\n\t\t\t\tsearchPlaceholder={searchPlaceholder}\n\t\t\t\tfilterOptions={filterOptions}\n\t\t\t\tonFilterChange={onFilterChange ? handleFilterChange : undefined}\n\t\t\t\tfilterPlaceholder={filterPlaceholder}\n\t\t\t\tsortOptions={sortOptions}\n\t\t\t\tselectedSort={selectedSort}\n\t\t\t\tonSortChange={onSortChange ? handleSortChange : undefined}\n\t\t\t/>\n\n\t\t\t<Body>\n\t\t\t\t{isLoading || showEmpty ? (\n\t\t\t\t\t<EmptyHolder>\n\t\t\t\t\t\t<ZeroState\n\t\t\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\t\t\ttitle={emptyState?.title ?? 'No agents yet'}\n\t\t\t\t\t\t\tsubTitle={\n\t\t\t\t\t\t\t\temptyState?.subTitle ??\n\t\t\t\t\t\t\t\t'Create your first AI agent to start automating conversations.'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tactionButton={\n\t\t\t\t\t\t\t\temptyState?.actionButton ?? {\n\t\t\t\t\t\t\t\t\tbuttonText: 'New AI agent',\n\t\t\t\t\t\t\t\t\tbuttonType: 'primary',\n\t\t\t\t\t\t\t\t\tsize: 'small',\n\t\t\t\t\t\t\t\t\tonClick: handleNewAgent,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</EmptyHolder>\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<AgentTable\n\t\t\t\t\t\t\tagents={agents}\n\t\t\t\t\t\t\tonRunAgent={handleRunAgent}\n\t\t\t\t\t\t\tonEditAgent={handleEditAgent}\n\t\t\t\t\t\t\tonRowClick={onRowClick ? handleRowClick : undefined}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{pagination && pagination.totalRows > 0 && (\n\t\t\t\t\t\t\t<TablePagination\n\t\t\t\t\t\t\t\tpageNumber={pagination.pageNumber}\n\t\t\t\t\t\t\t\tpageSize={pagination.pageSize}\n\t\t\t\t\t\t\t\ttotalRows={pagination.totalRows}\n\t\t\t\t\t\t\t\thidePageSizeOptions={pagination.hidePageSizeOptions}\n\t\t\t\t\t\t\t\tupdatePageNumber={pagination.onPageChange}\n\t\t\t\t\t\t\t\tupdatePageSize={(opt) => {\n\t\t\t\t\t\t\t\t\tconst single = Array.isArray(opt) ? opt[0] : opt;\n\t\t\t\t\t\t\t\t\tconst value = Number((single as { value?: string })?.value);\n\t\t\t\t\t\t\t\t\tif (!Number.isNaN(value)) {\n\t\t\t\t\t\t\t\t\t\tpagination.onPageSizeChange(value);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</Body>\n\t\t</Page>\n\t);\n};\n\nAgentListing.displayName = 'AgentListing';\n"],"names":["AgentListing","config","onSearchChange","onFilterChange","onSortChange","onNewAgent","onBrowseTemplates","onRunAgent","onEditAgent","onRowClick","rest","agents","isLoading","searchValue","searchPlaceholder","filterOptions","filterPlaceholder","sortOptions","selectedSort","title","pagination","emptyState","debugLog","showEmpty","logAction","useCallback","action","args","handleSearchChange","v","handleFilterChange","selected","handleSortChange","handleNewAgent","handleBrowseTemplates","handleRunAgent","agent","handleEditAgent","handleRowClick","Page","jsx","AgentListingHeader","AgentListingFilters","Body","EmptyHolder","ZeroState","jsxs","Fragment","AgentTable","TablePagination","opt","single","value"],"mappings":"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"}
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("styled-components"),a=require("../../constants/Theme.js"),l=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},t=l(r),i="minmax(240px, 1.4fr) minmax(200px, 1.2fr) 140px 160px 120px",d=t.default.div.attrs({className:"bik-agent-listing-page"})`
|
|
2
|
-
display: flex;
|
|
3
|
-
flex-direction: column;
|
|
4
|
-
height: 100%;
|
|
5
|
-
width: 100%;
|
|
6
|
-
background: ${a.COLORS.surface.standard};
|
|
7
|
-
min-height: 0;
|
|
8
|
-
`,s=t.default.div.attrs({className:"bik-header-bar"})`
|
|
9
|
-
display: flex;
|
|
10
|
-
align-items: center;
|
|
11
|
-
justify-content: space-between;
|
|
12
|
-
height: 56px;
|
|
13
|
-
padding: 12px 16px;
|
|
14
|
-
border-bottom: 1px solid ${a.COLORS.stroke.primary};
|
|
15
|
-
flex-shrink: 0;
|
|
16
|
-
`,o=t.default.div.attrs({className:"bik-header-actions"})`
|
|
17
|
-
display: flex;
|
|
18
|
-
align-items: center;
|
|
19
|
-
gap: 8px;
|
|
20
|
-
`,n=t.default.div.attrs({className:"bik-filter-row"})`
|
|
21
|
-
display: flex;
|
|
22
|
-
align-items: center;
|
|
23
|
-
justify-content: space-between;
|
|
24
|
-
gap: 12px;
|
|
25
|
-
padding: 16px;
|
|
26
|
-
border-bottom: 1px solid ${a.COLORS.stroke.primary};
|
|
27
|
-
flex-shrink: 0;
|
|
28
|
-
`,c=t.default.div.attrs({className:"bik-filter-row-left"})`
|
|
29
|
-
display: flex;
|
|
30
|
-
align-items: center;
|
|
31
|
-
gap: 12px;
|
|
32
|
-
`,p=t.default.div.attrs({className:"bik-body"})`
|
|
33
|
-
display: flex;
|
|
34
|
-
flex-direction: column;
|
|
35
|
-
flex: 1;
|
|
36
|
-
min-height: 0;
|
|
37
|
-
padding: 16px;
|
|
38
|
-
gap: 8px;
|
|
39
|
-
`,f=t.default.div.attrs({className:"bik-table-card"})`
|
|
40
|
-
display: flex;
|
|
41
|
-
flex-direction: column;
|
|
42
|
-
flex: 1;
|
|
43
|
-
min-height: 0;
|
|
44
|
-
border: 1px solid ${a.COLORS.stroke.primary};
|
|
45
|
-
border-radius: 8px;
|
|
46
|
-
overflow: hidden;
|
|
47
|
-
`,u=t.default.div.attrs({className:"bik-table-scroll"})`
|
|
48
|
-
flex: 1;
|
|
49
|
-
min-height: 0;
|
|
50
|
-
overflow: auto;
|
|
51
|
-
`,x=t.default.div.attrs({className:"bik-header-grid-row"})`
|
|
52
|
-
display: grid;
|
|
53
|
-
grid-template-columns: ${i};
|
|
54
|
-
align-items: center;
|
|
55
|
-
height: 40px;
|
|
56
|
-
background: ${a.COLORS.surface.subdued};
|
|
57
|
-
border-bottom: 1px solid ${a.COLORS.stroke.primary};
|
|
58
|
-
position: sticky;
|
|
59
|
-
top: 0;
|
|
60
|
-
z-index: 1;
|
|
61
|
-
`,m=t.default.div.attrs({className:"bik-header-cell"})`
|
|
62
|
-
padding: 8px 12px;
|
|
63
|
-
text-align: ${e=>e.align??"left"};
|
|
64
|
-
display: flex;
|
|
65
|
-
justify-content: ${e=>e.align==="right"?"flex-end":e.align==="center"?"center":"flex-start"};
|
|
66
|
-
`,b=t.default.div.attrs({className:"bik-body-grid-row"})`
|
|
67
|
-
display: grid;
|
|
68
|
-
grid-template-columns: ${i};
|
|
69
|
-
align-items: center;
|
|
70
|
-
min-height: 72px;
|
|
71
|
-
border-bottom: 1px solid ${a.COLORS.stroke.primary};
|
|
72
|
-
cursor: ${e=>e.clickable?"pointer":"default"};
|
|
73
|
-
|
|
74
|
-
&:hover {
|
|
75
|
-
background: ${e=>e.clickable?a.COLORS.surface.subdued:"transparent"};
|
|
76
|
-
}
|
|
77
|
-
`,g=t.default.div.attrs({className:"bik-cell"})`
|
|
78
|
-
padding: 8px 12px;
|
|
79
|
-
min-width: 0;
|
|
80
|
-
display: flex;
|
|
81
|
-
flex-direction: column;
|
|
82
|
-
gap: 4px;
|
|
83
|
-
justify-content: center;
|
|
84
|
-
align-items: ${e=>e.align==="right"?"flex-end":e.align==="center"?"center":"flex-start"};
|
|
85
|
-
`,y=t.default.div.attrs({className:"bik-action-group"})`
|
|
86
|
-
display: inline-flex;
|
|
87
|
-
align-items: center;
|
|
88
|
-
border: 1px solid ${a.COLORS.stroke.primary};
|
|
89
|
-
border-radius: 4px;
|
|
90
|
-
overflow: hidden;
|
|
91
|
-
`,h=t.default.button.attrs({className:"bik-action-button"})`
|
|
92
|
-
width: 32px;
|
|
93
|
-
height: 32px;
|
|
94
|
-
display: flex;
|
|
95
|
-
align-items: center;
|
|
96
|
-
justify-content: center;
|
|
97
|
-
background: ${a.COLORS.surface.standard};
|
|
98
|
-
border: none;
|
|
99
|
-
padding: 0;
|
|
100
|
-
cursor: ${e=>e.disabled?"not-allowed":"pointer"};
|
|
101
|
-
opacity: ${e=>e.disabled?.4:1};
|
|
102
|
-
|
|
103
|
-
&:not(:last-child) {
|
|
104
|
-
border-right: 1px solid ${a.COLORS.stroke.primary};
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
&:hover {
|
|
108
|
-
background: ${e=>e.disabled?a.COLORS.surface.standard:a.COLORS.surface.subdued};
|
|
109
|
-
}
|
|
110
|
-
`,k=t.default.div.attrs({className:"bik-empty-holder"})`
|
|
111
|
-
flex: 1;
|
|
112
|
-
display: flex;
|
|
113
|
-
min-height: 0;
|
|
114
|
-
`;exports.ActionButton=h;exports.ActionGroup=y;exports.Body=p;exports.BodyGridRow=b;exports.Cell=g;exports.EmptyHolder=k;exports.FilterRow=n;exports.FilterRowLeft=c;exports.HeaderActions=o;exports.HeaderBar=s;exports.HeaderCell=m;exports.HeaderGridRow=x;exports.Page=d;exports.TABLE_GRID_COLUMNS=i;exports.TableCard=f;exports.TableScroll=u;
|
|
115
|
-
//# sourceMappingURL=AgentListing.styled.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AgentListing.styled.js","sources":["../../../../src/components/agent-listing/AgentListing.styled.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { COLORS } from '@src/constants/Theme';\n\n/** Shared column template for header + body rows so they always align. */\nexport const TABLE_GRID_COLUMNS =\n\t'minmax(240px, 1.4fr) minmax(200px, 1.2fr) 140px 160px 120px';\n\nexport const Page = styled.div.attrs({ className: 'bik-agent-listing-page' })`\n\tdisplay: flex;\n\tflex-direction: column;\n\theight: 100%;\n\twidth: 100%;\n\tbackground: ${COLORS.surface.standard};\n\tmin-height: 0;\n`;\n\nexport const HeaderBar = styled.div.attrs({ className: 'bik-header-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 HeaderActions = styled.div.attrs({\n\tclassName: 'bik-header-actions',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n`;\n\nexport const FilterRow = styled.div.attrs({ className: 'bik-filter-row' })`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tgap: 12px;\n\tpadding: 16px;\n\tborder-bottom: 1px solid ${COLORS.stroke.primary};\n\tflex-shrink: 0;\n`;\n\nexport const FilterRowLeft = styled.div.attrs({\n\tclassName: 'bik-filter-row-left',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 12px;\n`;\n\nexport const Body = styled.div.attrs({ className: 'bik-body' })`\n\tdisplay: flex;\n\tflex-direction: column;\n\tflex: 1;\n\tmin-height: 0;\n\tpadding: 16px;\n\tgap: 8px;\n`;\n\nexport const TableCard = styled.div.attrs({ className: 'bik-table-card' })`\n\tdisplay: flex;\n\tflex-direction: column;\n\tflex: 1;\n\tmin-height: 0;\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 8px;\n\toverflow: hidden;\n`;\n\nexport const TableScroll = styled.div.attrs({ className: 'bik-table-scroll' })`\n\tflex: 1;\n\tmin-height: 0;\n\toverflow: auto;\n`;\n\nexport const HeaderGridRow = styled.div.attrs({\n\tclassName: 'bik-header-grid-row',\n})`\n\tdisplay: grid;\n\tgrid-template-columns: ${TABLE_GRID_COLUMNS};\n\talign-items: center;\n\theight: 40px;\n\tbackground: ${COLORS.surface.subdued};\n\tborder-bottom: 1px solid ${COLORS.stroke.primary};\n\tposition: sticky;\n\ttop: 0;\n\tz-index: 1;\n`;\n\nexport const HeaderCell = styled.div.attrs({ className: 'bik-header-cell' })<{\n\talign?: 'left' | 'right' | 'center';\n}>`\n\tpadding: 8px 12px;\n\ttext-align: ${(p) => p.align ?? 'left'};\n\tdisplay: flex;\n\tjustify-content: ${(p) =>\n\t\tp.align === 'right'\n\t\t\t? 'flex-end'\n\t\t\t: p.align === 'center'\n\t\t\t? 'center'\n\t\t\t: 'flex-start'};\n`;\n\nexport const BodyGridRow = styled.div.attrs({\n\tclassName: 'bik-body-grid-row',\n})<{ clickable?: boolean }>`\n\tdisplay: grid;\n\tgrid-template-columns: ${TABLE_GRID_COLUMNS};\n\talign-items: center;\n\tmin-height: 72px;\n\tborder-bottom: 1px solid ${COLORS.stroke.primary};\n\tcursor: ${(p) => (p.clickable ? 'pointer' : 'default')};\n\n\t&:hover {\n\t\tbackground: ${(p) =>\n\t\t\tp.clickable ? COLORS.surface.subdued : 'transparent'};\n\t}\n`;\n\nexport const Cell = styled.div.attrs({ className: 'bik-cell' })<{\n\talign?: 'left' | 'right' | 'center';\n}>`\n\tpadding: 8px 12px;\n\tmin-width: 0;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px;\n\tjustify-content: center;\n\talign-items: ${(p) =>\n\t\tp.align === 'right'\n\t\t\t? 'flex-end'\n\t\t\t: p.align === 'center'\n\t\t\t? 'center'\n\t\t\t: 'flex-start'};\n`;\n\n/** Bordered icon-button group used in the Actions cell. */\nexport const ActionGroup = styled.div.attrs({ className: 'bik-action-group' })`\n\tdisplay: inline-flex;\n\talign-items: center;\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 4px;\n\toverflow: hidden;\n`;\n\nexport const ActionButton = styled.button.attrs({\n\tclassName: 'bik-action-button',\n})<{ disabled?: boolean }>`\n\twidth: 32px;\n\theight: 32px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tbackground: ${COLORS.surface.standard};\n\tborder: none;\n\tpadding: 0;\n\tcursor: ${(p) => (p.disabled ? 'not-allowed' : 'pointer')};\n\topacity: ${(p) => (p.disabled ? 0.4 : 1)};\n\n\t&:not(:last-child) {\n\t\tborder-right: 1px solid ${COLORS.stroke.primary};\n\t}\n\n\t&:hover {\n\t\tbackground: ${(p) =>\n\t\t\tp.disabled ? COLORS.surface.standard : COLORS.surface.subdued};\n\t}\n`;\n\nexport const EmptyHolder = styled.div.attrs({ className: 'bik-empty-holder' })`\n\tflex: 1;\n\tdisplay: flex;\n\tmin-height: 0;\n`;\n"],"names":["TABLE_GRID_COLUMNS","Page","styled","COLORS","HeaderBar","HeaderActions","FilterRow","FilterRowLeft","Body","TableCard","TableScroll","HeaderGridRow","HeaderCell","p","BodyGridRow","Cell","ActionGroup","ActionButton","EmptyHolder"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),x=require("../../assets/icons/search.svg.js"),w=require("../../constants/Theme.js"),o=require("./AgentListing.styled.js"),j=require("../input/Input.js"),a=require("../dropdown/Dropdown.js"),v=({searchValue:c,onSearchChange:u,searchPlaceholder:d,filterOptions:r,onFilterChange:s,filterPlaceholder:h,sortOptions:l,selectedSort:p,onSortChange:n})=>{const g=(l??[]).map(e=>({label:e.label,value:e.value,selected:e.value===p}));return t.jsxs(o.FilterRow,{children:[t.jsxs(o.FilterRowLeft,{children:[t.jsx(j.Input,{"data-test":"agent-search",variant:"small",width:"320px",type:"text",value:c,placeholder:d,hideInputHeader:!0,noErrorHint:!0,leftIcon:{icon:()=>t.jsx(x.default,{width:18,height:18,color:w.COLORS.content.placeholder})},onChangeText:e=>u(e)}),r&&s&&t.jsx(a.Dropdown,{"data-test":"agent-filters",size:"small",width:"140px",placeHolder:h,showPlaceholderWhenSelected:!0,options:r,isMultiSelect:!0,onSelect:s})]}),l&&n&&t.jsx(a.Dropdown,{"data-test":"agent-sort",size:"small",width:"200px",options:g,onSelect:e=>{const i=(Array.isArray(e)?e[0]:e)?.value;i&&n(i)}})]})};exports.AgentListingFilters=v;
|
|
2
|
-
//# sourceMappingURL=AgentListingFilters.js.map
|