@rfdtech/components 1.22.0 → 2.0.1

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.
Files changed (218) hide show
  1. package/README.md +209 -81
  2. package/dist/adapters/next-adapter.d.ts.map +1 -1
  3. package/dist/components/app-header/AppHeader.d.ts.map +1 -1
  4. package/dist/components/app-header/AppHeaderNotificationItem.d.ts +3 -0
  5. package/dist/components/app-header/AppHeaderNotificationItem.d.ts.map +1 -0
  6. package/dist/components/app-header/AppHeaderProfile.d.ts +5 -0
  7. package/dist/components/app-header/AppHeaderProfile.d.ts.map +1 -1
  8. package/dist/components/app-header/index.d.ts +3 -1
  9. package/dist/components/app-header/index.d.ts.map +1 -1
  10. package/dist/components/app-switcher/AppIconTile.d.ts +10 -0
  11. package/dist/components/app-switcher/AppIconTile.d.ts.map +1 -0
  12. package/dist/components/app-switcher/AppSwitcher.d.ts +1 -1
  13. package/dist/components/app-switcher/AppSwitcher.d.ts.map +1 -1
  14. package/dist/components/app-switcher/AppSwitcherItem.d.ts.map +1 -1
  15. package/dist/components/app-switcher/IconPatterns.d.ts +8 -0
  16. package/dist/components/app-switcher/IconPatterns.d.ts.map +1 -0
  17. package/dist/components/app-switcher/SystemAppIcon.d.ts.map +1 -1
  18. package/dist/components/app-switcher/index.d.ts +2 -0
  19. package/dist/components/app-switcher/index.d.ts.map +1 -1
  20. package/dist/components/avatar/Avatar.d.ts.map +1 -1
  21. package/dist/components/bulk-import-modal/BulkImportModal.d.ts.map +1 -1
  22. package/dist/components/bulk-import-modal/steps/ValidateDataStep.d.ts.map +1 -1
  23. package/dist/components/button/Button.d.ts +1 -1
  24. package/dist/components/button/Button.d.ts.map +1 -1
  25. package/dist/components/button/Spinner.d.ts.map +1 -1
  26. package/dist/components/combobox/Combobox.d.ts +4 -0
  27. package/dist/components/combobox/Combobox.d.ts.map +1 -0
  28. package/dist/components/combobox/Combobox.test.d.ts +2 -0
  29. package/dist/components/combobox/Combobox.test.d.ts.map +1 -0
  30. package/dist/components/combobox/index.d.ts +3 -0
  31. package/dist/components/combobox/index.d.ts.map +1 -0
  32. package/dist/components/country-selector/CountrySelector.d.ts +7 -0
  33. package/dist/components/country-selector/CountrySelector.d.ts.map +1 -1
  34. package/dist/components/country-selector/index.d.ts +1 -0
  35. package/dist/components/country-selector/index.d.ts.map +1 -1
  36. package/dist/components/date-range-selector/DateRangeSelector.d.ts +2 -2
  37. package/dist/components/date-range-selector/DateRangeSelector.d.ts.map +1 -1
  38. package/dist/components/date-range-selector/index.d.ts +1 -1
  39. package/dist/components/date-range-selector/index.d.ts.map +1 -1
  40. package/dist/components/date-selector/DateSelector.d.ts.map +1 -1
  41. package/dist/components/dropdown/Dropdown.d.ts +1 -1
  42. package/dist/components/dropdown/Dropdown.d.ts.map +1 -1
  43. package/dist/components/export-button/ExportButton.d.ts +3 -0
  44. package/dist/components/export-button/ExportButton.d.ts.map +1 -0
  45. package/dist/components/export-button/ExportButton.test.d.ts +2 -0
  46. package/dist/components/export-button/ExportButton.test.d.ts.map +1 -0
  47. package/dist/components/export-button/index.d.ts +3 -0
  48. package/dist/components/export-button/index.d.ts.map +1 -0
  49. package/dist/components/launchpad/Launchpad.d.ts +4 -0
  50. package/dist/components/launchpad/Launchpad.d.ts.map +1 -0
  51. package/dist/components/launchpad/Launchpad.test.d.ts +2 -0
  52. package/dist/components/launchpad/Launchpad.test.d.ts.map +1 -0
  53. package/dist/components/launchpad/LaunchpadGridIcon.d.ts +2 -0
  54. package/dist/components/launchpad/LaunchpadGridIcon.d.ts.map +1 -0
  55. package/dist/components/launchpad/LaunchpadIconTile.d.ts +10 -0
  56. package/dist/components/launchpad/LaunchpadIconTile.d.ts.map +1 -0
  57. package/dist/components/launchpad/LaunchpadItem.d.ts +8 -0
  58. package/dist/components/launchpad/LaunchpadItem.d.ts.map +1 -0
  59. package/dist/components/launchpad/LaunchpadOverlays.d.ts +3 -0
  60. package/dist/components/launchpad/LaunchpadOverlays.d.ts.map +1 -0
  61. package/dist/components/launchpad/SystemLaunchpadIcon.d.ts +5 -0
  62. package/dist/components/launchpad/SystemLaunchpadIcon.d.ts.map +1 -0
  63. package/dist/components/launchpad/hooks/useLaunchpad.d.ts +3 -0
  64. package/dist/components/launchpad/hooks/useLaunchpad.d.ts.map +1 -0
  65. package/dist/components/launchpad/index.d.ts +10 -0
  66. package/dist/components/launchpad/index.d.ts.map +1 -0
  67. package/dist/components/metric-card/MetricCard.d.ts.map +1 -1
  68. package/dist/components/network-operator/NetworkOperator.d.ts +4 -0
  69. package/dist/components/network-operator/NetworkOperator.d.ts.map +1 -1
  70. package/dist/components/network-operator/index.d.ts +1 -0
  71. package/dist/components/network-operator/index.d.ts.map +1 -1
  72. package/dist/components/notice/Notice.d.ts +4 -0
  73. package/dist/components/notice/Notice.d.ts.map +1 -0
  74. package/dist/components/notice/Notice.test.d.ts +2 -0
  75. package/dist/components/notice/Notice.test.d.ts.map +1 -0
  76. package/dist/components/notice/index.d.ts +3 -0
  77. package/dist/components/notice/index.d.ts.map +1 -0
  78. package/dist/components/phone-number-input/PhoneNumberInput.d.ts.map +1 -1
  79. package/dist/components/popup/Popup.d.ts +15 -0
  80. package/dist/components/popup/Popup.d.ts.map +1 -0
  81. package/dist/components/popup/Popup.test.d.ts +2 -0
  82. package/dist/components/popup/Popup.test.d.ts.map +1 -0
  83. package/dist/components/popup/index.d.ts +3 -0
  84. package/dist/components/popup/index.d.ts.map +1 -0
  85. package/dist/components/profile-popover/ProfilePopover.d.ts +4 -0
  86. package/dist/components/profile-popover/ProfilePopover.d.ts.map +1 -0
  87. package/dist/components/profile-popover/ProfilePopover.test.d.ts +2 -0
  88. package/dist/components/profile-popover/ProfilePopover.test.d.ts.map +1 -0
  89. package/dist/components/profile-popover/index.d.ts +3 -0
  90. package/dist/components/profile-popover/index.d.ts.map +1 -0
  91. package/dist/components/role-select/RoleSelect.d.ts +4 -0
  92. package/dist/components/role-select/RoleSelect.d.ts.map +1 -0
  93. package/dist/components/role-select/RoleSelect.test.d.ts +2 -0
  94. package/dist/components/role-select/RoleSelect.test.d.ts.map +1 -0
  95. package/dist/components/role-select/index.d.ts +3 -0
  96. package/dist/components/role-select/index.d.ts.map +1 -0
  97. package/dist/components/section-header/SectionHeader.d.ts +7 -0
  98. package/dist/components/section-header/SectionHeader.d.ts.map +1 -0
  99. package/dist/components/section-header/SectionHeader.test.d.ts +2 -0
  100. package/dist/components/section-header/SectionHeader.test.d.ts.map +1 -0
  101. package/dist/components/section-header/index.d.ts +3 -0
  102. package/dist/components/section-header/index.d.ts.map +1 -0
  103. package/dist/components/sidebar/Sidebar.d.ts +1 -1
  104. package/dist/components/sidebar/Sidebar.d.ts.map +1 -1
  105. package/dist/components/sidebar/SidebarContext.d.ts +6 -0
  106. package/dist/components/sidebar/SidebarContext.d.ts.map +1 -1
  107. package/dist/components/sidebar/index.d.ts +1 -1
  108. package/dist/components/sidebar/index.d.ts.map +1 -1
  109. package/dist/components/switch/Switch.d.ts +4 -0
  110. package/dist/components/switch/Switch.d.ts.map +1 -0
  111. package/dist/components/switch/Switch.test.d.ts +2 -0
  112. package/dist/components/switch/Switch.test.d.ts.map +1 -0
  113. package/dist/components/switch/index.d.ts +3 -0
  114. package/dist/components/switch/index.d.ts.map +1 -0
  115. package/dist/components/table/Table.d.ts.map +1 -1
  116. package/dist/components/table/TableHeader.d.ts.map +1 -1
  117. package/dist/components/table/TablePagination.d.ts.map +1 -1
  118. package/dist/components/table/index.d.ts +1 -1
  119. package/dist/components/table/index.d.ts.map +1 -1
  120. package/dist/components/theme/ThemeProvider.d.ts.map +1 -1
  121. package/dist/components/theme/cletTheme.d.ts +11 -0
  122. package/dist/components/theme/cletTheme.d.ts.map +1 -0
  123. package/dist/components/theme/cletTheme.test-d.d.ts +2 -0
  124. package/dist/components/theme/cletTheme.test-d.d.ts.map +1 -0
  125. package/dist/components/theme/cletTheme.test.d.ts +2 -0
  126. package/dist/components/theme/cletTheme.test.d.ts.map +1 -0
  127. package/dist/components/theme/index.d.ts +3 -1
  128. package/dist/components/theme/index.d.ts.map +1 -1
  129. package/dist/components/upload-field/UploadField.d.ts +5 -0
  130. package/dist/components/upload-field/UploadField.d.ts.map +1 -1
  131. package/dist/components/upload-field/index.d.ts +2 -2
  132. package/dist/components/upload-field/index.d.ts.map +1 -1
  133. package/dist/generated/components.theme.d.ts +313 -0
  134. package/dist/generated/components.theme.d.ts.map +1 -0
  135. package/dist/hooks/index.d.ts +1 -0
  136. package/dist/hooks/index.d.ts.map +1 -1
  137. package/dist/hooks/useHasMounted.d.ts +10 -0
  138. package/dist/hooks/useHasMounted.d.ts.map +1 -0
  139. package/dist/hooks/useTableFilter.d.ts.map +1 -1
  140. package/dist/hooks/useTablePagination.d.ts.map +1 -1
  141. package/dist/hooks/useTableState.d.ts.map +1 -1
  142. package/dist/index.cjs +84 -56
  143. package/dist/index.css +1 -1
  144. package/dist/index.d.ts +12 -1
  145. package/dist/index.d.ts.map +1 -1
  146. package/dist/index.js +19025 -31594
  147. package/dist/mcp/cli.js +75 -0
  148. package/dist/mcp/docs.js +122 -0
  149. package/dist/mcp/generated/components.json +3601 -0
  150. package/dist/mcp/generated/examples.json +1233 -0
  151. package/dist/mcp/generated/index.meta.json +252 -0
  152. package/dist/mcp/generated/rules.json +629 -0
  153. package/dist/mcp/generated/search.json +1626 -0
  154. package/dist/mcp/generated/tokens.json +1022 -0
  155. package/dist/mcp/index.js +337 -0
  156. package/dist/mcp/indexer.js +370 -0
  157. package/dist/mcp/installers/claude.js +37 -0
  158. package/dist/mcp/installers/codex.js +24 -0
  159. package/dist/mcp/installers/cursor.js +33 -0
  160. package/dist/mcp/installers/doctor.js +36 -0
  161. package/dist/mcp/installers/opencode.js +36 -0
  162. package/dist/mcp/installers/setup.js +34 -0
  163. package/dist/mcp/installers/util.js +41 -0
  164. package/dist/mcp/paths.js +63 -0
  165. package/dist/mcp/skill/SKILL.md +36 -0
  166. package/dist/mcp/skill/image-to-components.md +49 -0
  167. package/dist/next-index.d.ts.map +1 -1
  168. package/dist/next.cjs +104 -94
  169. package/dist/next.css +1 -1
  170. package/dist/next.js +16275 -29977
  171. package/dist/types/app-header.d.ts +52 -13
  172. package/dist/types/app-header.d.ts.map +1 -1
  173. package/dist/types/app-switcher.d.ts +10 -1
  174. package/dist/types/app-switcher.d.ts.map +1 -1
  175. package/dist/types/avatar.d.ts +9 -0
  176. package/dist/types/avatar.d.ts.map +1 -1
  177. package/dist/types/combobox.d.ts +43 -0
  178. package/dist/types/combobox.d.ts.map +1 -0
  179. package/dist/types/country-selector.d.ts +4 -0
  180. package/dist/types/country-selector.d.ts.map +1 -1
  181. package/dist/types/date-range-selector.d.ts +11 -0
  182. package/dist/types/date-range-selector.d.ts.map +1 -1
  183. package/dist/types/dropdown.d.ts +8 -0
  184. package/dist/types/dropdown.d.ts.map +1 -1
  185. package/dist/types/export-button.d.ts +24 -0
  186. package/dist/types/export-button.d.ts.map +1 -0
  187. package/dist/types/launchpad.d.ts +79 -0
  188. package/dist/types/launchpad.d.ts.map +1 -0
  189. package/dist/types/metric-card.d.ts +4 -0
  190. package/dist/types/metric-card.d.ts.map +1 -1
  191. package/dist/types/network-operator.d.ts +8 -0
  192. package/dist/types/network-operator.d.ts.map +1 -1
  193. package/dist/types/notice.d.ts +24 -0
  194. package/dist/types/notice.d.ts.map +1 -0
  195. package/dist/types/popup.d.ts +43 -0
  196. package/dist/types/popup.d.ts.map +1 -0
  197. package/dist/types/profile-popover.d.ts +97 -0
  198. package/dist/types/profile-popover.d.ts.map +1 -0
  199. package/dist/types/role-select.d.ts +28 -0
  200. package/dist/types/role-select.d.ts.map +1 -0
  201. package/dist/types/section-header.d.ts +26 -0
  202. package/dist/types/section-header.d.ts.map +1 -0
  203. package/dist/types/sidebar.d.ts +5 -0
  204. package/dist/types/sidebar.d.ts.map +1 -1
  205. package/dist/types/switch.d.ts +24 -0
  206. package/dist/types/switch.d.ts.map +1 -0
  207. package/dist/types/table.d.ts +23 -1
  208. package/dist/types/table.d.ts.map +1 -1
  209. package/dist/types/theme.d.ts +28 -8
  210. package/dist/types/theme.d.ts.map +1 -1
  211. package/dist/types/upload-field.d.ts +23 -0
  212. package/dist/types/upload-field.d.ts.map +1 -1
  213. package/dist/utils/export.d.ts +15 -0
  214. package/dist/utils/export.d.ts.map +1 -0
  215. package/dist/utils/stringToColor.d.ts +25 -0
  216. package/dist/utils/stringToColor.d.ts.map +1 -1
  217. package/package.json +29 -10
  218. package/scripts/postinstall.mjs +40 -0
