@pisell/private-materials 6.3.30 → 6.3.32

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 (287) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/index.js +1 -1
  5. package/build/lowcode/meta.js +9 -1
  6. package/build/lowcode/preview.js +146 -146
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +9 -9
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +9 -9
  11. package/es/components/appointmentBooking/components/Cart/Item/index.d.ts +1 -1
  12. package/es/components/appointmentBooking/components/Cart/Item/index.js +3 -2
  13. package/es/components/appointmentBooking/components/ConfirmInformation/index.js +267 -76
  14. package/es/components/appointmentBooking/components/ConfirmInformation/index.less +15 -0
  15. package/es/components/appointmentBooking/hooks.d.ts +1 -0
  16. package/es/components/appointmentBooking/hooks.js +30 -30
  17. package/es/components/appointmentBooking/locales.d.ts +3 -0
  18. package/es/components/appointmentBooking/locales.js +9 -6
  19. package/es/components/booking/addons/model.d.ts +10 -1
  20. package/es/components/booking/components/footer/index.js +4 -1
  21. package/es/components/booking/components/footer/utils.js +62 -46
  22. package/es/components/booking/forms/model.d.ts +10 -1
  23. package/es/components/booking/info/clientVariant/hooks/useClientFn.js +2 -2
  24. package/es/components/booking/info/clientVariant/vertical/index.js +1 -1
  25. package/es/components/booking/info/main.js +3 -2
  26. package/es/components/booking/info/model.d.ts +10 -1
  27. package/es/components/booking/info/model.js +5 -0
  28. package/es/components/booking/info/service/addService/utils.d.ts +1 -1
  29. package/es/components/booking/info2/index.js +3 -2
  30. package/es/components/booking/info2/service/addService/utils.d.ts +1 -1
  31. package/es/components/booking/info2/service/contactInfoMode/index.d.ts +2 -0
  32. package/es/components/booking/info2/service/contactInfoMode/index.js +94 -0
  33. package/es/components/booking/locales.d.ts +3 -0
  34. package/es/components/booking/locales.js +9 -3
  35. package/es/components/booking/model.d.ts +13 -1
  36. package/es/components/booking/model.js +3 -0
  37. package/es/components/booking/notes/model.d.ts +10 -1
  38. package/es/components/booking/payments/model.d.ts +10 -1
  39. package/es/components/eftposPay/amount.d.ts +1 -1
  40. package/es/components/eftposPay/device.d.ts +1 -1
  41. package/es/components/eftposPay/store/index.d.ts +2 -2
  42. package/es/components/pay/toC/model.d.ts +9 -1
  43. package/es/components/schedules/model.d.ts +9 -1
  44. package/es/components/ticketBooking/components/ticketBooking/index.less +2 -1
  45. package/es/components/wallet/Detail/model.d.ts +13 -1
  46. package/es/components/wallet/DiscountCard/model.d.ts +14 -1
  47. package/es/components/wallet/PointCard/model.d.ts +13 -1
  48. package/es/components/wallet/RechargeableCard/model.d.ts +29 -1
  49. package/es/components/wallet/Voucher/model.d.ts +13 -1
  50. package/es/components/wallet/model.d.ts +9 -1
  51. package/es/index.d.ts +3 -0
  52. package/es/index.js +4 -1
  53. package/es/plus/clientName/index.d.ts +4 -0
  54. package/es/plus/clientName/index.js +18 -0
  55. package/es/plus/clientName/index.less +10 -0
  56. package/es/plus/clientName/type.d.ts +13 -0
  57. package/es/plus/clientName/type.js +1 -0
  58. package/es/plus/clientName/utils.d.ts +2 -0
  59. package/es/plus/clientName/utils.js +18 -0
  60. package/es/plus/contactInfo/components/Avatar/index.d.ts +10 -0
  61. package/es/plus/contactInfo/components/Avatar/index.js +30 -0
  62. package/es/plus/contactInfo/components/SwipeAction/index.d.ts +46 -0
  63. package/es/plus/contactInfo/components/SwipeAction/index.js +360 -0
  64. package/es/plus/contactInfo/components/SwipeAction/index.less +74 -0
  65. package/es/plus/contactInfo/index.d.ts +6 -0
  66. package/es/plus/contactInfo/index.js +198 -0
  67. package/es/plus/contactInfo/index.less +621 -0
  68. package/es/plus/contactInfo/locales.d.ts +15 -0
  69. package/es/plus/contactInfo/locales.js +14 -0
  70. package/es/plus/contactInfo/types.d.ts +91 -0
  71. package/es/plus/contactInfo/types.js +1 -0
  72. package/es/plus/contactInfo/utils.d.ts +7 -0
  73. package/es/plus/contactInfo/utils.js +50 -0
  74. package/es/plus/contactInfoModal/ContactInfoContent.d.ts +3 -0
  75. package/es/plus/contactInfoModal/ContactInfoContent.js +74 -0
  76. package/es/plus/contactInfoModal/index.d.ts +40 -0
  77. package/es/plus/contactInfoModal/index.js +154 -0
  78. package/es/plus/contactInfoModal/index.less +19 -0
  79. package/es/plus/contactInfoModal/locales.d.ts +66 -0
  80. package/es/plus/contactInfoModal/locales.js +65 -0
  81. package/es/pro/Login2.0/AuthModal.d.ts +143 -0
  82. package/es/pro/Login2.0/AuthModal.js +624 -0
  83. package/es/pro/Login2.0/Login2.d.ts +61 -0
  84. package/es/pro/Login2.0/Login2.js +2157 -0
  85. package/es/pro/Login2.0/Register2.d.ts +65 -0
  86. package/es/pro/Login2.0/Register2.js +1501 -0
  87. package/es/pro/Login2.0/components/ForgotPasswordFlow.d.ts +31 -0
  88. package/es/pro/Login2.0/components/ForgotPasswordFlow.js +330 -0
  89. package/es/pro/Login2.0/components/LegalTerms.d.ts +8 -0
  90. package/es/pro/Login2.0/components/LegalTerms.js +51 -0
  91. package/es/pro/Login2.0/components/LegalTerms.less +74 -0
  92. package/es/pro/Login2.0/components/LoginCodeInput.d.ts +27 -0
  93. package/es/pro/Login2.0/components/LoginCodeInput.js +207 -0
  94. package/es/pro/Login2.0/components/OAuthButtonGroup.d.ts +22 -0
  95. package/es/pro/Login2.0/components/OAuthButtonGroup.js +55 -0
  96. package/es/pro/Login2.0/components/PhoneInput.d.ts +53 -0
  97. package/es/pro/Login2.0/components/PhoneInput.js +414 -0
  98. package/es/pro/Login2.0/components/PhoneInput.less +148 -0
  99. package/es/pro/Login2.0/components/phoneValidation.d.ts +17 -0
  100. package/es/pro/Login2.0/components/phoneValidation.js +228 -0
  101. package/es/pro/Login2.0/hooks/index.d.ts +2 -0
  102. package/es/pro/Login2.0/hooks/index.js +1 -0
  103. package/es/pro/Login2.0/hooks/usePasswordValidationRules.d.ts +24 -0
  104. package/es/pro/Login2.0/hooks/usePasswordValidationRules.js +87 -0
  105. package/es/pro/Login2.0/hooks/useRegisterFlow.d.ts +39 -0
  106. package/es/pro/Login2.0/hooks/useRegisterFlow.js +158 -0
  107. package/es/pro/Login2.0/hooks/useRegistrationMethods.d.ts +9 -0
  108. package/es/pro/Login2.0/hooks/useRegistrationMethods.js +31 -0
  109. package/es/pro/Login2.0/index.js +8 -0
  110. package/es/pro/Login2.0/index.less +993 -0
  111. package/es/pro/Login2.0/locales.d.ts +543 -0
  112. package/es/pro/Login2.0/locales.js +622 -0
  113. package/es/pro/Login2.0/shared/Header.d.ts +11 -0
  114. package/es/pro/Login2.0/shared/Header.js +42 -0
  115. package/es/pro/Login2.0/shared/OAuthButtons.d.ts +11 -0
  116. package/es/pro/Login2.0/shared/OAuthButtons.js +59 -0
  117. package/es/pro/Login2.0/shared/registerFlow.d.ts +116 -0
  118. package/es/pro/Login2.0/shared/registerFlow.js +171 -0
  119. package/es/pro/Login2.0/shared/types.d.ts +232 -0
  120. package/es/pro/Login2.0/shared/types.js +1 -0
  121. package/es/pro/Login2.0/steps/CodeInput.d.ts +24 -0
  122. package/es/pro/Login2.0/steps/CodeInput.js +209 -0
  123. package/es/pro/Login2.0/steps/EmailAlreadyRegistered.d.ts +12 -0
  124. package/es/pro/Login2.0/steps/EmailAlreadyRegistered.js +35 -0
  125. package/es/pro/Login2.0/steps/EmailLinkAlreadyUsed.d.ts +7 -0
  126. package/es/pro/Login2.0/steps/EmailLinkAlreadyUsed.js +25 -0
  127. package/es/pro/Login2.0/steps/EmailLinkExpired.d.ts +9 -0
  128. package/es/pro/Login2.0/steps/EmailLinkExpired.js +33 -0
  129. package/es/pro/Login2.0/steps/SetPassword.d.ts +19 -0
  130. package/es/pro/Login2.0/steps/SetPassword.js +148 -0
  131. package/es/pro/Login2.0/steps/VerificationSuccess.d.ts +8 -0
  132. package/es/pro/Login2.0/steps/VerificationSuccess.js +35 -0
  133. package/es/pro/Login2.0/steps/VerifyingEmailLink.d.ts +7 -0
  134. package/es/pro/Login2.0/steps/VerifyingEmailLink.js +17 -0
  135. package/es/pro/Login2.0/steps/WaitEmailLink.d.ts +18 -0
  136. package/es/pro/Login2.0/steps/WaitEmailLink.js +54 -0
  137. package/es/pro/Login2.0/steps/index.d.ts +19 -0
  138. package/es/pro/Login2.0/steps/index.js +11 -0
  139. package/es/pro/Login2.0/steps/steps.less +423 -0
  140. package/es/pro/Login2.0/types.d.ts +167 -0
  141. package/es/pro/Login2.0/types.js +1 -0
  142. package/lib/components/appointmentBooking/components/Cart/Item/index.d.ts +1 -1
  143. package/lib/components/appointmentBooking/components/Cart/Item/index.js +5 -3
  144. package/lib/components/appointmentBooking/components/ConfirmInformation/index.js +151 -13
  145. package/lib/components/appointmentBooking/components/ConfirmInformation/index.less +15 -0
  146. package/lib/components/appointmentBooking/hooks.d.ts +1 -0
  147. package/lib/components/appointmentBooking/hooks.js +73 -35
  148. package/lib/components/appointmentBooking/locales.d.ts +3 -0
  149. package/lib/components/appointmentBooking/locales.js +6 -3
  150. package/lib/components/booking/addons/model.d.ts +10 -1
  151. package/lib/components/booking/components/footer/index.js +4 -1
  152. package/lib/components/booking/components/footer/utils.js +70 -38
  153. package/lib/components/booking/forms/model.d.ts +10 -1
  154. package/lib/components/booking/info/clientVariant/hooks/useClientFn.js +1 -1
  155. package/lib/components/booking/info/clientVariant/vertical/index.js +34 -17
  156. package/lib/components/booking/info/main.js +5 -4
  157. package/lib/components/booking/info/model.d.ts +10 -1
  158. package/lib/components/booking/info/model.js +5 -0
  159. package/lib/components/booking/info/service/addService/utils.d.ts +1 -1
  160. package/lib/components/booking/info2/index.js +5 -4
  161. package/lib/components/booking/info2/service/addService/utils.d.ts +1 -1
  162. package/lib/components/booking/info2/service/contactInfoMode/index.d.ts +2 -0
  163. package/lib/components/booking/info2/service/contactInfoMode/index.js +111 -0
  164. package/lib/components/booking/locales.d.ts +3 -0
  165. package/lib/components/booking/locales.js +9 -3
  166. package/lib/components/booking/model.d.ts +13 -1
  167. package/lib/components/booking/model.js +3 -0
  168. package/lib/components/booking/notes/model.d.ts +10 -1
  169. package/lib/components/booking/payments/model.d.ts +10 -1
  170. package/lib/components/eftposPay/amount.d.ts +1 -1
  171. package/lib/components/eftposPay/device.d.ts +1 -1
  172. package/lib/components/eftposPay/store/index.d.ts +2 -2
  173. package/lib/components/pay/toC/model.d.ts +9 -1
  174. package/lib/components/schedules/model.d.ts +9 -1
  175. package/lib/components/ticketBooking/components/ticketBooking/index.less +2 -1
  176. package/lib/components/wallet/Detail/model.d.ts +13 -1
  177. package/lib/components/wallet/DiscountCard/model.d.ts +14 -1
  178. package/lib/components/wallet/PointCard/model.d.ts +13 -1
  179. package/lib/components/wallet/RechargeableCard/model.d.ts +29 -1
  180. package/lib/components/wallet/Voucher/model.d.ts +13 -1
  181. package/lib/components/wallet/model.d.ts +9 -1
  182. package/lib/index.d.ts +3 -0
  183. package/lib/index.js +13 -0
  184. package/lib/plus/clientName/index.d.ts +4 -0
  185. package/lib/plus/clientName/index.js +53 -0
  186. package/lib/plus/clientName/index.less +10 -0
  187. package/lib/plus/clientName/type.d.ts +13 -0
  188. package/lib/plus/clientName/type.js +17 -0
  189. package/lib/plus/clientName/utils.d.ts +2 -0
  190. package/lib/plus/clientName/utils.js +43 -0
  191. package/lib/plus/contactInfo/components/Avatar/index.d.ts +10 -0
  192. package/lib/plus/contactInfo/components/Avatar/index.js +56 -0
  193. package/lib/plus/contactInfo/components/SwipeAction/index.d.ts +46 -0
  194. package/lib/plus/contactInfo/components/SwipeAction/index.js +373 -0
  195. package/lib/plus/contactInfo/components/SwipeAction/index.less +74 -0
  196. package/lib/plus/contactInfo/index.d.ts +6 -0
  197. package/lib/plus/contactInfo/index.js +226 -0
  198. package/lib/plus/contactInfo/index.less +621 -0
  199. package/lib/plus/contactInfo/locales.d.ts +15 -0
  200. package/lib/plus/contactInfo/locales.js +38 -0
  201. package/lib/plus/contactInfo/types.d.ts +91 -0
  202. package/lib/plus/contactInfo/types.js +17 -0
  203. package/lib/plus/contactInfo/utils.d.ts +7 -0
  204. package/lib/plus/contactInfo/utils.js +64 -0
  205. package/lib/plus/contactInfoModal/ContactInfoContent.d.ts +3 -0
  206. package/lib/plus/contactInfoModal/ContactInfoContent.js +129 -0
  207. package/lib/plus/contactInfoModal/index.d.ts +40 -0
  208. package/lib/plus/contactInfoModal/index.js +138 -0
  209. package/lib/plus/contactInfoModal/index.less +19 -0
  210. package/lib/plus/contactInfoModal/locales.d.ts +66 -0
  211. package/lib/plus/contactInfoModal/locales.js +89 -0
  212. package/lib/pro/Login2.0/AuthModal.d.ts +143 -0
  213. package/lib/pro/Login2.0/AuthModal.js +498 -0
  214. package/lib/pro/Login2.0/Login2.d.ts +61 -0
  215. package/lib/pro/Login2.0/Login2.js +1468 -0
  216. package/lib/pro/Login2.0/Register2.d.ts +65 -0
  217. package/lib/pro/Login2.0/Register2.js +1062 -0
  218. package/lib/pro/Login2.0/components/ForgotPasswordFlow.d.ts +31 -0
  219. package/lib/pro/Login2.0/components/ForgotPasswordFlow.js +213 -0
  220. package/lib/pro/Login2.0/components/LegalTerms.d.ts +8 -0
  221. package/lib/pro/Login2.0/components/LegalTerms.js +76 -0
  222. package/lib/pro/Login2.0/components/LegalTerms.less +74 -0
  223. package/lib/pro/Login2.0/components/LoginCodeInput.d.ts +27 -0
  224. package/lib/pro/Login2.0/components/LoginCodeInput.js +161 -0
  225. package/lib/pro/Login2.0/components/OAuthButtonGroup.d.ts +22 -0
  226. package/lib/pro/Login2.0/components/OAuthButtonGroup.js +87 -0
  227. package/lib/pro/Login2.0/components/PhoneInput.d.ts +53 -0
  228. package/lib/pro/Login2.0/components/PhoneInput.js +263 -0
  229. package/lib/pro/Login2.0/components/PhoneInput.less +148 -0
  230. package/lib/pro/Login2.0/components/phoneValidation.d.ts +17 -0
  231. package/lib/pro/Login2.0/components/phoneValidation.js +153 -0
  232. package/lib/pro/Login2.0/hooks/index.d.ts +2 -0
  233. package/lib/pro/Login2.0/hooks/index.js +29 -0
  234. package/lib/pro/Login2.0/hooks/usePasswordValidationRules.d.ts +24 -0
  235. package/lib/pro/Login2.0/hooks/usePasswordValidationRules.js +140 -0
  236. package/lib/pro/Login2.0/hooks/useRegisterFlow.d.ts +39 -0
  237. package/lib/pro/Login2.0/hooks/useRegisterFlow.js +149 -0
  238. package/lib/pro/Login2.0/hooks/useRegistrationMethods.d.ts +9 -0
  239. package/lib/pro/Login2.0/hooks/useRegistrationMethods.js +51 -0
  240. package/lib/pro/Login2.0/index.js +45 -0
  241. package/lib/pro/Login2.0/index.less +993 -0
  242. package/lib/pro/Login2.0/locales.d.ts +543 -0
  243. package/lib/pro/Login2.0/locales.js +646 -0
  244. package/lib/pro/Login2.0/shared/Header.d.ts +11 -0
  245. package/lib/pro/Login2.0/shared/Header.js +81 -0
  246. package/lib/pro/Login2.0/shared/OAuthButtons.d.ts +11 -0
  247. package/lib/pro/Login2.0/shared/OAuthButtons.js +78 -0
  248. package/lib/pro/Login2.0/shared/registerFlow.d.ts +116 -0
  249. package/lib/pro/Login2.0/shared/registerFlow.js +235 -0
  250. package/lib/pro/Login2.0/shared/types.d.ts +232 -0
  251. package/lib/pro/Login2.0/shared/types.js +17 -0
  252. package/lib/pro/Login2.0/steps/CodeInput.d.ts +24 -0
  253. package/lib/pro/Login2.0/steps/CodeInput.js +160 -0
  254. package/lib/pro/Login2.0/steps/EmailAlreadyRegistered.d.ts +12 -0
  255. package/lib/pro/Login2.0/steps/EmailAlreadyRegistered.js +46 -0
  256. package/lib/pro/Login2.0/steps/EmailLinkAlreadyUsed.d.ts +7 -0
  257. package/lib/pro/Login2.0/steps/EmailLinkAlreadyUsed.js +51 -0
  258. package/lib/pro/Login2.0/steps/EmailLinkExpired.d.ts +9 -0
  259. package/lib/pro/Login2.0/steps/EmailLinkExpired.js +51 -0
  260. package/lib/pro/Login2.0/steps/SetPassword.d.ts +19 -0
  261. package/lib/pro/Login2.0/steps/SetPassword.js +131 -0
  262. package/lib/pro/Login2.0/steps/VerificationSuccess.d.ts +8 -0
  263. package/lib/pro/Login2.0/steps/VerificationSuccess.js +49 -0
  264. package/lib/pro/Login2.0/steps/VerifyingEmailLink.d.ts +7 -0
  265. package/lib/pro/Login2.0/steps/VerifyingEmailLink.js +41 -0
  266. package/lib/pro/Login2.0/steps/WaitEmailLink.d.ts +18 -0
  267. package/lib/pro/Login2.0/steps/WaitEmailLink.js +67 -0
  268. package/lib/pro/Login2.0/steps/index.d.ts +19 -0
  269. package/lib/pro/Login2.0/steps/index.js +60 -0
  270. package/lib/pro/Login2.0/steps/steps.less +423 -0
  271. package/lib/pro/Login2.0/types.d.ts +167 -0
  272. package/lib/pro/Login2.0/types.js +17 -0
  273. package/lowcode/authmodal/meta.ts +395 -0
  274. package/lowcode/contact-info/fragments/cardStyle.ts +68 -0
  275. package/lowcode/contact-info/fragments/nameStyle.ts +33 -0
  276. package/lowcode/contact-info/fragments/pisellAvatar.ts +103 -0
  277. package/lowcode/contact-info/fragments/textStyle.ts +33 -0
  278. package/lowcode/contact-info/meta.ts +199 -0
  279. package/lowcode/contact-info-modal/meta.ts +98 -0
  280. package/lowcode/login2/CONFIG.md +447 -0
  281. package/lowcode/login2/TEST_CONFIG.md +324 -0
  282. package/lowcode/login2/VERIFICATION_METHODS.md +364 -0
  283. package/lowcode/login2/meta.ts +560 -0
  284. package/lowcode/login2/snippets.ts +124 -0
  285. package/lowcode/register2/meta.ts +562 -0
  286. package/lowcode/register2/snippets.ts +257 -0
  287. package/package.json +7 -5
