@jimka/typescript-ui 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/README.md +5 -18
  2. package/dist/lib/{AbstractBooleanInput-C3rj7sje.js → AbstractBooleanInput-BGesvIZy.js} +2 -2
  3. package/dist/lib/{AbstractBooleanInput-C3rj7sje.js.map → AbstractBooleanInput-BGesvIZy.js.map} +1 -1
  4. package/dist/lib/{AbstractInput-DD-NpicS.js → AbstractInput-BxOtFrER.js} +2 -2
  5. package/dist/lib/{AbstractInput-DD-NpicS.js.map → AbstractInput-BxOtFrER.js.map} +1 -1
  6. package/dist/lib/AnimatedDropdown-CZQEqQi-.js +2 -0
  7. package/dist/lib/AnimatedDropdown-CZQEqQi-.js.map +1 -0
  8. package/dist/lib/Border-BgaZkc1R.js +2 -0
  9. package/dist/lib/Border-BgaZkc1R.js.map +1 -0
  10. package/dist/lib/{BoxLayout-DgZukB5_.js → BoxLayout-DrKGfsup.js} +2 -2
  11. package/dist/lib/{BoxLayout-DgZukB5_.js.map → BoxLayout-DrKGfsup.js.map} +1 -1
  12. package/dist/lib/Button-U1rsP4v8.js +2 -0
  13. package/dist/lib/Button-U1rsP4v8.js.map +1 -0
  14. package/dist/lib/{Card-UF0fq8cQ.js → Card-BVwOS8AG.js} +2 -2
  15. package/dist/lib/{Card-UF0fq8cQ.js.map → Card-BVwOS8AG.js.map} +1 -1
  16. package/dist/lib/ComboBox-B9EDPu6T.js +2 -0
  17. package/dist/lib/ComboBox-B9EDPu6T.js.map +1 -0
  18. package/dist/lib/Component-DXf5a3g0.js +2 -0
  19. package/dist/lib/Component-DXf5a3g0.js.map +1 -0
  20. package/dist/lib/Container-D5H8VxJK.js +2 -0
  21. package/dist/lib/{Container-3KsvsJ6S.js.map → Container-D5H8VxJK.js.map} +1 -1
  22. package/dist/lib/DOM-CGn7xyTw.js +2 -0
  23. package/dist/lib/DOM-CGn7xyTw.js.map +1 -0
  24. package/dist/lib/DragManager-CI4mZQFy.js +2 -0
  25. package/dist/lib/{DragManager-tPMnbjeO.js.map → DragManager-CI4mZQFy.js.map} +1 -1
  26. package/dist/lib/FieldDecorator-CJs9gwqH.js +2 -0
  27. package/dist/lib/{FieldDecorator-E7WzutjO.js.map → FieldDecorator-CJs9gwqH.js.map} +1 -1
  28. package/dist/lib/{Fit-CFIr4P9R.js → Fit-DjRsiwlg.js} +2 -2
  29. package/dist/lib/{Fit-CFIr4P9R.js.map → Fit-DjRsiwlg.js.map} +1 -1
  30. package/dist/lib/Glyph-KEf4nIv2.js +2 -0
  31. package/dist/lib/Glyph-KEf4nIv2.js.map +1 -0
  32. package/dist/lib/{Grid-Czux--Mr.js → Grid-DdL9TVeJ.js} +2 -2
  33. package/dist/lib/{Grid-Czux--Mr.js.map → Grid-DdL9TVeJ.js.map} +1 -1
  34. package/dist/lib/GridConstraints-DkLueyrf.js +2 -0
  35. package/dist/lib/GridConstraints-DkLueyrf.js.map +1 -0
  36. package/dist/lib/{HBox-Q8y1PHlk.js → HBox-Ce0GTCJP.js} +2 -2
  37. package/dist/lib/{HBox-Q8y1PHlk.js.map → HBox-Ce0GTCJP.js.map} +1 -1
  38. package/dist/lib/{Header-zPdvC2AX.js → Header-BQIVpBte.js} +2 -2
  39. package/dist/lib/{Header-zPdvC2AX.js.map → Header-BQIVpBte.js.map} +1 -1
  40. package/dist/lib/{IconText-BvGfu7eq.js → IconText-Bo4Qcnot.js} +2 -2
  41. package/dist/lib/{IconText-BvGfu7eq.js.map → IconText-Bo4Qcnot.js.map} +1 -1
  42. package/dist/lib/LayoutConstraints-DkctJZXB.js +2 -0
  43. package/dist/lib/LayoutConstraints-DkctJZXB.js.map +1 -0
  44. package/dist/lib/LayoutSerialization-BT66TY83.js +2 -0
  45. package/dist/lib/LayoutSerialization-BT66TY83.js.map +1 -0
  46. package/dist/lib/LayoutSizes-DU3qSq0w.js +2 -0
  47. package/dist/lib/LayoutSizes-DU3qSq0w.js.map +1 -0
  48. package/dist/lib/List-DtTVTyWW.js +2 -0
  49. package/dist/lib/List-DtTVTyWW.js.map +1 -0
  50. package/dist/lib/Menu-Dz4L7EKJ.js +2 -0
  51. package/dist/lib/Menu-Dz4L7EKJ.js.map +1 -0
  52. package/dist/lib/MenuButton-VJ5uC3c1.js +2 -0
  53. package/dist/lib/{MenuButton-JQQaKThJ.js.map → MenuButton-VJ5uC3c1.js.map} +1 -1
  54. package/dist/lib/Panel-DzWdYwq1.js +2 -0
  55. package/dist/lib/Panel-DzWdYwq1.js.map +1 -0
  56. package/dist/lib/Position-A39T7-_1.js +2 -0
  57. package/dist/lib/Position-A39T7-_1.js.map +1 -0
  58. package/dist/lib/ProgressSpinner-zJKtGyNJ.js +2 -0
  59. package/dist/lib/ProgressSpinner-zJKtGyNJ.js.map +1 -0
  60. package/dist/lib/RadioButton-CYSSv4nV.js +2 -0
  61. package/dist/lib/RadioButton-CYSSv4nV.js.map +1 -0
  62. package/dist/lib/{RovingTabIndex-CFIzIjjU.js → RovingTabIndex-BSZ31Vp5.js} +2 -2
  63. package/dist/lib/{RovingTabIndex-CFIzIjjU.js.map → RovingTabIndex-BSZ31Vp5.js.map} +1 -1
  64. package/dist/lib/Scrollbar-BhtOjqkG.js +2 -0
  65. package/dist/lib/Scrollbar-BhtOjqkG.js.map +1 -0
  66. package/dist/lib/Slider-CdXm7E64.js +2 -0
  67. package/dist/lib/Slider-CdXm7E64.js.map +1 -0
  68. package/dist/lib/{Spacer-BVQncB5B.js → Spacer-D9NGW4QG.js} +2 -2
  69. package/dist/lib/{Spacer-BVQncB5B.js.map → Spacer-D9NGW4QG.js.map} +1 -1
  70. package/dist/lib/TabButton-CThevdY_.js +2 -0
  71. package/dist/lib/{TabButton-pZKFYg7b.js.map → TabButton-CThevdY_.js.map} +1 -1
  72. package/dist/lib/Text-gz6qjFfP.js +2 -0
  73. package/dist/lib/Text-gz6qjFfP.js.map +1 -0
  74. package/dist/lib/Tooltip-tkXDk5Bo.js +3 -0
  75. package/dist/lib/Tooltip-tkXDk5Bo.js.map +1 -0
  76. package/dist/lib/{VBox-D5B9ecw0.js → VBox-EIqw85Rh.js} +2 -2
  77. package/dist/lib/{VBox-D5B9ecw0.js.map → VBox-EIqw85Rh.js.map} +1 -1
  78. package/dist/lib/VirtualRowView-BxpHQ_u8.js +2 -0
  79. package/dist/lib/{VirtualRowView-Con9SWiU.js.map → VirtualRowView-BxpHQ_u8.js.map} +1 -1
  80. package/dist/lib/VirtualScroller-DwEEJE1_.js +2 -0
  81. package/dist/lib/{VirtualScroller-BPDmO1ir.js.map → VirtualScroller-DwEEJE1_.js.map} +1 -1
  82. package/dist/lib/component/button.es.js +1 -1
  83. package/dist/lib/component/button.es.js.map +1 -1
  84. package/dist/lib/component/chart.es.js +1 -1
  85. package/dist/lib/component/chart.es.js.map +1 -1
  86. package/dist/lib/component/container.es.js +1 -1
  87. package/dist/lib/component/container.es.js.map +1 -1
  88. package/dist/lib/component/diagram.es.js +1 -1
  89. package/dist/lib/component/diagram.es.js.map +1 -1
  90. package/dist/lib/component/display.es.js +1 -1
  91. package/dist/lib/component/display.es.js.map +1 -1
  92. package/dist/lib/component/editor.es.js +3 -1
  93. package/dist/lib/component/editor.es.js.map +1 -1
  94. package/dist/lib/component/input.es.js +1 -1
  95. package/dist/lib/component/input.es.js.map +1 -1
  96. package/dist/lib/component/list.es.js +1 -1
  97. package/dist/lib/component/list.es.js.map +1 -1
  98. package/dist/lib/component/menubar.es.js +1 -1
  99. package/dist/lib/component/menubar.es.js.map +1 -1
  100. package/dist/lib/component/table.es.js +2 -2
  101. package/dist/lib/component/table.es.js.map +1 -1
  102. package/dist/lib/component/tree.es.js +1 -1
  103. package/dist/lib/component/tree.es.js.map +1 -1
  104. package/dist/lib/core.es.js +1 -1
  105. package/dist/lib/core.es.js.map +1 -1
  106. package/dist/lib/layout.es.js +1 -1
  107. package/dist/lib/overlay.es.js +1 -1
  108. package/dist/lib/overlay.es.js.map +1 -1
  109. package/dist/lib/primitive.es.js +1 -1
  110. package/dist/lib/router.es.js +2 -0
  111. package/dist/lib/router.es.js.map +1 -0
  112. package/dist/lib/types/component/button/Button.d.ts +4 -3
  113. package/dist/lib/types/component/chart/AbstractChart.d.ts +1 -1
  114. package/dist/lib/types/component/chart/ChartLegend.d.ts +1 -1
  115. package/dist/lib/types/component/container/DialogBackdrop.d.ts +2 -1
  116. package/dist/lib/types/component/container/MenuItem.d.ts +1 -1
  117. package/dist/lib/types/component/container/ScrollStrip.d.ts +1 -0
  118. package/dist/lib/types/component/container/SplitGutter.d.ts +3 -2
  119. package/dist/lib/types/component/container/TabBar.d.ts +1 -2
  120. package/dist/lib/types/component/container/TabPanel.d.ts +6 -3
  121. package/dist/lib/types/component/container/WindowBorder.d.ts +2 -1
  122. package/dist/lib/types/component/container/WindowHeader.d.ts +2 -1
  123. package/dist/lib/types/component/display/Glyph.d.ts +2 -1
  124. package/dist/lib/types/component/display/Markdown.d.ts +11 -1
  125. package/dist/lib/types/component/display/PaginationBar.d.ts +1 -1
  126. package/dist/lib/types/component/display/SpinnerWrap.d.ts +2 -0
  127. package/dist/lib/types/component/display/Video.d.ts +1 -1
  128. package/dist/lib/types/component/display/VideoPlayer.d.ts +1 -1
  129. package/dist/lib/types/component/display/index.d.ts +1 -1
  130. package/dist/lib/types/component/editor/CodeEditor.d.ts +2 -1
  131. package/dist/lib/types/component/editor/MarkdownEditor.d.ts +7 -1
  132. package/dist/lib/types/component/editor/markdownTableTransformer.d.ts +2 -0
  133. package/dist/lib/types/component/input/Checkbox.d.ts +2 -1
  134. package/dist/lib/types/component/input/Link.d.ts +1 -1
  135. package/dist/lib/types/component/input/RadioButton.d.ts +2 -1
  136. package/dist/lib/types/component/input/Slider.d.ts +2 -1
  137. package/dist/lib/types/component/input/Text.d.ts +1 -3
  138. package/dist/lib/types/component/input/TextInput.d.ts +3 -2
  139. package/dist/lib/types/component/list/AbstractSelectableList.d.ts +2 -1
  140. package/dist/lib/types/component/menubar/MenuBarButton.d.ts +1 -1
  141. package/dist/lib/types/core/AnimatedDropdown.d.ts +6 -2
  142. package/dist/lib/types/core/Animation.d.ts +9 -6
  143. package/dist/lib/types/core/Component.d.ts +16 -11
  144. package/dist/lib/types/core/DOM.d.ts +14 -0
  145. package/dist/lib/types/core/Event.d.ts +12 -6
  146. package/dist/lib/types/core/index.d.ts +2 -2
  147. package/dist/lib/types/layout/Accordion.d.ts +2 -0
  148. package/dist/lib/types/layout/Border.d.ts +1 -0
  149. package/dist/lib/types/layout/CollapseSupport.d.ts +5 -1
  150. package/dist/lib/types/layout/LayoutConstraints.d.ts +1 -0
  151. package/dist/lib/types/layout/LayoutManager.d.ts +2 -0
  152. package/dist/lib/types/layout/Split.d.ts +1 -0
  153. package/dist/lib/types/layout/Tab.d.ts +10 -3
  154. package/dist/lib/types/overlay/AbstractWindow.d.ts +9 -2
  155. package/dist/lib/types/overlay/Dialog.d.ts +6 -0
  156. package/dist/lib/types/overlay/Dock.d.ts +12 -2
  157. package/dist/lib/types/overlay/Drawer.d.ts +5 -0
  158. package/dist/lib/types/overlay/Menu.d.ts +3 -1
  159. package/dist/lib/types/overlay/Notification.d.ts +3 -0
  160. package/dist/lib/types/overlay/Popover.d.ts +3 -1
  161. package/dist/lib/types/overlay/Rail.d.ts +7 -0
  162. package/dist/lib/types/overlay/Tooltip.d.ts +3 -0
  163. package/dist/lib/types/overlay/index.d.ts +1 -1
  164. package/dist/lib/types/router/RoutePattern.d.ts +18 -0
  165. package/dist/lib/types/router/Router.d.ts +36 -0
  166. package/dist/lib/types/router/index.d.ts +2 -0
  167. package/dist/lib/validation.es.js +1 -1
  168. package/llms.txt +9 -5
  169. package/package.json +6 -1
  170. package/dist/lib/AnimatedDropdown-BbGCs70E.js +0 -2
  171. package/dist/lib/AnimatedDropdown-BbGCs70E.js.map +0 -1
  172. package/dist/lib/Border-oZC_SDy8.js +0 -2
  173. package/dist/lib/Border-oZC_SDy8.js.map +0 -1
  174. package/dist/lib/Button-DEUtBqK4.js +0 -2
  175. package/dist/lib/Button-DEUtBqK4.js.map +0 -1
  176. package/dist/lib/ComboBox-GOBOAJ1N.js +0 -2
  177. package/dist/lib/ComboBox-GOBOAJ1N.js.map +0 -1
  178. package/dist/lib/Component-BR2f0Itb.js +0 -2
  179. package/dist/lib/Component-BR2f0Itb.js.map +0 -1
  180. package/dist/lib/Container-3KsvsJ6S.js +0 -2
  181. package/dist/lib/DragManager-tPMnbjeO.js +0 -2
  182. package/dist/lib/FieldDecorator-E7WzutjO.js +0 -2
  183. package/dist/lib/Glyph-WUqTF_Z9.js +0 -2
  184. package/dist/lib/Glyph-WUqTF_Z9.js.map +0 -1
  185. package/dist/lib/GridConstraints-Q3wvuovN.js +0 -2
  186. package/dist/lib/GridConstraints-Q3wvuovN.js.map +0 -1
  187. package/dist/lib/LayoutConstraints-CHI2lhPd.js +0 -2
  188. package/dist/lib/LayoutConstraints-CHI2lhPd.js.map +0 -1
  189. package/dist/lib/LayoutSerialization-CWU0iEuV.js +0 -2
  190. package/dist/lib/LayoutSerialization-CWU0iEuV.js.map +0 -1
  191. package/dist/lib/LayoutSizes-BW4wyGDI.js +0 -2
  192. package/dist/lib/LayoutSizes-BW4wyGDI.js.map +0 -1
  193. package/dist/lib/List-D-GhoVgB.js +0 -2
  194. package/dist/lib/List-D-GhoVgB.js.map +0 -1
  195. package/dist/lib/Menu-Wz4MK6sA.js +0 -2
  196. package/dist/lib/Menu-Wz4MK6sA.js.map +0 -1
  197. package/dist/lib/MenuButton-JQQaKThJ.js +0 -2
  198. package/dist/lib/Panel-DIsdaqc2.js +0 -2
  199. package/dist/lib/Panel-DIsdaqc2.js.map +0 -1
  200. package/dist/lib/Position-B-WfZYAJ.js +0 -2
  201. package/dist/lib/Position-B-WfZYAJ.js.map +0 -1
  202. package/dist/lib/ProgressSpinner-Dzaka7_c.js +0 -2
  203. package/dist/lib/ProgressSpinner-Dzaka7_c.js.map +0 -1
  204. package/dist/lib/RadioButton-eI3-vXn3.js +0 -2
  205. package/dist/lib/RadioButton-eI3-vXn3.js.map +0 -1
  206. package/dist/lib/Scrollbar-DchfiFKC.js +0 -2
  207. package/dist/lib/Scrollbar-DchfiFKC.js.map +0 -1
  208. package/dist/lib/Slider-xRxNSjFN.js +0 -2
  209. package/dist/lib/Slider-xRxNSjFN.js.map +0 -1
  210. package/dist/lib/TabButton-pZKFYg7b.js +0 -2
  211. package/dist/lib/Text-D1RrBY52.js +0 -2
  212. package/dist/lib/Text-D1RrBY52.js.map +0 -1
  213. package/dist/lib/Tooltip-4lU_tf6r.js +0 -3
  214. package/dist/lib/Tooltip-4lU_tf6r.js.map +0 -1
  215. package/dist/lib/VirtualRowView-Con9SWiU.js +0 -2
  216. package/dist/lib/VirtualScroller-BPDmO1ir.js +0 -2
