@draftbit/core 43.4.11-0e8ceb.4 → 43.4.11-3a52a5.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 (46) hide show
  1. package/lib/commonjs/components/Checkbox/Checkbox.js +6 -6
  2. package/lib/commonjs/components/Checkbox/Checkbox.js.map +1 -1
  3. package/lib/commonjs/components/Checkbox/CheckboxGroupRow.js +142 -0
  4. package/lib/commonjs/components/Checkbox/CheckboxGroupRow.js.map +1 -0
  5. package/lib/commonjs/components/Checkbox/CheckboxRow.js +54 -46
  6. package/lib/commonjs/components/Checkbox/CheckboxRow.js.map +1 -1
  7. package/lib/commonjs/components/DatePicker/DatePicker.js +2 -9
  8. package/lib/commonjs/components/DatePicker/DatePicker.js.map +1 -1
  9. package/lib/commonjs/components/Divider.js +13 -3
  10. package/lib/commonjs/components/Divider.js.map +1 -1
  11. package/lib/commonjs/components/FAB.js +5 -19
  12. package/lib/commonjs/components/FAB.js.map +1 -1
  13. package/lib/commonjs/components/RadioButton/RadioButtonRow.js +1 -1
  14. package/lib/commonjs/components/RadioButton/RadioButtonRow.js.map +1 -1
  15. package/lib/commonjs/mappings/CheckboxRow.js +25 -6
  16. package/lib/commonjs/mappings/CheckboxRow.js.map +1 -1
  17. package/lib/module/components/Checkbox/Checkbox.js +6 -6
  18. package/lib/module/components/Checkbox/Checkbox.js.map +1 -1
  19. package/lib/module/components/Checkbox/CheckboxGroupRow.js +120 -0
  20. package/lib/module/components/Checkbox/CheckboxGroupRow.js.map +1 -0
  21. package/lib/module/components/Checkbox/CheckboxRow.js +52 -46
  22. package/lib/module/components/Checkbox/CheckboxRow.js.map +1 -1
  23. package/lib/module/components/DatePicker/DatePicker.js +3 -9
  24. package/lib/module/components/DatePicker/DatePicker.js.map +1 -1
  25. package/lib/module/components/RadioButton/RadioButtonRow.js +1 -1
  26. package/lib/module/components/RadioButton/RadioButtonRow.js.map +1 -1
  27. package/lib/module/components/Stepper.js.map +1 -1
  28. package/lib/module/components/useAuthState.js.map +1 -1
  29. package/lib/module/mappings/CheckboxRow.js +26 -7
  30. package/lib/module/mappings/CheckboxRow.js.map +1 -1
  31. package/lib/typescript/src/components/Checkbox/CheckboxGroupRow.d.ts +21 -0
  32. package/lib/typescript/src/components/Checkbox/CheckboxRow.d.ts +3 -7
  33. package/lib/typescript/src/mappings/CheckboxRow.d.ts +50 -9
  34. package/package.json +2 -2
  35. package/src/components/Checkbox/Checkbox.js +6 -6
  36. package/src/components/Checkbox/Checkbox.tsx +8 -6
  37. package/src/components/Checkbox/CheckboxGroupRow.js +77 -0
  38. package/src/components/Checkbox/CheckboxGroupRow.tsx +152 -0
  39. package/src/components/Checkbox/CheckboxRow.js +33 -32
  40. package/src/components/Checkbox/CheckboxRow.tsx +66 -62
  41. package/src/components/DatePicker/DatePicker.js +2 -4
  42. package/src/components/DatePicker/DatePicker.tsx +1 -14
  43. package/src/components/RadioButton/RadioButtonRow.js +1 -1
  44. package/src/components/RadioButton/RadioButtonRow.tsx +1 -1
  45. package/src/mappings/CheckboxRow.js +26 -7
  46. package/src/mappings/CheckboxRow.ts +28 -6
@@ -15,8 +15,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
15
15
 
16
16
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
17
 
