@adaptabletools/adaptable 24.0.0 → 24.0.2

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 (250) hide show
  1. package/devtools.d.ts +13 -0
  2. package/index.css +76 -76
  3. package/package.json +1 -1
  4. package/src/Api/Internal/FormatColumnInternalApi.d.ts +3 -2
  5. package/src/Api/Internal/FormatColumnInternalApi.js +15 -7
  6. package/src/Utilities/Services/QueryLanguageService.js +1 -1
  7. package/src/agGrid/AdaptableAgGrid.js +22 -31
  8. package/src/env.js +2 -2
  9. package/src/migration/VersionUpgrade24.d.ts +44 -9
  10. package/src/migration/VersionUpgrade24.js +97 -25
  11. package/src/migration/legacyPredicateLowering.d.ts +1 -1
  12. package/src/migration/legacyPredicateLowering.js +2 -0
  13. package/src/migration/predicateExpressionMigration.d.ts +49 -12
  14. package/src/migration/predicateExpressionMigration.js +141 -10
  15. package/src/setupDevTools.js +106 -170
  16. package/tsconfig.esm.tsbuildinfo +1 -1
  17. package/vendor/aql/api/QueryLanguageApi.d.ts +2 -1
  18. package/vendor/aql/api/QueryLanguageApi.d.ts.map +1 -1
  19. package/vendor/aql/api/QueryLanguageApi.js +28 -108
  20. package/vendor/aql/api/QueryLanguageApi.js.map +1 -1
  21. package/vendor/aql/contract/index.js +0 -34
  22. package/vendor/aql/contract/index.js.map +1 -1
  23. package/vendor/aql/corpus/corpusExpressions.js +0 -13
  24. package/vendor/aql/corpus/corpusExpressions.js.map +1 -1
  25. package/vendor/aql/corpus/corpusFixture.js +0 -7
  26. package/vendor/aql/corpus/corpusFixture.js.map +1 -1
  27. package/vendor/aql/draft/index.js +0 -4
  28. package/vendor/aql/draft/index.js.map +1 -1
  29. package/vendor/aql/evaluate.js +0 -22
  30. package/vendor/aql/evaluate.js.map +1 -1
  31. package/vendor/aql/evaluator/ExpressionEvaluationError.js +0 -4
  32. package/vendor/aql/evaluator/ExpressionEvaluationError.js.map +1 -1
  33. package/vendor/aql/evaluator/ExpressionNaError.js +0 -4
  34. package/vendor/aql/evaluator/ExpressionNaError.js.map +1 -1
  35. package/vendor/aql/evaluator/evaluateNode.js +0 -23
  36. package/vendor/aql/evaluator/evaluateNode.js.map +1 -1
  37. package/vendor/aql/functions/dateUtils.js +0 -63
  38. package/vendor/aql/functions/dateUtils.js.map +1 -1
  39. package/vendor/aql/functions/numberUtils.js +0 -12
  40. package/vendor/aql/functions/numberUtils.js.map +1 -1
  41. package/vendor/aql/functions/operatorFunctions.js +0 -13
  42. package/vendor/aql/functions/operatorFunctions.js.map +1 -1
  43. package/vendor/aql/functions/scalar/functions/AND.js +0 -5
  44. package/vendor/aql/functions/scalar/functions/AND.js.map +1 -1
  45. package/vendor/aql/functions/scalar/functions/ANY_CHANGE.js +0 -4
  46. package/vendor/aql/functions/scalar/functions/ANY_CHANGE.js.map +1 -1
  47. package/vendor/aql/functions/scalar/functions/ANY_CONTAINS.js +0 -4
  48. package/vendor/aql/functions/scalar/functions/ANY_CONTAINS.js.map +1 -1
  49. package/vendor/aql/functions/scalar/functions/AVG.js +0 -1
  50. package/vendor/aql/functions/scalar/functions/AVG.js.map +1 -1
  51. package/vendor/aql/functions/scalar/functions/CASE.js +2 -2
  52. package/vendor/aql/functions/scalar/functions/CASE.js.map +1 -1
  53. package/vendor/aql/functions/scalar/functions/COL.js +0 -2
  54. package/vendor/aql/functions/scalar/functions/COL.js.map +1 -1
  55. package/vendor/aql/functions/scalar/functions/CONTAINS.js +0 -3
  56. package/vendor/aql/functions/scalar/functions/CONTAINS.js.map +1 -1
  57. package/vendor/aql/functions/scalar/functions/DATE.js +0 -2
  58. package/vendor/aql/functions/scalar/functions/DATE.js.map +1 -1
  59. package/vendor/aql/functions/scalar/functions/ENDS_WITH.js +0 -1
  60. package/vendor/aql/functions/scalar/functions/ENDS_WITH.js.map +1 -1
  61. package/vendor/aql/functions/scalar/functions/EQ.js +0 -5
  62. package/vendor/aql/functions/scalar/functions/EQ.js.map +1 -1
  63. package/vendor/aql/functions/scalar/functions/GT.js +0 -3
  64. package/vendor/aql/functions/scalar/functions/GT.js.map +1 -1
  65. package/vendor/aql/functions/scalar/functions/GTE.js +0 -3
  66. package/vendor/aql/functions/scalar/functions/GTE.js.map +1 -1
  67. package/vendor/aql/functions/scalar/functions/IF.js +0 -5
  68. package/vendor/aql/functions/scalar/functions/IF.js.map +1 -1
  69. package/vendor/aql/functions/scalar/functions/IFERROR.js +0 -4
  70. package/vendor/aql/functions/scalar/functions/IFERROR.js.map +1 -1
  71. package/vendor/aql/functions/scalar/functions/IFNA.js +0 -5
  72. package/vendor/aql/functions/scalar/functions/IFNA.js.map +1 -1
  73. package/vendor/aql/functions/scalar/functions/IN.d.ts.map +1 -1
  74. package/vendor/aql/functions/scalar/functions/IN.js +54 -11
  75. package/vendor/aql/functions/scalar/functions/IN.js.map +1 -1
  76. package/vendor/aql/functions/scalar/functions/IS_BLANK.js +0 -1
  77. package/vendor/aql/functions/scalar/functions/IS_BLANK.js.map +1 -1
  78. package/vendor/aql/functions/scalar/functions/IS_DIFFERENT_DAY.js +0 -1
  79. package/vendor/aql/functions/scalar/functions/IS_DIFFERENT_DAY.js.map +1 -1
  80. package/vendor/aql/functions/scalar/functions/IS_NOT_BLANK.js +0 -1
  81. package/vendor/aql/functions/scalar/functions/IS_NOT_BLANK.js.map +1 -1
  82. package/vendor/aql/functions/scalar/functions/LT.js +0 -3
  83. package/vendor/aql/functions/scalar/functions/LT.js.map +1 -1
  84. package/vendor/aql/functions/scalar/functions/LTE.js +0 -3
  85. package/vendor/aql/functions/scalar/functions/LTE.js.map +1 -1
  86. package/vendor/aql/functions/scalar/functions/NA.js +0 -3
  87. package/vendor/aql/functions/scalar/functions/NA.js.map +1 -1
  88. package/vendor/aql/functions/scalar/functions/NOT_CONTAINS.js +0 -1
  89. package/vendor/aql/functions/scalar/functions/NOT_CONTAINS.js.map +1 -1
  90. package/vendor/aql/functions/scalar/functions/NOT_IN.js +0 -3
  91. package/vendor/aql/functions/scalar/functions/NOT_IN.js.map +1 -1
  92. package/vendor/aql/functions/scalar/functions/OR.js +0 -4
  93. package/vendor/aql/functions/scalar/functions/OR.js.map +1 -1
  94. package/vendor/aql/functions/scalar/functions/PRODUCT.js +0 -6
  95. package/vendor/aql/functions/scalar/functions/PRODUCT.js.map +1 -1
  96. package/vendor/aql/functions/scalar/functions/QUERY.js +0 -1
  97. package/vendor/aql/functions/scalar/functions/QUERY.js.map +1 -1
  98. package/vendor/aql/functions/scalar/functions/REGEX.js +0 -1
  99. package/vendor/aql/functions/scalar/functions/REGEX.js.map +1 -1
  100. package/vendor/aql/functions/scalar/functions/SCOPE.js +0 -4
  101. package/vendor/aql/functions/scalar/functions/SCOPE.js.map +1 -1
  102. package/vendor/aql/functions/scalar/functions/STARTS_WITH.js +0 -1
  103. package/vendor/aql/functions/scalar/functions/STARTS_WITH.js.map +1 -1
  104. package/vendor/aql/functions/scalar/functions/SUB.js +0 -1
  105. package/vendor/aql/functions/scalar/functions/SUB.js.map +1 -1
  106. package/vendor/aql/functions/scalar/functions/SUM.js +0 -5
  107. package/vendor/aql/functions/scalar/functions/SUM.js.map +1 -1
  108. package/vendor/aql/functions/scalar/helpers.js +0 -3
  109. package/vendor/aql/functions/scalar/helpers.js.map +1 -1
  110. package/vendor/aql/functions/shared/FIELD.js +0 -3
  111. package/vendor/aql/functions/shared/FIELD.js.map +1 -1
  112. package/vendor/aql/functions/shared/VAR.js +0 -4
  113. package/vendor/aql/functions/shared/VAR.js.map +1 -1
  114. package/vendor/aql/functions/shared/index.js +0 -9
  115. package/vendor/aql/functions/shared/index.js.map +1 -1
  116. package/vendor/aql/functions/stringUtils.js +0 -25
  117. package/vendor/aql/functions/stringUtils.js.map +1 -1
  118. package/vendor/aql/functions/utils.js +0 -20
  119. package/vendor/aql/functions/utils.js.map +1 -1
  120. package/vendor/aql/host/access.js +0 -2
  121. package/vendor/aql/host/access.js.map +1 -1
  122. package/vendor/aql/host/createHostExpressionContext.js +0 -25
  123. package/vendor/aql/host/createHostExpressionContext.js.map +1 -1
  124. package/vendor/aql/host/createObjectDataHost.js +0 -9
  125. package/vendor/aql/host/createObjectDataHost.js.map +1 -1
  126. package/vendor/aql/index.js +0 -2
  127. package/vendor/aql/index.js.map +1 -1
  128. package/vendor/aql/normalize/canonicalize.js +0 -7
  129. package/vendor/aql/normalize/canonicalize.js.map +1 -1
  130. package/vendor/aql/normalize/migrateExpression.js +0 -8
  131. package/vendor/aql/normalize/migrateExpression.js.map +1 -1
  132. package/vendor/aql/normalize/names.js +0 -72
  133. package/vendor/aql/normalize/names.js.map +1 -1
  134. package/vendor/aql/normalize/normalizeAst.js +0 -102
  135. package/vendor/aql/normalize/normalizeAst.js.map +1 -1
  136. package/vendor/aql/normalize/print.js +0 -35
  137. package/vendor/aql/normalize/print.js.map +1 -1
  138. package/vendor/aql/operator/primitiveSlots.js +0 -4
  139. package/vendor/aql/operator/primitiveSlots.js.map +1 -1
  140. package/vendor/aql/operator/resolve.js +0 -18
  141. package/vendor/aql/operator/resolve.js.map +1 -1
  142. package/vendor/aql/parser/parser.js +4 -125
  143. package/vendor/aql/parser/parser.js.map +1 -1
  144. package/vendor/aql/plan/catalogue.js +0 -35
  145. package/vendor/aql/plan/catalogue.js.map +1 -1
  146. package/vendor/aql/plan/compile.js +0 -68
  147. package/vendor/aql/plan/compile.js.map +1 -1
  148. package/vendor/aql/plan/deepMap.js +0 -16
  149. package/vendor/aql/plan/deepMap.js.map +1 -1
  150. package/vendor/aql/plan/execute.js +0 -91
  151. package/vendor/aql/plan/execute.js.map +1 -1
  152. package/vendor/aql/plan/magnitudeLiteral.js +0 -29
  153. package/vendor/aql/plan/magnitudeLiteral.js.map +1 -1
  154. package/vendor/aql/plan/observable.js +0 -31
  155. package/vendor/aql/plan/observable.js.map +1 -1
  156. package/vendor/aql/plan/observableFixture.js +0 -3
  157. package/vendor/aql/plan/observableFixture.js.map +1 -1
  158. package/vendor/aql/plan/operators.js +0 -35
  159. package/vendor/aql/plan/operators.js.map +1 -1
  160. package/vendor/aql/plan/outer.js +0 -16
  161. package/vendor/aql/plan/outer.js.map +1 -1
  162. package/vendor/aql/predicate/mapExpressionToQlPredicate.js +1 -46
  163. package/vendor/aql/predicate/mapExpressionToQlPredicate.js.map +1 -1
  164. package/vendor/aql/predicate/mapQlPredicateToExpression.js +0 -13
  165. package/vendor/aql/predicate/mapQlPredicateToExpression.js.map +1 -1
  166. package/vendor/aql/store/computedValueStore.js +0 -35
  167. package/vendor/aql/store/computedValueStore.js.map +1 -1
  168. package/vendor/aql/store/history/clock.js +0 -1
  169. package/vendor/aql/store/history/clock.js.map +1 -1
  170. package/vendor/aql/store/history/historyStore.js +0 -14
  171. package/vendor/aql/store/history/historyStore.js.map +1 -1
  172. package/vendor/aql/store/history/monotonicDeque.js +0 -9
  173. package/vendor/aql/store/history/monotonicDeque.js.map +1 -1
  174. package/vendor/aql/store/history/operators.js +0 -13
  175. package/vendor/aql/store/history/operators.js.map +1 -1
  176. package/vendor/aql/store/history/ringBuffer.js +0 -12
  177. package/vendor/aql/store/history/ringBuffer.js.map +1 -1
  178. package/vendor/aql/store/history/rowSeries.js +0 -17
  179. package/vendor/aql/store/history/rowSeries.js.map +1 -1
  180. package/vendor/aql/store/history/types.js +0 -18
  181. package/vendor/aql/store/history/types.js.map +1 -1
  182. package/vendor/aql/tokenizer/tokenizer.js +0 -3
  183. package/vendor/aql/tokenizer/tokenizer.js.map +1 -1
  184. package/vendor/aql/types.js +0 -27
  185. package/vendor/aql/types.js.map +1 -1
  186. package/vendor/aql/utils/astUtils.js +0 -1
  187. package/vendor/aql/utils/astUtils.js.map +1 -1
  188. package/vendor/aql/utils/dependencyCycle.js +0 -5
  189. package/vendor/aql/utils/dependencyCycle.js.map +1 -1
  190. package/vendor/aql/validation/classifyExpression.js +0 -4
  191. package/vendor/aql/validation/classifyExpression.js.map +1 -1
  192. package/vendor/aql/validation/functionMetadata.js +0 -31
  193. package/vendor/aql/validation/functionMetadata.js.map +1 -1
  194. package/vendor/aql/validation/validateAqlExpression.js +2 -81
  195. package/vendor/aql/validation/validateAqlExpression.js.map +1 -1
  196. package/vendor/aql/validation/validateExpressionTypes.js +0 -64
  197. package/vendor/aql/validation/validateExpressionTypes.js.map +1 -1
  198. package/vendor/components/Button/index.js +0 -6
  199. package/vendor/components/Button/index.js.map +1 -1
  200. package/vendor/components/ColorField/index.js +0 -18
  201. package/vendor/components/ColorField/index.js.map +1 -1
  202. package/vendor/components/ColorPicker/colorPickerTab.js +0 -6
  203. package/vendor/components/ColorPicker/colorPickerTab.js.map +1 -1
  204. package/vendor/components/ColorPicker/index.js +1 -66
  205. package/vendor/components/ColorPicker/index.js.map +1 -1
  206. package/vendor/components/ColorPicker/themeColors.js +0 -55
  207. package/vendor/components/ColorPicker/themeColors.js.map +1 -1
  208. package/vendor/components/Combobox/VirtualizedList.js +0 -5
  209. package/vendor/components/Combobox/VirtualizedList.js.map +1 -1
  210. package/vendor/components/Combobox/comboboxUtils.js +0 -5
  211. package/vendor/components/Combobox/comboboxUtils.js.map +1 -1
  212. package/vendor/components/Combobox/index.js +7 -106
  213. package/vendor/components/Combobox/index.js.map +1 -1
  214. package/vendor/components/Combobox/useScrollNearEnd.js +0 -6
  215. package/vendor/components/Combobox/useScrollNearEnd.js.map +1 -1
  216. package/vendor/components/DropdownButton/index.js +0 -5
  217. package/vendor/components/DropdownButton/index.js.map +1 -1
  218. package/vendor/components/NumberInput/index.js +0 -10
  219. package/vendor/components/NumberInput/index.js.map +1 -1
  220. package/vendor/components/Resizable/index.js +3 -26
  221. package/vendor/components/Resizable/index.js.map +1 -1
  222. package/vendor/components/Resizable/resizableUtils.js +0 -24
  223. package/vendor/components/Resizable/resizableUtils.js.map +1 -1
  224. package/vendor/components/SearchInput/index.js +0 -5
  225. package/vendor/components/SearchInput/index.js.map +1 -1
  226. package/vendor/components/Tree/TreeDropdown/index.js +3 -139
  227. package/vendor/components/Tree/TreeDropdown/index.js.map +1 -1
  228. package/vendor/components/Tree/treeUtils.js +0 -4
  229. package/vendor/components/Tree/treeUtils.js.map +1 -1
  230. package/vendor/components/index.css +71 -71
  231. package/vendor/components/index.js +0 -5
  232. package/vendor/components/index.js.map +1 -1
  233. package/vendor/components/lib/useProperty.js +0 -18
  234. package/vendor/components/lib/useProperty.js.map +1 -1
  235. package/vendor/components/twMerge.js +0 -2
  236. package/vendor/components/twMerge.js.map +1 -1
  237. package/vendor/components/twUtils.js +3 -12
  238. package/vendor/components/twUtils.js.map +1 -1
  239. package/vendor/components/ui/alert-dialog.js +0 -4
  240. package/vendor/components/ui/alert-dialog.js.map +1 -1
  241. package/vendor/components/ui/calendar.js +1 -9
  242. package/vendor/components/ui/calendar.js.map +1 -1
  243. package/vendor/components/ui/combobox.js +2 -38
  244. package/vendor/components/ui/combobox.js.map +1 -1
  245. package/vendor/components/ui/dialog.js +0 -4
  246. package/vendor/components/ui/dialog.js.map +1 -1
  247. package/vendor/components/ui/input-group.js +3 -12
  248. package/vendor/components/ui/input-group.js.map +1 -1
  249. package/vendor/components/ui/tabs.js +0 -3
  250. package/vendor/components/ui/tabs.js.map +1 -1
