Jelajahi Sumber

Feature: monorepo structure completed.

lfabl 1 Minggu lalu
induk
melakukan
d9be4fc8ba
48 mengubah file dengan 489 tambahan dan 1532 penghapusan
  1. 2 2
      .github/ISSUE_TEMPLATE/config.yml
  2. 1 1
      .yarnrc.yml
  3. 10 10
      example/mobile/app.json
  4. 3 3
      example/mobile/babel.config.js
  5. 1 1
      example/mobile/index.ts
  6. 10 29
      example/mobile/metro.config.js
  7. 4 30
      example/mobile/package.json
  8. 0 42
      example/mobile/src/index.tsx
  9. 0 61
      example/mobile/src/pages/testSubPage/index.tsx
  10. 5 1
      example/mobile/tsconfig.json
  11. 0 0
      example/src/assets/fonts/Geist-Black.ttf
  12. 0 0
      example/src/assets/fonts/Geist-Bold.ttf
  13. 0 0
      example/src/assets/fonts/Geist-ExtraBold.ttf
  14. 0 0
      example/src/assets/fonts/Geist-ExtraLight.ttf
  15. 0 0
      example/src/assets/fonts/Geist-Light.ttf
  16. 0 0
      example/src/assets/fonts/Geist-Medium.ttf
  17. 0 0
      example/src/assets/fonts/Geist-Regular.ttf
  18. 0 0
      example/src/assets/fonts/Geist-SemiBold.ttf
  19. 0 0
      example/src/assets/fonts/Geist-Thin.ttf
  20. 1 0
      example/src/global.d.ts
  21. 46 0
      example/src/index.tsx
  22. 0 0
      example/src/navigation/index.tsx
  23. 0 0
      example/src/navigation/type.ts
  24. 1 1
      example/src/pages/home/index.tsx
  25. 0 0
      example/src/pages/home/stylesheet.ts
  26. 1 1
      example/src/pages/testSubPage/index.tsx
  27. 0 0
      example/src/pages/testSubPage/stylesheet.ts
  28. 34 0
      example/src/tsconfig.json
  29. 0 2
      example/web/.bundle/config
  30. 0 31
      example/web/App.tsx
  31. 0 13
      example/web/__tests__/App.test.tsx
  32. 2 2
      example/web/app.json
  33. 11 8
      example/web/babel.config.js
  34. 0 9
      example/web/index.js
  35. 13 0
      example/web/index.ts
  36. 4 4
      example/web/jest.config.js
  37. 29 2
      example/web/metro.config.js
  38. 2 52
      example/web/package.json
  39. 0 46
      example/web/src/navigation/index.tsx
  40. 0 7
      example/web/src/navigation/type.ts
  41. 0 668
      example/web/src/pages/home/index.tsx
  42. 0 14
      example/web/src/pages/home/stylesheet.ts
  43. 0 10
      example/web/src/pages/testSubPage/stylesheet.ts
  44. 15 6
      example/web/tsconfig.json
  45. 30 15
      example/web/webpack.config.js
  46. 60 19
      package.json
  47. 7 2
      tsconfig.json
  48. 197 440
      yarn.lock

+ 2 - 2
.github/ISSUE_TEMPLATE/config.yml

@@ -1,8 +1,8 @@
 blank_issues_enabled: false
 contact_links:
   - name: Feature Request 💡
-    url: https://git.nibgat.space/nibgat-community/ncore-ui-kit-mobile.git/discussions/new?category=ideas
+    url: https://git.nibgat.space/nibgat-community/ncore-ui-kit.git/discussions/new?category=ideas
     about: If you have a feature request, please create a new discussion on GitHub.
   - name: Discussions on GitHub 💬
-    url: https://git.nibgat.space/nibgat-community/ncore-ui-kit-mobile.git/discussions
+    url: https://git.nibgat.space/nibgat-community/ncore-ui-kit.git/discussions
     about: If this library works as promised but you need help, please ask questions there.

+ 1 - 1
.yarnrc.yml

@@ -1,4 +1,4 @@
 nodeLinker: node-modules
-nmHoistingLimits: workspaces
+nmHoistingLimits: none
 
 yarnPath: .yarn/releases/yarn-4.11.0.cjs

+ 10 - 10
example/mobile/app.json

@@ -1,7 +1,7 @@
 {
     "expo": {
         "name": "NCore | Ui Kit - Mobile Example",
-        "slug": "ncore-ui-kit-mobile-example-mobile",
+        "slug": "ncore-ui-kit-example-mobile",
         "version": "1.0.0",
         "orientation": "portrait",
         "icon": "./assets/icon.png",
@@ -31,15 +31,15 @@
                 "expo-font",
                 {
                     "fonts": [
-                        "./src/assets/fonts/Geist-Black.ttf",
-                        "./src/assets/fonts/Geist-Bold.ttf",
-                        "./src/assets/fonts/Geist-ExtraBold.ttf",
-                        "./src/assets/fonts/Geist-ExtraLight.ttf",
-                        "./src/assets/fonts/Geist-Light.ttf",
-                        "./src/assets/fonts/Geist-Medium.ttf",
-                        "./src/assets/fonts/Geist-Regular.ttf",
-                        "./src/assets/fonts/Geist-SemiBold.ttf",
-                        "./src/assets/fonts/Geist-Thin.ttf"
+                        "../src/assets/fonts/Geist-Black.ttf",
+                        "../src/assets/fonts/Geist-Bold.ttf",
+                        "../src/assets/fonts/Geist-ExtraBold.ttf",
+                        "../src/assets/fonts/Geist-ExtraLight.ttf",
+                        "../src/assets/fonts/Geist-Light.ttf",
+                        "../src/assets/fonts/Geist-Medium.ttf",
+                        "../src/assets/fonts/Geist-Regular.ttf",
+                        "../src/assets/fonts/Geist-SemiBold.ttf",
+                        "../src/assets/fonts/Geist-Thin.ttf"
                     ]
                 }
             ]

+ 3 - 3
example/mobile/babel.config.js

@@ -19,9 +19,9 @@ module.exports = function (api) {
                         ".json"
                     ],
                     alias: {
-                        "ncore-ui-kit-mobile": "../../src",
-                        "react": "./node_modules/react",
-                        "react-native": "./node_modules/react-native"
+                        "ncore-ui-kit": "../../src",
+                        "react": "../../node_modules/react",
+                        "react-native": "../../node_modules/react-native"
                     }
                 }
             ]

+ 1 - 1
example/mobile/index.js → example/mobile/index.ts

@@ -1,6 +1,6 @@
-import App from "./src/index";
 import {
     registerRootComponent
 } from "expo";
+import App from "../src/index";
 
 registerRootComponent(App);

+ 10 - 29
example/mobile/metro.config.js

