@appmax_npm/ds-prime 1.0.0-alpha.185 → 1.0.0-alpha.187

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 (379) hide show
  1. package/config/presets/franchise-preset-builder.d.ts +2 -0
  2. package/config/presets/franchise-preset-builder.js +34 -4
  3. package/css/index.css +1 -4
  4. package/package.json +1 -1
  5. package/plugins/themes/useTheme.js +6 -1
  6. package/services/franchise-theme.service.d.ts +12 -8
  7. package/services/franchise-theme.service.js +42 -20
  8. package/services/index.d.ts +1 -0
  9. package/AD-Ct_GVBfr.js +0 -16
  10. package/AE-DiMVenwy.js +0 -16
  11. package/AF-DOrptOkS.js +0 -16
  12. package/AG-CzBMAtom.js +0 -16
  13. package/AI-A2DnDGPS.js +0 -16
  14. package/AL-BcGdPXjJ.js +0 -16
  15. package/AM-BC_r4gTd.js +0 -16
  16. package/AO-D6GK49nd.js +0 -16
  17. package/AQ-Eeziry42.js +0 -16
  18. package/AR-AbqVWszQ.js +0 -16
  19. package/AS-BWe_Gq8Z.js +0 -16
  20. package/AT-b5CS9jSt.js +0 -16
  21. package/AU-BUbOyX6Q.js +0 -16
  22. package/AW-CjVdJTYe.js +0 -16
  23. package/AX-lNtwEmw2.js +0 -16
  24. package/AZ-f8zSo9ut.js +0 -16
  25. package/AmChip.vue_vue_type_script_setup_true_lang-Dxoocdce.js +0 -38
  26. package/AmFieldWrapper.vue_vue_type_script_setup_true_lang-BhuUv3pK.js +0 -92
  27. package/AmFilterLevelDateSelect-BbVyzCa5.js +0 -40
  28. package/AmFilterLevelMultiSelectFilter-CDrzmO-F.js +0 -48
  29. package/AmFilterLevelSelectFilter-ClXDnNIn.js +0 -65
  30. package/AmHelper.vue_vue_type_script_setup_true_lang-xt1GjpwF.js +0 -56
  31. package/AmIcon.vue_vue_type_script_setup_true_lang-DujHRZe1.js +0 -367
  32. package/AmIconButton.vue_vue_type_script_setup_true_lang-3tyeWMc3.js +0 -26
  33. package/AmInputNumber.vue_vue_type_script_setup_true_lang-BQiD1Arg.js +0 -234
  34. package/AmInputText.vue_vue_type_script_setup_true_lang-DzkxGjuT.js +0 -71
  35. package/AmLoading.vue_vue_type_script_setup_true_lang-DK5JtaSE.js +0 -47
  36. package/AmText.vue_vue_type_script_setup_true_lang-zKbK7_k1.js +0 -61
  37. package/AmToaster.vue_vue_type_style_index_0_global_true_lang-DLC38-Kq.js +0 -84
  38. package/AmTooltip.vue_vue_type_script_setup_true_lang-DvhTZs1v.js +0 -64
  39. package/BA-BfV7_7RP.js +0 -16
  40. package/BB-CC4768VM.js +0 -16
  41. package/BD-YQdTTbhg.js +0 -16
  42. package/BE-DUYoRyei.js +0 -16
  43. package/BF-XZRLkaHX.js +0 -16
  44. package/BG-BAb8lAFP.js +0 -16
  45. package/BH-C1LTB8Fj.js +0 -16
  46. package/BI-RjDfMipp.js +0 -16
  47. package/BJ-DAv61IMB.js +0 -16
  48. package/BL-CFW4iaQd.js +0 -16
  49. package/BM-DuK3dA1G.js +0 -16
  50. package/BN-BXHGopan.js +0 -16
  51. package/BO-CzuoErsx.js +0 -16
  52. package/BQ-BO-BlM1Uin3.js +0 -16
  53. package/BQ-SA-BninfeHy.js +0 -16
  54. package/BQ-SE-tq-mCvpl.js +0 -16
  55. package/BR-B1GEJ05L.js +0 -16
  56. package/BS-MeULPH4e.js +0 -16
  57. package/BT-BCfQJS6a.js +0 -16
  58. package/BV-CfaYWvM-.js +0 -16
  59. package/BW-jYbPMHhQ.js +0 -16
  60. package/BY-Ddffd2rT.js +0 -16
  61. package/BZ-B7mGW2Jg.js +0 -16
  62. package/CA-CHl-cqJL.js +0 -16
  63. package/CC-DSLZRwFz.js +0 -16
  64. package/CD-D4NJYkQm.js +0 -16
  65. package/CF-DoxRpaA9.js +0 -16
  66. package/CG-Auzp6pC_.js +0 -16
  67. package/CH-B5eEo1aL.js +0 -16
  68. package/CI-DFfmdeVw.js +0 -16
  69. package/CK-CKWUhjXV.js +0 -16
  70. package/CL-Di6p-p6X.js +0 -16
  71. package/CM-B0ht31e3.js +0 -16
  72. package/CN-CKHlOciI.js +0 -16
  73. package/CO-GBUkcePt.js +0 -16
  74. package/CR-Daw5JsjF.js +0 -16
  75. package/CU-CVOkcTvR.js +0 -16
  76. package/CV-cyPoze-o.js +0 -16
  77. package/CW-Bt-Pwg4j.js +0 -16
  78. package/CX-uhIZlYzy.js +0 -16
  79. package/CY-un4rgwPX.js +0 -16
  80. package/CZ-equ-r4iN.js +0 -16
  81. package/DE-zx7UmJ-V.js +0 -16
  82. package/DJ-BN1kIFYT.js +0 -16
  83. package/DK-CrXXNH_h.js +0 -16
  84. package/DM-B4nVdNww.js +0 -16
  85. package/DO-C7-NF2JD.js +0 -16
  86. package/DZ-DSDLbNRb.js +0 -16
  87. package/EC-C_bjTYWm.js +0 -16
  88. package/EE-CQIjuoWO.js +0 -16
  89. package/EG-Bs_BHfVR.js +0 -16
  90. package/EH-CnWam84F.js +0 -16
  91. package/ER-Dcl4hJzq.js +0 -16
  92. package/ES-Bpj2gAdj.js +0 -16
  93. package/ET-Dm3q0Ruz.js +0 -16
  94. package/FI-DCqfJeiQ.js +0 -16
  95. package/FJ-C6UrGUgI.js +0 -16
  96. package/FK-CAaec31K.js +0 -16
  97. package/FM-Cf2SIJ7h.js +0 -16
  98. package/FO-DBb4psBV.js +0 -16
  99. package/FR-CFW4iaQd.js +0 -16
  100. package/GA-D3NTxgTl.js +0 -16
  101. package/GB-ENG-Cmkg6Zq8.js +0 -16
  102. package/GB-NIR-DKszcfHi.js +0 -16
  103. package/GB-SCT-BiivwJ71.js +0 -16
  104. package/GB-UKM-DgMBd3ib.js +0 -16
  105. package/GB-WLS-DLoDy9iv.js +0 -16
  106. package/GD-Bs1d4We7.js +0 -16
  107. package/GE-DXG9iLk5.js +0 -16
  108. package/GF-B20s5gtx.js +0 -16
  109. package/GG-BAyrpIoO.js +0 -16
  110. package/GH-v3jh5r1X.js +0 -16
  111. package/GI-D39Krd4s.js +0 -16
  112. package/GL-BDd_W5AU.js +0 -16
  113. package/GM-BNEHspzj.js +0 -16
  114. package/GN-DdIZ0X6d.js +0 -16
  115. package/GP-CFW4iaQd.js +0 -16
  116. package/GQ-CC3X6AMz.js +0 -16
  117. package/GR-C_0rusTd.js +0 -16
  118. package/GS-Db5l22a1.js +0 -16
  119. package/GT-BhbkqUft.js +0 -16
  120. package/GU-C0HeItm1.js +0 -16
  121. package/GW-BjLM1vg-.js +0 -16
  122. package/GY-BreBVlhN.js +0 -16
  123. package/HK-BZn9ZQGS.js +0 -16
  124. package/HM-BUbOyX6Q.js +0 -16
  125. package/HN-D4wujIPC.js +0 -16
  126. package/HR-Jhi3QQ9F.js +0 -16
  127. package/HT-MMjMjr-R.js +0 -16
  128. package/HU-CN5KmQ7F.js +0 -16
  129. package/ID-hVVUTKNG.js +0 -16
  130. package/IE-WN_vdKcS.js +0 -16
  131. package/IL-D5Wr_Xxh.js +0 -16
  132. package/IM-B-putc0k.js +0 -16
  133. package/IN-CK40zbQD.js +0 -16
  134. package/IO-CdvLck7D.js +0 -16
  135. package/IQ-f_9wyurt.js +0 -16
  136. package/IR-B0yfWttH.js +0 -16
  137. package/IS-Dvf-XQTq.js +0 -16
  138. package/IT-uY7cjdFI.js +0 -16
  139. package/JE-C95tN_VG.js +0 -16
  140. package/JM-zOuEwaB3.js +0 -16
  141. package/JO-Cq88rrOD.js +0 -16
  142. package/JP-5evXgWxq.js +0 -16
  143. package/KE-PHx0d97Z.js +0 -16
  144. package/KG-DT4JnieX.js +0 -16
  145. package/KH-ChwV2WTT.js +0 -16
  146. package/KI-D212g4Lh.js +0 -16
  147. package/KM-mPVp7AKS.js +0 -16
  148. package/KN-AdXLXICN.js +0 -16
  149. package/KP-CC6UIrEF.js +0 -16
  150. package/KR-BtnmWR6C.js +0 -16
  151. package/KW-gqahWVaw.js +0 -16
  152. package/KY-DjIb70VQ.js +0 -16
  153. package/KZ-C_fRihiO.js +0 -16
  154. package/LA-KIULJHAb.js +0 -16
  155. package/LB-CrF8WJiI.js +0 -16
  156. package/LC-DGiHXm5V.js +0 -16
  157. package/LI-BwB0b8M1.js +0 -16
  158. package/LK-BOC44ZgS.js +0 -16
  159. package/LR-CWjRlWOZ.js +0 -16
  160. package/LS-B_EgU3p5.js +0 -16
  161. package/LT-BPyPiVx2.js +0 -16
  162. package/LU-B-De6aB-.js +0 -16
  163. package/LV-D2Ewe3XC.js +0 -16
  164. package/LY-D1TSt6YI.js +0 -16
  165. package/MA-QY5gm-vM.js +0 -16
  166. package/MC-BjlCjfCP.js +0 -16
  167. package/MD-rh-6rlSt.js +0 -16
  168. package/ME-D1euo0V2.js +0 -16
  169. package/MF-CFW4iaQd.js +0 -16
  170. package/MG-ONnxn_5g.js +0 -16
  171. package/MH-B8oC_VMS.js +0 -16
  172. package/MK-ByjICisj.js +0 -16
  173. package/ML-CKVAuhox.js +0 -16
  174. package/MM-doJuUjVT.js +0 -16
  175. package/MN-BFP303GE.js +0 -16
  176. package/MO-Dp4PTSYU.js +0 -16
  177. package/MP-CqKsnjHV.js +0 -16
  178. package/MQ-CFW4iaQd.js +0 -16
  179. package/MR-D73q_PiY.js +0 -16
  180. package/MS-qhjKl9TO.js +0 -16
  181. package/MT-CZjbs1U-.js +0 -16
  182. package/MU-D0EQOl0S.js +0 -16
  183. package/MV-BtwHRTMn.js +0 -16
  184. package/MW-CVnAR98j.js +0 -16
  185. package/MX-C7vXnCDY.js +0 -16
  186. package/MY-DJcgH_o3.js +0 -16
  187. package/MZ-BbLwl9DA.js +0 -16
  188. package/NA-5FKNjRGT.js +0 -16
  189. package/NC-CFW4iaQd.js +0 -16
  190. package/NE-DpLZJa7D.js +0 -16
  191. package/NF-BT-wIfwf.js +0 -16
  192. package/NG-BAiR_q0H.js +0 -16
  193. package/NI-DylPDojG.js +0 -16
  194. package/NL-iozeFKPM.js +0 -16
  195. package/NO-CfaYWvM-.js +0 -16
  196. package/NP-BGR_ZaqA.js +0 -16
  197. package/NR-DHGW5Y3Q.js +0 -16
  198. package/NU-CcpcSx_x.js +0 -16
  199. package/NZ-DDYt6DcJ.js +0 -16
  200. package/OM-D6hiar1r.js +0 -16
  201. package/PA-Bi2blxjJ.js +0 -16
  202. package/PE-D4DjQOlP.js +0 -16
  203. package/PF-DmOSfnYB.js +0 -16
  204. package/PG-DeOlZ7TA.js +0 -16
  205. package/PH-Dv4KdxU-.js +0 -16
  206. package/PK-CRhM95F8.js +0 -16
  207. package/PL-BIdMQAtx.js +0 -16
  208. package/PM-BDa53dEz.js +0 -16
  209. package/PN-Csu7Dufn.js +0 -16
  210. package/PR-C_Acdbc_.js +0 -16
  211. package/PS-Dmg0ofZr.js +0 -16
  212. package/PT-Bsck4nv8.js +0 -16
  213. package/PW-CBMqjpxh.js +0 -16
  214. package/PY-Be6zNh15.js +0 -16
  215. package/QA-CZmcW85r.js +0 -16
  216. package/RE-CFW4iaQd.js +0 -16
  217. package/RO-6H4O-gQF.js +0 -16
  218. package/RS-DM7vMnHL.js +0 -16
  219. package/RU-HqKQeTq2.js +0 -16
  220. package/RW-DkH4VhfP.js +0 -16
  221. package/SA-C2hBi4Lh.js +0 -16
  222. package/SB-CBu9QLGP.js +0 -16
  223. package/SC-CR6esM-V.js +0 -16
  224. package/SD-VCXqBHrW.js +0 -16
  225. package/SE-DbI0jJm9.js +0 -16
  226. package/SG-DgprfMyV.js +0 -16
  227. package/SH-qhjKl9TO.js +0 -16
  228. package/SI-C3dA03Yk.js +0 -16
  229. package/SJ-CfaYWvM-.js +0 -16
  230. package/SK-CxbHN7aU.js +0 -16
  231. package/SL-GXAaRXng.js +0 -16
  232. package/SM-B2SteTdO.js +0 -16
  233. package/SN-B7Q__Lx_.js +0 -16
  234. package/SO-Bnd5-U9z.js +0 -16
  235. package/SR-BHMDOkL2.js +0 -16
  236. package/SS-CsTgWca1.js +0 -16
  237. package/ST-DLqO0boT.js +0 -16
  238. package/SV-DNZizmQg.js +0 -16
  239. package/SX-DWuXjLwS.js +0 -16
  240. package/SY-DeOQEBum.js +0 -16
  241. package/SZ-Bhe0qU5K.js +0 -16
  242. package/TC-D5HTaKiF.js +0 -16
  243. package/TD-DyIWvaGg.js +0 -16
  244. package/TF-BRsv64iE.js +0 -16
  245. package/TG-OhNa5jmt.js +0 -16
  246. package/TH-F_ODV0JW.js +0 -16
  247. package/TJ-BFkbbSmN.js +0 -16
  248. package/TK-Ct75yy7V.js +0 -16
  249. package/TL-BzqVkHGw.js +0 -16
  250. package/TM-CCAvd8qV.js +0 -16
  251. package/TN-CmYqbPEz.js +0 -16
  252. package/TO-BQQk9Xq_.js +0 -16
  253. package/TR-_MKkCnUV.js +0 -16
  254. package/TT-DoRURl1c.js +0 -16
  255. package/TV-Dt8uZCP4.js +0 -16
  256. package/TW-CvHugvex.js +0 -16
  257. package/TZ-RbwBgiwb.js +0 -16
  258. package/UA-BiXHPMqV.js +0 -16
  259. package/UG--it_LhSj.js +0 -16
  260. package/UM-BFcTdeDD.js +0 -16
  261. package/US-BFcTdeDD.js +0 -16
  262. package/UY-C26Ndi4P.js +0 -16
  263. package/UZ-BK5ADwFW.js +0 -16
  264. package/VA-Cpq1n4yW.js +0 -16
  265. package/VC-D1Fjbog5.js +0 -16
  266. package/VE-CeM-hea7.js +0 -16
  267. package/VG-qhjKl9TO.js +0 -16
  268. package/VI-C-kcu42_.js +0 -16
  269. package/VN-2yoryeK1.js +0 -16
  270. package/VU-CkLlsgzP.js +0 -16
  271. package/WF-BDa53dEz.js +0 -16
  272. package/WS-CNi2O6Qm.js +0 -16
  273. package/YE-DxPZysMs.js +0 -16
  274. package/YT-BMJJ1U_T.js +0 -16
  275. package/ZA-BjQXS8mc.js +0 -16
  276. package/ZM-Dw0PmMTO.js +0 -16
  277. package/ZW-D0UStZMr.js +0 -16
  278. package/_plugin-vue_export-helper-CHgC5LLL.js +0 -9
  279. package/affiliate-Bgt9fadK.js +0 -22
  280. package/amalert/index.d.ts +0 -21
  281. package/amalert/index.js +0 -109
  282. package/ambutton/index.d.ts +0 -44
  283. package/ambutton/index.js +0 -71
  284. package/amcard/index.d.ts +0 -23
  285. package/amcard/index.js +0 -25
  286. package/amcard_deprecated/index.d.ts +0 -21
  287. package/amcard_deprecated/index.js +0 -18
  288. package/amchip/index.d.ts +0 -25
  289. package/amchip/index.js +0 -4
  290. package/amconsentcheckbox/index.d.ts +0 -28
  291. package/amconsentcheckbox/index.js +0 -51
  292. package/amdatefilter/index.d.ts +0 -44
  293. package/amdatefilter/index.js +0 -299
  294. package/amex-CvNwRHhS.js +0 -16
  295. package/amfield/index.d.ts +0 -27
  296. package/amfield/index.js +0 -65
  297. package/amfieldwrapper/index.d.ts +0 -31
  298. package/amfieldwrapper/index.js +0 -4
  299. package/amfilterlevel/index.d.ts +0 -67
  300. package/amfilterlevel/index.js +0 -245
  301. package/amform/index.d.ts +0 -57
  302. package/amform/index.js +0 -41
  303. package/amhelper/index.d.ts +0 -28
  304. package/amhelper/index.js +0 -4
  305. package/amicon/index.d.ts +0 -26
  306. package/amicon/index.js +0 -4
  307. package/amiconbutton/index.d.ts +0 -23
  308. package/amiconbutton/index.js +0 -4
  309. package/aminputcurrency/index.d.ts +0 -26
  310. package/aminputcurrency/index.js +0 -36
  311. package/aminputnumber/index.d.ts +0 -37
  312. package/aminputnumber/index.js +0 -4
  313. package/aminputtext/index.d.ts +0 -13
  314. package/aminputtext/index.js +0 -4
  315. package/aminternationalizationmodal/index.d.ts +0 -10
  316. package/aminternationalizationmodal/index.js +0 -326
  317. package/amlink/index.d.ts +0 -25
  318. package/amlink/index.js +0 -22
  319. package/amloading/index.d.ts +0 -21
  320. package/amloading/index.js +0 -4
  321. package/amnotification/index.d.ts +0 -20
  322. package/amnotification/index.js +0 -85
  323. package/amplugins/index.d.ts +0 -19
  324. package/amplugins/index.js +0 -11
  325. package/amradiogroup/index.d.ts +0 -34
  326. package/amradiogroup/index.js +0 -147
  327. package/amradiooptions/index.d.ts +0 -35
  328. package/amradiooptions/index.js +0 -71
  329. package/amslider/index.d.ts +0 -11
  330. package/amslider/index.js +0 -157
  331. package/amtabs/index.d.ts +0 -15
  332. package/amtabs/index.js +0 -58
  333. package/amtext/index.d.ts +0 -27
  334. package/amtext/index.js +0 -4
  335. package/amtoaster/index.d.ts +0 -28
  336. package/amtoaster/index.js +0 -4
  337. package/amtooltip/index.d.ts +0 -27
  338. package/amtooltip/index.js +0 -4
  339. package/apple_pay-DtsAzVjF.js +0 -20
  340. package/archive-CFoPOir7.js +0 -18
  341. package/aura-D1VyKb6w.js +0 -23
  342. package/boleto-BQZRi0Q5.js +0 -18
  343. package/box-DNrK38w2.js +0 -20
  344. package/cart-p5jccB8o.js +0 -15
  345. package/cash-FZcelZV1.js +0 -20
  346. package/chart-YJ27XOr3.js +0 -22
  347. package/cn-BYiHqh5J.js +0 -11
  348. package/credit_card-CGrPYCJP.js +0 -15
  349. package/csv-CYa6aPS5.js +0 -18
  350. package/diners-CN_1suUM.js +0 -26
  351. package/discover-vVTOFEvv.js +0 -22
  352. package/elo-BaNbqhYS.js +0 -15
  353. package/gear-BHOWpd7b.js +0 -18
  354. package/grid-B7I0mWry.js +0 -18
  355. package/hipercard-DBsszwxC.js +0 -22
  356. package/index/index.js +0 -1324
  357. package/infos-8KGPLXoE.js +0 -18
  358. package/integrations-UOltVEyj.js +0 -19
  359. package/logs-Ce3fZY0v.js +0 -28
  360. package/maestro-BMomgHxO.js +0 -27
  361. package/mastercard-5I-dcOVV.js +0 -30
  362. package/max_brand-Crj-SFUw.js +0 -29
  363. package/max_brand_active-BIkS5qkP.js +0 -27
  364. package/max_brand_negative-BxvdIegN.js +0 -30
  365. package/max_brand_white-DdKi2YVX.js +0 -29
  366. package/money-DZpB5eTf.js +0 -19
  367. package/notification-DMezLtAj.js +0 -18
  368. package/paypal-DMYjfEw0.js +0 -15
  369. package/pix-DXdX91yj.js +0 -22
  370. package/pix_outline-D_xXXgCN.js +0 -16
  371. package/pix_white-CcVsnEF2.js +0 -24
  372. package/shield-DS-Xf4WH.js +0 -15
  373. package/solid_help-DNaqfgoc.js +0 -20
  374. package/solid_home-BDUiJDVY.js +0 -18
  375. package/solid_leaderboard-DtqK7q9Y.js +0 -18
  376. package/solid_store-Cfv6o4b8.js +0 -18
  377. package/ticket_icon-DwvyLm7c.js +0 -22
  378. package/user-BRpwqYx8.js +0 -18
  379. package/visa-tPjWcMbi.js +0 -18
