@infotrust/ui 0.0.0-stage → 0.30.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 (193) hide show
  1. package/LICENSE +24 -0
  2. package/NOTICE.md +37 -0
  3. package/README.md +53 -2
  4. package/dist/assistant-session-DP4_70Xk.js +1381 -0
  5. package/dist/command-Bjncx7YR.js +1279 -0
  6. package/dist/components/actions/ItActionMenu.vue.d.ts +24 -0
  7. package/dist/components/actions/ItDecisionToggle.vue.d.ts +22 -0
  8. package/dist/components/actions/ItIconButton.vue.d.ts +24 -0
  9. package/dist/components/actions/ItLinkButton.vue.d.ts +17 -0
  10. package/dist/components/actions/action-menu.d.ts +19 -0
  11. package/dist/components/charts/ItBarChart.vue.d.ts +121 -0
  12. package/dist/components/charts/ItCalendarChart.vue.d.ts +80 -0
  13. package/dist/components/charts/ItChartLegend.vue.d.ts +47 -0
  14. package/dist/components/charts/ItChartTable.vue.d.ts +16 -0
  15. package/dist/components/charts/ItChartTooltip.vue.d.ts +52 -0
  16. package/dist/components/charts/ItDonutChart.vue.d.ts +79 -0
  17. package/dist/components/charts/ItProportionBar.vue.d.ts +42 -0
  18. package/dist/components/charts/ItSparkline.vue.d.ts +42 -0
  19. package/dist/components/charts/ItTrendChart.vue.d.ts +80 -0
  20. package/dist/components/charts/chart.d.ts +84 -0
  21. package/dist/components/charts/selection.d.ts +14 -0
  22. package/dist/components/charts/skeleton.d.ts +16 -0
  23. package/dist/components/command/ItAssistantPanel.vue.d.ts +56 -0
  24. package/dist/components/command/ItAssistantThread.vue.d.ts +73 -0
  25. package/dist/components/command/ItCommandPalette.vue.d.ts +102 -0
  26. package/dist/components/command/ItMarkdown.vue.d.ts +12 -0
  27. package/dist/components/command/assistant-session.d.ts +26 -0
  28. package/dist/components/command/command.d.ts +127 -0
  29. package/dist/components/command/markdown.d.ts +55 -0
  30. package/dist/components/content/ItDocsArticle.vue.d.ts +18 -0
  31. package/dist/components/content/ItDocsLayout.vue.d.ts +29 -0
  32. package/dist/components/content/ItDocsPager.vue.d.ts +12 -0
  33. package/dist/components/content/ItProse.vue.d.ts +18 -0
  34. package/dist/components/content/docs.d.ts +23 -0
  35. package/dist/components/dag/ItDagCanvas.vue.d.ts +143 -0
  36. package/dist/components/dag/ItDagControls.vue.d.ts +2 -0
  37. package/dist/components/dag/ItDagEdge.vue.d.ts +21 -0
  38. package/dist/components/dag/ItDagLibrary.vue.d.ts +19 -0
  39. package/dist/components/dag/ItDagNode.vue.d.ts +20 -0
  40. package/dist/components/dag/dag.d.ts +182 -0
  41. package/dist/components/dag/history.d.ts +51 -0
  42. package/dist/components/dag/layout.d.ts +54 -0
  43. package/dist/components/dag/route.d.ts +24 -0
  44. package/dist/components/data/DataError.vue.d.ts +12 -0
  45. package/dist/components/data/ItChangeList.vue.d.ts +48 -0
  46. package/dist/components/data/ItCodeBlock.vue.d.ts +23 -0
  47. package/dist/components/data/ItDataTable.vue.d.ts +135 -0
  48. package/dist/components/data/ItDataToolbar.vue.d.ts +57 -0
  49. package/dist/components/data/ItDescriptionList.vue.d.ts +30 -0
  50. package/dist/components/data/ItEmptyState.vue.d.ts +22 -0
  51. package/dist/components/data/ItKpiCard.vue.d.ts +89 -0
  52. package/dist/components/data/ItKpiDetail.vue.d.ts +40 -0
  53. package/dist/components/data/ItKpiGrid.vue.d.ts +19 -0
  54. package/dist/components/data/ItObjectName.vue.d.ts +64 -0
  55. package/dist/components/data/ItPaginator.vue.d.ts +46 -0
  56. package/dist/components/data/ItResourceList.vue.d.ts +39 -0
  57. package/dist/components/data/ItResourceListItem.vue.d.ts +40 -0
  58. package/dist/components/data/ItSkeleton.vue.d.ts +14 -0
  59. package/dist/components/data/ItTablePaginator.vue.d.ts +34 -0
  60. package/dist/components/data/ItTime.vue.d.ts +13 -0
  61. package/dist/components/data/ItTreeTable.vue.d.ts +109 -0
  62. package/dist/components/data/TableChevron.vue.d.ts +8 -0
  63. package/dist/components/data/TableExpansion.vue.d.ts +22 -0
  64. package/dist/components/data/column-sizing.d.ts +31 -0
  65. package/dist/components/data/data-table.d.ts +15 -0
  66. package/dist/components/data/highlight-worker.d.ts +1 -0
  67. package/dist/components/data/highlight.d.ts +3 -0
  68. package/dist/components/data/kpi-placement.d.ts +40 -0
  69. package/dist/components/data/kpi.d.ts +16 -0
  70. package/dist/components/data/sticky-header.d.ts +9 -0
  71. package/dist/components/data/table-skeleton.d.ts +11 -0
  72. package/dist/components/data/table-source.d.ts +77 -0
  73. package/dist/components/data/tree-table-public.d.ts +17 -0
  74. package/dist/components/data/tree-table.d.ts +30 -0
  75. package/dist/components/feedback/ItCallout.vue.d.ts +25 -0
  76. package/dist/components/feedback/ItConfirmHost.vue.d.ts +2 -0
  77. package/dist/components/feedback/ItOverlayHost.vue.d.ts +2 -0
  78. package/dist/components/feedback/ItProgressBar.vue.d.ts +19 -0
  79. package/dist/components/feedback/ItToastHost.vue.d.ts +2 -0
  80. package/dist/components/forms/FieldClearButton.vue.d.ts +11 -0
  81. package/dist/components/forms/ItAutoComplete.vue.d.ts +69 -0
  82. package/dist/components/forms/ItCheckboxGroup.vue.d.ts +27 -0
  83. package/dist/components/forms/ItChipInput.vue.d.ts +32 -0
  84. package/dist/components/forms/ItCodeEditor.vue.d.ts +64 -0
  85. package/dist/components/forms/ItDatePicker.vue.d.ts +35 -0
  86. package/dist/components/forms/ItFileDrop.vue.d.ts +47 -0
  87. package/dist/components/forms/ItFilterChip.vue.d.ts +13 -0
  88. package/dist/components/forms/ItFilterMenu.vue.d.ts +37 -0
  89. package/dist/components/forms/ItFilterPopover.vue.d.ts +44 -0
  90. package/dist/components/forms/ItFormActions.vue.d.ts +14 -0
  91. package/dist/components/forms/ItFormField.vue.d.ts +44 -0
  92. package/dist/components/forms/ItFormRows.vue.d.ts +50 -0
  93. package/dist/components/forms/ItFormSection.vue.d.ts +28 -0
  94. package/dist/components/forms/ItLabelCell.vue.d.ts +42 -0
  95. package/dist/components/forms/ItLabelPicker.vue.d.ts +34 -0
  96. package/dist/components/forms/ItMultiSelect.vue.d.ts +53 -0
  97. package/dist/components/forms/ItOptionCardGroup.vue.d.ts +35 -0
  98. package/dist/components/forms/ItRadioGroup.vue.d.ts +29 -0
  99. package/dist/components/forms/ItSearchInput.vue.d.ts +25 -0
  100. package/dist/components/forms/ItSegmentedControl.vue.d.ts +25 -0
  101. package/dist/components/forms/ItSelect.vue.d.ts +50 -0
  102. package/dist/components/forms/ItSwitch.vue.d.ts +31 -0
  103. package/dist/components/forms/ItTabs.vue.d.ts +27 -0
  104. package/dist/components/forms/OptionSourceSlot.vue.d.ts +13 -0
  105. package/dist/components/forms/choice.d.ts +24 -0
  106. package/dist/components/forms/code-editor.d.ts +17 -0
  107. package/dist/components/forms/field-context.d.ts +39 -0
  108. package/dist/components/forms/file-drop.d.ts +19 -0
  109. package/dist/components/forms/form-errors.d.ts +7 -0
  110. package/dist/components/forms/form-rows.d.ts +8 -0
  111. package/dist/components/forms/option-source.d.ts +39 -0
  112. package/dist/components/forms/virtual-options.d.ts +12 -0
  113. package/dist/components/layout/ItBreadcrumb.vue.d.ts +12 -0
  114. package/dist/components/layout/ItDetailSection.vue.d.ts +21 -0
  115. package/dist/components/layout/ItPage.vue.d.ts +44 -0
  116. package/dist/components/layout/ItPanel.vue.d.ts +47 -0
  117. package/dist/components/layout/ItSectionNav.vue.d.ts +43 -0
  118. package/dist/components/layout/ItWizard.vue.d.ts +57 -0
  119. package/dist/components/layout/ItWizardSteps.vue.d.ts +15 -0
  120. package/dist/components/layout/SectionNavLinks.vue.d.ts +15 -0
  121. package/dist/components/layout/panel.d.ts +18 -0
  122. package/dist/components/layout/section-nav.d.ts +17 -0
  123. package/dist/components/layout/wizard.d.ts +13 -0
  124. package/dist/components/logic/ItFieldPicker.vue.d.ts +40 -0
  125. package/dist/components/logic/ItLogicBuilder.vue.d.ts +58 -0
  126. package/dist/components/logic/ItLogicCondition.vue.d.ts +9 -0
  127. package/dist/components/logic/ItLogicGroup.vue.d.ts +9 -0
  128. package/dist/components/logic/ItOperatorSelect.vue.d.ts +25 -0
  129. package/dist/components/logic/ItValueInput.vue.d.ts +29 -0
  130. package/dist/components/logic/logic.d.ts +263 -0
  131. package/dist/components/logic/region.d.ts +44 -0
  132. package/dist/components/overlays/ItDrawer.vue.d.ts +48 -0
  133. package/dist/components/overlays/ItModal.vue.d.ts +53 -0
  134. package/dist/components/overlays/escape-stack.d.ts +7 -0
  135. package/dist/components/overlays/modal.d.ts +23 -0
  136. package/dist/components/shell/ItAppShell.vue.d.ts +68 -0
  137. package/dist/components/shell/ItCommandTrigger.vue.d.ts +17 -0
  138. package/dist/components/shell/ItOrgSwitcher.vue.d.ts +26 -0
  139. package/dist/components/shell/ItShellMenuItem.vue.d.ts +18 -0
  140. package/dist/components/shell/ItShellNavBranch.vue.d.ts +15 -0
  141. package/dist/components/shell/ItShellNavLink.vue.d.ts +18 -0
  142. package/dist/components/shell/ItShellSidebarButton.vue.d.ts +15 -0
  143. package/dist/components/shell/ItThemeControl.vue.d.ts +13 -0
  144. package/dist/components/shell/org.d.ts +36 -0
  145. package/dist/components/shell/types.d.ts +67 -0
  146. package/dist/components/status/ItBadge.vue.d.ts +12 -0
  147. package/dist/components/status/ItEntityTypeChip.vue.d.ts +14 -0
  148. package/dist/components/status/ItLabelChip.vue.d.ts +21 -0
  149. package/dist/components/status/ItLabelChipList.vue.d.ts +27 -0
  150. package/dist/components/status/ItPlatformChip.vue.d.ts +20 -0
  151. package/dist/components/status/ItPlatformLogo.vue.d.ts +17 -0
  152. package/dist/components/status/ItSeverityBadge.vue.d.ts +9 -0
  153. package/dist/components/status/ItStatus.vue.d.ts +12 -0
  154. package/dist/components.css +1 -0
  155. package/dist/composables/iconMotion.d.ts +12 -0
  156. package/dist/composables/ripple.d.ts +3 -0
  157. package/dist/composables/useItConfirm.d.ts +16 -0
  158. package/dist/composables/useItCopy.d.ts +4 -0
  159. package/dist/composables/useItCursorPager.d.ts +50 -0
  160. package/dist/composables/useItTheme.d.ts +26 -0
  161. package/dist/composables/useItToast.d.ts +24 -0
  162. package/dist/dag.d.ts +5 -0
  163. package/dist/dag.js +1754 -0
  164. package/dist/dev-D7A7MIn_.js +1264 -0
  165. package/dist/directives/truncate.d.ts +29 -0
  166. package/dist/elk-worker.min-O2A22ecl.js +6321 -0
  167. package/dist/format/index.d.ts +53 -0
  168. package/dist/highlight-worker-DIrLC7a2.js +25 -0
  169. package/dist/index.d.ts +147 -0
  170. package/dist/index.js +11989 -0
  171. package/dist/licenses/@vue-flow__core.LICENSE +20 -0
  172. package/dist/licenses/elkjs.LICENSE.md +263 -0
  173. package/dist/licenses/highlight.js.LICENSE +29 -0
  174. package/dist/licenses/vue-sonner.LICENSE +21 -0
  175. package/dist/platform-art-Bt1CnaKE.js +86 -0
  176. package/dist/plugin.d.ts +69 -0
  177. package/dist/registries/entity-type.d.ts +18 -0
  178. package/dist/registries/platform-art.d.ts +2 -0
  179. package/dist/registries/platform-marks.d.ts +12 -0
  180. package/dist/registries/platform.d.ts +22 -0
  181. package/dist/registries/severity.d.ts +23 -0
  182. package/dist/registries/status.d.ts +13 -0
  183. package/dist/styles.css +26 -0
  184. package/dist/text-nGkJYA88.js +470 -0
  185. package/dist/utils/chip-truncation.d.ts +8 -0
  186. package/dist/utils/chunk-recovery.d.ts +24 -0
  187. package/dist/utils/dev.d.ts +2 -0
  188. package/dist/utils/listeners.d.ts +10 -0
  189. package/dist/utils/router.d.ts +9 -0
  190. package/dist/utils/scroll.d.ts +8 -0
  191. package/dist/utils/select.d.ts +21 -0
  192. package/dist/utils/text.d.ts +6 -0
  193. package/package.json +92 -3
