optikos 0.4.0 → 0.5.1

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 (340) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/dist/build.js +2 -0
  3. package/dist/build.js.map +7 -0
  4. package/dist/{chunk-FCJI2JF7.js → chunk-34KVSA2V.js} +2 -2
  5. package/dist/{chunk-M7FNPRV4.js → chunk-4DW5WBZB.js} +2 -2
  6. package/dist/chunk-4QAHVGGE.js +2 -0
  7. package/dist/chunk-4QAHVGGE.js.map +7 -0
  8. package/dist/{chunk-I5A74NMJ.js → chunk-4Z4E3BZ2.js} +2 -2
  9. package/dist/chunk-5H533QXN.js +2 -0
  10. package/dist/chunk-5H533QXN.js.map +7 -0
  11. package/dist/chunk-5KJ5Y4GY.js +2 -0
  12. package/dist/chunk-5KJ5Y4GY.js.map +7 -0
  13. package/dist/chunk-5WE2JOBY.js +2 -0
  14. package/dist/chunk-5WE2JOBY.js.map +7 -0
  15. package/dist/{chunk-SEW5OCQF.js → chunk-6IXVTWFH.js} +2 -2
  16. package/dist/{chunk-NJ5IFOPR.js → chunk-6S4BKUGD.js} +2 -2
  17. package/dist/{chunk-CWIE74NX.js → chunk-6VWSTY32.js} +2 -2
  18. package/dist/{chunk-F4HZUAKM.js → chunk-72ESP5DB.js} +2 -2
  19. package/dist/chunk-74IVU356.js +3 -0
  20. package/dist/chunk-74IVU356.js.map +7 -0
  21. package/dist/chunk-76A4MY7P.js +2 -0
  22. package/dist/chunk-76A4MY7P.js.map +7 -0
  23. package/dist/{chunk-3BG75P7T.js → chunk-7SE4B4TC.js} +2 -2
  24. package/dist/{chunk-PGVLRMTQ.js → chunk-A5N2AJCE.js} +2 -2
  25. package/dist/{chunk-3QRA3XOA.js → chunk-ALNUVKDT.js} +2 -2
  26. package/dist/{chunk-NQV4THNE.js → chunk-ANR27GED.js} +2 -2
  27. package/dist/{chunk-EXIADWI7.js → chunk-AZUWS2C5.js} +2 -2
  28. package/dist/{chunk-Z6L55FTN.js → chunk-BHKI2SU3.js} +2 -2
  29. package/dist/{chunk-GZIDE5K2.js → chunk-BIQX75P2.js} +2 -2
  30. package/dist/{chunk-MNSDGJKA.js → chunk-BPCD37A2.js} +2 -2
  31. package/dist/chunk-CGSCBLG2.js +2 -0
  32. package/dist/chunk-CGSCBLG2.js.map +7 -0
  33. package/dist/{chunk-R32HPK7R.js → chunk-DHUBCB4H.js} +2 -2
  34. package/dist/chunk-DY3ZYMXD.js +2 -0
  35. package/dist/chunk-DY3ZYMXD.js.map +7 -0
  36. package/dist/{chunk-JSEI44A7.js → chunk-EKRWJJ65.js} +2 -2
  37. package/dist/chunk-EO2IXU2W.js +2 -0
  38. package/dist/chunk-EO2IXU2W.js.map +7 -0
  39. package/dist/{chunk-JE56CJX2.js → chunk-EQ4IWYLW.js} +2 -2
  40. package/dist/{chunk-5PYJ6FJK.js → chunk-EXBGOHG7.js} +2 -2
  41. package/dist/{chunk-UQRQH2JW.js → chunk-FTZMF2QX.js} +2 -2
  42. package/dist/{chunk-XFIREDWO.js → chunk-G7NNOLOG.js} +2 -2
  43. package/dist/chunk-GPEA3UWY.js +2 -0
  44. package/dist/chunk-GPEA3UWY.js.map +7 -0
  45. package/dist/{chunk-4OB2IM5L.js → chunk-GX32KEG2.js} +2 -2
  46. package/dist/{chunk-ZSPJZ3ZH.js → chunk-GYGX4VYF.js} +2 -2
  47. package/dist/{chunk-BIGL3ZVD.js → chunk-H2EC3QP4.js} +2 -2
  48. package/dist/{chunk-HRW25TMU.js → chunk-H2KFAM7L.js} +2 -2
  49. package/dist/{chunk-6LJK4QWF.js → chunk-HHOSKOO6.js} +2 -2
  50. package/dist/{chunk-JJLOUMCJ.js → chunk-I5KHVFJ4.js} +2 -2
  51. package/dist/{chunk-N2LS4JD6.js → chunk-IB5T27PW.js} +2 -2
  52. package/dist/{chunk-5BMG5ZBY.js → chunk-IE7KRNFJ.js} +2 -2
  53. package/dist/chunk-IODSL7KU.js +2 -0
  54. package/dist/chunk-IODSL7KU.js.map +7 -0
  55. package/dist/{chunk-3FK52VQX.js → chunk-J2YP2YD3.js} +2 -2
  56. package/dist/{chunk-3FCIZKIN.js → chunk-J6D4T4WY.js} +2 -2
  57. package/dist/{chunk-H25XXQVH.js → chunk-JF4WPGJQ.js} +2 -2
  58. package/dist/chunk-K44IJHPF.js +2 -0
  59. package/dist/{chunk-UDXO3KM3.js → chunk-KMBTJ5AG.js} +2 -2
  60. package/dist/chunk-KMBTJ5AG.js.map +7 -0
  61. package/dist/chunk-KNWO4NXX.js +2 -0
  62. package/dist/chunk-KNWO4NXX.js.map +7 -0
  63. package/dist/{chunk-JLKIHXZP.js → chunk-KP7O5MVL.js} +2 -2
  64. package/dist/{chunk-HLS5FI55.js → chunk-KVUELLYF.js} +2 -2
  65. package/dist/chunk-LLHDEUIA.js +2 -0
  66. package/dist/chunk-LLHDEUIA.js.map +7 -0
  67. package/dist/{chunk-CMV3F6HR.js → chunk-LRUKKIYA.js} +2 -2
  68. package/dist/{chunk-DWTDNKXX.js → chunk-M2XOIEPY.js} +2 -2
  69. package/dist/{chunk-P4O57S6N.js → chunk-MBRCE5A7.js} +2 -2
  70. package/dist/{chunk-CFGCB37K.js → chunk-MMPPDQ2E.js} +2 -2
  71. package/dist/{chunk-643FOYQB.js → chunk-MRDX3RVJ.js} +2 -2
  72. package/dist/{chunk-6PZPBPAD.js → chunk-NAWQBQ57.js} +2 -2
  73. package/dist/{chunk-RG6SHPHF.js → chunk-NBR5IRZT.js} +2 -2
  74. package/dist/chunk-NSUAVAWO.js +2 -0
  75. package/dist/chunk-NSUAVAWO.js.map +7 -0
  76. package/dist/chunk-NYXRPWIB.js +2 -0
  77. package/dist/chunk-NYXRPWIB.js.map +7 -0
  78. package/dist/{chunk-J5QPFJ7M.js → chunk-OK3SN5PN.js} +2 -2
  79. package/dist/{chunk-NNR2FNHG.js → chunk-OQFQDTLL.js} +2 -2
  80. package/dist/chunk-OVEQUN4V.js +2 -0
  81. package/dist/chunk-OVEQUN4V.js.map +7 -0
  82. package/dist/{chunk-GEBAYD6N.js → chunk-PMIIQMVH.js} +2 -2
  83. package/dist/{chunk-DIOJGTUN.js → chunk-QT5JRZZJ.js} +2 -2
  84. package/dist/{chunk-IUOEPAWG.js → chunk-R52OSARY.js} +2 -2
  85. package/dist/{chunk-XR677UYD.js → chunk-RI62AESU.js} +2 -2
  86. package/dist/{chunk-6BOM5KZR.js → chunk-RRGAJ7T4.js} +2 -2
  87. package/dist/{chunk-2YRQULDC.js → chunk-SQTM4QFP.js} +2 -2
  88. package/dist/{chunk-FPU53CCV.js → chunk-TAFHKT6O.js} +2 -2
  89. package/dist/{chunk-3TCITFUU.js → chunk-TBM35UV6.js} +2 -2
  90. package/dist/{chunk-YDX2PCVL.js → chunk-TBOQ6HZZ.js} +2 -2
  91. package/dist/{chunk-GEJKFE4X.js → chunk-TJJL2GSJ.js} +2 -2
  92. package/dist/{chunk-3F4MN2BU.js → chunk-TJXH3F7Z.js} +2 -2
  93. package/dist/chunk-TMBGEZSD.js +2 -0
  94. package/dist/chunk-TMBGEZSD.js.map +7 -0
  95. package/dist/{chunk-BQEFLPDA.js → chunk-U5RENLU4.js} +2 -2
  96. package/dist/chunk-U5RENLU4.js.map +7 -0
  97. package/dist/chunk-UXL7KG46.js +2 -0
  98. package/dist/chunk-UXL7KG46.js.map +7 -0
  99. package/dist/{chunk-DWA45BWR.js → chunk-VADYSXHY.js} +2 -2
  100. package/dist/{chunk-Q6FY4L2F.js → chunk-VBLCO5Q7.js} +2 -2
  101. package/dist/{chunk-ESCLDVFS.js → chunk-VCK5WWMQ.js} +2 -2
  102. package/dist/{chunk-BCVOUMJJ.js → chunk-VCYCNSJY.js} +2 -2
  103. package/dist/{chunk-4AZ44KV4.js → chunk-VOCGAAG7.js} +2 -2
  104. package/dist/{chunk-AT7VFZRB.js → chunk-WHWPLMIG.js} +2 -2
  105. package/dist/{chunk-S2CMWKVB.js → chunk-WVJSNE6Q.js} +2 -2
  106. package/dist/chunk-WWETTEUZ.js +2 -0
  107. package/dist/{chunk-YXOKWCYS.js.map → chunk-WWETTEUZ.js.map} +4 -4
  108. package/dist/chunk-XFDNXSU5.js +2 -0
  109. package/dist/{chunk-XQHATUKN.js.map → chunk-XFDNXSU5.js.map} +3 -3
  110. package/dist/{chunk-U5L76VVB.js → chunk-XI4IBUE3.js} +2 -2
  111. package/dist/{chunk-4S3HRFQB.js → chunk-YAKKOVRI.js} +2 -2
  112. package/dist/{chunk-HG7OOHGD.js → chunk-YF5GWNM7.js} +2 -2
  113. package/dist/{chunk-4CWYF4O7.js → chunk-YRCR5ELY.js} +2 -2
  114. package/dist/{chunk-C3MWS7P2.js → chunk-YVEGWCYD.js} +2 -2
  115. package/dist/{chunk-MQ5BYGFY.js → chunk-ZYHMTPW4.js} +2 -2
  116. package/dist/components/alert.js +2 -0
  117. package/dist/components/alert.js.map +7 -0
  118. package/dist/components/avatar.js +1 -1
  119. package/dist/components/badge.js +1 -1
  120. package/dist/components/breadcrumb.js +1 -1
  121. package/dist/components/button.js +1 -1
  122. package/dist/components/calendar.js +1 -1
  123. package/dist/components/carousel.js +1 -1
  124. package/dist/components/chart.js +1 -1
  125. package/dist/components/chat.js +1 -1
  126. package/dist/components/checkbox.js +1 -1
  127. package/dist/components/checkboxgroup.js +1 -1
  128. package/dist/components/chip.js +1 -1
  129. package/dist/components/codeviewer.js +1 -1
  130. package/dist/components/columntotals.js +2 -0
  131. package/dist/components/columntotals.js.map +7 -0
  132. package/dist/components/combobox.js +1 -1
  133. package/dist/components/commandpalette.js +1 -1
  134. package/dist/components/container.js +1 -1
  135. package/dist/components/dataview.js +1 -1
  136. package/dist/components/datefield.js +1 -1
  137. package/dist/components/daterangefield.js +1 -1
  138. package/dist/components/datetimefield.js +1 -1
  139. package/dist/components/dial.js +1 -1
  140. package/dist/components/dropdown.js +1 -1
  141. package/dist/components/exportbar.js +2 -0
  142. package/dist/components/exportbar.js.map +7 -0
  143. package/dist/components/fieldgroup.js +1 -1
  144. package/dist/components/fieldlist.js +1 -1
  145. package/dist/components/fieldset.js +1 -1
  146. package/dist/components/filterbuilder.js +1 -1
  147. package/dist/components/form.js +1 -1
  148. package/dist/components/formactions.js +1 -1
  149. package/dist/components/formerrors.js +1 -1
  150. package/dist/components/formsection.js +1 -1
  151. package/dist/components/grid.js +1 -1
  152. package/dist/components/gridexport.js +1 -1
  153. package/dist/components/grouping.js +1 -1
  154. package/dist/components/icon.js +1 -1
  155. package/dist/components/image.js +1 -1
  156. package/dist/components/imagecanvas.js +1 -1
  157. package/dist/components/imagefield.js +1 -1
  158. package/dist/components/inputgroup.js +1 -1
  159. package/dist/components/label.js +1 -1
  160. package/dist/components/listbox.js +1 -1
  161. package/dist/components/lookupfield.js +1 -1
  162. package/dist/components/maskfield.js +1 -1
  163. package/dist/components/menu.js +1 -1
  164. package/dist/components/messagebox.js +1 -1
  165. package/dist/components/navmenu.js +1 -1
  166. package/dist/components/numberfield.js +1 -1
  167. package/dist/components/pagination.js +1 -1
  168. package/dist/components/panel.js +1 -1
  169. package/dist/components/pickerfield.js +1 -1
  170. package/dist/components/quicksearch.js +2 -0
  171. package/dist/components/quicksearch.js.map +7 -0
  172. package/dist/components/radiogroup.js +1 -1
  173. package/dist/components/searchgrid.js +1 -1
  174. package/dist/components/secretfield.js +1 -1
  175. package/dist/components/select.js +1 -1
  176. package/dist/components/shortcuts.js +1 -1
  177. package/dist/components/slider.js +1 -1
  178. package/dist/components/spacer.js +1 -1
  179. package/dist/components/spinner.js +1 -1
  180. package/dist/components/stat.js +1 -1
  181. package/dist/components/stepform.js +1 -1
  182. package/dist/components/stepper.js +1 -1
  183. package/dist/components/suggestfield.js +1 -1
  184. package/dist/components/table.js +1 -1
  185. package/dist/components/tabs.js +1 -1
  186. package/dist/components/textarea.js +1 -1
  187. package/dist/components/textfield.js +1 -1
  188. package/dist/components/timeentry.js +2 -0
  189. package/dist/components/timeentry.js.map +7 -0
  190. package/dist/components/timefield.js +1 -1
  191. package/dist/components/timeline.js +1 -1
  192. package/dist/components/toast.js +1 -1
  193. package/dist/components/toggle.js +1 -1
  194. package/dist/components/toolbar.js +1 -1
  195. package/dist/components/tree.js +1 -1
  196. package/dist/components/treegrid.js +1 -1
  197. package/dist/components/viewmanager.js +1 -1
  198. package/dist/components/viewport.js +1 -1
  199. package/dist/components/widget.js +1 -1
  200. package/dist/components/window.js +1 -1
  201. package/dist/core.js +1 -1
  202. package/dist/css/alert.css +60 -0
  203. package/dist/css/carousel.css +60 -0
  204. package/dist/css/columntotals.css +56 -0
  205. package/dist/css/exportbar.css +9 -0
  206. package/dist/css/grid.css +12 -0
  207. package/dist/css/grouping.css +7 -0
  208. package/dist/css/label.css +14 -0
  209. package/dist/css/quicksearch.css +13 -0
  210. package/dist/css/stat.css +14 -0
  211. package/dist/css/timeentry.css +116 -0
  212. package/dist/css/timeline.css +45 -0
  213. package/dist/data.js +1 -1
  214. package/dist/dev.js +1 -1
  215. package/dist/dev.js.map +2 -2
  216. package/dist/index.js +6 -6
  217. package/dist/index.js.map +1 -1
  218. package/dist/optikos.css +411 -0
  219. package/dist/types/build/build.d.ts +49 -0
  220. package/dist/types/build/index.d.ts +1 -0
  221. package/dist/types/components/alert.d.ts +1 -0
  222. package/dist/types/components/base/label/label.d.ts +11 -1
  223. package/dist/types/components/charts/stat/stat.d.ts +7 -1
  224. package/dist/types/components/columntotals.d.ts +1 -0
  225. package/dist/types/components/data/columntotals/columntotals.d.ts +24 -0
  226. package/dist/types/components/data/exportbar/exportbar.d.ts +24 -0
  227. package/dist/types/components/data/grid/footer.d.ts +6 -0
  228. package/dist/types/components/data/grouping/controls.d.ts +27 -0
  229. package/dist/types/components/data/grouping/grouping.d.ts +15 -3
  230. package/dist/types/components/data/quicksearch/quicksearch.d.ts +13 -0
  231. package/dist/types/components/data/timeentry/timeentry.d.ts +37 -0
  232. package/dist/types/components/data/timeline/timeline.d.ts +3 -0
  233. package/dist/types/components/exportbar.d.ts +1 -0
  234. package/dist/types/components/feedback/alert/alert.d.ts +28 -0
  235. package/dist/types/components/fields/datetimefield/datetimefield.d.ts +2 -0
  236. package/dist/types/components/fields/maskfield/maskfield.d.ts +23 -4
  237. package/dist/types/components/layout/carousel/carousel.d.ts +8 -0
  238. package/dist/types/components/navigation/navmenu/navmenu.d.ts +4 -0
  239. package/dist/types/components/quicksearch.d.ts +1 -0
  240. package/dist/types/components/timeentry.d.ts +1 -0
  241. package/dist/types/core/component.d.ts +6 -3
  242. package/dist/types/core/container.d.ts +2 -0
  243. package/dist/types/data/column.d.ts +4 -2
  244. package/dist/types/index.d.ts +6 -0
  245. package/dist/types/layout/layout.d.ts +5 -0
  246. package/dist/ui.js +1 -1
  247. package/package.json +5 -1
  248. package/dist/chunk-2HNQ2XRY.js +0 -2
  249. package/dist/chunk-2HNQ2XRY.js.map +0 -7
  250. package/dist/chunk-5PWPAN62.js +0 -2
  251. package/dist/chunk-5PWPAN62.js.map +0 -7
  252. package/dist/chunk-AQ3RTHG5.js +0 -2
  253. package/dist/chunk-AQ3RTHG5.js.map +0 -7
  254. package/dist/chunk-BJWREA76.js +0 -2
  255. package/dist/chunk-BJWREA76.js.map +0 -7
  256. package/dist/chunk-BQEFLPDA.js.map +0 -7
  257. package/dist/chunk-DJUSVBD5.js +0 -2
  258. package/dist/chunk-DJUSVBD5.js.map +0 -7
  259. package/dist/chunk-GFFZTFQH.js +0 -2
  260. package/dist/chunk-GFFZTFQH.js.map +0 -7
  261. package/dist/chunk-PMOXLQ72.js +0 -2
  262. package/dist/chunk-PMOXLQ72.js.map +0 -7
  263. package/dist/chunk-SB4ICXBV.js +0 -2
  264. package/dist/chunk-SB4ICXBV.js.map +0 -7
  265. package/dist/chunk-SWCB2GMN.js +0 -2
  266. package/dist/chunk-SWCB2GMN.js.map +0 -7
  267. package/dist/chunk-TQPQ4UEA.js +0 -2
  268. package/dist/chunk-TQPQ4UEA.js.map +0 -7
  269. package/dist/chunk-UDXO3KM3.js.map +0 -7
  270. package/dist/chunk-XQHATUKN.js +0 -2
  271. package/dist/chunk-YJTUFK4P.js +0 -2
  272. package/dist/chunk-YXOKWCYS.js +0 -2
  273. /package/dist/{chunk-FCJI2JF7.js.map → chunk-34KVSA2V.js.map} +0 -0
  274. /package/dist/{chunk-M7FNPRV4.js.map → chunk-4DW5WBZB.js.map} +0 -0
  275. /package/dist/{chunk-I5A74NMJ.js.map → chunk-4Z4E3BZ2.js.map} +0 -0
  276. /package/dist/{chunk-SEW5OCQF.js.map → chunk-6IXVTWFH.js.map} +0 -0
  277. /package/dist/{chunk-NJ5IFOPR.js.map → chunk-6S4BKUGD.js.map} +0 -0
  278. /package/dist/{chunk-CWIE74NX.js.map → chunk-6VWSTY32.js.map} +0 -0
  279. /package/dist/{chunk-F4HZUAKM.js.map → chunk-72ESP5DB.js.map} +0 -0
  280. /package/dist/{chunk-3BG75P7T.js.map → chunk-7SE4B4TC.js.map} +0 -0
  281. /package/dist/{chunk-PGVLRMTQ.js.map → chunk-A5N2AJCE.js.map} +0 -0
  282. /package/dist/{chunk-3QRA3XOA.js.map → chunk-ALNUVKDT.js.map} +0 -0
  283. /package/dist/{chunk-NQV4THNE.js.map → chunk-ANR27GED.js.map} +0 -0
  284. /package/dist/{chunk-EXIADWI7.js.map → chunk-AZUWS2C5.js.map} +0 -0
  285. /package/dist/{chunk-Z6L55FTN.js.map → chunk-BHKI2SU3.js.map} +0 -0
  286. /package/dist/{chunk-GZIDE5K2.js.map → chunk-BIQX75P2.js.map} +0 -0
  287. /package/dist/{chunk-MNSDGJKA.js.map → chunk-BPCD37A2.js.map} +0 -0
  288. /package/dist/{chunk-R32HPK7R.js.map → chunk-DHUBCB4H.js.map} +0 -0
  289. /package/dist/{chunk-JSEI44A7.js.map → chunk-EKRWJJ65.js.map} +0 -0
  290. /package/dist/{chunk-JE56CJX2.js.map → chunk-EQ4IWYLW.js.map} +0 -0
  291. /package/dist/{chunk-5PYJ6FJK.js.map → chunk-EXBGOHG7.js.map} +0 -0
  292. /package/dist/{chunk-UQRQH2JW.js.map → chunk-FTZMF2QX.js.map} +0 -0
  293. /package/dist/{chunk-XFIREDWO.js.map → chunk-G7NNOLOG.js.map} +0 -0
  294. /package/dist/{chunk-4OB2IM5L.js.map → chunk-GX32KEG2.js.map} +0 -0
  295. /package/dist/{chunk-ZSPJZ3ZH.js.map → chunk-GYGX4VYF.js.map} +0 -0
  296. /package/dist/{chunk-BIGL3ZVD.js.map → chunk-H2EC3QP4.js.map} +0 -0
  297. /package/dist/{chunk-HRW25TMU.js.map → chunk-H2KFAM7L.js.map} +0 -0
  298. /package/dist/{chunk-6LJK4QWF.js.map → chunk-HHOSKOO6.js.map} +0 -0
  299. /package/dist/{chunk-JJLOUMCJ.js.map → chunk-I5KHVFJ4.js.map} +0 -0
  300. /package/dist/{chunk-N2LS4JD6.js.map → chunk-IB5T27PW.js.map} +0 -0
  301. /package/dist/{chunk-5BMG5ZBY.js.map → chunk-IE7KRNFJ.js.map} +0 -0
  302. /package/dist/{chunk-3FK52VQX.js.map → chunk-J2YP2YD3.js.map} +0 -0
  303. /package/dist/{chunk-3FCIZKIN.js.map → chunk-J6D4T4WY.js.map} +0 -0
  304. /package/dist/{chunk-H25XXQVH.js.map → chunk-JF4WPGJQ.js.map} +0 -0
  305. /package/dist/{chunk-YJTUFK4P.js.map → chunk-K44IJHPF.js.map} +0 -0
  306. /package/dist/{chunk-JLKIHXZP.js.map → chunk-KP7O5MVL.js.map} +0 -0
  307. /package/dist/{chunk-HLS5FI55.js.map → chunk-KVUELLYF.js.map} +0 -0
  308. /package/dist/{chunk-CMV3F6HR.js.map → chunk-LRUKKIYA.js.map} +0 -0
  309. /package/dist/{chunk-DWTDNKXX.js.map → chunk-M2XOIEPY.js.map} +0 -0
  310. /package/dist/{chunk-P4O57S6N.js.map → chunk-MBRCE5A7.js.map} +0 -0
  311. /package/dist/{chunk-CFGCB37K.js.map → chunk-MMPPDQ2E.js.map} +0 -0
  312. /package/dist/{chunk-643FOYQB.js.map → chunk-MRDX3RVJ.js.map} +0 -0
  313. /package/dist/{chunk-6PZPBPAD.js.map → chunk-NAWQBQ57.js.map} +0 -0
  314. /package/dist/{chunk-RG6SHPHF.js.map → chunk-NBR5IRZT.js.map} +0 -0
  315. /package/dist/{chunk-J5QPFJ7M.js.map → chunk-OK3SN5PN.js.map} +0 -0
  316. /package/dist/{chunk-NNR2FNHG.js.map → chunk-OQFQDTLL.js.map} +0 -0
  317. /package/dist/{chunk-GEBAYD6N.js.map → chunk-PMIIQMVH.js.map} +0 -0
  318. /package/dist/{chunk-DIOJGTUN.js.map → chunk-QT5JRZZJ.js.map} +0 -0
  319. /package/dist/{chunk-IUOEPAWG.js.map → chunk-R52OSARY.js.map} +0 -0
  320. /package/dist/{chunk-XR677UYD.js.map → chunk-RI62AESU.js.map} +0 -0
  321. /package/dist/{chunk-6BOM5KZR.js.map → chunk-RRGAJ7T4.js.map} +0 -0
  322. /package/dist/{chunk-2YRQULDC.js.map → chunk-SQTM4QFP.js.map} +0 -0
  323. /package/dist/{chunk-FPU53CCV.js.map → chunk-TAFHKT6O.js.map} +0 -0
  324. /package/dist/{chunk-3TCITFUU.js.map → chunk-TBM35UV6.js.map} +0 -0
  325. /package/dist/{chunk-YDX2PCVL.js.map → chunk-TBOQ6HZZ.js.map} +0 -0
  326. /package/dist/{chunk-GEJKFE4X.js.map → chunk-TJJL2GSJ.js.map} +0 -0
  327. /package/dist/{chunk-3F4MN2BU.js.map → chunk-TJXH3F7Z.js.map} +0 -0
  328. /package/dist/{chunk-DWA45BWR.js.map → chunk-VADYSXHY.js.map} +0 -0
  329. /package/dist/{chunk-Q6FY4L2F.js.map → chunk-VBLCO5Q7.js.map} +0 -0
  330. /package/dist/{chunk-ESCLDVFS.js.map → chunk-VCK5WWMQ.js.map} +0 -0
  331. /package/dist/{chunk-BCVOUMJJ.js.map → chunk-VCYCNSJY.js.map} +0 -0
  332. /package/dist/{chunk-4AZ44KV4.js.map → chunk-VOCGAAG7.js.map} +0 -0
  333. /package/dist/{chunk-AT7VFZRB.js.map → chunk-WHWPLMIG.js.map} +0 -0
  334. /package/dist/{chunk-S2CMWKVB.js.map → chunk-WVJSNE6Q.js.map} +0 -0
  335. /package/dist/{chunk-U5L76VVB.js.map → chunk-XI4IBUE3.js.map} +0 -0
  336. /package/dist/{chunk-4S3HRFQB.js.map → chunk-YAKKOVRI.js.map} +0 -0
  337. /package/dist/{chunk-HG7OOHGD.js.map → chunk-YF5GWNM7.js.map} +0 -0
  338. /package/dist/{chunk-4CWYF4O7.js.map → chunk-YRCR5ELY.js.map} +0 -0
  339. /package/dist/{chunk-C3MWS7P2.js.map → chunk-YVEGWCYD.js.map} +0 -0
  340. /package/dist/{chunk-MQ5BYGFY.js.map → chunk-ZYHMTPW4.js.map} +0 -0
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import{a as Xe,b as Ye}from"./chunk-EXIADWI7.js";import{a as Ze,b as _e}from"./chunk-J5QPFJ7M.js";import{a as ot,b as rt}from"./chunk-SA53QUBF.js";import{a as et}from"./chunk-JSEI44A7.js";import{a as qe}from"./chunk-CWIE74NX.js";import{a as ze}from"./chunk-FPU53CCV.js";import{a as Je}from"./chunk-SWCB2GMN.js";import{a as Qe}from"./chunk-3TCITFUU.js";import{a as Ue}from"./chunk-Q6FY4L2F.js";import{a as Le}from"./chunk-BIGL3ZVD.js";import{a as Oe}from"./chunk-F4HZUAKM.js";import{a as Ne}from"./chunk-JLKIHXZP.js";import{a as Pe}from"./chunk-6BOM5KZR.js";import{a as Ke}from"./chunk-DJUSVBD5.js";import"./chunk-YJTUFK4P.js";import{a as We}from"./chunk-4OB2IM5L.js";import{a as He}from"./chunk-YDX2PCVL.js";import{a as Me}from"./chunk-DWTDNKXX.js";import{a as ke}from"./chunk-GEBAYD6N.js";import{a as De}from"./chunk-ESCLDVFS.js";import{a as Ve}from"./chunk-6LJK4QWF.js";import{a as Te}from"./chunk-MQ5BYGFY.js";import{a as Ce,b as je}from"./chunk-GZIDE5K2.js";import{a as Ee,b as Fe,c as Ae}from"./chunk-NQV4THNE.js";import{a as Ie}from"./chunk-3FK52VQX.js";import{a as be,b as ve}from"./chunk-FCJI2JF7.js";import{a as Re}from"./chunk-HX6TWXTX.js";import{a as Be,b as $e}from"./chunk-BJWREA76.js";import{a as Ge}from"./chunk-GFJRGBQR.js";import{a as we}from"./chunk-XFIREDWO.js";import{a as Se}from"./chunk-SB4ICXBV.js";import{a as ue}from"./chunk-PMOXLQ72.js";import{a as le}from"./chunk-3QRA3XOA.js";import{a as xe}from"./chunk-C3MWS7P2.js";import{a as ge,b as de}from"./chunk-M2ZRKHE4.js";import{a as ye}from"./chunk-AT7VFZRB.js";import{a as he}from"./chunk-4S3HRFQB.js";import{a as se}from"./chunk-HG7OOHGD.js";import{a as pe}from"./chunk-PGVLRMTQ.js";import{a as me}from"./chunk-3BG75P7T.js";import{a as ie,b as fe}from"./chunk-NJ5IFOPR.js";import{a as ce}from"./chunk-I5A74NMJ.js";import{a as ae}from"./chunk-5PYJ6FJK.js";import{a as yo}from"./chunk-7Y2GHQRB.js";import{a as uo,b as xo,c as go}from"./chunk-YLFSCQL3.js";import{a as Ao,b as Io}from"./chunk-X2ASKUFD.js";import"./chunk-X6AULZI4.js";import{a as Qr,b as Ur,c as Xr,d as Yr,e as Zr,f as _r,g as oe,h as re,i as ee,j as te,k as ne}from"./chunk-YXOKWCYS.js";import{a as vr}from"./chunk-DWA45BWR.js";import{a as Jr}from"./chunk-3FCIZKIN.js";import{a as Br}from"./chunk-ZSPJZ3ZH.js";import{a as Wr}from"./chunk-NNR2FNHG.js";import{a as wr}from"./chunk-CFGCB37K.js";import{a as qr}from"./chunk-U5L76VVB.js";import{a as cr}from"./chunk-P4O57S6N.js";import{a as hr}from"./chunk-S2CMWKVB.js";import{a as yr}from"./chunk-TQPQ4UEA.js";import{a as ur}from"./chunk-M7FNPRV4.js";import{a as zr}from"./chunk-6PZPBPAD.js";import{a as Pr}from"./chunk-JJLOUMCJ.js";import{a as Tr}from"./chunk-4CWYF4O7.js";import{a as lr}from"./chunk-5PWPAN62.js";import{a as Kr}from"./chunk-5BMG5ZBY.js";import{a as Ar}from"./chunk-JE56CJX2.js";import{a as Fr}from"./chunk-UQRQH2JW.js";import"./chunk-HRW25TMU.js";import{a as jr}from"./chunk-3F4MN2BU.js";import{a as Cr}from"./chunk-SEW5OCQF.js";import{a as br}from"./chunk-Z6L55FTN.js";import{a as Rr}from"./chunk-643FOYQB.js";import{a as Sr}from"./chunk-CMV3F6HR.js";import{a as Gr}from"./chunk-N2LS4JD6.js";import{a as $r}from"./chunk-H25XXQVH.js";import{a as Mr,b as kr,c as Dr,d as Lr,e as Or}from"./chunk-IUOEPAWG.js";import{a as Nr}from"./chunk-AQ3RTHG5.js";import{a as ar}from"./chunk-R32HPK7R.js";import{a as dr}from"./chunk-4AZ44KV4.js";import{a as gr}from"./chunk-GEJKFE4X.js";import{a as Hr}from"./chunk-GFFZTFQH.js";import{a as Ir}from"./chunk-BCVOUMJJ.js";import{a as Vr}from"./chunk-MNSDGJKA.js";import{a as xr}from"./chunk-RG6SHPHF.js";import{a as fr}from"./chunk-2YRQULDC.js";import{a as Er}from"./chunk-HLS5FI55.js";import{a as sr,b as pr,c as mr,d as ir}from"./chunk-DIOJGTUN.js";import{a as mo,b as io,c as fo}from"./chunk-BQEFLPDA.js";import{i as Co}from"./chunk-2GKIF7A6.js";import{a as So,b as To}from"./chunk-OWEQT2HN.js";import{a as Ro,b as Bo}from"./chunk-E4VNLYO2.js";import{a as ho,b as bo,c as vo}from"./chunk-676AKAGF.js";import{a as lo}from"./chunk-XR677UYD.js";import{a as $o,b as Go,c as wo}from"./chunk-VV7CFMPZ.js";import{a as no,b as so,c as po}from"./chunk-TIPK3SCJ.js";import{a as Mo}from"./chunk-2HNQ2XRY.js";import{a as Vo,b as Ho}from"./chunk-XQHATUKN.js";import{a as jo,b as Eo,c as Fo}from"./chunk-L5SQQFO7.js";import{a as Uo,b as Xo,c as Yo,d as Zo,e as _o,f as or,g as rr,h as er,i as tr,j as nr}from"./chunk-6NCXO5ZP.js";import{a as Oo,b as Po,c as No,d as Ko,e as Wo,f as qo,g as zo,h as Jo,i as Qo}from"./chunk-4AA4FQEM.js";import{a as ko,b as Do,c as Lo}from"./chunk-2UPUC4RK.js";import{a as co,b as ao}from"./chunk-V5G5JECN.js";import{a as v}from"./chunk-2QMI2RRB.js";import{a as _,b as oo,c as ro,e as eo,f as to}from"./chunk-UDXO3KM3.js";import{a as N,b as K,c as W,d as b,e as q,f as z}from"./chunk-PZSHOSOS.js";import{a as P}from"./chunk-3VDLX7ET.js";import{a as J,b as Q,c as U,d as X,e as Y,f as Z}from"./chunk-S4QD5NID.js";import"./chunk-4C666HHU.js";function h(r){let o=r.trim(),e=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(o)?.[1];if(e){let p=e.length===3?[...e].map(u=>u+u).join(""):e;return[0,2,4].map(u=>parseInt(p.slice(u,u+2),16))}let s=/^(rgba?|color)\(\s*(?:srgb\s+)?([^)]+)\)/i.exec(o);if(!s)return;let i=s[2].split(/[\s,/]+/).filter(Boolean).slice(0,3).map(Number);if(!(i.length<3||i.some(isNaN)))return s[1]==="color"?i.map(p=>p*255):i}var F=r=>"#"+r.map(o=>Math.round(Math.min(255,Math.max(0,o))).toString(16).padStart(2,"0")).join(""),t=(r,o,e)=>r.map((s,i)=>s+(o[i]-s)*e),$=r=>(r/=255)<=.04045?r/12.92:((r+.055)/1.055)**2.4,G=r=>.2126*$(r[0])+.7152*$(r[1])+.0722*$(r[2]);function g(r,o){let[e,s]=[G(r),G(o)].sort((i,p)=>p-i);return(e+.05)/(s+.05)}var c=[255,255,255],l=[0,0,0];function x(r,o,e){if(g(r,o)>=e)return r;let s=G(o)>.4?l:c;for(let i=.04;i<=1;i+=.04){let p=t(r,s,i);if(g(p,o)>=e)return p}return s}var w=r=>g(c,r)>=g(l,r)?c:l;var n=r=>F(r);function A(r,o,e){let s=e?t(o,l,.86):c,i=e?t(o,l,.93):t(o,c,.93),p=e?t(o,l,.8):t(o,c,.96),u=x(e?t(o,c,.9):t(o,l,.8),p,9),d=x(e?t(o,c,.6):t(o,l,.35),i,4.5),m=e?t(o,l,.65):t(o,c,.82),f=x(e?t(o,c,.4):t(o,c,.55),s,3),a=e&&g(r,s)<3?x(r,s,3):r,T=x(r,p,4.5),V=w(a),H=t(a,e?c:l,.14),C=t(s,a,e?.22:.12),y=e?t(o,l,.92):t(o,l,.82),M=x(t(o,c,.85),y,7),R=t(y,r,.4),B=x(r,R,3),j=e?t(o,l,.75):t(o,c,.88),E={"--op-color-bg":n(i),"--op-color-surface":n(s),"--op-color-surface-2":n(p),"--op-color-fg":n(u),"--op-color-fg-muted":n(d),"--op-color-border":n(m),"--op-color-border-strong":n(f),"--op-color-hover":n(t(s,o,e?.18:.1)),"--op-color-selected":n(C),"--op-color-primary":n(a),"--op-color-primary-hover":n(H),"--op-color-primary-fg":n(V),"--op-color-primary-soft":n(C),"--op-color-focus":n(T),"--op-navmenu-bg":n(y),"--op-navmenu-fg":n(M),"--op-navmenu-group-fg":n(x(t(o,c,.55),y,4.5)),"--op-navmenu-item-hover-bg":n(t(y,c,.08)),"--op-navmenu-active-bg":n(R),"--op-navmenu-active-fg":n(x(c,R,7)),"--op-navmenu-active-bar":n(B),"--op-navmenu-badge-bg":n(B),"--op-navmenu-badge-fg":n(w(B)),"--op-grid-header-bg":n(j),"--op-grid-header-fg":n(x(u,j,7))};return g(a,p)<4.5&&(E["--op-color-primary-text"]=n(T)),E}function I(r){let o=h(r.primary);if(!o)throw new Error(`Optikos: seeds.primary must be a hex color, got "${r.primary}"`);let e=h(r.neutral??"#64748b")??[100,116,139];return{light:A(o,e,!1),dark:A(o,e,!0)}}var k=[["--op-color-fg","--op-color-surface",4.5],["--op-color-fg","--op-color-bg",4.5],["--op-color-fg-muted","--op-color-surface",4.5],["--op-color-fg-muted","--op-color-surface-2",4.5],["--op-color-primary-fg","--op-color-primary",4.5],["--op-color-primary-text","--op-color-surface",4.5],["--op-color-danger","--op-color-surface",4.5],["--op-color-success","--op-color-surface",4.5],["--op-color-warning","--op-color-surface",4.5],["--op-navmenu-fg","--op-navmenu-bg",4.5],["--op-navmenu-active-fg","--op-navmenu-active-bg",4.5],["--op-grid-header-fg","--op-grid-header-bg",4.5]];function S(r=document.documentElement,o={}){let e=o.resolve?void 0:r.appendChild(document.createElement("span")),s=o.resolve??(p=>(e.style.color="",e.style.color=`var(${p})`,h(getComputedStyle(e).color))),i=[];for(let[p,u,d]of k){let[m,f]=[s(p),s(u)];if(!m||!f)continue;let a=Math.round(g(m,f)*100)/100;a<d&&i.push({pair:`${p} on ${u}`,ratio:a,min:d})}if(e?.remove(),o.warn??v())for(let p of i)console.warn(`Optikos: low contrast ${p.ratio}:1 (needs ${p.min}:1) \u2014 ${p.pair}`);return i}function D(r,o="custom"){let e=[],s=r.seeds&&I(r.seeds),i=m=>Object.entries(m??{}).map(([f,a])=>` ${f}: ${a};`);for(let m in r){let f=r[m];if(!(f==null||m==="seeds"||m==="fonts"))if(typeof f!="object")e.push(` --op-${b(m)}: ${f};`);else for(let a in f)e.push(` --op-${b(m)}${a==="base"?"":`-${b(a)}`}: ${f[a]};`)}let p=`[data-op-theme~='${o}']`,d=`${(r.fonts??[]).map(m=>`@font-face {
1
+ import{a as it,b as ct}from"./chunk-AZUWS2C5.js";import{a as at,b as xt}from"./chunk-SA53QUBF.js";import{a as lt}from"./chunk-EKRWJJ65.js";import{a as pt}from"./chunk-TAFHKT6O.js";import{a as st}from"./chunk-4QAHVGGE.js";import{a as mt}from"./chunk-TBM35UV6.js";import{a as ft}from"./chunk-VBLCO5Q7.js";import{a as et}from"./chunk-KP7O5MVL.js";import{a as rt}from"./chunk-RRGAJ7T4.js";import{a as tt}from"./chunk-GPEA3UWY.js";import"./chunk-K44IJHPF.js";import{a as nt}from"./chunk-6VWSTY32.js";import{a as Ue}from"./chunk-TBOQ6HZZ.js";import{a as Xe}from"./chunk-M2XOIEPY.js";import{a as Ye}from"./chunk-PMIIQMVH.js";import{a as Ze}from"./chunk-VCK5WWMQ.js";import{a as _e}from"./chunk-H2EC3QP4.js";import{a as ot}from"./chunk-72ESP5DB.js";import{a as Qe}from"./chunk-HHOSKOO6.js";import{a as ze}from"./chunk-KNWO4NXX.js";import{a as Je}from"./chunk-J2YP2YD3.js";import{a as He}from"./chunk-GFJRGBQR.js";import{a as Me}from"./chunk-G7NNOLOG.js";import{a as ke,b as De}from"./chunk-TMBGEZSD.js";import{a as Le}from"./chunk-CGSCBLG2.js";import{a as Oe}from"./chunk-ZYHMTPW4.js";import{a as Pe,b as Ne}from"./chunk-BIQX75P2.js";import{a as Ke,b as We,c as qe}from"./chunk-ANR27GED.js";import{a as Ee}from"./chunk-76A4MY7P.js";import{a as Fe}from"./chunk-YAKKOVRI.js";import{a as Ce,b as je}from"./chunk-34KVSA2V.js";import{a as Ae}from"./chunk-HX6TWXTX.js";import{a as Ie}from"./chunk-5H533QXN.js";import{a as Ve}from"./chunk-NSUAVAWO.js";import"./chunk-DY3ZYMXD.js";import{a as he}from"./chunk-EXBGOHG7.js";import{a as ve}from"./chunk-UXL7KG46.js";import{a as be}from"./chunk-ALNUVKDT.js";import{a as Re}from"./chunk-YVEGWCYD.js";import{a as Be,b as $e}from"./chunk-M2ZRKHE4.js";import{a as Se}from"./chunk-74IVU356.js";import{a as Ge,b as we}from"./chunk-OK3SN5PN.js";import{a as Te}from"./chunk-WHWPLMIG.js";import{a as v}from"./chunk-2QMI2RRB.js";import{a as xe}from"./chunk-YF5GWNM7.js";import{a as le}from"./chunk-A5N2AJCE.js";import{a as ue}from"./chunk-7SE4B4TC.js";import{a as ge,b as de}from"./chunk-6S4BKUGD.js";import{a as ye}from"./chunk-4Z4E3BZ2.js";import{a as yo}from"./chunk-7Y2GHQRB.js";import{a as lo,b as uo,c as go}from"./chunk-YLFSCQL3.js";import{a as Ao,b as Io}from"./chunk-X2ASKUFD.js";import"./chunk-X6AULZI4.js";import{a as Xr,b as Yr,c as Zr,d as _r,e as oe,f as re,g as ee,h as te,i as ne,j as pe}from"./chunk-LLHDEUIA.js";import{a as me,b as fe,c as ie,d as ce,e as ae}from"./chunk-5KJ5Y4GY.js";import{a as se}from"./chunk-GX32KEG2.js";import{a as Ur}from"./chunk-WWETTEUZ.js";import{a as Rr}from"./chunk-VADYSXHY.js";import{a as Qr}from"./chunk-J6D4T4WY.js";import{a as $r}from"./chunk-GYGX4VYF.js";import{a as qr}from"./chunk-OQFQDTLL.js";import{a as Sr}from"./chunk-MMPPDQ2E.js";import{a as zr}from"./chunk-XI4IBUE3.js";import{a as ar}from"./chunk-MBRCE5A7.js";import{a as hr}from"./chunk-EO2IXU2W.js";import{a as ur}from"./chunk-4DW5WBZB.js";import{a as Jr}from"./chunk-NAWQBQ57.js";import{a as Nr}from"./chunk-I5KHVFJ4.js";import{a as Cr}from"./chunk-YRCR5ELY.js";import{a as lr}from"./chunk-NYXRPWIB.js";import{a as vr}from"./chunk-BHKI2SU3.js";import{a as Br}from"./chunk-MRDX3RVJ.js";import{a as Tr}from"./chunk-LRUKKIYA.js";import{a as wr}from"./chunk-IB5T27PW.js";import{a as Gr}from"./chunk-JF4WPGJQ.js";import{a as br}from"./chunk-WVJSNE6Q.js";import{a as kr,b as Dr,c as Lr,d as Or,e as Pr}from"./chunk-R52OSARY.js";import{a as xr}from"./chunk-DHUBCB4H.js";import{a as yr}from"./chunk-VOCGAAG7.js";import{a as dr}from"./chunk-TJJL2GSJ.js";import{a as Mr}from"./chunk-5WE2JOBY.js";import{a as Wr}from"./chunk-IE7KRNFJ.js";import{a as Ir}from"./chunk-EQ4IWYLW.js";import{a as Ar}from"./chunk-FTZMF2QX.js";import"./chunk-H2KFAM7L.js";import{a as Er}from"./chunk-TJXH3F7Z.js";import{a as jr}from"./chunk-6IXVTWFH.js";import{a as Hr}from"./chunk-BPCD37A2.js";import{a as gr}from"./chunk-NBR5IRZT.js";import{a as cr}from"./chunk-SQTM4QFP.js";import{a as Kr}from"./chunk-OVEQUN4V.js";import{a as Vr}from"./chunk-VCYCNSJY.js";import{a as Fr}from"./chunk-KVUELLYF.js";import{a as sr,b as mr,c as fr,d as ir}from"./chunk-QT5JRZZJ.js";import{i as Co}from"./chunk-2GKIF7A6.js";import{a as So,b as To}from"./chunk-OWEQT2HN.js";import{a as mo,b as fo,c as io}from"./chunk-U5RENLU4.js";import{a as Ro,b as Bo}from"./chunk-E4VNLYO2.js";import{a as ho,b as bo,c as vo}from"./chunk-676AKAGF.js";import{a as $o,b as Go,c as wo}from"./chunk-VV7CFMPZ.js";import{a as xo}from"./chunk-RI62AESU.js";import{a as no,b as po,c as so}from"./chunk-TIPK3SCJ.js";import{a as _,b as oo,c as ro,e as eo,f as to}from"./chunk-KMBTJ5AG.js";import{a as N,b as K,c as W,d as b,e as q,f as z}from"./chunk-PZSHOSOS.js";import{a as Mo,b as ko}from"./chunk-IODSL7KU.js";import{a as Vo,b as Ho}from"./chunk-XFDNXSU5.js";import{a as jo,b as Eo,c as Fo}from"./chunk-L5SQQFO7.js";import{a as P}from"./chunk-3VDLX7ET.js";import{a as J,b as Q,c as U,d as X,e as Y,f as Z}from"./chunk-S4QD5NID.js";import{a as Xo,b as Yo,c as Zo,d as _o,e as or,f as rr,g as er,h as tr,i as nr,j as pr}from"./chunk-6NCXO5ZP.js";import{a as Po,b as No,c as Ko,d as Wo,e as qo,f as zo,g as Jo,h as Qo,i as Uo}from"./chunk-4AA4FQEM.js";import{a as Do,b as Lo,c as Oo}from"./chunk-2UPUC4RK.js";import{a as co,b as ao}from"./chunk-V5G5JECN.js";import"./chunk-4C666HHU.js";function h(r){let o=r.trim(),e=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(o)?.[1];if(e){let s=e.length===3?[...e].map(l=>l+l).join(""):e;return[0,2,4].map(l=>parseInt(s.slice(l,l+2),16))}let p=/^(rgba?|color)\(\s*(?:srgb\s+)?([^)]+)\)/i.exec(o);if(!p)return;let f=p[2].split(/[\s,/]+/).filter(Boolean).slice(0,3).map(Number);if(!(f.length<3||f.some(isNaN)))return p[1]==="color"?f.map(s=>s*255):f}var F=r=>"#"+r.map(o=>Math.round(Math.min(255,Math.max(0,o))).toString(16).padStart(2,"0")).join(""),t=(r,o,e)=>r.map((p,f)=>p+(o[f]-p)*e),$=r=>(r/=255)<=.04045?r/12.92:((r+.055)/1.055)**2.4,G=r=>.2126*$(r[0])+.7152*$(r[1])+.0722*$(r[2]);function g(r,o){let[e,p]=[G(r),G(o)].sort((f,s)=>s-f);return(e+.05)/(p+.05)}var c=[255,255,255],x=[0,0,0];function u(r,o,e){if(g(r,o)>=e)return r;let p=G(o)>.4?x:c;for(let f=.04;f<=1;f+=.04){let s=t(r,p,f);if(g(s,o)>=e)return s}return p}var w=r=>g(c,r)>=g(x,r)?c:x;var n=r=>F(r);function A(r,o,e){let p=e?t(o,x,.86):c,f=e?t(o,x,.93):t(o,c,.93),s=e?t(o,x,.8):t(o,c,.96),l=u(e?t(o,c,.9):t(o,x,.8),s,9),d=u(e?t(o,c,.6):t(o,x,.35),f,4.5),m=e?t(o,x,.65):t(o,c,.82),i=u(e?t(o,c,.4):t(o,c,.55),p,3),a=e&&g(r,p)<3?u(r,p,3):r,T=u(r,s,4.5),V=w(a),H=t(a,e?c:x,.14),C=t(p,a,e?.22:.12),y=e?t(o,x,.92):t(o,x,.82),M=u(t(o,c,.85),y,7),R=t(y,r,.4),B=u(r,R,3),j=e?t(o,x,.75):t(o,c,.88),E={"--op-color-bg":n(f),"--op-color-surface":n(p),"--op-color-surface-2":n(s),"--op-color-fg":n(l),"--op-color-fg-muted":n(d),"--op-color-border":n(m),"--op-color-border-strong":n(i),"--op-color-hover":n(t(p,o,e?.18:.1)),"--op-color-selected":n(C),"--op-color-primary":n(a),"--op-color-primary-hover":n(H),"--op-color-primary-fg":n(V),"--op-color-primary-soft":n(C),"--op-color-focus":n(T),"--op-navmenu-bg":n(y),"--op-navmenu-fg":n(M),"--op-navmenu-group-fg":n(u(t(o,c,.55),y,4.5)),"--op-navmenu-item-hover-bg":n(t(y,c,.08)),"--op-navmenu-active-bg":n(R),"--op-navmenu-active-fg":n(u(c,R,7)),"--op-navmenu-active-bar":n(B),"--op-navmenu-badge-bg":n(B),"--op-navmenu-badge-fg":n(w(B)),"--op-grid-header-bg":n(j),"--op-grid-header-fg":n(u(l,j,7))};return g(a,s)<4.5&&(E["--op-color-primary-text"]=n(T)),E}function I(r){let o=h(r.primary);if(!o)throw new Error(`Optikos: seeds.primary must be a hex color, got "${r.primary}"`);let e=h(r.neutral??"#64748b")??[100,116,139];return{light:A(o,e,!1),dark:A(o,e,!0)}}var k=[["--op-color-fg","--op-color-surface",4.5],["--op-color-fg","--op-color-bg",4.5],["--op-color-fg-muted","--op-color-surface",4.5],["--op-color-fg-muted","--op-color-surface-2",4.5],["--op-color-primary-fg","--op-color-primary",4.5],["--op-color-primary-text","--op-color-surface",4.5],["--op-color-danger","--op-color-surface",4.5],["--op-color-success","--op-color-surface",4.5],["--op-color-warning","--op-color-surface",4.5],["--op-navmenu-fg","--op-navmenu-bg",4.5],["--op-navmenu-active-fg","--op-navmenu-active-bg",4.5],["--op-grid-header-fg","--op-grid-header-bg",4.5]];function S(r=document.documentElement,o={}){let e=o.resolve?void 0:r.appendChild(document.createElement("span")),p=o.resolve??(s=>(e.style.color="",e.style.color=`var(${s})`,h(getComputedStyle(e).color))),f=[];for(let[s,l,d]of k){let[m,i]=[p(s),p(l)];if(!m||!i)continue;let a=Math.round(g(m,i)*100)/100;a<d&&f.push({pair:`${s} on ${l}`,ratio:a,min:d})}if(e?.remove(),o.warn??v())for(let s of f)console.warn(`Optikos: low contrast ${s.ratio}:1 (needs ${s.min}:1) \u2014 ${s.pair}`);return f}function D(r,o="custom"){let e=[],p=r.seeds&&I(r.seeds),f=m=>Object.entries(m??{}).map(([i,a])=>` ${i}: ${a};`);for(let m in r){let i=r[m];if(!(i==null||m==="seeds"||m==="fonts"))if(typeof i!="object")e.push(` --op-${b(m)}: ${i};`);else for(let a in i)e.push(` --op-${b(m)}${a==="base"?"":`-${b(a)}`}: ${i[a]};`)}let s=`[data-op-theme~='${o}']`,d=`${(r.fonts??[]).map(m=>`@font-face {
2
2
  font-family: '${m.family}';
3
3
  src: url('${m.url}');
4
4
  font-weight: ${m.weight??400};
@@ -6,14 +6,14 @@ import{a as Xe,b as Ye}from"./chunk-EXIADWI7.js";import{a as Ze,b as _e}from"./c
6
6
  font-display: ${m.display??"swap"};
7
7
  }
8
8
  `).join("")}@layer optikos {
9
- ${p} {
10
- ${[...i(s?.light),...e].join(`
9
+ ${s} {
10
+ ${[...f(p?.light),...e].join(`
11
11
  `)}
12
12
  }
13
- ${s?` ${p}[data-op-theme~='dark'] {
14
- ${i(s.dark).join(`
13
+ ${p?` ${s}[data-op-theme~='dark'] {
14
+ ${f(p.dark).join(`
15
15
  `)}
16
16
  }
17
17
  `:""}}
18
- `;return{name:o,css:d,fonts:r.fonts??[],inject(){let m=`op-theme-${o}`,f=document.getElementById(m);f||(f=document.createElement("style"),f.id=m,document.head.appendChild(f)),f.textContent=d},apply(m=document.documentElement){this.inject();let f=new Set((m.getAttribute("data-op-theme")??"").split(/\s+/).filter(Boolean));f.add(o),m.setAttribute("data-op-theme",[...f].join(" ")),v()&&requestAnimationFrame(()=>S(m))}}}function L(r,o=document.documentElement){o.setAttribute("data-op-theme",Array.isArray(r)?r.join(" "):r)}async function O(r){await Promise.all(r.map(async o=>{let e=new FontFace(o.family,`url('${o.url}')`,{weight:String(o.weight??400),style:o.style??"normal",display:o.display??"swap"});document.fonts.add(await e.load())}))}export{se as Avatar,pe as Badge,ze as Breadcrumb,Er as Button,gr as Calendar,Ke as Carousel,le as Chart,xe as Chat,br as Checkbox,Rr as CheckboxGroup,me as Chip,fe as CodeViewer,Sr as ComboBox,Ue as CommandPalette,to as Component,fo as Container,ko as DEFAULTS,ye as DataView,dr as DateField,hr as DateRangeField,yr as DateTimeField,zr as Dial,Yr as Direction,xr as Dropdown,P as Emitter,lo as Field,He as FieldGroup,Me as FieldList,We as FieldSet,he as FilterBuilder,Jr as Form,ke as FormActions,De as FormErrors,Le as FormSection,Hr as Grid,ir as Icon,ce as Image,ae as ImageCanvas,Ve as ImageField,Oe as InputGroup,Nr as Label,Xr as LabelPos,oe as LayoutKind,$r as ListBox,Pr as LookupField,lr as MaskField,Ao as MemoryProxy,Vr as Menu,Kr as MessageBox,jo as Model,Je as NavMenu,ar as NumberField,te as Op,Ir as Pagination,Fr as Panel,Gr as PickerField,Br as RadioGroup,Zr as Region,Io as RestProxy,Or as SearchGrid,Wr as SecretField,wr as Select,re as Selection,_r as Side,qr as Slider,Cr as Spacer,Ie as Spinner,ue as Stat,Ne as StepForm,Pe as Stepper,Fo as Store,Tr as SuggestField,we as Table,Qe as Tabs,cr as TextArea,fr as TextField,ne as ThemeName,ur as TimeField,Se as Timeline,Ze as Toast,ee as ToastType,vr as Toggle,jr as Toolbar,ot as Tooltip,Te as Tree,Ur as Variant,Ae as ViewManager,qe as Viewport,et as Widget,Ar as Window,Y as addMessages,ro as allowed,Uo as arcPoints,rt as attachTooltip,N as attr,Mo as cellContent,de as cellEditing,S as checkContrast,z as clamp,po as create,io as createLayout,Co as date,D as defineTheme,or as dragKnob,ge as editorConfig,Jo as enter,Qo as exit,be as exportGrid,Mr as filterInfo,Ce as flattenTree,$o as focusables,Ho as format,Xe as formatKeys,eo as gate,X as getLocale,co as getPath,so as getType,$e as grouping,K as h,pr as hasIcon,mr as iconEl,Do as isBouncy,b as kebab,_o as knobStretch,ho as layer,nr as layoutId,O as loadFonts,xo as loadState,Ee as localViewStorage,J as locales,vo as lockModal,Lr as lookupStore,Eo as matchFilter,To as measure,Lo as motion,Xo as moveArc,Oo as originFor,Re as persistState,Ro as place,Po as popIn,No as popOut,ve as printGrid,zo as pulse,q as px,no as register,Vo as registerFormat,sr as registerIcons,mo as registerLayout,kr as registerLookup,Dr as resolveLookup,Fe as restViewStorage,er as reveal,wo as roving,Ge as rowEditing,Yo as rubberBand,Zo as rubberScroll,go as saveState,U as setCurrency,Q as setLocale,ao as setPath,oo as setPermissionMode,_ as setPermissionResolver,uo as setStateStorage,L as setTheme,Ye as shortcuts,Wo as stagger,Ko as staggerDelay,qo as staggerDetails,Be as summarize,rr as swap,Z as t,bo as toLayer,_e as toast,ie as tokenize,Bo as track,Go as trapFocus,je as treeGrid,Qr as ui,W as uid,yo as validators,So as virtualize,tr as wipeColor};
18
+ `;return{name:o,css:d,fonts:r.fonts??[],inject(){let m=`op-theme-${o}`,i=document.getElementById(m);i||(i=document.createElement("style"),i.id=m,document.head.appendChild(i)),i.textContent=d},apply(m=document.documentElement){this.inject();let i=new Set((m.getAttribute("data-op-theme")??"").split(/\s+/).filter(Boolean));i.add(o),m.setAttribute("data-op-theme",[...i].join(" ")),v()&&requestAnimationFrame(()=>S(m))}}}function L(r,o=document.documentElement){o.setAttribute("data-op-theme",Array.isArray(r)?r.join(" "):r)}async function O(r){await Promise.all(r.map(async o=>{let e=new FontFace(o.family,`url('${o.url}')`,{weight:String(o.weight??400),style:o.style??"normal",display:o.display??"swap"});document.fonts.add(await e.load())}))}export{ze as Alert,xe as Avatar,le as Badge,pt as Breadcrumb,Fr as Button,dr as Calendar,tt as Carousel,be as Chart,Re as Chat,vr as Checkbox,Br as CheckboxGroup,ue as Chip,de as CodeViewer,Tr as ComboBox,ft as CommandPalette,to as Component,io as Container,Do as DEFAULTS,Te as DataView,yr as DateField,br as DateRangeField,hr as DateTimeField,Jr as Dial,Zr as Direction,gr as Dropdown,P as Emitter,xo as Field,Ue as FieldGroup,Xe as FieldList,se as FieldSet,Fe as FilterBuilder,Qr as Form,Ye as FormActions,Ze as FormErrors,_e as FormSection,Mr as Grid,ir as Icon,ye as Image,he as ImageCanvas,Qe as ImageField,ot as InputGroup,Kr as Label,Yr as LabelPos,re as LayoutKind,Gr as ListBox,Nr as LookupField,lr as MaskField,Ao as MemoryProxy,Hr as Menu,Wr as MessageBox,jo as Model,st as NavMenu,xr as NumberField,ne as Op,Vr as Pagination,Ar as Panel,wr as PickerField,$r as RadioGroup,_r as Region,Io as RestProxy,Pr as SearchGrid,qr as SecretField,Sr as Select,ee as Selection,oe as Side,zr as Slider,jr as Spacer,Je as Spinner,ve as Stat,et as StepForm,rt as Stepper,Fo as Store,Cr as SuggestField,Me as Table,mt as Tabs,ar as TextArea,cr as TextField,pe as ThemeName,ur as TimeField,Le as Timeline,Ge as Toast,te as ToastType,Rr as Toggle,Er as Toolbar,at as Tooltip,Oe as Tree,Xr as Variant,qe as ViewManager,nt as Viewport,lt as Widget,Ir as Window,Y as addMessages,ro as allowed,Xo as arcPoints,xt as attachTooltip,N as attr,me as buildColumns,fe as buildFields,ie as buildFilterFields,ae as buildForm,ce as buildGrid,Mo as cellContent,$e as cellEditing,S as checkContrast,z as clamp,Se as columnTotals,so as create,fo as createLayout,Co as date,D as defineTheme,rr as dragKnob,Be as editorConfig,Qo as enter,Uo as exit,Ee as exportBar,Ce as exportGrid,kr as filterInfo,Pe as flattenTree,$o as focusables,Ho as format,ke as formatDuration,it as formatKeys,eo as gate,X as getLocale,co as getPath,po as getType,Ie as grouping,K as h,mr as hasIcon,fr as iconEl,Lo as isBouncy,b as kebab,or as knobStretch,ho as layer,pr as layoutId,O as loadFonts,uo as loadState,Ke as localViewStorage,J as locales,vo as lockModal,Or as lookupStore,Eo as matchFilter,To as measure,Oo as motion,Yo as moveArc,Po as originFor,Ae as persistState,Ro as place,No as popIn,Ko as popOut,je as printGrid,Jo as pulse,q as px,Ve as quickSearch,no as register,Vo as registerFormat,sr as registerIcons,mo as registerLayout,Dr as registerLookup,Lr as resolveLookup,We as restViewStorage,tr as reveal,wo as roving,He as rowEditing,Zo as rubberBand,_o as rubberScroll,go as saveState,U as setCurrency,Q as setLocale,ao as setPath,oo as setPermissionMode,_ as setPermissionResolver,lo as setStateStorage,L as setTheme,ct as shortcuts,qo as stagger,Wo as staggerDelay,zo as staggerDetails,ko as summarize,er as swap,Z as t,De as timeEntry,bo as toLayer,we as toast,ge as tokenize,Bo as track,Go as trapFocus,Ne as treeGrid,Ur as ui,W as uid,yo as validators,So as virtualize,nr as wipeColor};
19
19
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/themes/color.ts", "../src/themes/seeds.ts", "../src/themes/contrast.ts", "../src/themes/define.ts"],
4
4
  "sourcesContent": ["export type RGB = [number, number, number];\n\nexport function parse(css: string): RGB | undefined {\n const s = css.trim();\n const hex = /^#([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(s)?.[1];\n if (hex) {\n const f = hex.length === 3 ? [...hex].map((c) => c + c).join('') : hex;\n return [0, 2, 4].map((i) => parseInt(f.slice(i, i + 2), 16)) as RGB;\n }\n // what getComputedStyle returns: rgb(1, 2, 3), rgb(1 2 3 / 1) or color(srgb 0.1 0.2 0.3)\n const fn = /^(rgba?|color)\\(\\s*(?:srgb\\s+)?([^)]+)\\)/i.exec(s);\n if (!fn) return undefined;\n const n = fn[2].split(/[\\s,/]+/).filter(Boolean).slice(0, 3).map(Number);\n if (n.length < 3 || n.some(isNaN)) return undefined;\n return (fn[1] === 'color' ? n.map((v) => v * 255) : n) as RGB;\n}\n\nexport const toHex = (c: RGB): string => '#' + c.map((v) => Math.round(Math.min(255, Math.max(0, v))).toString(16).padStart(2, '0')).join('');\n\n/** `t` of `b` over `a` (0 = a, 1 = b), in sRGB. */\nexport const mix = (a: RGB, b: RGB, t: number): RGB => a.map((v, i) => v + (b[i] - v) * t) as RGB;\n\nconst lin = (v: number) => ((v /= 255) <= 0.04045 ? v / 12.92 : ((v + 0.055) / 1.055) ** 2.4);\nexport const luminance = (c: RGB): number => 0.2126 * lin(c[0]) + 0.7152 * lin(c[1]) + 0.0722 * lin(c[2]);\n\n/** WCAG contrast ratio, 1 to 21. */\nexport function contrast(a: RGB, b: RGB): number {\n const [hi, lo] = [luminance(a), luminance(b)].sort((x, y) => y - x);\n return (hi + 0.05) / (lo + 0.05);\n}\n\nexport const WHITE: RGB = [255, 255, 255];\nexport const BLACK: RGB = [0, 0, 0];\n\n/** Moves `c` toward black or white (whichever reaches it) until it has `min` contrast against `bg`. */\nexport function ensure(c: RGB, bg: RGB, min: number): RGB {\n if (contrast(c, bg) >= min) return c;\n const toward = luminance(bg) > 0.4 ? BLACK : WHITE;\n for (let t = 0.04; t <= 1; t += 0.04) {\n const m = mix(c, toward, t);\n if (contrast(m, bg) >= min) return m;\n }\n return toward;\n}\n\n/** Black or white, whichever reads better on `bg`. */\nexport const readableOn = (bg: RGB): RGB => (contrast(WHITE, bg) >= contrast(BLACK, bg) ? WHITE : BLACK);\n", "import { parse, toHex, mix, ensure, readableOn, contrast, WHITE, BLACK, type RGB } from './color';\n\nexport interface Seeds {\n /** The brand color. Used as is for fills; text uses a shade of it that keeps 4.5:1. */\n primary: string;\n /** Tints the grays (backgrounds, borders, text). Default: a cool gray. */\n neutral?: string;\n}\n\nconst hex = (c: RGB) => toHex(c);\n\nfunction one(seed: RGB, neutral: RGB, dark: boolean): Record<string, string> {\n const surface = dark ? mix(neutral, BLACK, 0.86) : WHITE;\n const bg = dark ? mix(neutral, BLACK, 0.93) : mix(neutral, WHITE, 0.93);\n const surface2 = dark ? mix(neutral, BLACK, 0.8) : mix(neutral, WHITE, 0.96);\n const fg = ensure(dark ? mix(neutral, WHITE, 0.9) : mix(neutral, BLACK, 0.8), surface2, 9);\n const muted = ensure(dark ? mix(neutral, WHITE, 0.6) : mix(neutral, BLACK, 0.35), bg, 4.5);\n const border = dark ? mix(neutral, BLACK, 0.65) : mix(neutral, WHITE, 0.82);\n const strong = ensure(dark ? mix(neutral, WHITE, 0.4) : mix(neutral, WHITE, 0.55), surface, 3);\n const fill = dark && contrast(seed, surface) < 3 ? ensure(seed, surface, 3) : seed;\n const text = ensure(seed, surface2, 4.5);\n const on = readableOn(fill);\n const hover = mix(fill, dark ? WHITE : BLACK, 0.14);\n const soft = mix(surface, fill, dark ? 0.22 : 0.12);\n const nav = dark ? mix(neutral, BLACK, 0.92) : mix(neutral, BLACK, 0.82);\n const navFg = ensure(mix(neutral, WHITE, 0.85), nav, 7);\n const navActive = mix(nav, seed, 0.4);\n const bar = ensure(seed, navActive, 3);\n const head = dark ? mix(neutral, BLACK, 0.75) : mix(neutral, WHITE, 0.88);\n const out: Record<string, string> = {\n '--op-color-bg': hex(bg),\n '--op-color-surface': hex(surface),\n '--op-color-surface-2': hex(surface2),\n '--op-color-fg': hex(fg),\n '--op-color-fg-muted': hex(muted),\n '--op-color-border': hex(border),\n '--op-color-border-strong': hex(strong),\n '--op-color-hover': hex(mix(surface, neutral, dark ? 0.18 : 0.1)),\n '--op-color-selected': hex(soft),\n '--op-color-primary': hex(fill),\n '--op-color-primary-hover': hex(hover),\n '--op-color-primary-fg': hex(on),\n '--op-color-primary-soft': hex(soft),\n '--op-color-focus': hex(text),\n '--op-navmenu-bg': hex(nav),\n '--op-navmenu-fg': hex(navFg),\n '--op-navmenu-group-fg': hex(ensure(mix(neutral, WHITE, 0.55), nav, 4.5)),\n '--op-navmenu-item-hover-bg': hex(mix(nav, WHITE, 0.08)),\n '--op-navmenu-active-bg': hex(navActive),\n '--op-navmenu-active-fg': hex(ensure(WHITE, navActive, 7)),\n '--op-navmenu-active-bar': hex(bar),\n '--op-navmenu-badge-bg': hex(bar),\n '--op-navmenu-badge-fg': hex(readableOn(bar)),\n '--op-grid-header-bg': hex(head),\n '--op-grid-header-fg': hex(ensure(fg, head, 7)),\n };\n // only a brand whose color fails as text needs a separate text token\n if (contrast(fill, surface2) < 4.5) out['--op-color-primary-text'] = hex(text);\n return out;\n}\n\n/** Light and dark token sets from a few seeds, with the text pairs kept at 4.5:1 or better. */\nexport function fromSeeds(seeds: Seeds): { light: Record<string, string>; dark: Record<string, string> } {\n const primary = parse(seeds.primary);\n if (!primary) throw new Error(`Optikos: seeds.primary must be a hex color, got \"${seeds.primary}\"`);\n const neutral = parse(seeds.neutral ?? '#64748b') ?? [100, 116, 139];\n return { light: one(primary, neutral, false), dark: one(primary, neutral, true) };\n}\n", "import { isDev } from '../core/dev';\nimport { parse, contrast, type RGB } from './color';\n\nexport interface ContrastIssue {\n /** The pair, as the tokens that make it (`--op-color-fg on --op-color-surface`). */\n pair: string;\n ratio: number;\n min: number;\n}\n\n// [text token, background token, minimum]: the pairs a theme most often gets wrong\nconst PAIRS: Array<[string, string, number]> = [\n ['--op-color-fg', '--op-color-surface', 4.5],\n ['--op-color-fg', '--op-color-bg', 4.5],\n ['--op-color-fg-muted', '--op-color-surface', 4.5],\n ['--op-color-fg-muted', '--op-color-surface-2', 4.5],\n ['--op-color-primary-fg', '--op-color-primary', 4.5],\n ['--op-color-primary-text', '--op-color-surface', 4.5],\n ['--op-color-danger', '--op-color-surface', 4.5],\n ['--op-color-success', '--op-color-surface', 4.5],\n ['--op-color-warning', '--op-color-surface', 4.5],\n ['--op-navmenu-fg', '--op-navmenu-bg', 4.5],\n ['--op-navmenu-active-fg', '--op-navmenu-active-bg', 4.5],\n ['--op-grid-header-fg', '--op-grid-header-bg', 4.5],\n];\n\n/**\n * Checks the theme in effect on `el` (default `<html>`) for text pairs under 4.5:1 and returns them.\n * A pair whose token is not set is skipped. `warn` (default: in dev) also prints each to the console.\n */\nexport function checkContrast(el: HTMLElement = document.documentElement, o: { warn?: boolean; resolve?: (token: string) => RGB | undefined } = {}): ContrastIssue[] {\n // a probe element lets the browser resolve `var()` chains and `color-mix()` to a plain color\n const probe = o.resolve ? undefined : el.appendChild(document.createElement('span'));\n const resolve =\n o.resolve ??\n ((token: string) => {\n probe!.style.color = '';\n probe!.style.color = `var(${token})`;\n return parse(getComputedStyle(probe!).color);\n });\n const issues: ContrastIssue[] = [];\n for (const [fg, bg, min] of PAIRS) {\n const [a, b] = [resolve(fg), resolve(bg)];\n if (!a || !b) continue;\n const ratio = Math.round(contrast(a, b) * 100) / 100;\n if (ratio < min) issues.push({ pair: `${fg} on ${bg}`, ratio, min });\n }\n probe?.remove();\n if (o.warn ?? isDev()) for (const i of issues) console.warn(`Optikos: low contrast ${i.ratio}:1 (needs ${i.min}:1) \u2014 ${i.pair}`);\n return issues;\n}\n", "import { kebab } from '../core/dom';\nimport { isDev } from '../core/dev';\nimport { fromSeeds, type Seeds } from './seeds';\nimport { checkContrast } from './contrast';\n\ntype Values = Record<string, string | number | undefined>;\ntype ColorToken = 'bg' | 'surface' | 'surface-2' | 'fg' | 'fg-muted' | 'border' | 'border-strong' | 'hover' | 'selected' | 'primary' | 'primary-hover' | 'primary-fg' | 'primary-soft' | 'danger' | 'danger-hover' | 'danger-fg' | 'danger-soft' | 'success' | 'success-soft' | 'warning' | 'warning-soft' | 'info' | 'info-soft' | 'focus' | 'overlay';\n\nexport interface FontSpec {\n family: string;\n /** URL of the file (woff2 is enough for every current browser). */\n url: string;\n /** A weight or a range (`'400 700'` for a variable font). Default `400`. */\n weight?: string | number;\n style?: 'normal' | 'italic';\n /** Default `swap`. */\n display?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional';\n}\n\nexport interface ThemeDefinition {\n /**\n * A few brand colors in, a whole theme out: light under `name`, and dark under `name` + `dark` (`data-op-theme=\"name dark\"`).\n * Text pairs are kept at 4.5:1; navmenu and grid header colors come with it. Tokens you also give win.\n */\n seeds?: Seeds;\n /** `@font-face` rules, so the font ships with the theme (a white-label tenant brings its own). Set the family with `font: { family }`. */\n fonts?: FontSpec[];\n /** Semantic colors: `{ primary: '#06f' }` \u2192 `--op-color-primary`. camelCase keys are kebab-cased. */\n color?: Partial<Record<ColorToken | string, string>>;\n font?: Values;\n space?: Values;\n /** `radius: '0.5rem'` sets `--op-radius`; `radius: { sm, lg, pill }` sets `--op-radius-sm`...; `radius: { base: '0.5rem', sm: '0.25rem' }` sets both. */\n radius?: Values | string | number;\n shadow?: Values;\n control?: Values;\n /** Any other key is a component scope: `{ button: { radius: 0 } }` \u2192 `--op-button-radius`. A plain value, or the key `base`, sets the group's own token (`{ radius: 0 }` or `{ radius: { base: 0, sm: 2 } }` \u2192 `--op-radius`). */\n [group: string]: Values | string | number | Seeds | FontSpec[] | undefined;\n}\n\nexport interface Theme {\n name: string;\n /** CSS text, scoped to `[data-op-theme~=\"name\"]`, inside `@layer optikos`. */\n css: string;\n /** The fonts the theme declared, for `loadFonts`. */\n fonts: FontSpec[];\n /** Injects the CSS once without activating it (e.g. to offer it in a theme picker). */\n inject(): void;\n /** Injects the CSS and activates the theme on `el` (default: `<html>`), keeping other themes (`\"dark custom\"`). */\n apply(el?: HTMLElement): void;\n}\n\n/**\n * Typed, proprietary theme format. Produces the same custom properties a hand-written CSS theme would.\n * Numbers are emitted unitless; write units as strings (`'4px'`).\n */\nexport function defineTheme(def: ThemeDefinition, name = 'custom'): Theme {\n const lines: string[] = [];\n const seeded = def.seeds && fromSeeds(def.seeds);\n const own = (m?: Record<string, string>) => Object.entries(m ?? {}).map(([k, v]) => ` ${k}: ${v};`);\n for (const group in def) {\n const values = def[group] as Values | string | number | undefined;\n if (values == null || group === 'seeds' || group === 'fonts') continue;\n if (typeof values !== 'object') lines.push(` --op-${kebab(group)}: ${values};`);\n else for (const key in values) lines.push(` --op-${kebab(group)}${key === 'base' ? '' : `-${kebab(key)}`}: ${values[key]};`);\n }\n const scope = `[data-op-theme~='${name}']`;\n const faces = (def.fonts ?? []).map((f) => `@font-face {\\n font-family: '${f.family}';\\n src: url('${f.url}');\\n font-weight: ${f.weight ?? 400};\\n font-style: ${f.style ?? 'normal'};\\n font-display: ${f.display ?? 'swap'};\\n}\\n`);\n // seeds first, so what the definition sets itself wins; the dark set has the higher specificity of two attributes\n const css = `${faces.join('')}@layer optikos {\\n ${scope} {\\n${[...own(seeded?.light), ...lines].join('\\n')}\\n }\\n${seeded ? ` ${scope}[data-op-theme~='dark'] {\\n${own(seeded.dark).join('\\n')}\\n }\\n` : ''}}\\n`;\n return {\n name,\n css,\n fonts: def.fonts ?? [],\n inject() {\n const id = `op-theme-${name}`;\n let style = document.getElementById(id);\n if (!style) {\n style = document.createElement('style');\n style.id = id;\n document.head.appendChild(style);\n }\n style.textContent = css;\n },\n apply(el = document.documentElement) {\n this.inject();\n const names = new Set((el.getAttribute('data-op-theme') ?? '').split(/\\s+/).filter(Boolean));\n names.add(name);\n el.setAttribute('data-op-theme', [...names].join(' '));\n // in dev, text pairs under 4.5:1 are printed once the styles took effect\n if (isDev()) requestAnimationFrame(() => checkContrast(el));\n },\n };\n}\n\n/** Activates themes on an element (default `<html>`): `setTheme('dark compact')` or `setTheme(['dark', 'custom'])`. */\nexport function setTheme(names: string | string[], el: HTMLElement = document.documentElement): void {\n el.setAttribute('data-op-theme', Array.isArray(names) ? names.join(' ') : names);\n}\n\n/** Loads the fonts of a theme now (and resolves when they are ready), so the first paint does not flash the fallback. */\nexport async function loadFonts(fonts: FontSpec[]): Promise<void> {\n await Promise.all(\n fonts.map(async (f) => {\n const face = new FontFace(f.family, `url('${f.url}')`, { weight: String(f.weight ?? 400), style: f.style ?? 'normal', display: f.display ?? 'swap' });\n document.fonts.add(await face.load());\n }),\n );\n}\n"],
5
- "mappings": "+xJAEO,SAASA,EAAMC,EAA8B,CAClD,IAAMC,EAAID,EAAI,KAAK,EACbE,EAAM,gCAAgC,KAAKD,CAAC,IAAI,CAAC,EACvD,GAAIC,EAAK,CACP,IAAMC,EAAID,EAAI,SAAW,EAAI,CAAC,GAAGA,CAAG,EAAE,IAAKE,GAAMA,EAAIA,CAAC,EAAE,KAAK,EAAE,EAAIF,EACnE,MAAO,CAAC,EAAG,EAAG,CAAC,EAAE,IAAKG,GAAM,SAASF,EAAE,MAAME,EAAGA,EAAI,CAAC,EAAG,EAAE,CAAC,CAC7D,CAEA,IAAMC,EAAK,4CAA4C,KAAKL,CAAC,EAC7D,GAAI,CAACK,EAAI,OACT,IAAMC,EAAID,EAAG,CAAC,EAAE,MAAM,SAAS,EAAE,OAAO,OAAO,EAAE,MAAM,EAAG,CAAC,EAAE,IAAI,MAAM,EACvE,GAAI,EAAAC,EAAE,OAAS,GAAKA,EAAE,KAAK,KAAK,GAChC,OAAQD,EAAG,CAAC,IAAM,QAAUC,EAAE,IAAKC,GAAMA,EAAI,GAAG,EAAID,CACtD,CAEO,IAAME,EAASL,GAAmB,IAAMA,EAAE,IAAKI,GAAM,KAAK,MAAM,KAAK,IAAI,IAAK,KAAK,IAAI,EAAGA,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,CAAC,EAAE,KAAK,EAAE,EAG/HE,EAAM,CAACC,EAAQC,EAAQC,IAAmBF,EAAE,IAAI,CAACH,EAAG,IAAMA,GAAKI,EAAE,CAAC,EAAIJ,GAAKK,CAAC,EAEnFC,EAAON,IAAgBA,GAAK,MAAQ,OAAUA,EAAI,QAAUA,EAAI,MAAS,QAAU,IAC5EO,EAAaX,GAAmB,MAASU,EAAIV,EAAE,CAAC,CAAC,EAAI,MAASU,EAAIV,EAAE,CAAC,CAAC,EAAI,MAASU,EAAIV,EAAE,CAAC,CAAC,EAGjG,SAASY,EAASL,EAAQC,EAAgB,CAC/C,GAAM,CAACK,EAAIC,CAAE,EAAI,CAACH,EAAUJ,CAAC,EAAGI,EAAUH,CAAC,CAAC,EAAE,KAAK,CAACO,EAAGC,IAAMA,EAAID,CAAC,EAClE,OAAQF,EAAK,MAASC,EAAK,IAC7B,CAEO,IAAMG,EAAa,CAAC,IAAK,IAAK,GAAG,EAC3BC,EAAa,CAAC,EAAG,EAAG,CAAC,EAG3B,SAASC,EAAOnB,EAAQoB,EAASC,EAAkB,CACxD,GAAIT,EAASZ,EAAGoB,CAAE,GAAKC,EAAK,OAAOrB,EACnC,IAAMsB,EAASX,EAAUS,CAAE,EAAI,GAAMF,EAAQD,EAC7C,QAASR,EAAI,IAAMA,GAAK,EAAGA,GAAK,IAAM,CACpC,IAAMc,EAAIjB,EAAIN,EAAGsB,EAAQb,CAAC,EAC1B,GAAIG,EAASW,EAAGH,CAAE,GAAKC,EAAK,OAAOE,CACrC,CACA,OAAOD,CACT,CAGO,IAAME,EAAcJ,GAAkBR,EAASK,EAAOG,CAAE,GAAKR,EAASM,EAAOE,CAAE,EAAIH,EAAQC,ECrClG,IAAMO,EAAOC,GAAWC,EAAMD,CAAC,EAE/B,SAASE,EAAIC,EAAWC,EAAcC,EAAuC,CAC3E,IAAMC,EAAUD,EAAOE,EAAIH,EAASI,EAAO,GAAI,EAAIC,EAC7CC,EAAKL,EAAOE,EAAIH,EAASI,EAAO,GAAI,EAAID,EAAIH,EAASK,EAAO,GAAI,EAChEE,EAAWN,EAAOE,EAAIH,EAASI,EAAO,EAAG,EAAID,EAAIH,EAASK,EAAO,GAAI,EACrEG,EAAKC,EAAOR,EAAOE,EAAIH,EAASK,EAAO,EAAG,EAAIF,EAAIH,EAASI,EAAO,EAAG,EAAGG,EAAU,CAAC,EACnFG,EAAQD,EAAOR,EAAOE,EAAIH,EAASK,EAAO,EAAG,EAAIF,EAAIH,EAASI,EAAO,GAAI,EAAGE,EAAI,GAAG,EACnFK,EAASV,EAAOE,EAAIH,EAASI,EAAO,GAAI,EAAID,EAAIH,EAASK,EAAO,GAAI,EACpEO,EAASH,EAAOR,EAAOE,EAAIH,EAASK,EAAO,EAAG,EAAIF,EAAIH,EAASK,EAAO,GAAI,EAAGH,EAAS,CAAC,EACvFW,EAAOZ,GAAQa,EAASf,EAAMG,CAAO,EAAI,EAAIO,EAAOV,EAAMG,EAAS,CAAC,EAAIH,EACxEgB,EAAON,EAAOV,EAAMQ,EAAU,GAAG,EACjCS,EAAKC,EAAWJ,CAAI,EACpBK,EAAQf,EAAIU,EAAMZ,EAAOI,EAAQD,EAAO,GAAI,EAC5Ce,EAAOhB,EAAID,EAASW,EAAMZ,EAAO,IAAO,GAAI,EAC5CmB,EAAMnB,EAAOE,EAAIH,EAASI,EAAO,GAAI,EAAID,EAAIH,EAASI,EAAO,GAAI,EACjEiB,EAAQZ,EAAON,EAAIH,EAASK,EAAO,GAAI,EAAGe,EAAK,CAAC,EAChDE,EAAYnB,EAAIiB,EAAKrB,EAAM,EAAG,EAC9BwB,EAAMd,EAAOV,EAAMuB,EAAW,CAAC,EAC/BE,EAAOvB,EAAOE,EAAIH,EAASI,EAAO,GAAI,EAAID,EAAIH,EAASK,EAAO,GAAI,EAClEoB,EAA8B,CAClC,gBAAiB9B,EAAIW,CAAE,EACvB,qBAAsBX,EAAIO,CAAO,EACjC,uBAAwBP,EAAIY,CAAQ,EACpC,gBAAiBZ,EAAIa,CAAE,EACvB,sBAAuBb,EAAIe,CAAK,EAChC,oBAAqBf,EAAIgB,CAAM,EAC/B,2BAA4BhB,EAAIiB,CAAM,EACtC,mBAAoBjB,EAAIQ,EAAID,EAASF,EAASC,EAAO,IAAO,EAAG,CAAC,EAChE,sBAAuBN,EAAIwB,CAAI,EAC/B,qBAAsBxB,EAAIkB,CAAI,EAC9B,2BAA4BlB,EAAIuB,CAAK,EACrC,wBAAyBvB,EAAIqB,CAAE,EAC/B,0BAA2BrB,EAAIwB,CAAI,EACnC,mBAAoBxB,EAAIoB,CAAI,EAC5B,kBAAmBpB,EAAIyB,CAAG,EAC1B,kBAAmBzB,EAAI0B,CAAK,EAC5B,wBAAyB1B,EAAIc,EAAON,EAAIH,EAASK,EAAO,GAAI,EAAGe,EAAK,GAAG,CAAC,EACxE,6BAA8BzB,EAAIQ,EAAIiB,EAAKf,EAAO,GAAI,CAAC,EACvD,yBAA0BV,EAAI2B,CAAS,EACvC,yBAA0B3B,EAAIc,EAAOJ,EAAOiB,EAAW,CAAC,CAAC,EACzD,0BAA2B3B,EAAI4B,CAAG,EAClC,wBAAyB5B,EAAI4B,CAAG,EAChC,wBAAyB5B,EAAIsB,EAAWM,CAAG,CAAC,EAC5C,sBAAuB5B,EAAI6B,CAAI,EAC/B,sBAAuB7B,EAAIc,EAAOD,EAAIgB,EAAM,CAAC,CAAC,CAChD,EAEA,OAAIV,EAASD,EAAMN,CAAQ,EAAI,MAAKkB,EAAI,yBAAyB,EAAI9B,EAAIoB,CAAI,GACtEU,CACT,CAGO,SAASC,EAAUC,EAA+E,CACvG,IAAMC,EAAUC,EAAMF,EAAM,OAAO,EACnC,GAAI,CAACC,EAAS,MAAM,IAAI,MAAM,oDAAoDD,EAAM,OAAO,GAAG,EAClG,IAAM3B,EAAU6B,EAAMF,EAAM,SAAW,SAAS,GAAK,CAAC,IAAK,IAAK,GAAG,EACnE,MAAO,CAAE,MAAO7B,EAAI8B,EAAS5B,EAAS,EAAK,EAAG,KAAMF,EAAI8B,EAAS5B,EAAS,EAAI,CAAE,CAClF,CCxDA,IAAM8B,EAAyC,CAC7C,CAAC,gBAAiB,qBAAsB,GAAG,EAC3C,CAAC,gBAAiB,gBAAiB,GAAG,EACtC,CAAC,sBAAuB,qBAAsB,GAAG,EACjD,CAAC,sBAAuB,uBAAwB,GAAG,EACnD,CAAC,wBAAyB,qBAAsB,GAAG,EACnD,CAAC,0BAA2B,qBAAsB,GAAG,EACrD,CAAC,oBAAqB,qBAAsB,GAAG,EAC/C,CAAC,qBAAsB,qBAAsB,GAAG,EAChD,CAAC,qBAAsB,qBAAsB,GAAG,EAChD,CAAC,kBAAmB,kBAAmB,GAAG,EAC1C,CAAC,yBAA0B,yBAA0B,GAAG,EACxD,CAAC,sBAAuB,sBAAuB,GAAG,CACpD,EAMO,SAASC,EAAcC,EAAkB,SAAS,gBAAiB,EAAsE,CAAC,EAAoB,CAEnK,IAAMC,EAAQ,EAAE,QAAU,OAAYD,EAAG,YAAY,SAAS,cAAc,MAAM,CAAC,EAC7EE,EACJ,EAAE,UACAC,IACAF,EAAO,MAAM,MAAQ,GACrBA,EAAO,MAAM,MAAQ,OAAOE,CAAK,IAC1BC,EAAM,iBAAiBH,CAAM,EAAE,KAAK,IAEzCI,EAA0B,CAAC,EACjC,OAAW,CAACC,EAAIC,EAAIC,CAAG,IAAKV,EAAO,CACjC,GAAM,CAACW,EAAGC,CAAC,EAAI,CAACR,EAAQI,CAAE,EAAGJ,EAAQK,CAAE,CAAC,EACxC,GAAI,CAACE,GAAK,CAACC,EAAG,SACd,IAAMC,EAAQ,KAAK,MAAMC,EAASH,EAAGC,CAAC,EAAI,GAAG,EAAI,IAC7CC,EAAQH,GAAKH,EAAO,KAAK,CAAE,KAAM,GAAGC,CAAE,OAAOC,CAAE,GAAI,MAAAI,EAAO,IAAAH,CAAI,CAAC,CACrE,CAEA,GADAP,GAAO,OAAO,EACV,EAAE,MAAQY,EAAM,EAAG,QAAWC,KAAKT,EAAQ,QAAQ,KAAK,yBAAyBS,EAAE,KAAK,aAAaA,EAAE,GAAG,cAASA,EAAE,IAAI,EAAE,EAC/H,OAAOT,CACT,CCKO,SAASU,EAAYC,EAAsBC,EAAO,SAAiB,CACxE,IAAMC,EAAkB,CAAC,EACnBC,EAASH,EAAI,OAASI,EAAUJ,EAAI,KAAK,EACzCK,EAAO,GAA+B,OAAO,QAAQ,GAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAACC,EAAGC,CAAC,IAAM,OAAOD,CAAC,KAAKC,CAAC,GAAG,EACrG,QAAWC,KAASR,EAAK,CACvB,IAAMS,EAAST,EAAIQ,CAAK,EACxB,GAAI,EAAAC,GAAU,MAAQD,IAAU,SAAWA,IAAU,SACrD,GAAI,OAAOC,GAAW,SAAUP,EAAM,KAAK,YAAYQ,EAAMF,CAAK,CAAC,KAAKC,CAAM,GAAG,MAC5E,SAAWE,KAAOF,EAAQP,EAAM,KAAK,YAAYQ,EAAMF,CAAK,CAAC,GAAGG,IAAQ,OAAS,GAAK,IAAID,EAAMC,CAAG,CAAC,EAAE,KAAKF,EAAOE,CAAG,CAAC,GAAG,CAChI,CACA,IAAMC,EAAQ,oBAAoBX,CAAI,KAGhCY,EAAM,IAFGb,EAAI,OAAS,CAAC,GAAG,IAAKc,GAAM;AAAA,kBAAiCA,EAAE,MAAM;AAAA,cAAmBA,EAAE,GAAG;AAAA,iBAAuBA,EAAE,QAAU,GAAG;AAAA,gBAAoBA,EAAE,OAAS,QAAQ;AAAA,kBAAsBA,EAAE,SAAW,MAAM;AAAA;AAAA,CAAQ,EAErN,KAAK,EAAE,CAAC;AAAA,IAAuBF,CAAK;AAAA,EAAO,CAAC,GAAGP,EAAIF,GAAQ,KAAK,EAAG,GAAGD,CAAK,EAAE,KAAK;AAAA,CAAI,CAAC;AAAA;AAAA,EAAUC,EAAS,KAAKS,CAAK;AAAA,EAA8BP,EAAIF,EAAO,IAAI,EAAE,KAAK;AAAA,CAAI,CAAC;AAAA;AAAA,EAAY,EAAE;AAAA,EAChN,MAAO,CACL,KAAAF,EACA,IAAAY,EACA,MAAOb,EAAI,OAAS,CAAC,EACrB,QAAS,CACP,IAAMe,EAAK,YAAYd,CAAI,GACvBe,EAAQ,SAAS,eAAeD,CAAE,EACjCC,IACHA,EAAQ,SAAS,cAAc,OAAO,EACtCA,EAAM,GAAKD,EACX,SAAS,KAAK,YAAYC,CAAK,GAEjCA,EAAM,YAAcH,CACtB,EACA,MAAMI,EAAK,SAAS,gBAAiB,CACnC,KAAK,OAAO,EACZ,IAAMC,EAAQ,IAAI,KAAKD,EAAG,aAAa,eAAe,GAAK,IAAI,MAAM,KAAK,EAAE,OAAO,OAAO,CAAC,EAC3FC,EAAM,IAAIjB,CAAI,EACdgB,EAAG,aAAa,gBAAiB,CAAC,GAAGC,CAAK,EAAE,KAAK,GAAG,CAAC,EAEjDC,EAAM,GAAG,sBAAsB,IAAMC,EAAcH,CAAE,CAAC,CAC5D,CACF,CACF,CAGO,SAASI,EAASH,EAA0BD,EAAkB,SAAS,gBAAuB,CACnGA,EAAG,aAAa,gBAAiB,MAAM,QAAQC,CAAK,EAAIA,EAAM,KAAK,GAAG,EAAIA,CAAK,CACjF,CAGA,eAAsBI,EAAUC,EAAkC,CAChE,MAAM,QAAQ,IACZA,EAAM,IAAI,MAAOT,GAAM,CACrB,IAAMU,EAAO,IAAI,SAASV,EAAE,OAAQ,QAAQA,EAAE,GAAG,KAAM,CAAE,OAAQ,OAAOA,EAAE,QAAU,GAAG,EAAG,MAAOA,EAAE,OAAS,SAAU,QAASA,EAAE,SAAW,MAAO,CAAC,EACpJ,SAAS,MAAM,IAAI,MAAMU,EAAK,KAAK,CAAC,CACtC,CAAC,CACH,CACF",
5
+ "mappings": "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",
6
6
  "names": ["parse", "css", "s", "hex", "f", "c", "i", "fn", "n", "v", "toHex", "mix", "a", "b", "t", "lin", "luminance", "contrast", "hi", "lo", "x", "y", "WHITE", "BLACK", "ensure", "bg", "min", "toward", "m", "readableOn", "hex", "c", "toHex", "one", "seed", "neutral", "dark", "surface", "mix", "BLACK", "WHITE", "bg", "surface2", "fg", "ensure", "muted", "border", "strong", "fill", "contrast", "text", "on", "readableOn", "hover", "soft", "nav", "navFg", "navActive", "bar", "head", "out", "fromSeeds", "seeds", "primary", "parse", "PAIRS", "checkContrast", "el", "probe", "resolve", "token", "parse", "issues", "fg", "bg", "min", "a", "b", "ratio", "contrast", "isDev", "i", "defineTheme", "def", "name", "lines", "seeded", "fromSeeds", "own", "k", "v", "group", "values", "kebab", "key", "scope", "css", "f", "id", "style", "el", "names", "isDev", "checkContrast", "setTheme", "loadFonts", "fonts", "face"]
7
7
  }