jac-client 0.2.8__tar.gz → 0.2.10__tar.gz
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.
- {jac_client-0.2.8 → jac_client-0.2.10}/PKG-INFO +4 -4
- {jac_client-0.2.8 → jac_client-0.2.10}/README.md +2 -2
- jac_client-0.2.8/jac_client/examples/all-in-one/app.jac → jac_client-0.2.10/jac_client/examples/all-in-one/main.jac +5 -5
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/all-in-one/pages/BudgetPlanner.jac +8 -1
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/all-in-one/pages/FeaturesTest.jac +16 -1
- jac_client-0.2.8/jac_client/examples/all-in-one/pages/FeaturesTest.cl.jac → jac_client-0.2.10/jac_client/examples/all-in-one/pages/features_test_ui.cl.jac +11 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/all-in-one/pages/nestedDemo.jac +1 -1
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/all-in-one/pages/notFound.jac +2 -7
- jac_client-0.2.10/jac_client/plugin/cli.jac +584 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/plugin/client.jac +25 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/plugin/client_runtime.cl.jac +5 -1
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/plugin/impl/client.impl.jac +96 -55
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/plugin/impl/client_runtime.impl.jac +154 -0
- jac_client-0.2.10/jac_client/plugin/plugin_config.jac +423 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/plugin/src/config_loader.jac +1 -0
- jac_client-0.2.10/jac_client/plugin/src/desktop_config.jac +31 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/plugin/src/impl/compiler.impl.jac +1 -1
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/plugin/src/impl/config_loader.impl.jac +8 -0
- jac_client-0.2.10/jac_client/plugin/src/impl/desktop_config.impl.jac +191 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/plugin/src/impl/vite_bundler.impl.jac +97 -16
- jac_client-0.2.10/jac_client/plugin/src/targets/desktop/sidecar/main.py +144 -0
- jac_client-0.2.10/jac_client/plugin/src/targets/desktop_target.jac +37 -0
- jac_client-0.2.10/jac_client/plugin/src/targets/impl/desktop_target.impl.jac +2334 -0
- jac_client-0.2.10/jac_client/plugin/src/targets/impl/registry.impl.jac +64 -0
- jac_client-0.2.10/jac_client/plugin/src/targets/impl/web_target.impl.jac +157 -0
- jac_client-0.2.10/jac_client/plugin/src/targets/register.jac +21 -0
- jac_client-0.2.10/jac_client/plugin/src/targets/registry.jac +87 -0
- jac_client-0.2.10/jac_client/plugin/src/targets/web_target.jac +35 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/plugin/src/vite_bundler.jac +6 -0
- jac_client-0.2.10/jac_client/plugin/utils/__init__.jac +1 -0
- jac_client-0.2.10/jac_client/plugin/utils/impl/node_installer.impl.jac +249 -0
- jac_client-0.2.10/jac_client/plugin/utils/node_installer.jac +41 -0
- jac_client-0.2.10/jac_client/templates/client.jacpack +72 -0
- jac_client-0.2.10/jac_client/templates/fullstack.jacpack +61 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/tests/conftest.py +48 -7
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/tests/test_cli.py +184 -70
- jac_client-0.2.10/jac_client/tests/test_e2e.py +232 -0
- jac_client-0.2.10/jac_client/tests/test_helpers.py +65 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/tests/test_it.py +91 -135
- jac_client-0.2.10/jac_client/tests/test_it_desktop.py +891 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client.egg-info/PKG-INFO +4 -4
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client.egg-info/SOURCES.txt +40 -22
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client.egg-info/requires.txt +1 -1
- {jac_client-0.2.8 → jac_client-0.2.10}/pyproject.toml +3 -2
- jac_client-0.2.8/jac_client/plugin/cli.jac +0 -504
- jac_client-0.2.8/jac_client/plugin/plugin_config.jac +0 -195
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/all-in-one/assets/workers/worker.py +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/all-in-one/button.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/all-in-one/components/CategoryFilter.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/all-in-one/components/Header.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/all-in-one/components/ProfitOverview.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/all-in-one/components/Summary.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/all-in-one/components/TransactionForm.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/all-in-one/components/TransactionItem.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/all-in-one/components/TransactionList.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/all-in-one/components/button.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/all-in-one/components/navigation.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/all-in-one/constants/categories.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/all-in-one/constants/clients.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/all-in-one/context/BudgetContext.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/all-in-one/hooks/useBudget.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/all-in-one/hooks/useLocalStorage.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/all-in-one/pages/LandingPage.jac +0 -0
- /jac_client-0.2.8/jac_client/examples/all-in-one/pages/BudgetPlanner.cl.jac → /jac_client-0.2.10/jac_client/examples/all-in-one/pages/budget_planner_ui.cl.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/all-in-one/pages/loginPage.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/all-in-one/pages/signupPage.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/all-in-one/utils/formatters.jac +0 -0
- /jac_client-0.2.8/jac_client/examples/asset-serving/css-with-image/src/app.jac → /jac_client-0.2.10/jac_client/examples/asset-serving/css-with-image/main.jac +0 -0
- /jac_client-0.2.8/jac_client/examples/asset-serving/image-asset/src/app.jac → /jac_client-0.2.10/jac_client/examples/asset-serving/image-asset/main.jac +0 -0
- /jac_client-0.2.8/jac_client/examples/asset-serving/import-alias/src/app.jac → /jac_client-0.2.10/jac_client/examples/asset-serving/import-alias/main.jac +0 -0
- /jac_client-0.2.8/jac_client/examples/basic/src/app.jac → /jac_client-0.2.10/jac_client/examples/basic/main.jac +0 -0
- /jac_client-0.2.8/jac_client/examples/basic-auth/src/app.jac → /jac_client-0.2.10/jac_client/examples/basic-auth/main.jac +0 -0
- /jac_client-0.2.8/jac_client/examples/basic-auth-with-router/src/app.jac → /jac_client-0.2.10/jac_client/examples/basic-auth-with-router/main.jac +0 -0
- /jac_client-0.2.8/jac_client/examples/basic-full-stack/src/app.jac → /jac_client-0.2.10/jac_client/examples/basic-full-stack/main.jac +0 -0
- /jac_client-0.2.8/jac_client/examples/css-styling/js-styling/src/app.jac → /jac_client-0.2.10/jac_client/examples/css-styling/js-styling/main.jac +0 -0
- /jac_client-0.2.8/jac_client/examples/css-styling/material-ui/src/app.jac → /jac_client-0.2.10/jac_client/examples/css-styling/material-ui/main.jac +0 -0
- /jac_client-0.2.8/jac_client/examples/css-styling/pure-css/src/app.jac → /jac_client-0.2.10/jac_client/examples/css-styling/pure-css/main.jac +0 -0
- /jac_client-0.2.8/jac_client/examples/css-styling/sass-example/src/app.jac → /jac_client-0.2.10/jac_client/examples/css-styling/sass-example/main.jac +0 -0
- /jac_client-0.2.8/jac_client/examples/css-styling/styled-components/src/app.jac → /jac_client-0.2.10/jac_client/examples/css-styling/styled-components/main.jac +0 -0
- /jac_client-0.2.8/jac_client/examples/css-styling/tailwind-example/src/app.jac → /jac_client-0.2.10/jac_client/examples/css-styling/tailwind-example/main.jac +0 -0
- /jac_client-0.2.8/jac_client/examples/full-stack-with-auth/src/app.jac → /jac_client-0.2.10/jac_client/examples/full-stack-with-auth/main.jac +0 -0
- /jac_client-0.2.8/jac_client/examples/little-x/src/app.jac → /jac_client-0.2.10/jac_client/examples/little-x/main.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/little-x/src/submit-button.jac +0 -0
- /jac_client-0.2.8/jac_client/examples/nested-folders/nested-advance/src/app.jac → /jac_client-0.2.10/jac_client/examples/nested-folders/nested-advance/main.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/nested-folders/nested-advance/src/ButtonRoot.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/nested-folders/nested-advance/src/level1/ButtonSecondL.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/nested-folders/nested-advance/src/level1/Card.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/nested-folders/nested-advance/src/level1/level2/ButtonThirdL.jac +0 -0
- /jac_client-0.2.8/jac_client/examples/nested-folders/nested-basic/src/app.jac → /jac_client-0.2.10/jac_client/examples/nested-folders/nested-basic/main.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/nested-folders/nested-basic/src/button.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/nested-folders/nested-basic/src/components/button.jac +0 -0
- /jac_client-0.2.8/jac_client/examples/ts-support/src/app.jac → /jac_client-0.2.10/jac_client/examples/ts-support/main.jac +0 -0
- /jac_client-0.2.8/jac_client/examples/with-router/src/app.jac → /jac_client-0.2.10/jac_client/examples/with-router/main.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/plugin/impl/vite_client_bundle.impl.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/plugin/src/__init__.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/plugin/src/asset_processor.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/plugin/src/babel_processor.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/plugin/src/compiler.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/plugin/src/impl/asset_processor.impl.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/plugin/src/impl/babel_processor.impl.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/plugin/src/impl/import_processor.impl.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/plugin/src/impl/jac_to_js.impl.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/plugin/src/impl/package_installer.impl.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/plugin/src/import_processor.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/plugin/src/jac_to_js.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/plugin/src/package_installer.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/plugin/vite_client_bundle.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/tests/__init__.py +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/tests/fixtures/basic-app/app.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/tests/fixtures/cl_file/app.cl.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/tests/fixtures/cl_file/app.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/tests/fixtures/client_app_with_antd/app.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/tests/fixtures/js_import/app.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/tests/fixtures/relative_import/app.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/tests/fixtures/relative_import/button.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/tests/fixtures/spawn_test/app.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/tests/fixtures/test_fragments_spread/app.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client/tests/fixtures/with-ts/app.jac +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client.egg-info/dependency_links.txt +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client.egg-info/entry_points.txt +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/jac_client.egg-info/top_level.txt +0 -0
- {jac_client-0.2.8 → jac_client-0.2.10}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: jac-client
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.10
|
|
4
4
|
Summary: Build full-stack web applications with Jac - one language for frontend and backend.
|
|
5
5
|
Author-email: Jason Mars <jason@mars.ninja>
|
|
6
6
|
Maintainer-email: Jason Mars <jason@mars.ninja>
|
|
@@ -11,7 +11,7 @@ Project-URL: Documentation, https://jac-lang.org
|
|
|
11
11
|
Keywords: jac,jaclang,jaseci,frontend,full-stack,web-development
|
|
12
12
|
Requires-Python: >=3.12
|
|
13
13
|
Description-Content-Type: text/markdown
|
|
14
|
-
Requires-Dist: jaclang
|
|
14
|
+
Requires-Dist: jaclang>=0.9.10
|
|
15
15
|
Provides-Extra: dev
|
|
16
16
|
Requires-Dist: python-dotenv==1.0.1; extra == "dev"
|
|
17
17
|
Requires-Dist: pytest==8.3.5; extra == "dev"
|
|
@@ -47,7 +47,7 @@ pip install jac-client
|
|
|
47
47
|
### Create a New App
|
|
48
48
|
|
|
49
49
|
```bash
|
|
50
|
-
jac create --
|
|
50
|
+
jac create --use client my-app
|
|
51
51
|
cd my-app
|
|
52
52
|
jac start src/app.jac
|
|
53
53
|
```
|
|
@@ -56,7 +56,7 @@ Visit `http://localhost:8000` to see your app! (The `app` component is served at
|
|
|
56
56
|
|
|
57
57
|
You can also access the app at `http://localhost:8000/cl/app`.
|
|
58
58
|
|
|
59
|
-
> **Note**: The `--
|
|
59
|
+
> **Note**: The `--npm` flag creates a client-side project with an organized folder structure. Without `--npm`, `jac create` creates a standard Jac project.
|
|
60
60
|
|
|
61
61
|
---
|
|
62
62
|
|
|
@@ -29,7 +29,7 @@ pip install jac-client
|
|
|
29
29
|
### Create a New App
|
|
30
30
|
|
|
31
31
|
```bash
|
|
32
|
-
jac create --
|
|
32
|
+
jac create --use client my-app
|
|
33
33
|
cd my-app
|
|
34
34
|
jac start src/app.jac
|
|
35
35
|
```
|
|
@@ -38,7 +38,7 @@ Visit `http://localhost:8000` to see your app! (The `app` component is served at
|
|
|
38
38
|
|
|
39
39
|
You can also access the app at `http://localhost:8000/cl/app`.
|
|
40
40
|
|
|
41
|
-
> **Note**: The `--
|
|
41
|
+
> **Note**: The `--npm` flag creates a client-side project with an organized folder structure. Without `--npm`, `jac create` creates a standard Jac project.
|
|
42
42
|
|
|
43
43
|
---
|
|
44
44
|
|
|
@@ -8,7 +8,7 @@ node Todo {
|
|
|
8
8
|
done: bool = False;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
walker create_todo {
|
|
11
|
+
walker : pub create_todo {
|
|
12
12
|
has text: str;
|
|
13
13
|
|
|
14
14
|
can create with `root entry {
|
|
@@ -17,13 +17,13 @@ walker create_todo {
|
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
walker ping_server {
|
|
20
|
+
walker : pub ping_server {
|
|
21
21
|
can ping with `root entry {
|
|
22
22
|
report "pong from backend!" ;
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
walker get_server_message {
|
|
26
|
+
walker : pub get_server_message {
|
|
27
27
|
can info with `root entry {
|
|
28
28
|
report "hello from a basic walker!" ;
|
|
29
29
|
}
|
|
@@ -35,7 +35,7 @@ walker get_server_message {
|
|
|
35
35
|
# This file is intentionally kept empty to demonstrate the separation of concerns
|
|
36
36
|
# where UI logic resides in .cl.jac files and backend walker logic in app.jac
|
|
37
37
|
|
|
38
|
-
# All walker implementations for this feature are in
|
|
38
|
+
# All walker implementations for this feature are in main.jac
|
|
39
39
|
# This demonstrates that you can have separate .jac files for different purposes
|
|
40
40
|
# Features Test - Backend Walkers
|
|
41
41
|
# This file demonstrates walker functionality for testing various JAC features
|
|
@@ -174,7 +174,7 @@ cl import from "@jac-client/utils" {
|
|
|
174
174
|
}
|
|
175
175
|
|
|
176
176
|
# Pure CSS + asset-in-CSS example
|
|
177
|
-
cl import ".styles.css";
|
|
177
|
+
cl import ".styles/styles.css";
|
|
178
178
|
|
|
179
179
|
# Login Page
|
|
180
180
|
cl import from .pages.loginPage { LoginPage }
|
{jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/all-in-one/pages/BudgetPlanner.jac
RENAMED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# This file is intentionally kept empty to demonstrate the separation of concerns
|
|
3
3
|
# where UI logic resides in .cl.jac files and backend walker logic in app.jac
|
|
4
4
|
|
|
5
|
-
# All walker implementations for this feature are in
|
|
5
|
+
# All walker implementations for this feature are in main.jac
|
|
6
6
|
# This demonstrates that you can have separate .jac files for different purposes
|
|
7
7
|
# Features Test - Backend Walkers
|
|
8
8
|
# This file demonstrates walker functionality for testing various JAC features
|
|
@@ -124,3 +124,10 @@ walker process_complex_data {
|
|
|
124
124
|
report result;
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
|
+
|
|
128
|
+
# Re-export client components from the standalone client module
|
|
129
|
+
cl {
|
|
130
|
+
import from .budget_planner_ui { BudgetPlanner as BudgetPlannerUI }
|
|
131
|
+
|
|
132
|
+
def:pub BudgetPlanner -> any { return <BudgetPlannerUI />; }
|
|
133
|
+
}
|
{jac_client-0.2.8 → jac_client-0.2.10}/jac_client/examples/all-in-one/pages/FeaturesTest.jac
RENAMED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# This file is intentionally kept empty to demonstrate the separation of concerns
|
|
3
3
|
# where UI logic resides in .cl.jac files and backend walker logic in app.jac
|
|
4
4
|
|
|
5
|
-
# All walker implementations for this feature are in
|
|
5
|
+
# All walker implementations for this feature are in main.jac
|
|
6
6
|
# This demonstrates that you can have separate .jac files for different purposes
|
|
7
7
|
# Features Test - Backend Walkers
|
|
8
8
|
# This file demonstrates walker functionality for testing various JAC features
|
|
@@ -124,3 +124,18 @@ walker process_complex_data {
|
|
|
124
124
|
report result;
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
|
+
|
|
128
|
+
# Re-export client components from the standalone client module
|
|
129
|
+
cl {
|
|
130
|
+
import from .features_test_ui {
|
|
131
|
+
FeaturesTest as FeaturesTestUI,
|
|
132
|
+
TestButton as TestButtonUI,
|
|
133
|
+
TestCard as TestCardUI,
|
|
134
|
+
ResultDisplay as ResultDisplayUI
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
def:pub FeaturesTest -> any { return <FeaturesTestUI />; }
|
|
138
|
+
def:pub TestButton(text: str, onClick: any, variant: str) -> any { return <TestButtonUI text={text} onClick={onClick} variant={variant} />; }
|
|
139
|
+
def:pub TestCard(title: str, children: any, color: str) -> any { return <TestCardUI title={title} children={children} color={color} />; }
|
|
140
|
+
def:pub ResultDisplay(data: any, label: str) -> any { return <ResultDisplayUI data={data} label={label} />; }
|
|
141
|
+
}
|
|
@@ -14,6 +14,17 @@ import from ..utils.helpers { generateId, calculatePercentage, sumBy }
|
|
|
14
14
|
# # Import from other JAC files
|
|
15
15
|
import from ..utils.formatters { formatCurrency }
|
|
16
16
|
|
|
17
|
+
# Import walkers from server module
|
|
18
|
+
sv import from .FeaturesTest {
|
|
19
|
+
create_test_data,
|
|
20
|
+
read_test_data,
|
|
21
|
+
update_test_data,
|
|
22
|
+
delete_test_data,
|
|
23
|
+
test_string_methods,
|
|
24
|
+
test_list_operations,
|
|
25
|
+
process_complex_data
|
|
26
|
+
}
|
|
27
|
+
|
|
17
28
|
# ============================================================================
|
|
18
29
|
# REUSABLE COMPONENTS WITH PROPS
|
|
19
30
|
# ============================================================================
|
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
cl import from "@jac-client/utils" {
|
|
2
2
|
Link
|
|
3
3
|
}
|
|
4
|
+
cl import "..styles/notFoundPage/NotFoundstyle.css";
|
|
4
5
|
cl {
|
|
5
6
|
def:pub NotFound -> any {
|
|
6
|
-
return <div
|
|
7
|
-
style={{
|
|
8
|
-
"padding": "2rem",
|
|
9
|
-
"textAlign": "center",
|
|
10
|
-
"fontFamily": "system-ui, -apple-system, sans-serif"
|
|
11
|
-
}}
|
|
12
|
-
>
|
|
7
|
+
return <div className="not-found-container">
|
|
13
8
|
<h1>
|
|
14
9
|
🔍 404 - Page Not Found
|
|
15
10
|
</h1>
|