@studio-piot/native-ui 0.2.2 → 0.2.4

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 (116) hide show
  1. package/README.md +3 -1
  2. package/dist/components/ErrorBanner/ErrorBanner.d.ts +8 -0
  3. package/dist/components/ErrorBanner/ErrorBanner.d.ts.map +1 -0
  4. package/dist/components/ErrorBanner/ErrorBanner.js +136 -0
  5. package/dist/components/ErrorBanner/ErrorBanner.js.map +1 -0
  6. package/dist/components/ErrorBanner/errorBannerContext.d.ts +36 -0
  7. package/dist/components/ErrorBanner/errorBannerContext.d.ts.map +1 -0
  8. package/dist/components/ErrorBanner/errorBannerContext.js +78 -0
  9. package/dist/components/ErrorBanner/errorBannerContext.js.map +1 -0
  10. package/dist/components/ErrorBanner/errorBannerCopy.d.ts +7 -0
  11. package/dist/components/ErrorBanner/errorBannerCopy.d.ts.map +1 -0
  12. package/dist/components/ErrorBanner/errorBannerCopy.js +22 -0
  13. package/dist/components/ErrorBanner/errorBannerCopy.js.map +1 -0
  14. package/dist/components/ErrorBanner/errorBannerThemeRoles.d.ts +9 -0
  15. package/dist/components/ErrorBanner/errorBannerThemeRoles.d.ts.map +1 -0
  16. package/dist/components/ErrorBanner/errorBannerThemeRoles.js +11 -0
  17. package/dist/components/ErrorBanner/errorBannerThemeRoles.js.map +1 -0
  18. package/dist/components/ErrorBanner/icons.d.ts +7 -0
  19. package/dist/components/ErrorBanner/icons.d.ts.map +1 -0
  20. package/dist/components/ErrorBanner/icons.js +46 -0
  21. package/dist/components/ErrorBanner/icons.js.map +1 -0
  22. package/dist/components/ErrorBanner/index.d.ts +6 -0
  23. package/dist/components/ErrorBanner/index.d.ts.map +1 -0
  24. package/dist/components/ErrorBanner/index.js +16 -0
  25. package/dist/components/ErrorBanner/index.js.map +1 -0
  26. package/dist/components/ErrorBanner/types.d.ts +31 -0
  27. package/dist/components/ErrorBanner/types.d.ts.map +1 -0
  28. package/dist/components/ErrorBanner/types.js +3 -0
  29. package/dist/components/ErrorBanner/types.js.map +1 -0
  30. package/dist/components/ErrorBanner/useErrorBanner.d.ts +13 -0
  31. package/dist/components/ErrorBanner/useErrorBanner.d.ts.map +1 -0
  32. package/dist/components/ErrorBanner/useErrorBanner.js +31 -0
  33. package/dist/components/ErrorBanner/useErrorBanner.js.map +1 -0
  34. package/dist/components/Field/fieldChrome.d.ts +1 -1
  35. package/dist/components/Field/fieldChrome.d.ts.map +1 -1
  36. package/dist/components/Field/fieldChrome.js +20 -4
  37. package/dist/components/Field/fieldChrome.js.map +1 -1
  38. package/dist/components/Field/types.d.ts +2 -0
  39. package/dist/components/Field/types.d.ts.map +1 -1
  40. package/dist/components/Form/Form.d.ts +1 -1
  41. package/dist/components/Form/Form.d.ts.map +1 -1
  42. package/dist/components/Form/Form.js +36 -23
  43. package/dist/components/Form/Form.js.map +1 -1
  44. package/dist/components/Form/types.d.ts +7 -0
  45. package/dist/components/Form/types.d.ts.map +1 -1
  46. package/dist/components/RadioField/RadioField.d.ts.map +1 -1
  47. package/dist/components/RadioField/RadioField.js +6 -1
  48. package/dist/components/RadioField/RadioField.js.map +1 -1
  49. package/dist/components/SegmentedControl/SegmentedControl.d.ts +3 -0
  50. package/dist/components/SegmentedControl/SegmentedControl.d.ts.map +1 -0
  51. package/dist/components/SegmentedControl/SegmentedControl.js +181 -0
  52. package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -0
  53. package/dist/components/SegmentedControl/index.d.ts +4 -0
  54. package/dist/components/SegmentedControl/index.d.ts.map +1 -0
  55. package/dist/components/SegmentedControl/index.js +8 -0
  56. package/dist/components/SegmentedControl/index.js.map +1 -0
  57. package/dist/components/SegmentedControl/segmentIndicatorFrame.d.ts +16 -0
  58. package/dist/components/SegmentedControl/segmentIndicatorFrame.d.ts.map +1 -0
  59. package/dist/components/SegmentedControl/segmentIndicatorFrame.js +27 -0
  60. package/dist/components/SegmentedControl/segmentIndicatorFrame.js.map +1 -0
  61. package/dist/components/SegmentedControl/segmentThemeRoles.d.ts +9 -0
  62. package/dist/components/SegmentedControl/segmentThemeRoles.d.ts.map +1 -0
  63. package/dist/components/SegmentedControl/segmentThemeRoles.js +11 -0
  64. package/dist/components/SegmentedControl/segmentThemeRoles.js.map +1 -0
  65. package/dist/components/SegmentedControl/types.d.ts +23 -0
  66. package/dist/components/SegmentedControl/types.d.ts.map +1 -0
  67. package/dist/components/SegmentedControl/types.js +3 -0
  68. package/dist/components/SegmentedControl/types.js.map +1 -0
  69. package/dist/components/Select/Select.d.ts +1 -1
  70. package/dist/components/Select/Select.d.ts.map +1 -1
  71. package/dist/components/Select/Select.js +11 -4
  72. package/dist/components/Select/Select.js.map +1 -1
  73. package/dist/components/Select/types.d.ts +2 -0
  74. package/dist/components/Select/types.d.ts.map +1 -1
  75. package/dist/components/Slider/Slider.d.ts.map +1 -1
  76. package/dist/components/Slider/Slider.js +6 -1
  77. package/dist/components/Slider/Slider.js.map +1 -1
  78. package/dist/components/index.d.ts +2 -0
  79. package/dist/components/index.d.ts.map +1 -1
  80. package/dist/components/index.js +13 -1
  81. package/dist/components/index.js.map +1 -1
  82. package/dist/index.d.ts +3 -1
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +14 -2
  85. package/dist/index.js.map +1 -1
  86. package/docs/components/error-banner.md +85 -0
  87. package/docs/components/form.md +2 -1
  88. package/docs/components/segmented-control.md +105 -0
  89. package/package.json +4 -2
  90. package/src/components/ErrorBanner/ErrorBanner.tsx +232 -0
  91. package/src/components/ErrorBanner/errorBannerContext.tsx +140 -0
  92. package/src/components/ErrorBanner/errorBannerCopy.test.ts +41 -0
  93. package/src/components/ErrorBanner/errorBannerCopy.ts +22 -0
  94. package/src/components/ErrorBanner/errorBannerThemeRoles.test.ts +19 -0
  95. package/src/components/ErrorBanner/errorBannerThemeRoles.ts +9 -0
  96. package/src/components/ErrorBanner/icons.tsx +38 -0
  97. package/src/components/ErrorBanner/index.ts +14 -0
  98. package/src/components/ErrorBanner/types.ts +31 -0
  99. package/src/components/ErrorBanner/useErrorBanner.ts +33 -0
  100. package/src/components/Field/fieldChrome.tsx +33 -7
  101. package/src/components/Field/types.ts +2 -0
  102. package/src/components/Form/Form.tsx +56 -2
  103. package/src/components/Form/types.ts +7 -0
  104. package/src/components/RadioField/RadioField.tsx +6 -1
  105. package/src/components/SegmentedControl/SegmentedControl.tsx +230 -0
  106. package/src/components/SegmentedControl/index.ts +6 -0
  107. package/src/components/SegmentedControl/segmentIndicatorFrame.test.ts +39 -0
  108. package/src/components/SegmentedControl/segmentIndicatorFrame.ts +31 -0
  109. package/src/components/SegmentedControl/segmentThemeRoles.test.ts +19 -0
  110. package/src/components/SegmentedControl/segmentThemeRoles.ts +9 -0
  111. package/src/components/SegmentedControl/types.ts +24 -0
  112. package/src/components/Select/Select.tsx +20 -5
  113. package/src/components/Select/types.ts +2 -0
  114. package/src/components/Slider/Slider.tsx +6 -1
  115. package/src/components/index.ts +20 -0
  116. package/src/index.ts +21 -1
