@customafk/lunas-ui 0.1.99 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/button-6-3G2PiR.mjs +2 -0
- package/dist/{button-C_yZHudZ.mjs.map → button-6-3G2PiR.mjs.map} +1 -1
- package/dist/button-D0WaocKO.cjs +2 -0
- package/dist/button-D0WaocKO.cjs.map +1 -0
- package/dist/{button-Dy39kE9k.d.cts → button-D0YsVKtm.d.cts} +5 -5
- package/dist/{button-8vMj-_no.d.mts → button-L3Ts3X9d.d.mts} +3 -3
- package/dist/button.variants-DuuH1O0_.mjs +2 -0
- package/dist/button.variants-DuuH1O0_.mjs.map +1 -0
- package/dist/button.variants-rdXrPUao.cjs +2 -0
- package/dist/button.variants-rdXrPUao.cjs.map +1 -0
- package/dist/{calendar-DgLMLD8R.cjs → calendar-CO20ceyB.cjs} +2 -2
- package/dist/{calendar-DgLMLD8R.cjs.map → calendar-CO20ceyB.cjs.map} +1 -1
- package/dist/{calendar-e9Pu8pNj.mjs → calendar-D3hTjPxn.mjs} +2 -2
- package/dist/{calendar-e9Pu8pNj.mjs.map → calendar-D3hTjPxn.mjs.map} +1 -1
- package/dist/cards/grid-product-card.cjs +1 -1
- package/dist/cards/grid-product-card.mjs +1 -1
- package/dist/cards/product-card.cjs +1 -1
- package/dist/cards/product-card.mjs +1 -1
- package/dist/cards/simple-card.cjs +1 -1
- package/dist/cards/simple-card.d.mts +2 -2
- package/dist/cards/simple-card.mjs +1 -1
- package/dist/{command-Uq5FAdtW.mjs → command-DhBTNTqz.mjs} +2 -2
- package/dist/{command-Uq5FAdtW.mjs.map → command-DhBTNTqz.mjs.map} +1 -1
- package/dist/{command-Dd4OnuB0.cjs → command-_zpTaaIk.cjs} +2 -2
- package/dist/{command-Dd4OnuB0.cjs.map → command-_zpTaaIk.cjs.map} +1 -1
- package/dist/data-display/country.cjs +1 -1
- package/dist/data-display/country.mjs +1 -1
- package/dist/data-display/date-tooltip.cjs +1 -1
- package/dist/data-display/date-tooltip.mjs +1 -1
- package/dist/data-display/date.cjs +1 -1
- package/dist/data-display/date.mjs +1 -1
- package/dist/data-display/name.cjs +1 -1
- package/dist/data-display/name.mjs +1 -1
- package/dist/data-display/statistic.d.mts +2 -2
- package/dist/data-display/user.cjs +1 -1
- package/dist/data-display/user.mjs +1 -1
- package/dist/date-By93kONr.mjs +2 -0
- package/dist/date-By93kONr.mjs.map +1 -0
- package/dist/date-em5f7hCx.cjs +2 -0
- package/dist/date-em5f7hCx.cjs.map +1 -0
- package/dist/{dialog-ArqTBRVT.d.mts → dialog-C3T_1iTB.d.cts} +12 -12
- package/dist/{dialog-BtlJFvlf.d.cts → dialog-COoKGA4Q.d.mts} +12 -12
- package/dist/{dialog-DTz8ngeU.mjs → dialog-CxELDK98.mjs} +2 -2
- package/dist/{dialog-DTz8ngeU.mjs.map → dialog-CxELDK98.mjs.map} +1 -1
- package/dist/{dialog-2N-D9B9o.cjs → dialog-DjRiV5vR.cjs} +2 -2
- package/dist/{dialog-2N-D9B9o.cjs.map → dialog-DjRiV5vR.cjs.map} +1 -1
- package/dist/dialogs/confirm-dialog.cjs +1 -1
- package/dist/dialogs/confirm-dialog.mjs +1 -1
- package/dist/dialogs/detail-dialog/components/sidebar.cjs +1 -1
- package/dist/dialogs/detail-dialog/components/sidebar.d.cts +26 -26
- package/dist/dialogs/detail-dialog/components/sidebar.d.mts +26 -26
- package/dist/dialogs/detail-dialog/components/sidebar.mjs +1 -1
- package/dist/dialogs/detail-dialog/index.cjs +1 -1
- package/dist/dialogs/detail-dialog/index.mjs +1 -1
- package/dist/dialogs/error-dialog.cjs +1 -1
- package/dist/dialogs/error-dialog.mjs +1 -1
- package/dist/dialogs/loading-dialog.cjs +1 -1
- package/dist/dialogs/loading-dialog.mjs +1 -1
- package/dist/features/descriptions/index.cjs +1 -1
- package/dist/features/descriptions/index.d.cts +4 -4
- package/dist/features/descriptions/index.mjs +1 -1
- package/dist/features/search-modal/index.cjs +1 -1
- package/dist/features/search-modal/index.d.cts +2 -2
- package/dist/features/search-modal/index.d.mts +2 -2
- package/dist/features/search-modal/index.mjs +1 -1
- package/dist/features/tables/index.cjs +1 -1
- package/dist/features/tables/index.cjs.map +1 -1
- package/dist/features/tables/index.d.cts +1 -1
- package/dist/features/tables/index.d.mts +1 -1
- package/dist/features/tables/index.mjs +1 -1
- package/dist/features/tables/index.mjs.map +1 -1
- package/dist/features/tanstack-form/index.cjs +1 -1
- package/dist/features/tanstack-form/index.cjs.map +1 -1
- package/dist/features/tanstack-form/index.d.cts +231 -224
- package/dist/features/tanstack-form/index.d.mts +58 -51
- package/dist/features/tanstack-form/index.mjs +1 -1
- package/dist/features/tanstack-form/index.mjs.map +1 -1
- package/dist/{input-DERBzcV_.d.mts → input-C3M7uZqX.d.cts} +5 -5
- package/dist/{input-DqoSygui.d.cts → input-C9dS5env.d.mts} +6 -6
- package/dist/layouts/cms-layout/index.cjs +1 -1
- package/dist/layouts/cms-layout/index.cjs.map +1 -1
- package/dist/layouts/cms-layout/index.mjs +1 -1
- package/dist/layouts/cms-layout/index.mjs.map +1 -1
- package/dist/layouts/flex.d.cts +2 -2
- package/dist/layouts/flex.d.mts +2 -2
- package/dist/layouts/payment-layout/index.cjs +1 -1
- package/dist/layouts/payment-layout/index.mjs +1 -1
- package/dist/pages/FeatureDeveloping.cjs +1 -1
- package/dist/pages/FeatureDeveloping.d.cts +2 -2
- package/dist/pages/FeatureDeveloping.d.mts +2 -2
- package/dist/pages/FeatureDeveloping.mjs +1 -1
- package/dist/pages/FeatureFixing.cjs +1 -1
- package/dist/pages/FeatureFixing.d.cts +2 -2
- package/dist/pages/FeatureFixing.mjs +1 -1
- package/dist/pages/NotAuthorized.cjs +1 -1
- package/dist/pages/NotAuthorized.d.cts +2 -2
- package/dist/pages/NotAuthorized.d.mts +2 -2
- package/dist/pages/NotAuthorized.mjs +1 -1
- package/dist/pages/NotFound.cjs +1 -1
- package/dist/pages/NotFound.d.cts +2 -2
- package/dist/pages/NotFound.d.mts +2 -2
- package/dist/pages/NotFound.mjs +1 -1
- package/dist/{paragraph-BBye8n4M.cjs → paragraph-B72bHMf7.cjs} +2 -2
- package/dist/paragraph-B72bHMf7.cjs.map +1 -0
- package/dist/{paragraph-BS88Xdo7.mjs → paragraph-moBSTPmT.mjs} +2 -2
- package/dist/paragraph-moBSTPmT.mjs.map +1 -0
- package/dist/typography/paragraph.cjs +1 -1
- package/dist/typography/paragraph.d.cts +6 -6
- package/dist/typography/paragraph.d.mts +6 -6
- package/dist/typography/paragraph.mjs +1 -1
- package/dist/typography/title.d.cts +2 -2
- package/dist/typography/title.d.mts +2 -2
- package/dist/ui/alert-dialog.cjs +1 -1
- package/dist/ui/alert-dialog.d.cts +12 -12
- package/dist/ui/alert-dialog.d.mts +12 -12
- package/dist/ui/alert-dialog.mjs +1 -1
- package/dist/ui/alert.d.cts +6 -6
- package/dist/ui/alert.d.mts +6 -6
- package/dist/ui/aspect-ratio.d.cts +2 -2
- package/dist/ui/aspect-ratio.d.mts +2 -2
- package/dist/ui/avatar.d.cts +4 -4
- package/dist/ui/avatar.d.mts +4 -4
- package/dist/ui/badge.d.cts +4 -4
- package/dist/ui/badge.d.mts +4 -4
- package/dist/ui/breadcrumb.d.cts +8 -8
- package/dist/ui/breadcrumb.d.mts +8 -8
- package/dist/ui/button-group.d.cts +6 -6
- package/dist/ui/button-group.d.mts +6 -6
- package/dist/ui/button.cjs +1 -1
- package/dist/ui/button.d.cts +1 -1
- package/dist/ui/button.d.mts +1 -1
- package/dist/ui/button.mjs +1 -1
- package/dist/ui/buttons/add-new.cjs +1 -1
- package/dist/ui/buttons/add-new.mjs +1 -1
- package/dist/ui/buttons/edit.cjs +1 -1
- package/dist/ui/buttons/edit.mjs +1 -1
- package/dist/ui/buttons/refresh.cjs +1 -1
- package/dist/ui/buttons/refresh.mjs +1 -1
- package/dist/ui/buttons/trash.cjs +1 -1
- package/dist/ui/buttons/trash.mjs +1 -1
- package/dist/ui/buttons/upload-image.cjs +1 -1
- package/dist/ui/buttons/upload-image.mjs +1 -1
- package/dist/ui/calendar.cjs +1 -1
- package/dist/ui/calendar.d.cts +4 -4
- package/dist/ui/calendar.d.mts +4 -4
- package/dist/ui/calendar.mjs +1 -1
- package/dist/ui/card.cjs +1 -1
- package/dist/ui/card.d.cts +8 -8
- package/dist/ui/card.d.mts +8 -8
- package/dist/ui/card.mjs +1 -1
- package/dist/ui/carousel.cjs +1 -1
- package/dist/ui/carousel.d.cts +7 -7
- package/dist/ui/carousel.d.mts +7 -7
- package/dist/ui/carousel.mjs +1 -1
- package/dist/ui/checkbox.d.cts +2 -2
- package/dist/ui/checkbox.d.mts +2 -2
- package/dist/ui/collapsible.d.cts +4 -4
- package/dist/ui/collapsible.d.mts +4 -4
- package/dist/ui/command.cjs +1 -1
- package/dist/ui/command.d.cts +11 -11
- package/dist/ui/command.d.mts +11 -11
- package/dist/ui/command.mjs +1 -1
- package/dist/ui/context-menu.d.cts +16 -16
- package/dist/ui/context-menu.d.mts +16 -16
- package/dist/ui/dialog.cjs +1 -1
- package/dist/ui/dialog.d.cts +1 -1
- package/dist/ui/dialog.d.mts +1 -1
- package/dist/ui/dialog.mjs +1 -1
- package/dist/ui/drawer.d.cts +11 -11
- package/dist/ui/drawer.d.mts +11 -11
- package/dist/ui/dropdown-menu.d.cts +16 -16
- package/dist/ui/dropdown-menu.d.mts +16 -16
- package/dist/ui/empty.d.cts +9 -9
- package/dist/ui/empty.d.mts +9 -9
- package/dist/ui/field.d.cts +24 -24
- package/dist/ui/field.d.mts +24 -24
- package/dist/ui/file-uploader.cjs +1 -1
- package/dist/ui/file-uploader.d.cts +2 -2
- package/dist/ui/file-uploader.d.mts +2 -2
- package/dist/ui/file-uploader.mjs +1 -1
- package/dist/ui/form.d.cts +11 -11
- package/dist/ui/form.d.mts +7 -7
- package/dist/ui/hover-card.d.cts +4 -4
- package/dist/ui/hover-card.d.mts +4 -4
- package/dist/ui/input-otp.d.cts +5 -5
- package/dist/ui/input-otp.d.mts +5 -5
- package/dist/ui/input.d.cts +1 -1
- package/dist/ui/input.d.mts +1 -1
- package/dist/ui/inputs/search-input.d.cts +3 -3
- package/dist/ui/inputs/search-input.d.mts +3 -3
- package/dist/ui/item.d.cts +15 -15
- package/dist/ui/item.d.mts +15 -15
- package/dist/ui/label.d.cts +2 -2
- package/dist/ui/label.d.mts +2 -2
- package/dist/ui/menubar.d.cts +17 -17
- package/dist/ui/menubar.d.mts +17 -17
- package/dist/ui/multi-select.cjs +1 -1
- package/dist/ui/multi-select.d.cts +2 -2
- package/dist/ui/multi-select.d.mts +3 -3
- package/dist/ui/multi-select.mjs +1 -1
- package/dist/ui/navigation-menu.d.cts +9 -9
- package/dist/ui/navigation-menu.d.mts +11 -11
- package/dist/ui/pagination.cjs +1 -1
- package/dist/ui/pagination.d.cts +9 -9
- package/dist/ui/pagination.d.mts +9 -9
- package/dist/ui/pagination.mjs +1 -1
- package/dist/ui/popover.d.cts +6 -6
- package/dist/ui/popover.d.mts +6 -6
- package/dist/ui/progress.d.cts +2 -2
- package/dist/ui/progress.d.mts +2 -2
- package/dist/ui/radio-group.d.cts +3 -3
- package/dist/ui/radio-group.d.mts +3 -3
- package/dist/ui/resizable.d.cts +9 -9
- package/dist/ui/resizable.d.mts +9 -9
- package/dist/ui/scroll-area.d.cts +6 -6
- package/dist/ui/scroll-area.d.mts +3 -3
- package/dist/ui/select.d.cts +9 -9
- package/dist/ui/select.d.mts +9 -9
- package/dist/ui/separator.d.cts +2 -2
- package/dist/ui/separator.d.mts +2 -2
- package/dist/ui/sheet.d.cts +9 -9
- package/dist/ui/sheet.d.mts +9 -9
- package/dist/ui/sidebar.cjs +1 -1
- package/dist/ui/sidebar.d.cts +28 -28
- package/dist/ui/sidebar.d.mts +28 -28
- package/dist/ui/sidebar.mjs +1 -1
- package/dist/ui/skeleton.d.cts +2 -2
- package/dist/ui/skeleton.d.mts +2 -2
- package/dist/ui/slider.d.cts +2 -2
- package/dist/ui/slider.d.mts +2 -2
- package/dist/ui/sonner.d.cts +2 -2
- package/dist/ui/sonner.d.mts +2 -2
- package/dist/ui/spinner.d.cts +2 -2
- package/dist/ui/spinner.d.mts +2 -2
- package/dist/ui/switch.d.cts +2 -2
- package/dist/ui/switch.d.mts +2 -2
- package/dist/ui/table.d.cts +18 -18
- package/dist/ui/table.d.mts +18 -18
- package/dist/ui/tabs.d.cts +5 -5
- package/dist/ui/tabs.d.mts +5 -5
- package/dist/ui/textarea.d.cts +2 -2
- package/dist/ui/textarea.d.mts +2 -2
- package/dist/ui/toggle-group.d.cts +3 -3
- package/dist/ui/toggle-group.d.mts +3 -3
- package/dist/ui/toggle.d.cts +4 -4
- package/dist/ui/toggle.d.mts +2 -2
- package/dist/ui/tooltip.d.cts +5 -5
- package/dist/ui/tooltip.d.mts +5 -5
- package/package.json +2 -2
- package/dist/button-8Snjc8iT.cjs +0 -2
- package/dist/button-8Snjc8iT.cjs.map +0 -1
- package/dist/button-C_yZHudZ.mjs +0 -2
- package/dist/button.variants-8QOIR433.cjs +0 -2
- package/dist/button.variants-8QOIR433.cjs.map +0 -1
- package/dist/button.variants-CL2rLGYO.mjs +0 -2
- package/dist/button.variants-CL2rLGYO.mjs.map +0 -1
- package/dist/date-CK7XBqG9.mjs +0 -2
- package/dist/date-CK7XBqG9.mjs.map +0 -1
- package/dist/date-CTmoK8tv.cjs +0 -2
- package/dist/date-CTmoK8tv.cjs.map +0 -1
- package/dist/paragraph-BBye8n4M.cjs.map +0 -1
- package/dist/paragraph-BS88Xdo7.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"date-CTmoK8tv.cjs","names":["DateDisplay: React.FC<Props>","date"],"sources":["../packages/constants.tsx","../packages/components/data-display/date.tsx"],"sourcesContent":["// Vietnamese locale configuration\nexport const vietnameseLocale = {\n weekdays: ['Chủ Nhật', 'Thứ Hai', 'Thứ Ba', 'Thứ Tư', 'Thứ Năm', 'Thứ Sáu', 'Thứ Bảy'],\n weekdaysShort: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],\n months: ['Tháng 1', 'Tháng 2', 'Tháng 3', 'Tháng 4', 'Tháng 5', 'Tháng 6', 'Tháng 7', 'Tháng 8', 'Tháng 9', 'Tháng 10', 'Tháng 11', 'Tháng 12'],\n monthsShort: ['T1', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7', 'T8', 'T9', 'T10', 'T11', 'T12'],\n};\n\n// Vietnamese holidays\nexport const vietnameseHolidays = {\n '01-01': 'Tết Dương lịch',\n '03-08': 'Quốc tế Phụ nữ',\n '04-30': 'Ngày Giải phóng miền Nam',\n '05-01': 'Quốc tế Lao động',\n '09-02': 'Quốc khánh',\n '10-20': 'Ngày Phụ nữ Việt Nam',\n '11-20': 'Ngày Nhà giáo Việt Nam',\n};\n\n// Time Constants in milliseconds, seconds, and minutes\nexport const TIME_IN_MS = Object.freeze({\n SECOND: 1000,\n MINUTE: 60 * 1000,\n HOUR: 60 * 60 * 1000,\n DAY: 24 * 60 * 60 * 1000,\n WEEK: 7 * 24 * 60 * 60 * 1000,\n MONTH: 30 * 24 * 60 * 60 * 1000, // Approximation for month length = 30 days\n YEAR: 365 * 24 * 60 * 60 * 1000,\n});\n\nexport const TIME_IN_SECONDS = Object.freeze({\n MINUTE: 60,\n HOUR: 60 * 60,\n DAY: 24 * 60 * 60,\n WEEK: 7 * 24 * 60 * 60,\n MONTH: 30 * 24 * 60 * 60,\n YEAR: 365 * 24 * 60 * 60,\n});\n\nexport const TIME_IN_MINUTES = Object.freeze({\n HOUR: 60,\n DAY: 24 * 60,\n WEEK: 7 * 24 * 60,\n MONTH: 30 * 24 * 60,\n});\n","import { useCallback, useMemo } from 'react';\n\nimport { format, isThisMonth, isThisWeek, isThisYear, isToday, isTomorrow, isValid, isYesterday, parseISO } from '@customafk/react-toolkit/date-fns';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { TIME_IN_SECONDS, vietnameseHolidays, vietnameseLocale } from '@/constants';\n\ninterface Props {\n date: Date | string | number;\n format?:\n | 'short' // 15/03/24\n | 'medium' // 15/03/2024\n | 'long' // 15 tháng 3, 2024\n | 'full' // Thứ Sáu, ngày 15 tháng 3 năm 2024\n | 'relative' // 2 giờ trước\n | 'datetime' // 15/03/2024 14:30\n | 'time' // 14:30\n | 'smart'; // Tự động chọn format phù hợp\n showHoliday?: boolean;\n showTime?: boolean;\n className?: string;\n title?: string; // Tooltip khi hover\n}\n\nexport const DateDisplay: React.FC<Props> = ({ date, format: formatType = 'medium', showHoliday = false, showTime = false, className = '', title }) => {\n const parsedDate = useMemo(() => {\n try {\n if (date instanceof Date) {\n return isValid(date) ? date : null;\n }\n if (typeof date === 'string') {\n const parsed = parseISO(date);\n return isValid(parsed) ? parsed : new Date(date);\n }\n if (typeof date === 'number') {\n const parsed = new Date(date);\n return isValid(parsed) ? parsed : null;\n }\n return null;\n } catch {\n return null;\n }\n }, [date]);\n\n // Format relative time in Vietnamese\n const formatRelativeTime = useCallback((date: Date): string => {\n const now = new Date();\n const diffInSeconds = Math.floor((now.getTime() - date.getTime()) / 1000);\n\n if (diffInSeconds < 60) return 'Vừa xong';\n if (diffInSeconds < 3600) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.MINUTE)} phút trước`;\n if (diffInSeconds < 86400) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.HOUR)} giờ trước`;\n if (diffInSeconds < 604800) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.DAY)} ngày trước`;\n if (diffInSeconds < 2592000) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.WEEK)} tuần trước`;\n if (diffInSeconds < 31536000) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.MONTH)} tháng trước`;\n return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.YEAR)} năm trước`;\n }, []);\n\n // Vietnamese weekday\n const getVietnameseWeekday = useCallback((date: Date, short: boolean = false): string => {\n const dayIndex = date.getDay();\n return short ? vietnameseLocale.weekdaysShort[dayIndex] : vietnameseLocale.weekdays[dayIndex];\n }, []);\n\n // Vietnamese month\n const getVietnameseMonth = useCallback((date: Date, short: boolean = false): string => {\n const monthIndex = date.getMonth();\n return short ? vietnameseLocale.monthsShort[monthIndex] : vietnameseLocale.months[monthIndex];\n }, []);\n\n // Check holiday\n const getHoliday = useCallback((date: Date): string | null => {\n const monthDay = format(date, 'MM-dd') as keyof typeof vietnameseHolidays;\n return vietnameseHolidays[monthDay] || null;\n }, []);\n\n // Smart format - choose appropriate format based on date\n const getSmartFormat = useCallback(\n (date: Date): string => {\n if (isToday(date)) {\n return showTime ? `Hôm nay ${format(date, 'HH:mm')}` : 'Hôm nay';\n }\n if (isYesterday(date)) {\n return showTime ? `Hôm qua ${format(date, 'HH:mm')}` : 'Hôm qua';\n }\n if (isTomorrow(date)) {\n return showTime ? `Ngày mai ${format(date, 'HH:mm')}` : 'Ngày mai';\n }\n if (isThisWeek(date)) {\n const weekday = getVietnameseWeekday(date);\n return showTime ? `${weekday} ${format(date, 'HH:mm')}` : weekday;\n }\n if (isThisMonth(date)) {\n const day = format(date, 'd');\n return showTime ? `${day}/${format(date, 'M')} ${format(date, 'HH:mm')}` : `${day}/${format(date, 'M')}`;\n }\n if (isThisYear(date)) {\n return showTime ? format(date, 'd/M HH:mm') : format(date, 'd/M');\n }\n return showTime ? format(date, 'd/M/yyyy HH:mm') : format(date, 'd/M/yyyy');\n },\n [getVietnameseWeekday, showTime]\n );\n\n // Main formatting function\n const formatDate = useCallback(\n (date: Date, type: string): string => {\n const timeStr = showTime ? format(date, ', HH:mm') : '';\n\n switch (type) {\n case 'short':\n return format(date, 'd/M/yy') + timeStr;\n\n case 'medium':\n return format(date, 'dd/MM/yyyy') + timeStr;\n\n case 'long':\n return `${format(date, 'd')} ${getVietnameseMonth(date)} ${format(date, 'yyyy')}` + timeStr;\n\n case 'full': {\n const data = `${getVietnameseWeekday(date)}, ngày ${format(date, 'd')} ${getVietnameseMonth(date)} năm ${format(date, 'yyyy')}`;\n return data + timeStr;\n }\n\n case 'relative':\n return formatRelativeTime(date);\n\n case 'datetime':\n return format(date, 'd/M/yyyy HH:mm');\n\n case 'time':\n return format(date, 'HH:mm');\n\n case 'smart':\n return getSmartFormat(date);\n\n default:\n return format(date, 'd/M/yyyy') + timeStr;\n }\n },\n [getSmartFormat, getVietnameseMonth, getVietnameseWeekday, formatRelativeTime, showTime]\n );\n\n if (!parsedDate) {\n return <span className={cn('text-muted-foreground text-sm', className)}>--/--/----</span>;\n }\n\n const formattedDate = formatDate(parsedDate, formatType);\n const holiday = showHoliday ? getHoliday(parsedDate) : null;\n const displayText = holiday ? `${formattedDate} (${holiday})` : formattedDate;\n const tooltipTitle = title || format(parsedDate, 'EEEE, d MMMM yyyy HH:mm:ss');\n\n return (\n <time dateTime={parsedDate.toISOString()} className={cn('text-text-positive-weak text-xs tabular-nums', className)} title={tooltipTitle}>\n {displayText}\n </time>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"paragraph-BBye8n4M.cjs","names":[],"sources":["../packages/components/typography/paragraph.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { cva } from 'class-variance-authority';\n\ntype Props = {\n /**\n * The variant of the paragraph. It can be one of the following:\n * - `p`: The default paragraph style. It has a normal font weight and is used for regular text content.\n * - `muted`: The muted paragraph style. It has a lighter color to indicate less emphasis and is often used for secondary information.\n * - `lead`: The lead paragraph style. It is typically used to introduce the content of a section and has a larger font size and stronger text color.\n * - `sm`: The small paragraph style. It is used for less important text and has a smaller font size.\n * - `lg`: The large paragraph style. It is used for more emphasis and visibility, with a larger font size.\n */\n variant?: 'p' | 'muted' | 'lead' | 'sm' | 'lg';\n className?: string;\n children?: React.ReactNode;\n};\n\nexport const paragraphVariants = cva(\n 'not-first:mt-3 max-w-prose whitespace-pre-line text-wrap text-start font-stretch-expanded text-sm slashed-zero tabular-nums transition-colors',\n {\n variants: {\n variant: {\n // Lead: Nhấn mạnh mạnh mẽ nhất, dùng cho mở bài/highlight\n lead: 'font-semibold text-text-positive-strong tracking-tight',\n lg: 'font-medium text-text-positive-strong',\n p: 'font-normal text-text-positive',\n sm: 'font-light text-text-positive-weak',\n muted: 'font-normal text-text-positive-weak',\n },\n },\n defaultVariants: {\n variant: 'sm',\n },\n }\n);\n\nexport const Paragraph = ({ variant = 'p', className, children }: Props) => {\n return <p className={cn(paragraphVariants({ variant }), className)}>{children}</p>;\n};\n"],"mappings":"6JAoBA,MAAa,GAAA,EAAA,EAAA,KACX,gJACA,CACE,SAAU,CACR,QAAS,CAEP,KAAM,yDACN,GAAI,wCACJ,EAAG,iCACH,GAAI,qCACJ,MAAO,sCACR,CACF,CACD,gBAAiB,CACf,QAAS,KACV,CACF,CACF,CAEY,GAAa,CAAE,UAAU,IAAK,YAAW,eAC7C,EAAA,EAAA,KAAC,IAAA,CAAE,WAAA,EAAA,EAAA,IAAc,EAAkB,CAAE,UAAS,CAAC,CAAE,EAAU,CAAG,YAAa"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"paragraph-BS88Xdo7.mjs","names":[],"sources":["../packages/components/typography/paragraph.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { cva } from 'class-variance-authority';\n\ntype Props = {\n /**\n * The variant of the paragraph. It can be one of the following:\n * - `p`: The default paragraph style. It has a normal font weight and is used for regular text content.\n * - `muted`: The muted paragraph style. It has a lighter color to indicate less emphasis and is often used for secondary information.\n * - `lead`: The lead paragraph style. It is typically used to introduce the content of a section and has a larger font size and stronger text color.\n * - `sm`: The small paragraph style. It is used for less important text and has a smaller font size.\n * - `lg`: The large paragraph style. It is used for more emphasis and visibility, with a larger font size.\n */\n variant?: 'p' | 'muted' | 'lead' | 'sm' | 'lg';\n className?: string;\n children?: React.ReactNode;\n};\n\nexport const paragraphVariants = cva(\n 'not-first:mt-3 max-w-prose whitespace-pre-line text-wrap text-start font-stretch-expanded text-sm slashed-zero tabular-nums transition-colors',\n {\n variants: {\n variant: {\n // Lead: Nhấn mạnh mạnh mẽ nhất, dùng cho mở bài/highlight\n lead: 'font-semibold text-text-positive-strong tracking-tight',\n lg: 'font-medium text-text-positive-strong',\n p: 'font-normal text-text-positive',\n sm: 'font-light text-text-positive-weak',\n muted: 'font-normal text-text-positive-weak',\n },\n },\n defaultVariants: {\n variant: 'sm',\n },\n }\n);\n\nexport const Paragraph = ({ variant = 'p', className, children }: Props) => {\n return <p className={cn(paragraphVariants({ variant }), className)}>{children}</p>;\n};\n"],"mappings":"2IAoBA,MAAa,EAAoB,EAC/B,gJACA,CACE,SAAU,CACR,QAAS,CAEP,KAAM,yDACN,GAAI,wCACJ,EAAG,iCACH,GAAI,qCACJ,MAAO,sCACR,CACF,CACD,gBAAiB,CACf,QAAS,KACV,CACF,CACF,CAEY,GAAa,CAAE,UAAU,IAAK,YAAW,cAC7C,EAAC,IAAA,CAAE,UAAW,EAAG,EAAkB,CAAE,UAAS,CAAC,CAAE,EAAU,CAAG,YAAa"}
|