@capillaryjs/capillary-ui 1.0.0-alpha.1

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 (178) hide show
  1. package/CHANGELOG.md +459 -0
  2. package/LICENSE +55 -0
  3. package/NOTICE +2 -0
  4. package/README.md +853 -0
  5. package/colors/README.md +63 -0
  6. package/colors/gray/colors.css +16 -0
  7. package/colors/green/colors.css +16 -0
  8. package/colors/iceblue/colors.css +19 -0
  9. package/colors/ocean/colors.css +16 -0
  10. package/colors/orange/colors.css +16 -0
  11. package/colors/purple/colors.css +16 -0
  12. package/colors/red/colors.css +16 -0
  13. package/colors/yellow/colors.css +16 -0
  14. package/dist/Components/Placeholder.d.ts +15 -0
  15. package/dist/Components/Placeholder.d.ts.map +1 -0
  16. package/dist/Components/app/app.d.ts +41 -0
  17. package/dist/Components/app/app.d.ts.map +1 -0
  18. package/dist/Components/component.d.ts +256 -0
  19. package/dist/Components/component.d.ts.map +1 -0
  20. package/dist/Components/controlUtils.d.ts +23 -0
  21. package/dist/Components/controlUtils.d.ts.map +1 -0
  22. package/dist/Components/data/descriptionList.d.ts +23 -0
  23. package/dist/Components/data/descriptionList.d.ts.map +1 -0
  24. package/dist/Components/data/filterState.d.ts +38 -0
  25. package/dist/Components/data/filterState.d.ts.map +1 -0
  26. package/dist/Components/data/infoPanel.d.ts +29 -0
  27. package/dist/Components/data/infoPanel.d.ts.map +1 -0
  28. package/dist/Components/data/listview/listview.d.ts +51 -0
  29. package/dist/Components/data/listview/listview.d.ts.map +1 -0
  30. package/dist/Components/data/selectionhandler.d.ts +87 -0
  31. package/dist/Components/data/selectionhandler.d.ts.map +1 -0
  32. package/dist/Components/data/table/DataTable.d.ts +79 -0
  33. package/dist/Components/data/table/DataTable.d.ts.map +1 -0
  34. package/dist/Components/data/table/FilterPanel.d.ts +41 -0
  35. package/dist/Components/data/table/FilterPanel.d.ts.map +1 -0
  36. package/dist/Components/data/table/TableHeader.d.ts +23 -0
  37. package/dist/Components/data/table/TableHeader.d.ts.map +1 -0
  38. package/dist/Components/data/table/TableHeaderCell.d.ts +41 -0
  39. package/dist/Components/data/table/TableHeaderCell.d.ts.map +1 -0
  40. package/dist/Components/data/table/tableDataSource.d.ts +49 -0
  41. package/dist/Components/data/table/tableDataSource.d.ts.map +1 -0
  42. package/dist/Components/data/table/tableQuery.d.ts +29 -0
  43. package/dist/Components/data/table/tableQuery.d.ts.map +1 -0
  44. package/dist/Components/data/treeview/treeModel.d.ts +23 -0
  45. package/dist/Components/data/treeview/treeModel.d.ts.map +1 -0
  46. package/dist/Components/data/treeview/treeitem.d.ts +21 -0
  47. package/dist/Components/data/treeview/treeitem.d.ts.map +1 -0
  48. package/dist/Components/data/treeview/treeview.d.ts +49 -0
  49. package/dist/Components/data/treeview/treeview.d.ts.map +1 -0
  50. package/dist/Components/dialog/dialog.d.ts +46 -0
  51. package/dist/Components/dialog/dialog.d.ts.map +1 -0
  52. package/dist/Components/layout/declarativeRegion.d.ts +30 -0
  53. package/dist/Components/layout/declarativeRegion.d.ts.map +1 -0
  54. package/dist/Components/layout/groupBox.d.ts +21 -0
  55. package/dist/Components/layout/groupBox.d.ts.map +1 -0
  56. package/dist/Components/layout/header.d.ts +20 -0
  57. package/dist/Components/layout/header.d.ts.map +1 -0
  58. package/dist/Components/layout/layout.d.ts +28 -0
  59. package/dist/Components/layout/layout.d.ts.map +1 -0
  60. package/dist/Components/layout/layoutTraits.d.ts +39 -0
  61. package/dist/Components/layout/layoutTraits.d.ts.map +1 -0
  62. package/dist/Components/layout/optionGroup.d.ts +35 -0
  63. package/dist/Components/layout/optionGroup.d.ts.map +1 -0
  64. package/dist/Components/layout/optionsBox.d.ts +12 -0
  65. package/dist/Components/layout/optionsBox.d.ts.map +1 -0
  66. package/dist/Components/layout/panel.d.ts +34 -0
  67. package/dist/Components/layout/panel.d.ts.map +1 -0
  68. package/dist/Components/layout/routedSelection.d.ts +10 -0
  69. package/dist/Components/layout/routedSelection.d.ts.map +1 -0
  70. package/dist/Components/layout/sidebar.d.ts +27 -0
  71. package/dist/Components/layout/sidebar.d.ts.map +1 -0
  72. package/dist/Components/layout/splitView.d.ts +82 -0
  73. package/dist/Components/layout/splitView.d.ts.map +1 -0
  74. package/dist/Components/layout/tabpanel/tab.d.ts +15 -0
  75. package/dist/Components/layout/tabpanel/tab.d.ts.map +1 -0
  76. package/dist/Components/layout/tabpanel/tabline.d.ts +31 -0
  77. package/dist/Components/layout/tabpanel/tabline.d.ts.map +1 -0
  78. package/dist/Components/layout/tabpanel/tabpanel.d.ts +44 -0
  79. package/dist/Components/layout/tabpanel/tabpanel.d.ts.map +1 -0
  80. package/dist/Components/lineinputs/CheckableControl.d.ts +7 -0
  81. package/dist/Components/lineinputs/CheckableControl.d.ts.map +1 -0
  82. package/dist/Components/lineinputs/LabeledInputControl.d.ts +7 -0
  83. package/dist/Components/lineinputs/LabeledInputControl.d.ts.map +1 -0
  84. package/dist/Components/lineinputs/SelectControl.d.ts +7 -0
  85. package/dist/Components/lineinputs/SelectControl.d.ts.map +1 -0
  86. package/dist/Components/lineinputs/checkbox/Checkbox.d.ts +46 -0
  87. package/dist/Components/lineinputs/checkbox/Checkbox.d.ts.map +1 -0
  88. package/dist/Components/lineinputs/checkbox/QuadCheckbox.d.ts +11 -0
  89. package/dist/Components/lineinputs/checkbox/QuadCheckbox.d.ts.map +1 -0
  90. package/dist/Components/lineinputs/checkbox/TriCheckbox.d.ts +11 -0
  91. package/dist/Components/lineinputs/checkbox/TriCheckbox.d.ts.map +1 -0
  92. package/dist/Components/lineinputs/datetime/Calendar.d.ts +23 -0
  93. package/dist/Components/lineinputs/datetime/Calendar.d.ts.map +1 -0
  94. package/dist/Components/lineinputs/datetime/DatePicker.d.ts +62 -0
  95. package/dist/Components/lineinputs/datetime/DatePicker.d.ts.map +1 -0
  96. package/dist/Components/lineinputs/datetime/DateTimePicker.d.ts +52 -0
  97. package/dist/Components/lineinputs/datetime/DateTimePicker.d.ts.map +1 -0
  98. package/dist/Components/lineinputs/datetime/TimePicker.d.ts +46 -0
  99. package/dist/Components/lineinputs/datetime/TimePicker.d.ts.map +1 -0
  100. package/dist/Components/lineinputs/datetime/civilDate.d.ts +37 -0
  101. package/dist/Components/lineinputs/datetime/civilDate.d.ts.map +1 -0
  102. package/dist/Components/lineinputs/datetime/timeString.d.ts +26 -0
  103. package/dist/Components/lineinputs/datetime/timeString.d.ts.map +1 -0
  104. package/dist/Components/lineinputs/dropdown.d.ts +49 -0
  105. package/dist/Components/lineinputs/dropdown.d.ts.map +1 -0
  106. package/dist/Components/lineinputs/label.d.ts +14 -0
  107. package/dist/Components/lineinputs/label.d.ts.map +1 -0
  108. package/dist/Components/lineinputs/radio.d.ts +69 -0
  109. package/dist/Components/lineinputs/radio.d.ts.map +1 -0
  110. package/dist/Components/lineinputs/textbox.d.ts +40 -0
  111. package/dist/Components/lineinputs/textbox.d.ts.map +1 -0
  112. package/dist/Components/lineinputs/toggle.d.ts +40 -0
  113. package/dist/Components/lineinputs/toggle.d.ts.map +1 -0
  114. package/dist/Components/menu/button.d.ts +31 -0
  115. package/dist/Components/menu/button.d.ts.map +1 -0
  116. package/dist/Components/menu/toolbar.d.ts +15 -0
  117. package/dist/Components/menu/toolbar.d.ts.map +1 -0
  118. package/dist/Components/navigation/breadcrumb.d.ts +31 -0
  119. package/dist/Components/navigation/breadcrumb.d.ts.map +1 -0
  120. package/dist/Components/navigation/navigationBar.d.ts +53 -0
  121. package/dist/Components/navigation/navigationBar.d.ts.map +1 -0
  122. package/dist/Components/status/progressBar.d.ts +23 -0
  123. package/dist/Components/status/progressBar.d.ts.map +1 -0
  124. package/dist/Components/status/statusPresentation.d.ts +21 -0
  125. package/dist/Components/status/statusPresentation.d.ts.map +1 -0
  126. package/dist/Components/theme/stylesheetPicker.d.ts +42 -0
  127. package/dist/Components/theme/stylesheetPicker.d.ts.map +1 -0
  128. package/dist/index.d.ts +68 -0
  129. package/dist/index.d.ts.map +1 -0
  130. package/dist/index.js +7736 -0
  131. package/dist/index.js.map +1 -0
  132. package/dist/jsx-dev-runtime-BAF7C1E1.js +1368 -0
  133. package/dist/jsx-dev-runtime-BAF7C1E1.js.map +1 -0
  134. package/dist/jsx-dev-runtime.d.ts +2 -0
  135. package/dist/jsx-dev-runtime.d.ts.map +1 -0
  136. package/dist/jsx-dev-runtime.js +6 -0
  137. package/dist/jsx-dev-runtime.js.map +1 -0
  138. package/dist/jsx-runtime.d.ts +26 -0
  139. package/dist/jsx-runtime.d.ts.map +1 -0
  140. package/dist/jsx-runtime.js +9 -0
  141. package/dist/jsx-runtime.js.map +1 -0
  142. package/dist/localization.d.ts +76 -0
  143. package/dist/localization.d.ts.map +1 -0
  144. package/dist/routing/RouteLink.d.ts +18 -0
  145. package/dist/routing/RouteLink.d.ts.map +1 -0
  146. package/dist/routing/RouteOutlet.d.ts +38 -0
  147. package/dist/routing/RouteOutlet.d.ts.map +1 -0
  148. package/dist/routing/RouteQuery.d.ts +19 -0
  149. package/dist/routing/RouteQuery.d.ts.map +1 -0
  150. package/dist/routing/RouteScope.d.ts +18 -0
  151. package/dist/routing/RouteScope.d.ts.map +1 -0
  152. package/dist/routing/RouteValue.d.ts +19 -0
  153. package/dist/routing/RouteValue.d.ts.map +1 -0
  154. package/dist/routing/navigationAdapter.d.ts +33 -0
  155. package/dist/routing/navigationAdapter.d.ts.map +1 -0
  156. package/dist/routing/route.d.ts +64 -0
  157. package/dist/routing/route.d.ts.map +1 -0
  158. package/dist/routing/router.d.ts +109 -0
  159. package/dist/routing/router.d.ts.map +1 -0
  160. package/dist/runtime.d.ts +34 -0
  161. package/dist/runtime.d.ts.map +1 -0
  162. package/dist/services.d.ts +45 -0
  163. package/dist/services.d.ts.map +1 -0
  164. package/dist/styling/styleRegistry.d.ts +15 -0
  165. package/dist/styling/styleRegistry.d.ts.map +1 -0
  166. package/dist/styling/theme.d.ts +39 -0
  167. package/dist/styling/theme.d.ts.map +1 -0
  168. package/dist/util/filterMode.d.ts +15 -0
  169. package/dist/util/filterMode.d.ts.map +1 -0
  170. package/docs/application-composition-guide.md +843 -0
  171. package/docs/application-layout-guide.md +553 -0
  172. package/package.json +90 -0
  173. package/styles/structural.css +2388 -0
  174. package/themes/README.md +99 -0
  175. package/themes/base.css +344 -0
  176. package/themes/java/theme.css +21 -0
  177. package/themes/minimal/theme.css +7 -0
  178. package/themes/shiny/theme.css +168 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterState.d.ts","sourceRoot":"","sources":["../../../src/Components/data/filterState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAA;AAG3D,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAA;AAE7D,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAA;AACzE,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAA;AAErE,MAAM,WAAW,qBAAqB;IAClC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IACnB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAA;CACvE;AAED,MAAM,WAAW,sBAAsB,CAAC,KAAK;IACzC,sDAAsD;IACtD,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,CAAA;CACpC;AAED,MAAM,WAAW,yBAAyB,CAAC,KAAK;IAC5C,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,SAAS,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAA;CACpD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EACpC,IAAI,EAAE,KAAK,EACX,KAAK,EAAE,WAAW,EAClB,UAAU,EAAE,SAAS,yBAAyB,CAAC,KAAK,CAAC,EAAE,GACxD,OAAO,CAsBT;AAED,wBAAgB,aAAa,CAAC,KAAK,EAC/B,KAAK,EAAE,SAAS,KAAK,EAAE,EACvB,KAAK,EAAE,WAAW,EAClB,UAAU,EAAE,SAAS,yBAAyB,CAAC,KAAK,CAAC,EAAE,GACxD,KAAK,EAAE,CAGT;AAED,wFAAwF;AACxF,wBAAgB,qBAAqB,CAAC,KAAK,EACvC,KAAK,EAAE,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,EAC5C,UAAU,EAAE,SAAS,yBAAyB,CAAC,KAAK,CAAC,EAAE,EACvD,KAAK,GAAE,OAAc,GACtB,cAAc,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,EAAE,SAAS,CAAC,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAO5F;AAED,kFAAkF;AAClF,wBAAgB,mBAAmB,CAAC,KAAK,EACrC,KAAK,EAAE,eAAe,CAAC,SAAS,KAAK,EAAE,EAAE,OAAO,CAAC,EACjD,KAAK,EAAE,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,EAC5C,UAAU,EAAE,SAAS,yBAAyB,CAAC,KAAK,CAAC,EAAE,EACvD,KAAK,GAAE,OAAc,GACtB,cAAc,CACb,KAAK,EAAE,EACP,SAAS,CAAC,eAAe,CAAC,SAAS,KAAK,EAAE,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAC/F,CAOA;AAED,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,qBAAqB,CAY9E;AAED,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAuB5D"}
