jac-client 0.2.3__py3-none-any.whl → 0.2.8__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. jac_client/examples/all-in-one/app.jac +494 -347
  2. jac_client/examples/all-in-one/assets/workers/worker.py +5 -0
  3. jac_client/examples/all-in-one/button.jac +1 -1
  4. jac_client/examples/all-in-one/components/CategoryFilter.jac +35 -0
  5. jac_client/examples/all-in-one/components/Header.jac +13 -0
  6. jac_client/examples/all-in-one/components/ProfitOverview.jac +50 -0
  7. jac_client/examples/all-in-one/components/Summary.jac +53 -0
  8. jac_client/examples/all-in-one/components/TransactionForm.jac +158 -0
  9. jac_client/examples/all-in-one/components/TransactionItem.jac +55 -0
  10. jac_client/examples/all-in-one/components/TransactionList.jac +37 -0
  11. jac_client/examples/all-in-one/components/button.jac +1 -1
  12. jac_client/examples/all-in-one/components/navigation.jac +132 -0
  13. jac_client/examples/all-in-one/constants/categories.jac +37 -0
  14. jac_client/examples/all-in-one/constants/clients.jac +13 -0
  15. jac_client/examples/all-in-one/context/BudgetContext.jac +28 -0
  16. jac_client/examples/all-in-one/hooks/useBudget.jac +116 -0
  17. jac_client/examples/all-in-one/hooks/useLocalStorage.jac +36 -0
  18. jac_client/examples/all-in-one/pages/BudgetPlanner.cl.jac +70 -0
  19. jac_client/examples/all-in-one/pages/BudgetPlanner.jac +126 -0
  20. jac_client/examples/all-in-one/pages/FeaturesTest.cl.jac +552 -0
  21. jac_client/examples/all-in-one/pages/FeaturesTest.jac +126 -0
  22. jac_client/examples/all-in-one/pages/LandingPage.jac +101 -0
  23. jac_client/examples/all-in-one/pages/loginPage.jac +132 -0
  24. jac_client/examples/all-in-one/pages/nestedDemo.jac +61 -0
  25. jac_client/examples/all-in-one/pages/notFound.jac +24 -0
  26. jac_client/examples/all-in-one/pages/signupPage.jac +133 -0
  27. jac_client/examples/all-in-one/utils/formatters.jac +52 -0
  28. jac_client/examples/asset-serving/css-with-image/{app.jac → src/app.jac} +4 -4
  29. jac_client/examples/asset-serving/image-asset/{app.jac → src/app.jac} +4 -4
  30. jac_client/examples/asset-serving/import-alias/{app.jac → src/app.jac} +5 -5
  31. jac_client/examples/basic/{app.jac → src/app.jac} +4 -4
  32. jac_client/examples/basic-auth/src/app.jac +371 -0
  33. jac_client/examples/basic-auth-with-router/{app.jac → src/app.jac} +28 -28
  34. jac_client/examples/basic-full-stack/{app.jac → src/app.jac} +166 -127
  35. jac_client/examples/css-styling/js-styling/{app.jac → src/app.jac} +7 -7
  36. jac_client/examples/css-styling/material-ui/{app.jac → src/app.jac} +6 -6
  37. jac_client/examples/css-styling/pure-css/{app.jac → src/app.jac} +7 -7
  38. jac_client/examples/css-styling/sass-example/{app.jac → src/app.jac} +7 -7
  39. jac_client/examples/css-styling/styled-components/{app.jac → src/app.jac} +6 -6
  40. jac_client/examples/css-styling/tailwind-example/{app.jac → src/app.jac} +7 -7
  41. jac_client/examples/full-stack-with-auth/{app.jac → src/app.jac} +47 -47
  42. jac_client/examples/little-x/{app.jac → src/app.jac} +27 -32
  43. jac_client/examples/little-x/src/submit-button.jac +16 -0
  44. jac_client/examples/nested-folders/nested-advance/{ButtonRoot.jac → src/ButtonRoot.jac} +1 -1
  45. jac_client/examples/nested-folders/nested-advance/{app.jac → src/app.jac} +1 -1
  46. jac_client/examples/nested-folders/nested-advance/{level1 → src/level1}/ButtonSecondL.jac +1 -1
  47. jac_client/examples/nested-folders/nested-advance/{level1 → src/level1}/Card.jac +1 -1
  48. jac_client/examples/nested-folders/nested-advance/{level1 → src/level1}/level2/ButtonThirdL.jac +1 -1
  49. jac_client/examples/nested-folders/nested-basic/{app.jac → src/app.jac} +2 -2
  50. jac_client/examples/nested-folders/nested-basic/{button.jac → src/button.jac} +1 -1
  51. jac_client/examples/nested-folders/nested-basic/{components → src/components}/button.jac +1 -1
  52. jac_client/examples/ts-support/src/app.jac +35 -0
  53. jac_client/examples/with-router/{app.jac → src/app.jac} +15 -15
  54. jac_client/plugin/cli.jac +504 -0
  55. jac_client/plugin/client.jac +45 -0
  56. jac_client/plugin/client_runtime.cl.jac +42 -0
  57. jac_client/plugin/impl/client.impl.jac +193 -0
  58. jac_client/plugin/impl/client_runtime.impl.jac +195 -0
  59. jac_client/plugin/impl/vite_client_bundle.impl.jac +72 -0
  60. jac_client/plugin/plugin_config.jac +195 -0
  61. jac_client/plugin/src/__init__.jac +20 -0
  62. jac_client/plugin/src/asset_processor.jac +33 -0
  63. jac_client/plugin/src/babel_processor.jac +18 -0
  64. jac_client/plugin/src/compiler.jac +67 -0
  65. jac_client/plugin/src/config_loader.jac +32 -0
  66. jac_client/plugin/src/impl/asset_processor.impl.jac +127 -0
  67. jac_client/plugin/src/impl/babel_processor.impl.jac +89 -0
  68. jac_client/plugin/src/impl/compiler.impl.jac +288 -0
  69. jac_client/plugin/src/impl/config_loader.impl.jac +119 -0
  70. jac_client/plugin/src/impl/import_processor.impl.jac +33 -0
  71. jac_client/plugin/src/impl/jac_to_js.impl.jac +41 -0
  72. jac_client/plugin/src/impl/package_installer.impl.jac +105 -0
  73. jac_client/plugin/src/impl/vite_bundler.impl.jac +626 -0
  74. jac_client/plugin/src/import_processor.jac +19 -0
  75. jac_client/plugin/src/jac_to_js.jac +35 -0
  76. jac_client/plugin/src/package_installer.jac +26 -0
  77. jac_client/plugin/src/vite_bundler.jac +44 -0
  78. jac_client/plugin/vite_client_bundle.jac +31 -0
  79. jac_client/tests/conftest.py +283 -0
  80. jac_client/tests/fixtures/basic-app/app.jac +2 -2
  81. jac_client/tests/fixtures/cl_file/app.cl.jac +2 -2
  82. jac_client/tests/fixtures/client_app_with_antd/app.jac +1 -1
  83. jac_client/tests/fixtures/js_import/app.jac +5 -5
  84. jac_client/tests/fixtures/spawn_test/app.jac +15 -18
  85. jac_client/tests/fixtures/with-ts/app.jac +35 -0
  86. jac_client/tests/test_cli.py +811 -0
  87. jac_client/tests/test_it.py +592 -97
  88. {jac_client-0.2.3.dist-info → jac_client-0.2.8.dist-info}/METADATA +41 -34
  89. jac_client-0.2.8.dist-info/RECORD +97 -0
  90. {jac_client-0.2.3.dist-info → jac_client-0.2.8.dist-info}/WHEEL +2 -1
  91. jac_client-0.2.8.dist-info/entry_points.txt +4 -0
  92. jac_client-0.2.8.dist-info/top_level.txt +1 -0
  93. jac_client/docs/README.md +0 -689
  94. jac_client/docs/advanced-state.md +0 -1265
  95. jac_client/docs/asset-serving/intro.md +0 -209
  96. jac_client/docs/assets/pipe_line-v2.svg +0 -32
  97. jac_client/docs/assets/pipe_line.png +0 -0
  98. jac_client/docs/file-system/app.jac.md +0 -121
  99. jac_client/docs/file-system/backend-frontend.md +0 -217
  100. jac_client/docs/file-system/intro.md +0 -72
  101. jac_client/docs/file-system/nested-imports.md +0 -348
  102. jac_client/docs/guide-example/intro.md +0 -115
  103. jac_client/docs/guide-example/step-01-setup.md +0 -270
  104. jac_client/docs/guide-example/step-02-components.md +0 -416
  105. jac_client/docs/guide-example/step-03-styling.md +0 -478
  106. jac_client/docs/guide-example/step-04-todo-ui.md +0 -477
  107. jac_client/docs/guide-example/step-05-local-state.md +0 -530
  108. jac_client/docs/guide-example/step-06-events.md +0 -749
  109. jac_client/docs/guide-example/step-07-effects.md +0 -468
  110. jac_client/docs/guide-example/step-08-walkers.md +0 -534
  111. jac_client/docs/guide-example/step-09-authentication.md +0 -586
  112. jac_client/docs/guide-example/step-10-routing.md +0 -539
  113. jac_client/docs/guide-example/step-11-final.md +0 -963
  114. jac_client/docs/imports.md +0 -1141
  115. jac_client/docs/lifecycle-hooks.md +0 -773
  116. jac_client/docs/routing.md +0 -659
  117. jac_client/docs/styling/intro.md +0 -249
  118. jac_client/docs/styling/js-styling.md +0 -367
  119. jac_client/docs/styling/material-ui.md +0 -341
  120. jac_client/docs/styling/pure-css.md +0 -299
  121. jac_client/docs/styling/sass.md +0 -403
  122. jac_client/docs/styling/styled-components.md +0 -395
  123. jac_client/docs/styling/tailwind.md +0 -298
  124. jac_client/examples/all-in-one/.babelrc +0 -9
  125. jac_client/examples/all-in-one/README.md +0 -16
  126. jac_client/examples/all-in-one/assets/burger.png +0 -0
  127. jac_client/examples/all-in-one/package.json +0 -29
  128. jac_client/examples/all-in-one/styles.css +0 -26
  129. jac_client/examples/all-in-one/vite.config.js +0 -28
  130. jac_client/examples/asset-serving/css-with-image/.babelrc +0 -9
  131. jac_client/examples/asset-serving/css-with-image/README.md +0 -91
  132. jac_client/examples/asset-serving/css-with-image/assets/burger.png +0 -0
  133. jac_client/examples/asset-serving/css-with-image/package.json +0 -28
  134. jac_client/examples/asset-serving/css-with-image/styles.css +0 -26
  135. jac_client/examples/asset-serving/css-with-image/vite.config.js +0 -28
  136. jac_client/examples/asset-serving/image-asset/.babelrc +0 -9
  137. jac_client/examples/asset-serving/image-asset/README.md +0 -119
  138. jac_client/examples/asset-serving/image-asset/assets/burger.png +0 -0
  139. jac_client/examples/asset-serving/image-asset/package.json +0 -28
  140. jac_client/examples/asset-serving/image-asset/styles.css +0 -26
  141. jac_client/examples/asset-serving/image-asset/vite.config.js +0 -28
  142. jac_client/examples/asset-serving/import-alias/.babelrc +0 -9
  143. jac_client/examples/asset-serving/import-alias/README.md +0 -83
  144. jac_client/examples/asset-serving/import-alias/assets/burger.png +0 -0
  145. jac_client/examples/asset-serving/import-alias/package.json +0 -28
  146. jac_client/examples/asset-serving/import-alias/vite.config.js +0 -28
  147. jac_client/examples/basic/.babelrc +0 -9
  148. jac_client/examples/basic/README.md +0 -16
  149. jac_client/examples/basic/package.json +0 -27
  150. jac_client/examples/basic/vite.config.js +0 -27
  151. jac_client/examples/basic-auth/.babelrc +0 -9
  152. jac_client/examples/basic-auth/README.md +0 -16
  153. jac_client/examples/basic-auth/app.jac +0 -308
  154. jac_client/examples/basic-auth/package.json +0 -27
  155. jac_client/examples/basic-auth/vite.config.js +0 -27
  156. jac_client/examples/basic-auth-with-router/.babelrc +0 -9
  157. jac_client/examples/basic-auth-with-router/README.md +0 -60
  158. jac_client/examples/basic-auth-with-router/package.json +0 -28
  159. jac_client/examples/basic-auth-with-router/vite.config.js +0 -27
  160. jac_client/examples/basic-full-stack/.babelrc +0 -9
  161. jac_client/examples/basic-full-stack/README.md +0 -18
  162. jac_client/examples/basic-full-stack/package.json +0 -28
  163. jac_client/examples/basic-full-stack/vite.config.js +0 -27
  164. jac_client/examples/css-styling/js-styling/.babelrc +0 -9
  165. jac_client/examples/css-styling/js-styling/README.md +0 -183
  166. jac_client/examples/css-styling/js-styling/package.json +0 -28
  167. jac_client/examples/css-styling/js-styling/styles.js +0 -100
  168. jac_client/examples/css-styling/js-styling/vite.config.js +0 -27
  169. jac_client/examples/css-styling/material-ui/.babelrc +0 -9
  170. jac_client/examples/css-styling/material-ui/README.md +0 -16
  171. jac_client/examples/css-styling/material-ui/package.json +0 -32
  172. jac_client/examples/css-styling/material-ui/vite.config.js +0 -27
  173. jac_client/examples/css-styling/pure-css/.babelrc +0 -9
  174. jac_client/examples/css-styling/pure-css/README.md +0 -16
  175. jac_client/examples/css-styling/pure-css/package.json +0 -28
  176. jac_client/examples/css-styling/pure-css/styles.css +0 -111
  177. jac_client/examples/css-styling/pure-css/vite.config.js +0 -27
  178. jac_client/examples/css-styling/sass-example/.babelrc +0 -9
  179. jac_client/examples/css-styling/sass-example/README.md +0 -16
  180. jac_client/examples/css-styling/sass-example/package.json +0 -29
  181. jac_client/examples/css-styling/sass-example/styles.scss +0 -153
  182. jac_client/examples/css-styling/sass-example/vite.config.js +0 -27
  183. jac_client/examples/css-styling/styled-components/.babelrc +0 -9
  184. jac_client/examples/css-styling/styled-components/README.md +0 -16
  185. jac_client/examples/css-styling/styled-components/package.json +0 -29
  186. jac_client/examples/css-styling/styled-components/styled.js +0 -90
  187. jac_client/examples/css-styling/styled-components/vite.config.js +0 -27
  188. jac_client/examples/css-styling/tailwind-example/.babelrc +0 -9
  189. jac_client/examples/css-styling/tailwind-example/README.md +0 -16
  190. jac_client/examples/css-styling/tailwind-example/global.css +0 -1
  191. jac_client/examples/css-styling/tailwind-example/package.json +0 -30
  192. jac_client/examples/css-styling/tailwind-example/vite.config.js +0 -29
  193. jac_client/examples/full-stack-with-auth/.babelrc +0 -9
  194. jac_client/examples/full-stack-with-auth/README.md +0 -16
  195. jac_client/examples/full-stack-with-auth/package.json +0 -28
  196. jac_client/examples/full-stack-with-auth/vite.config.js +0 -29
  197. jac_client/examples/little-x/package.json +0 -23
  198. jac_client/examples/little-x/submit-button.jac +0 -8
  199. jac_client/examples/nested-folders/nested-advance/.babelrc +0 -9
  200. jac_client/examples/nested-folders/nested-advance/README.md +0 -77
  201. jac_client/examples/nested-folders/nested-advance/package.json +0 -29
  202. jac_client/examples/nested-folders/nested-advance/vite.config.js +0 -28
  203. jac_client/examples/nested-folders/nested-basic/.babelrc +0 -9
  204. jac_client/examples/nested-folders/nested-basic/README.md +0 -183
  205. jac_client/examples/nested-folders/nested-basic/app.js +0 -7
  206. jac_client/examples/nested-folders/nested-basic/package.json +0 -28
  207. jac_client/examples/nested-folders/nested-basic/vite.config.js +0 -27
  208. jac_client/examples/with-router/.babelrc +0 -9
  209. jac_client/examples/with-router/README.md +0 -17
  210. jac_client/examples/with-router/package.json +0 -28
  211. jac_client/examples/with-router/vite.config.js +0 -27
  212. jac_client/plugin/cli.py +0 -244
  213. jac_client/plugin/client.py +0 -152
  214. jac_client/plugin/client_runtime.jac +0 -234
  215. jac_client/plugin/vite_client_bundle.py +0 -503
  216. jac_client/tests/fixtures/js_import/utils.js +0 -21
  217. jac_client/tests/fixtures/package-lock.json +0 -329
  218. jac_client/tests/fixtures/package.json +0 -11
  219. jac_client/tests/test_asset_examples.py +0 -322
  220. jac_client/tests/test_cl.py +0 -530
  221. jac_client/tests/test_create_jac_app.py +0 -131
  222. jac_client/tests/test_nested_file.py +0 -374
  223. jac_client-0.2.3.dist-info/RECORD +0 -171
  224. jac_client-0.2.3.dist-info/entry_points.txt +0 -4
