@bikdotai/bik-component-library 0.0.836 → 0.0.837-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/dist/cjs/components/agent-builder/AgentBuilder.js +1 -1
  2. package/dist/cjs/components/agent-builder/AgentBuilder.js.map +1 -1
  3. package/dist/cjs/components/agent-builder/AgentBuilder.styled.js +41 -23
  4. package/dist/cjs/components/agent-builder/AgentBuilder.styled.js.map +1 -1
  5. package/dist/cjs/components/agent-builder/components/AgentBuilderFooter.js +1 -1
  6. package/dist/cjs/components/agent-builder/components/AgentBuilderFooter.js.map +1 -1
  7. package/dist/cjs/components/agent-builder/components/AgentBuilderTopBar.js +1 -1
  8. package/dist/cjs/components/agent-builder/components/AgentBuilderTopBar.js.map +1 -1
  9. package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js +1 -1
  10. package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
  11. package/dist/cjs/components/agent-builder/components/DiscardModal.js +1 -1
  12. package/dist/cjs/components/agent-builder/components/DiscardModal.js.map +1 -1
  13. package/dist/cjs/components/agent-builder/components/GoLiveModal.js +1 -1
  14. package/dist/cjs/components/agent-builder/components/GoLiveModal.js.map +1 -1
  15. package/dist/cjs/components/agent-builder/components/MentionPicker.js +2 -2
  16. package/dist/cjs/components/agent-builder/components/MentionPicker.js.map +1 -1
  17. package/dist/cjs/components/agent-builder/components/RestApiToolPanel.js +1 -1
  18. package/dist/cjs/components/agent-builder/components/RestApiToolPanel.js.map +1 -1
  19. package/dist/cjs/components/agent-builder/components/SelectableListSection.js +6 -6
  20. package/dist/cjs/components/agent-builder/components/SelectableListSection.js.map +1 -1
  21. package/dist/cjs/components/agent-builder/components/StepSectionHeader.js +1 -1
  22. package/dist/cjs/components/agent-builder/components/StepSectionHeader.js.map +1 -1
  23. package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js +1 -1
  24. package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
  25. package/dist/cjs/components/agent-builder/steps/Step2WhenItStepsIn.js +3 -1
  26. package/dist/cjs/components/agent-builder/steps/Step2WhenItStepsIn.js.map +1 -1
  27. package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js +1 -1
  28. package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
  29. package/dist/cjs/components/agent-builder/steps/Step4HandoverRules.js +1 -1
  30. package/dist/cjs/components/agent-builder/steps/Step4HandoverRules.js.map +1 -1
  31. package/dist/cjs/components/agent-builder/utils/mentionSerialization.js +5 -3
  32. package/dist/cjs/components/agent-builder/utils/mentionSerialization.js.map +1 -1
  33. package/dist/cjs/components/agent-listing/AgentListing.js +1 -1
  34. package/dist/cjs/components/agent-listing/AgentListing.js.map +1 -1
  35. package/dist/cjs/components/agent-listing/AgentTable.js +1 -1
  36. package/dist/cjs/components/agent-listing/AgentTable.js.map +1 -1
  37. package/dist/cjs/components/agent-listing/AgentTableRow.js +1 -1
  38. package/dist/cjs/components/agent-listing/AgentTableRow.js.map +1 -1
  39. package/dist/cjs/components/agent-listing/AgentTableShimmer.js +2 -0
  40. package/dist/cjs/components/agent-listing/AgentTableShimmer.js.map +1 -0
  41. package/dist/cjs/components/button/Button.styled.js +1 -0
  42. package/dist/cjs/components/button/Button.styled.js.map +1 -1
  43. package/dist/cjs/components/dropdown/Dropdown.js +1 -1
  44. package/dist/cjs/components/dropdown/Dropdown.js.map +1 -1
  45. package/dist/cjs/editor/BikEditor.js +1 -1
  46. package/dist/cjs/editor/BikEditor.js.map +1 -1
  47. package/dist/cjs/editor/BikEditor.styles.js +74 -42
  48. package/dist/cjs/editor/BikEditor.styles.js.map +1 -1
  49. package/dist/esm/components/agent-builder/AgentBuilder.js +80 -77
  50. package/dist/esm/components/agent-builder/AgentBuilder.js.map +1 -1
  51. package/dist/esm/components/agent-builder/AgentBuilder.styled.d.ts +3 -0
  52. package/dist/esm/components/agent-builder/AgentBuilder.styled.js +106 -84
  53. package/dist/esm/components/agent-builder/AgentBuilder.styled.js.map +1 -1
  54. package/dist/esm/components/agent-builder/__fixtures__/agentValue.d.ts +11 -0
  55. package/dist/esm/components/agent-builder/components/AgentBuilderFooter.js +29 -21
  56. package/dist/esm/components/agent-builder/components/AgentBuilderFooter.js.map +1 -1
  57. package/dist/esm/components/agent-builder/components/AgentBuilderTopBar.js +21 -21
  58. package/dist/esm/components/agent-builder/components/AgentBuilderTopBar.js.map +1 -1
  59. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js +24 -23
  60. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
  61. package/dist/esm/components/agent-builder/components/DiscardModal.js +15 -8
  62. package/dist/esm/components/agent-builder/components/DiscardModal.js.map +1 -1
  63. package/dist/esm/components/agent-builder/components/GoLiveModal.js +11 -11
  64. package/dist/esm/components/agent-builder/components/GoLiveModal.js.map +1 -1
  65. package/dist/esm/components/agent-builder/components/MentionPicker.js +41 -40
  66. package/dist/esm/components/agent-builder/components/MentionPicker.js.map +1 -1
  67. package/dist/esm/components/agent-builder/components/RestApiToolPanel.js +22 -21
  68. package/dist/esm/components/agent-builder/components/RestApiToolPanel.js.map +1 -1
  69. package/dist/esm/components/agent-builder/components/SelectableListSection.d.ts +13 -4
  70. package/dist/esm/components/agent-builder/components/SelectableListSection.js +167 -144
  71. package/dist/esm/components/agent-builder/components/SelectableListSection.js.map +1 -1
  72. package/dist/esm/components/agent-builder/components/StepSectionHeader.js +7 -7
  73. package/dist/esm/components/agent-builder/components/StepSectionHeader.js.map +1 -1
  74. package/dist/esm/components/agent-builder/context/AgentBuilderContext.js +104 -103
  75. package/dist/esm/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
  76. package/dist/esm/components/agent-builder/steps/Step2WhenItStepsIn.js +84 -82
  77. package/dist/esm/components/agent-builder/steps/Step2WhenItStepsIn.js.map +1 -1
  78. package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js +20 -19
  79. package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
  80. package/dist/esm/components/agent-builder/steps/Step4HandoverRules.js +23 -79
  81. package/dist/esm/components/agent-builder/steps/Step4HandoverRules.js.map +1 -1
  82. package/dist/esm/components/agent-builder/utils/mentionSerialization.js +37 -25
  83. package/dist/esm/components/agent-builder/utils/mentionSerialization.js.map +1 -1
  84. package/dist/esm/components/agent-listing/AgentListing.js +70 -65
  85. package/dist/esm/components/agent-listing/AgentListing.js.map +1 -1
  86. package/dist/esm/components/agent-listing/AgentTable.d.ts +2 -0
  87. package/dist/esm/components/agent-listing/AgentTable.js +16 -15
  88. package/dist/esm/components/agent-listing/AgentTable.js.map +1 -1
  89. package/dist/esm/components/agent-listing/AgentTableRow.js +7 -7
  90. package/dist/esm/components/agent-listing/AgentTableRow.js.map +1 -1
  91. package/dist/esm/components/agent-listing/AgentTableShimmer.d.ts +12 -0
  92. package/dist/esm/components/agent-listing/AgentTableShimmer.js +20 -0
  93. package/dist/esm/components/agent-listing/AgentTableShimmer.js.map +1 -0
  94. package/dist/esm/components/agent-listing/__fixtures__/agents.d.ts +3 -0
  95. package/dist/esm/components/button/Button.styled.js +25 -19
  96. package/dist/esm/components/button/Button.styled.js.map +1 -1
  97. package/dist/esm/components/dropdown/Dropdown.js +18 -13
  98. package/dist/esm/components/dropdown/Dropdown.js.map +1 -1
  99. package/dist/esm/editor/BikEditor.js +173 -160
  100. package/dist/esm/editor/BikEditor.js.map +1 -1
  101. package/dist/esm/editor/BikEditor.styles.d.ts +20 -3
  102. package/dist/esm/editor/BikEditor.styles.js +78 -44
  103. package/dist/esm/editor/BikEditor.styles.js.map +1 -1
  104. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown.js","sources":["../../../../src/components/dropdown/Dropdown.tsx"],"sourcesContent":["import React, { Ref, useEffect, useRef, useState } from 'react';\nimport { BASE_COLORS, COLORS } from '@src/constants/Theme';\nimport DownIcon from '../../assets/icons/chevronDown.svg';\nimport { Input } from '../input';\nimport { InputStyleContext } from '../input/context/InputStyleProvider';\nimport ChipInput from './ChipInput';\nimport { DropdownPopover } from './DropdownPopover';\nimport { getSelectedOptionsAsText } from './OpenedDropdown/utils/iterationOnOptions';\nimport {\n\tDropdownOption,\n\tGroupedOption,\n\tOpenDropdownProps,\n\tSingleOption,\n} from './type';\n\nexport type DropdownProps = OpenDropdownProps & {\n\tplaceHolder?: string;\n\tsize?: 'default' | 'small' | 'x-small';\n\tdisabled?: boolean;\n\tnoErrorHint?: boolean;\n\tbuttonWidth?: string;\n\tplaceHolderHeight?: string;\n\tshowPlaceholderWhenSelected?: boolean;\n\tinputStyle?: React.CSSProperties;\n\tinputType?: 'chip' | 'default';\n\tonDeleteChip?: (chip: SingleOption) => void;\n\ttruncatedText?: boolean;\n\t'data-test'?: string;\n\tshowLeadingIconInPlaceholder?: boolean;\n\tshowTrailingIconPlaceholder?: boolean;\n\tshowLabelsOnMoreHover?: boolean;\n\tbackgroundColor?: string;\n\tvalue?: string;\n\tshowSelected?: boolean;\n\t/** Fired when the dropdown opens/closes. Runs alongside internal open state. */\n\tonDropdownVisbilityChange?: (isOpen: boolean) => void;\n};\n\nfunction noop() {\n\t/** empty */\n}\n\nexport const Dropdown: React.FC<DropdownProps> = ({\n\tplaceHolder,\n\tsize,\n\tonSelect,\n\tdefaultOptions,\n\tdisabled,\n\tnoErrorHint,\n\tplaceHolderHeight,\n\tshowPlaceholderWhenSelected = false,\n\tinputStyle = {},\n\tinputType = 'default',\n\tonDeleteChip,\n\ttruncatedText,\n\tshowLeadingIconInPlaceholder = false,\n\tshowTrailingIconPlaceholder = false,\n\tshowLabelsOnMoreHover = false,\n\tvalue,\n\tshowSelected = false,\n\tonDropdownVisbilityChange,\n\t...openDropdownProps\n}) => {\n\tconst [isDropdownOpened, setDropdownOpenFlag] = useState(false);\n\tconst [isHovering, setIsHovering] = useState(false);\n\tconst sizeToUse = size ?? 'default';\n\tconst dropdownVisibilityRef = useRef<{\n\t\topenDropdown: boolean;\n\t}>();\n\tconst [selectedOption, setSelectedOption] = useState<DropdownOption[]>(\n\t\tdefaultOptions ?? [],\n\t);\n\tfunction handleSelection(option: DropdownOption | DropdownOption[]) {\n\t\tif (Array.isArray(option)) {\n\t\t\tsetSelectedOption([...option]);\n\t\t} else {\n\t\t\tsetSelectedOption([...[option]]);\n\t\t}\n\t\tonSelect?.(option);\n\t}\n\n\tuseEffect(() => {\n\t\tconst flatSelectedOption: SingleOption[] = [];\n\t\topenDropdownProps?.options?.forEach((option) => {\n\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\t(option as GroupedOption).options.forEach((op) => {\n\t\t\t\t\tif (op.selected) {\n\t\t\t\t\t\tflatSelectedOption.push({\n\t\t\t\t\t\t\t...op,\n\t\t\t\t\t\t\tlabel: op.label,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tif ((option as SingleOption).selected) {\n\t\t\t\t\tflatSelectedOption.push(option as SingleOption);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tsetSelectedOption([...flatSelectedOption]);\n\t}, [openDropdownProps.options]);\n\n\tuseEffect(() => {\n\t\tif (defaultOptions) {\n\t\t\tsetSelectedOption([...defaultOptions]);\n\t\t}\n\t}, [defaultOptions]);\n\n\tconst textVal = getSelectedOptionsAsText(selectedOption);\n\tconst displayText = showPlaceholderWhenSelected\n\t\t? placeHolder\n\t\t: textVal ?? placeHolder ?? 'Select an option';\n\n\tconst configuredMaxWidth = openDropdownProps.buttonWidth;\n\n\t// Shared width for the input wrapper and dropdown popover\n\tconst inputWidth = configuredMaxWidth ?? openDropdownProps.width ?? '100%';\n\n\t// Width passed to dropdown popover — matches input box width\n\tconst dropdownWidth = openDropdownProps.dropdownWidth ?? inputWidth;\n\n\treturn (\n\t\t<>\n\t\t\t<InputStyleContext.Provider\n\t\t\t\tvalue={{\n\t\t\t\t\tInputWrapper: {\n\t\t\t\t\t\theight: placeHolderHeight\n\t\t\t\t\t\t\t? placeHolderHeight\n\t\t\t\t\t\t\t: sizeToUse === 'x-small'\n\t\t\t\t\t\t\t? 24\n\t\t\t\t\t\t\t: sizeToUse === 'small'\n\t\t\t\t\t\t\t? 32\n\t\t\t\t\t\t\t: 48,\n\t\t\t\t\t\twidth: inputWidth,\n\t\t\t\t\t\t...(configuredMaxWidth ? { maxWidth: configuredMaxWidth } : {}),\n\t\t\t\t\t\tzIndex: 1,\n\t\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\t\tpadding: sizeToUse === 'x-small' ? '4px 8px' : '6px 8px',\n\t\t\t\t\t\tbackgroundColor:\n\t\t\t\t\t\t\topenDropdownProps.version === '3.0'\n\t\t\t\t\t\t\t\t? isDropdownOpened || isHovering\n\t\t\t\t\t\t\t\t\t? COLORS.surface.hovered\n\t\t\t\t\t\t\t\t\t: COLORS.surface.standard\n\t\t\t\t\t\t\t\t: showSelected && value !== undefined\n\t\t\t\t\t\t\t\t? BASE_COLORS.positive['100']\n\t\t\t\t\t\t\t\t: isHovering\n\t\t\t\t\t\t\t\t? COLORS.background.inactive\n\t\t\t\t\t\t\t\t: COLORS.surface.standard,\n\t\t\t\t\t\ttransition: 'background-color 0.3s ease',\n\t\t\t\t\t\t...inputStyle,\n\t\t\t\t\t},\n\t\t\t\t\tinput: {\n\t\t\t\t\t\tminHeight: '100%',\n\t\t\t\t\t\tmaxWidth: '100%',\n\t\t\t\t\t\tcolor:\n\t\t\t\t\t\t\tshowSelected && value !== undefined\n\t\t\t\t\t\t\t\t? COLORS.content.positive\n\t\t\t\t\t\t\t\t: 'inherit',\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tonMouseEnter={() => setIsHovering(true)}\n\t\t\t\t\tonMouseLeave={() => setIsHovering(false)}\n\t\t\t\t\tstyle={\n\t\t\t\t\t\topenDropdownProps.width\n\t\t\t\t\t\t\t? { width: openDropdownProps.width }\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<DropdownPopover\n\t\t\t\t\t\tdata-test={openDropdownProps['data-test']}\n\t\t\t\t\t\tref={\n\t\t\t\t\t\t\tdropdownVisibilityRef as Ref<{\n\t\t\t\t\t\t\t\topenDropdown: boolean;\n\t\t\t\t\t\t\t}>\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonSelect={handleSelection}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t{...openDropdownProps}\n\t\t\t\t\t\tonDropdownVisbilityChange={(isOpen) => {\n\t\t\t\t\t\t\t// Keep the internal open flag (carat/open styling) AND forward\n\t\t\t\t\t\t\t// to a consumer-provided handler so callers can react to open state.\n\t\t\t\t\t\t\tsetDropdownOpenFlag(isOpen);\n\t\t\t\t\t\t\tonDropdownVisbilityChange?.(isOpen);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\twidth={dropdownWidth}\n\t\t\t\t\t>\n\t\t\t\t\t\t{inputType == 'default' && (\n\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\tversion={openDropdownProps.version}\n\t\t\t\t\t\t\t\tnoErrorHint={noErrorHint}\n\t\t\t\t\t\t\t\tstate={disabled ? 'disabled' : 'none'}\n\t\t\t\t\t\t\t\tvalue={value === undefined ? displayText : value}\n\t\t\t\t\t\t\t\terrorMessage={openDropdownProps.error}\n\t\t\t\t\t\t\t\tvariant={sizeToUse}\n\t\t\t\t\t\t\t\tplaceholder={placeHolder ?? 'Select an option'}\n\t\t\t\t\t\t\t\tonChangeText={noop}\n\t\t\t\t\t\t\t\tleftIcon={\n\t\t\t\t\t\t\t\t\tshowLeadingIconInPlaceholder && selectedOption[0]?.leadingIcon\n\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\ticon: () => <>{selectedOption[0]?.leadingIcon}</>,\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\trightIcon={{\n\t\t\t\t\t\t\t\t\ticon: () => (\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\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\t{showTrailingIconPlaceholder &&\n\t\t\t\t\t\t\t\t\t\t\t\t(selectedOption[0] as SingleOption)?.trailingIcon}\n\t\t\t\t\t\t\t\t\t\t\t<DownIcon\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\ttransform: isDropdownOpened\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 'rotate(180deg)'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 'rotate(0deg)',\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\tonClick={noop}\n\t\t\t\t\t\t\t\t\t\t\t\twidth={\n\t\t\t\t\t\t\t\t\t\t\t\t\tsizeToUse === 'x-small'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 16\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: sizeToUse === 'small'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 20\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 24\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\theight={\n\t\t\t\t\t\t\t\t\t\t\t\t\tsizeToUse === 'x-small'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 16\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: sizeToUse === 'small'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 20\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 24\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\tcolor={\n\t\t\t\t\t\t\t\t\t\t\t\t\tshowSelected\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? COLORS.content.positive\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: COLORS.content.primary\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/>\n\t\t\t\t\t\t\t\t\t\t</div>\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\ttruncateText={truncatedText ?? true}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{inputType == 'chip' && (\n\t\t\t\t\t\t\t<ChipInput\n\t\t\t\t\t\t\t\tplaceholder={placeHolder ?? 'Select options'}\n\t\t\t\t\t\t\t\tchips={selectedOption as SingleOption[]}\n\t\t\t\t\t\t\t\tonDeleteChip={(chip) => {\n\t\t\t\t\t\t\t\t\tonDeleteChip?.(chip);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\terrorMessage={openDropdownProps.error}\n\t\t\t\t\t\t\t\tisDropdownOpened={isDropdownOpened}\n\t\t\t\t\t\t\t\tsizeToUse={sizeToUse}\n\t\t\t\t\t\t\t\tcontainerStyle={{\n\t\t\t\t\t\t\t\t\twidth: openDropdownProps.width ?? '100%',\n\t\t\t\t\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tshowLabelsOnMoreHover={showLabelsOnMoreHover}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</DropdownPopover>\n\t\t\t\t</div>\n\t\t\t</InputStyleContext.Provider>\n\t\t</>\n\t);\n};\n\nDropdown.displayName = 'Dropdown';\n"],"names":["noop","Dropdown","placeHolder","size","onSelect","defaultOptions","disabled","noErrorHint","placeHolderHeight","showPlaceholderWhenSelected","inputStyle","inputType","onDeleteChip","truncatedText","showLeadingIconInPlaceholder","showTrailingIconPlaceholder","showLabelsOnMoreHover","value","showSelected","onDropdownVisbilityChange","openDropdownProps","isDropdownOpened","setDropdownOpenFlag","useState","isHovering","setIsHovering","sizeToUse","dropdownVisibilityRef","useRef","selectedOption","setSelectedOption","handleSelection","option","useEffect","flatSelectedOption","op","textVal","getSelectedOptionsAsText","displayText","configuredMaxWidth","inputWidth","dropdownWidth","jsx","Fragment","InputStyleContext","COLORS","BASE_COLORS","jsxs","DropdownPopover","isOpen","Input","DownIcon","ChipInput","chip"],"mappings":"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"}
1
+ {"version":3,"file":"Dropdown.js","sources":["../../../../src/components/dropdown/Dropdown.tsx"],"sourcesContent":["import React, { Ref, useEffect, useRef, useState } from 'react';\nimport { BASE_COLORS, COLORS } from '@src/constants/Theme';\nimport DownIcon from '../../assets/icons/chevronDown.svg';\nimport { Input } from '../input';\nimport { InputStyleContext } from '../input/context/InputStyleProvider';\nimport ChipInput from './ChipInput';\nimport { DropdownPopover } from './DropdownPopover';\nimport { getSelectedOptionsAsText } from './OpenedDropdown/utils/iterationOnOptions';\nimport {\n\tDropdownOption,\n\tGroupedOption,\n\tOpenDropdownProps,\n\tSingleOption,\n} from './type';\n\nexport type DropdownProps = OpenDropdownProps & {\n\tplaceHolder?: string;\n\tsize?: 'default' | 'small' | 'x-small';\n\tdisabled?: boolean;\n\tnoErrorHint?: boolean;\n\tbuttonWidth?: string;\n\tplaceHolderHeight?: string;\n\tshowPlaceholderWhenSelected?: boolean;\n\tinputStyle?: React.CSSProperties;\n\tinputType?: 'chip' | 'default';\n\tonDeleteChip?: (chip: SingleOption) => void;\n\ttruncatedText?: boolean;\n\t'data-test'?: string;\n\tshowLeadingIconInPlaceholder?: boolean;\n\tshowTrailingIconPlaceholder?: boolean;\n\tshowLabelsOnMoreHover?: boolean;\n\tbackgroundColor?: string;\n\tvalue?: string;\n\tshowSelected?: boolean;\n\t/** Fired when the dropdown opens/closes. Runs alongside internal open state. */\n\tonDropdownVisbilityChange?: (isOpen: boolean) => void;\n};\n\nfunction noop() {\n\t/** empty */\n}\n\nexport const Dropdown: React.FC<DropdownProps> = ({\n\tplaceHolder,\n\tsize,\n\tonSelect,\n\tdefaultOptions,\n\tdisabled,\n\tnoErrorHint,\n\tplaceHolderHeight,\n\tshowPlaceholderWhenSelected = false,\n\tinputStyle = {},\n\tinputType = 'default',\n\tonDeleteChip,\n\ttruncatedText,\n\tshowLeadingIconInPlaceholder = false,\n\tshowTrailingIconPlaceholder = false,\n\tshowLabelsOnMoreHover = false,\n\tvalue,\n\tshowSelected = false,\n\tonDropdownVisbilityChange,\n\t...openDropdownProps\n}) => {\n\tconst [isDropdownOpened, setDropdownOpenFlag] = useState(false);\n\tconst [isHovering, setIsHovering] = useState(false);\n\tconst sizeToUse = size ?? 'default';\n\tconst dropdownVisibilityRef = useRef<{\n\t\topenDropdown: boolean;\n\t}>();\n\tconst [selectedOption, setSelectedOption] = useState<DropdownOption[]>(\n\t\tdefaultOptions ?? [],\n\t);\n\tfunction handleSelection(option: DropdownOption | DropdownOption[]) {\n\t\tif (Array.isArray(option)) {\n\t\t\tsetSelectedOption([...option]);\n\t\t} else {\n\t\t\tsetSelectedOption([...[option]]);\n\t\t}\n\t\tonSelect?.(option);\n\t}\n\n\tuseEffect(() => {\n\t\tconst flatSelectedOption: SingleOption[] = [];\n\t\topenDropdownProps?.options?.forEach((option) => {\n\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\t(option as GroupedOption).options.forEach((op) => {\n\t\t\t\t\tif (op.selected) {\n\t\t\t\t\t\tflatSelectedOption.push({\n\t\t\t\t\t\t\t...op,\n\t\t\t\t\t\t\tlabel: op.label,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tif ((option as SingleOption).selected) {\n\t\t\t\t\tflatSelectedOption.push(option as SingleOption);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tsetSelectedOption([...flatSelectedOption]);\n\t}, [openDropdownProps.options]);\n\n\tuseEffect(() => {\n\t\tif (defaultOptions) {\n\t\t\tsetSelectedOption([...defaultOptions]);\n\t\t}\n\t}, [defaultOptions]);\n\n\tconst textVal = getSelectedOptionsAsText(selectedOption);\n\tconst displayText = showPlaceholderWhenSelected\n\t\t? placeHolder\n\t\t: textVal ?? placeHolder ?? 'Select an option';\n\n\tconst configuredMaxWidth = openDropdownProps.buttonWidth;\n\n\t// Shared width for the input wrapper and dropdown popover\n\tconst inputWidth = configuredMaxWidth ?? openDropdownProps.width ?? '100%';\n\n\t// Width passed to dropdown popover — matches input box width\n\tconst dropdownWidth = openDropdownProps.dropdownWidth ?? inputWidth;\n\n\treturn (\n\t\t<>\n\t\t\t<InputStyleContext.Provider\n\t\t\t\tvalue={{\n\t\t\t\t\tInputWrapper: {\n\t\t\t\t\t\theight: placeHolderHeight\n\t\t\t\t\t\t\t? placeHolderHeight\n\t\t\t\t\t\t\t: sizeToUse === 'x-small'\n\t\t\t\t\t\t\t? 24\n\t\t\t\t\t\t\t: sizeToUse === 'small'\n\t\t\t\t\t\t\t? 32\n\t\t\t\t\t\t\t: 48,\n\t\t\t\t\t\twidth: inputWidth,\n\t\t\t\t\t\t...(configuredMaxWidth ? { maxWidth: configuredMaxWidth } : {}),\n\t\t\t\t\t\tzIndex: 1,\n\t\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\t\tpadding: sizeToUse === 'x-small' ? '4px 8px' : '6px 8px',\n\t\t\t\t\t\tbackgroundColor:\n\t\t\t\t\t\t\topenDropdownProps.version === '3.0'\n\t\t\t\t\t\t\t\t? isDropdownOpened || isHovering\n\t\t\t\t\t\t\t\t\t? COLORS.surface.hovered\n\t\t\t\t\t\t\t\t\t: COLORS.surface.standard\n\t\t\t\t\t\t\t\t: showSelected && value !== undefined\n\t\t\t\t\t\t\t\t? BASE_COLORS.positive['100']\n\t\t\t\t\t\t\t\t: // The hover wrapper also contains the popover, so while the\n\t\t\t\t\t\t\t\t// dropdown is open, hovering an option would grey the input\n\t\t\t\t\t\t\t\t// — only show hover feedback while closed.\n\t\t\t\t\t\t\t\tisHovering && !isDropdownOpened\n\t\t\t\t\t\t\t\t? COLORS.background.inactive\n\t\t\t\t\t\t\t\t: COLORS.surface.standard,\n\t\t\t\t\t\ttransition: 'background-color 0.3s ease',\n\t\t\t\t\t\t...inputStyle,\n\t\t\t\t\t},\n\t\t\t\t\tinput: {\n\t\t\t\t\t\tminHeight: '100%',\n\t\t\t\t\t\tmaxWidth: '100%',\n\t\t\t\t\t\tcolor:\n\t\t\t\t\t\t\tshowSelected && value !== undefined\n\t\t\t\t\t\t\t\t? COLORS.content.positive\n\t\t\t\t\t\t\t\t: 'inherit',\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tonMouseEnter={() => setIsHovering(true)}\n\t\t\t\t\tonMouseLeave={() => setIsHovering(false)}\n\t\t\t\t\tstyle={\n\t\t\t\t\t\topenDropdownProps.width\n\t\t\t\t\t\t\t? { width: openDropdownProps.width }\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<DropdownPopover\n\t\t\t\t\t\tdata-test={openDropdownProps['data-test']}\n\t\t\t\t\t\tref={\n\t\t\t\t\t\t\tdropdownVisibilityRef as Ref<{\n\t\t\t\t\t\t\t\topenDropdown: boolean;\n\t\t\t\t\t\t\t}>\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonSelect={handleSelection}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t{...openDropdownProps}\n\t\t\t\t\t\tonDropdownVisbilityChange={(isOpen) => {\n\t\t\t\t\t\t\t// Keep the internal open flag (carat/open styling) AND forward\n\t\t\t\t\t\t\t// to a consumer-provided handler so callers can react to open state.\n\t\t\t\t\t\t\tsetDropdownOpenFlag(isOpen);\n\t\t\t\t\t\t\tonDropdownVisbilityChange?.(isOpen);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\twidth={dropdownWidth}\n\t\t\t\t\t>\n\t\t\t\t\t\t{inputType == 'default' && (\n\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\tversion={openDropdownProps.version}\n\t\t\t\t\t\t\t\tnoErrorHint={noErrorHint}\n\t\t\t\t\t\t\t\tstate={disabled ? 'disabled' : 'none'}\n\t\t\t\t\t\t\t\tvalue={value === undefined ? displayText : value}\n\t\t\t\t\t\t\t\terrorMessage={openDropdownProps.error}\n\t\t\t\t\t\t\t\tvariant={sizeToUse}\n\t\t\t\t\t\t\t\tplaceholder={placeHolder ?? 'Select an option'}\n\t\t\t\t\t\t\t\tonChangeText={noop}\n\t\t\t\t\t\t\t\tleftIcon={\n\t\t\t\t\t\t\t\t\tshowLeadingIconInPlaceholder && selectedOption[0]?.leadingIcon\n\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\ticon: () => <>{selectedOption[0]?.leadingIcon}</>,\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\trightIcon={{\n\t\t\t\t\t\t\t\t\ticon: () => (\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\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\t{showTrailingIconPlaceholder &&\n\t\t\t\t\t\t\t\t\t\t\t\t(selectedOption[0] as SingleOption)?.trailingIcon}\n\t\t\t\t\t\t\t\t\t\t\t<DownIcon\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\ttransform: isDropdownOpened\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 'rotate(180deg)'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 'rotate(0deg)',\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\tonClick={noop}\n\t\t\t\t\t\t\t\t\t\t\t\twidth={\n\t\t\t\t\t\t\t\t\t\t\t\t\tsizeToUse === 'x-small'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 16\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: sizeToUse === 'small'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 20\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 24\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\theight={\n\t\t\t\t\t\t\t\t\t\t\t\t\tsizeToUse === 'x-small'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 16\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: sizeToUse === 'small'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 20\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 24\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\tcolor={\n\t\t\t\t\t\t\t\t\t\t\t\t\tshowSelected\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? COLORS.content.positive\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: COLORS.content.primary\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/>\n\t\t\t\t\t\t\t\t\t\t</div>\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\ttruncateText={truncatedText ?? true}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{inputType == 'chip' && (\n\t\t\t\t\t\t\t<ChipInput\n\t\t\t\t\t\t\t\tplaceholder={placeHolder ?? 'Select options'}\n\t\t\t\t\t\t\t\tchips={selectedOption as SingleOption[]}\n\t\t\t\t\t\t\t\tonDeleteChip={(chip) => {\n\t\t\t\t\t\t\t\t\tonDeleteChip?.(chip);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\terrorMessage={openDropdownProps.error}\n\t\t\t\t\t\t\t\tisDropdownOpened={isDropdownOpened}\n\t\t\t\t\t\t\t\tsizeToUse={sizeToUse}\n\t\t\t\t\t\t\t\tcontainerStyle={{\n\t\t\t\t\t\t\t\t\twidth: openDropdownProps.width ?? '100%',\n\t\t\t\t\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tshowLabelsOnMoreHover={showLabelsOnMoreHover}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</DropdownPopover>\n\t\t\t\t</div>\n\t\t\t</InputStyleContext.Provider>\n\t\t</>\n\t);\n};\n\nDropdown.displayName = 'Dropdown';\n"],"names":["noop","Dropdown","placeHolder","size","onSelect","defaultOptions","disabled","noErrorHint","placeHolderHeight","showPlaceholderWhenSelected","inputStyle","inputType","onDeleteChip","truncatedText","showLeadingIconInPlaceholder","showTrailingIconPlaceholder","showLabelsOnMoreHover","value","showSelected","onDropdownVisbilityChange","openDropdownProps","isDropdownOpened","setDropdownOpenFlag","useState","isHovering","setIsHovering","sizeToUse","dropdownVisibilityRef","useRef","selectedOption","setSelectedOption","handleSelection","option","useEffect","flatSelectedOption","op","textVal","getSelectedOptionsAsText","displayText","configuredMaxWidth","inputWidth","dropdownWidth","jsx","Fragment","InputStyleContext","COLORS","BASE_COLORS","jsxs","DropdownPopover","isOpen","Input","DownIcon","ChipInput","chip"],"mappings":"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"}
@@ -1,125 +1,129 @@
1
- import { jsxs as g, jsx as h } from "react/jsx-runtime";
2
- import { getMarkRange as kt } from "../node_modules/@tiptap/core/dist/index.js";
3
- import { useEditor as yt, EditorContent as Bt } from "@tiptap/react";
4
- import { forwardRef as bt, useState as G, useRef as a, useEffect as xt, useImperativeHandle as vt } from "react";
5
- import { BodyCaption as K } from "../components/TypographyStyle.js";
6
- import { BikEditorShell as At, BikJsonHeader as Tt, BikJsonError as Et } from "./BikEditor.styles.js";
7
- import { DEFAULT_FORMAT_STATE as X } from "./BikEditor.types.js";
8
- import { buildJsonCodeBlockHtml as Rt, buildSectionedContent as Y, normalizeHtml as i, extractActiveFormats as tt, extractContent as et, parseJson as p, getCodeBlockText as d, extractBodyContent as It, extractSectionContent as Lt, setCodeBlockText as b, findSectionEndPos as nt, findSectionStartPos as Mt, setSectionContentInEditor as T, insertInlineHtml as Ot } from "./BikEditor.utils.js";
9
- import { buildExtensions as Jt } from "./extensions/buildExtensions.js";
10
- import { LinkBubbleMenu as Ft } from "./floating/LinkBubbleMenu.js";
11
- import Nt from "../icons/BIK AI specific/WandSparkles.js";
12
- import jt from "../icons/Actions/Formatting/Copy.js";
13
- function zt(y) {
14
- return Object.entries(y).map(
15
- ([x, S]) => `${x.replace(/([A-Z])/g, (k) => `-${k.toLowerCase()}`)}:${S}`
1
+ import { jsxs as u, jsx as l } from "react/jsx-runtime";
2
+ import { getMarkRange as xt } from "../node_modules/@tiptap/core/dist/index.js";
3
+ import { useEditor as vt, EditorContent as X } from "@tiptap/react";
4
+ import { forwardRef as bt, useState as A, useRef as a, useEffect as Et, useImperativeHandle as At } from "react";
5
+ import { BodyCaption as Y } from "../components/TypographyStyle.js";
6
+ import { BikEditorShell as Tt, BikJsonHeader as Rt, BikJsonBody as It, BikJsonEmptyState as Jt, BikJsonError as Lt } from "./BikEditor.styles.js";
7
+ import { DEFAULT_FORMAT_STATE as tt } from "./BikEditor.types.js";
8
+ import { buildJsonCodeBlockHtml as Mt, buildSectionedContent as et, normalizeHtml as i, extractActiveFormats as nt, extractContent as ot, getCodeBlockText as g, parseJson as p, extractBodyContent as Ot, extractSectionContent as Ft, setCodeBlockText as x, findSectionEndPos as rt, findSectionStartPos as zt, setSectionContentInEditor as T, insertInlineHtml as Nt } from "./BikEditor.utils.js";
9
+ import { buildExtensions as jt } from "./extensions/buildExtensions.js";
10
+ import { LinkBubbleMenu as Ht } from "./floating/LinkBubbleMenu.js";
11
+ import wt from "../icons/BIK AI specific/WandSparkles.js";
12
+ import Pt from "../icons/Actions/Formatting/Copy.js";
13
+ import Dt from "../icons/Actions/Common actions/Code.js";
14
+ import qt from "../icons/Informational/General/Info.js";
15
+ function Ut(k) {
16
+ return Object.entries(k).map(
17
+ ([v, C]) => `${v.replace(/([A-Z])/g, (y) => `-${y.toLowerCase()}`)}:${C}`
16
18
  ).join(";");
17
19
  }
18
- const Ht = (y, x) => {
20
+ const $t = (k, v) => {
19
21
  const {
20
- initialContent: S,
21
- sections: k,
22
+ initialContent: C,
23
+ sections: y,
22
24
  features: B,
23
- disabled: ot,
24
- maxCharacters: E,
25
- characterLimit: rt,
26
- shortcuts: st,
27
- sendShortcut: it,
28
- mentions: l,
29
- slashCommands: C,
30
- link: ct,
31
- onPaste: at,
32
- onReady: R,
33
- onChange: I,
34
- onSend: v,
25
+ disabled: st,
26
+ maxCharacters: R,
27
+ characterLimit: it,
28
+ shortcuts: ct,
29
+ sendShortcut: at,
30
+ mentions: d,
31
+ slashCommands: S,
32
+ link: lt,
33
+ onPaste: dt,
34
+ onReady: I,
35
+ onChange: J,
36
+ onSend: b,
35
37
  onFocus: L,
36
38
  onBlur: M,
37
39
  onSelectionChange: O,
38
- minHeight: lt,
39
- maxHeight: dt,
40
- style: ut,
41
- className: mt,
42
- editorClassName: J,
43
- editorStyle: F,
40
+ minHeight: ut,
41
+ maxHeight: mt,
42
+ style: ft,
43
+ className: gt,
44
+ editorClassName: F,
45
+ editorStyle: z,
44
46
  renderJsonError: N
45
- } = y, m = !!B?.jsonMode, [u, j] = G(null), [ft, z] = G(!1), gt = m ? Rt(S ?? "") : k?.length ? Y(
46
- i(S ?? ""),
47
- k.map((t) => ({ ...t, content: i(t.content) }))
48
- ) : i(S ?? ""), A = a([]), H = a(!1), w = a(R);
49
- w.current = R;
50
- const P = a(I);
51
- P.current = I;
52
- const D = a(O);
53
- D.current = O;
54
- const q = a(X), U = a(L);
55
- U.current = L;
56
- const W = a(M);
57
- W.current = M;
58
- const $ = a(v);
59
- $.current = v;
60
- const V = a(l?.agents ?? []);
61
- V.current = l?.agents ?? [];
62
- const _ = a(l?.teams ?? []);
63
- _.current = l?.teams ?? [];
64
- const Q = a(C?.items ?? []);
65
- Q.current = C?.items ?? [];
66
- const n = yt({
67
- extensions: Jt({
47
+ } = k, m = !!B?.jsonMode, [f, j] = A(null), [ht, H] = A(!1), [pt, w] = A(
48
+ m && !(C ?? "").trim()
49
+ ), Ct = m ? Mt(C ?? "") : y?.length ? et(
50
+ i(C ?? ""),
51
+ y.map((t) => ({ ...t, content: i(t.content) }))
52
+ ) : i(C ?? ""), E = a([]), P = a(!1), D = a(I);
53
+ D.current = I;
54
+ const q = a(J);
55
+ q.current = J;
56
+ const U = a(O);
57
+ U.current = O;
58
+ const $ = a(tt), W = a(L);
59
+ W.current = L;
60
+ const V = a(M);
61
+ V.current = M;
62
+ const _ = a(b);
63
+ _.current = b;
64
+ const Q = a(d?.agents ?? []);
65
+ Q.current = d?.agents ?? [];
66
+ const Z = a(d?.teams ?? []);
67
+ Z.current = d?.teams ?? [];
68
+ const G = a(S?.items ?? []);
69
+ G.current = S?.items ?? [];
70
+ const n = vt({
71
+ extensions: jt({
68
72
  features: B,
69
- placeholder: y.placeholder,
70
- maxCharacters: E,
71
- characterLimit: rt,
72
- hasSections: (k?.length ?? 0) > 0,
73
+ placeholder: k.placeholder,
74
+ maxCharacters: R,
75
+ characterLimit: it,
76
+ hasSections: (y?.length ?? 0) > 0,
73
77
  mentions: {
74
- agents: l ? V : void 0,
75
- teams: l ? _ : void 0
78
+ agents: d ? Q : void 0,
79
+ teams: d ? Z : void 0
76
80
  },
77
- slashCommands: C ? Q : void 0,
78
- onPaste: at,
79
- onSend: v ? (t) => $.current?.(t) : void 0,
80
- sendShortcut: it,
81
- shortcuts: st,
82
- onMentionSelected: l?.onSelect,
83
- onSlashCommandSelected: C?.onSelect,
84
- renderMentionItem: l?.renderItem,
85
- renderMentionDropdown: l?.renderDropdown,
86
- removeMentionTriggerOnDismiss: l?.removeTriggerOnDismiss,
87
- renderSlashCommandItem: C?.renderItem,
88
- renderSlashCommandDropdown: C?.renderDropdown
81
+ slashCommands: S ? G : void 0,
82
+ onPaste: dt,
83
+ onSend: b ? (t) => _.current?.(t) : void 0,
84
+ sendShortcut: at,
85
+ shortcuts: ct,
86
+ onMentionSelected: d?.onSelect,
87
+ onSlashCommandSelected: S?.onSelect,
88
+ renderMentionItem: d?.renderItem,
89
+ renderMentionDropdown: d?.renderDropdown,
90
+ removeMentionTriggerOnDismiss: d?.removeTriggerOnDismiss,
91
+ renderSlashCommandItem: S?.renderItem,
92
+ renderSlashCommandDropdown: S?.renderDropdown
89
93
  }),
90
- content: gt,
91
- editable: !ot,
94
+ content: Ct,
95
+ editable: !st,
92
96
  immediatelyRender: !1,
93
97
  // SSR-safe — NEVER remove this
94
98
  editorProps: {
95
99
  attributes: {
96
- ...J ? { class: J } : {},
97
- ...F ? { style: zt(F) } : {}
100
+ ...F ? { class: F } : {},
101
+ ...z ? { style: Ut(z) } : {}
98
102
  }
99
103
  },
100
104
  onUpdate: ({ editor: t }) => {
101
- if (P.current?.(et(t)), m) {
102
- const e = p(d(t));
103
- j(e.valid ? null : e);
105
+ if (q.current?.(ot(t)), m) {
106
+ const e = g(t), o = p(e);
107
+ j(o.valid ? null : o), w(!e.trim());
104
108
  }
105
109
  },
106
110
  onTransaction: ({ editor: t }) => {
107
- const e = tt(t), o = q.current;
108
- (o.bold !== e.bold || o.italic !== e.italic || o.underline !== e.underline || o.strike !== e.strike || o.bulletList !== e.bulletList || o.orderedList !== e.orderedList || o.blockquote !== e.blockquote || o.codeBlock !== e.codeBlock || o.superscript !== e.superscript || o.subscript !== e.subscript || o.textAlign !== e.textAlign || o.fontFamily !== e.fontFamily || o.fontSize !== e.fontSize || o.color !== e.color || o.highlight !== e.highlight || o.link?.href !== e.link?.href) && (q.current = e, D.current?.(e));
111
+ const e = nt(t), o = $.current;
112
+ (o.bold !== e.bold || o.italic !== e.italic || o.underline !== e.underline || o.strike !== e.strike || o.bulletList !== e.bulletList || o.orderedList !== e.orderedList || o.blockquote !== e.blockquote || o.codeBlock !== e.codeBlock || o.superscript !== e.superscript || o.subscript !== e.subscript || o.textAlign !== e.textAlign || o.fontFamily !== e.fontFamily || o.fontSize !== e.fontSize || o.color !== e.color || o.highlight !== e.highlight || o.link?.href !== e.link?.href) && ($.current = e, U.current?.(e));
109
113
  },
110
- onFocus: () => U.current?.(),
111
- onBlur: () => W.current?.()
114
+ onFocus: () => W.current?.(),
115
+ onBlur: () => V.current?.()
112
116
  });
113
117
  function s(t) {
114
- n ? t(n) : A.current.push(t);
118
+ n ? t(n) : E.current.push(t);
115
119
  }
116
- xt(() => {
117
- if (n && (A.current.length > 0 && A.current.splice(0).forEach((e) => e(n)), H.current || (H.current = !0, w.current?.()), m)) {
118
- const t = p(d(n));
119
- j(t.valid ? null : t);
120
+ Et(() => {
121
+ if (n && (E.current.length > 0 && E.current.splice(0).forEach((e) => e(n)), P.current || (P.current = !0, D.current?.()), m)) {
122
+ const t = g(n), e = p(t);
123
+ j(e.valid ? null : e), w(!t.trim());
120
124
  }
121
- }, [n, m]), vt(
122
- x,
125
+ }, [n, m]), At(
126
+ v,
123
127
  () => ({
124
128
  // ── Focus ────────────────────────────────────────────────────────
125
129
  focus: (t) => s((e) => e.commands.focus(t)),
@@ -135,7 +139,7 @@ const Ht = (y, x) => {
135
139
  s((o) => o.commands.insertContent(e));
136
140
  },
137
141
  insertInlineContent: (t) => {
138
- s((e) => Ot(e, t));
142
+ s((e) => Nt(e, t));
139
143
  },
140
144
  insertAtStart: (t) => {
141
145
  const e = i(t);
@@ -160,7 +164,7 @@ const Ht = (y, x) => {
160
164
  appendContent(t) {
161
165
  this.appendInline(t);
162
166
  },
163
- getContent: () => n ? et(n) : { html: "", text: "", isEmpty: !0, characterCount: 0 },
167
+ getContent: () => n ? ot(n) : { html: "", text: "", isEmpty: !0, characterCount: 0 },
164
168
  getJSON: () => n?.getJSON() ?? null,
165
169
  getMentions: () => {
166
170
  const t = /* @__PURE__ */ new Set(), e = /* @__PURE__ */ new Set();
@@ -185,19 +189,19 @@ const Ht = (y, x) => {
185
189
  return t.doc.textBetween(e, o, " ");
186
190
  const c = t.schema.marks.link;
187
191
  if (c) {
188
- const f = kt(t.doc.resolve(e), c);
189
- if (f)
190
- return t.doc.textBetween(f.from, f.to, " ");
192
+ const h = xt(t.doc.resolve(e), c);
193
+ if (h)
194
+ return t.doc.textBetween(h.from, h.to, " ");
191
195
  }
192
196
  return "";
193
197
  },
194
198
  // ── Character count ───────────────────────────────────────────────
195
199
  getCharacterCount: () => ({
196
200
  count: n?.storage.characterCount?.characters?.() ?? n?.getText().length ?? 0,
197
- limit: E ?? null
201
+ limit: R ?? null
198
202
  }),
199
203
  // ── Sections ─────────────────────────────────────────────────────
200
- getSectionContent: (t) => n ? Lt(n, t) : { html: "", text: "", isEmpty: !0, characterCount: 0 },
204
+ getSectionContent: (t) => n ? Ft(n, t) : { html: "", text: "", isEmpty: !0, characterCount: 0 },
201
205
  setSectionContent: (t, e) => {
202
206
  const o = i(e);
203
207
  s((r) => T(r, t, o));
@@ -206,7 +210,7 @@ const Ht = (y, x) => {
206
210
  s((e) => {
207
211
  if (t === "body") {
208
212
  let r = e.state.doc.content.size - 1;
209
- e.state.doc.descendants((c, f) => (c.type.name === "sectionDivider" && r === e.state.doc.content.size - 1 && (r = f - 1), r === e.state.doc.content.size - 1)), r < 1 && (r = 1), e.chain().focus().setTextSelection(r).run();
213
+ e.state.doc.descendants((c, h) => (c.type.name === "sectionDivider" && r === e.state.doc.content.size - 1 && (r = h - 1), r === e.state.doc.content.size - 1)), r < 1 && (r = 1), e.chain().focus().setTextSelection(r).run();
210
214
  return;
211
215
  }
212
216
  let o = -1;
@@ -220,13 +224,13 @@ const Ht = (y, x) => {
220
224
  s((e) => T(e, t, "<p></p>"));
221
225
  },
222
226
  // ── Convenience body shorthands ───────────────────────────────────
223
- getBodyContent: () => n ? It(n) : { html: "", text: "", isEmpty: !0, characterCount: 0 },
227
+ getBodyContent: () => n ? Ot(n) : { html: "", text: "", isEmpty: !0, characterCount: 0 },
224
228
  setBodyContent: (t) => {
225
229
  const e = i(t);
226
230
  s((o) => T(o, "body", e));
227
231
  },
228
232
  setBodyAndSections: (t, e) => {
229
- const o = Y(
233
+ const o = et(
230
234
  i(t),
231
235
  e.map((r) => ({
232
236
  id: r.id,
@@ -238,7 +242,7 @@ const Ht = (y, x) => {
238
242
  appendBodyContent: (t) => {
239
243
  const e = i(t);
240
244
  s((o) => {
241
- const r = nt(o, "body");
245
+ const r = rt(o, "body");
242
246
  o.commands.insertContentAt(r - 1, e, {
243
247
  parseOptions: { preserveWhitespace: !0 }
244
248
  });
@@ -247,7 +251,7 @@ const Ht = (y, x) => {
247
251
  insertAtSectionStart: (t, e) => {
248
252
  const o = i(e);
249
253
  s((r) => {
250
- const c = Mt(r, t);
254
+ const c = zt(r, t);
251
255
  c !== -1 && r.commands.insertContentAt(c, o, {
252
256
  parseOptions: { preserveWhitespace: !0 }
253
257
  });
@@ -256,14 +260,14 @@ const Ht = (y, x) => {
256
260
  insertAtSectionEnd: (t, e) => {
257
261
  const o = i(e);
258
262
  s((r) => {
259
- const c = nt(r, t);
263
+ const c = rt(r, t);
260
264
  r.commands.insertContentAt(c, o, {
261
265
  parseOptions: { preserveWhitespace: !0 }
262
266
  });
263
267
  });
264
268
  },
265
269
  // ── Formats & actions ─────────────────────────────────────────────
266
- getActiveFormats: () => n ? tt(n) : X,
270
+ getActiveFormats: () => n ? nt(n) : tt,
267
271
  actions: {
268
272
  toggleBold: () => n?.chain().focus().toggleBold().run(),
269
273
  toggleItalic: () => n?.chain().focus().toggleItalic().run(),
@@ -282,12 +286,12 @@ const Ht = (y, x) => {
282
286
  unsetHighlight: () => n?.chain().focus().unsetHighlight().run(),
283
287
  setLink: (t, e) => {
284
288
  n && (e !== void 0 ? n.chain().focus().extendMarkRange("link").command(({ tr: o, state: r }) => {
285
- const { from: c, to: f } = o.selection, Z = r.schema.marks.link;
286
- if (!Z) return !1;
287
- const Ct = r.schema.text(e, [
288
- Z.create({ href: t })
289
- ]), St = r.schema.text(" ");
290
- return o.replaceWith(c, f, [Ct, St]), !0;
289
+ const { from: c, to: h } = o.selection, K = r.schema.marks.link;
290
+ if (!K) return !1;
291
+ const yt = r.schema.text(e, [
292
+ K.create({ href: t })
293
+ ]), Bt = r.schema.text(" ");
294
+ return o.replaceWith(c, h, [yt, Bt]), !0;
291
295
  }).run() : n.chain().focus().extendMarkRange("link").setLink({ href: t }).insertContent(" ").run());
292
296
  },
293
297
  updateLink: (t) => n?.chain().focus().extendMarkRange("link").setLink({ href: t }).run(),
@@ -305,82 +309,91 @@ const Ht = (y, x) => {
305
309
  },
306
310
  // ── JSON body ─────────────────────────────────────────────────────
307
311
  json: B?.jsonMode ? {
308
- getText: () => n ? d(n) : "",
309
- setText: (t) => s((e) => b(e, t)),
310
- parse: () => p(n ? d(n) : ""),
311
- isValid: () => p(n ? d(n) : "").valid,
312
+ getText: () => n ? g(n) : "",
313
+ setText: (t) => s((e) => x(e, t)),
314
+ parse: () => p(n ? g(n) : ""),
315
+ isValid: () => p(n ? g(n) : "").valid,
312
316
  format: (t = 2) => s((e) => {
313
- const { valid: o, value: r } = p(d(e));
314
- !o || r === null || b(e, JSON.stringify(r, null, t));
317
+ const { valid: o, value: r } = p(g(e));
318
+ !o || r === null || x(e, JSON.stringify(r, null, t));
315
319
  }),
316
320
  minify: () => s((t) => {
317
- const { valid: e, value: o } = p(d(t));
318
- !e || o === null || b(t, JSON.stringify(o));
321
+ const { valid: e, value: o } = p(g(t));
322
+ !e || o === null || x(t, JSON.stringify(o));
319
323
  })
320
324
  } : void 0
321
325
  }),
322
326
  // eslint-disable-next-line react-hooks/exhaustive-deps
323
327
  [n]
324
328
  );
325
- const ht = () => {
329
+ const St = () => {
326
330
  if (!n) return;
327
- const { valid: t, value: e } = p(d(n));
328
- !t || e === null || b(n, JSON.stringify(e, null, 2));
329
- }, pt = () => {
330
- n && (navigator.clipboard?.writeText(d(n)), z(!0), setTimeout(() => z(!1), 1500));
331
+ const { valid: t, value: e } = p(g(n));
332
+ !t || e === null || x(n, JSON.stringify(e, null, 2));
333
+ }, kt = () => {
334
+ n && (navigator.clipboard?.writeText(g(n)), H(!0), setTimeout(() => H(!1), 1500));
331
335
  };
332
- return n ? /* @__PURE__ */ g(
333
- At,
336
+ return n ? /* @__PURE__ */ u(
337
+ Tt,
334
338
  {
335
- minHeight: lt,
336
- maxHeight: dt,
339
+ minHeight: ut,
340
+ maxHeight: mt,
337
341
  tightParagraphs: !B?.richPaste,
338
342
  jsonMode: m,
339
- style: ut,
340
- className: mt,
343
+ style: ft,
344
+ className: gt,
341
345
  children: [
342
- m && /* @__PURE__ */ g(Tt, { children: [
343
- /* @__PURE__ */ h("span", { className: "bik-json-header-label", children: "JSON" }),
344
- /* @__PURE__ */ g("div", { className: "bik-json-header-actions", children: [
345
- /* @__PURE__ */ g(
346
+ m && /* @__PURE__ */ u(Rt, { children: [
347
+ /* @__PURE__ */ l("span", { className: "bik-json-header-label", children: "JSON" }),
348
+ /* @__PURE__ */ u("div", { className: "bik-json-header-actions", children: [
349
+ /* @__PURE__ */ u(
346
350
  "button",
347
351
  {
348
352
  type: "button",
349
- onClick: ht,
350
- disabled: !!u,
353
+ onClick: St,
354
+ disabled: !!f,
351
355
  title: "Format JSON",
352
356
  children: [
353
- /* @__PURE__ */ h(Nt, { size: 16 }),
354
- /* @__PURE__ */ h(K, { children: "Beautify" })
357
+ /* @__PURE__ */ l(wt, { size: 16 }),
358
+ /* @__PURE__ */ l(Y, { children: "Beautify" })
355
359
  ]
356
360
  }
357
361
  ),
358
- /* @__PURE__ */ g("button", { type: "button", onClick: pt, title: "Copy JSON", children: [
359
- /* @__PURE__ */ h(jt, { size: 16 }),
360
- ft && /* @__PURE__ */ h(K, { children: "Copied" })
362
+ /* @__PURE__ */ u("button", { type: "button", onClick: kt, title: "Copy JSON", children: [
363
+ /* @__PURE__ */ l(Pt, { size: 16 }),
364
+ ht && /* @__PURE__ */ l(Y, { children: "Copied" })
361
365
  ] })
362
366
  ] })
363
367
  ] }),
364
- /* @__PURE__ */ h(Bt, { editor: n }),
365
- /* @__PURE__ */ h(Ft, { editor: n, renderLinkTooltip: ct?.renderTooltip }),
366
- m && u ? N ? N(u) : /* @__PURE__ */ g(Et, { children: [
367
- u.line != null && /* @__PURE__ */ g("strong", { children: [
368
- "Line ",
369
- u.line,
370
- u.column != null ? `, column ${u.column}` : "",
371
- ":",
372
- " "
373
- ] }),
374
- u.error
368
+ m ? /* @__PURE__ */ u(It, { $error: !!f, children: [
369
+ /* @__PURE__ */ l(X, { editor: n }),
370
+ pt && /* @__PURE__ */ u(Jt, { "aria-hidden": !0, children: [
371
+ /* @__PURE__ */ l(Dt, { size: 20 }),
372
+ /* @__PURE__ */ l("span", { children: k.placeholder ?? "Type or paste JSON here" })
373
+ ] })
374
+ ] }) : /* @__PURE__ */ l(X, { editor: n }),
375
+ /* @__PURE__ */ l(Ht, { editor: n, renderLinkTooltip: lt?.renderTooltip }),
376
+ m && f ? N ? N(f) : /* @__PURE__ */ u(Lt, { children: [
377
+ /* @__PURE__ */ l(qt, { size: 16 }),
378
+ /* @__PURE__ */ u("span", { children: [
379
+ f.line != null && /* @__PURE__ */ u("strong", { children: [
380
+ "Line ",
381
+ f.line,
382
+ f.column != null ? `, column ${f.column}` : "",
383
+ ":",
384
+ " "
385
+ ] }),
386
+ f.error
387
+ ] })
375
388
  ] }) : null
376
389
  ]
377
390
  }
378
391
  ) : null;
379
- }, wt = bt(
380
- Ht
392
+ }, Wt = bt(
393
+ $t
381
394
  );
382
- wt.displayName = "BikEditor";
395
+ Wt.displayName = "BikEditor";
383
396
  export {
384
- wt as BikEditor
397
+ Wt as BikEditor
385
398
  };
386
399
  //# sourceMappingURL=BikEditor.js.map