@hoddy-ui/next 2.5.77 → 2.5.79

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.
package/dist/index.d.mts CHANGED
@@ -89,7 +89,7 @@ interface FlashMessageProps {
89
89
  onPress?: () => void;
90
90
  }>;
91
91
  duration?: number;
92
- type?: "success" | "warning" | "error";
92
+ type?: "success" | "warning" | "error" | "info" | "default";
93
93
  }
94
94
  interface LinkButtonProps {
95
95
  title: string;
@@ -206,7 +206,7 @@ interface TextFieldProps extends TextInputProps {
206
206
  variant?: "outlined" | "text" | "contained";
207
207
  color?: colorTypes;
208
208
  size?: "small" | "normal" | "large";
209
- type?: "email" | "tel" | "password" | "text" | "number" | "search";
209
+ type?: "email" | "tel" | "password" | "text" | "number" | "search" | "date";
210
210
  helperText?: string;
211
211
  value: any;
212
212
  start?: ReactNode;
package/dist/index.d.ts CHANGED
@@ -89,7 +89,7 @@ interface FlashMessageProps {
89
89
  onPress?: () => void;
90
90
  }>;
91
91
  duration?: number;
92
- type?: "success" | "warning" | "error";
92
+ type?: "success" | "warning" | "error" | "info" | "default";
93
93
  }
94
94
  interface LinkButtonProps {
95
95
  title: string;
@@ -206,7 +206,7 @@ interface TextFieldProps extends TextInputProps {
206
206
  variant?: "outlined" | "text" | "contained";
207
207
  color?: colorTypes;
208
208
  size?: "small" | "normal" | "large";
209
- type?: "email" | "tel" | "password" | "text" | "number" | "search";
209
+ type?: "email" | "tel" | "password" | "text" | "number" | "search" | "date";
210
210
  helperText?: string;
211
211
  value: any;
212
212
  start?: ReactNode;
package/dist/index.js CHANGED
@@ -315,7 +315,7 @@ var Typography = (0, import_react.forwardRef)(
315
315
  const config2 = getConfig();
316
316
  const customFontSizes = config2.TYPOGRAPHY?.fontSizes;
317
317
  const baseFontSize = customFontSizes?.[variant] ?? DEFAULT_FONT_SIZES[variant];
318
- const f = fontSize || baseFontSize;
318
+ const f = fontSize || style?.fontSize || baseFontSize;
319
319
  const lh = lineHeight || f * 1.2;
320
320
  const styles = import_react_native.StyleSheet.create({
321
321
  text: {
@@ -411,6 +411,7 @@ var FlashMessage = () => {
411
411
  opacity: opacity.value
412
412
  };
413
413
  });
414
+ const textColor = type === "default" ? "#fff" : colors2[type].text;
414
415
  const styles = import_react_native_size_matters2.ScaledSheet.create({
415
416
  root: {
416
417
  position: "absolute",
@@ -419,7 +420,7 @@ var FlashMessage = () => {
419
420
  left: 0,
420
421
  paddingTop: top + 10,
421
422
  paddingHorizontal: "15@ms",
422
- backgroundColor: colors2[type].main,
423
+ backgroundColor: type === "default" ? "#333" : colors2[type].main,
423
424
  width: "100%",
424
425
  borderBottomLeftRadius: 10,
425
426
  borderBottomRightRadius: 10,
@@ -443,10 +444,10 @@ var FlashMessage = () => {
443
444
  variant: "h6",
444
445
  fontWeight: 600,
445
446
  gutterBottom: 3,
446
- style: { color: "#fff" }
447
+ color: textColor
447
448
  },
448
449
  message?.title
449
- ), /* @__PURE__ */ import_react2.default.createElement(Typography_default, { style: { color: "#fff" } }, message?.message)))), message?.actions?.map((cur, i) => /* @__PURE__ */ import_react2.default.createElement(
450
+ ), /* @__PURE__ */ import_react2.default.createElement(Typography_default, { color: textColor }, message?.message)))), message?.actions?.map((cur, i) => /* @__PURE__ */ import_react2.default.createElement(
450
451
  import_react_native2.TouchableOpacity,
451
452
  {
452
453
  key: i,
@@ -1536,6 +1537,7 @@ var TextField = ({
1536
1537
  color = "primary",
1537
1538
  value,
1538
1539
  type,
1540
+ placeholder = "",
1539
1541
  helperText,
1540
1542
  onChangeText,
1541
1543
  onSubmitEditing = () => {
@@ -1559,6 +1561,7 @@ var TextField = ({
1559
1561
  }) => {
1560
1562
  const colors2 = useColors();
1561
1563
  const [focused, setFocused] = (0, import_react16.useState)(false);
1564
+ const isDate = type === "date";
1562
1565
  const height2 = (0, import_react_native_size_matters13.moderateScale)(variant === "text" ? 50 : 45) * (size === "large" ? 1.2 : size === "small" ? 0.8 : 1);
1563
1566
  const labelAnim = (0, import_react16.useRef)(
1564
1567
  new import_react_native16.Animated.Value(height2 / (0, import_react_native_size_matters13.moderateScale)(variant === "text" ? 2.5 : 3.2))
@@ -1615,6 +1618,21 @@ var TextField = ({
1615
1618
  paddingLeft: variant === "text" ? 0 : (0, import_react_native_size_matters13.moderateScale)(15),
1616
1619
  paddingTop: "13@ms"
1617
1620
  },
1621
+ dateContent: {
1622
+ flexDirection: "row",
1623
+ alignItems: "center",
1624
+ flex: 1,
1625
+ paddingLeft: variant === "text" ? 0 : (0, import_react_native_size_matters13.moderateScale)(15),
1626
+ paddingRight: (0, import_react_native_size_matters13.moderateScale)(10),
1627
+ paddingTop: variant === "text" ? (0, import_react_native_size_matters13.ms)(13) : (0, import_react_native_size_matters13.ms)(12)
1628
+ },
1629
+ dateText: {
1630
+ fontSize: "14@ms",
1631
+ flex: 1
1632
+ },
1633
+ datePlaceholder: {
1634
+ color: colors2.textSecondary.main
1635
+ },
1618
1636
  label: {
1619
1637
  fontFamily: getFontFamily(400),
1620
1638
  position: "absolute",
@@ -1660,10 +1678,19 @@ var TextField = ({
1660
1678
  autoCapitalize: "none",
1661
1679
  textContentType: "password"
1662
1680
  } : {};
1681
+ const handleContainerPress = () => {
1682
+ if (disabled)
1683
+ return;
1684
+ setFocused(true);
1685
+ if (isDate) {
1686
+ onFocus();
1687
+ setTimeout(() => setFocused(false), 150);
1688
+ }
1689
+ };
1663
1690
  return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, /* @__PURE__ */ import_react16.default.createElement(import_react_native16.View, { style: styles.root }, /* @__PURE__ */ import_react16.default.createElement(
1664
1691
  import_react_native16.TouchableOpacity,
1665
1692
  {
1666
- onPress: () => setFocused(true),
1693
+ onPress: handleContainerPress,
1667
1694
  style: styles.container
1668
1695
  },
1669
1696
  /* @__PURE__ */ import_react16.default.createElement(import_react_native16.Animated.Text, { style: { ...styles.label, top: labelAnim } }, label),
@@ -1684,7 +1711,24 @@ var TextField = ({
1684
1711
  options.find((cur) => cur.value === value)?.start
1685
1712
  ),
1686
1713
  /* @__PURE__ */ import_react16.default.createElement(Typography_default, { style: styles.inputText }, options.find((cur) => cur.value === value)?.label)
1687
- ) : /* @__PURE__ */ import_react16.default.createElement(
1714
+ ) : isDate ? /* @__PURE__ */ import_react16.default.createElement(import_react_native16.View, { style: styles.dateContent }, /* @__PURE__ */ import_react16.default.createElement(
1715
+ Typography_default,
1716
+ {
1717
+ style: [
1718
+ styles.dateText,
1719
+ !value ? styles.datePlaceholder : void 0
1720
+ ],
1721
+ color: value ? "dark" : "textSecondary"
1722
+ },
1723
+ value || placeholder
1724
+ ), /* @__PURE__ */ import_react16.default.createElement(import_react_native16.View, { style: { marginLeft: 8 } }, end ?? /* @__PURE__ */ import_react16.default.createElement(
1725
+ import_vector_icons8.Ionicons,
1726
+ {
1727
+ name: "calendar-outline",
1728
+ size: 22,
1729
+ color: colors2.textSecondary.main
1730
+ }
1731
+ ))) : /* @__PURE__ */ import_react16.default.createElement(
1688
1732
  import_react_native16.TextInput,
1689
1733
  {
1690
1734
  onFocus: () => {
@@ -1764,6 +1808,7 @@ var TextField2 = import_react16.default.forwardRef(
1764
1808
  color = "primary",
1765
1809
  value,
1766
1810
  type,
1811
+ placeholder,
1767
1812
  helperText,
1768
1813
  onChangeText,
1769
1814
  onSubmitEditing = () => {
@@ -1779,7 +1824,6 @@ var TextField2 = import_react16.default.forwardRef(
1779
1824
  style = {},
1780
1825
  inputStyles = {},
1781
1826
  gutterBottom = 8,
1782
- placeholder,
1783
1827
  end,
1784
1828
  options,
1785
1829
  multiline,
@@ -1789,6 +1833,7 @@ var TextField2 = import_react16.default.forwardRef(
1789
1833
  const colors2 = useColors();
1790
1834
  const [focused, _setFocused] = (0, import_react16.useState)(false);
1791
1835
  const [showPassword, setShowPassword] = (0, import_react16.useState)(false);
1836
+ const isDate = type === "date";
1792
1837
  const height2 = (0, import_react_native_size_matters13.moderateScale)(
1793
1838
  multiline ? 50 + (props.numberOfLines || 1) * 18 : 50
1794
1839
  );
@@ -1839,6 +1884,20 @@ var TextField2 = import_react16.default.forwardRef(
1839
1884
  color: colors2.textSecondary.light,
1840
1885
  paddingLeft: (0, import_react_native_size_matters13.moderateScale)(10)
1841
1886
  },
1887
+ dateContent: {
1888
+ flexDirection: "row",
1889
+ alignItems: "center",
1890
+ flex: 1,
1891
+ paddingHorizontal: (0, import_react_native_size_matters13.moderateScale)(10),
1892
+ paddingTop: multiline ? 4 : 0
1893
+ },
1894
+ dateText: {
1895
+ fontSize: "14@ms",
1896
+ flex: 1
1897
+ },
1898
+ datePlaceholder: {
1899
+ color: colors2.textSecondary.light
1900
+ },
1842
1901
  label: {},
1843
1902
  helperText: {
1844
1903
  paddingHorizontal: "15@s",
@@ -1877,6 +1936,15 @@ var TextField2 = import_react16.default.forwardRef(
1877
1936
  autoCapitalize: "none",
1878
1937
  textContentType: "password"
1879
1938
  } : {};
1939
+ const handleContainerPress = () => {
1940
+ if (disabled)
1941
+ return;
1942
+ setFocused(true);
1943
+ if (isDate) {
1944
+ onFocus();
1945
+ setTimeout(() => setFocused(false), 150);
1946
+ }
1947
+ };
1880
1948
  return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, /* @__PURE__ */ import_react16.default.createElement(import_react_native16.View, { style: styles.root }, label && /* @__PURE__ */ import_react16.default.createElement(
1881
1949
  Typography_default,
1882
1950
  {
@@ -1889,7 +1957,7 @@ var TextField2 = import_react16.default.forwardRef(
1889
1957
  ), /* @__PURE__ */ import_react16.default.createElement(
1890
1958
  import_react_native16.TouchableOpacity,
1891
1959
  {
1892
- onPress: () => setFocused(true),
1960
+ onPress: handleContainerPress,
1893
1961
  style: styles.container
1894
1962
  },
1895
1963
  /* @__PURE__ */ import_react16.default.createElement(import_react_native16.View, { style: { marginTop: multiline ? 5 : 0 } }, start),
@@ -1901,7 +1969,24 @@ var TextField2 = import_react16.default.forwardRef(
1901
1969
  style: { marginLeft: "auto", marginRight: 15 },
1902
1970
  color: colors2.dark.light
1903
1971
  }
1904
- )) : /* @__PURE__ */ import_react16.default.createElement(
1972
+ )) : isDate ? /* @__PURE__ */ import_react16.default.createElement(import_react_native16.View, { style: styles.dateContent }, /* @__PURE__ */ import_react16.default.createElement(
1973
+ Typography_default,
1974
+ {
1975
+ style: [
1976
+ styles.dateText,
1977
+ !value ? styles.datePlaceholder : void 0
1978
+ ],
1979
+ color: value ? "dark" : "textSecondary"
1980
+ },
1981
+ value || placeholder
1982
+ ), /* @__PURE__ */ import_react16.default.createElement(import_react_native16.View, { style: { marginLeft: 8 } }, end ?? /* @__PURE__ */ import_react16.default.createElement(
1983
+ import_vector_icons8.Ionicons,
1984
+ {
1985
+ name: "calendar-outline",
1986
+ size: 22,
1987
+ color: colors2.textSecondary.main
1988
+ }
1989
+ ))) : /* @__PURE__ */ import_react16.default.createElement(
1905
1990
  import_react_native16.TextInput,
1906
1991
  {
1907
1992
  ref,