@jimka/typescript-ui 0.5.0 → 0.7.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 (293) hide show
  1. package/dist/lib/{AbstractInput-B10DfLOf.js → AbstractInput-W2PLJV5_.js} +2 -2
  2. package/dist/lib/{AbstractInput-B10DfLOf.js.map → AbstractInput-W2PLJV5_.js.map} +1 -1
  3. package/dist/lib/Anchor-iZhsvMlT.js +2 -0
  4. package/dist/lib/Anchor-iZhsvMlT.js.map +1 -0
  5. package/dist/lib/AnimatedDropdown-D0RhVgv3.js +2 -0
  6. package/dist/lib/AnimatedDropdown-D0RhVgv3.js.map +1 -0
  7. package/dist/lib/Border-6GsTNV-2.js +2 -0
  8. package/dist/lib/Border-6GsTNV-2.js.map +1 -0
  9. package/dist/lib/Button-CnFAiQuV.js +2 -0
  10. package/dist/lib/Button-CnFAiQuV.js.map +1 -0
  11. package/dist/lib/{Card-CD3jxshU.js → Card-C20k2YHU.js} +2 -2
  12. package/dist/lib/{Card-CD3jxshU.js.map → Card-C20k2YHU.js.map} +1 -1
  13. package/dist/lib/Checkbox-CM1z8keM.js +2 -0
  14. package/dist/lib/Checkbox-CM1z8keM.js.map +1 -0
  15. package/dist/lib/CheckboxMenuRow-C1h4LPHR.js +2 -0
  16. package/dist/lib/CheckboxMenuRow-C1h4LPHR.js.map +1 -0
  17. package/dist/lib/{CodeEditor-BGlB232h.js → CodeEditor-CTL2WjF8.js} +2 -2
  18. package/dist/lib/CodeEditor-CTL2WjF8.js.map +1 -0
  19. package/dist/lib/ComboBox-PZ5YPL0X.js +2 -0
  20. package/dist/lib/ComboBox-PZ5YPL0X.js.map +1 -0
  21. package/dist/lib/Component-D99-15Zt.js +2 -0
  22. package/dist/lib/Component-D99-15Zt.js.map +1 -0
  23. package/dist/lib/Container-FWRjgF6T.js +2 -0
  24. package/dist/lib/{Container-C7RPLQEc.js.map → Container-FWRjgF6T.js.map} +1 -1
  25. package/dist/lib/DOM-Cjh7_7TF.js +2 -0
  26. package/dist/lib/DOM-Cjh7_7TF.js.map +1 -0
  27. package/dist/lib/Dialog-DN78RaVH.js +2 -0
  28. package/dist/lib/Dialog-DN78RaVH.js.map +1 -0
  29. package/dist/lib/{FieldDecorator-HG65hEtk.js → FieldDecorator-DyPX8CFh.js} +2 -2
  30. package/dist/lib/{FieldDecorator-HG65hEtk.js.map → FieldDecorator-DyPX8CFh.js.map} +1 -1
  31. package/dist/lib/{Fit-Cg3dPyZg.js → Fit-CaPMj7Up.js} +2 -2
  32. package/dist/lib/{Fit-Cg3dPyZg.js.map → Fit-CaPMj7Up.js.map} +1 -1
  33. package/dist/lib/{FloatingPanel-D5buuVrQ.js → FloatingPanel-Dsy_vJxi.js} +2 -2
  34. package/dist/lib/{FloatingPanel-D5buuVrQ.js.map → FloatingPanel-Dsy_vJxi.js.map} +1 -1
  35. package/dist/lib/Glyph-DiEpD3gy.js +2 -0
  36. package/dist/lib/Glyph-DiEpD3gy.js.map +1 -0
  37. package/dist/lib/{Grid-BYBohJIA.js → Grid-ft_UUpj8.js} +2 -2
  38. package/dist/lib/Grid-ft_UUpj8.js.map +1 -0
  39. package/dist/lib/GridConstraints-CvZ0Nzaw.js +2 -0
  40. package/dist/lib/{GridConstraints-Bts284FI.js.map → GridConstraints-CvZ0Nzaw.js.map} +1 -1
  41. package/dist/lib/{Header-BIFJK9nR.js → Header-Osm3IjDw.js} +2 -2
  42. package/dist/lib/{Header-BIFJK9nR.js.map → Header-Osm3IjDw.js.map} +1 -1
  43. package/dist/lib/{IconText-Dsb1xS-E.js → IconText-BBaYJ2Fx.js} +2 -2
  44. package/dist/lib/{IconText-Dsb1xS-E.js.map → IconText-BBaYJ2Fx.js.map} +1 -1
  45. package/dist/lib/LayoutSerialization-BC64__O7.js +2 -0
  46. package/dist/lib/LayoutSerialization-BC64__O7.js.map +1 -0
  47. package/dist/lib/List-CQbZK_pT.js +2 -0
  48. package/dist/lib/List-CQbZK_pT.js.map +1 -0
  49. package/dist/lib/MemoryStore-DhPoU-7X.js +2 -0
  50. package/dist/lib/MemoryStore-DhPoU-7X.js.map +1 -0
  51. package/dist/lib/Menu-CwHluLGT.js +2 -0
  52. package/dist/lib/Menu-CwHluLGT.js.map +1 -0
  53. package/dist/lib/{MenuButton-BR4KOFld.js → MenuButton-BqCT-1yv.js} +2 -2
  54. package/dist/lib/{MenuButton-BR4KOFld.js.map → MenuButton-BqCT-1yv.js.map} +1 -1
  55. package/dist/lib/OverlayFade-CuEXgimf.js +2 -0
  56. package/dist/lib/OverlayFade-CuEXgimf.js.map +1 -0
  57. package/dist/lib/{Panel-CpNQTLNF.js → Panel-CtViePqY.js} +2 -2
  58. package/dist/lib/{Panel-CpNQTLNF.js.map → Panel-CtViePqY.js.map} +1 -1
  59. package/dist/lib/{Position-PBVBW1JS.js → Position-BIEU1Eze.js} +2 -2
  60. package/dist/lib/Position-BIEU1Eze.js.map +1 -0
  61. package/dist/lib/{ProgressSpinner-lAsK26C-.js → ProgressSpinner-BuBvC1FY.js} +2 -2
  62. package/dist/lib/{ProgressSpinner-lAsK26C-.js.map → ProgressSpinner-BuBvC1FY.js.map} +1 -1
  63. package/dist/lib/RadioButton-Df5J-H6m.js +2 -0
  64. package/dist/lib/RadioButton-Df5J-H6m.js.map +1 -0
  65. package/dist/lib/RadioMenuRow-Cfv0x6Qj.js +2 -0
  66. package/dist/lib/RadioMenuRow-Cfv0x6Qj.js.map +1 -0
  67. package/dist/lib/{RovingTabIndex-C2Vzq0IX.js → RovingTabIndex--w28AnXc.js} +2 -2
  68. package/dist/lib/{RovingTabIndex-C2Vzq0IX.js.map → RovingTabIndex--w28AnXc.js.map} +1 -1
  69. package/dist/lib/Scrollbar-DcnueNJd.js +2 -0
  70. package/dist/lib/Scrollbar-DcnueNJd.js.map +1 -0
  71. package/dist/lib/SelectableText-DZNxjKXR.js +2 -0
  72. package/dist/lib/SelectableText-DZNxjKXR.js.map +1 -0
  73. package/dist/lib/{Slider-DZ9drUxn.js → Slider-DNfd8Lxz.js} +2 -2
  74. package/dist/lib/{Slider-DZ9drUxn.js.map → Slider-DNfd8Lxz.js.map} +1 -1
  75. package/dist/lib/{Spacer-SDhOMp2g.js → Spacer-BznfGbwG.js} +2 -2
  76. package/dist/lib/{Spacer-SDhOMp2g.js.map → Spacer-BznfGbwG.js.map} +1 -1
  77. package/dist/lib/TabButton-CAACsMov.js +2 -0
  78. package/dist/lib/TabButton-CAACsMov.js.map +1 -0
  79. package/dist/lib/TabCloseButton-CCiqsX3y.js +2 -0
  80. package/dist/lib/TabCloseButton-CCiqsX3y.js.map +1 -0
  81. package/dist/lib/Text-O-FWa5Cy.js +2 -0
  82. package/dist/lib/Text-O-FWa5Cy.js.map +1 -0
  83. package/dist/lib/Tooltip-CyICVu15.js +3 -0
  84. package/dist/lib/Tooltip-CyICVu15.js.map +1 -0
  85. package/dist/lib/Tree-CSEguhlk.js +2 -0
  86. package/dist/lib/Tree-CSEguhlk.js.map +1 -0
  87. package/dist/lib/VBox-DVe4UXwX.js +2 -0
  88. package/dist/lib/VBox-DVe4UXwX.js.map +1 -0
  89. package/dist/lib/VirtualScroller-ggPTCQb0.js +2 -0
  90. package/dist/lib/VirtualScroller-ggPTCQb0.js.map +1 -0
  91. package/dist/lib/assets/StoreWorker-B5NwRM2I.js +2 -0
  92. package/dist/lib/assets/StoreWorker-B5NwRM2I.js.map +1 -0
  93. package/dist/lib/component/button.es.js +1 -1
  94. package/dist/lib/component/button.es.js.map +1 -1
  95. package/dist/lib/component/chart.es.js +1 -1
  96. package/dist/lib/component/chart.es.js.map +1 -1
  97. package/dist/lib/component/container.es.js +1 -1
  98. package/dist/lib/component/container.es.js.map +1 -1
  99. package/dist/lib/component/diagram.es.js +1 -1
  100. package/dist/lib/component/diagram.es.js.map +1 -1
  101. package/dist/lib/component/display.es.js +1 -1
  102. package/dist/lib/component/display.es.js.map +1 -1
  103. package/dist/lib/component/editor.es.js +2 -2
  104. package/dist/lib/component/editor.es.js.map +1 -1
  105. package/dist/lib/component/input.es.js +1 -1
  106. package/dist/lib/component/input.es.js.map +1 -1
  107. package/dist/lib/component/list.es.js +1 -1
  108. package/dist/lib/component/list.es.js.map +1 -1
  109. package/dist/lib/component/menubar.es.js +1 -1
  110. package/dist/lib/component/menubar.es.js.map +1 -1
  111. package/dist/lib/component/table.es.js +6 -3
  112. package/dist/lib/component/table.es.js.map +1 -1
  113. package/dist/lib/component/tree.es.js +1 -1
  114. package/dist/lib/core.es.js +1 -1
  115. package/dist/lib/core.es.js.map +1 -1
  116. package/dist/lib/data.es.js +1 -1
  117. package/dist/lib/glyphs/solid/index.es.js +1 -1
  118. package/dist/lib/layout.es.js +1 -1
  119. package/dist/lib/layout.es.js.map +1 -1
  120. package/dist/lib/overlay.es.js +1 -1
  121. package/dist/lib/overlay.es.js.map +1 -1
  122. package/dist/lib/primitive.es.js +1 -1
  123. package/dist/lib/router.es.js +1 -1
  124. package/dist/lib/router.es.js.map +1 -1
  125. package/dist/lib/selectionsEqual-C7MrKMQr.js +2 -0
  126. package/dist/lib/selectionsEqual-C7MrKMQr.js.map +1 -0
  127. package/dist/lib/types/component/button/Button.d.ts +22 -0
  128. package/dist/lib/types/component/button/MenuButton.d.ts +1 -0
  129. package/dist/lib/types/component/button/PopupButton.d.ts +22 -0
  130. package/dist/lib/types/component/button/TabButton.d.ts +9 -0
  131. package/dist/lib/types/component/button/ToggleButton.d.ts +3 -0
  132. package/dist/lib/types/component/button/index.d.ts +2 -0
  133. package/dist/lib/types/component/chart/AbstractChart.d.ts +2 -0
  134. package/dist/lib/types/component/container/CheckboxMenuRow.d.ts +33 -0
  135. package/dist/lib/types/component/container/CollapseButton.d.ts +11 -3
  136. package/dist/lib/types/component/container/MenuItem.d.ts +15 -5
  137. package/dist/lib/types/component/container/MenuRow.d.ts +24 -0
  138. package/dist/lib/types/component/container/MenuSeparator.d.ts +4 -2
  139. package/dist/lib/types/component/container/RadioMenuRow.d.ts +33 -0
  140. package/dist/lib/types/component/container/Scrollbar.d.ts +5 -0
  141. package/dist/lib/types/component/container/SplitGutter.d.ts +7 -2
  142. package/dist/lib/types/component/container/TabBar.d.ts +2 -0
  143. package/dist/lib/types/component/container/WindowBorder.d.ts +1 -1
  144. package/dist/lib/types/component/container/index.d.ts +6 -1
  145. package/dist/lib/types/component/display/Markdown.d.ts +2 -1
  146. package/dist/lib/types/component/display/WebGLCanvas.d.ts +1 -0
  147. package/dist/lib/types/component/input/AbstractCalendarDropdown.d.ts +4 -0
  148. package/dist/lib/types/component/input/AbstractPickerField.d.ts +5 -2
  149. package/dist/lib/types/component/input/AutoCompleteDropdown.d.ts +2 -0
  150. package/dist/lib/types/component/input/ComboBox.d.ts +3 -1
  151. package/dist/lib/types/component/input/Link.d.ts +2 -0
  152. package/dist/lib/types/component/input/PasswordField.d.ts +2 -0
  153. package/dist/lib/types/component/input/PickerInput.d.ts +2 -0
  154. package/dist/lib/types/component/input/SelectableText.d.ts +11 -0
  155. package/dist/lib/types/component/input/SpinButton.d.ts +2 -0
  156. package/dist/lib/types/component/input/Text.d.ts +16 -2
  157. package/dist/lib/types/component/input/TextArea.d.ts +2 -0
  158. package/dist/lib/types/component/input/TextField.d.ts +2 -0
  159. package/dist/lib/types/component/input/TextInput.d.ts +2 -0
  160. package/dist/lib/types/component/input/TimePickerDropdown.d.ts +3 -1
  161. package/dist/lib/types/component/input/UsernameField.d.ts +2 -0
  162. package/dist/lib/types/component/input/index.d.ts +2 -0
  163. package/dist/lib/types/component/list/AbstractSelectableList.d.ts +5 -3
  164. package/dist/lib/types/component/list/MultiSelectList.d.ts +2 -1
  165. package/dist/lib/types/component/shared/VirtualRowView.d.ts +2 -0
  166. package/dist/lib/types/component/table/Body.d.ts +52 -5
  167. package/dist/lib/types/component/table/Column.d.ts +3 -1
  168. package/dist/lib/types/component/table/ColumnConfig.d.ts +2 -0
  169. package/dist/lib/types/component/table/ColumnFilter.d.ts +27 -0
  170. package/dist/lib/types/component/table/Header.d.ts +31 -4
  171. package/dist/lib/types/component/table/Row.d.ts +24 -2
  172. package/dist/lib/types/component/table/Table.d.ts +31 -0
  173. package/dist/lib/types/component/table/TableExporter.d.ts +7 -3
  174. package/dist/lib/types/component/table/TablePanel.d.ts +1 -0
  175. package/dist/lib/types/component/table/TreeBody.d.ts +2 -1
  176. package/dist/lib/types/component/table/TreeTablePanel.d.ts +1 -0
  177. package/dist/lib/types/component/table/cell/Cell.d.ts +7 -2
  178. package/dist/lib/types/component/table/cell/CellText.d.ts +9 -0
  179. package/dist/lib/types/component/table/cell/Default.d.ts +1 -1
  180. package/dist/lib/types/component/table/cell/Filter.d.ts +54 -0
  181. package/dist/lib/types/component/table/cell/FilterClauseBadge.d.ts +21 -0
  182. package/dist/lib/types/component/table/cell/GroupSeparator.d.ts +9 -0
  183. package/dist/lib/types/component/table/cell/Header.d.ts +4 -0
  184. package/dist/lib/types/component/table/cell/ResizeHandle.d.ts +1 -1
  185. package/dist/lib/types/component/table/cell/editor/CellEditor.d.ts +1 -0
  186. package/dist/lib/types/component/table/cell/renderer/CellRenderer.d.ts +3 -2
  187. package/dist/lib/types/component/table/cell/renderer/Combo.d.ts +2 -0
  188. package/dist/lib/types/component/table/cell/renderer/Date.d.ts +2 -0
  189. package/dist/lib/types/component/table/cell/renderer/DateTime.d.ts +2 -0
  190. package/dist/lib/types/component/table/cell/renderer/Filter.d.ts +16 -0
  191. package/dist/lib/types/component/table/cell/renderer/Glyph.d.ts +1 -0
  192. package/dist/lib/types/component/table/cell/renderer/Link.d.ts +2 -0
  193. package/dist/lib/types/component/table/cell/renderer/Number.d.ts +3 -1
  194. package/dist/lib/types/component/table/cell/renderer/String.d.ts +5 -1
  195. package/dist/lib/types/component/table/cell/renderer/Time.d.ts +2 -0
  196. package/dist/lib/types/component/table/cell/renderer/TreeCell.d.ts +1 -0
  197. package/dist/lib/types/component/table/index.d.ts +7 -1
  198. package/dist/lib/types/component/tree/Tree.d.ts +17 -1
  199. package/dist/lib/types/component/tree/index.d.ts +1 -1
  200. package/dist/lib/types/core/AnimatedDropdown.d.ts +2 -9
  201. package/dist/lib/types/core/Body.d.ts +4 -0
  202. package/dist/lib/types/core/ClassStyleRules.d.ts +47 -3
  203. package/dist/lib/types/core/Component.d.ts +30 -2
  204. package/dist/lib/types/core/DOM.d.ts +15 -1
  205. package/dist/lib/types/core/Event.d.ts +11 -2
  206. package/dist/lib/types/core/LayerManager.d.ts +1 -0
  207. package/dist/lib/types/core/OverlayFade.d.ts +12 -0
  208. package/dist/lib/types/core/OverlayPosition.d.ts +6 -0
  209. package/dist/lib/types/core/StyleTarget.d.ts +2 -0
  210. package/dist/lib/types/core/Theme.d.ts +9 -0
  211. package/dist/lib/types/core/Util.d.ts +4 -0
  212. package/dist/lib/types/core/index.d.ts +6 -4
  213. package/dist/lib/types/data/AbstractStore.d.ts +3 -0
  214. package/dist/lib/types/data/FilterDescriptor.d.ts +13 -0
  215. package/dist/lib/types/data/index.d.ts +2 -1
  216. package/dist/lib/types/data/temporalText.d.ts +2 -0
  217. package/dist/lib/types/layout/BoxLayout.d.ts +6 -1
  218. package/dist/lib/types/layout/Grid.d.ts +1 -0
  219. package/dist/lib/types/layout/HFlow.d.ts +1 -1
  220. package/dist/lib/types/layout/Split.d.ts +10 -1
  221. package/dist/lib/types/layout/Tab.d.ts +7 -1
  222. package/dist/lib/types/layout/Table.d.ts +2 -0
  223. package/dist/lib/types/layout/VFlow.d.ts +1 -1
  224. package/dist/lib/types/layout/index.d.ts +1 -1
  225. package/dist/lib/types/overlay/AbstractWindow.d.ts +3 -0
  226. package/dist/lib/types/overlay/Dock.d.ts +1 -0
  227. package/dist/lib/types/overlay/Menu.d.ts +1 -1
  228. package/dist/lib/types/overlay/Popover.d.ts +3 -0
  229. package/dist/lib/types/overlay/PopupPanel.d.ts +19 -0
  230. package/dist/lib/types/overlay/Window.d.ts +2 -0
  231. package/dist/lib/types/overlay/index.d.ts +2 -0
  232. package/dist/lib/types/router/RoutePattern.d.ts +7 -0
  233. package/dist/lib/types/router/Router.d.ts +6 -2
  234. package/dist/lib/types/router/index.d.ts +1 -1
  235. package/dist/lib/validation.es.js +1 -1
  236. package/llms.txt +4 -0
  237. package/package.json +1 -1
  238. package/dist/lib/AbstractBooleanInput-CbW7ZrDT.js +0 -2
  239. package/dist/lib/AbstractBooleanInput-CbW7ZrDT.js.map +0 -1
  240. package/dist/lib/Anchor-BsblS5it.js +0 -2
  241. package/dist/lib/Anchor-BsblS5it.js.map +0 -1
  242. package/dist/lib/AnimatedDropdown-kL47HPGP.js +0 -2
  243. package/dist/lib/AnimatedDropdown-kL47HPGP.js.map +0 -1
  244. package/dist/lib/Border-CNS6aEXB.js +0 -2
  245. package/dist/lib/Border-CNS6aEXB.js.map +0 -1
  246. package/dist/lib/Button-T16zSZip.js +0 -2
  247. package/dist/lib/Button-T16zSZip.js.map +0 -1
  248. package/dist/lib/CodeEditor-BGlB232h.js.map +0 -1
  249. package/dist/lib/ComboBox-C9FYMuLv.js +0 -2
  250. package/dist/lib/ComboBox-C9FYMuLv.js.map +0 -1
  251. package/dist/lib/Component-w65rPK75.js +0 -2
  252. package/dist/lib/Component-w65rPK75.js.map +0 -1
  253. package/dist/lib/Container-C7RPLQEc.js +0 -2
  254. package/dist/lib/DOM-Ba8YRVel.js +0 -2
  255. package/dist/lib/DOM-Ba8YRVel.js.map +0 -1
  256. package/dist/lib/DragManager-UvPHSoRm.js +0 -2
  257. package/dist/lib/DragManager-UvPHSoRm.js.map +0 -1
  258. package/dist/lib/Glyph-DeJF_zsR.js +0 -2
  259. package/dist/lib/Glyph-DeJF_zsR.js.map +0 -1
  260. package/dist/lib/Grid-BYBohJIA.js.map +0 -1
  261. package/dist/lib/GridConstraints-Bts284FI.js +0 -2
  262. package/dist/lib/LayoutSerialization-ySzY1h2l.js +0 -2
  263. package/dist/lib/LayoutSerialization-ySzY1h2l.js.map +0 -1
  264. package/dist/lib/LayoutSizes-DKDK1Cle.js +0 -2
  265. package/dist/lib/LayoutSizes-DKDK1Cle.js.map +0 -1
  266. package/dist/lib/List-BPd-IXZR.js +0 -2
  267. package/dist/lib/List-BPd-IXZR.js.map +0 -1
  268. package/dist/lib/MemoryStore-BgP7-Uzn.js +0 -2
  269. package/dist/lib/MemoryStore-BgP7-Uzn.js.map +0 -1
  270. package/dist/lib/Menu-C0roOCY7.js +0 -2
  271. package/dist/lib/Menu-C0roOCY7.js.map +0 -1
  272. package/dist/lib/Position-PBVBW1JS.js.map +0 -1
  273. package/dist/lib/RadioButton-CCcIaL54.js +0 -2
  274. package/dist/lib/RadioButton-CCcIaL54.js.map +0 -1
  275. package/dist/lib/Scrollbar-C3ZZyZ1e.js +0 -2
  276. package/dist/lib/Scrollbar-C3ZZyZ1e.js.map +0 -1
  277. package/dist/lib/TabButton-DNo4ZgV8.js +0 -2
  278. package/dist/lib/TabButton-DNo4ZgV8.js.map +0 -1
  279. package/dist/lib/Text-CdHf3B-1.js +0 -2
  280. package/dist/lib/Text-CdHf3B-1.js.map +0 -1
  281. package/dist/lib/Tooltip-B_UF5bXD.js +0 -3
  282. package/dist/lib/Tooltip-B_UF5bXD.js.map +0 -1
  283. package/dist/lib/Tree-C7qLbIYH.js +0 -2
  284. package/dist/lib/Tree-C7qLbIYH.js.map +0 -1
  285. package/dist/lib/VBox-32fxpkDl.js +0 -2
  286. package/dist/lib/VBox-32fxpkDl.js.map +0 -1
  287. package/dist/lib/VirtualScroller-cvFNMS7U.js +0 -2
  288. package/dist/lib/VirtualScroller-cvFNMS7U.js.map +0 -1
  289. package/dist/lib/assets/StoreWorker-CgOBYoai.js +0 -2
  290. package/dist/lib/assets/StoreWorker-CgOBYoai.js.map +0 -1
  291. package/dist/lib/selectionsEqual-BrTxPMmK.js +0 -2
  292. package/dist/lib/selectionsEqual-BrTxPMmK.js.map +0 -1
  293. package/dist/lib/types/component/table/CellGeometry.d.ts +0 -6
