@nori-ui/core 1.6.0 → 1.7.0
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/{chunk-7UKRN73P.js → chunk-2XJCLPNH.js} +3 -3
- package/dist/{chunk-7UKRN73P.js.map → chunk-2XJCLPNH.js.map} +1 -1
- package/dist/{chunk-5PSC5HT4.js → chunk-3B345SQU.js} +5 -5
- package/dist/{chunk-5PSC5HT4.js.map → chunk-3B345SQU.js.map} +1 -1
- package/dist/{chunk-JSAG5YO7.js → chunk-3IIIHZHT.js} +3 -3
- package/dist/{chunk-JSAG5YO7.js.map → chunk-3IIIHZHT.js.map} +1 -1
- package/dist/{chunk-DDGMLLS3.js → chunk-3W3XYULK.js} +3 -3
- package/dist/{chunk-DDGMLLS3.js.map → chunk-3W3XYULK.js.map} +1 -1
- package/dist/{chunk-WYPGQVDV.js → chunk-5YHT252H.js} +3 -3
- package/dist/{chunk-WYPGQVDV.js.map → chunk-5YHT252H.js.map} +1 -1
- package/dist/{chunk-ZMSIYLSI.js → chunk-7FSFJA33.js} +3 -3
- package/dist/{chunk-ZMSIYLSI.js.map → chunk-7FSFJA33.js.map} +1 -1
- package/dist/{chunk-YZ27OS2R.js → chunk-C32XGHWO.js} +3 -3
- package/dist/{chunk-YZ27OS2R.js.map → chunk-C32XGHWO.js.map} +1 -1
- package/dist/{chunk-UJWCEGQY.js → chunk-C5HQPXRI.js} +3 -3
- package/dist/{chunk-UJWCEGQY.js.map → chunk-C5HQPXRI.js.map} +1 -1
- package/dist/{chunk-XALU6LOT.js → chunk-EN4CLDGZ.js} +3 -3
- package/dist/{chunk-XALU6LOT.js.map → chunk-EN4CLDGZ.js.map} +1 -1
- package/dist/{chunk-6AD6KCVB.js → chunk-F5UKI7XD.js} +3 -3
- package/dist/{chunk-6AD6KCVB.js.map → chunk-F5UKI7XD.js.map} +1 -1
- package/dist/chunk-GTAXVTLF.js +43 -0
- package/dist/chunk-GTAXVTLF.js.map +1 -0
- package/dist/{chunk-NNFJKRXZ.js → chunk-H2LHWJ52.js} +3 -3
- package/dist/{chunk-NNFJKRXZ.js.map → chunk-H2LHWJ52.js.map} +1 -1
- package/dist/{chunk-PZS4A4VQ.js → chunk-HXCETKCC.js} +3 -3
- package/dist/{chunk-PZS4A4VQ.js.map → chunk-HXCETKCC.js.map} +1 -1
- package/dist/chunk-IGBXSBF7.js +71 -0
- package/dist/chunk-IGBXSBF7.js.map +1 -0
- package/dist/{chunk-JXLEMBDB.js → chunk-IIVTPN62.js} +3 -3
- package/dist/{chunk-JXLEMBDB.js.map → chunk-IIVTPN62.js.map} +1 -1
- package/dist/{chunk-PNP7L4TA.js → chunk-ISCJST4P.js} +3 -3
- package/dist/{chunk-PNP7L4TA.js.map → chunk-ISCJST4P.js.map} +1 -1
- package/dist/{chunk-TLS54G6Y.js → chunk-IWM2XDXH.js} +3 -3
- package/dist/{chunk-TLS54G6Y.js.map → chunk-IWM2XDXH.js.map} +1 -1
- package/dist/chunk-J5LK2XHE.js +118 -0
- package/dist/chunk-J5LK2XHE.js.map +1 -0
- package/dist/chunk-KFFGDET3.js +27 -0
- package/dist/chunk-KFFGDET3.js.map +1 -0
- package/dist/{chunk-MRJWPRCX.js → chunk-L6VYDM7S.js} +3 -3
- package/dist/{chunk-MRJWPRCX.js.map → chunk-L6VYDM7S.js.map} +1 -1
- package/dist/chunk-M4BI63P6.js +188 -0
- package/dist/chunk-M4BI63P6.js.map +1 -0
- package/dist/{chunk-RUWD35UI.js → chunk-MK57AOTI.js} +4 -4
- package/dist/{chunk-RUWD35UI.js.map → chunk-MK57AOTI.js.map} +1 -1
- package/dist/{chunk-3BDDPFCI.js → chunk-MOAIQHR7.js} +3 -3
- package/dist/{chunk-3BDDPFCI.js.map → chunk-MOAIQHR7.js.map} +1 -1
- package/dist/{chunk-5XEGZFG5.js → chunk-MYBBBLYE.js} +3 -3
- package/dist/{chunk-5XEGZFG5.js.map → chunk-MYBBBLYE.js.map} +1 -1
- package/dist/{chunk-WP2Z2ATO.js → chunk-O6M3F7BZ.js} +5 -5
- package/dist/{chunk-WP2Z2ATO.js.map → chunk-O6M3F7BZ.js.map} +1 -1
- package/dist/{chunk-FEPTH5RV.js → chunk-OELY6K44.js} +3 -3
- package/dist/{chunk-FEPTH5RV.js.map → chunk-OELY6K44.js.map} +1 -1
- package/dist/{chunk-BZLT6R62.js → chunk-OIHX5B4R.js} +3 -3
- package/dist/{chunk-BZLT6R62.js.map → chunk-OIHX5B4R.js.map} +1 -1
- package/dist/{chunk-QJVS2VXS.js → chunk-PGYEIXCO.js} +4 -4
- package/dist/{chunk-QJVS2VXS.js.map → chunk-PGYEIXCO.js.map} +1 -1
- package/dist/{chunk-UZD77M3J.js → chunk-PJTCO76H.js} +3 -3
- package/dist/{chunk-UZD77M3J.js.map → chunk-PJTCO76H.js.map} +1 -1
- package/dist/{chunk-4PUPKWEP.js → chunk-PJXVLE24.js} +4 -4
- package/dist/{chunk-4PUPKWEP.js.map → chunk-PJXVLE24.js.map} +1 -1
- package/dist/{chunk-WGT345SV.js → chunk-PLQPBMG2.js} +3 -3
- package/dist/{chunk-WGT345SV.js.map → chunk-PLQPBMG2.js.map} +1 -1
- package/dist/{chunk-OMU4R4Y5.js → chunk-PQW5LKAI.js} +3 -3
- package/dist/{chunk-OMU4R4Y5.js.map → chunk-PQW5LKAI.js.map} +1 -1
- package/dist/{chunk-Y5TJ7CAX.js → chunk-RI4Y2C5U.js} +3 -3
- package/dist/{chunk-Y5TJ7CAX.js.map → chunk-RI4Y2C5U.js.map} +1 -1
- package/dist/{chunk-3OIWAS2P.js → chunk-SF6WPUC5.js} +3 -3
- package/dist/{chunk-3OIWAS2P.js.map → chunk-SF6WPUC5.js.map} +1 -1
- package/dist/{chunk-MKSDYRWQ.js → chunk-STX5UKYT.js} +3 -3
- package/dist/{chunk-MKSDYRWQ.js.map → chunk-STX5UKYT.js.map} +1 -1
- package/dist/{chunk-2RL6WCFC.js → chunk-TSWPHJIU.js} +4 -4
- package/dist/{chunk-2RL6WCFC.js.map → chunk-TSWPHJIU.js.map} +1 -1
- package/dist/{chunk-SFNDR6DI.js → chunk-U2ZKY2CP.js} +3 -3
- package/dist/{chunk-SFNDR6DI.js.map → chunk-U2ZKY2CP.js.map} +1 -1
- package/dist/{chunk-PABG3IJ6.js → chunk-UKDDK42K.js} +3 -3
- package/dist/{chunk-PABG3IJ6.js.map → chunk-UKDDK42K.js.map} +1 -1
- package/dist/{chunk-VYRJ7OE5.js → chunk-USFXANEU.js} +3 -3
- package/dist/{chunk-VYRJ7OE5.js.map → chunk-USFXANEU.js.map} +1 -1
- package/dist/{chunk-CCUXO2HN.js → chunk-V5QSMDZL.js} +3 -3
- package/dist/{chunk-CCUXO2HN.js.map → chunk-V5QSMDZL.js.map} +1 -1
- package/dist/{chunk-NF7XG2FG.js → chunk-V75O7QQO.js} +3 -3
- package/dist/{chunk-NF7XG2FG.js.map → chunk-V75O7QQO.js.map} +1 -1
- package/dist/{chunk-NRYWNOG5.js → chunk-VL2WNGPF.js} +3 -3
- package/dist/{chunk-NRYWNOG5.js.map → chunk-VL2WNGPF.js.map} +1 -1
- package/dist/{chunk-JQQ3FBN7.js → chunk-VLZANXRZ.js} +3 -3
- package/dist/{chunk-JQQ3FBN7.js.map → chunk-VLZANXRZ.js.map} +1 -1
- package/dist/{chunk-2HMQDJ22.js → chunk-VOF3S5I4.js} +3 -3
- package/dist/{chunk-2HMQDJ22.js.map → chunk-VOF3S5I4.js.map} +1 -1
- package/dist/chunk-XQNVWHMN.js +60 -0
- package/dist/chunk-XQNVWHMN.js.map +1 -0
- package/dist/{chunk-JZ774T7U.js → chunk-ZGFXKYA5.js} +3 -3
- package/dist/{chunk-JZ774T7U.js.map → chunk-ZGFXKYA5.js.map} +1 -1
- package/dist/client.cjs +451 -2
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +6 -0
- package/dist/client.d.ts +6 -0
- package/dist/client.js +52 -46
- package/dist/client.js.map +1 -1
- package/dist/components/Accordion/index.js +2 -2
- package/dist/components/Alert/index.js +2 -2
- package/dist/components/AlertDialog/index.js +2 -2
- package/dist/components/AspectRatio/index.cjs +67 -0
- package/dist/components/AspectRatio/index.cjs.map +1 -0
- package/dist/components/AspectRatio/index.d.cts +30 -0
- package/dist/components/AspectRatio/index.d.ts +30 -0
- package/dist/components/AspectRatio/index.js +5 -0
- package/dist/components/AspectRatio/index.js.map +1 -0
- package/dist/components/Avatar/index.js +2 -2
- package/dist/components/Badge/index.js +2 -2
- package/dist/components/Box/index.js +4 -4
- package/dist/components/Breadcrumb/index.js +3 -3
- package/dist/components/Button/index.js +2 -2
- package/dist/components/ButtonGroup/index.cjs +83 -0
- package/dist/components/ButtonGroup/index.cjs.map +1 -0
- package/dist/components/ButtonGroup/index.d.cts +45 -0
- package/dist/components/ButtonGroup/index.d.ts +45 -0
- package/dist/components/ButtonGroup/index.js +5 -0
- package/dist/components/ButtonGroup/index.js.map +1 -0
- package/dist/components/Calendar/index.js +3 -3
- package/dist/components/Card/index.js +2 -2
- package/dist/components/Checkbox/index.js +2 -2
- package/dist/components/Collapsible/index.cjs +512 -0
- package/dist/components/Collapsible/index.cjs.map +1 -0
- package/dist/components/Collapsible/index.d.cts +50 -0
- package/dist/components/Collapsible/index.d.ts +50 -0
- package/dist/components/Collapsible/index.js +7 -0
- package/dist/components/Collapsible/index.js.map +1 -0
- package/dist/components/Combobox/index.js +3 -3
- package/dist/components/ContextMenu/index.js +4 -4
- package/dist/components/DataTable/index.js +3 -3
- package/dist/components/DatePicker/index.js +5 -5
- package/dist/components/Dialog/index.js +2 -2
- package/dist/components/DropdownMenu/index.js +3 -3
- package/dist/components/Empty/index.cjs +385 -0
- package/dist/components/Empty/index.cjs.map +1 -0
- package/dist/components/Empty/index.d.cts +32 -0
- package/dist/components/Empty/index.d.ts +32 -0
- package/dist/components/Empty/index.js +7 -0
- package/dist/components/Empty/index.js.map +1 -0
- package/dist/components/FloatButton/index.js +3 -3
- package/dist/components/HStack/index.js +4 -4
- package/dist/components/InputGroup/index.js +2 -2
- package/dist/components/Item/index.cjs +443 -0
- package/dist/components/Item/index.cjs.map +1 -0
- package/dist/components/Item/index.d.cts +40 -0
- package/dist/components/Item/index.d.ts +40 -0
- package/dist/components/Item/index.js +7 -0
- package/dist/components/Item/index.js.map +1 -0
- package/dist/components/Kbd/index.cjs +396 -0
- package/dist/components/Kbd/index.cjs.map +1 -0
- package/dist/components/Kbd/index.d.cts +22 -0
- package/dist/components/Kbd/index.d.ts +22 -0
- package/dist/components/Kbd/index.js +7 -0
- package/dist/components/Kbd/index.js.map +1 -0
- package/dist/components/Pagination/index.js +4 -4
- package/dist/components/Popover/index.js +2 -2
- package/dist/components/Progress/index.js +2 -2
- package/dist/components/Radio/index.js +2 -2
- package/dist/components/SegmentedControl/index.js +2 -2
- package/dist/components/Select/index.js +2 -2
- package/dist/components/Separator/index.js +2 -2
- package/dist/components/Sheet/index.js +2 -2
- package/dist/components/Skeleton/index.js +2 -2
- package/dist/components/Slider/index.js +2 -2
- package/dist/components/Switch/index.js +2 -2
- package/dist/components/Table/index.js +2 -2
- package/dist/components/Tabs/index.js +2 -2
- package/dist/components/Text/index.js +2 -2
- package/dist/components/TextArea/index.js +3 -3
- package/dist/components/TextInput/index.js +2 -2
- package/dist/components/Toggle/index.js +2 -2
- package/dist/components/Tooltip/index.js +2 -2
- package/dist/components/VStack/index.js +4 -4
- package/dist/index.cjs +451 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +50 -44
- package/package.json +1 -1
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { px } from './chunk-5A2QOOVN.js';
|
|
2
|
+
import { useThemeColors } from './chunk-R5JMDDCB.js';
|
|
3
|
+
import { cn } from './chunk-CHXHRJNZ.js';
|
|
4
|
+
import { __name } from './chunk-WCQVDF3K.js';
|
|
5
|
+
import { View, Text } from 'react-native';
|
|
6
|
+
import { jsxs, jsx } from 'nativewind/jsx-runtime';
|
|
7
|
+
|
|
8
|
+
var Empty = /* @__PURE__ */ __name(({ icon, title, description, action, className, testID }) => {
|
|
9
|
+
const colors = useThemeColors();
|
|
10
|
+
const containerStyle = {
|
|
11
|
+
flexDirection: "column",
|
|
12
|
+
alignItems: "center",
|
|
13
|
+
justifyContent: "center",
|
|
14
|
+
gap: px(colors.spacing["3"]),
|
|
15
|
+
paddingVertical: px(colors.spacing["8"]),
|
|
16
|
+
paddingHorizontal: px(colors.spacing["4"])
|
|
17
|
+
};
|
|
18
|
+
return /* @__PURE__ */ jsxs(
|
|
19
|
+
View,
|
|
20
|
+
{
|
|
21
|
+
...testID !== void 0 ? { testID } : {},
|
|
22
|
+
className: cn("flex-col items-center justify-center gap-3 py-8 px-4", className),
|
|
23
|
+
style: containerStyle,
|
|
24
|
+
children: [
|
|
25
|
+
icon != null ? /* @__PURE__ */ jsx(View, { style: { marginBottom: px(colors.spacing["1"]) }, children: icon }) : null,
|
|
26
|
+
/* @__PURE__ */ jsx(
|
|
27
|
+
Text,
|
|
28
|
+
{
|
|
29
|
+
style: {
|
|
30
|
+
color: colors.semantic.text.default,
|
|
31
|
+
fontFamily: colors.fontFamily.body,
|
|
32
|
+
fontSize: px(colors.fontSize.md),
|
|
33
|
+
fontWeight: colors.fontWeight.semibold,
|
|
34
|
+
textAlign: "center"
|
|
35
|
+
},
|
|
36
|
+
children: title
|
|
37
|
+
}
|
|
38
|
+
),
|
|
39
|
+
description != null ? /* @__PURE__ */ jsx(
|
|
40
|
+
Text,
|
|
41
|
+
{
|
|
42
|
+
style: {
|
|
43
|
+
color: colors.semantic.text.muted,
|
|
44
|
+
fontFamily: colors.fontFamily.body,
|
|
45
|
+
fontSize: px(colors.fontSize.sm),
|
|
46
|
+
lineHeight: px(colors.fontSize.sm) * Number(colors.lineHeight.normal),
|
|
47
|
+
textAlign: "center"
|
|
48
|
+
},
|
|
49
|
+
children: description
|
|
50
|
+
}
|
|
51
|
+
) : null,
|
|
52
|
+
action != null ? /* @__PURE__ */ jsx(View, { style: { marginTop: px(colors.spacing["1"]) }, children: action }) : null
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
);
|
|
56
|
+
}, "Empty");
|
|
57
|
+
|
|
58
|
+
export { Empty };
|
|
59
|
+
//# sourceMappingURL=chunk-XQNVWHMN.js.map
|
|
60
|
+
//# sourceMappingURL=chunk-XQNVWHMN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Empty/Empty.tsx"],"names":["RNText"],"mappings":";;;;;;;AAoCO,IAAM,KAAA,2BAAS,EAAE,IAAA,EAAM,OAAO,WAAA,EAAa,MAAA,EAAQ,SAAA,EAAW,MAAA,EAAO,KAAkB;AAC1F,EAAA,MAAM,SAAS,cAAA,EAAe;AAE9B,EAAA,MAAM,cAAA,GAA4B;AAAA,IAC9B,aAAA,EAAe,QAAA;AAAA,IACf,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,QAAA;AAAA,IAChB,GAAA,EAAK,EAAA,CAAG,MAAA,CAAO,OAAA,CAAQ,GAAG,CAAC,CAAA;AAAA,IAC3B,eAAA,EAAiB,EAAA,CAAG,MAAA,CAAO,OAAA,CAAQ,GAAG,CAAC,CAAA;AAAA,IACvC,iBAAA,EAAmB,EAAA,CAAG,MAAA,CAAO,OAAA,CAAQ,GAAG,CAAC;AAAA,GAC7C;AAEA,EAAA,uBACI,IAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACI,GAAI,MAAA,KAAW,MAAA,GAAY,EAAE,MAAA,KAAW,EAAC;AAAA,MAC1C,SAAA,EAAW,EAAA,CAAG,sDAAA,EAAwD,SAAS,CAAA;AAAA,MAC/E,KAAA,EAAO,cAAA;AAAA,MAEN,QAAA,EAAA;AAAA,QAAA,IAAA,IAAQ,IAAA,mBAAO,GAAA,CAAC,IAAA,EAAA,EAAK,KAAA,EAAO,EAAE,YAAA,EAAc,EAAA,CAAG,MAAA,CAAO,OAAA,CAAQ,GAAG,CAAC,CAAA,EAAE,EAAI,gBAAK,CAAA,GAAU,IAAA;AAAA,wBAExF,GAAA;AAAA,UAACA,IAAA;AAAA,UAAA;AAAA,YACG,KAAA,EAAO;AAAA,cACH,KAAA,EAAO,MAAA,CAAO,QAAA,CAAS,IAAA,CAAK,OAAA;AAAA,cAC5B,UAAA,EAAY,OAAO,UAAA,CAAW,IAAA;AAAA,cAC9B,QAAA,EAAU,EAAA,CAAG,MAAA,CAAO,QAAA,CAAS,EAAE,CAAA;AAAA,cAC/B,UAAA,EAAY,OAAO,UAAA,CAAW,QAAA;AAAA,cAC9B,SAAA,EAAW;AAAA,aACf;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA,SACL;AAAA,QAEC,eAAe,IAAA,mBACZ,GAAA;AAAA,UAACA,IAAA;AAAA,UAAA;AAAA,YACG,KAAA,EAAO;AAAA,cACH,KAAA,EAAO,MAAA,CAAO,QAAA,CAAS,IAAA,CAAK,KAAA;AAAA,cAC5B,UAAA,EAAY,OAAO,UAAA,CAAW,IAAA;AAAA,cAC9B,QAAA,EAAU,EAAA,CAAG,MAAA,CAAO,QAAA,CAAS,EAAE,CAAA;AAAA,cAC/B,UAAA,EAAY,GAAG,MAAA,CAAO,QAAA,CAAS,EAAE,CAAA,GAAI,MAAA,CAAO,MAAA,CAAO,UAAA,CAAW,MAAM,CAAA;AAAA,cACpE,SAAA,EAAW;AAAA,aACf;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA,SACL,GACA,IAAA;AAAA,QAEH,MAAA,IAAU,IAAA,mBAAO,GAAA,CAAC,IAAA,EAAA,EAAK,OAAO,EAAE,SAAA,EAAW,EAAA,CAAG,MAAA,CAAO,QAAQ,GAAG,CAAC,CAAA,EAAE,EAAI,kBAAO,CAAA,GAAU;AAAA;AAAA;AAAA,GAC7F;AAER,CAAA,EAjDqB,OAAA","file":"chunk-XQNVWHMN.js","sourcesContent":["'use client';\n\nimport type { ReactNode } from 'react';\nimport type { ViewStyle } from 'react-native';\nimport { Text as RNText, View } from 'react-native';\nimport { px } from '../../theme/px';\nimport { useThemeColors } from '../../theme/use-theme-colors';\nimport { cn } from '../../utils/cn';\n\nexport type EmptyProps = {\n /** Optional icon or illustration rendered above the title. */\n icon?: ReactNode;\n /** Required heading text. */\n title: string;\n /** Optional secondary description below the title. */\n description?: string;\n /** Optional action slot — typically a `<Button>`. */\n action?: ReactNode;\n className?: string;\n testID?: string;\n};\n\n/**\n * Empty-state container for zero-results views, onboarding prompts, and error\n * placeholders. Renders a centered column: optional icon → title → optional\n * description → optional action.\n *\n * ```tsx\n * <Empty\n * icon={<MyIcon size={48} />}\n * title=\"No results found\"\n * description=\"Try adjusting your search or filters.\"\n * action={<Button onPress={onReset}>Clear filters</Button>}\n * />\n * ```\n */\nexport const Empty = ({ icon, title, description, action, className, testID }: EmptyProps) => {\n const colors = useThemeColors();\n\n const containerStyle: ViewStyle = {\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n gap: px(colors.spacing['3']),\n paddingVertical: px(colors.spacing['8']),\n paddingHorizontal: px(colors.spacing['4']),\n };\n\n return (\n <View\n {...(testID !== undefined ? { testID } : {})}\n className={cn('flex-col items-center justify-center gap-3 py-8 px-4', className)}\n style={containerStyle}\n >\n {icon != null ? <View style={{ marginBottom: px(colors.spacing['1']) }}>{icon}</View> : null}\n\n <RNText\n style={{\n color: colors.semantic.text.default,\n fontFamily: colors.fontFamily.body,\n fontSize: px(colors.fontSize.md),\n fontWeight: colors.fontWeight.semibold as '600',\n textAlign: 'center',\n }}\n >\n {title}\n </RNText>\n\n {description != null ? (\n <RNText\n style={{\n color: colors.semantic.text.muted,\n fontFamily: colors.fontFamily.body,\n fontSize: px(colors.fontSize.sm),\n lineHeight: px(colors.fontSize.sm) * Number(colors.lineHeight.normal),\n textAlign: 'center',\n }}\n >\n {description}\n </RNText>\n ) : null}\n\n {action != null ? <View style={{ marginTop: px(colors.spacing['1']) }}>{action}</View> : null}\n </View>\n );\n};\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { px } from './chunk-5A2QOOVN.js';
|
|
2
|
-
import { cn } from './chunk-CHXHRJNZ.js';
|
|
3
2
|
import { useThemeColors } from './chunk-R5JMDDCB.js';
|
|
3
|
+
import { cn } from './chunk-CHXHRJNZ.js';
|
|
4
4
|
import { __name } from './chunk-WCQVDF3K.js';
|
|
5
5
|
import { Text as Text$1 } from 'react-native';
|
|
6
6
|
import { jsx } from 'nativewind/jsx-runtime';
|
|
@@ -72,5 +72,5 @@ var Text = /* @__PURE__ */ __name(({ variant = "body-md", className, testID, chi
|
|
|
72
72
|
}, "Text");
|
|
73
73
|
|
|
74
74
|
export { Text };
|
|
75
|
-
//# sourceMappingURL=chunk-
|
|
76
|
-
//# sourceMappingURL=chunk-
|
|
75
|
+
//# sourceMappingURL=chunk-ZGFXKYA5.js.map
|
|
76
|
+
//# sourceMappingURL=chunk-ZGFXKYA5.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Text/Text.tsx"],"names":["RNText"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/Text/Text.tsx"],"names":["RNText"],"mappings":"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","file":"chunk-ZGFXKYA5.js","sourcesContent":["'use client';\n\nimport type { TextProps as RNTextProps, TextStyle } from 'react-native';\nimport { Text as RNText } from 'react-native';\nimport { px } from '../../theme/px';\nimport { useThemeColors } from '../../theme/use-theme-colors';\nimport { cn } from '../../utils/cn';\n\nexport type TextVariant = 'body-xs' | 'body-sm' | 'body-md' | 'body-lg' | 'heading-1' | 'heading-2' | 'heading-3';\n\nexport type TextProps = RNTextProps & {\n variant?: TextVariant;\n className?: string;\n testID?: string;\n};\n\nconst VARIANT_CLASSES: Record<TextVariant, string> = {\n 'body-xs': 'text-xs leading-normal',\n 'body-sm': 'text-sm leading-normal',\n 'body-md': 'text-md leading-normal',\n 'body-lg': 'text-lg leading-relaxed',\n 'heading-1': 'text-4xl leading-tight font-bold',\n 'heading-2': 'text-3xl leading-tight font-semibold',\n 'heading-3': 'text-2xl leading-tight font-semibold',\n};\n\nconst HEADING_VARIANTS: Readonly<Set<TextVariant>> = new Set(['heading-1', 'heading-2', 'heading-3']);\n\n// Per-variant resolution from the active theme. Keys here name the\n// fontSize / fontWeight / lineHeight tokens the variant pulls from. The\n// fontFamily is picked separately (display for headings, body otherwise).\ntype VariantKeys = {\n fontSize: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl';\n fontWeight: 'regular' | 'medium' | 'semibold' | 'bold';\n lineHeight: 'tight' | 'normal' | 'relaxed';\n};\nconst VARIANT_KEYS: Record<TextVariant, VariantKeys> = {\n 'body-xs': { fontSize: 'xs', fontWeight: 'regular', lineHeight: 'normal' },\n 'body-sm': { fontSize: 'sm', fontWeight: 'regular', lineHeight: 'normal' },\n 'body-md': { fontSize: 'md', fontWeight: 'regular', lineHeight: 'normal' },\n 'body-lg': { fontSize: 'lg', fontWeight: 'regular', lineHeight: 'relaxed' },\n 'heading-1': { fontSize: '4xl', fontWeight: 'bold', lineHeight: 'tight' },\n 'heading-2': {\n fontSize: '3xl',\n fontWeight: 'semibold',\n lineHeight: 'tight',\n },\n 'heading-3': {\n fontSize: '2xl',\n fontWeight: 'semibold',\n lineHeight: 'tight',\n },\n};\n\n/**\n * Typography primitive. Renders a react-native <Text>; on web via RN-Web\n * it becomes a <div role=\"...\"> with the appropriate className.\n *\n * Inline style is sourced from the active `<NoriProvider theme={...}>`:\n * font family (display for headings, body for body variants), fontSize,\n * fontWeight, lineHeight all flow through. Override the whole variant by\n * passing a custom theme; override a single instance by passing `style`.\n *\n * The `className` path keeps the Tailwind dark-mode color flip — inline\n * style provides the typographic substance, className provides the color.\n */\nexport const Text = ({ variant = 'body-md', className, testID, children, ...rest }: TextProps) => {\n const colors = useThemeColors();\n const isHeading = HEADING_VARIANTS.has(variant);\n const role = isHeading ? 'header' : rest.accessibilityRole;\n\n const keys = VARIANT_KEYS[variant];\n const sizePx = px(colors.fontSize[keys.fontSize]);\n const lhMultiplier = Number(colors.lineHeight[keys.lineHeight]);\n const themedStyle: TextStyle = {\n // Inline color is the ONLY color source. The Tailwind preset uses\n // `darkMode: ['class', '[data-theme=\"dark\"]']` — that requires a\n // DOM, so on native the `dark:` variant never fires and a\n // className-only color path would always emit the LIGHT variant\n // (near-black), invisible on a dark surface. Sourcing color from\n // `useThemeColors()` means it follows the OS scheme AND honors a\n // forced `colorScheme` override on the provider.\n color: colors.semantic.text.default,\n fontFamily: isHeading ? colors.fontFamily.display : colors.fontFamily.body,\n fontSize: sizePx,\n // RN expects lineHeight in px, not unitless. Tokens carry it as a\n // ratio (1.2 / 1.4 / 1.6) — multiply against the variant fontSize.\n lineHeight: sizePx * lhMultiplier,\n // The fontWeight token returns string literals like \"500\" / \"700\"\n // which match RN's TextStyle.fontWeight enum.\n fontWeight: colors.fontWeight[keys.fontWeight] as TextStyle['fontWeight'],\n };\n\n // Caller-provided style wins (last in the array). The themed style is\n // the source of truth, the user's `style` prop the override.\n const styleProp = (rest as { style?: TextStyle | TextStyle[] }).style;\n\n return (\n <RNText\n testID={testID}\n {...rest}\n {...(role !== undefined ? { accessibilityRole: role } : {})}\n className={cn(VARIANT_CLASSES[variant], className)}\n style={[themedStyle, styleProp]}\n >\n {children}\n </RNText>\n );\n};\n"]}
|
package/dist/client.cjs
CHANGED
|
@@ -1805,6 +1805,24 @@ var AlertDialog = Object.assign(AlertDialogRoot, {
|
|
|
1805
1805
|
Action: AlertDialogAction,
|
|
1806
1806
|
Cancel: AlertDialogCancel
|
|
1807
1807
|
});
|
|
1808
|
+
var BASE_STYLE = {
|
|
1809
|
+
overflow: "hidden"
|
|
1810
|
+
};
|
|
1811
|
+
var AspectRatio = /* @__PURE__ */ __name(({ ratio, children, className, testID }) => {
|
|
1812
|
+
const containerStyle = {
|
|
1813
|
+
...BASE_STYLE,
|
|
1814
|
+
aspectRatio: ratio
|
|
1815
|
+
};
|
|
1816
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1817
|
+
reactNative.View,
|
|
1818
|
+
{
|
|
1819
|
+
...testID !== void 0 ? { testID } : {},
|
|
1820
|
+
className: cn("overflow-hidden", className),
|
|
1821
|
+
style: containerStyle,
|
|
1822
|
+
children
|
|
1823
|
+
}
|
|
1824
|
+
);
|
|
1825
|
+
}, "AspectRatio");
|
|
1808
1826
|
var SIZE_PX = {
|
|
1809
1827
|
sm: 32,
|
|
1810
1828
|
md: 40,
|
|
@@ -3530,7 +3548,7 @@ var SIZE_KEYS = {
|
|
|
3530
3548
|
md: { padX: "4", font: "md" },
|
|
3531
3549
|
lg: { padX: "5", font: "lg" }
|
|
3532
3550
|
};
|
|
3533
|
-
var
|
|
3551
|
+
var BASE_STYLE2 = {
|
|
3534
3552
|
flexDirection: "row",
|
|
3535
3553
|
alignItems: "center",
|
|
3536
3554
|
justifyContent: "center"
|
|
@@ -3621,7 +3639,7 @@ var Button = /* @__PURE__ */ __name(({
|
|
|
3621
3639
|
};
|
|
3622
3640
|
const sizeFontSize = px(colors.fontSize[sizeKeys.font]);
|
|
3623
3641
|
const inlineBase = [
|
|
3624
|
-
|
|
3642
|
+
BASE_STYLE2,
|
|
3625
3643
|
{ backgroundColor: stateBg },
|
|
3626
3644
|
sizeContainer,
|
|
3627
3645
|
{ opacity: isInoperative ? 0.6 : stateInteractionOpacity }
|
|
@@ -3701,6 +3719,39 @@ var Button = /* @__PURE__ */ __name(({
|
|
|
3701
3719
|
}
|
|
3702
3720
|
);
|
|
3703
3721
|
}, "Button");
|
|
3722
|
+
var ButtonGroup = /* @__PURE__ */ __name(({ children, orientation = "horizontal", size, className, testID }) => {
|
|
3723
|
+
const isHorizontal = orientation === "horizontal";
|
|
3724
|
+
const containerStyle = {
|
|
3725
|
+
flexDirection: isHorizontal ? "row" : "column",
|
|
3726
|
+
// gap: 0 so buttons touch; shared-border effect comes from CSS on web
|
|
3727
|
+
// and from touching edges on native.
|
|
3728
|
+
gap: 0,
|
|
3729
|
+
alignSelf: "flex-start",
|
|
3730
|
+
overflow: "hidden"
|
|
3731
|
+
};
|
|
3732
|
+
const childArray = React.Children.toArray(children).filter(React.isValidElement);
|
|
3733
|
+
const total = childArray.length;
|
|
3734
|
+
const clonedChildren = childArray.map((child, index) => {
|
|
3735
|
+
const position = index === 0 ? "first" : index === total - 1 ? "last" : "middle";
|
|
3736
|
+
const extraProps = {
|
|
3737
|
+
"data-position": position,
|
|
3738
|
+
"data-group-orientation": orientation
|
|
3739
|
+
};
|
|
3740
|
+
if (size !== void 0) {
|
|
3741
|
+
extraProps["data-group-size"] = size;
|
|
3742
|
+
}
|
|
3743
|
+
return React.cloneElement(child, extraProps);
|
|
3744
|
+
});
|
|
3745
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3746
|
+
reactNative.View,
|
|
3747
|
+
{
|
|
3748
|
+
...testID !== void 0 ? { testID } : {},
|
|
3749
|
+
className: cn(isHorizontal ? "flex-row" : "flex-col", "self-start overflow-hidden", className),
|
|
3750
|
+
style: containerStyle,
|
|
3751
|
+
children: clonedChildren
|
|
3752
|
+
}
|
|
3753
|
+
);
|
|
3754
|
+
}, "ButtonGroup");
|
|
3704
3755
|
|
|
3705
3756
|
// src/components/Calendar/scroll/ScrollBody.tsx
|
|
3706
3757
|
var ScrollBody = /* @__PURE__ */ __name((_props) => {
|
|
@@ -6613,6 +6664,182 @@ var Checkbox = /* @__PURE__ */ __name(({
|
|
|
6613
6664
|
}
|
|
6614
6665
|
);
|
|
6615
6666
|
}, "Checkbox");
|
|
6667
|
+
var CollapsibleContext = React.createContext(null);
|
|
6668
|
+
var useCollapsibleContext = /* @__PURE__ */ __name((label) => {
|
|
6669
|
+
const ctx = React.useContext(CollapsibleContext);
|
|
6670
|
+
if (!ctx) {
|
|
6671
|
+
throw new Error(`<${label}> must be rendered inside a <Collapsible>.`);
|
|
6672
|
+
}
|
|
6673
|
+
return ctx;
|
|
6674
|
+
}, "useCollapsibleContext");
|
|
6675
|
+
var CollapsibleRoot = /* @__PURE__ */ __name(({
|
|
6676
|
+
open: controlledOpen,
|
|
6677
|
+
defaultOpen = false,
|
|
6678
|
+
onOpenChange,
|
|
6679
|
+
children,
|
|
6680
|
+
className,
|
|
6681
|
+
testID
|
|
6682
|
+
}) => {
|
|
6683
|
+
const baseId = React.useId();
|
|
6684
|
+
const [innerOpen, setInnerOpen] = React.useState(defaultOpen);
|
|
6685
|
+
const isControlled = controlledOpen !== void 0;
|
|
6686
|
+
const open = isControlled ? controlledOpen : innerOpen;
|
|
6687
|
+
const toggle = React.useCallback(() => {
|
|
6688
|
+
const next = !open;
|
|
6689
|
+
if (!isControlled) {
|
|
6690
|
+
setInnerOpen(next);
|
|
6691
|
+
}
|
|
6692
|
+
onOpenChange?.(next);
|
|
6693
|
+
}, [open, isControlled, onOpenChange]);
|
|
6694
|
+
const ctx = React.useMemo(
|
|
6695
|
+
() => ({
|
|
6696
|
+
open,
|
|
6697
|
+
toggle,
|
|
6698
|
+
contentId: `${baseId}-content`,
|
|
6699
|
+
triggerId: `${baseId}-trigger`
|
|
6700
|
+
}),
|
|
6701
|
+
[open, toggle, baseId]
|
|
6702
|
+
);
|
|
6703
|
+
return /* @__PURE__ */ jsxRuntime.jsx(CollapsibleContext.Provider, { value: ctx, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6704
|
+
reactNative.View,
|
|
6705
|
+
{
|
|
6706
|
+
...testID !== void 0 ? { testID } : {},
|
|
6707
|
+
className: cn("flex-col", className),
|
|
6708
|
+
style: { flexDirection: "column" },
|
|
6709
|
+
children
|
|
6710
|
+
}
|
|
6711
|
+
) });
|
|
6712
|
+
}, "CollapsibleRoot");
|
|
6713
|
+
var CollapsibleTrigger = /* @__PURE__ */ __name(({ children, className, testID }) => {
|
|
6714
|
+
const { open, toggle, contentId, triggerId } = useCollapsibleContext("Collapsible.Trigger");
|
|
6715
|
+
const colors = useThemeColors();
|
|
6716
|
+
const triggerStyle = {
|
|
6717
|
+
flexDirection: "row",
|
|
6718
|
+
alignItems: "center",
|
|
6719
|
+
paddingVertical: px(colors.spacing["2"]),
|
|
6720
|
+
paddingHorizontal: px(colors.spacing["1"])
|
|
6721
|
+
};
|
|
6722
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6723
|
+
reactNative.Pressable,
|
|
6724
|
+
{
|
|
6725
|
+
id: triggerId,
|
|
6726
|
+
...testID !== void 0 ? { testID } : {},
|
|
6727
|
+
role: "button",
|
|
6728
|
+
accessibilityRole: "button",
|
|
6729
|
+
"aria-expanded": open,
|
|
6730
|
+
"aria-controls": contentId,
|
|
6731
|
+
onPress: toggle,
|
|
6732
|
+
className: cn("flex-row items-center py-2 px-1", className),
|
|
6733
|
+
style: triggerStyle,
|
|
6734
|
+
children: typeof children === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
6735
|
+
reactNative.Text,
|
|
6736
|
+
{
|
|
6737
|
+
style: {
|
|
6738
|
+
color: colors.semantic.text.default,
|
|
6739
|
+
fontFamily: colors.fontFamily.body,
|
|
6740
|
+
fontSize: px(colors.fontSize.sm),
|
|
6741
|
+
fontWeight: colors.fontWeight.medium
|
|
6742
|
+
},
|
|
6743
|
+
children
|
|
6744
|
+
}
|
|
6745
|
+
) : children
|
|
6746
|
+
}
|
|
6747
|
+
);
|
|
6748
|
+
}, "CollapsibleTrigger");
|
|
6749
|
+
var CollapsibleContent = /* @__PURE__ */ __name(({ children, className, testID }) => {
|
|
6750
|
+
const { open, contentId, triggerId } = useCollapsibleContext("Collapsible.Content");
|
|
6751
|
+
const wrapperRef = React.useRef(null);
|
|
6752
|
+
const innerRef = React.useRef(null);
|
|
6753
|
+
React.useEffect(() => {
|
|
6754
|
+
if (reactNative.Platform.OS !== "web") {
|
|
6755
|
+
return;
|
|
6756
|
+
}
|
|
6757
|
+
const wrapper = wrapperRef.current;
|
|
6758
|
+
const inner = innerRef.current;
|
|
6759
|
+
if (!wrapper || !inner) {
|
|
6760
|
+
return;
|
|
6761
|
+
}
|
|
6762
|
+
const isFirstPaint = wrapper.dataset.noriPainted !== "1";
|
|
6763
|
+
wrapper.dataset.noriPainted = "1";
|
|
6764
|
+
wrapper.style.overflow = "hidden";
|
|
6765
|
+
wrapper.style.transitionProperty = "max-height, opacity";
|
|
6766
|
+
wrapper.style.transitionDuration = "200ms";
|
|
6767
|
+
wrapper.style.transitionTimingFunction = "cubic-bezier(0.16, 1, 0.3, 1)";
|
|
6768
|
+
if (open) {
|
|
6769
|
+
const target = inner.scrollHeight;
|
|
6770
|
+
if (isFirstPaint) {
|
|
6771
|
+
wrapper.style.maxHeight = `${target}px`;
|
|
6772
|
+
wrapper.style.opacity = "1";
|
|
6773
|
+
return;
|
|
6774
|
+
}
|
|
6775
|
+
wrapper.style.maxHeight = "0px";
|
|
6776
|
+
wrapper.style.opacity = "0";
|
|
6777
|
+
void wrapper.offsetHeight;
|
|
6778
|
+
requestAnimationFrame(() => {
|
|
6779
|
+
wrapper.style.maxHeight = `${target}px`;
|
|
6780
|
+
wrapper.style.opacity = "1";
|
|
6781
|
+
});
|
|
6782
|
+
} else {
|
|
6783
|
+
if (isFirstPaint) {
|
|
6784
|
+
wrapper.style.maxHeight = "0px";
|
|
6785
|
+
wrapper.style.opacity = "0";
|
|
6786
|
+
return;
|
|
6787
|
+
}
|
|
6788
|
+
const current = inner.scrollHeight;
|
|
6789
|
+
wrapper.style.maxHeight = `${current}px`;
|
|
6790
|
+
wrapper.style.opacity = "1";
|
|
6791
|
+
void wrapper.offsetHeight;
|
|
6792
|
+
requestAnimationFrame(() => {
|
|
6793
|
+
wrapper.style.maxHeight = "0px";
|
|
6794
|
+
wrapper.style.opacity = "0";
|
|
6795
|
+
});
|
|
6796
|
+
}
|
|
6797
|
+
}, [open]);
|
|
6798
|
+
if (reactNative.Platform.OS !== "web") {
|
|
6799
|
+
if (!open) {
|
|
6800
|
+
return null;
|
|
6801
|
+
}
|
|
6802
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6803
|
+
reactNative.View,
|
|
6804
|
+
{
|
|
6805
|
+
...testID !== void 0 ? { testID } : {},
|
|
6806
|
+
id: contentId,
|
|
6807
|
+
"aria-labelledby": triggerId,
|
|
6808
|
+
className: cn("flex-col", className),
|
|
6809
|
+
style: { flexDirection: "column" },
|
|
6810
|
+
children
|
|
6811
|
+
}
|
|
6812
|
+
);
|
|
6813
|
+
}
|
|
6814
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6815
|
+
reactNative.View,
|
|
6816
|
+
{
|
|
6817
|
+
ref: (node) => {
|
|
6818
|
+
wrapperRef.current = node;
|
|
6819
|
+
},
|
|
6820
|
+
...testID !== void 0 ? { testID } : {},
|
|
6821
|
+
id: contentId,
|
|
6822
|
+
"aria-labelledby": triggerId,
|
|
6823
|
+
"aria-hidden": !open,
|
|
6824
|
+
className: cn("overflow-hidden", className),
|
|
6825
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6826
|
+
reactNative.View,
|
|
6827
|
+
{
|
|
6828
|
+
ref: (node) => {
|
|
6829
|
+
innerRef.current = node;
|
|
6830
|
+
},
|
|
6831
|
+
className: "flex-col",
|
|
6832
|
+
style: { flexDirection: "column" },
|
|
6833
|
+
children
|
|
6834
|
+
}
|
|
6835
|
+
)
|
|
6836
|
+
}
|
|
6837
|
+
);
|
|
6838
|
+
}, "CollapsibleContent");
|
|
6839
|
+
var Collapsible = Object.assign(CollapsibleRoot, {
|
|
6840
|
+
Trigger: CollapsibleTrigger,
|
|
6841
|
+
Content: CollapsibleContent
|
|
6842
|
+
});
|
|
6616
6843
|
var Combobox = /* @__PURE__ */ __name((props) => {
|
|
6617
6844
|
return /* @__PURE__ */ jsxRuntime.jsx(Select, { searchable: true, ...props });
|
|
6618
6845
|
}, "Combobox");
|
|
@@ -8211,6 +8438,55 @@ var Dialog = Object.assign(DialogRoot, {
|
|
|
8211
8438
|
Footer: DialogFooter,
|
|
8212
8439
|
Close: DialogClose
|
|
8213
8440
|
});
|
|
8441
|
+
var Empty = /* @__PURE__ */ __name(({ icon, title, description, action, className, testID }) => {
|
|
8442
|
+
const colors = useThemeColors();
|
|
8443
|
+
const containerStyle = {
|
|
8444
|
+
flexDirection: "column",
|
|
8445
|
+
alignItems: "center",
|
|
8446
|
+
justifyContent: "center",
|
|
8447
|
+
gap: px(colors.spacing["3"]),
|
|
8448
|
+
paddingVertical: px(colors.spacing["8"]),
|
|
8449
|
+
paddingHorizontal: px(colors.spacing["4"])
|
|
8450
|
+
};
|
|
8451
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
8452
|
+
reactNative.View,
|
|
8453
|
+
{
|
|
8454
|
+
...testID !== void 0 ? { testID } : {},
|
|
8455
|
+
className: cn("flex-col items-center justify-center gap-3 py-8 px-4", className),
|
|
8456
|
+
style: containerStyle,
|
|
8457
|
+
children: [
|
|
8458
|
+
icon != null ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: { marginBottom: px(colors.spacing["1"]) }, children: icon }) : null,
|
|
8459
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
8460
|
+
reactNative.Text,
|
|
8461
|
+
{
|
|
8462
|
+
style: {
|
|
8463
|
+
color: colors.semantic.text.default,
|
|
8464
|
+
fontFamily: colors.fontFamily.body,
|
|
8465
|
+
fontSize: px(colors.fontSize.md),
|
|
8466
|
+
fontWeight: colors.fontWeight.semibold,
|
|
8467
|
+
textAlign: "center"
|
|
8468
|
+
},
|
|
8469
|
+
children: title
|
|
8470
|
+
}
|
|
8471
|
+
),
|
|
8472
|
+
description != null ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
8473
|
+
reactNative.Text,
|
|
8474
|
+
{
|
|
8475
|
+
style: {
|
|
8476
|
+
color: colors.semantic.text.muted,
|
|
8477
|
+
fontFamily: colors.fontFamily.body,
|
|
8478
|
+
fontSize: px(colors.fontSize.sm),
|
|
8479
|
+
lineHeight: px(colors.fontSize.sm) * Number(colors.lineHeight.normal),
|
|
8480
|
+
textAlign: "center"
|
|
8481
|
+
},
|
|
8482
|
+
children: description
|
|
8483
|
+
}
|
|
8484
|
+
) : null,
|
|
8485
|
+
action != null ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: { marginTop: px(colors.spacing["1"]) }, children: action }) : null
|
|
8486
|
+
]
|
|
8487
|
+
}
|
|
8488
|
+
);
|
|
8489
|
+
}, "Empty");
|
|
8214
8490
|
var FieldContext = React.createContext(null);
|
|
8215
8491
|
var useFieldContextStrict = /* @__PURE__ */ __name((caller) => {
|
|
8216
8492
|
const ctx = React.useContext(FieldContext);
|
|
@@ -9494,6 +9770,173 @@ var InputGroup = Object.assign(InputGroupRoot, {
|
|
|
9494
9770
|
Addon: InputGroupAddon,
|
|
9495
9771
|
Input: InputGroupInput
|
|
9496
9772
|
});
|
|
9773
|
+
var Item = /* @__PURE__ */ __name(({
|
|
9774
|
+
leading,
|
|
9775
|
+
title,
|
|
9776
|
+
description,
|
|
9777
|
+
trailing,
|
|
9778
|
+
chevron = false,
|
|
9779
|
+
onPress,
|
|
9780
|
+
disabled = false,
|
|
9781
|
+
className,
|
|
9782
|
+
testID
|
|
9783
|
+
}) => {
|
|
9784
|
+
const colors = useThemeColors();
|
|
9785
|
+
const isTappable = onPress !== void 0;
|
|
9786
|
+
const rowStyle = {
|
|
9787
|
+
flexDirection: "row",
|
|
9788
|
+
alignItems: "center",
|
|
9789
|
+
gap: px(colors.spacing["3"]),
|
|
9790
|
+
paddingVertical: px(colors.spacing["3"]),
|
|
9791
|
+
paddingHorizontal: px(colors.spacing["4"]),
|
|
9792
|
+
minHeight: 52,
|
|
9793
|
+
opacity: disabled ? 0.5 : 1
|
|
9794
|
+
};
|
|
9795
|
+
const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
9796
|
+
leading != null ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: { flexShrink: 0 }, children: leading }) : null,
|
|
9797
|
+
/* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: { flex: 1, flexDirection: "column", gap: 2 }, children: [
|
|
9798
|
+
typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
9799
|
+
reactNative.Text,
|
|
9800
|
+
{
|
|
9801
|
+
style: {
|
|
9802
|
+
color: colors.semantic.text.default,
|
|
9803
|
+
fontFamily: colors.fontFamily.body,
|
|
9804
|
+
fontSize: px(colors.fontSize.sm),
|
|
9805
|
+
fontWeight: colors.fontWeight.medium
|
|
9806
|
+
},
|
|
9807
|
+
numberOfLines: 1,
|
|
9808
|
+
children: title
|
|
9809
|
+
}
|
|
9810
|
+
) : title,
|
|
9811
|
+
description != null ? typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
9812
|
+
reactNative.Text,
|
|
9813
|
+
{
|
|
9814
|
+
style: {
|
|
9815
|
+
color: colors.semantic.text.muted,
|
|
9816
|
+
fontFamily: colors.fontFamily.body,
|
|
9817
|
+
fontSize: px(colors.fontSize.xs)
|
|
9818
|
+
},
|
|
9819
|
+
numberOfLines: 1,
|
|
9820
|
+
children: description
|
|
9821
|
+
}
|
|
9822
|
+
) : description : null
|
|
9823
|
+
] }),
|
|
9824
|
+
trailing != null ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: { flexShrink: 0 }, children: trailing }) : null,
|
|
9825
|
+
chevron ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
9826
|
+
reactNative.View,
|
|
9827
|
+
{
|
|
9828
|
+
style: { flexShrink: 0 },
|
|
9829
|
+
"aria-hidden": true,
|
|
9830
|
+
testID: testID != null ? `${testID}-chevron` : void 0,
|
|
9831
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
9832
|
+
reactNative.Text,
|
|
9833
|
+
{
|
|
9834
|
+
accessibilityElementsHidden: true,
|
|
9835
|
+
importantForAccessibility: "no-hide-descendants",
|
|
9836
|
+
style: {
|
|
9837
|
+
fontSize: 14,
|
|
9838
|
+
lineHeight: 16,
|
|
9839
|
+
color: colors.semantic.text.muted,
|
|
9840
|
+
// On web rn-web passes style through — transform
|
|
9841
|
+
// with a rotate is the lightest-weight approach
|
|
9842
|
+
// that avoids importing the full SVG icon set.
|
|
9843
|
+
transform: [{ rotate: "-90deg" }]
|
|
9844
|
+
},
|
|
9845
|
+
children: "\u2304"
|
|
9846
|
+
}
|
|
9847
|
+
)
|
|
9848
|
+
}
|
|
9849
|
+
) : null
|
|
9850
|
+
] });
|
|
9851
|
+
if (isTappable) {
|
|
9852
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
9853
|
+
reactNative.Pressable,
|
|
9854
|
+
{
|
|
9855
|
+
...testID !== void 0 ? { testID } : {},
|
|
9856
|
+
role: "button",
|
|
9857
|
+
accessibilityRole: "button",
|
|
9858
|
+
disabled,
|
|
9859
|
+
onPress: disabled ? void 0 : onPress,
|
|
9860
|
+
className: cn(
|
|
9861
|
+
"flex-row items-center",
|
|
9862
|
+
disabled ? "opacity-50" : "hover:bg-semantic-background-subtle active:bg-semantic-border-default",
|
|
9863
|
+
className
|
|
9864
|
+
),
|
|
9865
|
+
style: rowStyle,
|
|
9866
|
+
children: content
|
|
9867
|
+
}
|
|
9868
|
+
);
|
|
9869
|
+
}
|
|
9870
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
9871
|
+
reactNative.View,
|
|
9872
|
+
{
|
|
9873
|
+
...testID !== void 0 ? { testID } : {},
|
|
9874
|
+
className: cn("flex-row items-center", className),
|
|
9875
|
+
style: rowStyle,
|
|
9876
|
+
children: content
|
|
9877
|
+
}
|
|
9878
|
+
);
|
|
9879
|
+
}, "Item");
|
|
9880
|
+
var Kbd = /* @__PURE__ */ __name(({ children, className }) => {
|
|
9881
|
+
const colors = useThemeColors();
|
|
9882
|
+
const isDark = useColorScheme() === "dark";
|
|
9883
|
+
const bgColor = isDark ? colors.color.neutral["800"] : colors.color.neutral["100"];
|
|
9884
|
+
const borderColor = isDark ? colors.color.neutral["600"] : colors.color.neutral["300"];
|
|
9885
|
+
const textColor = isDark ? colors.color.neutral["200"] : colors.color.neutral["700"];
|
|
9886
|
+
const containerStyle = {
|
|
9887
|
+
display: "flex",
|
|
9888
|
+
flexDirection: "row",
|
|
9889
|
+
alignItems: "center",
|
|
9890
|
+
justifyContent: "center",
|
|
9891
|
+
alignSelf: "center",
|
|
9892
|
+
backgroundColor: bgColor,
|
|
9893
|
+
borderWidth: 1,
|
|
9894
|
+
borderColor,
|
|
9895
|
+
borderRadius: px(colors.radius.sm),
|
|
9896
|
+
paddingHorizontal: px(colors.spacing["1"]),
|
|
9897
|
+
paddingVertical: 2,
|
|
9898
|
+
// Subtle bottom shadow gives the classic key look.
|
|
9899
|
+
...reactNative.Platform.OS === "web" ? {
|
|
9900
|
+
boxShadow: `0 1px 0 ${borderColor}`,
|
|
9901
|
+
display: "inline-flex"
|
|
9902
|
+
} : {}
|
|
9903
|
+
};
|
|
9904
|
+
const textStyle = {
|
|
9905
|
+
color: textColor,
|
|
9906
|
+
// Monospace font for key labels.
|
|
9907
|
+
fontFamily: colors.fontFamily.mono ?? "monospace",
|
|
9908
|
+
fontSize: px(colors.fontSize.xs),
|
|
9909
|
+
fontWeight: colors.fontWeight.medium,
|
|
9910
|
+
lineHeight: px(colors.fontSize.xs) * Number(colors.lineHeight.normal)
|
|
9911
|
+
};
|
|
9912
|
+
const extraWebProps = reactNative.Platform.OS === "web" ? {
|
|
9913
|
+
// rn-web: 'none' skips the role attribute so the outer
|
|
9914
|
+
// View is just a plain <div>; we rely on the inner
|
|
9915
|
+
// <span> with data-kbd for semantic annotation.
|
|
9916
|
+
accessibilityRole: "none"
|
|
9917
|
+
} : {};
|
|
9918
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
9919
|
+
reactNative.View,
|
|
9920
|
+
{
|
|
9921
|
+
...extraWebProps,
|
|
9922
|
+
className: cn(
|
|
9923
|
+
"inline-flex flex-row items-center rounded-sm border px-1 py-0.5",
|
|
9924
|
+
isDark ? "bg-neutral-800 border-neutral-600 text-neutral-200" : "bg-neutral-100 border-neutral-300 text-neutral-700",
|
|
9925
|
+
className
|
|
9926
|
+
),
|
|
9927
|
+
style: containerStyle,
|
|
9928
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
9929
|
+
reactNative.Text,
|
|
9930
|
+
{
|
|
9931
|
+
...reactNative.Platform.OS === "web" ? { "data-kbd": "" } : {},
|
|
9932
|
+
accessibilityRole: "none",
|
|
9933
|
+
style: textStyle,
|
|
9934
|
+
children
|
|
9935
|
+
}
|
|
9936
|
+
)
|
|
9937
|
+
}
|
|
9938
|
+
);
|
|
9939
|
+
}, "Kbd");
|
|
9497
9940
|
var Label = /* @__PURE__ */ __name(({ htmlFor, required = false, disabled = false, children, className, testID }) => {
|
|
9498
9941
|
const colors = useThemeColors();
|
|
9499
9942
|
const { t } = useTranslation();
|
|
@@ -13783,14 +14226,17 @@ __name(NoriProvider, "NoriProvider");
|
|
|
13783
14226
|
exports.Accordion = Accordion;
|
|
13784
14227
|
exports.Alert = Alert;
|
|
13785
14228
|
exports.AlertDialog = AlertDialog;
|
|
14229
|
+
exports.AspectRatio = AspectRatio;
|
|
13786
14230
|
exports.Avatar = Avatar;
|
|
13787
14231
|
exports.Badge = Badge;
|
|
13788
14232
|
exports.Box = Box;
|
|
13789
14233
|
exports.Breadcrumb = Breadcrumb;
|
|
13790
14234
|
exports.Button = Button;
|
|
14235
|
+
exports.ButtonGroup = ButtonGroup;
|
|
13791
14236
|
exports.Calendar = Calendar;
|
|
13792
14237
|
exports.Card = Card;
|
|
13793
14238
|
exports.Checkbox = Checkbox;
|
|
14239
|
+
exports.Collapsible = Collapsible;
|
|
13794
14240
|
exports.Combobox = Combobox;
|
|
13795
14241
|
exports.ContextMenu = ContextMenu;
|
|
13796
14242
|
exports.DataTable = DataTable;
|
|
@@ -13798,12 +14244,15 @@ exports.DatePicker = DatePicker;
|
|
|
13798
14244
|
exports.Dialog = Dialog;
|
|
13799
14245
|
exports.Drawer = Drawer;
|
|
13800
14246
|
exports.DropdownMenu = DropdownMenu;
|
|
14247
|
+
exports.Empty = Empty;
|
|
13801
14248
|
exports.Field = Field;
|
|
13802
14249
|
exports.FloatButton = FloatButton;
|
|
13803
14250
|
exports.HStack = HStack;
|
|
13804
14251
|
exports.I18nProvider = I18nProvider;
|
|
13805
14252
|
exports.Icon = Icon;
|
|
13806
14253
|
exports.InputGroup = InputGroup;
|
|
14254
|
+
exports.Item = Item;
|
|
14255
|
+
exports.Kbd = Kbd;
|
|
13807
14256
|
exports.Label = Label;
|
|
13808
14257
|
exports.LocaleProvider = LocaleProvider;
|
|
13809
14258
|
exports.MenuContent = MenuContent;
|