bitwrench 2.0.13 → 2.0.15

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 (46) hide show
  1. package/README.md +4 -4
  2. package/dist/bitwrench-code-edit.cjs.js +46 -46
  3. package/dist/bitwrench-code-edit.cjs.min.js +16 -0
  4. package/dist/bitwrench-code-edit.es5.js +8 -8
  5. package/dist/bitwrench-code-edit.es5.min.js +2 -2
  6. package/dist/bitwrench-code-edit.esm.js +46 -46
  7. package/dist/bitwrench-code-edit.esm.min.js +2 -2
  8. package/dist/bitwrench-code-edit.umd.js +46 -46
  9. package/dist/bitwrench-code-edit.umd.min.js +2 -2
  10. package/dist/bitwrench-lean.cjs.js +5011 -3419
  11. package/dist/bitwrench-lean.cjs.min.js +35 -6
  12. package/dist/bitwrench-lean.es5.js +6218 -4272
  13. package/dist/bitwrench-lean.es5.min.js +32 -3
  14. package/dist/bitwrench-lean.esm.js +5011 -3419
  15. package/dist/bitwrench-lean.esm.min.js +35 -6
  16. package/dist/bitwrench-lean.umd.js +5011 -3419
  17. package/dist/bitwrench-lean.umd.min.js +35 -6
  18. package/dist/bitwrench.cjs.js +6966 -4662
  19. package/dist/bitwrench.cjs.min.js +38 -8
  20. package/dist/bitwrench.css +2453 -4784
  21. package/dist/bitwrench.es5.js +9592 -6813
  22. package/dist/bitwrench.es5.min.js +34 -5
  23. package/dist/bitwrench.esm.js +6966 -4662
  24. package/dist/bitwrench.esm.min.js +38 -8
  25. package/dist/bitwrench.min.css +1 -0
  26. package/dist/bitwrench.umd.js +6966 -4662
  27. package/dist/bitwrench.umd.min.js +38 -8
  28. package/dist/builds.json +89 -67
  29. package/dist/sri.json +28 -26
  30. package/package.json +7 -5
  31. package/readme.html +14 -14
  32. package/src/{bitwrench-components-v2.js → bitwrench-bccl.js} +1311 -600
  33. package/src/bitwrench-code-edit.js +45 -45
  34. package/src/bitwrench-color-utils.js +154 -27
  35. package/src/bitwrench-components-stub.js +4 -1
  36. package/src/bitwrench-file-ops.js +180 -0
  37. package/src/bitwrench-lean.js +2 -2
  38. package/src/bitwrench-styles.js +1468 -3494
  39. package/src/bitwrench-utils.js +458 -0
  40. package/src/bitwrench.js +1795 -1349
  41. package/src/cli/layout-default.js +18 -18
  42. package/src/generate-css.js +73 -53
  43. package/src/version.js +3 -3
  44. package/src/bitwrench-component-base.js +0 -736
  45. package/src/bitwrench-components-inline.js +0 -374
  46. package/src/bitwrench-components.js +0 -610
