juxscript 1.0.19 → 1.0.21

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 (77) hide show
  1. package/bin/cli.js +121 -72
  2. package/lib/components/alert.ts +212 -165
  3. package/lib/components/badge.ts +93 -103
  4. package/lib/components/base/BaseComponent.ts +397 -0
  5. package/lib/components/base/FormInput.ts +322 -0
  6. package/lib/components/button.ts +63 -122
  7. package/lib/components/card.ts +109 -155
  8. package/lib/components/charts/areachart.ts +315 -0
  9. package/lib/components/charts/barchart.ts +421 -0
  10. package/lib/components/charts/doughnutchart.ts +263 -0
  11. package/lib/components/charts/lib/BaseChart.ts +402 -0
  12. package/lib/components/charts/lib/chart-types.ts +159 -0
  13. package/lib/components/charts/lib/chart-utils.ts +160 -0
  14. package/lib/components/charts/lib/chart.ts +707 -0
  15. package/lib/components/checkbox.ts +264 -127
  16. package/lib/components/code.ts +75 -108
  17. package/lib/components/container.ts +113 -130
  18. package/lib/components/data.ts +37 -5
  19. package/lib/components/datepicker.ts +195 -147
  20. package/lib/components/dialog.ts +187 -157
  21. package/lib/components/divider.ts +85 -191
  22. package/lib/components/docs-data.json +544 -2027
  23. package/lib/components/dropdown.ts +178 -136
  24. package/lib/components/element.ts +227 -171
  25. package/lib/components/fileupload.ts +285 -228
  26. package/lib/components/guard.ts +92 -0
  27. package/lib/components/heading.ts +46 -69
  28. package/lib/components/helpers.ts +13 -6
  29. package/lib/components/hero.ts +107 -95
  30. package/lib/components/icon.ts +160 -0
  31. package/lib/components/icons.ts +175 -0
  32. package/lib/components/include.ts +153 -5
  33. package/lib/components/input.ts +174 -374
  34. package/lib/components/kpicard.ts +16 -16
  35. package/lib/components/list.ts +378 -240
  36. package/lib/components/loading.ts +142 -211
  37. package/lib/components/menu.ts +103 -97
  38. package/lib/components/modal.ts +138 -144
  39. package/lib/components/nav.ts +169 -90
  40. package/lib/components/paragraph.ts +49 -150
  41. package/lib/components/progress.ts +118 -200
  42. package/lib/components/radio.ts +297 -149
  43. package/lib/components/script.ts +19 -87
  44. package/lib/components/select.ts +184 -186
  45. package/lib/components/sidebar.ts +152 -140
  46. package/lib/components/style.ts +19 -82
  47. package/lib/components/switch.ts +258 -188
  48. package/lib/components/table.ts +1117 -170
  49. package/lib/components/tabs.ts +162 -145
  50. package/lib/components/theme-toggle.ts +108 -169
  51. package/lib/components/tooltip.ts +86 -157
  52. package/lib/components/write.ts +108 -127
  53. package/lib/jux.ts +86 -41
  54. package/machinery/build.js +466 -0
  55. package/machinery/compiler.js +354 -105
  56. package/machinery/server.js +23 -100
  57. package/machinery/watcher.js +153 -130
  58. package/package.json +1 -2
  59. package/presets/base.css +1166 -0
  60. package/presets/notion.css +2 -1975
  61. package/lib/adapters/base-adapter.js +0 -35
  62. package/lib/adapters/index.js +0 -33
  63. package/lib/adapters/mysql-adapter.js +0 -65
  64. package/lib/adapters/postgres-adapter.js +0 -70
  65. package/lib/adapters/sqlite-adapter.js +0 -56
  66. package/lib/components/areachart.ts +0 -1246
  67. package/lib/components/areachartsmooth.ts +0 -1380
  68. package/lib/components/barchart.ts +0 -1250
  69. package/lib/components/chart.ts +0 -127
  70. package/lib/components/doughnutchart.ts +0 -1191
  71. package/lib/components/footer.ts +0 -165
  72. package/lib/components/header.ts +0 -187
  73. package/lib/components/layout.ts +0 -239
  74. package/lib/components/main.ts +0 -137
  75. package/lib/layouts/default.jux +0 -8
  76. package/lib/layouts/figma.jux +0 -0
  77. /package/lib/{themes → components/charts/lib}/charts.js +0 -0
