cursedbelt 5.91.0 → 5.92.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/dist/react/activity-bar/activityBar.css +5 -0
  2. package/dist/react/code-editor/markdownRules.d.ts +8 -2
  3. package/dist/react/code-editor/markdownRules.d.ts.map +1 -1
  4. package/dist/react/code-editor/markdownRules.js +7 -3
  5. package/dist/react/code-editor/markdownRules.js.map +1 -1
  6. package/dist/react/components/Autocomplete.d.ts +11 -2
  7. package/dist/react/components/Autocomplete.d.ts.map +1 -1
  8. package/dist/react/components/Autocomplete.js +7 -6
  9. package/dist/react/components/Autocomplete.js.map +1 -1
  10. package/dist/react/components/Button.d.ts.map +1 -1
  11. package/dist/react/components/Button.js +7 -1
  12. package/dist/react/components/Button.js.map +1 -1
  13. package/dist/react/components/FileDropZone.d.ts.map +1 -1
  14. package/dist/react/components/FileDropZone.js +12 -76
  15. package/dist/react/components/FileDropZone.js.map +1 -1
  16. package/dist/react/components/TagsInput.d.ts +46 -4
  17. package/dist/react/components/TagsInput.d.ts.map +1 -1
  18. package/dist/react/components/TagsInput.js +92 -39
  19. package/dist/react/components/TagsInput.js.map +1 -1
  20. package/dist/react/components/TagsInputSuggesting.d.ts +8 -0
  21. package/dist/react/components/TagsInputSuggesting.d.ts.map +1 -0
  22. package/dist/react/components/TagsInputSuggesting.js +48 -0
  23. package/dist/react/components/TagsInputSuggesting.js.map +1 -0
  24. package/dist/react/components/dropTransfer.d.ts +53 -0
  25. package/dist/react/components/dropTransfer.d.ts.map +1 -0
  26. package/dist/react/components/dropTransfer.js +116 -0
  27. package/dist/react/components/dropTransfer.js.map +1 -0
  28. package/dist/react/components/suggestionList.d.ts +13 -0
  29. package/dist/react/components/suggestionList.d.ts.map +1 -0
  30. package/dist/react/components/suggestionList.js +19 -0
  31. package/dist/react/components/suggestionList.js.map +1 -0
  32. package/dist/react/index.d.ts +1 -0
  33. package/dist/react/index.d.ts.map +1 -1
  34. package/dist/react/index.js +1 -0
  35. package/dist/react/index.js.map +1 -1
  36. package/dist/react/media-gallery/MediaMetaEditor.d.ts +4 -4
  37. package/dist/react/optimistic/optimistic.d.ts +11 -2
  38. package/dist/react/optimistic/optimistic.d.ts.map +1 -1
  39. package/dist/react/optimistic/optimistic.js +4 -2
  40. package/dist/react/optimistic/optimistic.js.map +1 -1
  41. package/dist/scripts/guardrailsEnforce.d.ts.map +1 -1
  42. package/dist/styles-areas/analytics.css +14 -19
  43. package/dist/styles-areas/auth.css +3 -4
  44. package/dist/styles-areas/canvas-hud.css +3 -3
  45. package/dist/styles-areas/chat.css +10 -11
  46. package/dist/styles-areas/code-editor.css +2 -2
  47. package/dist/styles-areas/core.css +60 -54
  48. package/dist/styles-areas/data-table.css +13 -17
  49. package/dist/styles-areas/disk-usage.css +6 -7
  50. package/dist/styles-areas/emoji.css +2 -3
  51. package/dist/styles-areas/fields.css +15 -20
  52. package/dist/styles-areas/master-detail.css +3 -4
  53. package/dist/styles-areas/master-lock.css +1 -2
  54. package/dist/styles-areas/media-gallery.css +8 -10
  55. package/dist/styles-areas/rich-text.css +3 -3
  56. package/dist/styles-areas/stats.css +13 -17
  57. package/dist/styles-areas/wizard.css +6 -11
  58. package/package.json +7 -1
  59. package/scripts/guardrails-baseline.json +1 -1
  60. package/scripts/guardrailsEnforce.spec.ts +13 -0
  61. package/scripts/guardrailsEnforce.ts +5 -3
  62. package/scripts/styleAreas.ts +3 -0
  63. package/src/react/activity-bar/activityBar.css +5 -0
  64. package/src/react/code-editor/markdownRules.spec.ts +10 -2
  65. package/src/react/code-editor/markdownRules.ts +11 -3
  66. package/src/react/components/Autocomplete.spec.tsx +55 -1
  67. package/src/react/components/Autocomplete.tsx +18 -43
  68. package/src/react/components/Button.spec.tsx +17 -0
  69. package/src/react/components/Button.tsx +7 -1
  70. package/src/react/components/FileDropZone.tsx +12 -83
  71. package/src/react/components/TagsInput.spec.tsx +129 -14
  72. package/src/react/components/TagsInput.tsx +153 -85
  73. package/src/react/components/TagsInputSuggesting.tsx +94 -0
  74. package/src/react/components/dropTransfer.spec.ts +76 -0
  75. package/src/react/components/dropTransfer.ts +133 -0
  76. package/src/react/components/suggestionList.tsx +66 -0
  77. package/src/react/disk-usage/DiskUsage.spec.tsx +3 -0
  78. package/src/react/index.ts +1 -0
  79. package/src/react/lib/floatingStyles.spec.ts +2 -1
  80. package/src/react/media-gallery/MediaMetaEditor.tsx +4 -4
  81. package/src/react/optimistic/optimistic.spec.tsx +41 -0
  82. package/src/react/optimistic/optimistic.ts +13 -4
  83. package/src/styles-areas/analytics.css +14 -19
  84. package/src/styles-areas/auth.css +3 -4
  85. package/src/styles-areas/canvas-hud.css +3 -3
  86. package/src/styles-areas/chat.css +10 -11
  87. package/src/styles-areas/code-editor.css +2 -2
  88. package/src/styles-areas/core.css +60 -54
  89. package/src/styles-areas/data-table.css +13 -17
  90. package/src/styles-areas/disk-usage.css +6 -7
  91. package/src/styles-areas/emoji.css +2 -3
  92. package/src/styles-areas/fields.css +15 -20
  93. package/src/styles-areas/master-detail.css +3 -4
  94. package/src/styles-areas/master-lock.css +1 -2
  95. package/src/styles-areas/media-gallery.css +8 -10
  96. package/src/styles-areas/rich-text.css +3 -3
  97. package/src/styles-areas/stats.css +13 -17
  98. package/src/styles-areas/wizard.css +6 -11
