@7onic-ui/react 0.3.10 → 0.3.12
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/README.md +2 -2
- package/dist/{chunk-GRCJ35DX.mjs → chunk-2WIIXHOV.mjs} +7 -3
- package/dist/chunk-2WIIXHOV.mjs.map +1 -0
- package/dist/{chunk-DTLNWOTR.mjs → chunk-C5D3VRNJ.mjs} +29 -7
- package/dist/chunk-C5D3VRNJ.mjs.map +1 -0
- package/dist/{chunk-T546XBQG.mjs → chunk-EG2GTK65.mjs} +3 -3
- package/dist/{chunk-T546XBQG.mjs.map → chunk-EG2GTK65.mjs.map} +1 -1
- package/dist/{chunk-UWTT5AE6.mjs → chunk-HS2VRYSX.mjs} +7 -4
- package/dist/chunk-HS2VRYSX.mjs.map +1 -0
- package/dist/{chunk-N4K2BDGM.mjs → chunk-IHHI3LIN.mjs} +5 -3
- package/dist/chunk-IHHI3LIN.mjs.map +1 -0
- package/dist/{chunk-VUPGBB5X.mjs → chunk-IJ2FZ3L5.mjs} +11 -2
- package/dist/chunk-IJ2FZ3L5.mjs.map +1 -0
- package/dist/{chunk-IY3R2VGB.mjs → chunk-L55ABE4H.mjs} +14 -3
- package/dist/chunk-L55ABE4H.mjs.map +1 -0
- package/dist/{chunk-DRVHHEAY.mjs → chunk-ND6TUVP2.mjs} +7 -4
- package/dist/chunk-ND6TUVP2.mjs.map +1 -0
- package/dist/{chunk-234NAXGV.mjs → chunk-R7FJEO4K.mjs} +1 -1
- package/dist/chunk-R7FJEO4K.mjs.map +1 -0
- package/dist/{chunk-WWSN5YME.mjs → chunk-SDDAGZWA.mjs} +5 -3
- package/dist/chunk-SDDAGZWA.mjs.map +1 -0
- package/dist/{chunk-Z6JWWCNL.mjs → chunk-T5A4APEL.mjs} +35 -3
- package/dist/chunk-T5A4APEL.mjs.map +1 -0
- package/dist/{chunk-MRUVGHGP.mjs → chunk-YZ7HHFKA.mjs} +7 -7
- package/dist/chunk-YZ7HHFKA.mjs.map +1 -0
- package/dist/components/chat-input.mjs +1 -1
- package/dist/components/chat-message.mjs +1 -1
- package/dist/components/checkbox.mjs +2 -2
- package/dist/components/field.mjs +5 -3
- package/dist/components/input.mjs +2 -2
- package/dist/components/navigation-menu.mjs +1 -1
- package/dist/components/pagination.mjs +1 -1
- package/dist/components/radio-group.mjs +2 -2
- package/dist/components/select.mjs +2 -1
- package/dist/components/slider.mjs +2 -1
- package/dist/components/switch.mjs +2 -2
- package/dist/components/textarea.mjs +2 -2
- package/dist/index.d.ts +11 -2
- package/dist/index.js +95 -21
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +12 -12
- package/llms.txt +27 -9
- package/package.json +12 -12
- package/dist/chunk-234NAXGV.mjs.map +0 -1
- package/dist/chunk-DRVHHEAY.mjs.map +0 -1
- package/dist/chunk-DTLNWOTR.mjs.map +0 -1
- package/dist/chunk-GRCJ35DX.mjs.map +0 -1
- package/dist/chunk-IY3R2VGB.mjs.map +0 -1
- package/dist/chunk-MRUVGHGP.mjs.map +0 -1
- package/dist/chunk-N4K2BDGM.mjs.map +0 -1
- package/dist/chunk-UWTT5AE6.mjs.map +0 -1
- package/dist/chunk-VUPGBB5X.mjs.map +0 -1
- package/dist/chunk-WWSN5YME.mjs.map +0 -1
- package/dist/chunk-Z6JWWCNL.mjs.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1492,6 +1492,14 @@ var FieldContext = React10.createContext(null);
|
|
|
1492
1492
|
function useFieldContext() {
|
|
1493
1493
|
return React10.useContext(FieldContext);
|
|
1494
1494
|
}
|
|
1495
|
+
function useFieldControl(kind, enabled) {
|
|
1496
|
+
const context = useFieldContext();
|
|
1497
|
+
const register = context?.registerControl;
|
|
1498
|
+
React10.useEffect(() => {
|
|
1499
|
+
if (!enabled || !register) return;
|
|
1500
|
+
return register(kind);
|
|
1501
|
+
}, [enabled, register, kind]);
|
|
1502
|
+
}
|
|
1495
1503
|
var fieldVariants = (0, import_class_variance_authority8.cva)("flex flex-col", {
|
|
1496
1504
|
variants: {
|
|
1497
1505
|
gap: {
|
|
@@ -1509,10 +1517,30 @@ var fieldVariants = (0, import_class_variance_authority8.cva)("flex flex-col", {
|
|
|
1509
1517
|
var Field = React10.forwardRef(
|
|
1510
1518
|
({ className, gap, error, disabled, children, ...props }, ref) => {
|
|
1511
1519
|
const id = React10.useId();
|
|
1512
|
-
|
|
1520
|
+
const labelId = `${id}-label`;
|
|
1521
|
+
const [labelCount, setLabelCount] = React10.useState(0);
|
|
1522
|
+
const [counts, setCounts] = React10.useState({ single: 0, group: 0, labelled: 0 });
|
|
1523
|
+
const registerLabel = React10.useCallback(() => {
|
|
1524
|
+
setLabelCount((n) => n + 1);
|
|
1525
|
+
return () => setLabelCount((n) => n - 1);
|
|
1526
|
+
}, []);
|
|
1527
|
+
const registerControl = React10.useCallback((kind) => {
|
|
1528
|
+
setCounts((c) => ({ ...c, [kind]: c[kind] + 1 }));
|
|
1529
|
+
return () => setCounts((c) => ({ ...c, [kind]: c[kind] - 1 }));
|
|
1530
|
+
}, []);
|
|
1531
|
+
const hasLabel = labelCount > 0;
|
|
1532
|
+
const isGroup = counts.single === 0 && (counts.group > 0 || counts.labelled > 0);
|
|
1533
|
+
const asGroup = counts.single === 0 && counts.group > 0;
|
|
1534
|
+
const contextValue = React10.useMemo(
|
|
1535
|
+
() => ({ id, labelId, error, disabled, hasLabel, isGroup, registerLabel, registerControl }),
|
|
1536
|
+
[id, labelId, error, disabled, hasLabel, isGroup, registerLabel, registerControl]
|
|
1537
|
+
);
|
|
1538
|
+
return /* @__PURE__ */ React10.createElement(FieldContext.Provider, { value: contextValue }, /* @__PURE__ */ React10.createElement(
|
|
1513
1539
|
"div",
|
|
1514
1540
|
{
|
|
1515
1541
|
ref,
|
|
1542
|
+
role: asGroup ? "group" : void 0,
|
|
1543
|
+
"aria-labelledby": asGroup && hasLabel ? labelId : void 0,
|
|
1516
1544
|
className: cn(fieldVariants({ gap }), className),
|
|
1517
1545
|
"data-error": error || void 0,
|
|
1518
1546
|
"data-disabled": disabled || void 0,
|
|
@@ -1526,11 +1554,14 @@ Field.displayName = "Field";
|
|
|
1526
1554
|
var FieldLabel = React10.forwardRef(
|
|
1527
1555
|
({ className, required, children, ...props }, ref) => {
|
|
1528
1556
|
const context = useFieldContext();
|
|
1557
|
+
const registerLabel = context?.registerLabel;
|
|
1558
|
+
React10.useEffect(() => registerLabel?.(), [registerLabel]);
|
|
1529
1559
|
return /* @__PURE__ */ React10.createElement(
|
|
1530
1560
|
"label",
|
|
1531
1561
|
{
|
|
1532
1562
|
ref,
|
|
1533
|
-
|
|
1563
|
+
id: context?.labelId,
|
|
1564
|
+
htmlFor: context && !context.isGroup ? context.id : void 0,
|
|
1534
1565
|
className: cn(
|
|
1535
1566
|
"text-md font-semibold text-foreground",
|
|
1536
1567
|
// 14px - primary field identifier
|
|
@@ -1691,6 +1722,7 @@ var Input = React11.forwardRef(
|
|
|
1691
1722
|
const resolvedError = error ?? fieldContext?.error;
|
|
1692
1723
|
const resolvedState = resolvedError ? "error" : state;
|
|
1693
1724
|
const inputId = id ?? fieldContext?.id;
|
|
1725
|
+
useFieldControl("single", Boolean(fieldContext) && !id);
|
|
1694
1726
|
const isDisabled = props.disabled ?? fieldContext?.disabled;
|
|
1695
1727
|
const pointerRef = React11.useRef(false);
|
|
1696
1728
|
const windowBlurredRef = React11.useRef(false);
|
|
@@ -1864,6 +1896,7 @@ var Textarea = React12.forwardRef(
|
|
|
1864
1896
|
const resolvedError = error ?? fieldContext?.error;
|
|
1865
1897
|
const resolvedState = resolvedError ? "error" : state;
|
|
1866
1898
|
const textareaId = id ?? fieldContext?.id;
|
|
1899
|
+
useFieldControl("single", Boolean(fieldContext) && !id);
|
|
1867
1900
|
const isDisabled = props.disabled ?? fieldContext?.disabled;
|
|
1868
1901
|
const pointerRef = React12.useRef(false);
|
|
1869
1902
|
const windowBlurredRef = React12.useRef(false);
|
|
@@ -2001,7 +2034,9 @@ var Checkbox = React13.forwardRef(({ className, size, radius, weight, color = "d
|
|
|
2001
2034
|
const resolvedSize = size || "default";
|
|
2002
2035
|
const resolvedDisabled = disabled ?? fieldContext?.disabled;
|
|
2003
2036
|
const generatedId = React13.useId();
|
|
2004
|
-
const
|
|
2037
|
+
const hasOwnLabel = Boolean(label);
|
|
2038
|
+
const checkboxId = id ?? (hasOwnLabel ? generatedId : fieldContext?.id ?? generatedId);
|
|
2039
|
+
useFieldControl(hasOwnLabel ? "group" : "single", Boolean(fieldContext) && (hasOwnLabel || !id));
|
|
2005
2040
|
const checkbox = /* @__PURE__ */ React13.createElement(
|
|
2006
2041
|
CheckboxPrimitive.Root,
|
|
2007
2042
|
{
|
|
@@ -2088,6 +2123,8 @@ var radioGroupVariants = (0, import_class_variance_authority12.cva)("grid gap-3"
|
|
|
2088
2123
|
var RadioGroup = React14.forwardRef(({ className, orientation, size = "default", weight = "bold", color = "default", disabled, ...props }, ref) => {
|
|
2089
2124
|
const fieldContext = useFieldContext();
|
|
2090
2125
|
const resolvedDisabled = disabled ?? fieldContext?.disabled;
|
|
2126
|
+
useFieldControl("labelled", Boolean(fieldContext));
|
|
2127
|
+
const labelledBy = fieldContext?.hasLabel && !props["aria-label"] ? fieldContext.labelId : void 0;
|
|
2091
2128
|
return /* @__PURE__ */ React14.createElement(RadioGroupContext.Provider, { value: { size, weight, color, disabled: resolvedDisabled } }, /* @__PURE__ */ React14.createElement(
|
|
2092
2129
|
RadioGroupPrimitive2.Root,
|
|
2093
2130
|
{
|
|
@@ -2095,6 +2132,7 @@ var RadioGroup = React14.forwardRef(({ className, orientation, size = "default",
|
|
|
2095
2132
|
className: cn(radioGroupVariants({ orientation }), className),
|
|
2096
2133
|
orientation: orientation || void 0,
|
|
2097
2134
|
disabled: resolvedDisabled,
|
|
2135
|
+
"aria-labelledby": labelledBy,
|
|
2098
2136
|
...props
|
|
2099
2137
|
}
|
|
2100
2138
|
));
|
|
@@ -2266,7 +2304,9 @@ var Switch = React15.forwardRef(({ className, size, label, labelPosition = "end"
|
|
|
2266
2304
|
const resolvedSize = size || "default";
|
|
2267
2305
|
const resolvedDisabled = disabled ?? fieldContext?.disabled;
|
|
2268
2306
|
const generatedId = React15.useId();
|
|
2269
|
-
const
|
|
2307
|
+
const hasOwnLabel = Boolean(label || startLabel || endLabel);
|
|
2308
|
+
const switchId = id ?? (hasOwnLabel ? generatedId : fieldContext?.id ?? generatedId);
|
|
2309
|
+
useFieldControl(hasOwnLabel ? "group" : "single", Boolean(fieldContext) && (hasOwnLabel || !id));
|
|
2270
2310
|
const switchEl = /* @__PURE__ */ React15.createElement(
|
|
2271
2311
|
SwitchPrimitive.Root,
|
|
2272
2312
|
{
|
|
@@ -2368,8 +2408,11 @@ var sliderColorMap = {
|
|
|
2368
2408
|
thumbActive: "active:shadow-[0_0_0_6px_color-mix(in_srgb,var(--color-primary)_16%,transparent)]"
|
|
2369
2409
|
}
|
|
2370
2410
|
};
|
|
2371
|
-
var Slider = React16.forwardRef(({ className, size, color = "default", value, defaultValue, onValueChange, showTooltip = "never", formatLabel, startContent, endContent, orientation, ...props }, ref) => {
|
|
2411
|
+
var Slider = React16.forwardRef(({ className, size, color = "default", value, defaultValue, onValueChange, showTooltip = "never", formatLabel, startContent, endContent, orientation, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ...props }, ref) => {
|
|
2372
2412
|
const resolvedSize = size || "default";
|
|
2413
|
+
const fieldContext = useFieldContext();
|
|
2414
|
+
useFieldControl("labelled", Boolean(fieldContext));
|
|
2415
|
+
const thumbLabelledBy = ariaLabelledBy ?? (!ariaLabel && fieldContext?.hasLabel ? fieldContext.labelId : void 0);
|
|
2373
2416
|
const thumbCount = value?.length ?? defaultValue?.length ?? 1;
|
|
2374
2417
|
const hasTooltip = showTooltip !== "never";
|
|
2375
2418
|
const hasWrapper = !!(startContent || endContent);
|
|
@@ -2422,6 +2465,8 @@ var Slider = React16.forwardRef(({ className, size, color = "default", value, de
|
|
|
2422
2465
|
SliderPrimitive.Thumb,
|
|
2423
2466
|
{
|
|
2424
2467
|
key: i,
|
|
2468
|
+
"aria-label": ariaLabel,
|
|
2469
|
+
"aria-labelledby": thumbLabelledBy,
|
|
2425
2470
|
className: cn(
|
|
2426
2471
|
"group/thumb block rounded-full border-2 shadow-sm",
|
|
2427
2472
|
sliderColorMap[color].thumb,
|
|
@@ -2800,16 +2845,23 @@ var SelectStyleContext = React18.createContext({ contentRadius: "xl", itemSize:
|
|
|
2800
2845
|
var Select = ({
|
|
2801
2846
|
size = "default",
|
|
2802
2847
|
radius = "default",
|
|
2848
|
+
disabled,
|
|
2803
2849
|
...props
|
|
2804
|
-
}) =>
|
|
2850
|
+
}) => {
|
|
2851
|
+
const fieldContext = useFieldContext();
|
|
2852
|
+
return /* @__PURE__ */ React18.createElement(SelectRootContext.Provider, { value: { size, radius } }, /* @__PURE__ */ React18.createElement(SelectPrimitive.Root, { disabled: disabled ?? fieldContext?.disabled, ...props }));
|
|
2853
|
+
};
|
|
2805
2854
|
var SelectValue = SelectPrimitive.Value;
|
|
2806
2855
|
var SelectGroup = SelectPrimitive.Group;
|
|
2807
|
-
var SelectTrigger = React18.forwardRef(({ className, children, ...props }, ref) => {
|
|
2856
|
+
var SelectTrigger = React18.forwardRef(({ className, children, id, ...props }, ref) => {
|
|
2808
2857
|
const { size, radius } = React18.useContext(SelectRootContext);
|
|
2858
|
+
const fieldContext = useFieldContext();
|
|
2859
|
+
useFieldControl("single", Boolean(fieldContext) && !id);
|
|
2809
2860
|
return /* @__PURE__ */ React18.createElement(
|
|
2810
2861
|
SelectPrimitive.Trigger,
|
|
2811
2862
|
{
|
|
2812
2863
|
ref,
|
|
2864
|
+
id: id ?? fieldContext?.id,
|
|
2813
2865
|
className: cn(
|
|
2814
2866
|
"flex w-full items-center justify-between bg-background text-foreground hover:bg-background-muted",
|
|
2815
2867
|
"border border-border",
|
|
@@ -4357,9 +4409,11 @@ var NavigationMenuItem = React25.forwardRef(
|
|
|
4357
4409
|
({ className, value, defaultOpen = false, children, ...props }, ref) => {
|
|
4358
4410
|
const { orientation, collapsed } = useNavigationMenuContext();
|
|
4359
4411
|
const [open, setOpen] = React25.useState(defaultOpen);
|
|
4360
|
-
React25.
|
|
4412
|
+
const [prevCollapsed, setPrevCollapsed] = React25.useState(collapsed);
|
|
4413
|
+
if (collapsed !== prevCollapsed) {
|
|
4414
|
+
setPrevCollapsed(collapsed);
|
|
4361
4415
|
if (collapsed) setOpen(false);
|
|
4362
|
-
}
|
|
4416
|
+
}
|
|
4363
4417
|
if (orientation === "horizontal") {
|
|
4364
4418
|
return /* @__PURE__ */ React25.createElement(
|
|
4365
4419
|
NavigationMenuPrimitive.Item,
|
|
@@ -4591,10 +4645,30 @@ var NavigationMenuGroup = React25.forwardRef(
|
|
|
4591
4645
|
({ className, label, children, ...props }, ref) => {
|
|
4592
4646
|
const { size, collapsed } = useNavigationMenuContext();
|
|
4593
4647
|
const s = navigationMenuSizeMap[size];
|
|
4594
|
-
|
|
4595
|
-
|
|
4596
|
-
|
|
4597
|
-
|
|
4648
|
+
const labelId = React25.useId();
|
|
4649
|
+
const showLabel = Boolean(label) && !collapsed;
|
|
4650
|
+
return /* @__PURE__ */ React25.createElement("li", { className: cn(showLabel && s.groupMargin) }, /* @__PURE__ */ React25.createElement(
|
|
4651
|
+
"div",
|
|
4652
|
+
{
|
|
4653
|
+
ref,
|
|
4654
|
+
role: "group",
|
|
4655
|
+
"aria-labelledby": showLabel && !props["aria-label"] ? labelId : void 0,
|
|
4656
|
+
className,
|
|
4657
|
+
...props
|
|
4658
|
+
},
|
|
4659
|
+
showLabel && /* @__PURE__ */ React25.createElement(
|
|
4660
|
+
"div",
|
|
4661
|
+
{
|
|
4662
|
+
id: labelId,
|
|
4663
|
+
className: cn(
|
|
4664
|
+
"font-semibold text-text-subtle uppercase tracking-wider select-none",
|
|
4665
|
+
s.groupLabel
|
|
4666
|
+
)
|
|
4667
|
+
},
|
|
4668
|
+
label
|
|
4669
|
+
),
|
|
4670
|
+
/* @__PURE__ */ React25.createElement("ul", { className: "flex flex-col gap-0.5" }, children)
|
|
4671
|
+
));
|
|
4598
4672
|
}
|
|
4599
4673
|
);
|
|
4600
4674
|
NavigationMenuGroup.displayName = "NavigationMenuGroup";
|
|
@@ -5062,9 +5136,9 @@ var PaginationEllipsis = React26.forwardRef(
|
|
|
5062
5136
|
);
|
|
5063
5137
|
PaginationEllipsis.displayName = "PaginationEllipsis";
|
|
5064
5138
|
var PaginationItems = React26.forwardRef(
|
|
5065
|
-
(
|
|
5139
|
+
(_props, _ref) => {
|
|
5066
5140
|
const ctx = usePaginationContext();
|
|
5067
|
-
return /* @__PURE__ */ React26.createElement(
|
|
5141
|
+
return /* @__PURE__ */ React26.createElement(React26.Fragment, null, ctx.paginationRange.map((item, index) => /* @__PURE__ */ React26.createElement(PaginationItem, { key: `${item}-${index}` }, item === "dots" ? /* @__PURE__ */ React26.createElement(PaginationEllipsis, null) : /* @__PURE__ */ React26.createElement(PaginationLink, { page: item }))));
|
|
5068
5142
|
}
|
|
5069
5143
|
);
|
|
5070
5144
|
PaginationItems.displayName = "PaginationItems";
|
|
@@ -7382,6 +7456,10 @@ var ChatInput = React38.forwardRef(
|
|
|
7382
7456
|
}
|
|
7383
7457
|
);
|
|
7384
7458
|
ChatInput.displayName = "ChatInput";
|
|
7459
|
+
function assignRef(ref, value) {
|
|
7460
|
+
if (typeof ref === "function") ref(value);
|
|
7461
|
+
else if (ref) ref.current = value;
|
|
7462
|
+
}
|
|
7385
7463
|
var ChatInputField = React38.forwardRef(
|
|
7386
7464
|
({
|
|
7387
7465
|
className,
|
|
@@ -7404,12 +7482,8 @@ var ChatInputField = React38.forwardRef(
|
|
|
7404
7482
|
const setRef = React38.useCallback(
|
|
7405
7483
|
(el) => {
|
|
7406
7484
|
internalRef.current = el;
|
|
7407
|
-
ctx._fieldRef
|
|
7408
|
-
|
|
7409
|
-
forwardedRef(el);
|
|
7410
|
-
} else if (forwardedRef) {
|
|
7411
|
-
forwardedRef.current = el;
|
|
7412
|
-
}
|
|
7485
|
+
assignRef(ctx._fieldRef, el);
|
|
7486
|
+
assignRef(forwardedRef, el);
|
|
7413
7487
|
},
|
|
7414
7488
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
7415
7489
|
[forwardedRef]
|