@senitix/ui 0.4.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/avatar-C0aVNCG9.cjs +2 -0
- package/dist/avatar-C0aVNCG9.cjs.map +1 -0
- package/dist/avatar-CN6wcrqY.js +288 -0
- package/dist/avatar-CN6wcrqY.js.map +1 -0
- package/dist/calendar-BFWc4IB7.js +1182 -0
- package/dist/calendar-BFWc4IB7.js.map +1 -0
- package/dist/calendar-BUm7YrNf.cjs +2 -0
- package/dist/calendar-BUm7YrNf.cjs.map +1 -0
- package/dist/calendar-ChJkFXXr.js +11 -0
- package/dist/calendar-ChJkFXXr.js.map +1 -0
- package/dist/calendar-SwL5isYC.cjs +2 -0
- package/dist/calendar-SwL5isYC.cjs.map +1 -0
- package/dist/card-K4fxyYwE.js +51 -0
- package/dist/card-K4fxyYwE.js.map +1 -0
- package/dist/card-tMkUxpmW.cjs +2 -0
- package/dist/card-tMkUxpmW.cjs.map +1 -0
- package/dist/checkbox-CpOq5hkT.js +289 -0
- package/dist/checkbox-CpOq5hkT.js.map +1 -0
- package/dist/checkbox-D7-LQyCl.cjs +2 -0
- package/dist/checkbox-D7-LQyCl.cjs.map +1 -0
- package/dist/chevron-down-DHdXqOqK.cjs +2 -0
- package/dist/chevron-down-DHdXqOqK.cjs.map +1 -0
- package/dist/chevron-down-DJ1_YIFu.js +8 -0
- package/dist/chevron-down-DJ1_YIFu.js.map +1 -0
- package/dist/chevron-right-B3bovvh0.js +8 -0
- package/dist/chevron-right-B3bovvh0.js.map +1 -0
- package/dist/chevron-right-Dvyd11q0.cjs +2 -0
- package/dist/chevron-right-Dvyd11q0.cjs.map +1 -0
- package/dist/chevron-up-B9fuiZhc.cjs +2 -0
- package/dist/chevron-up-B9fuiZhc.cjs.map +1 -0
- package/dist/chevron-up-CGtXOr51.js +6 -0
- package/dist/chevron-up-CGtXOr51.js.map +1 -0
- package/dist/components/charts/index.cjs.js +2 -0
- package/dist/components/charts/index.cjs.js.map +1 -0
- package/dist/components/charts/index.es.js +12 -0
- package/dist/components/charts/index.es.js.map +1 -0
- package/dist/components/data-display/index.cjs.js +2 -0
- package/dist/components/data-display/index.cjs.js.map +1 -0
- package/dist/components/data-display/index.es.js +25 -0
- package/dist/components/data-display/index.es.js.map +1 -0
- package/dist/components/dnd/index.cjs.js +2 -0
- package/dist/components/dnd/index.cjs.js.map +1 -0
- package/dist/components/dnd/index.es.js +9 -0
- package/dist/components/dnd/index.es.js.map +1 -0
- package/dist/components/feedback/index.cjs.js +2 -0
- package/dist/components/feedback/index.cjs.js.map +1 -0
- package/dist/components/feedback/index.es.js +16 -0
- package/dist/components/feedback/index.es.js.map +1 -0
- package/dist/components/forms/index.cjs.js +2 -0
- package/dist/components/forms/index.cjs.js.map +1 -0
- package/dist/components/forms/index.es.js +27 -0
- package/dist/components/forms/index.es.js.map +1 -0
- package/dist/components/layouts/index.cjs.js +2 -0
- package/dist/components/layouts/index.cjs.js.map +1 -0
- package/dist/components/layouts/index.es.js +25 -0
- package/dist/components/layouts/index.es.js.map +1 -0
- package/dist/components/navigation/index.cjs.js +2 -0
- package/dist/components/navigation/index.cjs.js.map +1 -0
- package/dist/components/navigation/index.es.js +42 -0
- package/dist/components/navigation/index.es.js.map +1 -0
- package/dist/components/ui/index.cjs.js +2 -0
- package/dist/components/ui/index.cjs.js.map +1 -0
- package/dist/components/ui/index.es.js +165 -0
- package/dist/components/ui/index.es.js.map +1 -0
- package/dist/createLucideIcon-BbeNo6vq.js +56 -0
- package/dist/createLucideIcon-BbeNo6vq.js.map +1 -0
- package/dist/createLucideIcon-i5GEhNMV.cjs +2 -0
- package/dist/createLucideIcon-i5GEhNMV.cjs.map +1 -0
- package/dist/ellipsis-BW2gWki8.cjs +2 -0
- package/dist/ellipsis-BW2gWki8.cjs.map +1 -0
- package/dist/ellipsis-CiKEaUNP.js +10 -0
- package/dist/ellipsis-CiKEaUNP.js.map +1 -0
- package/dist/file-V_hhCUhr.cjs +2 -0
- package/dist/file-V_hhCUhr.cjs.map +1 -0
- package/dist/file-wzTXnWqz.js +9 -0
- package/dist/file-wzTXnWqz.js.map +1 -0
- package/dist/filter-tags-DjUaNXHR.cjs +5 -0
- package/dist/filter-tags-DjUaNXHR.cjs.map +1 -0
- package/dist/filter-tags-i_I8qV1N.js +2658 -0
- package/dist/filter-tags-i_I8qV1N.js.map +1 -0
- package/dist/full-calendar-7ac2FFU6.js +3518 -0
- package/dist/full-calendar-7ac2FFU6.js.map +1 -0
- package/dist/full-calendar-Cpeh5xMP.cjs +8 -0
- package/dist/full-calendar-Cpeh5xMP.cjs.map +1 -0
- package/dist/global-search-UNXjoFlI.cjs +2 -0
- package/dist/global-search-UNXjoFlI.cjs.map +1 -0
- package/dist/global-search-h1rVbP2q.js +1188 -0
- package/dist/global-search-h1rVbP2q.js.map +1 -0
- package/dist/hooks/index.cjs.js +2 -0
- package/dist/hooks/index.cjs.js.map +1 -0
- package/dist/hooks/index.es.js +13 -0
- package/dist/hooks/index.es.js.map +1 -0
- package/dist/index-Co9o9StL.js +33 -0
- package/dist/index-Co9o9StL.js.map +1 -0
- package/dist/index-CwJPJKOE.js +2278 -0
- package/dist/index-CwJPJKOE.js.map +1 -0
- package/dist/index-CzVK9Zyb.cjs +6 -0
- package/dist/index-CzVK9Zyb.cjs.map +1 -0
- package/dist/index-l828OqQN.js +288 -0
- package/dist/index-l828OqQN.js.map +1 -0
- package/dist/index-lGzB9daF.cjs +2 -0
- package/dist/index-lGzB9daF.cjs.map +1 -0
- package/dist/index-lT9bLt9X.cjs +2 -0
- package/dist/index-lT9bLt9X.cjs.map +1 -0
- package/dist/index.cjs.js +2 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.es.js +332 -0
- package/dist/index.es.js.map +1 -0
- package/dist/input-CZrckPLk.cjs +42 -0
- package/dist/input-CZrckPLk.cjs.map +1 -0
- package/dist/input-D4AoiWxo.js +3629 -0
- package/dist/input-D4AoiWxo.js.map +1 -0
- package/dist/locale-provider-DHMwuneF.cjs +2 -0
- package/dist/locale-provider-DHMwuneF.cjs.map +1 -0
- package/dist/locale-provider-DanG6RRG.js +1012 -0
- package/dist/locale-provider-DanG6RRG.js.map +1 -0
- package/dist/locale-selector-Ppe0KTi-.cjs +2 -0
- package/dist/locale-selector-Ppe0KTi-.cjs.map +1 -0
- package/dist/locale-selector-xn2GpdP9.js +1745 -0
- package/dist/locale-selector-xn2GpdP9.js.map +1 -0
- package/dist/minus-BXBFZSZs.cjs +2 -0
- package/dist/minus-BXBFZSZs.cjs.map +1 -0
- package/dist/minus-DvlYtl96.js +6 -0
- package/dist/minus-DvlYtl96.js.map +1 -0
- package/dist/multi-container-C2UpSw5f.js +731 -0
- package/dist/multi-container-C2UpSw5f.js.map +1 -0
- package/dist/multi-container-DMKL8c9B.cjs +2 -0
- package/dist/multi-container-DMKL8c9B.cjs.map +1 -0
- package/dist/pipeline-By5_8AFg.cjs +2 -0
- package/dist/pipeline-By5_8AFg.cjs.map +1 -0
- package/dist/pipeline-D-QNSU0U.js +1036 -0
- package/dist/pipeline-D-QNSU0U.js.map +1 -0
- package/dist/plus-8wKRkVu-.cjs +2 -0
- package/dist/plus-8wKRkVu-.cjs.map +1 -0
- package/dist/plus-CJD68KQD.js +9 -0
- package/dist/plus-CJD68KQD.js.map +1 -0
- package/dist/popover-4V4sGe1U.js +765 -0
- package/dist/popover-4V4sGe1U.js.map +1 -0
- package/dist/popover-ivh-plLc.cjs +2 -0
- package/dist/popover-ivh-plLc.cjs.map +1 -0
- package/dist/progress-CFnuLqnS.cjs +7 -0
- package/dist/progress-CFnuLqnS.cjs.map +1 -0
- package/dist/progress-D5AsrWa6.js +222 -0
- package/dist/progress-D5AsrWa6.js.map +1 -0
- package/dist/providers/index.cjs.js +2 -0
- package/dist/providers/index.cjs.js.map +1 -0
- package/dist/providers/index.es.js +9 -0
- package/dist/providers/index.es.js.map +1 -0
- package/dist/scroll-area-DQeqDp3Y.js +952 -0
- package/dist/scroll-area-DQeqDp3Y.js.map +1 -0
- package/dist/scroll-area-DYOiJMXh.cjs +2 -0
- package/dist/scroll-area-DYOiJMXh.cjs.map +1 -0
- package/dist/select-C1rNBi6c.js +974 -0
- package/dist/select-C1rNBi6c.js.map +1 -0
- package/dist/select-m-Mqwxu3.cjs +2 -0
- package/dist/select-m-Mqwxu3.cjs.map +1 -0
- package/dist/separator-DBUivkHq.cjs +2 -0
- package/dist/separator-DBUivkHq.cjs.map +1 -0
- package/dist/separator-DsfoJx-2.js +395 -0
- package/dist/separator-DsfoJx-2.js.map +1 -0
- package/dist/sheet-BVWCpq7E.js +84 -0
- package/dist/sheet-BVWCpq7E.js.map +1 -0
- package/dist/sheet-mKiFLVnK.cjs +2 -0
- package/dist/sheet-mKiFLVnK.cjs.map +1 -0
- package/dist/skeleton-BSwwYaQU.cjs +2 -0
- package/dist/skeleton-BSwwYaQU.cjs.map +1 -0
- package/dist/skeleton-BmGbfJw3.js +9 -0
- package/dist/skeleton-BmGbfJw3.js.map +1 -0
- package/dist/sortable.esm-Blhf_jh1.js +3391 -0
- package/dist/sortable.esm-Blhf_jh1.js.map +1 -0
- package/dist/sortable.esm-DcQYlXi3.cjs +6 -0
- package/dist/sortable.esm-DcQYlXi3.cjs.map +1 -0
- package/dist/sparkline-chart-Da-ehDGv.js +21082 -0
- package/dist/sparkline-chart-Da-ehDGv.js.map +1 -0
- package/dist/sparkline-chart-ca3uTzVK.cjs +68 -0
- package/dist/sparkline-chart-ca3uTzVK.cjs.map +1 -0
- package/dist/trending-up-D3Nfrhi3.cjs +2 -0
- package/dist/trending-up-D3Nfrhi3.cjs.map +1 -0
- package/dist/trending-up-DPwlYzQb.js +9 -0
- package/dist/trending-up-DPwlYzQb.js.map +1 -0
- package/dist/ui.css +1 -0
- package/dist/use-formatters-d97RVcmg.cjs +2 -0
- package/dist/use-formatters-d97RVcmg.cjs.map +1 -0
- package/dist/use-formatters-l1_2c8z0.js +6682 -0
- package/dist/use-formatters-l1_2c8z0.js.map +1 -0
- package/dist/use-local-storage-BjlrKzE-.js +42 -0
- package/dist/use-local-storage-BjlrKzE-.js.map +1 -0
- package/dist/use-local-storage-q-1odzIu.cjs +2 -0
- package/dist/use-local-storage-q-1odzIu.cjs.map +1 -0
- package/dist/use-mobile-C-LMK4T8.js +15 -0
- package/dist/use-mobile-C-LMK4T8.js.map +1 -0
- package/dist/use-mobile-DY7TJ5lx.cjs +2 -0
- package/dist/use-mobile-DY7TJ5lx.cjs.map +1 -0
- package/dist/use-toast-DG2qdYhl.js +97 -0
- package/dist/use-toast-DG2qdYhl.js.map +1 -0
- package/dist/use-toast-DxZJ8uUm.cjs +2 -0
- package/dist/use-toast-DxZJ8uUm.cjs.map +1 -0
- package/dist/utils/index.cjs.js +2 -0
- package/dist/utils/index.cjs.js.map +1 -0
- package/dist/utils/index.es.js +5 -0
- package/dist/utils/index.es.js.map +1 -0
- package/dist/welcome-card-CPolYl1D.cjs +2 -0
- package/dist/welcome-card-CPolYl1D.cjs.map +1 -0
- package/dist/welcome-card-CxMJZ8bv.js +963 -0
- package/dist/welcome-card-CxMJZ8bv.js.map +1 -0
- package/package.json +179 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale-provider-DanG6RRG.js","sources":["../src/lib/date-formats.ts","../src/lib/currencies.ts","../src/providers/locale-provider.tsx"],"sourcesContent":["export type SupportedLocale =\n | 'tr-TR'\n | 'en-US'\n | 'en-GB'\n | 'de-DE'\n | 'fr-FR'\n | 'es-ES'\n | 'it-IT'\n | 'pt-BR'\n | 'nl-NL'\n | 'pl-PL'\n | 'ru-RU'\n | 'ja-JP'\n | 'zh-CN'\n | 'ko-KR'\n | 'ar-SA'\n\nexport type DateFormatType = 'short' | 'long' | 'withTime' | 'relative'\nexport type TimeFormatType = 'short' | 'long'\n\nexport const dateFormats: Record<DateFormatType, Record<SupportedLocale, string>> = {\n short: {\n 'tr-TR': 'dd.MM.yyyy',\n 'en-US': 'MM/dd/yyyy',\n 'en-GB': 'dd/MM/yyyy',\n 'de-DE': 'dd.MM.yyyy',\n 'fr-FR': 'dd/MM/yyyy',\n 'es-ES': 'dd/MM/yyyy',\n 'it-IT': 'dd/MM/yyyy',\n 'pt-BR': 'dd/MM/yyyy',\n 'nl-NL': 'dd-MM-yyyy',\n 'pl-PL': 'dd.MM.yyyy',\n 'ru-RU': 'dd.MM.yyyy',\n 'ja-JP': 'yyyy/MM/dd',\n 'zh-CN': 'yyyy-MM-dd',\n 'ko-KR': 'yyyy.MM.dd',\n 'ar-SA': 'dd/MM/yyyy',\n },\n long: {\n 'tr-TR': 'd MMMM yyyy',\n 'en-US': 'MMMM d, yyyy',\n 'en-GB': 'd MMMM yyyy',\n 'de-DE': 'd. MMMM yyyy',\n 'fr-FR': 'd MMMM yyyy',\n 'es-ES': 'd de MMMM de yyyy',\n 'it-IT': 'd MMMM yyyy',\n 'pt-BR': 'd de MMMM de yyyy',\n 'nl-NL': 'd MMMM yyyy',\n 'pl-PL': 'd MMMM yyyy',\n 'ru-RU': 'd MMMM yyyy г.',\n 'ja-JP': 'yyyy年M月d日',\n 'zh-CN': 'yyyy年M月d日',\n 'ko-KR': 'yyyy년 M월 d일',\n 'ar-SA': 'd MMMM yyyy',\n },\n withTime: {\n 'tr-TR': 'dd.MM.yyyy HH:mm',\n 'en-US': 'MM/dd/yyyy hh:mm a',\n 'en-GB': 'dd/MM/yyyy HH:mm',\n 'de-DE': 'dd.MM.yyyy HH:mm',\n 'fr-FR': 'dd/MM/yyyy HH:mm',\n 'es-ES': 'dd/MM/yyyy HH:mm',\n 'it-IT': 'dd/MM/yyyy HH:mm',\n 'pt-BR': 'dd/MM/yyyy HH:mm',\n 'nl-NL': 'dd-MM-yyyy HH:mm',\n 'pl-PL': 'dd.MM.yyyy HH:mm',\n 'ru-RU': 'dd.MM.yyyy HH:mm',\n 'ja-JP': 'yyyy/MM/dd HH:mm',\n 'zh-CN': 'yyyy-MM-dd HH:mm',\n 'ko-KR': 'yyyy.MM.dd HH:mm',\n 'ar-SA': 'dd/MM/yyyy hh:mm a',\n },\n relative: {\n 'tr-TR': 'relative',\n 'en-US': 'relative',\n 'en-GB': 'relative',\n 'de-DE': 'relative',\n 'fr-FR': 'relative',\n 'es-ES': 'relative',\n 'it-IT': 'relative',\n 'pt-BR': 'relative',\n 'nl-NL': 'relative',\n 'pl-PL': 'relative',\n 'ru-RU': 'relative',\n 'ja-JP': 'relative',\n 'zh-CN': 'relative',\n 'ko-KR': 'relative',\n 'ar-SA': 'relative',\n },\n}\n\nexport const timeFormats: Record<TimeFormatType, Record<SupportedLocale, string>> = {\n short: {\n 'tr-TR': 'HH:mm',\n 'en-US': 'hh:mm a',\n 'en-GB': 'HH:mm',\n 'de-DE': 'HH:mm',\n 'fr-FR': 'HH:mm',\n 'es-ES': 'HH:mm',\n 'it-IT': 'HH:mm',\n 'pt-BR': 'HH:mm',\n 'nl-NL': 'HH:mm',\n 'pl-PL': 'HH:mm',\n 'ru-RU': 'HH:mm',\n 'ja-JP': 'HH:mm',\n 'zh-CN': 'HH:mm',\n 'ko-KR': 'HH:mm',\n 'ar-SA': 'hh:mm a',\n },\n long: {\n 'tr-TR': 'HH:mm:ss',\n 'en-US': 'hh:mm:ss a',\n 'en-GB': 'HH:mm:ss',\n 'de-DE': 'HH:mm:ss',\n 'fr-FR': 'HH:mm:ss',\n 'es-ES': 'HH:mm:ss',\n 'it-IT': 'HH:mm:ss',\n 'pt-BR': 'HH:mm:ss',\n 'nl-NL': 'HH:mm:ss',\n 'pl-PL': 'HH:mm:ss',\n 'ru-RU': 'HH:mm:ss',\n 'ja-JP': 'HH:mm:ss',\n 'zh-CN': 'HH:mm:ss',\n 'ko-KR': 'HH:mm:ss',\n 'ar-SA': 'hh:mm:ss a',\n },\n}\n\nexport interface LocaleInfo {\n code: SupportedLocale\n name: string\n nativeName: string\n flag: string\n defaultCurrency: string\n dateFormat: string\n timeFormat: string\n rtl?: boolean\n}\n\nexport const locales: Record<SupportedLocale, LocaleInfo> = {\n 'tr-TR': {\n code: 'tr-TR',\n name: 'Turkish',\n nativeName: 'Türkçe',\n flag: '🇹🇷',\n defaultCurrency: 'TRY',\n dateFormat: dateFormats.short['tr-TR'],\n timeFormat: timeFormats.short['tr-TR'],\n },\n 'en-US': {\n code: 'en-US',\n name: 'English (US)',\n nativeName: 'English (US)',\n flag: '🇺🇸',\n defaultCurrency: 'USD',\n dateFormat: dateFormats.short['en-US'],\n timeFormat: timeFormats.short['en-US'],\n },\n 'en-GB': {\n code: 'en-GB',\n name: 'English (UK)',\n nativeName: 'English (UK)',\n flag: '🇬🇧',\n defaultCurrency: 'GBP',\n dateFormat: dateFormats.short['en-GB'],\n timeFormat: timeFormats.short['en-GB'],\n },\n 'de-DE': {\n code: 'de-DE',\n name: 'German',\n nativeName: 'Deutsch',\n flag: '🇩🇪',\n defaultCurrency: 'EUR',\n dateFormat: dateFormats.short['de-DE'],\n timeFormat: timeFormats.short['de-DE'],\n },\n 'fr-FR': {\n code: 'fr-FR',\n name: 'French',\n nativeName: 'Français',\n flag: '🇫🇷',\n defaultCurrency: 'EUR',\n dateFormat: dateFormats.short['fr-FR'],\n timeFormat: timeFormats.short['fr-FR'],\n },\n 'es-ES': {\n code: 'es-ES',\n name: 'Spanish',\n nativeName: 'Español',\n flag: '🇪🇸',\n defaultCurrency: 'EUR',\n dateFormat: dateFormats.short['es-ES'],\n timeFormat: timeFormats.short['es-ES'],\n },\n 'it-IT': {\n code: 'it-IT',\n name: 'Italian',\n nativeName: 'Italiano',\n flag: '🇮🇹',\n defaultCurrency: 'EUR',\n dateFormat: dateFormats.short['it-IT'],\n timeFormat: timeFormats.short['it-IT'],\n },\n 'pt-BR': {\n code: 'pt-BR',\n name: 'Portuguese (Brazil)',\n nativeName: 'Português (Brasil)',\n flag: '🇧🇷',\n defaultCurrency: 'BRL',\n dateFormat: dateFormats.short['pt-BR'],\n timeFormat: timeFormats.short['pt-BR'],\n },\n 'nl-NL': {\n code: 'nl-NL',\n name: 'Dutch',\n nativeName: 'Nederlands',\n flag: '🇳🇱',\n defaultCurrency: 'EUR',\n dateFormat: dateFormats.short['nl-NL'],\n timeFormat: timeFormats.short['nl-NL'],\n },\n 'pl-PL': {\n code: 'pl-PL',\n name: 'Polish',\n nativeName: 'Polski',\n flag: '🇵🇱',\n defaultCurrency: 'PLN',\n dateFormat: dateFormats.short['pl-PL'],\n timeFormat: timeFormats.short['pl-PL'],\n },\n 'ru-RU': {\n code: 'ru-RU',\n name: 'Russian',\n nativeName: 'Русский',\n flag: '🇷🇺',\n defaultCurrency: 'RUB',\n dateFormat: dateFormats.short['ru-RU'],\n timeFormat: timeFormats.short['ru-RU'],\n },\n 'ja-JP': {\n code: 'ja-JP',\n name: 'Japanese',\n nativeName: '日本語',\n flag: '🇯🇵',\n defaultCurrency: 'JPY',\n dateFormat: dateFormats.short['ja-JP'],\n timeFormat: timeFormats.short['ja-JP'],\n },\n 'zh-CN': {\n code: 'zh-CN',\n name: 'Chinese (Simplified)',\n nativeName: '中文',\n flag: '🇨🇳',\n defaultCurrency: 'CNY',\n dateFormat: dateFormats.short['zh-CN'],\n timeFormat: timeFormats.short['zh-CN'],\n },\n 'ko-KR': {\n code: 'ko-KR',\n name: 'Korean',\n nativeName: '한국어',\n flag: '🇰🇷',\n defaultCurrency: 'KRW',\n dateFormat: dateFormats.short['ko-KR'],\n timeFormat: timeFormats.short['ko-KR'],\n },\n 'ar-SA': {\n code: 'ar-SA',\n name: 'Arabic',\n nativeName: 'العربية',\n flag: '🇸🇦',\n defaultCurrency: 'SAR',\n dateFormat: dateFormats.short['ar-SA'],\n timeFormat: timeFormats.short['ar-SA'],\n rtl: true,\n },\n}\n\nexport function getDateFormat(locale: SupportedLocale, type: DateFormatType = 'short'): string {\n return dateFormats[type][locale] || dateFormats[type]['en-US']\n}\n\nexport function getTimeFormat(locale: SupportedLocale, type: TimeFormatType = 'short'): string {\n return timeFormats[type][locale] || timeFormats[type]['en-US']\n}\n\nexport function getLocaleInfo(locale: SupportedLocale): LocaleInfo {\n return locales[locale] || locales['en-US']\n}\n\nexport function getAllLocales(): LocaleInfo[] {\n return Object.values(locales)\n}\n\nexport function getSupportedLocaleCodes(): SupportedLocale[] {\n return Object.keys(locales) as SupportedLocale[]\n}\n\nexport function isRTLLocale(locale: SupportedLocale): boolean {\n return locales[locale]?.rtl === true\n}\n","export interface Currency {\n code: string\n symbol: string\n name: string\n position: 'before' | 'after'\n decimals?: number\n}\n\nexport const currencies: Record<string, Currency> = {\n USD: { code: 'USD', symbol: '$', name: 'US Dollar', position: 'before', decimals: 2 },\n EUR: { code: 'EUR', symbol: '€', name: 'Euro', position: 'before', decimals: 2 },\n GBP: { code: 'GBP', symbol: '£', name: 'British Pound', position: 'before', decimals: 2 },\n TRY: { code: 'TRY', symbol: '₺', name: 'Turkish Lira', position: 'before', decimals: 2 },\n JPY: { code: 'JPY', symbol: '¥', name: 'Japanese Yen', position: 'before', decimals: 0 },\n CNY: { code: 'CNY', symbol: '¥', name: 'Chinese Yuan', position: 'before', decimals: 2 },\n KRW: { code: 'KRW', symbol: '₩', name: 'Korean Won', position: 'before', decimals: 0 },\n INR: { code: 'INR', symbol: '₹', name: 'Indian Rupee', position: 'before', decimals: 2 },\n BRL: { code: 'BRL', symbol: 'R$', name: 'Brazilian Real', position: 'before', decimals: 2 },\n RUB: { code: 'RUB', symbol: '₽', name: 'Russian Ruble', position: 'after', decimals: 2 },\n AUD: { code: 'AUD', symbol: 'A$', name: 'Australian Dollar', position: 'before', decimals: 2 },\n CAD: { code: 'CAD', symbol: 'C$', name: 'Canadian Dollar', position: 'before', decimals: 2 },\n CHF: { code: 'CHF', symbol: 'Fr', name: 'Swiss Franc', position: 'before', decimals: 2 },\n SEK: { code: 'SEK', symbol: 'kr', name: 'Swedish Krona', position: 'after', decimals: 2 },\n NOK: { code: 'NOK', symbol: 'kr', name: 'Norwegian Krone', position: 'after', decimals: 2 },\n DKK: { code: 'DKK', symbol: 'kr', name: 'Danish Krone', position: 'after', decimals: 2 },\n PLN: { code: 'PLN', symbol: 'zł', name: 'Polish Zloty', position: 'after', decimals: 2 },\n MXN: { code: 'MXN', symbol: '$', name: 'Mexican Peso', position: 'before', decimals: 2 },\n SGD: { code: 'SGD', symbol: 'S$', name: 'Singapore Dollar', position: 'before', decimals: 2 },\n HKD: { code: 'HKD', symbol: 'HK$', name: 'Hong Kong Dollar', position: 'before', decimals: 2 },\n AED: { code: 'AED', symbol: 'د.إ', name: 'UAE Dirham', position: 'before', decimals: 2 },\n SAR: { code: 'SAR', symbol: '﷼', name: 'Saudi Riyal', position: 'after', decimals: 2 },\n NZD: { code: 'NZD', symbol: 'NZ$', name: 'New Zealand Dollar', position: 'before', decimals: 2 },\n ZAR: { code: 'ZAR', symbol: 'R', name: 'South African Rand', position: 'before', decimals: 2 },\n THB: { code: 'THB', symbol: '฿', name: 'Thai Baht', position: 'before', decimals: 2 },\n IDR: { code: 'IDR', symbol: 'Rp', name: 'Indonesian Rupiah', position: 'before', decimals: 0 },\n MYR: { code: 'MYR', symbol: 'RM', name: 'Malaysian Ringgit', position: 'before', decimals: 2 },\n PHP: { code: 'PHP', symbol: '₱', name: 'Philippine Peso', position: 'before', decimals: 2 },\n VND: { code: 'VND', symbol: '₫', name: 'Vietnamese Dong', position: 'after', decimals: 0 },\n CZK: { code: 'CZK', symbol: 'Kč', name: 'Czech Koruna', position: 'after', decimals: 2 },\n HUF: { code: 'HUF', symbol: 'Ft', name: 'Hungarian Forint', position: 'after', decimals: 0 },\n ILS: { code: 'ILS', symbol: '₪', name: 'Israeli Shekel', position: 'before', decimals: 2 },\n CLP: { code: 'CLP', symbol: '$', name: 'Chilean Peso', position: 'before', decimals: 0 },\n COP: { code: 'COP', symbol: '$', name: 'Colombian Peso', position: 'before', decimals: 0 },\n ARS: { code: 'ARS', symbol: '$', name: 'Argentine Peso', position: 'before', decimals: 2 },\n PEN: { code: 'PEN', symbol: 'S/', name: 'Peruvian Sol', position: 'before', decimals: 2 },\n EGP: { code: 'EGP', symbol: 'E£', name: 'Egyptian Pound', position: 'before', decimals: 2 },\n NGN: { code: 'NGN', symbol: '₦', name: 'Nigerian Naira', position: 'before', decimals: 2 },\n PKR: { code: 'PKR', symbol: '₨', name: 'Pakistani Rupee', position: 'before', decimals: 2 },\n BDT: { code: 'BDT', symbol: '৳', name: 'Bangladeshi Taka', position: 'before', decimals: 2 },\n UAH: { code: 'UAH', symbol: '₴', name: 'Ukrainian Hryvnia', position: 'after', decimals: 2 },\n RON: { code: 'RON', symbol: 'lei', name: 'Romanian Leu', position: 'after', decimals: 2 },\n BGN: { code: 'BGN', symbol: 'лв', name: 'Bulgarian Lev', position: 'after', decimals: 2 },\n HRK: { code: 'HRK', symbol: 'kn', name: 'Croatian Kuna', position: 'after', decimals: 2 },\n ISK: { code: 'ISK', symbol: 'kr', name: 'Icelandic Krona', position: 'after', decimals: 0 },\n TWD: { code: 'TWD', symbol: 'NT$', name: 'Taiwan Dollar', position: 'before', decimals: 0 },\n} as const\n\nexport type CurrencyCode = keyof typeof currencies\n\nexport function getCurrency(code: string): Currency | undefined {\n return currencies[code]\n}\n\nexport function formatCurrency(\n amount: number,\n currencyCode: string,\n locale?: string\n): string {\n const currency = getCurrency(currencyCode)\n if (!currency) {\n return amount.toString()\n }\n\n const decimals = currency.decimals ?? 2\n const formattedAmount = amount.toLocaleString(locale, {\n minimumFractionDigits: decimals,\n maximumFractionDigits: decimals,\n })\n\n if (currency.position === 'before') {\n return `${currency.symbol}${formattedAmount}`\n }\n return `${formattedAmount} ${currency.symbol}`\n}\n\nexport function getAllCurrencies(): Currency[] {\n return Object.values(currencies)\n}\n\nexport function getCurrencyCodes(): string[] {\n return Object.keys(currencies)\n}\n","import * as React from 'react'\nimport { type SupportedLocale, locales, dateFormats, timeFormats } from '@/lib/date-formats'\nimport { currencies, type CurrencyCode, type Currency } from '@/lib/currencies'\n\nexport interface NumberFormatConfig {\n decimal: string\n thousand: string\n}\n\nexport interface LocaleConfig {\n locale: SupportedLocale\n currency: CurrencyCode\n currencySymbol: string\n dateFormat: string\n timeFormat: string\n numberFormat: NumberFormatConfig\n translations: Record<string, string>\n rtl?: boolean\n}\n\nconst defaultTranslations: Record<string, Record<string, string>> = {\n 'en-US': {\n 'common.save': 'Save',\n 'common.cancel': 'Cancel',\n 'common.delete': 'Delete',\n 'common.edit': 'Edit',\n 'common.create': 'Create',\n 'common.search': 'Search',\n 'common.filter': 'Filter',\n 'common.export': 'Export',\n 'common.import': 'Import',\n 'common.loading': 'Loading...',\n 'common.noData': 'No data available',\n 'common.confirm': 'Confirm',\n 'common.close': 'Close',\n 'common.yes': 'Yes',\n 'common.no': 'No',\n 'common.all': 'All',\n 'common.none': 'None',\n 'common.select': 'Select',\n 'common.selectAll': 'Select all',\n 'common.clearAll': 'Clear all',\n 'common.apply': 'Apply',\n 'common.reset': 'Reset',\n 'common.more': 'More',\n 'common.less': 'Less',\n 'common.viewAll': 'View all',\n 'common.showMore': 'Show more',\n 'common.showLess': 'Show less',\n 'common.total': 'Total',\n 'common.items': 'Items',\n 'table.rowsPerPage': 'Rows per page',\n 'table.of': 'of',\n 'table.page': 'Page',\n 'table.noResults': 'No results found',\n 'table.columns': 'Columns',\n 'form.required': 'This field is required',\n 'form.invalidEmail': 'Invalid email address',\n 'form.invalidPhone': 'Invalid phone number',\n 'form.minLength': 'Minimum {min} characters required',\n 'form.maxLength': 'Maximum {max} characters allowed',\n 'date.today': 'Today',\n 'date.yesterday': 'Yesterday',\n 'date.tomorrow': 'Tomorrow',\n 'date.thisWeek': 'This week',\n 'date.lastWeek': 'Last week',\n 'date.thisMonth': 'This month',\n 'date.lastMonth': 'Last month',\n 'notifications.success': 'Success',\n 'notifications.error': 'Error',\n 'notifications.warning': 'Warning',\n 'notifications.info': 'Info',\n 'deal.probability': 'Probability',\n 'deal.value': 'Value',\n 'deal.stage': 'Stage',\n 'deal.closeDate': 'Close Date',\n 'pipeline.moveTo': 'Move to',\n 'pipeline.stages': 'Stages',\n 'locale.selectLanguage': 'Select language',\n 'locale.selectCurrency': 'Select currency',\n 'calendar.today': 'Today',\n 'calendar.month': 'Month',\n 'calendar.week': 'Week',\n 'calendar.day': 'Day',\n 'calendar.agenda': 'Agenda',\n 'calendar.allDay': 'All day',\n 'calendar.noEvents': 'No events scheduled for this month',\n 'calendar.more': '+{count} more',\n 'calendar.viewDetails': 'View Details',\n 'date.selectDate': 'Pick a date',\n 'time.selectTime': 'Select time',\n 'time.hours': 'Hours',\n 'time.minutes': 'Minutes',\n 'time.period': 'Period',\n 'status.active': 'Active',\n 'status.inactive': 'Inactive',\n 'status.pending': 'Pending',\n 'status.completed': 'Completed',\n 'status.cancelled': 'Cancelled',\n },\n 'tr-TR': {\n 'common.save': 'Kaydet',\n 'common.cancel': 'İptal',\n 'common.delete': 'Sil',\n 'common.edit': 'Düzenle',\n 'common.create': 'Oluştur',\n 'common.search': 'Ara',\n 'common.filter': 'Filtrele',\n 'common.export': 'Dışa Aktar',\n 'common.import': 'İçe Aktar',\n 'common.loading': 'Yükleniyor...',\n 'common.noData': 'Veri bulunamadı',\n 'common.confirm': 'Onayla',\n 'common.close': 'Kapat',\n 'common.yes': 'Evet',\n 'common.no': 'Hayır',\n 'common.all': 'Tümü',\n 'common.none': 'Hiçbiri',\n 'common.select': 'Seç',\n 'common.selectAll': 'Tümünü seç',\n 'common.clearAll': 'Tümünü temizle',\n 'common.apply': 'Uygula',\n 'common.reset': 'Sıfırla',\n 'common.more': 'Daha fazla',\n 'common.less': 'Daha az',\n 'common.viewAll': 'Tümünü gör',\n 'common.showMore': 'Daha fazla göster',\n 'common.showLess': 'Daha az göster',\n 'common.total': 'Toplam',\n 'common.items': 'Öğeler',\n 'table.rowsPerPage': 'Sayfa başına satır',\n 'table.of': '/',\n 'table.page': 'Sayfa',\n 'table.noResults': 'Sonuç bulunamadı',\n 'table.columns': 'Sütunlar',\n 'form.required': 'Bu alan zorunludur',\n 'form.invalidEmail': 'Geçersiz e-posta adresi',\n 'form.invalidPhone': 'Geçersiz telefon numarası',\n 'form.minLength': 'En az {min} karakter gerekli',\n 'form.maxLength': 'En fazla {max} karakter girilebilir',\n 'date.today': 'Bugün',\n 'date.yesterday': 'Dün',\n 'date.tomorrow': 'Yarın',\n 'date.thisWeek': 'Bu hafta',\n 'date.lastWeek': 'Geçen hafta',\n 'date.thisMonth': 'Bu ay',\n 'date.lastMonth': 'Geçen ay',\n 'notifications.success': 'Başarılı',\n 'notifications.error': 'Hata',\n 'notifications.warning': 'Uyarı',\n 'notifications.info': 'Bilgi',\n 'deal.probability': 'Olasılık',\n 'deal.value': 'Değer',\n 'deal.stage': 'Aşama',\n 'deal.closeDate': 'Kapanış Tarihi',\n 'pipeline.moveTo': 'Taşı',\n 'pipeline.stages': 'Aşamalar',\n 'locale.selectLanguage': 'Dil seçin',\n 'locale.selectCurrency': 'Para birimi seçin',\n 'calendar.today': 'Bugün',\n 'calendar.month': 'Ay',\n 'calendar.week': 'Hafta',\n 'calendar.day': 'Gün',\n 'calendar.agenda': 'Ajanda',\n 'calendar.allDay': 'Tüm gün',\n 'calendar.noEvents': 'Bu ay için planlanmış etkinlik yok',\n 'calendar.more': '+{count} daha',\n 'calendar.viewDetails': 'Detayları Gör',\n 'date.selectDate': 'Tarih seçin',\n 'time.selectTime': 'Saat seçin',\n 'time.hours': 'Saat',\n 'time.minutes': 'Dakika',\n 'time.period': 'Dönem',\n 'status.active': 'Aktif',\n 'status.inactive': 'Pasif',\n 'status.pending': 'Beklemede',\n 'status.completed': 'Tamamlandı',\n 'status.cancelled': 'İptal Edildi',\n },\n 'de-DE': {\n 'common.save': 'Speichern',\n 'common.cancel': 'Abbrechen',\n 'common.delete': 'Löschen',\n 'common.edit': 'Bearbeiten',\n 'common.create': 'Erstellen',\n 'common.search': 'Suchen',\n 'common.filter': 'Filtern',\n 'common.loading': 'Laden...',\n 'common.noData': 'Keine Daten verfügbar',\n 'common.confirm': 'Bestätigen',\n 'common.close': 'Schließen',\n 'common.yes': 'Ja',\n 'common.no': 'Nein',\n 'common.total': 'Gesamt',\n 'common.items': 'Elemente',\n 'locale.selectLanguage': 'Sprache wählen',\n 'locale.selectCurrency': 'Währung wählen',\n 'calendar.today': 'Heute',\n 'calendar.month': 'Monat',\n 'calendar.week': 'Woche',\n 'calendar.day': 'Tag',\n 'calendar.agenda': 'Agenda',\n 'calendar.allDay': 'Ganztägig',\n 'calendar.noEvents': 'Keine Termine für diesen Monat',\n 'date.selectDate': 'Datum auswählen',\n 'time.selectTime': 'Zeit auswählen',\n 'time.hours': 'Stunden',\n 'time.minutes': 'Minuten',\n 'time.period': 'Zeitraum',\n },\n 'fr-FR': {\n 'common.save': 'Enregistrer',\n 'common.cancel': 'Annuler',\n 'common.delete': 'Supprimer',\n 'common.edit': 'Modifier',\n 'common.create': 'Créer',\n 'common.search': 'Rechercher',\n 'common.filter': 'Filtrer',\n 'common.loading': 'Chargement...',\n 'common.noData': 'Aucune donnée disponible',\n 'common.confirm': 'Confirmer',\n 'common.close': 'Fermer',\n 'common.yes': 'Oui',\n 'common.no': 'Non',\n 'common.total': 'Total',\n 'common.items': 'Éléments',\n 'locale.selectLanguage': 'Sélectionner la langue',\n 'locale.selectCurrency': 'Sélectionner la devise',\n 'calendar.today': \"Aujourd'hui\",\n 'calendar.month': 'Mois',\n 'calendar.week': 'Semaine',\n 'calendar.day': 'Jour',\n 'calendar.agenda': 'Agenda',\n 'calendar.allDay': 'Toute la journée',\n 'calendar.noEvents': 'Aucun événement prévu ce mois-ci',\n 'date.selectDate': 'Choisir une date',\n 'time.selectTime': 'Sélectionner l\\'heure',\n 'time.hours': 'Heures',\n 'time.minutes': 'Minutes',\n 'time.period': 'Période',\n },\n 'es-ES': {\n 'common.save': 'Guardar',\n 'common.cancel': 'Cancelar',\n 'common.delete': 'Eliminar',\n 'common.edit': 'Editar',\n 'common.create': 'Crear',\n 'common.search': 'Buscar',\n 'common.filter': 'Filtrar',\n 'common.loading': 'Cargando...',\n 'common.noData': 'No hay datos disponibles',\n 'common.confirm': 'Confirmar',\n 'common.close': 'Cerrar',\n 'common.yes': 'Sí',\n 'common.no': 'No',\n 'common.total': 'Total',\n 'common.items': 'Elementos',\n 'locale.selectLanguage': 'Seleccionar idioma',\n 'locale.selectCurrency': 'Seleccionar moneda',\n 'calendar.today': 'Hoy',\n 'calendar.month': 'Mes',\n 'calendar.week': 'Semana',\n 'calendar.day': 'Día',\n 'calendar.agenda': 'Agenda',\n 'calendar.allDay': 'Todo el día',\n 'calendar.noEvents': 'No hay eventos programados este mes',\n 'date.selectDate': 'Seleccionar fecha',\n 'time.selectTime': 'Seleccionar hora',\n 'time.hours': 'Horas',\n 'time.minutes': 'Minutos',\n 'time.period': 'Período',\n },\n 'it-IT': {\n 'common.save': 'Salva',\n 'common.cancel': 'Annulla',\n 'common.delete': 'Elimina',\n 'common.edit': 'Modifica',\n 'common.create': 'Crea',\n 'common.search': 'Cerca',\n 'common.loading': 'Caricamento...',\n 'common.total': 'Totale',\n 'common.items': 'Elementi',\n 'locale.selectLanguage': 'Seleziona lingua',\n 'locale.selectCurrency': 'Seleziona valuta',\n 'calendar.today': 'Oggi',\n 'calendar.month': 'Mese',\n 'calendar.week': 'Settimana',\n 'calendar.day': 'Giorno',\n 'calendar.agenda': 'Agenda',\n 'calendar.allDay': 'Tutto il giorno',\n 'date.selectDate': 'Seleziona data',\n 'time.selectTime': 'Seleziona ora',\n 'time.hours': 'Ore',\n 'time.minutes': 'Minuti',\n 'time.period': 'Periodo',\n },\n 'pt-BR': {\n 'common.save': 'Salvar',\n 'common.cancel': 'Cancelar',\n 'common.delete': 'Excluir',\n 'common.edit': 'Editar',\n 'common.create': 'Criar',\n 'common.search': 'Pesquisar',\n 'common.loading': 'Carregando...',\n 'common.total': 'Total',\n 'common.items': 'Itens',\n 'locale.selectLanguage': 'Selecionar idioma',\n 'locale.selectCurrency': 'Selecionar moeda',\n 'calendar.today': 'Hoje',\n 'calendar.month': 'Mês',\n 'calendar.week': 'Semana',\n 'calendar.day': 'Dia',\n 'calendar.agenda': 'Agenda',\n 'calendar.allDay': 'Dia inteiro',\n 'date.selectDate': 'Selecionar data',\n 'time.selectTime': 'Selecionar hora',\n 'time.hours': 'Horas',\n 'time.minutes': 'Minutos',\n 'time.period': 'Período',\n },\n 'nl-NL': {\n 'common.save': 'Opslaan',\n 'common.cancel': 'Annuleren',\n 'common.delete': 'Verwijderen',\n 'common.edit': 'Bewerken',\n 'common.create': 'Maken',\n 'common.search': 'Zoeken',\n 'common.loading': 'Laden...',\n 'common.total': 'Totaal',\n 'common.items': 'Items',\n 'locale.selectLanguage': 'Taal selecteren',\n 'locale.selectCurrency': 'Valuta selecteren',\n 'calendar.today': 'Vandaag',\n 'calendar.month': 'Maand',\n 'calendar.week': 'Week',\n 'calendar.day': 'Dag',\n 'calendar.agenda': 'Agenda',\n 'calendar.allDay': 'Hele dag',\n 'date.selectDate': 'Datum kiezen',\n 'time.selectTime': 'Tijd selecteren',\n 'time.hours': 'Uren',\n 'time.minutes': 'Minuten',\n 'time.period': 'Periode',\n },\n 'pl-PL': {\n 'common.save': 'Zapisz',\n 'common.cancel': 'Anuluj',\n 'common.delete': 'Usuń',\n 'common.edit': 'Edytuj',\n 'common.create': 'Utwórz',\n 'common.search': 'Szukaj',\n 'common.loading': 'Ładowanie...',\n 'common.total': 'Suma',\n 'common.items': 'Elementy',\n 'locale.selectLanguage': 'Wybierz język',\n 'locale.selectCurrency': 'Wybierz walutę',\n 'calendar.today': 'Dziś',\n 'calendar.month': 'Miesiąc',\n 'calendar.week': 'Tydzień',\n 'calendar.day': 'Dzień',\n 'calendar.agenda': 'Agenda',\n 'calendar.allDay': 'Cały dzień',\n 'date.selectDate': 'Wybierz datę',\n 'time.selectTime': 'Wybierz czas',\n 'time.hours': 'Godziny',\n 'time.minutes': 'Minuty',\n 'time.period': 'Okres',\n },\n 'ru-RU': {\n 'common.save': 'Сохранить',\n 'common.cancel': 'Отмена',\n 'common.delete': 'Удалить',\n 'common.edit': 'Редактировать',\n 'common.create': 'Создать',\n 'common.search': 'Поиск',\n 'common.loading': 'Загрузка...',\n 'common.total': 'Всего',\n 'common.items': 'Элементы',\n 'locale.selectLanguage': 'Выбрать язык',\n 'locale.selectCurrency': 'Выбрать валюту',\n 'calendar.today': 'Сегодня',\n 'calendar.month': 'Месяц',\n 'calendar.week': 'Неделя',\n 'calendar.day': 'День',\n 'calendar.agenda': 'Повестка',\n 'calendar.allDay': 'Весь день',\n 'date.selectDate': 'Выберите дату',\n 'time.selectTime': 'Выберите время',\n 'time.hours': 'Часы',\n 'time.minutes': 'Минуты',\n 'time.period': 'Период',\n },\n 'ja-JP': {\n 'common.save': '保存',\n 'common.cancel': 'キャンセル',\n 'common.delete': '削除',\n 'common.edit': '編集',\n 'common.create': '作成',\n 'common.search': '検索',\n 'common.loading': '読み込み中...',\n 'common.total': '合計',\n 'common.items': 'アイテム',\n 'locale.selectLanguage': '言語を選択',\n 'locale.selectCurrency': '通貨を選択',\n 'calendar.today': '今日',\n 'calendar.month': '月',\n 'calendar.week': '週',\n 'calendar.day': '日',\n 'calendar.agenda': '予定表',\n 'calendar.allDay': '終日',\n 'date.selectDate': '日付を選択',\n 'time.selectTime': '時刻を選択',\n 'time.hours': '時',\n 'time.minutes': '分',\n 'time.period': '時間帯',\n },\n 'zh-CN': {\n 'common.save': '保存',\n 'common.cancel': '取消',\n 'common.delete': '删除',\n 'common.edit': '编辑',\n 'common.create': '创建',\n 'common.search': '搜索',\n 'common.loading': '加载中...',\n 'common.total': '总计',\n 'common.items': '项目',\n 'locale.selectLanguage': '选择语言',\n 'locale.selectCurrency': '选择货币',\n 'calendar.today': '今天',\n 'calendar.month': '月',\n 'calendar.week': '周',\n 'calendar.day': '日',\n 'calendar.agenda': '日程',\n 'calendar.allDay': '全天',\n 'date.selectDate': '选择日期',\n 'time.selectTime': '选择时间',\n 'time.hours': '小时',\n 'time.minutes': '分钟',\n 'time.period': '时段',\n },\n 'ko-KR': {\n 'common.save': '저장',\n 'common.cancel': '취소',\n 'common.delete': '삭제',\n 'common.edit': '편집',\n 'common.create': '만들기',\n 'common.search': '검색',\n 'common.loading': '로딩 중...',\n 'common.total': '합계',\n 'common.items': '항목',\n 'locale.selectLanguage': '언어 선택',\n 'locale.selectCurrency': '통화 선택',\n 'calendar.today': '오늘',\n 'calendar.month': '월',\n 'calendar.week': '주',\n 'calendar.day': '일',\n 'calendar.agenda': '일정',\n 'calendar.allDay': '종일',\n 'date.selectDate': '날짜 선택',\n 'time.selectTime': '시간 선택',\n 'time.hours': '시',\n 'time.minutes': '분',\n 'time.period': '오전/오후',\n },\n 'ar-SA': {\n 'common.save': 'حفظ',\n 'common.cancel': 'إلغاء',\n 'common.delete': 'حذف',\n 'common.edit': 'تعديل',\n 'common.create': 'إنشاء',\n 'common.search': 'بحث',\n 'common.loading': 'جاري التحميل...',\n 'common.total': 'المجموع',\n 'common.items': 'العناصر',\n 'locale.selectLanguage': 'اختر اللغة',\n 'locale.selectCurrency': 'اختر العملة',\n 'calendar.today': 'اليوم',\n 'calendar.month': 'شهر',\n 'calendar.week': 'أسبوع',\n 'calendar.day': 'يوم',\n 'calendar.agenda': 'جدول الأعمال',\n 'calendar.allDay': 'طوال اليوم',\n 'date.selectDate': 'اختر التاريخ',\n 'time.selectTime': 'اختر الوقت',\n 'time.hours': 'ساعات',\n 'time.minutes': 'دقائق',\n 'time.period': 'الفترة',\n },\n 'en-GB': {\n 'common.save': 'Save',\n 'common.cancel': 'Cancel',\n 'common.delete': 'Delete',\n 'common.edit': 'Edit',\n 'common.create': 'Create',\n 'common.search': 'Search',\n 'common.loading': 'Loading...',\n 'common.total': 'Total',\n 'common.items': 'Items',\n 'locale.selectLanguage': 'Select language',\n 'locale.selectCurrency': 'Select currency',\n 'calendar.today': 'Today',\n 'calendar.month': 'Month',\n 'calendar.week': 'Week',\n 'calendar.day': 'Day',\n 'calendar.agenda': 'Agenda',\n 'calendar.allDay': 'All day',\n 'date.selectDate': 'Pick a date',\n 'time.selectTime': 'Select time',\n 'time.hours': 'Hours',\n 'time.minutes': 'Minutes',\n 'time.period': 'Period',\n },\n}\n\nconst numberFormats: Record<SupportedLocale, NumberFormatConfig> = {\n 'en-US': { decimal: '.', thousand: ',' },\n 'en-GB': { decimal: '.', thousand: ',' },\n 'tr-TR': { decimal: ',', thousand: '.' },\n 'de-DE': { decimal: ',', thousand: '.' },\n 'fr-FR': { decimal: ',', thousand: ' ' },\n 'es-ES': { decimal: ',', thousand: '.' },\n 'it-IT': { decimal: ',', thousand: '.' },\n 'pt-BR': { decimal: ',', thousand: '.' },\n 'nl-NL': { decimal: ',', thousand: '.' },\n 'pl-PL': { decimal: ',', thousand: ' ' },\n 'ru-RU': { decimal: ',', thousand: ' ' },\n 'ja-JP': { decimal: '.', thousand: ',' },\n 'zh-CN': { decimal: '.', thousand: ',' },\n 'ko-KR': { decimal: '.', thousand: ',' },\n 'ar-SA': { decimal: '.', thousand: ',' },\n}\n\nfunction createLocaleConfig(locale: SupportedLocale): LocaleConfig {\n const localeInfo = locales[locale]\n const currencyInfo = currencies[localeInfo.defaultCurrency] as Currency\n\n return {\n locale,\n currency: localeInfo.defaultCurrency as CurrencyCode,\n currencySymbol: currencyInfo?.symbol || '$',\n dateFormat: dateFormats.short[locale],\n timeFormat: timeFormats.short[locale],\n numberFormat: numberFormats[locale],\n translations: defaultTranslations[locale] || defaultTranslations['en-US'],\n rtl: localeInfo.rtl,\n }\n}\n\nconst defaultLocaleConfigs: Record<SupportedLocale, LocaleConfig> = {\n 'en-US': createLocaleConfig('en-US'),\n 'en-GB': createLocaleConfig('en-GB'),\n 'tr-TR': createLocaleConfig('tr-TR'),\n 'de-DE': createLocaleConfig('de-DE'),\n 'fr-FR': createLocaleConfig('fr-FR'),\n 'es-ES': createLocaleConfig('es-ES'),\n 'it-IT': createLocaleConfig('it-IT'),\n 'pt-BR': createLocaleConfig('pt-BR'),\n 'nl-NL': createLocaleConfig('nl-NL'),\n 'pl-PL': createLocaleConfig('pl-PL'),\n 'ru-RU': createLocaleConfig('ru-RU'),\n 'ja-JP': createLocaleConfig('ja-JP'),\n 'zh-CN': createLocaleConfig('zh-CN'),\n 'ko-KR': createLocaleConfig('ko-KR'),\n 'ar-SA': createLocaleConfig('ar-SA'),\n}\n\ninterface LocaleContextValue {\n config: LocaleConfig\n setLocale: (locale: SupportedLocale) => void\n setCurrency: (currencyCode: CurrencyCode) => void\n setDateFormat: (format: string) => void\n setTimeFormat: (format: string) => void\n updateTranslations: (translations: Record<string, string>) => void\n updateConfig: (config: Partial<LocaleConfig>) => void\n formatNumber: (value: number) => string\n formatCurrency: (value: number, currencyCode?: CurrencyCode) => string\n t: (key: string, params?: Record<string, string | number>) => string\n}\n\nconst LocaleContext = React.createContext<LocaleContextValue | undefined>(undefined)\n\nexport interface LocaleProviderProps {\n children: React.ReactNode\n defaultLocale?: SupportedLocale\n config?: Partial<LocaleConfig>\n translations?: Record<string, string>\n}\n\nexport function LocaleProvider({\n children,\n defaultLocale = 'en-US',\n config: customConfig,\n translations: customTranslations,\n}: LocaleProviderProps) {\n const [config, setConfig] = React.useState<LocaleConfig>(() => {\n const baseConfig = defaultLocaleConfigs[defaultLocale] || defaultLocaleConfigs['en-US']\n return {\n ...baseConfig,\n ...customConfig,\n translations: {\n ...baseConfig.translations,\n ...customTranslations,\n },\n }\n })\n\n const setLocale = React.useCallback((locale: SupportedLocale) => {\n const baseConfig = defaultLocaleConfigs[locale] || defaultLocaleConfigs['en-US']\n setConfig((prev) => ({\n ...baseConfig,\n translations: {\n ...baseConfig.translations,\n ...prev.translations,\n },\n }))\n }, [])\n\n const setCurrency = React.useCallback((currencyCode: CurrencyCode) => {\n const currencyInfo = currencies[currencyCode]\n if (currencyInfo) {\n setConfig((prev) => ({\n ...prev,\n currency: currencyCode,\n currencySymbol: currencyInfo.symbol,\n }))\n }\n }, [])\n\n const setDateFormat = React.useCallback((format: string) => {\n setConfig((prev) => ({\n ...prev,\n dateFormat: format,\n }))\n }, [])\n\n const setTimeFormat = React.useCallback((format: string) => {\n setConfig((prev) => ({\n ...prev,\n timeFormat: format,\n }))\n }, [])\n\n const updateTranslations = React.useCallback((translations: Record<string, string>) => {\n setConfig((prev) => ({\n ...prev,\n translations: {\n ...prev.translations,\n ...translations,\n },\n }))\n }, [])\n\n const updateConfig = React.useCallback((newConfig: Partial<LocaleConfig>) => {\n setConfig((prev) => ({\n ...prev,\n ...newConfig,\n translations: {\n ...prev.translations,\n ...newConfig.translations,\n },\n }))\n }, [])\n\n const formatNumber = React.useCallback(\n (value: number): string => {\n const { decimal, thousand } = config.numberFormat\n const parts = value.toFixed(2).split('.')\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousand)\n return parts.join(decimal)\n },\n [config.numberFormat]\n )\n\n const formatCurrency = React.useCallback(\n (value: number, currencyCode?: CurrencyCode): string => {\n const code = currencyCode || config.currency\n const currencyInfo = currencies[code]\n if (!currencyInfo) {\n return formatNumber(value)\n }\n\n const decimals = currencyInfo.decimals ?? 2\n const { decimal, thousand } = config.numberFormat\n const parts = value.toFixed(decimals).split('.')\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousand)\n const formattedValue = decimals > 0 ? parts.join(decimal) : parts[0]\n\n if (currencyInfo.position === 'before') {\n return `${currencyInfo.symbol}${formattedValue}`\n }\n return `${formattedValue} ${currencyInfo.symbol}`\n },\n [config.currency, config.numberFormat, formatNumber]\n )\n\n const t = React.useCallback(\n (key: string, params?: Record<string, string | number>): string => {\n let translation = config.translations[key] || key\n if (params) {\n Object.entries(params).forEach(([paramKey, paramValue]) => {\n translation = translation.replace(`{${paramKey}}`, String(paramValue))\n })\n }\n return translation\n },\n [config.translations]\n )\n\n const value = React.useMemo(\n () => ({\n config,\n setLocale,\n setCurrency,\n setDateFormat,\n setTimeFormat,\n updateTranslations,\n updateConfig,\n formatNumber,\n formatCurrency,\n t,\n }),\n [config, setLocale, setCurrency, setDateFormat, setTimeFormat, updateTranslations, updateConfig, formatNumber, formatCurrency, t]\n )\n\n return <LocaleContext.Provider value={value}>{children}</LocaleContext.Provider>\n}\n\nexport function useLocale() {\n const context = React.useContext(LocaleContext)\n if (context === undefined) {\n const defaultConfig = defaultLocaleConfigs['en-US']\n return {\n config: defaultConfig,\n setLocale: () => {},\n setCurrency: () => {},\n setDateFormat: () => {},\n setTimeFormat: () => {},\n updateTranslations: () => {},\n updateConfig: () => {},\n formatNumber: (value: number) => value.toLocaleString('en-US'),\n formatCurrency: (value: number) => `$${value.toLocaleString('en-US', { minimumFractionDigits: 2 })}`,\n t: (key: string) => key,\n }\n }\n return context\n}\n\nexport { LocaleContext, defaultLocaleConfigs, defaultTranslations }\nexport type { SupportedLocale, CurrencyCode }\n"],"names":["dateFormats","timeFormats","locales","getDateFormat","locale","type","getTimeFormat","getLocaleInfo","getAllLocales","getSupportedLocaleCodes","isRTLLocale","currencies","getCurrency","code","formatCurrency","amount","currencyCode","currency","decimals","formattedAmount","getAllCurrencies","getCurrencyCodes","defaultTranslations","numberFormats","createLocaleConfig","localeInfo","currencyInfo","defaultLocaleConfigs","LocaleContext","React","LocaleProvider","children","defaultLocale","customConfig","customTranslations","config","setConfig","baseConfig","setLocale","prev","setCurrency","setDateFormat","format","setTimeFormat","updateTranslations","translations","updateConfig","newConfig","formatNumber","value","decimal","thousand","parts","formattedValue","t","key","params","translation","paramKey","paramValue","jsx","useLocale","context"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const e=require("react/jsx-runtime"),P=require("react"),S=require("./scroll-area-DYOiJMXh.cjs"),k=require("./index-lGzB9daF.cjs"),T=require("./calendar-BUm7YrNf.cjs"),p=require("./popover-ivh-plLc.cjs"),z=require("./use-formatters-d97RVcmg.cjs"),ue=require("./calendar-SwL5isYC.cjs"),O=require("./input-CZrckPLk.cjs"),me=require("./index-CzVK9Zyb.cjs"),W=require("./createLucideIcon-i5GEhNMV.cjs"),Oe=require("./file-V_hhCUhr.cjs"),re=require("./chevron-up-B9fuiZhc.cjs"),X=require("./chevron-down-DHdXqOqK.cjs"),Be=require("./minus-BXBFZSZs.cjs"),Ee=require("./plus-8wKRkVu-.cjs"),J=require("./avatar-C0aVNCG9.cjs"),Te=require("./chevron-right-Dvyd11q0.cjs"),U=require("./locale-provider-DHMwuneF.cjs");function Ue(t){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const s in t)if(s!=="default"){const r=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(n,s,r.get?r:{enumerable:!0,get:()=>t[s]})}}return n.default=t,Object.freeze(n)}const N=Ue(P);const Z=W.createLucideIcon("ChevronsUpDown",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);const He=W.createLucideIcon("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);const $e=W.createLucideIcon("Pipette",[["path",{d:"m2 22 1-1h3l9-9",key:"1sre89"}],["path",{d:"M3 21v-3l9-9",key:"hpe2y6"}],["path",{d:"m15 6 3.4-3.4a2.1 2.1 0 1 1 3 3L18 9l.4.4a2.1 2.1 0 1 1-3 3l-3.8-3.8a2.1 2.1 0 1 1 3-3l.4.4Z",key:"196du1"}]]);const ze=W.createLucideIcon("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);var qe=t=>t.type==="checkbox",$=t=>t instanceof Date,ee=t=>t==null;const fe=t=>typeof t=="object";var H=t=>!ee(t)&&!Array.isArray(t)&&fe(t)&&!$(t),Ge=t=>H(t)&&t.target?qe(t.target)?t.target.checked:t.target.value:t,Ke=t=>t.substring(0,t.search(/\.\d+(\.|$)/))||t,Xe=(t,n)=>t.has(Ke(n)),We=t=>{const n=t.constructor&&t.constructor.prototype;return H(n)&&n.hasOwnProperty("isPrototypeOf")},Je=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function he(t){if(t instanceof Date)return new Date(t);const n=typeof FileList<"u"&&t instanceof FileList;if(Je&&(t instanceof Blob||n))return t;const s=Array.isArray(t);if(!s&&!(H(t)&&We(t)))return t;const r=s?[]:Object.create(Object.getPrototypeOf(t));for(const a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=he(t[a]));return r}var pe=t=>/^\w*$/.test(t),Q=t=>t===void 0,Ye=t=>Array.isArray(t)?t.filter(Boolean):[],xe=t=>Ye(t.replace(/["|']|\]/g,"").split(/\.|\[/)),_=(t,n,s)=>{if(!n||!H(t))return s;const r=(pe(n)?[n]:xe(n)).reduce((a,c)=>ee(a)?a:a[c],t);return Q(r)||r===t?Q(t[n])?s:t[n]:r},Y=t=>typeof t=="boolean",G=t=>typeof t=="function",ae=(t,n,s)=>{let r=-1;const a=pe(n)?[n]:xe(n),c=a.length,d=c-1;for(;++r<c;){const u=a[r];let y=s;if(r!==d){const g=t[u];y=H(g)||Array.isArray(g)?g:isNaN(+a[r+1])?{}:[]}if(u==="__proto__"||u==="constructor"||u==="prototype")return;t[u]=y,t=t[u]}};const oe={BLUR:"blur",CHANGE:"change"},le={all:"all"},te=P.createContext(null);te.displayName="HookFormControlContext";const se=()=>P.useContext(te);var Qe=(t,n,s,r=!0)=>{const a={defaultValues:n._defaultValues};for(const c in t)Object.defineProperty(a,c,{get:()=>{const d=c;return n._proxyFormState[d]!==le.all&&(n._proxyFormState[d]=!r||le.all),s&&(s[d]=!0),t[d]}});return a};const ge=typeof window<"u"?P.useLayoutEffect:P.useEffect;function Ze(t){const n=se(),{control:s=n,disabled:r,name:a,exact:c}=t||{},[d,u]=P.useState(s._formState),y=P.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,validatingFields:!1,isValidating:!1,isValid:!1,errors:!1});return ge(()=>s._subscribe({name:a,formState:y.current,exact:c,callback:g=>{!r&&u({...s._formState,...g})}}),[a,r,c]),P.useEffect(()=>{y.current.isValid&&s._setValid(!0)},[s]),P.useMemo(()=>Qe(d,s,y.current,!1),[d,s])}var et=t=>typeof t=="string",ce=(t,n,s,r,a)=>et(t)?_(s,t,a):Array.isArray(t)?t.map(c=>_(s,c)):s,ie=t=>ee(t)||!fe(t);function K(t,n,s=new WeakSet){if(ie(t)||ie(n))return Object.is(t,n);if($(t)&&$(n))return Object.is(t.getTime(),n.getTime());const r=Object.keys(t),a=Object.keys(n);if(r.length!==a.length)return!1;if(s.has(t)||s.has(n))return!0;s.add(t),s.add(n);for(const c of r){const d=t[c];if(!a.includes(c))return!1;if(c!=="ref"){const u=n[c];if($(d)&&$(u)||H(d)&&H(u)||Array.isArray(d)&&Array.isArray(u)?!K(d,u,s):!Object.is(d,u))return!1}}return!0}function tt(t){const n=se(),{control:s=n,name:r,defaultValue:a,disabled:c,exact:d,compute:u}=t||{},y=P.useRef(a),g=P.useRef(u),v=P.useRef(void 0),h=P.useRef(s),i=P.useRef(r);g.current=u;const[x,m]=P.useState(()=>{const o=s._getWatch(r,y.current);return g.current?g.current(o):o}),f=P.useCallback(o=>{const w=ce(r,s._names,o||s._formValues,!1,y.current);return g.current?g.current(w):w},[s._formValues,s._names,r]),j=P.useCallback(o=>{if(!c){const w=ce(r,s._names,o||s._formValues,!1,y.current);if(g.current){const M=g.current(w);K(M,v.current)||(m(M),v.current=M)}else m(w)}},[s._formValues,s._names,c,r]);ge(()=>((h.current!==s||!K(i.current,r))&&(h.current=s,i.current=r,j()),s._subscribe({name:r,formState:{values:!0},exact:d,callback:o=>{j(o.values)}})),[s,d,r,j]),P.useEffect(()=>s._removeUnmounted());const C=h.current!==s,l=i.current,F=P.useMemo(()=>{if(c)return null;const o=!C&&!K(l,r);return C||o?f():null},[c,C,r,l,f]);return F!==null?F:x}function st(t){const n=se(),{name:s,disabled:r,control:a=n,shouldUnregister:c,defaultValue:d,exact:u=!0}=t,y=Xe(a._names.array,s),g=P.useMemo(()=>_(a._formValues,s,_(a._defaultValues,s,d)),[a,s,d]),v=tt({control:a,name:s,defaultValue:g,exact:u}),h=Ze({control:a,name:s,exact:u}),i=P.useRef(t),x=P.useRef(void 0),m=P.useRef(a.register(s,{...t.rules,value:v,...Y(t.disabled)?{disabled:t.disabled}:{}}));i.current=t;const f=P.useMemo(()=>Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!_(h.errors,s)},isDirty:{enumerable:!0,get:()=>!!_(h.dirtyFields,s)},isTouched:{enumerable:!0,get:()=>!!_(h.touchedFields,s)},isValidating:{enumerable:!0,get:()=>!!_(h.validatingFields,s)},error:{enumerable:!0,get:()=>_(h.errors,s)}}),[h,s]),j=P.useCallback(o=>m.current.onChange({target:{value:Ge(o),name:s},type:oe.CHANGE}),[s]),C=P.useCallback(()=>m.current.onBlur({target:{value:_(a._formValues,s),name:s},type:oe.BLUR}),[s,a._formValues]),l=P.useCallback(o=>{const w=_(a._fields,s);w&&w._f&&o&&(w._f.ref={focus:()=>G(o.focus)&&o.focus(),select:()=>G(o.select)&&o.select(),setCustomValidity:M=>G(o.setCustomValidity)&&o.setCustomValidity(M),reportValidity:()=>G(o.reportValidity)&&o.reportValidity()})},[a._fields,s]),F=P.useMemo(()=>({name:s,value:v,...Y(r)||h.disabled?{disabled:h.disabled||r}:{},onChange:j,onBlur:C,ref:l}),[s,r,h.disabled,j,C,l,v]);return P.useEffect(()=>{const o=a._options.shouldUnregister||c,w=x.current;w&&w!==s&&!y&&a.unregister(w),a.register(s,{...i.current.rules,...Y(i.current.disabled)?{disabled:i.current.disabled}:{}});const M=(L,A)=>{const D=_(a._fields,L);D&&D._f&&(D._f.mount=A)};if(M(s,!0),o){const L=he(_(a._options.defaultValues,s,i.current.defaultValue));ae(a._defaultValues,s,L),Q(_(a._formValues,s))&&ae(a._formValues,s,L)}return!y&&a.register(s),x.current=s,()=>{(y?o&&!a._state.action:o)?a.unregister(s):M(s,!1)}},[s,a,y,c]),P.useEffect(()=>{a._setDisabledField({disabled:r,name:s})},[r,s,a]),P.useMemo(()=>({field:F,formState:h,fieldState:f}),[F,h,f])}const nt=t=>t.render(st(t)),ne=P.createContext(null);ne.displayName="HookFormContext";const rt=()=>P.useContext(ne),at=t=>{const{children:n,watch:s,getValues:r,getFieldState:a,setError:c,clearErrors:d,setValue:u,trigger:y,formState:g,resetField:v,reset:h,handleSubmit:i,unregister:x,control:m,register:f,setFocus:j,subscribe:C}=t;return P.createElement(ne.Provider,{value:P.useMemo(()=>({watch:s,getValues:r,getFieldState:a,setError:c,clearErrors:d,setValue:u,trigger:y,formState:g,resetField:v,reset:h,handleSubmit:i,unregister:x,control:m,register:f,setFocus:j,subscribe:C}),[d,m,g,a,r,i,f,h,v,c,j,u,C,y,x,s])},P.createElement(te.Provider,{value:m},n))},ot=at,je=N.createContext({}),lt=({...t})=>e.jsx(je.Provider,{value:{name:t.name},children:e.jsx(nt,{...t})}),q=()=>{const t=N.useContext(je),n=N.useContext(Ne),{getFieldState:s,formState:r}=rt(),a=s(t.name,r);if(!t)throw new Error("useFormField should be used within <FormField>");const{id:c}=n;return{id:c,name:t.name,formItemId:`${c}-form-item`,formDescriptionId:`${c}-form-item-description`,formMessageId:`${c}-form-item-message`,...a}},Ne=N.createContext({}),ye=N.forwardRef(({className:t,...n},s)=>{const r=N.useId();return e.jsx(Ne.Provider,{value:{id:r},children:e.jsx("div",{ref:s,className:k.cn("space-y-2",t),...n})})});ye.displayName="FormItem";const Ce=N.forwardRef(({className:t,...n},s)=>{const{error:r,formItemId:a}=q();return e.jsx(T.Label,{ref:s,className:k.cn(r&&"text-destructive",t),htmlFor:a,...n})});Ce.displayName="FormLabel";const be=N.forwardRef(({...t},n)=>{const{error:s,formItemId:r,formDescriptionId:a,formMessageId:c}=q();return e.jsx(S.Slot,{ref:n,id:r,"aria-describedby":s?`${a} ${c}`:`${a}`,"aria-invalid":!!s,...t})});be.displayName="FormControl";const ve=N.forwardRef(({className:t,...n},s)=>{const{formDescriptionId:r}=q();return e.jsx("p",{ref:s,id:r,className:k.cn("text-sm text-muted-foreground",t),...n})});ve.displayName="FormDescription";const we=N.forwardRef(({className:t,children:n,...s},r)=>{const{error:a,formMessageId:c}=q(),d=a?String(a?.message):n;return d?e.jsx("p",{ref:r,id:c,className:k.cn("text-sm font-medium text-destructive",t),...s,children:d}):null});we.displayName="FormMessage";function ct({value:t,onChange:n,placeholder:s,disabled:r=!1,className:a,dateFormat:c="PPP"}){const{t:d,formatDate:u}=z.useFormatters(),y=s||d("date.selectDate");return e.jsxs(p.Popover,{children:[e.jsx(p.PopoverTrigger,{asChild:!0,children:e.jsxs(S.Button,{variant:"outline",disabled:r,className:k.cn("w-full justify-start text-left font-normal",!t&&"text-muted-foreground",a),children:[e.jsx(ue.Calendar,{className:"mr-2 h-4 w-4"}),t?u(t,c):e.jsx("span",{children:y})]})}),e.jsx(p.PopoverContent,{className:"w-auto p-0",align:"start",children:e.jsx(T.Calendar,{mode:"single",selected:t,onSelect:n,initialFocus:!0})})]})}const Se=N.forwardRef(({value:t,onChange:n,placeholder:s="Pick a date range",disabled:r=!1,className:a,dateFormat:c="LLL dd, y",numberOfMonths:d=2},u)=>e.jsx("div",{className:k.cn("grid gap-2",a),children:e.jsxs(p.Popover,{children:[e.jsx(p.PopoverTrigger,{asChild:!0,children:e.jsxs(S.Button,{ref:u,id:"date",variant:"outline",disabled:r,className:k.cn("w-full justify-start text-left font-normal",!t&&"text-muted-foreground"),children:[e.jsx(ue.Calendar,{className:"mr-2 h-4 w-4"}),t?.from?t.to?e.jsxs(e.Fragment,{children:[z.format(t.from,c)," - ",z.format(t.to,c)]}):z.format(t.from,c):e.jsx("span",{children:s})]})}),e.jsx(p.PopoverContent,{className:"w-auto p-0",align:"start",children:e.jsx(T.Calendar,{initialFocus:!0,mode:"range",defaultMonth:t?.from,selected:t,onSelect:n,numberOfMonths:d})})]})}));Se.displayName="DateRangePicker";const ke=N.forwardRef(({className:t,value:n,onChange:s,onSearch:r,onClear:a,showClearButton:c=!0,loading:d=!1,placeholder:u="Search...",...y},g)=>{const v=x=>{s?.(x.target.value)},h=()=>{s?.(""),a?.()},i=x=>{x.key==="Enter"&&r?.(n||"")};return e.jsxs("div",{className:k.cn("relative",t),children:[e.jsx(me.Search,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),e.jsx(O.Input,{ref:g,type:"text",value:n,onChange:v,onKeyDown:i,placeholder:u,className:k.cn("pl-9",c&&n&&"pr-9"),...y}),c&&n&&!d&&e.jsxs(S.Button,{type:"button",variant:"ghost",size:"icon",className:"absolute right-1 top-1/2 h-7 w-7 -translate-y-1/2",onClick:h,children:[e.jsx(S.X,{className:"h-4 w-4"}),e.jsx("span",{className:"sr-only",children:"Clear"})]}),d&&e.jsx("div",{className:"absolute right-3 top-1/2 -translate-y-1/2",children:e.jsx("div",{className:"h-4 w-4 animate-spin rounded-full border-2 border-muted-foreground border-t-transparent"})})]})});ke.displayName="SearchInput";const Pe=N.forwardRef(({value:t=[],onChange:n,accept:s,multiple:r=!1,maxFiles:a=10,maxSize:c=10*1024*1024,disabled:d=!1,className:u},y)=>{const g=N.useRef(null),[v,h]=N.useState(!1),i=l=>{if(!l)return;const o=Array.from(l).filter(M=>!(M.size>c)),w=r?[...t,...o].slice(0,a):o.slice(0,1);n?.(w)},x=l=>{l.preventDefault(),l.stopPropagation(),l.type==="dragenter"||l.type==="dragover"?h(!0):l.type==="dragleave"&&h(!1)},m=l=>{l.preventDefault(),l.stopPropagation(),h(!1),d||i(l.dataTransfer.files)},f=l=>{i(l.target.files)},j=l=>{const F=t.filter((o,w)=>w!==l);n?.(F)},C=l=>{if(l===0)return"0 Bytes";const F=1024,o=["Bytes","KB","MB","GB"],w=Math.floor(Math.log(l)/Math.log(F));return parseFloat((l/Math.pow(F,w)).toFixed(2))+" "+o[w]};return e.jsxs("div",{ref:y,className:k.cn("space-y-4",u),children:[e.jsxs("div",{className:k.cn("relative flex flex-col items-center justify-center rounded-lg border-2 border-dashed p-6 transition-colors",v?"border-primary bg-primary/5":"border-muted-foreground/25",d&&"cursor-not-allowed opacity-50"),onDragEnter:x,onDragLeave:x,onDragOver:x,onDrop:m,children:[e.jsx("input",{ref:g,type:"file",accept:s,multiple:r,disabled:d,onChange:f,className:"absolute inset-0 cursor-pointer opacity-0"}),e.jsx(ze,{className:"mb-2 h-10 w-10 text-muted-foreground"}),e.jsx("p",{className:"mb-1 text-sm font-medium",children:"Drag & drop files here, or click to select"}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:[r?`Up to ${a} files`:"Single file"," (max"," ",C(c)," each)"]})]}),t.length>0&&e.jsx("div",{className:"space-y-2",children:t.map((l,F)=>e.jsxs("div",{className:"flex items-center justify-between rounded-lg border p-3",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(Oe.File,{className:"h-8 w-8 text-muted-foreground"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:l.name}),e.jsx("p",{className:"text-xs text-muted-foreground",children:C(l.size)})]})]}),e.jsx(S.Button,{type:"button",variant:"ghost",size:"icon",onClick:()=>j(F),disabled:d,children:e.jsx(S.X,{className:"h-4 w-4"})})]},`${l.name}-${F}`))})]})});Pe.displayName="FileUpload";const Fe=N.forwardRef(({options:t,value:n,onChange:s,placeholder:r="Select option...",searchPlaceholder:a="Search...",emptyMessage:c="No results found.",disabled:d=!1,className:u},y)=>{const[g,v]=N.useState(!1),h=t.find(i=>i.value===n);return e.jsxs(p.Popover,{open:g,onOpenChange:v,children:[e.jsx(p.PopoverTrigger,{asChild:!0,children:e.jsxs(S.Button,{ref:y,variant:"outline",role:"combobox","aria-expanded":g,disabled:d,className:k.cn("w-full justify-between",!n&&"text-muted-foreground",u),children:[h?h.label:r,e.jsx(Z,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),e.jsx(p.PopoverContent,{className:"w-full p-0",align:"start",children:e.jsxs(p.Command,{children:[e.jsx(p.CommandInput,{placeholder:a}),e.jsxs(p.CommandList,{children:[e.jsx(p.CommandEmpty,{children:c}),e.jsx(p.CommandGroup,{children:t.map(i=>e.jsxs(p.CommandItem,{value:i.value,disabled:i.disabled,onSelect:x=>{s?.(x===n?"":x),v(!1)},children:[e.jsx(S.Check,{className:k.cn("mr-2 h-4 w-4",n===i.value?"opacity-100":"opacity-0")}),i.label]},i.value))})]})]})})]})});Fe.displayName="Combobox";const Ie=N.forwardRef(({value:t=[],onChange:n,placeholder:s="Add tag...",maxTags:r=10,allowDuplicates:a=!1,disabled:c=!1,className:d},u)=>{const[y,g]=N.useState(""),v=N.useRef(null),h=m=>{const f=m.trim();f&&(t.length>=r||!a&&t.includes(f)||(n?.([...t,f]),g("")))},i=m=>{const f=t.filter((j,C)=>C!==m);n?.(f)},x=m=>{m.key==="Enter"?(m.preventDefault(),h(y)):m.key==="Backspace"&&!y&&t.length>0?i(t.length-1):m.key===","&&(m.preventDefault(),h(y))};return e.jsxs("div",{ref:u,className:k.cn("flex min-h-10 w-full flex-wrap items-center gap-2 rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2",c&&"cursor-not-allowed opacity-50",d),onClick:()=>v.current?.focus(),children:[t.map((m,f)=>e.jsxs(S.Badge,{variant:"secondary",className:"gap-1",children:[m,!c&&e.jsx("button",{type:"button",onClick:j=>{j.stopPropagation(),i(f)},className:"ml-1 rounded-full outline-none ring-offset-background focus:ring-2 focus:ring-ring focus:ring-offset-2",children:e.jsx(S.X,{className:"h-3 w-3"})})]},`${m}-${f}`)),e.jsx(O.Input,{ref:v,type:"text",value:y,onChange:m=>g(m.target.value),onKeyDown:x,placeholder:t.length===0?s:"",disabled:c||t.length>=r,className:"flex-1 border-0 bg-transparent p-0 placeholder:text-muted-foreground focus-visible:ring-0 focus-visible:ring-offset-0"})]})});Ie.displayName="TagInput";const De=N.forwardRef(({value:t,onChange:n,format:s="24h",minuteStep:r=1,placeholder:a,disabled:c=!1,className:d,error:u},y)=>{const{t:g}=z.useFormatters(),[v,h]=N.useState(!1),[i,x]=N.useState(0),[m,f]=N.useState(0),[j,C]=N.useState("AM");N.useEffect(()=>{if(t){const[R,b]=t.split(":").map(Number);s==="12h"?(x(R>12?R-12:R===0?12:R),C(R>=12?"PM":"AM")):x(R),f(b)}},[t,s]);const l=(R,b,I)=>{let V=R;if(s==="12h"){const E=I??j;E==="PM"&&V!==12&&(V+=12),E==="AM"&&V===12&&(V=0)}const B=`${V.toString().padStart(2,"0")}:${b.toString().padStart(2,"0")}`;n?.(B)},F=()=>{const R=s==="12h"?12:23,b=s==="12h"?1:0,I=i>=R?b:i+1;x(I),l(I,m)},o=()=>{const R=s==="12h"?12:23,I=i<=(s==="12h"?1:0)?R:i-1;x(I),l(I,m)},w=()=>{const R=m>=60-r,b=R?0:m+r;let I=i,V=j;if(R){const B=s==="12h"?12:23,E=s==="12h"?1:0;I=i>=B?E:i+1,s==="12h"&&i===11&&(V=j==="AM"?"PM":"AM",C(V)),x(I)}f(b),l(I,b,s==="12h"?V:void 0)},M=()=>{const R=m<r,b=R?60-r:m-r;let I=i,V=j;if(R){const B=s==="12h"?12:23;I=i<=(s==="12h"?1:0)?B:i-1,s==="12h"&&i===12&&(V=j==="AM"?"PM":"AM",C(V)),x(I)}f(b),l(I,b,s==="12h"?V:void 0)},L=()=>{const R=j==="AM"?"PM":"AM";C(R),l(i,m,R)},A=N.useMemo(()=>t?s==="12h"?`${i.toString().padStart(2,"0")}:${m.toString().padStart(2,"0")} ${j}`:`${i.toString().padStart(2,"0")}:${m.toString().padStart(2,"0")}`:"",[t,s,i,m,j]),D=a||g("time.selectTime");return e.jsxs(p.Popover,{open:v,onOpenChange:h,children:[e.jsx(p.PopoverTrigger,{asChild:!0,children:e.jsxs("div",{className:k.cn("relative",d),children:[e.jsx(O.Input,{ref:y,readOnly:!0,value:A,placeholder:D,disabled:c,className:k.cn("pr-10 cursor-pointer",u&&"border-destructive"),onClick:()=>!c&&h(!0)}),e.jsx(T.Clock,{className:"absolute right-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"})]})}),e.jsx(p.PopoverContent,{className:"w-auto p-4",align:"start",children:e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsxs("div",{className:"flex flex-col items-center gap-1",children:[e.jsx(T.Label,{className:"text-xs text-muted-foreground",children:g("time.hours")}),e.jsxs("div",{className:"flex flex-col items-center",children:[e.jsx(S.Button,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:F,children:e.jsx(re.ChevronUp,{className:"h-4 w-4"})}),e.jsx("span",{className:"text-2xl font-bold tabular-nums",children:i.toString().padStart(2,"0")}),e.jsx(S.Button,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:o,children:e.jsx(X.ChevronDown,{className:"h-4 w-4"})})]})]}),e.jsx("span",{className:"text-2xl font-bold",children:":"}),e.jsxs("div",{className:"flex flex-col items-center gap-1",children:[e.jsx(T.Label,{className:"text-xs text-muted-foreground",children:g("time.minutes")}),e.jsxs("div",{className:"flex flex-col items-center",children:[e.jsx(S.Button,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:w,children:e.jsx(re.ChevronUp,{className:"h-4 w-4"})}),e.jsx("span",{className:"text-2xl font-bold tabular-nums",children:m.toString().padStart(2,"0")}),e.jsx(S.Button,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:M,children:e.jsx(X.ChevronDown,{className:"h-4 w-4"})})]})]}),s==="12h"&&e.jsxs("div",{className:"flex flex-col items-center gap-1",children:[e.jsx(T.Label,{className:"text-xs text-muted-foreground",children:g("time.period")}),e.jsx(S.Button,{variant:"outline",className:"h-auto px-3 py-2 text-lg font-bold",onClick:L,children:j})]})]})})]})});De.displayName="TimePicker";const it=["#000000","#ffffff","#ef4444","#f97316","#f59e0b","#eab308","#84cc16","#22c55e","#10b981","#14b8a6","#06b6d4","#0ea5e9","#3b82f6","#6366f1","#8b5cf6","#a855f7","#d946ef","#ec4899","#f43f5e","#78716c","#737373","#71717a","#6b7280","#64748b"],Re=N.forwardRef(({value:t="#000000",onChange:n,presetColors:s=it,showInput:r=!0,showEyeDropper:a=!0,placeholder:c="Select color",disabled:d=!1,className:u},y)=>{const[g,v]=N.useState(!1),[h,i]=N.useState(t),x=typeof window<"u"&&"EyeDropper"in window;N.useEffect(()=>{i(t)},[t]);const m=C=>{i(C),n?.(C)},f=C=>{const l=C.target.value;i(l),/^#[0-9A-Fa-f]{6}$/.test(l)&&n?.(l)},j=async()=>{if(x)try{const l=await new window.EyeDropper().open();m(l.sRGBHex)}catch{}};return e.jsxs(p.Popover,{open:g,onOpenChange:v,children:[e.jsx(p.PopoverTrigger,{asChild:!0,children:e.jsxs(S.Button,{ref:y,variant:"outline",disabled:d,className:k.cn("w-full justify-start gap-2",u),children:[e.jsx("div",{className:"h-5 w-5 rounded border",style:{backgroundColor:h}}),e.jsx("span",{className:"flex-1 text-left font-mono text-sm",children:h||c})]})}),e.jsx(p.PopoverContent,{className:"w-64 p-3",align:"start",children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"h-10 w-10 rounded-lg border",style:{backgroundColor:h}}),e.jsxs("div",{className:"flex-1",children:[e.jsx(T.Label,{className:"text-xs text-muted-foreground",children:"Current Color"}),e.jsx("p",{className:"font-mono text-sm font-medium",children:h})]}),a&&x&&e.jsx(S.Button,{variant:"outline",size:"icon",onClick:j,title:"Pick color from screen",children:e.jsx($e,{className:"h-4 w-4"})})]}),e.jsx("div",{className:"grid grid-cols-6 gap-1",children:s.map(C=>e.jsx("button",{className:k.cn("h-7 w-7 rounded-md border-2 transition-transform hover:scale-110",h.toLowerCase()===C.toLowerCase()?"border-primary":"border-transparent"),style:{backgroundColor:C},onClick:()=>m(C),title:C},C))}),r&&e.jsxs("div",{className:"flex gap-2",children:[e.jsx(O.Input,{type:"text",value:h,onChange:f,placeholder:"#000000",className:"font-mono",maxLength:7}),e.jsx("input",{type:"color",value:h,onChange:C=>m(C.target.value),className:"h-10 w-10 cursor-pointer rounded border bg-transparent p-1"})]})]})})]})});Re.displayName="ColorPicker";const Me=N.forwardRef(({options:t,value:n=[],onChange:s,placeholder:r="Select items...",searchPlaceholder:a="Search...",emptyMessage:c="No items found.",maxDisplayedItems:d=3,maxSelections:u,disabled:y=!1,className:g},v)=>{const[h,i]=N.useState(!1),x=t.filter(l=>n.includes(l.value)),m=u!==void 0&&n.length>=u,f=l=>{n.includes(l)?s?.(n.filter(F=>F!==l)):m||s?.([...n,l])},j=(l,F)=>{F.stopPropagation(),s?.(n.filter(o=>o!==l))},C=l=>{l.stopPropagation(),s?.([])};return e.jsxs(p.Popover,{open:h,onOpenChange:i,children:[e.jsx(p.PopoverTrigger,{asChild:!0,children:e.jsxs(S.Button,{ref:v,variant:"outline",role:"combobox","aria-expanded":h,disabled:y,className:k.cn("w-full justify-between font-normal",x.length===0&&"text-muted-foreground",g),children:[e.jsx("div",{className:"flex flex-1 flex-wrap items-center gap-1",children:x.length===0?r:x.length<=d?x.map(l=>e.jsxs(S.Badge,{variant:"secondary",className:"gap-1 pr-1",children:[l.label,e.jsx("button",{className:"rounded-full hover:bg-muted-foreground/20",onClick:F=>j(l.value,F),children:e.jsx(S.X,{className:"h-3 w-3"})})]},l.value)):e.jsxs(e.Fragment,{children:[x.slice(0,d).map(l=>e.jsxs(S.Badge,{variant:"secondary",className:"gap-1 pr-1",children:[l.label,e.jsx("button",{className:"rounded-full hover:bg-muted-foreground/20",onClick:F=>j(l.value,F),children:e.jsx(S.X,{className:"h-3 w-3"})})]},l.value)),e.jsxs(S.Badge,{variant:"secondary",children:["+",x.length-d]})]})}),e.jsxs("div",{className:"flex items-center gap-1",children:[x.length>0&&e.jsx("button",{className:"rounded p-0.5 hover:bg-muted",onClick:C,children:e.jsx(S.X,{className:"h-4 w-4 text-muted-foreground"})}),e.jsx(X.ChevronDown,{className:"h-4 w-4 shrink-0 opacity-50"})]})]})}),e.jsx(p.PopoverContent,{className:"w-[var(--radix-popover-trigger-width)] p-0",align:"start",children:e.jsxs(p.Command,{children:[e.jsx(p.CommandInput,{placeholder:a}),e.jsxs(p.CommandList,{children:[e.jsx(p.CommandEmpty,{children:c}),e.jsx(p.CommandGroup,{children:t.map(l=>{const F=n.includes(l.value),o=l.disabled||m&&!F;return e.jsxs(p.CommandItem,{value:l.value,disabled:o,onSelect:()=>f(l.value),className:"flex items-center gap-2",children:[e.jsx("div",{className:k.cn("flex h-4 w-4 items-center justify-center rounded border",n.includes(l.value)?"border-primary bg-primary text-primary-foreground":"border-muted-foreground/30"),children:n.includes(l.value)&&e.jsx(S.Check,{className:"h-3 w-3"})}),l.icon&&e.jsx("span",{className:"h-4 w-4",children:l.icon}),e.jsx("span",{children:l.label})]},l.value)})})]})]})})]})});Me.displayName="MultiSelect";const dt=S.cva("relative flex",{variants:{size:{sm:"w-24",md:"w-32",lg:"w-40"}},defaultVariants:{size:"md"}}),de={sm:"h-8 w-8",md:"h-10 w-10",lg:"h-12 w-12"},ut={sm:"h-8 text-sm",md:"h-10 text-base",lg:"h-12 text-lg"},Ve=N.forwardRef(({className:t,value:n,onChange:s,min:r,max:a,step:c=1,precision:d=0,showStepper:u=!0,prefix:y,suffix:g,disabled:v,size:h="md",...i},x)=>{const[m,f]=N.useState(n?.toString()??"");N.useEffect(()=>{f(n?.toString()??"")},[n]);const j=A=>{let D=A;return r!==void 0&&(D=Math.max(r,D)),a!==void 0&&(D=Math.min(a,D)),Number(D.toFixed(d))},C=A=>{const D=A.target.value;if(f(D),D===""||D==="-"){s?.(void 0);return}const R=parseFloat(D);isNaN(R)||s?.(j(R))},l=()=>{if(m===""||m==="-"){f(""),s?.(void 0);return}const A=parseFloat(m);if(!isNaN(A)){const D=j(A);f(D.toString()),s?.(D)}},F=()=>{const D=j((n??0)+c);f(D.toString()),s?.(D)},o=()=>{const D=j((n??0)-c);f(D.toString()),s?.(D)},w=a===void 0||(n??0)<a,M=r===void 0||(n??0)>r,L=h||"md";return e.jsxs("div",{className:k.cn(dt({size:h}),t),children:[u&&e.jsx(S.Button,{type:"button",variant:"outline",size:"icon",className:k.cn("rounded-r-none",de[L]),onClick:o,disabled:v||!M,children:e.jsx(Be.Minus,{className:k.cn(L==="sm"?"h-3 w-3":"h-4 w-4")})}),e.jsxs("div",{className:"relative flex-1",children:[y&&e.jsx("span",{className:k.cn("absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground",L==="sm"&&"text-sm",L==="lg"&&"text-lg"),children:y}),e.jsx(O.Input,{ref:x,type:"text",inputMode:"decimal",value:m,onChange:C,onBlur:l,disabled:v,className:k.cn("text-center",ut[L],u&&"rounded-none border-x-0",y&&"pl-8",g&&"pr-8"),...i}),g&&e.jsx("span",{className:k.cn("absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground",L==="sm"&&"text-sm",L==="lg"&&"text-lg"),children:g})]}),u&&e.jsx(S.Button,{type:"button",variant:"outline",size:"icon",className:k.cn("rounded-l-none",de[L]),onClick:F,disabled:v||!w,children:e.jsx(Ee.Plus,{className:k.cn(L==="sm"?"h-3 w-3":"h-4 w-4")})})]})});Ve.displayName="NumberInput";const Le=[{code:"US",dialCode:"+1",name:"United States",flag:"🇺🇸"},{code:"GB",dialCode:"+44",name:"United Kingdom",flag:"🇬🇧"},{code:"DE",dialCode:"+49",name:"Germany",flag:"🇩🇪"},{code:"FR",dialCode:"+33",name:"France",flag:"🇫🇷"},{code:"IT",dialCode:"+39",name:"Italy",flag:"🇮🇹"},{code:"ES",dialCode:"+34",name:"Spain",flag:"🇪🇸"},{code:"TR",dialCode:"+90",name:"Turkey",flag:"🇹🇷"},{code:"NL",dialCode:"+31",name:"Netherlands",flag:"🇳🇱"},{code:"BE",dialCode:"+32",name:"Belgium",flag:"🇧🇪"},{code:"AT",dialCode:"+43",name:"Austria",flag:"🇦🇹"},{code:"CH",dialCode:"+41",name:"Switzerland",flag:"🇨🇭"},{code:"PL",dialCode:"+48",name:"Poland",flag:"🇵🇱"},{code:"SE",dialCode:"+46",name:"Sweden",flag:"🇸🇪"},{code:"NO",dialCode:"+47",name:"Norway",flag:"🇳🇴"},{code:"DK",dialCode:"+45",name:"Denmark",flag:"🇩🇰"},{code:"FI",dialCode:"+358",name:"Finland",flag:"🇫🇮"},{code:"PT",dialCode:"+351",name:"Portugal",flag:"🇵🇹"},{code:"GR",dialCode:"+30",name:"Greece",flag:"🇬🇷"},{code:"CZ",dialCode:"+420",name:"Czech Republic",flag:"🇨🇿"},{code:"RO",dialCode:"+40",name:"Romania",flag:"🇷🇴"},{code:"HU",dialCode:"+36",name:"Hungary",flag:"🇭🇺"},{code:"IE",dialCode:"+353",name:"Ireland",flag:"🇮🇪"},{code:"AU",dialCode:"+61",name:"Australia",flag:"🇦🇺"},{code:"CA",dialCode:"+1",name:"Canada",flag:"🇨🇦"},{code:"BR",dialCode:"+55",name:"Brazil",flag:"🇧🇷"},{code:"MX",dialCode:"+52",name:"Mexico",flag:"🇲🇽"},{code:"JP",dialCode:"+81",name:"Japan",flag:"🇯🇵"},{code:"CN",dialCode:"+86",name:"China",flag:"🇨🇳"},{code:"IN",dialCode:"+91",name:"India",flag:"🇮🇳"},{code:"RU",dialCode:"+7",name:"Russia",flag:"🇷🇺"}],Ae=N.forwardRef(({value:t,onChange:n,defaultCountry:s="US",countries:r=Le,placeholder:a="Phone number",disabled:c=!1,className:d,error:u},y)=>{const[g,v]=N.useState(r.find(f=>f.code===s)||r[0]),[h,i]=N.useState("");N.useEffect(()=>{if(t){const f=r.find(j=>t.startsWith(j.dialCode));f?(v(f),i(t.slice(f.dialCode.length).trim())):i(t)}},[t,r]);const x=f=>{v(f);const j=`${f.dialCode} ${h}`.trim();n?.(j,f)},m=f=>{const j=f.target.value.replace(/[^\d\s\-()]/g,"");i(j);const C=`${g.dialCode} ${j}`.trim();n?.(C,g)};return e.jsxs("div",{className:k.cn("flex",d),children:[e.jsxs(O.DropdownMenu,{children:[e.jsx(O.DropdownMenuTrigger,{asChild:!0,children:e.jsxs(S.Button,{variant:"outline",disabled:c,className:k.cn("flex shrink-0 items-center gap-1 rounded-r-none border-r-0 px-3",u&&"border-destructive"),children:[e.jsx("span",{className:"text-base",children:g.flag}),e.jsx("span",{className:"text-sm text-muted-foreground",children:g.dialCode}),e.jsx(X.ChevronDown,{className:"h-4 w-4 opacity-50"})]})}),e.jsx(O.DropdownMenuContent,{className:"max-h-64 overflow-y-auto",children:r.map(f=>e.jsxs(O.DropdownMenuItem,{onClick:()=>x(f),className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-base",children:f.flag}),e.jsx("span",{className:"flex-1",children:f.name}),e.jsx("span",{className:"text-sm text-muted-foreground",children:f.dialCode})]},f.code))})]}),e.jsx(O.Input,{ref:y,type:"tel",value:h,onChange:m,placeholder:a,disabled:c,className:k.cn("rounded-l-none",u&&"border-destructive")})]})});Ae.displayName="PhoneInput";const _e=N.forwardRef(({value:t,onChange:n,onSearch:s,placeholder:r="Select...",dialogTitle:a="Search",searchPlaceholder:c="Type to search...",emptyMessage:d="No results found",multiple:u=!1,disabled:y=!1,className:g,renderItem:v},h)=>{const[i,x]=N.useState(!1),[m,f]=N.useState(""),[j,C]=N.useState([]),[l,F]=N.useState(!1),o=N.useRef(null),w=N.useMemo(()=>t?Array.isArray(t)?t:[t]:[],[t]),M=N.useCallback(async b=>{if(f(b),o.current&&clearTimeout(o.current),!b.trim()){C([]);return}o.current=setTimeout(async()=>{F(!0);try{const I=await s(b);C(I)}catch{C([])}finally{F(!1)}},300)},[s]),L=b=>{if(u){const I=w,B=I.some(E=>E.id===b.id)?I.filter(E=>E.id!==b.id):[...I,b];n?.(B.length>0?B:void 0)}else n?.(b),x(!1)},A=(b,I)=>{if(I.stopPropagation(),u){const V=w.filter(B=>B.id!==b);n?.(V.length>0?V:void 0)}else n?.(void 0)},D=b=>{b.stopPropagation(),n?.(void 0)},R=b=>e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs(J.Avatar,{className:"h-8 w-8",children:[b.avatar&&e.jsx(J.AvatarImage,{src:b.avatar}),e.jsx(J.AvatarFallback,{className:"text-xs",children:b.label.split(" ").map(I=>I[0]).join("").toUpperCase().slice(0,2)})]}),e.jsxs("div",{className:"flex flex-1 flex-col",children:[e.jsx("span",{className:"font-medium",children:b.label}),b.description&&e.jsx("span",{className:"text-xs text-muted-foreground",children:b.description})]}),b.badges&&b.badges.length>0&&e.jsx("div",{className:"flex gap-1",children:b.badges.map((I,V)=>e.jsx(S.Badge,{variant:"secondary",className:"text-xs",children:I},V))})]});return e.jsxs(p.Dialog,{open:i,onOpenChange:x,children:[e.jsx(p.DialogTrigger,{asChild:!0,children:e.jsxs(S.Button,{ref:h,variant:"outline",role:"combobox",disabled:y,className:k.cn("w-full justify-between font-normal",w.length===0&&"text-muted-foreground",g),children:[e.jsx("div",{className:"flex flex-1 flex-wrap items-center gap-1 overflow-hidden",children:w.length===0?e.jsx("span",{children:r}):u?w.map(b=>e.jsxs(S.Badge,{variant:"secondary",className:"gap-1 pr-1",children:[b.label,e.jsx("button",{className:"rounded-full hover:bg-muted-foreground/20",onClick:I=>A(b.id,I),children:e.jsx(S.X,{className:"h-3 w-3"})})]},b.id)):e.jsx("span",{className:"truncate",children:w[0].label})}),e.jsxs("div",{className:"flex items-center gap-1",children:[w.length>0&&!u&&e.jsx("button",{className:"rounded p-0.5 hover:bg-muted",onClick:D,children:e.jsx(S.X,{className:"h-4 w-4 text-muted-foreground"})}),e.jsx(Te.ChevronRight,{className:"h-4 w-4 shrink-0 opacity-50"})]})]})}),e.jsxs(p.DialogContent,{className:"max-w-lg",children:[e.jsx(p.DialogHeader,{children:e.jsx(p.DialogTitle,{children:a})}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"relative",children:[e.jsx(me.Search,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),e.jsx(O.Input,{placeholder:c,value:m,onChange:b=>M(b.target.value),className:"pl-10",autoFocus:!0})]}),e.jsx(S.ScrollArea,{className:"h-64",children:l?e.jsx("div",{className:"flex items-center justify-center py-8",children:e.jsx(p.LoaderCircle,{className:"h-6 w-6 animate-spin text-muted-foreground"})}):j.length===0?e.jsx("div",{className:"py-8 text-center text-sm text-muted-foreground",children:m?d:"Start typing to search..."}):e.jsx("div",{className:"space-y-1",children:j.map(b=>{const I=w.some(V=>V.id===b.id);return e.jsx("button",{onClick:()=>L(b),className:k.cn("w-full rounded-md p-2 text-left transition-colors hover:bg-accent",I&&"bg-accent"),children:v?v(b):R(b)},b.id)})})})]})]})]})});_e.displayName="LookupField";const mt=["USD","EUR","GBP","TRY","JPY","CNY"];function ft({value:t,onChange:n,placeholder:s,searchPlaceholder:r,emptyMessage:a,disabled:c=!1,className:d,showSymbol:u=!0,showCode:y=!0,showName:g=!0,popularCurrencies:v=mt}){const[h,i]=N.useState(!1),{t:x}=U.useLocale(),m=U.getAllCurrencies(),f=t?U.currencies[t]:void 0,j=v.map(o=>U.currencies[o]).filter(Boolean),C=m.filter(o=>!v.includes(o.code)),F=f?(o=>{const w=[];return u&&w.push(o.symbol),y&&w.push(o.code),g&&w.push(`- ${o.name}`),w.join(" ")})(f):s||x("locale.selectCurrency");return e.jsxs(p.Popover,{open:h,onOpenChange:i,children:[e.jsx(p.PopoverTrigger,{asChild:!0,children:e.jsxs(S.Button,{variant:"outline",role:"combobox","aria-expanded":h,disabled:c,className:k.cn("w-full justify-between",!t&&"text-muted-foreground",d),children:[e.jsx("span",{className:"truncate",children:F}),e.jsx(Z,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),e.jsx(p.PopoverContent,{className:"w-[300px] p-0",align:"start",children:e.jsxs(p.Command,{children:[e.jsx(p.CommandInput,{placeholder:r||x("common.search"),className:"h-9"}),e.jsxs(p.CommandList,{children:[e.jsx(p.CommandEmpty,{children:a||x("common.noData")}),j.length>0&&e.jsx(p.CommandGroup,{heading:"Popular",children:j.map(o=>e.jsxs(p.CommandItem,{value:`${o.code} ${o.name}`,onSelect:()=>{n?.(o.code),i(!1)},children:[e.jsx(S.Check,{className:k.cn("mr-2 h-4 w-4",t===o.code?"opacity-100":"opacity-0")}),e.jsx("span",{className:"w-8 font-medium",children:o.symbol}),e.jsx("span",{className:"w-12 text-muted-foreground",children:o.code}),e.jsx("span",{className:"truncate",children:o.name})]},o.code))}),e.jsx(p.CommandGroup,{heading:"All Currencies",children:C.map(o=>e.jsxs(p.CommandItem,{value:`${o.code} ${o.name}`,onSelect:()=>{n?.(o.code),i(!1)},children:[e.jsx(S.Check,{className:k.cn("mr-2 h-4 w-4",t===o.code?"opacity-100":"opacity-0")}),e.jsx("span",{className:"w-8 font-medium",children:o.symbol}),e.jsx("span",{className:"w-12 text-muted-foreground",children:o.code}),e.jsx("span",{className:"truncate",children:o.name})]},o.code))})]})]})})]})}function ht({value:t,onChange:n,placeholder:s,searchPlaceholder:r,emptyMessage:a,disabled:c=!1,className:d,showFlag:u=!0,showNativeName:y=!0,showCode:g=!1,variant:v="default"}){const[h,i]=N.useState(!1),{t:x,config:m}=U.useLocale(),f=U.getAllLocales(),j=t?U.getLocaleInfo(t):void 0,C=t||m.locale,F=j?((o,w=!1)=>{if(v==="icon-only"&&w)return u?o.flag:e.jsx(He,{className:"h-4 w-4"});if(v==="compact"&&w)return e.jsxs("span",{className:"flex items-center gap-1.5",children:[u&&e.jsx("span",{children:o.flag}),e.jsx("span",{children:o.code.split("-")[0].toUpperCase()})]});const M=[];return u&&M.push(e.jsx("span",{className:"mr-1.5",children:o.flag},"flag")),y&&M.push(e.jsx("span",{children:o.nativeName},"native")),g&&M.push(e.jsxs("span",{className:"text-muted-foreground ml-1",children:["(",o.code,")"]},"code")),e.jsx("span",{className:"flex items-center",children:M})})(j,!0):s||x("locale.selectLanguage");return e.jsxs(p.Popover,{open:h,onOpenChange:i,children:[e.jsx(p.PopoverTrigger,{asChild:!0,children:e.jsxs(S.Button,{variant:"outline",role:"combobox","aria-expanded":h,disabled:c,className:k.cn("justify-between",v==="icon-only"?"w-10 px-0":v==="compact"?"w-auto":"w-full",!t&&"text-muted-foreground",d),children:[e.jsx("span",{className:k.cn("truncate",v==="icon-only"&&"text-lg"),children:F}),v!=="icon-only"&&e.jsx(Z,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),e.jsx(p.PopoverContent,{className:"w-[280px] p-0",align:"start",children:e.jsxs(p.Command,{children:[e.jsx(p.CommandInput,{placeholder:r||x("common.search"),className:"h-9"}),e.jsxs(p.CommandList,{children:[e.jsx(p.CommandEmpty,{children:a||x("common.noData")}),e.jsx(p.CommandGroup,{children:f.map(o=>e.jsxs(p.CommandItem,{value:`${o.code} ${o.name} ${o.nativeName}`,onSelect:()=>{n?.(o.code),i(!1)},children:[e.jsx(S.Check,{className:k.cn("mr-2 h-4 w-4",C===o.code?"opacity-100":"opacity-0")}),e.jsx("span",{className:"mr-2 text-lg",children:o.flag}),e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"font-medium",children:o.nativeName}),e.jsx("span",{className:"text-xs text-muted-foreground",children:o.name})]})]},o.code))})]})]})})]})}exports.ColorPicker=Re;exports.Combobox=Fe;exports.CurrencySelector=ft;exports.DEFAULT_COUNTRIES=Le;exports.DatePicker=ct;exports.DateRangePicker=Se;exports.FileUpload=Pe;exports.Form=ot;exports.FormControl=be;exports.FormDescription=ve;exports.FormField=lt;exports.FormItem=ye;exports.FormLabel=Ce;exports.FormMessage=we;exports.LocaleSelector=ht;exports.LookupField=_e;exports.MultiSelect=Me;exports.NumberInput=Ve;exports.PhoneInput=Ae;exports.SearchInput=ke;exports.TagInput=Ie;exports.TimePicker=De;exports.useFormField=q;
|
|
2
|
+
//# sourceMappingURL=locale-selector-Ppe0KTi-.cjs.map
|