@wow-two-beta/ui 0.0.57 → 0.0.58
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/actions/button/Button.d.ts +0 -9
- package/dist/actions/buttonGroup/ButtonGroup.d.ts +2 -2
- package/dist/actions/disclosureButton/DisclosureButton.d.ts +1 -1
- package/dist/actions/index.js +4 -4
- package/dist/actions/speedDial/SpeedDial.d.ts +2 -2
- package/dist/actions/toggleButton/ToggleButton.d.ts +1 -1
- package/dist/actions/toggleButtonGroup/ToggleButtonGroup.d.ts +1 -1
- package/dist/{chunk-VR5HH4SX.js → chunk-4XWLEKH2.js} +10 -4
- package/dist/chunk-4XWLEKH2.js.map +1 -0
- package/dist/{chunk-3GZOE7JF.js → chunk-577JZ2A2.js} +3 -3
- package/dist/{chunk-3GZOE7JF.js.map → chunk-577JZ2A2.js.map} +1 -1
- package/dist/{chunk-BI6JZY2O.js → chunk-DJJOQWOG.js} +6 -6
- package/dist/chunk-DJJOQWOG.js.map +1 -0
- package/dist/{chunk-FEXH7YWU.js → chunk-EEHJHPAP.js} +30 -30
- package/dist/chunk-EEHJHPAP.js.map +1 -0
- package/dist/{chunk-5Y43MUOK.js → chunk-EJCO7AWR.js} +11 -11
- package/dist/chunk-EJCO7AWR.js.map +1 -0
- package/dist/{chunk-ZFNGOAHR.js → chunk-EX4AOJCN.js} +58 -58
- package/dist/chunk-EX4AOJCN.js.map +1 -0
- package/dist/{chunk-4WYHY6KV.js → chunk-FNSC4LAL.js} +3 -3
- package/dist/{chunk-4WYHY6KV.js.map → chunk-FNSC4LAL.js.map} +1 -1
- package/dist/{chunk-WOKIYORV.js → chunk-FYG23O4O.js} +262 -28
- package/dist/chunk-FYG23O4O.js.map +1 -0
- package/dist/{chunk-WPTF6ZRR.js → chunk-GSAOM2ZR.js} +67 -38
- package/dist/chunk-GSAOM2ZR.js.map +1 -0
- package/dist/{chunk-JOOE4KS5.js → chunk-HG7NX6GP.js} +509 -380
- package/dist/chunk-HG7NX6GP.js.map +1 -0
- package/dist/{chunk-XDP6GEBA.js → chunk-JYGC5SRP.js} +39 -5
- package/dist/chunk-JYGC5SRP.js.map +1 -0
- package/dist/{chunk-4QOCAFCA.js → chunk-MTD4RTGO.js} +19 -19
- package/dist/chunk-MTD4RTGO.js.map +1 -0
- package/dist/{chunk-USGZGMLY.js → chunk-NR5DYKSJ.js} +3 -3
- package/dist/{chunk-USGZGMLY.js.map → chunk-NR5DYKSJ.js.map} +1 -1
- package/dist/{chunk-VYOQYXK6.js → chunk-OBW7JUNL.js} +12 -12
- package/dist/chunk-OBW7JUNL.js.map +1 -0
- package/dist/{chunk-UI4RT5JF.js → chunk-TTSJZEL7.js} +25 -25
- package/dist/chunk-TTSJZEL7.js.map +1 -0
- package/dist/{chunk-5PMOT5MD.js → chunk-V267IMBH.js} +86 -4
- package/dist/chunk-V267IMBH.js.map +1 -0
- package/dist/{chunk-ZH6BB54G.js → chunk-XDATW7NF.js} +3 -3
- package/dist/{chunk-ZH6BB54G.js.map → chunk-XDATW7NF.js.map} +1 -1
- package/dist/{chunk-4OKJVYBV.js → chunk-Y5GS4CLT.js} +221 -186
- package/dist/chunk-Y5GS4CLT.js.map +1 -0
- package/dist/display/accordion/Accordion.d.ts +15 -11
- package/dist/display/activityFeed/ActivityFeed.d.ts +2 -2
- package/dist/display/annotationMarker/AnnotationMarker.d.ts +6 -7
- package/dist/display/audioPlayer/AudioPlayer.d.ts +1 -1
- package/dist/display/audioWaveform/AudioWaveform.d.ts +1 -1
- package/dist/display/avatar/Avatar.d.ts +1 -1
- package/dist/display/badgeOverlay/BadgeOverlay.d.ts +1 -1
- package/dist/display/carousel/Carousel.d.ts +1 -1
- package/dist/display/chatBubble/ChatBubble.d.ts +2 -2
- package/dist/display/collapsible/Collapsible.d.ts +2 -2
- package/dist/display/commentThread/CommentThread.d.ts +1 -1
- package/dist/display/confetti/Confetti.d.ts +2 -2
- package/dist/display/countBadge/CountBadge.d.ts +3 -4
- package/dist/display/countUp/CountUp.d.ts +2 -2
- package/dist/display/dataGrid/DataGrid.d.ts +2 -2
- package/dist/display/dataTable/DataTable.d.ts +5 -5
- package/dist/display/diffViewer/DiffViewer.d.ts +1 -1
- package/dist/display/eventCalendar/EventCalendar.d.ts +1 -1
- package/dist/display/gantt/Gantt.d.ts +1 -1
- package/dist/display/gradientText/GradientText.d.ts +2 -2
- package/dist/display/heatmapCalendar/HeatmapCalendar.d.ts +1 -1
- package/dist/display/highlight/Highlight.d.ts +2 -2
- package/dist/display/index.js +6 -6
- package/dist/display/list/List.d.ts +2 -2
- package/dist/display/marquee/Marquee.d.ts +1 -1
- package/dist/display/messageList/MessageList.d.ts +3 -3
- package/dist/display/notificationDot/NotificationDot.d.ts +1 -1
- package/dist/display/pdfViewer/PDFViewer.d.ts +1 -1
- package/dist/display/reactionBar/ReactionBar.d.ts +6 -6
- package/dist/display/scrollReveal/ScrollReveal.d.ts +1 -1
- package/dist/display/sectionHeader/SectionHeader.d.ts +1 -1
- package/dist/display/separator/Separator.d.ts +2 -3
- package/dist/display/sparkline/Sparkline.d.ts +1 -1
- package/dist/display/status/Status.d.ts +1 -1
- package/dist/display/swipeActions/SwipeActions.d.ts +1 -1
- package/dist/display/table/Table.d.ts +17 -5
- package/dist/display/table/index.d.ts +1 -1
- package/dist/display/tabs/Tabs.d.ts +1 -1
- package/dist/display/text/Text.variants.d.ts +14 -14
- package/dist/display/threadView/ThreadView.d.ts +2 -2
- package/dist/display/tilt/Tilt.d.ts +2 -3
- package/dist/display/tooltip/Tooltip.d.ts +2 -2
- package/dist/display/tree/Tree.d.ts +2 -2
- package/dist/display/typewriter/Typewriter.d.ts +2 -2
- package/dist/feedback/index.js +6 -6
- package/dist/feedback/liveCursor/LiveCursor.d.ts +4 -6
- package/dist/feedback/loadingOverlay/LoadingOverlay.d.ts +5 -6
- package/dist/feedback/notificationCenter/NotificationCenter.d.ts +1 -1
- package/dist/feedback/onboardingChecklist/OnboardingChecklist.d.ts +3 -3
- package/dist/feedback/presenceIndicator/PresenceIndicator.d.ts +1 -1
- package/dist/feedback/statusIndicator/StatusIndicator.d.ts +1 -1
- package/dist/feedback/toaster/Toaster.d.ts +2 -2
- package/dist/feedback/tour/Tour.d.ts +2 -2
- package/dist/feedback/trendIndicator/TrendIndicator.d.ts +2 -2
- package/dist/feedback/typingIndicator/TypingIndicator.d.ts +1 -1
- package/dist/feedback/undoBar/UndoBar.d.ts +4 -4
- package/dist/forms/addressForm/AddressForm.d.ts +3 -3
- package/dist/forms/characterCount/CharacterCount.d.ts +1 -1
- package/dist/forms/chatComposer/ChatComposer.d.ts +2 -2
- package/dist/forms/checkbox/Checkbox.d.ts +1 -1
- package/dist/forms/checkboxGroup/CheckboxGroup.d.ts +1 -1
- package/dist/forms/codeEditor/CodeEditor.d.ts +2 -2
- package/dist/forms/colorArea/ColorArea.d.ts +1 -1
- package/dist/forms/colorField/ColorField.d.ts +1 -1
- package/dist/forms/colorPicker/ColorPicker.d.ts +2 -2
- package/dist/forms/colorSlider/ColorSlider.d.ts +1 -1
- package/dist/forms/colorSwatch/ColorSwatch.variants.d.ts +14 -14
- package/dist/forms/colorSwatchPicker/ColorSwatchPicker.d.ts +2 -2
- package/dist/forms/colorWheel/ColorWheel.d.ts +1 -1
- package/dist/forms/combobox/Combobox.d.ts +4 -4
- package/dist/forms/cronInput/CronInput.d.ts +2 -2
- package/dist/forms/datePicker/DatePicker.d.ts +1 -1
- package/dist/forms/dateRangePicker/DateRangePicker.d.ts +1 -1
- package/dist/forms/editable/Editable.d.ts +7 -7
- package/dist/forms/emojiPicker/EmojiPicker.d.ts +1 -1
- package/dist/forms/fileUpload/FileUpload.d.ts +1 -1
- package/dist/forms/fontPicker/FontPicker.d.ts +1 -1
- package/dist/forms/gradientPicker/GradientPicker.d.ts +1 -1
- package/dist/forms/iconPicker/IconPicker.d.ts +1 -1
- package/dist/forms/index.js +11 -11
- package/dist/forms/jsonEditor/JSONEditor.d.ts +3 -3
- package/dist/forms/knob/Knob.d.ts +2 -2
- package/dist/forms/label/Label.d.ts +1 -1
- package/dist/forms/listbox/Listbox.d.ts +8 -4
- package/dist/forms/markdownEditor/MarkdownEditor.d.ts +1 -1
- package/dist/forms/multiSelect/MultiSelect.d.ts +4 -4
- package/dist/forms/passwordInput/PasswordInput.d.ts +1 -1
- package/dist/forms/passwordStrength/PasswordStrength.d.ts +1 -1
- package/dist/forms/phoneInput/PhoneInput.d.ts +3 -3
- package/dist/forms/pinInput/PinInput.d.ts +2 -2
- package/dist/forms/radioGroup/RadioGroup.d.ts +1 -1
- package/dist/forms/reactionPicker/ReactionPicker.d.ts +1 -1
- package/dist/forms/recurrenceEditor/RecurrenceEditor.d.ts +2 -2
- package/dist/forms/searchInput/SearchInput.d.ts +1 -1
- package/dist/forms/select/Select.d.ts +14 -7
- package/dist/forms/select/Select.variants.d.ts +46 -3
- package/dist/forms/stepper/Stepper.d.ts +1 -1
- package/dist/forms/tagsInput/TagsInput.d.ts +2 -2
- package/dist/forms/timePicker/TimePicker.d.ts +1 -1
- package/dist/forms/wizard/Wizard.d.ts +5 -5
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/useTypeahead.d.ts +37 -0
- package/dist/icons/index.js +1 -1
- package/dist/index.js +18 -18
- package/dist/layout/appShell/AppShell.d.ts +2 -2
- package/dist/layout/frame/Frame.d.ts +1 -1
- package/dist/layout/grid/Grid.d.ts +17 -5
- package/dist/layout/grid/Grid.variants.d.ts +15 -0
- package/dist/layout/grid/index.d.ts +1 -1
- package/dist/layout/index.d.ts +2 -0
- package/dist/layout/index.js +9 -9
- package/dist/layout/inline/Inline.d.ts +5 -0
- package/dist/layout/navbar/Navbar.d.ts +37 -0
- package/dist/layout/navbar/Navbar.variants.d.ts +76 -0
- package/dist/layout/navbar/index.d.ts +2 -0
- package/dist/layout/pullToRefresh/PullToRefresh.d.ts +1 -1
- package/dist/layout/resizablePanels/ResizablePanels.d.ts +1 -1
- package/dist/layout/section/Section.d.ts +26 -0
- package/dist/layout/section/Section.variants.d.ts +62 -0
- package/dist/layout/section/index.d.ts +2 -0
- package/dist/nav/commandPalette/CommandPalette.d.ts +1 -1
- package/dist/nav/contextMenu/ContextMenu.d.ts +1 -1
- package/dist/nav/index.js +8 -8
- package/dist/nav/menu/Menu.d.ts +1 -1
- package/dist/nav/navItem/NavItem.d.ts +2 -3
- package/dist/nav/tableOfContents/TableOfContents.d.ts +1 -1
- package/dist/overlays/actionSheet/ActionSheet.d.ts +1 -1
- package/dist/overlays/backdrop/Backdrop.d.ts +3 -6
- package/dist/overlays/dialog/Dialog.d.ts +1 -1
- package/dist/overlays/drawer/Drawer.d.ts +1 -1
- package/dist/overlays/index.js +8 -8
- package/dist/overlays/popover/Popover.d.ts +1 -1
- package/dist/primitives/anchoredPositioner/AnchoredPositioner.d.ts +1 -1
- package/dist/primitives/dismissableLayer/DismissableLayer.d.ts +2 -2
- package/dist/primitives/index.js +1 -1
- package/dist/primitives/presence/Presence.d.ts +3 -3
- package/dist/primitives/rovingFocusGroup/RovingFocusGroup.d.ts +3 -6
- package/dist/primitives/scrollLockProvider/ScrollLockProvider.d.ts +2 -2
- package/dist/utils/Environment.d.ts +8 -0
- package/dist/utils/SurfaceStyles.d.ts +7 -0
- package/dist/utils/Tones.d.ts +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-4OKJVYBV.js.map +0 -1
- package/dist/chunk-4QOCAFCA.js.map +0 -1
- package/dist/chunk-5PMOT5MD.js.map +0 -1
- package/dist/chunk-5Y43MUOK.js.map +0 -1
- package/dist/chunk-BI6JZY2O.js.map +0 -1
- package/dist/chunk-FEXH7YWU.js.map +0 -1
- package/dist/chunk-JOOE4KS5.js.map +0 -1
- package/dist/chunk-UI4RT5JF.js.map +0 -1
- package/dist/chunk-VR5HH4SX.js.map +0 -1
- package/dist/chunk-VYOQYXK6.js.map +0 -1
- package/dist/chunk-WOKIYORV.js.map +0 -1
- package/dist/chunk-WPTF6ZRR.js.map +0 -1
- package/dist/chunk-XDP6GEBA.js.map +0 -1
- package/dist/chunk-ZFNGOAHR.js.map +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Kbd, addDays, MONTHS_LONG, startOfDay, WEEKDAYS_SHORT, isToday, addMonths, isSameDay } from './chunk-
|
|
2
|
-
import { Inline } from './chunk-
|
|
3
|
-
import { useClipboard, useControlled, useReducedMotion, useEscape } from './chunk-
|
|
1
|
+
import { Kbd, addDays, MONTHS_LONG, startOfDay, WEEKDAYS_SHORT, isToday, addMonths, isSameDay } from './chunk-XDATW7NF.js';
|
|
2
|
+
import { Inline } from './chunk-4XWLEKH2.js';
|
|
3
|
+
import { useClipboard, useControlled, useReducedMotion, useEscape } from './chunk-V267IMBH.js';
|
|
4
4
|
import { Icon } from './chunk-MVMDDGW7.js';
|
|
5
|
-
import { tv, CssExtensions, surfaceVariants, dataAttr, composeEventHandlers, Tones } from './chunk-
|
|
6
|
-
import { Slot, RovingFocusGroup, useRovingFocusItem, Portal, AnchoredPositioner } from './chunk-
|
|
5
|
+
import { tv, CssExtensions, surfaceVariants, dataAttr, composeEventHandlers, Tones } from './chunk-JYGC5SRP.js';
|
|
6
|
+
import { Slot, RovingFocusGroup, useRovingFocusItem, Portal, AnchoredPositioner } from './chunk-TTSJZEL7.js';
|
|
7
7
|
import { useId as useId$1 } from './chunk-LGTGZ3RW.js';
|
|
8
8
|
import { cn, composeRefs } from './chunk-X2MYOHOB.js';
|
|
9
9
|
import { forwardRef, useState, useEffect, Children, isValidElement, Fragment as Fragment$1, createContext, useId, useMemo, useCallback, useContext, useRef, useImperativeHandle, useLayoutEffect, cloneElement } from 'react';
|
|
@@ -89,10 +89,10 @@ var textVariants = tv({
|
|
|
89
89
|
right: "text-right",
|
|
90
90
|
justify: "text-justify"
|
|
91
91
|
},
|
|
92
|
-
|
|
92
|
+
isTruncated: {
|
|
93
93
|
true: "truncate"
|
|
94
94
|
},
|
|
95
|
-
|
|
95
|
+
isTabular: {
|
|
96
96
|
true: "tabular-nums"
|
|
97
97
|
}
|
|
98
98
|
},
|
|
@@ -103,11 +103,11 @@ var textVariants = tv({
|
|
|
103
103
|
}
|
|
104
104
|
});
|
|
105
105
|
var Text = forwardRef(
|
|
106
|
-
({ as: Component = "p", className, size, weight, color, align,
|
|
106
|
+
({ as: Component = "p", className, size, weight, color, align, isTruncated, isTabular, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
107
107
|
Component,
|
|
108
108
|
{
|
|
109
109
|
ref,
|
|
110
|
-
className: cn(textVariants({ size, weight, color, align,
|
|
110
|
+
className: cn(textVariants({ size, weight, color, align, isTruncated, isTabular }), className),
|
|
111
111
|
...props
|
|
112
112
|
}
|
|
113
113
|
)
|
|
@@ -266,7 +266,7 @@ var Avatar = forwardRef(
|
|
|
266
266
|
name = "",
|
|
267
267
|
fallback,
|
|
268
268
|
alt,
|
|
269
|
-
|
|
269
|
+
canAutoColor,
|
|
270
270
|
tone,
|
|
271
271
|
bgStyle,
|
|
272
272
|
ring,
|
|
@@ -286,7 +286,7 @@ var Avatar = forwardRef(
|
|
|
286
286
|
AVATAR_SIZE_PRESETS
|
|
287
287
|
);
|
|
288
288
|
const boxStyle = sizeBox ? CssExtensions.resolveBoxSize(sizeBox) : void 0;
|
|
289
|
-
const autoColorClass =
|
|
289
|
+
const autoColorClass = canAutoColor && name && bgStyle !== "gradient" && (tone === void 0 || tone === "neutral") ? pickAutoColor(name) : void 0;
|
|
290
290
|
const effectiveTone = autoColorClass ? "none" : tone;
|
|
291
291
|
return /* @__PURE__ */ jsx(
|
|
292
292
|
"span",
|
|
@@ -345,12 +345,12 @@ var Badge = forwardRef(
|
|
|
345
345
|
);
|
|
346
346
|
Badge.displayName = "Badge";
|
|
347
347
|
var Separator = forwardRef(
|
|
348
|
-
({ orientation = "horizontal",
|
|
348
|
+
({ orientation = "horizontal", isDecorative = true, className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
349
349
|
"div",
|
|
350
350
|
{
|
|
351
351
|
ref,
|
|
352
|
-
role:
|
|
353
|
-
"aria-orientation":
|
|
352
|
+
role: isDecorative ? "none" : "separator",
|
|
353
|
+
"aria-orientation": isDecorative ? void 0 : orientation,
|
|
354
354
|
className: cn(
|
|
355
355
|
"bg-border",
|
|
356
356
|
orientation === "horizontal" ? "h-px w-full" : "w-px self-stretch",
|
|
@@ -468,7 +468,7 @@ function Tooltip({
|
|
|
468
468
|
open: openProp,
|
|
469
469
|
defaultOpen = false,
|
|
470
470
|
onOpenChange,
|
|
471
|
-
|
|
471
|
+
isDisabled
|
|
472
472
|
}) {
|
|
473
473
|
const [open, setOpen] = useControlled({
|
|
474
474
|
controlled: openProp,
|
|
@@ -504,7 +504,7 @@ function Tooltip({
|
|
|
504
504
|
clear();
|
|
505
505
|
setOpen(false);
|
|
506
506
|
}, open);
|
|
507
|
-
const visible = !
|
|
507
|
+
const visible = !isDisabled && open && !!content;
|
|
508
508
|
if (!isValidElement(children)) return children;
|
|
509
509
|
const trigger = children;
|
|
510
510
|
const cloned = cloneElement(trigger, {
|
|
@@ -676,7 +676,7 @@ var POS = {
|
|
|
676
676
|
"bottom-left": "absolute -bottom-0.5 -left-0.5"
|
|
677
677
|
};
|
|
678
678
|
var NotificationDot = forwardRef(
|
|
679
|
-
({ tone = "destructive", size = "sm",
|
|
679
|
+
({ tone = "destructive", size = "sm", hasPulse, position, className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
680
680
|
"span",
|
|
681
681
|
{
|
|
682
682
|
ref,
|
|
@@ -686,7 +686,7 @@ var NotificationDot = forwardRef(
|
|
|
686
686
|
TONE[tone],
|
|
687
687
|
SIZE2[size],
|
|
688
688
|
/* `relative` anchors the ::after ring; POS comes later so its `absolute` wins when positioned. */
|
|
689
|
-
|
|
689
|
+
hasPulse && `relative after:absolute after:inset-0 after:animate-ping after:rounded-full after:opacity-75 after:content-[""] ${PULSE_TONE[tone]}`,
|
|
690
690
|
position && POS[position],
|
|
691
691
|
className
|
|
692
692
|
),
|
|
@@ -696,8 +696,8 @@ var NotificationDot = forwardRef(
|
|
|
696
696
|
);
|
|
697
697
|
NotificationDot.displayName = "NotificationDot";
|
|
698
698
|
var CountBadge = forwardRef(
|
|
699
|
-
({ value, max = 99,
|
|
700
|
-
if (value === 0 &&
|
|
699
|
+
({ value, max = 99, canHideZero = true, variant = "danger", className, ...props }, ref) => {
|
|
700
|
+
if (value === 0 && canHideZero) return null;
|
|
701
701
|
const display = value > max ? `${max}+` : `${value}`;
|
|
702
702
|
return /* @__PURE__ */ jsx(
|
|
703
703
|
Badge,
|
|
@@ -726,7 +726,7 @@ var SIZE3 = {
|
|
|
726
726
|
md: { wrapper: "gap-2 text-sm", dot: "h-2 w-2" }
|
|
727
727
|
};
|
|
728
728
|
var Status = forwardRef(
|
|
729
|
-
({ tone = "success",
|
|
729
|
+
({ tone = "success", hasPulse, size = "md", className, children, ...props }, ref) => {
|
|
730
730
|
const sz = SIZE3[size];
|
|
731
731
|
return /* @__PURE__ */ jsxs(
|
|
732
732
|
"span",
|
|
@@ -737,7 +737,7 @@ var Status = forwardRef(
|
|
|
737
737
|
children: [
|
|
738
738
|
/* @__PURE__ */ jsxs("span", { className: "relative inline-flex", children: [
|
|
739
739
|
/* @__PURE__ */ jsx("span", { className: cn("inline-block rounded-full", sz.dot, TONE2[tone]) }),
|
|
740
|
-
|
|
740
|
+
hasPulse && /* @__PURE__ */ jsx(
|
|
741
741
|
"span",
|
|
742
742
|
{
|
|
743
743
|
className: cn(
|
|
@@ -893,20 +893,20 @@ var POS2 = {
|
|
|
893
893
|
"bottom-left": "bottom-0 left-0 translate-y-1/2 -translate-x-1/2"
|
|
894
894
|
};
|
|
895
895
|
var BadgeOverlay = forwardRef(
|
|
896
|
-
({ children, badge, position = "top-right",
|
|
896
|
+
({ children, badge, position = "top-right", isHidden, className, ...props }, ref) => /* @__PURE__ */ jsxs("div", { ref, className: cn("relative inline-flex", className), ...props, children: [
|
|
897
897
|
children,
|
|
898
|
-
!
|
|
898
|
+
!isHidden && /* @__PURE__ */ jsx("span", { className: cn("absolute z-raised", POS2[position]), children: badge })
|
|
899
899
|
] })
|
|
900
900
|
);
|
|
901
901
|
BadgeOverlay.displayName = "BadgeOverlay";
|
|
902
902
|
var SectionHeader = forwardRef(
|
|
903
|
-
({ title, description, actions, level = 2, size = "lg",
|
|
903
|
+
({ title, description, actions, level = 2, size = "lg", isBordered = true, className, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
904
904
|
"header",
|
|
905
905
|
{
|
|
906
906
|
ref,
|
|
907
907
|
className: cn(
|
|
908
908
|
"flex items-start justify-between gap-4 pb-3",
|
|
909
|
-
|
|
909
|
+
isBordered && "border-b border-border",
|
|
910
910
|
className
|
|
911
911
|
),
|
|
912
912
|
...props,
|
|
@@ -925,11 +925,11 @@ function escape(re) {
|
|
|
925
925
|
return re.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
926
926
|
}
|
|
927
927
|
var Highlight = forwardRef(
|
|
928
|
-
({ children, query,
|
|
928
|
+
({ children, query, isWholeWord, className, ...props }, ref) => {
|
|
929
929
|
const queries = (Array.isArray(query) ? query : [query]).filter(Boolean);
|
|
930
930
|
if (queries.length === 0) return /* @__PURE__ */ jsx("span", { ref, className: cn(className), ...props, children });
|
|
931
931
|
const pattern = queries.map(escape).join("|");
|
|
932
|
-
const regex = new RegExp(
|
|
932
|
+
const regex = new RegExp(isWholeWord ? `\\b(${pattern})\\b` : `(${pattern})`, "gi");
|
|
933
933
|
const parts = children.split(regex);
|
|
934
934
|
const nodes = [];
|
|
935
935
|
parts.forEach((part, i) => {
|
|
@@ -949,7 +949,7 @@ function useCollapsibleContext() {
|
|
|
949
949
|
if (!ctx) throw new Error("Collapsible.* must be used inside <Collapsible>");
|
|
950
950
|
return ctx;
|
|
951
951
|
}
|
|
952
|
-
var Collapsible = forwardRef(function Collapsible2({ open: openProp, defaultOpen = false, onOpenChange,
|
|
952
|
+
var Collapsible = forwardRef(function Collapsible2({ open: openProp, defaultOpen = false, onOpenChange, isDisabled = false, className, children, ...rest }, ref) {
|
|
953
953
|
const [open, setOpen] = useControlled({
|
|
954
954
|
controlled: openProp,
|
|
955
955
|
default: defaultOpen,
|
|
@@ -958,15 +958,15 @@ var Collapsible = forwardRef(function Collapsible2({ open: openProp, defaultOpen
|
|
|
958
958
|
const contentId = useId();
|
|
959
959
|
const triggerId = useId();
|
|
960
960
|
const ctx = useMemo(
|
|
961
|
-
() => ({ open, setOpen, contentId, triggerId, disabled }),
|
|
962
|
-
[open, setOpen, contentId, triggerId,
|
|
961
|
+
() => ({ open, setOpen, contentId, triggerId, disabled: isDisabled }),
|
|
962
|
+
[open, setOpen, contentId, triggerId, isDisabled]
|
|
963
963
|
);
|
|
964
964
|
return /* @__PURE__ */ jsx(CollapsibleContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx(
|
|
965
965
|
"div",
|
|
966
966
|
{
|
|
967
967
|
ref,
|
|
968
968
|
"data-state": open ? "open" : "closed",
|
|
969
|
-
"data-disabled": dataAttr(
|
|
969
|
+
"data-disabled": dataAttr(isDisabled),
|
|
970
970
|
className,
|
|
971
971
|
...rest,
|
|
972
972
|
children
|
|
@@ -1000,9 +1000,9 @@ var CollapsibleTrigger = forwardRef(
|
|
|
1000
1000
|
}
|
|
1001
1001
|
);
|
|
1002
1002
|
var CollapsibleContent = forwardRef(
|
|
1003
|
-
function CollapsibleContent2({
|
|
1003
|
+
function CollapsibleContent2({ isForceMounted, className, children, ...rest }, ref) {
|
|
1004
1004
|
const ctx = useCollapsibleContext();
|
|
1005
|
-
if (!ctx.open && !
|
|
1005
|
+
if (!ctx.open && !isForceMounted) return null;
|
|
1006
1006
|
return /* @__PURE__ */ jsx(
|
|
1007
1007
|
"div",
|
|
1008
1008
|
{
|
|
@@ -1036,14 +1036,14 @@ function useAccordionItemContext() {
|
|
|
1036
1036
|
if (!ctx) throw new Error("Accordion.Trigger / Content must be used inside <Accordion.Item>");
|
|
1037
1037
|
return ctx;
|
|
1038
1038
|
}
|
|
1039
|
-
var
|
|
1039
|
+
var AccordionRoot = forwardRef(function Accordion(props, ref) {
|
|
1040
1040
|
const {
|
|
1041
1041
|
type = "single",
|
|
1042
1042
|
value,
|
|
1043
1043
|
defaultValue,
|
|
1044
1044
|
onValueChange,
|
|
1045
|
-
|
|
1046
|
-
|
|
1045
|
+
isCollapsible = false,
|
|
1046
|
+
isDisabled = false,
|
|
1047
1047
|
className,
|
|
1048
1048
|
children,
|
|
1049
1049
|
...rest
|
|
@@ -1065,24 +1065,24 @@ var Accordion = forwardRef(function Accordion2(props, ref) {
|
|
|
1065
1065
|
setCurrent(arr.includes(val) ? arr.filter((v) => v !== val) : [...arr, val]);
|
|
1066
1066
|
} else {
|
|
1067
1067
|
if (current === val) {
|
|
1068
|
-
if (
|
|
1068
|
+
if (isCollapsible) setCurrent("");
|
|
1069
1069
|
} else {
|
|
1070
1070
|
setCurrent(val);
|
|
1071
1071
|
}
|
|
1072
1072
|
}
|
|
1073
1073
|
},
|
|
1074
|
-
[
|
|
1074
|
+
[isCollapsible, current, setCurrent, type]
|
|
1075
1075
|
);
|
|
1076
1076
|
const ctx = useMemo(
|
|
1077
|
-
() => ({ isOpen, toggle, disabled }),
|
|
1078
|
-
[isOpen, toggle,
|
|
1077
|
+
() => ({ isOpen, toggle, disabled: isDisabled }),
|
|
1078
|
+
[isOpen, toggle, isDisabled]
|
|
1079
1079
|
);
|
|
1080
1080
|
return /* @__PURE__ */ jsx(AccordionContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx(
|
|
1081
1081
|
RovingFocusGroup,
|
|
1082
1082
|
{
|
|
1083
1083
|
ref,
|
|
1084
1084
|
orientation: "vertical",
|
|
1085
|
-
|
|
1085
|
+
canLoop: true,
|
|
1086
1086
|
className: cn("flex flex-col", className),
|
|
1087
1087
|
...rest,
|
|
1088
1088
|
children
|
|
@@ -1090,12 +1090,12 @@ var Accordion = forwardRef(function Accordion2(props, ref) {
|
|
|
1090
1090
|
) });
|
|
1091
1091
|
});
|
|
1092
1092
|
var AccordionItem = forwardRef(
|
|
1093
|
-
function AccordionItem2({ value,
|
|
1093
|
+
function AccordionItem2({ value, isDisabled = false, className, children, ...rest }, ref) {
|
|
1094
1094
|
const accordion = useAccordionContext();
|
|
1095
1095
|
const open = accordion.isOpen(value);
|
|
1096
1096
|
const contentId = useId();
|
|
1097
1097
|
const triggerId = useId();
|
|
1098
|
-
const itemDisabled =
|
|
1098
|
+
const itemDisabled = isDisabled || accordion.disabled;
|
|
1099
1099
|
const itemCtx = useMemo(
|
|
1100
1100
|
() => ({ value, open, contentId, triggerId, disabled: itemDisabled }),
|
|
1101
1101
|
[value, open, contentId, triggerId, itemDisabled]
|
|
@@ -1181,9 +1181,11 @@ var AccordionContent = forwardRef(
|
|
|
1181
1181
|
);
|
|
1182
1182
|
}
|
|
1183
1183
|
);
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1184
|
+
var Accordion2 = Object.assign(AccordionRoot, {
|
|
1185
|
+
Item: AccordionItem,
|
|
1186
|
+
Trigger: AccordionTrigger,
|
|
1187
|
+
Content: AccordionContent
|
|
1188
|
+
});
|
|
1187
1189
|
var TabsContext = createContext(null);
|
|
1188
1190
|
function useTabsContext() {
|
|
1189
1191
|
const ctx = useContext(TabsContext);
|
|
@@ -1231,7 +1233,7 @@ var TabsList = forwardRef(function TabsList2({ className, children, ...rest }, r
|
|
|
1231
1233
|
{
|
|
1232
1234
|
ref,
|
|
1233
1235
|
orientation: ctx.orientation,
|
|
1234
|
-
|
|
1236
|
+
canLoop: true,
|
|
1235
1237
|
role: "tablist",
|
|
1236
1238
|
"aria-orientation": ctx.orientation,
|
|
1237
1239
|
"data-orientation": ctx.orientation,
|
|
@@ -1245,10 +1247,10 @@ var TabsList = forwardRef(function TabsList2({ className, children, ...rest }, r
|
|
|
1245
1247
|
}
|
|
1246
1248
|
);
|
|
1247
1249
|
});
|
|
1248
|
-
var TabsTab = forwardRef(function TabsTab2({ value,
|
|
1250
|
+
var TabsTab = forwardRef(function TabsTab2({ value, isDisabled = false, className, onClick, onFocus, children, ...rest }, ref) {
|
|
1249
1251
|
const ctx = useTabsContext();
|
|
1250
1252
|
const selected = ctx.value === value;
|
|
1251
|
-
const roving = useRovingFocusItem({
|
|
1253
|
+
const roving = useRovingFocusItem({ isActive: selected });
|
|
1252
1254
|
const tabId = `${ctx.baseId}-tab-${value}`;
|
|
1253
1255
|
const panelId = `${ctx.baseId}-panel-${value}`;
|
|
1254
1256
|
return /* @__PURE__ */ jsx(
|
|
@@ -1265,18 +1267,18 @@ var TabsTab = forwardRef(function TabsTab2({ value, disabled = false, className,
|
|
|
1265
1267
|
"aria-selected": selected,
|
|
1266
1268
|
"aria-controls": panelId,
|
|
1267
1269
|
"data-state": selected ? "active" : "inactive",
|
|
1268
|
-
"data-disabled": dataAttr(
|
|
1270
|
+
"data-disabled": dataAttr(isDisabled),
|
|
1269
1271
|
tabIndex: roving.tabIndex,
|
|
1270
|
-
disabled,
|
|
1272
|
+
disabled: isDisabled,
|
|
1271
1273
|
onClick: (e) => {
|
|
1272
1274
|
onClick?.(e);
|
|
1273
|
-
if (e.defaultPrevented ||
|
|
1275
|
+
if (e.defaultPrevented || isDisabled) return;
|
|
1274
1276
|
ctx.setValue(value);
|
|
1275
1277
|
},
|
|
1276
1278
|
onFocus: (e) => {
|
|
1277
1279
|
onFocus?.(e);
|
|
1278
1280
|
roving.onFocus();
|
|
1279
|
-
if (ctx.activationMode === "automatic" && !
|
|
1281
|
+
if (ctx.activationMode === "automatic" && !isDisabled) {
|
|
1280
1282
|
ctx.setValue(value);
|
|
1281
1283
|
}
|
|
1282
1284
|
},
|
|
@@ -1344,8 +1346,8 @@ var listVariants = tv({
|
|
|
1344
1346
|
var listItemVariants = tv({
|
|
1345
1347
|
base: "flex items-start gap-3 text-sm text-foreground"
|
|
1346
1348
|
});
|
|
1347
|
-
var List = forwardRef(function List2({
|
|
1348
|
-
const Component =
|
|
1349
|
+
var List = forwardRef(function List2({ isOrdered, marker, spacing, className, children, ...rest }, ref) {
|
|
1350
|
+
const Component = isOrdered ? "ol" : "ul";
|
|
1349
1351
|
return /* @__PURE__ */ jsx(
|
|
1350
1352
|
Component,
|
|
1351
1353
|
{
|
|
@@ -1356,9 +1358,9 @@ var List = forwardRef(function List2({ ordered, marker, spacing, className, chil
|
|
|
1356
1358
|
}
|
|
1357
1359
|
);
|
|
1358
1360
|
});
|
|
1359
|
-
var ListItem = forwardRef(function ListItem2({ leading, trailing,
|
|
1361
|
+
var ListItem = forwardRef(function ListItem2({ leading, trailing, hasCheckMarker, className, children, ...rest }, ref) {
|
|
1360
1362
|
return /* @__PURE__ */ jsxs("li", { ref, className: cn(listItemVariants(), className), ...rest, children: [
|
|
1361
|
-
|
|
1363
|
+
hasCheckMarker && /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "mt-0.5 shrink-0 text-primary", children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) }),
|
|
1362
1364
|
leading && /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "mt-0.5 shrink-0 text-muted-foreground", children: leading }),
|
|
1363
1365
|
/* @__PURE__ */ jsx("span", { className: "flex-1", children }),
|
|
1364
1366
|
trailing && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-muted-foreground", children: trailing })
|
|
@@ -1502,7 +1504,7 @@ var Tree = forwardRef(function Tree2({
|
|
|
1502
1504
|
{
|
|
1503
1505
|
ref,
|
|
1504
1506
|
orientation: "vertical",
|
|
1505
|
-
|
|
1507
|
+
canLoop: true,
|
|
1506
1508
|
role: "tree",
|
|
1507
1509
|
className: cn("flex flex-col text-sm", className),
|
|
1508
1510
|
...rest,
|
|
@@ -1570,7 +1572,7 @@ function NodeRow({
|
|
|
1570
1572
|
}
|
|
1571
1573
|
);
|
|
1572
1574
|
}
|
|
1573
|
-
var TreeGroup = forwardRef(function TreeGroup2({ value, label,
|
|
1575
|
+
var TreeGroup = forwardRef(function TreeGroup2({ value, label, isDisabled = false, className, children, ...rest }, ref) {
|
|
1574
1576
|
const ctx = useTreeContext();
|
|
1575
1577
|
const level = useTreeLevel();
|
|
1576
1578
|
const expanded = ctx.expanded.has(value);
|
|
@@ -1590,7 +1592,7 @@ var TreeGroup = forwardRef(function TreeGroup2({ value, label, disabled = false,
|
|
|
1590
1592
|
selected: false,
|
|
1591
1593
|
expanded,
|
|
1592
1594
|
hasChildren: true,
|
|
1593
|
-
disabled,
|
|
1595
|
+
disabled: isDisabled,
|
|
1594
1596
|
onActivate: () => ctx.toggleExpanded(value),
|
|
1595
1597
|
label
|
|
1596
1598
|
}
|
|
@@ -1600,7 +1602,7 @@ var TreeGroup = forwardRef(function TreeGroup2({ value, label, disabled = false,
|
|
|
1600
1602
|
}
|
|
1601
1603
|
);
|
|
1602
1604
|
});
|
|
1603
|
-
var TreeItem = forwardRef(function TreeItem2({ value,
|
|
1605
|
+
var TreeItem = forwardRef(function TreeItem2({ value, isDisabled = false, className, children, ...rest }, ref) {
|
|
1604
1606
|
const ctx = useTreeContext();
|
|
1605
1607
|
const level = useTreeLevel();
|
|
1606
1608
|
const selected = ctx.selectedValue === value;
|
|
@@ -1610,7 +1612,7 @@ var TreeItem = forwardRef(function TreeItem2({ value, disabled = false, classNam
|
|
|
1610
1612
|
level,
|
|
1611
1613
|
selected,
|
|
1612
1614
|
hasChildren: false,
|
|
1613
|
-
disabled,
|
|
1615
|
+
disabled: isDisabled,
|
|
1614
1616
|
onActivate: () => ctx.setSelectedValue(value),
|
|
1615
1617
|
label: children
|
|
1616
1618
|
}
|
|
@@ -1619,17 +1621,36 @@ var TreeItem = forwardRef(function TreeItem2({ value, disabled = false, classNam
|
|
|
1619
1621
|
Tree.Group = TreeGroup;
|
|
1620
1622
|
Tree.Item = TreeItem;
|
|
1621
1623
|
var TableContext = createContext({
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
+
isStriped: false,
|
|
1625
|
+
isHoverable: false,
|
|
1624
1626
|
density: "cozy"
|
|
1625
1627
|
});
|
|
1626
1628
|
var DENSITY_CELL = {
|
|
1627
1629
|
compact: "px-2 py-1.5 text-sm",
|
|
1628
1630
|
cozy: "px-3 py-2 text-sm",
|
|
1629
|
-
comfortable: "px-4 py-3 text-sm"
|
|
1631
|
+
comfortable: "px-4 py-3 text-sm",
|
|
1632
|
+
roomy: "px-5 py-4 text-sm"
|
|
1633
|
+
};
|
|
1634
|
+
var WRAPPER_RADIUS = {
|
|
1635
|
+
none: "rounded-none",
|
|
1636
|
+
sm: "rounded-sm",
|
|
1637
|
+
md: "rounded-md",
|
|
1638
|
+
lg: "rounded-lg",
|
|
1639
|
+
xl: "rounded-xl",
|
|
1640
|
+
"2xl": "rounded-2xl"
|
|
1630
1641
|
};
|
|
1631
|
-
var Table = forwardRef(function Table2({
|
|
1632
|
-
|
|
1642
|
+
var Table = forwardRef(function Table2({
|
|
1643
|
+
isStriped = false,
|
|
1644
|
+
isHoverable = false,
|
|
1645
|
+
density = "cozy",
|
|
1646
|
+
isBare = false,
|
|
1647
|
+
radius = "md",
|
|
1648
|
+
containerClassName,
|
|
1649
|
+
className,
|
|
1650
|
+
children,
|
|
1651
|
+
...rest
|
|
1652
|
+
}, ref) {
|
|
1653
|
+
const ctx = { isStriped, isHoverable, density };
|
|
1633
1654
|
const tableEl = /* @__PURE__ */ jsx(
|
|
1634
1655
|
"table",
|
|
1635
1656
|
{
|
|
@@ -1639,15 +1660,29 @@ var Table = forwardRef(function Table2({ striped = false, hoverable = false, den
|
|
|
1639
1660
|
children
|
|
1640
1661
|
}
|
|
1641
1662
|
);
|
|
1642
|
-
return /* @__PURE__ */ jsx(TableContext.Provider, { value: ctx, children:
|
|
1663
|
+
return /* @__PURE__ */ jsx(TableContext.Provider, { value: ctx, children: isBare ? tableEl : /* @__PURE__ */ jsx(
|
|
1664
|
+
"div",
|
|
1665
|
+
{
|
|
1666
|
+
className: cn(
|
|
1667
|
+
"relative w-full overflow-x-auto border border-border",
|
|
1668
|
+
WRAPPER_RADIUS[radius],
|
|
1669
|
+
containerClassName
|
|
1670
|
+
),
|
|
1671
|
+
children: tableEl
|
|
1672
|
+
}
|
|
1673
|
+
) });
|
|
1643
1674
|
});
|
|
1675
|
+
var HEAD_VARIANT = {
|
|
1676
|
+
uppercase: "text-xs font-semibold uppercase tracking-wide text-muted-foreground",
|
|
1677
|
+
plain: "text-sm font-semibold text-foreground"
|
|
1678
|
+
};
|
|
1644
1679
|
var TableHead = forwardRef(
|
|
1645
|
-
function TableHead2({ className, ...rest }, ref) {
|
|
1680
|
+
function TableHead2({ className, headVariant = "uppercase", ...rest }, ref) {
|
|
1646
1681
|
return /* @__PURE__ */ jsx(
|
|
1647
1682
|
"thead",
|
|
1648
1683
|
{
|
|
1649
1684
|
ref,
|
|
1650
|
-
className: cn("border-b border-border bg-muted/50
|
|
1685
|
+
className: cn("border-b border-border bg-muted/50", HEAD_VARIANT[headVariant], className),
|
|
1651
1686
|
...rest
|
|
1652
1687
|
}
|
|
1653
1688
|
);
|
|
@@ -1661,8 +1696,8 @@ var TableBody = forwardRef(
|
|
|
1661
1696
|
{
|
|
1662
1697
|
ref,
|
|
1663
1698
|
className: cn(
|
|
1664
|
-
ctx.
|
|
1665
|
-
ctx.
|
|
1699
|
+
ctx.isStriped && "[&>tr:nth-child(even)]:bg-muted/30",
|
|
1700
|
+
ctx.isHoverable && "[&>tr:hover]:bg-muted",
|
|
1666
1701
|
className
|
|
1667
1702
|
),
|
|
1668
1703
|
...rest
|
|
@@ -1752,10 +1787,10 @@ function DataTable({
|
|
|
1752
1787
|
sortBy,
|
|
1753
1788
|
defaultSortBy,
|
|
1754
1789
|
onSortChange,
|
|
1755
|
-
|
|
1756
|
-
|
|
1790
|
+
isStriped,
|
|
1791
|
+
isHoverable = !!onRowClick,
|
|
1757
1792
|
density,
|
|
1758
|
-
|
|
1793
|
+
isBare,
|
|
1759
1794
|
emptyContent = "No results.",
|
|
1760
1795
|
className,
|
|
1761
1796
|
"aria-label": ariaLabel
|
|
@@ -1789,23 +1824,23 @@ function DataTable({
|
|
|
1789
1824
|
return /* @__PURE__ */ jsxs(
|
|
1790
1825
|
Table,
|
|
1791
1826
|
{
|
|
1792
|
-
|
|
1793
|
-
|
|
1827
|
+
isStriped,
|
|
1828
|
+
isHoverable,
|
|
1794
1829
|
density,
|
|
1795
|
-
|
|
1830
|
+
isBare,
|
|
1796
1831
|
className,
|
|
1797
1832
|
"aria-label": ariaLabel,
|
|
1798
1833
|
children: [
|
|
1799
1834
|
/* @__PURE__ */ jsx(TableHead, { children: /* @__PURE__ */ jsx(TableRow, { children: columns.map((col) => {
|
|
1800
1835
|
const isSorted = sort?.columnKey === col.key;
|
|
1801
|
-
const ariaSort = isSorted ? sort?.direction === "asc" ? "ascending" : "descending" : col.
|
|
1836
|
+
const ariaSort = isSorted ? sort?.direction === "asc" ? "ascending" : "descending" : col.isSortable ? "none" : void 0;
|
|
1802
1837
|
return /* @__PURE__ */ jsx(
|
|
1803
1838
|
TableHeaderCell,
|
|
1804
1839
|
{
|
|
1805
1840
|
"aria-sort": ariaSort,
|
|
1806
1841
|
style: col.width ? { width: col.width } : void 0,
|
|
1807
1842
|
className: alignClass(col.align),
|
|
1808
|
-
children: col.
|
|
1843
|
+
children: col.isSortable ? /* @__PURE__ */ jsxs(
|
|
1809
1844
|
"button",
|
|
1810
1845
|
{
|
|
1811
1846
|
type: "button",
|
|
@@ -1849,7 +1884,7 @@ var Carousel = forwardRef(function Carousel2({
|
|
|
1849
1884
|
index: indexProp,
|
|
1850
1885
|
defaultIndex = 0,
|
|
1851
1886
|
onIndexChange,
|
|
1852
|
-
|
|
1887
|
+
canLoop = false,
|
|
1853
1888
|
autoPlay,
|
|
1854
1889
|
slidesCount,
|
|
1855
1890
|
className,
|
|
@@ -1873,27 +1908,27 @@ var Carousel = forwardRef(function Carousel2({
|
|
|
1873
1908
|
return;
|
|
1874
1909
|
}
|
|
1875
1910
|
let next2 = i;
|
|
1876
|
-
if (
|
|
1911
|
+
if (canLoop) {
|
|
1877
1912
|
next2 = (i % count + count) % count;
|
|
1878
1913
|
} else {
|
|
1879
1914
|
next2 = Math.max(0, Math.min(count - 1, i));
|
|
1880
1915
|
}
|
|
1881
1916
|
setIndexState(next2);
|
|
1882
1917
|
},
|
|
1883
|
-
[count,
|
|
1918
|
+
[count, canLoop, setIndexState]
|
|
1884
1919
|
);
|
|
1885
1920
|
const prev = useCallback(() => setIndex(index - 1), [index, setIndex]);
|
|
1886
1921
|
const next = useCallback(() => setIndex(index + 1), [index, setIndex]);
|
|
1887
1922
|
useEffect(() => {
|
|
1888
1923
|
if (!autoPlay || paused || count === 0) return;
|
|
1889
1924
|
const handle = window.setInterval(() => {
|
|
1890
|
-
setIndex(
|
|
1925
|
+
setIndex(canLoop ? index + 1 : Math.min(count - 1, index + 1));
|
|
1891
1926
|
}, autoPlay);
|
|
1892
1927
|
return () => window.clearInterval(handle);
|
|
1893
|
-
}, [autoPlay, paused, count, index,
|
|
1928
|
+
}, [autoPlay, paused, count, index, canLoop, setIndex]);
|
|
1894
1929
|
const ctx = useMemo(
|
|
1895
|
-
() => ({ index, setIndex, count, setCount, loop, prev, next, paused, setPaused, autoPlay }),
|
|
1896
|
-
[index, setIndex, count,
|
|
1930
|
+
() => ({ index, setIndex, count, setCount, loop: canLoop, prev, next, paused, setPaused, autoPlay }),
|
|
1931
|
+
[index, setIndex, count, canLoop, prev, next, paused, autoPlay]
|
|
1897
1932
|
);
|
|
1898
1933
|
return /* @__PURE__ */ jsx(CarouselContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx(
|
|
1899
1934
|
"div",
|
|
@@ -2084,7 +2119,7 @@ var SwipeActions = forwardRef(
|
|
|
2084
2119
|
right,
|
|
2085
2120
|
threshold = 60,
|
|
2086
2121
|
actionWidth = 72,
|
|
2087
|
-
|
|
2122
|
+
isDisabled,
|
|
2088
2123
|
className,
|
|
2089
2124
|
children,
|
|
2090
2125
|
...rest
|
|
@@ -2099,14 +2134,14 @@ var SwipeActions = forwardRef(
|
|
|
2099
2134
|
const leftMax = leftSlots * actionWidth;
|
|
2100
2135
|
const rightMax = rightSlots * actionWidth;
|
|
2101
2136
|
const onPointerDown = (e) => {
|
|
2102
|
-
if (
|
|
2137
|
+
if (isDisabled) return;
|
|
2103
2138
|
startXRef.current = e.clientX;
|
|
2104
2139
|
startOffsetRef.current = offset;
|
|
2105
2140
|
suppressClickRef.current = false;
|
|
2106
2141
|
e.currentTarget.setPointerCapture(e.pointerId);
|
|
2107
2142
|
};
|
|
2108
2143
|
const onPointerMove = (e) => {
|
|
2109
|
-
if (
|
|
2144
|
+
if (isDisabled || startXRef.current == null) return;
|
|
2110
2145
|
if (Math.abs(e.clientX - startXRef.current) > CLICK_SUPPRESS_SLOP) {
|
|
2111
2146
|
suppressClickRef.current = true;
|
|
2112
2147
|
}
|
|
@@ -2195,7 +2230,7 @@ function countNodes(node) {
|
|
|
2195
2230
|
if (Array.isArray(node)) return node.length;
|
|
2196
2231
|
return 1;
|
|
2197
2232
|
}
|
|
2198
|
-
var DiffViewer = forwardRef(function DiffViewer2({ left, right, view = "split", leftLabel = "Before", rightLabel = "After",
|
|
2233
|
+
var DiffViewer = forwardRef(function DiffViewer2({ left, right, view = "split", leftLabel = "Before", rightLabel = "After", hasStats = true, className, ...rest }, ref) {
|
|
2199
2234
|
const rows = useMemo(() => computeDiff(left, right), [left, right]);
|
|
2200
2235
|
const stats = useMemo(() => {
|
|
2201
2236
|
let added = 0;
|
|
@@ -2216,7 +2251,7 @@ var DiffViewer = forwardRef(function DiffViewer2({ left, right, view = "split",
|
|
|
2216
2251
|
),
|
|
2217
2252
|
...rest,
|
|
2218
2253
|
children: [
|
|
2219
|
-
|
|
2254
|
+
hasStats && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between border-b border-border bg-muted/40 px-3 py-1.5 text-xs", children: [
|
|
2220
2255
|
/* @__PURE__ */ jsxs("div", { className: "text-muted-foreground", children: [
|
|
2221
2256
|
leftLabel,
|
|
2222
2257
|
" \u2192 ",
|
|
@@ -2358,7 +2393,7 @@ var Sparkline = forwardRef(function Sparkline2({
|
|
|
2358
2393
|
tone = "brand",
|
|
2359
2394
|
min: minProp,
|
|
2360
2395
|
max: maxProp,
|
|
2361
|
-
|
|
2396
|
+
hasLast,
|
|
2362
2397
|
ariaLabel = "Trend",
|
|
2363
2398
|
className,
|
|
2364
2399
|
...rest
|
|
@@ -2416,7 +2451,7 @@ var Sparkline = forwardRef(function Sparkline2({
|
|
|
2416
2451
|
i
|
|
2417
2452
|
)) }),
|
|
2418
2453
|
variant === "dot" && /* @__PURE__ */ jsx("g", { children: points.map(([x, y], i) => /* @__PURE__ */ jsx("circle", { cx: x, cy: y, r: 1.5, fill: "currentColor" }, i)) }),
|
|
2419
|
-
|
|
2454
|
+
hasLast && data.length > 0 && variant !== "dot" && /* @__PURE__ */ jsx("circle", { cx: lastX, cy: lastY, r: 2.5, fill: "currentColor" })
|
|
2420
2455
|
]
|
|
2421
2456
|
}
|
|
2422
2457
|
);
|
|
@@ -2448,7 +2483,7 @@ var HeatmapCalendar = forwardRef(
|
|
|
2448
2483
|
onCellClick,
|
|
2449
2484
|
monthLabels = DEFAULT_MONTHS,
|
|
2450
2485
|
weekdayLabels = DEFAULT_WEEKDAYS,
|
|
2451
|
-
|
|
2486
|
+
hasLegend = true,
|
|
2452
2487
|
className,
|
|
2453
2488
|
...rest
|
|
2454
2489
|
}, ref) {
|
|
@@ -2555,7 +2590,7 @@ var HeatmapCalendar = forwardRef(
|
|
|
2555
2590
|
);
|
|
2556
2591
|
}) }, colIdx)) })
|
|
2557
2592
|
] }),
|
|
2558
|
-
|
|
2593
|
+
hasLegend && /* @__PURE__ */ jsxs("div", { className: "mt-2 flex items-center justify-end gap-1.5 text-[10px] text-muted-foreground", children: [
|
|
2559
2594
|
/* @__PURE__ */ jsx("span", { children: "Less" }),
|
|
2560
2595
|
toneSteps.map((cls, i) => /* @__PURE__ */ jsx(
|
|
2561
2596
|
"span",
|
|
@@ -2580,7 +2615,7 @@ function castValue(raw, type) {
|
|
|
2580
2615
|
return raw;
|
|
2581
2616
|
}
|
|
2582
2617
|
var DataGrid = forwardRef(
|
|
2583
|
-
function DataGrid2({ columns, rows, rowKey, onRowChange,
|
|
2618
|
+
function DataGrid2({ columns, rows, rowKey, onRowChange, isDense, className, ...rest }, ref) {
|
|
2584
2619
|
const [active, setActive] = useState({ row: 0, col: 0 });
|
|
2585
2620
|
const [editing, setEditing] = useState(false);
|
|
2586
2621
|
const [draft, setDraft] = useState("");
|
|
@@ -2606,7 +2641,7 @@ var DataGrid = forwardRef(
|
|
|
2606
2641
|
const col = columns[active.col];
|
|
2607
2642
|
const row = rows[active.row];
|
|
2608
2643
|
if (!col || row === void 0) return;
|
|
2609
|
-
if (col.
|
|
2644
|
+
if (col.isEditable === false) return;
|
|
2610
2645
|
const raw = col.accessor(row);
|
|
2611
2646
|
setDraft(raw == null ? "" : String(raw));
|
|
2612
2647
|
setEditing(true);
|
|
@@ -2676,7 +2711,7 @@ var DataGrid = forwardRef(
|
|
|
2676
2711
|
break;
|
|
2677
2712
|
}
|
|
2678
2713
|
};
|
|
2679
|
-
const cellPad =
|
|
2714
|
+
const cellPad = isDense ? "px-2 py-1" : "px-3 py-2";
|
|
2680
2715
|
return /* @__PURE__ */ jsx(
|
|
2681
2716
|
"div",
|
|
2682
2717
|
{
|
|
@@ -2715,7 +2750,7 @@ var DataGrid = forwardRef(
|
|
|
2715
2750
|
/* @__PURE__ */ jsx("tbody", { role: "rowgroup", children: rows.map((row, ri) => /* @__PURE__ */ jsx("tr", { role: "row", "aria-rowindex": ri + 2, className: "border-b border-border last:border-b-0", children: columns.map((col, ci) => {
|
|
2716
2751
|
const isActive = active.row === ri && active.col === ci;
|
|
2717
2752
|
const value = col.accessor(row);
|
|
2718
|
-
const isEditable = col.
|
|
2753
|
+
const isEditable = col.isEditable !== false;
|
|
2719
2754
|
const isEditing = editing && isActive;
|
|
2720
2755
|
return /* @__PURE__ */ jsx(
|
|
2721
2756
|
"td",
|
|
@@ -3083,7 +3118,7 @@ var AudioWaveform = forwardRef(
|
|
|
3083
3118
|
gap = 1,
|
|
3084
3119
|
tone = "brand",
|
|
3085
3120
|
onSeek,
|
|
3086
|
-
|
|
3121
|
+
isInteractive,
|
|
3087
3122
|
className,
|
|
3088
3123
|
...rest
|
|
3089
3124
|
}, ref) {
|
|
@@ -3091,7 +3126,7 @@ var AudioWaveform = forwardRef(
|
|
|
3091
3126
|
const barCount = Math.max(1, Math.floor(width / stepX));
|
|
3092
3127
|
const sampled = useMemo(() => sampleTo(peaks, barCount), [peaks, barCount]);
|
|
3093
3128
|
const playedBars = Math.round(progress * barCount);
|
|
3094
|
-
const
|
|
3129
|
+
const resolvedInteractive = isInteractive ?? onSeek != null;
|
|
3095
3130
|
const seekFromX = (clientX, rect) => {
|
|
3096
3131
|
const x = Math.max(0, Math.min(rect.width, clientX - rect.left));
|
|
3097
3132
|
onSeek?.(x / rect.width);
|
|
@@ -3121,24 +3156,24 @@ var AudioWaveform = forwardRef(
|
|
|
3121
3156
|
if (typeof ref === "function") ref(el);
|
|
3122
3157
|
else if (ref) ref.current = el;
|
|
3123
3158
|
},
|
|
3124
|
-
role:
|
|
3159
|
+
role: resolvedInteractive ? "slider" : "img",
|
|
3125
3160
|
"aria-label": "Audio waveform",
|
|
3126
3161
|
"aria-valuenow": Math.round(progress * 100),
|
|
3127
3162
|
"aria-valuemin": 0,
|
|
3128
3163
|
"aria-valuemax": 100,
|
|
3129
|
-
tabIndex:
|
|
3164
|
+
tabIndex: resolvedInteractive ? 0 : -1,
|
|
3130
3165
|
width,
|
|
3131
3166
|
height,
|
|
3132
3167
|
viewBox: `0 0 ${width} ${height}`,
|
|
3133
3168
|
preserveAspectRatio: "none",
|
|
3134
|
-
onClick:
|
|
3169
|
+
onClick: resolvedInteractive ? (e) => {
|
|
3135
3170
|
const rect = svgRef.current?.getBoundingClientRect();
|
|
3136
3171
|
if (rect) seekFromX(e.clientX, rect);
|
|
3137
3172
|
} : void 0,
|
|
3138
3173
|
onKeyDown: handleKey,
|
|
3139
3174
|
className: cn(
|
|
3140
3175
|
"inline-block",
|
|
3141
|
-
|
|
3176
|
+
resolvedInteractive && "cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm",
|
|
3142
3177
|
TONE_CLASS2[tone],
|
|
3143
3178
|
className
|
|
3144
3179
|
),
|
|
@@ -3200,7 +3235,7 @@ var AudioPlayer = forwardRef(
|
|
|
3200
3235
|
loop,
|
|
3201
3236
|
defaultVolume = 1,
|
|
3202
3237
|
defaultPlaybackRate = 1,
|
|
3203
|
-
|
|
3238
|
+
isCompact,
|
|
3204
3239
|
onPlay,
|
|
3205
3240
|
onPause,
|
|
3206
3241
|
onTimeUpdate,
|
|
@@ -3286,7 +3321,7 @@ var AudioPlayer = forwardRef(
|
|
|
3286
3321
|
"data-playing": playing || void 0,
|
|
3287
3322
|
className: cn(
|
|
3288
3323
|
"flex items-center gap-3 rounded-md border border-border bg-card p-2 text-card-foreground shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
3289
|
-
|
|
3324
|
+
isCompact && "gap-2 p-1.5",
|
|
3290
3325
|
className
|
|
3291
3326
|
),
|
|
3292
3327
|
children: [
|
|
@@ -3330,9 +3365,9 @@ var AudioPlayer = forwardRef(
|
|
|
3330
3365
|
onClick: togglePlay,
|
|
3331
3366
|
className: cn(
|
|
3332
3367
|
"inline-flex shrink-0 items-center justify-center rounded-full bg-primary text-primary-foreground transition-colors hover:bg-primary/90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
3333
|
-
|
|
3368
|
+
isCompact ? "h-7 w-7" : "h-9 w-9"
|
|
3334
3369
|
),
|
|
3335
|
-
children: /* @__PURE__ */ jsx(Icon, { icon: playing ? Pause : Play, size:
|
|
3370
|
+
children: /* @__PURE__ */ jsx(Icon, { icon: playing ? Pause : Play, size: isCompact ? 12 : 14 })
|
|
3336
3371
|
}
|
|
3337
3372
|
),
|
|
3338
3373
|
/* @__PURE__ */ jsx("span", { className: "shrink-0 text-xs tabular-nums text-muted-foreground", style: { minWidth: "3.5rem" }, children: formatTime(currentTime) }),
|
|
@@ -3342,8 +3377,8 @@ var AudioPlayer = forwardRef(
|
|
|
3342
3377
|
peaks,
|
|
3343
3378
|
progress,
|
|
3344
3379
|
onSeek: seekProgress,
|
|
3345
|
-
width:
|
|
3346
|
-
height:
|
|
3380
|
+
width: isCompact ? 200 : 320,
|
|
3381
|
+
height: isCompact ? 32 : 40
|
|
3347
3382
|
}
|
|
3348
3383
|
) : /* @__PURE__ */ jsx(
|
|
3349
3384
|
"input",
|
|
@@ -3713,7 +3748,7 @@ var PDFViewer = forwardRef(function PDFViewer2({
|
|
|
3713
3748
|
onZoomChange,
|
|
3714
3749
|
pageCount,
|
|
3715
3750
|
title = "PDF document",
|
|
3716
|
-
|
|
3751
|
+
canDownload = true,
|
|
3717
3752
|
height = "70vh",
|
|
3718
3753
|
className,
|
|
3719
3754
|
...rest
|
|
@@ -3808,7 +3843,7 @@ var PDFViewer = forwardRef(function PDFViewer2({
|
|
|
3808
3843
|
children: /* @__PURE__ */ jsx(Icon, { icon: ZoomIn, size: 14 })
|
|
3809
3844
|
}
|
|
3810
3845
|
),
|
|
3811
|
-
/* @__PURE__ */ jsx("div", { className: "ml-auto flex items-center gap-1", children:
|
|
3846
|
+
/* @__PURE__ */ jsx("div", { className: "ml-auto flex items-center gap-1", children: canDownload && /* @__PURE__ */ jsx(
|
|
3812
3847
|
"a",
|
|
3813
3848
|
{
|
|
3814
3849
|
href: src,
|
|
@@ -3991,7 +4026,7 @@ var Gantt = forwardRef(function Gantt2({
|
|
|
3991
4026
|
cellWidth = 40,
|
|
3992
4027
|
rowHeight = 36,
|
|
3993
4028
|
labelWidth = 200,
|
|
3994
|
-
|
|
4029
|
+
hasWeekends = true,
|
|
3995
4030
|
onTaskClick,
|
|
3996
4031
|
className,
|
|
3997
4032
|
...rest
|
|
@@ -4046,7 +4081,7 @@ var Gantt = forwardRef(function Gantt2({
|
|
|
4046
4081
|
{
|
|
4047
4082
|
className: cn(
|
|
4048
4083
|
"border-r border-border text-[10px] tabular-nums",
|
|
4049
|
-
isWeekend &&
|
|
4084
|
+
isWeekend && hasWeekends && "bg-muted/40",
|
|
4050
4085
|
isFirstOfMonth && "border-l-2 border-l-border-strong"
|
|
4051
4086
|
),
|
|
4052
4087
|
style: { width: cellWidth },
|
|
@@ -4078,7 +4113,7 @@ var Gantt = forwardRef(function Gantt2({
|
|
|
4078
4113
|
style: { width: cellWidth },
|
|
4079
4114
|
className: cn(
|
|
4080
4115
|
"border-r border-border/60",
|
|
4081
|
-
isWeekend &&
|
|
4116
|
+
isWeekend && hasWeekends && "bg-muted/30"
|
|
4082
4117
|
)
|
|
4083
4118
|
},
|
|
4084
4119
|
i
|
|
@@ -4430,7 +4465,7 @@ function MonthView({ date, events, weekStart, onEventClick, onSlotClick }) {
|
|
|
4430
4465
|
),
|
|
4431
4466
|
"aria-label": `${typeof e.title === "string" ? e.title : e.id} at ${e.start.toLocaleTimeString()}`,
|
|
4432
4467
|
children: [
|
|
4433
|
-
e.
|
|
4468
|
+
e.isAllDay ? "\u2022 " : "",
|
|
4434
4469
|
e.title ?? "(no title)"
|
|
4435
4470
|
]
|
|
4436
4471
|
},
|
|
@@ -4454,8 +4489,8 @@ function TimeGridView({ events, days, firstDay, hourRange, onEventClick, onSlotC
|
|
|
4454
4489
|
const visibleHours = endHour - startHour;
|
|
4455
4490
|
const HOUR_PX = 48;
|
|
4456
4491
|
const dayDates = Array.from({ length: days }, (_, i) => addDays(firstDay, i));
|
|
4457
|
-
const eventsForDay = (d) => events.filter((e) => !e.
|
|
4458
|
-
const allDayForDay = (d) => events.filter((e) => e.
|
|
4492
|
+
const eventsForDay = (d) => events.filter((e) => !e.isAllDay && isSameDay(d, e.start));
|
|
4493
|
+
const allDayForDay = (d) => events.filter((e) => e.isAllDay && isInRange(d, e.start, e.end));
|
|
4459
4494
|
return /* @__PURE__ */ jsxs("div", { className: "flex", children: [
|
|
4460
4495
|
/* @__PURE__ */ jsxs("div", { className: "w-14 shrink-0 border-r border-border", children: [
|
|
4461
4496
|
/* @__PURE__ */ jsx("div", { className: "h-6 border-b border-border bg-muted/40" }),
|
|
@@ -4636,7 +4671,7 @@ function AgendaView({ date, events, onEventClick }) {
|
|
|
4636
4671
|
),
|
|
4637
4672
|
/* @__PURE__ */ jsxs("span", { className: "flex-1", children: [
|
|
4638
4673
|
/* @__PURE__ */ jsx("span", { className: "block text-sm font-medium", children: e.title ?? "(no title)" }),
|
|
4639
|
-
/* @__PURE__ */ jsx("span", { className: "block text-xs text-muted-foreground tabular-nums", children: e.
|
|
4674
|
+
/* @__PURE__ */ jsx("span", { className: "block text-xs text-muted-foreground tabular-nums", children: e.isAllDay ? "All day" : `${e.start.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" })} \u2013 ${e.end.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" })}` })
|
|
4640
4675
|
] })
|
|
4641
4676
|
]
|
|
4642
4677
|
}
|
|
@@ -4660,7 +4695,7 @@ var GradientText = forwardRef(
|
|
|
4660
4695
|
via,
|
|
4661
4696
|
to = "var(--color-accent, var(--color-primary))",
|
|
4662
4697
|
direction = "r",
|
|
4663
|
-
|
|
4698
|
+
isAnimated,
|
|
4664
4699
|
as = "span",
|
|
4665
4700
|
className,
|
|
4666
4701
|
style,
|
|
@@ -4675,12 +4710,12 @@ var GradientText = forwardRef(
|
|
|
4675
4710
|
ref,
|
|
4676
4711
|
className: cn(
|
|
4677
4712
|
"inline-block bg-clip-text text-transparent",
|
|
4678
|
-
|
|
4713
|
+
isAnimated && "motion-safe:animate-[gradient-shift_4s_ease-in-out_infinite]",
|
|
4679
4714
|
className
|
|
4680
4715
|
),
|
|
4681
4716
|
style: {
|
|
4682
4717
|
backgroundImage: `linear-gradient(${DIR_TO_DEG[direction]}deg, ${stops})`,
|
|
4683
|
-
backgroundSize:
|
|
4718
|
+
backgroundSize: isAnimated ? "200% 100%" : void 0,
|
|
4684
4719
|
...style
|
|
4685
4720
|
},
|
|
4686
4721
|
...rest,
|
|
@@ -4701,12 +4736,12 @@ var CountUp = forwardRef(function CountUp2({
|
|
|
4701
4736
|
duration = 1500,
|
|
4702
4737
|
easing = easeOutCubic,
|
|
4703
4738
|
format = defaultFormat,
|
|
4704
|
-
|
|
4739
|
+
canTriggerOnView = false,
|
|
4705
4740
|
as = "span",
|
|
4706
4741
|
className,
|
|
4707
4742
|
...rest
|
|
4708
4743
|
}, ref) {
|
|
4709
|
-
const [value, setValue] = useState(
|
|
4744
|
+
const [value, setValue] = useState(canTriggerOnView ? from : to);
|
|
4710
4745
|
const elRef = useRef(null);
|
|
4711
4746
|
const startedRef = useRef(false);
|
|
4712
4747
|
useEffect(() => {
|
|
@@ -4714,7 +4749,7 @@ var CountUp = forwardRef(function CountUp2({
|
|
|
4714
4749
|
setValue(to);
|
|
4715
4750
|
return;
|
|
4716
4751
|
}
|
|
4717
|
-
if (
|
|
4752
|
+
if (canTriggerOnView && typeof IntersectionObserver !== "undefined" && elRef.current) {
|
|
4718
4753
|
let cancel;
|
|
4719
4754
|
const obs = new IntersectionObserver(
|
|
4720
4755
|
(entries) => {
|
|
@@ -4746,7 +4781,7 @@ var CountUp = forwardRef(function CountUp2({
|
|
|
4746
4781
|
raf = requestAnimationFrame(tick);
|
|
4747
4782
|
return () => cancelAnimationFrame(raf);
|
|
4748
4783
|
}
|
|
4749
|
-
}, [to, from, duration, easing,
|
|
4784
|
+
}, [to, from, duration, easing, canTriggerOnView]);
|
|
4750
4785
|
const Tag = as;
|
|
4751
4786
|
return /* @__PURE__ */ jsx(
|
|
4752
4787
|
Tag,
|
|
@@ -4828,7 +4863,7 @@ var ScrollReveal = forwardRef(
|
|
|
4828
4863
|
duration = 600,
|
|
4829
4864
|
delay = 0,
|
|
4830
4865
|
threshold = 0.1,
|
|
4831
|
-
|
|
4866
|
+
isOnce = true,
|
|
4832
4867
|
as = "div",
|
|
4833
4868
|
className,
|
|
4834
4869
|
style,
|
|
@@ -4853,8 +4888,8 @@ var ScrollReveal = forwardRef(
|
|
|
4853
4888
|
for (const entry of entries) {
|
|
4854
4889
|
if (entry.isIntersecting) {
|
|
4855
4890
|
setRevealed(true);
|
|
4856
|
-
if (
|
|
4857
|
-
} else if (!
|
|
4891
|
+
if (isOnce) obs.disconnect();
|
|
4892
|
+
} else if (!isOnce) {
|
|
4858
4893
|
setRevealed(false);
|
|
4859
4894
|
}
|
|
4860
4895
|
}
|
|
@@ -4863,7 +4898,7 @@ var ScrollReveal = forwardRef(
|
|
|
4863
4898
|
);
|
|
4864
4899
|
obs.observe(el);
|
|
4865
4900
|
return () => obs.disconnect();
|
|
4866
|
-
}, [reduced, threshold,
|
|
4901
|
+
}, [reduced, threshold, isOnce]);
|
|
4867
4902
|
const Tag = as;
|
|
4868
4903
|
return /* @__PURE__ */ jsx(
|
|
4869
4904
|
Tag,
|
|
@@ -4890,7 +4925,7 @@ var ScrollReveal = forwardRef(
|
|
|
4890
4925
|
var Tilt = forwardRef(function Tilt2({
|
|
4891
4926
|
maxAngle = 12,
|
|
4892
4927
|
perspective = 800,
|
|
4893
|
-
|
|
4928
|
+
hasGlare,
|
|
4894
4929
|
scale = 1,
|
|
4895
4930
|
as = "div",
|
|
4896
4931
|
className,
|
|
@@ -4947,7 +4982,7 @@ var Tilt = forwardRef(function Tilt2({
|
|
|
4947
4982
|
...rest,
|
|
4948
4983
|
children: [
|
|
4949
4984
|
children,
|
|
4950
|
-
|
|
4985
|
+
hasGlare && !reduced && tilt.active && /* @__PURE__ */ jsx(
|
|
4951
4986
|
"span",
|
|
4952
4987
|
{
|
|
4953
4988
|
"aria-hidden": "true",
|
|
@@ -4961,7 +4996,7 @@ var Tilt = forwardRef(function Tilt2({
|
|
|
4961
4996
|
}
|
|
4962
4997
|
);
|
|
4963
4998
|
});
|
|
4964
|
-
var Marquee = forwardRef(function Marquee2({ direction = "left", speed = 30,
|
|
4999
|
+
var Marquee = forwardRef(function Marquee2({ direction = "left", speed = 30, canPauseOnHover = true, gap = 48, className, children, ...rest }, ref) {
|
|
4965
5000
|
const horizontal = direction === "left" || direction === "right";
|
|
4966
5001
|
const reverse = direction === "right" || direction === "down";
|
|
4967
5002
|
const animationName = horizontal ? "marquee-x" : "marquee-y";
|
|
@@ -4985,7 +5020,7 @@ var Marquee = forwardRef(function Marquee2({ direction = "left", speed = 30, pau
|
|
|
4985
5020
|
className: cn(
|
|
4986
5021
|
"flex shrink-0",
|
|
4987
5022
|
horizontal ? "items-center" : "flex-col items-center",
|
|
4988
|
-
|
|
5023
|
+
canPauseOnHover && "group-hover/marquee:[animation-play-state:paused]"
|
|
4989
5024
|
),
|
|
4990
5025
|
style: {
|
|
4991
5026
|
animation: reducedMotion ? void 0 : `${animationName} ${speed}s linear infinite ${reverse ? "reverse" : "normal"}`
|
|
@@ -5017,15 +5052,15 @@ var Typewriter = forwardRef(function Typewriter2({
|
|
|
5017
5052
|
typeSpeed = 60,
|
|
5018
5053
|
deleteSpeed = 40,
|
|
5019
5054
|
pauseBetween = 1500,
|
|
5020
|
-
|
|
5021
|
-
|
|
5055
|
+
canLoop,
|
|
5056
|
+
hasCursor = true,
|
|
5022
5057
|
cursorChar = "\u2502",
|
|
5023
5058
|
as = "span",
|
|
5024
5059
|
className,
|
|
5025
5060
|
...rest
|
|
5026
5061
|
}, ref) {
|
|
5027
5062
|
const phrases = useMemo(() => Array.isArray(text) ? text : [text], [text]);
|
|
5028
|
-
const shouldLoop =
|
|
5063
|
+
const shouldLoop = canLoop ?? phrases.length > 1;
|
|
5029
5064
|
const reduced = typeof window !== "undefined" && (window.matchMedia?.("(prefers-reduced-motion: reduce)").matches ?? false);
|
|
5030
5065
|
const [phraseIndex, setPhraseIndex] = useState(0);
|
|
5031
5066
|
const [charIndex, setCharIndex] = useState(0);
|
|
@@ -5057,7 +5092,7 @@ var Typewriter = forwardRef(function Typewriter2({
|
|
|
5057
5092
|
const Tag = as;
|
|
5058
5093
|
return /* @__PURE__ */ jsxs(Tag, { ref, className: cn("inline-block", className), ...rest, children: [
|
|
5059
5094
|
fullText,
|
|
5060
|
-
|
|
5095
|
+
hasCursor && !reduced && /* @__PURE__ */ jsx(
|
|
5061
5096
|
"span",
|
|
5062
5097
|
{
|
|
5063
5098
|
"aria-hidden": "true",
|
|
@@ -5077,7 +5112,7 @@ var Confetti = forwardRef(function Confetti2({
|
|
|
5077
5112
|
velocity = 500,
|
|
5078
5113
|
lifetime = 3e3,
|
|
5079
5114
|
origin,
|
|
5080
|
-
|
|
5115
|
+
canAutoFire
|
|
5081
5116
|
}, forwardedRef) {
|
|
5082
5117
|
const [particles, setParticles] = useState([]);
|
|
5083
5118
|
const rafRef = useRef(null);
|
|
@@ -5120,8 +5155,8 @@ var Confetti = forwardRef(function Confetti2({
|
|
|
5120
5155
|
);
|
|
5121
5156
|
useImperativeHandle(forwardedRef, () => ({ fire: spawn }), [spawn]);
|
|
5122
5157
|
useEffect(() => {
|
|
5123
|
-
if (
|
|
5124
|
-
}, [
|
|
5158
|
+
if (canAutoFire) spawn();
|
|
5159
|
+
}, [canAutoFire, spawn]);
|
|
5125
5160
|
useEffect(() => {
|
|
5126
5161
|
if (particles.length === 0) return;
|
|
5127
5162
|
const tick = (now) => {
|
|
@@ -5185,8 +5220,8 @@ var TONE_PIN = {
|
|
|
5185
5220
|
resolved: "bg-muted-foreground text-background"
|
|
5186
5221
|
};
|
|
5187
5222
|
var AnnotationMarker = forwardRef(
|
|
5188
|
-
({ children, index, tone = "comment",
|
|
5189
|
-
const effectiveTone =
|
|
5223
|
+
({ children, index, tone = "comment", isPinOnly, isResolved, isActive, className, ...props }, ref) => {
|
|
5224
|
+
const effectiveTone = isResolved ? "resolved" : tone;
|
|
5190
5225
|
const pin = /* @__PURE__ */ jsx(
|
|
5191
5226
|
"span",
|
|
5192
5227
|
{
|
|
@@ -5198,17 +5233,17 @@ var AnnotationMarker = forwardRef(
|
|
|
5198
5233
|
children: index ?? ""
|
|
5199
5234
|
}
|
|
5200
5235
|
);
|
|
5201
|
-
if (
|
|
5236
|
+
if (isPinOnly || children == null) {
|
|
5202
5237
|
return /* @__PURE__ */ jsx(
|
|
5203
5238
|
"button",
|
|
5204
5239
|
{
|
|
5205
5240
|
ref,
|
|
5206
5241
|
type: "button",
|
|
5207
5242
|
"data-tone": effectiveTone,
|
|
5208
|
-
"data-active":
|
|
5243
|
+
"data-active": isActive ? "" : void 0,
|
|
5209
5244
|
className: cn(
|
|
5210
5245
|
"inline-flex items-center gap-1 align-middle rounded-full ring-1 ring-transparent transition-shadow",
|
|
5211
|
-
|
|
5246
|
+
isActive && "ring-ring",
|
|
5212
5247
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
5213
5248
|
className
|
|
5214
5249
|
),
|
|
@@ -5223,14 +5258,14 @@ var AnnotationMarker = forwardRef(
|
|
|
5223
5258
|
ref,
|
|
5224
5259
|
type: "button",
|
|
5225
5260
|
"data-tone": effectiveTone,
|
|
5226
|
-
"data-active":
|
|
5261
|
+
"data-active": isActive ? "" : void 0,
|
|
5227
5262
|
className: cn(
|
|
5228
5263
|
"group inline-flex items-baseline gap-1 align-baseline rounded-sm px-0.5 transition-colors",
|
|
5229
5264
|
"underline decoration-2 underline-offset-4",
|
|
5230
5265
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
5231
5266
|
TONE_HIGHLIGHT[effectiveTone],
|
|
5232
|
-
|
|
5233
|
-
|
|
5267
|
+
isResolved && "line-through opacity-70",
|
|
5268
|
+
isActive && "ring-1 ring-ring",
|
|
5234
5269
|
className
|
|
5235
5270
|
),
|
|
5236
5271
|
...props,
|
|
@@ -5243,16 +5278,16 @@ var AnnotationMarker = forwardRef(
|
|
|
5243
5278
|
}
|
|
5244
5279
|
);
|
|
5245
5280
|
AnnotationMarker.displayName = "AnnotationMarker";
|
|
5246
|
-
function ReactionChip({
|
|
5281
|
+
function ReactionChip({ isReactedByMe, className, ...rest }) {
|
|
5247
5282
|
return /* @__PURE__ */ jsx(
|
|
5248
5283
|
"button",
|
|
5249
5284
|
{
|
|
5250
5285
|
type: "button",
|
|
5251
|
-
"data-active":
|
|
5286
|
+
"data-active": isReactedByMe ? "" : void 0,
|
|
5252
5287
|
className: cn(
|
|
5253
5288
|
"inline-flex items-center gap-1 rounded-full border px-2 py-0.5 text-xs leading-none transition-colors",
|
|
5254
5289
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
5255
|
-
|
|
5290
|
+
isReactedByMe ? "border-primary bg-primary-soft text-primary-soft-foreground" : "border-border bg-background hover:bg-muted",
|
|
5256
5291
|
className
|
|
5257
5292
|
),
|
|
5258
5293
|
...rest
|
|
@@ -5264,13 +5299,13 @@ var ReactionBar = forwardRef(
|
|
|
5264
5299
|
reactions,
|
|
5265
5300
|
onReact,
|
|
5266
5301
|
onAdd,
|
|
5267
|
-
|
|
5268
|
-
|
|
5269
|
-
|
|
5302
|
+
hasAddButton = true,
|
|
5303
|
+
isCompact,
|
|
5304
|
+
hasEmpty = false,
|
|
5270
5305
|
className,
|
|
5271
5306
|
...props
|
|
5272
5307
|
}, ref) => {
|
|
5273
|
-
const visible =
|
|
5308
|
+
const visible = hasEmpty ? reactions : reactions.filter((r) => r.count > 0);
|
|
5274
5309
|
return /* @__PURE__ */ jsxs(
|
|
5275
5310
|
"div",
|
|
5276
5311
|
{
|
|
@@ -5283,17 +5318,17 @@ var ReactionBar = forwardRef(
|
|
|
5283
5318
|
visible.map((r) => /* @__PURE__ */ jsxs(
|
|
5284
5319
|
ReactionChip,
|
|
5285
5320
|
{
|
|
5286
|
-
|
|
5321
|
+
isReactedByMe: r.isReactedByMe,
|
|
5287
5322
|
title: r.users?.length ? r.users.join(", ") : void 0,
|
|
5288
5323
|
onClick: () => onReact?.(r.key),
|
|
5289
5324
|
children: [
|
|
5290
5325
|
/* @__PURE__ */ jsx("span", { className: "text-sm leading-none", children: r.emoji }),
|
|
5291
|
-
!
|
|
5326
|
+
!isCompact && /* @__PURE__ */ jsx("span", { className: "font-medium tabular-nums", children: r.count })
|
|
5292
5327
|
]
|
|
5293
5328
|
},
|
|
5294
5329
|
r.key
|
|
5295
5330
|
)),
|
|
5296
|
-
|
|
5331
|
+
hasAddButton && onAdd && /* @__PURE__ */ jsx(
|
|
5297
5332
|
"button",
|
|
5298
5333
|
{
|
|
5299
5334
|
type: "button",
|
|
@@ -5334,8 +5369,8 @@ var ChatBubble = forwardRef(
|
|
|
5334
5369
|
author,
|
|
5335
5370
|
timestamp,
|
|
5336
5371
|
status,
|
|
5337
|
-
|
|
5338
|
-
|
|
5372
|
+
canShowStatusOnStart,
|
|
5373
|
+
isTailless,
|
|
5339
5374
|
footer,
|
|
5340
5375
|
children,
|
|
5341
5376
|
className,
|
|
@@ -5344,7 +5379,7 @@ var ChatBubble = forwardRef(
|
|
|
5344
5379
|
const isEnd = side === "end";
|
|
5345
5380
|
const effectiveTone = tone ?? (isEnd ? "primary" : "default");
|
|
5346
5381
|
const isSystem = effectiveTone === "system";
|
|
5347
|
-
const showStatus = !!status && (isEnd ||
|
|
5382
|
+
const showStatus = !!status && (isEnd || canShowStatusOnStart);
|
|
5348
5383
|
if (isSystem) {
|
|
5349
5384
|
return /* @__PURE__ */ jsx(
|
|
5350
5385
|
"div",
|
|
@@ -5385,7 +5420,7 @@ var ChatBubble = forwardRef(
|
|
|
5385
5420
|
className: cn(
|
|
5386
5421
|
"relative inline-block px-3 py-2 text-sm break-words",
|
|
5387
5422
|
TONE_BASE[effectiveTone],
|
|
5388
|
-
|
|
5423
|
+
isTailless ? "rounded-2xl" : isEnd ? "rounded-2xl rounded-br-sm" : "rounded-2xl rounded-bl-sm"
|
|
5389
5424
|
),
|
|
5390
5425
|
children
|
|
5391
5426
|
}
|
|
@@ -5434,10 +5469,10 @@ var MessageListInner = forwardRef(
|
|
|
5434
5469
|
({
|
|
5435
5470
|
header,
|
|
5436
5471
|
footer,
|
|
5437
|
-
|
|
5472
|
+
isSticky = true,
|
|
5438
5473
|
bottomThreshold = 32,
|
|
5439
|
-
|
|
5440
|
-
|
|
5474
|
+
hasJumpToBottom = true,
|
|
5475
|
+
isReversed: _isReversed,
|
|
5441
5476
|
children,
|
|
5442
5477
|
className,
|
|
5443
5478
|
...props
|
|
@@ -5461,8 +5496,8 @@ var MessageListInner = forwardRef(
|
|
|
5461
5496
|
[scrollToBottom, isNearBottom]
|
|
5462
5497
|
);
|
|
5463
5498
|
useLayoutEffect(() => {
|
|
5464
|
-
if (
|
|
5465
|
-
}, [children,
|
|
5499
|
+
if (isSticky && nearBottomRef.current) scrollToBottom("auto");
|
|
5500
|
+
}, [children, isSticky, scrollToBottom]);
|
|
5466
5501
|
useEffect(() => {
|
|
5467
5502
|
const el = scrollerRef.current;
|
|
5468
5503
|
if (!el) return;
|
|
@@ -5488,7 +5523,7 @@ var MessageListInner = forwardRef(
|
|
|
5488
5523
|
}
|
|
5489
5524
|
),
|
|
5490
5525
|
footer && /* @__PURE__ */ jsx("div", { className: "shrink-0 border-t border-border px-3 py-2", children: footer }),
|
|
5491
|
-
|
|
5526
|
+
hasJumpToBottom && !atBottom && /* @__PURE__ */ jsx(
|
|
5492
5527
|
"button",
|
|
5493
5528
|
{
|
|
5494
5529
|
type: "button",
|
|
@@ -5517,7 +5552,7 @@ var ThreadView = forwardRef(
|
|
|
5517
5552
|
children,
|
|
5518
5553
|
composer,
|
|
5519
5554
|
onClose,
|
|
5520
|
-
|
|
5555
|
+
hasCloseButton = true,
|
|
5521
5556
|
className,
|
|
5522
5557
|
...props
|
|
5523
5558
|
}, ref) => {
|
|
@@ -5540,7 +5575,7 @@ var ThreadView = forwardRef(
|
|
|
5540
5575
|
/* @__PURE__ */ jsx("div", { className: "text-sm font-semibold text-foreground", children: title }),
|
|
5541
5576
|
subtitle && /* @__PURE__ */ jsx("div", { className: "text-xs text-muted-foreground", children: subtitle })
|
|
5542
5577
|
] }),
|
|
5543
|
-
|
|
5578
|
+
hasCloseButton && onClose && /* @__PURE__ */ jsx(
|
|
5544
5579
|
"button",
|
|
5545
5580
|
{
|
|
5546
5581
|
type: "button",
|
|
@@ -5590,7 +5625,7 @@ var Comment = forwardRef(
|
|
|
5590
5625
|
actions,
|
|
5591
5626
|
replies,
|
|
5592
5627
|
defaultCollapsed = false,
|
|
5593
|
-
|
|
5628
|
+
isHighlighted,
|
|
5594
5629
|
className,
|
|
5595
5630
|
...props
|
|
5596
5631
|
}, ref) => {
|
|
@@ -5603,10 +5638,10 @@ var Comment = forwardRef(
|
|
|
5603
5638
|
ref,
|
|
5604
5639
|
role: "treeitem",
|
|
5605
5640
|
"aria-expanded": hasReplies ? !collapsed : void 0,
|
|
5606
|
-
"data-highlighted":
|
|
5641
|
+
"data-highlighted": isHighlighted ? "" : void 0,
|
|
5607
5642
|
className: cn(
|
|
5608
5643
|
"flex gap-2 rounded-md",
|
|
5609
|
-
|
|
5644
|
+
isHighlighted && "bg-primary-soft/30 ring-1 ring-primary/20 p-2",
|
|
5610
5645
|
className
|
|
5611
5646
|
),
|
|
5612
5647
|
...props,
|
|
@@ -5688,12 +5723,12 @@ Comment.displayName = "CommentThread.Comment";
|
|
|
5688
5723
|
var CommentThread = CommentThreadInner;
|
|
5689
5724
|
CommentThread.Comment = Comment;
|
|
5690
5725
|
var ActivityFeedInner = forwardRef(
|
|
5691
|
-
({
|
|
5726
|
+
({ isDense, children, className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
5692
5727
|
"ol",
|
|
5693
5728
|
{
|
|
5694
5729
|
ref,
|
|
5695
|
-
className: cn("flex list-none flex-col",
|
|
5696
|
-
"data-dense":
|
|
5730
|
+
className: cn("flex list-none flex-col", isDense ? "gap-3" : "gap-5", className),
|
|
5731
|
+
"data-dense": isDense ? "" : void 0,
|
|
5697
5732
|
...props,
|
|
5698
5733
|
children
|
|
5699
5734
|
}
|
|
@@ -5701,17 +5736,17 @@ var ActivityFeedInner = forwardRef(
|
|
|
5701
5736
|
);
|
|
5702
5737
|
ActivityFeedInner.displayName = "ActivityFeed";
|
|
5703
5738
|
var ActivityItem = forwardRef(
|
|
5704
|
-
({ avatar, children, timestamp, preview, actions,
|
|
5739
|
+
({ avatar, children, timestamp, preview, actions, isLast, className, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
5705
5740
|
"li",
|
|
5706
5741
|
{
|
|
5707
5742
|
ref,
|
|
5708
5743
|
className: cn("relative flex gap-3", className),
|
|
5709
|
-
"data-last":
|
|
5744
|
+
"data-last": isLast ? "" : void 0,
|
|
5710
5745
|
...props,
|
|
5711
5746
|
children: [
|
|
5712
5747
|
/* @__PURE__ */ jsxs("div", { className: "relative flex flex-col items-center", children: [
|
|
5713
5748
|
/* @__PURE__ */ jsx("div", { className: "z-raised shrink-0", children: avatar }),
|
|
5714
|
-
!
|
|
5749
|
+
!isLast && /* @__PURE__ */ jsx(
|
|
5715
5750
|
"span",
|
|
5716
5751
|
{
|
|
5717
5752
|
"aria-hidden": "true",
|
|
@@ -5735,6 +5770,6 @@ ActivityItem.displayName = "ActivityFeed.Item";
|
|
|
5735
5770
|
var ActivityFeed = ActivityFeedInner;
|
|
5736
5771
|
ActivityFeed.Item = ActivityItem;
|
|
5737
5772
|
|
|
5738
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityFeed, ActivityItem, AnimatedNumber, AnnotationMarker, AudioPlayer, AudioWaveform, Avatar, AvatarGroup, Badge, BadgeOverlay, Card, Carousel, CarouselDot, CarouselDots, CarouselNext, CarouselPrev, CarouselSlide, CarouselSlides, CarouselViewport, ChatBubble, Code, Collapsible, CollapsibleContent, CollapsibleTrigger, Comment, CommentThread, Confetti, CountBadge, CountUp, DataGrid, DataTable, DaySeparator, DescriptionList, DiffViewer, EmptyState, EventCalendar, Eyebrow, Gantt, GradientText, Heading, HeatmapCalendar, Highlight, Image, InfoRow, KeyboardShortcut, List, ListItem, Mark, Marquee, MessageList, MetaInline, MetricChip, NodeEditor, NotificationDot, PDFViewer, Quote, ReactionBar, ScheduleView, ScrollReveal, SectionHeader, Separator, Snippet, Sparkline, Stat, Status, SwipeActions, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeaderCell, TableRow, Tabs, TabsList, TabsPanel, TabsTab, Text, ThreadView, Tilt, Timeline, TimelineDescription, TimelineItem, TimelineTitle, Tooltip, Tree, TreeGroup, TreeItem, Typewriter, VideoPlayer, avatarVariants, badgeVariants, codeVariants, headingVariants, textVariants };
|
|
5739
|
-
//# sourceMappingURL=chunk-
|
|
5740
|
-
//# sourceMappingURL=chunk-
|
|
5773
|
+
export { Accordion2 as Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityFeed, ActivityItem, AnimatedNumber, AnnotationMarker, AudioPlayer, AudioWaveform, Avatar, AvatarGroup, Badge, BadgeOverlay, Card, Carousel, CarouselDot, CarouselDots, CarouselNext, CarouselPrev, CarouselSlide, CarouselSlides, CarouselViewport, ChatBubble, Code, Collapsible, CollapsibleContent, CollapsibleTrigger, Comment, CommentThread, Confetti, CountBadge, CountUp, DataGrid, DataTable, DaySeparator, DescriptionList, DiffViewer, EmptyState, EventCalendar, Eyebrow, Gantt, GradientText, Heading, HeatmapCalendar, Highlight, Image, InfoRow, KeyboardShortcut, List, ListItem, Mark, Marquee, MessageList, MetaInline, MetricChip, NodeEditor, NotificationDot, PDFViewer, Quote, ReactionBar, ScheduleView, ScrollReveal, SectionHeader, Separator, Snippet, Sparkline, Stat, Status, SwipeActions, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeaderCell, TableRow, Tabs, TabsList, TabsPanel, TabsTab, Text, ThreadView, Tilt, Timeline, TimelineDescription, TimelineItem, TimelineTitle, Tooltip, Tree, TreeGroup, TreeItem, Typewriter, VideoPlayer, avatarVariants, badgeVariants, codeVariants, headingVariants, textVariants };
|
|
5774
|
+
//# sourceMappingURL=chunk-Y5GS4CLT.js.map
|
|
5775
|
+
//# sourceMappingURL=chunk-Y5GS4CLT.js.map
|