@setsquare/ui 0.9.0 → 0.9.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,42 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.9.1 — 2026-10-15
4
+
5
+ - **Fix: a Tree row's title or description no longer breaks between two letters without a hyphen.** They had
6
+ `overflow-wrap: anywhere`, so a word too wide for the row was split wherever it ran out of room, with no hyphen,
7
+ as the Rail's names were before 0.9.0. Now a word too wide breaks with a visible hyphen: where the browser can
8
+ hyphenate it, at a soft hyphen (U+00AD) a product wrote in it, and otherwise at the last letter that fits, three
9
+ letters either side at least. A word that fits a line is left whole. The row's accessible name and `textValue` leave
10
+ soft hyphens out. It reads each row's own layout after it renders and when the row resizes, the title turns bold or
11
+ text spacing changes; it adds no layout of its own, so a long outline costs nothing extra.
12
+ - **Fix: a FileUpload file name no longer breaks between two letters without a mark.** It had `overflow-wrap:
13
+ anywhere`. A file name has to read exactly, so a hyphen added at a break would look like part of it. It now breaks
14
+ where it divides itself, with nothing added: after `_`, `-`, `.` and similar, at a change from lower to upper case,
15
+ and between letters and digits (`<wbr>`). A run too wide for the row with none of those breaks at the last letter
16
+ that fits, marked ↩ by `hyphenate-character`. When a name needs that mark, what is seen is hidden from assistive
17
+ technology and a plain copy is said, and copying the name copies it without the soft hyphens (Chrome would copy
18
+ them).
19
+ - **Fix: a vertical Tabs rail's name no longer breaks between two letters without a hyphen.** The rail's names had
20
+ `hyphens: auto` and `overflow-wrap: anywhere`, so a capitalised English word too wide for the tile, which Chrome and
21
+ Firefox won't hyphenate, was split silently. Now a word too wide breaks with a visible hyphen: the browser's, or at
22
+ the last letter that fits. The name and its hidden bold copy show the same text, so they break alike, and the grid
23
+ holding them is capped at the tile's width. With soft hyphens added, the tab is named by a plain copy. The Tabs
24
+ and TabsRail READMEs say so; they used to say the names were "hyphenated and wrapping anywhere".
25
+ - **Fix: the Rail's soft hyphens and the docs example's text.** The formatter had turned the `\u00AD` escapes in
26
+ three files into invisible characters, so the Rail page's example on ui.setsquare.dev read "written Storyboard"
27
+ where it meant to show `Story\u00ADboard`. Soft hyphens in the source are now written by their code point
28
+ (`String.fromCodePoint(0xad)`), which no formatter changes.
29
+ - **Tests.** Unit tests for the shared soft-hyphen helpers, and `test/browser/controls.mjs` renders a 220px Tree at AA
30
+ and AAA: German compounds no width fits, a selected (bold) row, a product's soft hyphen, a long word in a
31
+ description and a title whose words fit. No word breaks without a hyphen, nothing runs out of its row, the words
32
+ that fit get no soft hyphens, and rows are named without them; again with 1.4.12's text spacing. It also renders a
33
+ 240px FileUpload at AA and AAA with names that divide at separators and at case and digit changes, and one with a
34
+ run nothing divides: they break only where they divide or at a soft hyphen drawn as ↩, nothing runs out, only the
35
+ run is marked, every name is said and copied plain; again with text spacing. Unit tests for `fileNameParts`.
36
+ `test/browser/tabs.mjs` renders a vertical rail in text display with German compounds and English words, at AA and
37
+ AAA: nothing runs out of its tile, both copies match, a word breaks only at a soft hyphen or between words, and
38
+ every tab is named plainly; again with text spacing.
39
+
3
40
  ## 0.9.0 — 2026-10-15
4
41
 
5
42
  - **`findClippedText` waits two animation frames before it measures, and returns a Promise.** It applied 1.4.12's
package/README.md CHANGED
@@ -350,7 +350,7 @@ The positioning, target, link, reflow, text-spacing and motion scans run in the
350
350
  - **Browser (Chromium only):** the design-system previews on React 19, loaded as the design-system artifact loads them:
351
351
  - axe-core on every preview in all four themes;
352
352
  - the search's ⌘K / Ctrl+K on a page of its own: left to text fields, text areas, editors and a handler that took the key; one search on a page holding it, showing it and setting `aria-keyshortcuts`, and the next taking over; `shortcut={false}`; the console error for an item id used twice; and `aria-keyshortcuts` reaching the element through `Button`, `IconButton`, `LinkButton` and `Tree`, which React Aria's own components drop, and the page builder's Undo, Redo and outline saying their keys;
353
- - keyboard and focus behaviour for the dashboard shell (with its search finding by keyword, in ranked order), forms, feedback states, and the slider, date, file and selection controls;
353
+ - keyboard and focus behaviour for the dashboard shell (with its search finding by keyword, in ranked order), forms, feedback states, and the slider, date, file and selection controls (a narrow Tree's long words breaking only with a hyphen, and its rows named without soft hyphens; a narrow FileUpload's names breaking only where they divide themselves or at a ↩ mark, said and copied plain; a vertical Tabs rail's long names breaking only with a hyphen; each with and without text spacing);
354
354
  - the site shell: the phone menu opening, pushing the page down and closing on Escape from the panel or the button; the current page's weight and marker; one order for the header, the phone menu and the footer; a sticky header covering no focused control; and the header fitting at seven widths from 320px to 1280px, either side of `lg` among them;
355
355
  - the motion rule on the Hero card's media: the motion check exempts it only for its visible pause control, Pause stops it, reduced motion never starts it, and nothing waits hidden for it;
356
356
  - code blocks copying, announcing a second copy, a terminal copying its commands only, and a refused copy; the theme switcher's choice, System following the operating system, the level, and the theme script running under a CSP that allows only its published hash;
@@ -6,18 +6,13 @@
6
6
  * a proper noun; `Hyphenation::ShouldHyphenateWord`), and Firefox doesn't either, so "Storyboard" gets no break
7
7
  * point at all. `overflow-wrap: anywhere` then split it as "Storyboar" / "d".
8
8
  */
9
- export declare const SOFT_HYPHEN = "\u00AD";
9
+ import { SOFT_HYPHEN, hyphenateEverywhere, withoutSoftHyphens } from './soft-hyphen.js';
10
+ export { SOFT_HYPHEN, hyphenateEverywhere };
10
11
  /** The name as said and as matched: a product's soft hyphens taken out. */
11
- export declare const plainName: (name: string) => string;
12
+ export declare const plainName: typeof withoutSoftHyphens;
12
13
  /** The size the name is set in, and the floor it may shrink to: the rail's one exception to the 13px rule. */
13
14
  export declare const RAIL_NAME_SIZE = 13;
14
15
  export declare const RAIL_NAME_FLOOR = 11.5;
15
- /**
16
- * A soft hyphen at every place in `word` with at least three letters either side, so the browser breaks it, with a
17
- * hyphen, at the last place that fits whatever the width, spacing or zoom. A word that already has one of a
18
- * product's is left as it is.
19
- */
20
- export declare function hyphenateEverywhere(word: string): string;
21
16
  /** What laying the name out would give: whether a word runs out of the box, and how many lines it takes. */