@@ -7,43 +7,24 @@ const {
 const path = require("path");
 
 const root = path.resolve(__dirname, "../..");
-
-const nodeModulesPaths = [
-    path.resolve(__dirname, "node_modules")
-];
+const source = path.resolve(__dirname, "../src");
 
 const config = getDefaultConfig(__dirname);
 
-config.watchFolders = [root];
+config.watchFolders = [
+    root,
+    source
+];
 
 config.resolver.extraNodeModules = {
-    "ncore-ui-kit-mobile": path.resolve(root, "src"),
-    "react": path.resolve(__dirname, "node_modules/react"),
-    "react-native": path.resolve(__dirname, "node_modules/react-native")
+    "ncore-ui-kit": path.resolve(root, "src"),
+    "node_modules": path.resolve(root, "node_modules")
 };
 
-config.resolver.nodeModulesPaths = nodeModulesPaths;
-
-config.resolver.disableHierarchicalLookup = true;
-
-config.resolver.blockList = [
-    new RegExp(`${path.resolve(root, "example", "web", "node_modules").replace(/\\/g, "\\\\")}.*`),
+config.resolver.nodeModulesPaths = [
+    path.resolve(root, "node_modules")
 ];
 
-config.resolver.resolveRequest = (context, moduleName, platform) => {
-    const forceLocal = ["react", "react-native"];
-    const match = forceLocal.find(
-        (pkg) => moduleName === pkg || moduleName.startsWith(`${pkg}/`)
-    );
-
-    if (match) {
-        const filePath = require.resolve(moduleName, {
-            paths: [__dirname],
-        });
-        return { filePath, type: "sourceFile" };
-    }
-
-    return context.resolveRequest(context, moduleName, platform);
-};
+config.resolver.disableHierarchicalLookup = true;
 
 module.exports = config;

+ 4 - 30
example/mobile/package.json

@@ -1,7 +1,7 @@
 {
-    "name": "ncore-ui-kit-mobile-example-mobile",
-    "version": "1.0.0",
-    "main": "index.js",
+    "name": "ncore-ui-kit-example-mobile",
+    "version": "1.0.0-pre-alpha.0",
+    "main": "index.ts",
     "type": "commonjs",
     "scripts": {
         "start": "expo start",
@@ -9,31 +9,5 @@
         "ios": "expo start --ios",
         "web": "expo start --web"
     },
-    "dependencies": {
-        "@expo/metro-runtime": "~55.0.6",
-        "@react-navigation/elements": "2.9.14",
-        "@react-navigation/native": "7.2.2",
-        "@react-navigation/native-stack": "7.14.11",
-        "expo": "~55.0.4",
-        "expo-font": "~55.0.4",
-        "expo-status-bar": "~55.0.4",
-        "lucide-react-native": "1.8.0",
-        "moment": "https://git.nibgat.space/nibgat-community/moment.git",
-        "ncore-context": "1.0.5",
-        "react": "19.2.6",
-        "react-dom": "19.2.6",
-        "react-native": "0.83.2",
-        "react-native-safe-area-context": "5.7.0",
-        "react-native-screens": "4.24.0",
-        "react-native-svg": "15.15.3",
-        "react-native-web": "~0.21.0",
-        "rrule": "https://git.nibgat.space/nibgat-community/rrule.git"
-    },
-    "private": true,
-    "devDependencies": {
-        "@react-native/metro-config": "0.84.1",
-        "@types/react-native": "0.73.0",
-        "react-native-builder-bob": "0.40.13",
-        "react-native-monorepo-config": "0.3.3"
-    }
+    "private": true
 }

+ 0 - 42
example/mobile/src/index.tsx

@@ -1,42 +0,0 @@
-import Navigation from "./navigation";
-import {
-    useFonts
-} from "expo-font";
-import moment from "moment";
-import {
-    setupNCoreUIKit
-} from "ncore-ui-kit-mobile";
-import "moment/locale/tr";
-
-const NCoreUIKitBase = setupNCoreUIKit({
-    initialSelectedGapPropagation: "spacious",
-    initialSelectedTheme: "light"
-});
-
-moment.locale("tr");
-
-const App = () => {
-    return <Navigation/>;
-};
-
-const ContextAPI = () => {
-    /* eslint-disable @typescript-eslint/no-require-imports */
-    const [loaded] = useFonts({
-        "Geist-ExtraLight": require("./assets/fonts/Geist-ExtraLight.ttf"),
-        "Geist-ExtraBold": require("./assets/fonts/Geist-ExtraBold.ttf"),
-        "Geist-SemiBold": require("./assets/fonts/Geist-SemiBold.ttf"),
-        "Geist-Regular": require("./assets/fonts/Geist-Regular.ttf"),
-        "Geist-Medium": require("./assets/fonts/Geist-Medium.ttf"),
-        "Geist-Black": require("./assets/fonts/Geist-Black.ttf"),
-        "Geist-Light": require("./assets/fonts/Geist-Light.ttf"),
-        "Geist-Bold": require("./assets/fonts/Geist-Bold.ttf"),
-        "Geist-Thin": require("./assets/fonts/Geist-Thin.ttf")
-    });
-
-    if (!loaded) return null;
-
-    return <NCoreUIKitBase.Provider>
-        <App/>
-    </NCoreUIKitBase.Provider>;
-};
-export default ContextAPI;

+ 0 - 61
example/mobile/src/pages/testSubPage/index.tsx

@@ -1,61 +0,0 @@
-import {
-    useRef
-} from "react";
-import {
-    View
-} from "react-native";
-import stylesheet from "./stylesheet";
-import {
-    type IBottomSheetRef,
-    PageContainer,
-    BottomSheet,
-    Button,
-    Text
-} from "ncore-ui-kit-mobile";
-
-const TestSubPage = () => {
-    const bottomSheetRef = useRef<IBottomSheetRef>(null);
-
-    return <PageContainer
-        style={[
-            stylesheet.container
-        ]}
-    >
-        <Text>This is test sub page.</Text>
-        <Button
-            onPress={() => {
-                bottomSheetRef.current?.open();
-            }}
-            type="success"
-            title="Ahmet"
-            variant="filled"
-        />
-        <BottomSheet
-            isCanFullScreenOnSwipe={true}
-            isWorkWithPortal={false}
-            ref={bottomSheetRef}
-            snapPoint={300}
-        >
-            <Button
-                onPress={() => {
-
-                }}
-                title="Git."
-            />
-            <View
-                style={{
-                    backgroundColor: "red",
-                    height: 2400
-                }}
-            />
-            <Text>Deneme 123</Text>
-            <Text>Deneme 123</Text>
-            <Text>Deneme 123</Text>
-            <Text>Deneme 123</Text>
-            <Text>Deneme 123</Text>
-            <Text>Deneme 123</Text>
-            <Text>Deneme 123</Text>
-        </BottomSheet>
-    </PageContainer>;
-};
-export default TestSubPage;

+ 5 - 1
example/mobile/tsconfig.json

@@ -1,5 +1,9 @@
 {
     "extends": "../../tsconfig.json",
     "compilerOptions": {
-    }
+    },
+    "include": [
+        "**/*",
+        "../src/**/*"
+    ]
 }

+ 0 - 0
example/mobile/src/assets/fonts/Geist-Black.ttf → example/src/assets/fonts/Geist-Black.ttf


+ 0 - 0
example/mobile/src/assets/fonts/Geist-Bold.ttf → example/src/assets/fonts/Geist-Bold.ttf


+ 0 - 0
example/mobile/src/assets/fonts/Geist-ExtraBold.ttf → example/src/assets/fonts/Geist-ExtraBold.ttf


+ 0 - 0
example/mobile/src/assets/fonts/Geist-ExtraLight.ttf → example/src/assets/fonts/Geist-ExtraLight.ttf


+ 0 - 0
example/mobile/src/assets/fonts/Geist-Light.ttf → example/src/assets/fonts/Geist-Light.ttf


+ 0 - 0
example/mobile/src/assets/fonts/Geist-Medium.ttf → example/src/assets/fonts/Geist-Medium.ttf


+ 0 - 0
example/mobile/src/assets/fonts/Geist-Regular.ttf → example/src/assets/fonts/Geist-Regular.ttf


+ 0 - 0
example/mobile/src/assets/fonts/Geist-SemiBold.ttf → example/src/assets/fonts/Geist-SemiBold.ttf


+ 0 - 0
example/mobile/src/assets/fonts/Geist-Thin.ttf → example/src/assets/fonts/Geist-Thin.ttf


+ 1 - 0
example/src/global.d.ts

@@ -0,0 +1 @@
+import "../../src/types/index";

+ 46 - 0
example/src/index.tsx

@@ -0,0 +1,46 @@
+import Navigation from "./navigation";
+import {
+    useFonts
+} from "expo-font";
+import moment from "moment";
+import {
+    setupNCoreUIKit
+} from "ncore-ui-kit";
+import "moment/locale/tr";
+
+const NCoreUIKitBase = setupNCoreUIKit({
+    initialSelectedGapPropagation: "spacious",
+    initialSelectedTheme: "light"
+});
+
+moment.locale("tr");
+
+const App = () => {
+    return <Navigation/>;
+};
+
+const isExpo = typeof globalThis !== "undefined" && ("__expo" in globalThis || "Expo" in globalThis);
+
+const ContextAPI = () => {
+    if(isExpo) {
+        /* eslint-disable @typescript-eslint/no-require-imports */
+        const [loaded] = useFonts({
+            "Geist-ExtraLight": require("./assets/fonts/Geist-ExtraLight.ttf"),
+            "Geist-ExtraBold": require("./assets/fonts/Geist-ExtraBold.ttf"),
+            "Geist-SemiBold": require("./assets/fonts/Geist-SemiBold.ttf"),
+            "Geist-Regular": require("./assets/fonts/Geist-Regular.ttf"),
+            "Geist-Medium": require("./assets/fonts/Geist-Medium.ttf"),
+            "Geist-Black": require("./assets/fonts/Geist-Black.ttf"),
+            "Geist-Light": require("./assets/fonts/Geist-Light.ttf"),
+            "Geist-Bold": require("./assets/fonts/Geist-Bold.ttf"),
+            "Geist-Thin": require("./assets/fonts/Geist-Thin.ttf")
+        });
+
+        if (!loaded) return null;
+    }
+
+    return <NCoreUIKitBase.Provider>
+        <App/>
+    </NCoreUIKitBase.Provider>;
+};
+export default ContextAPI;

+ 0 - 0
example/mobile/src/navigation/index.tsx → example/src/navigation/index.tsx


+ 0 - 0
example/mobile/src/navigation/type.ts → example/src/navigation/type.ts


+ 1 - 1
example/mobile/src/pages/home/index.tsx → example/src/pages/home/index.tsx

@@ -33,7 +33,7 @@ import {
     Switch,
     Text,
     Chip
-} from "ncore-ui-kit-mobile";
+} from "ncore-ui-kit";
 import {
     useNavigation
 } from "@react-navigation/native";

