react-native-terra-ui 0.9.1 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/lib/module/components/avatar/Avatar.js +7 -2
  3. package/lib/module/components/avatar/Avatar.js.map +1 -1
  4. package/lib/module/components/header/header-buttons.js +1 -1
  5. package/lib/module/components/header/header-buttons.js.map +1 -1
  6. package/lib/module/components/icon/Icon.js +2 -2
  7. package/lib/module/components/toast/Toast.js +1 -1
  8. package/lib/module/components/toast/Toast.js.map +1 -1
  9. package/lib/module/components/toast/ToastProvider.js +9 -236
  10. package/lib/module/components/toast/ToastProvider.js.map +1 -1
  11. package/lib/module/components/toast/hooks/use-toast-manager.js +96 -0
  12. package/lib/module/components/toast/hooks/use-toast-manager.js.map +1 -0
  13. package/lib/module/components/toast/parts/ToastAnimatedItem.js +34 -50
  14. package/lib/module/components/toast/parts/ToastAnimatedItem.js.map +1 -1
  15. package/lib/module/components/toast/parts/ToastOverlay.ios.js +36 -0
  16. package/lib/module/components/toast/parts/ToastOverlay.ios.js.map +1 -0
  17. package/lib/module/components/toast/parts/ToastOverlay.js +34 -0
  18. package/lib/module/components/toast/parts/ToastOverlay.js.map +1 -0
  19. package/lib/module/components/toast/parts/ToastViewport.js +91 -0
  20. package/lib/module/components/toast/parts/ToastViewport.js.map +1 -0
  21. package/lib/module/theme/defaults/icons.js +26 -19
  22. package/lib/module/theme/defaults/icons.js.map +1 -1
  23. package/lib/typescript/src/components/avatar/Avatar.d.ts.map +1 -1
  24. package/lib/typescript/src/components/icon/Icon.d.ts +2 -2
  25. package/lib/typescript/src/components/toast/ToastProvider.d.ts.map +1 -1
  26. package/lib/typescript/src/components/toast/hooks/use-toast-manager.d.ts +6 -0
  27. package/lib/typescript/src/components/toast/hooks/use-toast-manager.d.ts.map +1 -0
  28. package/lib/typescript/src/components/toast/parts/ToastAnimatedItem.d.ts +3 -2
  29. package/lib/typescript/src/components/toast/parts/ToastAnimatedItem.d.ts.map +1 -1
  30. package/lib/typescript/src/components/toast/parts/ToastOverlay.d.ts +28 -0
  31. package/lib/typescript/src/components/toast/parts/ToastOverlay.d.ts.map +1 -0
  32. package/lib/typescript/src/components/toast/parts/ToastOverlay.ios.d.ts +28 -0
  33. package/lib/typescript/src/components/toast/parts/ToastOverlay.ios.d.ts.map +1 -0
  34. package/lib/typescript/src/components/toast/parts/ToastViewport.d.ts +11 -0
  35. package/lib/typescript/src/components/toast/parts/ToastViewport.d.ts.map +1 -0
  36. package/lib/typescript/src/theme/defaults/icons.d.ts.map +1 -1
  37. package/lib/typescript/src/theme/types.d.ts +1 -1
  38. package/lib/typescript/src/theme/types.d.ts.map +1 -1
  39. package/package.json +1 -1
  40. package/src/components/avatar/Avatar.tsx +6 -1
  41. package/src/components/header/header-buttons.tsx +1 -1
  42. package/src/components/icon/Icon.tsx +2 -2
  43. package/src/components/toast/Toast.tsx +1 -1
  44. package/src/components/toast/ToastProvider.tsx +7 -288
  45. package/src/components/toast/hooks/use-toast-manager.tsx +114 -0
  46. package/src/components/toast/parts/ToastAnimatedItem.tsx +32 -50
  47. package/src/components/toast/parts/ToastOverlay.ios.tsx +30 -0
  48. package/src/components/toast/parts/ToastOverlay.tsx +28 -0
  49. package/src/components/toast/parts/ToastViewport.tsx +104 -0
  50. package/src/theme/defaults/icons.tsx +22 -15
  51. package/src/theme/types.ts +6 -5
