@oxy.so/bloom 4.34.1 → 4.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/docs/adoption-matrix.mdx +5 -5
  2. package/docs/locale.mdx +3 -1
  3. package/docs/mail-list.mdx +22 -18
  4. package/docs/settings-modal.mdx +1 -1
  5. package/docs/text-field.mdx +20 -0
  6. package/lib/commonjs/mail-list/MailList.js +0 -2
  7. package/lib/commonjs/mail-list/MailList.js.map +1 -1
  8. package/lib/commonjs/mail-list/MailRow.js +23 -9
  9. package/lib/commonjs/mail-list/MailRow.js.map +1 -1
  10. package/lib/commonjs/mail-list/shared.js +10 -26
  11. package/lib/commonjs/mail-list/shared.js.map +1 -1
  12. package/lib/commonjs/settings-modal/SettingsModal.js +18 -12
  13. package/lib/commonjs/settings-modal/SettingsModal.js.map +1 -1
  14. package/lib/commonjs/text-field/TextField.js +133 -15
  15. package/lib/commonjs/text-field/TextField.js.map +1 -1
  16. package/lib/commonjs/text-field/messages.js +89 -0
  17. package/lib/commonjs/text-field/messages.js.map +1 -0
  18. package/lib/module/mail-list/MailList.js +0 -2
  19. package/lib/module/mail-list/MailList.js.map +1 -1
  20. package/lib/module/mail-list/MailRow.js +23 -9
  21. package/lib/module/mail-list/MailRow.js.map +1 -1
  22. package/lib/module/mail-list/shared.js +10 -26
  23. package/lib/module/mail-list/shared.js.map +1 -1
  24. package/lib/module/settings-modal/SettingsModal.js +18 -12
  25. package/lib/module/settings-modal/SettingsModal.js.map +1 -1
  26. package/lib/module/text-field/TextField.js +133 -15
  27. package/lib/module/text-field/TextField.js.map +1 -1
  28. package/lib/module/text-field/messages.js +85 -0
  29. package/lib/module/text-field/messages.js.map +1 -0
  30. package/lib/typescript/commonjs/mail-list/MailList.d.ts +1 -1
  31. package/lib/typescript/commonjs/mail-list/MailList.d.ts.map +1 -1
  32. package/lib/typescript/commonjs/mail-list/MailRow.d.ts +20 -5
  33. package/lib/typescript/commonjs/mail-list/MailRow.d.ts.map +1 -1
  34. package/lib/typescript/commonjs/mail-list/shared.d.ts +9 -2
  35. package/lib/typescript/commonjs/mail-list/shared.d.ts.map +1 -1
  36. package/lib/typescript/commonjs/mail-list/types.d.ts +6 -8
  37. package/lib/typescript/commonjs/mail-list/types.d.ts.map +1 -1
  38. package/lib/typescript/commonjs/settings-modal/SettingsModal.d.ts.map +1 -1
  39. package/lib/typescript/commonjs/text-field/TextField.d.ts +1 -1
  40. package/lib/typescript/commonjs/text-field/TextField.d.ts.map +1 -1
  41. package/lib/typescript/commonjs/text-field/index.d.ts +1 -1
  42. package/lib/typescript/commonjs/text-field/index.d.ts.map +1 -1
  43. package/lib/typescript/commonjs/text-field/messages.d.ts +15 -0
  44. package/lib/typescript/commonjs/text-field/messages.d.ts.map +1 -0
  45. package/lib/typescript/commonjs/text-field/types.d.ts +18 -0
  46. package/lib/typescript/commonjs/text-field/types.d.ts.map +1 -1
  47. package/lib/typescript/module/mail-list/MailList.d.ts +1 -1
  48. package/lib/typescript/module/mail-list/MailList.d.ts.map +1 -1
  49. package/lib/typescript/module/mail-list/MailRow.d.ts +20 -5
  50. package/lib/typescript/module/mail-list/MailRow.d.ts.map +1 -1
  51. package/lib/typescript/module/mail-list/shared.d.ts +9 -2
  52. package/lib/typescript/module/mail-list/shared.d.ts.map +1 -1
  53. package/lib/typescript/module/mail-list/types.d.ts +6 -8
  54. package/lib/typescript/module/mail-list/types.d.ts.map +1 -1
  55. package/lib/typescript/module/settings-modal/SettingsModal.d.ts.map +1 -1
  56. package/lib/typescript/module/text-field/TextField.d.ts +1 -1
  57. package/lib/typescript/module/text-field/TextField.d.ts.map +1 -1
  58. package/lib/typescript/module/text-field/index.d.ts +1 -1
  59. package/lib/typescript/module/text-field/index.d.ts.map +1 -1
  60. package/lib/typescript/module/text-field/messages.d.ts +15 -0
  61. package/lib/typescript/module/text-field/messages.d.ts.map +1 -0
  62. package/lib/typescript/module/text-field/types.d.ts +18 -0
  63. package/lib/typescript/module/text-field/types.d.ts.map +1 -1
  64. package/package.json +1 -1
  65. package/src/mail-list/MailList.tsx +0 -2
  66. package/src/mail-list/MailRow.tsx +23 -9
  67. package/src/mail-list/shared.ts +10 -27
  68. package/src/mail-list/types.ts +6 -8
  69. package/src/settings-modal/SettingsModal.tsx +15 -12
  70. package/src/text-field/TextField.tsx +133 -15
  71. package/src/text-field/index.ts +1 -0
  72. package/src/text-field/messages.ts +36 -0
  73. package/src/text-field/types.ts +19 -0