@@ -1,35 +0,0 @@
1
- /**
2
- * Base adapter interface that all database adapters must implement
3
- */
4
- class BaseAdapter {
5
- constructor(config) {
6
- this.config = config;
7
- this.connection = null;
8
- }
9
-
10
- async connect() {
11
- throw new Error('connect() must be implemented');
12
- }
13
-
14
- async disconnect() {
15
- throw new Error('disconnect() must be implemented');
16
- }
17
-
18
- async query(sql, params = []) {
19
- throw new Error('query() must be implemented');
20
- }
21
-
22
- async execute(sql, params = []) {
23
- throw new Error('execute() must be implemented');
24
- }
25
-
26
- async transaction(callback) {
27
- throw new Error('transaction() must be implemented');
28
- }
29
-
30
- escape(value) {
31
- throw new Error('escape() must be implemented');
32
- }
33
- }
34
-
35
- module.exports = { BaseAdapter };
@@ -1,33 +0,0 @@
1
- const { SQLiteAdapter } = require('./sqlite-adapter');
2
- const { MySQLAdapter } = require('./mysql-adapter');
3
- const { PostgresAdapter } = require('./postgres-adapter');
4
-
5
- /**
6
- * Adapter factory - creates the appropriate adapter based on config
7
- */
8
- function createAdapter(type, config) {
9
- switch (type.toLowerCase()) {
10
- case 'sqlite':
11
- case 'sqlite3':
12
- return new SQLiteAdapter(config);
13
-
14
- case 'mysql':
15
- case 'mariadb':
16
- return new MySQLAdapter(config);
17
-
18
- case 'postgres':
19
- case 'postgresql':
20
- case 'pg':
21
- return new PostgresAdapter(config);
22
-
23
- default:
24
- throw new Error(`Unsupported database type: ${type}`);
25
- }
26
- }
27
-
28
- module.exports = {
29
- createAdapter,
30
- SQLiteAdapter,
31
- MySQLAdapter,
32
- PostgresAdapter
33
- };
@@ -1,65 +0,0 @@
1
- const { BaseAdapter } = require('./base-adapter');
2
- const mysql = require('mysql2/promise');
3
-
4
- class MySQLAdapter extends BaseAdapter {
5
- async connect() {
6
- this.connection = await mysql.createConnection({
7
- host: this.config.host || 'localhost',
8
- port: this.config.port || 3306,
9
- user: this.config.user,
10
- password: this.config.password,
11
- database: this.config.database
12
- });
13
- return this.connection;
14
- }
15
-
16
- async disconnect() {
17
- if (this.connection) {
18
- await this.connection.end();
19
- this.connection = null;
20
- }
21
- }
22
-
23
- async query(sql, params = []) {
24
- if (!this.connection) await this.connect();
25
-
26
- try {
27
- const [rows] = await this.connection.execute(sql, params);
28
- return { data: rows, rowCount: rows.length };
29
- } catch (error) {
30
- throw new Error(`MySQL query error: ${error.message}`);
31
- }
32
- }
33
-
34
- async execute(sql, params = []) {
35
- if (!this.connection) await this.connect();
36
-
37
- try {
38
- const [result] = await this.connection.execute(sql, params);
39
- return {
40
- rowCount: result.affectedRows,
41
- lastInsertId: result.insertId
42
- };
43
- } catch (error) {
44
- throw new Error(`MySQL execute error: ${error.message}`);
45
- }
46
- }
47
-
48
- async transaction(callback) {
49
- await this.connection.beginTransaction();
50
- try {
51
- const result = await callback(this);
52
- await this.connection.commit();
53
- return result;
54
- } catch (error) {
55
- await this.connection.rollback();
56
- throw error;
57
- }
58
- }
59
-
60
- escape(value) {
61
- return mysql.escape(value);
62
- }
63
- }
64
-
65
- module.exports = { MySQLAdapter };
@@ -1,70 +0,0 @@
1
- const { BaseAdapter } = require('./base-adapter');
2
- const { Pool } = require('pg');
3
-
4
- class PostgresAdapter extends BaseAdapter {
5
- async connect() {
6
- this.connection = new Pool({
7
- host: this.config.host || 'localhost',
8
- port: this.config.port || 5432,
9
- user: this.config.user,
10
- password: this.config.password,
11
- database: this.config.database
12
- });
13
- return this.connection;
14
- }
15
-
16
- async disconnect() {
17
- if (this.connection) {
18
- await this.connection.end();
19
- this.connection = null;
20
- }
21
- }
22
-
23
- async query(sql, params = []) {
24
- if (!this.connection) await this.connect();
25
-
26
- try {
27
- const result = await this.connection.query(sql, params);
28
- return { data: result.rows, rowCount: result.rowCount };
29
- } catch (error) {
30
- throw new Error(`Postgres query error: ${error.message}`);
31
- }
32
- }
33
-
34
- async execute(sql, params = []) {
35
- if (!this.connection) await this.connect();
36
-
37
- try {
38
- const result = await this.connection.query(sql, params);
39
- return {
40
- rowCount: result.rowCount,
41
- lastInsertId: result.rows[0]?.id
42
- };
43
- } catch (error) {
44
- throw new Error(`Postgres execute error: ${error.message}`);
45
- }
46
- }
47
-
48
- async transaction(callback) {
49
- const client = await this.connection.connect();
50
- try {
51
- await client.query('BEGIN');
52
- const result = await callback(this);
53
- await client.query('COMMIT');
54
- return result;
55
- } catch (error) {
56
- await client.query('ROLLBACK');
57
- throw error;
58
- } finally {
59
- client.release();
60
- }
61
- }
62
-
63
- escape(value) {
64
- if (value === null) return 'NULL';
65
- if (typeof value === 'number') return value.toString();
66
- return `'${value.toString().replace(/'/g, "''")}'`;
67
- }
68
- }
69
-
70
- module.exports = { PostgresAdapter };
@@ -1,56 +0,0 @@
1
- const { BaseAdapter } = require('./base-adapter');
2
- const Database = require('better-sqlite3');
3
-
4
- class SQLiteAdapter extends BaseAdapter {
5
- async connect() {
6
- this.connection = new Database(this.config.database || ':memory:');
7
- return this.connection;
8
- }
9
-
10
- async disconnect() {
11
- if (this.connection) {
12
- this.connection.close();
13
- this.connection = null;
14
- }
15
- }
16
-
17
- async query(sql, params = []) {
18
- if (!this.connection) await this.connect();
19
-
20
- try {
21
- const stmt = this.connection.prepare(sql);
22
- const rows = stmt.all(...params);
23
- return { data: rows, rowCount: rows.length };
24
- } catch (error) {
25
- throw new Error(`SQLite query error: ${error.message}`);
26
- }
27
- }
28
-
29
- async execute(sql, params = []) {
30
- if (!this.connection) await this.connect();
31
-
32
- try {
33
- const stmt = this.connection.prepare(sql);
34
- const result = stmt.run(...params);
35
- return {
36
- rowCount: result.changes,
37
- lastInsertId: result.lastInsertRowid
38
- };
39
- } catch (error) {
40
- throw new Error(`SQLite execute error: ${error.message}`);
41
- }
42
- }
43
-
44
- async transaction(callback) {
45
- const transaction = this.connection.transaction(callback);
46
- return transaction();
47
- }
48
-
49
- escape(value) {
50
- if (value === null) return 'NULL';
51
- if (typeof value === 'number') return value.toString();
52
- return `'${value.toString().replace(/'/g, "''")}'`;
53
- }
54
- }
55
-
56
- module.exports = { SQLiteAdapter };