@underverse-ui/underverse 1.0.98 → 1.0.100
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -15
- package/api-reference.json +7 -7
- package/dist/index.cjs +168 -77
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -3
- package/dist/index.d.ts +1 -3
- package/dist/index.js +168 -77
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -2633,8 +2633,6 @@ interface LanguageSwitcherHeadlessProps {
|
|
|
2633
2633
|
}
|
|
2634
2634
|
declare function LanguageSwitcherHeadless({ locales, currentLocale, onSwitch, labels, className, }: LanguageSwitcherHeadlessProps): react_jsx_runtime.JSX.Element;
|
|
2635
2635
|
|
|
2636
|
-
declare function cn$1(...inputs: ClassValue[]): string;
|
|
2637
|
-
|
|
2638
2636
|
/**
|
|
2639
2637
|
* Utility function to merge Tailwind CSS classes.
|
|
2640
2638
|
* Combines clsx for conditional classes and tailwind-merge for deduplication.
|
|
@@ -5094,4 +5092,4 @@ declare function getUnderverseMessages(locale?: UnderverseLocale): {
|
|
|
5094
5092
|
};
|
|
5095
5093
|
};
|
|
5096
5094
|
|
|
5097
|
-
export { AccessDenied, type AccessDeniedProps, Alert, Avatar, Badge, Badge as BadgeBase, BatteryProgress, BottomSheet, Breadcrumb, Button, ButtonLoading, type ButtonProps, Calendar, type CalendarEvent, type CalendarHoliday, type CalendarProps, CalendarTimeline, type CalendarTimelineDateInput, type CalendarTimelineDayRangeMode, type CalendarTimelineEvent, type CalendarTimelineFormatters, type CalendarTimelineGroup, type CalendarTimelineInteractions, type CalendarTimelineLabels, type CalendarTimelineProps, type CalendarTimelineResource, type CalendarTimelineSize, type CalendarTimelineView, type CalendarTimelineVirtualization, Card, type CardProps, Carousel, type CarouselEffectOptions, type CarouselEffectPreset, type Category, CategoryTreeSelect, type CategoryTreeSelectBaseProps, type CategoryTreeSelectLabels, type CategoryTreeSelectMultiProps, type CategoryTreeSelectProps, type CategoryTreeSelectSingleProps, Checkbox, type CheckboxProps, CircularProgress, ClientOnly, ColorPicker, type ColorPickerProps, Combobox, type ComboboxOption, type ComboboxProps, CompactDatePicker, CompactPagination, type CompactPaginationProps, DataTable, type DataTableColumn, type DataTableDensity, type DataTableLabels, type DataTableProps, type DataTableQuery, type DataTableSize, DatePicker, type DatePickerProps, DateRangePicker, type DateRangePickerProps, DateTimePicker, type DateTimePickerProps, date as DateUtils, Drawer, DropdownMenu, DropdownMenuItem, DropdownMenuSeparator, EmojiPicker, type EmojiPickerProps, FallingIcons, FileUpload, type FileUploadProps, type FilterType, ForceInternalTranslationsProvider, Form, FormActions, FormCheckbox, FormControl, FormDescription, FormField, FormInput, FormItem, FormLabel, FormMessage, FormSubmitButton, GlobalLoading, GradientBadge, Grid, GridItem, type GridItemProps, type GridProps, ImageUpload, type ImageUploadProps, InlineLoading, Input, type InputProps, InteractiveBadge, Label, type LanguageOption, LanguageSwitcherHeadless as LanguageSwitcher, LanguageSwitcherHeadless, type LanguageSwitcherHeadlessProps, type LanguageSwitcherHeadlessProps as LanguageSwitcherProps, List, ListItem, LoadingBar, LoadingDots, LoadingProgress, LoadingSpinner, type LoadingState, type Locale, MiniProgress, Modal, MonthYearPicker, MonthYearPicker as MonthYearPickerBase, type MonthYearPickerProps, MultiCombobox, type MultiComboboxOption, type MultiComboboxProps, MusicPlayer, MusicPlayer as MusicPlayerDefault, type MusicPlayerProps, NextIntlAdapter, NotificationBadge, NotificationModal, NumberInput, type NumberInputProps, OverlayControls, type OverlayControlsProps, OverlayScrollArea, type OverlayScrollAreaProps, OverlayScrollbarProvider, type OverlayScrollbarProviderProps, PageLoading, Pagination, type PaginationProps, PasswordInput, type PasswordInputProps, PillTabs, Popover, Progress, PulseBadge, RadioGroup, RadioGroupItem, SIZE_STYLES_BTN, ScrollArea, type ScrollAreaProps, SearchInput, type SearchInputProps, Section, SegmentedProgress, SelectDropdown, Sheet, SidebarSheet, SimplePagination, type SimplePaginationProps, SimpleTabs, Skeleton, SkeletonAvatar, SkeletonButton, SkeletonCard, SkeletonList, SkeletonMessage, SkeletonPost, SkeletonTable, SkeletonText, SlideOver, Slider, type SliderProps, SmartImage, type Song, type Sorter, StatusBadge, StepProgress, type SupportedLocale, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, type TableHeaderProps, type TableProps, TableRow, Tabs, TagBadge, TagInput, TagInput as TagInputBase, type TagInputProps, Textarea, type TextareaProps, type ThemeMode, ThemeToggleHeadless as ThemeToggle, ThemeToggleHeadless, type ThemeToggleHeadlessProps, type ThemeToggleHeadlessProps as ThemeToggleProps, TimePicker, type TimePickerProps, Timeline, TimelineItem, ToastProvider, Tooltip, TranslationProvider, type TranslationProviderProps, type Translations, UEditor, type UEditorFontFamilyOption, type UEditorFontSizeOption, type UEditorInlineUploadedItem, type UEditorLetterSpacingOption, type UEditorLineHeightOption, UEditorPrepareContentForSaveError, type UEditorPrepareContentForSaveOptions, type UEditorPrepareContentForSaveResult, type UEditorProps, type UEditorRef, type UEditorUploadImageForSave, type UEditorUploadImageForSaveResult, type UEditorVariant, type UnderverseLocale, UnderverseNextIntlProvider, UnderverseProvider, type UnderverseProviderProps, type UploadedFile, type UploadedImage, type UseOverlayScrollbarTargetOptions, VARIANT_STYLES_ALERT, VARIANT_STYLES_BTN, VIETNAM_HOLIDAYS, VerticalTabs, Watermark, type WatermarkProps, cn
|
|
5095
|
+
export { AccessDenied, type AccessDeniedProps, Alert, Avatar, Badge, Badge as BadgeBase, BatteryProgress, BottomSheet, Breadcrumb, Button, ButtonLoading, type ButtonProps, Calendar, type CalendarEvent, type CalendarHoliday, type CalendarProps, CalendarTimeline, type CalendarTimelineDateInput, type CalendarTimelineDayRangeMode, type CalendarTimelineEvent, type CalendarTimelineFormatters, type CalendarTimelineGroup, type CalendarTimelineInteractions, type CalendarTimelineLabels, type CalendarTimelineProps, type CalendarTimelineResource, type CalendarTimelineSize, type CalendarTimelineView, type CalendarTimelineVirtualization, Card, type CardProps, Carousel, type CarouselEffectOptions, type CarouselEffectPreset, type Category, CategoryTreeSelect, type CategoryTreeSelectBaseProps, type CategoryTreeSelectLabels, type CategoryTreeSelectMultiProps, type CategoryTreeSelectProps, type CategoryTreeSelectSingleProps, Checkbox, type CheckboxProps, CircularProgress, ClientOnly, ColorPicker, type ColorPickerProps, Combobox, type ComboboxOption, type ComboboxProps, CompactDatePicker, CompactPagination, type CompactPaginationProps, DataTable, type DataTableColumn, type DataTableDensity, type DataTableLabels, type DataTableProps, type DataTableQuery, type DataTableSize, DatePicker, type DatePickerProps, DateRangePicker, type DateRangePickerProps, DateTimePicker, type DateTimePickerProps, date as DateUtils, Drawer, DropdownMenu, DropdownMenuItem, DropdownMenuSeparator, EmojiPicker, type EmojiPickerProps, FallingIcons, FileUpload, type FileUploadProps, type FilterType, ForceInternalTranslationsProvider, Form, FormActions, FormCheckbox, FormControl, FormDescription, FormField, FormInput, FormItem, FormLabel, FormMessage, FormSubmitButton, GlobalLoading, GradientBadge, Grid, GridItem, type GridItemProps, type GridProps, ImageUpload, type ImageUploadProps, InlineLoading, Input, type InputProps, InteractiveBadge, Label, type LanguageOption, LanguageSwitcherHeadless as LanguageSwitcher, LanguageSwitcherHeadless, type LanguageSwitcherHeadlessProps, type LanguageSwitcherHeadlessProps as LanguageSwitcherProps, List, ListItem, LoadingBar, LoadingDots, LoadingProgress, LoadingSpinner, type LoadingState, type Locale, MiniProgress, Modal, MonthYearPicker, MonthYearPicker as MonthYearPickerBase, type MonthYearPickerProps, MultiCombobox, type MultiComboboxOption, type MultiComboboxProps, MusicPlayer, MusicPlayer as MusicPlayerDefault, type MusicPlayerProps, NextIntlAdapter, NotificationBadge, NotificationModal, NumberInput, type NumberInputProps, OverlayControls, type OverlayControlsProps, OverlayScrollArea, type OverlayScrollAreaProps, OverlayScrollbarProvider, type OverlayScrollbarProviderProps, PageLoading, Pagination, type PaginationProps, PasswordInput, type PasswordInputProps, PillTabs, Popover, Progress, PulseBadge, RadioGroup, RadioGroupItem, SIZE_STYLES_BTN, ScrollArea, type ScrollAreaProps, SearchInput, type SearchInputProps, Section, SegmentedProgress, SelectDropdown, Sheet, SidebarSheet, SimplePagination, type SimplePaginationProps, SimpleTabs, Skeleton, SkeletonAvatar, SkeletonButton, SkeletonCard, SkeletonList, SkeletonMessage, SkeletonPost, SkeletonTable, SkeletonText, SlideOver, Slider, type SliderProps, SmartImage, type Song, type Sorter, StatusBadge, StepProgress, type SupportedLocale, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, type TableHeaderProps, type TableProps, TableRow, Tabs, TagBadge, TagInput, TagInput as TagInputBase, type TagInputProps, Textarea, type TextareaProps, type ThemeMode, ThemeToggleHeadless as ThemeToggle, ThemeToggleHeadless, type ThemeToggleHeadlessProps, type ThemeToggleHeadlessProps as ThemeToggleProps, TimePicker, type TimePickerProps, Timeline, TimelineItem, ToastProvider, Tooltip, TranslationProvider, type TranslationProviderProps, type Translations, UEditor, type UEditorFontFamilyOption, type UEditorFontSizeOption, type UEditorInlineUploadedItem, type UEditorLetterSpacingOption, type UEditorLineHeightOption, UEditorPrepareContentForSaveError, type UEditorPrepareContentForSaveOptions, type UEditorPrepareContentForSaveResult, type UEditorProps, type UEditorRef, type UEditorUploadImageForSave, type UEditorUploadImageForSaveResult, type UEditorVariant, type UnderverseLocale, UnderverseNextIntlProvider, UnderverseProvider, type UnderverseProviderProps, type UploadedFile, type UploadedImage, type UseOverlayScrollbarTargetOptions, VARIANT_STYLES_ALERT, VARIANT_STYLES_BTN, VIETNAM_HOLIDAYS, VerticalTabs, Watermark, type WatermarkProps, cn, cn as cnLocal, extractImageSrcsFromHtml, getAnimationStyles, getUnderverseMessages, injectAnimationStyles, loading, normalizeImageUrl, prepareUEditorContentForSave, shadcnAnimationStyles, underverseMessages, useFormField, useOverlayScrollbarTarget, useShadCNAnimations, useSmartLocale, useSmartTranslations, useToast, useTranslations as useUnderverseI18n, useLocale as useUnderverseI18nLocale, useUnderverseLocale, useUnderverseTranslations };
|
package/dist/index.d.ts
CHANGED
|
@@ -2633,8 +2633,6 @@ interface LanguageSwitcherHeadlessProps {
|
|
|
2633
2633
|
}
|
|
2634
2634
|
declare function LanguageSwitcherHeadless({ locales, currentLocale, onSwitch, labels, className, }: LanguageSwitcherHeadlessProps): react_jsx_runtime.JSX.Element;
|
|
2635
2635
|
|
|
2636
|
-
declare function cn$1(...inputs: ClassValue[]): string;
|
|
2637
|
-
|
|
2638
2636
|
/**
|
|
2639
2637
|
* Utility function to merge Tailwind CSS classes.
|
|
2640
2638
|
* Combines clsx for conditional classes and tailwind-merge for deduplication.
|
|
@@ -5094,4 +5092,4 @@ declare function getUnderverseMessages(locale?: UnderverseLocale): {
|
|
|
5094
5092
|
};
|
|
5095
5093
|
};
|
|
5096
5094
|
|
|
5097
|
-
export { AccessDenied, type AccessDeniedProps, Alert, Avatar, Badge, Badge as BadgeBase, BatteryProgress, BottomSheet, Breadcrumb, Button, ButtonLoading, type ButtonProps, Calendar, type CalendarEvent, type CalendarHoliday, type CalendarProps, CalendarTimeline, type CalendarTimelineDateInput, type CalendarTimelineDayRangeMode, type CalendarTimelineEvent, type CalendarTimelineFormatters, type CalendarTimelineGroup, type CalendarTimelineInteractions, type CalendarTimelineLabels, type CalendarTimelineProps, type CalendarTimelineResource, type CalendarTimelineSize, type CalendarTimelineView, type CalendarTimelineVirtualization, Card, type CardProps, Carousel, type CarouselEffectOptions, type CarouselEffectPreset, type Category, CategoryTreeSelect, type CategoryTreeSelectBaseProps, type CategoryTreeSelectLabels, type CategoryTreeSelectMultiProps, type CategoryTreeSelectProps, type CategoryTreeSelectSingleProps, Checkbox, type CheckboxProps, CircularProgress, ClientOnly, ColorPicker, type ColorPickerProps, Combobox, type ComboboxOption, type ComboboxProps, CompactDatePicker, CompactPagination, type CompactPaginationProps, DataTable, type DataTableColumn, type DataTableDensity, type DataTableLabels, type DataTableProps, type DataTableQuery, type DataTableSize, DatePicker, type DatePickerProps, DateRangePicker, type DateRangePickerProps, DateTimePicker, type DateTimePickerProps, date as DateUtils, Drawer, DropdownMenu, DropdownMenuItem, DropdownMenuSeparator, EmojiPicker, type EmojiPickerProps, FallingIcons, FileUpload, type FileUploadProps, type FilterType, ForceInternalTranslationsProvider, Form, FormActions, FormCheckbox, FormControl, FormDescription, FormField, FormInput, FormItem, FormLabel, FormMessage, FormSubmitButton, GlobalLoading, GradientBadge, Grid, GridItem, type GridItemProps, type GridProps, ImageUpload, type ImageUploadProps, InlineLoading, Input, type InputProps, InteractiveBadge, Label, type LanguageOption, LanguageSwitcherHeadless as LanguageSwitcher, LanguageSwitcherHeadless, type LanguageSwitcherHeadlessProps, type LanguageSwitcherHeadlessProps as LanguageSwitcherProps, List, ListItem, LoadingBar, LoadingDots, LoadingProgress, LoadingSpinner, type LoadingState, type Locale, MiniProgress, Modal, MonthYearPicker, MonthYearPicker as MonthYearPickerBase, type MonthYearPickerProps, MultiCombobox, type MultiComboboxOption, type MultiComboboxProps, MusicPlayer, MusicPlayer as MusicPlayerDefault, type MusicPlayerProps, NextIntlAdapter, NotificationBadge, NotificationModal, NumberInput, type NumberInputProps, OverlayControls, type OverlayControlsProps, OverlayScrollArea, type OverlayScrollAreaProps, OverlayScrollbarProvider, type OverlayScrollbarProviderProps, PageLoading, Pagination, type PaginationProps, PasswordInput, type PasswordInputProps, PillTabs, Popover, Progress, PulseBadge, RadioGroup, RadioGroupItem, SIZE_STYLES_BTN, ScrollArea, type ScrollAreaProps, SearchInput, type SearchInputProps, Section, SegmentedProgress, SelectDropdown, Sheet, SidebarSheet, SimplePagination, type SimplePaginationProps, SimpleTabs, Skeleton, SkeletonAvatar, SkeletonButton, SkeletonCard, SkeletonList, SkeletonMessage, SkeletonPost, SkeletonTable, SkeletonText, SlideOver, Slider, type SliderProps, SmartImage, type Song, type Sorter, StatusBadge, StepProgress, type SupportedLocale, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, type TableHeaderProps, type TableProps, TableRow, Tabs, TagBadge, TagInput, TagInput as TagInputBase, type TagInputProps, Textarea, type TextareaProps, type ThemeMode, ThemeToggleHeadless as ThemeToggle, ThemeToggleHeadless, type ThemeToggleHeadlessProps, type ThemeToggleHeadlessProps as ThemeToggleProps, TimePicker, type TimePickerProps, Timeline, TimelineItem, ToastProvider, Tooltip, TranslationProvider, type TranslationProviderProps, type Translations, UEditor, type UEditorFontFamilyOption, type UEditorFontSizeOption, type UEditorInlineUploadedItem, type UEditorLetterSpacingOption, type UEditorLineHeightOption, UEditorPrepareContentForSaveError, type UEditorPrepareContentForSaveOptions, type UEditorPrepareContentForSaveResult, type UEditorProps, type UEditorRef, type UEditorUploadImageForSave, type UEditorUploadImageForSaveResult, type UEditorVariant, type UnderverseLocale, UnderverseNextIntlProvider, UnderverseProvider, type UnderverseProviderProps, type UploadedFile, type UploadedImage, type UseOverlayScrollbarTargetOptions, VARIANT_STYLES_ALERT, VARIANT_STYLES_BTN, VIETNAM_HOLIDAYS, VerticalTabs, Watermark, type WatermarkProps, cn
|
|
5095
|
+
export { AccessDenied, type AccessDeniedProps, Alert, Avatar, Badge, Badge as BadgeBase, BatteryProgress, BottomSheet, Breadcrumb, Button, ButtonLoading, type ButtonProps, Calendar, type CalendarEvent, type CalendarHoliday, type CalendarProps, CalendarTimeline, type CalendarTimelineDateInput, type CalendarTimelineDayRangeMode, type CalendarTimelineEvent, type CalendarTimelineFormatters, type CalendarTimelineGroup, type CalendarTimelineInteractions, type CalendarTimelineLabels, type CalendarTimelineProps, type CalendarTimelineResource, type CalendarTimelineSize, type CalendarTimelineView, type CalendarTimelineVirtualization, Card, type CardProps, Carousel, type CarouselEffectOptions, type CarouselEffectPreset, type Category, CategoryTreeSelect, type CategoryTreeSelectBaseProps, type CategoryTreeSelectLabels, type CategoryTreeSelectMultiProps, type CategoryTreeSelectProps, type CategoryTreeSelectSingleProps, Checkbox, type CheckboxProps, CircularProgress, ClientOnly, ColorPicker, type ColorPickerProps, Combobox, type ComboboxOption, type ComboboxProps, CompactDatePicker, CompactPagination, type CompactPaginationProps, DataTable, type DataTableColumn, type DataTableDensity, type DataTableLabels, type DataTableProps, type DataTableQuery, type DataTableSize, DatePicker, type DatePickerProps, DateRangePicker, type DateRangePickerProps, DateTimePicker, type DateTimePickerProps, date as DateUtils, Drawer, DropdownMenu, DropdownMenuItem, DropdownMenuSeparator, EmojiPicker, type EmojiPickerProps, FallingIcons, FileUpload, type FileUploadProps, type FilterType, ForceInternalTranslationsProvider, Form, FormActions, FormCheckbox, FormControl, FormDescription, FormField, FormInput, FormItem, FormLabel, FormMessage, FormSubmitButton, GlobalLoading, GradientBadge, Grid, GridItem, type GridItemProps, type GridProps, ImageUpload, type ImageUploadProps, InlineLoading, Input, type InputProps, InteractiveBadge, Label, type LanguageOption, LanguageSwitcherHeadless as LanguageSwitcher, LanguageSwitcherHeadless, type LanguageSwitcherHeadlessProps, type LanguageSwitcherHeadlessProps as LanguageSwitcherProps, List, ListItem, LoadingBar, LoadingDots, LoadingProgress, LoadingSpinner, type LoadingState, type Locale, MiniProgress, Modal, MonthYearPicker, MonthYearPicker as MonthYearPickerBase, type MonthYearPickerProps, MultiCombobox, type MultiComboboxOption, type MultiComboboxProps, MusicPlayer, MusicPlayer as MusicPlayerDefault, type MusicPlayerProps, NextIntlAdapter, NotificationBadge, NotificationModal, NumberInput, type NumberInputProps, OverlayControls, type OverlayControlsProps, OverlayScrollArea, type OverlayScrollAreaProps, OverlayScrollbarProvider, type OverlayScrollbarProviderProps, PageLoading, Pagination, type PaginationProps, PasswordInput, type PasswordInputProps, PillTabs, Popover, Progress, PulseBadge, RadioGroup, RadioGroupItem, SIZE_STYLES_BTN, ScrollArea, type ScrollAreaProps, SearchInput, type SearchInputProps, Section, SegmentedProgress, SelectDropdown, Sheet, SidebarSheet, SimplePagination, type SimplePaginationProps, SimpleTabs, Skeleton, SkeletonAvatar, SkeletonButton, SkeletonCard, SkeletonList, SkeletonMessage, SkeletonPost, SkeletonTable, SkeletonText, SlideOver, Slider, type SliderProps, SmartImage, type Song, type Sorter, StatusBadge, StepProgress, type SupportedLocale, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, type TableHeaderProps, type TableProps, TableRow, Tabs, TagBadge, TagInput, TagInput as TagInputBase, type TagInputProps, Textarea, type TextareaProps, type ThemeMode, ThemeToggleHeadless as ThemeToggle, ThemeToggleHeadless, type ThemeToggleHeadlessProps, type ThemeToggleHeadlessProps as ThemeToggleProps, TimePicker, type TimePickerProps, Timeline, TimelineItem, ToastProvider, Tooltip, TranslationProvider, type TranslationProviderProps, type Translations, UEditor, type UEditorFontFamilyOption, type UEditorFontSizeOption, type UEditorInlineUploadedItem, type UEditorLetterSpacingOption, type UEditorLineHeightOption, UEditorPrepareContentForSaveError, type UEditorPrepareContentForSaveOptions, type UEditorPrepareContentForSaveResult, type UEditorProps, type UEditorRef, type UEditorUploadImageForSave, type UEditorUploadImageForSaveResult, type UEditorVariant, type UnderverseLocale, UnderverseNextIntlProvider, UnderverseProvider, type UnderverseProviderProps, type UploadedFile, type UploadedImage, type UseOverlayScrollbarTargetOptions, VARIANT_STYLES_ALERT, VARIANT_STYLES_BTN, VIETNAM_HOLIDAYS, VerticalTabs, Watermark, type WatermarkProps, cn, cn as cnLocal, extractImageSrcsFromHtml, getAnimationStyles, getUnderverseMessages, injectAnimationStyles, loading, normalizeImageUrl, prepareUEditorContentForSave, shadcnAnimationStyles, underverseMessages, useFormField, useOverlayScrollbarTarget, useShadCNAnimations, useSmartLocale, useSmartTranslations, useToast, useTranslations as useUnderverseI18n, useLocale as useUnderverseI18nLocale, useUnderverseLocale, useUnderverseTranslations };
|
package/dist/index.js
CHANGED
|
@@ -1815,8 +1815,9 @@ function useSmartTranslations(namespace) {
|
|
|
1815
1815
|
return internalT;
|
|
1816
1816
|
}
|
|
1817
1817
|
return (key) => {
|
|
1818
|
-
const
|
|
1819
|
-
const
|
|
1818
|
+
const resolvedEnvironmentLocale = environmentLocale && environmentLocale !== internalLocale ? environmentLocale : null;
|
|
1819
|
+
const primaryLocale = nextIntlBridge?.locale ?? resolvedEnvironmentLocale ?? internalLocale;
|
|
1820
|
+
const fallbackLocale = resolvedEnvironmentLocale && resolvedEnvironmentLocale !== primaryLocale ? resolvedEnvironmentLocale : null;
|
|
1820
1821
|
let translated = null;
|
|
1821
1822
|
if (nextIntlBridge) {
|
|
1822
1823
|
const nextIntlResult = nextIntlBridge.translate(namespace, key);
|
|
@@ -1848,10 +1849,20 @@ function useSmartLocale() {
|
|
|
1848
1849
|
const forceInternal = React6.useContext(ForceInternalContext);
|
|
1849
1850
|
const nextIntlBridge = useNextIntlBridge();
|
|
1850
1851
|
const internalLocale = useUnderverseLocale();
|
|
1852
|
+
const [environmentLocale, setEnvironmentLocale] = React6.useState(null);
|
|
1853
|
+
React6.useEffect(() => {
|
|
1854
|
+
if (forceInternal) return;
|
|
1855
|
+
if (nextIntlBridge) return;
|
|
1856
|
+
if (internalLocale !== "en") return;
|
|
1857
|
+
const detected = getEnvironmentLocale(internalLocale);
|
|
1858
|
+
if (detected !== internalLocale) {
|
|
1859
|
+
setEnvironmentLocale(detected);
|
|
1860
|
+
}
|
|
1861
|
+
}, [forceInternal, internalLocale, nextIntlBridge]);
|
|
1851
1862
|
if (forceInternal) {
|
|
1852
1863
|
return internalLocale;
|
|
1853
1864
|
}
|
|
1854
|
-
return nextIntlBridge?.locale ?? internalLocale;
|
|
1865
|
+
return nextIntlBridge?.locale ?? environmentLocale ?? internalLocale;
|
|
1855
1866
|
}
|
|
1856
1867
|
|
|
1857
1868
|
// src/components/Input.tsx
|
|
@@ -7196,9 +7207,10 @@ var Combobox = ({
|
|
|
7196
7207
|
{
|
|
7197
7208
|
id: `combobox-item-${index}`,
|
|
7198
7209
|
type: "button",
|
|
7210
|
+
role: "option",
|
|
7199
7211
|
tabIndex: -1,
|
|
7200
7212
|
disabled: itemDisabled,
|
|
7201
|
-
"aria-
|
|
7213
|
+
"aria-selected": isSelected,
|
|
7202
7214
|
onClick: () => handleSelect(item),
|
|
7203
7215
|
style: {
|
|
7204
7216
|
animationDelay: open ? `${Math.min(index * 15, 150)}ms` : "0ms"
|
|
@@ -7303,40 +7315,50 @@ var Combobox = ({
|
|
|
7303
7315
|
}
|
|
7304
7316
|
)
|
|
7305
7317
|
] }) }),
|
|
7306
|
-
/* @__PURE__ */ jsx29(
|
|
7307
|
-
|
|
7308
|
-
|
|
7309
|
-
|
|
7310
|
-
|
|
7311
|
-
|
|
7312
|
-
|
|
7313
|
-
|
|
7314
|
-
|
|
7315
|
-
/* @__PURE__ */ jsx29("
|
|
7316
|
-
|
|
7317
|
-
|
|
7318
|
-
|
|
7319
|
-
|
|
7320
|
-
|
|
7321
|
-
|
|
7322
|
-
|
|
7323
|
-
|
|
7324
|
-
|
|
7325
|
-
|
|
7326
|
-
|
|
7327
|
-
|
|
7328
|
-
|
|
7329
|
-
|
|
7330
|
-
|
|
7331
|
-
|
|
7332
|
-
{
|
|
7333
|
-
|
|
7334
|
-
|
|
7335
|
-
|
|
7336
|
-
|
|
7337
|
-
|
|
7338
|
-
|
|
7339
|
-
|
|
7318
|
+
/* @__PURE__ */ jsx29(
|
|
7319
|
+
"div",
|
|
7320
|
+
{
|
|
7321
|
+
ref: optionsViewportRef,
|
|
7322
|
+
role: "listbox",
|
|
7323
|
+
"aria-labelledby": labelId,
|
|
7324
|
+
className: "overflow-y-auto overscroll-contain",
|
|
7325
|
+
style: { maxHeight },
|
|
7326
|
+
children: /* @__PURE__ */ jsx29("div", { className: cn(size === "sm" ? "p-1" : size === "lg" ? "p-2" : "p-1.5"), children: loading2 ? /* @__PURE__ */ jsx29("div", { className: "px-3 py-10 text-center", children: /* @__PURE__ */ jsxs22("div", { className: "flex flex-col items-center gap-3 animate-in fade-in-0 zoom-in-95 duration-300", children: [
|
|
7327
|
+
/* @__PURE__ */ jsx29("div", { className: "relative", children: /* @__PURE__ */ jsx29("div", { className: "w-10 h-10 rounded-full border-2 border-primary/20 border-t-primary animate-spin" }) }),
|
|
7328
|
+
/* @__PURE__ */ jsx29("span", { className: "text-sm text-muted-foreground", children: loadingText })
|
|
7329
|
+
] }) }) : filteredOptions.length > 0 ? groupedOptions ? (
|
|
7330
|
+
// Render grouped options with global index tracking
|
|
7331
|
+
(() => {
|
|
7332
|
+
let globalIndex = 0;
|
|
7333
|
+
return Object.entries(groupedOptions).map(([group, items]) => /* @__PURE__ */ jsxs22("div", { className: cn(globalIndex > 0 && "mt-2 pt-2 border-t border-border/30"), children: [
|
|
7334
|
+
/* @__PURE__ */ jsx29("div", { className: "px-3 py-1.5 text-xs font-semibold text-muted-foreground uppercase tracking-wider", children: group }),
|
|
7335
|
+
/* @__PURE__ */ jsx29("ul", { className: "space-y-0.5", children: items.map((item) => {
|
|
7336
|
+
const index = globalIndex++;
|
|
7337
|
+
return renderOptionItem(item, index);
|
|
7338
|
+
}) })
|
|
7339
|
+
] }, group));
|
|
7340
|
+
})()
|
|
7341
|
+
) : (
|
|
7342
|
+
// Render flat options
|
|
7343
|
+
/* @__PURE__ */ jsx29("ul", { className: "space-y-0.5", children: filteredOptions.map((item, index) => renderOptionItem(item, index)) })
|
|
7344
|
+
) : /* @__PURE__ */ jsx29("div", { className: "px-3 py-10 text-center", children: /* @__PURE__ */ jsxs22("div", { className: "flex flex-col items-center gap-3 animate-in fade-in-0 zoom-in-95 duration-300", children: [
|
|
7345
|
+
/* @__PURE__ */ jsx29("div", { className: "w-12 h-12 rounded-full bg-muted/50 flex items-center justify-center", children: /* @__PURE__ */ jsx29(SearchX, { className: "h-6 w-6 text-muted-foreground/60" }) }),
|
|
7346
|
+
/* @__PURE__ */ jsxs22("div", { className: "space-y-1", children: [
|
|
7347
|
+
/* @__PURE__ */ jsx29("span", { className: "block text-sm font-medium text-foreground", children: emptyText }),
|
|
7348
|
+
query && /* @__PURE__ */ jsx29("span", { className: "block text-xs text-muted-foreground", children: "Try a different search term" })
|
|
7349
|
+
] }),
|
|
7350
|
+
query && /* @__PURE__ */ jsx29(
|
|
7351
|
+
"button",
|
|
7352
|
+
{
|
|
7353
|
+
type: "button",
|
|
7354
|
+
onClick: () => setQuery(""),
|
|
7355
|
+
className: "px-3 py-1.5 text-xs font-medium text-primary bg-primary/10 rounded-full hover:bg-primary/20 transition-colors",
|
|
7356
|
+
children: "Clear search"
|
|
7357
|
+
}
|
|
7358
|
+
)
|
|
7359
|
+
] }) }) })
|
|
7360
|
+
}
|
|
7361
|
+
)
|
|
7340
7362
|
]
|
|
7341
7363
|
}
|
|
7342
7364
|
);
|
|
@@ -16976,6 +16998,42 @@ function getInitialExpandedNodes(categories, {
|
|
|
16976
16998
|
function getExpandedNodesState(expandedIds, uncontrolledExpandedNodes) {
|
|
16977
16999
|
return expandedIds !== void 0 ? new Set(expandedIds) : uncontrolledExpandedNodes;
|
|
16978
17000
|
}
|
|
17001
|
+
function collectAncestorIds(categories, categoryId) {
|
|
17002
|
+
const ancestorIds = getAncestorPathIds(categories, categoryId);
|
|
17003
|
+
ancestorIds.delete(categoryId);
|
|
17004
|
+
return ancestorIds;
|
|
17005
|
+
}
|
|
17006
|
+
function collectDescendantIds(childrenMap, categoryId) {
|
|
17007
|
+
const descendants = /* @__PURE__ */ new Set();
|
|
17008
|
+
const stack = [categoryId];
|
|
17009
|
+
while (stack.length > 0) {
|
|
17010
|
+
const currentId = stack.pop();
|
|
17011
|
+
for (const child of childrenMap.get(currentId) ?? []) {
|
|
17012
|
+
if (descendants.has(child.id)) continue;
|
|
17013
|
+
descendants.add(child.id);
|
|
17014
|
+
stack.push(child.id);
|
|
17015
|
+
}
|
|
17016
|
+
}
|
|
17017
|
+
return descendants;
|
|
17018
|
+
}
|
|
17019
|
+
function pruneAncestorSelection(categories, childrenMap, selected, fromCategoryId) {
|
|
17020
|
+
const byId = new Map(categories.map((category) => [category.id, category]));
|
|
17021
|
+
let current = byId.get(fromCategoryId);
|
|
17022
|
+
let guard = 0;
|
|
17023
|
+
while (current && typeof current.parent_id === "number" && guard++ < categories.length) {
|
|
17024
|
+
const parent = byId.get(current.parent_id);
|
|
17025
|
+
if (!parent) break;
|
|
17026
|
+
const descendantIds = collectDescendantIds(childrenMap, parent.id);
|
|
17027
|
+
const hasSelectedDescendant = Array.from(descendantIds).some((id) => selected.has(id));
|
|
17028
|
+
if (!hasSelectedDescendant) {
|
|
17029
|
+
selected.delete(parent.id);
|
|
17030
|
+
}
|
|
17031
|
+
current = parent;
|
|
17032
|
+
}
|
|
17033
|
+
}
|
|
17034
|
+
function toCategoryOrderSelection(categories, selected) {
|
|
17035
|
+
return categories.map((category) => category.id).filter((categoryId) => selected.has(categoryId));
|
|
17036
|
+
}
|
|
16979
17037
|
function CategoryTreeSelect(props) {
|
|
16980
17038
|
const tv = useSmartTranslations("ValidationInput");
|
|
16981
17039
|
const {
|
|
@@ -17136,15 +17194,17 @@ function CategoryTreeSelect(props) {
|
|
|
17136
17194
|
const newSelected = new Set(valueArray);
|
|
17137
17195
|
if (newSelected.has(categoryId)) {
|
|
17138
17196
|
newSelected.delete(categoryId);
|
|
17139
|
-
const
|
|
17140
|
-
|
|
17197
|
+
for (const descendantId of collectDescendantIds(childrenMap, categoryId)) {
|
|
17198
|
+
newSelected.delete(descendantId);
|
|
17199
|
+
}
|
|
17200
|
+
pruneAncestorSelection(categories, childrenMap, newSelected, categoryId);
|
|
17141
17201
|
} else {
|
|
17142
17202
|
newSelected.add(categoryId);
|
|
17143
|
-
|
|
17144
|
-
newSelected.add(
|
|
17203
|
+
for (const ancestorId of collectAncestorIds(categories, categoryId)) {
|
|
17204
|
+
newSelected.add(ancestorId);
|
|
17145
17205
|
}
|
|
17146
17206
|
}
|
|
17147
|
-
onChange(
|
|
17207
|
+
onChange(toCategoryOrderSelection(categories, newSelected));
|
|
17148
17208
|
}
|
|
17149
17209
|
};
|
|
17150
17210
|
const renderCategory = (category, level = 0) => {
|
|
@@ -17498,11 +17558,10 @@ function CategoryTreeSelect(props) {
|
|
|
17498
17558
|
"shadow-2xl backdrop-blur-xl"
|
|
17499
17559
|
),
|
|
17500
17560
|
trigger: /* @__PURE__ */ jsxs39(
|
|
17501
|
-
"
|
|
17561
|
+
"div",
|
|
17502
17562
|
{
|
|
17503
17563
|
id: resolvedId,
|
|
17504
|
-
|
|
17505
|
-
disabled,
|
|
17564
|
+
tabIndex: disabled ? -1 : 0,
|
|
17506
17565
|
role: "combobox",
|
|
17507
17566
|
"aria-haspopup": "tree",
|
|
17508
17567
|
"aria-expanded": isOpen,
|
|
@@ -17511,6 +17570,13 @@ function CategoryTreeSelect(props) {
|
|
|
17511
17570
|
"aria-describedby": describedBy,
|
|
17512
17571
|
"aria-required": required,
|
|
17513
17572
|
"aria-invalid": !!effectiveError,
|
|
17573
|
+
onKeyDown: (event) => {
|
|
17574
|
+
if (disabled) return;
|
|
17575
|
+
if (event.key === "Enter" || event.key === " " || event.key === "ArrowDown") {
|
|
17576
|
+
event.preventDefault();
|
|
17577
|
+
handleOpenChange(!isOpen);
|
|
17578
|
+
}
|
|
17579
|
+
},
|
|
17514
17580
|
className: cn(
|
|
17515
17581
|
"group flex w-full items-center justify-between rounded-full transition-all duration-200",
|
|
17516
17582
|
"backdrop-blur-sm",
|
|
@@ -17549,13 +17615,11 @@ function CategoryTreeSelect(props) {
|
|
|
17549
17615
|
] }),
|
|
17550
17616
|
/* @__PURE__ */ jsxs39("div", { className: "ml-2 flex shrink-0 items-center gap-1.5", children: [
|
|
17551
17617
|
allowClear && selectedCount > 0 && !disabled && /* @__PURE__ */ jsx49(
|
|
17552
|
-
"
|
|
17618
|
+
"button",
|
|
17553
17619
|
{
|
|
17554
|
-
|
|
17555
|
-
tabIndex: 0,
|
|
17620
|
+
type: "button",
|
|
17556
17621
|
"aria-label": "Clear selection",
|
|
17557
17622
|
onClick: handleClear,
|
|
17558
|
-
onKeyDown: (event) => (event.key === "Enter" || event.key === " ") && handleClear(event),
|
|
17559
17623
|
className: cn(
|
|
17560
17624
|
"opacity-0 group-hover:opacity-100 transition-all duration-200",
|
|
17561
17625
|
"p-1 rounded-lg hover:bg-destructive/10 text-muted-foreground hover:text-destructive",
|
|
@@ -21278,6 +21342,18 @@ function DataTableBodyRows({
|
|
|
21278
21342
|
import React54 from "react";
|
|
21279
21343
|
import { Filter as FilterIcon } from "lucide-react";
|
|
21280
21344
|
import { Fragment as Fragment22, jsx as jsx64, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
21345
|
+
function getColumnLabel(title) {
|
|
21346
|
+
if (typeof title === "string" || typeof title === "number") {
|
|
21347
|
+
return String(title).replace(/\s+/g, " ").trim();
|
|
21348
|
+
}
|
|
21349
|
+
if (Array.isArray(title)) {
|
|
21350
|
+
return title.map((item) => getColumnLabel(item)).filter(Boolean).join(" ").replace(/\s+/g, " ").trim();
|
|
21351
|
+
}
|
|
21352
|
+
if (React54.isValidElement(title)) {
|
|
21353
|
+
return getColumnLabel(title.props.children);
|
|
21354
|
+
}
|
|
21355
|
+
return "";
|
|
21356
|
+
}
|
|
21281
21357
|
function DataTableHeader({
|
|
21282
21358
|
headerRows,
|
|
21283
21359
|
headerAlign,
|
|
@@ -21302,12 +21378,13 @@ function DataTableHeader({
|
|
|
21302
21378
|
if (!col.filter) return null;
|
|
21303
21379
|
const key = col.key;
|
|
21304
21380
|
const commonProps = { className: "w-full", size };
|
|
21381
|
+
const columnLabel = getColumnLabel(col.title) || key;
|
|
21305
21382
|
if (col.filter.type === "text") {
|
|
21306
21383
|
return /* @__PURE__ */ jsx64(
|
|
21307
21384
|
Input_default,
|
|
21308
21385
|
{
|
|
21309
21386
|
...commonProps,
|
|
21310
|
-
placeholder: col.filter.placeholder || `Search ${
|
|
21387
|
+
placeholder: col.filter.placeholder || `Search ${columnLabel}`,
|
|
21311
21388
|
value: filters[key] || "",
|
|
21312
21389
|
onChange: (e) => {
|
|
21313
21390
|
setCurPage(1);
|
|
@@ -21328,7 +21405,7 @@ function DataTableHeader({
|
|
|
21328
21405
|
setCurPage(1);
|
|
21329
21406
|
setFilters((prev) => ({ ...prev, [key]: value || void 0 }));
|
|
21330
21407
|
},
|
|
21331
|
-
placeholder: col.filter.placeholder || `Select ${
|
|
21408
|
+
placeholder: col.filter.placeholder || `Select ${columnLabel}`
|
|
21332
21409
|
}
|
|
21333
21410
|
);
|
|
21334
21411
|
}
|
|
@@ -21337,7 +21414,7 @@ function DataTableHeader({
|
|
|
21337
21414
|
DatePicker,
|
|
21338
21415
|
{
|
|
21339
21416
|
size,
|
|
21340
|
-
placeholder: col.filter.placeholder || `Select ${
|
|
21417
|
+
placeholder: col.filter.placeholder || `Select ${columnLabel}`,
|
|
21341
21418
|
value: filters[key] || null,
|
|
21342
21419
|
onChange: (date) => {
|
|
21343
21420
|
setCurPage(1);
|
|
@@ -21369,16 +21446,19 @@ function DataTableHeader({
|
|
|
21369
21446
|
}
|
|
21370
21447
|
const isRightAlign = col.align === "right" || !col.align && headerAlign === "right";
|
|
21371
21448
|
const isCenterAlign = col.align === "center" || !col.align && headerAlign === "center";
|
|
21449
|
+
const columnLabel = getColumnLabel(col.title) || col.key;
|
|
21372
21450
|
const titleContent = /* @__PURE__ */ jsxs53("div", { className: "flex items-center gap-1", children: [
|
|
21373
21451
|
/* @__PURE__ */ jsx64("span", { className: cn("font-medium whitespace-nowrap select-text", headerTitleClass), children: col.title }),
|
|
21374
21452
|
col.sortable && /* @__PURE__ */ jsx64(
|
|
21375
21453
|
Tooltip,
|
|
21376
21454
|
{
|
|
21377
21455
|
placement: "top",
|
|
21378
|
-
content: /* @__PURE__ */ jsx64("span", { className: "text-xs font-medium", children: `Sort by ${
|
|
21456
|
+
content: /* @__PURE__ */ jsx64("span", { className: "text-xs font-medium", children: `Sort by ${columnLabel}` }),
|
|
21379
21457
|
children: /* @__PURE__ */ jsx64(
|
|
21380
21458
|
"button",
|
|
21381
21459
|
{
|
|
21460
|
+
type: "button",
|
|
21461
|
+
title: `Sort by ${columnLabel}`,
|
|
21382
21462
|
className: cn(
|
|
21383
21463
|
"p-1 rounded-lg transition-all duration-200 hover:bg-accent",
|
|
21384
21464
|
sort?.key === col.key ? "opacity-100 bg-accent" : "opacity-60 hover:opacity-100"
|
|
@@ -21391,7 +21471,7 @@ function DataTableHeader({
|
|
|
21391
21471
|
return null;
|
|
21392
21472
|
});
|
|
21393
21473
|
},
|
|
21394
|
-
"aria-label":
|
|
21474
|
+
"aria-label": `Sort by ${columnLabel}`,
|
|
21395
21475
|
children: /* @__PURE__ */ jsxs53("svg", { viewBox: "0 0 20 20", fill: "none", className: cn("inline-block", sortIconClass), children: [
|
|
21396
21476
|
/* @__PURE__ */ jsx64(
|
|
21397
21477
|
"path",
|
|
@@ -21429,15 +21509,17 @@ function DataTableHeader({
|
|
|
21429
21509
|
Tooltip,
|
|
21430
21510
|
{
|
|
21431
21511
|
placement: "top",
|
|
21432
|
-
content: /* @__PURE__ */ jsx64("span", { className: "text-xs font-medium", children: `Filter by ${
|
|
21512
|
+
content: /* @__PURE__ */ jsx64("span", { className: "text-xs font-medium", children: `Filter by ${columnLabel}` }),
|
|
21433
21513
|
children: /* @__PURE__ */ jsx64(
|
|
21434
21514
|
"button",
|
|
21435
21515
|
{
|
|
21516
|
+
type: "button",
|
|
21517
|
+
title: `Filter by ${columnLabel}`,
|
|
21436
21518
|
className: cn(
|
|
21437
21519
|
"p-1.5 rounded-lg transition-all duration-200 hover:bg-accent",
|
|
21438
21520
|
filters[col.key] ? "bg-accent text-primary" : "text-muted-foreground"
|
|
21439
21521
|
),
|
|
21440
|
-
"aria-label":
|
|
21522
|
+
"aria-label": `Filter by ${columnLabel}`,
|
|
21441
21523
|
children: /* @__PURE__ */ jsx64(FilterIcon, { className: "w-4 h-4" })
|
|
21442
21524
|
}
|
|
21443
21525
|
)
|
|
@@ -22593,7 +22675,7 @@ var useFormField = () => {
|
|
|
22593
22675
|
var FormItemContext = React63.createContext({});
|
|
22594
22676
|
var FormItem = React63.forwardRef(({ className, ...props }, ref) => {
|
|
22595
22677
|
const id = React63.useId();
|
|
22596
|
-
return /* @__PURE__ */ jsx68(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx68("div", { ref, className: cn("space-y-2", className), ...props }) });
|
|
22678
|
+
return /* @__PURE__ */ jsx68(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx68("div", { ref, className: cn("group space-y-2", className), ...props }) });
|
|
22597
22679
|
});
|
|
22598
22680
|
FormItem.displayName = "FormItem";
|
|
22599
22681
|
var FormLabel = React63.forwardRef(
|
|
@@ -22601,10 +22683,24 @@ var FormLabel = React63.forwardRef(
|
|
|
22601
22683
|
const { error, formItemId } = useFormField();
|
|
22602
22684
|
const config = React63.useContext(FormConfigContext);
|
|
22603
22685
|
const sizeClass = config.size === "sm" ? "text-xs" : config.size === "lg" ? "text-base" : "text-sm";
|
|
22604
|
-
return /* @__PURE__ */ jsxs57(
|
|
22605
|
-
|
|
22606
|
-
|
|
22607
|
-
|
|
22686
|
+
return /* @__PURE__ */ jsxs57(
|
|
22687
|
+
Label,
|
|
22688
|
+
{
|
|
22689
|
+
ref,
|
|
22690
|
+
className: cn(
|
|
22691
|
+
sizeClass,
|
|
22692
|
+
"transition-colors duration-200",
|
|
22693
|
+
error ? "text-destructive" : "group-focus-within:text-primary",
|
|
22694
|
+
className
|
|
22695
|
+
),
|
|
22696
|
+
htmlFor: formItemId,
|
|
22697
|
+
...props,
|
|
22698
|
+
children: [
|
|
22699
|
+
children,
|
|
22700
|
+
required && /* @__PURE__ */ jsx68("span", { className: "text-destructive ml-1", children: "*" })
|
|
22701
|
+
]
|
|
22702
|
+
}
|
|
22703
|
+
);
|
|
22608
22704
|
}
|
|
22609
22705
|
);
|
|
22610
22706
|
FormLabel.displayName = "FormLabel";
|
|
@@ -22953,16 +23049,8 @@ function LanguageSwitcherHeadless({
|
|
|
22953
23049
|
] });
|
|
22954
23050
|
}
|
|
22955
23051
|
|
|
22956
|
-
//
|
|
22957
|
-
import { clsx as clsx2 } from "clsx";
|
|
22958
|
-
import { twMerge as twMerge2 } from "tailwind-merge";
|
|
22959
|
-
function cn2(...inputs) {
|
|
22960
|
-
return twMerge2(clsx2(...inputs));
|
|
22961
|
-
}
|
|
22962
|
-
|
|
22963
|
-
// ../../lib/constants/constants-ui/alert.ts
|
|
23052
|
+
// src/constants/alert.ts
|
|
22964
23053
|
var VARIANT_STYLES_ALERT = {
|
|
22965
|
-
// Use system colors for background + border; leave text colors to content
|
|
22966
23054
|
default: "border border-border bg-card/60 backdrop-blur-sm",
|
|
22967
23055
|
info: "border border-info/30 bg-info/10 backdrop-blur-sm",
|
|
22968
23056
|
success: "border border-success/30 bg-success/10 backdrop-blur-sm",
|
|
@@ -22970,7 +23058,7 @@ var VARIANT_STYLES_ALERT = {
|
|
|
22970
23058
|
error: "border border-destructive/30 bg-destructive/10 backdrop-blur-sm"
|
|
22971
23059
|
};
|
|
22972
23060
|
|
|
22973
|
-
//
|
|
23061
|
+
// src/contexts/translation-adapter.tsx
|
|
22974
23062
|
import * as React65 from "react";
|
|
22975
23063
|
import { jsx as jsx73 } from "react/jsx-runtime";
|
|
22976
23064
|
function isUnresolvedTranslation2(value, namespace, key) {
|
|
@@ -31697,6 +31785,7 @@ var UEditor = React74.forwardRef(({
|
|
|
31697
31785
|
const t = useSmartTranslations("UEditor");
|
|
31698
31786
|
const effectivePlaceholder = placeholder ?? t("placeholder");
|
|
31699
31787
|
const inFlightPrepareRef = useRef31(null);
|
|
31788
|
+
const lastAppliedContentRef = useRef31(content ?? "");
|
|
31700
31789
|
const editorContentRef = useRef31(null);
|
|
31701
31790
|
const tableColumnGuideRef = useRef31(null);
|
|
31702
31791
|
const tableRowGuideRef = useRef31(null);
|
|
@@ -31999,10 +32088,12 @@ var UEditor = React74.forwardRef(({
|
|
|
31999
32088
|
[content, editor, uploadImageForSave]
|
|
32000
32089
|
);
|
|
32001
32090
|
useEffect35(() => {
|
|
32002
|
-
if (editor
|
|
32003
|
-
|
|
32004
|
-
|
|
32005
|
-
|
|
32091
|
+
if (!editor) return;
|
|
32092
|
+
const nextContent = content ?? "";
|
|
32093
|
+
if (lastAppliedContentRef.current === nextContent) return;
|
|
32094
|
+
lastAppliedContentRef.current = nextContent;
|
|
32095
|
+
if (editor.getHTML() !== nextContent) {
|
|
32096
|
+
editor.commands.setContent(nextContent, { emitUpdate: false });
|
|
32006
32097
|
}
|
|
32007
32098
|
}, [content, editor]);
|
|
32008
32099
|
useEffect35(() => {
|
|
@@ -32452,7 +32543,7 @@ export {
|
|
|
32452
32543
|
VIETNAM_HOLIDAYS,
|
|
32453
32544
|
VerticalTabs,
|
|
32454
32545
|
Watermark_default as Watermark,
|
|
32455
|
-
|
|
32546
|
+
cn,
|
|
32456
32547
|
cn as cnLocal,
|
|
32457
32548
|
extractImageSrcsFromHtml,
|
|
32458
32549
|
getAnimationStyles,
|