18
- 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); }
19
-
20
18
  const Divider = _ref => {
21
19
  let {
22
20
  style,
@@ -26,7 +24,19 @@ const Divider = _ref => {
26
24
  },
27
25
  ...rest
28
26
  } = _ref;
29
- return /*#__PURE__*/React.createElement(_reactNative.View, _extends({
27
+ return /*#__PURE__*/React.createElement(_reactNative.View, {
28
+ style: [{
29
+ backgroundColor: color || colors.divider,
30
+ height: _reactNative.StyleSheet.hairlineWidth
31
+ }, style],
32
+ ...rest
33
+ });
34
+ };
35
+
36
+ var _default = (0, _theming.withTheme)(Divider);
37
+
38
+ exports.default = _default;
39
+ //# sourceMappingURL=Divider.js.map /*#__PURE__*/React.createElement(_reactNative.View, _extends({
30
40
  style: [{
31
41
  backgroundColor: color || colors.divider,
32
42
  height: _reactNative.StyleSheet.hairlineWidth
@@ -1 +1 @@
1
- {"version":3,"sources":["Divider.tsx"],"names":["Divider","style","color","theme","colors","rest","backgroundColor","divider","height","StyleSheet","hairlineWidth"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;AASA,MAAMA,OAAwB,GAAG,QAK3B;AAAA,MAL4B;AAChCC,IAAAA,KADgC;AAEhCC,IAAAA,KAFgC;AAGhCC,IAAAA,KAAK,EAAE;AAAEC,MAAAA;AAAF,KAHyB;AAIhC,OAAGC;AAJ6B,GAK5B;AACJ,sBACE,oBAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACL;AACEC,MAAAA,eAAe,EAAEJ,KAAK,IAAIE,MAAM,CAACG,OADnC;AAEEC,MAAAA,MAAM,EAAEC,wBAAWC;AAFrB,KADK,EAKLT,KALK;AADT,KAQMI,IARN,EADF;AAYD,CAlBD;;eAoBe,wBAAUL,OAAV,C","sourcesContent":["import * as React from \"react\";\nimport { StyleSheet, View, StyleProp, ViewStyle } from \"react-native\";\nimport { withTheme } from \"../theming\";\nimport theme from \"../styles/DefaultTheme\";\n\ntype Props = {\n style?: StyleProp<ViewStyle>;\n color?: string;\n theme: typeof theme;\n};\n\nconst Divider: React.FC<Props> = ({\n style,\n color,\n theme: { colors },\n ...rest\n}) => {\n return (\n <View\n style={[\n {\n backgroundColor: color || colors.divider,\n height: StyleSheet.hairlineWidth,\n },\n style,\n ]}\n {...rest}\n />\n );\n};\n\nexport default withTheme(Divider);\n"]}
1
+ {"version":3,"sources":["Divider.js"],"names":["Divider","style","color","theme","colors","rest","React","createElement","View","backgroundColor","divider","height","StyleSheet","hairlineWidth"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;AACA,MAAMA,OAAO,GAAG,QAAkD;AAAA,MAAjD;AAAEC,IAAAA,KAAF;AAASC,IAAAA,KAAT;AAAgBC,IAAAA,KAAK,EAAE;AAAEC,MAAAA;AAAF,KAAvB;AAAmC,OAAGC;AAAtC,GAAiD;AAC9D,sBAAQC,KAAK,CAACC,aAAN,CAAoBC,iBAApB,EAA0B;AAAEP,IAAAA,KAAK,EAAE,CACnC;AACIQ,MAAAA,eAAe,EAAEP,KAAK,IAAIE,MAAM,CAACM,OADrC;AAEIC,MAAAA,MAAM,EAAEC,wBAAWC;AAFvB,KADmC,EAKnCZ,KALmC,CAAT;AAM3B,OAAGI;AANwB,GAA1B,CAAR;AAOH,CARD;;eASe,wBAAUL,OAAV,C","sourcesContent":["import * as React from \"react\";\nimport { StyleSheet, View } from \"react-native\";\nimport { withTheme } from \"../theming\";\nconst Divider = ({ style, color, theme: { colors }, ...rest }) => {\n return (React.createElement(View, { style: [\n {\n backgroundColor: color || colors.divider,\n height: StyleSheet.hairlineWidth,\n },\n style,\n ], ...rest }));\n};\nexport default withTheme(Divider);\n"]}
@@ -15,6 +15,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
15
15
 
16
16
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
17
 
18
+ 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); }
19
+
18
20
  const FAB = _ref => {
19
21
  let {
20
22
  onPress,
@@ -38,7 +40,7 @@ const FAB = _ref => {
38
40
  borderRadius: size / 2,
39
41
  overflow: "hidden"
40
42
  }, style]
41
- }, /*#__PURE__*/React.createElement(_reactNative.Pressable, {
43
+ }, /*#__PURE__*/React.createElement(_reactNative.Pressable, _extends({
42
44
  onPress: onPress,
43
45
  disabled: loading || disabled,
44
46
  android_ripple: {
@@ -56,9 +58,8 @@ const FAB = _ref => {
56
58
  borderRadius: size / 2,
57
59
  backgroundColor
58
60
  }];
59
- },
60
- ...props
61
- }, /*#__PURE__*/React.createElement(_reactNative.View, null, loading ? /*#__PURE__*/React.createElement(_reactNative.ActivityIndicator, {
61
+ }
62
+ }, props), /*#__PURE__*/React.createElement(_reactNative.View, null, loading ? /*#__PURE__*/React.createElement(_reactNative.ActivityIndicator, {
62
63
  style: size > 50 ? {
63
64
  marginTop: 2,
64
65
  marginLeft: 2
@@ -88,20 +89,5 @@ const styles = _reactNative.StyleSheet.create({
88
89
 
89
90
  var _default = (0, _theming.withTheme)(FAB);
90
91
 
91
- exports.default = _default;
92
- //# sourceMappingURL=FAB.js.map backgroundColor: "#5a45ff",
93
- justifyContent: "center",
94
- alignItems: "center",
95
- ..._reactNative.Platform.select({
96
- web: {
97
- cursor: "pointer",
98
- userSelect: "none"
99
- }
100
- })
101
- }
102
- });
103
-
104
- var _default = (0, _theming.withTheme)(FAB);
105
-
106
92
  exports.default = _default;
107
93
  //# sourceMappingURL=FAB.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["FAB.js"],"names":["FAB","onPress","disabled","loading","iconName","style","theme","iconColor","bgColor","size","Icon","props","backgroundColor","colors","primary","color","React","createElement","View","width","height","borderRadius","overflow","Pressable","android_ripple","radius","pressed","styles","button","opacity","ActivityIndicator","marginTop","marginLeft","undefined","name","StyleSheet","create","justifyContent","alignItems","Platform","select","web","cursor","userSelect"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;AACA,MAAMA,GAAG,GAAG,QAAiI;AAAA,MAAhI;AAAEC,IAAAA,OAAF;AAAWC,IAAAA,QAAX;AAAqBC,IAAAA,OAArB;AAA8BC,IAAAA,QAAQ,GAAG,mBAAzC;AAA8DC,IAAAA,KAA9D;AAAqEC,IAAAA,KAArE;AAA4EC,IAAAA,SAA5E;AAAuFC,IAAAA,OAAvF;AAAgGC,IAAAA,IAAI,GAAG,EAAvG;AAA2GC,IAAAA,IAA3G;AAAiH,OAAGC;AAApH,GAAgI;AACzI,QAAMC,eAAe,GAAGJ,OAAO,IAAIF,KAAK,CAACO,MAAN,CAAaC,OAAhD;AACA,QAAMC,KAAK,GAAGR,SAAS,IAAI,MAA3B;AACA,sBAAQS,KAAK,CAACC,aAAN,CAAoBC,iBAApB,EAA0B;AAAEb,IAAAA,KAAK,EAAE,CACnC;AACIc,MAAAA,KAAK,EAAEV,IADX;AAEIW,MAAAA,MAAM,EAAEX,IAFZ;AAGIY,MAAAA,YAAY,EAAEZ,IAAI,GAAG,CAHzB;AAIIa,MAAAA,QAAQ,EAAE;AAJd,KADmC,EAOnCjB,KAPmC;AAAT,GAA1B,eASJW,KAAK,CAACC,aAAN,CAAoBM,sBAApB,EAA+B;AAAEtB,IAAAA,OAAO,EAAEA,OAAX;AAAoBC,IAAAA,QAAQ,EAAEC,OAAO,IAAID,QAAzC;AAAmDsB,IAAAA,cAAc,EAAE;AAC1FT,MAAAA,KAAK,EAAE,MADmF;AAE1FU,MAAAA,MAAM,EAAEhB,IAAI,GAAG;AAF2E,KAAnE;AAGxBJ,IAAAA,KAAK,EAAE,SAAiB;AAAA,UAAhB;AAAEqB,QAAAA;AAAF,OAAgB;AACvB,aAAO,CACHC,MAAM,CAACC,MADJ,EAEH;AACIC,QAAAA,OAAO,EAAEH,OAAO,IAAIxB,QAAX,GAAsB,IAAtB,GAA6B,CAD1C;AAEIiB,QAAAA,KAAK,EAAEV,IAFX;AAGIW,QAAAA,MAAM,EAAEX,IAHZ;AAIIY,QAAAA,YAAY,EAAEZ,IAAI,GAAG,CAJzB;AAKIG,QAAAA;AALJ,OAFG,CAAP;AAUH,KAd0B;AAcxB,OAAGD;AAdqB,GAA/B,eAeIK,KAAK,CAACC,aAAN,CAAoBC,iBAApB,EAA0B,IAA1B,EAAgCf,OAAO,gBAAIa,KAAK,CAACC,aAAN,CAAoBa,8BAApB,EAAuC;AAAEzB,IAAAA,KAAK,EAAEI,IAAI,GAAG,EAAP,GAAY;AAAEsB,MAAAA,SAAS,EAAE,CAAb;AAAgBC,MAAAA,UAAU,EAAE;AAA5B,KAAZ,GAA8CC,SAAvD;AAAkExB,IAAAA,IAAI,EAAEA,IAAI,IAAI,EAAR,GAAa,OAAb,GAAuB,OAA/F;AAAwGM,IAAAA,KAAK,EAAEA;AAA/G,GAAvC,CAAJ,gBAAuKC,KAAK,CAACC,aAAN,CAAoBP,IAApB,EAA0B;AAAEwB,IAAAA,IAAI,EAAE9B,QAAR;AAAkBK,IAAAA,IAAI,EAAEA,IAAxB;AAA8BM,IAAAA,KAAK,EAAEA;AAArC,GAA1B,CAA9M,CAfJ,CATI,CAAR;AAyBH,CA5BD;;AA6BA,MAAMY,MAAM,GAAGQ,wBAAWC,MAAX,CAAkB;AAC7BR,EAAAA,MAAM,EAAE;AACJhB,IAAAA,eAAe,EAAE,SADb;AAEJyB,IAAAA,cAAc,EAAE,QAFZ;AAGJC,IAAAA,UAAU,EAAE,QAHR;AAIJ,OAAGC,sBAASC,MAAT,CAAgB;AACfC,MAAAA,GAAG,EAAE;AACDC,QAAAA,MAAM,EAAE,SADP;AAEDC,QAAAA,UAAU,EAAE;AAFX;AADU,KAAhB;AAJC;AADqB,CAAlB,CAAf;;eAae,wBAAU3C,GAAV,C","sourcesContent":["import * as React from \"react\";\nimport { View, StyleSheet, Pressable, ActivityIndicator, Platform, } from \"react-native\";\nimport { withTheme } from \"../theming\";\nconst FAB = ({ onPress, disabled, loading, iconName = \"MaterialIcons/add\", style, theme, iconColor, bgColor, size = 50, Icon, ...props }) => {\n const backgroundColor = bgColor || theme.colors.primary;\n const color = iconColor || \"#FFF\";\n return (React.createElement(View, { style: [\n {\n width: size,\n height: size,\n borderRadius: size / 2,\n overflow: \"hidden\",\n },\n style,\n ] },\n React.createElement(Pressable, { onPress: onPress, disabled: loading || disabled, android_ripple: {\n color: \"#333\",\n radius: size / 4,\n }, style: ({ pressed }) => {\n return [\n styles.button,\n {\n opacity: pressed || disabled ? 0.75 : 1,\n width: size,\n height: size,\n borderRadius: size / 2,\n backgroundColor,\n },\n ];\n }, ...props },\n React.createElement(View, null, loading ? (React.createElement(ActivityIndicator, { style: size > 50 ? { marginTop: 2, marginLeft: 2 } : undefined, size: size <= 50 ? \"small\" : \"large\", color: color })) : (React.createElement(Icon, { name: iconName, size: size, color: color }))))));\n};\nconst styles = StyleSheet.create({\n button: {\n backgroundColor: \"#5a45ff\",\n justifyContent: \"center\",\n alignItems: \"center\",\n ...Platform.select({\n web: {\n cursor: \"pointer\",\n userSelect: \"none\",\n },\n }),\n },\n});\nexport default withTheme(FAB);\n"]}
1
+ {"version":3,"sources":["FAB.tsx"],"names":["FAB","onPress","disabled","loading","iconName","style","theme","iconColor","bgColor","size","Icon","props","backgroundColor","colors","primary","color","width","height","borderRadius","overflow","radius","pressed","styles","button","opacity","marginTop","marginLeft","undefined","StyleSheet","create","justifyContent","alignItems","Platform","select","web","cursor","userSelect"],"mappings":";;;;;;;AAAA;;AACA;;AAUA;;;;;;;;AAiBA,MAAMA,GAAoB,GAAG,QAYvB;AAAA,MAZwB;AAC5BC,IAAAA,OAD4B;AAE5BC,IAAAA,QAF4B;AAG5BC,IAAAA,OAH4B;AAI5BC,IAAAA,QAAQ,GAAG,mBAJiB;AAK5BC,IAAAA,KAL4B;AAM5BC,IAAAA,KAN4B;AAO5BC,IAAAA,SAP4B;AAQ5BC,IAAAA,OAR4B;AAS5BC,IAAAA,IAAI,GAAG,EATqB;AAU5BC,IAAAA,IAV4B;AAW5B,OAAGC;AAXyB,GAYxB;AACJ,QAAMC,eAAe,GAAGJ,OAAO,IAAIF,KAAK,CAACO,MAAN,CAAaC,OAAhD;AACA,QAAMC,KAAK,GAAGR,SAAS,IAAI,MAA3B;AAEA,sBACE,oBAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACL;AACES,MAAAA,KAAK,EAAEP,IADT;AAEEQ,MAAAA,MAAM,EAAER,IAFV;AAGES,MAAAA,YAAY,EAAET,IAAI,GAAG,CAHvB;AAIEU,MAAAA,QAAQ,EAAE;AAJZ,KADK,EAOLd,KAPK;AADT,kBAWE,oBAAC,sBAAD;AACE,IAAA,OAAO,EAAEJ,OADX;AAEE,IAAA,QAAQ,EAAEE,OAAO,IAAID,QAFvB;AAGE,IAAA,cAAc,EAAE;AACda,MAAAA,KAAK,EAAE,MADO;AAEdK,MAAAA,MAAM,EAAEX,IAAI,GAAG;AAFD,KAHlB;AAOE,IAAA,KAAK,EAAE,SAAiB;AAAA,UAAhB;AAAEY,QAAAA;AAAF,OAAgB;AACtB,aAAO,CACLC,MAAM,CAACC,MADF,EAEL;AACEC,QAAAA,OAAO,EAAEH,OAAO,IAAInB,QAAX,GAAsB,IAAtB,GAA6B,CADxC;AAEEc,QAAAA,KAAK,EAAEP,IAFT;AAGEQ,QAAAA,MAAM,EAAER,IAHV;AAIES,QAAAA,YAAY,EAAET,IAAI,GAAG,CAJvB;AAKEG,QAAAA;AALF,OAFK,CAAP;AAUD;AAlBH,KAmBMD,KAnBN,gBAqBE,oBAAC,iBAAD,QACGR,OAAO,gBACN,oBAAC,8BAAD;AACE,IAAA,KAAK,EAAEM,IAAI,GAAG,EAAP,GAAY;AAAEgB,MAAAA,SAAS,EAAE,CAAb;AAAgBC,MAAAA,UAAU,EAAE;AAA5B,KAAZ,GAA8CC,SADvD;AAEE,IAAA,IAAI,EAAElB,IAAI,IAAI,EAAR,GAAa,OAAb,GAAuB,OAF/B;AAGE,IAAA,KAAK,EAAEM;AAHT,IADM,gBAON,oBAAC,IAAD;AAAM,IAAA,IAAI,EAAEX,QAAZ;AAAsB,IAAA,IAAI,EAAEK,IAA5B;AAAkC,IAAA,KAAK,EAAEM;AAAzC,IARJ,CArBF,CAXF,CADF;AA+CD,CA/DD;;AAiEA,MAAMO,MAAM,GAAGM,wBAAWC,MAAX,CAAkB;AAC/BN,EAAAA,MAAM,EAAE;AACNX,IAAAA,eAAe,EAAE,SADX;AAENkB,IAAAA,cAAc,EAAE,QAFV;AAGNC,IAAAA,UAAU,EAAE,QAHN;AAIN,OAAGC,sBAASC,MAAT,CAAgB;AACjBC,MAAAA,GAAG,EAAE;AACHC,QAAAA,MAAM,EAAE,SADL;AAEHC,QAAAA,UAAU,EAAE;AAFT;AADY,KAAhB;AAJG;AADuB,CAAlB,CAAf;;eAce,wBAAUpC,GAAV,C","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n StyleSheet,\n Pressable,\n ActivityIndicator,\n StyleProp,\n ViewStyle,\n PressableProps,\n Platform,\n} from \"react-native\";\nimport { withTheme } from \"../theming\";\nimport type { Theme } from \"../styles/DefaultTheme\";\nimport type { IconSlot } from \"../interfaces/Icon\";\n\ntype Props = {\n disabled?: boolean;\n loading?: boolean;\n size?: number;\n bgColor?: string;\n iconColor?: string;\n iconName?: string;\n onPress: () => void;\n theme: Theme;\n style?: StyleProp<ViewStyle>;\n} & PressableProps &\n IconSlot;\n\nconst FAB: React.FC<Props> = ({\n onPress,\n disabled,\n loading,\n iconName = \"MaterialIcons/add\",\n style,\n theme,\n iconColor,\n bgColor,\n size = 50,\n Icon,\n ...props\n}) => {\n const backgroundColor = bgColor || theme.colors.primary;\n const color = iconColor || \"#FFF\";\n\n return (\n <View\n style={[\n {\n width: size,\n height: size,\n borderRadius: size / 2,\n overflow: \"hidden\",\n },\n style,\n ]}\n >\n <Pressable\n onPress={onPress}\n disabled={loading || disabled}\n android_ripple={{\n color: \"#333\",\n radius: size / 4,\n }}\n style={({ pressed }) => {\n return [\n styles.button,\n {\n opacity: pressed || disabled ? 0.75 : 1,\n width: size,\n height: size,\n borderRadius: size / 2,\n backgroundColor,\n },\n ];\n }}\n {...props}\n >\n <View>\n {loading ? (\n <ActivityIndicator\n style={size > 50 ? { marginTop: 2, marginLeft: 2 } : undefined}\n size={size <= 50 ? \"small\" : \"large\"}\n color={color}\n />\n ) : (\n <Icon name={iconName} size={size} color={color} />\n )}\n </View>\n </Pressable>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n button: {\n backgroundColor: \"#5a45ff\",\n justifyContent: \"center\",\n alignItems: \"center\",\n ...Platform.select({\n web: {\n cursor: \"pointer\",\n userSelect: \"none\",\n },\n }),\n },\n});\n\nexport default withTheme(FAB);\n"]}
@@ -122,7 +122,7 @@ const styles = _reactNative.StyleSheet.create({
122
122
  paddingStart: 20,
123
123
  minHeight: 50,
124
124
  paddingEnd: 20,
125
- flex: 1,
125
+ display: "flex",
126
126
  ..._reactNative.Platform.select({
127
127
  web: {
128
128
  cursor: "pointer",
@@ -1 +1 @@
1
- {"version":3,"sources":["RadioButtonRow.tsx"],"names":["Direction","getRadioButtonAlignment","parentDirection","direction","GroupDirection","Horizontal","Row","RowReverse","renderLabel","value","labelStyle","textStyle","RadioButtonRow","Icon","label","color","unselectedColor","onPress","labelContainerStyle","radioButtonStyle","selected","disabled","style","rest","contextValue","onValueChange","realValue","realContextValue","isSelected","handlePress","textStyles","viewStyles","styles","mainParent","flexDirection","alignItems","flex","StyleSheet","create","justifyContent","paddingStart","minHeight","paddingEnd","Platform","select","web","cursor","userSelect"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n StyleProp,\n ViewStyle,\n StyleSheet,\n TextStyle,\n View,\n Platform,\n} from \"react-native\";\nimport RadioButton, { RadioButtonProps } from \"./RadioButton\";\nimport Text from \"../Text\";\nimport { useRadioButtonGroupContext } from \"./context\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\nimport { Direction as GroupDirection } from \"./context\";\nimport Touchable from \"../Touchable\";\nimport { extractStyles, getValueForRadioButton } from \"../../utilities\";\n\nexport enum Direction {\n Row = \"row\",\n RowReverse = \"row-reverse\",\n}\n\nexport interface RadioButtonRowProps extends Omit<RadioButtonProps, \"onPress\"> {\n label: string | React.ReactNode;\n value: string | number; // A string (or number that will be parsed String(number)) that this radio button row represents when selected\n color?: string;\n unselectedColor?: string;\n labelContainerStyle: StyleProp<ViewStyle>;\n radioButtonStyle?: StyleProp<ViewStyle>;\n labelStyle?: StyleProp<TextStyle>;\n onPress?: (value: string) => void;\n direction?: Direction;\n}\n\nconst getRadioButtonAlignment = (\n parentDirection: GroupDirection | undefined,\n direction: Direction\n) => {\n if (parentDirection === GroupDirection.Horizontal) {\n return direction === Direction.Row ? \"flex-start\" : \"flex-end\";\n } else if (direction === Direction.RowReverse) {\n return \"flex-start\";\n } else {\n return \"flex-end\";\n }\n};\n\nconst renderLabel = (\n value: string | React.ReactNode,\n labelStyle: StyleProp<TextStyle>,\n textStyle: StyleProp<TextStyle>\n) => {\n if (typeof value === \"string\") {\n return <Text style={[labelStyle, textStyle]}>{value}</Text>;\n } else {\n return <>{value}</>;\n }\n};\n\nconst RadioButtonRow: React.FC<RadioButtonRowProps & IconSlot> = ({\n Icon,\n label,\n value = \"\",\n color,\n unselectedColor,\n onPress,\n labelContainerStyle,\n labelStyle,\n radioButtonStyle,\n direction = Direction.Row,\n selected,\n disabled,\n style,\n ...rest\n}) => {\n const {\n value: contextValue,\n onValueChange,\n direction: parentDirection,\n } = useRadioButtonGroupContext();\n\n const realValue = getValueForRadioButton(value);\n const realContextValue = getValueForRadioButton(contextValue);\n const isSelected = selected ?? realContextValue === realValue;\n\n const handlePress = () => {\n onPress?.(realValue);\n onValueChange?.(realValue);\n };\n\n const { textStyles, viewStyles } = extractStyles(style);\n\n return (\n <Touchable\n onPress={handlePress}\n style={[styles.mainParent, { flexDirection: direction }, viewStyles]}\n disabled={disabled}\n {...rest}\n >\n <View\n style={[\n styles.label,\n {\n alignItems: direction === Direction.Row ? \"flex-start\" : \"flex-end\",\n },\n labelContainerStyle,\n ]}\n >\n {renderLabel(label, labelStyle, textStyles)}\n </View>\n <View\n style={{\n flex: 1,\n alignItems: getRadioButtonAlignment(parentDirection, direction),\n }}\n >\n <RadioButton\n Icon={Icon}\n selected={isSelected}\n value={realValue}\n color={color}\n unselectedColor={unselectedColor}\n style={radioButtonStyle}\n />\n </View>\n </Touchable>\n );\n};\n\nconst styles = StyleSheet.create({\n mainParent: {\n alignItems: \"center\",\n justifyContent: \"space-around\",\n paddingStart: 20,\n minHeight: 50,\n paddingEnd: 20,\n flex: 1,\n ...Platform.select({\n web: {\n cursor: \"pointer\",\n userSelect: \"none\",\n },\n }),\n },\n label: {\n flex: 3,\n },\n});\n\nexport default RadioButtonRow;\n"]}
1
+ {"version":3,"sources":["RadioButtonRow.tsx"],"names":["Direction","getRadioButtonAlignment","parentDirection","direction","GroupDirection","Horizontal","Row","RowReverse","renderLabel","value","labelStyle","textStyle","RadioButtonRow","Icon","label","color","unselectedColor","onPress","labelContainerStyle","radioButtonStyle","selected","disabled","style","rest","contextValue","onValueChange","realValue","realContextValue","isSelected","handlePress","textStyles","viewStyles","styles","mainParent","flexDirection","alignItems","flex","StyleSheet","create","justifyContent","paddingStart","minHeight","paddingEnd","display","Platform","select","web","cursor","userSelect"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n StyleProp,\n ViewStyle,\n StyleSheet,\n TextStyle,\n View,\n Platform,\n} from \"react-native\";\nimport RadioButton, { RadioButtonProps } from \"./RadioButton\";\nimport Text from \"../Text\";\nimport { useRadioButtonGroupContext } from \"./context\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\nimport { Direction as GroupDirection } from \"./context\";\nimport Touchable from \"../Touchable\";\nimport { extractStyles, getValueForRadioButton } from \"../../utilities\";\n\nexport enum Direction {\n Row = \"row\",\n RowReverse = \"row-reverse\",\n}\n\nexport interface RadioButtonRowProps extends Omit<RadioButtonProps, \"onPress\"> {\n label: string | React.ReactNode;\n value: string | number; // A string (or number that will be parsed String(number)) that this radio button row represents when selected\n color?: string;\n unselectedColor?: string;\n labelContainerStyle: StyleProp<ViewStyle>;\n radioButtonStyle?: StyleProp<ViewStyle>;\n labelStyle?: StyleProp<TextStyle>;\n onPress?: (value: string) => void;\n direction?: Direction;\n}\n\nconst getRadioButtonAlignment = (\n parentDirection: GroupDirection | undefined,\n direction: Direction\n) => {\n if (parentDirection === GroupDirection.Horizontal) {\n return direction === Direction.Row ? \"flex-start\" : \"flex-end\";\n } else if (direction === Direction.RowReverse) {\n return \"flex-start\";\n } else {\n return \"flex-end\";\n }\n};\n\nconst renderLabel = (\n value: string | React.ReactNode,\n labelStyle: StyleProp<TextStyle>,\n textStyle: StyleProp<TextStyle>\n) => {\n if (typeof value === \"string\") {\n return <Text style={[labelStyle, textStyle]}>{value}</Text>;\n } else {\n return <>{value}</>;\n }\n};\n\nconst RadioButtonRow: React.FC<RadioButtonRowProps & IconSlot> = ({\n Icon,\n label,\n value = \"\",\n color,\n unselectedColor,\n onPress,\n labelContainerStyle,\n labelStyle,\n radioButtonStyle,\n direction = Direction.Row,\n selected,\n disabled,\n style,\n ...rest\n}) => {\n const {\n value: contextValue,\n onValueChange,\n direction: parentDirection,\n } = useRadioButtonGroupContext();\n\n const realValue = getValueForRadioButton(value);\n const realContextValue = getValueForRadioButton(contextValue);\n const isSelected = selected ?? realContextValue === realValue;\n\n const handlePress = () => {\n onPress?.(realValue);\n onValueChange?.(realValue);\n };\n\n const { textStyles, viewStyles } = extractStyles(style);\n\n return (\n <Touchable\n onPress={handlePress}\n style={[styles.mainParent, { flexDirection: direction }, viewStyles]}\n disabled={disabled}\n {...rest}\n >\n <View\n style={[\n styles.label,\n {\n alignItems: direction === Direction.Row ? \"flex-start\" : \"flex-end\",\n },\n labelContainerStyle,\n ]}\n >\n {renderLabel(label, labelStyle, textStyles)}\n </View>\n <View\n style={{\n flex: 1,\n alignItems: getRadioButtonAlignment(parentDirection, direction),\n }}\n >\n <RadioButton\n Icon={Icon}\n selected={isSelected}\n value={realValue}\n color={color}\n unselectedColor={unselectedColor}\n style={radioButtonStyle}\n />\n </View>\n </Touchable>\n );\n};\n\nconst styles = StyleSheet.create({\n mainParent: {\n alignItems: \"center\",\n justifyContent: \"space-around\",\n paddingStart: 20,\n minHeight: 50,\n paddingEnd: 20,\n display: \"flex\",\n ...Platform.select({\n web: {\n cursor: \"pointer\",\n userSelect: \"none\",\n },\n }),\n },\n label: {\n flex: 3,\n },\n});\n\nexport default RadioButtonRow;\n"]}
@@ -14,8 +14,13 @@ const SEED_DATA = {
14
14
  layout: {
15
15
  minHeight: 50
16
16
  },
17
- triggers: [_types.Triggers.OnPress],
17
+ triggers: [_types.Triggers.OnPress, _types.Triggers.OnCheck, _types.Triggers.OnUncheck],
18
18
  props: {
19
+ fieldName: (0, _types.createFieldNameProp)({
20
+ defaultValue: "checkboxRowValue",
21
+ valuePropName: "value",
22
+ handlerPropName: "onPress"
23
+ }),
19
24
  label: (0, _types.createTextProp)({
20
25
  label: "Label",
21
26
  description: "Label to show with the checkbox",
@@ -29,17 +34,31 @@ const SEED_DATA = {
29
34
  editable: false
30
35
  }),
31
36
  direction: (0, _types.createRowDirectionProp)(),
32
- fieldName: (0, _types.createFieldNameProp)({
33
- defaultValue: "checkboxRowValue",
34
- valuePropName: "value",
35
- handlerPropName: "onPress"
36
- }),
37
37
  color: (0, _types.createColorProp)({
38
38
  description: "Color for the button (used when the checkbox is checked)"
39
39
  }),
40
40
  uncheckedColor: (0, _types.createColorProp)({
41
41
  label: "Unselected Color",
42
42
  description: "Color for the button when the checkbox is unchecked"
43
+ }),
44
+ disabled: (0, _types.createBoolProp)({
45
+ label: "Disabled",
46
+ description: "Whether the checkbox is disabled"
47
+ }),
48
+ size: (0, _types.createStaticNumberProp)({
49
+ label: "Size",
50
+ description: "Specifies the size of the icon",
51
+ defaultValue: null
52
+ }),
53
+ checkedIcon: (0, _types.createIconProp)({
54
+ label: "Checked Icon",
55
+ description: 'Icon to show when the checkbox status is "checked"',
56
+ defaultValue: null
57
+ }),
58
+ uncheckedIcon: (0, _types.createIconProp)({
59
+ label: "Unchecked Icon",
60
+ description: 'Icon to show when the checkbox status is "unchecked"',
61
+ defaultValue: null
43
62
  })
44
63
  }
45
64
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["CheckboxRow.ts"],"names":["SEED_DATA","name","tag","category","COMPONENT_TYPES","input","layout","minHeight","triggers","Triggers","OnPress","props","label","description","required","defaultValue","labelStyle","editable","direction","fieldName","valuePropName","handlerPropName","color","uncheckedColor"],"mappings":";;;;;;;AAAA;;AAUO,MAAMA,SAAS,GAAG;AACvBC,EAAAA,IAAI,EAAE,cADiB;AAEvBC,EAAAA,GAAG,EAAE,aAFkB;AAGvBC,EAAAA,QAAQ,EAAEC,uBAAgBC,KAHH;AAIvBC,EAAAA,MAAM,EAAE;AACNC,IAAAA,SAAS,EAAE;AADL,GAJe;AAOvBC,EAAAA,QAAQ,EAAE,CAACC,gBAASC,OAAV,CAPa;AAQvBC,EAAAA,KAAK,EAAE;AACLC,IAAAA,KAAK,EAAE,2BAAe;AACpBA,MAAAA,KAAK,EAAE,OADa;AAEpBC,MAAAA,WAAW,EAAE,iCAFO;AAGpBC,MAAAA,QAAQ,EAAE,IAHU;AAIpBC,MAAAA,YAAY,EAAE;AAJM,KAAf,CADF;AAOLC,IAAAA,UAAU,EAAE,4BAAgB;AAC1BJ,MAAAA,KAAK,EAAE,aADmB;AAE1BC,MAAAA,WAAW,EAAE,gCAFa;AAG1BC,MAAAA,QAAQ,EAAE,KAHgB;AAI1BG,MAAAA,QAAQ,EAAE;AAJgB,KAAhB,CAPP;AAaLC,IAAAA,SAAS,EAAE,oCAbN;AAcLC,IAAAA,SAAS,EAAE,gCAAoB;AAC7BJ,MAAAA,YAAY,EAAE,kBADe;AAE7BK,MAAAA,aAAa,EAAE,OAFc;AAG7BC,MAAAA,eAAe,EAAE;AAHY,KAApB,CAdN;AAmBLC,IAAAA,KAAK,EAAE,4BAAgB;AACrBT,MAAAA,WAAW,EAAE;AADQ,KAAhB,CAnBF;AAsBLU,IAAAA,cAAc,EAAE,4BAAgB;AAC9BX,MAAAA,KAAK,EAAE,kBADuB;AAE9BC,MAAAA,WAAW,EAAE;AAFiB,KAAhB;AAtBX;AARgB,CAAlB","sourcesContent":["import {\n createTextProp,\n createTextStyle,\n createRowDirectionProp,\n createFieldNameProp,\n COMPONENT_TYPES,\n Triggers,\n createColorProp,\n} from \"@draftbit/types\";\n\nexport const SEED_DATA = {\n name: \"Checkbox Row\",\n tag: \"CheckboxRow\",\n category: COMPONENT_TYPES.input,\n layout: {\n minHeight: 50,\n },\n triggers: [Triggers.OnPress],\n props: {\n label: createTextProp({\n label: \"Label\",\n description: \"Label to show with the checkbox\",\n required: true,\n defaultValue: \"First Option\",\n }),\n labelStyle: createTextStyle({\n label: \"Label Style\",\n description: \"Change the styles of the label\",\n required: false,\n editable: false,\n }),\n direction: createRowDirectionProp(),\n fieldName: createFieldNameProp({\n defaultValue: \"checkboxRowValue\",\n valuePropName: \"value\",\n handlerPropName: \"onPress\",\n }),\n color: createColorProp({\n description: \"Color for the button (used when the checkbox is checked)\",\n }),\n uncheckedColor: createColorProp({\n label: \"Unselected Color\",\n description: \"Color for the button when the checkbox is unchecked\",\n }),\n },\n};\n"]}
1
+ {"version":3,"sources":["CheckboxRow.ts"],"names":["SEED_DATA","name","tag","category","COMPONENT_TYPES","input","layout","minHeight","triggers","Triggers","OnPress","OnCheck","OnUncheck","props","fieldName","defaultValue","valuePropName","handlerPropName","label","description","required","labelStyle","editable","direction","color","uncheckedColor","disabled","size","checkedIcon","uncheckedIcon"],"mappings":";;;;;;;AAAA;;AAaO,MAAMA,SAAS,GAAG;AACvBC,EAAAA,IAAI,EAAE,cADiB;AAEvBC,EAAAA,GAAG,EAAE,aAFkB;AAGvBC,EAAAA,QAAQ,EAAEC,uBAAgBC,KAHH;AAIvBC,EAAAA,MAAM,EAAE;AACNC,IAAAA,SAAS,EAAE;AADL,GAJe;AAOvBC,EAAAA,QAAQ,EAAE,CAACC,gBAASC,OAAV,EAAmBD,gBAASE,OAA5B,EAAqCF,gBAASG,SAA9C,CAPa;AAQvBC,EAAAA,KAAK,EAAE;AACLC,IAAAA,SAAS,EAAE,gCAAoB;AAC7BC,MAAAA,YAAY,EAAE,kBADe;AAE7BC,MAAAA,aAAa,EAAE,OAFc;AAG7BC,MAAAA,eAAe,EAAE;AAHY,KAApB,CADN;AAMLC,IAAAA,KAAK,EAAE,2BAAe;AACpBA,MAAAA,KAAK,EAAE,OADa;AAEpBC,MAAAA,WAAW,EAAE,iCAFO;AAGpBC,MAAAA,QAAQ,EAAE,IAHU;AAIpBL,MAAAA,YAAY,EAAE;AAJM,KAAf,CANF;AAYLM,IAAAA,UAAU,EAAE,4BAAgB;AAC1BH,MAAAA,KAAK,EAAE,aADmB;AAE1BC,MAAAA,WAAW,EAAE,gCAFa;AAG1BC,MAAAA,QAAQ,EAAE,KAHgB;AAI1BE,MAAAA,QAAQ,EAAE;AAJgB,KAAhB,CAZP;AAkBLC,IAAAA,SAAS,EAAE,oCAlBN;AAmBLC,IAAAA,KAAK,EAAE,4BAAgB;AACrBL,MAAAA,WAAW,EAAE;AADQ,KAAhB,CAnBF;AAsBLM,IAAAA,cAAc,EAAE,4BAAgB;AAC9BP,MAAAA,KAAK,EAAE,kBADuB;AAE9BC,MAAAA,WAAW,EAAE;AAFiB,KAAhB,CAtBX;AA0BLO,IAAAA,QAAQ,EAAE,2BAAe;AACvBR,MAAAA,KAAK,EAAE,UADgB;AAEvBC,MAAAA,WAAW,EAAE;AAFU,KAAf,CA1BL;AA8BLQ,IAAAA,IAAI,EAAE,mCAAuB;AAC3BT,MAAAA,KAAK,EAAE,MADoB;AAE3BC,MAAAA,WAAW,EAAE,gCAFc;AAG3BJ,MAAAA,YAAY,EAAE;AAHa,KAAvB,CA9BD;AAmCLa,IAAAA,WAAW,EAAE,2BAAe;AAC1BV,MAAAA,KAAK,EAAE,cADmB;AAE1BC,MAAAA,WAAW,EAAE,oDAFa;AAG1BJ,MAAAA,YAAY,EAAE;AAHY,KAAf,CAnCR;AAwCLc,IAAAA,aAAa,EAAE,2BAAe;AAC5BX,MAAAA,KAAK,EAAE,gBADqB;AAE5BC,MAAAA,WAAW,EAAE,sDAFe;AAG5BJ,MAAAA,YAAY,EAAE;AAHc,KAAf;AAxCV;AARgB,CAAlB","sourcesContent":["import {\n createBoolProp,\n createTextProp,\n createTextStyle,\n createRowDirectionProp,\n createFieldNameProp,\n createIconProp,\n createStaticNumberProp,\n COMPONENT_TYPES,\n Triggers,\n createColorProp,\n} from \"@draftbit/types\";\n\nexport const SEED_DATA = {\n name: \"Checkbox Row\",\n tag: \"CheckboxRow\",\n category: COMPONENT_TYPES.input,\n layout: {\n minHeight: 50,\n },\n triggers: [Triggers.OnPress, Triggers.OnCheck, Triggers.OnUncheck],\n props: {\n fieldName: createFieldNameProp({\n defaultValue: \"checkboxRowValue\",\n valuePropName: \"value\",\n handlerPropName: \"onPress\",\n }),\n label: createTextProp({\n label: \"Label\",\n description: \"Label to show with the checkbox\",\n required: true,\n defaultValue: \"First Option\",\n }),\n labelStyle: createTextStyle({\n label: \"Label Style\",\n description: \"Change the styles of the label\",\n required: false,\n editable: false,\n }),\n direction: createRowDirectionProp(),\n color: createColorProp({\n description: \"Color for the button (used when the checkbox is checked)\",\n }),\n uncheckedColor: createColorProp({\n label: \"Unselected Color\",\n description: \"Color for the button when the checkbox is unchecked\",\n }),\n disabled: createBoolProp({\n label: \"Disabled\",\n description: \"Whether the checkbox is disabled\",\n }),\n size: createStaticNumberProp({\n label: \"Size\",\n description: \"Specifies the size of the icon\",\n defaultValue: null,\n }),\n checkedIcon: createIconProp({\n label: \"Checked Icon\",\n description: 'Icon to show when the checkbox status is \"checked\"',\n defaultValue: null,\n }),\n uncheckedIcon: createIconProp({\n label: \"Unchecked Icon\",\n description: 'Icon to show when the checkbox status is \"unchecked\"',\n defaultValue: null,\n }),\n },\n};\n"]}
@@ -11,7 +11,7 @@ const Checkbox = _ref => {
11
11
  Icon,
12
12
  status,
13
13
  disabled = false,
14
- onPress = () => {},
14
+ onPress,
15
15
  onCheck,
16
16
  onUncheck,
17
17
  color,
@@ -45,14 +45,14 @@ const Checkbox = _ref => {
45
45
  const handlePress = () => {
46
46
  const newValue = !internalValue;
47
47
  setInternalValue(newValue);
48
- onPress(newValue);
48
+ onPress === null || onPress === void 0 ? void 0 : onPress(newValue);
49
49
 
50
- if (onCheck && newValue) {
51
- onCheck();
50
+ if (newValue) {
51
+ onCheck === null || onCheck === void 0 ? void 0 : onCheck();
52
52
  }
53
53
 
54
- if (onUncheck && !newValue) {
55
- onUncheck();
54
+ if (!newValue) {
55
+ onUncheck === null || onUncheck === void 0 ? void 0 : onUncheck();
56
56
  }
57
57
  };
58
58
 
@@ -1 +1 @@
1
- {"version":3,"sources":["Checkbox.tsx"],"names":["React","View","StyleSheet","useTheme","Touchable","usePrevious","Checkbox","Icon","status","disabled","onPress","onCheck","onUncheck","color","uncheckedColor","defaultValue","checkedIcon","uncheckedIcon","size","style","rest","internalValue","setInternalValue","useState","useEffect","previousDefaultValue","Boolean","colors","checkboxColor","primary","handlePress","newValue","styles","container","width","height","icon","absoluteFill","fillContainer","fill","opacity","borderColor","create","borderRadius","alignItems","justifyContent","alignSelf"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n StyleSheet,\n TouchableHighlightProps,\n StyleProp,\n ViewStyle,\n} from \"react-native\";\nimport { useTheme } from \"../../theming\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\n\nimport Touchable from \"../Touchable\";\nimport { usePrevious } from \"../../hooks\";\n\nexport interface CheckboxProps {\n status?: boolean;\n disabled?: boolean;\n onPress?: (checked: boolean) => void;\n onCheck?: () => void;\n onUncheck?: () => void;\n color?: string;\n uncheckedColor?: string;\n checkedIcon?: string;\n uncheckedIcon?: string;\n defaultValue?: boolean;\n size?: number;\n style?: StyleProp<ViewStyle>;\n}\n\nconst Checkbox: React.FC<CheckboxProps & TouchableHighlightProps & IconSlot> =\n ({\n Icon,\n status,\n disabled = false,\n onPress = () => {},\n onCheck,\n onUncheck,\n color,\n uncheckedColor,\n defaultValue,\n checkedIcon = \"MaterialCommunityIcons/checkbox-marked\",\n uncheckedIcon = \"MaterialCommunityIcons/checkbox-blank-outline\",\n size = 24,\n style,\n ...rest\n }) => {\n const [internalValue, setInternalValue] = React.useState<boolean>(\n status || defaultValue || false\n );\n\n React.useEffect(() => {\n if (status != null) {\n setInternalValue(status);\n }\n }, [status]);\n\n // This special logic is to handle weird APIs like Airtable that return\n // true or undefined for a boolean\n const previousDefaultValue = usePrevious(defaultValue) as\n | boolean\n | undefined;\n React.useEffect(() => {\n if (defaultValue !== previousDefaultValue) {\n setInternalValue(Boolean(defaultValue));\n }\n }, [defaultValue, previousDefaultValue]);\n\n const { colors } = useTheme();\n\n const checkboxColor = internalValue\n ? color || colors.primary\n : uncheckedColor || colors.primary;\n\n const handlePress = () => {\n const newValue = !internalValue;\n setInternalValue(newValue);\n onPress(newValue);\n\n if (onCheck && newValue) {\n onCheck();\n }\n\n if (onUncheck && !newValue) {\n onUncheck();\n }\n };\n\n return (\n <Touchable\n {...rest}\n onPress={handlePress}\n disabled={disabled}\n accessibilityState={{ disabled }}\n accessibilityRole=\"button\"\n accessibilityLiveRegion=\"polite\"\n style={[styles.container, style, { width: size, height: size }]}\n >\n <Icon\n style={styles.icon}\n name={internalValue ? checkedIcon : uncheckedIcon}\n size={size}\n color={checkboxColor}\n />\n <View style={[StyleSheet.absoluteFill, styles.fillContainer]}>\n <View\n style={[\n styles.fill,\n { opacity: disabled ? 0.5 : 1 },\n { borderColor: checkboxColor },\n ]}\n />\n </View>\n </Touchable>\n );\n };\n\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 18,\n },\n fillContainer: {\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n icon: {\n alignSelf: \"center\",\n },\n fill: {\n borderRadius: 5,\n width: 30,\n height: 30,\n alignSelf: \"center\",\n },\n});\n\nexport default Checkbox;\n"]}
1
+ {"version":3,"sources":["Checkbox.tsx"],"names":["React","View","StyleSheet","useTheme","Touchable","usePrevious","Checkbox","Icon","status","disabled","onPress","onCheck","onUncheck","color","uncheckedColor","defaultValue","checkedIcon","uncheckedIcon","size","style","rest","internalValue","setInternalValue","useState","useEffect","previousDefaultValue","Boolean","colors","checkboxColor","primary","handlePress","newValue","styles","container","width","height","icon","absoluteFill","fillContainer","fill","opacity","borderColor","create","borderRadius","alignItems","justifyContent","alignSelf"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n StyleSheet,\n TouchableHighlightProps,\n StyleProp,\n ViewStyle,\n} from \"react-native\";\nimport { useTheme } from \"../../theming\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\n\nimport Touchable from \"../Touchable\";\nimport { usePrevious } from \"../../hooks\";\n\nexport interface CheckboxProps {\n status?: boolean;\n disabled?: boolean;\n onPress?: (checked: boolean) => void;\n onCheck?: () => void;\n onUncheck?: () => void;\n color?: string;\n uncheckedColor?: string;\n checkedIcon?: string;\n uncheckedIcon?: string;\n defaultValue?: boolean;\n size?: number;\n style?: StyleProp<ViewStyle>;\n}\n\nconst Checkbox: React.FC<CheckboxProps & TouchableHighlightProps & IconSlot> =\n ({\n Icon,\n status,\n disabled = false,\n onPress,\n onCheck,\n onUncheck,\n color,\n uncheckedColor,\n defaultValue,\n checkedIcon = \"MaterialCommunityIcons/checkbox-marked\",\n uncheckedIcon = \"MaterialCommunityIcons/checkbox-blank-outline\",\n size = 24,\n style,\n ...rest\n }) => {\n const [internalValue, setInternalValue] = React.useState<boolean>(\n status || defaultValue || false\n );\n\n React.useEffect(() => {\n if (status != null) {\n setInternalValue(status);\n }\n }, [status]);\n\n // This special logic is to handle weird APIs like Airtable that return\n // true or undefined for a boolean\n const previousDefaultValue = usePrevious(defaultValue) as\n | boolean\n | undefined;\n\n React.useEffect(() => {\n if (defaultValue !== previousDefaultValue) {\n setInternalValue(Boolean(defaultValue));\n }\n }, [defaultValue, previousDefaultValue]);\n\n const { colors } = useTheme();\n\n const checkboxColor = internalValue\n ? color || colors.primary\n : uncheckedColor || colors.primary;\n\n const handlePress = () => {\n const newValue = !internalValue;\n\n setInternalValue(newValue);\n onPress?.(newValue);\n\n if (newValue) {\n onCheck?.();\n }\n\n if (!newValue) {\n onUncheck?.();\n }\n };\n\n return (\n <Touchable\n {...rest}\n onPress={handlePress}\n disabled={disabled}\n accessibilityState={{ disabled }}\n accessibilityRole=\"button\"\n accessibilityLiveRegion=\"polite\"\n style={[styles.container, style, { width: size, height: size }]}\n >\n <Icon\n style={styles.icon}\n name={internalValue ? checkedIcon : uncheckedIcon}\n size={size}\n color={checkboxColor}\n />\n <View style={[StyleSheet.absoluteFill, styles.fillContainer]}>\n <View\n style={[\n styles.fill,\n { opacity: disabled ? 0.5 : 1 },\n { borderColor: checkboxColor },\n ]}\n />\n </View>\n </Touchable>\n );\n };\n\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 18,\n },\n fillContainer: {\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n icon: {\n alignSelf: \"center\",\n },\n fill: {\n borderRadius: 5,\n width: 30,\n height: 30,\n alignSelf: \"center\",\n },\n});\n\nexport default Checkbox;\n"]}
@@ -0,0 +1,120 @@
1
+ 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); }
2
+
3
+ import * as React from "react";
4
+ import { StyleSheet, View, Platform } from "react-native";
5
+ import Checkbox from "./Checkbox";
6
+ import Text from "../Text";
7
+ import { useCheckboxGroupContext } from "./context";
8
+ import { Direction as GroupDirection } from "./context";
9
+ import Touchable from "../Touchable";
10
+ import { extractStyles } from "../../utilities";
11
+ export let Direction;
12
+
13
+ (function (Direction) {
14
+ Direction["Row"] = "row";
15
+ Direction["RowReverse"] = "row-reverse";
16
+ })(Direction || (Direction = {}));
17
+
18
+ const getCheckboxAlignment = (parentDirection, direction) => {
19
+ if (parentDirection === GroupDirection.Horizontal) {
20
+ return direction === Direction.Row ? "flex-start" : "flex-end";
21
+ } else if (direction === Direction.RowReverse) {
22
+ return "flex-start";
23
+ } else {
24
+ return "flex-end";
25
+ }
26
+ };
27
+
28
+ const renderLabel = (value, labelStyle, textStyle) => {
29
+ if (typeof value === "string") {
30
+ return /*#__PURE__*/React.createElement(Text, {
31
+ style: [labelStyle, textStyle]
32
+ }, value);
33
+ } else {
34
+ return /*#__PURE__*/React.createElement(React.Fragment, null, value);
35
+ }
36
+ };
37
+
38
+ const CheckboxGroupRow = _ref => {
39
+ let {
40
+ Icon,
41
+ label = "Label",
42
+ status,
43
+ value,
44
+ onPress,
45
+ labelContainerStyle,
46
+ labelStyle,
47
+ checkboxStyle,
48
+ direction = Direction.Row,
49
+ disabled,
50
+ style,
51
+ color,
52
+ uncheckedColor,
53
+ ...rest
54
+ } = _ref;
55
+ const {
56
+ values: selectedValues,
57
+ onValueChange,
58
+ direction: parentDirection
59
+ } = useCheckboxGroupContext();
60
+ const values = Array.isArray(selectedValues) ? selectedValues : [];
61
+ const isChecked = status || values.includes(value);
62
+
63
+ const handlePress = () => {
64
+ if (!disabled) {
65
+ onPress === null || onPress === void 0 ? void 0 : onPress(!isChecked);
66
+ onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(value, !isChecked);
67
+ }
68
+ };
69
+
70
+ const {
71
+ textStyles,
72
+ viewStyles
73
+ } = extractStyles(style);
74
+ return /*#__PURE__*/React.createElement(Touchable, _extends({
75
+ onPress: handlePress,
76
+ style: [styles.mainParent, {
77
+ flexDirection: direction
78
+ }, viewStyles],
79
+ disabled: disabled
80
+ }, rest), /*#__PURE__*/React.createElement(View, {
81
+ style: [styles.label, {
82
+ alignItems: direction === Direction.Row ? "flex-start" : "flex-end"
83
+ }, labelContainerStyle]
84
+ }, renderLabel(label, labelStyle, textStyles)), /*#__PURE__*/React.createElement(View, {
85
+ style: {
86
+ flex: 1,
87
+ alignItems: getCheckboxAlignment(parentDirection, direction)
88
+ }
89
+ }, /*#__PURE__*/React.createElement(Checkbox, {
90
+ Icon: Icon,
91
+ status: isChecked,
92
+ onPress: handlePress,
93
+ style: checkboxStyle,
94
+ disabled: disabled,
95
+ color: color,
96
+ uncheckedColor: uncheckedColor
97
+ })));
98
+ };
99
+
100
+ const styles = StyleSheet.create({
101
+ mainParent: {
102
+ alignItems: "center",
103
+ justifyContent: "space-around",
104
+ paddingStart: 20,
105
+ minHeight: 50,
106
+ paddingEnd: 20,
107
+ display: "flex",
108
+ ...Platform.select({
109
+ web: {
110
+ cursor: "pointer",
111
+ userSelect: "none"
112
+ }
113
+ })
114
+ },
115
+ label: {
116
+ flex: 3
117
+ }
118
+ });
119
+ export default CheckboxGroupRow;
120
+ //# sourceMappingURL=CheckboxGroupRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["CheckboxGroupRow.tsx"],"names":["React","StyleSheet","View","Platform","Checkbox","Text","useCheckboxGroupContext","Direction","GroupDirection","Touchable","extractStyles","getCheckboxAlignment","parentDirection","direction","Horizontal","Row","RowReverse","renderLabel","value","labelStyle","textStyle","CheckboxGroupRow","Icon","label","status","onPress","labelContainerStyle","checkboxStyle","disabled","style","color","uncheckedColor","rest","values","selectedValues","onValueChange","Array","isArray","isChecked","includes","handlePress","textStyles","viewStyles","styles","mainParent","flexDirection","alignItems","flex","create","justifyContent","paddingStart","minHeight","paddingEnd","display","select","web","cursor","userSelect"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n StyleProp,\n ViewStyle,\n StyleSheet,\n TextStyle,\n View,\n Platform,\n} from \"react-native\";\nimport Checkbox, { CheckboxProps } from \"./Checkbox\";\nimport Text from \"../Text\";\nimport { useCheckboxGroupContext } from \"./context\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\nimport { Direction as GroupDirection } from \"./context\";\nimport Touchable from \"../Touchable\";\nimport { extractStyles } from \"../../utilities\";\n\nexport enum Direction {\n Row = \"row\",\n RowReverse = \"row-reverse\",\n}\n\nexport interface CheckboxGroupRowProps extends Omit<CheckboxProps, \"onPress\"> {\n label: string | React.ReactNode;\n value: string; // A string that this checkbox represents\n labelContainerStyle: StyleProp<ViewStyle>;\n checkboxStyle?: StyleProp<ViewStyle>;\n labelStyle?: StyleProp<TextStyle>;\n onPress?: (value: boolean) => void;\n direction?: Direction;\n color: string;\n unselectedColor: string;\n}\n\nconst getCheckboxAlignment = (\n parentDirection: GroupDirection | undefined,\n direction: Direction\n) => {\n if (parentDirection === GroupDirection.Horizontal) {\n return direction === Direction.Row ? \"flex-start\" : \"flex-end\";\n } else if (direction === Direction.RowReverse) {\n return \"flex-start\";\n } else {\n return \"flex-end\";\n }\n};\n\nconst renderLabel = (\n value: string | React.ReactNode,\n labelStyle: StyleProp<TextStyle>,\n textStyle: StyleProp<TextStyle>\n) => {\n if (typeof value === \"string\") {\n return <Text style={[labelStyle, textStyle]}>{value}</Text>;\n } else {\n return <>{value}</>;\n }\n};\n\nconst CheckboxGroupRow: React.FC<CheckboxGroupRowProps & IconSlot> = ({\n Icon,\n label = \"Label\",\n status,\n value,\n onPress,\n labelContainerStyle,\n labelStyle,\n checkboxStyle,\n direction = Direction.Row,\n disabled,\n style,\n color,\n uncheckedColor,\n ...rest\n}) => {\n const {\n values: selectedValues,\n onValueChange,\n direction: parentDirection,\n } = useCheckboxGroupContext();\n\n const values = Array.isArray(selectedValues) ? selectedValues : [];\n const isChecked = status || values.includes(value);\n\n const handlePress = () => {\n if (!disabled) {\n onPress?.(!isChecked);\n onValueChange?.(value, !isChecked);\n }\n };\n\n const { textStyles, viewStyles } = extractStyles(style);\n\n return (\n <Touchable\n onPress={handlePress}\n style={[styles.mainParent, { flexDirection: direction }, viewStyles]}\n disabled={disabled}\n {...rest}\n >\n <View\n style={[\n styles.label,\n {\n alignItems: direction === Direction.Row ? \"flex-start\" : \"flex-end\",\n },\n labelContainerStyle,\n ]}\n >\n {renderLabel(label, labelStyle, textStyles)}\n </View>\n <View\n style={{\n flex: 1,\n alignItems: getCheckboxAlignment(parentDirection, direction),\n }}\n >\n <Checkbox\n Icon={Icon}\n status={isChecked}\n onPress={handlePress}\n style={checkboxStyle}\n disabled={disabled}\n color={color}\n uncheckedColor={uncheckedColor}\n />\n </View>\n </Touchable>\n );\n};\n\nconst styles = StyleSheet.create({\n mainParent: {\n alignItems: \"center\",\n justifyContent: \"space-around\",\n paddingStart: 20,\n minHeight: 50,\n paddingEnd: 20,\n display: \"flex\",\n ...Platform.select({\n web: {\n cursor: \"pointer\",\n userSelect: \"none\",\n },\n }),\n },\n label: {\n flex: 3,\n },\n});\n\nexport default CheckboxGroupRow;\n"]}
@@ -2,12 +2,12 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
2
2
 
3
3
  import * as React from "react";
4
4
  import { StyleSheet, View, Platform } from "react-native";
5
- import Checkbox from "./Checkbox";
5
+ import { isString } from "lodash";
6
+ import { extractStyles } from "../../utilities";
7
+ import { usePrevious } from "../../hooks";
6
8
  import Text from "../Text";
7
- import { useCheckboxGroupContext } from "./context";
8
- import { Direction as GroupDirection } from "./context";
9
9
  import Touchable from "../Touchable";
10
- import { extractStyles } from "../../utilities";
10
+ import Checkbox from "./Checkbox";
11
11
  export let Direction;
12
12
 
13
13
  (function (Direction) {
@@ -15,20 +15,10 @@ export let Direction;
15
15
  Direction["RowReverse"] = "row-reverse";
16
16
  })(Direction || (Direction = {}));
17
17
 
18
- const getCheckboxAlignment = (parentDirection, direction) => {
19
- if (parentDirection === GroupDirection.Horizontal) {
20
- return direction === Direction.Row ? "flex-start" : "flex-end";
21
- } else if (direction === Direction.RowReverse) {
22
- return "flex-start";
23
- } else {
24
- return "flex-end";
25
- }
26
- };
27
-
28
18
  const renderLabel = (value, labelStyle, textStyle) => {
29
- if (typeof value === "string") {
19
+ if (isString(value)) {
30
20
  return /*#__PURE__*/React.createElement(Text, {
31
- style: [labelStyle, textStyle]
21
+ style: [textStyle, labelStyle]
32
22
  }, value);
33
23
  } else {
34
24
  return /*#__PURE__*/React.createElement(React.Fragment, null, value);
@@ -37,33 +27,52 @@ const renderLabel = (value, labelStyle, textStyle) => {
37
27
 
38
28
  const CheckboxRow = _ref => {
39
29
  let {
40
- Icon,
41
30
  label = "Label",
42
- status,
43
- value,
44
- onPress = () => {},
45
- labelContainerStyle,
46
31
  labelStyle,
32
+ labelContainerStyle,
47
33
  checkboxStyle,
48
34
  direction = Direction.Row,
49
- disabled,
50
- style,
35
+ Icon,
36
+ status,
37
+ disabled = false,
38
+ onPress,
39
+ onCheck,
40
+ onUncheck,
51
41
  color,
52
42
  uncheckedColor,
43
+ defaultValue,
44
+ checkedIcon,
45
+ uncheckedIcon,
46
+ size,
47
+ style,
53
48
  ...rest
54
49
  } = _ref;
55
- const {
56
- values: selectedValues,
57
- onValueChange,
58
- direction: parentDirection
59
- } = useCheckboxGroupContext();
60
- const values = Array.isArray(selectedValues) ? selectedValues : [];
61
- const isChecked = status || values.includes(value);
50
+ const [internalValue, setInternalValue] = React.useState(status || defaultValue || false);
51
+ React.useEffect(() => {
52
+ if (status != null) {
53
+ setInternalValue(status);
54
+ }
55
+ }, [status]); // This special logic is to handle weird APIs like Airtable that return
56
+ // true or undefined for a boolean
57
+
58
+ const previousDefaultValue = usePrevious(defaultValue);
59
+ React.useEffect(() => {
60
+ if (defaultValue !== previousDefaultValue) {
61
+ setInternalValue(Boolean(defaultValue));
62
+ }
63
+ }, [defaultValue, previousDefaultValue]);
62
64
 
63
65
  const handlePress = () => {
64
- if (!disabled) {
65
- onPress(!isChecked);
66
- onValueChange && onValueChange(value, !isChecked);
66
+ const newValue = !internalValue;
67
+ setInternalValue(newValue);
68
+ onPress === null || onPress === void 0 ? void 0 : onPress(newValue);
69
+
70
+ if (newValue) {
71
+ onCheck === null || onCheck === void 0 ? void 0 : onCheck();
72
+ }
73
+
74
+ if (!newValue) {
75
+ onUncheck === null || onUncheck === void 0 ? void 0 : onUncheck();
67
76
  }
68
77
  };
69
78
 
@@ -73,28 +82,25 @@ const CheckboxRow = _ref => {
73
82
  } = extractStyles(style);
74
83
  return /*#__PURE__*/React.createElement(Touchable, _extends({
75
84
  onPress: handlePress,
76
- style: [styles.mainParent, {
85
+ style: [viewStyles, styles.mainParent, {
77
86
  flexDirection: direction
78
- }, viewStyles],
87
+ }],
79
88
  disabled: disabled
80
89
  }, rest), /*#__PURE__*/React.createElement(View, {
81
90
  style: [styles.label, {
82
91
  alignItems: direction === Direction.Row ? "flex-start" : "flex-end"
83
92
  }, labelContainerStyle]
84
- }, renderLabel(label, labelStyle, textStyles)), /*#__PURE__*/React.createElement(View, {
85
- style: {
86
- flex: 1,
87
- alignItems: getCheckboxAlignment(parentDirection, direction)
88
- }
89
- }, /*#__PURE__*/React.createElement(Checkbox, {
93
+ }, renderLabel(label, textStyles, labelStyle)), /*#__PURE__*/React.createElement(Checkbox, {
90
94
  Icon: Icon,
91
- status: isChecked,
92
- onPress: handlePress,
95
+ status: internalValue,
93
96
  style: checkboxStyle,
94
97
  disabled: disabled,
95
98
  color: color,
96
- uncheckedColor: uncheckedColor
97
- })));
99
+ uncheckedColor: uncheckedColor,
100
+ checkedIcon: checkedIcon,
101
+ uncheckedIcon: uncheckedIcon,
102
+ size: size
103
+ }));
98
104
  };
99
105
 
100
106
  const styles = StyleSheet.create({
@@ -104,7 +110,7 @@ const styles = StyleSheet.create({
104
110
  paddingStart: 20,
105
111
  minHeight: 50,
106
112
  paddingEnd: 20,
107
- flex: 1,
113
+ display: "flex",
108
114
  ...Platform.select({
109
115
  web: {
110
116
  cursor: "pointer",