optikos 0.3.0 → 0.5.0

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 (466) hide show
  1. package/CHANGELOG.md +58 -1
  2. package/dist/bind.js +1 -1
  3. package/dist/bind.js.map +4 -4
  4. package/dist/build.js +2 -0
  5. package/dist/build.js.map +7 -0
  6. package/dist/chunk-2CVMT3IW.js +3 -0
  7. package/dist/chunk-2CVMT3IW.js.map +7 -0
  8. package/dist/{chunk-5JEXM5S7.js → chunk-2GKIF7A6.js} +2 -2
  9. package/dist/{chunk-5BC72727.js → chunk-2I4Y7I7C.js} +2 -2
  10. package/dist/{chunk-Z2Z52GFT.js → chunk-2I7HDIOU.js} +2 -2
  11. package/dist/chunk-2QMI2RRB.js +2 -0
  12. package/dist/chunk-2QMI2RRB.js.map +7 -0
  13. package/dist/chunk-34KVSA2V.js +3 -0
  14. package/dist/chunk-34KVSA2V.js.map +7 -0
  15. package/dist/chunk-37PYJAA2.js +2 -0
  16. package/dist/{chunk-UXXJOU5J.js.map → chunk-37PYJAA2.js.map} +1 -1
  17. package/dist/{chunk-ZPPELYNJ.js → chunk-3BG75P7T.js} +2 -2
  18. package/dist/{chunk-GNU4VOOE.js → chunk-3F4MN2BU.js} +2 -2
  19. package/dist/{chunk-5DJTP53N.js → chunk-3FK52VQX.js} +2 -2
  20. package/dist/chunk-3OA3P37P.js +2 -0
  21. package/dist/chunk-3OA3P37P.js.map +7 -0
  22. package/dist/chunk-3TCITFUU.js +2 -0
  23. package/dist/chunk-3TCITFUU.js.map +7 -0
  24. package/dist/chunk-3VDLX7ET.js +2 -0
  25. package/dist/chunk-3VDLX7ET.js.map +7 -0
  26. package/dist/{chunk-REW4LR46.js → chunk-4OB2IM5L.js} +2 -2
  27. package/dist/chunk-5G5PHOZJ.js +2 -0
  28. package/dist/chunk-5G5PHOZJ.js.map +7 -0
  29. package/dist/{chunk-EDUMAMK4.js → chunk-5GCTM37D.js} +2 -2
  30. package/dist/chunk-5PYJ6FJK.js +2 -0
  31. package/dist/chunk-5PYJ6FJK.js.map +7 -0
  32. package/dist/chunk-632LUU52.js +2 -0
  33. package/dist/chunk-632LUU52.js.map +7 -0
  34. package/dist/{chunk-JOFQJGZK.js → chunk-6BOM5KZR.js} +2 -2
  35. package/dist/{chunk-Z2JBUHKA.js → chunk-6NP4AEV4.js} +2 -2
  36. package/dist/chunk-6PPRYSLN.js +2 -0
  37. package/dist/chunk-6PPRYSLN.js.map +7 -0
  38. package/dist/{chunk-NXSTUFS7.js → chunk-6TZJO2G2.js} +2 -2
  39. package/dist/chunk-7Y2GHQRB.js +2 -0
  40. package/dist/chunk-A36JFIA3.js +2 -0
  41. package/dist/chunk-A36JFIA3.js.map +7 -0
  42. package/dist/{chunk-G2KUK6AT.js → chunk-ADHKL2GM.js} +2 -2
  43. package/dist/{chunk-JI265XFO.js → chunk-AJN66F32.js} +2 -2
  44. package/dist/{chunk-YHEMA56R.js → chunk-AQ3RTHG5.js} +2 -2
  45. package/dist/{chunk-ZVK4L5GK.js → chunk-BCVOUMJJ.js} +2 -2
  46. package/dist/{chunk-HOF4JGMQ.js → chunk-BIGL3ZVD.js} +2 -2
  47. package/dist/{chunk-ZWNQREWS.js → chunk-BQEFLPDA.js} +2 -2
  48. package/dist/{chunk-ZWNQREWS.js.map → chunk-BQEFLPDA.js.map} +2 -2
  49. package/dist/{chunk-HXDTGP2K.js → chunk-BRGT4O6Q.js} +2 -2
  50. package/dist/{chunk-OGRFQTXA.js → chunk-BTGJ3MP4.js} +2 -2
  51. package/dist/{chunk-TOLTUOZS.js → chunk-CWIE74NX.js} +2 -2
  52. package/dist/{chunk-M242VYZA.js → chunk-CXZKCBQE.js} +2 -2
  53. package/dist/{chunk-4EZJ5FKJ.js → chunk-DIOJGTUN.js} +2 -2
  54. package/dist/chunk-DJUSVBD5.js +2 -0
  55. package/dist/chunk-DJUSVBD5.js.map +7 -0
  56. package/dist/chunk-DLRGB5NY.js +2 -0
  57. package/dist/chunk-DLRGB5NY.js.map +7 -0
  58. package/dist/chunk-DY3ZYMXD.js +2 -0
  59. package/dist/chunk-DY3ZYMXD.js.map +7 -0
  60. package/dist/chunk-EO777UIN.js +2 -0
  61. package/dist/chunk-EO777UIN.js.map +7 -0
  62. package/dist/chunk-ESCLDVFS.js +2 -0
  63. package/dist/{chunk-YBAYEU25.js.map → chunk-ESCLDVFS.js.map} +1 -1
  64. package/dist/{chunk-2ZUZ5HDL.js → chunk-ESRS5ZQV.js} +2 -2
  65. package/dist/{chunk-RNN55473.js → chunk-FNZI6MFG.js} +2 -2
  66. package/dist/{chunk-RNN55473.js.map → chunk-FNZI6MFG.js.map} +1 -1
  67. package/dist/{chunk-JK74QK3M.js → chunk-FSR6BDVO.js} +2 -2
  68. package/dist/{chunk-6VBK2I5B.js → chunk-G26R2F3W.js} +2 -2
  69. package/dist/{chunk-G2DAD3MQ.js → chunk-GEJKFE4X.js} +2 -2
  70. package/dist/chunk-GFJRGBQR.js +2 -0
  71. package/dist/chunk-GFJRGBQR.js.map +7 -0
  72. package/dist/chunk-GLAY4RJF.js +2 -0
  73. package/dist/chunk-GLAY4RJF.js.map +7 -0
  74. package/dist/chunk-GNKVLJ5H.js +2 -0
  75. package/dist/chunk-GNKVLJ5H.js.map +7 -0
  76. package/dist/chunk-GZIDE5K2.js +2 -0
  77. package/dist/chunk-GZIDE5K2.js.map +7 -0
  78. package/dist/{chunk-5Q76ACVI.js → chunk-H25XXQVH.js} +2 -2
  79. package/dist/chunk-HG7OOHGD.js +2 -0
  80. package/dist/chunk-HG7OOHGD.js.map +7 -0
  81. package/dist/chunk-HRW25TMU.js +2 -0
  82. package/dist/chunk-HX6TWXTX.js +2 -0
  83. package/dist/chunk-HX6TWXTX.js.map +7 -0
  84. package/dist/chunk-I5A74NMJ.js +2 -0
  85. package/dist/chunk-I5A74NMJ.js.map +7 -0
  86. package/dist/chunk-IODSL7KU.js +2 -0
  87. package/dist/chunk-IODSL7KU.js.map +7 -0
  88. package/dist/chunk-J2TCHWYD.js +2 -0
  89. package/dist/chunk-J2TCHWYD.js.map +7 -0
  90. package/dist/chunk-J5BZAKC6.js +2 -0
  91. package/dist/chunk-J5BZAKC6.js.map +7 -0
  92. package/dist/chunk-JBOKM5YA.js +2 -0
  93. package/dist/{chunk-KLLAY2IM.js.map → chunk-JBOKM5YA.js.map} +2 -2
  94. package/dist/chunk-L5SQQFO7.js +2 -0
  95. package/dist/chunk-L5SQQFO7.js.map +7 -0
  96. package/dist/chunk-L6DOWGBO.js +2 -0
  97. package/dist/chunk-L6DOWGBO.js.map +7 -0
  98. package/dist/{chunk-W3H7GTJY.js → chunk-LHWY6G6Q.js} +2 -2
  99. package/dist/chunk-LLHDEUIA.js +2 -0
  100. package/dist/chunk-LLHDEUIA.js.map +7 -0
  101. package/dist/chunk-LXWCTCZV.js +2 -0
  102. package/dist/chunk-LXWCTCZV.js.map +7 -0
  103. package/dist/chunk-M2ZRKHE4.js +2 -0
  104. package/dist/chunk-M2ZRKHE4.js.map +7 -0
  105. package/dist/{chunk-Q26YZYTD.js → chunk-M7HLHGQV.js} +2 -2
  106. package/dist/{chunk-IHE2MQ3W.js → chunk-MGSCSS7X.js} +2 -2
  107. package/dist/chunk-MM2OC66E.js +4 -0
  108. package/dist/{chunk-XX2MVWFS.js.map → chunk-MM2OC66E.js.map} +1 -1
  109. package/dist/{chunk-DBMWS3O5.js → chunk-MQ5BYGFY.js} +2 -2
  110. package/dist/chunk-MQEALOU3.js +3 -0
  111. package/dist/chunk-MQEALOU3.js.map +7 -0
  112. package/dist/chunk-NAUSRVB6.js +2 -0
  113. package/dist/chunk-NAUSRVB6.js.map +7 -0
  114. package/dist/chunk-NEVDHDJ4.js +3 -0
  115. package/dist/chunk-NEVDHDJ4.js.map +7 -0
  116. package/dist/{chunk-5QUY72FX.js → chunk-NWHH3CYH.js} +2 -2
  117. package/dist/chunk-OADWLPSF.js +2 -0
  118. package/dist/chunk-OADWLPSF.js.map +7 -0
  119. package/dist/{chunk-3TAW4AKH.js → chunk-OB3VIRQR.js} +2 -2
  120. package/dist/{chunk-MB3MU6HR.js → chunk-PGVLRMTQ.js} +2 -2
  121. package/dist/chunk-Q6FY4L2F.js +2 -0
  122. package/dist/chunk-Q6FY4L2F.js.map +7 -0
  123. package/dist/{chunk-TZOQWCVH.js → chunk-QOSTS5I3.js} +2 -2
  124. package/dist/chunk-QVBDBGS4.js +2 -0
  125. package/dist/chunk-QVBDBGS4.js.map +7 -0
  126. package/dist/{chunk-3S24ZRPK.js → chunk-RMATRKXV.js} +2 -2
  127. package/dist/{chunk-I4SP6JTU.js → chunk-S3ILIWSW.js} +2 -2
  128. package/dist/chunk-S4QD5NID.js +2 -0
  129. package/dist/chunk-S4QD5NID.js.map +7 -0
  130. package/dist/{chunk-XHOBNSBO.js → chunk-SEUIIPHS.js} +2 -2
  131. package/dist/{chunk-23XLG2EM.js → chunk-SEW5OCQF.js} +2 -2
  132. package/dist/chunk-T5OGUCY2.js +2 -0
  133. package/dist/chunk-T5OGUCY2.js.map +7 -0
  134. package/dist/chunk-TMBGEZSD.js +2 -0
  135. package/dist/chunk-TMBGEZSD.js.map +7 -0
  136. package/dist/chunk-TVO3Z2BM.js +2 -0
  137. package/dist/chunk-TVO3Z2BM.js.map +7 -0
  138. package/dist/{chunk-LQRFNQ2N.js → chunk-U25QSLAH.js} +2 -2
  139. package/dist/chunk-UCWICDYG.js +2 -0
  140. package/dist/chunk-UCWICDYG.js.map +7 -0
  141. package/dist/chunk-UDXO3KM3.js +2 -0
  142. package/dist/chunk-UDXO3KM3.js.map +7 -0
  143. package/dist/{chunk-FEHGU6EP.js → chunk-UL364TLO.js} +2 -2
  144. package/dist/chunk-UUAGMZD2.js +2 -0
  145. package/dist/chunk-UUAGMZD2.js.map +7 -0
  146. package/dist/chunk-V5G5JECN.js +2 -0
  147. package/dist/chunk-V5G5JECN.js.map +7 -0
  148. package/dist/chunk-XFDNXSU5.js +2 -0
  149. package/dist/chunk-XFDNXSU5.js.map +7 -0
  150. package/dist/{chunk-JBLRAM7Z.js → chunk-XNRZJP4E.js} +2 -2
  151. package/dist/chunk-YJTUFK4P.js +2 -0
  152. package/dist/chunk-YLFSCQL3.js +2 -0
  153. package/dist/chunk-YLFSCQL3.js.map +7 -0
  154. package/dist/chunk-Z6HZY2YG.js +2 -0
  155. package/dist/chunk-Z6HZY2YG.js.map +7 -0
  156. package/dist/chunk-ZEIE2OCQ.js +2 -0
  157. package/dist/chunk-ZEIE2OCQ.js.map +7 -0
  158. package/dist/{chunk-2YZB6XQR.js → chunk-ZLYZFHEN.js} +2 -2
  159. package/dist/components/avatar.js +2 -0
  160. package/dist/components/avatar.js.map +7 -0
  161. package/dist/components/badge.js +1 -1
  162. package/dist/components/breadcrumb.js +1 -1
  163. package/dist/components/button.js +1 -1
  164. package/dist/components/calendar.js +1 -1
  165. package/dist/components/carousel.js +2 -0
  166. package/dist/components/carousel.js.map +7 -0
  167. package/dist/components/cellediting.js +1 -1
  168. package/dist/components/chart.js +2 -0
  169. package/dist/components/chart.js.map +7 -0
  170. package/dist/components/chat.js +1 -1
  171. package/dist/components/checkbox.js +1 -1
  172. package/dist/components/checkboxgroup.js +1 -1
  173. package/dist/components/chip.js +1 -1
  174. package/dist/components/codeviewer.js +1 -1
  175. package/dist/components/columntotals.js +2 -0
  176. package/dist/components/columntotals.js.map +7 -0
  177. package/dist/components/combobox.js +1 -1
  178. package/dist/components/commandpalette.js +1 -1
  179. package/dist/components/container.js +1 -1
  180. package/dist/components/dataview.js +1 -1
  181. package/dist/components/datefield.js +1 -1
  182. package/dist/components/daterangefield.js +1 -1
  183. package/dist/components/datetimefield.js +2 -0
  184. package/dist/components/datetimefield.js.map +7 -0
  185. package/dist/components/dial.js +1 -1
  186. package/dist/components/dropdown.js +1 -1
  187. package/dist/components/exportbar.js +2 -0
  188. package/dist/components/exportbar.js.map +7 -0
  189. package/dist/components/fieldgroup.js +1 -1
  190. package/dist/components/fieldlist.js +1 -1
  191. package/dist/components/fieldset.js +1 -1
  192. package/dist/components/filterbuilder.js +1 -1
  193. package/dist/components/form.js +1 -1
  194. package/dist/components/formactions.js +1 -1
  195. package/dist/components/formerrors.js +1 -1
  196. package/dist/components/formsection.js +1 -1
  197. package/dist/components/grid.js +1 -1
  198. package/dist/components/gridexport.js +2 -0
  199. package/dist/components/gridexport.js.map +7 -0
  200. package/dist/components/gridstate.js +2 -0
  201. package/dist/components/gridstate.js.map +7 -0
  202. package/dist/components/grouping.js +2 -0
  203. package/dist/components/grouping.js.map +7 -0
  204. package/dist/components/icon.js +1 -1
  205. package/dist/components/image.js +2 -0
  206. package/dist/components/image.js.map +7 -0
  207. package/dist/components/imagecanvas.js +2 -0
  208. package/dist/components/imagecanvas.js.map +7 -0
  209. package/dist/components/imagefield.js +2 -0
  210. package/dist/components/imagefield.js.map +7 -0
  211. package/dist/components/inputgroup.js +1 -1
  212. package/dist/components/label.js +1 -1
  213. package/dist/components/listbox.js +1 -1
  214. package/dist/components/lookupfield.js +1 -1
  215. package/dist/components/maskfield.js +2 -0
  216. package/dist/components/maskfield.js.map +7 -0
  217. package/dist/components/menu.js +1 -1
  218. package/dist/components/messagebox.js +1 -1
  219. package/dist/components/navmenu.js +1 -1
  220. package/dist/components/numberfield.js +1 -1
  221. package/dist/components/pagination.js +1 -1
  222. package/dist/components/panel.js +1 -1
  223. package/dist/components/pickerfield.js +1 -1
  224. package/dist/components/radiogroup.js +1 -1
  225. package/dist/components/rowediting.js +2 -0
  226. package/dist/components/rowediting.js.map +7 -0
  227. package/dist/components/searchgrid.js +1 -1
  228. package/dist/components/secretfield.js +1 -1
  229. package/dist/components/select.js +1 -1
  230. package/dist/components/shortcuts.js +2 -0
  231. package/dist/components/shortcuts.js.map +7 -0
  232. package/dist/components/slider.js +1 -1
  233. package/dist/components/spacer.js +1 -1
  234. package/dist/components/spinner.js +1 -1
  235. package/dist/components/stat.js +2 -0
  236. package/dist/components/stat.js.map +7 -0
  237. package/dist/components/stepform.js +1 -1
  238. package/dist/components/stepper.js +1 -1
  239. package/dist/components/suggestfield.js +1 -1
  240. package/dist/components/table.js +1 -1
  241. package/dist/components/tabs.js +1 -1
  242. package/dist/components/textarea.js +1 -1
  243. package/dist/components/textfield.js +1 -1
  244. package/dist/components/timeentry.js +2 -0
  245. package/dist/components/timeentry.js.map +7 -0
  246. package/dist/components/timefield.js +2 -0
  247. package/dist/components/timefield.js.map +7 -0
  248. package/dist/components/timeline.js +2 -0
  249. package/dist/components/timeline.js.map +7 -0
  250. package/dist/components/toast.js +1 -1
  251. package/dist/components/toggle.js +1 -1
  252. package/dist/components/toolbar.js +1 -1
  253. package/dist/components/tree.js +1 -1
  254. package/dist/components/treegrid.js +2 -0
  255. package/dist/components/treegrid.js.map +7 -0
  256. package/dist/components/viewmanager.js +1 -1
  257. package/dist/components/viewport.js +1 -1
  258. package/dist/components/widget.js +1 -1
  259. package/dist/components/window.js +1 -1
  260. package/dist/core.js +1 -1
  261. package/dist/css/avatar.css +68 -0
  262. package/dist/css/base.css +9 -0
  263. package/dist/css/carousel.css +119 -0
  264. package/dist/css/chart.css +168 -0
  265. package/dist/css/columntotals.css +56 -0
  266. package/dist/css/core.css +36 -0
  267. package/dist/css/datetimefield.css +15 -0
  268. package/dist/css/exportbar.css +9 -0
  269. package/dist/css/grid.css +52 -0
  270. package/dist/css/gridexport.css +35 -0
  271. package/dist/css/grouping.css +56 -0
  272. package/dist/css/image.css +46 -0
  273. package/dist/css/imagecanvas.css +75 -0
  274. package/dist/css/imagefield.css +103 -0
  275. package/dist/css/rowediting.css +39 -0
  276. package/dist/css/shortcuts.css +34 -0
  277. package/dist/css/stat.css +64 -0
  278. package/dist/css/stepform.css +1 -0
  279. package/dist/css/timeentry.css +116 -0
  280. package/dist/css/timeline.css +185 -0
  281. package/dist/css/treegrid.css +35 -0
  282. package/dist/css/window.css +2 -2
  283. package/dist/data.js +1 -1
  284. package/dist/dev.js +2 -0
  285. package/dist/dev.js.map +7 -0
  286. package/dist/index.js +16 -5
  287. package/dist/index.js.map +4 -4
  288. package/dist/optikos.css +1480 -142
  289. package/dist/testing.js +2 -0
  290. package/dist/testing.js.map +7 -0
  291. package/dist/themes/dark.css +7 -0
  292. package/dist/types/bind/index.d.ts +1 -1
  293. package/dist/types/bind/viewmodel.d.ts +33 -0
  294. package/dist/types/build/build.d.ts +49 -0
  295. package/dist/types/build/index.d.ts +1 -0
  296. package/dist/types/components/avatar.d.ts +1 -0
  297. package/dist/types/components/base/avatar/avatar.d.ts +22 -0
  298. package/dist/types/components/base/image/image.d.ts +25 -0
  299. package/dist/types/components/base/imagecanvas/imagecanvas.d.ts +39 -0
  300. package/dist/types/components/carousel.d.ts +1 -0
  301. package/dist/types/components/chart.d.ts +1 -0
  302. package/dist/types/components/charts/chart/chart.d.ts +64 -0
  303. package/dist/types/components/charts/stat/stat.d.ts +34 -0
  304. package/dist/types/components/columntotals.d.ts +1 -0
  305. package/dist/types/components/data/cellediting/cellediting.d.ts +3 -0
  306. package/dist/types/components/data/columntotals/columntotals.d.ts +24 -0
  307. package/dist/types/components/data/exportbar/exportbar.d.ts +24 -0
  308. package/dist/types/components/data/grid/footer.d.ts +6 -0
  309. package/dist/types/components/data/grid/grid.d.ts +37 -0
  310. package/dist/types/components/data/gridexport/gridexport.d.ts +29 -0
  311. package/dist/types/components/data/gridstate/gridstate.d.ts +23 -0
  312. package/dist/types/components/data/grouping/controls.d.ts +27 -0
  313. package/dist/types/components/data/grouping/grouping.d.ts +43 -0
  314. package/dist/types/components/data/rowediting/rowediting.d.ts +13 -0
  315. package/dist/types/components/data/searchgrid/searchgrid.d.ts +9 -2
  316. package/dist/types/components/data/timeentry/timeentry.d.ts +37 -0
  317. package/dist/types/components/data/timeline/timeline.d.ts +63 -0
  318. package/dist/types/components/data/treegrid/treegrid.d.ts +32 -0
  319. package/dist/types/components/datetimefield.d.ts +1 -0
  320. package/dist/types/components/exportbar.d.ts +1 -0
  321. package/dist/types/components/fields/datetimefield/datetimefield.d.ts +28 -0
  322. package/dist/types/components/fields/imagefield/imagefield.d.ts +48 -0
  323. package/dist/types/components/fields/maskfield/maskfield.d.ts +28 -0
  324. package/dist/types/components/fields/numberfield/numberfield.d.ts +9 -0
  325. package/dist/types/components/fields/pickerfield/pickerfield.d.ts +3 -0
  326. package/dist/types/components/fields/timefield/timefield.d.ts +24 -0
  327. package/dist/types/components/form/fieldlist/fieldlist.d.ts +2 -0
  328. package/dist/types/components/form/form/form.d.ts +5 -0
  329. package/dist/types/components/form/stepform/stepform.d.ts +1 -1
  330. package/dist/types/components/gridexport.d.ts +1 -0
  331. package/dist/types/components/gridstate.d.ts +1 -0
  332. package/dist/types/components/grouping.d.ts +1 -0
  333. package/dist/types/components/image.d.ts +1 -0
  334. package/dist/types/components/imagecanvas.d.ts +1 -0
  335. package/dist/types/components/imagefield.d.ts +1 -0
  336. package/dist/types/components/layout/carousel/carousel.d.ts +58 -0
  337. package/dist/types/components/maskfield.d.ts +1 -0
  338. package/dist/types/components/navigation/navmenu/navmenu.d.ts +2 -0
  339. package/dist/types/components/overlays/commandpalette/commandpalette.d.ts +2 -0
  340. package/dist/types/components/overlays/menu/menu.d.ts +4 -1
  341. package/dist/types/components/overlays/shortcuts/shortcuts.d.ts +27 -0
  342. package/dist/types/components/overlays/window/window.d.ts +14 -1
  343. package/dist/types/components/rowediting.d.ts +1 -0
  344. package/dist/types/components/shortcuts.d.ts +1 -0
  345. package/dist/types/components/stat.d.ts +1 -0
  346. package/dist/types/components/timeentry.d.ts +1 -0
  347. package/dist/types/components/timefield.d.ts +1 -0
  348. package/dist/types/components/timeline.d.ts +1 -0
  349. package/dist/types/components/treegrid.d.ts +1 -0
  350. package/dist/types/core/component.d.ts +7 -0
  351. package/dist/types/core/container.d.ts +10 -1
  352. package/dist/types/core/dev.d.ts +2 -0
  353. package/dist/types/core/field.d.ts +4 -0
  354. package/dist/types/core/i18n.d.ts +2 -0
  355. package/dist/types/core/index.d.ts +4 -1
  356. package/dist/types/core/path.d.ts +2 -0
  357. package/dist/types/core/permission.d.ts +11 -0
  358. package/dist/types/core/state.d.ts +9 -0
  359. package/dist/types/data/column.d.ts +11 -1
  360. package/dist/types/data/index.d.ts +1 -1
  361. package/dist/types/data/model.d.ts +2 -0
  362. package/dist/types/data/store.d.ts +21 -0
  363. package/dist/types/dev/index.d.ts +2 -0
  364. package/dist/types/dev/keys.d.ts +1 -0
  365. package/dist/types/index.d.ts +21 -0
  366. package/dist/types/testing/index.d.ts +25 -0
  367. package/dist/types/themes/color.d.ts +14 -0
  368. package/dist/types/themes/contrast.d.ts +15 -0
  369. package/dist/types/themes/define.d.ts +25 -3
  370. package/dist/types/themes/index.d.ts +3 -1
  371. package/dist/types/themes/seeds.d.ts +11 -0
  372. package/dist/types/ui/ui.d.ts +6 -0
  373. package/dist/ui.js +1 -1
  374. package/package.json +13 -1
  375. package/dist/chunk-2ZRNGG2N.js +0 -2
  376. package/dist/chunk-2ZRNGG2N.js.map +0 -7
  377. package/dist/chunk-4EQEHJB3.js +0 -2
  378. package/dist/chunk-4EQEHJB3.js.map +0 -7
  379. package/dist/chunk-4LZZ244E.js +0 -2
  380. package/dist/chunk-4LZZ244E.js.map +0 -7
  381. package/dist/chunk-4SYIIX5A.js +0 -2
  382. package/dist/chunk-4SYIIX5A.js.map +0 -7
  383. package/dist/chunk-7KMIFXHZ.js +0 -2
  384. package/dist/chunk-7KMIFXHZ.js.map +0 -7
  385. package/dist/chunk-A2NKDOYN.js +0 -2
  386. package/dist/chunk-A2NKDOYN.js.map +0 -7
  387. package/dist/chunk-CKXS375P.js +0 -2
  388. package/dist/chunk-CKXS375P.js.map +0 -7
  389. package/dist/chunk-EJGWCKE4.js +0 -2
  390. package/dist/chunk-EJGWCKE4.js.map +0 -7
  391. package/dist/chunk-ELYARUCN.js +0 -2
  392. package/dist/chunk-EV73ADN2.js +0 -2
  393. package/dist/chunk-EV73ADN2.js.map +0 -7
  394. package/dist/chunk-GD5JGKM7.js +0 -2
  395. package/dist/chunk-GD5JGKM7.js.map +0 -7
  396. package/dist/chunk-GZ7X34QP.js +0 -2
  397. package/dist/chunk-KCEUD232.js +0 -2
  398. package/dist/chunk-KCEUD232.js.map +0 -7
  399. package/dist/chunk-KLLAY2IM.js +0 -2
  400. package/dist/chunk-LBJSMXLV.js +0 -2
  401. package/dist/chunk-LBJSMXLV.js.map +0 -7
  402. package/dist/chunk-LW2WRUVL.js +0 -2
  403. package/dist/chunk-LW2WRUVL.js.map +0 -7
  404. package/dist/chunk-MW3RWBZ7.js +0 -2
  405. package/dist/chunk-MW3RWBZ7.js.map +0 -7
  406. package/dist/chunk-OEAXCCVM.js +0 -2
  407. package/dist/chunk-OEAXCCVM.js.map +0 -7
  408. package/dist/chunk-UB5RYS7T.js +0 -2
  409. package/dist/chunk-UB5RYS7T.js.map +0 -7
  410. package/dist/chunk-UXXJOU5J.js +0 -2
  411. package/dist/chunk-VU3GIDZ3.js +0 -2
  412. package/dist/chunk-VU3GIDZ3.js.map +0 -7
  413. package/dist/chunk-W2BAFOCN.js +0 -3
  414. package/dist/chunk-W2BAFOCN.js.map +0 -7
  415. package/dist/chunk-WFGTQZIQ.js +0 -2
  416. package/dist/chunk-WFGTQZIQ.js.map +0 -7
  417. package/dist/chunk-XX2MVWFS.js +0 -4
  418. package/dist/chunk-XYZ6VZ5T.js +0 -2
  419. package/dist/chunk-YBAYEU25.js +0 -2
  420. package/dist/chunk-YF75HKL6.js +0 -2
  421. package/dist/chunk-YF75HKL6.js.map +0 -7
  422. /package/dist/{chunk-5JEXM5S7.js.map → chunk-2GKIF7A6.js.map} +0 -0
  423. /package/dist/{chunk-5BC72727.js.map → chunk-2I4Y7I7C.js.map} +0 -0
  424. /package/dist/{chunk-Z2Z52GFT.js.map → chunk-2I7HDIOU.js.map} +0 -0
  425. /package/dist/{chunk-ZPPELYNJ.js.map → chunk-3BG75P7T.js.map} +0 -0
  426. /package/dist/{chunk-GNU4VOOE.js.map → chunk-3F4MN2BU.js.map} +0 -0
  427. /package/dist/{chunk-5DJTP53N.js.map → chunk-3FK52VQX.js.map} +0 -0
  428. /package/dist/{chunk-REW4LR46.js.map → chunk-4OB2IM5L.js.map} +0 -0
  429. /package/dist/{chunk-EDUMAMK4.js.map → chunk-5GCTM37D.js.map} +0 -0
  430. /package/dist/{chunk-JOFQJGZK.js.map → chunk-6BOM5KZR.js.map} +0 -0
  431. /package/dist/{chunk-Z2JBUHKA.js.map → chunk-6NP4AEV4.js.map} +0 -0
  432. /package/dist/{chunk-NXSTUFS7.js.map → chunk-6TZJO2G2.js.map} +0 -0
  433. /package/dist/{chunk-GZ7X34QP.js.map → chunk-7Y2GHQRB.js.map} +0 -0
  434. /package/dist/{chunk-G2KUK6AT.js.map → chunk-ADHKL2GM.js.map} +0 -0
  435. /package/dist/{chunk-JI265XFO.js.map → chunk-AJN66F32.js.map} +0 -0
  436. /package/dist/{chunk-YHEMA56R.js.map → chunk-AQ3RTHG5.js.map} +0 -0
  437. /package/dist/{chunk-ZVK4L5GK.js.map → chunk-BCVOUMJJ.js.map} +0 -0
  438. /package/dist/{chunk-HOF4JGMQ.js.map → chunk-BIGL3ZVD.js.map} +0 -0
  439. /package/dist/{chunk-HXDTGP2K.js.map → chunk-BRGT4O6Q.js.map} +0 -0
  440. /package/dist/{chunk-OGRFQTXA.js.map → chunk-BTGJ3MP4.js.map} +0 -0
  441. /package/dist/{chunk-TOLTUOZS.js.map → chunk-CWIE74NX.js.map} +0 -0
  442. /package/dist/{chunk-M242VYZA.js.map → chunk-CXZKCBQE.js.map} +0 -0
  443. /package/dist/{chunk-4EZJ5FKJ.js.map → chunk-DIOJGTUN.js.map} +0 -0
  444. /package/dist/{chunk-2ZUZ5HDL.js.map → chunk-ESRS5ZQV.js.map} +0 -0
  445. /package/dist/{chunk-JK74QK3M.js.map → chunk-FSR6BDVO.js.map} +0 -0
  446. /package/dist/{chunk-6VBK2I5B.js.map → chunk-G26R2F3W.js.map} +0 -0
  447. /package/dist/{chunk-G2DAD3MQ.js.map → chunk-GEJKFE4X.js.map} +0 -0
  448. /package/dist/{chunk-5Q76ACVI.js.map → chunk-H25XXQVH.js.map} +0 -0
  449. /package/dist/{chunk-XYZ6VZ5T.js.map → chunk-HRW25TMU.js.map} +0 -0
  450. /package/dist/{chunk-W3H7GTJY.js.map → chunk-LHWY6G6Q.js.map} +0 -0
  451. /package/dist/{chunk-Q26YZYTD.js.map → chunk-M7HLHGQV.js.map} +0 -0
  452. /package/dist/{chunk-IHE2MQ3W.js.map → chunk-MGSCSS7X.js.map} +0 -0
  453. /package/dist/{chunk-DBMWS3O5.js.map → chunk-MQ5BYGFY.js.map} +0 -0
  454. /package/dist/{chunk-5QUY72FX.js.map → chunk-NWHH3CYH.js.map} +0 -0
  455. /package/dist/{chunk-3TAW4AKH.js.map → chunk-OB3VIRQR.js.map} +0 -0
  456. /package/dist/{chunk-MB3MU6HR.js.map → chunk-PGVLRMTQ.js.map} +0 -0
  457. /package/dist/{chunk-TZOQWCVH.js.map → chunk-QOSTS5I3.js.map} +0 -0
  458. /package/dist/{chunk-3S24ZRPK.js.map → chunk-RMATRKXV.js.map} +0 -0
  459. /package/dist/{chunk-I4SP6JTU.js.map → chunk-S3ILIWSW.js.map} +0 -0
  460. /package/dist/{chunk-XHOBNSBO.js.map → chunk-SEUIIPHS.js.map} +0 -0
  461. /package/dist/{chunk-23XLG2EM.js.map → chunk-SEW5OCQF.js.map} +0 -0
  462. /package/dist/{chunk-LQRFNQ2N.js.map → chunk-U25QSLAH.js.map} +0 -0
  463. /package/dist/{chunk-FEHGU6EP.js.map → chunk-UL364TLO.js.map} +0 -0
  464. /package/dist/{chunk-JBLRAM7Z.js.map → chunk-XNRZJP4E.js.map} +0 -0
  465. /package/dist/{chunk-ELYARUCN.js.map → chunk-YJTUFK4P.js.map} +0 -0
  466. /package/dist/{chunk-2YZB6XQR.js.map → chunk-ZLYZFHEN.js.map} +0 -0