22
17
  export interface NameLayout {
23
18
  overflows: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"rail-name.d.ts","sourceRoot":"","sources":["../../src/lib/rail-name.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,WAAW,WAAM,CAAC;AAE/B,2EAA2E;AAC3E,eAAO,MAAM,SAAS,SAAU,MAAM,WAAqC,CAAC;AAE5E,8GAA8G;AAC9G,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,eAAe,OAAO,CAAC;AAMpC;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOxD;AAED,4GAA4G;AAC5G,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,WAAW,KAAK,UAAU,CAAC;AAElG,MAAM,WAAW,UAAU;IACzB,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,yFAAyF;IACzF,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,UAAU,CAqB1E"}
1
+ {"version":3,"file":"rail-name.d.ts","sourceRoot":"","sources":["../../src/lib/rail-name.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAExF,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;AAE5C,2EAA2E;AAC3E,eAAO,MAAM,SAAS,2BAAqB,CAAC;AAE5C,8GAA8G;AAC9G,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,eAAe,OAAO,CAAC;AAIpC,4GAA4G;AAC5G,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,WAAW,KAAK,UAAU,CAAC;AAElG,MAAM,WAAW,UAAU;IACzB,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,yFAAyF;IACzF,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,UAAU,CAqB1E"}
@@ -6,31 +6,15 @@
6
6
  * a proper noun; `Hyphenation::ShouldHyphenateWord`), and Firefox doesn't either, so "Storyboard" gets no break
7
7
  * point at all. `overflow-wrap: anywhere` then split it as "Storyboar" / "d".
8
8
  */
9
- export const SOFT_HYPHEN = '­';
9
+ import { SOFT_HYPHEN, hyphenateEverywhere, withoutSoftHyphens } from './soft-hyphen.js';
10
+ export { SOFT_HYPHEN, hyphenateEverywhere };
10
11
  /** The name as said and as matched: a product's soft hyphens taken out. */
11
- export const plainName = (name) => name.replaceAll(SOFT_HYPHEN, '');
12
+ export const plainName = withoutSoftHyphens;
12
13
  /** The size the name is set in, and the floor it may shrink to: the rail's one exception to the 13px rule. */
13
14
  export const RAIL_NAME_SIZE = 13;
14
15
  export const RAIL_NAME_FLOOR = 11.5;
15
16
  const STEP = 0.25;
16
17
  const MAX_LINES = 2;
17
- /** The fewest letters either side of a hyphen this adds. */
18
- const EDGE = 3;
19
- /**
20
- * A soft hyphen at every place in `word` with at least three letters either side, so the browser breaks it, with a
21
- * hyphen, at the last place that fits whatever the width, spacing or zoom. A word that already has one of a
22
- * product's is left as it is.
23
- */
24
- export function hyphenateEverywhere(word) {
25
- if (word.includes(SOFT_HYPHEN))
26
- return word;
27
- const letters = [...word];
28
- if (letters.length < EDGE * 2)
29
- return word;
30
- return letters
31
- .map((letter, i) => (i >= EDGE && i <= letters.length - EDGE ? SOFT_HYPHEN : '') + letter)
32
- .join('');
33
- }
34
18
  /**
35
19
  * The largest size from 13px down to the floor at which every word fits whole on at most two lines. Failing that,
36
20
  * the largest at which every word fits whole, on more lines. Failing that, a word is too long at any size allowed:
@@ -1 +1 @@
1
- {"version":3,"file":"rail-name.js","sourceRoot":"","sources":["../../src/lib/rail-name.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC;AAE/B,2EAA2E;AAC3E,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAE5E,8GAA8G;AAC9G,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AACjC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AACpC,MAAM,IAAI,GAAG,IAAI,CAAC;AAClB,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB,4DAA4D;AAC5D,MAAM,IAAI,GAAG,CAAC,CAAC;AAEf;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1B,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;SACzF,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAsBD;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,OAAoB;IAC5D,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,gBAAoC,CAAC;IACzC,KAAK,IAAI,IAAI,GAAG,cAAc,EAAE,IAAI,IAAI,eAAe,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;QAC7E,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACzC,IAAI,EAAE,CAAC,SAAS;YAAE,SAAS;QAC3B,IAAI,EAAE,CAAC,KAAK,IAAI,SAAS;YAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACvD,gBAAgB,KAAK,IAAI,CAAC;IAC5B,CAAC;IACD,IAAI,gBAAgB,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAClF,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,SAAS;QACvD,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI;SACd,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,SAAS;QACzD,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC;QAC3B,CAAC,CAAC,IAAI,CACT;SACA,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"rail-name.js","sourceRoot":"","sources":["../../src/lib/rail-name.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAExF,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;AAE5C,2EAA2E;AAC3E,MAAM,CAAC,MAAM,SAAS,GAAG,kBAAkB,CAAC;AAE5C,8GAA8G;AAC9G,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AACjC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AACpC,MAAM,IAAI,GAAG,IAAI,CAAC;AAClB,MAAM,SAAS,GAAG,CAAC,CAAC;AAsBpB;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,OAAoB;IAC5D,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,gBAAoC,CAAC;IACzC,KAAK,IAAI,IAAI,GAAG,cAAc,EAAE,IAAI,IAAI,eAAe,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;QAC7E,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACzC,IAAI,EAAE,CAAC,SAAS;YAAE,SAAS;QAC3B,IAAI,EAAE,CAAC,KAAK,IAAI,SAAS;YAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACvD,gBAAgB,KAAK,IAAI,CAAC;IAC5B,CAAC;IACD,IAAI,gBAAgB,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAClF,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,SAAS;QACvD,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI;SACd,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,SAAS;QACzD,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC;QAC3B,CAAC,CAAC,IAAI,CACT;SACA,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;AACxC,CAAC"}
@@ -0,0 +1,24 @@
1
+ /** Soft hyphens (U+00AD): where a long word may break, with a hyphen shown only when it does. */
2
+ /** U+00AD, written by its code point so no formatter turns it into an invisible character in the source. */
3
+ export declare const SOFT_HYPHEN: string;
4
+ /** The text as said and as matched: soft hyphens taken out. */
5
+ export declare const withoutSoftHyphens: (text: string) => string;
6
+ /**
7
+ * A soft hyphen at every place in `word` with at least three letters either side, so the browser breaks it, with a
8
+ * hyphen, at the last place that fits whatever the width, spacing or zoom. A word that already has one of a
9
+ * product's is left as it is.
10
+ */
11
+ export declare function hyphenateEverywhere(word: string): string;
12
+ /**
13
+ * `text` with soft hyphens added to each word wider than the line, by `widthOf`, so nothing breaks between two
14
+ * letters without a hyphen. A word that fits a line is left alone, so it wraps whole rather than being hyphenated
15
+ * at a line's end.
16
+ */
17
+ export declare function hyphenateTooWide(text: string, lineWidth: number, widthOf: (word: string, start: number) => number): string;
18
+ /**
19
+ * A file name in the pieces it divides itself into, so it can break between them with nothing added: after a
20
+ * separator (`_`, `-`, `.` and the like), at a change from lower to upper case ("floorPlan"), and between letters
21
+ * and digits ("IMG20261014"). Joined, the pieces are the name.
22
+ */
23
+ export declare function fileNameParts(name: string): string[];
24
+ //# sourceMappingURL=soft-hyphen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"soft-hyphen.d.ts","sourceRoot":"","sources":["../../src/lib/soft-hyphen.ts"],"names":[],"mappings":"AAAA,iGAAiG;AAEjG,4GAA4G;AAC5G,eAAO,MAAM,WAAW,QAA6B,CAAC;AAEtD,+DAA+D;AAC/D,eAAO,MAAM,kBAAkB,SAAU,MAAM,WAAqC,CAAC;AAKrF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOxD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,UAWjD;AAKD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAoBpD"}
@@ -0,0 +1,67 @@
1
+ /** Soft hyphens (U+00AD): where a long word may break, with a hyphen shown only when it does. */
2
+ /** U+00AD, written by its code point so no formatter turns it into an invisible character in the source. */
3
+ export const SOFT_HYPHEN = String.fromCodePoint(0xad);
4
+ /** The text as said and as matched: soft hyphens taken out. */
5
+ export const withoutSoftHyphens = (text) => text.replaceAll(SOFT_HYPHEN, '');
6
+ /** The fewest letters either side of a hyphen this adds. */
7
+ const EDGE = 3;
8
+ /**
9
+ * A soft hyphen at every place in `word` with at least three letters either side, so the browser breaks it, with a
10
+ * hyphen, at the last place that fits whatever the width, spacing or zoom. A word that already has one of a
11
+ * product's is left as it is.
12
+ */
13
+ export function hyphenateEverywhere(word) {
14
+ if (word.includes(SOFT_HYPHEN))
15
+ return word;
16
+ const letters = [...word];
17
+ if (letters.length < EDGE * 2)
18
+ return word;
19
+ return letters
20
+ .map((letter, i) => (i >= EDGE && i <= letters.length - EDGE ? SOFT_HYPHEN : '') + letter)
21
+ .join('');
22
+ }
23
+ /**
24
+ * `text` with soft hyphens added to each word wider than the line, by `widthOf`, so nothing breaks between two
25
+ * letters without a hyphen. A word that fits a line is left alone, so it wraps whole rather than being hyphenated
26
+ * at a line's end.
27
+ */
28
+ export function hyphenateTooWide(text, lineWidth, widthOf) {
29
+ let at = 0;
30
+ return text
31
+ .split(' ')
32
+ .map((word) => {
33
+ const start = at;
34
+ at += word.length + 1;
35
+ return widthOf(word, start) > lineWidth + 0.5 ? hyphenateEverywhere(word) : word;
36
+ })
37
+ .join(' ');
38
+ }
39
+ /** The characters a file name divides itself at: a break may follow each. */
40
+ const SEPARATOR = /[_\-.,+~@/\\]/u;
41
+ /**
42
+ * A file name in the pieces it divides itself into, so it can break between them with nothing added: after a
43
+ * separator (`_`, `-`, `.` and the like), at a change from lower to upper case ("floorPlan"), and between letters
44
+ * and digits ("IMG20261014"). Joined, the pieces are the name.
45
+ */
46
+ export function fileNameParts(name) {
47
+ const parts = [];
48
+ let part = '';
49
+ const chars = [...name];
50
+ chars.forEach((char, i) => {
51
+ const before = chars[i - 1] ?? '';
52
+ const split = i > 0 &&
53
+ (SEPARATOR.test(before) ||
54
+ (/\p{Ll}/u.test(before) && /\p{Lu}/u.test(char)) ||
55
+ (/\p{L}/u.test(before) && /\p{N}/u.test(char)) ||
56
+ (/\p{N}/u.test(before) && /\p{L}/u.test(char)));
57
+ if (split && part) {
58
+ parts.push(part);
59
+ part = '';
60
+ }
61
+ part += char;
62
+ });
63
+ if (part)
64
+ parts.push(part);
65
+ return parts;
66
+ }
67
+ //# sourceMappingURL=soft-hyphen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"soft-hyphen.js","sourceRoot":"","sources":["../../src/lib/soft-hyphen.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * The text to show, and a ref for the element that shows it, so a word too wide for its line breaks with a hyphen,
3
+ * never between two letters without one. With `overflow-wrap: normal`, a word the browser can't hyphenate runs out
4
+ * of the element; this reads its layout and gives each such word soft hyphens at every place with three letters
5
+ * either side, so the browser breaks it, with a hyphen, at the last place that fits.
6
+ *
7
+ * Give the ref to an `inline-block max-w-full` element holding just this text: it is as wide as its text up to its
8
+ * line, so a ResizeObserver sees the text widen (a selected row turning bold, text spacing) as well as the line
9
+ * narrow. A callback ref rather than an effect, because a collection such as React Aria's Tree renders an item once
10
+ * to build itself and again into the page: the work has to happen when the real element arrives. It only reads the
11
+ * layout, so a long list costs no extra layout per row.
12
+ */
13
+ export declare function useHyphenated(text: string): [string, (el: HTMLElement | null) => (() => void) | void];
14
+ /**
15
+ * A file name's pieces to show (fileNameParts), and a ref for the `inline-block max-w-full` element that shows them
16
+ * with a `<wbr>` between each: the name breaks where it divides itself, with nothing added. A piece still wider than
17
+ * the line gets soft hyphens at every place with three letters either side, for the browser to break at the last
18
+ * that fits; the element's `hyphenate-character` marks that break as something other than the name's own hyphen.
19
+ * Read when the element arrives and whenever it resizes, as useHyphenated is.
20
+ */
21
+ export declare function useFileNameParts(name: string): [string[], (el: HTMLElement | null) => (() => void) | void];
22
+ //# sourceMappingURL=use-hyphenated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-hyphenated.d.ts","sourceRoot":"","sources":["../../src/lib/use-hyphenated.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,GACX,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAyB3D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,GACX,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAsB7D"}
@@ -0,0 +1,81 @@
1
+ 'use client';
2
+ import { useCallback, useState } from 'react';
3
+ import { fileNameParts, hyphenateEverywhere, hyphenateTooWide, withoutSoftHyphens, } from './soft-hyphen.js';
4
+ /**
5
+ * The text to show, and a ref for the element that shows it, so a word too wide for its line breaks with a hyphen,
6
+ * never between two letters without one. With `overflow-wrap: normal`, a word the browser can't hyphenate runs out
7
+ * of the element; this reads its layout and gives each such word soft hyphens at every place with three letters
8
+ * either side, so the browser breaks it, with a hyphen, at the last place that fits.
9
+ *
10
+ * Give the ref to an `inline-block max-w-full` element holding just this text: it is as wide as its text up to its
11
+ * line, so a ResizeObserver sees the text widen (a selected row turning bold, text spacing) as well as the line
12
+ * narrow. A callback ref rather than an effect, because a collection such as React Aria's Tree renders an item once
13
+ * to build itself and again into the page: the work has to happen when the real element arrives. It only reads the
14
+ * layout, so a long list costs no extra layout per row.
15
+ */
16
+ export function useHyphenated(text) {
17
+ const [shown, setShown] = useState(text);
18
+ // A new text from the product starts again; the same text with our soft hyphens added is kept.
19
+ if (shown !== text && withoutSoftHyphens(shown) !== withoutSoftHyphens(text))
20
+ setShown(text);
21
+ const ref = useCallback((el) => {
22
+ if (!el)
23
+ return;
24
+ const check = () => {
25
+ const node = el.firstChild;
26
+ if (!node || node.nodeType !== Node.TEXT_NODE)
27
+ return;
28
+ if (el.scrollWidth <= el.clientWidth + 0.5)
29
+ return;
30
+ const data = node.data;
31
+ const range = document.createRange();
32
+ const next = hyphenateTooWide(data, el.clientWidth, (word, start) => {
33
+ range.setStart(node, start);
34
+ range.setEnd(node, start + word.length);
35
+ return range.getBoundingClientRect().width;
36
+ });
37
+ if (next !== data)
38
+ setShown(next);
39
+ };
40
+ check();
41
+ const observer = new ResizeObserver(check);
42
+ observer.observe(el);
43
+ return () => observer.disconnect();
44
+ }, []);
45
+ return [shown, ref];
46
+ }
47
+ /**
48
+ * A file name's pieces to show (fileNameParts), and a ref for the `inline-block max-w-full` element that shows them
49
+ * with a `<wbr>` between each: the name breaks where it divides itself, with nothing added. A piece still wider than
50
+ * the line gets soft hyphens at every place with three letters either side, for the browser to break at the last
51
+ * that fits; the element's `hyphenate-character` marks that break as something other than the name's own hyphen.
52
+ * Read when the element arrives and whenever it resizes, as useHyphenated is.
53
+ */
54
+ export function useFileNameParts(name) {
55
+ const [parts, setParts] = useState(() => fileNameParts(name));
56
+ if (withoutSoftHyphens(parts.join('')) !== name)
57
+ setParts(fileNameParts(name));
58
+ const ref = useCallback((el) => {
59
+ if (!el)
60
+ return;
61
+ const check = () => {
62
+ if (el.scrollWidth <= el.clientWidth + 0.5)
63
+ return;
64
+ const range = document.createRange();
65
+ const nodes = [...el.childNodes].filter((n) => n.nodeType === Node.TEXT_NODE);
66
+ const wide = nodes.map((node) => {
67
+ range.selectNodeContents(node);
68
+ return range.getBoundingClientRect().width > el.clientWidth + 0.5;
69
+ });
70
+ if (!wide.some(Boolean))
71
+ return;
72
+ setParts((was) => was.map((part, i) => (wide[i] ? hyphenateEverywhere(part) : part)));
73
+ };
74
+ check();
75
+ const observer = new ResizeObserver(check);
76
+ observer.observe(el);
77
+ return () => observer.disconnect();
78
+ }, []);
79
+ return [parts, ref];
80
+ }
81
+ //# sourceMappingURL=use-hyphenated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-hyphenated.js","sourceRoot":"","sources":["../../src/lib/use-hyphenated.ts"],"names":[],"mappings":"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"}
@@ -685,14 +685,15 @@
685
685
  display: inline-flex;
686
686
  align-items: center;
687
687
  gap: 6px;
688
- /* In the rail, names wrap and hyphenate inside the tile (1.4.12). */
688
+ /* In the rail, names wrap inside the tile (1.4.12), and a word too wide for it breaks with a hyphen: the
689
+ browser's, or a soft hyphen the Tab adds (useHyphenated). Never overflow-wrap: anywhere, which breaks between
690
+ two letters with no hyphen: Chrome and Firefox don't hyphenate a capitalised English word. */
689
691
  [role='tablist'][data-orientation='vertical'] & {
690
692
  display: block;
691
693
  text-align: center;
692
694
  font-size: 13px;
693
695
  line-height: 16px;
694
696
  hyphens: auto;
695
- overflow-wrap: anywhere;
696
697
  }
697
698
  }