@@ -0,0 +1,87 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/pro/Login2.0/components/OAuthButtonGroup.tsx
30
+ var OAuthButtonGroup_exports = {};
31
+ __export(OAuthButtonGroup_exports, {
32
+ default: () => OAuthButtonGroup_default
33
+ });
34
+ module.exports = __toCommonJS(OAuthButtonGroup_exports);
35
+ var import_react = __toESM(require("react"));
36
+ var import_classnames = __toESM(require("classnames"));
37
+ var import_materials = require("@pisell/materials");
38
+ var OAuthButtonGroup = ({
39
+ providers,
40
+ layout = "vertical",
41
+ size = "large",
42
+ block = true,
43
+ wrapperClassName,
44
+ buttonClassName,
45
+ gap = 12
46
+ }) => {
47
+ if (!providers.length) {
48
+ return null;
49
+ }
50
+ const isVertical = layout === "vertical";
51
+ return /* @__PURE__ */ import_react.default.createElement(
52
+ "div",
53
+ {
54
+ className: (0, import_classnames.default)("oauth-button-group", wrapperClassName, {
55
+ "oauth-button-group-vertical": isVertical,
56
+ "oauth-button-group-horizontal": !isVertical
57
+ }),
58
+ style: isVertical ? { display: "grid", rowGap: gap } : { display: "flex", columnGap: gap, flexWrap: "wrap" }
59
+ },
60
+ providers.map(
61
+ ({
62
+ key,
63
+ label,
64
+ icon,
65
+ onClick,
66
+ disabled,
67
+ className,
68
+ badge,
69
+ badgeClassName
70
+ }) => /* @__PURE__ */ import_react.default.createElement(
71
+ import_materials.Button,
72
+ {
73
+ key,
74
+ size,
75
+ block,
76
+ disabled,
77
+ className: (0, import_classnames.default)(buttonClassName, className),
78
+ icon,
79
+ onClick
80
+ },
81
+ badge && /* @__PURE__ */ import_react.default.createElement("span", { className: (0, import_classnames.default)("oauth-button-badge", badgeClassName) }, badge),
82
+ label
83
+ )
84
+ )
85
+ );
86
+ };
87
+ var OAuthButtonGroup_default = OAuthButtonGroup;
@@ -0,0 +1,53 @@
1
+ import React from 'react';
2
+ import './PhoneInput.less';
3
+ /** 国家/地区配置(后端返回格式) */
4
+ export interface CountryOption {
5
+ /** 国家/地区名称 */
6
+ name: string;
7
+ /** 国家/地区代码 */
8
+ code: string;
9
+ /** 区号(不带+号) */
10
+ calling_code: string;
11
+ /** 货币代码 */
12
+ currency_code: string;
13
+ }
14
+ /** 手机号对象格式 */
15
+ export interface PhoneValueObject {
16
+ /** 手机号(不含区号) */
17
+ phone: string;
18
+ /** 国家区号(不带+号) */
19
+ country_calling_code: string;
20
+ }
21
+ /** 值格式类型 */
22
+ export declare type ValueFormat = 'string' | 'object';
23
+ /** 手机号输入组件属性 */
24
+ export interface PhoneInputProps {
25
+ /** 完整的手机号值(包含区号),格式:+86138****,或 +1555****(字符串模式) */
26
+ value?: string | PhoneValueObject;
27
+ /** 值变化回调 */
28
+ onChange?: (value: string | PhoneValueObject) => void;
29
+ /** Placeholder */
30
+ placeholder?: string;
31
+ /** 大小 */
32
+ size?: 'large' | 'middle' | 'small';
33
+ /** 是否禁用 */
34
+ disabled?: boolean;
35
+ /** 自定义类名 */
36
+ className?: string;
37
+ /** 可用的国家/地区列表 */
38
+ countries?: CountryOption[];
39
+ /** 默认国家/地区代码 */
40
+ defaultCountry?: string;
41
+ /** 值格式:'string' 返回 "+8613800138000",'object' 返回 { phone: "13800138000", country_calling_code: "86" } */
42
+ valueFormat?: ValueFormat;
43
+ /** 键盘按键事件回调 */
44
+ onKeyDown?: (e: React.KeyboardEvent<HTMLInputElement>) => void;
45
+ }
46
+ /**
47
+ * 手机号输入组件
48
+ *
49
+ * 支持国际区号选择和手机号输入
50
+ * 值格式:+区号+手机号,例如:+8613800138000 或 +15551234567
51
+ */
52
+ declare function PhoneInput({ value, onChange, placeholder, onKeyDown, size, disabled, className, countries, defaultCountry, valueFormat, }: PhoneInputProps): JSX.Element;
53
+ export default PhoneInput;
@@ -0,0 +1,263 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/pro/Login2.0/components/PhoneInput.tsx
30
+ var PhoneInput_exports = {};
31
+ __export(PhoneInput_exports, {
32
+ default: () => PhoneInput_default
33
+ });
34
+ module.exports = __toCommonJS(PhoneInput_exports);
35
+ var import_react = __toESM(require("react"));
36
+ var import_utils = require("@pisell/utils");
37
+ var import_PhoneInput = require("./PhoneInput.less");
38
+ var DEFAULT_COUNTRIES = [
39
+ { name: "United States", code: "US", calling_code: "1", currency_code: "USD" },
40
+ { name: "China", code: "CN", calling_code: "86", currency_code: "CNY" },
41
+ { name: "United Kingdom", code: "GB", calling_code: "44", currency_code: "GBP" },
42
+ { name: "Australia", code: "AU", calling_code: "61", currency_code: "AUD" },
43
+ { name: "Canada", code: "CA", calling_code: "1", currency_code: "CAD" },
44
+ { name: "Japan", code: "JP", calling_code: "81", currency_code: "JPY" },
45
+ { name: "South Korea", code: "KR", calling_code: "82", currency_code: "KRW" },
46
+ { name: "Singapore", code: "SG", calling_code: "65", currency_code: "SGD" },
47
+ { name: "Hong Kong", code: "HK", calling_code: "852", currency_code: "HKD" },
48
+ { name: "Taiwan", code: "TW", calling_code: "886", currency_code: "TWD" },
49
+ { name: "Malaysia", code: "MY", calling_code: "60", currency_code: "MYR" },
50
+ { name: "Thailand", code: "TH", calling_code: "66", currency_code: "THB" },
51
+ { name: "Vietnam", code: "VN", calling_code: "84", currency_code: "VND" },
52
+ { name: "Philippines", code: "PH", calling_code: "63", currency_code: "PHP" },
53
+ { name: "Indonesia", code: "ID", calling_code: "62", currency_code: "IDR" },
54
+ { name: "India", code: "IN", calling_code: "91", currency_code: "INR" },
55
+ { name: "Germany", code: "DE", calling_code: "49", currency_code: "EUR" },
56
+ { name: "France", code: "FR", calling_code: "33", currency_code: "EUR" },
57
+ { name: "Italy", code: "IT", calling_code: "39", currency_code: "EUR" },
58
+ { name: "Spain", code: "ES", calling_code: "34", currency_code: "EUR" }
59
+ ];
60
+ function detectUserCountry() {
61
+ try {
62
+ if (typeof Intl !== "undefined" && Intl.DateTimeFormat) {
63
+ const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
64
+ const timeZoneMap = {
65
+ "America/New_York": "US",
66
+ "America/Los_Angeles": "US",
67
+ "America/Chicago": "US",
68
+ "America/Denver": "US",
69
+ "America/Toronto": "CA",
70
+ "America/Vancouver": "CA",
71
+ "Europe/London": "GB",
72
+ "Europe/Paris": "FR",
73
+ "Europe/Berlin": "DE",
74
+ "Europe/Rome": "IT",
75
+ "Europe/Madrid": "ES",
76
+ "Asia/Shanghai": "CN",
77
+ "Asia/Hong_Kong": "HK",
78
+ "Asia/Taipei": "TW",
79
+ "Asia/Tokyo": "JP",
80
+ "Asia/Seoul": "KR",
81
+ "Asia/Singapore": "SG",
82
+ "Asia/Bangkok": "TH",
83
+ "Asia/Kuala_Lumpur": "MY",
84
+ "Asia/Jakarta": "ID",
85
+ "Asia/Manila": "PH",
86
+ "Asia/Ho_Chi_Minh": "VN",
87
+ "Asia/Kolkata": "IN",
88
+ "Australia/Sydney": "AU",
89
+ "Australia/Melbourne": "AU"
90
+ };
91
+ if (timeZone && timeZoneMap[timeZone]) {
92
+ return timeZoneMap[timeZone];
93
+ }
94
+ }
95
+ if (typeof navigator !== "undefined" && navigator.language) {
96
+ const lang = navigator.language;
97
+ const parts = lang.split("-");
98
+ if (parts.length > 1) {
99
+ const countryCode = parts[1].toUpperCase();
100
+ return countryCode;
101
+ }
102
+ const langMap = {
103
+ "zh": "CN",
104
+ "en": "US",
105
+ "ja": "JP",
106
+ "ko": "KR",
107
+ "de": "DE",
108
+ "fr": "FR",
109
+ "es": "ES",
110
+ "it": "IT",
111
+ "th": "TH",
112
+ "vi": "VN",
113
+ "id": "ID",
114
+ "ms": "MY"
115
+ };
116
+ if (langMap[parts[0]]) {
117
+ return langMap[parts[0]];
118
+ }
119
+ }
120
+ } catch (error) {
121
+ console.warn("Failed to detect user country:", error);
122
+ }
123
+ return null;
124
+ }
125
+ function PhoneInput({
126
+ value,
127
+ onChange,
128
+ placeholder,
129
+ onKeyDown,
130
+ size = "large",
131
+ disabled = false,
132
+ className = "",
133
+ countries = DEFAULT_COUNTRIES,
134
+ defaultCountry,
135
+ valueFormat = "string"
136
+ }) {
137
+ const effectivePlaceholder = placeholder || import_utils.locales.getText("pisell-phone-input-placeholder");
138
+ const normalizedValue = (0, import_react.useMemo)(() => {
139
+ if (!value) return "";
140
+ if (typeof value === "object" && "phone" in value) {
141
+ const { phone, country_calling_code } = value;
142
+ return `+${country_calling_code}${phone}`;
143
+ }
144
+ return value;
145
+ }, [value]);
146
+ const effectiveDefaultCountry = (0, import_react.useMemo)(() => {
147
+ var _a;
148
+ const detectedCountry = detectUserCountry();
149
+ if (detectedCountry && countries.some((c) => c.code === detectedCountry)) {
150
+ console.log("PhoneInput: Auto-detected country:", detectedCountry);
151
+ return detectedCountry;
152
+ }
153
+ if (defaultCountry && countries.some((c) => c.code === defaultCountry)) {
154
+ return defaultCountry;
155
+ }
156
+ return ((_a = countries == null ? void 0 : countries[0]) == null ? void 0 : _a.code) || "AU";
157
+ }, [countries, defaultCountry]);
158
+ const { dialCode: currentDialCode, phoneNumber: currentPhoneNumber } = (0, import_react.useMemo)(() => {
159
+ if (!(countries == null ? void 0 : countries.length)) {
160
+ return {
161
+ dialCode: "",
162
+ phoneNumber: ""
163
+ };
164
+ }
165
+ if (!normalizedValue || !normalizedValue.startsWith("+")) {
166
+ const defaultCountryOption2 = countries.find((c) => c.code === effectiveDefaultCountry) || countries[0];
167
+ return {
168
+ dialCode: `+${defaultCountryOption2.calling_code}`,
169
+ phoneNumber: ""
170
+ };
171
+ }
172
+ for (const country of countries) {
173
+ const countryDialCode = `+${country.calling_code}`;
174
+ if (normalizedValue.startsWith(countryDialCode)) {
175
+ return {
176
+ dialCode: countryDialCode,
177
+ phoneNumber: normalizedValue.slice(countryDialCode.length)
178
+ };
179
+ }
180
+ }
181
+ const defaultCountryOption = countries.find((c) => c.code === effectiveDefaultCountry) || countries[0];
182
+ return {
183
+ dialCode: `+${defaultCountryOption.calling_code}`,
184
+ phoneNumber: normalizedValue.startsWith("+") ? normalizedValue.slice(1) : normalizedValue
185
+ };
186
+ }, [normalizedValue, countries, effectiveDefaultCountry]);
187
+ const currentCountry = (0, import_react.useMemo)(() => {
188
+ return countries.find((c) => `+${c.calling_code}` === currentDialCode) || countries[0];
189
+ }, [currentDialCode, countries]);
190
+ const formatOutputValue = (dialCode, phoneNumber) => {
191
+ const fullString = `${dialCode}${phoneNumber}`;
192
+ if (valueFormat === "object") {
193
+ return {
194
+ phone: String(phoneNumber || ""),
195
+ country_calling_code: String(dialCode.replace("+", "") || "")
196
+ // 去掉 + 号并确保是字符串
197
+ };
198
+ }
199
+ return fullString;
200
+ };
201
+ const handleDialCodeChange = (e) => {
202
+ const newDialCode = e.target.value;
203
+ const newValue = formatOutputValue(newDialCode, currentPhoneNumber);
204
+ onChange == null ? void 0 : onChange(newValue);
205
+ };
206
+ const handlePhoneNumberChange = (e) => {
207
+ let inputValue = e.target.value;
208
+ const dialCodeWithoutPlus = currentDialCode.replace("+", "");
209
+ if (inputValue.startsWith("+")) {
210
+ if (inputValue.startsWith(currentDialCode)) {
211
+ inputValue = inputValue.slice(currentDialCode.length);
212
+ }
213
+ } else if (inputValue.startsWith(dialCodeWithoutPlus)) {
214
+ inputValue = inputValue.slice(dialCodeWithoutPlus.length);
215
+ }
216
+ const newPhoneNumber = inputValue.replace(/[^\d]/g, "");
217
+ const newValue = formatOutputValue(currentDialCode, newPhoneNumber);
218
+ onChange == null ? void 0 : onChange(newValue);
219
+ };
220
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: `phone-input-wrapper ${className}` }, /* @__PURE__ */ import_react.default.createElement("div", { className: "phone-input-container" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "phone-input-prefix" }, /* @__PURE__ */ import_react.default.createElement("span", { className: "phone-input-country-display" }, currentCountry == null ? void 0 : currentCountry.code, "(", currentDialCode, ")"), /* @__PURE__ */ import_react.default.createElement(
221
+ "select",
222
+ {
223
+ className: "phone-input-select",
224
+ value: currentDialCode,
225
+ onChange: handleDialCodeChange,
226
+ disabled
227
+ },
228
+ countries.map((country) => /* @__PURE__ */ import_react.default.createElement("option", { key: country.code, value: `+${country.calling_code}` }, country.code, " +", country.calling_code))
229
+ ), /* @__PURE__ */ import_react.default.createElement(
230
+ "svg",
231
+ {
232
+ className: "phone-input-arrow",
233
+ width: "12",
234
+ height: "12",
235
+ viewBox: "0 0 12 12",
236
+ fill: "none",
237
+ xmlns: "http://www.w3.org/2000/svg"
238
+ },
239
+ /* @__PURE__ */ import_react.default.createElement(
240
+ "path",
241
+ {
242
+ d: "M3 4.5L6 7.5L9 4.5",
243
+ stroke: "currentColor",
244
+ strokeWidth: "1.5",
245
+ strokeLinecap: "round",
246
+ strokeLinejoin: "round"
247
+ }
248
+ )
249
+ )), /* @__PURE__ */ import_react.default.createElement("div", { className: "phone-input-divider" }), /* @__PURE__ */ import_react.default.createElement(
250
+ "input",
251
+ {
252
+ type: "tel",
253
+ className: `phone-input-field phone-input-field-${size}`,
254
+ value: currentPhoneNumber,
255
+ onChange: handlePhoneNumberChange,
256
+ onKeyDown,
257
+ placeholder: effectivePlaceholder,
258
+ disabled,
259
+ autoComplete: "tel"
260
+ }
261
+ )));
262
+ }
263
+ var PhoneInput_default = PhoneInput;
@@ -0,0 +1,148 @@
1
+ .phone-input-wrapper {
2
+ width: 100%;
3
+
4
+ .phone-input-container {
5
+ display: flex;
6
+ align-items: center;
7
+ width: 100%;
8
+ height: 44px;
9
+ padding: 0 16px;
10
+ background: #FFFFFF;
11
+ border: 1px solid #D0D5DD;
12
+ border-radius: 8px;
13
+ transition: all 0.2s ease;
14
+
15
+ &:hover {
16
+ border-color: #98A2B3;
17
+ }
18
+
19
+ &:focus-within {
20
+ border-color: var(--theme-color, #7F56D9);
21
+ box-shadow: 0px 0px 0px 4px rgba(127, 86, 217, 0.12);
22
+ }
23
+ }
24
+
25
+ .phone-input-prefix {
26
+ position: relative;
27
+ display: flex;
28
+ align-items: center;
29
+ flex-shrink: 0;
30
+ gap: 6px;
31
+ cursor: pointer;
32
+ }
33
+
34
+ .phone-input-country-display {
35
+ font-size: 14px;
36
+ font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
37
+ font-weight: 400;
38
+ line-height: 20px;
39
+ color: #344054;
40
+ pointer-events: none;
41
+ white-space: nowrap;
42
+ }
43
+
44
+ .phone-input-select {
45
+ position: absolute;
46
+ left: 0;
47
+ top: 0;
48
+ width: 100%;
49
+ height: 100%;
50
+ opacity: 0;
51
+ cursor: pointer;
52
+ font-size: 14px;
53
+ font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
54
+
55
+ &:disabled {
56
+ cursor: not-allowed;
57
+ }
58
+ }
59
+
60
+ .phone-input-arrow {
61
+ flex-shrink: 0;
62
+ color: #667085;
63
+ pointer-events: none;
64
+ }
65
+
66
+ .phone-input-divider {
67
+ width: 1px;
68
+ height: 24px;
69
+ background: #D0D5DD;
70
+ margin: 0 12px;
71
+ flex-shrink: 0;
72
+ }
73
+
74
+ .phone-input-field {
75
+ flex: 1;
76
+ border: none;
77
+ outline: none;
78
+ background: transparent;
79
+ font-size: 16px;
80
+ font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
81
+ font-weight: 400;
82
+ line-height: 24px;
83
+ color: #101828;
84
+ min-width: 0;
85
+
86
+ &::placeholder {
87
+ color: #98A2B3;
88
+ }
89
+
90
+ &:disabled {
91
+ cursor: not-allowed;
92
+ color: #98A2B3;
93
+ }
94
+
95
+ // 移除 number 类型输入框的上下箭头
96
+ &::-webkit-outer-spin-button,
97
+ &::-webkit-inner-spin-button {
98
+ -webkit-appearance: none;
99
+ margin: 0;
100
+ }
101
+
102
+ &[type='number'] {
103
+ -moz-appearance: textfield;
104
+ }
105
+ }
106
+
107
+ // 大小变体
108
+ .phone-input-field-large {
109
+ font-size: 16px;
110
+ line-height: 24px;
111
+ }
112
+
113
+ .phone-input-field-middle {
114
+ font-size: 14px;
115
+ line-height: 22px;
116
+ }
117
+
118
+ .phone-input-field-small {
119
+ font-size: 14px;
120
+ line-height: 20px;
121
+ }
122
+
123
+ // 禁用状态
124
+ &.phone-input-disabled {
125
+ .phone-input-container {
126
+ background: #F9FAFB;
127
+ border-color: #D0D5DD;
128
+ cursor: not-allowed;
129
+
130
+ &:hover {
131
+ border-color: #D0D5DD;
132
+ }
133
+ }
134
+ }
135
+
136
+ // 错误状态
137
+ &.phone-input-error {
138
+ .phone-input-container {
139
+ border-color: #F04438;
140
+
141
+ &:focus-within {
142
+ border-color: #F04438;
143
+ box-shadow: 0px 0px 0px 4px rgba(240, 68, 56, 0.12);
144
+ }
145
+ }
146
+ }
147
+ }
148
+
@@ -0,0 +1,17 @@
1
+ import { PhoneValueObject } from './PhoneInput';
2
+ declare type GetTextFunction = (key: string) => string;
3
+ /**
4
+ * 手机号校验函数,用于 Ant Design Form 的 rules
5
+ * @param value 手机号值,可以是字符串或对象格式
6
+ * @param getText 国际化文本获取函数
7
+ * @returns Promise<void> 校验通过时 resolve,失败时 reject 并返回错误信息
8
+ */
9
+ export declare const validatePhoneNumber: (value: string | PhoneValueObject, getText: GetTextFunction) => Promise<void>;
10
+ /**
11
+ * 创建手机号校验规则,用于 Form.Item 的 rules 属性
12
+ * @param getText 国际化文本获取函数
13
+ * @param required 是否必填
14
+ * @returns Form 校验规则数组
15
+ */
16
+ export declare const createPhoneValidationRules: (getText: GetTextFunction, required?: boolean) => any[];
17
+ export {};