@smartsoft001/pro-claude-plugins 0.2.0

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.
Files changed (198) hide show
  1. package/.claude-plugin/marketplace.json +26 -0
  2. package/README.md +56 -0
  3. package/package.json +14 -0
  4. package/plugins/flow/.claude-plugin/README.md +91 -0
  5. package/plugins/flow/.claude-plugin/merge-permissions.js +115 -0
  6. package/plugins/flow/.claude-plugin/plugin.json +5 -0
  7. package/plugins/flow/.claude-plugin/settings.template.json +86 -0
  8. package/plugins/flow/agents/angular-component-scaffolder.md +176 -0
  9. package/plugins/flow/agents/angular-directive-builder.md +154 -0
  10. package/plugins/flow/agents/angular-guard-builder.md +244 -0
  11. package/plugins/flow/agents/angular-jest-test-writer.md +475 -0
  12. package/plugins/flow/agents/angular-pipe-builder.md +170 -0
  13. package/plugins/flow/agents/angular-resolver-builder.md +287 -0
  14. package/plugins/flow/agents/angular-service-builder.md +162 -0
  15. package/plugins/flow/agents/angular-signal-state-builder.md +340 -0
  16. package/plugins/flow/agents/angular-test-diagnostician.md +279 -0
  17. package/plugins/flow/agents/angular-testbed-configurator.md +315 -0
  18. package/plugins/flow/agents/arch-scaffolder.md +278 -0
  19. package/plugins/flow/agents/e2e-data-testid-injector.md +195 -0
  20. package/plugins/flow/agents/e2e-project-scaffolder.md +194 -0
  21. package/plugins/flow/agents/e2e-test-writer.md +357 -0
  22. package/plugins/flow/agents/shared-agent-evolver.md +294 -0
  23. package/plugins/flow/agents/shared-build-verifier.md +160 -0
  24. package/plugins/flow/agents/shared-config-updater.md +310 -0
  25. package/plugins/flow/agents/shared-coverage-enforcer.md +184 -0
  26. package/plugins/flow/agents/shared-error-handler.md +217 -0
  27. package/plugins/flow/agents/shared-file-creator.md +344 -0
  28. package/plugins/flow/agents/shared-impl-orchestrator.md +312 -0
  29. package/plugins/flow/agents/shared-impl-reporter.md +368 -0
  30. package/plugins/flow/agents/shared-impl-teammate.md +201 -0
  31. package/plugins/flow/agents/shared-linear-subtask-iterator.md +337 -0
  32. package/plugins/flow/agents/shared-logic-implementer.md +244 -0
  33. package/plugins/flow/agents/shared-maia-api.md +26 -0
  34. package/plugins/flow/agents/shared-parallelization-analyzer.md +343 -0
  35. package/plugins/flow/agents/shared-performance-validator.md +168 -0
  36. package/plugins/flow/agents/shared-plan-perspective.md +271 -0
  37. package/plugins/flow/agents/shared-project-standardizer.md +205 -0
  38. package/plugins/flow/agents/shared-report-synthesizer.md +188 -0
  39. package/plugins/flow/agents/shared-review-teammate.md +189 -0
  40. package/plugins/flow/agents/shared-security-scanner.md +186 -0
  41. package/plugins/flow/agents/shared-style-enforcer.md +230 -0
  42. package/plugins/flow/agents/shared-subtask-dependency-analyzer.md +189 -0
  43. package/plugins/flow/agents/shared-tdd-developer.md +350 -0
  44. package/plugins/flow/agents/shared-team-coordinator.md +192 -0
  45. package/plugins/flow/agents/shared-test-fixer.md +186 -0
  46. package/plugins/flow/agents/shared-test-runner.md +191 -0
  47. package/plugins/flow/agents/shared-ui-classifier.md +263 -0
  48. package/plugins/flow/agents/shared-verification-orchestrator.md +194 -0
  49. package/plugins/flow/agents/shared-verification-runner.md +140 -0
  50. package/plugins/flow/agents/ui-a11y-validator.md +305 -0
  51. package/plugins/flow/agents/ui-screenshot-reporter.md +329 -0
  52. package/plugins/flow/agents/ui-web-designer.md +214 -0
  53. package/plugins/flow/scripts/compute-session-tokens.sh +39 -0
  54. package/plugins/flow/skills/a11y-audit/SKILL.md +214 -0
  55. package/plugins/flow/skills/angular-patterns/SKILL.md +191 -0
  56. package/plugins/flow/skills/browser-capture/SKILL.md +238 -0
  57. package/plugins/flow/skills/commit/SKILL.md +259 -0
  58. package/plugins/flow/skills/debug-helper/SKILL.md +375 -0
  59. package/plugins/flow/skills/impl/SKILL.md +992 -0
  60. package/plugins/flow/skills/karpathy-guidelines/SKILL.md +72 -0
  61. package/plugins/flow/skills/linear-suggestion/SKILL.md +132 -0
  62. package/plugins/flow/skills/maia-files-delete/SKILL.md +59 -0
  63. package/plugins/flow/skills/maia-files-upload/SKILL.md +57 -0
  64. package/plugins/flow/skills/nx-conventions/SKILL.md +326 -0
  65. package/plugins/flow/skills/plan/SKILL.md +1033 -0
  66. package/plugins/flow/skills/push/SKILL.md +759 -0
  67. package/plugins/flow/skills/review/SKILL.md +443 -0
  68. package/plugins/flow/skills/test-e2e/SKILL.md +164 -0
  69. package/plugins/flow/skills/test-unit/SKILL.md +456 -0
  70. package/plugins/flow-external/.claude-plugin/README.md +146 -0
  71. package/plugins/flow-external/.claude-plugin/merge-permissions.js +94 -0
  72. package/plugins/flow-external/.claude-plugin/plugin.json +5 -0
  73. package/plugins/flow-external/.claude-plugin/settings.template.json +78 -0
  74. package/plugins/flow-external/agents/angular-component-scaffolder.md +271 -0
  75. package/plugins/flow-external/agents/angular-directive-builder.md +134 -0
  76. package/plugins/flow-external/agents/angular-guard-builder.md +73 -0
  77. package/plugins/flow-external/agents/angular-pipe-builder.md +90 -0
  78. package/plugins/flow-external/agents/angular-resolver-builder.md +79 -0
  79. package/plugins/flow-external/agents/angular-service-builder.md +168 -0
  80. package/plugins/flow-external/agents/angular-state-builder.md +263 -0
  81. package/plugins/flow-external/agents/shared-build-verifier.md +67 -0
  82. package/plugins/flow-external/agents/shared-impl-orchestrator.md +90 -0
  83. package/plugins/flow-external/agents/shared-impl-reporter.md +135 -0
  84. package/plugins/flow-external/agents/shared-linear-subtask-iterator.md +70 -0
  85. package/plugins/flow-external/agents/shared-ui-classifier.md +38 -0
  86. package/plugins/flow-external/agents/ui-web-designer.md +203 -0
  87. package/plugins/flow-external/scripts/compute-session-tokens.sh +39 -0
  88. package/plugins/flow-external/skills/a11y-audit/SKILL.md +97 -0
  89. package/plugins/flow-external/skills/angular-cli-conventions/SKILL.md +268 -0
  90. package/plugins/flow-external/skills/angular-patterns/SKILL.md +182 -0
  91. package/plugins/flow-external/skills/browser-capture/SKILL.md +74 -0
  92. package/plugins/flow-external/skills/commit/SKILL.md +114 -0
  93. package/plugins/flow-external/skills/debug-helper/SKILL.md +135 -0
  94. package/plugins/flow-external/skills/impl/SKILL.md +218 -0
  95. package/plugins/flow-external/skills/karpathy-guidelines/SKILL.md +72 -0
  96. package/plugins/flow-external/skills/linear-suggestion/SKILL.md +62 -0
  97. package/plugins/flow-external/skills/maia-files-delete/SKILL.md +34 -0
  98. package/plugins/flow-external/skills/maia-files-upload/SKILL.md +41 -0
  99. package/plugins/flow-external/skills/plan/SKILL.md +334 -0
  100. package/plugins/flow-external/skills/push/SKILL.md +232 -0
  101. package/plugins/flow-legacy/.claude-plugin/README.md +143 -0
  102. package/plugins/flow-legacy/.claude-plugin/merge-permissions.js +94 -0
  103. package/plugins/flow-legacy/.claude-plugin/plugin.json +5 -0
  104. package/plugins/flow-legacy/.claude-plugin/settings.template.json +79 -0
  105. package/plugins/flow-legacy/agents/angular-component-scaffolder.md +327 -0
  106. package/plugins/flow-legacy/agents/angular-directive-builder.md +253 -0
  107. package/plugins/flow-legacy/agents/angular-guard-builder.md +326 -0
  108. package/plugins/flow-legacy/agents/angular-pipe-builder.md +238 -0
  109. package/plugins/flow-legacy/agents/angular-resolver-builder.md +339 -0
  110. package/plugins/flow-legacy/agents/angular-service-builder.md +271 -0
  111. package/plugins/flow-legacy/agents/angular-state-builder.md +480 -0
  112. package/plugins/flow-legacy/agents/shared-impl-orchestrator.md +174 -0
  113. package/plugins/flow-legacy/agents/shared-impl-reporter.md +232 -0
  114. package/plugins/flow-legacy/agents/shared-linear-subtask-iterator.md +198 -0
  115. package/plugins/flow-legacy/agents/shared-tdd-developer.md +307 -0
  116. package/plugins/flow-legacy/agents/shared-test-runner.md +133 -0
  117. package/plugins/flow-legacy/agents/shared-ui-classifier.md +145 -0
  118. package/plugins/flow-legacy/scripts/compute-session-tokens.sh +39 -0
  119. package/plugins/flow-legacy/skills/a11y-audit/SKILL.md +214 -0
  120. package/plugins/flow-legacy/skills/angular-patterns/SKILL.md +346 -0
  121. package/plugins/flow-legacy/skills/browser-capture/SKILL.md +238 -0
  122. package/plugins/flow-legacy/skills/commit/SKILL.md +215 -0
  123. package/plugins/flow-legacy/skills/debug-helper/SKILL.md +395 -0
  124. package/plugins/flow-legacy/skills/impl/SKILL.md +710 -0
  125. package/plugins/flow-legacy/skills/karpathy-guidelines/SKILL.md +72 -0
  126. package/plugins/flow-legacy/skills/linear-suggestion/SKILL.md +132 -0
  127. package/plugins/flow-legacy/skills/maia-files-delete/SKILL.md +59 -0
  128. package/plugins/flow-legacy/skills/maia-files-upload/SKILL.md +57 -0
  129. package/plugins/flow-legacy/skills/nx-conventions/SKILL.md +368 -0
  130. package/plugins/flow-legacy/skills/plan/SKILL.md +742 -0
  131. package/plugins/flow-legacy/skills/push/SKILL.md +645 -0
  132. package/plugins/flow-legacy/skills/test-unit/SKILL.md +500 -0
  133. package/plugins/smart-pro/.claude-plugin/README.md +115 -0
  134. package/plugins/smart-pro/.claude-plugin/merge-permissions.js +129 -0
  135. package/plugins/smart-pro/.claude-plugin/plugin.json +5 -0
  136. package/plugins/smart-pro/.claude-plugin/settings.template.json +94 -0
  137. package/plugins/smart-pro/agents/angular-components/AGENT.md +214 -0
  138. package/plugins/smart-pro/hooks/CONFIG.md +198 -0
  139. package/plugins/smart-pro/hooks/README.md +139 -0
  140. package/plugins/smart-pro/hooks/audit_logger.py +107 -0
  141. package/plugins/smart-pro/hooks/auto_format.sh +11 -0
  142. package/plugins/smart-pro/hooks/hooks.json +79 -0
  143. package/plugins/smart-pro/hooks/safety_validator.py +129 -0
  144. package/plugins/smart-pro/hooks/sensitive_file_blocker.py +58 -0
  145. package/plugins/smart-pro/hooks/skill_validator.py +220 -0
  146. package/plugins/smart-pro/skills/angular-components-action-panel/SKILL.md +159 -0
  147. package/plugins/smart-pro/skills/angular-components-avatar/SKILL.md +142 -0
  148. package/plugins/smart-pro/skills/angular-components-badge/SKILL.md +110 -0
  149. package/plugins/smart-pro/skills/angular-components-breadcrumbs/SKILL.md +91 -0
  150. package/plugins/smart-pro/skills/angular-components-button/SKILL.md +146 -0
  151. package/plugins/smart-pro/skills/angular-components-button-group/SKILL.md +121 -0
  152. package/plugins/smart-pro/skills/angular-components-calendar/SKILL.md +78 -0
  153. package/plugins/smart-pro/skills/angular-components-card/SKILL.md +110 -0
  154. package/plugins/smart-pro/skills/angular-components-card-heading/SKILL.md +105 -0
  155. package/plugins/smart-pro/skills/angular-components-command-palette/SKILL.md +168 -0
  156. package/plugins/smart-pro/skills/angular-components-container/SKILL.md +93 -0
  157. package/plugins/smart-pro/skills/angular-components-description-list/SKILL.md +102 -0
  158. package/plugins/smart-pro/skills/angular-components-details/SKILL.md +70 -0
  159. package/plugins/smart-pro/skills/angular-components-divider/SKILL.md +110 -0
  160. package/plugins/smart-pro/skills/angular-components-drawer/SKILL.md +136 -0
  161. package/plugins/smart-pro/skills/angular-components-dropdown/SKILL.md +131 -0
  162. package/plugins/smart-pro/skills/angular-components-empty-state/SKILL.md +103 -0
  163. package/plugins/smart-pro/skills/angular-components-feed/SKILL.md +110 -0
  164. package/plugins/smart-pro/skills/angular-components-form/SKILL.md +77 -0
  165. package/plugins/smart-pro/skills/angular-components-grid-list/SKILL.md +91 -0
  166. package/plugins/smart-pro/skills/angular-components-input/SKILL.md +118 -0
  167. package/plugins/smart-pro/skills/angular-components-list/SKILL.md +75 -0
  168. package/plugins/smart-pro/skills/angular-components-list-container/SKILL.md +106 -0
  169. package/plugins/smart-pro/skills/angular-components-media-object/SKILL.md +133 -0
  170. package/plugins/smart-pro/skills/angular-components-modal/SKILL.md +159 -0
  171. package/plugins/smart-pro/skills/angular-components-multi-column-layout/SKILL.md +84 -0
  172. package/plugins/smart-pro/skills/angular-components-navbar/SKILL.md +93 -0
  173. package/plugins/smart-pro/skills/angular-components-notification/SKILL.md +147 -0
  174. package/plugins/smart-pro/skills/angular-components-page/SKILL.md +162 -0
  175. package/plugins/smart-pro/skills/angular-components-page-heading/SKILL.md +96 -0
  176. package/plugins/smart-pro/skills/angular-components-paging/SKILL.md +86 -0
  177. package/plugins/smart-pro/skills/angular-components-progress-bars/SKILL.md +94 -0
  178. package/plugins/smart-pro/skills/angular-components-searchbar/SKILL.md +113 -0
  179. package/plugins/smart-pro/skills/angular-components-section-heading/SKILL.md +156 -0
  180. package/plugins/smart-pro/skills/angular-components-select-menu/SKILL.md +101 -0
  181. package/plugins/smart-pro/skills/angular-components-sidebar-layout/SKILL.md +121 -0
  182. package/plugins/smart-pro/skills/angular-components-sidebar-navigation/SKILL.md +80 -0
  183. package/plugins/smart-pro/skills/angular-components-sign-in-form/SKILL.md +91 -0
  184. package/plugins/smart-pro/skills/angular-components-stacked-layout/SKILL.md +114 -0
  185. package/plugins/smart-pro/skills/angular-components-stacked-list/SKILL.md +93 -0
  186. package/plugins/smart-pro/skills/angular-components-stats/SKILL.md +87 -0
  187. package/plugins/smart-pro/skills/angular-components-table/SKILL.md +98 -0
  188. package/plugins/smart-pro/skills/angular-components-tabs/SKILL.md +99 -0
  189. package/plugins/smart-pro/skills/angular-components-textarea/SKILL.md +111 -0
  190. package/plugins/smart-pro/skills/angular-components-toggle/SKILL.md +109 -0
  191. package/plugins/smart-pro/skills/angular-components-vertical-navigation/SKILL.md +139 -0
  192. package/plugins/smart-pro/skills/audit-log/SKILL.md +82 -0
  193. package/plugins/smart-pro/skills/format-code/SKILL.md +46 -0
  194. package/plugins/smart-pro/skills/project-conventions/SKILL.md +90 -0
  195. package/plugins/smart-pro/skills/safety-check/SKILL.md +0 -0
  196. package/src/index.d.ts +6 -0
  197. package/src/index.js +7 -0
  198. package/src/index.js.map +1 -0
