@medway-ui/native 1.7.2 → 1.8.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 (50) hide show
  1. package/README.md +4 -1
  2. package/lib/commonjs/components/Badge.js +159 -36
  3. package/lib/commonjs/components/Badge.js.map +1 -1
  4. package/lib/commonjs/components/Choice.js +35 -37
  5. package/lib/commonjs/components/Choice.js.map +1 -1
  6. package/lib/commonjs/components/SegmentControl.js +197 -0
  7. package/lib/commonjs/components/SegmentControl.js.map +1 -0
  8. package/lib/commonjs/editor/editorHtml.generated.js +1 -1
  9. package/lib/commonjs/editor/editorHtml.generated.js.map +1 -1
  10. package/lib/commonjs/hooks/useThemeColor.js +42 -42
  11. package/lib/commonjs/hooks/useThemeColor.js.map +1 -1
  12. package/lib/commonjs/index.js +31 -0
  13. package/lib/commonjs/index.js.map +1 -1
  14. package/lib/commonjs/lib/raised-surface.js +24 -0
  15. package/lib/commonjs/lib/raised-surface.js.map +1 -0
  16. package/lib/module/components/Badge.js +159 -36
  17. package/lib/module/components/Badge.js.map +1 -1
  18. package/lib/module/components/Choice.js +35 -37
  19. package/lib/module/components/Choice.js.map +1 -1
  20. package/lib/module/components/SegmentControl.js +189 -0
  21. package/lib/module/components/SegmentControl.js.map +1 -0
  22. package/lib/module/editor/editorHtml.generated.js +1 -1
  23. package/lib/module/editor/editorHtml.generated.js.map +1 -1
  24. package/lib/module/hooks/useThemeColor.js +42 -42
  25. package/lib/module/hooks/useThemeColor.js.map +1 -1
  26. package/lib/module/index.js +2 -0
  27. package/lib/module/index.js.map +1 -1
  28. package/lib/module/lib/raised-surface.js +22 -0
  29. package/lib/module/lib/raised-surface.js.map +1 -0
  30. package/lib/typescript/components/Badge.d.ts +14 -4
  31. package/lib/typescript/components/Badge.d.ts.map +1 -1
  32. package/lib/typescript/components/Chip.d.ts +2 -2
  33. package/lib/typescript/components/Choice.d.ts.map +1 -1
  34. package/lib/typescript/components/SegmentControl.d.ts +37 -0
  35. package/lib/typescript/components/SegmentControl.d.ts.map +1 -0
  36. package/lib/typescript/components/Tag.d.ts +2 -2
  37. package/lib/typescript/editor/editorHtml.generated.d.ts.map +1 -1
  38. package/lib/typescript/index.d.ts +3 -1
  39. package/lib/typescript/index.d.ts.map +1 -1
  40. package/lib/typescript/lib/raised-surface.d.ts +3 -0
  41. package/lib/typescript/lib/raised-surface.d.ts.map +1 -0
  42. package/package.json +1 -1
  43. package/setup/tokens.native.css +49 -22
  44. package/src/components/Badge.tsx +207 -61
  45. package/src/components/Choice.tsx +66 -45
  46. package/src/components/SegmentControl.tsx +265 -0
  47. package/src/editor/editorHtml.generated.ts +1 -1
  48. package/src/hooks/useThemeColor.ts +42 -42
  49. package/src/index.ts +21 -1
  50. package/src/lib/raised-surface.tsx +21 -0
