@astryxdesign/lab 0.7.5-canary.04434e7 → 0.7.5-canary.07030cb

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 (65) hide show
  1. package/dist/Chat/ChatUnreadDivider.js +1 -1
  2. package/dist/CircularProgress/CircularProgress.js +3 -3
  3. package/dist/Comments/icons.d.ts.map +1 -1
  4. package/dist/Comments/icons.js +9 -2
  5. package/dist/DiffViewer/DiffViewer.d.ts +15 -4
  6. package/dist/DiffViewer/DiffViewer.d.ts.map +1 -1
  7. package/dist/DiffViewer/DiffViewer.js +31 -6
  8. package/dist/EmojiPicker/EmojiPicker.js +5 -8
  9. package/dist/ListInput/ListInput.d.ts.map +1 -1
  10. package/dist/ListInput/ListInput.js +19 -0
  11. package/dist/LogStream/LogStream.d.ts.map +1 -1
  12. package/dist/LogStream/LogStream.js +2 -2
  13. package/dist/MobilePowerSearch/MobilePowerSearch.d.ts +41 -18
  14. package/dist/MobilePowerSearch/MobilePowerSearch.d.ts.map +1 -1
  15. package/dist/MobilePowerSearch/MobilePowerSearch.js +801 -506
  16. package/dist/MobilePowerSearch/MobilePowerSearchValueEditor.d.ts +2 -3
  17. package/dist/MobilePowerSearch/MobilePowerSearchValueEditor.d.ts.map +1 -1
  18. package/dist/MobilePowerSearch/MobilePowerSearchValueEditor.js +14 -33
  19. package/dist/MobilePowerSearch/mobilePowerSearchUtils.d.ts +23 -1
  20. package/dist/MobilePowerSearch/mobilePowerSearchUtils.d.ts.map +1 -1
  21. package/dist/MobilePowerSearch/mobilePowerSearchUtils.js +62 -2
  22. package/dist/MobileTokenizer/MobileTokenizer.d.ts +35 -10
  23. package/dist/MobileTokenizer/MobileTokenizer.d.ts.map +1 -1
  24. package/dist/MobileTokenizer/MobileTokenizer.js +688 -299
  25. package/dist/SVGIcon/SVGIcon.js +3 -3
  26. package/dist/Stat/Stat.js +2 -2
  27. package/dist/TransferList/TransferList.d.ts.map +1 -1
  28. package/dist/TransferList/TransferList.js +20 -0
  29. package/dist/lab.css +11 -9
  30. package/dist/reorderStyles.d.ts +2 -2
  31. package/dist/reorderStyles.d.ts.map +1 -1
  32. package/dist/reorderStyles.js +2 -2
  33. package/package.json +7 -7
  34. package/src/Chat/ChatUnreadDivider.tsx +1 -1
  35. package/src/Chat/__tests__/ChatTypingIndicator.a11y.chromium.spec.ts +1 -0
  36. package/src/CircularProgress/CircularProgress.tsx +3 -3
  37. package/src/CircularProgress/__tests__/CircularProgress.a11y.chromium.spec.ts +1 -0
  38. package/src/Comments/Comments.test.tsx +10 -4
  39. package/src/Comments/icons.test.tsx +76 -0
  40. package/src/Comments/icons.tsx +9 -2
  41. package/src/DiffViewer/DiffViewer.doc.mjs +8 -2
  42. package/src/DiffViewer/DiffViewer.test.tsx +71 -0
  43. package/src/DiffViewer/DiffViewer.tsx +52 -9
  44. package/src/EmojiPicker/EmojiPicker.test.tsx +21 -0
  45. package/src/EmojiPicker/EmojiPicker.tsx +8 -8
  46. package/src/ListInput/ListInput.test.tsx +43 -3
  47. package/src/ListInput/ListInput.tsx +23 -0
  48. package/src/LogStream/LogStream.doc.mjs +1 -1
  49. package/src/LogStream/LogStream.tsx +3 -5
  50. package/src/MobilePowerSearch/MobilePowerSearch.doc.mjs +4 -4
  51. package/src/MobilePowerSearch/MobilePowerSearch.test.tsx +823 -70
  52. package/src/MobilePowerSearch/MobilePowerSearch.tsx +965 -580
  53. package/src/MobilePowerSearch/MobilePowerSearchValueEditor.tsx +13 -37
  54. package/src/MobilePowerSearch/mobilePowerSearchUtils.ts +68 -1
  55. package/src/MobileTokenizer/MobileTokenizer.doc.mjs +8 -4
  56. package/src/MobileTokenizer/MobileTokenizer.test.tsx +543 -3
  57. package/src/MobileTokenizer/MobileTokenizer.tsx +859 -339
  58. package/src/SVGIcon/SVGIcon.tsx +3 -3
  59. package/src/Stat/Stat.tsx +2 -2
  60. package/src/TransferList/TransferList.composition.test.tsx +4 -4
  61. package/src/TransferList/TransferList.test.tsx +36 -0
  62. package/src/TransferList/TransferList.tsx +24 -0
  63. package/src/TransferList/TransferListSelector.test.tsx +4 -4
  64. package/src/__tests__/ReorderGripPinchZoom.a11y.chromium.spec.ts +178 -0
  65. package/src/reorderStyles.ts +7 -2
