datocms-react-ui 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Canvas/index.js.map +1 -1
- package/dist/cjs/Dropdown/Menu.js +14 -4
- package/dist/cjs/Dropdown/Menu.js.map +1 -1
- package/dist/esm/Canvas/index.d.ts +4 -5
- package/dist/esm/Canvas/index.js.map +1 -1
- package/dist/esm/Dropdown/Menu.js +14 -4
- package/dist/esm/Dropdown/Menu.js.map +1 -1
- package/dist/types/Canvas/index.d.ts +4 -5
- package/package.json +3 -3
- package/src/Canvas/index.tsx +4 -6
- package/src/Dropdown/Menu.tsx +26 -3
- package/types.json +1164 -1132
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Canvas/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAAoC;AAMpC,6CAKe;AACf,gEAA+D;AAC/D,oFAAyC;AAIzC,8DAA8D;AACjD,QAAA,UAAU,GAAG,IAAA,qBAAa,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Canvas/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAAoC;AAMpC,6CAKe;AACf,gEAA+D;AAC/D,oFAAyC;AAIzC,8DAA8D;AACjD,QAAA,UAAU,GAAG,IAAA,qBAAa,EAAiB,IAAI,CAAC,CAAC;AAE9D,SAAgB,MAAM;IACpB,IAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,kBAAU,CAAC,CAAC;IAEnC,IAAI,CAAC,GAAG,EAAE;QACR,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;KAChD;IAED,OAAO,GAAQ,CAAC;AAClB,CAAC;AARD,wBAQC;AAQD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2eG;AAEH,SAAgB,MAAM,CAAC,EAIT;QAHZ,GAAG,SAAA,EACH,QAAQ,cAAA,EACR,aAAa,mBAAA;IAEL,IAAA,IAAI,GAAK,GAAkC,KAAvC,CAAwC;IAEpD,IAAA,iBAAS,EAAC;QACR,IACE,CAAC,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YACvD,CAAC,aAAa,EACd;YACA,IAAM,oBAAkB,GAAG,GAAiC,CAAC;YAC7D,oBAAkB,CAAC,gBAAgB,EAAE,CAAC;YAEtC,OAAO;gBACL,oBAAkB,CAAC,eAAe,EAAE,CAAC;YACvC,CAAC,CAAC;SACH;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;IAE1B,OAAO,CACL,8BAAC,kBAAU,CAAC,QAAQ,IAAC,KAAK,EAAE,GAAG;QAC7B,uCACE,SAAS,EAAE,IAAA,oBAAU,EAAC,gCAAC,CAAC,cAAc,EAAE,gCAAC,CAAC,MAAM,CAAC,EACjD,KAAK,EAAE,IAAA,2CAAoB,EAAC,GAAG,CAAC,IAE/B,QAAQ,CACL,CACc,CACvB,CAAC;AACJ,CAAC;AAjCD,wBAiCC"}
|
|
@@ -50,12 +50,16 @@ exports.Menu = void 0;
|
|
|
50
50
|
var react_1 = __importStar(require("react"));
|
|
51
51
|
var react_intersection_observer_1 = require("react-intersection-observer");
|
|
52
52
|
var scroll_into_view_if_needed_1 = __importDefault(require("scroll-into-view-if-needed"));
|
|
53
|
+
var Canvas_1 = require("../Canvas");
|
|
53
54
|
var mergeRefs_1 = require("../mergeRefs");
|
|
54
55
|
var DropdownContext_1 = require("./DropdownContext");
|
|
55
56
|
var Group_1 = require("./Group");
|
|
56
57
|
var MenuContext_1 = require("./MenuContext");
|
|
57
58
|
var Portal_1 = require("./Portal");
|
|
58
59
|
var styles_module_css_json_1 = __importDefault(require("./styles.module.css.json"));
|
|
60
|
+
function ctxHasSizingUtils(ctx) {
|
|
61
|
+
return 'isAutoResizerActive' in ctx;
|
|
62
|
+
}
|
|
59
63
|
var MenuDesktopContainer = react_1.default.forwardRef(function (_a, ref) {
|
|
60
64
|
var children = _a.children;
|
|
61
65
|
return (react_1.default.createElement(Portal_1.Portal, null,
|
|
@@ -73,7 +77,7 @@ function getAbsoluteWidth(el) {
|
|
|
73
77
|
Number.parseFloat(styles.marginRight);
|
|
74
78
|
return Math.ceil(el.offsetWidth + margin);
|
|
75
79
|
}
|
|
76
|
-
function setPosition(panel, parent, alignment) {
|
|
80
|
+
function setPosition(panel, parent, alignment, isAutoResizerActive) {
|
|
77
81
|
var rect = parent.getBoundingClientRect();
|
|
78
82
|
var height = getAbsoluteHeight(panel);
|
|
79
83
|
var parentWidth = getAbsoluteWidth(parent);
|
|
@@ -109,12 +113,16 @@ function setPosition(panel, parent, alignment) {
|
|
|
109
113
|
if (spaceBelow > spaceAbove) {
|
|
110
114
|
// eslint-disable-next-line no-param-reassign
|
|
111
115
|
panel.style.top = "".concat(rect.bottom, "px");
|
|
112
|
-
|
|
116
|
+
if (!isAutoResizerActive) {
|
|
117
|
+
menu.style.maxHeight = "".concat(windowHeight - rect.bottom - marginTop - 10, "px");
|
|
118
|
+
}
|
|
113
119
|
}
|
|
114
120
|
else {
|
|
115
121
|
// eslint-disable-next-line no-param-reassign
|
|
116
122
|
panel.style.top = '0px';
|
|
117
|
-
|
|
123
|
+
if (!isAutoResizerActive) {
|
|
124
|
+
menu.style.maxHeight = "".concat(rect.top - marginTop, "px");
|
|
125
|
+
}
|
|
118
126
|
}
|
|
119
127
|
}
|
|
120
128
|
// eslint-disable-next-line no-param-reassign
|
|
@@ -122,6 +130,7 @@ function setPosition(panel, parent, alignment) {
|
|
|
122
130
|
}
|
|
123
131
|
var Menu = function (_a) {
|
|
124
132
|
var children = _a.children, _b = _a.alignment, alignment = _b === void 0 ? 'left' : _b;
|
|
133
|
+
var ctx = (0, Canvas_1.useCtx)();
|
|
125
134
|
var closeMenu = (0, react_1.useContext)(DropdownContext_1.DropdownContext).closeMenu;
|
|
126
135
|
var childrenArray = react_1.default.Children.toArray(children);
|
|
127
136
|
var _c = (0, react_1.useState)(''), searchTerm = _c[0], setSearchTerm = _c[1];
|
|
@@ -204,7 +213,8 @@ var Menu = function (_a) {
|
|
|
204
213
|
var menuRef = (0, react_1.createRef)();
|
|
205
214
|
var reposition = (0, react_1.useCallback)(function () {
|
|
206
215
|
if (menuRef.current && parentRef.current) {
|
|
207
|
-
|
|
216
|
+
var isAutoResizerActive = ctxHasSizingUtils(ctx) && ctx.isAutoResizerActive();
|
|
217
|
+
setPosition(menuRef.current, parentRef.current, alignment, isAutoResizerActive);
|
|
208
218
|
}
|
|
209
219
|
}, [menuRef, parentRef, alignment]);
|
|
210
220
|
(0, react_1.useEffect)(function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../src/Dropdown/Menu.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../src/Dropdown/Menu.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6CAQe;AACf,2EAAwD;AACxD,0FAAwD;AACxD,oCAA4C;AAC5C,0CAAyC;AACzC,qDAAoD;AACpD,iCAAgC;AAChC,6CAA4C;AAC5C,mCAAkC;AAClC,oFAAyC;AAEzC,SAAS,iBAAiB,CAAC,GAAY;IACrC,OAAO,qBAAqB,IAAI,GAAG,CAAC;AACtC,CAAC;AAED,IAAM,oBAAoB,GAAG,eAAK,CAAC,UAAU,CAG3C,UAAC,EAAY,EAAE,GAAG;QAAf,QAAQ,cAAA;IAAY,OAAA,CACvB,8BAAC,eAAM;QACL,uCACE,SAAS,EAAE,gCAAC,CAAC,0BAA0B,CAAC,EACxC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EACvB,GAAG,EAAE,GAAG,IAEP,QAAQ,CACL,CACC,CACV;AAVwB,CAUxB,CAAC,CAAC;AAEH,SAAS,iBAAiB,CAAC,EAAe;IACxC,IAAM,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAC3C,IAAM,MAAM,GACV,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;QACnC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACzC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,GAAG,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAe;IACvC,IAAM,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAC3C,IAAM,MAAM,GACV,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC;QACpC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACxC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,WAAW,CAClB,KAAkB,EAClB,MAAmB,EACnB,SAA2B,EAC3B,mBAA4B;IAE5B,IAAM,IAAI,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;IAC5C,IAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACxC,IAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAEtC,IAAI,SAAS,KAAK,MAAM,EAAE;QACxB,6CAA6C;QAC7C,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,UAAG,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,WAAW,OAAI,CAAC;KAC1D;SAAM;QACL,6CAA6C;QAC7C,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,UACjB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,WAAW,GAAG,WAAW,GAAG,KAAK,OAClD,CAAC;KACN;IAED,IAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC3B,QAAQ,CAAC,eAAe,CAAC,YAAY,IAAI,CAAC,EAC1C,MAAM,CAAC,WAAW,IAAI,CAAC,CACxB,CAAC;IAEF,IAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAc,WAAI,gCAAC,CAAC,cAAc,CAAE,CAAC,CAAC;IAEtE,IAAI,CAAC,IAAI,EAAE;QACT,OAAO;KACR;IAED,IAAM,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEtD,IAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,YAAY,CAAC;IACvD,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,GAAG,MAAM,GAAG,CAAC,CAAC;IAExC,IAAI,CAAC,SAAS,IAAI,SAAS,EAAE;QAC3B,6CAA6C;QAC7C,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,UAAG,IAAI,CAAC,MAAM,GAAG,MAAM,OAAI,CAAC;KAC/C;SAAM,IAAI,SAAS,EAAE;QACpB,6CAA6C;QAC7C,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,UAAG,IAAI,CAAC,MAAM,OAAI,CAAC;KACtC;SAAM;QACL,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC;QAC5B,IAAM,UAAU,GAAG,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;QAE9C,IAAI,UAAU,GAAG,UAAU,EAAE;YAC3B,6CAA6C;YAC7C,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,UAAG,IAAI,CAAC,MAAM,OAAI,CAAC;YAErC,IAAI,CAAC,mBAAmB,EAAE;gBACxB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,UACrB,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS,GAAG,EAAE,OACzC,CAAC;aACN;SACF;aAAM;YACL,6CAA6C;YAC7C,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC;YAExB,IAAI,CAAC,mBAAmB,EAAE;gBACxB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,UAAG,IAAI,CAAC,GAAG,GAAG,SAAS,OAAI,CAAC;aACpD;SACF;KACF;IAED,6CAA6C;IAC7C,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;AACrC,CAAC;AAOM,IAAM,IAAI,GAAG,UAAC,EAGT;QAFV,QAAQ,cAAA,EACR,iBAAkB,EAAlB,SAAS,mBAAG,MAAM,KAAA;IAElB,IAAM,GAAG,GAAG,IAAA,eAAM,GAAE,CAAC;IACb,IAAA,SAAS,GAAK,IAAA,kBAAU,EAAC,iCAAe,CAAC,UAAhC,CAAiC;IAElD,IAAM,aAAa,GAAG,eAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAA,KAA8B,IAAA,gBAAQ,EAAS,EAAE,CAAC,EAAjD,UAAU,QAAA,EAAE,aAAa,QAAwB,CAAC;IACnD,IAAA,KAAwB,IAAA,gBAAQ,EAKpC,EAAE,CAAC,EALE,OAAO,QAAA,EAAE,UAAU,QAKrB,CAAC;IAEN,IAAM,YAAY,GAAG,IAAA,mBAAW,EAC9B,UAAC,CAAC;QACA,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,EACD,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF,IAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CACjC,UAAC,KAAK;QACJ,OAAA,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,aAAK;IAApE,CAAoE,CACvE,CAAC;IAEF,IAAM,SAAS,GAAG,IAAA,mBAAW,EAC3B,UAAC,EAAU;QACT,UAAU,CAAC,UAAC,GAAG,IAAK,uCAAI,GAAG,UAAE,EAAE,EAAE,IAAA,EAAE,WAAf,CAAgB,CAAC,CAAC;QAEtC,OAAO;YACL,UAAU,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,EAAE,KAAK,EAAE,EAAX,CAAW,CAAC,EAA9B,CAA8B,CAAC,CAAC;QACtD,CAAC,CAAC;IACJ,CAAC,EACD,CAAC,UAAU,CAAC,CACb,CAAC;IAEF,IAAM,wBAAwB,GAAG,IAAA,mBAAW,EAC1C,UAAC,EAAU,EAAE,OAAoC;QAC/C,UAAU,CAAC,UAAC,GAAG;YACb,OAAA,GAAG,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAM,CAAC,KAAE,OAAO,SAAA,GAAE,CAAC,EAArC,CAAqC,CAAC;QAArD,CAAqD,CACtD,CAAC;IACJ,CAAC,EACD,CAAC,UAAU,CAAC,CACb,CAAC;IAEF,IAAM,UAAU,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAC;IAEhD,IAAM,aAAa,GAAG,IAAA,mBAAW,EAC/B,UAAC,KAA0C;QACzC,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;YAC1B,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,SAAS,EAAE,CAAC;SACb;QAED,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YAChD,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YAExB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;gBACvB,OAAO;aACR;YAED,IAAM,KAAK,GAAG,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAE/C,IAAM,gBAAc,GAAG,UAAU,CAAC,OAAO,CAAC,aAAa,CACrD,WAAI,gCAAC,CAAC,qCAAqC,CAAC,CAAE,CAC/C,CAAC;YAEF,IAAI,UAAU,SAAgB,CAAC;YAE/B,IAAI,CAAC,gBAAc,EAAE;gBACnB,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,aAAa,CAC3C,WAAI,gCAAC,CAAC,sBAAsB,CAAE,CAC/B,CAAC;aACH;iBAAM;gBACL,IAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CACzB,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAI,gCAAC,CAAC,sBAAsB,CAAE,CAAC,CACpE,CAAC;gBACF,IAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAC,EAAE,IAAK,OAAA,EAAE,KAAK,gBAAc,EAArB,CAAqB,CAAC,CAAC;gBAChE,IAAM,SAAS,GACb,KAAK,GAAG,KAAK,GAAG,CAAC;oBACf,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;oBACrB,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;gBACxC,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACjC,gBAAc,CAAC,SAAS,CAAC,MAAM,CAC7B,gCAAC,CAAC,qCAAqC,CAAC,CACzC,CAAC;aACH;YAED,IAAI,UAAU,EAAE;gBACd,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,gCAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC;gBAEnE,IAAA,oCAAc,EAAC,UAAU,EAAE;oBACzB,UAAU,EAAE,WAAW;oBACvB,QAAQ,EAAE,MAAM;iBACjB,CAAC,CAAC;aACJ;SACF;QAED,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;YACzB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YAExB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;gBACvB,OAAO;aACR;YAED,IAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,aAAa,CACrD,WAAI,gCAAC,CAAC,qCAAqC,CAAC,CAAE,CAC/C,CAAC;YAEF,IAAI,cAAc,EAAE;gBAClB,IAAM,IAAE,GAAI,cAAoC,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAClE,IAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,EAAE,KAAK,IAAE,EAAX,CAAW,CAAC,CAAC;gBAChD,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,EAAE;oBACnB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;iBACvB;aACF;SACF;IACH,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEI,IAAA,KAA+B,IAAA,uCAAS,EAAC;QAC7C,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,KAAK;KACnB,CAAC,EAJK,WAAW,QAAA,EAAE,MAAM,QAAA,EAAE,KAAK,QAI/B,CAAC;IAEH,IAAM,SAAS,GAAG,IAAA,iBAAS,GAAkB,CAAC;IAC9C,IAAM,OAAO,GAAG,IAAA,iBAAS,GAAkB,CAAC;IAE5C,IAAM,UAAU,GAAG,IAAA,mBAAW,EAAC;QAC7B,IAAI,OAAO,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE;YACxC,IAAM,mBAAmB,GACvB,iBAAiB,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,mBAAmB,EAAE,CAAC;YACtD,WAAW,CACT,OAAO,CAAC,OAAO,EACf,SAAS,CAAC,OAAO,EACjB,SAAS,EACT,mBAAmB,CACpB,CAAC;SACH;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAEpC,IAAA,iBAAS,EAAC;QACR,UAAU,EAAE,CAAC;IACf,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,iBAAiB,CAAC,CAAC,CAAC;IAEvC,IAAA,iBAAS,EAAC;QACR,IAAI,OAAO,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE;YACxC,IAAM,gBAAc,GAAG,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;YACtD,gBAAc,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxC,gBAAc,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAE1C,OAAO;gBACL,gBAAc,CAAC,UAAU,EAAE,CAAC;YAC9B,CAAC,CAAC;SACH;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAE1B,IAAA,iBAAS,EAAC;QACR,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC9C,OAAO,cAAM,OAAA,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAhD,CAAgD,CAAC;IAChE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,OAAO,CACL;QACE,uCACE,GAAG,EAAE,IAAA,qBAAS,EAAC,WAAW,EAAE,SAAS,CAAC,EACtC,SAAS,EAAE,gCAAC,CAAC,gBAAgB,GAC7B;QACF,8BAAC,oBAAoB,IAAC,GAAG,EAAE,OAAO;YAChC,uCAAK,SAAS,EAAE,gCAAC,CAAC,cAAc;gBAC7B,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CACrB,uCAAK,SAAS,EAAE,gCAAC,CAAC,sBAAsB;oBACtC,yCACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,UAAU,IAAI,EAAE,EACvB,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,aAAa,EACxB,WAAW,EAAC,WAAW,EACvB,SAAS,EAAE,gCAAC,CAAC,6BAA6B,GAC1C,CACE,CACP;gBACD,8BAAC,yBAAW,CAAC,QAAQ,IACnB,KAAK,EAAE,EAAE,UAAU,YAAA,EAAE,SAAS,WAAA,EAAE,wBAAwB,0BAAA,EAAE;oBAE1D,uCAAK,SAAS,EAAE,gCAAC,CAAC,qBAAqB,EAAE,GAAG,EAAE,UAAU,IACrD,QAAQ,CAAC,CAAC,CAAC,CACV,QAAQ,CACT,CAAC,CAAC,CAAC,CACF,uCAAK,SAAS,EAAE,gCAAC,CAAC,8BAA8B,IAC7C,QAAQ,CACL,CACP,CACG,CACe,CACnB,CACe,CACtB,CACJ,CAAC;AACJ,CAAC,CAAC;AAjNW,QAAA,IAAI,QAiNf"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { RenderMethods, RenderProperties } from 'datocms-plugin-sdk';
|
|
2
2
|
import React, { type ReactNode } from 'react';
|
|
3
|
-
declare type
|
|
4
|
-
export declare const CtxContext: React.Context<
|
|
5
|
-
export declare function useCtx<T extends
|
|
3
|
+
export declare type BaseCtx = RenderProperties & RenderMethods;
|
|
4
|
+
export declare const CtxContext: React.Context<BaseCtx | null>;
|
|
5
|
+
export declare function useCtx<T extends BaseCtx>(): T;
|
|
6
6
|
export declare type CanvasProps = {
|
|
7
|
-
ctx:
|
|
7
|
+
ctx: BaseCtx;
|
|
8
8
|
noAutoResizer?: boolean;
|
|
9
9
|
children: ReactNode;
|
|
10
10
|
};
|
|
@@ -501,4 +501,3 @@ export declare type CanvasProps = {
|
|
|
501
501
|
* ```
|
|
502
502
|
*/
|
|
503
503
|
export declare function Canvas({ ctx, children, noAutoResizer, }: CanvasProps): JSX.Element;
|
|
504
|
-
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Canvas/index.tsx"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAMpC,OAAO,KAAK,EAAE,EACZ,aAAa,EAEb,UAAU,EACV,SAAS,GACV,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,CAAC,MAAM,0BAA0B,CAAC;AAIzC,8DAA8D;AAC9D,MAAM,CAAC,IAAM,UAAU,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Canvas/index.tsx"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAMpC,OAAO,KAAK,EAAE,EACZ,aAAa,EAEb,UAAU,EACV,SAAS,GACV,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,CAAC,MAAM,0BAA0B,CAAC;AAIzC,8DAA8D;AAC9D,MAAM,CAAC,IAAM,UAAU,GAAG,aAAa,CAAiB,IAAI,CAAC,CAAC;AAE9D,MAAM,UAAU,MAAM;IACpB,IAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAEnC,IAAI,CAAC,GAAG,EAAE;QACR,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;KAChD;IAED,OAAO,GAAQ,CAAC;AAClB,CAAC;AAQD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2eG;AAEH,MAAM,UAAU,MAAM,CAAC,EAIT;QAHZ,GAAG,SAAA,EACH,QAAQ,cAAA,EACR,aAAa,mBAAA;IAEL,IAAA,IAAI,GAAK,GAAkC,KAAvC,CAAwC;IAEpD,SAAS,CAAC;QACR,IACE,CAAC,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YACvD,CAAC,aAAa,EACd;YACA,IAAM,oBAAkB,GAAG,GAAiC,CAAC;YAC7D,oBAAkB,CAAC,gBAAgB,EAAE,CAAC;YAEtC,OAAO;gBACL,oBAAkB,CAAC,eAAe,EAAE,CAAC;YACvC,CAAC,CAAC;SACH;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;IAE1B,OAAO,CACL,oBAAC,UAAU,CAAC,QAAQ,IAAC,KAAK,EAAE,GAAG;QAC7B,6BACE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,EACjD,KAAK,EAAE,oBAAoB,CAAC,GAAG,CAAC,IAE/B,QAAQ,CACL,CACc,CACvB,CAAC;AACJ,CAAC"}
|
|
@@ -21,12 +21,16 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
21
21
|
import React, { createRef, useCallback, useContext, useEffect, useRef, useState, } from 'react';
|
|
22
22
|
import { useInView } from 'react-intersection-observer';
|
|
23
23
|
import scrollIntoView from 'scroll-into-view-if-needed';
|
|
24
|
+
import { useCtx } from '../Canvas';
|
|
24
25
|
import { mergeRefs } from '../mergeRefs';
|
|
25
26
|
import { DropdownContext } from './DropdownContext';
|
|
26
27
|
import { Group } from './Group';
|
|
27
28
|
import { MenuContext } from './MenuContext';
|
|
28
29
|
import { Portal } from './Portal';
|
|
29
30
|
import s from './styles.module.css.json';
|
|
31
|
+
function ctxHasSizingUtils(ctx) {
|
|
32
|
+
return 'isAutoResizerActive' in ctx;
|
|
33
|
+
}
|
|
30
34
|
var MenuDesktopContainer = React.forwardRef(function (_a, ref) {
|
|
31
35
|
var children = _a.children;
|
|
32
36
|
return (React.createElement(Portal, null,
|
|
@@ -44,7 +48,7 @@ function getAbsoluteWidth(el) {
|
|
|
44
48
|
Number.parseFloat(styles.marginRight);
|
|
45
49
|
return Math.ceil(el.offsetWidth + margin);
|
|
46
50
|
}
|
|
47
|
-
function setPosition(panel, parent, alignment) {
|
|
51
|
+
function setPosition(panel, parent, alignment, isAutoResizerActive) {
|
|
48
52
|
var rect = parent.getBoundingClientRect();
|
|
49
53
|
var height = getAbsoluteHeight(panel);
|
|
50
54
|
var parentWidth = getAbsoluteWidth(parent);
|
|
@@ -80,12 +84,16 @@ function setPosition(panel, parent, alignment) {
|
|
|
80
84
|
if (spaceBelow > spaceAbove) {
|
|
81
85
|
// eslint-disable-next-line no-param-reassign
|
|
82
86
|
panel.style.top = "".concat(rect.bottom, "px");
|
|
83
|
-
|
|
87
|
+
if (!isAutoResizerActive) {
|
|
88
|
+
menu.style.maxHeight = "".concat(windowHeight - rect.bottom - marginTop - 10, "px");
|
|
89
|
+
}
|
|
84
90
|
}
|
|
85
91
|
else {
|
|
86
92
|
// eslint-disable-next-line no-param-reassign
|
|
87
93
|
panel.style.top = '0px';
|
|
88
|
-
|
|
94
|
+
if (!isAutoResizerActive) {
|
|
95
|
+
menu.style.maxHeight = "".concat(rect.top - marginTop, "px");
|
|
96
|
+
}
|
|
89
97
|
}
|
|
90
98
|
}
|
|
91
99
|
// eslint-disable-next-line no-param-reassign
|
|
@@ -93,6 +101,7 @@ function setPosition(panel, parent, alignment) {
|
|
|
93
101
|
}
|
|
94
102
|
export var Menu = function (_a) {
|
|
95
103
|
var children = _a.children, _b = _a.alignment, alignment = _b === void 0 ? 'left' : _b;
|
|
104
|
+
var ctx = useCtx();
|
|
96
105
|
var closeMenu = useContext(DropdownContext).closeMenu;
|
|
97
106
|
var childrenArray = React.Children.toArray(children);
|
|
98
107
|
var _c = useState(''), searchTerm = _c[0], setSearchTerm = _c[1];
|
|
@@ -175,7 +184,8 @@ export var Menu = function (_a) {
|
|
|
175
184
|
var menuRef = createRef();
|
|
176
185
|
var reposition = useCallback(function () {
|
|
177
186
|
if (menuRef.current && parentRef.current) {
|
|
178
|
-
|
|
187
|
+
var isAutoResizerActive = ctxHasSizingUtils(ctx) && ctx.isAutoResizerActive();
|
|
188
|
+
setPosition(menuRef.current, parentRef.current, alignment, isAutoResizerActive);
|
|
179
189
|
}
|
|
180
190
|
}, [menuRef, parentRef, alignment]);
|
|
181
191
|
useEffect(function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../src/Dropdown/Menu.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../src/Dropdown/Menu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { RenderMethods, RenderProperties } from 'datocms-plugin-sdk';
|
|
2
2
|
import React, { type ReactNode } from 'react';
|
|
3
|
-
declare type
|
|
4
|
-
export declare const CtxContext: React.Context<
|
|
5
|
-
export declare function useCtx<T extends
|
|
3
|
+
export declare type BaseCtx = RenderProperties & RenderMethods;
|
|
4
|
+
export declare const CtxContext: React.Context<BaseCtx | null>;
|
|
5
|
+
export declare function useCtx<T extends BaseCtx>(): T;
|
|
6
6
|
export declare type CanvasProps = {
|
|
7
|
-
ctx:
|
|
7
|
+
ctx: BaseCtx;
|
|
8
8
|
noAutoResizer?: boolean;
|
|
9
9
|
children: ReactNode;
|
|
10
10
|
};
|
|
@@ -501,4 +501,3 @@ export declare type CanvasProps = {
|
|
|
501
501
|
* ```
|
|
502
502
|
*/
|
|
503
503
|
export declare function Canvas({ ctx, children, noAutoResizer, }: CanvasProps): JSX.Element;
|
|
504
|
-
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "datocms-react-ui",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "React components to use inside DatoCMS plugins",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"datocms",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"classnames": "^2.3.1",
|
|
44
|
-
"datocms-plugin-sdk": "^1.1.
|
|
44
|
+
"datocms-plugin-sdk": "^1.1.1",
|
|
45
45
|
"react-intersection-observer": "^8.31.0",
|
|
46
46
|
"react-select": "^5.2.1",
|
|
47
47
|
"scroll-into-view-if-needed": "^2.2.20"
|
|
@@ -57,5 +57,5 @@
|
|
|
57
57
|
"postcss-nested": "^5.0.6",
|
|
58
58
|
"typedoc": "^0.23.20"
|
|
59
59
|
},
|
|
60
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "be1874771c3d79cab019d28eadf4b76ce03a3158"
|
|
61
61
|
}
|
package/src/Canvas/index.tsx
CHANGED
|
@@ -13,14 +13,12 @@ import React, {
|
|
|
13
13
|
import { generateStyleFromCtx } from '../generateStyleFromCtx';
|
|
14
14
|
import s from './styles.module.css.json';
|
|
15
15
|
|
|
16
|
-
type
|
|
16
|
+
export type BaseCtx = RenderProperties & RenderMethods;
|
|
17
17
|
|
|
18
18
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
19
|
-
export const CtxContext = createContext<
|
|
20
|
-
null,
|
|
21
|
-
);
|
|
19
|
+
export const CtxContext = createContext<BaseCtx | null>(null);
|
|
22
20
|
|
|
23
|
-
export function useCtx<T extends
|
|
21
|
+
export function useCtx<T extends BaseCtx>(): T {
|
|
24
22
|
const ctx = useContext(CtxContext);
|
|
25
23
|
|
|
26
24
|
if (!ctx) {
|
|
@@ -31,7 +29,7 @@ export function useCtx<T extends BaseRenderPropertiesAndMethods>(): T {
|
|
|
31
29
|
}
|
|
32
30
|
|
|
33
31
|
export type CanvasProps = {
|
|
34
|
-
ctx:
|
|
32
|
+
ctx: BaseCtx;
|
|
35
33
|
noAutoResizer?: boolean;
|
|
36
34
|
children: ReactNode;
|
|
37
35
|
};
|
package/src/Dropdown/Menu.tsx
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SizingUtilities } from 'datocms-plugin-sdk';
|
|
1
2
|
import React, {
|
|
2
3
|
createRef,
|
|
3
4
|
type SyntheticEvent,
|
|
@@ -9,6 +10,7 @@ import React, {
|
|
|
9
10
|
} from 'react';
|
|
10
11
|
import { useInView } from 'react-intersection-observer';
|
|
11
12
|
import scrollIntoView from 'scroll-into-view-if-needed';
|
|
13
|
+
import { BaseCtx, useCtx } from '../Canvas';
|
|
12
14
|
import { mergeRefs } from '../mergeRefs';
|
|
13
15
|
import { DropdownContext } from './DropdownContext';
|
|
14
16
|
import { Group } from './Group';
|
|
@@ -16,6 +18,10 @@ import { MenuContext } from './MenuContext';
|
|
|
16
18
|
import { Portal } from './Portal';
|
|
17
19
|
import s from './styles.module.css.json';
|
|
18
20
|
|
|
21
|
+
function ctxHasSizingUtils(ctx: BaseCtx): ctx is BaseCtx & SizingUtilities {
|
|
22
|
+
return 'isAutoResizerActive' in ctx;
|
|
23
|
+
}
|
|
24
|
+
|
|
19
25
|
const MenuDesktopContainer = React.forwardRef<
|
|
20
26
|
HTMLDivElement,
|
|
21
27
|
{ children: React.ReactNode }
|
|
@@ -51,6 +57,7 @@ function setPosition(
|
|
|
51
57
|
panel: HTMLElement,
|
|
52
58
|
parent: HTMLElement,
|
|
53
59
|
alignment: 'left' | 'right',
|
|
60
|
+
isAutoResizerActive: boolean,
|
|
54
61
|
) {
|
|
55
62
|
const rect = parent.getBoundingClientRect();
|
|
56
63
|
const height = getAbsoluteHeight(panel);
|
|
@@ -97,11 +104,19 @@ function setPosition(
|
|
|
97
104
|
if (spaceBelow > spaceAbove) {
|
|
98
105
|
// eslint-disable-next-line no-param-reassign
|
|
99
106
|
panel.style.top = `${rect.bottom}px`;
|
|
100
|
-
|
|
107
|
+
|
|
108
|
+
if (!isAutoResizerActive) {
|
|
109
|
+
menu.style.maxHeight = `${
|
|
110
|
+
windowHeight - rect.bottom - marginTop - 10
|
|
111
|
+
}px`;
|
|
112
|
+
}
|
|
101
113
|
} else {
|
|
102
114
|
// eslint-disable-next-line no-param-reassign
|
|
103
115
|
panel.style.top = '0px';
|
|
104
|
-
|
|
116
|
+
|
|
117
|
+
if (!isAutoResizerActive) {
|
|
118
|
+
menu.style.maxHeight = `${rect.top - marginTop}px`;
|
|
119
|
+
}
|
|
105
120
|
}
|
|
106
121
|
}
|
|
107
122
|
|
|
@@ -118,6 +133,7 @@ export const Menu = ({
|
|
|
118
133
|
children,
|
|
119
134
|
alignment = 'left',
|
|
120
135
|
}: MenuProps): JSX.Element => {
|
|
136
|
+
const ctx = useCtx();
|
|
121
137
|
const { closeMenu } = useContext(DropdownContext);
|
|
122
138
|
|
|
123
139
|
const childrenArray = React.Children.toArray(children);
|
|
@@ -251,7 +267,14 @@ export const Menu = ({
|
|
|
251
267
|
|
|
252
268
|
const reposition = useCallback(() => {
|
|
253
269
|
if (menuRef.current && parentRef.current) {
|
|
254
|
-
|
|
270
|
+
const isAutoResizerActive =
|
|
271
|
+
ctxHasSizingUtils(ctx) && ctx.isAutoResizerActive();
|
|
272
|
+
setPosition(
|
|
273
|
+
menuRef.current,
|
|
274
|
+
parentRef.current,
|
|
275
|
+
alignment,
|
|
276
|
+
isAutoResizerActive,
|
|
277
|
+
);
|
|
255
278
|
}
|
|
256
279
|
}, [menuRef, parentRef, alignment]);
|
|
257
280
|
|