@@ -264,6 +264,11 @@
264
264
  .cbab-slot {
265
265
  inline-size: 44px;
266
266
  block-size: 44px;
267
+ }
268
+
269
+ /* 12px centers the rail's OWN 20px glyph. A slot holds the consumer's control, which
270
+ `max-inline-size: 100%` would squeeze to that 20px — it gets the whole 44 instead. */
271
+ .cbab-btn {
267
272
  padding-inline: 12px;
268
273
  }
269
274
  }
@@ -1,8 +1,14 @@
1
+ import { syntaxTree } from '@codemirror/language';
1
2
  import type { EditorState, Extension } from '@codemirror/state';
2
- /** The line starts of every rule in the visible ranges, less any line a selection touches. */
3
+ /**
4
+ * The line starts of every rule in the visible ranges, less any line a selection touches. `tree`
5
+ * is the state's own unless given: a caller that parsed further (`ensureSyntaxTree`) passes what
6
+ * it got, because that parse never writes back into the state — its tree stays the one the
7
+ * state's 20 ms first pass reached.
8
+ */
3
9
  export declare function ruleLines(state: EditorState, ranges: readonly {
4
10
  from: number;
5
11
  to: number;
6
- }[]): number[];
12
+ }[], tree?: ReturnType<typeof syntaxTree>): number[];
7
13
  export declare const markdownRules: Extension;
8
14
  //# sourceMappingURL=markdownRules.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"markdownRules.d.ts","sourceRoot":"","sources":["../../../src/react/code-editor/markdownRules.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAS,MAAM,mBAAmB,CAAC;AAYvE,8FAA8F;AAC9F,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,MAAM,EAAE,CAgBvG;AA0CD,eAAO,MAAM,aAAa,EAAE,SAAmC,CAAC"}