@@ -13,6 +13,8 @@ export type SelectCloseButton =
13
13
  | ((dismiss: () => void) => ReactNode);
14
14
 
15
15
  export type SelectProps = {
16
+ /** Registers the field with `Form` / `ErrorBannerProvider` for banner rows. */
17
+ name?: string;
16
18
  value: string | null;
17
19
  onChange: (value: string) => void;
18
20
  options: SelectOption[];
@@ -1,5 +1,6 @@
1
1
  import { StyleSheet, Text, View } from "react-native";
2
2
  import CommunitySlider from "@react-native-community/slider";
3
+ import { useErrorBannerDismiss } from "../ErrorBanner";
3
4
  import { useResolvedFieldColor } from "../Field/useResolvedFieldColor";
4
5
  import { SLIDER_THEME_ROLES } from "./sliderThemeRoles";
5
6
  import type { SliderProps } from "./types";
@@ -36,6 +37,7 @@ export function Slider({
36
37
  SLIDER_THEME_ROLES.trackColor,
37
38
  );
38
39
 
40
+ const dismissBanner = useErrorBannerDismiss();
39
41
  const display = formatValue(value);
40
42
  const accessibilityLabel = label ? `${label}. ${display}` : display;
41
43
 
@@ -58,7 +60,10 @@ export function Slider({
58
60
  maximumValue={maximumValue}
59
61
  minimumTrackTintColor={highlightColor}
60
62
  minimumValue={minimumValue}
61
- onValueChange={onChange}
63
+ onValueChange={(next) => {
64
+ onChange(next);
65
+ dismissBanner();
66
+ }}
62
67
  step={step}
63
68
  style={styles.track}
64
69
  thumbTintColor={highlightColor}
@@ -21,6 +21,19 @@ export {
21
21
  type FieldTextareaProps,
22
22
  } from "./Field";
23
23
  export { Form, FormCloseButton, type FormProps } from "./Form";
24
+ export {
25
+ ErrorBanner,
26
+ ErrorBannerField,
27
+ ErrorBannerProvider,
28
+ ERROR_BANNER_THEME_ROLES,
29
+ useErrorBanner,
30
+ useErrorBannerContext,
31
+ useErrorBannerDismiss,
32
+ useErrorBannerField,
33
+ type ErrorBannerThemeColorProp,
34
+ type ErrorBannerProps,
35
+ type FieldError,
36
+ } from "./ErrorBanner";
24
37
  export {
25
38
  RadioField,
26
39
  RADIO_THEME_ROLES,
@@ -41,6 +54,13 @@ export {
41
54
  type SelectOption,
42
55
  type SelectProps,
43
56
  } from "./Select";
57
+ export {
58
+ SegmentedControl,
59
+ SEGMENTED_THEME_ROLES,
60
+ type SegmentedThemeColorProp,
61
+ type SegmentedOption,
62
+ type SegmentedControlProps,
63
+ } from "./SegmentedControl";
44
64
  export {
45
65
  Slider,
46
66
  SLIDER_THEME_ROLES,
package/src/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- export const version = "0.2.2";
1
+ export const version = "0.2.4";
2
2
 
3
3
  export * from "./theme";
4
4
  export {
@@ -28,6 +28,19 @@ export {
28
28
  FormCloseButton,
29
29
  type FormProps,
30
30
  } from "./components/Form";
31
+ export {
32
+ ErrorBanner,
33
+ ErrorBannerField,
34
+ ErrorBannerProvider,
35
+ ERROR_BANNER_THEME_ROLES,
36
+ useErrorBanner,
37
+ useErrorBannerContext,
38
+ useErrorBannerDismiss,
39
+ useErrorBannerField,
40
+ type ErrorBannerThemeColorProp,
41
+ type ErrorBannerProps,
42
+ type FieldError,
43
+ } from "./components/ErrorBanner";
31
44
  export {
32
45
  RadioField,
33
46
  RADIO_THEME_ROLES,
@@ -48,6 +61,13 @@ export {
48
61
  type SelectOption,
49
62
  type SelectProps,
50
63
  } from "./components/Select";
64
+ export {
65
+ SegmentedControl,
66
+ SEGMENTED_THEME_ROLES,
67
+ type SegmentedThemeColorProp,
68
+ type SegmentedOption,
69
+ type SegmentedControlProps,
70
+ } from "./components/SegmentedControl";
51
71
  export {
52
72
  Slider,
53
73
  SLIDER_THEME_ROLES,