@@ -1,3 +1,3 @@
1
1
  export { TextField, TextFieldInput, TextFieldLabel, TextFieldHint, TextFieldIcon, TextFieldSuffix, TextFieldGhost, } from './TextField';
2
- export type { TextFieldProps, TextFieldInputProps, TextFieldLabelProps, TextFieldHintProps, TextFieldIconProps, TextFieldSize, } from './types';
2
+ export type { TextFieldProps, TextFieldInputProps, TextFieldLabelProps, TextFieldHintProps, TextFieldIconProps, TextFieldSize, TextFieldRevealLabels, } from './types';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/text-field/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,cAAc,EACd,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,GACd,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/text-field/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,cAAc,EACd,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,qBAAqB,GACtB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { MessageCatalog } from '../locale/messages';
2
+ /**
3
+ * Every fixed string the text-field family draws or announces, in each Bloom
4
+ * language. A caller's `revealLabels` still wins over the reveal pair.
5
+ */
6
+ export interface TextFieldMessages {
7
+ /** The reveal button's name while the value is hidden. */
8
+ showPassword: string;
9
+ /** The reveal button's name while the value is shown. */
10
+ hidePassword: string;
11
+ /** The name of `TextFieldLabel`'s `required` asterisk. */
12
+ required: string;
13
+ }
14
+ export declare const TEXT_FIELD_MESSAGES: MessageCatalog<TextFieldMessages>;
15
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../../src/text-field/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,0DAA0D;IAC1D,YAAY,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,mBAAmB,EAAE,cAAc,CAAC,iBAAiB,CAoBjE,CAAC"}
@@ -51,7 +51,25 @@ export type TextFieldInputProps = Omit<TextInputProps, 'value' | 'onChangeText'
51
51
  * identically. Respects reduced-motion (snaps instead of animating).
52
52
  */
53
53
  floatingLabel?: boolean;
54
+ /**
55
+ * With `secureTextEntry`, draw an eye / eye-off button after the input that
56
+ * shows and hides what was typed. It is named "Show password" / "Hide
57
+ * password" in the locale (`docs/locale.mdx`); `revealLabels` overrides
58
+ * either. Pressing it leaves focus in the input. Ignored without
59
+ * `secureTextEntry`.
60
+ */
61
+ revealable?: boolean;
62
+ /** Override the reveal button's names, one key at a time. */
63
+ revealLabels?: TextFieldRevealLabels;
64
+ /** Locale for the reveal button's names; defaults to the nearest `LocaleProvider`. */
65
+ locale?: string;
54
66
  };