@@ -0,0 +1,40 @@
1
+ import { type ItLogicField } from './logic';
2
+ declare const _default: import("vue").DefineComponent<{
3
+ modelValue: string | null;
4
+ fields?: readonly ItLogicField[];
5
+ /** Field keys picked recently, newest first. Shown in a "Recent" group. */
6
+ recent?: readonly string[];
7
+ /** Accessible name. */
8
+ label?: string;
9
+ placeholder?: string;
10
+ size?: "sm" | "md";
11
+ disabled?: boolean;
12
+ invalid?: boolean;
13
+ describedBy?: string;
14
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
15
+ "update:modelValue": (key: string | null) => any;
16
+ }, string, import("vue").PublicProps, Readonly<{
17
+ modelValue: string | null;
18
+ fields?: readonly ItLogicField[];
19
+ /** Field keys picked recently, newest first. Shown in a "Recent" group. */
20
+ recent?: readonly string[];
21
+ /** Accessible name. */
22
+ label?: string;
23
+ placeholder?: string;
24
+ size?: "sm" | "md";
25
+ disabled?: boolean;
26
+ invalid?: boolean;
27
+ describedBy?: string;
28
+ }> & Readonly<{
29
+ "onUpdate:modelValue"?: ((key: string | null) => any) | undefined;
30
+ }>, {
31
+ label: string;
32
+ invalid: boolean;
33
+ disabled: boolean;
34
+ size: "sm" | "md";
35
+ placeholder: string;
36
+ describedBy: string;
37
+ fields: readonly ItLogicField[];
38
+ recent: readonly string[];
39
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
40
+ export default _default;
@@ -0,0 +1,58 @@
1
+ import { type ItLogicContext, type ItLogicField, type ItLogicGroup as ItLogicGroupModel, type ItLogicIssue, type ItLogicJoinChoice, type ItLogicGroupScope, type ItLogicOperator, type ItLogicRowScope, type ItLogicValueScope } from './logic';
2
+ type __VLS_Props = {
3
+ modelValue: ItLogicGroupModel;
4
+ fields: readonly ItLogicField[];
5
+ /** Extra or replacement operators; a default with the same key is replaced in place. */
6
+ operators?: readonly ItLogicOperator[];
7
+ /** Group levels allowed below the root. 0 = conditions only. */
8
+ maxDepth?: number;
9
+ /** Join choices group headers offer. `none` = none of the following (NOT). */
10
+ joins?: readonly ItLogicJoinChoice[];
11
+ /** First word of the root header: "Match", "One push must match". */
12
+ lead?: string;
13
+ /** Field keys picked recently, newest first, for the picker's "Recent" group. */
14
+ recentFields?: readonly string[];
15
+ /** Show every issue now, inline and as a summary. Set after a submit attempt. */
16
+ showErrors?: boolean;
17
+ /** Override validation when the consuming engine has different semantics. */
18
+ validate?: (root: ItLogicGroupModel, context: ItLogicContext) => ItLogicIssue[];
19
+ readonly?: boolean;
20
+ disabled?: boolean;
21
+ };
22
+ type __VLS_Slots = {
23
+ 'row-start'?: (scope: ItLogicRowScope) => unknown;
24
+ 'row-end'?: (scope: ItLogicRowScope) => unknown;
25
+ 'group-head'?: (scope: ItLogicGroupScope) => unknown;
26
+ 'group-foot'?: (scope: ItLogicGroupScope) => unknown;
27
+ empty?: (scope: ItLogicGroupScope) => unknown;
28
+ [valueKind: `value-${string}`]: ((scope: ItLogicValueScope) => unknown) | undefined;
29
+ };
30
+ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {
31
+ /** Every current issue. */
32
+ issues: import("vue").ComputedRef<ItLogicIssue[]>;
33
+ valid: import("vue").ComputedRef<boolean>;
34
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
35
+ "update:modelValue": (value: ItLogicGroupModel) => any;
36
+ "update:valid": (valid: boolean) => any;
37
+ issues: (issues: ItLogicIssue[]) => any;
38
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
39
+ "onUpdate:modelValue"?: ((value: ItLogicGroupModel) => any) | undefined;
40
+ "onUpdate:valid"?: ((valid: boolean) => any) | undefined;
41
+ onIssues?: ((issues: ItLogicIssue[]) => any) | undefined;
42
+ }>, {
43
+ disabled: boolean;
44
+ operators: readonly ItLogicOperator[];
45
+ readonly: boolean;
46
+ lead: string;
47
+ maxDepth: number;
48
+ joins: readonly ItLogicJoinChoice[];
49
+ recentFields: readonly string[];
50
+ showErrors: boolean;
51
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
52
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
53
+ export default _default;
54
+ type __VLS_WithSlots<T, S> = T & {
55
+ new (): {
56
+ $slots: S;
57
+ };
58
+ };
@@ -0,0 +1,9 @@
1
+ import { type ItLogicCondition } from './logic';
2
+ type __VLS_Props = {
3
+ condition: ItLogicCondition;
4
+ depth: number;
5
+ index: number;
6
+ siblings: number;
7
+ };
8
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
9
+ export default _default;
@@ -0,0 +1,9 @@
1
+ import { type ItLogicGroup } from './logic';
2
+ type __VLS_Props = {
3
+ group: ItLogicGroup;
4
+ depth: number;
5
+ index: number;
6
+ siblings: number;
7
+ };
8
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
9
+ export default _default;
@@ -0,0 +1,25 @@
1
+ import { type ItLogicField, type ItLogicOperator } from './logic';
2
+ type __VLS_Props = {
3
+ modelValue: string | null;
4
+ field: ItLogicField | undefined;
5
+ operators?: readonly ItLogicOperator[];
6
+ /** Accessible name. */
7
+ label?: string;
8
+ size?: 'sm' | 'md';
9
+ disabled?: boolean;
10
+ invalid?: boolean;
11
+ describedBy?: string;
12
+ };
13
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
14
+ "update:modelValue": (key: string) => any;
15
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
16
+ "onUpdate:modelValue"?: ((key: string) => any) | undefined;
17
+ }>, {
18
+ label: string;
19
+ invalid: boolean;
20
+ disabled: boolean;
21
+ size: "sm" | "md";
22
+ operators: readonly ItLogicOperator[];
23
+ describedBy: string;
24
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
25
+ export default _default;
@@ -0,0 +1,29 @@
1
+ import { type ItLogicField, type ItLogicOperator } from './logic';
2
+ type __VLS_Props = {
3
+ modelValue: unknown;
4
+ field: ItLogicField | undefined;
5
+ /** Operator key. */
6
+ operator: string | null;
7
+ operators?: readonly ItLogicOperator[];
8
+ /** Available fields for a field reference. Defaults to the builder's fields. */
9
+ fields?: readonly ItLogicField[];
10
+ /** Accessible name; parts of compound editors append "minimum", "unit", … */
11
+ label?: string;
12
+ size?: 'sm' | 'md';
13
+ disabled?: boolean;
14
+ invalid?: boolean;
15
+ describedBy?: string;
16
+ };
17
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
18
+ "update:modelValue": (value: unknown) => any;
19
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
20
+ "onUpdate:modelValue"?: ((value: unknown) => any) | undefined;
21
+ }>, {
22
+ label: string;
23
+ invalid: boolean;
24
+ disabled: boolean;
25
+ size: "sm" | "md";
26
+ operators: readonly ItLogicOperator[];
27
+ describedBy: string;
28
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
29
+ export default _default;
@@ -0,0 +1,263 @@
1
+ import type { ComputedRef, InjectionKey, Slots } from 'vue';
2
+ export type ItLogicJoin = 'all' | 'any';
3
+ /** The three choices a group header offers. `none` is `any` + `negate`. */
4
+ export type ItLogicJoinChoice = 'all' | 'any' | 'none';
5
+ /** For fields that hold several values (every tag in a container): which of them must match. */
6
+ export type ItLogicQuantifier = 'every' | 'any' | 'none';
7
+ export interface ItLogicCondition {
8
+ id: string;
9
+ /** `ItLogicField.key`, or null until the user picks one. */
10
+ field: string | null;
11
+ /** `ItLogicOperator.key`, or null until a field is picked. */
12
+ operator: string | null;
13
+ value: unknown;
14
+ /** Only for fields with `multiple`. Default `every`. */
15
+ quantifier?: ItLogicQuantifier;
16
+ /** App-owned data the builder carries untouched (state for row regions). */
17
+ meta?: Record<string, unknown>;
18
+ }
19
+ export interface ItLogicGroup {
20
+ id: string;
21
+ join: ItLogicJoin;
22
+ /** Negates the whole group. With `join: 'any'` this is "none of the following". */
23
+ negate?: boolean;
24
+ children: ItLogicNode[];
25
+ /** App-owned data the builder carries untouched (state for group regions). */
26
+ meta?: Record<string, unknown>;
27
+ }
28
+ export type ItLogicNode = ItLogicCondition | ItLogicGroup;
29
+ export type ItLogicFieldType = 'string' | 'number' | 'date' | 'boolean' | 'enum';
30
+ export interface ItLogicOption {
31
+ value: string | number | boolean;
32
+ label: string;
33
+ }
34
+ export interface ItLogicField {
35
+ /** Stable id stored in conditions. */
36
+ key: string;
37
+ /** Sentence-case noun phrase: "Container name", "Last published". */
38
+ label: string;
39
+ type: ItLogicFieldType;
40
+ /** Picker group ("Container", "Tags", "Event params"). */
41
+ category?: string;
42
+ /** One line shown under the label in the picker. */
43
+ description?: string;
44
+ /** Choices for `enum` fields; suggestions for `string` lists. */
45
+ options?: ItLogicOption[];
46
+ /** The field holds several values; the row gets an every/any/none quantifier. */
47
+ multiple?: boolean;
48
+ /** Listed first in the picker; the builder asks for one condition on it. */
49
+ required?: boolean;
50
+ /** Limit the operators offered (keys); default: every operator for the type. */
51
+ operators?: string[];
52
+ /** Placeholder for text and number values ("USD"). */
53
+ placeholder?: string;
54
+ }
55
+ /**
56
+ * What a value editor edits. `scalar` and `list` resolve per field type:
57
+ * scalar → text | number | date | boolean | option, list → options (enum) | list.
58
+ * Any other string is a custom kind, rendered by the builder's `value-<kind>` slot.
59
+ */
60
+ export type ItLogicValueKind = 'none' | 'scalar' | 'list' | 'text' | 'pattern' | 'number' | 'number-range' | 'date' | 'duration' | 'duration-ago' | 'boolean' | 'option' | 'options' | 'field' | (string & {});
61
+ /** A reference to another field, stored independently of its display label. */
62
+ export interface ItLogicFieldValue {
63
+ field: string | null;
64
+ }
65
+ export interface ItLogicOperator {
66
+ key: string;
67
+ /** Plain words, the same in the row and the summary: "is", "contains", "is more than". */
68
+ label: string;
69
+ /** Field types the operator applies to. `'*'` = all. */
70
+ types: readonly ItLogicFieldType[] | '*';
71
+ value: ItLogicValueKind;
72
+ /** Starting value for custom kinds. */
73
+ defaultValue?: () => unknown;
74
+ /** Return a message ("Enter a value.") when the value is unusable, else null. Custom kinds only; built-in kinds validate themselves. */
75
+ validate?: (value: unknown, field: ItLogicField) => string | null;
76
+ /** Summary words for the value ("Accept all or GPC"). Custom kinds only. Return '' when incomplete. */
77
+ describe?: (value: unknown, field: ItLogicField) => string;
78
+ }
79
+ export interface ItLogicDuration {
80
+ amount: number | null;
81
+ unit: 'minutes' | 'hours' | 'days' | 'months';
82
+ }
83
+ /** The default operator registry, in the order the operator select lists them. */
84
+ export declare const IT_LOGIC_OPERATORS: readonly ItLogicOperator[];
85
+ /** Defaults plus app operators. An app operator with a default's key replaces it in place. */
86
+ export declare function mergeOperators(custom?: readonly ItLogicOperator[]): ItLogicOperator[];
87
+ /** Operators a field offers, in registry order. */
88
+ export declare function operatorsFor(field: ItLogicField | undefined, registry?: readonly ItLogicOperator[]): ItLogicOperator[];
89
+ /** The concrete editor kind for an operator on a field. */
90
+ export declare function resolveValueKind(operator: ItLogicOperator | undefined, field: ItLogicField | undefined): ItLogicValueKind;
91
+ /** The empty value an editor of this kind starts with. */
92
+ export declare function defaultValueFor(kind: ItLogicValueKind, operator?: ItLogicOperator): unknown;
93
+ /** The muted type word the field picker shows next to a field. */
94
+ export declare function fieldTypeLabel(field: ItLogicField): string;
95
+ /** A short id, unique within the page. Apps that persist trees may pass their own ids. */
96
+ export declare function createLogicId(prefix?: string): string;
97
+ export declare function createCondition(init?: Partial<Omit<ItLogicCondition, 'id'>> & {
98
+ id?: string;
99
+ }): ItLogicCondition;
100
+ export declare function createGroup(init?: Partial<Omit<ItLogicGroup, 'id'>> & {
101
+ id?: string;
102
+ }): ItLogicGroup;
103
+ export declare function isLogicGroup(node: ItLogicNode | null | undefined): node is ItLogicGroup;
104
+ export declare function joinChoice(group: ItLogicGroup): ItLogicJoinChoice | 'not-all';
105
+ export declare function applyJoinChoice(group: ItLogicGroup, choice: ItLogicJoinChoice | 'not-all'): ItLogicGroup;
106
+ export interface ItLogicLocation {
107
+ node: ItLogicNode;
108
+ parent: ItLogicGroup | null;
109
+ index: number;
110
+ /** 0 for the root group, 1 for its children, … */
111
+ depth: number;
112
+ }
113
+ export declare function findNode(root: ItLogicGroup, id: string): ItLogicLocation | null;
114
+ /** Every condition in the tree, depth first. */
115
+ export declare function listConditions(root: ItLogicGroup): ItLogicCondition[];
116
+ /** True when the tree has no conditions at all (empty groups do not count). */
117
+ export declare function isEmpty(root: ItLogicGroup): boolean;
118
+ /** How many group levels sit below `group` (0 for a group of only conditions). */
119
+ export declare function groupHeight(group: ItLogicGroup): number;
120
+ /** Replace the node with `id` by `fn(node)`. Returns the same root when the id is unknown. */
121
+ export declare function updateNode<T extends ItLogicNode>(root: ItLogicGroup, id: string, fn: (node: T) => ItLogicNode): ItLogicGroup;
122
+ /** Remove a node. The root itself cannot be removed. */
123
+ export declare function removeNode(root: ItLogicGroup, id: string): ItLogicGroup;
124
+ /** Insert `node` into the group `groupId` at `index` (default: the end). */
125
+ export declare function insertNode(root: ItLogicGroup, groupId: string, node: ItLogicNode, index?: number): ItLogicGroup;
126
+ /** Move a node up (-1) or down (+1) among its siblings. */
127
+ export declare function moveNode(root: ItLogicGroup, id: string, delta: -1 | 1): ItLogicGroup;
128
+ /** A deep copy with fresh ids. */
129
+ export declare function cloneWithNewIds<T extends ItLogicNode>(node: T): T;
130
+ /** Insert a copy of the node right after it. */
131
+ export declare function duplicateNode(root: ItLogicGroup, id: string): ItLogicGroup;
132
+ /** Replace a node with a new group that contains it. */
133
+ export declare function wrapInGroup(root: ItLogicGroup, id: string, join?: ItLogicJoin): ItLogicGroup;
134
+ /**
135
+ * Point a condition at a new field. The operator survives when the new field
136
+ * offers it, and the value survives when it edits the same kind of value
137
+ * ("is USD" moves from one text field to another; it never becomes a number,
138
+ * and a choice survives only if the new field has that choice). Otherwise the
139
+ * condition takes the field's first operator and an empty value.
140
+ */
141
+ export declare function setConditionField(condition: ItLogicCondition, field: ItLogicField | undefined, context: ItLogicContext): ItLogicCondition;
142
+ /**
143
+ * Change a condition's operator. The value survives when the new operator
144
+ * edits the same kind of value; scalar ↔ list converts ("USD" ↔ ["USD"]);
145
+ * anything else starts empty.
146
+ */
147
+ export declare function setConditionOperator(condition: ItLogicCondition, operatorKey: string, field: ItLogicField | undefined, registry?: readonly ItLogicOperator[]): ItLogicCondition;
148
+ /** Set an app-owned meta key on a node. */
149
+ export declare function setNodeMeta(root: ItLogicGroup, id: string, patch: Record<string, unknown>): ItLogicGroup;
150
+ /** `empty` = the root has no children; `group` = a nested group has none. */
151
+ export type ItLogicIssueKind = 'field' | 'operator' | 'value' | 'invalid' | 'group' | 'empty' | 'required';
152
+ export interface ItLogicIssue {
153
+ /** The node the issue belongs to (the root for builder-level issues). */
154
+ id: string;
155
+ kind: ItLogicIssueKind;
156
+ /** What to do, as a sentence: "Enter a value." */
157
+ message: string;
158
+ }
159
+ export interface ItLogicContext {
160
+ fields: readonly ItLogicField[];
161
+ operators?: readonly ItLogicOperator[];
162
+ }
163
+ /** Issues for one condition, most important first. Empty when the condition is complete. */
164
+ export declare function validateCondition(condition: ItLogicCondition, context: ItLogicContext): ItLogicIssue[];
165
+ /** Every issue in the tree: incomplete conditions, empty groups, missing required fields. */
166
+ export declare function validate(root: ItLogicGroup, context: ItLogicContext): ItLogicIssue[];
167
+ /** One sentence for the whole builder: "2 conditions need a value and 1 group is empty." */
168
+ export declare function summarizeIssues(issues: readonly ItLogicIssue[]): string;
169
+ /** A piece of a condition sentence, used by builder rows and descriptions. */
170
+ export interface ItLogicToken {
171
+ kind: 'field' | 'operator' | 'value' | 'join' | 'text' | 'missing' | 'open' | 'close';
172
+ text: string;
173
+ }
174
+ export interface ItLogicSummaryOptions {
175
+ /**
176
+ * Rewrite one condition's tokens, e.g. to add a row region's state
177
+ * ("must not fire"). Receives the default tokens; return new ones.
178
+ */
179
+ condition?: (condition: ItLogicCondition, tokens: ItLogicToken[]) => ItLogicToken[];
180
+ }
181
+ /** "2026-10-09" → "Oct 9" via the shared formatter, read as a local calendar date. */
182
+ export declare function formatLogicDate(value: unknown): string;
183
+ /** The words for a value, or '' when it is incomplete. */
184
+ export declare function describeValue(kind: ItLogicValueKind, value: unknown, field: ItLogicField, operator?: ItLogicOperator, fields?: readonly ItLogicField[]): string;
185
+ /** Tokens for one condition: field, operator, value (missing parts as muted prompts). */
186
+ export declare function conditionTokens(condition: ItLogicCondition, context: ItLogicContext): ItLogicToken[];
187
+ /** Tokens for one child of a group (a condition, or a nested group). */
188
+ export declare function nodeTokens(node: ItLogicNode, context: ItLogicContext, options?: ItLogicSummaryOptions): ItLogicToken[];
189
+ /**
190
+ * Tokens for a group. A nested group with several children is parenthesized.
191
+ * A negated group reads "not (A)" with one child and "none of (A, B)" /
192
+ * "not all of (A, B)" with several.
193
+ */
194
+ export declare function groupTokens(group: ItLogicGroup, context: ItLogicContext, options?: ItLogicSummaryOptions, nested?: boolean): ItLogicToken[];
195
+ /** Join tokens into text, without spaces before commas and inside parentheses. */
196
+ export declare function tokensToText(tokens: readonly ItLogicToken[]): string;
197
+ /** The whole tree as one plain-English sentence, with the same words the rows use. */
198
+ export declare function summarize(root: ItLogicGroup, context: ItLogicContext, options?: ItLogicSummaryOptions & {
199
+ lead?: string;
200
+ }): string;
201
+ /** One condition as text, for accessible names: "Container name contains “Prod”". */
202
+ export declare function summarizeCondition(condition: ItLogicCondition, context: ItLogicContext): string;
203
+ /** A group's header in words: "Match any of the following". */
204
+ export declare function joinSentence(group: ItLogicGroup, lead?: string): string;
205
+ /** Scope of the `row-start` and `row-end` regions. */
206
+ export interface ItLogicRowScope {
207
+ condition: ItLogicCondition;
208
+ field: ItLogicField | undefined;
209
+ depth: number;
210
+ index: number;
211
+ readonly: boolean;
212
+ /** Store app state on the condition (`condition.meta`). */
213
+ setMeta: (patch: Record<string, unknown>) => void;
214
+ }
215
+ /** Scope of the `group-head`, `group-foot`, and `empty` regions. */
216
+ export interface ItLogicGroupScope {
217
+ group: ItLogicGroup;
218
+ depth: number;
219
+ index: number;
220
+ readonly: boolean;
221
+ addCondition: () => void;
222
+ /** Store app state on the group (`group.meta`). */
223
+ setMeta: (patch: Record<string, unknown>) => void;
224
+ }
225
+ /** Scope of a `value-<kind>` region (a custom operator's value editor). */
226
+ export interface ItLogicValueScope {
227
+ value: unknown;
228
+ setValue: (value: unknown) => void;
229
+ field: ItLogicField | undefined;
230
+ operator: ItLogicOperator | undefined;
231
+ invalid: boolean;
232
+ /** Accessible name for the control: "Value for Tag name". */
233
+ label: string;
234
+ describedBy: string | undefined;
235
+ disabled: boolean;
236
+ }
237
+ export interface ItLogicBuilderState {
238
+ fields: ComputedRef<readonly ItLogicField[]>;
239
+ operators: ComputedRef<readonly ItLogicOperator[]>;
240
+ context: ComputedRef<ItLogicContext>;
241
+ root: ComputedRef<ItLogicGroup>;
242
+ maxDepth: ComputedRef<number>;
243
+ readonly: ComputedRef<boolean>;
244
+ disabled: ComputedRef<boolean>;
245
+ recentFields: ComputedRef<readonly string[]>;
246
+ joins: ComputedRef<readonly ItLogicJoinChoice[]>;
247
+ lead: ComputedRef<string>;
248
+ /** Issues per node id. */
249
+ issues: ComputedRef<Map<string, ItLogicIssue[]>>;
250
+ /** Inline issues show once a row was left, or after `showErrors`. */
251
+ shouldShowIssues: (id: string) => boolean;
252
+ touch: (id: string) => void;
253
+ /** Replace the root (v-model). */
254
+ commit: (root: ItLogicGroup, announcement?: string) => void;
255
+ announce: (message: string) => void;
256
+ /** Focus the first control of a node after the next render. */
257
+ focusNode: (id: string) => void;
258
+ /** Remove a node, announce it, and move focus to its neighbour (or the group's add button). */
259
+ remove: (id: string, announcement: string) => void;
260
+ /** The builder's slots, so nested parts can render its regions. */
261
+ slots: Slots;
262
+ }
263
+ export declare const IT_LOGIC_BUILDER: InjectionKey<ItLogicBuilderState>;
@@ -0,0 +1,44 @@
1
+ import { type PropType, type VNode } from 'vue';
2
+ /** True when slot output contains something visible (not only comments or blank text). */
3
+ export declare function hasVisibleContent(nodes: readonly VNode[] | undefined): boolean;
4
+ export declare const ItLogicRegion: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
5
+ name: {
6
+ type: StringConstructor;
7
+ required: true;
8
+ };
9
+ scope: {
10
+ type: PropType<Record<string, unknown>>;
11
+ default: () => {};
12
+ };
13
+ tag: {
14
+ type: StringConstructor;
15
+ default: string;
16
+ };
17
+ regionClass: {
18
+ type: StringConstructor;
19
+ default: string;
20
+ };
21
+ }>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
22
+ [key: string]: any;
23
+ }> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
24
+ name: {
25
+ type: StringConstructor;
26
+ required: true;
27
+ };
28
+ scope: {
29
+ type: PropType<Record<string, unknown>>;
30
+ default: () => {};
31
+ };
32
+ tag: {
33
+ type: StringConstructor;
34
+ default: string;
35
+ };
36
+ regionClass: {
37
+ type: StringConstructor;
38
+ default: string;
39
+ };
40
+ }>> & Readonly<{}>, {
41
+ scope: Record<string, unknown>;
42
+ tag: string;
43
+ regionClass: string;
44
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -0,0 +1,48 @@
1
+ type __VLS_Props = {
2
+ visible: boolean;
3
+ title: string;
4
+ /** Muted line under the title: ID · parent object, or a count ("5 platforms · 8 connections"). */
5
+ subtitle?: string;
6
+ /** md 480 · lg 720 (`--it-layout-drawer-width-*`); never wider than the viewport. */
7
+ size?: 'md' | 'lg';
8
+ /** Accessible name of the close button. */
9
+ closeLabel?: string;
10
+ /** Locks Esc, the close button, and mask clicks (e.g. while saving). */
11
+ busy?: boolean;
12
+ /** Close on mask click. */
13
+ dismissable?: boolean;
14
+ /** Unsaved work: closing asks first. Unset, the drawer asks once the person has typed in a text field. */
15
+ dirty?: boolean;
16
+ };
17
+ type __VLS_Slots = {
18
+ /** Above the title: severity badge, status, platform chip. */
19
+ eyebrow?: () => unknown;
20
+ /** Action row under the title (primary first). Stays in view while the body scrolls. */
21
+ actions?: () => unknown;
22
+ default?: () => unknown;
23
+ /** Bottom band, right-aligned: [Cancel] [Save] for drawers that edit. */
24
+ footer?: () => unknown;
25
+ };
26
+ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {
27
+ requestClose: () => Promise<void>;
28
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
29
+ "update:visible": (value: boolean) => any;
30
+ hide: () => any;
31
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
32
+ "onUpdate:visible"?: ((value: boolean) => any) | undefined;
33
+ onHide?: (() => any) | undefined;
34
+ }>, {
35
+ size: "md" | "lg";
36
+ busy: boolean;
37
+ dirty: boolean;
38
+ dismissable: boolean;
39
+ subtitle: string;
40
+ closeLabel: string;
41
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
42
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
43
+ export default _default;
44
+ type __VLS_WithSlots<T, S> = T & {
45
+ new (): {
46
+ $slots: S;
47
+ };
48
+ };
@@ -0,0 +1,53 @@
1
+ type __VLS_Props = {
2
+ visible: boolean;
3
+ title: string;
4
+ /** One line under the title. */
5
+ description?: string;
6
+ /** sm 400 confirm · md 560 short form · lg 800 picker · xl 1120 review flows. */
7
+ size?: 'sm' | 'md' | 'lg' | 'xl';
8
+ closable?: boolean;
9
+ /** Locks Esc, the close button, and outside clicks (e.g. while saving). */
10
+ busy?: boolean;
11
+ /**
12
+ * Unsaved work: closing asks first. Leave it unset and the modal asks
13
+ * once the person has typed in a text field; set it when the app knows
14
+ * better (work that a click outside would lose, which typing does not show).
15
+ */
16
+ dirty?: boolean;
17
+ /**
18
+ * Where focus starts. `field`: the first text field, for a form the
19
+ * person came to fill in. `start`: the start of the content, for a modal
20
+ * opened mostly to read (a step's details), so nothing looks selected.
21
+ */
22
+ initialFocus?: 'field' | 'start';
23
+ };
24
+ type __VLS_Slots = {
25
+ default?: () => unknown;
26
+ /** Right-aligned: [Cancel] [Primary]. */
27
+ footer?: () => unknown;
28
+ /** Left-aligned: Back, or a destructive secondary action. */
29
+ 'footer-start'?: () => unknown;
30
+ };
31
+ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {
32
+ requestClose: () => Promise<void>;
33
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
34
+ "update:visible": (value: boolean) => any;
35
+ hide: () => any;
36
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
37
+ "onUpdate:visible"?: ((value: boolean) => any) | undefined;
38
+ onHide?: (() => any) | undefined;
39
+ }>, {
40
+ size: "sm" | "md" | "lg" | "xl";
41
+ description: string;
42
+ closable: boolean;
43
+ busy: boolean;
44
+ dirty: boolean;
45
+ initialFocus: "field" | "start";
46
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
47
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
48
+ export default _default;
49
+ type __VLS_WithSlots<T, S> = T & {
50
+ new (): {
51
+ $slots: S;
52
+ };
53
+ };
@@ -0,0 +1,7 @@
1
+ export interface ItEscapeEntry {
2
+ onEscape?: (event: KeyboardEvent) => void;
3
+ }
4
+ /** Puts an overlay on top of the stack. Returns its removal; call it once the overlay closes. */
5
+ export declare function itPushEscape(entry: ItEscapeEntry): () => void;
6
+ /** Keeps a component's overlay on the stack while `visible()` is true. */
7
+ export declare function useItEscape(visible: () => boolean, onEscape: (event: KeyboardEvent) => void): void;
@@ -0,0 +1,23 @@
1
+ import { type InjectionKey } from 'vue';
2
+ export declare const IT_MODAL_CHANGE: InjectionKey<() => void>;
3
+ /** Marks the enclosing ItModal or ItDrawer as holding typed text. Call it on the person's typing, never on a value the app sets. */
4
+ export declare function useItModalChange(): () => void;
5
+ /** Put on an element whose typing is not text worth keeping (a search box, a combobox query): it does not mark the overlay. */
6
+ export declare const IT_MODAL_NO_CHANGE = "data-it-no-change";
7
+ /** A field the person types into: a text-like input, a textarea, or editable content. */
8
+ export declare const IT_TYPED_FIELD = "textarea, [contenteditable=\"\"], [contenteditable=\"true\"], input:not([type]), input[type=\"text\"], input[type=\"search\"], input[type=\"email\"], input[type=\"url\"], input[type=\"tel\"], input[type=\"number\"], input[type=\"password\"]";
9
+ /**
10
+ * The closing rule, for an overlay component. `onType` goes on the content's
11
+ * input event; `requestClose` replaces a direct close for the close button,
12
+ * Esc, and a click outside.
13
+ */
14
+ export declare function useItCloseGuard(options: {
15
+ visible: () => boolean;
16
+ busy: () => boolean;
17
+ dirty: () => boolean | undefined;
18
+ close: () => void;
19
+ }): {
20
+ onType: (event: Event) => void;
21
+ requestClose: () => Promise<void>;
22
+ isDirty: import("vue").ComputedRef<boolean>;
23
+ };