@sectile/dom 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +16 -0
  3. package/dist/accordion.d.ts +36 -0
  4. package/dist/accordion.d.ts.map +1 -0
  5. package/dist/accordion.js +143 -0
  6. package/dist/accordion.js.map +1 -0
  7. package/dist/alert-dialog.d.ts +27 -0
  8. package/dist/alert-dialog.d.ts.map +1 -0
  9. package/dist/alert-dialog.js +14 -0
  10. package/dist/alert-dialog.js.map +1 -0
  11. package/dist/calendar.d.ts +92 -0
  12. package/dist/calendar.d.ts.map +1 -0
  13. package/dist/calendar.js +296 -0
  14. package/dist/calendar.js.map +1 -0
  15. package/dist/carousel.d.ts +54 -0
  16. package/dist/carousel.d.ts.map +1 -0
  17. package/dist/carousel.js +285 -0
  18. package/dist/carousel.js.map +1 -0
  19. package/dist/checkbox-group.d.ts +22 -0
  20. package/dist/checkbox-group.d.ts.map +1 -0
  21. package/dist/checkbox-group.js +32 -0
  22. package/dist/checkbox-group.js.map +1 -0
  23. package/dist/checkbox.d.ts +18 -0
  24. package/dist/checkbox.d.ts.map +1 -0
  25. package/dist/checkbox.js +12 -0
  26. package/dist/checkbox.js.map +1 -0
  27. package/dist/combobox.d.ts +120 -0
  28. package/dist/combobox.d.ts.map +1 -0
  29. package/dist/combobox.js +386 -0
  30. package/dist/combobox.js.map +1 -0
  31. package/dist/date-field.d.ts +36 -0
  32. package/dist/date-field.d.ts.map +1 -0
  33. package/dist/date-field.js +88 -0
  34. package/dist/date-field.js.map +1 -0
  35. package/dist/date-picker.d.ts +43 -0
  36. package/dist/date-picker.d.ts.map +1 -0
  37. package/dist/date-picker.js +118 -0
  38. package/dist/date-picker.js.map +1 -0
  39. package/dist/date-range-picker.d.ts +45 -0
  40. package/dist/date-range-picker.d.ts.map +1 -0
  41. package/dist/date-range-picker.js +64 -0
  42. package/dist/date-range-picker.js.map +1 -0
  43. package/dist/date-time-field.d.ts +36 -0
  44. package/dist/date-time-field.d.ts.map +1 -0
  45. package/dist/date-time-field.js +163 -0
  46. package/dist/date-time-field.js.map +1 -0
  47. package/dist/date-time-picker.d.ts +45 -0
  48. package/dist/date-time-picker.d.ts.map +1 -0
  49. package/dist/date-time-picker.js +259 -0
  50. package/dist/date-time-picker.js.map +1 -0
  51. package/dist/date-time-range-picker.d.ts +47 -0
  52. package/dist/date-time-range-picker.d.ts.map +1 -0
  53. package/dist/date-time-range-picker.js +269 -0
  54. package/dist/date-time-range-picker.js.map +1 -0
  55. package/dist/dialog.d.ts +27 -0
  56. package/dist/dialog.d.ts.map +1 -0
  57. package/dist/dialog.js +15 -0
  58. package/dist/dialog.js.map +1 -0
  59. package/dist/disclosure.d.ts +24 -0
  60. package/dist/disclosure.d.ts.map +1 -0
  61. package/dist/disclosure.js +74 -0
  62. package/dist/disclosure.js.map +1 -0
  63. package/dist/feed.d.ts +33 -0
  64. package/dist/feed.d.ts.map +1 -0
  65. package/dist/feed.js +68 -0
  66. package/dist/feed.js.map +1 -0
  67. package/dist/grid.d.ts +43 -0
  68. package/dist/grid.d.ts.map +1 -0
  69. package/dist/grid.js +165 -0
  70. package/dist/grid.js.map +1 -0
  71. package/dist/index.d.ts +45 -0
  72. package/dist/index.d.ts.map +1 -0
  73. package/dist/index.js +44 -0
  74. package/dist/index.js.map +1 -0
  75. package/dist/internal/checked-control.d.ts +28 -0
  76. package/dist/internal/checked-control.d.ts.map +1 -0
  77. package/dist/internal/checked-control.js +45 -0
  78. package/dist/internal/checked-control.js.map +1 -0
  79. package/dist/internal/controller.d.ts +6 -0
  80. package/dist/internal/controller.d.ts.map +1 -0
  81. package/dist/internal/controller.js +35 -0
  82. package/dist/internal/controller.js.map +1 -0
  83. package/dist/internal/delegated-event.d.ts +2 -0
  84. package/dist/internal/delegated-event.d.ts.map +1 -0
  85. package/dist/internal/delegated-event.js +11 -0
  86. package/dist/internal/delegated-event.js.map +1 -0
  87. package/dist/internal/disabled-items.d.ts +6 -0
  88. package/dist/internal/disabled-items.d.ts.map +1 -0
  89. package/dist/internal/disabled-items.js +15 -0
  90. package/dist/internal/disabled-items.js.map +1 -0
  91. package/dist/internal/facade.d.ts +44 -0
  92. package/dist/internal/facade.d.ts.map +1 -0
  93. package/dist/internal/facade.js +58 -0
  94. package/dist/internal/facade.js.map +1 -0
  95. package/dist/internal/interaction.d.ts +14 -0
  96. package/dist/internal/interaction.d.ts.map +1 -0
  97. package/dist/internal/interaction.js +25 -0
  98. package/dist/internal/interaction.js.map +1 -0
  99. package/dist/internal/menu-control.d.ts +38 -0
  100. package/dist/internal/menu-control.d.ts.map +1 -0
  101. package/dist/internal/menu-control.js +251 -0
  102. package/dist/internal/menu-control.js.map +1 -0
  103. package/dist/internal/popup-control.d.ts +39 -0
  104. package/dist/internal/popup-control.d.ts.map +1 -0
  105. package/dist/internal/popup-control.js +140 -0
  106. package/dist/internal/popup-control.js.map +1 -0
  107. package/dist/internal/semantic-controller.d.ts +20 -0
  108. package/dist/internal/semantic-controller.d.ts.map +1 -0
  109. package/dist/internal/semantic-controller.js +42 -0
  110. package/dist/internal/semantic-controller.js.map +1 -0
  111. package/dist/internal/text-element.d.ts +16 -0
  112. package/dist/internal/text-element.d.ts.map +1 -0
  113. package/dist/internal/text-element.js +215 -0
  114. package/dist/internal/text-element.js.map +1 -0
  115. package/dist/listbox.d.ts +103 -0
  116. package/dist/listbox.d.ts.map +1 -0
  117. package/dist/listbox.js +416 -0
  118. package/dist/listbox.js.map +1 -0
  119. package/dist/menu-button.d.ts +10 -0
  120. package/dist/menu-button.d.ts.map +1 -0
  121. package/dist/menu-button.js +11 -0
  122. package/dist/menu-button.js.map +1 -0
  123. package/dist/menu.d.ts +8 -0
  124. package/dist/menu.d.ts.map +1 -0
  125. package/dist/menu.js +11 -0
  126. package/dist/menu.js.map +1 -0
  127. package/dist/menubar.d.ts +8 -0
  128. package/dist/menubar.d.ts.map +1 -0
  129. package/dist/menubar.js +11 -0
  130. package/dist/menubar.js.map +1 -0
  131. package/dist/multi-thumb-slider.d.ts +38 -0
  132. package/dist/multi-thumb-slider.d.ts.map +1 -0
  133. package/dist/multi-thumb-slider.js +190 -0
  134. package/dist/multi-thumb-slider.js.map +1 -0
  135. package/dist/number-field.d.ts +45 -0
  136. package/dist/number-field.d.ts.map +1 -0
  137. package/dist/number-field.js +136 -0
  138. package/dist/number-field.js.map +1 -0
  139. package/dist/pagination.d.ts +39 -0
  140. package/dist/pagination.d.ts.map +1 -0
  141. package/dist/pagination.js +169 -0
  142. package/dist/pagination.js.map +1 -0
  143. package/dist/pin-input.d.ts +27 -0
  144. package/dist/pin-input.d.ts.map +1 -0
  145. package/dist/pin-input.js +76 -0
  146. package/dist/pin-input.js.map +1 -0
  147. package/dist/quantity-field.d.ts +46 -0
  148. package/dist/quantity-field.d.ts.map +1 -0
  149. package/dist/quantity-field.js +172 -0
  150. package/dist/quantity-field.js.map +1 -0
  151. package/dist/radio-group.d.ts +40 -0
  152. package/dist/radio-group.d.ts.map +1 -0
  153. package/dist/radio-group.js +172 -0
  154. package/dist/radio-group.js.map +1 -0
  155. package/dist/rating.d.ts +22 -0
  156. package/dist/rating.d.ts.map +1 -0
  157. package/dist/rating.js +38 -0
  158. package/dist/rating.js.map +1 -0
  159. package/dist/select.d.ts +45 -0
  160. package/dist/select.d.ts.map +1 -0
  161. package/dist/select.js +87 -0
  162. package/dist/select.js.map +1 -0
  163. package/dist/slider.d.ts +73 -0
  164. package/dist/slider.d.ts.map +1 -0
  165. package/dist/slider.js +265 -0
  166. package/dist/slider.js.map +1 -0
  167. package/dist/spin-button.d.ts +41 -0
  168. package/dist/spin-button.d.ts.map +1 -0
  169. package/dist/spin-button.js +127 -0
  170. package/dist/spin-button.js.map +1 -0
  171. package/dist/stepper.d.ts +24 -0
  172. package/dist/stepper.d.ts.map +1 -0
  173. package/dist/stepper.js +32 -0
  174. package/dist/stepper.js.map +1 -0
  175. package/dist/switch.d.ts +16 -0
  176. package/dist/switch.d.ts.map +1 -0
  177. package/dist/switch.js +12 -0
  178. package/dist/switch.js.map +1 -0
  179. package/dist/tabs.d.ts +55 -0
  180. package/dist/tabs.d.ts.map +1 -0
  181. package/dist/tabs.js +193 -0
  182. package/dist/tabs.js.map +1 -0
  183. package/dist/tags-input.d.ts +32 -0
  184. package/dist/tags-input.d.ts.map +1 -0
  185. package/dist/tags-input.js +94 -0
  186. package/dist/tags-input.js.map +1 -0
  187. package/dist/text.d.ts +80 -0
  188. package/dist/text.d.ts.map +1 -0
  189. package/dist/text.js +203 -0
  190. package/dist/text.js.map +1 -0
  191. package/dist/time-field.d.ts +36 -0
  192. package/dist/time-field.d.ts.map +1 -0
  193. package/dist/time-field.js +57 -0
  194. package/dist/time-field.js.map +1 -0
  195. package/dist/toggle-button.d.ts +16 -0
  196. package/dist/toggle-button.d.ts.map +1 -0
  197. package/dist/toggle-button.js +12 -0
  198. package/dist/toggle-button.js.map +1 -0
  199. package/dist/toolbar.d.ts +37 -0
  200. package/dist/toolbar.d.ts.map +1 -0
  201. package/dist/toolbar.js +148 -0
  202. package/dist/toolbar.js.map +1 -0
  203. package/dist/tooltip.d.ts +18 -0
  204. package/dist/tooltip.d.ts.map +1 -0
  205. package/dist/tooltip.js +14 -0
  206. package/dist/tooltip.js.map +1 -0
  207. package/dist/tree-grid.d.ts +122 -0
  208. package/dist/tree-grid.d.ts.map +1 -0
  209. package/dist/tree-grid.js +449 -0
  210. package/dist/tree-grid.js.map +1 -0
  211. package/dist/tree-view.d.ts +92 -0
  212. package/dist/tree-view.d.ts.map +1 -0
  213. package/dist/tree-view.js +309 -0
  214. package/dist/tree-view.js.map +1 -0
  215. package/dist/window-splitter.d.ts +8 -0
  216. package/dist/window-splitter.d.ts.map +1 -0
  217. package/dist/window-splitter.js +13 -0
  218. package/dist/window-splitter.js.map +1 -0
  219. package/package.json +256 -0