@@ -7,6 +7,7 @@ import { BaseObject } from "../core/BaseObject.js";
7
7
  import { LayoutConstraints } from "../layout/LayoutConstraints.js";
8
8
  import { Position } from "../primitive/Position.js";
9
9
  import { Aria } from "../core/Aria.js";
10
+ import { Event } from "../core/Event.js";
10
11
  import { StyleRule } from "../core/StyleTarget.js";
11
12
  export interface Comparator<V, U> {
12
13
  (a: V, b: U): number;
@@ -20,8 +21,9 @@ export interface PerimeterSize {
20
21
  bottom: number;
21
22
  left: number;
22
23
  }
24
+ export type ComponentFactory = () => Component | Promise<Component>;
23
25
  export interface ConstrainedComponent {
24
- component: Component;
26
+ component: Component | ComponentFactory;
25
27
  constraints?: LayoutConstraints;
26
28
  }
27
29
  export interface ComponentStyleRuleSpec {
@@ -61,7 +63,7 @@ export interface ComponentOptions {
61
63
  id?: string;
62
64
  name?: string | null;
63
65
  attributes?: Record<string, string>;
64
- components?: Array<Component | ConstrainedComponent>;
66
+ components?: Array<Component | ComponentFactory | ConstrainedComponent>;
65
67
  styleRules?: ComponentStyleRuleSpec[];
66
68
  }
67
69
  declare class Component<TOptions extends ComponentOptions = ComponentOptions> extends BaseObject {
@@ -73,6 +75,7 @@ declare class Component<TOptions extends ComponentOptions = ComponentOptions> ex
73
75
  private readonly _themeCleanups;
74
76
  private _tag;
75
77
  private _attributes;
78
+ private _elementAttributes;
76
79
  private _boxSizing;
77
80
  private _left;
78
81
  private _top;
@@ -125,6 +128,7 @@ declare class Component<TOptions extends ComponentOptions = ComponentOptions> ex
125
128
  protected applyChromeOptions(options: TOptions): void;
126
129
  protected applyListeners(listeners: Record<string, ((...args: any[]) => void) | undefined> | undefined): void;
127
130
  protected subscribeTheme(listener: () => void): void;
131
+ dispose(): void;
128
132
  protected destructor(): void;
129
133
  protected trackHandle(handle: Handle): Handle;
130
134
  private trackSelector;
@@ -231,14 +235,15 @@ declare class Component<TOptions extends ComponentOptions = ComponentOptions> ex
231
235
  getPreferredSizeConstraint(): Size | null;
232
236
  getPreferredSize(): Size | null;
233
237
  private clampPreferredToConstraints;
234
- setPreferredSize(width: number, height: number): this;
238
+ setPreferredSize(size: Size): this;
239
+ clearPreferredSize(): this;
235
240
  getMinSizeConstraint(): Size | null;
236
241
  getMaxSizeConstraint(): Size | null;
237
242
  private mergeConstraintSize;
238
243
  getMinSize(): Size | null;
239
- setMinSize(width: number, height: number): this;
244
+ setMinSize(size: Size): this;
240
245
  getMaxSize(): Size | null;
241
- setMaxSize(width: number, height: number): this;
246
+ setMaxSize(size: Size): this;
242
247
  getInnerSize(): Size | null;
243
248
  getBorderSize(): PerimeterSize;
244
249
  private estimateBorderSideWidth;
@@ -331,10 +336,10 @@ declare class Component<TOptions extends ComponentOptions = ComponentOptions> ex
331
336
  private materialiseDeferredRules;
332
337
  sync(): void;
333
338
  getParentComponent(): Component | null;
334
- addComponents(...specs: Array<Component | ConstrainedComponent | Array<Component | ConstrainedComponent>>): this;
339
+ addComponents(...specs: Array<Component | ComponentFactory | ConstrainedComponent | Array<Component | ComponentFactory | ConstrainedComponent>>): this;
335
340
  private wireChild;
336
341
  private unwireChild;
337
- addComponent(component: Component, constraints?: LayoutConstraints): this;
342
+ addComponent(component: Component | ComponentFactory, constraints?: LayoutConstraints): this;
338
343
  insertComponent(component: Component, index: number, constraints?: LayoutConstraints): this;
339
344
  moveComponent(child: Component, index?: number, constraints?: LayoutConstraints): this;
340
345
  removeComponent(component: Component): LayoutConstraints | undefined;
@@ -359,10 +364,10 @@ declare class Component<TOptions extends ComponentOptions = ComponentOptions> ex
359
364
  static afterNextLayout(callback: () => void): void;
360
365
  flushLayout(): this;
361
366
  static flushEffectiveVisibility(): void;
362
- addMouseDownListener(listener: Function): this;
363
- removeMouseDownListener(listener: Function): this;
364
- addMouseDownSubtreeListener(listener: Function): this;
365
- removeMouseDownSubtreeListener(listener: Function): this;
367
+ addMouseDownListener(listener: Event.Listener): this;
368
+ removeMouseDownListener(listener: Event.Listener): this;
369
+ addMouseDownSubtreeListener(listener: Event.Listener): this;
370
+ removeMouseDownSubtreeListener(listener: Event.Listener): this;
366
371
  protected init(element?: Handle): this;
367
372
  protected createRootElement(): Handle;
368
373
  protected render(): Handle;
@@ -35,6 +35,7 @@ export interface MediaState {
35
35
  export type Handle = number & {
36
36
  readonly __handleBrand: unique symbol;
37
37
  };
38
+ export type TimerId = ReturnType<typeof setTimeout>;
38
39
  export interface ElementPatch {
39
40
  style?: Readonly<Record<string, string | null>>;
40
41
  removeClass?: readonly string[];
@@ -78,12 +79,17 @@ export interface DOMSink {
78
79
  blur(handle: Handle): void;
79
80
  setValue(handle: Handle, value: string): void;
80
81
  setSelectionRange(handle: Handle, start: number, end: number): void;
82
+ setLocationHash(hash: string): void;
83
+ replaceLocationHash(hash: string): void;
81
84
  addListener<T extends Event = Event>(target: Handle, type: string, handler: (event: T) => void, options?: boolean | AddEventListenerOptions): void;
82
85
  removeListener<T extends Event = Event>(target: Handle, type: string, handler: (event: T) => void, options?: boolean | EventListenerOptions): void;
83
86
  dispatchEvent(target: Handle, event: Event): void;
84
87
  dispatchCustomEvent(target: Handle, type: string, init?: CustomEventInit): void;
85
88
  requestAnimationFrame(callback: FrameRequestCallback): number;
86
89
  cancelAnimationFrame(handle: number): void;
90
+ setTimeout(callback: () => void, delayMs: number): TimerId;
91
+ clearTimeout(id: TimerId): void;
92
+ clearAllTimeouts(): void;
87
93
  setId(handle: Handle, id: string): void;
88
94
  insertBefore(parent: Handle, node: Handle, reference: Handle | null): void;
89
95
  createDocumentFragment(): Handle;
@@ -130,6 +136,7 @@ export interface DOMSource {
130
136
  matchMedia(query: string): MediaQueryResult;
131
137
  isWindow(target: Handle | null): boolean;
132
138
  getWindow(): Handle;
139
+ getLocationHash(): string;
133
140
  contains(ancestor: Handle, node: Handle | null): boolean;
134
141
  querySelector(root: Handle, selector: string): Handle | null;
135
142
  querySelectorAll(root: Handle, selector: string): Handle[];
@@ -174,6 +181,7 @@ export interface MediaQueryResult {
174
181
  addChangeListener(handler: (event: MediaQueryListEvent) => void): void;
175
182
  }
176
183
  export declare class ProductionDOMSink implements DOMSink {
184
+ private readonly _timers;
177
185
  apply(handle: Handle, patch: ElementPatch): void;
178
186
  edit(handle: Handle): PatchBuilder;
179
187
  release(handle: Handle): void;
@@ -194,12 +202,17 @@ export declare class ProductionDOMSink implements DOMSink {
194
202
  blur(handle: Handle): void;
195
203
  setValue(handle: Handle, value: string): void;
196
204
  setSelectionRange(handle: Handle, start: number, end: number): void;
205
+ setLocationHash(hash: string): void;
206
+ replaceLocationHash(hash: string): void;
197
207
  addListener<T extends Event = Event>(target: Handle, type: string, handler: (event: T) => void, options?: boolean | AddEventListenerOptions): void;
198
208
  removeListener<T extends Event = Event>(target: Handle, type: string, handler: (event: T) => void, options?: boolean | EventListenerOptions): void;
199
209
  dispatchEvent(target: Handle, event: Event): void;
200
210
  dispatchCustomEvent(target: Handle, type: string, init?: CustomEventInit): void;
201
211
  requestAnimationFrame(callback: FrameRequestCallback): number;
202
212
  cancelAnimationFrame(handle: number): void;
213
+ setTimeout(callback: () => void, delayMs: number): TimerId;
214
+ clearTimeout(id: TimerId): void;
215
+ clearAllTimeouts(): void;
203
216
  setId(handle: Handle, id: string): void;
204
217
  insertBefore(parent: Handle, node: Handle, reference: Handle | null): void;
205
218
  createDocumentFragment(): Handle;
@@ -246,6 +259,7 @@ export declare class ProductionDOMSource implements DOMSource {
246
259
  matchMedia(query: string): MediaQueryResult;
247
260
  isWindow(target: Handle | null): boolean;
248
261
  getWindow(): Handle;
262
+ getLocationHash(): string;
249
263
  contains(ancestor: Handle, node: Handle | null): boolean;
250
264
  querySelector(root: Handle, selector: string): Handle | null;
251
265
  querySelectorAll(root: Handle, selector: string): Handle[];
@@ -3,14 +3,20 @@ export declare namespace Event {
3
3
  interface ListenerOptions {
4
4
  passive?: boolean;
5
5
  }
6
+ interface EventDisposition {
7
+ stop?: boolean;
8
+ prevent?: boolean;
9
+ }
10
+ type ListenerResult = boolean | EventDisposition | void;
11
+ type Listener = (event: any) => ListenerResult;
6
12
  function init(): void;
7
13
  function fireEvent(component: Component, type: string, payload?: any): void;
8
14
  function fireEvent(component: Component, event: globalThis.Event): void;
9
- function addListener(component: Component, type: string, listener: Function, options?: ListenerOptions): void;
10
- function removeListener(component: Component, type: string, listener: Function): void;
11
- function addSubtreeListener(component: Component, type: string, listener: Function, options?: ListenerOptions): void;
12
- function removeSubtreeListener(component: Component, type: string, listener: Function): void;
15
+ function addListener(component: Component, type: string, listener: Listener, options?: ListenerOptions): void;
16
+ function removeListener(component: Component, type: string, listener: Listener): void;
17
+ function addSubtreeListener(component: Component, type: string, listener: Listener, options?: ListenerOptions): void;
18
+ function removeSubtreeListener(component: Component, type: string, listener: Listener): void;
13
19
  function reindexComponent(oldId: string, newId: string): void;
14
- function addViewportListener(component: Component, type: string, listener: Function): void;
15
- function removeViewportListener(component: Component, type: string, listener: Function): void;
20
+ function addViewportListener(component: Component, type: string, listener: Listener): void;
21
+ function removeViewportListener(component: Component, type: string, listener: Listener): void;
16
22
  }
@@ -9,11 +9,11 @@ export type { SmoothScrollTarget, ScrollAxis } from '../core/SmoothScroller.js';
9
9
  export { Util } from '../core/Util.js';
10
10
  export type { TextMeasureOptions, 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, ElementPatch, MediaQueryResult } from '../core/DOM.js';
12
+ export type { DOMSink, DOMSource, DOMSeams, 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';
16
- export type { Comparator, Style, ComponentOptions, ComponentStyleRuleSpec, ConstrainedComponent, PerimeterSize } from '../core/Component.js';
16
+ export type { Comparator, Style, ComponentOptions, ComponentStyleRuleSpec, ComponentFactory, ConstrainedComponent, PerimeterSize } from '../core/Component.js';
17
17
  export { Container } from '../core/Container.js';
18
18
  export type { ContainerOptions } from '../core/Container.js';
19
19
  export { Panel } from '../core/Panel.js';
@@ -55,6 +55,8 @@ declare class Accordion extends LayoutManager {
55
55
  private _dragOpenIndices;
56
56
  private _dragGutterUpperPos;
57
57
  private _toggleAnimations;
58
+ private _shrinkAnimations;
59
+ private _wrapperAnimations;
58
60
  private _boundOnGutterDragEnd;
59
61
  constructor(options?: AccordionOptions);
60
62
  protected applyOptions(options: AccordionOptions): void;
@@ -17,6 +17,7 @@ declare class Border extends LayoutManager {
17
17
  private _collapsible;
18
18
  private _gutters;
19
19
  private _collapseAnimation;
20
+ private readonly _pendingCollapseTransitions;
20
21
  private _collapsing;
21
22
  constructor(options?: BorderOptions);
22
23
  protected applyOptions(options: BorderOptions): void;
@@ -1,7 +1,11 @@
1
1
  import { Component } from "../core/Component.js";
2
2
  export declare const COLLAPSE_STRIP_SIZE = 18;
3
+ export interface CollapseTransition {
4
+ cancel(): void;
5
+ settle(): void;
6
+ }
3
7
  export interface CollapseParticipant {
4
8
  component: Component;
5
9
  relayout: boolean;
6
10
  }
7
- export declare function runCollapse(container: Component, toggled: Component, participants: CollapseParticipant[], previous: (() => void) | null, onIdle?: () => void): () => void;
11
+ export declare function runCollapse(container: Component, toggled: Component, participants: CollapseParticipant[], previous: (() => void) | null, pending: CollapseTransition[], onIdle?: () => void): () => void;
@@ -13,6 +13,7 @@ export declare class LayoutConstraints {
13
13
  ignoreParentInsets?: boolean;
14
14
  data?: any;
15
15
  closeable?: boolean;
16
+ lazy?: boolean;
16
17
  transient?: boolean;
17
18
  weight?: number;
18
19
  collapsible?: boolean;
@@ -3,6 +3,7 @@ import { AnchorType } from "../layout/AnchorType.js";
3
3
  import { LayoutConstraints } from "../layout/LayoutConstraints";
4
4
  import { Size } from "../primitive/Size.js";
5
5
  import { Component } from "../core/Component.js";
6
+ import type { ComponentFactory } from "../core/Component.js";
6
7
  import { BaseObject } from "../core/BaseObject.js";
7
8
  export interface LayoutManagerOptions {
8
9
  }
@@ -15,6 +16,7 @@ export declare abstract class LayoutManager extends BaseObject {
15
16
  private _overflowing;
16
17
  constructor();
17
18
  protected applyOptions(_options: LayoutManagerOptions): void;
19
+ addDeferredComponent(_factory: ComponentFactory, _constraints?: LayoutConstraints): boolean;
18
20
  attach(container: Component): this;
19
21
  detach(): this;
20
22
  getContainer(): Component | null;
@@ -30,6 +30,7 @@ declare class Split extends LayoutManager {
30
30
  private _dragOriginRhsSize;
31
31
  private _lastAvailableMain;
32
32
  private _collapseAnimation;
33
+ private readonly _pendingCollapseTransitions;
33
34
  constructor(options?: SplitOptions);
34
35
  protected applyOptions(options: SplitOptions): void;
35
36
  on(event: "paneresize", listener: PaneResizeCallback): this;
@@ -2,10 +2,11 @@ import { LayoutManager, LayoutManagerOptions } from "../layout/LayoutManager.js"
2
2
  import { LayoutConstraints } from "../layout/LayoutConstraints.js";
3
3
  import { Size } from "../primitive/Size.js";
4
4
  import { Component } from "../core/Component.js";
5
+ import type { ComponentFactory } from "../core/Component.js";
5
6
  import { AbstractWindow } from "../overlay/AbstractWindow.js";
6
7
  import type { TabToolDescriptor } from "../component/container/TabBar.js";
7
8
  import type { AxisPosition, AxisEnd } from "../primitive/Axis.js";
8
- export type TabEvent = "tabclose" | "empty" | "detach" | "activate" | "dock";
9
+ export type TabEvent = "tabclose" | "empty" | "detach" | "activate" | "dock" | "exception";
9
10
  export type TabDetachWindowMode = "bare" | "strip";
10
11
  export type TabWidthMode = "fill" | "content" | "equal" | "fixed";
11
12
  export type TabSide = "north" | "south" | "west" | "east";
@@ -14,6 +15,7 @@ export interface TabOptions extends LayoutManagerOptions {
14
15
  listeners?: {
15
16
  tabclose?: (component: Component) => void;
16
17
  empty?: () => void;
18
+ exception?: (error: unknown, label: string) => void;
17
19
  };
18
20
  widthMode?: TabWidthMode;
19
21
  maxWidth?: number | null;
@@ -37,6 +39,7 @@ declare class Tab extends LayoutManager {
37
39
  private _selectedTabIndex;
38
40
  private _pendingActiveContent;
39
41
  private _lastFadedTabIndex;
42
+ private _tabFadeAnimation;
40
43
  private _listeners;
41
44
  private _barIgnoreParentInsets;
42
45
  private _detachWindowMode;
@@ -102,9 +105,11 @@ declare class Tab extends LayoutManager {
102
105
  private composeSize;
103
106
  createTab(component: Component): void;
104
107
  private wireComponentAria;
105
- addLazyTab(factory: () => Component, name: string, constraints?: LayoutConstraints): void;
106
- private createSpinnerWrap;
108
+ addDeferredComponent(factory: ComponentFactory, constraints?: LayoutConstraints): boolean;
109
+ addLazyTab(factory: ComponentFactory, name: string, constraints?: LayoutConstraints): void;
110
+ private syncUntabbedChildren;
107
111
  private materializeAsync;
112
+ private failEntry;
108
113
  protected computeTotalMinSize(): Size;
109
114
  doLayout(): void;
110
115
  getActiveTabIndex(): number;
@@ -127,12 +132,14 @@ declare class Tab extends LayoutManager {
127
132
  on(event: "detach", listener: (window: AbstractWindow) => void): this;
128
133
  on(event: "activate", listener: (content: Component, index: number) => void): this;
129
134
  on(event: "dock", listener: (content: Component) => void): this;
135
+ on(event: "exception", listener: (error: unknown, label: string) => void): this;
130
136
  off(event: TabEvent, listener: Function): this;
131
137
  protected emit(event: "tabclose", component: Component): void;
132
138
  protected emit(event: "empty"): void;
133
139
  protected emit(event: "detach", window: AbstractWindow): void;
134
140
  protected emit(event: "activate", content: Component, index: number): void;
135
141
  protected emit(event: "dock", content: Component): void;
142
+ protected emit(event: "exception", error: unknown, label: string): void;
136
143
  }
137
144
  declare const TabCallable: import("../core/Callable.js").Callable<typeof Tab>;
138
145
  type TabCallable = Tab;
@@ -1,6 +1,7 @@
1
1
  import { Component } from "../core/Component.js";
2
2
  import type { Handle } from "../core/DOM.js";
3
3
  import { WindowBorder } from "../component/container/WindowBorder.js";
4
+ import { Event } from "../core/Event.js";
4
5
  import { DismissableLayer, LayerDismissMode } from "../core/LayerManager.js";
5
6
  import { Container, ContainerOptions } from "../core/Container.js";
6
7
  import { Size } from "../primitive/Size.js";
@@ -68,6 +69,11 @@ export declare abstract class AbstractWindow extends Container<WindowOptions> im
68
69
  private _rail;
69
70
  private _windowListeners;
70
71
  private _stateAnimHandle;
72
+ private _showAnimation;
73
+ private _materializeAnimation;
74
+ private _closeAnimation;
75
+ private _railCollapseAnimation;
76
+ private _railExpandAnimation;
71
77
  private _viewportResizeBound;
72
78
  private _snapEnabled;
73
79
  private _snapKeysAttached;
@@ -113,6 +119,7 @@ export declare abstract class AbstractWindow extends Container<WindowOptions> im
113
119
  isLayerRoot(): boolean;
114
120
  onZIndexChanged(zIndex: number): void;
115
121
  onExitAction(): void;
122
+ protected destructor(): void;
116
123
  getWindowState(): WindowState;
117
124
  static getOpenWindows(): AbstractWindow[];
118
125
  getRect(): WindowRect;
@@ -157,8 +164,8 @@ export declare abstract class AbstractWindow extends Container<WindowOptions> im
157
164
  private viewportPositionBounds;
158
165
  private clampDragDelta;
159
166
  clampPositionToViewport(): this;
160
- onDrag(e: MouseEvent): void;
161
- onMouseUp(): void;
167
+ onDrag(e: MouseEvent): Event.ListenerResult;
168
+ onMouseUp(): Event.ListenerResult;
162
169
  doLayout(): this;
163
170
  render(): Handle;
164
171
  private currentRect;
@@ -73,6 +73,11 @@ declare class Dialog extends Component implements DismissableLayer {
73
73
  private _previousFocus;
74
74
  private _boundKeyHandler;
75
75
  private _boundResizeHandler;
76
+ private _panelInAnimation;
77
+ private _backdropInAnimation;
78
+ private _panelOutAnimation;
79
+ private _backdropOutAnimation;
80
+ private _finalizing;
76
81
  constructor(config: DialogConfig);
77
82
  private computeHeaderVariant;
78
83
  private applyHeaderVariant;
@@ -92,6 +97,7 @@ declare class Dialog extends Component implements DismissableLayer {
92
97
  private primaryResult;
93
98
  private onViewportResize;
94
99
  hide(result: DialogResult): this;
100
+ protected destructor(): void;
95
101
  getContentComponent(): Component;
96
102
  protected clampsToContentSize(): boolean;
97
103
  getTitleBar(): DialogTitleBar;
@@ -1,5 +1,6 @@
1
1
  import { Container, ContainerOptions } from "../core/Container.js";
2
2
  import { Component } from "../core/Component.js";
3
+ import type { ComponentFactory } from "../core/Component.js";
3
4
  import { AbstractWindow } from "../overlay/AbstractWindow.js";
4
5
  import { LayoutState } from "../layout/LayoutSerialization.js";
5
6
  import type { AxisOrientation } from "../primitive/Axis.js";
@@ -9,7 +10,7 @@ export interface DockPanelSpec {
9
10
  glyph?: string;
10
11
  tooltip?: string;
11
12
  closeable?: boolean;
12
- content: Component | (() => Component);
13
+ content: Component | ComponentFactory;
13
14
  }
14
15
  export type DockLayoutSpec = DockPanelSpec | {
15
16
  split: AxisOrientation;
@@ -27,9 +28,10 @@ export interface DockOptions extends ContainerOptions {
27
28
  focus?: (event: DockPanelEvent | null) => void;
28
29
  close?: (event: DockPanelEvent) => void;
29
30
  emptychange?: (event: DockEmptyEvent) => void;
31
+ exception?: (event: DockExceptionEvent) => void;
30
32
  };
31
33
  }
32
- export type DockEvent = "attach" | "detach" | "move" | "focus" | "close" | "emptychange";
34
+ export type DockEvent = "attach" | "detach" | "move" | "focus" | "close" | "emptychange" | "exception";
33
35
  export interface DockPanelEvent {
34
36
  id: string;
35
37
  content: Component;
@@ -38,6 +40,10 @@ export interface DockPanelEvent {
38
40
  export interface DockEmptyEvent {
39
41
  empty: boolean;
40
42
  }
43
+ export interface DockExceptionEvent {
44
+ id: string;
45
+ error: unknown;
46
+ }
41
47
  declare class Dock extends Container<DockOptions> {
42
48
  private _panels;
43
49
  private _frames;
@@ -103,6 +109,7 @@ declare class Dock extends Container<DockOptions> {
103
109
  private isTab;
104
110
  private regionKind;
105
111
  private onPanelClosed;
112
+ private failPanel;
106
113
  private onPanelFocused;
107
114
  private onPanelDetached;
108
115
  private onFloatActivated;
@@ -122,12 +129,15 @@ declare class Dock extends Container<DockOptions> {
122
129
  on(event: "attach" | "detach" | "move" | "close", listener: (event: DockPanelEvent) => void): this;
123
130
  on(event: "focus", listener: (event: DockPanelEvent | null) => void): this;
124
131
  on(event: "emptychange", listener: (event: DockEmptyEvent) => void): this;
132
+ on(event: "exception", listener: (event: DockExceptionEvent) => void): this;
125
133
  off(event: "attach" | "detach" | "move" | "close", listener: (event: DockPanelEvent) => void): this;
126
134
  off(event: "focus", listener: (event: DockPanelEvent | null) => void): this;
127
135
  off(event: "emptychange", listener: (event: DockEmptyEvent) => void): this;
136
+ off(event: "exception", listener: (event: DockExceptionEvent) => void): this;
128
137
  protected emit(event: "attach" | "detach" | "move" | "close", payload: DockPanelEvent): void;
129
138
  protected emit(event: "focus", payload: DockPanelEvent | null): void;
130
139
  protected emit(event: "emptychange", payload: DockEmptyEvent): void;
140
+ protected emit(event: "exception", payload: DockExceptionEvent): void;
131
141
  }
132
142
  declare const DockCallable: import("../core/Callable.js").Callable<typeof Dock>;
133
143
  type DockCallable = Dock;
@@ -19,6 +19,10 @@ export interface DrawerOptions extends ComponentOptions {
19
19
  };
20
20
  }
21
21
  declare class Drawer extends Component<DrawerOptions> implements DismissableLayer {
22
+ private _panelInAnimation;
23
+ private _panelOutAnimation;
24
+ private _backdropInAnimation;
25
+ private _backdropOutAnimation;
22
26
  private _open;
23
27
  private _closing;
24
28
  private _backdrop;
@@ -59,6 +63,7 @@ declare class Drawer extends Component<DrawerOptions> implements DismissableLaye
59
63
  requestClose(): void;
60
64
  isLayerRoot(): boolean;
61
65
  onZIndexChanged(zIndex: number): void;
66
+ protected destructor(): void;
62
67
  }
63
68
  declare const DrawerCallable: import("../core/Callable.js").Callable<typeof Drawer>;
64
69
  type DrawerCallable = Drawer;
@@ -7,6 +7,8 @@ declare class Menu extends Component implements DismissableLayer {
7
7
  private readonly _itemsProvider;
8
8
  private readonly _onClose;
9
9
  private _menuItems;
10
+ private _fadeShowAnimation;
11
+ private _fadeHideAnimation;
10
12
  private _focusedIndex;
11
13
  private _openSubmenuPanel;
12
14
  private _openSubmenuItem;
@@ -29,6 +31,7 @@ declare class Menu extends Component implements DismissableLayer {
29
31
  private clearItemHighlights;
30
32
  private fadeIn;
31
33
  private fadeOutAndDetach;
34
+ protected destructor(): void;
32
35
  focusItem(index: number): this;
33
36
  focusNext(): this;
34
37
  focusPrev(): this;
@@ -36,7 +39,6 @@ declare class Menu extends Component implements DismissableLayer {
36
39
  getFocusedIndex(): number;
37
40
  setExcludedElement(el: Handle | null): this;
38
41
  getExcludedElement(): Handle | null;
39
- dispose(): void;
40
42
  private applyPersistentChrome;
41
43
  private applyRebuildChrome;
42
44
  private enableVerticalScroll;
@@ -7,6 +7,8 @@ export interface NotificationRecord {
7
7
  }
8
8
  export declare const BADGE_GLYPH: Record<NotificationType, string>;
9
9
  export declare class Notification extends Component {
10
+ private _showAnimation;
11
+ private _dismissAnimation;
10
12
  private static readonly WIDTH;
11
13
  private static readonly HEIGHT;
12
14
  private static readonly MARGIN;
@@ -55,4 +57,5 @@ export declare class Notification extends Component {
55
57
  private finishDismiss;
56
58
  private static restack;
57
59
  doLayout(): this;
60
+ protected destructor(): void;
58
61
  }
@@ -20,6 +20,8 @@ declare class Popover extends Container<PopoverOptions> implements DismissableLa
20
20
  private _titleComponent;
21
21
  private _bodyComponent;
22
22
  private _actionsRow;
23
+ private _fadeShowAnimation;
24
+ private _fadeHideAnimation;
23
25
  private _anchorElement;
24
26
  private _arrowComponent;
25
27
  private _isOpen;
@@ -52,7 +54,7 @@ declare class Popover extends Container<PopoverOptions> implements DismissableLa
52
54
  getAnchorElement(): Handle | null;
53
55
  getBand(): number;
54
56
  doLayout(): this;
55
- dispose(): void;
57
+ protected destructor(): void;
56
58
  private _reposition;
57
59
  private resolvePlacement;
58
60
  private ensureArrow;
@@ -21,6 +21,9 @@ export interface RailOptions extends ComponentOptions {
21
21
  };
22
22
  }
23
23
  declare class Rail extends Component<RailOptions> {
24
+ private _collapseAnimation;
25
+ private _slideOutAnimation;
26
+ private _slideInAnimation;
24
27
  private _listeners;
25
28
  private _drawers;
26
29
  private _windows;
@@ -61,12 +64,16 @@ declare class Rail extends Component<RailOptions> {
61
64
  private applyHandleOrientation;
62
65
  protected clampsToContentSize(): boolean;
63
66
  private isVertical;
67
+ handleMainAxisOffset(window: AbstractWindow): number;
68
+ handleMainAxisExtent(window: AbstractWindow): number;
69
+ private handleSpacing;
64
70
  private restingRect;
65
71
  private applyRestingGeometry;
66
72
  private applyEdgeBorder;
67
73
  on(event: RailEvent, listener: (target: Drawer | AbstractWindow) => void): this;
68
74
  off(event: RailEvent, listener: (target: Drawer | AbstractWindow) => void): this;
69
75
  protected emit(event: RailEvent, target: Drawer | AbstractWindow): void;
76
+ protected destructor(): void;
70
77
  }
71
78
  declare const RailCallable: import("../core/Callable.js").Callable<typeof Rail>;
72
79
  type RailCallable = Rail;
@@ -6,6 +6,8 @@ export interface TooltipColors {
6
6
  border?: string;
7
7
  }
8
8
  export declare class Tooltip extends Component {
9
+ private _showAnimation;
10
+ private _hideAnimation;
9
11
  private static instance;
10
12
  private static showTimer;
11
13
  private static attachments;
@@ -37,4 +39,5 @@ export declare class Tooltip extends Component {
37
39
  static detachElement(element: Handle): void;
38
40
  private _perLineHeight;
39
41
  doLayout(): this;
42
+ protected destructor(): void;
40
43
  }
@@ -22,7 +22,7 @@ export type { RailOptions, RailEdge, RailOrientation, RailEvent, RailDrawerRegis
22
22
  export { RailHandle } from '../overlay/RailHandle.js';
23
23
  export type { RailHandleOptions } from '../overlay/RailHandle.js';
24
24
  export { Dock } from '../overlay/Dock.js';
25
- export type { DockOptions, DockPanelSpec, DockLayoutSpec, DockEvent, DockPanelEvent, DockEmptyEvent } from '../overlay/Dock.js';
25
+ export type { DockOptions, DockPanelSpec, DockLayoutSpec, DockEvent, DockPanelEvent, DockEmptyEvent, DockExceptionEvent } from '../overlay/Dock.js';
26
26
  export { DragManager } from '../overlay/DragManager.js';
27
27
  export type { DragData, DragEventDetail, DragSourceOptions, DropTargetOptions, TabDragData } from '../overlay/DragManager.js';
28
28
  export { DragGhost } from '../overlay/DragGhost.js';
@@ -0,0 +1,18 @@
1
+ export type SegmentKind = "static" | "param" | "catchAll";
2
+ export interface RouteSegment {
3
+ kind: SegmentKind;
4
+ value: string;
5
+ }
6
+ export interface CompiledPattern {
7
+ pattern: string;
8
+ key: string;
9
+ segments: RouteSegment[];
10
+ }
11
+ export declare function normalizePath(input: string): string;
12
+ export declare function splitPath(path: string): string[];
13
+ export declare function compilePattern(pattern: string): CompiledPattern;
14
+ export declare function matchPattern(compiled: CompiledPattern, segments: string[]): Record<string, string> | null;
15
+ export declare function selectPattern<T extends CompiledPattern>(compiled: readonly T[], path: string): {
16
+ compiled: T;
17
+ params: Record<string, string>;
18
+ } | null;
@@ -0,0 +1,36 @@
1
+ export type RouteParams = Record<string, string>;
2
+ export type RouteHandler = (params: RouteParams, path: string) => void;
3
+ export type RouterEvent = "navigate" | "nomatch";
4
+ export interface RouteMatch {
5
+ pattern: string;
6
+ params: RouteParams;
7
+ path: string;
8
+ }
9
+ export interface RouterOptions {
10
+ routes?: Record<string, RouteHandler>;
11
+ listeners?: Partial<{
12
+ navigate: (match: RouteMatch) => void;
13
+ nomatch: (path: string) => void;
14
+ }>;
15
+ }
16
+ export declare class Router {
17
+ private _routes;
18
+ private _listeners;
19
+ private _started;
20
+ private readonly _onHashChange;
21
+ constructor(options?: RouterOptions);
22
+ register(pattern: string, handler: RouteHandler): this;
23
+ start(): this;
24
+ stop(): this;
25
+ navigate(path: string, options?: {
26
+ replace?: boolean;
27
+ }): this;
28
+ getPath(): string;
29
+ on(event: "navigate", listener: (match: RouteMatch) => void): this;
30
+ on(event: "nomatch", listener: (path: string) => void): this;
31
+ off(event: RouterEvent, listener: Function): this;
32
+ protected emit(event: RouterEvent, payload: unknown): void;
33
+ private applyCurrentRoute;
34
+ protected applyOptions(options: RouterOptions): void;
35
+ private handleHashChange;
36
+ }
@@ -0,0 +1,2 @@
1
+ export { Router } from '../router/Router.js';
2
+ export type { RouteParams, RouteHandler, RouterEvent, RouteMatch, RouterOptions } from '../router/Router.js';
@@ -1 +1 @@
1
- import{t as e}from"./FieldDecorator-E7WzutjO.js";export{e as FieldDecorator};
1
+ import{t as e}from"./FieldDecorator-CJs9gwqH.js";export{e as FieldDecorator};