package/dist/builds.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "2.0.13",
3
- "buildDate": "2026-03-07",
2
+ "version": "2.0.15",
3
+ "buildDate": "2026-03-10",
4
4
  "files": [
5
5
  {
6
6
  "file": "bitwrench-code-edit.cjs.js",
@@ -9,9 +9,9 @@
9
9
  "component": "code-edit",
10
10
  "minified": false,
11
11
  "raw": 21195,
12
- "gzipped": 5376,
12
+ "gzipped": 5389,
13
13
  "sourceMap": true,
14
- "integrity": "sha384-LdV0H4QxwNTgvqxIne+CnVQ9AJfek7wlcMHhmAjZVDgyKJLt/I3lp0ekYz/hCVk1"
14
+ "integrity": "sha384-/bNOqn95bkCYJCgvldLJRxaxrEMiOL9piW7D31QjgOnE0Bj8ke48M7R3K/ZHi5vz"
15
15
  },
16
16
  {
17
17
  "file": "bitwrench-lean.cjs.js",
@@ -19,10 +19,10 @@
19
19
  "ver": "2.x",
20
20
  "component": "lean",
21
21
  "minified": false,
22
- "raw": 201928,
23
- "gzipped": 49934,
22
+ "raw": 258838,
23
+ "gzipped": 62822,
24
24
  "sourceMap": true,
25
- "integrity": "sha384-pK6xEytzsc4cER0mfAUlcTEbD650K2ACN74TBEReYu8O/xaiJeHKvRaIjMmeWgsj"
25
+ "integrity": "sha384-qlWuZnAZS14Zp/FKrTGtfH8AwI4A9mrXNh3cq8kBDkUlo4ZI3hQEiCRQwfQpn0ic"
26
26
  },
27
27
  {
28
28
  "file": "bitwrench.cjs.js",
@@ -30,10 +30,21 @@
30
30
  "ver": "2.x",
31
31
  "component": "core",
32
32
  "minified": false,
33
- "raw": 287589,
34
- "gzipped": 67738,
33
+ "raw": 370075,
34
+ "gzipped": 86361,
35
35
  "sourceMap": true,
36
- "integrity": "sha384-DuTaZdszqMEi1J8i6HcKZXOFMEO3+37H0AQP6qgSV2N1fARN1B4ikAfg9t940RJz"
36
+ "integrity": "sha384-Gl3hM4aTs/afOUDefxOfyriRruD69mJsC7pChob/Esg3qdV3+RoY90wLsThEJN4n"
37
+ },
38
+ {
39
+ "file": "bitwrench-code-edit.cjs.min.js",
40
+ "format": "CJS",
41
+ "ver": "2.x",
42
+ "component": "code-edit",
43
+ "minified": true,
44
+ "raw": 10630,
45
+ "gzipped": 3871,
46
+ "sourceMap": true,
47
+ "integrity": "sha384-ps1tCwgt+YjAGinSLyGKY5ZsnV7KutVYKxVWYruS3gP3TbyafQJySwih5Fn80ZFK"
37
48
  },
38
49
  {
39
50
  "file": "bitwrench-lean.cjs.min.js",
@@ -41,10 +52,10 @@
41
52
  "ver": "2.x",
42
53
  "component": "lean",
43
54
  "minified": true,
44
- "raw": 88559,
45
- "gzipped": 24187,
55
+ "raw": 112453,
56
+ "gzipped": 29878,
46
57
  "sourceMap": true,
47
- "integrity": "sha384-Kn4RQBkFECdOwPJ8/mFpGI17B3n8nrMusDI9G7FG+zzEr3UwOa/Rq6D4On3ChfeL"
58
+ "integrity": "sha384-pVY2BB/U0dn5JZM/r47Hv61bgiSryf9ZIePN+hQkhkFAkFJrsDqIT+HjQB3D7WRw"
48
59
  },
49
60
  {
50
61
  "file": "bitwrench.cjs.min.js",
@@ -52,10 +63,10 @@
52
63
  "ver": "2.x",
53
64
  "component": "core",
54
65
  "minified": true,
55
- "raw": 114014,
56
- "gzipped": 31055,
66
+ "raw": 145689,
67
+ "gzipped": 38906,
57
68
  "sourceMap": true,
58
- "integrity": "sha384-E8hNQzp5diUhaaX6sC9r95I+UUzsmgSkAaXFYb5jfogfDlZerdVpM9aIiUWFvtSP"
69
+ "integrity": "sha384-/mPUPWrJE0/9176PeMBw0hZGBFtQ0LNzRk8F9EK3mkVBQFQUpRmOrxy7q7KDEP4C"
59
70
  },
60
71
  {
61
72
  "file": "bitwrench.css",
@@ -63,10 +74,21 @@
63
74
  "ver": "2.x",
64
75
  "component": "core",
65
76
  "minified": false,
66
- "raw": 111003,
67
- "gzipped": 14036,
77
+ "raw": 70348,
78
+ "gzipped": 11926,
79
+ "sourceMap": false,
80
+ "integrity": "sha384-G7kC+3If3rNHBh23G8LHZa3NvPsf+s5fNGaXAZkqtg8Nas0WmhOdWHTbqTEijKQM"
81
+ },
82
+ {
83
+ "file": "bitwrench.min.css",
84
+ "format": "CSS",
85
+ "ver": "2.x",
86
+ "component": "core",
87
+ "minified": true,
88
+ "raw": 57354,
89
+ "gzipped": 10972,
68
90
  "sourceMap": false,
69
- "integrity": "sha384-LuYgAZ4GP4xOWBjQgt/6y2f3i5JeR7BZgDhx5PIrIHTZ45IOuxdwh2KI0k7INzp3"
91
+ "integrity": "sha384-okjJZx1EoXcKaEospKzJk0MxyQprKaGYaqBYGWEHkknFyOWhfAsf0gYCw7hU7mAs"
70
92
  },
71
93
  {
72
94
  "file": "bitwrench-code-edit.es5.js",
@@ -75,9 +97,9 @@
75
97
  "component": "code-edit",
76
98
  "minified": false,
77
99
  "raw": 25726,
78
- "gzipped": 5708,
100
+ "gzipped": 5724,
79
101
  "sourceMap": true,
80
- "integrity": "sha384-sBLjtcsTQoV/GLwRAhyqD8WI8sAvtz6dlj1mo5pe3O3o7TWZT3po88bPA/PJUTTp"
102
+ "integrity": "sha384-vGhHBjXz591gQgE+pckuNJWsnPqisOchcSe04rudf6hYVBAwoNhRSemylUapsDv7"
81
103
  },
82
104
  {
83
105
  "file": "bitwrench-lean.es5.js",
@@ -85,10 +107,10 @@
85
107
  "ver": "2.x",
86
108
  "component": "lean",
87
109
  "minified": false,
88
- "raw": 237397,
89
- "gzipped": 53770,
110
+ "raw": 299110,
111
+ "gzipped": 66401,
90
112
  "sourceMap": true,
91
- "integrity": "sha384-GVYCgQhyJ88rMq0T3Rw24ISABcfwkqSj6snDzAjql5KOM0of3kpO1g2crKZSPZeA"
113
+ "integrity": "sha384-Xb+Lra8oUB0jRRTwFyfVppS/lFOiHthdu4eYWYbRqWkJ/PbByyhEoQV5bHB8EvPI"
92
114
  },
93
115
  {
94
116
  "file": "bitwrench.es5.js",
@@ -96,10 +118,10 @@
96
118
  "ver": "2.x",
97
119
  "component": "core",
98
120
  "minified": false,
99
- "raw": 349407,
100
- "gzipped": 74742,
121
+ "raw": 440075,
122
+ "gzipped": 93002,
101
123
  "sourceMap": true,
102
- "integrity": "sha384-96s7kXsqky4PrP/l3J1Zr3guW+5nzrFYuJTp0kUMn8/IQ4nbhdaIfQfnC9lyiuE3"
124
+ "integrity": "sha384-Q8ctFLQAXaBuM5JXFwCUQelQUKE21k0Gc5i+2nsM3Ym329Fh930RYk4b5ateACSp"
103
125
  },
104
126
  {
105
127
  "file": "bitwrench-code-edit.es5.min.js",
@@ -108,9 +130,9 @@
108
130
  "component": "code-edit",
109
131
  "minified": true,
110
132
  "raw": 10827,
111
- "gzipped": 3912,
133
+ "gzipped": 3927,
112
134
  "sourceMap": true,
113
- "integrity": "sha384-XNcaCUcUU4XOJVmeWI+avesw+ETXyt6Vv71sjKoxUgjZXM9bOQNE34EtkLDrZK42"
135
+ "integrity": "sha384-g6K2l3no0codjtoRbKBLqn2eYGqYbRitFqxpw7aO2u8Nbx++4EOmAG/XqcENBTAK"
114
136
  },
115
137
  {
116
138
  "file": "bitwrench-lean.es5.min.js",
@@ -118,10 +140,10 @@
118
140
  "ver": "2.x",
119
141
  "component": "lean",
120
142
  "minified": true,
121
- "raw": 95570,
122
- "gzipped": 25855,
143
+ "raw": 118077,
144
+ "gzipped": 31444,
123
145
  "sourceMap": true,
124
- "integrity": "sha384-e8szKtY6GciQncnHIIJKO7UOayImesVg/FY/dnrkBjVVsMRqInP+rZrm3nK+LmBK"
146
+ "integrity": "sha384-z4Qf0p+RbLyXVhft6XrqDFapRaKh4fh6CrJSwdRruVlY1oHp+sMpuEtoyhuR5nGA"
125
147
  },
126
148
  {
127
149
  "file": "bitwrench.es5.min.js",
@@ -129,10 +151,10 @@
129
151
  "ver": "2.x",
130
152
  "component": "core",
131
153
  "minified": true,
132
- "raw": 127661,
133
- "gzipped": 33727,
154
+ "raw": 157701,
155
+ "gzipped": 41053,
134
156
  "sourceMap": true,
135
- "integrity": "sha384-EqVhSF6rix6Z67Q2j+mGVT4vTrIpiwB5RgOjQECDch3AOSCP8PU4nEx1OKZ+ZE8X"
157
+ "integrity": "sha384-pb/2mUSIQW5L3jH21snKnd3Hp+VD8CmxKgFVr2qgZQbruDeY1PLCp/eLU70C+A1T"
136
158
  },
137
159
  {
138
160
  "file": "bitwrench-code-edit.esm.js",
@@ -141,9 +163,9 @@
141
163
  "component": "code-edit",
142
164
  "minified": false,
143
165
  "raw": 20976,
144
- "gzipped": 5298,
166
+ "gzipped": 5311,
145
167
  "sourceMap": true,
146
- "integrity": "sha384-UmRzxiRly6y4cG5qxsRBktHV5AqLcB3l58ZJobqtcXNTXlcVE7LCHA5Gj9dZ8iEz"
168
+ "integrity": "sha384-xEJF0fnbv5RPG+mh6uPb6tKmV1icZ1ZV46+LP+JzNNDYy43AOc32UdmRtbPM/CnX"
147
169
  },
148
170
  {
149
171
  "file": "bitwrench-lean.esm.js",
@@ -151,10 +173,10 @@
151
173
  "ver": "2.x",
152
174
  "component": "lean",
153
175
  "minified": false,
154
- "raw": 201918,
155
- "gzipped": 49931,
176
+ "raw": 258828,
177
+ "gzipped": 62817,
156
178
  "sourceMap": true,
157
- "integrity": "sha384-BzvnGkOZWR7NGbZ7DBaG7YcOT/nIvrPG5Hlvi4NnAZFtXjDmr1hnWAYAgQoSdNnv"
179
+ "integrity": "sha384-JtZWDCq1UZGqvFUUtuMFeSAruMdCSK7xZq3XOjZv8AE03IF8+nRjmlyfJCZDGVNV"
158
180
  },
159
181
  {
160
182
  "file": "bitwrench.esm.js",
@@ -162,10 +184,10 @@
162
184
  "ver": "2.x",
163
185
  "component": "core",
164
186
  "minified": false,
165
- "raw": 287579,
166
- "gzipped": 67735,
187
+ "raw": 370065,
188
+ "gzipped": 86354,
167
189
  "sourceMap": true,
168
- "integrity": "sha384-dlxlNMdGcP0ywSXTKkrlYpII8c5gPuV52aVJwNRGscvUZMXjqe7udOY4YRzSR5/k"
190
+ "integrity": "sha384-HAlG1Fs6lhPxVP5zn0rkgyf2GqvLCjos71Va0lTF1HvSX6eWOs8LWXQ1ku+J7/9I"
169
191
  },
170
192
  {
171
193
  "file": "bitwrench-code-edit.esm.min.js",
@@ -174,9 +196,9 @@
174
196
  "component": "code-edit",
175
197
  "minified": true,
176
198
  "raw": 10529,
177
- "gzipped": 3816,
199
+ "gzipped": 3832,
178
200
  "sourceMap": true,
179
- "integrity": "sha384-G4L3pTvQ1YUtLPhYfI9g1ZGUI4ZfeIZ1KB5dHacFdeuSjHwdb0md7+cHva6z4aoV"
201
+ "integrity": "sha384-kxjp+unxOUGXueWiOYK7r9snqgLE2d1wpjybHrEILes1+bS3rnWVhg2OVFScnzY/"
180
202
  },
181
203
  {
182
204
  "file": "bitwrench-lean.esm.min.js",
@@ -184,10 +206,10 @@
184
206
  "ver": "2.x",
185
207
  "component": "lean",
186
208
  "minified": true,
187
- "raw": 88550,
188
- "gzipped": 24184,
209
+ "raw": 112444,
210
+ "gzipped": 29873,
189
211
  "sourceMap": true,
190
- "integrity": "sha384-voZ7Rb6UJN2GVpYTi6w8dZkGfyBoLj+65nGknbI/5nr/acYCnfsU1XRrcbXMKuHE"
212
+ "integrity": "sha384-8uBjskc3WvHSTbe8ZGOUOCc1UJH85iBRcdDqnsjBC6EI1Skzu5fWR/i9hgpA3psD"
191
213
  },
192
214
  {
193
215
  "file": "bitwrench.esm.min.js",
@@ -195,10 +217,10 @@
195
217
  "ver": "2.x",
196
218
  "component": "core",
197
219
  "minified": true,
198
- "raw": 114005,
199
- "gzipped": 31051,
220
+ "raw": 145680,
221
+ "gzipped": 38902,
200
222
  "sourceMap": true,
201
- "integrity": "sha384-gdTZ3Dq1jMC93PRGPPbOkz+WpipfwBUlrgVmhtzhI+QnN+AdC+irpTQOdfnJi91d"
223
+ "integrity": "sha384-GWl9IOVhYVEa51cA+COtFM9wFkfD3fQqO3DYTVGl8QJOP3dbuuDLWtP0aFwZBveF"
202
224
  },
203
225
  {
204
226
  "file": "bitwrench-code-edit.umd.js",
@@ -207,9 +229,9 @@
207
229
  "component": "code-edit",
208
230
  "minified": false,
209
231
  "raw": 22691,
210
- "gzipped": 5540,
232
+ "gzipped": 5553,
211
233
  "sourceMap": true,
212
- "integrity": "sha384-9CDC2fwqR2lR2Hou3xXgx4WEfTzmpNzb8NCuPTd2BXIeS0h9uBrjFQvV+JAjfEid"
234
+ "integrity": "sha384-B5lapHaMiyQ0mnd41EYO8N2F9vWyw+G1pocd0s2IxztRCoqLxQ9yMfyFJqdUB7s1"
213
235
  },
214
236
  {
215
237
  "file": "bitwrench-lean.umd.js",
@@ -217,10 +239,10 @@
217
239
  "ver": "2.x",
218
240
  "component": "lean",
219
241
  "minified": false,
220
- "raw": 213302,
221
- "gzipped": 50712,
242
+ "raw": 272918,
243
+ "gzipped": 63737,
222
244
  "sourceMap": true,
223
- "integrity": "sha384-0gpOij1EQYqN9TEvVM7Hw4kJHBaTTVV0h78uet88qIkZiTFAcDsjRuDyM2kIKZyL"
245
+ "integrity": "sha384-iV0Un/IlMdxbT3Mfi6fVTXkaVP2NDVLa2u3K5dQtKXBEhVYfPMv+jv9lultT+kSh"
224
246
  },
225
247
  {
226
248
  "file": "bitwrench.umd.js",
@@ -228,10 +250,10 @@
228
250
  "ver": "2.x",
229
251
  "component": "core",
230
252
  "minified": false,
231
- "raw": 304535,
232
- "gzipped": 68805,
253
+ "raw": 391111,
254
+ "gzipped": 87633,
233
255
  "sourceMap": true,
234
- "integrity": "sha384-UmJ2qAzI4VinBscTiJwPpRI3qgM6GIXSa9sEGfLvCBrRdRSGMRnxbsaLl7s/YEqK"
256
+ "integrity": "sha384-MvEk3PxsoQTdUunY7vEMh+ysBA7tIErjU/vCj5MF3INyxTWXbqiwYwud+8erXEQ9"
235
257
  },
236
258
  {
237
259
  "file": "bitwrench-code-edit.umd.min.js",
@@ -240,9 +262,9 @@
240
262
  "component": "code-edit",
241
263
  "minified": true,
242
264
  "raw": 10827,
243
- "gzipped": 3911,
265
+ "gzipped": 3926,
244
266
  "sourceMap": true,
245
- "integrity": "sha384-ehHSdbkdQ2kwCffmQ1+M2R4v+1louzELVGTAGRBNu7zXIwbxAog6dtEIpc1xzTdo"
267
+ "integrity": "sha384-IHAz1etjFsiS5iYQUamcrysiuhJ64CrgwaXcTyyoxOAiXnDpCcGW/q1C/+/RddbX"
246
268
  },
247
269
  {
248
270
  "file": "bitwrench-lean.umd.min.js",
@@ -250,10 +272,10 @@
250
272
  "ver": "2.x",
251
273
  "component": "lean",
252
274
  "minified": true,
253
- "raw": 88842,
254
- "gzipped": 24259,
275
+ "raw": 112788,
276
+ "gzipped": 29964,
255
277
  "sourceMap": true,
256
- "integrity": "sha384-9YLaX7h+JLz3y1e6zchJGxqfriIKibisxUisTqRyqbgZn5nqfdyjV1INqwmlH4QU"
278
+ "integrity": "sha384-mhHV7Zd3oamSfYyU/mX5OD3xw3gqCiUvYmm2IM9/T4GrrD0Aj9Bvif9Aae/eLT36"
257
279
  },
258
280
  {
259
281
  "file": "bitwrench.umd.min.js",
@@ -261,10 +283,10 @@
261
283
  "ver": "2.x",
262
284
  "component": "core",
263
285
  "minified": true,
264
- "raw": 114331,
265
- "gzipped": 31134,
286
+ "raw": 146058,
287
+ "gzipped": 38989,
266
288
  "sourceMap": true,
267
- "integrity": "sha384-tM+wSNT1/uBh5bnJ0FC3PSAUPZpHmnzKSH2B09OliUemDhAMAB0keBuVH/RvzK26"
289
+ "integrity": "sha384-aXIq51Hw9LQDyIeq4mJEbvUkPf5E8tfkj/ffyQ+fOdE569kRu0IBglpMIiE2Cpt9"
268
290
  }
269
291
  ]