@@ -0,0 +1,63 @@
1
+ import path from "node:path";
2
+ import { existsSync } from "node:fs";
3
+ import { fileURLToPath } from "node:url";
4
+ const thisFileUrl = import.meta.url;
5
+ const __dirname = path.dirname(fileURLToPath(thisFileUrl));
6
+ // Running via `tsx src/*.ts` keeps the .ts extension in the module URL; a
7
+ // compiled build (dist/*.js, whether tested locally or installed from npm)
8
+ // does not. This tells us which layer we're running from without relying on
9
+ // directory naming.
10
+ const isDevSource = thisFileUrl.endsWith(".ts");
11
+ // mcp/src/paths.ts (dev) and mcp/dist/paths.js (build output, local or
12
+ // published) both sit exactly one level inside the `mcp/` package dir, which
13
+ // in a repo checkout sits at the repo root alongside `demo/` and `src/`. When
14
+ // installed from npm, this resolves into node_modules and none of those
15
+ // sibling dirs exist — that absence is how we detect "published" mode.
16
+ const REPO_ROOT = path.resolve(__dirname, "..", "..");
17
+ export const SOURCE = {
18
+ pages: path.join(REPO_ROOT, "demo/docs/pages"),
19
+ examples: path.join(REPO_ROOT, "demo/docs/previews/examples"),
20
+ types: path.join(REPO_ROOT, "src/types"),
21
+ rules: path.join(REPO_ROOT, "demo/docs/rules"),
22
+ themeDir: path.join(REPO_ROOT, "src/styles/theme"),
23
+ componentsDir: path.join(REPO_ROOT, "src/components"),
24
+ // The generated, authoritative registry of every --clet-* token cletTheme()
25
+ // actually accepts (global + per-component) — see
26
+ // scripts/generate-theme-tokens.mjs. Parsed for token IDENTITY/grouping;
27
+ // actual values still come from the theme CSS files (global) and each
28
+ // component's own styles/*.css (component-scoped).
29
+ generatedTheme: path.join(REPO_ROOT, "src/generated/components.theme.ts"),
30
+ };
31
+ /**
32
+ * True only when this package is running from inside the gsl-components repo
33
+ * checkout (dev, or a local `npm run build` test) — i.e. there is live source
34
+ * to index. False when installed as a dependency (published, no sibling
35
+ * demo/src dirs), in which case we must never attempt to rebuild and only
36
+ * ever read the generated snapshot bundled at publish time.
37
+ */
38
+ export const hasRepoSource = existsSync(SOURCE.pages) && existsSync(SOURCE.types);
39
+ /**
40
+ * Where the generated JSON knowledge base lives.
41
+ * - Dev (tsx from src): mcp/generated — gitignored, rebuilt from live source.
42
+ * - Local dist / published dist: <dist>/generated — bundled at publish time
43
+ * via `files: ["dist"]`, since the source it was built from won't travel.
44
+ */
45
+ export const GENERATED_DIR = isDevSource
46
+ ? path.join(__dirname, "..", "generated")
47
+ : path.join(__dirname, "generated");
48
+ /**
49
+ * The hand-authored skill doc. Same dev/dist split as GENERATED_DIR: in dev
50
+ * it's read straight from mcp/skill/ (committed source); in a build/publish
51
+ * it's read from the copy bundled next to the compiled JS.
52
+ */
53
+ export const SKILL_SOURCE_PATH = isDevSource
54
+ ? path.join(__dirname, "..", "skill", "SKILL.md")
55
+ : path.join(__dirname, "skill", "SKILL.md");
56
+ /**
57
+ * The hand-authored image/text-to-components skill doc. Same dev/dist split
58
+ * as SKILL_SOURCE_PATH; `prepare-dist.mjs` copies the whole `skill/` dir so
59
+ * this travels to the published tarball automatically.
60
+ */
61
+ export const SKILL_IMAGE_SOURCE_PATH = isDevSource
62
+ ? path.join(__dirname, "..", "skill", "image-to-components.md")
63
+ : path.join(__dirname, "skill", "image-to-components.md");
@@ -0,0 +1,36 @@
1
+ ---
2
+ name: rfdtech-ui
3
+ description: Use before building or modifying UI with @rfdtech/components — search the component index, pull authoritative types and examples, and follow design rules instead of inventing APIs or styles.
4
+ ---
5
+
6
+ Before generating or editing UI code that uses `@rfdtech/components`:
7
+
8
+ 1. **Search first.** Call `search_components` (or `search_docs`) with the feature you're building
9
+ ("date range filter", "confirmation dialog", "wizard") before writing any markup — a component
10
+ for it may already exist.
11
+ 2. **Never invent props or types.** Call `get_component_types` (or `get_component`) and use the
12
+ real prop names, variants, and types straight from `src/types/<slug>.ts` — do not guess from
13
+ memory or from a component's visual appearance. MDX prop tables are prose and can go stale;
14
+ the type source is authoritative.
15
+ 3. **Read real examples.** Call `get_component_examples` before composing a non-trivial usage
16
+ (tables, forms in modals, async flows) — every known example is included, not just the ones
17
+ the doc page happens to show inline.
18
+ 4. **Follow the rules.** Call `get_rules` (whole corpus, a category like `forms`/`theming`, or a
19
+ component slug) and follow its do/don't guidance — these are real conventions pulled from a
20
+ production consumer of this library, not generic advice.
21
+ 5. **Prefer composition over new components.** If an existing component covers most of the need,
22
+ compose or extend it (`classNames`, slots, wrapping) rather than hand-rolling a replacement.
23
+ 6. **Building a new page, screen, dashboard, or layout shell?** Call `get_rules("page-composition")`
24
+ first — it's a required, non-negotiable pattern set (not a style suggestion): the
25
+ `AppLayout`/`AppHeader`/`Sidebar` variant trio, required `SidebarFooter` + `ProfilePopover`,
26
+ `RoleSelect` wired into all three locations when the system has multiple roles, `Launchpad` over
27
+ the deprecated `AppSwitcher`, the `Table`/`MetricCard`/`Tabs` variant set, and more. Also see
28
+ `get_component("migration-v2")` for the full migration/adoption checklist.
29
+ 7. **Migrating a project that already overrides tokens?** Never decide silently. Find every
30
+ existing override of a *known* token — `gslTheme()` calls, or CSS setting a real `--clet-*` or
31
+ legacy `--gsl-*` color token (not custom/arbitrary variables) — list them, and ask the user
32
+ about each one individually: keep it, or drop it for the new approved default. Every color
33
+ token has both a `--clet-*` name (preferred — use this for any *new* override you write) and a
34
+ `--gsl-*` alias (legacy, still functional — only relevant when reading/preserving existing
35
+ consumer code, never write new overrides with it). Non-color tokens (radius/shadow/font/
36
+ spacing/z-index) only have a `--gsl-*` name. See `get_rules("theming")`.
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: image-to-components
3
+ description: Use when the user hands over a screenshot, image, mockup, or textual description of a screen/interface to build — decompose it into existing `@rfdtech/components` components and variants via the MCP before writing any markup, instead of hand-rolling custom UI.
4
+ ---
5
+
6
+ Whenever the user gives you a screenshot, image, mockup, or a written description of a
7
+ screen, page, or dashboard they want built, treat it as a **translation** job: turn the
8
+ image/text into a page composed of `@rfdtech/components` that already exist — not a spec
9
+ for custom-built UI.
10
+
11
+ 1. **Decompose the design first.** Before writing any code, break the screen into its
12
+ regions and elements: layout shell, header/nav, sidebar, tables, forms and their fields,
13
+ cards/metrics, tabs, modals, buttons, badges, empty/loading states, etc. Do this for
14
+ every distinct element visible in the image or described in the text — don't skip
15
+ anything because it looks "simple enough to just write."
16
+
17
+ 2. **Map every element to an existing component via the MCP.** For each element:
18
+ - Call `search_components` (or `search_docs`) with what the element does or looks like
19
+ to find candidate matches.
20
+ - Call `get_component_types` / `get_component` to confirm the real prop names and
21
+ variants — never guess an API from how something looks in the image.
22
+ - Call `get_component_examples` for non-trivial compositions (a table inside a modal, a
23
+ multi-step form, etc.).
24
+ - Call `get_rules` for the component (and its category) to follow real do/don't
25
+ conventions.
26
+ - **Building a layout shell, full page, or dashboard?** Call
27
+ `get_rules("page-composition")` first — it's a required pattern set (the
28
+ `AppLayout`/`AppHeader`/`Sidebar` trio, `SidebarFooter` + `ProfilePopover`, `RoleSelect`
29
+ wiring, `Launchpad` over `AppSwitcher`, the `Table`/`MetricCard`/`Tabs` variant set),
30
+ not a style suggestion.
31
+ - Pick the variant that best aligns with what's in the image, not just the first result.
32
+
33
+ 3. **Compose only from matched rfd components.** Build the page exclusively out of
34
+ `@rfdtech/components` you've confirmed via step 2. Prefer image → page and text → page
35
+ translation grounded in the component set that already exists — do not introduce new
36
+ one-off components or raw markup/CSS to reproduce something a real component already
37
+ covers.
38
+
39
+ 4. **No match found? Stop and ask — never build custom silently.** If an element in the
40
+ image/description has no reasonable match in the component library, do not hand-roll
41
+ custom UI for it. Stop and ask the user exactly what they want for that specific
42
+ element. Only build custom UI when the user has explicitly said to build custom; if they
43
+ say "build custom" without specifics, ask exactly what they want (markup, behavior,
44
+ styling) before writing it. Never default to custom UI just because a match wasn't
45
+ obvious on the first search — exhaust `search_components`/`search_docs` first.
46
+
47
+ 5. **Everything else about writing the code follows `rfdtech-ui`** — authoritative types
48
+ over guessed props, real examples over invented ones, and the do/don't rules — see that
49
+ skill for the full discipline once components are identified.
@@ -1 +1 @@
1
- {"version":3,"file":"next-index.d.ts","sourceRoot":"","sources":["../src/next-index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAU5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAGxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAG1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"next-index.d.ts","sourceRoot":"","sources":["../src/next-index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAQ5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAGxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAG1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC"}