@@ -23,6 +23,8 @@ export interface FranchisePresetResult {
23
23
  preset: any;
24
24
  primaryRamp: Record<number, string>;
25
25
  secondaryRamp: Record<number, string>;
26
+ primaryContrastRamp: Record<number, string>;
27
+ secondaryContrastRamp: Record<number, string>;
26
28
  }
27
29
  /**
28
30
  * Constrói um preset customizado para um franqueado a partir de um preset base
@@ -95,12 +95,34 @@ function getLuminance(hex) {
95
95
  0.0722 * (b / 255 <= 0.03928 ? b / 255 / 12.92 : Math.pow((b / 255 + 0.055) / 1.055, 2.4)));
96
96
  }
97
97
  /**
98
- * Verifica se uma cor é clara demais para uso como primary interativa
99
- * Threshold 0.65captura cores como #B2D1FF, #CCCCCC, #FFFFFF
100
- * sem afetar cores médias como #6699CC, #0052CC
98
+ * Verifica se uma cor é clara demais para uso como primary interativa.
99
+ * Threshold 0.85 dispara o ajuste de luminância em cores quase-brancas
100
+ * (#F5F5F5, #FFFFFF). Cores médias/claras como #C4FFC4, #B2D1FF, #6699CC
101
+ * passam direto e o contraste é resolvido via --primary-contrast por shade.
101
102
  */