@@ -0,0 +1,119 @@
1
+ @layer optikos {
2
+ :root {
3
+ --op-carousel-dot-size: 0.5rem;
4
+ --op-carousel-gap: 0rem;
5
+ }
6
+ .op-carousel {
7
+ display: flex;
8
+ flex-direction: column;
9
+ gap: var(--op-space-2);
10
+ min-inline-size: 0;
11
+ font-family: var(--op-font-family);
12
+ }
13
+ .op-carousel__viewport {
14
+ position: relative;
15
+ }
16
+ .op-carousel__track {
17
+ position: relative;
18
+ display: flex;
19
+ gap: var(--op-carousel-gap);
20
+ overflow-x: auto;
21
+ scroll-snap-type: x mandatory;
22
+ scroll-behavior: smooth;
23
+ scrollbar-width: none;
24
+ border-radius: var(--op-carousel-radius, var(--op-radius));
25
+ }
26
+ .op-carousel__track::-webkit-scrollbar {
27
+ display: none;
28
+ }
29
+ .op-carousel__track:focus-visible {
30
+ outline: var(--op-focus-width) solid var(--op-color-focus);
31
+ outline-offset: var(--op-focus-offset);
32
+ }
33
+ .op-carousel__track > * {
34
+ flex: 0 0 calc((100% - (var(--op-carousel-per-view, 1) - 1) * var(--op-carousel-gap)) / var(--op-carousel-per-view, 1));
35
+ min-inline-size: 0;
36
+ scroll-snap-align: start;
37
+ }
38
+ .op-carousel__prev,
39
+ .op-carousel__next {
40
+ position: absolute;
41
+ inset-block-start: 50%;
42
+ translate: 0 -50%;
43
+ display: inline-flex;
44
+ padding: var(--op-space-2);
45
+ color: var(--op-carousel-arrow-fg, var(--op-color-fg));
46
+ background: var(--op-carousel-arrow-bg, var(--op-color-surface));
47
+ border: var(--op-border-width) solid var(--op-color-border);
48
+ border-radius: 50%;
49
+ box-shadow: var(--op-shadow);
50
+ cursor: pointer;
51
+ }
52
+ .op-carousel__prev {
53
+ inset-inline-start: var(--op-space-2);
54
+ }
55
+ .op-carousel__next {
56
+ inset-inline-end: var(--op-space-2);
57
+ }
58
+ [dir='rtl'] .op-carousel__prev .op-icon,
59
+ [dir='rtl'] .op-carousel__next .op-icon {
60
+ scale: -1 1;
61
+ }
62
+ .op-carousel__prev:disabled,
63
+ .op-carousel__next:disabled {
64
+ opacity: 0.4;
65
+ cursor: default;
66
+ }
67
+ .op-carousel__bar {
68
+ display: flex;
69
+ align-items: center;
70
+ justify-content: center;
71
+ gap: var(--op-space-3);
72
+ }
73
+ .op-carousel__bar:not(:has(:not([hidden]))) {
74
+ display: none;
75
+ }
76
+ .op-carousel__dots {
77
+ display: flex;
78
+ gap: var(--op-space-1);
79
+ }
80
+ .op-carousel__dot {
81
+ inline-size: var(--op-carousel-dot-size);
82
+ block-size: var(--op-carousel-dot-size);
83
+ padding: 0;
84
+ background: var(--op-carousel-dot-bg, var(--op-color-border-strong));
85
+ border: 0;
86
+ border-radius: 50%;
87
+ cursor: pointer;
88
+ }
89
+ .op-carousel__dot[aria-current] {
90
+ background: var(--op-carousel-dot-active-bg, var(--op-color-primary));
91
+ }
92
+ .op-carousel__toggle {
93
+ display: inline-flex;
94
+ padding: var(--op-space-1);
95
+ color: var(--op-color-fg);
96
+ background: none;
97
+ border: 0;
98
+ border-radius: var(--op-radius);
99
+ cursor: pointer;
100
+ }
101
+ .op-carousel__prev:focus-visible,
102
+ .op-carousel__next:focus-visible,
103
+ .op-carousel__dot:focus-visible,
104
+ .op-carousel__toggle:focus-visible {
105
+ outline: var(--op-focus-width) solid var(--op-color-focus);
106
+ outline-offset: var(--op-focus-offset);
107
+ }
108
+ .op-carousel__prev[hidden],
109
+ .op-carousel__next[hidden],
110
+ .op-carousel__toggle[hidden],
111
+ .op-carousel__dots[hidden] {
112
+ display: none;
113
+ }
114
+ @media (prefers-reduced-motion: reduce) {
115
+ .op-carousel__track {
116
+ scroll-behavior: auto;
117
+ }
118
+ }
119
+ }
@@ -0,0 +1,168 @@
1
+ @layer optikos {
2
+ :root {
3
+ --op-chart-line-width: 2px;
4
+ --op-chart-font-size: 0.75rem;
5
+ --op-chart-area-opacity: 0.18;
6
+ --op-chart-tip-width: 11rem;
7
+ --op-chart-swatch: 0.625rem;
8
+ --op-chart-total-size: 1.125rem;
9
+ --op-chart-bar-radius: 2px;
10
+ }
11
+ .op-chart {
12
+ display: flex;
13
+ flex-direction: column;
14
+ gap: var(--op-space-2);
15
+ min-inline-size: 0;
16
+ font-family: var(--op-font-family);
17
+ color: var(--op-chart-fg, var(--op-color-fg));
18
+ }
19
+ .op-chart__plot {
20
+ position: relative;
21
+ }
22
+ .op-chart__svg {
23
+ display: block;
24
+ inline-size: 100%;
25
+ overflow: visible;
26
+ touch-action: pan-y;
27
+ }
28
+ .op-chart__svg:focus-visible {
29
+ outline: var(--op-focus-width) solid var(--op-color-focus);
30
+ outline-offset: var(--op-focus-offset);
31
+ }
32
+ .op-chart__grid line {
33
+ stroke: var(--op-chart-grid, var(--op-color-border));
34
+ stroke-width: var(--op-border-width);
35
+ }
36
+ .op-chart__grid .op-chart__axis {
37
+ stroke: var(--op-color-border-strong);
38
+ }
39
+ .op-chart__tick,
40
+ .op-chart__empty {
41
+ fill: var(--op-color-fg-muted);
42
+ font-size: var(--op-chart-font-size);
43
+ }
44
+ .op-chart__total {
45
+ fill: var(--op-chart-fg, var(--op-color-fg));
46
+ font-size: var(--op-chart-total-size);
47
+ font-weight: 600;
48
+ }
49
+ .op-chart__series {
50
+ --op-chart-c: var(--op-chart-1, var(--op-color-primary));
51
+ }
52
+ .op-chart__bar {
53
+ fill: var(--op-chart-c);
54
+ }
55
+ .op-chart__line {
56
+ fill: none;
57
+ stroke: var(--op-chart-c);
58
+ stroke-width: var(--op-chart-line-width);
59
+ stroke-linejoin: round;
60
+ stroke-linecap: round;
61
+ }
62
+ .op-chart__area {
63
+ fill: var(--op-chart-c);
64
+ fill-opacity: var(--op-chart-area-opacity);
65
+ stroke: none;
66
+ }
67
+ .op-chart__dot {
68
+ fill: var(--op-color-surface);
69
+ stroke: var(--op-chart-c);
70
+ stroke-width: var(--op-chart-line-width);
71
+ }
72
+ .op-chart--sparkline .op-chart__dot {
73
+ fill: var(--op-chart-c);
74
+ }
75
+ .op-chart__slice {
76
+ fill: var(--op-chart-c);
77
+ stroke: var(--op-color-surface);
78
+ stroke-width: var(--op-chart-line-width);
79
+ transition: opacity var(--op-duration) var(--op-easing);
80
+ }
81
+ .op-chart__svg:has(.is-active) .op-chart__slice:not(.is-active) {
82
+ opacity: 0.55;
83
+ }
84
+ .op-chart__hit {
85
+ fill: transparent;
86
+ }
87
+ .op-chart__guide {
88
+ stroke: var(--op-color-border-strong);
89
+ stroke-width: var(--op-border-width);
90
+ visibility: hidden;
91
+ }
92
+ .op-chart__guide.is-on {
93
+ visibility: visible;
94
+ }
95
+ .op-chart__tip {
96
+ position: absolute;
97
+ inset-block-start: 0;
98
+ z-index: 1;
99
+ inline-size: max-content;
100
+ max-inline-size: var(--op-chart-tip-width);
101
+ padding: var(--op-space-2) var(--op-space-3);
102
+ transform: translateX(var(--op-space-3));
103
+ background: var(--op-color-surface);
104
+ color: var(--op-color-fg);
105
+ border: var(--op-border-width) solid var(--op-color-border);
106
+ border-radius: var(--op-radius);
107
+ box-shadow: var(--op-shadow);
108
+ font-size: var(--op-chart-font-size);
109
+ pointer-events: none;
110
+ }
111
+ .op-chart__tip.is-left {
112
+ transform: translateX(calc(-100% - var(--op-space-3)));
113
+ }
114
+ .op-chart__tip-head {
115
+ font-weight: 600;
116
+ margin-block-end: var(--op-space-1);
117
+ }
118
+ .op-chart__tip-row {
119
+ display: flex;
120
+ align-items: center;
121
+ gap: var(--op-space-2);
122
+ }
123
+ .op-chart__tip-row b {
124
+ margin-inline-start: auto;
125
+ padding-inline-start: var(--op-space-3);
126
+ font-variant-numeric: tabular-nums;
127
+ }
128
+ .op-chart__legend {
129
+ display: flex;
130
+ flex-wrap: wrap;
131
+ gap: var(--op-space-1) var(--op-space-3);
132
+ }
133
+ .op-chart__key {
134
+ display: inline-flex;
135
+ align-items: center;
136
+ gap: var(--op-space-2);
137
+ padding: 0;
138
+ border: 0;
139
+ background: none;
140
+ font: inherit;
141
+ font-size: var(--op-chart-font-size);
142
+ color: var(--op-color-fg);
143
+ cursor: pointer;
144
+ }
145
+ .op-chart__key.is-off {
146
+ color: var(--op-color-fg-muted);
147
+ text-decoration: line-through;
148
+ }
149
+ .op-chart__key:focus-visible {
150
+ outline: var(--op-focus-width) solid var(--op-color-focus);
151
+ outline-offset: var(--op-focus-offset);
152
+ }
153
+ .op-chart__swatch {
154
+ inline-size: var(--op-chart-swatch);
155
+ block-size: var(--op-chart-swatch);
156
+ border-radius: var(--op-chart-bar-radius);
157
+ background: var(--op-chart-c);
158
+ flex: none;
159
+ }
160
+ .op-chart__key.is-off .op-chart__swatch {
161
+ opacity: 0.35;
162
+ }
163
+ @media (prefers-reduced-motion: reduce) {
164
+ .op-chart__slice {
165
+ transition: none;
166
+ }
167
+ }
168
+ }
@@ -0,0 +1,56 @@
1
+ @layer optikos {
2
+ .op-columntotals {
3
+ display: grid;
4
+ grid-template-columns: var(--op-grid-cols);
5
+ box-sizing: border-box;
6
+ flex: none;
7
+ overflow: hidden;
8
+ min-block-size: var(--op-grid-row-height, var(--op-row-height));
9
+ border-block-start: var(--op-border-width) solid var(--op-grid-header-border, var(--op-color-border-strong));
10
+ background: var(--op-grid-total-bg, var(--op-color-surface-2));
11
+ font-weight: var(--op-font-weight-bold);
12
+ }
13
+ .op-columntotals[hidden] {
14
+ display: none;
15
+ }
16
+ .op-columntotals__cell {
17
+ display: flex;
18
+ align-items: center;
19
+ gap: var(--op-space-2);
20
+ min-inline-size: 0;
21
+ padding-inline: var(--op-grid-cell-padding-x, var(--op-control-padding-x));
22
+ overflow: hidden;
23
+ white-space: nowrap;
24
+ }
25
+ .op-columntotals__cell--right { justify-content: flex-end; }
26
+ .op-columntotals__cell--center { justify-content: center; }
27
+ .op-columntotals__op {
28
+ color: var(--op-color-fg-muted);
29
+ font-size: var(--op-font-size-sm);
30
+ font-weight: var(--op-font-weight-normal, normal);
31
+ }
32
+ .op-columntotals__btn {
33
+ display: inline-flex;
34
+ flex: none;
35
+ align-items: center;
36
+ margin-inline-start: auto;
37
+ padding: var(--op-space-1);
38
+ border: 0;
39
+ border-radius: var(--op-radius-sm);
40
+ background: transparent;
41
+ color: var(--op-color-fg-muted);
42
+ cursor: pointer;
43
+ }
44
+ .op-columntotals__btn:hover {
45
+ background: var(--op-color-hover);
46
+ color: var(--op-color-fg);
47
+ }
48
+ .op-columntotals__btn:focus-visible {
49
+ outline: var(--op-focus-width) solid var(--op-color-focus);
50
+ outline-offset: var(--op-focus-offset);
51
+ }
52
+ .op-columntotals--top {
53
+ border-block-start: 0;
54
+ border-block-end: var(--op-border-width) solid var(--op-grid-header-border, var(--op-color-border-strong));
55
+ }
56
+ }
package/dist/css/core.css CHANGED
@@ -85,4 +85,40 @@
85
85
  outline: var(--op-focus-width) solid var(--op-color-focus);
