@rufous/ui 0.2.68 → 0.2.70
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/dist/main.cjs +54 -47
- package/dist/main.css +1 -0
- package/dist/main.js +35 -28
- package/package.json +1 -1
package/dist/main.cjs
CHANGED
|
@@ -1526,6 +1526,7 @@ IconButton.displayName = "IconButton";
|
|
|
1526
1526
|
// lib/Dialogs/BaseDialog.tsx
|
|
1527
1527
|
var React65 = __toESM(require("react"), 1);
|
|
1528
1528
|
var import_react14 = require("react");
|
|
1529
|
+
var import_react_dom = __toESM(require("react-dom"), 1);
|
|
1529
1530
|
var import_lucide_react = require("lucide-react");
|
|
1530
1531
|
var BaseDialog = ({
|
|
1531
1532
|
open = false,
|
|
@@ -1629,20 +1630,26 @@ var BaseDialog = ({
|
|
|
1629
1630
|
dialogInner
|
|
1630
1631
|
) : /* @__PURE__ */ React65.createElement("div", { className: containerClass, style: containerStyle }, dialogInner);
|
|
1631
1632
|
if (TransitionComponent) {
|
|
1632
|
-
return
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1633
|
+
return import_react_dom.default.createPortal(
|
|
1634
|
+
/* @__PURE__ */ React65.createElement(
|
|
1635
|
+
TransitionComponent,
|
|
1636
|
+
{
|
|
1637
|
+
in: open,
|
|
1638
|
+
unmountOnExit: true,
|
|
1639
|
+
...TransitionProps,
|
|
1640
|
+
onExited: () => {
|
|
1641
|
+
TransitionProps?.onExited?.();
|
|
1642
|
+
}
|
|
1643
|
+
},
|
|
1644
|
+
/* @__PURE__ */ React65.createElement("div", { className: `dialog-overlay ${size === "fullScreen" ? "overlay-fullscreen" : ""}` }, dialogContent)
|
|
1645
|
+
),
|
|
1646
|
+
document.body
|
|
1643
1647
|
);
|
|
1644
1648
|
}
|
|
1645
|
-
return
|
|
1649
|
+
return import_react_dom.default.createPortal(
|
|
1650
|
+
/* @__PURE__ */ React65.createElement("div", { className: `dialog-overlay ${size === "fullScreen" ? "overlay-fullscreen" : ""}` }, dialogContent),
|
|
1651
|
+
document.body
|
|
1652
|
+
);
|
|
1646
1653
|
};
|
|
1647
1654
|
var BaseDialog_default = BaseDialog;
|
|
1648
1655
|
|
|
@@ -2148,7 +2155,7 @@ var AddressLookup_default = AddressLookup;
|
|
|
2148
2155
|
|
|
2149
2156
|
// lib/TextFields/DateField.tsx
|
|
2150
2157
|
var import_react19 = __toESM(require("react"), 1);
|
|
2151
|
-
var
|
|
2158
|
+
var import_react_dom2 = require("react-dom");
|
|
2152
2159
|
var WEEKDAYS = ["SU", "MO", "TU", "WE", "TH", "FR", "SA"];
|
|
2153
2160
|
var MONTHS = [
|
|
2154
2161
|
"January",
|
|
@@ -2794,7 +2801,7 @@ var DateField = ({
|
|
|
2794
2801
|
)),
|
|
2795
2802
|
label && /* @__PURE__ */ import_react19.default.createElement("label", { htmlFor: inputId, className: "rf-text-field__label" }, label, " ", required && /* @__PURE__ */ import_react19.default.createElement("span", { className: "rf-text-field__asterisk" }, "*")),
|
|
2796
2803
|
variant === "outlined" && /* @__PURE__ */ import_react19.default.createElement("fieldset", { className: "rf-text-field__notch" }, label && /* @__PURE__ */ import_react19.default.createElement("legend", { className: "rf-text-field__legend" }, /* @__PURE__ */ import_react19.default.createElement("span", null, label, required ? " *" : "")))
|
|
2797
|
-
), open && !disabled && (0,
|
|
2804
|
+
), open && !disabled && (0, import_react_dom2.createPortal)(
|
|
2798
2805
|
/* @__PURE__ */ import_react19.default.createElement(
|
|
2799
2806
|
"div",
|
|
2800
2807
|
{
|
|
@@ -3540,7 +3547,7 @@ DateRangeField.displayName = "DateRangeField";
|
|
|
3540
3547
|
|
|
3541
3548
|
// lib/TextFields/Autocomplete.tsx
|
|
3542
3549
|
var import_react21 = __toESM(require("react"), 1);
|
|
3543
|
-
var
|
|
3550
|
+
var import_react_dom3 = __toESM(require("react-dom"), 1);
|
|
3544
3551
|
var ChevronDownIcon = () => /* @__PURE__ */ import_react21.default.createElement("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.2", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ import_react21.default.createElement("polyline", { points: "6 9 12 15 18 9" }));
|
|
3545
3552
|
var CloseSmIcon = ({ size = 16 }) => /* @__PURE__ */ import_react21.default.createElement("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round" }, /* @__PURE__ */ import_react21.default.createElement("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), /* @__PURE__ */ import_react21.default.createElement("line", { x1: "6", y1: "6", x2: "18", y2: "18" }));
|
|
3546
3553
|
var CheckIcon = () => /* @__PURE__ */ import_react21.default.createElement("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ import_react21.default.createElement("polyline", { points: "20 6 9 17 4 12" }));
|
|
@@ -3858,7 +3865,7 @@ function AutocompleteInner(props, _ref) {
|
|
|
3858
3865
|
},
|
|
3859
3866
|
/* @__PURE__ */ import_react21.default.createElement(ChevronDownIcon, null)
|
|
3860
3867
|
))
|
|
3861
|
-
), helperText && /* @__PURE__ */ import_react21.default.createElement("div", { className: `rf-text-field__helper-text${error ? " rf-text-field__helper-text--error" : ""}` }, helperText), open && !disabled &&
|
|
3868
|
+
), helperText && /* @__PURE__ */ import_react21.default.createElement("div", { className: `rf-text-field__helper-text${error ? " rf-text-field__helper-text--error" : ""}` }, helperText), open && !disabled && import_react_dom3.default.createPortal(
|
|
3862
3869
|
/* @__PURE__ */ import_react21.default.createElement("div", { className: "rf-autocomplete__popup", role: "presentation", style: popupStyle }, loading ? /* @__PURE__ */ import_react21.default.createElement("div", { className: "rf-autocomplete__loading" }, /* @__PURE__ */ import_react21.default.createElement("span", { className: "rf-ac-spinner" }), loadingText) : flatEntries.length === 0 ? /* @__PURE__ */ import_react21.default.createElement("div", { className: "rf-autocomplete__no-options" }, noOptionsText) : /* @__PURE__ */ import_react21.default.createElement("ul", { ref: listRef, className: "rf-autocomplete__listbox", role: "listbox" }, groupBy ? (
|
|
3863
3870
|
// Grouped render
|
|
3864
3871
|
(() => {
|
|
@@ -4579,7 +4586,7 @@ function DataGrid({
|
|
|
4579
4586
|
|
|
4580
4587
|
// lib/Select/Select.tsx
|
|
4581
4588
|
var import_react23 = __toESM(require("react"), 1);
|
|
4582
|
-
var
|
|
4589
|
+
var import_react_dom4 = __toESM(require("react-dom"), 1);
|
|
4583
4590
|
var ChevronDownIcon2 = () => /* @__PURE__ */ import_react23.default.createElement("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.2", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ import_react23.default.createElement("polyline", { points: "6 9 12 15 18 9" }));
|
|
4584
4591
|
var CheckIcon2 = () => /* @__PURE__ */ import_react23.default.createElement("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ import_react23.default.createElement("polyline", { points: "20 6 9 17 4 12" }));
|
|
4585
4592
|
function normaliseOptions(options) {
|
|
@@ -4777,7 +4784,7 @@ var Select = import_react23.default.forwardRef(function Select2(props, ref) {
|
|
|
4777
4784
|
/* @__PURE__ */ import_react23.default.createElement("div", { className: "rf-select__arrow", "aria-hidden": "true" }, /* @__PURE__ */ import_react23.default.createElement(ChevronDownIcon2, null))
|
|
4778
4785
|
),
|
|
4779
4786
|
helperText && /* @__PURE__ */ import_react23.default.createElement("div", { className: `rf-text-field__helper-text${error ? " rf-text-field__helper-text--error" : ""}` }, helperText),
|
|
4780
|
-
open && !disabled &&
|
|
4787
|
+
open && !disabled && import_react_dom4.default.createPortal(
|
|
4781
4788
|
/* @__PURE__ */ import_react23.default.createElement("div", { className: "rf-select__popup", role: "presentation", style: popupStyle }, /* @__PURE__ */ import_react23.default.createElement("ul", { ref: listRef, className: "rf-select__listbox", role: "listbox", "aria-multiselectable": multiple }, options.map((opt, idx) => {
|
|
4782
4789
|
const selected = isSelected(opt.value);
|
|
4783
4790
|
const focused = focusedIdx === idx;
|
|
@@ -5963,7 +5970,7 @@ Skeleton.displayName = "Skeleton";
|
|
|
5963
5970
|
|
|
5964
5971
|
// lib/Tooltip/Tooltip.tsx
|
|
5965
5972
|
var import_react35 = __toESM(require("react"), 1);
|
|
5966
|
-
var
|
|
5973
|
+
var import_react_dom5 = __toESM(require("react-dom"), 1);
|
|
5967
5974
|
var GAP = 8;
|
|
5968
5975
|
function computePosition(anchor, tooltip, placement) {
|
|
5969
5976
|
const { top: aTop, left: aLeft, width: aW, height: aH } = anchor;
|
|
@@ -6182,7 +6189,7 @@ var Tooltip = ({
|
|
|
6182
6189
|
...childProps
|
|
6183
6190
|
},
|
|
6184
6191
|
import_react35.default.cloneElement(children)
|
|
6185
|
-
),
|
|
6192
|
+
), import_react_dom5.default.createPortal(tooltipElement, document.body));
|
|
6186
6193
|
};
|
|
6187
6194
|
Tooltip.displayName = "Tooltip";
|
|
6188
6195
|
|
|
@@ -7069,7 +7076,7 @@ Stepper.displayName = "Stepper";
|
|
|
7069
7076
|
|
|
7070
7077
|
// lib/Menu/Menu.tsx
|
|
7071
7078
|
var import_react40 = __toESM(require("react"), 1);
|
|
7072
|
-
var
|
|
7079
|
+
var import_react_dom6 = __toESM(require("react-dom"), 1);
|
|
7073
7080
|
var MenuDivider = () => /* @__PURE__ */ import_react40.default.createElement("hr", { className: "rf-menu-divider", "aria-hidden": "true" });
|
|
7074
7081
|
MenuDivider.displayName = "MenuDivider";
|
|
7075
7082
|
var MenuItem = ({
|
|
@@ -7222,13 +7229,13 @@ var Menu = ({
|
|
|
7222
7229
|
},
|
|
7223
7230
|
children
|
|
7224
7231
|
));
|
|
7225
|
-
return
|
|
7232
|
+
return import_react_dom6.default.createPortal(portal, document.body);
|
|
7226
7233
|
};
|
|
7227
7234
|
Menu.displayName = "Menu";
|
|
7228
7235
|
|
|
7229
7236
|
// lib/Drawer/Drawer.tsx
|
|
7230
7237
|
var import_react41 = __toESM(require("react"), 1);
|
|
7231
|
-
var
|
|
7238
|
+
var import_react_dom7 = __toESM(require("react-dom"), 1);
|
|
7232
7239
|
var Drawer = ({
|
|
7233
7240
|
open,
|
|
7234
7241
|
onClose,
|
|
@@ -7328,7 +7335,7 @@ var Drawer = ({
|
|
|
7328
7335
|
},
|
|
7329
7336
|
children
|
|
7330
7337
|
));
|
|
7331
|
-
return
|
|
7338
|
+
return import_react_dom7.default.createPortal(
|
|
7332
7339
|
/* @__PURE__ */ import_react41.default.createElement("div", { className: rootClasses, style }, drawerContent),
|
|
7333
7340
|
document.body
|
|
7334
7341
|
);
|
|
@@ -7337,7 +7344,7 @@ Drawer.displayName = "Drawer";
|
|
|
7337
7344
|
|
|
7338
7345
|
// lib/Snackbar/Snackbar.tsx
|
|
7339
7346
|
var import_react42 = __toESM(require("react"), 1);
|
|
7340
|
-
var
|
|
7347
|
+
var import_react_dom8 = __toESM(require("react-dom"), 1);
|
|
7341
7348
|
var SEVERITY_ICONS = {
|
|
7342
7349
|
success: "\u2713",
|
|
7343
7350
|
error: "\u2715",
|
|
@@ -7442,7 +7449,7 @@ var Snackbar = ({
|
|
|
7442
7449
|
"\u2715"
|
|
7443
7450
|
)
|
|
7444
7451
|
));
|
|
7445
|
-
return
|
|
7452
|
+
return import_react_dom8.default.createPortal(snackbarEl, document.body);
|
|
7446
7453
|
};
|
|
7447
7454
|
Snackbar.displayName = "Snackbar";
|
|
7448
7455
|
|
|
@@ -7496,7 +7503,7 @@ Link.displayName = "Link";
|
|
|
7496
7503
|
|
|
7497
7504
|
// lib/Popper/Popper.tsx
|
|
7498
7505
|
var import_react44 = __toESM(require("react"), 1);
|
|
7499
|
-
var
|
|
7506
|
+
var import_react_dom9 = __toESM(require("react-dom"), 1);
|
|
7500
7507
|
function computePopperPosition(anchorRect, popperRect, placement, offset2 = [0, 8]) {
|
|
7501
7508
|
const [skid, dist] = offset2;
|
|
7502
7509
|
let top = 0;
|
|
@@ -7639,13 +7646,13 @@ var Popper = ({
|
|
|
7639
7646
|
if (disablePortal) {
|
|
7640
7647
|
return /* @__PURE__ */ import_react44.default.createElement(import_react44.default.Fragment, null, popper);
|
|
7641
7648
|
}
|
|
7642
|
-
return
|
|
7649
|
+
return import_react_dom9.default.createPortal(popper, document.body);
|
|
7643
7650
|
};
|
|
7644
7651
|
Popper.displayName = "Popper";
|
|
7645
7652
|
|
|
7646
7653
|
// lib/Popover/Popover.tsx
|
|
7647
7654
|
var import_react45 = __toESM(require("react"), 1);
|
|
7648
|
-
var
|
|
7655
|
+
var import_react_dom10 = __toESM(require("react-dom"), 1);
|
|
7649
7656
|
function getPoint(rect, v, h) {
|
|
7650
7657
|
const x = h === "left" ? rect.left : h === "center" ? rect.left + rect.width / 2 : rect.right;
|
|
7651
7658
|
const y = v === "top" ? rect.top : v === "center" ? rect.top + rect.height / 2 : rect.bottom;
|
|
@@ -7748,7 +7755,7 @@ var Popover = ({
|
|
|
7748
7755
|
if (disablePortal) {
|
|
7749
7756
|
return /* @__PURE__ */ import_react45.default.createElement("div", { className: `${rootClasses} rf-popover-inline`, style }, content);
|
|
7750
7757
|
}
|
|
7751
|
-
return
|
|
7758
|
+
return import_react_dom10.default.createPortal(
|
|
7752
7759
|
/* @__PURE__ */ import_react45.default.createElement("div", { className: rootClasses, style }, content),
|
|
7753
7760
|
document.body
|
|
7754
7761
|
);
|
|
@@ -8399,7 +8406,7 @@ PhoneField.displayName = "PhoneField";
|
|
|
8399
8406
|
|
|
8400
8407
|
// lib/RufousTextEditor/RufousTextEditor.tsx
|
|
8401
8408
|
var import_react59 = __toESM(require("react"), 1);
|
|
8402
|
-
var
|
|
8409
|
+
var import_react_dom17 = require("react-dom");
|
|
8403
8410
|
var import_react60 = require("@tiptap/react");
|
|
8404
8411
|
var import_starter_kit = __toESM(require("@tiptap/starter-kit"), 1);
|
|
8405
8412
|
var import_extension_placeholder = __toESM(require("@tiptap/extension-placeholder"), 1);
|
|
@@ -8521,7 +8528,7 @@ function createMentionSuggestion(users) {
|
|
|
8521
8528
|
|
|
8522
8529
|
// lib/RufousTextEditor/Toolbar.tsx
|
|
8523
8530
|
var import_react55 = __toESM(require("react"), 1);
|
|
8524
|
-
var
|
|
8531
|
+
var import_react_dom13 = require("react-dom");
|
|
8525
8532
|
|
|
8526
8533
|
// lib/RufousTextEditor/TextToSpeech.tsx
|
|
8527
8534
|
var import_react51 = __toESM(require("react"), 1);
|
|
@@ -8834,7 +8841,7 @@ var SpeechToText_default = SpeechToText;
|
|
|
8834
8841
|
|
|
8835
8842
|
// lib/RufousTextEditor/AICommands.tsx
|
|
8836
8843
|
var import_react53 = __toESM(require("react"), 1);
|
|
8837
|
-
var
|
|
8844
|
+
var import_react_dom11 = require("react-dom");
|
|
8838
8845
|
var AI_COMMANDS = [
|
|
8839
8846
|
{ id: "improve", label: "Improve writing", prompt: "Improve the following text to make it clearer, more engaging, and well-structured. Return only the improved text, no explanations." },
|
|
8840
8847
|
{ id: "shorter", label: "Make shorter", prompt: "Make the following text shorter and more concise while keeping the key points. Return only the shortened text, no explanations." },
|
|
@@ -8991,7 +8998,7 @@ var AICommands = ({ editor, onAICommand }) => {
|
|
|
8991
8998
|
onClick: () => handleCommandSelect(cmd)
|
|
8992
8999
|
},
|
|
8993
9000
|
cmd.label
|
|
8994
|
-
))), /* @__PURE__ */ import_react53.default.createElement("div", { className: "ai-commands-hint" }, editor.state.selection.empty ? "Will apply to all text" : "Will apply to selected text"))), showModal && (0,
|
|
9001
|
+
))), /* @__PURE__ */ import_react53.default.createElement("div", { className: "ai-commands-hint" }, editor.state.selection.empty ? "Will apply to all text" : "Will apply to selected text"))), showModal && (0, import_react_dom11.createPortal)(
|
|
8995
9002
|
/* @__PURE__ */ import_react53.default.createElement("div", { className: "ai-modal-overlay", onMouseDown: handleCancel }, /* @__PURE__ */ import_react53.default.createElement("div", { className: "ai-modal", onMouseDown: (e) => e.stopPropagation() }, /* @__PURE__ */ import_react53.default.createElement("div", { className: "ai-modal-header" }, /* @__PURE__ */ import_react53.default.createElement("span", { className: "ai-modal-title" }, "AI Assistant"), /* @__PURE__ */ import_react53.default.createElement("button", { className: "ai-modal-close", onClick: handleCancel }, "\xD7")), /* @__PURE__ */ import_react53.default.createElement("div", { className: "ai-modal-prompt-section" }, /* @__PURE__ */ import_react53.default.createElement("label", { className: "ai-modal-label" }, "Prompt"), /* @__PURE__ */ import_react53.default.createElement("div", { className: "ai-modal-prompt-row" }, /* @__PURE__ */ import_react53.default.createElement(
|
|
8996
9003
|
"textarea",
|
|
8997
9004
|
{
|
|
@@ -9042,7 +9049,7 @@ var AICommands_default = AICommands;
|
|
|
9042
9049
|
|
|
9043
9050
|
// lib/RufousTextEditor/TranslateModal.tsx
|
|
9044
9051
|
var import_react54 = __toESM(require("react"), 1);
|
|
9045
|
-
var
|
|
9052
|
+
var import_react_dom12 = require("react-dom");
|
|
9046
9053
|
var LANGUAGES = [
|
|
9047
9054
|
{ code: "af", name: "Afrikaans" },
|
|
9048
9055
|
{ code: "sq", name: "Albanian" },
|
|
@@ -9233,7 +9240,7 @@ var TranslateModal = ({ editor, onClose, onTranslate, initialSource, initialTarg
|
|
|
9233
9240
|
setTranslating(false);
|
|
9234
9241
|
}
|
|
9235
9242
|
};
|
|
9236
|
-
return (0,
|
|
9243
|
+
return (0, import_react_dom12.createPortal)(
|
|
9237
9244
|
/* @__PURE__ */ import_react54.default.createElement("div", { className: "modal-overlay", onClick: onClose }, /* @__PURE__ */ import_react54.default.createElement("div", { className: "modal-content translate-modal", onClick: (e) => e.stopPropagation() }, /* @__PURE__ */ import_react54.default.createElement("div", { className: "modal-header" }, /* @__PURE__ */ import_react54.default.createElement("h3", null, "Translate options"), /* @__PURE__ */ import_react54.default.createElement("button", { className: "modal-close", onClick: onClose }, "\xD7")), /* @__PURE__ */ import_react54.default.createElement("div", { className: "modal-body" }, /* @__PURE__ */ import_react54.default.createElement("div", { className: "translate-columns" }, /* @__PURE__ */ import_react54.default.createElement("div", { className: "translate-col" }, /* @__PURE__ */ import_react54.default.createElement("div", { className: "translate-filter" }, /* @__PURE__ */ import_react54.default.createElement(
|
|
9238
9245
|
"input",
|
|
9239
9246
|
{
|
|
@@ -10143,7 +10150,7 @@ var Dropdown = ({ trigger, children, className = "", keepOpen = false }) => {
|
|
|
10143
10150
|
},
|
|
10144
10151
|
trigger.label,
|
|
10145
10152
|
/* @__PURE__ */ import_react55.default.createElement("span", { className: "dropdown-arrow" }, "\u25BE")
|
|
10146
|
-
), open && (0,
|
|
10153
|
+
), open && (0, import_react_dom13.createPortal)(
|
|
10147
10154
|
/* @__PURE__ */ import_react55.default.createElement("div", { className: "rf-rte-wrapper rf-rte-dropdown-portal" }, /* @__PURE__ */ import_react55.default.createElement("div", { ref: menuRef, className: "dropdown-menu dropdown-menu-fixed", onClick: keepOpen ? void 0 : () => setOpen(false) }, typeof children === "function" ? children(() => setOpen(false)) : children)),
|
|
10148
10155
|
document.body
|
|
10149
10156
|
));
|
|
@@ -11046,7 +11053,7 @@ var Toolbar_default = Toolbar;
|
|
|
11046
11053
|
|
|
11047
11054
|
// lib/RufousTextEditor/ImageToolbar.tsx
|
|
11048
11055
|
var import_react56 = __toESM(require("react"), 1);
|
|
11049
|
-
var
|
|
11056
|
+
var import_react_dom14 = require("react-dom");
|
|
11050
11057
|
var ALIGNMENTS = [
|
|
11051
11058
|
{ value: "left", label: "Left", icon: "\u2630" },
|
|
11052
11059
|
{ value: "center", label: "Center", icon: "\u2261" },
|
|
@@ -11218,7 +11225,7 @@ var ImageToolbar = ({ editor }) => {
|
|
|
11218
11225
|
}, [editor]);
|
|
11219
11226
|
const node = editor?.state.selection.node;
|
|
11220
11227
|
const isImage = node && node.type.name === "image";
|
|
11221
|
-
if (!editor || !isImage || !pos) return showModal ? (0,
|
|
11228
|
+
if (!editor || !isImage || !pos) return showModal ? (0, import_react_dom14.createPortal)(
|
|
11222
11229
|
/* @__PURE__ */ import_react56.default.createElement(ImagePropertiesModal, { editor, node, onClose: () => setShowModal(false) }),
|
|
11223
11230
|
document.body
|
|
11224
11231
|
) : null;
|
|
@@ -11295,7 +11302,7 @@ var ImageToolbar = ({ editor }) => {
|
|
|
11295
11302
|
);
|
|
11296
11303
|
setShowVAlign(false);
|
|
11297
11304
|
};
|
|
11298
|
-
return (0,
|
|
11305
|
+
return (0, import_react_dom14.createPortal)(
|
|
11299
11306
|
/* @__PURE__ */ import_react56.default.createElement(import_react56.default.Fragment, null, /* @__PURE__ */ import_react56.default.createElement(
|
|
11300
11307
|
"div",
|
|
11301
11308
|
{
|
|
@@ -11326,7 +11333,7 @@ var ImageToolbar_default = ImageToolbar;
|
|
|
11326
11333
|
|
|
11327
11334
|
// lib/RufousTextEditor/VideoToolbar.tsx
|
|
11328
11335
|
var import_react57 = __toESM(require("react"), 1);
|
|
11329
|
-
var
|
|
11336
|
+
var import_react_dom15 = require("react-dom");
|
|
11330
11337
|
var ALIGNMENTS2 = [
|
|
11331
11338
|
{ value: "left", label: "Left", icon: "\u2630" },
|
|
11332
11339
|
{ value: "center", label: "Center", icon: "\u2261" },
|
|
@@ -11472,7 +11479,7 @@ var VideoToolbar = ({ editor }) => {
|
|
|
11472
11479
|
const node = editor?.state.selection.node;
|
|
11473
11480
|
const isVideo = node && VIDEO_TYPES.includes(node.type.name);
|
|
11474
11481
|
const nodeType = node?.type.name;
|
|
11475
|
-
if (!editor || !isVideo || !pos) return showModal ? (0,
|
|
11482
|
+
if (!editor || !isVideo || !pos) return showModal ? (0, import_react_dom15.createPortal)(
|
|
11476
11483
|
/* @__PURE__ */ import_react57.default.createElement(VideoPropertiesModal, { editor, node, nodeType, onClose: () => setShowModal(false) }),
|
|
11477
11484
|
document.body
|
|
11478
11485
|
) : null;
|
|
@@ -11519,7 +11526,7 @@ var VideoToolbar = ({ editor }) => {
|
|
|
11519
11526
|
})
|
|
11520
11527
|
);
|
|
11521
11528
|
};
|
|
11522
|
-
return (0,
|
|
11529
|
+
return (0, import_react_dom15.createPortal)(
|
|
11523
11530
|
/* @__PURE__ */ import_react57.default.createElement(import_react57.default.Fragment, null, /* @__PURE__ */ import_react57.default.createElement(
|
|
11524
11531
|
"div",
|
|
11525
11532
|
{
|
|
@@ -11567,7 +11574,7 @@ var VideoToolbar_default = VideoToolbar;
|
|
|
11567
11574
|
|
|
11568
11575
|
// lib/RufousTextEditor/TableToolbar.tsx
|
|
11569
11576
|
var import_react58 = __toESM(require("react"), 1);
|
|
11570
|
-
var
|
|
11577
|
+
var import_react_dom16 = require("react-dom");
|
|
11571
11578
|
var IconAddRowBefore = () => /* @__PURE__ */ import_react58.default.createElement("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "currentColor" }, /* @__PURE__ */ import_react58.default.createElement("path", { d: "M20 3H4c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h16c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm-1 8H5V5h14v6zm0 8H5v-6h14v6z" }), /* @__PURE__ */ import_react58.default.createElement("path", { d: "M9 6h2v1.5h1.5v2H11V11H9V9.5H7.5v-2H9z" }));
|
|
11572
11579
|
var IconAddRowAfter = () => /* @__PURE__ */ import_react58.default.createElement("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "currentColor" }, /* @__PURE__ */ import_react58.default.createElement("path", { d: "M20 3H4c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h16c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm-1 8H5V5h14v6zm0 8H5v-6h14v6z" }), /* @__PURE__ */ import_react58.default.createElement("path", { d: "M9 14h2v1.5h1.5v2H11V19H9v-1.5H7.5v-2H9z" }));
|
|
11573
11580
|
var IconAddColBefore = () => /* @__PURE__ */ import_react58.default.createElement("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "currentColor" }, /* @__PURE__ */ import_react58.default.createElement("path", { d: "M20 3H4c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h16c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm-9 16H5V5h6v14zm8 0h-6V5h6v14z" }), /* @__PURE__ */ import_react58.default.createElement("path", { d: "M6 10h1.5v2H6v1.5H4v-2h1.5V10H4V8h2z", transform: "translate(2,1)" }));
|
|
@@ -11624,7 +11631,7 @@ var TableToolbar = ({ editor }) => {
|
|
|
11624
11631
|
const canMerge = editor.can().mergeCells();
|
|
11625
11632
|
const canSplit = editor.can().splitCell();
|
|
11626
11633
|
const prevent = (e) => e.preventDefault();
|
|
11627
|
-
return (0,
|
|
11634
|
+
return (0, import_react_dom16.createPortal)(
|
|
11628
11635
|
/* @__PURE__ */ import_react58.default.createElement(
|
|
11629
11636
|
"div",
|
|
11630
11637
|
{
|
|
@@ -12313,7 +12320,7 @@ var RufousTextEditor = ({
|
|
|
12313
12320
|
},
|
|
12314
12321
|
"\u201C Quote"
|
|
12315
12322
|
)
|
|
12316
|
-
), /* @__PURE__ */ import_react59.default.createElement("div", { className: "status-bar" }, /* @__PURE__ */ import_react59.default.createElement("div", { className: "status-bar-left" }, onSaveProp && /* @__PURE__ */ import_react59.default.createElement("button", { onClick: handleSave, className: "status-btn save-btn" }, "Save"), onExportProp && /* @__PURE__ */ import_react59.default.createElement("button", { onClick: handleExport, className: "status-btn export-btn" }, "Export")), /* @__PURE__ */ import_react59.default.createElement("div", { className: "status-bar-right" }, saveStatus && /* @__PURE__ */ import_react59.default.createElement("span", { className: "save-status" }, saveStatus), editor && /* @__PURE__ */ import_react59.default.createElement(import_react59.default.Fragment, null, /* @__PURE__ */ import_react59.default.createElement("span", { className: "word-count" }, "CHARS: ", editor.storage.characterCount?.characters?.() ?? editor.getText().length), /* @__PURE__ */ import_react59.default.createElement("span", { className: "word-count" }, "WORDS: ", editor.storage.characterCount?.words?.() ?? editor.getText().split(/\s+/).filter(Boolean).length)))), linkModalOpen && (0,
|
|
12323
|
+
), /* @__PURE__ */ import_react59.default.createElement("div", { className: "status-bar" }, /* @__PURE__ */ import_react59.default.createElement("div", { className: "status-bar-left" }, onSaveProp && /* @__PURE__ */ import_react59.default.createElement("button", { onClick: handleSave, className: "status-btn save-btn" }, "Save"), onExportProp && /* @__PURE__ */ import_react59.default.createElement("button", { onClick: handleExport, className: "status-btn export-btn" }, "Export")), /* @__PURE__ */ import_react59.default.createElement("div", { className: "status-bar-right" }, saveStatus && /* @__PURE__ */ import_react59.default.createElement("span", { className: "save-status" }, saveStatus), editor && /* @__PURE__ */ import_react59.default.createElement(import_react59.default.Fragment, null, /* @__PURE__ */ import_react59.default.createElement("span", { className: "word-count" }, "CHARS: ", editor.storage.characterCount?.characters?.() ?? editor.getText().length), /* @__PURE__ */ import_react59.default.createElement("span", { className: "word-count" }, "WORDS: ", editor.storage.characterCount?.words?.() ?? editor.getText().split(/\s+/).filter(Boolean).length)))), linkModalOpen && (0, import_react_dom17.createPortal)(
|
|
12317
12324
|
/* @__PURE__ */ import_react59.default.createElement("div", { className: "link-modal-overlay", onClick: handleLinkCancel }, /* @__PURE__ */ import_react59.default.createElement("div", { className: "link-modal", onClick: (e) => e.stopPropagation() }, /* @__PURE__ */ import_react59.default.createElement("div", { className: "link-modal-body" }, /* @__PURE__ */ import_react59.default.createElement("div", { className: "link-modal-field" }, /* @__PURE__ */ import_react59.default.createElement("label", { className: "link-modal-label" }, "URL"), /* @__PURE__ */ import_react59.default.createElement(
|
|
12318
12325
|
"input",
|
|
12319
12326
|
{
|
|
@@ -12358,7 +12365,7 @@ var RufousTextEditor = ({
|
|
|
12358
12365
|
)),
|
|
12359
12366
|
helperText && /* @__PURE__ */ import_react59.default.createElement("div", { className: `rf-rte-helper-text ${error ? "rf-rte-helper-error" : ""}` }, helperText)
|
|
12360
12367
|
);
|
|
12361
|
-
return isFullscreen ? (0,
|
|
12368
|
+
return isFullscreen ? (0, import_react_dom17.createPortal)(wrapperJsx, document.body) : wrapperJsx;
|
|
12362
12369
|
};
|
|
12363
12370
|
var RufousTextContent = ({ content, className, style, sx }) => {
|
|
12364
12371
|
const sxClass = useSx(sx);
|
package/dist/main.css
CHANGED
package/dist/main.js
CHANGED
|
@@ -1354,6 +1354,7 @@ IconButton.displayName = "IconButton";
|
|
|
1354
1354
|
// lib/Dialogs/BaseDialog.tsx
|
|
1355
1355
|
import * as React65 from "react";
|
|
1356
1356
|
import { useState as useState2 } from "react";
|
|
1357
|
+
import ReactDOM from "react-dom";
|
|
1357
1358
|
import { X } from "lucide-react";
|
|
1358
1359
|
var BaseDialog = ({
|
|
1359
1360
|
open = false,
|
|
@@ -1457,20 +1458,26 @@ var BaseDialog = ({
|
|
|
1457
1458
|
dialogInner
|
|
1458
1459
|
) : /* @__PURE__ */ React65.createElement("div", { className: containerClass, style: containerStyle }, dialogInner);
|
|
1459
1460
|
if (TransitionComponent) {
|
|
1460
|
-
return
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1461
|
+
return ReactDOM.createPortal(
|
|
1462
|
+
/* @__PURE__ */ React65.createElement(
|
|
1463
|
+
TransitionComponent,
|
|
1464
|
+
{
|
|
1465
|
+
in: open,
|
|
1466
|
+
unmountOnExit: true,
|
|
1467
|
+
...TransitionProps,
|
|
1468
|
+
onExited: () => {
|
|
1469
|
+
TransitionProps?.onExited?.();
|
|
1470
|
+
}
|
|
1471
|
+
},
|
|
1472
|
+
/* @__PURE__ */ React65.createElement("div", { className: `dialog-overlay ${size === "fullScreen" ? "overlay-fullscreen" : ""}` }, dialogContent)
|
|
1473
|
+
),
|
|
1474
|
+
document.body
|
|
1471
1475
|
);
|
|
1472
1476
|
}
|
|
1473
|
-
return
|
|
1477
|
+
return ReactDOM.createPortal(
|
|
1478
|
+
/* @__PURE__ */ React65.createElement("div", { className: `dialog-overlay ${size === "fullScreen" ? "overlay-fullscreen" : ""}` }, dialogContent),
|
|
1479
|
+
document.body
|
|
1480
|
+
);
|
|
1474
1481
|
};
|
|
1475
1482
|
var BaseDialog_default = BaseDialog;
|
|
1476
1483
|
|
|
@@ -3388,7 +3395,7 @@ import React72, {
|
|
|
3388
3395
|
useEffect as useEffect6,
|
|
3389
3396
|
useCallback as useCallback2
|
|
3390
3397
|
} from "react";
|
|
3391
|
-
import
|
|
3398
|
+
import ReactDOM2 from "react-dom";
|
|
3392
3399
|
var ChevronDownIcon = () => /* @__PURE__ */ React72.createElement("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.2", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ React72.createElement("polyline", { points: "6 9 12 15 18 9" }));
|
|
3393
3400
|
var CloseSmIcon = ({ size = 16 }) => /* @__PURE__ */ React72.createElement("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round" }, /* @__PURE__ */ React72.createElement("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), /* @__PURE__ */ React72.createElement("line", { x1: "6", y1: "6", x2: "18", y2: "18" }));
|
|
3394
3401
|
var CheckIcon = () => /* @__PURE__ */ React72.createElement("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ React72.createElement("polyline", { points: "20 6 9 17 4 12" }));
|
|
@@ -3706,7 +3713,7 @@ function AutocompleteInner(props, _ref) {
|
|
|
3706
3713
|
},
|
|
3707
3714
|
/* @__PURE__ */ React72.createElement(ChevronDownIcon, null)
|
|
3708
3715
|
))
|
|
3709
|
-
), helperText && /* @__PURE__ */ React72.createElement("div", { className: `rf-text-field__helper-text${error ? " rf-text-field__helper-text--error" : ""}` }, helperText), open && !disabled &&
|
|
3716
|
+
), helperText && /* @__PURE__ */ React72.createElement("div", { className: `rf-text-field__helper-text${error ? " rf-text-field__helper-text--error" : ""}` }, helperText), open && !disabled && ReactDOM2.createPortal(
|
|
3710
3717
|
/* @__PURE__ */ React72.createElement("div", { className: "rf-autocomplete__popup", role: "presentation", style: popupStyle }, loading ? /* @__PURE__ */ React72.createElement("div", { className: "rf-autocomplete__loading" }, /* @__PURE__ */ React72.createElement("span", { className: "rf-ac-spinner" }), loadingText) : flatEntries.length === 0 ? /* @__PURE__ */ React72.createElement("div", { className: "rf-autocomplete__no-options" }, noOptionsText) : /* @__PURE__ */ React72.createElement("ul", { ref: listRef, className: "rf-autocomplete__listbox", role: "listbox" }, groupBy ? (
|
|
3711
3718
|
// Grouped render
|
|
3712
3719
|
(() => {
|
|
@@ -4449,7 +4456,7 @@ import React75, {
|
|
|
4449
4456
|
useEffect as useEffect8,
|
|
4450
4457
|
useCallback as useCallback3
|
|
4451
4458
|
} from "react";
|
|
4452
|
-
import
|
|
4459
|
+
import ReactDOM3 from "react-dom";
|
|
4453
4460
|
var ChevronDownIcon2 = () => /* @__PURE__ */ React75.createElement("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.2", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ React75.createElement("polyline", { points: "6 9 12 15 18 9" }));
|
|
4454
4461
|
var CheckIcon2 = () => /* @__PURE__ */ React75.createElement("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ React75.createElement("polyline", { points: "20 6 9 17 4 12" }));
|
|
4455
4462
|
function normaliseOptions(options) {
|
|
@@ -4647,7 +4654,7 @@ var Select = React75.forwardRef(function Select2(props, ref) {
|
|
|
4647
4654
|
/* @__PURE__ */ React75.createElement("div", { className: "rf-select__arrow", "aria-hidden": "true" }, /* @__PURE__ */ React75.createElement(ChevronDownIcon2, null))
|
|
4648
4655
|
),
|
|
4649
4656
|
helperText && /* @__PURE__ */ React75.createElement("div", { className: `rf-text-field__helper-text${error ? " rf-text-field__helper-text--error" : ""}` }, helperText),
|
|
4650
|
-
open && !disabled &&
|
|
4657
|
+
open && !disabled && ReactDOM3.createPortal(
|
|
4651
4658
|
/* @__PURE__ */ React75.createElement("div", { className: "rf-select__popup", role: "presentation", style: popupStyle }, /* @__PURE__ */ React75.createElement("ul", { ref: listRef, className: "rf-select__listbox", role: "listbox", "aria-multiselectable": multiple }, options.map((opt, idx) => {
|
|
4652
4659
|
const selected = isSelected(opt.value);
|
|
4653
4660
|
const focused = focusedIdx === idx;
|
|
@@ -5849,7 +5856,7 @@ import React87, {
|
|
|
5849
5856
|
useRef as useRef14,
|
|
5850
5857
|
useState as useState13
|
|
5851
5858
|
} from "react";
|
|
5852
|
-
import
|
|
5859
|
+
import ReactDOM4 from "react-dom";
|
|
5853
5860
|
var GAP = 8;
|
|
5854
5861
|
function computePosition(anchor, tooltip, placement) {
|
|
5855
5862
|
const { top: aTop, left: aLeft, width: aW, height: aH } = anchor;
|
|
@@ -6068,7 +6075,7 @@ var Tooltip = ({
|
|
|
6068
6075
|
...childProps
|
|
6069
6076
|
},
|
|
6070
6077
|
React87.cloneElement(children)
|
|
6071
|
-
),
|
|
6078
|
+
), ReactDOM4.createPortal(tooltipElement, document.body));
|
|
6072
6079
|
};
|
|
6073
6080
|
Tooltip.displayName = "Tooltip";
|
|
6074
6081
|
|
|
@@ -6974,7 +6981,7 @@ import React97, {
|
|
|
6974
6981
|
useRef as useRef16,
|
|
6975
6982
|
useState as useState17
|
|
6976
6983
|
} from "react";
|
|
6977
|
-
import
|
|
6984
|
+
import ReactDOM5 from "react-dom";
|
|
6978
6985
|
var MenuDivider = () => /* @__PURE__ */ React97.createElement("hr", { className: "rf-menu-divider", "aria-hidden": "true" });
|
|
6979
6986
|
MenuDivider.displayName = "MenuDivider";
|
|
6980
6987
|
var MenuItem = ({
|
|
@@ -7127,7 +7134,7 @@ var Menu = ({
|
|
|
7127
7134
|
},
|
|
7128
7135
|
children
|
|
7129
7136
|
));
|
|
7130
|
-
return
|
|
7137
|
+
return ReactDOM5.createPortal(portal, document.body);
|
|
7131
7138
|
};
|
|
7132
7139
|
Menu.displayName = "Menu";
|
|
7133
7140
|
|
|
@@ -7136,7 +7143,7 @@ import React98, {
|
|
|
7136
7143
|
useEffect as useEffect13,
|
|
7137
7144
|
useState as useState18
|
|
7138
7145
|
} from "react";
|
|
7139
|
-
import
|
|
7146
|
+
import ReactDOM6 from "react-dom";
|
|
7140
7147
|
var Drawer = ({
|
|
7141
7148
|
open,
|
|
7142
7149
|
onClose,
|
|
@@ -7236,7 +7243,7 @@ var Drawer = ({
|
|
|
7236
7243
|
},
|
|
7237
7244
|
children
|
|
7238
7245
|
));
|
|
7239
|
-
return
|
|
7246
|
+
return ReactDOM6.createPortal(
|
|
7240
7247
|
/* @__PURE__ */ React98.createElement("div", { className: rootClasses, style }, drawerContent),
|
|
7241
7248
|
document.body
|
|
7242
7249
|
);
|
|
@@ -7250,7 +7257,7 @@ import React99, {
|
|
|
7250
7257
|
useRef as useRef17,
|
|
7251
7258
|
useState as useState19
|
|
7252
7259
|
} from "react";
|
|
7253
|
-
import
|
|
7260
|
+
import ReactDOM7 from "react-dom";
|
|
7254
7261
|
var SEVERITY_ICONS = {
|
|
7255
7262
|
success: "\u2713",
|
|
7256
7263
|
error: "\u2715",
|
|
@@ -7355,7 +7362,7 @@ var Snackbar = ({
|
|
|
7355
7362
|
"\u2715"
|
|
7356
7363
|
)
|
|
7357
7364
|
));
|
|
7358
|
-
return
|
|
7365
|
+
return ReactDOM7.createPortal(snackbarEl, document.body);
|
|
7359
7366
|
};
|
|
7360
7367
|
Snackbar.displayName = "Snackbar";
|
|
7361
7368
|
|
|
@@ -7414,7 +7421,7 @@ import React101, {
|
|
|
7414
7421
|
useRef as useRef18,
|
|
7415
7422
|
useState as useState20
|
|
7416
7423
|
} from "react";
|
|
7417
|
-
import
|
|
7424
|
+
import ReactDOM8 from "react-dom";
|
|
7418
7425
|
function computePopperPosition(anchorRect, popperRect, placement, offset2 = [0, 8]) {
|
|
7419
7426
|
const [skid, dist] = offset2;
|
|
7420
7427
|
let top = 0;
|
|
@@ -7557,7 +7564,7 @@ var Popper = ({
|
|
|
7557
7564
|
if (disablePortal) {
|
|
7558
7565
|
return /* @__PURE__ */ React101.createElement(React101.Fragment, null, popper);
|
|
7559
7566
|
}
|
|
7560
|
-
return
|
|
7567
|
+
return ReactDOM8.createPortal(popper, document.body);
|
|
7561
7568
|
};
|
|
7562
7569
|
Popper.displayName = "Popper";
|
|
7563
7570
|
|
|
@@ -7568,7 +7575,7 @@ import React102, {
|
|
|
7568
7575
|
useRef as useRef19,
|
|
7569
7576
|
useState as useState21
|
|
7570
7577
|
} from "react";
|
|
7571
|
-
import
|
|
7578
|
+
import ReactDOM9 from "react-dom";
|
|
7572
7579
|
function getPoint(rect, v, h) {
|
|
7573
7580
|
const x = h === "left" ? rect.left : h === "center" ? rect.left + rect.width / 2 : rect.right;
|
|
7574
7581
|
const y = v === "top" ? rect.top : v === "center" ? rect.top + rect.height / 2 : rect.bottom;
|
|
@@ -7671,7 +7678,7 @@ var Popover = ({
|
|
|
7671
7678
|
if (disablePortal) {
|
|
7672
7679
|
return /* @__PURE__ */ React102.createElement("div", { className: `${rootClasses} rf-popover-inline`, style }, content);
|
|
7673
7680
|
}
|
|
7674
|
-
return
|
|
7681
|
+
return ReactDOM9.createPortal(
|
|
7675
7682
|
/* @__PURE__ */ React102.createElement("div", { className: rootClasses, style }, content),
|
|
7676
7683
|
document.body
|
|
7677
7684
|
);
|