pixel-react 1.22.5 → 1.22.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/lib/components/AutoTruncateText/AutoTruncateText.js +38 -30
  2. package/lib/components/AutoTruncateText/AutoTruncateText.js.map +1 -1
  3. package/lib/components/AutoTruncateText/resizeObserverService.d.ts +10 -2
  4. package/lib/components/AutoTruncateText/resizeObserverService.js +19 -12
  5. package/lib/components/AutoTruncateText/resizeObserverService.js.map +1 -1
  6. package/lib/components/HighlightText/HighlightText.d.ts +2 -2
  7. package/lib/components/HighlightText/HighlightText.js +144 -13
  8. package/lib/components/HighlightText/HighlightText.js.map +1 -1
  9. package/lib/components/HighlightText/index.d.ts +1 -0
  10. package/lib/components/HighlightText/types.d.ts +46 -0
  11. package/lib/components/Icon/iconList.js +2 -4
  12. package/lib/components/Icon/iconList.js.map +1 -1
  13. package/lib/components/InsightCard/index.d.ts +1 -1
  14. package/lib/components/InsightCard/index.js +1 -1
  15. package/lib/components/InsightCard/index.js.map +1 -1
  16. package/lib/components/MenuOption/MenuOption.js +22 -31
  17. package/lib/components/MenuOption/MenuOption.js.map +1 -1
  18. package/lib/components/MetricCard/MetricCard.d.ts +1 -0
  19. package/lib/components/MetricCard/MetricCard.js +1 -0
  20. package/lib/components/MetricCard/MetricCard.js.map +1 -1
  21. package/lib/components/MetricCard/index.d.ts +1 -1
  22. package/lib/components/MetricCard/index.js +1 -1
  23. package/lib/components/MetricCard/index.js.map +1 -1
  24. package/lib/components/StepsLandingTable/Components/StepInnerTable.d.ts +1 -1
  25. package/lib/components/StepsLandingTable/Components/StepInnerTable.js +8 -5
  26. package/lib/components/StepsLandingTable/Components/StepInnerTable.js.map +1 -1
  27. package/lib/components/StepsLandingTable/Components/StepTableMainRow.js +72 -5
  28. package/lib/components/StepsLandingTable/Components/StepTableMainRow.js.map +1 -1
  29. package/lib/components/StepsLandingTable/Components/Types.d.ts +14 -0
  30. package/lib/components/StepsLandingTable/StepLandingTable.js +13 -10
  31. package/lib/components/StepsLandingTable/StepLandingTable.js.map +1 -1
  32. package/lib/components/StepsLandingTable/constant.d.ts +222 -44
  33. package/lib/components/StepsLandingTable/constant.js +171 -661
  34. package/lib/components/StepsLandingTable/constant.js.map +1 -1
  35. package/lib/components/StepsLandingTable/types.d.ts +7 -0
  36. package/lib/components/Tooltip/Tooltip.js +20 -26
  37. package/lib/components/Tooltip/Tooltip.js.map +1 -1
  38. package/lib/components/TooltipService/TooltipService.js +219 -109
  39. package/lib/components/TooltipService/TooltipService.js.map +1 -1
  40. package/lib/hooks/useFocusTrap.d.ts +29 -0
  41. package/lib/hooks/useFocusTrap.js +97 -0
  42. package/lib/hooks/useFocusTrap.js.map +1 -0
  43. package/lib/hooks/useInteractiveAncestor.d.ts +7 -0
  44. package/lib/hooks/useInteractiveAncestor.js +18 -0
  45. package/lib/hooks/useInteractiveAncestor.js.map +1 -0
  46. package/lib/index.d.ts +57 -175
  47. package/lib/index.js +9 -27
  48. package/lib/index.js.map +1 -1
  49. package/lib/styles.css +1 -1
  50. package/lib/tsconfig.tsbuildinfo +1 -1
  51. package/lib/utils/a11y/a11y.d.ts +28 -0
  52. package/lib/utils/a11y/a11y.js +62 -0
  53. package/lib/utils/a11y/a11y.js.map +1 -0
  54. package/lib/utils/truncateText/truncateText.js +29 -15
  55. package/lib/utils/truncateText/truncateText.js.map +1 -1
  56. package/package.json +119 -129
  57. package/lib/components/RichTextEditor/DynamicValue.d.ts +0 -8
  58. package/lib/components/RichTextEditor/DynamicValue.js +0 -73
  59. package/lib/components/RichTextEditor/DynamicValue.js.map +0 -1
  60. package/lib/components/RichTextEditor/DynamicValueList.d.ts +0 -11
  61. package/lib/components/RichTextEditor/DynamicValueList.js +0 -49
  62. package/lib/components/RichTextEditor/DynamicValueList.js.map +0 -1
  63. package/lib/components/RichTextEditor/ImagePopover.d.ts +0 -10
  64. package/lib/components/RichTextEditor/ImagePopover.js +0 -99
  65. package/lib/components/RichTextEditor/ImagePopover.js.map +0 -1
  66. package/lib/components/RichTextEditor/LinkPopover.d.ts +0 -8
  67. package/lib/components/RichTextEditor/LinkPopover.js +0 -98
  68. package/lib/components/RichTextEditor/LinkPopover.js.map +0 -1
  69. package/lib/components/RichTextEditor/RichTextEditor.d.ts +0 -5
  70. package/lib/components/RichTextEditor/RichTextEditor.js +0 -216
  71. package/lib/components/RichTextEditor/RichTextEditor.js.map +0 -1
  72. package/lib/components/RichTextEditor/Toolbar.d.ts +0 -12
  73. package/lib/components/RichTextEditor/Toolbar.js +0 -186
  74. package/lib/components/RichTextEditor/Toolbar.js.map +0 -1
  75. package/lib/components/RichTextEditor/constants.d.ts +0 -4
  76. package/lib/components/RichTextEditor/constants.js +0 -33
  77. package/lib/components/RichTextEditor/constants.js.map +0 -1
  78. package/lib/components/RichTextEditor/fileAttachment.d.ts +0 -23
  79. package/lib/components/RichTextEditor/fileAttachment.js +0 -143
  80. package/lib/components/RichTextEditor/fileAttachment.js.map +0 -1
  81. package/lib/components/RichTextEditor/imageUpload.d.ts +0 -6
  82. package/lib/components/RichTextEditor/imageUpload.js +0 -29
  83. package/lib/components/RichTextEditor/imageUpload.js.map +0 -1
  84. package/lib/components/RichTextEditor/index.d.ts +0 -1
  85. package/lib/components/RichTextEditor/index.js +0 -2
  86. package/lib/components/RichTextEditor/index.js.map +0 -1
  87. package/lib/components/RichTextEditor/pasteFormatting.d.ts +0 -18
  88. package/lib/components/RichTextEditor/pasteFormatting.js +0 -167
  89. package/lib/components/RichTextEditor/pasteFormatting.js.map +0 -1
  90. package/lib/components/RichTextEditor/types.d.ts +0 -167
  91. package/lib/components/RichTextEditor/types.js +0 -2
  92. package/lib/components/RichTextEditor/types.js.map +0 -1
