@rio-cloud/uikit-mcp 1.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/LICENSE +202 -0
- package/README.md +91 -0
- package/bin/uikit-mcp.mjs +23 -0
- package/data/pages/Components/components/accentbar.json +207 -0
- package/data/pages/Components/components/activity.json +87 -0
- package/data/pages/Components/components/animatednumber.json +99 -0
- package/data/pages/Components/components/animations.json +87 -0
- package/data/pages/Components/components/appheader.json +291 -0
- package/data/pages/Components/components/applayout.json +1198 -0
- package/data/pages/Components/components/appnavigationbar.json +327 -0
- package/data/pages/Components/components/areacharts.json +563 -0
- package/data/pages/Components/components/aspectratioplaceholder.json +75 -0
- package/data/pages/Components/components/assettree.json +3080 -0
- package/data/pages/Components/components/autosuggests.json +710 -0
- package/data/pages/Components/components/avatar.json +157 -0
- package/data/pages/Components/components/banner.json +599 -0
- package/data/pages/Components/components/barcharts.json +1507 -0
- package/data/pages/Components/components/barlist.json +223 -0
- package/data/pages/Components/components/basicmap.json +68 -0
- package/data/pages/Components/components/bottomsheet.json +601 -0
- package/data/pages/Components/components/button.json +583 -0
- package/data/pages/Components/components/buttontoolbar.json +63 -0
- package/data/pages/Components/components/calendarstripe.json +235 -0
- package/data/pages/Components/components/card.json +69 -0
- package/data/pages/Components/components/carousel.json +39 -0
- package/data/pages/Components/components/chartcolors.json +34 -0
- package/data/pages/Components/components/chartsgettingstarted.json +32 -0
- package/data/pages/Components/components/chat.json +39 -0
- package/data/pages/Components/components/checkbox.json +847 -0
- package/data/pages/Components/components/clearableinput.json +789 -0
- package/data/pages/Components/components/collapse.json +175 -0
- package/data/pages/Components/components/composedcharts.json +159 -0
- package/data/pages/Components/components/contentloader.json +233 -0
- package/data/pages/Components/components/datatabs.json +680 -0
- package/data/pages/Components/components/datepickers.json +287 -0
- package/data/pages/Components/components/dialogs.json +1492 -0
- package/data/pages/Components/components/divider.json +93 -0
- package/data/pages/Components/components/dropdowns.json +936 -0
- package/data/pages/Components/components/editablecontent.json +1117 -0
- package/data/pages/Components/components/expander.json +377 -0
- package/data/pages/Components/components/fade.json +403 -0
- package/data/pages/Components/components/fadeexpander.json +75 -0
- package/data/pages/Components/components/fadeup.json +127 -0
- package/data/pages/Components/components/feedback.json +269 -0
- package/data/pages/Components/components/filepickers.json +269 -0
- package/data/pages/Components/components/formlabel.json +115 -0
- package/data/pages/Components/components/fullscreenmap.json +22 -0
- package/data/pages/Components/components/groupeditemlist.json +323 -0
- package/data/pages/Components/components/iconlist.json +45 -0
- package/data/pages/Components/components/imagepreloader.json +81 -0
- package/data/pages/Components/components/labeledelement.json +75 -0
- package/data/pages/Components/components/licenseplate.json +69 -0
- package/data/pages/Components/components/linecharts.json +987 -0
- package/data/pages/Components/components/listmenu.json +313 -0
- package/data/pages/Components/components/loadmore.json +175 -0
- package/data/pages/Components/components/mainnavigation.json +39 -0
- package/data/pages/Components/components/mapcircle.json +34 -0
- package/data/pages/Components/components/mapcluster.json +51 -0
- package/data/pages/Components/components/mapcontext.json +105 -0
- package/data/pages/Components/components/mapdraggablemarker.json +34 -0
- package/data/pages/Components/components/mapgettingstarted.json +27 -0
- package/data/pages/Components/components/mapgroup.json +1198 -0
- package/data/pages/Components/components/mapinfobubble.json +34 -0
- package/data/pages/Components/components/maplayergroup.json +34 -0
- package/data/pages/Components/components/mapmarker.json +700 -0
- package/data/pages/Components/components/mappolygon.json +45 -0
- package/data/pages/Components/components/maproute.json +623 -0
- package/data/pages/Components/components/maproutegenerator.json +16 -0
- package/data/pages/Components/components/mapsettings.json +51 -0
- package/data/pages/Components/components/maputils.json +34 -0
- package/data/pages/Components/components/multiselects.json +1451 -0
- package/data/pages/Components/components/nodata.json +139 -0
- package/data/pages/Components/components/notifications.json +65 -0
- package/data/pages/Components/components/numbercontrol.json +301 -0
- package/data/pages/Components/components/onboarding.json +302 -0
- package/data/pages/Components/components/page.json +197 -0
- package/data/pages/Components/components/pager.json +93 -0
- package/data/pages/Components/components/piecharts.json +731 -0
- package/data/pages/Components/components/popover.json +251 -0
- package/data/pages/Components/components/position.json +69 -0
- package/data/pages/Components/components/radialbarcharts.json +1304 -0
- package/data/pages/Components/components/radiobutton.json +1105 -0
- package/data/pages/Components/components/releasenotes.json +44 -0
- package/data/pages/Components/components/resizer.json +93 -0
- package/data/pages/Components/components/responsivecolumnstripe.json +123 -0
- package/data/pages/Components/components/responsivevideo.json +75 -0
- package/data/pages/Components/components/rioglyph.json +93 -0
- package/data/pages/Components/components/rules.json +410 -0
- package/data/pages/Components/components/saveableinput.json +703 -0
- package/data/pages/Components/components/selects.json +701 -0
- package/data/pages/Components/components/sidebar.json +243 -0
- package/data/pages/Components/components/sliders.json +235 -0
- package/data/pages/Components/components/smoothscrollbars.json +335 -0
- package/data/pages/Components/components/spinners.json +343 -0
- package/data/pages/Components/components/states.json +1705 -0
- package/data/pages/Components/components/statswidgets.json +314 -0
- package/data/pages/Components/components/statusbar.json +177 -0
- package/data/pages/Components/components/stepbutton.json +57 -0
- package/data/pages/Components/components/steppedprogressbars.json +417 -0
- package/data/pages/Components/components/subnavigation.json +107 -0
- package/data/pages/Components/components/supportmarker.json +45 -0
- package/data/pages/Components/components/svgimage.json +81 -0
- package/data/pages/Components/components/switch.json +111 -0
- package/data/pages/Components/components/tables.json +144 -0
- package/data/pages/Components/components/tagmanager.json +86 -0
- package/data/pages/Components/components/tags.json +146 -0
- package/data/pages/Components/components/teaser.json +188 -0
- package/data/pages/Components/components/timeline.json +45 -0
- package/data/pages/Components/components/timepicker.json +163 -0
- package/data/pages/Components/components/togglebutton.json +247 -0
- package/data/pages/Components/components/tooltip.json +270 -0
- package/data/pages/Components/components/virtuallist.json +175 -0
- package/data/pages/Foundations/foundations.json +2475 -0
- package/data/pages/Getting-started/start/changelog.json +22 -0
- package/data/pages/Getting-started/start/goodtoknow.json +32 -0
- package/data/pages/Getting-started/start/guidelines/color-combinations.json +58 -0
- package/data/pages/Getting-started/start/guidelines/custom-css.json +27 -0
- package/data/pages/Getting-started/start/guidelines/custom-rioglyph.json +22 -0
- package/data/pages/Getting-started/start/guidelines/formatting.json +97 -0
- package/data/pages/Getting-started/start/guidelines/iframe.json +93 -0
- package/data/pages/Getting-started/start/guidelines/obfuscate-data.json +22 -0
- package/data/pages/Getting-started/start/guidelines/print-css.json +37 -0
- package/data/pages/Getting-started/start/guidelines/spinner.json +144 -0
- package/data/pages/Getting-started/start/guidelines/supported-browsers.json +22 -0
- package/data/pages/Getting-started/start/guidelines/writing.json +242 -0
- package/data/pages/Getting-started/start/howto.json +72 -0
- package/data/pages/Getting-started/start/intro.json +37 -0
- package/data/pages/Getting-started/start/responsiveness.json +52 -0
- package/data/pages/Templates/templates/common-table.json +39 -0
- package/data/pages/Templates/templates/detail-views.json +71 -0
- package/data/pages/Templates/templates/expandable-details.json +39 -0
- package/data/pages/Templates/templates/feature-cards.json +103 -0
- package/data/pages/Templates/templates/form-summary.json +39 -0
- package/data/pages/Templates/templates/form-toggle.json +39 -0
- package/data/pages/Templates/templates/list-blocks.json +119 -0
- package/data/pages/Templates/templates/loading-progress.json +39 -0
- package/data/pages/Templates/templates/options-panel.json +39 -0
- package/data/pages/Templates/templates/panel-variants.json +39 -0
- package/data/pages/Templates/templates/progress-cards.json +71 -0
- package/data/pages/Templates/templates/progress-success.json +39 -0
- package/data/pages/Templates/templates/settings-form.json +39 -0
- package/data/pages/Templates/templates/stats-blocks.json +135 -0
- package/data/pages/Templates/templates/table-panel.json +39 -0
- package/data/pages/Templates/templates/table-row-animation.json +39 -0
- package/data/pages/Templates/templates/usage-cards.json +39 -0
- package/data/pages/Utilities/utilities/deviceutils.json +39 -0
- package/data/pages/Utilities/utilities/featuretoggles.json +42 -0
- package/data/pages/Utilities/utilities/fueltypeutils.json +118 -0
- package/data/pages/Utilities/utilities/routeutils.json +34 -0
- package/data/pages/Utilities/utilities/useaftermount.json +63 -0
- package/data/pages/Utilities/utilities/useaverage.json +86 -0
- package/data/pages/Utilities/utilities/useclickoutside.json +69 -0
- package/data/pages/Utilities/utilities/useclipboard.json +57 -0
- package/data/pages/Utilities/utilities/usecount.json +92 -0
- package/data/pages/Utilities/utilities/usedarkmode.json +50 -0
- package/data/pages/Utilities/utilities/usedebuginfo.json +63 -0
- package/data/pages/Utilities/utilities/useeffectonce.json +57 -0
- package/data/pages/Utilities/utilities/useelapsedtime.json +57 -0
- package/data/pages/Utilities/utilities/useelementsize.json +63 -0
- package/data/pages/Utilities/utilities/useesc.json +57 -0
- package/data/pages/Utilities/utilities/useevent.json +75 -0
- package/data/pages/Utilities/utilities/usefocustrap.json +57 -0
- package/data/pages/Utilities/utilities/usefullscreen.json +197 -0
- package/data/pages/Utilities/utilities/usehover.json +57 -0
- package/data/pages/Utilities/utilities/useinterval.json +63 -0
- package/data/pages/Utilities/utilities/useisfocuswithin.json +75 -0
- package/data/pages/Utilities/utilities/usekey.json +75 -0
- package/data/pages/Utilities/utilities/uselocalstorage.json +69 -0
- package/data/pages/Utilities/utilities/uselocationsuggestions.json +110 -0
- package/data/pages/Utilities/utilities/usemax.json +86 -0
- package/data/pages/Utilities/utilities/usemin.json +86 -0
- package/data/pages/Utilities/utilities/usemutationobserver.json +69 -0
- package/data/pages/Utilities/utilities/useonlinestatus.json +39 -0
- package/data/pages/Utilities/utilities/useonscreen.json +63 -0
- package/data/pages/Utilities/utilities/usepostmessage.json +80 -0
- package/data/pages/Utilities/utilities/useprevious.json +63 -0
- package/data/pages/Utilities/utilities/useresizeobserver.json +65 -0
- package/data/pages/Utilities/utilities/usescrollposition.json +103 -0
- package/data/pages/Utilities/utilities/usesearch.json +197 -0
- package/data/pages/Utilities/utilities/usesorting.json +139 -0
- package/data/pages/Utilities/utilities/usestatewithvalidation.json +69 -0
- package/data/pages/Utilities/utilities/usesum.json +86 -0
- package/data/pages/Utilities/utilities/usetableexport.json +87 -0
- package/data/pages/Utilities/utilities/usetableselection.json +311 -0
- package/data/pages/Utilities/utilities/usetimeout.json +63 -0
- package/data/pages/Utilities/utilities/usetoggle.json +75 -0
- package/data/pages/Utilities/utilities/usewindowresize.json +63 -0
- package/data/version.json +4 -0
- package/docs/content-schema.md +147 -0
- package/docs/navigation-inventory.json +1310 -0
- package/docs/search-synonyms.json +43 -0
- package/package.json +38 -0
- package/server/index.mjs +268 -0
- package/server/lib/load-docs.mjs +48 -0
- package/server/lib/normalise-doc.mjs +220 -0
- package/server/lib/render-markdown.mjs +82 -0
- package/server/lib/search-index.mjs +49 -0
- package/server/lib/types.js +99 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"metadata": {
|
|
3
|
+
"captured_at": "2025-11-21T12:08:42.551Z",
|
|
4
|
+
"source": "https://uikit.developers.rio.cloud/#utilities/useWindowResize",
|
|
5
|
+
"category": "Utilities",
|
|
6
|
+
"section": "DOM behavior hooks",
|
|
7
|
+
"slug": "utilities/usewindowresize",
|
|
8
|
+
"version": "v1.13.2",
|
|
9
|
+
"hash_algorithm": "sha256",
|
|
10
|
+
"hash": "b97b8ecccd5beb527cbcae152064dce7daf3b691ba8e88fc159537fb4ad6b3dd"
|
|
11
|
+
},
|
|
12
|
+
"title": "useWindowResize",
|
|
13
|
+
"lead": "The useWindowResize hook allows to react on window size changes.",
|
|
14
|
+
"content": [
|
|
15
|
+
{
|
|
16
|
+
"heading": "useWindowResize",
|
|
17
|
+
"body": "",
|
|
18
|
+
"examples": [
|
|
19
|
+
{
|
|
20
|
+
"caption": "Example 1",
|
|
21
|
+
"rendered_html": "<div class=\"playground-content bg-white padding-20 padding-bottom-25\" style=\"width: 100%;\"><div class=\"display-flex justify-content-center align-items-center\"><span>Width is more than 1024px</span></div></div>",
|
|
22
|
+
"tabs": [
|
|
23
|
+
{
|
|
24
|
+
"label": "React",
|
|
25
|
+
"language": "tsx",
|
|
26
|
+
"code": "import { useState } from 'react';\n\nimport useWindowResize from '@rio-cloud/rio-uikit/useWindowResize';\n\nexport default () => {\n const getMessage = () => {\n const windowWidth = window.innerWidth;\n\n if (windowWidth < 1024 && windowWidth > 786) {\n return 'Width is between 786px and 1024px';\n } else if (windowWidth < 786) {\n return 'Width is less than 786px';\n } else if (windowWidth > 1024) {\n return 'Width is more than 1024px';\n }\n return '';\n };\n\n const [message, setMessage] = useState(getMessage());\n\n useWindowResize(() => {\n setMessage(getMessage());\n });\n\n return (\n <div className='display-flex justify-content-center align-items-center'>\n <span>{message}</span>\n </div>\n );\n};"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"label": "HTML",
|
|
30
|
+
"language": "html",
|
|
31
|
+
"code": "<div class=\"display-flex justify-content-center align-items-center\">\n <span>Width is more than 1024px</span>\n</div>"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"label": "Props",
|
|
35
|
+
"language": "json",
|
|
36
|
+
"code": null,
|
|
37
|
+
"props": [
|
|
38
|
+
{
|
|
39
|
+
"heading": null,
|
|
40
|
+
"rows": [
|
|
41
|
+
{
|
|
42
|
+
"name": "callback",
|
|
43
|
+
"type": "Function",
|
|
44
|
+
"default": "",
|
|
45
|
+
"description": "The callback function to be triggered. The callback will be throttled by default."
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name": "timeout",
|
|
49
|
+
"type": "Number",
|
|
50
|
+
"default": "300",
|
|
51
|
+
"description": "The time in milliseconds to throttle the callback."
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
]
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
}
|
|
59
|
+
]
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
"see_also": []
|
|
63
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# UI Kit Content Capture Schema
|
|
2
|
+
|
|
3
|
+
This document defines the structure we will use when extracting per-page documentation from the RIO UI Kit site. Each page we crawl will be normalised into a JSON artifact so the MCP server can serve rich, structured responses.
|
|
4
|
+
|
|
5
|
+
## Output Location
|
|
6
|
+
- All captured pages will be stored under `data/pages/<topNavLabel>/<slug>.json`.
|
|
7
|
+
- Paths mirror the hash routes in the UI Kit SPA, e.g. `#components/button` → `data/pages/Components/button.json`.
|
|
8
|
+
|
|
9
|
+
## JSON Structure
|
|
10
|
+
```jsonc
|
|
11
|
+
{
|
|
12
|
+
"metadata": {
|
|
13
|
+
"captured_at": "2025-10-28T13:26:10Z",
|
|
14
|
+
"source": "https://uikit.developers.rio.cloud/#components/button",
|
|
15
|
+
"category": "Components", // top navigation label
|
|
16
|
+
"section": "Interaction", // sidebar section title
|
|
17
|
+
"slug": "button", // hash route without leading namespace
|
|
18
|
+
"version": "v1.13.1", // UI Kit version displayed in the top-right dropdown
|
|
19
|
+
"hash": "3d3a…", // content fingerprint (see below)
|
|
20
|
+
"hash_algorithm": "sha256"
|
|
21
|
+
},
|
|
22
|
+
"title": "Button", // main H1/H2 on the page
|
|
23
|
+
"lead": "Optional introductory text",
|
|
24
|
+
"content": [
|
|
25
|
+
{
|
|
26
|
+
"heading": "Available Variations", // H2/H3 etc.
|
|
27
|
+
"body": "Concatenated paragraph text with inline formatting preserved as Markdown.",
|
|
28
|
+
"examples": [
|
|
29
|
+
{
|
|
30
|
+
"caption": "Default buttons",
|
|
31
|
+
"rendered_html": "<div>…</div>", // sanitized outerHTML of rendered demo
|
|
32
|
+
"tabs": [
|
|
33
|
+
{
|
|
34
|
+
"label": "React",
|
|
35
|
+
"language": "tsx",
|
|
36
|
+
"code": "import { Button } from '@rio-cloud/rio-uikit'; …"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"label": "HTML",
|
|
40
|
+
"language": "html",
|
|
41
|
+
"code": "<button class=\"btn btn-default\">…</button>"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"label": "Props",
|
|
45
|
+
"language": "json",
|
|
46
|
+
"props": [
|
|
47
|
+
{
|
|
48
|
+
"heading": "Button",
|
|
49
|
+
"rows": [
|
|
50
|
+
{
|
|
51
|
+
"name": "variant",
|
|
52
|
+
"type": "String",
|
|
53
|
+
"default": "",
|
|
54
|
+
"description": "Sets the button variant."
|
|
55
|
+
}
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
}
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
],
|
|
65
|
+
"see_also": [
|
|
66
|
+
{
|
|
67
|
+
"label": "Pager",
|
|
68
|
+
"href": "#components/pager"
|
|
69
|
+
}
|
|
70
|
+
]
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Notes
|
|
75
|
+
- `metadata.section` comes from the sidebar group in `docs/navigation-inventory.json`. If a page is referenced from multiple sections, we capture the one encountered during traversal.
|
|
76
|
+
- `metadata.version` reflects the UI Kit release selected in the site header when the page was captured.
|
|
77
|
+
- `metadata.hash` / `metadata.hash_algorithm` store a SHA-256 fingerprint of the normalised output so repeated crawls can skip overwriting unchanged files.
|
|
78
|
+
- `lead` is optional; we only include it when the page starts with descriptive paragraphs before the first heading.
|
|
79
|
+
- `content` preserves H2/H3/H4 headings encountered in the main content area and associates following paragraphs/lists with that heading; layout-only noise (e.g. breakpoint width labels, loaders/spinners) is filtered out during capture.
|
|
80
|
+
- `content[].examples[].rendered_html` preserves the demo markup so future renderers can show the live example. The field should be sanitized to avoid script/style injection.
|
|
81
|
+
- `content[].examples[].tabs` captures each code tab available in the UI (`React`, `HTML`, `Classes`, `Props`). If a tab is missing, we omit it. `Props` tabs contain structured table data (`tabs[].props`) instead of raw JSON strings.
|
|
82
|
+
- `content[].body` should be Markdown so the MCP server can return well-structured text to the LLM.
|
|
83
|
+
- `see_also` is scraped from “See also …” link clusters when present.
|
|
84
|
+
|
|
85
|
+
## Extraction Strategy
|
|
86
|
+
1. Load each route collected in `docs/navigation-inventory.json`.
|
|
87
|
+
2. Identify the primary title (`main h1/h2`).
|
|
88
|
+
3. Walk the content area (excluding sidebar/footer) and gather headings, paragraphs, lists, and notes.
|
|
89
|
+
4. For each demo block:
|
|
90
|
+
- Grab the rendered HTML container.
|
|
91
|
+
- Click through tab buttons (`[role="tab"]`, `.expander item header`) and record their code blocks.
|
|
92
|
+
5. Sanitize code/HTML (trim, normalise indentation).
|
|
93
|
+
6. Write the resulting JSON artifact to disk, overwriting existing files.
|
|
94
|
+
7. Update `data/version.json` with the captured UI Kit version (`capture:all` writes this file) to skip redundant full re-crawls when the upstream version is unchanged.
|
|
95
|
+
|
|
96
|
+
## Normalised Representation
|
|
97
|
+
|
|
98
|
+
Downstream components (MCP server, search index) should not rely on the raw capture shape directly. Instead, use `server/lib/normalise-doc.mjs` to transform a raw artifact into the canonical structure defined in `server/lib/types.js`. The normaliser:
|
|
99
|
+
|
|
100
|
+
- Derives `id` / `route` from `metadata.source` (`#components/button` → `components/button`).
|
|
101
|
+
- Normalises Markdown and HTML into both Markdown and plaintext fields for easier search/indexing (`bodyMarkdown`, `bodyPlainText`, `plainText`).
|
|
102
|
+
- Converts props tables into reusable Markdown blocks (`propsTables[].markdown`) while retaining the structured row data.
|
|
103
|
+
- Aggregates a `summary` (lead paragraph or first content block) and `searchText` (title + lead + section body + props descriptions).
|
|
104
|
+
- Exposes `loadDocumentation` (`server/lib/load-docs.mjs`) to traverse `data/pages/**`, normalise each JSON artifact, and return a `Map<id, UiKitDoc>` for server bootstrapping.
|
|
105
|
+
- `searchText` is fed into a FlexSearch index (`server/lib/search-index.mjs`) that powers the `search_docs` MCP tool for keyword queries.
|
|
106
|
+
|
|
107
|
+
Example (partial) output from `normaliseDocument(rawDoc)`:
|
|
108
|
+
|
|
109
|
+
```jsonc
|
|
110
|
+
{
|
|
111
|
+
"id": "components/button",
|
|
112
|
+
"route": "#components/button",
|
|
113
|
+
"category": "Components",
|
|
114
|
+
"title": "Button",
|
|
115
|
+
"summary": "The button component is the React equivalent to the normal HTML button…",
|
|
116
|
+
"sections": [
|
|
117
|
+
{
|
|
118
|
+
"heading": "Overview",
|
|
119
|
+
"bodyMarkdown": "…",
|
|
120
|
+
"bodyPlainText": "…",
|
|
121
|
+
"examples": [
|
|
122
|
+
{
|
|
123
|
+
"caption": "Standard buttons",
|
|
124
|
+
"plainText": "Standard buttons Default Primary …",
|
|
125
|
+
"codeTabs": [
|
|
126
|
+
{ "label": "React", "language": "tsx", "code": "…" }
|
|
127
|
+
],
|
|
128
|
+
"propsTables": [
|
|
129
|
+
{
|
|
130
|
+
"heading": null,
|
|
131
|
+
"markdown": "| Name | Type | Default | Description |…",
|
|
132
|
+
"rows": [ { "name": "disabled", "type": "Boolean", "default": "false", "description": "…" } ]
|
|
133
|
+
}
|
|
134
|
+
]
|
|
135
|
+
}
|
|
136
|
+
]
|
|
137
|
+
}
|
|
138
|
+
],
|
|
139
|
+
"seeAlso": []
|
|
140
|
+
}
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## Open Questions / TODO
|
|
144
|
+
- Determine whether to capture images as data URIs (likely not required initially).
|
|
145
|
+
- Add validation tests to ensure schema compliance before publishing artifacts.
|
|
146
|
+
- Consider a change-detection workflow so we can avoid re-processing unchanged pages during refresh runs.
|
|
147
|
+
- Decide whether `loadDocumentation` should expose additional indices (e.g. grouped by category) or accept glob filters for selective loading.
|