+ 0 - 0
example/mobile/src/pages/home/stylesheet.ts → example/src/pages/home/stylesheet.ts


+ 1 - 1
example/web/src/pages/testSubPage/index.tsx → example/src/pages/testSubPage/index.tsx

@@ -11,7 +11,7 @@ import {
     BottomSheet,
     Button,
     Text
-} from "ncore-ui-kit-mobile";
+} from "ncore-ui-kit";
 
 const TestSubPage = () => {
     const bottomSheetRef = useRef<IBottomSheetRef>(null);

+ 0 - 0
example/mobile/src/pages/testSubPage/stylesheet.ts → example/src/pages/testSubPage/stylesheet.ts


+ 34 - 0
example/src/tsconfig.json

@@ -0,0 +1,34 @@
+{
+    "extends": [
+        "../../tsconfig.json",
+        "../mobile/tsconfig.json",
+        "../web/tsconfig.json",
+    ],
+    "compilerOptions": {
+        "allowSyntheticDefaultImports": true,
+        "moduleResolution": "bundler",
+        "ignoreDeprecations": "6.0",
+        "preserveSymlinks": true,
+        "esModuleInterop": true,
+        "jsx": "react-native",
+        "target": "esnext",
+        "baseUrl": "."
+    },
+    "references": [
+        {
+            "path": "../../"
+        },
+        {
+            "path": "../mobile"
+        },
+        {
+            "path": "../web"
+        }
+    ],
+    "include": [
+        "**/*.ts",
+        "**/*.tsx",
+        "../../src/**/*",
+        "../../src/types/index.ts"
+    ]
+}

+ 0 - 2
example/web/.bundle/config

@@ -1,2 +0,0 @@
-BUNDLE_PATH: "vendor/bundle"
-BUNDLE_FORCE_RUBY_PLATFORM: 1

+ 0 - 31
example/web/App.tsx

@@ -1,31 +0,0 @@
-import React from 'react';
-import {
-  StyleSheet
-} from 'react-native';
-import {
-  setupNCoreUIKit
-} from "ncore-ui-kit-mobile";
-import Navigation from './src/navigation';
-
-const NCoreUIKitBase = setupNCoreUIKit({
-    initialSelectedGapPropagation: "spacious",
-    initialSelectedTheme: "light"
-});
-
-function App() {
-  return <AppContent />;
-}
-
-function AppContent() {
-  return <NCoreUIKitBase.Provider>
-    <Navigation/>
-  </NCoreUIKitBase.Provider>;
-}
-
-const styles = StyleSheet.create({
-  container: {
-    flex: 1,
-  },
-});
-
-export default App;

+ 0 - 13
example/web/__tests__/App.test.tsx

@@ -1,13 +0,0 @@
-/**
- * @format
- */
-
-import React from 'react';
-import ReactTestRenderer from 'react-test-renderer';
-import App from '../App';
-
-test('renders correctly', async () => {
-  await ReactTestRenderer.act(() => {
-    ReactTestRenderer.create(<App />);
-  });
-});

+ 2 - 2
example/web/app.json

@@ -1,4 +1,4 @@
 {
-  "name": "ncoreuikitwebexample",
-  "displayName": "NİBGAT® | Official Website"
+    "name": "ncoreuikitwebexample",
+    "displayName": "NİBGAT® | Official Website"
 }

+ 11 - 8
example/web/babel.config.js

@@ -1,10 +1,13 @@
 module.exports = {
-  presets: ['module:@react-native/babel-preset'],
-  "plugins": [
-    ["module-resolver", {
-      "alias": {
-        "^react-native$": "react-native-web"
-      }
-    }]
-  ]
+    presets: ["module:@react-native/babel-preset"],
+    "plugins": [
+        [
+            "module-resolver",
+            {
+                "alias": {
+                    "^react-native$": "react-native-web"
+                }
+            }
+        ]
+    ]
 };

+ 0 - 9
example/web/index.js

@@ -1,9 +0,0 @@
-import { AppRegistry } from 'react-native';
-import App from './App';
-import { name as appName } from './app.json';
-
-AppRegistry.registerComponent(appName, () => App);
-AppRegistry.runApplication(appName, {
-  initialProps: {},
-  rootTag: document.getElementById('app-root')
-});

+ 13 - 0
example/web/index.ts

@@ -0,0 +1,13 @@
+import {
+    AppRegistry
+} from "react-native";
+import {
+    name as appName
+} from "./app.json";
+import App from "../src/index";
+
+AppRegistry.registerComponent(appName, () => App);
+AppRegistry.runApplication(appName, {
+    initialProps: {},
+    rootTag: document.getElementById("app-root")
+});

+ 4 - 4
example/web/jest.config.js

@@ -1,6 +1,6 @@
 module.exports = {
-  preset: '@react-native/jest-preset',
-  "moduleNameMapper": {
-    "^react-native$": "react-native-web"
-  }
+    preset: "@react-native/jest-preset",
+    "moduleNameMapper": {
+        "^react-native$": "react-native-web"
+    }
 };

+ 29 - 2
example/web/metro.config.js

@@ -1,4 +1,15 @@
-const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');
+const {
+    getDefaultConfig,
+    mergeConfig
+} = require("@react-native/metro-config");
+const path = require("path");
+
+const root = path.resolve(__dirname, "../..");
+const source = path.resolve(__dirname, "../src");
+
+const nodeModulesPaths = [
+    path.resolve(root, "node_modules")
+];
 
 /**
  * Metro configuration
@@ -6,6 +17,22 @@ const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');
  *
  * @type {import('@react-native/metro-config').MetroConfig}
  */
-const config = {};
+const config = {
+};
+
+config.watchFolders = [
+    root,
+    source
+];
+
+config.resolver.extraNodeModules = {
+    "ncore-ui-kit": path.resolve(root, "src"),
+    "react": path.resolve(root, "node_modules/react"),
+    "react-native": path.resolve(root, "node_modules/react-native")
+};
+
+config.resolver.nodeModulesPaths = nodeModulesPaths;
+
+config.resolver.disableHierarchicalLookup = true;
 
 module.exports = mergeConfig(getDefaultConfig(__dirname), config);

+ 2 - 52
example/web/package.json

@@ -1,8 +1,8 @@
 {
-    "name": "ncore-ui-kit-mobile-example-web",
+    "name": "ncore-ui-kit-example-web",
     "version": "1.0.0-pre-alpha.0",
+    "main": "index.ts",
     "type": "commonjs",
-    "main": "index.js",
     "private": true,
     "scripts": {
         "android": "react-native run-android",
@@ -12,56 +12,6 @@
         "web": "webpack serve --config ./webpack.config.js",
         "test": "jest"
     },
-    "dependencies": {
-        "@react-native/new-app-screen": "0.85.3",
-        "@react-navigation/elements": "2.9.18",
-        "@react-navigation/native": "7.2.4",
-        "@react-navigation/native-stack": "7.15.1",
-        "lucide-react-native": "1.16.0",
-        "moment": "https://git.nibgat.space/nibgat-community/moment.git",
-        "ncore-context": "1.0.5",
-        "react": "19.2.3",
-        "react-dom": "19.2.3",
-        "react-native": "0.85.3",
-        "react-native-safe-area-context": "5.5.2",
-        "react-native-svg": "15.15.5",
-        "react-native-web": "0.21.2",
-        "rrule": "https://git.nibgat.space/nibgat-community/rrule.git"
-    },
-    "devDependencies": {
-        "@babel/core": "7.25.2",
-        "@babel/plugin-proposal-class-properties": "7.18.6",
-        "@babel/plugin-transform-modules-commonjs": "7.28.6",
-        "@babel/plugin-transform-private-methods": "7.28.6",
-        "@babel/plugin-transform-private-property-in-object": "7.28.6",
-        "@babel/preset-env": "7.25.3",
-        "@babel/preset-typescript": "7.28.5",
-        "@babel/runtime": "7.25.0",
-        "@react-native-community/cli": "20.1.0",
-        "@react-native-community/cli-platform-android": "20.1.0",
-        "@react-native-community/cli-platform-ios": "20.1.0",
-        "@react-native/babel-preset": "0.85.3",
-        "@react-native/eslint-config": "0.85.3",
-        "@react-native/jest-preset": "0.85.3",
-        "@react-native/metro-config": "0.85.3",
-        "@react-native/typescript-config": "0.85.3",
-        "@types/jest": "29.5.13",
-        "@types/react": "19.2.0",
-        "@types/react-test-renderer": "19.1.0",
-        "babel-loader": "10.1.1",
-        "babel-plugin-module-resolver": "5.0.3",
-        "babel-plugin-react-native-web": "0.21.2",
-        "eslint": "8.19.0",
-        "html-webpack-plugin": "5.6.7",
-        "jest": "29.6.3",
-        "prettier": "2.8.8",
-        "react-test-renderer": "19.2.3",
-        "typescript": "5.8.3",
-        "url-loader": "4.1.1",
-        "webpack": "5.107.1",
-        "webpack-cli": "7.0.2",
-        "webpack-dev-server": "5.2.4"
-    },
     "engines": {
         "node": ">= 22.11.0"
     }

+ 0 - 46
example/web/src/navigation/index.tsx

@@ -1,46 +0,0 @@
-import {
-    NavigationContainer
-} from "@react-navigation/native";
-import {
-    createNativeStackNavigator
-} from "@react-navigation/native-stack";
-import Home from "../pages/home";
-import TestSubPage from "../pages/testSubPage";
-
-const RootStack = createNativeStackNavigator();
-
-const RootNav = () => {
-    return <RootStack.Navigator
-        initialRouteName="Home"
-    >
-        <RootStack.Screen
-            name="Home"
-            component={Home}
-        />
-        <RootStack.Screen
-            name="TestSubPage"
-            component={TestSubPage}
-        />
-    </RootStack.Navigator>;
-};
-
-const Navigation = () => {
-    return <NavigationContainer
-        linking={{
-            prefixes: [
-                'http://localhost:3000',
-                'https://nibgat.com.tr',
-                'https://nibgat.com'
-            ],
-            config: {
-                screens: {
-                    Home: '',
-                    TestSubPage: "test"
-                }
-            }
-        }}
-    >
-        <RootNav/>
-    </NavigationContainer>;
-};
-export default Navigation;

+ 0 - 7
example/web/src/navigation/type.ts

@@ -1,7 +0,0 @@
-type RootStackParamList = {
-    TestSubPage: undefined;
-    Home: undefined;
-};
-export type {
-    RootStackParamList as default
-};

+ 0 - 668
example/web/src/pages/home/index.tsx

@@ -1,668 +0,0 @@
-import {
-    Fragment,
-    useState,
-    useRef
-} from "react";
-import {
-    View
-} from "react-native";
-import stylesheet from "./stylesheet";
-import {
-    NCoreUIKitBottomSheet,
-    NotificationIndicator,
-    getNCoreUIKitVersion,
-    type IBottomSheetRef,
-    NCoreUIKitSnackBar,
-    NCoreUIKitDialog,
-    NCoreUIKitToast,
-    NCoreUIKitTheme,
-    DateTimePicker,
-    MarkdownViewer,
-    PageContainer,
-    TextAreaInput,
-    BottomSheet,
-    RadioButton,
-    TextInput,
-    StateCard,
-    SelectBox,
-    CheckBox,
-    Sticker,
-    RowCard,
-    Button,
-    Dialog,
-    Switch,
-    Chip,
-    Text
-} from "ncore-ui-kit-mobile";
-import {
-    useNavigation
-} from "@react-navigation/native";
-import type {
-    NativeStackNavigationProp
-} from "@react-navigation/native-stack";
-import type RootStackParamList from "../../navigation/type";
-import {
-    ChevronRight as ChevronRightIcon,
-    HomeIcon
-} from "lucide-react-native";
-import moment from "moment";
-
-const X = [
-    {
-        t: "xdfç.öhfdşkhdfşlhkfdşlhkdfşklhjmdfkhl3",
-        p: "ydfguıy8ı*pğ34erdx",
-        n: 90
-    },
-    {
-        t: "3t4uh5ıe6ıo6eıo6eoke6ıoke6ker6kr4ok",
-        p: "y3w46pjbd57ykdr",
-        n: 91
-    },
-    {
-        t: "xr*-0k4wkh-5w40k0*wek95ujk9*",
-        p: "y467o5*3evghe5",
-        n: 92
-    },
-    {
-        t: "x-40*tyg*0w4kyh*w0ko45u*ko0w",
-        p: "y3şçwl78570*fg",
-        n: 93
-    },
-    {
-        t: "*wrüsjh*ü9kws4*h0okdfhdhdfurdkex",
-        p: "yt7ıtot7ot",
-        n: 94
-    },
-    {
-        t: "x2-0*4woy-*w4opyu-*23wou*0wık*0jk",
-        p: "yasfa33",
-        n: 95
-    },
-    {
-        t: "x vmönöpwoı6-pğfş -*235*çda",
-        p: "ydfasdfasf",
-        n: 96
-    },
-    {
-        t: "x vmönöpwoı6-pğfş -*235*çda",
-        p: "ydfasdfasf",
-        n: 96
-    },
-    {
-        t: "x vmönöpwoı6-pğfş -*235*çda",
-        p: "ydfasdfasf",
-        n: 96
-    },
-    {
-        t: "x vmönöpwoı6-pğfş -*235*çda",
-        p: "ydfasdfasf",
-        n: 96
-    },
-    {
-        t: "x vmönöpwoı6-pğfş -*235*çda",
-        p: "ydfasdfasf",
-        n: 96
-    },
-    {
-        t: "x vmönöpwoı6-pğfş -*235*çda",
-        p: "ydfasdfasf",
-        n: 96
-    },
-    {
-        t: "x vmönöpwoı6-pğfş -*235*çda",
-        p: "ydfasdfasf",
-        n: 96
-    },
-    {
-        t: "x vmönöpwoı6-pğfş -*235*çda",
-        p: "ydfasdfasf",
-        n: 96
-    },
-    {
-        t: "x vmönöpwoı6-pğfş -*235*çda",
-        p: "ydfasdfasf",
-        n: 96
-    },
-    {
-        t: "x vmönöpwoı6-pğfş -*235*çda",
-        p: "ydfasdfasf",
-        n: 96
-    },
-    {
-        t: "x vmönöpwoı6-pğfş -*235*çda",
-        p: "ydfasdfasf",
-        n: 96
-    },
-    {
-        t: "x vmönöpwoı6-pğfş -*235*çda",
-        p: "ydfasdfasf",
-        n: 96
-    },
-    {
-        t: "x vmönöpwoı6-pğfş -*235*çda",
-        p: "ydfasdfasf",
-        n: 96
-    },
-    {
-        t: "x vmönöpwoı6-pğfş -*235*çda",
-        p: "ydfasdfasf",
-        n: 96
-    },
-    {
-        t: "x vmönöpwoı6-pğfş -*235*çda",
-        p: "ydfasdfasf",
-        n: 96
-    },
-    {
-        t: "x vmönöpwoı6-pğfş -*235*çda",
-        p: "ydfasdfasf",
-        n: 96
-    },
-    {
-        t: "x vmönöpwoı6-pğfş -*235*çda",
-        p: "ydfasdfasf",
-        n: 96
-    },
-    {
-        t: "x vmönöpwoı6-pğfş -*235*çda",
-        p: "ydfasdfasf",
-        n: 96
-    },
-    {
-        t: "x vmönöpwoı6-pğfş -*235*çda",
-        p: "ydfasdfasf",
-        n: 96
-    },
-    {
-        t: "x vmönöpwoı6-pğfş -*235*çda",
-        p: "ydfasdfasf",
-        n: 96
-    },
-    {
-        t: "x vmönöpwoı6-pğfş -*235*çda",
-        p: "ydfasdfasf",
-        n: 96
-    },
-    {
-        t: "x vmönöpwoı6-pğfş -*235*çda",
-        p: "ydfasdfasf",
-        n: 96
-    },
-    {
-        t: "x vmönöpwoı6-pğfş -*235*çda",
-        p: "ydfasdfasf",
-        n: 96
-    },
-    {
-        t: "x vmönöpwoı6-pğfş -*235*çda",
-        p: "ydfasdfasf",
-        n: 96
-    },
-    {
-        t: "x vmönöpwoı6-pğfş -*235*çda",
-        p: "ydfasdfasf",
-        n: 96
-    }
-];
-
-const Home = () => {
-    const {
-        colors
-    } = NCoreUIKitTheme.useContext();
-
-    const bottomSheetRef = useRef<IBottomSheetRef>(null);
-
-    const navigation = useNavigation<NativeStackNavigationProp<RootStackParamList>>();
-
-    const [
-        isCheckboxActive,
-        setIsCheckboxActive
-    ] = useState<"partially" | "checked" | null>("checked");
-
-    const [
-        isDialogActive,
-        setIsDialogActive
-    ] = useState(false);
-
-    const [
-        isRadioActive,
-        setIsRadioActive
-    ] = useState(false);
-
-    const [
-        isSwitchActive,
-        setIsSwitchActive
-    ] = useState(false);
-
-    return <PageContainer
-        scrollViewStyle={stylesheet.container}
-        isScrollable={true}
-        scrollViewProps={{
-            showsHorizontalScrollIndicator: false,
-            showsVerticalScrollIndicator: false,
-            contentContainerStyle: {
-                backgroundColor: colors.content.container.default,
-                ...stylesheet.contentContainer
-            }
-        }}
-        renderOverlays={() => {
-            return <Fragment>
-                <Dialog
-                    isVisible={isDialogActive}
-                    content="etgweı09gı9w0eg"
-                    title="Merhaba Dünya!"
-                    contentJustify="centered"
-                    modalProps={{
-                        isWorkWithPortal: false
-                    }}
-                    onOverlayPress={({
-                        closeAnimation
-                    }) => {
-                        closeAnimation(() => setIsDialogActive(false));
-                    }}
-                    variant="yes-no"
-                    secondaryButtonProps={{
-                        title: "sdfgsdg",
-                        onPress: () => {
-
-                        }
-                    }}
-                    primaryButtonProps={{
-                        onPress: ({
-                            closeAnimation
-                        }) => {
-                            closeAnimation(() => setIsDialogActive(false));
-                        }
-                    }}
-                />
-                <BottomSheet
-                    ref={bottomSheetRef}
-                    renderHeader={() => {
-                        return <View
-                            style={[
-                                {
-                                    backgroundColor: "blue",
-                                    padding: 20
-                                }
-                            ]}
-                        >
-                            <Text>Burası header.</Text>
-                        </View>;
-                    }}
-                    isCanFullScreenOnSwipe={true}
-                    isWorkWithPortal={false}
-                    snapPoint={300}
-                    key="ahmet"
-                >
-                    <Button
-                        title="Open Toast"
-                        variant="filled"
-                        type="warning"
-                        onPress={() => {
-                            NCoreUIKitToast.open({
-                                title: "sdgfsdgsdg",
-                                type: "danger"
-                            });
-                        }}
-                    />
-                    <Button
-                        onPress={() => {
-                            navigation.navigate("TestSubPage");
-                        }}
-                        title="Git."
-                    />
-                    {[
-                        0,
-                        1,
-                        2,
-                        3,
-                        4,
-                        5,
-                        6,
-                        7,
-                        8,
-                        9,
-                        10,
-                        11,
-                        12,
-                        13,
-                        14,
-                        15,
-                        16,
-                        17,
-                        18,
-                        19,
-                        20,
-                        21,
-                        22,
-                        23,
-                        24,
-                        25,
-                        26,
-                        27,
-                        28,
-                        29,
-                        30,
-                        31,
-                        32,
-                        33,
-                        34,
-                        35
-                    ].map((it) => {
-                        return <View
-                            key={`fds-${it}`}
-                            style={{
-                                backgroundColor: `rgb(${it * 10}, ${it > 30 ? it * 5 : "0"}, ${it > 20 ? it * 4 : "0"})`,
-                                height: 150
-                            }}
-                        />;
-                    })}
-                    <Text>Deneme 123</Text>
-                    <Text>Deneme 123</Text>
-                    <Text>Deneme 123</Text>
-                    <Text>Deneme 123</Text>
-                    <Text>Deneme 123</Text>
-                    <Text>Deneme 123</Text>
-                    <Text>Deneme 123</Text>
-                    <Text>Deneme 123</Text>
-                </BottomSheet>
-            </Fragment>;
-        }}
-    >
-        <Chip
-            spreadBehaviour="free"
-            title="test"
-            isLoading={false}
-            isDisabled={false}
-            icon={({
-                customColor,
-                style,
-                color,
-                size
-            }) => <HomeIcon
-                color={customColor ? customColor : colors.content.icon[color]}
-                size={size}
-                style={style}
-            />}
-        />
-        <Sticker
-            spreadBehaviour="free"
-            title="test"
-            icon={({
-                style,
-                color,
-                size
-            }) => <HomeIcon
-                color={colors.content.icon[color]}
-                size={size}
-                style={style}
-            />}
-        />
-        <StateCard
-            title="Deneme"
-            subTitle="Bu bir alt metindir ve uzun olması gerekmektedir. Ne kadar uzun olursa o kadar iyidir."
-            icon={({
-                color,
-                size
-            }) => <HomeIcon
-                color={colors.content.icon[color]}
-                size={size}
-            />}
-            action={{
-                title: "Me Action",
-                size: "small",
-                onPress: () => {
-
-                }
-            }}
-        />
-        <DateTimePicker
-            minDate={moment().subtract(2, "months").toDate()}
-            maxDate={moment().add(1, "months").toDate()}
-            isWorkWithRealtime={false}
-            spreadBehaviour="free"
-            isCleanEnabled={true}
-            variant="range"
-            initialDateRange={{
-                start: moment().subtract(2, "days").startOf("day").toDate(),
-                end: moment().add(6, "days").endOf("day").toDate()
-            }}
-            initialDate={new Date()}
-        />
-        <MarkdownViewer
-            content={`
-# Merhaba Furkan!.
-
-Nabersin ?
-
-<center>
-<link href="https://www.nibgat.com">
-## Deneme **title** 2
-</link>
-
-\`\`\`
-safasfasfasf
-\`\`\`
-</center>
-iyisindir **umarım.**
-
-\`\`\`
-Ahmet buraya gel.
-
-
-Geldin mi ?
-\`\`\`
-
-<<
-Burası alıntı metnidir.
->>
-
-* Merhaba __madd__e1.
-- Deneme madde2.
-
-[Alt text için deneme](https://static.vecteezy.com/system/resources/thumbnails/060/843/811/small/close-up-of-raindrops-on-leaves-hd-background-luxury-hd-wallpaper-image-trendy-background-illustration-free-photo.jpg)<100%x200>--cover--`}
-        />
-        <NotificationIndicator
-            type="danger"
-            title={53}
-        >
-            <Button
-                size="small"
-                icon={({
-                    color
-                }) => <HomeIcon
-                    color={colors.content.icon[color]}
-                />}
-                onPress={() => {
-
-                }}
-            />
-        </NotificationIndicator>
-        <Switch
-            spreadBehaviour="stretch"
-            isActive={isSwitchActive}
-            title="dsgojksdgpojk"
-            subTitle="SJFAJdfa"
-            isDisabled={false}
-            onPress={() => {
-                setIsSwitchActive(!isSwitchActive);
-            }}
-        />
-        <RowCard
-            title="Merhaba"
-            icon={({
-                color
-            }) => <HomeIcon
-                color={colors.content.icon[color]}
-            />}
-            rightIcon={({
-                color
-            }) => <ChevronRightIcon
-                color={colors.content.icon[color]}
-            />}
-        />
-        <RadioButton
-            isChecked={isRadioActive}
-            title="sadfasfsafasf"
-            isDisabled={false}
-            subTitle="asfgsaf"
-            onPress={() => {
-                setIsRadioActive(!isRadioActive);
-            }}
-        />
-        <CheckBox
-            isChecked={isCheckboxActive}
-            title="sadfasfsafasf"
-            isDisabled={false}
-            subTitle="asfgsaf"
-            onPress={() => {
-                setIsCheckboxActive(isCheckboxActive === "checked" ? null : isCheckboxActive === null ? "partially" : "checked");
-            }}
-        />
-        <TextAreaInput
-            isUpdateOnRealtime={true}
-            spreadBehaviour="stretch"
-            placeholder="efsdg"
-            maxLength={300}
-            title="Merhaba"
-            type="success"
-            isCleanEnabled={true}
-            icon={({
-                color
-            }) => <HomeIcon
-                color={colors.content.icon[color]}
-            />}
-        />
-        <SelectBox
-            keyExtractor={(data, index) => `${data.t}-${index}`}
-            titleExtractor={(data) => data.t}
-            initialSelectedItems={[{
-                __title: X[0]?.t as string,
-                __key: `${X[0]?.t}-0`
-            }]}
-            subTitle="Deneme Subtitle"
-            // isWorkWithRealtime={false}
-            isWorkWithRealtime={false}
-            spreadBehaviour="baseline"
-            isMultipleSelect={true}
-            isShowSubTitle={true}
-            hintText="Test deneme"
-            isCleanEnabled={true}
-            maxChoice={-1}
-            minChoice={0}
-            isSearchable={true}
-            title="Deneme Box"
-            isRequired={true}
-            data={X}
-            onMoreLoad={(props) => {
-                console.log("More Loaded:", props);
-            }}
-        />
-        <TextInput
-            variant="hidden"
-            placeholder="dsagdsag"
-        />
-        <Text>Version: v{getNCoreUIKitVersion()}</Text>
-        <Button
-            onPress={() => {
-                navigation.navigate("TestSubPage");
-            }}
-            title="Open Test Sub Page"
-            variant="filled"
-            spreadBehaviour="stretch"
-        />
-        <Button
-            onPress={() => {
-                bottomSheetRef.current?.open();
-            }}
-            type="success"
-            title="Open Local BottomSheet"
-            variant="filled"
-        />
-        <Button
-            onPress={() => {
-                NCoreUIKitBottomSheet.open({
-                    children: <View>
-                        <Text>Deneme 123</Text>
-                        <Text>Deneme 123</Text>
-                        <Text>Deneme 123</Text>
-                        <Text>Deneme 123</Text>
-                        <Text>Deneme 123</Text>
-                        <Text>Deneme 123</Text>
-                    </View>
-                });
-            }}
-            type="success"
-            title="Open BottomSheet"
-            variant="filled"
-        />
-        <Button
-            onPress={() => {
-                setIsDialogActive(!isDialogActive);
-            }}
-            type="neutral"
-            title="Open Local Dialog"
-            variant="filled"
-        />
-        <Button
-            title="Open Snackbar"
-            variant="filled"
-            type="danger"
-            onPress={() => {
-                NCoreUIKitSnackBar.open({
-                    title: "sdgdsgs",
-                    icon: ({
-                        color
-                    }) => <HomeIcon color={colors.content.icon[color ? color : "default"]}/>
-                });
-            }}
-        />
-        <Button
-            onPress={() => {
-                NCoreUIKitDialog.open({
-                    content: "etgweı09gı9w0eg",
-                    title: "Merhaba Dünya!",
-                    isVisible: true,
-                    onOverlayPress: ({
-                        closeAnimation
-                    }) => {
-                        closeAnimation();
-                    },
-                    variant: "info",
-                    secondaryButtonProps: {
-                        title: "sdfgsdg",
-                        onPress: () => {
-
-                        }
-                    },
-                    primaryButtonProps: {
-                        onPress: ({
-                            closeAnimation
-                        }) => {
-                            closeAnimation();
-                        }
-                    }
-                });
-            }}
-            type="neutral"
-            title="Open Dialog"
-            variant="filled"
-        />
-        <Button
-            title="Open Toast"
-            variant="filled"
-            type="warning"
-            onPress={() => {
-                NCoreUIKitToast.open({
-                    title: "sdgfsdgsdafs sdlşlgkdfşiklh",
-                    subTitle: "tr9uıdgfss 0dgklsd",
-                    isShowAction: true,
-                    icon: ({
-                        color
-                    }) => <HomeIcon color={colors.content.icon[color ? color : "default"]}/>
-                });
-            }}
-        />
-    </PageContainer>;
-};
-export default Home;

+ 0 - 14
example/web/src/pages/home/stylesheet.ts

@@ -1,14 +0,0 @@
-import {
-    StyleSheet
-} from "react-native";
-
-const stylesheet = StyleSheet.create({
-    container: {
-        flex: 1
-    },
-    contentContainer: {
-        justifyContent: "center",
-        alignItems: "center"
-    }
-});
-export default stylesheet;

+ 0 - 10
example/web/src/pages/testSubPage/stylesheet.ts

@@ -1,10 +0,0 @@
-import {
-    StyleSheet
-} from "react-native";
-
-const stylesheet = StyleSheet.create({
-    container: {
-        flex: 1
-    }
-});
-export default stylesheet;

+ 15 - 6
example/web/tsconfig.json

@@ -1,8 +1,17 @@
 {
-  "extends": "@react-native/typescript-config",
-  "compilerOptions": {
-    "types": ["jest"]
-  },
-  "include": ["**/*.ts", "**/*.tsx"],
-  "exclude": ["**/node_modules", "**/Pods"]
+    "extends": "../../tsconfig.json",
+    "compilerOptions": {
+        "types": [
+            "node"
+        ]
+    },
+    "include": [
+        "**/*.ts",
+        "**/*.tsx",
+        "../src/**/*"
+    ],
+    "exclude": [
+        "**/node_modules",
+        "**/Pods"
+    ]
 }

+ 30 - 15
example/web/webpack.config.js

@@ -3,24 +3,29 @@ const webpack = require("webpack");
 const HtmlWebpackPlugin = require("html-webpack-plugin");
 
 const appDirectory = path.resolve(__dirname, "./");
+const srcDirectory = path.resolve(__dirname, "../src");
 const rootDirectory = path.resolve(__dirname, "../../");
 
 const babelLoaderConfiguration = {
     test: /\.(tsx|ts|js|jsx)$/,
     include: [
-        path.resolve(appDirectory, "index.js"),
-        path.resolve(appDirectory, "App.tsx"),
-        path.resolve(appDirectory, "src"),
+        path.resolve(appDirectory, "index.ts"),
+        path.resolve(srcDirectory, "index.tsx"),
+        path.resolve(srcDirectory),
 
         path.resolve(rootDirectory, "src"),
 
-        path.resolve(appDirectory, "node_modules/@react-navigation/native-stack"),
-        path.resolve(appDirectory, "node_modules/@react-native/new-app-screen"),
-        path.resolve(appDirectory, "node_modules/@react-navigation/elements"),
-        path.resolve(appDirectory, "node_modules/@react-navigation/native"),
-        path.resolve(appDirectory, "node_modules/react-native-uncompiled"),
-        path.resolve(appDirectory, "node_modules/lucide-react-native"),
-        path.resolve(appDirectory, "node_modules/react-native")
+        path.resolve(rootDirectory, "node_modules/@react-navigation/native-stack"),
+        path.resolve(rootDirectory, "node_modules/@react-native/new-app-screen"),
+        path.resolve(rootDirectory, "node_modules/@react-navigation/elements"),
+        path.resolve(rootDirectory, "node_modules/@react-navigation/native"),
+        path.resolve(rootDirectory, "node_modules/react-native-uncompiled"),
+        path.resolve(rootDirectory, "node_modules/lucide-react-native"),
+        path.resolve(rootDirectory, "node_modules/react-native"),
+
+        path.resolve(rootDirectory, "node_modules/expo-font"),
+        path.resolve(rootDirectory, "node_modules/expo-modules-core"),
+        path.resolve(rootDirectory, "node_modules/expo-asset")
     ],
     use: {
         loader: "babel-loader",
@@ -50,7 +55,7 @@ const imageLoaderConfiguration = {
 
 module.exports = {
     entry: [
-        path.resolve(appDirectory, "index.js")
+        path.resolve(appDirectory, "index.ts")
     ],
     mode: "development",
     devtool: "source-map",
@@ -77,7 +82,7 @@ module.exports = {
             module: /@react-navigation/
         },
         {
-            module: /ncore-ui-kit-mobile/
+            module: /ncore-ui-kit/
         }
     ],
     module: {
@@ -87,7 +92,7 @@ module.exports = {
             {
                 test: /\.(js|mjs|jsx)$/,
                 include: [
-                    path.resolve(appDirectory, "node_modules/@react-navigation")
+                    path.resolve(rootDirectory, "node_modules/@react-navigation")
                 ],
                 type: "javascript/auto",
                 resolve: {
@@ -98,6 +103,13 @@ module.exports = {
                 test: /\.mjs$/,
                 include: /node_modules/,
                 type: "javascript/auto"
+            },
+            {
+                test: /\.(ttf|otf|eot|woff|woff2)$/,
+                type: "asset/resource",
+                generator: {
+                    filename: "../src/assets/fonts/[name][ext]"
+                }
             }
         ]
     },
@@ -108,12 +120,16 @@ module.exports = {
         }),
         new webpack.DefinePlugin({
             __DEV__: JSON.stringify(process.env.NODE_ENV !== "production"),
+
+            "process.env": JSON.stringify({}),
+            "process.env.NODE_ENV": JSON.stringify(process.env.NODE_ENV || "development")
         })
     ],
     resolve: {
+        symlinks: false,
         alias: {
             "react-native$": "react-native-web",
-            "ncore-ui-kit-mobile": path.resolve(rootDirectory, "src/index")
+            "ncore-ui-kit": path.resolve(rootDirectory, "src/index")
         },
         extensions: [
             ".web.tsx",
@@ -125,7 +141,6 @@ module.exports = {
             ".mjs"
         ],
         modules: [
-            path.resolve(appDirectory, "node_modules"),
             path.resolve(rootDirectory, "node_modules"),
             "node_modules"
         ]

+ 60 - 19
package.json

@@ -1,6 +1,6 @@
 {
-    "name": "ncore-ui-kit-mobile",
-    "version": "1.0.0-pre-alpha.23",
+    "name": "ncore-ui-kit",
+    "version": "1.0.0-pre-alpha.0",
     "description": "NİBGAT® | NCore - UI Kit for React-Native Mobile Apps.",
     "main": "./lib/module/index.js",
     "types": "./lib/typescript/src/index.d.ts",
@@ -32,8 +32,8 @@
         "!**/.*"
     ],
     "scripts": {
-        "example-mobile": "yarn workspace ncore-ui-kit-mobile-example-mobile",
-        "example-web": "yarn workspace ncore-ui-kit-mobile-example-web",
+        "example-mobile": "yarn workspace ncore-ui-kit-example-mobile",
+        "example-web": "yarn workspace ncore-ui-kit-example-web",
         "clean": "del-cli lib",
         "lint": "eslint . --ext .ts,.tsx --fix",
         "prepare": "bob build && copyfiles -u 1 \"src/variants/**/*.json\" lib/typescript/src/ && node version.mjs",
@@ -60,26 +60,51 @@
     ],
     "repository": {
         "type": "git",
-        "url": "git+https://git.nibgat.space/nibgat-community/ncore-ui-kit-mobile.git.git"
+        "url": "git+https://git.nibgat.space/nibgat-community/ncore-ui-kit.git.git"
     },
     "author": "nibgat <development@nibgat.com> (https://git.nibgat.space/nibgat-community)",
     "license": "MIT",
     "bugs": {
-        "url": "https://git.nibgat.space/nibgat-community/ncore-ui-kit-mobile.git/issues"
+        "url": "https://git.nibgat.space/nibgat-community/ncore-ui-kit.git/issues"
     },
-    "homepage": "https://git.nibgat.space/nibgat-community/ncore-ui-kit-mobile.git#readme",
+    "homepage": "https://git.nibgat.space/nibgat-community/ncore-ui-kit.git#readme",
     "publishConfig": {
         "registry": "https://registry.npmjs.org/"
     },
     "devDependencies": {
-        "@react-native/babel-preset": "0.83.0",
-        "@react-native/typescript-config": "^0.86.0",
+        "@babel/core": "7.25.2",
+        "@babel/plugin-proposal-class-properties": "7.18.6",
+        "@babel/plugin-transform-modules-commonjs": "7.28.6",
+        "@babel/plugin-transform-private-methods": "7.28.6",
+        "@babel/plugin-transform-private-property-in-object": "7.28.6",
+        "@babel/preset-env": "7.25.3",
+        "@babel/preset-typescript": "7.28.5",
+        "@babel/runtime": "7.25.0",
+        "@expo/metro-runtime": "56.0.15",
+        "@react-native-community/cli": "20.1.0",
+        "@react-native-community/cli-platform-android": "20.1.0",
+        "@react-native-community/cli-platform-ios": "20.1.0",
+        "@react-native/babel-preset": "0.85.3",
+        "@react-native/eslint-config": "0.85.3",
+        "@react-native/jest-preset": "0.85.3",
+        "@react-native/metro-config": "0.85.3",
+        "@react-native/new-app-screen": "0.85.3",
+        "@react-native/typescript-config": "0.85.3",
+        "@react-navigation/elements": "2.9.18",
+        "@react-navigation/native": "7.2.4",
+        "@react-navigation/native-stack": "7.15.1",
         "@release-it/conventional-changelog": "10.0.1",
         "@types/copyfiles": "2",
         "@types/eslint-plugin-jsx-a11y": "6",
-        "@types/react": "19.2.14",
+        "@types/jest": "29.5.13",
+        "@types/node": "25.9.3",
+        "@types/react": "19.2.0",
         "@types/react-native": "0.73.0",
-        "babel-plugin-module-resolver": "5.0.2",
+        "@types/react-test-renderer": "19.1.0",
+        "babel-loader": "10.1.1",
+        "babel-plugin-module-resolver": "5.0.3",
+        "babel-plugin-react-native-web": "0.21.2",
+        "babel-preset-expo": "56.0.15",
         "copyfiles": "2.4.1",
         "del-cli": "6.0.0",
         "eslint": "9.37.0",
@@ -91,18 +116,33 @@
         "eslint-plugin-react": "7.37.5",
         "eslint-plugin-react-hooks": "7.0.0",
         "eslint-plugin-react-native": "5.0.0",
+        "expo": "56.0.11",
+        "expo-font": "56.0.6",
+        "expo-status-bar": "56.0.4",
         "globals": "17.4.0",
+        "html-webpack-plugin": "5.6.7",
+        "jest": "29.6.3",
         "jsonc-eslint-parser": "2.4.1",
-        "react": "19.2.6",
-        "react-native": "0.83.2",
+        "prettier": "2.8.8",
+        "react": "19.2.3",
+        "react-dom": "19.2.3",
+        "react-native": "0.85.3",
         "react-native-builder-bob": "0.40.13",
+        "react-native-monorepo-config": "0.3.3",
+        "react-native-screens": "4.24.0",
+        "react-native-web": "0.21.2",
+        "react-test-renderer": "19.2.3",
         "release-it": "19.0.4",
         "turbo": "2.5.6",
         "typescript": "5.9.3",
-        "typescript-eslint": "8.46.1"
+        "typescript-eslint": "8.46.1",
+        "url-loader": "4.1.1",
+        "webpack": "5.107.1",
+        "webpack-cli": "7.0.2",
+        "webpack-dev-server": "5.2.4"
     },
     "peerDependencies": {
-        "lucide-react-native": ">= 0.577.0",
+        "lucide-react-native": ">= 1.16.0",
         "moment": "*",
         "ncore-context": ">= 1.0.5",
         "react": "*",
@@ -113,7 +153,8 @@
     },
     "workspaces": [
         "example/mobile",
-        "example/web"
+        "example/web",
+        "example/src"
     ],
     "packageManager": "yarn@4.11.0",
     "react-native-builder-bob": {
@@ -162,11 +203,11 @@
         "version": "0.57.2"
     },
     "dependencies": {
-        "lucide-react-native": "0.577.0",
+        "lucide-react-native": "1.16.0",
         "moment": "https://git.nibgat.space/nibgat-community/moment.git",
         "ncore-context": "1.0.5",
-        "react-native-safe-area-context": "5.7.0",
-        "react-native-svg": "15.15.3",
+        "react-native-safe-area-context": "5.5.2",
+        "react-native-svg": "15.15.5",
         "rrule": "https://git.nibgat.space/nibgat-community/rrule.git"
     }
 }

+ 7 - 2
tsconfig.json

@@ -2,12 +2,17 @@
     "compilerOptions": {
         "rootDir": ".",
         "paths": {
-            "ncore-ui-kit-mobile": [
+            "ncore-ui-kit": [
                 "./src/index"
             ]
         },
+        "types": [
+            "node"
+        ],
         "allowUnreachableCode": false,
         "allowUnusedLabels": false,
+        "composite": true,
+        "declaration": true,
         "customConditions": [
             "react-native-strict-api"
         ],
@@ -19,7 +24,7 @@
         ],
         "module": "ESNext",
         "moduleResolution": "bundler",
-        "noEmit": true,
+        "noEmit": false,
         "noFallthroughCasesInSwitch": true,
         "noImplicitReturns": true,
         "noImplicitUseStrict": false,

File diff ditekan karena terlalu besar
+ 197 - 440
yarn.lock


Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini