domma-js 0.3.0-a

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.
@@ -0,0 +1,538 @@
1
+ /*!
2
+ * Domma Grid CSS v0.3.0a
3
+ * Dynamic Object Manipulation & Modeling API
4
+ * (c) 2025 Darryl Waterhouse & DCBW-IT
5
+ * Built: 2025-12-30T10:50:46.793Z
6
+ * Commit: 8a467f0
7
+ */
8
+
9
+ /**
10
+ * Domma Grid System
11
+ * Bootstrap-style 12-column flexbox grid with mobile-first stacking
12
+ *
13
+ * Usage:
14
+ * <div class="row">
15
+ * <div class="col-4">Column 1</div>
16
+ * <div class="col-4">Column 2</div>
17
+ * <div class="col-4">Column 3</div>
18
+ * </div>
19
+ *
20
+ * Mobile-first: columns stack below 576px, activate grid above
21
+ */
22
+
23
+ /* ============================================
24
+ ROW CONTAINER
25
+ ============================================ */
26
+
27
+ .row {
28
+ display: flex;
29
+ flex-wrap: wrap;
30
+ margin-left: calc(var(--dm-space-3, 0.75rem) * -1);
31
+ margin-right: calc(var(--dm-space-3, 0.75rem) * -1);
32
+ }
33
+
34
+ /* No gutters variant */
35
+ .row.no-gutters {
36
+ margin-left: 0;
37
+ margin-right: 0;
38
+ }
39
+
40
+ .row.no-gutters > [class*="col"] {
41
+ padding-left: 0;
42
+ padding-right: 0;
43
+ }
44
+
45
+ /* ============================================
46
+ COLUMN BASE STYLES
47
+ ============================================ */
48
+
49
+ /* Base column styles - mobile-first (stacked) */
50
+ .col,
51
+ .col-1, .col-2, .col-3, .col-4, .col-5, .col-6,
52
+ .col-7, .col-8, .col-9, .col-10, .col-11, .col-12,
53
+ .col-auto {
54
+ position: relative;
55
+ width: 100%;
56
+ padding-left: var(--dm-space-3, 0.75rem);
57
+ padding-right: var(--dm-space-3, 0.75rem);
58
+ box-sizing: border-box;
59
+ }
60
+
61
+ /* Equal-width column */
62
+ .col {
63
+ flex: 1 0 0%;
64
+ max-width: 100%;
65
+ }
66
+
67
+ /* Auto-width column */
68
+ .col-auto {
69
+ flex: 0 0 auto;
70
+ width: auto;
71
+ max-width: 100%;
72
+ }
73
+
74
+ /* ============================================
75
+ COLUMN WIDTHS (activate at ≥576px)
76
+ ============================================ */
77
+
78
+ @media (min-width: 576px) {
79
+ .col-1 {
80
+ flex: 0 0 auto;
81
+ width: 8.333333%;
82
+ }
83
+
84
+ .col-2 {
85
+ flex: 0 0 auto;
86
+ width: 16.666667%;
87
+ }
88
+
89
+ .col-3 {
90
+ flex: 0 0 auto;
91
+ width: 25%;
92
+ }
93
+
94
+ .col-4 {
95
+ flex: 0 0 auto;
96
+ width: 33.333333%;
97
+ }
98
+
99
+ .col-5 {
100
+ flex: 0 0 auto;
101
+ width: 41.666667%;
102
+ }
103
+
104
+ .col-6 {
105
+ flex: 0 0 auto;
106
+ width: 50%;
107
+ }
108
+
109
+ .col-7 {
110
+ flex: 0 0 auto;
111
+ width: 58.333333%;
112
+ }
113
+
114
+ .col-8 {
115
+ flex: 0 0 auto;
116
+ width: 66.666667%;
117
+ }
118
+
119
+ .col-9 {
120
+ flex: 0 0 auto;
121
+ width: 75%;
122
+ }
123
+
124
+ .col-10 {
125
+ flex: 0 0 auto;
126
+ width: 83.333333%;
127
+ }
128
+
129
+ .col-11 {
130
+ flex: 0 0 auto;
131
+ width: 91.666667%;
132
+ }
133
+
134
+ .col-12 {
135
+ flex: 0 0 auto;
136
+ width: 100%;
137
+ }
138
+ }
139
+
140
+ /* ============================================
141
+ OFFSET CLASSES (activate at ≥576px)
142
+ ============================================ */
143
+
144
+ @media (min-width: 576px) {
145
+ .offset-0 {
146
+ margin-left: 0;
147
+ }
148
+
149
+ .offset-1 {
150
+ margin-left: 8.333333%;
151
+ }
152
+
153
+ .offset-2 {
154
+ margin-left: 16.666667%;
155
+ }
156
+
157
+ .offset-3 {
158
+ margin-left: 25%;
159
+ }
160
+
161
+ .offset-4 {
162
+ margin-left: 33.333333%;
163
+ }
164
+
165
+ .offset-5 {
166
+ margin-left: 41.666667%;
167
+ }
168
+
169
+ .offset-6 {
170
+ margin-left: 50%;
171
+ }
172
+
173
+ .offset-7 {
174
+ margin-left: 58.333333%;
175
+ }
176
+
177
+ .offset-8 {
178
+ margin-left: 66.666667%;
179
+ }
180
+
181
+ .offset-9 {
182
+ margin-left: 75%;
183
+ }
184
+
185
+ .offset-10 {
186
+ margin-left: 83.333333%;
187
+ }
188
+
189
+ .offset-11 {
190
+ margin-left: 91.666667%;
191
+ }
192
+ }
193
+
194
+ /* ============================================
195
+ ROW ALIGNMENT UTILITIES
196
+ ============================================ */
197
+
198
+ /* Horizontal alignment */
199
+ .row.justify-start {
200
+ justify-content: flex-start;
201
+ }
202
+
203
+ .row.justify-center {
204
+ justify-content: center;
205
+ }
206
+
207
+ .row.justify-end {
208
+ justify-content: flex-end;
209
+ }
210
+
211
+ .row.justify-between {
212
+ justify-content: space-between;
213
+ }
214
+
215
+ .row.justify-around {
216
+ justify-content: space-around;
217
+ }
218
+
219
+ .row.justify-evenly {
220
+ justify-content: space-evenly;
221
+ }
222
+
223
+ /* Vertical alignment */
224
+ .row.align-start {
225
+ align-items: flex-start;
226
+ }
227
+
228
+ .row.align-center {
229
+ align-items: center;
230
+ }
231
+
232
+ .row.align-end {
233
+ align-items: flex-end;
234
+ }
235
+
236
+ .row.align-stretch {
237
+ align-items: stretch;
238
+ }
239
+
240
+ .row.align-baseline {
241
+ align-items: baseline;
242
+ }
243
+
244
+ /* ============================================
245
+ COLUMN ORDER UTILITIES
246
+ ============================================ */
247
+
248
+ .order-first {
249
+ order: -1;
250
+ }
251
+
252
+ .order-last {
253
+ order: 13;
254
+ }
255
+
256
+ .order-0 {
257
+ order: 0;
258
+ }
259
+
260
+ .order-1 {
261
+ order: 1;
262
+ }
263
+
264
+ .order-2 {
265
+ order: 2;
266
+ }
267
+
268
+ .order-3 {
269
+ order: 3;
270
+ }
271
+
272
+ .order-4 {
273
+ order: 4;
274
+ }
275
+
276
+ .order-5 {
277
+ order: 5;
278
+ }
279
+
280
+ .order-6 {
281
+ order: 6;
282
+ }
283
+
284
+ .order-7 {
285
+ order: 7;
286
+ }
287
+
288
+ .order-8 {
289
+ order: 8;
290
+ }
291
+
292
+ .order-9 {
293
+ order: 9;
294
+ }
295
+
296
+ .order-10 {
297
+ order: 10;
298
+ }
299
+
300
+ .order-11 {
301
+ order: 11;
302
+ }
303
+
304
+ .order-12 {
305
+ order: 12;
306
+ }
307
+
308
+ /* ============================================
309
+ GAP UTILITIES (for .row)
310
+ ============================================ */
311
+
312
+ .row.gap-0 {
313
+ gap: 0;
314
+ }
315
+
316
+ .row.gap-1 {
317
+ gap: var(--dm-space-1, 0.25rem);
318
+ }
319
+
320
+ .row.gap-2 {
321
+ gap: var(--dm-space-2, 0.5rem);
322
+ }
323
+
324
+ .row.gap-3 {
325
+ gap: var(--dm-space-3, 0.75rem);
326
+ }
327
+
328
+ .row.gap-4 {
329
+ gap: var(--dm-space-4, 1rem);
330
+ }
331
+
332
+ .row.gap-5 {
333
+ gap: var(--dm-space-5, 1.5rem);
334
+ }
335
+
336
+ .row.gap-6 {
337
+ gap: var(--dm-space-6, 2rem);
338
+ }
339
+
340
+ /* ============================================
341
+ CSS GRID UTILITIES
342
+ ============================================ */
343
+
344
+ /* Base grid class */
345
+ .grid {
346
+ display: grid;
347
+ }
348
+
349
+ /* Column classes (1-12 columns) */
350
+ .grid-cols-1 {
351
+ grid-template-columns: repeat(1, minmax(0, 1fr));
352
+ }
353
+
354
+ .grid-cols-2 {
355
+ grid-template-columns: repeat(2, minmax(0, 1fr));
356
+ }
357
+
358
+ .grid-cols-3 {
359
+ grid-template-columns: repeat(3, minmax(0, 1fr));
360
+ }
361
+
362
+ .grid-cols-4 {
363
+ grid-template-columns: repeat(4, minmax(0, 1fr));
364
+ }
365
+
366
+ .grid-cols-5 {
367
+ grid-template-columns: repeat(5, minmax(0, 1fr));
368
+ }
369
+
370
+ .grid-cols-6 {
371
+ grid-template-columns: repeat(6, minmax(0, 1fr));
372
+ }
373
+
374
+ .grid-cols-7 {
375
+ grid-template-columns: repeat(7, minmax(0, 1fr));
376
+ }
377
+
378
+ .grid-cols-8 {
379
+ grid-template-columns: repeat(8, minmax(0, 1fr));
380
+ }
381
+
382
+ .grid-cols-9 {
383
+ grid-template-columns: repeat(9, minmax(0, 1fr));
384
+ }
385
+
386
+ .grid-cols-10 {
387
+ grid-template-columns: repeat(10, minmax(0, 1fr));
388
+ }
389
+
390
+ .grid-cols-11 {
391
+ grid-template-columns: repeat(11, minmax(0, 1fr));
392
+ }
393
+
394
+ .grid-cols-12 {
395
+ grid-template-columns: repeat(12, minmax(0, 1fr));
396
+ }
397
+
398
+ /* Auto-fit utility */
399
+ .grid-auto-fit {
400
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
401
+ }
402
+
403
+ /* Standalone gap utilities (work with .grid and .row) */
404
+ .gap-0 {
405
+ gap: 0;
406
+ }
407
+
408
+ .gap-1 {
409
+ gap: var(--dm-space-1, 0.25rem);
410
+ }
411
+
412
+ .gap-2 {
413
+ gap: var(--dm-space-2, 0.5rem);
414
+ }
415
+
416
+ .gap-3 {
417
+ gap: var(--dm-space-3, 0.75rem);
418
+ }
419
+
420
+ .gap-4 {
421
+ gap: var(--dm-space-4, 1rem);
422
+ }
423
+
424
+ .gap-5 {
425
+ gap: var(--dm-space-5, 1.5rem);
426
+ }
427
+
428
+ .gap-6 {
429
+ gap: var(--dm-space-6, 2rem);
430
+ }
431
+
432
+ /* ============================================
433
+ RESPONSIVE GRID UTILITIES (Tablet ≥768px)
434
+ ============================================ */
435
+
436
+ @media (min-width: 768px) {
437
+ .grid-cols-md-1 {
438
+ grid-template-columns: repeat(1, minmax(0, 1fr));
439
+ }
440
+
441
+ .grid-cols-md-2 {
442
+ grid-template-columns: repeat(2, minmax(0, 1fr));
443
+ }
444
+
445
+ .grid-cols-md-3 {
446
+ grid-template-columns: repeat(3, minmax(0, 1fr));
447
+ }
448
+
449
+ .grid-cols-md-4 {
450
+ grid-template-columns: repeat(4, minmax(0, 1fr));
451
+ }
452
+
453
+ .grid-cols-md-5 {
454
+ grid-template-columns: repeat(5, minmax(0, 1fr));
455
+ }
456
+
457
+ .grid-cols-md-6 {
458
+ grid-template-columns: repeat(6, minmax(0, 1fr));
459
+ }
460
+
461
+ .grid-cols-md-7 {
462
+ grid-template-columns: repeat(7, minmax(0, 1fr));
463
+ }
464
+
465
+ .grid-cols-md-8 {
466
+ grid-template-columns: repeat(8, minmax(0, 1fr));
467
+ }
468
+
469
+ .grid-cols-md-9 {
470
+ grid-template-columns: repeat(9, minmax(0, 1fr));
471
+ }
472
+
473
+ .grid-cols-md-10 {
474
+ grid-template-columns: repeat(10, minmax(0, 1fr));
475
+ }
476
+
477
+ .grid-cols-md-11 {
478
+ grid-template-columns: repeat(11, minmax(0, 1fr));
479
+ }
480
+
481
+ .grid-cols-md-12 {
482
+ grid-template-columns: repeat(12, minmax(0, 1fr));
483
+ }
484
+ }
485
+
486
+ /* ============================================
487
+ RESPONSIVE GRID UTILITIES (Desktop ≥1024px)
488
+ ============================================ */
489
+
490
+ @media (min-width: 1024px) {
491
+ .grid-cols-lg-1 {
492
+ grid-template-columns: repeat(1, minmax(0, 1fr));
493
+ }
494
+
495
+ .grid-cols-lg-2 {
496
+ grid-template-columns: repeat(2, minmax(0, 1fr));
497
+ }
498
+
499
+ .grid-cols-lg-3 {
500
+ grid-template-columns: repeat(3, minmax(0, 1fr));
501
+ }
502
+
503
+ .grid-cols-lg-4 {
504
+ grid-template-columns: repeat(4, minmax(0, 1fr));
505
+ }
506
+
507
+ .grid-cols-lg-5 {
508
+ grid-template-columns: repeat(5, minmax(0, 1fr));
509
+ }
510
+
511
+ .grid-cols-lg-6 {
512
+ grid-template-columns: repeat(6, minmax(0, 1fr));
513
+ }
514
+
515
+ .grid-cols-lg-7 {
516
+ grid-template-columns: repeat(7, minmax(0, 1fr));
517
+ }
518
+
519
+ .grid-cols-lg-8 {
520
+ grid-template-columns: repeat(8, minmax(0, 1fr));
521
+ }
522
+
523
+ .grid-cols-lg-9 {
524
+ grid-template-columns: repeat(9, minmax(0, 1fr));
525
+ }
526
+
527
+ .grid-cols-lg-10 {
528
+ grid-template-columns: repeat(10, minmax(0, 1fr));
529
+ }
530
+
531
+ .grid-cols-lg-11 {
532
+ grid-template-columns: repeat(11, minmax(0, 1fr));
533
+ }
534
+
535
+ .grid-cols-lg-12 {
536
+ grid-template-columns: repeat(12, minmax(0, 1fr));
537
+ }
538
+ }
@@ -0,0 +1,166 @@
1
+ /*!
2
+ * Domma Syntax Highlighting CSS v0.3.0a
3
+ * Dynamic Object Manipulation & Modeling API
4
+ * (c) 2025 Darryl Waterhouse & DCBW-IT
5
+ * Built: 2025-12-30T10:50:46.807Z
6
+ * Commit: 8a467f0
7
+ */
8
+
9
+ /**
10
+ * Domma Syntax Highlighting Styles
11
+ *
12
+ * Color-coded syntax highlighting for JavaScript, HTML, and CSS
13
+ * Theme-aware with light/dark mode support
14
+ */
15
+
16
+ /* Syntax token colors - Light theme */
17
+ .syntax-keyword {
18
+ color: #0000ff;
19
+ font-weight: 600;
20
+ }
21
+
22
+ .syntax-string {
23
+ color: #a31515;
24
+ }
25
+
26
+ .syntax-comment {
27
+ color: #008000;
28
+ font-style: italic;
29
+ }
30
+
31
+ .syntax-number {
32
+ color: #098658;
33
+ }
34
+
35
+ .syntax-function {
36
+ color: #795e26;
37
+ }
38
+
39
+ .syntax-class {
40
+ color: #267f99;
41
+ }
42
+
43
+ .syntax-tag {
44
+ color: #800000;
45
+ }
46
+
47
+ .syntax-attr-name {
48
+ color: #e50000;
49
+ }
50
+
51
+ .syntax-attr-value {
52
+ color: #0000ff;
53
+ }
54
+
55
+ .syntax-selector {
56
+ color: #800000;
57
+ }
58
+
59
+ .syntax-property {
60
+ color: #e50000;
61
+ }
62
+
63
+ .syntax-value {
64
+ color: #0451a5;
65
+ }
66
+
67
+ .syntax-operator {
68
+ color: #000000;
69
+ }
70
+
71
+ .syntax-punctuation {
72
+ color: #000000;
73
+ }
74
+
75
+ .syntax-boolean {
76
+ color: #0000ff;
77
+ }
78
+
79
+ .syntax-regex {
80
+ color: #811f3f;
81
+ }
82
+
83
+ /* Dark theme overrides */
84
+ .dm-theme-dark .syntax-keyword {
85
+ color: #569cd6;
86
+ }
87
+
88
+ .dm-theme-dark .syntax-string {
89
+ color: #ce9178;
90
+ }
91
+
92
+ .dm-theme-dark .syntax-comment {
93
+ color: #6a9955;
94
+ }
95
+
96
+ .dm-theme-dark .syntax-number {
97
+ color: #b5cea8;
98
+ }
99
+
100
+ .dm-theme-dark .syntax-function {
101
+ color: #dcdcaa;
102
+ }
103
+
104
+ .dm-theme-dark .syntax-class {
105
+ color: #4ec9b0;
106
+ }
107
+
108
+ .dm-theme-dark .syntax-tag {
109
+ color: #569cd6;
110
+ }
111
+
112
+ .dm-theme-dark .syntax-attr-name {
113
+ color: #9cdcfe;
114
+ }
115
+
116
+ .dm-theme-dark .syntax-attr-value {
117
+ color: #ce9178;
118
+ }
119
+
120
+ .dm-theme-dark .syntax-selector {
121
+ color: #d7ba7d;
122
+ }
123
+
124
+ .dm-theme-dark .syntax-property {
125
+ color: #9cdcfe;
126
+ }
127
+
128
+ .dm-theme-dark .syntax-value {
129
+ color: #ce9178;
130
+ }
131
+
132
+ .dm-theme-dark .syntax-operator {
133
+ color: #d4d4d4;
134
+ }
135
+
136
+ .dm-theme-dark .syntax-punctuation {
137
+ color: #d4d4d4;
138
+ }
139
+
140
+ .dm-theme-dark .syntax-boolean {
141
+ color: #569cd6;
142
+ }
143
+
144
+ .dm-theme-dark .syntax-regex {
145
+ color: #d16969;
146
+ }
147
+
148
+ /* Language badge */
149
+ .syntax-language-badge {
150
+ position: absolute;
151
+ top: 0.5rem;
152
+ right: 0.5rem;
153
+ background: rgba(0, 0, 0, 0.6);
154
+ color: white;
155
+ padding: 0.25rem 0.5rem;
156
+ border-radius: 4px;
157
+ font-size: 0.7rem;
158
+ font-weight: 600;
159
+ text-transform: uppercase;
160
+ z-index: 10;
161
+ }
162
+
163
+ .dm-theme-dark .syntax-language-badge {
164
+ background: rgba(255, 255, 255, 0.1);
165
+ color: rgba(255, 255, 255, 0.8);
166
+ }