86
86
  outline-offset: var(--op-focus-offset);
87
87
  }
88
+
89
+ /* print: the page, not the application chrome (Grid has printGrid for what its virtual list does not render) */
90
+ @media print {
91
+ .op-no-print,
92
+ .op-layer,
93
+ .op-navmenu,
94
+ .op-formactions,
95
+ .op-pagination,
96
+ .op-toast,
97
+ .op-mask,
98
+ .op-tabs__list,
99
+ .op-viewport > .op-toolbar,
100
+ .op-button {
101
+ display: none !important;
102
+ }
103
+ .op-viewport,
104
+ .op-viewport > *,
105
+ .op-panel,
106
+ .op-form {
107
+ position: static !important;
108
+ overflow: visible !important;
109
+ block-size: auto !important;
110
+ box-shadow: none !important;
111
+ }
112
+ .op-field,
113
+ .op-panel,
114
+ .op-fieldset {
115
+ break-inside: avoid;
116
+ }
117
+ .op-field__control input,
118
+ .op-field__control textarea {
119
+ border-color: transparent;
120
+ background: none;
121
+ padding-inline: 0;
122
+ }
123
+ }
88
124
  }
@@ -0,0 +1,15 @@
1
+ @layer optikos {
2
+ .op-datetimefield__parts {
3
+ display: flex;
4
+ gap: var(--op-datetimefield-gap, var(--op-space-2));
5
+ }
6
+ .op-datetimefield__parts > .op-field {
7
+ margin: 0;
8
+ }
9
+ .op-datetimefield__parts > .op-field:first-child {
10
+ flex: 1 1 60%;
11
+ }
12
+ .op-datetimefield__parts > .op-field:last-child {
13
+ flex: 1 1 40%;
14
+ }
15
+ }
@@ -0,0 +1,9 @@
1
+ @layer optikos {
2
+ .op-exportbar {
3
+ display: flex;
4
+ flex: none;
5
+ gap: var(--op-space-1);
6
+ margin-inline-start: auto;
7
+ padding-inline: var(--op-space-2);
8
+ }
9
+ }
package/dist/css/grid.css CHANGED
@@ -10,6 +10,7 @@
10
10
  --op-grid-action-idle-opacity: 0.45;
