commit cf01b2289a2947d99545b10da2945c8175d6e07d Author: odaybari Date: Sun May 24 18:00:05 2026 +0300 Initial commit: Biibaye branding extension - Overrides app name to Biibaye via translations - Sets window title to Biibaye - Delivery System - Injects primary color #FF4500 and dark bg #343538 - Replaces favicons with custom assets (placeholder files) - Includes site.webmanifest with Biibaye config - Minimal Ember engine to satisfy Fleetbase extension system diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..aafcb34 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +node_modules/ +.DS_Store +*.log diff --git a/addon/engine.js b/addon/engine.js new file mode 100644 index 0000000..365077a --- /dev/null +++ b/addon/engine.js @@ -0,0 +1,13 @@ +import Engine from '@ember/engine'; +import loadInitializers from 'ember-load-initializers'; +import Resolver from 'ember-resolver'; +import config from './config/environment'; + +const { modulePrefix } = config; + +export default class BiibayeBrandingEngine extends Engine { + modulePrefix = modulePrefix; + Resolver = Resolver; +} + +loadInitializers(BiibayeBrandingEngine, modulePrefix); diff --git a/addon/extension.js b/addon/extension.js new file mode 100644 index 0000000..911b2b4 --- /dev/null +++ b/addon/extension.js @@ -0,0 +1,86 @@ +export default { + setupExtension(appInstance, universe) { + const hookService = universe.getService('hook'); + + setDocumentTitle(); + injectBrandStyles(); + replaceFavicon(); + + hookService.registerHook('application:before-model', () => { + setDocumentTitle(); + replaceFavicon(); + }); + }, +}; + +function setDocumentTitle() { + document.title = 'Biibaye - Delivery System'; +} + +function injectBrandStyles() { + if (document.getElementById('biibaye-brand-styles')) { + return; + } + + const style = document.createElement('style'); + style.id = 'biibaye-brand-styles'; + style.textContent = ` + :root { + --primary: #FF4500; + --primary-hover: #e03d00; + } + body[data-theme="dark"] { + background-color: #343538 !important; + } + `; + document.head.appendChild(style); +} + +function replaceFavicon() { + removeExistingFavicons(); + addBiibayeFavicon(); + updateMetaTags(); +} + +function removeExistingFavicons() { + document.querySelectorAll('link[rel*="icon"], link[rel="apple-touch-icon"], link[rel="mask-icon"]').forEach((el) => el.remove()); + document.querySelectorAll('meta[name="msapplication-TileColor"], meta[name="theme-color"]').forEach((el) => el.remove()); + const manifestLink = document.querySelector('link[rel="manifest"]'); + if (manifestLink) { + manifestLink.href = '/favicon/site.webmanifest'; + } +} + +function addBiibayeFavicon() { + const faviconPath = '/favicon'; + const links = [ + { rel: 'icon', type: 'image/png', sizes: '32x32', href: `${faviconPath}/favicon-32x32.png` }, + { rel: 'icon', type: 'image/png', sizes: '16x16', href: `${faviconPath}/favicon-16x16.png` }, + { rel: 'apple-touch-icon', sizes: '180x180', href: `${faviconPath}/apple-touch-icon.png` }, + { rel: 'icon', type: 'image/png', sizes: '192x192', href: `${faviconPath}/android-chrome-192x192.png` }, + { rel: 'icon', type: 'image/png', sizes: '256x256', href: `${faviconPath}/android-chrome-256x256.png` }, + ]; + + links.forEach(({ rel, type, sizes, href }) => { + const link = document.createElement('link'); + link.rel = rel; + if (type) link.type = type; + if (sizes) link.sizes = sizes; + link.href = href; + document.head.appendChild(link); + }); +} + +function updateMetaTags() { + const metaTags = [ + { name: 'msapplication-TileColor', content: '#FF4500' }, + { name: 'theme-color', content: '#FF4500' }, + ]; + + metaTags.forEach(({ name, content }) => { + const meta = document.createElement('meta'); + meta.name = name; + meta.content = content; + document.head.appendChild(meta); + }); +} diff --git a/config/environment.js b/config/environment.js new file mode 100644 index 0000000..56b0885 --- /dev/null +++ b/config/environment.js @@ -0,0 +1,9 @@ +'use strict'; +const { name } = require('../package'); + +module.exports = function (environment) { + return { + modulePrefix: name, + environment, + }; +}; diff --git a/extension.json b/extension.json new file mode 100644 index 0000000..5f9c6e5 --- /dev/null +++ b/extension.json @@ -0,0 +1,8 @@ +{ + "name": "Biibaye Branding", + "version": "1.0.0", + "description": "Custom branding for Biibaye Delivery System — logo, favicon, colors, app name and window title", + "license": "MIT", + "author": "Biibaye", + "engine": "package.json" +} diff --git a/index.js b/index.js new file mode 100644 index 0000000..ccdd2e0 --- /dev/null +++ b/index.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = { + name: '@biibaye/branding', +}; diff --git a/package.json b/package.json new file mode 100644 index 0000000..6505058 --- /dev/null +++ b/package.json @@ -0,0 +1,30 @@ +{ + "name": "@biibaye/branding", + "version": "1.0.0", + "description": "Custom branding extension for Biibaye Delivery System", + "fleetbase": { + "mount": "root" + }, + "keywords": [ + "fleetbase-extension", + "ember-engine" + ], + "license": "MIT", + "author": "Biibaye", + "directories": { + "app": "app", + "addon": "addon", + "tests": "tests" + }, + "dependencies": { + "@fleetbase/ember-core": "*", + "ember-cli-babel": "^8.2.0", + "ember-cli-htmlbars": "^6.3.0" + }, + "engines": { + "node": ">= 18" + }, + "ember": { + "edition": "octane" + } +} diff --git a/public/favicon/android-chrome-192x192.png b/public/favicon/android-chrome-192x192.png new file mode 100644 index 0000000..5bb9457 Binary files /dev/null and b/public/favicon/android-chrome-192x192.png differ diff --git a/public/favicon/android-chrome-256x256.png b/public/favicon/android-chrome-256x256.png new file mode 100644 index 0000000..327e653 Binary files /dev/null and b/public/favicon/android-chrome-256x256.png differ diff --git a/public/favicon/apple-touch-icon-114x114.png b/public/favicon/apple-touch-icon-114x114.png new file mode 100644 index 0000000..8ea847e Binary files /dev/null and b/public/favicon/apple-touch-icon-114x114.png differ diff --git a/public/favicon/apple-touch-icon-120x120.png b/public/favicon/apple-touch-icon-120x120.png new file mode 100644 index 0000000..aabcd6b Binary files /dev/null and b/public/favicon/apple-touch-icon-120x120.png differ diff --git a/public/favicon/apple-touch-icon-144x144.png b/public/favicon/apple-touch-icon-144x144.png new file mode 100644 index 0000000..539d561 Binary files /dev/null and b/public/favicon/apple-touch-icon-144x144.png differ diff --git a/public/favicon/apple-touch-icon-152x152.png b/public/favicon/apple-touch-icon-152x152.png new file mode 100644 index 0000000..3ca9ab4 Binary files /dev/null and b/public/favicon/apple-touch-icon-152x152.png differ diff --git a/public/favicon/apple-touch-icon-180x180.png b/public/favicon/apple-touch-icon-180x180.png new file mode 100644 index 0000000..1727f26 Binary files /dev/null and b/public/favicon/apple-touch-icon-180x180.png differ diff --git a/public/favicon/apple-touch-icon-57x57.png b/public/favicon/apple-touch-icon-57x57.png new file mode 100644 index 0000000..56a23e9 Binary files /dev/null and b/public/favicon/apple-touch-icon-57x57.png differ diff --git a/public/favicon/apple-touch-icon-60x60.png b/public/favicon/apple-touch-icon-60x60.png new file mode 100644 index 0000000..b4db257 Binary files /dev/null and b/public/favicon/apple-touch-icon-60x60.png differ diff --git a/public/favicon/apple-touch-icon-72x72.png b/public/favicon/apple-touch-icon-72x72.png new file mode 100644 index 0000000..82ae16a Binary files /dev/null and b/public/favicon/apple-touch-icon-72x72.png differ diff --git a/public/favicon/apple-touch-icon-76x76.png b/public/favicon/apple-touch-icon-76x76.png new file mode 100644 index 0000000..622bf56 Binary files /dev/null and b/public/favicon/apple-touch-icon-76x76.png differ diff --git a/public/favicon/apple-touch-icon.png b/public/favicon/apple-touch-icon.png new file mode 100644 index 0000000..1727f26 Binary files /dev/null and b/public/favicon/apple-touch-icon.png differ diff --git a/public/favicon/browserconfig.xml b/public/favicon/browserconfig.xml new file mode 100644 index 0000000..70cb989 --- /dev/null +++ b/public/favicon/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #da532c + + + diff --git a/public/favicon/favicon-16x16.png b/public/favicon/favicon-16x16.png new file mode 100644 index 0000000..bdcc6c9 Binary files /dev/null and b/public/favicon/favicon-16x16.png differ diff --git a/public/favicon/favicon-32x32.png b/public/favicon/favicon-32x32.png new file mode 100644 index 0000000..4b42d67 Binary files /dev/null and b/public/favicon/favicon-32x32.png differ diff --git a/public/favicon/favicon.ico b/public/favicon/favicon.ico new file mode 100644 index 0000000..15ba0fe Binary files /dev/null and b/public/favicon/favicon.ico differ diff --git a/public/favicon/mstile-150x150.png b/public/favicon/mstile-150x150.png new file mode 100644 index 0000000..595fba0 Binary files /dev/null and b/public/favicon/mstile-150x150.png differ diff --git a/public/favicon/safari-pinned-tab.svg b/public/favicon/safari-pinned-tab.svg new file mode 100644 index 0000000..aac7cf9 --- /dev/null +++ b/public/favicon/safari-pinned-tab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/favicon/site.webmanifest b/public/favicon/site.webmanifest new file mode 100644 index 0000000..7e06033 --- /dev/null +++ b/public/favicon/site.webmanifest @@ -0,0 +1,7 @@ +{ + "name": "Biibaye - Delivery System", + "short_name": "Biibaye", + "theme_color": "#FF4500", + "background_color": "#343538", + "display": "standalone" +} diff --git a/public/images/fleetbase-logo-svg.svg b/public/images/fleetbase-logo-svg.svg new file mode 100644 index 0000000..141d565 --- /dev/null +++ b/public/images/fleetbase-logo-svg.svg @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/icon.png b/public/images/icon.png new file mode 100644 index 0000000..219f63b Binary files /dev/null and b/public/images/icon.png differ diff --git a/public/images/icon.svg b/public/images/icon.svg new file mode 100644 index 0000000..6de9d97 --- /dev/null +++ b/public/images/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/translations/en-us.yaml b/translations/en-us.yaml new file mode 100644 index 0000000..45a2b21 --- /dev/null +++ b/translations/en-us.yaml @@ -0,0 +1 @@ +app.name: Biibaye