1
+ {"version":3,"file":"markdownRules.d.ts","sourceRoot":"","sources":["../../../src/react/code-editor/markdownRules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAS,MAAM,mBAAmB,CAAC;AAYvE;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,EAAE,EAC/C,IAAI,GAAE,UAAU,CAAC,OAAO,UAAU,CAAqB,GACtD,MAAM,EAAE,CAeV;AA0CD,eAAO,MAAM,aAAa,EAAE,SAAmC,CAAC"}
@@ -8,10 +8,14 @@ import { Decoration, EditorView, ViewPlugin } from '@codemirror/view';
8
8
  * preview reads it the same way.
9
9
  */
10
10
  const rule = Decoration.line({ class: 'cb-md-rule' });
11
- /** The line starts of every rule in the visible ranges, less any line a selection touches. */
12
- export function ruleLines(state, ranges) {
11
+ /**
12
+ * The line starts of every rule in the visible ranges, less any line a selection touches. `tree`
13
+ * is the state's own unless given: a caller that parsed further (`ensureSyntaxTree`) passes what
14
+ * it got, because that parse never writes back into the state — its tree stays the one the
15
+ * state's 20 ms first pass reached.
16
+ */
17
+ export function ruleLines(state, ranges, tree = syntaxTree(state)) {
13
18
  const starts = [];
14
- const tree = syntaxTree(state);
15
19
  for (const { from, to } of ranges) {
16
20
  tree.iterate({
17
21
  from,
@@ -1 +1 @@
1
- {"version":3,"file":"markdownRules.js","sourceRoot":"","sources":["../../../src/react/code-editor/markdownRules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAsB,UAAU,EAAE,UAAU,EAAmB,MAAM,kBAAkB,CAAC;AAE3G;;;;;;GAMG;AACH,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;AAEtD,8FAA8F;AAC9F,MAAM,UAAU,SAAS,CAAC,KAAkB,EAAE,MAA+C;IAC3F,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/B,KAAK,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,MAAM,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC;YACX,IAAI;YACJ,EAAE;YACF,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;gBACd,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB;oBAAE,OAAO;gBAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzC,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3F,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI;oBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtE,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,KAAK,CAAC,IAAgB;IAC7B,MAAM,KAAK,GAAwB,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACzG,OAAO,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CACrC;IACE,WAAW,CAAgB;IAC3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IACD,MAAM,CAAC,MAAkB;QACvB,IACE,MAAM,CAAC,UAAU;YACjB,MAAM,CAAC,YAAY;YACnB,MAAM,CAAC,eAAe;YACtB,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;YAE1D,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF,EACD,EAAE,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAChD,CAAC;AAEF,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;IACrC,6FAA6F;IAC7F,mEAAmE;IACnE,aAAa,EAAE;QACb,eAAe,EAAE,+CAA+C;QAChE,cAAc,EAAE,UAAU;QAC1B,kBAAkB,EAAE,QAAQ;QAC5B,gBAAgB,EAAE,WAAW;QAC7B,gBAAgB,EAAE,aAAa;QAC/B,cAAc,EAAE,aAAa;KAC9B;IACD,4BAA4B,EAAE;QAC5B,KAAK,EAAE,wBAAwB;KAChC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAc,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"markdownRules.js","sourceRoot":"","sources":["../../../src/react/code-editor/markdownRules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAsB,UAAU,EAAE,UAAU,EAAmB,MAAM,kBAAkB,CAAC;AAE3G;;;;;;GAMG;AACH,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CACvB,KAAkB,EAClB,MAA+C,EAC/C,OAAsC,UAAU,CAAC,KAAK,CAAC;IAEvD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,MAAM,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC;YACX,IAAI;YACJ,EAAE;YACF,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;gBACd,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB;oBAAE,OAAO;gBAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzC,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3F,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI;oBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtE,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,KAAK,CAAC,IAAgB;IAC7B,MAAM,KAAK,GAAwB,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACzG,OAAO,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CACrC;IACE,WAAW,CAAgB;IAC3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IACD,MAAM,CAAC,MAAkB;QACvB,IACE,MAAM,CAAC,UAAU;YACjB,MAAM,CAAC,YAAY;YACnB,MAAM,CAAC,eAAe;YACtB,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;YAE1D,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF,EACD,EAAE,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAChD,CAAC;AAEF,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;IACrC,6FAA6F;IAC7F,mEAAmE;IACnE,aAAa,EAAE;QACb,eAAe,EAAE,+CAA+C;QAChE,cAAc,EAAE,UAAU;QAC1B,kBAAkB,EAAE,QAAQ;QAC5B,gBAAgB,EAAE,WAAW;QAC7B,gBAAgB,EAAE,aAAa;QAC/B,cAAc,EAAE,aAAa;KAC9B;IACD,4BAA4B,EAAE;QAC5B,KAAK,EAAE,wBAAwB;KAChC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAc,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type InputHTMLAttributes, type ReactNode } from 'react';
1
+ import { type InputHTMLAttributes, type ReactNode, type Ref } from 'react';
2
2
  import { type ControlSize } from '../lib/field.js';
3
3
  export interface AutocompleteProps<S = string> extends Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange' | 'onBlur' | 'placeholder' | 'disabled' | 'id' | 'name' | 'aria-invalid' | 'aria-describedby' | 'className' | 'size'> {
4
4
  /** The current text value (controlled). */
@@ -7,6 +7,13 @@ export interface AutocompleteProps<S = string> extends Omit<InputHTMLAttributes<
7
7
  onBlur?: () => void;
8
8
  /** Static suggestion items shown in the dropdown. */
9
9
  suggestions?: S[];
10
+ /**
11
+ * Whether a static suggestion matches what is typed. Default: its text CONTAINS the typed text,
12
+ * any case (Base UI's own match). A field whose value is more than the query — a comma list
13
+ * where each suggestion completes the LAST entry — passes its own. `null` shows them as given.
14
+ * Never applied to {@link loadSuggestions}: the loader's answer already is the search.
15
+ */
16
+ filter?: ((item: S, query: string) => boolean) | null;
10
17
  /** Async fetch — called on every keystroke (debounced 250 ms).
11
18
  * When provided, replaces the static `suggestions`. */
12
19
  loadSuggestions?: (query: string) => Promise<S[]>;
@@ -31,6 +38,8 @@ export interface AutocompleteProps<S = string> extends Omit<InputHTMLAttributes<
31
38
  /** Height on the shared control-height scale (`--control-h-*`, task cbux-41).
32
39
  * Default `md`. */
33
40
  size?: ControlSize;
41
+ /** The input element — to focus it from a form that names what is missing. */
42
+ inputRef?: Ref<HTMLInputElement>;
34
43
  }
35
44
  /**
36
45
  * Free-text input with a suggestions dropdown, built on Base UI Autocomplete.
@@ -43,5 +52,5 @@ export interface AutocompleteProps<S = string> extends Omit<InputHTMLAttributes<
43
52
  * - Object suggestions via `itemToString`, rich rows via `renderSuggestion`
44
53
  * - Full keyboard navigation (arrows, Enter to fill, Escape to close)
45
54
  */
46
- export declare function AutocompleteField<S = string>({ value, onChange, onBlur, suggestions, loadSuggestions, itemToString, renderSuggestion, placeholder, disabled, id, name, 'aria-invalid': ariaInvalid, 'aria-describedby': ariaDescribedBy, className, size, ...rest }: AutocompleteProps<S>): import("react").JSX.Element;
55
+ export declare function AutocompleteField<S = string>({ value, onChange, onBlur, suggestions, filter, loadSuggestions, itemToString, renderSuggestion, placeholder, disabled, id, name, 'aria-invalid': ariaInvalid, 'aria-describedby': ariaDescribedBy, className, size, inputRef, ...rest }: AutocompleteProps<S>): import("react").JSX.Element;
47
56
  //# sourceMappingURL=Autocomplete.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Autocomplete.d.ts","sourceRoot":"","sources":["../../../src/react/components/Autocomplete.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAoC,MAAM,OAAO,CAAC;AAGnG,OAAO,EAAE,KAAK,WAAW,EAAqB,MAAM,iBAAiB,CAAC;AAItE,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,MAAM,CAC3C,SAAQ,IAAI,CACV,mBAAmB,CAAC,gBAAgB,CAAC,EACnC,OAAO,GACP,UAAU,GACV,QAAQ,GACR,aAAa,GACb,UAAU,GACV,IAAI,GACJ,MAAM,GACN,cAAc,GACd,kBAAkB,GAClB,WAAW,GACX,MAAM,CACT;IACD,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,qDAAqD;IACrD,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;IAClB;4DACwD;IACxD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAClD;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IACnC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;wBACoB;IACpB,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,GAAG,MAAM,EAAE,EAC5C,KAAU,EACV,QAAQ,EACR,MAAM,EACN,WAAgB,EAChB,eAAe,EACf,YAAqC,EACrC,gBAAgB,EAChB,WAA+B,EAC/B,QAAQ,EACR,EAAE,EACF,IAAI,EACJ,cAAc,EAAE,WAAW,EAC3B,kBAAkB,EAAE,eAAe,EACnC,SAAS,EACT,IAAW,EACX,GAAG,IAAI,EACR,EAAE,iBAAiB,CAAC,CAAC,CAAC,+BA6GtB"}
1
+ {"version":3,"file":"Autocomplete.d.ts","sourceRoot":"","sources":["../../../src/react/components/Autocomplete.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAE,KAAK,GAAG,EAAoC,MAAM,OAAO,CAAC;AAG7G,OAAO,EAAE,KAAK,WAAW,EAAqB,MAAM,iBAAiB,CAAC;AAGtE,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,MAAM,CAC3C,SAAQ,IAAI,CACV,mBAAmB,CAAC,gBAAgB,CAAC,EACnC,OAAO,GACP,UAAU,GACV,QAAQ,GACR,aAAa,GACb,UAAU,GACV,IAAI,GACJ,MAAM,GACN,cAAc,GACd,kBAAkB,GAClB,WAAW,GACX,MAAM,CACT;IACD,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,qDAAqD;IACrD,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;IAClB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,IAAI,CAAC;IACtD;4DACwD;IACxD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAClD;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IACnC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;wBACoB;IACpB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;CAClC;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,GAAG,MAAM,EAAE,EAC5C,KAAU,EACV,QAAQ,EACR,MAAM,EACN,WAAgB,EAChB,MAAM,EACN,eAAe,EACf,YAAqC,EACrC,gBAAgB,EAChB,WAA+B,EAC/B,QAAQ,EACR,EAAE,EACF,IAAI,EACJ,cAAc,EAAE,WAAW,EAC3B,kBAAkB,EAAE,eAAe,EACnC,SAAS,EACT,IAAW,EACX,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,iBAAiB,CAAC,CAAC,CAAC,+BA0EtB"}
@@ -6,7 +6,7 @@ import { useCallback, useEffect, useState } from 'react';
6
6
  import { useDebouncedCallback } from '../hooks/useDebouncedCallback.js';
7
7
  import { cn } from '../lib/cn.js';
8
8
  import { fieldControlClass } from '../lib/field.js';
9
- import { FLOATING_COLLISION_PADDING, FLOATING_CONTENT_BASE, FLOATING_ITEM_BASE } from '../lib/floatingStyles.js';
9
+ import { SuggestionList } from './suggestionList.js';
10
10
  const DEBOUNCE_MS = 250;
11
11
  /**
12
12
  * Free-text input with a suggestions dropdown, built on Base UI Autocomplete.
@@ -19,7 +19,7 @@ const DEBOUNCE_MS = 250;
19
19
  * - Object suggestions via `itemToString`, rich rows via `renderSuggestion`
20
20
  * - Full keyboard navigation (arrows, Enter to fill, Escape to close)
21
21
  */
22
- export function AutocompleteField({ value = '', onChange, onBlur, suggestions = [], loadSuggestions, itemToString = (item) => String(item), renderSuggestion, placeholder = 'Type to search…', disabled, id, name, 'aria-invalid': ariaInvalid, 'aria-describedby': ariaDescribedBy, className, size = 'md', ...rest }) {
22
+ export function AutocompleteField({ value = '', onChange, onBlur, suggestions = [], filter, loadSuggestions, itemToString = (item) => String(item), renderSuggestion, placeholder = 'Type to search…', disabled, id, name, 'aria-invalid': ariaInvalid, 'aria-describedby': ariaDescribedBy, className, size = 'md', inputRef, ...rest }) {
23
23
  const isAsync = Boolean(loadSuggestions);
24
24
  const [asyncSuggestions, setAsyncSuggestions] = useState([]);
25
25
  const [loading, setLoading] = useState(false);
@@ -47,9 +47,10 @@ export function AutocompleteField({ value = '', onChange, onBlur, suggestions =
47
47
  const handleValueChange = useCallback((v) => {
48
48
  onChange?.(v);
49
49
  }, [onChange]);
50
- return (_jsxs(Autocomplete.Root, { value: value, onValueChange: handleValueChange, items: activeSuggestions, itemToStringValue: itemToString, disabled: disabled, mode: 'list', autoHighlight: false, children: [_jsxs(Autocomplete.InputGroup, { className: 'relative flex items-center', children: [_jsx(Autocomplete.Input, { ...rest, id: id, name: name, "aria-invalid": ariaInvalid, "aria-describedby": ariaDescribedBy, placeholder: placeholder, onBlur: onBlur, className: cn(fieldControlClass(size), 'pr-8', // space for the chevron/spinner
51
- className) }), _jsx("span", { className: 'pointer-events-none absolute right-2 flex size-5 items-center justify-center text-muted-foreground', children: loading ? (_jsx(Loader2, { className: 'size-4 animate-spin', "aria-label": 'Loading suggestions' })) : (_jsx(ChevronDown, { className: 'size-4 opacity-50', "aria-hidden": true })) })] }), _jsx(Autocomplete.Portal, { children: _jsx(Autocomplete.Positioner, { sideOffset: 4, collisionPadding: FLOATING_COLLISION_PADDING, className: 'z-[var(--z-popover)]', children: _jsx(Autocomplete.Popup, { className: cn(FLOATING_CONTENT_BASE,
52
- // guardrails-ignore no-raw-overflow: floating popover panel outside the page's ScrollArea, height-capped by max-h-64 — no keyboard-inset concern.
53
- 'max-h-64 min-w-[var(--anchor-width)] overflow-y-auto p-0 py-1', 'transition-[transform,opacity] duration-100', 'data-[starting-style]:scale-95 data-[starting-style]:opacity-0', 'data-[ending-style]:scale-95 data-[ending-style]:opacity-0'), children: _jsx(Autocomplete.List, { children: activeSuggestions.map((s, index) => (_jsx(Autocomplete.Item, { value: s, index: index, className: cn(FLOATING_ITEM_BASE, 'data-[highlighted]:bg-accent/10 data-[highlighted]:text-accent-strong'), children: renderSuggestion ? renderSuggestion(s) : itemToString(s) }, itemToString(s)))) }) }) }) })] }));
50
+ return (_jsxs(Autocomplete.Root, { value: value, onValueChange: handleValueChange, items: activeSuggestions, itemToStringValue: itemToString, disabled: disabled, mode: 'list',
51
+ // Static suggestions narrow to what is typed (by default Base UI's own match: contains, any
52
+ // case, accents folded). A loader's answer is already the search — drawn as it came.
53
+ filter: isAsync ? null : filter, autoHighlight: false, children: [_jsxs(Autocomplete.InputGroup, { className: 'relative flex items-center', children: [_jsx(Autocomplete.Input, { ...rest, ref: inputRef, id: id, name: name, "aria-invalid": ariaInvalid, "aria-describedby": ariaDescribedBy, placeholder: placeholder, onBlur: onBlur, className: cn(fieldControlClass(size), 'pr-8', // space for the chevron/spinner
54
+ className) }), _jsx("span", { className: 'pointer-events-none absolute right-2 flex size-5 items-center justify-center text-muted-foreground', children: loading ? (_jsx(Loader2, { className: 'size-4 animate-spin', "aria-label": 'Loading suggestions' })) : (_jsx(ChevronDown, { className: 'size-4 opacity-50', "aria-hidden": true })) })] }), _jsx(SuggestionList, { itemToString: itemToString, renderSuggestion: renderSuggestion })] }));
54
55
  }
55
56
  //# sourceMappingURL=Autocomplete.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Autocomplete.js","sourceRoot":"","sources":["../../../src/react/components/Autocomplete.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Autocomplete.js","sourceRoot":"","sources":["../../../src/react/components/Autocomplete.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/react/components/Button.tsx"],"names":[],"mappings":"AACA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EACL,KAAK,oBAAoB,EAEzB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,GAAG,EAGT,MAAM,OAAO,CAAC;AAEf,OAAO,EAAW,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAKlF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,cAAc;;;8EA6G1B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACxF,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAElF,MAAM,WAAW,WACf,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC,EAC7C,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC;;;8CAG0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;6EACyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;;;;;eAQW;IACX,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,GAAG,SAAS,CAAC,CAAC;IAC9C,8EAA8E;IAC9E,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B;;;;8DAI0D;IAC1D,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE;yFACqF;IACrF,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAClC;gFAC4E;IAC5E,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAChC;;;;;;;;;;;;;OAaG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;CAC9B;AAcD,wBAAgB,MAAM,CAAC,EACrB,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAe,EACf,OAAe,EACf,QAAQ,EACR,OAAO,EACP,WAAW,EACX,aAAa,EACb,YAAY,EACZ,cAAsB,EACtB,YAAmB,EACnB,OAAc,EACd,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,SAAS,EACT,iBAAiB,EACjB,GAAG,KAAK,EACT,EAAE,WAAW,+BA+Gb"}
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/react/components/Button.tsx"],"names":[],"mappings":"AACA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EACL,KAAK,oBAAoB,EAEzB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,GAAG,EAGT,MAAM,OAAO,CAAC;AAEf,OAAO,EAAW,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAKlF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,cAAc;;;8EAmH1B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACxF,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAElF,MAAM,WAAW,WACf,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC,EAC7C,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC;;;8CAG0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;6EACyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;;;;;eAQW;IACX,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,GAAG,SAAS,CAAC,CAAC;IAC9C,8EAA8E;IAC9E,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B;;;;8DAI0D;IAC1D,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE;yFACqF;IACrF,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAClC;gFAC4E;IAC5E,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAChC;;;;;;;;;;;;;OAaG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;CAC9B;AAcD,wBAAgB,MAAM,CAAC,EACrB,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAe,EACf,OAAe,EACf,QAAQ,EACR,OAAO,EACP,WAAW,EACX,aAAa,EACb,YAAY,EACZ,cAAsB,EACtB,YAAmB,EACnB,OAAc,EACd,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,SAAS,EACT,iBAAiB,EACjB,GAAG,KAAK,EACT,EAAE,WAAW,+BA+Gb"}
@@ -24,6 +24,11 @@ import { PRESS } from '../lib/press.js';
24
24
  */
25
25
  export const buttonVariants = cva([
26
26
  'relative inline-flex items-center justify-center gap-2 rounded-md font-medium',
27
+ // 🔴 ONE LINE, always (2026-10-23): the height is a fixed control token, so a label allowed to
28
+ // wrap draws two lines in a one-line box — station's Deploys column squeezed "Deploy now" onto
29
+ // two, its text touching the top and bottom edges. A tight container gets a wider button, or
30
+ // a shorter label; never a wrapped one.
31
+ 'whitespace-nowrap',
27
32
  // 🔴 TACTILE (forge task family-app-ux-overhaul, 2026-10-06): a press is answered — eased
28
33
  // colors and a `--press-scale` dip while held. The contract and who is exempt: `lib/press.ts`.
29
34
  PRESS,
@@ -118,7 +123,8 @@ export const buttonVariants = cva([
118
123
  // button — sized or on the `md` default — drew a padded box: TotpEntry's "Use a recovery code
119
124
  // instead" sat 12px in from the column every other row starts on.
120
125
  compoundVariants: [
121
- { variant: 'link', size: ['sm', 'md', 'lg'], class: 'h-auto px-0 py-0' },
126
+ // …and it wraps with that text: one line is the fixed-height CONTROL's rule, and a link has no height.
127
+ { variant: 'link', size: ['sm', 'md', 'lg'], class: 'h-auto px-0 py-0 whitespace-normal' },
122
128
  // A link is text inside a sentence: it underlines on hover and does not dip on press.
123
129
  { variant: 'link', class: 'active:scale-100' },
124
130
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/react/components/Button.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/react/components/Button.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FileDropZone.d.ts","sourceRoot":"","sources":["../../../src/react/components/FileDropZone.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,SAAS,EAA2B,MAAM,OAAO,CAAC;AAKhF,MAAM,WAAW,iBAAiB;IAChC,yEAAyE;IACzE,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACjC;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACrC;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAAC,QAAQ,EAAE,IAAI,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IAClE,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAoHD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+FG;AACH,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,UAAU,EACV,MAAM,EAAE,YAAY,EACpB,MAAM,EACN,QAAe,EACf,QAAgB,EAChB,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,MAAgB,EAChB,GAAG,IAAI,EACR,EAAE,iBAAiB,+BAqKnB"}
1
+ {"version":3,"file":"FileDropZone.d.ts","sourceRoot":"","sources":["../../../src/react/components/FileDropZone.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,SAAS,EAA2B,MAAM,OAAO,CAAC;AAMhF,MAAM,WAAW,iBAAiB;IAChC,yEAAyE;IACzE,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACjC;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACrC;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAAC,QAAQ,EAAE,IAAI,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IAClE,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA4CD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+FG;AACH,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,UAAU,EACV,MAAM,EAAE,YAAY,EACpB,MAAM,EACN,QAAe,EACf,QAAgB,EAChB,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,MAAgB,EAChB,GAAG,IAAI,EACR,EAAE,iBAAiB,+BAqKnB"}
@@ -3,96 +3,32 @@ import { Upload, X } from 'lucide-react';
3
3
  import { useId, useRef, useState } from 'react';
4
4
  import { cn } from '../lib/cn.js';
5
5
  import { Button } from './Button.js';
6
+ import { isHiddenName, matchesAccept, walkDrop } from './dropTransfer.js';
6
7
  import { Input } from './Input.js';
7
- /** What a folder can hold before walking it stops — a drop, not a disk scan. */
8
- const MAX_FOLDER_FILES = 5000;
9
- const isHidden = (name) => name.startsWith('.');
10
- /**
11
- * Every file under `entry`, depth-first. A directory's reader answers in batches until empty.
12
- *
13
- * Each file carries its path from the dropped folder in `webkitRelativePath` (`Album/CD1/01.mp3`),
14
- * exactly as a folder PICKER's files do natively — so an app reading provenance (music defaults
15
- * its "where these came from" field to the top folder) gets the same answer from both gestures.
16
- * A drop leaves it `''` otherwise, and that difference is what kept music on its own walk.
17
- */
18
- async function filesUnder(entry, out, prefix = '') {
19
- if (out.length >= MAX_FOLDER_FILES || isHidden(entry.name))
20
- return;
21
- if (entry.isFile && entry.file) {
22
- const read = entry.file.bind(entry);
23
- const file = await new Promise((ok, fail) => read(ok, fail));
24
- Object.defineProperty(file, 'webkitRelativePath', { value: `${prefix}${file.name}`, configurable: true });
25
- out.push(file);
26
- return;
27
- }
28
- if (!entry.isDirectory || !entry.createReader)
29
- return;
30
- const reader = entry.createReader();
31
- while (out.length < MAX_FOLDER_FILES) {
32
- const batch = await new Promise((ok, fail) => reader.readEntries(ok, fail));
33
- if (batch.length === 0)
34
- return;
35
- for (const child of batch)
36
- await filesUnder(child, out, `${prefix}${entry.name}/`);
37
- }
38
- }
39
8
  /**
40
9
  * A drop's files, with every dropped FOLDER replaced by the accepted files inside it — see the
41
10
  * FOLDER section above. `null` when nothing in the drop is a folder, so the ordinary path stays
42
- * exactly `dataTransfer.files`.
43
- *
44
- * 🔴 The entries are taken SYNCHRONOUSLY, before the first `await`: a browser empties the
45
- * `DataTransfer` once the drop event returns.
11
+ * exactly `dataTransfer.files`. The walk itself is {@link walkDrop}, shared with every app's own
12
+ * drop target through {@link filesFromDataTransfer}.
46
13
  */
47
14
  function folderAwareDrop(transfer, accept) {
48
- const items = transfer.items ? [...transfer.items] : [];
49
- const entries = items.map((item) => item.kind === 'file' && typeof item.webkitGetAsEntry === 'function'
50
- ? item.webkitGetAsEntry()
51
- : null);
52
- if (!entries.some((entry) => entry?.isDirectory))
15
+ const walking = walkDrop(transfer);
16
+ if (!walking)
53
17
  return null;
54
- const looseFiles = [...transfer.files];
55
- return (async () => {
56
- const loose = [];
18
+ return walking.then(({ loose, folders }) => {
57
19
  const fromFolders = [];
58
20
  const emptyFolders = [];
59
- for (const [i, entry] of entries.entries()) {
60
- if (!entry?.isDirectory) {
61
- const file = looseFiles[i] ?? (entry ? await new Promise((ok) => entry.file?.(ok, () => ok(null))) : null);
62
- if (file)
63
- loose.push(file);
64
- continue;
65
- }
66
- const inside = [];
67
- try {
68
- await filesUnder(entry, inside);
69
- }
70
- catch {
71
- // An unreadable folder yields what was read before the error — and, if that is nothing, a refusal below.
72
- }
73
- const kept = inside.filter((f) => matchesAccept(f, accept));
21
+ for (const folder of folders) {
22
+ // A folder that yields nothing acceptable is a refusal under its own name, never silence.
23
+ const kept = folder.files.filter((f) => matchesAccept(f, accept));
74
24
  if (kept.length > 0)
75
25
  fromFolders.push(...kept);
76
26
  else
77
- emptyFolders.push(new File([], entry.name));
27
+ emptyFolders.push(new File([], folder.name));
78
28
  }
79
29
  return { loose, fromFolders, emptyFolders };
80
- })();
81
- }
82
- const matchesAccept = (file, accept) => {
83
- if (!accept)
84
- return true;
85
- return accept.split(',').some((raw) => {
86
- const rule = raw.trim().toLowerCase();
87
- if (!rule)
88
- return false;
89
- if (rule.startsWith('.'))
90
- return file.name.toLowerCase().endsWith(rule);
91
- if (rule.endsWith('/*'))
92
- return file.type.toLowerCase().startsWith(rule.slice(0, -1));
93
- return file.type.toLowerCase() === rule;
94
30
  });
95
- };
31
+ }
96
32
  /**
97
33
  * A folder PICKER's files, judged the way a dropped folder's are: what `accept` turns away is
98
34
  * skipped, hidden files are never meant, and a folder that yields nothing is refused under its own
@@ -101,7 +37,7 @@ const matchesAccept = (file, accept) => {
101
37
  */
102
38
  function folderPick(list, accept) {
103
39
  const all = list ? [...list] : [];
104
- const kept = all.filter((f) => !f.webkitRelativePath.split('/').some(isHidden) && matchesAccept(f, accept));
40
+ const kept = all.filter((f) => !f.webkitRelativePath.split('/').some(isHiddenName) && matchesAccept(f, accept));
105
41
  if (kept.length > 0 || all.length === 0)
106
42
  return { fromFolders: kept, emptyFolders: [] };
107
43
  const name = all[0]?.webkitRelativePath.split('/')[0] || 'That folder';
@@ -1 +1 @@
1
- {"version":3,"file":"FileDropZone.js","sourceRoot":"","sources":["../../../src/react/components/FileDropZone.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FileDropZone.js","sourceRoot":"","sources":["../../../src/react/components/FileDropZone.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { type ComponentType, type KeyboardEvent } from 'react';
1
2
  import { type ControlSize } from '../lib/field.js';
2
3
  export interface TagsInputProps {
3
4
  /** The committed tags (controlled). */
@@ -11,9 +12,14 @@ export interface TagsInputProps {
11
12
  maxTags?: number;
12
13
  /**
13
14
  * Tags to offer as you type — the vocabulary already in use, so a re-tag matches
14
- * the first spelling instead of minting "Bank"/"bank"/"banking" three ways. A
15
- * native `<datalist>` (the browser owns the dropdown and its accessibility), and
16
- * tags already committed on this value are not re-offered. Omit for none.
15
+ * the first spelling instead of minting "Bank"/"bank"/"banking" three ways. Drawn
16
+ * in the page by the kit's own list (Base UI Autocomplete), narrowed to what is
17
+ * typed; tags already committed on this value are not re-offered. Omit for none —
18
+ * and a field that omits it never loads that list's engine (see {@link TagsInput}).
19
+ *
20
+ * 🔴 Never a `<datalist>`: the browser draws its list outside the page, where no
21
+ * stylesheet reaches it — it popped up light in dark mode (owner, 2026-10-23,
22
+ * forge task 3602).
17
23
  */
18
24
  suggestions?: readonly string[];
19
25
  id?: string;
@@ -28,12 +34,48 @@ export interface TagsInputProps {
28
34
  * same `size`; the row grows past it as tags wrap. Default `md`. */
29
35
  size?: ControlSize;
30
36
  }
37
+ /** What the suggesting field takes beyond the public props: the draft lives in {@link TagsInput},
38
+ * so a word typed before the list's engine arrived is still there after it does. */
39
+ export interface TagsFieldProps extends TagsInputProps {
40
+ draft: string;
41
+ setDraft: (draft: string) => void;
42
+ /** Focus the input on mount — the plain field had it when the engine arrived. */
43
+ initialFocus?: boolean;
44
+ }
45
+ /** The editing both fields share: commit, remove, the comma/Enter/Backspace keys, a pasted list. */
46
+ export declare function useTagEditing({ value, onChange, draft, setDraft }: Pick<TagsFieldProps, 'value' | 'onChange' | 'draft' | 'setDraft'>): {
47
+ commit: (raw: string) => void;
48
+ removeAt: (index: number) => void;
49
+ onKeyDown: (e: KeyboardEvent<HTMLInputElement>) => void;
50
+ type: (v: string) => void;
51
+ };
52
+ /** The chip row's frame — an Input-shaped container reading the field tokens. */
53
+ export declare function tagsRowClass(size: ControlSize, disabled: boolean | undefined, className: string | undefined): string;
54
+ export declare const TAGS_INPUT_CLASS = "min-w-24 flex-1 bg-transparent py-0.5 text-base text-field-fg outline-none placeholder:text-field-placeholder sm:pointer-fine:text-sm";
55
+ /** The committed tags as removable chips. */
56
+ export declare function TagChips({ value, disabled, onRemove }: {
57
+ value: string[];
58
+ disabled?: boolean | undefined;
59
+ onRemove: (index: number) => void;
60
+ }): import("react").JSX.Element[];
61
+ type SuggestingField = ComponentType<TagsFieldProps>;
62
+ /** Fetch the suggesting field (Base UI Autocomplete) once per page. */
63
+ export declare function preloadSuggestingTagsInput(): Promise<SuggestingField>;
31
64
  /**
32
65
  * Comma / Enter-delimited tag input: pill chips inside an Input-shaped container that
33
66
  * reads the same field-style tokens (border / ring / invalid). Controlled —
34
67
  * `value: string[]`, `onChange(next)`. Type + Enter or comma to add (paste
35
68
  * "a,b,c" splits into three); the ✕ on a chip or Backspace on an empty input removes
36
69
  * one. Replaces the ad-hoc CommaTagsInput. The registry's `tags` control.
70
+ *
71
+ * ── Why the suggesting field is a dynamic `import()` ─────────────────────────
72
+ * 🔴 Suggestions are drawn by Base UI's Autocomplete, ~38 kB gzip. 5.92.0 rooted EVERY TagsInput
73
+ * in it, so a field that suggests nothing — station's disk-usage rules, every form's `tags`
74
+ * control — carried it: station's FolderSizesView chunk went 7.15 → 44.32 kB gzip (forge task
75
+ * 3614). A field given `suggestions` fetches it on mount (the same move as `InfoHint`); until it
76
+ * arrives — and for good, without `suggestions` — this file's plain input is the field, holding
77
+ * the draft and the focus it hands over.
37
78
  */
38
- export declare function TagsInput({ value, onChange, onBlur, placeholder, disabled, maxTags, id, name, suggestions, 'aria-invalid': ariaInvalid, 'aria-label': ariaLabel, 'aria-describedby': ariaDescribedBy, className, size, ...rest }: TagsInputProps): import("react").JSX.Element;
79
+ export declare function TagsInput(props: TagsInputProps): import("react").JSX.Element;
80
+ export {};
39
81
  //# sourceMappingURL=TagsInput.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TagsInput.d.ts","sourceRoot":"","sources":["../../../src/react/components/TagsInput.tsx"],"names":[],"mappings":"AAGA,OAAO,EAA4B,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG7E,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpC,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qFAAqF;IACrF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;yEAEqE;IACrE,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAaD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,QAAQ,EACR,MAAM,EACN,WAA0B,EAC1B,QAAQ,EACR,OAAO,EACP,EAAE,EACF,IAAI,EACJ,WAAW,EACX,cAAc,EAAE,WAAW,EAC3B,YAAY,EAAE,SAAS,EACvB,kBAAkB,EAAE,eAAe,EACnC,SAAS,EACT,IAAW,EACX,GAAG,IAAI,EACR,EAAE,cAAc,+BAqGhB"}
1
+ {"version":3,"file":"TagsInput.d.ts","sourceRoot":"","sources":["../../../src/react/components/TagsInput.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAA+B,MAAM,OAAO,CAAC;AAE5F,OAAO,EAA4B,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG7E,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpC,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;OAUG;IACH,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qFAAqF;IACrF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;yEAEqE;IACrE,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAaD;qFACqF;AACrF,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,iFAAiF;IACjF,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,oGAAoG;AACpG,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC;kBAC9G,MAAM;sBAKF,MAAM;mBACT,aAAa,CAAC,gBAAgB,CAAC;cASpC,MAAM;EASxB;AAED,iFAAiF;AACjF,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,UAU3G;AAED,eAAO,MAAM,gBAAgB,0IAC4G,CAAC;AAE1I,6CAA6C;AAE7C,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,iCAc7I;AAED,KAAK,eAAe,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;AAKrD,uEAAuE;AACvE,wBAAgB,0BAA0B,IAAI,OAAO,CAAC,eAAe,CAAC,CAQrE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,+BA+B9C"}