optikos 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (430) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/LICENSE +21 -0
  3. package/README.md +211 -2
  4. package/THIRD_PARTY_NOTICES.md +83 -0
  5. package/dist/bind.js +2 -0
  6. package/dist/bind.js.map +7 -0
  7. package/dist/chunk-2UPUC4RK.js +2 -0
  8. package/dist/chunk-2UPUC4RK.js.map +7 -0
  9. package/dist/chunk-4AA4FQEM.js +2 -0
  10. package/dist/chunk-4AA4FQEM.js.map +7 -0
  11. package/dist/chunk-4C666HHU.js +2 -0
  12. package/dist/chunk-4C666HHU.js.map +7 -0
  13. package/dist/chunk-4COBH4QJ.js +2 -0
  14. package/dist/chunk-4COBH4QJ.js.map +7 -0
  15. package/dist/chunk-4DHQKECB.js +2 -0
  16. package/dist/chunk-4DHQKECB.js.map +7 -0
  17. package/dist/chunk-4Q67QI7J.js +2 -0
  18. package/dist/chunk-4Q67QI7J.js.map +7 -0
  19. package/dist/chunk-4SUKNSCY.js +2 -0
  20. package/dist/chunk-4SUKNSCY.js.map +7 -0
  21. package/dist/chunk-5AXLYDKU.js +2 -0
  22. package/dist/chunk-5AXLYDKU.js.map +7 -0
  23. package/dist/chunk-5GNEFX6F.js +2 -0
  24. package/dist/chunk-5GNEFX6F.js.map +7 -0
  25. package/dist/chunk-5Q6Y6CM4.js +2 -0
  26. package/dist/chunk-5Q6Y6CM4.js.map +7 -0
  27. package/dist/chunk-666O2GKD.js +2 -0
  28. package/dist/chunk-666O2GKD.js.map +7 -0
  29. package/dist/chunk-676AKAGF.js +2 -0
  30. package/dist/chunk-676AKAGF.js.map +7 -0
  31. package/dist/chunk-6NCXO5ZP.js +2 -0
  32. package/dist/chunk-6NCXO5ZP.js.map +7 -0
  33. package/dist/chunk-6NJW7QFD.js +2 -0
  34. package/dist/chunk-6NJW7QFD.js.map +7 -0
  35. package/dist/chunk-6O2BXCRN.js +2 -0
  36. package/dist/chunk-6O2BXCRN.js.map +7 -0
  37. package/dist/chunk-A66MDXHL.js +2 -0
  38. package/dist/chunk-A66MDXHL.js.map +7 -0
  39. package/dist/chunk-ARCW54L2.js +2 -0
  40. package/dist/chunk-ARCW54L2.js.map +7 -0
  41. package/dist/chunk-BIYNHKSA.js +2 -0
  42. package/dist/chunk-BIYNHKSA.js.map +7 -0
  43. package/dist/chunk-BNPVRIFT.js +2 -0
  44. package/dist/chunk-BNPVRIFT.js.map +7 -0
  45. package/dist/chunk-C3N7QTQB.js +2 -0
  46. package/dist/chunk-C3N7QTQB.js.map +7 -0
  47. package/dist/chunk-CEXY5A4T.js +2 -0
  48. package/dist/chunk-CEXY5A4T.js.map +7 -0
  49. package/dist/chunk-CN7USUJR.js +2 -0
  50. package/dist/chunk-CN7USUJR.js.map +7 -0
  51. package/dist/chunk-CQRHNTEX.js +2 -0
  52. package/dist/chunk-CQRHNTEX.js.map +7 -0
  53. package/dist/chunk-CUPAPOKC.js +2 -0
  54. package/dist/chunk-CUPAPOKC.js.map +7 -0
  55. package/dist/chunk-DXO3UJKL.js +2 -0
  56. package/dist/chunk-DXO3UJKL.js.map +7 -0
  57. package/dist/chunk-GZNQPENR.js +2 -0
  58. package/dist/chunk-GZNQPENR.js.map +7 -0
  59. package/dist/chunk-HFFK6K4K.js +2 -0
  60. package/dist/chunk-HFFK6K4K.js.map +7 -0
  61. package/dist/chunk-IHAYOSBR.js +2 -0
  62. package/dist/chunk-IHAYOSBR.js.map +7 -0
  63. package/dist/chunk-IO66A6G5.js +2 -0
  64. package/dist/chunk-IO66A6G5.js.map +7 -0
  65. package/dist/chunk-IW7PK4VS.js +2 -0
  66. package/dist/chunk-IW7PK4VS.js.map +7 -0
  67. package/dist/chunk-IYPKPLCU.js +2 -0
  68. package/dist/chunk-IYPKPLCU.js.map +7 -0
  69. package/dist/chunk-JTYWZMSZ.js +2 -0
  70. package/dist/chunk-JTYWZMSZ.js.map +7 -0
  71. package/dist/chunk-JVEPKW5X.js +2 -0
  72. package/dist/chunk-JVEPKW5X.js.map +7 -0
  73. package/dist/chunk-JZNEB7A7.js +2 -0
  74. package/dist/chunk-JZNEB7A7.js.map +7 -0
  75. package/dist/chunk-K2DGY6MP.js +2 -0
  76. package/dist/chunk-K2DGY6MP.js.map +7 -0
  77. package/dist/chunk-LBCWEWPN.js +2 -0
  78. package/dist/chunk-LBCWEWPN.js.map +7 -0
  79. package/dist/chunk-LEE2FEEL.js +2 -0
  80. package/dist/chunk-LEE2FEEL.js.map +7 -0
  81. package/dist/chunk-LMGCV35W.js +2 -0
  82. package/dist/chunk-LMGCV35W.js.map +7 -0
  83. package/dist/chunk-LV6HXFHU.js +3 -0
  84. package/dist/chunk-LV6HXFHU.js.map +7 -0
  85. package/dist/chunk-MA5BJL3S.js +2 -0
  86. package/dist/chunk-MA5BJL3S.js.map +7 -0
  87. package/dist/chunk-NDBFYIL6.js +2 -0
  88. package/dist/chunk-NDBFYIL6.js.map +7 -0
  89. package/dist/chunk-NHVEP72K.js +2 -0
  90. package/dist/chunk-NHVEP72K.js.map +7 -0
  91. package/dist/chunk-NV5AIBQP.js +2 -0
  92. package/dist/chunk-NV5AIBQP.js.map +7 -0
  93. package/dist/chunk-NWTTHDIM.js +2 -0
  94. package/dist/chunk-NWTTHDIM.js.map +7 -0
  95. package/dist/chunk-O4DCHALR.js +2 -0
  96. package/dist/chunk-O4DCHALR.js.map +7 -0
  97. package/dist/chunk-ODWPBBVL.js +2 -0
  98. package/dist/chunk-ODWPBBVL.js.map +7 -0
  99. package/dist/chunk-OW2ZSMGS.js +2 -0
  100. package/dist/chunk-OW2ZSMGS.js.map +7 -0
  101. package/dist/chunk-OWEQT2HN.js +2 -0
  102. package/dist/chunk-OWEQT2HN.js.map +7 -0
  103. package/dist/chunk-PSPQH35P.js +2 -0
  104. package/dist/chunk-PSPQH35P.js.map +7 -0
  105. package/dist/chunk-PZSHOSOS.js +2 -0
  106. package/dist/chunk-PZSHOSOS.js.map +7 -0
  107. package/dist/chunk-QEQIJAAB.js +2 -0
  108. package/dist/chunk-QEQIJAAB.js.map +7 -0
  109. package/dist/chunk-SNTHW4K2.js +2 -0
  110. package/dist/chunk-SNTHW4K2.js.map +7 -0
  111. package/dist/chunk-T4OYVG2X.js +2 -0
  112. package/dist/chunk-T4OYVG2X.js.map +7 -0
  113. package/dist/chunk-TBLICXWW.js +2 -0
  114. package/dist/chunk-TBLICXWW.js.map +7 -0
  115. package/dist/chunk-TK2RC3T5.js +2 -0
  116. package/dist/chunk-TK2RC3T5.js.map +7 -0
  117. package/dist/chunk-U3X2FW6U.js +2 -0
  118. package/dist/chunk-U3X2FW6U.js.map +7 -0
  119. package/dist/chunk-UPOBGNJ5.js +2 -0
  120. package/dist/chunk-UPOBGNJ5.js.map +7 -0
  121. package/dist/chunk-VV7CFMPZ.js +2 -0
  122. package/dist/chunk-VV7CFMPZ.js.map +7 -0
  123. package/dist/chunk-X2ASKUFD.js +2 -0
  124. package/dist/chunk-X2ASKUFD.js.map +7 -0
  125. package/dist/chunk-X6AULZI4.js +1 -0
  126. package/dist/chunk-X6AULZI4.js.map +7 -0
  127. package/dist/chunk-XVIC24AW.js +2 -0
  128. package/dist/chunk-XVIC24AW.js.map +7 -0
  129. package/dist/chunk-XZ5CUZZP.js +2 -0
  130. package/dist/chunk-XZ5CUZZP.js.map +7 -0
  131. package/dist/chunk-XZEOSW3Q.js +2 -0
  132. package/dist/chunk-XZEOSW3Q.js.map +7 -0
  133. package/dist/chunk-YET5PM6F.js +2 -0
  134. package/dist/chunk-YET5PM6F.js.map +7 -0
  135. package/dist/chunk-Z25NC4CS.js +2 -0
  136. package/dist/chunk-Z25NC4CS.js.map +7 -0
  137. package/dist/chunk-ZCAAM4NH.js +2 -0
  138. package/dist/chunk-ZCAAM4NH.js.map +7 -0
  139. package/dist/chunk-ZHVSHDLH.js +2 -0
  140. package/dist/chunk-ZHVSHDLH.js.map +7 -0
  141. package/dist/chunk-ZYUXCZX7.js +2 -0
  142. package/dist/chunk-ZYUXCZX7.js.map +7 -0
  143. package/dist/components/breadcrumb.js +2 -0
  144. package/dist/components/breadcrumb.js.map +7 -0
  145. package/dist/components/button.js +2 -0
  146. package/dist/components/button.js.map +7 -0
  147. package/dist/components/calendar.js +2 -0
  148. package/dist/components/calendar.js.map +7 -0
  149. package/dist/components/chat.js +2 -0
  150. package/dist/components/chat.js.map +7 -0
  151. package/dist/components/checkbox.js +2 -0
  152. package/dist/components/checkbox.js.map +7 -0
  153. package/dist/components/combobox.js +2 -0
  154. package/dist/components/combobox.js.map +7 -0
  155. package/dist/components/commandpalette.js +2 -0
  156. package/dist/components/commandpalette.js.map +7 -0
  157. package/dist/components/container.js +2 -0
  158. package/dist/components/container.js.map +7 -0
  159. package/dist/components/dataview.js +2 -0
  160. package/dist/components/dataview.js.map +7 -0
  161. package/dist/components/datefield.js +2 -0
  162. package/dist/components/datefield.js.map +7 -0
  163. package/dist/components/daterangefield.js +2 -0
  164. package/dist/components/daterangefield.js.map +7 -0
  165. package/dist/components/dropdown.js +2 -0
  166. package/dist/components/dropdown.js.map +7 -0
  167. package/dist/components/fieldset.js +2 -0
  168. package/dist/components/fieldset.js.map +7 -0
  169. package/dist/components/filterbuilder.js +2 -0
  170. package/dist/components/filterbuilder.js.map +7 -0
  171. package/dist/components/form.js +2 -0
  172. package/dist/components/form.js.map +7 -0
  173. package/dist/components/grid.js +2 -0
  174. package/dist/components/grid.js.map +7 -0
  175. package/dist/components/icon.js +2 -0
  176. package/dist/components/icon.js.map +7 -0
  177. package/dist/components/label.js +2 -0
  178. package/dist/components/label.js.map +7 -0
  179. package/dist/components/listbox.js +2 -0
  180. package/dist/components/listbox.js.map +7 -0
  181. package/dist/components/lookupfield.js +2 -0
  182. package/dist/components/lookupfield.js.map +7 -0
  183. package/dist/components/menu.js +2 -0
  184. package/dist/components/menu.js.map +7 -0
  185. package/dist/components/messagebox.js +2 -0
  186. package/dist/components/messagebox.js.map +7 -0
  187. package/dist/components/navmenu.js +2 -0
  188. package/dist/components/navmenu.js.map +7 -0
  189. package/dist/components/numberfield.js +2 -0
  190. package/dist/components/numberfield.js.map +7 -0
  191. package/dist/components/pagination.js +2 -0
  192. package/dist/components/pagination.js.map +7 -0
  193. package/dist/components/panel.js +2 -0
  194. package/dist/components/panel.js.map +7 -0
  195. package/dist/components/pickerfield.js +2 -0
  196. package/dist/components/pickerfield.js.map +7 -0
  197. package/dist/components/radiogroup.js +2 -0
  198. package/dist/components/radiogroup.js.map +7 -0
  199. package/dist/components/searchgrid.js +2 -0
  200. package/dist/components/searchgrid.js.map +7 -0
  201. package/dist/components/secretfield.js +2 -0
  202. package/dist/components/secretfield.js.map +7 -0
  203. package/dist/components/select.js +2 -0
  204. package/dist/components/select.js.map +7 -0
  205. package/dist/components/slider.js +2 -0
  206. package/dist/components/slider.js.map +7 -0
  207. package/dist/components/spacer.js +2 -0
  208. package/dist/components/spacer.js.map +7 -0
  209. package/dist/components/spinner.js +2 -0
  210. package/dist/components/spinner.js.map +7 -0
  211. package/dist/components/stepform.js +2 -0
  212. package/dist/components/stepform.js.map +7 -0
  213. package/dist/components/stepper.js +2 -0
  214. package/dist/components/stepper.js.map +7 -0
  215. package/dist/components/suggestfield.js +2 -0
  216. package/dist/components/suggestfield.js.map +7 -0
  217. package/dist/components/table.js +2 -0
  218. package/dist/components/table.js.map +7 -0
  219. package/dist/components/tabs.js +2 -0
  220. package/dist/components/tabs.js.map +7 -0
  221. package/dist/components/textarea.js +2 -0
  222. package/dist/components/textarea.js.map +7 -0
  223. package/dist/components/textfield.js +2 -0
  224. package/dist/components/textfield.js.map +7 -0
  225. package/dist/components/toast.js +2 -0
  226. package/dist/components/toast.js.map +7 -0
  227. package/dist/components/toolbar.js +2 -0
  228. package/dist/components/toolbar.js.map +7 -0
  229. package/dist/components/tooltip.js +2 -0
  230. package/dist/components/tooltip.js.map +7 -0
  231. package/dist/components/viewmanager.js +2 -0
  232. package/dist/components/viewmanager.js.map +7 -0
  233. package/dist/components/viewport.js +2 -0
  234. package/dist/components/viewport.js.map +7 -0
  235. package/dist/components/widget.js +2 -0
  236. package/dist/components/widget.js.map +7 -0
  237. package/dist/components/window.js +2 -0
  238. package/dist/components/window.js.map +7 -0
  239. package/dist/core.js +2 -0
  240. package/dist/core.js.map +7 -0
  241. package/dist/css/base.css +160 -0
  242. package/dist/css/breadcrumb.css +53 -0
  243. package/dist/css/button.css +101 -0
  244. package/dist/css/calendar.css +108 -0
  245. package/dist/css/chat.css +233 -0
  246. package/dist/css/checkbox.css +64 -0
  247. package/dist/css/commandpalette.css +167 -0
  248. package/dist/css/container.css +5 -0
  249. package/dist/css/core.css +88 -0
  250. package/dist/css/dataview.css +56 -0
  251. package/dist/css/dropdown.css +13 -0
  252. package/dist/css/field.css +62 -0
  253. package/dist/css/fieldset.css +32 -0
  254. package/dist/css/filterbuilder.css +125 -0
  255. package/dist/css/form.css +8 -0
  256. package/dist/css/grid.css +367 -0
  257. package/dist/css/icon.css +16 -0
  258. package/dist/css/label.css +12 -0
  259. package/dist/css/layout.css +116 -0
  260. package/dist/css/listbox.css +50 -0
  261. package/dist/css/menu.css +47 -0
  262. package/dist/css/messagebox.css +6 -0
  263. package/dist/css/motion.css +29 -0
  264. package/dist/css/navmenu.css +115 -0
  265. package/dist/css/pagination.css +23 -0
  266. package/dist/css/panel.css +77 -0
  267. package/dist/css/pickerfield.css +85 -0
  268. package/dist/css/radiogroup.css +53 -0
  269. package/dist/css/searchgrid.css +37 -0
  270. package/dist/css/secretfield.css +73 -0
  271. package/dist/css/slider.css +107 -0
  272. package/dist/css/spacer.css +7 -0
  273. package/dist/css/stepform.css +46 -0
  274. package/dist/css/stepper.css +117 -0
  275. package/dist/css/table.css +36 -0
  276. package/dist/css/tabs.css +99 -0
  277. package/dist/css/textarea.css +11 -0
  278. package/dist/css/textfield.css +59 -0
  279. package/dist/css/toast.css +91 -0
  280. package/dist/css/toolbar.css +14 -0
  281. package/dist/css/tooltip.css +17 -0
  282. package/dist/css/viewport.css +9 -0
  283. package/dist/css/widget.css +77 -0
  284. package/dist/css/window.css +31 -0
  285. package/dist/data.js +2 -0
  286. package/dist/data.js.map +7 -0
  287. package/dist/index.js +8 -0
  288. package/dist/index.js.map +7 -0
  289. package/dist/motion.js +2 -0
  290. package/dist/motion.js.map +7 -0
  291. package/dist/optikos.css +3145 -0
  292. package/dist/themes/brand.css +240 -0
  293. package/dist/themes/brutal.css +100 -0
  294. package/dist/themes/compact.css +17 -0
  295. package/dist/themes/corporate.css +112 -0
  296. package/dist/themes/dark.css +38 -0
  297. package/dist/themes/editorial.css +110 -0
  298. package/dist/themes/soft.css +101 -0
  299. package/dist/themes/terminal.css +91 -0
  300. package/dist/types/bind/index.d.ts +23 -0
  301. package/dist/types/components/base/button/button.d.ts +34 -0
  302. package/dist/types/components/base/icon/icon.d.ts +17 -0
  303. package/dist/types/components/base/label/label.d.ts +14 -0
  304. package/dist/types/components/breadcrumb.d.ts +1 -0
  305. package/dist/types/components/button.d.ts +1 -0
  306. package/dist/types/components/calendar.d.ts +1 -0
  307. package/dist/types/components/chat/chat/chat.d.ts +84 -0
  308. package/dist/types/components/chat.d.ts +1 -0
  309. package/dist/types/components/checkbox.d.ts +1 -0
  310. package/dist/types/components/combobox.d.ts +1 -0
  311. package/dist/types/components/commandpalette.d.ts +1 -0
  312. package/dist/types/components/container.d.ts +1 -0
  313. package/dist/types/components/data/dataview/dataview.d.ts +61 -0
  314. package/dist/types/components/data/filterbuilder/filterbuilder.d.ts +71 -0
  315. package/dist/types/components/data/grid/grid.d.ts +151 -0
  316. package/dist/types/components/data/pagination/pagination.d.ts +31 -0
  317. package/dist/types/components/data/searchgrid/searchgrid.d.ts +63 -0
  318. package/dist/types/components/data/table/table.d.ts +26 -0
  319. package/dist/types/components/data/viewmanager/viewmanager.d.ts +86 -0
  320. package/dist/types/components/dataview.d.ts +1 -0
  321. package/dist/types/components/datefield.d.ts +1 -0
  322. package/dist/types/components/daterangefield.d.ts +1 -0
  323. package/dist/types/components/dates/calendar/calendar.d.ts +48 -0
  324. package/dist/types/components/dropdown.d.ts +1 -0
  325. package/dist/types/components/feedback/spinner/spinner.d.ts +11 -0
  326. package/dist/types/components/fields/checkbox/checkbox.d.ts +20 -0
  327. package/dist/types/components/fields/combobox/combobox.d.ts +15 -0
  328. package/dist/types/components/fields/datefield/datefield.d.ts +30 -0
  329. package/dist/types/components/fields/daterangefield/daterangefield.d.ts +32 -0
  330. package/dist/types/components/fields/listbox/listbox.d.ts +54 -0
  331. package/dist/types/components/fields/lookupfield/lookupfield.d.ts +25 -0
  332. package/dist/types/components/fields/numberfield/numberfield.d.ts +31 -0
  333. package/dist/types/components/fields/pickerfield/pickerfield.d.ts +77 -0
  334. package/dist/types/components/fields/radiogroup/radiogroup.d.ts +26 -0
  335. package/dist/types/components/fields/secretfield/secretfield.d.ts +52 -0
  336. package/dist/types/components/fields/select/select.d.ts +10 -0
  337. package/dist/types/components/fields/slider/slider.d.ts +62 -0
  338. package/dist/types/components/fields/suggestfield/suggestfield.d.ts +34 -0
  339. package/dist/types/components/fields/textarea/textarea.d.ts +16 -0
  340. package/dist/types/components/fields/textfield/textfield.d.ts +38 -0
  341. package/dist/types/components/fieldset.d.ts +1 -0
  342. package/dist/types/components/filterbuilder.d.ts +1 -0
  343. package/dist/types/components/form/form/form.d.ts +51 -0
  344. package/dist/types/components/form/stepform/stepform.d.ts +62 -0
  345. package/dist/types/components/form.d.ts +1 -0
  346. package/dist/types/components/grid.d.ts +1 -0
  347. package/dist/types/components/icon.d.ts +1 -0
  348. package/dist/types/components/label.d.ts +1 -0
  349. package/dist/types/components/layout/container/container.d.ts +1 -0
  350. package/dist/types/components/layout/fieldset/fieldset.d.ts +21 -0
  351. package/dist/types/components/layout/panel/panel.d.ts +47 -0
  352. package/dist/types/components/layout/spacer/spacer.d.ts +12 -0
  353. package/dist/types/components/layout/toolbar/toolbar.d.ts +15 -0
  354. package/dist/types/components/layout/viewport/viewport.d.ts +7 -0
  355. package/dist/types/components/listbox.d.ts +1 -0
  356. package/dist/types/components/lookupfield.d.ts +1 -0
  357. package/dist/types/components/menu.d.ts +1 -0
  358. package/dist/types/components/messagebox.d.ts +1 -0
  359. package/dist/types/components/navigation/breadcrumb/breadcrumb.d.ts +32 -0
  360. package/dist/types/components/navigation/navmenu/navmenu.d.ts +63 -0
  361. package/dist/types/components/navigation/stepper/stepper.d.ts +31 -0
  362. package/dist/types/components/navigation/tabs/tabs.d.ts +49 -0
  363. package/dist/types/components/navmenu.d.ts +1 -0
  364. package/dist/types/components/numberfield.d.ts +1 -0
  365. package/dist/types/components/overlays/commandpalette/commandpalette.d.ts +80 -0
  366. package/dist/types/components/overlays/dropdown/dropdown.d.ts +41 -0
  367. package/dist/types/components/overlays/menu/menu.d.ts +41 -0
  368. package/dist/types/components/overlays/messagebox/messagebox.d.ts +53 -0
  369. package/dist/types/components/overlays/toast/toast.d.ts +45 -0
  370. package/dist/types/components/overlays/tooltip/tooltip.d.ts +13 -0
  371. package/dist/types/components/overlays/widget/widget.d.ts +48 -0
  372. package/dist/types/components/overlays/window/window.d.ts +31 -0
  373. package/dist/types/components/pagination.d.ts +1 -0
  374. package/dist/types/components/panel.d.ts +1 -0
  375. package/dist/types/components/pickerfield.d.ts +1 -0
  376. package/dist/types/components/radiogroup.d.ts +1 -0
  377. package/dist/types/components/searchgrid.d.ts +1 -0
  378. package/dist/types/components/secretfield.d.ts +1 -0
  379. package/dist/types/components/select.d.ts +1 -0
  380. package/dist/types/components/slider.d.ts +1 -0
  381. package/dist/types/components/spacer.d.ts +1 -0
  382. package/dist/types/components/spinner.d.ts +1 -0
  383. package/dist/types/components/stepform.d.ts +1 -0
  384. package/dist/types/components/stepper.d.ts +1 -0
  385. package/dist/types/components/suggestfield.d.ts +1 -0
  386. package/dist/types/components/table.d.ts +1 -0
  387. package/dist/types/components/tabs.d.ts +1 -0
  388. package/dist/types/components/textarea.d.ts +1 -0
  389. package/dist/types/components/textfield.d.ts +1 -0
  390. package/dist/types/components/toast.d.ts +1 -0
  391. package/dist/types/components/toolbar.d.ts +1 -0
  392. package/dist/types/components/tooltip.d.ts +1 -0
  393. package/dist/types/components/viewmanager.d.ts +1 -0
  394. package/dist/types/components/viewport.d.ts +1 -0
  395. package/dist/types/components/widget.d.ts +1 -0
  396. package/dist/types/components/window.d.ts +1 -0
  397. package/dist/types/core/component.d.ts +90 -0
  398. package/dist/types/core/container.d.ts +43 -0
  399. package/dist/types/core/date.d.ts +14 -0
  400. package/dist/types/core/dom.d.ts +11 -0
  401. package/dist/types/core/emitter.d.ts +12 -0
  402. package/dist/types/core/field.d.ts +78 -0
  403. package/dist/types/core/focus.d.ts +18 -0
  404. package/dist/types/core/i18n.d.ts +7 -0
  405. package/dist/types/core/index.d.ts +15 -0
  406. package/dist/types/core/layer.d.ts +6 -0
  407. package/dist/types/core/position.d.ts +16 -0
  408. package/dist/types/core/registry.d.ts +12 -0
  409. package/dist/types/core/validators.d.ts +10 -0
  410. package/dist/types/core/virtual.d.ts +24 -0
  411. package/dist/types/data/column.d.ts +27 -0
  412. package/dist/types/data/format.d.ts +4 -0
  413. package/dist/types/data/index.d.ts +5 -0
  414. package/dist/types/data/model.d.ts +28 -0
  415. package/dist/types/data/proxy.d.ts +61 -0
  416. package/dist/types/data/store.d.ts +94 -0
  417. package/dist/types/index.d.ts +53 -0
  418. package/dist/types/layout/layout.d.ts +27 -0
  419. package/dist/types/motion/config.d.ts +83 -0
  420. package/dist/types/motion/core.d.ts +40 -0
  421. package/dist/types/motion/extras.d.ts +66 -0
  422. package/dist/types/motion/index.d.ts +3 -0
  423. package/dist/types/themes/define.d.ts +30 -0
  424. package/dist/types/themes/index.d.ts +1 -0
  425. package/dist/types/ui/enums.d.ts +88 -0
  426. package/dist/types/ui/index.d.ts +2 -0
  427. package/dist/types/ui/ui.d.ts +58 -0
  428. package/dist/ui.js +2 -0
  429. package/dist/ui.js.map +7 -0
  430. package/package.json +99 -4