@@ -0,0 +1,29 @@
1
+ import { Component } from '../component.js';
2
+ import type { ComponentProps, CapillaryUiChild } from '../component.js';
3
+ import { Header } from '../layout/header.js';
4
+ export interface InfoFieldProps extends ComponentProps {
5
+ label: CapillaryUiChild;
6
+ value?: CapillaryUiChild;
7
+ }
8
+ /** A labeled key-value field rendered as native `dt`/`dd` pair. */
9
+ export declare class InfoField extends Component<InfoFieldProps> {
10
+ static liveProps: readonly string[];
11
+ render(): CapillaryUiChild;
12
+ }
13
+ export interface InfoPanelProps extends ComponentProps {
14
+ id?: string | number | null;
15
+ title?: CapillaryUiChild;
16
+ label?: string;
17
+ }
18
+ /** Bordered info panel with an optional heading and key-value field content. */
19
+ export declare class InfoPanel extends Component<InfoPanelProps> {
20
+ static liveProps: readonly string[];
21
+ readonly panelId: string;
22
+ readonly headerId: string;
23
+ constructor(props?: InfoPanelProps);
24
+ render(): CapillaryUiChild;
25
+ static hostName: string;
26
+ static dependencies: (typeof Header | typeof InfoField)[];
27
+ static css: string;
28
+ }
29
+ //# sourceMappingURL=infoPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infoPanel.d.ts","sourceRoot":"","sources":["../../../src/Components/data/infoPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAM,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,EAAC,cAAc,EAAE,gBAAgB,EAAC,MAAM,iBAAiB,CAAA;AAErE,OAAO,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAA;AAE1C,MAAM,WAAW,cAAe,SAAQ,cAAc;IAClD,KAAK,EAAE,gBAAgB,CAAA;IACvB,KAAK,CAAC,EAAE,gBAAgB,CAAA;CAC3B;AAED,mEAAmE;AACnE,qBAAa,SAAU,SAAQ,SAAS,CAAC,cAAc,CAAC;IACpD,OAAgB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAK;IACjD,MAAM,IAAI,gBAAgB;CAO7B;AAED,MAAM,WAAW,cAAe,SAAQ,cAAc;IAClD,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IAC3B,KAAK,CAAC,EAAE,gBAAgB,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,gFAAgF;AAChF,qBAAa,SAAU,SAAQ,SAAS,CAAC,cAAc,CAAC;IACpD,OAAgB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAK;IACjD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;gBAEb,KAAK,GAAE,cAAmB;IAMtC,MAAM,IAAI,gBAAgB;IAqB1B,OAAgB,QAAQ,SAAc;IACtC,OAAgB,YAAY,uCAAsB;IAElD,MAAM,CAAC,GAAG,SA6BT;CACJ"}
@@ -0,0 +1,51 @@
1
+ import type { ReadableEmitter } from '@capillaryjs/capillary';
2
+ import { Placeholder } from '../../Placeholder.js';
3
+ import { Component } from '../../component.js';
4
+ import type { ComponentProps, CapillaryUiChild } from '../../component.js';
5
+ import { ErrorMessage } from '../../status/statusPresentation.js';
6
+ import type { ValueEmitter } from '../../controlUtils.js';
7
+ import type { BaseSelectionHandler, ItemKeyGetter } from '../selectionhandler.js';
8
+ interface ListViewCommonProps<TItem> extends ComponentProps {
9
+ items?: readonly TItem[] | ReadableEmitter<readonly TItem[], unknown>;
10
+ itemKey?: string | ItemKeyGetter<TItem>;
11
+ label?: string;
12
+ placeholderCount?: number;
13
+ renderItem?: (item: TItem, index: number) => CapillaryUiChild;
14
+ }
15
+ export type ListViewProps<TItem = unknown> = ListViewCommonProps<TItem> & ({
16
+ multiSelect?: false;
17
+ selectedItemEmitter?: ValueEmitter<TItem | null>;
18
+ selectedItemsEmitter?: never;
19
+ } | {
20
+ multiSelect: true;
21
+ selectedItemsEmitter?: ValueEmitter<TItem[]>;
22
+ selectedItemEmitter?: never;
23
+ });
24
+ /** Accessible listbox with stable-key selection. */
25
+ export declare class ListView<TItem = unknown> extends Component<ListViewProps<TItem>> {
26
+ static liveProps: readonly string[];
27
+ readonly itemsEmitter: ReadableEmitter<readonly TItem[], unknown>;
28
+ readonly items$: ReadableEmitter<readonly TItem[], unknown>;
29
+ readonly selectedItemsEmitter: ValueEmitter<TItem[]>;
30
+ readonly selectedItems$: ValueEmitter<TItem[]>;
31
+ readonly selectedItemEmitter: ValueEmitter<TItem | null> | null;
32
+ readonly selectedItem$: ValueEmitter<TItem | null> | null;
33
+ readonly getItemKey: ItemKeyGetter<TItem>;
34
+ readonly selectionHandler: BaseSelectionHandler<TItem>;
35
+ private readonly ownedItemsEmitter;
36
+ constructor(props?: ListViewProps<TItem>);
37
+ setProps(nextProps: ListViewProps<TItem>): this;
38
+ initialize(): void;
39
+ render(): CapillaryUiChild;
40
+ afterUpdate(dom: ChildNode | null): void;
41
+ getSelectedItems(): TItem[];
42
+ getSelectedItemsEmitter(): ValueEmitter<TItem[]>;
43
+ getSelectedItem(): TItem | null;
44
+ getSelectedItemEmitter(): ValueEmitter<TItem | null> | null;
45
+ onDestroy(): void;
46
+ static dependencies: (typeof ErrorMessage | typeof Placeholder)[];
47
+ static hostName: string;
48
+ static css: string;
49
+ }
50
+ export {};
51
+ //# sourceMappingURL=listview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listview.d.ts","sourceRoot":"","sources":["../../../../src/Components/data/listview/listview.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import type { ValueEmitter } from '../controlUtils.js';
2
+ export type ItemKeyGetter<TItem> = (item: TItem, index: number) => unknown;
3
+ interface SelectionHandlerCommonConfig<TItem> {
4
+ getItems: () => readonly TItem[];
5
+ getKey?: ItemKeyGetter<TItem>;
6
+ owner?: unknown;
7
+ }
8
+ export interface SingleSelectionHandlerConfig<TItem> extends SelectionHandlerCommonConfig<TItem> {
9
+ multiSelect?: false;
10
+ selectedItemEmitter?: ValueEmitter<TItem | null>;
11
+ selectedItemsEmitter?: never;
12
+ }
13
+ export interface MultiSelectionHandlerConfig<TItem> extends SelectionHandlerCommonConfig<TItem> {
14
+ multiSelect: true;
15
+ selectedItemsEmitter?: ValueEmitter<TItem[]>;
16
+ selectedItemEmitter?: never;
17
+ }
18
+ export type SelectionHandlerConfig<TItem> = SingleSelectionHandlerConfig<TItem> | MultiSelectionHandlerConfig<TItem>;
19
+ interface BaseSelectionHandlerConfig<TItem> extends SelectionHandlerCommonConfig<TItem> {
20
+ selectedItemsEmitter?: ValueEmitter<TItem[]>;
21
+ }
22
+ type SelectionEvent = MouseEvent | KeyboardEvent;
23
+ /**
24
+ * DOM selection behavior backed by an explicit row-data provider.
25
+ *
26
+ * Construction is side-effect free. Row listeners are installed by
27
+ * `rowsUpdated()` and are always released before the next row set is wired.
28
+ */
29
+ export declare class BaseSelectionHandler<TItem = unknown> {
30
+ readonly getItems: () => readonly TItem[];
31
+ readonly getKey: ItemKeyGetter<TItem>;
32
+ readonly selectedItemsEmitter: ValueEmitter<TItem[]>;
33
+ readonly selectedItems$: ValueEmitter<TItem[]>;
34
+ readonly ownsSelectedItemsEmitter: boolean;
35
+ protected rows: HTMLElement[];
36
+ private readonly rowCleanups;
37
+ protected activeIndex: number;
38
+ protected anchorIndex: number | null;
39
+ private dragStartIndex;
40
+ private dragOriginEvent;
41
+ private dragMoved;
42
+ private dragCleanup;
43
+ private suppressNextClick;
44
+ private suppressClickTimer;
45
+ private destroyed;
46
+ private readonly ownedSelectedItemsEmitter;
47
+ constructor({ getItems, getKey, selectedItemsEmitter, owner, }: BaseSelectionHandlerConfig<TItem>);
48
+ rowsUpdated(rows: Iterable<HTMLElement> | ArrayLike<HTMLElement> | null): void;
49
+ private wireRow;
50
+ private handleClick;
51
+ private handleMouseDown;
52
+ private handleMouseEnter;
53
+ private handleKeyDown;
54
+ protected onKeyboardMove(index: number, event: KeyboardEvent): void;
55
+ protected supportsDragSelection(): boolean;
56
+ protected selectDragRange(_startIndex: number, _endIndex: number, _event: MouseEvent): void;
57
+ protected selectIndex(_index: number, _event: SelectionEvent): void;
58
+ protected setSelectedItems(items: TItem[], cause?: string): void;
59
+ getSelectedItems(): TItem[];
60
+ getSelectedItemsEmitter(): ValueEmitter<TItem[]>;
61
+ private reconcileSelectedItems;
62
+ private syncRows;
63
+ private releaseRows;
64
+ private finishDrag;
65
+ private clearClickSuppression;
66
+ destroy(): void;
67
+ }
68
+ export declare class SingleSelectionHandler<TItem = unknown> extends BaseSelectionHandler<TItem> {
69
+ readonly selectedItemEmitter: ValueEmitter<TItem | null>;
70
+ readonly selectedItem$: ValueEmitter<TItem | null>;
71
+ private readonly ownedSelectedItemEmitter;
72
+ constructor(config: SingleSelectionHandlerConfig<TItem>);
73
+ protected selectIndex(index: number): void;
74
+ getSelectedItem(): TItem | null;
75
+ destroy(): void;
76
+ }
77
+ export declare class MultiSelectionHandler<TItem = unknown> extends BaseSelectionHandler<TItem> {
78
+ protected selectIndex(index: number, event: SelectionEvent): void;
79
+ protected onKeyboardMove(index: number, event: KeyboardEvent): void;
80
+ protected supportsDragSelection(): boolean;
81
+ protected selectDragRange(startIndex: number, endIndex: number, event: MouseEvent): void;
82
+ }
83
+ export declare function createSelectionHandler<TItem>(config: MultiSelectionHandlerConfig<TItem>): MultiSelectionHandler<TItem>;
84
+ export declare function createSelectionHandler<TItem>(config: SingleSelectionHandlerConfig<TItem>): SingleSelectionHandler<TItem>;
85
+ export declare function defaultItemKey<TItem>(item: TItem, index: number): unknown;
86
+ export {};
87
+ //# sourceMappingURL=selectionhandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectionhandler.d.ts","sourceRoot":"","sources":["../../../src/Components/data/selectionhandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ import type { ReadableEmitter } from '@capillaryjs/capillary';
2
+ import { Placeholder } from '../../Placeholder.js';
3
+ import { Component } from '../../component.js';
4
+ import type { ComponentProps, CapillaryUiChild } from '../../component.js';
5
+ import type { ValueEmitter } from '../../controlUtils.js';
6
+ import type { CheckboxSymbol } from '../../lineinputs/checkbox/Checkbox.js';
7
+ import { ErrorMessage } from '../../status/statusPresentation.js';
8
+ import type { FilterModeValue } from '../../../util/filterMode.js';
9
+ import type { BaseSelectionHandler, ItemKeyGetter } from '../selectionhandler.js';
10
+ import { TableHeader } from './TableHeader.js';
11
+ import type { TableColumn, TableRow } from './TableHeaderCell.js';
12
+ import type { RestTableDataSourceOptions, TableDataSource, TableQueryInput } from './tableDataSource.js';
13
+ import type { TableFilters, TableSort } from './tableQuery.js';
14
+ interface DataTableCommonProps<TRow extends TableRow> extends ComponentProps {
15
+ columns: readonly TableColumn<TRow>[];
16
+ rowKey?: Extract<keyof TRow, string> | ItemKeyGetter<TRow>;
17
+ caption?: CapillaryUiChild;
18
+ emptyMessage?: CapillaryUiChild;
19
+ placeholderCount?: number;
20
+ filterModes?: readonly CheckboxSymbol<FilterModeValue>[];
21
+ defaultSemanticState?: FilterModeValue;
22
+ onFilterChange?: (filters: TableFilters, event: Event | null) => void;
23
+ }
24
+ type DataTableInputProps<TRow extends TableRow> = {
25
+ data?: readonly TRow[] | ReadableEmitter<readonly TRow[], unknown>;
26
+ dataSource?: never;
27
+ rest?: never;
28
+ } | {
29
+ data?: never;
30
+ dataSource: TableDataSource<TRow>;
31
+ rest?: never;
32
+ } | {
33
+ data?: never;
34
+ dataSource?: never;
35
+ rest: Omit<RestTableDataSourceOptions<TRow>, 'owner' | 'sortEmitter' | 'filtersEmitter'>;
36
+ };
37
+ type DataTableSelectionProps<TRow extends TableRow> = {
38
+ multiSelect?: false;
39
+ selectedItemEmitter?: ValueEmitter<TRow | null>;
40
+ selectedItemsEmitter?: never;
41
+ } | {
42
+ multiSelect: true;
43
+ selectedItemsEmitter?: ValueEmitter<TRow[]>;
44
+ selectedItemEmitter?: never;
45
+ };
46
+ export type DataTableProps<TRow extends TableRow = TableRow> = DataTableCommonProps<TRow> & DataTableInputProps<TRow> & DataTableSelectionProps<TRow>;
47
+ /** Accessible table over an explicit local, caller-query, or REST data source. */
48
+ export declare class DataTable<TRow extends TableRow = TableRow> extends Component<DataTableProps<TRow>> {
49
+ static liveProps: readonly string[];
50
+ readonly columns: readonly TableColumn<TRow>[];
51
+ readonly rowKey: ItemKeyGetter<TRow>;
52
+ readonly sortEmitter: ValueEmitter<TableSort | null>;
53
+ readonly filtersEmitter: ValueEmitter<TableFilters>;
54
+ readonly selectedItemsEmitter: ValueEmitter<TRow[]>;
55
+ readonly selectedItemEmitter: ValueEmitter<TRow | null> | null;
56
+ readonly selectionHandler: BaseSelectionHandler<TRow>;
57
+ query: TableQueryInput<TRow> | null;
58
+ private dataSource;
59
+ private readonly suppliedDataSource;
60
+ private readonly ownedSortEmitter;
61
+ private readonly ownedFiltersEmitter;
62
+ private ownedDataSource;
63
+ constructor(props: DataTableProps<TRow>);
64
+ initialize(): void;
65
+ render(): CapillaryUiChild;
66
+ private renderRow;
67
+ private renderPlaceholders;
68
+ afterUpdate(dom: ChildNode | null): void;
69
+ getSelectedRows(): TRow[];
70
+ getSelectedRowsEmitter(): ValueEmitter<TRow[]>;
71
+ getSelectedRow(): TRow | null;
72
+ getSelectedRowEmitter(): ValueEmitter<TRow | null> | null;
73
+ onDestroy(): void;
74
+ static dependencies: (typeof ErrorMessage | typeof Placeholder | typeof TableHeader)[];
75
+ static hostName: string;
76
+ static css: string;
77
+ }
78
+ export {};
79
+ //# sourceMappingURL=DataTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../../../src/Components/data/table/DataTable.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { ReadableEmitter } from '@capillaryjs/capillary';
2
+ import { Component } from '../../component.js';
3
+ import type { ComponentProps, CapillaryUiChild } from '../../component.js';
4
+ import { Checkbox } from '../../lineinputs/checkbox/Checkbox.js';
5
+ import type { CheckboxSymbol } from '../../lineinputs/checkbox/Checkbox.js';
6
+ import { ErrorMessage } from '../../status/statusPresentation.js';
7
+ import type { FilterModeValue } from '../../../util/filterMode.js';
8
+ export type FilterValue = string | number;
9
+ export interface FilterOption {
10
+ value: FilterValue;
11
+ label?: CapillaryUiChild;
12
+ }
13
+ export type FilterOptionInput = FilterValue | FilterOption;
14
+ export type FilterOptions = readonly FilterOptionInput[];
15
+ export type FilterOptionsSource = FilterOptions | ReadableEmitter<FilterOptions, unknown>;
16
+ export type FilterSelection = ReadonlyMap<FilterValue, FilterModeValue>;
17
+ export interface FilterPanelProps extends ComponentProps {
18
+ options?: FilterOptionsSource;
19
+ filters?: FilterSelection | readonly (readonly [FilterValue, FilterModeValue])[];
20
+ filterModes?: readonly CheckboxSymbol<FilterModeValue>[];
21
+ defaultSemanticState?: FilterModeValue;
22
+ label?: string;
23
+ onChange?: (filters: Map<FilterValue, FilterModeValue>, event: Event | null) => void;
24
+ }
25
+ /** Filter choices whose option data is always supplied by the caller. */
26
+ export declare class FilterPanel extends Component<FilterPanelProps> {
27
+ static liveProps: readonly string[];
28
+ readonly optionsEmitter: ReadableEmitter<FilterOptions, unknown> | null;
29
+ private readonly optionStateEmitters;
30
+ private staleOptionValues;
31
+ constructor(props?: FilterPanelProps);
32
+ initialize(): void;
33
+ render(): CapillaryUiChild;
34
+ afterUpdate(_dom: ChildNode | null): void;
35
+ onDestroy(): void;
36
+ private optionEmitter;
37
+ static dependencies: (typeof ErrorMessage | typeof Checkbox)[];
38
+ static hostName: string;
39
+ static css: string;
40
+ }
41
+ //# sourceMappingURL=FilterPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterPanel.d.ts","sourceRoot":"","sources":["../../../../src/Components/data/table/FilterPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAA;AAE3D,OAAO,EAAC,SAAS,EAAM,MAAM,oBAAoB,CAAA;AACjD,OAAO,KAAK,EAAuB,cAAc,EAAE,gBAAgB,EAAC,MAAM,oBAAoB,CAAA;AAE9F,OAAO,EAAC,QAAQ,EAAC,MAAM,uCAAuC,CAAA;AAC9D,OAAO,KAAK,EAER,cAAc,EACjB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAC,YAAY,EAAC,MAAM,oCAAoC,CAAA;AAE/D,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,6BAA6B,CAAA;AAEhE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAA;AAEzC,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,WAAW,CAAA;IAClB,KAAK,CAAC,EAAE,gBAAgB,CAAA;CAC3B;AAED,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,YAAY,CAAA;AAC1D,MAAM,MAAM,aAAa,GAAG,SAAS,iBAAiB,EAAE,CAAA;AACxD,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;AACzF,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,WAAW,EAAE,eAAe,CAAC,CAAA;AAEvE,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACpD,OAAO,CAAC,EAAE,mBAAmB,CAAA;IAC7B,OAAO,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,EAAE,CAAA;IAChF,WAAW,CAAC,EAAE,SAAS,cAAc,CAAC,eAAe,CAAC,EAAE,CAAA;IACxD,oBAAoB,CAAC,EAAE,eAAe,CAAA;IACtC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,EAAE,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,CAAA;CACvF;AAED,yEAAyE;AACzE,qBAAa,WAAY,SAAQ,SAAS,CAAC,gBAAgB,CAAC;IACxD,OAAgB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAK;IACjD,QAAQ,CAAC,cAAc,EAAE,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IACvE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAmD;IACvF,OAAO,CAAC,iBAAiB,CAAyB;gBAEtC,KAAK,GAAE,gBAAqB;IAKxC,UAAU,IAAI,IAAI;IAIlB,MAAM,IAAI,gBAAgB;IAwE1B,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IAQzC,SAAS,IAAI,IAAI;IAKjB,OAAO,CAAC,aAAa;IAcrB,MAAM,CAAC,YAAY,4CAA2B;IAE9C,OAAgB,QAAQ,SAAiB;IAEzC,MAAM,CAAC,GAAG,SA0CT;CACJ"}
@@ -0,0 +1,23 @@
1
+ import { Component } from '../../component.js';
2
+ import type { ComponentProps, CapillaryUiChild } from '../../component.js';
3
+ import type { ValueEmitter } from '../../controlUtils.js';
4
+ import type { CheckboxSymbol } from '../../lineinputs/checkbox/Checkbox.js';
5
+ import type { FilterModeValue } from '../../../util/filterMode.js';
6
+ import { TableHeaderCell } from './TableHeaderCell.js';
7
+ import type { TableColumn, TableRow } from './TableHeaderCell.js';
8
+ import type { TableFilters, TableSort } from './tableQuery.js';
9
+ export interface TableHeaderProps<TRow extends TableRow = TableRow> extends ComponentProps {
10
+ columns: readonly TableColumn<TRow>[];
11
+ sortEmitter: ValueEmitter<TableSort | null>;
12
+ filtersEmitter: ValueEmitter<TableFilters>;
13
+ filterModes?: readonly CheckboxSymbol<FilterModeValue>[];
14
+ defaultSemanticState?: FilterModeValue;
15
+ onFilterChange?: (filters: TableFilters, event: Event | null) => void;
16
+ }
17
+ export declare class TableHeader<TRow extends TableRow = TableRow> extends Component<TableHeaderProps<TRow>> {
18
+ static liveProps: readonly string[];
19
+ render(): CapillaryUiChild;
20
+ static dependencies: (typeof TableHeaderCell)[];
21
+ static css: string;
22
+ }
23
+ //# sourceMappingURL=TableHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableHeader.d.ts","sourceRoot":"","sources":["../../../../src/Components/data/table/TableHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAM,MAAM,oBAAoB,CAAA;AACjD,OAAO,KAAK,EAAC,cAAc,EAAE,gBAAgB,EAAC,MAAM,oBAAoB,CAAA;AACxE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,uCAAuC,CAAA;AACzE,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,6BAA6B,CAAA;AAChE,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAA;AACpD,OAAO,KAAK,EACR,WAAW,EACX,QAAQ,EACX,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAC,YAAY,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAA;AAE5D,MAAM,WAAW,gBAAgB,CAAC,IAAI,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,cAAc;IACtF,OAAO,EAAE,SAAS,WAAW,CAAC,IAAI,CAAC,EAAE,CAAA;IACrC,WAAW,EAAE,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;IAC3C,cAAc,EAAE,YAAY,CAAC,YAAY,CAAC,CAAA;IAC1C,WAAW,CAAC,EAAE,SAAS,cAAc,CAAC,eAAe,CAAC,EAAE,CAAA;IACxD,oBAAoB,CAAC,EAAE,eAAe,CAAA;IACtC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,CAAA;CACxE;AAED,qBAAa,WAAW,CAAC,IAAI,SAAS,QAAQ,GAAG,QAAQ,CACrD,SAAQ,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACzC,OAAgB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAK;IACjD,MAAM,IAAI,gBAAgB;IA4B1B,MAAM,CAAC,YAAY,6BAAoB;IAEvC,MAAM,CAAC,GAAG,SAcT;CACJ"}
@@ -0,0 +1,41 @@
1
+ import { Component } from '../../component.js';
2
+ import type { ComponentProps, CapillaryUiChild } from '../../component.js';
3
+ import type { ValueEmitter } from '../../controlUtils.js';
4
+ import type { CheckboxSymbol } from '../../lineinputs/checkbox/Checkbox.js';
5
+ import type { FilterModeValue } from '../../../util/filterMode.js';
6
+ import { FilterPanel } from './FilterPanel.js';
7
+ import type { FilterOptionsSource, FilterSelection } from './FilterPanel.js';
8
+ import type { TableFilters, TableSort } from './tableQuery.js';
9
+ export type TableRow = Record<string, unknown>;
10
+ export interface TableColumnBase {
11
+ field: string;
12
+ label?: CapillaryUiChild;
13
+ /** Text alternative used by Capillary UI-authored sort and filter controls. */
14
+ ariaLabel?: string;
15
+ sortable?: boolean;
16
+ filterOptions?: FilterOptionsSource;
17
+ }
18
+ export interface TableColumn<TRow extends TableRow = TableRow> extends TableColumnBase {
19
+ field: Extract<keyof TRow, string>;
20
+ render?: (row: TRow, index: number) => CapillaryUiChild;
21
+ }
22
+ export interface TableHeaderCellProps extends ComponentProps, TableColumnBase {
23
+ sortEmitter: ValueEmitter<TableSort | null>;
24
+ filtersEmitter: ValueEmitter<TableFilters>;
25
+ filterModes?: readonly CheckboxSymbol<FilterModeValue>[];
26
+ defaultSemanticState?: FilterModeValue;
27
+ onFilterChange?: (filters: TableFilters, event: Event | null) => void;
28
+ }
29
+ export declare class TableHeaderCell extends Component<TableHeaderCellProps> {
30
+ static liveProps: readonly string[];
31
+ private filterVisible;
32
+ initialize(): void;
33
+ toggleSort(): void;
34
+ toggleFilterPanel(event: MouseEvent): void;
35
+ updateFilters(next: FilterSelection, event: Event | null): void;
36
+ render(): CapillaryUiChild;
37
+ private readonly onGlobalClick;
38
+ static dependencies: (typeof FilterPanel)[];
39
+ static css: string;
40
+ }
41
+ //# sourceMappingURL=TableHeaderCell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableHeaderCell.d.ts","sourceRoot":"","sources":["../../../../src/Components/data/table/TableHeaderCell.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAM,MAAM,oBAAoB,CAAA;AACjD,OAAO,KAAK,EAAC,cAAc,EAAE,gBAAgB,EAAC,MAAM,oBAAoB,CAAA;AACxE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,uCAAuC,CAAA;AACzE,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,6BAA6B,CAAA;AAChE,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAC5C,OAAO,KAAK,EACR,mBAAmB,EACnB,eAAe,EAElB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAC,YAAY,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAA;AAE5D,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE9C,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,gBAAgB,CAAA;IACxB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,aAAa,CAAC,EAAE,mBAAmB,CAAA;CACtC;AAED,MAAM,WAAW,WAAW,CAAC,IAAI,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,eAAe;IAClF,KAAK,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,MAAM,CAAC,CAAA;IAClC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,gBAAgB,CAAA;CAC1D;AAED,MAAM,WAAW,oBAAqB,SAAQ,cAAc,EAAE,eAAe;IACzE,WAAW,EAAE,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;IAC3C,cAAc,EAAE,YAAY,CAAC,YAAY,CAAC,CAAA;IAC1C,WAAW,CAAC,EAAE,SAAS,cAAc,CAAC,eAAe,CAAC,EAAE,CAAA;IACxD,oBAAoB,CAAC,EAAE,eAAe,CAAA;IACtC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,CAAA;CACxE;AAED,qBAAa,eAAgB,SAAQ,SAAS,CAAC,oBAAoB,CAAC;IAChE,OAAgB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAK;IACjD,OAAO,CAAC,aAAa,CAAQ;IAE7B,UAAU,IAAI,IAAI;IAOlB,UAAU,IAAI,IAAI;IAYlB,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAM1C,aAAa,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI;IAQ/D,MAAM,IAAI,gBAAgB;IA+D1B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAQ7B;IAED,MAAM,CAAC,YAAY,yBAAgB;IAEnC,OAAgB,GAAG,SAuDlB;CACJ"}
@@ -0,0 +1,49 @@
1
+ import type { FetchLike, QueryHandlerLike, QuerySerializer, ReadableEmitter } from '@capillaryjs/capillary';
2
+ import type { ValueEmitter } from '../../controlUtils.js';
3
+ import type { TableRow } from './TableHeaderCell.js';
4
+ import type { TableFilters, TableSort } from './tableQuery.js';
5
+ export type TableQueryArguments = {
6
+ sort: TableSort | null;
7
+ filters: TableFilters;
8
+ };
9
+ export type TableQueryInput<TRow extends TableRow = TableRow> = ReadableEmitter<readonly TRow[] | undefined, unknown> & {
10
+ retry?: (cause?: unknown) => unknown;
11
+ dispose?: () => void;
12
+ };
13
+ export interface TableDataSource<TRow extends TableRow = TableRow> {
14
+ readonly query: TableQueryInput<TRow>;
15
+ readonly sortEmitter: ValueEmitter<TableSort | null>;
16
+ readonly filtersEmitter: ValueEmitter<TableFilters>;
17
+ readonly retry?: (cause?: unknown) => unknown;
18
+ dispose(): void;
19
+ }
20
+ interface TableStateOptions {
21
+ sortEmitter?: ValueEmitter<TableSort | null>;
22
+ filtersEmitter?: ValueEmitter<TableFilters>;
23
+ owner?: unknown;
24
+ }
25
+ export interface LocalTableDataSourceOptions<TRow extends TableRow> extends TableStateOptions {
26
+ data: readonly TRow[] | ReadableEmitter<readonly TRow[], unknown>;
27
+ }
28
+ export interface QueryTableDataSourceOptions<TRow extends TableRow> extends TableStateOptions {
29
+ query: TableQueryInput<TRow>;
30
+ }
31
+ export interface HandlerTableDataSourceOptions<TRow extends TableRow> extends TableStateOptions {
32
+ handler: QueryHandlerLike<TableQueryArguments, readonly TRow[]>;
33
+ }
34
+ export interface RestTableDataSourceOptions<TRow extends TableRow> extends TableStateOptions {
35
+ url: string;
36
+ baseUrl?: string;
37
+ fetch?: FetchLike<readonly TRow[]>;
38
+ serializeQuery?: QuerySerializer<TableQueryArguments>;
39
+ }
40
+ /** Create a source that applies table state to local data. The caller owns it. */
41
+ export declare function createLocalTableDataSource<TRow extends TableRow>(options: LocalTableDataSourceOptions<TRow>): TableDataSource<TRow>;
42
+ /** Package a caller-owned query with the sort/filter emitters that drive it. */
43
+ export declare function createQueryTableDataSource<TRow extends TableRow>(options: QueryTableDataSourceOptions<TRow>): TableDataSource<TRow>;
44
+ /** Create a LiveQuery-backed source from an application-supplied handler. */
45
+ export declare function createHandlerTableDataSource<TRow extends TableRow>(options: HandlerTableDataSourceOptions<TRow>): TableDataSource<TRow>;
46
+ /** Create the convenient REST-backed source. The caller owns the result. */
47
+ export declare function createRestTableDataSource<TRow extends TableRow>(options: RestTableDataSourceOptions<TRow>): TableDataSource<TRow>;
48
+ export {};
49
+ //# sourceMappingURL=tableDataSource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tableDataSource.d.ts","sourceRoot":"","sources":["../../../../src/Components/data/table/tableDataSource.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { UrlLike } from '@capillaryjs/capillary';
2
+ import type { FilterModeValue } from '../../../util/filterMode.js';
3
+ export interface TableSort {
4
+ field: string;
5
+ direction: 'asc' | 'desc';
6
+ }
7
+ export type TableFilterEntry<TValue = unknown> = readonly [
8
+ value: TValue,
9
+ mode: FilterModeValue
10
+ ];
11
+ export type TableFilters = Record<string, readonly TableFilterEntry[]>;
12
+ export interface TableQueryState {
13
+ sort?: TableSort | null;
14
+ filters?: TableFilters;
15
+ }
16
+ export declare const DefaultTableFilterEncoding: Readonly<Record<FilterModeValue, string>>;
17
+ /**
18
+ * Serialize Capillary UI's compact remote-table wire format.
19
+ *
20
+ * - `sort=field:asc|desc`
21
+ * - repeated `filter=field:token:JSON(value)` entries
22
+ *
23
+ * Semantic modes deliberately remain separate from this compatibility wire
24
+ * encoding. Endpoints with another contract should inject their own serializer.
25
+ */
26
+ export declare function serializeTableQuery<TUrl extends UrlLike>(url: TUrl, { sort, filters }?: TableQueryState): TUrl;
27
+ export declare function applyLocalTableState<TRow>(rows: readonly TRow[], sort: TableSort | null, filters: TableFilters): TRow[];
28
+ export declare function assertSort(sort: unknown): asserts sort is TableSort;
29
+ //# sourceMappingURL=tableQuery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tableQuery.d.ts","sourceRoot":"","sources":["../../../../src/Components/data/table/tableQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,wBAAwB,CAAA;AAGnD,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,6BAA6B,CAAA;AAEhE,MAAM,WAAW,SAAS;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,KAAK,GAAG,MAAM,CAAA;CAC5B;AAED,MAAM,MAAM,gBAAgB,CAAC,MAAM,GAAG,OAAO,IAAI,SAAS;IACtD,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,eAAe;CACxB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAC,CAAA;AAEtE,MAAM,WAAW,eAAe;IAC5B,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IACvB,OAAO,CAAC,EAAE,YAAY,CAAA;CACzB;AAED,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAKhF,CAAA;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,SAAS,OAAO,EACpD,GAAG,EAAE,IAAI,EACT,EAAC,IAAW,EAAE,OAAY,EAAC,GAAE,eAAoB,GAClD,IAAI,CAkBN;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EACrC,IAAI,EAAE,SAAS,IAAI,EAAE,EACrB,IAAI,EAAE,SAAS,GAAG,IAAI,EACtB,OAAO,EAAE,YAAY,GACtB,IAAI,EAAE,CAQR;AAmBD,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,IAAI,SAAS,CAOnE"}
@@ -0,0 +1,23 @@
1
+ import { DerivedEmitter } from '@capillaryjs/capillary';
2
+ import type { ReadableEmitter } from '@capillaryjs/capillary';
3
+ import type { Key } from '../../component.js';
4
+ import type { ValueEmitter } from '../../controlUtils.js';
5
+ import type { TreeNode } from './treeitem.js';
6
+ /** Validate a tree snapshot and reject keys that are not globally unique. */
7
+ export declare function assertTreeNodes<TValue>(value: unknown): asserts value is readonly TreeNode<TValue>[];
8
+ export declare function findTreeNode<TValue>(nodes: readonly TreeNode<TValue>[], key: Key): TreeNode<TValue> | null;
9
+ /**
10
+ * Project the current node for a key from complete root snapshots.
11
+ *
12
+ * The projection is read-only: application commands update the authoritative
13
+ * source, which causes the full tree and then this projection to recompute.
14
+ */
15
+ export declare function deriveTreeNode<TValue>(nodes: ReadableEmitter<readonly TreeNode<TValue>[], unknown>, key: ReadableEmitter<Key | null, unknown>, owner?: unknown): DerivedEmitter<TreeNode<TValue> | null, readonly [
16
+ ReadableEmitter<readonly TreeNode<TValue>[], unknown>,
17
+ ReadableEmitter<Key | null, unknown>
18
+ ]>;
19
+ /** Return a path-copied root snapshot, or the original array when no key exists. */
20
+ export declare function updateTreeNode<TValue>(nodes: readonly TreeNode<TValue>[], key: Key, update: (node: TreeNode<TValue>) => TreeNode<TValue>): readonly TreeNode<TValue>[];
21
+ /** Apply a path-copy update to an authoritative writable root emitter. */
22
+ export declare function updateWritableTreeNode<TValue>(nodes: ValueEmitter<readonly TreeNode<TValue>[]>, key: Key, update: (node: TreeNode<TValue>) => TreeNode<TValue>, cause?: unknown): boolean;
23
+ //# sourceMappingURL=treeModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"treeModel.d.ts","sourceRoot":"","sources":["../../../../src/Components/data/treeview/treeModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAA;AAE3D,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,oBAAoB,CAAA;AAC3C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAA;AAE3C,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,MAAM,EAClC,KAAK,EAAE,OAAO,GACf,OAAO,CAAC,KAAK,IAAI,SAAS,QAAQ,CAAC,MAAM,CAAC,EAAE,CAiB9C;AAED,wBAAgB,YAAY,CAAC,MAAM,EAC/B,KAAK,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,EAAE,EAClC,GAAG,EAAE,GAAG,GACT,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAGzB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EACjC,KAAK,EAAE,eAAe,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,EAC5D,GAAG,EAAE,eAAe,CAAC,GAAG,GAAG,IAAI,EAAE,OAAO,CAAC,EACzC,KAAK,GAAE,OAAc,GACtB,cAAc,CACb,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,EACvB,SAAS;IACL,eAAe,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC;IACrD,eAAe,CAAC,GAAG,GAAG,IAAI,EAAE,OAAO,CAAC;CACvC,CACJ,CASA;AAED,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,MAAM,EACjC,KAAK,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,EAAE,EAClC,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,GACrD,SAAS,QAAQ,CAAC,MAAM,CAAC,EAAE,CAkC7B;AAED,0EAA0E;AAC1E,wBAAgB,sBAAsB,CAAC,MAAM,EACzC,KAAK,EAAE,YAAY,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAChD,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,EACpD,KAAK,GAAE,OAA6B,GACrC,OAAO,CAIT"}
@@ -0,0 +1,21 @@
1
+ import { Component } from '../../component.js';
2
+ import type { ComponentProps, CapillaryUiChild, Key } from '../../component.js';
3
+ export interface TreeNode<TValue = unknown> {
4
+ id: Key;
5
+ label: CapillaryUiChild;
6
+ textValue?: string;
7
+ value?: TValue;
8
+ children?: readonly TreeNode<TValue>[];
9
+ }
10
+ export interface TreeItemProps<TValue = unknown> extends ComponentProps {
11
+ id: Key;
12
+ label: CapillaryUiChild;
13
+ textValue?: string;
14
+ value?: TValue;
15
+ }
16
+ /** Declarative tree-node marker consumed by TreeView. */
17
+ export declare class TreeItem<TValue = unknown> extends Component<TreeItemProps<TValue>> {
18
+ static liveProps: readonly string[];
19
+ render(): CapillaryUiChild;
20
+ }
21
+ //# sourceMappingURL=treeitem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"treeitem.d.ts","sourceRoot":"","sources":["../../../../src/Components/data/treeview/treeitem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,EAAC,cAAc,EAAE,gBAAgB,EAAE,GAAG,EAAC,MAAM,oBAAoB,CAAA;AAE7E,MAAM,WAAW,QAAQ,CAAC,MAAM,GAAG,OAAO;IACtC,EAAE,EAAE,GAAG,CAAA;IACP,KAAK,EAAE,gBAAgB,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAA;CACzC;AAED,MAAM,WAAW,aAAa,CAAC,MAAM,GAAG,OAAO,CAAE,SAAQ,cAAc;IACnE,EAAE,EAAE,GAAG,CAAA;IACP,KAAK,EAAE,gBAAgB,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,yDAAyD;AACzD,qBAAa,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAE,SAAQ,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5E,OAAgB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAK;IACjD,MAAM,IAAI,gBAAgB;CAG7B"}
@@ -0,0 +1,49 @@
1
+ import type { ReadableEmitter } from '@capillaryjs/capillary';
2
+ import { Placeholder } from '../../Placeholder.js';
3
+ import { Component } from '../../component.js';
4
+ import type { ComponentProps, CapillaryUiChild, Key } from '../../component.js';
5
+ import type { ValueEmitter } from '../../controlUtils.js';
6
+ import { ErrorMessage } from '../../status/statusPresentation.js';
7
+ import { TreeItem } from './treeitem.js';
8
+ import type { TreeNode } from './treeitem.js';
9
+ export interface TreeViewProps<TValue = unknown> extends ComponentProps {
10
+ nodes?: readonly TreeNode<TValue>[] | ReadableEmitter<readonly TreeNode<TValue>[], unknown>;
11
+ label: string;
12
+ placeholderCount?: number;
13
+ selectedKeyEmitter?: ValueEmitter<Key | null>;
14
+ expandedKeysEmitter?: ValueEmitter<Key[]>;
15
+ renderItem?: (node: TreeNode<TValue>, depth: number) => CapillaryUiChild;
16
+ itemLabelClassName?: (node: TreeNode<TValue>, depth: number) => string | null | undefined;
17
+ itemLabelStyle?: (node: TreeNode<TValue>, depth: number) => TreeItemStyle | null | undefined;
18
+ onSelect?: (node: TreeNode<TValue>, event: Event) => void;
19
+ }
20
+ export type TreeItemStyle = Readonly<Record<string, string | number | null | undefined>>;
21
+ /** Single-select ARIA tree with controlled expansion and selection. */
22
+ export declare class TreeView<TValue = unknown> extends Component<TreeViewProps<TValue>> {
23
+ static liveProps: readonly string[];
24
+ readonly nodesEmitter: ReadableEmitter<readonly TreeNode<TValue>[], unknown>;
25
+ readonly selectedKeyEmitter: ValueEmitter<Key | null>;
26
+ readonly expandedKeysEmitter: ValueEmitter<Key[]>;
27
+ private readonly ownedNodesEmitter;
28
+ private readonly ownedSelectedEmitter;
29
+ private readonly ownedExpandedEmitter;
30
+ private focusedKey;
31
+ private typeahead;
32
+ private typeaheadTimer;
33
+ constructor(props: TreeViewProps<TValue>);
34
+ initialize(): void;
35
+ setProps(nextProps: TreeViewProps<TValue>): this;
36
+ render(): CapillaryUiChild;
37
+ onDestroy(): void;
38
+ static dependencies: (typeof ErrorMessage | typeof Placeholder | typeof TreeItem)[];
39
+ static hostName: string;
40
+ static css: string;
41
+ private reconcile;
42
+ private selectNode;
43
+ private toggleExpanded;
44
+ private handleKeyDown;
45
+ private move;
46
+ private focusRow;
47
+ private handleTypeahead;
48
+ }
49
+ //# sourceMappingURL=treeview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"treeview.d.ts","sourceRoot":"","sources":["../../../../src/Components/data/treeview/treeview.tsx"],"names":[],"mappings":"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"}