@@ -312,7 +312,7 @@ declare global {
312
312
  }
313
313
  export interface TerraIconRegistry extends TerraUI.IconRegistry {
314
314
  }
315
- export type TerraSemanticIconName = "navigation.back" | "navigation.forward" | "navigation.close" | "status.info" | "status.success" | "status.warning" | "status.danger" | "person";
315
+ export type TerraSemanticIconName = "terra.chevron-left" | "terra.chevron-right" | "terra.x" | "terra.check" | "terra.person" | "status.info" | "status.success" | "status.warning" | "status.danger";
316
316
  export type TerraConfiguredIconName = keyof TerraIconRegistry & string;
317
317
  export type TerraIconName = TerraSemanticIconName | TerraConfiguredIconName;
318
318
  export type ThemeRadiusOverride = DeepPartial<TerraTheme["radius"]> & {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/theme/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAe,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAiB,CAAC;AAIxD,8EAA8E;AAC9E,MAAM,MAAM,UAAU,GAClB,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAET,gCAAgC;AAChC,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;AAE3F;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAEpE,6DAA6D;AAC7D,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,SAAS,CAAC;AAInD,oEAAoE;AACpE,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAErE,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AAIlE,MAAM,MAAM,eAAe,GACvB,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,aAAa,GACb,aAAa,GACb,UAAU,GACV,UAAU,GACV,UAAU,GACV,SAAS,GACT,SAAS,GACT,SAAS,GACT,UAAU,GACV,UAAU,GACV,UAAU,GACV,SAAS,CAAC;AAEd,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEzE,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,kBAAkB,CAAC;AAE/D,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;AAEzE,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,eAAe,CAAC;IAC5B,oBAAoB;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACvC;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,QAAQ,EAAE,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;CAC9C;AAID;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAElC,gBAAgB,EAAE,MAAM,CAAC;IAEzB,MAAM,EAAE,MAAM,CAAC;IAEf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IAEjB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IAEtB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IAExB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB,EAAE,MAAM,CAAC;IAChC,yBAAyB,EAAE,MAAM,CAAC;IAClC,0BAA0B,EAAE,MAAM,CAAC;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,wBAAwB,EAAE,MAAM,CAAC;IACjC,yBAAyB,EAAE,MAAM,CAAC;IAClC,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB,EAAE,MAAM,CAAC;IAChC,yBAAyB,EAAE,MAAM,CAAC;IAClC,0BAA0B,EAAE,MAAM,CAAC;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAE1B,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAE1B,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAE1B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IAEzB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,OAAO,CAAC;QAChB;;;;;;;;;;;;;;;WAeG;QACH,UAAU,aAAa;SAAG;KAC3B;CACF;AAED,MAAM,WAAW,kBAAmB,SAAQ,OAAO,CAAC,aAAa;CAAG;AAEpE,2EAA2E;AAC3E,MAAM,MAAM,oBAAoB,GAAG,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAErE;;;;GAIG;AACH,MAAM,MAAM,2BAA2B,GAAG,OAAO,CAC/C,MAAM,OAAO,CAAC,aAAa,EAC3B,MAAM,mBAAmB,GAAG,MAAM,gBAAgB,CACnD,CAAC;AAEF,MAAM,WAAW,UAAW,SAAQ,mBAAmB,EAAE,gBAAgB,EAAE,kBAAkB;CAAG;AAIhG,qEAAqE;AACrE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,CAAC,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,kCAAkC;AAClC,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE;QACN;;;;;WAKG;QACH,OAAO,EAAE,mBAAmB,CAAC;QAC7B,iCAAiC;QACjC,MAAM,EAAE,mBAAmB,CAAC;KAC7B,CAAC;IACF,MAAM,EAAE;QACN,kFAAkF;QAClF,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,yEAAyE;AACzE,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAClC,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;CACtB;AAID,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG,YAAY,CAAC;AACnE,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,UAAU,EAAE,WAAW,MAAM,EAAE,CAAC,CAAC;AAC/E,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,UAAU,EAAE,QAAQ,MAAM,EAAE,CAAC,CAAC;AACzE,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,UAAU,EAAE,UAAU,MAAM,EAAE,CAAC,CAAC;AAC7E,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,mBAAmB,EAAE,UAAU,MAAM,EAAE,CAAC,CAAC;AACtF,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,mBAAmB,EAAE,WAAW,MAAM,EAAE,CAAC,CAAC;AACxF,gEAAgE;AAChE,MAAM,MAAM,gBAAgB,GACxB,gBAAgB,GAChB,iBAAiB,GACjB,OAAO,CAAC,MAAM,UAAU,EAAE,UAAU,MAAM,EAAE,CAAC,CAAC;AAClD,MAAM,MAAM,gBAAgB,GAAG,OAAO,CACpC,MAAM,UAAU,EAChB,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,IAAI,MAAM,EAAE,GAAG,UAAU,MAAM,EAAE,CAC9E,CAAC;AAEF,gGAAgG;AAChG,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAE/C;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,UAAU,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAI1D,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEtC;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAEpD;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,2FAA2F;IAC3F,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;CACjC;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,UAAU,GAAG,kBAAkB,CAAC;AAEzE;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;AAEhE,kEAAkE;AAClE,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAErD,gFAAgF;AAChF,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;AAEzE;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IAC/B,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,kBAAkB,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;AAI/D,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC;IACjC,KAAK,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,oEAAoE;IACpE,WAAW,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC;IACvC;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,oBAAoB,CAAC;IAC7C;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,MAAM,mBAAmB,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;AAEjE,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,OAAO,CAAC;QAChB,UAAU,YAAY;SAAG;KAC1B;CACF;AAED,MAAM,WAAW,iBAAkB,SAAQ,OAAO,CAAC,YAAY;CAAG;AAElE,MAAM,MAAM,qBAAqB,GAC7B,iBAAiB,GACjB,oBAAoB,GACpB,kBAAkB,GAClB,aAAa,GACb,gBAAgB,GAChB,gBAAgB,GAChB,eAAe,GACf,QAAQ,CAAC;AAEb,MAAM,MAAM,uBAAuB,GAAG,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAEvE,MAAM,MAAM,aAAa,GAAG,qBAAqB,GAAG,uBAAuB,CAAC;AAE5E,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,GAAG;IACpE;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,GAAG;IACtE;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,iDAAiD;AACjD,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC,GAAG;IACrF,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAChC,CAAC;AAEF,8EAA8E;AAC9E,MAAM,WAAW,cAAc;IAC7B,iDAAiD;IACjD,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B;AAED,+EAA+E;AAC/E,MAAM,WAAW,eAAe;IAC9B,iDAAiD;IACjD,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,8EAA8E;IAC9E,SAAS,CAAC,EAAE,YAAY,CAAC;CAC1B;AAED,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,8EAA8E;IAC9E,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,0DAA0D;IAC1D,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,kBAAkB,CAAC;QAAC,IAAI,CAAC,EAAE,kBAAkB,CAAA;KAAE,CAAC;IACpE,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC3D;;;;OAIG;IACH,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B;;;;OAIG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,8EAA8E;IAC9E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mFAAmF;IACnF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,4EAA4E;AAC5E,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,eAAe,CAAC,CAAC;AAEpG,uCAAuC;AACvC,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/theme/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-terra-ui",
3
- "version": "0.9.1",
3
+ "version": "0.10.1",
4
4
  "description": "Themeable React Native UI components built on react-native-unistyles",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -24,6 +24,11 @@ const INITIALS_FONT_SIZE: Record<AvatarSize, number> = {
24
24
  xl: 24,
25
25
  };
26
26
 
27
+ // The person fallback glyph fills 55% of the avatar diameter. The ratio lives
28
+ // here rather than inside the icon so `terra.person` scales like every other
29
+ // registry icon at a given `size`.
30
+ const PERSON_ICON_RATIO = 0.55;
31
+
27
32
  function getInitials(name: string): string {
28
33
  const parts = name.trim().split(/\s+/);
29
34
  const first = parts[0]?.[0] ?? "";
@@ -86,7 +91,7 @@ export function Avatar({
86
91
  {getInitials(name)}
87
92
  </Text>
88
93
  ) : (
89
- <Icon name="person" size={sizePx} color={fg} />
94
+ <Icon name="terra.person" size={sizePx * PERSON_ICON_RATIO} color={fg} />
90
95
  );
91
96
 
92
97
  return (
@@ -50,7 +50,7 @@ const getDismissAccessibilityLabel = (dismissAction: HeaderDismissAction): strin
50
50
  dismissAction === "close" ? "Close" : "Back";
51
51
 
52
52
  const getDismissIconName = (dismissAction: HeaderDismissAction): TerraSemanticIconName =>
53
- dismissAction === "close" ? "navigation.close" : "navigation.back";
53
+ dismissAction === "close" ? "terra.x" : "terra.chevron-left";
54
54
 
55
55
  export function HeaderDismissButton({ dismissAction = "none", navigation, onDismiss }: HeaderDismissProps) {
56
56
  if (dismissAction === "none") return null;
@@ -20,11 +20,11 @@ export interface IconProps extends Omit<ViewProps, "children"> {
20
20
 
21
21
  /**
22
22
  * Renders an icon from the Terra UI icon registry (`configureTerraUI({ icons })`
23
- * plus built-in semantic names like `navigation.back`).
23
+ * plus built-in semantic names like `terra.chevron-left`).
24
24
  *
25
25
  * @example
26
26
  * ```tsx
27
- * <Icon name="navigation.close" size={24} color="text.primary" />
27
+ * <Icon name="terra.x" size={24} color="text.primary" />
28
28
  * ```
29
29
  */
30
30
  export const Icon = forwardRef<ComponentRef<typeof View>, IconProps>(function Icon(
@@ -300,7 +300,7 @@ const ToastClose = forwardRef<ComponentRef<typeof Button>, ToastCloseProps>(func
300
300
  >
301
301
  {children ?? (
302
302
  <Icon
303
- name="navigation.close"
303
+ name="terra.x"
304
304
  size={iconProps?.size ?? 20}
305
305
  color={iconProps?.color ?? colors.icon}
306
306
  strokeWidth={iconProps?.strokeWidth}
@@ -1,207 +1,19 @@
1
- import { createContext, useCallback, useContext, useEffect, useMemo, useReducer, useRef } from "react";
2
- import { Keyboard, Platform } from "react-native";
1
+ import { createContext, useContext } from "react";
3
2
 
4
- import Animated, { useAnimatedStyle, useSharedValue, withTiming } from "react-native-reanimated";
5
- import { useSafeAreaInsets } from "react-native-safe-area-context";
6
-
7
- import { ToastAnimatedItem } from "./parts/ToastAnimatedItem";
8
- import { DefaultToast } from "./Toast";
9
- import type {
10
- ToastComponentProps,
11
- ToastDuration,
12
- ToastId,
13
- ToastItem,
14
- ToastManager,
15
- ToastPlacement,
16
- ToastProviderProps,
17
- ToastShowConfig,
18
- ToastShowOptions,
19
- ToastShowOptionsWithComponent,
20
- } from "./types";
21
- import { setToastManager } from "./utils/controller";
22
-
23
- type ToastAction =
24
- | { type: "show"; item: ToastItem }
25
- | { type: "hide"; ids: ToastId[] }
26
- | { type: "hideAll" }
27
- | { type: "hidePlacement"; placement: ToastPlacement };
28
-
29
- const DEFAULT_DURATION = 4000;
30
- const DEFAULT_MAX_VISIBLE_TOASTS = 3;
3
+ import { useToastManager } from "./hooks/use-toast-manager";
4
+ import { ToastViewport } from "./parts/ToastViewport";
5
+ import type { ToastManager, ToastProviderProps } from "./types";
31
6
 
32
7
  const ToastManagerContext = createContext<ToastManager | null>(null);
33
8
 
34
- function toastReducer(state: ToastItem[], action: ToastAction): ToastItem[] {
35
- switch (action.type) {
36
- case "show":
37
- return [...state.filter((toast) => toast.id !== action.item.id), action.item];
38
- case "hide":
39
- return state.filter((toast) => !action.ids.some((id) => id === toast.id));
40
- case "hideAll":
41
- return [];
42
- case "hidePlacement":
43
- return state.filter((toast) => toast.placement !== action.placement);
44
- }
45
- }
46
-
47
- function createDefaultToastComponent(config: ToastShowConfig, manager: ToastManager) {
48
- return ({ id, hide }: ToastComponentProps) => (
49
- <DefaultToast
50
- id={id}
51
- hide={(toastId) => hide(String(toastId))}
52
- variant={config.variant}
53
- label={config.label}
54
- description={config.description}
55
- icon={config.icon}
56
- actionLabel={config.actionLabel}
57
- showCloseButton={config.showCloseButton}
58
- onActionPress={() => config.onActionPress?.(manager)}
59
- />
60
- );
61
- }
62
-
63
- function isCustomToast(options: ToastShowOptions): options is ToastShowOptionsWithComponent {
64
- return typeof options === "object" && options !== null && "component" in options;
65
- }
66
-
67
- function normalizePlacement(placement: ToastPlacement | undefined, fallback: ToastPlacement): ToastPlacement {
68
- return placement ?? fallback;
69
- }
70
-
71
- function normalizeDuration(duration: ToastDuration | undefined, fallback: number): ToastDuration {
72
- return duration ?? fallback;
73
- }
74
-
75
- function toastId(counter: number): ToastId {
76
- return `toast-${Date.now()}-${counter}`;
77
- }
78
-
79
9
  export function ToastProvider({
80
10
  children,
81
11
  defaultPlacement = "top",
82
- defaultDuration = DEFAULT_DURATION,
83
- maxVisibleToasts = DEFAULT_MAX_VISIBLE_TOASTS,
12
+ defaultDuration = 4000,
13
+ maxVisibleToasts = 3,
84
14
  offset,
85
15
  }: ToastProviderProps) {
86
- const [toasts, dispatch] = useReducer(toastReducer, []);
87
- const toastsRef = useRef<ToastItem[]>([]);
88
- const counterRef = useRef(0);
89
- const timeoutsRef = useRef<Map<ToastId, ReturnType<typeof setTimeout>>>(new Map());
90
-
91
- useEffect(() => {
92
- toastsRef.current = toasts;
93
- }, [toasts]);
94
-
95
- const clearToastTimeout = useCallback((id: ToastId) => {
96
- const timeout = timeoutsRef.current.get(id);
97
- if (timeout) clearTimeout(timeout);
98
- timeoutsRef.current.delete(id);
99
- }, []);
100
-
101
- const hide = useCallback<ToastManager["hide"]>(
102
- (id) => {
103
- if (id === "all") {
104
- for (const toast of toastsRef.current) {
105
- clearToastTimeout(toast.id);
106
- toast.onHide?.();
107
- }
108
- toastsRef.current = [];
109
- dispatch({ type: "hideAll" });
110
- return;
111
- }
112
- const lastToastId = toastsRef.current[toastsRef.current.length - 1]?.id;
113
- const ids = id === undefined ? (lastToastId ? [lastToastId] : []) : Array.isArray(id) ? id : [id];
114
-
115
- if (ids.length === 0) return;
116
-
117
- for (const toastId of ids) {
118
- clearToastTimeout(toastId);
119
- toastsRef.current.find((toast) => toast.id === toastId)?.onHide?.();
120
- }
121
- toastsRef.current = toastsRef.current.filter((toast) => !ids.some((toastId) => toastId === toast.id));
122
- dispatch({ type: "hide", ids });
123
- },
124
- [clearToastTimeout]
125
- );
126
-
127
- const managerRef = useRef<ToastManager>({
128
- show: () => "",
129
- hide,
130
- });
131
-
132
- const show = useCallback<ToastManager["show"]>(
133
- (options) => {
134
- const nextId =
135
- typeof options === "object" && options !== null && "id" in options
136
- ? (options.id ?? toastId(counterRef.current++))
137
- : toastId(counterRef.current++);
138
-
139
- const item =
140
- typeof options === "string"
141
- ? {
142
- id: nextId,
143
- component: createDefaultToastComponent({ label: options }, managerRef.current),
144
- duration: defaultDuration,
145
- placement: defaultPlacement,
146
- }
147
- : isCustomToast(options)
148
- ? {
149
- id: nextId,
150
- component: options.component,
151
- duration: normalizeDuration(options.duration, defaultDuration),
152
- placement: normalizePlacement(options.placement, defaultPlacement),
153
- onHide: options.onHide,
154
- }
155
- : {
156
- id: nextId,
157
- component: createDefaultToastComponent(options, managerRef.current),
158
- duration: normalizeDuration(options.duration, defaultDuration),
159
- placement: normalizePlacement(options.placement, defaultPlacement),
160
- onHide: options.onHide,
161
- };
162
-
163
- const oppositePlacement = item.placement === "top" ? "bottom" : "top";
164
- const oppositeToasts = toastsRef.current.filter((t) => t.placement === oppositePlacement);
165
- if (oppositeToasts.length > 0) {
166
- for (const t of oppositeToasts) {
167
- clearToastTimeout(t.id);
168
- t.onHide?.();
169
- }
170
- toastsRef.current = toastsRef.current.filter((t) => t.placement !== oppositePlacement);
171
- dispatch({ type: "hidePlacement", placement: oppositePlacement });
172
- }
173
-
174
- clearToastTimeout(item.id);
175
- toastsRef.current = [...toastsRef.current.filter((toast) => toast.id !== item.id), item];
176
- dispatch({ type: "show", item });
177
- if (typeof options === "object" && options !== null && "onShow" in options) {
178
- options.onShow?.();
179
- }
180
-
181
- if (item.duration !== "persistent" && Number.isFinite(item.duration) && item.duration > 0) {
182
- const timeout = setTimeout(() => hide(item.id), item.duration);
183
- timeoutsRef.current.set(item.id, timeout);
184
- }
185
-
186
- return item.id;
187
- },
188
- [clearToastTimeout, defaultDuration, defaultPlacement, hide]
189
- );
190
-
191
- const manager = useMemo<ToastManager>(() => ({ show, hide }), [show, hide]);
192
- managerRef.current = manager;
193
-
194
- useEffect(() => {
195
- setToastManager(manager);
196
- return () => {
197
- setToastManager(null);
198
- for (const timeout of timeoutsRef.current.values()) {
199
- clearTimeout(timeout);
200
- }
201
- timeoutsRef.current.clear();
202
- };
203
- }, [manager]);
204
-
16
+ const { toasts, manager } = useToastManager(defaultPlacement, defaultDuration);
205
17
  const topToasts = toasts.filter((toast) => toast.placement === "top");
206
18
  const bottomToasts = toasts.filter((toast) => toast.placement === "bottom");
207
19
 
@@ -226,99 +38,6 @@ export function ToastProvider({
226
38
  );
227
39
  }
228
40
 
229
- interface ToastViewportProps {
230
- placement: ToastPlacement;
231
- toasts: ToastItem[];
232
- manager: ToastManager;
233
- maxVisibleToasts: number;
234
- offset?: ToastProviderProps["offset"];
235
- }
236
-
237
- function ToastViewport({ placement, toasts, manager, maxVisibleToasts, offset }: ToastViewportProps) {
238
- const safeAreaInsets = useSafeAreaInsets();
239
- const heights = useSharedValue<Record<ToastId, number>>({});
240
- const total = useSharedValue(0);
241
- const keyboardHeight = useSharedValue(0);
242
-
243
- const baseBottom = offset?.bottom ?? safeAreaInsets.bottom + (Platform.OS === "ios" ? 6 : 12);
244
- const baseTop = offset?.top ?? safeAreaInsets.top + (Platform.OS === "ios" ? 0 : 12);
245
-
246
- useEffect(() => {
247
- if (placement !== "bottom") return;
248
- const showEvent = Platform.OS === "ios" ? "keyboardWillShow" : "keyboardDidShow";
249
- const hideEvent = Platform.OS === "ios" ? "keyboardWillHide" : "keyboardDidHide";
250
- const showSub = Keyboard.addListener(showEvent, (e) => {
251
- keyboardHeight.value = withTiming(e.endCoordinates.height);
252
- });
253
- const hideSub = Keyboard.addListener(hideEvent, () => {
254
- keyboardHeight.value = withTiming(0);
255
- });
256
- return () => {
257
- showSub.remove();
258
- hideSub.remove();
259
- };
260
- }, [keyboardHeight, placement]);
261
-
262
- const gap = Platform.OS === "ios" ? 6 : 12;
263
-
264
- const keyboardStyle = useAnimatedStyle(() => {
265
- if (placement === "top") return { top: baseTop };
266
- if (keyboardHeight.value > 0) {
267
- return { bottom: keyboardHeight.value + gap };
268
- }
269
- return { bottom: baseBottom };
270
- });
271
-
272
- useEffect(() => {
273
- total.value = toasts.length;
274
- const activeIds = new Set(toasts.map((toast) => toast.id));
275
- const nextHeights: Record<ToastId, number> = {};
276
- for (const [id, height] of Object.entries(heights.value)) {
277
- if (activeIds.has(id)) {
278
- nextHeights[id] = height;
279
- }
280
- }
281
- heights.value = nextHeights;
282
- }, [heights, toasts, total]);
283
-
284
- if (toasts.length === 0) return null;
285
-
286
- return (
287
- <Animated.View
288
- pointerEvents="box-none"
289
- style={[
290
- {
291
- position: "absolute",
292
- zIndex: 9999,
293
- elevation: 9999,
294
- left: offset?.left ?? safeAreaInsets.left + 12,
295
- right: offset?.right ?? safeAreaInsets.right + 12,
296
- },
297
- keyboardStyle,
298
- ]}
299
- >
300
- {toasts.map((toast, index) => (
301
- <ToastAnimatedItem
302
- key={toast.id}
303
- heights={heights}
304
- id={toast.id}
305
- index={index}
306
- maxVisibleToasts={maxVisibleToasts}
307
- placement={placement}
308
- total={total}
309
- >
310
- {toast.component({
311
- id: toast.id,
312
- index,
313
- hide: manager.hide,
314
- show: manager.show,
315
- })}
316
- </ToastAnimatedItem>
317
- ))}
318
- </Animated.View>
319
- );
320
- }
321
-
322
41
  export function useToast(): ToastManager {
323
42
  const manager = useContext(ToastManagerContext);
324
43
  if (!manager) {
@@ -0,0 +1,114 @@
1
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
2
+
3
+ import { DefaultToast } from "../Toast";
4
+ import type {
5
+ ToastComponentProps,
6
+ ToastId,
7
+ ToastItem,
8
+ ToastManager,
9
+ ToastPlacement,
10
+ ToastShowConfig,
11
+ } from "../types";
12
+ import { setToastManager } from "../utils/controller";
13
+
14
+ function createDefaultToastComponent(config: ToastShowConfig) {
15
+ return ({ id, hide, show }: ToastComponentProps) => (
16
+ <DefaultToast
17
+ id={id}
18
+ hide={(toastId) => hide(String(toastId))}
19
+ variant={config.variant}
20
+ label={config.label}
21
+ description={config.description}
22
+ icon={config.icon}
23
+ actionLabel={config.actionLabel}
24
+ showCloseButton={config.showCloseButton}
25
+ onActionPress={() => config.onActionPress?.({ show, hide })}
26
+ />
27
+ );
28
+ }
29
+
30
+ export function useToastManager(defaultPlacement: ToastPlacement, defaultDuration: number) {
31
+ const [toasts, setToasts] = useState<ToastItem[]>([]);
32
+ // Synchronous state lets batched calls and lifecycle callbacks see the latest stack.
33
+ const toastsRef = useRef<ToastItem[]>([]);
34
+ const counterRef = useRef(0);
35
+ const timeoutsRef = useRef(new Map<ToastId, ReturnType<typeof setTimeout>>());
36
+
37
+ const commit = useCallback((next: ToastItem[]) => {
38
+ toastsRef.current = next;
39
+ setToasts(next);
40
+ }, []);
41
+
42
+ const clearToastTimeout = useCallback((id: ToastId) => {
43
+ const timeout = timeoutsRef.current.get(id);
44
+ if (timeout !== undefined) clearTimeout(timeout);
45
+ timeoutsRef.current.delete(id);
46
+ }, []);
47
+
48
+ const hide = useCallback<ToastManager["hide"]>(
49
+ (id) => {
50
+ const current = toastsRef.current;
51
+ const ids = new Set(
52
+ id === undefined ? current.slice(-1).map((toast) => toast.id) : Array.isArray(id) ? id : [id]
53
+ );
54
+ const removed = id === "all" ? current : current.filter((toast) => ids.has(toast.id));
55
+ if (removed.length === 0) return;
56
+
57
+ for (const toast of removed) clearToastTimeout(toast.id);
58
+ commit(id === "all" ? [] : current.filter((toast) => !ids.has(toast.id)));
59
+ for (const toast of removed) toast.onHide?.();
60
+ },
61
+ [clearToastTimeout, commit]
62
+ );
63
+
64
+ const show = useCallback<ToastManager["show"]>(
65
+ (options) => {
66
+ const config = typeof options === "string" ? { label: options } : options;
67
+ const item: ToastItem = {
68
+ id: config.id ?? `toast-${Date.now()}-${counterRef.current++}`,
69
+ component: "component" in config ? config.component : createDefaultToastComponent(config),
70
+ duration: config.duration ?? defaultDuration,
71
+ placement: config.placement ?? defaultPlacement,
72
+ onHide: config.onHide,
73
+ };
74
+ const current = toastsRef.current;
75
+ const removed = current.filter((toast) => toast.placement !== item.placement);
76
+ for (const toast of removed) clearToastTimeout(toast.id);
77
+ clearToastTimeout(item.id);
78
+ commit([
79
+ ...current.filter((toast) => toast.placement === item.placement && toast.id !== item.id),
80
+ item,
81
+ ]);
82
+
83
+ if (item.duration !== "persistent" && Number.isFinite(item.duration) && item.duration > 0) {
84
+ timeoutsRef.current.set(
85
+ item.id,
86
+ setTimeout(() => hide(item.id), item.duration)
87
+ );
88
+ }
89
+
90
+ // Finish the transaction before callbacks can replace or dismiss this item.
91
+ for (const toast of removed) toast.onHide?.();
92
+ if (toastsRef.current.includes(item)) config.onShow?.();
93
+ return item.id;
94
+ },
95
+ [clearToastTimeout, commit, defaultDuration, defaultPlacement, hide]
96
+ );
97
+
98
+ const manager = useMemo<ToastManager>(() => ({ show, hide }), [show, hide]);
99
+
100
+ useEffect(() => {
101
+ setToastManager(manager);
102
+ return () => setToastManager(null);
103
+ }, [manager]);
104
+
105
+ useEffect(() => {
106
+ const timeouts = timeoutsRef.current;
107
+ return () => {
108
+ for (const timeout of timeouts.values()) clearTimeout(timeout);
109
+ timeouts.clear();
110
+ };
111
+ }, []);
112
+
113
+ return { toasts, manager };
114
+ }