@fluentui-copilot/react-chat-input-plugins 0.0.0-nightly-20250507-0406-4976ea07.1 → 0.0.0-nightly-20250508-0405-6eff905d.1

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/CHANGELOG.json CHANGED
@@ -2,9 +2,9 @@
2
2
  "name": "@fluentui-copilot/react-chat-input-plugins",
3
3
  "entries": [
4
4
  {
5
- "date": "Wed, 07 May 2025 04:13:50 GMT",
6
- "tag": "@fluentui-copilot/react-chat-input-plugins_v0.0.0-nightly-20250507-0406-4976ea07.1",
7
- "version": "0.0.0-nightly-20250507-0406-4976ea07.1",
5
+ "date": "Thu, 08 May 2025 04:12:40 GMT",
6
+ "tag": "@fluentui-copilot/react-chat-input-plugins_v0.0.0-nightly-20250508-0405-6eff905d.1",
7
+ "version": "0.0.0-nightly-20250508-0405-6eff905d.1",
8
8
  "comments": {
9
9
  "prerelease": [
10
10
  {
package/CHANGELOG.md CHANGED
@@ -1,13 +1,13 @@
1
1
  # Change Log - @fluentui-copilot/react-chat-input-plugins
2
2
 
3
- This log was last generated on Wed, 07 May 2025 04:13:50 GMT and should not be manually modified.
3
+ This log was last generated on Thu, 08 May 2025 04:12:40 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
- ## [0.0.0-nightly-20250507-0406-4976ea07.1](https://github.com/microsoft/fluentai/tree/@fluentui-copilot/react-chat-input-plugins_v0.0.0-nightly-20250507-0406-4976ea07.1)
7
+ ## [0.0.0-nightly-20250508-0405-6eff905d.1](https://github.com/microsoft/fluentai/tree/@fluentui-copilot/react-chat-input-plugins_v0.0.0-nightly-20250508-0405-6eff905d.1)
8
8
 
9
- Wed, 07 May 2025 04:13:50 GMT
10
- [Compare changes](https://github.com/microsoft/fluentai/compare/@fluentui-copilot/react-chat-input-plugins_v0.4.9..@fluentui-copilot/react-chat-input-plugins_v0.0.0-nightly-20250507-0406-4976ea07.1)
9
+ Thu, 08 May 2025 04:12:40 GMT
10
+ [Compare changes](https://github.com/microsoft/fluentai/compare/@fluentui-copilot/react-chat-input-plugins_v0.4.9..@fluentui-copilot/react-chat-input-plugins_v0.0.0-nightly-20250508-0405-6eff905d.1)
11
11
 
12
12
  ### Changes
13
13
 
@@ -30,8 +30,10 @@ export const BasicFunctionalityPlugin = React.forwardRef((props, ref) => {
30
30
  const setDefaultValue = React.useRef(false);
31
31
  // useIsomorphicLayoutEffect is used to avoid flickering on first render
32
32
  useIsomorphicLayoutEffect(() => {
33
- if (defaultValue && basicFunctionalityImpl && !setDefaultValue.current) {
34
- basicFunctionalityImpl.insertDefaultValue(defaultValue);
33
+ if (basicFunctionalityImpl && !setDefaultValue.current) {
34
+ if (defaultValue) {
35
+ basicFunctionalityImpl.insertDefaultValue(defaultValue);
36
+ }
35
37
  setDefaultValue.current = true;
36
38
  }
37
39
  }, [basicFunctionalityImpl, defaultValue, editor]);
@@ -1 +1 @@
1
- {"version":3,"sources":["BasicFunctionality.ts"],"sourcesContent":["import * as React from 'react';\nimport { useLexicalComposerContext } from '@fluentui-copilot/react-text-editor';\nimport { useIsomorphicLayoutEffect } from '@fluentui/react-components';\nimport type { IBasicFunctionalityBase } from '@fluentui-copilot/chat-input-plugins';\nimport { BasicFunctionalityBase } from '@fluentui-copilot/chat-input-plugins';\n\nexport type BasicFunctionalityPluginProps = {\n defaultValue?: string;\n // Whether or not to clear the input when only whitespace is remaining\n trimWhitespace?: boolean;\n onCountChanged?: (count: number) => void;\n onContentChange?: (value: string) => void;\n onPaste?: (event: ClipboardEvent) => void;\n isSentinelNodeEnabled?: boolean;\n};\n\nexport type BasicFunctionalityPluginRef = {\n setIsDisabled: (isDisabled: boolean) => void;\n};\n\nexport const BasicFunctionalityPlugin = React.forwardRef<BasicFunctionalityPluginRef, BasicFunctionalityPluginProps>(\n (props, ref) => {\n const { defaultValue, trimWhitespace, onCountChanged, onContentChange, onPaste, isSentinelNodeEnabled } = props;\n\n const [editor] = useLexicalComposerContext();\n\n const [basicFunctionalityImpl, setBasicFunctionalityImpl] = React.useState<IBasicFunctionalityBase | null>(null);\n\n useIsomorphicLayoutEffect(() => {\n setBasicFunctionalityImpl(new BasicFunctionalityBase(editor, isSentinelNodeEnabled));\n\n return () => {\n setBasicFunctionalityImpl(prev => {\n prev?.cleanup();\n return null;\n });\n };\n }, [editor, isSentinelNodeEnabled]);\n\n React.useImperativeHandle<BasicFunctionalityPluginRef, BasicFunctionalityPluginRef>(\n ref,\n () => ({\n setIsDisabled(isDisabled: boolean) {\n basicFunctionalityImpl?.setIsDisabled(isDisabled);\n },\n }),\n [basicFunctionalityImpl],\n );\n\n const setDefaultValue = React.useRef(false);\n // useIsomorphicLayoutEffect is used to avoid flickering on first render\n useIsomorphicLayoutEffect(() => {\n if (defaultValue && basicFunctionalityImpl && !setDefaultValue.current) {\n basicFunctionalityImpl.insertDefaultValue(defaultValue);\n setDefaultValue.current = true;\n }\n }, [basicFunctionalityImpl, defaultValue, editor]);\n\n React.useEffect(() => {\n basicFunctionalityImpl?.activateContentCallbacks(onContentChange, onCountChanged);\n return () => basicFunctionalityImpl?.deactivateContentCallbacks();\n }, [basicFunctionalityImpl, editor, onContentChange, onCountChanged]);\n\n React.useEffect(() => {\n if (onPaste) {\n basicFunctionalityImpl?.activatePasteCallback(onPaste);\n }\n return () => basicFunctionalityImpl?.deactivatePasteCallback();\n }, [basicFunctionalityImpl, editor, onPaste]);\n\n React.useEffect(() => {\n if (trimWhitespace) {\n basicFunctionalityImpl?.activateTrimWhitespace();\n }\n return () => basicFunctionalityImpl?.deactivateTrimWhitespace();\n }, [basicFunctionalityImpl, editor, trimWhitespace]);\n\n return null;\n },\n);\n"],"names":["React","useLexicalComposerContext","useIsomorphicLayoutEffect","BasicFunctionalityBase","BasicFunctionalityPlugin","forwardRef","props","ref","defaultValue","trimWhitespace","onCountChanged","onContentChange","onPaste","isSentinelNodeEnabled","editor","basicFunctionalityImpl","setBasicFunctionalityImpl","useState","prev","cleanup","useImperativeHandle","setIsDisabled","isDisabled","setDefaultValue","useRef","current","insertDefaultValue","useEffect","activateContentCallbacks","deactivateContentCallbacks","activatePasteCallback","deactivatePasteCallback","activateTrimWhitespace","deactivateTrimWhitespace"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,yBAAyB,QAAQ,sCAAsC;AAChF,SAASC,yBAAyB,QAAQ,6BAA6B;AAEvE,SAASC,sBAAsB,QAAQ,uCAAuC;AAgB9E,OAAO,MAAMC,2BAA2BJ,MAAMK,UAAU,CACtD,CAACC,OAAOC;IACN,MAAM,EAAEC,YAAY,EAAEC,cAAc,EAAEC,cAAc,EAAEC,eAAe,EAAEC,OAAO,EAAEC,qBAAqB,EAAE,GAAGP;IAE1G,MAAM,CAACQ,OAAO,GAAGb;IAEjB,MAAM,CAACc,wBAAwBC,0BAA0B,GAAGhB,MAAMiB,QAAQ,CAAiC;IAE3Gf,0BAA0B;QACxBc,0BAA0B,IAAIb,uBAAuBW,QAAQD;QAE7D,OAAO;YACLG,0BAA0BE,CAAAA;gBACxBA,iBAAAA,2BAAAA,KAAMC,OAAO;gBACb,OAAO;YACT;QACF;IACF,GAAG;QAACL;QAAQD;KAAsB;IAElCb,MAAMoB,mBAAmB,CACvBb,KACA,IAAO,CAAA;YACLc,eAAcC,UAAmB;gBAC/BP,mCAAAA,6CAAAA,uBAAwBM,aAAa,CAACC;YACxC;QACF,CAAA,GACA;QAACP;KAAuB;IAG1B,MAAMQ,kBAAkBvB,MAAMwB,MAAM,CAAC;IACrC,wEAAwE;IACxEtB,0BAA0B;QACxB,IAAIM,gBAAgBO,0BAA0B,CAACQ,gBAAgBE,OAAO,EAAE;YACtEV,uBAAuBW,kBAAkB,CAAClB;YAC1Ce,gBAAgBE,OAAO,GAAG;QAC5B;IACF,GAAG;QAACV;QAAwBP;QAAcM;KAAO;IAEjDd,MAAM2B,SAAS,CAAC;QACdZ,mCAAAA,6CAAAA,uBAAwBa,wBAAwB,CAACjB,iBAAiBD;QAClE,OAAO,IAAMK,mCAAAA,6CAAAA,uBAAwBc,0BAA0B;IACjE,GAAG;QAACd;QAAwBD;QAAQH;QAAiBD;KAAe;IAEpEV,MAAM2B,SAAS,CAAC;QACd,IAAIf,SAAS;YACXG,mCAAAA,6CAAAA,uBAAwBe,qBAAqB,CAAClB;QAChD;QACA,OAAO,IAAMG,mCAAAA,6CAAAA,uBAAwBgB,uBAAuB;IAC9D,GAAG;QAAChB;QAAwBD;QAAQF;KAAQ;IAE5CZ,MAAM2B,SAAS,CAAC;QACd,IAAIlB,gBAAgB;YAClBM,mCAAAA,6CAAAA,uBAAwBiB,sBAAsB;QAChD;QACA,OAAO,IAAMjB,mCAAAA,6CAAAA,uBAAwBkB,wBAAwB;IAC/D,GAAG;QAAClB;QAAwBD;QAAQL;KAAe;IAEnD,OAAO;AACT,GACA"}
1
+ {"version":3,"sources":["BasicFunctionality.ts"],"sourcesContent":["import * as React from 'react';\nimport { useLexicalComposerContext } from '@fluentui-copilot/react-text-editor';\nimport { useIsomorphicLayoutEffect } from '@fluentui/react-components';\nimport type { IBasicFunctionalityBase } from '@fluentui-copilot/chat-input-plugins';\nimport { BasicFunctionalityBase } from '@fluentui-copilot/chat-input-plugins';\n\nexport type BasicFunctionalityPluginProps = {\n defaultValue?: string;\n // Whether or not to clear the input when only whitespace is remaining\n trimWhitespace?: boolean;\n onCountChanged?: (count: number) => void;\n onContentChange?: (value: string) => void;\n onPaste?: (event: ClipboardEvent) => void;\n isSentinelNodeEnabled?: boolean;\n};\n\nexport type BasicFunctionalityPluginRef = {\n setIsDisabled: (isDisabled: boolean) => void;\n};\n\nexport const BasicFunctionalityPlugin = React.forwardRef<BasicFunctionalityPluginRef, BasicFunctionalityPluginProps>(\n (props, ref) => {\n const { defaultValue, trimWhitespace, onCountChanged, onContentChange, onPaste, isSentinelNodeEnabled } = props;\n\n const [editor] = useLexicalComposerContext();\n\n const [basicFunctionalityImpl, setBasicFunctionalityImpl] = React.useState<IBasicFunctionalityBase | null>(null);\n\n useIsomorphicLayoutEffect(() => {\n setBasicFunctionalityImpl(new BasicFunctionalityBase(editor, isSentinelNodeEnabled));\n\n return () => {\n setBasicFunctionalityImpl(prev => {\n prev?.cleanup();\n return null;\n });\n };\n }, [editor, isSentinelNodeEnabled]);\n\n React.useImperativeHandle<BasicFunctionalityPluginRef, BasicFunctionalityPluginRef>(\n ref,\n () => ({\n setIsDisabled(isDisabled: boolean) {\n basicFunctionalityImpl?.setIsDisabled(isDisabled);\n },\n }),\n [basicFunctionalityImpl],\n );\n\n const setDefaultValue = React.useRef(false);\n // useIsomorphicLayoutEffect is used to avoid flickering on first render\n useIsomorphicLayoutEffect(() => {\n if (basicFunctionalityImpl && !setDefaultValue.current) {\n if (defaultValue) {\n basicFunctionalityImpl.insertDefaultValue(defaultValue);\n }\n setDefaultValue.current = true;\n }\n }, [basicFunctionalityImpl, defaultValue, editor]);\n\n React.useEffect(() => {\n basicFunctionalityImpl?.activateContentCallbacks(onContentChange, onCountChanged);\n return () => basicFunctionalityImpl?.deactivateContentCallbacks();\n }, [basicFunctionalityImpl, editor, onContentChange, onCountChanged]);\n\n React.useEffect(() => {\n if (onPaste) {\n basicFunctionalityImpl?.activatePasteCallback(onPaste);\n }\n return () => basicFunctionalityImpl?.deactivatePasteCallback();\n }, [basicFunctionalityImpl, editor, onPaste]);\n\n React.useEffect(() => {\n if (trimWhitespace) {\n basicFunctionalityImpl?.activateTrimWhitespace();\n }\n return () => basicFunctionalityImpl?.deactivateTrimWhitespace();\n }, [basicFunctionalityImpl, editor, trimWhitespace]);\n\n return null;\n },\n);\n"],"names":["React","useLexicalComposerContext","useIsomorphicLayoutEffect","BasicFunctionalityBase","BasicFunctionalityPlugin","forwardRef","props","ref","defaultValue","trimWhitespace","onCountChanged","onContentChange","onPaste","isSentinelNodeEnabled","editor","basicFunctionalityImpl","setBasicFunctionalityImpl","useState","prev","cleanup","useImperativeHandle","setIsDisabled","isDisabled","setDefaultValue","useRef","current","insertDefaultValue","useEffect","activateContentCallbacks","deactivateContentCallbacks","activatePasteCallback","deactivatePasteCallback","activateTrimWhitespace","deactivateTrimWhitespace"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,yBAAyB,QAAQ,sCAAsC;AAChF,SAASC,yBAAyB,QAAQ,6BAA6B;AAEvE,SAASC,sBAAsB,QAAQ,uCAAuC;AAgB9E,OAAO,MAAMC,2BAA2BJ,MAAMK,UAAU,CACtD,CAACC,OAAOC;IACN,MAAM,EAAEC,YAAY,EAAEC,cAAc,EAAEC,cAAc,EAAEC,eAAe,EAAEC,OAAO,EAAEC,qBAAqB,EAAE,GAAGP;IAE1G,MAAM,CAACQ,OAAO,GAAGb;IAEjB,MAAM,CAACc,wBAAwBC,0BAA0B,GAAGhB,MAAMiB,QAAQ,CAAiC;IAE3Gf,0BAA0B;QACxBc,0BAA0B,IAAIb,uBAAuBW,QAAQD;QAE7D,OAAO;YACLG,0BAA0BE,CAAAA;gBACxBA,iBAAAA,2BAAAA,KAAMC,OAAO;gBACb,OAAO;YACT;QACF;IACF,GAAG;QAACL;QAAQD;KAAsB;IAElCb,MAAMoB,mBAAmB,CACvBb,KACA,IAAO,CAAA;YACLc,eAAcC,UAAmB;gBAC/BP,mCAAAA,6CAAAA,uBAAwBM,aAAa,CAACC;YACxC;QACF,CAAA,GACA;QAACP;KAAuB;IAG1B,MAAMQ,kBAAkBvB,MAAMwB,MAAM,CAAC;IACrC,wEAAwE;IACxEtB,0BAA0B;QACxB,IAAIa,0BAA0B,CAACQ,gBAAgBE,OAAO,EAAE;YACtD,IAAIjB,cAAc;gBAChBO,uBAAuBW,kBAAkB,CAAClB;YAC5C;YACAe,gBAAgBE,OAAO,GAAG;QAC5B;IACF,GAAG;QAACV;QAAwBP;QAAcM;KAAO;IAEjDd,MAAM2B,SAAS,CAAC;QACdZ,mCAAAA,6CAAAA,uBAAwBa,wBAAwB,CAACjB,iBAAiBD;QAClE,OAAO,IAAMK,mCAAAA,6CAAAA,uBAAwBc,0BAA0B;IACjE,GAAG;QAACd;QAAwBD;QAAQH;QAAiBD;KAAe;IAEpEV,MAAM2B,SAAS,CAAC;QACd,IAAIf,SAAS;YACXG,mCAAAA,6CAAAA,uBAAwBe,qBAAqB,CAAClB;QAChD;QACA,OAAO,IAAMG,mCAAAA,6CAAAA,uBAAwBgB,uBAAuB;IAC9D,GAAG;QAAChB;QAAwBD;QAAQF;KAAQ;IAE5CZ,MAAM2B,SAAS,CAAC;QACd,IAAIlB,gBAAgB;YAClBM,mCAAAA,6CAAAA,uBAAwBiB,sBAAsB;QAChD;QACA,OAAO,IAAMjB,mCAAAA,6CAAAA,uBAAwBkB,wBAAwB;IAC/D,GAAG;QAAClB;QAAwBD;QAAQL;KAAe;IAEnD,OAAO;AACT,GACA"}
@@ -39,8 +39,10 @@ const BasicFunctionalityPlugin = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
39
39
  const setDefaultValue = _react.useRef(false);
40
40
  // useIsomorphicLayoutEffect is used to avoid flickering on first render
41
41
  (0, _reactcomponents.useIsomorphicLayoutEffect)(()=>{
42
- if (defaultValue && basicFunctionalityImpl && !setDefaultValue.current) {
43
- basicFunctionalityImpl.insertDefaultValue(defaultValue);
42
+ if (basicFunctionalityImpl && !setDefaultValue.current) {
43
+ if (defaultValue) {
44
+ basicFunctionalityImpl.insertDefaultValue(defaultValue);
45
+ }
44
46
  setDefaultValue.current = true;
45
47
  }
46
48
  }, [
@@ -1 +1 @@
1
- {"version":3,"sources":["BasicFunctionality.ts"],"sourcesContent":["import * as React from 'react';\nimport { useLexicalComposerContext } from '@fluentui-copilot/react-text-editor';\nimport { useIsomorphicLayoutEffect } from '@fluentui/react-components';\nimport type { IBasicFunctionalityBase } from '@fluentui-copilot/chat-input-plugins';\nimport { BasicFunctionalityBase } from '@fluentui-copilot/chat-input-plugins';\n\nexport type BasicFunctionalityPluginProps = {\n defaultValue?: string;\n // Whether or not to clear the input when only whitespace is remaining\n trimWhitespace?: boolean;\n onCountChanged?: (count: number) => void;\n onContentChange?: (value: string) => void;\n onPaste?: (event: ClipboardEvent) => void;\n isSentinelNodeEnabled?: boolean;\n};\n\nexport type BasicFunctionalityPluginRef = {\n setIsDisabled: (isDisabled: boolean) => void;\n};\n\nexport const BasicFunctionalityPlugin = React.forwardRef<BasicFunctionalityPluginRef, BasicFunctionalityPluginProps>(\n (props, ref) => {\n const { defaultValue, trimWhitespace, onCountChanged, onContentChange, onPaste, isSentinelNodeEnabled } = props;\n\n const [editor] = useLexicalComposerContext();\n\n const [basicFunctionalityImpl, setBasicFunctionalityImpl] = React.useState<IBasicFunctionalityBase | null>(null);\n\n useIsomorphicLayoutEffect(() => {\n setBasicFunctionalityImpl(new BasicFunctionalityBase(editor, isSentinelNodeEnabled));\n\n return () => {\n setBasicFunctionalityImpl(prev => {\n prev?.cleanup();\n return null;\n });\n };\n }, [editor, isSentinelNodeEnabled]);\n\n React.useImperativeHandle<BasicFunctionalityPluginRef, BasicFunctionalityPluginRef>(\n ref,\n () => ({\n setIsDisabled(isDisabled: boolean) {\n basicFunctionalityImpl?.setIsDisabled(isDisabled);\n },\n }),\n [basicFunctionalityImpl],\n );\n\n const setDefaultValue = React.useRef(false);\n // useIsomorphicLayoutEffect is used to avoid flickering on first render\n useIsomorphicLayoutEffect(() => {\n if (defaultValue && basicFunctionalityImpl && !setDefaultValue.current) {\n basicFunctionalityImpl.insertDefaultValue(defaultValue);\n setDefaultValue.current = true;\n }\n }, [basicFunctionalityImpl, defaultValue, editor]);\n\n React.useEffect(() => {\n basicFunctionalityImpl?.activateContentCallbacks(onContentChange, onCountChanged);\n return () => basicFunctionalityImpl?.deactivateContentCallbacks();\n }, [basicFunctionalityImpl, editor, onContentChange, onCountChanged]);\n\n React.useEffect(() => {\n if (onPaste) {\n basicFunctionalityImpl?.activatePasteCallback(onPaste);\n }\n return () => basicFunctionalityImpl?.deactivatePasteCallback();\n }, [basicFunctionalityImpl, editor, onPaste]);\n\n React.useEffect(() => {\n if (trimWhitespace) {\n basicFunctionalityImpl?.activateTrimWhitespace();\n }\n return () => basicFunctionalityImpl?.deactivateTrimWhitespace();\n }, [basicFunctionalityImpl, editor, trimWhitespace]);\n\n return null;\n },\n);\n"],"names":["BasicFunctionalityPlugin","React","forwardRef","props","ref","defaultValue","editor","trimWhitespace","basicFunctionalityImpl","useIsomorphicLayoutEffect","setBasicFunctionalityImpl","useLexicalComposerContext","useState","BasicFunctionalityBase","isSentinelNodeEnabled","prev","cleanup","useImperativeHandle","setIsDisabled","isDisabled","useRef","current","setDefaultValue","insertDefaultValue","activateContentCallbacks","onContentChange","onCountChanged","useEffect","deactivateContentCallbacks","onPaste","activateTrimWhitespace","deactivateTrimWhitespace"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAoBaA;;;eAAAA;;;;iEApBU;iCACmB;iCACA;kCAEH;AAgBhC,MAAMA,yCAA2BC,OAAMC,UAAU,CACtD,CAACC,OAAOC;UACN,EAEAC,YAAOC,EAEPC,cAAOC,EAEPC,cAAAA,iBACEC,SAEA,uBACEA;kBAEE,GAAAC,IAAAA,0CAAO;mCACTD,0BAAA,GAAAT,OAAAW,QAAA,CAAA;kDACF,EAAA;QACFF,0BAAG,IAAAG,wCAAA,CAAAP,QAAAQ;eAACR;sCAAQQ,CAAAA;gBAAsBC,SAAA,QAAAA,SAAA,KAAA,IAAA,KAAA,IAAAA,KAAAC,OAAA;gBAElCf,OAAMgB;;;;;QAKFH;KAAA;WACFG,mBACA,CAAAb,KAAA,IAAA,CAAA;2BAACI,UAAAA;gBAAuBA,2BAAA,QAAAA,2BAAA,KAAA,IAAA,KAAA,IAAAA,uBAAAU,aAAA,CAAAC;YAG1B;YACA;QAAAX;KAAA;UACAC,kBAAAA,OAA0BW,MAAA,CAAA;4EACuCC;kDAC7Db,EAAAA;4BACAc,0BAA0B,CAAAA,gBAAAD,OAAA,EAAA;mCAC5BE,kBAAA,CAAAlB;YACFiB,gBAAGD,OAAA,GAAA;;;;QAAyBhB;QAAAA;KAAAA;WAAcC,SAAAA,CAAAA;mCAAO,QAAAE,2BAAA,KAAA,IAAA,KAAA,IAAAA,uBAAAgB,wBAAA,CAAAC,iBAAAC;QAEjDzB,OAAM0B,IAAAA,2BAAU,QAAAnB,2BAAA,KAAA,IAAA,KAAA,IAAAA,uBAAAoB,0BAAA;;;QACdpB;QAAAA;QAAAA;KAAAA;WACAmB,SAAO,CAAA;QACT,IAAGE,SAAA;uCAACrB,QAAAA,2BAAAA,KAAAA,IAAAA,KAAAA,IAAAA,uBAAAA,qBAAAA,CAAAA;;eAAgCiB,IAAAA,2BAAAA,QAAAA,2BAAAA,KAAAA,IAAAA,KAAAA,IAAAA,uBAAAA,uBAAAA;;;QAAiBC;QAAAA;KAAAA;WAAeC,SAAA,CAAA;QAEpE1B,IAAAA,gBAAgB;uCACD,QAAAO,2BAAA,KAAA,IAAA,KAAA,IAAAA,uBAAAsB,sBAAA;;eAEb,IAAAtB,2BAAA,QAAAA,2BAAA,KAAA,IAAA,KAAA,IAAAA,uBAAAuB,wBAAA;;;QACavB;QAAAA;KAAAA;WACZ;kDAAyBF"}
1
+ {"version":3,"sources":["BasicFunctionality.ts"],"sourcesContent":["import * as React from 'react';\nimport { useLexicalComposerContext } from '@fluentui-copilot/react-text-editor';\nimport { useIsomorphicLayoutEffect } from '@fluentui/react-components';\nimport type { IBasicFunctionalityBase } from '@fluentui-copilot/chat-input-plugins';\nimport { BasicFunctionalityBase } from '@fluentui-copilot/chat-input-plugins';\n\nexport type BasicFunctionalityPluginProps = {\n defaultValue?: string;\n // Whether or not to clear the input when only whitespace is remaining\n trimWhitespace?: boolean;\n onCountChanged?: (count: number) => void;\n onContentChange?: (value: string) => void;\n onPaste?: (event: ClipboardEvent) => void;\n isSentinelNodeEnabled?: boolean;\n};\n\nexport type BasicFunctionalityPluginRef = {\n setIsDisabled: (isDisabled: boolean) => void;\n};\n\nexport const BasicFunctionalityPlugin = React.forwardRef<BasicFunctionalityPluginRef, BasicFunctionalityPluginProps>(\n (props, ref) => {\n const { defaultValue, trimWhitespace, onCountChanged, onContentChange, onPaste, isSentinelNodeEnabled } = props;\n\n const [editor] = useLexicalComposerContext();\n\n const [basicFunctionalityImpl, setBasicFunctionalityImpl] = React.useState<IBasicFunctionalityBase | null>(null);\n\n useIsomorphicLayoutEffect(() => {\n setBasicFunctionalityImpl(new BasicFunctionalityBase(editor, isSentinelNodeEnabled));\n\n return () => {\n setBasicFunctionalityImpl(prev => {\n prev?.cleanup();\n return null;\n });\n };\n }, [editor, isSentinelNodeEnabled]);\n\n React.useImperativeHandle<BasicFunctionalityPluginRef, BasicFunctionalityPluginRef>(\n ref,\n () => ({\n setIsDisabled(isDisabled: boolean) {\n basicFunctionalityImpl?.setIsDisabled(isDisabled);\n },\n }),\n [basicFunctionalityImpl],\n );\n\n const setDefaultValue = React.useRef(false);\n // useIsomorphicLayoutEffect is used to avoid flickering on first render\n useIsomorphicLayoutEffect(() => {\n if (basicFunctionalityImpl && !setDefaultValue.current) {\n if (defaultValue) {\n basicFunctionalityImpl.insertDefaultValue(defaultValue);\n }\n setDefaultValue.current = true;\n }\n }, [basicFunctionalityImpl, defaultValue, editor]);\n\n React.useEffect(() => {\n basicFunctionalityImpl?.activateContentCallbacks(onContentChange, onCountChanged);\n return () => basicFunctionalityImpl?.deactivateContentCallbacks();\n }, [basicFunctionalityImpl, editor, onContentChange, onCountChanged]);\n\n React.useEffect(() => {\n if (onPaste) {\n basicFunctionalityImpl?.activatePasteCallback(onPaste);\n }\n return () => basicFunctionalityImpl?.deactivatePasteCallback();\n }, [basicFunctionalityImpl, editor, onPaste]);\n\n React.useEffect(() => {\n if (trimWhitespace) {\n basicFunctionalityImpl?.activateTrimWhitespace();\n }\n return () => basicFunctionalityImpl?.deactivateTrimWhitespace();\n }, [basicFunctionalityImpl, editor, trimWhitespace]);\n\n return null;\n },\n);\n"],"names":["BasicFunctionalityPlugin","React","forwardRef","props","ref","defaultValue","editor","trimWhitespace","basicFunctionalityImpl","useIsomorphicLayoutEffect","setBasicFunctionalityImpl","useLexicalComposerContext","useState","BasicFunctionalityBase","isSentinelNodeEnabled","prev","cleanup","useImperativeHandle","setIsDisabled","isDisabled","useRef","insertDefaultValue","current","setDefaultValue","activateContentCallbacks","onContentChange","onCountChanged","useEffect","deactivateContentCallbacks","onPaste","activateTrimWhitespace","deactivateTrimWhitespace"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAoBaA;;;eAAAA;;;;iEApBU;iCACmB;iCACA;kCAEH;AAgBhC,MAAMA,yCAA2BC,OAAMC,UAAU,CACtD,CAACC,OAAOC;UACN,EAEAC,YAAOC,EAEPC,cAAOC,EAEPC,cAAAA,iBACEC,SAEA,uBACEA;kBAEE,GAAAC,IAAAA,0CAAO;mCACTD,0BAAA,GAAAT,OAAAW,QAAA,CAAA;kDACF,EAAA;QACFF,0BAAG,IAAAG,wCAAA,CAAAP,QAAAQ;eAACR;sCAAQQ,CAAAA;gBAAsBC,SAAA,QAAAA,SAAA,KAAA,IAAA,KAAA,IAAAA,KAAAC,OAAA;gBAElCf,OAAMgB;;;;;QAKFH;KAAA;WACFG,mBACA,CAAAb,KAAA,IAAA,CAAA;2BAACI,UAAAA;gBAAuBA,2BAAA,QAAAA,2BAAA,KAAA,IAAA,KAAA,IAAAA,uBAAAU,aAAA,CAAAC;YAG1B;YACA;QAAAX;KAAA;UACAC,kBAAAA,OAA0BW,MAAA,CAAA;4EACgC;kDAClDf,EAAAA;sCACFG,CAAAA,gBAAuBa,OAAmBhB,EAAAA;8BAC5C;uCACgBiB,kBAAU,CAAAjB;;YAE9BkB,gBAAGD,OAAA,GAAA;;;;QAAyBjB;QAAAA;KAAAA;WAAcC,SAAAA,CAAAA;mCAAO,QAAAE,2BAAA,KAAA,IAAA,KAAA,IAAAA,uBAAAgB,wBAAA,CAAAC,iBAAAC;QAEjDzB,OAAM0B,IAAAA,2BAAU,QAAAnB,2BAAA,KAAA,IAAA,KAAA,IAAAA,uBAAAoB,0BAAA;;;QACdpB;QAAAA;QAAAA;KAAAA;WACAmB,SAAO,CAAA;QACT,IAAGE,SAAA;uCAACrB,QAAAA,2BAAAA,KAAAA,IAAAA,KAAAA,IAAAA,uBAAAA,qBAAAA,CAAAA;;eAAgCiB,IAAAA,2BAAAA,QAAAA,2BAAAA,KAAAA,IAAAA,KAAAA,IAAAA,uBAAAA,uBAAAA;;;QAAiBC;QAAAA;KAAAA;WAAeC,SAAA,CAAA;QAEpE1B,IAAAA,gBAAgB;uCACD,QAAAO,2BAAA,KAAA,IAAA,KAAA,IAAAA,uBAAAsB,sBAAA;;eAEb,IAAAtB,2BAAA,QAAAA,2BAAA,KAAA,IAAA,KAAA,IAAAA,uBAAAuB,wBAAA;;;QACavB;QAAAA;KAAAA;WACZ;kDAAyBF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluentui-copilot/react-chat-input-plugins",
3
- "version": "0.0.0-nightly-20250507-0406-4976ea07.1",
3
+ "version": "0.0.0-nightly-20250508-0405-6eff905d.1",
4
4
  "description": "A Fluent AI package for React-based ChatInput plugins.",
5
5
  "main": "lib-commonjs/index.js",
6
6
  "module": "lib/index.js",
@@ -12,10 +12,10 @@
12
12
  },
13
13
  "license": "MIT",
14
14
  "dependencies": {
15
- "@fluentui-copilot/chat-input-plugins": "^0.0.0-nightly-20250507-0406-4976ea07.1",
16
- "@fluentui-copilot/react-text-editor": "^0.0.0-nightly-20250507-0406-4976ea07.1",
17
- "@fluentui-copilot/text-editor": "^0.0.0-nightly-20250507-0406-4976ea07.1",
18
- "@fluentui-copilot/tokens": "^0.0.0-nightly-20250507-0406-4976ea07.1",
15
+ "@fluentui-copilot/chat-input-plugins": "^0.0.0-nightly-20250508-0405-6eff905d.1",
16
+ "@fluentui-copilot/react-text-editor": "^0.0.0-nightly-20250508-0405-6eff905d.1",
17
+ "@fluentui-copilot/text-editor": "^0.0.0-nightly-20250508-0405-6eff905d.1",
18
+ "@fluentui-copilot/tokens": "^0.0.0-nightly-20250508-0405-6eff905d.1",
19
19
  "@swc/helpers": "^0.5.1"
20
20
  },
21
21
  "peerDependencies": {