@dgplsoares/singulai-ds-mcp 0.8.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "0.8.0",
3
- "generated_at": "2026-05-12",
2
+ "version": "0.9.1",
3
+ "generated_at": "2026-06-19",
4
4
  "design_system": {
5
5
  "name": "Singulai Design System",
6
6
  "version": "DS-2.1",
@@ -248,12 +248,12 @@
248
248
  "full"
249
249
  ],
250
250
  "StatsBarColumns": [
251
- 1,
252
- 2,
253
- 3,
254
- 4,
255
- 5,
256
- 6
251
+ "1",
252
+ "2",
253
+ "3",
254
+ "4",
255
+ "5",
256
+ "6"
257
257
  ],
258
258
  "FilterDropdownPosition": [
259
259
  "bottom-start",
@@ -276,7 +276,7 @@
276
276
  {
277
277
  "name": "ButtonComponent",
278
278
  "selector": "ds-button",
279
- "description": "Botão unificado do DS — 8 variants estruturais (solid, outline, icon, sidebar, etc.) × 9 cores semânticas. Suporta ícones left/right (heroicons ou imagens), estados loading/disabled e flag active para nav-items.",
279
+ "description": "Botão unificado do DS — 14 variants estruturais × 11 cores semânticas. Variants: primary-cta (gradient animado, card welcome), solid + outline (DS-2.1 — substituem modal-primary/modal-cancel), action (header dashboard principal — Reorganizar/Personalizar), action-icon (BTN-1 v2 — label-aware: sem children = icon-only 28×28 neumorphic row action; com children = pill icon+text inline accordion ou Plataformas header), action-add (BTN-1 v2 — mode-aware: default outline branco neumorphic; variantColor=primary = filled azul; '+ Adicionar X' em header datatable), icon (LEGACY — usar action-icon), submit, sidebar, modal-cancel/modal-primary (DEPRECATED), nav-tab, pagination, toggle-status. Suporta ícones left/right (heroicons via iconLeft/iconRight ou imagens via iconImageSrc), estados loading/disabled, flag active, e override de tamanho de ícone via iconSizeOverride (G.4.3 — DEC-G4.3-N).",
280
280
  "tags": [
281
281
  "button",
282
282
  "cta",
@@ -329,6 +329,12 @@
329
329
  "default": "'20px'",
330
330
  "description": "Tamanho do ícone via path."
331
331
  },
332
+ {
333
+ "name": "iconSizeOverride",
334
+ "type": "string | null",
335
+ "default": "null",
336
+ "description": "Override do tamanho do ícone heroicon (iconLeft/iconRight). Default null usa o mapeamento size→iconSize (sm=12/md=14/lg=16px). Útil quando o ícone precisa diferir do tamanho do botão (ex: action-icon size=md com ícone 17px em row actions de datatable — DEC-G4.3-N)."
337
+ },
332
338
  {
333
339
  "name": "iconRight",
334
340
  "type": "string | null",
@@ -368,7 +374,10 @@
368
374
  ],
369
375
  "examples": [
370
376
  "<ds-button variant=\"solid\" variantColor=\"primary\" (clicked)=\"onSave()\">Salvar</ds-button>",
371
- "<ds-button variant=\"icon\" iconLeft=\"heroPencil\" ariaLabel=\"Editar\" (clicked)=\"onEdit()\" />",
377
+ "<ds-button variant=\"action-icon\" size=\"sm\" variantColor=\"danger\" iconLeft=\"heroTrash\" ariaLabel=\"Excluir\" (clicked)=\"onDelete()\" />",
378
+ "<ds-button variant=\"action-icon\" size=\"lg\" iconLeft=\"heroSquares2x2\" variantColor=\"info\">Plataformas</ds-button>",
379
+ "<ds-button variant=\"action-add\" size=\"lg\" variantColor=\"primary\" iconLeft=\"heroPlus\">Adicionar Aluno</ds-button>",
380
+ "<ds-button variant=\"action-icon\" size=\"md\" iconSizeOverride=\"17px\" variantColor=\"info\" iconLeft=\"heroEye\" ariaLabel=\"Ver\" (clicked)=\"onView()\" />",
372
381
  "<ds-button variant=\"primary-cta\" [loading]=\"saving()\" type=\"submit\">Criar conta</ds-button>"
373
382
  ]
374
383
  },
@@ -1168,7 +1177,7 @@
1168
1177
  {
1169
1178
  "name": "StatsbarCardComponent",
1170
1179
  "selector": "ds-statsbar-card",
1171
- "description": "Card de KPI para statsbar — title + value + delta (com seta up/down) + ícone neumorphic embutido. 6 variants de cor (success/purple/warning/info/danger/neutral). Polaridade invertida disponível (delta down como positivo).",
1180
+ "description": "Card de KPI para statsbar — title + value + delta (com seta up/down) + ícone neumorphic embutido. 7 variants de cor (success/purple/warning/info/danger/neutral/pink). Polaridade invertida disponível (deltaDirection 'down' = bom em métricas onde 'menos é melhor', ex: Tempo Médio, Tickets Abertos).",
1172
1181
  "tags": [
1173
1182
  "kpi",
1174
1183
  "statsbar",
@@ -1211,7 +1220,7 @@
1211
1220
  "name": "variant",
1212
1221
  "type": "StatsbarCardVariant",
1213
1222
  "default": "'neutral'",
1214
- "description": "Variant de cor do ícone."
1223
+ "description": "Cor semântica do card. 7 variants: 'success' (verde), 'purple' (roxo, ex: Tempo Médio), 'warning' (amarelo), 'info' (azul claro), 'danger' (vermelho), 'neutral' (cinza default), 'pink' (rosa)."
1215
1224
  },
1216
1225
  {
1217
1226
  "name": "iconImageSrc",
@@ -1476,7 +1485,7 @@
1476
1485
  {
1477
1486
  "name": "DatatableComponent",
1478
1487
  "selector": "ds-datatable",
1479
- "description": "Tabela de dados com search, sort, paginação client/server-side, filters, bulk actions, custom cells (badge/avatar/composite/progress/switch/actions), templates customizados. Wrapper thin (config-only) de <app-data-table> existente em /shared/components/. Visual override aplicado via SCSS para alinhar com Figma 862:10798 (paleta: headers #516D87, cells #5C6F8E, border #DFE3EA, dividers #D5DCE6). Re-exporta DataTableConfig<T>, ColumnDef<T>, RowAction<T>, etc. de shared. Aceita um único [config] objectnão duplica as ~30 props internas.",
1488
+ "description": "Tabela de dados com toolbar (search + filter dropdown + secondaryAction + count badge + add button), body 2-camadas neumorphic, e pagination footer pixel-perfect (Figma 892:9019/9046/9396). Wrapper thin de <app-data-table> shared — composição config-only (DEC-PREP3-A). Refator G.4.3 (2026-05-18) trouxe pixel-perfect: toolbar usa <ds-form-field variant=search> + <ds-filter-dropdown mode=single> + <ds-button action-icon> (secondaryAction) + <ds-button action-add> (addButton). Row actions usam <ds-button variant=action-icon size=md iconSizeOverride=17px> com mapeamento RowAction.variant → colorVariant (default→info, warning→warning, danger→danger). Pagination footer: prev/next SVG icon-only, inactive numbers texto, active pill 32×30 neumorphic. Estrutura 2-camadas via 2-border (estratégia ds-stats-bar). LIGHTMODE-FIRST estrito (zero classes dark:). Config aceita: columns, rowActions, bulkActions, filterDropdown, secondaryAction (DEC-G4.3-D pill action-icon variantColor=info, ex: 'Categorias'/'Etiquetas'/'Tags'), addButton, itemCountBadge, serverSide + serverSideMeta, paginated, searchable. Suporta server-side ou client-side. Custom cells: badge, avatar, composite (avatar+título+desc), progress, switch, dateRelative.",
1480
1489
  "tags": [
1481
1490
  "datatable",
1482
1491
  "data-table",
@@ -1568,23 +1577,7 @@
1568
1577
  }
1569
1578
  ],
1570
1579
  "examples": [
1571
- "const tableConfig: DataTableConfig<Course> = {",
1572
- " columns: [",
1573
- " { key: 'name', label: 'Curso', type: 'text', sortable: true },",
1574
- " { key: 'isActive', label: 'Status', type: 'switch', switchConfig: { activeLabel: 'Ativo' } },",
1575
- " { key: 'level', label: 'Nivel', type: 'badge' },",
1576
- " ],",
1577
- " searchable: true,",
1578
- " paginated: true,",
1579
- " initialPageSize: 20,",
1580
- "};",
1581
- "",
1582
- "<ds-datatable",
1583
- " [data]=\"courses()\"",
1584
- " [config]=\"tableConfig\"",
1585
- " [loading]=\"isLoading()\"",
1586
- " (rowClick)=\"onRowClick($event)\"",
1587
- "/>"
1580
+ "<ds-datatable [data]=\"items()\" [config]=\"tableConfig()\" [loading]=\"loading()\" (pageChange)=\"onPage($event)\" (filterChange)=\"onFilter($event)\" />"
1588
1581
  ]
1589
1582
  },
1590
1583
  {
@@ -2126,7 +2119,7 @@
2126
2119
  {
2127
2120
  "name": "FilterDropdownComponent",
2128
2121
  "selector": "ds-filter-dropdown",
2129
- "description": "Filtro multi-select via overlay com checkboxes round neumorphic. Pattern do Figma DEC-FIG-A-4 (952-15654/16189/16231/16238). Trigger pill neumorphic (bg #EDF1F6 + drop shadow + inset top white / bottom dark) com icon filter + label dinamico + chevron. Overlay com border 1px #ADC2DD + checkboxes 16px round (selecionado: gradient azul #5C8DE2->#27467C + outer shadow neumorphic; nao-selecionado: bg #E3EDF7 + inset shadow). Estado controlado pelo caller (selectedValues array). Click fora ou ESC fecha. Usa CDK Overlay. Para single-select: caller pode emular passando array com 1 item ou usar <ds-dropdown-menu> action items.",
2122
+ "description": "Filtro single OU multi-select via overlay com checkboxes round neumorphic. Pattern Figma DEC-FIG-A-4 (952-15654/16189/16231/16238). Trigger pill neumorphic 48px altura (bg #EDF1F6 + drop shadow + inset top white / bottom dark — DEC-G4.3-A) com icon filter + label dinâmico + chevron. Overlay com border 1px #ADC2DD + checkboxes 16px round (selecionado: gradient azul #5C8DE2→#27467C + outer shadow neumorphic; não-selecionado: bg #E3EDF7 + inset shadow). Modo controlado via prop `mode`: 'multi' (default toggla values, mantém overlay aberto) ou 'single' (substitui seleção + fecha overlay automaticamente — DEC-G4.3-F, padrão para filtros de listagem). Estado controlado pelo caller via selectedValues array. Click fora ou ESC fecha. Usa CDK Overlay.",
2130
2123
  "tags": [
2131
2124
  "filter",
2132
2125
  "dropdown",
@@ -2179,6 +2172,12 @@
2179
2172
  "type": "string",
2180
2173
  "default": "'200px'",
2181
2174
  "description": "Largura minima do overlay (CSS)."
2175
+ },
2176
+ {
2177
+ "name": "mode",
2178
+ "type": "FilterDropdownMode",
2179
+ "default": "'multi'",
2180
+ "description": "Modo de seleção: 'single' (click substitui seleção por [value] e fecha overlay) ou 'multi' (toggla value no array, overlay permanece aberto). Default 'multi' retrocompat. Single é o padrão para filtros de listagem em datatables (DEC-G4.3-F)."
2182
2181
  }
2183
2182
  ],
2184
2183
  "outputs": [
@@ -2194,8 +2193,8 @@
2194
2193
  }
2195
2194
  ],
2196
2195
  "examples": [
2197
- "<ds-filter-dropdown\n [options]=\"[\n { value: 'all', label: 'Todos', count: 7 },\n { value: 'confirmed', label: 'Confirmados', count: 3 },\n { value: 'pending', label: 'Pendentes', count: 2 }\n ]\"\n [selectedValues]=\"selected()\"\n triggerLabel=\"Todos\"\n (filtersChange)=\"onFilterChange($event)\"\n/>",
2198
- "// Caller controla o label dinamico:\nfilterLabel = computed(() => {\n const sel = this.selected();\n if (sel.length === 0) return 'Filtro';\n if (sel.length === 1) return this.options.find(o => o.value === sel[0])?.label ?? 'Filtro';\n return `${sel.length} selecionados`;\n});"
2196
+ "<ds-filter-dropdown [options]=\"statusOptions\" [selectedValues]=\"selected()\" triggerLabel=\"Status\" mode=\"multi\" (filtersChange)=\"onFilters($event)\" />",
2197
+ "<ds-filter-dropdown [options]=\"statusOptions\" [selectedValues]=\"[currentFilter()]\" triggerLabel=\"Todos\" mode=\"single\" (filtersChange)=\"onFilterChange($event)\" />"
2199
2198
  ]
2200
2199
  }
2201
2200
  ],
@@ -2326,4 +2325,4 @@
2326
2325
  ]
2327
2326
  }
2328
2327
  ]
2329
- }
2328
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dgplsoares/singulai-ds-mcp",
3
- "version": "0.8.0",
3
+ "version": "0.9.1",
4
4
  "description": "MCP server exposing the Singulai Design System (Angular 20) to AI agents \u2014 Claude Desktop, Claude Code, Cursor, Continue.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -50,4 +50,4 @@
50
50
  "tsx": "^4.19.2",
51
51
  "typescript": "^5.7.2"
52
52
  }
53
- }
53
+ }