102
103
  function isLightColor(hex) {
103
- return getLuminance(hex) > 0.65;
104
+ return getLuminance(hex) > 0.85;
105
+ }
106
+ /**
107
+ * Decide a melhor cor de texto (preto ou branco) para usar sobre um fundo.
108
+ * Usa luma YIQ — mais simples e perceptualmente próxima ao WCAG completo.
109
+ */
110
+ function pickContrastColor(hex) {
111
+ const rgb = hexToRgb(hex);
112
+ if (!rgb)
113
+ return '#ffffff';
114
+ const luma = (0.299 * rgb.r + 0.587 * rgb.g + 0.114 * rgb.b) / 255;
115
+ return luma > 0.5 ? '#171717' : '#ffffff';
116
+ }
117
+ /**
118
+ * Aplica pickContrastColor em cada shade de uma rampa.
119
+ */
120
+ function generateContrastRamp(ramp) {
121
+ const out = {};
122
+ for (const [shade, hex] of Object.entries(ramp)) {
123
+ out[Number(shade)] = pickContrastColor(hex);
124
+ }
125
+ return out;
104
126
  }
105
127
  /**
106
128
  * Converte RGB para HSL
@@ -228,6 +250,8 @@ export function buildFranchisePreset(basePreset, colors) {
228
250
  preset: basePreset,
229
251
  primaryRamp: {},
230
252
  secondaryRamp: {},
253
+ primaryContrastRamp: {},
254
+ secondaryContrastRamp: {},
231
255
  };
232
256
  }
233
257
  if (!isValidColor(colors.secondary)) {
@@ -236,6 +260,8 @@ export function buildFranchisePreset(basePreset, colors) {
236
260
  preset: basePreset,
237
261
  primaryRamp: {},
238
262
  secondaryRamp: {},
263
+ primaryContrastRamp: {},
264
+ secondaryContrastRamp: {},
239
265
  };
240
266
  }
241
267
  // Verificar contraste mínimo (WCAG AA = 4.5:1)
@@ -366,10 +392,14 @@ export function buildFranchisePreset(basePreset, colors) {
366
392
  },
367
393
  components: componentOverrides,
368
394
  });
395
+ const primaryContrastRamp = generateContrastRamp(primaryRamp);
396
+ const secondaryContrastRamp = generateContrastRamp(secondaryRamp);
369
397
  return {
370
398
  preset: customPreset,
371
399
  primaryRamp,
372
400
  secondaryRamp,
401
+ primaryContrastRamp,
402
+ secondaryContrastRamp,
373
403
  };
374
404
  }
375
405
  /**