@underverse-ui/underverse 0.2.37 → 0.2.38
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/index.cjs +2294 -1489
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +500 -46
- package/dist/index.d.ts +500 -46
- package/dist/index.js +2171 -1374
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -506,8 +506,8 @@ declare const Alert: ({ title, description, variant, className, icon, dismissibl
|
|
|
506
506
|
interface GlobalLoadingProps {
|
|
507
507
|
className?: string;
|
|
508
508
|
backdrop?: boolean;
|
|
509
|
-
position?:
|
|
510
|
-
size?:
|
|
509
|
+
position?: "fixed" | "absolute";
|
|
510
|
+
size?: "sm" | "md" | "lg";
|
|
511
511
|
}
|
|
512
512
|
/**
|
|
513
513
|
* Component GlobalLoading - tự động lắng nghe singleton loading state
|
|
@@ -523,7 +523,7 @@ interface InlineLoadingProps {
|
|
|
523
523
|
isLoading: boolean;
|
|
524
524
|
text?: string;
|
|
525
525
|
className?: string;
|
|
526
|
-
size?:
|
|
526
|
+
size?: "sm" | "md" | "lg";
|
|
527
527
|
}
|
|
528
528
|
declare const InlineLoading: React__default.FC<InlineLoadingProps>;
|
|
529
529
|
interface ButtonLoadingProps {
|
|
@@ -1599,47 +1599,71 @@ interface LanguageSwitcherHeadlessProps {
|
|
|
1599
1599
|
}
|
|
1600
1600
|
declare function LanguageSwitcherHeadless({ locales, currentLocale, onSwitch, labels, className, }: LanguageSwitcherHeadlessProps): react_jsx_runtime.JSX.Element;
|
|
1601
1601
|
|
|
1602
|
+
declare function cn$1(...inputs: ClassValue[]): string;
|
|
1603
|
+
|
|
1604
|
+
/**
|
|
1605
|
+
* Utility function to merge Tailwind CSS classes.
|
|
1606
|
+
* Combines clsx for conditional classes and tailwind-merge for deduplication.
|
|
1607
|
+
*
|
|
1608
|
+
* @param inputs - Class values to merge
|
|
1609
|
+
* @returns Merged class string
|
|
1610
|
+
*
|
|
1611
|
+
* @example
|
|
1612
|
+
* ```tsx
|
|
1613
|
+
* cn("px-4 py-2", isActive && "bg-primary", className)
|
|
1614
|
+
* // => "px-4 py-2 bg-primary your-custom-class"
|
|
1615
|
+
* ```
|
|
1616
|
+
*/
|
|
1602
1617
|
declare function cn(...inputs: ClassValue[]): string;
|
|
1603
1618
|
|
|
1604
1619
|
/**
|
|
1605
|
-
* Date formatting utilities
|
|
1620
|
+
* Date formatting utilities with locale support
|
|
1606
1621
|
* Provides consistent date/time formatting across the application
|
|
1622
|
+
*
|
|
1623
|
+
* @example
|
|
1624
|
+
* ```tsx
|
|
1625
|
+
* import { DateUtils } from "@underverse-ui/underverse";
|
|
1626
|
+
*
|
|
1627
|
+
* // Format date with default locale (en)
|
|
1628
|
+
* DateUtils.formatDate(new Date()); // "December 25, 2024"
|
|
1629
|
+
*
|
|
1630
|
+
* // Format date with Vietnamese locale
|
|
1631
|
+
* DateUtils.formatDate(new Date(), "vi"); // "25 tháng 12, 2024"
|
|
1632
|
+
* ```
|
|
1607
1633
|
*/
|
|
1634
|
+
type SupportedLocale = "en" | "vi" | "ko" | "ja";
|
|
1608
1635
|
/**
|
|
1609
|
-
* Format date to
|
|
1610
|
-
*
|
|
1636
|
+
* Format date to readable format
|
|
1637
|
+
* @example
|
|
1638
|
+
* formatDate(new Date(), "vi") // "25 tháng 12, 2024"
|
|
1639
|
+
* formatDate(new Date(), "en") // "December 25, 2024"
|
|
1611
1640
|
*/
|
|
1612
|
-
declare function formatDate(date: string | Date | null | undefined): string;
|
|
1641
|
+
declare function formatDate(date: string | Date | null | undefined, locale?: SupportedLocale): string;
|
|
1613
1642
|
/**
|
|
1614
1643
|
* Format date to short format
|
|
1615
|
-
*
|
|
1644
|
+
* @example
|
|
1645
|
+
* formatDateShort(new Date(), "vi") // "25/12/2024"
|
|
1646
|
+
* formatDateShort(new Date(), "en") // "12/25/2024"
|
|
1616
1647
|
*/
|
|
1617
|
-
declare function formatDateShort(date: string | Date | null | undefined): string;
|
|
1648
|
+
declare function formatDateShort(date: string | Date | null | undefined, locale?: SupportedLocale): string;
|
|
1618
1649
|
/**
|
|
1619
1650
|
* Format time only
|
|
1620
|
-
*
|
|
1651
|
+
* @example formatTime(new Date()) // "14:30"
|
|
1621
1652
|
*/
|
|
1622
|
-
declare function formatTime(date: string | Date | null | undefined): string;
|
|
1653
|
+
declare function formatTime(date: string | Date | null | undefined, locale?: SupportedLocale): string;
|
|
1623
1654
|
/**
|
|
1624
1655
|
* Format date and time
|
|
1625
|
-
*
|
|
1656
|
+
* @example
|
|
1657
|
+
* formatDateTime(new Date(), "vi") // "25/12/2024 14:30"
|
|
1626
1658
|
*/
|
|
1627
|
-
declare function formatDateTime(date: string | Date | null | undefined): string;
|
|
1628
|
-
/**
|
|
1629
|
-
* Format date with time - more readable
|
|
1630
|
-
* Example: "25 tháng 12, 2024 lúc 14:30"
|
|
1631
|
-
*/
|
|
1632
|
-
declare function formatDateTimeLong(date: string | Date | null | undefined): string;
|
|
1659
|
+
declare function formatDateTime(date: string | Date | null | undefined, locale?: SupportedLocale): string;
|
|
1633
1660
|
/**
|
|
1634
1661
|
* Format relative time (time ago)
|
|
1635
|
-
*
|
|
1662
|
+
* @example
|
|
1663
|
+
* formatTimeAgo(new Date(Date.now() - 60000), "vi") // "1 phút trước"
|
|
1664
|
+
* formatTimeAgo(new Date(Date.now() - 60000), "en") // "1 minute ago"
|
|
1636
1665
|
*/
|
|
1637
|
-
declare function formatTimeAgo(date: string | Date | null | undefined): string;
|
|
1638
|
-
/**
|
|
1639
|
-
* Format date range
|
|
1640
|
-
* Example: "25/12/2024 - 31/12/2024"
|
|
1641
|
-
*/
|
|
1642
|
-
declare function formatDateRange(startDate: string | Date | null | undefined, endDate: string | Date | null | undefined): string;
|
|
1666
|
+
declare function formatTimeAgo(date: string | Date | null | undefined, locale?: SupportedLocale): string;
|
|
1643
1667
|
/**
|
|
1644
1668
|
* Check if date is today
|
|
1645
1669
|
*/
|
|
@@ -1648,45 +1672,49 @@ declare function isToday(date: string | Date | null | undefined): boolean;
|
|
|
1648
1672
|
* Check if date is yesterday
|
|
1649
1673
|
*/
|
|
1650
1674
|
declare function isYesterday(date: string | Date | null | undefined): boolean;
|
|
1651
|
-
/**
|
|
1652
|
-
* Smart date formatting - shows relative time for recent dates, full date for older ones
|
|
1653
|
-
* Example:
|
|
1654
|
-
* - "Vừa xong" (< 1 min)
|
|
1655
|
-
* - "5 phút trước" (< 1 hour)
|
|
1656
|
-
* - "Hôm nay lúc 14:30" (today)
|
|
1657
|
-
* - "Hôm qua lúc 14:30" (yesterday)
|
|
1658
|
-
* - "25/12/2024 14:30" (older)
|
|
1659
|
-
*/
|
|
1660
|
-
declare function formatDateSmart(date: string | Date | null | undefined): string;
|
|
1661
1675
|
/**
|
|
1662
1676
|
* Format date for input[type="date"]
|
|
1663
|
-
*
|
|
1677
|
+
* @example formatDateForInput(new Date()) // "2024-12-25"
|
|
1664
1678
|
*/
|
|
1665
1679
|
declare function formatDateForInput(date: string | Date | null | undefined): string;
|
|
1666
1680
|
/**
|
|
1667
1681
|
* Format date for input[type="datetime-local"]
|
|
1668
|
-
*
|
|
1682
|
+
* @example formatDateTimeForInput(new Date()) // "2024-12-25T14:30"
|
|
1669
1683
|
*/
|
|
1670
1684
|
declare function formatDateTimeForInput(date: string | Date | null | undefined): string;
|
|
1671
1685
|
/**
|
|
1672
|
-
* Get day of week
|
|
1673
|
-
*
|
|
1686
|
+
* Get day of week
|
|
1687
|
+
* @example
|
|
1688
|
+
* getDayOfWeek(new Date(), "vi") // "Thứ Hai"
|
|
1689
|
+
* getDayOfWeek(new Date(), "en") // "Monday"
|
|
1674
1690
|
*/
|
|
1675
|
-
declare function getDayOfWeek(date: string | Date | null | undefined): string;
|
|
1691
|
+
declare function getDayOfWeek(date: string | Date | null | undefined, locale?: SupportedLocale): string;
|
|
1676
1692
|
/**
|
|
1677
1693
|
* Format with day of week
|
|
1678
|
-
*
|
|
1694
|
+
* @example
|
|
1695
|
+
* formatDateWithDay(new Date(), "vi") // "Thứ Hai, 25/12/2024"
|
|
1696
|
+
* formatDateWithDay(new Date(), "en") // "Monday, 12/25/2024"
|
|
1679
1697
|
*/
|
|
1680
|
-
declare function formatDateWithDay(date: string | Date | null | undefined): string;
|
|
1698
|
+
declare function formatDateWithDay(date: string | Date | null | undefined, locale?: SupportedLocale): string;
|
|
1699
|
+
/**
|
|
1700
|
+
* Smart date formatting - shows relative time for recent dates, full date for older ones
|
|
1701
|
+
* @example
|
|
1702
|
+
* formatDateSmart(new Date(), "vi")
|
|
1703
|
+
* // "Vừa xong" (< 1 min)
|
|
1704
|
+
* // "5 phút trước" (< 1 hour)
|
|
1705
|
+
* // "Hôm nay lúc 14:30" (today)
|
|
1706
|
+
* // "Hôm qua lúc 14:30" (yesterday)
|
|
1707
|
+
* // "25/12/2024 14:30" (older)
|
|
1708
|
+
*/
|
|
1709
|
+
declare function formatDateSmart(date: string | Date | null | undefined, locale?: SupportedLocale): string;
|
|
1681
1710
|
|
|
1711
|
+
type date_SupportedLocale = SupportedLocale;
|
|
1682
1712
|
declare const date_formatDate: typeof formatDate;
|
|
1683
1713
|
declare const date_formatDateForInput: typeof formatDateForInput;
|
|
1684
|
-
declare const date_formatDateRange: typeof formatDateRange;
|
|
1685
1714
|
declare const date_formatDateShort: typeof formatDateShort;
|
|
1686
1715
|
declare const date_formatDateSmart: typeof formatDateSmart;
|
|
1687
1716
|
declare const date_formatDateTime: typeof formatDateTime;
|
|
1688
1717
|
declare const date_formatDateTimeForInput: typeof formatDateTimeForInput;
|
|
1689
|
-
declare const date_formatDateTimeLong: typeof formatDateTimeLong;
|
|
1690
1718
|
declare const date_formatDateWithDay: typeof formatDateWithDay;
|
|
1691
1719
|
declare const date_formatTime: typeof formatTime;
|
|
1692
1720
|
declare const date_formatTimeAgo: typeof formatTimeAgo;
|
|
@@ -1694,9 +1722,51 @@ declare const date_getDayOfWeek: typeof getDayOfWeek;
|
|
|
1694
1722
|
declare const date_isToday: typeof isToday;
|
|
1695
1723
|
declare const date_isYesterday: typeof isYesterday;
|
|
1696
1724
|
declare namespace date {
|
|
1697
|
-
export {
|
|
1725
|
+
export { type date_SupportedLocale as SupportedLocale, date_formatDate as formatDate, date_formatDateForInput as formatDateForInput, date_formatDateShort as formatDateShort, date_formatDateSmart as formatDateSmart, date_formatDateTime as formatDateTime, date_formatDateTimeForInput as formatDateTimeForInput, date_formatDateWithDay as formatDateWithDay, date_formatTime as formatTime, date_formatTimeAgo as formatTimeAgo, date_getDayOfWeek as getDayOfWeek, date_isToday as isToday, date_isYesterday as isYesterday };
|
|
1698
1726
|
}
|
|
1699
1727
|
|
|
1728
|
+
/**
|
|
1729
|
+
* ShadCN UI Animation Styles - Enhanced with smooth spring-like animations
|
|
1730
|
+
*
|
|
1731
|
+
* This module provides animation utilities used by Underverse UI components.
|
|
1732
|
+
* It can be used standalone or with the useShadCNAnimations hook.
|
|
1733
|
+
*
|
|
1734
|
+
* @example
|
|
1735
|
+
* ```tsx
|
|
1736
|
+
* import { useShadCNAnimations } from "@underverse-ui/underverse";
|
|
1737
|
+
*
|
|
1738
|
+
* function MyComponent() {
|
|
1739
|
+
* useShadCNAnimations(); // Injects animation styles
|
|
1740
|
+
* return <div data-state="open">Animated content</div>;
|
|
1741
|
+
* }
|
|
1742
|
+
* ```
|
|
1743
|
+
*/
|
|
1744
|
+
declare const shadcnAnimationStyles = "\n /* ============================================\n * DROPDOWN / POPOVER ANIMATIONS\n * Uses spring-like cubic-bezier for natural feel\n * ============================================ */\n \n /* Native-like Combobox Animation - Mimics browser default select */\n [data-state=\"open\"][data-combobox-dropdown] {\n animation: comboboxOpen 150ms cubic-bezier(0.2, 0, 0, 1);\n transform-origin: top center;\n }\n\n [data-state=\"closed\"][data-combobox-dropdown] {\n animation: comboboxClose 120ms cubic-bezier(0.4, 0, 1, 1);\n transform-origin: top center;\n }\n\n @keyframes comboboxOpen {\n 0% {\n opacity: 0;\n transform: translateY(-4px) scaleY(0.9);\n }\n 100% {\n opacity: 1;\n transform: translateY(0) scaleY(1);\n }\n }\n\n @keyframes comboboxClose {\n 0% {\n opacity: 1;\n transform: translateY(0) scaleY(1);\n }\n 100% {\n opacity: 0;\n transform: translateY(-4px) scaleY(0.9);\n }\n }\n\n /* Generic dropdown open/close */\n [data-state=\"open\"] {\n animation: slideDownAndFade 220ms cubic-bezier(0.16, 1, 0.3, 1);\n }\n \n [data-state=\"closed\"] {\n animation: slideUpAndFade 180ms cubic-bezier(0.4, 0, 0.2, 1);\n }\n \n @keyframes slideDownAndFade {\n from {\n opacity: 0;\n transform: translateY(-4px) scale(0.98);\n }\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n }\n \n @keyframes slideUpAndFade {\n from {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n to {\n opacity: 0;\n transform: translateY(-4px) scale(0.98);\n }\n }\n \n /* ============================================\n * DROPDOWN ITEMS - Native-like instant appearance\n * ============================================ */\n\n /* Fast staggered animation for native feel */\n .dropdown-item {\n opacity: 0;\n animation: itemFadeIn 120ms cubic-bezier(0.2, 0, 0, 1) forwards;\n }\n\n @keyframes itemFadeIn {\n from {\n opacity: 0;\n transform: translateX(-4px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n }\n\n /* Item stagger delays - minimal for speed */\n .dropdown-item:nth-child(1) { animation-delay: 0ms; }\n .dropdown-item:nth-child(2) { animation-delay: 15ms; }\n .dropdown-item:nth-child(3) { animation-delay: 30ms; }\n .dropdown-item:nth-child(4) { animation-delay: 45ms; }\n .dropdown-item:nth-child(5) { animation-delay: 60ms; }\n .dropdown-item:nth-child(6) { animation-delay: 75ms; }\n .dropdown-item:nth-child(7) { animation-delay: 90ms; }\n .dropdown-item:nth-child(8) { animation-delay: 105ms; }\n .dropdown-item:nth-child(n+9) { animation-delay: 120ms; }\n\n /* ============================================\n * DATEPICKER ANIMATIONS\n * ============================================ */\n\n .datepicker-day {\n opacity: 0;\n animation: dayFadeIn 200ms cubic-bezier(0.16, 1, 0.3, 1) forwards;\n }\n\n @keyframes dayFadeIn {\n from {\n opacity: 0;\n transform: scale(0.8);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n\n /* ============================================\n * TOOLTIP ANIMATIONS\n * ============================================ */\n\n [data-tooltip] {\n animation: tooltipIn 150ms cubic-bezier(0.16, 1, 0.3, 1);\n }\n\n @keyframes tooltipIn {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n\n /* ============================================\n * MODAL / DIALOG ANIMATIONS\n * ============================================ */\n\n .modal-content {\n animation: scaleIn 200ms cubic-bezier(0.34, 1.56, 0.64, 1);\n }\n \n @keyframes scaleIn {\n from {\n opacity: 0;\n transform: scale(0.9);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n \n /* Smooth backdrop blur transition */\n .backdrop-animate {\n transition: backdrop-filter 200ms ease, background-color 200ms ease;\n }\n";
|
|
1745
|
+
/**
|
|
1746
|
+
* Hook to inject ShadCN animation styles into the document head.
|
|
1747
|
+
* Call this hook in components that need animations.
|
|
1748
|
+
* The styles are only injected once, even if called multiple times.
|
|
1749
|
+
*
|
|
1750
|
+
* @example
|
|
1751
|
+
* ```tsx
|
|
1752
|
+
* function Dropdown() {
|
|
1753
|
+
* useShadCNAnimations();
|
|
1754
|
+
* return <div data-state="open">...</div>;
|
|
1755
|
+
* }
|
|
1756
|
+
* ```
|
|
1757
|
+
*/
|
|
1758
|
+
declare function useShadCNAnimations(): void;
|
|
1759
|
+
/**
|
|
1760
|
+
* Manually inject animation styles.
|
|
1761
|
+
* Useful for non-React environments or SSR.
|
|
1762
|
+
*/
|
|
1763
|
+
declare function injectAnimationStyles(): void;
|
|
1764
|
+
/**
|
|
1765
|
+
* Get the animation styles as a string.
|
|
1766
|
+
* Useful for including in a style tag or CSS file.
|
|
1767
|
+
*/
|
|
1768
|
+
declare function getAnimationStyles(): string;
|
|
1769
|
+
|
|
1700
1770
|
declare const VARIANT_STYLES_ALERT: {
|
|
1701
1771
|
default: string;
|
|
1702
1772
|
info: string;
|
|
@@ -1705,6 +1775,148 @@ declare const VARIANT_STYLES_ALERT: {
|
|
|
1705
1775
|
error: string;
|
|
1706
1776
|
};
|
|
1707
1777
|
|
|
1778
|
+
type Locale$1 = "en" | "vi" | "ko" | "ja";
|
|
1779
|
+
type Translations = Record<string, Record<string, string | Record<string, string>>>;
|
|
1780
|
+
interface TranslationProviderProps {
|
|
1781
|
+
children: React$1.ReactNode;
|
|
1782
|
+
/** Current locale. Defaults to "en" */
|
|
1783
|
+
locale?: Locale$1;
|
|
1784
|
+
/** Custom translations to merge with defaults */
|
|
1785
|
+
translations?: Partial<Record<Locale$1, Translations>>;
|
|
1786
|
+
}
|
|
1787
|
+
/**
|
|
1788
|
+
* TranslationProvider for Underverse UI components.
|
|
1789
|
+
*
|
|
1790
|
+
* This provider is OPTIONAL. Components will use English fallback texts
|
|
1791
|
+
* when no provider is available.
|
|
1792
|
+
*
|
|
1793
|
+
* @example
|
|
1794
|
+
* ```tsx
|
|
1795
|
+
* // Basic usage
|
|
1796
|
+
* <TranslationProvider locale="vi">
|
|
1797
|
+
* <App />
|
|
1798
|
+
* </TranslationProvider>
|
|
1799
|
+
*
|
|
1800
|
+
* // With custom translations
|
|
1801
|
+
* <TranslationProvider
|
|
1802
|
+
* locale="vi"
|
|
1803
|
+
* translations={{
|
|
1804
|
+
* vi: { DatePicker: { clear: "Xóa ngay" } }
|
|
1805
|
+
* }}
|
|
1806
|
+
* >
|
|
1807
|
+
* <App />
|
|
1808
|
+
* </TranslationProvider>
|
|
1809
|
+
* ```
|
|
1810
|
+
*/
|
|
1811
|
+
declare const TranslationProvider: React$1.FC<TranslationProviderProps>;
|
|
1812
|
+
/**
|
|
1813
|
+
* Hook to get translations for a specific namespace.
|
|
1814
|
+
* Falls back to the key itself when TranslationProvider is not available.
|
|
1815
|
+
*
|
|
1816
|
+
* @param namespace - The translation namespace (e.g., "DatePicker", "Common")
|
|
1817
|
+
* @returns A function that takes a key and returns the translated string
|
|
1818
|
+
*
|
|
1819
|
+
* @example
|
|
1820
|
+
* ```tsx
|
|
1821
|
+
* const t = useTranslations("DatePicker");
|
|
1822
|
+
* console.log(t("clear")); // "Clear" or "Xóa" depending on locale
|
|
1823
|
+
* ```
|
|
1824
|
+
*/
|
|
1825
|
+
declare const useUnderverseTranslations: (namespace: string) => (key: string) => string;
|
|
1826
|
+
/**
|
|
1827
|
+
* Hook to get the current locale.
|
|
1828
|
+
* Falls back to "en" when TranslationProvider is not available.
|
|
1829
|
+
*
|
|
1830
|
+
* @returns The current locale ("en" or "vi")
|
|
1831
|
+
*/
|
|
1832
|
+
declare const useUnderverseLocale: () => Locale$1;
|
|
1833
|
+
|
|
1834
|
+
/**
|
|
1835
|
+
* Translation adapter for Underverse UI components.
|
|
1836
|
+
*
|
|
1837
|
+
* This module provides a unified translation interface that:
|
|
1838
|
+
* 1. Uses next-intl when available (for Next.js projects)
|
|
1839
|
+
* 2. Falls back to @underverse-ui/underverse's internal translations
|
|
1840
|
+
*
|
|
1841
|
+
* Components should import from this file instead of directly from next-intl
|
|
1842
|
+
* to ensure compatibility with both Next.js and React projects.
|
|
1843
|
+
*/
|
|
1844
|
+
|
|
1845
|
+
type Locale = "en" | "vi" | "ko" | "ja";
|
|
1846
|
+
interface UnderverseProviderProps {
|
|
1847
|
+
children: React$1.ReactNode;
|
|
1848
|
+
/** Current locale. Defaults to "en" */
|
|
1849
|
+
locale?: Locale;
|
|
1850
|
+
/** Custom translations to merge with defaults */
|
|
1851
|
+
translations?: Record<string, Record<string, string | Record<string, string>>>;
|
|
1852
|
+
}
|
|
1853
|
+
/**
|
|
1854
|
+
* UnderverseProvider for standalone React usage (without next-intl).
|
|
1855
|
+
* Wrap your app with this provider to enable translations.
|
|
1856
|
+
*
|
|
1857
|
+
* @example
|
|
1858
|
+
* ```tsx
|
|
1859
|
+
* // For React (Vite, CRA, etc.) - without next-intl
|
|
1860
|
+
* import { UnderverseProvider, DatePicker } from "@underverse-ui/underverse";
|
|
1861
|
+
*
|
|
1862
|
+
* function App() {
|
|
1863
|
+
* return (
|
|
1864
|
+
* <UnderverseProvider locale="vi">
|
|
1865
|
+
* <DatePicker onChange={(date) => console.log(date)} />
|
|
1866
|
+
* </UnderverseProvider>
|
|
1867
|
+
* );
|
|
1868
|
+
* }
|
|
1869
|
+
* ```
|
|
1870
|
+
*/
|
|
1871
|
+
declare const UnderverseProvider: React$1.FC<UnderverseProviderProps>;
|
|
1872
|
+
/**
|
|
1873
|
+
* Smart translation hook that works with both next-intl and standalone React.
|
|
1874
|
+
*
|
|
1875
|
+
* Priority:
|
|
1876
|
+
* 1. next-intl (if available and in NextIntlClientProvider)
|
|
1877
|
+
* 2. UnderverseProvider context
|
|
1878
|
+
* 3. English fallback defaults
|
|
1879
|
+
*
|
|
1880
|
+
* @param namespace - The translation namespace (e.g., "DatePicker", "Common")
|
|
1881
|
+
*/
|
|
1882
|
+
declare function useTranslations(namespace: string): (key: string, params?: Record<string, unknown>) => string;
|
|
1883
|
+
/**
|
|
1884
|
+
* Smart locale hook that works with both next-intl and standalone React.
|
|
1885
|
+
*/
|
|
1886
|
+
declare function useLocale(): Locale;
|
|
1887
|
+
|
|
1888
|
+
declare const ForceInternalTranslationsProvider: React$1.FC<{
|
|
1889
|
+
children: React$1.ReactNode;
|
|
1890
|
+
}>;
|
|
1891
|
+
/**
|
|
1892
|
+
* Smart translation hook that:
|
|
1893
|
+
* 1. Uses next-intl if available and not forced to use internal
|
|
1894
|
+
* 2. Falls back to internal TranslationContext
|
|
1895
|
+
* 3. Falls back to English defaults if no provider is available
|
|
1896
|
+
*
|
|
1897
|
+
* @param namespace - The translation namespace (e.g., "DatePicker", "Common")
|
|
1898
|
+
* @returns A function that takes a key and returns the translated string
|
|
1899
|
+
*
|
|
1900
|
+
* @example
|
|
1901
|
+
* ```tsx
|
|
1902
|
+
* // Works in Next.js with next-intl
|
|
1903
|
+
* // Works in React without next-intl
|
|
1904
|
+
* // Works without any provider (English fallback)
|
|
1905
|
+
* const t = useSmartTranslations("DatePicker");
|
|
1906
|
+
* console.log(t("clear")); // "Clear" or translated value
|
|
1907
|
+
* ```
|
|
1908
|
+
*/
|
|
1909
|
+
declare function useSmartTranslations(namespace: string): (key: string) => string;
|
|
1910
|
+
/**
|
|
1911
|
+
* Smart locale hook that:
|
|
1912
|
+
* 1. Uses next-intl if available
|
|
1913
|
+
* 2. Falls back to internal TranslationContext
|
|
1914
|
+
* 3. Falls back to "en" if no provider is available
|
|
1915
|
+
*
|
|
1916
|
+
* @returns The current locale
|
|
1917
|
+
*/
|
|
1918
|
+
declare function useSmartLocale(): Locale$1;
|
|
1919
|
+
|
|
1708
1920
|
declare const underverseMessages: {
|
|
1709
1921
|
readonly en: {
|
|
1710
1922
|
Common: {
|
|
@@ -1828,6 +2040,128 @@ declare const underverseMessages: {
|
|
|
1828
2040
|
};
|
|
1829
2041
|
};
|
|
1830
2042
|
};
|
|
2043
|
+
readonly ko: {
|
|
2044
|
+
Common: {
|
|
2045
|
+
close: string;
|
|
2046
|
+
closeAlert: string;
|
|
2047
|
+
notifications: string;
|
|
2048
|
+
newNotification: string;
|
|
2049
|
+
readStatus: string;
|
|
2050
|
+
openLink: string;
|
|
2051
|
+
theme: string;
|
|
2052
|
+
lightTheme: string;
|
|
2053
|
+
darkTheme: string;
|
|
2054
|
+
systemTheme: string;
|
|
2055
|
+
density: string;
|
|
2056
|
+
compact: string;
|
|
2057
|
+
normal: string;
|
|
2058
|
+
comfortable: string;
|
|
2059
|
+
columns: string;
|
|
2060
|
+
};
|
|
2061
|
+
ValidationInput: {
|
|
2062
|
+
required: string;
|
|
2063
|
+
typeMismatch: string;
|
|
2064
|
+
pattern: string;
|
|
2065
|
+
tooShort: string;
|
|
2066
|
+
tooLong: string;
|
|
2067
|
+
rangeUnderflow: string;
|
|
2068
|
+
rangeOverflow: string;
|
|
2069
|
+
stepMismatch: string;
|
|
2070
|
+
badInput: string;
|
|
2071
|
+
invalid: string;
|
|
2072
|
+
};
|
|
2073
|
+
Loading: {
|
|
2074
|
+
loadingPage: string;
|
|
2075
|
+
pleaseWait: string;
|
|
2076
|
+
};
|
|
2077
|
+
DatePicker: {
|
|
2078
|
+
placeholder: string;
|
|
2079
|
+
today: string;
|
|
2080
|
+
clear: string;
|
|
2081
|
+
};
|
|
2082
|
+
Pagination: {
|
|
2083
|
+
navigationLabel: string;
|
|
2084
|
+
showingResults: string;
|
|
2085
|
+
firstPage: string;
|
|
2086
|
+
previousPage: string;
|
|
2087
|
+
previous: string;
|
|
2088
|
+
nextPage: string;
|
|
2089
|
+
next: string;
|
|
2090
|
+
lastPage: string;
|
|
2091
|
+
pageNumber: string;
|
|
2092
|
+
itemsPerPage: string;
|
|
2093
|
+
search: string;
|
|
2094
|
+
noOptions: string;
|
|
2095
|
+
};
|
|
2096
|
+
OCR: {
|
|
2097
|
+
imageUpload: {
|
|
2098
|
+
dragDropText: string;
|
|
2099
|
+
browseFiles: string;
|
|
2100
|
+
supportedFormats: string;
|
|
2101
|
+
};
|
|
2102
|
+
};
|
|
2103
|
+
};
|
|
2104
|
+
readonly ja: {
|
|
2105
|
+
Common: {
|
|
2106
|
+
close: string;
|
|
2107
|
+
closeAlert: string;
|
|
2108
|
+
notifications: string;
|
|
2109
|
+
newNotification: string;
|
|
2110
|
+
readStatus: string;
|
|
2111
|
+
openLink: string;
|
|
2112
|
+
theme: string;
|
|
2113
|
+
lightTheme: string;
|
|
2114
|
+
darkTheme: string;
|
|
2115
|
+
systemTheme: string;
|
|
2116
|
+
density: string;
|
|
2117
|
+
compact: string;
|
|
2118
|
+
normal: string;
|
|
2119
|
+
comfortable: string;
|
|
2120
|
+
columns: string;
|
|
2121
|
+
};
|
|
2122
|
+
ValidationInput: {
|
|
2123
|
+
required: string;
|
|
2124
|
+
typeMismatch: string;
|
|
2125
|
+
pattern: string;
|
|
2126
|
+
tooShort: string;
|
|
2127
|
+
tooLong: string;
|
|
2128
|
+
rangeUnderflow: string;
|
|
2129
|
+
rangeOverflow: string;
|
|
2130
|
+
stepMismatch: string;
|
|
2131
|
+
badInput: string;
|
|
2132
|
+
invalid: string;
|
|
2133
|
+
};
|
|
2134
|
+
Loading: {
|
|
2135
|
+
loadingPage: string;
|
|
2136
|
+
pleaseWait: string;
|
|
2137
|
+
};
|
|
2138
|
+
DatePicker: {
|
|
2139
|
+
placeholder: string;
|
|
2140
|
+
today: string;
|
|
2141
|
+
clear: string;
|
|
2142
|
+
};
|
|
2143
|
+
Pagination: {
|
|
2144
|
+
navigationLabel: string;
|
|
2145
|
+
showingResults: string;
|
|
2146
|
+
firstPage: string;
|
|
2147
|
+
previousPage: string;
|
|
2148
|
+
previous: string;
|
|
2149
|
+
nextPage: string;
|
|
2150
|
+
next: string;
|
|
2151
|
+
lastPage: string;
|
|
2152
|
+
pageNumber: string;
|
|
2153
|
+
itemsPerPage: string;
|
|
2154
|
+
search: string;
|
|
2155
|
+
noOptions: string;
|
|
2156
|
+
};
|
|
2157
|
+
OCR: {
|
|
2158
|
+
imageUpload: {
|
|
2159
|
+
dragDropText: string;
|
|
2160
|
+
browseFiles: string;
|
|
2161
|
+
supportedFormats: string;
|
|
2162
|
+
};
|
|
2163
|
+
};
|
|
2164
|
+
};
|
|
1831
2165
|
};
|
|
1832
2166
|
type UnderverseLocale = keyof typeof underverseMessages;
|
|
1833
2167
|
declare function getUnderverseMessages(locale?: UnderverseLocale): {
|
|
@@ -1950,6 +2284,126 @@ declare function getUnderverseMessages(locale?: UnderverseLocale): {
|
|
|
1950
2284
|
supportedFormats: string;
|
|
1951
2285
|
};
|
|
1952
2286
|
};
|
|
2287
|
+
} | {
|
|
2288
|
+
Common: {
|
|
2289
|
+
close: string;
|
|
2290
|
+
closeAlert: string;
|
|
2291
|
+
notifications: string;
|
|
2292
|
+
newNotification: string;
|
|
2293
|
+
readStatus: string;
|
|
2294
|
+
openLink: string;
|
|
2295
|
+
theme: string;
|
|
2296
|
+
lightTheme: string;
|
|
2297
|
+
darkTheme: string;
|
|
2298
|
+
systemTheme: string;
|
|
2299
|
+
density: string;
|
|
2300
|
+
compact: string;
|
|
2301
|
+
normal: string;
|
|
2302
|
+
comfortable: string;
|
|
2303
|
+
columns: string;
|
|
2304
|
+
};
|
|
2305
|
+
ValidationInput: {
|
|
2306
|
+
required: string;
|
|
2307
|
+
typeMismatch: string;
|
|
2308
|
+
pattern: string;
|
|
2309
|
+
tooShort: string;
|
|
2310
|
+
tooLong: string;
|
|
2311
|
+
rangeUnderflow: string;
|
|
2312
|
+
rangeOverflow: string;
|
|
2313
|
+
stepMismatch: string;
|
|
2314
|
+
badInput: string;
|
|
2315
|
+
invalid: string;
|
|
2316
|
+
};
|
|
2317
|
+
Loading: {
|
|
2318
|
+
loadingPage: string;
|
|
2319
|
+
pleaseWait: string;
|
|
2320
|
+
};
|
|
2321
|
+
DatePicker: {
|
|
2322
|
+
placeholder: string;
|
|
2323
|
+
today: string;
|
|
2324
|
+
clear: string;
|
|
2325
|
+
};
|
|
2326
|
+
Pagination: {
|
|
2327
|
+
navigationLabel: string;
|
|
2328
|
+
showingResults: string;
|
|
2329
|
+
firstPage: string;
|
|
2330
|
+
previousPage: string;
|
|
2331
|
+
previous: string;
|
|
2332
|
+
nextPage: string;
|
|
2333
|
+
next: string;
|
|
2334
|
+
lastPage: string;
|
|
2335
|
+
pageNumber: string;
|
|
2336
|
+
itemsPerPage: string;
|
|
2337
|
+
search: string;
|
|
2338
|
+
noOptions: string;
|
|
2339
|
+
};
|
|
2340
|
+
OCR: {
|
|
2341
|
+
imageUpload: {
|
|
2342
|
+
dragDropText: string;
|
|
2343
|
+
browseFiles: string;
|
|
2344
|
+
supportedFormats: string;
|
|
2345
|
+
};
|
|
2346
|
+
};
|
|
2347
|
+
} | {
|
|
2348
|
+
Common: {
|
|
2349
|
+
close: string;
|
|
2350
|
+
closeAlert: string;
|
|
2351
|
+
notifications: string;
|
|
2352
|
+
newNotification: string;
|
|
2353
|
+
readStatus: string;
|
|
2354
|
+
openLink: string;
|
|
2355
|
+
theme: string;
|
|
2356
|
+
lightTheme: string;
|
|
2357
|
+
darkTheme: string;
|
|
2358
|
+
systemTheme: string;
|
|
2359
|
+
density: string;
|
|
2360
|
+
compact: string;
|
|
2361
|
+
normal: string;
|
|
2362
|
+
comfortable: string;
|
|
2363
|
+
columns: string;
|
|
2364
|
+
};
|
|
2365
|
+
ValidationInput: {
|
|
2366
|
+
required: string;
|
|
2367
|
+
typeMismatch: string;
|
|
2368
|
+
pattern: string;
|
|
2369
|
+
tooShort: string;
|
|
2370
|
+
tooLong: string;
|
|
2371
|
+
rangeUnderflow: string;
|
|
2372
|
+
rangeOverflow: string;
|
|
2373
|
+
stepMismatch: string;
|
|
2374
|
+
badInput: string;
|
|
2375
|
+
invalid: string;
|
|
2376
|
+
};
|
|
2377
|
+
Loading: {
|
|
2378
|
+
loadingPage: string;
|
|
2379
|
+
pleaseWait: string;
|
|
2380
|
+
};
|
|
2381
|
+
DatePicker: {
|
|
2382
|
+
placeholder: string;
|
|
2383
|
+
today: string;
|
|
2384
|
+
clear: string;
|
|
2385
|
+
};
|
|
2386
|
+
Pagination: {
|
|
2387
|
+
navigationLabel: string;
|
|
2388
|
+
showingResults: string;
|
|
2389
|
+
firstPage: string;
|
|
2390
|
+
previousPage: string;
|
|
2391
|
+
previous: string;
|
|
2392
|
+
nextPage: string;
|
|
2393
|
+
next: string;
|
|
2394
|
+
lastPage: string;
|
|
2395
|
+
pageNumber: string;
|
|
2396
|
+
itemsPerPage: string;
|
|
2397
|
+
search: string;
|
|
2398
|
+
noOptions: string;
|
|
2399
|
+
};
|
|
2400
|
+
OCR: {
|
|
2401
|
+
imageUpload: {
|
|
2402
|
+
dragDropText: string;
|
|
2403
|
+
browseFiles: string;
|
|
2404
|
+
supportedFormats: string;
|
|
2405
|
+
};
|
|
2406
|
+
};
|
|
1953
2407
|
};
|
|
1954
2408
|
|
|
1955
|
-
export { AccessDenied, Alert, Avatar, Badge, Badge as BadgeBase, BatteryProgress, BottomSheet, Breadcrumb, Button, ButtonLoading, type ButtonProps, Calendar, type CalendarEvent, type CalendarProps, Card, Carousel, CategoryTreeSelect, Checkbox, type CheckboxProps, CircularProgress, ClientOnly, ColorPicker, type ColorPickerProps, Combobox, type ComboboxProps, CompactPagination, type CompactPaginationProps, DataTable, type DataTableColumn, type DataTableQuery, DatePicker, type DatePickerProps, DateRangePicker, date as DateUtils, Drawer, DropdownMenu, DropdownMenuItem, DropdownMenuSeparator, FallingIcons, FloatingContacts, Form, FormActions, FormCheckbox, FormControl, FormDescription, FormField, FormInput, FormItem, FormLabel, FormMessage, FormSubmitButton, GlobalLoading, GradientBadge, Grid, GridItem, type GridItemProps, type GridProps, ImageUpload, InlineLoading, Input, type InputProps, InteractiveBadge, Label, type LanguageOption, LanguageSwitcherHeadless as LanguageSwitcher, LanguageSwitcherHeadless, type LanguageSwitcherHeadlessProps, type LanguageSwitcherHeadlessProps as LanguageSwitcherProps, List, ListItem, LoadingBar, LoadingDots, LoadingProgress, LoadingSpinner, MiniProgress, Modal, MultiCombobox, type MultiComboboxProps, NotificationBadge, NotificationModal, NumberInput, OverlayControls, PageLoading, Pagination, type PaginationProps, PasswordInput, PillTabs, Popover, Progress, PulseBadge, RadioGroup, RadioGroupItem, SIZE_STYLES_BTN, ScrollArea, SearchInput, Section, SegmentedProgress, SelectDropdown, Sheet, SidebarSheet, SimplePagination, type SimplePaginationProps, SimpleTabs, Skeleton, SkeletonAvatar, SkeletonButton, SkeletonCard, SkeletonList, SkeletonMessage, SkeletonPost, SkeletonTable, SkeletonText, SlideOver, Slider, SmartImage, type Sorter, StatusBadge, StepProgress, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TagBadge, TagInput, TagInput as TagInputBase, type TagInputProps, Textarea, type ThemeMode, ThemeToggleHeadless as ThemeToggle, ThemeToggleHeadless, type ThemeToggleHeadlessProps, type ThemeToggleHeadlessProps as ThemeToggleProps, TimePicker, type TimePickerProps, Timeline, TimelineItem, ToastProvider, Tooltip, type UnderverseLocale, VARIANT_STYLES_ALERT, VARIANT_STYLES_BTN, VerticalTabs, Watermark, type WatermarkProps, cn, getUnderverseMessages, underverseMessages, useFormField, useToast };
|
|
2409
|
+
export { AccessDenied, Alert, Avatar, Badge, Badge as BadgeBase, BatteryProgress, BottomSheet, Breadcrumb, Button, ButtonLoading, type ButtonProps, Calendar, type CalendarEvent, type CalendarProps, Card, Carousel, CategoryTreeSelect, Checkbox, type CheckboxProps, CircularProgress, ClientOnly, ColorPicker, type ColorPickerProps, Combobox, type ComboboxProps, CompactPagination, type CompactPaginationProps, DataTable, type DataTableColumn, type DataTableQuery, DatePicker, type DatePickerProps, DateRangePicker, date as DateUtils, Drawer, DropdownMenu, DropdownMenuItem, DropdownMenuSeparator, FallingIcons, FloatingContacts, ForceInternalTranslationsProvider, Form, FormActions, FormCheckbox, FormControl, FormDescription, FormField, FormInput, FormItem, FormLabel, FormMessage, FormSubmitButton, GlobalLoading, GradientBadge, Grid, GridItem, type GridItemProps, type GridProps, ImageUpload, 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 Locale$1 as Locale, MiniProgress, Modal, MultiCombobox, type MultiComboboxProps, NotificationBadge, NotificationModal, NumberInput, OverlayControls, PageLoading, Pagination, type PaginationProps, PasswordInput, PillTabs, Popover, Progress, PulseBadge, RadioGroup, RadioGroupItem, SIZE_STYLES_BTN, ScrollArea, SearchInput, Section, SegmentedProgress, SelectDropdown, Sheet, SidebarSheet, SimplePagination, type SimplePaginationProps, SimpleTabs, Skeleton, SkeletonAvatar, SkeletonButton, SkeletonCard, SkeletonList, SkeletonMessage, SkeletonPost, SkeletonTable, SkeletonText, SlideOver, Slider, SmartImage, type Sorter, StatusBadge, StepProgress, type SupportedLocale, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TagBadge, TagInput, TagInput as TagInputBase, type TagInputProps, Textarea, type ThemeMode, ThemeToggleHeadless as ThemeToggle, ThemeToggleHeadless, type ThemeToggleHeadlessProps, type ThemeToggleHeadlessProps as ThemeToggleProps, TimePicker, type TimePickerProps, Timeline, TimelineItem, ToastProvider, Tooltip, TranslationProvider, type TranslationProviderProps, type Translations, type UnderverseLocale, UnderverseProvider, type UnderverseProviderProps, VARIANT_STYLES_ALERT, VARIANT_STYLES_BTN, VerticalTabs, Watermark, type WatermarkProps, cn$1 as cn, cn as cnLocal, getAnimationStyles, getUnderverseMessages, injectAnimationStyles, shadcnAnimationStyles, underverseMessages, useFormField, useShadCNAnimations, useSmartLocale, useSmartTranslations, useToast, useTranslations as useUnderverseI18n, useLocale as useUnderverseI18nLocale, useUnderverseLocale, useUnderverseTranslations };
|