@@ -0,0 +1,12 @@
1
+ import { Component } from "../core/Component.js";
2
+ import { Animation } from "../core/Animation.js";
3
+ export declare const DEFAULT_DURATION_MS: number;
4
+ export declare const DEFAULT_TRANSLATE_PX: number;
5
+ export interface FadeOptions {
6
+ durationMs?: number;
7
+ translatePx?: number;
8
+ animated?: boolean;
9
+ onComplete?: () => void;
10
+ }
11
+ export declare function fadeShow(component: Component, options?: FadeOptions): Animation.CancelHandle;
12
+ export declare function fadeHideAndDetach(component: Component, options?: FadeOptions): Animation.CancelHandle;
@@ -13,6 +13,12 @@ export interface FlexiblePlacement {
13
13
  available: number;
14
14
  }
15
15
  export declare function positionFlexibleAnchored(nearEdge: number, farEdge: number, extent: number, viewportExtent: number, viewportMargin: number): FlexiblePlacement;
16
+ export interface AnchoredFlexiblePlacement {
17
+ x: number;
18
+ y: number;
19
+ available: number;
20
+ }
21
+ export declare function positionAnchoredFlexible(anchorRect: Rect, size: Size, viewport: Size, margin: number): AnchoredFlexiblePlacement;
16
22
  export declare function positionAnchored(anchorRect: Rect, size: Size, viewport: Size, opts: AnchorOptions): {
17
23
  x: number;
18
24
  y: number;
@@ -9,6 +9,7 @@ declare abstract class StyleTarget<T> {
9
9
  flush(): void;
10
10
  isMaterialized(): boolean;
11
11
  hasQueuedWrites(): boolean;
12
+ hasQueuedDeclarations(): boolean;
12
13
  protected materialize(target: T): void;
13
14
  protected abstract writeStyle(key: string, value: string | null): void;
14
15
  protected abstract flushDirty(dirty: Record<string, string | null>): void;
@@ -16,6 +17,7 @@ declare abstract class StyleTarget<T> {
16
17
  export type StyleRuleScope = {
17
18
  scope: "class";
18
19
  name: string;
20
+ suffix?: string;
19
21
  } | {
20
22
  scope: "component";
21
23
  name: string;
@@ -204,11 +204,15 @@ export interface Theme {
204
204
  padding: number;
205
205
  background: string;
206
206
  readonlyBackground: string;
207
+ rangeSelectedBackground: string;
207
208
  requiredEmptyOutlineColor: string;
208
209
  color: string;
209
210
  border: string;
210
211
  editorBorderColor: string;
211
212
  };
213
+ filterRow: {
214
+ background: string;
215
+ };
212
216
  resizeHandle: {
213
217
  width: string;
214
218
  color: string;
@@ -219,6 +223,11 @@ export interface Theme {
219
223
  color: string;
220
224
  fontSize?: FontSizeToken;
221
225
  };
226
+ filterClauseBadge: {
227
+ background: string;
228
+ color: string;
229
+ fontSize?: FontSizeToken;
230
+ };
222
231
  };
223
232
  contextMenu: {
224
233
  background: string;
@@ -15,6 +15,10 @@ export interface TextMetrics {
15
15
  height: number;
16
16
  baseline: number;
17
17
  }
18
+ export interface TextMeasureRequest {
19
+ text: string;
20
+ options?: TextMeasureOptions;
21
+ }
18
22
  export declare namespace Util {
19
23
  function measureTextSize(text: string, options?: TextMeasureOptions): Size;
20
24
  function measureTextWidth(text: string, options?: TextMeasureOptions): number;
@@ -7,9 +7,9 @@ export { Animation } from '../core/Animation.js';
7
7
  export { SmoothScroller } from '../core/SmoothScroller.js';
8
8
  export type { SmoothScrollTarget, ScrollAxis } from '../core/SmoothScroller.js';
9
9
  export { Util } from '../core/Util.js';
10
- export type { TextMeasureOptions, TextMetrics } from '../core/Util.js';
10
+ export type { TextMeasureOptions, TextMeasureRequest, TextMetrics } from '../core/Util.js';
11
11
  export { DOM, ProductionDOMSink, ProductionDOMSource, PatchBuilder } from '../core/DOM.js';
12
- export type { DOMSink, DOMSource, DOMSeams, Rect, ScrollMetrics, OffsetSize, MediaState, Handle, TimerId, ElementPatch, MediaQueryResult } from '../core/DOM.js';
12
+ export type { DOMSink, DOMSource, DOMSeams, DocumentSelectionRange, Rect, ScrollMetrics, OffsetSize, MediaState, Handle, TimerId, ElementPatch, MediaQueryResult } from '../core/DOM.js';
13
13
  export { callable } from '../core/Callable.js';
14
14
  export type { Callable } from '../core/Callable.js';
15
15
  export { Component } from '../core/Component.js';
@@ -26,8 +26,10 @@ export { RovingTabIndex } from '../core/RovingTabIndex.js';
26
26
  export { Body } from '../core/Body.js';
27
27
  export type { BodyOptions } from '../core/Body.js';
28
28
  export { Favicon, DEFAULT_FAVICON } from '../core/Favicon.js';
29
- export { AnimatedDropdown, fadeShow, fadeHideAndDetach } from '../core/AnimatedDropdown.js';
30
- export type { AnimatedDropdownOptions, FadeOptions } from '../core/AnimatedDropdown.js';
29
+ export { AnimatedDropdown } from '../core/AnimatedDropdown.js';
30
+ export type { AnimatedDropdownOptions } from '../core/AnimatedDropdown.js';
31
+ export { fadeShow, fadeHideAndDetach } from '../core/OverlayFade.js';
32
+ export type { FadeOptions } from '../core/OverlayFade.js';
31
33
  export { LayerManager } from '../core/LayerManager.js';
32
34
  export type { DismissableLayer, LayerDismissMode } from '../core/LayerManager.js';
33
35
  export { FocusHistory } from '../core/FocusHistory.js';
@@ -131,6 +131,9 @@ export declare abstract class AbstractStore {
131
131
  clearSort(): Promise<void>;
132
132
  filter(property: string, value: any): Promise<void>;
133
133
  filterBy(descriptor: FilterDescriptor): Promise<void>;
134
+ setFilter(key: string, descriptor: FilterDescriptor | null): Promise<void>;
135
+ setFilters(entries: Array<[key: string, descriptor: FilterDescriptor | null]>): Promise<void>;
136
+ getFilter(key: string): FilterDescriptor | null;
134
137
  private applyFilterChange;
135
138
  clearFilter(): Promise<void>;
136
139
  private numericValues;
@@ -1,3 +1,8 @@
1
+ import type { TemporalFieldType } from "../data/temporalText.js";
2
+ export interface TemporalDisplay {
3
+ type: TemporalFieldType;
4
+ showSeconds: boolean;
5
+ }
1
6
  export type FilterDescriptor = {
2
7
  type: 'eq';
3
8
  field: string;
@@ -11,11 +16,19 @@ export type FilterDescriptor = {
11
16
  field: string;
12
17
  value: string;
13
18
  caseSensitive?: boolean;
19
+ temporal?: TemporalDisplay;
14
20
  } | {
15
21
  type: 'startsWith';
16
22
  field: string;
17
23
  value: string;
18
24
  caseSensitive?: boolean;
25
+ temporal?: TemporalDisplay;
26
+ } | {
27
+ type: 'endsWith';
28
+ field: string;
29
+ value: string;
30
+ caseSensitive?: boolean;
31
+ temporal?: TemporalDisplay;
19
32
  } | {
20
33
  type: 'gt';
21
34
  field: string;
@@ -18,7 +18,8 @@ export type { AjaxStoreOptions } from '../data/AjaxStore.js';
18
18
  export { TreeStore } from '../data/TreeStore.js';
19
19
  export type { TreeStoreOptions, TreeStoreEvent, TreeExpandEvent, TreeCollapseEvent, TreeAppendEvent, TreeRemoveEvent } from '../data/TreeStore.js';
20
20
  export { TreeNode } from '../data/TreeNode.js';
21
- export type { FilterDescriptor } from '../data/FilterDescriptor.js';
21
+ export type { FilterDescriptor, TemporalDisplay } from '../data/FilterDescriptor.js';
22
+ export type { TemporalFieldType } from '../data/temporalText.js';
22
23
  export { Proxy } from '../data/proxy/Proxy.js';
23
24
  export type { ReadParams } from '../data/proxy/Proxy.js';
24
25
  export { MemoryProxy } from '../data/proxy/MemoryProxy.js';
@@ -0,0 +1,2 @@
1
+ export type TemporalFieldType = 'date' | 'time' | 'datetime';
2
+ export declare function temporalDisplayText(type: TemporalFieldType, showSeconds: boolean, value: Date): string;
@@ -5,16 +5,18 @@ import { Size } from "../primitive/Size.js";
5
5
  export type BoxMode = "preferred" | "equal";
6
6
  export type BoxOverflowSizing = "preferred" | "min";
7
7
  export type BoxJustify = AxisPosition | AxisSpread;
8
+ export type BoxItemAlign = "start" | "center" | "end" | "baseline" | "stretch";
8
9
  export interface BoxLayoutOptions extends LayoutManagerOptions {
9
10
  spacing?: number;
10
11
  stretching?: boolean;
12
+ itemAlign?: BoxItemAlign;
11
13
  mode?: BoxMode;
12
14
  overflowSizing?: BoxOverflowSizing;
13
15
  justify?: BoxJustify;
14
16
  }
15
17
  export declare abstract class BoxLayout extends LayoutManager {
16
18
  protected _spacing: number;
17
- protected _stretching: boolean;
19
+ protected _itemAlign: BoxItemAlign;
18
20
  protected _mode: BoxMode;
19
21
  protected _overflowSizing: BoxOverflowSizing;
20
22
  protected _justify: BoxJustify;
@@ -24,6 +26,8 @@ export declare abstract class BoxLayout extends LayoutManager {
24
26
  setComponentSpacing(spacing: number): this;
25
27
  isStretching(): boolean;
26
28
  setStretching(stretching: boolean): this;
29
+ getItemAlign(): BoxItemAlign;
30
+ setItemAlign(itemAlign: BoxItemAlign): this;
27
31
  getMode(): BoxMode;
28
32
  setMode(mode: BoxMode): this;
29
33
  getOverflowSizing(): BoxOverflowSizing;
@@ -39,6 +43,7 @@ export declare abstract class BoxLayout extends LayoutManager {
39
43
  lead: number;
40
44
  gap: number;
41
45
  };
46
+ protected crossItemOffset(childCross: number, crossExtent: number): number;
42
47
  protected crossPlacement(component: Component, crossLead: number, crossExtent: number, naturalCross: number, horizontal: boolean): {
43
48
  offset: number;
44
49
  extent: number;
@@ -55,6 +55,7 @@ declare class Grid extends LayoutManager {
55
55
  private resolveTracks;
56
56
  private measureContent;
57
57
  private layoutOccupancy;
58
+ private commitGridPlacements;
58
59
  private findFreeCell;
59
60
  }
60
61
  declare const GridCallable: import("../core/Callable.js").Callable<typeof Grid>;
@@ -8,7 +8,7 @@ declare class HFlow extends FlowLayout {
8
8
  getMaxSize(): Size | null;
9
9
  doLayout(): void;
10
10
  private groupIntoRows;
11
- private placeRows;
11
+ private resolveRows;
12
12
  private cellsMainExtent;
13
13
  private rowsCrossExtent;
14
14
  private rowExtent;
@@ -1,5 +1,6 @@
1
1
  import { LayoutManager, LayoutManagerOptions } from "../layout/LayoutManager.js";
2
2
  import { SplitGutter } from "../component/container/SplitGutter.js";
3
+ import { CollapseTrigger } from "../component/container/CollapseButton.js";
3
4
  import { Component } from "../core/Component.js";
4
5
  import { Size } from "../primitive/Size.js";
5
6
  import { LayoutSize } from "../layout/LayoutSizes.js";
@@ -11,6 +12,7 @@ export interface SplitOptions extends LayoutManagerOptions {
11
12
  orientation?: AxisOrientation;
12
13
  collapsedPanes?: number[];
13
14
  paneSizes?: LayoutSize[];
15
+ collapseTrigger?: CollapseTrigger;
14
16
  listeners?: {
15
17
  paneresize?: PaneResizeCallback;
16
18
  panecollapse?: PaneCollapseCallback;
@@ -18,12 +20,14 @@ export interface SplitOptions extends LayoutManagerOptions {
18
20
  }
19
21
  declare class Split extends LayoutManager {
20
22
  private _orientation;
23
+ private _collapseTrigger;
21
24
  private _sizes;
22
25
  private _gutters;
23
26
  private _collapsed;
24
27
  private _weights;
25
28
  private _pendingCollapsed;
26
29
  private _listeners;
30
+ private _contextMenu;
27
31
  private _pendingSizes;
28
32
  private _dragOriginPointer;
29
33
  private _dragOriginLhsSize;
@@ -49,7 +53,7 @@ declare class Split extends LayoutManager {
49
53
  setOrientation(orientation: AxisOrientation): this;
50
54
  setPaneSize(pane: Component, size: number): this;
51
55
  getPaneSize(pane: Component): number | undefined;
52
- setPaneResizeWeight(pane: Component, weight: number): this;
56
+ setPaneResizeWeight(pane: Component, weight: number | undefined): this;
53
57
  getPaneResizeWeight(pane: Component): number | undefined;
54
58
  private effectiveResizeWeight;
55
59
  private clampMain;
@@ -70,11 +74,16 @@ declare class Split extends LayoutManager {
70
74
  onDragStart(container: Component, gutter: SplitGutter, position: number): void;
71
75
  onDrag(container: Component, gutter: SplitGutter, position: number): void;
72
76
  private onDragEnd;
77
+ private openGutterMenu;
78
+ private togglePaneResizePin;
79
+ private retargetGutterCollapse;
80
+ private setPaneCollapseDirection;
73
81
  detach(): this;
74
82
  private gutterTotal;
75
83
  protected computeTotalMinSize(): Size;
76
84
  doLayout(): void;
77
85
  private placeGutterAsStrip;
86
+ private commitPanes;
78
87
  private paneClipInset;
79
88
  private applyPendingSizes;
80
89
  private applyPendingCollapsed;
@@ -6,7 +6,7 @@ import type { ComponentFactory } from "../core/Component.js";
6
6
  import { AbstractWindow } from "../overlay/AbstractWindow.js";
7
7
  import type { TabToolDescriptor } from "../component/container/TabBar.js";
8
8
  import type { AxisPosition, AxisEnd } from "../primitive/Axis.js";
9
- export type TabEvent = "tabclose" | "empty" | "detach" | "select" | "activate" | "dock" | "exception";
9
+ export type TabEvent = "tabclose" | "empty" | "detach" | "select" | "activate" | "dock" | "exception" | "busychange";
10
10
  export type TabDetachWindowMode = "bare" | "strip";
11
11
  export type TabWidthMode = "fill" | "content" | "equal" | "fixed";
12
12
  export type TabSide = "north" | "south" | "west" | "east";
@@ -16,6 +16,7 @@ export interface TabOptions extends LayoutManagerOptions {
16
16
  tabclose?: (component: Component) => void;
17
17
  empty?: () => void;
18
18
  exception?: (error: unknown, label: string) => void;
19
+ busychange?: (busy: boolean, label: string) => void;
19
20
  };
20
21
  widthMode?: TabWidthMode;
21
22
  maxWidth?: number | null;
@@ -92,6 +93,8 @@ declare class Tab extends LayoutManager {
92
93
  private _onBarTabClose;
93
94
  private closeEntry;
94
95
  closeTab(content: Component): boolean;
96
+ setTabBusy(content: Component, busy: boolean): boolean;
97
+ isTabBusy(content: Component): boolean;
95
98
  private _onBarDockRequested;
96
99
  private _onBarDockHover;
97
100
  private _onBarTabDragStart;
@@ -108,6 +111,7 @@ declare class Tab extends LayoutManager {
108
111
  addDeferredComponent(factory: ComponentFactory, constraints?: LayoutConstraints): boolean;
109
112
  addLazyTab(factory: ComponentFactory, name: string, constraints?: LayoutConstraints): void;
110
113
  private syncUntabbedChildren;
114
+ private setEntryBusy;
111
115
  private materializeAsync;
112
116
  private announcePendingActivation;
113
117
  private failEntry;
@@ -135,6 +139,7 @@ declare class Tab extends LayoutManager {
135
139
  on(event: "activate", listener: (content: Component, index: number) => void): this;
136
140
  on(event: "dock", listener: (content: Component) => void): this;
137
141
  on(event: "exception", listener: (error: unknown, label: string) => void): this;
142
+ on(event: "busychange", listener: (busy: boolean, label: string) => void): this;
138
143
  off(event: TabEvent, listener: Function): this;
139
144
  protected emit(event: "tabclose", component: Component): void;
140
145
  protected emit(event: "empty"): void;
@@ -143,6 +148,7 @@ declare class Tab extends LayoutManager {
143
148
  protected emit(event: "activate", content: Component, index: number): void;
144
149
  protected emit(event: "dock", content: Component): void;
145
150
  protected emit(event: "exception", error: unknown, label: string): void;
151
+ protected emit(event: "busychange", busy: boolean, label: string): void;
146
152
  }
147
153
  declare const TabCallable: import("../core/Callable.js").Callable<typeof Tab>;
148
154
  type TabCallable = Tab;
@@ -6,6 +6,8 @@ declare class Table extends LayoutManager {
6
6
  constructor(options?: TableLayoutOptions);
7
7
  attach(container: Component): this;
8
8
  doLayout(): void;
9
+ private calculate;
10
+ private commit;
9
11
  private initializeWidths;
10
12
  private rescaleWidths;
11
13
  private absorbSlackIntoGreedy;
@@ -8,7 +8,7 @@ declare class VFlow extends FlowLayout {
8
8
  getMaxSize(): Size | null;
9
9
  doLayout(): void;
10
10
  private groupIntoColumns;
11
- private placeColumns;
11
+ private resolveColumns;
12
12
  private cellsMainExtent;
13
13
  private columnsCrossExtent;
14
14
  }
@@ -21,7 +21,7 @@ export { Border } from '../layout/Border.js';
21
21
  export type { BorderOptions } from '../layout/Border.js';
22
22
  export type { AxisPosition, AxisSpread } from '../primitive/Axis.js';
23
23
  export { BoxLayout } from '../layout/BoxLayout.js';
24
- export type { BoxLayoutOptions, BoxMode, BoxOverflowSizing, BoxJustify } from '../layout/BoxLayout.js';
24
+ export type { BoxLayoutOptions, BoxMode, BoxOverflowSizing, BoxJustify, BoxItemAlign } from '../layout/BoxLayout.js';
25
25
  export { HBox } from '../layout/HBox.js';
26
26
  export type { HBoxOptions } from '../layout/HBox.js';
27
27
  export { VBox } from '../layout/VBox.js';
@@ -4,6 +4,7 @@ import { WindowBorder } from "../component/container/WindowBorder.js";
4
4
  import { Event } from "../core/Event.js";
5
5
  import { DismissableLayer, LayerDismissMode } from "../core/LayerManager.js";
6
6
  import { Container, ContainerOptions } from "../core/Container.js";
7
+ import type { ClassStyleDefaults } from "../core/ClassStyleRules.js";
7
8
  import { Size } from "../primitive/Size.js";
8
9
  import type { Rail } from "../overlay/Rail.js";
9
10
  export type WindowState = "normal" | "minimized" | "maximized";
@@ -36,6 +37,7 @@ export interface WindowOptions extends ContainerOptions {
36
37
  constrainToViewport?: boolean;
37
38
  }
38
39
  export declare abstract class AbstractWindow extends Container<WindowOptions> implements DismissableLayer {
40
+ protected static readonly ownClassStyleDefaults: ClassStyleDefaults;
39
41
  private static openWindows;
40
42
  private _borderComponents;
41
43
  private _animationFrameId;
@@ -65,6 +67,7 @@ export declare abstract class AbstractWindow extends Container<WindowOptions> im
65
67
  private _contentReadyCallback;
66
68
  protected _preMinimizeState: "normal" | "maximized";
67
69
  private _restoreRect;
70
+ private _normalMinSize;
68
71
  private _bodyHost;
69
72
  private _rail;
70
73
  private _windowListeners;
@@ -111,6 +111,7 @@ declare class Dock extends Container<DockOptions> {
111
111
  private regionKind;
112
112
  private onPanelClosed;
113
113
  private failPanel;
114
+ private setFrameBusy;
114
115
  private onPanelFocused;
115
116
  private onPanelDetached;
116
117
  private onFloatActivated;
@@ -47,7 +47,7 @@ declare class Menu extends Component implements DismissableLayer {
47
47
  private rebuildPersistentItems;
48
48
  private buildPersistentItems;
49
49
  private setFocusedIndex;
50
- private isItemSeparator;
50
+ private isItemSkipped;
51
51
  private closeOpenSubmenu;
52
52
  private dismissAll;
53
53
  getLayerElement(): Handle | null;
@@ -10,6 +10,7 @@ export interface PopoverOptions extends ContainerOptions {
10
10
  dismissOn?: PopoverDismissMode;
11
11
  showArrow?: boolean;
12
12
  title?: string;
13
+ onClose?: () => void;
13
14
  }
14
15
  declare class Popover extends Container<PopoverOptions> implements DismissableLayer {
15
16
  private _placement;
@@ -18,6 +19,7 @@ declare class Popover extends Container<PopoverOptions> implements DismissableLa
18
19
  private _showArrow;
19
20
  private _title;
20
21
  private _titleComponent;
22
+ private _onClose;
21
23
  private _bodyComponent;
22
24
  private _actionsRow;
23
25
  private _fadeShowAnimation;
@@ -55,6 +57,7 @@ declare class Popover extends Container<PopoverOptions> implements DismissableLa
55
57
  getBand(): number;
56
58
  doLayout(): this;
57
59
  protected destructor(): void;
60
+ private _reflowIfOpen;
58
61
  private _reposition;
59
62
  private resolvePlacement;
60
63
  private ensureArrow;
@@ -0,0 +1,19 @@
1
+ import { AnimatedDropdown, AnimatedDropdownOptions } from "../core/AnimatedDropdown.js";
2
+ import type { Handle, Rect } from "../core/DOM.js";
3
+ import { AnchoredFlexiblePlacement } from "../core/OverlayPosition.js";
4
+ import type { Size } from "../primitive/Size.js";
5
+ import type { ClassStyleDefaults } from "../core/ClassStyleRules.js";
6
+ export interface PopupPanelOptions extends AnimatedDropdownOptions {
7
+ }
8
+ declare class PopupPanel<TOptions extends PopupPanelOptions = PopupPanelOptions> extends AnimatedDropdown<TOptions> {
9
+ protected static readonly ownClassStyleDefaults: ClassStyleDefaults;
10
+ private _currentOpener;
11
+ constructor(options?: PopupPanelOptions, subclassDefaults?: Partial<PopupPanelOptions>);
12
+ showAt(anchorRect: Rect): this;
13
+ toggleFor(openerEl: Handle, anchorRect: Rect): this;
14
+ hideAnimated(): this;
15
+ protected resolvePlacement(anchorRect: Rect, size: Size, viewport: Size): AnchoredFlexiblePlacement;
16
+ }
17
+ declare const PopupPanelCallable: import("../core/Callable.js").Callable<typeof PopupPanel>;
18
+ type PopupPanelCallable<TOptions extends PopupPanelOptions = PopupPanelOptions> = PopupPanel<TOptions>;
19
+ export { PopupPanel as _PopupPanel, PopupPanelCallable as PopupPanel, };
@@ -7,6 +7,7 @@ declare class Window extends AbstractWindow {
7
7
  private _headerDragShift;
8
8
  private _headerDragComponentId;
9
9
  private readonly _boundCaptureHeaderShift;
10
+ private readonly _boundOnHeaderMouseDown;
10
11
  constructor(headerText: string, options?: WindowOptions);
11
12
  getHeader(): WindowHeader;
12
13
  setHeaderText(text: string): this;
@@ -22,6 +23,7 @@ declare class Window extends AbstractWindow {
22
23
  protected chromeHeight(): number;
23
24
  protected addContent(content: Component): void;
24
25
  isChromeComponent(child: Component): boolean;
26
+ private onHeaderMouseDown;
25
27
  private onHeaderDoubleClick;
26
28
  private targetIsInTrailingButton;
27
29
  private captureHeaderShift;
@@ -9,6 +9,8 @@ export { Tooltip } from '../overlay/Tooltip.js';
9
9
  export type { TooltipColors } from '../overlay/Tooltip.js';
10
10
  export { Popover } from '../overlay/Popover.js';
11
11
  export type { PopoverOptions, PopoverPlacement, PopoverDismissMode } from '../overlay/Popover.js';
12
+ export { PopupPanel } from '../overlay/PopupPanel.js';
13
+ export type { PopupPanelOptions } from '../overlay/PopupPanel.js';
12
14
  export { Notification } from '../overlay/Notification.js';
13
15
  export type { NotificationType, NotificationRecord } from '../overlay/Notification.js';
14
16
  export { NotificationHistoryButton } from '../overlay/NotificationHistoryButton.js';
@@ -14,6 +14,13 @@ export declare function splitFragment(input: string): {
14
14
  path: string;
15
15
  fragment: string;
16
16
  };
17
+ export declare function splitQuery(input: string): {
18
+ path: string;
19
+ query: string;
20
+ };
21
+ export declare function parseQuery(query: string): Record<string, string>;
22
+ export declare function formatQuery(query: Record<string, string>): string;
23
+ export declare function sameQuery(a: Record<string, string>, b: Record<string, string>): boolean;
17
24
  export declare function normalizeBase(base: string): string;
18
25
  export declare function stripBase(base: string, pathname: string): string;
19
26
  export declare function joinBase(base: string, path: string): string;
@@ -1,5 +1,6 @@
1
1
  export type RouteParams = Record<string, string>;
2
- export type RouteHandler = (params: RouteParams, path: string, fragment: string) => void;
2
+ export type RouteQuery = Record<string, string>;
3
+ export type RouteHandler = (params: RouteParams, path: string, fragment: string, query: RouteQuery) => void;
3
4
  export type RouterEvent = "navigate" | "nomatch";
4
5
  export type RouterMode = "hash" | "history";
5
6
  export interface RouteMatch {
@@ -7,6 +8,7 @@ export interface RouteMatch {
7
8
  params: RouteParams;
8
9
  path: string;
9
10
  fragment: string;
11
+ query: RouteQuery;
10
12
  }
11
13
  export interface RouterOptions {
12
14
  mode?: RouterMode;
@@ -31,10 +33,12 @@ export declare class Router {
31
33
  stop(): this;
32
34
  navigate(path: string, options?: {
33
35
  replace?: boolean;
36
+ query?: RouteQuery;
34
37
  }): this;
35
- getHref(path: string): string;
38
+ getHref(path: string, query?: RouteQuery): string;
36
39
  getPath(href?: string): string;
37
40
  getFragment(href?: string): string;
41
+ getQuery(href?: string): RouteQuery;
38
42
  private decodePath;
39
43
  on(event: "navigate", listener: (match: RouteMatch) => void): this;
40
44
  on(event: "nomatch", listener: (path: string) => void): this;
@@ -1,2 +1,2 @@
1
1
  export { Router } from '../router/Router.js';
2
- export type { RouteParams, RouteHandler, RouterEvent, RouteMatch, RouterOptions, RouterMode } from '../router/Router.js';
2
+ export type { RouteParams, RouteQuery, RouteHandler, RouterEvent, RouteMatch, RouterOptions, RouterMode } from '../router/Router.js';
@@ -1 +1 @@
1
- import{t as e}from"./FieldDecorator-HG65hEtk.js";export{e as FieldDecorator};
1
+ import{t as e}from"./FieldDecorator-DyPX8CFh.js";export{e as FieldDecorator};
package/llms.txt CHANGED
@@ -39,6 +39,7 @@ Organized by task. Columns: task → symbol · import subpath · summary · docs
39
39
  - Two-state toggle button → **ToggleButton** · `@jimka/typescript-ui/component/button` · A toggle button component that switches between selected and unselected states on each click. · docs/components/ToggleButton.md
40
40
  - Button with a primary action plus a dropdown menu → **SplitButton** · `@jimka/typescript-ui/component/button` · A push button with a trailing dropdown chevron. The main button face fires the primary `"action"` event exactly like `Button`; clicking the… · docs/components/SplitButton.md
41
41
  - Button whose click opens a dropdown menu → **MenuButton** · `@jimka/typescript-ui/component/button` · A push button whose click toggles a rebuild-mode dropdown `Menu` anchored under its bottom-left corner. The menu opens below the button, an… · docs/components/MenuButton.md
42
+ - Button whose click opens a custom popup panel → **PopupButton** · `@jimka/typescript-ui/component/button` · A push button whose click toggles a PopupPanel anchored under its bottom-left corner, mirroring `MenuButton` with a `PopupPanel` in place o… · docs/components/PopupButton.md
42
43
  - Clickable text link that activates in-app (click / Enter) → **Link** · `@jimka/typescript-ui/component/input` · A text link: link-coloured, underlined, and activated by a click or the Enter key. Its **hit area is exactly its text** — it is a Text subc… · docs/components/Link.md
43
44
  - Checkbox → **Checkbox** · `@jimka/typescript-ui/component/input` · A custom-drawn checkbox rendered as a focusable `<div>` with `role="checkbox"`. · docs/components/Checkbox.md
44
45
  - Radio button (mutually exclusive within a group) → **RadioButton** · `@jimka/typescript-ui/component/input` · A custom-drawn radio button rendered as a focusable `<div>` with `role="radio"`. The ring + dot is drawn with framework primitives; the nat… · docs/components/RadioButton.md
@@ -86,7 +87,10 @@ Organized by task. Columns: task → symbol · import subpath · summary · docs
86
87
  - Modal dialog (alert/confirm/prompt/custom) → **Dialog** · `@jimka/typescript-ui/overlay` · A modal dialog component with a title bar, scrollable content area, and button row. · docs/components/Dialog.md
87
88
  - Edge-anchored sliding drawer → **Drawer** · `@jimka/typescript-ui/overlay` · An edge-anchored panel that rests off-screen against a viewport edge and slides into view when opened, overlaying the rest of the UI. · docs/components/Drawer.md
88
89
  - Context / dropdown menu → **Menu** · `@jimka/typescript-ui/overlay` · A floating menu panel that operates in one of two modes: · docs/components/Menu.md
90
+ - Checkbox row in a menu → **CheckboxMenuRow** · `@jimka/typescript-ui/component/container` · A `Menu` row hosting a real `Checkbox`, for a multi-select menu. · docs/components/CheckboxMenuRow.md
91
+ - Radio row in a menu → **RadioMenuRow** · `@jimka/typescript-ui/component/container` · A `Menu` row hosting a real `RadioButton`, for a single-choice menu. · docs/components/RadioMenuRow.md
89
92
  - Anchored floating popover → **Popover** · `@jimka/typescript-ui/overlay` · An anchored, non-modal floating bubble with a directional arrow tail. Use `Popover` for click-triggered, interactive content (title, body,… · docs/components/Popover.md
93
+ - Custom popup panel anchored to a trigger → **PopupPanel** · `@jimka/typescript-ui/overlay` · A floating panel that sizes itself to its content, places itself against a trigger rect, and caps its height to the room available there —… · docs/components/PopupPanel.md
90
94
  - Hover tooltip → **Tooltip** · `@jimka/typescript-ui/overlay` · A singleton floating tooltip that appears near the cursor after a short delay. · docs/components/Tooltip.md
91
95
  - Transient toast notification → **Notification** · `@jimka/typescript-ui/overlay` · A lightweight toast-style notification that appears in the bottom-right corner of the viewport and auto-dismisses after a configurable dura… · docs/components/Notification.md
92
96
  - Browse / re-open past notifications → **NotificationHistoryButton** · `@jimka/typescript-ui/overlay` · A trigger button that opens a menu of recent notifications. The menu lists the in-session Notification history in chronological order (late… · docs/components/NotificationHistoryButton.md
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jimka/typescript-ui",
3
- "version": "0.5.0",
3
+ "version": "0.7.0",
4
4
  "description": "A web-based layout manager and UI component framework written in TypeScript.",
5
5
  "keywords": ["ui", "ui-components", "typescript", "layout", "layout-manager", "widgets", "framework", "dock", "data-table", "retained-mode"],
6
6
  "author": "Jimmy Karlsson",
@@ -1,2 +0,0 @@
1
- import{l as e}from"./Position-PBVBW1JS.js";import{S as t}from"./Component-w65rPK75.js";import{t as n}from"./Text-CdHf3B-1.js";import{t as r}from"./AbstractInput-B10DfLOf.js";var AbstractBooleanInput=class extends r{_label=null;getLabel(){return this._options.label??null}setLabel(e){return this._options.label=e,this.applyLabel(e),this}getBaseline(){return this._label===null?this.wrapInnerBaseline(e.measureTextBaseline()):this.wrapInnerBaseline(this._label.getBaseline())}applyLabel(e){if(e===null){this._label!==null&&(super.removeComponent(this._label),this._label=null);return}this._label===null?(this._label=new n(e),this._label.setPointerEvents(`none`),super.addComponent(this._label)):this._label.setText(e)}applyEnabled(e){this.getAria().setDisabled(!e),this.getAria().setTabIndex(e?0:-1),this.getInteractiveSurface().setCursor(e?`pointer`:`default`)}applyReadOnly(e){this.getAria().setReadOnly(e)}handleActivationKey(e){this.activationKeys().includes(e.key)&&(e.preventDefault(),this.isEnabled()&&!this.isReadOnly()&&this.activate())}installKeyboard(){t.addListener(this,`keydown`,this.handleActivationKey)}activateFromPointer(){this.isEnabled()&&!this.isReadOnly()&&this.activate()}activationKeys(){return[` `]}};export{AbstractBooleanInput as t};
2
- //# sourceMappingURL=AbstractBooleanInput-CbW7ZrDT.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AbstractBooleanInput-CbW7ZrDT.js","names":[],"sources":["../../src/typescript/lib/component/input/AbstractBooleanInput.ts"],"sourcesContent":["// SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0\n\nimport { AbstractInput, AbstractInputOptions } from \"~/component/input/AbstractInput.js\";\nimport { Component } from \"~/core/Component.js\";\nimport { Event } from \"~/core/Event.js\";\nimport { Text } from \"~/component/input/Text.js\";\nimport { Util } from \"~/core/Util.js\";\n\n/**\n * Construction-time options shared by the boolean-valued controls\n * ({@link Checkbox}, {@link RadioButton}, {@link Toggle}). Concrete subclasses\n * extend this with their own value / selected / indeterminate fields.\n *\n * @category Components\n */\nexport interface AbstractBooleanInputOptions extends AbstractInputOptions {\n label?: string | null;\n}\n\n/**\n * Abstract base for the three boolean-valued form controls — {@link Checkbox},\n * {@link RadioButton}, {@link Toggle}. Owns the mechanics they share verbatim:\n * the optional inline `_label` {@link Text} (mount / replace / remove), the\n * enabled / read-only ARIA + tabindex + interactive-surface cursor reflection,\n * the label-or-text baseline, and the keyboard-activation wiring routed through\n * the same enabled/read-only guard as pointer activation.\n *\n * Each subclass supplies only what differs: its inner graphic (the interactive\n * surface), the value mutation performed on activation, and — for {@link Toggle}\n * — the activation keys and a pill-centred baseline override. The value\n * semantics (`isSelected` /\n * `setSelected` / `getValue` / `setValue`, indeterminate handling, `ButtonGroup`\n * change firing, synthetic-click behaviour) stay in the subclasses.\n *\n * Not wrapped with `callable()` — abstract classes are never instantiated.\n *\n * @category Components\n */\nabstract class AbstractBooleanInput<\n TOptions extends AbstractBooleanInputOptions = AbstractBooleanInputOptions\n>\n extends AbstractInput<boolean, TOptions>\n{\n // Written by `applyLabel` from the subclass constructor body (after\n // super()), never by a cascade-dispatched setter, so a plain `= null`\n // initializer is safe.\n protected _label: Text | null = null;\n\n /**\n * Returns the label text, or `null` when none was set.\n *\n * @returns The label string, or `null`.\n */\n getLabel(): string | null {\n return this._options.label ?? null;\n }\n\n /**\n * Sets the inline label text. Pass `null` to remove the label entirely.\n *\n * @param text - The label text, or `null` to clear.\n *\n * @returns This component, for method chaining.\n */\n setLabel(text: string | null): this {\n this._options.label = text;\n this.applyLabel(text);\n\n return this;\n }\n\n /**\n * Returns the offset from the top of the control to its inline label's text\n * baseline, or — when there is no label — to the text baseline the graphic\n * would share with a label, so a label-less graphic still sits on a row's\n * baseline.\n *\n * @returns The baseline offset in pixels.\n *\n * @remarks A `null` baseline auto-centres the graphic within the row's\n * text-line height, which floats a small graphic to the row centre once a\n * tall sibling (e.g. a `TextArea`) inflates the row's descent. Returning the\n * text-line baseline keeps the graphic aligned exactly as a labelled\n * control's graphic would be. {@link Toggle} overrides this for its taller\n * pill.\n */\n getBaseline(): number | null {\n if (this._label === null) {\n return this.wrapInnerBaseline(Util.measureTextBaseline());\n }\n\n return this.wrapInnerBaseline(this._label.getBaseline());\n }\n\n /**\n * Mounts, replaces, or removes the inline label.\n *\n * @param text - The label text, or `null` to remove the label.\n */\n protected applyLabel(text: string | null): void {\n if (text === null) {\n if (this._label !== null) {\n super.removeComponent(this._label);\n this._label = null;\n }\n\n return;\n }\n\n if (this._label === null) {\n this._label = new Text(text);\n this._label.setPointerEvents(\"none\");\n super.addComponent(this._label);\n } else {\n this._label.setText(text);\n }\n }\n\n /**\n * Reflects the enabled flag in the ARIA tree, the tabindex, and the\n * interactive surface's cursor.\n *\n * @param value - The new enabled state.\n */\n protected applyEnabled(value: boolean): void {\n this.getAria().setDisabled(!value);\n this.getAria().setTabIndex(value ? 0 : -1);\n this.getInteractiveSurface().setCursor(value ? \"pointer\" : \"default\");\n }\n\n /**\n * Reflects the read-only flag in the ARIA tree.\n *\n * @param value - The new read-only state.\n */\n protected applyReadOnly(value: boolean): void {\n this.getAria().setReadOnly(value);\n }\n\n /**\n * Keydown handler: activates the control when the pressed key is one of\n * {@link activationKeys} and the control is enabled and not read-only.\n *\n * @param e - The keyboard event.\n */\n private handleActivationKey(e: KeyboardEvent): void {\n if (!this.activationKeys().includes(e.key)) {\n return;\n }\n\n e.preventDefault();\n\n if (this.isEnabled() && !this.isReadOnly()) {\n this.activate();\n }\n }\n\n /**\n * Wires the keyboard-activation listener on the focused root. Called from\n * each subclass constructor after its graphic is built.\n */\n protected installKeyboard(): void {\n Event.addListener(this, \"keydown\", this.handleActivationKey);\n }\n\n /**\n * Activates the control from a pointer click, subject to the same\n * enabled/read-only guard as the keyboard path. Wired by each subclass\n * onto its interactive surface (so the hit area is exactly the visible\n * graphic).\n */\n protected activateFromPointer(): void {\n if (this.isEnabled() && !this.isReadOnly()) {\n this.activate();\n }\n }\n\n /**\n * Keys that activate the control. Defaults to Space; {@link Toggle} widens\n * it to Space and Enter.\n *\n * @returns The activation key strings.\n */\n protected activationKeys(): string[] {\n return [\" \"];\n }\n\n /**\n * Subclass hook: perform the value mutation for an activation (click or\n * key). Called only after the enabled/read-only guard has passed.\n */\n protected abstract activate(): void;\n\n /**\n * Subclass hook: the inner graphic that owns the click + cursor surface\n * ({@link Checkbox}'s box, {@link RadioButton}'s ring, {@link Toggle}'s\n * track).\n *\n * @returns The interactive surface component.\n */\n protected abstract getInteractiveSurface(): Component;\n}\n\nexport { AbstractBooleanInput };\n"],"mappings":"8KAsCA,IAAe,qBAAf,cAGY,CACZ,CAII,OAAgC,KAOhC,UAA0B,CACtB,OAAO,KAAK,SAAS,OAAS,IAClC,CASA,SAAS,EAA2B,CAIhC,MAHA,MAAK,SAAS,MAAQ,EACtB,KAAK,WAAW,CAAI,EAEb,IACX,CAiBA,aAA6B,CAKzB,OAJI,KAAK,SAAW,KACT,KAAK,kBAAkB,EAAK,oBAAoB,CAAC,EAGrD,KAAK,kBAAkB,KAAK,OAAO,YAAY,CAAC,CAC3D,CAOA,WAAqB,EAA2B,CAC5C,GAAI,IAAS,KAAM,CACX,KAAK,SAAW,OAChB,MAAM,gBAAgB,KAAK,MAAM,EACjC,KAAK,OAAS,MAGlB,MACJ,CAEI,KAAK,SAAW,MAChB,KAAK,OAAS,IAAI,EAAK,CAAI,EAC3B,KAAK,OAAO,iBAAiB,MAAM,EACnC,MAAM,aAAa,KAAK,MAAM,GAE9B,KAAK,OAAO,QAAQ,CAAI,CAEhC,CAQA,aAAuB,EAAsB,CACzC,KAAK,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAK,EACjC,KAAK,QAAQ,CAAC,CAAC,YAAY,EAAQ,EAAI,EAAE,EACzC,KAAK,sBAAsB,CAAC,CAAC,UAAU,EAAQ,UAAY,SAAS,CACxE,CAOA,cAAwB,EAAsB,CAC1C,KAAK,QAAQ,CAAC,CAAC,YAAY,CAAK,CACpC,CAQA,oBAA4B,EAAwB,CAC3C,KAAK,eAAe,CAAC,CAAC,SAAS,EAAE,GAAG,IAIzC,EAAE,eAAe,EAEb,KAAK,UAAU,GAAK,CAAC,KAAK,WAAW,GACrC,KAAK,SAAS,EAEtB,CAMA,iBAAkC,CAC9B,EAAM,YAAY,KAAM,UAAW,KAAK,mBAAmB,CAC/D,CAQA,qBAAsC,CAC9B,KAAK,UAAU,GAAK,CAAC,KAAK,WAAW,GACrC,KAAK,SAAS,CAEtB,CAQA,gBAAqC,CACjC,MAAO,CAAC,GAAG,CACf,CAgBJ"}
@@ -1,2 +0,0 @@
1
- import{f as e,h as t}from"./Component-w65rPK75.js";var Anchor=class extends e{constructor(e){super(),e&&this.applyOptions(e)}resolve(e,t){if(e!==void 0)return typeof e==`number`?e:t*e.percent/100}resolveAxis(e,t,n,r,i,a,o){if(e!==void 0&&t!==void 0){let n=Math.max(0,r-e-t);return{start:o+e,extent:n}}let s=n??i;return e===void 0?t===void 0?{start:a,extent:s}:{start:o+r-t-s,extent:s}:{start:o+e,extent:s}}doLayout(){let e=this.getContainer();if(!e)return;let t=e.getInnerSize();if(!t)return;let n=e.getContentInsets(),r=n.getLeft(),i=n.getTop();for(let n of e.getLaidOutComponents()){let e=this.getLayoutConstraints(n),a=n.getPreferredSize(),o=n.getSize(),s=a?.width??o?.width??0,c=a?.height??o?.height??0,l=this.resolveAxis(this.resolve(e?.left,t.width),this.resolve(e?.right,t.width),this.resolve(e?.width,t.width),t.width,s,n.getX(),r),u=this.resolveAxis(this.resolve(e?.top,t.height),this.resolve(e?.bottom,t.height),this.resolve(e?.height,t.height),t.height,c,n.getY(),i);this.commitBounds(n,l.start,u.start,l.extent,u.extent)}}},n=t(Anchor);export{n as t};
2
- //# sourceMappingURL=Anchor-BsblS5it.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Anchor-BsblS5it.js","names":[],"sources":["../../src/typescript/lib/layout/Anchor.ts"],"sourcesContent":["// SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0\n\nimport { LayoutManager, LayoutManagerOptions } from \"~/layout/LayoutManager.js\";\nimport { AnchorConstraints } from \"~/layout/AnchorConstraints.js\";\nimport { callable } from \"~/core/Callable.js\";\n\n/**\n * A length used by an {@link Anchor} constraint, expressed either in **pixels**\n * (a bare `number`) or as a **percentage** of the container's inner extent\n * (`{ percent }`, on a 0–100 scale). The percentage resolves against inner width\n * for horizontal fields (`left` / `right` / `width`) and inner height for\n * vertical fields (`top` / `bottom` / `height`).\n *\n * @category Layouts\n */\nexport type AnchorValue = number | { percent: number };\n\n/**\n * Construction-time options for {@link Anchor}.\n *\n * @category Layouts\n */\nexport interface AnchorOptions extends LayoutManagerOptions {\n}\n\n/**\n * The resolved placement of a child along one axis: a `start` offset in the\n * container's coordinate space and the `extent` (width or height) to commit.\n */\ninterface AxisResult {\n start: number;\n extent: number;\n}\n\n/**\n * A resize-reactive layout manager that positions each child by edge-relative\n * and proportional offsets, re-resolving them on every `doLayout` pass so a\n * child stays pinned to a container edge — or stretched between two edges — as\n * the container resizes. It is the reactive counterpart to the static\n * [`Absolute`](/api/layout/classes/Absolute) manager, which never reads the\n * container's inner size.\n *\n * Per child (via {@link AnchorConstraints}) an axis can: pin a fixed distance\n * from one edge (`left` / `right` / `top` / `bottom`), derive its extent from\n * the container when both opposing edges are set (stretch), or take an explicit\n * `width` / `height`. Any offset or size may be a pixel `number` or an\n * {@link AnchorValue} percentage of the container's inner extent.\n *\n * Like `Absolute`, `Anchor` commits rects directly through `commitBounds`,\n * bypassing the cell clamp — a child sized larger than the container is\n * committed at its computed size and may overflow, which a host `Panel` with\n * `autoScroll: \"auto\"` scrolls natively. It imposes no intrinsic preferred,\n * min, or max size on its host.\n *\n * @category Layouts\n */\nclass Anchor extends LayoutManager {\n\n constructor(options?: AnchorOptions) {\n // LayoutManager's constructor takes no options; applied via applyOptions below.\n // eslint-disable-next-line local/forward-super-options\n super();\n\n if (options) {\n this.applyOptions(options);\n }\n }\n\n /**\n * Resolves an {@link AnchorValue} to pixels against the given extent.\n * Returns the number unchanged for a pixel value, `extent * percent / 100`\n * for a percentage tag, and `undefined` when the field is unset.\n *\n * @param value - The pixel-or-percent value, or `undefined` if unset.\n * @param extent - The container inner extent the percentage resolves against.\n * @returns The resolved pixel value, or `undefined` when `value` is unset.\n */\n private resolve(value: AnchorValue | undefined, extent: number): number | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n if (typeof value === \"number\") {\n return value;\n }\n\n // Percent is on a 0–100 (CSS-style) scale, resolved against the inner extent.\n return extent * value.percent / 100;\n }\n\n /**\n * Resolves one axis's placement from its near edge, far edge, and explicit\n * size against the container inner extent, applying the precedence rules:\n * both edges stretch (size ignored); near edge pins the start; far edge pins\n * the end; neither edge falls back to the child's own start. The `origin`\n * (the inset on this axis) is added for every anchored row but **not** for\n * the no-edge fallback, matching {@link Absolute}, which commits the child's\n * own `getX` / `getY` without an inset offset.\n *\n * @param near - Resolved `left` / `top` offset, or `undefined` if unset.\n * @param far - Resolved `right` / `bottom` offset, or `undefined` if unset.\n * @param size - Resolved explicit `width` / `height`, or `undefined` if unset.\n * @param inner - The container's inner extent on this axis.\n * @param preferred - The child's preferred extent on this axis.\n * @param ownStart - The child's own `getX` / `getY` on this axis.\n * @param origin - The inset on this axis added to anchored placements.\n * @returns The `{ start, extent }` to commit on this axis.\n */\n private resolveAxis(near: number | undefined, far: number | undefined, size: number | undefined,\n inner: number, preferred: number, ownStart: number, origin: number): AxisResult {\n if (near !== undefined && far !== undefined) {\n // Stretch between both edges; explicit size is ignored. Clamp the\n // derived extent at 0 so an over-constrained pair never goes negative.\n const extent = Math.max(0, inner - near - far);\n\n return { start: origin + near, extent };\n }\n\n const extent = size ?? preferred;\n\n if (near !== undefined) {\n return { start: origin + near, extent };\n }\n\n if (far !== undefined) {\n return { start: origin + inner - far - extent, extent };\n }\n\n // No edge constrained: keep the child's own position, like Absolute, and\n // do not add the inset origin so mixed Anchor/Absolute usage is consistent.\n return { start: ownStart, extent };\n }\n\n /**\n * Resolves each child's rect from its {@link AnchorConstraints} against the\n * container's current inner size and insets, then commits via the base\n * `commitBounds` (bypassing the cell clamp). Bails before the container\n * connects, when `getInnerSize` is still `null`.\n */\n doLayout(): void {\n const container = this.getContainer();\n\n if (!container) {\n return;\n }\n\n const inner = container.getInnerSize();\n\n if (!inner) {\n return;\n }\n\n const insets = container.getContentInsets();\n const originX = insets.getLeft();\n const originY = insets.getTop();\n\n for (const component of container.getLaidOutComponents()) {\n const cons = this.getLayoutConstraints(component) as AnchorConstraints | undefined;\n\n const preferredSize = component.getPreferredSize();\n const size = component.getSize();\n const prefW = preferredSize?.width ?? size?.width ?? 0;\n const prefH = preferredSize?.height ?? size?.height ?? 0;\n\n const xAxis = this.resolveAxis(this.resolve(cons?.left, inner.width),\n this.resolve(cons?.right, inner.width), this.resolve(cons?.width, inner.width),\n inner.width, prefW, component.getX(), originX);\n\n const yAxis = this.resolveAxis(this.resolve(cons?.top, inner.height),\n this.resolve(cons?.bottom, inner.height), this.resolve(cons?.height, inner.height),\n inner.height, prefH, component.getY(), originY);\n\n this.commitBounds(component, xAxis.start, yAxis.start, xAxis.extent, yAxis.extent);\n }\n }\n}\n\nconst AnchorCallable = callable(Anchor);\ntype AnchorCallable = Anchor;\nexport {\n Anchor as _Anchor,\n AnchorCallable as Anchor\n};\n"],"mappings":"mDAwDA,IAAM,OAAN,cAAqB,CAAc,CAE/B,YAAY,EAAyB,CAGjC,MAAM,EAEF,GACA,KAAK,aAAa,CAAO,CAEjC,CAWA,QAAgB,EAAgC,EAAoC,CAC5E,OAAU,IAAA,GASd,OALI,OAAO,GAAU,SACV,EAIJ,EAAS,EAAM,QAAU,GACpC,CAoBA,YAAoB,EAA0B,EAAyB,EACnD,EAAe,EAAmB,EAAkB,EAA4B,CAChG,GAAI,IAAS,IAAA,IAAa,IAAQ,IAAA,GAAW,CAGzC,IAAM,EAAS,KAAK,IAAI,EAAG,EAAQ,EAAO,CAAG,EAE7C,MAAO,CAAE,MAAO,EAAS,EAAM,QAAO,CAC1C,CAEA,IAAM,EAAS,GAAQ,EAYvB,OAVI,IAAS,IAAA,GAIT,IAAQ,IAAA,GAML,CAAE,MAAO,EAAU,QAAO,EALtB,CAAE,MAAO,EAAS,EAAQ,EAAM,EAAQ,QAAO,EAJ/C,CAAE,MAAO,EAAS,EAAM,QAAO,CAU9C,CAQA,UAAiB,CACb,IAAM,EAAY,KAAK,aAAa,EAEpC,GAAI,CAAC,EACD,OAGJ,IAAM,EAAQ,EAAU,aAAa,EAErC,GAAI,CAAC,EACD,OAGJ,IAAM,EAAS,EAAU,iBAAiB,EACpC,EAAU,EAAO,QAAQ,EACzB,EAAU,EAAO,OAAO,EAE9B,IAAK,IAAM,KAAa,EAAU,qBAAqB,EAAG,CACtD,IAAM,EAAO,KAAK,qBAAqB,CAAS,EAE1C,EAAgB,EAAU,iBAAiB,EAC3C,EAAO,EAAU,QAAQ,EACzB,EAAQ,GAAe,OAAS,GAAM,OAAS,EAC/C,EAAQ,GAAe,QAAU,GAAM,QAAU,EAEjD,EAAQ,KAAK,YAAY,KAAK,QAAQ,GAAM,KAAM,EAAM,KAAK,EAC/D,KAAK,QAAQ,GAAM,MAAO,EAAM,KAAK,EAAG,KAAK,QAAQ,GAAM,MAAO,EAAM,KAAK,EAC7E,EAAM,MAAO,EAAO,EAAU,KAAK,EAAG,CAAO,EAE3C,EAAQ,KAAK,YAAY,KAAK,QAAQ,GAAM,IAAK,EAAM,MAAM,EAC/D,KAAK,QAAQ,GAAM,OAAQ,EAAM,MAAM,EAAG,KAAK,QAAQ,GAAM,OAAQ,EAAM,MAAM,EACjF,EAAM,OAAQ,EAAO,EAAU,KAAK,EAAG,CAAO,EAElD,KAAK,aAAa,EAAW,EAAM,MAAO,EAAM,MAAO,EAAM,OAAQ,EAAM,MAAM,CACrF,CACJ,CACJ,EAEM,EAAiB,EAAS,MAAM"}