@@ -0,0 +1,101 @@
1
+ /* Soft: airy and rounded, pastel violet, pill buttons, diffuse shadows, no hairlines. data-op-theme="soft" */
2
+ @layer optikos {
3
+ :root[data-op-theme~='soft'] {
4
+ background: linear-gradient(135deg, #eef1fb 0%, #f6efff 100%) fixed;
5
+ }
6
+ [data-op-theme~='soft'] {
7
+ --op-color-bg: #eef1fb;
8
+ --op-color-surface: #ffffff;
9
+ --op-color-surface-2: #f4f5fd;
10
+ --op-color-fg: #2d3142;
11
+ --op-color-fg-muted: #7b819b;
12
+ --op-color-border: #e6e9f7;
13
+ --op-color-border-strong: #d6dbf0;
14
+ --op-color-hover: #f1efff;
15
+ --op-color-selected: #e6e0ff;
16
+ --op-color-primary: #7c5cff;
17
+ --op-color-primary-hover: #6a48f5;
18
+ --op-color-primary-fg: #ffffff;
19
+ --op-color-primary-soft: #efeaff;
20
+ --op-color-danger: #ef5b7b;
21
+ --op-color-danger-hover: #dc4565;
22
+ --op-color-danger-fg: #ffffff;
23
+ --op-color-danger-soft: #ffe9ee;
24
+ --op-color-success: #2fb59a;
25
+ --op-color-success-soft: #dff6f0;
26
+ --op-color-warning: #f2a03d;
27
+ --op-color-warning-soft: #fff0dc;
28
+ --op-color-info: #4f8cff;
29
+ --op-color-info-soft: #e5eeff;
30
+ --op-color-focus: #9a82ff;
31
+ --op-color-disabled-fg: #aab0c6;
32
+ --op-color-disabled-bg: #f1f2fa;
33
+ --op-color-overlay: rgb(45 49 66 / 0.35);
34
+
35
+ --op-font-family: ui-rounded, 'SF Pro Rounded', 'Segoe UI', system-ui, sans-serif;
36
+ --op-border-width: 1px;
37
+ --op-font-size: 0.9375rem;
38
+ --op-line-height: 1.5;
39
+ --op-font-weight-medium: 500;
40
+ --op-font-weight-bold: 600;
41
+
42
+ --op-space-1: 0.375rem;
43
+ --op-space-2: 0.625rem;
44
+ --op-space-3: 1rem;
45
+ --op-space-4: 1.25rem;
46
+ --op-space-5: 1.75rem;
47
+ --op-control-height: 2.75rem;
48
+ --op-control-padding-x: 1.125rem;
49
+ --op-row-height: 3.25rem;
50
+ --op-radius-sm: 0.625rem;
51
+ --op-radius: 0.875rem;
52
+ --op-radius-lg: 1.5rem;
53
+ --op-focus-width: 3px;
54
+
55
+ --op-shadow-sm: 0 2px 6px rgb(124 92 255 / 0.1);
56
+ --op-shadow: 0 8px 24px rgb(124 92 255 / 0.14);
57
+ --op-shadow-lg: 0 20px 50px rgb(124 92 255 / 0.22);
58
+ --op-duration: 200ms;
59
+ --op-easing: cubic-bezier(0.2, 0.8, 0.2, 1);
60
+
61
+ --op-button-radius: var(--op-radius-pill);
62
+ --op-button-primary-bg: linear-gradient(135deg, #8b6cff, #6f4df0);
63
+ --op-panel-radius: 1.25rem;
64
+ --op-panel-shadow: var(--op-shadow);
65
+ --op-panel-border: transparent;
66
+ --op-panel-header-bg: transparent;
67
+ --op-grid-radius: 1.25rem;
68
+ --op-grid-border: transparent;
69
+ --op-grid-header-bg: var(--op-color-surface-2);
70
+ --op-tabs-tab-active-border: var(--op-color-primary);
71
+ --op-window-radius: 1.5rem;
72
+ }
73
+ [data-op-theme~='soft'] .op-button {
74
+ box-shadow: var(--op-shadow-sm);
75
+ }
76
+ [data-op-theme~='soft'] .op-button:hover:not(:disabled) {
77
+ transform: translateY(-1px);
78
+ box-shadow: var(--op-shadow);
79
+ }
80
+ [data-op-theme~='soft'] .op-button--ghost {
81
+ box-shadow: none;
82
+ }
83
+ [data-op-theme~='soft'] .op-textfield__input {
84
+ border-color: transparent;
85
+ background: var(--op-color-surface-2);
86
+ }
87
+ [data-op-theme~='soft'] .op-textfield__input:focus {
88
+ background: var(--op-color-surface);
89
+ box-shadow: var(--op-shadow-sm);
90
+ }
91
+ [data-op-theme~='soft'] .op-panel__header {
92
+ border-block-end: 0;
93
+ padding-block-start: var(--op-space-4);
94
+ }
95
+ [data-op-theme~='soft'] .op-grid__body-row {
96
+ border-block-end-color: transparent;
97
+ }
98
+ [data-op-theme~='soft'] .op-grid__body-row:hover {
99
+ border-radius: var(--op-radius);
100
+ }
101
+ }
@@ -0,0 +1,91 @@
1
+ /* Terminal: phosphor green on black, monospace, square, dense, glowing focus. data-op-theme="terminal" */
2
+ @layer optikos {
3
+ [data-op-theme~='terminal'] {
4
+ color-scheme: dark; /* native scrollbars and controls follow */
5
+ --op-color-bg: #040905;
6
+ --op-color-surface: #08110a;
7
+ --op-color-surface-2: #0d1a10;
8
+ --op-color-fg: #b6f5c4;
9
+ --op-color-fg-muted: #5f9b70;
10
+ --op-color-border: #1c4a28;
11
+ --op-color-border-strong: #2c7a40;
12
+ --op-color-hover: #11301a;
13
+ --op-color-selected: #164a24;
14
+ --op-color-primary: #39ff14;
15
+ --op-color-primary-hover: #7dff64;
16
+ --op-color-primary-fg: #021006;
17
+ --op-color-primary-soft: #0d2a12;
18
+ --op-color-danger: #ff5555;
19
+ --op-color-danger-hover: #ff8080;
20
+ --op-color-danger-fg: #1a0000;
21
+ --op-color-danger-soft: #2a0b0b;
22
+ --op-color-success: #39ff14;
23
+ --op-color-success-soft: #0d2a12;
24
+ --op-color-warning: #ffd166;
25
+ --op-color-warning-soft: #2e2408;
26
+ --op-color-info: #5ad1ff;
27
+ --op-color-info-soft: #0a2430;
28
+ --op-color-focus: #39ff14;
29
+ --op-color-disabled-fg: #3b6a49;
30
+ --op-color-disabled-bg: #0a140c;
31
+ --op-color-overlay: rgb(0 0 0 / 0.78);
32
+ --op-color-inverse-bg: #b6f5c4;
33
+ --op-color-inverse-fg: #040905;
34
+
35
+ --op-font-family: ui-monospace, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;
36
+ --op-border-width: 1px;
37
+ --op-font-size: 0.8125rem;
38
+ --op-font-size-sm: 0.6875rem;
39
+ --op-line-height: 1.35;
40
+
41
+ --op-space-1: 0.125rem;
42
+ --op-space-2: 0.375rem;
43
+ --op-space-3: 0.5rem;
44
+ --op-space-4: 0.75rem;
45
+ --op-space-5: 1.125rem;
46
+ --op-control-height: 1.875rem;
47
+ --op-control-padding-x: 0.625rem;
48
+ --op-row-height: 1.75rem;
49
+ --op-radius-sm: 0;
50
+ --op-radius: 0;
51
+ --op-radius-lg: 0;
52
+ --op-radius-pill: 0;
53
+ --op-focus-width: 1px;
54
+ --op-focus-offset: 0;
55
+ --op-icon-stroke: 1.5;
56
+
57
+ --op-shadow-sm: 0 0 0 1px #1c4a28;
58
+ --op-shadow: 0 0 0 1px #2c7a40, 0 0 14px rgb(57 255 20 / 0.12);
59
+ --op-shadow-lg: 0 0 0 1px #39ff14, 0 0 32px rgb(57 255 20 / 0.2);
60
+ --op-duration: 0ms;
61
+
62
+ --op-panel-header-bg: transparent;
63
+ --op-grid-header-bg: var(--op-color-surface-2);
64
+ --op-grid-header-fg: var(--op-color-primary);
65
+ --op-tabs-tab-active-fg: var(--op-color-primary);
66
+ }
67
+ [data-op-theme~='terminal'] .op-panel__title::before {
68
+ content: '> ';
69
+ color: var(--op-color-primary);
70
+ }
71
+ [data-op-theme~='terminal'] .op-button:not(.op-button--ghost) {
72
+ border-color: var(--op-color-primary);
73
+ }
74
+ [data-op-theme~='terminal'] .op-button {
75
+ text-transform: lowercase;
76
+ }
77
+ [data-op-theme~='terminal'] .op-textfield__input {
78
+ caret-color: var(--op-color-primary);
79
+ }
80
+ [data-op-theme~='terminal'] .op-textfield__input:focus,
81
+ [data-op-theme~='terminal'] .op-button:focus-visible {
82
+ box-shadow: 0 0 10px rgb(57 255 20 / 0.35);
83
+ }
84
+ [data-op-theme~='terminal'] ::selection {
85
+ color: var(--op-color-primary-fg);
86
+ background: var(--op-color-primary);
87
+ }
88
+ [data-op-theme~='terminal'] .op-grid__hcell {
89
+ text-transform: uppercase;
90
+ }
91
+ }
@@ -0,0 +1,23 @@
1
+ import type { Component } from '../core/component.js';
2
+ type Sub = () => void;
3
+ export interface Signal<T> {
4
+ (): T;
5
+ set(value: T): void;
6
+ update(fn: (v: T) => T): void;
7
+ }
8
+ export declare function signal<T>(initial: T): Signal<T>;
9
+ /** Runs `fn` now and again whenever a signal it read changes. Returns the dispose function. */
10
+ export declare function effect(fn: () => void | Sub): () => void;
11
+ /** A read-only signal derived from others. */
12
+ export declare function computed<T>(fn: () => T): () => T;
13
+ /** Wraps a Store (or anything with `subscribe`) so reading it inside an effect/computed re-runs that effect on every change. Call it once, outside effects. */
14
+ export declare function fromStore<S extends {
15
+ subscribe(fn: () => void): () => void;
16
+ }>(store: S): () => S;
17
+ /**
18
+ * `bind(button, { text: () => `Count: ${n()}`, disabled: isBusy })` → `button.setText(...)`, `button.setDisabled(...)`
19
+ * re-run when the sources change, and are disposed with the component. A source that is a writable signal on `value`
20
+ * is two-way: the field's `change` event writes back.
21
+ */
22
+ export declare function bind(cmp: Component<any>, map: Record<string, () => unknown>): void;
23
+ export {};
@@ -0,0 +1,34 @@
1
+ import { Component, type ComponentConfig } from '../../../core/component.js';
2
+ export interface ButtonConfig extends ComponentConfig {
3
+ text?: string;
4
+ icon?: string;
5
+ iconPos?: 'left' | 'right';
6
+ variant?: 'default' | 'primary' | 'danger' | 'ghost';
7
+ htmlType?: 'button' | 'submit' | 'reset';
8
+ handler?: (button: Button, ev: MouseEvent) => unknown;
9
+ /** Behaves as a toggle button (`aria-pressed`). */
10
+ toggle?: boolean;
11
+ pressed?: boolean;
12
+ /** Text shown while loading. Default: `text`. Passing a string to `loading` sets it too. */
13
+ loadingText?: string;
14
+ }
15
+ export declare class Button extends Component<ButtonConfig> {
16
+ protected baseCls: string;
17
+ protected tag: 'button';
18
+ private textEl;
19
+ private busyTextEl;
20
+ private iconHost;
21
+ protected build(): HTMLButtonElement;
22
+ protected onRender(): void;
23
+ protected onDisabled(disabled: boolean): void;
24
+ setText(text: string): void;
25
+ setIcon(name: string): void;
26
+ setVariant(variant: NonNullable<ButtonConfig['variant']>): void;
27
+ setPressed(pressed: boolean): void;
28
+ /** The button shows its own spinner (no mask) and ignores clicks while loading. A string is the loading text. */
29
+ setLoading(loading: boolean | string): void;
30
+ setLoadingText(text: string): void;
31
+ /** A subtle ring that confirms the action worked (motion rule 8). */
32
+ pulse(): void;
33
+ click(): void;
34
+ }
@@ -0,0 +1,17 @@
1
+ import { Component, type ComponentConfig } from '../../../core/component.js';
2
+ /** Registers icons by name. A value is either SVG inner markup (24×24 viewBox, stroke style) or a full `<svg>` string. Trusted: comes from your code. */
3
+ export declare function registerIcons(map: Record<string, string>): void;
4
+ export declare const hasIcon: (name: string) => boolean;
5
+ /** A `<span class="op-icon">` holding the SVG. Decorative unless `label` is given. */
6
+ export declare function iconEl(name: string, label?: string): HTMLElement;
7
+ export interface IconConfig extends ComponentConfig {
8
+ name?: string;
9
+ label?: string;
10
+ }
11
+ export declare class Icon extends Component<IconConfig> {
12
+ protected baseCls: string;
13
+ protected tag: 'span';
14
+ protected onRender(): void;
15
+ setName(name: string): void;
16
+ setLabel(label: string): void;
17
+ }
@@ -0,0 +1,14 @@
1
+ import { Component, type ComponentConfig } from '../../../core/component.js';
2
+ export interface LabelConfig extends ComponentConfig {
3
+ text?: string;
4
+ /** Id of the field this label names (renders a `<label for>`). */
5
+ for?: string;
6
+ variant?: 'default' | 'muted' | 'title';
7
+ }
8
+ export declare class Label extends Component<LabelConfig> {
9
+ protected baseCls: string;
10
+ protected build(): HTMLLabelElement | HTMLSpanElement;
11
+ protected onRender(): void;
12
+ setText(text: string): void;
13
+ setVariant(variant: NonNullable<LabelConfig['variant']>): void;
14
+ }
@@ -0,0 +1 @@
1
+ export * from '../components/navigation/breadcrumb/breadcrumb.js';
@@ -0,0 +1 @@
1
+ export * from '../components/base/button/button.js';
@@ -0,0 +1 @@
1
+ export * from '../components/dates/calendar/calendar.js';
@@ -0,0 +1,84 @@
1
+ import { Component, type ComponentConfig } from '../../../core/component.js';
2
+ export interface ChatMessage {
3
+ id?: string | number;
4
+ /** The author's id (compare with the `me` of the config). */
5
+ from: string;
6
+ text: string;
7
+ time?: number | Date | string;
8
+ status?: 'sending' | 'sent' | 'delivered' | 'read' | 'error';
9
+ /** The id of the message this one answers (shown as a quote). */
10
+ replyTo?: string | number;
11
+ /** Anything the app wants to keep with the message. */
12
+ meta?: unknown;
13
+ }
14
+ export interface ChatConfig extends ComponentConfig {
15
+ messages?: ChatMessage[];
16
+ /** The id of whoever is using the chat: their messages go on the right. */
17
+ me: string;
18
+ users?: Record<string, {
19
+ name: string;
20
+ color?: string;
21
+ }>;
22
+ /** Show the author's name above the first bubble of a group of theirs. Default true. */
23
+ showAuthors?: boolean;
24
+ placeholder?: string;
25
+ /** Prompt chips above the composer; clicking one sends it. */
26
+ suggestions?: string[];
27
+ readonly?: boolean;
28
+ /** Enter sends and Shift+Enter breaks the line. Default true. */
29
+ sendOnEnter?: boolean;
30
+ maxLength?: number;
31
+ /** Custom bubble content. The default is a minimal, safe formatting (`**bold**`, `*italic*`, `` `code` ``, line breaks). */
32
+ renderer?: (msg: ChatMessage) => string | Node;
33
+ }
34
+ /** Conversation view: bubbles grouped by author and day, delivery ticks, typing dots, streaming text, prompt chips and a composer. */
35
+ export declare class Chat extends Component<ChatConfig> {
36
+ protected baseCls: string;
37
+ private msgs;
38
+ private seq;
39
+ private logEl;
40
+ private emptyEl;
41
+ private typingEl;
42
+ private chipsEl;
43
+ private input;
44
+ private sendBtn;
45
+ private busy;
46
+ protected build(): HTMLDivElement;
47
+ protected onRender(): void;
48
+ notifyMount(): void;
49
+ private norm;
50
+ getMessages(): ChatMessage[];
51
+ addMessage(msg: ChatMessage): ChatMessage;
52
+ setMessages(list: ChatMessage[]): void;
53
+ updateMessage(id: string | number, patch: Partial<ChatMessage>): void;
54
+ /** Adds text to a message: for answers that arrive in pieces (AI streaming). Only that bubble's text is redrawn. */
55
+ appendToMessage(id: string | number, text: string): void;
56
+ removeMessage(id: string | number): void;
57
+ private msgEl;
58
+ private renderAll;
59
+ /** The day separator (when the day changes) and the message itself. */
60
+ private nodesFor;
61
+ private mountMsg;
62
+ private dayLabel;
63
+ private fill;
64
+ private buildMsg;
65
+ private statusEl;
66
+ /** Group classes: first/last bubble of a run by the same author on the same day. */
67
+ private group;
68
+ private decorate;
69
+ private syncEmpty;
70
+ private nearBottom;
71
+ scrollToBottom(): void;
72
+ /** `true` shows the dots, a name shows "name is typing…", `false` hides them. */
73
+ setTyping(who: boolean | string): void;
74
+ setSuggestions(list: string[]): void;
75
+ /** While busy (an answer is on its way) sending is off and the log tells assistive tech to wait. */
76
+ setBusy(busy: boolean): void;
77
+ setReadonly(readonly: boolean): void;
78
+ setPlaceholder(text: string): void;
79
+ focus(): void;
80
+ private grow;
81
+ private submit;
82
+ /** The same path as the send button. Returns false when nothing was sent (empty, busy, read-only or cancelled). */
83
+ send(text: string): boolean;
84
+ }
@@ -0,0 +1 @@
1
+ export * from '../components/chat/chat/chat.js';
@@ -0,0 +1 @@
1
+ export * from '../components/fields/checkbox/checkbox.js';
@@ -0,0 +1 @@
1
+ export * from '../components/fields/combobox/combobox.js';
@@ -0,0 +1 @@
1
+ export * from '../components/overlays/commandpalette/commandpalette.js';
@@ -0,0 +1 @@
1
+ export * from '../components/layout/container/container.js';
@@ -0,0 +1,61 @@
1
+ import { Component, type ComponentConfig } from '../../../core/component.js';
2
+ import { Store } from '../../../data/store.js';
3
+ import type { Model } from '../../../data/model.js';
4
+ export interface DataViewConfig extends ComponentConfig {
5
+ store?: Store<any>;
6
+ /** Used when no `store` is given. */
7
+ data?: Record<string, any>[];
8
+ /** What one item shows. Text is escaped; return a Node for markup. */
9
+ renderer: (rec: Model, index: number) => string | Node;
10
+ selection?: 'none' | 'single' | 'multi';
11
+ /** Minimum item width (CSS length): the columns adapt to the room there is. Default `10rem`. */
12
+ itemWidth?: string;
13
+ gap?: string;
14
+ itemCls?: (rec: Model) => string;
15
+ emptyText?: string;
16
+ /** Items enter one after the other (30 ms apart, motion rule 3) when the data loads, the page or filter changes. Default true. */
17
+ stagger?: boolean;
18
+ /** A Pagination bar bound to the store. */
19
+ paging?: boolean;
20
+ pageSize?: number;
21
+ }
22
+ /** A Store as a responsive grid of cards: selection, 2-D keyboard navigation, per-item actions and optional paging. */
23
+ export declare class DataView extends Component<DataViewConfig> {
24
+ protected baseCls: string;
25
+ private store;
26
+ private itemsEl;
27
+ private emptyEl;
28
+ private pager?;
29
+ private selected;
30
+ private active;
31
+ private anchor;
32
+ private offStore?;
33
+ protected build(): HTMLDivElement;
34
+ protected onRender(): void;
35
+ notifyMount(): void;
36
+ private bindStore;
37
+ setStore(store: Store<any>): void;
38
+ getStore(): Store<any>;
39
+ private paint;
40
+ /** Redraws the items (after a field of a record changed). */
41
+ refresh(): void;
42
+ private items;
43
+ private indexOf;
44
+ /** How many items fit in a row now (items that share the first one's top edge). */
45
+ columns(): number;
46
+ getSelection(): Model[];
47
+ select(target: Model | number, opts?: {
48
+ add?: boolean;
49
+ }): void;
50
+ selectAll(): void;
51
+ deselectAll(): void;
52
+ private changed;
53
+ private paintSelection;
54
+ /** Click semantics: plain = replace, Ctrl/⌘ = toggle, Shift = range from the anchor (multi only). */
55
+ private pick;
56
+ private onClick;
57
+ private setActive;
58
+ focusItem(i: number): void;
59
+ private onKey;
60
+ protected onDestroy(): void;
61
+ }
@@ -0,0 +1,71 @@
1
+ import { Component, type ComponentConfig } from '../../../core/component.js';
2
+ import type { FilterGroup } from '../../../data/proxy.js';
3
+ import type { Store } from '../../../data/store.js';
4
+ export interface FilterField {
5
+ name: string;
6
+ label?: string;
7
+ type?: 'text' | 'number' | 'date' | 'select';
8
+ /** For `select`: the choices. */
9
+ options?: Array<string | number | {
10
+ value: string | number;
11
+ label: string;
12
+ }>;
13
+ }
14
+ export interface FilterBuilderConfig extends ComponentConfig {
15
+ fields: FilterField[];
16
+ /** Starting filters. */
17
+ value?: FilterGroup | null;
18
+ /** Filtered as the user edits (`live`) or when Apply is pressed. */
19
+ store?: Store<any>;
20
+ /** Apply on every edit (debounced). Default true. With `false` an Apply button appears. */
21
+ live?: boolean;
22
+ /**
23
+ * What "Add filter" does: `'row'` (default) adds an empty row for the first field; `'pick'` first asks
24
+ * which field to filter by (a menu of the fields) and adds the row for it.
25
+ */
26
+ addMode?: 'row' | 'pick';
27
+ /** Deepest group nesting allowed. Default 3. */
28
+ maxDepth?: number;
29
+ }
30
+ /**
31
+ * A dynamic filter editor: rows of `field · operator · value` that accumulate below each other, joined by AND or OR,
32
+ * with nestable groups. The result is a `FilterGroup` for `Store.filter`.
33
+ */
34
+ export declare class FilterBuilder extends Component<FilterBuilderConfig> {
35
+ protected baseCls: string;
36
+ private root;
37
+ private parts;
38
+ private nextId;
39
+ private cancelApply?;
40
+ private pickMenu?;
41
+ protected onRender(): void;
42
+ private fromNode;
43
+ private field;
44
+ private complete;
45
+ private toNode;
46
+ /** The complete rules as a filter tree (incomplete rows are left out); null when there is nothing to filter by. */
47
+ getFilter(): FilterGroup | null;
48
+ setFilter(filter: FilterGroup | null): void;
49
+ /** Removes every row and applies the empty filter. */
50
+ clear(): void;
51
+ /** Pushes the current filter to the store and fires `apply`. */
52
+ apply(): void;
53
+ /** Adds a row (optionally for a given field) to the root group. */
54
+ addRule(field?: string): void;
55
+ setFields(fields: FilterField[]): void;
56
+ setStore(store: Store<any> | undefined): void;
57
+ private newRule;
58
+ private changed;
59
+ /** Rebuilds the rows, keeping keyboard focus on the same control. */
60
+ private paint;
61
+ private button;
62
+ private select;
63
+ private group;
64
+ /** "Add filter" in `pick` mode: a menu of the fields; the chosen one gets the new row. */
65
+ private pick;
66
+ private removeBtn;
67
+ private rule;
68
+ private editor;
69
+ /** Registers an editor, labels its input, and makes Enter apply. */
70
+ private own1;
71
+ }