@@ -0,0 +1,148 @@
1
+ import { createFacadeConnection } from './internal/facade.js';
2
+ import { unwrap } from '@sectile/core/result';
3
+ import { createSequence } from '@sectile/core/sequence';
4
+ import { applyToolbarEvent, createToolbarState, } from '@sectile/core/toolbar';
5
+ import { findDelegatedID } from './internal/delegated-event.js';
6
+ import { createDisabledItems } from './internal/disabled-items.js';
7
+ import { createSemanticController } from './internal/semantic-controller.js';
8
+ import { setInteractionAttributes } from './internal/interaction.js';
9
+ export function createToolbar(options) {
10
+ return unwrap(tryCreateToolbar(options));
11
+ }
12
+ export function tryCreateToolbar(options) {
13
+ return createFacadeConnection(options, (options) => tryCreateToolbarConnection(options));
14
+ }
15
+ function tryCreateToolbarConnection(options) {
16
+ const domain = createSequence(options.items);
17
+ if (!domain.ok)
18
+ return domain;
19
+ const disabled = createDisabledItems(domain.value, options.disabledItems);
20
+ if (!disabled.ok)
21
+ return disabled;
22
+ const suppliedEligibility = options.policies?.eligible;
23
+ const policies = Object.freeze({
24
+ ...options.policies,
25
+ eligible: (id) => !disabled.value.has(id) && (suppliedEligibility?.(id) ?? true),
26
+ });
27
+ const controlled = options.highlightedValue !== undefined;
28
+ const runtime = createSemanticController({
29
+ interaction: options,
30
+ initial: createToolbarState(domain.value, {
31
+ current: options.highlightedValue !== undefined
32
+ ? options.highlightedValue
33
+ : options.defaultHighlightedValue ?? null,
34
+ }),
35
+ reducer: (state, event) => applyToolbarEvent(domain.value, state, event, policies),
36
+ reconcile: (previous, proposed) => createToolbarState(domain.value, {
37
+ current: controlled ? previous.cursor.current : proposed.cursor.current,
38
+ }),
39
+ notify: (previous, proposed) => {
40
+ if (previous.cursor.current !== proposed.cursor.current) {
41
+ options.onHighlightedValueChange?.(proposed.cursor.current);
42
+ }
43
+ },
44
+ toEffect: (command) => command.type === 'focus'
45
+ ? Object.freeze({ type: 'focus-control', id: command.id })
46
+ : Object.freeze({ type: 'invoke-control', id: command.id }),
47
+ });
48
+ if (!runtime.ok)
49
+ return runtime;
50
+ return { ok: true, value: new DOMToolbarConnection(options, domain.value, runtime.value, controlled, disabled.value) };
51
+ }
52
+ export function toToolbarEvent(input, orientation = 'horizontal') {
53
+ if (input.altKey || input.ctrlKey || input.metaKey)
54
+ return null;
55
+ if (input.key === 'Home')
56
+ return 'first';
57
+ if (input.key === 'End')
58
+ return 'last';
59
+ if (input.key === 'Enter' || input.key === ' ')
60
+ return 'invoke';
61
+ if (orientation === 'horizontal' && input.key === 'ArrowRight')
62
+ return 'next';
63
+ if (orientation === 'horizontal' && input.key === 'ArrowLeft')
64
+ return 'previous';
65
+ if (orientation === 'vertical' && input.key === 'ArrowDown')
66
+ return 'next';
67
+ if (orientation === 'vertical' && input.key === 'ArrowUp')
68
+ return 'previous';
69
+ return null;
70
+ }
71
+ class DOMToolbarConnection {
72
+ #options;
73
+ #domain;
74
+ #runtime;
75
+ #controlled;
76
+ #disabledItems;
77
+ #keydown;
78
+ #click;
79
+ constructor(options, domain, runtime, controlled, disabledItems) {
80
+ this.#options = options;
81
+ this.#domain = domain;
82
+ this.#runtime = runtime;
83
+ this.#controlled = controlled;
84
+ this.#disabledItems = disabledItems;
85
+ options.root.setAttribute('role', 'toolbar');
86
+ setInteractionAttributes(options.root, options);
87
+ options.root.setAttribute('aria-orientation', options.orientation ?? 'horizontal');
88
+ if (options.label !== undefined)
89
+ options.root.setAttribute('aria-label', options.label);
90
+ this.#keydown = (event) => {
91
+ const semantic = toToolbarEvent(event, options.orientation);
92
+ if (semantic === null)
93
+ return;
94
+ event.preventDefault();
95
+ this.handleEvent(semantic);
96
+ };
97
+ this.#click = (event) => {
98
+ const id = findDelegatedID(event.target, options.root, 'toolbarId');
99
+ if (id !== null)
100
+ this.handleEvent({ type: 'invoke', id: id });
101
+ };
102
+ options.root.addEventListener('keydown', this.#keydown);
103
+ options.root.addEventListener('click', this.#click);
104
+ }
105
+ getSnapshot() { return this.#runtime.getSnapshot(); }
106
+ syncControlledValue(value) {
107
+ if (!this.#controlled)
108
+ return { ok: false, error: {
109
+ class: 'construction', code: 'uncontrolled-controller-sync',
110
+ message: 'An uncontrolled toolbar cannot be synchronized externally.',
111
+ } };
112
+ const result = this.#runtime.replace(createToolbarState(this.#domain, { current: value }));
113
+ if (result.ok)
114
+ this.#options.onUpdate?.();
115
+ return result;
116
+ }
117
+ setItemAttributes(element, id, disabled = false) {
118
+ element.dataset['toolbarId'] = id;
119
+ element.tabIndex = this.#runtime.getSnapshot().state.cursor.current === id ? 0 : -1;
120
+ if (disabled || this.#disabledItems.has(id))
121
+ element.setAttribute('aria-disabled', 'true');
122
+ else
123
+ element.removeAttribute('aria-disabled');
124
+ }
125
+ handleEvent(event) {
126
+ const result = this.#runtime.handle(event);
127
+ if (result.ok) {
128
+ for (const effect of result.commands) {
129
+ if (effect.type === 'invoke-control')
130
+ this.#options.onInvoke?.(effect.id);
131
+ }
132
+ queueMicrotask(() => {
133
+ for (const element of this.#options.root.querySelectorAll('[data-toolbar-id]')) {
134
+ if (element.dataset['toolbarId'] === result.snapshot.state.cursor.current)
135
+ element.focus();
136
+ }
137
+ });
138
+ }
139
+ if (result.ok)
140
+ this.#options.onUpdate?.();
141
+ return result.ok;
142
+ }
143
+ disconnect() {
144
+ this.#options.root.removeEventListener('keydown', this.#keydown);
145
+ this.#options.root.removeEventListener('click', this.#click);
146
+ }
147
+ }
148
+ //# sourceMappingURL=toolbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolbar.js","sourceRoot":"","sources":["../src/toolbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAyB,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAiB,MAAM,wBAAwB,CAAC;AAEvE,OAAO,EACL,iBAAiB,EACjB,kBAAkB,GAKnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAA2B,MAAM,mCAAmC,CAAC;AACtG,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AA8BrE,MAAM,UAAU,aAAa,CAC3B,OAA2B;IAE3B,OAAO,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,OAA2B;IAE3B,OAAO,sBAAsB,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,0BAA0B,CACjC,OAA2B;IAE3B,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC;IAC9B,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1E,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,QAAQ,CAAC;IAClC,MAAM,mBAAmB,GAAG,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACvD,MAAM,QAAQ,GAAwB,MAAM,CAAC,MAAM,CAAC;QAClD,GAAG,OAAO,CAAC,QAAQ;QACnB,QAAQ,EAAE,CAAC,EAAM,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;KACrF,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,KAAK,SAAS,CAAC;IAC1D,MAAM,OAAO,GAAG,wBAAwB,CAEtC;QACA,WAAW,EAAE,OAAO;QACpB,OAAO,EAAE,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE;YACxC,OAAO,EAAE,OAAO,CAAC,gBAAgB,KAAK,SAAS;gBAC7C,CAAC,CAAC,OAAO,CAAC,gBAAgB;gBAC1B,CAAC,CAAC,OAAO,CAAC,uBAAuB,IAAI,IAAI;SAC5C,CAAC;QACF,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC;QAClF,SAAS,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE;YAClE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO;SACxE,CAAC;QACF,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;YAC7B,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACxD,OAAO,CAAC,wBAAwB,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QACD,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO;YAC7C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;YAC1D,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;KAC9D,CAAC,CAAC;IACH,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,OAAO,CAAC;IAChC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;AACzH,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,KAAoB,EACpB,WAAW,GAA8B,YAAY;IAErD,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAChE,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM;QAAE,OAAO,OAAO,CAAC;IACzC,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK;QAAE,OAAO,MAAM,CAAC;IACvC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG;QAAE,OAAO,QAAQ,CAAC;IAChE,IAAI,WAAW,KAAK,YAAY,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY;QAAE,OAAO,MAAM,CAAC;IAC9E,IAAI,WAAW,KAAK,YAAY,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW;QAAE,OAAO,UAAU,CAAC;IACjF,IAAI,WAAW,KAAK,UAAU,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW;QAAE,OAAO,MAAM,CAAC;IAC3E,IAAI,WAAW,KAAK,UAAU,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC;IAC7E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,oBAAoB;IACf,QAAQ,CAAqB;IAC7B,OAAO,CAAe;IACtB,QAAQ,CAA4E;IACpF,WAAW,CAAU;IACrB,cAAc,CAAkB;IAChC,QAAQ,CAAiC;IACzC,MAAM,CAA8B;IAE7C,YACE,OAA2B,EAAE,MAAoB,EACjD,OAAkF,EAClF,UAAmB,EACnB,aAA8B;QAE9B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC7C,wBAAwB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,WAAW,IAAI,YAAY,CAAC,CAAC;QACnF,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACxF,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,EAAQ,EAAE;YAC9B,MAAM,QAAQ,GAAG,cAAc,CAAK,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;YAChE,IAAI,QAAQ,KAAK,IAAI;gBAAE,OAAO;YAC9B,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,EAAQ,EAAE;YAC5B,MAAM,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACpE,IAAI,EAAE,KAAK,IAAI;gBAAE,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAQ,EAAE,CAAC,CAAC;QACtE,CAAC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;IAEM,WAAW,KAAyC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAEzF,mBAAmB,CAAC,KAAgB;QACzC,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;oBAChD,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,8BAA8B;oBAC3D,OAAO,EAAE,4DAA4D;iBACtE,EAAE,CAAC;QACJ,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3F,IAAI,MAAM,CAAC,EAAE;YAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC1C,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,iBAAiB,CAAC,OAAoB,EAAE,EAAM,EAAE,QAAQ,GAAG,KAAK;QACrE,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;QAClC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,IAAI,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;;YACtF,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;IAChD,CAAC;IAEM,WAAW,CAAC,KAAuB;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACrC,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB;oBAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5E,CAAC;YACD,cAAc,CAAC,GAAG,EAAE;gBAClB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAc,mBAAmB,CAAC,EAAE,CAAC;oBAC5F,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO;wBAAE,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC7F,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,MAAM,CAAC,EAAE;YAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC1C,OAAO,MAAM,CAAC,EAAE,CAAC;IACnB,CAAC;IAEM,UAAU;QACf,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/D,CAAC;CACF"}
@@ -0,0 +1,18 @@
1
+ import { type FacadeConnection } from './internal/facade.js';
2
+ import type { Result } from '@sectile/core';
3
+ import { type TooltipEvent, type TooltipState } from '@sectile/core/tooltip';
4
+ import { type DOMPopupConnection } from './internal/popup-control.js';
5
+ export interface TooltipOptions {
6
+ readonly root: HTMLElement;
7
+ readonly trigger?: HTMLElement;
8
+ readonly id?: string;
9
+ readonly open?: boolean;
10
+ readonly defaultOpen?: boolean;
11
+ readonly disabled?: boolean;
12
+ readonly onOpenChange?: (open: boolean) => void;
13
+ readonly onUpdate?: () => void;
14
+ }
15
+ export type TooltipConnection = DOMPopupConnection<TooltipState, TooltipEvent>;
16
+ export declare function createTooltip(o: TooltipOptions): FacadeConnection<TooltipConnection>;
17
+ export declare function tryCreateTooltip(o: TooltipOptions): Result<FacadeConnection<TooltipConnection>>;
18
+ //# sourceMappingURL=tooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../src/tooltip.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAErF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAA8D,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACzI,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtF,MAAM,WAAW,cAAc;IAAG,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE;AAC3R,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAC/E,wBAAgB,aAAa,CAAC,CAAC,EAAE,cAAc,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAEpF;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,CAE/F"}
@@ -0,0 +1,14 @@
1
+ import { createFacadeConnection } from './internal/facade.js';
2
+ import { unwrap } from '@sectile/core/result';
3
+ import { applyTooltipEvent, createTooltipState } from '@sectile/core/tooltip';
4
+ import { createDOMPopup } from './internal/popup-control.js';
5
+ export function createTooltip(o) {
6
+ return unwrap(tryCreateTooltip(o));
7
+ }
8
+ export function tryCreateTooltip(o) {
9
+ return createFacadeConnection(o, (o) => tryCreateTooltipConnection(o));
10
+ }
11
+ function tryCreateTooltipConnection(o) {
12
+ return createDOMPopup({ root: o.root, ...(o.trigger === undefined ? {} : { trigger: o.trigger }), role: 'tooltip', controlled: o.open !== undefined, initial: createTooltipState(o.open ?? o.defaultOpen ?? false), open: 'open', toggle: 'toggle', close: 'close', reducer: applyTooltipEvent, create: createTooltipState, read: (s) => s.open, interaction: o, triggerMode: 'focus-hover', ...(o.id === undefined ? {} : { tooltipID: o.id }), onOpenChange: o.onOpenChange, onUpdate: o.onUpdate });
13
+ }
14
+ //# sourceMappingURL=tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../src/tooltip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAyB,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAA6D,MAAM,uBAAuB,CAAC;AACzI,OAAO,EAAE,cAAc,EAA2B,MAAM,6BAA6B,CAAC;AAItF,MAAM,UAAU,aAAa,CAAC,CAAiB;IAC7C,OAAO,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,CAAiB;IAChD,OAAO,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,0BAA0B,CAAC,CAAiB;IACnD,OAAO,cAAc,CAA6C,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrhB,CAAC"}
@@ -0,0 +1,122 @@
1
+ import { type FacadeConnection } from './internal/facade.js';
2
+ import type { Result, StableID } from '@sectile/core';
3
+ import { type RevisionResult, type RevisionSnapshot } from '@sectile/core/revision';
4
+ import { type TreeGridCommand, type TreeGridEditMode, type TreeGridEvent, type TreeGridModel, type TreeGridPolicies, type TreeGridRowInput, type TreeGridState } from '@sectile/core/tree-grid';
5
+ export interface KeyboardInput {
6
+ readonly key: string;
7
+ readonly altKey?: boolean;
8
+ readonly ctrlKey?: boolean;
9
+ readonly metaKey?: boolean;
10
+ readonly isComposing?: boolean;
11
+ }
12
+ export type TreeGridEffect<CellID extends StableID = StableID> = {
13
+ readonly type: 'focus-element';
14
+ readonly id: CellID;
15
+ } | {
16
+ readonly type: 'begin-cell-edit';
17
+ readonly id: CellID;
18
+ } | {
19
+ readonly type: 'commit-cell-edit';
20
+ readonly id: CellID;
21
+ } | {
22
+ readonly type: 'cancel-cell-edit';
23
+ readonly id: CellID;
24
+ };
25
+ export interface TreeGridValueChangeDetails<CellID extends StableID = StableID> {
26
+ readonly value: CellID | null;
27
+ readonly previousValue: CellID | null;
28
+ }
29
+ export interface TreeGridExpandedChangeDetails<RowID extends StableID = StableID> {
30
+ readonly value: readonly RowID[];
31
+ readonly previousValue: readonly RowID[];
32
+ }
33
+ export interface TreeGridHighlightChangeDetails<CellID extends StableID = StableID> {
34
+ readonly value: CellID | null;
35
+ readonly previousValue: CellID | null;
36
+ }
37
+ export interface TreeGridEditModeChangeDetails {
38
+ readonly value: TreeGridEditMode;
39
+ readonly previousValue: TreeGridEditMode;
40
+ }
41
+ export interface TreeGridControllerOptions<RowID extends StableID = StableID, CellID extends StableID = StableID> {
42
+ readonly model: TreeGridModel<RowID, CellID>;
43
+ readonly disabled?: boolean;
44
+ readonly readOnly?: boolean;
45
+ readonly policies?: TreeGridPolicies<CellID>;
46
+ readonly value?: CellID | null;
47
+ readonly defaultValue?: CellID | null;
48
+ readonly expandedValue?: readonly RowID[];
49
+ readonly defaultExpandedValue?: readonly RowID[];
50
+ readonly highlightedValue?: CellID | null;
51
+ readonly defaultHighlightedValue?: CellID | null;
52
+ readonly editMode?: TreeGridEditMode;
53
+ readonly defaultEditMode?: TreeGridEditMode;
54
+ readonly onValueChange?: (change: TreeGridValueChangeDetails<CellID>) => void;
55
+ readonly onExpandedValueChange?: (change: TreeGridExpandedChangeDetails<RowID>) => void;
56
+ readonly onHighlightedValueChange?: (change: TreeGridHighlightChangeDetails<CellID>) => void;
57
+ readonly onEditModeChange?: (change: TreeGridEditModeChangeDetails) => void;
58
+ }
59
+ export interface TreeGridControlledValues<RowID extends StableID = StableID, CellID extends StableID = StableID> {
60
+ readonly value?: CellID | null;
61
+ readonly expandedValue?: readonly RowID[];
62
+ readonly highlightedValue?: CellID | null;
63
+ readonly editMode?: TreeGridEditMode;
64
+ }
65
+ export interface TreeGridController<RowID extends StableID = StableID, CellID extends StableID = StableID> {
66
+ readonly model: TreeGridModel<RowID, CellID>;
67
+ getSnapshot(): RevisionSnapshot<TreeGridState<RowID, CellID>>;
68
+ syncControlledValues(values: TreeGridControlledValues<RowID, CellID>): Result<RevisionSnapshot<TreeGridState<RowID, CellID>>>;
69
+ handleKeyboardInput(input: KeyboardInput, expectedRevision?: number): RevisionResult<TreeGridState<RowID, CellID>, TreeGridEffect<CellID>>;
70
+ handleEvent(event: TreeGridEvent<RowID, CellID>, expectedRevision?: number): RevisionResult<TreeGridState<RowID, CellID>, TreeGridEffect<CellID>>;
71
+ }
72
+ export interface TreeGridTransitionDetails<RowID extends StableID = StableID, CellID extends StableID = StableID> {
73
+ readonly event: TreeGridEvent<RowID, CellID>;
74
+ readonly result: RevisionResult<TreeGridState<RowID, CellID>, TreeGridEffect<CellID>>;
75
+ }
76
+ export interface TreeGridConnectionOptions<RowID extends StableID = StableID, CellID extends StableID = StableID> {
77
+ readonly controller: TreeGridController<RowID, CellID>;
78
+ readonly root: HTMLElement;
79
+ readonly disabled?: boolean;
80
+ readonly readOnly?: boolean;
81
+ readonly getCellValue: (id: CellID) => string;
82
+ readonly setCellValue: (id: CellID, value: string) => void;
83
+ readonly onTransition?: (details: TreeGridTransitionDetails<RowID, CellID>) => void;
84
+ readonly onUpdate?: () => void;
85
+ }
86
+ export interface TreeGridRowAttributes {
87
+ readonly rowIndex: number;
88
+ readonly level: number;
89
+ readonly expanded?: boolean;
90
+ }
91
+ export interface TreeGridCellAttributes<CellID extends StableID = StableID> {
92
+ readonly id: CellID;
93
+ readonly columnIndex: number;
94
+ }
95
+ export interface TreeGridEditorOptions<CellID extends StableID = StableID> {
96
+ readonly id: CellID;
97
+ readonly label?: string;
98
+ }
99
+ export interface TreeGridConnection<RowID extends StableID = StableID, CellID extends StableID = StableID> {
100
+ readonly model: TreeGridModel<RowID, CellID>;
101
+ getSnapshot(): RevisionSnapshot<TreeGridState<RowID, CellID>>;
102
+ syncControlledValues(values: TreeGridControlledValues<RowID, CellID>): Result<RevisionSnapshot<TreeGridState<RowID, CellID>>>;
103
+ setGridAttributes(rowCount: number, columnCount: number): void;
104
+ setRowAttributes(element: HTMLElement, attributes: TreeGridRowAttributes): void;
105
+ setCellAttributes(element: HTMLElement, attributes: TreeGridCellAttributes<CellID>): void;
106
+ setDisclosureAttributes(element: HTMLElement, id: RowID): void;
107
+ bindEditor(element: HTMLInputElement, options: TreeGridEditorOptions<CellID>): void;
108
+ handleEvent(event: TreeGridEvent<RowID, CellID>): boolean;
109
+ handleKeyboardEvent(event: KeyboardEvent): boolean;
110
+ focusCurrent(): void;
111
+ disconnect(): void;
112
+ }
113
+ export type TreeGridOptions<RowID extends StableID = StableID, CellID extends StableID = StableID> = Omit<TreeGridControllerOptions<RowID, CellID>, 'model'> & Omit<TreeGridConnectionOptions<RowID, CellID>, 'controller'> & {
114
+ readonly rows: readonly TreeGridRowInput<RowID, CellID>[];
115
+ };
116
+ export declare function createTreeGridController<RowID extends StableID, CellID extends StableID>(options: TreeGridControllerOptions<RowID, CellID>): Result<TreeGridController<RowID, CellID>>;
117
+ export declare function createTreeGrid<RowID extends StableID, CellID extends StableID>(options: TreeGridOptions<RowID, CellID>): FacadeConnection<TreeGridConnection<RowID, CellID>>;
118
+ export declare function tryCreateTreeGrid<RowID extends StableID, CellID extends StableID>(options: TreeGridOptions<RowID, CellID>): Result<FacadeConnection<TreeGridConnection<RowID, CellID>>>;
119
+ export declare function connectTreeGrid<RowID extends StableID, CellID extends StableID>(options: TreeGridConnectionOptions<RowID, CellID>): TreeGridConnection<RowID, CellID>;
120
+ export declare function toTreeGridEvent<RowID extends StableID = StableID, CellID extends StableID = StableID>(input: KeyboardInput, editMode?: TreeGridEditMode): TreeGridEvent<RowID, CellID> | null;
121
+ export declare function toTreeGridEffect<CellID extends StableID>(command: TreeGridCommand<CellID>): TreeGridEffect<CellID>;
122
+ //# sourceMappingURL=tree-grid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-grid.d.ts","sourceRoot":"","sources":["../src/tree-grid.ts"],"names":[],"mappings":"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"}