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.
- package/CHANGELOG.md +38 -0
- package/dist/build.js +2 -0
- package/dist/build.js.map +7 -0
- package/dist/{chunk-FCJI2JF7.js → chunk-34KVSA2V.js} +2 -2
- package/dist/{chunk-M7FNPRV4.js → chunk-4DW5WBZB.js} +2 -2
- package/dist/chunk-4QAHVGGE.js +2 -0
- package/dist/chunk-4QAHVGGE.js.map +7 -0
- package/dist/{chunk-I5A74NMJ.js → chunk-4Z4E3BZ2.js} +2 -2
- package/dist/chunk-5H533QXN.js +2 -0
- package/dist/chunk-5H533QXN.js.map +7 -0
- package/dist/chunk-5KJ5Y4GY.js +2 -0
- package/dist/chunk-5KJ5Y4GY.js.map +7 -0
- package/dist/chunk-5WE2JOBY.js +2 -0
- package/dist/chunk-5WE2JOBY.js.map +7 -0
- package/dist/{chunk-SEW5OCQF.js → chunk-6IXVTWFH.js} +2 -2
- package/dist/{chunk-NJ5IFOPR.js → chunk-6S4BKUGD.js} +2 -2
- package/dist/{chunk-CWIE74NX.js → chunk-6VWSTY32.js} +2 -2
- package/dist/{chunk-F4HZUAKM.js → chunk-72ESP5DB.js} +2 -2
- package/dist/chunk-74IVU356.js +3 -0
- package/dist/chunk-74IVU356.js.map +7 -0
- package/dist/chunk-76A4MY7P.js +2 -0
- package/dist/chunk-76A4MY7P.js.map +7 -0
- package/dist/{chunk-3BG75P7T.js → chunk-7SE4B4TC.js} +2 -2
- package/dist/{chunk-PGVLRMTQ.js → chunk-A5N2AJCE.js} +2 -2
- package/dist/{chunk-3QRA3XOA.js → chunk-ALNUVKDT.js} +2 -2
- package/dist/{chunk-NQV4THNE.js → chunk-ANR27GED.js} +2 -2
- package/dist/{chunk-EXIADWI7.js → chunk-AZUWS2C5.js} +2 -2
- package/dist/{chunk-Z6L55FTN.js → chunk-BHKI2SU3.js} +2 -2
- package/dist/{chunk-GZIDE5K2.js → chunk-BIQX75P2.js} +2 -2
- package/dist/{chunk-MNSDGJKA.js → chunk-BPCD37A2.js} +2 -2
- package/dist/chunk-CGSCBLG2.js +2 -0
- package/dist/chunk-CGSCBLG2.js.map +7 -0
- package/dist/{chunk-R32HPK7R.js → chunk-DHUBCB4H.js} +2 -2
- package/dist/chunk-DY3ZYMXD.js +2 -0
- package/dist/chunk-DY3ZYMXD.js.map +7 -0
- package/dist/{chunk-JSEI44A7.js → chunk-EKRWJJ65.js} +2 -2
- package/dist/chunk-EO2IXU2W.js +2 -0
- package/dist/chunk-EO2IXU2W.js.map +7 -0
- package/dist/{chunk-JE56CJX2.js → chunk-EQ4IWYLW.js} +2 -2
- package/dist/{chunk-5PYJ6FJK.js → chunk-EXBGOHG7.js} +2 -2
- package/dist/{chunk-UQRQH2JW.js → chunk-FTZMF2QX.js} +2 -2
- package/dist/{chunk-XFIREDWO.js → chunk-G7NNOLOG.js} +2 -2
- package/dist/chunk-GPEA3UWY.js +2 -0
- package/dist/chunk-GPEA3UWY.js.map +7 -0
- package/dist/{chunk-4OB2IM5L.js → chunk-GX32KEG2.js} +2 -2
- package/dist/{chunk-ZSPJZ3ZH.js → chunk-GYGX4VYF.js} +2 -2
- package/dist/{chunk-BIGL3ZVD.js → chunk-H2EC3QP4.js} +2 -2
- package/dist/{chunk-HRW25TMU.js → chunk-H2KFAM7L.js} +2 -2
- package/dist/{chunk-6LJK4QWF.js → chunk-HHOSKOO6.js} +2 -2
- package/dist/{chunk-JJLOUMCJ.js → chunk-I5KHVFJ4.js} +2 -2
- package/dist/{chunk-N2LS4JD6.js → chunk-IB5T27PW.js} +2 -2
- package/dist/{chunk-5BMG5ZBY.js → chunk-IE7KRNFJ.js} +2 -2
- package/dist/chunk-IODSL7KU.js +2 -0
- package/dist/chunk-IODSL7KU.js.map +7 -0
- package/dist/{chunk-3FK52VQX.js → chunk-J2YP2YD3.js} +2 -2
- package/dist/{chunk-3FCIZKIN.js → chunk-J6D4T4WY.js} +2 -2
- package/dist/{chunk-H25XXQVH.js → chunk-JF4WPGJQ.js} +2 -2
- package/dist/chunk-K44IJHPF.js +2 -0
- package/dist/{chunk-UDXO3KM3.js → chunk-KMBTJ5AG.js} +2 -2
- package/dist/chunk-KMBTJ5AG.js.map +7 -0
- package/dist/chunk-KNWO4NXX.js +2 -0
- package/dist/chunk-KNWO4NXX.js.map +7 -0
- package/dist/{chunk-JLKIHXZP.js → chunk-KP7O5MVL.js} +2 -2
- package/dist/{chunk-HLS5FI55.js → chunk-KVUELLYF.js} +2 -2
- package/dist/chunk-LLHDEUIA.js +2 -0
- package/dist/chunk-LLHDEUIA.js.map +7 -0
- package/dist/{chunk-CMV3F6HR.js → chunk-LRUKKIYA.js} +2 -2
- package/dist/{chunk-DWTDNKXX.js → chunk-M2XOIEPY.js} +2 -2
- package/dist/{chunk-P4O57S6N.js → chunk-MBRCE5A7.js} +2 -2
- package/dist/{chunk-CFGCB37K.js → chunk-MMPPDQ2E.js} +2 -2
- package/dist/{chunk-643FOYQB.js → chunk-MRDX3RVJ.js} +2 -2
- package/dist/{chunk-6PZPBPAD.js → chunk-NAWQBQ57.js} +2 -2
- package/dist/{chunk-RG6SHPHF.js → chunk-NBR5IRZT.js} +2 -2
- package/dist/chunk-NSUAVAWO.js +2 -0
- package/dist/chunk-NSUAVAWO.js.map +7 -0
- package/dist/chunk-NYXRPWIB.js +2 -0
- package/dist/chunk-NYXRPWIB.js.map +7 -0
- package/dist/{chunk-J5QPFJ7M.js → chunk-OK3SN5PN.js} +2 -2
- package/dist/{chunk-NNR2FNHG.js → chunk-OQFQDTLL.js} +2 -2
- package/dist/chunk-OVEQUN4V.js +2 -0
- package/dist/chunk-OVEQUN4V.js.map +7 -0
- package/dist/{chunk-GEBAYD6N.js → chunk-PMIIQMVH.js} +2 -2
- package/dist/{chunk-DIOJGTUN.js → chunk-QT5JRZZJ.js} +2 -2
- package/dist/{chunk-IUOEPAWG.js → chunk-R52OSARY.js} +2 -2
- package/dist/{chunk-XR677UYD.js → chunk-RI62AESU.js} +2 -2
- package/dist/{chunk-6BOM5KZR.js → chunk-RRGAJ7T4.js} +2 -2
- package/dist/{chunk-2YRQULDC.js → chunk-SQTM4QFP.js} +2 -2
- package/dist/{chunk-FPU53CCV.js → chunk-TAFHKT6O.js} +2 -2
- package/dist/{chunk-3TCITFUU.js → chunk-TBM35UV6.js} +2 -2
- package/dist/{chunk-YDX2PCVL.js → chunk-TBOQ6HZZ.js} +2 -2
- package/dist/{chunk-GEJKFE4X.js → chunk-TJJL2GSJ.js} +2 -2
- package/dist/{chunk-3F4MN2BU.js → chunk-TJXH3F7Z.js} +2 -2
- package/dist/chunk-TMBGEZSD.js +2 -0
- package/dist/chunk-TMBGEZSD.js.map +7 -0
- package/dist/{chunk-BQEFLPDA.js → chunk-U5RENLU4.js} +2 -2
- package/dist/chunk-U5RENLU4.js.map +7 -0
- package/dist/chunk-UXL7KG46.js +2 -0
- package/dist/chunk-UXL7KG46.js.map +7 -0
- package/dist/{chunk-DWA45BWR.js → chunk-VADYSXHY.js} +2 -2
- package/dist/{chunk-Q6FY4L2F.js → chunk-VBLCO5Q7.js} +2 -2
- package/dist/{chunk-ESCLDVFS.js → chunk-VCK5WWMQ.js} +2 -2
- package/dist/{chunk-BCVOUMJJ.js → chunk-VCYCNSJY.js} +2 -2
- package/dist/{chunk-4AZ44KV4.js → chunk-VOCGAAG7.js} +2 -2
- package/dist/{chunk-AT7VFZRB.js → chunk-WHWPLMIG.js} +2 -2
- package/dist/{chunk-S2CMWKVB.js → chunk-WVJSNE6Q.js} +2 -2
- package/dist/chunk-WWETTEUZ.js +2 -0
- package/dist/{chunk-YXOKWCYS.js.map → chunk-WWETTEUZ.js.map} +4 -4
- package/dist/chunk-XFDNXSU5.js +2 -0
- package/dist/{chunk-XQHATUKN.js.map → chunk-XFDNXSU5.js.map} +3 -3
- package/dist/{chunk-U5L76VVB.js → chunk-XI4IBUE3.js} +2 -2
- package/dist/{chunk-4S3HRFQB.js → chunk-YAKKOVRI.js} +2 -2
- package/dist/{chunk-HG7OOHGD.js → chunk-YF5GWNM7.js} +2 -2
- package/dist/{chunk-4CWYF4O7.js → chunk-YRCR5ELY.js} +2 -2
- package/dist/{chunk-C3MWS7P2.js → chunk-YVEGWCYD.js} +2 -2
- package/dist/{chunk-MQ5BYGFY.js → chunk-ZYHMTPW4.js} +2 -2
- package/dist/components/alert.js +2 -0
- package/dist/components/alert.js.map +7 -0
- package/dist/components/avatar.js +1 -1
- package/dist/components/badge.js +1 -1
- package/dist/components/breadcrumb.js +1 -1
- package/dist/components/button.js +1 -1
- package/dist/components/calendar.js +1 -1
- package/dist/components/carousel.js +1 -1
- package/dist/components/chart.js +1 -1
- package/dist/components/chat.js +1 -1
- package/dist/components/checkbox.js +1 -1
- package/dist/components/checkboxgroup.js +1 -1
- package/dist/components/chip.js +1 -1
- package/dist/components/codeviewer.js +1 -1
- package/dist/components/columntotals.js +2 -0
- package/dist/components/columntotals.js.map +7 -0
- package/dist/components/combobox.js +1 -1
- package/dist/components/commandpalette.js +1 -1
- package/dist/components/container.js +1 -1
- package/dist/components/dataview.js +1 -1
- package/dist/components/datefield.js +1 -1
- package/dist/components/daterangefield.js +1 -1
- package/dist/components/datetimefield.js +1 -1
- package/dist/components/dial.js +1 -1
- package/dist/components/dropdown.js +1 -1
- package/dist/components/exportbar.js +2 -0
- package/dist/components/exportbar.js.map +7 -0
- package/dist/components/fieldgroup.js +1 -1
- package/dist/components/fieldlist.js +1 -1
- package/dist/components/fieldset.js +1 -1
- package/dist/components/filterbuilder.js +1 -1
- package/dist/components/form.js +1 -1
- package/dist/components/formactions.js +1 -1
- package/dist/components/formerrors.js +1 -1
- package/dist/components/formsection.js +1 -1
- package/dist/components/grid.js +1 -1
- package/dist/components/gridexport.js +1 -1
- package/dist/components/grouping.js +1 -1
- package/dist/components/icon.js +1 -1
- package/dist/components/image.js +1 -1
- package/dist/components/imagecanvas.js +1 -1
- package/dist/components/imagefield.js +1 -1
- package/dist/components/inputgroup.js +1 -1
- package/dist/components/label.js +1 -1
- package/dist/components/listbox.js +1 -1
- package/dist/components/lookupfield.js +1 -1
- package/dist/components/maskfield.js +1 -1
- package/dist/components/menu.js +1 -1
- package/dist/components/messagebox.js +1 -1
- package/dist/components/navmenu.js +1 -1
- package/dist/components/numberfield.js +1 -1
- package/dist/components/pagination.js +1 -1
- package/dist/components/panel.js +1 -1
- package/dist/components/pickerfield.js +1 -1
- package/dist/components/quicksearch.js +2 -0
- package/dist/components/quicksearch.js.map +7 -0
- package/dist/components/radiogroup.js +1 -1
- package/dist/components/searchgrid.js +1 -1
- package/dist/components/secretfield.js +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/shortcuts.js +1 -1
- package/dist/components/slider.js +1 -1
- package/dist/components/spacer.js +1 -1
- package/dist/components/spinner.js +1 -1
- package/dist/components/stat.js +1 -1
- package/dist/components/stepform.js +1 -1
- package/dist/components/stepper.js +1 -1
- package/dist/components/suggestfield.js +1 -1
- package/dist/components/table.js +1 -1
- package/dist/components/tabs.js +1 -1
- package/dist/components/textarea.js +1 -1
- package/dist/components/textfield.js +1 -1
- package/dist/components/timeentry.js +2 -0
- package/dist/components/timeentry.js.map +7 -0
- package/dist/components/timefield.js +1 -1
- package/dist/components/timeline.js +1 -1
- package/dist/components/toast.js +1 -1
- package/dist/components/toggle.js +1 -1
- package/dist/components/toolbar.js +1 -1
- package/dist/components/tree.js +1 -1
- package/dist/components/treegrid.js +1 -1
- package/dist/components/viewmanager.js +1 -1
- package/dist/components/viewport.js +1 -1
- package/dist/components/widget.js +1 -1
- package/dist/components/window.js +1 -1
- package/dist/core.js +1 -1
- package/dist/css/alert.css +60 -0
- package/dist/css/carousel.css +60 -0
- package/dist/css/columntotals.css +56 -0
- package/dist/css/exportbar.css +9 -0
- package/dist/css/grid.css +12 -0
- package/dist/css/grouping.css +7 -0
- package/dist/css/label.css +14 -0
- package/dist/css/quicksearch.css +13 -0
- package/dist/css/stat.css +14 -0
- package/dist/css/timeentry.css +116 -0
- package/dist/css/timeline.css +45 -0
- package/dist/data.js +1 -1
- package/dist/dev.js +1 -1
- package/dist/dev.js.map +2 -2
- package/dist/index.js +6 -6
- package/dist/index.js.map +1 -1
- package/dist/optikos.css +411 -0
- package/dist/types/build/build.d.ts +49 -0
- package/dist/types/build/index.d.ts +1 -0
- package/dist/types/components/alert.d.ts +1 -0
- package/dist/types/components/base/label/label.d.ts +11 -1
- package/dist/types/components/charts/stat/stat.d.ts +7 -1
- package/dist/types/components/columntotals.d.ts +1 -0
- package/dist/types/components/data/columntotals/columntotals.d.ts +24 -0
- package/dist/types/components/data/exportbar/exportbar.d.ts +24 -0
- package/dist/types/components/data/grid/footer.d.ts +6 -0
- package/dist/types/components/data/grouping/controls.d.ts +27 -0
- package/dist/types/components/data/grouping/grouping.d.ts +15 -3
- package/dist/types/components/data/quicksearch/quicksearch.d.ts +13 -0
- package/dist/types/components/data/timeentry/timeentry.d.ts +37 -0
- package/dist/types/components/data/timeline/timeline.d.ts +3 -0
- package/dist/types/components/exportbar.d.ts +1 -0
- package/dist/types/components/feedback/alert/alert.d.ts +28 -0
- package/dist/types/components/fields/datetimefield/datetimefield.d.ts +2 -0
- package/dist/types/components/fields/maskfield/maskfield.d.ts +23 -4
- package/dist/types/components/layout/carousel/carousel.d.ts +8 -0
- package/dist/types/components/navigation/navmenu/navmenu.d.ts +4 -0
- package/dist/types/components/quicksearch.d.ts +1 -0
- package/dist/types/components/timeentry.d.ts +1 -0
- package/dist/types/core/component.d.ts +6 -3
- package/dist/types/core/container.d.ts +2 -0
- package/dist/types/data/column.d.ts +4 -2
- package/dist/types/index.d.ts +6 -0
- package/dist/types/layout/layout.d.ts +5 -0
- package/dist/ui.js +1 -1
- package/package.json +5 -1
- package/dist/chunk-2HNQ2XRY.js +0 -2
- package/dist/chunk-2HNQ2XRY.js.map +0 -7
- package/dist/chunk-5PWPAN62.js +0 -2
- package/dist/chunk-5PWPAN62.js.map +0 -7
- package/dist/chunk-AQ3RTHG5.js +0 -2
- package/dist/chunk-AQ3RTHG5.js.map +0 -7
- package/dist/chunk-BJWREA76.js +0 -2
- package/dist/chunk-BJWREA76.js.map +0 -7
- package/dist/chunk-BQEFLPDA.js.map +0 -7
- package/dist/chunk-DJUSVBD5.js +0 -2
- package/dist/chunk-DJUSVBD5.js.map +0 -7
- package/dist/chunk-GFFZTFQH.js +0 -2
- package/dist/chunk-GFFZTFQH.js.map +0 -7
- package/dist/chunk-PMOXLQ72.js +0 -2
- package/dist/chunk-PMOXLQ72.js.map +0 -7
- package/dist/chunk-SB4ICXBV.js +0 -2
- package/dist/chunk-SB4ICXBV.js.map +0 -7
- package/dist/chunk-SWCB2GMN.js +0 -2
- package/dist/chunk-SWCB2GMN.js.map +0 -7
- package/dist/chunk-TQPQ4UEA.js +0 -2
- package/dist/chunk-TQPQ4UEA.js.map +0 -7
- package/dist/chunk-UDXO3KM3.js.map +0 -7
- package/dist/chunk-XQHATUKN.js +0 -2
- package/dist/chunk-YJTUFK4P.js +0 -2
- package/dist/chunk-YXOKWCYS.js +0 -2
- /package/dist/{chunk-FCJI2JF7.js.map → chunk-34KVSA2V.js.map} +0 -0
- /package/dist/{chunk-M7FNPRV4.js.map → chunk-4DW5WBZB.js.map} +0 -0
- /package/dist/{chunk-I5A74NMJ.js.map → chunk-4Z4E3BZ2.js.map} +0 -0
- /package/dist/{chunk-SEW5OCQF.js.map → chunk-6IXVTWFH.js.map} +0 -0
- /package/dist/{chunk-NJ5IFOPR.js.map → chunk-6S4BKUGD.js.map} +0 -0
- /package/dist/{chunk-CWIE74NX.js.map → chunk-6VWSTY32.js.map} +0 -0
- /package/dist/{chunk-F4HZUAKM.js.map → chunk-72ESP5DB.js.map} +0 -0
- /package/dist/{chunk-3BG75P7T.js.map → chunk-7SE4B4TC.js.map} +0 -0
- /package/dist/{chunk-PGVLRMTQ.js.map → chunk-A5N2AJCE.js.map} +0 -0
- /package/dist/{chunk-3QRA3XOA.js.map → chunk-ALNUVKDT.js.map} +0 -0
- /package/dist/{chunk-NQV4THNE.js.map → chunk-ANR27GED.js.map} +0 -0
- /package/dist/{chunk-EXIADWI7.js.map → chunk-AZUWS2C5.js.map} +0 -0
- /package/dist/{chunk-Z6L55FTN.js.map → chunk-BHKI2SU3.js.map} +0 -0
- /package/dist/{chunk-GZIDE5K2.js.map → chunk-BIQX75P2.js.map} +0 -0
- /package/dist/{chunk-MNSDGJKA.js.map → chunk-BPCD37A2.js.map} +0 -0
- /package/dist/{chunk-R32HPK7R.js.map → chunk-DHUBCB4H.js.map} +0 -0
- /package/dist/{chunk-JSEI44A7.js.map → chunk-EKRWJJ65.js.map} +0 -0
- /package/dist/{chunk-JE56CJX2.js.map → chunk-EQ4IWYLW.js.map} +0 -0
- /package/dist/{chunk-5PYJ6FJK.js.map → chunk-EXBGOHG7.js.map} +0 -0
- /package/dist/{chunk-UQRQH2JW.js.map → chunk-FTZMF2QX.js.map} +0 -0
- /package/dist/{chunk-XFIREDWO.js.map → chunk-G7NNOLOG.js.map} +0 -0
- /package/dist/{chunk-4OB2IM5L.js.map → chunk-GX32KEG2.js.map} +0 -0
- /package/dist/{chunk-ZSPJZ3ZH.js.map → chunk-GYGX4VYF.js.map} +0 -0
- /package/dist/{chunk-BIGL3ZVD.js.map → chunk-H2EC3QP4.js.map} +0 -0
- /package/dist/{chunk-HRW25TMU.js.map → chunk-H2KFAM7L.js.map} +0 -0
- /package/dist/{chunk-6LJK4QWF.js.map → chunk-HHOSKOO6.js.map} +0 -0
- /package/dist/{chunk-JJLOUMCJ.js.map → chunk-I5KHVFJ4.js.map} +0 -0
- /package/dist/{chunk-N2LS4JD6.js.map → chunk-IB5T27PW.js.map} +0 -0
- /package/dist/{chunk-5BMG5ZBY.js.map → chunk-IE7KRNFJ.js.map} +0 -0
- /package/dist/{chunk-3FK52VQX.js.map → chunk-J2YP2YD3.js.map} +0 -0
- /package/dist/{chunk-3FCIZKIN.js.map → chunk-J6D4T4WY.js.map} +0 -0
- /package/dist/{chunk-H25XXQVH.js.map → chunk-JF4WPGJQ.js.map} +0 -0
- /package/dist/{chunk-YJTUFK4P.js.map → chunk-K44IJHPF.js.map} +0 -0
- /package/dist/{chunk-JLKIHXZP.js.map → chunk-KP7O5MVL.js.map} +0 -0
- /package/dist/{chunk-HLS5FI55.js.map → chunk-KVUELLYF.js.map} +0 -0
- /package/dist/{chunk-CMV3F6HR.js.map → chunk-LRUKKIYA.js.map} +0 -0
- /package/dist/{chunk-DWTDNKXX.js.map → chunk-M2XOIEPY.js.map} +0 -0
- /package/dist/{chunk-P4O57S6N.js.map → chunk-MBRCE5A7.js.map} +0 -0
- /package/dist/{chunk-CFGCB37K.js.map → chunk-MMPPDQ2E.js.map} +0 -0
- /package/dist/{chunk-643FOYQB.js.map → chunk-MRDX3RVJ.js.map} +0 -0
- /package/dist/{chunk-6PZPBPAD.js.map → chunk-NAWQBQ57.js.map} +0 -0
- /package/dist/{chunk-RG6SHPHF.js.map → chunk-NBR5IRZT.js.map} +0 -0
- /package/dist/{chunk-J5QPFJ7M.js.map → chunk-OK3SN5PN.js.map} +0 -0
- /package/dist/{chunk-NNR2FNHG.js.map → chunk-OQFQDTLL.js.map} +0 -0
- /package/dist/{chunk-GEBAYD6N.js.map → chunk-PMIIQMVH.js.map} +0 -0
- /package/dist/{chunk-DIOJGTUN.js.map → chunk-QT5JRZZJ.js.map} +0 -0
- /package/dist/{chunk-IUOEPAWG.js.map → chunk-R52OSARY.js.map} +0 -0
- /package/dist/{chunk-XR677UYD.js.map → chunk-RI62AESU.js.map} +0 -0
- /package/dist/{chunk-6BOM5KZR.js.map → chunk-RRGAJ7T4.js.map} +0 -0
- /package/dist/{chunk-2YRQULDC.js.map → chunk-SQTM4QFP.js.map} +0 -0
- /package/dist/{chunk-FPU53CCV.js.map → chunk-TAFHKT6O.js.map} +0 -0
- /package/dist/{chunk-3TCITFUU.js.map → chunk-TBM35UV6.js.map} +0 -0
- /package/dist/{chunk-YDX2PCVL.js.map → chunk-TBOQ6HZZ.js.map} +0 -0
- /package/dist/{chunk-GEJKFE4X.js.map → chunk-TJJL2GSJ.js.map} +0 -0
- /package/dist/{chunk-3F4MN2BU.js.map → chunk-TJXH3F7Z.js.map} +0 -0
- /package/dist/{chunk-DWA45BWR.js.map → chunk-VADYSXHY.js.map} +0 -0
- /package/dist/{chunk-Q6FY4L2F.js.map → chunk-VBLCO5Q7.js.map} +0 -0
- /package/dist/{chunk-ESCLDVFS.js.map → chunk-VCK5WWMQ.js.map} +0 -0
- /package/dist/{chunk-BCVOUMJJ.js.map → chunk-VCYCNSJY.js.map} +0 -0
- /package/dist/{chunk-4AZ44KV4.js.map → chunk-VOCGAAG7.js.map} +0 -0
- /package/dist/{chunk-AT7VFZRB.js.map → chunk-WHWPLMIG.js.map} +0 -0
- /package/dist/{chunk-S2CMWKVB.js.map → chunk-WVJSNE6Q.js.map} +0 -0
- /package/dist/{chunk-U5L76VVB.js.map → chunk-XI4IBUE3.js.map} +0 -0
- /package/dist/{chunk-4S3HRFQB.js.map → chunk-YAKKOVRI.js.map} +0 -0
- /package/dist/{chunk-HG7OOHGD.js.map → chunk-YF5GWNM7.js.map} +0 -0
- /package/dist/{chunk-4CWYF4O7.js.map → chunk-YRCR5ELY.js.map} +0 -0
- /package/dist/{chunk-C3MWS7P2.js.map → chunk-YVEGWCYD.js.map} +0 -0
- /package/dist/{chunk-MQ5BYGFY.js.map → chunk-ZYHMTPW4.js.map} +0 -0
package/dist/optikos.css
CHANGED
|
@@ -1022,6 +1022,9 @@
|
|
|
1022
1022
|
}
|
|
1023
1023
|
|
|
1024
1024
|
@layer optikos {
|
|
1025
|
+
:root {
|
|
1026
|
+
--op-label-image-size: 1.5em;
|
|
1027
|
+
}
|
|
1025
1028
|
.op-label {
|
|
1026
1029
|
color: var(--op-label-fg, var(--op-color-fg));
|
|
1027
1030
|
}
|
|
@@ -1032,6 +1035,17 @@
|
|
|
1032
1035
|
font-size: var(--op-label-title-size, var(--op-font-size-lg));
|
|
1033
1036
|
font-weight: var(--op-label-title-weight, var(--op-font-weight-bold));
|
|
1034
1037
|
}
|
|
1038
|
+
.op-label--media {
|
|
1039
|
+
display: inline-flex;
|
|
1040
|
+
align-items: center;
|
|
1041
|
+
gap: var(--op-space-2);
|
|
1042
|
+
}
|
|
1043
|
+
.op-label__image {
|
|
1044
|
+
block-size: var(--op-label-image-size);
|
|
1045
|
+
inline-size: auto;
|
|
1046
|
+
max-inline-size: 100%;
|
|
1047
|
+
object-fit: contain;
|
|
1048
|
+
}
|
|
1035
1049
|
}
|
|
1036
1050
|
|
|
1037
1051
|
@layer optikos {
|
|
@@ -1266,6 +1280,20 @@
|
|
|
1266
1280
|
inset-inline-end: var(--op-space-4);
|
|
1267
1281
|
inline-size: var(--op-stat-spark-width);
|
|
1268
1282
|
}
|
|
1283
|
+
.op-stat.is-interactive {
|
|
1284
|
+
color: inherit;
|
|
1285
|
+
text-decoration: none;
|
|
1286
|
+
cursor: pointer;
|
|
1287
|
+
transition: background var(--op-duration) var(--op-easing), border-color var(--op-duration) var(--op-easing);
|
|
1288
|
+
}
|
|
1289
|
+
.op-stat.is-interactive:hover {
|
|
1290
|
+
background: var(--op-stat-hover-bg, var(--op-color-hover));
|
|
1291
|
+
border-color: var(--op-color-border-strong);
|
|
1292
|
+
}
|
|
1293
|
+
.op-stat.is-interactive:focus-visible {
|
|
1294
|
+
outline: var(--op-focus-width) solid var(--op-color-focus);
|
|
1295
|
+
outline-offset: var(--op-focus-offset);
|
|
1296
|
+
}
|
|
1269
1297
|
}
|
|
1270
1298
|
|
|
1271
1299
|
@layer optikos {
|
|
@@ -1535,6 +1563,63 @@
|
|
|
1535
1563
|
}
|
|
1536
1564
|
}
|
|
1537
1565
|
|
|
1566
|
+
@layer optikos {
|
|
1567
|
+
.op-columntotals {
|
|
1568
|
+
display: grid;
|
|
1569
|
+
grid-template-columns: var(--op-grid-cols);
|
|
1570
|
+
box-sizing: border-box;
|
|
1571
|
+
flex: none;
|
|
1572
|
+
overflow: hidden;
|
|
1573
|
+
min-block-size: var(--op-grid-row-height, var(--op-row-height));
|
|
1574
|
+
border-block-start: var(--op-border-width) solid var(--op-grid-header-border, var(--op-color-border-strong));
|
|
1575
|
+
background: var(--op-grid-total-bg, var(--op-color-surface-2));
|
|
1576
|
+
font-weight: var(--op-font-weight-bold);
|
|
1577
|
+
}
|
|
1578
|
+
.op-columntotals[hidden] {
|
|
1579
|
+
display: none;
|
|
1580
|
+
}
|
|
1581
|
+
.op-columntotals__cell {
|
|
1582
|
+
display: flex;
|
|
1583
|
+
align-items: center;
|
|
1584
|
+
gap: var(--op-space-2);
|
|
1585
|
+
min-inline-size: 0;
|
|
1586
|
+
padding-inline: var(--op-grid-cell-padding-x, var(--op-control-padding-x));
|
|
1587
|
+
overflow: hidden;
|
|
1588
|
+
white-space: nowrap;
|
|
1589
|
+
}
|
|
1590
|
+
.op-columntotals__cell--right { justify-content: flex-end; }
|
|
1591
|
+
.op-columntotals__cell--center { justify-content: center; }
|
|
1592
|
+
.op-columntotals__op {
|
|
1593
|
+
color: var(--op-color-fg-muted);
|
|
1594
|
+
font-size: var(--op-font-size-sm);
|
|
1595
|
+
font-weight: var(--op-font-weight-normal, normal);
|
|
1596
|
+
}
|
|
1597
|
+
.op-columntotals__btn {
|
|
1598
|
+
display: inline-flex;
|
|
1599
|
+
flex: none;
|
|
1600
|
+
align-items: center;
|
|
1601
|
+
margin-inline-start: auto;
|
|
1602
|
+
padding: var(--op-space-1);
|
|
1603
|
+
border: 0;
|
|
1604
|
+
border-radius: var(--op-radius-sm);
|
|
1605
|
+
background: transparent;
|
|
1606
|
+
color: var(--op-color-fg-muted);
|
|
1607
|
+
cursor: pointer;
|
|
1608
|
+
}
|
|
1609
|
+
.op-columntotals__btn:hover {
|
|
1610
|
+
background: var(--op-color-hover);
|
|
1611
|
+
color: var(--op-color-fg);
|
|
1612
|
+
}
|
|
1613
|
+
.op-columntotals__btn:focus-visible {
|
|
1614
|
+
outline: var(--op-focus-width) solid var(--op-color-focus);
|
|
1615
|
+
outline-offset: var(--op-focus-offset);
|
|
1616
|
+
}
|
|
1617
|
+
.op-columntotals--top {
|
|
1618
|
+
border-block-start: 0;
|
|
1619
|
+
border-block-end: var(--op-border-width) solid var(--op-grid-header-border, var(--op-color-border-strong));
|
|
1620
|
+
}
|
|
1621
|
+
}
|
|
1622
|
+
|
|
1538
1623
|
@layer optikos {
|
|
1539
1624
|
:root {
|
|
1540
1625
|
--op-dataview-item-width: 10rem;
|
|
@@ -1592,6 +1677,16 @@
|
|
|
1592
1677
|
}
|
|
1593
1678
|
}
|
|
1594
1679
|
|
|
1680
|
+
@layer optikos {
|
|
1681
|
+
.op-exportbar {
|
|
1682
|
+
display: flex;
|
|
1683
|
+
flex: none;
|
|
1684
|
+
gap: var(--op-space-1);
|
|
1685
|
+
margin-inline-start: auto;
|
|
1686
|
+
padding-inline: var(--op-space-2);
|
|
1687
|
+
}
|
|
1688
|
+
}
|
|
1689
|
+
|
|
1595
1690
|
@layer optikos {
|
|
1596
1691
|
:root {
|
|
1597
1692
|
--op-filterbuilder-gap: var(--op-space-2);
|
|
@@ -1853,6 +1948,18 @@
|
|
|
1853
1948
|
padding: var(--op-space-2);
|
|
1854
1949
|
border-block-start: var(--op-border-width) solid var(--_border);
|
|
1855
1950
|
}
|
|
1951
|
+
.op-grid__footer {
|
|
1952
|
+
display: flex;
|
|
1953
|
+
flex: none;
|
|
1954
|
+
flex-wrap: wrap;
|
|
1955
|
+
align-items: center;
|
|
1956
|
+
justify-content: space-between;
|
|
1957
|
+
border-block-start: var(--op-border-width) solid var(--_border);
|
|
1958
|
+
}
|
|
1959
|
+
.op-grid__footer .op-grid__pager {
|
|
1960
|
+
flex: 1 1 auto;
|
|
1961
|
+
border-block-start: 0;
|
|
1962
|
+
}
|
|
1856
1963
|
.op-grid .op-virtual {
|
|
1857
1964
|
min-inline-size: var(--op-grid-min-width);
|
|
1858
1965
|
}
|
|
@@ -2221,6 +2328,13 @@
|
|
|
2221
2328
|
transition: none;
|
|
2222
2329
|
}
|
|
2223
2330
|
}
|
|
2331
|
+
.op-groupcontrols {
|
|
2332
|
+
display: flex;
|
|
2333
|
+
flex: none;
|
|
2334
|
+
gap: var(--op-space-1);
|
|
2335
|
+
margin-inline-start: auto;
|
|
2336
|
+
padding-inline: var(--op-space-2);
|
|
2337
|
+
}
|
|
2224
2338
|
}
|
|
2225
2339
|
|
|
2226
2340
|
@layer optikos {
|
|
@@ -2247,6 +2361,20 @@
|
|
|
2247
2361
|
}
|
|
2248
2362
|
}
|
|
2249
2363
|
|
|
2364
|
+
@layer optikos {
|
|
2365
|
+
:root {
|
|
2366
|
+
--op-quicksearch-width: 14rem;
|
|
2367
|
+
}
|
|
2368
|
+
.op-quicksearch__group {
|
|
2369
|
+
display: flex;
|
|
2370
|
+
flex: none;
|
|
2371
|
+
padding-inline: var(--op-space-2);
|
|
2372
|
+
}
|
|
2373
|
+
.op-quicksearch {
|
|
2374
|
+
inline-size: var(--op-quicksearch-width);
|
|
2375
|
+
}
|
|
2376
|
+
}
|
|
2377
|
+
|
|
2250
2378
|
@layer optikos {
|
|
2251
2379
|
.op-grid__body-row.is-row-editing {
|
|
2252
2380
|
z-index: 2;
|
|
@@ -2362,11 +2490,130 @@
|
|
|
2362
2490
|
}
|
|
2363
2491
|
}
|
|
2364
2492
|
|
|
2493
|
+
@layer optikos {
|
|
2494
|
+
:root {
|
|
2495
|
+
--op-timeentry-handle: 0.5rem;
|
|
2496
|
+
--op-timeentry-cursor: 0.125rem;
|
|
2497
|
+
--op-timeentry-grip: 0.125rem;
|
|
2498
|
+
}
|
|
2499
|
+
.op-timeline--entry .op-timeline__lane {
|
|
2500
|
+
cursor: crosshair;
|
|
2501
|
+
border-radius: var(--op-radius);
|
|
2502
|
+
}
|
|
2503
|
+
.op-timeline--entry .op-timeline__lane:focus-visible {
|
|
2504
|
+
outline: var(--op-focus-width) solid var(--op-color-focus);
|
|
2505
|
+
outline-offset: var(--op-focus-offset);
|
|
2506
|
+
}
|
|
2507
|
+
.op-timeline--entry .op-timeline__track {
|
|
2508
|
+
touch-action: pan-y;
|
|
2509
|
+
}
|
|
2510
|
+
.op-timeline--entry .op-timeline__bar {
|
|
2511
|
+
cursor: grab;
|
|
2512
|
+
touch-action: none;
|
|
2513
|
+
user-select: none;
|
|
2514
|
+
}
|
|
2515
|
+
.op-timeline--entry .op-timeline__bar.is-dragging {
|
|
2516
|
+
cursor: grabbing;
|
|
2517
|
+
z-index: 1;
|
|
2518
|
+
box-shadow: var(--op-shadow);
|
|
2519
|
+
}
|
|
2520
|
+
.op-timeline--entry .op-timeline__bar.is-locked {
|
|
2521
|
+
cursor: not-allowed;
|
|
2522
|
+
opacity: 0.6;
|
|
2523
|
+
}
|
|
2524
|
+
.op-timeline--entry .op-timeline__bar.is-invalid,
|
|
2525
|
+
.op-timeentry__ghost.is-invalid {
|
|
2526
|
+
--op-timeline-c: var(--op-color-danger);
|
|
2527
|
+
}
|
|
2528
|
+
.is-time-dragging {
|
|
2529
|
+
user-select: none;
|
|
2530
|
+
}
|
|
2531
|
+
.op-timeentry__handle {
|
|
2532
|
+
position: absolute;
|
|
2533
|
+
inset-block: 0;
|
|
2534
|
+
inline-size: var(--op-timeentry-handle);
|
|
2535
|
+
cursor: ew-resize;
|
|
2536
|
+
}
|
|
2537
|
+
.op-timeentry__handle--start { inset-inline-start: 0; }
|
|
2538
|
+
.op-timeentry__handle--end { inset-inline-end: 0; }
|
|
2539
|
+
.op-timeentry__handle::after {
|
|
2540
|
+
content: '';
|
|
2541
|
+
position: absolute;
|
|
2542
|
+
inset-block: 25%;
|
|
2543
|
+
inset-inline-start: 40%;
|
|
2544
|
+
inline-size: var(--op-timeentry-grip);
|
|
2545
|
+
border-radius: var(--op-timeentry-grip);
|
|
2546
|
+
background: currentColor;
|
|
2547
|
+
opacity: 0.6;
|
|
2548
|
+
}
|
|
2549
|
+
.op-timeentry__ghost {
|
|
2550
|
+
--op-timeline-c: var(--op-color-primary);
|
|
2551
|
+
position: absolute;
|
|
2552
|
+
inset-block: 0;
|
|
2553
|
+
border: var(--op-border-width) dashed var(--op-timeline-c);
|
|
2554
|
+
border-radius: var(--op-radius);
|
|
2555
|
+
background: color-mix(in srgb, var(--op-timeline-c) 25%, transparent);
|
|
2556
|
+
pointer-events: none;
|
|
2557
|
+
}
|
|
2558
|
+
.op-timeentry__cursor {
|
|
2559
|
+
position: absolute;
|
|
2560
|
+
inset-block: 0;
|
|
2561
|
+
inline-size: var(--op-timeentry-cursor);
|
|
2562
|
+
background: var(--op-color-focus);
|
|
2563
|
+
pointer-events: none;
|
|
2564
|
+
}
|
|
2565
|
+
.op-timeentry__lane.is-under .op-timeline__lane-name { color: var(--op-color-warning); }
|
|
2566
|
+
.op-timeentry__lane.is-met .op-timeline__lane-name { color: var(--op-color-success); }
|
|
2567
|
+
.op-timeentry__lane.is-over .op-timeline__lane-name { color: var(--op-color-danger); }
|
|
2568
|
+
.op-timeentry__grand {
|
|
2569
|
+
display: flex;
|
|
2570
|
+
justify-content: space-between;
|
|
2571
|
+
gap: var(--op-space-3);
|
|
2572
|
+
padding: var(--op-space-2);
|
|
2573
|
+
border-block-start: var(--op-border-width) solid var(--op-color-border-strong);
|
|
2574
|
+
font-size: var(--op-font-size-sm);
|
|
2575
|
+
}
|
|
2576
|
+
|
|
2577
|
+
.op-timeline--vertical.op-timeline--entry .op-timeline__track {
|
|
2578
|
+
touch-action: auto;
|
|
2579
|
+
}
|
|
2580
|
+
.op-timeline--vertical .op-timeentry__handle {
|
|
2581
|
+
inset-block: auto;
|
|
2582
|
+
inset-inline: 0;
|
|
2583
|
+
inline-size: auto;
|
|
2584
|
+
block-size: var(--op-timeentry-handle);
|
|
2585
|
+
cursor: ns-resize;
|
|
2586
|
+
}
|
|
2587
|
+
.op-timeline--vertical .op-timeentry__handle--start { inset-block-start: 0; }
|
|
2588
|
+
.op-timeline--vertical .op-timeentry__handle--end { inset-block-end: 0; }
|
|
2589
|
+
.op-timeline--vertical .op-timeentry__handle::after {
|
|
2590
|
+
inset-block: 40% auto;
|
|
2591
|
+
inset-inline: 25%;
|
|
2592
|
+
inline-size: auto;
|
|
2593
|
+
block-size: var(--op-timeentry-grip);
|
|
2594
|
+
}
|
|
2595
|
+
.op-timeline--vertical .op-timeentry__ghost {
|
|
2596
|
+
inset-block: auto;
|
|
2597
|
+
inset-inline: 0;
|
|
2598
|
+
}
|
|
2599
|
+
.op-timeline--vertical .op-timeentry__cursor {
|
|
2600
|
+
inset-block: auto;
|
|
2601
|
+
inset-inline: 0;
|
|
2602
|
+
inline-size: auto;
|
|
2603
|
+
block-size: var(--op-timeentry-cursor);
|
|
2604
|
+
}
|
|
2605
|
+
.op-timeline--vertical .op-timeentry__grand {
|
|
2606
|
+
grid-column: 1 / -1;
|
|
2607
|
+
}
|
|
2608
|
+
}
|
|
2609
|
+
|
|
2365
2610
|
@layer optikos {
|
|
2366
2611
|
:root {
|
|
2367
2612
|
--op-timeline-marker: 0.875rem;
|
|
2368
2613
|
--op-timeline-when-width: 8rem;
|
|
2369
2614
|
--op-timeline-lane-width: 8rem;
|
|
2615
|
+
--op-timeline-axis-width: 4rem;
|
|
2616
|
+
--op-timeline-height: 32rem;
|
|
2370
2617
|
--op-timeline-bar-height: 1.75rem;
|
|
2371
2618
|
--op-timeline-line: 2px;
|
|
2372
2619
|
}
|
|
@@ -2501,6 +2748,49 @@
|
|
|
2501
2748
|
background: var(--op-color-danger);
|
|
2502
2749
|
pointer-events: none;
|
|
2503
2750
|
}
|
|
2751
|
+
|
|
2752
|
+
.op-timeline--vertical.op-timeline--range {
|
|
2753
|
+
display: grid;
|
|
2754
|
+
gap: var(--op-space-2);
|
|
2755
|
+
}
|
|
2756
|
+
.op-timeline--vertical .op-timeline__axis,
|
|
2757
|
+
.op-timeline--vertical .op-timeline__lane {
|
|
2758
|
+
display: flex;
|
|
2759
|
+
flex-direction: column;
|
|
2760
|
+
align-items: stretch;
|
|
2761
|
+
border-block-start: 0;
|
|
2762
|
+
border-inline-start: var(--op-border-width) solid var(--op-color-border);
|
|
2763
|
+
padding-block: 0;
|
|
2764
|
+
padding-inline: var(--op-space-1);
|
|
2765
|
+
min-inline-size: 0;
|
|
2766
|
+
}
|
|
2767
|
+
.op-timeline--vertical .op-timeline__axis {
|
|
2768
|
+
border-inline-start: 0;
|
|
2769
|
+
}
|
|
2770
|
+
.op-timeline--vertical .op-timeline__lane-name {
|
|
2771
|
+
text-align: center;
|
|
2772
|
+
padding-block-end: var(--op-space-1);
|
|
2773
|
+
}
|
|
2774
|
+
.op-timeline--vertical .op-timeline__track,
|
|
2775
|
+
.op-timeline--vertical .op-timeline__axis .op-timeline__track {
|
|
2776
|
+
block-size: var(--op-timeline-height);
|
|
2777
|
+
}
|
|
2778
|
+
.op-timeline--vertical .op-timeline__tick {
|
|
2779
|
+
inset-inline-start: 0;
|
|
2780
|
+
transform: translateY(-50%);
|
|
2781
|
+
}
|
|
2782
|
+
.op-timeline--vertical .op-timeline__bar {
|
|
2783
|
+
inset-block: auto;
|
|
2784
|
+
inset-inline: 0;
|
|
2785
|
+
align-items: flex-start;
|
|
2786
|
+
padding-block: var(--op-space-1);
|
|
2787
|
+
}
|
|
2788
|
+
.op-timeline--vertical .op-timeline__now {
|
|
2789
|
+
inset-block: auto;
|
|
2790
|
+
inset-inline: 0;
|
|
2791
|
+
inline-size: auto;
|
|
2792
|
+
block-size: var(--op-timeline-line);
|
|
2793
|
+
}
|
|
2504
2794
|
}
|
|
2505
2795
|
|
|
2506
2796
|
@layer optikos {
|
|
@@ -2743,6 +3033,67 @@
|
|
|
2743
3033
|
}
|
|
2744
3034
|
}
|
|
2745
3035
|
|
|
3036
|
+
@layer optikos {
|
|
3037
|
+
:root {
|
|
3038
|
+
--op-alert-accent: 0.25rem;
|
|
3039
|
+
--op-alert-icon-offset: 0.125em;
|
|
3040
|
+
}
|
|
3041
|
+
.op-alert {
|
|
3042
|
+
--_tone: var(--op-color-info);
|
|
3043
|
+
--_soft: var(--op-color-info-soft);
|
|
3044
|
+
display: flex;
|
|
3045
|
+
align-items: flex-start;
|
|
3046
|
+
gap: var(--op-space-3);
|
|
3047
|
+
padding: var(--op-space-3) var(--op-space-4);
|
|
3048
|
+
color: var(--op-alert-fg, var(--op-color-fg));
|
|
3049
|
+
background: var(--op-alert-bg, var(--_soft));
|
|
3050
|
+
border: var(--op-border-width) solid var(--_tone);
|
|
3051
|
+
border-inline-start-width: var(--op-alert-accent);
|
|
3052
|
+
border-radius: var(--op-alert-radius, var(--op-radius));
|
|
3053
|
+
font-family: var(--op-font-family);
|
|
3054
|
+
min-inline-size: 0;
|
|
3055
|
+
}
|
|
3056
|
+
.op-alert--success { --_tone: var(--op-color-success); --_soft: var(--op-color-success-soft); }
|
|
3057
|
+
.op-alert--warning { --_tone: var(--op-color-warning); --_soft: var(--op-color-warning-soft); }
|
|
3058
|
+
.op-alert--danger { --_tone: var(--op-color-danger); --_soft: var(--op-color-danger-soft); }
|
|
3059
|
+
.op-alert[hidden] {
|
|
3060
|
+
display: none;
|
|
3061
|
+
}
|
|
3062
|
+
.op-alert__icon {
|
|
3063
|
+
display: inline-flex;
|
|
3064
|
+
flex: none;
|
|
3065
|
+
margin-block-start: var(--op-alert-icon-offset);
|
|
3066
|
+
color: var(--_tone);
|
|
3067
|
+
}
|
|
3068
|
+
.op-alert__body {
|
|
3069
|
+
flex: 1;
|
|
3070
|
+
min-inline-size: 0;
|
|
3071
|
+
}
|
|
3072
|
+
.op-alert__title {
|
|
3073
|
+
font-weight: var(--op-font-weight-bold);
|
|
3074
|
+
}
|
|
3075
|
+
.op-alert__text {
|
|
3076
|
+
overflow-wrap: anywhere;
|
|
3077
|
+
}
|
|
3078
|
+
.op-alert__close {
|
|
3079
|
+
display: inline-flex;
|
|
3080
|
+
flex: none;
|
|
3081
|
+
padding: var(--op-space-1);
|
|
3082
|
+
color: inherit;
|
|
3083
|
+
background: none;
|
|
3084
|
+
border: 0;
|
|
3085
|
+
border-radius: var(--op-radius-sm);
|
|
3086
|
+
cursor: pointer;
|
|
3087
|
+
}
|
|
3088
|
+
.op-alert__close:hover {
|
|
3089
|
+
background: color-mix(in srgb, var(--_tone) 15%, transparent);
|
|
3090
|
+
}
|
|
3091
|
+
.op-alert__close:focus-visible {
|
|
3092
|
+
outline: var(--op-focus-width) solid var(--op-color-focus);
|
|
3093
|
+
outline-offset: var(--op-focus-offset);
|
|
3094
|
+
}
|
|
3095
|
+
}
|
|
3096
|
+
|
|
2746
3097
|
@layer optikos {
|
|
2747
3098
|
:root {
|
|
2748
3099
|
--op-checkbox-size: 1.125rem;
|
|
@@ -4060,6 +4411,20 @@
|
|
|
4060
4411
|
opacity: 0.4;
|
|
4061
4412
|
cursor: default;
|
|
4062
4413
|
}
|
|
4414
|
+
.op-carousel__footer {
|
|
4415
|
+
display: flex;
|
|
4416
|
+
flex-direction: column;
|
|
4417
|
+
align-items: center;
|
|
4418
|
+
gap: var(--op-space-1);
|
|
4419
|
+
}
|
|
4420
|
+
.op-carousel__footer:not(:has(:not([hidden]))) {
|
|
4421
|
+
display: none;
|
|
4422
|
+
}
|
|
4423
|
+
.op-carousel__caption {
|
|
4424
|
+
color: var(--op-color-fg-muted);
|
|
4425
|
+
font-size: var(--op-font-size-sm);
|
|
4426
|
+
text-align: center;
|
|
4427
|
+
}
|
|
4063
4428
|
.op-carousel__bar {
|
|
4064
4429
|
display: flex;
|
|
4065
4430
|
align-items: center;
|
|
@@ -4069,6 +4434,49 @@
|
|
|
4069
4434
|
.op-carousel__bar:not(:has(:not([hidden]))) {
|
|
4070
4435
|
display: none;
|
|
4071
4436
|
}
|
|
4437
|
+
.op-carousel--fade .op-carousel__track {
|
|
4438
|
+
display: grid;
|
|
4439
|
+
overflow: hidden;
|
|
4440
|
+
scroll-snap-type: none;
|
|
4441
|
+
}
|
|
4442
|
+
.op-carousel--fade .op-carousel__track > * {
|
|
4443
|
+
grid-area: 1 / 1;
|
|
4444
|
+
opacity: 0;
|
|
4445
|
+
visibility: hidden;
|
|
4446
|
+
transition: opacity var(--op-carousel-fade, 600ms) var(--op-easing), visibility 0s linear var(--op-carousel-fade, 600ms);
|
|
4447
|
+
}
|
|
4448
|
+
.op-carousel--fade .op-carousel__track > .is-active {
|
|
4449
|
+
opacity: 1;
|
|
4450
|
+
visibility: visible;
|
|
4451
|
+
transition: opacity var(--op-carousel-fade, 600ms) var(--op-easing);
|
|
4452
|
+
}
|
|
4453
|
+
.op-carousel--overlay {
|
|
4454
|
+
position: relative;
|
|
4455
|
+
}
|
|
4456
|
+
.op-carousel--overlay .op-carousel__footer {
|
|
4457
|
+
position: absolute;
|
|
4458
|
+
inset-inline: 0;
|
|
4459
|
+
inset-block-end: 0;
|
|
4460
|
+
padding: var(--op-space-6) var(--op-space-3) var(--op-space-3);
|
|
4461
|
+
color: var(--op-carousel-overlay-fg, var(--op-color-surface));
|
|
4462
|
+
background: linear-gradient(transparent, var(--op-carousel-scrim, color-mix(in srgb, var(--op-color-fg) 65%, transparent)));
|
|
4463
|
+
border-end-start-radius: var(--op-carousel-radius, var(--op-radius));
|
|
4464
|
+
border-end-end-radius: var(--op-carousel-radius, var(--op-radius));
|
|
4465
|
+
pointer-events: none;
|
|
4466
|
+
}
|
|
4467
|
+
.op-carousel--overlay .op-carousel__footer > * {
|
|
4468
|
+
pointer-events: auto;
|
|
4469
|
+
}
|
|
4470
|
+
.op-carousel--overlay .op-carousel__caption,
|
|
4471
|
+
.op-carousel--overlay .op-carousel__toggle {
|
|
4472
|
+
color: inherit;
|
|
4473
|
+
}
|
|
4474
|
+
.op-carousel--overlay .op-carousel__dot {
|
|
4475
|
+
background: color-mix(in srgb, currentColor 45%, transparent);
|
|
4476
|
+
}
|
|
4477
|
+
.op-carousel--overlay .op-carousel__dot[aria-current] {
|
|
4478
|
+
background: currentColor;
|
|
4479
|
+
}
|
|
4072
4480
|
.op-carousel__dots {
|
|
4073
4481
|
display: flex;
|
|
4074
4482
|
gap: var(--op-space-1);
|
|
@@ -4111,6 +4519,9 @@
|
|
|
4111
4519
|
.op-carousel__track {
|
|
4112
4520
|
scroll-behavior: auto;
|
|
4113
4521
|
}
|
|
4522
|
+
.op-carousel--fade .op-carousel__track > * {
|
|
4523
|
+
transition: none;
|
|
4524
|
+
}
|
|
4114
4525
|
}
|
|
4115
4526
|
}
|
|
4116
4527
|
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Grid, type GridConfig } from '../components/data/grid/grid.js';
|
|
2
|
+
import { Form, type FormConfig } from '../components/form/form/form.js';
|
|
3
|
+
import type { FilterField } from '../components/data/filterbuilder/filterbuilder.js';
|
|
4
|
+
import type { Column } from '../data/column.js';
|
|
5
|
+
import type { Component } from '../core/component.js';
|
|
6
|
+
export type FieldKind = 'text' | 'email' | 'area' | 'number' | 'money' | 'duration' | 'date' | 'datetime' | 'select' | 'bool';
|
|
7
|
+
type Cfg = Record<string, any>;
|
|
8
|
+
export interface FieldSpec {
|
|
9
|
+
/** The record's property. */
|
|
10
|
+
name: string;
|
|
11
|
+
/** Default: the name as words (`unitPrice` → "Unit price"). */
|
|
12
|
+
label?: string;
|
|
13
|
+
/** Default `text`. `duration` is a number of minutes, shown as `7h 30m`. */
|
|
14
|
+
type?: FieldKind;
|
|
15
|
+
/** For `select`. */
|
|
16
|
+
options?: Array<string | number | {
|
|
17
|
+
value: string | number;
|
|
18
|
+
label: string;
|
|
19
|
+
}>;
|
|
20
|
+
/** Picks the value in a lookup window: a LookupDef or the name given to `registerLookup`. */
|
|
21
|
+
lookup?: Cfg | string;
|
|
22
|
+
required?: boolean;
|
|
23
|
+
readonly?: boolean;
|
|
24
|
+
/** A band over the grid header and a section of the form. */
|
|
25
|
+
group?: string;
|
|
26
|
+
/** Total of the (filtered) rows in the grid: the starting total of the `columnTotals()` plugin. */
|
|
27
|
+
summary?: Column['summary'];
|
|
28
|
+
/** Grid column width in px. */
|
|
29
|
+
width?: number;
|
|
30
|
+
/** Leaves the field out of some of the builds. */
|
|
31
|
+
hide?: Array<'grid' | 'form' | 'filter'>;
|
|
32
|
+
/** Overrides for what each build makes. */
|
|
33
|
+
column?: Partial<Column>;
|
|
34
|
+
field?: Cfg;
|
|
35
|
+
filter?: Partial<FilterField>;
|
|
36
|
+
}
|
|
37
|
+
/** Grid columns: right-aligned numbers and money, formatted dates and booleans. */
|
|
38
|
+
export declare function buildColumns(specs: FieldSpec[]): Column[];
|
|
39
|
+
/** Form fields (instances), in order. */
|
|
40
|
+
export declare function buildFields(specs: FieldSpec[]): Component[];
|
|
41
|
+
/** Fields for a `FilterBuilder`; `bool` filters as a Yes/No choice. */
|
|
42
|
+
export declare function buildFilterFields(specs: FieldSpec[]): FilterField[];
|
|
43
|
+
/** A `Grid` whose columns come from the specs. `cfg` adds or overrides anything (`store`, `selection`, ...). */
|
|
44
|
+
export declare const buildGrid: (specs: FieldSpec[], cfg?: Partial<GridConfig>) => Grid<any>;
|
|
45
|
+
/** A `Form` with the fields in `columns` columns (default 2); specs with a `group` go in a `FieldSet` of that title. */
|
|
46
|
+
export declare function buildForm(specs: FieldSpec[], cfg?: FormConfig & {
|
|
47
|
+
columns?: number;
|
|
48
|
+
}): Form;
|
|
49
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { buildColumns, buildFields, buildFilterFields, buildGrid, buildForm, type FieldSpec, type FieldKind } from './build.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../components/feedback/alert/alert.js';
|
|
@@ -4,11 +4,21 @@ export interface LabelConfig extends ComponentConfig {
|
|
|
4
4
|
/** Id of the field this label names (renders a `<label for>`). */
|
|
5
5
|
for?: string;
|
|
6
6
|
variant?: 'default' | 'muted' | 'title';
|
|
7
|
+
/** The element: `h1`…`h6` make it a heading, `p` a paragraph. Default `span` (`label` with `for`). */
|
|
8
|
+
tag?: 'span' | 'div' | 'p' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
|
|
9
|
+
/** An icon before the text. */
|
|
10
|
+
icon?: string;
|
|
11
|
+
/** An image before the text (a logo): `alt` names it (empty for a decorative one). */
|
|
12
|
+
src?: string;
|
|
13
|
+
alt?: string;
|
|
7
14
|
}
|
|
8
15
|
export declare class Label extends Component<LabelConfig> {
|
|
9
16
|
protected baseCls: string;
|
|
10
|
-
protected build(): HTMLLabelElement | HTMLSpanElement;
|
|
17
|
+
protected build(): HTMLDivElement | HTMLHeadingElement | HTMLLabelElement | HTMLParagraphElement | HTMLSpanElement;
|
|
11
18
|
protected onRender(): void;
|
|
19
|
+
private paint;
|
|
12
20
|
setText(text: string): void;
|
|
21
|
+
setIcon(icon: string | undefined): void;
|
|
22
|
+
setImage(src: string | undefined, alt?: string): void;
|
|
13
23
|
setVariant(variant: NonNullable<LabelConfig['variant']>): void;
|
|
14
24
|
}
|
|
@@ -14,6 +14,10 @@ export interface StatConfig extends ComponentConfig {
|
|
|
14
14
|
icon?: string;
|
|
15
15
|
/** Numbers for a sparkline beside the value. */
|
|
16
16
|
trend?: number[];
|
|
17
|
+
/** Makes the tile a link. */
|
|
18
|
+
href?: string;
|
|
19
|
+
/** Makes the tile a button (focusable, Enter/Space): drill down, open a detail. */
|
|
20
|
+
handler?: (stat: Stat, ev: Event) => void;
|
|
17
21
|
}
|
|
18
22
|
/** A KPI tile: a label, a big value, the change since last time and an optional sparkline. */
|
|
19
23
|
export declare class Stat extends Component<StatConfig> {
|
|
@@ -23,9 +27,11 @@ export declare class Stat extends Component<StatConfig> {
|
|
|
23
27
|
private deltaEl;
|
|
24
28
|
private captionEl;
|
|
25
29
|
private chart?;
|
|
26
|
-
protected build(): HTMLDivElement;
|
|
30
|
+
protected build(): HTMLAnchorElement | HTMLDivElement;
|
|
27
31
|
protected onRender(): void;
|
|
28
32
|
setLabel(label: string): void;
|
|
33
|
+
/** An interactive tile reads as one sentence: "Open orders: 12". */
|
|
34
|
+
private name;
|
|
29
35
|
setValue(value: number | string | null): void;
|
|
30
36
|
setDelta(delta: number | undefined): void;
|
|
31
37
|
setCaption(caption: string): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../components/data/columntotals/columntotals.js';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Model } from '../../../data/model.js';
|
|
2
|
+
import type { GridPlugin } from '../grid/grid.js';
|
|
3
|
+
/** An operation offered in the column menu besides the built-in ones. */
|
|
4
|
+
export interface TotalOperation {
|
|
5
|
+
text: string;
|
|
6
|
+
/** The column's values and the records of every filtered row. */
|
|
7
|
+
run: (values: any[], recs: Model[]) => unknown;
|
|
8
|
+
}
|
|
9
|
+
export interface ColumnTotalsOptions {
|
|
10
|
+
/** Your own operations (a median, a weighted mean...). Offered on every column. */
|
|
11
|
+
operations?: TotalOperation[];
|
|
12
|
+
/**
|
|
13
|
+
* Where the answer goes: `'bar'` (default) keeps it in a bar under the grid; `'modal'` answers in a dialog and `'toast'` in a
|
|
14
|
+
* notice, once, and nothing stays on the grid.
|
|
15
|
+
*/
|
|
16
|
+
show?: 'bar' | 'modal' | 'toast';
|
|
17
|
+
/** `bar` only: under the grid (default) or `'top'`, right under the header, above the rows (a row of the grid itself). */
|
|
18
|
+
position?: 'bottom' | 'top';
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* A button on every column header opens a menu of totals (sum, average, minimum, maximum, count, your own); the choice
|
|
22
|
+
* shows in a bar under the grid, over every filtered row. A column's `summary` is where it starts and where it is kept.
|
|
23
|
+
*/
|
|
24
|
+
export declare function columnTotals(options?: ColumnTotalsOptions): GridPlugin;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { GridPlugin } from '../grid/grid.js';
|
|
2
|
+
export type ExportBarAction = 'csv' | 'xlsx' | 'page' | 'print';
|
|
3
|
+
export interface ExportBarOptions {
|
|
4
|
+
/** Each button: `false` leaves it out. `csv`, `xlsx` and `print` default to true; `page` (CSV of the page on screen) to true on a paged grid. */
|
|
5
|
+
csv?: boolean;
|
|
6
|
+
xlsx?: boolean;
|
|
7
|
+
page?: boolean;
|
|
8
|
+
print?: boolean;
|
|
9
|
+
/** File name without extension. Default `export`. */
|
|
10
|
+
filename?: string;
|
|
11
|
+
/** A heading above the printed table. */
|
|
12
|
+
title?: string;
|
|
13
|
+
/** Show the text beside the icons. Default false (icons with a tooltip). */
|
|
14
|
+
labels?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface ExportBar extends GridPlugin {
|
|
17
|
+
setVisible(action: ExportBarAction, visible: boolean): void;
|
|
18
|
+
setDisabled(action: ExportBarAction, disabled: boolean): void;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Export and print buttons inside the grid, in a row with the pager: `plugins: [exportBar({ print: false })]`. They run
|
|
22
|
+
* `exportGrid` and `printGrid`, which still work on their own from your own buttons.
|
|
23
|
+
*/
|
|
24
|
+
export declare function exportBar(options?: ExportBarOptions): ExportBar;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Grid } from './grid.js';
|
|
2
|
+
/**
|
|
3
|
+
* The row under a grid where the pager and the plugins' icon buttons sit side by side. Each plugin adds its own group;
|
|
4
|
+
* the last one out gives the pager back.
|
|
5
|
+
*/
|
|
6
|
+
export declare function addFooterGroup(grid: Grid, group: HTMLElement): () => void;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Model } from '../../../data/model.js';
|
|
2
|
+
import type { Grid } from '../grid/grid.js';
|
|
3
|
+
export type GroupingControl = 'expand' | 'collapse' | 'by';
|
|
4
|
+
/** A way to group, offered in the "Group by" menu: a record field or any function of the record. */
|
|
5
|
+
export interface GroupChoice {
|
|
6
|
+
text: string;
|
|
7
|
+
field?: string;
|
|
8
|
+
by?: (rec: Model) => unknown;
|
|
9
|
+
}
|
|
10
|
+
interface Target {
|
|
11
|
+
expandAll(): void;
|
|
12
|
+
collapseAll(): void;
|
|
13
|
+
setGroupBy(by: string | ((rec: Model) => unknown) | null): void;
|
|
14
|
+
}
|
|
15
|
+
/** Icon buttons in the grid's footer row (beside the pager): expand all, collapse all and a "Group by" menu. */
|
|
16
|
+
export declare function groupingControls(grid: Grid, target: Target, o: {
|
|
17
|
+
expand?: boolean;
|
|
18
|
+
collapse?: boolean;
|
|
19
|
+
by?: boolean;
|
|
20
|
+
choices: GroupChoice[];
|
|
21
|
+
current?: string;
|
|
22
|
+
}): {
|
|
23
|
+
set: (a: GroupingControl, visible: boolean) => void | undefined;
|
|
24
|
+
disable: (a: GroupingControl, disabled: boolean) => void | undefined;
|
|
25
|
+
destroy(): void;
|
|
26
|
+
};
|
|
27
|
+
export {};
|