package/package.json CHANGED
@@ -1,129 +1,119 @@
1
- {
2
- "name": "pixel-react",
3
- "description": "Great for pixel-perfect, design-focused components in React",
4
- "version": "1.22.5",
5
- "main": "lib/index.js",
6
- "module": "lib/index.js",
7
- "types": "lib/index.d.ts",
8
- "sideEffects": [
9
- "lib/styles.css",
10
- "**/*.css",
11
- "**/*.scss"
12
- ],
13
- "author": {
14
- "name": "Padmakant Baloji"
15
- },
16
- "license": "MIT",
17
- "devDependencies": {
18
- "@babel/core": "^7.0.0",
19
- "@babel/preset-react": "^7.26.3",
20
- "@chromatic-com/storybook": "^3.2.2",
21
- "@rollup/plugin-babel": "^6.0.4",
22
- "@rollup/plugin-commonjs": "^28.0.2",
23
- "@rollup/plugin-node-resolve": "^16.0.0",
24
- "@rollup/plugin-terser": "^0.4.4",
25
- "@rollup/plugin-typescript": "^12.1.2",
26
- "@rollup/plugin-url": "^8.0.2",
27
- "@storybook/addon-docs": "^8.4.5",
28
- "@storybook/addon-essentials": "^8.4.5",
29
- "@storybook/addon-interactions": "^8.4.5",
30
- "@storybook/addon-links": "^8.4.5",
31
- "@storybook/addon-onboarding": "^8.4.5",
32
- "@storybook/blocks": "^8.4.5",
33
- "@storybook/react": "^8.4.5",
34
- "@storybook/react-vite": "^8.4.5",
35
- "@storybook/test": "^8.4.5",
36
- "@types/draft-js": "^0.11.19",
37
- "@types/js-beautify": "^1.14.3",
38
- "@types/node-forge": "^1.3.14",
39
- "@types/react": "^18.3.28",
40
- "@types/react-dom": "^18.3.1",
41
- "@types/react-google-recaptcha": "^2.1.9",
42
- "chromatic": "^11.16.5",
43
- "cross-env": "^7.0.3",
44
- "monaco-editor": "^0.55.1",
45
- "react": ">=18.2.0 <19.0.0",
46
- "react-dom": ">=18.2.0 <19.0.0",
47
- "rimraf": "^6.0.1",
48
- "rollup": "^4.24.4",
49
- "rollup-plugin-dts": "^6.1.0",
50
- "rollup-plugin-peer-deps-external": "^2.2.4",
51
- "rollup-plugin-postcss": "^4.0.2",
52
- "rollup-plugin-visualizer": "^5.14.0",
53
- "sass": "^1.80.6",
54
- "storybook": "^8.4.5",
55
- "storybook-addon-theme-provider": "^0.2.6",
56
- "typescript": "^5.7.2",
57
- "vite": "^5.4.10"
58
- },
59
- "peerDependencies": {
60
- "react": "^18.2.0",
61
- "react-dom": "^18.2.0"
62
- },
63
- "scripts": {
64
- "audit": "pnpm audit",
65
- "storybook": "storybook dev -p 6006",
66
- "build-storybook": "storybook build",
67
- "build": "rimraf lib && tsc -b && cross-env NODE_ENV=production rollup -c",
68
- "dev": "rollup -c -w",
69
- "analyze": "tsc -b && cross-env ANALYZE=true rollup -c",
70
- "sync": "git pull origin main && tsc -b && rollup -c",
71
- "chromatic": "chromatic --exit-zero-on-changes",
72
- "clean": "rimraf lib node_modules pnpm-lock.yaml package-lock.json yarn.lock"
73
- },
74
- "dependencies": {
75
- "@babel/plugin-transform-react-jsx": "^7.24.7",
76
- "@dnd-kit/core": "^6.1.0",
77
- "@dnd-kit/modifiers": "^9.0.0",
78
- "@dnd-kit/sortable": "^8.0.0",
79
- "@dnd-kit/utilities": "^3.2.2",
80
- "@monaco-editor/react": "^4.6.0",
81
- "@tiptap/core": "^3.32.0",
82
- "@tiptap/extension-image": "^3.32.0",
83
- "@tiptap/extension-mention": "^3.32.0",
84
- "@tiptap/extension-table": "^3.32.0",
85
- "@tiptap/extension-text-style": "^3.32.0",
86
- "@tiptap/extensions": "^3.32.0",
87
- "@tiptap/pm": "^3.32.0",
88
- "@tiptap/react": "^3.32.0",
89
- "@tiptap/starter-kit": "^3.32.0",
90
- "@tiptap/suggestion": "^3.32.0",
91
- "@types/react-draft-wysiwyg": "^1.13.8",
92
- "@types/react-window": "^1.8.8",
93
- "@vitejs/plugin-react": "^4.3.0",
94
- "classnames": "^2.5.1",
95
- "date-fns": "^3.6.0",
96
- "date-fns-tz": "^3.2.0",
97
- "draft-js": "^0.11.7",
98
- "janus-gateway": "^1.3.1",
99
- "js-beautify": "^1.15.1",
100
- "jsencrypt": "^3.3.2",
101
- "node-forge": "^1.3.1",
102
- "react-archer": "^4.4.0",
103
- "react-day-picker": "^9.2.1",
104
- "react-draft-wysiwyg": "^1.15.0",
105
- "react-google-recaptcha": "^3.1.0",
106
- "react-hook-form": "7.64.0",
107
- "react-phone-input-2": "^2.15.1",
108
- "react-phone-number-input": "^3.4.12",
109
- "react-virtuoso": "^4.13.0",
110
- "react-window": "^1.8.10",
111
- "scss": "^0.2.4",
112
- "tippy.js": "^6.3.7",
113
- "use-context-selector": "^2.0.0",
114
- "vite-plugin-svgr": "^4.3.0",
115
- "webrtc-adapter": "^9.0.1"
116
- },
117
- "files": [
118
- "lib",
119
- "README.md",
120
- "LICENSE"
121
- ],
122
- "pnpm": {
123
- "overrides": {
124
- "minimatch": ">=10.2.1",
125
- "esbuild": "0.25.0",
126
- "glob": "^13.0.5"
127
- }
128
- }
129
- }
1
+ {
2
+ "name": "pixel-react",
3
+ "description": "Great for pixel-perfect, design-focused components in React",
4
+ "version": "1.22.7",
5
+ "main": "lib/index.js",
6
+ "module": "lib/index.js",
7
+ "types": "lib/index.d.ts",
8
+ "sideEffects": [
9
+ "lib/styles.css",
10
+ "**/*.css",
11
+ "**/*.scss"
12
+ ],
13
+ "author": {
14
+ "name": "Padmakant Baloji"
15
+ },
16
+ "license": "MIT",
17
+ "devDependencies": {
18
+ "@babel/core": "^7.0.0",
19
+ "@babel/preset-react": "^7.26.3",
20
+ "@chromatic-com/storybook": "^3.2.2",
21
+ "@rollup/plugin-babel": "^6.0.4",
22
+ "@rollup/plugin-commonjs": "^28.0.2",
23
+ "@rollup/plugin-node-resolve": "^16.0.0",
24
+ "@rollup/plugin-terser": "^0.4.4",
25
+ "@rollup/plugin-typescript": "^12.1.2",
26
+ "@rollup/plugin-url": "^8.0.2",
27
+ "@storybook/addon-docs": "^8.4.5",
28
+ "@storybook/addon-essentials": "^8.4.5",
29
+ "@storybook/addon-interactions": "^8.4.5",
30
+ "@storybook/addon-links": "^8.4.5",
31
+ "@storybook/addon-onboarding": "^8.4.5",
32
+ "@storybook/blocks": "^8.4.5",
33
+ "@storybook/react": "^8.4.5",
34
+ "@storybook/react-vite": "^8.4.5",
35
+ "@storybook/test": "^8.4.5",
36
+ "@types/draft-js": "^0.11.19",
37
+ "@types/js-beautify": "^1.14.3",
38
+ "@types/node-forge": "^1.3.14",
39
+ "@types/react": "^18.3.28",
40
+ "@types/react-dom": "^18.3.1",
41
+ "@types/react-google-recaptcha": "^2.1.9",
42
+ "chromatic": "^11.16.5",
43
+ "cross-env": "^7.0.3",
44
+ "monaco-editor": "^0.55.1",
45
+ "react": ">=18.2.0 <19.0.0",
46
+ "react-dom": ">=18.2.0 <19.0.0",
47
+ "rimraf": "^6.0.1",
48
+ "rollup": "^4.24.4",
49
+ "rollup-plugin-dts": "^6.1.0",
50
+ "rollup-plugin-peer-deps-external": "^2.2.4",
51
+ "rollup-plugin-postcss": "^4.0.2",
52
+ "rollup-plugin-visualizer": "^5.14.0",
53
+ "sass": "^1.80.6",
54
+ "storybook": "^8.4.5",
55
+ "storybook-addon-theme-provider": "^0.2.6",
56
+ "typescript": "^5.7.2",
57
+ "vite": "^5.4.10"
58
+ },
59
+ "peerDependencies": {
60
+ "react": "^18.2.0",
61
+ "react-dom": "^18.2.0"
62
+ },
63
+ "scripts": {
64
+ "audit": "pnpm audit",
65
+ "storybook": "storybook dev -p 6006",
66
+ "build-storybook": "storybook build",
67
+ "build": "rimraf lib && tsc -b && cross-env NODE_ENV=production rollup -c",
68
+ "dev": "rollup -c -w",
69
+ "analyze": "tsc -b && cross-env ANALYZE=true rollup -c",
70
+ "sync": "git pull origin main && tsc -b && rollup -c",
71
+ "chromatic": "chromatic --exit-zero-on-changes",
72
+ "clean": "rimraf lib node_modules pnpm-lock.yaml package-lock.json yarn.lock"
73
+ },
74
+ "dependencies": {
75
+ "@babel/plugin-transform-react-jsx": "^7.24.7",
76
+ "@dnd-kit/core": "^6.1.0",
77
+ "@dnd-kit/modifiers": "^9.0.0",
78
+ "@dnd-kit/sortable": "^8.0.0",
79
+ "@dnd-kit/utilities": "^3.2.2",
80
+ "@monaco-editor/react": "^4.6.0",
81
+ "@types/react-draft-wysiwyg": "^1.13.8",
82
+ "@types/react-window": "^1.8.8",
83
+ "@vitejs/plugin-react": "^4.3.0",
84
+ "classnames": "^2.5.1",
85
+ "date-fns": "^3.6.0",
86
+ "date-fns-tz": "^3.2.0",
87
+ "draft-js": "^0.11.7",
88
+ "janus-gateway": "^1.3.1",
89
+ "js-beautify": "^1.15.1",
90
+ "jsencrypt": "^3.3.2",
91
+ "node-forge": "^1.3.1",
92
+ "react-archer": "^4.4.0",
93
+ "react-day-picker": "^9.2.1",
94
+ "react-draft-wysiwyg": "^1.15.0",
95
+ "react-google-recaptcha": "^3.1.0",
96
+ "react-hook-form": "7.64.0",
97
+ "react-phone-input-2": "^2.15.1",
98
+ "react-phone-number-input": "^3.4.12",
99
+ "react-virtuoso": "^4.13.0",
100
+ "react-window": "^1.8.10",
101
+ "scss": "^0.2.4",
102
+ "tippy.js": "^6.3.7",
103
+ "use-context-selector": "^2.0.0",
104
+ "vite-plugin-svgr": "^4.3.0",
105
+ "webrtc-adapter": "^9.0.1"
106
+ },
107
+ "files": [
108
+ "lib",
109
+ "README.md",
110
+ "LICENSE"
111
+ ],
112
+ "pnpm": {
113
+ "overrides": {
114
+ "minimatch": ">=10.2.1",
115
+ "esbuild": "0.25.0",
116
+ "glob": "^13.0.5"
117
+ }
118
+ }
119
+ }
@@ -1,8 +0,0 @@
1
- import { MutableRefObject } from 'react';
2
- import { Editor } from '@tiptap/react';
3
- import { RichTextDynamicValue } from './types';
4
- export declare const createDynamicValue: (optionsRef: MutableRefObject<RichTextDynamicValue[]>, trigger: string) => import("@tiptap/core").Node<import("@tiptap/extension-mention").MentionOptions<any, import("@tiptap/extension-mention").MentionNodeAttrs>, any>;
5
- /**
6
- * Dynamic values inserted in the editor, in document order without duplicates
7
- */
8
- export declare const getDynamicValues: (editor: Editor) => RichTextDynamicValue[];
@@ -1,73 +0,0 @@
1
- import { ReactRenderer } from '@tiptap/react';
2
- import Mention from '@tiptap/extension-mention';
3
- import { PluginKey } from '@tiptap/pm/state';
4
- import DynamicValueList from './DynamicValueList';
5
- /**
6
- * Inline, non-editable token inserted by picking an option after typing the trigger.
7
- * Shown as `{{value}}` and serialised as
8
- * `<span data-type="dynamicValue" data-id="{value}" data-label="{label}">{{value}}</span>`
9
- */
10
- const formatToken = (id) => `{{${id}}}`;
11
- export const createDynamicValue = (
12
- // A ref so option changes apply without recreating the editor
13
- optionsRef, trigger) => Mention.extend({ name: 'dynamicValue' }).configure({
14
- HTMLAttributes: { class: 'ff-rich-text-editor__dynamic-value' },
15
- renderText: ({ node }) => formatToken(node.attrs.id),
16
- renderHTML: ({ options, node }) => [
17
- 'span',
18
- options.HTMLAttributes,
19
- formatToken(node.attrs.id),
20
- ],
21
- suggestion: {
22
- char: trigger,
23
- pluginKey: new PluginKey('dynamicValue'),
24
- // Trigger right after any character, e.g. "Hi<", not only after a space
25
- allowedPrefixes: null,
26
- // The list only opens when the consumer passes `dynamicValues`
27
- allow: () => optionsRef.current.length > 0,
28
- items: ({ query }) => {
29
- const q = query.toLowerCase();
30
- return optionsRef.current.filter((option) => option.label.toLowerCase().includes(q) ||
31
- option.value.toLowerCase().includes(q));
32
- },
33
- render: () => {
34
- let renderer = null;
35
- let unmount = null;
36
- return {
37
- onStart: (props) => {
38
- renderer = new ReactRenderer(DynamicValueList, {
39
- props,
40
- editor: props.editor,
41
- });
42
- // Mounted on document.body, so stay above overlays such as Drawer (z-index 950-1100)
43
- renderer.element.style.zIndex = '99999';
44
- unmount = props.mount(renderer.element);
45
- },
46
- onUpdate: (props) => renderer?.updateProps(props),
47
- // Escape is handled by the plugin, which then calls onExit
48
- onKeyDown: (props) => renderer?.ref?.onKeyDown(props) ?? false,
49
- onExit: () => {
50
- unmount?.();
51
- renderer?.destroy();
52
- unmount = null;
53
- renderer = null;
54
- },
55
- };
56
- },
57
- },
58
- });
59
- /**
60
- * Dynamic values inserted in the editor, in document order without duplicates
61
- */
62
- export const getDynamicValues = (editor) => {
63
- const values = new Map();
64
- editor.state.doc.descendants((node) => {
65
- if (node.type.name !== 'dynamicValue')
66
- return;
67
- const { id, label } = node.attrs;
68
- if (id && !values.has(id))
69
- values.set(id, { label: label ?? id, value: id });
70
- });
71
- return [...values.values()];
72
- };
73
- //# sourceMappingURL=DynamicValue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DynamicValue.js","sourceRoot":"","sources":["../../../src/components/RichTextEditor/DynamicValue.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import { SuggestionKeyDownProps, SuggestionProps } from '@tiptap/suggestion';
2
- import { RichTextDynamicValue } from './types';
3
- export interface DynamicValueListRef {
4
- onKeyDown: (props: SuggestionKeyDownProps) => boolean;
5
- }
6
- type DynamicValueListProps = SuggestionProps<RichTextDynamicValue, {
7
- id: string;
8
- label: string;
9
- }>;
10
- declare const DynamicValueList: import("react").ForwardRefExoticComponent<DynamicValueListProps & import("react").RefAttributes<DynamicValueListRef>>;
11
- export default DynamicValueList;
@@ -1,49 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { forwardRef, useEffect, useImperativeHandle, useRef, useState, } from 'react';
3
- import classNames from 'classnames';
4
- import Typography from '../Typography';
5
- const DynamicValueList = forwardRef(({ items, command }, ref) => {
6
- const [selectedIndex, setSelectedIndex] = useState(0);
7
- const listRef = useRef(null);
8
- useEffect(() => setSelectedIndex(0), [items]);
9
- useEffect(() => {
10
- listRef.current?.children[selectedIndex]?.scrollIntoView({
11
- block: 'nearest',
12
- });
13
- }, [selectedIndex]);
14
- const select = (index) => {
15
- const item = items[index];
16
- if (item)
17
- command({ id: item.value, label: item.label });
18
- };
19
- useImperativeHandle(ref, () => ({
20
- onKeyDown: ({ event }) => {
21
- if (!items.length)
22
- return false;
23
- if (event.key === 'ArrowDown') {
24
- setSelectedIndex((i) => (i + 1) % items.length);
25
- return true;
26
- }
27
- if (event.key === 'ArrowUp') {
28
- setSelectedIndex((i) => (i - 1 + items.length) % items.length);
29
- return true;
30
- }
31
- if (event.key === 'Enter' || event.key === 'Tab') {
32
- select(selectedIndex);
33
- return true;
34
- }
35
- return false;
36
- },
37
- }));
38
- if (!items.length) {
39
- return (_jsx("div", { className: "ff-rich-text-editor-suggestions", children: _jsx(Typography, { fontSize: 12, className: "ff-rich-text-editor-suggestions__empty", children: "No matching values" }) }));
40
- }
41
- return (_jsx("ul", { ref: listRef, role: "listbox", className: "ff-rich-text-editor-suggestions", children: items.map((item, index) => (_jsx("li", { role: "option", "aria-selected": index === selectedIndex, className: classNames('ff-rich-text-editor-suggestions__item', {
42
- 'ff-rich-text-editor-suggestions__item--selected': index === selectedIndex,
43
- }),
44
- // Keep editor focus so the command can replace the typed query
45
- onMouseDown: (e) => e.preventDefault(), onMouseEnter: () => setSelectedIndex(index), onClick: () => select(index), children: _jsx(Typography, { children: item.label }) }, item.value))) }));
46
- });
47
- DynamicValueList.displayName = 'DynamicValueList';
48
- export default DynamicValueList;
49
- //# sourceMappingURL=DynamicValueList.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DynamicValueList.js","sourceRoot":"","sources":["../../../src/components/RichTextEditor/DynamicValueList.tsx"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import { FC } from 'react';
2
- import { Editor } from '@tiptap/react';
3
- import { RichTextImageUpload } from './types';
4
- interface ImagePopoverProps {
5
- editor: Editor;
6
- onClose: () => void;
7
- upload: RichTextImageUpload;
8
- }
9
- declare const ImagePopover: FC<ImagePopoverProps>;
10
- export default ImagePopover;
@@ -1,99 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEffect, useId, useRef, useState } from 'react';
3
- import Button from '../Button';
4
- import Typography from '../Typography';
5
- import { SAFE_IMAGE_URL_REGEX } from './imageUpload';
6
- const normalizeUrl = (raw) => {
7
- const url = raw.trim();
8
- if (SAFE_IMAGE_URL_REGEX.test(url))
9
- return url;
10
- // No scheme given (e.g. "example.com/a.png"): default to https
11
- if (!/^[a-z][a-z0-9+.-]*:/i.test(url))
12
- return `https://${url}`;
13
- return null;
14
- };
15
- const ImagePopover = ({ editor, onClose, upload }) => {
16
- const id = useId();
17
- const popoverRef = useRef(null);
18
- const fileInputRef = useRef(null);
19
- // Editing the selected image fills in its current values
20
- const [initial] = useState(() => {
21
- const attrs = editor.getAttributes('image');
22
- return {
23
- src: attrs.src ?? '',
24
- alt: attrs.alt ?? '',
25
- isEditing: editor.isActive('image'),
26
- };
27
- });
28
- // Data URLs are too long to show in an input
29
- const [url, setUrl] = useState(initial.src.startsWith('data:') ? '' : initial.src);
30
- const [alt, setAlt] = useState(initial.alt);
31
- const [error, setError] = useState('');
32
- const [isUploading, setIsUploading] = useState(false);
33
- useEffect(() => {
34
- const handleMouseDown = (event) => {
35
- // The parent also holds the toolbar button, which toggles the popover itself
36
- const anchor = popoverRef.current?.parentElement;
37
- if (!anchor?.contains(event.target))
38
- onClose();
39
- };
40
- const handleKeyDown = (event) => {
41
- if (event.key === 'Escape')
42
- onClose();
43
- };
44
- document.addEventListener('mousedown', handleMouseDown);
45
- document.addEventListener('keydown', handleKeyDown);
46
- return () => {
47
- document.removeEventListener('mousedown', handleMouseDown);
48
- document.removeEventListener('keydown', handleKeyDown);
49
- };
50
- }, [onClose]);
51
- const insert = (src, fallbackAlt = '') => {
52
- editor
53
- .chain()
54
- .focus()
55
- .setImage({ src, alt: alt.trim() || fallbackAlt })
56
- .run();
57
- onClose();
58
- };
59
- const handleSubmit = (event) => {
60
- event.preventDefault();
61
- const src = normalizeUrl(url);
62
- if (!src) {
63
- setError('Enter a valid http or https image URL');
64
- return;
65
- }
66
- insert(src);
67
- };
68
- const handleFile = async (file) => {
69
- if (!file)
70
- return;
71
- if (!file.type.startsWith('image/')) {
72
- setError('Choose an image file');
73
- return;
74
- }
75
- setError('');
76
- setIsUploading(true);
77
- try {
78
- const src = await upload(file);
79
- if (!SAFE_IMAGE_URL_REGEX.test(src))
80
- throw new Error('Invalid URL');
81
- insert(src, file.name);
82
- }
83
- catch {
84
- setError('Image upload failed, please try again');
85
- setIsUploading(false);
86
- }
87
- };
88
- return (_jsxs("form", { ref: popoverRef, className: "ff-rich-text-editor__popover", onSubmit: handleSubmit,
89
- // Inputs must be focusable; don't let the toolbar's mousedown guard apply here
90
- onMouseDown: (e) => e.stopPropagation(), children: [_jsxs("div", { className: "ff-rich-text-editor__popover-field", children: [_jsx(Typography, { as: "label", htmlFor: `${id}-url`, fontSize: 12, children: "Image URL" }), _jsx("input", { id: `${id}-url`, className: "ff-rich-text-editor__popover-input", value: url, placeholder: "https://", autoFocus: true, disabled: isUploading, onChange: (e) => {
91
- setUrl(e.target.value);
92
- setError('');
93
- } })] }), _jsxs("div", { className: "ff-rich-text-editor__popover-field", children: [_jsx(Typography, { as: "label", htmlFor: `${id}-alt`, fontSize: 12, children: "Alternative Text" }), _jsx("input", { id: `${id}-alt`, className: "ff-rich-text-editor__popover-input", value: alt, disabled: isUploading, onChange: (e) => setAlt(e.target.value) })] }), _jsx("input", { ref: fileInputRef, type: "file", accept: "image/*", hidden: true, onChange: (e) => {
94
- handleFile(e.target.files?.[0]);
95
- e.target.value = '';
96
- } }), _jsx(Button, { variant: "secondary", size: "small", label: isUploading ? 'Uploading...' : 'Upload from computer', disabled: isUploading, onClick: () => fileInputRef.current?.click() }), error && (_jsx(Typography, { fontSize: 10, className: "ff-rich-text-editor__popover-error", children: error })), _jsxs("div", { className: "ff-rich-text-editor__popover-actions", children: [_jsx(Button, { variant: "primary", size: "small", type: "submit", label: initial.isEditing ? 'Update' : 'Insert', disabled: !url.trim() || isUploading }), _jsx(Button, { variant: "secondary", size: "small", label: "Cancel", onClick: onClose })] })] }));
97
- };
98
- export default ImagePopover;
99
- //# sourceMappingURL=ImagePopover.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ImagePopover.js","sourceRoot":"","sources":["../../../src/components/RichTextEditor/ImagePopover.tsx"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import { FC } from 'react';
2
- import { Editor } from '@tiptap/react';
3
- interface LinkPopoverProps {
4
- editor: Editor;
5
- onClose: () => void;
6
- }
7
- declare const LinkPopover: FC<LinkPopoverProps>;
8
- export default LinkPopover;