se-design 1.0.88-dev → 1.0.90-dev.0
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/assets/icons/cloud-check.svg +4 -0
- package/dist/assets/style.css +1 -1
- package/dist/components/Icon/index.d.ts +5 -0
- package/dist/components/InputWithTags/index.d.ts +4 -1
- package/dist/components/SidebarOverlay/index.d.ts +0 -41
- package/dist/components/Tabs/index.d.ts +1 -0
- package/dist/components/Tooltip/index.d.ts +5 -1
- package/dist/index112.js +1 -1
- package/dist/index112.js.map +1 -1
- package/dist/index113.js +2 -2
- package/dist/index113.js.map +1 -1
- package/dist/index114.js +1 -1
- package/dist/index114.js.map +1 -1
- package/dist/index115.js +2 -2
- package/dist/index115.js.map +1 -1
- package/dist/index116.js +1 -1
- package/dist/index116.js.map +1 -1
- package/dist/index117.js +1 -1
- package/dist/index117.js.map +1 -1
- package/dist/index118.js +2 -2
- package/dist/index118.js.map +1 -1
- package/dist/index119.js +1 -1
- package/dist/index119.js.map +1 -1
- package/dist/index120.js +2 -2
- package/dist/index120.js.map +1 -1
- package/dist/index121.js +1 -1
- package/dist/index121.js.map +1 -1
- package/dist/index122.js +1 -1
- package/dist/index122.js.map +1 -1
- package/dist/index123.js +1 -1
- package/dist/index123.js.map +1 -1
- package/dist/index124.js +1 -1
- package/dist/index124.js.map +1 -1
- package/dist/index125.js +2 -2
- package/dist/index125.js.map +1 -1
- package/dist/index126.js +1 -1
- package/dist/index126.js.map +1 -1
- package/dist/index127.js +2 -2
- package/dist/index127.js.map +1 -1
- package/dist/index128.js +2 -2
- package/dist/index128.js.map +1 -1
- package/dist/index129.js +1 -1
- package/dist/index129.js.map +1 -1
- package/dist/index130.js +2 -2
- package/dist/index130.js.map +1 -1
- package/dist/index131.js +2 -2
- package/dist/index131.js.map +1 -1
- package/dist/index132.js +1 -1
- package/dist/index132.js.map +1 -1
- package/dist/index133.js +1 -1
- package/dist/index133.js.map +1 -1
- package/dist/index134.js +1 -1
- package/dist/index134.js.map +1 -1
- package/dist/index135.js +2 -2
- package/dist/index135.js.map +1 -1
- package/dist/index136.js +2 -2
- package/dist/index136.js.map +1 -1
- package/dist/index137.js +2 -2
- package/dist/index137.js.map +1 -1
- package/dist/index138.js +1 -1
- package/dist/index138.js.map +1 -1
- package/dist/index139.js +1 -1
- package/dist/index139.js.map +1 -1
- package/dist/index140.js +1 -1
- package/dist/index140.js.map +1 -1
- package/dist/index141.js +1 -1
- package/dist/index141.js.map +1 -1
- package/dist/index142.js +1 -1
- package/dist/index142.js.map +1 -1
- package/dist/index143.js +1 -1
- package/dist/index143.js.map +1 -1
- package/dist/index144.js +1 -1
- package/dist/index144.js.map +1 -1
- package/dist/index145.js +1 -1
- package/dist/index145.js.map +1 -1
- package/dist/index146.js +2 -2
- package/dist/index146.js.map +1 -1
- package/dist/index147.js +2 -2
- package/dist/index147.js.map +1 -1
- package/dist/index148.js +1 -1
- package/dist/index148.js.map +1 -1
- package/dist/index149.js +1 -1
- package/dist/index149.js.map +1 -1
- package/dist/index150.js +1 -1
- package/dist/index150.js.map +1 -1
- package/dist/index151.js +1 -1
- package/dist/index151.js.map +1 -1
- package/dist/index152.js +1 -1
- package/dist/index152.js.map +1 -1
- package/dist/index153.js +1 -1
- package/dist/index153.js.map +1 -1
- package/dist/index154.js +1 -1
- package/dist/index154.js.map +1 -1
- package/dist/index155.js +2 -2
- package/dist/index155.js.map +1 -1
- package/dist/index156.js +1 -1
- package/dist/index156.js.map +1 -1
- package/dist/index157.js +2 -2
- package/dist/index157.js.map +1 -1
- package/dist/index158.js +2 -2
- package/dist/index158.js.map +1 -1
- package/dist/index159.js +2 -2
- package/dist/index159.js.map +1 -1
- package/dist/index16.js +111 -107
- package/dist/index16.js.map +1 -1
- package/dist/index160.js +2 -2
- package/dist/index160.js.map +1 -1
- package/dist/index161.js +1 -1
- package/dist/index161.js.map +1 -1
- package/dist/index162.js +1 -1
- package/dist/index162.js.map +1 -1
- package/dist/index163.js +1 -1
- package/dist/index163.js.map +1 -1
- package/dist/index164.js +1 -1
- package/dist/index164.js.map +1 -1
- package/dist/index165.js +1 -1
- package/dist/index165.js.map +1 -1
- package/dist/index166.js +1 -1
- package/dist/index166.js.map +1 -1
- package/dist/index167.js +1 -1
- package/dist/index167.js.map +1 -1
- package/dist/index168.js +1 -1
- package/dist/index168.js.map +1 -1
- package/dist/index169.js +1 -1
- package/dist/index169.js.map +1 -1
- package/dist/index170.js +1 -1
- package/dist/index170.js.map +1 -1
- package/dist/index171.js +1 -1
- package/dist/index171.js.map +1 -1
- package/dist/index172.js +1 -1
- package/dist/index172.js.map +1 -1
- package/dist/index173.js +1 -1
- package/dist/index173.js.map +1 -1
- package/dist/index174.js +1 -1
- package/dist/index174.js.map +1 -1
- package/dist/index175.js +1 -1
- package/dist/index175.js.map +1 -1
- package/dist/index176.js +1 -1
- package/dist/index176.js.map +1 -1
- package/dist/index177.js +1 -1
- package/dist/index177.js.map +1 -1
- package/dist/index178.js +1 -1
- package/dist/index178.js.map +1 -1
- package/dist/index179.js +1 -1
- package/dist/index179.js.map +1 -1
- package/dist/index180.js +1 -1
- package/dist/index180.js.map +1 -1
- package/dist/index181.js +1 -1
- package/dist/index181.js.map +1 -1
- package/dist/index182.js +1 -1
- package/dist/index182.js.map +1 -1
- package/dist/index183.js +1 -1
- package/dist/index183.js.map +1 -1
- package/dist/index184.js +1 -1
- package/dist/index184.js.map +1 -1
- package/dist/index185.js +2 -2
- package/dist/index185.js.map +1 -1
- package/dist/index186.js +2 -2
- package/dist/index186.js.map +1 -1
- package/dist/index187.js +1 -1
- package/dist/index187.js.map +1 -1
- package/dist/index188.js +1 -1
- package/dist/index188.js.map +1 -1
- package/dist/index189.js +2 -2
- package/dist/index189.js.map +1 -1
- package/dist/index190.js +2 -2
- package/dist/index190.js.map +1 -1
- package/dist/index191.js +1 -1
- package/dist/index191.js.map +1 -1
- package/dist/index192.js +1 -1
- package/dist/index192.js.map +1 -1
- package/dist/index193.js +1 -1
- package/dist/index193.js.map +1 -1
- package/dist/index194.js +1 -1
- package/dist/index194.js.map +1 -1
- package/dist/index195.js +1 -1
- package/dist/index195.js.map +1 -1
- package/dist/index196.js +1 -1
- package/dist/index196.js.map +1 -1
- package/dist/index197.js +1 -1
- package/dist/index197.js.map +1 -1
- package/dist/index198.js +1 -1
- package/dist/index198.js.map +1 -1
- package/dist/index199.js +1 -1
- package/dist/index199.js.map +1 -1
- package/dist/index200.js +2 -2
- package/dist/index200.js.map +1 -1
- package/dist/index201.js +2 -2
- package/dist/index201.js.map +1 -1
- package/dist/index202.js +2 -2
- package/dist/index202.js.map +1 -1
- package/dist/index203.js +2 -149
- package/dist/index203.js.map +1 -1
- package/dist/index204.js +149 -9
- package/dist/index204.js.map +1 -1
- package/dist/index205.js +8 -5
- package/dist/index205.js.map +1 -1
- package/dist/index206.js +5 -4
- package/dist/index206.js.map +1 -1
- package/dist/index207.js +1 -1
- package/dist/index223.js +8 -0
- package/dist/index223.js.map +1 -0
- package/dist/{index224.js → index225.js} +1 -1
- package/dist/{index224.js.map → index225.js.map} +1 -1
- package/dist/index23.js +16 -16
- package/dist/index23.js.map +1 -1
- package/dist/{index232.js → index233.js} +1 -1
- package/dist/{index232.js.map → index233.js.map} +1 -1
- package/dist/{index235.js → index236.js} +1 -1
- package/dist/{index235.js.map → index236.js.map} +1 -1
- package/dist/index245.js +169 -3
- package/dist/index245.js.map +1 -1
- package/dist/index246.js +7 -0
- package/dist/index246.js.map +1 -0
- package/dist/index248.js +18 -9
- package/dist/index248.js.map +1 -1
- package/dist/index249.js +9 -9
- package/dist/index249.js.map +1 -1
- package/dist/index25.js +2 -1
- package/dist/index25.js.map +1 -1
- package/dist/index250.js +9 -4
- package/dist/index250.js.map +1 -1
- package/dist/index251.js +5 -170
- package/dist/index251.js.map +1 -1
- package/dist/index252.js +170 -11
- package/dist/index252.js.map +1 -1
- package/dist/index253.js +11 -6
- package/dist/index253.js.map +1 -1
- package/dist/index254.js +5 -5
- package/dist/index254.js.map +1 -1
- package/dist/index255.js +5 -37
- package/dist/index255.js.map +1 -1
- package/dist/index256.js +38 -2
- package/dist/index256.js.map +1 -1
- package/dist/index257.js +2 -8
- package/dist/index257.js.map +1 -1
- package/dist/index258.js +7 -326
- package/dist/index258.js.map +1 -1
- package/dist/index259.js +324 -47
- package/dist/index259.js.map +1 -1
- package/dist/index260.js +50 -2
- package/dist/index260.js.map +1 -1
- package/dist/index261.js +2 -76
- package/dist/index261.js.map +1 -1
- package/dist/index262.js +65 -82
- package/dist/index262.js.map +1 -1
- package/dist/index263.js +89 -48
- package/dist/index263.js.map +1 -1
- package/dist/index264.js +51 -7
- package/dist/index264.js.map +1 -1
- package/dist/index265.js +7 -4
- package/dist/index265.js.map +1 -1
- package/dist/index266.js +4 -51
- package/dist/index266.js.map +1 -1
- package/dist/index267.js +52 -2
- package/dist/index267.js.map +1 -1
- package/dist/index268.js +2 -2
- package/dist/index269.js +5 -0
- package/dist/index269.js.map +1 -0
- package/dist/index28.js +88 -149
- package/dist/index28.js.map +1 -1
- package/dist/index29.js +72 -71
- package/dist/index29.js.map +1 -1
- package/dist/index30.js +1 -1
- package/dist/index33.js +1 -1
- package/dist/index35.js +1 -1
- package/dist/index36.js +1 -1
- package/dist/index37.js +61 -37
- package/dist/index37.js.map +1 -1
- package/dist/index38.js +163 -162
- package/dist/index38.js.map +1 -1
- package/dist/index39.js +55 -51
- package/dist/index39.js.map +1 -1
- package/dist/index4.js +66 -61
- package/dist/index4.js.map +1 -1
- package/dist/index40.js +1 -1
- package/dist/index45.js +39 -38
- package/dist/index45.js.map +1 -1
- package/dist/index46.js +52 -51
- package/dist/index46.js.map +1 -1
- package/dist/index49.js +1 -1
- package/dist/index51.js +1 -1
- package/dist/index52.js +1 -1
- package/dist/index53.js +1 -1
- package/dist/index57.js +1 -1
- package/dist/index6.js +305 -299
- package/dist/index6.js.map +1 -1
- package/dist/index61.js +1 -1
- package/dist/index63.js +1 -1
- package/dist/index65.js +1 -1
- package/dist/index7.js +1 -1
- package/dist/index79.js +1 -1
- package/dist/index81.js +9 -7
- package/dist/index81.js.map +1 -1
- package/dist/index9.js +20 -20
- package/dist/index9.js.map +1 -1
- package/package.json +1 -1
- package/dist/index244.js +0 -173
- package/dist/index244.js.map +0 -1
- package/dist/index247.js +0 -22
- package/dist/index247.js.map +0 -1
package/dist/index267.js
CHANGED
|
@@ -1,5 +1,55 @@
|
|
|
1
|
-
|
|
1
|
+
import { __require as E } from "./index265.js";
|
|
2
|
+
import { __require as _ } from "./index266.js";
|
|
3
|
+
var f, v;
|
|
4
|
+
function P() {
|
|
5
|
+
if (v) return f;
|
|
6
|
+
v = 1;
|
|
7
|
+
var o = function() {
|
|
8
|
+
};
|
|
9
|
+
if (process.env.NODE_ENV !== "production") {
|
|
10
|
+
var y = E(), t = {}, d = _();
|
|
11
|
+
o = function(n) {
|
|
12
|
+
var a = "Warning: " + n;
|
|
13
|
+
typeof console < "u" && console.error(a);
|
|
14
|
+
try {
|
|
15
|
+
throw new Error(a);
|
|
16
|
+
} catch {
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function u(n, a, i, s, c) {
|
|
21
|
+
if (process.env.NODE_ENV !== "production") {
|
|
22
|
+
for (var e in n)
|
|
23
|
+
if (d(n, e)) {
|
|
24
|
+
var r;
|
|
25
|
+
try {
|
|
26
|
+
if (typeof n[e] != "function") {
|
|
27
|
+
var h = Error(
|
|
28
|
+
(s || "React class") + ": " + i + " type `" + e + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof n[e] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`."
|
|
29
|
+
);
|
|
30
|
+
throw h.name = "Invariant Violation", h;
|
|
31
|
+
}
|
|
32
|
+
r = n[e](a, e, s, i, null, y);
|
|
33
|
+
} catch (l) {
|
|
34
|
+
r = l;
|
|
35
|
+
}
|
|
36
|
+
if (r && !(r instanceof Error) && o(
|
|
37
|
+
(s || "React class") + ": type specification of " + i + " `" + e + "` is invalid; the type checker function must return `null` or an `Error` but returned a " + typeof r + ". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."
|
|
38
|
+
), r instanceof Error && !(r.message in t)) {
|
|
39
|
+
t[r.message] = !0;
|
|
40
|
+
var p = c ? c() : "";
|
|
41
|
+
o(
|
|
42
|
+
"Failed " + i + " type: " + r.message + (p ?? "")
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return u.resetWarningCache = function() {
|
|
49
|
+
process.env.NODE_ENV !== "production" && (t = {});
|
|
50
|
+
}, f = u, f;
|
|
51
|
+
}
|
|
2
52
|
export {
|
|
3
|
-
|
|
53
|
+
P as __require
|
|
4
54
|
};
|
|
5
55
|
//# sourceMappingURL=index267.js.map
|
package/dist/index267.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index267.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
1
|
+
{"version":3,"file":"index267.js","sources":["../node_modules/prop-types/checkPropTypes.js"],"sourcesContent":["/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n"],"names":["printWarning","ReactPropTypesSecret","require$$0","loggedTypeFailures","has","require$$1","text","message","checkPropTypes","typeSpecs","values","location","componentName","getStack","typeSpecName","error","err","ex","stack","checkPropTypes_1"],"mappings":";;;;;;AASA,MAAIA,IAAe,WAAW;AAAA,EAAA;AAE9B,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,QAAIC,IAAuBC,EAAA,GACvBC,IAAqB,CAAA,GACrBC,IAAMC,EAAA;AAEV,IAAAL,IAAe,SAASM,GAAM;AAC5B,UAAIC,IAAU,cAAcD;AAC5B,MAAI,OAAO,UAAY,OACrB,QAAQ,MAAMC,CAAO;AAEvB,UAAI;AAIF,cAAM,IAAI,MAAMA,CAAO;AAAA,MAC7B,QAAgB;AAAA,MAAA;AAAA,IAChB;AAAA,EACA;AAaA,WAASC,EAAeC,GAAWC,GAAQC,GAAUC,GAAeC,GAAU;AAC5E,QAAI,QAAQ,IAAI,aAAa;AAC3B,eAASC,KAAgBL;AACvB,YAAIL,EAAIK,GAAWK,CAAY,GAAG;AAChC,cAAIC;AAIJ,cAAI;AAGF,gBAAI,OAAON,EAAUK,CAAY,KAAM,YAAY;AACjD,kBAAIE,IAAM;AAAA,iBACPJ,KAAiB,iBAAiB,OAAOD,IAAW,YAAYG,IAAe,+FACC,OAAOL,EAAUK,CAAY,IAAI;AAAA,cAEhI;AACY,oBAAAE,EAAI,OAAO,uBACLA;AAAA,YAClB;AACU,YAAAD,IAAQN,EAAUK,CAAY,EAAEJ,GAAQI,GAAcF,GAAeD,GAAU,MAAMV,CAAoB;AAAA,UACnH,SAAiBgB,GAAI;AACX,YAAAF,IAAQE;AAAA,UAClB;AAWQ,cAVIF,KAAS,EAAEA,aAAiB,UAC9Bf;AAAA,aACGY,KAAiB,iBAAiB,6BACnCD,IAAW,OAAOG,IAAe,6FAC6B,OAAOC,IAAQ;AAAA,UAIzF,GAEYA,aAAiB,SAAS,EAAEA,EAAM,WAAWZ,IAAqB;AAGpE,YAAAA,EAAmBY,EAAM,OAAO,IAAI;AAEpC,gBAAIG,IAAQL,IAAWA,EAAQ,IAAK;AAEpC,YAAAb;AAAA,cACE,YAAYW,IAAW,YAAYI,EAAM,WAAWG,KAAwB;AAAA,YACxF;AAAA,UACA;AAAA,QACA;AAAA;AAAA,EAGA;AAOA,SAAAV,EAAe,oBAAoB,WAAW;AAC5C,IAAI,QAAQ,IAAI,aAAa,iBAC3BL,IAAqB,CAAA;AAAA,EAEzB,GAEAgB,IAAiBX;;","x_google_ignoreList":[0]}
|
package/dist/index268.js
CHANGED
package/dist/index269.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index269.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
package/dist/index28.js
CHANGED
|
@@ -1,175 +1,114 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { Icon as
|
|
3
|
-
import { getA11yNameAttributes as
|
|
4
|
-
import { useFocusTrap as
|
|
5
|
-
import { useDismissOnEscape as
|
|
6
|
-
import { useFocusSentinel as
|
|
1
|
+
import i, { useMemo as K, useRef as j, useEffect as m } from "react";
|
|
2
|
+
import { Icon as M } from "./index6.js";
|
|
3
|
+
import { getA11yNameAttributes as $ } from "./index81.js";
|
|
4
|
+
import { useFocusTrap as k } from "./index72.js";
|
|
5
|
+
import { useDismissOnEscape as z } from "./index215.js";
|
|
6
|
+
import { useFocusSentinel as T } from "./index216.js";
|
|
7
7
|
/* empty css */
|
|
8
|
-
function
|
|
9
|
-
return
|
|
10
|
-
for (var
|
|
11
|
-
var
|
|
12
|
-
for (var r in
|
|
8
|
+
function u() {
|
|
9
|
+
return u = Object.assign ? Object.assign.bind() : function(s) {
|
|
10
|
+
for (var n = 1; n < arguments.length; n++) {
|
|
11
|
+
var o = arguments[n];
|
|
12
|
+
for (var r in o) ({}).hasOwnProperty.call(o, r) && (s[r] = o[r]);
|
|
13
13
|
}
|
|
14
|
-
return
|
|
15
|
-
},
|
|
14
|
+
return s;
|
|
15
|
+
}, u.apply(null, arguments);
|
|
16
16
|
}
|
|
17
|
-
const
|
|
17
|
+
const W = (s) => {
|
|
18
18
|
const {
|
|
19
|
-
content:
|
|
20
|
-
className:
|
|
19
|
+
content: n,
|
|
20
|
+
className: o = "",
|
|
21
21
|
alignment: r,
|
|
22
|
-
noShadow:
|
|
23
|
-
position:
|
|
24
|
-
isOpen:
|
|
25
|
-
displayCloseSidebar:
|
|
26
|
-
onClose:
|
|
27
|
-
onSidebarUnmount:
|
|
28
|
-
onPathChange:
|
|
29
|
-
style:
|
|
30
|
-
automationId:
|
|
22
|
+
noShadow: E,
|
|
23
|
+
position: f = "fixed",
|
|
24
|
+
isOpen: e,
|
|
25
|
+
displayCloseSidebar: R,
|
|
26
|
+
onClose: l,
|
|
27
|
+
onSidebarUnmount: b,
|
|
28
|
+
onPathChange: y,
|
|
29
|
+
style: d,
|
|
30
|
+
automationId: C,
|
|
31
31
|
id: N,
|
|
32
|
-
currentPath:
|
|
33
|
-
closeSidebarIcon:
|
|
34
|
-
closeAriaLabel:
|
|
35
|
-
animateSidebar:
|
|
36
|
-
a11yRole:
|
|
37
|
-
ariaLabel:
|
|
38
|
-
ariaLabelledBy:
|
|
39
|
-
ariaDescribedBy:
|
|
40
|
-
returnFocusRef:
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
ariaLabelledBy: K,
|
|
52
|
-
ariaDescribedBy: O
|
|
53
|
-
}), [k, K, O]), I = h(null);
|
|
54
|
-
f(() => () => {
|
|
55
|
-
x && x();
|
|
56
|
-
}, []), f(() => {
|
|
57
|
-
if (o)
|
|
58
|
-
return document.body.style.overflow = t ? "hidden" : "", () => {
|
|
32
|
+
currentPath: p = "",
|
|
33
|
+
closeSidebarIcon: D = "close",
|
|
34
|
+
closeAriaLabel: O = "Close sidebar",
|
|
35
|
+
animateSidebar: P = !0,
|
|
36
|
+
a11yRole: x,
|
|
37
|
+
ariaLabel: g,
|
|
38
|
+
ariaLabelledBy: v,
|
|
39
|
+
ariaDescribedBy: h,
|
|
40
|
+
returnFocusRef: w
|
|
41
|
+
} = s, S = x ?? "complementary", t = S === "dialog", F = K(() => $({
|
|
42
|
+
ariaLabel: g,
|
|
43
|
+
ariaLabelledBy: v,
|
|
44
|
+
ariaDescribedBy: h
|
|
45
|
+
}), [g, v, h]), c = j(null);
|
|
46
|
+
m(() => () => {
|
|
47
|
+
b && b();
|
|
48
|
+
}, []), m(() => {
|
|
49
|
+
if (t)
|
|
50
|
+
return document.body.style.overflow = e ? "hidden" : "", () => {
|
|
59
51
|
document.body.style.overflow = "";
|
|
60
52
|
};
|
|
61
|
-
}, [
|
|
62
|
-
|
|
63
|
-
}, [
|
|
53
|
+
}, [e, t]), m(() => {
|
|
54
|
+
y && y(p);
|
|
55
|
+
}, [p]);
|
|
64
56
|
const {
|
|
65
|
-
onKeyDown:
|
|
66
|
-
} =
|
|
67
|
-
onDismiss:
|
|
68
|
-
enabled:
|
|
57
|
+
onKeyDown: I
|
|
58
|
+
} = z({
|
|
59
|
+
onDismiss: l,
|
|
60
|
+
enabled: e
|
|
69
61
|
});
|
|
70
|
-
|
|
71
|
-
enabled: !!(
|
|
72
|
-
containerRef:
|
|
62
|
+
k({
|
|
63
|
+
enabled: !!(t && e && l),
|
|
64
|
+
containerRef: c,
|
|
73
65
|
restoreFocus: !0,
|
|
74
66
|
initialFocus: "first",
|
|
75
|
-
returnFocusRef:
|
|
67
|
+
returnFocusRef: w
|
|
76
68
|
});
|
|
77
69
|
const {
|
|
78
|
-
startSentinelProps:
|
|
79
|
-
endSentinelProps:
|
|
80
|
-
} =
|
|
81
|
-
isOpen:
|
|
82
|
-
isModal:
|
|
83
|
-
containerRef:
|
|
84
|
-
returnFocusRef:
|
|
85
|
-
}),
|
|
86
|
-
|
|
87
|
-
return
|
|
88
|
-
},
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
b && w((e) => c(e));
|
|
93
|
-
}, [b, c]), f(() => {
|
|
94
|
-
if (!S) return;
|
|
95
|
-
const e = document.body.style.userSelect, i = document.body.style.cursor;
|
|
96
|
-
return document.body.style.userSelect = "none", document.body.style.cursor = "col-resize", () => {
|
|
97
|
-
document.body.style.userSelect = e, document.body.style.cursor = i;
|
|
98
|
-
};
|
|
99
|
-
}, [S]);
|
|
100
|
-
const ie = (e) => {
|
|
101
|
-
e.preventDefault(), e.stopPropagation(), e.currentTarget.setPointerCapture(e.pointerId), C.current = e.clientX, M.current = n.current, P.current = !0, F(!0);
|
|
102
|
-
}, ae = (e) => {
|
|
103
|
-
if (!P.current) return;
|
|
104
|
-
const i = r === "left" ? e.clientX - C.current : C.current - e.clientX, d = c(M.current + i);
|
|
105
|
-
w(d), L && L(d);
|
|
106
|
-
}, B = (e) => {
|
|
107
|
-
P.current && (P.current = !1, e.currentTarget.hasPointerCapture(e.pointerId) && e.currentTarget.releasePointerCapture(e.pointerId), F(!1), l && l(n.current));
|
|
108
|
-
}, se = (e) => {
|
|
109
|
-
const i = r === "left" ? "ArrowRight" : "ArrowLeft", d = r === "left" ? "ArrowLeft" : "ArrowRight";
|
|
110
|
-
let u = null;
|
|
111
|
-
if (e.key === i ? u = n.current + X : e.key === d ? u = n.current - X : e.key === "Home" ? u = s ?? n.current : e.key === "End" && (u = z ?? n.current), u === null) return;
|
|
112
|
-
e.preventDefault();
|
|
113
|
-
const U = c(u);
|
|
114
|
-
w(U), l && l(U);
|
|
115
|
-
}, le = () => {
|
|
116
|
-
const e = c(s ?? n.current);
|
|
117
|
-
w(e), l && l(e);
|
|
118
|
-
}, ce = () => {
|
|
119
|
-
let e = "se-design-sidebar-overlay-container z-[1000]";
|
|
120
|
-
return e += a.length > 0 ? ` ${a}` : "", e += r === "left" ? " left-aligned" : " right-aligned", e += j ? " no-shadow" : "", e += D.length > 0 ? ` ${D}` : "", e += t ? " open-sidebar" : " closed-sidebar", e += b ? " resizable" : "", e += S ? " is-resizing" : "", q || (e += t ? "" : " hidden"), e;
|
|
121
|
-
}, de = () => b ? {
|
|
122
|
-
...R,
|
|
123
|
-
width: t ? `${p}px` : "0px"
|
|
124
|
-
} : {
|
|
125
|
-
...R,
|
|
126
|
-
...t && R?.width ? {
|
|
127
|
-
width: R?.width
|
|
70
|
+
startSentinelProps: _,
|
|
71
|
+
endSentinelProps: A
|
|
72
|
+
} = T({
|
|
73
|
+
isOpen: e,
|
|
74
|
+
isModal: t,
|
|
75
|
+
containerRef: c,
|
|
76
|
+
returnFocusRef: w
|
|
77
|
+
}), L = () => {
|
|
78
|
+
let a = "se-design-sidebar-overlay-container z-[1000]";
|
|
79
|
+
return a += o.length > 0 ? ` ${o}` : "", a += r === "left" ? " left-aligned" : " right-aligned", a += E ? " no-shadow" : "", a += f.length > 0 ? ` ${f}` : "", a += e ? " open-sidebar" : " closed-sidebar", P || (a += e ? "" : " hidden"), a;
|
|
80
|
+
}, B = () => ({
|
|
81
|
+
...d,
|
|
82
|
+
...e && d?.width ? {
|
|
83
|
+
width: d?.width
|
|
128
84
|
} : {
|
|
129
85
|
width: "0px"
|
|
130
86
|
}
|
|
131
|
-
};
|
|
132
|
-
return /* @__PURE__ */
|
|
133
|
-
ref:
|
|
87
|
+
});
|
|
88
|
+
return /* @__PURE__ */ i.createElement("div", u({
|
|
89
|
+
ref: c,
|
|
134
90
|
id: N,
|
|
135
|
-
className:
|
|
136
|
-
style:
|
|
137
|
-
"data-automation-id":
|
|
91
|
+
className: L(),
|
|
92
|
+
style: B(),
|
|
93
|
+
"data-automation-id": C,
|
|
138
94
|
tabIndex: -1,
|
|
139
|
-
role:
|
|
140
|
-
"aria-modal":
|
|
141
|
-
"aria-hidden":
|
|
142
|
-
},
|
|
143
|
-
onKeyDown:
|
|
144
|
-
inert:
|
|
145
|
-
}),
|
|
146
|
-
className: `se-design-sidebar-overlay-resize-handle${S ? " is-resizing" : ""}`,
|
|
147
|
-
role: "separator",
|
|
148
|
-
"aria-orientation": "vertical",
|
|
149
|
-
"aria-label": Q,
|
|
150
|
-
"aria-controls": N,
|
|
151
|
-
"aria-valuenow": p,
|
|
152
|
-
"aria-valuemin": s,
|
|
153
|
-
"aria-valuemax": z,
|
|
154
|
-
tabIndex: 0,
|
|
155
|
-
onPointerDown: ie,
|
|
156
|
-
onPointerMove: ae,
|
|
157
|
-
onPointerUp: B,
|
|
158
|
-
onPointerCancel: B,
|
|
159
|
-
onKeyDown: se,
|
|
160
|
-
onDoubleClick: le,
|
|
161
|
-
"data-automation-id": ee
|
|
162
|
-
}), /* @__PURE__ */ m.createElement("div", {
|
|
95
|
+
role: S,
|
|
96
|
+
"aria-modal": t ? "true" : void 0,
|
|
97
|
+
"aria-hidden": e ? void 0 : "true"
|
|
98
|
+
}, F, {
|
|
99
|
+
onKeyDown: I,
|
|
100
|
+
inert: e ? void 0 : ""
|
|
101
|
+
}), /* @__PURE__ */ i.createElement("div", {
|
|
163
102
|
className: "overlay-content"
|
|
164
|
-
}, !
|
|
165
|
-
name:
|
|
166
|
-
onClick:
|
|
103
|
+
}, !t && /* @__PURE__ */ i.createElement("div", _), R && /* @__PURE__ */ i.createElement(M, {
|
|
104
|
+
name: D,
|
|
105
|
+
onClick: l,
|
|
167
106
|
className: "overlay-close",
|
|
168
|
-
ariaLabel:
|
|
107
|
+
ariaLabel: O,
|
|
169
108
|
automationId: "sidebar_overlay_close"
|
|
170
|
-
}),
|
|
109
|
+
}), n, !t && /* @__PURE__ */ i.createElement("div", A)));
|
|
171
110
|
};
|
|
172
111
|
export {
|
|
173
|
-
|
|
112
|
+
W as SidebarOverlay
|
|
174
113
|
};
|
|
175
114
|
//# sourceMappingURL=index28.js.map
|
package/dist/index28.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index28.js","sources":["../src/components/SidebarOverlay/index.tsx"],"sourcesContent":["import React, { FC, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { Icon } from 'components/Icon';\nimport { getA11yNameAttributes, useFocusTrap, useDismissOnEscape } from '../../utils/a11y';\nimport { useFocusSentinel } from '../../utils/a11y/useFocusSentinel';\n\nimport './style.scss';\n\ntype SidebarOverlayA11yRole = 'dialog' | 'complementary';\n\nconst RESIZE_KEYBOARD_STEP = 16;\n\nexport interface SidebarOverlayProps {\n content: React.ReactNode;\n className?: string;\n alignment?: 'left' | 'right';\n style?: React.CSSProperties;\n noShadow?: boolean;\n automationId?: string;\n id?: string;\n position?: 'absolute' | 'fixed' | 'relative' | 'static' | '';\n isOpen?: boolean;\n displayCloseSidebar?: boolean;\n closeSidebarIcon?: string;\n /**\n * Accessible label for the close button. Defaults to 'Close sidebar'.\n */\n closeAriaLabel?: string;\n onClose?: () => void;\n onSidebarUnmount?: () => void;\n onPathChange?: (route: string) => void;\n currentPath?: string;\n animateSidebar?: boolean;\n /**\n * Accessibility role that determines the full behavior bundle.\n * - 'dialog': modal drawer (focus trap, scroll lock, aria-modal, Escape closes)\n * - 'complementary': persistent side panel (no trap, no forced focus, no scroll lock)\n * If not provided, derives from position: fixed|absolute → 'dialog', static|relative|'' → 'complementary'\n */\n a11yRole?: SidebarOverlayA11yRole;\n /**\n * Accessible name when no visible label exists.\n * Prefer ariaLabelledBy when a visible title exists inside the sidebar.\n */\n ariaLabel?: string;\n /**\n * ID(s) of visible element(s) that label this sidebar.\n * Preferred over ariaLabel when a visible title exists (keeps SR and visual text in sync).\n */\n ariaLabelledBy?: string;\n /**\n * ID(s) of element(s) that describe this sidebar (additional context).\n */\n ariaDescribedBy?: string;\n /**\n * Explicit element to restore focus to when the sidebar closes.\n * Overrides automatic trigger capture from document.activeElement.\n * Use when the opener element is known (e.g. a ref on the toggle button).\n * In complementary mode: seeds the trigger ref directly.\n * In dialog mode: passed through to useFocusTrap.\n */\n returnFocusRef?: React.RefObject<HTMLElement | null>;\n /**\n * Enables drag-to-resize via a handle on the panel's inner edge\n * (left edge when alignment=\"right\", right edge when \"left\"). Default false.\n * Requires a positioned container — the default position=\"fixed\" satisfies this.\n */\n resizable?: boolean;\n /**\n * Minimum width in px the panel can be resized to. Also the initial width\n * when `defaultWidth` is omitted. Recommended whenever `resizable` is set.\n */\n minWidth?: number;\n /**\n * Maximum width in px the panel can be resized to. Consumers typically derive\n * this from the viewport (e.g. half the screen) and update it on window\n * resize; the panel re-clamps its width when this changes.\n */\n maxWidth?: number;\n /**\n * Uncontrolled initial width in px (e.g. restored from storage). Falls back to\n * `minWidth`, and is clamped to [minWidth, maxWidth].\n */\n defaultWidth?: number;\n /**\n * Called continuously while dragging, with the live width in px. Use for live\n * layout updates (e.g. pushing adjacent content). For persistence, prefer\n * onResizeEnd.\n */\n onResize?: (width: number) => void;\n /**\n * Called when a resize gesture commits (mouse-up, keyboard, or double-click\n * reset) with the new width in px. Use to persist the chosen width.\n */\n onResizeEnd?: (width: number) => void;\n /**\n * Accessible label for the resize handle. Defaults to 'Resize panel'.\n */\n resizeHandleAriaLabel?: string;\n /**\n * Automation id applied to the resize handle element.\n */\n resizeAutomationId?: string;\n}\n\nexport const SidebarOverlay: FC<SidebarOverlayProps> = (props) => {\n const {\n content,\n className = '',\n alignment,\n noShadow,\n position = 'fixed',\n isOpen,\n displayCloseSidebar,\n onClose,\n onSidebarUnmount,\n onPathChange,\n style,\n automationId,\n id,\n currentPath = '',\n closeSidebarIcon = 'close',\n closeAriaLabel = 'Close sidebar',\n animateSidebar = true,\n a11yRole,\n ariaLabel,\n ariaLabelledBy,\n ariaDescribedBy,\n returnFocusRef,\n resizable = false,\n minWidth,\n maxWidth,\n defaultWidth,\n onResize,\n onResizeEnd,\n resizeHandleAriaLabel = 'Resize panel',\n resizeAutomationId,\n } = props;\n\n // Default to complementary — consumers opt into dialog (focus trap + scroll lock)\n // by passing a11yRole=\"dialog\" explicitly.\n const effectiveA11yRole: SidebarOverlayA11yRole = a11yRole ?? 'complementary';\n\n const isModal = effectiveA11yRole === 'dialog';\n\n // Get accessible name attributes\n const accessibleNameProps = useMemo(\n () => getA11yNameAttributes({ ariaLabel, ariaLabelledBy, ariaDescribedBy }),\n [ariaLabel, ariaLabelledBy, ariaDescribedBy]\n );\n\n const sidebarRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n return () => {\n onSidebarUnmount && onSidebarUnmount();\n };\n }, []);\n\n // Scroll lock — modal only.\n useEffect(() => {\n if (!isModal) return;\n document.body.style.overflow = isOpen ? 'hidden' : '';\n return () => {\n document.body.style.overflow = '';\n };\n }, [isOpen, isModal]);\n\n useEffect(() => {\n onPathChange && onPathChange(currentPath);\n }, [currentPath]);\n\n const { onKeyDown: onEscapeKeyDown } = useDismissOnEscape({\n onDismiss: onClose,\n enabled: isOpen\n });\n\n // Focus trap: modal mode only, guarded by onClose as a WCAG safety net —\n // trapping focus without a dismiss path is a keyboard trap (WCAG 2.1.2).\n useFocusTrap({\n enabled: Boolean(isModal && isOpen && !!onClose),\n containerRef: sidebarRef,\n restoreFocus: true,\n initialFocus: 'first',\n returnFocusRef,\n });\n\n // Complementary (non-modal) focus management: move focus in on open,\n // restore to trigger on close, wrap Tab/Shift+Tab at panel boundaries.\n const { startSentinelProps, endSentinelProps } = useFocusSentinel({\n isOpen,\n isModal,\n containerRef: sidebarRef,\n returnFocusRef,\n });\n\n // --- Drag-to-resize (opt-in via `resizable`) -------------------------------\n const clampWidth = useCallback(\n (value: number) => {\n const min = minWidth ?? 0;\n const max = maxWidth ?? Number.POSITIVE_INFINITY;\n return Math.min(Math.max(value, min), max);\n },\n [minWidth, maxWidth]\n );\n\n const [resizeWidth, setResizeWidth] = useState<number>(() => clampWidth(defaultWidth ?? minWidth ?? 0));\n const [isResizing, setIsResizing] = useState(false);\n const resizeStartCoordRef = useRef(0);\n const resizeStartWidthRef = useRef(0);\n const resizeWidthRef = useRef(resizeWidth);\n const isResizingRef = useRef(false);\n\n useEffect(() => {\n resizeWidthRef.current = resizeWidth;\n }, [resizeWidth]);\n\n // Re-clamp when the bounds change (e.g. maxWidth shrinks on window resize).\n useEffect(() => {\n if (!resizable) return;\n setResizeWidth((current) => clampWidth(current));\n }, [resizable, clampWidth]);\n\n // While resizing, suppress text selection and show the resize cursor\n // everywhere; restore on release or unmount.\n useEffect(() => {\n if (!isResizing) return;\n const previousUserSelect = document.body.style.userSelect;\n const previousCursor = document.body.style.cursor;\n document.body.style.userSelect = 'none';\n document.body.style.cursor = 'col-resize';\n return () => {\n document.body.style.userSelect = previousUserSelect;\n document.body.style.cursor = previousCursor;\n };\n }, [isResizing]);\n\n const handleResizePointerDown = (event: React.PointerEvent) => {\n event.preventDefault();\n event.stopPropagation();\n // Capture the pointer so move/up events keep firing on the handle even when\n // the cursor passes over an iframe (e.g. a PDF viewer) — no overlay needed,\n // and the gesture always ends (even if released off-screen).\n event.currentTarget.setPointerCapture(event.pointerId);\n resizeStartCoordRef.current = event.clientX;\n resizeStartWidthRef.current = resizeWidthRef.current;\n isResizingRef.current = true;\n setIsResizing(true);\n };\n\n const handleResizePointerMove = (event: React.PointerEvent) => {\n if (!isResizingRef.current) return;\n const delta =\n alignment === 'left'\n ? event.clientX - resizeStartCoordRef.current\n : resizeStartCoordRef.current - event.clientX;\n const nextWidth = clampWidth(resizeStartWidthRef.current + delta);\n setResizeWidth(nextWidth);\n onResize && onResize(nextWidth);\n };\n\n const handleResizePointerUp = (event: React.PointerEvent) => {\n if (!isResizingRef.current) return;\n isResizingRef.current = false;\n if (event.currentTarget.hasPointerCapture(event.pointerId)) {\n event.currentTarget.releasePointerCapture(event.pointerId);\n }\n setIsResizing(false);\n onResizeEnd && onResizeEnd(resizeWidthRef.current);\n };\n\n const handleResizeKeyDown = (event: React.KeyboardEvent) => {\n const growKey = alignment === 'left' ? 'ArrowRight' : 'ArrowLeft';\n const shrinkKey = alignment === 'left' ? 'ArrowLeft' : 'ArrowRight';\n let nextWidth: number | null = null;\n\n if (event.key === growKey) nextWidth = resizeWidthRef.current + RESIZE_KEYBOARD_STEP;\n else if (event.key === shrinkKey) nextWidth = resizeWidthRef.current - RESIZE_KEYBOARD_STEP;\n else if (event.key === 'Home') nextWidth = minWidth ?? resizeWidthRef.current;\n else if (event.key === 'End') nextWidth = maxWidth ?? resizeWidthRef.current;\n\n if (nextWidth === null) return;\n event.preventDefault();\n const clamped = clampWidth(nextWidth);\n setResizeWidth(clamped);\n onResizeEnd && onResizeEnd(clamped);\n };\n\n const handleResizeDoubleClick = () => {\n const reset = clampWidth(minWidth ?? resizeWidthRef.current);\n setResizeWidth(reset);\n onResizeEnd && onResizeEnd(reset);\n };\n\n const getSidebarClassName = () => {\n let defaultClass = `se-design-sidebar-overlay-container z-[1000]`;\n\n defaultClass += className.length > 0 ? ` ${className}` : '';\n defaultClass += alignment === 'left' ? ' left-aligned' : ' right-aligned';\n defaultClass += noShadow ? ' no-shadow' : '';\n defaultClass += position.length > 0 ? ` ${position}` : '';\n defaultClass += isOpen ? ' open-sidebar' : ' closed-sidebar';\n defaultClass += resizable ? ' resizable' : '';\n defaultClass += isResizing ? ' is-resizing' : '';\n if(!animateSidebar) {\n defaultClass += isOpen ? '' : ' hidden';\n }\n return defaultClass;\n };\n\n const getSidebarStyle = () => {\n if (resizable) {\n return {\n ...style,\n width: isOpen ? `${resizeWidth}px` : '0px'\n };\n }\n return {\n ...style,\n ...(isOpen && style?.width ? { width: style?.width } : { width: '0px' })\n };\n };\n\n return (\n <div\n ref={sidebarRef}\n id={id}\n className={getSidebarClassName()}\n style={getSidebarStyle()}\n data-automation-id={automationId}\n tabIndex={-1}\n role={effectiveA11yRole}\n aria-modal={isModal ? 'true' : undefined}\n aria-hidden={!isOpen ? 'true' : undefined}\n {...accessibleNameProps}\n onKeyDown={onEscapeKeyDown}\n inert={!isOpen ? ('' as unknown as boolean) : undefined}\n >\n {resizable && isOpen && (\n <div\n className={`se-design-sidebar-overlay-resize-handle${isResizing ? ' is-resizing' : ''}`}\n role=\"separator\"\n aria-orientation=\"vertical\"\n aria-label={resizeHandleAriaLabel}\n aria-controls={id}\n aria-valuenow={resizeWidth}\n aria-valuemin={minWidth}\n aria-valuemax={maxWidth}\n tabIndex={0}\n onPointerDown={handleResizePointerDown}\n onPointerMove={handleResizePointerMove}\n onPointerUp={handleResizePointerUp}\n onPointerCancel={handleResizePointerUp}\n onKeyDown={handleResizeKeyDown}\n onDoubleClick={handleResizeDoubleClick}\n data-automation-id={resizeAutomationId}\n />\n )}\n <div className=\"overlay-content\">\n {!isModal && <div {...startSentinelProps} />}\n {displayCloseSidebar && (\n <Icon\n name={closeSidebarIcon}\n onClick={onClose}\n className=\"overlay-close\"\n ariaLabel={closeAriaLabel}\n automationId=\"sidebar_overlay_close\"\n />\n )}\n {content}\n {!isModal && <div {...endSentinelProps} />}\n </div>\n </div>\n );\n};\n"],"names":["RESIZE_KEYBOARD_STEP","SidebarOverlay","props","content","className","alignment","noShadow","position","isOpen","displayCloseSidebar","onClose","onSidebarUnmount","onPathChange","style","automationId","id","currentPath","closeSidebarIcon","closeAriaLabel","animateSidebar","a11yRole","ariaLabel","ariaLabelledBy","ariaDescribedBy","returnFocusRef","resizable","minWidth","maxWidth","defaultWidth","onResize","onResizeEnd","resizeHandleAriaLabel","resizeAutomationId","effectiveA11yRole","isModal","accessibleNameProps","useMemo","getA11yNameAttributes","sidebarRef","useRef","useEffect","document","body","overflow","onKeyDown","onEscapeKeyDown","useDismissOnEscape","onDismiss","enabled","useFocusTrap","Boolean","containerRef","restoreFocus","initialFocus","startSentinelProps","endSentinelProps","useFocusSentinel","clampWidth","useCallback","value","min","max","Number","POSITIVE_INFINITY","Math","resizeWidth","setResizeWidth","useState","isResizing","setIsResizing","resizeStartCoordRef","resizeStartWidthRef","resizeWidthRef","isResizingRef","current","previousUserSelect","userSelect","previousCursor","cursor","handleResizePointerDown","event","preventDefault","stopPropagation","currentTarget","setPointerCapture","pointerId","clientX","handleResizePointerMove","delta","nextWidth","handleResizePointerUp","hasPointerCapture","releasePointerCapture","handleResizeKeyDown","growKey","shrinkKey","key","clamped","handleResizeDoubleClick","reset","getSidebarClassName","defaultClass","length","getSidebarStyle","width","React","createElement","_extends","ref","tabIndex","role","undefined","inert","onPointerDown","onPointerMove","onPointerUp","onPointerCancel","onDoubleClick","Icon","name","onClick"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index28.js","sources":["../src/components/SidebarOverlay/index.tsx"],"sourcesContent":["import React, { FC, useEffect, useMemo, useRef } from 'react';\nimport { Icon } from 'components/Icon';\nimport { getA11yNameAttributes, useFocusTrap, useDismissOnEscape } from '../../utils/a11y';\nimport { useFocusSentinel } from '../../utils/a11y/useFocusSentinel';\n\nimport './style.scss';\n\ntype SidebarOverlayA11yRole = 'dialog' | 'complementary';\n\nexport interface SidebarOverlayProps {\n content: React.ReactNode;\n className?: string;\n alignment?: 'left' | 'right';\n style?: React.CSSProperties;\n noShadow?: boolean;\n automationId?: string;\n id?: string;\n position?: 'absolute' | 'fixed' | 'relative' | 'static' | '';\n isOpen?: boolean;\n displayCloseSidebar?: boolean;\n closeSidebarIcon?: string;\n /**\n * Accessible label for the close button. Defaults to 'Close sidebar'.\n */\n closeAriaLabel?: string;\n onClose?: () => void;\n onSidebarUnmount?: () => void;\n onPathChange?: (route: string) => void;\n currentPath?: string;\n animateSidebar?: boolean;\n /**\n * Accessibility role that determines the full behavior bundle.\n * - 'dialog': modal drawer (focus trap, scroll lock, aria-modal, Escape closes)\n * - 'complementary': persistent side panel (no trap, no forced focus, no scroll lock)\n * If not provided, derives from position: fixed|absolute → 'dialog', static|relative|'' → 'complementary'\n */\n a11yRole?: SidebarOverlayA11yRole;\n /**\n * Accessible name when no visible label exists.\n * Prefer ariaLabelledBy when a visible title exists inside the sidebar.\n */\n ariaLabel?: string;\n /**\n * ID(s) of visible element(s) that label this sidebar.\n * Preferred over ariaLabel when a visible title exists (keeps SR and visual text in sync).\n */\n ariaLabelledBy?: string;\n /**\n * ID(s) of element(s) that describe this sidebar (additional context).\n */\n ariaDescribedBy?: string;\n /**\n * Explicit element to restore focus to when the sidebar closes.\n * Overrides automatic trigger capture from document.activeElement.\n * Use when the opener element is known (e.g. a ref on the toggle button).\n * In complementary mode: seeds the trigger ref directly.\n * In dialog mode: passed through to useFocusTrap.\n */\n returnFocusRef?: React.RefObject<HTMLElement | null>;\n}\n\nexport const SidebarOverlay: FC<SidebarOverlayProps> = (props) => {\n const {\n content,\n className = '',\n alignment,\n noShadow,\n position = 'fixed',\n isOpen,\n displayCloseSidebar,\n onClose,\n onSidebarUnmount,\n onPathChange,\n style,\n automationId,\n id,\n currentPath = '',\n closeSidebarIcon = 'close',\n closeAriaLabel = 'Close sidebar',\n animateSidebar = true,\n a11yRole,\n ariaLabel,\n ariaLabelledBy,\n ariaDescribedBy,\n returnFocusRef,\n } = props;\n\n // Default to complementary — consumers opt into dialog (focus trap + scroll lock)\n // by passing a11yRole=\"dialog\" explicitly.\n const effectiveA11yRole: SidebarOverlayA11yRole = a11yRole ?? 'complementary';\n\n const isModal = effectiveA11yRole === 'dialog';\n\n // Get accessible name attributes\n const accessibleNameProps = useMemo(\n () => getA11yNameAttributes({ ariaLabel, ariaLabelledBy, ariaDescribedBy }),\n [ariaLabel, ariaLabelledBy, ariaDescribedBy]\n );\n\n const sidebarRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n return () => {\n onSidebarUnmount && onSidebarUnmount();\n };\n }, []);\n\n // Scroll lock — modal only.\n useEffect(() => {\n if (!isModal) return;\n document.body.style.overflow = isOpen ? 'hidden' : '';\n return () => {\n document.body.style.overflow = '';\n };\n }, [isOpen, isModal]);\n\n useEffect(() => {\n onPathChange && onPathChange(currentPath);\n }, [currentPath]);\n\n const { onKeyDown: onEscapeKeyDown } = useDismissOnEscape({\n onDismiss: onClose,\n enabled: isOpen\n });\n\n // Focus trap: modal mode only, guarded by onClose as a WCAG safety net —\n // trapping focus without a dismiss path is a keyboard trap (WCAG 2.1.2).\n useFocusTrap({\n enabled: Boolean(isModal && isOpen && !!onClose),\n containerRef: sidebarRef,\n restoreFocus: true,\n initialFocus: 'first',\n returnFocusRef,\n });\n\n // Complementary (non-modal) focus management: move focus in on open,\n // restore to trigger on close, wrap Tab/Shift+Tab at panel boundaries.\n const { startSentinelProps, endSentinelProps } = useFocusSentinel({\n isOpen,\n isModal,\n containerRef: sidebarRef,\n returnFocusRef,\n });\n\n const getSidebarClassName = () => {\n let defaultClass = `se-design-sidebar-overlay-container z-[1000]`;\n\n defaultClass += className.length > 0 ? ` ${className}` : '';\n defaultClass += alignment === 'left' ? ' left-aligned' : ' right-aligned';\n defaultClass += noShadow ? ' no-shadow' : '';\n defaultClass += position.length > 0 ? ` ${position}` : '';\n defaultClass += isOpen ? ' open-sidebar' : ' closed-sidebar';\n if(!animateSidebar) {\n defaultClass += isOpen ? '' : ' hidden';\n }\n return defaultClass;\n };\n\n const getSidebarStyle = () => {\n return {\n ...style,\n ...(isOpen && style?.width ? { width: style?.width } : { width: '0px' })\n };\n };\n\n return (\n <div\n ref={sidebarRef}\n id={id}\n className={getSidebarClassName()}\n style={getSidebarStyle()}\n data-automation-id={automationId}\n tabIndex={-1}\n role={effectiveA11yRole}\n aria-modal={isModal ? 'true' : undefined}\n aria-hidden={!isOpen ? 'true' : undefined}\n {...accessibleNameProps}\n onKeyDown={onEscapeKeyDown}\n inert={!isOpen ? ('' as unknown as boolean) : undefined}\n >\n <div className=\"overlay-content\">\n {!isModal && <div {...startSentinelProps} />}\n {displayCloseSidebar && (\n <Icon\n name={closeSidebarIcon}\n onClick={onClose}\n className=\"overlay-close\"\n ariaLabel={closeAriaLabel}\n automationId=\"sidebar_overlay_close\"\n />\n )}\n {content}\n {!isModal && <div {...endSentinelProps} />}\n </div>\n </div>\n );\n};\n"],"names":["SidebarOverlay","props","content","className","alignment","noShadow","position","isOpen","displayCloseSidebar","onClose","onSidebarUnmount","onPathChange","style","automationId","id","currentPath","closeSidebarIcon","closeAriaLabel","animateSidebar","a11yRole","ariaLabel","ariaLabelledBy","ariaDescribedBy","returnFocusRef","effectiveA11yRole","isModal","accessibleNameProps","useMemo","getA11yNameAttributes","sidebarRef","useRef","useEffect","document","body","overflow","onKeyDown","onEscapeKeyDown","useDismissOnEscape","onDismiss","enabled","useFocusTrap","Boolean","containerRef","restoreFocus","initialFocus","startSentinelProps","endSentinelProps","useFocusSentinel","getSidebarClassName","defaultClass","length","getSidebarStyle","width","React","createElement","_extends","ref","tabIndex","role","undefined","inert","Icon","name","onClick"],"mappings":"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"}
|