react-native-platform-components 1.3.0 → 1.4.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/README.md +24 -30
- package/android/src/main/java/com/platformcomponents/PCButtonGroupView.kt +498 -0
- package/android/src/main/java/com/platformcomponents/PCButtonGroupViewManager.kt +191 -0
- package/android/src/main/java/com/platformcomponents/PCButtonSupport.kt +127 -0
- package/android/src/main/java/com/platformcomponents/PCButtonView.kt +345 -0
- package/android/src/main/java/com/platformcomponents/PCButtonViewManager.kt +126 -0
- package/android/src/main/java/com/platformcomponents/PCExpressive.kt +107 -0
- package/android/src/main/java/com/platformcomponents/PCFloatingToolbarView.kt +115 -0
- package/android/src/main/java/com/platformcomponents/PCFloatingToolbarViewManager.kt +65 -0
- package/android/src/main/java/com/platformcomponents/PCSegmentedControlView.kt +11 -3
- package/android/src/main/java/com/platformcomponents/PCSegmentedControlViewManager.kt +6 -1
- package/android/src/main/java/com/platformcomponents/PCTextFieldView.kt +1018 -0
- package/android/src/main/java/com/platformcomponents/PCTextFieldViewManager.kt +248 -0
- package/android/src/main/java/com/platformcomponents/PlatformComponentsPackage.kt +4 -0
- package/android/src/main/res/values/attrs.xml +13 -0
- package/android/src/main/res/values/styles.xml +183 -0
- package/ios/PCButton.h +10 -0
- package/ios/PCButton.mm +196 -0
- package/ios/PCButtonGroup.h +10 -0
- package/ios/PCButtonGroup.mm +256 -0
- package/ios/PCButtonGroupView.swift +254 -0
- package/ios/PCButtonSupport.swift +141 -0
- package/ios/PCButtonView.swift +155 -0
- package/ios/PCFloatingToolbar.h +10 -0
- package/ios/PCFloatingToolbar.mm +76 -0
- package/ios/PCFloatingToolbarView.swift +95 -0
- package/ios/PCTextField.h +10 -0
- package/ios/PCTextField.mm +391 -0
- package/ios/PCTextFieldView.swift +1012 -0
- package/lib/commonjs/Button.js +77 -0
- package/lib/commonjs/Button.js.map +1 -0
- package/lib/commonjs/ButtonGroup.js +99 -0
- package/lib/commonjs/ButtonGroup.js.map +1 -0
- package/lib/commonjs/ButtonGroupNativeComponent.ts +121 -0
- package/lib/commonjs/ButtonNativeComponent.ts +76 -0
- package/lib/commonjs/FloatingToolbar.js +69 -0
- package/lib/commonjs/FloatingToolbar.js.map +1 -0
- package/lib/commonjs/FloatingToolbarNativeComponent.ts +31 -0
- package/lib/commonjs/SegmentedControl.js +11 -85
- package/lib/commonjs/SegmentedControl.js.map +1 -1
- package/lib/commonjs/SegmentedControlNativeComponent.ts +3 -0
- package/lib/commonjs/TextField.js +195 -0
- package/lib/commonjs/TextField.js.map +1 -0
- package/lib/commonjs/TextFieldNativeComponent.ts +218 -0
- package/lib/commonjs/focusRegistry.js +78 -0
- package/lib/commonjs/focusRegistry.js.map +1 -0
- package/lib/commonjs/icons.js +92 -0
- package/lib/commonjs/icons.js.map +1 -0
- package/lib/commonjs/index.js +66 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.web.js +32 -2
- package/lib/commonjs/index.web.js.map +1 -1
- package/lib/commonjs/labelStyle.js +27 -0
- package/lib/commonjs/labelStyle.js.map +1 -0
- package/lib/commonjs/reactNativeInternals.d.js +2 -0
- package/lib/commonjs/reactNativeInternals.d.js.map +1 -0
- package/lib/module/Button.js +70 -0
- package/lib/module/Button.js.map +1 -0
- package/lib/module/ButtonGroup.js +92 -0
- package/lib/module/ButtonGroup.js.map +1 -0
- package/lib/module/ButtonGroupNativeComponent.ts +121 -0
- package/lib/module/ButtonNativeComponent.ts +76 -0
- package/lib/module/FloatingToolbar.js +62 -0
- package/lib/module/FloatingToolbar.js.map +1 -0
- package/lib/module/FloatingToolbarNativeComponent.ts +31 -0
- package/lib/module/SegmentedControl.js +12 -87
- package/lib/module/SegmentedControl.js.map +1 -1
- package/lib/module/SegmentedControlNativeComponent.ts +3 -0
- package/lib/module/TextField.js +189 -0
- package/lib/module/TextField.js.map +1 -0
- package/lib/module/TextFieldNativeComponent.ts +218 -0
- package/lib/module/focusRegistry.js +74 -0
- package/lib/module/focusRegistry.js.map +1 -0
- package/lib/module/icons.js +87 -0
- package/lib/module/icons.js.map +1 -0
- package/lib/module/index.js +6 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +28 -0
- package/lib/module/index.web.js.map +1 -1
- package/lib/module/labelStyle.js +23 -0
- package/lib/module/labelStyle.js.map +1 -0
- package/lib/module/reactNativeInternals.d.js +2 -0
- package/lib/module/reactNativeInternals.d.js.map +1 -0
- package/lib/typescript/commonjs/docs/sidebars.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/Button.d.ts +76 -0
- package/lib/typescript/commonjs/src/Button.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/ButtonGroup.d.ts +102 -0
- package/lib/typescript/commonjs/src/ButtonGroup.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/ButtonGroupNativeComponent.d.ts +93 -0
- package/lib/typescript/commonjs/src/ButtonGroupNativeComponent.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/ButtonNativeComponent.d.ts +57 -0
- package/lib/typescript/commonjs/src/ButtonNativeComponent.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/FloatingToolbar.d.ts +45 -0
- package/lib/typescript/commonjs/src/FloatingToolbar.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/FloatingToolbarNativeComponent.d.ts +24 -0
- package/lib/typescript/commonjs/src/FloatingToolbarNativeComponent.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/SegmentedControl.d.ts +17 -46
- package/lib/typescript/commonjs/src/SegmentedControl.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/SegmentedControlNativeComponent.d.ts +2 -0
- package/lib/typescript/commonjs/src/SegmentedControlNativeComponent.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/TextField.d.ts +174 -0
- package/lib/typescript/commonjs/src/TextField.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/TextFieldNativeComponent.d.ts +162 -0
- package/lib/typescript/commonjs/src/TextFieldNativeComponent.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/focusRegistry.d.ts +13 -0
- package/lib/typescript/commonjs/src/focusRegistry.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/icons.d.ts +52 -0
- package/lib/typescript/commonjs/src/icons.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/index.d.ts +6 -0
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/index.web.d.ts +121 -0
- package/lib/typescript/commonjs/src/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/labelStyle.d.ts +20 -0
- package/lib/typescript/commonjs/src/labelStyle.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/sharedTypes.d.ts +6 -1
- package/lib/typescript/commonjs/src/sharedTypes.d.ts.map +1 -1
- package/lib/typescript/module/docs/sidebars.d.ts.map +1 -1
- package/lib/typescript/module/src/Button.d.ts +76 -0
- package/lib/typescript/module/src/Button.d.ts.map +1 -0
- package/lib/typescript/module/src/ButtonGroup.d.ts +102 -0
- package/lib/typescript/module/src/ButtonGroup.d.ts.map +1 -0
- package/lib/typescript/module/src/ButtonGroupNativeComponent.d.ts +93 -0
- package/lib/typescript/module/src/ButtonGroupNativeComponent.d.ts.map +1 -0
- package/lib/typescript/module/src/ButtonNativeComponent.d.ts +57 -0
- package/lib/typescript/module/src/ButtonNativeComponent.d.ts.map +1 -0
- package/lib/typescript/module/src/FloatingToolbar.d.ts +45 -0
- package/lib/typescript/module/src/FloatingToolbar.d.ts.map +1 -0
- package/lib/typescript/module/src/FloatingToolbarNativeComponent.d.ts +24 -0
- package/lib/typescript/module/src/FloatingToolbarNativeComponent.d.ts.map +1 -0
- package/lib/typescript/module/src/SegmentedControl.d.ts +17 -46
- package/lib/typescript/module/src/SegmentedControl.d.ts.map +1 -1
- package/lib/typescript/module/src/SegmentedControlNativeComponent.d.ts +2 -0
- package/lib/typescript/module/src/SegmentedControlNativeComponent.d.ts.map +1 -1
- package/lib/typescript/module/src/TextField.d.ts +174 -0
- package/lib/typescript/module/src/TextField.d.ts.map +1 -0
- package/lib/typescript/module/src/TextFieldNativeComponent.d.ts +162 -0
- package/lib/typescript/module/src/TextFieldNativeComponent.d.ts.map +1 -0
- package/lib/typescript/module/src/focusRegistry.d.ts +13 -0
- package/lib/typescript/module/src/focusRegistry.d.ts.map +1 -0
- package/lib/typescript/module/src/icons.d.ts +52 -0
- package/lib/typescript/module/src/icons.d.ts.map +1 -0
- package/lib/typescript/module/src/index.d.ts +6 -0
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/index.web.d.ts +121 -0
- package/lib/typescript/module/src/index.web.d.ts.map +1 -1
- package/lib/typescript/module/src/labelStyle.d.ts +20 -0
- package/lib/typescript/module/src/labelStyle.d.ts.map +1 -0
- package/lib/typescript/module/src/sharedTypes.d.ts +6 -1
- package/lib/typescript/module/src/sharedTypes.d.ts.map +1 -1
- package/package.json +25 -4
- package/react-native.config.js +3 -0
- package/shared/PCButtonComponentDescriptors-custom.h +22 -0
- package/shared/PCButtonGroupComponentDescriptors-custom.h +22 -0
- package/shared/PCButtonGroupShadowNode-custom.cpp +48 -0
- package/shared/PCButtonGroupShadowNode-custom.h +55 -0
- package/shared/PCButtonGroupState-custom.h +61 -0
- package/shared/PCButtonShadowNode-custom.cpp +48 -0
- package/shared/PCButtonShadowNode-custom.h +55 -0
- package/shared/PCButtonState-custom.h +61 -0
- package/shared/PCTextFieldComponentDescriptors-custom.h +22 -0
- package/shared/PCTextFieldShadowNode-custom.cpp +47 -0
- package/shared/PCTextFieldShadowNode-custom.h +55 -0
- package/shared/PCTextFieldState-custom.h +61 -0
- package/shared/react/renderer/components/PlatformComponentsViewSpec/ComponentDescriptors.h +3 -0
- package/src/Button.tsx +144 -0
- package/src/ButtonGroup.tsx +233 -0
- package/src/ButtonGroupNativeComponent.ts +121 -0
- package/src/ButtonNativeComponent.ts +76 -0
- package/src/FloatingToolbar.tsx +113 -0
- package/src/FloatingToolbarNativeComponent.ts +31 -0
- package/src/SegmentedControl.tsx +26 -118
- package/src/SegmentedControlNativeComponent.ts +3 -0
- package/src/TextField.tsx +494 -0
- package/src/TextFieldNativeComponent.ts +218 -0
- package/src/focusRegistry.ts +89 -0
- package/src/icons.ts +116 -0
- package/src/index.tsx +6 -0
- package/src/index.web.tsx +194 -0
- package/src/labelStyle.ts +36 -0
- package/src/reactNativeInternals.d.ts +22 -0
- package/src/sharedTypes.ts +7 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","NO_ICON","exports","iconType","iconName","iconUri","iconScale","iconTinted","pickIconSource","icon","undefined","Platform","OS","ios","android","resolveIcon","source","length","type","name","resolved","Image","resolveAssetSource","uri","scale","tinted"],"sourceRoot":"../../src","sources":["icons.ts"],"mappings":";;;;;;;AAIA,IAAAA,YAAA,GAAAC,OAAA;AAJA;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWA;AACA;AACA;AACA;;AAQA;;AAcO,MAAMC,OAAyB,GAAAC,OAAA,CAAAD,OAAA,GAAG;EACvCE,QAAQ,EAAE,EAAE;EACZC,QAAQ,EAAE,EAAE;EACZC,OAAO,EAAE,EAAE;EACXC,SAAS,EAAE,CAAC;EACZC,UAAU,EAAE;AACd,CAAC;AAED,SAASC,cAAcA,CACrBC,IAA8B,EACE;EAChC,IAAIA,IAAI,KAAKC,SAAS,IAAI,OAAOD,IAAI,KAAK,QAAQ,IAAI,MAAM,IAAIA,IAAI,EAAE;IACpE,OAAOA,IAAI;EACb;EACA,OAAOE,qBAAQ,CAACC,EAAE,KAAK,KAAK,GAAGH,IAAI,CAACI,GAAG,GAAGJ,IAAI,CAACK,OAAO;AACxD;;AAEA;AACA;AACA;AACA;AACO,SAASC,WAAWA,CAACN,IAA8B,EAAoB;EAC5E,MAAMO,MAAM,GAAGR,cAAc,CAACC,IAAI,CAAC;EACnC,IAAIO,MAAM,KAAKN,SAAS,EAAE,OAAOT,OAAO;EAExC,IAAI,OAAOe,MAAM,KAAK,QAAQ,EAAE;IAC9B,IAAIA,MAAM,CAACC,MAAM,KAAK,CAAC,EAAE,OAAOhB,OAAO;IACvC,OAAO;MACL,GAAGA,OAAO;MACVE,QAAQ,EAAEQ,qBAAQ,CAACC,EAAE,KAAK,KAAK,GAAG,UAAU,GAAG,UAAU;MACzDR,QAAQ,EAAEY;IACZ,CAAC;EACH;EAEA,QAAQA,MAAM,CAACE,IAAI;IACjB,KAAK,UAAU;MACb,OAAOP,qBAAQ,CAACC,EAAE,KAAK,KAAK,GACxB;QAAE,GAAGX,OAAO;QAAEE,QAAQ,EAAE,UAAU;QAAEC,QAAQ,EAAEY,MAAM,CAACG;MAAK,CAAC,GAC3DlB,OAAO;IACb,KAAK,UAAU;MACb,OAAOU,qBAAQ,CAACC,EAAE,KAAK,SAAS,GAC5B;QAAE,GAAGX,OAAO;QAAEE,QAAQ,EAAE,UAAU;QAAEC,QAAQ,EAAEY,MAAM,CAACG;MAAK,CAAC,GAC3DlB,OAAO;IACb,KAAK,OAAO;MAAE;QACZ,MAAMmB,QAAQ,GAAGC,kBAAK,CAACC,kBAAkB,CAACN,MAAM,CAACA,MAAM,CAAC;QACxD,IAAI,CAACI,QAAQ,EAAEG,GAAG,EAAE,OAAOtB,OAAO;QAClC,OAAO;UACLE,QAAQ,EAAE,OAAO;UACjBC,QAAQ,EAAE,EAAE;UACZC,OAAO,EAAEe,QAAQ,CAACG,GAAG;UACrBjB,SAAS,EAAEc,QAAQ,CAACI,KAAK,GAAG,CAAC,GAAGJ,QAAQ,CAACI,KAAK,GAAG,CAAC;UAClDjB,UAAU,EAAES,MAAM,CAACS,MAAM,KAAK,KAAK,GAAG,OAAO,GAAG;QAClD,CAAC;MACH;IACA;MACE,OAAOxB,OAAO;EAClB;AACF","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -47,6 +47,39 @@ Object.keys(_SegmentedControl).forEach(function (key) {
|
|
|
47
47
|
}
|
|
48
48
|
});
|
|
49
49
|
});
|
|
50
|
+
var _Button = require("./Button");
|
|
51
|
+
Object.keys(_Button).forEach(function (key) {
|
|
52
|
+
if (key === "default" || key === "__esModule") return;
|
|
53
|
+
if (key in exports && exports[key] === _Button[key]) return;
|
|
54
|
+
Object.defineProperty(exports, key, {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function () {
|
|
57
|
+
return _Button[key];
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
var _ButtonGroup = require("./ButtonGroup");
|
|
62
|
+
Object.keys(_ButtonGroup).forEach(function (key) {
|
|
63
|
+
if (key === "default" || key === "__esModule") return;
|
|
64
|
+
if (key in exports && exports[key] === _ButtonGroup[key]) return;
|
|
65
|
+
Object.defineProperty(exports, key, {
|
|
66
|
+
enumerable: true,
|
|
67
|
+
get: function () {
|
|
68
|
+
return _ButtonGroup[key];
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
var _FloatingToolbar = require("./FloatingToolbar");
|
|
73
|
+
Object.keys(_FloatingToolbar).forEach(function (key) {
|
|
74
|
+
if (key === "default" || key === "__esModule") return;
|
|
75
|
+
if (key in exports && exports[key] === _FloatingToolbar[key]) return;
|
|
76
|
+
Object.defineProperty(exports, key, {
|
|
77
|
+
enumerable: true,
|
|
78
|
+
get: function () {
|
|
79
|
+
return _FloatingToolbar[key];
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
});
|
|
50
83
|
var _LiquidGlass = require("./LiquidGlass");
|
|
51
84
|
Object.keys(_LiquidGlass).forEach(function (key) {
|
|
52
85
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -58,6 +91,39 @@ Object.keys(_LiquidGlass).forEach(function (key) {
|
|
|
58
91
|
}
|
|
59
92
|
});
|
|
60
93
|
});
|
|
94
|
+
var _TextField = require("./TextField");
|
|
95
|
+
Object.keys(_TextField).forEach(function (key) {
|
|
96
|
+
if (key === "default" || key === "__esModule") return;
|
|
97
|
+
if (key in exports && exports[key] === _TextField[key]) return;
|
|
98
|
+
Object.defineProperty(exports, key, {
|
|
99
|
+
enumerable: true,
|
|
100
|
+
get: function () {
|
|
101
|
+
return _TextField[key];
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
var _icons = require("./icons");
|
|
106
|
+
Object.keys(_icons).forEach(function (key) {
|
|
107
|
+
if (key === "default" || key === "__esModule") return;
|
|
108
|
+
if (key in exports && exports[key] === _icons[key]) return;
|
|
109
|
+
Object.defineProperty(exports, key, {
|
|
110
|
+
enumerable: true,
|
|
111
|
+
get: function () {
|
|
112
|
+
return _icons[key];
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
var _labelStyle = require("./labelStyle");
|
|
117
|
+
Object.keys(_labelStyle).forEach(function (key) {
|
|
118
|
+
if (key === "default" || key === "__esModule") return;
|
|
119
|
+
if (key in exports && exports[key] === _labelStyle[key]) return;
|
|
120
|
+
Object.defineProperty(exports, key, {
|
|
121
|
+
enumerable: true,
|
|
122
|
+
get: function () {
|
|
123
|
+
return _labelStyle[key];
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
});
|
|
61
127
|
var _sharedTypes = require("./sharedTypes");
|
|
62
128
|
Object.keys(_sharedTypes).forEach(function (key) {
|
|
63
129
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_DatePicker","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_SelectionMenu","_ContextMenu","_SegmentedControl","_LiquidGlass","_sharedTypes","_NativeTheme"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,WAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,WAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,WAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,cAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,cAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,cAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,cAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,YAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,YAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,YAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,YAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,iBAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,iBAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,iBAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,iBAAA,CAAAP,GAAA;IAAA;EAAA;AAAA;AACA,IAAAQ,
|
|
1
|
+
{"version":3,"names":["_DatePicker","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_SelectionMenu","_ContextMenu","_SegmentedControl","_Button","_ButtonGroup","_FloatingToolbar","_LiquidGlass","_TextField","_icons","_labelStyle","_sharedTypes","_NativeTheme"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.useNativeTheme = exports.setNativeTheme = exports.isLiquidGlassSupported = exports.SelectionMenu = exports.SegmentedControl = exports.LiquidGlass = exports.DatePicker = exports.ContextMenu = void 0;
|
|
6
|
+
exports.useNativeTheme = exports.setNativeTheme = exports.isLiquidGlassSupported = exports.TextField = exports.SelectionMenu = exports.SegmentedControl = exports.LiquidGlass = exports.FloatingToolbar = exports.DatePicker = exports.ContextMenu = exports.ButtonGroup = exports.Button = void 0;
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
9
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -47,9 +47,25 @@ exports.ContextMenu = ContextMenu;
|
|
|
47
47
|
const SegmentedControl = _props => null;
|
|
48
48
|
|
|
49
49
|
// ============================================================================
|
|
50
|
-
//
|
|
50
|
+
// Button, ButtonGroup, FloatingToolbar
|
|
51
51
|
// ============================================================================
|
|
52
52
|
exports.SegmentedControl = SegmentedControl;
|
|
53
|
+
const Button = _props => null;
|
|
54
|
+
exports.Button = Button;
|
|
55
|
+
const ButtonGroup = _props => null;
|
|
56
|
+
exports.ButtonGroup = ButtonGroup;
|
|
57
|
+
const FloatingToolbar = ({
|
|
58
|
+
children
|
|
59
|
+
}) => {
|
|
60
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
61
|
+
children: children
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
// ============================================================================
|
|
66
|
+
// LiquidGlass
|
|
67
|
+
// ============================================================================
|
|
68
|
+
exports.FloatingToolbar = FloatingToolbar;
|
|
53
69
|
const LiquidGlass = ({
|
|
54
70
|
children
|
|
55
71
|
}) => {
|
|
@@ -60,6 +76,20 @@ const LiquidGlass = ({
|
|
|
60
76
|
exports.LiquidGlass = LiquidGlass;
|
|
61
77
|
const isLiquidGlassSupported = exports.isLiquidGlassSupported = false;
|
|
62
78
|
|
|
79
|
+
// ============================================================================
|
|
80
|
+
// TextField
|
|
81
|
+
// ============================================================================
|
|
82
|
+
|
|
83
|
+
const TextField = exports.TextField = /*#__PURE__*/_react.default.forwardRef(function TextFieldComponent(_props, ref) {
|
|
84
|
+
_react.default.useImperativeHandle(ref, () => ({
|
|
85
|
+
focus: () => {},
|
|
86
|
+
blur: () => {},
|
|
87
|
+
clear: () => {},
|
|
88
|
+
isFocused: () => false
|
|
89
|
+
}));
|
|
90
|
+
return null;
|
|
91
|
+
});
|
|
92
|
+
|
|
63
93
|
// ============================================================================
|
|
64
94
|
// Native theme
|
|
65
95
|
// ============================================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_jsxRuntime","e","__esModule","default","DatePicker","_props","exports","SelectionMenu","ContextMenu","children","jsx","Fragment","SegmentedControl","LiquidGlass","isLiquidGlassSupported","setNativeTheme","_theme","useNativeTheme"],"sourceRoot":"../../src","sources":["index.web.tsx"],"mappings":";;;;;;AAKA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA0B,IAAAC,WAAA,GAAAD,OAAA;AAAA,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAL1B;AACA;AACA;AACA;;
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_jsxRuntime","e","__esModule","default","DatePicker","_props","exports","SelectionMenu","ContextMenu","children","jsx","Fragment","SegmentedControl","Button","ButtonGroup","FloatingToolbar","LiquidGlass","isLiquidGlassSupported","TextField","React","forwardRef","TextFieldComponent","ref","useImperativeHandle","focus","blur","clear","isFocused","setNativeTheme","_theme","useNativeTheme"],"sourceRoot":"../../src","sources":["index.web.tsx"],"mappings":";;;;;;AAKA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA0B,IAAAC,WAAA,GAAAD,OAAA;AAAA,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAL1B;AACA;AACA;AACA;;AAQA;AACA;AACA;;AAMA;AACA;AACA;;AAoBO,MAAMG,UAAU,GACrBC,MAAuB,IACO,IAAI;;AAEpC;AACA;AACA;AAAAC,OAAA,CAAAF,UAAA,GAAAA,UAAA;AAoBO,MAAMG,aAAa,GACxBF,MAA0B,IACI,IAAI;;AAEpC;AACA;AACA;AAAAC,OAAA,CAAAC,aAAA,GAAAA,aAAA;AAgCO,MAAMC,WAAW,GAAGA,CAAC;EAC1BC;AACgB,CAAC,KAAgC;EACjD,oBAAO,IAAAT,WAAA,CAAAU,GAAA,EAAAV,WAAA,CAAAW,QAAA;IAAAF,QAAA,EAAGA;EAAQ,CAAG,CAAC;AACxB,CAAC;;AAED;AACA;AACA;AAAAH,OAAA,CAAAE,WAAA,GAAAA,WAAA;AAmDO,MAAMI,gBAAgB,GAC3BP,MAA6B,IACC,IAAI;;AAEpC;AACA;AACA;AAAAC,OAAA,CAAAM,gBAAA,GAAAA,gBAAA;AA6BO,MAAMC,MAAM,GAAIR,MAAmB,IAAgC,IAAI;AAACC,OAAA,CAAAO,MAAA,GAAAA,MAAA;AAgCxE,MAAMC,WAAW,GACtBT,MAAwB,IACM,IAAI;AAACC,OAAA,CAAAQ,WAAA,GAAAA,WAAA;AAa9B,MAAMC,eAAe,GAAGA,CAAC;EAC9BN;AACoB,CAAC,KAAgC;EACrD,oBAAO,IAAAT,WAAA,CAAAU,GAAA,EAAAV,WAAA,CAAAW,QAAA;IAAAF,QAAA,EAAGA;EAAQ,CAAG,CAAC;AACxB,CAAC;;AAED;AACA;AACA;AAAAH,OAAA,CAAAS,eAAA,GAAAA,eAAA;AASO,MAAMC,WAAW,GAAGA,CAAC;EAC1BP;AACgB,CAAC,KAAgC;EACjD,oBAAO,IAAAT,WAAA,CAAAU,GAAA,EAAAV,WAAA,CAAAW,QAAA;IAAAF,QAAA,EAAGA;EAAQ,CAAG,CAAC;AACxB,CAAC;AAACH,OAAA,CAAAU,WAAA,GAAAA,WAAA;AAEK,MAAMC,sBAAsB,GAAAX,OAAA,CAAAW,sBAAA,GAAG,KAAK;;AAE3C;AACA;AACA;;AA8FO,MAAMC,SAAS,GAAAZ,OAAA,CAAAY,SAAA,gBAAGC,cAAK,CAACC,UAAU,CACvC,SAASC,kBAAkBA,CAAChB,MAAM,EAAEiB,GAAG,EAA6B;EAClEH,cAAK,CAACI,mBAAmB,CAACD,GAAG,EAAE,OAAO;IACpCE,KAAK,EAAEA,CAAA,KAAM,CAAC,CAAC;IACfC,IAAI,EAAEA,CAAA,KAAM,CAAC,CAAC;IACdC,KAAK,EAAEA,CAAA,KAAM,CAAC,CAAC;IACfC,SAAS,EAAEA,CAAA,KAAM;EACnB,CAAC,CAAC,CAAC;EACH,OAAO,IAAI;AACb,CACF,CAAC;;AAED;AACA;AACA;;AAQO,MAAMC,cAAc,GAAIC,MAA0B,IAAW,CAAC,CAAC;AAACvB,OAAA,CAAAsB,cAAA,GAAAA,cAAA;AAEhE,MAAME,cAAc,GACzBD,MAAsC,IAC7B,CAAC,CAAC;AAACvB,OAAA,CAAAwB,cAAA,GAAAA,cAAA","ignoreList":[]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.normalizeLabelStyle = normalizeLabelStyle;
|
|
7
|
+
// labelStyle.ts
|
|
8
|
+
//
|
|
9
|
+
// Label font props shared by SegmentedControl, Button and ButtonGroup.
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Font for a control's labels. Each field falls back to the platform default.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/** The flat font fields the native specs expect; empty / 0 = default. */
|
|
16
|
+
|
|
17
|
+
/** Normalizes a label font for native; `undefined` keeps the platform font. */
|
|
18
|
+
function normalizeLabelStyle(labelStyle) {
|
|
19
|
+
if (!labelStyle) return undefined;
|
|
20
|
+
return {
|
|
21
|
+
fontFamily: labelStyle.fontFamily ?? '',
|
|
22
|
+
fontSize: labelStyle.fontSize ?? 0,
|
|
23
|
+
fontWeight: labelStyle.fontWeight === undefined ? '' : String(labelStyle.fontWeight),
|
|
24
|
+
fontStyle: labelStyle.fontStyle ?? ''
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=labelStyle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["normalizeLabelStyle","labelStyle","undefined","fontFamily","fontSize","fontWeight","String","fontStyle"],"sourceRoot":"../../src","sources":["labelStyle.ts"],"mappings":";;;;;;AAAA;AACA;AACA;;AAGA;AACA;AACA;;AAQA;;AAQA;AACO,SAASA,mBAAmBA,CACjCC,UAAkC,EACJ;EAC9B,IAAI,CAACA,UAAU,EAAE,OAAOC,SAAS;EACjC,OAAO;IACLC,UAAU,EAAEF,UAAU,CAACE,UAAU,IAAI,EAAE;IACvCC,QAAQ,EAAEH,UAAU,CAACG,QAAQ,IAAI,CAAC;IAClCC,UAAU,EACRJ,UAAU,CAACI,UAAU,KAAKH,SAAS,GAAG,EAAE,GAAGI,MAAM,CAACL,UAAU,CAACI,UAAU,CAAC;IAC1EE,SAAS,EAAEN,UAAU,CAACM,SAAS,IAAI;EACrC,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["reactNativeInternals.d.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// Button.tsx
|
|
4
|
+
import React, { useCallback, useMemo } from 'react';
|
|
5
|
+
import NativeButton from './ButtonNativeComponent';
|
|
6
|
+
import { resolveIcon } from "./icons.js";
|
|
7
|
+
import { normalizeLabelStyle } from "./labelStyle.js";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Emphasis of the button, from highest to lowest.
|
|
11
|
+
*
|
|
12
|
+
* | Variant | Android (Material 3 Expressive) | iOS (`UIButton.Configuration`) |
|
|
13
|
+
* | ---------- | ------------------------------- | ------------------------------ |
|
|
14
|
+
* | `filled` | Filled button | `.filled()` |
|
|
15
|
+
* | `tonal` | Filled tonal button | `.tinted()` |
|
|
16
|
+
* | `outlined` | Outlined button | `.bordered()` |
|
|
17
|
+
* | `text` | Text button | `.plain()` |
|
|
18
|
+
* | `elevated` | Elevated button | `.gray()` |
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Button size. Material 3 Expressive defines five sizes; iOS maps them onto
|
|
23
|
+
* `UIButton.Configuration.Size` (`xsmall` → mini, `xlarge` → large).
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Corner shape. `round` is a pill; `square` keeps rounded corners. Unset
|
|
28
|
+
* means the platform default (round on Android, dynamic on iOS).
|
|
29
|
+
*/
|
|
30
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
31
|
+
export function Button(props) {
|
|
32
|
+
const {
|
|
33
|
+
label,
|
|
34
|
+
icon,
|
|
35
|
+
variant,
|
|
36
|
+
size,
|
|
37
|
+
shape,
|
|
38
|
+
disabled,
|
|
39
|
+
color,
|
|
40
|
+
tintColor,
|
|
41
|
+
labelStyle,
|
|
42
|
+
accessibilityLabel,
|
|
43
|
+
onPress,
|
|
44
|
+
android,
|
|
45
|
+
...viewProps
|
|
46
|
+
} = props;
|
|
47
|
+
const nativeIcon = useMemo(() => resolveIcon(icon), [icon]);
|
|
48
|
+
const nativeLabelStyle = useMemo(() => normalizeLabelStyle(labelStyle), [labelStyle]);
|
|
49
|
+
const handlePress = useCallback(() => {
|
|
50
|
+
onPress?.();
|
|
51
|
+
}, [onPress]);
|
|
52
|
+
return /*#__PURE__*/_jsx(NativeButton, {
|
|
53
|
+
label: label ?? '',
|
|
54
|
+
icon: nativeIcon,
|
|
55
|
+
variant: variant ?? 'filled',
|
|
56
|
+
size: size ?? 'small',
|
|
57
|
+
shape: shape ?? '',
|
|
58
|
+
interactivity: disabled ? 'disabled' : 'enabled',
|
|
59
|
+
color: color,
|
|
60
|
+
foregroundColor: tintColor,
|
|
61
|
+
androidRippleColor: android?.rippleColor,
|
|
62
|
+
androidStrokeColor: android?.strokeColor,
|
|
63
|
+
androidMaterial: android?.material ?? 'expressive',
|
|
64
|
+
labelStyle: nativeLabelStyle,
|
|
65
|
+
spokenLabel: accessibilityLabel ?? '',
|
|
66
|
+
onButtonPress: onPress ? handlePress : undefined,
|
|
67
|
+
...viewProps
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=Button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useCallback","useMemo","NativeButton","resolveIcon","normalizeLabelStyle","jsx","_jsx","Button","props","label","icon","variant","size","shape","disabled","color","tintColor","labelStyle","accessibilityLabel","onPress","android","viewProps","nativeIcon","nativeLabelStyle","handlePress","interactivity","foregroundColor","androidRippleColor","rippleColor","androidStrokeColor","strokeColor","androidMaterial","material","spokenLabel","onButtonPress","undefined"],"sourceRoot":"../../src","sources":["Button.tsx"],"mappings":";;AAAA;AACA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AAGnD,OAAOC,YAAY,MAAM,yBAAyB;AAClD,SAASC,WAAW,QAA2B,YAAS;AACxD,SAASC,mBAAmB,QAAyB,iBAAc;;AAGnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AAHA,SAAAC,GAAA,IAAAC,IAAA;AAoEA,OAAO,SAASC,MAAMA,CAACC,KAAkB,EAAsB;EAC7D,MAAM;IACJC,KAAK;IACLC,IAAI;IACJC,OAAO;IACPC,IAAI;IACJC,KAAK;IACLC,QAAQ;IACRC,KAAK;IACLC,SAAS;IACTC,UAAU;IACVC,kBAAkB;IAClBC,OAAO;IACPC,OAAO;IACP,GAAGC;EACL,CAAC,GAAGb,KAAK;EAET,MAAMc,UAAU,GAAGrB,OAAO,CAAC,MAAME,WAAW,CAACO,IAAI,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;EAC3D,MAAMa,gBAAgB,GAAGtB,OAAO,CAC9B,MAAMG,mBAAmB,CAACa,UAAU,CAAC,EACrC,CAACA,UAAU,CACb,CAAC;EAED,MAAMO,WAAW,GAAGxB,WAAW,CAAC,MAAM;IACpCmB,OAAO,GAAG,CAAC;EACb,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEb,oBACEb,IAAA,CAACJ,YAAY;IACXO,KAAK,EAAEA,KAAK,IAAI,EAAG;IACnBC,IAAI,EAAEY,UAAW;IACjBX,OAAO,EAAEA,OAAO,IAAI,QAAS;IAC7BC,IAAI,EAAEA,IAAI,IAAI,OAAQ;IACtBC,KAAK,EAAEA,KAAK,IAAI,EAAG;IACnBY,aAAa,EAAEX,QAAQ,GAAG,UAAU,GAAG,SAAU;IACjDC,KAAK,EAAEA,KAAM;IACbW,eAAe,EAAEV,SAAU;IAC3BW,kBAAkB,EAAEP,OAAO,EAAEQ,WAAY;IACzCC,kBAAkB,EAAET,OAAO,EAAEU,WAAY;IACzCC,eAAe,EAAEX,OAAO,EAAEY,QAAQ,IAAI,YAAa;IACnDf,UAAU,EAAEM,gBAAiB;IAC7BU,WAAW,EAAEf,kBAAkB,IAAI,EAAG;IACtCgB,aAAa,EAAEf,OAAO,GAAGK,WAAW,GAAGW,SAAU;IAAA,GAC7Cd;EAAS,CACd,CAAC;AAEN","ignoreList":[]}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// ButtonGroup.tsx
|
|
4
|
+
import React, { useCallback, useMemo } from 'react';
|
|
5
|
+
import NativeButtonGroup from './ButtonGroupNativeComponent';
|
|
6
|
+
import { resolveIcon } from "./icons.js";
|
|
7
|
+
import { normalizeLabelStyle } from "./labelStyle.js";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Selection behavior of the group.
|
|
11
|
+
*
|
|
12
|
+
* - `none` (default): the buttons are plain actions.
|
|
13
|
+
* - `single`: at most one button is selected at a time.
|
|
14
|
+
* - `multiple`: any number of buttons can be selected.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/** What happens to buttons that don't fit the group's width (Android). */
|
|
18
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
19
|
+
export function ButtonGroup(props) {
|
|
20
|
+
const {
|
|
21
|
+
buttons,
|
|
22
|
+
variant,
|
|
23
|
+
size,
|
|
24
|
+
shape,
|
|
25
|
+
connected,
|
|
26
|
+
spacing,
|
|
27
|
+
selection,
|
|
28
|
+
selectedValues,
|
|
29
|
+
selectionRequired,
|
|
30
|
+
disabled,
|
|
31
|
+
color,
|
|
32
|
+
tintColor,
|
|
33
|
+
labelStyle,
|
|
34
|
+
onPress,
|
|
35
|
+
onSelectionChange,
|
|
36
|
+
android,
|
|
37
|
+
...viewProps
|
|
38
|
+
} = props;
|
|
39
|
+
const selectionMode = selection ?? 'none';
|
|
40
|
+
const nativeButtons = useMemo(() => {
|
|
41
|
+
return buttons.map(button => ({
|
|
42
|
+
label: button.label ?? '',
|
|
43
|
+
value: button.value,
|
|
44
|
+
disabled: button.disabled ? 'disabled' : 'enabled',
|
|
45
|
+
accessibilityLabel: button.accessibilityLabel ?? '',
|
|
46
|
+
...resolveIcon(button.icon)
|
|
47
|
+
}));
|
|
48
|
+
}, [buttons]);
|
|
49
|
+
const nativeSelectedValues = useMemo(() => {
|
|
50
|
+
if (selectionMode === 'none' || !selectedValues) return [];
|
|
51
|
+
return selectionMode === 'single' ? selectedValues.slice(0, 1) : [...selectedValues];
|
|
52
|
+
}, [selectionMode, selectedValues]);
|
|
53
|
+
const nativeLabelStyle = useMemo(() => normalizeLabelStyle(labelStyle), [labelStyle]);
|
|
54
|
+
const handlePress = useCallback(e => {
|
|
55
|
+
const {
|
|
56
|
+
index,
|
|
57
|
+
value
|
|
58
|
+
} = e.nativeEvent;
|
|
59
|
+
onPress?.(value, index);
|
|
60
|
+
}, [onPress]);
|
|
61
|
+
const handleSelectionChange = useCallback(e => {
|
|
62
|
+
onSelectionChange?.([...e.nativeEvent.values]);
|
|
63
|
+
}, [onSelectionChange]);
|
|
64
|
+
const nativeAndroid = useMemo(() => ({
|
|
65
|
+
overflow: android?.overflow ?? 'none',
|
|
66
|
+
material: android?.material ?? 'expressive'
|
|
67
|
+
}), [android]);
|
|
68
|
+
const isConnected = connected ?? selectionMode !== 'none';
|
|
69
|
+
const isSelectionRequired = selectionRequired ?? (selectionMode === 'single' ? true : false);
|
|
70
|
+
return /*#__PURE__*/_jsx(NativeButtonGroup, {
|
|
71
|
+
buttons: nativeButtons,
|
|
72
|
+
variant: variant ?? 'outlined',
|
|
73
|
+
size: size ?? 'small',
|
|
74
|
+
shape: shape ?? '',
|
|
75
|
+
connected: isConnected ? 'true' : 'false',
|
|
76
|
+
spacing: spacing ?? -1,
|
|
77
|
+
selection: selectionMode,
|
|
78
|
+
selectedValues: nativeSelectedValues,
|
|
79
|
+
selectionRequired: isSelectionRequired ? 'true' : 'false',
|
|
80
|
+
interactivity: disabled ? 'disabled' : 'enabled',
|
|
81
|
+
color: color,
|
|
82
|
+
foregroundColor: tintColor,
|
|
83
|
+
androidRippleColor: android?.rippleColor,
|
|
84
|
+
androidStrokeColor: android?.strokeColor,
|
|
85
|
+
labelStyle: nativeLabelStyle,
|
|
86
|
+
onButtonPress: onPress ? handlePress : undefined,
|
|
87
|
+
onGroupSelectionChange: onSelectionChange ? handleSelectionChange : undefined,
|
|
88
|
+
android: nativeAndroid,
|
|
89
|
+
...viewProps
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=ButtonGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useCallback","useMemo","NativeButtonGroup","resolveIcon","normalizeLabelStyle","jsx","_jsx","ButtonGroup","props","buttons","variant","size","shape","connected","spacing","selection","selectedValues","selectionRequired","disabled","color","tintColor","labelStyle","onPress","onSelectionChange","android","viewProps","selectionMode","nativeButtons","map","button","label","value","accessibilityLabel","icon","nativeSelectedValues","slice","nativeLabelStyle","handlePress","e","index","nativeEvent","handleSelectionChange","values","nativeAndroid","overflow","material","isConnected","isSelectionRequired","interactivity","foregroundColor","androidRippleColor","rippleColor","androidStrokeColor","strokeColor","onButtonPress","undefined","onGroupSelectionChange"],"sourceRoot":"../../src","sources":["ButtonGroup.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
// ButtonGroupNativeComponent.ts
|
|
2
|
+
import type { ColorValue, HostComponent, ViewProps } from 'react-native';
|
|
3
|
+
import { codegenNativeComponent } from 'react-native';
|
|
4
|
+
import type { BubblingEventHandler, Double, Int32 } from './codegenTypes';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* A single button in the group. Icons are pre-resolved on the JS side (see
|
|
8
|
+
* icons.ts) so native only deals with flat strings.
|
|
9
|
+
*/
|
|
10
|
+
export type ButtonGroupButton = Readonly<{
|
|
11
|
+
label: string; // Empty for an icon-only button
|
|
12
|
+
value: string;
|
|
13
|
+
disabled: string; // 'enabled' | 'disabled'
|
|
14
|
+
iconType: string; // '' | 'sfSymbol' | 'drawable' | 'image'
|
|
15
|
+
iconName: string; // SF Symbol (iOS) or drawable resource name (Android)
|
|
16
|
+
iconUri: string; // Resolved image URI when iconType === 'image'
|
|
17
|
+
iconScale: Double; // Resolved image scale when iconType === 'image'
|
|
18
|
+
iconTinted: string; // 'true' | 'false' — draw the image as a tinted template
|
|
19
|
+
accessibilityLabel: string; // Screen-reader label, empty = use label
|
|
20
|
+
}>;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Event emitted when a button is pressed.
|
|
24
|
+
*/
|
|
25
|
+
export type ButtonGroupPressEvent = Readonly<{
|
|
26
|
+
index: Int32;
|
|
27
|
+
value: string;
|
|
28
|
+
}>;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Event emitted when the selection changes (single / multiple selection).
|
|
32
|
+
*/
|
|
33
|
+
export type ButtonGroupSelectionEvent = Readonly<{
|
|
34
|
+
/** Values of the selected buttons, in button order. */
|
|
35
|
+
// Codegen only understands the `T[]` array form in event payloads.
|
|
36
|
+
values: string[];
|
|
37
|
+
}>;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Label font. Empty strings / 0 mean "platform default".
|
|
41
|
+
*/
|
|
42
|
+
export type ButtonGroupLabelStyleProps = Readonly<{
|
|
43
|
+
fontFamily?: string;
|
|
44
|
+
fontSize?: Double;
|
|
45
|
+
fontWeight?: string; // 'normal' | 'bold' | '100'..'900'
|
|
46
|
+
fontStyle?: string; // 'normal' | 'italic'
|
|
47
|
+
}>;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Android-specific configuration.
|
|
51
|
+
*/
|
|
52
|
+
export type ButtonGroupAndroidProps = Readonly<{
|
|
53
|
+
/** What happens to buttons that don't fit: 'none' | 'menu' | 'wrap' */
|
|
54
|
+
overflow?: string;
|
|
55
|
+
|
|
56
|
+
/** Material style: 'm3' | 'expressive' */
|
|
57
|
+
material?: string;
|
|
58
|
+
}>;
|
|
59
|
+
|
|
60
|
+
export interface ButtonGroupNativeProps extends ViewProps {
|
|
61
|
+
/** Buttons to display. */
|
|
62
|
+
buttons: ReadonlyArray<ButtonGroupButton>;
|
|
63
|
+
|
|
64
|
+
/** 'filled' | 'tonal' | 'outlined' | 'text' | 'elevated' */
|
|
65
|
+
variant?: string;
|
|
66
|
+
|
|
67
|
+
/** 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' */
|
|
68
|
+
size?: string;
|
|
69
|
+
|
|
70
|
+
/** '' (platform default) | 'round' | 'square' */
|
|
71
|
+
shape?: string;
|
|
72
|
+
|
|
73
|
+
/** 'true' | 'false': connected group (shared outline, small inner corners) */
|
|
74
|
+
connected?: string;
|
|
75
|
+
|
|
76
|
+
/** Gap between buttons in points; negative means the platform default. */
|
|
77
|
+
spacing?: Double;
|
|
78
|
+
|
|
79
|
+
/** 'none' | 'single' | 'multiple' */
|
|
80
|
+
selection?: string;
|
|
81
|
+
|
|
82
|
+
/** Values of the selected buttons (single / multiple selection). */
|
|
83
|
+
selectedValues?: ReadonlyArray<string>;
|
|
84
|
+
|
|
85
|
+
/** 'true' | 'false': whether at least one button must stay selected */
|
|
86
|
+
selectionRequired?: string;
|
|
87
|
+
|
|
88
|
+
/** 'enabled' | 'disabled' */
|
|
89
|
+
interactivity?: string;
|
|
90
|
+
|
|
91
|
+
/** Container (background) color of the buttons. */
|
|
92
|
+
color?: ColorValue;
|
|
93
|
+
|
|
94
|
+
/** Label and icon color of the buttons. */
|
|
95
|
+
foregroundColor?: ColorValue;
|
|
96
|
+
|
|
97
|
+
/** Android: ripple color shown while pressing a button. */
|
|
98
|
+
androidRippleColor?: ColorValue;
|
|
99
|
+
|
|
100
|
+
/** Android: outline color (outlined variant). */
|
|
101
|
+
androidStrokeColor?: ColorValue;
|
|
102
|
+
|
|
103
|
+
/** Label font. */
|
|
104
|
+
labelStyle?: ButtonGroupLabelStyleProps;
|
|
105
|
+
|
|
106
|
+
/** Fired when a button is pressed. */
|
|
107
|
+
onButtonPress?: BubblingEventHandler<ButtonGroupPressEvent>;
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Fired when the selection changes. Not `onSelectionChange`: React Native's
|
|
111
|
+
* TextInput registers `topSelectionChange` as a direct event, and an event
|
|
112
|
+
* name can't be both direct and bubbling.
|
|
113
|
+
*/
|
|
114
|
+
onGroupSelectionChange?: BubblingEventHandler<ButtonGroupSelectionEvent>;
|
|
115
|
+
|
|
116
|
+
android?: ButtonGroupAndroidProps;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
export default codegenNativeComponent<ButtonGroupNativeProps>(
|
|
120
|
+
'PCButtonGroup'
|
|
121
|
+
) as HostComponent<ButtonGroupNativeProps>;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
// ButtonNativeComponent.ts
|
|
2
|
+
import type { ColorValue, HostComponent, ViewProps } from 'react-native';
|
|
3
|
+
import { codegenNativeComponent } from 'react-native';
|
|
4
|
+
import type { BubblingEventHandler, Double } from './codegenTypes';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Icon fields, pre-resolved on the JS side (see icons.ts).
|
|
8
|
+
*/
|
|
9
|
+
export type ButtonIconProps = Readonly<{
|
|
10
|
+
iconType: string; // '' | 'sfSymbol' | 'drawable' | 'image'
|
|
11
|
+
iconName: string; // SF Symbol (iOS) or drawable resource name (Android)
|
|
12
|
+
iconUri: string; // Resolved image URI when iconType === 'image'
|
|
13
|
+
iconScale: Double; // Resolved image scale when iconType === 'image'
|
|
14
|
+
iconTinted: string; // 'true' | 'false' — draw the image as a tinted template
|
|
15
|
+
}>;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Label font. Empty strings / 0 mean "platform default".
|
|
19
|
+
*/
|
|
20
|
+
export type ButtonLabelStyleProps = Readonly<{
|
|
21
|
+
fontFamily?: string;
|
|
22
|
+
fontSize?: Double;
|
|
23
|
+
fontWeight?: string; // 'normal' | 'bold' | '100'..'900'
|
|
24
|
+
fontStyle?: string; // 'normal' | 'italic'
|
|
25
|
+
}>;
|
|
26
|
+
|
|
27
|
+
export interface ButtonNativeProps extends ViewProps {
|
|
28
|
+
/** Button text. Empty for an icon-only button. */
|
|
29
|
+
label?: string;
|
|
30
|
+
|
|
31
|
+
/** Icon shown before the label, or alone when there is no label. */
|
|
32
|
+
icon?: ButtonIconProps;
|
|
33
|
+
|
|
34
|
+
/** 'filled' | 'tonal' | 'outlined' | 'text' | 'elevated' */
|
|
35
|
+
variant?: string;
|
|
36
|
+
|
|
37
|
+
/** 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' */
|
|
38
|
+
size?: string;
|
|
39
|
+
|
|
40
|
+
/** '' (platform default) | 'round' | 'square' */
|
|
41
|
+
shape?: string;
|
|
42
|
+
|
|
43
|
+
/** 'enabled' | 'disabled' */
|
|
44
|
+
interactivity?: string;
|
|
45
|
+
|
|
46
|
+
/** Container (background) color. */
|
|
47
|
+
color?: ColorValue;
|
|
48
|
+
|
|
49
|
+
/** Label and icon color. */
|
|
50
|
+
foregroundColor?: ColorValue;
|
|
51
|
+
|
|
52
|
+
/** Android: ripple color shown while pressing. */
|
|
53
|
+
androidRippleColor?: ColorValue;
|
|
54
|
+
|
|
55
|
+
/** Android: outline color (outlined variant). */
|
|
56
|
+
androidStrokeColor?: ColorValue;
|
|
57
|
+
|
|
58
|
+
/** Android: Material style, 'm3' | 'expressive' */
|
|
59
|
+
androidMaterial?: string;
|
|
60
|
+
|
|
61
|
+
/** Label font. */
|
|
62
|
+
labelStyle?: ButtonLabelStyleProps;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Screen-reader label, applied to the native button rather than the host
|
|
66
|
+
* view. Empty means "use the label".
|
|
67
|
+
*/
|
|
68
|
+
spokenLabel?: string;
|
|
69
|
+
|
|
70
|
+
/** Fired when the button is pressed. */
|
|
71
|
+
onButtonPress?: BubblingEventHandler<Readonly<{}>>;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export default codegenNativeComponent<ButtonNativeProps>(
|
|
75
|
+
'PCButton'
|
|
76
|
+
) as HostComponent<ButtonNativeProps>;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// FloatingToolbar.tsx
|
|
4
|
+
import React, { useMemo } from 'react';
|
|
5
|
+
import { Platform, StyleSheet } from 'react-native';
|
|
6
|
+
import NativeFloatingToolbar from './FloatingToolbarNativeComponent';
|
|
7
|
+
|
|
8
|
+
/** Glass effect style of the toolbar on iOS 26. */
|
|
9
|
+
|
|
10
|
+
/** Material 3 color variant of the toolbar on Android. */
|
|
11
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
+
export function FloatingToolbar(props) {
|
|
13
|
+
const {
|
|
14
|
+
style,
|
|
15
|
+
orientation,
|
|
16
|
+
color,
|
|
17
|
+
ios,
|
|
18
|
+
android,
|
|
19
|
+
children,
|
|
20
|
+
...viewProps
|
|
21
|
+
} = props;
|
|
22
|
+
const nativeIos = useMemo(() => {
|
|
23
|
+
if (Platform.OS !== 'ios' || !ios) return undefined;
|
|
24
|
+
return {
|
|
25
|
+
effect: ios.effect ?? 'regular'
|
|
26
|
+
};
|
|
27
|
+
}, [ios]);
|
|
28
|
+
const nativeAndroid = useMemo(() => {
|
|
29
|
+
if (Platform.OS !== 'android' || !android) return undefined;
|
|
30
|
+
return {
|
|
31
|
+
variant: android.variant ?? 'standard'
|
|
32
|
+
};
|
|
33
|
+
}, [android]);
|
|
34
|
+
const mergedStyle = useMemo(() => [styles.toolbar, orientation === 'vertical' ? styles.vertical : styles.horizontal, style], [orientation, style]);
|
|
35
|
+
return /*#__PURE__*/_jsx(NativeFloatingToolbar, {
|
|
36
|
+
style: mergedStyle,
|
|
37
|
+
color: color,
|
|
38
|
+
ios: nativeIos,
|
|
39
|
+
android: nativeAndroid,
|
|
40
|
+
...viewProps,
|
|
41
|
+
children: children
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Material 3 floating toolbar: 8dp container padding, 4dp between actions.
|
|
46
|
+
// The capsule shape comes from native.
|
|
47
|
+
const styles = StyleSheet.create({
|
|
48
|
+
toolbar: {
|
|
49
|
+
alignSelf: 'center',
|
|
50
|
+
alignItems: 'center',
|
|
51
|
+
justifyContent: 'center',
|
|
52
|
+
padding: 8,
|
|
53
|
+
gap: 4
|
|
54
|
+
},
|
|
55
|
+
horizontal: {
|
|
56
|
+
flexDirection: 'row'
|
|
57
|
+
},
|
|
58
|
+
vertical: {
|
|
59
|
+
flexDirection: 'column'
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
//# sourceMappingURL=FloatingToolbar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useMemo","Platform","StyleSheet","NativeFloatingToolbar","jsx","_jsx","FloatingToolbar","props","style","orientation","color","ios","android","children","viewProps","nativeIos","OS","undefined","effect","nativeAndroid","variant","mergedStyle","styles","toolbar","vertical","horizontal","create","alignSelf","alignItems","justifyContent","padding","gap","flexDirection"],"sourceRoot":"../../src","sources":["FloatingToolbar.tsx"],"mappings":";;AAAA;AACA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SACEC,QAAQ,EACRC,UAAU,QAKL,cAAc;AAErB,OAAOC,qBAAqB,MAAM,kCAAkC;;AAEpE;;AAGA;AAAA,SAAAC,GAAA,IAAAC,IAAA;AA8CA,OAAO,SAASC,eAAeA,CAC7BC,KAA2B,EACP;EACpB,MAAM;IAAEC,KAAK;IAAEC,WAAW;IAAEC,KAAK;IAAEC,GAAG;IAAEC,OAAO;IAAEC,QAAQ;IAAE,GAAGC;EAAU,CAAC,GACvEP,KAAK;EAEP,MAAMQ,SAAS,GAAGf,OAAO,CAAC,MAAM;IAC9B,IAAIC,QAAQ,CAACe,EAAE,KAAK,KAAK,IAAI,CAACL,GAAG,EAAE,OAAOM,SAAS;IACnD,OAAO;MAAEC,MAAM,EAAEP,GAAG,CAACO,MAAM,IAAI;IAAU,CAAC;EAC5C,CAAC,EAAE,CAACP,GAAG,CAAC,CAAC;EAET,MAAMQ,aAAa,GAAGnB,OAAO,CAAC,MAAM;IAClC,IAAIC,QAAQ,CAACe,EAAE,KAAK,SAAS,IAAI,CAACJ,OAAO,EAAE,OAAOK,SAAS;IAC3D,OAAO;MAAEG,OAAO,EAAER,OAAO,CAACQ,OAAO,IAAI;IAAW,CAAC;EACnD,CAAC,EAAE,CAACR,OAAO,CAAC,CAAC;EAEb,MAAMS,WAAW,GAAGrB,OAAO,CACzB,MAA4B,CAC1BsB,MAAM,CAACC,OAAO,EACdd,WAAW,KAAK,UAAU,GAAGa,MAAM,CAACE,QAAQ,GAAGF,MAAM,CAACG,UAAU,EAChEjB,KAAK,CACN,EACD,CAACC,WAAW,EAAED,KAAK,CACrB,CAAC;EAED,oBACEH,IAAA,CAACF,qBAAqB;IACpBK,KAAK,EAAEa,WAAY;IACnBX,KAAK,EAAEA,KAAM;IACbC,GAAG,EAAEI,SAAU;IACfH,OAAO,EAAEO,aAAc;IAAA,GACnBL,SAAS;IAAAD,QAAA,EAEZA;EAAQ,CACY,CAAC;AAE5B;;AAEA;AACA;AACA,MAAMS,MAAM,GAAGpB,UAAU,CAACwB,MAAM,CAAC;EAC/BH,OAAO,EAAE;IACPI,SAAS,EAAE,QAAQ;IACnBC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBC,OAAO,EAAE,CAAC;IACVC,GAAG,EAAE;EACP,CAAC;EACDN,UAAU,EAAE;IAAEO,aAAa,EAAE;EAAM,CAAC;EACpCR,QAAQ,EAAE;IAAEQ,aAAa,EAAE;EAAS;AACtC,CAAC,CAAC","ignoreList":[]}
|