@mulmoclaude/accounting-plugin 0.1.0

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 (112) hide show
  1. package/dist/server/accountNormalize.d.ts +3 -0
  2. package/dist/server/accountNormalize.d.ts.map +1 -0
  3. package/dist/server/atomic.d.ts +13 -0
  4. package/dist/server/atomic.d.ts.map +1 -0
  5. package/dist/server/context.d.ts +39 -0
  6. package/dist/server/context.d.ts.map +1 -0
  7. package/dist/server/defaultAccounts.d.ts +3 -0
  8. package/dist/server/defaultAccounts.d.ts.map +1 -0
  9. package/dist/server/eventPublisher.d.ts +14 -0
  10. package/dist/server/eventPublisher.d.ts.map +1 -0
  11. package/dist/server/http.d.ts +3 -0
  12. package/dist/server/http.d.ts.map +1 -0
  13. package/dist/server/index.d.ts +6 -0
  14. package/dist/server/index.d.ts.map +1 -0
  15. package/dist/server/io.d.ts +67 -0
  16. package/dist/server/io.d.ts.map +1 -0
  17. package/dist/server/journal.d.ts +74 -0
  18. package/dist/server/journal.d.ts.map +1 -0
  19. package/dist/server/openingBalances.d.ts +30 -0
  20. package/dist/server/openingBalances.d.ts.map +1 -0
  21. package/dist/server/report.d.ts +98 -0
  22. package/dist/server/report.d.ts.map +1 -0
  23. package/dist/server/router.d.ts +7 -0
  24. package/dist/server/router.d.ts.map +1 -0
  25. package/dist/server/service.d.ts +148 -0
  26. package/dist/server/service.d.ts.map +1 -0
  27. package/dist/server/snapshotCache.d.ts +52 -0
  28. package/dist/server/snapshotCache.d.ts.map +1 -0
  29. package/dist/server/timeSeries.d.ts +47 -0
  30. package/dist/server/timeSeries.d.ts.map +1 -0
  31. package/dist/server/types.d.ts +134 -0
  32. package/dist/server/types.d.ts.map +1 -0
  33. package/dist/server.cjs +2101 -0
  34. package/dist/server.cjs.map +1 -0
  35. package/dist/server.js +2074 -0
  36. package/dist/server.js.map +1 -0
  37. package/dist/shared/actions.d.ts +19 -0
  38. package/dist/shared/actions.d.ts.map +1 -0
  39. package/dist/shared/channels.d.ts +46 -0
  40. package/dist/shared/channels.d.ts.map +1 -0
  41. package/dist/shared/countries.d.ts +51 -0
  42. package/dist/shared/countries.d.ts.map +1 -0
  43. package/dist/shared/currencies.d.ts +34 -0
  44. package/dist/shared/currencies.d.ts.map +1 -0
  45. package/dist/shared/dates.d.ts +15 -0
  46. package/dist/shared/dates.d.ts.map +1 -0
  47. package/dist/shared/errors.d.ts +2 -0
  48. package/dist/shared/errors.d.ts.map +1 -0
  49. package/dist/shared/fiscalYear.d.ts +22 -0
  50. package/dist/shared/fiscalYear.d.ts.map +1 -0
  51. package/dist/shared/index.d.ts +9 -0
  52. package/dist/shared/index.d.ts.map +1 -0
  53. package/dist/shared/timeSeriesEnums.d.ts +5 -0
  54. package/dist/shared/timeSeriesEnums.d.ts.map +1 -0
  55. package/dist/shared.cjs +466 -0
  56. package/dist/shared.cjs.map +1 -0
  57. package/dist/shared.js +432 -0
  58. package/dist/shared.js.map +1 -0
  59. package/dist/style.css +1255 -0
  60. package/dist/vue/Preview.vue.d.ts +8 -0
  61. package/dist/vue/Preview.vue.d.ts.map +1 -0
  62. package/dist/vue/View.vue.d.ts +30 -0
  63. package/dist/vue/View.vue.d.ts.map +1 -0
  64. package/dist/vue/api.d.ts +269 -0
  65. package/dist/vue/api.d.ts.map +1 -0
  66. package/dist/vue/components/AccountEditor.vue.d.ts +19 -0
  67. package/dist/vue/components/AccountEditor.vue.d.ts.map +1 -0
  68. package/dist/vue/components/AccountRow.vue.d.ts +14 -0
  69. package/dist/vue/components/AccountRow.vue.d.ts.map +1 -0
  70. package/dist/vue/components/AccountsList.vue.d.ts +15 -0
  71. package/dist/vue/components/AccountsList.vue.d.ts.map +1 -0
  72. package/dist/vue/components/AccountsModal.vue.d.ts +15 -0
  73. package/dist/vue/components/AccountsModal.vue.d.ts.map +1 -0
  74. package/dist/vue/components/BalanceSheet.vue.d.ts +13 -0
  75. package/dist/vue/components/BalanceSheet.vue.d.ts.map +1 -0
  76. package/dist/vue/components/BookSettings.vue.d.ts +18 -0
  77. package/dist/vue/components/BookSettings.vue.d.ts.map +1 -0
  78. package/dist/vue/components/BookSwitcher.vue.d.ts +17 -0
  79. package/dist/vue/components/BookSwitcher.vue.d.ts.map +1 -0
  80. package/dist/vue/components/DateRangePicker.vue.d.ts +19 -0
  81. package/dist/vue/components/DateRangePicker.vue.d.ts.map +1 -0
  82. package/dist/vue/components/JournalEntryForm.vue.d.ts +19 -0
  83. package/dist/vue/components/JournalEntryForm.vue.d.ts.map +1 -0
  84. package/dist/vue/components/JournalList.vue.d.ts +30 -0
  85. package/dist/vue/components/JournalList.vue.d.ts.map +1 -0
  86. package/dist/vue/components/Ledger.vue.d.ts +21 -0
  87. package/dist/vue/components/Ledger.vue.d.ts.map +1 -0
  88. package/dist/vue/components/NewBookForm.vue.d.ts +20 -0
  89. package/dist/vue/components/NewBookForm.vue.d.ts.map +1 -0
  90. package/dist/vue/components/OpeningBalancesForm.vue.d.ts +15 -0
  91. package/dist/vue/components/OpeningBalancesForm.vue.d.ts.map +1 -0
  92. package/dist/vue/components/ProfitLoss.vue.d.ts +19 -0
  93. package/dist/vue/components/ProfitLoss.vue.d.ts.map +1 -0
  94. package/dist/vue/components/accountDraft.d.ts +8 -0
  95. package/dist/vue/components/accountDraft.d.ts.map +1 -0
  96. package/dist/vue/components/accountNumbering.d.ts +20 -0
  97. package/dist/vue/components/accountNumbering.d.ts.map +1 -0
  98. package/dist/vue/components/accountValidation.d.ts +34 -0
  99. package/dist/vue/components/accountValidation.d.ts.map +1 -0
  100. package/dist/vue/components/useLatestRequest.d.ts +10 -0
  101. package/dist/vue/components/useLatestRequest.d.ts.map +1 -0
  102. package/dist/vue/hostContext.d.ts +31 -0
  103. package/dist/vue/hostContext.d.ts.map +1 -0
  104. package/dist/vue/index.d.ts +7 -0
  105. package/dist/vue/index.d.ts.map +1 -0
  106. package/dist/vue/useAccountingChannel.d.ts +13 -0
  107. package/dist/vue/useAccountingChannel.d.ts.map +1 -0
  108. package/dist/vue.cjs +3641 -0
  109. package/dist/vue.cjs.map +1 -0
  110. package/dist/vue.js +3638 -0
  111. package/dist/vue.js.map +1 -0
  112. package/package.json +74 -0
