@fountain-ui/core 2.0.0-beta.3 → 2.0.0-beta.6

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 (42) hide show
  1. package/build/commonjs/AppBar/AppBar.js +8 -13
  2. package/build/commonjs/AppBar/AppBar.js.map +1 -1
  3. package/build/commonjs/Paper/Paper.js +11 -3
  4. package/build/commonjs/Paper/Paper.js.map +1 -1
  5. package/build/commonjs/Paper/PaperStylesProvider.js +14 -0
  6. package/build/commonjs/Paper/PaperStylesProvider.js.map +1 -0
  7. package/build/commonjs/Paper/usePaperStyles.js +17 -0
  8. package/build/commonjs/Paper/usePaperStyles.js.map +1 -0
  9. package/build/commonjs/TextField/InputLabel.js +13 -7
  10. package/build/commonjs/TextField/InputLabel.js.map +1 -1
  11. package/build/commonjs/TextField/OutlinedTextField.js +0 -1
  12. package/build/commonjs/TextField/OutlinedTextField.js.map +1 -1
  13. package/build/commonjs/internal/icons/CheckboxChecked.js +3 -8
  14. package/build/commonjs/internal/icons/CheckboxChecked.js.map +1 -1
  15. package/build/module/AppBar/AppBar.js +8 -13
  16. package/build/module/AppBar/AppBar.js.map +1 -1
  17. package/build/module/Paper/Paper.js +10 -3
  18. package/build/module/Paper/Paper.js.map +1 -1
  19. package/build/module/Paper/PaperStylesProvider.js +4 -0
  20. package/build/module/Paper/PaperStylesProvider.js.map +1 -0
  21. package/build/module/Paper/usePaperStyles.js +7 -0
  22. package/build/module/Paper/usePaperStyles.js.map +1 -0
  23. package/build/module/TextField/InputLabel.js +12 -7
  24. package/build/module/TextField/InputLabel.js.map +1 -1
  25. package/build/module/TextField/OutlinedTextField.js +0 -1
  26. package/build/module/TextField/OutlinedTextField.js.map +1 -1
  27. package/build/module/internal/icons/CheckboxChecked.js +3 -8
  28. package/build/module/internal/icons/CheckboxChecked.js.map +1 -1
  29. package/build/typescript/AppBar/AppBarProps.d.ts +1 -1
  30. package/build/typescript/Paper/PaperProps.d.ts +5 -0
  31. package/build/typescript/Paper/PaperStylesProvider.d.ts +7 -0
  32. package/build/typescript/Paper/usePaperStyles.d.ts +1 -0
  33. package/package.json +3 -3
  34. package/src/AppBar/AppBar.tsx +13 -21
  35. package/src/AppBar/AppBarProps.ts +1 -1
  36. package/src/Paper/Paper.tsx +14 -8
  37. package/src/Paper/PaperProps.ts +6 -0
  38. package/src/Paper/PaperStylesProvider.tsx +9 -0
  39. package/src/Paper/usePaperStyles.ts +6 -0
  40. package/src/TextField/InputLabel.tsx +12 -5
  41. package/src/TextField/OutlinedTextField.tsx +1 -1
  42. package/src/internal/icons/CheckboxChecked.tsx +3 -11
@@ -23,15 +23,6 @@ const useStyles = function () {
23
23
  flexShrink: 0,
24
24
  width: '100%',
25
25
  zIndex: theme.zIndex.appBar
26
- },
27
- colorDefault: {
28
- backgroundColor: theme.palette.background.default
29
- },
30
- colorPrimary: {
31
- backgroundColor: theme.palette.primary.main
32
- },
33
- colorTransparent: {
34
- backgroundColor: 'transparent'
35
26
  }
36
27
  };
37
28
  };
@@ -42,14 +33,18 @@ const AppBar = /*#__PURE__*/_react.default.forwardRef(function AppBar(props, ref
42
33
  style,
43
34
  ...otherProps
44
35
  } = props;
36
+ const theme = (0, _styles.useTheme)();
45
37
  const styles = useStyles();
46
- const colorStyle = color === 'default' ? styles.colorDefault : color === 'primary' ? styles.colorPrimary : styles.colorTransparent;
47
- const paperStyle = (0, _styles.css)([styles.root, colorStyle, style]);
38
+ const backgroundColor = color === 'default' ? theme.palette.background.default : color === 'paper' ? theme.palette.paper.default : color === 'primary' ? theme.palette.primary.main : 'transparent';
39
+ const paperStyle = (0, _styles.css)([styles.root, {
40
+ backgroundColor
41
+ }, style]);
48
42
  return /*#__PURE__*/_react.default.createElement(_Paper.default, _extends({
49
43
  ref: ref,
50
- square: true,
44
+ colorValue: backgroundColor,
51
45
  elevation: 0,
52
- style: paperStyle
46
+ style: paperStyle,
47
+ square: true
53
48
  }, otherProps));
54
49
  });
55
50
 
@@ -1 +1 @@
1
- {"version":3,"sources":["AppBar.tsx"],"names":["useStyles","theme","root","flexDirection","flexShrink","width","zIndex","appBar","colorDefault","backgroundColor","palette","background","default","colorPrimary","primary","main","colorTransparent","AppBar","React","forwardRef","props","ref","color","style","otherProps","styles","colorStyle","paperStyle"],"mappings":";;;;;;;AAAA;;AAGA;;AACA;;;;;;AAWA,MAAMA,SAAkC,GAAG,YAA0B;AACjE,QAAMC,KAAK,GAAG,uBAAd;AAEA,SAAO;AACHC,IAAAA,IAAI,EAAE;AACFC,MAAAA,aAAa,EAAE,QADb;AAEFC,MAAAA,UAAU,EAAE,CAFV;AAGFC,MAAAA,KAAK,EAAE,MAHL;AAIFC,MAAAA,MAAM,EAAEL,KAAK,CAACK,MAAN,CAAaC;AAJnB,KADH;AAOHC,IAAAA,YAAY,EAAE;AACVC,MAAAA,eAAe,EAAER,KAAK,CAACS,OAAN,CAAcC,UAAd,CAAyBC;AADhC,KAPX;AAUHC,IAAAA,YAAY,EAAE;AACVJ,MAAAA,eAAe,EAAER,KAAK,CAACS,OAAN,CAAcI,OAAd,CAAsBC;AAD7B,KAVX;AAaHC,IAAAA,gBAAgB,EAAE;AACdP,MAAAA,eAAe,EAAE;AADH;AAbf,GAAP;AAiBH,CApBD;;AAsBA,MAAMQ,MAAM,gBAAGC,eAAMC,UAAN,CAAoC,SAASF,MAAT,CAAgBG,KAAhB,EAAuBC,GAAvB,EAA4B;AAC3E,QAAM;AACFC,IAAAA,KAAK,GAAG,SADN;AAEFC,IAAAA,KAFE;AAGF,OAAGC;AAHD,MAIFJ,KAJJ;AAMA,QAAMK,MAAM,GAAGzB,SAAS,EAAxB;AAEA,QAAM0B,UAAU,GAAGJ,KAAK,KAAK,SAAV,GACbG,MAAM,CAACjB,YADM,GAEbc,KAAK,KAAK,SAAV,GACIG,MAAM,CAACZ,YADX,GAEIY,MAAM,CAACT,gBAJjB;AAMA,QAAMW,UAAU,GAAG,iBAAI,CACnBF,MAAM,CAACvB,IADY,EAEnBwB,UAFmB,EAGnBH,KAHmB,CAAJ,CAAnB;AAMA,sBACI,6BAAC,cAAD;AACI,IAAA,GAAG,EAAEF,GADT;AAEI,IAAA,MAAM,MAFV;AAGI,IAAA,SAAS,EAAE,CAHf;AAII,IAAA,KAAK,EAAEM;AAJX,KAKQH,UALR,EADJ;AASH,CA9Bc,CAAf;;eAgCeP,M","sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';\nimport Paper from '../Paper';\nimport { css, useTheme } from '../styles';\nimport type AppBarProps from './AppBarProps';\n\ntype AppBarStyleKeys =\n | 'root'\n | 'colorDefault'\n | 'colorPrimary'\n | 'colorTransparent';\n\ntype AppBarStyles = NamedStylesStringUnion<AppBarStyleKeys>;\n\nconst useStyles: UseStyles<AppBarStyles> = function (): AppBarStyles {\n const theme = useTheme();\n\n return {\n root: {\n flexDirection: 'column',\n flexShrink: 0,\n width: '100%',\n zIndex: theme.zIndex.appBar,\n },\n colorDefault: {\n backgroundColor: theme.palette.background.default,\n },\n colorPrimary: {\n backgroundColor: theme.palette.primary.main,\n },\n colorTransparent: {\n backgroundColor: 'transparent',\n },\n };\n};\n\nconst AppBar = React.forwardRef<View, AppBarProps>(function AppBar(props, ref) {\n const {\n color = 'default',\n style,\n ...otherProps\n } = props;\n\n const styles = useStyles();\n\n const colorStyle = color === 'default'\n ? styles.colorDefault\n : color === 'primary'\n ? styles.colorPrimary\n : styles.colorTransparent;\n\n const paperStyle = css([\n styles.root,\n colorStyle,\n style,\n ]);\n\n return (\n <Paper\n ref={ref}\n square\n elevation={0}\n style={paperStyle}\n {...otherProps}\n />\n );\n});\n\nexport default AppBar;\n"]}
1
+ {"version":3,"sources":["AppBar.tsx"],"names":["useStyles","theme","root","flexDirection","flexShrink","width","zIndex","appBar","AppBar","React","forwardRef","props","ref","color","style","otherProps","styles","backgroundColor","palette","background","default","paper","primary","main","paperStyle"],"mappings":";;;;;;;AAAA;;AAGA;;AACA;;;;;;AAOA,MAAMA,SAAkC,GAAG,YAA0B;AACjE,QAAMC,KAAK,GAAG,uBAAd;AAEA,SAAO;AACHC,IAAAA,IAAI,EAAE;AACFC,MAAAA,aAAa,EAAE,QADb;AAEFC,MAAAA,UAAU,EAAE,CAFV;AAGFC,MAAAA,KAAK,EAAE,MAHL;AAIFC,MAAAA,MAAM,EAAEL,KAAK,CAACK,MAAN,CAAaC;AAJnB;AADH,GAAP;AAQH,CAXD;;AAaA,MAAMC,MAAM,gBAAGC,eAAMC,UAAN,CAAoC,SAASF,MAAT,CAAgBG,KAAhB,EAAuBC,GAAvB,EAA4B;AAC3E,QAAM;AACFC,IAAAA,KAAK,GAAG,SADN;AAEFC,IAAAA,KAFE;AAGF,OAAGC;AAHD,MAIFJ,KAJJ;AAMA,QAAMV,KAAK,GAAG,uBAAd;AAEA,QAAMe,MAAM,GAAGhB,SAAS,EAAxB;AAEA,QAAMiB,eAAe,GAAGJ,KAAK,KAAK,SAAV,GAClBZ,KAAK,CAACiB,OAAN,CAAcC,UAAd,CAAyBC,OADP,GAElBP,KAAK,KAAK,OAAV,GACIZ,KAAK,CAACiB,OAAN,CAAcG,KAAd,CAAoBD,OADxB,GAEIP,KAAK,KAAK,SAAV,GACIZ,KAAK,CAACiB,OAAN,CAAcI,OAAd,CAAsBC,IAD1B,GAEI,aANd;AAQA,QAAMC,UAAU,GAAG,iBAAI,CACnBR,MAAM,CAACd,IADY,EAEnB;AAAEe,IAAAA;AAAF,GAFmB,EAGnBH,KAHmB,CAAJ,CAAnB;AAMA,sBACI,6BAAC,cAAD;AACI,IAAA,GAAG,EAAEF,GADT;AAEI,IAAA,UAAU,EAAEK,eAFhB;AAGI,IAAA,SAAS,EAAE,CAHf;AAII,IAAA,KAAK,EAAEO,UAJX;AAKI,IAAA,MAAM,EAAE;AALZ,KAMQT,UANR,EADJ;AAUH,CAnCc,CAAf;;eAqCeP,M","sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';\nimport Paper from '../Paper';\nimport { css, useTheme } from '../styles';\nimport type AppBarProps from './AppBarProps';\n\ntype AppBarStyleKeys = 'root';\n\ntype AppBarStyles = NamedStylesStringUnion<AppBarStyleKeys>;\n\nconst useStyles: UseStyles<AppBarStyles> = function (): AppBarStyles {\n const theme = useTheme();\n\n return {\n root: {\n flexDirection: 'column',\n flexShrink: 0,\n width: '100%',\n zIndex: theme.zIndex.appBar,\n },\n };\n};\n\nconst AppBar = React.forwardRef<View, AppBarProps>(function AppBar(props, ref) {\n const {\n color = 'default',\n style,\n ...otherProps\n } = props;\n\n const theme = useTheme();\n\n const styles = useStyles();\n\n const backgroundColor = color === 'default'\n ? theme.palette.background.default\n : color === 'paper'\n ? theme.palette.paper.default\n : color === 'primary'\n ? theme.palette.primary.main\n : 'transparent';\n\n const paperStyle = css([\n styles.root,\n { backgroundColor },\n style,\n ]);\n\n return (\n <Paper\n ref={ref}\n colorValue={backgroundColor}\n elevation={0}\n style={paperStyle}\n square={true}\n {...otherProps}\n />\n );\n});\n\nexport default AppBar;\n"]}
@@ -13,6 +13,8 @@ var _styles = require("../styles");
13
13
 
14
14
  var _hooks = require("../hooks");
15
15
 
16
+ var _PaperStylesProvider = _interopRequireDefault(require("./PaperStylesProvider"));
17
+
16
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
19
 