698
699
  /* The name, over a hidden bold copy that holds the bold width from the start. */
@@ -701,6 +702,14 @@
701
702
  & > * {
702
703
  grid-area: 1 / 1;
703
704
  }
705
+ /* In the rail, no wider than the tile: a word too wide then overflows its copy, where the Tab sees it and gives it
706
+ soft hyphens, rather than widening the grid past the tile. */
707
+ [role='tablist'][data-orientation='vertical'] & {
708
+ max-width: 100%;
709
+ }
710
+ [role='tablist'][data-orientation='vertical'] & > * {
711
+ min-width: 0;
712
+ }
704
713
  & > :last-child {
705
714
  font-weight: 700;
706
715
  visibility: hidden;
@@ -1 +1 @@
1
- {"version":3,"file":"file-upload.d.ts","sourceRoot":"","sources":["../../src/ui/file-upload.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-upload.d.ts","sourceRoot":"","sources":["../../src/ui/file-upload.tsx"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
1
  'use client';
2
2
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useId, useRef, useState } from 'react';
3
+ import { Fragment, useId, useRef, useState } from 'react';
4
4
  import { DropZone as RACDropZone, FileTrigger, ProgressBar as RACProgressBar, Text, isFileDropItem, useLocale, } from 'react-aria-components';
5
5
  import { CircleAlert, CircleCheck, FileText, RotateCcw, Upload, X } from 'lucide-react';
6
6
  import { cn } from '../lib/cn.js';
7
7
  import { formatList } from '../lib/labels.js';
8
8
  import { useLabels } from '../lib/locale.js';
9
+ import { SOFT_HYPHEN, withoutSoftHyphens } from '../lib/soft-hyphen.js';
10
+ import { useFileNameParts } from '../lib/use-hyphenated.js';
9
11
  import { Button } from './button.js';
10
12
  import { fieldStack } from './field.js';
11
13
  import { IconButton } from './icon-button.js';
@@ -196,7 +198,7 @@ export function FileUpload({ label, description, acceptedFileTypes, acceptedType
196
198
  ];
197
199
  return (_jsxs("div", { role: "group", "aria-labelledby": labelId, "aria-describedby": description ? descriptionId : undefined, className: cn(fieldStack, 'max-w-[36rem]', className), children: [_jsx("span", { id: labelId, className: "block text-sm leading-5 font-semibold text-foreground", children: label }), description && (_jsx("p", { id: descriptionId, className: "max-w-(--measure) text-[13px] leading-5 text-muted-foreground", children: description })), _jsx(RACDropZone, { isDisabled: isDisabled, getDropOperation: () => 'copy', onDrop: onDrop, className: cn('relative flex flex-col items-center gap-3 rounded-lg border-2 border-dashed border-input bg-card px-4 py-6 text-center outline-none', 'data-drop-target:border-solid data-drop-target:border-primary data-drop-target:bg-brand-subtle data-focus-visible:focus-ring data-disabled:opacity-60'), children: ({ isDropTarget }) => (_jsxs(_Fragment, { children: [_jsx(Upload, { "aria-hidden": "true", className: "size-6 text-muted-foreground" }), _jsx(Text, { slot: "label", className: "text-sm leading-5 text-foreground", children: isDropTarget ? t('dropToAdd') : allowsMultiple ? t('dropFiles') : t('dropFile') }), _jsx("span", { "aria-hidden": "true", className: "-my-1 text-[13px] leading-5 text-muted-foreground", children: t('or') }), _jsx(FileTrigger, { acceptedFileTypes: acceptedFileTypes, allowsMultiple: allowsMultiple, onSelect: (list) => list && accept(Array.from(list)), children: _jsx(Button, { ref: triggerRef, isDisabled: isDisabled, children: allowsMultiple ? t('chooseFiles') : t('chooseFile') }) })] })) }), rows.length > 0 && (_jsx("ul", { ref: listRef, "aria-label": t('fileList', { label }), className: "mt-1 flex flex-col gap-2", children: rows.map((row) => (_jsxs("li", { "data-file-row": row.id, className: cn('flex items-start gap-3 rounded-md border px-3 py-2', row.kind === 'rejected' || row.status === 'error'
198
200
  ? 'border-destructive'
199
- : 'border-border'), children: [row.kind === 'rejected' || row.status === 'error' ? (_jsx(CircleAlert, { "aria-hidden": "true", className: "mt-0.5 size-5 shrink-0 text-destructive" })) : row.status === 'done' ? (_jsx(CircleCheck, { "aria-hidden": "true", className: "mt-0.5 size-5 shrink-0 text-success" })) : (_jsx(FileText, { "aria-hidden": "true", className: "mt-0.5 size-5 shrink-0 text-muted-foreground" })), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [_jsx("span", { className: "text-sm leading-5 font-semibold [overflow-wrap:anywhere]", children: row.name }), _jsx("span", { className: "text-[13px] leading-5 text-muted-foreground", children: t('sizeAndStatus', {
201
+ : 'border-border'), children: [row.kind === 'rejected' || row.status === 'error' ? (_jsx(CircleAlert, { "aria-hidden": "true", className: "mt-0.5 size-5 shrink-0 text-destructive" })) : row.status === 'done' ? (_jsx(CircleCheck, { "aria-hidden": "true", className: "mt-0.5 size-5 shrink-0 text-success" })) : (_jsx(FileText, { "aria-hidden": "true", className: "mt-0.5 size-5 shrink-0 text-muted-foreground" })), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [_jsx(FileName, { name: row.name }), _jsx("span", { className: "text-[13px] leading-5 text-muted-foreground", children: t('sizeAndStatus', {
200
202
  size: formatBytes(row.size, locale),
201
203
  status: row.kind === 'rejected'
202
204
  ? t('notAdded')
@@ -213,4 +215,24 @@ export function FileUpload({ label, description, acceptedFileTypes, acceptedType
213
215
  ? setRejected((r) => r.filter((x) => x.id !== row.id))
214
216
  : onRemove(row.id)) })] })] }, row.id))) })), _jsx("div", { role: "status", className: "sr-only", children: announcement.map((sentence, i) => (_jsx("p", { children: sentence }, i))) })] }));
215
217
  }
218
+ /** The mark at a break inside a piece of a name, so it can't be taken for a hyphen of the name's own. */
219
+ const BREAK_MARK = '\u21A9';
220
+ /**
221
+ * A file's full name, wrapped rather than cut off, and never broken between two letters without a mark. It breaks
222
+ * where the name divides itself (after `_`, `-`, `.`, at a case or digit change), with nothing added; a piece too
223
+ * wide for the row breaks at the last letter that fits, marked ↩. When that adds soft hyphens, what is seen is
224
+ * hidden from assistive technology and a plain copy is what's said, and copying the name copies it without them.
225
+ */
226
+ function FileName({ name }) {
227
+ const [parts, ref] = useFileNameParts(name);
228
+ const marked = parts.some((part) => part.includes(SOFT_HYPHEN));
229
+ const copyPlain = (e) => {
230
+ const text = window.getSelection()?.toString() ?? '';
231
+ if (!text.includes(SOFT_HYPHEN))
232
+ return;
233
+ e.clipboardData.setData('text/plain', withoutSoftHyphens(text));
234
+ e.preventDefault();
235
+ };
236
+ return (_jsxs("span", { onCopy: copyPlain, className: "relative text-sm leading-5 font-semibold hyphens-manual", style: { hyphenateCharacter: `"${BREAK_MARK}"` }, children: [_jsx("span", { ref: ref, "aria-hidden": marked || undefined, className: "inline-block max-w-full", children: parts.map((part, i) => (_jsxs(Fragment, { children: [i > 0 && _jsx("wbr", {}), part] }, i))) }), marked && _jsx("span", { className: "sr-only select-none", children: name })] }));
237
+ }
216
238
  //# sourceMappingURL=file-upload.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-upload.js","sourceRoot":"","sources":["../../src/ui/file-upload.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-upload.js","sourceRoot":"","sources":["../../src/ui/file-upload.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../src/ui/tabs.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../src/ui/tabs.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAML,KAAK,GAAG,EACR,KAAK,YAAY,IAAI,eAAe,EACpC,KAAK,aAAa,IAAI,gBAAgB,EACtC,KAAK,QAAQ,IAAI,WAAW,EAC5B,KAAK,SAAS,IAAI,YAAY,EAC/B,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEtD,oEAAoE;AACpE,MAAM,WAAW,UAAU;IACzB,qFAAqF;IACrF,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,iHAAiH;IACjH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,UAAU,EAAE,UAMxB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAExD;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,CAAC;AAE7D,0EAA0E;AAC1E,MAAM,WAAW,QAAQ;IACvB,sFAAsF;IACtF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iHAAiH;IACjH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gHAAgH;IAChH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AA0CD,MAAM,WAAW,SAAU,SAAQ,IAAI,CAAC,YAAY,EAAE,WAAW,GAAG,UAAU,CAAC;IAC7E,QAAQ,EAAE,SAAS,CAAC;IACpB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,yBAAyB;IACzB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,qEAAqE;IACrE,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,2GAA2G;IAC3G,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,EACnB,OAAqB,EACrB,YAAwB,EACxB,WAA0B,EAC1B,YAAY,EACZ,cAAsB,EACtB,MAAM,EAAE,KAAK,EACb,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,SAAS,qBAgFX;AAwBD,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;IAC3F,uDAAuD;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,qBAEjF;AAID,MAAM,WAAW,QAAS,SAAQ,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,UAAU,CAAC;IAC3E,sBAAsB;IACtB,QAAQ,EAAE,SAAS,CAAC;IACpB,iGAAiG;IACjG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8GAA8G;IAC9G,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,0FAA0F;IAC1F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;GASG;AACH,wBAAgB,GAAG,CAAC,EAClB,EAAE,EACF,IAAI,EACJ,KAAK,EACL,KAAK,EACL,SAAS,EACT,eAAe,EACf,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,QAAQ,qBAyCV;AAiSD,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,gBAAgB,EAAE,WAAW,GAAG,kBAAkB,CAAC;IAC7F,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,4BAuBlE"}
package/dist/ui/tabs.js CHANGED
@@ -5,6 +5,8 @@ import { createContext, useCallback, useContext, useEffect, useRef, useState, }
5
5
  import { Tab as RACTab, TabList as RACTabList, TabListStateContext, TabPanel as RACTabPanel, Tabs as RACTabs, } from 'react-aria-components';
6
6
  import { cn } from '../lib/cn.js';
7
7
  import { useLabels } from '../lib/locale.js';
8
+ import { SOFT_HYPHEN, withoutSoftHyphens } from '../lib/soft-hyphen.js';
9
+ import { useHyphenated } from '../lib/use-hyphenated.js';
8
10
  import { renderIcon } from './icon.js';
9
11
  export const tabsLabels = {
10
12
  count: ', {count, number}',
@@ -134,6 +136,11 @@ export function Tab({ id, icon, count, badge, className, visualClassName, childr
134
136
  function TabInner({ id, name, display, rail, icon, count, badge, isSelected, tipOpen, visualClassName, t, children, }) {
135
137
  const mark = useBadge(id, name, badge, isSelected);
136
138
  const shown = mark.shown;
139
+ // In the rail a word too wide for the tile breaks with a hyphen, never silently: measured on the bold copy, the
140
+ // wider, and shown in both so they break alike. With soft hyphens added, a plain copy is what's said.
141
+ const text = typeof children === 'string' ? children : null;
142
+ const [hyphenated, nameRef] = useHyphenated(text ?? '');
143
+ const marked = text !== null && hyphenated.includes(SOFT_HYPHEN);
137
144
  // Never over text: open in a row, the name sits beside the icon, so the badge follows the name. In a rail the name
138
145
  // is under the icon, clear of it. With no icon (text) it always follows the name.
139
146
  const inline = shown && (display === 'text' || (display === 'expanding' && isSelected && !rail));
@@ -150,7 +157,7 @@ function TabInner({ id, name, display, rail, icon, count, badge, isSelected, tip
150
157
  : count != null
151
158
  ? t('tipCount', { name, count })
152
159
  : name;
153
- return (_jsxs(_Fragment, { children: [_jsxs("span", { "data-display": display, className: cn('tabs-paint group-data-focus-visible/tab:focus-ring group-data-disabled/tab:opacity-50', visualClassName), children: [display !== 'text' && icon && (_jsxs("span", { className: "tabs-icon", children: [renderIcon(icon, 'size-5'), shown && badge && !inline && (_jsx(BadgeMark, { badge: badge, ...mark, returning: returning }))] })), _jsx("span", { className: "tabs-name", children: _jsxs("span", { className: "tabs-name-row", children: [_jsxs("span", { className: "tabs-name-text", children: [_jsx("span", { children: children }), _jsx("span", { "aria-hidden": "true", children: children })] }), count != null && (_jsxs(_Fragment, { children: [_jsx("span", { "aria-hidden": "true", className: "tabs-count", children: count }), _jsx("span", { className: "sr-only", children: t('count', { count }) })] })), shown && badge && inline && _jsx(BadgeMark, { badge: badge, ...mark, inline: true }), shown && badge && (_jsx("span", { className: "sr-only", children: t('badge', { badge: badge.label }) }))] }) })] }), tipOpen && (_jsx("span", { "aria-hidden": "true", "data-side": rail ? 'right' : 'bottom', className: "tabs-tip", children: tip }))] }));
160
+ return (_jsxs(_Fragment, { children: [_jsxs("span", { "data-display": display, className: cn('tabs-paint group-data-focus-visible/tab:focus-ring group-data-disabled/tab:opacity-50', visualClassName), children: [display !== 'text' && icon && (_jsxs("span", { className: "tabs-icon", children: [renderIcon(icon, 'size-5'), shown && badge && !inline && (_jsx(BadgeMark, { badge: badge, ...mark, returning: returning }))] })), _jsx("span", { className: "tabs-name", children: _jsxs("span", { className: "tabs-name-row", children: [_jsxs("span", { className: "tabs-name-text", children: [_jsx("span", { "aria-hidden": marked || undefined, children: text === null ? (children) : (_jsx("span", { className: "inline-block max-w-full", children: hyphenated })) }), _jsx("span", { "aria-hidden": "true", children: text === null ? (children) : (_jsx("span", { ref: nameRef, className: "inline-block max-w-full", children: hyphenated })) })] }), marked && _jsx("span", { className: "sr-only", children: withoutSoftHyphens(text) }), count != null && (_jsxs(_Fragment, { children: [_jsx("span", { "aria-hidden": "true", className: "tabs-count", children: count }), _jsx("span", { className: "sr-only", children: t('count', { count }) })] })), shown && badge && inline && _jsx(BadgeMark, { badge: badge, ...mark, inline: true }), shown && badge && (_jsx("span", { className: "sr-only", children: t('badge', { badge: badge.label }) }))] }) })] }), tipOpen && (_jsx("span", { "aria-hidden": "true", "data-side": rail ? 'right' : 'bottom', className: "tabs-tip", children: tip }))] }));
154
161
  }
155
162
  /** Whether the badge shows, and the pulse and clearing bookkeeping behind it. */
156
163
  function useBadge(id, name, badge, isSelected) {
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../src/ui/tabs.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../src/ui/tabs.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,aAAa,EACb,WAAW,EACX,UAAU,EACV,SAAS,EACT,MAAM,EACN,QAAQ,GAET,MAAM,OAAO,CAAC;AACf,OAAO,EACL,GAAG,IAAI,MAAM,EACb,OAAO,IAAI,UAAU,EACrB,mBAAmB,EACnB,QAAQ,IAAI,WAAW,EACvB,IAAI,IAAI,OAAO,GAMhB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,SAAS,EAAkB,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAiB,MAAM,WAAW,CAAC;AAgBtD,MAAM,CAAC,MAAM,UAAU,GAAe;IACpC,KAAK,EAAE,mBAAmB;IAC1B,KAAK,EAAE,WAAW;IAClB,QAAQ,EAAE,0BAA0B;IACpC,QAAQ,EAAE,kBAAkB;IAC5B,SAAS,EAAE,iBAAiB;CAC7B,CAAC;AA+CF,MAAM,aAAa,GAAG,aAAa,CAAoB,IAAI,CAAC,CAAC;AAQ7D,MAAM,aAAa,GAAG,aAAa,CAAS,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;AAEpF,sHAAsH;AACtH,MAAM,QAAQ,GAEV,KAGD,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,4BAAG,QAAQ,GAAI,CAAC,CAAC;AAEpD,kFAAkF;AAClF,MAAM,QAAQ,GAAG,GAAG,CAAC;AAkBrB;;;;;;;GAOG;AACH,MAAM,UAAU,IAAI,CAAC,EACnB,OAAO,GAAG,WAAW,EACrB,YAAY,GAAG,SAAS,EACxB,WAAW,GAAG,YAAY,EAC1B,YAAY,EACZ,cAAc,GAAG,KAAK,EACtB,MAAM,EAAE,KAAK,EACb,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACE;IACV,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;QACvB,IAAI,WAAW,KAAK,UAAU,IAAI,CAAC,EAAE,IAAI,OAAO,cAAc,KAAK,WAAW;YAAE,OAAO;QACvF,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;YAC9C,MAAM,KAAK,GAAG,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC;YACzD,SAAS,CAAC,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,QAAQ,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACrB,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAClB,MAAM,SAAS,GAAG,WAAW,KAAK,UAAU,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC;IAEpF,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAa,IAAI,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,MAAM,GAAG,WAAW,CACxB,CAAC,EAAc,EAAE,EAAE,CACjB,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;QACnB,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;YAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/D,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,EACJ,EAAE,CACH,CAAC;IACF,MAAM,QAAQ,GAAG,WAAW,CAC1B,CAAC,EAAO,EAAE,EAAE,CACV,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;QACnB,IAAI,IAAI,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC;QAC7B,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,EACJ,EAAE,CACH,CAAC;IACF,sDAAsD;IACtD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,GAAG,IAAI,IAAI;YAAE,OAAO;QACxB,MAAM,KAAK,GAAG,CAAC,CAAgB,EAAE,EAAE;YACjC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ;gBAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC;QACF,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC5C,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IAElB,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAC/C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAe;QACzB,OAAO;QACP,YAAY;QACZ,WAAW,EAAE,SAAS;QACtB,CAAC;QACD,YAAY;QACZ,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,IAAI,UAAU,CAAC,IAAI,CAAC;QACtD,GAAG;QACH,MAAM;QACN,QAAQ;QACR,SAAS;KACV,CAAC;IAEF,OAAO,CACL,MAAC,OAAO,OACF,KAAK,EACT,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,SAAS,EACtB,SAAS,EAAE,EAAE,CACX,eAAe,EACf,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,gBAAgB,EAC1E,SAAS,CACV,aAED,KAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,YACnC,KAAC,aAAa,cAAE,QAAQ,GAAiB,GAClB,EACxB,cAAc,IAAI,CACjB,eAAM,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,SAAS,YACpC,OAAO,GACH,CACR,IACO,CACX,CAAC;AACJ,CAAC;AAED,mFAAmF;AACnF,SAAS,aAAa,CAAC,EAAE,QAAQ,EAA2B;IAC1D,MAAM,KAAK,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,KAAK,EAAE,WAAW,IAAI,IAAI,CAAC;IACvC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAwC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7F,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG;QAAE,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAChG,MAAM,MAAM,GAAW;QACrB,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;QACxB,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;KACpE,CAAC;IACF,OAAO,KAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,YAAG,QAAQ,GAA0B,CAAC;AACpF,CAAC;AAED,SAAS,SAAS;IAChB,MAAM,MAAM,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC1E,OAAO,MAAM,CAAC;AAChB,CAAC;AAUD;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAmB,EAAE,SAAS,EAAE,GAAG,KAAK,EAAmB;IAChF,OAAO,KAAC,UAAU,OAAK,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,GAAI,CAAC;AAC1E,CAAC;AAoBD;;;;;;;;;GASG;AACH,MAAM,UAAU,GAAG,CAAC,EAClB,EAAE,EACF,IAAI,EACJ,KAAK,EACL,KAAK,EACL,SAAS,EACT,eAAe,EACf,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACC;IACT,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,SAAS,IAAI,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACzE,MAAM,OAAO,GAAgB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,KAAK,UAAU,CAAC;IAC/C,MAAM,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC;IACrB,uGAAuG;IACvG,MAAM,QAAQ,GAAG,KAAK,EAAE,WAAW,KAAK,EAAE,CAAC;IAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,EAAS,EAAE,OAAO,KAAK,MAAM,IAAI,CAAC,OAAO,KAAK,WAAW,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE5F,OAAO,CACL,KAAC,MAAM,OACD,KAAK,KACL,GAAG,CAAC,QAAQ,EAChB,EAAE,EAAE,EAAE,EACN,SAAS,EAAE,EAAE,CACX,oIAAoI,EACpI,IAAI,IAAI,aAAa,EACrB,SAAS,CACV,YAEA,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CACnB,KAAC,QAAQ,IACP,EAAE,EAAE,EAAS,EACb,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,GAAG,CAAC,IAAI,EACjB,eAAe,EAAE,eAAe,EAChC,CAAC,EAAE,CAAC,YAEH,QAAQ,GACA,CACZ,GACM,CACV,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,EAChB,EAAE,EACF,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,EACL,UAAU,EACV,OAAO,EACP,eAAe,EACf,CAAC,EACD,QAAQ,GAcT;IACC,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACzB,gHAAgH;IAChH,sGAAsG;IACtG,MAAM,IAAI,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5D,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,IAAI,KAAK,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAEjE,mHAAmH;IACnH,kFAAkF;IAClF,MAAM,MAAM,GAAG,KAAK,IAAI,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,OAAO,KAAK,WAAW,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACjG,kFAAkF;IAClF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,YAAY,CAAC,MAAM,CAAC,CAAC;QACrB,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,EAAE,KAAK,IAAI,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC;IACrD,MAAM,GAAG,GACP,KAAK,IAAI,KAAK;QACZ,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAC3C,CAAC,CAAC,KAAK,IAAI,IAAI;YACb,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YAChC,CAAC,CAAC,IAAI,CAAC;IAEb,OAAO,CACL,8BACE,gCACgB,OAAO,EACrB,SAAS,EAAE,EAAE,CACX,uFAAuF,EACvF,eAAe,CAChB,aAEA,OAAO,KAAK,MAAM,IAAI,IAAI,IAAI,CAC7B,gBAAM,SAAS,EAAC,WAAW,aACxB,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,EAC1B,KAAK,IAAI,KAAK,IAAI,CAAC,MAAM,IAAI,CAC5B,KAAC,SAAS,IAAC,KAAK,EAAE,KAAK,KAAM,IAAI,EAAE,SAAS,EAAE,SAAS,GAAI,CAC5D,IACI,CACR,EACD,eAAM,SAAS,EAAC,WAAW,YACzB,gBAAM,SAAS,EAAC,eAAe,aAC7B,gBAAM,SAAS,EAAC,gBAAgB,aAC9B,8BAAmB,MAAM,IAAI,SAAS,YACnC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CACf,QAAQ,CACT,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,yBAAyB,YAAE,UAAU,GAAQ,CAC9D,GACI,EAEP,8BAAkB,MAAM,YACrB,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CACf,QAAQ,CACT,CAAC,CAAC,CAAC,CACF,eAAM,GAAG,EAAE,OAAO,EAAE,SAAS,EAAC,yBAAyB,YACpD,UAAU,GACN,CACR,GACI,IACF,EACN,MAAM,IAAI,eAAM,SAAS,EAAC,SAAS,YAAE,kBAAkB,CAAC,IAAI,CAAC,GAAQ,EACrE,KAAK,IAAI,IAAI,IAAI,CAChB,8BACE,8BAAkB,MAAM,EAAC,SAAS,EAAC,YAAY,YAC5C,KAAK,GACD,EACP,eAAM,SAAS,EAAC,SAAS,YAAE,CAAC,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,GAAQ,IACvD,CACJ,EACA,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,KAAC,SAAS,IAAC,KAAK,EAAE,KAAK,KAAM,IAAI,EAAE,MAAM,SAAG,EACxE,KAAK,IAAI,KAAK,IAAI,CACjB,eAAM,SAAS,EAAC,SAAS,YAAE,CAAC,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,GAAQ,CACtE,IACI,GACF,IACF,EACN,OAAO,IAAI,CACV,8BAAkB,MAAM,eAAY,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAC,UAAU,YAChF,GAAG,GACC,CACR,IACA,CACJ,CAAC;AACJ,CAAC;AAiBD,iFAAiF;AACjF,SAAS,QAAQ,CAAC,EAAO,EAAE,IAAY,EAAE,KAA2B,EAAE,UAAmB;IACvF,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,KAAK,EAAE,KAAK,CAAC;IAC3B,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC;IACrC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAa,GAAG,EAAE,CAAC,CAAC;QAC5C,KAAK;QACL,OAAO;QACP,KAAK,EAAE,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,EAAE,OAAO,IAAI,SAAS,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC,CAAC;IAEJ,wGAAwG;IACxG,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;QACvC,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,SAAS,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACtE,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC1E,CAAC;IACD,IAAI,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK;QAAE,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IACjF,IAAI,IAAI,KAAK,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAE3B,oEAAoE;IACpE,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAChC,SAAS,CAAC,GAAG,EAAE;QACb,IACE,SAAS;YACT,OAAO;YACP,KAAK,IAAI,IAAI;YACb,SAAS,CAAC,OAAO,IAAI,IAAI;YACzB,KAAK,GAAG,SAAS,CAAC,OAAO;YAEzB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9E,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,+GAA+G;IAC/G,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,CAAC,KAAK,EAAE,WAAW,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IACnE,MAAM,KAAK,GAAG,MAAM,CAAgC,SAAS,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC5C,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC;IACxC,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO;YAAE,OAAO;QACvD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACxC,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC;YAC1B,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACxD,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QACxB,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IAChC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAEvD,OAAO;QACL,KAAK,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO;QAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO,EAAE,SAAS,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK;QAC7D,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,EACjB,KAAK,EACL,MAAM,EACN,KAAK,EACL,OAAO,EACP,QAAQ,EACR,SAAS,GAQV;IACC,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC;IAC/C,OAAO,CACL,8BAGc,MAAM,gBACN,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,cAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,oBACd,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,gBACpC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,mBACrB,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,oBACxB,SAAS,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EACtD,SAAS,EAAC,YAAY,YAErB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAVtD,KAAK,CAWL,CACR,CAAC;AACJ,CAAC;AAED,4EAA4E;AAE5E;;;;GAIG;AACH,SAAS,MAAM,CAAC,EAAO,EAAE,OAAgB;IACvC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAAC;IACzD,MAAM,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC;IACxB,MAAM,KAAK,GAAG,MAAM,CAAgC,SAAS,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IACvD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,IAAI,IAAI;YAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;IAElC,MAAM,QAAQ,GAGV;QACF,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;YAClB,IAAI,CAAC,CAAC,WAAW,KAAK,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrE,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,OAAO,GAAG,GAAG;gBAAE,MAAM,CAAC,EAAE,CAAC,CAAC;;gBAC/D,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QACzD,CAAC;QACD,UAAU,EAAE,GAAG,EAAE;YACf,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;YACxB,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,OAAO;gBAAE,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACb,IAAI,CAAC,OAAO,IAAI,CAAE,CAAC,CAAC,MAAkB,CAAC,OAAO,CAAC,gBAAgB,CAAC;gBAAE,OAAO;YACzE,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YACvB,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,MAAM,CAAC,EAAE,CAAC,CAAC;QACb,CAAC;QACD,MAAM,EAAE,GAAG,EAAE;YACX,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;YACxB,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,QAAQ,CAAC,EAAE,CAAC,CAAC;QACf,CAAC;QACD,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;YAClB,IAAI,CAAC,CAAC,WAAW,KAAK,UAAU;gBAAE,OAAO;YACzC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YACvB,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,QAAQ,CAAC,EAAE,CAAC,CAAC;QACf,CAAC;KACF,CAAC;IACF,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC7C,CAAC;AAQD;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,KAAK,EAAiB;IACjE,MAAM,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,KAAK,EAAE,WAAW,KAAK,EAAE,CAAC;IAC3C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,QAAQ,IAAI,CAAC,OAAO;QAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IAE3C,MAAM,KAAK,GAAG,CACZ,KAAC,WAAW,OACN,KAAK,EACT,EAAE,EAAE,EAAE,EACN,gBAAgB,EAAE,YAAY,KAAK,SAAS,iBAC/B,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACpE,SAAS,EAAE,EAAE,CACX,6FAA6F,EAC7F,SAAS,CACV,GACD,CACH,CAAC;IACF,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,CAAC,QAAQ,IAAI,YAAY,KAAK,SAAS,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IACrE,OAAO,KAAC,QAAQ,IAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,YAAG,KAAK,GAAY,CAAC;AAC7E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../src/ui/tree.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../src/ui/tree.tsx"],"names":[],"mappings":"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"}
package/dist/ui/tree.js CHANGED
@@ -4,6 +4,8 @@ import { ChevronRight, GripVertical } from 'lucide-react';
4
4
  import { Button as RACButton, Tree as RACTree, TreeHeader as RACTreeHeader, TreeItem as RACTreeItem, TreeItemContent, TreeSection as RACTreeSection, useLocale, } from 'react-aria-components';
5
5
  import { cn } from '../lib/cn.js';
6
6
  import { useKeyshortcuts } from '../lib/keyshortcuts.js';
7
+ import { withoutSoftHyphens } from '../lib/soft-hyphen.js';
8
+ import { useHyphenated } from '../lib/use-hyphenated.js';
7
9
  import { formatList } from '../lib/labels.js';
8
10
  import { SelectionCheckbox } from './checkbox.js';
9
11
  import { renderIcon } from './icon.js';
@@ -45,12 +47,15 @@ const lead = 'w-[max(var(--target-min),var(--control-height-sm))] shrink-0';
45
47
  */
46
48
  export function TreeItem({ title, textValue, icon, description, status, statusLabel, actions, alwaysShowActions, children, dragLabel, allowsDragging: rowDrags = true, className, ...props }) {
47
49
  const { locale } = useLocale();
48
- const text = textValue ?? (typeof title === 'string' ? title : '');
50
+ // Said and matched without a product's soft hyphens; shown with them, and with more where a word won't fit.
51
+ const text = withoutSoftHyphens(textValue ?? (typeof title === 'string' ? title : ''));
49
52
  const named = formatList([
50
53
  props['aria-label'] ?? text,
51
- typeof description === 'string' ? description : '',
54
+ typeof description === 'string' ? withoutSoftHyphens(description) : '',
52
55
  statusLabel ?? '',
53
56
  ].filter(Boolean), locale);
57
+ const [shownTitle, titleRef] = useHyphenated(typeof title === 'string' ? title : '');
58
+ const [shownDescription, descriptionRef] = useHyphenated(typeof description === 'string' ? description : '');
54
59
  return (_jsxs(RACTreeItem, { ...props, textValue: text, "aria-label": named || undefined, style: ({ level }) => ({ '--tree-level': level }), className: cn(
55
60
  // React Aria sets data-hovered only on a row that can be selected or has an action: the pointer then.
56
61
  'group/tree-item relative flex min-h-[max(var(--target-min),var(--nav-item-height))] cursor-default items-center gap-0.5 rounded-md py-1 ps-[calc((var(--tree-level)-1)*var(--tree-indent))] pe-1 outline-none', 'data-hovered:cursor-pointer data-disabled:cursor-not-allowed data-hovered:bg-accent data-selected:bg-brand-subtle data-selected:shadow-[inset_3px_0_0_var(--sidebar-primary)] data-focus-visible:focus-ring-inset data-disabled:opacity-60', 'data-dragging:opacity-50 data-drop-target:bg-brand-subtle data-drop-target:outline-2 data-drop-target:outline-solid data-drop-target:outline-brand data-drop-target:-outline-offset-2',
@@ -58,7 +63,7 @@ export function TreeItem({ title, textValue, icon, description, status, statusLa
58
63
  "forced-colors:data-selected:before:absolute forced-colors:data-selected:before:inset-y-1 forced-colors:data-selected:before:start-0 forced-colors:data-selected:before:w-[3px] forced-colors:data-selected:before:bg-[Highlight] forced-colors:data-selected:before:forced-color-adjust-none forced-colors:data-selected:before:content-['']", className), children: [_jsx(TreeItemContent, { children: ({ hasChildItems, selectionMode, selectionBehavior, allowsDragging: treeDrags }) => {
59
64
  const allowsDragging = treeDrags && rowDrags;
60
65
  return (_jsxs(_Fragment, { children: [hasChildItems ? (_jsx(RACButton, { slot: "chevron", className: cn('group/tree-chevron relative flex min-h-target cursor-pointer items-center justify-center outline-none', lead), children: _jsx("span", { className: "flex size-control-sm items-center justify-center rounded-md text-muted-foreground group-data-hovered/tree-chevron:bg-muted group-data-hovered/tree-chevron:text-foreground", children: _jsx(ChevronRight, { "aria-hidden": "true", className: "size-4 group-data-expanded/tree-item:rotate-90" }) }) })) : (_jsx("span", { "aria-hidden": "true", className: lead })), selectionMode === 'multiple' && selectionBehavior === 'toggle' && (_jsx(SelectionCheckbox, {})), _jsxs("span", { className: "flex min-w-0 flex-1 flex-wrap items-center gap-x-2 px-2", children: [icon &&
61
- renderIcon(icon, 'size-4 shrink-0 text-muted-foreground group-data-selected/tree-item:text-brand'), _jsx("span", { className: "min-w-0 leading-5 font-semibold [overflow-wrap:anywhere] text-foreground group-data-selected/tree-item:font-bold", children: title }), description && (_jsx("span", { className: "min-w-0 leading-5 [overflow-wrap:anywhere] text-muted-foreground", children: description })), status && (_jsx("span", { className: "flex flex-wrap items-center gap-1", children: status }))] }), (actions || allowsDragging) && (_jsxs("span", { className: cn('flex shrink-0 items-center gap-0.5', !alwaysShowActions &&
66
+ renderIcon(icon, 'size-4 shrink-0 text-muted-foreground group-data-selected/tree-item:text-brand'), _jsx("span", { className: "min-w-0 leading-5 font-semibold hyphens-auto text-foreground group-data-selected/tree-item:font-bold", children: typeof title === 'string' ? (_jsx("span", { ref: titleRef, className: "inline-block max-w-full", children: shownTitle })) : (title) }), description && (_jsx("span", { className: "min-w-0 leading-5 hyphens-auto text-muted-foreground", children: typeof description === 'string' ? (_jsx("span", { ref: descriptionRef, className: "inline-block max-w-full", children: shownDescription })) : (description) })), status && (_jsx("span", { className: "flex flex-wrap items-center gap-1", children: status }))] }), (actions || allowsDragging) && (_jsxs("span", { className: cn('flex shrink-0 items-center gap-0.5', !alwaysShowActions &&
62
67
  // Faded out, not hidden: they stay focusable, so focus can land on them (and shows
63
68
  // them) and React Aria can hand focus back to the drag button when a drag ends. No
64
69
  // pointer events until they show: group-hover needs a device that hovers, so on touch
@@ -1 +1 @@
1
- {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../src/ui/tree.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EACL,MAAM,IAAI,SAAS,EACnB,IAAI,IAAI,OAAO,EACf,UAAU,IAAI,aAAa,EAC3B,QAAQ,IAAI,WAAW,EACvB,eAAe,EACf,WAAW,IAAI,cAAc,EAC7B,SAAS,GAGV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,eAAe,EAA0B,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,UAAU,EAAiB,MAAM,WAAW,CAAC;AAYtD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,IAAI,CAAmB,EACrC,SAAS,EACT,GAAG,EACH,mBAAmB,EAAE,IAAI,EACzB,GAAG,KAAK,EACK;IACb,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACxC,OAAO,CACL,KAAC,OAAO,OACD,KAAyB,EAC9B,GAAG,EAAE,IAAI,EACT,SAAS,EAAE,EAAE,CACX,8HAA8H;QAC9H,mEAAmE;QACnE,8JAA8J,EAC9J,SAAS,CACV,GACD,CACH,CAAC;AACJ,CAAC;AAgDD,qGAAqG;AACrG,MAAM,IAAI,GAAG,8DAA8D,CAAC;AAE5E;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,QAAQ,CAA4B,EAClD,KAAK,EACL,SAAS,EACT,IAAI,EACJ,WAAW,EACX,MAAM,EACN,WAAW,EACX,OAAO,EACP,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,cAAc,EAAE,QAAQ,GAAG,IAAI,EAC/B,SAAS,EACT,GAAG,KAAK,EACS;IACjB,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,SAAS,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,UAAU,CACtB;QACE,KAAK,CAAC,YAAY,CAAC,IAAI,IAAI;QAC3B,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;QAClD,WAAW,IAAI,EAAE;KAClB,CAAC,MAAM,CAAC,OAAO,CAAC,EACjB,MAAM,CACP,CAAC;IACF,OAAO,CACL,MAAC,WAAW,OACN,KAAK,EACT,SAAS,EAAE,IAAI,gBACH,KAAK,IAAI,SAAS,EAC9B,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,CAAkB,EAClE,SAAS,EAAE,EAAE;QACX,sGAAsG;QACtG,+MAA+M,EAC/M,4OAA4O,EAC5O,uLAAuL;QACvL,sGAAsG;QACtG,8UAA8U,EAC9U,SAAS,CACV,aAED,KAAC,eAAe,cACb,CAAC,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,EAAE;oBAClF,MAAM,cAAc,GAAG,SAAS,IAAI,QAAQ,CAAC;oBAC7C,OAAO,CACL,8BACG,aAAa,CAAC,CAAC,CAAC,CACf,KAAC,SAAS,IACR,IAAI,EAAC,SAAS,EACd,SAAS,EAAE,EAAE,CACX,uGAAuG,EACvG,IAAI,CACL,YAED,eAAM,SAAS,EAAC,4KAA4K,YAC1L,KAAC,YAAY,mBACC,MAAM,EAClB,SAAS,EAAC,gDAAgD,GAC1D,GACG,GACG,CACb,CAAC,CAAC,CAAC,CACF,8BAAkB,MAAM,EAAC,SAAS,EAAE,IAAI,GAAI,CAC7C,EACA,aAAa,KAAK,UAAU,IAAI,iBAAiB,KAAK,QAAQ,IAAI,CACjE,KAAC,iBAAiB,KAAG,CACtB,EACD,gBAAM,SAAS,EAAC,yDAAyD,aACtE,IAAI;wCACH,UAAU,CACR,IAAI,EACJ,gFAAgF,CACjF,EACH,eAAM,SAAS,EAAC,kHAAkH,YAC/H,KAAK,GACD,EACN,WAAW,IAAI,CAEd,eAAM,SAAS,EAAC,kEAAkE,YAC/E,WAAW,GACP,CACR,EACA,MAAM,IAAI,CAGT,eAAM,SAAS,EAAC,mCAAmC,YAAE,MAAM,GAAQ,CACpE,IACI,EACN,CAAC,OAAO,IAAI,cAAc,CAAC,IAAI,CAC9B,gBACE,SAAS,EAAE,EAAE,CACX,oCAAoC,EACpC,CAAC,iBAAiB;oCAChB,mFAAmF;oCACnF,mFAAmF;oCACnF,sFAAsF;oCACtF,+BAA+B;oCAC/B,+BAA+B,EACjC,6EAA6E,EAC7E,2FAA2F,EAC3F,6FAA6F,EAC7F,2CAA2C,CAC5C,aAEA,cAAc,IAAI,CACjB,KAAC,SAAS,IACR,IAAI,EAAC,MAAM,gBACC,SAAS,EACrB,SAAS,EAAC,uHAAuH,YAEjI,eAAM,SAAS,EAAC,oNAAoN,YAClO,KAAC,YAAY,mBAAa,MAAM,EAAC,SAAS,EAAC,QAAQ,GAAG,GACjD,GACG,CACb,EACA,OAAO,IACH,CACR,IACA,CACJ,CAAC;gBACJ,CAAC,GACe,EACjB,QAAQ,IACG,CACf,CAAC;AACJ,CAAC;AAYD,8FAA8F;AAC9F,MAAM,UAAU,WAAW,CAAmB,EAAE,SAAS,EAAE,GAAG,KAAK,EAAuB;IACxF,OAAO,KAAC,cAAc,OAAK,KAAK,EAAE,SAAS,EAAE,SAAS,GAAI,CAAC;AAC7D,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,UAAU,CAAC,EAAE,QAAQ,EAAE,SAAS,EAA+C;IAC7F,OAAO,CACL,KAAC,aAAa,IACZ,SAAS,EAAE,EAAE,CACX,qEAAqE,EACrE,SAAS,CACV,YAEA,QAAQ,GACK,CACjB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../src/ui/tree.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@setsquare/ui",
3
- "version": "0.9.0",
3
+ "version": "0.9.1",
4
4
  "description": "React Aria components, design tokens, a dashboard shell and a site shell, with a switch between WCAG 2.2 AA and AAA sizing, spacing and contrast.",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/Worktree-Amigos/setsquare-ui#readme",