@neatico/visual-core 0.14.3 → 0.14.64
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/dist/candidateRanking.d.ts +31 -0
- package/dist/candidateRanking.js +55 -0
- package/dist/cjs/candidateRanking.js +61 -0
- package/dist/cjs/composition.js +62 -36
- package/dist/cjs/compositionNumbers.js +111 -0
- package/dist/cjs/compositionScenes.js +91 -38
- package/dist/cjs/compositionUseCases.js +145 -0
- package/dist/cjs/content.js +574 -120
- package/dist/cjs/contentBrief.js +82 -0
- package/dist/cjs/designBlueprint.js +94 -19
- package/dist/cjs/designSystem.js +536 -77
- package/dist/cjs/editorial.js +76 -20
- package/dist/cjs/fontCatalog.js +81 -23
- package/dist/cjs/formalCompositions.js +120 -0
- package/dist/cjs/index.js +13 -0
- package/dist/cjs/layoutContracts.js +57 -11
- package/dist/cjs/layouts.js +5 -92
- package/dist/cjs/nativeSocialParameters.js +145 -0
- package/dist/cjs/pagination.js +27 -7
- package/dist/cjs/parameterDefaults.js +20 -0
- package/dist/cjs/recipeParameters.js +304 -0
- package/dist/cjs/socialLayouts.js +127 -387
- package/dist/cjs/styleManifest.js +107 -0
- package/dist/cjs/text.js +12 -2
- package/dist/cjs/textPresentation.js +68 -0
- package/dist/composition.d.ts +4 -4
- package/dist/composition.js +62 -36
- package/dist/compositionNumbers.d.ts +4 -0
- package/dist/compositionNumbers.js +108 -0
- package/dist/compositionScenes.d.ts +2 -2
- package/dist/compositionScenes.js +91 -38
- package/dist/compositionUseCases.d.ts +1 -0
- package/dist/compositionUseCases.js +142 -0
- package/dist/content.d.ts +65 -20
- package/dist/content.js +575 -121
- package/dist/contentBrief.d.ts +16 -0
- package/dist/contentBrief.js +78 -0
- package/dist/designBlueprint.d.ts +4 -4
- package/dist/designBlueprint.js +95 -20
- package/dist/designSystem.d.ts +11 -7
- package/dist/designSystem.js +537 -79
- package/dist/editorial.d.ts +1 -1
- package/dist/editorial.js +77 -21
- package/dist/fontCatalog.d.ts +1 -1
- package/dist/fontCatalog.js +81 -23
- package/dist/formalCompositions.d.ts +26 -0
- package/dist/formalCompositions.js +116 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +10 -0
- package/dist/layoutContracts.d.ts +3 -3
- package/dist/layoutContracts.js +58 -12
- package/dist/layouts.d.ts +2 -2
- package/dist/layouts.js +5 -92
- package/dist/nativeSocialParameters.d.ts +38 -0
- package/dist/nativeSocialParameters.js +139 -0
- package/dist/pagination.js +27 -7
- package/dist/parameterDefaults.d.ts +2 -0
- package/dist/parameterDefaults.js +17 -0
- package/dist/recipeParameters.d.ts +34 -0
- package/dist/recipeParameters.js +300 -0
- package/dist/socialLayouts.d.ts +40 -232
- package/dist/socialLayouts.js +127 -387
- package/dist/styleManifest.d.ts +20 -0
- package/dist/styleManifest.js +103 -0
- package/dist/text.js +12 -2
- package/dist/textPresentation.d.ts +29 -0
- package/dist/textPresentation.js +64 -0
- package/package.json +1 -1
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.compositionUseCase = compositionUseCase;
|
|
4
|
+
/** Authored communication tasks, independent of field count and successful parameter filling. */
|
|
5
|
+
const useCases = {
|
|
6
|
+
'note-question': 'Ask one audience-facing question or open a discussion. A plain factual list is a weaker fit than a real question-led task.',
|
|
7
|
+
'note-marker': 'Emphasize one short assertion, takeaway, or opinion with highlighted typography. This is not a detailed list or quantitative explanation.',
|
|
8
|
+
'note-editorial': 'Present a short reflective editorial passage with a clear headline and supporting prose.',
|
|
9
|
+
'note-checklist': 'Present independent actionable checks that readers can save and revisit. Distinguish checks from an ordered procedure.',
|
|
10
|
+
'note-photo': 'Lead with a meaningful photograph or visual subject and a concise caption. Generic placeholder art does not make a nonvisual explanation image-led.',
|
|
11
|
+
'note-news': 'Communicate a newsworthy factual update or a meaningful headline number, with scope and context.',
|
|
12
|
+
'chat-messenger': 'Explain a conversational exchange between named or illustrative speakers using familiar green chat bubbles. Ordinary parallel facts are not a conversation.',
|
|
13
|
+
'chat-imessage': 'Present a short question-and-response exchange using blue message bubbles. Use for dialogue, objections, or conversational explanation.',
|
|
14
|
+
'chat-telegram': 'Present a compact cloud-messenger conversation. Use when the exchange between speakers is itself important.',
|
|
15
|
+
'chat-workplace': 'Explain workplace collaboration through a short team conversation. Mentioning a team does not imply the source contains a dialogue.',
|
|
16
|
+
'time-notice': 'Announce a scheduled time, deadline, maintenance window, or launch moment. A generic workflow without a time-related task is a low semantic fit.',
|
|
17
|
+
'news-focus': 'Announce one important update or clarify one factual development, prioritizing its central message over a list of unrelated features.',
|
|
18
|
+
manifesto: 'Express one strong position, principle, or brand belief. A routine procedural description is weaker than a concise declarative idea.',
|
|
19
|
+
launch: 'Introduce a product, service, or new offering with a central hero visual. Use for launch communication rather than an arbitrary explanatory list.',
|
|
20
|
+
bento: 'Explain several parallel capabilities, benefits, or ideas in a compact modular overview. This does not imply sequence or hierarchy.',
|
|
21
|
+
spotlight: 'Explain one product, feature, or offering in depth, supported by a focal value and a few benefits.',
|
|
22
|
+
ticket: 'Present access to an event, reservation, or invitation, including a focal value and two concise logistics fields. An ordinary three-step workflow is not an event.',
|
|
23
|
+
webinar: 'Invite readers to a talk, webinar, or live session, emphasizing its subject and access information. Do not mistake ordinary guidance for a scheduled session.',
|
|
24
|
+
quote: 'Make a short quotation or memorable statement the focal message, with exact attribution when supplied. Quotation-shaped prose is weaker than a source quotation or requested quote card.',
|
|
25
|
+
testimonial: 'Present a customer or participant endorsement. A source that mentions a team but contains no endorsement is a low semantic fit; illustrative copy must never imply verified testimony.',
|
|
26
|
+
metric: 'Explain one focal metric or requested illustrative quantity. Ordinary qualitative instructions should rank below a list unless the user asks for a numerical illustration.',
|
|
27
|
+
report: 'Summarize several observations, findings, or report takeaways in parallel. Retain the distinction between reported evidence and illustrative examples.',
|
|
28
|
+
checklist: 'Present independent checks, reminders, or readiness criteria. Use an ordered steps composition when sequence is the actual message.',
|
|
29
|
+
steps: 'Explain a real or requested ordered procedure with successive actions. Parallel benefits that have no order fit a list better.',
|
|
30
|
+
comparison: 'Compare two alternatives along meaningful corresponding criteria. Do not give a high score merely because arbitrary facts can be assigned to two invented alternatives.',
|
|
31
|
+
myth: 'Contrast a misconception with a clarification. A normal list without a misconception is a weak fit even when both sides can be drafted.',
|
|
32
|
+
pricing: 'Explain prices, plans, tiers, or a requested pricing illustration. Missing prices can be labeled examples when pricing is requested; unrelated qualitative guidance is still a low fit.',
|
|
33
|
+
offer: 'Promote a specific offer, benefit, discount, or requested campaign. This is not an ordinary explanatory list.',
|
|
34
|
+
editorial: 'Introduce an article or editorial subject with a headline-led visual and supporting context.',
|
|
35
|
+
story: 'Tell a short narrative or explain a meaningful change through a visual story. A flat collection of unrelated facts is weaker.',
|
|
36
|
+
hiring: 'Advertise a role or recruitment opportunity and its requirements. Mentioning a team does not make ordinary work guidance a hiring task.',
|
|
37
|
+
team: 'Introduce actual or explicitly requested illustrative people with names and roles. Three parallel workflow actions are not a roster of people, even when their text fits the cards.',
|
|
38
|
+
course: 'Describe a course, learning program, or syllabus with an educational progression. A generic workflow is weaker unless teaching or learning is the task.',
|
|
39
|
+
'case-study': 'Explain a case through context, intervention, and outcomes or another meaningful case structure. Ordinary instructions without a case or results are a weaker fit.',
|
|
40
|
+
notice: 'Communicate one clear notice, policy reminder, or operational announcement.',
|
|
41
|
+
community: 'Invite participation in a community, shared initiative, or membership activity. A source merely mentioning a team does not establish a participation campaign.',
|
|
42
|
+
menu: 'Present menu choices or selectable offerings with concise details. Ordinary workflow actions are not automatically a menu.',
|
|
43
|
+
specification: 'Explain technical specifications or named factual attributes. Preserve supplied values; use labeled examples only when the task calls for an illustrative specification.',
|
|
44
|
+
itinerary: 'Explain a travel or visit itinerary. A generic project workflow is not travel just because it has successive actions.',
|
|
45
|
+
schedule: 'Present a timetable, agenda, or scheduled sequence with time-related context. An untimed list is weaker.',
|
|
46
|
+
safety: 'Explain safety precautions, risk checks, or protective actions. Routine productivity advice is not a safety procedure.',
|
|
47
|
+
faq: 'Answer explicit or anticipated audience questions. When the source is simply a parallel list, derived questions are possible but a direct list should score higher.',
|
|
48
|
+
'split-bar-compare': 'Compare complementary percentage shares for two named series across criteria. Each pair totals 100. Use for a quantitative comparison task, not arbitrary qualitative steps.',
|
|
49
|
+
'benchmark-bars': 'Compare measured or explicitly illustrative values with a benchmark. The task must benefit from a quantitative reference point; filling numbers alone does not make it appropriate.',
|
|
50
|
+
'usage-breakdown': 'Explain how a whole is allocated among categories using percentage shares. Use for a resource allocation task or requested illustrative allocation, not an ordinary list.',
|
|
51
|
+
organization: 'Explain parent-child responsibility, hierarchy, or coordination. The body is a short parent or coordinator label. Parallel tasks without a real or requested hierarchy are a weaker fit.',
|
|
52
|
+
'editorial-quote': 'Emphasize a quotation or distinctive editorial viewpoint. Do not equate any source sentence with a quotation-led communication task.',
|
|
53
|
+
'research-highlight': 'Summarize a research question, method, findings, or limitations. General process advice without a study is a weak fit even when research-like text can be drafted.',
|
|
54
|
+
'product-showcase': 'Show a product in a meaningful use context with a few supporting benefits. Generic workflow guidance without a product or requested product concept is weaker.',
|
|
55
|
+
'authored-reference-ledger-chart': 'Explain named logistics or specifications together with a small quantitative comparison. Both the facts and the chart should serve the requested task.',
|
|
56
|
+
'authored-reference-detail-sidebar': 'Explain a narrative topic beside a few named supporting facts. Suitable when prose and factual details have different reading priorities.',
|
|
57
|
+
'authored-reference-technical-log': 'Explain exact code or a technical log with a short supporting note. A nontechnical topic can receive a labeled example but should score lower than a direct explanation.',
|
|
58
|
+
'authored-reference-architecture-stack': 'Explain ordered layers, successive stages, or an architectural stack, using visually connected cards. Parallel features with no order fit a list better.',
|
|
59
|
+
'authored-reference-speaker-spotlight': 'Introduce one speaker or person with a quotation and session facts. A workflow with no person or requested speaker card is a low semantic fit.',
|
|
60
|
+
'authored-reference-speaker-lineup': 'Introduce several speakers or people with their quotations and event facts. Ordinary parallel work actions are not a speaker lineup.',
|
|
61
|
+
'authored-event-poster': 'Announce an event with its subject and logistics. Do not infer an event from ordinary instructional content.',
|
|
62
|
+
'authored-image-triptych': 'Explain three related visual concepts or product benefits through three distinct visual panels. Native illustrative placeholders may fill missing art, but they do not by themselves establish visual relevance.',
|
|
63
|
+
'authored-reference-photo': 'Introduce a photographic or visual subject with a concise editorial headline and deck. A nonvisual list supported only by a generic placeholder is a weak fit.',
|
|
64
|
+
'authored-reference-manifesto': 'Express a concise principle, belief, or strong thesis through oversized editorial typography. It is not a substitute for every procedural list.',
|
|
65
|
+
'authored-reference-journey': 'Explain successive stages or a journey in a meaningful order. Distinguish chronological or causal progression from parallel capabilities.',
|
|
66
|
+
'authored-reference-vision': 'Explain several related high-level capabilities or a shared vision in parallel, keeping the relationship between ideas explicit.',
|
|
67
|
+
'authored-reference-matrix': 'Compare alternatives against corresponding criteria in a matrix. A flat list without alternatives should score lower.',
|
|
68
|
+
'authored-reference-diagonal': 'Introduce one bold central statement or campaign headline with a short supporting explanation.',
|
|
69
|
+
'authored-reference-list': 'Explain several parallel ideas, capabilities, or actions as a readable editorial list. A direct list is often the strongest fit for a source that already contains parallel items.',
|
|
70
|
+
'authored-reference-story': 'Explain a subject through one meaningful visual and several supporting ideas. A generic fallback image is not evidence that a topic needs visual storytelling.',
|
|
71
|
+
'authored-reference-sustainable': 'Explain a small set of named metrics or specifications, preserving units and qualifications. A qualitative list without a numerical task is weaker.',
|
|
72
|
+
'authored-reference-code': 'Present exact source code or a requested illustrative code example in a dedicated code panel.',
|
|
73
|
+
'authored-reference-bars': 'Compare magnitudes across categories with bars. Use when the task is quantitative or explicitly requests illustrative quantities.',
|
|
74
|
+
'authored-reference-share': 'Explain shares of a whole using a proportional visual. Qualitative capabilities are a weaker fit unless allocation is the intended message.',
|
|
75
|
+
'authored-reference-opinion': 'Make a distinct opinion or quotation the central message, retaining attribution and its limits.',
|
|
76
|
+
'authored-reference-comparison': 'Compare two alternatives using aligned claims or criteria. Do not infer competing alternatives from an ordinary action list.',
|
|
77
|
+
'authored-reference-faq': 'Explain a topic through meaningful questions and answers. Direct parallel facts generally fit a direct list better than invented question wording.',
|
|
78
|
+
'authored-reference-trend': 'Explain how a comparable measure changes over time or another ordered axis. A generic list does not establish a trend.',
|
|
79
|
+
'bookend-cover-editorial': 'Introduce a presentation with an editorial title, concise premise, and focal visual. Highest fit for an opening or cover, not an ordinary explanatory slide.',
|
|
80
|
+
'bookend-cover-panel': 'Introduce a presentation through a strong title panel and supporting hero. Score opening intent separately from the ability to fill title text.',
|
|
81
|
+
'bookend-cover-split': 'Introduce a presentation with a title and visual on separate reading axes. Use for an opening, not a dense content page.',
|
|
82
|
+
'bookend-closing-editorial': 'Conclude a presentation with a final takeaway or next action. A source that is not concluding should score lower.',
|
|
83
|
+
'bookend-closing-panel': 'Close a presentation with a focused final message in a strong panel. Highest fit for a conclusion or call to action.',
|
|
84
|
+
'bookend-closing-split': 'Close a presentation with a final message and supporting visual. Do not confuse a normal explanatory page with a conclusion.',
|
|
85
|
+
'brand-collection-grid': 'Present a collection of brands, tools, products, or named entities with their visual identities. Unnamed workflow actions are not a brand collection.',
|
|
86
|
+
'authored-plan-cards': 'Compare named plans or tiers with aligned features and prices when relevant. A list without alternatives is a weaker fit.',
|
|
87
|
+
'authored-image-banner': 'Lead with an image and a concise headline. Generic placeholder art alone should not outrank a direct list for nonvisual source content.',
|
|
88
|
+
'authored-image-split': 'Explain a meaningful visual subject beside concise explanatory copy. Suitable when the image carries useful information.',
|
|
89
|
+
'authored-image-editorial': 'Present a visual subject with an editorial caption or reading rail. An image slot being filled is not proof of semantic suitability.',
|
|
90
|
+
'authored-image-campaign': 'Communicate an image-led campaign or launch message. A nonvisual process list is a weaker fit.',
|
|
91
|
+
'authored-image-inset': 'Explain a meaningful illustration, screenshot, or photograph in a framed editorial composition. Preserve the visual subject and its context.',
|
|
92
|
+
'authored-prose-inset': 'Explain one narrative idea using a readable inset prose group. Parallel items can be summarized, but a direct list may preserve their structure better.',
|
|
93
|
+
'authored-feature-focus': 'Explain one feature or idea in depth. A source whose message depends on several equally important items is weaker.',
|
|
94
|
+
'authored-feature-bento': 'Explain multiple parallel capabilities or benefits in a modular card arrangement. The items need not form an ordered sequence.',
|
|
95
|
+
'authored-feature-index': 'Explain parallel ideas as a numbered editorial index. Numbers organize reading and do not imply time or numerical measurements.',
|
|
96
|
+
'authored-steps-journey': 'Explain successive actions or stages with clear visual progression.',
|
|
97
|
+
'authored-steps-ribbon': 'Explain a short ordered procedure or chronology using a connected horizontal progression.',
|
|
98
|
+
'authored-comparison-panels': 'Compare two alternatives through corresponding points. The source or task should establish a meaningful comparison.',
|
|
99
|
+
'authored-quote-editorial': 'Present one quotation with editorial context and exact attribution when supplied.',
|
|
100
|
+
'authored-quote-poster': 'Make one memorable quotation or statement the dominant visual message.',
|
|
101
|
+
'authored-code-editorial': 'Explain exact code or an explicitly requested illustrative code example with readable lexical structure.',
|
|
102
|
+
'authored-parameter-ledger': 'Explain named factual attributes or specifications in a readable ledger.',
|
|
103
|
+
'authored-parameter-cards': 'Highlight a few named specifications or factual quantities in separate cards.',
|
|
104
|
+
'semantic-code-split': 'Explain code alongside a separate reading axis for context. A qualitative workflow without a technical task is weaker.',
|
|
105
|
+
'semantic-parameters-split': 'Explain named specifications beside a headline or explanatory rail.',
|
|
106
|
+
'semantic-parameters-stack': 'Explain factual attributes as a vertically readable specification list.',
|
|
107
|
+
'semantic-steps-split': 'Explain successive actions with an introductory rail beside the ordered procedure.',
|
|
108
|
+
'semantic-steps-stack': 'Explain a procedure or sequence using stacked stages with clear reading order.',
|
|
109
|
+
'semantic-steps-editorial': 'Explain an ordered progression in an editorial reading flow.',
|
|
110
|
+
'semantic-comparison-split': 'Compare alternatives through corresponding criteria on separate reading axes.',
|
|
111
|
+
'semantic-features-split': 'Explain several parallel ideas beside an introductory reading rail.',
|
|
112
|
+
'semantic-features-stack': 'Explain several parallel ideas in a direct, readable stacked list. This is a strong fit when separable items are the source message.',
|
|
113
|
+
'semantic-features-editorial': 'Explain multiple parallel ideas in a coherent editorial list, retaining their distinct meanings.',
|
|
114
|
+
'semantic-quote-split': 'Emphasize a quotation alongside context or attribution.',
|
|
115
|
+
'semantic-chart-split': 'Explain comparable quantities beside supporting context. Use for quantitative intent or a requested illustrative chart.',
|
|
116
|
+
'semantic-chart-stack': 'Explain a comparable numerical series with its unit and labels. A qualitative list should rank lower unless a numerical illustration is requested.',
|
|
117
|
+
'semantic-prose-split': 'Explain a narrative idea across a headline rail and readable prose.',
|
|
118
|
+
'semantic-prose-stack': 'Explain a narrative passage with clear title-to-body hierarchy.',
|
|
119
|
+
'semantic-prose-editorial': 'Explain a short narrative or argument through an editorial reading structure.',
|
|
120
|
+
'semantic-mixed-stack': 'Explain a message with the appropriate combination of semantic blocks. Retain parallel items as parallel items rather than inventing measurements or personas.',
|
|
121
|
+
'semantic-hero-editorial': 'Introduce one high-level idea with a headline, concise deck, and native hero artwork. A detailed list is weaker unless a high-level introduction is the task.',
|
|
122
|
+
'authored-mechanism-flow': 'Explain how a mechanism works through related actions or causal connections, rather than merely decorating a flat list.',
|
|
123
|
+
'authored-reference-capability-map': 'Explain parallel capabilities around a shared concept or coordinating hub.',
|
|
124
|
+
'authored-founder-timeline': 'Explain a meaningful chronological development or sequence of milestones. A flat list without time relationships is weaker.',
|
|
125
|
+
'authored-founder-comparison': 'Compare two approaches or states through corresponding meaningful differences.',
|
|
126
|
+
};
|
|
127
|
+
const article = {
|
|
128
|
+
cover: 'Introduce an article with a concise editorial headline, supporting deck, and authored hero artwork. This is an article cover rather than a miniature full article.',
|
|
129
|
+
features: 'Explain parallel capabilities or ideas in an article illustration. Preserve their separate meanings without inventing order.',
|
|
130
|
+
process: 'Explain successive actions, stages, or causal progression in an article illustration.',
|
|
131
|
+
comparison: 'Compare meaningful alternatives against corresponding points in an article illustration.',
|
|
132
|
+
summary: 'Summarize several related takeaways from an article in a compact visual overview.',
|
|
133
|
+
checklist: 'Present independent actionable checks or reminders from an article, without implying chronological steps.',
|
|
134
|
+
faq: 'Answer meaningful audience questions about an article topic. A direct list should generally score higher when the source simply lists parallel facts.',
|
|
135
|
+
chart: 'Explain a comparable numeric series or a requested illustrative numerical example. Qualitative prose alone does not establish quantitative intent.',
|
|
136
|
+
};
|
|
137
|
+
function compositionUseCase(id) {
|
|
138
|
+
const entry = useCases[id];
|
|
139
|
+
if (entry)
|
|
140
|
+
return entry;
|
|
141
|
+
const match = /^article-(cover|features|process|comparison|summary|checklist|faq|chart)-\d+$/.exec(id);
|
|
142
|
+
if (match)
|
|
143
|
+
return article[match[1]];
|
|
144
|
+
throw new Error(`COMPOSITION_USE_CASE_MISSING:${id}`);
|
|
145
|
+
}
|