@promptframe/component-kit 0.1.5 → 0.1.7

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/README.md CHANGED
@@ -10,7 +10,9 @@ npm install @promptframe/component-kit
10
10
 
11
11
  - Standard version stamps for component metadata, sourced from `@promptframe/contracts`.
12
12
  - Preview constraints used by PromptFrame component tooling.
13
+ - Bounded local preview case matrix helpers for aspect and default-props stress checks.
13
14
  - Timing helpers for deterministic Remotion animations.
15
+ - Public style helpers backed by `@promptframe/contracts`.
14
16
 
15
17
  ## Usage
16
18
 
@@ -24,9 +26,15 @@ export const manifest = {
24
26
  ```
25
27
 
26
28
  ```ts
27
- import { COMPONENT_PREVIEW_CONSTRAINTS } from '@promptframe/component-kit/preview';
29
+ import { COMPONENT_PREVIEW_CONSTRAINTS, createPreviewCaseMatrix } from '@promptframe/component-kit/preview';
28
30
 
29
- export const previewSize = COMPONENT_PREVIEW_CONSTRAINTS.defaultStill;
31
+ export const maxPreviewWidth = COMPONENT_PREVIEW_CONSTRAINTS.maxWidth;
32
+
33
+ export const previewCases = createPreviewCaseMatrix({
34
+ basePreview: { durationFrames: 120, fps: 30, width: 1280, height: 720 },
35
+ baseProps: { title: 'Quarterly revenue' },
36
+ validateProps: (candidate) => candidate,
37
+ });
30
38
  ```
31
39
 
32
40
  ```ts
@@ -38,12 +46,24 @@ const timeline = createDurationTimeline({
38
46
  });
39
47
  ```
40
48
 
49
+ ```ts
50
+ import { resolvePromptFrameStyle } from '@promptframe/component-kit/style';
51
+
52
+ const style = resolvePromptFrameStyle({ tone: 'tech', accentColor: '#38bdf8' }, {
53
+ width: 1920,
54
+ height: 1080,
55
+ fps: 30,
56
+ durationInFrames: 180,
57
+ });
58
+ ```
59
+
41
60
  ## Entrypoints
42
61
 
43
62
  ```ts
44
63
  import { getComponentStandardStamp } from '@promptframe/component-kit';
45
- import { COMPONENT_PREVIEW_CONSTRAINTS } from '@promptframe/component-kit/preview';
64
+ import { COMPONENT_PREVIEW_CONSTRAINTS, createPreviewCaseMatrix } from '@promptframe/component-kit/preview';
46
65
  import { createDurationTimeline } from '@promptframe/component-kit/timing';
66
+ import { resolvePromptFrameStyle } from '@promptframe/component-kit/style';
47
67
  ```
48
68
 
49
69
  ## Peer Dependencies
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './preview.js';
2
2
  export * from './standard.js';
3
+ export * from './style.js';
3
4
  export * from './timing.js';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './preview.js';
2
2
  export * from './standard.js';
3
+ export * from './style.js';
3
4
  export * from './timing.js';
4
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
package/dist/preview.d.ts CHANGED
@@ -12,5 +12,22 @@ export interface ComponentPreviewPropsEnvelope<TProps extends Record<string, unk
12
12
  height: number;
13
13
  props: TProps;
14
14
  }
15
+ export interface PromptFramePreviewCase<TProps extends Record<string, unknown> = Record<string, unknown>> extends ComponentPreviewPropsEnvelope<TProps> {
16
+ id: string;
17
+ name: string;
18
+ description: string;
19
+ }
20
+ export interface CreatePreviewCaseMatrixInput<TProps extends Record<string, unknown>> {
21
+ basePreview: Omit<ComponentPreviewPropsEnvelope<TProps>, 'props'>;
22
+ baseProps: TProps;
23
+ validateProps?: (candidate: TProps) => TProps | undefined;
24
+ aspectPresets?: ReadonlyArray<{
25
+ id: string;
26
+ name: string;
27
+ width: number;
28
+ height: number;
29
+ }>;
30
+ }
15
31
  export declare function assertPreviewWithinConstraints(preview: ComponentPreviewPropsEnvelope, constraints?: ComponentPreviewConstraints): void;
32
+ export declare function createPreviewCaseMatrix<TProps extends Record<string, unknown>>({ basePreview, baseProps, validateProps, aspectPresets, }: CreatePreviewCaseMatrixInput<TProps>): PromptFramePreviewCase<TProps>[];
16
33
  //# sourceMappingURL=preview.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,2BAA2B;IAC1C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,6BAA6B,EAAE,2BAK3C,CAAC;AAEF,MAAM,WAAW,6BAA6B,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC7G,cAAc,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,EAAE,CAAC;IACR,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,6BAA6B,EACtC,WAAW,GAAE,2BAA2D,GACvE,IAAI,CAON"}
1
+ {"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,2BAA2B;IAC1C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,6BAA6B,EAAE,2BAK3C,CAAC;AAEF,MAAM,WAAW,6BAA6B,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC7G,cAAc,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,EAAE,CAAC;IACR,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACtG,SAAQ,6BAA6B,CAAC,MAAM,CAAC;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,4BAA4B,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAClF,WAAW,EAAE,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC1D,aAAa,CAAC,EAAE,aAAa,CAAC;QAC5B,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACJ;AAQD,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,6BAA6B,EACtC,WAAW,GAAE,2BAA2D,GACvE,IAAI,CAON;AAED,wBAAgB,uBAAuB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC9E,WAAW,EACX,SAAS,EACT,aAAa,EACb,aAA4C,GAC7C,EAAE,4BAA4B,CAAC,MAAM,CAAC,GAAG,sBAAsB,CAAC,MAAM,CAAC,EAAE,CA+CzE"}
package/dist/preview.js CHANGED
@@ -4,6 +4,11 @@ export const COMPONENT_PREVIEW_CONSTRAINTS = {
4
4
  maxHeight: 720,
5
5
  maxFps: 30,
6
6
  };
7
+ const DEFAULT_PREVIEW_ASPECT_CASES = [
8
+ { id: 'aspect-16-9', name: '16:9', width: 1280, height: 720 },
9
+ { id: 'aspect-9-16', name: '9:16', width: 720, height: 1280 },
10
+ { id: 'aspect-1-1', name: '1:1', width: 960, height: 960 },
11
+ ];
7
12
  export function assertPreviewWithinConstraints(preview, constraints = COMPONENT_PREVIEW_CONSTRAINTS) {
8
13
  const errors = [];
9
14
  if (preview.durationFrames > constraints.maxDurationFrames)
@@ -17,4 +22,157 @@ export function assertPreviewWithinConstraints(preview, constraints = COMPONENT_
17
22
  if (errors.length > 0)
18
23
  throw new Error(errors.join('; '));
19
24
  }
25
+ export function createPreviewCaseMatrix({ basePreview, baseProps, validateProps, aspectPresets = DEFAULT_PREVIEW_ASPECT_CASES, }) {
26
+ const cases = [];
27
+ const seen = new Set();
28
+ const addCase = (previewCase) => {
29
+ const parsedProps = validatePreviewProps(previewCase.props, validateProps);
30
+ if (!parsedProps)
31
+ return;
32
+ const normalizedCase = {
33
+ ...previewCase,
34
+ props: parsedProps,
35
+ };
36
+ const signature = `${normalizedCase.width}x${normalizedCase.height}:${stableJson(normalizedCase.props)}`;
37
+ if (seen.has(signature))
38
+ return;
39
+ seen.add(signature);
40
+ cases.push(normalizedCase);
41
+ };
42
+ addCase({
43
+ id: 'default',
44
+ name: 'Default',
45
+ description: 'Canonical src/preview-props.json case.',
46
+ ...basePreview,
47
+ props: cloneProps(baseProps),
48
+ });
49
+ for (const preset of aspectPresets) {
50
+ addCase({
51
+ id: preset.id,
52
+ name: preset.name,
53
+ description: `Aspect case ${preset.name}.`,
54
+ ...basePreview,
55
+ width: preset.width,
56
+ height: preset.height,
57
+ props: cloneProps(baseProps),
58
+ });
59
+ }
60
+ for (const variant of createPropsStressVariants(baseProps)) {
61
+ addCase({
62
+ id: variant.id,
63
+ name: variant.name,
64
+ description: variant.description,
65
+ ...basePreview,
66
+ props: variant.props,
67
+ });
68
+ }
69
+ return cases;
70
+ }
71
+ function createPropsStressVariants(baseProps) {
72
+ return [
73
+ {
74
+ id: 'text-stress',
75
+ name: 'Text stress',
76
+ description: 'Longer bounded strings for layout overflow checks.',
77
+ props: mapProps(baseProps, stressStringValue),
78
+ },
79
+ {
80
+ id: 'number-low',
81
+ name: 'Number low',
82
+ description: 'Lower bounded numeric values for empty or small-state checks.',
83
+ props: mapProps(baseProps, lowNumberValue),
84
+ },
85
+ {
86
+ id: 'number-high',
87
+ name: 'Number high',
88
+ description: 'Higher bounded numeric values for dense-state checks.',
89
+ props: mapProps(baseProps, highNumberValue),
90
+ },
91
+ {
92
+ id: 'boolean-flip',
93
+ name: 'Boolean flip',
94
+ description: 'Flipped boolean flags for alternate-state checks.',
95
+ props: mapProps(baseProps, flipBooleanValue),
96
+ },
97
+ {
98
+ id: 'array-dense',
99
+ name: 'Array dense',
100
+ description: 'Repeated list items up to a bounded length for dense-state checks.',
101
+ props: mapProps(baseProps, denseArrayValue),
102
+ },
103
+ ].filter((variant) => stableJson(variant.props) !== stableJson(baseProps));
104
+ }
105
+ function mapProps(baseProps, mapper) {
106
+ const next = cloneProps(baseProps);
107
+ for (const key of Object.keys(next)) {
108
+ next[key] = mapper(next[key], key);
109
+ }
110
+ return next;
111
+ }
112
+ function stressStringValue(value, key) {
113
+ if (typeof value !== 'string')
114
+ return value;
115
+ if (isHexColor(value))
116
+ return value;
117
+ const base = value.trim().length > 0 ? value.trim() : key;
118
+ return `${base} - extended preview copy for responsive layout and text wrapping checks`.slice(0, 96);
119
+ }
120
+ function lowNumberValue(value) {
121
+ if (typeof value !== 'number' || !Number.isFinite(value))
122
+ return value;
123
+ if (value <= 0)
124
+ return value;
125
+ return 0;
126
+ }
127
+ function highNumberValue(value) {
128
+ if (typeof value !== 'number' || !Number.isFinite(value))
129
+ return value;
130
+ const doubled = Math.abs(value) < 1 ? value + 1 : value * 2;
131
+ return Math.min(Math.max(doubled, value + 1), 100);
132
+ }
133
+ function flipBooleanValue(value) {
134
+ return typeof value === 'boolean' ? !value : value;
135
+ }
136
+ function denseArrayValue(value) {
137
+ if (!Array.isArray(value) || value.length === 0 || value.length >= 8)
138
+ return value;
139
+ const next = [...value];
140
+ let index = 0;
141
+ while (next.length < 8) {
142
+ next.push(cloneJsonValue(value[index % value.length]));
143
+ index += 1;
144
+ }
145
+ return next;
146
+ }
147
+ function validatePreviewProps(candidate, validateProps) {
148
+ if (!validateProps)
149
+ return candidate;
150
+ try {
151
+ return validateProps(candidate);
152
+ }
153
+ catch {
154
+ return undefined;
155
+ }
156
+ }
157
+ function cloneProps(props) {
158
+ return cloneJsonValue(props);
159
+ }
160
+ function cloneJsonValue(value) {
161
+ return JSON.parse(JSON.stringify(value));
162
+ }
163
+ function stableJson(value) {
164
+ return JSON.stringify(sortJsonValue(value));
165
+ }
166
+ function sortJsonValue(value) {
167
+ if (Array.isArray(value))
168
+ return value.map((item) => sortJsonValue(item));
169
+ if (!value || typeof value !== 'object')
170
+ return value;
171
+ return Object.fromEntries(Object.entries(value)
172
+ .sort(([left], [right]) => left.localeCompare(right))
173
+ .map(([key, entry]) => [key, sortJsonValue(entry)]));
174
+ }
175
+ function isHexColor(value) {
176
+ return /^#[0-9a-fA-F]{6}$/.test(value);
177
+ }
20
178
  //# sourceMappingURL=preview.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"preview.js","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,6BAA6B,GAAgC;IACxE,iBAAiB,EAAE,GAAG;IACtB,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,GAAG;IACd,MAAM,EAAE,EAAE;CACX,CAAC;AAUF,MAAM,UAAU,8BAA8B,CAC5C,OAAsC,EACtC,cAA2C,6BAA6B;IAExE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,OAAO,CAAC,cAAc,GAAG,WAAW,CAAC,iBAAiB;QAAE,MAAM,CAAC,IAAI,CAAC,6BAA6B,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACtI,IAAI,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,QAAQ;QAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClG,IAAI,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC,SAAS;QAAE,MAAM,CAAC,IAAI,CAAC,qBAAqB,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC;IACtG,IAAI,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC,MAAM;QAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1F,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"preview.js","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,6BAA6B,GAAgC;IACxE,iBAAiB,EAAE,GAAG;IACtB,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,GAAG;IACd,MAAM,EAAE,EAAE;CACX,CAAC;AA6BF,MAAM,4BAA4B,GAAG;IACnC,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;IAC7D,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IAC7D,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;CAClD,CAAC;AAEX,MAAM,UAAU,8BAA8B,CAC5C,OAAsC,EACtC,cAA2C,6BAA6B;IAExE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,OAAO,CAAC,cAAc,GAAG,WAAW,CAAC,iBAAiB;QAAE,MAAM,CAAC,IAAI,CAAC,6BAA6B,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACtI,IAAI,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,QAAQ;QAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClG,IAAI,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC,SAAS;QAAE,MAAM,CAAC,IAAI,CAAC,qBAAqB,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC;IACtG,IAAI,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC,MAAM;QAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1F,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAyC,EAC9E,WAAW,EACX,SAAS,EACT,aAAa,EACb,aAAa,GAAG,4BAA4B,GACP;IACrC,MAAM,KAAK,GAAqC,EAAE,CAAC;IACnD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,OAAO,GAAG,CAAC,WAA2C,EAAE,EAAE;QAC9D,MAAM,WAAW,GAAG,oBAAoB,CAAC,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QAC3E,IAAI,CAAC,WAAW;YAAE,OAAO;QACzB,MAAM,cAAc,GAAG;YACrB,GAAG,WAAW;YACd,KAAK,EAAE,WAAW;SACnB,CAAC;QACF,MAAM,SAAS,GAAG,GAAG,cAAc,CAAC,KAAK,IAAI,cAAc,CAAC,MAAM,IAAI,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QACzG,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO;QAChC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,OAAO,CAAC;QACN,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,wCAAwC;QACrD,GAAG,WAAW;QACd,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC;KAC7B,CAAC,CAAC;IAEH,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,OAAO,CAAC;YACN,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,WAAW,EAAE,eAAe,MAAM,CAAC,IAAI,GAAG;YAC1C,GAAG,WAAW;YACd,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,yBAAyB,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3D,OAAO,CAAC;YACN,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,GAAG,WAAW;YACd,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,yBAAyB,CAChC,SAAiB;IAOjB,OAAO;QACL;YACE,EAAE,EAAE,aAAa;YACjB,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,oDAAoD;YACjE,KAAK,EAAE,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;SAC9C;QACD;YACE,EAAE,EAAE,YAAY;YAChB,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,+DAA+D;YAC5E,KAAK,EAAE,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;SAC3C;QACD;YACE,EAAE,EAAE,aAAa;YACjB,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,uDAAuD;YACpE,KAAK,EAAE,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;SAC5C;QACD;YACE,EAAE,EAAE,cAAc;YAClB,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,mDAAmD;YAChE,KAAK,EAAE,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;SAC7C;QACD;YACE,EAAE,EAAE,aAAa;YACjB,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,oEAAoE;YACjF,KAAK,EAAE,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;SAC5C;KACF,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,QAAQ,CACf,SAAiB,EACjB,MAAgD;IAEhD,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACnC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC,GAAmB,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAyB,CAAC;IAC7E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc,EAAE,GAAW;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAC1D,OAAO,GAAG,IAAI,yEAAyE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACvG,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACvE,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7B,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACvE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AACrD,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACnF,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IACxB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvD,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAC3B,SAAiB,EACjB,aAAyD;IAEzD,IAAI,CAAC,aAAa;QAAE,OAAO,SAAS,CAAC;IACrC,IAAI,CAAC;QACH,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAyC,KAAa;IACvE,OAAO,cAAc,CAAC,KAAK,CAAW,CAAC;AACzC,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAY,CAAC;AACtD,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1E,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC;SAC7C,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SACpD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CACtD,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC"}
@@ -1,14 +1,14 @@
1
1
  export declare const COMPONENT_STANDARD_VERSION: "component-standard.v0.1.0";
2
2
  export declare const COMPONENT_STANDARD_SOURCE_HASH: "sha256:8c1e01c36155b4b646981064d24df9bd8cda501fd9cd9da93e5b62f40db22d52";
3
3
  export declare const COMPONENT_STANDARD_SOURCE_PATH: "https://github.com/ty-teams/promptframe-component-authoring#readme";
4
- export declare const COMPONENT_KIT_VERSION: "0.1.5";
4
+ export declare const COMPONENT_KIT_VERSION: "0.1.7";
5
5
  export declare const COMPONENT_MANIFEST_SCHEMA_VERSION: "component-manifest.v0.1.0";
6
6
  export declare const COMPONENT_REVIEW_CHECKLIST_VERSION: "component-review-checklist.v0.1.0";
7
7
  export declare function getComponentStandardStamp(): {
8
8
  sourceVersion: "component-standard.v0.1.0";
9
9
  sourceHash: "sha256:8c1e01c36155b4b646981064d24df9bd8cda501fd9cd9da93e5b62f40db22d52";
10
10
  sourcePath: "https://github.com/ty-teams/promptframe-component-authoring#readme";
11
- componentKitVersion: "0.1.5";
11
+ componentKitVersion: "0.1.7";
12
12
  manifestSchemaVersion: "component-manifest.v0.1.0";
13
13
  reviewChecklistVersion: "component-review-checklist.v0.1.0";
14
14
  };
package/dist/standard.js CHANGED
@@ -2,7 +2,7 @@ import { COMPONENT_MANIFEST_SCHEMA_VERSION as CONTRACTS_COMPONENT_MANIFEST_SCHEM
2
2
  export const COMPONENT_STANDARD_VERSION = CONTRACTS_COMPONENT_STANDARD_VERSION;
3
3
  export const COMPONENT_STANDARD_SOURCE_HASH = CONTRACTS_COMPONENT_STANDARD_SOURCE_HASH;
4
4
  export const COMPONENT_STANDARD_SOURCE_PATH = 'https://github.com/ty-teams/promptframe-component-authoring#readme';
5
- export const COMPONENT_KIT_VERSION = '0.1.5';
5
+ export const COMPONENT_KIT_VERSION = '0.1.7';
6
6
  export const COMPONENT_MANIFEST_SCHEMA_VERSION = CONTRACTS_COMPONENT_MANIFEST_SCHEMA_VERSION;
7
7
  export const COMPONENT_REVIEW_CHECKLIST_VERSION = 'component-review-checklist.v0.1.0';
8
8
  export function getComponentStandardStamp() {
@@ -0,0 +1,38 @@
1
+ import { type PromptFrameFontScale, type PromptFrameMotionIntensity, type PromptFrameStyleIntent } from '@promptframe/contracts';
2
+ export interface PromptFrameStyleContext {
3
+ width: number;
4
+ height: number;
5
+ fps: number;
6
+ durationInFrames: number;
7
+ }
8
+ export interface ResolvedPromptFrameStyle {
9
+ colors: {
10
+ background: string;
11
+ surface: string;
12
+ primary: string;
13
+ secondary: string;
14
+ accent: string;
15
+ textPrimary: string;
16
+ textSecondary: string;
17
+ };
18
+ spacing: {
19
+ unit: number;
20
+ safeArea: number;
21
+ gap: number;
22
+ };
23
+ radius: {
24
+ sm: number;
25
+ md: number;
26
+ lg: number;
27
+ };
28
+ motion: {
29
+ intensity: PromptFrameMotionIntensity;
30
+ presetId: string;
31
+ };
32
+ typography: {
33
+ fontScale: PromptFrameFontScale;
34
+ fontFamilyHint?: string;
35
+ };
36
+ }
37
+ export declare function resolvePromptFrameStyle(intent: PromptFrameStyleIntent | undefined, context: PromptFrameStyleContext): ResolvedPromptFrameStyle;
38
+ //# sourceMappingURL=style.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../src/style.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAE5B,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE;QACN,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,MAAM,EAAE;QACN,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;KACZ,CAAC;IACF,MAAM,EAAE;QACN,SAAS,EAAE,0BAA0B,CAAC;QACtC,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,UAAU,EAAE;QACV,SAAS,EAAE,oBAAoB,CAAC;QAChC,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAmED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAC1C,OAAO,EAAE,uBAAuB,GAC/B,wBAAwB,CAyB1B"}
package/dist/style.js ADDED
@@ -0,0 +1,121 @@
1
+ import { promptFrameStyleIntentSchema, } from '@promptframe/contracts';
2
+ const TONE_PALETTES = {
3
+ business: {
4
+ background: '#0f172a',
5
+ surface: '#1e293b',
6
+ primary: '#e2e8f0',
7
+ secondary: '#94a3b8',
8
+ textPrimary: '#f8fafc',
9
+ textSecondary: '#cbd5e1',
10
+ },
11
+ tech: {
12
+ background: '#08111f',
13
+ surface: '#102033',
14
+ primary: '#dff7ff',
15
+ secondary: '#7dd3fc',
16
+ textPrimary: '#f0f9ff',
17
+ textSecondary: '#bae6fd',
18
+ },
19
+ minimal: {
20
+ background: '#fafafa',
21
+ surface: '#ffffff',
22
+ primary: '#111827',
23
+ secondary: '#6b7280',
24
+ textPrimary: '#111827',
25
+ textSecondary: '#4b5563',
26
+ },
27
+ warm: {
28
+ background: '#1c1917',
29
+ surface: '#292524',
30
+ primary: '#fed7aa',
31
+ secondary: '#fdba74',
32
+ textPrimary: '#fff7ed',
33
+ textSecondary: '#fed7aa',
34
+ },
35
+ playful: {
36
+ background: '#111827',
37
+ surface: '#1f2937',
38
+ primary: '#fbcfe8',
39
+ secondary: '#c4b5fd',
40
+ textPrimary: '#ffffff',
41
+ textSecondary: '#e9d5ff',
42
+ },
43
+ luxury: {
44
+ background: '#09090b',
45
+ surface: '#18181b',
46
+ primary: '#fde68a',
47
+ secondary: '#a1a1aa',
48
+ textPrimary: '#fafafa',
49
+ textSecondary: '#d4d4d8',
50
+ },
51
+ documentary: {
52
+ background: '#111111',
53
+ surface: '#262626',
54
+ primary: '#e5e5e5',
55
+ secondary: '#a3a3a3',
56
+ textPrimary: '#fafafa',
57
+ textSecondary: '#d4d4d4',
58
+ },
59
+ };
60
+ const DENSITY_SPACING = {
61
+ compact: { unit: 8, safeArea: 40, gap: 12 },
62
+ balanced: { unit: 12, safeArea: 56, gap: 18 },
63
+ spacious: { unit: 16, safeArea: 72, gap: 24 },
64
+ };
65
+ export function resolvePromptFrameStyle(intent, context) {
66
+ const parsed = promptFrameStyleIntentSchema.parse(intent ?? {});
67
+ const tone = parsed.tone ?? toneFromAspect(context);
68
+ const density = parsed.density ?? 'balanced';
69
+ const motionIntensity = parsed.motionIntensity ?? 'balanced';
70
+ const fontScale = parsed.fontScale ?? 'normal';
71
+ const palette = TONE_PALETTES[tone];
72
+ const accent = parsed.accentColor ?? parsed.brandTokens?.primaryColor ?? defaultAccentForTone(tone);
73
+ return {
74
+ colors: {
75
+ ...palette,
76
+ accent,
77
+ },
78
+ spacing: DENSITY_SPACING[density],
79
+ radius: radiusForDensity(density),
80
+ motion: {
81
+ intensity: motionIntensity,
82
+ presetId: `${tone}-${motionIntensity}`,
83
+ },
84
+ typography: {
85
+ fontScale,
86
+ ...(parsed.brandTokens?.fontFamilyHint ? { fontFamilyHint: parsed.brandTokens.fontFamilyHint } : {}),
87
+ },
88
+ };
89
+ }
90
+ function toneFromAspect(context) {
91
+ return context.height > context.width ? 'tech' : 'business';
92
+ }
93
+ function defaultAccentForTone(tone) {
94
+ switch (tone) {
95
+ case 'business':
96
+ return '#38bdf8';
97
+ case 'tech':
98
+ return '#22d3ee';
99
+ case 'minimal':
100
+ return '#111827';
101
+ case 'warm':
102
+ return '#fb923c';
103
+ case 'playful':
104
+ return '#f472b6';
105
+ case 'luxury':
106
+ return '#facc15';
107
+ case 'documentary':
108
+ return '#e5e5e5';
109
+ }
110
+ }
111
+ function radiusForDensity(density) {
112
+ switch (density) {
113
+ case 'compact':
114
+ return { sm: 4, md: 8, lg: 12 };
115
+ case 'spacious':
116
+ return { sm: 8, md: 14, lg: 20 };
117
+ case 'balanced':
118
+ return { sm: 6, md: 10, lg: 16 };
119
+ }
120
+ }
121
+ //# sourceMappingURL=style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.js","sourceRoot":"","sources":["../src/style.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promptframe/component-kit",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -19,6 +19,10 @@
19
19
  "import": "./dist/standard.js",
20
20
  "types": "./dist/standard.d.ts"
21
21
  },
22
+ "./style": {
23
+ "import": "./dist/style.js",
24
+ "types": "./dist/style.d.ts"
25
+ },
22
26
  "./preview": {
23
27
  "import": "./dist/preview.js",
24
28
  "types": "./dist/preview.d.ts"
@@ -53,7 +57,7 @@
53
57
  "clean": "rm -rf dist"
54
58
  },
55
59
  "dependencies": {
56
- "@promptframe/contracts": "^0.1.2"
60
+ "@promptframe/contracts": "^0.1.4"
57
61
  },
58
62
  "peerDependencies": {
59
63
  "react": "^19.0.0",