@@ -1,153 +0,0 @@
1
- // Sass Variables
2
- $primary-gradient-start: #dbeafe;
3
- $primary-gradient-end: #e0e7ff;
4
- $white: #ffffff;
5
- $gray-800: #1f2937;
6
- $gray-600: #4b5563;
7
- $gray-500: #6b7280;
8
- $green-600: #16a34a;
9
- $red-500: #ef4444;
10
- $red-600: #dc2626;
11
-
12
- // Mixins
13
- @mixin flex-center {
14
- display: flex;
15
- align-items: center;
16
- justify-content: center;
17
- }
18
-
19
- @mixin button-base {
20
- color: $white;
21
- font-weight: bold;
22
- padding: 0.75rem 1.5rem;
23
- border-radius: 0.5rem;
24
- box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
25
- transition: all 0.2s ease;
26
- font-size: 1.25rem;
27
- border: none;
28
- cursor: pointer;
29
-
30
- &:hover {
31
- transform: scale(1.05);
32
- }
33
-
34
- &:active {
35
- transform: scale(0.95);
36
- }
37
- }
38
-
39
- @mixin gradient-divider {
40
- height: 1px;
41
- background: linear-gradient(to right, transparent, $gray-500, transparent);
42
- margin-bottom: 1.5rem;
43
- }
44
-
45
- // Container
46
- .container {
47
- min-height: 100vh;
48
- background: linear-gradient(to bottom right, $primary-gradient-start, $primary-gradient-end);
49
- @include flex-center;
50
- padding: 1rem;
51
- }
52
-
53
- // Card
54
- .card {
55
- background-color: $white;
56
- border-radius: 1rem;
57
- box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
58
- padding: 2rem;
59
- max-width: 28rem;
60
- width: 100%;
61
- }
62
-
63
- // Title
64
- .title {
65
- font-size: 1.875rem;
66
- font-weight: bold;
67
- color: $gray-800;
68
- text-align: center;
69
- margin-bottom: 1.5rem;
70
- }
71
-
72
- // Divider
73
- .divider {
74
- @include gradient-divider;
75
- }
76
-
77
- // Counter Section
78
- .counterSection {
79
- text-align: center;
80
- margin-bottom: 2rem;
81
- }
82
-
83
- .label {
84
- font-size: 0.875rem;
85
- font-weight: 600;
86
- color: $gray-600;
87
- margin-bottom: 0.5rem;
88
- text-transform: uppercase;
89
- letter-spacing: 0.05em;
90
- }
91
-
92
- // Count Display with dynamic colors
93
- .countDisplay {
94
- font-size: 3.75rem;
95
- font-weight: bold;
96
- transition: color 0.3s ease;
97
-
98
- &.zero {
99
- color: $gray-800;
100
- }
101
-
102
- &.positive {
103
- color: $green-600;
104
- }
105
-
106
- &.negative {
107
- color: $red-600;
108
- }
109
- }
110
-
111
- // Button Group
112
- .buttonGroup {
113
- @include flex-center;
114
- gap: 1rem;
115
- margin-bottom: 1.5rem;
116
- }
117
-
118
- // Buttons
119
- .btn {
120
- @include button-base;
121
-
122
- &Decrement {
123
- background-color: $red-500;
124
-
125
- &:hover {
126
- background-color: darken($red-500, 10%);
127
- }
128
- }
129
-
130
- &Reset {
131
- background-color: $gray-500;
132
-
133
- &:hover {
134
- background-color: darken($gray-500, 10%);
135
- }
136
- }
137
-
138
- &Increment {
139
- background-color: $green-600;
140
-
141
- &:hover {
142
- background-color: darken($green-600, 10%);
143
- }
144
- }
145
- }
146
-
147
- // Hint
148
- .hint {
149
- text-align: center;
150
- font-size: 0.875rem;
151
- color: $gray-500;
152
- font-style: italic;
153
- }
@@ -1,27 +0,0 @@
1
-
2
- import { defineConfig } from "vite";
3
- import path from "path";
4
- import { fileURLToPath } from "url";
5
-
6
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
7
-
8
- export default defineConfig({
9
- root: ".", // base folder
10
- build: {
11
- rollupOptions: {
12
- input: "build/main.js", // your compiled entry file
13
- output: {
14
- entryFileNames: "client.[hash].js", // name of the final js file
15
- assetFileNames: "[name].[ext]",
16
- },
17
- },
18
- outDir: "dist", // final bundled output
19
- emptyOutDir: true,
20
- },
21
- publicDir: false,
22
- resolve: {
23
- alias: {
24
- "@jac-client/utils": path.resolve(__dirname, "src/client_runtime.js"),
25
- },
26
- },
27
- });
@@ -1,9 +0,0 @@
1
-
2
- {
3
- "presets": [[
4
- "@babel/preset-env",
5
- {
6
- "modules": false
7
- }
8
- ], "@babel/preset-react"]
9
- }
@@ -1,16 +0,0 @@
1
- # styled-components
2
-
3
- ## Running Jac Code
4
-
5
- make sure node modules are installed:
6
- ```bash
7
- npm install
8
- ```
9
-
10
- To run your Jac code, use the Jac CLI:
11
-
12
- ```bash
13
- jac serve app.jac
14
- ```
15
-
16
- Happy coding with Jac!
@@ -1,29 +0,0 @@
1
- {
2
- "name": "styled-components",
3
- "version": "1.0.0",
4
- "main": "index.js",
5
- "scripts": {
6
- "build": "npm run compile && vite build",
7
- "dev": "vite dev",
8
- "preview": "vite preview",
9
- "compile": "babel src --out-dir build --extensions \".jsx,.js\" --out-file-extension .js"
10
- },
11
- "keywords": [],
12
- "author": "",
13
- "license": "ISC",
14
- "description": "Jac application: styled-components",
15
- "type": "module",
16
- "devDependencies": {
17
- "vite": "^6.4.1",
18
- "@babel/cli": "^7.28.3",
19
- "@babel/core": "^7.28.5",
20
- "@babel/preset-env": "^7.28.5",
21
- "@babel/preset-react": "^7.28.5"
22
- },
23
- "dependencies": {
24
- "react": "^19.2.0",
25
- "react-dom": "^19.2.0",
26
- "react-router-dom": "^6.30.1",
27
- "styled-components": "^6.1.13"
28
- }
29
- }
@@ -1,90 +0,0 @@
1
- import styled from "styled-components";
2
-
3
- export const Container = styled.div`
4
- min-height: 100vh;
5
- background: linear-gradient(to bottom right, #dbeafe, #e0e7ff);
6
- display: flex;
7
- align-items: center;
8
- justify-content: center;
9
- padding: 1rem;
10
- `;
11
-
12
- export const Card = styled.div`
13
- background-color: #ffffff;
14
- border-radius: 1rem;
15
- box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
16
- padding: 2rem;
17
- max-width: 28rem;
18
- width: 100%;
19
- `;
20
-
21
- export const Title = styled.h1`
22
- font-size: 1.875rem;
23
- font-weight: bold;
24
- color: #1f2937;
25
- text-align: center;
26
- margin-bottom: 1.5rem;
27
- `;
28
-
29
- export const Divider = styled.div`
30
- height: 1px;
31
- background: linear-gradient(to right, transparent, #d1d5db, transparent);
32
- margin-bottom: 1.5rem;
33
- `;
34
-
35
- export const CounterSection = styled.div`
36
- text-align: center;
37
- margin-bottom: 2rem;
38
- `;
39
-
40
- export const Label = styled.div`
41
- font-size: 0.875rem;
42
- font-weight: 600;
43
- color: #4b5563;
44
- margin-bottom: 0.5rem;
45
- text-transform: uppercase;
46
- letter-spacing: 0.05em;
47
- `;
48
-
49
- export const CountDisplay = styled.div`
50
- font-size: 3.75rem;
51
- font-weight: bold;
52
- transition: color 0.3s ease;
53
- color: ${props => props.count === 0 ? "#1f2937" : (props.count > 0 ? "#16a34a" : "#dc2626")};
54
- `;
55
-
56
- export const ButtonGroup = styled.div`
57
- display: flex;
58
- justify-content: center;
59
- align-items: center;
60
- gap: 1rem;
61
- margin-bottom: 1.5rem;
62
- `;
63
-
64
- export const Button = styled.button`
65
- color: #ffffff;
66
- font-weight: bold;
67
- padding: 0.75rem 1.5rem;
68
- border-radius: 0.5rem;
69
- box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
70
- transition: all 0.2s ease;
71
- font-size: 1.25rem;
72
- border: none;
73
- cursor: pointer;
74
- background-color: ${props => props.bgColor};
75
-
76
- &:hover {
77
- transform: scale(1.05);
78
- }
79
-
80
- &:active {
81
- transform: scale(0.95);
82
- }
83
- `;
84
-
85
- export const Hint = styled.div`
86
- text-align: center;
87
- font-size: 0.875rem;
88
- color: #6b7280;
89
- font-style: italic;
90
- `;
@@ -1,27 +0,0 @@
1
-
2
- import { defineConfig } from "vite";
3
- import path from "path";
4
- import { fileURLToPath } from "url";
5
-
6
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
7
-
8
- export default defineConfig({
9
- root: ".", // base folder
10
- build: {
11
- rollupOptions: {
12
- input: "build/main.js", // your compiled entry file
13
- output: {
14
- entryFileNames: "client.[hash].js", // name of the final js file
15
- assetFileNames: "[name].[ext]",
16
- },
17
- },
18
- outDir: "dist", // final bundled output
19
- emptyOutDir: true,
20
- },
21
- publicDir: false,
22
- resolve: {
23
- alias: {
24
- "@jac-client/utils": path.resolve(__dirname, "src/client_runtime.js"),
25
- },
26
- },
27
- });
@@ -1,9 +0,0 @@
1
-
2
- {
3
- "presets": [[
4
- "@babel/preset-env",
5
- {
6
- "modules": false
7
- }
8
- ], "@babel/preset-react"]
9
- }
@@ -1,16 +0,0 @@
1
- # tailwind-example
2
-
3
- ## Running Jac Code
4
-
5
- make sure node modules are installed:
6
- ```bash
7
- npm install
8
- ```
9
-
10
- To run your Jac code, use the Jac CLI:
11
-
12
- ```bash
13
- jac serve app.jac
14
- ```
15
-
16
- Happy coding with Jac!
@@ -1 +0,0 @@
1
- @import "tailwindcss";
@@ -1,30 +0,0 @@
1
- {
2
- "name": "tailwind-example",
3
- "version": "1.0.0",
4
- "main": "index.js",
5
- "scripts": {
6
- "build": "npm run compile && vite build",
7
- "dev": "vite dev",
8
- "preview": "vite preview",
9
- "compile": "babel src --out-dir build --extensions \".jsx,.js\" --out-file-extension .js"
10
- },
11
- "keywords": [],
12
- "author": "",
13
- "license": "ISC",
14
- "description": "Jac application: tailwind-example",
15
- "type": "module",
16
- "devDependencies": {
17
- "@babel/cli": "^7.28.3",
18
- "@babel/core": "^7.28.5",
19
- "@babel/preset-env": "^7.28.5",
20
- "@babel/preset-react": "^7.28.5",
21
- "vite": "^6.4.1"
22
- },
23
- "dependencies": {
24
- "@tailwindcss/vite": "^4.1.17",
25
- "react": "^19.2.0",
26
- "react-dom": "^19.2.0",
27
- "react-router-dom": "^6.30.1",
28
- "tailwindcss": "^4.1.17"
29
- }
30
- }
@@ -1,29 +0,0 @@
1
-
2
- import { defineConfig } from "vite";
3
- import tailwindcss from '@tailwindcss/vite'
4
- import path from "path";
5
- import { fileURLToPath } from "url";
6
-
7
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
8
-
9
- export default defineConfig({
10
- root: ".", // base folder
11
- build: {
12
- rollupOptions: {
13
- input: "build/main.js", // your compiled entry file
14
- output: {
15
- entryFileNames: "client.[hash].js", // name of the final js file
16
- assetFileNames: "[name].[ext]",
17
- },
18
- },
19
- outDir: "dist", // final bundled output
20
- emptyOutDir: true,
21
- },
22
- plugins: [ tailwindcss(), ],
23
- publicDir: false,
24
- resolve: {
25
- alias: {
26
- "@jac-client/utils": path.resolve(__dirname, "src/client_runtime.js"),
27
- },
28
- },
29
- });
@@ -1,9 +0,0 @@
1
-
2
- {
3
- "presets": [[
4
- "@babel/preset-env",
5
- {
6
- "modules": false
7
- }
8
- ], "@babel/preset-react"]
9
- }
@@ -1,16 +0,0 @@
1
- # full-stack-with-auth
2
-
3
- ## Running Jac Code
4
-
5
- make sure node modules are installed:
6
- ```bash
7
- npm install
8
- ```
9
-
10
- To run your Jac code, use the Jac CLI:
11
-
12
- ```bash
13
- jac serve app.jac
14
- ```
15
-
16
- Happy coding with Jac!
@@ -1,28 +0,0 @@
1
- {
2
- "name": "full-stack-with-auth",
3
- "version": "1.0.0",
4
- "main": "index.js",
5
- "scripts": {
6
- "build": "npm run compile && vite build",
7
- "dev": "vite dev",
8
- "preview": "vite preview",
9
- "compile": "babel src --out-dir build --extensions \".jsx,.js\" --out-file-extension .js"
10
- },
11
- "keywords": [],
12
- "author": "",
13
- "license": "ISC",
14
- "description": "Jac application: full-stack-with-auth",
15
- "type": "module",
16
- "devDependencies": {
17
- "vite": "^6.4.1",
18
- "@babel/cli": "^7.28.3",
19
- "@babel/core": "^7.28.5",
20
- "@babel/preset-env": "^7.28.5",
21
- "@babel/preset-react": "^7.28.5"
22
- },
23
- "dependencies": {
24
- "react": "^19.2.0",
25
- "react-dom": "^19.2.0",
26
- "react-router-dom": "^6.30.1"
27
- }
28
- }
@@ -1,29 +0,0 @@
1
-
2
- import { defineConfig } from "vite";
3
- import path from "path";
4
- import { fileURLToPath } from "url";
5
-
6
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
7
-
8
- export default defineConfig({
9
- root: ".", // base folder
10
- build: {
11
- rollupOptions: {
12
- input: "build/main.js", // your compiled entry file
13
- output: {
14
- entryFileNames: "client.[hash].js", // name of the final js file
15
- assetFileNames: "[name].[ext]",
16
- },
17
- },
18
- outDir: "dist", // final bundled output
19
- emptyOutDir: true,
20
- minify: false,
21
- sourcemap: true,
22
- },
23
- publicDir: false,
24
- resolve: {
25
- alias: {
26
- "@jac-client/utils": path.resolve(__dirname, "src/client_runtime.js"),
27
- },
28
- },
29
- });
@@ -1,23 +0,0 @@
1
- {
2
- "name": "littlex-vite-bundler",
3
- "version": "1.0.0",
4
- "description": "Vite bundler for LittleX Jac application",
5
- "type": "module",
6
- "scripts": {
7
- "build": "vite build"
8
- },
9
- "devDependencies": {
10
- "vite": "^5.0.0"
11
- },
12
- "dependencies": {
13
- "antd": "^5.27.6",
14
- "bootstrap": "^5.3.8",
15
- "lodash": "^4.17.21",
16
- "pluralize": "^8.0.0",
17
- "precise-ui": "^2.1.17",
18
- "react": "^18.2.0",
19
- "react-animated-components": "^3.0.1",
20
- "react-bootstrap": "^2.10.10",
21
- "react-dom": "^18.2.0"
22
- }
23
- }
@@ -1,8 +0,0 @@
1
- cl def SubmitButton() -> any {
2
- <button
3
- type="submit"
4
- style={
5
- {"width" : "100%" , "padding" : "10px" , "backgroundColor" : "#1da1f2" , "color" : "white" , "border" : "none" , "borderRadius" : "4px" , "cursor" : "pointer" }}>
6
- Sign Up
7
- </button>
8
- }
@@ -1,9 +0,0 @@
1
-
2
- {
3
- "presets": [[
4
- "@babel/preset-env",
5
- {
6
- "modules": false
7
- }
8
- ], "@babel/preset-react"]
9
- }
@@ -1,77 +0,0 @@
1
- # Nested Folder Levels Example
2
-
3
- This example demonstrates multiple levels of folder nesting and how relative imports work across different directory levels.
4
-
5
- ## Project Structure
6
-
7
- ```
8
- nested-advance/
9
- ├── app.jac # Root entry point
10
- ├── ButtonRoot.jac # Root level button
11
- └── level1/
12
- ├── ButtonSecondL.jac # Second level button
13
- ├── Card.jac # Card component (imports from root and level2)
14
- └── level2/
15
- └── ButtonThirdL.jac # Third level button
16
- ```
17
-
18
- ## Import Patterns Demonstrated
19
-
20
- ### 1. Root Level (`app.jac`)
21
- ```jac
22
- # Import from root
23
- cl import from .ButtonRoot { ButtonRoot }
24
-
25
- # Import from level1
26
- cl import from .level1.ButtonSecondL { ButtonSecondL }
27
-
28
- # Import from level1/level2
29
- cl import from .level1.level2.ButtonThirdL { ButtonThirdL }
30
- ```
31
-
32
- ### 2. Second Level (`level1/ButtonSecondL.jac`)
33
- ```jac
34
- # Import from root (go up one level with ..)
35
- cl import from ..ButtonRoot { ButtonRoot }
36
- ```
37
-
38
- ### 3. Card Component (`level1/Card.jac`)
39
- This demonstrates importing from both above and below:
40
- ```jac
41
- # Import from root (go up two levels with ..)
42
- cl import from ..ButtonRoot { ButtonRoot }
43
-
44
- # Import from level2 (go down one level with .level2)
45
- cl import from .level2.ButtonThirdL { ButtonThirdL }
46
- ```
47
-
48
- ### 4. Third Level (`level1/level2/ButtonThirdL.jac`)
49
- ```jac
50
- # Import from root (go up three levels with ...)
51
- cl import from ...ButtonRoot { ButtonRoot }
52
-
53
- # Import from second level (go up one level with ..)
54
- cl import from ..ButtonSecondL { ButtonSecondL }
55
- ```
56
-
57
- ## Running the Example
58
-
59
- Make sure node modules are installed:
60
- ```bash
61
- npm install
62
- ```
63
-
64
- To run your Jac code, use the Jac CLI:
65
- ```bash
66
- jac serve app.jac
67
- ```
68
-
69
- ## Key Concepts
70
-
71
- - **Single dot (`.`)** - Current directory
72
- - **Double dot (`..`)** - Parent directory (one level up)
73
- - **Triple dot (`...`)** - Two levels up
74
- - **Multiple dots** - Continue going up the directory tree
75
- - **Dot notation after dots** - Go down into subdirectories (e.g., `.level2`)
76
-
77
- This example shows how folder structure is preserved during compilation, ensuring all relative imports work correctly!
@@ -1,29 +0,0 @@
1
- {
2
- "name": "nested-advance",
3
- "version": "1.0.0",
4
- "main": "index.js",
5
- "scripts": {
6
- "build": "npm run compile && vite build",
7
- "dev": "vite dev",
8
- "preview": "vite preview",
9
- "compile": "babel src --out-dir build --extensions \".jsx,.js\" --out-file-extension .js"
10
- },
11
- "keywords": [],
12
- "author": "",
13
- "license": "ISC",
14
- "description": "Jac application: nested-advance",
15
- "type": "module",
16
- "devDependencies": {
17
- "@babel/cli": "^7.28.3",
18
- "@babel/core": "^7.28.5",
19
- "@babel/preset-env": "^7.28.5",
20
- "@babel/preset-react": "^7.28.5",
21
- "vite": "^6.4.1"
22
- },
23
- "dependencies": {
24
- "antd": "^6.0.0",
25
- "react": "^19.2.0",
26
- "react-dom": "^19.2.0",
27
- "react-router-dom": "^6.30.1"
28
- }
29
- }