11
11
  --op-grid-action-disabled-opacity: 0.3;
12
12
  --op-grid-selected-bar-width: 0.125rem;
13
+ --op-grid-lock-shadow-size: 0.375rem;
13
14
  }
14
15
  .op-grid {
15
16
  --_border: var(--op-grid-border, var(--op-color-border));
@@ -132,6 +133,18 @@
132
133
  padding: var(--op-space-2);
133
134
  border-block-start: var(--op-border-width) solid var(--_border);
134
135
  }
136
+ .op-grid__footer {
137
+ display: flex;
138
+ flex: none;
139
+ flex-wrap: wrap;
140
+ align-items: center;
141
+ justify-content: space-between;
142
+ border-block-start: var(--op-border-width) solid var(--_border);
143
+ }
144
+ .op-grid__footer .op-grid__pager {
145
+ flex: 1 1 auto;
146
+ border-block-start: 0;
147
+ }
135
148
  .op-grid .op-virtual {
136
149
  min-inline-size: var(--op-grid-min-width);
137
150
  }
@@ -375,4 +388,43 @@
375
388
  .op-grid__colgroup ~ .op-grid__colitem {
376
389
  padding-inline-start: var(--op-space-4);
377
390
  }
391
+
392
+ /* locked columns: body cells stick, header cells are shifted by the scroll (the header scrolls by script, not natively) */
393
+ .op-grid__cell.is-locked {
394
+ z-index: 1;
395
+ background: var(--op-grid-bg, var(--op-color-surface));
396
+ }
397
+ .op-grid__body-row .is-locked-start {
398
+ position: sticky;
399
+ inset-inline-start: var(--_lock);
400
+ }
401
+ .op-grid__body-row .is-locked-end {
402
+ position: sticky;
403
+ inset-inline-end: var(--_lock);
404
+ }
405
+ .op-grid__hcell.is-locked {
406
+ position: relative;
407
+ background: var(--op-grid-header-bg, var(--op-color-surface-2));
408
+ }
409
+ .op-grid__hcell.is-locked-start {
410
+ inset-inline-start: var(--op-grid-scroll-x);
411
+ }
412
+ .op-grid__hcell.is-locked-end {
413
+ inset-inline-start: calc(-1 * var(--op-grid-scroll-end));
414
+ }
415
+ .op-grid__body-row:hover .is-locked {
416
+ background: var(--op-grid-row-hover-bg, var(--op-color-hover));
417
+ }
418
+ .op-grid--striped .op-grid__body-row.is-odd .is-locked {
419
+ background: var(--op-grid-row-stripe-bg, var(--op-color-surface-2));
420
+ }
421
+ .op-grid__body-row.is-selected .is-locked {
422
+ background: var(--op-grid-row-selected-bg, var(--op-color-selected));
423
+ }
424
+ .op-grid.is-scrolled-start .is-lock-edge.is-locked-start {
425
+ box-shadow: var(--op-grid-lock-shadow-size) 0 var(--op-grid-lock-shadow-size) calc(-1 * var(--op-grid-lock-shadow-size)) var(--op-color-border-strong);
426
+ }
427
+ .op-grid.is-scrolled-end .is-lock-edge.is-locked-end {
428
+ box-shadow: calc(-1 * var(--op-grid-lock-shadow-size)) 0 var(--op-grid-lock-shadow-size) calc(-1 * var(--op-grid-lock-shadow-size)) var(--op-color-border-strong);
429
+ }
378
430
  }
