@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,220 @@
1
+ // src/data/brand-identity.ts
2
+ var BRANDS = {
3
+ botify: {
4
+ id: "botify",
5
+ name: "Botify",
6
+ tagline: "AI-Powered Chatbots",
7
+ domain: "botify.life",
8
+ logo: {
9
+ light: "https://botify.life/logos/botify-full-light.svg",
10
+ dark: "https://botify.life/logos/botify-full-dark.svg",
11
+ logoOnly: "https://botify.life/logos/botify-icon-light.svg",
12
+ darkLogoOnly: "https://botify.life/logos/botify-icon-dark.svg",
13
+ favicon: "https://botify.life/favicon.ico"
14
+ },
15
+ colors: {
16
+ primary: "#6366F1",
17
+ secondary: "#8B5CF6",
18
+ accent: "#A78BFA"
19
+ },
20
+ contact: {
21
+ supportEmail: "support@botify.life",
22
+ salesEmail: "sales@botify.life"
23
+ },
24
+ social: {
25
+ twitter: "https://twitter.com/botifylife",
26
+ github: "https://github.com/botifylife"
27
+ },
28
+ seo: {
29
+ title: "Botify - AI-Powered Chatbots",
30
+ description: "Create intelligent chatbots with Botify. AI-powered conversations for your business.",
31
+ keywords: ["chatbot", "AI", "conversational AI", "customer support", "automation"]
32
+ }
33
+ },
34
+ exyconn: {
35
+ id: "exyconn",
36
+ name: "Exyconn",
37
+ tagline: "Connect. Create. Collaborate.",
38
+ domain: "exyconn.com",
39
+ logo: {
40
+ light: "https://exyconn.com/logos/exyconn-full-light.svg",
41
+ dark: "https://exyconn.com/logos/exyconn-full-dark.svg",
42
+ logoOnly: "https://exyconn.com/logos/exyconn-icon-light.svg",
43
+ darkLogoOnly: "https://exyconn.com/logos/exyconn-icon-dark.svg",
44
+ favicon: "https://exyconn.com/favicon.ico"
45
+ },
46
+ colors: {
47
+ primary: "#0EA5E9",
48
+ secondary: "#06B6D4",
49
+ accent: "#22D3EE"
50
+ },
51
+ contact: {
52
+ supportEmail: "support@exyconn.com",
53
+ salesEmail: "sales@exyconn.com"
54
+ },
55
+ social: {
56
+ twitter: "https://twitter.com/exyconn",
57
+ linkedin: "https://linkedin.com/company/exyconn",
58
+ github: "https://github.com/exyconn"
59
+ },
60
+ seo: {
61
+ title: "Exyconn - Connect. Create. Collaborate.",
62
+ description: "The platform that brings teams together. Connect, create, and collaborate seamlessly.",
63
+ keywords: ["collaboration", "team", "productivity", "communication", "workspace"]
64
+ }
65
+ },
66
+ partywings: {
67
+ id: "partywings",
68
+ name: "PartyWings",
69
+ tagline: "Your Party, Your Rules",
70
+ domain: "partywings.fun",
71
+ logo: {
72
+ light: "https://partywings.fun/logos/partywings-full-light.svg",
73
+ dark: "https://partywings.fun/logos/partywings-full-dark.svg",
74
+ logoOnly: "https://partywings.fun/logos/partywings-icon-light.svg",
75
+ darkLogoOnly: "https://partywings.fun/logos/partywings-icon-dark.svg",
76
+ favicon: "https://partywings.fun/favicon.ico"
77
+ },
78
+ colors: {
79
+ primary: "#EC4899",
80
+ secondary: "#F472B6",
81
+ accent: "#F9A8D4"
82
+ },
83
+ contact: {
84
+ supportEmail: "support@partywings.fun"
85
+ },
86
+ social: {
87
+ instagram: "https://instagram.com/partywingsfun",
88
+ tiktok: "https://tiktok.com/@partywingsfun"
89
+ },
90
+ seo: {
91
+ title: "PartyWings - Your Party, Your Rules",
92
+ description: "Plan unforgettable parties and events. Your party, your rules with PartyWings.",
93
+ keywords: ["party", "events", "celebration", "planning", "entertainment"]
94
+ }
95
+ },
96
+ sibera: {
97
+ id: "sibera",
98
+ name: "Sibera",
99
+ tagline: "Work Smarter, Together",
100
+ domain: "sibera.work",
101
+ logo: {
102
+ light: "https://sibera.work/logos/sibera-full-light.svg",
103
+ dark: "https://sibera.work/logos/sibera-full-dark.svg",
104
+ logoOnly: "https://sibera.work/logos/sibera-icon-light.svg",
105
+ darkLogoOnly: "https://sibera.work/logos/sibera-icon-dark.svg",
106
+ favicon: "https://sibera.work/favicon.ico"
107
+ },
108
+ colors: {
109
+ primary: "#10B981",
110
+ secondary: "#34D399",
111
+ accent: "#6EE7B7"
112
+ },
113
+ contact: {
114
+ supportEmail: "support@sibera.work",
115
+ salesEmail: "sales@sibera.work"
116
+ },
117
+ social: {
118
+ twitter: "https://twitter.com/siberawork",
119
+ linkedin: "https://linkedin.com/company/sibera"
120
+ },
121
+ seo: {
122
+ title: "Sibera - Work Smarter, Together",
123
+ description: "Streamline your workflow and collaborate efficiently with Sibera.",
124
+ keywords: ["work management", "productivity", "team collaboration", "project management"]
125
+ }
126
+ },
127
+ spentiva: {
128
+ id: "spentiva",
129
+ name: "Spentiva",
130
+ tagline: "Smart Spending, Smart Living",
131
+ domain: "spentiva.com",
132
+ logo: {
133
+ light: "https://spentiva.com/logos/spentiva-full-light.svg",
134
+ dark: "https://spentiva.com/logos/spentiva-full-dark.svg",
135
+ logoOnly: "https://spentiva.com/logos/spentiva-icon-light.svg",
136
+ darkLogoOnly: "https://spentiva.com/logos/spentiva-icon-dark.svg",
137
+ favicon: "https://spentiva.com/favicon.ico"
138
+ },
139
+ colors: {
140
+ primary: "#F59E0B",
141
+ secondary: "#FBBF24",
142
+ accent: "#FCD34D"
143
+ },
144
+ contact: {
145
+ supportEmail: "support@spentiva.com",
146
+ salesEmail: "hello@spentiva.com"
147
+ },
148
+ social: {
149
+ twitter: "https://twitter.com/spentiva",
150
+ instagram: "https://instagram.com/spentiva"
151
+ },
152
+ seo: {
153
+ title: "Spentiva - Smart Spending, Smart Living",
154
+ description: "Take control of your finances with Spentiva. Smart spending for smart living.",
155
+ keywords: ["finance", "budgeting", "expense tracking", "money management", "personal finance"]
156
+ }
157
+ }
158
+ };
159
+ var APPS = {
160
+ BOTIFY: createAppConfig("botify"),
161
+ EXYCONN: createAppConfig("exyconn"),
162
+ PARTYWINGS: createAppConfig("partywings"),
163
+ SIBERA: createAppConfig("sibera"),
164
+ SPENTIVA: createAppConfig("spentiva")
165
+ };
166
+ function createAppConfig(brandId) {
167
+ const brand = BRANDS[brandId.toLowerCase()];
168
+ if (!brand) {
169
+ throw new Error(`Brand "${brandId}" not found`);
170
+ }
171
+ return {
172
+ name: brand.name,
173
+ tagline: brand.tagline,
174
+ domain: brand.domain,
175
+ supportEmail: brand.contact.supportEmail,
176
+ logo: brand.logo,
177
+ colors: brand.colors
178
+ };
179
+ }
180
+ function getBrandById(id) {
181
+ return BRANDS[id.toLowerCase()];
182
+ }
183
+ function getBrandByDomain(domain) {
184
+ return Object.values(BRANDS).find((b) => b.domain === domain);
185
+ }
186
+ function getAllBrands() {
187
+ return Object.values(BRANDS);
188
+ }
189
+ function getAllBrandIds() {
190
+ return Object.keys(BRANDS);
191
+ }
192
+ function getLogo(brandId, variant) {
193
+ const brand = getBrandById(brandId);
194
+ return brand?.logo[variant];
195
+ }
196
+ function getThemedLogo(brandId, theme, iconOnly = false) {
197
+ const brand = getBrandById(brandId);
198
+ if (!brand) return void 0;
199
+ if (iconOnly) {
200
+ return theme === "light" ? brand.logo.logoOnly : brand.logo.darkLogoOnly;
201
+ }
202
+ return brand.logo[theme];
203
+ }
204
+ function getAppConfigByDomain(domain) {
205
+ const brand = getBrandByDomain(domain);
206
+ if (!brand) return void 0;
207
+ return createAppConfig(brand.id);
208
+ }
209
+ function detectCurrentBrand() {
210
+ if (typeof window === "undefined") return void 0;
211
+ const hostname = window.location.hostname;
212
+ return Object.values(BRANDS).find(
213
+ (b) => hostname === b.domain || hostname.endsWith(`.${b.domain}`)
214
+ );
215
+ }
216
+ var brand_identity_default = BRANDS;
217
+
218
+ export { APPS, BRANDS, createAppConfig, brand_identity_default as default, detectCurrentBrand, getAllBrandIds, getAllBrands, getAppConfigByDomain, getBrandByDomain, getBrandById, getLogo, getThemedLogo };
219
+ //# sourceMappingURL=brand-identity.mjs.map
220
+ //# sourceMappingURL=brand-identity.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/data/brand-identity.ts"],"names":[],"mappings":";AA+GO,IAAM,MAAA,GAAwC;AAAA,EACnD,MAAA,EAAQ;AAAA,IACN,EAAA,EAAI,QAAA;AAAA,IACJ,IAAA,EAAM,QAAA;AAAA,IACN,OAAA,EAAS,qBAAA;AAAA,IACT,MAAA,EAAQ,aAAA;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,KAAA,EAAO,iDAAA;AAAA,MACP,IAAA,EAAM,gDAAA;AAAA,MACN,QAAA,EAAU,iDAAA;AAAA,MACV,YAAA,EAAc,gDAAA;AAAA,MACd,OAAA,EAAS;AAAA,KACX;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,OAAA,EAAS,SAAA;AAAA,MACT,SAAA,EAAW,SAAA;AAAA,MACX,MAAA,EAAQ;AAAA,KACV;AAAA,IACA,OAAA,EAAS;AAAA,MACP,YAAA,EAAc,qBAAA;AAAA,MACd,UAAA,EAAY;AAAA,KACd;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,OAAA,EAAS,gCAAA;AAAA,MACT,MAAA,EAAQ;AAAA,KACV;AAAA,IACA,GAAA,EAAK;AAAA,MACH,KAAA,EAAO,8BAAA;AAAA,MACP,WAAA,EAAa,sFAAA;AAAA,MACb,UAAU,CAAC,SAAA,EAAW,IAAA,EAAM,mBAAA,EAAqB,oBAAoB,YAAY;AAAA;AACnF,GACF;AAAA,EACA,OAAA,EAAS;AAAA,IACP,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,OAAA,EAAS,+BAAA;AAAA,IACT,MAAA,EAAQ,aAAA;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,KAAA,EAAO,kDAAA;AAAA,MACP,IAAA,EAAM,iDAAA;AAAA,MACN,QAAA,EAAU,kDAAA;AAAA,MACV,YAAA,EAAc,iDAAA;AAAA,MACd,OAAA,EAAS;AAAA,KACX;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,OAAA,EAAS,SAAA;AAAA,MACT,SAAA,EAAW,SAAA;AAAA,MACX,MAAA,EAAQ;AAAA,KACV;AAAA,IACA,OAAA,EAAS;AAAA,MACP,YAAA,EAAc,qBAAA;AAAA,MACd,UAAA,EAAY;AAAA,KACd;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,OAAA,EAAS,6BAAA;AAAA,MACT,QAAA,EAAU,sCAAA;AAAA,MACV,MAAA,EAAQ;AAAA,KACV;AAAA,IACA,GAAA,EAAK;AAAA,MACH,KAAA,EAAO,yCAAA;AAAA,MACP,WAAA,EAAa,uFAAA;AAAA,MACb,UAAU,CAAC,eAAA,EAAiB,MAAA,EAAQ,cAAA,EAAgB,iBAAiB,WAAW;AAAA;AAClF,GACF;AAAA,EACA,UAAA,EAAY;AAAA,IACV,EAAA,EAAI,YAAA;AAAA,IACJ,IAAA,EAAM,YAAA;AAAA,IACN,OAAA,EAAS,wBAAA;AAAA,IACT,MAAA,EAAQ,gBAAA;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,KAAA,EAAO,wDAAA;AAAA,MACP,IAAA,EAAM,uDAAA;AAAA,MACN,QAAA,EAAU,wDAAA;AAAA,MACV,YAAA,EAAc,uDAAA;AAAA,MACd,OAAA,EAAS;AAAA,KACX;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,OAAA,EAAS,SAAA;AAAA,MACT,SAAA,EAAW,SAAA;AAAA,MACX,MAAA,EAAQ;AAAA,KACV;AAAA,IACA,OAAA,EAAS;AAAA,MACP,YAAA,EAAc;AAAA,KAChB;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,SAAA,EAAW,qCAAA;AAAA,MACX,MAAA,EAAQ;AAAA,KACV;AAAA,IACA,GAAA,EAAK;AAAA,MACH,KAAA,EAAO,qCAAA;AAAA,MACP,WAAA,EAAa,gFAAA;AAAA,MACb,UAAU,CAAC,OAAA,EAAS,QAAA,EAAU,aAAA,EAAe,YAAY,eAAe;AAAA;AAC1E,GACF;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,EAAA,EAAI,QAAA;AAAA,IACJ,IAAA,EAAM,QAAA;AAAA,IACN,OAAA,EAAS,wBAAA;AAAA,IACT,MAAA,EAAQ,aAAA;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,KAAA,EAAO,iDAAA;AAAA,MACP,IAAA,EAAM,gDAAA;AAAA,MACN,QAAA,EAAU,iDAAA;AAAA,MACV,YAAA,EAAc,gDAAA;AAAA,MACd,OAAA,EAAS;AAAA,KACX;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,OAAA,EAAS,SAAA;AAAA,MACT,SAAA,EAAW,SAAA;AAAA,MACX,MAAA,EAAQ;AAAA,KACV;AAAA,IACA,OAAA,EAAS;AAAA,MACP,YAAA,EAAc,qBAAA;AAAA,MACd,UAAA,EAAY;AAAA,KACd;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,OAAA,EAAS,gCAAA;AAAA,MACT,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,GAAA,EAAK;AAAA,MACH,KAAA,EAAO,iCAAA;AAAA,MACP,WAAA,EAAa,mEAAA;AAAA,MACb,QAAA,EAAU,CAAC,iBAAA,EAAmB,cAAA,EAAgB,sBAAsB,oBAAoB;AAAA;AAC1F,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,EAAA,EAAI,UAAA;AAAA,IACJ,IAAA,EAAM,UAAA;AAAA,IACN,OAAA,EAAS,8BAAA;AAAA,IACT,MAAA,EAAQ,cAAA;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,KAAA,EAAO,oDAAA;AAAA,MACP,IAAA,EAAM,mDAAA;AAAA,MACN,QAAA,EAAU,oDAAA;AAAA,MACV,YAAA,EAAc,mDAAA;AAAA,MACd,OAAA,EAAS;AAAA,KACX;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,OAAA,EAAS,SAAA;AAAA,MACT,SAAA,EAAW,SAAA;AAAA,MACX,MAAA,EAAQ;AAAA,KACV;AAAA,IACA,OAAA,EAAS;AAAA,MACP,YAAA,EAAc,sBAAA;AAAA,MACd,UAAA,EAAY;AAAA,KACd;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,OAAA,EAAS,8BAAA;AAAA,MACT,SAAA,EAAW;AAAA,KACb;AAAA,IACA,GAAA,EAAK;AAAA,MACH,KAAA,EAAO,yCAAA;AAAA,MACP,WAAA,EAAa,+EAAA;AAAA,MACb,UAAU,CAAC,SAAA,EAAW,WAAA,EAAa,kBAAA,EAAoB,oBAAoB,kBAAkB;AAAA;AAC/F;AAEJ;AAWO,IAAM,IAAA,GAAO;AAAA,EAClB,MAAA,EAAQ,gBAAgB,QAAQ,CAAA;AAAA,EAChC,OAAA,EAAS,gBAAgB,SAAS,CAAA;AAAA,EAClC,UAAA,EAAY,gBAAgB,YAAY,CAAA;AAAA,EACxC,MAAA,EAAQ,gBAAgB,QAAQ,CAAA;AAAA,EAChC,QAAA,EAAU,gBAAgB,UAAU;AACtC;AASO,SAAS,gBAAgB,OAAA,EAA4B;AAC1D,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,OAAA,CAAQ,WAAA,EAAa,CAAA;AAC1C,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,OAAA,EAAU,OAAO,CAAA,WAAA,CAAa,CAAA;AAAA,EAChD;AACA,EAAA,OAAO;AAAA,IACL,MAAM,KAAA,CAAM,IAAA;AAAA,IACZ,SAAS,KAAA,CAAM,OAAA;AAAA,IACf,QAAQ,KAAA,CAAM,MAAA;AAAA,IACd,YAAA,EAAc,MAAM,OAAA,CAAQ,YAAA;AAAA,IAC5B,MAAM,KAAA,CAAM,IAAA;AAAA,IACZ,QAAQ,KAAA,CAAM;AAAA,GAChB;AACF;AAKO,SAAS,aAAa,EAAA,EAAuC;AAClE,EAAA,OAAO,MAAA,CAAO,EAAA,CAAG,WAAA,EAAa,CAAA;AAChC;AAKO,SAAS,iBAAiB,MAAA,EAA2C;AAC1E,EAAA,OAAO,MAAA,CAAO,OAAO,MAAM,CAAA,CAAE,KAAK,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,KAAW,MAAM,CAAA;AAC9D;AAKO,SAAS,YAAA,GAAgC;AAC9C,EAAA,OAAO,MAAA,CAAO,OAAO,MAAM,CAAA;AAC7B;AAKO,SAAS,cAAA,GAA2B;AACzC,EAAA,OAAO,MAAA,CAAO,KAAK,MAAM,CAAA;AAC3B;AAOO,SAAS,OAAA,CACd,SACA,OAAA,EACoB;AACpB,EAAA,MAAM,KAAA,GAAQ,aAAa,OAAO,CAAA;AAClC,EAAA,OAAO,KAAA,EAAO,KAAK,OAAO,CAAA;AAC5B;AAQO,SAAS,aAAA,CACd,OAAA,EACA,KAAA,EACA,QAAA,GAAW,KAAA,EACS;AACpB,EAAA,MAAM,KAAA,GAAQ,aAAa,OAAO,CAAA;AAClC,EAAA,IAAI,CAAC,OAAO,OAAO,MAAA;AAEnB,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,OAAO,UAAU,OAAA,GAAU,KAAA,CAAM,IAAA,CAAK,QAAA,GAAW,MAAM,IAAA,CAAK,YAAA;AAAA,EAC9D;AACA,EAAA,OAAO,KAAA,CAAM,KAAK,KAAK,CAAA;AACzB;AAMO,SAAS,qBAAqB,MAAA,EAAuC;AAC1E,EAAA,MAAM,KAAA,GAAQ,iBAAiB,MAAM,CAAA;AACrC,EAAA,IAAI,CAAC,OAAO,OAAO,MAAA;AACnB,EAAA,OAAO,eAAA,CAAgB,MAAM,EAAE,CAAA;AACjC;AAMO,SAAS,kBAAA,GAAgD;AAC9D,EAAA,IAAI,OAAO,MAAA,KAAW,WAAA,EAAa,OAAO,MAAA;AAC1C,EAAA,MAAM,QAAA,GAAW,OAAO,QAAA,CAAS,QAAA;AACjC,EAAA,OAAO,MAAA,CAAO,MAAA,CAAO,MAAM,CAAA,CAAE,IAAA;AAAA,IAC3B,CAAC,CAAA,KAAM,QAAA,KAAa,CAAA,CAAE,MAAA,IAAU,SAAS,QAAA,CAAS,CAAA,CAAA,EAAI,CAAA,CAAE,MAAM,CAAA,CAAE;AAAA,GAClE;AACF;AAEA,IAAO,sBAAA,GAAQ","file":"brand-identity.mjs","sourcesContent":["/**\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,61 @@
1
+ /**
2
+ * Country with nested cities data
3
+ */
4
+ interface City {
5
+ name: string;
6
+ stateCode?: string;
7
+ }
8
+ interface State {
9
+ name: string;
10
+ code: string;
11
+ cities: City[];
12
+ }
13
+ interface Country {
14
+ name: string;
15
+ code: string;
16
+ code3: string;
17
+ flag?: string;
18
+ phoneCode: string;
19
+ currency: string;
20
+ currencySymbol: string;
21
+ continent: string;
22
+ capital: string;
23
+ timezone: string;
24
+ states: State[];
25
+ }
26
+ /**
27
+ * Convert country code to emoji flag
28
+ * @param countryCode - ISO 3166-1 alpha-2 country code
29
+ * @returns Emoji flag string
30
+ */
31
+ declare const codeToFlag: (countryCode: string) => string;
32
+ declare const countries: Country[];
33
+ /**
34
+ * Country with flag guaranteed (auto-generated from code if not set)
35
+ */
36
+ interface CountryWithFlag extends Omit<Country, 'flag'> {
37
+ flag: string;
38
+ }
39
+ declare const getCountryByCode: (code: string) => Country | undefined;
40
+ declare const getCountryByName: (name: string) => Country | undefined;
41
+ declare const getStatesByCountry: (countryCode: string) => State[];
42
+ declare const getCitiesByState: (countryCode: string, stateCode: string) => City[];
43
+ declare const getAllCities: (countryCode: string) => City[];
44
+ declare const getCountriesByContinent: (continent: string) => Country[];
45
+ declare const searchCountries: (query: string) => Country[];
46
+ /**
47
+ * Get flag emoji for a country code
48
+ * @param countryCode - ISO 3166-1 alpha-2 country code
49
+ * @returns Emoji flag or the flag from country data
50
+ */
51
+ declare const getFlag: (countryCode: string) => string;
52
+ /**
53
+ * Get country with auto-generated flag if not set
54
+ */
55
+ declare const getCountryWithFlag: (code: string) => CountryWithFlag | undefined;
56
+ /**
57
+ * Get all countries with flags (auto-generate if missing)
58
+ */
59
+ declare const getAllCountriesWithFlags: () => CountryWithFlag[];
60
+
61
+ export { type City, type Country, type CountryWithFlag, type State, codeToFlag, countries, countries as default, getAllCities, getAllCountriesWithFlags, getCitiesByState, getCountriesByContinent, getCountryByCode, getCountryByName, getCountryWithFlag, getFlag, getStatesByCountry, searchCountries };
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Country with nested cities data
3
+ */
4
+ interface City {
5
+ name: string;
6
+ stateCode?: string;
7
+ }
8
+ interface State {
9
+ name: string;
10
+ code: string;
11
+ cities: City[];
12
+ }
13
+ interface Country {
14
+ name: string;
15
+ code: string;
16
+ code3: string;
17
+ flag?: string;
18
+ phoneCode: string;
19
+ currency: string;
20
+ currencySymbol: string;
21
+ continent: string;
22
+ capital: string;
23
+ timezone: string;
24
+ states: State[];
25
+ }
26
+ /**
27
+ * Convert country code to emoji flag
28
+ * @param countryCode - ISO 3166-1 alpha-2 country code
29
+ * @returns Emoji flag string
30
+ */
31
+ declare const codeToFlag: (countryCode: string) => string;
32
+ declare const countries: Country[];
33
+ /**
34
+ * Country with flag guaranteed (auto-generated from code if not set)
35
+ */
36
+ interface CountryWithFlag extends Omit<Country, 'flag'> {
37
+ flag: string;
38
+ }
39
+ declare const getCountryByCode: (code: string) => Country | undefined;
40
+ declare const getCountryByName: (name: string) => Country | undefined;
41
+ declare const getStatesByCountry: (countryCode: string) => State[];
42
+ declare const getCitiesByState: (countryCode: string, stateCode: string) => City[];
43
+ declare const getAllCities: (countryCode: string) => City[];
44
+ declare const getCountriesByContinent: (continent: string) => Country[];
45
+ declare const searchCountries: (query: string) => Country[];
46
+ /**
47
+ * Get flag emoji for a country code
48
+ * @param countryCode - ISO 3166-1 alpha-2 country code
49
+ * @returns Emoji flag or the flag from country data
50
+ */
51
+ declare const getFlag: (countryCode: string) => string;
52
+ /**
53
+ * Get country with auto-generated flag if not set
54
+ */
55
+ declare const getCountryWithFlag: (code: string) => CountryWithFlag | undefined;
56
+ /**
57
+ * Get all countries with flags (auto-generate if missing)
58
+ */
59
+ declare const getAllCountriesWithFlags: () => CountryWithFlag[];
60
+
61
+ export { type City, type Country, type CountryWithFlag, type State, codeToFlag, countries, countries as default, getAllCities, getAllCountriesWithFlags, getCitiesByState, getCountriesByContinent, getCountryByCode, getCountryByName, getCountryWithFlag, getFlag, getStatesByCountry, searchCountries };