@knapsack/renderer-hbs 5.0.0--canary.6593.4738696.0 β†’ 5.0.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.
package/.lintstagedrc.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { dirname } from 'path';
2
- import { fileURLToPath } from 'url';
1
+ import { dirname } from 'node:path';
2
+ import { fileURLToPath } from 'node:url';
3
3
 
4
4
  import defaultConfig from '../../../../.lintstagedrc.mjs';
5
5
 
package/CHANGELOG.md CHANGED
@@ -1,3 +1,136 @@
1
+ # v4.89.8 (Fri Feb 20 2026)
2
+
3
+ ### Release Notes
4
+
5
+ #### KSP-7685: Synthetic Data for Conflict Enrichment/Resolution testing ([#7154](https://github.com/knapsack-labs/app-monorepo/pull/7154))
6
+
7
+ * **Documentation**
8
+ * Added synthetic multi-source test fixtures including component documentation, design tokens, and brand guidelines for comprehensive testing coverage.
9
+
10
+ <!-- end of auto-generated comment: release notes by coderabbit.ai -->
11
+
12
+ ---
13
+
14
+ #### πŸ› Bug Fix
15
+
16
+ - Merged latest in ([@EmmanuelVelez](https://github.com/EmmanuelVelez))
17
+ - Fixed indentation erros ([@EmmanuelVelez](https://github.com/EmmanuelVelez))
18
+ - merge latest in ([@EmmanuelVelez](https://github.com/EmmanuelVelez))
19
+ - Merge branch 'latest' into sxa/KSP-7037-tests-v2 ([@sxalexander](https://github.com/sxalexander))
20
+ - Use node: protocol prefix in all .lintstagedrc.mjs files ([@EmmanuelVelez](https://github.com/EmmanuelVelez))
21
+ - Migrated ESLint config to flat config format (ESLint 9) ([@EmmanuelVelez](https://github.com/EmmanuelVelez))
22
+
23
+ #### 🏠 Internal
24
+
25
+ - Update lodash to 4.17.23. [#7200](https://github.com/knapsack-labs/app-monorepo/pull/7200) ([@greylabel](https://github.com/greylabel))
26
+ - KSP-5516 Upgraded prettier to v3.8.1 and fix async API usage [#7191](https://github.com/knapsack-labs/app-monorepo/pull/7191) ([@EmmanuelVelez](https://github.com/EmmanuelVelez))
27
+ - KSP-7685: Synthetic Data for Conflict Enrichment/Resolution testing [#7154](https://github.com/knapsack-labs/app-monorepo/pull/7154) ([@sxalexander](https://github.com/sxalexander))
28
+ - KSP-5524 Migrated ESLint config to flat config format (ESLint 9) [#7162](https://github.com/knapsack-labs/app-monorepo/pull/7162) ([@EmmanuelVelez](https://github.com/EmmanuelVelez))
29
+
30
+ #### Authors: 3
31
+
32
+ - [@EmmanuelVelez](https://github.com/EmmanuelVelez)
33
+ - Grant Gaudet ([@greylabel](https://github.com/greylabel))
34
+ - Sam Alexander ([@sxalexander](https://github.com/sxalexander))
35
+
36
+ ---
37
+
38
+ # v4.89.7 (Fri Feb 06 2026)
39
+
40
+ #### πŸ› Bug Fix
41
+
42
+ - Merge branch 'latest' into feature/ksp-6555-remove-app-client-watchers-for-files-in-data-directory ([@EvanLovely](https://github.com/EvanLovely))
43
+ - Merge branch 'latest' into feature/ksp-6555-remove-app-client-watchers-for-files-in-data-directory ([@EmmanuelVelez](https://github.com/EmmanuelVelez))
44
+
45
+ #### 🏠 Internal
46
+
47
+ - KSP-6106 Added consistent-type-imports rule with inline type syntax [#7128](https://github.com/knapsack-labs/app-monorepo/pull/7128) ([@EmmanuelVelez](https://github.com/EmmanuelVelez))
48
+ - KSP-7692: expand server actions body size limit [#7097](https://github.com/knapsack-labs/app-monorepo/pull/7097) ([@illepic](https://github.com/illepic))
49
+ - KSP-7623 resolved some of react-hooks/set-state-in-effect lint errors and enab… [#7077](https://github.com/knapsack-labs/app-monorepo/pull/7077) ([@EmmanuelVelez](https://github.com/EmmanuelVelez))
50
+
51
+ #### Authors: 3
52
+
53
+ - [@EmmanuelVelez](https://github.com/EmmanuelVelez)
54
+ - Christopher Bloom ([@illepic](https://github.com/illepic))
55
+ - Evan Lovely ([@EvanLovely](https://github.com/EvanLovely))
56
+
57
+ ---
58
+
59
+ # v4.89.4 (Mon Jan 05 2026)
60
+
61
+ #### 🏠 Internal
62
+
63
+ - KSP-6086 normalize error and log metadata for api domains [#6997](https://github.com/knapsack-labs/app-monorepo/pull/6997) ([@EmmanuelVelez](https://github.com/EmmanuelVelez))
64
+
65
+ #### Authors: 1
66
+
67
+ - [@EmmanuelVelez](https://github.com/EmmanuelVelez)
68
+
69
+ ---
70
+
71
+ # v4.89.3 (Thu Dec 11 2025)
72
+
73
+ #### πŸ› Bug Fix
74
+
75
+ - KSP-6536 Fixed align token metrics counting with UI logic for variables and collections [#6778](https://github.com/knapsack-labs/app-monorepo/pull/6778) ([@EmmanuelVelez](https://github.com/EmmanuelVelez))
76
+ - Merge branch 'latest' into feature/ksp-6536-metrics-not-computing-tokens-and-variables-correctly ([@EmmanuelVelez](https://github.com/EmmanuelVelez))
77
+ - Merge remote-tracking branch 'origin/feature/ksp-6536-metrics-not-computing-tokens-and-variables-correctly' into feature/ksp-6536-metrics-not-computing-tokens-and-variables-correctly ([@EmmanuelVelez](https://github.com/EmmanuelVelez))
78
+
79
+ #### Authors: 1
80
+
81
+ - [@EmmanuelVelez](https://github.com/EmmanuelVelez)
82
+
83
+ ---
84
+
85
+ # v4.89.1 (Wed Dec 10 2025)
86
+
87
+ #### πŸ› Bug Fix
88
+
89
+ - Merge remote-tracking branch 'origin/latest' into KSP-6900_mcp_onboarding_pages ([@brittanysmart](https://github.com/brittanysmart))
90
+
91
+ #### Authors: 1
92
+
93
+ - Brittany Smart ([@brittanysmart](https://github.com/brittanysmart))
94
+
95
+ ---
96
+
97
+ # v4.87.9 (Thu Nov 20 2025)
98
+
99
+ #### 🏠 Internal
100
+
101
+ - fix(deps): update dependency @types/node to ^20.19.25 [#6803](https://github.com/knapsack-labs/app-monorepo/pull/6803) ([@renovate[bot]](https://github.com/renovate[bot]))
102
+ - fix(deps): update dependency zod to ^4.1.12 [#6861](https://github.com/knapsack-labs/app-monorepo/pull/6861) ([@renovate[bot]](https://github.com/renovate[bot]))
103
+
104
+ #### Authors: 1
105
+
106
+ - [@renovate[bot]](https://github.com/renovate[bot])
107
+
108
+ ---
109
+
110
+ # v4.87.7 (Mon Nov 10 2025)
111
+
112
+ #### 🏠 Internal
113
+
114
+ - fix(deps): update typescript [#6863](https://github.com/knapsack-labs/app-monorepo/pull/6863) ([@renovate[bot]](https://github.com/renovate[bot]))
115
+
116
+ #### Authors: 1
117
+
118
+ - [@renovate[bot]](https://github.com/renovate[bot])
119
+
120
+ ---
121
+
122
+ # v4.87.6 (Wed Nov 05 2025)
123
+
124
+ #### 🏠 Internal
125
+
126
+ - Add comprehensive testing for remaining frameworks and MUI lib [#6876](https://github.com/knapsack-labs/app-monorepo/pull/6876) ([@mabry1985](https://github.com/mabry1985))
127
+
128
+ #### Authors: 1
129
+
130
+ - Josh Mabry ([@mabry1985](https://github.com/mabry1985))
131
+
132
+ ---
133
+
1
134
  # v4.87.4 (Fri Oct 31 2025)
2
135
 
3
136
  #### 🏠 Internal
@@ -1,4 +1,4 @@
1
- import { Renderer as RendererBaseType, Renderable, RendererBase, type RendererBaseHydrateData } from '@knapsack/app/renderers';
1
+ import { type Renderer as RendererBaseType, type Renderable, RendererBase, type RendererBaseHydrateData } from '@knapsack/app/renderers';
2
2
  import Hbs from 'handlebars';
3
3
  import { z } from 'zod';
4
4
  type Renderer = RendererBaseType<'hbs', RendererBaseHydrateData>;
@@ -1 +1 @@
1
- {"version":3,"file":"renderer-hbs.d.ts","sourceRoot":"","sources":["../src/renderer-hbs.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,IAAI,gBAAgB,EAC5B,UAAU,EACV,YAAY,EAEZ,KAAK,uBAAuB,EAC7B,MAAM,yBAAyB,CAAC;AAUjC,OAAO,GAAG,MAAM,YAAY,CAAC;AAE7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,KAAK,QAAQ,GAAG,gBAAgB,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;AAEjE,QAAA,MAAM,YAAY;IAChB;;;OAGG;4DAe2B,OAAO,GAAG,KAAK,IAAI,eAAnB,OAAO,GAAG,KAAK,IAAI;;;;;kBARjD,CAAC;AAEH,qBAAa,mBACX,SAAQ,YAAY,CAAC,KAAK,EAAE,uBAAuB,CACnD,YAAW,UAAU,CAAC,KAAK,CAAC;IAG5B,UAAU,EAAE,OAAO,GAAG,CAAC;IACvB,eAAe,EAAE,CAAC,UAAU,EAAE,OAAO,GAAG,KAAK,IAAI,CAAC;gBAEtC,OAAO,GAAE,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAM;IAsBhD,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IA0CpC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAG7B;IAEO,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAGnC;IAEO,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,CAGrC;IAEO,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAI/B;IAEF,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAgCxB;IAEF,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,CAiG5B;IAEF,YAAY,EAAE,QAAQ,CAAC,cAAc,CAAC,CAYpC;IAEF,sBAAsB,EAAE,QAAQ,CAAC,wBAAwB,CAAC,CAmBxD;IAEF,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CA0BzB;CACJ"}
1
+ {"version":3,"file":"renderer-hbs.d.ts","sourceRoot":"","sources":["../src/renderer-hbs.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,QAAQ,IAAI,gBAAgB,EACjC,KAAK,UAAU,EACf,YAAY,EAEZ,KAAK,uBAAuB,EAC7B,MAAM,yBAAyB,CAAC;AAUjC,OAAO,GAAG,MAAM,YAAY,CAAC;AAE7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,KAAK,QAAQ,GAAG,gBAAgB,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;AAEjE,QAAA,MAAM,YAAY;IAChB;;;OAGG;4DAe2B,OAAO,GAAG,KAAK,IAAI,eAAnB,OAAO,GAAG,KAAK,IAAI;;;;;kBARjD,CAAC;AAEH,qBAAa,mBACX,SAAQ,YAAY,CAAC,KAAK,EAAE,uBAAuB,CACnD,YAAW,UAAU,CAAC,KAAK,CAAC;IAG5B,UAAU,EAAE,OAAO,GAAG,CAAC;IACvB,eAAe,EAAE,CAAC,UAAU,EAAE,OAAO,GAAG,KAAK,IAAI,CAAC;gBAEtC,OAAO,GAAE,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAM;IAsBhD,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IA0CpC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAG7B;IAEO,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAGnC;IAEO,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,CAGrC;IAEO,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAI/B;IAEF,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAgCxB;IAEF,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,CAiG5B;IAEF,YAAY,EAAE,QAAQ,CAAC,cAAc,CAAC,CAYpC;IAEF,sBAAsB,EAAE,QAAQ,CAAC,wBAAwB,CAAC,CAmBxD;IAEF,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CA0BzB;CACJ"}
@@ -26,187 +26,16 @@ const OptionSchema = zod_1.z.strictObject({
26
26
  codeSrcs: zod_1.z.array(types_1.CodeSrcUserConfigSchema).optional(),
27
27
  });
28
28
  class KnapsackHbsRenderer extends renderers_1.RendererBase {
29
+ // The handlebars instance (re-created repeatedly)
30
+ handlebars;
31
+ alterHandlebars;
29
32
  constructor(options = {}) {
30
- var _a;
31
33
  const { error } = OptionSchema.safeParse(options);
32
34
  super({
33
35
  id: types_1.rendererIds.hbs,
34
36
  language: 'hbs',
35
37
  codeSrcsUserConfig: options.codeSrcs,
36
38
  });
37
- this.init = async (opt) => {
38
- await super.init(opt);
39
- await this.registerComponentPaths();
40
- };
41
- this.hydrate = async (opt) => {
42
- await super.hydrate(opt);
43
- await this.registerComponentPaths();
44
- };
45
- this.onChange = () => {
46
- super.onChange();
47
- this.registerComponentPaths();
48
- };
49
- this.watch = async () => {
50
- app_1.knapsackEvents.onPatternsDataReady(() => {
51
- this.registerComponentPaths();
52
- });
53
- };
54
- this.render = async (opt) => {
55
- try {
56
- const usage = await this.getUsage(opt);
57
- let data = {};
58
- if ((0, types_1.isDemoWithData)(opt.demo)) {
59
- const { globalData } = (0, utils_1.splitData)(opt.demo.data.props);
60
- data = globalData;
61
- }
62
- const template = this.handlebars.compile(usage);
63
- const html = template(data);
64
- return {
65
- ok: true,
66
- html,
67
- /**
68
- * since we can only show one code block for usage and HBS rendering involves global data (i.e. handlebars context, the `data` var here) AND a template (the `usage` var) we're compromising by showing the data object above the template as that's the best we can do for now
69
- */
70
- usage: Object.keys(data).length
71
- ? // eslint-disable-next-line prefer-template
72
- JSON.stringify(data, null, ' ') + '\n' + usage
73
- : usage,
74
- templateLanguage: this.language,
75
- };
76
- }
77
- catch (err) {
78
- this.log.error(err);
79
- return {
80
- ok: false,
81
- message: err.message,
82
- html: `<p>Error rendering: ${err.message}</p>`,
83
- };
84
- }
85
- };
86
- this.getUsage = async ({ state, demo }) => {
87
- if (!demo) {
88
- throw new Error(`No demo received`);
89
- }
90
- switch (demo.type) {
91
- case 'template': {
92
- const { templateInfo } = demo;
93
- const { absolutePath, exists } = await this.resolvePath(templateInfo.path);
94
- if (!exists) {
95
- throw new Error(`The Handlebars template demo does not exist at path ${absolutePath}`);
96
- }
97
- return (0, file_utils_1.readFile)(absolutePath);
98
- }
99
- case 'data-w-template-info':
100
- case 'data': {
101
- const { codeSrcPath } = this.normalizeDemo({ demo, state });
102
- const { data: { props, slots, slotsOptionsComputed }, } = demo;
103
- // No slots from the UI (empty slots object)
104
- if ((0, isEmpty_1.default)(slots)) {
105
- const usage = await (0, utils_1.getHbsUsage)({
106
- templateName: codeSrcPath,
107
- data: props,
108
- });
109
- return usage;
110
- }
111
- // We gots slots
112
- {
113
- const slotIncludes = await Promise.all(Object.keys(slots).map(async (slotName) => {
114
- const slottedTemplates = slots[slotName];
115
- const slotContent = await Promise.all(slottedTemplates.map(async (slottedTemplate) => {
116
- if (slottedTemplate.type === 'text') {
117
- return ` ${slottedTemplate.text}`;
118
- }
119
- if (slottedTemplate.type === 'template-reference') {
120
- throw new Error(`Cannot handle slotted template references in ${JSON.stringify({
121
- demoId: demo.id,
122
- slottedTemplate,
123
- })}`);
124
- }
125
- return this.getUsage({
126
- demo: slottedTemplate.demo,
127
- state,
128
- });
129
- }));
130
- const slotOptionsComputed = slotsOptionsComputed === null || slotsOptionsComputed === void 0 ? void 0 : slotsOptionsComputed[slotName];
131
- const { openTag, closeTag } = (0, renderers_1.createSlotOptionsHtmlTags)({
132
- slotOptionsComputed,
133
- classAttributeName: 'class',
134
- stylesValueType: 'string',
135
- });
136
- return {
137
- name: slotName,
138
- content: [openTag, ...slotContent, closeTag].filter(Boolean),
139
- };
140
- }));
141
- // @TODO: need slot names?
142
- // const availableSlotNames = Object.keys(template.spec.slots);
143
- const usage = await (0, utils_1.getHbsUsage)({
144
- templateName: codeSrcPath,
145
- data: props,
146
- slots: slotIncludes,
147
- });
148
- return usage;
149
- }
150
- }
151
- default: {
152
- const _exhaustiveCheck = demo;
153
- throw new Error(`Unknown demo type: ${JSON.stringify(demo)}`);
154
- }
155
- }
156
- };
157
- this.getDiscovery = async () => {
158
- return {
159
- rendererId: this.id,
160
- meta: this.getMeta(),
161
- codeSrcsByPath: Object.fromEntries(this.codeSrcs.entries()),
162
- templates: this.getCodeSrcs().map(({ path }) => (0, types_1.addIdToTemplateInfo)({
163
- codeSrcPath: path,
164
- rendererId: this.id,
165
- })),
166
- };
167
- };
168
- this.getTemplateSuggestions = async ({ state, }) => {
169
- const { unusedPaths, usedPaths } = await this.getUnusedTemplatePaths({
170
- globPaths: [(0, path_1.join)(gitRoot, '**/*.{hbs,handlebars}')],
171
- cwd: gitRoot,
172
- state,
173
- });
174
- const suggestions = unusedPaths.map((path) => ({
175
- path,
176
- }));
177
- const connectedSuggestions = usedPaths.map((path) => ({
178
- path,
179
- connected: true,
180
- }));
181
- return { suggestions: [...suggestions, ...connectedSuggestions] };
182
- };
183
- this.getMeta = () => ({
184
- id: this.id,
185
- title: 'Handlebars',
186
- aliasUse: 'off',
187
- aliasTitle: '',
188
- aliasDescription: '',
189
- enableDataDemos: true,
190
- enableTemplateDemos: true,
191
- hasSlotsSupport: true,
192
- hasSlotOptionsSupport: true,
193
- version: pkg.version,
194
- hasInferSpecSupport: false,
195
- hasTemplateSuggestionsSupport: true,
196
- prototypingTemplate: {
197
- path: '@knapsack/renderer-hbs/prototype-template.hbs',
198
- spec: {
199
- isInferred: false,
200
- props: {
201
- type: 'object',
202
- properties: {},
203
- },
204
- slots: {
205
- content: { title: 'Content' },
206
- },
207
- },
208
- },
209
- });
210
39
  if (error) {
211
40
  this.log.error(`"KnapsackHbsRenderer" constructor has invalid options, please fix in "knapsack.config.cjs":`, zod_1.z.prettifyError(error));
212
41
  process.exit(1);
@@ -214,7 +43,7 @@ class KnapsackHbsRenderer extends renderers_1.RendererBase {
214
43
  }
215
44
  // Wipe out all handlebars partials and vars
216
45
  this.handlebars = handlebars_1.default.create();
217
- this.alterHandlebars = (_a = options.alterHandlebars) !== null && _a !== void 0 ? _a : (() => { });
46
+ this.alterHandlebars = options.alterHandlebars ?? (() => { });
218
47
  this.alterHandlebars(this.handlebars);
219
48
  }
220
49
  async registerComponentPaths() {
@@ -242,6 +71,179 @@ class KnapsackHbsRenderer extends renderers_1.RendererBase {
242
71
  // Running this AFTER we register all the Knapsack partials
243
72
  this.alterHandlebars(this.handlebars);
244
73
  }
74
+ init = async (opt) => {
75
+ await super.init(opt);
76
+ await this.registerComponentPaths();
77
+ };
78
+ hydrate = async (opt) => {
79
+ await super.hydrate(opt);
80
+ await this.registerComponentPaths();
81
+ };
82
+ onChange = () => {
83
+ super.onChange();
84
+ this.registerComponentPaths();
85
+ };
86
+ watch = async () => {
87
+ app_1.knapsackEvents.onPatternsDataReady(() => {
88
+ this.registerComponentPaths();
89
+ });
90
+ };
91
+ render = async (opt) => {
92
+ try {
93
+ const usage = await this.getUsage(opt);
94
+ let data = {};
95
+ if ((0, types_1.isDemoWithData)(opt.demo)) {
96
+ const { globalData } = (0, utils_1.splitData)(opt.demo.data.props);
97
+ data = globalData;
98
+ }
99
+ const template = this.handlebars.compile(usage);
100
+ const html = template(data);
101
+ return {
102
+ ok: true,
103
+ html,
104
+ /**
105
+ * since we can only show one code block for usage and HBS rendering involves global data (i.e. handlebars context, the `data` var here) AND a template (the `usage` var) we're compromising by showing the data object above the template as that's the best we can do for now
106
+ */
107
+ usage: Object.keys(data).length
108
+ ? // eslint-disable-next-line prefer-template
109
+ JSON.stringify(data, null, ' ') + '\n' + usage
110
+ : usage,
111
+ templateLanguage: this.language,
112
+ };
113
+ }
114
+ catch (err) {
115
+ this.log.error(err);
116
+ return {
117
+ ok: false,
118
+ message: err.message,
119
+ html: `<p>Error rendering: ${err.message}</p>`,
120
+ };
121
+ }
122
+ };
123
+ getUsage = async ({ state, demo }) => {
124
+ if (!demo) {
125
+ throw new Error(`No demo received`);
126
+ }
127
+ switch (demo.type) {
128
+ case 'template': {
129
+ const { templateInfo } = demo;
130
+ const { absolutePath, exists } = await this.resolvePath(templateInfo.path);
131
+ if (!exists) {
132
+ throw new Error(`The Handlebars template demo does not exist at path ${absolutePath}`);
133
+ }
134
+ return (0, file_utils_1.readFile)(absolutePath);
135
+ }
136
+ case 'data-w-template-info':
137
+ case 'data': {
138
+ const { codeSrcPath } = this.normalizeDemo({ demo, state });
139
+ const { data: { props, slots, slotsOptionsComputed }, } = demo;
140
+ // No slots from the UI (empty slots object)
141
+ if ((0, isEmpty_1.default)(slots)) {
142
+ const usage = await (0, utils_1.getHbsUsage)({
143
+ templateName: codeSrcPath,
144
+ data: props,
145
+ });
146
+ return usage;
147
+ }
148
+ // We gots slots
149
+ {
150
+ const slotIncludes = await Promise.all(Object.keys(slots).map(async (slotName) => {
151
+ const slottedTemplates = slots[slotName];
152
+ const slotContent = await Promise.all(slottedTemplates.map(async (slottedTemplate) => {
153
+ if (slottedTemplate.type === 'text') {
154
+ return ` ${slottedTemplate.text}`;
155
+ }
156
+ if (slottedTemplate.type === 'template-reference') {
157
+ throw new Error(`Cannot handle slotted template references in ${JSON.stringify({
158
+ demoId: demo.id,
159
+ slottedTemplate,
160
+ })}`);
161
+ }
162
+ return this.getUsage({
163
+ demo: slottedTemplate.demo,
164
+ state,
165
+ });
166
+ }));
167
+ const slotOptionsComputed = slotsOptionsComputed?.[slotName];
168
+ const { openTag, closeTag } = (0, renderers_1.createSlotOptionsHtmlTags)({
169
+ slotOptionsComputed,
170
+ classAttributeName: 'class',
171
+ stylesValueType: 'string',
172
+ });
173
+ return {
174
+ name: slotName,
175
+ content: [openTag, ...slotContent, closeTag].filter(Boolean),
176
+ };
177
+ }));
178
+ // @TODO: need slot names?
179
+ // const availableSlotNames = Object.keys(template.spec.slots);
180
+ const usage = await (0, utils_1.getHbsUsage)({
181
+ templateName: codeSrcPath,
182
+ data: props,
183
+ slots: slotIncludes,
184
+ });
185
+ return usage;
186
+ }
187
+ }
188
+ default: {
189
+ const _exhaustiveCheck = demo;
190
+ throw new Error(`Unknown demo type: ${JSON.stringify(demo)}`);
191
+ }
192
+ }
193
+ };
194
+ getDiscovery = async () => {
195
+ return {
196
+ rendererId: this.id,
197
+ meta: this.getMeta(),
198
+ codeSrcsByPath: Object.fromEntries(this.codeSrcs.entries()),
199
+ templates: this.getCodeSrcs().map(({ path }) => (0, types_1.addIdToTemplateInfo)({
200
+ codeSrcPath: path,
201
+ rendererId: this.id,
202
+ })),
203
+ };
204
+ };
205
+ getTemplateSuggestions = async ({ state, }) => {
206
+ const { unusedPaths, usedPaths } = await this.getUnusedTemplatePaths({
207
+ globPaths: [(0, path_1.join)(gitRoot, '**/*.{hbs,handlebars}')],
208
+ cwd: gitRoot,
209
+ state,
210
+ });
211
+ const suggestions = unusedPaths.map((path) => ({
212
+ path,
213
+ }));
214
+ const connectedSuggestions = usedPaths.map((path) => ({
215
+ path,
216
+ connected: true,
217
+ }));
218
+ return { suggestions: [...suggestions, ...connectedSuggestions] };
219
+ };
220
+ getMeta = () => ({
221
+ id: this.id,
222
+ title: 'Handlebars',
223
+ aliasUse: 'off',
224
+ aliasTitle: '',
225
+ aliasDescription: '',
226
+ enableDataDemos: true,
227
+ enableTemplateDemos: true,
228
+ hasSlotsSupport: true,
229
+ hasSlotOptionsSupport: true,
230
+ version: pkg.version,
231
+ hasInferSpecSupport: false,
232
+ hasTemplateSuggestionsSupport: true,
233
+ prototypingTemplate: {
234
+ path: '@knapsack/renderer-hbs/prototype-template.hbs',
235
+ spec: {
236
+ isInferred: false,
237
+ props: {
238
+ type: 'object',
239
+ properties: {},
240
+ },
241
+ slots: {
242
+ content: { title: 'Content' },
243
+ },
244
+ },
245
+ },
246
+ });
245
247
  }
246
248
  exports.KnapsackHbsRenderer = KnapsackHbsRenderer;
247
249
  //# sourceMappingURL=renderer-hbs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer-hbs.js","sourceRoot":"","sources":["../src/renderer-hbs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderer-hbs.js","sourceRoot":"","sources":["../src/renderer-hbs.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@knapsack/renderer-hbs",
3
3
  "description": "",
4
- "version": "5.0.0--canary.6593.4738696.0",
4
+ "version": "5.0.0",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "exports": {
@@ -22,24 +22,24 @@
22
22
  "test": "vitest run --typecheck.enabled"
23
23
  },
24
24
  "dependencies": {
25
- "@knapsack/app": "5.0.0--canary.6593.4738696.0",
26
- "@knapsack/file-utils": "5.0.0--canary.6593.4738696.0",
27
- "@knapsack/types": "5.0.0--canary.6593.4738696.0",
28
- "@knapsack/utils": "5.0.0--canary.6593.4738696.0",
29
- "handlebars": "^4.7.8",
30
- "lodash": "^4.17.21",
31
- "zod": "^4.0.14"
25
+ "@knapsack/app": "5.0.0",
26
+ "@knapsack/file-utils": "5.0.0",
27
+ "@knapsack/types": "5.0.0",
28
+ "@knapsack/utils": "5.0.0",
29
+ "handlebars": "^4.7.9",
30
+ "lodash": "^4.18.1",
31
+ "zod": "^4.3.6"
32
32
  },
33
33
  "devDependencies": {
34
- "@knapsack/eslint-config-starter": "5.0.0--canary.6593.4738696.0",
35
- "@knapsack/prettier-config": "5.0.0--canary.6593.4738696.0",
36
- "@knapsack/sandbox-components": "5.0.0--canary.6593.4738696.0",
37
- "@knapsack/typescript-config-starter": "5.0.0--canary.6593.4738696.0",
38
- "@types/lodash": "^4.17.20",
39
- "@types/node": "^20.19.22",
40
- "eslint": "^8.57.0",
41
- "typescript": "^5.9.2",
42
- "vitest": "^3.2.4"
34
+ "@knapsack/eslint-config-starter": "5.0.0",
35
+ "@knapsack/prettier-config": "5.0.0",
36
+ "@knapsack/sandbox-components": "5.0.0",
37
+ "@knapsack/typescript-config-starter": "5.0.0",
38
+ "@types/lodash": "^4.17.23",
39
+ "@types/node": "^22.19.11",
40
+ "eslint": "^9.20.0",
41
+ "typescript": "^5.9.3",
42
+ "vitest": "^4.1.9"
43
43
  },
44
44
  "license": "GPL-2.0-or-later",
45
45
  "publishConfig": {
@@ -50,5 +50,5 @@
50
50
  "directory": "apps/client/renderers/renderer-hbs",
51
51
  "type": "git"
52
52
  },
53
- "gitHead": "4738696cd5d75f977543e5484622c251b26db3a4"
53
+ "gitHead": "31e09ba72245b95bef52e73ce5076de51936286c"
54
54
  }
package/.eslintignore DELETED
File without changes
package/.eslintrc.js DELETED
@@ -1,8 +0,0 @@
1
- module.exports = {
2
- extends: [
3
- '@knapsack/eslint-config-starter/ava',
4
- '@knapsack/eslint-config-starter',
5
- ],
6
- parserOptions: { tsconfigRootDir: __dirname },
7
- ignorePatterns: [],
8
- };