18
20
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
@@ -20,6 +22,7 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
20
22
  const Paper = /*#__PURE__*/_react.default.forwardRef(function Paper(props, ref) {
21
23
  const {
22
24
  color = 'default',
25
+ colorValue,
23
26
  elevation = 1,
24
27
  style: styleProp,
25
28
  square = false,
@@ -27,8 +30,9 @@ const Paper = /*#__PURE__*/_react.default.forwardRef(function Paper(props, ref)
27
30
  ...otherProps
28
31
  } = props;
29
32
  const theme = (0, _styles.useTheme)();
33
+ const backgroundColor = colorValue !== null && colorValue !== void 0 ? colorValue : theme.palette.paper[color];
30
34
  const rootStyle = {
31
- backgroundColor: theme.palette.paper[color]
35
+ backgroundColor
32
36
  };
33
37
  const roundedStyle = {
34
38
  borderRadius: theme.shape.roundness
@@ -40,10 +44,14 @@ const Paper = /*#__PURE__*/_react.default.forwardRef(function Paper(props, ref)
40
44
  borderColor: theme.palette.divider
41
45
  };
42
46
  const style = (0, _styles.css)([rootStyle, variant === 'elevation' ? elevationStyle : outlinedStyle, !square ? roundedStyle : undefined, styleProp]);
43
- return /*#__PURE__*/_react.default.createElement(_reactNative.View, _extends({
47
+ return /*#__PURE__*/_react.default.createElement(_PaperStylesProvider.default, {
48
+ value: {
49
+ backgroundColor
50
+ }
51
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, _extends({
44
52
  ref: ref,
45
53
  style: style
46
- }, otherProps));
54
+ }, otherProps)));
47
55
  });
48
56
 
49
57
  var _default = Paper;
@@ -1 +1 @@
1
- {"version":3,"sources":["Paper.tsx"],"names":["Paper","React","forwardRef","props","ref","color","elevation","style","styleProp","square","variant","otherProps","theme","rootStyle","backgroundColor","palette","paper","roundedStyle","borderRadius","shape","roundness","elevationStyle","outlinedStyle","borderWidth","StyleSheet","hairlineWidth","borderStyle","borderColor","divider","undefined"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;AAGA,MAAMA,KAAK,gBAAGC,eAAMC,UAAN,CAAmC,SAASF,KAAT,CAAeG,KAAf,EAAsBC,GAAtB,EAA2B;AACxE,QAAM;AACFC,IAAAA,KAAK,GAAG,SADN;AAEFC,IAAAA,SAAS,GAAG,CAFV;AAGFC,IAAAA,KAAK,EAAEC,SAHL;AAIFC,IAAAA,MAAM,GAAG,KAJP;AAKFC,IAAAA,OAAO,GAAG,WALR;AAMF,OAAGC;AAND,MAOFR,KAPJ;AASA,QAAMS,KAAK,GAAG,uBAAd;AAEA,QAAMC,SAAS,GAAG;AACdC,IAAAA,eAAe,EAAEF,KAAK,CAACG,OAAN,CAAcC,KAAd,CAAoBX,KAApB;AADH,GAAlB;AAIA,QAAMY,YAAY,GAAG;AACjBC,IAAAA,YAAY,EAAEN,KAAK,CAACO,KAAN,CAAYC;AADT,GAArB;AAIA,QAAMC,cAAc,GAAG,8BAAkBf,SAAlB,CAAvB;AAEA,QAAMgB,aAAa,GAAG;AAClBC,IAAAA,WAAW,EAAEC,mBAAWC,aADN;AAElBC,IAAAA,WAAW,EAAE,OAFK;AAGlBC,IAAAA,WAAW,EAAEf,KAAK,CAACG,OAAN,CAAca;AAHT,GAAtB;AAMA,QAAMrB,KAAK,GAAG,iBAAI,CACdM,SADc,EAEdH,OAAO,KAAK,WAAZ,GAA0BW,cAA1B,GAA2CC,aAF7B,EAGd,CAACb,MAAD,GAAUQ,YAAV,GAAyBY,SAHX,EAIdrB,SAJc,CAAJ,CAAd;AAOA,sBACI,6BAAC,iBAAD;AACI,IAAA,GAAG,EAAEJ,GADT;AAEI,IAAA,KAAK,EAAEG;AAFX,KAGQI,UAHR,EADJ;AAOH,CA1Ca,CAAd;;eA4CeX,K","sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport { css, StyleSheet, useTheme } from '../styles';\nimport { useElevationStyle } from '../hooks';\nimport type PaperProps from './PaperProps';\n\nconst Paper = React.forwardRef<View, PaperProps>(function Paper(props, ref) {\n const {\n color = 'default',\n elevation = 1,\n style: styleProp,\n square = false,\n variant = 'elevation',\n ...otherProps\n } = props;\n\n const theme = useTheme();\n\n const rootStyle = {\n backgroundColor: theme.palette.paper[color],\n };\n\n const roundedStyle = {\n borderRadius: theme.shape.roundness,\n };\n\n const elevationStyle = useElevationStyle(elevation);\n\n const outlinedStyle = {\n borderWidth: StyleSheet.hairlineWidth,\n borderStyle: 'solid',\n borderColor: theme.palette.divider,\n };\n\n const style = css([\n rootStyle,\n variant === 'elevation' ? elevationStyle : outlinedStyle,\n !square ? roundedStyle : undefined,\n styleProp,\n ]);\n\n return (\n <View\n ref={ref}\n style={style}\n {...otherProps}\n />\n );\n});\n\nexport default Paper;\n"]}
1
+ {"version":3,"sources":["Paper.tsx"],"names":["Paper","React","forwardRef","props","ref","color","colorValue","elevation","style","styleProp","square","variant","otherProps","theme","backgroundColor","palette","paper","rootStyle","roundedStyle","borderRadius","shape","roundness","elevationStyle","outlinedStyle","borderWidth","StyleSheet","hairlineWidth","borderStyle","borderColor","divider","undefined"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;;;;;AAEA,MAAMA,KAAK,gBAAGC,eAAMC,UAAN,CAAmC,SAASF,KAAT,CAAeG,KAAf,EAAsBC,GAAtB,EAA2B;AACxE,QAAM;AACFC,IAAAA,KAAK,GAAG,SADN;AAEFC,IAAAA,UAFE;AAGFC,IAAAA,SAAS,GAAG,CAHV;AAIFC,IAAAA,KAAK,EAAEC,SAJL;AAKFC,IAAAA,MAAM,GAAG,KALP;AAMFC,IAAAA,OAAO,GAAG,WANR;AAOF,OAAGC;AAPD,MAQFT,KARJ;AAUA,QAAMU,KAAK,GAAG,uBAAd;AAEA,QAAMC,eAAe,GAAGR,UAAH,aAAGA,UAAH,cAAGA,UAAH,GAAiBO,KAAK,CAACE,OAAN,CAAcC,KAAd,CAAoBX,KAApB,CAAtC;AAEA,QAAMY,SAAS,GAAG;AAAEH,IAAAA;AAAF,GAAlB;AAEA,QAAMI,YAAY,GAAG;AACjBC,IAAAA,YAAY,EAAEN,KAAK,CAACO,KAAN,CAAYC;AADT,GAArB;AAIA,QAAMC,cAAc,GAAG,8BAAkBf,SAAlB,CAAvB;AAEA,QAAMgB,aAAa,GAAG;AAClBC,IAAAA,WAAW,EAAEC,mBAAWC,aADN;AAElBC,IAAAA,WAAW,EAAE,OAFK;AAGlBC,IAAAA,WAAW,EAAEf,KAAK,CAACE,OAAN,CAAcc;AAHT,GAAtB;AAMA,QAAMrB,KAAK,GAAG,iBAAI,CACdS,SADc,EAEdN,OAAO,KAAK,WAAZ,GAA0BW,cAA1B,GAA2CC,aAF7B,EAGd,CAACb,MAAD,GAAUQ,YAAV,GAAyBY,SAHX,EAIdrB,SAJc,CAAJ,CAAd;AAOA,sBACI,6BAAC,4BAAD;AACI,IAAA,KAAK,EAAE;AAAEK,MAAAA;AAAF;AADX,kBAGI,6BAAC,iBAAD;AACI,IAAA,GAAG,EAAEV,GADT;AAEI,IAAA,KAAK,EAAEI;AAFX,KAGQI,UAHR,EAHJ,CADJ;AAWH,CA/Ca,CAAd;;eAiDeZ,K","sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport { css, StyleSheet, useTheme } from '../styles';\nimport { useElevationStyle } from '../hooks';\nimport type PaperProps from './PaperProps';\nimport PaperStylesProvider from './PaperStylesProvider';\n\nconst Paper = React.forwardRef<View, PaperProps>(function Paper(props, ref) {\n const {\n color = 'default',\n colorValue,\n elevation = 1,\n style: styleProp,\n square = false,\n variant = 'elevation',\n ...otherProps\n } = props;\n\n const theme = useTheme();\n\n const backgroundColor = colorValue ?? theme.palette.paper[color];\n\n const rootStyle = { backgroundColor };\n\n const roundedStyle = {\n borderRadius: theme.shape.roundness,\n };\n\n const elevationStyle = useElevationStyle(elevation);\n\n const outlinedStyle = {\n borderWidth: StyleSheet.hairlineWidth,\n borderStyle: 'solid',\n borderColor: theme.palette.divider,\n };\n\n const style = css([\n rootStyle,\n variant === 'elevation' ? elevationStyle : outlinedStyle,\n !square ? roundedStyle : undefined,\n styleProp,\n ]);\n\n return (\n <PaperStylesProvider\n value={{ backgroundColor }}\n >\n <View\n ref={ref}\n style={style}\n {...otherProps}\n />\n </PaperStylesProvider>\n );\n});\n\nexport default Paper;\n"]}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.PaperStylesContext = void 0;
7
+
8
+ var _react = require("react");
9
+
10
+ const PaperStylesContext = /*#__PURE__*/(0, _react.createContext)(null);
11
+ exports.PaperStylesContext = PaperStylesContext;
12
+ var _default = PaperStylesContext.Provider;
13
+ exports.default = _default;
14
+ //# sourceMappingURL=PaperStylesProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["PaperStylesProvider.tsx"],"names":["PaperStylesContext","Provider"],"mappings":";;;;;;;AAAA;;AAMO,MAAMA,kBAAkB,gBAAG,0BAAkC,IAAlC,CAA3B;;eAEQA,kBAAkB,CAACC,Q","sourcesContent":["import { createContext } from 'react';\n\nexport type PaperStyles = {\n backgroundColor: string;\n}\n\nexport const PaperStylesContext = createContext<PaperStyles | null>(null);\n\nexport default PaperStylesContext.Provider;\n"]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = usePaperStyles;
7
+
8
+ var _react = require("react");
9
+
10
+ var _PaperStylesProvider = require("./PaperStylesProvider");
11
+
12
+ function usePaperStyles() {
13
+ return (0, _react.useContext)(_PaperStylesProvider.PaperStylesContext);
14
+ }
15
+
16
+ ;
17
+ //# sourceMappingURL=usePaperStyles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["usePaperStyles.ts"],"names":["usePaperStyles","PaperStylesContext"],"mappings":";;;;;;;AAAA;;AACA;;AAEe,SAASA,cAAT,GAA0B;AACrC,SAAO,uBAAWC,uCAAX,CAAP;AACH;;AAAA","sourcesContent":["import { useContext } from 'react';\nimport { PaperStylesContext } from './PaperStylesProvider';\n\nexport default function usePaperStyles() {\n return useContext(PaperStylesContext);\n};\n"]}
@@ -11,12 +11,13 @@ var _reactNative = require("react-native");
11
11
 
12
12
  var _styles = require("../styles");
13
13
 
14
+ var _usePaperStyles = _interopRequireDefault(require("../Paper/usePaperStyles"));
15
+
14
16
  var _utils = require("./utils");
15
17
 
16
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
19
 
18
20
  const useStyles = function () {
19
- const theme = (0, _styles.useTheme)();
20
21
  return {
21
22
  background: {
22
23
  position: 'absolute',
@@ -25,15 +26,13 @@ const useStyles = function () {
25
26
  bottom: 0,
26
27
  right: 0,
27
28
  width: 8,
28
- height: 2,
29
- backgroundColor: theme.palette.background.default
29
+ height: 4
30
30
  },
31
31
  backgroundText: {
32
32
  position: 'absolute',
33
33
  left: 18,
34
34
  paddingHorizontal: 0,
35
- color: 'transparent',
36
- backgroundColor: theme.palette.background.default
35
+ color: 'transparent'
37
36
  },
38
37
  placeholder: {
39
38
  position: 'absolute',
@@ -44,6 +43,8 @@ const useStyles = function () {
44
43
  };
45
44
 
46
45
  const InputLabel = props => {
46
+ var _paperStyles$backgrou;
47
+
47
48
  const {
48
49
  activeColor,
49
50
  animatedError,
@@ -65,7 +66,12 @@ const InputLabel = props => {
65
66
  topPosition,
66
67
  value
67
68
  } = props;
69
+ const theme = (0, _styles.useTheme)();
68
70
  const styles = useStyles();
71
+ const paperStyles = (0, _usePaperStyles.default)();
72
+ const backgroundStyle = {
73
+ backgroundColor: (_paperStyles$backgrou = paperStyles === null || paperStyles === void 0 ? void 0 : paperStyles.backgroundColor) !== null && _paperStyles$backgrou !== void 0 ? _paperStyles$backgrou : theme.palette.background.default
74
+ };
69
75
  const hasFocus = hasActiveOutline || value;
70
76
  const opacity = animatedLabel.interpolate({
71
77
  inputRange: [0, 1],
@@ -106,7 +112,7 @@ const InputLabel = props => {
106
112
  }, [/*#__PURE__*/_react.default.createElement(_reactNative.Animated.View, {
107
113
  key: 'labelBackground-view',
108
114
  pointerEvents: 'none',
109
- style: [styles.background, {
115
+ style: [styles.background, backgroundStyle, {
110
116
  opacity,
111
117
  transform: [{
112
118
  translateX: animatedLabel.interpolate({
@@ -117,7 +123,7 @@ const InputLabel = props => {
117
123
  }]
118
124
  }), /*#__PURE__*/_react.default.createElement(_reactNative.Animated.Text, {
119
125
  key: 'labelBackground-text',
120
- style: [styles.placeholder, styles.backgroundText, labelStyle, {
126
+ style: [styles.placeholder, styles.backgroundText, backgroundStyle, labelStyle, {
121
127
  top: topPosition + 1,
122
128
  opacity,
123
129
  transform: [...labelStyle.transform, {
@@ -1 +1 @@
1
- {"version":3,"sources":["InputLabel.tsx"],"names":["useStyles","theme","background","position","top","left","bottom","right","width","height","backgroundColor","palette","default","backgroundText","paddingHorizontal","color","placeholder","inputPaddingHorizontal","InputLabel","props","activeColor","animatedError","animatedLabel","error","errorColor","focused","fontSize","hasActiveOutline","label","labelLayout","labelScale","labelTranslateX","labelTranslateY","onLayoutAnimatedText","paddingOffset","placeholderColor","placeholderOpacity","topPosition","value","styles","hasFocus","opacity","interpolate","inputRange","outputRange","labelTranslationX","transform","translateX","labelStyle","translateY","scale","StyleSheet","absoluteFill","measured","scaleY","textAlign"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Animated, LayoutChangeEvent, StyleSheet } from 'react-native';\nimport { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';\nimport { useTheme } from '../styles';\nimport { inputPaddingHorizontal } from './utils';\n\ninterface LabelProps {\n activeColor: string;\n animatedError: Animated.Value;\n animatedLabel: Animated.Value;\n error?: boolean;\n errorColor?: string;\n focused?: boolean;\n fontSize?: number;\n hasActiveOutline?: boolean;\n label?: string;\n labelLayout: { measured: boolean; width: number; height: number };\n labelScale: number;\n labelTranslateX: number;\n labelTranslateY: number;\n onLayoutAnimatedText: (event: LayoutChangeEvent) => void;\n paddingOffset?: { paddingLeft: number; paddingRight: number };\n placeholder?: string;\n placeholderColor?: string;\n placeholderOpacity: number | Animated.AnimatedInterpolation;\n topPosition: number;\n value?: string;\n}\n\ntype InputLabelStyles = NamedStylesStringUnion<'background' | 'backgroundText' | 'placeholder'>;\n\nconst useStyles: UseStyles<InputLabelStyles> = function (): InputLabelStyles {\n const theme = useTheme();\n\n return {\n background: {\n position: 'absolute',\n top: 6,\n left: 10,\n bottom: 0,\n right: 0,\n width: 8,\n height: 2,\n backgroundColor: theme.palette.background.default,\n },\n backgroundText: {\n position: 'absolute',\n left: 18,\n paddingHorizontal: 0,\n color: 'transparent',\n backgroundColor: theme.palette.background.default,\n },\n placeholder: {\n position: 'absolute',\n left: 0,\n paddingHorizontal: inputPaddingHorizontal,\n },\n };\n};\n\nconst InputLabel = (props: LabelProps) => {\n const {\n activeColor,\n animatedError,\n animatedLabel,\n error = false,\n errorColor,\n focused,\n fontSize,\n hasActiveOutline,\n label,\n labelLayout,\n labelScale,\n labelTranslateX,\n labelTranslateY,\n onLayoutAnimatedText,\n paddingOffset,\n placeholderColor,\n placeholderOpacity,\n topPosition,\n value,\n } = props;\n\n const styles = useStyles();\n\n const hasFocus = hasActiveOutline || value;\n const opacity = animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [hasFocus ? 1 : 0, 0],\n });\n\n const labelTranslationX = {\n transform: [\n {\n translateX: animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [labelTranslateX, 0 || 0],\n }),\n },\n ],\n };\n\n const labelStyle = {\n fontSize,\n transform: [\n {\n translateX: animatedError.interpolate({\n inputRange: [0, 0.5, 1],\n outputRange: [0, value && error ? 4 : 0, 0],\n }),\n },\n {\n translateY: animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [labelTranslateY, 0],\n }),\n },\n {\n scale: animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [labelScale, 1],\n }),\n },\n ],\n };\n\n return (label ? (\n <Animated.View\n pointerEvents={'none'}\n style={[\n StyleSheet.absoluteFill,\n {\n opacity: value || focused ? (labelLayout.measured ? 1 : 0) : 1,\n },\n labelTranslationX,\n ]}\n >\n {[\n <Animated.View\n key={'labelBackground-view'}\n pointerEvents={'none'}\n style={[\n styles.background,\n {\n opacity,\n transform: [\n {\n translateX: animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [-labelTranslateX, 0],\n }),\n },\n ],\n },\n ]}\n />,\n <Animated.Text\n key={'labelBackground-text'}\n style={[\n styles.placeholder,\n styles.backgroundText,\n labelStyle,\n {\n top: topPosition + 1,\n opacity,\n transform: [\n ...labelStyle.transform,\n {\n scaleY: animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [0.2, 1],\n }),\n },\n ],\n },\n ]}\n numberOfLines={1}\n >\n {label}\n </Animated.Text>,\n ]}\n <Animated.Text\n onLayout={onLayoutAnimatedText}\n style={[\n styles.placeholder,\n labelStyle,\n paddingOffset,\n {\n textAlign: 'left',\n top: topPosition,\n color: error && errorColor ? errorColor : activeColor,\n opacity: animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [hasActiveOutline ? 1 : 0, 0],\n }),\n },\n ]}\n numberOfLines={1}\n >\n {label}\n </Animated.Text>\n <Animated.Text\n style={[\n styles.placeholder,\n labelStyle,\n paddingOffset,\n {\n textAlign: 'left',\n top: topPosition,\n color: error && errorColor ? errorColor : placeholderColor,\n opacity: placeholderOpacity,\n },\n ]}\n numberOfLines={1}\n >\n {label}\n </Animated.Text>\n </Animated.View>\n ) : null);\n};\n\nexport default InputLabel;\n"]}
1
+ {"version":3,"sources":["InputLabel.tsx"],"names":["useStyles","background","position","top","left","bottom","right","width","height","backgroundText","paddingHorizontal","color","placeholder","inputPaddingHorizontal","InputLabel","props","activeColor","animatedError","animatedLabel","error","errorColor","focused","fontSize","hasActiveOutline","label","labelLayout","labelScale","labelTranslateX","labelTranslateY","onLayoutAnimatedText","paddingOffset","placeholderColor","placeholderOpacity","topPosition","value","theme","styles","paperStyles","backgroundStyle","backgroundColor","palette","default","hasFocus","opacity","interpolate","inputRange","outputRange","labelTranslationX","transform","translateX","labelStyle","translateY","scale","StyleSheet","absoluteFill","measured","scaleY","textAlign"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Animated, LayoutChangeEvent, StyleSheet } from 'react-native';\nimport { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';\nimport { useTheme } from '../styles';\nimport usePaperStyles from '../Paper/usePaperStyles';\nimport { inputPaddingHorizontal } from './utils';\n\ninterface LabelProps {\n activeColor: string;\n animatedError: Animated.Value;\n animatedLabel: Animated.Value;\n error?: boolean;\n errorColor?: string;\n focused?: boolean;\n fontSize?: number;\n hasActiveOutline?: boolean;\n label?: string;\n labelLayout: { measured: boolean; width: number; height: number };\n labelScale: number;\n labelTranslateX: number;\n labelTranslateY: number;\n onLayoutAnimatedText: (event: LayoutChangeEvent) => void;\n paddingOffset?: { paddingLeft: number; paddingRight: number };\n placeholder?: string;\n placeholderColor?: string;\n placeholderOpacity: number | Animated.AnimatedInterpolation;\n topPosition: number;\n value?: string;\n}\n\ntype InputLabelStyles = NamedStylesStringUnion<'background' | 'backgroundText' | 'placeholder'>;\n\nconst useStyles: UseStyles<InputLabelStyles> = function (): InputLabelStyles {\n return {\n background: {\n position: 'absolute',\n top: 6,\n left: 10,\n bottom: 0,\n right: 0,\n width: 8,\n height: 4,\n },\n backgroundText: {\n position: 'absolute',\n left: 18,\n paddingHorizontal: 0,\n color: 'transparent',\n },\n placeholder: {\n position: 'absolute',\n left: 0,\n paddingHorizontal: inputPaddingHorizontal,\n },\n };\n};\n\nconst InputLabel = (props: LabelProps) => {\n const {\n activeColor,\n animatedError,\n animatedLabel,\n error = false,\n errorColor,\n focused,\n fontSize,\n hasActiveOutline,\n label,\n labelLayout,\n labelScale,\n labelTranslateX,\n labelTranslateY,\n onLayoutAnimatedText,\n paddingOffset,\n placeholderColor,\n placeholderOpacity,\n topPosition,\n value,\n } = props;\n\n const theme = useTheme();\n\n const styles = useStyles();\n\n const paperStyles = usePaperStyles();\n\n const backgroundStyle = {\n backgroundColor: paperStyles?.backgroundColor ?? theme.palette.background.default,\n };\n\n const hasFocus = hasActiveOutline || value;\n const opacity = animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [hasFocus ? 1 : 0, 0],\n });\n\n const labelTranslationX = {\n transform: [\n {\n translateX: animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [labelTranslateX, 0 || 0],\n }),\n },\n ],\n };\n\n const labelStyle = {\n fontSize,\n transform: [\n {\n translateX: animatedError.interpolate({\n inputRange: [0, 0.5, 1],\n outputRange: [0, value && error ? 4 : 0, 0],\n }),\n },\n {\n translateY: animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [labelTranslateY, 0],\n }),\n },\n {\n scale: animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [labelScale, 1],\n }),\n },\n ],\n };\n\n return (label ? (\n <Animated.View\n pointerEvents={'none'}\n style={[\n StyleSheet.absoluteFill,\n {\n opacity: value || focused ? (labelLayout.measured ? 1 : 0) : 1,\n },\n labelTranslationX,\n ]}\n >\n {[\n <Animated.View\n key={'labelBackground-view'}\n pointerEvents={'none'}\n style={[\n styles.background,\n backgroundStyle,\n {\n opacity,\n transform: [\n {\n translateX: animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [-labelTranslateX, 0],\n }),\n },\n ],\n },\n ]}\n />,\n <Animated.Text\n key={'labelBackground-text'}\n style={[\n styles.placeholder,\n styles.backgroundText,\n backgroundStyle,\n labelStyle,\n {\n top: topPosition + 1,\n opacity,\n transform: [\n ...labelStyle.transform,\n {\n scaleY: animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [0.2, 1],\n }),\n },\n ],\n },\n ]}\n numberOfLines={1}\n >\n {label}\n </Animated.Text>,\n ]}\n <Animated.Text\n onLayout={onLayoutAnimatedText}\n style={[\n styles.placeholder,\n labelStyle,\n paddingOffset,\n {\n textAlign: 'left',\n top: topPosition,\n color: error && errorColor ? errorColor : activeColor,\n opacity: animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [hasActiveOutline ? 1 : 0, 0],\n }),\n },\n ]}\n numberOfLines={1}\n >\n {label}\n </Animated.Text>\n <Animated.Text\n style={[\n styles.placeholder,\n labelStyle,\n paddingOffset,\n {\n textAlign: 'left',\n top: topPosition,\n color: error && errorColor ? errorColor : placeholderColor,\n opacity: placeholderOpacity,\n },\n ]}\n numberOfLines={1}\n >\n {label}\n </Animated.Text>\n </Animated.View>\n ) : null);\n};\n\nexport default InputLabel;\n"]}
@@ -29,7 +29,6 @@ const useStyles = function () {
29
29
  left: 0,
30
30
  right: 0,
31
31
  bottom: 0,
32
- backgroundColor: theme.palette.background.default,
33
32
  borderRadius: theme.shape.roundness
34
33
  },
35
34
  input: {
@@ -1 +1 @@
1
- {"version":3,"sources":["OutlinedTextField.tsx"],"names":["useStyles","theme","outline","position","left","right","bottom","backgroundColor","palette","background","default","borderRadius","shape","roundness","input","flexGrow","paddingHorizontal","inputPaddingHorizontal","textAlignVertical","textAlign","zIndex","textField","iconContainer","width","height","justifyContent","alignItems","OutlinedTextField","React","forwardRef","props","ref","animatedError","animatedLabel","disabled","error","focused","forceFocus","icon","keyboardType","label","labelLayout","onBlur","onChangeText","onFocus","onIconPress","onLayoutAnimatedText","onSubmitEditing","placeholder","secureTextEntry","style","value","styles","hasActiveOutline","inputTextColor","tertiary","main","primary","activeColor","warning","accent","placeholderColor","text","hint","outlineColor","border","errorColor","typography","body2","fontSize","unitless","labelScale","labelFontSize","labelWidth","labelHeight","labelHalfWidth","labelHalfHeight","labelTranslateX","minInputHeight","defaultHeight","labelPaddingTop","inputHeight","topPosition","Math","floor","iconTopPosition","iconSize","labelYOffset","labelTranslateY","placeholderOpacity","interpolate","inputRange","outputRange","measured","labelProps","outlineStyle","borderWidth","borderColor","top","textInputStyle","color","marginRight","paddingRight","Platform","OS","outlineWidth","containerStyle","paddingTop","minHeight","iconContainerStyle","onIconButtonPress"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Animated, LayoutChangeEvent, Platform, TextInput, View } from 'react-native';\nimport { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';\nimport { css, useTheme } from '../styles';\nimport IconButton from '../IconButton';\nimport TextFieldProps from './TextFieldProps';\nimport InputLabel from './InputLabel';\nimport {\n defaultHeight,\n iconSize,\n inputPaddingHorizontal,\n labelFontSize,\n labelPaddingTop,\n labelYOffset,\n} from './utils';\n\ninterface OutlinedTextFieldProps extends TextFieldProps {\n animatedError: Animated.Value;\n animatedLabel: Animated.Value;\n focused: boolean;\n forceFocus: () => void;\n labelLayout: { measured: boolean; width: number; height: number };\n onLayoutAnimatedText: (event: LayoutChangeEvent) => void;\n}\n\ntype OutlinedTextFieldStyles = NamedStylesStringUnion<'outline' | 'input' | 'iconContainer'>;\n\nconst useStyles: UseStyles<OutlinedTextFieldStyles> = function (): OutlinedTextFieldStyles {\n const theme = useTheme();\n\n return {\n outline: {\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: theme.palette.background.default,\n borderRadius: theme.shape.roundness,\n },\n input: {\n flexGrow: 1,\n paddingHorizontal: inputPaddingHorizontal,\n textAlignVertical: 'center',\n textAlign: 'left',\n zIndex: theme.zIndex.textField,\n },\n iconContainer: {\n position: 'absolute',\n width: 24,\n height: 24,\n justifyContent: 'center',\n alignItems: 'center',\n right: 12,\n },\n };\n};\n\nconst OutlinedTextField = React.forwardRef<TextInput, OutlinedTextFieldProps>(function OutlinedTextField(props, ref) {\n const {\n animatedError,\n animatedLabel,\n disabled,\n error,\n focused,\n forceFocus,\n icon,\n keyboardType,\n label,\n labelLayout,\n onBlur,\n onChangeText,\n onFocus,\n onIconPress,\n onLayoutAnimatedText,\n onSubmitEditing,\n placeholder,\n secureTextEntry,\n style,\n value,\n } = props;\n\n const theme = useTheme();\n const styles = useStyles();\n\n const hasActiveOutline = focused || error;\n const inputTextColor = disabled ? theme.palette.tertiary.main : theme.palette.primary.main;\n const activeColor = error\n ? theme.palette.warning.main\n : disabled\n ? theme.palette.tertiary.main\n : theme.palette.accent.main;\n const placeholderColor = disabled ? theme.palette.tertiary.main : theme.palette.text.hint;\n const outlineColor = disabled ? theme.palette.border : theme.palette.border;\n const errorColor = disabled ? theme.palette.tertiary.main : theme.palette.warning.main;\n\n const typography = theme.typography.body2;\n const fontSize = typography.fontSize.unitless;\n\n const labelScale = labelFontSize / fontSize;\n const labelWidth = labelLayout.width;\n const labelHeight = labelLayout.height;\n const labelHalfWidth = labelWidth / 2;\n const labelHalfHeight = labelHeight / 2;\n\n const labelTranslateX = -1 * (labelHalfWidth - (labelScale * labelWidth) / 2 - (fontSize - labelFontSize) * labelScale);\n const minInputHeight = defaultHeight - labelPaddingTop;\n const inputHeight = labelHeight < minInputHeight ? minInputHeight : labelHeight;\n const topPosition = Math.floor(((inputHeight > 0 ? inputHeight : 0) - labelHeight) / 2 + labelPaddingTop);\n const iconTopPosition = (defaultHeight - (label ? 0 : labelPaddingTop) - iconSize - (label ? labelYOffset : 0)) / 2;\n const labelTranslateY = -labelHalfHeight - (topPosition + labelYOffset);\n\n const placeholderOpacity = hasActiveOutline\n ? animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [hasActiveOutline ? 0 : 1, 1],\n })\n : labelLayout.measured ? 1 : 0;\n\n const labelProps = {\n activeColor,\n error,\n errorColor,\n fontSize,\n hasActiveOutline,\n label,\n labelScale,\n labelTranslateX,\n labelTranslateY,\n onLayoutAnimatedText,\n placeholderColor,\n placeholderOpacity,\n topPosition,\n };\n\n const outlineStyle = css([\n styles.outline,\n {\n borderWidth: hasActiveOutline ? 2 : 1,\n borderColor: error ? errorColor : (hasActiveOutline ? activeColor : outlineColor),\n top: label ? 6 : 0,\n },\n ]);\n\n const textInputStyle = css([\n styles.input,\n {\n fontSize,\n color: inputTextColor,\n height: inputHeight,\n },\n icon && {\n marginRight: iconSize + 20,\n paddingRight: 0,\n },\n Platform.OS === 'web' && {\n //@ts-ignore\n outlineWidth: 0,\n },\n ]);\n\n const containerStyle = css([\n {\n paddingTop: label ? labelPaddingTop : 0,\n minHeight: label ? defaultHeight : defaultHeight + labelYOffset,\n },\n ]);\n\n const iconContainerStyle = css([\n styles.iconContainer,\n { top: iconTopPosition },\n ]);\n\n const onIconButtonPress = () => {\n forceFocus();\n onIconPress?.();\n };\n\n return (\n <View style={style}>\n <View\n pointerEvents={'none'}\n style={outlineStyle}\n />\n <View style={containerStyle}>\n {label ? (\n <InputLabel\n animatedLabel={animatedLabel}\n animatedError={animatedError}\n focused={focused}\n labelLayout={labelLayout}\n placeholder={placeholder}\n value={value}\n {...labelProps}\n />\n ) : null}\n <TextInput\n autoCapitalize={'none'}\n autoCorrect={false}\n disableFullscreenUI={true}\n ref={ref}\n onChangeText={onChangeText}\n placeholder={placeholder}\n placeholderTextColor={placeholderColor}\n editable={!disabled}\n selectionColor={activeColor}\n onFocus={onFocus}\n onBlur={onBlur}\n onSubmitEditing={onSubmitEditing}\n keyboardType={keyboardType}\n secureTextEntry={secureTextEntry}\n underlineColorAndroid={'transparent'}\n style={textInputStyle}\n value={value}\n />\n </View>\n {icon ? (\n <View style={iconContainerStyle}>\n <IconButton\n children={icon}\n onPress={onIconButtonPress}\n />\n </View>\n ) : null}\n </View>\n );\n});\n\nexport default OutlinedTextField;\n"]}
1
+ {"version":3,"sources":["OutlinedTextField.tsx"],"names":["useStyles","theme","outline","position","left","right","bottom","borderRadius","shape","roundness","input","flexGrow","paddingHorizontal","inputPaddingHorizontal","textAlignVertical","textAlign","zIndex","textField","iconContainer","width","height","justifyContent","alignItems","OutlinedTextField","React","forwardRef","props","ref","animatedError","animatedLabel","disabled","error","focused","forceFocus","icon","keyboardType","label","labelLayout","onBlur","onChangeText","onFocus","onIconPress","onLayoutAnimatedText","onSubmitEditing","placeholder","secureTextEntry","style","value","styles","hasActiveOutline","inputTextColor","palette","tertiary","main","primary","activeColor","warning","accent","placeholderColor","text","hint","outlineColor","border","errorColor","typography","body2","fontSize","unitless","labelScale","labelFontSize","labelWidth","labelHeight","labelHalfWidth","labelHalfHeight","labelTranslateX","minInputHeight","defaultHeight","labelPaddingTop","inputHeight","topPosition","Math","floor","iconTopPosition","iconSize","labelYOffset","labelTranslateY","placeholderOpacity","interpolate","inputRange","outputRange","measured","labelProps","outlineStyle","borderWidth","borderColor","top","textInputStyle","color","marginRight","paddingRight","Platform","OS","outlineWidth","containerStyle","paddingTop","minHeight","iconContainerStyle","onIconButtonPress"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Animated, LayoutChangeEvent, Platform, TextInput, View } from 'react-native';\nimport { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';\nimport { css, useTheme } from '../styles';\nimport IconButton from '../IconButton';\nimport TextFieldProps from './TextFieldProps';\nimport InputLabel from './InputLabel';\nimport {\n defaultHeight,\n iconSize,\n inputPaddingHorizontal,\n labelFontSize,\n labelPaddingTop,\n labelYOffset,\n} from './utils';\n\ninterface OutlinedTextFieldProps extends TextFieldProps {\n animatedError: Animated.Value;\n animatedLabel: Animated.Value;\n focused: boolean;\n forceFocus: () => void;\n labelLayout: { measured: boolean; width: number; height: number };\n onLayoutAnimatedText: (event: LayoutChangeEvent) => void;\n}\n\ntype OutlinedTextFieldStyles = NamedStylesStringUnion<'outline' | 'input' | 'iconContainer'>;\n\nconst useStyles: UseStyles<OutlinedTextFieldStyles> = function (): OutlinedTextFieldStyles {\n const theme = useTheme();\n\n return {\n outline: {\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n borderRadius: theme.shape.roundness,\n },\n input: {\n flexGrow: 1,\n paddingHorizontal: inputPaddingHorizontal,\n textAlignVertical: 'center',\n textAlign: 'left',\n zIndex: theme.zIndex.textField,\n },\n iconContainer: {\n position: 'absolute',\n width: 24,\n height: 24,\n justifyContent: 'center',\n alignItems: 'center',\n right: 12,\n },\n };\n};\n\nconst OutlinedTextField = React.forwardRef<TextInput, OutlinedTextFieldProps>(function OutlinedTextField(props, ref) {\n const {\n animatedError,\n animatedLabel,\n disabled,\n error,\n focused,\n forceFocus,\n icon,\n keyboardType,\n label,\n labelLayout,\n onBlur,\n onChangeText,\n onFocus,\n onIconPress,\n onLayoutAnimatedText,\n onSubmitEditing,\n placeholder,\n secureTextEntry,\n style,\n value,\n } = props;\n\n const theme = useTheme();\n\n const styles = useStyles();\n\n const hasActiveOutline = focused || error;\n const inputTextColor = disabled ? theme.palette.tertiary.main : theme.palette.primary.main;\n const activeColor = error\n ? theme.palette.warning.main\n : disabled\n ? theme.palette.tertiary.main\n : theme.palette.accent.main;\n const placeholderColor = disabled ? theme.palette.tertiary.main : theme.palette.text.hint;\n const outlineColor = disabled ? theme.palette.border : theme.palette.border;\n const errorColor = disabled ? theme.palette.tertiary.main : theme.palette.warning.main;\n\n const typography = theme.typography.body2;\n const fontSize = typography.fontSize.unitless;\n\n const labelScale = labelFontSize / fontSize;\n const labelWidth = labelLayout.width;\n const labelHeight = labelLayout.height;\n const labelHalfWidth = labelWidth / 2;\n const labelHalfHeight = labelHeight / 2;\n\n const labelTranslateX = -1 * (labelHalfWidth - (labelScale * labelWidth) / 2 - (fontSize - labelFontSize) * labelScale);\n const minInputHeight = defaultHeight - labelPaddingTop;\n const inputHeight = labelHeight < minInputHeight ? minInputHeight : labelHeight;\n const topPosition = Math.floor(((inputHeight > 0 ? inputHeight : 0) - labelHeight) / 2 + labelPaddingTop);\n const iconTopPosition = (defaultHeight - (label ? 0 : labelPaddingTop) - iconSize - (label ? labelYOffset : 0)) / 2;\n const labelTranslateY = -labelHalfHeight - (topPosition + labelYOffset);\n\n const placeholderOpacity = hasActiveOutline\n ? animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [hasActiveOutline ? 0 : 1, 1],\n })\n : labelLayout.measured ? 1 : 0;\n\n const labelProps = {\n activeColor,\n error,\n errorColor,\n fontSize,\n hasActiveOutline,\n label,\n labelScale,\n labelTranslateX,\n labelTranslateY,\n onLayoutAnimatedText,\n placeholderColor,\n placeholderOpacity,\n topPosition,\n };\n\n const outlineStyle = css([\n styles.outline,\n {\n borderWidth: hasActiveOutline ? 2 : 1,\n borderColor: error ? errorColor : (hasActiveOutline ? activeColor : outlineColor),\n top: label ? 6 : 0,\n },\n ]);\n\n const textInputStyle = css([\n styles.input,\n {\n fontSize,\n color: inputTextColor,\n height: inputHeight,\n },\n icon && {\n marginRight: iconSize + 20,\n paddingRight: 0,\n },\n Platform.OS === 'web' && {\n //@ts-ignore\n outlineWidth: 0,\n },\n ]);\n\n const containerStyle = css([\n {\n paddingTop: label ? labelPaddingTop : 0,\n minHeight: label ? defaultHeight : defaultHeight + labelYOffset,\n },\n ]);\n\n const iconContainerStyle = css([\n styles.iconContainer,\n { top: iconTopPosition },\n ]);\n\n const onIconButtonPress = () => {\n forceFocus();\n onIconPress?.();\n };\n\n return (\n <View style={style}>\n <View\n pointerEvents={'none'}\n style={outlineStyle}\n />\n <View style={containerStyle}>\n {label ? (\n <InputLabel\n animatedLabel={animatedLabel}\n animatedError={animatedError}\n focused={focused}\n labelLayout={labelLayout}\n placeholder={placeholder}\n value={value}\n {...labelProps}\n />\n ) : null}\n <TextInput\n autoCapitalize={'none'}\n autoCorrect={false}\n disableFullscreenUI={true}\n ref={ref}\n onChangeText={onChangeText}\n placeholder={placeholder}\n placeholderTextColor={placeholderColor}\n editable={!disabled}\n selectionColor={activeColor}\n onFocus={onFocus}\n onBlur={onBlur}\n onSubmitEditing={onSubmitEditing}\n keyboardType={keyboardType}\n secureTextEntry={secureTextEntry}\n underlineColorAndroid={'transparent'}\n style={textInputStyle}\n value={value}\n />\n </View>\n {icon ? (\n <View style={iconContainerStyle}>\n <IconButton\n children={icon}\n onPress={onIconButtonPress}\n />\n </View>\n ) : null}\n </View>\n );\n});\n\nexport default OutlinedTextField;\n"]}
@@ -13,14 +13,9 @@ var _utils = require("../../utils");
13
13
 
14
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
15
 
16
- var _default = (0, _utils.createSvgIcon)( /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactNativeSvg.Path, {
17
- fillRule: "evenodd",
18
- clipRule: "evenodd",
19
- d: "M3 7C3 4.79086 4.79086 3 7 3H13C15.2091 3 17 4.79086 17 7V13C17 15.2091 15.2091 17 13 17H7C4.79086 17 3 15.2091 3 13V7Z"
20
- }), /*#__PURE__*/_react.default.createElement(_reactNativeSvg.Path, {
21
- d: "M14.8303 7.53033L8.32856 14.0321L4.96967 10.6732L6.03033 9.61252L8.32856 11.9108L13.7697 6.46967L14.8303 7.53033Z",
22
- fill: "#FFFFFF"
23
- })), 'CheckboxChecked');
16
+ var _default = (0, _utils.createSvgIcon)( /*#__PURE__*/_react.default.createElement(_reactNativeSvg.Path, {
17
+ d: "M7 3C4.79086 3 3 4.79086 3 7V13C3 15.2091 4.79086 17 7 17H13C15.2091 17 17 15.2091 17 13V7C17 4.79086 15.2091 3 13 3H7ZM8.8589 13.5018L8.32857 14.0321L7.79824 13.5018L4.96967 10.6732L6.03033 9.61252L8.32857 11.9108L13.7697 6.46967L14.8303 7.53033L8.8589 13.5018Z"
18
+ }), 'CheckboxChecked');
24
19
 
25
20
  exports.default = _default;
26
21
  //# sourceMappingURL=CheckboxChecked.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["CheckboxChecked.tsx"],"names":[],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;eAEe,wCACX,6BAAC,cAAD,CAAO,QAAP,qBACI,6BAAC,oBAAD;AACI,EAAA,QAAQ,EAAC,SADb;AAEI,EAAA,QAAQ,EAAC,SAFb;AAGI,EAAA,CAAC,EAAC;AAHN,EADJ,eAMI,6BAAC,oBAAD;AACI,EAAA,CAAC,EAAC,mHADN;AAEI,EAAA,IAAI,EAAC;AAFT,EANJ,CADW,EAYX,iBAZW,C","sourcesContent":["import React from 'react';\nimport { Path } from 'react-native-svg';\nimport { createSvgIcon } from '../../utils';\n\nexport default createSvgIcon(\n <React.Fragment>\n <Path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3 7C3 4.79086 4.79086 3 7 3H13C15.2091 3 17 4.79086 17 7V13C17 15.2091 15.2091 17 13 17H7C4.79086 17 3 15.2091 3 13V7Z\"\n />\n <Path\n d=\"M14.8303 7.53033L8.32856 14.0321L4.96967 10.6732L6.03033 9.61252L8.32856 11.9108L13.7697 6.46967L14.8303 7.53033Z\"\n fill=\"#FFFFFF\"\n />\n </React.Fragment>,\n 'CheckboxChecked',\n);\n"]}
1
+ {"version":3,"sources":["CheckboxChecked.tsx"],"names":[],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;eAEe,wCACX,6BAAC,oBAAD;AACI,EAAA,CAAC,EAAC;AADN,EADW,EAIX,iBAJW,C","sourcesContent":["import React from 'react';\nimport { Path } from 'react-native-svg';\nimport { createSvgIcon } from '../../utils';\n\nexport default createSvgIcon(\n <Path\n d=\"M7 3C4.79086 3 3 4.79086 3 7V13C3 15.2091 4.79086 17 7 17H13C15.2091 17 17 15.2091 17 13V7C17 4.79086 15.2091 3 13 3H7ZM8.8589 13.5018L8.32857 14.0321L7.79824 13.5018L4.96967 10.6732L6.03033 9.61252L8.32857 11.9108L13.7697 6.46967L14.8303 7.53033L8.8589 13.5018Z\"\n />,\n 'CheckboxChecked',\n);\n"]}
@@ -12,15 +12,6 @@ const useStyles = function () {
12
12
  flexShrink: 0,
13
13
  width: '100%',
14
14
  zIndex: theme.zIndex.appBar
15
- },
16
- colorDefault: {
17
- backgroundColor: theme.palette.background.default
18
- },
19
- colorPrimary: {
20
- backgroundColor: theme.palette.primary.main
21
- },
22
- colorTransparent: {
23
- backgroundColor: 'transparent'
24
15
  }
25
16
  };
26
17
  };
@@ -31,14 +22,18 @@ const AppBar = /*#__PURE__*/React.forwardRef(function AppBar(props, ref) {
31
22
  style,
32
23
  ...otherProps
33
24
  } = props;
25
+ const theme = useTheme();
34
26
  const styles = useStyles();
35
- const colorStyle = color === 'default' ? styles.colorDefault : color === 'primary' ? styles.colorPrimary : styles.colorTransparent;
36
- const paperStyle = css([styles.root, colorStyle, style]);
27
+ const backgroundColor = color === 'default' ? theme.palette.background.default : color === 'paper' ? theme.palette.paper.default : color === 'primary' ? theme.palette.primary.main : 'transparent';
28
+ const paperStyle = css([styles.root, {
29
+ backgroundColor
30
+ }, style]);
37
31
  return /*#__PURE__*/React.createElement(Paper, _extends({
38
32
  ref: ref,
39
- square: true,
33
+ colorValue: backgroundColor,
40
34
  elevation: 0,
41
- style: paperStyle
35
+ style: paperStyle,
36
+ square: true
42
37
  }, otherProps));
43
38
  });
44
39
  export default AppBar;
@@ -1 +1 @@
1
- {"version":3,"sources":["AppBar.tsx"],"names":["React","Paper","css","useTheme","useStyles","theme","root","flexDirection","flexShrink","width","zIndex","appBar","colorDefault","backgroundColor","palette","background","default","colorPrimary","primary","main","colorTransparent","AppBar","forwardRef","props","ref","color","style","otherProps","styles","colorStyle","paperStyle"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAGA,OAAOC,KAAP,MAAkB,UAAlB;AACA,SAASC,GAAT,EAAcC,QAAd,QAA8B,WAA9B;;AAWA,MAAMC,SAAkC,GAAG,YAA0B;AACjE,QAAMC,KAAK,GAAGF,QAAQ,EAAtB;AAEA,SAAO;AACHG,IAAAA,IAAI,EAAE;AACFC,MAAAA,aAAa,EAAE,QADb;AAEFC,MAAAA,UAAU,EAAE,CAFV;AAGFC,MAAAA,KAAK,EAAE,MAHL;AAIFC,MAAAA,MAAM,EAAEL,KAAK,CAACK,MAAN,CAAaC;AAJnB,KADH;AAOHC,IAAAA,YAAY,EAAE;AACVC,MAAAA,eAAe,EAAER,KAAK,CAACS,OAAN,CAAcC,UAAd,CAAyBC;AADhC,KAPX;AAUHC,IAAAA,YAAY,EAAE;AACVJ,MAAAA,eAAe,EAAER,KAAK,CAACS,OAAN,CAAcI,OAAd,CAAsBC;AAD7B,KAVX;AAaHC,IAAAA,gBAAgB,EAAE;AACdP,MAAAA,eAAe,EAAE;AADH;AAbf,GAAP;AAiBH,CApBD;;AAsBA,MAAMQ,MAAM,gBAAGrB,KAAK,CAACsB,UAAN,CAAoC,SAASD,MAAT,CAAgBE,KAAhB,EAAuBC,GAAvB,EAA4B;AAC3E,QAAM;AACFC,IAAAA,KAAK,GAAG,SADN;AAEFC,IAAAA,KAFE;AAGF,OAAGC;AAHD,MAIFJ,KAJJ;AAMA,QAAMK,MAAM,GAAGxB,SAAS,EAAxB;AAEA,QAAMyB,UAAU,GAAGJ,KAAK,KAAK,SAAV,GACbG,MAAM,CAAChB,YADM,GAEba,KAAK,KAAK,SAAV,GACIG,MAAM,CAACX,YADX,GAEIW,MAAM,CAACR,gBAJjB;AAMA,QAAMU,UAAU,GAAG5B,GAAG,CAAC,CACnB0B,MAAM,CAACtB,IADY,EAEnBuB,UAFmB,EAGnBH,KAHmB,CAAD,CAAtB;AAMA,sBACI,oBAAC,KAAD;AACI,IAAA,GAAG,EAAEF,GADT;AAEI,IAAA,MAAM,MAFV;AAGI,IAAA,SAAS,EAAE,CAHf;AAII,IAAA,KAAK,EAAEM;AAJX,KAKQH,UALR,EADJ;AASH,CA9Bc,CAAf;AAgCA,eAAeN,MAAf","sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';\nimport Paper from '../Paper';\nimport { css, useTheme } from '../styles';\nimport type AppBarProps from './AppBarProps';\n\ntype AppBarStyleKeys =\n | 'root'\n | 'colorDefault'\n | 'colorPrimary'\n | 'colorTransparent';\n\ntype AppBarStyles = NamedStylesStringUnion<AppBarStyleKeys>;\n\nconst useStyles: UseStyles<AppBarStyles> = function (): AppBarStyles {\n const theme = useTheme();\n\n return {\n root: {\n flexDirection: 'column',\n flexShrink: 0,\n width: '100%',\n zIndex: theme.zIndex.appBar,\n },\n colorDefault: {\n backgroundColor: theme.palette.background.default,\n },\n colorPrimary: {\n backgroundColor: theme.palette.primary.main,\n },\n colorTransparent: {\n backgroundColor: 'transparent',\n },\n };\n};\n\nconst AppBar = React.forwardRef<View, AppBarProps>(function AppBar(props, ref) {\n const {\n color = 'default',\n style,\n ...otherProps\n } = props;\n\n const styles = useStyles();\n\n const colorStyle = color === 'default'\n ? styles.colorDefault\n : color === 'primary'\n ? styles.colorPrimary\n : styles.colorTransparent;\n\n const paperStyle = css([\n styles.root,\n colorStyle,\n style,\n ]);\n\n return (\n <Paper\n ref={ref}\n square\n elevation={0}\n style={paperStyle}\n {...otherProps}\n />\n );\n});\n\nexport default AppBar;\n"]}
1
+ {"version":3,"sources":["AppBar.tsx"],"names":["React","Paper","css","useTheme","useStyles","theme","root","flexDirection","flexShrink","width","zIndex","appBar","AppBar","forwardRef","props","ref","color","style","otherProps","styles","backgroundColor","palette","background","default","paper","primary","main","paperStyle"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAGA,OAAOC,KAAP,MAAkB,UAAlB;AACA,SAASC,GAAT,EAAcC,QAAd,QAA8B,WAA9B;;AAOA,MAAMC,SAAkC,GAAG,YAA0B;AACjE,QAAMC,KAAK,GAAGF,QAAQ,EAAtB;AAEA,SAAO;AACHG,IAAAA,IAAI,EAAE;AACFC,MAAAA,aAAa,EAAE,QADb;AAEFC,MAAAA,UAAU,EAAE,CAFV;AAGFC,MAAAA,KAAK,EAAE,MAHL;AAIFC,MAAAA,MAAM,EAAEL,KAAK,CAACK,MAAN,CAAaC;AAJnB;AADH,GAAP;AAQH,CAXD;;AAaA,MAAMC,MAAM,gBAAGZ,KAAK,CAACa,UAAN,CAAoC,SAASD,MAAT,CAAgBE,KAAhB,EAAuBC,GAAvB,EAA4B;AAC3E,QAAM;AACFC,IAAAA,KAAK,GAAG,SADN;AAEFC,IAAAA,KAFE;AAGF,OAAGC;AAHD,MAIFJ,KAJJ;AAMA,QAAMT,KAAK,GAAGF,QAAQ,EAAtB;AAEA,QAAMgB,MAAM,GAAGf,SAAS,EAAxB;AAEA,QAAMgB,eAAe,GAAGJ,KAAK,KAAK,SAAV,GAClBX,KAAK,CAACgB,OAAN,CAAcC,UAAd,CAAyBC,OADP,GAElBP,KAAK,KAAK,OAAV,GACIX,KAAK,CAACgB,OAAN,CAAcG,KAAd,CAAoBD,OADxB,GAEIP,KAAK,KAAK,SAAV,GACIX,KAAK,CAACgB,OAAN,CAAcI,OAAd,CAAsBC,IAD1B,GAEI,aANd;AAQA,QAAMC,UAAU,GAAGzB,GAAG,CAAC,CACnBiB,MAAM,CAACb,IADY,EAEnB;AAAEc,IAAAA;AAAF,GAFmB,EAGnBH,KAHmB,CAAD,CAAtB;AAMA,sBACI,oBAAC,KAAD;AACI,IAAA,GAAG,EAAEF,GADT;AAEI,IAAA,UAAU,EAAEK,eAFhB;AAGI,IAAA,SAAS,EAAE,CAHf;AAII,IAAA,KAAK,EAAEO,UAJX;AAKI,IAAA,MAAM,EAAE;AALZ,KAMQT,UANR,EADJ;AAUH,CAnCc,CAAf;AAqCA,eAAeN,MAAf","sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';\nimport Paper from '../Paper';\nimport { css, useTheme } from '../styles';\nimport type AppBarProps from './AppBarProps';\n\ntype AppBarStyleKeys = 'root';\n\ntype AppBarStyles = NamedStylesStringUnion<AppBarStyleKeys>;\n\nconst useStyles: UseStyles<AppBarStyles> = function (): AppBarStyles {\n const theme = useTheme();\n\n return {\n root: {\n flexDirection: 'column',\n flexShrink: 0,\n width: '100%',\n zIndex: theme.zIndex.appBar,\n },\n };\n};\n\nconst AppBar = React.forwardRef<View, AppBarProps>(function AppBar(props, ref) {\n const {\n color = 'default',\n style,\n ...otherProps\n } = props;\n\n const theme = useTheme();\n\n const styles = useStyles();\n\n const backgroundColor = color === 'default'\n ? theme.palette.background.default\n : color === 'paper'\n ? theme.palette.paper.default\n : color === 'primary'\n ? theme.palette.primary.main\n : 'transparent';\n\n const paperStyle = css([\n styles.root,\n { backgroundColor },\n style,\n ]);\n\n return (\n <Paper\n ref={ref}\n colorValue={backgroundColor}\n elevation={0}\n style={paperStyle}\n square={true}\n {...otherProps}\n />\n );\n});\n\nexport default AppBar;\n"]}
@@ -4,9 +4,11 @@ import React from 'react';
4
4
  import { View } from 'react-native';
5
5
  import { css, StyleSheet, useTheme } from '../styles';
6
6
  import { useElevationStyle } from '../hooks';
7
+ import PaperStylesProvider from './PaperStylesProvider';
7
8
  const Paper = /*#__PURE__*/React.forwardRef(function Paper(props, ref) {
8
9
  const {
9
10
  color = 'default',
11
+ colorValue,
10
12
  elevation = 1,
11
13
  style: styleProp,
12
14
  square = false,
@@ -14,8 +16,9 @@ const Paper = /*#__PURE__*/React.forwardRef(function Paper(props, ref) {
14
16
  ...otherProps
15
17
  } = props;
16
18
  const theme = useTheme();
19
+ const backgroundColor = colorValue !== null && colorValue !== void 0 ? colorValue : theme.palette.paper[color];
17
20
  const rootStyle = {
18
- backgroundColor: theme.palette.paper[color]
21
+ backgroundColor
19
22
  };
20
23
  const roundedStyle = {
21
24
  borderRadius: theme.shape.roundness
@@ -27,10 +30,14 @@ const Paper = /*#__PURE__*/React.forwardRef(function Paper(props, ref) {
27
30
  borderColor: theme.palette.divider
28
31
  };
29
32
  const style = css([rootStyle, variant === 'elevation' ? elevationStyle : outlinedStyle, !square ? roundedStyle : undefined, styleProp]);
30
- return /*#__PURE__*/React.createElement(View, _extends({
33
+ return /*#__PURE__*/React.createElement(PaperStylesProvider, {
34
+ value: {
35
+ backgroundColor
36
+ }
37
+ }, /*#__PURE__*/React.createElement(View, _extends({
31
38
  ref: ref,
32
39
  style: style
33
- }, otherProps));
40
+ }, otherProps)));
34
41
  });
35
42
  export default Paper;
36
43
  //# sourceMappingURL=Paper.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["Paper.tsx"],"names":["React","View","css","StyleSheet","useTheme","useElevationStyle","Paper","forwardRef","props","ref","color","elevation","style","styleProp","square","variant","otherProps","theme","rootStyle","backgroundColor","palette","paper","roundedStyle","borderRadius","shape","roundness","elevationStyle","outlinedStyle","borderWidth","hairlineWidth","borderStyle","borderColor","divider","undefined"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,IAAT,QAAqB,cAArB;AACA,SAASC,GAAT,EAAcC,UAAd,EAA0BC,QAA1B,QAA0C,WAA1C;AACA,SAASC,iBAAT,QAAkC,UAAlC;AAGA,MAAMC,KAAK,gBAAGN,KAAK,CAACO,UAAN,CAAmC,SAASD,KAAT,CAAeE,KAAf,EAAsBC,GAAtB,EAA2B;AACxE,QAAM;AACFC,IAAAA,KAAK,GAAG,SADN;AAEFC,IAAAA,SAAS,GAAG,CAFV;AAGFC,IAAAA,KAAK,EAAEC,SAHL;AAIFC,IAAAA,MAAM,GAAG,KAJP;AAKFC,IAAAA,OAAO,GAAG,WALR;AAMF,OAAGC;AAND,MAOFR,KAPJ;AASA,QAAMS,KAAK,GAAGb,QAAQ,EAAtB;AAEA,QAAMc,SAAS,GAAG;AACdC,IAAAA,eAAe,EAAEF,KAAK,CAACG,OAAN,CAAcC,KAAd,CAAoBX,KAApB;AADH,GAAlB;AAIA,QAAMY,YAAY,GAAG;AACjBC,IAAAA,YAAY,EAAEN,KAAK,CAACO,KAAN,CAAYC;AADT,GAArB;AAIA,QAAMC,cAAc,GAAGrB,iBAAiB,CAACM,SAAD,CAAxC;AAEA,QAAMgB,aAAa,GAAG;AAClBC,IAAAA,WAAW,EAAEzB,UAAU,CAAC0B,aADN;AAElBC,IAAAA,WAAW,EAAE,OAFK;AAGlBC,IAAAA,WAAW,EAAEd,KAAK,CAACG,OAAN,CAAcY;AAHT,GAAtB;AAMA,QAAMpB,KAAK,GAAGV,GAAG,CAAC,CACdgB,SADc,EAEdH,OAAO,KAAK,WAAZ,GAA0BW,cAA1B,GAA2CC,aAF7B,EAGd,CAACb,MAAD,GAAUQ,YAAV,GAAyBW,SAHX,EAIdpB,SAJc,CAAD,CAAjB;AAOA,sBACI,oBAAC,IAAD;AACI,IAAA,GAAG,EAAEJ,GADT;AAEI,IAAA,KAAK,EAAEG;AAFX,KAGQI,UAHR,EADJ;AAOH,CA1Ca,CAAd;AA4CA,eAAeV,KAAf","sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport { css, StyleSheet, useTheme } from '../styles';\nimport { useElevationStyle } from '../hooks';\nimport type PaperProps from './PaperProps';\n\nconst Paper = React.forwardRef<View, PaperProps>(function Paper(props, ref) {\n const {\n color = 'default',\n elevation = 1,\n style: styleProp,\n square = false,\n variant = 'elevation',\n ...otherProps\n } = props;\n\n const theme = useTheme();\n\n const rootStyle = {\n backgroundColor: theme.palette.paper[color],\n };\n\n const roundedStyle = {\n borderRadius: theme.shape.roundness,\n };\n\n const elevationStyle = useElevationStyle(elevation);\n\n const outlinedStyle = {\n borderWidth: StyleSheet.hairlineWidth,\n borderStyle: 'solid',\n borderColor: theme.palette.divider,\n };\n\n const style = css([\n rootStyle,\n variant === 'elevation' ? elevationStyle : outlinedStyle,\n !square ? roundedStyle : undefined,\n styleProp,\n ]);\n\n return (\n <View\n ref={ref}\n style={style}\n {...otherProps}\n />\n );\n});\n\nexport default Paper;\n"]}
1
+ {"version":3,"sources":["Paper.tsx"],"names":["React","View","css","StyleSheet","useTheme","useElevationStyle","PaperStylesProvider","Paper","forwardRef","props","ref","color","colorValue","elevation","style","styleProp","square","variant","otherProps","theme","backgroundColor","palette","paper","rootStyle","roundedStyle","borderRadius","shape","roundness","elevationStyle","outlinedStyle","borderWidth","hairlineWidth","borderStyle","borderColor","divider","undefined"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,IAAT,QAAqB,cAArB;AACA,SAASC,GAAT,EAAcC,UAAd,EAA0BC,QAA1B,QAA0C,WAA1C;AACA,SAASC,iBAAT,QAAkC,UAAlC;AAEA,OAAOC,mBAAP,MAAgC,uBAAhC;AAEA,MAAMC,KAAK,gBAAGP,KAAK,CAACQ,UAAN,CAAmC,SAASD,KAAT,CAAeE,KAAf,EAAsBC,GAAtB,EAA2B;AACxE,QAAM;AACFC,IAAAA,KAAK,GAAG,SADN;AAEFC,IAAAA,UAFE;AAGFC,IAAAA,SAAS,GAAG,CAHV;AAIFC,IAAAA,KAAK,EAAEC,SAJL;AAKFC,IAAAA,MAAM,GAAG,KALP;AAMFC,IAAAA,OAAO,GAAG,WANR;AAOF,OAAGC;AAPD,MAQFT,KARJ;AAUA,QAAMU,KAAK,GAAGf,QAAQ,EAAtB;AAEA,QAAMgB,eAAe,GAAGR,UAAH,aAAGA,UAAH,cAAGA,UAAH,GAAiBO,KAAK,CAACE,OAAN,CAAcC,KAAd,CAAoBX,KAApB,CAAtC;AAEA,QAAMY,SAAS,GAAG;AAAEH,IAAAA;AAAF,GAAlB;AAEA,QAAMI,YAAY,GAAG;AACjBC,IAAAA,YAAY,EAAEN,KAAK,CAACO,KAAN,CAAYC;AADT,GAArB;AAIA,QAAMC,cAAc,GAAGvB,iBAAiB,CAACQ,SAAD,CAAxC;AAEA,QAAMgB,aAAa,GAAG;AAClBC,IAAAA,WAAW,EAAE3B,UAAU,CAAC4B,aADN;AAElBC,IAAAA,WAAW,EAAE,OAFK;AAGlBC,IAAAA,WAAW,EAAEd,KAAK,CAACE,OAAN,CAAca;AAHT,GAAtB;AAMA,QAAMpB,KAAK,GAAGZ,GAAG,CAAC,CACdqB,SADc,EAEdN,OAAO,KAAK,WAAZ,GAA0BW,cAA1B,GAA2CC,aAF7B,EAGd,CAACb,MAAD,GAAUQ,YAAV,GAAyBW,SAHX,EAIdpB,SAJc,CAAD,CAAjB;AAOA,sBACI,oBAAC,mBAAD;AACI,IAAA,KAAK,EAAE;AAAEK,MAAAA;AAAF;AADX,kBAGI,oBAAC,IAAD;AACI,IAAA,GAAG,EAAEV,GADT;AAEI,IAAA,KAAK,EAAEI;AAFX,KAGQI,UAHR,EAHJ,CADJ;AAWH,CA/Ca,CAAd;AAiDA,eAAeX,KAAf","sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport { css, StyleSheet, useTheme } from '../styles';\nimport { useElevationStyle } from '../hooks';\nimport type PaperProps from './PaperProps';\nimport PaperStylesProvider from './PaperStylesProvider';\n\nconst Paper = React.forwardRef<View, PaperProps>(function Paper(props, ref) {\n const {\n color = 'default',\n colorValue,\n elevation = 1,\n style: styleProp,\n square = false,\n variant = 'elevation',\n ...otherProps\n } = props;\n\n const theme = useTheme();\n\n const backgroundColor = colorValue ?? theme.palette.paper[color];\n\n const rootStyle = { backgroundColor };\n\n const roundedStyle = {\n borderRadius: theme.shape.roundness,\n };\n\n const elevationStyle = useElevationStyle(elevation);\n\n const outlinedStyle = {\n borderWidth: StyleSheet.hairlineWidth,\n borderStyle: 'solid',\n borderColor: theme.palette.divider,\n };\n\n const style = css([\n rootStyle,\n variant === 'elevation' ? elevationStyle : outlinedStyle,\n !square ? roundedStyle : undefined,\n styleProp,\n ]);\n\n return (\n <PaperStylesProvider\n value={{ backgroundColor }}\n >\n <View\n ref={ref}\n style={style}\n {...otherProps}\n />\n </PaperStylesProvider>\n );\n});\n\nexport default Paper;\n"]}
@@ -0,0 +1,4 @@
1
+ import { createContext } from 'react';
2
+ export const PaperStylesContext = /*#__PURE__*/createContext(null);
3
+ export default PaperStylesContext.Provider;
4
+ //# sourceMappingURL=PaperStylesProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["PaperStylesProvider.tsx"],"names":["createContext","PaperStylesContext","Provider"],"mappings":"AAAA,SAASA,aAAT,QAA8B,OAA9B;AAMA,OAAO,MAAMC,kBAAkB,gBAAGD,aAAa,CAAqB,IAArB,CAAxC;AAEP,eAAeC,kBAAkB,CAACC,QAAlC","sourcesContent":["import { createContext } from 'react';\n\nexport type PaperStyles = {\n backgroundColor: string;\n}\n\nexport const PaperStylesContext = createContext<PaperStyles | null>(null);\n\nexport default PaperStylesContext.Provider;\n"]}
@@ -0,0 +1,7 @@
1
+ import { useContext } from 'react';
2
+ import { PaperStylesContext } from './PaperStylesProvider';
3
+ export default function usePaperStyles() {
4
+ return useContext(PaperStylesContext);
5
+ }
6
+ ;
7
+ //# sourceMappingURL=usePaperStyles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["usePaperStyles.ts"],"names":["useContext","PaperStylesContext","usePaperStyles"],"mappings":"AAAA,SAASA,UAAT,QAA2B,OAA3B;AACA,SAASC,kBAAT,QAAmC,uBAAnC;AAEA,eAAe,SAASC,cAAT,GAA0B;AACrC,SAAOF,UAAU,CAACC,kBAAD,CAAjB;AACH;AAAA","sourcesContent":["import { useContext } from 'react';\nimport { PaperStylesContext } from './PaperStylesProvider';\n\nexport default function usePaperStyles() {\n return useContext(PaperStylesContext);\n};\n"]}
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
2
  import { Animated, StyleSheet } from 'react-native';
3
3
  import { useTheme } from '../styles';
4
+ import usePaperStyles from '../Paper/usePaperStyles';
4
5
  import { inputPaddingHorizontal } from './utils';
5
6
 
6
7
  const useStyles = function () {
7
- const theme = useTheme();
8
8
  return {
9
9
  background: {
10
10
  position: 'absolute',
@@ -13,15 +13,13 @@ const useStyles = function () {
13
13
  bottom: 0,
14
14
  right: 0,
15
15
  width: 8,
16
- height: 2,
17
- backgroundColor: theme.palette.background.default
16
+ height: 4
18
17
  },
19
18
  backgroundText: {
20
19
  position: 'absolute',
21
20
  left: 18,
22
21
  paddingHorizontal: 0,
23
- color: 'transparent',
24
- backgroundColor: theme.palette.background.default
22
+ color: 'transparent'
25
23
  },
26
24
  placeholder: {
27
25
  position: 'absolute',
@@ -32,6 +30,8 @@ const useStyles = function () {
32
30
  };
33
31
 
34
32
  const InputLabel = props => {
33
+ var _paperStyles$backgrou;
34
+
35
35
  const {
36
36
  activeColor,
37
37
  animatedError,
@@ -53,7 +53,12 @@ const InputLabel = props => {
53
53
  topPosition,
54
54
  value
55
55
  } = props;
56
+ const theme = useTheme();
56
57
  const styles = useStyles();
58
+ const paperStyles = usePaperStyles();
59
+ const backgroundStyle = {
60
+ backgroundColor: (_paperStyles$backgrou = paperStyles === null || paperStyles === void 0 ? void 0 : paperStyles.backgroundColor) !== null && _paperStyles$backgrou !== void 0 ? _paperStyles$backgrou : theme.palette.background.default
61
+ };
57
62
  const hasFocus = hasActiveOutline || value;
58
63
  const opacity = animatedLabel.interpolate({
59
64
  inputRange: [0, 1],
@@ -94,7 +99,7 @@ const InputLabel = props => {
94
99
  }, [/*#__PURE__*/React.createElement(Animated.View, {
95
100
  key: 'labelBackground-view',
96
101
  pointerEvents: 'none',
97
- style: [styles.background, {
102
+ style: [styles.background, backgroundStyle, {
98
103
  opacity,
99
104
  transform: [{
100
105
  translateX: animatedLabel.interpolate({
@@ -105,7 +110,7 @@ const InputLabel = props => {
105
110
  }]
106
111
  }), /*#__PURE__*/React.createElement(Animated.Text, {
107
112
  key: 'labelBackground-text',
108
- style: [styles.placeholder, styles.backgroundText, labelStyle, {
113
+ style: [styles.placeholder, styles.backgroundText, backgroundStyle, labelStyle, {
109
114
  top: topPosition + 1,
110
115
  opacity,
111
116
  transform: [...labelStyle.transform, {
@@ -1 +1 @@
1
- {"version":3,"sources":["InputLabel.tsx"],"names":["React","Animated","StyleSheet","useTheme","inputPaddingHorizontal","useStyles","theme","background","position","top","left","bottom","right","width","height","backgroundColor","palette","default","backgroundText","paddingHorizontal","color","placeholder","InputLabel","props","activeColor","animatedError","animatedLabel","error","errorColor","focused","fontSize","hasActiveOutline","label","labelLayout","labelScale","labelTranslateX","labelTranslateY","onLayoutAnimatedText","paddingOffset","placeholderColor","placeholderOpacity","topPosition","value","styles","hasFocus","opacity","interpolate","inputRange","outputRange","labelTranslationX","transform","translateX","labelStyle","translateY","scale","absoluteFill","measured","scaleY","textAlign"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Animated, LayoutChangeEvent, StyleSheet } from 'react-native';\nimport { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';\nimport { useTheme } from '../styles';\nimport { inputPaddingHorizontal } from './utils';\n\ninterface LabelProps {\n activeColor: string;\n animatedError: Animated.Value;\n animatedLabel: Animated.Value;\n error?: boolean;\n errorColor?: string;\n focused?: boolean;\n fontSize?: number;\n hasActiveOutline?: boolean;\n label?: string;\n labelLayout: { measured: boolean; width: number; height: number };\n labelScale: number;\n labelTranslateX: number;\n labelTranslateY: number;\n onLayoutAnimatedText: (event: LayoutChangeEvent) => void;\n paddingOffset?: { paddingLeft: number; paddingRight: number };\n placeholder?: string;\n placeholderColor?: string;\n placeholderOpacity: number | Animated.AnimatedInterpolation;\n topPosition: number;\n value?: string;\n}\n\ntype InputLabelStyles = NamedStylesStringUnion<'background' | 'backgroundText' | 'placeholder'>;\n\nconst useStyles: UseStyles<InputLabelStyles> = function (): InputLabelStyles {\n const theme = useTheme();\n\n return {\n background: {\n position: 'absolute',\n top: 6,\n left: 10,\n bottom: 0,\n right: 0,\n width: 8,\n height: 2,\n backgroundColor: theme.palette.background.default,\n },\n backgroundText: {\n position: 'absolute',\n left: 18,\n paddingHorizontal: 0,\n color: 'transparent',\n backgroundColor: theme.palette.background.default,\n },\n placeholder: {\n position: 'absolute',\n left: 0,\n paddingHorizontal: inputPaddingHorizontal,\n },\n };\n};\n\nconst InputLabel = (props: LabelProps) => {\n const {\n activeColor,\n animatedError,\n animatedLabel,\n error = false,\n errorColor,\n focused,\n fontSize,\n hasActiveOutline,\n label,\n labelLayout,\n labelScale,\n labelTranslateX,\n labelTranslateY,\n onLayoutAnimatedText,\n paddingOffset,\n placeholderColor,\n placeholderOpacity,\n topPosition,\n value,\n } = props;\n\n const styles = useStyles();\n\n const hasFocus = hasActiveOutline || value;\n const opacity = animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [hasFocus ? 1 : 0, 0],\n });\n\n const labelTranslationX = {\n transform: [\n {\n translateX: animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [labelTranslateX, 0 || 0],\n }),\n },\n ],\n };\n\n const labelStyle = {\n fontSize,\n transform: [\n {\n translateX: animatedError.interpolate({\n inputRange: [0, 0.5, 1],\n outputRange: [0, value && error ? 4 : 0, 0],\n }),\n },\n {\n translateY: animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [labelTranslateY, 0],\n }),\n },\n {\n scale: animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [labelScale, 1],\n }),\n },\n ],\n };\n\n return (label ? (\n <Animated.View\n pointerEvents={'none'}\n style={[\n StyleSheet.absoluteFill,\n {\n opacity: value || focused ? (labelLayout.measured ? 1 : 0) : 1,\n },\n labelTranslationX,\n ]}\n >\n {[\n <Animated.View\n key={'labelBackground-view'}\n pointerEvents={'none'}\n style={[\n styles.background,\n {\n opacity,\n transform: [\n {\n translateX: animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [-labelTranslateX, 0],\n }),\n },\n ],\n },\n ]}\n />,\n <Animated.Text\n key={'labelBackground-text'}\n style={[\n styles.placeholder,\n styles.backgroundText,\n labelStyle,\n {\n top: topPosition + 1,\n opacity,\n transform: [\n ...labelStyle.transform,\n {\n scaleY: animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [0.2, 1],\n }),\n },\n ],\n },\n ]}\n numberOfLines={1}\n >\n {label}\n </Animated.Text>,\n ]}\n <Animated.Text\n onLayout={onLayoutAnimatedText}\n style={[\n styles.placeholder,\n labelStyle,\n paddingOffset,\n {\n textAlign: 'left',\n top: topPosition,\n color: error && errorColor ? errorColor : activeColor,\n opacity: animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [hasActiveOutline ? 1 : 0, 0],\n }),\n },\n ]}\n numberOfLines={1}\n >\n {label}\n </Animated.Text>\n <Animated.Text\n style={[\n styles.placeholder,\n labelStyle,\n paddingOffset,\n {\n textAlign: 'left',\n top: topPosition,\n color: error && errorColor ? errorColor : placeholderColor,\n opacity: placeholderOpacity,\n },\n ]}\n numberOfLines={1}\n >\n {label}\n </Animated.Text>\n </Animated.View>\n ) : null);\n};\n\nexport default InputLabel;\n"]}
1
+ {"version":3,"sources":["InputLabel.tsx"],"names":["React","Animated","StyleSheet","useTheme","usePaperStyles","inputPaddingHorizontal","useStyles","background","position","top","left","bottom","right","width","height","backgroundText","paddingHorizontal","color","placeholder","InputLabel","props","activeColor","animatedError","animatedLabel","error","errorColor","focused","fontSize","hasActiveOutline","label","labelLayout","labelScale","labelTranslateX","labelTranslateY","onLayoutAnimatedText","paddingOffset","placeholderColor","placeholderOpacity","topPosition","value","theme","styles","paperStyles","backgroundStyle","backgroundColor","palette","default","hasFocus","opacity","interpolate","inputRange","outputRange","labelTranslationX","transform","translateX","labelStyle","translateY","scale","absoluteFill","measured","scaleY","textAlign"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Animated, LayoutChangeEvent, StyleSheet } from 'react-native';\nimport { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';\nimport { useTheme } from '../styles';\nimport usePaperStyles from '../Paper/usePaperStyles';\nimport { inputPaddingHorizontal } from './utils';\n\ninterface LabelProps {\n activeColor: string;\n animatedError: Animated.Value;\n animatedLabel: Animated.Value;\n error?: boolean;\n errorColor?: string;\n focused?: boolean;\n fontSize?: number;\n hasActiveOutline?: boolean;\n label?: string;\n labelLayout: { measured: boolean; width: number; height: number };\n labelScale: number;\n labelTranslateX: number;\n labelTranslateY: number;\n onLayoutAnimatedText: (event: LayoutChangeEvent) => void;\n paddingOffset?: { paddingLeft: number; paddingRight: number };\n placeholder?: string;\n placeholderColor?: string;\n placeholderOpacity: number | Animated.AnimatedInterpolation;\n topPosition: number;\n value?: string;\n}\n\ntype InputLabelStyles = NamedStylesStringUnion<'background' | 'backgroundText' | 'placeholder'>;\n\nconst useStyles: UseStyles<InputLabelStyles> = function (): InputLabelStyles {\n return {\n background: {\n position: 'absolute',\n top: 6,\n left: 10,\n bottom: 0,\n right: 0,\n width: 8,\n height: 4,\n },\n backgroundText: {\n position: 'absolute',\n left: 18,\n paddingHorizontal: 0,\n color: 'transparent',\n },\n placeholder: {\n position: 'absolute',\n left: 0,\n paddingHorizontal: inputPaddingHorizontal,\n },\n };\n};\n\nconst InputLabel = (props: LabelProps) => {\n const {\n activeColor,\n animatedError,\n animatedLabel,\n error = false,\n errorColor,\n focused,\n fontSize,\n hasActiveOutline,\n label,\n labelLayout,\n labelScale,\n labelTranslateX,\n labelTranslateY,\n onLayoutAnimatedText,\n paddingOffset,\n placeholderColor,\n placeholderOpacity,\n topPosition,\n value,\n } = props;\n\n const theme = useTheme();\n\n const styles = useStyles();\n\n const paperStyles = usePaperStyles();\n\n const backgroundStyle = {\n backgroundColor: paperStyles?.backgroundColor ?? theme.palette.background.default,\n };\n\n const hasFocus = hasActiveOutline || value;\n const opacity = animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [hasFocus ? 1 : 0, 0],\n });\n\n const labelTranslationX = {\n transform: [\n {\n translateX: animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [labelTranslateX, 0 || 0],\n }),\n },\n ],\n };\n\n const labelStyle = {\n fontSize,\n transform: [\n {\n translateX: animatedError.interpolate({\n inputRange: [0, 0.5, 1],\n outputRange: [0, value && error ? 4 : 0, 0],\n }),\n },\n {\n translateY: animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [labelTranslateY, 0],\n }),\n },\n {\n scale: animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [labelScale, 1],\n }),\n },\n ],\n };\n\n return (label ? (\n <Animated.View\n pointerEvents={'none'}\n style={[\n StyleSheet.absoluteFill,\n {\n opacity: value || focused ? (labelLayout.measured ? 1 : 0) : 1,\n },\n labelTranslationX,\n ]}\n >\n {[\n <Animated.View\n key={'labelBackground-view'}\n pointerEvents={'none'}\n style={[\n styles.background,\n backgroundStyle,\n {\n opacity,\n transform: [\n {\n translateX: animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [-labelTranslateX, 0],\n }),\n },\n ],\n },\n ]}\n />,\n <Animated.Text\n key={'labelBackground-text'}\n style={[\n styles.placeholder,\n styles.backgroundText,\n backgroundStyle,\n labelStyle,\n {\n top: topPosition + 1,\n opacity,\n transform: [\n ...labelStyle.transform,\n {\n scaleY: animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [0.2, 1],\n }),\n },\n ],\n },\n ]}\n numberOfLines={1}\n >\n {label}\n </Animated.Text>,\n ]}\n <Animated.Text\n onLayout={onLayoutAnimatedText}\n style={[\n styles.placeholder,\n labelStyle,\n paddingOffset,\n {\n textAlign: 'left',\n top: topPosition,\n color: error && errorColor ? errorColor : activeColor,\n opacity: animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [hasActiveOutline ? 1 : 0, 0],\n }),\n },\n ]}\n numberOfLines={1}\n >\n {label}\n </Animated.Text>\n <Animated.Text\n style={[\n styles.placeholder,\n labelStyle,\n paddingOffset,\n {\n textAlign: 'left',\n top: topPosition,\n color: error && errorColor ? errorColor : placeholderColor,\n opacity: placeholderOpacity,\n },\n ]}\n numberOfLines={1}\n >\n {label}\n </Animated.Text>\n </Animated.View>\n ) : null);\n};\n\nexport default InputLabel;\n"]}
@@ -15,7 +15,6 @@ const useStyles = function () {
15
15
  left: 0,
16
16
  right: 0,
17
17
  bottom: 0,
18
- backgroundColor: theme.palette.background.default,
19
18
  borderRadius: theme.shape.roundness
20
19
  },
21
20
  input: {
@@ -1 +1 @@
1
- {"version":3,"sources":["OutlinedTextField.tsx"],"names":["React","Platform","TextInput","View","css","useTheme","IconButton","InputLabel","defaultHeight","iconSize","inputPaddingHorizontal","labelFontSize","labelPaddingTop","labelYOffset","useStyles","theme","outline","position","left","right","bottom","backgroundColor","palette","background","default","borderRadius","shape","roundness","input","flexGrow","paddingHorizontal","textAlignVertical","textAlign","zIndex","textField","iconContainer","width","height","justifyContent","alignItems","OutlinedTextField","forwardRef","props","ref","animatedError","animatedLabel","disabled","error","focused","forceFocus","icon","keyboardType","label","labelLayout","onBlur","onChangeText","onFocus","onIconPress","onLayoutAnimatedText","onSubmitEditing","placeholder","secureTextEntry","style","value","styles","hasActiveOutline","inputTextColor","tertiary","main","primary","activeColor","warning","accent","placeholderColor","text","hint","outlineColor","border","errorColor","typography","body2","fontSize","unitless","labelScale","labelWidth","labelHeight","labelHalfWidth","labelHalfHeight","labelTranslateX","minInputHeight","inputHeight","topPosition","Math","floor","iconTopPosition","labelTranslateY","placeholderOpacity","interpolate","inputRange","outputRange","measured","labelProps","outlineStyle","borderWidth","borderColor","top","textInputStyle","color","marginRight","paddingRight","OS","outlineWidth","containerStyle","paddingTop","minHeight","iconContainerStyle","onIconButtonPress"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Animated, LayoutChangeEvent, Platform, TextInput, View } from 'react-native';\nimport { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';\nimport { css, useTheme } from '../styles';\nimport IconButton from '../IconButton';\nimport TextFieldProps from './TextFieldProps';\nimport InputLabel from './InputLabel';\nimport {\n defaultHeight,\n iconSize,\n inputPaddingHorizontal,\n labelFontSize,\n labelPaddingTop,\n labelYOffset,\n} from './utils';\n\ninterface OutlinedTextFieldProps extends TextFieldProps {\n animatedError: Animated.Value;\n animatedLabel: Animated.Value;\n focused: boolean;\n forceFocus: () => void;\n labelLayout: { measured: boolean; width: number; height: number };\n onLayoutAnimatedText: (event: LayoutChangeEvent) => void;\n}\n\ntype OutlinedTextFieldStyles = NamedStylesStringUnion<'outline' | 'input' | 'iconContainer'>;\n\nconst useStyles: UseStyles<OutlinedTextFieldStyles> = function (): OutlinedTextFieldStyles {\n const theme = useTheme();\n\n return {\n outline: {\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: theme.palette.background.default,\n borderRadius: theme.shape.roundness,\n },\n input: {\n flexGrow: 1,\n paddingHorizontal: inputPaddingHorizontal,\n textAlignVertical: 'center',\n textAlign: 'left',\n zIndex: theme.zIndex.textField,\n },\n iconContainer: {\n position: 'absolute',\n width: 24,\n height: 24,\n justifyContent: 'center',\n alignItems: 'center',\n right: 12,\n },\n };\n};\n\nconst OutlinedTextField = React.forwardRef<TextInput, OutlinedTextFieldProps>(function OutlinedTextField(props, ref) {\n const {\n animatedError,\n animatedLabel,\n disabled,\n error,\n focused,\n forceFocus,\n icon,\n keyboardType,\n label,\n labelLayout,\n onBlur,\n onChangeText,\n onFocus,\n onIconPress,\n onLayoutAnimatedText,\n onSubmitEditing,\n placeholder,\n secureTextEntry,\n style,\n value,\n } = props;\n\n const theme = useTheme();\n const styles = useStyles();\n\n const hasActiveOutline = focused || error;\n const inputTextColor = disabled ? theme.palette.tertiary.main : theme.palette.primary.main;\n const activeColor = error\n ? theme.palette.warning.main\n : disabled\n ? theme.palette.tertiary.main\n : theme.palette.accent.main;\n const placeholderColor = disabled ? theme.palette.tertiary.main : theme.palette.text.hint;\n const outlineColor = disabled ? theme.palette.border : theme.palette.border;\n const errorColor = disabled ? theme.palette.tertiary.main : theme.palette.warning.main;\n\n const typography = theme.typography.body2;\n const fontSize = typography.fontSize.unitless;\n\n const labelScale = labelFontSize / fontSize;\n const labelWidth = labelLayout.width;\n const labelHeight = labelLayout.height;\n const labelHalfWidth = labelWidth / 2;\n const labelHalfHeight = labelHeight / 2;\n\n const labelTranslateX = -1 * (labelHalfWidth - (labelScale * labelWidth) / 2 - (fontSize - labelFontSize) * labelScale);\n const minInputHeight = defaultHeight - labelPaddingTop;\n const inputHeight = labelHeight < minInputHeight ? minInputHeight : labelHeight;\n const topPosition = Math.floor(((inputHeight > 0 ? inputHeight : 0) - labelHeight) / 2 + labelPaddingTop);\n const iconTopPosition = (defaultHeight - (label ? 0 : labelPaddingTop) - iconSize - (label ? labelYOffset : 0)) / 2;\n const labelTranslateY = -labelHalfHeight - (topPosition + labelYOffset);\n\n const placeholderOpacity = hasActiveOutline\n ? animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [hasActiveOutline ? 0 : 1, 1],\n })\n : labelLayout.measured ? 1 : 0;\n\n const labelProps = {\n activeColor,\n error,\n errorColor,\n fontSize,\n hasActiveOutline,\n label,\n labelScale,\n labelTranslateX,\n labelTranslateY,\n onLayoutAnimatedText,\n placeholderColor,\n placeholderOpacity,\n topPosition,\n };\n\n const outlineStyle = css([\n styles.outline,\n {\n borderWidth: hasActiveOutline ? 2 : 1,\n borderColor: error ? errorColor : (hasActiveOutline ? activeColor : outlineColor),\n top: label ? 6 : 0,\n },\n ]);\n\n const textInputStyle = css([\n styles.input,\n {\n fontSize,\n color: inputTextColor,\n height: inputHeight,\n },\n icon && {\n marginRight: iconSize + 20,\n paddingRight: 0,\n },\n Platform.OS === 'web' && {\n //@ts-ignore\n outlineWidth: 0,\n },\n ]);\n\n const containerStyle = css([\n {\n paddingTop: label ? labelPaddingTop : 0,\n minHeight: label ? defaultHeight : defaultHeight + labelYOffset,\n },\n ]);\n\n const iconContainerStyle = css([\n styles.iconContainer,\n { top: iconTopPosition },\n ]);\n\n const onIconButtonPress = () => {\n forceFocus();\n onIconPress?.();\n };\n\n return (\n <View style={style}>\n <View\n pointerEvents={'none'}\n style={outlineStyle}\n />\n <View style={containerStyle}>\n {label ? (\n <InputLabel\n animatedLabel={animatedLabel}\n animatedError={animatedError}\n focused={focused}\n labelLayout={labelLayout}\n placeholder={placeholder}\n value={value}\n {...labelProps}\n />\n ) : null}\n <TextInput\n autoCapitalize={'none'}\n autoCorrect={false}\n disableFullscreenUI={true}\n ref={ref}\n onChangeText={onChangeText}\n placeholder={placeholder}\n placeholderTextColor={placeholderColor}\n editable={!disabled}\n selectionColor={activeColor}\n onFocus={onFocus}\n onBlur={onBlur}\n onSubmitEditing={onSubmitEditing}\n keyboardType={keyboardType}\n secureTextEntry={secureTextEntry}\n underlineColorAndroid={'transparent'}\n style={textInputStyle}\n value={value}\n />\n </View>\n {icon ? (\n <View style={iconContainerStyle}>\n <IconButton\n children={icon}\n onPress={onIconButtonPress}\n />\n </View>\n ) : null}\n </View>\n );\n});\n\nexport default OutlinedTextField;\n"]}
1
+ {"version":3,"sources":["OutlinedTextField.tsx"],"names":["React","Platform","TextInput","View","css","useTheme","IconButton","InputLabel","defaultHeight","iconSize","inputPaddingHorizontal","labelFontSize","labelPaddingTop","labelYOffset","useStyles","theme","outline","position","left","right","bottom","borderRadius","shape","roundness","input","flexGrow","paddingHorizontal","textAlignVertical","textAlign","zIndex","textField","iconContainer","width","height","justifyContent","alignItems","OutlinedTextField","forwardRef","props","ref","animatedError","animatedLabel","disabled","error","focused","forceFocus","icon","keyboardType","label","labelLayout","onBlur","onChangeText","onFocus","onIconPress","onLayoutAnimatedText","onSubmitEditing","placeholder","secureTextEntry","style","value","styles","hasActiveOutline","inputTextColor","palette","tertiary","main","primary","activeColor","warning","accent","placeholderColor","text","hint","outlineColor","border","errorColor","typography","body2","fontSize","unitless","labelScale","labelWidth","labelHeight","labelHalfWidth","labelHalfHeight","labelTranslateX","minInputHeight","inputHeight","topPosition","Math","floor","iconTopPosition","labelTranslateY","placeholderOpacity","interpolate","inputRange","outputRange","measured","labelProps","outlineStyle","borderWidth","borderColor","top","textInputStyle","color","marginRight","paddingRight","OS","outlineWidth","containerStyle","paddingTop","minHeight","iconContainerStyle","onIconButtonPress"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Animated, LayoutChangeEvent, Platform, TextInput, View } from 'react-native';\nimport { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';\nimport { css, useTheme } from '../styles';\nimport IconButton from '../IconButton';\nimport TextFieldProps from './TextFieldProps';\nimport InputLabel from './InputLabel';\nimport {\n defaultHeight,\n iconSize,\n inputPaddingHorizontal,\n labelFontSize,\n labelPaddingTop,\n labelYOffset,\n} from './utils';\n\ninterface OutlinedTextFieldProps extends TextFieldProps {\n animatedError: Animated.Value;\n animatedLabel: Animated.Value;\n focused: boolean;\n forceFocus: () => void;\n labelLayout: { measured: boolean; width: number; height: number };\n onLayoutAnimatedText: (event: LayoutChangeEvent) => void;\n}\n\ntype OutlinedTextFieldStyles = NamedStylesStringUnion<'outline' | 'input' | 'iconContainer'>;\n\nconst useStyles: UseStyles<OutlinedTextFieldStyles> = function (): OutlinedTextFieldStyles {\n const theme = useTheme();\n\n return {\n outline: {\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n borderRadius: theme.shape.roundness,\n },\n input: {\n flexGrow: 1,\n paddingHorizontal: inputPaddingHorizontal,\n textAlignVertical: 'center',\n textAlign: 'left',\n zIndex: theme.zIndex.textField,\n },\n iconContainer: {\n position: 'absolute',\n width: 24,\n height: 24,\n justifyContent: 'center',\n alignItems: 'center',\n right: 12,\n },\n };\n};\n\nconst OutlinedTextField = React.forwardRef<TextInput, OutlinedTextFieldProps>(function OutlinedTextField(props, ref) {\n const {\n animatedError,\n animatedLabel,\n disabled,\n error,\n focused,\n forceFocus,\n icon,\n keyboardType,\n label,\n labelLayout,\n onBlur,\n onChangeText,\n onFocus,\n onIconPress,\n onLayoutAnimatedText,\n onSubmitEditing,\n placeholder,\n secureTextEntry,\n style,\n value,\n } = props;\n\n const theme = useTheme();\n\n const styles = useStyles();\n\n const hasActiveOutline = focused || error;\n const inputTextColor = disabled ? theme.palette.tertiary.main : theme.palette.primary.main;\n const activeColor = error\n ? theme.palette.warning.main\n : disabled\n ? theme.palette.tertiary.main\n : theme.palette.accent.main;\n const placeholderColor = disabled ? theme.palette.tertiary.main : theme.palette.text.hint;\n const outlineColor = disabled ? theme.palette.border : theme.palette.border;\n const errorColor = disabled ? theme.palette.tertiary.main : theme.palette.warning.main;\n\n const typography = theme.typography.body2;\n const fontSize = typography.fontSize.unitless;\n\n const labelScale = labelFontSize / fontSize;\n const labelWidth = labelLayout.width;\n const labelHeight = labelLayout.height;\n const labelHalfWidth = labelWidth / 2;\n const labelHalfHeight = labelHeight / 2;\n\n const labelTranslateX = -1 * (labelHalfWidth - (labelScale * labelWidth) / 2 - (fontSize - labelFontSize) * labelScale);\n const minInputHeight = defaultHeight - labelPaddingTop;\n const inputHeight = labelHeight < minInputHeight ? minInputHeight : labelHeight;\n const topPosition = Math.floor(((inputHeight > 0 ? inputHeight : 0) - labelHeight) / 2 + labelPaddingTop);\n const iconTopPosition = (defaultHeight - (label ? 0 : labelPaddingTop) - iconSize - (label ? labelYOffset : 0)) / 2;\n const labelTranslateY = -labelHalfHeight - (topPosition + labelYOffset);\n\n const placeholderOpacity = hasActiveOutline\n ? animatedLabel.interpolate({\n inputRange: [0, 1],\n outputRange: [hasActiveOutline ? 0 : 1, 1],\n })\n : labelLayout.measured ? 1 : 0;\n\n const labelProps = {\n activeColor,\n error,\n errorColor,\n fontSize,\n hasActiveOutline,\n label,\n labelScale,\n labelTranslateX,\n labelTranslateY,\n onLayoutAnimatedText,\n placeholderColor,\n placeholderOpacity,\n topPosition,\n };\n\n const outlineStyle = css([\n styles.outline,\n {\n borderWidth: hasActiveOutline ? 2 : 1,\n borderColor: error ? errorColor : (hasActiveOutline ? activeColor : outlineColor),\n top: label ? 6 : 0,\n },\n ]);\n\n const textInputStyle = css([\n styles.input,\n {\n fontSize,\n color: inputTextColor,\n height: inputHeight,\n },\n icon && {\n marginRight: iconSize + 20,\n paddingRight: 0,\n },\n Platform.OS === 'web' && {\n //@ts-ignore\n outlineWidth: 0,\n },\n ]);\n\n const containerStyle = css([\n {\n paddingTop: label ? labelPaddingTop : 0,\n minHeight: label ? defaultHeight : defaultHeight + labelYOffset,\n },\n ]);\n\n const iconContainerStyle = css([\n styles.iconContainer,\n { top: iconTopPosition },\n ]);\n\n const onIconButtonPress = () => {\n forceFocus();\n onIconPress?.();\n };\n\n return (\n <View style={style}>\n <View\n pointerEvents={'none'}\n style={outlineStyle}\n />\n <View style={containerStyle}>\n {label ? (\n <InputLabel\n animatedLabel={animatedLabel}\n animatedError={animatedError}\n focused={focused}\n labelLayout={labelLayout}\n placeholder={placeholder}\n value={value}\n {...labelProps}\n />\n ) : null}\n <TextInput\n autoCapitalize={'none'}\n autoCorrect={false}\n disableFullscreenUI={true}\n ref={ref}\n onChangeText={onChangeText}\n placeholder={placeholder}\n placeholderTextColor={placeholderColor}\n editable={!disabled}\n selectionColor={activeColor}\n onFocus={onFocus}\n onBlur={onBlur}\n onSubmitEditing={onSubmitEditing}\n keyboardType={keyboardType}\n secureTextEntry={secureTextEntry}\n underlineColorAndroid={'transparent'}\n style={textInputStyle}\n value={value}\n />\n </View>\n {icon ? (\n <View style={iconContainerStyle}>\n <IconButton\n children={icon}\n onPress={onIconButtonPress}\n />\n </View>\n ) : null}\n </View>\n );\n});\n\nexport default OutlinedTextField;\n"]}
@@ -1,12 +1,7 @@
1
1
  import React from 'react';
2
2
  import { Path } from 'react-native-svg';
3
3
  import { createSvgIcon } from '../../utils';
4
- export default createSvgIcon( /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Path, {
5
- fillRule: "evenodd",
6
- clipRule: "evenodd",
7
- d: "M3 7C3 4.79086 4.79086 3 7 3H13C15.2091 3 17 4.79086 17 7V13C17 15.2091 15.2091 17 13 17H7C4.79086 17 3 15.2091 3 13V7Z"
8
- }), /*#__PURE__*/React.createElement(Path, {
9
- d: "M14.8303 7.53033L8.32856 14.0321L4.96967 10.6732L6.03033 9.61252L8.32856 11.9108L13.7697 6.46967L14.8303 7.53033Z",
10
- fill: "#FFFFFF"
11
- })), 'CheckboxChecked');
4
+ export default createSvgIcon( /*#__PURE__*/React.createElement(Path, {
5
+ d: "M7 3C4.79086 3 3 4.79086 3 7V13C3 15.2091 4.79086 17 7 17H13C15.2091 17 17 15.2091 17 13V7C17 4.79086 15.2091 3 13 3H7ZM8.8589 13.5018L8.32857 14.0321L7.79824 13.5018L4.96967 10.6732L6.03033 9.61252L8.32857 11.9108L13.7697 6.46967L14.8303 7.53033L8.8589 13.5018Z"
6
+ }), 'CheckboxChecked');
12
7
  //# sourceMappingURL=CheckboxChecked.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["CheckboxChecked.tsx"],"names":["React","Path","createSvgIcon"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,IAAT,QAAqB,kBAArB;AACA,SAASC,aAAT,QAA8B,aAA9B;AAEA,eAAeA,aAAa,eACxB,oBAAC,KAAD,CAAO,QAAP,qBACI,oBAAC,IAAD;AACI,EAAA,QAAQ,EAAC,SADb;AAEI,EAAA,QAAQ,EAAC,SAFb;AAGI,EAAA,CAAC,EAAC;AAHN,EADJ,eAMI,oBAAC,IAAD;AACI,EAAA,CAAC,EAAC,mHADN;AAEI,EAAA,IAAI,EAAC;AAFT,EANJ,CADwB,EAYxB,iBAZwB,CAA5B","sourcesContent":["import React from 'react';\nimport { Path } from 'react-native-svg';\nimport { createSvgIcon } from '../../utils';\n\nexport default createSvgIcon(\n <React.Fragment>\n <Path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3 7C3 4.79086 4.79086 3 7 3H13C15.2091 3 17 4.79086 17 7V13C17 15.2091 15.2091 17 13 17H7C4.79086 17 3 15.2091 3 13V7Z\"\n />\n <Path\n d=\"M14.8303 7.53033L8.32856 14.0321L4.96967 10.6732L6.03033 9.61252L8.32856 11.9108L13.7697 6.46967L14.8303 7.53033Z\"\n fill=\"#FFFFFF\"\n />\n </React.Fragment>,\n 'CheckboxChecked',\n);\n"]}
1
+ {"version":3,"sources":["CheckboxChecked.tsx"],"names":["React","Path","createSvgIcon"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,IAAT,QAAqB,kBAArB;AACA,SAASC,aAAT,QAA8B,aAA9B;AAEA,eAAeA,aAAa,eACxB,oBAAC,IAAD;AACI,EAAA,CAAC,EAAC;AADN,EADwB,EAIxB,iBAJwB,CAA5B","sourcesContent":["import React from 'react';\nimport { Path } from 'react-native-svg';\nimport { createSvgIcon } from '../../utils';\n\nexport default createSvgIcon(\n <Path\n d=\"M7 3C4.79086 3 3 4.79086 3 7V13C3 15.2091 4.79086 17 7 17H13C15.2091 17 17 15.2091 17 13V7C17 4.79086 15.2091 3 13 3H7ZM8.8589 13.5018L8.32857 14.0321L7.79824 13.5018L4.96967 10.6732L6.03033 9.61252L8.32857 11.9108L13.7697 6.46967L14.8303 7.53033L8.8589 13.5018Z\"\n />,\n 'CheckboxChecked',\n);\n"]}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import type { OverridableComponentProps } from '../types';
3
3
  import type { PaperProps } from '../Paper';
4
- export declare type AppBarColor = 'default' | 'primary' | 'transparent';
4
+ export declare type AppBarColor = 'default' | 'paper' | 'primary' | 'transparent';
5
5
  export default interface AppBarProps extends OverridableComponentProps<PaperProps, {
6
6
  /**
7
7
  * The content of the component.
@@ -14,6 +14,11 @@ export default interface PaperProps extends OverridableComponentProps<ViewProps,
14
14
  * @default 'default'
15
15
  */
16
16
  color?: PaperColor;
17
+ /**
18
+ * The hex color value of Paper.
19
+ * It has higher priority than `color` prop.
20
+ */
21
+ colorValue?: string;
17
22
  /**
18
23
  * Shadow depth, corresponds to `dp` in the spec.
19
24
  * It accepts values between 0 and 24 inclusive.
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ export declare type PaperStyles = {
3
+ backgroundColor: string;
4
+ };
5
+ export declare const PaperStylesContext: import("react").Context<PaperStyles | null>;
6
+ declare const _default: import("react").Provider<PaperStyles | null>;
7
+ export default _default;
@@ -0,0 +1 @@
1
+ export default function usePaperStyles(): import("./PaperStylesProvider").PaperStyles | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fountain-ui/core",
3
- "version": "2.0.0-beta.3",
3
+ "version": "2.0.0-beta.6",
4
4
  "author": "Fountain-UI Team",
5
5
  "description": "React components that implement Tappytoon's Fountain Design.",
6
6
  "license": "MIT",
@@ -14,7 +14,7 @@
14
14
  "prepare": "bob build"
15
15
  },
16
16
  "dependencies": {
17
- "@fountain-ui/styles": "^2.0.0-beta.3",
17
+ "@fountain-ui/styles": "^2.0.0-beta.5",
18
18
  "@fountain-ui/utils": "^2.0.0-beta.3"
19
19
  },
20
20
  "peerDependencies": {
@@ -67,5 +67,5 @@
67
67
  "publishConfig": {
68
68
  "access": "public"
69
69
  },
70
- "gitHead": "9834b77f8529c853aede39ff73725a211907964d"
70
+ "gitHead": "b1e9e3693498be161f9acc8eff92474d7ecdd678"
71
71
  }
@@ -5,11 +5,7 @@ import Paper from '../Paper';
5
5
  import { css, useTheme } from '../styles';
6
6
  import type AppBarProps from './AppBarProps';
7
7
 
8
- type AppBarStyleKeys =
9
- | 'root'
10
- | 'colorDefault'
11
- | 'colorPrimary'
12
- | 'colorTransparent';
8
+ type AppBarStyleKeys = 'root';
13
9
 
14
10
  type AppBarStyles = NamedStylesStringUnion<AppBarStyleKeys>;
15
11
 
@@ -23,15 +19,6 @@ const useStyles: UseStyles<AppBarStyles> = function (): AppBarStyles {
23
19
  width: '100%',
24
20
  zIndex: theme.zIndex.appBar,
25
21
  },
26
- colorDefault: {
27
- backgroundColor: theme.palette.background.default,
28
- },
29
- colorPrimary: {
30
- backgroundColor: theme.palette.primary.main,
31
- },
32
- colorTransparent: {
33
- backgroundColor: 'transparent',
34
- },
35
22
  };
36
23
  };
37
24
 
@@ -42,26 +29,31 @@ const AppBar = React.forwardRef<View, AppBarProps>(function AppBar(props, ref) {
42
29
  ...otherProps
43
30
  } = props;
44
31
 
32
+ const theme = useTheme();
33
+
45
34
  const styles = useStyles();
46
35
 
47
- const colorStyle = color === 'default'
48
- ? styles.colorDefault
49
- : color === 'primary'
50
- ? styles.colorPrimary
51
- : styles.colorTransparent;
36
+ const backgroundColor = color === 'default'
37
+ ? theme.palette.background.default
38
+ : color === 'paper'
39
+ ? theme.palette.paper.default
40
+ : color === 'primary'
41
+ ? theme.palette.primary.main
42
+ : 'transparent';
52
43
 
53
44
  const paperStyle = css([
54
45
  styles.root,
55
- colorStyle,
46
+ { backgroundColor },
56
47
  style,
57
48
  ]);
58
49
 
59
50
  return (
60
51
  <Paper
61
52
  ref={ref}
62
- square
53
+ colorValue={backgroundColor}
63
54
  elevation={0}
64
55
  style={paperStyle}
56
+ square={true}
65
57
  {...otherProps}
66
58
  />
67
59
  );
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import type { OverridableComponentProps } from '../types';
3
3
  import type { PaperProps } from '../Paper';
4
4
 
5
- export type AppBarColor = 'default' | 'primary' | 'transparent';
5
+ export type AppBarColor = 'default' | 'paper' | 'primary' | 'transparent';
6
6
 
7
7
  export default interface AppBarProps extends OverridableComponentProps<PaperProps, {
8
8
  /**
@@ -3,10 +3,12 @@ import { View } from 'react-native';
3
3
  import { css, StyleSheet, useTheme } from '../styles';
4
4
  import { useElevationStyle } from '../hooks';
5
5
  import type PaperProps from './PaperProps';
6
+ import PaperStylesProvider from './PaperStylesProvider';
6
7
 
7
8
  const Paper = React.forwardRef<View, PaperProps>(function Paper(props, ref) {
8
9
  const {
9
10
  color = 'default',
11
+ colorValue,
10
12
  elevation = 1,
11
13
  style: styleProp,
12
14
  square = false,
@@ -16,9 +18,9 @@ const Paper = React.forwardRef<View, PaperProps>(function Paper(props, ref) {
16
18
 
17
19
  const theme = useTheme();
18
20
 
19
- const rootStyle = {
20
- backgroundColor: theme.palette.paper[color],
21
- };
21
+ const backgroundColor = colorValue ?? theme.palette.paper[color];
22
+
23
+ const rootStyle = { backgroundColor };
22
24
 
23
25
  const roundedStyle = {
24
26
  borderRadius: theme.shape.roundness,
@@ -40,11 +42,15 @@ const Paper = React.forwardRef<View, PaperProps>(function Paper(props, ref) {
40
42
  ]);
41
43
 
42
44
  return (
43
- <View
44
- ref={ref}
45
- style={style}
46
- {...otherProps}
47
- />
45
+ <PaperStylesProvider
46
+ value={{ backgroundColor }}
47
+ >
48
+ <View
49
+ ref={ref}
50
+ style={style}
51
+ {...otherProps}
52
+ />
53
+ </PaperStylesProvider>
48
54
  );
49
55
  });
50
56
 
@@ -19,6 +19,12 @@ export default interface PaperProps extends OverridableComponentProps<ViewProps,
19
19
  */
20
20
  color?: PaperColor;
21
21
 
22
+ /**
23
+ * The hex color value of Paper.
24
+ * It has higher priority than `color` prop.
25
+ */
26
+ colorValue?: string;
27
+
22
28
  /**
23
29
  * Shadow depth, corresponds to `dp` in the spec.
24
30
  * It accepts values between 0 and 24 inclusive.
@@ -0,0 +1,9 @@
1
+ import { createContext } from 'react';
2
+
3
+ export type PaperStyles = {
4
+ backgroundColor: string;
5
+ }
6
+
7
+ export const PaperStylesContext = createContext<PaperStyles | null>(null);
8
+
9
+ export default PaperStylesContext.Provider;
@@ -0,0 +1,6 @@
1
+ import { useContext } from 'react';
2
+ import { PaperStylesContext } from './PaperStylesProvider';
3
+
4
+ export default function usePaperStyles() {
5
+ return useContext(PaperStylesContext);
6
+ };
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import { Animated, LayoutChangeEvent, StyleSheet } from 'react-native';
3
3
  import { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';
4
4
  import { useTheme } from '../styles';
5
+ import usePaperStyles from '../Paper/usePaperStyles';
5
6
  import { inputPaddingHorizontal } from './utils';
6
7
 
7
8
  interface LabelProps {
@@ -30,8 +31,6 @@ interface LabelProps {
30
31
  type InputLabelStyles = NamedStylesStringUnion<'background' | 'backgroundText' | 'placeholder'>;
31
32
 
32
33
  const useStyles: UseStyles<InputLabelStyles> = function (): InputLabelStyles {
33
- const theme = useTheme();
34
-
35
34
  return {
36
35
  background: {
37
36
  position: 'absolute',
@@ -40,15 +39,13 @@ const useStyles: UseStyles<InputLabelStyles> = function (): InputLabelStyles {
40
39
  bottom: 0,
41
40
  right: 0,
42
41
  width: 8,
43
- height: 2,
44
- backgroundColor: theme.palette.background.default,
42
+ height: 4,
45
43
  },
46
44
  backgroundText: {
47
45
  position: 'absolute',
48
46
  left: 18,
49
47
  paddingHorizontal: 0,
50
48
  color: 'transparent',
51
- backgroundColor: theme.palette.background.default,
52
49
  },
53
50
  placeholder: {
54
51
  position: 'absolute',
@@ -81,8 +78,16 @@ const InputLabel = (props: LabelProps) => {
81
78
  value,
82
79
  } = props;
83
80
 
81
+ const theme = useTheme();
82
+
84
83
  const styles = useStyles();
85
84
 
85
+ const paperStyles = usePaperStyles();
86
+
87
+ const backgroundStyle = {
88
+ backgroundColor: paperStyles?.backgroundColor ?? theme.palette.background.default,
89
+ };
90
+
86
91
  const hasFocus = hasActiveOutline || value;
87
92
  const opacity = animatedLabel.interpolate({
88
93
  inputRange: [0, 1],
@@ -141,6 +146,7 @@ const InputLabel = (props: LabelProps) => {
141
146
  pointerEvents={'none'}
142
147
  style={[
143
148
  styles.background,
149
+ backgroundStyle,
144
150
  {
145
151
  opacity,
146
152
  transform: [
@@ -159,6 +165,7 @@ const InputLabel = (props: LabelProps) => {
159
165
  style={[
160
166
  styles.placeholder,
161
167
  styles.backgroundText,
168
+ backgroundStyle,
162
169
  labelStyle,
163
170
  {
164
171
  top: topPosition + 1,
@@ -34,7 +34,6 @@ const useStyles: UseStyles<OutlinedTextFieldStyles> = function (): OutlinedTextF
34
34
  left: 0,
35
35
  right: 0,
36
36
  bottom: 0,
37
- backgroundColor: theme.palette.background.default,
38
37
  borderRadius: theme.shape.roundness,
39
38
  },
40
39
  input: {
@@ -80,6 +79,7 @@ const OutlinedTextField = React.forwardRef<TextInput, OutlinedTextFieldProps>(fu
80
79
  } = props;
81
80
 
82
81
  const theme = useTheme();
82
+
83
83
  const styles = useStyles();
84
84
 
85
85
  const hasActiveOutline = focused || error;
@@ -3,16 +3,8 @@ import { Path } from 'react-native-svg';
3
3
  import { createSvgIcon } from '../../utils';
4
4
 
5
5
  export default createSvgIcon(
6
- <React.Fragment>
7
- <Path
8
- fillRule="evenodd"
9
- clipRule="evenodd"
10
- d="M3 7C3 4.79086 4.79086 3 7 3H13C15.2091 3 17 4.79086 17 7V13C17 15.2091 15.2091 17 13 17H7C4.79086 17 3 15.2091 3 13V7Z"
11
- />
12
- <Path
13
- d="M14.8303 7.53033L8.32856 14.0321L4.96967 10.6732L6.03033 9.61252L8.32856 11.9108L13.7697 6.46967L14.8303 7.53033Z"
14
- fill="#FFFFFF"
15
- />
16
- </React.Fragment>,
6
+ <Path
7
+ d="M7 3C4.79086 3 3 4.79086 3 7V13C3 15.2091 4.79086 17 7 17H13C15.2091 17 17 15.2091 17 13V7C17 4.79086 15.2091 3 13 3H7ZM8.8589 13.5018L8.32857 14.0321L7.79824 13.5018L4.96967 10.6732L6.03033 9.61252L8.32857 11.9108L13.7697 6.46967L14.8303 7.53033L8.8589 13.5018Z"
8
+ />,
17
9
  'CheckboxChecked',
18
10
  );