Reimplement compose and add tiling windows
This commit is contained in:
@@ -55,11 +55,9 @@ This is the repeatable process used in GIA to self-host third-party frontend ass
|
||||
- Font Awesome:
|
||||
- GIA templates use icon classes that are not safely replaceable with `@fortawesome/fontawesome-free`.
|
||||
- The existing Font Awesome Pro `site-assets` v6.1.1 bundle is self-hosted under `core/static/vendor/fontawesome/` instead.
|
||||
- jQuery:
|
||||
- Latest npm is 4.x, but GIA stays on `3.7.1` to avoid breaking older plugins.
|
||||
- Bulma extensions:
|
||||
- `bulma-calendar`, `bulma-tagsinput`, `bulma-switch`, `bulma-slider`, and `bulma-tooltip` were matched against Bulma's official extensions page before pinning.
|
||||
- `bulma-calendar` and `bulma-tooltip` are deprecated on npm, but Bulma still points to the Wikiki ecosystem for these extensions, so they were kept and documented instead of replaced ad hoc.
|
||||
- Former extensions were matched against Bulma's official extensions page before pinning.
|
||||
- Unused extensions (`calendar`, `slider`, `tagsinput`, `switch`, and `tooltip`) were removed once the app no longer referenced them.
|
||||
|
||||
## Theme Strategy
|
||||
|
||||
|
||||
@@ -21,174 +21,6 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "bulma_tooltip_css",
|
||||
"kind": "npm_file",
|
||||
"package": "bulma-tooltip",
|
||||
"version": "3.0.2",
|
||||
"license": "MIT",
|
||||
"homepage": "https://github.com/Wikiki/bulma-tooltip#readme",
|
||||
"official_url": "https://wikiki.github.io/elements/tooltip",
|
||||
"purpose": "Official Bulma tooltip extension from Bulma's extensions page",
|
||||
"notes": "",
|
||||
"resolved": "https://registry.npmjs.org/bulma-tooltip/-/bulma-tooltip-3.0.2.tgz",
|
||||
"dist_integrity": "sha512-CsT3APjhlZScskFg38n8HYL8oYNUHQtcu4sz6ERarxkUpBRbk9v0h/5KAvXeKapVSn2dp9l7bOGit5SECP8EWQ==",
|
||||
"source_path": "dist/css/bulma-tooltip.min.css",
|
||||
"targets": [
|
||||
{
|
||||
"path": "core/static/css/bulma-tooltip.min.css",
|
||||
"sha256": "5c79d12a40b3532aaec159faa0b85fd3d500e192467761b71e0bda0fd04f3076",
|
||||
"sri_sha512": "sha512-SNDNIUvSYhnqDV9FFXaH/e0xZ6NzkG4Qm5dafLLf0PCMkzICKaOmMTgI3y2t2jZK+hAtP6A7UBcFqjWMhsujIg=="
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "bulma_slider_css",
|
||||
"kind": "npm_file",
|
||||
"package": "bulma-slider",
|
||||
"version": "2.0.5",
|
||||
"license": "MIT",
|
||||
"homepage": "https://github.com/Wikiki/bulma-slider#readme",
|
||||
"official_url": "https://wikiki.github.io/form/slider",
|
||||
"purpose": "Official Bulma slider extension from Bulma's extensions page",
|
||||
"notes": "",
|
||||
"resolved": "https://registry.npmjs.org/bulma-slider/-/bulma-slider-2.0.5.tgz",
|
||||
"dist_integrity": "sha512-6woD/1E7q1o5bfEaQjNqpWZaCItC1oHe9bN15WYB2ELqz2gDaJYZkf+rlozGpAYOXQGDQGCCv3y+QuKjx6sQuw==",
|
||||
"source_path": "dist/css/bulma-slider.min.css",
|
||||
"targets": [
|
||||
{
|
||||
"path": "core/static/css/bulma-slider.min.css",
|
||||
"sha256": "f9d952627d388b8ba267e1388d6923274cf9e62e758d459c5a045f3933e9dc8a",
|
||||
"sri_sha512": "sha512-9o5SkCRCA9thttRH3Gb5QXLxKdRiuRLdO6ToEPwRHGLXjrhTZwFj0rEHjrCcJvDN9/aNaWMpGOIEA2vZsHmEqw=="
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "bulma_slider_js",
|
||||
"kind": "npm_file",
|
||||
"package": "bulma-slider",
|
||||
"version": "2.0.5",
|
||||
"license": "MIT",
|
||||
"homepage": "https://github.com/Wikiki/bulma-slider#readme",
|
||||
"official_url": "https://wikiki.github.io/form/slider",
|
||||
"purpose": "Official Bulma slider extension runtime",
|
||||
"notes": "",
|
||||
"resolved": "https://registry.npmjs.org/bulma-slider/-/bulma-slider-2.0.5.tgz",
|
||||
"dist_integrity": "sha512-6woD/1E7q1o5bfEaQjNqpWZaCItC1oHe9bN15WYB2ELqz2gDaJYZkf+rlozGpAYOXQGDQGCCv3y+QuKjx6sQuw==",
|
||||
"source_path": "dist/js/bulma-slider.min.js",
|
||||
"targets": [
|
||||
{
|
||||
"path": "core/static/js/bulma-slider.min.js",
|
||||
"sha256": "db68ebe154a25597913c5635f31500fe7a32e5a205fb9a98c9642d0c2de47d9e",
|
||||
"sri_sha512": "sha512-WLKXHCsMXTSIPsmQShJRE6K4IzwvNkhwxr/Oo8N3z+kzjhGleHibspmWLTawNMdl2z9E23XK20+yvUTDZ+zeNQ=="
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "bulma_calendar_css",
|
||||
"kind": "npm_file",
|
||||
"package": "bulma-calendar",
|
||||
"version": "7.1.1",
|
||||
"license": "MIT",
|
||||
"homepage": "https://doc.mh-s.de/bulma-calendar",
|
||||
"official_url": "https://wikiki.github.io/components/calendar",
|
||||
"purpose": "Official Bulma calendar extension from Bulma's extensions page",
|
||||
"notes": "",
|
||||
"resolved": "https://registry.npmjs.org/bulma-calendar/-/bulma-calendar-7.1.1.tgz",
|
||||
"dist_integrity": "sha512-E08i25KOfqMKBndgDF3y3eoQ0dUzVkgV9R53EDRM65GQUQKLzt8gcXVJYs3mYnpq6L3DiLuUt47Fl09tSv9OpA==",
|
||||
"source_path": "src/demo/assets/css/bulma-calendar.min.css",
|
||||
"targets": [
|
||||
{
|
||||
"path": "core/static/css/bulma-calendar.min.css",
|
||||
"sha256": "d18b488ca52584bcd6ea3fb84bf06380e47a3cd18660a235617da017d13ab269",
|
||||
"sri_sha512": "sha512-IOnJQkgQpezPDPTJcRiWD7YVI3sF2RYzYDl4isbDT2geSaEHRQ615UN/8GhJbSkvqkKRZu8SBCQ7XwKMqsqLFQ=="
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "bulma_calendar_js",
|
||||
"kind": "npm_file",
|
||||
"package": "bulma-calendar",
|
||||
"version": "7.1.1",
|
||||
"license": "MIT",
|
||||
"homepage": "https://doc.mh-s.de/bulma-calendar",
|
||||
"official_url": "https://wikiki.github.io/components/calendar",
|
||||
"purpose": "Official Bulma calendar extension runtime",
|
||||
"notes": "",
|
||||
"resolved": "https://registry.npmjs.org/bulma-calendar/-/bulma-calendar-7.1.1.tgz",
|
||||
"dist_integrity": "sha512-E08i25KOfqMKBndgDF3y3eoQ0dUzVkgV9R53EDRM65GQUQKLzt8gcXVJYs3mYnpq6L3DiLuUt47Fl09tSv9OpA==",
|
||||
"source_path": "src/demo/assets/js/bulma-calendar.min.js",
|
||||
"targets": [
|
||||
{
|
||||
"path": "core/static/js/bulma-calendar.min.js",
|
||||
"sha256": "58160c87c4d17f9d98ec366fe019492acde50efbc0297af7045547952b306680",
|
||||
"sri_sha512": "sha512-kkEtEtypXzruevjkoxhyEkqkZBtlhK7s8zt7IV2yPabgBwy5xbKL9uWeCS37ldS9AaNTSnveWTu4ivUvGMJUWA=="
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "bulma_tagsinput_css",
|
||||
"kind": "npm_file",
|
||||
"package": "bulma-tagsinput",
|
||||
"version": "2.0.0",
|
||||
"license": "MIT",
|
||||
"homepage": "https://github.com/Wikiki/bulma-tagsinput#readme",
|
||||
"official_url": "https://wikiki.github.io/form/tagsinput",
|
||||
"purpose": "Official Bulma tagsinput extension from Bulma's extensions page",
|
||||
"notes": "",
|
||||
"resolved": "https://registry.npmjs.org/bulma-tagsinput/-/bulma-tagsinput-2.0.0.tgz",
|
||||
"dist_integrity": "sha512-BFvd0oaxgeWHOEh3d4cgETy5vpSSjRRBA9w+8TWEuhjFQg38Rb+3vjDCavL+udpdjf+dRV0SK5T4kYCXTOrz5A==",
|
||||
"source_path": "dist/css/bulma-tagsinput.min.css",
|
||||
"targets": [
|
||||
{
|
||||
"path": "core/static/css/bulma-tagsinput.min.css",
|
||||
"sha256": "8d1de24619c05ddf9045638b52059ab492d4887ce74119eed545d66af859da89",
|
||||
"sri_sha512": "sha512-NWTkcDRubZ3pyXbZZLQBILuVsRFs8c6QGgnfe4dm5/d6yp50U+xdoCDLIcSo51fFy/GXH0O2Oed1Z1sF1faxDA=="
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "bulma_tagsinput_js",
|
||||
"kind": "npm_file",
|
||||
"package": "bulma-tagsinput",
|
||||
"version": "2.0.0",
|
||||
"license": "MIT",
|
||||
"homepage": "https://github.com/Wikiki/bulma-tagsinput#readme",
|
||||
"official_url": "https://wikiki.github.io/form/tagsinput",
|
||||
"purpose": "Official Bulma tagsinput extension runtime",
|
||||
"notes": "",
|
||||
"resolved": "https://registry.npmjs.org/bulma-tagsinput/-/bulma-tagsinput-2.0.0.tgz",
|
||||
"dist_integrity": "sha512-BFvd0oaxgeWHOEh3d4cgETy5vpSSjRRBA9w+8TWEuhjFQg38Rb+3vjDCavL+udpdjf+dRV0SK5T4kYCXTOrz5A==",
|
||||
"source_path": "dist/js/bulma-tagsinput.min.js",
|
||||
"targets": [
|
||||
{
|
||||
"path": "core/static/js/bulma-tagsinput.min.js",
|
||||
"sha256": "b355aa94ec519e374d7edf569e3dbde8bbe30ff3a193cb96f2930ee7815939d6",
|
||||
"sri_sha512": "sha512-Je6J++MjmmpxF30JCmRwM2KiK3uWQBQtqiNCjwzEMJKExLaa0BqerlYNa/fJAl5Rra4hMgRZF2fzg+V2vjE4Kw=="
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "bulma_switch_css",
|
||||
"kind": "npm_file",
|
||||
"package": "bulma-switch",
|
||||
"version": "2.0.4",
|
||||
"license": "MIT",
|
||||
"homepage": "https://github.com/Wikiki/bulma-switch#readme",
|
||||
"official_url": "https://wikiki.github.io/form/switch",
|
||||
"purpose": "Official Bulma switch extension from Bulma's extensions page",
|
||||
"notes": "",
|
||||
"resolved": "https://registry.npmjs.org/bulma-switch/-/bulma-switch-2.0.4.tgz",
|
||||
"dist_integrity": "sha512-kMu4H0Pr0VjvfsnT6viRDCgptUq0Rvy7y7PX6q+IHg1xUynsjszPjhAdal5ysAlCG5HNO+5YXxeiu92qYGQolw==",
|
||||
"source_path": "dist/css/bulma-switch.min.css",
|
||||
"targets": [
|
||||
{
|
||||
"path": "core/static/css/bulma-switch.min.css",
|
||||
"sha256": "f0460ddebdd95425a50590908503a170f5ff08b28bd53573c71791fc7cd1e6f5",
|
||||
"sri_sha512": "sha512-zjrHYubQoNgDVqVKTyGjKcvIeQlduZTvXCvcBwQ0iqJYKLKiz9cuFAN7e98zfKqCTpI/EgFRBRcTwJw20yAFuw=="
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "gridstack_css",
|
||||
"kind": "npm_file",
|
||||
@@ -231,27 +63,6 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "jquery_js",
|
||||
"kind": "npm_file",
|
||||
"package": "jquery",
|
||||
"version": "3.7.1",
|
||||
"license": "MIT",
|
||||
"homepage": "https://jquery.com",
|
||||
"official_url": "https://jquery.com",
|
||||
"purpose": "Latest jQuery 3.x release for compatibility with legacy plugins",
|
||||
"notes": "The latest npm release is jQuery 4.x, but this project still vendors 3.7.1 to avoid breaking older plugins.",
|
||||
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz",
|
||||
"dist_integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==",
|
||||
"source_path": "dist/jquery.min.js",
|
||||
"targets": [
|
||||
{
|
||||
"path": "core/static/js/jquery.min.js",
|
||||
"sha256": "fc9a93dd241f6b045cbff0481cf4e1901becd0e12fb45166a8f17f95823f0b1a",
|
||||
"sri_sha512": "sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g=="
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "htmx_js",
|
||||
"kind": "npm_file",
|
||||
@@ -273,48 +84,6 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "hyperscript_js",
|
||||
"kind": "npm_file",
|
||||
"package": "hyperscript.org",
|
||||
"version": "0.9.14",
|
||||
"license": "BSD 2-Clause",
|
||||
"homepage": "https://hyperscript.org/",
|
||||
"official_url": "https://hyperscript.org/",
|
||||
"purpose": "_hyperscript runtime",
|
||||
"notes": "",
|
||||
"resolved": "https://registry.npmjs.org/hyperscript.org/-/hyperscript.org-0.9.14.tgz",
|
||||
"dist_integrity": "sha512-ugmojsQQUMmXcnwaXYiYf8L3GbeANy/m59EmE/0Z6C5eQ52fOuSrvFkuEIejG9BdpbYB4iTtoYGqV99eYqDVMA==",
|
||||
"source_path": "dist/_hyperscript.min.js",
|
||||
"targets": [
|
||||
{
|
||||
"path": "core/static/js/hyperscript.min.js",
|
||||
"sha256": "3e834a3ffc0334fee54ecff4e37a6ae951cd83e6daa96651ca7cfd8f751ad4d2",
|
||||
"sri_sha512": "sha512-l43sZzpnAddmYhJyfPrgv46XhJvA95gsA28/+eW4XZLSekQ8wlP68i9f22KGkRjY0HNiZrLc5MXGo4z/tM2QNA=="
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "magnet_js",
|
||||
"kind": "npm_file",
|
||||
"package": "@lf2com/magnet.js",
|
||||
"version": "2.0.1",
|
||||
"license": "MIT",
|
||||
"homepage": "https://github.com/lf2com/magnet.js",
|
||||
"official_url": "https://github.com/lf2com/magnet.js",
|
||||
"purpose": "Magnet.js drag attraction component",
|
||||
"notes": "",
|
||||
"resolved": "https://registry.npmjs.org/@lf2com/magnet.js/-/magnet.js-2.0.1.tgz",
|
||||
"dist_integrity": "sha512-MDgv1s0aNOuftuhY9c9Ve6Yadkmn7G+Ww91cVciyHHMhPPdxTxX3XUSJXFYD3VraGFzcnI4uilik9/I76AsJEg==",
|
||||
"source_path": "dist/magnet.min.js",
|
||||
"targets": [
|
||||
{
|
||||
"path": "core/static/js/magnet.min.js",
|
||||
"sha256": "05ff8858b5fb7b3ad2a618212571162e2108f580b08527716f4e63c648dcccb1",
|
||||
"sri_sha512": "sha512-aoQ3V4iCM8zTcdMDSUTRG1K9wqZzmDSisuaCLQexk9DdFy92oWvTUoAfCVLnGzzJClst8PmtasZg219REwyNkw=="
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "fontawesome_bundle",
|
||||
"kind": "url_bundle",
|
||||
|
||||
@@ -18,134 +18,6 @@ This report is generated by `scripts/vendor_frontend_assets.py` from `tools/fron
|
||||
- SRI sha512: `sha512-yh2RE0wZCVZeysGiqTwDTO/dKelCbS9bP2L94UvOFtl/FKXcNAje3Y2oBg/ZMZ3LS1sicYk4dYVGtDex75fvvA==`
|
||||
|
||||
|
||||
## bulma_tooltip_css
|
||||
|
||||
- Source: `bulma-tooltip`
|
||||
- Version: `3.0.2`
|
||||
- Official URL: https://wikiki.github.io/elements/tooltip
|
||||
- Homepage: https://github.com/Wikiki/bulma-tooltip#readme
|
||||
- License: `MIT`
|
||||
- Purpose: Official Bulma tooltip extension from Bulma's extensions page
|
||||
- Resolved tarball: `https://registry.npmjs.org/bulma-tooltip/-/bulma-tooltip-3.0.2.tgz`
|
||||
- Upstream package integrity: `sha512-CsT3APjhlZScskFg38n8HYL8oYNUHQtcu4sz6ERarxkUpBRbk9v0h/5KAvXeKapVSn2dp9l7bOGit5SECP8EWQ==`
|
||||
- Local targets:
|
||||
- `core/static/css/bulma-tooltip.min.css`
|
||||
- SHA-256: `5c79d12a40b3532aaec159faa0b85fd3d500e192467761b71e0bda0fd04f3076`
|
||||
- SRI sha512: `sha512-SNDNIUvSYhnqDV9FFXaH/e0xZ6NzkG4Qm5dafLLf0PCMkzICKaOmMTgI3y2t2jZK+hAtP6A7UBcFqjWMhsujIg==`
|
||||
|
||||
|
||||
## bulma_slider_css
|
||||
|
||||
- Source: `bulma-slider`
|
||||
- Version: `2.0.5`
|
||||
- Official URL: https://wikiki.github.io/form/slider
|
||||
- Homepage: https://github.com/Wikiki/bulma-slider#readme
|
||||
- License: `MIT`
|
||||
- Purpose: Official Bulma slider extension from Bulma's extensions page
|
||||
- Resolved tarball: `https://registry.npmjs.org/bulma-slider/-/bulma-slider-2.0.5.tgz`
|
||||
- Upstream package integrity: `sha512-6woD/1E7q1o5bfEaQjNqpWZaCItC1oHe9bN15WYB2ELqz2gDaJYZkf+rlozGpAYOXQGDQGCCv3y+QuKjx6sQuw==`
|
||||
- Local targets:
|
||||
- `core/static/css/bulma-slider.min.css`
|
||||
- SHA-256: `f9d952627d388b8ba267e1388d6923274cf9e62e758d459c5a045f3933e9dc8a`
|
||||
- SRI sha512: `sha512-9o5SkCRCA9thttRH3Gb5QXLxKdRiuRLdO6ToEPwRHGLXjrhTZwFj0rEHjrCcJvDN9/aNaWMpGOIEA2vZsHmEqw==`
|
||||
|
||||
|
||||
## bulma_slider_js
|
||||
|
||||
- Source: `bulma-slider`
|
||||
- Version: `2.0.5`
|
||||
- Official URL: https://wikiki.github.io/form/slider
|
||||
- Homepage: https://github.com/Wikiki/bulma-slider#readme
|
||||
- License: `MIT`
|
||||
- Purpose: Official Bulma slider extension runtime
|
||||
- Resolved tarball: `https://registry.npmjs.org/bulma-slider/-/bulma-slider-2.0.5.tgz`
|
||||
- Upstream package integrity: `sha512-6woD/1E7q1o5bfEaQjNqpWZaCItC1oHe9bN15WYB2ELqz2gDaJYZkf+rlozGpAYOXQGDQGCCv3y+QuKjx6sQuw==`
|
||||
- Local targets:
|
||||
- `core/static/js/bulma-slider.min.js`
|
||||
- SHA-256: `db68ebe154a25597913c5635f31500fe7a32e5a205fb9a98c9642d0c2de47d9e`
|
||||
- SRI sha512: `sha512-WLKXHCsMXTSIPsmQShJRE6K4IzwvNkhwxr/Oo8N3z+kzjhGleHibspmWLTawNMdl2z9E23XK20+yvUTDZ+zeNQ==`
|
||||
|
||||
|
||||
## bulma_calendar_css
|
||||
|
||||
- Source: `bulma-calendar`
|
||||
- Version: `7.1.1`
|
||||
- Official URL: https://wikiki.github.io/components/calendar
|
||||
- Homepage: https://doc.mh-s.de/bulma-calendar
|
||||
- License: `MIT`
|
||||
- Purpose: Official Bulma calendar extension from Bulma's extensions page
|
||||
- Resolved tarball: `https://registry.npmjs.org/bulma-calendar/-/bulma-calendar-7.1.1.tgz`
|
||||
- Upstream package integrity: `sha512-E08i25KOfqMKBndgDF3y3eoQ0dUzVkgV9R53EDRM65GQUQKLzt8gcXVJYs3mYnpq6L3DiLuUt47Fl09tSv9OpA==`
|
||||
- Local targets:
|
||||
- `core/static/css/bulma-calendar.min.css`
|
||||
- SHA-256: `d18b488ca52584bcd6ea3fb84bf06380e47a3cd18660a235617da017d13ab269`
|
||||
- SRI sha512: `sha512-IOnJQkgQpezPDPTJcRiWD7YVI3sF2RYzYDl4isbDT2geSaEHRQ615UN/8GhJbSkvqkKRZu8SBCQ7XwKMqsqLFQ==`
|
||||
|
||||
|
||||
## bulma_calendar_js
|
||||
|
||||
- Source: `bulma-calendar`
|
||||
- Version: `7.1.1`
|
||||
- Official URL: https://wikiki.github.io/components/calendar
|
||||
- Homepage: https://doc.mh-s.de/bulma-calendar
|
||||
- License: `MIT`
|
||||
- Purpose: Official Bulma calendar extension runtime
|
||||
- Resolved tarball: `https://registry.npmjs.org/bulma-calendar/-/bulma-calendar-7.1.1.tgz`
|
||||
- Upstream package integrity: `sha512-E08i25KOfqMKBndgDF3y3eoQ0dUzVkgV9R53EDRM65GQUQKLzt8gcXVJYs3mYnpq6L3DiLuUt47Fl09tSv9OpA==`
|
||||
- Local targets:
|
||||
- `core/static/js/bulma-calendar.min.js`
|
||||
- SHA-256: `58160c87c4d17f9d98ec366fe019492acde50efbc0297af7045547952b306680`
|
||||
- SRI sha512: `sha512-kkEtEtypXzruevjkoxhyEkqkZBtlhK7s8zt7IV2yPabgBwy5xbKL9uWeCS37ldS9AaNTSnveWTu4ivUvGMJUWA==`
|
||||
|
||||
|
||||
## bulma_tagsinput_css
|
||||
|
||||
- Source: `bulma-tagsinput`
|
||||
- Version: `2.0.0`
|
||||
- Official URL: https://wikiki.github.io/form/tagsinput
|
||||
- Homepage: https://github.com/Wikiki/bulma-tagsinput#readme
|
||||
- License: `MIT`
|
||||
- Purpose: Official Bulma tagsinput extension from Bulma's extensions page
|
||||
- Resolved tarball: `https://registry.npmjs.org/bulma-tagsinput/-/bulma-tagsinput-2.0.0.tgz`
|
||||
- Upstream package integrity: `sha512-BFvd0oaxgeWHOEh3d4cgETy5vpSSjRRBA9w+8TWEuhjFQg38Rb+3vjDCavL+udpdjf+dRV0SK5T4kYCXTOrz5A==`
|
||||
- Local targets:
|
||||
- `core/static/css/bulma-tagsinput.min.css`
|
||||
- SHA-256: `8d1de24619c05ddf9045638b52059ab492d4887ce74119eed545d66af859da89`
|
||||
- SRI sha512: `sha512-NWTkcDRubZ3pyXbZZLQBILuVsRFs8c6QGgnfe4dm5/d6yp50U+xdoCDLIcSo51fFy/GXH0O2Oed1Z1sF1faxDA==`
|
||||
|
||||
|
||||
## bulma_tagsinput_js
|
||||
|
||||
- Source: `bulma-tagsinput`
|
||||
- Version: `2.0.0`
|
||||
- Official URL: https://wikiki.github.io/form/tagsinput
|
||||
- Homepage: https://github.com/Wikiki/bulma-tagsinput#readme
|
||||
- License: `MIT`
|
||||
- Purpose: Official Bulma tagsinput extension runtime
|
||||
- Resolved tarball: `https://registry.npmjs.org/bulma-tagsinput/-/bulma-tagsinput-2.0.0.tgz`
|
||||
- Upstream package integrity: `sha512-BFvd0oaxgeWHOEh3d4cgETy5vpSSjRRBA9w+8TWEuhjFQg38Rb+3vjDCavL+udpdjf+dRV0SK5T4kYCXTOrz5A==`
|
||||
- Local targets:
|
||||
- `core/static/js/bulma-tagsinput.min.js`
|
||||
- SHA-256: `b355aa94ec519e374d7edf569e3dbde8bbe30ff3a193cb96f2930ee7815939d6`
|
||||
- SRI sha512: `sha512-Je6J++MjmmpxF30JCmRwM2KiK3uWQBQtqiNCjwzEMJKExLaa0BqerlYNa/fJAl5Rra4hMgRZF2fzg+V2vjE4Kw==`
|
||||
|
||||
|
||||
## bulma_switch_css
|
||||
|
||||
- Source: `bulma-switch`
|
||||
- Version: `2.0.4`
|
||||
- Official URL: https://wikiki.github.io/form/switch
|
||||
- Homepage: https://github.com/Wikiki/bulma-switch#readme
|
||||
- License: `MIT`
|
||||
- Purpose: Official Bulma switch extension from Bulma's extensions page
|
||||
- Resolved tarball: `https://registry.npmjs.org/bulma-switch/-/bulma-switch-2.0.4.tgz`
|
||||
- Upstream package integrity: `sha512-kMu4H0Pr0VjvfsnT6viRDCgptUq0Rvy7y7PX6q+IHg1xUynsjszPjhAdal5ysAlCG5HNO+5YXxeiu92qYGQolw==`
|
||||
- Local targets:
|
||||
- `core/static/css/bulma-switch.min.css`
|
||||
- SHA-256: `f0460ddebdd95425a50590908503a170f5ff08b28bd53573c71791fc7cd1e6f5`
|
||||
- SRI sha512: `sha512-zjrHYubQoNgDVqVKTyGjKcvIeQlduZTvXCvcBwQ0iqJYKLKiz9cuFAN7e98zfKqCTpI/EgFRBRcTwJw20yAFuw==`
|
||||
|
||||
|
||||
## gridstack_css
|
||||
|
||||
- Source: `gridstack`
|
||||
@@ -178,23 +50,6 @@ This report is generated by `scripts/vendor_frontend_assets.py` from `tools/fron
|
||||
- SRI sha512: `sha512-djBPxwvBhDep1SvOhliatweHMORhVO3HabrfBjaW6nYsa7UcJYHty31x42m4HBSJXcJSQdoEgRPLVYGGIuIaDQ==`
|
||||
|
||||
|
||||
## jquery_js
|
||||
|
||||
- Source: `jquery`
|
||||
- Version: `3.7.1`
|
||||
- Official URL: https://jquery.com
|
||||
- Homepage: https://jquery.com
|
||||
- License: `MIT`
|
||||
- Purpose: Latest jQuery 3.x release for compatibility with legacy plugins
|
||||
- Resolved tarball: `https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz`
|
||||
- Upstream package integrity: `sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==`
|
||||
- Notes: The latest npm release is jQuery 4.x, but this project still vendors 3.7.1 to avoid breaking older plugins.
|
||||
- Local targets:
|
||||
- `core/static/js/jquery.min.js`
|
||||
- SHA-256: `fc9a93dd241f6b045cbff0481cf4e1901becd0e12fb45166a8f17f95823f0b1a`
|
||||
- SRI sha512: `sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g==`
|
||||
|
||||
|
||||
## htmx_js
|
||||
|
||||
- Source: `htmx.org`
|
||||
@@ -211,38 +66,6 @@ This report is generated by `scripts/vendor_frontend_assets.py` from `tools/fron
|
||||
- SRI sha512: `sha512-CGXFnDNv5q48ciFeIyWFcfZhqYW0sSBiPO+HZDO3XLM+p8xjhezz5CCxtkXVDKfCbvF+iUhel7xoeSp19o7x7g==`
|
||||
|
||||
|
||||
## hyperscript_js
|
||||
|
||||
- Source: `hyperscript.org`
|
||||
- Version: `0.9.14`
|
||||
- Official URL: https://hyperscript.org/
|
||||
- Homepage: https://hyperscript.org/
|
||||
- License: `BSD 2-Clause`
|
||||
- Purpose: _hyperscript runtime
|
||||
- Resolved tarball: `https://registry.npmjs.org/hyperscript.org/-/hyperscript.org-0.9.14.tgz`
|
||||
- Upstream package integrity: `sha512-ugmojsQQUMmXcnwaXYiYf8L3GbeANy/m59EmE/0Z6C5eQ52fOuSrvFkuEIejG9BdpbYB4iTtoYGqV99eYqDVMA==`
|
||||
- Local targets:
|
||||
- `core/static/js/hyperscript.min.js`
|
||||
- SHA-256: `3e834a3ffc0334fee54ecff4e37a6ae951cd83e6daa96651ca7cfd8f751ad4d2`
|
||||
- SRI sha512: `sha512-l43sZzpnAddmYhJyfPrgv46XhJvA95gsA28/+eW4XZLSekQ8wlP68i9f22KGkRjY0HNiZrLc5MXGo4z/tM2QNA==`
|
||||
|
||||
|
||||
## magnet_js
|
||||
|
||||
- Source: `@lf2com/magnet.js`
|
||||
- Version: `2.0.1`
|
||||
- Official URL: https://github.com/lf2com/magnet.js
|
||||
- Homepage: https://github.com/lf2com/magnet.js
|
||||
- License: `MIT`
|
||||
- Purpose: Magnet.js drag attraction component
|
||||
- Resolved tarball: `https://registry.npmjs.org/@lf2com/magnet.js/-/magnet.js-2.0.1.tgz`
|
||||
- Upstream package integrity: `sha512-MDgv1s0aNOuftuhY9c9Ve6Yadkmn7G+Ww91cVciyHHMhPPdxTxX3XUSJXFYD3VraGFzcnI4uilik9/I76AsJEg==`
|
||||
- Local targets:
|
||||
- `core/static/js/magnet.min.js`
|
||||
- SHA-256: `05ff8858b5fb7b3ad2a618212571162e2108f580b08527716f4e63c648dcccb1`
|
||||
- SRI sha512: `sha512-aoQ3V4iCM8zTcdMDSUTRG1K9wqZzmDSisuaCLQexk9DdFy92oWvTUoAfCVLnGzzJClst8PmtasZg219REwyNkw==`
|
||||
|
||||
|
||||
## fontawesome_bundle
|
||||
|
||||
- Source: `https://site-assets.fontawesome.com/releases/v6.1.1/css/all.css`
|
||||
|
||||
157
artifacts/workspace_interface_plan.md
Normal file
157
artifacts/workspace_interface_plan.md
Normal file
@@ -0,0 +1,157 @@
|
||||
# GIA Workspace Interface Plan
|
||||
|
||||
## Goals
|
||||
|
||||
- Replace page-by-page navigation with a workspace shell that can open any major surface as a widget.
|
||||
- Keep transport quirks behind shared adapters so UI code deals in people, sessions, messages, PS, MS, PSC, and MSC.
|
||||
- Make widget loading, live updates, and history browsing shared primitives instead of page-specific implementations.
|
||||
|
||||
## Interface Map
|
||||
|
||||
### 1. Workspace Shell
|
||||
|
||||
- One grid workspace shell owns widget layout, persistence, focus, close, restore, and launch.
|
||||
- A launcher surface replaces the current nav-as-destination approach.
|
||||
- Every major area can render as:
|
||||
- page
|
||||
- widget
|
||||
- embeddable fragment
|
||||
|
||||
### 2. Core Widgets
|
||||
|
||||
- Compose widget:
|
||||
- simple thread viewer
|
||||
- simple outbound composer
|
||||
- reply target
|
||||
- attachment strip
|
||||
- live MS/PS chips
|
||||
- Contact launcher widget:
|
||||
- search
|
||||
- recent contacts
|
||||
- open thread widget
|
||||
- create/match contact
|
||||
- Message history browser:
|
||||
- long-range session browsing
|
||||
- filters by service, person, session, direction, attachments, date
|
||||
- open selected history in a compose/thread widget
|
||||
- Person intelligence widget:
|
||||
- current PS summary
|
||||
- current MS summary
|
||||
- PSC/MSC highlights
|
||||
- links into evidence and history
|
||||
- Session evidence widget:
|
||||
- timeline of events
|
||||
- annotated durations
|
||||
- state transitions
|
||||
- Insight workbench widget:
|
||||
- hypothesis cards
|
||||
- mitigation planning
|
||||
- evidence drill-down
|
||||
- Help/reference widget:
|
||||
- PS/MS glossary
|
||||
- PSC/MSC explanations
|
||||
- research basis
|
||||
|
||||
### 3. Behavioral Surfaces
|
||||
|
||||
- PS lane:
|
||||
- unavailable -> available -> typing -> typing_stopped
|
||||
- duration chips and transition stats
|
||||
- MS lane:
|
||||
- sent -> delivered -> read -> responded
|
||||
- duration chips and transition stats
|
||||
- PSC surface:
|
||||
- correlation patterns within PS sequences
|
||||
- return-window priority, abandoned typing, repeated hesitation
|
||||
- MSC surface:
|
||||
- correlation patterns within MS sequences
|
||||
- reply delay shifts, asymmetry, reciprocity, timing escalation
|
||||
- Combined inference surface:
|
||||
- PSC + MSC combinations with evidence, confidence, and caveats
|
||||
|
||||
## Shared Technical Primitives
|
||||
|
||||
### Widget Contract
|
||||
|
||||
Every widget-capable surface should declare:
|
||||
|
||||
- title
|
||||
- icon
|
||||
- source URL
|
||||
- refresh URL
|
||||
- websocket topic or polling policy
|
||||
- default grid dimensions
|
||||
- optional launch context
|
||||
|
||||
### Shared Client Modules
|
||||
|
||||
- `workspace-shell`
|
||||
- open widget from URL
|
||||
- replace/update widget
|
||||
- compact grid
|
||||
- persist layout
|
||||
- `widget-loader`
|
||||
- HTMX/bootstrap helper for hidden widget loads
|
||||
- one primitive reused by page bootstraps and launch actions
|
||||
- `live-channel`
|
||||
- shared websocket subscription lifecycle
|
||||
- reconnect and backoff
|
||||
- channel-to-widget routing
|
||||
- `history-browser`
|
||||
- filters, pagination, range selection, transcript fetch
|
||||
- `compose-client`
|
||||
- message list render/update
|
||||
- outbound send
|
||||
- attachment handling
|
||||
- reply targeting
|
||||
|
||||
### Shared Server Patterns
|
||||
|
||||
- Each surface provides `page`, `widget`, and `fragment` modes from one context builder where possible.
|
||||
- Widget launch URLs are generated centrally, not manually concatenated in templates.
|
||||
- Behavioral computations read shared PS/MS event abstractions, not transport names.
|
||||
- Live updates publish transport-neutral event payloads.
|
||||
|
||||
## Implementation Phases
|
||||
|
||||
### Phase 1. Workspace Foundation
|
||||
|
||||
- Extract workspace shell logic from inline page scripts into shared assets.
|
||||
- Standardize the hidden widget loader include.
|
||||
- Slim launcher widgets so they do not dump entire datasets into one partial.
|
||||
- Add a reusable message history browser endpoint and widget shell.
|
||||
|
||||
### Phase 2. Compose Rewrite
|
||||
|
||||
- Keep compose to:
|
||||
- thread
|
||||
- send
|
||||
- reply
|
||||
- attachment preview
|
||||
- live state indicators
|
||||
- Move history/export/receipt/debug extras out into dedicated widgets.
|
||||
- Keep page mode and widget mode on the same client code.
|
||||
|
||||
### Phase 3. Behavioral Workspace
|
||||
|
||||
- Add PS/MS event browser widgets.
|
||||
- Add PSC/MSC evidence widgets with drill-down into raw events.
|
||||
- Add person/session dashboards that combine evidence instead of hiding it behind static pages.
|
||||
|
||||
### Phase 4. Live Update Layer
|
||||
|
||||
- Replace page-local polling with a shared websocket abstraction.
|
||||
- Route updates by widget topic:
|
||||
- compose thread
|
||||
- message state
|
||||
- presence state
|
||||
- analysis refresh
|
||||
- Keep HTMX for request/response actions and server-rendered fragments.
|
||||
|
||||
## Immediate Debt Kill List
|
||||
|
||||
- Large launcher partials that dump whole universes of contacts or objects.
|
||||
- Inline workspace shell JS in templates.
|
||||
- Page-specific widget bootstraps that repeat the same hidden HTMX loader block.
|
||||
- Mixed transport-specific UI conditionals in templates.
|
||||
- Heavy detail views that combine history, inference, controls, and diagnostics in one render.
|
||||
Reference in New Issue
Block a user