@@ -5,10 +5,6 @@ import { magnitudeLiteralOperandIndex } from '../plan/magnitudeLiteral.js';
5
5
  import { resolveFunctionDefinition } from '../functions/operatorFunctions.js';
6
6
  const COLUMN_LIKE = new Set(['COL', 'FIELD', 'VAR', 'QUERY', '$SCOPE', 'SCOPE']);
7
7
  const COLUMN_REF_FNS = new Set(['COL', 'FIELD']);
8
- /**
9
- * Map a host/column `dataType` string to a static type.
10
- * Unmapped or empty values return undefined (walker treats that as `unknown`).
11
- */
12
8
  export function mapDataTypeToStaticType(dataType) {
13
9
  switch ((dataType ?? '').toLowerCase()) {
14
10
  case 'number':
@@ -26,31 +22,14 @@ export function mapDataTypeToStaticType(dataType) {
26
22
  return undefined;
27
23
  }
28
24
  }
29
- /**
30
- * Static type check against each function's `operands` matrix.
31
- *
32
- * - Literals and nested calls with a known `returnType` are checked.
33
- * - Column refs / `any` / missing metadata → `unknown` (never a hard error).
34
- * - Functions without `operands`, or without `enforceOperandTypes: true`,
35
- * are skipped (opt-in as we audit each one).
36
- * - Arity mismatches are errors; type mismatches are warnings.
37
- */
38
25
  export function validateExpressionTypes(ast, functions, options) {
39
26
  const issues = [];
40
27
  walk(ast, functions, issues, options);
41
28
  return { isValid: issues.every((issue) => issue.severity !== 'error'), issues };
42
29
  }
43
- /**
44
- * Static type of an expression (the last statement when given a program) —
45
- * the "outer type check" entry point. Brace calls resolve through the
46
- * aggregation specs (`MIN{…}` is input-typed, `SUM{…}` is number) and the
47
- * observable specs (`CHANGE_COUNT{…}` is number, `HIGHEST{…}` is
48
- * input-typed); anything unprovable is `'unknown'` (never an error).
49
- */
50
30
  export function inferStaticExpressionType(ast, functions, options) {
51
31
  const scratch = [];
52
32
  if (Array.isArray(ast)) {
53
- // Program wrapper: the root is the LAST statement (not a list literal).
54
33
  let last = 'unknown';
55
34
  for (const statement of ast) {
56
35
  last = walk(statement, functions, scratch, options);
@@ -61,12 +40,10 @@ export function inferStaticExpressionType(ast, functions, options) {
61
40
  }
62
41
  function walk(node, functions, issues, options) {
63
42
  if (Array.isArray(node)) {
64
- // Nested list (IN rhs) or top-level program wrapper.
65
43
  if (node.length === 0) {
66
44
  return 'unknown';
67
45
  }
68
46
  const elementTypes = node.map((child) => walk(child, functions, issues, options));
69
- // Homogeneous multi-element lists → array type.
70
47
  if (node.length >= 2) {
71
48
  if (elementTypes.every((t) => t === 'number')) {
72
49
  return 'number[]';
@@ -79,7 +56,6 @@ function walk(node, functions, issues, options) {
79
56
  }
80
57
  return 'unknown';
81
58
  }
82
- // Single-element array (typical parsed program) → that expression's type.
83
59
  return elementTypes[0];
84
60
  }
85
61
  if (isAST_Function(node)) {
@@ -87,17 +63,9 @@ function walk(node, functions, issues, options) {
87
63
  }
88
64
  return inferLiteralType(node);
89
65
  }
90
- /**
91
- * Contract-v3 brace-call handling: clause operands and brace bodies must NOT
92
- * be matched against the scalar pool (the scalar homonym's overloads don't
93
- * apply to `SUM{…}`). Result types come from the aggregation specs; clause
94
- * operand checks are the structural validator's job
95
- * (`validateAqlExpression`).
96
- */
97
66
  function checkContractCall(node, kind, functions, issues, options) {
98
67
  if (kind === 'CLAUSE') {
99
68
  if (node.type === 'WHERE') {
100
- // The filter predicate is an ordinary scalar boolean expression.
101
69
  node.args.forEach((arg) => walk(arg, functions, issues, options));
102
70
  }
103
71
  return 'unknown';
@@ -126,9 +94,6 @@ function checkContractCall(node, kind, functions, issues, options) {
126
94
  }
127
95
  return spec.resultType === 'unknown' ? 'unknown' : spec.resultType;
128
96
  }
129
- // ---------------------------------------------------------------------------
130
- // Duration typing (INFIX table)
131
- // ---------------------------------------------------------------------------
132
97
  const ARITHMETIC_INFIX = new Set(['SUM', 'SUB', 'PRODUCT', 'DIV', 'MOD', 'POW']);
133
98
  const COMPARISON_INFIX = new Set(['EQ', 'NEQ', 'LT', 'LTE', 'GT', 'GTE']);
134
99
  const INFIX_SYMBOL = {
@@ -155,7 +120,6 @@ const pushDurationIssue = (issues, node, message, severity, quickFix) => {
155
120
  quickFix,
156
121
  });
157
122
  };
158
- /** `duration ⋈ number` / `duration ± number`: error, with a literal quick-fix. */
159
123
  const durationNumberMismatch = (issues, node, argTypes) => {
160
124
  const symbol = INFIX_SYMBOL[node.type] ?? node.type;
161
125
  const numberIndex = argTypes[0] === 'number' ? 0 : 1;
@@ -168,15 +132,6 @@ const durationNumberMismatch = (issues, node, argTypes) => {
168
132
  : undefined;
169
133
  pushDurationIssue(issues, node, `${symbol} cannot mix a duration with a plain number — write the number as a duration (e.g. 30s, 5m, 1h)${quickFix ? `: did you mean ${quickFix.replacement}?` : ''}`, 'error', quickFix);
170
134
  };
171
- /**
172
- * Static typing for INFIX nodes when a `duration` (or `date − date`) is
173
- * involved. Returns `undefined` when the ordinary scalar-pool check applies.
174
- *
175
- * Table: `date − date → duration`; `date ± duration → date`;
176
- * `duration ± duration → duration`; `duration × number → duration`;
177
- * `duration ÷ number → duration`; `duration ÷ duration → number`;
178
- * `duration ⋈ duration → boolean`; `duration ⋈ number` → error.
179
- */
180
135
  function checkDurationInfix(node, argTypes, issues) {
181
136
  if (argTypes.length !== 2) {
182
137
  return undefined;
@@ -279,8 +234,6 @@ function checkFunctionCall(node, functions, issues, options) {
279
234
  const def = resolveFunctionDefinition(functions, node.type, nodeKind);
280
235
  const returnType = mapReturnType(def?.returnType);
281
236
  if (COLUMN_LIKE.has(node.type)) {
282
- // Result type is unknown (column/field values are dynamic), but audited
283
- // definitions still enforce their own argument contracts (e.g. COL(text)).
284
237
  const overloads = normalizeOverloads(def?.operands);
285
238
  if (overloads && def?.enforceOperandTypes && !matchesAnyOverload(overloads, argTypes)) {
286
239
  pushMismatch(issues, node, overloads, argTypes);
@@ -334,11 +287,9 @@ function matchesOverload(overload, argTypes) {
334
287
  }
335
288
  const last = overload[overload.length - 1];
336
289
  if (overload.length > 1 && isArrayOperand(last)) {
337
- // Exact arity: last slot is a true array-typed argument (e.g. IN's list).
338
290
  if (argTypes.length === overload.length) {
339
291
  return overload.every((expected, i) => isTypeCompatible(expected, argTypes[i]));
340
292
  }
341
- // Longer call: fixed prefix + variadic element args (e.g. TEXTJOIN).
342
293
  const fixed = overload.slice(0, -1);
343
294
  const element = arrayElementType(last);
344
295
  if (!element) {
@@ -366,11 +317,9 @@ function matchesVariadicArray(expected, argTypes) {
366
317
  if (!element) {
367
318
  return false;
368
319
  }
369
- // Require at least one argument (AVG(), CONCAT() with no values are invalid).
370
320
  if (argTypes.length === 0) {
371
321
  return false;
372
322
  }
373
- // Single array-typed argument (e.g. a nested list) vs flattened scalars.
374
323
  if (argTypes.length === 1 && isArrayOperand(argTypes[0])) {
375
324
  return isTypeCompatible(expected, argTypes[0]);
376
325
  }
@@ -395,7 +344,6 @@ function isTypeCompatible(expected, actual) {
395
344
  if (expected === actual) {
396
345
  return true;
397
346
  }
398
- // A scalar number is acceptable where number[] is declared for some flatteners.
399
347
  if (expected === 'number[]' && actual === 'number') {
400
348
  return true;
401
349
  }
@@ -409,7 +357,6 @@ function isTypeCompatible(expected, actual) {
409
357
  }
410
358
  function inferLiteralType(value) {
411
359
  if (value === null) {
412
- // NULL literal — comparable against any type.
413
360
  return 'unknown';
414
361
  }
415
362
  if (typeof value === 'number') {
@@ -418,14 +365,12 @@ function inferLiteralType(value) {
418
365
  if (typeof value === 'boolean') {
419
366
  return 'boolean';
420
367
  }
421
- // String literals are text. Date values come from DATE(...) / columns, not raw strings.
422
368
  return 'text';
423
369
  }
424
370
  function mapReturnType(returnType) {
425
371
  if (!returnType || returnType === 'any' || returnType === 'NULL' || returnType === 'null') {
426
372
  return 'unknown';
427
373
  }
428
- // Docs / handlers historically use `string`; operand matrix uses `text`.
429
374
  if (returnType === 'string' || returnType === 'text') {
430
375
  return 'text';
431
376
  }
@@ -504,14 +449,6 @@ function sameShape(a, b) {
504
449
  ? a.count === b.count
505
450
  : a.fixed === b.fixed;
506
451
  }
507
- /**
508
- * When a function is overloaded only by data type — every overload has the
509
- * same arity shape (e.g. `IN` / `NOT_IN`: a subject followed by one or more
510
- * values of the same type) — enumerating each typed overload is just noise.
511
- * Collapse to a single type-agnostic phrase (`2 or more arguments of the same
512
- * type`). Returns `null` when overloads differ in shape, so
513
- * those keep the detailed per-overload wording.
514
- */
515
452
  function collapseUniformArity(overloads) {
516
453
  if (overloads.length < 2) {
517
454
  return null;
@@ -522,7 +459,6 @@ function collapseUniformArity(overloads) {
522
459
  }
523
460
  const minArgs = shape.kind === 'exact' ? shape.count : shape.fixed + 1;
524
461
  const argWord = minArgs === 1 ? 'argument' : 'arguments';
525
- // "same type" only reads correctly for 2+ arguments.
526
462
  const sameType = minArgs >= 2 ? ' of the same type' : '';
527
463
  return shape.kind === 'variadic'
528
464
  ? `${minArgs} or more ${argWord}${sameType}`
@@ -1 +1 @@
1
- {"version":3,"file":"validateExpressionTypes.js","sourceRoot":"","sources":["../../../src/validation/validateExpressionTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validateExpressionTypes.js","sourceRoot":"","sources":["../../../src/validation/validateExpressionTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,GAQf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,qBAAqB,EAAwB,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAoD3E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AACjF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AAMjD,MAAM,UAAU,uBAAuB,CACrC,QAA4B;IAE5B,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACvC,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,UAAU;YACb,OAAO,UAAU,CAAC;QACpB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAWD,MAAM,UAAU,uBAAuB,CACrC,GAAyB,EACzB,SAA+E,EAC/E,OAAwC;IAExC,MAAM,MAAM,GAA0B,EAAE,CAAC;IACzC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;AAClF,CAAC;AASD,MAAM,UAAU,yBAAyB,CACvC,GAAyB,EACzB,SAA+E,EAC/E,OAAwC;IAExC,MAAM,OAAO,GAA0B,EAAE,CAAC;IAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAEvB,IAAI,IAAI,GAAyB,SAAS,CAAC;QAC3C,KAAK,MAAM,SAAS,IAAI,GAAuB,EAAE,CAAC;YAChD,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,IAAI,CACX,IAA0B,EAC1B,SAAuD,EACvD,MAA6B,EAC7B,OAAmD;IAEnD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAExB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAElF,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACrB,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;gBAC9C,OAAO,UAAU,CAAC;YACpB,CAAC;YACD,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC;gBAC5C,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC;gBAC5C,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AASD,SAAS,iBAAiB,CACxB,IAAkB,EAClB,IAAY,EACZ,SAAuD,EACvD,MAA6B,EAC7B,OAAmD;IAEnD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAE1B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,SAAS,GAA2B,EAAE,CAAC;IAC7C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC;YACnE,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAC7D,SAAS;QACX,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC/B,MAAM,cAAc,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,cAAc,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC;IACvG,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,gBAAgB,IAAI,4BAA4B,CAAC,gBAAgB,CAAC,CACvF,IAAI,CAAC,IAAI,CACV,CAAC;IACF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;QAChC,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;IACnC,CAAC;IACD,OAAO,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;AACrE,CAAC;AAMD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACjF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAE1E,MAAM,YAAY,GAA2B;IAC3C,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,OAAO,EAAE,GAAG;IACZ,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,EAAE,EAAE,GAAG;IACP,GAAG,EAAE,IAAI;IACT,EAAE,EAAE,GAAG;IACP,GAAG,EAAE,IAAI;IACT,EAAE,EAAE,GAAG;IACP,GAAG,EAAE,IAAI;CACV,CAAC;AAEF,MAAM,iBAAiB,GAAG,CACxB,MAA6B,EAC7B,IAAkB,EAClB,OAAe,EACf,QAAqC,EACrC,QAA0C,EACpC,EAAE;IACR,MAAM,CAAC,IAAI,CAAC;QACV,OAAO;QACP,QAAQ;QACR,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,YAAY,EAAE,IAAI,CAAC,IAAI;QACvB,IAAI,EAAE,mBAAmB;QACzB,QAAQ;KACT,CAAC,CAAC;AACL,CAAC,CAAC;AAGF,MAAM,sBAAsB,GAAG,CAC7B,MAA6B,EAC7B,IAAkB,EAClB,QAAgC,EAC1B,EAAE;IACR,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;IACpD,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvC,MAAM,QAAQ,GACZ,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QACrD,CAAC,CAAC;YACE,KAAK,EAAE,gBAAgB,OAAO,IAAI;YAClC,WAAW,EAAE,GAAG,OAAO,GAAG;SAC3B;QACH,CAAC,CAAC,SAAS,CAAC;IAChB,iBAAiB,CACf,MAAM,EACN,IAAI,EACJ,GAAG,MAAM,iGACP,QAAQ,CAAC,CAAC,CAAC,kBAAkB,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,EACzD,EAAE,EACF,OAAO,EACP,QAAQ,CACT,CAAC;AACJ,CAAC,CAAC;AAWF,SAAS,kBAAkB,CACzB,IAAkB,EAClB,QAAgC,EAChC,MAA6B;IAE7B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,QAAQ,CAAC;IAC/B,MAAM,WAAW,GAAG,IAAI,KAAK,UAAU,IAAI,KAAK,KAAK,UAAU,CAAC;IAChE,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QAC/D,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;IACpD,MAAM,KAAK,GAAG,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAEjD,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAChD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvB,sBAAsB,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC/C,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,mCAAmC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;QAChG,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,KAAK,CAAC;QACX,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,IAAI,IAAI,KAAK,UAAU,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;gBAChD,OAAO,UAAU,CAAC;YACpB,CAAC;YACD,IAAI,IAAI,KAAK,MAAM,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;gBAC5C,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,UAAU,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBACnE,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACvB,sBAAsB,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAC/C,OAAO,UAAU,CAAC;YACpB,CAAC;YACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,iBAAiB,CACf,MAAM,EACN,IAAI,EACJ,GAAG,MAAM,mBAAmB,IAAI,SAAS,KAAK,wCAAwC,EACtF,SAAS,CACV,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACvB,OAAO,UAAU,CAAC;YACpB,CAAC;YACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,iBAAiB,CACf,MAAM,EACN,IAAI,EACJ,GAAG,MAAM,4CAA4C,IAAI,MAAM,KAAK,EAAE,EACtE,SAAS,CACV,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,IAAI,IAAI,KAAK,UAAU,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9C,OAAO,UAAU,CAAC;YACpB,CAAC;YACD,IAAI,IAAI,KAAK,UAAU,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;gBAChD,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,iBAAiB,CACf,MAAM,EACN,IAAI,EACJ,GAAG,MAAM,gEAAgE,IAAI,MAAM,KAAK,EAAE,EAC1F,SAAS,CACV,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QACD;YACE,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,8BAA8B,EAAE,SAAS,CAAC,CAAC;YACpF,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CACxB,IAAkB,EAClB,SAAuD,EACvD,MAA6B,EAC7B,OAAmD;IAEnD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC;IAC5C,IACE,QAAQ,KAAK,UAAU;QACvB,QAAQ,KAAK,iBAAiB;QAC9B,QAAQ,KAAK,QAAQ,EACrB,CAAC;QACD,OAAO,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;QACzD,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/E,MAAM,cAAc,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,QAAQ,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC;IACtC,CAAC;IACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChE,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,YAAY,CAAC;QACtB,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GAAG,yBAAyB,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAElD,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAG/B,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACpD,IAAI,SAAS,IAAI,GAAG,EAAE,mBAAmB,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;YACtF,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACpD,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE,mBAAmB,EAAE,CAAC;QAC5C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC5C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAChD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,oBAAoB,CAC3B,IAAkB,EAClB,OAAmD;IAEnD,IAAI,CAAC,OAAO,EAAE,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;AACjD,CAAC;AAED,SAAS,YAAY,CACnB,MAA6B,EAC7B,IAAkB,EAClB,SAA0B,EAC1B,QAAgC;IAEhC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC/E,MAAM,CAAC,IAAI,CAAC;QACV,OAAO;QACP,QAAQ;QACR,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,YAAY,EAAE,IAAI,CAAC,IAAI;KACxB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgC;IAC1D,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,kBAAkB,CAAC,SAA0B,EAAE,QAAgC;IACtF,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,eAAe,CAAC,QAAuB,EAAE,QAAgC;IAChF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QAEhD,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;YACxC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7C,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,QAAQ;aACZ,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;aACnB,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,oBAAoB,CAC3B,QAAqB,EACrB,QAAgC;IAEhC,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,OAAO,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,cAAc,CAAC,IAAwC;IAC9D,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAiB;IACzC,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,QAAQ,CAAC;IACzC,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IACrC,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IACrC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAqB,EAAE,MAA4B;IAC3E,IAAI,QAAQ,KAAK,KAAK,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,QAAQ,KAAK,UAAU,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,QAAQ,KAAK,QAAQ,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,QAAQ,KAAK,QAAQ,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAuC;IAC/D,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAEnB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,UAA8B;IACnD,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC1F,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QACrD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IACE,UAAU,KAAK,QAAQ;QACvB,UAAU,KAAK,MAAM;QACrB,UAAU,KAAK,SAAS;QACxB,UAAU,KAAK,UAAU;QACzB,UAAU,KAAK,UAAU;QACzB,UAAU,KAAK,QAAQ;QACvB,UAAU,KAAK,QAAQ,EACvB,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAuB,EAAE,QAAgB;IAClE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,OAAO,QAAQ,IAAI,CAAC,CAAC;IACvB,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,OAAO,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC;IACrC,CAAC;IACD,OAAO,QAAQ,KAAK,QAAQ,CAAC,MAAM,CAAC;AACtC,CAAC;AAED,SAAS,gBAAgB,CACvB,YAAoB,EACpB,SAA0B,EAC1B,QAAgC;IAEhC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACxC,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE;YAClC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;YAC9D,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACxC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnG,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC9C,OAAO;YACL,OAAO,EAAE,GAAG,YAAY,YAAY,QAAQ,SAAS,QAAQ,CAAC,MAAM,EAAE;YACtE,QAAQ,EAAE,OAAO;SAClB,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO;YACL,OAAO,EAAE,GAAG,YAAY,YAAY,QAAQ,SAAS,GAAG,IAAI,cAAc,EAAE;YAC5E,QAAQ,EAAE,SAAS;SACpB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,GAAG,YAAY,sCAAsC;QAC9D,QAAQ,EAAE,SAAS;KACpB,CAAC;AACJ,CAAC;AAMD,SAAS,aAAa,CAAC,QAAuB;IAC5C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACrC,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACxC,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IAC1D,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;AACnD,CAAC;AAED,SAAS,SAAS,CAAC,CAAgB,EAAE,CAAgB;IACnD,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;QAC7C,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QACrB,CAAC,CAAE,CAAuB,CAAC,KAAK,KAAM,CAAuB,CAAC,KAAK,CAAC;AACxE,CAAC;AAUD,SAAS,oBAAoB,CAAC,SAA0B;IACtD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;QAC9E,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;IAEzD,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU;QAC9B,CAAC,CAAC,GAAG,OAAO,YAAY,OAAO,GAAG,QAAQ,EAAE;QAC5C,CAAC,CAAC,GAAG,OAAO,IAAI,OAAO,GAAG,QAAQ,EAAE,CAAC;AACzC,CAAC;AAED,SAAS,iBAAiB,CAAC,SAA0B;IACnD,MAAM,SAAS,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAClD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QACvC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,cAAc,CAAC;QACxB,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9C,OAAO,OAAO,CAAC,CAAC,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC;QACpF,CAAC;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC3C,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,sBAAsB,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,UAAU,CAAC;QACzF,CAAC;QACD,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAoB;IAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;IAC3B,MAAM,OAAO,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;IACvD,OAAO,GAAG,KAAK,IAAI,OAAO,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC3D,CAAC;AAED,SAAS,oBAAoB,CAAC,SAA0B;IACtD,MAAM,SAAS,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAClD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,SAAS;SACb,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnB,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,MAAM,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,OAAO,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,MAAM,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,sBAAsB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC,CAAC;SACD,IAAI,CAAC,KAAK,CAAC,CAAC;AACjB,CAAC"}
@@ -2,12 +2,6 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import * as React from 'react';
3
3
  import { Button as UIButton } from '../ui/button';
4
4
  import { Tooltip } from '../Tooltip';
5
- /**
6
- * The `ui/button` Button plus an optional `tooltip` prop.
7
- *
8
- * When `tooltip` is a string and no `aria-label` is given, the tooltip also
9
- * becomes the accessible name — handy for icon-only buttons.
10
- */
11
5
  export const Button = React.forwardRef(function Button({ tooltip, tooltipSide, tooltipAlign, ...props }, ref) {
12
6
  const ariaLabel = props['aria-label'] ?? (typeof tooltip === 'string' ? tooltip : undefined);
13
7
  const button = _jsx(UIButton, { ref: ref, ...props, "aria-label": ariaLabel });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Button/index.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,OAAO,EAAqB,MAAM,YAAY,CAAC;AAYxD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAiC,SAAS,MAAM,CACpF,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,KAAK,EAAE,EAChD,GAAG;IAEH,MAAM,SAAS,GACb,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAE7E,MAAM,MAAM,GAAG,KAAC,QAAQ,IAAC,GAAG,EAAE,GAAG,KAAM,KAAK,gBAAc,SAAS,GAAI,CAAC;IAExE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,CACL,KAAC,OAAO,IAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,YAC5D,MAAM,GACC,CACX,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Button/index.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,OAAO,EAAqB,MAAM,YAAY,CAAC;AAkBxD,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAiC,SAAS,MAAM,CACpF,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,KAAK,EAAE,EAChD,GAAG;IAEH,MAAM,SAAS,GACb,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAE7E,MAAM,MAAM,GAAG,KAAC,QAAQ,IAAC,GAAG,EAAE,GAAG,KAAM,KAAK,gBAAc,SAAS,GAAI,CAAC;IAExE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,CACL,KAAC,OAAO,IAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,YAC5D,MAAM,GACC,CACX,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -5,13 +5,6 @@ import { Button } from '../Button';
5
5
  import { CHECKERBOARD, ColorPicker, describeColor, } from '../ColorPicker';
6
6
  import { cn } from '../lib/utils';
7
7
  import { Popover, PopoverContent, PopoverTrigger } from '../ui/popover';
8
- /**
9
- * Dragging in the precise picker fires a change for every pixel. Committing
10
- * each one restyles the grid (and persists state) at 60 Hz, which is what
11
- * makes the swatch lag behind the cursor. Instead the field shows its own
12
- * draft immediately and hands the latest colour to the host at most once per
13
- * `COMMIT_INTERVAL`, plus once more when it unmounts mid-drag.
14
- */
15
8
  const COMMIT_INTERVAL = 100;
16
9
  function useDraftColor(value, onChange) {
17
10
  const [draft, setDraft] = useState(value);
@@ -34,8 +27,6 @@ function useDraftColor(value, onChange) {
34
27
  }
35
28
  pending.current = null;
36
29
  };
37
- // Follow the host (clear button, undo, another editor) — but not while a
38
- // newer draft is still waiting to be committed.
39
30
  useEffect(() => {
40
31
  if (!pending.current) {
41
32
  setDraft(value);
@@ -47,7 +38,6 @@ function useDraftColor(value, onChange) {
47
38
  flush();
48
39
  }
49
40
  }, []);
50
- /** Continuous input: shown now, committed on the interval. */
51
41
  const setColor = (next) => {
52
42
  setDraft(next);
53
43
  pending.current = { value: next };
@@ -55,7 +45,6 @@ function useDraftColor(value, onChange) {
55
45
  timer.current = setTimeout(flush, COMMIT_INTERVAL);
56
46
  }
57
47
  };
58
- /** Discrete choice (a swatch, a typed hex, clear): committed right away. */
59
48
  const commit = (next) => {
60
49
  cancel();
61
50
  setDraft(next);
@@ -63,13 +52,6 @@ function useDraftColor(value, onChange) {
63
52
  };
64
53
  return { draft, setColor, commit };
65
54
  }
66
- /**
67
- * The colour input: a swatch that opens the {@link ColorPicker} — the
68
- * Adaptable theme colours (stored as `var(--ab-color-…)` so they follow the
69
- * theme) or a precise colour — with a clear button so a colour can go back to
70
- * "not set" instead of being stuck on the last pick. Unset shows a
71
- * transparency checkerboard rather than a fake grey.
72
- */
73
55
  export function ColorField(props) {
74
56
  const { clearable = true, disabled = false } = props;
75
57
  const dataName = props['data-name'];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ColorField/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ColorField/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAkB,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAEjC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EACL,YAAY,EACZ,WAAW,EAIX,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAoDxE,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,SAAS,aAAa,CAAC,KAAyB,EAAE,QAA6C;IAC7F,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,MAAM,CAAuC,IAAI,CAAC,CAAC;IACjE,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxC,cAAc,CAAC,OAAO,GAAG,QAAQ,CAAC;IAElC,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QACrB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;YACxC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YACvB,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IACzB,CAAC,CAAC;IAIF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,SAAS,CACP,GAAG,EAAE,CAAC,GAAG,EAAE;QACT,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC,EACD,EAAE,CACH,CAAC;IAGF,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE;QAChC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,OAAO,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC3B,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,CAAC;IAGF,MAAM,MAAM,GAAG,CAAC,IAAwB,EAAE,EAAE;QAC1C,MAAM,EAAE,CAAC;QACT,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AACrC,CAAC;AASD,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,QAAQ,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC;IACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;IACpC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExC,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,+DAA+D,EAC/D,QAAQ,IAAI,gBAAgB,EAC5B,KAAK,CAAC,SAAS,CAChB,aAED,MAAC,OAAO,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,aACxC,KAAC,cAAc,IACb,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,QAAQ,EAAE,QAAQ,eACP,QAAQ,gBACP,KAAK,gBACL,KAAK,CAAC,CAAC,CAAC,WAAW,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,EACzE,SAAS,EAAE,EAAE,CACX,oJAAoJ,EACpJ,wFAAwF,EACxF,iCAAiC,CAClC,YAED,4BACa,GAAG,QAAQ,SAAS,gBACnB,KAAK,EACjB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,YAAY,EACxD,SAAS,EAAC,0BAA0B,GACpC,GACa,EACjB,KAAC,cAAc,IACb,KAAK,EAAC,OAAO,EACb,SAAS,EAAE,KAAK,CAAC,SAAS,eACf,GAAG,QAAQ,UAAU,EAChC,SAAS,EAAC,uBAAuB,YAEjC,KAAC,WAAW,iBACC,QAAQ,EACnB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EACpC,YAAY,EAAE,KAAK,CAAC,YAAY,EAChC,YAAY,EAAE,KAAK,CAAC,YAAY,EAChC,eAAe,EAAE,KAAK,CAAC,eAAe,EACtC,cAAc,EAAE,KAAK,CAAC,cAAc,EACpC,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,EAC9C,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,aAAa,EAAE,KAAK,CAAC,aAAa,EAClC,eAAe,EAAE,KAAK,CAAC,eAAe,EACtC,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,WAAW,EAAE,KAAK,CAAC,WAAW,GAC9B,GACa,IACT,EACT,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC,CACpB,KAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,SAAS,EACd,QAAQ,EAAE,QAAQ,eACP,GAAG,QAAQ,QAAQ,EAC9B,OAAO,EAAC,OAAO,EACf,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,YAEhC,KAAC,CAAC,0BAAe,GACV,CACV,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC"}
@@ -1,10 +1,4 @@
1
1
  import { useSyncExternalStore } from 'react';
2
- /**
3
- * The tab the user last picked, shared by every colour picker on the page (not
4
- * kept across reloads): a user who works from the palette should not have to
5
- * switch to them in every field. `null` until the user picks one, so the
6
- * picker's own default applies.
7
- */
8
2
  let currentTab = null;
9
3
  const listeners = new Set();
10
4
  const readTab = () => currentTab;
@@ -1 +1 @@
1
- {"version":3,"file":"colorPickerTab.js","sourceRoot":"","sources":["../../src/ColorPicker/colorPickerTab.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAI7C;;;;;GAKG;AACH,IAAI,UAAU,GAA0B,IAAI,CAAC;AAC7C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;AAExC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC;AAEjC,MAAM,UAAU,iBAAiB,CAAC,GAAmB;IACnD,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IACD,UAAU,GAAG,GAAG,CAAC;IACjB,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,SAAS,CAAC,QAAoB;IACrC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxB,OAAO,GAAG,EAAE;QACV,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,GAAG,GAAG,oBAAoB,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"colorPickerTab.js","sourceRoot":"","sources":["../../src/ColorPicker/colorPickerTab.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAU7C,IAAI,UAAU,GAA0B,IAAI,CAAC;AAC7C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;AAExC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC;AAEjC,MAAM,UAAU,iBAAiB,CAAC,GAAmB;IACnD,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IACD,UAAU,GAAG,GAAG,CAAC;IACjB,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,SAAS,CAAC,QAAoB;IACrC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxB,OAAO,GAAG,EAAE;QACV,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,GAAG,GAAG,oBAAoB,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;AAClC,CAAC"}
@@ -11,29 +11,20 @@ import { useColorPickerTab } from './colorPickerTab';
11
11
  import { coloursKeptFromSource, describeColor, normalizeColorPickerTabs, readAllowedColors, readAllPaletteColors, readPaletteColors, readTabs, THEME_COLOR_GROUP, sortColorsByHex, uniqueColorsByKey, } from './themeColors';
12
12
  export { setColorPickerTab, useColorPickerTab } from './colorPickerTab';
13
13
  export { ALLOWED_COLORS_VAR, coloursKeptFromSource, describeColor, normalizeColorPickerTabs, PALETTE_COUNT_VAR, parseTabs, readAllowedColors, readAllPaletteColors, readPaletteColors, readTabs, TABS_VAR, THEME_COLOR_GROUP, } from './themeColors';
14
- /** `#rrggbb`, or `#rrggbbaa` when the colour has opacity. */
15
14
  export const HEX_COLOR = /^#([0-9a-f]{6}|[0-9a-f]{8})$/i;
16
15
  const HEX_DIGITS = /^([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i;
17
16
  const OPAQUE_HEX_DIGITS = /^([0-9a-f]{3}|[0-9a-f]{6})$/i;
18
- /**
19
- * Both tabs' content is this tall, so switching tabs never resizes the
20
- * popover. `flex-none` undoes the panel's default `flex-1`, which in the
21
- * column-flex root would size it to its content instead.
22
- */
23
17
  const CONTENT_HEIGHT = 'twa:h-52 twa:flex-none twa:p-1';
24
18
  const PICKER_START = '#808080';
25
- /** Transparency checkerboard — the "no colour" preview. */
26
19
  export const CHECKERBOARD = {
27
20
  backgroundImage: 'conic-gradient(rgba(128,128,128,0.35) 25%, transparent 0 50%, rgba(128,128,128,0.35) 0 75%, transparent 0)',
28
21
  backgroundSize: '8px 8px',
29
22
  };
30
- /** `#abc` → `#aabbcc`; anything else lower-cased with the `#` ensured. */
31
23
  function normalizeHex(digits) {
32
24
  const d = digits.toLowerCase();
33
25
  return `#${d.length === 3 ? d.replace(/./g, (c) => c + c) : d}`;
34
26
  }
35
27
  const toHexByte = (n) => Math.round(n).toString(16).padStart(2, '0');
36
- /** A computed `rgb(…)` / `rgba(…)` as hex, with an alpha byte only when translucent. */
37
28
  function rgbToHex(rgb) {
38
29
  const match = /^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*([\d.]+))?\)/.exec(rgb);
39
30
  if (!match) {
@@ -43,11 +34,6 @@ function rgbToHex(rgb) {
43
34
  const alpha = match[4] === undefined ? 1 : Number(match[4]);
44
35
  return `#${toHexByte(r)}${toHexByte(g)}${toHexByte(b)}${alpha < 1 ? toHexByte(alpha * 255) : ''}`;
45
36
  }
46
- /**
47
- * The hex behind the current value: the value itself when it is one, or what
48
- * a theme token computes to on the preview element — so the precise picker
49
- * and the hex field start from the colour the user is looking at.
50
- */
51
37
  function useResolvedHex(value, previewRef) {
52
38
  const [resolved, setResolved] = useState(undefined);
53
39
  const isHex = !!value && HEX_COLOR.test(value);
@@ -61,12 +47,6 @@ function useResolvedHex(value, previewRef) {
61
47
  return isHex ? value.toLowerCase() : resolved;
62
48
  }
63
49
  const eyeDropperSupported = () => typeof window !== 'undefined' && typeof window.EyeDropper === 'function';
64
- /**
65
- * The swatches in effect where the picker renders, read from CSS once it is
66
- * in the document. With `filterColours`, every palette colour is supplied to
67
- * it; without, `--ab-cmp-color-picker__palette-count` caps the palette and
68
- * `--ab-cmp-color-picker__allowed-colors: palette` drops the theme colours.
69
- */
70
50
  function usePalette(elementRef, excludeColor, orderPaletteColours, removeDuplicates, showGroupLabels, filterColours) {
71
51
  const filterRef = useRef(filterColours);
72
52
  filterRef.current = filterColours;
@@ -96,7 +76,6 @@ function usePalette(elementRef, excludeColor, orderPaletteColours, removeDuplica
96
76
  }, [elementRef, excludeColor, orderPaletteColours, removeDuplicates, showGroupLabels, hasFilter]);
97
77
  return { sections, css };
98
78
  }
99
- /** The same colours, each with the hex the active theme paints for it. */
100
79
  function withComputedHex(host, themeColours, paletteColours) {
101
80
  const hexOf = computedHexes(host, [...themeColours, ...paletteColours]);
102
81
  const attach = (colors) => colors.map((color) => {
@@ -105,7 +84,6 @@ function withComputedHex(host, themeColours, paletteColours) {
105
84
  });
106
85
  return { themeColours: attach(themeColours), paletteColours: attach(paletteColours) };
107
86
  }
108
- /** Keeps only colours from the list they were returned in. No result shows every colour. */
109
87
  function applyColourFilter(themeColours, paletteColours, filterColours) {
110
88
  if (!filterColours) {
111
89
  return { themeColours, paletteColours };
@@ -119,12 +97,6 @@ function applyColourFilter(themeColours, paletteColours, filterColours) {
119
97
  paletteColours: coloursKeptFromSource(result.paletteColours, paletteColours),
120
98
  };
121
99
  }
122
- /**
123
- * One grid, or a Theme section and a Palette section. Ordering and duplicate
124
- * removal run after the filter: across the whole list when there is one grid,
125
- * and inside each group when the headings are shown. A palette colour that
126
- * paints the same hex as a theme colour is the one left out.
127
- */
128
100
  function layoutSwatches(host, lists, options) {
129
101
  const { themeColours, paletteColours } = lists;
130
102
  if (!options.showGroupLabels) {
@@ -141,7 +113,6 @@ function layoutSwatches(host, lists, options) {
141
113
  { id: 'palette', label: 'Palette', colors: arranged.paletteColours },
142
114
  ];
143
115
  const filled = sections.filter((section) => section.colors.length > 0);
144
- // a single remaining group has nothing to distinguish it from
145
116
  return filled.length > 1 ? filled : [{ id: 'all', colors: filled[0]?.colors ?? [] }];
146
117
  }
147
118
  function arrangeGroups(host, themeColours, paletteColours, options) {
@@ -163,12 +134,6 @@ function arrangeGroups(host, themeColours, paletteColours, options) {
163
134
  paletteColours: sortColorsByHex(palette, (color) => hexOf.get(color.value)),
164
135
  };
165
136
  }
166
- /**
167
- * The hex a swatch paints, read from a probe in the picker's theme so
168
- * `var(--ab-color-…)` resolves. With `removeDuplicates`, a later swatch that
169
- * paints the same hex is dropped. With `orderPaletteColours`, the rest are
170
- * ordered around the colour wheel. With neither, the given order is kept.
171
- */
172
137
  function arrangeSwatches(host, colors, options) {
173
138
  if (!options.orderPaletteColours && !options.removeDuplicates) {
174
139
  return colors;
@@ -201,27 +166,10 @@ function computedHexes(host, colors) {
201
166
  }
202
167
  return hexOf;
203
168
  }
204
- /**
205
- * The colour picker's popover body: a palette tab with the Adaptable theme
206
- * colours and a Custom tab with a free picker, over a footer shared by both —
207
- * the current colour, an eyedropper where the browser has one, and a hex
208
- * field.
209
- *
210
- * `tabs` sets which tabs show and in what order. The picker shows `tab` when
211
- * controlled; otherwise it opens on `defaultTab`, else on the tab the user
212
- * last picked in any picker on the page (see `colorPickerTab.ts`), else on
213
- * the first listed tab.
214
- *
215
- * Without `tabs`, the CSS variables decide: `--ab-cmp-color-picker__tabs`
216
- * sets the tabs, and `--ab-cmp-color-picker__allowed-colors: predefined`
217
- * drops the Custom tab, so no custom colour can be picked; `palette` also
218
- * drops the theme colours (unless `filterColours` is given).
219
- */
220
169
  export function ColorPicker(props) {
221
170
  const { value, onInput, onCommit, excludeColor, defaultColor = PICKER_START, includeAlpha = true, preciseTabLabel = 'Custom', colorsTabLabel = 'Palette', tabs: tabsProp, orderPaletteColours = true, removeDuplicates = true, showGroupLabels = false, filterColours, defaultTab, onTabChange, } = props;
222
171
  const dataName = props['data-name'];
223
172
  const [lastPickedTab, setLastPickedTab] = useColorPickerTab();
224
- // so a picker with `defaultTab` can still switch tabs while it is open
225
173
  const [ownTab, setOwnTab] = useState(null);
226
174
  const previewRef = useRef(null);
227
175
  const resolvedHex = useResolvedHex(value, previewRef);
@@ -232,13 +180,9 @@ export function ColorPicker(props) {
232
180
  const tab = [props.tab, ownTab, defaultTab, lastPickedTab].find((t) => t != null && shownTabs.includes(t)) ?? shownTabs[0];
233
181
  const defaultRef = useRef(null);
234
182
  const startHex = useResolvedHex(defaultColor, defaultRef) ?? PICKER_START;
235
- // the hex field is free text until it parses; it snaps back to the colour on blur
236
183
  const [hexDraft, setHexDraft] = useState(null);
237
184
  useEffect(() => setHexDraft(null), [value]);
238
185
  const hexText = hexDraft ?? (hex ? hex.slice(1) : '');
239
- // six (or eight, with opacity) digits commit as they are typed; a three-digit
240
- // shorthand only on Enter / blur, or it would expand under the user's cursor
241
- // at the third digit
242
186
  const commitHexDraft = (text, options) => {
243
187
  const digits = text.trim().replace(/^#/, '');
244
188
  const valid = includeAlpha ? HEX_DIGITS : OPAQUE_HEX_DIGITS;
@@ -260,7 +204,6 @@ export function ColorPicker(props) {
260
204
  onCommit(sRGBHex.toLowerCase());
261
205
  }
262
206
  catch {
263
- // cancelled with Escape
264
207
  }
265
208
  };
266
209
  const swatches = (_jsx("div", { className: "twa:flex twa:flex-col twa:gap-2.5", children: swatchSections.map((section) => (_jsxs("div", { className: "twa:flex twa:flex-col twa:gap-1", children: [section.label ? (_jsx("div", { "data-name": `${dataName}-group-${section.id}`, className: "twa:px-0.5 twa:text-xs twa:text-muted-foreground", children: section.label })) : null, _jsx(Swatches, { colors: section.colors, value: value, "data-name": dataName, onPick: (color) => {
@@ -268,7 +211,6 @@ export function ColorPicker(props) {
268
211
  props.onSwatchPicked?.();
269
212
  } })] }, section.id))) }));
270
213
  const described = value ? describeColor(value) : undefined;
271
- // a raw hex is already shown in the hex field; a theme or palette colour has a name
272
214
  const colorName = described && described !== value ? described : undefined;
273
215
  const previewSwatch = (_jsx("span", { ref: previewRef, "data-name": `${dataName}-preview`, "data-value": value, style: value ? { backgroundColor: value } : CHECKERBOARD, className: "twa:block twa:size-9 twa:shrink-0 twa:rounded-full twa:border twa:border-foreground/10" }));
274
216
  const preview = colorName ? (_jsx(Tooltip, { label: colorName, children: previewSwatch })) : (previewSwatch);
@@ -282,14 +224,7 @@ export function ColorPicker(props) {
282
224
  colors: (_jsxs(TabsTrigger, { value: "colors", "data-name": `${dataName}-tab-colors`, children: [_jsx(Grid2x2, { "aria-hidden": true }), colorsTabLabel] }, "colors")),
283
225
  };
284
226
  const contents = {
285
- precise: (_jsx(TabsContent, { value: "precise", className: CONTENT_HEIGHT, children: _jsx(PrecisePicker, { color: hex ?? startHex, onChange: onInput, "data-name": `${dataName}-precise`,
286
- // react-colorful injects unlayered styles, which beat our layered
287
- // utilities whatever the specificity — hence `!`. Its parts are
288
- // addressed by position (saturation area, then the hue and alpha
289
- // strips) and by the `…__pointer` class suffix, so the selectors
290
- // survive minified class-name scanning.
291
- className: cn('twa:w-full! twa:h-full!', 'twa:*:first:rounded-md! twa:*:first:border-0!', 'twa:*:not-first:mt-2.5! twa:*:not-first:h-3! twa:*:not-first:rounded-full!', 'twa:**:[[class$=pointer]]:size-4! twa:**:[[class$=pointer]]:border-2!') }) }, "precise")),
292
- // scrolls inside the same height as the precise tab, so the popover keeps its size
227
+ precise: (_jsx(TabsContent, { value: "precise", className: CONTENT_HEIGHT, children: _jsx(PrecisePicker, { color: hex ?? startHex, onChange: onInput, "data-name": `${dataName}-precise`, className: cn('twa:w-full! twa:h-full!', 'twa:*:first:rounded-md! twa:*:first:border-0!', 'twa:*:not-first:mt-2.5! twa:*:not-first:h-3! twa:*:not-first:rounded-full!', 'twa:**:[[class$=pointer]]:size-4! twa:**:[[class$=pointer]]:border-2!') }) }, "precise")),
293
228
  colors: (_jsx(TabsContent, { value: "colors", className: cn(CONTENT_HEIGHT, SWATCHES_LAYOUT), children: swatches }, "colors")),
294
229
  };
295
230
  return (_jsxs(Tabs, { value: tab, onValueChange: (next) => {