@korsolutions/ui 0.0.61 → 0.0.62

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 (45) hide show
  1. package/dist/module/components/tabs/components/tabs-item.js +61 -0
  2. package/dist/module/components/tabs/components/tabs-item.js.map +1 -0
  3. package/dist/module/components/tabs/components/tabs-root.js +3 -2
  4. package/dist/module/components/tabs/components/tabs-root.js.map +1 -1
  5. package/dist/module/components/tabs/index.js +2 -6
  6. package/dist/module/components/tabs/index.js.map +1 -1
  7. package/dist/module/components/tabs/use-organized-children.js +37 -0
  8. package/dist/module/components/tabs/use-organized-children.js.map +1 -0
  9. package/dist/module/components/tabs/variants/default.js +26 -8
  10. package/dist/module/components/tabs/variants/default.js.map +1 -1
  11. package/dist/module/components/tabs/variants/line.js +24 -7
  12. package/dist/module/components/tabs/variants/line.js.map +1 -1
  13. package/dist/typescript/src/components/tabs/components/{tabs-trigger.d.ts → tabs-item.d.ts} +3 -3
  14. package/dist/typescript/src/components/tabs/components/tabs-item.d.ts.map +1 -0
  15. package/dist/typescript/src/components/tabs/components/tabs-root.d.ts.map +1 -1
  16. package/dist/typescript/src/components/tabs/index.d.ts +3 -9
  17. package/dist/typescript/src/components/tabs/index.d.ts.map +1 -1
  18. package/dist/typescript/src/components/tabs/types.d.ts +8 -7
  19. package/dist/typescript/src/components/tabs/types.d.ts.map +1 -1
  20. package/dist/typescript/src/components/tabs/use-organized-children.d.ts +5 -0
  21. package/dist/typescript/src/components/tabs/use-organized-children.d.ts.map +1 -0
  22. package/dist/typescript/src/components/tabs/variants/default.d.ts.map +1 -1
  23. package/dist/typescript/src/components/tabs/variants/line.d.ts.map +1 -1
  24. package/package.json +1 -1
  25. package/src/components/tabs/components/tabs-item.tsx +96 -0
  26. package/src/components/tabs/components/tabs-root.tsx +9 -2
  27. package/src/components/tabs/index.ts +3 -9
  28. package/src/components/tabs/types.ts +8 -7
  29. package/src/components/tabs/use-organized-children.tsx +37 -0
  30. package/src/components/tabs/variants/default.tsx +25 -7
  31. package/src/components/tabs/variants/line.tsx +22 -5
  32. package/dist/module/components/tabs/components/tabs-list.js +0 -23
  33. package/dist/module/components/tabs/components/tabs-list.js.map +0 -1
  34. package/dist/module/components/tabs/components/tabs-trigger-text.js +0 -28
  35. package/dist/module/components/tabs/components/tabs-trigger-text.js.map +0 -1
  36. package/dist/module/components/tabs/components/tabs-trigger.js +0 -45
  37. package/dist/module/components/tabs/components/tabs-trigger.js.map +0 -1
  38. package/dist/typescript/src/components/tabs/components/tabs-list.d.ts +0 -8
  39. package/dist/typescript/src/components/tabs/components/tabs-list.d.ts.map +0 -1
  40. package/dist/typescript/src/components/tabs/components/tabs-trigger-text.d.ts +0 -10
  41. package/dist/typescript/src/components/tabs/components/tabs-trigger-text.d.ts.map +0 -1
  42. package/dist/typescript/src/components/tabs/components/tabs-trigger.d.ts.map +0 -1
  43. package/src/components/tabs/components/tabs-list.tsx +0 -21
  44. package/src/components/tabs/components/tabs-trigger-text.tsx +0 -26
  45. package/src/components/tabs/components/tabs-trigger.tsx +0 -43
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ import React, { useState } from "react";
4
+ import { Pressable, StyleSheet } from "react-native";
5
+ import { useTabsContext } from "../context.js";
6
+ import { useOrganizedChildren } from "../use-organized-children.js";
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ const calculateState = (isActive, isDisabled, isHovered) => {
9
+ if (isDisabled) {
10
+ return "disabled";
11
+ }
12
+ if (isActive) {
13
+ return "active";
14
+ }
15
+ if (isHovered) {
16
+ return "hovered";
17
+ }
18
+ return "default";
19
+ };
20
+ export function TabsItem(props) {
21
+ const {
22
+ children,
23
+ value: triggerValue,
24
+ isDisabled = false,
25
+ style,
26
+ ...pressableProps
27
+ } = props;
28
+ const {
29
+ value,
30
+ onChange,
31
+ styles
32
+ } = useTabsContext();
33
+ const [isHovered, setIsHovered] = useState(false);
34
+ const isActive = value === triggerValue;
35
+ const state = calculateState(isActive, isDisabled, isHovered);
36
+ const handlePress = () => {
37
+ if (!isDisabled) {
38
+ onChange(triggerValue);
39
+ }
40
+ };
41
+ const calculatedStyle = StyleSheet.flatten([styles?.item?.default, styles?.item?.[state], style]);
42
+ const textStyles = StyleSheet.flatten([styles?.itemText?.default, styles?.itemText?.[state]]);
43
+ const iconStyles = StyleSheet.flatten([styles?.itemIcon?.default, styles?.itemIcon?.[state]]);
44
+ const organizedChildren = useOrganizedChildren(children, textStyles, iconStyles ?? undefined);
45
+ return /*#__PURE__*/_jsx(Pressable, {
46
+ ...pressableProps,
47
+ onHoverIn: e => {
48
+ setIsHovered(true);
49
+ pressableProps.onHoverIn?.(e);
50
+ },
51
+ onHoverOut: e => {
52
+ setIsHovered(false);
53
+ pressableProps.onHoverOut?.(e);
54
+ },
55
+ disabled: isDisabled,
56
+ onPress: handlePress,
57
+ style: calculatedStyle,
58
+ children: organizedChildren
59
+ });
60
+ }
61
+ //# sourceMappingURL=tabs-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useState","Pressable","StyleSheet","useTabsContext","useOrganizedChildren","jsx","_jsx","calculateState","isActive","isDisabled","isHovered","TabsItem","props","children","value","triggerValue","style","pressableProps","onChange","styles","setIsHovered","state","handlePress","calculatedStyle","flatten","item","default","textStyles","itemText","iconStyles","itemIcon","organizedChildren","undefined","onHoverIn","e","onHoverOut","disabled","onPress"],"sourceRoot":"../../../../../src","sources":["components/tabs/components/tabs-item.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SACEC,SAAS,EACTC,UAAU,QAIL,cAAc;AACrB,SAASC,cAAc,QAAQ,eAAY;AAE3C,SAASC,oBAAoB,QAAQ,8BAA2B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AASjE,MAAMC,cAAc,GAAGA,CACrBC,QAAiB,EACjBC,UAAmB,EACnBC,SAAkB,KACA;EAClB,IAAID,UAAU,EAAE;IACd,OAAO,UAAU;EACnB;EACA,IAAID,QAAQ,EAAE;IACZ,OAAO,QAAQ;EACjB;EACA,IAAIE,SAAS,EAAE;IACb,OAAO,SAAS;EAClB;EACA,OAAO,SAAS;AAClB,CAAC;AAED,OAAO,SAASC,QAAQA,CAACC,KAAoB,EAAE;EAC7C,MAAM;IACJC,QAAQ;IACRC,KAAK,EAAEC,YAAY;IACnBN,UAAU,GAAG,KAAK;IAClBO,KAAK;IACL,GAAGC;EACL,CAAC,GAAGL,KAAK;EACT,MAAM;IAAEE,KAAK;IAAEI,QAAQ;IAAEC;EAAO,CAAC,GAAGhB,cAAc,CAAC,CAAC;EACpD,MAAM,CAACO,SAAS,EAAEU,YAAY,CAAC,GAAGpB,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAMQ,QAAQ,GAAGM,KAAK,KAAKC,YAAY;EACvC,MAAMM,KAAK,GAAGd,cAAc,CAACC,QAAQ,EAAEC,UAAU,EAAEC,SAAS,CAAC;EAE7D,MAAMY,WAAW,GAAGA,CAAA,KAAM;IACxB,IAAI,CAACb,UAAU,EAAE;MACfS,QAAQ,CAACH,YAAY,CAAC;IACxB;EACF,CAAC;EAED,MAAMQ,eAAe,GAAGrB,UAAU,CAACsB,OAAO,CAAC,CACzCL,MAAM,EAAEM,IAAI,EAAEC,OAAO,EACrBP,MAAM,EAAEM,IAAI,GAAGJ,KAAK,CAAC,EACrBL,KAAK,CACN,CAAC;EAEF,MAAMW,UAAU,GAAGzB,UAAU,CAACsB,OAAO,CAAC,CACpCL,MAAM,EAAES,QAAQ,EAAEF,OAAO,EACzBP,MAAM,EAAES,QAAQ,GAAGP,KAAK,CAAC,CAC1B,CAAC;EAEF,MAAMQ,UAAU,GAAG3B,UAAU,CAACsB,OAAO,CAAC,CACpCL,MAAM,EAAEW,QAAQ,EAAEJ,OAAO,EACzBP,MAAM,EAAEW,QAAQ,GAAGT,KAAK,CAAC,CAC1B,CAAC;EAEF,MAAMU,iBAAiB,GAAG3B,oBAAoB,CAC5CS,QAAQ,EACRc,UAAU,EACVE,UAAU,IAAIG,SAChB,CAAC;EAED,oBACE1B,IAAA,CAACL,SAAS;IAAA,GACJgB,cAAc;IAClBgB,SAAS,EAAGC,CAAC,IAAK;MAChBd,YAAY,CAAC,IAAI,CAAC;MAClBH,cAAc,CAACgB,SAAS,GAAGC,CAAC,CAAC;IAC/B,CAAE;IACFC,UAAU,EAAGD,CAAC,IAAK;MACjBd,YAAY,CAAC,KAAK,CAAC;MACnBH,cAAc,CAACkB,UAAU,GAAGD,CAAC,CAAC;IAChC,CAAE;IACFE,QAAQ,EAAE3B,UAAW;IACrB4B,OAAO,EAAEf,WAAY;IACrBN,KAAK,EAAEO,eAAgB;IAAAV,QAAA,EAEtBkB;EAAiB,CACT,CAAC;AAEhB","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import React, { useMemo } from "react";
4
- import { View } from "react-native";
4
+ import { StyleSheet, View } from "react-native";
5
5
  import { TabsContext } from "../context.js";
