@jirawatpyk/aura-react 5.1.0 → 5.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/aura.bundle.js +418 -148
- package/dist/cjs/index.cjs +418 -148
- package/dist/esm/AppShell.js +10 -2
- package/dist/esm/Avatar.js +4 -3
- package/dist/esm/BottomNav.js +2 -1
- package/dist/esm/Checkbox.js +3 -2
- package/dist/esm/Combobox.js +19 -19
- package/dist/esm/Command.js +1 -0
- package/dist/esm/DataTable.js +44 -14
- package/dist/esm/DatePicker.js +81 -18
- package/dist/esm/DropdownMenu.js +12 -0
- package/dist/esm/FileUpload.js +15 -0
- package/dist/esm/FormErrorSummary.js +19 -4
- package/dist/esm/Menu.js +20 -7
- package/dist/esm/NumberField.js +3 -1
- package/dist/esm/Pagination.js +3 -3
- package/dist/esm/Popover.js +11 -1
- package/dist/esm/RadioGroup.js +14 -1
- package/dist/esm/SideNav.js +2 -1
- package/dist/esm/Switch.js +1 -1
- package/dist/esm/Table.js +3 -2
- package/dist/esm/Tabs.js +11 -7
- package/dist/esm/TextField.js +2 -2
- package/dist/esm/Textarea.js +2 -2
- package/dist/esm/ThemeStyle.js +13 -3
- package/dist/esm/Toaster.js +1 -0
- package/dist/esm/Tooltip.js +54 -29
- package/dist/esm/colorScheme.js +7 -3
- package/dist/esm/colorSchemeScript.js +3 -3
- package/dist/esm/dates.js +6 -3
- package/dist/esm/internal.js +18 -7
- package/dist/esm/locale.js +6 -5
- package/dist/esm/theme.js +3 -1
- package/dist/esm/useModal.js +31 -8
- package/dist/index.d.cts +1508 -0
- package/dist/index.d.ts +1 -1
- package/dist/server/index.cjs +6 -4
- package/dist/server/index.d.cts +176 -0
- package/dist/server/index.js +6 -4
- package/dist/styles.css +19 -3
- package/dist/styles.layer.css +19 -3
- package/package.json +19 -8
package/dist/esm/theme.js
CHANGED
|
@@ -245,6 +245,8 @@ function createTheme(opts) {
|
|
|
245
245
|
}
|
|
246
246
|
if (s) check("light", "ink", "accent-lime (signal)", 4.5, INK, s[200]);
|
|
247
247
|
function css(selector) {
|
|
248
|
+
if (selector !== void 0 && /[<{};@\r\n]|\/\*|\*\//.test(selector))
|
|
249
|
+
throw new Error('createTheme: "' + selector + '" is not a plain CSS selector');
|
|
248
250
|
const light = selector ? selector : ':root, [data-theme="light"]';
|
|
249
251
|
const dark = selector ? selector + ".dark, .dark " + selector + ", " + selector + '[data-theme="dark"], [data-theme="dark"] ' + selector : '.dark, [data-theme="dark"]';
|
|
250
252
|
const system = selector ? '[data-theme="system"] ' + selector + ", " + selector + '[data-theme="system"]' : '[data-theme="system"]';
|
|
@@ -253,7 +255,7 @@ function createTheme(opts) {
|
|
|
253
255
|
return " --aura-" + k + ": " + m[k] + ";";
|
|
254
256
|
}).join("\n") + "\n}";
|
|
255
257
|
}
|
|
256
|
-
return "/* AURA theme" + (o.name ? ' "' + o.name + '"' : "") + ": brand " + o.brand + (o.signal ? ", signal " + o.signal : "") + (o.primary === "brand" ? ", brand primary buttons" : "") + ". Load after aura.css. Generated by createTheme. */\n" + block(light, L) + "\n" + block(dark, D) + "\n@media (prefers-color-scheme: dark) {\n" + block(system, D) + "\n}\n";
|
|
258
|
+
return "/* AURA theme" + (o.name ? ' "' + String(o.name).replace(/[*/<>\\]/g, "") + '"' : "") + ": brand " + o.brand + (o.signal ? ", signal " + o.signal : "") + (o.primary === "brand" ? ", brand primary buttons" : "") + ". Load after aura.css. Generated by createTheme. */\n" + block(light, L) + "\n" + block(dark, D) + "\n@media (prefers-color-scheme: dark) {\n" + block(system, D) + "\n}\n";
|
|
257
259
|
}
|
|
258
260
|
return {
|
|
259
261
|
name: o.name || null,
|
package/dist/esm/useModal.js
CHANGED
|
@@ -1,6 +1,29 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import { FOCUSABLE, useMounted } from "./internal.js";
|
|
4
|
+
let locks = 0, savedOverflow = "";
|
|
5
|
+
function lockScroll() {
|
|
6
|
+
const body = document.body;
|
|
7
|
+
if (locks === 0) savedOverflow = body.style.overflow;
|
|
8
|
+
locks++;
|
|
9
|
+
body.style.overflow = "hidden";
|
|
10
|
+
let done = false;
|
|
11
|
+
return function() {
|
|
12
|
+
if (done) return;
|
|
13
|
+
done = true;
|
|
14
|
+
locks--;
|
|
15
|
+
if (locks === 0) body.style.overflow = savedOverflow;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function tabbable(el) {
|
|
19
|
+
const all = Array.prototype.filter.call(el.querySelectorAll(FOCUSABLE), function(c) {
|
|
20
|
+
return c.tabIndex >= 0;
|
|
21
|
+
});
|
|
22
|
+
const shown = all.filter(function(c) {
|
|
23
|
+
return c.getClientRects().length > 0;
|
|
24
|
+
});
|
|
25
|
+
return shown.length ? shown : all;
|
|
26
|
+
}
|
|
4
27
|
function useModal(open, ref, opts) {
|
|
5
28
|
const mounted = useMounted();
|
|
6
29
|
const prev = React.useRef(null);
|
|
@@ -9,8 +32,7 @@ function useModal(open, ref, opts) {
|
|
|
9
32
|
function() {
|
|
10
33
|
if (!open || !mounted) return;
|
|
11
34
|
prev.current = document.activeElement;
|
|
12
|
-
const
|
|
13
|
-
body.style.overflow = "hidden";
|
|
35
|
+
const unlock = lockScroll();
|
|
14
36
|
const el = ref.current;
|
|
15
37
|
const firstIn = function(scope) {
|
|
16
38
|
if (!scope || !el) return null;
|
|
@@ -25,7 +47,7 @@ function useModal(open, ref, opts) {
|
|
|
25
47
|
const target = el && (el.querySelector("[data-autofocus]") || firstIn(o.bodySelector) || firstIn(o.footSelector) || el);
|
|
26
48
|
if (target && o.autoFocus !== false) target.focus();
|
|
27
49
|
return function() {
|
|
28
|
-
|
|
50
|
+
unlock();
|
|
29
51
|
if (prev.current && prev.current.focus) prev.current.focus();
|
|
30
52
|
};
|
|
31
53
|
},
|
|
@@ -37,17 +59,18 @@ function useModal(open, ref, opts) {
|
|
|
37
59
|
if (o.onEscape) o.onEscape();
|
|
38
60
|
return;
|
|
39
61
|
}
|
|
40
|
-
if (e.key !== "Tab" || !ref.current) return;
|
|
41
|
-
|
|
62
|
+
if (e.key !== "Tab" || !ref.current || e.defaultPrevented) return;
|
|
63
|
+
if (!ref.current.contains(e.target)) return;
|
|
64
|
+
const list = tabbable(ref.current);
|
|
42
65
|
if (!list.length) {
|
|
43
66
|
e.preventDefault();
|
|
44
67
|
return;
|
|
45
68
|
}
|
|
46
|
-
const first = list[0], last = list[list.length - 1];
|
|
47
|
-
if (e.shiftKey && (
|
|
69
|
+
const first = list[0], last = list[list.length - 1], active = document.activeElement, stray = active === ref.current;
|
|
70
|
+
if (e.shiftKey && (active === first || stray)) {
|
|
48
71
|
e.preventDefault();
|
|
49
72
|
last.focus();
|
|
50
|
-
} else if (!e.shiftKey &&
|
|
73
|
+
} else if (!e.shiftKey && (active === last || stray)) {
|
|
51
74
|
e.preventDefault();
|
|
52
75
|
first.focus();
|
|
53
76
|
}
|