package/dist/style.css ADDED
@@ -0,0 +1,1255 @@
1
+ /*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
2
+ @layer properties {
3
+ @supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color: rgb(from red r g b)))) {
4
+ *, :before, :after, ::backdrop {
5
+ --tw-border-style: solid;
6
+ --tw-font-weight: initial;
7
+ --tw-tracking: initial;
8
+ --tw-shadow: 0 0 #0000;
9
+ --tw-shadow-color: initial;
10
+ --tw-shadow-alpha: 100%;
11
+ --tw-inset-shadow: 0 0 #0000;
12
+ --tw-inset-shadow-color: initial;
13
+ --tw-inset-shadow-alpha: 100%;
14
+ --tw-ring-color: initial;
15
+ --tw-ring-shadow: 0 0 #0000;
16
+ --tw-inset-ring-color: initial;
17
+ --tw-inset-ring-shadow: 0 0 #0000;
18
+ --tw-ring-inset: initial;
19
+ --tw-ring-offset-width: 0px;
20
+ --tw-ring-offset-color: #fff;
21
+ --tw-ring-offset-shadow: 0 0 #0000;
22
+ --tw-blur: initial;
23
+ --tw-brightness: initial;
24
+ --tw-contrast: initial;
25
+ --tw-grayscale: initial;
26
+ --tw-hue-rotate: initial;
27
+ --tw-invert: initial;
28
+ --tw-opacity: initial;
29
+ --tw-saturate: initial;
30
+ --tw-sepia: initial;
31
+ --tw-drop-shadow: initial;
32
+ --tw-drop-shadow-color: initial;
33
+ --tw-drop-shadow-alpha: 100%;
34
+ --tw-drop-shadow-size: initial;
35
+ }
36
+ }
37
+ }
38
+
39
+ @layer theme {
40
+ :root, :host {
41
+ --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
42
+ "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
43
+ --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
44
+ "Courier New", monospace;
45
+ --color-red-300: oklch(80.8% .114 19.571);
46
+ --color-red-500: oklch(63.7% .237 25.331);
47
+ --color-red-600: oklch(57.7% .245 27.325);
48
+ --color-red-700: oklch(50.5% .213 27.518);
49
+ --color-amber-500: oklch(76.9% .188 70.08);
50
+ --color-amber-600: oklch(66.6% .179 58.318);
51
+ --color-green-600: oklch(62.7% .194 149.214);
52
+ --color-blue-50: oklch(97% .014 254.604);
53
+ --color-blue-200: oklch(88.2% .059 254.128);
54
+ --color-blue-400: oklch(70.7% .165 254.624);
55
+ --color-blue-500: oklch(62.3% .214 259.815);
56
+ --color-blue-600: oklch(54.6% .245 262.881);
57
+ --color-blue-700: oklch(48.8% .243 264.376);
58
+ --color-gray-50: oklch(98.5% .002 247.839);
59
+ --color-gray-100: oklch(96.7% .003 264.542);
60
+ --color-gray-200: oklch(92.8% .006 264.531);
61
+ --color-gray-300: oklch(87.2% .01 258.338);
62
+ --color-gray-400: oklch(70.7% .022 261.325);
63
+ --color-gray-500: oklch(55.1% .027 264.364);
64
+ --color-gray-600: oklch(44.6% .03 256.802);
65
+ --color-gray-700: oklch(37.3% .034 259.733);
66
+ --color-gray-800: oklch(27.8% .033 256.848);
67
+ --color-black: #000;
68
+ --color-white: #fff;
69
+ --spacing: .25rem;
70
+ --text-xs: .75rem;
71
+ --text-xs--line-height: calc(1 / .75);
72
+ --text-sm: .875rem;
73
+ --text-sm--line-height: calc(1.25 / .875);
74
+ --text-base: 1rem;
75
+ --text-base--line-height: calc(1.5 / 1);
76
+ --text-lg: 1.125rem;
77
+ --text-lg--line-height: calc(1.75 / 1.125);
78
+ --font-weight-medium: 500;
79
+ --font-weight-semibold: 600;
80
+ --tracking-wide: .025em;
81
+ --default-transition-duration: .15s;
82
+ --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);
83
+ --default-font-family: var(--font-sans);
84
+ --default-mono-font-family: var(--font-mono);
85
+ }
86
+ }
87
+
88
+ @layer base {
89
+ *, :after, :before, ::backdrop {
90
+ box-sizing: border-box;
91
+ border: 0 solid;
92
+ margin: 0;
93
+ padding: 0;
94
+ }
95
+
96
+ ::file-selector-button {
97
+ box-sizing: border-box;
98
+ border: 0 solid;
99
+ margin: 0;
100
+ padding: 0;
101
+ }
102
+
103
+ html, :host {
104
+ -webkit-text-size-adjust: 100%;
105
+ tab-size: 4;
106
+ line-height: 1.5;
107
+ font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
108
+ font-feature-settings: var(--default-font-feature-settings, normal);
109
+ font-variation-settings: var(--default-font-variation-settings, normal);
110
+ -webkit-tap-highlight-color: transparent;
111
+ }
112
+
113
+ hr {
114
+ height: 0;
115
+ color: inherit;
116
+ border-top-width: 1px;
117
+ }
118
+
119
+ abbr:where([title]) {
120
+ -webkit-text-decoration: underline dotted;
121
+ text-decoration: underline dotted;
122
+ }
123
+
124
+ h1, h2, h3, h4, h5, h6 {
125
+ font-size: inherit;
126
+ font-weight: inherit;
127
+ }
128
+
129
+ a {
130
+ color: inherit;
131
+ -webkit-text-decoration: inherit;
132
+ -webkit-text-decoration: inherit;
133
+ -webkit-text-decoration: inherit;
134
+ text-decoration: inherit;
135
+ }
136
+
137
+ b, strong {
138
+ font-weight: bolder;
139
+ }
140
+
141
+ code, kbd, samp, pre {
142
+ font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
143
+ font-feature-settings: var(--default-mono-font-feature-settings, normal);
144
+ font-variation-settings: var(--default-mono-font-variation-settings, normal);
145
+ font-size: 1em;
146
+ }
147
+
148
+ small {
149
+ font-size: 80%;
150
+ }
151
+
152
+ sub, sup {
153
+ vertical-align: baseline;
154
+ font-size: 75%;
155
+ line-height: 0;
156
+ position: relative;
157
+ }
158
+
159
+ sub {
160
+ bottom: -.25em;
161
+ }
162
+
163
+ sup {
164
+ top: -.5em;
165
+ }
166
+
167
+ table {
168
+ text-indent: 0;
169
+ border-color: inherit;
170
+ border-collapse: collapse;
171
+ }
172
+
173
+ :-moz-focusring {
174
+ outline: auto;
175
+ }
176
+
177
+ progress {
178
+ vertical-align: baseline;
179
+ }
180
+
181
+ summary {
182
+ display: list-item;
183
+ }
184
+
185
+ ol, ul, menu {
186
+ list-style: none;
187
+ }
188
+
189
+ img, svg, video, canvas, audio, iframe, embed, object {
190
+ vertical-align: middle;
191
+ display: block;
192
+ }
193
+
194
+ img, video {
195
+ max-width: 100%;
196
+ height: auto;
197
+ }
198
+
199
+ button, input, select, optgroup, textarea {
200
+ font: inherit;
201
+ font-feature-settings: inherit;
202
+ font-variation-settings: inherit;
203
+ letter-spacing: inherit;
204
+ color: inherit;
205
+ opacity: 1;
206
+ background-color: #0000;
207
+ border-radius: 0;
208
+ }
209
+
210
+ ::file-selector-button {
211
+ font: inherit;
212
+ font-feature-settings: inherit;
213
+ font-variation-settings: inherit;
214
+ letter-spacing: inherit;
215
+ color: inherit;
216
+ opacity: 1;
217
+ background-color: #0000;
218
+ border-radius: 0;
219
+ }
220
+
221
+ :where(select:is([multiple], [size])) optgroup {
222
+ font-weight: bolder;
223
+ }
224
+
225
+ :where(select:is([multiple], [size])) optgroup option {
226
+ padding-inline-start: 20px;
227
+ }
228
+
229
+ ::file-selector-button {
230
+ margin-inline-end: 4px;
231
+ }
232
+
233
+ ::placeholder {
234
+ opacity: 1;
235
+ }
236
+
237
+ @supports (not ((-webkit-appearance: -apple-pay-button))) or (contain-intrinsic-size: 1px) {
238
+ ::placeholder {
239
+ color: currentColor;
240
+ }
241
+
242
+ @supports (color: color-mix(in lab, red, red)) {
243
+ ::placeholder {
244
+ color: color-mix(in oklab, currentcolor 50%, transparent);
245
+ }
246
+ }
247
+ }
248
+
249
+ textarea {
250
+ resize: vertical;
251
+ }
252
+
253
+ ::-webkit-search-decoration {
254
+ -webkit-appearance: none;
255
+ }
256
+
257
+ ::-webkit-date-and-time-value {
258
+ min-height: 1lh;
259
+ text-align: inherit;
260
+ }
261
+
262
+ ::-webkit-datetime-edit {
263
+ display: inline-flex;
264
+ }
265
+
266
+ ::-webkit-datetime-edit-fields-wrapper {
267
+ padding: 0;
268
+ }
269
+
270
+ ::-webkit-datetime-edit {
271
+ padding-block: 0;
272
+ }
273
+
274
+ ::-webkit-datetime-edit-year-field {
275
+ padding-block: 0;
276
+ }
277
+
278
+ ::-webkit-datetime-edit-month-field {
279
+ padding-block: 0;
280
+ }
281
+
282
+ ::-webkit-datetime-edit-day-field {
283
+ padding-block: 0;
284
+ }
285
+
286
+ ::-webkit-datetime-edit-hour-field {
287
+ padding-block: 0;
288
+ }
289
+
290
+ ::-webkit-datetime-edit-minute-field {
291
+ padding-block: 0;
292
+ }
293
+
294
+ ::-webkit-datetime-edit-second-field {
295
+ padding-block: 0;
296
+ }
297
+
298
+ ::-webkit-datetime-edit-millisecond-field {
299
+ padding-block: 0;
300
+ }
301
+
302
+ ::-webkit-datetime-edit-meridiem-field {
303
+ padding-block: 0;
304
+ }
305
+
306
+ ::-webkit-calendar-picker-indicator {
307
+ line-height: 1;
308
+ }
309
+
310
+ :-moz-ui-invalid {
311
+ box-shadow: none;
312
+ }
313
+
314
+ button, input:where([type="button"], [type="reset"], [type="submit"]) {
315
+ appearance: button;
316
+ }
317
+
318
+ ::file-selector-button {
319
+ appearance: button;
320
+ }
321
+
322
+ ::-webkit-inner-spin-button {
323
+ height: auto;
324
+ }
325
+
326
+ ::-webkit-outer-spin-button {
327
+ height: auto;
328
+ }
329
+
330
+ [hidden]:where(:not([hidden="until-found"])) {
331
+ display: none !important;
332
+ }
333
+ }
334
+
335
+ @layer components;
336
+
337
+ @layer utilities {
338
+ .collapse {
339
+ visibility: collapse;
340
+ }
341
+
342
+ .invisible {
343
+ visibility: hidden;
344
+ }
345
+
346
+ .visible {
347
+ visibility: visible;
348
+ }
349
+
350
+ .fixed {
351
+ position: fixed;
352
+ }
353
+
354
+ .relative {
355
+ position: relative;
356
+ }
357
+
358
+ .sticky {
359
+ position: sticky;
360
+ }
361
+
362
+ .inset-0 {
363
+ inset: 0;
364
+ }
365
+
366
+ .top-0 {
367
+ top: 0;
368
+ }
369
+
370
+ .z-50 {
371
+ z-index: 50;
372
+ }
373
+
374
+ .mt-1 {
375
+ margin-top: var(--spacing);
376
+ }
377
+
378
+ .mr-1 {
379
+ margin-right: var(--spacing);
380
+ }
381
+
382
+ .mr-2 {
383
+ margin-right: calc(var(--spacing) * 2);
384
+ }
385
+
386
+ .mb-2 {
387
+ margin-bottom: calc(var(--spacing) * 2);
388
+ }
389
+
390
+ .ml-2 {
391
+ margin-left: calc(var(--spacing) * 2);
392
+ }
393
+
394
+ .block {
395
+ display: block;
396
+ }
397
+
398
+ .contents {
399
+ display: contents;
400
+ }
401
+
402
+ .flex {
403
+ display: flex;
404
+ }
405
+
406
+ .grid {
407
+ display: grid;
408
+ }
409
+
410
+ .hidden {
411
+ display: none;
412
+ }
413
+
414
+ .inline {
415
+ display: inline;
416
+ }
417
+
418
+ .table {
419
+ display: table;
420
+ }
421
+
422
+ .table-header-group {
423
+ display: table-header-group;
424
+ }
425
+
426
+ .h-4 {
427
+ height: calc(var(--spacing) * 4);
428
+ }
429
+
430
+ .h-6 {
431
+ height: calc(var(--spacing) * 6);
432
+ }
433
+
434
+ .h-8 {
435
+ height: calc(var(--spacing) * 8);
436
+ }
437
+
438
+ .h-full {
439
+ height: 100%;
440
+ }
441
+
442
+ .max-h-\[80vh\] {
443
+ max-height: 80vh;
444
+ }
445
+
446
+ .min-h-0 {
447
+ min-height: 0;
448
+ }
449
+
450
+ .min-h-\[1rem\] {
451
+ min-height: 1rem;
452
+ }
453
+
454
+ .w-0 {
455
+ width: 0;
456
+ }
457
+
458
+ .w-4 {
459
+ width: calc(var(--spacing) * 4);
460
+ }
461
+
462
+ .w-6 {
463
+ width: calc(var(--spacing) * 6);
464
+ }
465
+
466
+ .w-8 {
467
+ width: calc(var(--spacing) * 8);
468
+ }
469
+
470
+ .w-16 {
471
+ width: calc(var(--spacing) * 16);
472
+ }
473
+
474
+ .w-28 {
475
+ width: calc(var(--spacing) * 28);
476
+ }
477
+
478
+ .w-32 {
479
+ width: calc(var(--spacing) * 32);
480
+ }
481
+
482
+ .w-40 {
483
+ width: calc(var(--spacing) * 40);
484
+ }
485
+
486
+ .w-96 {
487
+ width: calc(var(--spacing) * 96);
488
+ }
489
+
490
+ .w-\[32rem\] {
491
+ width: 32rem;
492
+ }
493
+
494
+ .w-fit {
495
+ width: fit-content;
496
+ }
497
+
498
+ .w-full {
499
+ width: 100%;
500
+ }
501
+
502
+ .max-w-\[8rem\] {
503
+ max-width: 8rem;
504
+ }
505
+
506
+ .min-w-0 {
507
+ min-width: 0;
508
+ }
509
+
510
+ .min-w-\[10rem\] {
511
+ min-width: 10rem;
512
+ }
513
+
514
+ .flex-1 {
515
+ flex: 1;
516
+ }
517
+
518
+ .shrink {
519
+ flex-shrink: 1;
520
+ }
521
+
522
+ .shrink-0 {
523
+ flex-shrink: 0;
524
+ }
525
+
526
+ .grow {
527
+ flex-grow: 1;
528
+ }
529
+
530
+ .border-collapse {
531
+ border-collapse: collapse;
532
+ }
533
+
534
+ .cursor-not-allowed {
535
+ cursor: not-allowed;
536
+ }
537
+
538
+ .cursor-pointer {
539
+ cursor: pointer;
540
+ }
541
+
542
+ .grid-cols-1 {
543
+ grid-template-columns: repeat(1, minmax(0, 1fr));
544
+ }
545
+
546
+ .grid-cols-\[max-content_1fr\] {
547
+ grid-template-columns: max-content 1fr;
548
+ }
549
+
550
+ .flex-col {
551
+ flex-direction: column;
552
+ }
553
+
554
+ .flex-wrap {
555
+ flex-wrap: wrap;
556
+ }
557
+
558
+ .items-baseline {
559
+ align-items: baseline;
560
+ }
561
+
562
+ .items-center {
563
+ align-items: center;
564
+ }
565
+
566
+ .items-end {
567
+ align-items: flex-end;
568
+ }
569
+
570
+ .items-stretch {
571
+ align-items: stretch;
572
+ }
573
+
574
+ .justify-between {
575
+ justify-content: space-between;
576
+ }
577
+
578
+ .justify-center {
579
+ justify-content: center;
580
+ }
581
+
582
+ .justify-end {
583
+ justify-content: flex-end;
584
+ }
585
+
586
+ .gap-0\.5 {
587
+ gap: calc(var(--spacing) * .5);
588
+ }
589
+
590
+ .gap-1 {
591
+ gap: var(--spacing);
592
+ }
593
+
594
+ .gap-2 {
595
+ gap: calc(var(--spacing) * 2);
596
+ }
597
+
598
+ .gap-3 {
599
+ gap: calc(var(--spacing) * 3);
600
+ }
601
+
602
+ .gap-4 {
603
+ gap: calc(var(--spacing) * 4);
604
+ }
605
+
606
+ .gap-x-3 {
607
+ column-gap: calc(var(--spacing) * 3);
608
+ }
609
+
610
+ .gap-y-1 {
611
+ row-gap: var(--spacing);
612
+ }
613
+
614
+ .self-start {
615
+ align-self: flex-start;
616
+ }
617
+
618
+ .truncate {
619
+ text-overflow: ellipsis;
620
+ white-space: nowrap;
621
+ overflow: hidden;
622
+ }
623
+
624
+ .overflow-auto {
625
+ overflow: auto;
626
+ }
627
+
628
+ .overflow-hidden {
629
+ overflow: hidden;
630
+ }
631
+
632
+ .overflow-x-auto {
633
+ overflow-x: auto;
634
+ }
635
+
636
+ .rounded {
637
+ border-radius: .25rem;
638
+ }
639
+
640
+ .border {
641
+ border-style: var(--tw-border-style);
642
+ border-width: 1px;
643
+ }
644
+
645
+ .border-t {
646
+ border-top-style: var(--tw-border-style);
647
+ border-top-width: 1px;
648
+ }
649
+
650
+ .border-r {
651
+ border-right-style: var(--tw-border-style);
652
+ border-right-width: 1px;
653
+ }
654
+
655
+ .border-b {
656
+ border-bottom-style: var(--tw-border-style);
657
+ border-bottom-width: 1px;
658
+ }
659
+
660
+ .border-amber-500 {
661
+ border-color: var(--color-amber-500);
662
+ }
663
+
664
+ .border-blue-200 {
665
+ border-color: var(--color-blue-200);
666
+ }
667
+
668
+ .border-gray-100 {
669
+ border-color: var(--color-gray-100);
670
+ }
671
+
672
+ .border-gray-200 {
673
+ border-color: var(--color-gray-200);
674
+ }
675
+
676
+ .border-gray-300 {
677
+ border-color: var(--color-gray-300);
678
+ }
679
+
680
+ .border-red-300 {
681
+ border-color: var(--color-red-300);
682
+ }
683
+
684
+ .border-red-500 {
685
+ border-color: var(--color-red-500);
686
+ }
687
+
688
+ .bg-black\/20 {
689
+ background-color: #0003;
690
+ }
691
+
692
+ @supports (color: color-mix(in lab, red, red)) {
693
+ .bg-black\/20 {
694
+ background-color: color-mix(in oklab, var(--color-black) 20%, transparent);
695
+ }
696
+ }
697
+
698
+ .bg-blue-50 {
699
+ background-color: var(--color-blue-50);
700
+ }
701
+
702
+ .bg-blue-50\/40 {
703
+ background-color: #eff6ff66;
704
+ }
705
+
706
+ @supports (color: color-mix(in lab, red, red)) {
707
+ .bg-blue-50\/40 {
708
+ background-color: color-mix(in oklab, var(--color-blue-50) 40%, transparent);
709
+ }
710
+ }
711
+
712
+ .bg-blue-600 {
713
+ background-color: var(--color-blue-600);
714
+ }
715
+
716
+ .bg-gray-50 {
717
+ background-color: var(--color-gray-50);
718
+ }
719
+
720
+ .bg-gray-100 {
721
+ background-color: var(--color-gray-100);
722
+ }
723
+
724
+ .bg-red-600 {
725
+ background-color: var(--color-red-600);
726
+ }
727
+
728
+ .bg-transparent {
729
+ background-color: #0000;
730
+ }
731
+
732
+ .bg-white {
733
+ background-color: var(--color-white);
734
+ }
735
+
736
+ .p-2 {
737
+ padding: calc(var(--spacing) * 2);
738
+ }
739
+
740
+ .p-3 {
741
+ padding: calc(var(--spacing) * 3);
742
+ }
743
+
744
+ .p-4 {
745
+ padding: calc(var(--spacing) * 4);
746
+ }
747
+
748
+ .p-6 {
749
+ padding: calc(var(--spacing) * 6);
750
+ }
751
+
752
+ .px-1 {
753
+ padding-inline: var(--spacing);
754
+ }
755
+
756
+ .px-2 {
757
+ padding-inline: calc(var(--spacing) * 2);
758
+ }
759
+
760
+ .px-2\.5 {
761
+ padding-inline: calc(var(--spacing) * 2.5);
762
+ }
763
+
764
+ .px-3 {
765
+ padding-inline: calc(var(--spacing) * 3);
766
+ }
767
+
768
+ .px-4 {
769
+ padding-inline: calc(var(--spacing) * 4);
770
+ }
771
+
772
+ .px-6 {
773
+ padding-inline: calc(var(--spacing) * 6);
774
+ }
775
+
776
+ .py-0\.5 {
777
+ padding-block: calc(var(--spacing) * .5);
778
+ }
779
+
780
+ .py-1 {
781
+ padding-block: var(--spacing);
782
+ }
783
+
784
+ .py-1\.5 {
785
+ padding-block: calc(var(--spacing) * 1.5);
786
+ }
787
+
788
+ .py-2 {
789
+ padding-block: calc(var(--spacing) * 2);
790
+ }
791
+
792
+ .py-3 {
793
+ padding-block: calc(var(--spacing) * 3);
794
+ }
795
+
796
+ .text-center {
797
+ text-align: center;
798
+ }
799
+
800
+ .text-left {
801
+ text-align: left;
802
+ }
803
+
804
+ .text-right {
805
+ text-align: right;
806
+ }
807
+
808
+ .align-middle {
809
+ vertical-align: middle;
810
+ }
811
+
812
+ .align-top {
813
+ vertical-align: top;
814
+ }
815
+
816
+ .font-mono {
817
+ font-family: var(--font-mono);
818
+ }
819
+
820
+ .text-base {
821
+ font-size: var(--text-base);
822
+ line-height: var(--tw-leading, var(--text-base--line-height));
823
+ }
824
+
825
+ .text-lg {
826
+ font-size: var(--text-lg);
827
+ line-height: var(--tw-leading, var(--text-lg--line-height));
828
+ }
829
+
830
+ .text-sm {
831
+ font-size: var(--text-sm);
832
+ line-height: var(--tw-leading, var(--text-sm--line-height));
833
+ }
834
+
835
+ .text-xs {
836
+ font-size: var(--text-xs);
837
+ line-height: var(--tw-leading, var(--text-xs--line-height));
838
+ }
839
+
840
+ .text-\[10px\] {
841
+ font-size: 10px;
842
+ }
843
+
844
+ .font-medium {
845
+ --tw-font-weight: var(--font-weight-medium);
846
+ font-weight: var(--font-weight-medium);
847
+ }
848
+
849
+ .font-semibold {
850
+ --tw-font-weight: var(--font-weight-semibold);
851
+ font-weight: var(--font-weight-semibold);
852
+ }
853
+
854
+ .tracking-wide {
855
+ --tw-tracking: var(--tracking-wide);
856
+ letter-spacing: var(--tracking-wide);
857
+ }
858
+
859
+ .whitespace-nowrap {
860
+ white-space: nowrap;
861
+ }
862
+
863
+ .text-amber-600 {
864
+ color: var(--color-amber-600);
865
+ }
866
+
867
+ .text-blue-600 {
868
+ color: var(--color-blue-600);
869
+ }
870
+
871
+ .text-gray-400 {
872
+ color: var(--color-gray-400);
873
+ }
874
+
875
+ .text-gray-500 {
876
+ color: var(--color-gray-500);
877
+ }
878
+
879
+ .text-gray-600 {
880
+ color: var(--color-gray-600);
881
+ }
882
+
883
+ .text-gray-700 {
884
+ color: var(--color-gray-700);
885
+ }
886
+
887
+ .text-gray-800 {
888
+ color: var(--color-gray-800);
889
+ }
890
+
891
+ .text-green-600 {
892
+ color: var(--color-green-600);
893
+ }
894
+
895
+ .text-red-500 {
896
+ color: var(--color-red-500);
897
+ }
898
+
899
+ .text-red-700 {
900
+ color: var(--color-red-700);
901
+ }
902
+
903
+ .text-white {
904
+ color: var(--color-white);
905
+ }
906
+
907
+ .uppercase {
908
+ text-transform: uppercase;
909
+ }
910
+
911
+ .italic {
912
+ font-style: italic;
913
+ }
914
+
915
+ .line-through {
916
+ text-decoration-line: line-through;
917
+ }
918
+
919
+ .opacity-60 {
920
+ opacity: .6;
921
+ }
922
+
923
+ .shadow-lg {
924
+ --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, #0000001a), 0 4px 6px -4px var(--tw-shadow-color, #0000001a);
925
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
926
+ }
927
+
928
+ .ring-1 {
929
+ --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
930
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
931
+ }
932
+
933
+ .ring-amber-500 {
934
+ --tw-ring-color: var(--color-amber-500);
935
+ }
936
+
937
+ .ring-red-500 {
938
+ --tw-ring-color: var(--color-red-500);
939
+ }
940
+
941
+ .filter {
942
+ filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
943
+ }
944
+
945
+ .transition {
946
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
947
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
948
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
949
+ }
950
+
951
+ .outline-none {
952
+ --tw-outline-style: none;
953
+ outline-style: none;
954
+ }
955
+
956
+ .select-none {
957
+ -webkit-user-select: none;
958
+ user-select: none;
959
+ }
960
+
961
+ .focus-within\:ring-1:focus-within {
962
+ --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
963
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
964
+ }
965
+
966
+ .focus-within\:ring-blue-500:focus-within {
967
+ --tw-ring-color: var(--color-blue-500);
968
+ }
969
+
970
+ @media (hover: hover) {
971
+ .hover\:bg-blue-50:hover {
972
+ background-color: var(--color-blue-50);
973
+ }
974
+
975
+ .hover\:bg-blue-700:hover {
976
+ background-color: var(--color-blue-700);
977
+ }
978
+
979
+ .hover\:bg-gray-50:hover {
980
+ background-color: var(--color-gray-50);
981
+ }
982
+
983
+ .hover\:bg-gray-100:hover {
984
+ background-color: var(--color-gray-100);
985
+ }
986
+
987
+ .hover\:bg-red-700:hover {
988
+ background-color: var(--color-red-700);
989
+ }
990
+
991
+ .hover\:underline:hover {
992
+ text-decoration-line: underline;
993
+ }
994
+ }
995
+
996
+ .focus\:ring-1:focus {
997
+ --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
998
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
999
+ }
1000
+
1001
+ .focus\:ring-blue-500:focus {
1002
+ --tw-ring-color: var(--color-blue-500);
1003
+ }
1004
+
1005
+ .focus\:outline-none:focus {
1006
+ --tw-outline-style: none;
1007
+ outline-style: none;
1008
+ }
1009
+
1010
+ .focus-visible\:ring-2:focus-visible {
1011
+ --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
1012
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1013
+ }
1014
+
1015
+ .focus-visible\:ring-blue-400:focus-visible {
1016
+ --tw-ring-color: var(--color-blue-400);
1017
+ }
1018
+
1019
+ .focus-visible\:outline-none:focus-visible {
1020
+ --tw-outline-style: none;
1021
+ outline-style: none;
1022
+ }
1023
+
1024
+ .disabled\:bg-gray-100:disabled {
1025
+ background-color: var(--color-gray-100);
1026
+ }
1027
+
1028
+ .disabled\:text-gray-500:disabled {
1029
+ color: var(--color-gray-500);
1030
+ }
1031
+
1032
+ .disabled\:opacity-50:disabled {
1033
+ opacity: .5;
1034
+ }
1035
+
1036
+ @media (min-width: 48rem) {
1037
+ .md\:grid-cols-2 {
1038
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1039
+ }
1040
+ }
1041
+ }
1042
+
1043
+ @property --tw-border-style {
1044
+ syntax: "*";
1045
+ inherits: false;
1046
+ initial-value: solid;
1047
+ }
1048
+
1049
+ @property --tw-font-weight {
1050
+ syntax: "*";
1051
+ inherits: false
1052
+ }
1053
+
1054
+ @property --tw-tracking {
1055
+ syntax: "*";
1056
+ inherits: false
1057
+ }
1058
+
1059
+ @property --tw-shadow {
1060
+ syntax: "*";
1061
+ inherits: false;
1062
+ initial-value: 0 0 #0000;
1063
+ }
1064
+
1065
+ @property --tw-shadow-color {
1066
+ syntax: "*";
1067
+ inherits: false
1068
+ }
1069
+
1070
+ @property --tw-shadow-alpha {
1071
+ syntax: "<percentage>";
1072
+ inherits: false;
1073
+ initial-value: 100%;
1074
+ }
1075
+
1076
+ @property --tw-inset-shadow {
1077
+ syntax: "*";
1078
+ inherits: false;
1079
+ initial-value: 0 0 #0000;
1080
+ }
1081
+
1082
+ @property --tw-inset-shadow-color {
1083
+ syntax: "*";
1084
+ inherits: false
1085
+ }
1086
+
1087
+ @property --tw-inset-shadow-alpha {
1088
+ syntax: "<percentage>";
1089
+ inherits: false;
1090
+ initial-value: 100%;
1091
+ }
1092
+
1093
+ @property --tw-ring-color {
1094
+ syntax: "*";
1095
+ inherits: false
1096
+ }
1097
+
1098
+ @property --tw-ring-shadow {
1099
+ syntax: "*";
1100
+ inherits: false;
1101
+ initial-value: 0 0 #0000;
1102
+ }
1103
+
1104
+ @property --tw-inset-ring-color {
1105
+ syntax: "*";
1106
+ inherits: false
1107
+ }
1108
+
1109
+ @property --tw-inset-ring-shadow {
1110
+ syntax: "*";
1111
+ inherits: false;
1112
+ initial-value: 0 0 #0000;
1113
+ }
1114
+
1115
+ @property --tw-ring-inset {
1116
+ syntax: "*";
1117
+ inherits: false
1118
+ }
1119
+
1120
+ @property --tw-ring-offset-width {
1121
+ syntax: "<length>";
1122
+ inherits: false;
1123
+ initial-value: 0;
1124
+ }
1125
+
1126
+ @property --tw-ring-offset-color {
1127
+ syntax: "*";
1128
+ inherits: false;
1129
+ initial-value: #fff;
1130
+ }
1131
+
1132
+ @property --tw-ring-offset-shadow {
1133
+ syntax: "*";
1134
+ inherits: false;
1135
+ initial-value: 0 0 #0000;
1136
+ }
1137
+
1138
+ @property --tw-blur {
1139
+ syntax: "*";
1140
+ inherits: false
1141
+ }
1142
+
1143
+ @property --tw-brightness {
1144
+ syntax: "*";
1145
+ inherits: false
1146
+ }
1147
+
1148
+ @property --tw-contrast {
1149
+ syntax: "*";
1150
+ inherits: false
1151
+ }
1152
+
1153
+ @property --tw-grayscale {
1154
+ syntax: "*";
1155
+ inherits: false
1156
+ }
1157
+
1158
+ @property --tw-hue-rotate {
1159
+ syntax: "*";
1160
+ inherits: false
1161
+ }
1162
+
1163
+ @property --tw-invert {
1164
+ syntax: "*";
1165
+ inherits: false
1166
+ }
1167
+
1168
+ @property --tw-opacity {
1169
+ syntax: "*";
1170
+ inherits: false
1171
+ }
1172
+
1173
+ @property --tw-saturate {
1174
+ syntax: "*";
1175
+ inherits: false
1176
+ }
1177
+
1178
+ @property --tw-sepia {
1179
+ syntax: "*";
1180
+ inherits: false
1181
+ }
1182
+
1183
+ @property --tw-drop-shadow {
1184
+ syntax: "*";
1185
+ inherits: false
1186
+ }
1187
+
1188
+ @property --tw-drop-shadow-color {
1189
+ syntax: "*";
1190
+ inherits: false
1191
+ }
1192
+
1193
+ @property --tw-drop-shadow-alpha {
1194
+ syntax: "<percentage>";
1195
+ inherits: false;
1196
+ initial-value: 100%;
1197
+ }
1198
+
1199
+ @property --tw-drop-shadow-size {
1200
+ syntax: "*";
1201
+ inherits: false
1202
+ }
1203
+
1204
+ /* Hide the WebKit / Firefox spin buttons on amount inputs. The
1205
+ step attribute still controls validation; this is purely UI.
1206
+ Accounting amount fields don't benefit from a spinner — users
1207
+ type the number and the up/down arrows just clutter the row. */
1208
+ input[type="number"][data-v-22376c52]::-webkit-outer-spin-button,
1209
+ input[type="number"][data-v-22376c52]::-webkit-inner-spin-button {
1210
+ -webkit-appearance: none;
1211
+ margin: 0;
1212
+ }
1213
+ input[type="number"][data-v-22376c52] {
1214
+ -moz-appearance: textfield;
1215
+ appearance: textfield;
1216
+ }
1217
+
1218
+ /* Selection frame for the expanded entry. Borders go on the cells
1219
+ (not the <tr>) because border-collapse: collapse — Tailwind's
1220
+ default — eats <tr>-level borders/box-shadows. The entry row owns
1221
+ top/left/right; the detail-panel row directly below owns
1222
+ left/right/bottom, so together they read as one rectangle around
1223
+ the selection. Color matches the focus-ring blue used elsewhere
1224
+ in this list. */
1225
+ .row-selected > td[data-v-404eebe9] {
1226
+ background-color: rgb(239 246 255); /* tailwind blue-50 */
1227
+ border-top: 2px solid rgb(59 130 246); /* tailwind blue-500 */
1228
+ }
1229
+ .row-selected > td[data-v-404eebe9]:first-child {
1230
+ border-left: 2px solid rgb(59 130 246);
1231
+ }
1232
+ .row-selected > td[data-v-404eebe9]:last-child {
1233
+ border-right: 2px solid rgb(59 130 246);
1234
+ }
1235
+ .detail-selected > td[data-v-404eebe9] {
1236
+ background-color: rgb(239 246 255);
1237
+ border-left: 2px solid rgb(59 130 246);
1238
+ border-right: 2px solid rgb(59 130 246);
1239
+ border-bottom: 2px solid rgb(59 130 246);
1240
+ }
1241
+
1242
+ /* Hide the WebKit / Firefox spin buttons on amount inputs. The
1243
+ step attribute still controls validation; this is purely UI.
1244
+ Accounting amount fields don't benefit from a spinner — users
1245
+ type the number and the up/down arrows just clutter the row. */
1246
+ input[type="number"][data-v-3a945c22]::-webkit-outer-spin-button,
1247
+ input[type="number"][data-v-3a945c22]::-webkit-inner-spin-button {
1248
+ -webkit-appearance: none;
1249
+ margin: 0;
1250
+ }
1251
+ input[type="number"][data-v-3a945c22] {
1252
+ -moz-appearance: textfield;
1253
+ appearance: textfield;
1254
+ }
1255
+ /*$vite$:1*/