optikos 0.1.0 → 0.2.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.
- package/CHANGELOG.md +118 -0
- package/README.md +13 -11
- package/dist/chunk-23XLG2EM.js +2 -0
- package/dist/{chunk-666O2GKD.js.map → chunk-23XLG2EM.js.map} +1 -1
- package/dist/chunk-27UZFEXD.js +2 -0
- package/dist/chunk-27UZFEXD.js.map +7 -0
- package/dist/chunk-2ZRNGG2N.js +2 -0
- package/dist/chunk-2ZRNGG2N.js.map +7 -0
- package/dist/chunk-2ZUZ5HDL.js +2 -0
- package/dist/chunk-2ZUZ5HDL.js.map +7 -0
- package/dist/chunk-3DBEZGOY.js +2 -0
- package/dist/chunk-3DBEZGOY.js.map +7 -0
- package/dist/chunk-3S24ZRPK.js +2 -0
- package/dist/chunk-3S24ZRPK.js.map +7 -0
- package/dist/chunk-3TAW4AKH.js +2 -0
- package/dist/chunk-3TAW4AKH.js.map +7 -0
- package/dist/chunk-4EZJ5FKJ.js +2 -0
- package/dist/{chunk-IHAYOSBR.js.map → chunk-4EZJ5FKJ.js.map} +1 -1
- package/dist/chunk-4LZZ244E.js +2 -0
- package/dist/chunk-4LZZ244E.js.map +7 -0
- package/dist/chunk-4SYIIX5A.js +2 -0
- package/dist/chunk-4SYIIX5A.js.map +7 -0
- package/dist/chunk-5BC72727.js +2 -0
- package/dist/chunk-5BC72727.js.map +7 -0
- package/dist/chunk-5DJTP53N.js +2 -0
- package/dist/{chunk-ODWPBBVL.js.map → chunk-5DJTP53N.js.map} +1 -1
- package/dist/{chunk-NWTTHDIM.js → chunk-5JEXM5S7.js} +2 -2
- package/dist/chunk-5Q76ACVI.js +2 -0
- package/dist/{chunk-O4DCHALR.js.map → chunk-5Q76ACVI.js.map} +1 -1
- package/dist/chunk-5QUY72FX.js +2 -0
- package/dist/chunk-5QUY72FX.js.map +7 -0
- package/dist/chunk-5YS7OD5E.js +2 -0
- package/dist/{chunk-GZNQPENR.js.map → chunk-5YS7OD5E.js.map} +1 -1
- package/dist/{chunk-NV5AIBQP.js → chunk-6VBK2I5B.js} +2 -2
- package/dist/{chunk-ZYUXCZX7.js → chunk-7KMIFXHZ.js} +2 -2
- package/dist/{chunk-IYPKPLCU.js → chunk-A2NKDOYN.js} +2 -2
- package/dist/chunk-A2NKDOYN.js.map +7 -0
- package/dist/chunk-ATFJ7PNA.js +2 -0
- package/dist/chunk-ATFJ7PNA.js.map +7 -0
- package/dist/chunk-BXYWVRKJ.js +2 -0
- package/dist/chunk-BXYWVRKJ.js.map +7 -0
- package/dist/chunk-CKXS375P.js +2 -0
- package/dist/chunk-CKXS375P.js.map +7 -0
- package/dist/chunk-CUN5QO4T.js +2 -0
- package/dist/{chunk-4DHQKECB.js.map → chunk-CUN5QO4T.js.map} +1 -1
- package/dist/chunk-DBMWS3O5.js +2 -0
- package/dist/chunk-DBMWS3O5.js.map +7 -0
- package/dist/chunk-E4VNLYO2.js +2 -0
- package/dist/chunk-E4VNLYO2.js.map +7 -0
- package/dist/chunk-EDUMAMK4.js +2 -0
- package/dist/chunk-EDUMAMK4.js.map +7 -0
- package/dist/chunk-ELYARUCN.js +2 -0
- package/dist/{chunk-Z25NC4CS.js → chunk-EV73ADN2.js} +2 -2
- package/dist/{chunk-LV6HXFHU.js → chunk-FEHGU6EP.js} +3 -3
- package/dist/chunk-FEHGU6EP.js.map +7 -0
- package/dist/chunk-FHM5NUS4.js +3 -0
- package/dist/chunk-FHM5NUS4.js.map +7 -0
- package/dist/chunk-G2DAD3MQ.js +2 -0
- package/dist/chunk-G2DAD3MQ.js.map +7 -0
- package/dist/chunk-G2KUK6AT.js +2 -0
- package/dist/chunk-GBPLNXMP.js +2 -0
- package/dist/chunk-GBPLNXMP.js.map +7 -0
- package/dist/{chunk-LBCWEWPN.js → chunk-GNU4VOOE.js} +2 -2
- package/dist/{chunk-IW7PK4VS.js → chunk-GZ7X34QP.js} +2 -2
- package/dist/chunk-HOF4JGMQ.js +2 -0
- package/dist/chunk-HOF4JGMQ.js.map +7 -0
- package/dist/chunk-HXDTGP2K.js +2 -0
- package/dist/chunk-HXDTGP2K.js.map +7 -0
- package/dist/{chunk-QEQIJAAB.js → chunk-I4SP6JTU.js} +2 -2
- package/dist/chunk-IHE2MQ3W.js +2 -0
- package/dist/{chunk-OW2ZSMGS.js.map → chunk-IHE2MQ3W.js.map} +1 -1
- package/dist/chunk-II6ITOA6.js +2 -0
- package/dist/chunk-II6ITOA6.js.map +7 -0
- package/dist/chunk-JBLRAM7Z.js +2 -0
- package/dist/{chunk-JZNEB7A7.js.map → chunk-JBLRAM7Z.js.map} +1 -1
- package/dist/{chunk-4SUKNSCY.js → chunk-JI265XFO.js} +2 -2
- package/dist/chunk-JK74QK3M.js +2 -0
- package/dist/chunk-JK74QK3M.js.map +7 -0
- package/dist/chunk-JOFQJGZK.js +2 -0
- package/dist/chunk-JOFQJGZK.js.map +7 -0
- package/dist/chunk-KCEUD232.js +2 -0
- package/dist/chunk-KCEUD232.js.map +7 -0
- package/dist/chunk-KLLAY2IM.js +2 -0
- package/dist/chunk-KLLAY2IM.js.map +7 -0
- package/dist/chunk-LBJSMXLV.js +2 -0
- package/dist/chunk-LBJSMXLV.js.map +7 -0
- package/dist/chunk-LQRFNQ2N.js +2 -0
- package/dist/chunk-LQRFNQ2N.js.map +7 -0
- package/dist/{chunk-NDBFYIL6.js → chunk-LW2WRUVL.js} +2 -2
- package/dist/{chunk-NDBFYIL6.js.map → chunk-LW2WRUVL.js.map} +2 -2
- package/dist/chunk-M242VYZA.js +2 -0
- package/dist/{chunk-XVIC24AW.js.map → chunk-M242VYZA.js.map} +1 -1
- package/dist/chunk-MB3MU6HR.js +2 -0
- package/dist/chunk-MB3MU6HR.js.map +7 -0
- package/dist/chunk-MW3RWBZ7.js +2 -0
- package/dist/chunk-MW3RWBZ7.js.map +7 -0
- package/dist/chunk-NXSTUFS7.js +2 -0
- package/dist/chunk-NXSTUFS7.js.map +7 -0
- package/dist/chunk-OEAXCCVM.js +2 -0
- package/dist/chunk-OEAXCCVM.js.map +7 -0
- package/dist/chunk-OGRFQTXA.js +2 -0
- package/dist/chunk-OGRFQTXA.js.map +7 -0
- package/dist/chunk-REW4LR46.js +2 -0
- package/dist/chunk-REW4LR46.js.map +7 -0
- package/dist/chunk-RNN55473.js +2 -0
- package/dist/chunk-RNN55473.js.map +7 -0
- package/dist/{chunk-6NJW7QFD.js → chunk-SA53QUBF.js} +2 -2
- package/dist/chunk-TIPK3SCJ.js +2 -0
- package/dist/chunk-TIPK3SCJ.js.map +7 -0
- package/dist/{chunk-TBLICXWW.js → chunk-TOLTUOZS.js} +2 -2
- package/dist/{chunk-DXO3UJKL.js → chunk-TZOQWCVH.js} +2 -2
- package/dist/chunk-VF7BGP6L.js +2 -0
- package/dist/chunk-VF7BGP6L.js.map +7 -0
- package/dist/chunk-VU3GIDZ3.js +2 -0
- package/dist/chunk-VU3GIDZ3.js.map +7 -0
- package/dist/{chunk-SNTHW4K2.js → chunk-W3H7GTJY.js} +2 -2
- package/dist/{chunk-ZHVSHDLH.js → chunk-XHOBNSBO.js} +2 -2
- package/dist/chunk-XX2MVWFS.js +4 -0
- package/dist/chunk-XX2MVWFS.js.map +7 -0
- package/dist/chunk-XYZ6VZ5T.js +2 -0
- package/dist/chunk-XYZ6VZ5T.js.map +7 -0
- package/dist/chunk-YBAYEU25.js +2 -0
- package/dist/chunk-YBAYEU25.js.map +7 -0
- package/dist/chunk-YHEMA56R.js +2 -0
- package/dist/{chunk-5GNEFX6F.js.map → chunk-YHEMA56R.js.map} +1 -1
- package/dist/chunk-Z2JBUHKA.js +2 -0
- package/dist/chunk-Z2JBUHKA.js.map +7 -0
- package/dist/{chunk-6O2BXCRN.js → chunk-Z2Z52GFT.js} +2 -2
- package/dist/chunk-ZPPELYNJ.js +2 -0
- package/dist/chunk-ZPPELYNJ.js.map +7 -0
- package/dist/chunk-ZVK4L5GK.js +2 -0
- package/dist/chunk-ZVK4L5GK.js.map +7 -0
- package/dist/chunk-ZWNQREWS.js +2 -0
- package/dist/chunk-ZWNQREWS.js.map +7 -0
- package/dist/components/badge.js +2 -0
- package/dist/components/badge.js.map +7 -0
- package/dist/components/breadcrumb.js +1 -1
- package/dist/components/button.js +1 -1
- package/dist/components/calendar.js +1 -1
- package/dist/components/cellediting.js +2 -0
- package/dist/components/cellediting.js.map +7 -0
- package/dist/components/chat.js +1 -1
- package/dist/components/checkbox.js +1 -1
- package/dist/components/checkboxgroup.js +2 -0
- package/dist/components/checkboxgroup.js.map +7 -0
- package/dist/components/chip.js +2 -0
- package/dist/components/chip.js.map +7 -0
- package/dist/components/codeviewer.js +2 -0
- package/dist/components/codeviewer.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/dial.js +2 -0
- package/dist/components/dial.js.map +7 -0
- package/dist/components/dropdown.js +1 -1
- package/dist/components/fieldgroup.js +2 -0
- package/dist/components/fieldgroup.js.map +7 -0
- package/dist/components/fieldlist.js +2 -0
- package/dist/components/fieldlist.js.map +7 -0
- 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 +2 -0
- package/dist/components/formactions.js.map +7 -0
- package/dist/components/formerrors.js +2 -0
- package/dist/components/formerrors.js.map +7 -0
- package/dist/components/formsection.js +2 -0
- package/dist/components/formsection.js.map +7 -0
- package/dist/components/grid.js +1 -1
- package/dist/components/icon.js +1 -1
- package/dist/components/inputgroup.js +2 -0
- package/dist/components/inputgroup.js.map +7 -0
- package/dist/components/label.js +1 -1
- package/dist/components/listbox.js +1 -1
- package/dist/components/lookupfield.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/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/slider.js +1 -1
- package/dist/components/spacer.js +1 -1
- package/dist/components/spinner.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/toast.js +1 -1
- package/dist/components/toggle.js +2 -0
- package/dist/components/toggle.js.map +7 -0
- package/dist/components/toolbar.js +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/components/tree.js +2 -0
- package/dist/components/tree.js.map +7 -0
- 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/badge.css +39 -0
- package/dist/css/base.css +71 -51
- package/dist/css/button.css +2 -0
- package/dist/css/cellediting.css +33 -0
- package/dist/css/chat.css +0 -1
- package/dist/css/checkboxgroup.css +12 -0
- package/dist/css/chip.css +64 -0
- package/dist/css/codeviewer.css +109 -0
- package/dist/css/dial.css +203 -0
- package/dist/css/fieldgroup.css +26 -0
- package/dist/css/fieldlist.css +84 -0
- package/dist/css/fieldset.css +36 -0
- package/dist/css/formactions.css +40 -0
- package/dist/css/formerrors.css +39 -0
- package/dist/css/formsection.css +45 -0
- package/dist/css/grid.css +14 -3
- package/dist/css/inputgroup.css +58 -0
- package/dist/css/menu.css +45 -0
- package/dist/css/panel.css +8 -1
- package/dist/css/stepper.css +7 -2
- package/dist/css/tabs.css +12 -3
- package/dist/css/toggle.css +39 -0
- package/dist/css/tree.css +94 -0
- package/dist/css/widget.css +58 -0
- package/dist/css/window.css +4 -0
- package/dist/data.js +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +3 -3
- package/dist/optikos.css +1194 -99
- package/dist/themes/dark.css +47 -32
- package/dist/types/components/badge.d.ts +1 -0
- package/dist/types/components/base/badge/badge.d.ts +18 -0
- package/dist/types/components/base/chip/chip.d.ts +27 -0
- package/dist/types/components/base/codeviewer/codeviewer.d.ts +48 -0
- package/dist/types/components/cellediting.d.ts +1 -0
- package/dist/types/components/checkboxgroup.d.ts +1 -0
- package/dist/types/components/chip.d.ts +1 -0
- package/dist/types/components/codeviewer.d.ts +1 -0
- package/dist/types/components/data/cellediting/cellediting.d.ts +10 -0
- package/dist/types/components/data/filterbuilder/filterbuilder.d.ts +3 -1
- package/dist/types/components/data/grid/grid.d.ts +42 -16
- package/dist/types/components/data/tree/tree.d.ts +71 -0
- package/dist/types/components/dial.d.ts +1 -0
- package/dist/types/components/fieldgroup.d.ts +1 -0
- package/dist/types/components/fieldlist.d.ts +1 -0
- package/dist/types/components/fields/checkboxgroup/checkboxgroup.d.ts +27 -0
- package/dist/types/components/fields/dial/dial.d.ts +84 -0
- package/dist/types/components/fields/toggle/toggle.d.ts +9 -0
- package/dist/types/components/form/fieldgroup/fieldgroup.d.ts +33 -0
- package/dist/types/components/form/fieldlist/fieldlist.d.ts +58 -0
- package/dist/types/components/form/form/form.d.ts +19 -2
- package/dist/types/components/form/formactions/formactions.d.ts +34 -0
- package/dist/types/components/form/formerrors/formerrors.d.ts +23 -0
- package/dist/types/components/form/formsection/formsection.d.ts +26 -0
- package/dist/types/components/form/inputgroup/inputgroup.d.ts +28 -0
- package/dist/types/components/form/stepform/stepform.d.ts +2 -0
- package/dist/types/components/formactions.d.ts +1 -0
- package/dist/types/components/formerrors.d.ts +1 -0
- package/dist/types/components/formsection.d.ts +1 -0
- package/dist/types/components/inputgroup.d.ts +1 -0
- package/dist/types/components/layout/fieldset/fieldset.d.ts +9 -0
- package/dist/types/components/layout/panel/panel.d.ts +6 -0
- package/dist/types/components/layout/panel/reload.d.ts +1 -0
- package/dist/types/components/navigation/tabs/tabs.d.ts +8 -0
- package/dist/types/components/overlays/menu/menu.d.ts +15 -0
- package/dist/types/components/overlays/messagebox/messagebox.d.ts +8 -0
- package/dist/types/components/overlays/widget/widget.d.ts +13 -0
- package/dist/types/components/overlays/window/window.d.ts +8 -1
- package/dist/types/components/toggle.d.ts +1 -0
- package/dist/types/components/tree.d.ts +1 -0
- package/dist/types/core/component.d.ts +6 -2
- package/dist/types/core/i18n.d.ts +5 -0
- package/dist/types/core/index.d.ts +1 -1
- package/dist/types/core/position.d.ts +4 -1
- package/dist/types/data/column.d.ts +9 -4
- package/dist/types/index.d.ts +14 -0
- package/dist/types/themes/define.d.ts +4 -3
- package/dist/types/ui/enums.d.ts +0 -6
- package/dist/types/ui/ui.d.ts +12 -3
- package/dist/ui.js +1 -1
- package/package.json +6 -1
- package/dist/chunk-4COBH4QJ.js +0 -2
- package/dist/chunk-4COBH4QJ.js.map +0 -7
- package/dist/chunk-4DHQKECB.js +0 -2
- package/dist/chunk-4Q67QI7J.js +0 -2
- package/dist/chunk-4Q67QI7J.js.map +0 -7
- package/dist/chunk-5AXLYDKU.js +0 -2
- package/dist/chunk-5AXLYDKU.js.map +0 -7
- package/dist/chunk-5GNEFX6F.js +0 -2
- package/dist/chunk-5Q6Y6CM4.js +0 -2
- package/dist/chunk-5Q6Y6CM4.js.map +0 -7
- package/dist/chunk-666O2GKD.js +0 -2
- package/dist/chunk-A66MDXHL.js +0 -2
- package/dist/chunk-A66MDXHL.js.map +0 -7
- package/dist/chunk-ARCW54L2.js +0 -2
- package/dist/chunk-ARCW54L2.js.map +0 -7
- package/dist/chunk-BIYNHKSA.js +0 -2
- package/dist/chunk-BIYNHKSA.js.map +0 -7
- package/dist/chunk-BNPVRIFT.js +0 -2
- package/dist/chunk-BNPVRIFT.js.map +0 -7
- package/dist/chunk-C3N7QTQB.js +0 -2
- package/dist/chunk-C3N7QTQB.js.map +0 -7
- package/dist/chunk-CEXY5A4T.js +0 -2
- package/dist/chunk-CN7USUJR.js +0 -2
- package/dist/chunk-CN7USUJR.js.map +0 -7
- package/dist/chunk-CQRHNTEX.js +0 -2
- package/dist/chunk-CUPAPOKC.js +0 -2
- package/dist/chunk-CUPAPOKC.js.map +0 -7
- package/dist/chunk-GZNQPENR.js +0 -2
- package/dist/chunk-HFFK6K4K.js +0 -2
- package/dist/chunk-HFFK6K4K.js.map +0 -7
- package/dist/chunk-IHAYOSBR.js +0 -2
- package/dist/chunk-IO66A6G5.js +0 -2
- package/dist/chunk-IO66A6G5.js.map +0 -7
- package/dist/chunk-IYPKPLCU.js.map +0 -7
- package/dist/chunk-JTYWZMSZ.js +0 -2
- package/dist/chunk-JTYWZMSZ.js.map +0 -7
- package/dist/chunk-JVEPKW5X.js +0 -2
- package/dist/chunk-JVEPKW5X.js.map +0 -7
- package/dist/chunk-JZNEB7A7.js +0 -2
- package/dist/chunk-K2DGY6MP.js +0 -2
- package/dist/chunk-K2DGY6MP.js.map +0 -7
- package/dist/chunk-LEE2FEEL.js +0 -2
- package/dist/chunk-LEE2FEEL.js.map +0 -7
- package/dist/chunk-LMGCV35W.js +0 -2
- package/dist/chunk-LMGCV35W.js.map +0 -7
- package/dist/chunk-LV6HXFHU.js.map +0 -7
- package/dist/chunk-MA5BJL3S.js +0 -2
- package/dist/chunk-MA5BJL3S.js.map +0 -7
- package/dist/chunk-NHVEP72K.js +0 -2
- package/dist/chunk-NHVEP72K.js.map +0 -7
- package/dist/chunk-O4DCHALR.js +0 -2
- package/dist/chunk-ODWPBBVL.js +0 -2
- package/dist/chunk-OW2ZSMGS.js +0 -2
- package/dist/chunk-PSPQH35P.js +0 -2
- package/dist/chunk-PSPQH35P.js.map +0 -7
- package/dist/chunk-T4OYVG2X.js +0 -2
- package/dist/chunk-T4OYVG2X.js.map +0 -7
- package/dist/chunk-TK2RC3T5.js +0 -2
- package/dist/chunk-TK2RC3T5.js.map +0 -7
- package/dist/chunk-U3X2FW6U.js +0 -2
- package/dist/chunk-U3X2FW6U.js.map +0 -7
- package/dist/chunk-UPOBGNJ5.js +0 -2
- package/dist/chunk-UPOBGNJ5.js.map +0 -7
- package/dist/chunk-XVIC24AW.js +0 -2
- package/dist/chunk-XZ5CUZZP.js +0 -2
- package/dist/chunk-XZ5CUZZP.js.map +0 -7
- package/dist/chunk-XZEOSW3Q.js +0 -2
- package/dist/chunk-XZEOSW3Q.js.map +0 -7
- package/dist/chunk-YET5PM6F.js +0 -2
- package/dist/chunk-YET5PM6F.js.map +0 -7
- package/dist/chunk-ZCAAM4NH.js +0 -2
- package/dist/chunk-ZCAAM4NH.js.map +0 -7
- package/dist/themes/brand.css +0 -240
- package/dist/themes/brutal.css +0 -100
- package/dist/themes/corporate.css +0 -112
- package/dist/themes/editorial.css +0 -110
- package/dist/themes/soft.css +0 -101
- package/dist/themes/terminal.css +0 -91
- /package/dist/{chunk-NWTTHDIM.js.map → chunk-5JEXM5S7.js.map} +0 -0
- /package/dist/{chunk-NV5AIBQP.js.map → chunk-6VBK2I5B.js.map} +0 -0
- /package/dist/{chunk-ZYUXCZX7.js.map → chunk-7KMIFXHZ.js.map} +0 -0
- /package/dist/{chunk-CEXY5A4T.js.map → chunk-ELYARUCN.js.map} +0 -0
- /package/dist/{chunk-Z25NC4CS.js.map → chunk-EV73ADN2.js.map} +0 -0
- /package/dist/{chunk-CQRHNTEX.js.map → chunk-G2KUK6AT.js.map} +0 -0
- /package/dist/{chunk-LBCWEWPN.js.map → chunk-GNU4VOOE.js.map} +0 -0
- /package/dist/{chunk-IW7PK4VS.js.map → chunk-GZ7X34QP.js.map} +0 -0
- /package/dist/{chunk-QEQIJAAB.js.map → chunk-I4SP6JTU.js.map} +0 -0
- /package/dist/{chunk-4SUKNSCY.js.map → chunk-JI265XFO.js.map} +0 -0
- /package/dist/{chunk-6NJW7QFD.js.map → chunk-SA53QUBF.js.map} +0 -0
- /package/dist/{chunk-TBLICXWW.js.map → chunk-TOLTUOZS.js.map} +0 -0
- /package/dist/{chunk-DXO3UJKL.js.map → chunk-TZOQWCVH.js.map} +0 -0
- /package/dist/{chunk-SNTHW4K2.js.map → chunk-W3H7GTJY.js.map} +0 -0
- /package/dist/{chunk-ZHVSHDLH.js.map → chunk-XHOBNSBO.js.map} +0 -0
- /package/dist/{chunk-6O2BXCRN.js.map → chunk-Z2Z52GFT.js.map} +0 -0
package/dist/optikos.css
CHANGED
|
@@ -37,74 +37,74 @@
|
|
|
37
37
|
--op-amber-600: #d97706;
|
|
38
38
|
--op-amber-700: #b45309;
|
|
39
39
|
|
|
40
|
-
/* semantic colors */
|
|
41
|
-
--op-color-bg:
|
|
40
|
+
/* semantic colors: steel blue on cool grey, made for long sessions in grids and forms */
|
|
41
|
+
--op-color-bg: #edf0f4;
|
|
42
42
|
--op-color-surface: var(--op-gray-0);
|
|
43
|
-
--op-color-surface-2:
|
|
44
|
-
--op-color-fg:
|
|
45
|
-
--op-color-fg-muted:
|
|
46
|
-
--op-color-border:
|
|
47
|
-
--op-color-border-strong:
|
|
48
|
-
--op-color-hover:
|
|
49
|
-
--op-color-selected:
|
|
50
|
-
--op-color-primary:
|
|
51
|
-
--op-color-primary-hover:
|
|
43
|
+
--op-color-surface-2: #f3f5f8;
|
|
44
|
+
--op-color-fg: #1b2430;
|
|
45
|
+
--op-color-fg-muted: #5b6676; /* keeps 4.5:1 on surface-2 */
|
|
46
|
+
--op-color-border: #d8dee6;
|
|
47
|
+
--op-color-border-strong: #a9b3c1;
|
|
48
|
+
--op-color-hover: #eaeff6;
|
|
49
|
+
--op-color-selected: #d9e6f7;
|
|
50
|
+
--op-color-primary: #1f4e8c;
|
|
51
|
+
--op-color-primary-hover: #173d6f;
|
|
52
52
|
--op-color-primary-fg: var(--op-gray-0);
|
|
53
|
-
--op-color-primary-soft:
|
|
54
|
-
--op-color-danger:
|
|
55
|
-
--op-color-danger-hover:
|
|
53
|
+
--op-color-primary-soft: #e4edf8;
|
|
54
|
+
--op-color-danger: #b3261e;
|
|
55
|
+
--op-color-danger-hover: #8f1d17;
|
|
56
56
|
--op-color-danger-fg: var(--op-gray-0);
|
|
57
|
-
--op-color-danger-soft:
|
|
58
|
-
--op-color-success:
|
|
59
|
-
--op-color-success-soft:
|
|
60
|
-
--op-color-warning:
|
|
61
|
-
--op-color-warning-soft:
|
|
62
|
-
--op-color-info:
|
|
63
|
-
--op-color-info-soft:
|
|
64
|
-
--op-color-focus:
|
|
65
|
-
--op-color-disabled-fg:
|
|
66
|
-
--op-color-disabled-bg:
|
|
67
|
-
--op-color-overlay: rgb(
|
|
68
|
-
--op-color-inverse-bg:
|
|
69
|
-
--op-color-inverse-fg:
|
|
57
|
+
--op-color-danger-soft: #fbe4e2;
|
|
58
|
+
--op-color-success: #1e7a4d;
|
|
59
|
+
--op-color-success-soft: #dff2e8;
|
|
60
|
+
--op-color-warning: #9a5b00;
|
|
61
|
+
--op-color-warning-soft: #fcecc9;
|
|
62
|
+
--op-color-info: #1f5fa8;
|
|
63
|
+
--op-color-info-soft: #dfeaf8;
|
|
64
|
+
--op-color-focus: #2f7bd6;
|
|
65
|
+
--op-color-disabled-fg: #9aa4b2;
|
|
66
|
+
--op-color-disabled-bg: #eef1f5;
|
|
67
|
+
--op-color-overlay: rgb(16 24 38 / 0.5);
|
|
68
|
+
--op-color-inverse-bg: #14213a;
|
|
69
|
+
--op-color-inverse-fg: #eaf0fa;
|
|
70
70
|
|
|
71
71
|
/* typography */
|
|
72
|
-
--op-font-family:
|
|
72
|
+
--op-font-family: 'Segoe UI', Inter, Roboto, 'Helvetica Neue', Arial, system-ui, sans-serif;
|
|
73
73
|
--op-font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
|
|
74
|
-
--op-font-size: 0.
|
|
75
|
-
--op-font-size-sm: 0.
|
|
76
|
-
--op-font-size-lg:
|
|
77
|
-
--op-font-size-xl: 1.
|
|
78
|
-
--op-line-height: 1.
|
|
74
|
+
--op-font-size: 0.9375rem;
|
|
75
|
+
--op-font-size-sm: 0.8125rem;
|
|
76
|
+
--op-font-size-lg: 1.0625rem;
|
|
77
|
+
--op-font-size-xl: 1.3125rem;
|
|
78
|
+
--op-line-height: 1.45;
|
|
79
79
|
--op-font-weight: 400;
|
|
80
80
|
--op-font-weight-medium: 500;
|
|
81
81
|
--op-font-weight-bold: 600;
|
|
82
82
|
|
|
83
|
-
/* spacing, density, shape */
|
|
83
|
+
/* spacing, density, shape: comfortable, small radii, hairline borders */
|
|
84
84
|
--op-space-1: 0.25rem;
|
|
85
85
|
--op-space-2: 0.5rem;
|
|
86
|
-
--op-space-3: 0.
|
|
87
|
-
--op-space-4:
|
|
86
|
+
--op-space-3: 0.875rem;
|
|
87
|
+
--op-space-4: 1.125rem;
|
|
88
88
|
--op-space-5: 1.5rem;
|
|
89
|
-
--op-space-6:
|
|
90
|
-
--op-control-height: 2.
|
|
91
|
-
--op-control-padding-x: 0.
|
|
92
|
-
--op-row-height: 2.
|
|
89
|
+
--op-space-6: 2.25rem;
|
|
90
|
+
--op-control-height: 2.375rem;
|
|
91
|
+
--op-control-padding-x: 0.875rem;
|
|
92
|
+
--op-row-height: 2.75rem;
|
|
93
93
|
--op-border-width: 1px;
|
|
94
|
-
--op-radius-sm: 0.
|
|
95
|
-
--op-radius: 0.
|
|
96
|
-
--op-radius-lg: 0.
|
|
94
|
+
--op-radius-sm: 0.1875rem;
|
|
95
|
+
--op-radius: 0.25rem;
|
|
96
|
+
--op-radius-lg: 0.375rem;
|
|
97
97
|
--op-radius-pill: 62.5rem;
|
|
98
98
|
--op-focus-width: 2px;
|
|
99
|
-
--op-focus-offset:
|
|
100
|
-
--op-icon-size: 1.
|
|
101
|
-
--op-icon-stroke:
|
|
99
|
+
--op-focus-offset: 1px;
|
|
100
|
+
--op-icon-size: 1.3em;
|
|
101
|
+
--op-icon-stroke: 1.75;
|
|
102
102
|
|
|
103
|
-
/* elevation and motion */
|
|
104
|
-
--op-shadow-sm:
|
|
105
|
-
--op-shadow: 0
|
|
106
|
-
--op-shadow-lg: 0
|
|
107
|
-
--op-duration:
|
|
103
|
+
/* elevation and motion: flat at rest, shadows only on what floats */
|
|
104
|
+
--op-shadow-sm: none;
|
|
105
|
+
--op-shadow: 0 2px 6px rgb(16 24 38 / 0.14);
|
|
106
|
+
--op-shadow-lg: 0 10px 28px rgb(16 24 38 / 0.28);
|
|
107
|
+
--op-duration: 90ms;
|
|
108
108
|
|
|
109
109
|
/* scrollbars follow the theme: thin, thumb from the strong border, track transparent */
|
|
110
110
|
--op-scrollbar-width: thin;
|
|
@@ -115,6 +115,26 @@
|
|
|
115
115
|
--op-z-layer: 1000;
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
+
/* The light look's component colors (a navy sidebar, a tinted grid header). Literal values, and not on :root under
|
|
119
|
+
another theme, so a theme that does not set them keeps the component defaults. dark.css sets its own. */
|
|
120
|
+
:root:not([data-op-theme]),
|
|
121
|
+
[data-op-theme~='light'],
|
|
122
|
+
[data-op-theme='compact'] {
|
|
123
|
+
--op-navmenu-item-height: 2.5rem;
|
|
124
|
+
--op-navmenu-bg: #14213a;
|
|
125
|
+
--op-navmenu-fg: #d5ddeb;
|
|
126
|
+
--op-navmenu-group-fg: #8195b4;
|
|
127
|
+
--op-navmenu-item-hover-bg: #1d2f52;
|
|
128
|
+
--op-navmenu-active-bg: #203c6a;
|
|
129
|
+
--op-navmenu-active-fg: #ffffff;
|
|
130
|
+
--op-navmenu-active-bar: #5ea6f5;
|
|
131
|
+
--op-navmenu-badge-bg: #5ea6f5;
|
|
132
|
+
--op-navmenu-badge-fg: #0a1730;
|
|
133
|
+
--op-grid-header-bg: #e6ebf1;
|
|
134
|
+
--op-grid-header-fg: #2a3547;
|
|
135
|
+
--op-field-label-weight: 600;
|
|
136
|
+
}
|
|
137
|
+
|
|
118
138
|
@media (prefers-reduced-motion: reduce) {
|
|
119
139
|
:root,
|
|
120
140
|
[data-op-theme] {
|
|
@@ -428,9 +448,50 @@
|
|
|
428
448
|
}
|
|
429
449
|
}
|
|
430
450
|
|
|
451
|
+
@layer optikos {
|
|
452
|
+
:root {
|
|
453
|
+
--op-badge-dot-size: 0.5rem;
|
|
454
|
+
--op-badge-height: 1.5em;
|
|
455
|
+
--op-badge-icon-size: 1em;
|
|
456
|
+
}
|
|
457
|
+
.op-badge {
|
|
458
|
+
--_fg: var(--op-color-fg);
|
|
459
|
+
--_bg: var(--op-color-surface-2);
|
|
460
|
+
display: inline-flex;
|
|
461
|
+
align-items: center;
|
|
462
|
+
gap: var(--op-space-1);
|
|
463
|
+
padding: 0 var(--op-badge-padding-x, var(--op-space-2));
|
|
464
|
+
min-block-size: var(--op-badge-height);
|
|
465
|
+
box-sizing: border-box;
|
|
466
|
+
color: var(--op-badge-fg, var(--_fg));
|
|
467
|
+
background: var(--op-badge-bg, var(--_bg));
|
|
468
|
+
border-radius: var(--op-badge-radius, var(--op-radius-pill));
|
|
469
|
+
font-size: var(--op-font-size-sm);
|
|
470
|
+
font-weight: var(--op-badge-font-weight, var(--op-font-weight-bold));
|
|
471
|
+
line-height: 1;
|
|
472
|
+
white-space: nowrap;
|
|
473
|
+
vertical-align: middle;
|
|
474
|
+
}
|
|
475
|
+
.op-badge--primary { --_fg: var(--op-color-primary-text, var(--op-color-primary)); --_bg: var(--op-color-primary-soft); }
|
|
476
|
+
.op-badge--success { --_fg: var(--op-color-success); --_bg: var(--op-color-success-soft); }
|
|
477
|
+
.op-badge--warning { --_fg: var(--op-color-warning); --_bg: var(--op-color-warning-soft); }
|
|
478
|
+
.op-badge--danger { --_fg: var(--op-color-danger); --_bg: var(--op-color-danger-soft); }
|
|
479
|
+
.op-badge--info { --_fg: var(--op-color-info); --_bg: var(--op-color-info-soft); }
|
|
480
|
+
.op-badge__dot {
|
|
481
|
+
inline-size: var(--op-badge-dot-size);
|
|
482
|
+
block-size: var(--op-badge-dot-size);
|
|
483
|
+
border-radius: 50%;
|
|
484
|
+
background: currentColor;
|
|
485
|
+
}
|
|
486
|
+
.op-badge .op-icon {
|
|
487
|
+
--op-icon-size: var(--op-badge-icon-size);
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
|
|
431
491
|
@layer optikos {
|
|
432
492
|
:root {
|
|
433
493
|
--op-button-spinner-size: 1em;
|
|
494
|
+
--op-button-primary-shadow: inset 0 -1px 0 rgb(0 0 0 / 0.25);
|
|
434
495
|
}
|
|
435
496
|
|
|
436
497
|
.op-button {
|
|
@@ -502,6 +563,7 @@
|
|
|
502
563
|
--_border: var(--op-button-primary-bg, var(--op-color-primary));
|
|
503
564
|
--_hover: var(--op-button-primary-hover-bg, var(--op-color-primary-hover));
|
|
504
565
|
--_active: var(--op-button-primary-hover-bg, var(--op-color-primary-hover));
|
|
566
|
+
box-shadow: var(--op-button-primary-shadow);
|
|
505
567
|
}
|
|
506
568
|
.op-button--danger {
|
|
507
569
|
--_bg: var(--op-button-danger-bg, var(--op-color-danger));
|
|
@@ -530,6 +592,181 @@
|
|
|
530
592
|
}
|
|
531
593
|
}
|
|
532
594
|
|
|
595
|
+
@layer optikos {
|
|
596
|
+
.op-chip {
|
|
597
|
+
display: inline-flex;
|
|
598
|
+
align-items: center;
|
|
599
|
+
max-inline-size: 100%;
|
|
600
|
+
box-sizing: border-box;
|
|
601
|
+
min-block-size: var(--op-chip-height, calc(var(--op-control-height) * 0.8));
|
|
602
|
+
color: var(--op-chip-fg, var(--op-color-fg));
|
|
603
|
+
background: var(--op-chip-bg, var(--op-color-surface));
|
|
604
|
+
border: var(--op-border-width) solid var(--op-chip-border, var(--op-color-border-strong));
|
|
605
|
+
border-radius: var(--op-chip-radius, var(--op-radius-pill));
|
|
606
|
+
font-size: var(--op-font-size-sm);
|
|
607
|
+
vertical-align: middle;
|
|
608
|
+
}
|
|
609
|
+
.op-chip__main,
|
|
610
|
+
.op-chip__remove {
|
|
611
|
+
display: inline-flex;
|
|
612
|
+
align-items: center;
|
|
613
|
+
gap: var(--op-space-1);
|
|
614
|
+
padding: 0 var(--op-space-3);
|
|
615
|
+
min-block-size: inherit;
|
|
616
|
+
color: inherit;
|
|
617
|
+
background: none;
|
|
618
|
+
border: 0;
|
|
619
|
+
border-radius: inherit;
|
|
620
|
+
font: inherit;
|
|
621
|
+
cursor: pointer;
|
|
622
|
+
}
|
|
623
|
+
.op-chip__main {
|
|
624
|
+
min-inline-size: 0;
|
|
625
|
+
}
|
|
626
|
+
.op-chip__text {
|
|
627
|
+
overflow: hidden;
|
|
628
|
+
text-overflow: ellipsis;
|
|
629
|
+
white-space: nowrap;
|
|
630
|
+
}
|
|
631
|
+
.op-chip__remove {
|
|
632
|
+
padding-inline: var(--op-space-1) var(--op-space-2);
|
|
633
|
+
color: var(--op-color-fg-muted);
|
|
634
|
+
}
|
|
635
|
+
.op-chip__remove:hover:not(:disabled) {
|
|
636
|
+
color: var(--op-color-danger);
|
|
637
|
+
}
|
|
638
|
+
.op-chip__main:focus-visible,
|
|
639
|
+
.op-chip__remove:focus-visible {
|
|
640
|
+
outline: var(--op-focus-width) solid var(--op-color-focus);
|
|
641
|
+
outline-offset: calc(var(--op-focus-width) * -1);
|
|
642
|
+
}
|
|
643
|
+
.op-chip:hover:not(.is-disabled) {
|
|
644
|
+
border-color: var(--op-chip-hover-border, var(--op-color-primary));
|
|
645
|
+
}
|
|
646
|
+
.op-chip.is-selected {
|
|
647
|
+
color: var(--op-chip-selected-fg, var(--op-color-primary-text, var(--op-color-primary)));
|
|
648
|
+
background: var(--op-chip-selected-bg, var(--op-color-primary-soft));
|
|
649
|
+
border-color: var(--op-chip-selected-border, var(--op-color-primary));
|
|
650
|
+
}
|
|
651
|
+
.op-chip.is-disabled {
|
|
652
|
+
color: var(--op-color-disabled-fg);
|
|
653
|
+
border-color: var(--op-color-border);
|
|
654
|
+
}
|
|
655
|
+
.op-chip.is-disabled button {
|
|
656
|
+
cursor: default;
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
@layer optikos {
|
|
661
|
+
:root {
|
|
662
|
+
--op-codeviewer-font-size: 0.8125rem;
|
|
663
|
+
--op-codeviewer-line-height: 1.6;
|
|
664
|
+
--op-codeviewer-tab-size: 2;
|
|
665
|
+
--op-codeviewer-gutter-gap: 1.25rem;
|
|
666
|
+
--op-codeviewer-max-height: 32rem;
|
|
667
|
+
}
|
|
668
|
+
.op-codeviewer {
|
|
669
|
+
overflow: hidden;
|
|
670
|
+
color: var(--op-codeviewer-fg, var(--op-color-fg));
|
|
671
|
+
background: var(--op-codeviewer-bg, var(--op-color-surface-2));
|
|
672
|
+
border: var(--op-border-width) solid var(--op-color-border);
|
|
673
|
+
border-radius: var(--op-radius-lg);
|
|
674
|
+
}
|
|
675
|
+
.op-codeviewer__bar {
|
|
676
|
+
display: flex;
|
|
677
|
+
align-items: center;
|
|
678
|
+
justify-content: space-between;
|
|
679
|
+
gap: var(--op-space-2);
|
|
680
|
+
min-block-size: var(--op-control-height);
|
|
681
|
+
padding-inline: var(--op-space-3) var(--op-space-1);
|
|
682
|
+
color: var(--op-color-fg-muted);
|
|
683
|
+
border-block-end: var(--op-border-width) solid var(--op-color-border);
|
|
684
|
+
font-size: var(--op-font-size-sm);
|
|
685
|
+
}
|
|
686
|
+
.op-codeviewer__title {
|
|
687
|
+
overflow: hidden;
|
|
688
|
+
text-overflow: ellipsis;
|
|
689
|
+
white-space: nowrap;
|
|
690
|
+
}
|
|
691
|
+
.op-codeviewer__pre {
|
|
692
|
+
margin: 0;
|
|
693
|
+
padding: var(--op-space-3) var(--op-space-4);
|
|
694
|
+
max-block-size: var(--op-codeviewer-max-height);
|
|
695
|
+
overflow: auto;
|
|
696
|
+
font-family: var(--op-font-mono);
|
|
697
|
+
font-size: var(--op-codeviewer-font-size);
|
|
698
|
+
line-height: var(--op-codeviewer-line-height);
|
|
699
|
+
tab-size: var(--op-codeviewer-tab-size);
|
|
700
|
+
}
|
|
701
|
+
.op-codeviewer__pre:focus-visible {
|
|
702
|
+
outline: var(--op-focus-width) solid var(--op-color-focus);
|
|
703
|
+
outline-offset: calc(var(--op-focus-width) * -1);
|
|
704
|
+
}
|
|
705
|
+
/* the global op-* rule would give lines and tokens the base font: everything inside the code keeps the mono one */
|
|
706
|
+
.op-codeviewer__pre * {
|
|
707
|
+
font-family: inherit;
|
|
708
|
+
font-size: inherit;
|
|
709
|
+
}
|
|
710
|
+
/* lines stretch to the widest one, so a marked line is marked across the whole scroll width */
|
|
711
|
+
.op-codeviewer__code {
|
|
712
|
+
display: block;
|
|
713
|
+
min-inline-size: 100%;
|
|
714
|
+
inline-size: max-content;
|
|
715
|
+
font: inherit;
|
|
716
|
+
}
|
|
717
|
+
.op-codeviewer.is-wrapped .op-codeviewer__code {
|
|
718
|
+
inline-size: auto;
|
|
719
|
+
white-space: pre-wrap;
|
|
720
|
+
overflow-wrap: anywhere;
|
|
721
|
+
}
|
|
722
|
+
.op-codeviewer__line {
|
|
723
|
+
position: relative;
|
|
724
|
+
display: block;
|
|
725
|
+
margin-inline: calc(var(--op-space-4) * -1);
|
|
726
|
+
padding-inline: var(--op-space-4);
|
|
727
|
+
}
|
|
728
|
+
.op-codeviewer__line.is-marked {
|
|
729
|
+
background: var(--op-codeviewer-mark-bg, var(--op-color-selected));
|
|
730
|
+
box-shadow: inset calc(var(--op-border-width) * 3) 0 0 var(--op-color-primary);
|
|
731
|
+
}
|
|
732
|
+
/* line numbers: a CSS counter in the gutter, never part of the text (selection and screen readers skip it) */
|
|
733
|
+
.op-codeviewer.has-numbers .op-codeviewer__line {
|
|
734
|
+
padding-inline-start: calc(var(--op-space-4) + var(--op-codeviewer-gutter, 2ch) + var(--op-codeviewer-gutter-gap));
|
|
735
|
+
}
|
|
736
|
+
.op-codeviewer.has-numbers .op-codeviewer__line::before {
|
|
737
|
+
counter-increment: op-codeline;
|
|
738
|
+
content: counter(op-codeline);
|
|
739
|
+
position: absolute;
|
|
740
|
+
inset-inline-start: var(--op-space-4);
|
|
741
|
+
inline-size: var(--op-codeviewer-gutter, 2ch);
|
|
742
|
+
color: var(--op-codeviewer-gutter-fg, var(--op-color-fg-muted));
|
|
743
|
+
text-align: end;
|
|
744
|
+
user-select: none;
|
|
745
|
+
}
|
|
746
|
+
/* syntax colors are pulled towards the text color, so they keep their contrast in every theme */
|
|
747
|
+
.op-codeviewer__tok--keyword {
|
|
748
|
+
color: var(--op-codeviewer-keyword, color-mix(in srgb, var(--op-color-primary) 80%, var(--op-color-fg)));
|
|
749
|
+
font-weight: var(--op-font-weight-bold);
|
|
750
|
+
}
|
|
751
|
+
.op-codeviewer__tok--string {
|
|
752
|
+
color: var(--op-codeviewer-string, color-mix(in srgb, var(--op-color-success) 70%, var(--op-color-fg)));
|
|
753
|
+
}
|
|
754
|
+
.op-codeviewer__tok--comment {
|
|
755
|
+
color: var(--op-codeviewer-comment, var(--op-color-fg-muted));
|
|
756
|
+
font-style: italic;
|
|
757
|
+
}
|
|
758
|
+
.op-codeviewer__tok--number {
|
|
759
|
+
color: var(--op-codeviewer-number, color-mix(in srgb, var(--op-color-warning) 65%, var(--op-color-fg)));
|
|
760
|
+
}
|
|
761
|
+
.op-codeviewer__tok--property,
|
|
762
|
+
.op-codeviewer__tok--attr {
|
|
763
|
+
color: var(--op-codeviewer-property, color-mix(in srgb, var(--op-color-info) 70%, var(--op-color-fg)));
|
|
764
|
+
}
|
|
765
|
+
.op-codeviewer__tok--tag {
|
|
766
|
+
color: var(--op-codeviewer-tag, color-mix(in srgb, var(--op-color-danger) 70%, var(--op-color-fg)));
|
|
767
|
+
}
|
|
768
|
+
}
|
|
769
|
+
|
|
533
770
|
@layer optikos {
|
|
534
771
|
.op-icon {
|
|
535
772
|
display: inline-flex;
|
|
@@ -677,7 +914,6 @@
|
|
|
677
914
|
margin-inline-start: var(--op-space-3);
|
|
678
915
|
margin-block-start: var(--op-space-2);
|
|
679
916
|
font-size: var(--op-font-size-sm);
|
|
680
|
-
opacity: 0.7;
|
|
681
917
|
}
|
|
682
918
|
.op-chat__status {
|
|
683
919
|
display: inline-flex;
|
|
@@ -794,6 +1030,40 @@
|
|
|
794
1030
|
}
|
|
795
1031
|
}
|
|
796
1032
|
|
|
1033
|
+
@layer optikos {
|
|
1034
|
+
/* the editor fills the cell: no label, no error line, the row height */
|
|
1035
|
+
.op-grid__cell.is-editing {
|
|
1036
|
+
position: relative;
|
|
1037
|
+
padding-block: 0;
|
|
1038
|
+
padding-inline: var(--op-grid-editor-inset, var(--op-space-1));
|
|
1039
|
+
overflow: visible;
|
|
1040
|
+
}
|
|
1041
|
+
.op-grid__editor {
|
|
1042
|
+
inline-size: 100%;
|
|
1043
|
+
}
|
|
1044
|
+
.op-grid__editor .op-textfield__input {
|
|
1045
|
+
min-block-size: 0;
|
|
1046
|
+
block-size: calc(var(--op-grid-row-height, var(--op-row-height)) - 2 * var(--op-space-1));
|
|
1047
|
+
}
|
|
1048
|
+
.op-grid__editor.is-invalid .op-textfield__input {
|
|
1049
|
+
border-color: var(--op-color-danger);
|
|
1050
|
+
}
|
|
1051
|
+
.op-grid__editor .op-field__error {
|
|
1052
|
+
position: absolute;
|
|
1053
|
+
z-index: 1;
|
|
1054
|
+
inset-block-start: 100%;
|
|
1055
|
+
padding: var(--op-space-1) var(--op-space-2);
|
|
1056
|
+
color: var(--op-color-danger-fg);
|
|
1057
|
+
background: var(--op-color-danger);
|
|
1058
|
+
border-radius: var(--op-radius-sm);
|
|
1059
|
+
font-size: var(--op-font-size-sm);
|
|
1060
|
+
white-space: nowrap;
|
|
1061
|
+
}
|
|
1062
|
+
.op-grid__editor .op-field__error:empty {
|
|
1063
|
+
display: none;
|
|
1064
|
+
}
|
|
1065
|
+
}
|
|
1066
|
+
|
|
797
1067
|
@layer optikos {
|
|
798
1068
|
:root {
|
|
799
1069
|
--op-dataview-item-width: 10rem;
|
|
@@ -988,6 +1258,7 @@
|
|
|
988
1258
|
--op-grid-action-gap: var(--op-space-1);
|
|
989
1259
|
--op-grid-action-idle-opacity: 0.45;
|
|
990
1260
|
--op-grid-action-disabled-opacity: 0.3;
|
|
1261
|
+
--op-grid-selected-bar-width: 0.125rem;
|
|
991
1262
|
}
|
|
992
1263
|
.op-grid {
|
|
993
1264
|
--_border: var(--op-grid-border, var(--op-color-border));
|
|
@@ -1002,9 +1273,18 @@
|
|
|
1002
1273
|
border-radius: var(--op-grid-radius, var(--op-radius));
|
|
1003
1274
|
overflow: hidden;
|
|
1004
1275
|
}
|
|
1005
|
-
|
|
1276
|
+
/* header + rows: the focusable role=grid part, between the bulk bar and the pager */
|
|
1277
|
+
.op-grid__table {
|
|
1278
|
+
display: flex;
|
|
1279
|
+
flex: 1 1 auto;
|
|
1280
|
+
flex-direction: column;
|
|
1281
|
+
position: relative;
|
|
1282
|
+
min-inline-size: 0;
|
|
1283
|
+
min-block-size: 0;
|
|
1284
|
+
}
|
|
1285
|
+
.op-grid__table:focus-visible {
|
|
1006
1286
|
outline: var(--op-focus-width) solid var(--op-color-focus);
|
|
1007
|
-
outline-offset:
|
|
1287
|
+
outline-offset: calc(var(--op-focus-width) * -1);
|
|
1008
1288
|
}
|
|
1009
1289
|
.op-grid__header {
|
|
1010
1290
|
position: relative;
|
|
@@ -1012,7 +1292,7 @@
|
|
|
1012
1292
|
overflow: hidden;
|
|
1013
1293
|
color: var(--op-grid-header-fg, var(--op-color-fg));
|
|
1014
1294
|
background: var(--op-grid-header-bg, var(--op-color-surface-2));
|
|
1015
|
-
border-block-end: var(--op-border-width) solid var(--
|
|
1295
|
+
border-block-end: var(--op-border-width) solid var(--op-grid-header-border, var(--op-color-border-strong));
|
|
1016
1296
|
font-weight: var(--op-font-weight-bold);
|
|
1017
1297
|
}
|
|
1018
1298
|
.op-grid__row {
|
|
@@ -1041,6 +1321,7 @@
|
|
|
1041
1321
|
}
|
|
1042
1322
|
.op-grid__body-row.is-selected {
|
|
1043
1323
|
background: var(--op-grid-row-selected-bg, var(--op-color-selected));
|
|
1324
|
+
box-shadow: inset var(--op-grid-selected-bar-width) 0 0 var(--op-grid-selected-bar, var(--op-color-primary));
|
|
1044
1325
|
}
|
|
1045
1326
|
.op-grid__body-row.is-active {
|
|
1046
1327
|
outline: var(--op-focus-width) solid var(--op-color-focus);
|
|
@@ -1444,6 +1725,101 @@
|
|
|
1444
1725
|
}
|
|
1445
1726
|
}
|
|
1446
1727
|
|
|
1728
|
+
@layer optikos {
|
|
1729
|
+
:root {
|
|
1730
|
+
--op-tree-indent: 1.25rem;
|
|
1731
|
+
--op-tree-check-size: 1rem;
|
|
1732
|
+
--op-tree-check-icon-size: 0.8em;
|
|
1733
|
+
}
|
|
1734
|
+
.op-tree {
|
|
1735
|
+
display: block;
|
|
1736
|
+
min-inline-size: 0;
|
|
1737
|
+
overflow: auto;
|
|
1738
|
+
color: var(--op-tree-fg, var(--op-color-fg));
|
|
1739
|
+
background: var(--op-tree-bg, transparent);
|
|
1740
|
+
}
|
|
1741
|
+
.op-tree__root,
|
|
1742
|
+
.op-tree__group {
|
|
1743
|
+
margin: 0;
|
|
1744
|
+
padding: 0;
|
|
1745
|
+
list-style: none;
|
|
1746
|
+
}
|
|
1747
|
+
.op-tree__item {
|
|
1748
|
+
display: flex;
|
|
1749
|
+
align-items: center;
|
|
1750
|
+
gap: var(--op-space-2);
|
|
1751
|
+
box-sizing: border-box;
|
|
1752
|
+
min-block-size: var(--op-tree-item-height, var(--op-row-height));
|
|
1753
|
+
padding-inline: var(--op-space-1) var(--op-space-3);
|
|
1754
|
+
padding-inline-start: calc(var(--op-space-1) + var(--_level, 0) * var(--op-tree-indent));
|
|
1755
|
+
border-radius: var(--op-radius-sm);
|
|
1756
|
+
cursor: pointer;
|
|
1757
|
+
user-select: none;
|
|
1758
|
+
}
|
|
1759
|
+
.op-tree__item:hover:not(.is-disabled) {
|
|
1760
|
+
background: var(--op-tree-hover-bg, var(--op-color-hover));
|
|
1761
|
+
}
|
|
1762
|
+
.op-tree__item:focus-visible {
|
|
1763
|
+
outline: var(--op-focus-width) solid var(--op-color-focus);
|
|
1764
|
+
outline-offset: calc(var(--op-focus-width) * -1);
|
|
1765
|
+
}
|
|
1766
|
+
.op-tree__item.is-selected {
|
|
1767
|
+
color: var(--op-tree-selected-fg, var(--op-color-fg));
|
|
1768
|
+
background: var(--op-tree-selected-bg, var(--op-color-selected));
|
|
1769
|
+
}
|
|
1770
|
+
.op-tree__item.is-disabled {
|
|
1771
|
+
color: var(--op-color-disabled-fg);
|
|
1772
|
+
cursor: default;
|
|
1773
|
+
}
|
|
1774
|
+
.op-tree__toggle {
|
|
1775
|
+
display: inline-grid;
|
|
1776
|
+
place-items: center;
|
|
1777
|
+
flex: none;
|
|
1778
|
+
inline-size: var(--op-tree-indent);
|
|
1779
|
+
color: var(--op-color-fg-muted);
|
|
1780
|
+
}
|
|
1781
|
+
.op-tree__toggle .op-icon {
|
|
1782
|
+
transition: transform var(--op-duration) var(--op-easing);
|
|
1783
|
+
}
|
|
1784
|
+
.op-tree__item.is-expanded > .op-tree__toggle .op-icon {
|
|
1785
|
+
transform: rotate(90deg);
|
|
1786
|
+
}
|
|
1787
|
+
.op-tree__spinner {
|
|
1788
|
+
--op-spinner-size: var(--op-tree-check-size);
|
|
1789
|
+
}
|
|
1790
|
+
.op-tree__check {
|
|
1791
|
+
display: inline-grid;
|
|
1792
|
+
place-items: center;
|
|
1793
|
+
flex: none;
|
|
1794
|
+
box-sizing: border-box;
|
|
1795
|
+
inline-size: var(--op-tree-check-size);
|
|
1796
|
+
block-size: var(--op-tree-check-size);
|
|
1797
|
+
border: var(--op-border-width) solid var(--op-color-border-strong);
|
|
1798
|
+
border-radius: var(--op-radius-sm);
|
|
1799
|
+
background: var(--op-color-surface);
|
|
1800
|
+
--op-icon-size: var(--op-tree-check-icon-size);
|
|
1801
|
+
}
|
|
1802
|
+
.op-tree__check.is-checked,
|
|
1803
|
+
.op-tree__check.is-mixed {
|
|
1804
|
+
color: var(--op-color-primary-fg);
|
|
1805
|
+
background: var(--op-color-primary);
|
|
1806
|
+
border-color: var(--op-color-primary);
|
|
1807
|
+
}
|
|
1808
|
+
.op-tree__icon {
|
|
1809
|
+
display: inline-flex;
|
|
1810
|
+
color: var(--op-tree-icon-fg, var(--op-color-fg-muted));
|
|
1811
|
+
}
|
|
1812
|
+
.op-tree__text {
|
|
1813
|
+
overflow: hidden;
|
|
1814
|
+
text-overflow: ellipsis;
|
|
1815
|
+
white-space: nowrap;
|
|
1816
|
+
}
|
|
1817
|
+
.op-tree__empty {
|
|
1818
|
+
padding: var(--op-space-3);
|
|
1819
|
+
color: var(--op-color-fg-muted);
|
|
1820
|
+
}
|
|
1821
|
+
}
|
|
1822
|
+
|
|
1447
1823
|
@layer optikos {
|
|
1448
1824
|
:root {
|
|
1449
1825
|
--op-calendar-day-size: 2.25rem;
|
|
@@ -1619,55 +1995,272 @@
|
|
|
1619
1995
|
}
|
|
1620
1996
|
|
|
1621
1997
|
@layer optikos {
|
|
1622
|
-
|
|
1623
|
-
|
|
1998
|
+
.op-checkboxgroup__options {
|
|
1999
|
+
display: flex;
|
|
2000
|
+
flex-direction: column;
|
|
2001
|
+
gap: var(--op-checkboxgroup-gap, var(--op-space-1));
|
|
1624
2002
|
}
|
|
1625
|
-
.op-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
overflow: auto;
|
|
1630
|
-
background: var(--op-listbox-bg, var(--op-color-surface));
|
|
1631
|
-
color: var(--op-color-fg);
|
|
2003
|
+
.op-checkboxgroup__options--horizontal {
|
|
2004
|
+
flex-direction: row;
|
|
2005
|
+
flex-wrap: wrap;
|
|
2006
|
+
gap: var(--op-checkboxgroup-gap, var(--op-space-4));
|
|
1632
2007
|
}
|
|
1633
|
-
|
|
1634
|
-
|
|
2008
|
+
}
|
|
2009
|
+
|
|
2010
|
+
@layer optikos {
|
|
2011
|
+
:root {
|
|
2012
|
+
--op-dial-spacing: 0.75rem;
|
|
2013
|
+
--op-dial-item-spacing: 3.5rem;
|
|
2014
|
+
--op-dial-height: 3.75rem;
|
|
2015
|
+
--op-dial-size: 13rem;
|
|
2016
|
+
--op-dial-readout-size: 2.75rem;
|
|
2017
|
+
--op-dial-readout-size-circle: 2rem;
|
|
2018
|
+
--op-dial-roll-duration: 380ms;
|
|
2019
|
+
--op-dial-tick-height: 0.75rem;
|
|
2020
|
+
--op-dial-major-height: 1.375rem;
|
|
2021
|
+
--op-dial-needle-width: 0.1875rem;
|
|
2022
|
+
--op-dial-label-gap: 0.25rem;
|
|
2023
|
+
--op-dial-ring-inset: 0.5rem;
|
|
2024
|
+
--op-dial-hub: 0.625rem;
|
|
2025
|
+
--op-dial-digit-height: 1em; /* one line of the readout: a reel moves by this per digit */
|
|
2026
|
+
}
|
|
2027
|
+
.op-dial {
|
|
2028
|
+
--_sp: var(--op-dial-spacing);
|
|
2029
|
+
}
|
|
2030
|
+
.op-dial--list {
|
|
2031
|
+
--_sp: var(--op-dial-item-spacing);
|
|
2032
|
+
}
|
|
2033
|
+
.op-dial__box {
|
|
1635
2034
|
display: flex;
|
|
2035
|
+
flex-direction: column;
|
|
1636
2036
|
align-items: center;
|
|
1637
|
-
|
|
1638
|
-
cursor: pointer;
|
|
1639
|
-
white-space: nowrap;
|
|
1640
|
-
overflow: hidden;
|
|
1641
|
-
text-overflow: ellipsis;
|
|
1642
|
-
}
|
|
1643
|
-
.op-listbox__item.is-active {
|
|
1644
|
-
background: var(--op-listbox-item-active-bg, var(--op-color-hover));
|
|
2037
|
+
gap: var(--op-space-2);
|
|
1645
2038
|
}
|
|
1646
|
-
|
|
1647
|
-
|
|
2039
|
+
|
|
2040
|
+
/* the readout: digits roll like an odometer (each reel is the column 0–9, moved by --d) */
|
|
2041
|
+
.op-dial__readout {
|
|
2042
|
+
display: flex;
|
|
2043
|
+
justify-content: center;
|
|
2044
|
+
min-block-size: var(--op-dial-digit-height);
|
|
2045
|
+
color: var(--op-dial-readout-fg, var(--op-color-fg));
|
|
2046
|
+
font-size: var(--op-dial-readout-size);
|
|
1648
2047
|
font-weight: var(--op-font-weight-bold);
|
|
2048
|
+
font-variant-numeric: tabular-nums;
|
|
2049
|
+
line-height: 1;
|
|
2050
|
+
white-space: pre;
|
|
1649
2051
|
}
|
|
1650
|
-
.op-
|
|
1651
|
-
|
|
1652
|
-
|
|
2052
|
+
.op-dial__digit,
|
|
2053
|
+
.op-dial__reel {
|
|
2054
|
+
font-size: inherit; /* the global op-* rule would reset them to the base size */
|
|
1653
2055
|
}
|
|
1654
|
-
.op-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
2056
|
+
.op-dial__digit {
|
|
2057
|
+
display: inline-block;
|
|
2058
|
+
block-size: var(--op-dial-digit-height);
|
|
2059
|
+
overflow: hidden;
|
|
1658
2060
|
}
|
|
1659
|
-
.op-
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
font-weight: normal;
|
|
2061
|
+
.op-dial__reel {
|
|
2062
|
+
display: flex;
|
|
2063
|
+
flex-direction: column;
|
|
2064
|
+
transform: translateY(calc(var(--d, 0) * -10%));
|
|
2065
|
+
transition: transform var(--op-dial-roll-duration) var(--op-motion-ease-out);
|
|
1665
2066
|
}
|
|
1666
|
-
.op-
|
|
1667
|
-
|
|
1668
|
-
|
|
2067
|
+
.op-dial__reel > span {
|
|
2068
|
+
display: block;
|
|
2069
|
+
block-size: var(--op-dial-digit-height);
|
|
1669
2070
|
}
|
|
1670
|
-
|
|
2071
|
+
|
|
2072
|
+
/* the face: a flat ruler sliding under a fixed needle */
|
|
2073
|
+
.op-dial__face {
|
|
2074
|
+
position: relative;
|
|
2075
|
+
inline-size: 100%;
|
|
2076
|
+
block-size: var(--op-dial-height);
|
|
2077
|
+
border-radius: var(--op-radius);
|
|
2078
|
+
cursor: grab;
|
|
2079
|
+
touch-action: none;
|
|
2080
|
+
user-select: none;
|
|
2081
|
+
}
|
|
2082
|
+
.op-dial__face:focus-visible {
|
|
2083
|
+
outline: var(--op-focus-width) solid var(--op-color-focus);
|
|
2084
|
+
outline-offset: var(--op-focus-offset);
|
|
2085
|
+
}
|
|
2086
|
+
.op-dial.is-dragging .op-dial__face {
|
|
2087
|
+
cursor: grabbing;
|
|
2088
|
+
}
|
|
2089
|
+
.op-dial__window {
|
|
2090
|
+
position: absolute;
|
|
2091
|
+
inset: 0;
|
|
2092
|
+
overflow: hidden;
|
|
2093
|
+
mask-image: linear-gradient(to right, transparent, black 20%, black 80%, transparent);
|
|
2094
|
+
}
|
|
2095
|
+
.op-dial__tape {
|
|
2096
|
+
position: absolute;
|
|
2097
|
+
inset-block: 0;
|
|
2098
|
+
inset-inline-start: 50%;
|
|
2099
|
+
/* --pos (set by the component) is the item under the needle, fractional while dragging */
|
|
2100
|
+
transform: translateX(calc(var(--pos, 0) * -1 * var(--_sp)));
|
|
2101
|
+
transition: transform var(--op-dial-roll-duration) var(--op-motion-ease-out);
|
|
2102
|
+
}
|
|
2103
|
+
.op-dial.is-dragging .op-dial__tape {
|
|
2104
|
+
transition: none;
|
|
2105
|
+
}
|
|
2106
|
+
.op-dial.is-gliding .op-dial__tape {
|
|
2107
|
+
transition-timing-function: var(--op-motion-ease-out);
|
|
2108
|
+
}
|
|
2109
|
+
.op-dial__tick {
|
|
2110
|
+
position: absolute;
|
|
2111
|
+
inset-block-start: 0;
|
|
2112
|
+
inset-inline-start: calc(var(--i) * var(--_sp));
|
|
2113
|
+
inline-size: var(--op-border-width);
|
|
2114
|
+
block-size: var(--op-dial-tick-height);
|
|
2115
|
+
background: var(--op-dial-tick-fg, var(--op-color-border-strong));
|
|
2116
|
+
transform: translateX(-50%);
|
|
2117
|
+
}
|
|
2118
|
+
.op-dial__tick.is-major {
|
|
2119
|
+
inline-size: calc(var(--op-border-width) * 2);
|
|
2120
|
+
block-size: var(--op-dial-major-height);
|
|
2121
|
+
background: var(--op-dial-major-fg, var(--op-color-fg-muted));
|
|
2122
|
+
}
|
|
2123
|
+
.op-dial__tick-label {
|
|
2124
|
+
position: absolute;
|
|
2125
|
+
inset-block-start: calc(100% + var(--op-dial-label-gap));
|
|
2126
|
+
inset-inline-start: 50%;
|
|
2127
|
+
color: var(--op-color-fg-muted);
|
|
2128
|
+
font-size: var(--op-font-size-sm);
|
|
2129
|
+
white-space: nowrap;
|
|
2130
|
+
transform: translateX(-50%);
|
|
2131
|
+
transition: color var(--op-duration) var(--op-easing);
|
|
2132
|
+
}
|
|
2133
|
+
.op-dial__tick.is-current .op-dial__tick-label {
|
|
2134
|
+
color: var(--op-color-primary-text, var(--op-color-primary));
|
|
2135
|
+
font-weight: var(--op-font-weight-bold);
|
|
2136
|
+
}
|
|
2137
|
+
.op-dial__needle {
|
|
2138
|
+
position: absolute;
|
|
2139
|
+
inset-block-start: 0;
|
|
2140
|
+
inset-inline-start: 50%;
|
|
2141
|
+
inline-size: var(--op-dial-needle-width);
|
|
2142
|
+
block-size: calc(var(--op-dial-major-height) + var(--op-space-1));
|
|
2143
|
+
background: var(--op-dial-needle, var(--op-color-primary));
|
|
2144
|
+
border-radius: var(--op-radius-pill);
|
|
2145
|
+
transform: translateX(-50%);
|
|
2146
|
+
pointer-events: none;
|
|
2147
|
+
}
|
|
2148
|
+
|
|
2149
|
+
/* circle: a clock face, the ticks around the ring and a hand from the center */
|
|
2150
|
+
.op-dial--circle .op-dial__face {
|
|
2151
|
+
inline-size: var(--op-dial-size);
|
|
2152
|
+
block-size: var(--op-dial-size);
|
|
2153
|
+
border: var(--op-border-width) solid var(--op-color-border);
|
|
2154
|
+
border-radius: 50%;
|
|
2155
|
+
}
|
|
2156
|
+
.op-dial--circle .op-dial__window {
|
|
2157
|
+
overflow: visible;
|
|
2158
|
+
mask-image: none;
|
|
2159
|
+
}
|
|
2160
|
+
.op-dial--circle .op-dial__tape {
|
|
2161
|
+
inset: 0;
|
|
2162
|
+
transform: none;
|
|
2163
|
+
transition: none;
|
|
2164
|
+
}
|
|
2165
|
+
.op-dial--circle .op-dial__tick {
|
|
2166
|
+
inset-block-start: var(--op-dial-ring-inset);
|
|
2167
|
+
inset-inline-start: 50%;
|
|
2168
|
+
transform-origin: 50% calc(var(--op-dial-size) / 2 - var(--op-dial-ring-inset) - var(--op-border-width));
|
|
2169
|
+
transform: translateX(-50%) rotate(var(--a));
|
|
2170
|
+
}
|
|
2171
|
+
.op-dial--circle .op-dial__tick-label {
|
|
2172
|
+
transform: translateX(-50%) rotate(calc(var(--a) * -1));
|
|
2173
|
+
}
|
|
2174
|
+
.op-dial--circle .op-dial__needle {
|
|
2175
|
+
inset-block-start: auto;
|
|
2176
|
+
inset-block-end: 50%;
|
|
2177
|
+
block-size: calc(var(--op-dial-size) / 2 - var(--op-dial-ring-inset) - var(--op-dial-major-height) - var(--op-space-5) - var(--op-space-2));
|
|
2178
|
+
transform-origin: 50% 100%;
|
|
2179
|
+
transition: transform var(--op-dial-roll-duration) var(--op-motion-ease-out);
|
|
2180
|
+
}
|
|
2181
|
+
.op-dial--circle.is-dragging .op-dial__needle {
|
|
2182
|
+
transition: none;
|
|
2183
|
+
}
|
|
2184
|
+
/* the hub the hand turns on */
|
|
2185
|
+
.op-dial--circle .op-dial__needle::after {
|
|
2186
|
+
content: '';
|
|
2187
|
+
position: absolute;
|
|
2188
|
+
inset-block-end: calc(var(--op-dial-hub) / -2);
|
|
2189
|
+
inset-inline-start: 50%;
|
|
2190
|
+
inline-size: var(--op-dial-hub);
|
|
2191
|
+
block-size: var(--op-dial-hub);
|
|
2192
|
+
background: inherit;
|
|
2193
|
+
border-radius: 50%;
|
|
2194
|
+
transform: translateX(-50%);
|
|
2195
|
+
}
|
|
2196
|
+
.op-dial--circle .op-dial__readout {
|
|
2197
|
+
font-size: var(--op-dial-readout-size-circle);
|
|
2198
|
+
}
|
|
2199
|
+
|
|
2200
|
+
.op-dial.is-disabled .op-dial__face {
|
|
2201
|
+
cursor: not-allowed;
|
|
2202
|
+
opacity: 0.5;
|
|
2203
|
+
}
|
|
2204
|
+
.op-dial.is-readonly .op-dial__face {
|
|
2205
|
+
cursor: default;
|
|
2206
|
+
}
|
|
2207
|
+
.op-motion-off .op-dial__reel,
|
|
2208
|
+
.op-motion-off .op-dial__tape,
|
|
2209
|
+
.op-motion-off .op-dial__needle {
|
|
2210
|
+
transition: none;
|
|
2211
|
+
}
|
|
2212
|
+
}
|
|
2213
|
+
|
|
2214
|
+
@layer optikos {
|
|
2215
|
+
:root {
|
|
2216
|
+
--op-listbox-max-height: 15rem;
|
|
2217
|
+
}
|
|
2218
|
+
.op-listbox {
|
|
2219
|
+
position: relative;
|
|
2220
|
+
box-sizing: border-box;
|
|
2221
|
+
max-block-size: var(--op-listbox-max-height);
|
|
2222
|
+
overflow: auto;
|
|
2223
|
+
background: var(--op-listbox-bg, var(--op-color-surface));
|
|
2224
|
+
color: var(--op-color-fg);
|
|
2225
|
+
}
|
|
2226
|
+
.op-listbox__item {
|
|
2227
|
+
box-sizing: border-box;
|
|
2228
|
+
display: flex;
|
|
2229
|
+
align-items: center;
|
|
2230
|
+
padding: var(--op-listbox-item-padding-y, 0) var(--op-listbox-item-padding-x, var(--op-control-padding-x));
|
|
2231
|
+
cursor: pointer;
|
|
2232
|
+
white-space: nowrap;
|
|
2233
|
+
overflow: hidden;
|
|
2234
|
+
text-overflow: ellipsis;
|
|
2235
|
+
}
|
|
2236
|
+
.op-listbox__item.is-active {
|
|
2237
|
+
background: var(--op-listbox-item-active-bg, var(--op-color-hover));
|
|
2238
|
+
}
|
|
2239
|
+
.op-listbox__item.is-selected {
|
|
2240
|
+
color: var(--op-listbox-item-selected-fg, var(--op-color-primary));
|
|
2241
|
+
font-weight: var(--op-font-weight-bold);
|
|
2242
|
+
}
|
|
2243
|
+
.op-listbox__item.is-disabled {
|
|
2244
|
+
color: var(--op-color-disabled-fg);
|
|
2245
|
+
cursor: not-allowed;
|
|
2246
|
+
}
|
|
2247
|
+
.op-listbox__mark {
|
|
2248
|
+
color: inherit;
|
|
2249
|
+
background: var(--op-color-primary-soft);
|
|
2250
|
+
font-weight: var(--op-font-weight-bold);
|
|
2251
|
+
}
|
|
2252
|
+
.op-listbox__hint {
|
|
2253
|
+
margin-inline-start: auto;
|
|
2254
|
+
padding-inline-start: var(--op-space-3);
|
|
2255
|
+
color: var(--op-listbox-hint-fg, var(--op-color-fg-muted));
|
|
2256
|
+
font-size: var(--op-font-size-sm);
|
|
2257
|
+
font-weight: normal;
|
|
2258
|
+
}
|
|
2259
|
+
.op-listbox__empty {
|
|
2260
|
+
padding: var(--op-space-3);
|
|
2261
|
+
color: var(--op-listbox-empty-fg, var(--op-color-fg-muted));
|
|
2262
|
+
}
|
|
2263
|
+
}
|
|
1671
2264
|
|
|
1672
2265
|
@layer optikos {
|
|
1673
2266
|
.op-picker__trigger {
|
|
@@ -2063,6 +2656,158 @@
|
|
|
2063
2656
|
}
|
|
2064
2657
|
}
|
|
2065
2658
|
|
|
2659
|
+
@layer optikos {
|
|
2660
|
+
:root {
|
|
2661
|
+
--op-toggle-width: 2.25rem;
|
|
2662
|
+
--op-toggle-height: 1.25rem;
|
|
2663
|
+
--op-toggle-knob-inset: 0.1875rem;
|
|
2664
|
+
}
|
|
2665
|
+
/* the checkbox box becomes a track; its knob is a pseudo-element that slides */
|
|
2666
|
+
.op-toggle .op-checkbox__box {
|
|
2667
|
+
inline-size: var(--op-toggle-width);
|
|
2668
|
+
block-size: var(--op-toggle-height);
|
|
2669
|
+
border-radius: var(--op-radius-pill);
|
|
2670
|
+
background: var(--op-toggle-track-bg, var(--op-color-border-strong));
|
|
2671
|
+
border-color: transparent;
|
|
2672
|
+
transition: background var(--op-duration) var(--op-easing);
|
|
2673
|
+
}
|
|
2674
|
+
.op-toggle .op-checkbox__box > * {
|
|
2675
|
+
display: none;
|
|
2676
|
+
}
|
|
2677
|
+
.op-toggle .op-checkbox__box::after {
|
|
2678
|
+
content: '';
|
|
2679
|
+
position: absolute;
|
|
2680
|
+
inset-block: var(--op-toggle-knob-inset);
|
|
2681
|
+
inset-inline-start: var(--op-toggle-knob-inset);
|
|
2682
|
+
aspect-ratio: 1;
|
|
2683
|
+
border-radius: 50%;
|
|
2684
|
+
background: var(--op-toggle-knob-bg, var(--op-color-surface));
|
|
2685
|
+
box-shadow: var(--op-shadow-sm);
|
|
2686
|
+
transition: translate var(--op-duration) var(--op-easing);
|
|
2687
|
+
}
|
|
2688
|
+
.op-toggle.is-checked .op-checkbox__box {
|
|
2689
|
+
background: var(--op-toggle-on-bg, var(--op-color-primary));
|
|
2690
|
+
}
|
|
2691
|
+
.op-toggle.is-checked .op-checkbox__box::after {
|
|
2692
|
+
translate: calc(var(--op-toggle-width) - var(--op-toggle-height)) 0;
|
|
2693
|
+
}
|
|
2694
|
+
[dir='rtl'] .op-toggle.is-checked .op-checkbox__box::after {
|
|
2695
|
+
translate: calc((var(--op-toggle-width) - var(--op-toggle-height)) * -1) 0;
|
|
2696
|
+
}
|
|
2697
|
+
}
|
|
2698
|
+
|
|
2699
|
+
@layer optikos {
|
|
2700
|
+
.op-fieldgroup__body {
|
|
2701
|
+
--op-layout-gap: var(--op-fieldgroup-gap, var(--op-space-2));
|
|
2702
|
+
}
|
|
2703
|
+
/* the fields share the row; each still has its label for screen readers, but only the group's label shows */
|
|
2704
|
+
.op-fieldgroup__body > .op-field {
|
|
2705
|
+
flex: 1 1 0;
|
|
2706
|
+
min-inline-size: 0;
|
|
2707
|
+
}
|
|
2708
|
+
.op-fieldgroup__body .op-field__label {
|
|
2709
|
+
position: absolute;
|
|
2710
|
+
inline-size: 0;
|
|
2711
|
+
block-size: 0;
|
|
2712
|
+
overflow: hidden;
|
|
2713
|
+
clip-path: inset(50%);
|
|
2714
|
+
white-space: nowrap;
|
|
2715
|
+
}
|
|
2716
|
+
.op-fieldgroup__body .op-field__help,
|
|
2717
|
+
.op-fieldgroup__body .op-field__error,
|
|
2718
|
+
.op-fieldgroup__body .op-field.op-stable > .op-field__error:empty {
|
|
2719
|
+
display: none; /* the group has the one error line (and beats the reserved line of stableSize) */
|
|
2720
|
+
}
|
|
2721
|
+
.op-fieldgroup > .op-field__label {
|
|
2722
|
+
cursor: default;
|
|
2723
|
+
}
|
|
2724
|
+
}
|
|
2725
|
+
|
|
2726
|
+
@layer optikos {
|
|
2727
|
+
.op-fieldlist__box {
|
|
2728
|
+
display: flex;
|
|
2729
|
+
flex-direction: column;
|
|
2730
|
+
align-items: flex-start;
|
|
2731
|
+
gap: var(--op-fieldlist-gap, var(--op-space-2));
|
|
2732
|
+
}
|
|
2733
|
+
.op-fieldlist__rows {
|
|
2734
|
+
display: flex;
|
|
2735
|
+
flex-direction: column;
|
|
2736
|
+
gap: var(--op-fieldlist-row-gap, var(--op-space-2));
|
|
2737
|
+
align-self: stretch;
|
|
2738
|
+
}
|
|
2739
|
+
.op-fieldlist__row {
|
|
2740
|
+
--op-layout-gap: var(--op-space-2);
|
|
2741
|
+
}
|
|
2742
|
+
.op-fieldlist__row > .op-field {
|
|
2743
|
+
flex: 1 1 0;
|
|
2744
|
+
min-inline-size: 0;
|
|
2745
|
+
}
|
|
2746
|
+
/* the labels read as a column header: shown on the first row, kept for screen readers on the others */
|
|
2747
|
+
.op-fieldlist__row:not(.is-first) .op-field__label {
|
|
2748
|
+
position: absolute;
|
|
2749
|
+
inline-size: 0;
|
|
2750
|
+
block-size: 0;
|
|
2751
|
+
overflow: hidden;
|
|
2752
|
+
clip-path: inset(50%);
|
|
2753
|
+
white-space: nowrap;
|
|
2754
|
+
}
|
|
2755
|
+
.op-fieldlist__row:not(.is-first) .op-field__help {
|
|
2756
|
+
display: none;
|
|
2757
|
+
}
|
|
2758
|
+
.op-fieldlist__tools {
|
|
2759
|
+
display: flex;
|
|
2760
|
+
flex: none;
|
|
2761
|
+
gap: var(--op-space-1);
|
|
2762
|
+
align-self: flex-start;
|
|
2763
|
+
min-block-size: var(--op-control-height);
|
|
2764
|
+
align-items: center;
|
|
2765
|
+
}
|
|
2766
|
+
/* on the first row the tools line up with the inputs, under the labels */
|
|
2767
|
+
.op-fieldlist__row.is-first > .op-fieldlist__tools {
|
|
2768
|
+
margin-block-start: calc(var(--op-font-size) * var(--op-line-height) + var(--op-field-gap, var(--op-space-1)));
|
|
2769
|
+
}
|
|
2770
|
+
.op-fieldlist__tool,
|
|
2771
|
+
.op-fieldlist__add {
|
|
2772
|
+
display: inline-flex;
|
|
2773
|
+
align-items: center;
|
|
2774
|
+
gap: var(--op-space-1);
|
|
2775
|
+
color: var(--op-color-fg-muted);
|
|
2776
|
+
background: transparent;
|
|
2777
|
+
border: 0;
|
|
2778
|
+
border-radius: var(--op-radius-sm);
|
|
2779
|
+
font: inherit;
|
|
2780
|
+
cursor: pointer;
|
|
2781
|
+
}
|
|
2782
|
+
.op-fieldlist__tool {
|
|
2783
|
+
padding: var(--op-space-1);
|
|
2784
|
+
}
|
|
2785
|
+
.op-fieldlist__add {
|
|
2786
|
+
padding: var(--op-space-1) var(--op-space-2);
|
|
2787
|
+
color: var(--op-color-primary-text, var(--op-color-primary));
|
|
2788
|
+
font-weight: var(--op-font-weight-medium);
|
|
2789
|
+
}
|
|
2790
|
+
.op-fieldlist__tool:hover:not(:disabled),
|
|
2791
|
+
.op-fieldlist__add:hover:not(:disabled) {
|
|
2792
|
+
color: var(--op-color-fg);
|
|
2793
|
+
background: var(--op-color-hover);
|
|
2794
|
+
}
|
|
2795
|
+
.op-fieldlist__tool:disabled,
|
|
2796
|
+
.op-fieldlist__add:disabled {
|
|
2797
|
+
color: var(--op-color-disabled-fg);
|
|
2798
|
+
cursor: not-allowed;
|
|
2799
|
+
}
|
|
2800
|
+
.op-fieldlist__tool:focus-visible,
|
|
2801
|
+
.op-fieldlist__add:focus-visible {
|
|
2802
|
+
outline: var(--op-focus-width) solid var(--op-color-focus);
|
|
2803
|
+
outline-offset: var(--op-focus-offset);
|
|
2804
|
+
}
|
|
2805
|
+
.op-fieldlist__empty {
|
|
2806
|
+
color: var(--op-color-fg-muted);
|
|
2807
|
+
font-size: var(--op-font-size-sm);
|
|
2808
|
+
}
|
|
2809
|
+
}
|
|
2810
|
+
|
|
2066
2811
|
@layer optikos {
|
|
2067
2812
|
.op-form {
|
|
2068
2813
|
--op-layout-gap: var(--op-form-gap, var(--op-space-3));
|
|
@@ -2072,6 +2817,192 @@
|
|
|
2072
2817
|
}
|
|
2073
2818
|
}
|
|
2074
2819
|
|
|
2820
|
+
@layer optikos {
|
|
2821
|
+
.op-formactions {
|
|
2822
|
+
display: flex;
|
|
2823
|
+
flex-wrap: wrap;
|
|
2824
|
+
align-items: center;
|
|
2825
|
+
gap: var(--op-space-2) var(--op-space-3);
|
|
2826
|
+
padding: var(--op-formactions-padding, var(--op-space-3) 0 0);
|
|
2827
|
+
border-block-start: var(--op-border-width) solid var(--op-formactions-border, var(--op-color-border));
|
|
2828
|
+
}
|
|
2829
|
+
.op-formactions__status {
|
|
2830
|
+
flex: 1;
|
|
2831
|
+
min-inline-size: 0;
|
|
2832
|
+
color: var(--op-color-fg-muted);
|
|
2833
|
+
font-size: var(--op-font-size-sm);
|
|
2834
|
+
}
|
|
2835
|
+
.op-formactions__status:not(:empty)::before {
|
|
2836
|
+
content: '';
|
|
2837
|
+
display: inline-block;
|
|
2838
|
+
inline-size: var(--op-space-2);
|
|
2839
|
+
block-size: var(--op-space-2);
|
|
2840
|
+
margin-inline-end: var(--op-space-2);
|
|
2841
|
+
background: var(--op-color-warning);
|
|
2842
|
+
border-radius: 50%;
|
|
2843
|
+
}
|
|
2844
|
+
.op-formactions__buttons {
|
|
2845
|
+
display: flex;
|
|
2846
|
+
flex-wrap: wrap;
|
|
2847
|
+
gap: var(--op-space-2);
|
|
2848
|
+
margin-inline-start: auto;
|
|
2849
|
+
}
|
|
2850
|
+
/* sticky: stays at the bottom of the scrolling area while the form scrolls under it */
|
|
2851
|
+
.op-formactions.is-sticky {
|
|
2852
|
+
position: sticky;
|
|
2853
|
+
inset-block-end: 0;
|
|
2854
|
+
z-index: 1;
|
|
2855
|
+
padding: var(--op-formactions-padding, var(--op-space-3));
|
|
2856
|
+
background: var(--op-formactions-bg, var(--op-color-surface));
|
|
2857
|
+
box-shadow: var(--op-shadow-sm);
|
|
2858
|
+
}
|
|
2859
|
+
}
|
|
2860
|
+
|
|
2861
|
+
@layer optikos {
|
|
2862
|
+
.op-formerrors {
|
|
2863
|
+
padding: var(--op-space-3) var(--op-space-4);
|
|
2864
|
+
color: var(--op-formerrors-fg, var(--op-color-fg));
|
|
2865
|
+
background: var(--op-formerrors-bg, var(--op-color-danger-soft));
|
|
2866
|
+
border: var(--op-border-width) solid var(--op-formerrors-border, var(--op-color-danger));
|
|
2867
|
+
border-inline-start-width: calc(var(--op-border-width) * 4);
|
|
2868
|
+
border-radius: var(--op-radius);
|
|
2869
|
+
}
|
|
2870
|
+
.op-formerrors:focus-visible {
|
|
2871
|
+
outline: var(--op-focus-width) solid var(--op-color-focus);
|
|
2872
|
+
outline-offset: var(--op-focus-offset);
|
|
2873
|
+
}
|
|
2874
|
+
.op-formerrors__title {
|
|
2875
|
+
font-weight: var(--op-font-weight-bold);
|
|
2876
|
+
}
|
|
2877
|
+
.op-formerrors__list {
|
|
2878
|
+
margin: var(--op-space-2) 0 0;
|
|
2879
|
+
padding-inline-start: var(--op-space-4);
|
|
2880
|
+
}
|
|
2881
|
+
.op-formerrors__link {
|
|
2882
|
+
padding: 0;
|
|
2883
|
+
color: var(--op-color-danger);
|
|
2884
|
+
background: none;
|
|
2885
|
+
border: 0;
|
|
2886
|
+
font: inherit;
|
|
2887
|
+
text-align: start;
|
|
2888
|
+
text-decoration: underline;
|
|
2889
|
+
cursor: pointer;
|
|
2890
|
+
}
|
|
2891
|
+
.op-formerrors__link:hover {
|
|
2892
|
+
text-decoration-thickness: calc(var(--op-border-width) * 2);
|
|
2893
|
+
}
|
|
2894
|
+
.op-formerrors__link:focus-visible {
|
|
2895
|
+
outline: var(--op-focus-width) solid var(--op-color-focus);
|
|
2896
|
+
outline-offset: var(--op-focus-offset);
|
|
2897
|
+
border-radius: var(--op-radius-sm);
|
|
2898
|
+
}
|
|
2899
|
+
}
|
|
2900
|
+
|
|
2901
|
+
@layer optikos {
|
|
2902
|
+
:root {
|
|
2903
|
+
--op-formsection-aside-width: 16rem;
|
|
2904
|
+
--op-formsection-gap: var(--op-space-6);
|
|
2905
|
+
}
|
|
2906
|
+
/* side by side when the section itself is wide enough: a container query, so it works inside any panel or window */
|
|
2907
|
+
.op-formsection {
|
|
2908
|
+
display: flow-root; /* holds the floated aside */
|
|
2909
|
+
container-type: inline-size;
|
|
2910
|
+
min-inline-size: 0;
|
|
2911
|
+
}
|
|
2912
|
+
.op-formsection__aside,
|
|
2913
|
+
.op-formsection__body {
|
|
2914
|
+
min-inline-size: 0;
|
|
2915
|
+
}
|
|
2916
|
+
.op-formsection__body {
|
|
2917
|
+
--op-layout-gap: var(--op-form-gap, var(--op-space-3));
|
|
2918
|
+
margin-block-start: var(--op-space-3);
|
|
2919
|
+
}
|
|
2920
|
+
.op-formsection__title {
|
|
2921
|
+
margin: 0;
|
|
2922
|
+
font-size: var(--op-font-size-lg);
|
|
2923
|
+
font-weight: var(--op-font-weight-bold);
|
|
2924
|
+
}
|
|
2925
|
+
.op-formsection__desc {
|
|
2926
|
+
margin: var(--op-space-1) 0 0;
|
|
2927
|
+
color: var(--op-color-fg-muted);
|
|
2928
|
+
font-size: var(--op-font-size-sm);
|
|
2929
|
+
}
|
|
2930
|
+
.op-formsection--divided + .op-formsection--divided {
|
|
2931
|
+
margin-block-start: var(--op-space-4);
|
|
2932
|
+
padding-block-start: var(--op-space-5);
|
|
2933
|
+
border-block-start: var(--op-border-width) solid var(--op-formsection-divider, var(--op-color-border));
|
|
2934
|
+
}
|
|
2935
|
+
@container (min-width: 40rem) {
|
|
2936
|
+
.op-formsection:not(.op-formsection--stacked) > .op-formsection__aside {
|
|
2937
|
+
float: inline-start;
|
|
2938
|
+
inline-size: var(--op-formsection-aside-width);
|
|
2939
|
+
}
|
|
2940
|
+
.op-formsection:not(.op-formsection--stacked) > .op-formsection__body {
|
|
2941
|
+
margin-block-start: 0;
|
|
2942
|
+
margin-inline-start: calc(var(--op-formsection-aside-width) + var(--op-formsection-gap));
|
|
2943
|
+
}
|
|
2944
|
+
}
|
|
2945
|
+
}
|
|
2946
|
+
|
|
2947
|
+
@layer optikos {
|
|
2948
|
+
/* the field's control becomes a row: [prefix][input box][suffix], the inner corners squared off */
|
|
2949
|
+
.op-inputgroup__row {
|
|
2950
|
+
display: flex;
|
|
2951
|
+
align-items: stretch;
|
|
2952
|
+
}
|
|
2953
|
+
.op-inputgroup__row > :not(.op-inputgroup__affix) {
|
|
2954
|
+
flex: 1;
|
|
2955
|
+
min-inline-size: 0;
|
|
2956
|
+
}
|
|
2957
|
+
.op-inputgroup__affix {
|
|
2958
|
+
display: inline-flex;
|
|
2959
|
+
align-items: center;
|
|
2960
|
+
gap: var(--op-space-1);
|
|
2961
|
+
padding-inline: var(--op-control-padding-x);
|
|
2962
|
+
color: var(--op-inputgroup-affix-fg, var(--op-color-fg-muted));
|
|
2963
|
+
background: var(--op-inputgroup-affix-bg, var(--op-color-surface-2));
|
|
2964
|
+
border: var(--op-border-width) solid var(--op-textfield-border, var(--op-color-border-strong));
|
|
2965
|
+
white-space: nowrap;
|
|
2966
|
+
}
|
|
2967
|
+
.op-inputgroup__btn {
|
|
2968
|
+
color: var(--op-color-fg);
|
|
2969
|
+
font: inherit;
|
|
2970
|
+
font-weight: var(--op-font-weight-medium);
|
|
2971
|
+
cursor: pointer;
|
|
2972
|
+
}
|
|
2973
|
+
.op-inputgroup__btn:hover {
|
|
2974
|
+
background: var(--op-color-hover);
|
|
2975
|
+
}
|
|
2976
|
+
.op-inputgroup__btn:focus-visible {
|
|
2977
|
+
position: relative;
|
|
2978
|
+
z-index: 1;
|
|
2979
|
+
outline: var(--op-focus-width) solid var(--op-color-focus);
|
|
2980
|
+
}
|
|
2981
|
+
.op-inputgroup__affix--prefix {
|
|
2982
|
+
margin-inline-end: calc(var(--op-border-width) * -1);
|
|
2983
|
+
border-start-start-radius: var(--op-textfield-radius, var(--op-radius));
|
|
2984
|
+
border-end-start-radius: var(--op-textfield-radius, var(--op-radius));
|
|
2985
|
+
}
|
|
2986
|
+
.op-inputgroup__affix--suffix {
|
|
2987
|
+
margin-inline-start: calc(var(--op-border-width) * -1);
|
|
2988
|
+
border-start-end-radius: var(--op-textfield-radius, var(--op-radius));
|
|
2989
|
+
border-end-end-radius: var(--op-textfield-radius, var(--op-radius));
|
|
2990
|
+
}
|
|
2991
|
+
/* every text-based field (Select, DateField, NumberField...) draws its box on .op-textfield__input */
|
|
2992
|
+
.op-inputgroup .has-prefix .op-textfield__input {
|
|
2993
|
+
border-start-start-radius: 0;
|
|
2994
|
+
border-end-start-radius: 0;
|
|
2995
|
+
}
|
|
2996
|
+
.op-inputgroup .has-suffix .op-textfield__input {
|
|
2997
|
+
border-start-end-radius: 0;
|
|
2998
|
+
border-end-end-radius: 0;
|
|
2999
|
+
}
|
|
3000
|
+
.op-inputgroup .op-textfield__input:focus {
|
|
3001
|
+
position: relative;
|
|
3002
|
+
z-index: 1; /* the focus ring stays above the joined segments */
|
|
3003
|
+
}
|
|
3004
|
+
}
|
|
3005
|
+
|
|
2075
3006
|
@layer optikos {
|
|
2076
3007
|
:root {
|
|
2077
3008
|
--op-stepform-review-label-width: 9rem;
|
|
@@ -2156,6 +3087,42 @@
|
|
|
2156
3087
|
.op-fieldset.is-collapsed {
|
|
2157
3088
|
padding-block-end: 0;
|
|
2158
3089
|
}
|
|
3090
|
+
.op-fieldset__desc {
|
|
3091
|
+
margin: 0 0 var(--op-space-3);
|
|
3092
|
+
padding-inline: var(--op-space-1);
|
|
3093
|
+
color: var(--op-color-fg-muted);
|
|
3094
|
+
font-size: var(--op-font-size-sm);
|
|
3095
|
+
}
|
|
3096
|
+
.op-fieldset__body {
|
|
3097
|
+
--op-layout-gap: var(--op-form-gap, var(--op-space-3));
|
|
3098
|
+
}
|
|
3099
|
+
/* line: no frame, a rule under the legend; plain: just the legend */
|
|
3100
|
+
.op-fieldset--line,
|
|
3101
|
+
.op-fieldset--plain {
|
|
3102
|
+
padding: 0;
|
|
3103
|
+
border: 0;
|
|
3104
|
+
border-radius: 0;
|
|
3105
|
+
}
|
|
3106
|
+
.op-fieldset--line > .op-fieldset__legend,
|
|
3107
|
+
.op-fieldset--plain > .op-fieldset__legend {
|
|
3108
|
+
inline-size: 100%;
|
|
3109
|
+
margin-block-end: var(--op-space-3);
|
|
3110
|
+
padding: 0;
|
|
3111
|
+
}
|
|
3112
|
+
.op-fieldset--line > .op-fieldset__legend {
|
|
3113
|
+
padding-block-end: var(--op-space-2);
|
|
3114
|
+
border-block-end: var(--op-border-width) solid var(--op-fieldset-border, var(--op-color-border));
|
|
3115
|
+
}
|
|
3116
|
+
.op-fieldset--line > .op-fieldset__desc,
|
|
3117
|
+
.op-fieldset--plain > .op-fieldset__desc {
|
|
3118
|
+
margin-block-start: calc(var(--op-space-2) * -1);
|
|
3119
|
+
padding: 0;
|
|
3120
|
+
}
|
|
3121
|
+
.op-fieldset--collapsible-title .op-fieldset__title,
|
|
3122
|
+
.op-fieldset__toggle + .op-fieldset__title {
|
|
3123
|
+
cursor: pointer;
|
|
3124
|
+
user-select: none;
|
|
3125
|
+
}
|
|
2159
3126
|
}
|
|
2160
3127
|
|
|
2161
3128
|
@layer optikos {
|
|
@@ -2179,7 +3146,7 @@
|
|
|
2179
3146
|
padding: var(--op-panel-header-padding, var(--op-space-2) var(--op-space-3));
|
|
2180
3147
|
background: var(--op-panel-header-bg, var(--op-color-surface-2));
|
|
2181
3148
|
color: var(--op-panel-header-fg, var(--op-color-fg));
|
|
2182
|
-
border-block-end: var(--op-border-width) solid var(--op-panel-border, var(--op-color-border));
|
|
3149
|
+
border-block-end: var(--op-border-width) solid var(--op-panel-header-border, var(--op-panel-border, var(--op-color-border-strong)));
|
|
2183
3150
|
font-weight: var(--op-font-weight-bold);
|
|
2184
3151
|
}
|
|
2185
3152
|
.op-panel__title {
|
|
@@ -2234,6 +3201,13 @@
|
|
|
2234
3201
|
border-block-end: 0;
|
|
2235
3202
|
border-block-start: var(--op-border-width) solid var(--op-color-border);
|
|
2236
3203
|
}
|
|
3204
|
+
/* the ↻ tool turns while the panel reloads */
|
|
3205
|
+
.op-panel.is-reloading > .op-panel__header .op-panel__tool svg {
|
|
3206
|
+
animation: op-spin 700ms linear infinite;
|
|
3207
|
+
}
|
|
3208
|
+
.op-motion-off .op-panel.is-reloading > .op-panel__header .op-panel__tool svg {
|
|
3209
|
+
animation: none;
|
|
3210
|
+
}
|
|
2237
3211
|
}
|
|
2238
3212
|
|
|
2239
3213
|
@layer optikos {
|
|
@@ -2543,10 +3517,15 @@
|
|
|
2543
3517
|
.op-stepper__step.is-error .op-stepper__btn {
|
|
2544
3518
|
color: var(--op-color-danger);
|
|
2545
3519
|
}
|
|
2546
|
-
/* phones: only the current step
|
|
3520
|
+
/* phones: only the current step shows its words; the others keep them for screen readers (the button's name) */
|
|
2547
3521
|
@media (max-width: 40rem) {
|
|
2548
3522
|
.op-stepper__step:not(.is-current) .op-stepper__text {
|
|
2549
|
-
|
|
3523
|
+
position: absolute;
|
|
3524
|
+
inline-size: 0;
|
|
3525
|
+
block-size: 0;
|
|
3526
|
+
overflow: hidden;
|
|
3527
|
+
clip-path: inset(50%);
|
|
3528
|
+
white-space: nowrap;
|
|
2550
3529
|
}
|
|
2551
3530
|
.op-stepper__step:not(.is-current) {
|
|
2552
3531
|
flex: none;
|
|
@@ -2575,7 +3554,7 @@
|
|
|
2575
3554
|
display: flex;
|
|
2576
3555
|
flex: none;
|
|
2577
3556
|
gap: var(--op-tabs-gap, var(--op-space-1));
|
|
2578
|
-
background: var(--op-tabs-bar-bg, var(--op-color-surface));
|
|
3557
|
+
background: var(--op-tabs-bar-bg, var(--op-color-surface-2));
|
|
2579
3558
|
border-block-end: var(--op-border-width) solid var(--op-color-border);
|
|
2580
3559
|
overflow-x: auto;
|
|
2581
3560
|
overflow-y: hidden;
|
|
@@ -2616,13 +3595,22 @@
|
|
|
2616
3595
|
color: var(--op-color-disabled-fg);
|
|
2617
3596
|
cursor: not-allowed;
|
|
2618
3597
|
}
|
|
2619
|
-
.op-tabs__close
|
|
3598
|
+
.op-tabs__close,
|
|
3599
|
+
.op-tabs__reload {
|
|
2620
3600
|
display: inline-flex;
|
|
2621
3601
|
border-radius: var(--op-radius-sm);
|
|
2622
3602
|
}
|
|
2623
|
-
.op-tabs__close:hover
|
|
3603
|
+
.op-tabs__close:hover,
|
|
3604
|
+
.op-tabs__reload:hover {
|
|
2624
3605
|
background: var(--op-color-hover);
|
|
2625
3606
|
}
|
|
3607
|
+
/* the ↻ turns while the tab reloads */
|
|
3608
|
+
.op-tabs__tab.is-reloading .op-tabs__reload svg {
|
|
3609
|
+
animation: op-spin 700ms linear infinite;
|
|
3610
|
+
}
|
|
3611
|
+
.op-motion-off .op-tabs__tab.is-reloading .op-tabs__reload svg {
|
|
3612
|
+
animation: none;
|
|
3613
|
+
}
|
|
2626
3614
|
.op-tabs__panels {
|
|
2627
3615
|
flex: 1;
|
|
2628
3616
|
min-width: 0;
|
|
@@ -2842,6 +3830,8 @@
|
|
|
2842
3830
|
@layer optikos {
|
|
2843
3831
|
:root {
|
|
2844
3832
|
--op-menu-min-width: 10rem;
|
|
3833
|
+
--op-menu-max-height: 22rem;
|
|
3834
|
+
--op-menu-group-tracking: 0.04em;
|
|
2845
3835
|
}
|
|
2846
3836
|
.op-menu {
|
|
2847
3837
|
box-sizing: border-box;
|
|
@@ -2885,6 +3875,49 @@
|
|
|
2885
3875
|
block-size: var(--op-border-width);
|
|
2886
3876
|
background: var(--op-menu-sep, var(--op-color-border));
|
|
2887
3877
|
}
|
|
3878
|
+
/* with search: the field on top, the items scroll under it */
|
|
3879
|
+
.op-menu__search {
|
|
3880
|
+
box-sizing: border-box;
|
|
3881
|
+
inline-size: 100%;
|
|
3882
|
+
min-block-size: var(--op-control-height);
|
|
3883
|
+
margin-block-end: var(--op-space-1);
|
|
3884
|
+
padding: 0 var(--op-space-2);
|
|
3885
|
+
color: var(--op-color-fg);
|
|
3886
|
+
background: var(--op-color-surface);
|
|
3887
|
+
border: var(--op-border-width) solid var(--op-color-border-strong);
|
|
3888
|
+
border-radius: var(--op-radius-sm);
|
|
3889
|
+
font: inherit;
|
|
3890
|
+
}
|
|
3891
|
+
.op-menu__search:focus-visible {
|
|
3892
|
+
outline: var(--op-focus-width) solid var(--op-color-focus);
|
|
3893
|
+
outline-offset: calc(var(--op-focus-width) * -1);
|
|
3894
|
+
}
|
|
3895
|
+
.op-menu__list {
|
|
3896
|
+
max-block-size: var(--op-menu-max-height);
|
|
3897
|
+
overflow: auto;
|
|
3898
|
+
}
|
|
3899
|
+
.op-menu__empty {
|
|
3900
|
+
padding: var(--op-space-2) var(--op-space-3);
|
|
3901
|
+
color: var(--op-color-fg-muted);
|
|
3902
|
+
font-size: var(--op-font-size-sm);
|
|
3903
|
+
}
|
|
3904
|
+
.op-menu.is-searching .op-menu__sep,
|
|
3905
|
+
.op-menu__group:not(:has(.op-menu__item:not([hidden]))) {
|
|
3906
|
+
display: none;
|
|
3907
|
+
}
|
|
3908
|
+
/* groups: a quiet header over the items that share it */
|
|
3909
|
+
.op-menu__group + .op-menu__group,
|
|
3910
|
+
.op-menu__item + .op-menu__group {
|
|
3911
|
+
margin-block-start: var(--op-space-1);
|
|
3912
|
+
}
|
|
3913
|
+
.op-menu__group-label {
|
|
3914
|
+
padding: var(--op-space-2) var(--op-space-3) var(--op-space-1) var(--op-space-2);
|
|
3915
|
+
color: var(--op-menu-group-fg, var(--op-color-fg-muted));
|
|
3916
|
+
font-size: var(--op-font-size-sm);
|
|
3917
|
+
font-weight: var(--op-font-weight-bold);
|
|
3918
|
+
letter-spacing: var(--op-menu-group-tracking);
|
|
3919
|
+
text-transform: uppercase;
|
|
3920
|
+
}
|
|
2888
3921
|
}
|
|
2889
3922
|
|
|
2890
3923
|
@layer optikos {
|
|
@@ -3010,6 +4043,8 @@
|
|
|
3010
4043
|
--op-widget-height: 26rem;
|
|
3011
4044
|
--op-widget-wide: 36rem;
|
|
3012
4045
|
--op-widget-offset: var(--op-space-4);
|
|
4046
|
+
--op-widget-grip: 0.5rem;
|
|
4047
|
+
--op-widget-corner: 1rem;
|
|
3013
4048
|
}
|
|
3014
4049
|
.op-widget {
|
|
3015
4050
|
min-block-size: 0;
|
|
@@ -3080,6 +4115,62 @@
|
|
|
3080
4115
|
.op-widget.is-dragging {
|
|
3081
4116
|
transition: none;
|
|
3082
4117
|
}
|
|
4118
|
+
/* resize: an invisible strip on the inner edge (a line shows on hover/focus); a corner grip once the widget was moved */
|
|
4119
|
+
.op-widget__resize {
|
|
4120
|
+
position: absolute;
|
|
4121
|
+
z-index: 1;
|
|
4122
|
+
touch-action: none;
|
|
4123
|
+
}
|
|
4124
|
+
.op-widget--right .op-widget__resize,
|
|
4125
|
+
.op-widget--left .op-widget__resize {
|
|
4126
|
+
inset-block: 0;
|
|
4127
|
+
inline-size: var(--op-widget-grip);
|
|
4128
|
+
cursor: ew-resize;
|
|
4129
|
+
}
|
|
4130
|
+
.op-widget--right .op-widget__resize {
|
|
4131
|
+
inset-inline-start: calc(var(--op-widget-grip) / -2);
|
|
4132
|
+
}
|
|
4133
|
+
.op-widget--left .op-widget__resize {
|
|
4134
|
+
inset-inline-end: calc(var(--op-widget-grip) / -2);
|
|
4135
|
+
}
|
|
4136
|
+
.op-widget--top .op-widget__resize,
|
|
4137
|
+
.op-widget--bottom .op-widget__resize {
|
|
4138
|
+
inset-inline: 0;
|
|
4139
|
+
block-size: var(--op-widget-grip);
|
|
4140
|
+
cursor: ns-resize;
|
|
4141
|
+
}
|
|
4142
|
+
.op-widget--top .op-widget__resize {
|
|
4143
|
+
inset-block-end: calc(var(--op-widget-grip) / -2);
|
|
4144
|
+
}
|
|
4145
|
+
.op-widget--bottom .op-widget__resize {
|
|
4146
|
+
inset-block-start: calc(var(--op-widget-grip) / -2);
|
|
4147
|
+
}
|
|
4148
|
+
.op-widget__resize:hover,
|
|
4149
|
+
.op-widget__resize:focus-visible,
|
|
4150
|
+
.op-widget.is-resizing .op-widget__resize {
|
|
4151
|
+
background: linear-gradient(var(--op-color-primary), var(--op-color-primary)) center / var(--op-focus-width) 100% no-repeat;
|
|
4152
|
+
outline: none;
|
|
4153
|
+
}
|
|
4154
|
+
.op-widget--top .op-widget__resize:is(:hover, :focus-visible),
|
|
4155
|
+
.op-widget--bottom .op-widget__resize:is(:hover, :focus-visible),
|
|
4156
|
+
.op-widget--top.is-resizing .op-widget__resize,
|
|
4157
|
+
.op-widget--bottom.is-resizing .op-widget__resize {
|
|
4158
|
+
background-size: 100% var(--op-focus-width);
|
|
4159
|
+
}
|
|
4160
|
+
.op-widget.is-moved .op-widget__resize {
|
|
4161
|
+
inset: auto 0 0 auto;
|
|
4162
|
+
inline-size: var(--op-widget-corner);
|
|
4163
|
+
block-size: var(--op-widget-corner);
|
|
4164
|
+
background: linear-gradient(135deg, transparent 55%, var(--op-color-border-strong) 55% 62%, transparent 62% 75%, var(--op-color-border-strong) 75% 82%, transparent 82%);
|
|
4165
|
+
cursor: nwse-resize;
|
|
4166
|
+
}
|
|
4167
|
+
.op-widget.is-moved .op-widget__resize:focus-visible {
|
|
4168
|
+
outline: var(--op-focus-width) solid var(--op-color-focus);
|
|
4169
|
+
}
|
|
4170
|
+
.op-widget.is-resizing {
|
|
4171
|
+
transition: none;
|
|
4172
|
+
user-select: none;
|
|
4173
|
+
}
|
|
3083
4174
|
}
|
|
3084
4175
|
|
|
3085
4176
|
@layer optikos {
|
|
@@ -3091,6 +4182,10 @@
|
|
|
3091
4182
|
inset: 0;
|
|
3092
4183
|
background: var(--op-backdrop-bg, var(--op-color-overlay));
|
|
3093
4184
|
}
|
|
4185
|
+
/* mask: false — still modal (the page is inert and takes no clicks), just not dimmed */
|
|
4186
|
+
.op-window-backdrop.is-clear {
|
|
4187
|
+
background: transparent;
|
|
4188
|
+
}
|
|
3094
4189
|
.op-window {
|
|
3095
4190
|
position: fixed;
|
|
3096
4191
|
inline-size: var(--op-window-width);
|