@rowsncolumns/ui 15.0.38
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/LICENSE.md +100 -0
- package/dist/cjs/arrow/index.d.ts +17 -0
- package/dist/cjs/arrow/index.d.ts.map +1 -0
- package/dist/cjs/arrow/index.js +46 -0
- package/dist/cjs/button/index.d.ts +14 -0
- package/dist/cjs/button/index.d.ts.map +1 -0
- package/dist/cjs/button/index.js +46 -0
- package/dist/cjs/calendar/index.d.ts +5 -0
- package/dist/cjs/calendar/index.d.ts.map +1 -0
- package/dist/cjs/calendar/index.js +13 -0
- package/dist/cjs/card/index.d.ts +10 -0
- package/dist/cjs/card/index.d.ts.map +1 -0
- package/dist/cjs/card/index.js +32 -0
- package/dist/cjs/cell-tooltip/index.d.ts +17 -0
- package/dist/cjs/cell-tooltip/index.d.ts.map +1 -0
- package/dist/cjs/cell-tooltip/index.js +38 -0
- package/dist/cjs/circular-loader/index.d.ts +9 -0
- package/dist/cjs/circular-loader/index.d.ts.map +1 -0
- package/dist/cjs/circular-loader/index.js +11 -0
- package/dist/cjs/color-picker/index.d.ts +12 -0
- package/dist/cjs/color-picker/index.d.ts.map +1 -0
- package/dist/cjs/color-picker/index.js +101 -0
- package/dist/cjs/color-picker/style.d.ts +5 -0
- package/dist/cjs/color-picker/style.d.ts.map +1 -0
- package/dist/cjs/color-picker/style.js +11 -0
- package/dist/cjs/command/index.d.ts +74 -0
- package/dist/cjs/command/index.d.ts.map +1 -0
- package/dist/cjs/command/index.js +37 -0
- package/dist/cjs/conditional-wrapper/index.d.ts +9 -0
- package/dist/cjs/conditional-wrapper/index.d.ts.map +1 -0
- package/dist/cjs/conditional-wrapper/index.js +4 -0
- package/dist/cjs/dialog/index.d.ts +17 -0
- package/dist/cjs/dialog/index.d.ts.map +1 -0
- package/dist/cjs/dialog/index.js +50 -0
- package/dist/cjs/dropdown/index.d.ts +34 -0
- package/dist/cjs/dropdown/index.d.ts.map +1 -0
- package/dist/cjs/dropdown/index.js +73 -0
- package/dist/cjs/editor/constants.d.ts +7 -0
- package/dist/cjs/editor/constants.d.ts.map +1 -0
- package/dist/cjs/editor/constants.js +50 -0
- package/dist/cjs/editor/editor-error-boundary.d.ts +3 -0
- package/dist/cjs/editor/editor-error-boundary.d.ts.map +1 -0
- package/dist/cjs/editor/editor-error-boundary.js +9 -0
- package/dist/cjs/editor/style.d.ts +12 -0
- package/dist/cjs/editor/style.d.ts.map +1 -0
- package/dist/cjs/editor/style.js +24 -0
- package/dist/cjs/editor/suggestions-dropdown.d.ts +25 -0
- package/dist/cjs/editor/suggestions-dropdown.d.ts.map +1 -0
- package/dist/cjs/editor/suggestions-dropdown.js +120 -0
- package/dist/cjs/editor-pm/constants.d.ts +2 -0
- package/dist/cjs/editor-pm/constants.d.ts.map +1 -0
- package/dist/cjs/editor-pm/constants.js +2 -0
- package/dist/cjs/editor-pm/decoration-plugin.d.ts +15 -0
- package/dist/cjs/editor-pm/decoration-plugin.d.ts.map +1 -0
- package/dist/cjs/editor-pm/decoration-plugin.js +38 -0
- package/dist/cjs/editor-pm/helpers.d.ts +197 -0
- package/dist/cjs/editor-pm/helpers.d.ts.map +1 -0
- package/dist/cjs/editor-pm/helpers.js +1170 -0
- package/dist/cjs/editor-pm/index.d.ts +10 -0
- package/dist/cjs/editor-pm/index.d.ts.map +1 -0
- package/dist/cjs/editor-pm/index.js +9 -0
- package/dist/cjs/editor-pm/mention-nodeview.d.ts +31 -0
- package/dist/cjs/editor-pm/mention-nodeview.d.ts.map +1 -0
- package/dist/cjs/editor-pm/mention-nodeview.js +105 -0
- package/dist/cjs/editor-pm/mentions-dropdown.d.ts +13 -0
- package/dist/cjs/editor-pm/mentions-dropdown.d.ts.map +1 -0
- package/dist/cjs/editor-pm/mentions-dropdown.js +19 -0
- package/dist/cjs/editor-pm/mentions-plugin.d.ts +18 -0
- package/dist/cjs/editor-pm/mentions-plugin.d.ts.map +1 -0
- package/dist/cjs/editor-pm/mentions-plugin.js +72 -0
- package/dist/cjs/editor-pm/placeholder-plugin.d.ts +4 -0
- package/dist/cjs/editor-pm/placeholder-plugin.d.ts.map +1 -0
- package/dist/cjs/editor-pm/placeholder-plugin.js +20 -0
- package/dist/cjs/editor-pm/prosemirror-editor.d.ts +493 -0
- package/dist/cjs/editor-pm/prosemirror-editor.d.ts.map +1 -0
- package/dist/cjs/editor-pm/prosemirror-editor.js +1145 -0
- package/dist/cjs/editor-pm/schema.d.ts +3 -0
- package/dist/cjs/editor-pm/schema.d.ts.map +1 -0
- package/dist/cjs/editor-pm/schema.js +183 -0
- package/dist/cjs/editor-pm/types.d.ts +8 -0
- package/dist/cjs/editor-pm/types.d.ts.map +1 -0
- package/dist/cjs/editor-pm/types.js +1 -0
- package/dist/cjs/editor-pm/unfocused-selection-plugin.d.ts +25 -0
- package/dist/cjs/editor-pm/unfocused-selection-plugin.d.ts.map +1 -0
- package/dist/cjs/editor-pm/unfocused-selection-plugin.js +61 -0
- package/dist/cjs/editor-pm/use-dropdown-change-pm.d.ts +24 -0
- package/dist/cjs/editor-pm/use-dropdown-change-pm.d.ts.map +1 -0
- package/dist/cjs/editor-pm/use-dropdown-change-pm.js +140 -0
- package/dist/cjs/editor-pm/use-editor-change-pm.d.ts +29 -0
- package/dist/cjs/editor-pm/use-editor-change-pm.d.ts.map +1 -0
- package/dist/cjs/editor-pm/use-editor-change-pm.js +154 -0
- package/dist/cjs/editor-pm/use-editor-decorator-pm.d.ts +17 -0
- package/dist/cjs/editor-pm/use-editor-decorator-pm.d.ts.map +1 -0
- package/dist/cjs/editor-pm/use-editor-decorator-pm.js +59 -0
- package/dist/cjs/editor-pm/use-editor-keydown-pm.d.ts +21 -0
- package/dist/cjs/editor-pm/use-editor-keydown-pm.d.ts.map +1 -0
- package/dist/cjs/editor-pm/use-editor-keydown-pm.js +81 -0
- package/dist/cjs/editor-pm/use-mention-keydown.d.ts +11 -0
- package/dist/cjs/editor-pm/use-mention-keydown.d.ts.map +1 -0
- package/dist/cjs/editor-pm/use-mention-keydown.js +59 -0
- package/dist/cjs/editor-pm/use-parameter-suggestions.d.ts +19 -0
- package/dist/cjs/editor-pm/use-parameter-suggestions.d.ts.map +1 -0
- package/dist/cjs/editor-pm/use-parameter-suggestions.js +79 -0
- package/dist/cjs/editor-pm/use-parameter-suggestions.test.d.ts +2 -0
- package/dist/cjs/editor-pm/use-parameter-suggestions.test.d.ts.map +1 -0
- package/dist/cjs/editor-pm/use-parameter-suggestions.test.js +122 -0
- package/dist/cjs/eye-dropper/index.d.ts +10 -0
- package/dist/cjs/eye-dropper/index.d.ts.map +1 -0
- package/dist/cjs/eye-dropper/index.js +24 -0
- package/dist/cjs/function-info/helpers.d.ts +10 -0
- package/dist/cjs/function-info/helpers.d.ts.map +1 -0
- package/dist/cjs/function-info/helpers.js +20 -0
- package/dist/cjs/function-info/index.d.ts +11 -0
- package/dist/cjs/function-info/index.d.ts.map +1 -0
- package/dist/cjs/function-info/index.js +71 -0
- package/dist/cjs/function-info/style.d.ts +7 -0
- package/dist/cjs/function-info/style.d.ts.map +1 -0
- package/dist/cjs/function-info/style.js +13 -0
- package/dist/cjs/hex-color-picker/index.d.ts +8 -0
- package/dist/cjs/hex-color-picker/index.d.ts.map +1 -0
- package/dist/cjs/hex-color-picker/index.js +47 -0
- package/dist/cjs/hooks/use-cycle-reference.d.ts +16 -0
- package/dist/cjs/hooks/use-cycle-reference.d.ts.map +1 -0
- package/dist/cjs/hooks/use-cycle-reference.js +72 -0
- package/dist/cjs/hooks/use-dropdown-categories.d.ts +9 -0
- package/dist/cjs/hooks/use-dropdown-categories.d.ts.map +1 -0
- package/dist/cjs/hooks/use-dropdown-categories.js +45 -0
- package/dist/cjs/hooks/use-dropdown.d.ts +38 -0
- package/dist/cjs/hooks/use-dropdown.d.ts.map +1 -0
- package/dist/cjs/hooks/use-dropdown.js +236 -0
- package/dist/cjs/hooks/use-isomorphic-layout-effect.ts.d.ts +6 -0
- package/dist/cjs/hooks/use-isomorphic-layout-effect.ts.d.ts.map +1 -0
- package/dist/cjs/hooks/use-isomorphic-layout-effect.ts.js +8 -0
- package/dist/cjs/hooks/use-modal.d.ts +28 -0
- package/dist/cjs/hooks/use-modal.d.ts.map +1 -0
- package/dist/cjs/hooks/use-modal.js +101 -0
- package/dist/cjs/hooks/use-visibility.d.ts +2 -0
- package/dist/cjs/hooks/use-visibility.d.ts.map +1 -0
- package/dist/cjs/hooks/use-visibility.js +12 -0
- package/dist/cjs/icon-button/index.d.ts +15 -0
- package/dist/cjs/icon-button/index.d.ts.map +1 -0
- package/dist/cjs/icon-button/index.js +34 -0
- package/dist/cjs/index.d.ts +34 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +33 -0
- package/dist/cjs/input/index.d.ts +9 -0
- package/dist/cjs/input/index.d.ts.map +1 -0
- package/dist/cjs/input/index.js +9 -0
- package/dist/cjs/popover/index.d.ts +13 -0
- package/dist/cjs/popover/index.d.ts.map +1 -0
- package/dist/cjs/popover/index.js +29 -0
- package/dist/cjs/progress/index.d.ts +10 -0
- package/dist/cjs/progress/index.d.ts.map +1 -0
- package/dist/cjs/progress/index.js +15 -0
- package/dist/cjs/select/index.d.ts +14 -0
- package/dist/cjs/select/index.d.ts.map +1 -0
- package/dist/cjs/select/index.js +46 -0
- package/dist/cjs/separator/index.d.ts +5 -0
- package/dist/cjs/separator/index.d.ts.map +1 -0
- package/dist/cjs/separator/index.js +10 -0
- package/dist/cjs/skeleton/index.d.ts +7 -0
- package/dist/cjs/skeleton/index.d.ts.map +1 -0
- package/dist/cjs/skeleton/index.js +11 -0
- package/dist/cjs/stack/index.d.ts +11 -0
- package/dist/cjs/stack/index.d.ts.map +1 -0
- package/dist/cjs/stack/index.js +22 -0
- package/dist/cjs/tabs/index.d.ts +8 -0
- package/dist/cjs/tabs/index.d.ts.map +1 -0
- package/dist/cjs/tabs/index.js +21 -0
- package/dist/cjs/tooltip/index.d.ts +12 -0
- package/dist/cjs/tooltip/index.d.ts.map +1 -0
- package/dist/cjs/tooltip/index.js +20 -0
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/cjs/utils.d.ts +3 -0
- package/dist/cjs/utils.d.ts.map +1 -0
- package/dist/cjs/utils.js +9 -0
- package/dist/cjs/vitest.config.d.ts +3 -0
- package/dist/cjs/vitest.config.d.ts.map +1 -0
- package/dist/cjs/vitest.config.js +21 -0
- package/dist/esm/arrow/index.d.ts +17 -0
- package/dist/esm/arrow/index.d.ts.map +1 -0
- package/dist/esm/arrow/index.js +45 -0
- package/dist/esm/button/index.d.ts +14 -0
- package/dist/esm/button/index.d.ts.map +1 -0
- package/dist/esm/button/index.js +44 -0
- package/dist/esm/calendar/index.d.ts +5 -0
- package/dist/esm/calendar/index.d.ts.map +1 -0
- package/dist/esm/calendar/index.js +34 -0
- package/dist/esm/card/index.d.ts +10 -0
- package/dist/esm/card/index.d.ts.map +1 -0
- package/dist/esm/card/index.js +24 -0
- package/dist/esm/cell-tooltip/index.d.ts +17 -0
- package/dist/esm/cell-tooltip/index.d.ts.map +1 -0
- package/dist/esm/cell-tooltip/index.js +31 -0
- package/dist/esm/circular-loader/index.d.ts +9 -0
- package/dist/esm/circular-loader/index.d.ts.map +1 -0
- package/dist/esm/circular-loader/index.js +7 -0
- package/dist/esm/color-picker/index.d.ts +12 -0
- package/dist/esm/color-picker/index.d.ts.map +1 -0
- package/dist/esm/color-picker/index.js +99 -0
- package/dist/esm/color-picker/style.d.ts +5 -0
- package/dist/esm/color-picker/style.d.ts.map +1 -0
- package/dist/esm/color-picker/style.js +7 -0
- package/dist/esm/command/index.d.ts +74 -0
- package/dist/esm/command/index.d.ts.map +1 -0
- package/dist/esm/command/index.js +18 -0
- package/dist/esm/conditional-wrapper/index.d.ts +9 -0
- package/dist/esm/conditional-wrapper/index.d.ts.map +1 -0
- package/dist/esm/conditional-wrapper/index.js +1 -0
- package/dist/esm/dialog/index.d.ts +17 -0
- package/dist/esm/dialog/index.d.ts.map +1 -0
- package/dist/esm/dialog/index.js +30 -0
- package/dist/esm/dropdown/index.d.ts +34 -0
- package/dist/esm/dropdown/index.d.ts.map +1 -0
- package/dist/esm/dropdown/index.js +42 -0
- package/dist/esm/editor/constants.d.ts +7 -0
- package/dist/esm/editor/constants.d.ts.map +1 -0
- package/dist/esm/editor/constants.js +51 -0
- package/dist/esm/editor/editor-error-boundary.d.ts +3 -0
- package/dist/esm/editor/editor-error-boundary.d.ts.map +1 -0
- package/dist/esm/editor/editor-error-boundary.js +9 -0
- package/dist/esm/editor/style.d.ts +12 -0
- package/dist/esm/editor/style.d.ts.map +1 -0
- package/dist/esm/editor/style.js +17 -0
- package/dist/esm/editor/suggestions-dropdown.d.ts +25 -0
- package/dist/esm/editor/suggestions-dropdown.d.ts.map +1 -0
- package/dist/esm/editor/suggestions-dropdown.js +115 -0
- package/dist/esm/editor-pm/constants.d.ts +2 -0
- package/dist/esm/editor-pm/constants.d.ts.map +1 -0
- package/dist/esm/editor-pm/constants.js +2 -0
- package/dist/esm/editor-pm/decoration-plugin.d.ts +15 -0
- package/dist/esm/editor-pm/decoration-plugin.d.ts.map +1 -0
- package/dist/esm/editor-pm/decoration-plugin.js +38 -0
- package/dist/esm/editor-pm/helpers.d.ts +197 -0
- package/dist/esm/editor-pm/helpers.d.ts.map +1 -0
- package/dist/esm/editor-pm/helpers.js +1113 -0
- package/dist/esm/editor-pm/index.d.ts +10 -0
- package/dist/esm/editor-pm/index.d.ts.map +1 -0
- package/dist/esm/editor-pm/index.js +9 -0
- package/dist/esm/editor-pm/mention-nodeview.d.ts +31 -0
- package/dist/esm/editor-pm/mention-nodeview.d.ts.map +1 -0
- package/dist/esm/editor-pm/mention-nodeview.js +88 -0
- package/dist/esm/editor-pm/mentions-dropdown.d.ts +13 -0
- package/dist/esm/editor-pm/mentions-dropdown.d.ts.map +1 -0
- package/dist/esm/editor-pm/mentions-dropdown.js +17 -0
- package/dist/esm/editor-pm/mentions-plugin.d.ts +18 -0
- package/dist/esm/editor-pm/mentions-plugin.d.ts.map +1 -0
- package/dist/esm/editor-pm/mentions-plugin.js +92 -0
- package/dist/esm/editor-pm/placeholder-plugin.d.ts +4 -0
- package/dist/esm/editor-pm/placeholder-plugin.d.ts.map +1 -0
- package/dist/esm/editor-pm/placeholder-plugin.js +20 -0
- package/dist/esm/editor-pm/prosemirror-editor.d.ts +493 -0
- package/dist/esm/editor-pm/prosemirror-editor.d.ts.map +1 -0
- package/dist/esm/editor-pm/prosemirror-editor.js +1135 -0
- package/dist/esm/editor-pm/schema.d.ts +3 -0
- package/dist/esm/editor-pm/schema.d.ts.map +1 -0
- package/dist/esm/editor-pm/schema.js +179 -0
- package/dist/esm/editor-pm/types.d.ts +8 -0
- package/dist/esm/editor-pm/types.d.ts.map +1 -0
- package/dist/esm/editor-pm/types.js +1 -0
- package/dist/esm/editor-pm/unfocused-selection-plugin.d.ts +25 -0
- package/dist/esm/editor-pm/unfocused-selection-plugin.d.ts.map +1 -0
- package/dist/esm/editor-pm/unfocused-selection-plugin.js +61 -0
- package/dist/esm/editor-pm/use-dropdown-change-pm.d.ts +24 -0
- package/dist/esm/editor-pm/use-dropdown-change-pm.d.ts.map +1 -0
- package/dist/esm/editor-pm/use-dropdown-change-pm.js +137 -0
- package/dist/esm/editor-pm/use-editor-change-pm.d.ts +29 -0
- package/dist/esm/editor-pm/use-editor-change-pm.d.ts.map +1 -0
- package/dist/esm/editor-pm/use-editor-change-pm.js +152 -0
- package/dist/esm/editor-pm/use-editor-decorator-pm.d.ts +17 -0
- package/dist/esm/editor-pm/use-editor-decorator-pm.d.ts.map +1 -0
- package/dist/esm/editor-pm/use-editor-decorator-pm.js +57 -0
- package/dist/esm/editor-pm/use-editor-keydown-pm.d.ts +21 -0
- package/dist/esm/editor-pm/use-editor-keydown-pm.d.ts.map +1 -0
- package/dist/esm/editor-pm/use-editor-keydown-pm.js +79 -0
- package/dist/esm/editor-pm/use-mention-keydown.d.ts +11 -0
- package/dist/esm/editor-pm/use-mention-keydown.d.ts.map +1 -0
- package/dist/esm/editor-pm/use-mention-keydown.js +57 -0
- package/dist/esm/editor-pm/use-parameter-suggestions.d.ts +19 -0
- package/dist/esm/editor-pm/use-parameter-suggestions.d.ts.map +1 -0
- package/dist/esm/editor-pm/use-parameter-suggestions.js +66 -0
- package/dist/esm/editor-pm/use-parameter-suggestions.test.d.ts +2 -0
- package/dist/esm/editor-pm/use-parameter-suggestions.test.d.ts.map +1 -0
- package/dist/esm/editor-pm/use-parameter-suggestions.test.js +66 -0
- package/dist/esm/eye-dropper/index.d.ts +10 -0
- package/dist/esm/eye-dropper/index.d.ts.map +1 -0
- package/dist/esm/eye-dropper/index.js +23 -0
- package/dist/esm/function-info/helpers.d.ts +10 -0
- package/dist/esm/function-info/helpers.d.ts.map +1 -0
- package/dist/esm/function-info/helpers.js +20 -0
- package/dist/esm/function-info/index.d.ts +11 -0
- package/dist/esm/function-info/index.d.ts.map +1 -0
- package/dist/esm/function-info/index.js +68 -0
- package/dist/esm/function-info/style.d.ts +7 -0
- package/dist/esm/function-info/style.d.ts.map +1 -0
- package/dist/esm/function-info/style.js +10 -0
- package/dist/esm/hex-color-picker/index.d.ts +8 -0
- package/dist/esm/hex-color-picker/index.d.ts.map +1 -0
- package/dist/esm/hex-color-picker/index.js +44 -0
- package/dist/esm/hooks/use-cycle-reference.d.ts +16 -0
- package/dist/esm/hooks/use-cycle-reference.d.ts.map +1 -0
- package/dist/esm/hooks/use-cycle-reference.js +70 -0
- package/dist/esm/hooks/use-dropdown-categories.d.ts +9 -0
- package/dist/esm/hooks/use-dropdown-categories.d.ts.map +1 -0
- package/dist/esm/hooks/use-dropdown-categories.js +38 -0
- package/dist/esm/hooks/use-dropdown.d.ts +38 -0
- package/dist/esm/hooks/use-dropdown.d.ts.map +1 -0
- package/dist/esm/hooks/use-dropdown.js +236 -0
- package/dist/esm/hooks/use-isomorphic-layout-effect.ts.d.ts +6 -0
- package/dist/esm/hooks/use-isomorphic-layout-effect.ts.d.ts.map +1 -0
- package/dist/esm/hooks/use-isomorphic-layout-effect.ts.js +8 -0
- package/dist/esm/hooks/use-modal.d.ts +28 -0
- package/dist/esm/hooks/use-modal.d.ts.map +1 -0
- package/dist/esm/hooks/use-modal.js +93 -0
- package/dist/esm/hooks/use-visibility.d.ts +2 -0
- package/dist/esm/hooks/use-visibility.d.ts.map +1 -0
- package/dist/esm/hooks/use-visibility.js +12 -0
- package/dist/esm/icon-button/index.d.ts +15 -0
- package/dist/esm/icon-button/index.d.ts.map +1 -0
- package/dist/esm/icon-button/index.js +32 -0
- package/dist/esm/index.d.ts +34 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +33 -0
- package/dist/esm/input/index.d.ts +9 -0
- package/dist/esm/input/index.d.ts.map +1 -0
- package/dist/esm/input/index.js +7 -0
- package/dist/esm/popover/index.d.ts +13 -0
- package/dist/esm/popover/index.d.ts.map +1 -0
- package/dist/esm/popover/index.js +22 -0
- package/dist/esm/progress/index.d.ts +10 -0
- package/dist/esm/progress/index.d.ts.map +1 -0
- package/dist/esm/progress/index.js +12 -0
- package/dist/esm/select/index.d.ts +14 -0
- package/dist/esm/select/index.d.ts.map +1 -0
- package/dist/esm/select/index.js +30 -0
- package/dist/esm/separator/index.d.ts +5 -0
- package/dist/esm/separator/index.d.ts.map +1 -0
- package/dist/esm/separator/index.js +6 -0
- package/dist/esm/skeleton/index.d.ts +7 -0
- package/dist/esm/skeleton/index.d.ts.map +1 -0
- package/dist/esm/skeleton/index.js +9 -0
- package/dist/esm/stack/index.d.ts +11 -0
- package/dist/esm/stack/index.d.ts.map +1 -0
- package/dist/esm/stack/index.js +20 -0
- package/dist/esm/tabs/index.d.ts +8 -0
- package/dist/esm/tabs/index.d.ts.map +1 -0
- package/dist/esm/tabs/index.js +11 -0
- package/dist/esm/tooltip/index.d.ts +12 -0
- package/dist/esm/tooltip/index.d.ts.map +1 -0
- package/dist/esm/tooltip/index.js +13 -0
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
- package/dist/esm/utils.d.ts +3 -0
- package/dist/esm/utils.d.ts.map +1 -0
- package/dist/esm/utils.js +5 -0
- package/dist/esm/vitest.config.d.ts +3 -0
- package/dist/esm/vitest.config.d.ts.map +1 -0
- package/dist/esm/vitest.config.js +21 -0
- package/package.json +78 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from "./prosemirror-editor";
|
|
2
|
+
export * from "./helpers";
|
|
3
|
+
export * from "./use-dropdown-change-pm";
|
|
4
|
+
export * from "./use-editor-keydown-pm";
|
|
5
|
+
export * from "./use-editor-decorator-pm";
|
|
6
|
+
export * from "./use-editor-change-pm";
|
|
7
|
+
export * from "./decoration-plugin";
|
|
8
|
+
export * from "./unfocused-selection-plugin";
|
|
9
|
+
export * from "./mention-nodeview";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../editor-pm/index.tsx"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from "./prosemirror-editor";
|
|
2
|
+
export * from "./helpers";
|
|
3
|
+
export * from "./use-dropdown-change-pm";
|
|
4
|
+
export * from "./use-editor-keydown-pm";
|
|
5
|
+
export * from "./use-editor-decorator-pm";
|
|
6
|
+
export * from "./use-editor-change-pm";
|
|
7
|
+
export * from "./decoration-plugin";
|
|
8
|
+
export * from "./unfocused-selection-plugin";
|
|
9
|
+
export * from "./mention-nodeview";
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Node as PMNode } from "prosemirror-model";
|
|
3
|
+
import { NodeView, EditorView } from "prosemirror-view";
|
|
4
|
+
import { Mention } from "@rowsncolumns/spreadsheet";
|
|
5
|
+
export type MentionTagComponentProps<M extends Mention = Mention> = {
|
|
6
|
+
mention: M;
|
|
7
|
+
selected?: boolean;
|
|
8
|
+
onClick?: () => void;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* ProseMirror NodeView for rendering mentions with custom React components
|
|
12
|
+
*/
|
|
13
|
+
export declare class MentionNodeView implements NodeView {
|
|
14
|
+
dom: HTMLElement;
|
|
15
|
+
private root;
|
|
16
|
+
private destroyed;
|
|
17
|
+
private node;
|
|
18
|
+
private view;
|
|
19
|
+
private getPos;
|
|
20
|
+
private MentionTagComponent;
|
|
21
|
+
constructor(node: PMNode, view: EditorView, getPos: () => number | undefined, MentionTagComponent?: React.ComponentType<MentionTagComponentProps>);
|
|
22
|
+
update(node: PMNode): boolean;
|
|
23
|
+
private renderComponent;
|
|
24
|
+
private ensureRoot;
|
|
25
|
+
private isNodeSelected;
|
|
26
|
+
private handleClick;
|
|
27
|
+
destroy(): void;
|
|
28
|
+
selectNode(): void;
|
|
29
|
+
deselectNode(): void;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=mention-nodeview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mention-nodeview.d.ts","sourceRoot":"","sources":["../../../editor-pm/mention-nodeview.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGxD,OAAO,EACL,OAAO,EAER,MAAM,2BAA2B,CAAC;AAGnC,MAAM,MAAM,wBAAwB,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,IAAI;IAClE,OAAO,EAAE,CAAC,CAAC;IACX,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAcF;;GAEG;AACH,qBAAa,eAAgB,YAAW,QAAQ;IAC9C,GAAG,EAAE,WAAW,CAAC;IACjB,OAAO,CAAC,IAAI,CAAgD;IAC5D,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,mBAAmB,CAAgD;gBAGzE,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS,EAChC,mBAAmB,GAAE,KAAK,CAAC,aAAa,CAAC,wBAAwB,CAA8B;IAmBjG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQ7B,OAAO,CAAC,eAAe;YAoBT,UAAU;IAQxB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,WAAW;IAenB,OAAO;IAUP,UAAU;IAIV,YAAY;CAGb"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { __awaiter, __generator } from "tslib";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { TextSelection } from "prosemirror-state";
|
|
4
|
+
import { scheduleNormalPriorityCallback, } from "@rowsncolumns/spreadsheet";
|
|
5
|
+
import { cn } from "../utils";
|
|
6
|
+
/**
|
|
7
|
+
* Default mention component - renders a simple styled span
|
|
8
|
+
*/
|
|
9
|
+
var DefaultMentionTagComponent = function (_a) {
|
|
10
|
+
var mention = _a.mention, selected = _a.selected;
|
|
11
|
+
return (React.createElement("span", { "data-mention": true, className: cn("bg-rnc-input rounded px-[2px]") }, mention.label));
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* ProseMirror NodeView for rendering mentions with custom React components
|
|
15
|
+
*/
|
|
16
|
+
var MentionNodeView = /** @class */ (function () {
|
|
17
|
+
function MentionNodeView(node, view, getPos, MentionTagComponent) {
|
|
18
|
+
if (MentionTagComponent === void 0) { MentionTagComponent = DefaultMentionTagComponent; }
|
|
19
|
+
var _this = this;
|
|
20
|
+
this.root = null;
|
|
21
|
+
this.destroyed = false;
|
|
22
|
+
this.node = node;
|
|
23
|
+
this.view = view;
|
|
24
|
+
this.getPos = getPos;
|
|
25
|
+
this.MentionTagComponent = MentionTagComponent;
|
|
26
|
+
// Create DOM element
|
|
27
|
+
this.dom = document.createElement("span");
|
|
28
|
+
this.dom.className = "mention-wrapper";
|
|
29
|
+
// Create React root lazily in browser to keep server import graph clean.
|
|
30
|
+
this.ensureRoot().then(function () {
|
|
31
|
+
if (!_this.destroyed) {
|
|
32
|
+
_this.update(node);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
MentionNodeView.prototype.update = function (node) {
|
|
37
|
+
if (node.type.name !== "mention")
|
|
38
|
+
return false;
|
|
39
|
+
this.node = node;
|
|
40
|
+
this.renderComponent();
|
|
41
|
+
return true;
|
|
42
|
+
};
|
|
43
|
+
MentionNodeView.prototype.renderComponent = function () {
|
|
44
|
+
var _this = this;
|
|
45
|
+
if (!this.root)
|
|
46
|
+
return;
|
|
47
|
+
var pos = this.getPos();
|
|
48
|
+
var isSelected = pos !== undefined && this.isNodeSelected(pos);
|
|
49
|
+
var mentionData = {
|
|
50
|
+
label: this.node.attrs.label,
|
|
51
|
+
value: this.node.attrs.value,
|
|
52
|
+
};
|
|
53
|
+
this.root.render(React.createElement(this.MentionTagComponent, { mention: mentionData, selected: isSelected, onClick: function () { return _this.handleClick(); } }));
|
|
54
|
+
};
|
|
55
|
+
MentionNodeView.prototype.ensureRoot = function () {
|
|
56
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
57
|
+
var createRoot;
|
|
58
|
+
return __generator(this, function (_a) {
|
|
59
|
+
switch (_a.label) {
|
|
60
|
+
case 0:
|
|
61
|
+
if (this.root || this.destroyed || typeof window === "undefined")
|
|
62
|
+
return [2 /*return*/];
|
|
63
|
+
return [4 /*yield*/, import("react-dom/client")];
|
|
64
|
+
case 1:
|
|
65
|
+
createRoot = (_a.sent()).createRoot;
|
|
66
|
+
if (this.destroyed)
|
|
67
|
+
return [2 /*return*/];
|
|
68
|
+
this.root = createRoot(this.dom);
|
|
69
|
+
return [2 /*return*/];
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
MentionNodeView.prototype.isNodeSelected = function (pos) {
|
|
75
|
+
var selection = this.view.state.selection;
|
|
76
|
+
return selection.from <= pos && selection.to >= pos + this.node.nodeSize;
|
|
77
|
+
};
|
|
78
|
+
MentionNodeView.prototype.handleClick = function () {
|
|
79
|
+
var pos = this.getPos();
|
|
80
|
+
if (pos !== undefined) {
|
|
81
|
+
// Focus the editor and set cursor after the mention
|
|
82
|
+
this.view.focus();
|
|
83
|
+
this.view.dispatch(this.view.state.tr.setSelection(TextSelection.near(this.view.state.doc.resolve(pos + this.node.nodeSize))));
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
MentionNodeView.prototype.destroy = function () {
|
|
87
|
+
var _this = this;
|
|
88
|
+
this.destroyed = true;
|
|
89
|
+
// Use setTimeout to avoid React's synchronous unmount race condition
|
|
90
|
+
scheduleNormalPriorityCallback(function () {
|
|
91
|
+
var _a;
|
|
92
|
+
(_a = _this.root) === null || _a === void 0 ? void 0 : _a.unmount();
|
|
93
|
+
_this.root = null;
|
|
94
|
+
});
|
|
95
|
+
};
|
|
96
|
+
// Make the node selectable
|
|
97
|
+
MentionNodeView.prototype.selectNode = function () {
|
|
98
|
+
this.renderComponent();
|
|
99
|
+
};
|
|
100
|
+
MentionNodeView.prototype.deselectNode = function () {
|
|
101
|
+
this.renderComponent();
|
|
102
|
+
};
|
|
103
|
+
return MentionNodeView;
|
|
104
|
+
}());
|
|
105
|
+
export { MentionNodeView };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Mention } from "@rowsncolumns/common-types";
|
|
3
|
+
export type MentionsDropdownProps<M extends Mention = Mention> = {
|
|
4
|
+
mentions?: M[];
|
|
5
|
+
onSelect?: (mention: M) => void;
|
|
6
|
+
highlightedIndex?: number;
|
|
7
|
+
isFetchingMentions?: boolean;
|
|
8
|
+
MentionDropdownItemComponent?: React.ComponentType<{
|
|
9
|
+
mention: M;
|
|
10
|
+
}>;
|
|
11
|
+
};
|
|
12
|
+
export declare const MentionsDropdown: <M extends Mention>({ mentions, onSelect, highlightedIndex, isFetchingMentions, MentionDropdownItemComponent, }: MentionsDropdownProps<M>) => React.JSX.Element;
|
|
13
|
+
//# sourceMappingURL=mentions-dropdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mentions-dropdown.d.ts","sourceRoot":"","sources":["../../../editor-pm/mentions-dropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAGpC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,IAAI;IAC/D,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,4BAA4B,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,OAAO,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC;CACpE,CAAC;AAMF,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,OAAO,EAAE,6FAMjD,qBAAqB,CAAC,CAAC,CAAC,sBA8B1B,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { StyledDropdownItem, StyledDropdownWrapper } from "../editor/style";
|
|
3
|
+
import { LoadingIcon } from "@rowsncolumns/icons";
|
|
4
|
+
var DefaultMentionDropdownItem = function (_a) {
|
|
5
|
+
var mention = _a.mention;
|
|
6
|
+
return mention.label;
|
|
7
|
+
};
|
|
8
|
+
export var MentionsDropdown = function (_a) {
|
|
9
|
+
var mentions = _a.mentions, onSelect = _a.onSelect, _b = _a.highlightedIndex, highlightedIndex = _b === void 0 ? 0 : _b, isFetchingMentions = _a.isFetchingMentions, MentionDropdownItemComponent = _a.MentionDropdownItemComponent;
|
|
10
|
+
var ItemComponent = MentionDropdownItemComponent || DefaultMentionDropdownItem;
|
|
11
|
+
return (React.createElement(StyledDropdownWrapper, { role: "listbox" },
|
|
12
|
+
isFetchingMentions ? (React.createElement(StyledDropdownItem, { role: "option", className: "flex flex-row items-center gap-2 select-none" },
|
|
13
|
+
React.createElement(LoadingIcon, { className: "animate-spin" }),
|
|
14
|
+
React.createElement("span", null, "Loading..."))) : null, mentions === null || mentions === void 0 ? void 0 :
|
|
15
|
+
mentions.map(function (mention, index) {
|
|
16
|
+
return (React.createElement(StyledDropdownItem, { role: "option", key: mention.value, variant: "unstyled", active: highlightedIndex === index, onClick: function () { return onSelect === null || onSelect === void 0 ? void 0 : onSelect(mention); }, onMouseDown: function (event) { return event.preventDefault(); } },
|
|
17
|
+
React.createElement(ItemComponent, { mention: mention })));
|
|
18
|
+
})));
|
|
19
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Plugin, PluginKey } from "prosemirror-state";
|
|
2
|
+
import { MentionRange, MentionState } from "./prosemirror-editor";
|
|
3
|
+
import { EditorView } from "prosemirror-view";
|
|
4
|
+
import { Mention } from "@rowsncolumns/common-types";
|
|
5
|
+
interface MentionPosition {
|
|
6
|
+
left: number;
|
|
7
|
+
top: number;
|
|
8
|
+
}
|
|
9
|
+
declare const mentionsPluginKey: PluginKey<MentionState>;
|
|
10
|
+
declare const insertMention: (view: EditorView, mention: Mention, range: MentionRange) => void;
|
|
11
|
+
export type CreateMentionPluginOptions = {
|
|
12
|
+
onChangeState: (state: MentionState) => void;
|
|
13
|
+
getFormulaMode: () => boolean;
|
|
14
|
+
};
|
|
15
|
+
declare const createMentionsPlugin: ({ onChangeState, getFormulaMode, }: CreateMentionPluginOptions) => Plugin<MentionState>;
|
|
16
|
+
export { createMentionsPlugin, mentionsPluginKey, insertMention };
|
|
17
|
+
export type { MentionState, MentionRange, MentionPosition };
|
|
18
|
+
//# sourceMappingURL=mentions-plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mentions-plugin.d.ts","sourceRoot":"","sources":["../../../editor-pm/mentions-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,EAAE,SAAS,EAAe,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AACD,QAAA,MAAM,iBAAiB,yBAA0C,CAAC;AAGlE,QAAA,MAAM,aAAa,GACjB,MAAM,UAAU,EAChB,SAAS,OAAO,EAChB,OAAO,YAAY,KAClB,IAOF,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,aAAa,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC7C,cAAc,EAAE,MAAM,OAAO,CAAC;CAC/B,CAAC;AAGF,QAAA,MAAM,oBAAoB,GAAI,oCAG3B,0BAA0B,KAAG,MAAM,CAAC,YAAY,CAiGlD,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,aAAa,EAAE,CAAC;AAClE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { __assign } from "tslib";
|
|
2
|
+
import { Plugin, PluginKey } from "prosemirror-state";
|
|
3
|
+
var mentionsPluginKey = new PluginKey("mentions");
|
|
4
|
+
// Function to insert mention
|
|
5
|
+
var insertMention = function (view, mention, range) {
|
|
6
|
+
var mentionText = "@[".concat(mention.label, "](").concat(mention.value, ") ");
|
|
7
|
+
var tr = view.state.tr
|
|
8
|
+
.delete(range.from, range.to)
|
|
9
|
+
.insertText(mentionText);
|
|
10
|
+
view.dispatch(tr);
|
|
11
|
+
};
|
|
12
|
+
// Create mentions plugin
|
|
13
|
+
var createMentionsPlugin = function (_a) {
|
|
14
|
+
var onChangeState = _a.onChangeState, getFormulaMode = _a.getFormulaMode;
|
|
15
|
+
return new Plugin({
|
|
16
|
+
key: mentionsPluginKey,
|
|
17
|
+
state: {
|
|
18
|
+
init: function () {
|
|
19
|
+
return {
|
|
20
|
+
active: false,
|
|
21
|
+
query: "",
|
|
22
|
+
range: null,
|
|
23
|
+
selectedIndex: 0,
|
|
24
|
+
};
|
|
25
|
+
},
|
|
26
|
+
apply: function (tr, pluginState, oldState, newState) {
|
|
27
|
+
var selection = newState.selection;
|
|
28
|
+
// Disable mentions in formula mode
|
|
29
|
+
if (getFormulaMode()) {
|
|
30
|
+
if (pluginState.active) {
|
|
31
|
+
var newPluginState = __assign(__assign({}, pluginState), { active: false, query: "", range: null });
|
|
32
|
+
onChangeState(newPluginState);
|
|
33
|
+
return newPluginState;
|
|
34
|
+
}
|
|
35
|
+
return pluginState;
|
|
36
|
+
}
|
|
37
|
+
if (!selection.empty) {
|
|
38
|
+
if (pluginState.active) {
|
|
39
|
+
var newPluginState = __assign(__assign({}, pluginState), { active: false, query: "", range: null });
|
|
40
|
+
onChangeState(newPluginState);
|
|
41
|
+
return newPluginState;
|
|
42
|
+
}
|
|
43
|
+
return pluginState;
|
|
44
|
+
}
|
|
45
|
+
var $pos = selection.$from;
|
|
46
|
+
// Fix: textBefore needs start and end parameters
|
|
47
|
+
var textBefore = $pos.parent.textBetween(0, $pos.parentOffset, undefined, undefined);
|
|
48
|
+
// Check for @ symbol
|
|
49
|
+
var match = textBefore.match(/@([^@\s]*)$/);
|
|
50
|
+
if (match) {
|
|
51
|
+
var query = match[1];
|
|
52
|
+
var from = $pos.pos - match[0].length;
|
|
53
|
+
var to = $pos.pos;
|
|
54
|
+
if (!pluginState.active || pluginState.query !== query) {
|
|
55
|
+
var newPluginState = __assign(__assign({}, pluginState), { query: query, range: {
|
|
56
|
+
from: from,
|
|
57
|
+
to: to,
|
|
58
|
+
}, active: true, selectedIndex: 0 });
|
|
59
|
+
onChangeState(newPluginState);
|
|
60
|
+
}
|
|
61
|
+
return pluginState;
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
var newPluginState = __assign(__assign({}, pluginState), { active: false, query: "", range: null, selectedIndex: 0 });
|
|
65
|
+
onChangeState(newPluginState);
|
|
66
|
+
return newPluginState;
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
};
|
|
72
|
+
export { createMentionsPlugin, mentionsPluginKey, insertMention };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"placeholder-plugin.d.ts","sourceRoot":"","sources":["../../../editor-pm/placeholder-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,oBAAoB,gBAA+B,CAAC;AAEjE,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,eAmB1D"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Plugin, PluginKey } from "prosemirror-state";
|
|
2
|
+
export var placeholderPluginKey = new PluginKey("placeholder");
|
|
3
|
+
export function createPlaceholderPlugin(placeholder) {
|
|
4
|
+
return new Plugin({
|
|
5
|
+
key: placeholderPluginKey,
|
|
6
|
+
props: {
|
|
7
|
+
attributes: function (state) {
|
|
8
|
+
var doc = state.doc;
|
|
9
|
+
var isEmpty = doc.content.size === 0 ||
|
|
10
|
+
(doc.content.size === 2 && doc.textContent === "");
|
|
11
|
+
var attrs = {};
|
|
12
|
+
if (isEmpty) {
|
|
13
|
+
attrs.class = "pm-placeholder";
|
|
14
|
+
attrs["data-placeholder"] = placeholder;
|
|
15
|
+
}
|
|
16
|
+
return attrs;
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
}
|