@@ -0,0 +1,35 @@
1
+ @layer optikos {
2
+ .op-print-sheet {
3
+ display: none;
4
+ }
5
+ @media print {
6
+ html.op-printing body > *:not(.op-print-sheet) {
7
+ display: none !important;
8
+ }
9
+ html.op-printing .op-print-sheet {
10
+ display: block;
11
+ font-family: var(--op-font-family);
12
+ color: var(--op-color-fg);
13
+ }
14
+ .op-print-sheet table {
15
+ inline-size: 100%;
16
+ border-collapse: collapse;
17
+ font-size: var(--op-font-size-sm);
18
+ }
19
+ .op-print-sheet thead {
20
+ display: table-header-group;
21
+ }
22
+ .op-print-sheet tr {
23
+ break-inside: avoid;
24
+ }
25
+ .op-print-sheet th,
26
+ .op-print-sheet td {
27
+ padding: var(--op-space-1) var(--op-space-2);
28
+ border-block-end: var(--op-border-width) solid var(--op-color-border);
29
+ text-align: start;
30
+ }
31
+ .op-print-sheet th {
32
+ border-block-end-color: var(--op-color-fg);
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,56 @@
1
+ @layer optikos {
2
+ .op-grid__row--group {
3
+ display: flex;
4
+ background: var(--op-grid-group-bg, var(--op-color-surface-2));
5
+ font-weight: var(--op-font-weight-bold);
6
+ cursor: pointer;
7
+ }
8
+ .op-grid__row--group .op-grid__cell {
9
+ flex: none;
10
+ }
11
+ .op-grid__row--group .op-grid__cell.is-group-label {
12
+ flex: 1;
13
+ gap: var(--op-space-2);
14
+ }
15
+ .op-grid__row--group .op-grid__cell:not(.is-group-label):not(.op-grid__selcell) {
16
+ display: none;
17
+ }
18
+ .op-grid__twist {
19
+ display: inline-flex;
20
+ transition: transform var(--op-duration) var(--op-easing);
21
+ }
22
+ .op-grid__row--group[aria-expanded='false'] .op-grid__twist {
23
+ transform: rotate(-90deg);
24
+ }
25
+ .op-grid__group-count {
26
+ color: var(--op-color-fg-muted);
27
+ font-weight: normal;
28
+ }
29
+ .op-grid__row--total {
30
+ font-weight: var(--op-font-weight-bold);
31
+ background: var(--op-grid-total-bg, var(--op-color-surface-2));
32
+ cursor: default;
33
+ }
34
+ .op-grid__row--total.is-grand-total {
35
+ border-block-start: var(--op-border-width) solid var(--op-color-border-strong);
36
+ }
37
+ .op-grid__row--total:hover {
38
+ background: var(--op-grid-total-bg, var(--op-color-surface-2));
39
+ }
40
+ .op-grid__body-row.is-grouped > .op-grid__cell:first-child:not(.op-grid__selcell),
41
+ .op-grid__body-row.is-grouped > .op-grid__selcell + .op-grid__cell {
42
+ padding-inline-start: calc(var(--op-grid-cell-padding-x, var(--op-control-padding-x)) + var(--op-grid-indent, var(--op-space-4)));
43
+ }
44
+ @media (prefers-reduced-motion: reduce) {
45
+ .op-grid__twist {
46
+ transition: none;
47
+ }
48
+ }
49
+ .op-groupcontrols {
50
+ display: flex;
51
+ flex: none;
52
+ gap: var(--op-space-1);
53
+ margin-inline-start: auto;
54
+ padding-inline: var(--op-space-2);
55
+ }
56
+ }
@@ -0,0 +1,46 @@
1
+ @layer optikos {
2
+ :root {
3
+ --op-image-icon-size: 2em;
4
+ }
5
+ .op-image {
6
+ position: relative;
7
+ display: block;
8
+ overflow: hidden;
9
+ background: var(--op-image-bg, var(--op-color-surface-2));
10
+ color: var(--op-color-fg-muted);
11
+ min-inline-size: 0;
12
+ }
13
+ .op-image--rounded {
14
+ border-radius: var(--op-image-radius, var(--op-radius));
15
+ }
16
+ .op-image__fallback {
17
+ position: absolute;
18
+ inset: 0;
19
+ display: flex;
20
+ align-items: center;
21
+ justify-content: center;
22
+ font-size: var(--op-image-icon-size);
23
+ }
24
+ .op-image__img {
25
+ position: absolute;
26
+ inset: 0;
27
+ inline-size: 100%;
28
+ block-size: 100%;
29
+ opacity: 0;
30
+ transition: opacity var(--op-duration) var(--op-easing);
31
+ }
32
+ .op-image.has-image .op-image__img {
33
+ opacity: 1;
34
+ }
35
+ .op-image--cover .op-image__img {
36
+ object-fit: cover;
37
+ }
38
+ .op-image--contain .op-image__img {
39
+ object-fit: contain;
40
+ }
41
+ @media (prefers-reduced-motion: reduce) {
42
+ .op-image__img {
43
+ transition: none;
44
+ }
45
+ }
46
+ }
@@ -0,0 +1,75 @@
1
+ @layer optikos {
2
+ .op-imagecanvas {
3
+ position: relative;
4
+ overflow: hidden;
5
+ aspect-ratio: 4 / 3;
6
+ background: var(--op-imagecanvas-bg, var(--op-color-surface-2));
7
+ border-radius: var(--op-imagecanvas-radius, var(--op-radius));
8
+ font-family: var(--op-font-family);
9
+ }
10
+ .op-imagecanvas__stage {
11
+ position: absolute;
12
+ inset: 0;
13
+ overflow: hidden;
14
+ touch-action: none;
15
+ }
16
+ .op-imagecanvas.is-zoomed .op-imagecanvas__stage {
17
+ cursor: grab;
18
+ }
19
+ .op-imagecanvas.is-dragging .op-imagecanvas__stage {
20
+ cursor: grabbing;
21
+ }
22
+ .op-imagecanvas__stage:focus-visible {
23
+ outline: var(--op-focus-width) solid var(--op-color-focus);
24
+ outline-offset: calc(var(--op-focus-width) * -1);
25
+ }
26
+ .op-imagecanvas__img {
27
+ display: block;
28
+ inline-size: 100%;
29
+ block-size: 100%;
30
+ user-select: none;
31
+ transition: transform var(--op-duration) var(--op-easing);
32
+ }
33
+ .op-imagecanvas.is-dragging .op-imagecanvas__img {
34
+ transition: none;
35
+ }
36
+ .op-imagecanvas.is-error .op-imagecanvas__img {
37
+ visibility: hidden;
38
+ }
39
+ .op-imagecanvas__status {
40
+ position: absolute;
41
+ inset: 0;
42
+ display: grid;
43
+ place-items: center;
44
+ padding: var(--op-space-3);
45
+ color: var(--op-color-fg-muted);
46
+ font-size: var(--op-font-size-sm);
47
+ text-align: center;
48
+ pointer-events: none;
49
+ }
50
+ .op-imagecanvas__tools {
51
+ position: absolute;
52
+ inset-block-end: var(--op-space-2);
53
+ inset-inline-end: var(--op-space-2);
54
+ display: flex;
55
+ gap: var(--op-border-width);
56
+ overflow: hidden;
57
+ border-radius: var(--op-radius);
58
+ box-shadow: var(--op-shadow);
59
+ }
60
+ .op-imagecanvas__tool {
61
+ display: inline-flex;
62
+ padding: var(--op-space-2);
63
+ color: var(--op-imagecanvas-tools-fg, var(--op-color-fg));
64
+ background: var(--op-imagecanvas-tools-bg, var(--op-color-surface));
65
+ border: 0;
66
+ cursor: pointer;
67
+ }
68
+ .op-imagecanvas__tool:hover {
69
+ background: var(--op-color-primary-soft);
70
+ }
71
+ .op-imagecanvas__tool:focus-visible {
72
+ outline: var(--op-focus-width) solid var(--op-color-focus);
73
+ outline-offset: calc(var(--op-focus-width) * -1);
74
+ }
75
+ }