web-mojo 2.4.15 → 2.5.1

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 (59) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/dist/admin-models.es.js +1 -1
  3. package/dist/admin.cjs.js +1 -1
  4. package/dist/admin.cjs.js.map +1 -1
  5. package/dist/admin.css +264 -0
  6. package/dist/admin.es.js +1 -1
  7. package/dist/admin.es.js.map +1 -1
  8. package/dist/auth.cjs.js +1 -1
  9. package/dist/auth.es.js +1 -1
  10. package/dist/charts.cjs.js +1 -1
  11. package/dist/charts.es.js +1 -1
  12. package/dist/chunks/{ChatView-BGxrltgS.js → ChatView-BPJGwNB-.js} +2 -2
  13. package/dist/chunks/{ChatView-BGxrltgS.js.map → ChatView-BPJGwNB-.js.map} +1 -1
  14. package/dist/chunks/{ChatView-DDuK43lX.js → ChatView-CmYaZjsO.js} +2 -2
  15. package/dist/chunks/{ChatView-DDuK43lX.js.map → ChatView-CmYaZjsO.js.map} +1 -1
  16. package/dist/chunks/{ListView-DnxrGclm.js → ListView-CdKbQdEF.js} +2 -2
  17. package/dist/chunks/ListView-CdKbQdEF.js.map +1 -0
  18. package/dist/chunks/{ListView-KWvdL4OZ.js → ListView-DbLe2wcm.js} +2 -2
  19. package/dist/chunks/ListView-DbLe2wcm.js.map +1 -0
  20. package/dist/chunks/{Passkeys-CAkLWzxp.js → Passkeys-1N9xo02Z.js} +2 -2
  21. package/dist/chunks/{Passkeys-CAkLWzxp.js.map → Passkeys-1N9xo02Z.js.map} +1 -1
  22. package/dist/chunks/{Passkeys-Dmq0wWpl.js → Passkeys-BDQrfTmM.js} +2 -2
  23. package/dist/chunks/{Passkeys-Dmq0wWpl.js.map → Passkeys-BDQrfTmM.js.map} +1 -1
  24. package/dist/chunks/{UserProfileView-DnP_6G6d.js → UserProfileView-C1N4iFlc.js} +2 -2
  25. package/dist/chunks/{UserProfileView-DnP_6G6d.js.map → UserProfileView-C1N4iFlc.js.map} +1 -1
  26. package/dist/chunks/{UserProfileView-DrsRZ-bF.js → UserProfileView-a-V2S8Ni.js} +2 -2
  27. package/dist/chunks/{UserProfileView-DrsRZ-bF.js.map → UserProfileView-a-V2S8Ni.js.map} +1 -1
  28. package/dist/chunks/{admin-models-bi4jz-nJ.js → admin-models-D5jSlGb1.js} +2 -2
  29. package/dist/chunks/{admin-models-bi4jz-nJ.js.map → admin-models-D5jSlGb1.js.map} +1 -1
  30. package/dist/chunks/{index-CgBfI613.js → index-C413ywKj.js} +2 -2
  31. package/dist/chunks/{index-CgBfI613.js.map → index-C413ywKj.js.map} +1 -1
  32. package/dist/chunks/{index-Cq2rbYiD.js → index-CaVoKADD.js} +2 -2
  33. package/dist/chunks/{index-Cq2rbYiD.js.map → index-CaVoKADD.js.map} +1 -1
  34. package/dist/chunks/version-CMglVT9N.js +2 -0
  35. package/dist/chunks/version-CMglVT9N.js.map +1 -0
  36. package/dist/chunks/version-DhQrqyMx.js +2 -0
  37. package/dist/chunks/version-DhQrqyMx.js.map +1 -0
  38. package/dist/css/web-mojo.css +1 -1
  39. package/dist/docit.cjs.js +1 -1
  40. package/dist/docit.es.js +1 -1
  41. package/dist/index.cjs.js +1 -1
  42. package/dist/index.es.js +1 -1
  43. package/dist/lightbox.cjs.js +1 -1
  44. package/dist/lightbox.es.js +1 -1
  45. package/dist/timeline.cjs.js +1 -1
  46. package/dist/timeline.es.js +1 -1
  47. package/dist/user-profile.cjs.js +1 -1
  48. package/dist/user-profile.es.js +1 -1
  49. package/dist/web-mojo.lite.iife.js +2 -0
  50. package/dist/web-mojo.lite.iife.js.map +1 -1
  51. package/dist/web-mojo.lite.iife.min.js +18 -18
  52. package/dist/web-mojo.lite.iife.min.js.map +1 -1
  53. package/package.json +1 -1
  54. package/dist/chunks/ListView-DnxrGclm.js.map +0 -1
  55. package/dist/chunks/ListView-KWvdL4OZ.js.map +0 -1
  56. package/dist/chunks/version-BrCGCscn.js +0 -2
  57. package/dist/chunks/version-BrCGCscn.js.map +0 -1
  58. package/dist/chunks/version-DrH-7xNr.js +0 -2
  59. package/dist/chunks/version-DrH-7xNr.js.map +0 -1
