@copilotkit/react-textarea 1.1.3-feat-runtime-remote-actions.2 → 1.2.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.md +21 -19
- package/dist/components/base-copilot-textarea/base-copilot-textarea.d.mts +43 -0
- package/dist/components/base-copilot-textarea/base-copilot-textarea.d.ts +1 -1
- package/dist/components/base-copilot-textarea/base-copilot-textarea.js +49 -114
- package/dist/components/base-copilot-textarea/base-copilot-textarea.js.map +1 -1
- package/dist/components/base-copilot-textarea/base-copilot-textarea.mjs +1687 -36
- package/dist/components/base-copilot-textarea/base-copilot-textarea.mjs.map +1 -1
- package/dist/components/base-copilot-textarea/render-element.d.mts +6 -0
- package/dist/components/base-copilot-textarea/render-element.d.ts +1 -1
- package/dist/components/base-copilot-textarea/render-element.mjs +48 -4
- package/dist/components/base-copilot-textarea/render-element.mjs.map +1 -1
- package/dist/components/base-copilot-textarea/render-placeholder.d.mts +6 -0
- package/dist/components/base-copilot-textarea/render-placeholder.d.ts +1 -1
- package/dist/components/base-copilot-textarea/render-placeholder.mjs +46 -4
- package/dist/components/base-copilot-textarea/render-placeholder.mjs.map +1 -1
- package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.d.mts +8 -0
- package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.js +2 -4
- package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.js.map +1 -1
- package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.mjs +81 -5
- package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.mjs.map +1 -1
- package/dist/components/base-copilot-textarea/use-add-branding-css.d.mts +3 -0
- package/dist/components/base-copilot-textarea/use-add-branding-css.js.map +1 -1
- package/dist/components/base-copilot-textarea/use-add-branding-css.mjs +54 -4
- package/dist/components/base-copilot-textarea/use-add-branding-css.mjs.map +1 -1
- package/dist/components/copilot-textarea/copilot-textarea.d.mts +165 -0
- package/dist/components/copilot-textarea/copilot-textarea.d.ts +2 -8
- package/dist/components/copilot-textarea/copilot-textarea.js +55 -119
- package/dist/components/copilot-textarea/copilot-textarea.js.map +1 -1
- package/dist/components/copilot-textarea/copilot-textarea.mjs +2211 -44
- package/dist/components/copilot-textarea/copilot-textarea.mjs.map +1 -1
- package/dist/components/hovering-toolbar/hovering-editor-provider.d.mts +18 -0
- package/dist/components/hovering-toolbar/hovering-editor-provider.d.ts +1 -1
- package/dist/components/hovering-toolbar/hovering-editor-provider.mjs +13 -5
- package/dist/components/hovering-toolbar/hovering-editor-provider.mjs.map +1 -1
- package/dist/components/hovering-toolbar/hovering-toolbar-components.d.mts +17 -0
- package/dist/components/hovering-toolbar/hovering-toolbar-components.d.ts +1 -2
- package/dist/components/hovering-toolbar/hovering-toolbar-components.js +0 -21
- package/dist/components/hovering-toolbar/hovering-toolbar-components.js.map +1 -1
- package/dist/components/hovering-toolbar/hovering-toolbar-components.mjs +111 -9
- package/dist/components/hovering-toolbar/hovering-toolbar-components.mjs.map +1 -1
- package/dist/components/hovering-toolbar/hovering-toolbar.d.mts +12 -0
- package/dist/components/hovering-toolbar/hovering-toolbar.d.ts +1 -1
- package/dist/components/hovering-toolbar/hovering-toolbar.js +31 -94
- package/dist/components/hovering-toolbar/hovering-toolbar.js.map +1 -1
- package/dist/components/hovering-toolbar/hovering-toolbar.mjs +808 -19
- package/dist/components/hovering-toolbar/hovering-toolbar.mjs.map +1 -1
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.d.mts +16 -0
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.d.ts +1 -1
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.js +21 -65
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.js.map +1 -1
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.mjs +520 -14
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.mjs.map +1 -1
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.d.mts +14 -0
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.d.ts +1 -1
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.js +24 -68
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.js.map +1 -1
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.mjs +543 -15
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.mjs.map +1 -1
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.d.mts +4 -0
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.js +24 -68
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.js.map +1 -1
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.mjs +543 -16
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.mjs.map +1 -1
- package/dist/components/index.d.mts +15 -0
- package/dist/components/index.js +55 -119
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +2210 -46
- package/dist/components/index.mjs.map +1 -1
- package/dist/components/manual-ui/chip-with-icon.d.mts +10 -0
- package/dist/components/manual-ui/chip-with-icon.d.ts +1 -1
- package/dist/components/manual-ui/chip-with-icon.mjs +0 -2
- package/dist/components/manual-ui/chip-with-icon.mjs.map +1 -1
- package/dist/components/source-search-box/source-search-box.d.mts +16 -0
- package/dist/components/source-search-box/source-search-box.d.ts +1 -1
- package/dist/components/source-search-box/source-search-box.js +2 -4
- package/dist/components/source-search-box/source-search-box.js.map +1 -1
- package/dist/components/source-search-box/source-search-box.mjs +200 -8
- package/dist/components/source-search-box/source-search-box.mjs.map +1 -1
- package/dist/components/ui/button.d.mts +14 -0
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/ui/button.mjs +76 -6
- package/dist/components/ui/button.mjs.map +1 -1
- package/dist/components/ui/command.d.mts +53 -0
- package/dist/components/ui/command.mjs +233 -14
- package/dist/components/ui/command.mjs.map +1 -1
- package/dist/components/ui/dialog.d.mts +19 -0
- package/dist/components/ui/dialog.mjs +135 -11
- package/dist/components/ui/dialog.mjs.map +1 -1
- package/dist/components/ui/label.d.mts +8 -0
- package/dist/components/ui/label.mjs +51 -5
- package/dist/components/ui/label.mjs.map +1 -1
- package/dist/context/index.d.mts +2 -0
- package/dist/context/index.d.ts +1 -1
- package/dist/context/index.mjs +0 -1
- package/dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.d.mts +15 -0
- package/dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.d.ts +1 -1
- package/dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.js.map +1 -1
- package/dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.mjs +152 -7
- package/dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.mjs.map +1 -1
- package/dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.d.mts +8 -0
- package/dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.mjs +165 -5
- package/dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.mjs.map +1 -1
- package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.d.mts +7 -0
- package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.js.map +1 -1
- package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.mjs +141 -6
- package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.mjs.map +1 -1
- package/dist/hooks/index.d.mts +2 -0
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/index.mjs +0 -1
- package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.d.mts +22 -0
- package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.js +2 -1
- package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.js.map +1 -1
- package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs +139 -4
- package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs.map +1 -1
- package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.d.mts +23 -0
- package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.js +2 -2
- package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.js.map +1 -1
- package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.mjs +220 -4
- package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.mjs.map +1 -1
- package/dist/hooks/misc/use-autosize-textarea.d.mts +5 -0
- package/dist/hooks/misc/use-autosize-textarea.mjs +12 -4
- package/dist/hooks/misc/use-autosize-textarea.mjs.map +1 -1
- package/dist/index.css +1 -644
- package/dist/index.d.mts +15 -0
- package/dist/index.js +62 -119
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2217 -54
- package/dist/index.mjs.map +1 -1
- package/dist/lib/debouncer.d.mts +11 -0
- package/dist/lib/debouncer.d.ts +1 -1
- package/dist/lib/debouncer.js.map +1 -1
- package/dist/lib/debouncer.mjs +48 -4
- package/dist/lib/debouncer.mjs.map +1 -1
- package/dist/lib/editor-to-text.d.mts +7 -0
- package/dist/lib/editor-to-text.mjs +40 -4
- package/dist/lib/editor-to-text.mjs.map +1 -1
- package/dist/lib/get-text-around-cursor.d.mts +15 -0
- package/dist/lib/get-text-around-cursor.d.ts +1 -1
- package/dist/lib/get-text-around-cursor.mjs +96 -7
- package/dist/lib/get-text-around-cursor.mjs.map +1 -1
- package/dist/lib/retry.d.mts +3 -0
- package/dist/lib/retry.mjs +14 -4
- package/dist/lib/retry.mjs.map +1 -1
- package/dist/lib/slatejs-edits/add-autocompletions.d.mts +8 -0
- package/dist/lib/slatejs-edits/add-autocompletions.mjs +22 -4
- package/dist/lib/slatejs-edits/add-autocompletions.mjs.map +1 -1
- package/dist/lib/slatejs-edits/clear-autocompletions.d.mts +8 -0
- package/dist/lib/slatejs-edits/clear-autocompletions.js.map +1 -1
- package/dist/lib/slatejs-edits/clear-autocompletions.mjs +17 -4
- package/dist/lib/slatejs-edits/clear-autocompletions.mjs.map +1 -1
- package/dist/lib/slatejs-edits/replace-text.d.mts +5 -0
- package/dist/lib/slatejs-edits/replace-text.mjs +24 -4
- package/dist/lib/slatejs-edits/replace-text.mjs.map +1 -1
- package/dist/lib/slatejs-edits/with-partial-history.d.mts +8 -0
- package/dist/lib/slatejs-edits/with-partial-history.d.ts +1 -1
- package/dist/lib/slatejs-edits/with-partial-history.mjs +102 -5
- package/dist/lib/slatejs-edits/with-partial-history.mjs.map +1 -1
- package/dist/lib/stream-promise-flatten.d.mts +12 -0
- package/dist/lib/stream-promise-flatten.js.map +1 -1
- package/dist/lib/stream-promise-flatten.mjs +44 -4
- package/dist/lib/stream-promise-flatten.mjs.map +1 -1
- package/dist/lib/utils.d.mts +9 -0
- package/dist/lib/utils.mjs +58 -8
- package/dist/lib/utils.mjs.map +1 -1
- package/dist/lib/utils.test.d.mts +2 -0
- package/dist/lib/utils.test.d.ts +1 -1
- package/dist/types/autosuggestions-config/autosuggestions-config-user-specified.d.mts +23 -0
- package/dist/types/autosuggestions-config/autosuggestions-config-user-specified.d.ts +1 -1
- package/dist/types/autosuggestions-config/autosuggestions-config.d.mts +20 -0
- package/dist/types/autosuggestions-config/autosuggestions-config.d.ts +1 -1
- package/dist/types/autosuggestions-config/autosuggestions-config.js.map +1 -1
- package/dist/types/autosuggestions-config/autosuggestions-config.mjs +258 -9
- package/dist/types/autosuggestions-config/autosuggestions-config.mjs.map +1 -1
- package/dist/types/autosuggestions-config/editing-api-config.d.mts +15 -0
- package/dist/types/autosuggestions-config/editing-api-config.d.ts +1 -1
- package/dist/types/autosuggestions-config/editing-api-config.js.map +1 -1
- package/dist/types/autosuggestions-config/editing-api-config.mjs +75 -6
- package/dist/types/autosuggestions-config/editing-api-config.mjs.map +1 -1
- package/dist/types/autosuggestions-config/index.d.mts +10 -0
- package/dist/types/autosuggestions-config/index.js.map +1 -1
- package/dist/types/autosuggestions-config/index.mjs +258 -10
- package/dist/types/autosuggestions-config/index.mjs.map +1 -1
- package/dist/types/autosuggestions-config/insertions-api-config.d.mts +15 -0
- package/dist/types/autosuggestions-config/insertions-api-config.d.ts +1 -1
- package/dist/types/autosuggestions-config/insertions-api-config.js.map +1 -1
- package/dist/types/autosuggestions-config/insertions-api-config.mjs +68 -6
- package/dist/types/autosuggestions-config/insertions-api-config.mjs.map +1 -1
- package/dist/types/autosuggestions-config/subtypes/make-system-prompt.d.mts +3 -0
- package/dist/types/autosuggestions-config/subtypes/make-system-prompt.d.ts +1 -1
- package/dist/types/autosuggestions-config/suggestions-api-config.d.mts +14 -0
- package/dist/types/autosuggestions-config/suggestions-api-config.d.ts +1 -1
- package/dist/types/autosuggestions-config/suggestions-api-config.js.map +1 -1
- package/dist/types/autosuggestions-config/suggestions-api-config.mjs +56 -6
- package/dist/types/autosuggestions-config/suggestions-api-config.mjs.map +1 -1
- package/dist/types/base/autosuggestion-state.d.mts +8 -0
- package/dist/types/base/autosuggestion-state.d.ts +1 -1
- package/dist/types/base/autosuggestions-bare-function.d.mts +19 -0
- package/dist/types/base/autosuggestions-bare-function.d.ts +1 -1
- package/dist/types/base/base-autosuggestions-config.d.mts +83 -0
- package/dist/types/base/base-autosuggestions-config.d.ts +1 -1
- package/dist/types/base/base-autosuggestions-config.mjs +25 -4
- package/dist/types/base/base-autosuggestions-config.mjs.map +1 -1
- package/dist/types/base/base-copilot-textarea-props.d.mts +5 -0
- package/dist/types/base/custom-editor.d.mts +29 -0
- package/dist/types/base/custom-editor.d.ts +1 -1
- package/dist/types/base/editor-autocomplete-state.d.mts +10 -0
- package/dist/types/base/editor-autocomplete-state.d.ts +1 -1
- package/dist/types/base/editor-autocomplete-state.mjs +9 -5
- package/dist/types/base/editor-autocomplete-state.mjs.map +1 -1
- package/dist/types/base/index.d.mts +54 -0
- package/dist/types/base/index.d.ts +1 -1
- package/dist/types/base/index.mjs +25 -5
- package/dist/types/base/index.mjs.map +1 -1
- package/dist/types/html-copilot-textarea-element.d.mts +7 -0
- package/dist/types/html-copilot-textarea-element.d.ts +1 -1
- package/dist/types/html-copilot-textarea-element.mjs +0 -1
- package/dist/types/index.d.mts +13 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/index.mjs +258 -14
- package/dist/types/index.mjs.map +1 -1
- package/package.json +17 -11
- package/src/components/base-copilot-textarea/base-copilot-textarea.tsx +0 -1
- package/src/components/copilot-textarea/copilot-textarea.tsx +1 -7
- package/src/components/hovering-toolbar/hovering-toolbar-components.tsx +0 -17
- package/src/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.tsx +4 -7
- package/src/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.tsx +2 -2
- package/src/hooks/make-autosuggestions-function/use-make-standard-insertion-function.tsx +2 -3
- package/src/styles.css +9 -2
- package/tsup.config.ts +63 -15
- package/dist/chunk-224UKA7C.mjs +0 -38
- package/dist/chunk-224UKA7C.mjs.map +0 -1
- package/dist/chunk-23Q6A46J.mjs +0 -103
- package/dist/chunk-23Q6A46J.mjs.map +0 -1
- package/dist/chunk-2C7O2EVM.mjs +0 -27
- package/dist/chunk-2C7O2EVM.mjs.map +0 -1
- package/dist/chunk-2QDCE7PD.mjs +0 -32
- package/dist/chunk-2QDCE7PD.mjs.map +0 -1
- package/dist/chunk-2XDYLKPH.mjs +0 -181
- package/dist/chunk-2XDYLKPH.mjs.map +0 -1
- package/dist/chunk-3PQ7GSFE.mjs +0 -17
- package/dist/chunk-3PQ7GSFE.mjs.map +0 -1
- package/dist/chunk-4AMCUMC7.mjs +0 -124
- package/dist/chunk-4AMCUMC7.mjs.map +0 -1
- package/dist/chunk-4CVSOOJY.mjs +0 -30
- package/dist/chunk-4CVSOOJY.mjs.map +0 -1
- package/dist/chunk-4NHVQZ67.mjs +0 -108
- package/dist/chunk-4NHVQZ67.mjs.map +0 -1
- package/dist/chunk-4PDYALMP.mjs +0 -52
- package/dist/chunk-4PDYALMP.mjs.map +0 -1
- package/dist/chunk-5UNJXFUO.mjs +0 -29
- package/dist/chunk-5UNJXFUO.mjs.map +0 -1
- package/dist/chunk-7LSRNPNI.mjs +0 -59
- package/dist/chunk-7LSRNPNI.mjs.map +0 -1
- package/dist/chunk-AJ5OMEXM.mjs +0 -13
- package/dist/chunk-AJ5OMEXM.mjs.map +0 -1
- package/dist/chunk-CF5GISTC.mjs +0 -113
- package/dist/chunk-CF5GISTC.mjs.map +0 -1
- package/dist/chunk-D2SUDM2O.mjs +0 -99
- package/dist/chunk-D2SUDM2O.mjs.map +0 -1
- package/dist/chunk-D47EKHIF.mjs +0 -26
- package/dist/chunk-D47EKHIF.mjs.map +0 -1
- package/dist/chunk-DE5K76I2.mjs +0 -1
- package/dist/chunk-DE5K76I2.mjs.map +0 -1
- package/dist/chunk-DFTV4TST.mjs +0 -36
- package/dist/chunk-DFTV4TST.mjs.map +0 -1
- package/dist/chunk-DRV2FOHZ.mjs +0 -70
- package/dist/chunk-DRV2FOHZ.mjs.map +0 -1
- package/dist/chunk-ECR45NSD.mjs +0 -104
- package/dist/chunk-ECR45NSD.mjs.map +0 -1
- package/dist/chunk-EJGGLWWR.mjs +0 -82
- package/dist/chunk-EJGGLWWR.mjs.map +0 -1
- package/dist/chunk-GQN2HYFJ.mjs +0 -22
- package/dist/chunk-GQN2HYFJ.mjs.map +0 -1
- package/dist/chunk-H4VKQGVU.mjs +0 -1
- package/dist/chunk-H4VKQGVU.mjs.map +0 -1
- package/dist/chunk-HL7EF7KA.mjs +0 -32
- package/dist/chunk-HL7EF7KA.mjs.map +0 -1
- package/dist/chunk-I3SPIGAI.mjs +0 -31
- package/dist/chunk-I3SPIGAI.mjs.map +0 -1
- package/dist/chunk-I72DKFHD.mjs +0 -114
- package/dist/chunk-I72DKFHD.mjs.map +0 -1
- package/dist/chunk-IU3WTXLQ.mjs +0 -1
- package/dist/chunk-IU3WTXLQ.mjs.map +0 -1
- package/dist/chunk-J62KUPFZ.mjs +0 -264
- package/dist/chunk-J62KUPFZ.mjs.map +0 -1
- package/dist/chunk-KMVGEY7Q.mjs +0 -51
- package/dist/chunk-KMVGEY7Q.mjs.map +0 -1
- package/dist/chunk-KNQIEOFP.mjs +0 -19
- package/dist/chunk-KNQIEOFP.mjs.map +0 -1
- package/dist/chunk-L7VVZH4Q.mjs +0 -1
- package/dist/chunk-L7VVZH4Q.mjs.map +0 -1
- package/dist/chunk-LQ2OWQU7.mjs +0 -49
- package/dist/chunk-LQ2OWQU7.mjs.map +0 -1
- package/dist/chunk-LYB4B6MK.mjs +0 -19
- package/dist/chunk-LYB4B6MK.mjs.map +0 -1
- package/dist/chunk-MCNXIA4Q.mjs +0 -75
- package/dist/chunk-MCNXIA4Q.mjs.map +0 -1
- package/dist/chunk-MMVDU6DF.mjs +0 -1
- package/dist/chunk-MMVDU6DF.mjs.map +0 -1
- package/dist/chunk-MRXNTQOX.mjs +0 -59
- package/dist/chunk-MRXNTQOX.mjs.map +0 -1
- package/dist/chunk-OFPAO25A.mjs +0 -60
- package/dist/chunk-OFPAO25A.mjs.map +0 -1
- package/dist/chunk-QJNFNPWH.mjs +0 -85
- package/dist/chunk-QJNFNPWH.mjs.map +0 -1
- package/dist/chunk-RUV6NBIF.mjs +0 -1
- package/dist/chunk-RUV6NBIF.mjs.map +0 -1
- package/dist/chunk-SDHH6DI6.mjs +0 -63
- package/dist/chunk-SDHH6DI6.mjs.map +0 -1
- package/dist/chunk-T6MTDQZ7.mjs +0 -45
- package/dist/chunk-T6MTDQZ7.mjs.map +0 -1
- package/dist/chunk-UGEKMSRR.mjs +0 -225
- package/dist/chunk-UGEKMSRR.mjs.map +0 -1
- package/dist/chunk-VSVQZUPW.mjs +0 -124
- package/dist/chunk-VSVQZUPW.mjs.map +0 -1
- package/dist/chunk-WADHCMPK.mjs +0 -1
- package/dist/chunk-WADHCMPK.mjs.map +0 -1
- package/dist/chunk-WGWQRALG.mjs +0 -83
- package/dist/chunk-WGWQRALG.mjs.map +0 -1
- package/dist/chunk-WJHSY5T6.mjs +0 -1
- package/dist/chunk-WJHSY5T6.mjs.map +0 -1
- package/dist/chunk-XW3ICO4S.mjs +0 -25
- package/dist/chunk-XW3ICO4S.mjs.map +0 -1
- package/dist/chunk-YLFAIYRY.mjs +0 -50
- package/dist/chunk-YLFAIYRY.mjs.map +0 -1
- package/dist/components/base-copilot-textarea/base-copilot-textarea.css +0 -9
- package/dist/components/base-copilot-textarea/base-copilot-textarea.css.map +0 -1
- package/dist/components/copilot-textarea/copilot-textarea.css +0 -9
- package/dist/components/copilot-textarea/copilot-textarea.css.map +0 -1
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.d.ts +0 -16
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.js +0 -133
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.js.map +0 -1
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.mjs +0 -12
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.mjs.map +0 -1
- package/dist/components/index.css +0 -9
- package/dist/components/index.css.map +0 -1
- package/dist/index.css.map +0 -1
- package/src/components/base-copilot-textarea/base-copilot-textarea.css +0 -9
- package/src/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.tsx +0 -55
package/dist/chunk-4AMCUMC7.mjs
DELETED
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
HoveringInsertionPromptBox
|
|
3
|
-
} from "./chunk-I3SPIGAI.mjs";
|
|
4
|
-
import {
|
|
5
|
-
useHoveringEditorContext
|
|
6
|
-
} from "./chunk-LYB4B6MK.mjs";
|
|
7
|
-
import {
|
|
8
|
-
Menu,
|
|
9
|
-
Portal
|
|
10
|
-
} from "./chunk-CF5GISTC.mjs";
|
|
11
|
-
import {
|
|
12
|
-
getFullEditorTextWithNewlines,
|
|
13
|
-
getTextAroundSelection
|
|
14
|
-
} from "./chunk-ECR45NSD.mjs";
|
|
15
|
-
|
|
16
|
-
// src/components/hovering-toolbar/hovering-toolbar.tsx
|
|
17
|
-
import { useEffect, useRef, useState } from "react";
|
|
18
|
-
import { Transforms } from "slate";
|
|
19
|
-
import { useSlate, useSlateSelection } from "slate-react";
|
|
20
|
-
import { jsx } from "react/jsx-runtime";
|
|
21
|
-
var HoveringToolbar = (props) => {
|
|
22
|
-
const ref = useRef(null);
|
|
23
|
-
const editor = useSlate();
|
|
24
|
-
const selection = useSlateSelection();
|
|
25
|
-
const { isDisplayed, setIsDisplayed } = useHoveringEditorContext();
|
|
26
|
-
const [isClient, setIsClient] = useState(false);
|
|
27
|
-
useEffect(() => {
|
|
28
|
-
setIsClient(true);
|
|
29
|
-
}, []);
|
|
30
|
-
useEffect(() => {
|
|
31
|
-
const el = ref.current;
|
|
32
|
-
const { selection: selection2 } = editor;
|
|
33
|
-
if (!el) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
if (!selection2) {
|
|
37
|
-
el.removeAttribute("style");
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
const domSelection = window.getSelection();
|
|
41
|
-
if (!domSelection || domSelection.rangeCount === 0) {
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
const domRange = domSelection.getRangeAt(0);
|
|
45
|
-
const rect = domRange.getBoundingClientRect();
|
|
46
|
-
if (rect.top === 0 && rect.left === 0 && rect.width === 0 && rect.height === 0) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
const minGapFromEdge = 60;
|
|
50
|
-
const verticalOffsetFromCorner = 35;
|
|
51
|
-
const horizontalOffsetFromCorner = 15;
|
|
52
|
-
let top = rect.top + window.scrollY - el.offsetHeight + verticalOffsetFromCorner;
|
|
53
|
-
if (top < minGapFromEdge) {
|
|
54
|
-
top = rect.bottom + window.scrollY + minGapFromEdge;
|
|
55
|
-
} else if (top + el.offsetHeight > window.innerHeight - minGapFromEdge) {
|
|
56
|
-
top = rect.top + window.scrollY - el.offsetHeight - minGapFromEdge;
|
|
57
|
-
}
|
|
58
|
-
let left = rect.left + window.scrollX - el.offsetWidth / 2 + rect.width / 2 + horizontalOffsetFromCorner;
|
|
59
|
-
if (left < minGapFromEdge) {
|
|
60
|
-
left = minGapFromEdge;
|
|
61
|
-
} else if (left + el.offsetWidth > window.innerWidth - minGapFromEdge) {
|
|
62
|
-
left = window.innerWidth - el.offsetWidth - minGapFromEdge;
|
|
63
|
-
}
|
|
64
|
-
el.style.opacity = "1";
|
|
65
|
-
el.style.position = "absolute";
|
|
66
|
-
el.style.top = `${top}px`;
|
|
67
|
-
el.style.left = `${left}px`;
|
|
68
|
-
});
|
|
69
|
-
useEffect(() => {
|
|
70
|
-
const handleClickOutside = (event) => {
|
|
71
|
-
if (ref.current && !ref.current.contains(event.target)) {
|
|
72
|
-
setIsDisplayed(false);
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
document.addEventListener("mousedown", handleClickOutside);
|
|
76
|
-
return () => {
|
|
77
|
-
document.removeEventListener("mousedown", handleClickOutside);
|
|
78
|
-
};
|
|
79
|
-
}, [ref, setIsDisplayed]);
|
|
80
|
-
if (!isClient) {
|
|
81
|
-
return null;
|
|
82
|
-
}
|
|
83
|
-
return /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsx(
|
|
84
|
-
Menu,
|
|
85
|
-
{
|
|
86
|
-
ref,
|
|
87
|
-
className: "copilot-kit-textarea-css-scope " + (props.hoverMenuClassname || "p-2 absolute z-10 top-[-10000px] left-[-10000px] mt-[-6px] opacity-0 transition-opacity duration-700"),
|
|
88
|
-
children: isDisplayed && selection && /* @__PURE__ */ jsx(
|
|
89
|
-
HoveringInsertionPromptBox,
|
|
90
|
-
{
|
|
91
|
-
editorState: editorState(editor, selection),
|
|
92
|
-
apiConfig: props.apiConfig,
|
|
93
|
-
closeWindow: () => {
|
|
94
|
-
setIsDisplayed(false);
|
|
95
|
-
},
|
|
96
|
-
performInsertion: (insertedText) => {
|
|
97
|
-
Transforms.delete(editor, { at: selection });
|
|
98
|
-
Transforms.insertText(editor, insertedText, {
|
|
99
|
-
at: selection
|
|
100
|
-
});
|
|
101
|
-
setIsDisplayed(false);
|
|
102
|
-
},
|
|
103
|
-
contextCategories: props.contextCategories
|
|
104
|
-
}
|
|
105
|
-
)
|
|
106
|
-
}
|
|
107
|
-
) });
|
|
108
|
-
};
|
|
109
|
-
function editorState(editor, selection) {
|
|
110
|
-
const textAroundCursor = getTextAroundSelection(editor);
|
|
111
|
-
if (textAroundCursor) {
|
|
112
|
-
return textAroundCursor;
|
|
113
|
-
}
|
|
114
|
-
return {
|
|
115
|
-
textBeforeCursor: getFullEditorTextWithNewlines(editor),
|
|
116
|
-
textAfterCursor: "",
|
|
117
|
-
selectedText: ""
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
export {
|
|
122
|
-
HoveringToolbar
|
|
123
|
-
};
|
|
124
|
-
//# sourceMappingURL=chunk-4AMCUMC7.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/hovering-toolbar/hovering-toolbar.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport { Editor, Location, Transforms } from \"slate\";\nimport { useSlate, useSlateSelection } from \"slate-react\";\nimport { HoveringInsertionPromptBox } from \"./text-insertion-prompt-box\";\nimport { Menu, Portal } from \"./hovering-toolbar-components\";\nimport { useHoveringEditorContext } from \"./hovering-editor-provider\";\nimport {\n getFullEditorTextWithNewlines,\n getTextAroundSelection,\n} from \"../../lib/get-text-around-cursor\";\nimport {\n EditingEditorState,\n InsertionEditorApiConfig,\n} from \"../../types/base/autosuggestions-bare-function\";\n\nexport interface HoveringToolbarProps {\n apiConfig: InsertionEditorApiConfig;\n contextCategories: string[];\n hoverMenuClassname: string | undefined;\n}\n\nexport const HoveringToolbar = (props: HoveringToolbarProps) => {\n const ref = useRef<HTMLDivElement>(null);\n const editor = useSlate();\n const selection = useSlateSelection();\n const { isDisplayed, setIsDisplayed } = useHoveringEditorContext();\n\n // only render on client\n const [isClient, setIsClient] = useState(false);\n useEffect(() => {\n setIsClient(true);\n }, []);\n\n useEffect(() => {\n const el = ref.current;\n const { selection } = editor;\n\n if (!el) {\n return;\n }\n\n if (!selection) {\n el.removeAttribute(\"style\");\n return;\n }\n\n const domSelection = window.getSelection();\n if (!domSelection || domSelection.rangeCount === 0) {\n return;\n }\n\n const domRange = domSelection.getRangeAt(0);\n const rect = domRange.getBoundingClientRect();\n\n // We use window = (0,0,0,0) as a signal that the selection is not in the original copilot-textarea,\n // but inside the hovering window.\n //\n // in such case, we simply do nothing.\n if (rect.top === 0 && rect.left === 0 && rect.width === 0 && rect.height === 0) {\n return;\n }\n const minGapFromEdge = 60;\n const verticalOffsetFromCorner = 35;\n const horizontalOffsetFromCorner = 15;\n let top = rect.top + window.scrollY - el.offsetHeight + verticalOffsetFromCorner;\n // make sure top is in the viewport and not too close to the edge\n if (top < minGapFromEdge) {\n top = rect.bottom + window.scrollY + minGapFromEdge;\n } else if (top + el.offsetHeight > window.innerHeight - minGapFromEdge) {\n top = rect.top + window.scrollY - el.offsetHeight - minGapFromEdge;\n }\n\n let left =\n rect.left + window.scrollX - el.offsetWidth / 2 + rect.width / 2 + horizontalOffsetFromCorner;\n // make sure left is in the viewport and not too close to the edge\n if (left < minGapFromEdge) {\n left = minGapFromEdge;\n } else if (left + el.offsetWidth > window.innerWidth - minGapFromEdge) {\n left = window.innerWidth - el.offsetWidth - minGapFromEdge;\n }\n\n el.style.opacity = \"1\";\n el.style.position = \"absolute\";\n\n el.style.top = `${top}px`;\n el.style.left = `${left}px`;\n });\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (ref.current && !ref.current.contains(event.target as Node)) {\n setIsDisplayed(false);\n }\n };\n\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [ref, setIsDisplayed]);\n\n if (!isClient) {\n return null;\n }\n\n return (\n <Portal>\n <Menu\n ref={ref}\n className={\n \"copilot-kit-textarea-css-scope \" +\n (props.hoverMenuClassname ||\n \"p-2 absolute z-10 top-[-10000px] left-[-10000px] mt-[-6px] opacity-0 transition-opacity duration-700\")\n }\n >\n {isDisplayed && selection && (\n <HoveringInsertionPromptBox\n editorState={editorState(editor, selection)}\n apiConfig={props.apiConfig}\n closeWindow={() => {\n setIsDisplayed(false);\n }}\n performInsertion={(insertedText) => {\n // replace the selection with the inserted text\n Transforms.delete(editor, { at: selection });\n Transforms.insertText(editor, insertedText, {\n at: selection,\n });\n setIsDisplayed(false);\n }}\n contextCategories={props.contextCategories}\n />\n )}\n </Menu>\n </Portal>\n );\n};\n\nfunction editorState(editor: Editor, selection: Location): EditingEditorState {\n const textAroundCursor = getTextAroundSelection(editor);\n if (textAroundCursor) {\n return textAroundCursor;\n }\n\n return {\n textBeforeCursor: getFullEditorTextWithNewlines(editor),\n textAfterCursor: \"\",\n selectedText: \"\",\n };\n}\n"],"mappings":"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","names":["selection"]}
|
package/dist/chunk-4CVSOOJY.mjs
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
// src/types/base/base-autosuggestions-config.tsx
|
|
2
|
-
import { defaultCopilotContextCategories } from "@copilotkit/react-core";
|
|
3
|
-
var defaultShouldToggleHoveringEditorOnKeyPress = (event, shortcut) => {
|
|
4
|
-
if (event.key === shortcut && event.metaKey) {
|
|
5
|
-
return true;
|
|
6
|
-
}
|
|
7
|
-
return false;
|
|
8
|
-
};
|
|
9
|
-
var defaultShouldAcceptAutosuggestionOnKeyPress = (event) => {
|
|
10
|
-
if (event.key === "Tab") {
|
|
11
|
-
return true;
|
|
12
|
-
}
|
|
13
|
-
return false;
|
|
14
|
-
};
|
|
15
|
-
var defaultShouldAcceptAutosuggestionOnTouch = () => false;
|
|
16
|
-
var defaultBaseAutosuggestionsConfig = {
|
|
17
|
-
debounceTime: 250,
|
|
18
|
-
contextCategories: defaultCopilotContextCategories,
|
|
19
|
-
disableWhenEmpty: true,
|
|
20
|
-
disabled: false,
|
|
21
|
-
temporarilyDisableWhenMovingCursorWithoutChangingText: true,
|
|
22
|
-
shouldToggleHoveringEditorOnKeyPress: defaultShouldToggleHoveringEditorOnKeyPress,
|
|
23
|
-
shouldAcceptAutosuggestionOnKeyPress: defaultShouldAcceptAutosuggestionOnKeyPress,
|
|
24
|
-
shouldAcceptAutosuggestionOnTouch: defaultShouldAcceptAutosuggestionOnTouch
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
export {
|
|
28
|
-
defaultBaseAutosuggestionsConfig
|
|
29
|
-
};
|
|
30
|
-
//# sourceMappingURL=chunk-4CVSOOJY.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types/base/base-autosuggestions-config.tsx"],"sourcesContent":["import { BaseCopilotTextareaApiConfig } from \"./autosuggestions-bare-function\";\nimport { defaultCopilotContextCategories } from \"@copilotkit/react-core\";\n\n/**\n * @interface BaseAutosuggestionsConfig\n *\n * @property {string} textareaPurpose - The purpose of the textarea. This is used to guide the autosuggestions.\n *\n * @property {string[]} contextCategories - The categories of context to consider when providing autosuggestions.\n *\n * @property {number} debounceTime - The amount of time (in milliseconds) to wait before triggering autosuggestions after the user has stopped typing.\n *\n * @property {BaseCopilotTextareaApiConfig} apiConfig - The configuration for the API that provides the autosuggestions.\n *\n * @property {boolean} disableWhenEmpty - Whether to disable autosuggestions when the textarea is empty.\n *\n * @property {boolean} disabled - Whether to disable autosuggestions entirely.\n *\n * @property {boolean} temporarilyDisableWhenMovingCursorWithoutChangingText - Whether to temporarily disable autosuggestions when the user moves the cursor without changing the text.\n *\n * @property {(event: React.KeyboardEvent<HTMLDivElement>) => boolean} shouldAcceptAutosuggestionOnKeyPress - A function that determines whether to accept the current autosuggestion based on a key press event. By default, the Tab key is used to accept the autosuggestion. Example code:\n *\n * ```typescript\n * const defaultShouldAcceptAutosuggestionOnKeyPress = (event: React.KeyboardEvent<HTMLDivElement>) => {\n * // if tab, accept the autosuggestion\n * if (event.key === \"Tab\") {\n * return true;\n * }\n * return false;\n * }\n * ```\n *\n * @property {(event: React.TouchEvent<HTMLDivElement>) => boolean} shouldAcceptAutosuggestionOnTouch - A function that determines whether to accept the current autosuggestion based on a mobile touch event. By default, the touching the end of a suggestion will accept it. Example code:\n *\n * ```typescript\n * const shouldAcceptAutosuggestionOnTouch = (event: React.TouchEvent<HTMLDivElement>) => {\n * // if tab, accept the autosuggestion\n * if (event.type === \"touchstart\") {\n * return true;\n * }\n * return false;\n * }\n * ```\n *\n * @property {(event: React.KeyboardEvent<HTMLDivElement>) => boolean} shouldToggleHoveringEditorOnKeyPress - A function that determines whether to toggle the hovering editor based on a key press event. By default, the Command + K key combination is used to toggle the hovering editor. Example code:\n *\n * ```typescript\n * const defaultShouldToggleHoveringEditorOnKeyPress = (event: React.KeyboardEvent<HTMLDivElement>) => {\n * // if command-k, toggle the hovering editor\n * if (event.key === \"k\" && event.metaKey) {\n * return true;\n * }\n * return false;\n * }\n * ```\n */\nexport interface BaseAutosuggestionsConfig {\n textareaPurpose: string;\n contextCategories: string[];\n debounceTime: number;\n apiConfig: BaseCopilotTextareaApiConfig;\n\n disableWhenEmpty: boolean;\n disabled: boolean;\n temporarilyDisableWhenMovingCursorWithoutChangingText: boolean;\n shouldAcceptAutosuggestionOnKeyPress: (event: React.KeyboardEvent<HTMLDivElement>) => boolean;\n shouldAcceptAutosuggestionOnTouch: (event: React.TouchEvent<HTMLDivElement>) => boolean;\n shouldToggleHoveringEditorOnKeyPress: (\n event: React.KeyboardEvent<HTMLDivElement>,\n shortcut: string,\n ) => boolean;\n}\n\n// by default, command-k toggles the hovering editor\nconst defaultShouldToggleHoveringEditorOnKeyPress = (\n event: React.KeyboardEvent<HTMLDivElement>,\n shortcut: string,\n) => {\n // if command-k, toggle the hovering editor\n if (event.key === shortcut && event.metaKey) {\n return true;\n }\n return false;\n};\n\nconst defaultShouldAcceptAutosuggestionOnKeyPress = (\n event: React.KeyboardEvent<HTMLDivElement>,\n) => {\n // if tab, accept the autosuggestion\n if (event.key === \"Tab\") {\n return true;\n }\n return false;\n};\n\nconst defaultShouldAcceptAutosuggestionOnTouch = () => false;\n\n/**\n * Default configuration for the BaseAutosuggestions.\n *\n * @property {number} debounceTime - The amount of time to wait before triggering the autosuggestions API call.\n * @property {string[]} contextCategories - The categories to use for context when making the autosuggestions API call.\n * @property {boolean} disableWhenEmpty - Whether to disable the autosuggestions when the textarea is empty.\n * @property {boolean} disabled - Whether to disable the autosuggestions feature entirely.\n * @property {boolean} temporarilyDisableWhenMovingCursorWithoutChangingText - Whether to temporarily disable the autosuggestions when the cursor is moved without changing the text.\n * @property {(event: React.KeyboardEvent<HTMLDivElement>) => boolean} shouldToggleHoveringEditorOnKeyPress - A function that determines whether to toggle the hovering editor based on a key press event.\n * @property {(event: React.KeyboardEvent<HTMLDivElement>) => boolean} shouldAcceptAutosuggestionOnKeyPress - A function that determines whether to accept the autosuggestion based on a key press event.\n * @property {() => boolean} defaultShouldAcceptAutosuggestionOnTouch - A function that determines whether to accept the autosuggestion based on a mobile touch event.\n */\n\nexport const defaultBaseAutosuggestionsConfig: Omit<\n BaseAutosuggestionsConfig,\n \"textareaPurpose\" | \"apiConfig\"\n> = {\n debounceTime: 250,\n contextCategories: defaultCopilotContextCategories,\n disableWhenEmpty: true,\n disabled: false,\n temporarilyDisableWhenMovingCursorWithoutChangingText: true,\n shouldToggleHoveringEditorOnKeyPress: defaultShouldToggleHoveringEditorOnKeyPress,\n shouldAcceptAutosuggestionOnKeyPress: defaultShouldAcceptAutosuggestionOnKeyPress,\n shouldAcceptAutosuggestionOnTouch: defaultShouldAcceptAutosuggestionOnTouch,\n};\n"],"mappings":";AACA,SAAS,uCAAuC;AAyEhD,IAAM,8CAA8C,CAClD,OACA,aACG;AAEH,MAAI,MAAM,QAAQ,YAAY,MAAM,SAAS;AAC3C,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEA,IAAM,8CAA8C,CAClD,UACG;AAEH,MAAI,MAAM,QAAQ,OAAO;AACvB,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEA,IAAM,2CAA2C,MAAM;AAehD,IAAM,mCAGT;AAAA,EACF,cAAc;AAAA,EACd,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,UAAU;AAAA,EACV,uDAAuD;AAAA,EACvD,sCAAsC;AAAA,EACtC,sCAAsC;AAAA,EACtC,mCAAmC;AACrC;","names":[]}
|
package/dist/chunk-4NHVQZ67.mjs
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
// src/lib/slatejs-edits/with-partial-history.ts
|
|
2
|
-
import { Editor, Operation, Path, Transforms } from "slate";
|
|
3
|
-
import { HistoryEditor } from "slate-history";
|
|
4
|
-
var withPartialHistory = (editor, shouldSave) => {
|
|
5
|
-
const e = editor;
|
|
6
|
-
const { apply } = e;
|
|
7
|
-
e.history = { undos: [], redos: [] };
|
|
8
|
-
e.redo = () => {
|
|
9
|
-
const { history } = e;
|
|
10
|
-
const { redos } = history;
|
|
11
|
-
if (redos.length > 0) {
|
|
12
|
-
const batch = redos[redos.length - 1];
|
|
13
|
-
if (batch.selectionBefore) {
|
|
14
|
-
Transforms.setSelection(e, batch.selectionBefore);
|
|
15
|
-
}
|
|
16
|
-
HistoryEditor.withoutSaving(e, () => {
|
|
17
|
-
Editor.withoutNormalizing(e, () => {
|
|
18
|
-
for (const op of batch.operations) {
|
|
19
|
-
e.apply(op);
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
});
|
|
23
|
-
history.redos.pop();
|
|
24
|
-
e.writeHistory("undos", batch);
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
e.undo = () => {
|
|
28
|
-
const { history } = e;
|
|
29
|
-
const { undos } = history;
|
|
30
|
-
if (undos.length > 0) {
|
|
31
|
-
const batch = undos[undos.length - 1];
|
|
32
|
-
HistoryEditor.withoutSaving(e, () => {
|
|
33
|
-
Editor.withoutNormalizing(e, () => {
|
|
34
|
-
const inverseOps = batch.operations.map(Operation.inverse).reverse();
|
|
35
|
-
for (const op of inverseOps) {
|
|
36
|
-
e.apply(op);
|
|
37
|
-
}
|
|
38
|
-
if (batch.selectionBefore) {
|
|
39
|
-
Transforms.setSelection(e, batch.selectionBefore);
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
e.writeHistory("redos", batch);
|
|
44
|
-
history.undos.pop();
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
e.apply = (op) => {
|
|
48
|
-
const { operations, history } = e;
|
|
49
|
-
const { undos } = history;
|
|
50
|
-
const lastBatch = undos[undos.length - 1];
|
|
51
|
-
const lastOp = lastBatch && lastBatch.operations[lastBatch.operations.length - 1];
|
|
52
|
-
let save = HistoryEditor.isSaving(e);
|
|
53
|
-
let merge = HistoryEditor.isMerging(e);
|
|
54
|
-
if (save == null) {
|
|
55
|
-
save = shouldSave(op, lastOp);
|
|
56
|
-
}
|
|
57
|
-
if (save) {
|
|
58
|
-
if (merge == null) {
|
|
59
|
-
if (lastBatch == null) {
|
|
60
|
-
merge = false;
|
|
61
|
-
} else if (operations.length !== 0) {
|
|
62
|
-
merge = true;
|
|
63
|
-
} else {
|
|
64
|
-
merge = shouldMerge(op, lastOp);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
if (lastBatch && merge) {
|
|
68
|
-
lastBatch.operations.push(op);
|
|
69
|
-
} else {
|
|
70
|
-
const batch = {
|
|
71
|
-
operations: [op],
|
|
72
|
-
selectionBefore: e.selection
|
|
73
|
-
};
|
|
74
|
-
e.writeHistory("undos", batch);
|
|
75
|
-
}
|
|
76
|
-
while (undos.length > 100) {
|
|
77
|
-
undos.shift();
|
|
78
|
-
}
|
|
79
|
-
history.redos = [];
|
|
80
|
-
}
|
|
81
|
-
apply(op);
|
|
82
|
-
};
|
|
83
|
-
e.writeHistory = (stack, batch) => {
|
|
84
|
-
e.history[stack].push(batch);
|
|
85
|
-
};
|
|
86
|
-
return e;
|
|
87
|
-
};
|
|
88
|
-
var shouldMerge = (op, prev) => {
|
|
89
|
-
if (prev && op.type === "insert_text" && prev.type === "insert_text" && op.offset === prev.offset + prev.text.length && Path.equals(op.path, prev.path)) {
|
|
90
|
-
return true;
|
|
91
|
-
}
|
|
92
|
-
if (prev && op.type === "remove_text" && prev.type === "remove_text" && op.offset + op.text.length === prev.offset && Path.equals(op.path, prev.path)) {
|
|
93
|
-
return true;
|
|
94
|
-
}
|
|
95
|
-
return false;
|
|
96
|
-
};
|
|
97
|
-
var defaultShouldSave = (op, prev) => {
|
|
98
|
-
if (op.type === "set_selection") {
|
|
99
|
-
return false;
|
|
100
|
-
}
|
|
101
|
-
return true;
|
|
102
|
-
};
|
|
103
|
-
|
|
104
|
-
export {
|
|
105
|
-
withPartialHistory,
|
|
106
|
-
defaultShouldSave
|
|
107
|
-
};
|
|
108
|
-
//# sourceMappingURL=chunk-4NHVQZ67.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/slatejs-edits/with-partial-history.ts"],"sourcesContent":["import { Editor, Operation, Path, Range, Transforms } from \"slate\";\nimport { HistoryEditor } from \"slate-history\";\n\n// Copy-pasted from `https://github.com/ianstormtaylor/slate/blob/main/packages/slate-history/src/with-history.ts`\n// With one exception: the `shouldSave` function is passed in as an argument to `withPartialHistory` instead of being hardcoded\nexport type ShouldSaveToHistory = (op: Operation, prev: Operation | undefined) => boolean;\n\nexport const withPartialHistory = <T extends Editor>(\n editor: T,\n shouldSave: ShouldSaveToHistory,\n) => {\n const e = editor as T & HistoryEditor;\n const { apply } = e;\n e.history = { undos: [], redos: [] };\n\n e.redo = () => {\n const { history } = e;\n const { redos } = history;\n\n if (redos.length > 0) {\n const batch = redos[redos.length - 1];\n\n if (batch.selectionBefore) {\n Transforms.setSelection(e, batch.selectionBefore);\n }\n\n HistoryEditor.withoutSaving(e, () => {\n Editor.withoutNormalizing(e, () => {\n for (const op of batch.operations) {\n e.apply(op);\n }\n });\n });\n\n history.redos.pop();\n e.writeHistory(\"undos\", batch);\n }\n };\n\n e.undo = () => {\n const { history } = e;\n const { undos } = history;\n\n if (undos.length > 0) {\n const batch = undos[undos.length - 1];\n\n HistoryEditor.withoutSaving(e, () => {\n Editor.withoutNormalizing(e, () => {\n const inverseOps = batch.operations.map(Operation.inverse).reverse();\n\n for (const op of inverseOps) {\n e.apply(op);\n }\n if (batch.selectionBefore) {\n Transforms.setSelection(e, batch.selectionBefore);\n }\n });\n });\n\n e.writeHistory(\"redos\", batch);\n history.undos.pop();\n }\n };\n\n e.apply = (op: Operation) => {\n const { operations, history } = e;\n const { undos } = history;\n const lastBatch = undos[undos.length - 1];\n const lastOp = lastBatch && lastBatch.operations[lastBatch.operations.length - 1];\n let save = HistoryEditor.isSaving(e);\n let merge = HistoryEditor.isMerging(e);\n\n if (save == null) {\n save = shouldSave(op, lastOp);\n }\n\n if (save) {\n if (merge == null) {\n if (lastBatch == null) {\n merge = false;\n } else if (operations.length !== 0) {\n merge = true;\n } else {\n merge = shouldMerge(op, lastOp);\n }\n }\n\n if (lastBatch && merge) {\n lastBatch.operations.push(op);\n } else {\n const batch = {\n operations: [op],\n selectionBefore: e.selection,\n };\n e.writeHistory(\"undos\", batch);\n }\n\n while (undos.length > 100) {\n undos.shift();\n }\n\n history.redos = [];\n }\n\n apply(op);\n };\n\n e.writeHistory = (stack: \"undos\" | \"redos\", batch: any) => {\n e.history[stack].push(batch);\n };\n\n return e;\n};\n\n/**\n * Check whether to merge an operation into the previous operation.\n */\n\nconst shouldMerge = (op: Operation, prev: Operation | undefined): boolean => {\n if (\n prev &&\n op.type === \"insert_text\" &&\n prev.type === \"insert_text\" &&\n op.offset === prev.offset + prev.text.length &&\n Path.equals(op.path, prev.path)\n ) {\n return true;\n }\n\n if (\n prev &&\n op.type === \"remove_text\" &&\n prev.type === \"remove_text\" &&\n op.offset + op.text.length === prev.offset &&\n Path.equals(op.path, prev.path)\n ) {\n return true;\n }\n\n return false;\n};\n\nexport const defaultShouldSave = (op: Operation, prev: Operation | undefined): boolean => {\n if (op.type === \"set_selection\") {\n return false;\n }\n\n return true;\n};\n"],"mappings":"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","names":[]}
|
package/dist/chunk-4PDYALMP.mjs
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
cn
|
|
3
|
-
} from "./chunk-YLFAIYRY.mjs";
|
|
4
|
-
import {
|
|
5
|
-
__objRest,
|
|
6
|
-
__spreadValues
|
|
7
|
-
} from "./chunk-MRXNTQOX.mjs";
|
|
8
|
-
|
|
9
|
-
// src/components/ui/button.tsx
|
|
10
|
-
import * as React from "react";
|
|
11
|
-
import { Slot } from "@radix-ui/react-slot";
|
|
12
|
-
import { cva } from "class-variance-authority";
|
|
13
|
-
import { jsx } from "react/jsx-runtime";
|
|
14
|
-
var buttonVariants = cva(
|
|
15
|
-
"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
|
|
16
|
-
{
|
|
17
|
-
variants: {
|
|
18
|
-
variant: {
|
|
19
|
-
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
20
|
-
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
|
|
21
|
-
outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
|
|
22
|
-
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
23
|
-
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
24
|
-
link: "text-primary underline-offset-4 hover:underline"
|
|
25
|
-
},
|
|
26
|
-
size: {
|
|
27
|
-
default: "h-10 px-4 py-2",
|
|
28
|
-
sm: "h-9 rounded-md px-3",
|
|
29
|
-
lg: "h-11 rounded-md px-8",
|
|
30
|
-
icon: "h-10 w-10"
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
|
-
defaultVariants: {
|
|
34
|
-
variant: "default",
|
|
35
|
-
size: "default"
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
);
|
|
39
|
-
var Button = React.forwardRef(
|
|
40
|
-
(_a, ref) => {
|
|
41
|
-
var _b = _a, { className, variant, size, asChild = false } = _b, props = __objRest(_b, ["className", "variant", "size", "asChild"]);
|
|
42
|
-
const Comp = asChild ? Slot : "button";
|
|
43
|
-
return /* @__PURE__ */ jsx(Comp, __spreadValues({ className: cn(buttonVariants({ variant, size, className })), ref }, props));
|
|
44
|
-
}
|
|
45
|
-
);
|
|
46
|
-
Button.displayName = "Button";
|
|
47
|
-
|
|
48
|
-
export {
|
|
49
|
-
buttonVariants,
|
|
50
|
-
Button
|
|
51
|
-
};
|
|
52
|
-
//# sourceMappingURL=chunk-4PDYALMP.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ui/button.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive: \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary: \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-10 px-4 py-2\",\n sm: \"h-9 rounded-md px-3\",\n lg: \"h-11 rounded-md px-8\",\n icon: \"h-10 w-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n return (\n <Comp className={cn(buttonVariants({ variant, size, className }))} ref={ref} {...props} />\n );\n },\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n"],"mappings":";;;;;;;;;AAAA,YAAY,WAAW;AACvB,SAAS,YAAY;AACrB,SAAS,WAA8B;AAwCjC;AApCN,IAAM,iBAAiB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,QACb,SAAS;AAAA,QACT,WAAW;AAAA,QACX,OAAO;AAAA,QACP,MAAM;AAAA,MACR;AAAA,MACA,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAQA,IAAM,SAAe;AAAA,EACnB,CAAC,IAAyD,QAAQ;AAAjE,iBAAE,aAAW,SAAS,MAAM,UAAU,MAvCzC,IAuCG,IAAgD,kBAAhD,IAAgD,CAA9C,aAAW,WAAS,QAAM;AAC3B,UAAM,OAAO,UAAU,OAAO;AAC9B,WACE,oBAAC,uBAAK,WAAW,GAAG,eAAe,EAAE,SAAS,MAAM,UAAU,CAAC,CAAC,GAAG,OAAc,MAAO;AAAA,EAE5F;AACF;AACA,OAAO,cAAc;","names":[]}
|
package/dist/chunk-5UNJXFUO.mjs
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
// src/lib/slatejs-edits/replace-text.ts
|
|
2
|
-
import { Editor, Transforms } from "slate";
|
|
3
|
-
function replaceEditorText(editor, newText) {
|
|
4
|
-
Transforms.delete(editor, {
|
|
5
|
-
at: {
|
|
6
|
-
anchor: Editor.start(editor, []),
|
|
7
|
-
focus: Editor.end(editor, [])
|
|
8
|
-
}
|
|
9
|
-
});
|
|
10
|
-
if (newText && newText !== "") {
|
|
11
|
-
Transforms.insertNodes(
|
|
12
|
-
editor,
|
|
13
|
-
[
|
|
14
|
-
{
|
|
15
|
-
type: "paragraph",
|
|
16
|
-
children: [{ text: newText }]
|
|
17
|
-
}
|
|
18
|
-
],
|
|
19
|
-
{
|
|
20
|
-
at: [0]
|
|
21
|
-
}
|
|
22
|
-
);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export {
|
|
27
|
-
replaceEditorText
|
|
28
|
-
};
|
|
29
|
-
//# sourceMappingURL=chunk-5UNJXFUO.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/slatejs-edits/replace-text.ts"],"sourcesContent":["import { Editor, Transforms } from \"slate\";\n\nexport function replaceEditorText(editor: Editor, newText: string) {\n // clear all previous text\n Transforms.delete(editor, {\n at: {\n anchor: Editor.start(editor, []),\n focus: Editor.end(editor, []),\n },\n });\n\n // insert new text\n if (newText && newText !== \"\") {\n // don't insert empty text - results in strange visual behavior\n Transforms.insertNodes(\n editor,\n [\n {\n type: \"paragraph\",\n children: [{ text: newText }],\n },\n ],\n {\n at: [0],\n },\n );\n }\n}\n"],"mappings":";AAAA,SAAS,QAAQ,kBAAkB;AAE5B,SAAS,kBAAkB,QAAgB,SAAiB;AAEjE,aAAW,OAAO,QAAQ;AAAA,IACxB,IAAI;AAAA,MACF,QAAQ,OAAO,MAAM,QAAQ,CAAC,CAAC;AAAA,MAC/B,OAAO,OAAO,IAAI,QAAQ,CAAC,CAAC;AAAA,IAC9B;AAAA,EACF,CAAC;AAGD,MAAI,WAAW,YAAY,IAAI;AAE7B,eAAW;AAAA,MACT;AAAA,MACA;AAAA,QACE;AAAA,UACE,MAAM;AAAA,UACN,UAAU,CAAC,EAAE,MAAM,QAAQ,CAAC;AAAA,QAC9B;AAAA,MACF;AAAA,MACA;AAAA,QACE,IAAI,CAAC,CAAC;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
|
package/dist/chunk-7LSRNPNI.mjs
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
// src/components/base-copilot-textarea/use-add-branding-css.tsx
|
|
2
|
-
import { useEffect } from "react";
|
|
3
|
-
function useAddBrandingCss(suggestionStyleAugmented, disableBranding) {
|
|
4
|
-
const cssSelector = ".copilot-textarea.with-branding";
|
|
5
|
-
useEffect(() => {
|
|
6
|
-
if (disableBranding) {
|
|
7
|
-
return;
|
|
8
|
-
}
|
|
9
|
-
const styleEl = document.createElement("style");
|
|
10
|
-
styleEl.id = "dynamic-styles";
|
|
11
|
-
let dynamicStyles = Object.entries(suggestionStyleAugmented).map(([key, value]) => {
|
|
12
|
-
const kebabCaseKey = key.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, "$1-$2").toLowerCase();
|
|
13
|
-
return `${kebabCaseKey}: ${value};`;
|
|
14
|
-
}).join(" ");
|
|
15
|
-
dynamicStyles += `font-style: normal; font-size: x-small;`;
|
|
16
|
-
dynamicStyles += `content: "CopilotKit";`;
|
|
17
|
-
dynamicStyles += `bottom: 6px;`;
|
|
18
|
-
dynamicStyles += `right: 6px;`;
|
|
19
|
-
dynamicStyles += `pointer-events: none;`;
|
|
20
|
-
dynamicStyles += `font-weight: 200;`;
|
|
21
|
-
dynamicStyles += `padding: 0;`;
|
|
22
|
-
dynamicStyles += `margin: 0;`;
|
|
23
|
-
dynamicStyles += `border: 0;`;
|
|
24
|
-
dynamicStyles += `line-height: 1;`;
|
|
25
|
-
dynamicStyles += `position: absolute;`;
|
|
26
|
-
styleEl.innerHTML = `
|
|
27
|
-
${cssSelector}::after {
|
|
28
|
-
${dynamicStyles}
|
|
29
|
-
}
|
|
30
|
-
`;
|
|
31
|
-
document.head.appendChild(styleEl);
|
|
32
|
-
const textarea = document.querySelector(cssSelector);
|
|
33
|
-
const handleScroll = () => {
|
|
34
|
-
const styleEl2 = document.getElementById("dynamic-styles");
|
|
35
|
-
if (styleEl2 && textarea) {
|
|
36
|
-
const offsetFromBottom = -textarea.scrollTop + 6;
|
|
37
|
-
const offsetFromRight = -textarea.scrollLeft + 6;
|
|
38
|
-
styleEl2.innerHTML = `
|
|
39
|
-
${cssSelector}::after {
|
|
40
|
-
${dynamicStyles}
|
|
41
|
-
bottom: ${offsetFromBottom}px;
|
|
42
|
-
right: ${offsetFromRight}px;
|
|
43
|
-
}
|
|
44
|
-
`;
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
textarea == null ? void 0 : textarea.addEventListener("scroll", handleScroll);
|
|
48
|
-
return () => {
|
|
49
|
-
var _a;
|
|
50
|
-
(_a = document.getElementById("dynamic-styles")) == null ? void 0 : _a.remove();
|
|
51
|
-
textarea == null ? void 0 : textarea.removeEventListener("scroll", handleScroll);
|
|
52
|
-
};
|
|
53
|
-
}, [disableBranding, suggestionStyleAugmented]);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
export {
|
|
57
|
-
useAddBrandingCss
|
|
58
|
-
};
|
|
59
|
-
//# sourceMappingURL=chunk-7LSRNPNI.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/base-copilot-textarea/use-add-branding-css.tsx"],"sourcesContent":["import { useEffect } from \"react\";\n\nexport function useAddBrandingCss(\n suggestionStyleAugmented: React.CSSProperties,\n disableBranding: boolean | undefined,\n) {\n const cssSelector = \".copilot-textarea.with-branding\";\n useEffect(() => {\n if (disableBranding) {\n return;\n }\n\n // ---\n // 1: Add the CSS to the DOM\n const styleEl = document.createElement(\"style\");\n styleEl.id = \"dynamic-styles\";\n\n // Build the CSS string dynamically\n let dynamicStyles = Object.entries(suggestionStyleAugmented)\n .map(([key, value]) => {\n const kebabCaseKey = key.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, \"$1-$2\").toLowerCase();\n return `${kebabCaseKey}: ${value};`;\n })\n .join(\" \");\n\n // Append overrides for italics and font-size\n dynamicStyles += `font-style: normal; font-size: x-small;`;\n dynamicStyles += `content: \"CopilotKit\";`;\n dynamicStyles += `bottom: 6px;`;\n dynamicStyles += `right: 6px;`;\n dynamicStyles += `pointer-events: none;`;\n dynamicStyles += `font-weight: 200;`;\n dynamicStyles += `padding: 0;`;\n dynamicStyles += `margin: 0;`;\n dynamicStyles += `border: 0;`;\n dynamicStyles += `line-height: 1;`;\n dynamicStyles += `position: absolute;`;\n\n // Append it to the ::after class\n styleEl.innerHTML = `\n ${cssSelector}::after {\n ${dynamicStyles}\n }\n `;\n\n document.head.appendChild(styleEl);\n\n // ---\n // 2: Add the scroll listener (to keep the branding in the bottom right as the textarea scrolls)\n const textarea = document.querySelector(cssSelector);\n const handleScroll = () => {\n const styleEl = document.getElementById(\"dynamic-styles\");\n if (styleEl && textarea) {\n const offsetFromBottom = -textarea.scrollTop + 6;\n const offsetFromRight = -textarea.scrollLeft + 6;\n styleEl.innerHTML = `\n ${cssSelector}::after {\n ${dynamicStyles}\n bottom: ${offsetFromBottom}px;\n right: ${offsetFromRight}px;\n }\n `;\n }\n };\n\n textarea?.addEventListener(\"scroll\", handleScroll);\n\n // Cleanup\n return () => {\n document.getElementById(\"dynamic-styles\")?.remove();\n textarea?.removeEventListener(\"scroll\", handleScroll);\n };\n }, [disableBranding, suggestionStyleAugmented]);\n}\n"],"mappings":";AAAA,SAAS,iBAAiB;AAEnB,SAAS,kBACd,0BACA,iBACA;AACA,QAAM,cAAc;AACpB,YAAU,MAAM;AACd,QAAI,iBAAiB;AACnB;AAAA,IACF;AAIA,UAAM,UAAU,SAAS,cAAc,OAAO;AAC9C,YAAQ,KAAK;AAGb,QAAI,gBAAgB,OAAO,QAAQ,wBAAwB,EACxD,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACrB,YAAM,eAAe,IAAI,QAAQ,gCAAgC,OAAO,EAAE,YAAY;AACtF,aAAO,GAAG,iBAAiB;AAAA,IAC7B,CAAC,EACA,KAAK,GAAG;AAGX,qBAAiB;AACjB,qBAAiB;AACjB,qBAAiB;AACjB,qBAAiB;AACjB,qBAAiB;AACjB,qBAAiB;AACjB,qBAAiB;AACjB,qBAAiB;AACjB,qBAAiB;AACjB,qBAAiB;AACjB,qBAAiB;AAGjB,YAAQ,YAAY;AAAA,QAChB;AAAA,UACE;AAAA;AAAA;AAIN,aAAS,KAAK,YAAY,OAAO;AAIjC,UAAM,WAAW,SAAS,cAAc,WAAW;AACnD,UAAM,eAAe,MAAM;AACzB,YAAMA,WAAU,SAAS,eAAe,gBAAgB;AACxD,UAAIA,YAAW,UAAU;AACvB,cAAM,mBAAmB,CAAC,SAAS,YAAY;AAC/C,cAAM,kBAAkB,CAAC,SAAS,aAAa;AAC/C,QAAAA,SAAQ,YAAY;AAAA,YAChB;AAAA,cACE;AAAA,sBACQ;AAAA,qBACD;AAAA;AAAA;AAAA,MAGf;AAAA,IACF;AAEA,yCAAU,iBAAiB,UAAU;AAGrC,WAAO,MAAM;AApEjB;AAqEM,qBAAS,eAAe,gBAAgB,MAAxC,mBAA2C;AAC3C,2CAAU,oBAAoB,UAAU;AAAA,IAC1C;AAAA,EACF,GAAG,CAAC,iBAAiB,wBAAwB,CAAC;AAChD;","names":["styleEl"]}
|
package/dist/chunk-AJ5OMEXM.mjs
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
arraysAreEqual
|
|
3
|
-
} from "./chunk-YLFAIYRY.mjs";
|
|
4
|
-
|
|
5
|
-
// src/types/base/editor-autocomplete-state.ts
|
|
6
|
-
function areEqual_autocompleteState(prev, next) {
|
|
7
|
-
return prev.cursorPoint.offset === next.cursorPoint.offset && arraysAreEqual(prev.cursorPoint.path, next.cursorPoint.path) && prev.textBeforeCursor === next.textBeforeCursor && prev.textAfterCursor === next.textAfterCursor;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export {
|
|
11
|
-
areEqual_autocompleteState
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=chunk-AJ5OMEXM.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types/base/editor-autocomplete-state.ts"],"sourcesContent":["import { BasePoint } from \"slate\";\nimport { arraysAreEqual } from \"../../lib/utils\";\n\nexport interface EditorAutocompleteState {\n cursorPoint: BasePoint;\n textBeforeCursor: string;\n textAfterCursor: string;\n}\n\nexport function areEqual_autocompleteState(\n prev: EditorAutocompleteState,\n next: EditorAutocompleteState,\n) {\n return (\n prev.cursorPoint.offset === next.cursorPoint.offset &&\n arraysAreEqual(prev.cursorPoint.path, next.cursorPoint.path) &&\n prev.textBeforeCursor === next.textBeforeCursor &&\n prev.textAfterCursor === next.textAfterCursor\n );\n}\n"],"mappings":";;;;;AASO,SAAS,2BACd,MACA,MACA;AACA,SACE,KAAK,YAAY,WAAW,KAAK,YAAY,UAC7C,eAAe,KAAK,YAAY,MAAM,KAAK,YAAY,IAAI,KAC3D,KAAK,qBAAqB,KAAK,oBAC/B,KAAK,oBAAoB,KAAK;AAElC;","names":[]}
|
package/dist/chunk-CF5GISTC.mjs
DELETED
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
__objRest,
|
|
3
|
-
__spreadProps,
|
|
4
|
-
__spreadValues
|
|
5
|
-
} from "./chunk-MRXNTQOX.mjs";
|
|
6
|
-
|
|
7
|
-
// src/components/hovering-toolbar/hovering-toolbar-components.tsx
|
|
8
|
-
import { css, cx } from "@emotion/css";
|
|
9
|
-
import React from "react";
|
|
10
|
-
import ReactDOM from "react-dom";
|
|
11
|
-
import { jsx } from "react/jsx-runtime";
|
|
12
|
-
var Button = React.forwardRef(
|
|
13
|
-
(_a, ref) => {
|
|
14
|
-
var _b = _a, {
|
|
15
|
-
className,
|
|
16
|
-
active,
|
|
17
|
-
reversed
|
|
18
|
-
} = _b, props = __objRest(_b, [
|
|
19
|
-
"className",
|
|
20
|
-
"active",
|
|
21
|
-
"reversed"
|
|
22
|
-
]);
|
|
23
|
-
return /* @__PURE__ */ jsx(
|
|
24
|
-
"span",
|
|
25
|
-
__spreadProps(__spreadValues({}, props), {
|
|
26
|
-
ref,
|
|
27
|
-
className: cx(
|
|
28
|
-
className,
|
|
29
|
-
css`
|
|
30
|
-
cursor: pointer;
|
|
31
|
-
color: ${reversed ? active ? "white" : "#aaa" : active ? "black" : "#ccc"};
|
|
32
|
-
`
|
|
33
|
-
)
|
|
34
|
-
})
|
|
35
|
-
);
|
|
36
|
-
}
|
|
37
|
-
);
|
|
38
|
-
var Icon = React.forwardRef(
|
|
39
|
-
(_a, ref) => {
|
|
40
|
-
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
41
|
-
return /* @__PURE__ */ jsx(
|
|
42
|
-
"span",
|
|
43
|
-
__spreadProps(__spreadValues({}, props), {
|
|
44
|
-
ref,
|
|
45
|
-
className: cx(
|
|
46
|
-
"material-icons",
|
|
47
|
-
className,
|
|
48
|
-
css`
|
|
49
|
-
font-size: 18px;
|
|
50
|
-
vertical-align: text-bottom;
|
|
51
|
-
`
|
|
52
|
-
)
|
|
53
|
-
})
|
|
54
|
-
);
|
|
55
|
-
}
|
|
56
|
-
);
|
|
57
|
-
var Menu = React.forwardRef(
|
|
58
|
-
(_a, ref) => {
|
|
59
|
-
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
60
|
-
return /* @__PURE__ */ jsx(
|
|
61
|
-
"div",
|
|
62
|
-
__spreadProps(__spreadValues({}, props), {
|
|
63
|
-
"data-test-id": "menu",
|
|
64
|
-
ref,
|
|
65
|
-
className: cx(
|
|
66
|
-
className,
|
|
67
|
-
css`
|
|
68
|
-
& > * {
|
|
69
|
-
display: inline-block;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
& > * + * {
|
|
73
|
-
margin-left: 15px;
|
|
74
|
-
}
|
|
75
|
-
`
|
|
76
|
-
)
|
|
77
|
-
})
|
|
78
|
-
);
|
|
79
|
-
}
|
|
80
|
-
);
|
|
81
|
-
var Portal = ({ children }) => {
|
|
82
|
-
return typeof document === "object" ? ReactDOM.createPortal(children, document.body) : null;
|
|
83
|
-
};
|
|
84
|
-
var Toolbar = React.forwardRef(
|
|
85
|
-
(_a, ref) => {
|
|
86
|
-
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
87
|
-
return /* @__PURE__ */ jsx(
|
|
88
|
-
Menu,
|
|
89
|
-
__spreadProps(__spreadValues({}, props), {
|
|
90
|
-
ref,
|
|
91
|
-
className: cx(
|
|
92
|
-
className,
|
|
93
|
-
css`
|
|
94
|
-
position: relative;
|
|
95
|
-
padding: 1px 18px 17px;
|
|
96
|
-
margin: 0 -20px;
|
|
97
|
-
border-bottom: 2px solid #eee;
|
|
98
|
-
margin-bottom: 20px;
|
|
99
|
-
`
|
|
100
|
-
)
|
|
101
|
-
})
|
|
102
|
-
);
|
|
103
|
-
}
|
|
104
|
-
);
|
|
105
|
-
|
|
106
|
-
export {
|
|
107
|
-
Button,
|
|
108
|
-
Icon,
|
|
109
|
-
Menu,
|
|
110
|
-
Portal,
|
|
111
|
-
Toolbar
|
|
112
|
-
};
|
|
113
|
-
//# sourceMappingURL=chunk-CF5GISTC.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/hovering-toolbar/hovering-toolbar-components.tsx"],"sourcesContent":["import { css, cx } from \"@emotion/css\";\nimport React, { PropsWithChildren, Ref } from \"react\";\nimport ReactDOM from \"react-dom\";\n\ninterface BaseProps {\n className: string;\n [key: string]: unknown;\n}\n\nexport const Button = React.forwardRef(\n (\n {\n className,\n active,\n reversed,\n ...props\n }: PropsWithChildren<\n {\n active: boolean;\n reversed: boolean;\n } & BaseProps\n >,\n ref: Ref<HTMLSpanElement | null>,\n ) => (\n <span\n {...props}\n ref={ref as Ref<HTMLSpanElement>}\n className={cx(\n className,\n css`\n cursor: pointer;\n color: ${reversed ? (active ? \"white\" : \"#aaa\") : active ? \"black\" : \"#ccc\"};\n `,\n )}\n />\n ),\n);\n\nexport const Icon = React.forwardRef(\n ({ className, ...props }: PropsWithChildren<BaseProps>, ref: Ref<HTMLSpanElement | null>) => (\n <span\n {...props}\n ref={ref as Ref<HTMLSpanElement>}\n className={cx(\n \"material-icons\",\n className,\n css`\n font-size: 18px;\n vertical-align: text-bottom;\n `,\n )}\n />\n ),\n);\n\nexport const Menu = React.forwardRef(\n ({ className, ...props }: PropsWithChildren<BaseProps>, ref: Ref<HTMLDivElement | null>) => {\n return (\n <div\n {...props}\n data-test-id=\"menu\"\n ref={ref as Ref<HTMLDivElement>}\n className={cx(\n className,\n css`\n & > * {\n display: inline-block;\n }\n\n & > * + * {\n margin-left: 15px;\n }\n `,\n )}\n />\n );\n },\n);\nexport const Portal = ({ children }: { children: React.ReactNode }) => {\n return typeof document === \"object\" ? ReactDOM.createPortal(children, document.body) : null;\n};\n\nexport const Toolbar = React.forwardRef(\n ({ className, ...props }: PropsWithChildren<BaseProps>, ref?: Ref<HTMLDivElement>) => (\n <Menu\n {...props}\n ref={ref}\n className={cx(\n className,\n css`\n position: relative;\n padding: 1px 18px 17px;\n margin: 0 -20px;\n border-bottom: 2px solid #eee;\n margin-bottom: 20px;\n `,\n )}\n />\n ),\n);\n"],"mappings":";;;;;;;AAAA,SAAS,KAAK,UAAU;AACxB,OAAO,WAAuC;AAC9C,OAAO,cAAc;AAsBjB;AAfG,IAAM,SAAS,MAAM;AAAA,EAC1B,CACE,IAWA,QACA;AAZA,iBACE;AAAA;AAAA,MACA;AAAA,MACA;AAAA,IAdN,IAWI,IAIK,kBAJL,IAIK;AAAA,MAHH;AAAA,MACA;AAAA,MACA;AAAA;AAUF;AAAA,MAAC;AAAA,uCACK,QADL;AAAA,QAEC;AAAA,QACA,WAAW;AAAA,UACT;AAAA,UACA;AAAA;AAAA,mBAEW,WAAY,SAAS,UAAU,SAAU,SAAS,UAAU;AAAA;AAAA,QAEzE;AAAA;AAAA,IACF;AAAA;AAEJ;AAEO,IAAM,OAAO,MAAM;AAAA,EACxB,CAAC,IAAuD,QAAkC;AAAzF,iBAAE,YAvCL,IAuCG,IAAgB,kBAAhB,IAAgB,CAAd;AACD;AAAA,MAAC;AAAA,uCACK,QADL;AAAA,QAEC;AAAA,QACA,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA;AAAA;AAAA;AAAA,QAIF;AAAA;AAAA,IACF;AAAA;AAEJ;AAEO,IAAM,OAAO,MAAM;AAAA,EACxB,CAAC,IAAuD,QAAoC;AAA3F,iBAAE,YAxDL,IAwDG,IAAgB,kBAAhB,IAAgB,CAAd;AACD,WACE;AAAA,MAAC;AAAA,uCACK,QADL;AAAA,QAEC,gBAAa;AAAA,QACb;AAAA,QACA,WAAW;AAAA,UACT;AAAA,UACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QASF;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AACO,IAAM,SAAS,CAAC,EAAE,SAAS,MAAqC;AACrE,SAAO,OAAO,aAAa,WAAW,SAAS,aAAa,UAAU,SAAS,IAAI,IAAI;AACzF;AAEO,IAAM,UAAU,MAAM;AAAA,EAC3B,CAAC,IAAuD,QAA2B;AAAlF,iBAAE,YAnFL,IAmFG,IAAgB,kBAAhB,IAAgB,CAAd;AACD;AAAA,MAAC;AAAA,uCACK,QADL;AAAA,QAEC;AAAA,QACA,WAAW;AAAA,UACT;AAAA,UACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAOF;AAAA;AAAA,IACF;AAAA;AAEJ;","names":[]}
|