/*
fsicons.js
Inline SVG icon set for the ArozOS file system web apps.
Drawn locally rather than pulled from an icon font so the toolbar glyphs
match the file icons in shared/filethumb.js and stay crisp at any size.
No emoji anywhere - see CLAUDE.md rule 6.
Usage:
element.innerHTML = FSIcons.back;
FSIcons.inject(document); // fills every [data-fsicon] element
Icons are 24x24 stroke outlines that take their colour from the element's
CSS `color`, so they theme automatically.
*/
(function (global) {
"use strict";
var S = '',
forward: S + '',
up: S + '',
refresh: S + '',
menu: S + '',
//Descending bars with a direction arrow - the sort control
sort: S + '',
search: S + '',
close: S + '',
more: S + '',
check: S + '',
home: S + '',
/* View modes */
viewGrid: S + '',
viewList: S + '',
viewDetails: S + '',
sidePanel: S + '',
/* File operations */
open: S + '',
openWith: S + '',
copy: S + '',
cut: S + '',
paste: S + '',
rename: S + '',
trash: S + '',
upload: S + '',
download: S + '',
newFolder: S + '',
newFile: S + '',
zip: S + '',
unzip: S + '',
share: S + '',
info: S + '',
selectAll: S + '',
clearSel: S + '',
moon: S + '',
/* Sidebar roots */
clock: S + '',
document: S + '',
globe: S + '',
cube: S + '',
code: S + '',
drive: S + '',
folder: S + '',
/* Filled sidebar glyphs, matching the coloured tiles in the design */
desktop: '',
image: '',
video: '',
music: '',
download_filled: S + '',
/* Transfer panel */
minus: S + '',
chevronDown: S + '',
chevronUp: S + '',
cloudUpload: S + '',
pause: S + '',
play: S + '',
pauseCircle: S + '',
playCircle: S + '',
checkCircle: S + '',
closeCircle: S + ''
};
//Fill every element carrying data-fsicon="" with its glyph
ICONS.inject = function (scope) {
var root = scope || document;
var nodes = root.querySelectorAll('[data-fsicon]');
for (var i = 0; i < nodes.length; i++) {
var name = nodes[i].getAttribute('data-fsicon');
if (ICONS[name] != undefined && typeof ICONS[name] === 'string') {
nodes[i].innerHTML = ICONS[name];
}
}
};
global.FSIcons = ICONS;
})(window);