@algolia/wizard 0.84.0-rc.202.652 → 0.84.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/dist/main.js CHANGED
@@ -2315,7 +2315,7 @@ async function ensureApplication(resumeAppId) {
2315
2315
  // package.json
2316
2316
  var package_default = {
2317
2317
  name: "@algolia/wizard",
2318
- version: "0.84.0-rc.202.652",
2318
+ version: "0.84.0",
2319
2319
  description: "Magically implement Algolia functionality in your codebase",
2320
2320
  type: "module",
2321
2321
  engines: {
@@ -6321,7 +6321,10 @@ function ingestionInstructions(input) {
6321
6321
  "Write the script in the project's primary language, using Algolia's official client for that language. Do not use the raw HTTP API.",
6322
6322
  "After a successful ingest, the script must print exactly one line to stdout in the form `ALGOLIA_WIZARD_RECORD_COUNT=<n>`, where <n> is the total number of records pushed to Algolia. Print it last, on its own line, with no surrounding text.",
6323
6323
  recordSizeInstruction(input.appPlan),
6324
- "When you split one source item into several records, keep the fields that the search UI shows (title, description, URL parts) on every record. After you push the records, the script must set the index settings with attributeForDistinct set to the parent identifier and distinct set to true, so that a search returns each source item once.",
6324
+ "When you split one source item into several records, keep the fields that the search UI shows (title, description, URL parts) on every record. After you push those split records, the script must set the index settings with attributeForDistinct set to the parent identifier and distinct set to true, so that a search returns each source item once.",
6325
+ "After you push the records, set searchableAttributes to the primary text fields the UI will search and show. For any longer text field the UI may snippet (description, body, content), set attributesToSnippet (for example description:20). Without attributesToSnippet, Algolia returns no _snippetResult and Snippet helpers render blank.",
6326
+ "Store plain text in fields the UI shows or snippets. Strip Markdown, HTML, and similar markup at index time (or index a separate plain-text field) so result rows do not show raw ###, backticks, or tags.",
6327
+ "URL and slug fields used to build result links must resolve to real routes in this app. Do not invent ids or prefixes that the app does not serve.",
6325
6328
  ...algoliaClientDoc(input),
6326
6329
  "Install the Algolia client with the project's own package manager via runShell, declaring it in whatever manifest the project uses (e.g. package.json, requirements.txt, Gemfile, go.mod, composer.json) so the dependency is not just installed ad hoc.",
6327
6330
  `If the script loads its env vars from a file (e.g. via dotenv or an equivalent for its language) rather than the process environment directly, decide that up front and call writeCredentials on that file before you finish the script \u2014 do not wait to discover the need for it by having a writeFile call refused.`,
@@ -6366,6 +6369,7 @@ function searchInstructions(input) {
6366
6369
  indexedContentMessage ?? "",
6367
6370
  `Build the search UI for ${input.searchUiTarget}.`,
6368
6371
  "Create search UI only. Do not create or modify ingestion scripts, rake/manage/CLI tasks, migrations, seeders, or other data-loading code, even if the data looks incomplete.",
6372
+ "Prefer Highlight (or the plain attribute) for titles and short fields. Use Snippet only for longer text, and only when attributesToSnippet is set for that attribute \u2014 via the index searchParameters (for example attributesToSnippet: ['body:20']) or index settings. Without it, _snippetResult is missing and the result panel looks empty even though search returns hits.",
6369
6373
  FILE_EDIT_INSTRUCTION,
6370
6374
  EXISTING_COMPONENT_INSTRUCTION,
6371
6375
  mountCandidateMessage,
@@ -9370,7 +9374,7 @@ async function resetProjectState() {
9370
9374
  // package.json with { type: 'json' }
9371
9375
  var package_default2 = {
9372
9376
  name: "@algolia/wizard",
9373
- version: "0.84.0-rc.202.652",
9377
+ version: "0.84.0",
9374
9378
  description: "Magically implement Algolia functionality in your codebase",
9375
9379
  type: "module",
9376
9380
  engines: {
@@ -76,6 +76,17 @@ search.start()
76
76
 
77
77
  Ensure the attributes you map into the component match the entity. 'title' above is an example.
78
78
 
79
+ ### Highlight vs Snippet
80
+
81
+ - Prefer `components.Highlight` (or the plain attribute) for titles and other short
82
+ fields. Highlight uses `_highlightResult`, which Algolia returns by default.
83
+ - Use `components.Snippet` only for longer text. Snippet reads `_snippetResult`,
84
+ which is **empty unless** `attributesToSnippet` is set. Without it, the result
85
+ row renders blank while search still returns hits.
86
+ - When you use Snippet, set `attributesToSnippet` on that index's
87
+ `searchParameters` (for example `['body:20']`), or as an index setting. Do both
88
+ for the same attribute names the template passes to Snippet.
89
+
79
90
  ### Navigation is `getURL`'s job, not the template's
80
91
 
81
92
  - `indices[].getURL` — `(item) => string`, a route that already exists; don't invent one.
@@ -68,6 +68,17 @@ export function Search() {
68
68
 
69
69
  Ensure the attributes you map into the component match the entity. 'title' above is an example.
70
70
 
71
+ ### Highlight vs Snippet
72
+
73
+ - Prefer plain attributes or `<Highlight>` for titles and other short fields.
74
+ Highlight uses `_highlightResult`, which Algolia returns by default.
75
+ - Use `<Snippet>` only for longer text. Snippet reads `_snippetResult`, which is
76
+ **empty unless** `attributesToSnippet` is set. Without it, the result row
77
+ renders blank while search still returns hits.
78
+ - When you use Snippet, set `attributesToSnippet` on that index's
79
+ `searchParameters` (for example `['body:20']`), or as an index setting. Do both
80
+ for the same attribute names the component passes to Snippet.
81
+
71
82
  ### Navigation is `getURL`'s job, not the item component's
72
83
 
73
84
  - `indices[].getURL` — `(item) => string`, a route that already exists; don't invent one.
@@ -154,6 +154,17 @@ function onFocusOut(event) {
154
154
  Adapt the label, placeholder, highlighted attributes, result content, and destination to
155
155
  the confirmed indexed entity. `products` and `name` above are examples.
156
156
 
157
+ ### Highlight vs Snippet
158
+
159
+ - Prefer `ais-highlight` (or the plain attribute) for titles and other short fields.
160
+ Highlight uses `_highlightResult`, which Algolia returns by default.
161
+ - Use `ais-snippet` only for longer text. Snippet reads `_snippetResult`, which is
162
+ **empty unless** `attributesToSnippet` is set. Without it, the result row
163
+ renders blank while search still returns hits.
164
+ - When you use Snippet, set `attributesToSnippet` via `ais-configure` or that
165
+ index's search parameters (for example `['body:20']`), or as an index setting.
166
+ Do both for the same attribute names the template passes to the snippet.
167
+
157
168
  Details that break accessibility if changed:
158
169
 
159
170
  - `role="combobox"` on the `input`, not a wrapper — with `aria-controls` at the popup's
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@algolia/wizard",
3
- "version": "0.84.0-rc.202.652",
3
+ "version": "0.84.0",
4
4
  "description": "Magically implement Algolia functionality in your codebase",
5
5
  "type": "module",
6
6
  "engines": {