@refraction-ui/react 0.12.2 → 0.13.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/{applicationinsights-web-62HUCH3W.js → applicationinsights-web-H7OBLIVJ.js} +199 -68
- package/dist/applicationinsights-web-H7OBLIVJ.js.map +1 -0
- package/dist/index.cjs +900 -83
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +692 -17
- package/dist/index.js.map +1 -1
- package/dist/internal/button/index.d.cts +12 -3
- package/dist/internal/button/index.d.ts +12 -3
- package/dist/internal/empty-state/index.d.cts +39 -0
- package/dist/internal/empty-state/index.d.ts +39 -0
- package/dist/internal/input/index.d.cts +19 -1
- package/dist/internal/input/index.d.ts +19 -1
- package/dist/internal/react-empty-state/index.d.cts +36 -0
- package/dist/internal/react-empty-state/index.d.ts +36 -0
- package/dist/internal/react-input/index.d.cts +16 -0
- package/dist/internal/react-input/index.d.ts +16 -0
- package/dist/internal/react-password-input/index.d.cts +26 -0
- package/dist/internal/react-password-input/index.d.ts +26 -0
- package/dist/internal/react-segmented-control/index.d.cts +38 -0
- package/dist/internal/react-segmented-control/index.d.ts +38 -0
- package/dist/internal/react-separator/index.d.cts +29 -0
- package/dist/internal/react-separator/index.d.ts +29 -0
- package/dist/internal/react-social-auth-button/index.d.cts +31 -0
- package/dist/internal/react-social-auth-button/index.d.ts +31 -0
- package/dist/internal/react-status-indicator/index.d.cts +5 -18
- package/dist/internal/react-status-indicator/index.d.ts +5 -18
- package/dist/internal/react-theme/index.d.cts +19 -1
- package/dist/internal/react-theme/index.d.ts +19 -1
- package/dist/internal/segmented-control/index.d.cts +56 -0
- package/dist/internal/segmented-control/index.d.ts +56 -0
- package/dist/internal/separator/index.d.cts +55 -0
- package/dist/internal/separator/index.d.ts +55 -0
- package/dist/internal/social-auth-button/index.d.cts +47 -0
- package/dist/internal/social-auth-button/index.d.ts +47 -0
- package/dist/internal/theme/index.d.cts +35 -1
- package/dist/internal/theme/index.d.ts +35 -1
- package/dist/theme.cjs +27 -4
- package/dist/theme.cjs.map +1 -1
- package/dist/theme.js +27 -4
- package/dist/theme.js.map +1 -1
- package/package.json +25 -20
- package/dist/applicationinsights-web-62HUCH3W.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -662,6 +662,13 @@ var Breadcrumbs = React11.forwardRef(
|
|
|
662
662
|
Breadcrumbs.displayName = "Breadcrumbs";
|
|
663
663
|
|
|
664
664
|
// ../button/dist/index.js
|
|
665
|
+
var BUTTON_VARIANT_ALIASES = {
|
|
666
|
+
primary: "default"
|
|
667
|
+
};
|
|
668
|
+
function resolveButtonVariant(variant) {
|
|
669
|
+
if (!variant) return variant;
|
|
670
|
+
return BUTTON_VARIANT_ALIASES[variant] ?? variant;
|
|
671
|
+
}
|
|
665
672
|
function createButton(props = {}) {
|
|
666
673
|
const { disabled = false, loading = false } = props;
|
|
667
674
|
const isInteractive = !disabled && !loading;
|
|
@@ -710,6 +717,10 @@ var buttonVariants = cva({
|
|
|
710
717
|
variants: {
|
|
711
718
|
variant: {
|
|
712
719
|
default: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
|
|
720
|
+
// Alias for `default` — see resolveButtonVariant + issue #201. Same classes
|
|
721
|
+
// so styling stays identical even if a consumer reaches into `buttonVariants`
|
|
722
|
+
// directly without going through resolveButtonVariant.
|
|
723
|
+
primary: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
|
|
713
724
|
destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
|
|
714
725
|
outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
|
|
715
726
|
secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
|
|
@@ -1019,8 +1030,9 @@ function ShortcutBadge({ keys, platform = true, className }) {
|
|
|
1019
1030
|
ShortcutBadge.displayName = "ShortcutBadge";
|
|
1020
1031
|
var Button = React11.forwardRef(
|
|
1021
1032
|
({ variant, size, loading, asChild, className, disabled, children, shortcut, action, ...props }, ref) => {
|
|
1033
|
+
const resolvedVariant = resolveButtonVariant(variant);
|
|
1022
1034
|
const api = createButton({ disabled, loading, type: props.type });
|
|
1023
|
-
const classes = cn(buttonVariants({ variant, size }), className);
|
|
1035
|
+
const classes = cn(buttonVariants({ variant: resolvedVariant, size }), className);
|
|
1024
1036
|
const internalRef = React11.useRef(null);
|
|
1025
1037
|
const mergedRef = React11.useCallback(
|
|
1026
1038
|
(node) => {
|
|
@@ -6034,19 +6046,33 @@ function InlineEditor({
|
|
|
6034
6046
|
InlineEditor.displayName = "InlineEditor";
|
|
6035
6047
|
|
|
6036
6048
|
// ../input/dist/index.js
|
|
6049
|
+
function resolveAriaInvalid(ariaInvalid, validationState) {
|
|
6050
|
+
if (ariaInvalid !== void 0) {
|
|
6051
|
+
return ariaInvalid;
|
|
6052
|
+
}
|
|
6053
|
+
if (validationState === "invalid") {
|
|
6054
|
+
return true;
|
|
6055
|
+
}
|
|
6056
|
+
if (validationState === "valid") {
|
|
6057
|
+
return false;
|
|
6058
|
+
}
|
|
6059
|
+
return void 0;
|
|
6060
|
+
}
|
|
6037
6061
|
function createInput(props = {}) {
|
|
6038
6062
|
const {
|
|
6039
6063
|
disabled = false,
|
|
6040
6064
|
readOnly = false,
|
|
6041
6065
|
required = false,
|
|
6042
|
-
"aria-invalid": ariaInvalid
|
|
6066
|
+
"aria-invalid": ariaInvalid,
|
|
6067
|
+
validationState
|
|
6043
6068
|
} = props;
|
|
6069
|
+
const resolvedInvalid = resolveAriaInvalid(ariaInvalid, validationState);
|
|
6044
6070
|
const ariaProps = {};
|
|
6045
6071
|
if (disabled) {
|
|
6046
6072
|
ariaProps["aria-disabled"] = true;
|
|
6047
6073
|
}
|
|
6048
|
-
if (
|
|
6049
|
-
ariaProps["aria-invalid"] =
|
|
6074
|
+
if (resolvedInvalid !== void 0) {
|
|
6075
|
+
ariaProps["aria-invalid"] = resolvedInvalid;
|
|
6050
6076
|
}
|
|
6051
6077
|
if (required) {
|
|
6052
6078
|
ariaProps["aria-required"] = true;
|
|
@@ -6058,7 +6084,7 @@ function createInput(props = {}) {
|
|
|
6058
6084
|
if (readOnly) {
|
|
6059
6085
|
dataAttributes["data-readonly"] = "";
|
|
6060
6086
|
}
|
|
6061
|
-
if (
|
|
6087
|
+
if (resolvedInvalid === true) {
|
|
6062
6088
|
dataAttributes["data-invalid"] = "";
|
|
6063
6089
|
}
|
|
6064
6090
|
return {
|
|
@@ -6073,22 +6099,58 @@ var inputVariants = cva({
|
|
|
6073
6099
|
sm: "h-8 text-xs",
|
|
6074
6100
|
default: "h-9",
|
|
6075
6101
|
lg: "h-10 text-base"
|
|
6102
|
+
},
|
|
6103
|
+
validationState: {
|
|
6104
|
+
valid: "border-green-500 focus-visible:ring-green-500",
|
|
6105
|
+
invalid: "border-destructive focus-visible:ring-destructive"
|
|
6076
6106
|
}
|
|
6077
6107
|
},
|
|
6078
6108
|
defaultVariants: {
|
|
6079
6109
|
size: "default"
|
|
6080
6110
|
}
|
|
6081
6111
|
});
|
|
6112
|
+
var CheckIcon = /* @__PURE__ */ jsx(
|
|
6113
|
+
"svg",
|
|
6114
|
+
{
|
|
6115
|
+
"aria-hidden": "true",
|
|
6116
|
+
viewBox: "0 0 24 24",
|
|
6117
|
+
fill: "none",
|
|
6118
|
+
stroke: "currentColor",
|
|
6119
|
+
strokeWidth: "2",
|
|
6120
|
+
strokeLinecap: "round",
|
|
6121
|
+
strokeLinejoin: "round",
|
|
6122
|
+
className: "pointer-events-none absolute right-3 top-1/2 size-4 -translate-y-1/2 text-green-500",
|
|
6123
|
+
children: /* @__PURE__ */ jsx("polyline", { points: "20 6 9 17 4 12" })
|
|
6124
|
+
}
|
|
6125
|
+
);
|
|
6082
6126
|
var Input = React11.forwardRef(
|
|
6083
|
-
({
|
|
6127
|
+
({
|
|
6128
|
+
type = "text",
|
|
6129
|
+
size,
|
|
6130
|
+
className,
|
|
6131
|
+
disabled,
|
|
6132
|
+
readOnly,
|
|
6133
|
+
required,
|
|
6134
|
+
validationState,
|
|
6135
|
+
leadingIcon,
|
|
6136
|
+
"aria-invalid": ariaInvalid,
|
|
6137
|
+
...props
|
|
6138
|
+
}, ref) => {
|
|
6084
6139
|
const api = createInput({
|
|
6085
6140
|
disabled,
|
|
6086
6141
|
readOnly,
|
|
6087
6142
|
required,
|
|
6088
|
-
"aria-invalid": ariaInvalid ===
|
|
6143
|
+
"aria-invalid": ariaInvalid === void 0 ? void 0 : ariaInvalid === true || ariaInvalid === "true",
|
|
6144
|
+
validationState
|
|
6089
6145
|
});
|
|
6090
|
-
const
|
|
6091
|
-
|
|
6146
|
+
const hasWrapper = leadingIcon != null || validationState != null;
|
|
6147
|
+
const classes = cn(
|
|
6148
|
+
inputVariants({ size, validationState }),
|
|
6149
|
+
leadingIcon != null && "pl-9",
|
|
6150
|
+
validationState === "valid" && "pr-9",
|
|
6151
|
+
className
|
|
6152
|
+
);
|
|
6153
|
+
const inputEl = /* @__PURE__ */ jsx(
|
|
6092
6154
|
"input",
|
|
6093
6155
|
{
|
|
6094
6156
|
ref,
|
|
@@ -6102,6 +6164,21 @@ var Input = React11.forwardRef(
|
|
|
6102
6164
|
...props
|
|
6103
6165
|
}
|
|
6104
6166
|
);
|
|
6167
|
+
if (!hasWrapper) {
|
|
6168
|
+
return inputEl;
|
|
6169
|
+
}
|
|
6170
|
+
return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
6171
|
+
leadingIcon != null && /* @__PURE__ */ jsx(
|
|
6172
|
+
"span",
|
|
6173
|
+
{
|
|
6174
|
+
"aria-hidden": "true",
|
|
6175
|
+
className: "pointer-events-none absolute left-3 top-1/2 flex size-4 -translate-y-1/2 items-center justify-center text-muted-foreground",
|
|
6176
|
+
children: leadingIcon
|
|
6177
|
+
}
|
|
6178
|
+
),
|
|
6179
|
+
inputEl,
|
|
6180
|
+
validationState === "valid" && CheckIcon
|
|
6181
|
+
] });
|
|
6105
6182
|
}
|
|
6106
6183
|
);
|
|
6107
6184
|
Input.displayName = "Input";
|
|
@@ -14014,22 +14091,36 @@ var statusPulseVariants = cva({
|
|
|
14014
14091
|
}
|
|
14015
14092
|
});
|
|
14016
14093
|
var statusLabelStyles = "text-sm text-muted-foreground";
|
|
14017
|
-
|
|
14018
|
-
|
|
14094
|
+
function deriveAriaLabel(label, children, fallback) {
|
|
14095
|
+
if (label) return label;
|
|
14096
|
+
if (typeof children === "string" || typeof children === "number") {
|
|
14097
|
+
return String(children);
|
|
14098
|
+
}
|
|
14099
|
+
return fallback;
|
|
14100
|
+
}
|
|
14019
14101
|
function StatusIndicator({
|
|
14020
14102
|
type,
|
|
14021
14103
|
label,
|
|
14104
|
+
children,
|
|
14022
14105
|
pulse,
|
|
14023
14106
|
showLabel = true,
|
|
14024
14107
|
className
|
|
14025
14108
|
}) {
|
|
14026
14109
|
const api = createStatusIndicator({ type, label, pulse });
|
|
14110
|
+
const ariaLabel = deriveAriaLabel(label, children, api.label);
|
|
14111
|
+
const visibleLabel = label ?? children ?? api.label;
|
|
14027
14112
|
const dotClassName = api.pulse ? statusPulseVariants({ type }) : statusDotVariants({ type });
|
|
14028
|
-
return
|
|
14113
|
+
return /* @__PURE__ */ jsxs(
|
|
14029
14114
|
"span",
|
|
14030
|
-
{
|
|
14031
|
-
|
|
14032
|
-
|
|
14115
|
+
{
|
|
14116
|
+
...api.ariaProps,
|
|
14117
|
+
"aria-label": ariaLabel,
|
|
14118
|
+
className: cn(statusContainerStyles, className),
|
|
14119
|
+
children: [
|
|
14120
|
+
/* @__PURE__ */ jsx("span", { className: dotClassName }),
|
|
14121
|
+
showLabel && /* @__PURE__ */ jsx("span", { className: statusLabelStyles, children: visibleLabel })
|
|
14122
|
+
]
|
|
14123
|
+
}
|
|
14033
14124
|
);
|
|
14034
14125
|
}
|
|
14035
14126
|
StatusIndicator.displayName = "StatusIndicator";
|
|
@@ -16462,7 +16553,7 @@ function createClientSdkSink(opts) {
|
|
|
16462
16553
|
}
|
|
16463
16554
|
const mod = await import(
|
|
16464
16555
|
/* @vite-ignore */
|
|
16465
|
-
'./applicationinsights-web-
|
|
16556
|
+
'./applicationinsights-web-H7OBLIVJ.js'
|
|
16466
16557
|
);
|
|
16467
16558
|
const ai = new mod.ApplicationInsights({
|
|
16468
16559
|
config: {
|
|
@@ -16999,6 +17090,590 @@ function useTrackEvent(options) {
|
|
|
16999
17090
|
);
|
|
17000
17091
|
}
|
|
17001
17092
|
|
|
17002
|
-
|
|
17093
|
+
// ../segmented-control/dist/index.js
|
|
17094
|
+
function createSegmentedControl(props = {}) {
|
|
17095
|
+
const { value, size = "md" } = props;
|
|
17096
|
+
const ariaProps = {
|
|
17097
|
+
role: "radiogroup"
|
|
17098
|
+
};
|
|
17099
|
+
const dataAttributes = {
|
|
17100
|
+
"data-size": size
|
|
17101
|
+
};
|
|
17102
|
+
if (value !== void 0) {
|
|
17103
|
+
dataAttributes["data-value"] = value;
|
|
17104
|
+
}
|
|
17105
|
+
return { ariaProps, dataAttributes };
|
|
17106
|
+
}
|
|
17107
|
+
function getNextSegmentIndex(current, key, count) {
|
|
17108
|
+
if (count <= 0) return current;
|
|
17109
|
+
switch (key) {
|
|
17110
|
+
case "ArrowRight":
|
|
17111
|
+
case "ArrowDown":
|
|
17112
|
+
return (current + 1) % count;
|
|
17113
|
+
case "ArrowLeft":
|
|
17114
|
+
case "ArrowUp":
|
|
17115
|
+
return (current - 1 + count) % count;
|
|
17116
|
+
case "Home":
|
|
17117
|
+
return 0;
|
|
17118
|
+
case "End":
|
|
17119
|
+
return count - 1;
|
|
17120
|
+
default:
|
|
17121
|
+
return current;
|
|
17122
|
+
}
|
|
17123
|
+
}
|
|
17124
|
+
var segmentedControlVariants = cva({
|
|
17125
|
+
base: "inline-flex items-center gap-1 rounded-lg bg-muted p-1",
|
|
17126
|
+
variants: {
|
|
17127
|
+
size: {
|
|
17128
|
+
sm: "",
|
|
17129
|
+
md: ""
|
|
17130
|
+
}
|
|
17131
|
+
},
|
|
17132
|
+
defaultVariants: {
|
|
17133
|
+
size: "md"
|
|
17134
|
+
}
|
|
17135
|
+
});
|
|
17136
|
+
var segmentedControlItemVariants = cva({
|
|
17137
|
+
base: [
|
|
17138
|
+
"inline-flex items-center justify-center gap-1.5 rounded-md font-medium",
|
|
17139
|
+
"whitespace-nowrap transition-colors",
|
|
17140
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
17141
|
+
"focus-visible:ring-offset-2 focus-visible:ring-offset-muted"
|
|
17142
|
+
].join(" "),
|
|
17143
|
+
variants: {
|
|
17144
|
+
size: {
|
|
17145
|
+
sm: "px-2.5 py-1 text-xs",
|
|
17146
|
+
md: "px-3 py-1.5 text-sm"
|
|
17147
|
+
},
|
|
17148
|
+
state: {
|
|
17149
|
+
checked: "bg-background text-foreground shadow-sm",
|
|
17150
|
+
unchecked: "text-muted-foreground hover:text-foreground"
|
|
17151
|
+
}
|
|
17152
|
+
},
|
|
17153
|
+
defaultVariants: {
|
|
17154
|
+
size: "md",
|
|
17155
|
+
state: "unchecked"
|
|
17156
|
+
}
|
|
17157
|
+
});
|
|
17158
|
+
var SegmentedControlContext = React11.createContext(null);
|
|
17159
|
+
function useSegmentedControlContext(component) {
|
|
17160
|
+
const ctx = React11.useContext(SegmentedControlContext);
|
|
17161
|
+
if (!ctx) {
|
|
17162
|
+
throw new Error(`<${component}> must be used within <SegmentedControl>`);
|
|
17163
|
+
}
|
|
17164
|
+
return ctx;
|
|
17165
|
+
}
|
|
17166
|
+
var SegmentedControl = React11.forwardRef(
|
|
17167
|
+
({
|
|
17168
|
+
value: valueProp,
|
|
17169
|
+
defaultValue,
|
|
17170
|
+
onValueChange,
|
|
17171
|
+
size = "md",
|
|
17172
|
+
className,
|
|
17173
|
+
children,
|
|
17174
|
+
...props
|
|
17175
|
+
}, ref) => {
|
|
17176
|
+
const isControlled = valueProp !== void 0;
|
|
17177
|
+
const [internalValue, setInternalValue] = React11.useState(defaultValue);
|
|
17178
|
+
const value = isControlled ? valueProp : internalValue;
|
|
17179
|
+
const itemsRef = React11.useRef([]);
|
|
17180
|
+
const select = React11.useCallback(
|
|
17181
|
+
(next) => {
|
|
17182
|
+
if (!isControlled) setInternalValue(next);
|
|
17183
|
+
onValueChange?.(next);
|
|
17184
|
+
},
|
|
17185
|
+
[isControlled, onValueChange]
|
|
17186
|
+
);
|
|
17187
|
+
const register = React11.useCallback((itemValue, focus) => {
|
|
17188
|
+
const entry = { value: itemValue, focus };
|
|
17189
|
+
itemsRef.current.push(entry);
|
|
17190
|
+
return () => {
|
|
17191
|
+
itemsRef.current = itemsRef.current.filter((e) => e !== entry);
|
|
17192
|
+
};
|
|
17193
|
+
}, []);
|
|
17194
|
+
const move = React11.useCallback(
|
|
17195
|
+
(from, key) => {
|
|
17196
|
+
const items = itemsRef.current;
|
|
17197
|
+
const currentIndex = items.findIndex((e) => e.value === from);
|
|
17198
|
+
if (currentIndex === -1) return;
|
|
17199
|
+
const targetIndex = getNextSegmentIndex(currentIndex, key, items.length);
|
|
17200
|
+
if (targetIndex === currentIndex) return;
|
|
17201
|
+
const target = items[targetIndex];
|
|
17202
|
+
select(target.value);
|
|
17203
|
+
target.focus();
|
|
17204
|
+
},
|
|
17205
|
+
[select]
|
|
17206
|
+
);
|
|
17207
|
+
const ctx = React11.useMemo(
|
|
17208
|
+
() => ({ value, size, select, register, move }),
|
|
17209
|
+
[value, size, select, register, move]
|
|
17210
|
+
);
|
|
17211
|
+
const api = createSegmentedControl({ value, size });
|
|
17212
|
+
return /* @__PURE__ */ jsx(SegmentedControlContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx(
|
|
17213
|
+
"div",
|
|
17214
|
+
{
|
|
17215
|
+
ref,
|
|
17216
|
+
className: cn(segmentedControlVariants({ size }), className),
|
|
17217
|
+
...api.ariaProps,
|
|
17218
|
+
...api.dataAttributes,
|
|
17219
|
+
...props,
|
|
17220
|
+
children
|
|
17221
|
+
}
|
|
17222
|
+
) });
|
|
17223
|
+
}
|
|
17224
|
+
);
|
|
17225
|
+
SegmentedControl.displayName = "SegmentedControl";
|
|
17226
|
+
var SegmentedControlItem = React11.forwardRef(({ value, className, children, onKeyDown, onClick, ...props }, ref) => {
|
|
17227
|
+
const ctx = useSegmentedControlContext("SegmentedControlItem");
|
|
17228
|
+
const selected = ctx.value === value;
|
|
17229
|
+
const internalRef = React11.useRef(null);
|
|
17230
|
+
const mergedRef = React11.useCallback(
|
|
17231
|
+
(node) => {
|
|
17232
|
+
internalRef.current = node;
|
|
17233
|
+
if (typeof ref === "function") ref(node);
|
|
17234
|
+
else if (ref) ref.current = node;
|
|
17235
|
+
},
|
|
17236
|
+
[ref]
|
|
17237
|
+
);
|
|
17238
|
+
React11.useEffect(() => {
|
|
17239
|
+
return ctx.register(value, () => internalRef.current?.focus());
|
|
17240
|
+
}, [ctx, value]);
|
|
17241
|
+
const handleKeyDown = (event) => {
|
|
17242
|
+
onKeyDown?.(event);
|
|
17243
|
+
if (event.defaultPrevented) return;
|
|
17244
|
+
switch (event.key) {
|
|
17245
|
+
case "ArrowRight":
|
|
17246
|
+
case "ArrowDown":
|
|
17247
|
+
case "ArrowLeft":
|
|
17248
|
+
case "ArrowUp":
|
|
17249
|
+
case "Home":
|
|
17250
|
+
case "End":
|
|
17251
|
+
event.preventDefault();
|
|
17252
|
+
ctx.move(value, event.key);
|
|
17253
|
+
break;
|
|
17254
|
+
case " ":
|
|
17255
|
+
case "Enter":
|
|
17256
|
+
event.preventDefault();
|
|
17257
|
+
ctx.select(value);
|
|
17258
|
+
break;
|
|
17259
|
+
}
|
|
17260
|
+
};
|
|
17261
|
+
const handleClick = (event) => {
|
|
17262
|
+
onClick?.(event);
|
|
17263
|
+
if (event.defaultPrevented) return;
|
|
17264
|
+
ctx.select(value);
|
|
17265
|
+
};
|
|
17266
|
+
return /* @__PURE__ */ jsx(
|
|
17267
|
+
"button",
|
|
17268
|
+
{
|
|
17269
|
+
ref: mergedRef,
|
|
17270
|
+
type: "button",
|
|
17271
|
+
role: "radio",
|
|
17272
|
+
"aria-checked": selected,
|
|
17273
|
+
tabIndex: selected ? 0 : -1,
|
|
17274
|
+
"data-state": selected ? "checked" : "unchecked",
|
|
17275
|
+
className: cn(
|
|
17276
|
+
segmentedControlItemVariants({
|
|
17277
|
+
size: ctx.size,
|
|
17278
|
+
state: selected ? "checked" : "unchecked"
|
|
17279
|
+
}),
|
|
17280
|
+
className
|
|
17281
|
+
),
|
|
17282
|
+
onKeyDown: handleKeyDown,
|
|
17283
|
+
onClick: handleClick,
|
|
17284
|
+
...props,
|
|
17285
|
+
children
|
|
17286
|
+
}
|
|
17287
|
+
);
|
|
17288
|
+
});
|
|
17289
|
+
SegmentedControlItem.displayName = "SegmentedControlItem";
|
|
17290
|
+
|
|
17291
|
+
// ../password-input/dist/index.js
|
|
17292
|
+
var DEFAULT_REVEAL_LABEL = "Show password";
|
|
17293
|
+
var DEFAULT_HIDE_LABEL = "Hide password";
|
|
17294
|
+
function createPasswordInput(props = {}) {
|
|
17295
|
+
const {
|
|
17296
|
+
revealed = false,
|
|
17297
|
+
revealLabel = DEFAULT_REVEAL_LABEL,
|
|
17298
|
+
hideLabel = DEFAULT_HIDE_LABEL
|
|
17299
|
+
} = props;
|
|
17300
|
+
return {
|
|
17301
|
+
inputType: revealed ? "text" : "password",
|
|
17302
|
+
toggleLabel: revealed ? hideLabel : revealLabel,
|
|
17303
|
+
togglePressed: revealed
|
|
17304
|
+
};
|
|
17305
|
+
}
|
|
17306
|
+
var passwordToggleVariants = cva({
|
|
17307
|
+
base: "absolute right-2 top-1/2 flex size-7 -translate-y-1/2 items-center justify-center rounded-md text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
|
|
17308
|
+
});
|
|
17309
|
+
var EyeIcon = /* @__PURE__ */ jsxs(
|
|
17310
|
+
"svg",
|
|
17311
|
+
{
|
|
17312
|
+
"aria-hidden": "true",
|
|
17313
|
+
viewBox: "0 0 24 24",
|
|
17314
|
+
fill: "none",
|
|
17315
|
+
stroke: "currentColor",
|
|
17316
|
+
strokeWidth: "2",
|
|
17317
|
+
strokeLinecap: "round",
|
|
17318
|
+
strokeLinejoin: "round",
|
|
17319
|
+
className: "size-4",
|
|
17320
|
+
children: [
|
|
17321
|
+
/* @__PURE__ */ jsx("path", { d: "M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z" }),
|
|
17322
|
+
/* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "3" })
|
|
17323
|
+
]
|
|
17324
|
+
}
|
|
17325
|
+
);
|
|
17326
|
+
var EyeOffIcon = /* @__PURE__ */ jsxs(
|
|
17327
|
+
"svg",
|
|
17328
|
+
{
|
|
17329
|
+
"aria-hidden": "true",
|
|
17330
|
+
viewBox: "0 0 24 24",
|
|
17331
|
+
fill: "none",
|
|
17332
|
+
stroke: "currentColor",
|
|
17333
|
+
strokeWidth: "2",
|
|
17334
|
+
strokeLinecap: "round",
|
|
17335
|
+
strokeLinejoin: "round",
|
|
17336
|
+
className: "size-4",
|
|
17337
|
+
children: [
|
|
17338
|
+
/* @__PURE__ */ jsx("path", { d: "M9.88 9.88a3 3 0 1 0 4.24 4.24" }),
|
|
17339
|
+
/* @__PURE__ */ jsx("path", { d: "M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68" }),
|
|
17340
|
+
/* @__PURE__ */ jsx("path", { d: "M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61" }),
|
|
17341
|
+
/* @__PURE__ */ jsx("line", { x1: "2", x2: "22", y1: "2", y2: "22" })
|
|
17342
|
+
]
|
|
17343
|
+
}
|
|
17344
|
+
);
|
|
17345
|
+
var PasswordInput = React11.forwardRef(
|
|
17346
|
+
({ revealLabel = "Show password", hideLabel = "Hide password", className, ...props }, ref) => {
|
|
17347
|
+
const [revealed, setRevealed] = React11.useState(false);
|
|
17348
|
+
const { inputType, toggleLabel, togglePressed } = createPasswordInput({
|
|
17349
|
+
revealed,
|
|
17350
|
+
revealLabel,
|
|
17351
|
+
hideLabel
|
|
17352
|
+
});
|
|
17353
|
+
return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
17354
|
+
/* @__PURE__ */ jsx(
|
|
17355
|
+
Input,
|
|
17356
|
+
{
|
|
17357
|
+
ref,
|
|
17358
|
+
type: inputType,
|
|
17359
|
+
className: cn("pr-10", className),
|
|
17360
|
+
...props
|
|
17361
|
+
}
|
|
17362
|
+
),
|
|
17363
|
+
/* @__PURE__ */ jsx(
|
|
17364
|
+
"button",
|
|
17365
|
+
{
|
|
17366
|
+
type: "button",
|
|
17367
|
+
"aria-label": toggleLabel,
|
|
17368
|
+
"aria-pressed": togglePressed,
|
|
17369
|
+
onClick: () => setRevealed((v) => !v),
|
|
17370
|
+
className: passwordToggleVariants(),
|
|
17371
|
+
children: revealed ? EyeOffIcon : EyeIcon
|
|
17372
|
+
}
|
|
17373
|
+
)
|
|
17374
|
+
] });
|
|
17375
|
+
}
|
|
17376
|
+
);
|
|
17377
|
+
PasswordInput.displayName = "PasswordInput";
|
|
17378
|
+
|
|
17379
|
+
// ../social-auth-button/dist/index.js
|
|
17380
|
+
var PROVIDER_LABELS = {
|
|
17381
|
+
google: "Continue with Google",
|
|
17382
|
+
github: "Continue with GitHub",
|
|
17383
|
+
microsoft: "Continue with Microsoft",
|
|
17384
|
+
apple: "Continue with Apple"
|
|
17385
|
+
};
|
|
17386
|
+
var PROVIDER_MONO = {
|
|
17387
|
+
google: false,
|
|
17388
|
+
github: true,
|
|
17389
|
+
microsoft: false,
|
|
17390
|
+
apple: true
|
|
17391
|
+
};
|
|
17392
|
+
function createSocialAuthButton(props) {
|
|
17393
|
+
const { provider } = props;
|
|
17394
|
+
return {
|
|
17395
|
+
dataAttributes: { "data-provider": provider },
|
|
17396
|
+
label: PROVIDER_LABELS[provider],
|
|
17397
|
+
mono: PROVIDER_MONO[provider]
|
|
17398
|
+
};
|
|
17399
|
+
}
|
|
17400
|
+
var socialAuthButtonVariants = cva({
|
|
17401
|
+
base: "relative"
|
|
17402
|
+
});
|
|
17403
|
+
var socialAuthRowVariants = cva({
|
|
17404
|
+
base: "grid grid-cols-1 sm:grid-cols-2 gap-3"
|
|
17405
|
+
});
|
|
17406
|
+
var lastUsedBadgeVariants = cva({
|
|
17407
|
+
base: "absolute -top-2 -right-2 rounded-full bg-primary text-primary-foreground text-[10px] px-1.5"
|
|
17408
|
+
});
|
|
17409
|
+
var baseProps = {
|
|
17410
|
+
width: 18,
|
|
17411
|
+
height: 18,
|
|
17412
|
+
viewBox: "0 0 24 24",
|
|
17413
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
17414
|
+
"aria-hidden": true
|
|
17415
|
+
};
|
|
17416
|
+
function GoogleIcon({ mono, ...props }) {
|
|
17417
|
+
if (mono) {
|
|
17418
|
+
return /* @__PURE__ */ jsx("svg", { ...baseProps, ...props, children: /* @__PURE__ */ jsx(
|
|
17419
|
+
"path",
|
|
17420
|
+
{
|
|
17421
|
+
fill: "currentColor",
|
|
17422
|
+
d: "M21.35 11.1H12v2.92h5.35c-.23 1.4-1.65 4.1-5.35 4.1a5.99 5.99 0 0 1 0-11.98c1.71 0 2.86.73 3.52 1.36l2.4-2.31C16.46 3.7 14.43 2.8 12 2.8a9.2 9.2 0 1 0 0 18.4c5.31 0 8.82-3.73 8.82-8.99 0-.6-.07-1.06-.17-1.51Z"
|
|
17423
|
+
}
|
|
17424
|
+
) });
|
|
17425
|
+
}
|
|
17426
|
+
return /* @__PURE__ */ jsxs("svg", { ...baseProps, ...props, children: [
|
|
17427
|
+
/* @__PURE__ */ jsx(
|
|
17428
|
+
"path",
|
|
17429
|
+
{
|
|
17430
|
+
fill: "#4285F4",
|
|
17431
|
+
d: "M21.35 11.1H12v2.92h5.35c-.23 1.4-1.65 4.1-5.35 4.1a5.99 5.99 0 0 1 0-11.98c1.71 0 2.86.73 3.52 1.36l2.4-2.31C16.46 3.7 14.43 2.8 12 2.8a9.2 9.2 0 0 0 0 18.4c5.31 0 8.82-3.73 8.82-8.99 0-.6-.07-1.06-.17-1.51Z"
|
|
17432
|
+
}
|
|
17433
|
+
),
|
|
17434
|
+
/* @__PURE__ */ jsx(
|
|
17435
|
+
"path",
|
|
17436
|
+
{
|
|
17437
|
+
fill: "#34A853",
|
|
17438
|
+
d: "M3.88 7.55l2.41 1.77C6.93 7.76 8.32 6.74 10 6.4l-.34-2.85C7.06 4.02 4.93 5.5 3.88 7.55Z",
|
|
17439
|
+
opacity: 0
|
|
17440
|
+
}
|
|
17441
|
+
),
|
|
17442
|
+
/* @__PURE__ */ jsx(
|
|
17443
|
+
"path",
|
|
17444
|
+
{
|
|
17445
|
+
fill: "#FBBC05",
|
|
17446
|
+
d: "M12 21.2c2.43 0 4.46-.8 5.95-2.18l-2.74-2.13c-.74.5-1.74.86-3.21.86-2.66 0-4.92-1.79-5.73-4.2l-2.84 2.18A9.2 9.2 0 0 0 12 21.2Z",
|
|
17447
|
+
opacity: 0
|
|
17448
|
+
}
|
|
17449
|
+
)
|
|
17450
|
+
] });
|
|
17451
|
+
}
|
|
17452
|
+
function GitHubIcon({ mono: _mono, ...props }) {
|
|
17453
|
+
return /* @__PURE__ */ jsx("svg", { ...baseProps, ...props, children: /* @__PURE__ */ jsx(
|
|
17454
|
+
"path",
|
|
17455
|
+
{
|
|
17456
|
+
fill: "currentColor",
|
|
17457
|
+
d: "M12 2a10 10 0 0 0-3.16 19.49c.5.09.68-.22.68-.48l-.01-1.7c-2.78.6-3.37-1.34-3.37-1.34-.45-1.16-1.11-1.46-1.11-1.46-.91-.62.07-.61.07-.61 1 .07 1.53 1.03 1.53 1.03.9 1.53 2.36 1.09 2.94.83.09-.65.35-1.09.63-1.34-2.22-.25-4.55-1.11-4.55-4.94 0-1.09.39-1.98 1.03-2.68-.1-.25-.45-1.27.1-2.65 0 0 .84-.27 2.75 1.02a9.6 9.6 0 0 1 5 0c1.91-1.29 2.75-1.02 2.75-1.02.55 1.38.2 2.4.1 2.65.64.7 1.03 1.59 1.03 2.68 0 3.84-2.34 4.69-4.57 4.94.36.31.68.92.68 1.85l-.01 2.74c0 .27.18.58.69.48A10 10 0 0 0 12 2Z"
|
|
17458
|
+
}
|
|
17459
|
+
) });
|
|
17460
|
+
}
|
|
17461
|
+
function MicrosoftIcon({ mono, ...props }) {
|
|
17462
|
+
if (mono) {
|
|
17463
|
+
return /* @__PURE__ */ jsxs("svg", { ...baseProps, ...props, children: [
|
|
17464
|
+
/* @__PURE__ */ jsx("path", { fill: "currentColor", d: "M3 3h8v8H3z" }),
|
|
17465
|
+
/* @__PURE__ */ jsx("path", { fill: "currentColor", d: "M13 3h8v8h-8z", opacity: 0.7 }),
|
|
17466
|
+
/* @__PURE__ */ jsx("path", { fill: "currentColor", d: "M3 13h8v8H3z", opacity: 0.7 }),
|
|
17467
|
+
/* @__PURE__ */ jsx("path", { fill: "currentColor", d: "M13 13h8v8h-8z", opacity: 0.4 })
|
|
17468
|
+
] });
|
|
17469
|
+
}
|
|
17470
|
+
return /* @__PURE__ */ jsxs("svg", { ...baseProps, ...props, children: [
|
|
17471
|
+
/* @__PURE__ */ jsx("path", { fill: "#F25022", d: "M3 3h8v8H3z" }),
|
|
17472
|
+
/* @__PURE__ */ jsx("path", { fill: "#7FBA00", d: "M13 3h8v8h-8z" }),
|
|
17473
|
+
/* @__PURE__ */ jsx("path", { fill: "#00A4EF", d: "M3 13h8v8H3z" }),
|
|
17474
|
+
/* @__PURE__ */ jsx("path", { fill: "#FFB900", d: "M13 13h8v8h-8z" })
|
|
17475
|
+
] });
|
|
17476
|
+
}
|
|
17477
|
+
function AppleIcon({ mono: _mono, ...props }) {
|
|
17478
|
+
return /* @__PURE__ */ jsx("svg", { ...baseProps, ...props, children: /* @__PURE__ */ jsx(
|
|
17479
|
+
"path",
|
|
17480
|
+
{
|
|
17481
|
+
fill: "currentColor",
|
|
17482
|
+
d: "M16.37 12.78c-.03-2.62 2.14-3.88 2.24-3.94-1.22-1.79-3.12-2.03-3.79-2.06-1.61-.16-3.15.95-3.97.95-.82 0-2.08-.93-3.42-.9-1.76.03-3.39 1.02-4.29 2.6-1.83 3.18-.47 7.88 1.31 10.46.87 1.26 1.91 2.67 3.27 2.62 1.31-.05 1.81-.85 3.4-.85 1.58 0 2.03.85 3.42.82 1.41-.02 2.31-1.28 3.17-2.55.99-1.46 1.4-2.88 1.42-2.95-.03-.01-2.73-1.05-2.76-4.15M13.9 5.1c.72-.88 1.21-2.09 1.08-3.3-1.04.04-2.3.69-3.04 1.56-.66.77-1.24 2.01-1.09 3.19 1.16.09 2.34-.59 3.05-1.45"
|
|
17483
|
+
}
|
|
17484
|
+
) });
|
|
17485
|
+
}
|
|
17486
|
+
var PROVIDER_ICONS = {
|
|
17487
|
+
google: GoogleIcon,
|
|
17488
|
+
github: GitHubIcon,
|
|
17489
|
+
microsoft: MicrosoftIcon,
|
|
17490
|
+
apple: AppleIcon
|
|
17491
|
+
};
|
|
17492
|
+
var SocialAuthButton = React11.forwardRef(({ provider, lastUsed, loading, disabled, className, ...props }, ref) => {
|
|
17493
|
+
const { label, mono, dataAttributes } = createSocialAuthButton({ provider });
|
|
17494
|
+
const Icon = PROVIDER_ICONS[provider];
|
|
17495
|
+
return /* @__PURE__ */ jsxs("div", { className: socialAuthButtonVariants(), children: [
|
|
17496
|
+
/* @__PURE__ */ jsxs(
|
|
17497
|
+
Button,
|
|
17498
|
+
{
|
|
17499
|
+
ref,
|
|
17500
|
+
variant: "outline",
|
|
17501
|
+
loading,
|
|
17502
|
+
disabled,
|
|
17503
|
+
className: cn("w-full justify-center gap-2", className),
|
|
17504
|
+
...dataAttributes,
|
|
17505
|
+
...props,
|
|
17506
|
+
children: [
|
|
17507
|
+
!loading && /* @__PURE__ */ jsx(Icon, { mono, className: "shrink-0" }),
|
|
17508
|
+
label
|
|
17509
|
+
]
|
|
17510
|
+
}
|
|
17511
|
+
),
|
|
17512
|
+
lastUsed && /* @__PURE__ */ jsx("span", { className: lastUsedBadgeVariants(), children: "Last used" })
|
|
17513
|
+
] });
|
|
17514
|
+
});
|
|
17515
|
+
SocialAuthButton.displayName = "SocialAuthButton";
|
|
17516
|
+
var SocialAuthRow = React11.forwardRef(
|
|
17517
|
+
({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
17518
|
+
"div",
|
|
17519
|
+
{
|
|
17520
|
+
ref,
|
|
17521
|
+
className: cn(socialAuthRowVariants(), className),
|
|
17522
|
+
...props,
|
|
17523
|
+
children
|
|
17524
|
+
}
|
|
17525
|
+
)
|
|
17526
|
+
);
|
|
17527
|
+
SocialAuthRow.displayName = "SocialAuthRow";
|
|
17528
|
+
|
|
17529
|
+
// ../separator/dist/index.js
|
|
17530
|
+
function createSeparator(props = {}) {
|
|
17531
|
+
const { orientation = "horizontal", decorative = true } = props;
|
|
17532
|
+
const ariaProps = decorative ? { role: "none" } : { role: "separator", "aria-orientation": orientation };
|
|
17533
|
+
const dataAttributes = {
|
|
17534
|
+
"data-orientation": orientation
|
|
17535
|
+
};
|
|
17536
|
+
return {
|
|
17537
|
+
ariaProps,
|
|
17538
|
+
dataAttributes
|
|
17539
|
+
};
|
|
17540
|
+
}
|
|
17541
|
+
var separatorVariants = cva({
|
|
17542
|
+
base: "",
|
|
17543
|
+
variants: {
|
|
17544
|
+
orientation: {
|
|
17545
|
+
horizontal: "h-px w-full bg-border",
|
|
17546
|
+
vertical: "w-px h-full bg-border"
|
|
17547
|
+
},
|
|
17548
|
+
labeled: {
|
|
17549
|
+
true: "flex items-center",
|
|
17550
|
+
false: ""
|
|
17551
|
+
}
|
|
17552
|
+
},
|
|
17553
|
+
defaultVariants: {
|
|
17554
|
+
orientation: "horizontal",
|
|
17555
|
+
labeled: "false"
|
|
17556
|
+
}
|
|
17557
|
+
});
|
|
17558
|
+
var separatorLineClass = "h-px flex-1 bg-border";
|
|
17559
|
+
var separatorLabelClass = "px-3 text-xs uppercase tracking-wide text-muted-foreground";
|
|
17560
|
+
var Separator = React11.forwardRef(
|
|
17561
|
+
({
|
|
17562
|
+
orientation = "horizontal",
|
|
17563
|
+
label,
|
|
17564
|
+
decorative = true,
|
|
17565
|
+
className,
|
|
17566
|
+
...props
|
|
17567
|
+
}, ref) => {
|
|
17568
|
+
if (orientation === "horizontal" && label != null) {
|
|
17569
|
+
return /* @__PURE__ */ jsxs(
|
|
17570
|
+
"div",
|
|
17571
|
+
{
|
|
17572
|
+
ref,
|
|
17573
|
+
role: "none",
|
|
17574
|
+
className: cn(separatorVariants({ labeled: "true" }), className),
|
|
17575
|
+
...props,
|
|
17576
|
+
children: [
|
|
17577
|
+
/* @__PURE__ */ jsx("span", { className: separatorLineClass }),
|
|
17578
|
+
/* @__PURE__ */ jsx("span", { className: separatorLabelClass, children: label }),
|
|
17579
|
+
/* @__PURE__ */ jsx("span", { className: separatorLineClass })
|
|
17580
|
+
]
|
|
17581
|
+
}
|
|
17582
|
+
);
|
|
17583
|
+
}
|
|
17584
|
+
const { ariaProps, dataAttributes } = createSeparator({
|
|
17585
|
+
orientation,
|
|
17586
|
+
decorative
|
|
17587
|
+
});
|
|
17588
|
+
return /* @__PURE__ */ jsx(
|
|
17589
|
+
"div",
|
|
17590
|
+
{
|
|
17591
|
+
ref,
|
|
17592
|
+
className: cn(separatorVariants({ orientation }), className),
|
|
17593
|
+
...ariaProps,
|
|
17594
|
+
...dataAttributes,
|
|
17595
|
+
...props
|
|
17596
|
+
}
|
|
17597
|
+
);
|
|
17598
|
+
}
|
|
17599
|
+
);
|
|
17600
|
+
Separator.displayName = "Separator";
|
|
17601
|
+
|
|
17602
|
+
// ../empty-state/dist/index.js
|
|
17603
|
+
function createEmptyState(options = {}) {
|
|
17604
|
+
const { tone = "neutral" } = options;
|
|
17605
|
+
const dataAttributes = {
|
|
17606
|
+
"data-tone": tone
|
|
17607
|
+
};
|
|
17608
|
+
return {
|
|
17609
|
+
dataAttributes
|
|
17610
|
+
};
|
|
17611
|
+
}
|
|
17612
|
+
var emptyStateVariants = cva({
|
|
17613
|
+
base: "flex flex-col items-center text-center gap-3 p-8",
|
|
17614
|
+
variants: {
|
|
17615
|
+
bordered: {
|
|
17616
|
+
true: "rounded-xl border border-border bg-card",
|
|
17617
|
+
false: ""
|
|
17618
|
+
}
|
|
17619
|
+
},
|
|
17620
|
+
defaultVariants: {
|
|
17621
|
+
bordered: "false"
|
|
17622
|
+
}
|
|
17623
|
+
});
|
|
17624
|
+
var emptyStateIconChipVariants = cva({
|
|
17625
|
+
base: "flex size-12 items-center justify-center rounded-full",
|
|
17626
|
+
variants: {
|
|
17627
|
+
tone: {
|
|
17628
|
+
neutral: "bg-muted text-muted-foreground",
|
|
17629
|
+
success: "bg-green-500/10 text-green-600",
|
|
17630
|
+
warning: "bg-yellow-500/10 text-yellow-600",
|
|
17631
|
+
danger: "bg-destructive/10 text-destructive"
|
|
17632
|
+
}
|
|
17633
|
+
},
|
|
17634
|
+
defaultVariants: {
|
|
17635
|
+
tone: "neutral"
|
|
17636
|
+
}
|
|
17637
|
+
});
|
|
17638
|
+
var emptyStateTitleClass = "text-lg font-semibold text-foreground";
|
|
17639
|
+
var emptyStateDescriptionClass = "text-sm text-muted-foreground";
|
|
17640
|
+
var emptyStateActionsClass = "flex items-center justify-center gap-2";
|
|
17641
|
+
var EmptyState = React11.forwardRef(
|
|
17642
|
+
({
|
|
17643
|
+
icon,
|
|
17644
|
+
tone = "neutral",
|
|
17645
|
+
title,
|
|
17646
|
+
description,
|
|
17647
|
+
actions,
|
|
17648
|
+
bordered = false,
|
|
17649
|
+
className,
|
|
17650
|
+
...props
|
|
17651
|
+
}, ref) => {
|
|
17652
|
+
const api = createEmptyState({ tone });
|
|
17653
|
+
return /* @__PURE__ */ jsxs(
|
|
17654
|
+
"div",
|
|
17655
|
+
{
|
|
17656
|
+
ref,
|
|
17657
|
+
className: cn(
|
|
17658
|
+
emptyStateVariants({ bordered: bordered ? "true" : "false" }),
|
|
17659
|
+
className
|
|
17660
|
+
),
|
|
17661
|
+
...api.dataAttributes,
|
|
17662
|
+
...props,
|
|
17663
|
+
children: [
|
|
17664
|
+
icon != null && /* @__PURE__ */ jsx("div", { "aria-hidden": "true", className: emptyStateIconChipVariants({ tone }), children: icon }),
|
|
17665
|
+
/* @__PURE__ */ jsx("h3", { className: emptyStateTitleClass, children: title }),
|
|
17666
|
+
description != null && /* @__PURE__ */ jsx("p", { className: emptyStateDescriptionClass, children: description }),
|
|
17667
|
+
actions != null && /* @__PURE__ */ jsx("div", { className: emptyStateActionsClass, children: actions })
|
|
17668
|
+
]
|
|
17669
|
+
}
|
|
17670
|
+
);
|
|
17671
|
+
}
|
|
17672
|
+
);
|
|
17673
|
+
EmptyState.displayName = "EmptyState";
|
|
17674
|
+
var ConfirmationCard = React11.forwardRef(({ bordered = true, ...props }, ref) => /* @__PURE__ */ jsx(EmptyState, { ref, bordered, ...props }));
|
|
17675
|
+
ConfirmationCard.displayName = "ConfirmationCard";
|
|
17676
|
+
|
|
17677
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AltHintState, AnalyticsProvider, AnimatedText, AppShell, AuthGuard, AuthProvider, Avatar2 as Avatar, AvatarFallback, AvatarGroup, AvatarImage, Badge, BadgeDisplay, BottomNav, Breadcrumbs, Button, CATEGORY_LABELS, Calendar, CalendarHeader, Callout, CalloutContent, CalloutDescription, CalloutIcon, CalloutTitle, Card, CardContent, CardDescription, CardFooter, CardGrid, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselTrigger, Chat, Checkbox, CodeBlock, CodeBlockContent, CodeBlockHeader, CodeEditor, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, ComboboxContent, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, ComboboxTrigger, Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, Composer, ConfirmationCard, ContentProtection, CookieConsent, DEFAULT_CATEGORIES, DEFAULT_VOICE_PILL_POSITION, DEFAULT_VOICE_PILL_SPEAKER, DEFAULT_WAVEFORM_BAR_COUNT, DEFAULT_WAVEFORM_COLOR, DEFAULT_WAVEFORM_HEIGHT, DEFAULT_WAVEFORM_INTENSITY, DEFAULT_WAVEFORM_SMOOTHING, DataTable, DatePicker, DeviceFrame, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, EMOJI_CATEGORIES, EMOJI_DATA, EmojiPicker, EmptyState, FeedbackButton, FeedbackDialog, FileTree, FileUpload, Footer, IconSystem, InlineEditor, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InstallPrompt, KeyboardShortcut, LanguageSelector, LinkCard, MarkdownRenderer, MobileNav, MobileNavContent, MobileNavLink, MobileNavTrigger, Navbar, OtpInput, STATUS_COLORS as PRESENCE_STATUS_COLORS, STATUS_LABELS as PRESENCE_STATUS_LABELS, Pagination, PasswordInput, Payment, Popover, PopoverClose, PopoverContent, PopoverTrigger, PresenceIndicator, ProgressBar, RadioGroup, RadioItem, ReactionBar, ResizableDivider, ResizableLayout, ResizablePane, SANE_DEFAULTS, STATUS_INDICATOR_COLORS as STATUS_COLORS, STATUS_INDICATOR_LABELS as STATUS_LABELS, SearchBar, SearchResultItem, SearchResults, SegmentedControl, SegmentedControlItem, Select, SelectContent, SelectItem, SelectTrigger, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetTitle, SheetTrigger, ShortcutBadge, ShortcutContext, ShortcutHint, ShortcutProvider, ShortcutRegistry, Sidebar, Skeleton, SkeletonText, SkipToContent, SlideViewer, SocialAuthButton, SocialAuthRow, StatsGrid, StatusIndicator, Step, StepContent, StepDescription, StepIndicator, StepTitle, Steps, Switch, TableOfContents, Tabs, TabsContent, TabsList, TabsTrigger, TelemetryErrorBoundary, TelemetryProvider, Textarea, ThreadView, Toast, ToastProvider, Toaster, Tooltip, TooltipContent, TooltipTrigger, TypewriterText, VersionSelector, VideoPlayer, VoicePill, Waveform, altHintState, animatedTextVariants, avatarFallbackVariants, avatarImageVariants, avatarTokens, avatarVariants, badgeGridVariants, badgeItemVariants, badgeVariants, bottomNavTabVariants, bottomNavVariants, breadcrumbItemVariants, breadcrumbSeparatorStyles, breadcrumbsVariants, buttonTokens, buttonVariants, calendarVariants, canAccessAdmin, canAccessReviewer, cardContentVariants, cardDescriptionVariants, cardFooterVariants, cardHeaderVariants, cardTitleVariants, cardTokens, cardVariants, cellVariants, checkIconPath, checkboxTokens, checkboxVariants, clampVoicePillIntensity, codeEditorTokens, codeEditorVariants, collapsibleContentVariants, comboboxContentVariants, comboboxEmptyVariants, comboboxInputVariants, comboboxItemVariants, comboboxListVariants, comboboxTriggerVariants, commandGroupVariants, commandInputVariants, commandItemVariants, commandVariants, contentProtectionVariants, controlsVariants, createAnalytics, createAppInsightsSink, createConsoleSink, createConversation, createCookieConsent, createGA4ClientSdkSink, createGA4HttpSink, createGA4Sink, createIntensitySamples, createPostHogClientSdkSink, createPostHogHttpSink, createPostHogSink, createSegmentedControl, createSilentSamples, createTelemetry, createVoicePill, createWaveform, dayVariants, deviceFrameVariants, dialogContentVariants, drawWaveform, editorVariants, emojiPickerContainerStyles, emojiPickerEmojiButtonStyles, emojiPickerGridStyles, feedbackDialogVariants, fileUploadDropZoneVariants, fileUploadFileItemStyles, fileUploadFileListStyles, findMessage, footerVariants, formatFileSize, formatRelativeTime, formatShortcut, formatTimestamp, getAssignableRoles, getDefaultPortal, getInitials, getNextSegmentIndex, getReplyCount, getVoicePillAriaLabel, getVoicePillInitials, getVoicePillPosition, getVoicePillPulseStyle, getVoicePillSpeakerKey, getVoicePillSpeakerLabel, getWaveformPeak, globalShortcutRegistry, hasAllRoles, hasAnyRole, hasRole, headerVariants, indeterminateIconPath, inputGroupAddonVariants, inputGroupButtonVariants, inputGroupTokens, inputGroupVariants, inputVariants, installPromptVariants, isWaveformSampleInput, latestBadgeVariants, markdownRendererTokens, menuContentVariants, menuItemVariants, mobileNavContentVariants, mobileNavLinkVariants, mobileNavTokens, mobileNavTriggerVariants, mobileNavVariants, navLinkVariants, navbarVariants, normalizeBarCount, normalizeIntensity, normalizeSmoothing, normalizeWaveformConfig, normalizeWaveformSamples, optionVariants, otpInputContainerVariants, otpInputSlotVariants, otpInputTokens, overlayStyles, overlayVariants, playerVariants, popoverContentVariants, prepareWaveformCanvas, previewVariants, progressBarVariants, proseVariants, radioCircleVariants, radioGroupVariants, radioItemVariants, reactionAddButtonStyles, reactionBarStyles, reactionCountStyles, reactionEmojiStyles, reactionPillVariants, resampleWaveformSamples, resizableDividerVariants, resizableLayoutTokens, resizableLayoutVariants, resizablePaneVariants, rootIdOf, rowVariants, scaleWaveformSamples, searchBarVariants, searchResultVariants, segmentedControlItemVariants, segmentedControlVariants, selectContentVariants, selectItemVariants, selectMainTimeline, selectReplies, selectRoots, selectThreadMessages, selectTimelineFromState, selectTokens, selectTriggerVariants, selectorVariants, sheetContentVariants, sheetOverlayStyles, shortcutBadgeStyles, shortcutKeyStyles, shortcutSeparatorStyles, sidebarItemVariants, sidebarVariants, skeletonVariants, slideTypeBadgeVariants, slideViewerProgressBarVariants, slideViewerTokens, slideViewerVariants, smoothWaveformSamples, startSessionReplay, statCardVariants, statsGridVariants, statusContainerStyles, statusDotVariants, statusLabelStyles, statusPulseVariants, switchThumbVariants, switchTokens, switchVariants, tableVariants, tabsListVariants, tabsTriggerVariants, textareaVariants, threadAuthorStyles, threadAvatarStyles, threadBodyStyles, threadContainerStyles, threadContentStyles, threadMessageStyles, threadReactionsStyles, threadTimestampStyles, toCssDimension, toastVariants, toolbarVariants, tooltipContentVariants, typewriterVariants, useAnalytics, useAuth, useConversation, useCookieConsent, useLogger, useShortcut, useSpan, useTelemetry, useToast, useTrackEvent, versionSelectorOptionVariants, versionSelectorVariants, voicePillAvatarStyles, voicePillAvatarWrapStyles, voicePillLabelStyles, voicePillMuteButtonStyles, voicePillPositionVariants, voicePillPulseRingStyles, voicePillRootStyles, voicePillSpeakerStyles, voicePillSubStyles, voicePillTextStyles, voicePillTokens, watermarkVariants, waveformCanvasVariants, waveformVariants };
|
|
17003
17678
|
//# sourceMappingURL=index.js.map
|
|
17004
17679
|
//# sourceMappingURL=index.js.map
|