@fayz-ai/ui 0.11.0 → 0.12.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/analytics/AnalyticsCard.d.ts.map +1 -1
- package/dist/analytics/derive.d.ts.map +1 -1
- package/dist/{chunk-XRDCYOND.js → chunk-7BHG3XGJ.js} +92 -51
- package/dist/chunk-7BHG3XGJ.js.map +1 -0
- package/dist/{chunk-QSHA2Q27.js → chunk-ZDRHCKRK.js} +33 -17
- package/dist/chunk-ZDRHCKRK.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -5
- package/dist/index.js.map +1 -1
- package/dist/layout/AppShell.d.ts.map +1 -1
- package/dist/layout/AppShellSkeleton.d.ts +1 -1
- package/dist/layout/Sidebar.d.ts.map +1 -1
- package/dist/layout/index.js +1 -1
- package/dist/primitives/index.d.ts +1 -0
- package/dist/primitives/index.d.ts.map +1 -1
- package/dist/primitives/index.js +1 -1
- package/dist/primitives/refresh-button.d.ts +18 -0
- package/dist/primitives/refresh-button.d.ts.map +1 -0
- package/dist/styles.css +187 -0
- package/package.json +2 -2
- package/dist/chunk-QSHA2Q27.js.map +0 -1
- package/dist/chunk-XRDCYOND.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnalyticsCard.d.ts","sourceRoot":"","sources":["../../src/analytics/AnalyticsCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,gBAAgB,EAAkC,MAAM,eAAe,CAAA;AAyBrF,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,gBAAgB,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;
|
|
1
|
+
{"version":3,"file":"AnalyticsCard.d.ts","sourceRoot":"","sources":["../../src/analytics/AnalyticsCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,gBAAgB,EAAkC,MAAM,eAAe,CAAA;AAyBrF,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,gBAAgB,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AA4ID,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,kBAAkB,qBA4I9E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derive.d.ts","sourceRoot":"","sources":["../../src/analytics/derive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,EACjE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAClD,MAAM,eAAe,CAAA;AAWtB;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAWjD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"derive.d.ts","sourceRoot":"","sources":["../../src/analytics/derive.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { useSaveBarVisible, useCrossModuleBack, useBackHandler, HeaderTabs } from './chunk-VAKWUUVC.js';
|
|
2
2
|
import { Dropdown, DropdownTrigger, DropdownContent, DropdownItem, Card, DataTable, SegmentedControl } from './chunk-JGJNRNQW.js';
|
|
3
3
|
import { cn, Button } from './chunk-OKZ6WQB3.js';
|
|
4
|
-
import * as
|
|
4
|
+
import * as React14 from 'react';
|
|
5
5
|
import { useState, useRef, useEffect, useMemo, useCallback } from 'react';
|
|
6
6
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
7
7
|
import { cva } from 'class-variance-authority';
|
|
8
8
|
import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
9
|
-
import { X, ChevronDown, ChevronUp, Check, ArrowLeft, Search, ChevronLeft, ChevronRight, MoreHorizontal, ImageIcon, Clock, Plus,
|
|
9
|
+
import { X, ChevronDown, ChevronUp, Check, ArrowLeft, Search, ChevronLeft, ChevronRight, MoreHorizontal, ImageIcon, RefreshCw, Clock, Plus, Download, Calendar, Loader2, CheckCircle2, AlertTriangle, XCircle, Info } from 'lucide-react';
|
|
10
10
|
import * as SelectPrimitive from '@radix-ui/react-select';
|
|
11
11
|
import { Toaster } from 'sonner';
|
|
12
12
|
export { toast } from 'sonner';
|
|
@@ -17,9 +17,9 @@ import { useTranslation, getCountry, unmaskPhone, maskPhone, getCurrentLocale }
|
|
|
17
17
|
import { createPortal } from 'react-dom';
|
|
18
18
|
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
19
19
|
|
|
20
|
-
var Input =
|
|
20
|
+
var Input = React14.forwardRef(
|
|
21
21
|
({ className, type, error, description, id, ...props }, ref) => {
|
|
22
|
-
const inputId = id ??
|
|
22
|
+
const inputId = id ?? React14.useId();
|
|
23
23
|
const descriptionId = description ? `${inputId}-description` : void 0;
|
|
24
24
|
const errorId = error ? `${inputId}-error` : void 0;
|
|
25
25
|
return /* @__PURE__ */ jsxs("div", { className: "w-full", children: [
|
|
@@ -107,7 +107,7 @@ var Modal = DialogPrimitive.Root;
|
|
|
107
107
|
var ModalTrigger = DialogPrimitive.Trigger;
|
|
108
108
|
var ModalClose = DialogPrimitive.Close;
|
|
109
109
|
var ModalPortal = DialogPrimitive.Portal;
|
|
110
|
-
var ModalOverlay =
|
|
110
|
+
var ModalOverlay = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
111
111
|
DialogPrimitive.Overlay,
|
|
112
112
|
{
|
|
113
113
|
ref,
|
|
@@ -120,7 +120,7 @@ var ModalOverlay = React13.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
120
120
|
}
|
|
121
121
|
));
|
|
122
122
|
ModalOverlay.displayName = "ModalOverlay";
|
|
123
|
-
var ModalContent =
|
|
123
|
+
var ModalContent = React14.forwardRef(({ className, children, size = "lg", hideClose, noPadding, onPointerDownOutside, onInteractOutside, onCloseAutoFocus, ...props }, ref) => /* @__PURE__ */ jsx(ModalPortal, { children: /* @__PURE__ */ jsx(ModalOverlay, { children: /* @__PURE__ */ jsxs(
|
|
124
124
|
DialogPrimitive.Content,
|
|
125
125
|
{
|
|
126
126
|
ref,
|
|
@@ -175,14 +175,14 @@ function ModalBody({ className, ...props }) {
|
|
|
175
175
|
function ModalFooter({ className, ...props }) {
|
|
176
176
|
return /* @__PURE__ */ jsx("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2 shrink-0", className), ...props });
|
|
177
177
|
}
|
|
178
|
-
var ModalTitle =
|
|
178
|
+
var ModalTitle = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DialogPrimitive.Title, { ref, className: cn("text-lg font-semibold leading-none tracking-tight", className), ...props }));
|
|
179
179
|
ModalTitle.displayName = "ModalTitle";
|
|
180
|
-
var ModalDescription =
|
|
180
|
+
var ModalDescription = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DialogPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
|
|
181
181
|
ModalDescription.displayName = "ModalDescription";
|
|
182
182
|
var Select = SelectPrimitive.Root;
|
|
183
183
|
var SelectGroup = SelectPrimitive.Group;
|
|
184
184
|
var SelectValue = SelectPrimitive.Value;
|
|
185
|
-
var SelectTrigger =
|
|
185
|
+
var SelectTrigger = React14.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
186
186
|
SelectPrimitive.Trigger,
|
|
187
187
|
{
|
|
188
188
|
ref,
|
|
@@ -198,7 +198,7 @@ var SelectTrigger = React13.forwardRef(({ className, children, ...props }, ref)
|
|
|
198
198
|
}
|
|
199
199
|
));
|
|
200
200
|
SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
|
|
201
|
-
var SelectScrollUpButton =
|
|
201
|
+
var SelectScrollUpButton = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
202
202
|
SelectPrimitive.ScrollUpButton,
|
|
203
203
|
{
|
|
204
204
|
ref,
|
|
@@ -211,7 +211,7 @@ var SelectScrollUpButton = React13.forwardRef(({ className, ...props }, ref) =>
|
|
|
211
211
|
}
|
|
212
212
|
));
|
|
213
213
|
SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
|
|
214
|
-
var SelectScrollDownButton =
|
|
214
|
+
var SelectScrollDownButton = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
215
215
|
SelectPrimitive.ScrollDownButton,
|
|
216
216
|
{
|
|
217
217
|
ref,
|
|
@@ -224,7 +224,7 @@ var SelectScrollDownButton = React13.forwardRef(({ className, ...props }, ref) =
|
|
|
224
224
|
}
|
|
225
225
|
));
|
|
226
226
|
SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
|
|
227
|
-
var SelectContent =
|
|
227
|
+
var SelectContent = React14.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
|
|
228
228
|
SelectPrimitive.Content,
|
|
229
229
|
{
|
|
230
230
|
ref,
|
|
@@ -252,7 +252,7 @@ var SelectContent = React13.forwardRef(({ className, children, position = "poppe
|
|
|
252
252
|
}
|
|
253
253
|
) }));
|
|
254
254
|
SelectContent.displayName = SelectPrimitive.Content.displayName;
|
|
255
|
-
var SelectLabel =
|
|
255
|
+
var SelectLabel = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
256
256
|
SelectPrimitive.Label,
|
|
257
257
|
{
|
|
258
258
|
ref,
|
|
@@ -261,7 +261,7 @@ var SelectLabel = React13.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
261
261
|
}
|
|
262
262
|
));
|
|
263
263
|
SelectLabel.displayName = SelectPrimitive.Label.displayName;
|
|
264
|
-
var SelectItem =
|
|
264
|
+
var SelectItem = React14.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
265
265
|
SelectPrimitive.Item,
|
|
266
266
|
{
|
|
267
267
|
ref,
|
|
@@ -277,7 +277,7 @@ var SelectItem = React13.forwardRef(({ className, children, ...props }, ref) =>
|
|
|
277
277
|
}
|
|
278
278
|
));
|
|
279
279
|
SelectItem.displayName = SelectPrimitive.Item.displayName;
|
|
280
|
-
var SelectSeparator =
|
|
280
|
+
var SelectSeparator = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
281
281
|
SelectPrimitive.Separator,
|
|
282
282
|
{
|
|
283
283
|
ref,
|
|
@@ -315,7 +315,7 @@ function ToastProvider({
|
|
|
315
315
|
);
|
|
316
316
|
}
|
|
317
317
|
var Tabs = TabsPrimitive.Root;
|
|
318
|
-
var TabsList =
|
|
318
|
+
var TabsList = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
319
319
|
TabsPrimitive.List,
|
|
320
320
|
{
|
|
321
321
|
ref,
|
|
@@ -327,7 +327,7 @@ var TabsList = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
327
327
|
}
|
|
328
328
|
));
|
|
329
329
|
TabsList.displayName = TabsPrimitive.List.displayName;
|
|
330
|
-
var TabsTrigger =
|
|
330
|
+
var TabsTrigger = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
331
331
|
TabsPrimitive.Trigger,
|
|
332
332
|
{
|
|
333
333
|
ref,
|
|
@@ -339,7 +339,7 @@ var TabsTrigger = React13.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
339
339
|
}
|
|
340
340
|
));
|
|
341
341
|
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
342
|
-
var TabsContent =
|
|
342
|
+
var TabsContent = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
343
343
|
TabsPrimitive.Content,
|
|
344
344
|
{
|
|
345
345
|
ref,
|
|
@@ -351,7 +351,7 @@ var TabsContent = React13.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
351
351
|
}
|
|
352
352
|
));
|
|
353
353
|
TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
354
|
-
var Separator2 =
|
|
354
|
+
var Separator2 = React14.forwardRef(
|
|
355
355
|
({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
356
356
|
SeparatorPrimitive.Root,
|
|
357
357
|
{
|
|
@@ -402,7 +402,7 @@ function formatPhone(digits, fallback, countryCode) {
|
|
|
402
402
|
const tail = rest.length === 9 ? rest.slice(5) : rest.slice(4);
|
|
403
403
|
return `+55 (${ddd}) ${head}-${tail}`;
|
|
404
404
|
}
|
|
405
|
-
var PhoneLink =
|
|
405
|
+
var PhoneLink = React14.forwardRef(
|
|
406
406
|
({ phone, message, countryCode, raw, className, children, ...props }, ref) => {
|
|
407
407
|
const { e164, display } = normalizePhone(phone, countryCode);
|
|
408
408
|
const label = children ?? (raw ? phone ?? "" : display);
|
|
@@ -451,7 +451,7 @@ function Breadcrumb({ parent, current, onBack }) {
|
|
|
451
451
|
var TooltipProvider = TooltipPrimitive.Provider;
|
|
452
452
|
var Tooltip = TooltipPrimitive.Root;
|
|
453
453
|
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
454
|
-
var TooltipContent =
|
|
454
|
+
var TooltipContent = React14.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
455
455
|
TooltipPrimitive.Content,
|
|
456
456
|
{
|
|
457
457
|
ref,
|
|
@@ -617,8 +617,8 @@ var ICON_CLASSES = {
|
|
|
617
617
|
lg: "h-5 w-5"
|
|
618
618
|
};
|
|
619
619
|
function Thumbnail({ src, alt = "", size = "md", icon: Icon2 = ImageIcon, className }) {
|
|
620
|
-
const [failed, setFailed] =
|
|
621
|
-
|
|
620
|
+
const [failed, setFailed] = React14.useState(false);
|
|
621
|
+
React14.useEffect(() => {
|
|
622
622
|
setFailed(false);
|
|
623
623
|
}, [src]);
|
|
624
624
|
const base = cn("shrink-0 overflow-hidden", SIZE_CLASSES[size], className);
|
|
@@ -644,6 +644,47 @@ function Thumbnail({ src, alt = "", size = "md", icon: Icon2 = ImageIcon, classN
|
|
|
644
644
|
);
|
|
645
645
|
}
|
|
646
646
|
Thumbnail.displayName = "Thumbnail";
|
|
647
|
+
function RefreshButton({ onRefresh, fromCache, label, labelCached, className, ...rest }) {
|
|
648
|
+
const [phase, setPhase] = React14.useState("idle");
|
|
649
|
+
const alive = React14.useRef(true);
|
|
650
|
+
React14.useEffect(() => () => {
|
|
651
|
+
alive.current = false;
|
|
652
|
+
}, []);
|
|
653
|
+
const title = fromCache ? labelCached ?? label : label;
|
|
654
|
+
async function run() {
|
|
655
|
+
if (phase === "busy") return;
|
|
656
|
+
setPhase("busy");
|
|
657
|
+
try {
|
|
658
|
+
await onRefresh();
|
|
659
|
+
} catch {
|
|
660
|
+
}
|
|
661
|
+
if (!alive.current) return;
|
|
662
|
+
setPhase("done");
|
|
663
|
+
setTimeout(() => {
|
|
664
|
+
if (alive.current) setPhase((p) => p === "done" ? "idle" : p);
|
|
665
|
+
}, 1400);
|
|
666
|
+
}
|
|
667
|
+
return /* @__PURE__ */ jsx(
|
|
668
|
+
"button",
|
|
669
|
+
{
|
|
670
|
+
type: "button",
|
|
671
|
+
title,
|
|
672
|
+
"aria-label": title,
|
|
673
|
+
onClick: () => {
|
|
674
|
+
void run();
|
|
675
|
+
},
|
|
676
|
+
className: cn(
|
|
677
|
+
"inline-flex items-center justify-center transition",
|
|
678
|
+
fromCache && phase !== "done" && "text-amber-600 hover:text-amber-700 dark:text-amber-500 dark:hover:text-amber-400",
|
|
679
|
+
phase === "done" && "text-emerald-600 dark:text-emerald-500",
|
|
680
|
+
className
|
|
681
|
+
),
|
|
682
|
+
...rest,
|
|
683
|
+
children: phase === "done" ? /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx(RefreshCw, { className: cn("h-4 w-4", phase === "busy" && "animate-spin") })
|
|
684
|
+
}
|
|
685
|
+
);
|
|
686
|
+
}
|
|
687
|
+
RefreshButton.displayName = "RefreshButton";
|
|
647
688
|
function PhoneField({
|
|
648
689
|
value,
|
|
649
690
|
onChange,
|
|
@@ -704,7 +745,7 @@ var THUMB = {
|
|
|
704
745
|
sm: "h-3 w-3 data-[on=true]:translate-x-3",
|
|
705
746
|
md: "h-4 w-4 data-[on=true]:translate-x-4"
|
|
706
747
|
};
|
|
707
|
-
var Switch =
|
|
748
|
+
var Switch = React14.forwardRef(function Switch2({ checked, onCheckedChange, size = "sm", label, className, disabled, ...rest }, ref) {
|
|
708
749
|
const control = /* @__PURE__ */ jsx(
|
|
709
750
|
"button",
|
|
710
751
|
{
|
|
@@ -755,8 +796,8 @@ var Switch = React13.forwardRef(function Switch2({ checked, onCheckedChange, siz
|
|
|
755
796
|
}
|
|
756
797
|
);
|
|
757
798
|
});
|
|
758
|
-
var Hint =
|
|
759
|
-
if (!label) return
|
|
799
|
+
var Hint = React14.forwardRef(function Hint2({ label, children, side = "top", delayDuration = 0, ...rest }, ref) {
|
|
800
|
+
if (!label) return React14.cloneElement(children, { ...rest, ref });
|
|
760
801
|
return /* @__PURE__ */ jsx(TooltipPrimitive.Provider, { delayDuration, children: /* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
761
802
|
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, ...rest, ref, children }),
|
|
762
803
|
/* @__PURE__ */ jsx(TooltipContent, { side, className: "px-2 py-1 text-xs font-medium", children: label })
|
|
@@ -1231,16 +1272,16 @@ function SearchSelect({
|
|
|
1231
1272
|
className,
|
|
1232
1273
|
disabled
|
|
1233
1274
|
}) {
|
|
1234
|
-
const [open, setOpen] =
|
|
1235
|
-
const [query, setQuery] =
|
|
1236
|
-
const [results, setResults] =
|
|
1237
|
-
const [loading, setLoading] =
|
|
1238
|
-
const [creating, setCreating] =
|
|
1239
|
-
const [selectedLabel, setSelectedLabel] =
|
|
1240
|
-
const containerRef =
|
|
1241
|
-
const inputRef =
|
|
1242
|
-
const timerRef =
|
|
1243
|
-
|
|
1275
|
+
const [open, setOpen] = React14.useState(false);
|
|
1276
|
+
const [query, setQuery] = React14.useState("");
|
|
1277
|
+
const [results, setResults] = React14.useState([]);
|
|
1278
|
+
const [loading, setLoading] = React14.useState(false);
|
|
1279
|
+
const [creating, setCreating] = React14.useState(false);
|
|
1280
|
+
const [selectedLabel, setSelectedLabel] = React14.useState(displayValue ?? "");
|
|
1281
|
+
const containerRef = React14.useRef(null);
|
|
1282
|
+
const inputRef = React14.useRef(null);
|
|
1283
|
+
const timerRef = React14.useRef();
|
|
1284
|
+
React14.useEffect(() => {
|
|
1244
1285
|
function handler(e) {
|
|
1245
1286
|
if (containerRef.current && !containerRef.current.contains(e.target)) {
|
|
1246
1287
|
setOpen(false);
|
|
@@ -1249,10 +1290,10 @@ function SearchSelect({
|
|
|
1249
1290
|
document.addEventListener("mousedown", handler);
|
|
1250
1291
|
return () => document.removeEventListener("mousedown", handler);
|
|
1251
1292
|
}, []);
|
|
1252
|
-
|
|
1293
|
+
React14.useEffect(() => {
|
|
1253
1294
|
if (displayValue !== void 0) setSelectedLabel(displayValue);
|
|
1254
1295
|
}, [displayValue]);
|
|
1255
|
-
|
|
1296
|
+
React14.useEffect(() => {
|
|
1256
1297
|
if (open && loadOnOpen && query.length === 0 && results.length === 0 && !loading) {
|
|
1257
1298
|
setLoading(true);
|
|
1258
1299
|
Promise.resolve(onSearch("")).then(setResults).catch(() => setResults([])).finally(() => setLoading(false));
|
|
@@ -1310,7 +1351,7 @@ function SearchSelect({
|
|
|
1310
1351
|
setResults([]);
|
|
1311
1352
|
setTimeout(() => inputRef.current?.focus(), 0);
|
|
1312
1353
|
}
|
|
1313
|
-
const groups =
|
|
1354
|
+
const groups = React14.useMemo(() => {
|
|
1314
1355
|
const map = /* @__PURE__ */ new Map();
|
|
1315
1356
|
for (const opt of results) {
|
|
1316
1357
|
const group = opt.group ?? "";
|
|
@@ -1388,7 +1429,7 @@ function SearchSelect({
|
|
|
1388
1429
|
}
|
|
1389
1430
|
)
|
|
1390
1431
|
] }) : /* @__PURE__ */ jsxs("div", { className: "max-h-64 overflow-auto py-1", children: [
|
|
1391
|
-
[...groups.entries()].map(([group, options]) => /* @__PURE__ */ jsxs(
|
|
1432
|
+
[...groups.entries()].map(([group, options]) => /* @__PURE__ */ jsxs(React14.Fragment, { children: [
|
|
1392
1433
|
group && /* @__PURE__ */ jsx("div", { className: "sticky top-0 bg-muted/50 px-3 py-1 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground", children: group }),
|
|
1393
1434
|
options.map((opt) => /* @__PURE__ */ jsx(
|
|
1394
1435
|
"button",
|
|
@@ -1439,9 +1480,9 @@ function CurrencyInput({
|
|
|
1439
1480
|
className,
|
|
1440
1481
|
disabled
|
|
1441
1482
|
}) {
|
|
1442
|
-
const inputRef =
|
|
1443
|
-
const [focused, setFocused] =
|
|
1444
|
-
const format =
|
|
1483
|
+
const inputRef = React14.useRef(null);
|
|
1484
|
+
const [focused, setFocused] = React14.useState(false);
|
|
1485
|
+
const format = React14.useCallback((v) => {
|
|
1445
1486
|
return new Intl.NumberFormat(locale, {
|
|
1446
1487
|
minimumFractionDigits: 2,
|
|
1447
1488
|
maximumFractionDigits: 2
|
|
@@ -1550,7 +1591,7 @@ function ConfirmDialog({
|
|
|
1550
1591
|
}) {
|
|
1551
1592
|
const config = VARIANT_CONFIG[variant];
|
|
1552
1593
|
const Icon2 = config.icon;
|
|
1553
|
-
|
|
1594
|
+
React14.useEffect(() => {
|
|
1554
1595
|
if (!open) return;
|
|
1555
1596
|
function handleKey(e) {
|
|
1556
1597
|
if (e.key === "Escape") onCancel();
|
|
@@ -1597,7 +1638,7 @@ function ConfirmDialog({
|
|
|
1597
1638
|
}
|
|
1598
1639
|
var Popover = PopoverPrimitive.Root;
|
|
1599
1640
|
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
1600
|
-
var PopoverContent =
|
|
1641
|
+
var PopoverContent = React14.forwardRef(({ className, align = "start", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
1601
1642
|
PopoverPrimitive.Content,
|
|
1602
1643
|
{
|
|
1603
1644
|
ref,
|
|
@@ -1658,7 +1699,7 @@ function renderInline(text, keyPrefix) {
|
|
|
1658
1699
|
if (part.startsWith("`") && part.endsWith("`") && part.length > 2) {
|
|
1659
1700
|
return /* @__PURE__ */ jsx("code", { className: "rounded bg-muted px-1 py-0.5 font-mono text-[0.85em]", children: part.slice(1, -1) }, key);
|
|
1660
1701
|
}
|
|
1661
|
-
return part === "" ? null : /* @__PURE__ */ jsx(
|
|
1702
|
+
return part === "" ? null : /* @__PURE__ */ jsx(React14.Fragment, { children: part }, key);
|
|
1662
1703
|
});
|
|
1663
1704
|
}
|
|
1664
1705
|
function parseBlocks(source) {
|
|
@@ -1742,7 +1783,7 @@ function renderMarkdown(source) {
|
|
|
1742
1783
|
case "ol":
|
|
1743
1784
|
return /* @__PURE__ */ jsx("ol", { className: "list-decimal space-y-1 pl-5", children: block.items.map((item, li) => /* @__PURE__ */ jsx("li", { children: renderInline(item, `${key}-${li}`) }, `${key}-${li}`)) }, key);
|
|
1744
1785
|
case "p":
|
|
1745
|
-
return /* @__PURE__ */ jsx("p", { children: block.lines.map((l, li) => /* @__PURE__ */ jsxs(
|
|
1786
|
+
return /* @__PURE__ */ jsx("p", { children: block.lines.map((l, li) => /* @__PURE__ */ jsxs(React14.Fragment, { children: [
|
|
1746
1787
|
li > 0 && /* @__PURE__ */ jsx("br", {}),
|
|
1747
1788
|
renderInline(l, `${key}-${li}`)
|
|
1748
1789
|
] }, `${key}-${li}`)) }, key);
|
|
@@ -1763,7 +1804,7 @@ function MarkdownEditor({
|
|
|
1763
1804
|
renderPreview,
|
|
1764
1805
|
className
|
|
1765
1806
|
}) {
|
|
1766
|
-
const [mode, setMode] =
|
|
1807
|
+
const [mode, setMode] = React14.useState(
|
|
1767
1808
|
defaultMode === "preview" && value.trim() === "" ? "edit" : defaultMode
|
|
1768
1809
|
);
|
|
1769
1810
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-2", className), children: [
|
|
@@ -2006,6 +2047,6 @@ function SearchCombobox({
|
|
|
2006
2047
|
] });
|
|
2007
2048
|
}
|
|
2008
2049
|
|
|
2009
|
-
export { Badge, Breadcrumb, BulkActionBar, ChevronPager, ConfirmDialog, CurrencyInput, DatePicker, FilterChip, Hint, Input, ListView, Markdown, MarkdownEditor, Modal, ModalBody, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalOverlay, ModalPortal, ModalTitle, ModalTrigger, PhoneField, PhoneLink, Popover, PopoverContent, PopoverTrigger, SearchCombobox, SearchField, SearchSelect, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator2 as Separator, StatTiles, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Thumbnail, TimePicker, ToastProvider, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, formatPhone2 as formatPhone, normalizePhone, renderMarkdown };
|
|
2010
|
-
//# sourceMappingURL=chunk-
|
|
2011
|
-
//# sourceMappingURL=chunk-
|
|
2050
|
+
export { Badge, Breadcrumb, BulkActionBar, ChevronPager, ConfirmDialog, CurrencyInput, DatePicker, FilterChip, Hint, Input, ListView, Markdown, MarkdownEditor, Modal, ModalBody, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalOverlay, ModalPortal, ModalTitle, ModalTrigger, PhoneField, PhoneLink, Popover, PopoverContent, PopoverTrigger, RefreshButton, SearchCombobox, SearchField, SearchSelect, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator2 as Separator, StatTiles, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Thumbnail, TimePicker, ToastProvider, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, formatPhone2 as formatPhone, normalizePhone, renderMarkdown };
|
|
2051
|
+
//# sourceMappingURL=chunk-7BHG3XGJ.js.map
|
|
2052
|
+
//# sourceMappingURL=chunk-7BHG3XGJ.js.map
|