@@ -180,17 +180,17 @@ const PALETTE: Record<string, string> = {
180
180
  'prev-lighten-6': 'rgba(198, 199, 226, 1)',
181
181
 
182
182
  // Drop shadow (valores do light; no dark viram alias de `black-*`)
183
- 'drop-shadow-layer-a': 'rgba(33, 38, 49, 0.16)',
184
- 'drop-shadow-layer-b': 'rgba(73, 85, 110, 0.16)',
183
+ 'drop-shadow-layer-a': 'rgba(33, 38, 49, 0.04)',
184
+ 'drop-shadow-layer-b': 'rgba(73, 85, 110, 0.08)',
185
185
 
186
186
  // Gold
187
187
  gold: 'rgba(217, 172, 104, 1)',
188
- 'gold-darken-1': 'rgba(209, 154, 72, 1)',
189
- 'gold-darken-2': 'rgba(191, 134, 49, 1)',
190
- 'gold-darken-3': 'rgba(159, 111, 40, 1)',
191
- 'gold-darken-4': 'rgba(126, 88, 32, 1)',
192
- 'gold-darken-5': 'rgba(94, 66, 24, 1)',
193
- 'gold-darken-6': 'rgba(61, 43, 15, 1)',
188
+ 'gold-darken-1': 'rgba(200, 152, 81, 1)',
189
+ 'gold-darken-2': 'rgba(181, 132, 59, 1)',
190
+ 'gold-darken-3': 'rgba(151, 110, 48, 1)',
191
+ 'gold-darken-4': 'rgba(119, 87, 39, 1)',
192
+ 'gold-darken-5': 'rgba(89, 65, 29, 1)',
193
+ 'gold-darken-6': 'rgba(57, 42, 19, 1)',
194
194
  'gold-lighten-1': 'rgba(221, 181, 121, 1)',
195
195
  'gold-lighten-2': 'rgba(229, 199, 153, 1)',
196
196
  'gold-lighten-3': 'rgba(233, 208, 170, 1)',
@@ -470,29 +470,29 @@ const LIGHT_COLOR_ALIAS_MAP: Record<string, string> = {
470
470
  // Gold
471
471
  'gold-foreground': 'gold-darken-4',
472
472
  'gold-foreground-emphasis': 'gold-darken-5',
473
- 'gold-foreground-onfill': 'gold-darken-5',
474
- 'gold-background-fill': 'gold',
473
+ 'gold-foreground-onfill': 'gold-darken-6',
474
+ 'gold-background-fill': 'gold-lighten-1',
475
475
  'gold-background-fill-emphasis': 'gold-darken-1',
476
- 'gold-background-soft': 'gold-24',
477
- 'gold-background-soft-emphasis': 'gold-16',
476
+ 'gold-background-soft': 'gold-16',
477
+ 'gold-background-soft-emphasis': 'gold-8',
478
478
 
479
479
  // Silver
480
- 'silver-foreground': 'silver-darken-4',
480
+ 'silver-foreground': 'silver-darken-3',
481
481
  'silver-foreground-emphasis': 'silver-darken-6',
482
482
  'silver-foreground-onfill': 'white',
483
- 'silver-background-fill': 'silver',
484
- 'silver-background-fill-emphasis': 'silver-darken-1',
485
- 'silver-background-soft': 'silver-8',
486
- 'silver-background-soft-emphasis': 'silver-4',
483
+ 'silver-background-fill': 'silver-darken-1',
484
+ 'silver-background-fill-emphasis': 'silver-darken-3',
485
+ 'silver-background-soft': 'silver-16',
486
+ 'silver-background-soft-emphasis': 'silver-8',
487
487
 
488
488
  // Bronze
489
- 'bronze-foreground': 'bronze-darken-3',
490
- 'bronze-foreground-emphasis': 'bronze-darken-4',
489
+ 'bronze-foreground': 'bronze-darken-2',
490
+ 'bronze-foreground-emphasis': 'bronze-darken-3',
491
491
  'bronze-foreground-onfill': 'white',
492
492
  'bronze-background-fill': 'bronze',
493
493
  'bronze-background-fill-emphasis': 'bronze-darken-1',
494
- 'bronze-background-soft': 'bronze-24',
495
- 'bronze-background-soft-emphasis': 'bronze-16',
494
+ 'bronze-background-soft': 'bronze-16',
495
+ 'bronze-background-soft-emphasis': 'bronze-8',
496
496
  };
497
497
 
498
498
  /** Alias semântico → token da paleta, para dark mode (`.dark` em tokens.native.css). */
@@ -512,7 +512,7 @@ const DARK_COLOR_ALIAS_MAP: Record<string, string> = {
512
512
  'surface-elevated': 'gray-800',
513
513
  'surface-card': 'gray-850',
514
514
  'surface-navigation': 'gray-850',
515
- 'surface-section': 'gray-900',
515
+ 'surface-section': 'gray-850',
516
516
  'surface-page': 'gray-950',
517
517
  'surface-disable': 'black-8',
518
518
  'surface-settings-on': 'black-48',
@@ -732,31 +732,31 @@ const DARK_COLOR_ALIAS_MAP: Record<string, string> = {
732
732
  'gradient-pt-bg-1': 'gray-800',
733
733
  'gradient-pt-bg-2': 'gray-900',
734
734
 
735
- // Gold (herdado do :root)
736
- 'gold-foreground': 'gold-darken-4',
737
- 'gold-foreground-emphasis': 'gold-darken-5',
738
- 'gold-foreground-onfill': 'gold-darken-5',
739
- 'gold-background-fill': 'gold',
740
- 'gold-background-fill-emphasis': 'gold-darken-1',
741
- 'gold-background-soft': 'gold-24',
735
+ // Gold
736
+ 'gold-foreground': 'gold-lighten-1',
737
+ 'gold-foreground-emphasis': 'gold-lighten-2',
738
+ 'gold-foreground-onfill': 'gold-darken-6',
739
+ 'gold-background-fill': 'gold-darken-1',
740
+ 'gold-background-fill-emphasis': 'gold',
741
+ 'gold-background-soft': 'gold-8',
742
742
  'gold-background-soft-emphasis': 'gold-16',
743
743
 
744
- // Silver (herdado do :root)
745
- 'silver-foreground': 'silver-darken-4',
746
- 'silver-foreground-emphasis': 'silver-darken-6',
744
+ // Silver
745
+ 'silver-foreground': 'silver-lighten-3',
746
+ 'silver-foreground-emphasis': 'silver-lighten-5',
747
747
  'silver-foreground-onfill': 'white',
748
- 'silver-background-fill': 'silver',
749
- 'silver-background-fill-emphasis': 'silver-darken-1',
748
+ 'silver-background-fill': 'silver-darken-1',
749
+ 'silver-background-fill-emphasis': 'silver',
750
750
  'silver-background-soft': 'silver-8',
751
- 'silver-background-soft-emphasis': 'silver-4',
751
+ 'silver-background-soft-emphasis': 'silver-16',
752
752
 
753
- // Bronze (herdado do :root)
754
- 'bronze-foreground': 'bronze-darken-3',
755
- 'bronze-foreground-emphasis': 'bronze-darken-4',
756
- 'bronze-foreground-onfill': 'white',
757
- 'bronze-background-fill': 'bronze',
758
- 'bronze-background-fill-emphasis': 'bronze-darken-1',
759
- 'bronze-background-soft': 'bronze-24',
753
+ // Bronze
754
+ 'bronze-foreground': 'bronze-lighten-3',
755
+ 'bronze-foreground-emphasis': 'bronze-lighten-4',
756
+ 'bronze-foreground-onfill': 'bronze-darken-5',
757
+ 'bronze-background-fill': 'bronze-lighten-1',
758
+ 'bronze-background-fill-emphasis': 'bronze',
759
+ 'bronze-background-soft': 'bronze-8',
760
760
  'bronze-background-soft-emphasis': 'bronze-16',
761
761
 
762
762
  // Backdrop / drop shadow subtle
package/src/index.ts CHANGED
@@ -15,7 +15,11 @@ export type { AlertButtonProps, AlertProps } from "@/components/Alert";
15
15
 
16
16
  // Badge
17
17
  export { Badge, badgeVariants } from "@/components/Badge";
18
- export type { BadgeAnimation, BadgeProps } from "@/components/Badge";
18
+ export type {
19
+ BadgeAnimation,
20
+ BadgeLayout,
21
+ BadgeProps,
22
+ } from "@/components/Badge";
19
23
 
20
24
  // Avatar
21
25
  export {
@@ -404,6 +408,22 @@ export type {
404
408
  export { Choice } from "@/components/Choice";
405
409
  export type { ChoiceProps, ChoiceTheme } from "@/components/Choice";
406
410
 
411
+ // SegmentControl
412
+ export {
413
+ SegmentControl,
414
+ SegmentControlContent,
415
+ SegmentControlList,
416
+ SegmentControlTrigger,
417
+ segmentControlTriggerVariants,
418
+ } from "@/components/SegmentControl";
419
+ export type {
420
+ SegmentControlContentProps,
421
+ SegmentControlListProps,
422
+ SegmentControlProps,
423
+ SegmentControlTriggerProps,
424
+ SegmentSize,
425
+ } from "@/components/SegmentControl";
426
+
407
427
  // Filter
408
428
  export { Filter } from "@/components/Filter";
409
429
  export type { FilterProps } from "@/components/Filter";
@@ -0,0 +1,21 @@
1
+ import { View } from "react-native";
2
+
3
+ import { useThemeColor } from "@/hooks/useThemeColor";
4
+
5
+ // The selected card of `Choice` and `SegmentControl`, as its own layer: toggled on the content's
6
+ // view, Android drew the fill without the radius. `boxShadow` draws both layers of the design's
7
+ // `shadow/level-1`; the legacy `shadow*` props draw only one.
8
+ function RaisedSurface() {
9
+ const layerA = useThemeColor("drop-shadow-layer-a");
10
+ const layerB = useThemeColor("drop-shadow-layer-b");
11
+
12
+ return (
13
+ <View
14
+ pointerEvents="none"
15
+ className="absolute inset-0 rounded-[6px] bg-surface-card"
16
+ style={{ boxShadow: `0 0 2px 0 ${layerA}, 0 2px 4px 0 ${layerB}` }}
17
+ />
18
+ );
19
+ }
20
+
21
+ export { RaisedSurface };