@@ -74,7 +74,7 @@ export function ChatUnreadDivider({
74
74
  }
75
75
  }), /*#__PURE__*/_jsx("span", {
76
76
  ...{
77
- className: "x2lah0s x9ynric x141an7d x1lvx875 xjt36v0 x1ltkj2j"
77
+ className: "x2lah0s x9ynric x141an7d x1lvx875 x1wj83wy x1ltkj2j"
78
78
  },
79
79
  children: label
80
80
  })]
@@ -106,15 +106,15 @@ const variantStyles = {
106
106
  $$css: true
107
107
  },
108
108
  success: {
109
- kjVXCG: "x8y33gb",
109
+ kjVXCG: "x88o7k4",
110
110
  $$css: true
111
111
  },
112
112
  warning: {
113
- kjVXCG: "x9ezeq1",
113
+ kjVXCG: "x16d96h5",
114
114
  $$css: true
115
115
  },
116
116
  error: {
117
- kjVXCG: "x1vco6zm",
117
+ kjVXCG: "xqb94c9",
118
118
  $$css: true
119
119
  },
120
120
  neutral: {
@@ -1 +1 @@
1
- {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/Comments/icons.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAwB,KAAK,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAG9E,kEAAkE;AAClE,eAAO,MAAM,iBAAiB;;;;;;;;;;CAUpB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,iBAAiB,CAAC;AA2E7D;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,KAAmB,EACnB,IAAW,GACZ,EAAE;IACD,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CACnC,+BASA"}
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/Comments/icons.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAwB,KAAK,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAG9E,kEAAkE;AAClE,eAAO,MAAM,iBAAiB;;;;;;;;;;CAUpB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAkF7D;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,KAAmB,EACnB,IAAW,GACZ,EAAE;IACD,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CACnC,+BASA"}
@@ -16,7 +16,7 @@ import { getExtendedIcon, Icon } from '@astryxdesign/core/Icon';
16
16
  import { useThemeName } from '@astryxdesign/core/theme';
17
17
 
18
18
  /** Stable icon-registry keys for the Comments family's glyphs. */
19
- import { jsx as _jsx } from "react/jsx-runtime";
19
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
20
20
  export const COMMENT_ICON_KEYS = {
21
21
  addReaction: 'comment:addReaction',
22
22
  reply: 'comment:reply',
@@ -72,6 +72,13 @@ const FALLBACK_GLYPHS = {
72
72
  event: glyph(['M12 3v5.5M12 15.5V21', 'M12 15.5a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7z'])
73
73
  };
74
74
 
75
+ /**
76
+ * The fallback `getExtendedIcon` returns only when no theme, registered, or
77
+ * built-in entry answers a key. A function entry that returns `null` still
78
+ * answers it: its result is final, so the glyph draws nothing.
79
+ */
80
+ const NO_ENTRY = /*#__PURE__*/_jsx(_Fragment, {});
81
+
75
82
  /**
76
83
  * A comment glyph at the icon slot's size: the active theme's icon for its
77
84
  * `comment:*` key when one is registered, else the bundled default.
@@ -83,7 +90,7 @@ export function CommentIcon({
83
90
  }) {
84
91
  const themeName = useThemeName();
85
92
  const key = COMMENT_ICON_KEYS[name];
86
- const hasOverride = getExtendedIcon(key, undefined, themeName) != null;
93
+ const hasOverride = getExtendedIcon(key, NO_ENTRY, themeName) !== NO_ENTRY;
87
94
  const fallback = name in REGISTRY_FALLBACKS ? REGISTRY_FALLBACKS[name] : FALLBACK_GLYPHS[name];
88
95
  return /*#__PURE__*/_jsx(Icon, {
89
96
  icon: hasOverride ? key : fallback,
@@ -1,5 +1,6 @@
1
1
  import { type MouseEvent, type ReactNode, type Ref } from 'react';
2
2
  import type { BaseProps } from '@astryxdesign/core';
3
+ import { type CodeLanguage } from '@astryxdesign/core/CodeBlock';
3
4
  import { type SyntaxThemeDefinition } from '@astryxdesign/core/theme/syntax';
4
5
  import type { DiffViewerFile, DiffViewerLineRef } from './diffTypes.js';
5
6
  /** How hunks are laid out: one column, or old and new side by side. */
@@ -34,10 +35,20 @@ export interface DiffViewerProps extends BaseProps<HTMLDivElement> {
34
35
  */
35
36
  viewMode?: DiffViewerViewMode;
36
37
  /**
37
- * Syntax-highlighting language. Defaults to one inferred from the file's
38
- * extension; unknown extensions render as plain text.
38
+ * Syntax-highlighting language: a built-in identifier such as `'rust'`, or
39
+ * a language value — a module imported on its own, such as `graphql` from
40
+ * `@astryxdesign/core/CodeBlock/languages/graphql`, or one made with
41
+ * `createCodeLanguage`. Defaults to one inferred from the file's name or
42
+ * extension among the built-ins and `codeLanguages`; an unmatched file
43
+ * renders as plain text.
39
44
  */
40
- language?: string;
45
+ language?: string | CodeLanguage;
46
+ /**
47
+ * Language values the file's name or extension may infer, such as
48
+ * `[graphql, dockerfile]`; a later entry wins. Pass the same list to every
49
+ * DiffViewer on a review page.
50
+ */
51
+ codeLanguages?: ReadonlyArray<CodeLanguage>;
41
52
  /**
42
53
  * Show the old and new line-number gutters.
43
54
  * @default true
@@ -125,7 +136,7 @@ export interface DiffViewerProps extends BaseProps<HTMLDivElement> {
125
136
  * <DiffViewer file={file} viewMode="split" />
126
137
  * ```
127
138
  */
128
- export declare function DiffViewer({ ref, file, viewMode, language: languageProp, hasLineNumbers, isWrapped, changeIndicator, inlineHighlight, hasChangeBackground, isCollapsible, isCollapsed: isCollapsedProp, defaultIsCollapsed, onCollapsedChange, headerEnd, renderLineAnnotation, onLineNumberClick, maxHeight, syntaxTheme, xstyle, className, style, ...props }: DiffViewerProps): import("react").JSX.Element;
139
+ export declare function DiffViewer({ ref, file, viewMode, language: languageProp, codeLanguages, hasLineNumbers, isWrapped, changeIndicator, inlineHighlight, hasChangeBackground, isCollapsible, isCollapsed: isCollapsedProp, defaultIsCollapsed, onCollapsedChange, headerEnd, renderLineAnnotation, onLineNumberClick, maxHeight, syntaxTheme, xstyle, className, style, ...props }: DiffViewerProps): import("react").JSX.Element;
129
140
  export declare namespace DiffViewer {
130
141
  var displayName: string;
131
142
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DiffViewer.d.ts","sourceRoot":"","sources":["../../src/DiffViewer/DiffViewer.tsx"],"names":[],"mappings":"AAqCA,OAAO,EAQL,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,GAAG,EAET,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAalD,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,iCAAiC,CAAC;AAqBzC,OAAO,KAAK,EACV,cAAc,EAGd,iBAAiB,EAElB,MAAM,aAAa,CAAC;AAGrB,uEAAuE;AACvE,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,OAAO,CAAC;AAErD;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpE;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjE,MAAM,WAAW,eAAgB,SAAQ,SAAS,CAAC,cAAc,CAAC;IAChE,yCAAyC;IACzC,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAC1B;;;OAGG;IACH,IAAI,EAAE,cAAc,CAAC;IACrB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,eAAe,CAAC,EAAE,yBAAyB,CAAC;IAC5C;;;;;OAKG;IACH,eAAe,CAAC,EAAE,yBAAyB,CAAC;IAC5C;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iEAAiE;IACjE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,uEAAuE;IACvE,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,SAAS,CAAC;IAC7D;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,CAClB,GAAG,EAAE,iBAAiB,EACtB,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,KACjC,IAAI,CAAC;IACV,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B;;;OAGG;IACH,WAAW,CAAC,EAAE,qBAAqB,CAAC;CACrC;AAk0BD;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,EACzB,GAAG,EACH,IAAI,EACJ,QAAoB,EACpB,QAAQ,EAAE,YAAY,EACtB,cAAqB,EACrB,SAAiB,EACjB,eAA2B,EAC3B,eAAwB,EACxB,mBAA0B,EAC1B,aAAoB,EACpB,WAAW,EAAE,eAAe,EAC5B,kBAA0B,EAC1B,iBAAiB,EACjB,SAAS,EACT,oBAAoB,EACpB,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,eAAe,+BAopBjB;yBA3qBe,UAAU"}
1
+ {"version":3,"file":"DiffViewer.d.ts","sourceRoot":"","sources":["../../src/DiffViewer/DiffViewer.tsx"],"names":[],"mappings":"AAqCA,OAAO,EAQL,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,GAAG,EAET,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAGL,KAAK,YAAY,EAGlB,MAAM,8BAA8B,CAAC;AAOtC,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,iCAAiC,CAAC;AAqBzC,OAAO,KAAK,EACV,cAAc,EAGd,iBAAiB,EAElB,MAAM,aAAa,CAAC;AAGrB,uEAAuE;AACvE,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,OAAO,CAAC;AAErD;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpE;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjE,MAAM,WAAW,eAAgB,SAAQ,SAAS,CAAC,cAAc,CAAC;IAChE,yCAAyC;IACzC,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAC1B;;;OAGG;IACH,IAAI,EAAE,cAAc,CAAC;IACrB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IACjC;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IAC5C;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,eAAe,CAAC,EAAE,yBAAyB,CAAC;IAC5C;;;;;OAKG;IACH,eAAe,CAAC,EAAE,yBAAyB,CAAC;IAC5C;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iEAAiE;IACjE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,uEAAuE;IACvE,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,SAAS,CAAC;IAC7D;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,CAClB,GAAG,EAAE,iBAAiB,EACtB,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,KACjC,IAAI,CAAC;IACV,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B;;;OAGG;IACH,WAAW,CAAC,EAAE,qBAAqB,CAAC;CACrC;AAi2BD;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,EACzB,GAAG,EACH,IAAI,EACJ,QAAoB,EACpB,QAAQ,EAAE,YAAY,EACtB,aAAa,EACb,cAAqB,EACrB,SAAiB,EACjB,eAA2B,EAC3B,eAAwB,EACxB,mBAA0B,EAC1B,aAAoB,EACpB,WAAW,EAAE,eAAe,EAC5B,kBAA0B,EAC1B,iBAAiB,EACjB,SAAS,EACT,oBAAoB,EACpB,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,eAAe,+BAopBjB;yBA5qBe,UAAU"}
@@ -92,18 +92,42 @@ const EXTENSION_LANGUAGES = {
92
92
  yaml: 'yaml',
93
93
  yml: 'yaml',
94
94
  md: 'markdown',
95
- markdown: 'markdown'
95
+ markdown: 'markdown',
96
+ c: 'c',
97
+ h: 'c',
98
+ cpp: 'cpp',
99
+ cc: 'cpp',
100
+ cxx: 'cpp',
101
+ hpp: 'cpp',
102
+ hh: 'cpp',
103
+ sql: 'sql',
104
+ rs: 'rust',
105
+ kt: 'kotlin',
106
+ kts: 'kotlin',
107
+ swift: 'swift',
108
+ go: 'go'
96
109
  };
97
- function inferLanguage(path) {
110
+
111
+ /**
112
+ * The language a file's name or extension infers: a listed value first (a
113
+ * later entry wins), then a built-in, else plain text (CodeBlock FR13).
114
+ */
115
+ function inferLanguage(path, codeLanguages) {
98
116
  if (path == null) {
99
117
  return 'plaintext';
100
118
  }
101
119
  const base = path.slice(path.lastIndexOf('/') + 1);
102
120
  const dot = base.lastIndexOf('.');
103
- if (dot <= 0) {
104
- return 'plaintext';
121
+ const extension = dot > 0 ? base.slice(dot + 1).toLowerCase() : null;
122
+ if (codeLanguages != null) {
123
+ for (let i = codeLanguages.length - 1; i >= 0; i--) {
124
+ const language = codeLanguages[i];
125
+ if (language.fileNames.includes(base) || extension != null && language.fileExtensions.includes(extension)) {
126
+ return language;
127
+ }
128
+ }
105
129
  }
106
- return EXTENSION_LANGUAGES[base.slice(dot + 1).toLowerCase()] ?? 'plaintext';
130
+ return extension == null ? 'plaintext' : EXTENSION_LANGUAGES[extension] ?? 'plaintext';
107
131
  }
108
132
 
109
133
  // ---------------------------------------------------------------------------
@@ -698,6 +722,7 @@ export function DiffViewer({
698
722
  file,
699
723
  viewMode = 'unified',
700
724
  language: languageProp,
725
+ codeLanguages,
701
726
  hasLineNumbers = true,
702
727
  isWrapped = false,
703
728
  changeIndicator = 'classic',
@@ -723,7 +748,7 @@ export function DiffViewer({
723
748
  ensureHighlightStyles();
724
749
  }, []);
725
750
  const path = file.newPath ?? file.oldPath;
726
- const language = languageProp ?? inferLanguage(path);
751
+ const language = languageProp ?? inferLanguage(path, codeLanguages);
727
752
  const displayPath = file.status === 'renamed' && file.oldPath != null && file.newPath != null ? t('@astryx.diffViewer.renamedPath', {
728
753
  oldPath: file.oldPath,
729
754
  newPath: file.newPath
@@ -399,19 +399,16 @@ export function EmojiPicker({
399
399
  size: "sm",
400
400
  label: t('@astryx.emojiPicker.loading')
401
401
  })
402
- }) : queryWords.length === 0 && categories === 'failed' ? /*#__PURE__*/_jsx(HStack, {
403
- paddingInline: 3,
404
- children: /*#__PURE__*/_jsx(Text, {
405
- type: "supporting",
406
- color: "secondary",
407
- children: t('@astryx.emojiPicker.loadFailed')
408
- })
409
402
  }) : null, /*#__PURE__*/_jsx(HStack, {
410
403
  role: "status",
411
404
  "aria-atomic": "true",
412
405
  paddingInline: 3,
413
406
  "data-emoji-picker-search-status": "true",
414
- children: noResultsMessage != null && /*#__PURE__*/_jsx(Text, {
407
+ children: queryWords.length === 0 && categories === 'failed' ? /*#__PURE__*/_jsx(Text, {
408
+ type: "supporting",
409
+ color: "secondary",
410
+ children: t('@astryx.emojiPicker.loadFailed')
411
+ }) : noResultsMessage != null && /*#__PURE__*/_jsx(Text, {
415
412
  type: "supporting",
416
413
  color: "secondary",
417
414
  children: noResultsMessage
@@ -1 +1 @@
1
- {"version":3,"file":"ListInput.d.ts","sourceRoot":"","sources":["../../src/ListInput/ListInput.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ListInput.d.ts","sourceRoot":"","sources":["../../src/ListInput/ListInput.tsx"],"names":[],"mappings":"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"}
@@ -476,6 +476,25 @@ export function ListInput({
476
476
  announce(t('@astryx.listInput.announceReorderCancelled'));
477
477
  }
478
478
  }, [isDisabled, isLoading, announce, t]);
479
+
480
+ // A second pointer that lands anywhere during a pointer reorder (the second
481
+ // finger of a pinch) cancels the reorder. A pinch whose first finger slid
482
+ // first zooms without a pointercancel, so the drag would otherwise commit on
483
+ // release and drop the row at the end of the list.
484
+ useEffect(() => {
485
+ if (!isPointerReorderActive) {
486
+ return;
487
+ }
488
+ const onPointerDown = event => {
489
+ const activeState = reorderStateRef.current;
490
+ if (activeState?.mode === 'pointer' && activeState.pointerId !== event.pointerId) {
491
+ setReorderState(null);
492
+ announce(t('@astryx.listInput.announceReorderCancelled'));
493
+ }
494
+ };
495
+ document.addEventListener('pointerdown', onPointerDown, true);
496
+ return () => document.removeEventListener('pointerdown', onPointerDown, true);
497
+ }, [isPointerReorderActive, announce, t]);
479
498
  useEffect(() => {
480
499
  const activeAnimations = activeMutationAnimationsRef.current;
481
500
  return () => {
@@ -1 +1 @@
1
- {"version":3,"file":"LogStream.d.ts","sourceRoot":"","sources":["../../src/LogStream/LogStream.tsx"],"names":[],"mappings":"AAyBA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAkBlD,iCAAiC;AACjC,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEjE,0EAA0E;AAC1E,MAAM,WAAW,QAAQ;IACvB,4CAA4C;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,IAAI,CAC1C,SAAS,CAAC,cAAc,CAAC,EACzB,UAAU,CACX;IACC,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,6DAA6D;IAC7D,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IACjC;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,+CAA+C;IAC/C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,SAAS,CAAC;CAC9C;AAwOD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,OAAmB,EACnB,WAAW,EACX,cAAc,EACd,SAAS,EACT,aAAoB,EACpB,KAAoB,EACpB,WAAW,EACX,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,IAAI,EACR,EAAE,cAAc,+BAqNhB;yBAnOe,SAAS"}
1
+ {"version":3,"file":"LogStream.d.ts","sourceRoot":"","sources":["../../src/LogStream/LogStream.tsx"],"names":[],"mappings":"AAyBA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAkBlD,iCAAiC;AACjC,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEjE,0EAA0E;AAC1E,MAAM,WAAW,QAAQ;IACvB,4CAA4C;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,IAAI,CAC1C,SAAS,CAAC,cAAc,CAAC,EACzB,UAAU,CACX;IACC,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,6DAA6D;IAC7D,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IACjC;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,+CAA+C;IAC/C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,SAAS,CAAC;CAC9C;AAsOD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,OAAmB,EACnB,WAAW,EACX,cAAc,EACd,SAAS,EACT,aAAoB,EACpB,KAAoB,EACpB,WAAW,EACX,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,IAAI,EACR,EAAE,cAAc,+BAqNhB;yBAnOe,SAAS"}
@@ -164,11 +164,11 @@ const styles = {
164
164
  $$css: true
165
165
  },
166
166
  levelWarn: {
167
- kMwMTN: "xuj0v0c",
167
+ kMwMTN: "x10h9ou4",
168
168
  $$css: true
169
169
  },
170
170
  levelError: {
171
- kMwMTN: "x1lenag",
171
+ kMwMTN: "x1wj83wy",
172
172
  $$css: true
173
173
  },
174
174
  levelInfoTerminal: {
@@ -2,14 +2,17 @@
2
2
  * @file MobilePowerSearch.tsx
3
3
  * @input Core PowerSearch config, filters and onChange (the same props as
4
4
  * @astryxdesign/core PowerSearch); public @astryxdesign/core components only
5
- * (BottomSheet, BottomSheetSwitcher, Button, Field, Heading, Icon, List,
6
- * RadioList, Text, TextInput, Token, Tooltip hooks, i18n, hooks, utils,
7
- * Layout container-padding styles)
5
+ * (BottomSheet, Button, Field, Heading, Icon, List,
6
+ * RadioList, Text, TextInput, Token, Tooltip hooks, i18n, hooks —
7
+ * useAnnounce for every announcement — utils, Layout container-padding
8
+ * styles)
8
9
  * @output Exports MobilePowerSearch — Lab prototype of the touch PowerSearch
9
10
  * flow: the whole field is one "Manage filters" trigger with display-only
10
11
  * tokens, a Filters sheet with chevron rows, Add filter and sticky
11
12
  * Clear all / Done, and a field → operator → value drill-down whose edit
12
- * sheet holds Cancel / Apply / Remove
13
+ * sheet holds Cancel / Apply / Remove; the steps are sibling BottomSheets
14
+ * that replace one another on a same-update switch (one scrim, the
15
+ * entering step above the leaving one)
13
16
  * @position Lab (canary) stack layer 1: validates the touch design before any
14
17
  * Core promotion. The caller chooses it explicitly
15
18
  * (`isTouch ? MobilePowerSearch : PowerSearch`); there is no pointer
@@ -23,21 +26,36 @@
23
26
  * - no `menuWidth` or `tokenOverflowBehavior`: there is no typeahead popover
24
27
  * and tokens wrap inside the trigger;
25
28
  * - strings are literals (no new i18n keys; existing Core keys are reused
26
- * only for the result count and the add announcement);
27
- * - announcements made while a sheet is open go to a persistent polite
28
- * region inside each sheet, created empty and kept mounted (spec AST-086
29
- * FR3), because the shared page-body channel is not exposed while a
30
- * native modal dialog is open (its Platform support section); the closed
31
- * field still uses the shared channel;
29
+ * for the result count, the add and the removal announcements);
30
+ * - announcements made while a sheet is open are delivered inside that
31
+ * sheet's dialog by `useAnnounce`, called from a `SheetAnnouncer` rendered
32
+ * in each step (spec AST-086 FR14): the shared page-body channel is not
33
+ * exposed while a native modal dialog is open. Empty-result and
34
+ * unavailable messages are spoken from their rendered element, once per
35
+ * occasion; Clear all's outcome and a result count that changes during
36
+ * the flow's exit are spoken once focus is back on the trigger;
32
37
  * - no theming contract: no `power-search` theme target or selectors;
33
- * - `components[type].Token` overrides receive Core's PowerSearchTokenProps,
34
- * which carry no `timezoneID`; the built-in token renders Core `Token`
35
- * directly so the configured timezone reaches tokens and row summaries
36
- * through the same formatter;
38
+ * - `components[type].Token` overrides receive Core's PowerSearchTokenProps;
39
+ * the built-in token renders Core `Token` directly, with the value text
40
+ * the Filters rows share; `timezoneID` is accepted for API parity and
41
+ * changes no date value (dates follow Core's semantics, below);
37
42
  * - fields whose every operator is `nested` are left out with a development
38
- * warning; `nested` has no sheet editor yet;
39
- * - `date_absolute` honors `isDateOnly: false` with a DateTimeInput, and
40
- * `date_relative` is a row list rather than a Selector;
43
+ * warning; `nested` has no sheet editor yet (Core's built-in nested editor
44
+ * is not exported);
45
+ * - dates follow Core PowerSearch's semantics (`component:PowerSearch`
46
+ * DEC-3, FR11, FR12): a `date_absolute` is the UTC midnight of the chosen
47
+ * day, which the date editor reads and writes as that UTC day; the token
48
+ * and the Filters row show it as the Core token does (the day in the
49
+ * browser's zone, no time); `isDateOnly: false` gets the same date-only
50
+ * editor, and `date_relative` is a row list rather than a Selector;
51
+ * - Clear all removes every filter, read-only ones included, reported as one
52
+ * `remove` at the last index, as the Core field's clear control does;
53
+ * - a filter whose field or operator the config no longer knows lists by its
54
+ * raw keys and its step is the unavailable state, whose Remove is the way
55
+ * out; rows and tokens are keyed by filter identity, so a controlled
56
+ * reorder or a removal above the focused row keeps focus where it was, and
57
+ * a removed focused control hands focus to the nearest remaining button
58
+ * row, else the sheet's first control;
41
59
  * - the sheets pad their own content (`padding={0}` on BottomSheet); each
42
60
  * sheet body publishes that padding as container padding so its
43
61
  * `edge="bleed"` lists run edge to edge with row text on the body's inset.
@@ -100,7 +118,12 @@ export interface MobilePowerSearchProps extends Omit<BaseProps<HTMLElement>, 'on
100
118
  maxSearchResults?: number;
101
119
  /** Label for the edit sheet's save action. @default 'Apply' when editing, 'Add filter' when creating */
102
120
  popoverSaveButtonLabel?: string;
103
- /** Timezone ID for date formatting in tokens, row summaries, and date editors. */
121
+ /**
122
+ * Accepted for API parity with Core PowerSearch. Dates follow Core's
123
+ * semantics: tokens and rows show a `date_absolute` as the Core token does
124
+ * (its day in the browser's zone) and the date editors read and write the
125
+ * UTC day, so this prop does not change a date value today.
126
+ */
104
127
  timezoneID?: string;
105
128
  /** Content at the end of the field row. */
106
129
  endContent?: ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"MobilePowerSearch.d.ts","sourceRoot":"","sources":["../../src/MobilePowerSearch/MobilePowerSearch.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MobilePowerSearch.d.ts","sourceRoot":"","sources":["../../src/MobilePowerSearch/MobilePowerSearch.tsx"],"names":[],"mappings":"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"}