@@ -0,0 +1,168 @@
1
+ ---
2
+ name: angular-components-command-palette
3
+ description: Command Palette component for @smartsoft001/pro-angular. Three layouts (simple, with-preview, with-groups), auto-detected from options, with built-in filtering, dark/light mode, and @tailwindplus/elements <el-dialog> shell.
4
+ user-invocable: false
5
+ ---
6
+
7
+ # Command Palette Component (Pro)
8
+
9
+ Use `<smartpro-command-palette>`. The wrapper picks one of three child layouts based on `layout` input or the shape of `options`. Within any layout, the palette filters `commands` by the bound `query` and emits `runCommand` when an item is picked.
10
+
11
+ ## Layouts
12
+
13
+ | `layout` value | Selector | Description |
14
+ | -------------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
15
+ | `'simple'` (default) | `smartpro-command-palette-simple` | Search input + flat list. Supports `padding`, `appearance`, `withIcons`, `withImages`, `withFooter` to cover the Simple / With padding / With images / With icons / Semi-transparent / With footer source variants. |
16
+ | `'with-preview'` | `smartpro-command-palette-with-preview` | Split panel — list on the left, preview pane on the right populated from `options.previewTpl`. Pane receives the currently-focused command via `$implicit`. |
17
+ | `'with-groups'` | `smartpro-command-palette-with-groups` | Grouped sections from `options.groups[]`. Each group filters independently; empty groups are hidden after filtering. |
18
+
19
+ The wrapper auto-detects: `options.groups` → `with-groups`; `options.previewTpl` → `with-preview`; otherwise `simple`. Pass `layout` explicitly to override.
20
+
21
+ ## Source variant mapping
22
+
23
+ | Tailwind UI variant | Pro options |
24
+ | ------------------- | -------------------------------------------------- |
25
+ | Simple | (defaults) |
26
+ | With padding | `padding: 'spacious'` |
27
+ | With preview | `previewTpl: TemplateRef<{ $implicit: ICommand }>` |
28
+ | With images | `withImages: true` + `command.imageUrl` |
29
+ | With icons | `withIcons: true` + `command.icon` (SVG path) |
30
+ | Semi-transparent | `appearance: 'semi-transparent'` |
31
+ | With groups | `groups: ICommandPaletteGroup[]` |
32
+ | With footer | `withFooter: true` + `footerHintTpl?: TemplateRef` |
33
+
34
+ ## API
35
+
36
+ ### Types (`command-palette.types.ts`)
37
+
38
+ ```typescript
39
+ type SmartCommandPaletteLayoutPro = 'simple' | 'with-preview' | 'with-groups';
40
+ type SmartCommandPalettePadding = 'normal' | 'spacious';
41
+ type SmartCommandPaletteAppearance = 'opaque' | 'semi-transparent';
42
+
43
+ interface ICommandPaletteGroup {
44
+ id: string;
45
+ label: string;
46
+ commands: ICommand[];
47
+ }
48
+
49
+ interface ICommandPaletteOptionsPro extends ICommandPaletteOptions {
50
+ layout?: SmartCommandPaletteLayoutPro;
51
+ padding?: SmartCommandPalettePadding;
52
+ appearance?: SmartCommandPaletteAppearance;
53
+ withFooter?: boolean;
54
+ withIcons?: boolean;
55
+ withImages?: boolean;
56
+ footerHintTpl?: TemplateRef<unknown>;
57
+ previewTpl?: TemplateRef<{ $implicit: ICommand }>;
58
+ groups?: ICommandPaletteGroup[];
59
+ }
60
+ ```
61
+
62
+ `ICommandPaletteOptions` (re-exported from `@smartsoft001/angular`) provides `placeholder`, `emptyText`, `ariaLabel`.
63
+
64
+ `ICommand` (re-exported): `{ id, label, icon?, group?, href?, description?, imageUrl? }`.
65
+
66
+ ### Wrapper inputs
67
+
68
+ | Input | Type | Default | Description |
69
+ | ---------- | ------------------------------------------- | ----------- | ------------------------------------------------------------------------ |
70
+ | `commands` | `ICommand[]` | `[]` | Source list, filtered by `query` via the base `filteredCommands` signal. |
71
+ | `open` | `boolean` (model — two-way) | `false` | Bind with `[(open)]`. When `false`, layouts render nothing. |
72
+ | `query` | `string` (model — two-way) | `''` | Bind with `[(query)]`. Filters case-insensitive by `label.includes`. |
73
+ | `layout` | `SmartCommandPaletteLayoutPro \| undefined` | `undefined` | Force a layout; when `undefined`, auto-detects from `options`. |
74
+ | `options` | `ICommandPaletteOptionsPro \| undefined` | `undefined` | All pro options. |
75
+ | `class` | `string` | `''` | Forwarded to the chosen layout's host element. |
76
+
77
+ ### Outputs
78
+
79
+ | Output | Payload | When |
80
+ | ------------ | ----------------------- | -------------------------------------------------------------------------------------- |
81
+ | `runCommand` | `{ commandId: string }` | Emitted when a user clicks (or selects) an item; base also calls `close()` internally. |
82
+
83
+ ## Usage examples
84
+
85
+ ```html
86
+ <!-- Simple -->
87
+ <smartpro-command-palette
88
+ [commands]="commands"
89
+ [(open)]="paletteOpen"
90
+ [(query)]="paletteQuery"
91
+ (runCommand)="run($event.commandId)"
92
+ />
93
+
94
+ <!-- With icons + footer hint -->
95
+ <ng-template #hint>
96
+ <span class="smart:text-xs smart:text-gray-500"
97
+ >Type a command or press ⌘K</span
98
+ >
99
+ </ng-template>
100
+ <smartpro-command-palette
101
+ [commands]="commands"
102
+ [(open)]="open"
103
+ [(query)]="query"
104
+ [options]="{ withIcons: true, withFooter: true, footerHintTpl: hint }"
105
+ />
106
+
107
+ <!-- With preview -->
108
+ <ng-template #preview let-cmd>
109
+ <h2 class="smart:font-semibold">{{ cmd.label }}</h2>
110
+ <p class="smart:text-sm smart:text-gray-500">{{ cmd.description }}</p>
111
+ </ng-template>
112
+ <smartpro-command-palette
113
+ [commands]="commands"
114
+ [(open)]="open"
115
+ [options]="{ previewTpl: preview }"
116
+ />
117
+
118
+ <!-- With groups -->
119
+ <smartpro-command-palette
120
+ [(open)]="open"
121
+ [options]="{ groups: [
122
+ { id: 'recent', label: 'Recent', commands: recent },
123
+ { id: 'actions', label: 'Quick actions', commands: actions }
124
+ ] }"
125
+ />
126
+
127
+ <!-- Semi-transparent with padding -->
128
+ <smartpro-command-palette
129
+ [commands]="commands"
130
+ [(open)]="open"
131
+ [options]="{ appearance: 'semi-transparent', padding: 'spacious' }"
132
+ />
133
+ ```
134
+
135
+ ## Accessibility
136
+
137
+ - Outer shell uses `<el-dialog>` from `@tailwindplus/elements` for focus trap + ESC handling.
138
+ - Inner panel has `role="dialog"` + `aria-modal="true"` + `aria-label` from `options.ariaLabel`.
139
+ - Search input has `role="combobox"` with `aria-controls` pointing at the listbox.
140
+ - Each item is `role="option"`; lists use `role="listbox"`.
141
+
142
+ ## Global Cmd+K shortcut
143
+
144
+ Not built in. Wire a host listener in your shell:
145
+
146
+ ```typescript
147
+ @HostListener('window:keydown', ['$event'])
148
+ onKey(e: KeyboardEvent) {
149
+ if ((e.metaKey || e.ctrlKey) && e.key === 'k') {
150
+ e.preventDefault();
151
+ this.paletteOpen.set(true);
152
+ }
153
+ }
154
+ ```
155
+
156
+ ## File Locations
157
+
158
+ - Wrapper: `packages/shared/angular/src/lib/components/command-palette/command-palette.component.ts`
159
+ - Types: `packages/shared/angular/src/lib/components/command-palette/command-palette.types.ts`
160
+ - Classes utility: `packages/shared/angular/src/lib/components/command-palette/command-palette-classes.util.ts`
161
+ - Layouts: `packages/shared/angular/src/lib/components/command-palette/{simple,with-preview,with-groups}/<name>.component.ts`
162
+ - Stories: `packages/shared/angular/src/lib/components/command-palette/command-palette.component.stories.ts`
163
+ - Module entry: `packages/shared/angular/src/lib/components/components.module.ts` (`COMMAND_PALETTE_COMPONENTS`)
164
+
165
+ ## Peer dependency
166
+
167
+ - `@smartsoft001/angular@^2.123.0` — provides `CommandPaletteBaseComponent`, `ICommand`, `ICommandPaletteOptions`.
168
+ - `@tailwindplus/elements@^1.0.0` — runtime element bundle for `<el-dialog>`.
@@ -0,0 +1,93 @@
1
+ ---
2
+ name: angular-components-container
3
+ description: Layout container for @smartsoft001/pro-angular. Single `default` layout with composable options (mode, padding, narrow). Pure layout wrapper that projects `<ng-content>`.
4
+ user-invocable: false
5
+ ---
6
+
7
+ # Container Component (Pro)
8
+
9
+ Use `<smartpro-container>`. A single `default` layout — pure layout wrapper that projects its content. All 5 Tailwind UI variants are composable via `IContainerOptionsPro`.
10
+
11
+ ## Variants matrix
12
+
13
+ | Option | Values |
14
+ | --------- | ---------------------------------------------------------------------------------------------------------------------- |
15
+ | `mode` | `'full-width'` (default — no max-width) / `'constrained'` (`max-w-7xl`) / `'container'` (responsive `container` class) |
16
+ | `padding` | `'none'` (default) / `'mobile'` (`px-4 sm:px-6 lg:px-8`) / `'always'` |
17
+ | `narrow` | `true` ⇒ `constrained` becomes `max-w-3xl` instead of `max-w-7xl` |
18
+
19
+ ## Source variant mapping
20
+
21
+ | Tailwind UI variant | Pro options |
22
+ | --------------------------------- | ------------------------------------------------------------- |
23
+ | Full-width on mobile, constrained | `mode: 'constrained'`, `padding: 'mobile'` |
24
+ | Constrained padded | `mode: 'constrained'`, `padding: 'always'` |
25
+ | Container mobile constrained | `mode: 'container'`, `padding: 'mobile'` |
26
+ | Container padded | `mode: 'container'`, `padding: 'always'` |
27
+ | Narrow nested constrained | outer `constrained` + inner `constrained` with `narrow: true` |
28
+
29
+ ## API
30
+
31
+ ### Types (`container.types.ts`)
32
+
33
+ ```typescript
34
+ type SmartContainerMode = 'full-width' | 'constrained' | 'container';
35
+ type SmartContainerPadding = 'none' | 'mobile' | 'always';
36
+
37
+ interface IContainerOptionsPro extends IContainerOptions {}
38
+ ```
39
+
40
+ `IContainerOptions` (re-exported from `@smartsoft001/angular`): `{ mode?, padding?, narrow? }`.
41
+
42
+ ### Wrapper inputs
43
+
44
+ | Input | Type | Default | Description |
45
+ | --------- | ----------------------------------- | ----------- | ---------------------------- |
46
+ | `options` | `IContainerOptionsPro \| undefined` | `undefined` | Mode + padding + narrow. |
47
+ | `class` | `string` | `''` | Forwarded to the host `div`. |
48
+
49
+ ### Outputs / Slots
50
+
51
+ No outputs. `<ng-content>` projects the body.
52
+
53
+ ## Usage examples
54
+
55
+ ```html
56
+ <!-- Constrained padded (most common) -->
57
+ <smartpro-container [options]="{ mode: 'constrained', padding: 'always' }">
58
+ <!-- content -->
59
+ </smartpro-container>
60
+
61
+ <!-- Full-width with mobile padding only -->
62
+ <smartpro-container [options]="{ mode: 'constrained', padding: 'mobile' }">
63
+ <!-- content -->
64
+ </smartpro-container>
65
+
66
+ <!-- Responsive container class from Tailwind -->
67
+ <smartpro-container [options]="{ mode: 'container', padding: 'always' }">
68
+ <!-- content -->
69
+ </smartpro-container>
70
+
71
+ <!-- Narrow nested inside constrained outer -->
72
+ <smartpro-container [options]="{ mode: 'constrained', padding: 'mobile' }">
73
+ <smartpro-container
74
+ [options]="{ mode: 'constrained', padding: 'mobile', narrow: true }"
75
+ >
76
+ <!-- narrow content -->
77
+ </smartpro-container>
78
+ </smartpro-container>
79
+ ```
80
+
81
+ ## File Locations
82
+
83
+ - Wrapper: `packages/shared/angular/src/lib/components/container/container.component.ts`
84
+ - Types: `packages/shared/angular/src/lib/components/container/container.types.ts`
85
+ - Classes utility: `packages/shared/angular/src/lib/components/container/container-classes.util.ts`
86
+ - Layout: `packages/shared/angular/src/lib/components/container/default/default.component.ts`
87
+ - Stories: `packages/shared/angular/src/lib/components/container/container.component.stories.ts`
88
+ - Module entry: `packages/shared/angular/src/lib/components/components.module.ts` (`CONTAINER_COMPONENTS`)
89
+
90
+ ## Peer dependency
91
+
92
+ - `@smartsoft001/angular@^2.123.0` — provides `ContainerBaseComponent`, `IContainerOptions`.
93
+ - No `@tailwindplus/elements` dep required.
@@ -0,0 +1,102 @@
1
+ ---
2
+ name: angular-components-description-list
3
+ description: Description list component for @smartsoft001/pro-angular. Four layouts (left-aligned, left-aligned-card, two-column, narrow-hidden-labels). The left-aligned layout supports `striped` and `inlineActions` options for alternating row backgrounds and per-item inline action slots.
4
+ user-invocable: false
5
+ ---
6
+
7
+ # Description List Component (Pro)
8
+
9
+ Use `<smartpro-description-list>`. Pick a layout via `variant`. The component iterates `options.items: IDescriptionListItem[]` and renders `dt` / `dd` pairs. `attachmentsTpl` (extra full-width row) and `footerTpl` (download link, etc.) are optional. `CUSTOM_ELEMENTS_SCHEMA` is set on each variant.
10
+
11
+ ## Layouts
12
+
13
+ | `variant` (default `'left-aligned'`) | Selector | Description |
14
+ | ------------------------------------ | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
15
+ | `'left-aligned'` | `smartpro-description-list-left-aligned` | Plain `dl`, divided rows, 3-col grid (label / value × 2). Supports `options.striped` for alternating row backgrounds and `options.inlineActions` to render each item's `actionTpl` on the right of its value. |
16
+ | `'left-aligned-card'` | `smartpro-description-list-left-aligned-card` | Same row layout wrapped in a white rounded shadow card. |
17
+ | `'two-column'` | `smartpro-description-list-two-column` | `grid-cols-2` per item; attachments span 2. |
18
+ | `'narrow-hidden-labels'` | `smartpro-description-list-narrow-hidden-labels` | Summary card with `sr-only` labels (icons via `valueTpl`) + footer link. |
19
+
20
+ ## API
21
+
22
+ ### IDescriptionListOptionsPro (`description-list.types.ts`, extends `IDescriptionListOptions`)
23
+
24
+ ```typescript
25
+ interface IDescriptionListOptionsPro {
26
+ title?: string;
27
+ description?: string;
28
+ items?: IDescriptionListItem[];
29
+ attachmentsTpl?: TemplateRef<unknown>;
30
+ footerTpl?: TemplateRef<unknown>;
31
+ /** left-aligned only — alternating row backgrounds. */
32
+ striped?: boolean;
33
+ /** left-aligned only — render each item's `actionTpl` inline beside its value. */
34
+ inlineActions?: boolean;
35
+ }
36
+
37
+ interface IDescriptionListItem {
38
+ label: string;
39
+ value?: string;
40
+ valueTpl?: TemplateRef<unknown>;
41
+ actionTpl?: TemplateRef<unknown>;
42
+ }
43
+ ```
44
+
45
+ ### Wrapper Inputs
46
+
47
+ | Input | Type | Default | Description |
48
+ | --------- | --------------------------------------------------------------------------------- | ---------------- | ------------------------------------------ |
49
+ | `variant` | `'left-aligned' \| 'left-aligned-card' \| 'two-column' \| 'narrow-hidden-labels'` | `'left-aligned'` | Layout family. |
50
+ | `options` | `IDescriptionListOptionsPro \| undefined` | `undefined` | Title, description, items, slots, flags. |
51
+ | `class` | `string` | `''` | Extra CSS classes appended to the wrapper. |
52
+
53
+ ## Usage Examples
54
+
55
+ ```html
56
+ <!-- Plain left-aligned list -->
57
+ <smartpro-description-list
58
+ [options]="{
59
+ title: 'Applicant Information',
60
+ description: 'Personal details and application.',
61
+ items: [
62
+ { label: 'Full name', value: 'Margot Foster' },
63
+ { label: 'Email', value: 'margotfoster@example.com' }
64
+ ]
65
+ }"
66
+ />
67
+
68
+ <!-- Striped rows -->
69
+ <smartpro-description-list
70
+ [options]="{
71
+ title: 'Applicant Information',
72
+ items: [...],
73
+ striped: true
74
+ }"
75
+ />
76
+
77
+ <!-- Inline actions per item -->
78
+ <ng-template #editName><button>Edit</button></ng-template>
79
+ <smartpro-description-list
80
+ [options]="{
81
+ items: [{ label: 'Full name', value: 'Margot Foster', actionTpl: editName }],
82
+ inlineActions: true
83
+ }"
84
+ />
85
+
86
+ <!-- Wrapped in card -->
87
+ <smartpro-description-list variant="left-aligned-card" [options]="{...}" />
88
+
89
+ <!-- Two-column grid -->
90
+ <smartpro-description-list variant="two-column" [options]="{...}" />
91
+
92
+ <!-- Narrow with hidden labels (summary card) -->
93
+ <smartpro-description-list variant="narrow-hidden-labels" [options]="{...}" />
94
+ ```
95
+
96
+ ## File Locations
97
+
98
+ - Wrapper: `packages/shared/angular/src/lib/components/description-list/description-list.component.ts`
99
+ - Types: `packages/shared/angular/src/lib/components/description-list/description-list.types.ts`
100
+ - Layouts: `packages/shared/angular/src/lib/components/description-list/{left-aligned,left-aligned-card,two-column,narrow-hidden-labels}/<name>.component.ts`
101
+ - Shared class utilities: `packages/shared/angular/src/lib/components/description-list/description-list-classes.util.ts`
102
+ - Stories: `packages/shared/angular/src/lib/components/description-list/description-list.component.stories.ts`
@@ -0,0 +1,70 @@
1
+ ---
2
+ name: angular-components-details
3
+ description: Details variants for @smartsoft001/pro-angular — 6 Tailwind UI templates pluggable into the fork's <smartpro-details> via DETAILS_STANDARD_COMPONENT_TOKEN
4
+ user-invocable: false
5
+ ---
6
+
7
+ # Details Variants (pro)
8
+
9
+ This package provides six standalone details variants derived from Tailwind UI. Each variant extends `DetailsBaseComponent<T>` from `@smartsoft001/angular` and is meant to replace the fork's default `DetailsStandardComponent` by providing `DETAILS_STANDARD_COMPONENT_TOKEN`.
10
+
11
+ ## When to Use This Skill
12
+
13
+ - Developer wants a specific details layout → pick the matching variant and register it via the DI token
14
+ - Developer asks which details variants exist → list the 6 components below
15
+ - Developer wants to see all variants → open the `Components / Details` Storybook entry (6 stories + `All variants` gallery, dark/light toggle via global theme toolbar)
16
+
17
+ ## Available Variants
18
+
19
+ | Component | Selector | When to pick it |
20
+ | ------------------------------------ | --------------------------------------- | -------------------------------------------------------- |
21
+ | `DetailsLeftAlignedComponent` | `smartpro-details-left-aligned` | Default left-aligned layout, dl with divide-y separators |
22
+ | `DetailsLeftAlignedCardComponent` | `smartpro-details-left-aligned-card` | Left-aligned wrapped in a rounded card with shadow |
23
+ | `DetailsLeftAlignedStripedComponent` | `smartpro-details-left-aligned-striped` | Alternating gray/white row backgrounds |
24
+ | `DetailsTwoColumnComponent` | `smartpro-details-two-column` | Two-column responsive grid layout |
25
+ | `DetailsLeftAlignedActionsComponent` | `smartpro-details-left-aligned-actions` | Left-aligned with inline action slot per row |
26
+ | `DetailsNarrowHiddenLabelsComponent` | `smartpro-details-narrow-hidden-labels` | Compact summary card with hidden labels (sr-only) |
27
+
28
+ ## Registration
29
+
30
+ ```typescript
31
+ import { ApplicationConfig } from '@angular/core';
32
+ import { DETAILS_STANDARD_COMPONENT_TOKEN } from '@smartsoft001/angular';
33
+ import { DetailsLeftAlignedCardComponent } from '@smartsoft001/pro-angular';
34
+
35
+ export const appConfig: ApplicationConfig = {
36
+ providers: [
37
+ {
38
+ provide: DETAILS_STANDARD_COMPONENT_TOKEN,
39
+ useValue: DetailsLeftAlignedCardComponent,
40
+ },
41
+ ],
42
+ };
43
+ ```
44
+
45
+ The fork's `<smartpro-details>` wrapper reads the token and renders the provided component. The variant iterates over fields (computed from `@Field({ details: true })` model decorators) and renders each value via `<smartpro-detail>`.
46
+
47
+ ## Consumer API (inherited from `DetailsBaseComponent`)
48
+
49
+ | Input | Type | Required | Description |
50
+ | --------- | -------------------- | -------- | ---------------------------------------------------------- |
51
+ | `options` | `IDetailsOptions<T>` | yes | `{ type, item, loading?, cellPipe?, componentFactories? }` |
52
+ | `class` | `string` | no | Extra CSS classes on the container |
53
+
54
+ Each variant exposes a `containerClasses()` computed signal that combines variant-specific Tailwind classes with the optional external `class` input.
55
+
56
+ ## Dark/Light Mode
57
+
58
+ Every variant uses the `smart:` Tailwind prefix with paired `smart:dark:*` classes. Storybook exposes a global theme toolbar (`light` / `dark`) defined in `.storybook/preview.ts` — stories render in whichever mode the toolbar is set to.
59
+
60
+ ## File Locations
61
+
62
+ - Variants: `packages/shared/angular/src/lib/components/details/<variant>/`
63
+ - Barrel: `packages/shared/angular/src/lib/components/details/index.ts` — exports all 6 components
64
+ - Stories: `packages/shared/angular/src/lib/components/details/details.component.stories.ts` (6 stories + `All variants`)
65
+ - Module registration: `packages/shared/angular/src/lib/components/components.module.ts` (`DETAILS_COMPONENTS`)
66
+ - Base class + `DETAILS_STANDARD_COMPONENT_TOKEN`: re-exported from `@smartsoft001/angular`
67
+
68
+ ## Tailwind Classes
69
+
70
+ All classes use the `smart:` prefix. The neutral container family uses `smart:border-t smart:border-gray-100 smart:dark:border-white/10`. The card family adds `smart:rounded-lg smart:bg-white smart:shadow-sm` plus `smart:dark:bg-gray-800/50` and `smart:dark:inset-ring-white/10`. The striped variant alternates `smart:bg-gray-50` / `smart:bg-white` (dark: `gray-800/25` / `gray-900`). The narrow summary variant uses `smart:rounded-lg smart:bg-gray-50 smart:outline-1` (dark: `gray-800/50` / `outline-white/10`) and hides labels via `smart:[&_dt]:sr-only`.
@@ -0,0 +1,110 @@
1
+ ---
2
+ name: angular-components-divider
3
+ description: Horizontal separator / section header for @smartsoft001/pro-angular. Two layouts (simple, with-toolbar), 8 source variants via composable inputs (label, iconName, title, actionLabel) and `options.position`.
4
+ user-invocable: false
5
+ ---
6
+
7
+ # Divider Component (Pro)
8
+
9
+ Use `<smartpro-divider>`. A semantic separator that can act as a plain divider, a labeled / iconified divider, a section title, or a section toolbar with actions.
10
+
11
+ ## Layouts
12
+
13
+ | `layout` (auto-detected) | Selector | Description |
14
+ | ------------------------ | ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
15
+ | `'simple'` (default) | `smartpro-divider-simple` | `<hr>` if no slots provided; otherwise a horizontal line interrupted by a centered (or left/right) `label` / `iconName` / `title`. |
16
+ | `'with-toolbar'` | `smartpro-divider-with-toolbar` | Row with `title` on the left and a primary action button (`actionLabel`) on the right. Extra trailing actions via `<ng-content>`. Triggered automatically when `actionLabel` is provided. |
17
+
18
+ ## Source variant mapping
19
+
20
+ | Tailwind UI variant | Pro inputs / options |
21
+ | ------------------- | ------------------------------------------------------------------ |
22
+ | With label | `label: 'Continue'` |
23
+ | With icon | `iconName: '<svg path d>'` |
24
+ | Label on left | `label`, `options.position: 'left'` |
25
+ | With title | `title: 'Section'` |
26
+ | Title on left | `title`, `options.position: 'left'` |
27
+ | With button | `actionLabel: 'Add'` (auto-selects `with-toolbar`) |
28
+ | Title and button | `title`, `actionLabel` |
29
+ | With toolbar | `title`, `actionLabel`, projected extra actions via `<ng-content>` |
30
+
31
+ Plain `<hr>` separator: render `<smartpro-divider />` with no inputs.
32
+
33
+ ## API
34
+
35
+ ### Types (`divider.types.ts`)
36
+
37
+ ```typescript
38
+ type SmartDividerLayoutPro = 'simple' | 'with-toolbar';
39
+ type SmartDividerPosition = 'left' | 'center' | 'right';
40
+
41
+ interface IDividerOptionsPro extends IDividerOptions {
42
+ layout?: SmartDividerLayoutPro;
43
+ }
44
+ ```
45
+
46
+ `IDividerOptions` (re-exported from `@smartsoft001/angular`): `{ variant?: SmartDividerVariant, position?: 'left' | 'center' | 'right' }`.
47
+
48
+ ### Wrapper inputs
49
+
50
+ | Input | Type | Default | Description |
51
+ | ------------- | ------------------------------------ | ----------- | --------------------------------------------------------------------------- |
52
+ | `label` | `string \| undefined` | `undefined` | Inline label centered (or positioned) on the line. |
53
+ | `iconName` | `string \| undefined` | `undefined` | SVG path `d` for an inline icon (takes priority over `label`). |
54
+ | `title` | `string \| undefined` | `undefined` | Semantic heading (takes priority over `label` / `iconName`). |
55
+ | `actionLabel` | `string \| undefined` | `undefined` | When set, switches to `with-toolbar` and renders the primary action button. |
56
+ | `layout` | `SmartDividerLayoutPro \| undefined` | `undefined` | Force a layout; otherwise auto-detected. |
57
+ | `options` | `IDividerOptionsPro \| undefined` | `undefined` | `position` for label/title alignment. |
58
+ | `class` | `string` | `''` | Forwarded to the host of the chosen layout. |
59
+
60
+ ### Outputs / Slots
61
+
62
+ | Output | Payload | When |
63
+ | ------------- | ------- | ---------------------------------- |
64
+ | `actionClick` | `void` | The primary action button clicked. |
65
+
66
+ `<ng-content>` projects extra trailing actions in the `with-toolbar` layout.
67
+
68
+ ## Usage examples
69
+
70
+ ```html
71
+ <!-- Plain hr -->
72
+ <smartpro-divider />
73
+
74
+ <!-- With label -->
75
+ <smartpro-divider label="Continue" />
76
+
77
+ <!-- With icon -->
78
+ <smartpro-divider [iconName]="sparkles" />
79
+
80
+ <!-- Title on left -->
81
+ <smartpro-divider title="Section" [options]="{ position: 'left' }" />
82
+
83
+ <!-- With button (auto-toolbar) -->
84
+ <smartpro-divider actionLabel="Add" (actionClick)="add()" />
85
+
86
+ <!-- Toolbar with projected extras -->
87
+ <smartpro-divider title="Members" actionLabel="Invite" (actionClick)="invite()">
88
+ <button class="…">Filter</button>
89
+ <button class="…">Sort</button>
90
+ </smartpro-divider>
91
+ ```
92
+
93
+ ## Accessibility
94
+
95
+ - Plain divider renders `<hr role="separator" aria-orientation="horizontal">` (the `<div>` wrapper carries the role when content is present).
96
+ - Toolbar variant uses `role="separator"` on the row; the action button is a regular `<button>` and can be operated via keyboard.
97
+
98
+ ## File Locations
99
+
100
+ - Wrapper: `packages/shared/angular/src/lib/components/divider/divider.component.ts`
101
+ - Types: `packages/shared/angular/src/lib/components/divider/divider.types.ts`
102
+ - Classes utility: `packages/shared/angular/src/lib/components/divider/divider-classes.util.ts`
103
+ - Layouts: `packages/shared/angular/src/lib/components/divider/{simple,with-toolbar}/<name>.component.ts`
104
+ - Stories: `packages/shared/angular/src/lib/components/divider/divider.component.stories.ts`
105
+ - Module entry: `packages/shared/angular/src/lib/components/components.module.ts` (`DIVIDER_COMPONENTS`)
106
+
107
+ ## Peer dependency
108
+
109
+ - `@smartsoft001/angular@^2.123.0` — provides `DividerBaseComponent`, `IDividerOptions`.
110
+ - No `@tailwindplus/elements` dep required.