@exyconn/common 2.1.0 → 2.3.2

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.
Files changed (122) hide show
  1. package/README.md +864 -261
  2. package/dist/client/hooks/index.d.mts +1042 -0
  3. package/dist/client/hooks/index.d.ts +1042 -0
  4. package/dist/client/hooks/index.js +2276 -0
  5. package/dist/client/hooks/index.js.map +1 -0
  6. package/dist/client/hooks/index.mjs +2217 -0
  7. package/dist/client/hooks/index.mjs.map +1 -0
  8. package/dist/client/index.d.mts +3 -1
  9. package/dist/client/index.d.ts +3 -1
  10. package/dist/client/web/index.d.mts +1461 -0
  11. package/dist/client/web/index.d.ts +1461 -0
  12. package/dist/client/web/index.js +2681 -0
  13. package/dist/client/web/index.js.map +1 -0
  14. package/dist/client/web/index.mjs +2618 -0
  15. package/dist/client/web/index.mjs.map +1 -0
  16. package/dist/data/brand-identity.d.mts +149 -0
  17. package/dist/data/brand-identity.d.ts +149 -0
  18. package/dist/data/brand-identity.js +235 -0
  19. package/dist/data/brand-identity.js.map +1 -0
  20. package/dist/data/brand-identity.mjs +220 -0
  21. package/dist/data/brand-identity.mjs.map +1 -0
  22. package/dist/data/countries.d.mts +61 -0
  23. package/dist/data/countries.d.ts +61 -0
  24. package/dist/data/countries.js +987 -0
  25. package/dist/data/countries.js.map +1 -0
  26. package/dist/data/countries.mjs +971 -0
  27. package/dist/data/countries.mjs.map +1 -0
  28. package/dist/data/currencies.d.mts +19 -0
  29. package/dist/data/currencies.d.ts +19 -0
  30. package/dist/data/currencies.js +162 -0
  31. package/dist/data/currencies.js.map +1 -0
  32. package/dist/data/currencies.mjs +153 -0
  33. package/dist/data/currencies.mjs.map +1 -0
  34. package/dist/data/index.d.mts +7 -0
  35. package/dist/data/index.d.ts +7 -0
  36. package/dist/data/index.js +2087 -0
  37. package/dist/data/index.js.map +1 -0
  38. package/dist/data/index.mjs +1948 -0
  39. package/dist/data/index.mjs.map +1 -0
  40. package/dist/data/phone-codes.d.mts +15 -0
  41. package/dist/data/phone-codes.d.ts +15 -0
  42. package/dist/data/phone-codes.js +219 -0
  43. package/dist/data/phone-codes.js.map +1 -0
  44. package/dist/data/phone-codes.mjs +211 -0
  45. package/dist/data/phone-codes.mjs.map +1 -0
  46. package/dist/data/regex.d.mts +287 -0
  47. package/dist/data/regex.d.ts +287 -0
  48. package/dist/data/regex.js +306 -0
  49. package/dist/data/regex.js.map +1 -0
  50. package/dist/data/regex.mjs +208 -0
  51. package/dist/data/regex.mjs.map +1 -0
  52. package/dist/data/timezones.d.mts +16 -0
  53. package/dist/data/timezones.d.ts +16 -0
  54. package/dist/data/timezones.js +98 -0
  55. package/dist/data/timezones.js.map +1 -0
  56. package/dist/data/timezones.mjs +89 -0
  57. package/dist/data/timezones.mjs.map +1 -0
  58. package/dist/index-01hoqibP.d.ts +119 -0
  59. package/dist/index-D3yCCjBZ.d.mts +119 -0
  60. package/dist/index-D9a9oxQy.d.ts +305 -0
  61. package/dist/index-DKn4raO7.d.ts +222 -0
  62. package/dist/index-DuxL84IW.d.mts +305 -0
  63. package/dist/index-NS8dS0p9.d.mts +222 -0
  64. package/dist/index-Nqm5_lwT.d.ts +188 -0
  65. package/dist/index-jBi3V6e5.d.mts +188 -0
  66. package/dist/index.d.mts +20 -579
  67. package/dist/index.d.ts +20 -579
  68. package/dist/index.js +717 -18
  69. package/dist/index.js.map +1 -1
  70. package/dist/index.mjs +716 -18
  71. package/dist/index.mjs.map +1 -1
  72. package/dist/server/configs/index.d.mts +602 -0
  73. package/dist/server/configs/index.d.ts +602 -0
  74. package/dist/server/configs/index.js +707 -0
  75. package/dist/server/configs/index.js.map +1 -0
  76. package/dist/server/configs/index.mjs +665 -0
  77. package/dist/server/configs/index.mjs.map +1 -0
  78. package/dist/server/index.d.mts +3 -0
  79. package/dist/server/index.d.ts +3 -0
  80. package/dist/server/index.js +699 -0
  81. package/dist/server/index.js.map +1 -1
  82. package/dist/server/index.mjs +662 -1
  83. package/dist/server/index.mjs.map +1 -1
  84. package/dist/shared/config/index.d.mts +40 -0
  85. package/dist/shared/config/index.d.ts +40 -0
  86. package/dist/shared/config/index.js +58 -0
  87. package/dist/shared/config/index.js.map +1 -0
  88. package/dist/shared/config/index.mjs +51 -0
  89. package/dist/shared/config/index.mjs.map +1 -0
  90. package/dist/shared/constants/index.d.mts +593 -0
  91. package/dist/shared/constants/index.d.ts +593 -0
  92. package/dist/shared/constants/index.js +391 -0
  93. package/dist/shared/constants/index.js.map +1 -0
  94. package/dist/shared/constants/index.mjs +360 -0
  95. package/dist/shared/constants/index.mjs.map +1 -0
  96. package/dist/shared/index.d.mts +5 -1
  97. package/dist/shared/index.d.ts +5 -1
  98. package/dist/shared/types/index.d.mts +140 -0
  99. package/dist/shared/types/index.d.ts +140 -0
  100. package/dist/shared/types/index.js +4 -0
  101. package/dist/shared/types/index.js.map +1 -0
  102. package/dist/shared/types/index.mjs +3 -0
  103. package/dist/shared/types/index.mjs.map +1 -0
  104. package/dist/shared/utils/index.d.mts +255 -0
  105. package/dist/shared/utils/index.d.ts +255 -0
  106. package/dist/shared/utils/index.js +623 -0
  107. package/dist/shared/utils/index.js.map +1 -0
  108. package/dist/shared/utils/index.mjs +324 -0
  109. package/dist/shared/utils/index.mjs.map +1 -0
  110. package/dist/shared/validation/index.d.mts +258 -0
  111. package/dist/shared/validation/index.d.ts +258 -0
  112. package/dist/shared/validation/index.js +185 -0
  113. package/dist/shared/validation/index.js.map +1 -0
  114. package/dist/shared/validation/index.mjs +172 -0
  115. package/dist/shared/validation/index.mjs.map +1 -0
  116. package/package.json +127 -62
  117. package/dist/index-BcxL4_V4.d.ts +0 -2946
  118. package/dist/index-DEzgM15j.d.ts +0 -67
  119. package/dist/index-DNFVgQx8.d.ts +0 -1375
  120. package/dist/index-DbV04Dx8.d.mts +0 -67
  121. package/dist/index-DfqEP6Oe.d.mts +0 -1375
  122. package/dist/index-bvvCev9Q.d.mts +0 -2946
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/data/countries.ts","../../src/data/phone-codes.ts","../../src/data/currencies.ts","../../src/data/timezones.ts","../../src/data/regex.ts","../../src/data/logos.ts","../../src/data/brand-identity.ts"],"names":["getBrandByDomain","getAllBrands","getLogo"],"mappings":"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","file":"index.mjs","sourcesContent":["/**\r\n * Country with nested cities data\r\n */\r\nexport interface City {\r\n name: string;\r\n stateCode?: string;\r\n}\r\n\r\nexport interface State {\r\n name: string;\r\n code: string;\r\n cities: City[];\r\n}\r\n\r\nexport interface Country {\r\n name: string;\r\n code: string; // ISO 3166-1 alpha-2\r\n code3: string; // ISO 3166-1 alpha-3\r\n flag?: string; // Emoji flag (auto-generated if not provided)\r\n phoneCode: string;\r\n currency: string;\r\n currencySymbol: string;\r\n continent: string;\r\n capital: string;\r\n timezone: string;\r\n states: State[];\r\n}\r\n\r\n/**\r\n * Convert country code to emoji flag\r\n * @param countryCode - ISO 3166-1 alpha-2 country code\r\n * @returns Emoji flag string\r\n */\r\nexport const codeToFlag = (countryCode: string): string => {\r\n const codePoints = countryCode\r\n .toUpperCase()\r\n .split('')\r\n .map((char) => 127397 + char.charCodeAt(0));\r\n return String.fromCodePoint(...codePoints);\r\n};\r\n\r\nexport const countries: Country[] = [\r\n {\r\n name: 'Afghanistan',\r\n code: 'AF',\r\n code3: 'AFG',\r\n flag: '🇦🇫',\r\n phoneCode: '+93',\r\n currency: 'AFN',\r\n currencySymbol: '؋',\r\n continent: 'Asia',\r\n capital: 'Kabul',\r\n timezone: 'Asia/Kabul',\r\n states: [\r\n { name: 'Kabul', code: 'KBL', cities: [{ name: 'Kabul' }] },\r\n { name: 'Kandahar', code: 'KDH', cities: [{ name: 'Kandahar' }] },\r\n { name: 'Herat', code: 'HER', cities: [{ name: 'Herat' }] },\r\n ],\r\n },\r\n {\r\n name: 'Albania',\r\n code: 'AL',\r\n code3: 'ALB',\r\n flag: '🇦🇱',\r\n phoneCode: '+355',\r\n currency: 'ALL',\r\n currencySymbol: 'L',\r\n continent: 'Europe',\r\n capital: 'Tirana',\r\n timezone: 'Europe/Tirane',\r\n states: [\r\n { name: 'Tirana', code: 'TR', cities: [{ name: 'Tirana' }] },\r\n { name: 'Durrës', code: 'DR', cities: [{ name: 'Durrës' }] },\r\n ],\r\n },\r\n {\r\n name: 'Algeria',\r\n code: 'DZ',\r\n code3: 'DZA',\r\n flag: '🇩🇿',\r\n phoneCode: '+213',\r\n currency: 'DZD',\r\n currencySymbol: 'د.ج',\r\n continent: 'Africa',\r\n capital: 'Algiers',\r\n timezone: 'Africa/Algiers',\r\n states: [\r\n { name: 'Algiers', code: 'ALG', cities: [{ name: 'Algiers' }] },\r\n { name: 'Oran', code: 'ORA', cities: [{ name: 'Oran' }] },\r\n ],\r\n },\r\n {\r\n name: 'Argentina',\r\n code: 'AR',\r\n code3: 'ARG',\r\n flag: '🇦🇷',\r\n phoneCode: '+54',\r\n currency: 'ARS',\r\n currencySymbol: '$',\r\n continent: 'South America',\r\n capital: 'Buenos Aires',\r\n timezone: 'America/Argentina/Buenos_Aires',\r\n states: [\r\n { name: 'Buenos Aires', code: 'BA', cities: [{ name: 'Buenos Aires' }, { name: 'La Plata' }] },\r\n { name: 'Córdoba', code: 'CO', cities: [{ name: 'Córdoba' }] },\r\n { name: 'Santa Fe', code: 'SF', cities: [{ name: 'Rosario' }, { name: 'Santa Fe' }] },\r\n ],\r\n },\r\n {\r\n name: 'Australia',\r\n code: 'AU',\r\n code3: 'AUS',\r\n flag: '🇦🇺',\r\n phoneCode: '+61',\r\n currency: 'AUD',\r\n currencySymbol: '$',\r\n continent: 'Oceania',\r\n capital: 'Canberra',\r\n timezone: 'Australia/Sydney',\r\n states: [\r\n { name: 'New South Wales', code: 'NSW', cities: [{ name: 'Sydney' }, { name: 'Newcastle' }, { name: 'Wollongong' }] },\r\n { name: 'Victoria', code: 'VIC', cities: [{ name: 'Melbourne' }, { name: 'Geelong' }] },\r\n { name: 'Queensland', code: 'QLD', cities: [{ name: 'Brisbane' }, { name: 'Gold Coast' }, { name: 'Cairns' }] },\r\n { name: 'Western Australia', code: 'WA', cities: [{ name: 'Perth' }, { name: 'Fremantle' }] },\r\n { name: 'South Australia', code: 'SA', cities: [{ name: 'Adelaide' }] },\r\n { name: 'Tasmania', code: 'TAS', cities: [{ name: 'Hobart' }, { name: 'Launceston' }] },\r\n { name: 'Australian Capital Territory', code: 'ACT', cities: [{ name: 'Canberra' }] },\r\n { name: 'Northern Territory', code: 'NT', cities: [{ name: 'Darwin' }] },\r\n ],\r\n },\r\n {\r\n name: 'Austria',\r\n code: 'AT',\r\n code3: 'AUT',\r\n flag: '🇦🇹',\r\n phoneCode: '+43',\r\n currency: 'EUR',\r\n currencySymbol: '€',\r\n continent: 'Europe',\r\n capital: 'Vienna',\r\n timezone: 'Europe/Vienna',\r\n states: [\r\n { name: 'Vienna', code: 'VIE', cities: [{ name: 'Vienna' }] },\r\n { name: 'Salzburg', code: 'SBG', cities: [{ name: 'Salzburg' }] },\r\n { name: 'Tyrol', code: 'TYR', cities: [{ name: 'Innsbruck' }] },\r\n ],\r\n },\r\n {\r\n name: 'Bangladesh',\r\n code: 'BD',\r\n code3: 'BGD',\r\n flag: '🇧🇩',\r\n phoneCode: '+880',\r\n currency: 'BDT',\r\n currencySymbol: '৳',\r\n continent: 'Asia',\r\n capital: 'Dhaka',\r\n timezone: 'Asia/Dhaka',\r\n states: [\r\n { name: 'Dhaka', code: 'DHA', cities: [{ name: 'Dhaka' }, { name: 'Gazipur' }, { name: 'Narayanganj' }] },\r\n { name: 'Chittagong', code: 'CTG', cities: [{ name: 'Chittagong' }, { name: \"Cox's Bazar\" }] },\r\n { name: 'Khulna', code: 'KHL', cities: [{ name: 'Khulna' }] },\r\n { name: 'Rajshahi', code: 'RAJ', cities: [{ name: 'Rajshahi' }] },\r\n { name: 'Sylhet', code: 'SYL', cities: [{ name: 'Sylhet' }] },\r\n ],\r\n },\r\n {\r\n name: 'Belgium',\r\n code: 'BE',\r\n code3: 'BEL',\r\n flag: '🇧🇪',\r\n phoneCode: '+32',\r\n currency: 'EUR',\r\n currencySymbol: '€',\r\n continent: 'Europe',\r\n capital: 'Brussels',\r\n timezone: 'Europe/Brussels',\r\n states: [\r\n { name: 'Brussels', code: 'BRU', cities: [{ name: 'Brussels' }] },\r\n { name: 'Flanders', code: 'FLA', cities: [{ name: 'Antwerp' }, { name: 'Ghent' }, { name: 'Bruges' }] },\r\n { name: 'Wallonia', code: 'WAL', cities: [{ name: 'Liège' }, { name: 'Charleroi' }] },\r\n ],\r\n },\r\n {\r\n name: 'Brazil',\r\n code: 'BR',\r\n code3: 'BRA',\r\n flag: '🇧🇷',\r\n phoneCode: '+55',\r\n currency: 'BRL',\r\n currencySymbol: 'R$',\r\n continent: 'South America',\r\n capital: 'Brasília',\r\n timezone: 'America/Sao_Paulo',\r\n states: [\r\n { name: 'São Paulo', code: 'SP', cities: [{ name: 'São Paulo' }, { name: 'Campinas' }, { name: 'Santos' }] },\r\n { name: 'Rio de Janeiro', code: 'RJ', cities: [{ name: 'Rio de Janeiro' }, { name: 'Niterói' }] },\r\n { name: 'Minas Gerais', code: 'MG', cities: [{ name: 'Belo Horizonte' }, { name: 'Uberlândia' }] },\r\n { name: 'Bahia', code: 'BA', cities: [{ name: 'Salvador' }] },\r\n { name: 'Paraná', code: 'PR', cities: [{ name: 'Curitiba' }] },\r\n { name: 'Rio Grande do Sul', code: 'RS', cities: [{ name: 'Porto Alegre' }] },\r\n { name: 'Federal District', code: 'DF', cities: [{ name: 'Brasília' }] },\r\n ],\r\n },\r\n {\r\n name: 'Canada',\r\n code: 'CA',\r\n code3: 'CAN',\r\n flag: '🇨🇦',\r\n phoneCode: '+1',\r\n currency: 'CAD',\r\n currencySymbol: '$',\r\n continent: 'North America',\r\n capital: 'Ottawa',\r\n timezone: 'America/Toronto',\r\n states: [\r\n { name: 'Ontario', code: 'ON', cities: [{ name: 'Toronto' }, { name: 'Ottawa' }, { name: 'Mississauga' }, { name: 'Hamilton' }] },\r\n { name: 'Quebec', code: 'QC', cities: [{ name: 'Montreal' }, { name: 'Quebec City' }, { name: 'Laval' }] },\r\n { name: 'British Columbia', code: 'BC', cities: [{ name: 'Vancouver' }, { name: 'Victoria' }, { name: 'Surrey' }] },\r\n { name: 'Alberta', code: 'AB', cities: [{ name: 'Calgary' }, { name: 'Edmonton' }] },\r\n { name: 'Manitoba', code: 'MB', cities: [{ name: 'Winnipeg' }] },\r\n { name: 'Saskatchewan', code: 'SK', cities: [{ name: 'Saskatoon' }, { name: 'Regina' }] },\r\n { name: 'Nova Scotia', code: 'NS', cities: [{ name: 'Halifax' }] },\r\n { name: 'New Brunswick', code: 'NB', cities: [{ name: 'Moncton' }, { name: 'Saint John' }] },\r\n ],\r\n },\r\n {\r\n name: 'China',\r\n code: 'CN',\r\n code3: 'CHN',\r\n phoneCode: '+86',\r\n currency: 'CNY',\r\n currencySymbol: '¥',\r\n continent: 'Asia',\r\n capital: 'Beijing',\r\n timezone: 'Asia/Shanghai',\r\n states: [\r\n { name: 'Beijing', code: 'BJ', cities: [{ name: 'Beijing' }] },\r\n { name: 'Shanghai', code: 'SH', cities: [{ name: 'Shanghai' }] },\r\n { name: 'Guangdong', code: 'GD', cities: [{ name: 'Guangzhou' }, { name: 'Shenzhen' }, { name: 'Dongguan' }] },\r\n { name: 'Jiangsu', code: 'JS', cities: [{ name: 'Nanjing' }, { name: 'Suzhou' }, { name: 'Wuxi' }] },\r\n { name: 'Zhejiang', code: 'ZJ', cities: [{ name: 'Hangzhou' }, { name: 'Ningbo' }] },\r\n { name: 'Sichuan', code: 'SC', cities: [{ name: 'Chengdu' }, { name: 'Chongqing' }] },\r\n { name: 'Hubei', code: 'HB', cities: [{ name: 'Wuhan' }] },\r\n ],\r\n },\r\n {\r\n name: 'Denmark',\r\n code: 'DK',\r\n code3: 'DNK',\r\n phoneCode: '+45',\r\n currency: 'DKK',\r\n currencySymbol: 'kr',\r\n continent: 'Europe',\r\n capital: 'Copenhagen',\r\n timezone: 'Europe/Copenhagen',\r\n states: [\r\n { name: 'Capital Region', code: 'HO', cities: [{ name: 'Copenhagen' }] },\r\n { name: 'Central Denmark', code: 'MJ', cities: [{ name: 'Aarhus' }] },\r\n { name: 'Southern Denmark', code: 'SD', cities: [{ name: 'Odense' }] },\r\n ],\r\n },\r\n {\r\n name: 'Egypt',\r\n code: 'EG',\r\n code3: 'EGY',\r\n phoneCode: '+20',\r\n currency: 'EGP',\r\n currencySymbol: '£',\r\n continent: 'Africa',\r\n capital: 'Cairo',\r\n timezone: 'Africa/Cairo',\r\n states: [\r\n { name: 'Cairo', code: 'CAI', cities: [{ name: 'Cairo' }, { name: 'Giza' }] },\r\n { name: 'Alexandria', code: 'ALX', cities: [{ name: 'Alexandria' }] },\r\n { name: 'Luxor', code: 'LXR', cities: [{ name: 'Luxor' }] },\r\n ],\r\n },\r\n {\r\n name: 'Finland',\r\n code: 'FI',\r\n code3: 'FIN',\r\n phoneCode: '+358',\r\n currency: 'EUR',\r\n currencySymbol: '€',\r\n continent: 'Europe',\r\n capital: 'Helsinki',\r\n timezone: 'Europe/Helsinki',\r\n states: [\r\n { name: 'Uusimaa', code: 'UUS', cities: [{ name: 'Helsinki' }, { name: 'Espoo' }, { name: 'Vantaa' }] },\r\n { name: 'Pirkanmaa', code: 'PIR', cities: [{ name: 'Tampere' }] },\r\n { name: 'Southwest Finland', code: 'VAR', cities: [{ name: 'Turku' }] },\r\n ],\r\n },\r\n {\r\n name: 'France',\r\n code: 'FR',\r\n code3: 'FRA',\r\n phoneCode: '+33',\r\n currency: 'EUR',\r\n currencySymbol: '€',\r\n continent: 'Europe',\r\n capital: 'Paris',\r\n timezone: 'Europe/Paris',\r\n states: [\r\n { name: 'Île-de-France', code: 'IDF', cities: [{ name: 'Paris' }, { name: 'Versailles' }, { name: 'Boulogne-Billancourt' }] },\r\n { name: 'Provence-Alpes-Côte d\\'Azur', code: 'PAC', cities: [{ name: 'Marseille' }, { name: 'Nice' }, { name: 'Cannes' }] },\r\n { name: 'Auvergne-Rhône-Alpes', code: 'ARA', cities: [{ name: 'Lyon' }, { name: 'Grenoble' }] },\r\n { name: 'Nouvelle-Aquitaine', code: 'NAQ', cities: [{ name: 'Bordeaux' }] },\r\n { name: 'Occitanie', code: 'OCC', cities: [{ name: 'Toulouse' }, { name: 'Montpellier' }] },\r\n ],\r\n },\r\n {\r\n name: 'Germany',\r\n code: 'DE',\r\n code3: 'DEU',\r\n phoneCode: '+49',\r\n currency: 'EUR',\r\n currencySymbol: '€',\r\n continent: 'Europe',\r\n capital: 'Berlin',\r\n timezone: 'Europe/Berlin',\r\n states: [\r\n { name: 'Berlin', code: 'BE', cities: [{ name: 'Berlin' }] },\r\n { name: 'Bavaria', code: 'BY', cities: [{ name: 'Munich' }, { name: 'Nuremberg' }, { name: 'Augsburg' }] },\r\n { name: 'North Rhine-Westphalia', code: 'NW', cities: [{ name: 'Cologne' }, { name: 'Düsseldorf' }, { name: 'Dortmund' }, { name: 'Essen' }] },\r\n { name: 'Baden-Württemberg', code: 'BW', cities: [{ name: 'Stuttgart' }, { name: 'Mannheim' }, { name: 'Karlsruhe' }] },\r\n { name: 'Hesse', code: 'HE', cities: [{ name: 'Frankfurt' }, { name: 'Wiesbaden' }] },\r\n { name: 'Hamburg', code: 'HH', cities: [{ name: 'Hamburg' }] },\r\n { name: 'Saxony', code: 'SN', cities: [{ name: 'Dresden' }, { name: 'Leipzig' }] },\r\n ],\r\n },\r\n {\r\n name: 'Greece',\r\n code: 'GR',\r\n code3: 'GRC',\r\n phoneCode: '+30',\r\n currency: 'EUR',\r\n currencySymbol: '€',\r\n continent: 'Europe',\r\n capital: 'Athens',\r\n timezone: 'Europe/Athens',\r\n states: [\r\n { name: 'Attica', code: 'AT', cities: [{ name: 'Athens' }, { name: 'Piraeus' }] },\r\n { name: 'Central Macedonia', code: 'CM', cities: [{ name: 'Thessaloniki' }] },\r\n { name: 'Crete', code: 'CR', cities: [{ name: 'Heraklion' }, { name: 'Chania' }] },\r\n ],\r\n },\r\n {\r\n name: 'Hong Kong',\r\n code: 'HK',\r\n code3: 'HKG',\r\n phoneCode: '+852',\r\n currency: 'HKD',\r\n currencySymbol: '$',\r\n continent: 'Asia',\r\n capital: 'Hong Kong',\r\n timezone: 'Asia/Hong_Kong',\r\n states: [\r\n { name: 'Hong Kong Island', code: 'HKI', cities: [{ name: 'Central' }, { name: 'Wan Chai' }] },\r\n { name: 'Kowloon', code: 'KLN', cities: [{ name: 'Tsim Sha Tsui' }, { name: 'Mong Kok' }] },\r\n { name: 'New Territories', code: 'NT', cities: [{ name: 'Sha Tin' }, { name: 'Tsuen Wan' }] },\r\n ],\r\n },\r\n {\r\n name: 'India',\r\n code: 'IN',\r\n code3: 'IND',\r\n phoneCode: '+91',\r\n currency: 'INR',\r\n currencySymbol: '₹',\r\n continent: 'Asia',\r\n capital: 'New Delhi',\r\n timezone: 'Asia/Kolkata',\r\n states: [\r\n { name: 'Delhi', code: 'DL', cities: [{ name: 'New Delhi' }, { name: 'Delhi' }] },\r\n { name: 'Maharashtra', code: 'MH', cities: [{ name: 'Mumbai' }, { name: 'Pune' }, { name: 'Nagpur' }, { name: 'Nashik' }] },\r\n { name: 'Karnataka', code: 'KA', cities: [{ name: 'Bangalore' }, { name: 'Mysore' }, { name: 'Mangalore' }] },\r\n { name: 'Tamil Nadu', code: 'TN', cities: [{ name: 'Chennai' }, { name: 'Coimbatore' }, { name: 'Madurai' }] },\r\n { name: 'Telangana', code: 'TG', cities: [{ name: 'Hyderabad' }, { name: 'Warangal' }] },\r\n { name: 'West Bengal', code: 'WB', cities: [{ name: 'Kolkata' }, { name: 'Howrah' }] },\r\n { name: 'Gujarat', code: 'GJ', cities: [{ name: 'Ahmedabad' }, { name: 'Surat' }, { name: 'Vadodara' }] },\r\n { name: 'Rajasthan', code: 'RJ', cities: [{ name: 'Jaipur' }, { name: 'Jodhpur' }, { name: 'Udaipur' }] },\r\n { name: 'Uttar Pradesh', code: 'UP', cities: [{ name: 'Lucknow' }, { name: 'Kanpur' }, { name: 'Varanasi' }, { name: 'Agra' }, { name: 'Noida' }] },\r\n { name: 'Kerala', code: 'KL', cities: [{ name: 'Thiruvananthapuram' }, { name: 'Kochi' }, { name: 'Kozhikode' }] },\r\n { name: 'Punjab', code: 'PB', cities: [{ name: 'Chandigarh' }, { name: 'Ludhiana' }, { name: 'Amritsar' }] },\r\n { name: 'Haryana', code: 'HR', cities: [{ name: 'Gurugram' }, { name: 'Faridabad' }] },\r\n { name: 'Madhya Pradesh', code: 'MP', cities: [{ name: 'Bhopal' }, { name: 'Indore' }] },\r\n { name: 'Bihar', code: 'BR', cities: [{ name: 'Patna' }] },\r\n { name: 'Odisha', code: 'OR', cities: [{ name: 'Bhubaneswar' }] },\r\n { name: 'Goa', code: 'GA', cities: [{ name: 'Panaji' }, { name: 'Margao' }] },\r\n ],\r\n },\r\n {\r\n name: 'Indonesia',\r\n code: 'ID',\r\n code3: 'IDN',\r\n phoneCode: '+62',\r\n currency: 'IDR',\r\n currencySymbol: 'Rp',\r\n continent: 'Asia',\r\n capital: 'Jakarta',\r\n timezone: 'Asia/Jakarta',\r\n states: [\r\n { name: 'Jakarta', code: 'JK', cities: [{ name: 'Jakarta' }] },\r\n { name: 'West Java', code: 'JB', cities: [{ name: 'Bandung' }, { name: 'Bekasi' }] },\r\n { name: 'East Java', code: 'JI', cities: [{ name: 'Surabaya' }, { name: 'Malang' }] },\r\n { name: 'Bali', code: 'BA', cities: [{ name: 'Denpasar' }, { name: 'Ubud' }] },\r\n ],\r\n },\r\n {\r\n name: 'Ireland',\r\n code: 'IE',\r\n code3: 'IRL',\r\n phoneCode: '+353',\r\n currency: 'EUR',\r\n currencySymbol: '€',\r\n continent: 'Europe',\r\n capital: 'Dublin',\r\n timezone: 'Europe/Dublin',\r\n states: [\r\n { name: 'Leinster', code: 'L', cities: [{ name: 'Dublin' }] },\r\n { name: 'Munster', code: 'M', cities: [{ name: 'Cork' }, { name: 'Limerick' }] },\r\n { name: 'Connacht', code: 'C', cities: [{ name: 'Galway' }] },\r\n ],\r\n },\r\n {\r\n name: 'Israel',\r\n code: 'IL',\r\n code3: 'ISR',\r\n phoneCode: '+972',\r\n currency: 'ILS',\r\n currencySymbol: '₪',\r\n continent: 'Asia',\r\n capital: 'Jerusalem',\r\n timezone: 'Asia/Jerusalem',\r\n states: [\r\n { name: 'Tel Aviv', code: 'TA', cities: [{ name: 'Tel Aviv' }] },\r\n { name: 'Jerusalem', code: 'JM', cities: [{ name: 'Jerusalem' }] },\r\n { name: 'Haifa', code: 'HA', cities: [{ name: 'Haifa' }] },\r\n ],\r\n },\r\n {\r\n name: 'Italy',\r\n code: 'IT',\r\n code3: 'ITA',\r\n phoneCode: '+39',\r\n currency: 'EUR',\r\n currencySymbol: '€',\r\n continent: 'Europe',\r\n capital: 'Rome',\r\n timezone: 'Europe/Rome',\r\n states: [\r\n { name: 'Lazio', code: 'LAZ', cities: [{ name: 'Rome' }] },\r\n { name: 'Lombardy', code: 'LOM', cities: [{ name: 'Milan' }, { name: 'Bergamo' }] },\r\n { name: 'Veneto', code: 'VEN', cities: [{ name: 'Venice' }, { name: 'Verona' }, { name: 'Padua' }] },\r\n { name: 'Tuscany', code: 'TOS', cities: [{ name: 'Florence' }, { name: 'Pisa' }, { name: 'Siena' }] },\r\n { name: 'Campania', code: 'CAM', cities: [{ name: 'Naples' }] },\r\n { name: 'Sicily', code: 'SIC', cities: [{ name: 'Palermo' }, { name: 'Catania' }] },\r\n ],\r\n },\r\n {\r\n name: 'Japan',\r\n code: 'JP',\r\n code3: 'JPN',\r\n phoneCode: '+81',\r\n currency: 'JPY',\r\n currencySymbol: '¥',\r\n continent: 'Asia',\r\n capital: 'Tokyo',\r\n timezone: 'Asia/Tokyo',\r\n states: [\r\n { name: 'Tokyo', code: 'TK', cities: [{ name: 'Tokyo' }, { name: 'Shibuya' }, { name: 'Shinjuku' }] },\r\n { name: 'Osaka', code: 'OS', cities: [{ name: 'Osaka' }] },\r\n { name: 'Kyoto', code: 'KY', cities: [{ name: 'Kyoto' }] },\r\n { name: 'Kanagawa', code: 'KN', cities: [{ name: 'Yokohama' }, { name: 'Kawasaki' }] },\r\n { name: 'Aichi', code: 'AI', cities: [{ name: 'Nagoya' }] },\r\n { name: 'Hokkaido', code: 'HK', cities: [{ name: 'Sapporo' }] },\r\n { name: 'Fukuoka', code: 'FK', cities: [{ name: 'Fukuoka' }] },\r\n { name: 'Hiroshima', code: 'HS', cities: [{ name: 'Hiroshima' }] },\r\n ],\r\n },\r\n {\r\n name: 'Malaysia',\r\n code: 'MY',\r\n code3: 'MYS',\r\n phoneCode: '+60',\r\n currency: 'MYR',\r\n currencySymbol: 'RM',\r\n continent: 'Asia',\r\n capital: 'Kuala Lumpur',\r\n timezone: 'Asia/Kuala_Lumpur',\r\n states: [\r\n { name: 'Kuala Lumpur', code: 'KL', cities: [{ name: 'Kuala Lumpur' }] },\r\n { name: 'Selangor', code: 'SL', cities: [{ name: 'Shah Alam' }, { name: 'Petaling Jaya' }] },\r\n { name: 'Penang', code: 'PG', cities: [{ name: 'George Town' }] },\r\n { name: 'Johor', code: 'JH', cities: [{ name: 'Johor Bahru' }] },\r\n ],\r\n },\r\n {\r\n name: 'Mexico',\r\n code: 'MX',\r\n code3: 'MEX',\r\n phoneCode: '+52',\r\n currency: 'MXN',\r\n currencySymbol: '$',\r\n continent: 'North America',\r\n capital: 'Mexico City',\r\n timezone: 'America/Mexico_City',\r\n states: [\r\n { name: 'Mexico City', code: 'CMX', cities: [{ name: 'Mexico City' }] },\r\n { name: 'Jalisco', code: 'JAL', cities: [{ name: 'Guadalajara' }] },\r\n { name: 'Nuevo León', code: 'NLE', cities: [{ name: 'Monterrey' }] },\r\n { name: 'Quintana Roo', code: 'ROO', cities: [{ name: 'Cancún' }, { name: 'Playa del Carmen' }] },\r\n ],\r\n },\r\n {\r\n name: 'Netherlands',\r\n code: 'NL',\r\n code3: 'NLD',\r\n phoneCode: '+31',\r\n currency: 'EUR',\r\n currencySymbol: '€',\r\n continent: 'Europe',\r\n capital: 'Amsterdam',\r\n timezone: 'Europe/Amsterdam',\r\n states: [\r\n { name: 'North Holland', code: 'NH', cities: [{ name: 'Amsterdam' }, { name: 'Haarlem' }] },\r\n { name: 'South Holland', code: 'ZH', cities: [{ name: 'Rotterdam' }, { name: 'The Hague' }, { name: 'Leiden' }] },\r\n { name: 'Utrecht', code: 'UT', cities: [{ name: 'Utrecht' }] },\r\n { name: 'North Brabant', code: 'NB', cities: [{ name: 'Eindhoven' }, { name: 'Tilburg' }] },\r\n ],\r\n },\r\n {\r\n name: 'New Zealand',\r\n code: 'NZ',\r\n code3: 'NZL',\r\n phoneCode: '+64',\r\n currency: 'NZD',\r\n currencySymbol: '$',\r\n continent: 'Oceania',\r\n capital: 'Wellington',\r\n timezone: 'Pacific/Auckland',\r\n states: [\r\n { name: 'Auckland', code: 'AUK', cities: [{ name: 'Auckland' }] },\r\n { name: 'Wellington', code: 'WGN', cities: [{ name: 'Wellington' }] },\r\n { name: 'Canterbury', code: 'CAN', cities: [{ name: 'Christchurch' }] },\r\n { name: 'Otago', code: 'OTA', cities: [{ name: 'Dunedin' }, { name: 'Queenstown' }] },\r\n ],\r\n },\r\n {\r\n name: 'Nigeria',\r\n code: 'NG',\r\n code3: 'NGA',\r\n phoneCode: '+234',\r\n currency: 'NGN',\r\n currencySymbol: '₦',\r\n continent: 'Africa',\r\n capital: 'Abuja',\r\n timezone: 'Africa/Lagos',\r\n states: [\r\n { name: 'Lagos', code: 'LA', cities: [{ name: 'Lagos' }, { name: 'Ikeja' }] },\r\n { name: 'FCT', code: 'FC', cities: [{ name: 'Abuja' }] },\r\n { name: 'Kano', code: 'KN', cities: [{ name: 'Kano' }] },\r\n { name: 'Rivers', code: 'RI', cities: [{ name: 'Port Harcourt' }] },\r\n ],\r\n },\r\n {\r\n name: 'Norway',\r\n code: 'NO',\r\n code3: 'NOR',\r\n phoneCode: '+47',\r\n currency: 'NOK',\r\n currencySymbol: 'kr',\r\n continent: 'Europe',\r\n capital: 'Oslo',\r\n timezone: 'Europe/Oslo',\r\n states: [\r\n { name: 'Oslo', code: 'OSL', cities: [{ name: 'Oslo' }] },\r\n { name: 'Vestland', code: 'VES', cities: [{ name: 'Bergen' }] },\r\n { name: 'Trøndelag', code: 'TRO', cities: [{ name: 'Trondheim' }] },\r\n ],\r\n },\r\n {\r\n name: 'Pakistan',\r\n code: 'PK',\r\n code3: 'PAK',\r\n phoneCode: '+92',\r\n currency: 'PKR',\r\n currencySymbol: '₨',\r\n continent: 'Asia',\r\n capital: 'Islamabad',\r\n timezone: 'Asia/Karachi',\r\n states: [\r\n { name: 'Punjab', code: 'PB', cities: [{ name: 'Lahore' }, { name: 'Faisalabad' }, { name: 'Rawalpindi' }] },\r\n { name: 'Sindh', code: 'SD', cities: [{ name: 'Karachi' }, { name: 'Hyderabad' }] },\r\n { name: 'Islamabad', code: 'IS', cities: [{ name: 'Islamabad' }] },\r\n { name: 'Khyber Pakhtunkhwa', code: 'KP', cities: [{ name: 'Peshawar' }] },\r\n ],\r\n },\r\n {\r\n name: 'Philippines',\r\n code: 'PH',\r\n code3: 'PHL',\r\n phoneCode: '+63',\r\n currency: 'PHP',\r\n currencySymbol: '₱',\r\n continent: 'Asia',\r\n capital: 'Manila',\r\n timezone: 'Asia/Manila',\r\n states: [\r\n { name: 'Metro Manila', code: 'NCR', cities: [{ name: 'Manila' }, { name: 'Quezon City' }, { name: 'Makati' }] },\r\n { name: 'Cebu', code: 'CEB', cities: [{ name: 'Cebu City' }] },\r\n { name: 'Davao', code: 'DAV', cities: [{ name: 'Davao City' }] },\r\n ],\r\n },\r\n {\r\n name: 'Poland',\r\n code: 'PL',\r\n code3: 'POL',\r\n phoneCode: '+48',\r\n currency: 'PLN',\r\n currencySymbol: 'zł',\r\n continent: 'Europe',\r\n capital: 'Warsaw',\r\n timezone: 'Europe/Warsaw',\r\n states: [\r\n { name: 'Masovian', code: 'MZ', cities: [{ name: 'Warsaw' }] },\r\n { name: 'Lesser Poland', code: 'MA', cities: [{ name: 'Krakow' }] },\r\n { name: 'Greater Poland', code: 'WP', cities: [{ name: 'Poznań' }] },\r\n { name: 'Lower Silesian', code: 'DS', cities: [{ name: 'Wrocław' }] },\r\n ],\r\n },\r\n {\r\n name: 'Portugal',\r\n code: 'PT',\r\n code3: 'PRT',\r\n phoneCode: '+351',\r\n currency: 'EUR',\r\n currencySymbol: '€',\r\n continent: 'Europe',\r\n capital: 'Lisbon',\r\n timezone: 'Europe/Lisbon',\r\n states: [\r\n { name: 'Lisbon', code: 'LIS', cities: [{ name: 'Lisbon' }] },\r\n { name: 'Porto', code: 'POR', cities: [{ name: 'Porto' }] },\r\n { name: 'Faro', code: 'FAR', cities: [{ name: 'Faro' }] },\r\n ],\r\n },\r\n {\r\n name: 'Qatar',\r\n code: 'QA',\r\n code3: 'QAT',\r\n phoneCode: '+974',\r\n currency: 'QAR',\r\n currencySymbol: 'ر.ق',\r\n continent: 'Asia',\r\n capital: 'Doha',\r\n timezone: 'Asia/Qatar',\r\n states: [\r\n { name: 'Doha', code: 'DA', cities: [{ name: 'Doha' }] },\r\n { name: 'Al Wakrah', code: 'WA', cities: [{ name: 'Al Wakrah' }] },\r\n ],\r\n },\r\n {\r\n name: 'Russia',\r\n code: 'RU',\r\n code3: 'RUS',\r\n phoneCode: '+7',\r\n currency: 'RUB',\r\n currencySymbol: '₽',\r\n continent: 'Europe',\r\n capital: 'Moscow',\r\n timezone: 'Europe/Moscow',\r\n states: [\r\n { name: 'Moscow', code: 'MOW', cities: [{ name: 'Moscow' }] },\r\n { name: 'Saint Petersburg', code: 'SPE', cities: [{ name: 'Saint Petersburg' }] },\r\n { name: 'Novosibirsk Oblast', code: 'NVS', cities: [{ name: 'Novosibirsk' }] },\r\n { name: 'Sverdlovsk Oblast', code: 'SVE', cities: [{ name: 'Yekaterinburg' }] },\r\n ],\r\n },\r\n {\r\n name: 'Saudi Arabia',\r\n code: 'SA',\r\n code3: 'SAU',\r\n phoneCode: '+966',\r\n currency: 'SAR',\r\n currencySymbol: 'ر.س',\r\n continent: 'Asia',\r\n capital: 'Riyadh',\r\n timezone: 'Asia/Riyadh',\r\n states: [\r\n { name: 'Riyadh', code: 'RIY', cities: [{ name: 'Riyadh' }] },\r\n { name: 'Makkah', code: 'MKK', cities: [{ name: 'Jeddah' }, { name: 'Mecca' }] },\r\n { name: 'Eastern Province', code: 'ASH', cities: [{ name: 'Dammam' }, { name: 'Dhahran' }] },\r\n ],\r\n },\r\n {\r\n name: 'Singapore',\r\n code: 'SG',\r\n code3: 'SGP',\r\n phoneCode: '+65',\r\n currency: 'SGD',\r\n currencySymbol: '$',\r\n continent: 'Asia',\r\n capital: 'Singapore',\r\n timezone: 'Asia/Singapore',\r\n states: [\r\n { name: 'Central Region', code: 'CEN', cities: [{ name: 'Singapore' }] },\r\n ],\r\n },\r\n {\r\n name: 'South Africa',\r\n code: 'ZA',\r\n code3: 'ZAF',\r\n phoneCode: '+27',\r\n currency: 'ZAR',\r\n currencySymbol: 'R',\r\n continent: 'Africa',\r\n capital: 'Pretoria',\r\n timezone: 'Africa/Johannesburg',\r\n states: [\r\n { name: 'Gauteng', code: 'GP', cities: [{ name: 'Johannesburg' }, { name: 'Pretoria' }] },\r\n { name: 'Western Cape', code: 'WC', cities: [{ name: 'Cape Town' }] },\r\n { name: 'KwaZulu-Natal', code: 'KZN', cities: [{ name: 'Durban' }] },\r\n ],\r\n },\r\n {\r\n name: 'South Korea',\r\n code: 'KR',\r\n code3: 'KOR',\r\n phoneCode: '+82',\r\n currency: 'KRW',\r\n currencySymbol: '₩',\r\n continent: 'Asia',\r\n capital: 'Seoul',\r\n timezone: 'Asia/Seoul',\r\n states: [\r\n { name: 'Seoul', code: 'SEO', cities: [{ name: 'Seoul' }] },\r\n { name: 'Busan', code: 'BUS', cities: [{ name: 'Busan' }] },\r\n { name: 'Incheon', code: 'INC', cities: [{ name: 'Incheon' }] },\r\n { name: 'Gyeonggi', code: 'GGI', cities: [{ name: 'Suwon' }, { name: 'Seongnam' }] },\r\n ],\r\n },\r\n {\r\n name: 'Spain',\r\n code: 'ES',\r\n code3: 'ESP',\r\n phoneCode: '+34',\r\n currency: 'EUR',\r\n currencySymbol: '€',\r\n continent: 'Europe',\r\n capital: 'Madrid',\r\n timezone: 'Europe/Madrid',\r\n states: [\r\n { name: 'Madrid', code: 'MD', cities: [{ name: 'Madrid' }] },\r\n { name: 'Catalonia', code: 'CT', cities: [{ name: 'Barcelona' }] },\r\n { name: 'Andalusia', code: 'AN', cities: [{ name: 'Seville' }, { name: 'Malaga' }, { name: 'Granada' }] },\r\n { name: 'Valencia', code: 'VC', cities: [{ name: 'Valencia' }] },\r\n { name: 'Basque Country', code: 'PV', cities: [{ name: 'Bilbao' }, { name: 'San Sebastián' }] },\r\n ],\r\n },\r\n {\r\n name: 'Sri Lanka',\r\n code: 'LK',\r\n code3: 'LKA',\r\n phoneCode: '+94',\r\n currency: 'LKR',\r\n currencySymbol: '₨',\r\n continent: 'Asia',\r\n capital: 'Colombo',\r\n timezone: 'Asia/Colombo',\r\n states: [\r\n { name: 'Western', code: 'WP', cities: [{ name: 'Colombo' }] },\r\n { name: 'Central', code: 'CP', cities: [{ name: 'Kandy' }] },\r\n { name: 'Southern', code: 'SP', cities: [{ name: 'Galle' }] },\r\n ],\r\n },\r\n {\r\n name: 'Sweden',\r\n code: 'SE',\r\n code3: 'SWE',\r\n phoneCode: '+46',\r\n currency: 'SEK',\r\n currencySymbol: 'kr',\r\n continent: 'Europe',\r\n capital: 'Stockholm',\r\n timezone: 'Europe/Stockholm',\r\n states: [\r\n { name: 'Stockholm', code: 'AB', cities: [{ name: 'Stockholm' }] },\r\n { name: 'Västra Götaland', code: 'VG', cities: [{ name: 'Gothenburg' }] },\r\n { name: 'Skåne', code: 'SK', cities: [{ name: 'Malmö' }] },\r\n ],\r\n },\r\n {\r\n name: 'Switzerland',\r\n code: 'CH',\r\n code3: 'CHE',\r\n phoneCode: '+41',\r\n currency: 'CHF',\r\n currencySymbol: 'CHF',\r\n continent: 'Europe',\r\n capital: 'Bern',\r\n timezone: 'Europe/Zurich',\r\n states: [\r\n { name: 'Zürich', code: 'ZH', cities: [{ name: 'Zürich' }] },\r\n { name: 'Geneva', code: 'GE', cities: [{ name: 'Geneva' }] },\r\n { name: 'Bern', code: 'BE', cities: [{ name: 'Bern' }] },\r\n { name: 'Basel-Stadt', code: 'BS', cities: [{ name: 'Basel' }] },\r\n ],\r\n },\r\n {\r\n name: 'Taiwan',\r\n code: 'TW',\r\n code3: 'TWN',\r\n phoneCode: '+886',\r\n currency: 'TWD',\r\n currencySymbol: 'NT$',\r\n continent: 'Asia',\r\n capital: 'Taipei',\r\n timezone: 'Asia/Taipei',\r\n states: [\r\n { name: 'Taipei', code: 'TPE', cities: [{ name: 'Taipei' }, { name: 'New Taipei' }] },\r\n { name: 'Taichung', code: 'TXG', cities: [{ name: 'Taichung' }] },\r\n { name: 'Kaohsiung', code: 'KHH', cities: [{ name: 'Kaohsiung' }] },\r\n ],\r\n },\r\n {\r\n name: 'Thailand',\r\n code: 'TH',\r\n code3: 'THA',\r\n phoneCode: '+66',\r\n currency: 'THB',\r\n currencySymbol: '฿',\r\n continent: 'Asia',\r\n capital: 'Bangkok',\r\n timezone: 'Asia/Bangkok',\r\n states: [\r\n { name: 'Bangkok', code: 'BKK', cities: [{ name: 'Bangkok' }] },\r\n { name: 'Chiang Mai', code: 'CNX', cities: [{ name: 'Chiang Mai' }] },\r\n { name: 'Phuket', code: 'PKT', cities: [{ name: 'Phuket' }] },\r\n { name: 'Chonburi', code: 'CBI', cities: [{ name: 'Pattaya' }] },\r\n ],\r\n },\r\n {\r\n name: 'Turkey',\r\n code: 'TR',\r\n code3: 'TUR',\r\n phoneCode: '+90',\r\n currency: 'TRY',\r\n currencySymbol: '₺',\r\n continent: 'Asia',\r\n capital: 'Ankara',\r\n timezone: 'Europe/Istanbul',\r\n states: [\r\n { name: 'Istanbul', code: 'IST', cities: [{ name: 'Istanbul' }] },\r\n { name: 'Ankara', code: 'ANK', cities: [{ name: 'Ankara' }] },\r\n { name: 'Izmir', code: 'IZM', cities: [{ name: 'Izmir' }] },\r\n { name: 'Antalya', code: 'ANT', cities: [{ name: 'Antalya' }] },\r\n ],\r\n },\r\n {\r\n name: 'Ukraine',\r\n code: 'UA',\r\n code3: 'UKR',\r\n phoneCode: '+380',\r\n currency: 'UAH',\r\n currencySymbol: '₴',\r\n continent: 'Europe',\r\n capital: 'Kyiv',\r\n timezone: 'Europe/Kyiv',\r\n states: [\r\n { name: 'Kyiv', code: 'KY', cities: [{ name: 'Kyiv' }] },\r\n { name: 'Kharkiv', code: 'KH', cities: [{ name: 'Kharkiv' }] },\r\n { name: 'Odessa', code: 'OD', cities: [{ name: 'Odessa' }] },\r\n { name: 'Lviv', code: 'LV', cities: [{ name: 'Lviv' }] },\r\n ],\r\n },\r\n {\r\n name: 'United Arab Emirates',\r\n code: 'AE',\r\n code3: 'ARE',\r\n phoneCode: '+971',\r\n currency: 'AED',\r\n currencySymbol: 'د.إ',\r\n continent: 'Asia',\r\n capital: 'Abu Dhabi',\r\n timezone: 'Asia/Dubai',\r\n states: [\r\n { name: 'Dubai', code: 'DU', cities: [{ name: 'Dubai' }] },\r\n { name: 'Abu Dhabi', code: 'AZ', cities: [{ name: 'Abu Dhabi' }] },\r\n { name: 'Sharjah', code: 'SH', cities: [{ name: 'Sharjah' }] },\r\n { name: 'Ajman', code: 'AJ', cities: [{ name: 'Ajman' }] },\r\n ],\r\n },\r\n {\r\n name: 'United Kingdom',\r\n code: 'GB',\r\n code3: 'GBR',\r\n phoneCode: '+44',\r\n currency: 'GBP',\r\n currencySymbol: '£',\r\n continent: 'Europe',\r\n capital: 'London',\r\n timezone: 'Europe/London',\r\n states: [\r\n { name: 'England', code: 'ENG', cities: [{ name: 'London' }, { name: 'Manchester' }, { name: 'Birmingham' }, { name: 'Liverpool' }, { name: 'Leeds' }, { name: 'Bristol' }] },\r\n { name: 'Scotland', code: 'SCT', cities: [{ name: 'Edinburgh' }, { name: 'Glasgow' }] },\r\n { name: 'Wales', code: 'WLS', cities: [{ name: 'Cardiff' }, { name: 'Swansea' }] },\r\n { name: 'Northern Ireland', code: 'NIR', cities: [{ name: 'Belfast' }] },\r\n ],\r\n },\r\n {\r\n name: 'United States',\r\n code: 'US',\r\n code3: 'USA',\r\n phoneCode: '+1',\r\n currency: 'USD',\r\n currencySymbol: '$',\r\n continent: 'North America',\r\n capital: 'Washington, D.C.',\r\n timezone: 'America/New_York',\r\n states: [\r\n { name: 'California', code: 'CA', cities: [{ name: 'Los Angeles' }, { name: 'San Francisco' }, { name: 'San Diego' }, { name: 'San Jose' }, { name: 'Sacramento' }] },\r\n { name: 'New York', code: 'NY', cities: [{ name: 'New York City' }, { name: 'Buffalo' }, { name: 'Albany' }] },\r\n { name: 'Texas', code: 'TX', cities: [{ name: 'Houston' }, { name: 'Dallas' }, { name: 'Austin' }, { name: 'San Antonio' }] },\r\n { name: 'Florida', code: 'FL', cities: [{ name: 'Miami' }, { name: 'Orlando' }, { name: 'Tampa' }, { name: 'Jacksonville' }] },\r\n { name: 'Illinois', code: 'IL', cities: [{ name: 'Chicago' }] },\r\n { name: 'Pennsylvania', code: 'PA', cities: [{ name: 'Philadelphia' }, { name: 'Pittsburgh' }] },\r\n { name: 'Ohio', code: 'OH', cities: [{ name: 'Columbus' }, { name: 'Cleveland' }, { name: 'Cincinnati' }] },\r\n { name: 'Georgia', code: 'GA', cities: [{ name: 'Atlanta' }] },\r\n { name: 'North Carolina', code: 'NC', cities: [{ name: 'Charlotte' }, { name: 'Raleigh' }] },\r\n { name: 'Michigan', code: 'MI', cities: [{ name: 'Detroit' }] },\r\n { name: 'Washington', code: 'WA', cities: [{ name: 'Seattle' }] },\r\n { name: 'Arizona', code: 'AZ', cities: [{ name: 'Phoenix' }, { name: 'Tucson' }] },\r\n { name: 'Massachusetts', code: 'MA', cities: [{ name: 'Boston' }, { name: 'Cambridge' }] },\r\n { name: 'Colorado', code: 'CO', cities: [{ name: 'Denver' }, { name: 'Colorado Springs' }] },\r\n { name: 'Nevada', code: 'NV', cities: [{ name: 'Las Vegas' }, { name: 'Reno' }] },\r\n { name: 'Oregon', code: 'OR', cities: [{ name: 'Portland' }] },\r\n { name: 'District of Columbia', code: 'DC', cities: [{ name: 'Washington' }] },\r\n ],\r\n },\r\n {\r\n name: 'Vietnam',\r\n code: 'VN',\r\n code3: 'VNM',\r\n phoneCode: '+84',\r\n currency: 'VND',\r\n currencySymbol: '₫',\r\n continent: 'Asia',\r\n capital: 'Hanoi',\r\n timezone: 'Asia/Ho_Chi_Minh',\r\n states: [\r\n { name: 'Ho Chi Minh City', code: 'HCM', cities: [{ name: 'Ho Chi Minh City' }] },\r\n { name: 'Hanoi', code: 'HAN', cities: [{ name: 'Hanoi' }] },\r\n { name: 'Da Nang', code: 'DAN', cities: [{ name: 'Da Nang' }] },\r\n ],\r\n },\r\n];\r\n\r\n/**\r\n * Country with flag guaranteed (auto-generated from code if not set)\r\n */\r\nexport interface CountryWithFlag extends Omit<Country, 'flag'> {\r\n flag: string;\r\n}\r\n\r\n// Helper functions\r\nexport const getCountryByCode = (code: string): Country | undefined => {\r\n return countries.find((c) => c.code === code || c.code3 === code);\r\n};\r\n\r\nexport const getCountryByName = (name: string): Country | undefined => {\r\n return countries.find((c) => c.name.toLowerCase() === name.toLowerCase());\r\n};\r\n\r\nexport const getStatesByCountry = (countryCode: string): State[] => {\r\n const country = getCountryByCode(countryCode);\r\n return country?.states || [];\r\n};\r\n\r\nexport const getCitiesByState = (countryCode: string, stateCode: string): City[] => {\r\n const states = getStatesByCountry(countryCode);\r\n const state = states.find((s) => s.code === stateCode);\r\n return state?.cities || [];\r\n};\r\n\r\nexport const getAllCities = (countryCode: string): City[] => {\r\n const states = getStatesByCountry(countryCode);\r\n return states.flatMap((s) => s.cities);\r\n};\r\n\r\nexport const getCountriesByContinent = (continent: string): Country[] => {\r\n return countries.filter((c) => c.continent.toLowerCase() === continent.toLowerCase());\r\n};\r\n\r\nexport const searchCountries = (query: string): Country[] => {\r\n const lowerQuery = query.toLowerCase();\r\n return countries.filter(\r\n (c) =>\r\n c.name.toLowerCase().includes(lowerQuery) ||\r\n c.code.toLowerCase() === lowerQuery ||\r\n c.code3.toLowerCase() === lowerQuery\r\n );\r\n};\r\n\r\n/**\r\n * Get flag emoji for a country code\r\n * @param countryCode - ISO 3166-1 alpha-2 country code\r\n * @returns Emoji flag or the flag from country data\r\n */\r\nexport const getFlag = (countryCode: string): string => {\r\n const country = getCountryByCode(countryCode);\r\n return country?.flag || codeToFlag(countryCode);\r\n};\r\n\r\n/**\r\n * Get country with auto-generated flag if not set\r\n */\r\nexport const getCountryWithFlag = (code: string): CountryWithFlag | undefined => {\r\n const country = getCountryByCode(code);\r\n if (!country) return undefined;\r\n return { ...country, flag: country.flag || codeToFlag(country.code) };\r\n};\r\n\r\n/**\r\n * Get all countries with flags (auto-generate if missing)\r\n */\r\nexport const getAllCountriesWithFlags = (): CountryWithFlag[] => {\r\n return countries.map((c) => ({\r\n ...c,\r\n flag: c.flag || codeToFlag(c.code),\r\n }));\r\n};\r\n\r\nexport default countries;\r\n","/**\r\n * Phone codes by country\r\n */\r\nexport interface PhoneCode {\r\n country: string;\r\n code: string;\r\n phoneCode: string;\r\n flag: string;\r\n}\r\n\r\nexport const phoneCodes: PhoneCode[] = [\r\n { country: 'Afghanistan', code: 'AF', phoneCode: '+93', flag: '🇦🇫' },\r\n { country: 'Albania', code: 'AL', phoneCode: '+355', flag: '🇦🇱' },\r\n { country: 'Algeria', code: 'DZ', phoneCode: '+213', flag: '🇩🇿' },\r\n { country: 'American Samoa', code: 'AS', phoneCode: '+1684', flag: '🇦🇸' },\r\n { country: 'Andorra', code: 'AD', phoneCode: '+376', flag: '🇦🇩' },\r\n { country: 'Angola', code: 'AO', phoneCode: '+244', flag: '🇦🇴' },\r\n { country: 'Anguilla', code: 'AI', phoneCode: '+1264', flag: '🇦🇮' },\r\n { country: 'Argentina', code: 'AR', phoneCode: '+54', flag: '🇦🇷' },\r\n { country: 'Armenia', code: 'AM', phoneCode: '+374', flag: '🇦🇲' },\r\n { country: 'Australia', code: 'AU', phoneCode: '+61', flag: '🇦🇺' },\r\n { country: 'Austria', code: 'AT', phoneCode: '+43', flag: '🇦🇹' },\r\n { country: 'Azerbaijan', code: 'AZ', phoneCode: '+994', flag: '🇦🇿' },\r\n { country: 'Bahamas', code: 'BS', phoneCode: '+1242', flag: '🇧🇸' },\r\n { country: 'Bahrain', code: 'BH', phoneCode: '+973', flag: '🇧🇭' },\r\n { country: 'Bangladesh', code: 'BD', phoneCode: '+880', flag: '🇧🇩' },\r\n { country: 'Barbados', code: 'BB', phoneCode: '+1246', flag: '🇧🇧' },\r\n { country: 'Belarus', code: 'BY', phoneCode: '+375', flag: '🇧🇾' },\r\n { country: 'Belgium', code: 'BE', phoneCode: '+32', flag: '🇧🇪' },\r\n { country: 'Belize', code: 'BZ', phoneCode: '+501', flag: '🇧🇿' },\r\n { country: 'Benin', code: 'BJ', phoneCode: '+229', flag: '🇧🇯' },\r\n { country: 'Bermuda', code: 'BM', phoneCode: '+1441', flag: '🇧🇲' },\r\n { country: 'Bhutan', code: 'BT', phoneCode: '+975', flag: '🇧🇹' },\r\n { country: 'Bolivia', code: 'BO', phoneCode: '+591', flag: '🇧🇴' },\r\n { country: 'Bosnia and Herzegovina', code: 'BA', phoneCode: '+387', flag: '🇧🇦' },\r\n { country: 'Botswana', code: 'BW', phoneCode: '+267', flag: '🇧🇼' },\r\n { country: 'Brazil', code: 'BR', phoneCode: '+55', flag: '🇧🇷' },\r\n { country: 'Brunei', code: 'BN', phoneCode: '+673', flag: '🇧🇳' },\r\n { country: 'Bulgaria', code: 'BG', phoneCode: '+359', flag: '🇧🇬' },\r\n { country: 'Burkina Faso', code: 'BF', phoneCode: '+226', flag: '🇧🇫' },\r\n { country: 'Burundi', code: 'BI', phoneCode: '+257', flag: '🇧🇮' },\r\n { country: 'Cambodia', code: 'KH', phoneCode: '+855', flag: '🇰🇭' },\r\n { country: 'Cameroon', code: 'CM', phoneCode: '+237', flag: '🇨🇲' },\r\n { country: 'Canada', code: 'CA', phoneCode: '+1', flag: '🇨🇦' },\r\n { country: 'Cape Verde', code: 'CV', phoneCode: '+238', flag: '🇨🇻' },\r\n { country: 'Cayman Islands', code: 'KY', phoneCode: '+1345', flag: '🇰🇾' },\r\n { country: 'Central African Republic', code: 'CF', phoneCode: '+236', flag: '🇨🇫' },\r\n { country: 'Chad', code: 'TD', phoneCode: '+235', flag: '🇹🇩' },\r\n { country: 'Chile', code: 'CL', phoneCode: '+56', flag: '🇨🇱' },\r\n { country: 'China', code: 'CN', phoneCode: '+86', flag: '🇨🇳' },\r\n { country: 'Colombia', code: 'CO', phoneCode: '+57', flag: '🇨🇴' },\r\n { country: 'Comoros', code: 'KM', phoneCode: '+269', flag: '🇰🇲' },\r\n { country: 'Congo', code: 'CG', phoneCode: '+242', flag: '🇨🇬' },\r\n { country: 'Costa Rica', code: 'CR', phoneCode: '+506', flag: '🇨🇷' },\r\n { country: 'Croatia', code: 'HR', phoneCode: '+385', flag: '🇭🇷' },\r\n { country: 'Cuba', code: 'CU', phoneCode: '+53', flag: '🇨🇺' },\r\n { country: 'Cyprus', code: 'CY', phoneCode: '+357', flag: '🇨🇾' },\r\n { country: 'Czech Republic', code: 'CZ', phoneCode: '+420', flag: '🇨🇿' },\r\n { country: 'Denmark', code: 'DK', phoneCode: '+45', flag: '🇩🇰' },\r\n { country: 'Djibouti', code: 'DJ', phoneCode: '+253', flag: '🇩🇯' },\r\n { country: 'Dominica', code: 'DM', phoneCode: '+1767', flag: '🇩🇲' },\r\n { country: 'Dominican Republic', code: 'DO', phoneCode: '+1809', flag: '🇩🇴' },\r\n { country: 'Ecuador', code: 'EC', phoneCode: '+593', flag: '🇪🇨' },\r\n { country: 'Egypt', code: 'EG', phoneCode: '+20', flag: '🇪🇬' },\r\n { country: 'El Salvador', code: 'SV', phoneCode: '+503', flag: '🇸🇻' },\r\n { country: 'Equatorial Guinea', code: 'GQ', phoneCode: '+240', flag: '🇬🇶' },\r\n { country: 'Eritrea', code: 'ER', phoneCode: '+291', flag: '🇪🇷' },\r\n { country: 'Estonia', code: 'EE', phoneCode: '+372', flag: '🇪🇪' },\r\n { country: 'Ethiopia', code: 'ET', phoneCode: '+251', flag: '🇪🇹' },\r\n { country: 'Fiji', code: 'FJ', phoneCode: '+679', flag: '🇫🇯' },\r\n { country: 'Finland', code: 'FI', phoneCode: '+358', flag: '🇫🇮' },\r\n { country: 'France', code: 'FR', phoneCode: '+33', flag: '🇫🇷' },\r\n { country: 'Gabon', code: 'GA', phoneCode: '+241', flag: '🇬🇦' },\r\n { country: 'Gambia', code: 'GM', phoneCode: '+220', flag: '🇬🇲' },\r\n { country: 'Georgia', code: 'GE', phoneCode: '+995', flag: '🇬🇪' },\r\n { country: 'Germany', code: 'DE', phoneCode: '+49', flag: '🇩🇪' },\r\n { country: 'Ghana', code: 'GH', phoneCode: '+233', flag: '🇬🇭' },\r\n { country: 'Greece', code: 'GR', phoneCode: '+30', flag: '🇬🇷' },\r\n { country: 'Greenland', code: 'GL', phoneCode: '+299', flag: '🇬🇱' },\r\n { country: 'Grenada', code: 'GD', phoneCode: '+1473', flag: '🇬🇩' },\r\n { country: 'Guam', code: 'GU', phoneCode: '+1671', flag: '🇬🇺' },\r\n { country: 'Guatemala', code: 'GT', phoneCode: '+502', flag: '🇬🇹' },\r\n { country: 'Guinea', code: 'GN', phoneCode: '+224', flag: '🇬🇳' },\r\n { country: 'Guyana', code: 'GY', phoneCode: '+592', flag: '🇬🇾' },\r\n { country: 'Haiti', code: 'HT', phoneCode: '+509', flag: '🇭🇹' },\r\n { country: 'Honduras', code: 'HN', phoneCode: '+504', flag: '🇭🇳' },\r\n { country: 'Hong Kong', code: 'HK', phoneCode: '+852', flag: '🇭🇰' },\r\n { country: 'Hungary', code: 'HU', phoneCode: '+36', flag: '🇭🇺' },\r\n { country: 'Iceland', code: 'IS', phoneCode: '+354', flag: '🇮🇸' },\r\n { country: 'India', code: 'IN', phoneCode: '+91', flag: '🇮🇳' },\r\n { country: 'Indonesia', code: 'ID', phoneCode: '+62', flag: '🇮🇩' },\r\n { country: 'Iran', code: 'IR', phoneCode: '+98', flag: '🇮🇷' },\r\n { country: 'Iraq', code: 'IQ', phoneCode: '+964', flag: '🇮🇶' },\r\n { country: 'Ireland', code: 'IE', phoneCode: '+353', flag: '🇮🇪' },\r\n { country: 'Israel', code: 'IL', phoneCode: '+972', flag: '🇮🇱' },\r\n { country: 'Italy', code: 'IT', phoneCode: '+39', flag: '🇮🇹' },\r\n { country: 'Jamaica', code: 'JM', phoneCode: '+1876', flag: '🇯🇲' },\r\n { country: 'Japan', code: 'JP', phoneCode: '+81', flag: '🇯🇵' },\r\n { country: 'Jordan', code: 'JO', phoneCode: '+962', flag: '🇯🇴' },\r\n { country: 'Kazakhstan', code: 'KZ', phoneCode: '+7', flag: '🇰🇿' },\r\n { country: 'Kenya', code: 'KE', phoneCode: '+254', flag: '🇰🇪' },\r\n { country: 'Kiribati', code: 'KI', phoneCode: '+686', flag: '🇰🇮' },\r\n { country: 'Kuwait', code: 'KW', phoneCode: '+965', flag: '🇰🇼' },\r\n { country: 'Kyrgyzstan', code: 'KG', phoneCode: '+996', flag: '🇰🇬' },\r\n { country: 'Laos', code: 'LA', phoneCode: '+856', flag: '🇱🇦' },\r\n { country: 'Latvia', code: 'LV', phoneCode: '+371', flag: '🇱🇻' },\r\n { country: 'Lebanon', code: 'LB', phoneCode: '+961', flag: '🇱🇧' },\r\n { country: 'Lesotho', code: 'LS', phoneCode: '+266', flag: '🇱🇸' },\r\n { country: 'Liberia', code: 'LR', phoneCode: '+231', flag: '🇱🇷' },\r\n { country: 'Libya', code: 'LY', phoneCode: '+218', flag: '🇱🇾' },\r\n { country: 'Liechtenstein', code: 'LI', phoneCode: '+423', flag: '🇱🇮' },\r\n { country: 'Lithuania', code: 'LT', phoneCode: '+370', flag: '🇱🇹' },\r\n { country: 'Luxembourg', code: 'LU', phoneCode: '+352', flag: '🇱🇺' },\r\n { country: 'Macau', code: 'MO', phoneCode: '+853', flag: '🇲🇴' },\r\n { country: 'Madagascar', code: 'MG', phoneCode: '+261', flag: '🇲🇬' },\r\n { country: 'Malawi', code: 'MW', phoneCode: '+265', flag: '🇲🇼' },\r\n { country: 'Malaysia', code: 'MY', phoneCode: '+60', flag: '🇲🇾' },\r\n { country: 'Maldives', code: 'MV', phoneCode: '+960', flag: '🇲🇻' },\r\n { country: 'Mali', code: 'ML', phoneCode: '+223', flag: '🇲🇱' },\r\n { country: 'Malta', code: 'MT', phoneCode: '+356', flag: '🇲🇹' },\r\n { country: 'Mauritania', code: 'MR', phoneCode: '+222', flag: '🇲🇷' },\r\n { country: 'Mauritius', code: 'MU', phoneCode: '+230', flag: '🇲🇺' },\r\n { country: 'Mexico', code: 'MX', phoneCode: '+52', flag: '🇲🇽' },\r\n { country: 'Moldova', code: 'MD', phoneCode: '+373', flag: '🇲🇩' },\r\n { country: 'Monaco', code: 'MC', phoneCode: '+377', flag: '🇲🇨' },\r\n { country: 'Mongolia', code: 'MN', phoneCode: '+976', flag: '🇲🇳' },\r\n { country: 'Montenegro', code: 'ME', phoneCode: '+382', flag: '🇲🇪' },\r\n { country: 'Morocco', code: 'MA', phoneCode: '+212', flag: '🇲🇦' },\r\n { country: 'Mozambique', code: 'MZ', phoneCode: '+258', flag: '🇲🇿' },\r\n { country: 'Myanmar', code: 'MM', phoneCode: '+95', flag: '🇲🇲' },\r\n { country: 'Namibia', code: 'NA', phoneCode: '+264', flag: '🇳🇦' },\r\n { country: 'Nauru', code: 'NR', phoneCode: '+674', flag: '🇳🇷' },\r\n { country: 'Nepal', code: 'NP', phoneCode: '+977', flag: '🇳🇵' },\r\n { country: 'Netherlands', code: 'NL', phoneCode: '+31', flag: '🇳🇱' },\r\n { country: 'New Zealand', code: 'NZ', phoneCode: '+64', flag: '🇳🇿' },\r\n { country: 'Nicaragua', code: 'NI', phoneCode: '+505', flag: '🇳🇮' },\r\n { country: 'Niger', code: 'NE', phoneCode: '+227', flag: '🇳🇪' },\r\n { country: 'Nigeria', code: 'NG', phoneCode: '+234', flag: '🇳🇬' },\r\n { country: 'North Korea', code: 'KP', phoneCode: '+850', flag: '🇰🇵' },\r\n { country: 'North Macedonia', code: 'MK', phoneCode: '+389', flag: '🇲🇰' },\r\n { country: 'Norway', code: 'NO', phoneCode: '+47', flag: '🇳🇴' },\r\n { country: 'Oman', code: 'OM', phoneCode: '+968', flag: '🇴🇲' },\r\n { country: 'Pakistan', code: 'PK', phoneCode: '+92', flag: '🇵🇰' },\r\n { country: 'Palau', code: 'PW', phoneCode: '+680', flag: '🇵🇼' },\r\n { country: 'Palestine', code: 'PS', phoneCode: '+970', flag: '🇵🇸' },\r\n { country: 'Panama', code: 'PA', phoneCode: '+507', flag: '🇵🇦' },\r\n { country: 'Papua New Guinea', code: 'PG', phoneCode: '+675', flag: '🇵🇬' },\r\n { country: 'Paraguay', code: 'PY', phoneCode: '+595', flag: '🇵🇾' },\r\n { country: 'Peru', code: 'PE', phoneCode: '+51', flag: '🇵🇪' },\r\n { country: 'Philippines', code: 'PH', phoneCode: '+63', flag: '🇵🇭' },\r\n { country: 'Poland', code: 'PL', phoneCode: '+48', flag: '🇵🇱' },\r\n { country: 'Portugal', code: 'PT', phoneCode: '+351', flag: '🇵🇹' },\r\n { country: 'Puerto Rico', code: 'PR', phoneCode: '+1787', flag: '🇵🇷' },\r\n { country: 'Qatar', code: 'QA', phoneCode: '+974', flag: '🇶🇦' },\r\n { country: 'Romania', code: 'RO', phoneCode: '+40', flag: '🇷🇴' },\r\n { country: 'Russia', code: 'RU', phoneCode: '+7', flag: '🇷🇺' },\r\n { country: 'Rwanda', code: 'RW', phoneCode: '+250', flag: '🇷🇼' },\r\n { country: 'Saudi Arabia', code: 'SA', phoneCode: '+966', flag: '🇸🇦' },\r\n { country: 'Senegal', code: 'SN', phoneCode: '+221', flag: '🇸🇳' },\r\n { country: 'Serbia', code: 'RS', phoneCode: '+381', flag: '🇷🇸' },\r\n { country: 'Seychelles', code: 'SC', phoneCode: '+248', flag: '🇸🇨' },\r\n { country: 'Sierra Leone', code: 'SL', phoneCode: '+232', flag: '🇸🇱' },\r\n { country: 'Singapore', code: 'SG', phoneCode: '+65', flag: '🇸🇬' },\r\n { country: 'Slovakia', code: 'SK', phoneCode: '+421', flag: '🇸🇰' },\r\n { country: 'Slovenia', code: 'SI', phoneCode: '+386', flag: '🇸🇮' },\r\n { country: 'Solomon Islands', code: 'SB', phoneCode: '+677', flag: '🇸🇧' },\r\n { country: 'Somalia', code: 'SO', phoneCode: '+252', flag: '🇸🇴' },\r\n { country: 'South Africa', code: 'ZA', phoneCode: '+27', flag: '🇿🇦' },\r\n { country: 'South Korea', code: 'KR', phoneCode: '+82', flag: '🇰🇷' },\r\n { country: 'South Sudan', code: 'SS', phoneCode: '+211', flag: '🇸🇸' },\r\n { country: 'Spain', code: 'ES', phoneCode: '+34', flag: '🇪🇸' },\r\n { country: 'Sri Lanka', code: 'LK', phoneCode: '+94', flag: '🇱🇰' },\r\n { country: 'Sudan', code: 'SD', phoneCode: '+249', flag: '🇸🇩' },\r\n { country: 'Suriname', code: 'SR', phoneCode: '+597', flag: '🇸🇷' },\r\n { country: 'Sweden', code: 'SE', phoneCode: '+46', flag: '🇸🇪' },\r\n { country: 'Switzerland', code: 'CH', phoneCode: '+41', flag: '🇨🇭' },\r\n { country: 'Syria', code: 'SY', phoneCode: '+963', flag: '🇸🇾' },\r\n { country: 'Taiwan', code: 'TW', phoneCode: '+886', flag: '🇹🇼' },\r\n { country: 'Tajikistan', code: 'TJ', phoneCode: '+992', flag: '🇹🇯' },\r\n { country: 'Tanzania', code: 'TZ', phoneCode: '+255', flag: '🇹🇿' },\r\n { country: 'Thailand', code: 'TH', phoneCode: '+66', flag: '🇹🇭' },\r\n { country: 'Togo', code: 'TG', phoneCode: '+228', flag: '🇹🇬' },\r\n { country: 'Tonga', code: 'TO', phoneCode: '+676', flag: '🇹🇴' },\r\n { country: 'Trinidad and Tobago', code: 'TT', phoneCode: '+1868', flag: '🇹🇹' },\r\n { country: 'Tunisia', code: 'TN', phoneCode: '+216', flag: '🇹🇳' },\r\n { country: 'Turkey', code: 'TR', phoneCode: '+90', flag: '🇹🇷' },\r\n { country: 'Turkmenistan', code: 'TM', phoneCode: '+993', flag: '🇹🇲' },\r\n { country: 'Tuvalu', code: 'TV', phoneCode: '+688', flag: '🇹🇻' },\r\n { country: 'Uganda', code: 'UG', phoneCode: '+256', flag: '🇺🇬' },\r\n { country: 'Ukraine', code: 'UA', phoneCode: '+380', flag: '🇺🇦' },\r\n { country: 'United Arab Emirates', code: 'AE', phoneCode: '+971', flag: '🇦🇪' },\r\n { country: 'United Kingdom', code: 'GB', phoneCode: '+44', flag: '🇬🇧' },\r\n { country: 'United States', code: 'US', phoneCode: '+1', flag: '🇺🇸' },\r\n { country: 'Uruguay', code: 'UY', phoneCode: '+598', flag: '🇺🇾' },\r\n { country: 'Uzbekistan', code: 'UZ', phoneCode: '+998', flag: '🇺🇿' },\r\n { country: 'Vanuatu', code: 'VU', phoneCode: '+678', flag: '🇻🇺' },\r\n { country: 'Vatican City', code: 'VA', phoneCode: '+379', flag: '🇻🇦' },\r\n { country: 'Venezuela', code: 'VE', phoneCode: '+58', flag: '🇻🇪' },\r\n { country: 'Vietnam', code: 'VN', phoneCode: '+84', flag: '🇻🇳' },\r\n { country: 'Yemen', code: 'YE', phoneCode: '+967', flag: '🇾🇪' },\r\n { country: 'Zambia', code: 'ZM', phoneCode: '+260', flag: '🇿🇲' },\r\n { country: 'Zimbabwe', code: 'ZW', phoneCode: '+263', flag: '🇿🇼' },\r\n];\r\n\r\n// Helper functions\r\nexport const getPhoneCodeByCountry = (countryCode: string): PhoneCode | undefined => {\r\n return phoneCodes.find((p) => p.code === countryCode);\r\n};\r\n\r\nexport const searchPhoneCodes = (query: string): PhoneCode[] => {\r\n const lowerQuery = query.toLowerCase();\r\n return phoneCodes.filter(\r\n (p) =>\r\n p.country.toLowerCase().includes(lowerQuery) ||\r\n p.code.toLowerCase() === lowerQuery ||\r\n p.phoneCode.includes(query)\r\n );\r\n};\r\n\r\nexport const getPhoneCodesByPrefix = (prefix: string): PhoneCode[] => {\r\n return phoneCodes.filter((p) => p.phoneCode.startsWith(prefix));\r\n};\r\n\r\nexport default phoneCodes;\r\n","/**\r\n * Currency data with symbols and formatting\r\n */\r\nexport interface Currency {\r\n code: string; // ISO 4217 currency code\r\n name: string;\r\n symbol: string;\r\n symbolNative: string;\r\n decimalDigits: number;\r\n rounding: number;\r\n namePlural: string;\r\n}\r\n\r\nexport const currencies: Currency[] = [\r\n { code: 'AED', name: 'UAE Dirham', symbol: 'AED', symbolNative: 'د.إ', decimalDigits: 2, rounding: 0, namePlural: 'UAE dirhams' },\r\n { code: 'AFN', name: 'Afghan Afghani', symbol: 'Af', symbolNative: '؋', decimalDigits: 0, rounding: 0, namePlural: 'Afghan Afghanis' },\r\n { code: 'ALL', name: 'Albanian Lek', symbol: 'ALL', symbolNative: 'Lek', decimalDigits: 0, rounding: 0, namePlural: 'Albanian lekë' },\r\n { code: 'AMD', name: 'Armenian Dram', symbol: 'AMD', symbolNative: 'դր.', decimalDigits: 0, rounding: 0, namePlural: 'Armenian drams' },\r\n { code: 'ARS', name: 'Argentine Peso', symbol: 'AR$', symbolNative: '$', decimalDigits: 2, rounding: 0, namePlural: 'Argentine pesos' },\r\n { code: 'AUD', name: 'Australian Dollar', symbol: 'AU$', symbolNative: '$', decimalDigits: 2, rounding: 0, namePlural: 'Australian dollars' },\r\n { code: 'AZN', name: 'Azerbaijani Manat', symbol: 'man.', symbolNative: 'ман.', decimalDigits: 2, rounding: 0, namePlural: 'Azerbaijani manats' },\r\n { code: 'BAM', name: 'Bosnia-Herzegovina Convertible Mark', symbol: 'KM', symbolNative: 'KM', decimalDigits: 2, rounding: 0, namePlural: 'Bosnia-Herzegovina convertible marks' },\r\n { code: 'BDT', name: 'Bangladeshi Taka', symbol: 'Tk', symbolNative: '৳', decimalDigits: 2, rounding: 0, namePlural: 'Bangladeshi takas' },\r\n { code: 'BGN', name: 'Bulgarian Lev', symbol: 'BGN', symbolNative: 'лв.', decimalDigits: 2, rounding: 0, namePlural: 'Bulgarian leva' },\r\n { code: 'BHD', name: 'Bahraini Dinar', symbol: 'BD', symbolNative: 'د.ب.', decimalDigits: 3, rounding: 0, namePlural: 'Bahraini dinars' },\r\n { code: 'BIF', name: 'Burundian Franc', symbol: 'FBu', symbolNative: 'FBu', decimalDigits: 0, rounding: 0, namePlural: 'Burundian francs' },\r\n { code: 'BND', name: 'Brunei Dollar', symbol: 'BN$', symbolNative: '$', decimalDigits: 2, rounding: 0, namePlural: 'Brunei dollars' },\r\n { code: 'BOB', name: 'Bolivian Boliviano', symbol: 'Bs', symbolNative: 'Bs', decimalDigits: 2, rounding: 0, namePlural: 'Bolivian bolivianos' },\r\n { code: 'BRL', name: 'Brazilian Real', symbol: 'R$', symbolNative: 'R$', decimalDigits: 2, rounding: 0, namePlural: 'Brazilian reals' },\r\n { code: 'BWP', name: 'Botswanan Pula', symbol: 'BWP', symbolNative: 'P', decimalDigits: 2, rounding: 0, namePlural: 'Botswanan pulas' },\r\n { code: 'BYN', name: 'Belarusian Ruble', symbol: 'Br', symbolNative: 'руб.', decimalDigits: 2, rounding: 0, namePlural: 'Belarusian rubles' },\r\n { code: 'BZD', name: 'Belize Dollar', symbol: 'BZ$', symbolNative: '$', decimalDigits: 2, rounding: 0, namePlural: 'Belize dollars' },\r\n { code: 'CAD', name: 'Canadian Dollar', symbol: 'CA$', symbolNative: '$', decimalDigits: 2, rounding: 0, namePlural: 'Canadian dollars' },\r\n { code: 'CDF', name: 'Congolese Franc', symbol: 'CDF', symbolNative: 'FrCD', decimalDigits: 2, rounding: 0, namePlural: 'Congolese francs' },\r\n { code: 'CHF', name: 'Swiss Franc', symbol: 'CHF', symbolNative: 'CHF', decimalDigits: 2, rounding: 0.05, namePlural: 'Swiss francs' },\r\n { code: 'CLP', name: 'Chilean Peso', symbol: 'CL$', symbolNative: '$', decimalDigits: 0, rounding: 0, namePlural: 'Chilean pesos' },\r\n { code: 'CNY', name: 'Chinese Yuan', symbol: 'CN¥', symbolNative: '¥', decimalDigits: 2, rounding: 0, namePlural: 'Chinese yuan' },\r\n { code: 'COP', name: 'Colombian Peso', symbol: 'CO$', symbolNative: '$', decimalDigits: 0, rounding: 0, namePlural: 'Colombian pesos' },\r\n { code: 'CRC', name: 'Costa Rican Colón', symbol: '₡', symbolNative: '₡', decimalDigits: 0, rounding: 0, namePlural: 'Costa Rican colóns' },\r\n { code: 'CZK', name: 'Czech Koruna', symbol: 'Kč', symbolNative: 'Kč', decimalDigits: 2, rounding: 0, namePlural: 'Czech korunas' },\r\n { code: 'DKK', name: 'Danish Krone', symbol: 'Dkr', symbolNative: 'kr', decimalDigits: 2, rounding: 0, namePlural: 'Danish kroner' },\r\n { code: 'DOP', name: 'Dominican Peso', symbol: 'RD$', symbolNative: 'RD$', decimalDigits: 2, rounding: 0, namePlural: 'Dominican pesos' },\r\n { code: 'DZD', name: 'Algerian Dinar', symbol: 'DA', symbolNative: 'د.ج.', decimalDigits: 2, rounding: 0, namePlural: 'Algerian dinars' },\r\n { code: 'EGP', name: 'Egyptian Pound', symbol: 'EGP', symbolNative: 'ج.م.', decimalDigits: 2, rounding: 0, namePlural: 'Egyptian pounds' },\r\n { code: 'ETB', name: 'Ethiopian Birr', symbol: 'Br', symbolNative: 'Br', decimalDigits: 2, rounding: 0, namePlural: 'Ethiopian birrs' },\r\n { code: 'EUR', name: 'Euro', symbol: '€', symbolNative: '€', decimalDigits: 2, rounding: 0, namePlural: 'euros' },\r\n { code: 'GBP', name: 'British Pound', symbol: '£', symbolNative: '£', decimalDigits: 2, rounding: 0, namePlural: 'British pounds' },\r\n { code: 'GEL', name: 'Georgian Lari', symbol: 'GEL', symbolNative: 'GEL', decimalDigits: 2, rounding: 0, namePlural: 'Georgian laris' },\r\n { code: 'GHS', name: 'Ghanaian Cedi', symbol: 'GH₵', symbolNative: 'GH₵', decimalDigits: 2, rounding: 0, namePlural: 'Ghanaian cedis' },\r\n { code: 'GNF', name: 'Guinean Franc', symbol: 'FG', symbolNative: 'FG', decimalDigits: 0, rounding: 0, namePlural: 'Guinean francs' },\r\n { code: 'GTQ', name: 'Guatemalan Quetzal', symbol: 'GTQ', symbolNative: 'Q', decimalDigits: 2, rounding: 0, namePlural: 'Guatemalan quetzals' },\r\n { code: 'HKD', name: 'Hong Kong Dollar', symbol: 'HK$', symbolNative: '$', decimalDigits: 2, rounding: 0, namePlural: 'Hong Kong dollars' },\r\n { code: 'HNL', name: 'Honduran Lempira', symbol: 'HNL', symbolNative: 'L', decimalDigits: 2, rounding: 0, namePlural: 'Honduran lempiras' },\r\n { code: 'HRK', name: 'Croatian Kuna', symbol: 'kn', symbolNative: 'kn', decimalDigits: 2, rounding: 0, namePlural: 'Croatian kunas' },\r\n { code: 'HUF', name: 'Hungarian Forint', symbol: 'Ft', symbolNative: 'Ft', decimalDigits: 0, rounding: 0, namePlural: 'Hungarian forints' },\r\n { code: 'IDR', name: 'Indonesian Rupiah', symbol: 'Rp', symbolNative: 'Rp', decimalDigits: 0, rounding: 0, namePlural: 'Indonesian rupiahs' },\r\n { code: 'ILS', name: 'Israeli New Shekel', symbol: '₪', symbolNative: '₪', decimalDigits: 2, rounding: 0, namePlural: 'Israeli new shekels' },\r\n { code: 'INR', name: 'Indian Rupee', symbol: '₹', symbolNative: '₹', decimalDigits: 2, rounding: 0, namePlural: 'Indian rupees' },\r\n { code: 'IQD', name: 'Iraqi Dinar', symbol: 'IQD', symbolNative: 'د.ع.', decimalDigits: 0, rounding: 0, namePlural: 'Iraqi dinars' },\r\n { code: 'IRR', name: 'Iranian Rial', symbol: 'IRR', symbolNative: '﷼', decimalDigits: 0, rounding: 0, namePlural: 'Iranian rials' },\r\n { code: 'ISK', name: 'Icelandic Króna', symbol: 'Ikr', symbolNative: 'kr', decimalDigits: 0, rounding: 0, namePlural: 'Icelandic krónur' },\r\n { code: 'JMD', name: 'Jamaican Dollar', symbol: 'J$', symbolNative: '$', decimalDigits: 2, rounding: 0, namePlural: 'Jamaican dollars' },\r\n { code: 'JOD', name: 'Jordanian Dinar', symbol: 'JD', symbolNative: 'د.أ.', decimalDigits: 3, rounding: 0, namePlural: 'Jordanian dinars' },\r\n { code: 'JPY', name: 'Japanese Yen', symbol: '¥', symbolNative: '¥', decimalDigits: 0, rounding: 0, namePlural: 'Japanese yen' },\r\n { code: 'KES', name: 'Kenyan Shilling', symbol: 'Ksh', symbolNative: 'Ksh', decimalDigits: 2, rounding: 0, namePlural: 'Kenyan shillings' },\r\n { code: 'KHR', name: 'Cambodian Riel', symbol: 'KHR', symbolNative: '៛', decimalDigits: 2, rounding: 0, namePlural: 'Cambodian riels' },\r\n { code: 'KRW', name: 'South Korean Won', symbol: '₩', symbolNative: '₩', decimalDigits: 0, rounding: 0, namePlural: 'South Korean won' },\r\n { code: 'KWD', name: 'Kuwaiti Dinar', symbol: 'KD', symbolNative: 'د.ك.', decimalDigits: 3, rounding: 0, namePlural: 'Kuwaiti dinars' },\r\n { code: 'KZT', name: 'Kazakhstani Tenge', symbol: 'KZT', symbolNative: 'тңг.', decimalDigits: 2, rounding: 0, namePlural: 'Kazakhstani tenges' },\r\n { code: 'LAK', name: 'Lao Kip', symbol: '₭', symbolNative: '₭', decimalDigits: 0, rounding: 0, namePlural: 'Lao kip' },\r\n { code: 'LBP', name: 'Lebanese Pound', symbol: 'LB£', symbolNative: 'ل.ل.', decimalDigits: 0, rounding: 0, namePlural: 'Lebanese pounds' },\r\n { code: 'LKR', name: 'Sri Lankan Rupee', symbol: 'SLRs', symbolNative: 'රු', decimalDigits: 2, rounding: 0, namePlural: 'Sri Lankan rupees' },\r\n { code: 'LYD', name: 'Libyan Dinar', symbol: 'LD', symbolNative: 'د.ل.', decimalDigits: 3, rounding: 0, namePlural: 'Libyan dinars' },\r\n { code: 'MAD', name: 'Moroccan Dirham', symbol: 'MAD', symbolNative: 'د.م.', decimalDigits: 2, rounding: 0, namePlural: 'Moroccan dirhams' },\r\n { code: 'MDL', name: 'Moldovan Leu', symbol: 'MDL', symbolNative: 'MDL', decimalDigits: 2, rounding: 0, namePlural: 'Moldovan lei' },\r\n { code: 'MGA', name: 'Malagasy Ariary', symbol: 'MGA', symbolNative: 'MGA', decimalDigits: 0, rounding: 0, namePlural: 'Malagasy ariaries' },\r\n { code: 'MKD', name: 'Macedonian Denar', symbol: 'MKD', symbolNative: 'MKD', decimalDigits: 2, rounding: 0, namePlural: 'Macedonian denari' },\r\n { code: 'MMK', name: 'Myanmar Kyat', symbol: 'MMK', symbolNative: 'K', decimalDigits: 0, rounding: 0, namePlural: 'Myanmar kyats' },\r\n { code: 'MNT', name: 'Mongolian Tugrik', symbol: '₮', symbolNative: '₮', decimalDigits: 0, rounding: 0, namePlural: 'Mongolian tugriks' },\r\n { code: 'MOP', name: 'Macanese Pataca', symbol: 'MOP$', symbolNative: 'MOP$', decimalDigits: 2, rounding: 0, namePlural: 'Macanese patacas' },\r\n { code: 'MUR', name: 'Mauritian Rupee', symbol: 'MURs', symbolNative: 'MURs', decimalDigits: 0, rounding: 0, namePlural: 'Mauritian rupees' },\r\n { code: 'MXN', name: 'Mexican Peso', symbol: 'MX$', symbolNative: '$', decimalDigits: 2, rounding: 0, namePlural: 'Mexican pesos' },\r\n { code: 'MYR', name: 'Malaysian Ringgit', symbol: 'RM', symbolNative: 'RM', decimalDigits: 2, rounding: 0, namePlural: 'Malaysian ringgits' },\r\n { code: 'MZN', name: 'Mozambican Metical', symbol: 'MTn', symbolNative: 'MTn', decimalDigits: 2, rounding: 0, namePlural: 'Mozambican meticals' },\r\n { code: 'NAD', name: 'Namibian Dollar', symbol: 'N$', symbolNative: 'N$', decimalDigits: 2, rounding: 0, namePlural: 'Namibian dollars' },\r\n { code: 'NGN', name: 'Nigerian Naira', symbol: '₦', symbolNative: '₦', decimalDigits: 2, rounding: 0, namePlural: 'Nigerian nairas' },\r\n { code: 'NIO', name: 'Nicaraguan Córdoba', symbol: 'C$', symbolNative: 'C$', decimalDigits: 2, rounding: 0, namePlural: 'Nicaraguan córdobas' },\r\n { code: 'NOK', name: 'Norwegian Krone', symbol: 'Nkr', symbolNative: 'kr', decimalDigits: 2, rounding: 0, namePlural: 'Norwegian kroner' },\r\n { code: 'NPR', name: 'Nepalese Rupee', symbol: 'NPRs', symbolNative: 'नेरू', decimalDigits: 2, rounding: 0, namePlural: 'Nepalese rupees' },\r\n { code: 'NZD', name: 'New Zealand Dollar', symbol: 'NZ$', symbolNative: '$', decimalDigits: 2, rounding: 0, namePlural: 'New Zealand dollars' },\r\n { code: 'OMR', name: 'Omani Rial', symbol: 'OMR', symbolNative: 'ر.ع.', decimalDigits: 3, rounding: 0, namePlural: 'Omani rials' },\r\n { code: 'PAB', name: 'Panamanian Balboa', symbol: 'B/.', symbolNative: 'B/.', decimalDigits: 2, rounding: 0, namePlural: 'Panamanian balboas' },\r\n { code: 'PEN', name: 'Peruvian Sol', symbol: 'S/', symbolNative: 'S/', decimalDigits: 2, rounding: 0, namePlural: 'Peruvian soles' },\r\n { code: 'PHP', name: 'Philippine Peso', symbol: '₱', symbolNative: '₱', decimalDigits: 2, rounding: 0, namePlural: 'Philippine pesos' },\r\n { code: 'PKR', name: 'Pakistani Rupee', symbol: 'PKRs', symbolNative: '₨', decimalDigits: 0, rounding: 0, namePlural: 'Pakistani rupees' },\r\n { code: 'PLN', name: 'Polish Zloty', symbol: 'zł', symbolNative: 'zł', decimalDigits: 2, rounding: 0, namePlural: 'Polish zlotys' },\r\n { code: 'PYG', name: 'Paraguayan Guarani', symbol: '₲', symbolNative: '₲', decimalDigits: 0, rounding: 0, namePlural: 'Paraguayan guaranis' },\r\n { code: 'QAR', name: 'Qatari Rial', symbol: 'QR', symbolNative: 'ر.ق.', decimalDigits: 2, rounding: 0, namePlural: 'Qatari rials' },\r\n { code: 'RON', name: 'Romanian Leu', symbol: 'RON', symbolNative: 'RON', decimalDigits: 2, rounding: 0, namePlural: 'Romanian lei' },\r\n { code: 'RSD', name: 'Serbian Dinar', symbol: 'din.', symbolNative: 'дин.', decimalDigits: 0, rounding: 0, namePlural: 'Serbian dinars' },\r\n { code: 'RUB', name: 'Russian Ruble', symbol: 'RUB', symbolNative: '₽', decimalDigits: 2, rounding: 0, namePlural: 'Russian rubles' },\r\n { code: 'RWF', name: 'Rwandan Franc', symbol: 'RWF', symbolNative: 'FR', decimalDigits: 0, rounding: 0, namePlural: 'Rwandan francs' },\r\n { code: 'SAR', name: 'Saudi Riyal', symbol: 'SR', symbolNative: 'ر.س.', decimalDigits: 2, rounding: 0, namePlural: 'Saudi riyals' },\r\n { code: 'SEK', name: 'Swedish Krona', symbol: 'Skr', symbolNative: 'kr', decimalDigits: 2, rounding: 0, namePlural: 'Swedish kronor' },\r\n { code: 'SGD', name: 'Singapore Dollar', symbol: 'S$', symbolNative: '$', decimalDigits: 2, rounding: 0, namePlural: 'Singapore dollars' },\r\n { code: 'SOS', name: 'Somali Shilling', symbol: 'Ssh', symbolNative: 'Ssh', decimalDigits: 0, rounding: 0, namePlural: 'Somali shillings' },\r\n { code: 'SYP', name: 'Syrian Pound', symbol: 'SY£', symbolNative: 'ل.س.', decimalDigits: 0, rounding: 0, namePlural: 'Syrian pounds' },\r\n { code: 'THB', name: 'Thai Baht', symbol: '฿', symbolNative: '฿', decimalDigits: 2, rounding: 0, namePlural: 'Thai baht' },\r\n { code: 'TND', name: 'Tunisian Dinar', symbol: 'DT', symbolNative: 'د.ت.', decimalDigits: 3, rounding: 0, namePlural: 'Tunisian dinars' },\r\n { code: 'TOP', name: 'Tongan Pa\\'anga', symbol: 'T$', symbolNative: 'T$', decimalDigits: 2, rounding: 0, namePlural: 'Tongan pa\\'anga' },\r\n { code: 'TRY', name: 'Turkish Lira', symbol: 'TL', symbolNative: '₺', decimalDigits: 2, rounding: 0, namePlural: 'Turkish liras' },\r\n { code: 'TTD', name: 'Trinidad & Tobago Dollar', symbol: 'TT$', symbolNative: '$', decimalDigits: 2, rounding: 0, namePlural: 'Trinidad & Tobago dollars' },\r\n { code: 'TWD', name: 'New Taiwan Dollar', symbol: 'NT$', symbolNative: 'NT$', decimalDigits: 2, rounding: 0, namePlural: 'New Taiwan dollars' },\r\n { code: 'TZS', name: 'Tanzanian Shilling', symbol: 'TSh', symbolNative: 'TSh', decimalDigits: 0, rounding: 0, namePlural: 'Tanzanian shillings' },\r\n { code: 'UAH', name: 'Ukrainian Hryvnia', symbol: '₴', symbolNative: '₴', decimalDigits: 2, rounding: 0, namePlural: 'Ukrainian hryvnias' },\r\n { code: 'UGX', name: 'Ugandan Shilling', symbol: 'USh', symbolNative: 'USh', decimalDigits: 0, rounding: 0, namePlural: 'Ugandan shillings' },\r\n { code: 'USD', name: 'US Dollar', symbol: '$', symbolNative: '$', decimalDigits: 2, rounding: 0, namePlural: 'US dollars' },\r\n { code: 'UYU', name: 'Uruguayan Peso', symbol: '$U', symbolNative: '$', decimalDigits: 2, rounding: 0, namePlural: 'Uruguayan pesos' },\r\n { code: 'UZS', name: 'Uzbekistani Som', symbol: 'UZS', symbolNative: 'UZS', decimalDigits: 0, rounding: 0, namePlural: 'Uzbekistani som' },\r\n { code: 'VES', name: 'Venezuelan Bolívar', symbol: 'Bs', symbolNative: 'Bs', decimalDigits: 2, rounding: 0, namePlural: 'Venezuelan bolívars' },\r\n { code: 'VND', name: 'Vietnamese Dong', symbol: '₫', symbolNative: '₫', decimalDigits: 0, rounding: 0, namePlural: 'Vietnamese dong' },\r\n { code: 'XAF', name: 'Central African CFA Franc', symbol: 'FCFA', symbolNative: 'FCFA', decimalDigits: 0, rounding: 0, namePlural: 'Central African CFA francs' },\r\n { code: 'XOF', name: 'West African CFA Franc', symbol: 'CFA', symbolNative: 'CFA', decimalDigits: 0, rounding: 0, namePlural: 'West African CFA francs' },\r\n { code: 'YER', name: 'Yemeni Rial', symbol: 'YR', symbolNative: 'ر.ي.', decimalDigits: 0, rounding: 0, namePlural: 'Yemeni rials' },\r\n { code: 'ZAR', name: 'South African Rand', symbol: 'R', symbolNative: 'R', decimalDigits: 2, rounding: 0, namePlural: 'South African rand' },\r\n { code: 'ZMW', name: 'Zambian Kwacha', symbol: 'ZK', symbolNative: 'ZK', decimalDigits: 0, rounding: 0, namePlural: 'Zambian kwachas' },\r\n { code: 'ZWL', name: 'Zimbabwean Dollar', symbol: 'ZWL$', symbolNative: 'ZWL$', decimalDigits: 0, rounding: 0, namePlural: 'Zimbabwean dollars' },\r\n];\r\n\r\n// Helper functions\r\nexport const getCurrencyByCode = (code: string): Currency | undefined => {\r\n return currencies.find((c) => c.code === code.toUpperCase());\r\n};\r\n\r\nexport const searchCurrencies = (query: string): Currency[] => {\r\n const lowerQuery = query.toLowerCase();\r\n return currencies.filter(\r\n (c) =>\r\n c.code.toLowerCase().includes(lowerQuery) ||\r\n c.name.toLowerCase().includes(lowerQuery)\r\n );\r\n};\r\n\r\nexport const formatCurrency = (\r\n amount: number,\r\n currencyCode: string,\r\n locale: string = 'en-US'\r\n): string => {\r\n const currency = getCurrencyByCode(currencyCode);\r\n if (!currency) {\r\n return amount.toFixed(2);\r\n }\r\n\r\n try {\r\n return new Intl.NumberFormat(locale, {\r\n style: 'currency',\r\n currency: currency.code,\r\n minimumFractionDigits: currency.decimalDigits,\r\n maximumFractionDigits: currency.decimalDigits,\r\n }).format(amount);\r\n } catch {\r\n return `${currency.symbol}${amount.toFixed(currency.decimalDigits)}`;\r\n }\r\n};\r\n\r\nexport const formatCurrencyNative = (amount: number, currencyCode: string): string => {\r\n const currency = getCurrencyByCode(currencyCode);\r\n if (!currency) {\r\n return amount.toFixed(2);\r\n }\r\n return `${currency.symbolNative}${amount.toFixed(currency.decimalDigits)}`;\r\n};\r\n\r\nexport default currencies;\r\n","/**\r\n * Timezones data with UTC offsets\r\n */\r\nexport interface Timezone {\r\n name: string;\r\n label: string;\r\n offset: string;\r\n offsetMinutes: number;\r\n}\r\n\r\nexport const timezones: Timezone[] = [\r\n { name: 'Pacific/Midway', label: '(UTC-11:00) Midway Island', offset: '-11:00', offsetMinutes: -660 },\r\n { name: 'Pacific/Honolulu', label: '(UTC-10:00) Hawaii', offset: '-10:00', offsetMinutes: -600 },\r\n { name: 'America/Anchorage', label: '(UTC-09:00) Alaska', offset: '-09:00', offsetMinutes: -540 },\r\n { name: 'America/Los_Angeles', label: '(UTC-08:00) Pacific Time (US & Canada)', offset: '-08:00', offsetMinutes: -480 },\r\n { name: 'America/Phoenix', label: '(UTC-07:00) Arizona', offset: '-07:00', offsetMinutes: -420 },\r\n { name: 'America/Denver', label: '(UTC-07:00) Mountain Time (US & Canada)', offset: '-07:00', offsetMinutes: -420 },\r\n { name: 'America/Chicago', label: '(UTC-06:00) Central Time (US & Canada)', offset: '-06:00', offsetMinutes: -360 },\r\n { name: 'America/Mexico_City', label: '(UTC-06:00) Mexico City', offset: '-06:00', offsetMinutes: -360 },\r\n { name: 'America/New_York', label: '(UTC-05:00) Eastern Time (US & Canada)', offset: '-05:00', offsetMinutes: -300 },\r\n { name: 'America/Bogota', label: '(UTC-05:00) Bogota', offset: '-05:00', offsetMinutes: -300 },\r\n { name: 'America/Lima', label: '(UTC-05:00) Lima', offset: '-05:00', offsetMinutes: -300 },\r\n { name: 'America/Caracas', label: '(UTC-04:00) Caracas', offset: '-04:00', offsetMinutes: -240 },\r\n { name: 'America/Halifax', label: '(UTC-04:00) Atlantic Time (Canada)', offset: '-04:00', offsetMinutes: -240 },\r\n { name: 'America/Santiago', label: '(UTC-04:00) Santiago', offset: '-04:00', offsetMinutes: -240 },\r\n { name: 'America/Sao_Paulo', label: '(UTC-03:00) Brasilia', offset: '-03:00', offsetMinutes: -180 },\r\n { name: 'America/Buenos_Aires', label: '(UTC-03:00) Buenos Aires', offset: '-03:00', offsetMinutes: -180 },\r\n { name: 'Atlantic/South_Georgia', label: '(UTC-02:00) Mid-Atlantic', offset: '-02:00', offsetMinutes: -120 },\r\n { name: 'Atlantic/Azores', label: '(UTC-01:00) Azores', offset: '-01:00', offsetMinutes: -60 },\r\n { name: 'Europe/London', label: '(UTC+00:00) London, Dublin', offset: '+00:00', offsetMinutes: 0 },\r\n { name: 'UTC', label: '(UTC+00:00) UTC', offset: '+00:00', offsetMinutes: 0 },\r\n { name: 'Africa/Casablanca', label: '(UTC+00:00) Casablanca', offset: '+00:00', offsetMinutes: 0 },\r\n { name: 'Europe/Paris', label: '(UTC+01:00) Paris, Berlin, Rome', offset: '+01:00', offsetMinutes: 60 },\r\n { name: 'Europe/Amsterdam', label: '(UTC+01:00) Amsterdam, Brussels', offset: '+01:00', offsetMinutes: 60 },\r\n { name: 'Africa/Lagos', label: '(UTC+01:00) West Central Africa', offset: '+01:00', offsetMinutes: 60 },\r\n { name: 'Europe/Athens', label: '(UTC+02:00) Athens, Istanbul', offset: '+02:00', offsetMinutes: 120 },\r\n { name: 'Europe/Kiev', label: '(UTC+02:00) Kyiv', offset: '+02:00', offsetMinutes: 120 },\r\n { name: 'Africa/Cairo', label: '(UTC+02:00) Cairo', offset: '+02:00', offsetMinutes: 120 },\r\n { name: 'Africa/Johannesburg', label: '(UTC+02:00) Johannesburg', offset: '+02:00', offsetMinutes: 120 },\r\n { name: 'Asia/Jerusalem', label: '(UTC+02:00) Jerusalem', offset: '+02:00', offsetMinutes: 120 },\r\n { name: 'Europe/Moscow', label: '(UTC+03:00) Moscow', offset: '+03:00', offsetMinutes: 180 },\r\n { name: 'Asia/Kuwait', label: '(UTC+03:00) Kuwait, Riyadh', offset: '+03:00', offsetMinutes: 180 },\r\n { name: 'Africa/Nairobi', label: '(UTC+03:00) Nairobi', offset: '+03:00', offsetMinutes: 180 },\r\n { name: 'Asia/Tehran', label: '(UTC+03:30) Tehran', offset: '+03:30', offsetMinutes: 210 },\r\n { name: 'Asia/Dubai', label: '(UTC+04:00) Dubai, Abu Dhabi', offset: '+04:00', offsetMinutes: 240 },\r\n { name: 'Asia/Baku', label: '(UTC+04:00) Baku', offset: '+04:00', offsetMinutes: 240 },\r\n { name: 'Asia/Kabul', label: '(UTC+04:30) Kabul', offset: '+04:30', offsetMinutes: 270 },\r\n { name: 'Asia/Karachi', label: '(UTC+05:00) Karachi', offset: '+05:00', offsetMinutes: 300 },\r\n { name: 'Asia/Tashkent', label: '(UTC+05:00) Tashkent', offset: '+05:00', offsetMinutes: 300 },\r\n { name: 'Asia/Kolkata', label: '(UTC+05:30) Mumbai, New Delhi', offset: '+05:30', offsetMinutes: 330 },\r\n { name: 'Asia/Colombo', label: '(UTC+05:30) Sri Lanka', offset: '+05:30', offsetMinutes: 330 },\r\n { name: 'Asia/Kathmandu', label: '(UTC+05:45) Kathmandu', offset: '+05:45', offsetMinutes: 345 },\r\n { name: 'Asia/Dhaka', label: '(UTC+06:00) Dhaka', offset: '+06:00', offsetMinutes: 360 },\r\n { name: 'Asia/Almaty', label: '(UTC+06:00) Almaty', offset: '+06:00', offsetMinutes: 360 },\r\n { name: 'Asia/Yangon', label: '(UTC+06:30) Yangon', offset: '+06:30', offsetMinutes: 390 },\r\n { name: 'Asia/Bangkok', label: '(UTC+07:00) Bangkok', offset: '+07:00', offsetMinutes: 420 },\r\n { name: 'Asia/Jakarta', label: '(UTC+07:00) Jakarta', offset: '+07:00', offsetMinutes: 420 },\r\n { name: 'Asia/Ho_Chi_Minh', label: '(UTC+07:00) Ho Chi Minh City', offset: '+07:00', offsetMinutes: 420 },\r\n { name: 'Asia/Singapore', label: '(UTC+08:00) Singapore', offset: '+08:00', offsetMinutes: 480 },\r\n { name: 'Asia/Hong_Kong', label: '(UTC+08:00) Hong Kong', offset: '+08:00', offsetMinutes: 480 },\r\n { name: 'Asia/Shanghai', label: '(UTC+08:00) Beijing, Shanghai', offset: '+08:00', offsetMinutes: 480 },\r\n { name: 'Asia/Taipei', label: '(UTC+08:00) Taipei', offset: '+08:00', offsetMinutes: 480 },\r\n { name: 'Asia/Kuala_Lumpur', label: '(UTC+08:00) Kuala Lumpur', offset: '+08:00', offsetMinutes: 480 },\r\n { name: 'Australia/Perth', label: '(UTC+08:00) Perth', offset: '+08:00', offsetMinutes: 480 },\r\n { name: 'Asia/Seoul', label: '(UTC+09:00) Seoul', offset: '+09:00', offsetMinutes: 540 },\r\n { name: 'Asia/Tokyo', label: '(UTC+09:00) Tokyo', offset: '+09:00', offsetMinutes: 540 },\r\n { name: 'Australia/Darwin', label: '(UTC+09:30) Darwin', offset: '+09:30', offsetMinutes: 570 },\r\n { name: 'Australia/Adelaide', label: '(UTC+09:30) Adelaide', offset: '+09:30', offsetMinutes: 570 },\r\n { name: 'Australia/Sydney', label: '(UTC+10:00) Sydney, Melbourne', offset: '+10:00', offsetMinutes: 600 },\r\n { name: 'Australia/Brisbane', label: '(UTC+10:00) Brisbane', offset: '+10:00', offsetMinutes: 600 },\r\n { name: 'Pacific/Guam', label: '(UTC+10:00) Guam', offset: '+10:00', offsetMinutes: 600 },\r\n { name: 'Pacific/Noumea', label: '(UTC+11:00) New Caledonia', offset: '+11:00', offsetMinutes: 660 },\r\n { name: 'Pacific/Fiji', label: '(UTC+12:00) Fiji', offset: '+12:00', offsetMinutes: 720 },\r\n { name: 'Pacific/Auckland', label: '(UTC+12:00) Auckland, Wellington', offset: '+12:00', offsetMinutes: 720 },\r\n { name: 'Pacific/Tongatapu', label: '(UTC+13:00) Nuku\\'alofa', offset: '+13:00', offsetMinutes: 780 },\r\n];\r\n\r\n// Helper functions\r\nexport const getTimezoneByName = (name: string): Timezone | undefined => {\r\n return timezones.find((tz) => tz.name === name);\r\n};\r\n\r\nexport const searchTimezones = (query: string): Timezone[] => {\r\n const lowerQuery = query.toLowerCase();\r\n return timezones.filter(\r\n (tz) =>\r\n tz.name.toLowerCase().includes(lowerQuery) ||\r\n tz.label.toLowerCase().includes(lowerQuery)\r\n );\r\n};\r\n\r\nexport const getTimezonesByOffset = (offsetMinutes: number): Timezone[] => {\r\n return timezones.filter((tz) => tz.offsetMinutes === offsetMinutes);\r\n};\r\n\r\nexport const sortTimezonesByOffset = (ascending: boolean = true): Timezone[] => {\r\n return [...timezones].sort((a, b) =>\r\n ascending\r\n ? a.offsetMinutes - b.offsetMinutes\r\n : b.offsetMinutes - a.offsetMinutes\r\n );\r\n};\r\n\r\nexport default timezones;\r\n","/**\r\n * Common Regex Patterns\r\n * Reusable validation patterns for various data types\r\n */\r\n\r\n// ==========================================\r\n// EMAIL PATTERNS\r\n// ==========================================\r\n\r\n/** Basic email validation */\r\nexport const EMAIL = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\r\n\r\n/** RFC 5322 compliant email (more strict) */\r\nexport const EMAIL_RFC5322 = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\r\n\r\n/** Email with common domains only (gmail, yahoo, outlook, etc.) */\r\nexport const EMAIL_COMMON_DOMAINS = /^[^\\s@]+@(gmail|yahoo|outlook|hotmail|icloud|proton|aol|mail)\\.[a-z]{2,}$/i;\r\n\r\n// ==========================================\r\n// PASSWORD PATTERNS\r\n// ==========================================\r\n\r\n/** Minimum 8 characters */\r\nexport const PASSWORD_MIN_8 = /^.{8,}$/;\r\n\r\n/** Minimum 8 chars, at least one letter and one number */\r\nexport const PASSWORD_ALPHANUMERIC = /^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{8,}$/;\r\n\r\n/** Medium: min 8 chars, uppercase, lowercase, number */\r\nexport const PASSWORD_MEDIUM = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[A-Za-z\\d@$!%*?&]{8,}$/;\r\n\r\n/** Strong: min 8 chars, uppercase, lowercase, number, special char */\r\nexport const PASSWORD_STRONG = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&])[A-Za-z\\d@$!%*?&]{8,}$/;\r\n\r\n/** Very Strong: min 12 chars, uppercase, lowercase, number, special char */\r\nexport const PASSWORD_VERY_STRONG = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*#?&^()_+=[\\]{}|;:'\"<>,.\\/\\\\-])[A-Za-z\\d@$!%*#?&^()_+=[\\]{}|;:'\"<>,.\\/\\\\-]{12,}$/;\r\n\r\n// ==========================================\r\n// PHONE NUMBER PATTERNS\r\n// ==========================================\r\n\r\n/** International phone (with + prefix) */\r\nexport const PHONE_INTERNATIONAL = /^\\+?[1-9]\\d{1,14}$/;\r\n\r\n/** US phone number */\r\nexport const PHONE_US = /^(\\+1)?[-.\\s]?\\(?[0-9]{3}\\)?[-.\\s]?[0-9]{3}[-.\\s]?[0-9]{4}$/;\r\n\r\n/** India phone number (10 digits starting with 6-9) */\r\nexport const PHONE_INDIA = /^(\\+91)?[-.\\s]?[6-9]\\d{9}$/;\r\n\r\n/** UK phone number */\r\nexport const PHONE_UK = /^(\\+44)?[-.\\s]?[0-9]{10,11}$/;\r\n\r\n/** Generic 10-digit phone */\r\nexport const PHONE_10_DIGIT = /^\\d{10}$/;\r\n\r\n/** Phone with optional country code */\r\nexport const PHONE_WITH_CODE = /^\\+?[\\d\\s\\-().]{10,20}$/;\r\n\r\n// ==========================================\r\n// PIN/POSTAL CODE PATTERNS\r\n// ==========================================\r\n\r\n/** US ZIP Code (5 digits or 5+4) */\r\nexport const ZIP_US = /^\\d{5}(-\\d{4})?$/;\r\n\r\n/** India PIN Code (6 digits) */\r\nexport const PIN_INDIA = /^[1-9][0-9]{5}$/;\r\n\r\n/** UK Postal Code */\r\nexport const POSTAL_UK = /^[A-Z]{1,2}\\d[A-Z\\d]?\\s*\\d[A-Z]{2}$/i;\r\n\r\n/** Canada Postal Code */\r\nexport const POSTAL_CANADA = /^[A-Z]\\d[A-Z]\\s?\\d[A-Z]\\d$/i;\r\n\r\n/** Germany PLZ (5 digits) */\r\nexport const PLZ_GERMANY = /^\\d{5}$/;\r\n\r\n/** Generic postal code (4-10 alphanumeric) */\r\nexport const POSTAL_GENERIC = /^[A-Z0-9]{4,10}$/i;\r\n\r\n// ==========================================\r\n// ID PATTERNS\r\n// ==========================================\r\n\r\n/** UUID v4 */\r\nexport const UUID_V4 = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\r\n\r\n/** UUID any version */\r\nexport const UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;\r\n\r\n/** MongoDB ObjectId */\r\nexport const MONGO_OBJECT_ID = /^[0-9a-f]{24}$/i;\r\n\r\n/** CUID */\r\nexport const CUID = /^c[a-z0-9]{24}$/i;\r\n\r\n/** CUID2 */\r\nexport const CUID2 = /^[a-z][a-z0-9]{23}$/;\r\n\r\n/** NanoID (default 21 chars) */\r\nexport const NANOID = /^[A-Za-z0-9_-]{21}$/;\r\n\r\n// ==========================================\r\n// GOVERNMENT ID PATTERNS\r\n// ==========================================\r\n\r\n/** India Aadhaar (12 digits) */\r\nexport const AADHAAR_INDIA = /^[2-9]\\d{11}$/;\r\n\r\n/** India PAN Card */\r\nexport const PAN_INDIA = /^[A-Z]{5}[0-9]{4}[A-Z]$/;\r\n\r\n/** India GST Number */\r\nexport const GST_INDIA = /^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z][1-9A-Z]Z[0-9A-Z]$/;\r\n\r\n/** US SSN */\r\nexport const SSN_US = /^\\d{3}-?\\d{2}-?\\d{4}$/;\r\n\r\n/** India Driving License */\r\nexport const DL_INDIA = /^[A-Z]{2}[0-9]{2}[0-9]{4}[0-9]{7}$/;\r\n\r\n/** India Vehicle Number */\r\nexport const VEHICLE_INDIA = /^[A-Z]{2}[0-9]{2}[A-Z]{1,2}[0-9]{4}$/;\r\n\r\n/** India IFSC Code */\r\nexport const IFSC_INDIA = /^[A-Z]{4}0[A-Z0-9]{6}$/;\r\n\r\n// ==========================================\r\n// URL PATTERNS\r\n// ==========================================\r\n\r\n/** Basic URL (http/https) */\r\nexport const URL_BASIC = /^https?:\\/\\/[^\\s$.?#].[^\\s]*$/i;\r\n\r\n/** URL with optional protocol */\r\nexport const URL_OPTIONAL_PROTOCOL = /^(https?:\\/\\/)?([\\da-z.-]+)\\.([a-z.]{2,6})([\\/\\w .-]*)*\\/?$/i;\r\n\r\n/** Strict URL with protocol required */\r\nexport const URL_STRICT = /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)$/;\r\n\r\n/** Domain only (no protocol) */\r\nexport const DOMAIN = /^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$/i;\r\n\r\n/** Subdomain */\r\nexport const SUBDOMAIN = /^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$/i;\r\n\r\n/** Localhost with optional port */\r\nexport const LOCALHOST = /^(localhost|127\\.0\\.0\\.1)(:\\d{1,5})?$/;\r\n\r\n// ==========================================\r\n// SLUG & USERNAME PATTERNS\r\n// ==========================================\r\n\r\n/** URL slug (kebab-case) */\r\nexport const SLUG = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;\r\n\r\n/** Username (alphanumeric, underscore, hyphen, 3-30 chars) */\r\nexport const USERNAME = /^[a-zA-Z0-9_-]{3,30}$/;\r\n\r\n/** Username starting with letter */\r\nexport const USERNAME_ALPHA_START = /^[a-zA-Z][a-zA-Z0-9_-]{2,29}$/;\r\n\r\n/** Handle (like Twitter @username) */\r\nexport const HANDLE = /^@?[a-zA-Z0-9_]{1,15}$/;\r\n\r\n// ==========================================\r\n// CREDIT CARD PATTERNS\r\n// ==========================================\r\n\r\n/** Any credit card (13-19 digits) */\r\nexport const CREDIT_CARD = /^\\d{13,19}$/;\r\n\r\n/** Visa */\r\nexport const VISA = /^4[0-9]{12}(?:[0-9]{3})?$/;\r\n\r\n/** Mastercard */\r\nexport const MASTERCARD = /^5[1-5][0-9]{14}$/;\r\n\r\n/** American Express */\r\nexport const AMEX = /^3[47][0-9]{13}$/;\r\n\r\n/** Discover */\r\nexport const DISCOVER = /^6(?:011|5[0-9]{2})[0-9]{12}$/;\r\n\r\n/** CVV (3-4 digits) */\r\nexport const CVV = /^\\d{3,4}$/;\r\n\r\n/** Card expiry (MM/YY or MM/YYYY) */\r\nexport const CARD_EXPIRY = /^(0[1-9]|1[0-2])\\/(\\d{2}|\\d{4})$/;\r\n\r\n// ==========================================\r\n// DATE & TIME PATTERNS\r\n// ==========================================\r\n\r\n/** ISO 8601 Date (YYYY-MM-DD) */\r\nexport const DATE_ISO = /^\\d{4}-\\d{2}-\\d{2}$/;\r\n\r\n/** Date DD/MM/YYYY */\r\nexport const DATE_DMY = /^(0[1-9]|[12]\\d|3[01])\\/(0[1-9]|1[0-2])\\/\\d{4}$/;\r\n\r\n/** Date MM/DD/YYYY */\r\nexport const DATE_MDY = /^(0[1-9]|1[0-2])\\/(0[1-9]|[12]\\d|3[01])\\/\\d{4}$/;\r\n\r\n/** Time HH:MM (24-hour) */\r\nexport const TIME_24H = /^([01]\\d|2[0-3]):([0-5]\\d)$/;\r\n\r\n/** Time HH:MM:SS (24-hour) */\r\nexport const TIME_24H_SECONDS = /^([01]\\d|2[0-3]):([0-5]\\d):([0-5]\\d)$/;\r\n\r\n/** Time 12-hour with AM/PM */\r\nexport const TIME_12H = /^(0?[1-9]|1[0-2]):[0-5]\\d\\s?(AM|PM|am|pm)$/;\r\n\r\n/** ISO 8601 DateTime */\r\nexport const DATETIME_ISO = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{3})?(Z|[+-]\\d{2}:\\d{2})?$/;\r\n\r\n// ==========================================\r\n// IP ADDRESS PATTERNS\r\n// ==========================================\r\n\r\n/** IPv4 Address */\r\nexport const IPV4 = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;\r\n\r\n/** IPv6 Address */\r\nexport const IPV6 = /^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$/;\r\n\r\n/** MAC Address */\r\nexport const MAC_ADDRESS = /^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/;\r\n\r\n// ==========================================\r\n// FILE PATTERNS\r\n// ==========================================\r\n\r\n/** Image file extension */\r\nexport const IMAGE_EXT = /\\.(jpg|jpeg|png|gif|bmp|webp|svg|ico|tiff?)$/i;\r\n\r\n/** Video file extension */\r\nexport const VIDEO_EXT = /\\.(mp4|webm|ogg|avi|mov|wmv|flv|mkv)$/i;\r\n\r\n/** Audio file extension */\r\nexport const AUDIO_EXT = /\\.(mp3|wav|ogg|aac|flac|wma|m4a)$/i;\r\n\r\n/** Document file extension */\r\nexport const DOCUMENT_EXT = /\\.(pdf|doc|docx|xls|xlsx|ppt|pptx|txt|rtf|odt|ods|odp)$/i;\r\n\r\n/** Archive file extension */\r\nexport const ARCHIVE_EXT = /\\.(zip|rar|7z|tar|gz|bz2)$/i;\r\n\r\n/** Safe filename */\r\nexport const SAFE_FILENAME = /^[a-zA-Z0-9._-]+$/;\r\n\r\n// ==========================================\r\n// COLOR PATTERNS\r\n// ==========================================\r\n\r\n/** Hex color (3 or 6 chars) */\r\nexport const HEX_COLOR = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;\r\n\r\n/** Hex color with alpha (8 chars) */\r\nexport const HEX_COLOR_ALPHA = /^#([A-Fa-f0-9]{8}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{3})$/;\r\n\r\n/** RGB color */\r\nexport const RGB_COLOR = /^rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)$/;\r\n\r\n/** RGBA color */\r\nexport const RGBA_COLOR = /^rgba\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(0|1|0?\\.\\d+)\\s*\\)$/;\r\n\r\n/** HSL color */\r\nexport const HSL_COLOR = /^hsl\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})%\\s*,\\s*(\\d{1,3})%\\s*\\)$/;\r\n\r\n// ==========================================\r\n// MISC PATTERNS\r\n// ==========================================\r\n\r\n/** Alphanumeric only */\r\nexport const ALPHANUMERIC = /^[a-zA-Z0-9]+$/;\r\n\r\n/** Letters only */\r\nexport const LETTERS_ONLY = /^[a-zA-Z]+$/;\r\n\r\n/** Numbers only */\r\nexport const NUMBERS_ONLY = /^\\d+$/;\r\n\r\n/** Decimal number */\r\nexport const DECIMAL = /^-?\\d+(\\.\\d+)?$/;\r\n\r\n/** Positive integer */\r\nexport const POSITIVE_INTEGER = /^[1-9]\\d*$/;\r\n\r\n/** Non-negative integer */\r\nexport const NON_NEGATIVE_INTEGER = /^\\d+$/;\r\n\r\n/** No whitespace */\r\nexport const NO_WHITESPACE = /^\\S+$/;\r\n\r\n/** No special characters */\r\nexport const NO_SPECIAL_CHARS = /^[a-zA-Z0-9\\s]+$/;\r\n\r\n/** Contains at least one uppercase */\r\nexport const HAS_UPPERCASE = /[A-Z]/;\r\n\r\n/** Contains at least one lowercase */\r\nexport const HAS_LOWERCASE = /[a-z]/;\r\n\r\n/** Contains at least one digit */\r\nexport const HAS_DIGIT = /\\d/;\r\n\r\n/** Contains at least one special character */\r\nexport const HAS_SPECIAL = /[!@#$%^&*(),.?\":{}|<>]/;\r\n\r\n/** HTML tags */\r\nexport const HTML_TAG = /<[^>]*>/g;\r\n\r\n/** Emoji */\r\nexport const EMOJI = /[\\u{1F600}-\\u{1F64F}\\u{1F300}-\\u{1F5FF}\\u{1F680}-\\u{1F6FF}\\u{1F1E0}-\\u{1F1FF}\\u{2600}-\\u{26FF}\\u{2700}-\\u{27BF}]/u;\r\n\r\n/** Hashtag */\r\nexport const HASHTAG = /#[a-zA-Z0-9_]+/g;\r\n\r\n/** Mention (@username) */\r\nexport const MENTION = /@[a-zA-Z0-9_]+/g;\r\n\r\n/** JSON string */\r\nexport const JSON_STRING = /^[\\],:{}\\s]*$/;\r\n\r\n/** Base64 */\r\nexport const BASE64 = /^[A-Za-z0-9+/]+=*$/;\r\n\r\n/** JWT Token */\r\nexport const JWT = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\r\n\r\n/** Semantic Version */\r\nexport const SEMVER = /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\r\n\r\n/** Latitude */\r\nexport const LATITUDE = /^-?([0-8]?[0-9]|90)(\\.[0-9]{1,10})?$/;\r\n\r\n/** Longitude */\r\nexport const LONGITUDE = /^-?([0-9]{1,2}|1[0-7][0-9]|180)(\\.[0-9]{1,10})?$/;\r\n\r\n// ==========================================\r\n// EXPORT AS OBJECT FOR CONVENIENCE\r\n// ==========================================\r\n\r\nexport const REGEX = {\r\n // Email\r\n EMAIL,\r\n EMAIL_RFC5322,\r\n EMAIL_COMMON_DOMAINS,\r\n\r\n // Password\r\n PASSWORD_MIN_8,\r\n PASSWORD_ALPHANUMERIC,\r\n PASSWORD_MEDIUM,\r\n PASSWORD_STRONG,\r\n PASSWORD_VERY_STRONG,\r\n\r\n // Phone\r\n PHONE_INTERNATIONAL,\r\n PHONE_US,\r\n PHONE_INDIA,\r\n PHONE_UK,\r\n PHONE_10_DIGIT,\r\n PHONE_WITH_CODE,\r\n\r\n // Postal\r\n ZIP_US,\r\n PIN_INDIA,\r\n POSTAL_UK,\r\n POSTAL_CANADA,\r\n PLZ_GERMANY,\r\n POSTAL_GENERIC,\r\n\r\n // IDs\r\n UUID_V4,\r\n UUID,\r\n MONGO_OBJECT_ID,\r\n CUID,\r\n CUID2,\r\n NANOID,\r\n\r\n // Government IDs\r\n AADHAAR_INDIA,\r\n PAN_INDIA,\r\n GST_INDIA,\r\n SSN_US,\r\n DL_INDIA,\r\n VEHICLE_INDIA,\r\n IFSC_INDIA,\r\n\r\n // URL\r\n URL_BASIC,\r\n URL_OPTIONAL_PROTOCOL,\r\n URL_STRICT,\r\n DOMAIN,\r\n SUBDOMAIN,\r\n LOCALHOST,\r\n\r\n // Slug & Username\r\n SLUG,\r\n USERNAME,\r\n USERNAME_ALPHA_START,\r\n HANDLE,\r\n\r\n // Credit Card\r\n CREDIT_CARD,\r\n VISA,\r\n MASTERCARD,\r\n AMEX,\r\n DISCOVER,\r\n CVV,\r\n CARD_EXPIRY,\r\n\r\n // Date & Time\r\n DATE_ISO,\r\n DATE_DMY,\r\n DATE_MDY,\r\n TIME_24H,\r\n TIME_24H_SECONDS,\r\n TIME_12H,\r\n DATETIME_ISO,\r\n\r\n // IP\r\n IPV4,\r\n IPV6,\r\n MAC_ADDRESS,\r\n\r\n // File\r\n IMAGE_EXT,\r\n VIDEO_EXT,\r\n AUDIO_EXT,\r\n DOCUMENT_EXT,\r\n ARCHIVE_EXT,\r\n SAFE_FILENAME,\r\n\r\n // Color\r\n HEX_COLOR,\r\n HEX_COLOR_ALPHA,\r\n RGB_COLOR,\r\n RGBA_COLOR,\r\n HSL_COLOR,\r\n\r\n // Misc\r\n ALPHANUMERIC,\r\n LETTERS_ONLY,\r\n NUMBERS_ONLY,\r\n DECIMAL,\r\n POSITIVE_INTEGER,\r\n NON_NEGATIVE_INTEGER,\r\n NO_WHITESPACE,\r\n NO_SPECIAL_CHARS,\r\n HAS_UPPERCASE,\r\n HAS_LOWERCASE,\r\n HAS_DIGIT,\r\n HAS_SPECIAL,\r\n HTML_TAG,\r\n EMOJI,\r\n HASHTAG,\r\n MENTION,\r\n JSON_STRING,\r\n BASE64,\r\n JWT,\r\n SEMVER,\r\n LATITUDE,\r\n LONGITUDE,\r\n} as const;\r\n\r\nexport default REGEX;\r\n","/**\r\n * Company Logos for all 5 Exyconn projects\r\n * Contains light and dark mode variants\r\n */\r\n\r\nexport interface LogoVariants {\r\n light: string; // URL for light mode (dark logo on light background)\r\n dark: string; // URL for dark mode (light logo on dark background)\r\n}\r\n\r\nexport interface Logo {\r\n full: LogoVariants; // Full logo with text\r\n icon: LogoVariants; // Icon only\r\n favicon: string; // Favicon URL (usually same for both modes)\r\n}\r\n\r\nexport interface CompanyBrand {\r\n name: string;\r\n domain: string;\r\n tagline: string;\r\n primaryColor: string;\r\n secondaryColor: string;\r\n logo: Logo;\r\n}\r\n\r\nexport const brands: Record<string, CompanyBrand> = {\r\n botify: {\r\n name: 'Botify',\r\n domain: 'botify.life',\r\n tagline: 'AI-Powered Chatbots',\r\n primaryColor: '#6366F1',\r\n secondaryColor: '#8B5CF6',\r\n logo: {\r\n full: {\r\n light: 'https://botify.life/logos/botify-full-dark.svg',\r\n dark: 'https://botify.life/logos/botify-full-light.svg',\r\n },\r\n icon: {\r\n light: 'https://botify.life/logos/botify-icon-dark.svg',\r\n dark: 'https://botify.life/logos/botify-icon-light.svg',\r\n },\r\n favicon: 'https://botify.life/favicon.ico',\r\n },\r\n },\r\n exyconn: {\r\n name: 'Exyconn',\r\n domain: 'exyconn.com',\r\n tagline: 'Connect. Create. Collaborate.',\r\n primaryColor: '#0EA5E9',\r\n secondaryColor: '#06B6D4',\r\n logo: {\r\n full: {\r\n light: 'https://exyconn.com/logos/exyconn-full-dark.svg',\r\n dark: 'https://exyconn.com/logos/exyconn-full-light.svg',\r\n },\r\n icon: {\r\n light: 'https://exyconn.com/logos/exyconn-icon-dark.svg',\r\n dark: 'https://exyconn.com/logos/exyconn-icon-light.svg',\r\n },\r\n favicon: 'https://exyconn.com/favicon.ico',\r\n },\r\n },\r\n partywings: {\r\n name: 'PartyWings',\r\n domain: 'partywings.fun',\r\n tagline: 'Your Party, Your Rules',\r\n primaryColor: '#EC4899',\r\n secondaryColor: '#F472B6',\r\n logo: {\r\n full: {\r\n light: 'https://partywings.fun/logos/partywings-full-dark.svg',\r\n dark: 'https://partywings.fun/logos/partywings-full-light.svg',\r\n },\r\n icon: {\r\n light: 'https://partywings.fun/logos/partywings-icon-dark.svg',\r\n dark: 'https://partywings.fun/logos/partywings-icon-light.svg',\r\n },\r\n favicon: 'https://partywings.fun/favicon.ico',\r\n },\r\n },\r\n sibera: {\r\n name: 'Sibera',\r\n domain: 'sibera.work',\r\n tagline: 'Work Smarter, Together',\r\n primaryColor: '#10B981',\r\n secondaryColor: '#34D399',\r\n logo: {\r\n full: {\r\n light: 'https://sibera.work/logos/sibera-full-dark.svg',\r\n dark: 'https://sibera.work/logos/sibera-full-light.svg',\r\n },\r\n icon: {\r\n light: 'https://sibera.work/logos/sibera-icon-dark.svg',\r\n dark: 'https://sibera.work/logos/sibera-icon-light.svg',\r\n },\r\n favicon: 'https://sibera.work/favicon.ico',\r\n },\r\n },\r\n spentiva: {\r\n name: 'Spentiva',\r\n domain: 'spentiva.com',\r\n tagline: 'Smart Spending, Smart Living',\r\n primaryColor: '#F59E0B',\r\n secondaryColor: '#FBBF24',\r\n logo: {\r\n full: {\r\n light: 'https://spentiva.com/logos/spentiva-full-dark.svg',\r\n dark: 'https://spentiva.com/logos/spentiva-full-light.svg',\r\n },\r\n icon: {\r\n light: 'https://spentiva.com/logos/spentiva-icon-dark.svg',\r\n dark: 'https://spentiva.com/logos/spentiva-icon-light.svg',\r\n },\r\n favicon: 'https://spentiva.com/favicon.ico',\r\n },\r\n },\r\n};\r\n\r\n// Helper functions\r\nexport const getBrand = (key: string): CompanyBrand | undefined => {\r\n return brands[key.toLowerCase()];\r\n};\r\n\r\nexport const getBrandByDomain = (domain: string): CompanyBrand | undefined => {\r\n return Object.values(brands).find((b) => b.domain === domain);\r\n};\r\n\r\nexport const getLogo = (brandKey: string, mode: 'light' | 'dark', type: 'full' | 'icon' = 'full'): string | undefined => {\r\n const brand = getBrand(brandKey);\r\n if (!brand) return undefined;\r\n return brand.logo[type][mode];\r\n};\r\n\r\nexport const getAllBrands = (): CompanyBrand[] => {\r\n return Object.values(brands);\r\n};\r\n\r\nexport const getAllBrandKeys = (): string[] => {\r\n return Object.keys(brands);\r\n};\r\n\r\nexport default brands;\r\n","/**\r\n * Brand Identity Configuration\r\n * Complete brand identity for all Exyconn projects including logos,\r\n * colors, contact info, and social links\r\n */\r\n\r\n// ==========================================\r\n// LOGO INTERFACES\r\n// ==========================================\r\n\r\n/**\r\n * Logo variants interface\r\n * - light: Logo for light backgrounds (dark colored logo)\r\n * - dark: Logo for dark backgrounds (light colored logo)\r\n * - logoOnly: Just the icon/symbol without text (light bg)\r\n * - darkLogoOnly: Just the icon/symbol without text (dark bg)\r\n */\r\nexport interface LogoSet {\r\n /** Full logo with text for light backgrounds */\r\n light: string;\r\n /** Full logo with text for dark backgrounds */\r\n dark: string;\r\n /** Icon only for light backgrounds */\r\n logoOnly: string;\r\n /** Icon only for dark backgrounds */\r\n darkLogoOnly: string;\r\n /** Favicon URL */\r\n favicon: string;\r\n}\r\n\r\n/**\r\n * Brand colors\r\n */\r\nexport interface BrandColors {\r\n primary: string;\r\n secondary: string;\r\n accent?: string;\r\n background?: string;\r\n foreground?: string;\r\n}\r\n\r\n/**\r\n * Social media links\r\n */\r\nexport interface SocialLinks {\r\n twitter?: string;\r\n facebook?: string;\r\n instagram?: string;\r\n linkedin?: string;\r\n github?: string;\r\n youtube?: string;\r\n discord?: string;\r\n tiktok?: string;\r\n}\r\n\r\n/**\r\n * Contact information\r\n */\r\nexport interface ContactInfo {\r\n supportEmail: string;\r\n salesEmail?: string;\r\n phone?: string;\r\n address?: string;\r\n}\r\n\r\n/**\r\n * SEO Configuration\r\n */\r\nexport interface SEOConfig {\r\n title: string;\r\n description: string;\r\n keywords: string[];\r\n ogImage?: string;\r\n}\r\n\r\n/**\r\n * Complete Brand Identity\r\n */\r\nexport interface BrandIdentity {\r\n id: string;\r\n name: string;\r\n tagline: string;\r\n domain: string;\r\n logo: LogoSet;\r\n colors: BrandColors;\r\n contact: ContactInfo;\r\n social?: SocialLinks;\r\n seo?: SEOConfig;\r\n}\r\n\r\n// ==========================================\r\n// APP CONFIG - For Runtime Use\r\n// ==========================================\r\n\r\n/**\r\n * App configuration for runtime\r\n * Use this in your apps for consistent branding\r\n */\r\nexport interface AppConfig {\r\n name: string;\r\n tagline: string;\r\n domain: string;\r\n supportEmail: string;\r\n logo: LogoSet;\r\n colors: BrandColors;\r\n}\r\n\r\n// ==========================================\r\n// BRAND DEFINITIONS\r\n// ==========================================\r\n\r\nexport const BRANDS: Record<string, BrandIdentity> = {\r\n botify: {\r\n id: 'botify',\r\n name: 'Botify',\r\n tagline: 'AI-Powered Chatbots',\r\n domain: 'botify.life',\r\n logo: {\r\n light: 'https://botify.life/logos/botify-full-light.svg',\r\n dark: 'https://botify.life/logos/botify-full-dark.svg',\r\n logoOnly: 'https://botify.life/logos/botify-icon-light.svg',\r\n darkLogoOnly: 'https://botify.life/logos/botify-icon-dark.svg',\r\n favicon: 'https://botify.life/favicon.ico',\r\n },\r\n colors: {\r\n primary: '#6366F1',\r\n secondary: '#8B5CF6',\r\n accent: '#A78BFA',\r\n },\r\n contact: {\r\n supportEmail: 'support@botify.life',\r\n salesEmail: 'sales@botify.life',\r\n },\r\n social: {\r\n twitter: 'https://twitter.com/botifylife',\r\n github: 'https://github.com/botifylife',\r\n },\r\n seo: {\r\n title: 'Botify - AI-Powered Chatbots',\r\n description: 'Create intelligent chatbots with Botify. AI-powered conversations for your business.',\r\n keywords: ['chatbot', 'AI', 'conversational AI', 'customer support', 'automation'],\r\n },\r\n },\r\n exyconn: {\r\n id: 'exyconn',\r\n name: 'Exyconn',\r\n tagline: 'Connect. Create. Collaborate.',\r\n domain: 'exyconn.com',\r\n logo: {\r\n light: 'https://exyconn.com/logos/exyconn-full-light.svg',\r\n dark: 'https://exyconn.com/logos/exyconn-full-dark.svg',\r\n logoOnly: 'https://exyconn.com/logos/exyconn-icon-light.svg',\r\n darkLogoOnly: 'https://exyconn.com/logos/exyconn-icon-dark.svg',\r\n favicon: 'https://exyconn.com/favicon.ico',\r\n },\r\n colors: {\r\n primary: '#0EA5E9',\r\n secondary: '#06B6D4',\r\n accent: '#22D3EE',\r\n },\r\n contact: {\r\n supportEmail: 'support@exyconn.com',\r\n salesEmail: 'sales@exyconn.com',\r\n },\r\n social: {\r\n twitter: 'https://twitter.com/exyconn',\r\n linkedin: 'https://linkedin.com/company/exyconn',\r\n github: 'https://github.com/exyconn',\r\n },\r\n seo: {\r\n title: 'Exyconn - Connect. Create. Collaborate.',\r\n description: 'The platform that brings teams together. Connect, create, and collaborate seamlessly.',\r\n keywords: ['collaboration', 'team', 'productivity', 'communication', 'workspace'],\r\n },\r\n },\r\n partywings: {\r\n id: 'partywings',\r\n name: 'PartyWings',\r\n tagline: 'Your Party, Your Rules',\r\n domain: 'partywings.fun',\r\n logo: {\r\n light: 'https://partywings.fun/logos/partywings-full-light.svg',\r\n dark: 'https://partywings.fun/logos/partywings-full-dark.svg',\r\n logoOnly: 'https://partywings.fun/logos/partywings-icon-light.svg',\r\n darkLogoOnly: 'https://partywings.fun/logos/partywings-icon-dark.svg',\r\n favicon: 'https://partywings.fun/favicon.ico',\r\n },\r\n colors: {\r\n primary: '#EC4899',\r\n secondary: '#F472B6',\r\n accent: '#F9A8D4',\r\n },\r\n contact: {\r\n supportEmail: 'support@partywings.fun',\r\n },\r\n social: {\r\n instagram: 'https://instagram.com/partywingsfun',\r\n tiktok: 'https://tiktok.com/@partywingsfun',\r\n },\r\n seo: {\r\n title: 'PartyWings - Your Party, Your Rules',\r\n description: 'Plan unforgettable parties and events. Your party, your rules with PartyWings.',\r\n keywords: ['party', 'events', 'celebration', 'planning', 'entertainment'],\r\n },\r\n },\r\n sibera: {\r\n id: 'sibera',\r\n name: 'Sibera',\r\n tagline: 'Work Smarter, Together',\r\n domain: 'sibera.work',\r\n logo: {\r\n light: 'https://sibera.work/logos/sibera-full-light.svg',\r\n dark: 'https://sibera.work/logos/sibera-full-dark.svg',\r\n logoOnly: 'https://sibera.work/logos/sibera-icon-light.svg',\r\n darkLogoOnly: 'https://sibera.work/logos/sibera-icon-dark.svg',\r\n favicon: 'https://sibera.work/favicon.ico',\r\n },\r\n colors: {\r\n primary: '#10B981',\r\n secondary: '#34D399',\r\n accent: '#6EE7B7',\r\n },\r\n contact: {\r\n supportEmail: 'support@sibera.work',\r\n salesEmail: 'sales@sibera.work',\r\n },\r\n social: {\r\n twitter: 'https://twitter.com/siberawork',\r\n linkedin: 'https://linkedin.com/company/sibera',\r\n },\r\n seo: {\r\n title: 'Sibera - Work Smarter, Together',\r\n description: 'Streamline your workflow and collaborate efficiently with Sibera.',\r\n keywords: ['work management', 'productivity', 'team collaboration', 'project management'],\r\n },\r\n },\r\n spentiva: {\r\n id: 'spentiva',\r\n name: 'Spentiva',\r\n tagline: 'Smart Spending, Smart Living',\r\n domain: 'spentiva.com',\r\n logo: {\r\n light: 'https://spentiva.com/logos/spentiva-full-light.svg',\r\n dark: 'https://spentiva.com/logos/spentiva-full-dark.svg',\r\n logoOnly: 'https://spentiva.com/logos/spentiva-icon-light.svg',\r\n darkLogoOnly: 'https://spentiva.com/logos/spentiva-icon-dark.svg',\r\n favicon: 'https://spentiva.com/favicon.ico',\r\n },\r\n colors: {\r\n primary: '#F59E0B',\r\n secondary: '#FBBF24',\r\n accent: '#FCD34D',\r\n },\r\n contact: {\r\n supportEmail: 'support@spentiva.com',\r\n salesEmail: 'hello@spentiva.com',\r\n },\r\n social: {\r\n twitter: 'https://twitter.com/spentiva',\r\n instagram: 'https://instagram.com/spentiva',\r\n },\r\n seo: {\r\n title: 'Spentiva - Smart Spending, Smart Living',\r\n description: 'Take control of your finances with Spentiva. Smart spending for smart living.',\r\n keywords: ['finance', 'budgeting', 'expense tracking', 'money management', 'personal finance'],\r\n },\r\n },\r\n};\r\n\r\n// ==========================================\r\n// APP CONFIGS - Ready to use in projects\r\n// ==========================================\r\n\r\n/**\r\n * Pre-configured APP objects for each project\r\n * Import directly: import { APP } from '@exyconn/common'\r\n * Then configure which APP to use based on environment\r\n */\r\nexport const APPS = {\r\n BOTIFY: createAppConfig('botify'),\r\n EXYCONN: createAppConfig('exyconn'),\r\n PARTYWINGS: createAppConfig('partywings'),\r\n SIBERA: createAppConfig('sibera'),\r\n SPENTIVA: createAppConfig('spentiva'),\r\n} as const;\r\n\r\n// ==========================================\r\n// HELPER FUNCTIONS\r\n// ==========================================\r\n\r\n/**\r\n * Create an AppConfig from a brand\r\n */\r\nexport function createAppConfig(brandId: string): AppConfig {\r\n const brand = BRANDS[brandId.toLowerCase()];\r\n if (!brand) {\r\n throw new Error(`Brand \"${brandId}\" not found`);\r\n }\r\n return {\r\n name: brand.name,\r\n tagline: brand.tagline,\r\n domain: brand.domain,\r\n supportEmail: brand.contact.supportEmail,\r\n logo: brand.logo,\r\n colors: brand.colors,\r\n };\r\n}\r\n\r\n/**\r\n * Get brand by ID\r\n */\r\nexport function getBrandById(id: string): BrandIdentity | undefined {\r\n return BRANDS[id.toLowerCase()];\r\n}\r\n\r\n/**\r\n * Get brand by domain\r\n */\r\nexport function getBrandByDomain(domain: string): BrandIdentity | undefined {\r\n return Object.values(BRANDS).find((b) => b.domain === domain);\r\n}\r\n\r\n/**\r\n * Get all brands\r\n */\r\nexport function getAllBrands(): BrandIdentity[] {\r\n return Object.values(BRANDS);\r\n}\r\n\r\n/**\r\n * Get all brand IDs\r\n */\r\nexport function getAllBrandIds(): string[] {\r\n return Object.keys(BRANDS);\r\n}\r\n\r\n/**\r\n * Get logo for a brand\r\n * @param brandId - Brand identifier\r\n * @param variant - 'light' | 'dark' | 'logoOnly' | 'darkLogoOnly'\r\n */\r\nexport function getLogo(\r\n brandId: string,\r\n variant: keyof LogoSet\r\n): string | undefined {\r\n const brand = getBrandById(brandId);\r\n return brand?.logo[variant];\r\n}\r\n\r\n/**\r\n * Get appropriate logo based on theme\r\n * @param brandId - Brand identifier\r\n * @param theme - 'light' | 'dark'\r\n * @param iconOnly - Whether to return icon only logo\r\n */\r\nexport function getThemedLogo(\r\n brandId: string,\r\n theme: 'light' | 'dark',\r\n iconOnly = false\r\n): string | undefined {\r\n const brand = getBrandById(brandId);\r\n if (!brand) return undefined;\r\n\r\n if (iconOnly) {\r\n return theme === 'light' ? brand.logo.logoOnly : brand.logo.darkLogoOnly;\r\n }\r\n return brand.logo[theme];\r\n}\r\n\r\n/**\r\n * Get current app config based on domain\r\n * Useful for multi-tenant applications\r\n */\r\nexport function getAppConfigByDomain(domain: string): AppConfig | undefined {\r\n const brand = getBrandByDomain(domain);\r\n if (!brand) return undefined;\r\n return createAppConfig(brand.id);\r\n}\r\n\r\n/**\r\n * Detect brand from current window.location.hostname\r\n * For browser environments only\r\n */\r\nexport function detectCurrentBrand(): BrandIdentity | undefined {\r\n if (typeof window === 'undefined') return undefined;\r\n const hostname = window.location.hostname;\r\n return Object.values(BRANDS).find(\r\n (b) => hostname === b.domain || hostname.endsWith(`.${b.domain}`)\r\n );\r\n}\r\n\r\nexport default BRANDS;\r\n"]}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Phone codes by country
3
+ */
4
+ interface PhoneCode {
5
+ country: string;
6
+ code: string;
7
+ phoneCode: string;
8
+ flag: string;
9
+ }
10
+ declare const phoneCodes: PhoneCode[];
11
+ declare const getPhoneCodeByCountry: (countryCode: string) => PhoneCode | undefined;
12
+ declare const searchPhoneCodes: (query: string) => PhoneCode[];
13
+ declare const getPhoneCodesByPrefix: (prefix: string) => PhoneCode[];
14
+
15
+ export { type PhoneCode, phoneCodes as default, getPhoneCodeByCountry, getPhoneCodesByPrefix, phoneCodes, searchPhoneCodes };
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Phone codes by country
3
+ */
4
+ interface PhoneCode {
5
+ country: string;
6
+ code: string;
7
+ phoneCode: string;
8
+ flag: string;
9
+ }
10
+ declare const phoneCodes: PhoneCode[];
11
+ declare const getPhoneCodeByCountry: (countryCode: string) => PhoneCode | undefined;
12
+ declare const searchPhoneCodes: (query: string) => PhoneCode[];
13
+ declare const getPhoneCodesByPrefix: (prefix: string) => PhoneCode[];
14
+
15
+ export { type PhoneCode, phoneCodes as default, getPhoneCodeByCountry, getPhoneCodesByPrefix, phoneCodes, searchPhoneCodes };