// Tokens & icons copy-paste examples. export /** * */ const TOKENS_SETUP = `// Point Tailwind at the africanies-theme preset and scan @africanies/africanies-ui so its classes aren't purged. // Don't re-declare token colors locally — extend the preset. // tailwind.config.js — monorepo paths (adjust __dirname to your app root) const path = require('node:path'); module.exports = { presets: [require('@africanies/africanies-theme/tailwind-preset')], content: [ path.join(__dirname, 'src/**/*.{html,ts}'), // Required: scan the UI library so its literal Tailwind classes survive purge. path.join(__dirname, '../../libs/africanies-ui/src/**/*.{html,ts}'), path.join(__dirname, '../../libs/africanies-theme/src/**/*.{html,ts}'), // Published-app equivalent: // './src/**/*.{html,ts}', // './node_modules/@africanies/africanies-ui/**/*.{js,mjs}', ], }; `; export /** * */ const TOKENS_CORE = `// Ink / surface utilities — use literal class strings (Tailwind can't see dynamic names).
Ink surface
Brand ink panel
Near-black panel
Pure black
White surface
`; export /** * */ const TOKENS_NEUTRAL = `// Borders, muted copy, page chrome — stay on the token scale, skip raw hex.

Muted supporting copy

Primary body on welcome background

Disabled / placeholder tone Light divider accent `; export /** * */ const TOKENS_EXPORT = `// SFN / export green — fine for static marketing. Mode-aware chrome? Use ModeColorService. Primary Subtle Light accent text
Tinted panel
`; export /** * */ const TOKENS_IMPORT = `// STN / import orange — same idea as export; prefer ModeColorService when mode can flip. Primary Subtle Light accent text
Tinted panel
`; export /** * */ const TOKENS_FEEDBACK = `// Status colors — mode-agnostic. Don't map danger/warning to export/import. Danger Danger solid Warning Inline error copy `; export /** * */ const TOKENS_TYPE = `// Typography scale from the theme preset. Prefer these over arbitrary text-[Npx].

Ship across continents

Shipment details

Cargo summary

Supporting sentence for denser marketing or empty states.

Default reading size for forms, tables, and dialogs.

Secondary copy and dense metadata.

Hints, timestamps, and chip labels. `; export /** * */ const TOKENS_MODE_ACCENTS = `// Primary chrome that follows SFN/STN. Bind [class] to modeColor.classes() literals — // don't interpolate Tailwind token names yourself. import { Component, inject } from '@angular/core'; import { ModeColorService } from '@africanies/africanies-theme'; import { ButtonComponent } from '@africanies/africanies-ui'; @Component({ selector: 'app-mode-accent-demo', standalone: true, imports: [ButtonComponent], template: \` @let colors = modeColor.classes(); Accent label

SFN export / STN import

Shipment headline

Selected row highlight
\`, }) export class ModeAccentDemoComponent { protected readonly modeColor = inject(ModeColorService); } `; export /** * */ const ICONS_USAGE = `// Shared SVG sprite via . Type dynamic names as IconName for autocomplete. import { Component } from '@angular/core'; import { AfricaniesIconComponent, type IconName } from '@africanies/africanies-icons'; @Component({ selector: 'app-icon-demo', standalone: true, imports: [AfricaniesIconComponent], template: \` \`, }) export class IconDemoComponent { protected readonly dynamicIcon: IconName = 'anchor'; } `;