6
6
  import { TabsVariants } from "../variants/index.js";
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -19,11 +19,12 @@ export function TabsRoot(props) {
19
19
  onChange,
20
20
  styles: variantStyles
21
21
  }), [value, onChange, variantStyles]);
22
+ const composedStyles = StyleSheet.flatten([variantStyles?.root, style]);
22
23
  return /*#__PURE__*/_jsx(TabsContext.Provider, {
23
24
  value: contextValue,
24
25
  children: /*#__PURE__*/_jsx(View, {
25
26
  ...viewProps,
26
- style: style,
27
+ style: composedStyles,
27
28
  children: children
28
29
  })
29
30
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","View","TabsContext","TabsVariants","jsx","_jsx","TabsRoot","props","children","value","onChange","style","viewProps","variantStyles","variant","contextValue","styles","Provider"],"sourceRoot":"../../../../../src","sources":["components/tabs/components/tabs-root.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,IAAI,QAAwD,cAAc;AACnF,SAASC,WAAW,QAAQ,eAAY;AACxC,SAASC,YAAY,QAAQ,sBAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAU3C,OAAO,SAASC,QAAQA,CAACC,KAAoB,EAAE;EAC7C,MAAM;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,KAAK;IAAE,GAAGC;EAAU,CAAC,GAAGL,KAAK;EAChE,MAAMM,aAAa,GAAGV,YAAY,CAACI,KAAK,CAACO,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC;EAEhE,MAAMC,YAAY,GAAGf,OAAO,CAC1B,OAAO;IACLS,KAAK;IACLC,QAAQ;IACRM,MAAM,EAAEH;EACV,CAAC,CAAC,EACF,CAACJ,KAAK,EAAEC,QAAQ,EAAEG,aAAa,CACjC,CAAC;EAED,oBACER,IAAA,CAACH,WAAW,CAACe,QAAQ;IAACR,KAAK,EAAEM,YAAa;IAAAP,QAAA,eACxCH,IAAA,CAACJ,IAAI;MAAA,GAAKW,SAAS;MAAED,KAAK,EAAEA,KAAM;MAAAH,QAAA,EAC/BA;IAAQ,CACL;EAAC,CACa,CAAC;AAE3B","ignoreList":[]}
1
+ {"version":3,"names":["React","useMemo","StyleSheet","View","TabsContext","TabsVariants","jsx","_jsx","TabsRoot","props","children","value","onChange","style","viewProps","variantStyles","variant","contextValue","styles","composedStyles","flatten","root","Provider"],"sourceRoot":"../../../../../src","sources":["components/tabs/components/tabs-root.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SACEC,UAAU,EACVC,IAAI,QAIC,cAAc;AACrB,SAASC,WAAW,QAAQ,eAAY;AACxC,SAASC,YAAY,QAAQ,sBAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAU3C,OAAO,SAASC,QAAQA,CAACC,KAAoB,EAAE;EAC7C,MAAM;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,KAAK;IAAE,GAAGC;EAAU,CAAC,GAAGL,KAAK;EAChE,MAAMM,aAAa,GAAGV,YAAY,CAACI,KAAK,CAACO,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC;EAEhE,MAAMC,YAAY,GAAGhB,OAAO,CAC1B,OAAO;IACLU,KAAK;IACLC,QAAQ;IACRM,MAAM,EAAEH;EACV,CAAC,CAAC,EACF,CAACJ,KAAK,EAAEC,QAAQ,EAAEG,aAAa,CACjC,CAAC;EACD,MAAMI,cAAc,GAAGjB,UAAU,CAACkB,OAAO,CAAC,CAACL,aAAa,EAAEM,IAAI,EAAER,KAAK,CAAC,CAAC;EAEvE,oBACEN,IAAA,CAACH,WAAW,CAACkB,QAAQ;IAACX,KAAK,EAAEM,YAAa;IAAAP,QAAA,eACxCH,IAAA,CAACJ,IAAI;MAAA,GAAKW,SAAS;MAAED,KAAK,EAAEM,cAAe;MAAAT,QAAA,EACxCA;IAAQ,CACL;EAAC,CACa,CAAC;AAE3B","ignoreList":[]}
@@ -1,14 +1,10 @@
1
1
  "use strict";
2
2
 
3
- import { TabsList } from "./components/tabs-list.js";
3
+ import { TabsItem } from "./components/tabs-item.js";
4
4
  import { TabsRoot } from "./components/tabs-root.js";
5
- import { TabsTrigger } from "./components/tabs-trigger.js";
6
- import { TabsTriggerText } from "./components/tabs-trigger-text.js";
7
5
  export const Tabs = {
8
6
  Root: TabsRoot,
9
- List: TabsList,
10
- Trigger: TabsTrigger,
11
- TriggerText: TabsTriggerText
7
+ Item: TabsItem
12
8
  };
13
9
  export * from "./types.js";
14
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TabsList","TabsRoot","TabsTrigger","TabsTriggerText","Tabs","Root","List","Trigger","TriggerText"],"sourceRoot":"../../../../src","sources":["components/tabs/index.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,2BAAwB;AACjD,SAASC,QAAQ,QAAQ,2BAAwB;AACjD,SAASC,WAAW,QAAQ,8BAA2B;AACvD,SAASC,eAAe,QAAQ,mCAAgC;AAEhE,OAAO,MAAMC,IAAI,GAAG;EAClBC,IAAI,EAAEJ,QAAQ;EACdK,IAAI,EAAEN,QAAQ;EACdO,OAAO,EAAEL,WAAW;EACpBM,WAAW,EAAEL;AACf,CAAC;AAMD,cAAc,YAAS","ignoreList":[]}
1
+ {"version":3,"names":["TabsItem","TabsRoot","Tabs","Root","Item"],"sourceRoot":"../../../../src","sources":["components/tabs/index.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,2BAAwB;AACjD,SAASC,QAAQ,QAAQ,2BAAwB;AAEjD,OAAO,MAAMC,IAAI,GAAG;EAClBC,IAAI,EAAEF,QAAQ;EACdG,IAAI,EAAEJ;AACR,CAAC;AAID,cAAc,YAAS","ignoreList":[]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ import React, { useMemo } from "react";
4
+ import { Text } from "react-native";
5
+ import { getElementProp } from "../../utils/element-utils.js";
6
+ import { Icon } from "../icon/index.js";
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ export function useOrganizedChildren(children, textStyle, iconProps) {
9
+ const organizedChildren = useMemo(() => {
10
+ if (typeof children === "string") {
11
+ return /*#__PURE__*/_jsx(Text, {
12
+ style: textStyle,
13
+ children: children
14
+ });
15
+ }
16
+ if (Array.isArray(children)) {
17
+ return children.map((child, index) => {
18
+ if (typeof child === "string") {
19
+ return /*#__PURE__*/_jsx(Text, {
20
+ style: textStyle,
21
+ children: child
22
+ }, index);
23
+ } else if (/*#__PURE__*/React.isValidElement(child) && child.type === Icon) {
24
+ return /*#__PURE__*/React.cloneElement(child, {
25
+ key: child.key,
26
+ ...iconProps,
27
+ style: [iconProps?.style, getElementProp(child, "style")]
28
+ });
29
+ }
30
+ return child;
31
+ });
32
+ }
33
+ return children;
34
+ }, [children, iconProps, textStyle]);
35
+ return organizedChildren;
36
+ }
37
+ //# sourceMappingURL=use-organized-children.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useMemo","Text","getElementProp","Icon","jsx","_jsx","useOrganizedChildren","children","textStyle","iconProps","organizedChildren","style","Array","isArray","map","child","index","isValidElement","type","cloneElement","key"],"sourceRoot":"../../../../src","sources":["components/tabs/use-organized-children.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,IAAI,QAAwC,cAAc;AACnE,SAASC,cAAc,QAAQ,8BAA2B;AAC1D,SAASC,IAAI,QAAwB,kBAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE/C,OAAO,SAASC,oBAAoBA,CAClCC,QAAyB,EACzBC,SAA2C,EAC3CC,SAAgC,EAChC;EACA,MAAMC,iBAAiB,GAAGV,OAAO,CAAC,MAAM;IACtC,IAAI,OAAOO,QAAQ,KAAK,QAAQ,EAAE;MAChC,oBAAOF,IAAA,CAACJ,IAAI;QAACU,KAAK,EAAEH,SAAU;QAAAD,QAAA,EAAEA;MAAQ,CAAO,CAAC;IAClD;IACA,IAAIK,KAAK,CAACC,OAAO,CAACN,QAAQ,CAAC,EAAE;MAC3B,OAAOA,QAAQ,CAACO,GAAG,CAAC,CAACC,KAAK,EAAEC,KAAK,KAAK;QACpC,IAAI,OAAOD,KAAK,KAAK,QAAQ,EAAE;UAC7B,oBACEV,IAAA,CAACJ,IAAI;YAAaU,KAAK,EAAEH,SAAU;YAAAD,QAAA,EAChCQ;UAAK,GADGC,KAEL,CAAC;QAEX,CAAC,MAAM,IAAI,aAAAjB,KAAK,CAACkB,cAAc,CAACF,KAAK,CAAC,IAAIA,KAAK,CAACG,IAAI,KAAKf,IAAI,EAAE;UAC7D,oBAAOJ,KAAK,CAACoB,YAAY,CAACJ,KAAK,EAA6B;YAC1DK,GAAG,EAAEL,KAAK,CAACK,GAAG;YACd,GAAGX,SAAS;YACZE,KAAK,EAAE,CAACF,SAAS,EAAEE,KAAK,EAAET,cAAc,CAACa,KAAK,EAAE,OAAO,CAAC;UAC1D,CAAC,CAAC;QACJ;QACA,OAAOA,KAAK;MACd,CAAC,CAAC;IACJ;IACA,OAAOR,QAAQ;EACjB,CAAC,EAAE,CAACA,QAAQ,EAAEE,SAAS,EAAED,SAAS,CAAC,CAAC;EAEpC,OAAOE,iBAAiB;AAC1B","ignoreList":[]}
@@ -8,18 +8,23 @@ export const useTabsVariantDefault = () => {
8
8
  fontFamily,
9
9
  fontSize
10
10
  }) => ({
11
- list: {
11
+ root: {
12
12
  flexDirection: "row",
13
13
  backgroundColor: colors.muted,
14
14
  padding: 4,
15
15
  borderRadius: radius,
16
16
  gap: 4
17
17
  },
18
- trigger: {
18
+ item: {
19
19
  default: {
20
- paddingVertical: 8,
20
+ flex: 1,
21
+ flexDirection: "row",
22
+ alignItems: "center",
23
+ justifyContent: "center",
24
+ gap: 8,
25
+ paddingVertical: 6,
21
26
  paddingHorizontal: 12,
22
- borderRadius: radius,
27
+ borderRadius: radius - 2,
23
28
  backgroundColor: "transparent"
24
29
  },
25
30
  active: {
@@ -29,19 +34,32 @@ export const useTabsVariantDefault = () => {
29
34
  width: 0,
30
35
  height: 1
31
36
  },
32
- shadowOpacity: 0.1,
37
+ shadowOpacity: 0.05,
33
38
  shadowRadius: 2,
34
- elevation: 2
39
+ elevation: 1
35
40
  },
36
41
  disabled: {
37
42
  opacity: 0.5
38
43
  }
39
44
  },
40
- triggerText: {
45
+ itemText: {
41
46
  default: {
42
47
  color: colors.mutedForeground,
43
48
  fontSize,
44
- fontFamily
49
+ fontFamily,
50
+ fontWeight: "500"
51
+ },
52
+ active: {
53
+ color: colors.foreground
54
+ },
55
+ disabled: {
56
+ color: colors.mutedForeground
57
+ }
58
+ },
59
+ itemIcon: {
60
+ default: {
61
+ color: colors.mutedForeground,
62
+ size: fontSize
45
63
  },
46
64
  active: {
47
65
  color: colors.foreground
@@ -1 +1 @@
1
- {"version":3,"names":["useThemedStyles","useTabsVariantDefault","colors","radius","fontFamily","fontSize","list","flexDirection","backgroundColor","muted","padding","borderRadius","gap","trigger","default","paddingVertical","paddingHorizontal","active","background","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","disabled","opacity","triggerText","color","mutedForeground","foreground"],"sourceRoot":"../../../../../src","sources":["components/tabs/variants/default.tsx"],"mappings":";;AAAA,SAASA,eAAe,QAAQ,qCAAkC;AAGlE,OAAO,MAAMC,qBAAqB,GAAGA,CAAA,KAAkB;EACrD,OAAOD,eAAe,CACpB,CAAC;IAAEE,MAAM;IAAEC,MAAM;IAAEC,UAAU;IAAEC;EAAS,CAAC,MAAkB;IACzDC,IAAI,EAAE;MACJC,aAAa,EAAE,KAAK;MACpBC,eAAe,EAAEN,MAAM,CAACO,KAAK;MAC7BC,OAAO,EAAE,CAAC;MACVC,YAAY,EAAER,MAAM;MACpBS,GAAG,EAAE;IACP,CAAC;IACDC,OAAO,EAAE;MACPC,OAAO,EAAE;QACPC,eAAe,EAAE,CAAC;QAClBC,iBAAiB,EAAE,EAAE;QACrBL,YAAY,EAAER,MAAM;QACpBK,eAAe,EAAE;MACnB,CAAC;MACDS,MAAM,EAAE;QACNT,eAAe,EAAEN,MAAM,CAACgB,UAAU;QAClCC,WAAW,EAAE,MAAM;QACnBC,YAAY,EAAE;UAAEC,KAAK,EAAE,CAAC;UAAEC,MAAM,EAAE;QAAE,CAAC;QACrCC,aAAa,EAAE,GAAG;QAClBC,YAAY,EAAE,CAAC;QACfC,SAAS,EAAE;MACb,CAAC;MACDC,QAAQ,EAAE;QACRC,OAAO,EAAE;MACX;IACF,CAAC;IACDC,WAAW,EAAE;MACXd,OAAO,EAAE;QACPe,KAAK,EAAE3B,MAAM,CAAC4B,eAAe;QAC7BzB,QAAQ;QACRD;MACF,CAAC;MACDa,MAAM,EAAE;QACNY,KAAK,EAAE3B,MAAM,CAAC6B;MAChB,CAAC;MACDL,QAAQ,EAAE;QACRG,KAAK,EAAE3B,MAAM,CAAC4B;MAChB;IACF;EACF,CAAC,CACH,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useThemedStyles","useTabsVariantDefault","colors","radius","fontFamily","fontSize","root","flexDirection","backgroundColor","muted","padding","borderRadius","gap","item","default","flex","alignItems","justifyContent","paddingVertical","paddingHorizontal","active","background","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","disabled","opacity","itemText","color","mutedForeground","fontWeight","foreground","itemIcon","size"],"sourceRoot":"../../../../../src","sources":["components/tabs/variants/default.tsx"],"mappings":";;AAAA,SAASA,eAAe,QAAQ,qCAAkC;AAGlE,OAAO,MAAMC,qBAAqB,GAAGA,CAAA,KAAkB;EACrD,OAAOD,eAAe,CACpB,CAAC;IAAEE,MAAM;IAAEC,MAAM;IAAEC,UAAU;IAAEC;EAAS,CAAC,MAAkB;IACzDC,IAAI,EAAE;MACJC,aAAa,EAAE,KAAK;MACpBC,eAAe,EAAEN,MAAM,CAACO,KAAK;MAC7BC,OAAO,EAAE,CAAC;MACVC,YAAY,EAAER,MAAM;MACpBS,GAAG,EAAE;IACP,CAAC;IACDC,IAAI,EAAE;MACJC,OAAO,EAAE;QACPC,IAAI,EAAE,CAAC;QACPR,aAAa,EAAE,KAAK;QACpBS,UAAU,EAAE,QAAQ;QACpBC,cAAc,EAAE,QAAQ;QACxBL,GAAG,EAAE,CAAC;QACNM,eAAe,EAAE,CAAC;QAClBC,iBAAiB,EAAE,EAAE;QACrBR,YAAY,EAAER,MAAM,GAAG,CAAC;QACxBK,eAAe,EAAE;MACnB,CAAC;MACDY,MAAM,EAAE;QACNZ,eAAe,EAAEN,MAAM,CAACmB,UAAU;QAClCC,WAAW,EAAE,MAAM;QACnBC,YAAY,EAAE;UAAEC,KAAK,EAAE,CAAC;UAAEC,MAAM,EAAE;QAAE,CAAC;QACrCC,aAAa,EAAE,IAAI;QACnBC,YAAY,EAAE,CAAC;QACfC,SAAS,EAAE;MACb,CAAC;MACDC,QAAQ,EAAE;QACRC,OAAO,EAAE;MACX;IACF,CAAC;IACDC,QAAQ,EAAE;MACRjB,OAAO,EAAE;QACPkB,KAAK,EAAE9B,MAAM,CAAC+B,eAAe;QAC7B5B,QAAQ;QACRD,UAAU;QACV8B,UAAU,EAAE;MACd,CAAC;MACDd,MAAM,EAAE;QACNY,KAAK,EAAE9B,MAAM,CAACiC;MAChB,CAAC;MACDN,QAAQ,EAAE;QACRG,KAAK,EAAE9B,MAAM,CAAC+B;MAChB;IACF,CAAC;IACDG,QAAQ,EAAE;MACRtB,OAAO,EAAE;QACPkB,KAAK,EAAE9B,MAAM,CAAC+B,eAAe;QAC7BI,IAAI,EAAEhC;MACR,CAAC;MACDe,MAAM,EAAE;QACNY,KAAK,EAAE9B,MAAM,CAACiC;MAChB,CAAC;MACDN,QAAQ,EAAE;QACRG,KAAK,EAAE9B,MAAM,CAAC+B;MAChB;IACF;EACF,CAAC,CACH,CAAC;AACH,CAAC","ignoreList":[]}
@@ -7,16 +7,20 @@ export const useTabsVariantLine = () => {
7
7
  fontFamily,
8
8
  fontSize
9
9
  }) => ({
10
- list: {
10
+ root: {
11
11
  flexDirection: "row",
12
12
  borderBottomWidth: 1,
13
- borderBottomColor: colors.border,
14
- gap: 0
13
+ borderBottomColor: colors.border
15
14
  },
16
- trigger: {
15
+ item: {
17
16
  default: {
18
- paddingVertical: 12,
17
+ flexDirection: "row",
18
+ alignItems: "center",
19
+ justifyContent: "center",
20
+ gap: 8,
21
+ paddingVertical: 8,
19
22
  paddingHorizontal: 16,
23
+ marginBottom: -1,
20
24
  borderBottomWidth: 2,
21
25
  borderBottomColor: "transparent",
22
26
  backgroundColor: "transparent"
@@ -28,11 +32,24 @@ export const useTabsVariantLine = () => {
28
32
  opacity: 0.5
29
33
  }
30
34
  },
31
- triggerText: {
35
+ itemText: {
32
36
  default: {
33
37
  color: colors.mutedForeground,
34
38
  fontSize,
35
- fontFamily
39
+ fontFamily,
40
+ fontWeight: "500"
41
+ },
42
+ active: {
43
+ color: colors.foreground
44
+ },
45
+ disabled: {
46
+ color: colors.mutedForeground
47
+ }
48
+ },
49
+ itemIcon: {
50
+ default: {
51
+ color: colors.mutedForeground,
52
+ size: fontSize
36
53
  },
37
54
  active: {
38
55
  color: colors.foreground
@@ -1 +1 @@
1
- {"version":3,"names":["useThemedStyles","useTabsVariantLine","colors","fontFamily","fontSize","list","flexDirection","borderBottomWidth","borderBottomColor","border","gap","trigger","default","paddingVertical","paddingHorizontal","backgroundColor","active","primary","disabled","opacity","triggerText","color","mutedForeground","foreground"],"sourceRoot":"../../../../../src","sources":["components/tabs/variants/line.tsx"],"mappings":";;AACA,SAASA,eAAe,QAAQ,qCAAkC;AAElE,OAAO,MAAMC,kBAAkB,GAAGA,CAAA,KAAkB;EAClD,OAAOD,eAAe,CACpB,CAAC;IAAEE,MAAM;IAAEC,UAAU;IAAEC;EAAS,CAAC,MAAkB;IACjDC,IAAI,EAAE;MACJC,aAAa,EAAE,KAAK;MACpBC,iBAAiB,EAAE,CAAC;MACpBC,iBAAiB,EAAEN,MAAM,CAACO,MAAM;MAChCC,GAAG,EAAE;IACP,CAAC;IACDC,OAAO,EAAE;MACPC,OAAO,EAAE;QACPC,eAAe,EAAE,EAAE;QACnBC,iBAAiB,EAAE,EAAE;QACrBP,iBAAiB,EAAE,CAAC;QACpBC,iBAAiB,EAAE,aAAa;QAChCO,eAAe,EAAE;MACnB,CAAC;MACDC,MAAM,EAAE;QACNR,iBAAiB,EAAEN,MAAM,CAACe;MAC5B,CAAC;MACDC,QAAQ,EAAE;QACRC,OAAO,EAAE;MACX;IACF,CAAC;IACDC,WAAW,EAAE;MACXR,OAAO,EAAE;QACPS,KAAK,EAAEnB,MAAM,CAACoB,eAAe;QAC7BlB,QAAQ;QACRD;MACF,CAAC;MACDa,MAAM,EAAE;QACNK,KAAK,EAAEnB,MAAM,CAACqB;MAChB,CAAC;MACDL,QAAQ,EAAE;QACRG,KAAK,EAAEnB,MAAM,CAACoB;MAChB;IACF;EACF,CAAC,CACH,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useThemedStyles","useTabsVariantLine","colors","fontFamily","fontSize","root","flexDirection","borderBottomWidth","borderBottomColor","border","item","default","alignItems","justifyContent","gap","paddingVertical","paddingHorizontal","marginBottom","backgroundColor","active","primary","disabled","opacity","itemText","color","mutedForeground","fontWeight","foreground","itemIcon","size"],"sourceRoot":"../../../../../src","sources":["components/tabs/variants/line.tsx"],"mappings":";;AACA,SAASA,eAAe,QAAQ,qCAAkC;AAElE,OAAO,MAAMC,kBAAkB,GAAGA,CAAA,KAAkB;EAClD,OAAOD,eAAe,CACpB,CAAC;IAAEE,MAAM;IAAEC,UAAU;IAAEC;EAAS,CAAC,MAAkB;IACjDC,IAAI,EAAE;MACJC,aAAa,EAAE,KAAK;MACpBC,iBAAiB,EAAE,CAAC;MACpBC,iBAAiB,EAAEN,MAAM,CAACO;IAC5B,CAAC;IACDC,IAAI,EAAE;MACJC,OAAO,EAAE;QACPL,aAAa,EAAE,KAAK;QACpBM,UAAU,EAAE,QAAQ;QACpBC,cAAc,EAAE,QAAQ;QACxBC,GAAG,EAAE,CAAC;QACNC,eAAe,EAAE,CAAC;QAClBC,iBAAiB,EAAE,EAAE;QACrBC,YAAY,EAAE,CAAC,CAAC;QAChBV,iBAAiB,EAAE,CAAC;QACpBC,iBAAiB,EAAE,aAAa;QAChCU,eAAe,EAAE;MACnB,CAAC;MACDC,MAAM,EAAE;QACNX,iBAAiB,EAAEN,MAAM,CAACkB;MAC5B,CAAC;MACDC,QAAQ,EAAE;QACRC,OAAO,EAAE;MACX;IACF,CAAC;IACDC,QAAQ,EAAE;MACRZ,OAAO,EAAE;QACPa,KAAK,EAAEtB,MAAM,CAACuB,eAAe;QAC7BrB,QAAQ;QACRD,UAAU;QACVuB,UAAU,EAAE;MACd,CAAC;MACDP,MAAM,EAAE;QACNK,KAAK,EAAEtB,MAAM,CAACyB;MAChB,CAAC;MACDN,QAAQ,EAAE;QACRG,KAAK,EAAEtB,MAAM,CAACuB;MAChB;IACF,CAAC;IACDG,QAAQ,EAAE;MACRjB,OAAO,EAAE;QACPa,KAAK,EAAEtB,MAAM,CAACuB,eAAe;QAC7BI,IAAI,EAAEzB;MACR,CAAC;MACDe,MAAM,EAAE;QACNK,KAAK,EAAEtB,MAAM,CAACyB;MAChB,CAAC;MACDN,QAAQ,EAAE;QACRG,KAAK,EAAEtB,MAAM,CAACuB;MAChB;IACF;EACF,CAAC,CACH,CAAC;AACH,CAAC","ignoreList":[]}
@@ -1,10 +1,10 @@
1
1
  import React from "react";
2
2
  import { type PressableProps, type StyleProp, type ViewStyle } from "react-native";
3
- export interface TabsTriggerProps extends PressableProps {
3
+ export interface TabsItemProps extends PressableProps {
4
4
  children: React.ReactNode;
5
5
  value: string;
6
6
  isDisabled?: boolean;
7
7
  style?: StyleProp<ViewStyle>;
8
8
  }
9
- export declare function TabsTrigger(props: TabsTriggerProps): React.JSX.Element;
10
- //# sourceMappingURL=tabs-trigger.d.ts.map
9
+ export declare function TabsItem(props: TabsItemProps): React.JSX.Element;
10
+ //# sourceMappingURL=tabs-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs-item.d.ts","sourceRoot":"","sources":["../../../../../../src/components/tabs/components/tabs-item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAKtB,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAmBD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,qBA2D5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"tabs-root.d.ts","sourceRoot":"","sources":["../../../../../../src/components/tabs/components/tabs-root.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,EAAQ,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IAChE,OAAO,CAAC,EAAE,MAAM,OAAO,YAAY,CAAC;IACpC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,qBAoB5C"}
1
+ {"version":3,"file":"tabs-root.d.ts","sourceRoot":"","sources":["../../../../../../src/components/tabs/components/tabs-root.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IAChE,OAAO,CAAC,EAAE,MAAM,OAAO,YAAY,CAAC;IACpC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,qBAqB5C"}
@@ -1,16 +1,10 @@
1
- import { TabsList } from "./components/tabs-list";
1
+ import { TabsItem } from "./components/tabs-item";
2
2
  import { TabsRoot } from "./components/tabs-root";
3
- import { TabsTrigger } from "./components/tabs-trigger";
4
- import { TabsTriggerText } from "./components/tabs-trigger-text";
5
3
  export declare const Tabs: {
6
4
  Root: typeof TabsRoot;
7
- List: typeof TabsList;
8
- Trigger: typeof TabsTrigger;
9
- TriggerText: typeof TabsTriggerText;
5
+ Item: typeof TabsItem;
10
6
  };
11
- export type { TabsListProps } from "./components/tabs-list";
7
+ export type { TabsItemProps } from "./components/tabs-item";
12
8
  export type { TabsRootProps } from "./components/tabs-root";
13
- export type { TabsTriggerProps } from "./components/tabs-trigger";
14
- export type { TabsTriggerTextProps } from "./components/tabs-trigger-text";
15
9
  export * from "./types";
16
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/tabs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,eAAO,MAAM,IAAI;;;;;CAKhB,CAAC;AAEF,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,YAAY,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/tabs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,eAAO,MAAM,IAAI;;;CAGhB,CAAC;AAEF,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,cAAc,SAAS,CAAC"}
@@ -1,11 +1,12 @@
1
1
  import type { StyleProp, TextStyle } from "react-native";
2
- import type { TabsListProps } from "./components/tabs-list";
3
- import type { TabsTriggerProps } from "./components/tabs-trigger";
4
- export type TabsState = "default" | "active" | "disabled";
2
+ import type { IconProps } from "../icon";
3
+ import type { TabsItemProps } from "./components/tabs-item";
4
+ import type { TabsRootProps } from "./components/tabs-root";
5
+ export type TabsItemState = "default" | "active" | "disabled" | "hovered";
5
6
  export interface TabsStyles {
6
- root?: TabsListProps["style"];
7
- list?: TabsListProps["style"];
8
- trigger?: Partial<Record<TabsState, TabsTriggerProps["style"]>>;
9
- triggerText?: Partial<Record<TabsState, StyleProp<TextStyle>>>;
7
+ root?: TabsRootProps["style"];
8
+ item?: Partial<Record<TabsItemState, TabsItemProps["style"]>>;
9
+ itemText?: Partial<Record<TabsItemState, StyleProp<TextStyle>>>;
10
+ itemIcon?: Partial<Record<TabsItemState, IconProps>>;
10
11
  }
11
12
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/tabs/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE1D,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9B,IAAI,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChE,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CAChE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/tabs/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAE1E,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC;CACtD"}
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ import { type StyleProp, type TextStyle } from "react-native";
3
+ import { type IconProps } from "../icon";
4
+ export declare function useOrganizedChildren(children: React.ReactNode, textStyle: StyleProp<TextStyle> | undefined, iconProps: IconProps | undefined): number | bigint | boolean | any[] | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null | undefined;
5
+ //# sourceMappingURL=use-organized-children.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-organized-children.d.ts","sourceRoot":"","sources":["../../../../../src/components/tabs/use-organized-children.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,EAAQ,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AAE/C,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,KAAK,CAAC,SAAS,EACzB,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,GAAG,SAAS,EAC3C,SAAS,EAAE,SAAS,GAAG,SAAS,kSA4BjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../../../../src/components/tabs/variants/default.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,eAAO,MAAM,qBAAqB,QAAO,UA4CxC,CAAC"}
1
+ {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../../../../src/components/tabs/variants/default.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,eAAO,MAAM,qBAAqB,QAAO,UA8DxC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"line.d.ts","sourceRoot":"","sources":["../../../../../../src/components/tabs/variants/line.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,OAAO,CAAC;AAGxC,eAAO,MAAM,kBAAkB,QAAO,UAuCrC,CAAC"}
1
+ {"version":3,"file":"line.d.ts","sourceRoot":"","sources":["../../../../../../src/components/tabs/variants/line.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,OAAO,CAAC;AAGxC,eAAO,MAAM,kBAAkB,QAAO,UAwDrC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@korsolutions/ui",
3
- "version": "0.0.61",
3
+ "version": "0.0.62",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -0,0 +1,96 @@
1
+ import React, { useState } from "react";
2
+ import {
3
+ Pressable,
4
+ StyleSheet,
5
+ type PressableProps,
6
+ type StyleProp,
7
+ type ViewStyle,
8
+ } from "react-native";
9
+ import { useTabsContext } from "../context";
10
+ import type { TabsItemState } from "../types";
11
+ import { useOrganizedChildren } from "../use-organized-children";
12
+
13
+ export interface TabsItemProps extends PressableProps {
14
+ children: React.ReactNode;
15
+ value: string;
16
+ isDisabled?: boolean;
17
+ style?: StyleProp<ViewStyle>;
18
+ }
19
+
20
+ const calculateState = (
21
+ isActive: boolean,
22
+ isDisabled: boolean,
23
+ isHovered: boolean,
24
+ ): TabsItemState => {
25
+ if (isDisabled) {
26
+ return "disabled";
27
+ }
28
+ if (isActive) {
29
+ return "active";
30
+ }
31
+ if (isHovered) {
32
+ return "hovered";
33
+ }
34
+ return "default";
35
+ };
36
+
37
+ export function TabsItem(props: TabsItemProps) {
38
+ const {
39
+ children,
40
+ value: triggerValue,
41
+ isDisabled = false,
42
+ style,
43
+ ...pressableProps
44
+ } = props;
45
+ const { value, onChange, styles } = useTabsContext();
46
+ const [isHovered, setIsHovered] = useState(false);
47
+ const isActive = value === triggerValue;
48
+ const state = calculateState(isActive, isDisabled, isHovered);
49
+
50
+ const handlePress = () => {
51
+ if (!isDisabled) {
52
+ onChange(triggerValue);
53
+ }
54
+ };
55
+
56
+ const calculatedStyle = StyleSheet.flatten([
57
+ styles?.item?.default,
58
+ styles?.item?.[state],
59
+ style,
60
+ ]);
61
+
62
+ const textStyles = StyleSheet.flatten([
63
+ styles?.itemText?.default,
64
+ styles?.itemText?.[state],
65
+ ]);
66
+
67
+ const iconStyles = StyleSheet.flatten([
68
+ styles?.itemIcon?.default,
69
+ styles?.itemIcon?.[state],
70
+ ]);
71
+
72
+ const organizedChildren = useOrganizedChildren(
73
+ children,
74
+ textStyles,
75
+ iconStyles ?? undefined,
76
+ );
77
+
78
+ return (
79
+ <Pressable
80
+ {...pressableProps}
81
+ onHoverIn={(e) => {
82
+ setIsHovered(true);
83
+ pressableProps.onHoverIn?.(e);
84
+ }}
85
+ onHoverOut={(e) => {
86
+ setIsHovered(false);
87
+ pressableProps.onHoverOut?.(e);
88
+ }}
89
+ disabled={isDisabled}
90
+ onPress={handlePress}
91
+ style={calculatedStyle}
92
+ >
93
+ {organizedChildren}
94
+ </Pressable>
95
+ );
96
+ }
@@ -1,5 +1,11 @@
1
1
  import React, { useMemo } from "react";
2
- import { View, type StyleProp, type ViewProps, type ViewStyle } from "react-native";
2
+ import {
3
+ StyleSheet,
4
+ View,
5
+ type StyleProp,
6
+ type ViewProps,
7
+ type ViewStyle,
8
+ } from "react-native";
3
9
  import { TabsContext } from "../context";
4
10
  import { TabsVariants } from "../variants";
5
11
 
@@ -23,10 +29,11 @@ export function TabsRoot(props: TabsRootProps) {
23
29
  }),
24
30
  [value, onChange, variantStyles],
25
31
  );
32
+ const composedStyles = StyleSheet.flatten([variantStyles?.root, style]);
26
33
 
27
34
  return (
28
35
  <TabsContext.Provider value={contextValue}>
29
- <View {...viewProps} style={style}>
36
+ <View {...viewProps} style={composedStyles}>
30
37
  {children}
31
38
  </View>
32
39
  </TabsContext.Provider>
@@ -1,17 +1,11 @@
1
- import { TabsList } from "./components/tabs-list";
1
+ import { TabsItem } from "./components/tabs-item";
2
2
  import { TabsRoot } from "./components/tabs-root";
3
- import { TabsTrigger } from "./components/tabs-trigger";
4
- import { TabsTriggerText } from "./components/tabs-trigger-text";
5
3
 
6
4
  export const Tabs = {
7
5
  Root: TabsRoot,
8
- List: TabsList,
9
- Trigger: TabsTrigger,
10
- TriggerText: TabsTriggerText,
6
+ Item: TabsItem,
11
7
  };
12
8
 
13
- export type { TabsListProps } from "./components/tabs-list";
9
+ export type { TabsItemProps } from "./components/tabs-item";
14
10
  export type { TabsRootProps } from "./components/tabs-root";
15
- export type { TabsTriggerProps } from "./components/tabs-trigger";
16
- export type { TabsTriggerTextProps } from "./components/tabs-trigger-text";
17
11
  export * from "./types";
@@ -1,12 +1,13 @@
1
1
  import type { StyleProp, TextStyle } from "react-native";
2
- import type { TabsListProps } from "./components/tabs-list";
3
- import type { TabsTriggerProps } from "./components/tabs-trigger";
2
+ import type { IconProps } from "../icon";
3
+ import type { TabsItemProps } from "./components/tabs-item";
4
+ import type { TabsRootProps } from "./components/tabs-root";
4
5
 
5
- export type TabsState = "default" | "active" | "disabled";
6
+ export type TabsItemState = "default" | "active" | "disabled" | "hovered";
6
7
 
7
8
  export interface TabsStyles {
8
- root?: TabsListProps["style"];
9
- list?: TabsListProps["style"];
10
- trigger?: Partial<Record<TabsState, TabsTriggerProps["style"]>>;
11
- triggerText?: Partial<Record<TabsState, StyleProp<TextStyle>>>;
9
+ root?: TabsRootProps["style"];
10
+ item?: Partial<Record<TabsItemState, TabsItemProps["style"]>>;
11
+ itemText?: Partial<Record<TabsItemState, StyleProp<TextStyle>>>;
12
+ itemIcon?: Partial<Record<TabsItemState, IconProps>>;
12
13
  }
@@ -0,0 +1,37 @@
1
+ import React, { useMemo } from "react";
2
+ import { Text, type StyleProp, type TextStyle } from "react-native";
3
+ import { getElementProp } from "../../utils/element-utils";
4
+ import { Icon, type IconProps } from "../icon";
5
+
6
+ export function useOrganizedChildren(
7
+ children: React.ReactNode,
8
+ textStyle: StyleProp<TextStyle> | undefined,
9
+ iconProps: IconProps | undefined,
10
+ ) {
11
+ const organizedChildren = useMemo(() => {
12
+ if (typeof children === "string") {
13
+ return <Text style={textStyle}>{children}</Text>;
14
+ }
15
+ if (Array.isArray(children)) {
16
+ return children.map((child, index) => {
17
+ if (typeof child === "string") {
18
+ return (
19
+ <Text key={index} style={textStyle}>
20
+ {child}
21
+ </Text>
22
+ );
23
+ } else if (React.isValidElement(child) && child.type === Icon) {
24
+ return React.cloneElement(child as React.ReactElement<any>, {
25
+ key: child.key,
26
+ ...iconProps,
27
+ style: [iconProps?.style, getElementProp(child, "style")],
28
+ });
29
+ }
30
+ return child;
31
+ });
32
+ }
33
+ return children;
34
+ }, [children, iconProps, textStyle]);
35
+
36
+ return organizedChildren;
37
+ }
@@ -4,37 +4,55 @@ import { type TabsStyles } from "../types";
4
4
  export const useTabsVariantDefault = (): TabsStyles => {
5
5
  return useThemedStyles(
6
6
  ({ colors, radius, fontFamily, fontSize }): TabsStyles => ({
7
- list: {
7
+ root: {
8
8
  flexDirection: "row",
9
9
  backgroundColor: colors.muted,
10
10
  padding: 4,
11
11
  borderRadius: radius,
12
12
  gap: 4,
13
13
  },
14
- trigger: {
14
+ item: {
15
15
  default: {
16
- paddingVertical: 8,
16
+ flex: 1,
17
+ flexDirection: "row",
18
+ alignItems: "center",
19
+ justifyContent: "center",
20
+ gap: 8,
21
+ paddingVertical: 6,
17
22
  paddingHorizontal: 12,
18
- borderRadius: radius,
23
+ borderRadius: radius - 2,
19
24
  backgroundColor: "transparent",
20
25
  },
21
26
  active: {
22
27
  backgroundColor: colors.background,
23
28
  shadowColor: "#000",
24
29
  shadowOffset: { width: 0, height: 1 },
25
- shadowOpacity: 0.1,
30
+ shadowOpacity: 0.05,
26
31
  shadowRadius: 2,
27
- elevation: 2,
32
+ elevation: 1,
28
33
  },
29
34
  disabled: {
30
35
  opacity: 0.5,
31
36
  },
32
37
  },
33
- triggerText: {
38
+ itemText: {
34
39
  default: {
35
40
  color: colors.mutedForeground,
36
41
  fontSize,
37
42
  fontFamily,
43
+ fontWeight: "500",
44
+ },
45
+ active: {
46
+ color: colors.foreground,
47
+ },
48
+ disabled: {
49
+ color: colors.mutedForeground,
50
+ },
51
+ },
52
+ itemIcon: {
53
+ default: {
54
+ color: colors.mutedForeground,
55
+ size: fontSize,
38
56
  },
39
57
  active: {
40
58
  color: colors.foreground,
@@ -4,16 +4,20 @@ import { useThemedStyles } from "../../../utils/use-themed-styles";
4
4
  export const useTabsVariantLine = (): TabsStyles => {
5
5
  return useThemedStyles(
6
6
  ({ colors, fontFamily, fontSize }): TabsStyles => ({
7
- list: {
7
+ root: {
8
8
  flexDirection: "row",
9
9
  borderBottomWidth: 1,
10
10
  borderBottomColor: colors.border,
11
- gap: 0,
12
11
  },
13
- trigger: {
12
+ item: {
14
13
  default: {
15
- paddingVertical: 12,
14
+ flexDirection: "row",
15
+ alignItems: "center",
16
+ justifyContent: "center",
17
+ gap: 8,
18
+ paddingVertical: 8,
16
19
  paddingHorizontal: 16,
20
+ marginBottom: -1,
17
21
  borderBottomWidth: 2,
18
22
  borderBottomColor: "transparent",
19
23
  backgroundColor: "transparent",
@@ -25,11 +29,24 @@ export const useTabsVariantLine = (): TabsStyles => {
25
29
  opacity: 0.5,
26
30
  },
27
31
  },
28
- triggerText: {
32
+ itemText: {
29
33
  default: {
30
34
  color: colors.mutedForeground,
31
35
  fontSize,
32
36
  fontFamily,
37
+ fontWeight: "500",
38
+ },
39
+ active: {
40
+ color: colors.foreground,
41
+ },
42
+ disabled: {
43
+ color: colors.mutedForeground,
44
+ },
45
+ },
46
+ itemIcon: {
47
+ default: {
48
+ color: colors.mutedForeground,
49
+ size: fontSize,
33
50
  },
34
51
  active: {
35
52
  color: colors.foreground,
@@ -1,23 +0,0 @@
1
- "use strict";
2
-
3
- import React from "react";
4
- import { View } from "react-native";
5
- import { useTabsContext } from "../context.js";
6
- import { jsx as _jsx } from "react/jsx-runtime";
7
- export function TabsList(props) {
8
- const {
9
- children,
10
- style,
11
- ...viewProps
12
- } = props;
13
- const {
14
- styles
15
- } = useTabsContext();
16
- const calculatedStyle = [styles?.list, style];
17
- return /*#__PURE__*/_jsx(View, {
18
- ...viewProps,
19
- style: calculatedStyle,
20
- children: children
21
- });
22
- }
23
- //# sourceMappingURL=tabs-list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","View","useTabsContext","jsx","_jsx","TabsList","props","children","style","viewProps","styles","calculatedStyle","list"],"sourceRoot":"../../../../../src","sources":["components/tabs/components/tabs-list.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAwD,cAAc;AACnF,SAASC,cAAc,QAAQ,eAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAO5C,OAAO,SAASC,QAAQA,CAACC,KAAoB,EAAE;EAC7C,MAAM;IAAEC,QAAQ;IAAEC,KAAK;IAAE,GAAGC;EAAU,CAAC,GAAGH,KAAK;EAC/C,MAAM;IAAEI;EAAO,CAAC,GAAGR,cAAc,CAAC,CAAC;EAEnC,MAAMS,eAAe,GAAG,CAACD,MAAM,EAAEE,IAAI,EAAEJ,KAAK,CAAC;EAE7C,oBACEJ,IAAA,CAACH,IAAI;IAAA,GAAKQ,SAAS;IAAED,KAAK,EAAEG,eAAgB;IAAAJ,QAAA,EACzCA;EAAQ,CACL,CAAC;AAEX","ignoreList":[]}
@@ -1,28 +0,0 @@
1
- "use strict";
2
-
3
- import React from "react";
4
- import { Text } from "react-native";
5
- import { useTabsContext } from "../context.js";
6
- import { jsx as _jsx } from "react/jsx-runtime";
7
- export function TabsTriggerText(props) {
8
- const {
9
- children,
10
- value: triggerValue,
11
- isDisabled,
12
- style,
13
- ...textProps
14
- } = props;
15
- const {
16
- value,
17
- styles
18
- } = useTabsContext();
19
- const isActive = value === triggerValue;
20
- const state = isDisabled ? "disabled" : isActive ? "active" : "default";
21
- const calculatedStyle = [styles?.triggerText?.default, styles?.triggerText?.[state], style];
22
- return /*#__PURE__*/_jsx(Text, {
23
- ...textProps,
24
- style: calculatedStyle,
25
- children: children
26
- });
27
- }
28
- //# sourceMappingURL=tabs-trigger-text.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","Text","useTabsContext","jsx","_jsx","TabsTriggerText","props","children","value","triggerValue","isDisabled","style","textProps","styles","isActive","state","calculatedStyle","triggerText","default"],"sourceRoot":"../../../../../src","sources":["components/tabs/components/tabs-trigger-text.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAwD,cAAc;AACnF,SAASC,cAAc,QAAQ,eAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAS5C,OAAO,SAASC,eAAeA,CAACC,KAA2B,EAAE;EAC3D,MAAM;IAAEC,QAAQ;IAAEC,KAAK,EAAEC,YAAY;IAAEC,UAAU;IAAEC,KAAK;IAAE,GAAGC;EAAU,CAAC,GAAGN,KAAK;EAChF,MAAM;IAAEE,KAAK;IAAEK;EAAO,CAAC,GAAGX,cAAc,CAAC,CAAC;EAE1C,MAAMY,QAAQ,GAAGN,KAAK,KAAKC,YAAY;EACvC,MAAMM,KAAK,GAAGL,UAAU,GAAG,UAAU,GAAGI,QAAQ,GAAG,QAAQ,GAAG,SAAS;EAEvE,MAAME,eAAe,GAAG,CAACH,MAAM,EAAEI,WAAW,EAAEC,OAAO,EAAEL,MAAM,EAAEI,WAAW,GAAGF,KAAK,CAAC,EAAEJ,KAAK,CAAC;EAE3F,oBACEP,IAAA,CAACH,IAAI;IAAA,GAAKW,SAAS;IAAED,KAAK,EAAEK,eAAgB;IAAAT,QAAA,EACzCA;EAAQ,CACL,CAAC;AAEX","ignoreList":[]}
@@ -1,45 +0,0 @@
1
- "use strict";
2
-
3
- import React from "react";
4
- import { Pressable } from "react-native";
5
- import { useTabsContext } from "../context.js";
6
- import { jsx as _jsx } from "react/jsx-runtime";
7
- const calculateState = (isActive, isDisabled) => {
8
- if (isDisabled) {
9
- return "disabled";
10
- }
11
- if (isActive) {
12
- return "active";
13
- }
14
- return "default";
15
- };
16
- export function TabsTrigger(props) {
17
- const {
18
- children,
19
- value: triggerValue,
20
- isDisabled,
21
- style,
22
- ...pressableProps
23
- } = props;
24
- const {
25
- value,
26
- onChange,
27
- styles
28
- } = useTabsContext();
29
- const isActive = value === triggerValue;
30
- const state = calculateState(isActive, isDisabled);
31
- const handlePress = () => {
32
- if (!isDisabled) {
33
- onChange(triggerValue);
34
- }
35
- };
36
- const calculatedStyle = [styles?.trigger?.default, styles?.trigger?.[state], style];
37
- return /*#__PURE__*/_jsx(Pressable, {
38
- ...pressableProps,
39
- disabled: isDisabled,
40
- onPress: handlePress,
41
- style: calculatedStyle,
42
- children: children
43
- });
44
- }
45
- //# sourceMappingURL=tabs-trigger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","Pressable","useTabsContext","jsx","_jsx","calculateState","isActive","isDisabled","TabsTrigger","props","children","value","triggerValue","style","pressableProps","onChange","styles","state","handlePress","calculatedStyle","trigger","default","disabled","onPress"],"sourceRoot":"../../../../../src","sources":["components/tabs/components/tabs-trigger.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,QAA6D,cAAc;AAC7F,SAASC,cAAc,QAAQ,eAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAU5C,MAAMC,cAAc,GAAGA,CAACC,QAAiB,EAAEC,UAA+B,KAAgB;EACxF,IAAIA,UAAU,EAAE;IACd,OAAO,UAAU;EACnB;EACA,IAAID,QAAQ,EAAE;IACZ,OAAO,QAAQ;EACjB;EACA,OAAO,SAAS;AAClB,CAAC;AAED,OAAO,SAASE,WAAWA,CAACC,KAAuB,EAAE;EACnD,MAAM;IAAEC,QAAQ;IAAEC,KAAK,EAAEC,YAAY;IAAEL,UAAU;IAAEM,KAAK;IAAE,GAAGC;EAAe,CAAC,GAAGL,KAAK;EACrF,MAAM;IAAEE,KAAK;IAAEI,QAAQ;IAAEC;EAAO,CAAC,GAAGd,cAAc,CAAC,CAAC;EAEpD,MAAMI,QAAQ,GAAGK,KAAK,KAAKC,YAAY;EACvC,MAAMK,KAAK,GAAGZ,cAAc,CAACC,QAAQ,EAAEC,UAAU,CAAC;EAElD,MAAMW,WAAW,GAAGA,CAAA,KAAM;IACxB,IAAI,CAACX,UAAU,EAAE;MACfQ,QAAQ,CAACH,YAAY,CAAC;IACxB;EACF,CAAC;EAED,MAAMO,eAAe,GAAG,CAACH,MAAM,EAAEI,OAAO,EAAEC,OAAO,EAAEL,MAAM,EAAEI,OAAO,GAAGH,KAAK,CAAC,EAAEJ,KAAK,CAAC;EAEnF,oBACET,IAAA,CAACH,SAAS;IAAA,GAAKa,cAAc;IAAEQ,QAAQ,EAAEf,UAAW;IAACgB,OAAO,EAAEL,WAAY;IAACL,KAAK,EAAEM,eAAgB;IAAAT,QAAA,EAC/FA;EAAQ,CACA,CAAC;AAEhB","ignoreList":[]}
@@ -1,8 +0,0 @@
1
- import React from "react";
2
- import { type StyleProp, type ViewProps, type ViewStyle } from "react-native";
3
- export interface TabsListProps extends ViewProps {
4
- children: React.ReactNode;
5
- style?: StyleProp<ViewStyle>;
6
- }
7
- export declare function TabsList(props: TabsListProps): React.JSX.Element;
8
- //# sourceMappingURL=tabs-list.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tabs-list.d.ts","sourceRoot":"","sources":["../../../../../../src/components/tabs/components/tabs-list.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAQ,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAGpF,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC9C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,qBAW5C"}
@@ -1,10 +0,0 @@
1
- import React from "react";
2
- import { type StyleProp, type TextProps, type TextStyle } from "react-native";
3
- export interface TabsTriggerTextProps extends TextProps {
4
- children: React.ReactNode;
5
- value: string;
6
- isDisabled?: boolean;
7
- style?: StyleProp<TextStyle>;
8
- }
9
- export declare function TabsTriggerText(props: TabsTriggerTextProps): React.JSX.Element;
10
- //# sourceMappingURL=tabs-trigger-text.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tabs-trigger-text.d.ts","sourceRoot":"","sources":["../../../../../../src/components/tabs/components/tabs-trigger-text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAQ,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAGpF,MAAM,WAAW,oBAAqB,SAAQ,SAAS;IACrD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,qBAc1D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tabs-trigger.d.ts","sourceRoot":"","sources":["../../../../../../src/components/tabs/components/tabs-trigger.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAa,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9F,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAYD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,qBAoBlD"}
@@ -1,21 +0,0 @@
1
- import React from "react";
2
- import { View, type StyleProp, type ViewProps, type ViewStyle } from "react-native";
3
- import { useTabsContext } from "../context";
4
-
5
- export interface TabsListProps extends ViewProps {
6
- children: React.ReactNode;
7
- style?: StyleProp<ViewStyle>;
8
- }
9
-
10
- export function TabsList(props: TabsListProps) {
11
- const { children, style, ...viewProps } = props;
12
- const { styles } = useTabsContext();
13
-
14
- const calculatedStyle = [styles?.list, style];
15
-
16
- return (
17
- <View {...viewProps} style={calculatedStyle}>
18
- {children}
19
- </View>
20
- );
21
- }
@@ -1,26 +0,0 @@
1
- import React from "react";
2
- import { Text, type StyleProp, type TextProps, type TextStyle } from "react-native";
3
- import { useTabsContext } from "../context";
4
-
5
- export interface TabsTriggerTextProps extends TextProps {
6
- children: React.ReactNode;
7
- value: string;
8
- isDisabled?: boolean;
9
- style?: StyleProp<TextStyle>;
10
- }
11
-
12
- export function TabsTriggerText(props: TabsTriggerTextProps) {
13
- const { children, value: triggerValue, isDisabled, style, ...textProps } = props;
14
- const { value, styles } = useTabsContext();
15
-
16
- const isActive = value === triggerValue;
17
- const state = isDisabled ? "disabled" : isActive ? "active" : "default";
18
-
19
- const calculatedStyle = [styles?.triggerText?.default, styles?.triggerText?.[state], style];
20
-
21
- return (
22
- <Text {...textProps} style={calculatedStyle}>
23
- {children}
24
- </Text>
25
- );
26
- }
@@ -1,43 +0,0 @@
1
- import React from "react";
2
- import { Pressable, type PressableProps, type StyleProp, type ViewStyle } from "react-native";
3
- import { useTabsContext } from "../context";
4
- import type { TabsState } from "../types";
5
-
6
- export interface TabsTriggerProps extends PressableProps {
7
- children: React.ReactNode;
8
- value: string;
9
- isDisabled?: boolean;
10
- style?: StyleProp<ViewStyle>;
11
- }
12
-
13
- const calculateState = (isActive: boolean, isDisabled: boolean | undefined): TabsState => {
14
- if (isDisabled) {
15
- return "disabled";
16
- }
17
- if (isActive) {
18
- return "active";
19
- }
20
- return "default";
21
- };
22
-
23
- export function TabsTrigger(props: TabsTriggerProps) {
24
- const { children, value: triggerValue, isDisabled, style, ...pressableProps } = props;
25
- const { value, onChange, styles } = useTabsContext();
26
-
27
- const isActive = value === triggerValue;
28
- const state = calculateState(isActive, isDisabled);
29
-
30
- const handlePress = () => {
31
- if (!isDisabled) {
32
- onChange(triggerValue);
33
- }
34
- };
35
-
36
- const calculatedStyle = [styles?.trigger?.default, styles?.trigger?.[state], style];
37
-
38
- return (
39
- <Pressable {...pressableProps} disabled={isDisabled} onPress={handlePress} style={calculatedStyle}>
40
- {children}
41
- </Pressable>
42
- );
43
- }