67
+ export interface TextFieldRevealLabels {
68
+ /** The name while the value is hidden. */
69
+ show?: string;
70
+ /** The name while the value is shown. */
71
+ hide?: string;
72
+ }
55
73
  export type TextFieldLabelProps = React.PropsWithChildren<{
56
74
  nativeID?: string;
57
75
  /** Append the `text-error-primary` asterisk. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/text-field/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,iBAAiB,CAClD;IACE,OAAO,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAChC,GAAG,aAAa,CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,cAAc,EACd,OAAO,GAAG,cAAc,GAAG,aAAa,CACzC,GAAG;IACF,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC7E,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,iBAAiB,CACvD;IACE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,aAAa,CAClB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,iBAAiB,CACtD;IACE,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,aAAa,CAClB,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IACxC,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;CACnC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/text-field/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,iBAAiB,CAClD;IACE,OAAO,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAChC,GAAG,aAAa,CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,cAAc,EACd,OAAO,GAAG,cAAc,GAAG,aAAa,CACzC,GAAG;IACF,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC7E,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,iBAAiB,CACvD;IACE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,aAAa,CAClB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,iBAAiB,CACtD;IACE,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,aAAa,CAClB,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IACxC,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;CACnC"}
@@ -29,7 +29,7 @@ import type { MailListProps } from './types';
29
29
  * section a nested list named by its heading. While `loading` the region is
30
30
  * `aria-busy` and the placeholders are hidden, so "loading" is announced once.
31
31
  */
32
- declare function MailListComponent({ sections, mails, density, showAvatar, selectedId, checkedIds, onCheckedIdsChange, bulkActions, onBulkAction, rowActions, rowSwipeActions, actionsPlacement, swipeEnabled, onMailPress, onMailLongPress, onMailAction, onMailStarredChange, loading, loadingCount, empty, header, footer, strings, accessibilityLabel, style, testID, }: MailListProps): import("react/jsx-runtime").JSX.Element;
32
+ declare function MailListComponent({ sections, mails, density, selectedId, checkedIds, onCheckedIdsChange, bulkActions, onBulkAction, rowActions, rowSwipeActions, actionsPlacement, swipeEnabled, onMailPress, onMailLongPress, onMailAction, onMailStarredChange, loading, loadingCount, empty, header, footer, strings, accessibilityLabel, style, testID, }: MailListProps): import("react/jsx-runtime").JSX.Element;
33
33
  export declare const MailList: React.MemoExoticComponent<typeof MailListComponent>;
34
34
  export {};
35
35
  //# sourceMappingURL=MailList.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MailList.d.ts","sourceRoot":"","sources":["../../../../src/mail-list/MailList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmC,MAAM,OAAO,CAAC;AAmBxD,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,SAAS,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,iBAAS,iBAAiB,CAAC,EACzB,QAAQ,EACR,KAAK,EACL,OAAuB,EACvB,UAAiB,EACjB,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,OAAe,EACf,YAAgB,EAChB,KAAK,EACL,MAAM,EACN,MAAM,EACN,OAAO,EACP,kBAA2B,EAC3B,KAAK,EACL,MAAM,GACP,EAAE,aAAa,2CAyIf;AAED,eAAO,MAAM,QAAQ,qDAA0B,CAAC"}
1
+ {"version":3,"file":"MailList.d.ts","sourceRoot":"","sources":["../../../../src/mail-list/MailList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmC,MAAM,OAAO,CAAC;AAmBxD,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,SAAS,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,iBAAS,iBAAiB,CAAC,EACzB,QAAQ,EACR,KAAK,EACL,OAAuB,EACvB,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,OAAe,EACf,YAAgB,EAChB,KAAK,EACL,MAAM,EACN,MAAM,EACN,OAAO,EACP,kBAA2B,EAC3B,KAAK,EACL,MAAM,GACP,EAAE,aAAa,2CAwIf;AAED,eAAO,MAAM,QAAQ,qDAA0B,CAAC"}
@@ -3,11 +3,26 @@ import type { MailRowProps } from './types';
3
3
  /**
4
4
  * One message thread in the inbox.
5
5
  *
6
- * Compact uses one baseline; comfortable and cozy stack sender above subject
7
- * and snippet. All three share a geometry table, content, paint and actions.
6
+ * comfortable 72 tall · 16 padding · 48 avatar · sender and time on the
7
+ * first line, subject and snippet on the second, the star on
8
+ * the right where it is a control
9
+ * compact 40 tall · 12 padding · 24 avatar · sender, then subject and
10
+ * snippet on ONE baseline, then the states and the time
8
11
  *
9
- * The subject and snippet share ONE Text at every density, so a long snippet
10
- * cannot claim its own flex width and push the subject out of the row.
12
+ * ONE component, two rungs of a geometry table. There is no second row
13
+ * component for the desktop: everything a compact row draws, a comfortable row
14
+ * draws too, and a density that forked into two files is a density that drifts.
15
+ *
16
+ * TWO LINES, NOT THREE, AND NOTHING DRAWN AT REST THAT IS NOT INFORMATION.
17
+ * The phone row is the same 72/48 as a conversation row, so an inbox and a
18
+ * messages screen read as one library. What paid for the third line: the
19
+ * subject and the snippet share line two, the labels collapse to a chip and
20
+ * dots, and the star is drawn only where it is a control.
21
+ *
22
+ * THE SUBJECT AND THE SNIPPET ARE ONE `Text`, at both densities. Two
23
+ * neighbouring flex children each want to be as wide as their content, and the
24
+ * result of a long one is a row that pushes sideways or a subject clipped to
25
+ * nothing. One string with a nested span truncates where the line ends.
11
26
  *
12
27
  * UNREAD IS THE WHOLE ROW, NOT A DOT. The sender and the subject go semibold
13
28
  * and every rung of text moves up to the primary colour; a read row sits on the
@@ -27,7 +42,7 @@ import type { MailRowProps } from './types';
27
42
  * SIBLINGS of the row's link and never its children — a button inside an anchor
28
43
  * is invalid HTML, and every "Archive" click would open the message.
29
44
  */
30
- declare function MailRowComponent({ sender, subject, snippet, time, unread, starred, onStarredChange, hasAttachment, threadCount, draft, labels, maxLabels, selected, checked, onCheckedChange, density, showAvatar, onPress, onLongPress, href, actions, actionsPlacement, swipeActions, swipeEnabled, onAction, accessibilityLabel, strings, style, testID, }: MailRowProps): import("react/jsx-runtime").JSX.Element;
45
+ declare function MailRowComponent({ sender, subject, snippet, time, unread, starred, onStarredChange, hasAttachment, threadCount, draft, labels, maxLabels, selected, checked, onCheckedChange, density, onPress, onLongPress, href, actions, actionsPlacement, swipeActions, swipeEnabled, onAction, accessibilityLabel, strings, style, testID, }: MailRowProps): import("react/jsx-runtime").JSX.Element;
31
46
  export declare const MailRow: React.MemoExoticComponent<typeof MailRowComponent>;
32
47
  export {};
33
48
  //# sourceMappingURL=MailRow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MailRow.d.ts","sourceRoot":"","sources":["../../../../src/mail-list/MailRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAoClE,OAAO,KAAK,EAAc,YAAY,EAAE,MAAM,SAAS,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,iBAAS,gBAAgB,CAAC,EACxB,MAAM,EACN,OAAO,EACP,OAAO,EACP,IAAI,EACJ,MAAc,EACd,OAAe,EACf,eAAe,EACf,aAAqB,EACrB,WAAW,EACX,KAAa,EACb,MAAM,EACN,SAAa,EACb,QAAgB,EAChB,OAAe,EACf,eAAe,EACf,OAAuB,EACvB,UAAiB,EACjB,OAAO,EACP,WAAW,EACX,IAAI,EACJ,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,kBAAkB,EAClB,OAAO,EACP,KAAK,EACL,MAAM,GACP,EAAE,YAAY,2CAyZd;AAED,eAAO,MAAM,OAAO,oDAAyB,CAAC"}
1
+ {"version":3,"file":"MailRow.d.ts","sourceRoot":"","sources":["../../../../src/mail-list/MailRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAoClE,OAAO,KAAK,EAAc,YAAY,EAAE,MAAM,SAAS,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,iBAAS,gBAAgB,CAAC,EACxB,MAAM,EACN,OAAO,EACP,OAAO,EACP,IAAI,EACJ,MAAc,EACd,OAAe,EACf,eAAe,EACf,aAAqB,EACrB,WAAW,EACX,KAAa,EACb,MAAM,EACN,SAAa,EACb,QAAgB,EAChB,OAAe,EACf,eAAe,EACf,OAAuB,EACvB,OAAO,EACP,WAAW,EACX,IAAI,EACJ,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,kBAAkB,EAClB,OAAO,EACP,KAAK,EACL,MAAM,GACP,EAAE,YAAY,2CAyZd;AAED,eAAO,MAAM,OAAO,oDAAyB,CAAC"}
@@ -61,8 +61,15 @@ export interface MailRowGeometry {
61
61
  starControl: number;
62
62
  }
63
63
  /**
64
- * Two stacked lines at comfortable/cozy, one baseline at compact. Stacked rows
65
- * grow with their content; cozy gives the same facts more breathing room.
64
+ * 64 tall with two lines on a phone, 40 tall with one on a desktop. The avatar
65
+ * is centred in both, so a row with no snippet is the same height as one with a
66
+ * snippet and a label.
67
+ *
68
+ * The phone rung is the same 72/48 as a `chat-list` row on purpose: a mail row
69
+ * and a conversation row are the same kind of object, and an inbox that stands
70
+ * 16px taller per row than the messages screen reads as a different library.
71
+ * Two lines is what pays for it — the sender and the time share the first, the
72
+ * subject and the snippet the second.
66
73
  */
67
74
  export declare const MAIL_ROW_GEOMETRY: Record<MailDensity, MailRowGeometry>;
68
75
  /** Corner radius of a row's hover/selected fill. A row is a surface, not a control. */
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/mail-list/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/mail-list/shared.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,13 @@ import type { StyleProp, ViewStyle } from 'react-native';
3
3
  import type { BloomIconComponent } from '../icons/icon-component';
4
4
  import type { AccentTone } from '../theme/accent-colors';
5
5
  /**
6
- * One row at three densities: compact is a single 40px baseline, comfortable
7
- * stacks two lines at a 64px floor, cozy keeps those lines with an 80px floor
8
- * and a larger avatar and insets. All share the same content and actions.
6
+ * The two rungs of ONE row, not two components.
7
+ *
8
+ * `comfortable` is the phone inbox: avatar, three lines, 88 tall. `compact` is
9
+ * the desktop list: one line, 40 tall, the same facts on a single baseline.
10
+ * Nothing but the geometry table changes between them.
9
11
  */
10
- export type MailDensity = 'comfortable' | 'cozy' | 'compact';
12
+ export type MailDensity = 'comfortable' | 'compact';
11
13
  /** Who a message is from, as a row draws them. */
12
14
  export interface MailSender {
13
15
  /** The display name, or the address when there is no name. */
@@ -142,8 +144,6 @@ export interface MailRowProps {
142
144
  */
143
145
  checked?: boolean;
144
146
  onCheckedChange?: (checked: boolean) => void;
145
- /** Show sender avatars. Selection checkboxes remain visible when enabled. */
146
- showAvatar?: boolean;
147
147
  density?: MailDensity;
148
148
  onPress?: () => void;
149
149
  onLongPress?: () => void;
@@ -186,8 +186,6 @@ export interface MailListProps {
186
186
  sections?: readonly MailListSection[];
187
187
  /** One unlabelled run, for a list that is not bucketed. */
188
188
  mails?: readonly MailSummary[];
189
- /** Show sender avatars. Selection checkboxes remain visible when enabled. */
190
- showAvatar?: boolean;
191
189
  density?: MailDensity;
192
190
  /** The row the reading pane is showing. */
193
191
  selectedId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/mail-list/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/mail-list/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsModal.d.ts","sourceRoot":"","sources":["../../../../src/settings-modal/SettingsModal.tsx"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EAAE,kBAAkB,EAAqC,MAAM,SAAS,CAAC;AAqFrF,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,IAAI,EAAE,cAAc,EACpB,OAAO,EACP,aAAa,EACb,MAAM,EACN,KAAK,EACL,IAAI,EAAE,cAAc,EACpB,WAAW,EACX,YAAY,EACZ,WAA0B,EAC1B,MAAM,EACN,MAAM,GACP,EAAE,kBAAkB,kDAyVpB"}
1
+ {"version":3,"file":"SettingsModal.d.ts","sourceRoot":"","sources":["../../../../src/settings-modal/SettingsModal.tsx"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAE,kBAAkB,EAAqC,MAAM,SAAS,CAAC;AAqFrF,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,IAAI,EAAE,cAAc,EACpB,OAAO,EACP,aAAa,EACb,MAAM,EACN,KAAK,EACL,IAAI,EAAE,cAAc,EACpB,WAAW,EACX,YAAY,EACZ,WAA0B,EAC1B,MAAM,EACN,MAAM,GACP,EAAE,kBAAkB,kDA6VpB"}
@@ -18,7 +18,7 @@ export interface TextFieldGroupContextValue {
18
18
  }
19
19
  export declare const TextFieldGroupContext: import("react").Context<TextFieldGroupContextValue | null>;
20
20
  export declare function TextField({ children, invalid: invalidNew, isInvalid, disabled: disabledProp, size: sizeProp, radius, leadingAddon, style, }: TextFieldProps): import("react/jsx-runtime").JSX.Element;
21
- export declare function TextFieldInput({ label, placeholder, value, onValueChange: onValueChangeProp, onChangeText, onFocus, onBlur, invalid: invalidNew, isInvalid, disabled, size, inputRef, style, floatingLabel, ...rest }: TextFieldInputProps): import("react/jsx-runtime").JSX.Element;
21
+ export declare function TextFieldInput({ label, placeholder, value, onValueChange: onValueChangeProp, onChangeText, onFocus, onBlur, invalid: invalidNew, isInvalid, disabled, size, inputRef, style, floatingLabel, secureTextEntry, revealable, revealLabels, locale, ...rest }: TextFieldInputProps): import("react/jsx-runtime").JSX.Element;
22
22
  /**
23
23
  * The visible label ABOVE the field: `text-body-medium`
24
24
  * (14/20 500) in `text-primary`, a `text-error-primary` asterisk and a 16px
@@ -1 +1 @@
1
- {"version":3,"file":"TextField.d.ts","sourceRoot":"","sources":["../../../../src/text-field/TextField.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,kBAAkB,EAQxB,MAAM,cAAc,CAAC;AAOtB,OAAO,EAML,KAAK,aAAa,EACnB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAmBL,KAAK,aAAa,EACnB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACf,MAAM,SAAS,CAAC;AAoCjB;;;;;;;;GAQG;AACH,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AACD,eAAO,MAAM,qBAAqB,4DAAyD,CAAC;AAiD5F,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,OAAO,EAAE,UAAU,EACnB,SAAS,EACT,QAAQ,EAAE,YAAoB,EAC9B,IAAI,EAAE,QAAQ,EACd,MAA0B,EAC1B,YAAY,EACZ,KAAK,GACN,EAAE,cAAc,2CAyFhB;AAsFD,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,WAAW,EACX,KAAK,EACL,aAAa,EAAE,iBAAiB,EAChC,YAAY,EACZ,OAAO,EACP,MAAM,EACN,OAAO,EAAE,UAAU,EACnB,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,aAAqB,EACrB,GAAG,IAAI,EACR,EAAE,mBAAmB,2CAgMrB;AAmKD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,QAAQ,EACR,QAAgB,EAChB,OAAe,EACf,KAAK,GACN,EAAE,mBAAmB,2CA6BrB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,OAAO,EAAE,WAAW,EACpB,SAAS,EACT,QAAQ,EACR,KAAK,GACN,EAAE,kBAAkB,2CAmBpB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAoB,EAAE,EAAE,kBAAkB,2CA4BrF;AAED,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,KAAK,EACL,iBAAiB,EACjB,KAAK,GACN,EAAE,KAAK,CAAC,iBAAiB,CACxB,aAAa,GAAG;IACd,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;CAC7D,CACF,2CAyBA;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,2CAqCA"}
1
+ {"version":3,"file":"TextField.d.ts","sourceRoot":"","sources":["../../../../src/text-field/TextField.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,kBAAkB,EAQxB,MAAM,cAAc,CAAC;AAOtB,OAAO,EAML,KAAK,aAAa,EACnB,MAAM,WAAW,CAAC;AAQnB,OAAO,EAmBL,KAAK,aAAa,EACnB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EAEf,MAAM,SAAS,CAAC;AAoCjB;;;;;;;;GAQG;AACH,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AACD,eAAO,MAAM,qBAAqB,4DAAyD,CAAC;AAiD5F,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,OAAO,EAAE,UAAU,EACnB,SAAS,EACT,QAAQ,EAAE,YAAoB,EAC9B,IAAI,EAAE,QAAQ,EACd,MAA0B,EAC1B,YAAY,EACZ,KAAK,GACN,EAAE,cAAc,2CAyFhB;AAsFD,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,WAAW,EACX,KAAK,EACL,aAAa,EAAE,iBAAiB,EAChC,YAAY,EACZ,OAAO,EACP,MAAM,EACN,OAAO,EAAE,UAAU,EACnB,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,aAAqB,EACrB,eAAe,EACf,UAAkB,EAClB,YAAY,EACZ,MAAM,EACN,GAAG,IAAI,EACR,EAAE,mBAAmB,2CAyNrB;AAqPD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,QAAQ,EACR,QAAgB,EAChB,OAAe,EACf,KAAK,GACN,EAAE,mBAAmB,2CA8BrB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,OAAO,EAAE,WAAW,EACpB,SAAS,EACT,QAAQ,EACR,KAAK,GACN,EAAE,kBAAkB,2CAmBpB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAoB,EAAE,EAAE,kBAAkB,2CA4BrF;AAED,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,KAAK,EACL,iBAAiB,EACjB,KAAK,GACN,EAAE,KAAK,CAAC,iBAAiB,CACxB,aAAa,GAAG;IACd,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;CAC7D,CACF,2CAyBA;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,2CAqCA"}
@@ -1,3 +1,3 @@
1
1
  export { TextField, TextFieldInput, TextFieldLabel, TextFieldHint, TextFieldIcon, TextFieldSuffix, TextFieldGhost, } from './TextField';
2
- export type { TextFieldProps, TextFieldInputProps, TextFieldLabelProps, TextFieldHintProps, TextFieldIconProps, TextFieldSize, } from './types';
2
+ export type { TextFieldProps, TextFieldInputProps, TextFieldLabelProps, TextFieldHintProps, TextFieldIconProps, TextFieldSize, TextFieldRevealLabels, } from './types';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/text-field/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,cAAc,EACd,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,GACd,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/text-field/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,cAAc,EACd,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,qBAAqB,GACtB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { MessageCatalog } from '../locale/messages';
2
+ /**
3
+ * Every fixed string the text-field family draws or announces, in each Bloom
4
+ * language. A caller's `revealLabels` still wins over the reveal pair.
5
+ */
6
+ export interface TextFieldMessages {
7
+ /** The reveal button's name while the value is hidden. */
8
+ showPassword: string;
9
+ /** The reveal button's name while the value is shown. */
10
+ hidePassword: string;
11
+ /** The name of `TextFieldLabel`'s `required` asterisk. */
12
+ required: string;
13
+ }
14
+ export declare const TEXT_FIELD_MESSAGES: MessageCatalog<TextFieldMessages>;
15
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../../src/text-field/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,0DAA0D;IAC1D,YAAY,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,mBAAmB,EAAE,cAAc,CAAC,iBAAiB,CAoBjE,CAAC"}
@@ -51,7 +51,25 @@ export type TextFieldInputProps = Omit<TextInputProps, 'value' | 'onChangeText'
51
51
  * identically. Respects reduced-motion (snaps instead of animating).
52
52
  */
53
53
  floatingLabel?: boolean;
54
+ /**
55
+ * With `secureTextEntry`, draw an eye / eye-off button after the input that
56
+ * shows and hides what was typed. It is named "Show password" / "Hide
57
+ * password" in the locale (`docs/locale.mdx`); `revealLabels` overrides
58
+ * either. Pressing it leaves focus in the input. Ignored without
59
+ * `secureTextEntry`.
60
+ */
61
+ revealable?: boolean;
62
+ /** Override the reveal button's names, one key at a time. */
63
+ revealLabels?: TextFieldRevealLabels;
64
+ /** Locale for the reveal button's names; defaults to the nearest `LocaleProvider`. */
65
+ locale?: string;
54
66
  };
67
+ export interface TextFieldRevealLabels {
68
+ /** The name while the value is hidden. */
69
+ show?: string;
70
+ /** The name while the value is shown. */
71
+ hide?: string;
72
+ }
55
73
  export type TextFieldLabelProps = React.PropsWithChildren<{
56
74
  nativeID?: string;
57
75
  /** Append the `text-error-primary` asterisk. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/text-field/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,iBAAiB,CAClD;IACE,OAAO,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAChC,GAAG,aAAa,CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,cAAc,EACd,OAAO,GAAG,cAAc,GAAG,aAAa,CACzC,GAAG;IACF,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC7E,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,iBAAiB,CACvD;IACE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,aAAa,CAClB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,iBAAiB,CACtD;IACE,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,aAAa,CAClB,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IACxC,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;CACnC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/text-field/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,iBAAiB,CAClD;IACE,OAAO,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAChC,GAAG,aAAa,CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,cAAc,EACd,OAAO,GAAG,cAAc,GAAG,aAAa,CACzC,GAAG;IACF,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC7E,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,iBAAiB,CACvD;IACE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,aAAa,CAClB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,iBAAiB,CACtD;IACE,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,aAAa,CAClB,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IACxC,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;CACnC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxy.so/bloom",
3
- "version": "4.34.1",
3
+ "version": "4.35.0",
4
4
  "packageManager": "bun@1.3.14",
5
5
  "description": "Bloom UI — Oxy ecosystem component library for React Native + Expo + Web",
6
6
  "main": "lib/commonjs/index.js",
@@ -52,7 +52,6 @@ function MailListComponent({
52
52
  sections,
53
53
  mails,
54
54
  density = 'comfortable',
55
- showAvatar = true,
56
55
  selectedId,
57
56
  checkedIds,
58
57
  onCheckedIdsChange,
@@ -163,7 +162,6 @@ function MailListComponent({
163
162
  actionsPlacement={mail.actionsPlacement ?? actionsPlacement}
164
163
  swipeEnabled={mail.swipeEnabled ?? swipeEnabled}
165
164
  density={density}
166
- showAvatar={mail.showAvatar ?? showAvatar}
167
165
  strings={mail.strings ?? strings}
168
166
  selected={selectedId === id}
169
167
  checked={checked.has(id)}
@@ -39,11 +39,26 @@ import type { MailAction, MailRowProps } from './types';
39
39
  /**
40
40
  * One message thread in the inbox.
41
41
  *
42
- * Compact uses one baseline; comfortable and cozy stack sender above subject
43
- * and snippet. All three share a geometry table, content, paint and actions.
42
+ * comfortable 72 tall · 16 padding · 48 avatar · sender and time on the
43
+ * first line, subject and snippet on the second, the star on
44
+ * the right where it is a control
45
+ * compact 40 tall · 12 padding · 24 avatar · sender, then subject and
46
+ * snippet on ONE baseline, then the states and the time
44
47
  *
45
- * The subject and snippet share ONE Text at every density, so a long snippet
46
- * cannot claim its own flex width and push the subject out of the row.
48
+ * ONE component, two rungs of a geometry table. There is no second row
49
+ * component for the desktop: everything a compact row draws, a comfortable row
50
+ * draws too, and a density that forked into two files is a density that drifts.
51
+ *
52
+ * TWO LINES, NOT THREE, AND NOTHING DRAWN AT REST THAT IS NOT INFORMATION.
53
+ * The phone row is the same 72/48 as a conversation row, so an inbox and a
54
+ * messages screen read as one library. What paid for the third line: the
55
+ * subject and the snippet share line two, the labels collapse to a chip and
56
+ * dots, and the star is drawn only where it is a control.
57
+ *
58
+ * THE SUBJECT AND THE SNIPPET ARE ONE `Text`, at both densities. Two
59
+ * neighbouring flex children each want to be as wide as their content, and the
60
+ * result of a long one is a row that pushes sideways or a subject clipped to
61
+ * nothing. One string with a nested span truncates where the line ends.
47
62
  *
48
63
  * UNREAD IS THE WHOLE ROW, NOT A DOT. The sender and the subject go semibold
49
64
  * and every rung of text moves up to the primary colour; a read row sits on the
@@ -80,7 +95,6 @@ function MailRowComponent({
80
95
  checked = false,
81
96
  onCheckedChange,
82
97
  density = 'comfortable',
83
- showAvatar = true,
84
98
  onPress,
85
99
  onLongPress,
86
100
  href,
@@ -238,7 +252,7 @@ function MailRowComponent({
238
252
  testID={testID ? `${testID}-checkbox` : undefined}
239
253
  />
240
254
  </View>
241
- ) : showAvatar ? (
255
+ ) : (
242
256
  <View
243
257
  pointerEvents="none"
244
258
  aria-hidden
@@ -252,7 +266,7 @@ function MailRowComponent({
252
266
  testID={testID ? `${testID}-avatar` : undefined}
253
267
  />
254
268
  </View>
255
- ) : null;
269
+ );
256
270
 
257
271
  // --- the text column -----------------------------------------------------
258
272
  const column = compact ? (
@@ -266,7 +280,7 @@ function MailRowComponent({
266
280
  flexDirection: 'row',
267
281
  alignItems: 'center',
268
282
  gap: geo.gap,
269
- marginLeft: leading === null ? 0 : geo.gap,
283
+ marginLeft: geo.gap,
270
284
  }}
271
285
  >
272
286
  <Text
@@ -301,7 +315,7 @@ function MailRowComponent({
301
315
  pointerEvents="none"
302
316
  aria-hidden
303
317
  importantForAccessibility="no-hide-descendants"
304
- style={{ flex: 1, minWidth: 0, marginLeft: leading === null ? 0 : geo.gap, gap: geo.lineGap }}
318
+ style={{ flex: 1, minWidth: 0, marginLeft: geo.gap, gap: geo.lineGap }}
305
319
  >
306
320
  <View style={{ flexDirection: 'row', alignItems: 'center', gap: 6, minWidth: 0 }}>
307
321
  <Text
@@ -1,7 +1,5 @@
1
1
  import { Platform } from 'react-native';
2
2
 
3
- import { space } from '../styles/tokens';
4
-
5
3
  import { RiInbox2Line } from '../icons/remix/RiInbox2Line';
6
4
  import {
7
5
  hairlineOn,
@@ -30,7 +28,7 @@ export const IS_WEB = Platform.OS === 'web';
30
28
  export const MAIL_EMPTY_ICON = RiInbox2Line;
31
29
 
32
30
  // ---------------------------------------------------------------------------
33
- // Geometry — the whole difference between the densities
31
+ // Geometry — the whole difference between the two densities
34
32
  // ---------------------------------------------------------------------------
35
33
 
36
34
  export interface MailRowGeometry {
@@ -84,8 +82,15 @@ export interface MailRowGeometry {
84
82
  }
85
83
 
86
84
  /**
87
- * Two stacked lines at comfortable/cozy, one baseline at compact. Stacked rows
88
- * grow with their content; cozy gives the same facts more breathing room.
85
+ * 64 tall with two lines on a phone, 40 tall with one on a desktop. The avatar
86
+ * is centred in both, so a row with no snippet is the same height as one with a
87
+ * snippet and a label.
88
+ *
89
+ * The phone rung is the same 72/48 as a `chat-list` row on purpose: a mail row
90
+ * and a conversation row are the same kind of object, and an inbox that stands
91
+ * 16px taller per row than the messages screen reads as a different library.
92
+ * Two lines is what pays for it — the sender and the time share the first, the
93
+ * subject and the snippet the second.
89
94
  */
90
95
  export const MAIL_ROW_GEOMETRY: Record<MailDensity, MailRowGeometry> = {
91
96
  comfortable: {
@@ -113,27 +118,6 @@ export const MAIL_ROW_GEOMETRY: Record<MailDensity, MailRowGeometry> = {
113
118
  actionGlyph: 18,
114
119
  starControl: 24,
115
120
  },
116
- cozy: {
117
- minHeight: 80,
118
- paddingVertical: space.lg,
119
- paddingHorizontal: space.lg,
120
- avatar: 48,
121
- gap: space.md,
122
- lineGap: space._2xs,
123
- glyph: space.lg,
124
- senderWidth: 0,
125
- senderMinWidth: 0,
126
- senderMaxWidth: '100%',
127
- senderVariant: 'headline-regular',
128
- senderUnreadVariant: 'headline-semibold',
129
- subjectVariant: 'body-regular',
130
- subjectUnreadVariant: 'body-semibold',
131
- snippetVariant: 'body-regular',
132
- timeVariant: 'caption-1-regular',
133
- action: 44,
134
- actionGlyph: 18,
135
- starControl: space._2xl,
136
- },
137
121
  compact: {
138
122
  minHeight: 40,
139
123
  height: 40,
@@ -177,7 +161,6 @@ export const MAIL_LABEL_DOT = 8;
177
161
  /** The selection bar's height, per density. */
178
162
  export const MAIL_SELECTION_BAR_HEIGHT: Record<MailDensity, number> = {
179
163
  comfortable: 56,
180
- cozy: 56,
181
164
  compact: 44,
182
165
  };
183
166
 
@@ -5,11 +5,13 @@ import type { BloomIconComponent } from '../icons/icon-component';
5
5
  import type { AccentTone } from '../theme/accent-colors';
6
6
 
7
7
  /**
8
- * One row at three densities: compact is a single 40px baseline, comfortable
9
- * stacks two lines at a 64px floor, cozy keeps those lines with an 80px floor
10
- * and a larger avatar and insets. All share the same content and actions.
8
+ * The two rungs of ONE row, not two components.
9
+ *
10
+ * `comfortable` is the phone inbox: avatar, three lines, 88 tall. `compact` is
11
+ * the desktop list: one line, 40 tall, the same facts on a single baseline.
12
+ * Nothing but the geometry table changes between them.
11
13
  */
12
- export type MailDensity = 'comfortable' | 'cozy' | 'compact';
14
+ export type MailDensity = 'comfortable' | 'compact';
13
15
 
14
16
  /** Who a message is from, as a row draws them. */
15
17
  export interface MailSender {
@@ -152,8 +154,6 @@ export interface MailRowProps {
152
154
  */
153
155
  checked?: boolean;
154
156
  onCheckedChange?: (checked: boolean) => void;
155
- /** Show sender avatars. Selection checkboxes remain visible when enabled. */
156
- showAvatar?: boolean;
157
157
  density?: MailDensity;
158
158
  onPress?: () => void;
159
159
  onLongPress?: () => void;
@@ -203,8 +203,6 @@ export interface MailListProps {
203
203
  sections?: readonly MailListSection[];
204
204
  /** One unlabelled run, for a list that is not bucketed. */
205
205
  mails?: readonly MailSummary[];
206
- /** Show sender avatars. Selection checkboxes remain visible when enabled. */
207
- showAvatar?: boolean;
208
206
  density?: MailDensity;
209
207
  /** The row the reading pane is showing. */
210
208
  selectedId?: string;
@@ -25,7 +25,6 @@ import { PageHeader } from '../page-header';
25
25
  import { ButtonGroup, ButtonGroupItem } from '../button-group';
26
26
  import { RiCloseLine } from '../icons/remix/RiCloseLine';
27
27
  import { Backdrop, OverlayRoot } from '../overlay';
28
- import { ModalKeyboard } from '../overlay/ModalKeyboard';
29
28
  import type { WebCssStyle } from '../styles/web-view-style';
30
29
  import { webDataSet } from '../styles/web-data';
31
30
  import { Text } from '../typography';
@@ -136,7 +135,6 @@ export function SettingsModal({
136
135
  labels,
137
136
  testID,
138
137
  }: SettingsModalProps) {
139
- const panelRef = useRef<View>(null);
140
138
  const common = useCommonMessages();
141
139
  useSettingsWebCss();
142
140
  const palette = useSettingsPalette();
@@ -250,6 +248,21 @@ export function SettingsModal({
250
248
  if (mayLeave('navigation')) setCompactPageOpen(false);
251
249
  }, [mayLeave]);
252
250
 
251
+ // Escape closes (web). On `window`, not `document`: a menu or popover opened
252
+ // inside the modal handles Escape on `document` and stops propagation there,
253
+ // so the innermost surface closes first and the modal stays open.
254
+ useEffect(() => {
255
+ if (!mounted || !IS_WEB || typeof window === 'undefined') return;
256
+ const handler = (event: KeyboardEvent) => {
257
+ if (event.key === 'Escape') {
258
+ event.stopPropagation();
259
+ requestClose();
260
+ }
261
+ };
262
+ window.addEventListener('keydown', handler);
263
+ return () => window.removeEventListener('keydown', handler);
264
+ }, [mounted, requestClose]);
265
+
253
266
  const compactPageOpenRef = useRef(false);
254
267
  compactPageOpenRef.current = compactPageOpen && layoutRef.current === 'compact';
255
268
 
@@ -337,14 +350,6 @@ export function SettingsModal({
337
350
  <ModalPortal>
338
351
  <SettingsModalContext.Provider value={context}>
339
352
  <OverlayRoot onRequestClose={onHardwareBack} modal>
340
- {IS_WEB ? (
341
- <ModalKeyboard
342
- panelRef={panelRef}
343
- closing={!visible && wasVisible.current}
344
- dismissible
345
- dismiss={requestClose}
346
- />
347
- ) : null}
348
353
  <Backdrop
349
354
  onPress={requestClose}
350
355
  progress={progress}
@@ -367,8 +372,6 @@ export function SettingsModal({
367
372
  ]}
368
373
  >
369
374
  <View
370
- ref={panelRef}
371
- tabIndex={IS_WEB ? -1 : undefined}
372
375
  role="dialog"
373
376
  aria-modal
374
377
  aria-label={labels?.dialog ?? 'Settings'}