🧅 MACLLM Widget SDK

50+ production-grade widgets — Web Components, themeable, embeddable, i18n

Installation

Embed (1 line)

<script type="module" src="https://macllm.ai/widgets/macllm.js" data-type="macllm-chat" data-theme="dark" data-lang="th" data-key="YOUR_API_KEY"> </script>

JavaScript API

import MACLLM from '/widgets/macllm.js'; MACLLM.init({ theme: 'dark', locale: 'th', key: 'YOUR_KEY' }); // Create widget programmatically const chat = MACLLM.create('chat', { position: 'bottom-right' }); document.body.appendChild(chat); // Or use HTML directly // <macllm-chat position="inline" agent="coder"></macllm-chat>

Chat Widget Core

<macllm-chat>

Full-featured AI chat: bubble, sidebar, fullscreen, inline modes. SSE streaming, markdown, code blocks.

PropTypeDefaultDescription
positionstringbottom-rightbottom-right | bottom-left | sidebar | inline
themestringdarkdark | light | custom
agentstringassistantassistant | coder | legal | medical | analyst
titlestringMACLLM ChatChat window title
apistring-API base URL
keystring-API key for auth
<macllm-chat position="inline" agent="coder" title="Code Assistant"></macllm-chat>

KPI Card Data

<macllm-kpi>

Animated KPI card with trend arrow, sparkline, and configurable color.

PropTypeDefaultDescription
titlestringKPICard title
valuestring0Display value
trendstring-Trend text (e.g., +12%)
colorstringprimaryprimary | success | danger | warning | info | #hex
sparklinestring-Comma-separated values for sparkline
prefixstring-Value prefix (e.g., ฿)
suffixstring-Value suffix (e.g., %)
<macllm-kpi title="Revenue" value="฿1.2M" trend="+15%" color="success" sparkline="10,15,12,18,25,22,30"></macllm-kpi>

Chart Data

<macllm-chart>

10 chart types rendered on Canvas 2D — no external dependencies.

PropTypeDefaultDescription
typestringbarbar | line | area | pie | donut | radar | gauge | scatter | heatmap | horizontal-bar
dataJSON[]Chart data array
labelsJSON-Label array
titlestring-Chart title
colorsJSONautoColor array
<macllm-chart type="line" data="[120,150,180,160,200,250]" labels='["Jan","Feb","Mar","Apr","May","Jun"]' title="Monthly Traffic"> </macllm-chart>

Table Data

<macllm-table>

Smart table with sort, filter, search, pagination, and CSV export.

PropTypeDefaultDescription
dataJSON[]Array of row objects
columnsJSONauto[{key, label, sortable}]
paginatenumber20Rows per page
searchablebooltrueShow search box
exportablebooltrueShow export button

Dashboard Builder Builder

<macllm-dashboard>

Drag-and-drop dashboard with presets and HTML export.

PropTypeDefaultDescription
presetstring-analytics | monitoring | social
colsnumber4Grid columns
editableboolfalseEnable drag-and-drop editing
<macllm-dashboard preset="analytics" editable></macllm-dashboard>