270
292
  }
package/dist/sri.json CHANGED
@@ -1,31 +1,33 @@
1
1
  {
2
- "version": "2.0.13",
2
+ "version": "2.0.15",
3
3
  "algorithm": "sha384",
4
- "generated": "2026-03-07",
4
+ "generated": "2026-03-10",
5
5
  "files": {
6
- "bitwrench-code-edit.cjs.js": "sha384-LdV0H4QxwNTgvqxIne+CnVQ9AJfek7wlcMHhmAjZVDgyKJLt/I3lp0ekYz/hCVk1",
7
- "bitwrench-code-edit.es5.js": "sha384-sBLjtcsTQoV/GLwRAhyqD8WI8sAvtz6dlj1mo5pe3O3o7TWZT3po88bPA/PJUTTp",
8
- "bitwrench-code-edit.es5.min.js": "sha384-XNcaCUcUU4XOJVmeWI+avesw+ETXyt6Vv71sjKoxUgjZXM9bOQNE34EtkLDrZK42",
9
- "bitwrench-code-edit.esm.js": "sha384-UmRzxiRly6y4cG5qxsRBktHV5AqLcB3l58ZJobqtcXNTXlcVE7LCHA5Gj9dZ8iEz",
10
- "bitwrench-code-edit.esm.min.js": "sha384-G4L3pTvQ1YUtLPhYfI9g1ZGUI4ZfeIZ1KB5dHacFdeuSjHwdb0md7+cHva6z4aoV",
11
- "bitwrench-code-edit.umd.js": "sha384-9CDC2fwqR2lR2Hou3xXgx4WEfTzmpNzb8NCuPTd2BXIeS0h9uBrjFQvV+JAjfEid",
12
- "bitwrench-code-edit.umd.min.js": "sha384-ehHSdbkdQ2kwCffmQ1+M2R4v+1louzELVGTAGRBNu7zXIwbxAog6dtEIpc1xzTdo",
13
- "bitwrench-lean.cjs.js": "sha384-pK6xEytzsc4cER0mfAUlcTEbD650K2ACN74TBEReYu8O/xaiJeHKvRaIjMmeWgsj",
14
- "bitwrench-lean.cjs.min.js": "sha384-Kn4RQBkFECdOwPJ8/mFpGI17B3n8nrMusDI9G7FG+zzEr3UwOa/Rq6D4On3ChfeL",
15
- "bitwrench-lean.es5.js": "sha384-GVYCgQhyJ88rMq0T3Rw24ISABcfwkqSj6snDzAjql5KOM0of3kpO1g2crKZSPZeA",
16
- "bitwrench-lean.es5.min.js": "sha384-e8szKtY6GciQncnHIIJKO7UOayImesVg/FY/dnrkBjVVsMRqInP+rZrm3nK+LmBK",
17
- "bitwrench-lean.esm.js": "sha384-BzvnGkOZWR7NGbZ7DBaG7YcOT/nIvrPG5Hlvi4NnAZFtXjDmr1hnWAYAgQoSdNnv",
18
- "bitwrench-lean.esm.min.js": "sha384-voZ7Rb6UJN2GVpYTi6w8dZkGfyBoLj+65nGknbI/5nr/acYCnfsU1XRrcbXMKuHE",
19
- "bitwrench-lean.umd.js": "sha384-0gpOij1EQYqN9TEvVM7Hw4kJHBaTTVV0h78uet88qIkZiTFAcDsjRuDyM2kIKZyL",
20
- "bitwrench-lean.umd.min.js": "sha384-9YLaX7h+JLz3y1e6zchJGxqfriIKibisxUisTqRyqbgZn5nqfdyjV1INqwmlH4QU",
21
- "bitwrench.cjs.js": "sha384-DuTaZdszqMEi1J8i6HcKZXOFMEO3+37H0AQP6qgSV2N1fARN1B4ikAfg9t940RJz",
22
- "bitwrench.cjs.min.js": "sha384-E8hNQzp5diUhaaX6sC9r95I+UUzsmgSkAaXFYb5jfogfDlZerdVpM9aIiUWFvtSP",
23
- "bitwrench.css": "sha384-LuYgAZ4GP4xOWBjQgt/6y2f3i5JeR7BZgDhx5PIrIHTZ45IOuxdwh2KI0k7INzp3",
24
- "bitwrench.es5.js": "sha384-96s7kXsqky4PrP/l3J1Zr3guW+5nzrFYuJTp0kUMn8/IQ4nbhdaIfQfnC9lyiuE3",
25
- "bitwrench.es5.min.js": "sha384-EqVhSF6rix6Z67Q2j+mGVT4vTrIpiwB5RgOjQECDch3AOSCP8PU4nEx1OKZ+ZE8X",
26
- "bitwrench.esm.js": "sha384-dlxlNMdGcP0ywSXTKkrlYpII8c5gPuV52aVJwNRGscvUZMXjqe7udOY4YRzSR5/k",
27
- "bitwrench.esm.min.js": "sha384-gdTZ3Dq1jMC93PRGPPbOkz+WpipfwBUlrgVmhtzhI+QnN+AdC+irpTQOdfnJi91d",
28
- "bitwrench.umd.js": "sha384-UmJ2qAzI4VinBscTiJwPpRI3qgM6GIXSa9sEGfLvCBrRdRSGMRnxbsaLl7s/YEqK",
29
- "bitwrench.umd.min.js": "sha384-tM+wSNT1/uBh5bnJ0FC3PSAUPZpHmnzKSH2B09OliUemDhAMAB0keBuVH/RvzK26"
6
+ "bitwrench-code-edit.cjs.js": "sha384-/bNOqn95bkCYJCgvldLJRxaxrEMiOL9piW7D31QjgOnE0Bj8ke48M7R3K/ZHi5vz",
7
+ "bitwrench-code-edit.cjs.min.js": "sha384-ps1tCwgt+YjAGinSLyGKY5ZsnV7KutVYKxVWYruS3gP3TbyafQJySwih5Fn80ZFK",
8
+ "bitwrench-code-edit.es5.js": "sha384-vGhHBjXz591gQgE+pckuNJWsnPqisOchcSe04rudf6hYVBAwoNhRSemylUapsDv7",
9
+ "bitwrench-code-edit.es5.min.js": "sha384-g6K2l3no0codjtoRbKBLqn2eYGqYbRitFqxpw7aO2u8Nbx++4EOmAG/XqcENBTAK",
10
+ "bitwrench-code-edit.esm.js": "sha384-xEJF0fnbv5RPG+mh6uPb6tKmV1icZ1ZV46+LP+JzNNDYy43AOc32UdmRtbPM/CnX",
11
+ "bitwrench-code-edit.esm.min.js": "sha384-kxjp+unxOUGXueWiOYK7r9snqgLE2d1wpjybHrEILes1+bS3rnWVhg2OVFScnzY/",
12
+ "bitwrench-code-edit.umd.js": "sha384-B5lapHaMiyQ0mnd41EYO8N2F9vWyw+G1pocd0s2IxztRCoqLxQ9yMfyFJqdUB7s1",
13
+ "bitwrench-code-edit.umd.min.js": "sha384-IHAz1etjFsiS5iYQUamcrysiuhJ64CrgwaXcTyyoxOAiXnDpCcGW/q1C/+/RddbX",
14
+ "bitwrench-lean.cjs.js": "sha384-qlWuZnAZS14Zp/FKrTGtfH8AwI4A9mrXNh3cq8kBDkUlo4ZI3hQEiCRQwfQpn0ic",
15
+ "bitwrench-lean.cjs.min.js": "sha384-pVY2BB/U0dn5JZM/r47Hv61bgiSryf9ZIePN+hQkhkFAkFJrsDqIT+HjQB3D7WRw",
16
+ "bitwrench-lean.es5.js": "sha384-Xb+Lra8oUB0jRRTwFyfVppS/lFOiHthdu4eYWYbRqWkJ/PbByyhEoQV5bHB8EvPI",
17
+ "bitwrench-lean.es5.min.js": "sha384-z4Qf0p+RbLyXVhft6XrqDFapRaKh4fh6CrJSwdRruVlY1oHp+sMpuEtoyhuR5nGA",
18
+ "bitwrench-lean.esm.js": "sha384-JtZWDCq1UZGqvFUUtuMFeSAruMdCSK7xZq3XOjZv8AE03IF8+nRjmlyfJCZDGVNV",
19
+ "bitwrench-lean.esm.min.js": "sha384-8uBjskc3WvHSTbe8ZGOUOCc1UJH85iBRcdDqnsjBC6EI1Skzu5fWR/i9hgpA3psD",
20
+ "bitwrench-lean.umd.js": "sha384-iV0Un/IlMdxbT3Mfi6fVTXkaVP2NDVLa2u3K5dQtKXBEhVYfPMv+jv9lultT+kSh",
21
+ "bitwrench-lean.umd.min.js": "sha384-mhHV7Zd3oamSfYyU/mX5OD3xw3gqCiUvYmm2IM9/T4GrrD0Aj9Bvif9Aae/eLT36",
22
+ "bitwrench.cjs.js": "sha384-Gl3hM4aTs/afOUDefxOfyriRruD69mJsC7pChob/Esg3qdV3+RoY90wLsThEJN4n",
23
+ "bitwrench.cjs.min.js": "sha384-/mPUPWrJE0/9176PeMBw0hZGBFtQ0LNzRk8F9EK3mkVBQFQUpRmOrxy7q7KDEP4C",
24
+ "bitwrench.css": "sha384-G7kC+3If3rNHBh23G8LHZa3NvPsf+s5fNGaXAZkqtg8Nas0WmhOdWHTbqTEijKQM",
25
+ "bitwrench.es5.js": "sha384-Q8ctFLQAXaBuM5JXFwCUQelQUKE21k0Gc5i+2nsM3Ym329Fh930RYk4b5ateACSp",
26
+ "bitwrench.es5.min.js": "sha384-pb/2mUSIQW5L3jH21snKnd3Hp+VD8CmxKgFVr2qgZQbruDeY1PLCp/eLU70C+A1T",
27
+ "bitwrench.esm.js": "sha384-HAlG1Fs6lhPxVP5zn0rkgyf2GqvLCjos71Va0lTF1HvSX6eWOs8LWXQ1ku+J7/9I",
28
+ "bitwrench.esm.min.js": "sha384-GWl9IOVhYVEa51cA+COtFM9wFkfD3fQqO3DYTVGl8QJOP3dbuuDLWtP0aFwZBveF",
29
+ "bitwrench.min.css": "sha384-okjJZx1EoXcKaEospKzJk0MxyQprKaGYaqBYGWEHkknFyOWhfAsf0gYCw7hU7mAs",
30
+ "bitwrench.umd.js": "sha384-MvEk3PxsoQTdUunY7vEMh+ysBA7tIErjU/vCj5MF3INyxTWXbqiwYwud+8erXEQ9",
31
+ "bitwrench.umd.min.js": "sha384-aXIq51Hw9LQDyIeq4mJEbvUkPf5E8tfkj/ffyQ+fOdE569kRu0IBglpMIiE2Cpt9"
30
32
  }
31
33
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bitwrench",
3
- "version": "2.0.13",
3
+ "version": "2.0.15",
4
4
  "description": "A library for javascript UI functions.",
5
5
  "main": "./dist/bitwrench.umd.js",
6
6
  "repository": {
@@ -72,8 +72,8 @@
72
72
  },
73
73
  "scripts": {
74
74
  "generate-version": "node tools/generate-version.cjs",
75
- "prebuild": "npm run generate-version",
76
- "build": "rollup --config && npm run build:css",
75
+ "prebuild": "npm run generate-version && npm run lint",
76
+ "build": "rollup --config && npm run build:css && npm run build:metrics",
77
77
  "build:css": "node src/generate-css.js",
78
78
  "build:readme": "node tools/build-readme.js",
79
79
  "build:watch": "rollup --config --watch",
@@ -81,7 +81,7 @@
81
81
  "build_1_x": "./tools/update-bw-package.js package.json package.json && ./tools/export-bw-default-css.js bitwrench.css && uglifyjs bitwrench.js -o bitwrench.min.js && uglifyjs bitwrench_ESM.js -o bitwrench_ESM.min.js && ./tools/umd2ModuleHack.js && npm pack",
82
82
  "cleanbuild": "npm run clean && npm run build && npm run build:generated",
83
83
  "oldtest": "./node_modules/mocha/bin/mocha test/bitwrench_test.js --reporter spec",
84
- "test": "c8 --reporter=text mocha ./test/bitwrench_ci.js ./test/bitwrench_test_coverage.js ./test/bitwrench_test_pubsub.js ./test/bitwrench_test_theme.js ./test/bitwrench_test_nodemap.js ./test/bitwrench_test_components.js -r jsdom-global/register",
84
+ "test": "c8 --reporter=text mocha ./test/bitwrench_ci.js ./test/bitwrench_test_coverage.js ./test/bitwrench_test_pubsub.js ./test/bitwrench_test_theme.js ./test/bitwrench_test_nodemap.js ./test/bitwrench_test_components.js ./test/bitwrench_test_component_handle.js ./test/bitwrench_test_coverage_gaps.js -r jsdom-global/register",
85
85
  "test:components": "mocha ./test/bitwrench_test_components.js -r jsdom-global/register",
86
86
  "test:v1": "c8 --reporter=text mocha ./test/bitwrench_test.js -r jsdom-global/",
87
87
  "test:pending": "mocha ./test/bitwrench_test_pending.js -r jsdom-global/",
@@ -102,8 +102,10 @@
102
102
  "test:examples": "playwright test tests/examples.spec.js",
103
103
  "test:coverage": "c8 --reporter=html --reporter=text mocha ./test/bitwrench_ci.js -r jsdom-global/",
104
104
  "build:api-reference": "node tools/build-api-reference.js",
105
+ "build:api-md": "node tools/build-api-markdown.js",
105
106
  "build:builds": "node tools/build-builds-manifest.js",
106
- "build:generated": "npm run generate-sri && npm run build:builds && npm run build:readme && npm run build:api-reference",
107
+ "build:metrics": "node tools/build-metrics.cjs",
108
+ "build:generated": "npm run generate-sri && npm run build:builds && npm run build:readme && npm run build:api-reference && npm run build:api-md",
107
109
  "build:release": "npm run cleanbuild && npm run test && node tools/build-release.js",
108
110
  "release": "node tools/release.js",
109
111
  "start-release": "node tools/start-release.js"
package/readme.html CHANGED
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <meta name="generator" content="bitwrench v2.0.12">
6
+ <meta name="generator" content="bitwrench v2.0.15">
7
7
  <title>bitwrench.js - README</title>
8
8
  <link rel="icon" type="image/x-icon" href="images/favicon.ico">
9
9
  <script src="dist/bitwrench.umd.js"></script>
@@ -44,15 +44,15 @@
44
44
  }
45
45
  .readme-body img { max-width: 100%; height: auto; }
46
46
  .readme-body table { border-collapse: collapse; width: 100%; margin: 1em 0; }
47
- .readme-body th, .readme-body td { border: 1px solid var(--bw-card-border); padding: 0.5em 0.75em; text-align: left; }
48
- .readme-body th { background: var(--bw-teal-bg); font-weight: 600; }
49
- .readme-body h2 { border-bottom: 1px solid var(--bw-card-border); padding-bottom: 0.3em; }
50
- .readme-body a { color: var(--bw-teal); }
51
- .readme-body a:hover { color: var(--bw-teal-dark); }
52
- .readme-body pre { background: var(--bw-code-bg); border-radius: 6px; overflow-x: auto; border: 1px solid rgba(0,0,0,0.1); }
53
- .readme-body pre code { display: block; padding: 1rem; color: var(--bw-code-text); font-family: var(--bw-font-mono); font-size: 0.8125rem; line-height: 1.6; background: transparent; border: none; }
54
- .readme-body code:not(pre code) { background: var(--bw-teal-light); color: var(--bw-teal-dark); padding: 0.15em 0.4em; border-radius: 3px; font-size: 0.85em; font-family: var(--bw-font-mono); }
55
- .readme-body blockquote { border-left: 4px solid var(--bw-teal); margin-left: 0; padding-left: 1em; color: var(--bw-text-secondary); }
47
+ .readme-body th, .readme-body td { border: 1px solid var(--bw_card_border); padding: 0.5em 0.75em; text-align: left; }
48
+ .readme-body th { background: var(--bw_teal_bg); font-weight: 600; }
49
+ .readme-body h2 { border-bottom: 1px solid var(--bw_card_border); padding-bottom: 0.3em; }
50
+ .readme-body a { color: var(--bw_teal); }
51
+ .readme-body a:hover { color: var(--bw_teal_dark); }
52
+ .readme-body pre { background: var(--bw_code_bg); border-radius: 6px; overflow-x: auto; border: 1px solid rgba(0,0,0,0.1); }
53
+ .readme-body pre code { display: block; padding: 1rem; color: var(--bw_code_text); font-family: var(--bw_font_mono); font-size: 0.8125rem; line-height: 1.6; background: transparent; border: none; }
54
+ .readme-body code:not(pre code) { background: var(--bw_teal_light); color: var(--bw_teal_dark); padding: 0.15em 0.4em; border-radius: 3px; font-size: 0.85em; font-family: var(--bw_font_mono); }
55
+ .readme-body blockquote { border-left: 4px solid var(--bw_teal); margin-left: 0; padding-left: 1em; color: var(--bw_text_secondary); }
56
56
  </style>
57
57
  </head>
58
58
  <body>
@@ -95,7 +95,7 @@ const bw = require(&#39;bitwrench&#39;);</code></pre><p>Or include directly in a
95
95
  <li class="quikdown-li"><strong class="quikdown-strong">HTML from plain objects</strong> — describe UI as JavaScript objects, render to live DOM with <code class="quikdown-code">bw.DOM()</code> or to HTML strings with <code class="quikdown-code">bw.html()</code> for server-side rendering, emails, and static pages</li>
96
96
  <li class="quikdown-li"><strong class="quikdown-strong">Built-in reactivity</strong> — <code class="quikdown-code">bw.update()</code> re-renders components when state changes, <code class="quikdown-code">bw.patch()</code> updates individual elements by ID, <code class="quikdown-code">bw.pub()</code>/<code class="quikdown-code">bw.sub()</code> provides decoupled messaging between any part of the application</li>
97
97
  <li class="quikdown-li"><strong class="quikdown-strong">CSS and theme generation</strong> — <code class="quikdown-code">bw.css()</code> generates stylesheets from objects, <code class="quikdown-code">bw.generateTheme()</code> derives a complete visual theme (buttons, alerts, badges, cards, forms, tables, dark mode) from 2-3 seed colors</li>
98
- <li class="quikdown-li"><strong class="quikdown-strong">30+ ready-made components</strong> — cards, buttons, sortable tables, form inputs, alerts, badges, tabs, navbars, spinners, progress bars — each a single function call that returns a composable object</li>
98
+ <li class="quikdown-li"><strong class="quikdown-strong">45+ ready-made components</strong> — cards, buttons, sortable tables, form inputs, modals, dropdowns, accordions, tooltips, popovers, toasts, timelines, steppers, file uploads, stat cards — each a single function call that returns a composable object</li>
99
99
  <li class="quikdown-li"><strong class="quikdown-strong">Static site CLI</strong> — the <code class="quikdown-code">bitwrench</code> command converts Markdown, HTML, and JSON files into styled, self-contained pages with theme support</li>
100
100
  <li class="quikdown-li"><strong class="quikdown-strong">Utilities</strong> — color interpolation, random data generation, lorem ipsum, cookies, URL params, file I/O for both browser and Node.js</li>
101
101
  </ul><h2 class="quikdown-h2">Getting Started</h2>
@@ -149,7 +149,7 @@ bw.pub(&#39;item-added&#39;, { name: &#39;Widget&#39; });</code></pre><h2 class=
149
149
  secondary: &#39;#cc6633&#39;
150
150
  });
151
151
 
152
- bw.toggleDarkMode();</code></pre><h2 class="quikdown-h2">Core API</h2>
152
+ bw.toggleTheme(); // switch between primary and alternate palettes</code></pre><h2 class="quikdown-h2">Core API</h2>
153
153
  <table class="quikdown-table">
154
154
  <thead class="quikdown-thead">
155
155
  <tr class="quikdown-tr">
@@ -243,11 +243,11 @@ bitwrench doc.md -o doc.html --standalone --theme &quot;#336699,#cc6633&quot;</c
243
243
  <li class="quikdown-li"><a class="quikdown-a" href="https://deftio.github.io/bitwrench/pages/05-state.html" rel="noopener noreferrer">State &amp; Interactivity</a> — <code class="quikdown-code">bw.patch()</code>, <code class="quikdown-code">bw.update()</code>, pub/sub</li>
244
244
  <li class="quikdown-li"><a class="quikdown-a" href="https://deftio.github.io/bitwrench/pages/06-tic-tac-toe-tutorial.html" rel="noopener noreferrer">Tic Tac Toe Tutorial</a> — step-by-step game with state management</li>
245
245
  <li class="quikdown-li"><a class="quikdown-a" href="https://deftio.github.io/bitwrench/pages/07-framework-comparison.html" rel="noopener noreferrer">Framework Comparison</a> — bitwrench vs React, Vue, Svelte</li>
246
- <li class="quikdown-li"><a class="quikdown-a" href="https://github.com/deftio/bitwrench/blob/main/dev/llm-bitwrench-guide.md" rel="noopener noreferrer">LLM Guide</a> — single-file reference for AI-assisted bitwrench development</li>
246
+ <li class="quikdown-li"><a class="quikdown-a" href="https://deftio.github.io/bitwrench/pages/10-themes.html" rel="noopener noreferrer">Themes</a> — interactive theme generator with presets, dark mode, and CSS export</li>
247
247
  </ul><h2 class="quikdown-h2">Development</h2>
248
248
  <p><pre class="quikdown-pre"><code class="language-bash">npm install # install dev dependencies
249
249
  npm run build # build all dist formats (UMD, ESM, CJS, ES5)
250
- npm test # run unit tests (344 tests)
250
+ npm test # run unit tests (558 tests)
251
251
  npm run test:cli # run CLI tests (49 tests)
252
252
  npm run test:e2e # run Playwright browser tests
253
253
  npm run lint # run ESLint