@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,63 @@
1
+ # Capillary UI color palettes
2
+
3
+ Each `<name>/colors.css` file is a replaceable, variable-only palette. It owns
4
+ color anchors and endpoints, not the appearance of a panel, button, input,
5
+ selection, or application surface. Palette files contain no component
6
+ selectors and never import another stylesheet.
7
+
8
+ Published palettes are `gray`, `green`, `iceblue`, `ocean`, `orange`, `purple`,
9
+ `red`, and `yellow`.
10
+
11
+ ## Palette contract
12
+
13
+ A palette supplies:
14
+
15
+ - `--palette-light` and `--palette-dark` endpoints;
16
+ - `--palette-contrast-light` and `--palette-contrast-dark` foregrounds;
17
+ - `--palette-red` and `--palette-green` status primitives;
18
+ - `--palette-primary-500`, `--palette-secondary-500`, and
19
+ `--palette-neutral-500` anchors.
20
+
21
+ `themes/base.css` derives the remaining numeric ramp stops, ordinary
22
+ `primary`/`light`/`dark` aliases, and transparent light variants with
23
+ `color-mix()`. A palette may override a
24
+ `--palette-<family>-light-mix` or `--palette-<family>-dark-mix` endpoint when a
25
+ ramp intentionally changes hue.
26
+
27
+ ```css
28
+ @layer palette {
29
+ :root {
30
+ --palette-light: #fff;
31
+ --palette-dark: #111827;
32
+ --palette-contrast-light: #fff;
33
+ --palette-contrast-dark: #111827;
34
+ --palette-red: #c62828;
35
+ --palette-green: #2e7d32;
36
+ --palette-primary-500: #2989d8;
37
+ --palette-secondary-500: #7137a8;
38
+ --palette-neutral-500: #7892aa;
39
+ }
40
+ }
41
+ ```
42
+
43
+ Color files must not declare semantic roles such as `--button-*`,
44
+ `--input-*`, or `--panel-*`. The base and active theme map derived palette
45
+ values to those roles.
46
+
47
+ ## Loading and replacement
48
+
49
+ Load one palette after Capillary UI's base and structural CSS and before the active
50
+ theme:
51
+
52
+ ```ts
53
+ import '@capillaryjs/capillary-ui/colors/iceblue/colors.css'
54
+ ```
55
+
56
+ `capillaryUiColorOptions` lists the built-in files. `ColorPicker` and
57
+ `replaceCapillaryUiStylesheet('colors', option)` replace the link marked
58
+ `data-cap-stylesheet="colors"`; applications own selection and persistence
59
+ policy.
60
+
61
+ When adding a palette, test its derived ramps and contrast in every supported
62
+ theme, forced-colors mode, and application states that introduce semantic
63
+ status colors.
@@ -0,0 +1,16 @@
1
+ @charset "utf-8";
2
+
3
+ @layer palette {
4
+ :root {
5
+ --palette-light: #ffffff;
6
+ --palette-dark: #111827;
7
+ --palette-contrast-light: var(--palette-light);
8
+ --palette-contrast-dark: var(--palette-dark);
9
+ --palette-red: #b3261e;
10
+ --palette-green: #287a3c;
11
+
12
+ --palette-primary-500: #5d6873;
13
+ --palette-secondary-500: #1769aa;
14
+ --palette-neutral-500: #858d95;
15
+ }
16
+ }
@@ -0,0 +1,16 @@
1
+ @charset "utf-8";
2
+
3
+ @layer palette {
4
+ :root {
5
+ --palette-light: #ffffff;
6
+ --palette-dark: #111827;
7
+ --palette-contrast-light: var(--palette-light);
8
+ --palette-contrast-dark: var(--palette-dark);
9
+ --palette-red: #b3261e;
10
+ --palette-green: #287a3c;
11
+
12
+ --palette-primary-500: #287a3c;
13
+ --palette-secondary-500: #087f78;
14
+ --palette-neutral-500: #75947a;
15
+ }
16
+ }
@@ -0,0 +1,19 @@
1
+ @charset "utf-8";
2
+
3
+ @layer palette {
4
+ :root {
5
+ --palette-light: #ffffff;
6
+ --palette-dark: #111827;
7
+ --palette-contrast-light: var(--palette-light);
8
+ --palette-contrast-dark: var(--palette-dark);
9
+ --palette-red: #b3261e;
10
+ --palette-green: #287a3c;
11
+
12
+ /* Preserve the legacy Shiny movement from navy through blue to cyan. */
13
+ --palette-primary-light-mix: #00b9e8;
14
+ --palette-primary-dark-mix: #00193f;
15
+ --palette-primary-500: #2989d8;
16
+ --palette-secondary-500: #7137a8;
17
+ --palette-neutral-500: #7892aa;
18
+ }
19
+ }
@@ -0,0 +1,16 @@
1
+ @charset "utf-8";
2
+
3
+ @layer palette {
4
+ :root {
5
+ --palette-light: #ffffff;
6
+ --palette-dark: #111827;
7
+ --palette-contrast-light: var(--palette-light);
8
+ --palette-contrast-dark: var(--palette-dark);
9
+ --palette-red: #b3261e;
10
+ --palette-green: #287a3c;
11
+
12
+ --palette-primary-500: #087f78;
13
+ --palette-secondary-500: #1769aa;
14
+ --palette-neutral-500: #668f8a;
15
+ }
16
+ }
@@ -0,0 +1,16 @@
1
+ @charset "utf-8";
2
+
3
+ @layer palette {
4
+ :root {
5
+ --palette-light: #ffffff;
6
+ --palette-dark: #111827;
7
+ --palette-contrast-light: var(--palette-light);
8
+ --palette-contrast-dark: var(--palette-dark);
9
+ --palette-red: #b3261e;
10
+ --palette-green: #287a3c;
11
+
12
+ --palette-primary-500: #a94b00;
13
+ --palette-secondary-500: #7137a8;
14
+ --palette-neutral-500: #a87a56;
15
+ }
16
+ }
@@ -0,0 +1,16 @@
1
+ @charset "utf-8";
2
+
3
+ @layer palette {
4
+ :root {
5
+ --palette-light: #ffffff;
6
+ --palette-dark: #111827;
7
+ --palette-contrast-light: var(--palette-light);
8
+ --palette-contrast-dark: var(--palette-dark);
9
+ --palette-red: #b3261e;
10
+ --palette-green: #287a3c;
11
+
12
+ --palette-primary-500: #7137a8;
13
+ --palette-secondary-500: #1769aa;
14
+ --palette-neutral-500: #9273a2;
15
+ }
16
+ }
@@ -0,0 +1,16 @@
1
+ @charset "utf-8";
2
+
3
+ @layer palette {
4
+ :root {
5
+ --palette-light: #ffffff;
6
+ --palette-dark: #111827;
7
+ --palette-contrast-light: var(--palette-light);
8
+ --palette-contrast-dark: var(--palette-dark);
9
+ --palette-red: #b3261e;
10
+ --palette-green: #287a3c;
11
+
12
+ --palette-primary-500: #b3261e;
13
+ --palette-secondary-500: #806000;
14
+ --palette-neutral-500: #a87570;
15
+ }
16
+ }
@@ -0,0 +1,16 @@
1
+ @charset "utf-8";
2
+
3
+ @layer palette {
4
+ :root {
5
+ --palette-light: #ffffff;
6
+ --palette-dark: #111827;
7
+ --palette-contrast-light: var(--palette-light);
8
+ --palette-contrast-dark: var(--palette-dark);
9
+ --palette-red: #b3261e;
10
+ --palette-green: #287a3c;
11
+
12
+ --palette-primary-500: #806000;
13
+ --palette-secondary-500: #1769aa;
14
+ --palette-neutral-500: #998849;
15
+ }
16
+ }
@@ -0,0 +1,15 @@
1
+ import { Component } from './component.js';
2
+ import type { ComponentProps } from './component.js';
3
+ import { StatusPresentation } from './status/statusPresentation.js';
4
+ export interface PlaceholderProps extends ComponentProps {
5
+ width?: number | string;
6
+ }
7
+ /** Deterministic loading placeholder for data components. */
8
+ export declare class Placeholder extends Component<PlaceholderProps> {
9
+ static liveProps: readonly string[];
10
+ static dependencies: (typeof StatusPresentation)[];
11
+ render(): import("@capillaryjs/capillary-ui/jsx-runtime").JSX.Element;
12
+ static hostName: string;
13
+ static css: string;
14
+ }
15
+ //# sourceMappingURL=Placeholder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Placeholder.d.ts","sourceRoot":"","sources":["../../src/Components/Placeholder.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAM,MAAM,gBAAgB,CAAA;AAC7C,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAA;AAClD,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAA;AAEjE,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACpD,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAC1B;AAED,6DAA6D;AAC7D,qBAAa,WAAY,SAAQ,SAAS,CAAC,gBAAgB,CAAC;IACxD,OAAgB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAK;IACjD,OAAgB,YAAY,gCAAuB;IACnD,MAAM;IAMN,OAAgB,QAAQ,SAAgB;IAExC,OAAgB,GAAG,SAgClB;CACJ"}
@@ -0,0 +1,41 @@
1
+ import { Component } from '../component.js';
2
+ import type { ComponentDependency, ComponentProps, CapillaryUiChild } from '../component.js';
3
+ import { CapillaryUiRuntime } from '../../runtime.js';
4
+ import type { CapillaryUiLayoutDirection } from '../layout/layoutTraits.js';
5
+ /** Viewport sizing policy for a Capillary UI application root. */
6
+ export type CapillaryUiAppSizing = 'embedded' | 'viewport-width' | 'viewport-height' | 'viewport';
7
+ /** Landmark policy for a Capillary UI application root. */
8
+ export type CapillaryUiAppLandmark = 'main' | 'none';
9
+ export interface CapillaryUiAppProps extends ComponentProps {
10
+ /**
11
+ * Select the viewport axes claimed by the application shell. Embedded is
12
+ * sizing-neutral; the other values use Capillary UI's public fill traits.
13
+ */
14
+ sizing?: CapillaryUiAppSizing;
15
+ /** Arrange application-owned root children on the bounded host. */
16
+ layout?: CapillaryUiLayoutDirection;
17
+ /**
18
+ * `main` exposes the app as the document's primary-content landmark.
19
+ * Embedded applications should select `none`.
20
+ */
21
+ landmark?: CapillaryUiAppLandmark;
22
+ }
23
+ /**
24
+ * A fixed application shell with a `cap-app` host and theme typography.
25
+ *
26
+ * Instantiate it with children for a small application, or derive from it and
27
+ * override `renderContent()` for an application composition root.
28
+ */
29
+ export declare class CapillaryUiApp extends Component<CapillaryUiAppProps> {
30
+ mount(parent?: ParentNode | null, before?: Node | null): this;
31
+ protected renderContent(): CapillaryUiChild;
32
+ render(): import("@capillaryjs/capillary-ui/jsx-runtime").JSX.Element;
33
+ static hostName: string;
34
+ static css: string;
35
+ }
36
+ /**
37
+ * Register an application root's reachable structural CSS before mounting it.
38
+ * Presentation assets remain explicit application policy.
39
+ */
40
+ export declare function mountCapillaryUiApp<TArgs extends unknown[], TApp extends CapillaryUiApp>(runtime: CapillaryUiRuntime, appType: (new (...args: TArgs) => TApp) & ComponentDependency, parent: ParentNode, ...args: TArgs): TApp;
41
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/Components/app/app.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAM,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,EAAC,mBAAmB,EAAE,cAAc,EAAE,gBAAgB,EAAC,MAAM,iBAAiB,CAAA;AAC1F,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAA;AAEnD,OAAO,KAAK,EAAC,0BAA0B,EAAC,MAAM,2BAA2B,CAAA;AAEzE,kEAAkE;AAClE,MAAM,MAAM,oBAAoB,GAC1B,UAAU,GACV,gBAAgB,GAChB,iBAAiB,GACjB,UAAU,CAAA;AAEhB,2DAA2D;AAC3D,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,MAAM,CAAA;AAEpD,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACvD;;;OAGG;IACH,MAAM,CAAC,EAAE,oBAAoB,CAAA;IAC7B,mEAAmE;IACnE,MAAM,CAAC,EAAE,0BAA0B,CAAA;IACnC;;;OAGG;IACH,QAAQ,CAAC,EAAE,sBAAsB,CAAA;CACpC;AAED;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,SAAS,CAAC,mBAAmB,CAAC;IACrD,KAAK,CAAC,MAAM,GAAE,UAAU,GAAG,IAAW,EAAE,MAAM,GAAE,IAAI,GAAG,IAAW,GAAG,IAAI;IASlF,SAAS,CAAC,aAAa,IAAI,gBAAgB;IAI3C,MAAM;IA4BN,OAAgB,QAAQ,SAAQ;IAEhC,OAAgB,GAAG,SAUlB;CACJ;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,SAAS,OAAO,EAAE,EAAE,IAAI,SAAS,cAAc,EACpF,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,CAAC,KAAI,GAAG,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,mBAAmB,EAC5D,MAAM,EAAE,UAAU,EAClB,GAAG,IAAI,EAAE,KAAK,GACf,IAAI,CAQN"}
@@ -0,0 +1,256 @@
1
+ import type { EventBubble, FetchStateValue, ReadableEmitter } from '@capillaryjs/capillary';
2
+ import { CapillaryUiRuntime } from '../runtime.js';
3
+ import type { ServiceKey } from '../services.js';
4
+ import type { CapillaryUiLocalization, CapillaryUiMessage, CapillaryUiMessageOverrides } from '../localization.js';
5
+ export declare const Fragment: unique symbol;
6
+ export type Key = string | number;
7
+ export interface ComponentProps {
8
+ key?: Key | null;
9
+ children?: CapillaryUiChild | readonly CapillaryUiChild[];
10
+ class?: string | null;
11
+ className?: string | null;
12
+ /** Opt this host into the theme-defined, non-nestable island treatment. */
13
+ island?: boolean;
14
+ [name: string]: unknown;
15
+ }
16
+ export type Ref<TNode extends Node = Node> = ((value: TNode | null) => void) | {
17
+ current: TNode | null;
18
+ };
19
+ export type FunctionComponent<TProps extends ComponentProps = ComponentProps> = (props: TProps) => CapillaryUiChild;
20
+ export type ComponentConstructor<TProps extends ComponentProps = ComponentProps, TInstance extends Component<TProps> = Component<TProps>> = new (props: TProps) => TInstance;
21
+ type ConcreteComponentConstructor = new (...args: never[]) => Component;
22
+ export type VNodeType<TProps extends ComponentProps = ComponentProps> = string | typeof Fragment | ComponentConstructor<TProps> | FunctionComponent<TProps>;
23
+ export interface VNode<TProps extends ComponentProps = ComponentProps> {
24
+ readonly type: string | typeof Fragment | Function;
25
+ readonly key: Key | null;
26
+ readonly props: TProps & {
27
+ children: NormalizedChild[];
28
+ };
29
+ }
30
+ export type CapillaryUiChild = string | number | boolean | null | undefined | VNode | Component | ReadableEmitter<CapillaryUiChild, unknown> | readonly CapillaryUiChild[];
31
+ type NormalizedChild = string | number | VNode | Component | ReadableEmitter<CapillaryUiChild, unknown>;
32
+ declare const liveBindingBrand: unique symbol;
33
+ /** Explicitly subscribe a DOM or component property to an emitter's current value. */
34
+ export interface LiveBinding<TValue> {
35
+ readonly emitter: ReadableEmitter<TValue, unknown>;
36
+ readonly [liveBindingBrand]: true;
37
+ }
38
+ /** Minimal writable Capillary contract used by native `bind:value` and `bind:checked`. */
39
+ export interface WritableEmitter<TValue, TError = unknown> extends ReadableEmitter<TValue, TError> {
40
+ set(value: TValue, eventOrCause?: unknown): unknown;
41
+ }
42
+ export interface EmitterSnapshot<TValue, TError = unknown> {
43
+ readonly value: TValue;
44
+ readonly fetchState: FetchStateValue;
45
+ readonly error: TError | null;
46
+ }
47
+ declare const livePropContract: unique symbol;
48
+ /** Type-only declaration of the component props that accept `live()` bindings. */
49
+ export interface LivePropContract<TName extends string> {
50
+ readonly [livePropContract]?: TName;
51
+ }
52
+ /** Components opt in to every supported `live()` prop through LivePropContract. */
53
+ type DefaultLivePropName<_TProps extends ComponentProps> = never;
54
+ type DeclaredLivePropName<TProps extends ComponentProps> = typeof livePropContract extends keyof TProps ? Extract<Exclude<TProps[typeof livePropContract], undefined>, keyof TProps> : DefaultLivePropName<TProps>;
55
+ export type TemplateProps<TProps extends ComponentProps> = {
56
+ [TName in keyof TProps as TName extends typeof livePropContract ? never : TName]: TName extends 'key' | 'children' ? TProps[TName] : TName extends DeclaredLivePropName<TProps> ? TProps[TName] | LiveBinding<Exclude<TProps[TName], undefined>> : TProps[TName];
57
+ };
58
+ export interface ComponentDependency {
59
+ registerStyles(runtime?: CapillaryUiRuntime, seen?: Set<ComponentDependency>): void;
60
+ }
61
+ interface Watchable {
62
+ subscribe(listener: (notification: {
63
+ event: EventBubble<unknown> | null;
64
+ }) => void, options?: {
65
+ emitCurrent?: boolean;
66
+ }): () => void;
67
+ }
68
+ /** Mark an emitter as a one-way live value for a DOM or component property. */
69
+ export declare function live<TValue>(emitter: ReadableEmitter<TValue, unknown>): LiveBinding<TValue>;
70
+ /** Build a Capillary UI virtual node. */
71
+ export declare function h<TProps extends ComponentProps = ComponentProps>(type: VNodeType<TProps>, props?: TemplateProps<TProps> | null, ...children: CapillaryUiChild[]): VNode<TProps>;
72
+ type LiveValue<TValue> = TValue | LiveBinding<Exclude<TValue, undefined>>;
73
+ type AriaAttributes = {
74
+ [TName in `aria-${string}`]?: LiveValue<string | number | boolean | null | undefined>;
75
+ };
76
+ type DataAttributes = {
77
+ [TName in `data-${string}`]?: LiveValue<string | number | boolean | null | undefined>;
78
+ };
79
+ interface DOMEvents<TElement extends HTMLElement> {
80
+ onClick?: ((event: MouseEvent & {
81
+ currentTarget: TElement;
82
+ }) => void) | undefined;
83
+ onInput?: ((event: InputEvent & {
84
+ currentTarget: TElement;
85
+ }) => void) | undefined;
86
+ onChange?: ((event: Event & {
87
+ currentTarget: TElement;
88
+ }) => void) | undefined;
89
+ onKeyDown?: ((event: KeyboardEvent & {
90
+ currentTarget: TElement;
91
+ }) => void) | undefined;
92
+ onKeyUp?: ((event: KeyboardEvent & {
93
+ currentTarget: TElement;
94
+ }) => void) | undefined;
95
+ onFocus?: ((event: FocusEvent & {
96
+ currentTarget: TElement;
97
+ }) => void) | undefined;
98
+ onBlur?: ((event: FocusEvent & {
99
+ currentTarget: TElement;
100
+ }) => void) | undefined;
101
+ onPointerDown?: ((event: PointerEvent & {
102
+ currentTarget: TElement;
103
+ }) => void) | undefined;
104
+ onPointerMove?: ((event: PointerEvent & {
105
+ currentTarget: TElement;
106
+ }) => void) | undefined;
107
+ onPointerUp?: ((event: PointerEvent & {
108
+ currentTarget: TElement;
109
+ }) => void) | undefined;
110
+ onPointerCancel?: ((event: PointerEvent & {
111
+ currentTarget: TElement;
112
+ }) => void) | undefined;
113
+ }
114
+ type CapillaryUiDOMProps<TElement extends HTMLElement> = Omit<ComponentProps, 'class' | 'className'> & DOMEvents<TElement> & AriaAttributes & DataAttributes & {
115
+ class?: LiveValue<string | undefined>;
116
+ className?: LiveValue<string | undefined>;
117
+ for?: string | undefined;
118
+ htmlFor?: string | undefined;
119
+ ref?: Ref<TElement> | undefined;
120
+ style?: LiveValue<string | Record<string, string | number | null | undefined> | undefined>;
121
+ };
122
+ type LiveDOMProperties<TElement extends HTMLElement> = {
123
+ [TName in keyof Omit<TElement, keyof ComponentProps | 'style' | 'children'>]?: LiveValue<TElement[TName] | undefined>;
124
+ };
125
+ type NativeValueBinding<TElement extends HTMLElement> = TElement extends HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement ? {
126
+ 'bind:value'?: WritableEmitter<string> | undefined;
127
+ } : {};
128
+ type NativeCheckedBinding<TElement extends HTMLElement> = TElement extends HTMLInputElement ? {
129
+ 'bind:checked'?: WritableEmitter<boolean> | undefined;
130
+ } : {};
131
+ export interface CapillaryUiHostElementTagNameMap {
132
+ 'cap-content': HTMLElement;
133
+ 'cap-checkshell': HTMLElement;
134
+ 'cap-selectshell': HTMLElement;
135
+ 'cap-expander': HTMLElement;
136
+ 'cap-label': HTMLElement;
137
+ 'cap-options': HTMLElement;
138
+ 'cap-error': HTMLElement;
139
+ 'cap-erroricon': HTMLElement;
140
+ 'cap-errortext': HTMLElement;
141
+ 'cap-toolbarcontent': HTMLElement;
142
+ 'cap-primary': HTMLElement;
143
+ 'cap-secondary': HTMLElement;
144
+ 'cap-separator': HTMLElement;
145
+ 'cap-progress': HTMLElement;
146
+ 'cap-inverse': HTMLElement;
147
+ 'cap-presets': HTMLElement;
148
+ 'cap-draghandle': HTMLElement;
149
+ 'cap-chart': HTMLElement;
150
+ 'cap-readout': HTMLElement;
151
+ 'cap-swatch': HTMLElement;
152
+ 'cap-summary': HTMLElement;
153
+ 'cap-scroller': HTMLElement;
154
+ 'cap-blocks': HTMLElement;
155
+ 'cap-blocklabel': HTMLElement;
156
+ 'cap-blockname': HTMLElement;
157
+ 'cap-blockgroup': HTMLElement;
158
+ 'cap-categoryhidecontent': HTMLElement;
159
+ 'cap-criteriongroups': HTMLElement;
160
+ 'cap-categorygroupcontent': HTMLElement;
161
+ 'cap-categories': HTMLElement;
162
+ 'cap-categoryoption': HTMLElement;
163
+ 'cap-categoryswatch': HTMLElement;
164
+ 'cap-infopanel': HTMLElement;
165
+ 'cap-datepicker': HTMLElement;
166
+ 'cap-timepicker': HTMLElement;
167
+ 'cap-datetimepicker': HTMLElement;
168
+ }
169
+ export type CapillaryUiElementTagNameMap = HTMLElementTagNameMap & CapillaryUiHostElementTagNameMap;
170
+ export type CapillaryUiIntrinsicElements = {
171
+ [TTag in keyof CapillaryUiElementTagNameMap]: CapillaryUiDOMProps<CapillaryUiElementTagNameMap[TTag]> & LiveDOMProperties<CapillaryUiElementTagNameMap[TTag]> & NativeValueBinding<CapillaryUiElementTagNameMap[TTag]> & NativeCheckedBinding<CapillaryUiElementTagNameMap[TTag]>;
172
+ };
173
+ /** Classic JSX type namespace for consumers configured with `jsxFactory: "h"`. */
174
+ export declare namespace h {
175
+ namespace JSX {
176
+ type Element = VNode | Component;
177
+ interface ElementClass extends Component {
178
+ }
179
+ interface ElementAttributesProperty {
180
+ props: {};
181
+ }
182
+ interface ElementChildrenAttribute {
183
+ children: {};
184
+ }
185
+ interface IntrinsicAttributes {
186
+ key?: Key;
187
+ }
188
+ type LibraryManagedAttributes<_TComponent, TProps extends ComponentProps> = TemplateProps<TProps>;
189
+ type IntrinsicElements = CapillaryUiIntrinsicElements;
190
+ }
191
+ }
192
+ export declare function css(strings: TemplateStringsArray, ...values: unknown[]): string;
193
+ export declare class Component<TProps extends ComponentProps = ComponentProps> {
194
+ static dependencies: ComponentDependency[];
195
+ static requiredServices: readonly ServiceKey<unknown>[];
196
+ /** Component `live()` bindings are opt-in; subclasses declare their allowlist. */
197
+ static liveProps: readonly string[] | null;
198
+ static css: string;
199
+ static hostName: string | null;
200
+ static new<TConstructor extends ConcreteComponentConstructor>(this: TConstructor, ...args: ConstructorParameters<TConstructor>): InstanceType<TConstructor>;
201
+ static registerStyles(this: ComponentDependency & {
202
+ css?: string;
203
+ dependencies?: ComponentDependency[];
204
+ hostName?: string | null;
205
+ }, runtime?: CapillaryUiRuntime, seen?: Set<ComponentDependency>): void;
206
+ props: TProps;
207
+ dom: ChildNode | null;
208
+ private initialized;
209
+ private mounted;
210
+ private destroyed;
211
+ private updating;
212
+ private updateRequested;
213
+ private readonly cleanupFunctions;
214
+ private readonly watched;
215
+ private readonly renderReadSubscriptions;
216
+ private collectingRenderReads;
217
+ constructor(props?: TProps);
218
+ /** One-time setup hook. Constructors must not subscribe or render. */
219
+ initialize(): void;
220
+ render(): CapillaryUiChild;
221
+ /** Render this component's configured custom host element. */
222
+ protected host(props?: ComponentProps | null, ...children: CapillaryUiChild[]): VNode;
223
+ /** JSX component for this instance's runtime-configured custom host. */
224
+ protected readonly Host: (props: ComponentProps) => VNode;
225
+ mount(parent?: ParentNode | null, before?: Node | null): this;
226
+ attachTo(parent: ParentNode): this;
227
+ update(_event?: unknown): this;
228
+ setProps(nextProps: TProps): this;
229
+ afterMount(_dom: ChildNode | null): void;
230
+ afterUpdate(_dom: ChildNode | null): void;
231
+ watch(...observables: Watchable[]): this;
232
+ watchFutureValues(...observables: Watchable[]): this;
233
+ /** Read an emitter during render and rerender when that dependency changes. */
234
+ read<TValue, TError>(emitter: ReadableEmitter<TValue, TError>): TValue;
235
+ /** Read a Capillary value, fetch state, and error as one tracked render dependency. */
236
+ snapshot<TValue, TError>(emitter: ReadableEmitter<TValue, TError>): EmitterSnapshot<TValue, TError>;
237
+ onCleanup(cleanup: () => void): () => void;
238
+ /** Resolve one explicitly declared application service from this component's runtime. */
239
+ protected requireService<TService>(key: ServiceKey<TService>): TService;
240
+ /** Read the immutable Capillary UI localization selected for this component's runtime. */
241
+ protected get localization(): CapillaryUiLocalization;
242
+ /** Resolve one Capillary UI-authored message with the runtime's English fallback. */
243
+ protected capillaryUiMessage<TKey extends keyof CapillaryUiMessageOverrides>(key: TKey): CapillaryUiMessage<TKey>;
244
+ listen<TEvent extends Event = Event>(target: EventTarget, type: string, listener: (event: TEvent) => void, options?: boolean | AddEventListenerOptions): this;
245
+ registerChild<TComponent extends Component>(component: TComponent): TComponent;
246
+ destroy(): void;
247
+ private validateRequiredServices;
248
+ private validateIslandAncestry;
249
+ private hasIslandDescendant;
250
+ onDestroy(): void;
251
+ private trackRenderRead;
252
+ private reconcileRenderReads;
253
+ }
254
+ export declare function isVNode(value: unknown): value is VNode;
255
+ export {};
256
+ //# sourceMappingURL=component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/Components/component.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { ReadableEmitter } from '@capillaryjs/capillary';
2
+ import type { Component, ComponentProps } from './component.js';
3
+ import type { CapillaryUiLayoutParticipantProps } from './layout/layoutTraits.js';
4
+ export interface ValueEmitter<TValue> extends ReadableEmitter<TValue, unknown> {
5
+ set(value: TValue, eventOrCause?: unknown): boolean;
6
+ }
7
+ export interface ValueControlProps<TValue> extends ComponentProps {
8
+ valueEmitter?: ValueEmitter<TValue>;
9
+ value?: TValue;
10
+ defaultValue?: TValue;
11
+ initialValue?: TValue;
12
+ }
13
+ export declare function controlId(prefix: string, provided?: string | number | null): string;
14
+ export declare function createValueEmitter<TValue>(component: Component, props: ValueControlProps<TValue>, fallback: TValue, purpose: string): ValueEmitter<TValue>;
15
+ export declare function assertEmitter<TValue = unknown>(value: unknown, name?: string): asserts value is ValueEmitter<TValue>;
16
+ export declare function classNames(...values: unknown[]): string;
17
+ export declare function componentClass(props: Pick<ComponentProps, 'class' | 'className'>): string;
18
+ /** Build the host class for a component that intentionally exposes allocation. */
19
+ export declare function layoutParticipantClass(props: Pick<ComponentProps, 'class' | 'className'> & CapillaryUiLayoutParticipantProps): string;
20
+ export declare function invoke<TArguments extends unknown[]>(callback: ((...args: TArguments) => void) | null | undefined, ...args: TArguments): void;
21
+ export declare function assertOptions<TOption>(options: unknown, name?: string): asserts options is TOption[];
22
+ export declare function describeState(value: unknown): string;
23
+ //# sourceMappingURL=controlUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controlUtils.d.ts","sourceRoot":"","sources":["../../src/Components/controlUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,eAAe,EAAC,MAAM,wBAAwB,CAAA;AAE3E,OAAO,KAAK,EAAC,SAAS,EAAE,cAAc,EAAC,MAAM,gBAAgB,CAAA;AAE7D,OAAO,KAAK,EAAC,iCAAiC,EAAC,MAAM,0BAA0B,CAAA;AAG/E,MAAM,WAAW,YAAY,CAAC,MAAM,CAAE,SAAQ,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1E,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;CACtD;AAED,MAAM,WAAW,iBAAiB,CAAC,MAAM,CAAE,SAAQ,cAAc;IAC7D,YAAY,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;CACxB;AAID,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,CAGnF;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EACrC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GAChB,YAAY,CAAC,MAAM,CAAC,CAWtB;AAED,wBAAgB,aAAa,CAAC,MAAM,GAAG,OAAO,EAC1C,KAAK,EAAE,OAAO,EACd,IAAI,SAAY,GACjB,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC,MAAM,CAAC,CAQvC;AAED,wBAAgB,UAAU,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAKvD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,WAAW,CAAC,GAAG,MAAM,CAEzF;AAED,kFAAkF;AAClF,wBAAgB,sBAAsB,CAClC,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,WAAW,CAAC,GAAG,iCAAiC,GACvF,MAAM,CAER;AAED,wBAAgB,MAAM,CAAC,UAAU,SAAS,OAAO,EAAE,EAC/C,QAAQ,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,EAC5D,GAAG,IAAI,EAAE,UAAU,GACpB,IAAI,CAIN;AAED,wBAAgB,aAAa,CAAC,OAAO,EACjC,OAAO,EAAE,OAAO,EAChB,IAAI,SAAY,GACjB,OAAO,CAAC,OAAO,IAAI,OAAO,EAAE,CAE9B;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGpD"}
@@ -0,0 +1,23 @@
1
+ import { Component } from '../component.js';
2
+ import type { ComponentProps, CapillaryUiChild } from '../component.js';
3
+ export interface DescriptionItemProps extends ComponentProps {
4
+ term: CapillaryUiChild;
5
+ value?: CapillaryUiChild;
6
+ }
7
+ /** A term/value group with standards-valid `dl` children. */
8
+ export declare class DescriptionItem extends Component<DescriptionItemProps> {
9
+ static liveProps: readonly string[];
10
+ render(): CapillaryUiChild;
11
+ }
12
+ export interface DescriptionListProps extends ComponentProps {
13
+ label?: string;
14
+ }
15
+ /** Semantic description-list container for compact record summaries. */
16
+ export declare class DescriptionList extends Component<DescriptionListProps> {
17
+ static liveProps: readonly string[];
18
+ render(): CapillaryUiChild;
19
+ static hostName: string;
20
+ static dependencies: (typeof DescriptionItem)[];
21
+ static css: string;
22
+ }
23
+ //# sourceMappingURL=descriptionList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"descriptionList.d.ts","sourceRoot":"","sources":["../../../src/Components/data/descriptionList.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAM,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,EAAC,cAAc,EAAE,gBAAgB,EAAC,MAAM,iBAAiB,CAAA;AAGrE,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IACxD,IAAI,EAAE,gBAAgB,CAAA;IACtB,KAAK,CAAC,EAAE,gBAAgB,CAAA;CAC3B;AAED,6DAA6D;AAC7D,qBAAa,eAAgB,SAAQ,SAAS,CAAC,oBAAoB,CAAC;IAChE,OAAgB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAK;IACjD,MAAM,IAAI,gBAAgB;CAO7B;AAED,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IACxD,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,wEAAwE;AACxE,qBAAa,eAAgB,SAAQ,SAAS,CAAC,oBAAoB,CAAC;IAChE,OAAgB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAK;IACjD,MAAM,IAAI,gBAAgB;IAO1B,OAAgB,QAAQ,SAAoB;IAE5C,MAAM,CAAC,YAAY,6BAAoB;IAEvC,MAAM,CAAC,GAAG,SAUT;CACJ"}
@@ -0,0 +1,38 @@
1
+ import { DerivedEmitter } from '@capillaryjs/capillary';
2
+ import type { ReadableEmitter } from '@capillaryjs/capillary';
3
+ import type { FilterModeValue } from '../../util/filterMode.js';
4
+ export type FilterOptionState = Readonly<Record<string, FilterModeValue>>;
5
+ export type FilterState = Readonly<Record<string, FilterOptionState>>;
6
+ export interface SerializedFilterState {
7
+ readonly version: 1;
8
+ readonly dimensions: Record<string, Record<string, FilterModeValue>>;
9
+ }
10
+ export interface FilterOptionDefinition<TItem> {
11
+ /** Stable persisted identity within its dimension. */
12
+ key: string;
13
+ matches: (item: TItem) => boolean;
14
+ }
15
+ export interface FilterDimensionDefinition<TItem> {
16
+ /** Stable persisted identity for the dimension. */
17
+ key: string;
18
+ options: readonly FilterOptionDefinition<TItem>[];
19
+ }
20
+ /**
21
+ * Test an item against semantic filter state.
22
+ *
23
+ * Dimensions combine with AND. Within one dimension, deny wins, every required
24
+ * option must match, and at least one preferred option must match when any are
25
+ * active. Unknown persisted dimensions and options are retained by
26
+ * serialization but do not constrain matching.
27
+ */
28
+ export declare function matchesFilterState<TItem>(item: TItem, state: FilterState, dimensions: readonly FilterDimensionDefinition<TItem>[]): boolean;
29
+ export declare function filterByState<TItem>(items: readonly TItem[], state: FilterState, dimensions: readonly FilterDimensionDefinition<TItem>[]): TItem[];
30
+ /** Derive a reusable predicate without giving Capillary UI ownership of persistence. */
31
+ export declare function deriveFilterPredicate<TItem>(state: ReadableEmitter<FilterState, unknown>, dimensions: readonly FilterDimensionDefinition<TItem>[], owner?: unknown): DerivedEmitter<(item: TItem) => boolean, readonly [ReadableEmitter<FilterState, unknown>]>;
32
+ /** Derive a filtered collection from application-owned items and filter state. */
33
+ export declare function deriveFilteredItems<TItem>(items: ReadableEmitter<readonly TItem[], unknown>, state: ReadableEmitter<FilterState, unknown>, dimensions: readonly FilterDimensionDefinition<TItem>[], owner?: unknown): DerivedEmitter<TItem[], readonly [ReadableEmitter<readonly TItem[], unknown>, ReadableEmitter<FilterState, unknown>]>;
34
+ /** Convert state to deterministic, versioned, plain JSON-compatible data. */
35
+ export declare function serializeFilterState(state: FilterState): SerializedFilterState;
36
+ /** Validate and restore versioned filter data. Unknown keys are preserved. */
37
+ export declare function parseFilterState(value: unknown): FilterState;
38
+ //# sourceMappingURL=filterState.d.ts.map