package/dist/admin.css CHANGED
@@ -3762,3 +3762,267 @@
3762
3762
  margin-bottom: 1.5rem;
3763
3763
  }
3764
3764
  .group-hierarchy-tree-rows { line-height: 1.7; }
3765
+
3766
+
3767
+ /* ========================================================================
3768
+ Incident-domain list items (.ili)
3769
+ ========================================================================
3770
+ Reusable ListView card chassis used by EventListItem / TicketListItem /
3771
+ IncidentListItem (in src/extensions/admin/incidents/). All three render
3772
+ into the same `.ili-card` shell so the visual language stays consistent
3773
+ across embedded sub-lists in IncidentView (Events / Tickets / Related)
3774
+ and any future surface that lists these models. Cards layer on top of
3775
+ ListView's `rowStripe` (severity edge) and `clickAction` (whole-card
3776
+ click-to-view); this section owns only the inside-the-row design
3777
+ language — chip pills, priority dots, meta row, id slot.
3778
+ */
3779
+ /* The list-view-item is a flex child of .list-items (column flex). Without
3780
+ min-width: 0 the child won't shrink below its intrinsic content width —
3781
+ long titles, status pills, and meta lines escape narrow panels (DetailView
3782
+ sections, modal bodies). Constrain at the item level. */
3783
+ .event-list-item,
3784
+ .ticket-list-item,
3785
+ .incident-list-item {
3786
+ display: block;
3787
+ width: 100%;
3788
+ min-width: 0;
3789
+ max-width: 100%;
3790
+ }
3791
+
3792
+ .ili-card {
3793
+ display: flex;
3794
+ flex-direction: column;
3795
+ gap: 4px;
3796
+ padding: 10px 14px;
3797
+ border-bottom: 1px solid var(--bs-border-color-translucent);
3798
+ transition: background 0.1s;
3799
+ min-width: 0;
3800
+ max-width: 100%;
3801
+ }
3802
+ .list-view-item:last-child .ili-card { border-bottom: none; }
3803
+ .list-view-item.clickable .ili-card { cursor: pointer; }
3804
+ .list-view-item.clickable:hover .ili-card { background: var(--bs-tertiary-bg); }
3805
+
3806
+ .ili-row {
3807
+ display: flex;
3808
+ align-items: center;
3809
+ gap: 8px;
3810
+ min-width: 0;
3811
+ max-width: 100%;
3812
+ }
3813
+ .ili-title {
3814
+ flex: 1 1 0;
3815
+ min-width: 0;
3816
+ font-weight: 500;
3817
+ color: var(--bs-body-color);
3818
+ /* Wrap long titles instead of truncating — matches the DetailView
3819
+ header pattern (`word-break: break-word`). Long error strings like
3820
+ stack-trace lines stay readable across two/three lines. */
3821
+ word-break: break-word;
3822
+ overflow-wrap: anywhere;
3823
+ }
3824
+ .ili-eyebrow {
3825
+ flex: 0 0 auto;
3826
+ font-size: 0.78rem;
3827
+ color: var(--bs-secondary-color);
3828
+ white-space: nowrap;
3829
+ }
3830
+
3831
+ .ili-meta {
3832
+ color: var(--bs-secondary-color);
3833
+ font-size: 0.78rem;
3834
+ }
3835
+ .ili-meta > * { white-space: nowrap; }
3836
+ /* Free-text slot in the meta row (category line, hostname). Truncates
3837
+ with ellipsis so the right-aligned #id stays put. Single-line in the
3838
+ meta row keeps the card height predictable. */
3839
+ .ili-meta-text {
3840
+ flex: 1 1 0;
3841
+ min-width: 0;
3842
+ overflow: hidden;
3843
+ text-overflow: ellipsis;
3844
+ white-space: nowrap;
3845
+ }
3846
+ .ili-meta-dim { color: var(--bs-tertiary-color); }
3847
+
3848
+ .ili-id {
3849
+ margin-left: auto;
3850
+ font-family: var(--bs-font-monospace);
3851
+ color: var(--bs-tertiary-color);
3852
+ }
3853
+
3854
+ /* Status / category chip — toned background + matching text colour.
3855
+ `flex-shrink: 0` keeps the pill from being squeezed when its sibling
3856
+ title is long. */
3857
+ .ili-chip {
3858
+ display: inline-flex;
3859
+ align-items: center;
3860
+ padding: 1px 8px;
3861
+ border-radius: 10px;
3862
+ font-size: 0.7rem;
3863
+ font-weight: 500;
3864
+ text-transform: lowercase;
3865
+ letter-spacing: 0.01em;
3866
+ flex-shrink: 0;
3867
+ }
3868
+ .ili-chip-info { background: rgba(var(--bs-info-rgb), 0.10); color: var(--bs-info); }
3869
+ .ili-chip-success { background: rgba(var(--bs-success-rgb), 0.10); color: var(--bs-success); }
3870
+ .ili-chip-warning { background: rgba(var(--bs-warning-rgb), 0.12); color: var(--bs-warning); }
3871
+ .ili-chip-danger { background: rgba(var(--bs-danger-rgb), 0.10); color: var(--bs-danger); }
3872
+ .ili-chip-muted { background: var(--bs-secondary-bg); color: var(--bs-secondary-color); }
3873
+ .ili-chip-cat { background: var(--bs-secondary-bg); color: var(--bs-secondary-color); }
3874
+
3875
+ /* Priority chip — boxy, monospace number */
3876
+ .ili-pri {
3877
+ display: inline-flex;
3878
+ align-items: center;
3879
+ justify-content: center;
3880
+ min-width: 22px;
3881
+ height: 18px;
3882
+ padding: 0 6px;
3883
+ border-radius: 4px;
3884
+ font-size: 0.72rem;
3885
+ font-weight: 500;
3886
+ font-family: var(--bs-font-monospace);
3887
+ }
3888
+ .ili-pri-hi { background: rgba(var(--bs-danger-rgb), 0.10); color: var(--bs-danger); }
3889
+ .ili-pri-md { background: rgba(var(--bs-warning-rgb), 0.12); color: var(--bs-warning); }
3890
+ .ili-pri-lo { color: var(--bs-secondary-color); }
3891
+
3892
+ /* Category dot — 6px circle preceding the category label in the meta row */
3893
+ .ili-dot {
3894
+ display: inline-block;
3895
+ width: 6px;
3896
+ height: 6px;
3897
+ border-radius: 50%;
3898
+ margin-right: 4px;
3899
+ vertical-align: middle;
3900
+ }
3901
+ .ili-dot-primary { background: var(--bs-primary); }
3902
+ .ili-dot-success { background: var(--bs-success); }
3903
+ .ili-dot-warning { background: var(--bs-warning); }
3904
+ .ili-dot-danger { background: var(--bs-danger); }
3905
+ .ili-dot-muted { background: var(--bs-secondary-color); }
3906
+
3907
+
3908
+ /* ═══════════════════════════════════════════════════════════
3909
+ TicketView — Lite Modal
3910
+ Compact, clickable-field header. Clicking pills / fields
3911
+ triggers inline edits; description is read-only preview.
3912
+ ═══════════════════════════════════════════════════════════ */
3913
+
3914
+ .ticket-view .tv-body { padding: 14px 8px 4px; }
3915
+
3916
+ .ticket-view .tv-header {
3917
+ padding-bottom: 10px;
3918
+ border-bottom: 1px solid var(--bs-border-color-translucent);
3919
+ }
3920
+ .ticket-view .tv-title-row { display: flex; align-items: flex-start; gap: 6px; }
3921
+ .ticket-view .tv-title-block { flex: 1; min-width: 0; }
3922
+ .ticket-view .tv-id-row { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: 6px; }
3923
+ .ticket-view .tv-id { font-family: var(--bs-font-monospace); font-size: 0.72rem; color: var(--bs-secondary-color); }
3924
+ .ticket-view .tv-time { font-size: 0.7rem; color: var(--bs-secondary-color); display: inline-flex; align-items: center; gap: 3px; }
3925
+ .ticket-view .tv-time i { font-size: 0.64rem; }
3926
+
3927
+ .ticket-view .tv-pill {
3928
+ display: inline-flex; align-items: center; gap: 3px;
3929
+ padding: 1px 8px; border-radius: 10px;
3930
+ font-size: 0.68rem; font-weight: 500;
3931
+ cursor: pointer; transition: filter 0.12s;
3932
+ }
3933
+ .ticket-view .tv-pill:hover { filter: brightness(0.92); }
3934
+ .ticket-view .tv-pill i { font-size: 0.52rem; }
3935
+ .ticket-view .tv-pill-new { background: rgba(var(--bs-info-rgb), 0.1); color: var(--bs-info); }
3936
+ .ticket-view .tv-pill-open { background: rgba(var(--bs-success-rgb), 0.1); color: var(--bs-success); }
3937
+ .ticket-view .tv-pill-prog { background: rgba(var(--bs-warning-rgb), 0.1); color: var(--bs-warning); }
3938
+ .ticket-view .tv-pill-resolved { background: rgba(var(--bs-success-rgb), 0.1); color: var(--bs-success); }
3939
+ .ticket-view .tv-pill-closed { background: var(--bs-secondary-bg); color: var(--bs-secondary-color); }
3940
+
3941
+ .ticket-view .tv-title { font-size: 1rem; font-weight: 600; color: var(--bs-emphasis-color); line-height: 1.35; margin-bottom: 6px; }
3942
+
3943
+ .ticket-view .tv-fields { display: inline-flex; align-items: center; gap: 2px; flex-wrap: wrap; }
3944
+ .ticket-view .tv-field {
3945
+ display: inline-flex; align-items: center; gap: 4px;
3946
+ font-size: 0.74rem; color: var(--bs-secondary-color);
3947
+ padding: 2px 7px; border-radius: 5px;
3948
+ cursor: pointer; transition: all 0.12s;
3949
+ border: 1px solid transparent;
3950
+ }
3951
+ .ticket-view .tv-field:hover { background: var(--bs-tertiary-bg); border-color: var(--bs-border-color); color: var(--bs-body-color); }
3952
+ .ticket-view .tv-field i.tv-field-icon { font-size: 0.7rem; }
3953
+ .ticket-view .tv-field .caret { font-size: 0.55rem; opacity: 0; transition: opacity 0.12s; margin-left: -1px; }
3954
+ .ticket-view .tv-field:hover .caret { opacity: 0.6; }
3955
+ .ticket-view .tv-sep { color: var(--bs-secondary-color); font-size: 0.6rem; margin: 0 1px; user-select: none; }
3956
+
3957
+ .ticket-view .tv-btns { display: flex; gap: 2px; align-items: center; flex-shrink: 0; }
3958
+ .ticket-view .tv-btn {
3959
+ width: 28px; height: 28px;
3960
+ display: flex; align-items: center; justify-content: center;
3961
+ border: none; background: none;
3962
+ color: var(--bs-secondary-color);
3963
+ border-radius: 6px; cursor: pointer;
3964
+ font-size: 0.9rem; transition: all 0.12s;
3965
+ }
3966
+ .ticket-view .tv-btn:hover { background: var(--bs-tertiary-bg); color: var(--bs-body-color); }
3967
+
3968
+ /* Linked incident — compact one-liner replaces the old yellow-bordered card */
3969
+ .ticket-view .tv-linked {
3970
+ display: flex; align-items: center; gap: 8px;
3971
+ padding: 7px 10px;
3972
+ margin-bottom: 12px;
3973
+ background: var(--bs-tertiary-bg);
3974
+ border-radius: 6px;
3975
+ font-size: 0.75rem;
3976
+ color: var(--bs-secondary-color);
3977
+ cursor: pointer;
3978
+ transition: background 0.12s;
3979
+ }
3980
+ .ticket-view .tv-linked:hover { background: var(--bs-secondary-bg); }
3981
+ .ticket-view .tv-linked .tv-linked-icon { color: var(--bs-warning); font-size: 0.78rem; flex-shrink: 0; }
3982
+ .ticket-view .tv-linked .ltitle { color: var(--bs-body-color); font-weight: 500; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
3983
+ .ticket-view .tv-linked .lpill { font-size: 0.62rem; padding: 0 5px; border-radius: 3px; background: rgba(var(--bs-warning-rgb), 0.1); color: var(--bs-warning); font-weight: 500; flex-shrink: 0; }
3984
+ .ticket-view .tv-linked .ltrail { color: var(--bs-secondary-color); font-size: 0.7rem; flex-shrink: 0; }
3985
+
3986
+ /* Description — read-only preview, headings scaled to body */
3987
+ .ticket-view .tv-desc { position: relative; margin-bottom: 12px; }
3988
+ .ticket-view .tv-desc-edit {
3989
+ position: absolute; top: -2px; right: 0;
3990
+ font-size: 0.72rem; color: var(--bs-secondary-color);
3991
+ background: none; border: none; padding: 2px 6px;
3992
+ border-radius: 4px; cursor: pointer;
3993
+ opacity: 0; transition: opacity 0.12s, background 0.12s;
3994
+ }
3995
+ .ticket-view .tv-desc:hover .tv-desc-edit { opacity: 0.7; }
3996
+ .ticket-view .tv-desc-edit:hover { opacity: 1; background: var(--bs-tertiary-bg); color: var(--bs-body-color); }
3997
+ .ticket-view .tv-desc-empty { font-size: 0.78rem; color: var(--bs-secondary-color); font-style: italic; }
3998
+ .ticket-view .tv-desc-empty.tv-desc-add { cursor: pointer; font-style: normal; }
3999
+ .ticket-view .tv-desc-empty.tv-desc-add:hover { color: var(--bs-primary); }
4000
+
4001
+ .ticket-view .tv-desc-body { font-size: 0.85rem; line-height: 1.6; color: var(--bs-body-color); }
4002
+ .ticket-view .tv-desc-body p { margin-bottom: 8px; }
4003
+ .ticket-view .tv-desc-body p:last-child { margin-bottom: 0; }
4004
+ .ticket-view .tv-desc-body h1,
4005
+ .ticket-view .tv-desc-body h2,
4006
+ .ticket-view .tv-desc-body h3,
4007
+ .ticket-view .tv-desc-body h4,
4008
+ .ticket-view .tv-desc-body h5,
4009
+ .ticket-view .tv-desc-body h6 {
4010
+ font-size: 0.9rem; font-weight: 600; line-height: 1.35;
4011
+ margin: 14px 0 4px; color: var(--bs-emphasis-color);
4012
+ }
4013
+ .ticket-view .tv-desc-body h1 { font-size: 0.95rem; }
4014
+ .ticket-view .tv-desc-body > h1:first-child,
4015
+ .ticket-view .tv-desc-body > h2:first-child,
4016
+ .ticket-view .tv-desc-body > h3:first-child,
4017
+ .ticket-view .tv-desc-body > h4:first-child { margin-top: 0; }
4018
+ .ticket-view .tv-desc-body hr { margin: 12px 0; opacity: 0.5; }
4019
+ .ticket-view .tv-desc-body pre { background: var(--bs-tertiary-bg); border-radius: 6px; padding: 10px 14px; font-size: 0.8rem; overflow-x: auto; }
4020
+ .ticket-view .tv-desc-body code { font-size: 0.85em; padding: 1px 5px; background: var(--bs-tertiary-bg); border-radius: 4px; }
4021
+ .ticket-view .tv-desc-body pre code { padding: 0; background: none; }
4022
+ .ticket-view .tv-desc-body ul, .ticket-view .tv-desc-body ol { padding-left: 20px; margin-bottom: 8px; }
4023
+ .ticket-view .tv-desc-body blockquote { margin: 6px 0; padding: 4px 12px; border-left: 3px solid var(--bs-border-color); color: var(--bs-secondary-color); }
4024
+ .ticket-view .tv-desc-body table { width: 100%; border-collapse: collapse; font-size: 0.82rem; margin: 8px 0; }
4025
+ .ticket-view .tv-desc-body th, .ticket-view .tv-desc-body td { padding: 5px 8px; border: 1px solid var(--bs-border-color); text-align: left; }
4026
+ .ticket-view .tv-desc-body th { background: var(--bs-tertiary-bg); font-weight: 600; }
4027
+
4028
+