@nikkory/vibe-engine 4.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.
Files changed (333) hide show
  1. package/PUBLISH-GUIDE.md +250 -0
  2. package/README.md +1267 -0
  3. package/bin/vibe.js +22 -0
  4. package/dist/adapters/index.d.ts +19 -0
  5. package/dist/browser.d.ts +25 -0
  6. package/dist/browser.js +15083 -0
  7. package/dist/browser.mjs +15000 -0
  8. package/dist/cli/batch-command.d.ts +142 -0
  9. package/dist/cli/generate-command.d.ts +119 -0
  10. package/dist/cli/index.d.ts +34 -0
  11. package/dist/constants/ComponentTypes.d.ts +65 -0
  12. package/dist/constants/DesignSystems.d.ts +64 -0
  13. package/dist/constants/Frameworks.d.ts +71 -0
  14. package/dist/constants/Tiers.d.ts +72 -0
  15. package/dist/constants/index.d.ts +10 -0
  16. package/dist/converters/index.d.ts +12 -0
  17. package/dist/converters/section-converter.d.ts +176 -0
  18. package/dist/index.d.ts +58 -0
  19. package/dist/index.js +19819 -0
  20. package/dist/index.mjs +19496 -0
  21. package/dist/resolution/basic/groups-basic.d.ts +80 -0
  22. package/dist/resolution/basic/index.d.ts +21 -0
  23. package/dist/resolution/basic/intents-basic.d.ts +195 -0
  24. package/dist/resolution/basic/presets-basic.d.ts +96 -0
  25. package/dist/resolution/basic/resolver-basic.d.ts +127 -0
  26. package/dist/resolution/basic/shorthands-basic.d.ts +88 -0
  27. package/dist/resolution/core/groups-core.d.ts +160 -0
  28. package/dist/resolution/core/index.d.ts +21 -0
  29. package/dist/resolution/core/intents-core.d.ts +355 -0
  30. package/dist/resolution/core/presets-core.d.ts +160 -0
  31. package/dist/resolution/core/resolver-core.d.ts +207 -0
  32. package/dist/resolution/core/shorthands-core.d.ts +144 -0
  33. package/dist/resolution/core/types-core.d.ts +167 -0
  34. package/dist/resolution/debugger.d.ts +183 -0
  35. package/dist/resolution/demo.d.ts +57 -0
  36. package/dist/resolution/enterprise/index.d.ts +22 -0
  37. package/dist/resolution/enterprise/metrics.d.ts +152 -0
  38. package/dist/resolution/enterprise/resolver-enterprise.d.ts +108 -0
  39. package/dist/resolution/examples.d.ts +486 -0
  40. package/dist/resolution/groups/experience-group.d.ts +197 -0
  41. package/dist/resolution/groups/index.d.ts +196 -0
  42. package/dist/resolution/groups/layout-group.d.ts +192 -0
  43. package/dist/resolution/groups/motion-group.d.ts +127 -0
  44. package/dist/resolution/groups/visual-group.d.ts +146 -0
  45. package/dist/resolution/index.d.ts +41 -0
  46. package/dist/resolution/intents/button-intents.d.ts +231 -0
  47. package/dist/resolution/intents/card-intents.d.ts +177 -0
  48. package/dist/resolution/intents/feedback-intents.d.ts +222 -0
  49. package/dist/resolution/intents/index.d.ts +189 -0
  50. package/dist/resolution/intents/input-intents.d.ts +231 -0
  51. package/dist/resolution/intents/mood-modifiers.d.ts +154 -0
  52. package/dist/resolution/performance.d.ts +264 -0
  53. package/dist/resolution/presets/button-presets.d.ts +243 -0
  54. package/dist/resolution/presets/card-presets.d.ts +216 -0
  55. package/dist/resolution/presets/data-display-presets.d.ts +290 -0
  56. package/dist/resolution/presets/feedback-presets.d.ts +335 -0
  57. package/dist/resolution/presets/form-presets.d.ts +308 -0
  58. package/dist/resolution/presets/index.d.ts +22 -0
  59. package/dist/resolution/presets/input-presets.d.ts +207 -0
  60. package/dist/resolution/presets/nav-presets.d.ts +235 -0
  61. package/dist/resolution/presets/overlay-presets.d.ts +216 -0
  62. package/dist/resolution/presets/preset-registry.d.ts +212 -0
  63. package/dist/resolution/resolveProps.d.ts +235 -0
  64. package/dist/resolution/shorthand/feel-mappings.d.ts +140 -0
  65. package/dist/resolution/shorthand/index.d.ts +172 -0
  66. package/dist/resolution/shorthand/look-mappings.d.ts +107 -0
  67. package/dist/resolution/shorthand/spacing-mappings.d.ts +164 -0
  68. package/dist/resolution/shorthand/surface-mappings.d.ts +139 -0
  69. package/dist/resolution/standard/groups-standard.d.ts +98 -0
  70. package/dist/resolution/standard/index.d.ts +28 -0
  71. package/dist/resolution/standard/intents-standard.d.ts +232 -0
  72. package/dist/resolution/standard/presets-standard.d.ts +123 -0
  73. package/dist/resolution/standard/resolver-standard.d.ts +204 -0
  74. package/dist/resolution/standard/shorthands-standard.d.ts +98 -0
  75. package/dist/resolution/standard/validators.d.ts +141 -0
  76. package/dist/resolution/types.d.ts +461 -0
  77. package/dist/resolution/validators/factor24-validator.d.ts +418 -0
  78. package/dist/resolution/validators/index.d.ts +14 -0
  79. package/dist/scripts/generate-react-library.d.ts +15 -0
  80. package/dist/scripts/write-react-library.d.ts +18 -0
  81. package/dist/storage/cloud-sync.d.ts +182 -0
  82. package/dist/storage/index.d.ts +69 -0
  83. package/dist/storage/local-storage.d.ts +131 -0
  84. package/dist/storage/section-storage.d.ts +191 -0
  85. package/dist/styling/StyleGenerator.d.ts +76 -0
  86. package/dist/styling/TokenStyleResolver.d.ts +163 -0
  87. package/dist/styling/factor-migration.d.ts +192 -0
  88. package/dist/styling/factor-validators.d.ts +327 -0
  89. package/dist/styling/factors-1-6.d.ts +674 -0
  90. package/dist/styling/factors-12-16.d.ts +700 -0
  91. package/dist/styling/factors-17-24.d.ts +668 -0
  92. package/dist/styling/factors-all.d.ts +348 -0
  93. package/dist/styling/factors.d.ts +291 -0
  94. package/dist/styling/index.d.ts +31 -0
  95. package/dist/styling/types.d.ts +400 -0
  96. package/dist/tokens/schema.d.ts +486 -0
  97. package/dist/types/Option.d.ts +178 -0
  98. package/dist/types/Result.d.ts +148 -0
  99. package/dist/types/algorithm-engine.types.d.ts +298 -0
  100. package/dist/types/granularity/base.types.d.ts +268 -0
  101. package/dist/types/granularity/config.types.d.ts +177 -0
  102. package/dist/types/granularity/factors.types.d.ts +194 -0
  103. package/dist/types/granularity/index.d.ts +57 -0
  104. package/dist/types/granularity/slot.types.d.ts +128 -0
  105. package/dist/types/granularity/template.types.d.ts +179 -0
  106. package/dist/types/granularity-levels/atom.config.d.ts +151 -0
  107. package/dist/types/granularity-levels/component.config.d.ts +175 -0
  108. package/dist/types/granularity-levels/index.d.ts +47 -0
  109. package/dist/types/granularity-levels/layout.config.d.ts +278 -0
  110. package/dist/types/granularity-levels/page.config.d.ts +210 -0
  111. package/dist/types/granularity-levels/section.config.d.ts +188 -0
  112. package/dist/types/granularity-levels/template.config.d.ts +340 -0
  113. package/dist/types/index.d.ts +152 -0
  114. package/dist/types/section-slot.types.d.ts +169 -0
  115. package/dist/types/section-storage.types.d.ts +298 -0
  116. package/dist/types/section-template.types.d.ts +170 -0
  117. package/dist/types/section.types.d.ts +326 -0
  118. package/dist/ui-studio/ComponentGenerator.d.ts +219 -0
  119. package/dist/ui-studio/composition/FactorPropagator.d.ts +268 -0
  120. package/dist/ui-studio/composition/PageGenerator.d.ts +176 -0
  121. package/dist/ui-studio/composition/SectionGenerator.d.ts +312 -0
  122. package/dist/ui-studio/composition/SlotResolver.d.ts +295 -0
  123. package/dist/ui-studio/composition/section-orchestrator.d.ts +306 -0
  124. package/dist/ui-studio/granularity/FactorCascade.d.ts +328 -0
  125. package/dist/ui-studio/granularity/GranularityGenerator.d.ts +266 -0
  126. package/dist/ui-studio/granularity/RecursiveGenerator.d.ts +328 -0
  127. package/dist/ui-studio/index.d.ts +94 -0
  128. package/dist/ui-studio/matrix/ClassMapper.d.ts +128 -0
  129. package/dist/ui-studio/matrix/MatrixResolver.d.ts +203 -0
  130. package/dist/ui-studio/matrix/types.d.ts +96 -0
  131. package/dist/ui-studio/presets/IndustryDetector.d.ts +183 -0
  132. package/dist/ui-studio/presets/component-registry.d.ts +213 -0
  133. package/dist/ui-studio/presets/factor-registry.d.ts +364 -0
  134. package/dist/ui-studio/presets/granularity-registry.d.ts +252 -0
  135. package/dist/ui-studio/presets/index.d.ts +32 -0
  136. package/dist/ui-studio/presets/industries.d.ts +143 -0
  137. package/dist/ui-studio/presets/layout-registry.d.ts +21 -0
  138. package/dist/ui-studio/presets/matrix-groups.d.ts +195 -0
  139. package/dist/ui-studio/presets/page-registry.d.ts +24 -0
  140. package/dist/ui-studio/presets/registry.constants.d.ts +69 -0
  141. package/dist/ui-studio/presets/registry.types.d.ts +166 -0
  142. package/dist/ui-studio/presets/section-defaults.d.ts +175 -0
  143. package/dist/ui-studio/presets/section-registry.d.ts +83 -0
  144. package/dist/ui-studio/presets/section-registry.defaults.d.ts +106 -0
  145. package/dist/ui-studio/presets/section-registry.helpers.d.ts +112 -0
  146. package/dist/ui-studio/presets/section-registry.types.d.ts +181 -0
  147. package/dist/ui-studio/presets/template-registry.d.ts +23 -0
  148. package/dist/ui-studio/presets/variants.d.ts +1038 -0
  149. package/dist/ui-studio/registries/components-registry.d.ts +193 -0
  150. package/dist/ui-studio/registries/design-systems-registry.d.ts +153 -0
  151. package/dist/ui-studio/registries/factors-registry.d.ts +145 -0
  152. package/dist/ui-studio/registries/tiers-registry.d.ts +150 -0
  153. package/dist/ui-studio/resolution/FactorResolver.d.ts +201 -0
  154. package/dist/ui-studio/templates/TestGenerator.d.ts +55 -0
  155. package/dist/ui-studio/templates/TierGenerator.d.ts +153 -0
  156. package/dist/ui-studio/templates/TypesGenerator.d.ts +51 -0
  157. package/dist/ui-studio/types/granularity/base.types.d.ts +268 -0
  158. package/dist/ui-studio/types/granularity/config.types.d.ts +177 -0
  159. package/dist/ui-studio/types/granularity/factors.types.d.ts +194 -0
  160. package/dist/ui-studio/types/granularity/index.d.ts +57 -0
  161. package/dist/ui-studio/types/granularity/slot.types.d.ts +128 -0
  162. package/dist/ui-studio/types/granularity/template.types.d.ts +179 -0
  163. package/dist/ui-studio/types/granularity-levels/atom.config.d.ts +151 -0
  164. package/dist/ui-studio/types/granularity-levels/component.config.d.ts +175 -0
  165. package/dist/ui-studio/types/granularity-levels/index.d.ts +47 -0
  166. package/dist/ui-studio/types/granularity-levels/layout.config.d.ts +278 -0
  167. package/dist/ui-studio/types/granularity-levels/page.config.d.ts +210 -0
  168. package/dist/ui-studio/types/granularity-levels/section.config.d.ts +188 -0
  169. package/dist/ui-studio/types/granularity-levels/template.config.d.ts +340 -0
  170. package/dist/ui-studio/types.d.ts +323 -0
  171. package/dist/utils/CodeUtils.d.ts +103 -0
  172. package/dist/utils/GenerateComponentValidator.d.ts +35 -0
  173. package/dist/utils/Logger.d.ts +101 -0
  174. package/dist/utils/StringUtils.d.ts +120 -0
  175. package/dist/utils/ValidationUtils.d.ts +71 -0
  176. package/dist/utils/errors/BaseError.d.ts +23 -0
  177. package/dist/utils/errors/GenerationError.d.ts +14 -0
  178. package/dist/utils/errors/TemplateNotFoundError.d.ts +13 -0
  179. package/dist/utils/errors/ValidationError.d.ts +13 -0
  180. package/dist/utils/errors/index.d.ts +12 -0
  181. package/dist/utils/factor-resolver.d.ts +294 -0
  182. package/dist/utils/granularity-helpers.d.ts +359 -0
  183. package/dist/utils/index.d.ts +20 -0
  184. package/dist/utils/performance.d.ts +26 -0
  185. package/dist/utils/stringify.d.ts +28 -0
  186. package/dist/validators/component-validator.d.ts +86 -0
  187. package/dist/validators/design-system-validator.d.ts +95 -0
  188. package/dist/validators/factor-validator.d.ts +101 -0
  189. package/dist/validators/index.d.ts +263 -0
  190. package/dist/validators/section-validator.d.ts +120 -0
  191. package/dist/validators/slot-validator.d.ts +161 -0
  192. package/dist/validators/tier-validator.d.ts +102 -0
  193. package/package.json +67 -0
  194. package/tests/16-factor-integration.test.d.ts +14 -0
  195. package/tests/16-factor-visual.test.d.ts +14 -0
  196. package/tests/5-level-integration.test.d.ts +14 -0
  197. package/tests/CodeUtils.test.d.ts +7 -0
  198. package/tests/DesignSystems.test.d.ts +7 -0
  199. package/tests/GenerateComponentValidator.test.d.ts +7 -0
  200. package/tests/Logger.test.d.ts +7 -0
  201. package/tests/StringUtils.test.d.ts +7 -0
  202. package/tests/StyleGenerator.test.d.ts +13 -0
  203. package/tests/Tiers.test.d.ts +7 -0
  204. package/tests/TokenRegistry.test.d.ts +14 -0
  205. package/tests/TokenStyleResolver.test.d.ts +13 -0
  206. package/tests/ValidationUtils.test.d.ts +7 -0
  207. package/tests/_pending_fix/Accordion.test.d.ts +13 -0
  208. package/tests/_pending_fix/Alert.test.d.ts +13 -0
  209. package/tests/_pending_fix/AlertDialog.test.d.ts +13 -0
  210. package/tests/_pending_fix/AspectRatio.test.d.ts +13 -0
  211. package/tests/_pending_fix/Autocomplete.test.d.ts +13 -0
  212. package/tests/_pending_fix/Avatar.test.d.ts +13 -0
  213. package/tests/_pending_fix/Badge.test.d.ts +13 -0
  214. package/tests/_pending_fix/Banner.test.d.ts +13 -0
  215. package/tests/_pending_fix/Box.test.d.ts +13 -0
  216. package/tests/_pending_fix/Breadcrumb.test.d.ts +13 -0
  217. package/tests/_pending_fix/Callout.test.d.ts +13 -0
  218. package/tests/_pending_fix/Card.test.d.ts +13 -0
  219. package/tests/_pending_fix/Center.test.d.ts +13 -0
  220. package/tests/_pending_fix/Checkbox.test.d.ts +13 -0
  221. package/tests/_pending_fix/Chip.test.d.ts +13 -0
  222. package/tests/_pending_fix/ColorPicker.test.d.ts +13 -0
  223. package/tests/_pending_fix/Combobox.test.d.ts +13 -0
  224. package/tests/_pending_fix/CommandPalette.test.d.ts +13 -0
  225. package/tests/_pending_fix/ConfirmationModal.test.d.ts +13 -0
  226. package/tests/_pending_fix/Container.test.d.ts +13 -0
  227. package/tests/_pending_fix/DataTable.test.d.ts +13 -0
  228. package/tests/_pending_fix/DatePicker.test.d.ts +13 -0
  229. package/tests/_pending_fix/DateRangePicker.test.d.ts +13 -0
  230. package/tests/_pending_fix/DateTimePicker.test.d.ts +13 -0
  231. package/tests/_pending_fix/Divider.test.d.ts +13 -0
  232. package/tests/_pending_fix/Drawer.test.d.ts +13 -0
  233. package/tests/_pending_fix/Dropdown.test.d.ts +13 -0
  234. package/tests/_pending_fix/EmptyState.test.d.ts +13 -0
  235. package/tests/_pending_fix/ErrorState.test.d.ts +13 -0
  236. package/tests/_pending_fix/FileDropzone.test.d.ts +13 -0
  237. package/tests/_pending_fix/FileUpload.test.d.ts +13 -0
  238. package/tests/_pending_fix/Flex.test.d.ts +13 -0
  239. package/tests/_pending_fix/Grid.test.d.ts +13 -0
  240. package/tests/_pending_fix/GridItem.test.d.ts +13 -0
  241. package/tests/_pending_fix/HStack.test.d.ts +13 -0
  242. package/tests/_pending_fix/Input.test.d.ts +13 -0
  243. package/tests/_pending_fix/InputCurrency.test.d.ts +13 -0
  244. package/tests/_pending_fix/InputGroup.test.d.ts +13 -0
  245. package/tests/_pending_fix/InputOTP.test.d.ts +13 -0
  246. package/tests/_pending_fix/InputPassword.test.d.ts +13 -0
  247. package/tests/_pending_fix/InputPhone.test.d.ts +13 -0
  248. package/tests/_pending_fix/InputSearch.test.d.ts +13 -0
  249. package/tests/_pending_fix/Link.test.d.ts +13 -0
  250. package/tests/_pending_fix/List.test.d.ts +13 -0
  251. package/tests/_pending_fix/LoadingOverlay.test.d.ts +13 -0
  252. package/tests/_pending_fix/Menu.test.d.ts +13 -0
  253. package/tests/_pending_fix/Modal.test.d.ts +13 -0
  254. package/tests/_pending_fix/MultiSelect.test.d.ts +13 -0
  255. package/tests/_pending_fix/NavGroup.test.d.ts +13 -0
  256. package/tests/_pending_fix/NavItem.test.d.ts +13 -0
  257. package/tests/_pending_fix/NavLink.test.d.ts +13 -0
  258. package/tests/_pending_fix/Navbar.test.d.ts +13 -0
  259. package/tests/_pending_fix/Notification.test.d.ts +13 -0
  260. package/tests/_pending_fix/NotificationBadge.test.d.ts +13 -0
  261. package/tests/_pending_fix/NumberInput.test.d.ts +13 -0
  262. package/tests/_pending_fix/Pagination.test.d.ts +13 -0
  263. package/tests/_pending_fix/Popover.test.d.ts +13 -0
  264. package/tests/_pending_fix/Progress.test.d.ts +13 -0
  265. package/tests/_pending_fix/ProgressCircle.test.d.ts +13 -0
  266. package/tests/_pending_fix/ProgressSteps.test.d.ts +13 -0
  267. package/tests/_pending_fix/Radio.test.d.ts +13 -0
  268. package/tests/_pending_fix/RangeSlider.test.d.ts +13 -0
  269. package/tests/_pending_fix/ResizablePanel.test.d.ts +13 -0
  270. package/tests/_pending_fix/ResultState.test.d.ts +13 -0
  271. package/tests/_pending_fix/ScrollArea.test.d.ts +13 -0
  272. package/tests/_pending_fix/Select.test.d.ts +14 -0
  273. package/tests/_pending_fix/Sheet.test.d.ts +13 -0
  274. package/tests/_pending_fix/Sidebar.test.d.ts +13 -0
  275. package/tests/_pending_fix/SimpleGrid.test.d.ts +13 -0
  276. package/tests/_pending_fix/Skeleton.test.d.ts +13 -0
  277. package/tests/_pending_fix/Slider.test.d.ts +13 -0
  278. package/tests/_pending_fix/Spacer.test.d.ts +13 -0
  279. package/tests/_pending_fix/Spinner.test.d.ts +13 -0
  280. package/tests/_pending_fix/Stack.test.d.ts +13 -0
  281. package/tests/_pending_fix/Stat.test.d.ts +13 -0
  282. package/tests/_pending_fix/Stepper.test.d.ts +14 -0
  283. package/tests/_pending_fix/Switch.test.d.ts +13 -0
  284. package/tests/_pending_fix/Table.test.d.ts +13 -0
  285. package/tests/_pending_fix/Tabs.test.d.ts +13 -0
  286. package/tests/_pending_fix/Textarea.test.d.ts +13 -0
  287. package/tests/_pending_fix/Timeline.test.d.ts +13 -0
  288. package/tests/_pending_fix/Toast.test.d.ts +14 -0
  289. package/tests/_pending_fix/Tooltip.test.d.ts +14 -0
  290. package/tests/_pending_fix/VStack.test.d.ts +13 -0
  291. package/tests/alert.test.d.ts +13 -0
  292. package/tests/badge.test.d.ts +13 -0
  293. package/tests/benchmarks/factor-resolution.bench.d.ts +41 -0
  294. package/tests/button.test.d.ts +16 -0
  295. package/tests/card.test.d.ts +19 -0
  296. package/tests/checkbox.test.d.ts +13 -0
  297. package/tests/component-16-factor-types.test.d.ts +13 -0
  298. package/tests/component-5level-integration.test.d.ts +14 -0
  299. package/tests/component-registry-ui.test.d.ts +13 -0
  300. package/tests/e2e/16-factor-visual.test.d.ts +14 -0
  301. package/tests/edge-cases.test.d.ts +14 -0
  302. package/tests/factor-17-24-integration.test.d.ts +14 -0
  303. package/tests/factor-17-24-performance.test.d.ts +14 -0
  304. package/tests/factor-validators.test.d.ts +13 -0
  305. package/tests/factors-1-6.test.d.ts +13 -0
  306. package/tests/factors-12-16.test.d.ts +13 -0
  307. package/tests/factors-17-24.test.d.ts +21 -0
  308. package/tests/factors-all.test.d.ts +13 -0
  309. package/tests/factors-registry.test.d.ts +11 -0
  310. package/tests/factors.test.d.ts +13 -0
  311. package/tests/granularity-types.test.d.ts +18 -0
  312. package/tests/groups.test.d.ts +14 -0
  313. package/tests/input.test.d.ts +16 -0
  314. package/tests/intents.test.d.ts +14 -0
  315. package/tests/memory-leak.test.d.ts +14 -0
  316. package/tests/modal.test.d.ts +19 -0
  317. package/tests/presets.test.d.ts +14 -0
  318. package/tests/radio.test.d.ts +13 -0
  319. package/tests/resolution-intents.test.d.ts +13 -0
  320. package/tests/resolution-presets.test.d.ts +13 -0
  321. package/tests/resolveProps.test.d.ts +14 -0
  322. package/tests/section-integration.test.d.ts +16 -0
  323. package/tests/section-types.test.d.ts +11 -0
  324. package/tests/setup.d.ts +13 -0
  325. package/tests/shorthands.test.d.ts +14 -0
  326. package/tests/switch.test.d.ts +13 -0
  327. package/tests/tabs.test.d.ts +13 -0
  328. package/tests/tiers-registry.test.d.ts +11 -0
  329. package/tests/useComponentStyles.test.d.ts +11 -0
  330. package/tests/useFactors.test.d.ts +13 -0
  331. package/tests/validators-invalid-input.test.d.ts +13 -0
  332. package/tsup.config.d.ts +11 -0
  333. package/vitest.config.d.ts +3 -0
@@ -0,0 +1,264 @@
1
+ /**
2
+ * Resolution Performance Utilities
3
+ *
4
+ * Provides caching, memoization, and performance optimization
5
+ * for the resolution engine.
6
+ *
7
+ * @packageDocumentation
8
+ * @module resolution/performance
9
+ * @since 2.1.0
10
+ *
11
+ * Powered by Nikkory
12
+ */
13
+ import type { MultiLevelProps, Factor24Config, ResolutionResult } from './types';
14
+ /**
15
+ * LRU Cache for resolution results.
16
+ * Caches resolved configs to avoid redundant resolution.
17
+ *
18
+ * @since 2.1.0
19
+ */
20
+ export declare class ResolutionCache {
21
+ private cache;
22
+ private readonly maxSize;
23
+ private hits;
24
+ private misses;
25
+ /**
26
+ * Create a new resolution cache.
27
+ *
28
+ * @param maxSize - Maximum cache size (default: 100)
29
+ */
30
+ constructor(maxSize?: number);
31
+ /**
32
+ * Generate cache key from props.
33
+ * Uses JSON stringification with sorted keys for consistency.
34
+ */
35
+ private generateKey;
36
+ /**
37
+ * Get cached result or resolve and cache.
38
+ *
39
+ * @param props - Input props
40
+ * @returns Cached or freshly resolved result
41
+ */
42
+ get(props: MultiLevelProps): ResolutionResult;
43
+ /**
44
+ * Check if props are cached.
45
+ */
46
+ has(props: MultiLevelProps): boolean;
47
+ /**
48
+ * Clear the cache.
49
+ */
50
+ clear(): void;
51
+ /**
52
+ * Get cache statistics.
53
+ */
54
+ getStats(): {
55
+ size: number;
56
+ maxSize: number;
57
+ hits: number;
58
+ misses: number;
59
+ hitRate: number;
60
+ };
61
+ /**
62
+ * Invalidate specific entry.
63
+ */
64
+ invalidate(props: MultiLevelProps): boolean;
65
+ }
66
+ /**
67
+ * Memoized resolve function.
68
+ * Caches results based on props.
69
+ *
70
+ * @param cacheSize - Maximum cache size
71
+ * @returns Memoized resolve function
72
+ *
73
+ * @example
74
+ * ```typescript
75
+ * const memoizedResolve = createMemoizedResolver(50);
76
+ * const result1 = memoizedResolve({ intent: 'cta' });
77
+ * const result2 = memoizedResolve({ intent: 'cta' }); // Cached
78
+ * ```
79
+ *
80
+ * @since 2.1.0
81
+ */
82
+ export declare function createMemoizedResolver(cacheSize?: number): (props: MultiLevelProps) => ResolutionResult;
83
+ /**
84
+ * Memoize a factor expansion function.
85
+ *
86
+ * @param fn - Function to memoize
87
+ * @param cacheSize - Maximum cache size
88
+ * @returns Memoized function
89
+ *
90
+ * @since 2.1.0
91
+ */
92
+ export declare function memoizeExpansion<T, R>(fn: (input: T) => R, cacheSize?: number): (input: T) => R;
93
+ /**
94
+ * Resolve multiple props in batch.
95
+ * More efficient than resolving one by one.
96
+ *
97
+ * @param propsArray - Array of props to resolve
98
+ * @returns Array of resolution results
99
+ *
100
+ * @example
101
+ * ```typescript
102
+ * const results = batchResolve([
103
+ * { intent: 'cta' },
104
+ * { intent: 'primary' },
105
+ * { look: 'bold' },
106
+ * ]);
107
+ * ```
108
+ *
109
+ * @since 2.1.0
110
+ */
111
+ export declare function batchResolve(propsArray: MultiLevelProps[]): ResolutionResult[];
112
+ /**
113
+ * Resolve props asynchronously.
114
+ * Useful for large batch operations.
115
+ *
116
+ * @param props - Props to resolve
117
+ * @returns Promise of resolution result
118
+ *
119
+ * @since 2.1.0
120
+ */
121
+ export declare function resolveAsync(props: MultiLevelProps): Promise<ResolutionResult>;
122
+ /**
123
+ * Resolve batch asynchronously with concurrency control.
124
+ *
125
+ * @param propsArray - Array of props
126
+ * @param concurrency - Max concurrent resolutions
127
+ * @returns Promise of results
128
+ *
129
+ * @since 2.1.0
130
+ */
131
+ export declare function batchResolveAsync(propsArray: MultiLevelProps[], concurrency?: number): Promise<ResolutionResult[]>;
132
+ /**
133
+ * Create a lazy resolver that defers resolution until needed.
134
+ *
135
+ * @param props - Props to resolve
136
+ * @returns Object with lazy access to config
137
+ *
138
+ * @example
139
+ * ```typescript
140
+ * const lazy = createLazyResolver({ intent: 'cta' });
141
+ * // Resolution happens only when accessed
142
+ * console.log(lazy.config.variant);
143
+ * ```
144
+ *
145
+ * @since 2.1.0
146
+ */
147
+ export declare function createLazyResolver(props: MultiLevelProps): {
148
+ readonly config: Partial<Factor24Config>;
149
+ readonly isResolved: boolean;
150
+ resolve: () => ResolutionResult;
151
+ };
152
+ /**
153
+ * Performance metrics for resolution.
154
+ *
155
+ * @since 2.1.0
156
+ */
157
+ export interface PerformanceMetrics {
158
+ /** Number of resolutions */
159
+ count: number;
160
+ /** Total time in ms */
161
+ totalTime: number;
162
+ /** Average time per resolution in ms */
163
+ averageTime: number;
164
+ /** Min time in ms */
165
+ minTime: number;
166
+ /** Max time in ms */
167
+ maxTime: number;
168
+ /** Resolutions per second */
169
+ throughput: number;
170
+ }
171
+ /**
172
+ * Performance profiler for resolution.
173
+ *
174
+ * @since 2.1.0
175
+ */
176
+ export declare class ResolutionProfiler {
177
+ private measurements;
178
+ private startTime;
179
+ /**
180
+ * Start measuring.
181
+ */
182
+ start(): void;
183
+ /**
184
+ * End measurement and record.
185
+ */
186
+ end(): number;
187
+ /**
188
+ * Measure a resolution.
189
+ */
190
+ measure(props: MultiLevelProps): ResolutionResult;
191
+ /**
192
+ * Get performance metrics.
193
+ */
194
+ getMetrics(): PerformanceMetrics;
195
+ /**
196
+ * Reset measurements.
197
+ */
198
+ reset(): void;
199
+ /**
200
+ * Run benchmark with N iterations.
201
+ */
202
+ benchmark(props: MultiLevelProps, iterations?: number): PerformanceMetrics;
203
+ }
204
+ /**
205
+ * Global resolution cache instance.
206
+ * Use for application-wide caching.
207
+ *
208
+ * @since 2.1.0
209
+ */
210
+ export declare const globalCache: ResolutionCache;
211
+ /**
212
+ * Global memoized resolver.
213
+ *
214
+ * @since 2.1.0
215
+ */
216
+ export declare const memoizedResolve: (props: MultiLevelProps) => ResolutionResult;
217
+ /**
218
+ * Global profiler instance.
219
+ *
220
+ * @since 2.1.0
221
+ */
222
+ export declare const profiler: ResolutionProfiler;
223
+ /**
224
+ * Check if two configs are equal.
225
+ * Useful for avoiding re-renders.
226
+ *
227
+ * @param config1 - First config
228
+ * @param config2 - Second config
229
+ * @returns True if equal
230
+ *
231
+ * @since 2.1.0
232
+ */
233
+ export declare function areConfigsEqual(config1: Partial<Factor24Config>, config2: Partial<Factor24Config>): boolean;
234
+ /**
235
+ * Create a shallow comparison function for configs.
236
+ * Optimized for repeated comparisons.
237
+ *
238
+ * @param baseline - Baseline config to compare against
239
+ * @returns Comparison function
240
+ *
241
+ * @since 2.1.0
242
+ */
243
+ export declare function createConfigComparator(baseline: Partial<Factor24Config>): (config: Partial<Factor24Config>) => boolean;
244
+ /**
245
+ * Resolve only specific factors from props.
246
+ * More efficient when you only need a subset.
247
+ *
248
+ * @param props - Input props
249
+ * @param factors - Factors to resolve
250
+ * @returns Partial config with only requested factors
251
+ *
252
+ * @example
253
+ * ```typescript
254
+ * const partial = resolveFactors(
255
+ * { intent: 'cta', look: 'bold' },
256
+ * ['variant', 'colorScheme']
257
+ * );
258
+ * // Only variant and colorScheme are resolved
259
+ * ```
260
+ *
261
+ * @since 2.1.0
262
+ */
263
+ export declare function resolveFactors<K extends keyof Factor24Config>(props: MultiLevelProps, factors: K[]): Pick<Factor24Config, K>;
264
+ //# sourceMappingURL=performance.d.ts.map
@@ -0,0 +1,243 @@
1
+ /**
2
+ * Button Presets - Pre-configured 24-Factor Configurations
3
+ *
4
+ * Named presets for buttons covering common use cases:
5
+ * - Hero/CTA presets for marketing and conversion
6
+ * - Form presets for actions (submit, cancel, delete)
7
+ * - Navigation presets for menus and links
8
+ * - Icon presets for icon-only buttons
9
+ * - Special presets for unique styles
10
+ *
11
+ * @packageDocumentation
12
+ * @module resolution/presets/button-presets
13
+ * @since 2.1.0
14
+ *
15
+ * Powered by Nikkory
16
+ */
17
+ import type { PresetDefinition } from '../types';
18
+ /**
19
+ * Hero Primary Button Preset
20
+ *
21
+ * High-impact primary CTA for hero sections and landing pages.
22
+ * Features bold styling, prominent elevation, and engaging animation.
23
+ *
24
+ * @since 2.1.0
25
+ */
26
+ export declare const BUTTON_HERO_PRIMARY: PresetDefinition;
27
+ /**
28
+ * Hero Secondary Button Preset
29
+ *
30
+ * Secondary CTA for hero sections, typically paired with primary.
31
+ * Uses outlined style with subtle animation.
32
+ *
33
+ * @since 2.1.0
34
+ */
35
+ export declare const BUTTON_HERO_SECONDARY: PresetDefinition;
36
+ /**
37
+ * CTA Gradient Button Preset
38
+ *
39
+ * Eye-catching gradient CTA for maximum visual impact.
40
+ * Features premium feel with elevated shadow and smooth animation.
41
+ *
42
+ * @since 2.1.0
43
+ */
44
+ export declare const BUTTON_CTA_GRADIENT: PresetDefinition;
45
+ /**
46
+ * CTA Minimal Button Preset
47
+ *
48
+ * Clean, minimal CTA for sophisticated designs.
49
+ * Features subtle animation and refined aesthetics.
50
+ *
51
+ * @since 2.1.0
52
+ */
53
+ export declare const BUTTON_CTA_MINIMAL: PresetDefinition;
54
+ /**
55
+ * Form Submit Button Preset
56
+ *
57
+ * Primary form submission button.
58
+ * Uses accessible styling with clear visual hierarchy.
59
+ *
60
+ * @since 2.1.0
61
+ */
62
+ export declare const BUTTON_FORM_SUBMIT: PresetDefinition;
63
+ /**
64
+ * Form Cancel Button Preset
65
+ *
66
+ * Cancel/dismiss button for forms.
67
+ * Uses subtle styling to avoid accidental clicks.
68
+ *
69
+ * @since 2.1.0
70
+ */
71
+ export declare const BUTTON_FORM_CANCEL: PresetDefinition;
72
+ /**
73
+ * Form Delete Button Preset
74
+ *
75
+ * Destructive action button for delete operations.
76
+ * Uses danger color scheme with confirmation-ready styling.
77
+ *
78
+ * @since 2.1.0
79
+ */
80
+ export declare const BUTTON_FORM_DELETE: PresetDefinition;
81
+ /**
82
+ * Form Save Button Preset
83
+ *
84
+ * Save action button for forms and editors.
85
+ * Uses success-oriented styling with feedback animation.
86
+ *
87
+ * @since 2.1.0
88
+ */
89
+ export declare const BUTTON_FORM_SAVE: PresetDefinition;
90
+ /**
91
+ * Form Reset Button Preset
92
+ *
93
+ * Reset/clear button for forms.
94
+ * Uses muted styling with warning undertones.
95
+ *
96
+ * @since 2.1.0
97
+ */
98
+ export declare const BUTTON_FORM_RESET: PresetDefinition;
99
+ /**
100
+ * Navigation Menu Button Preset
101
+ *
102
+ * Standard navigation menu item button.
103
+ * Uses minimal styling with clear hover states.
104
+ *
105
+ * @since 2.1.0
106
+ */
107
+ export declare const BUTTON_NAV_MENU: PresetDefinition;
108
+ /**
109
+ * Navigation Link Button Preset
110
+ *
111
+ * Link-styled button for navigation.
112
+ * Appears as a text link with button semantics.
113
+ *
114
+ * @since 2.1.0
115
+ */
116
+ export declare const BUTTON_NAV_LINK: PresetDefinition;
117
+ /**
118
+ * Breadcrumb Button Preset
119
+ *
120
+ * Breadcrumb navigation button.
121
+ * Compact styling for navigation paths.
122
+ *
123
+ * @since 2.1.0
124
+ */
125
+ export declare const BUTTON_BREADCRUMB: PresetDefinition;
126
+ /**
127
+ * Tab Button Preset
128
+ *
129
+ * Tab navigation button.
130
+ * Clear active/inactive states for tab interfaces.
131
+ *
132
+ * @since 2.1.0
133
+ */
134
+ export declare const BUTTON_TAB: PresetDefinition;
135
+ /**
136
+ * Icon Button Default Preset
137
+ *
138
+ * Standard icon-only button.
139
+ * Square shape optimized for icons.
140
+ *
141
+ * @since 2.1.0
142
+ */
143
+ export declare const BUTTON_ICON_DEFAULT: PresetDefinition;
144
+ /**
145
+ * Icon Button Circle Preset
146
+ *
147
+ * Circular icon button.
148
+ * Perfect for FABs and action buttons.
149
+ *
150
+ * @since 2.1.0
151
+ */
152
+ export declare const BUTTON_ICON_CIRCLE: PresetDefinition;
153
+ /**
154
+ * Icon Button Subtle Preset
155
+ *
156
+ * Subtle icon button for toolbars.
157
+ * Minimal visual presence until hovered.
158
+ *
159
+ * @since 2.1.0
160
+ */
161
+ export declare const BUTTON_ICON_SUBTLE: PresetDefinition;
162
+ /**
163
+ * Compact Button Preset
164
+ *
165
+ * Compact button for dense UIs.
166
+ * Minimal padding with clear hit targets.
167
+ *
168
+ * @since 2.1.0
169
+ */
170
+ export declare const BUTTON_COMPACT: PresetDefinition;
171
+ /**
172
+ * Pill Button Preset
173
+ *
174
+ * Pill-shaped button for tags and filters.
175
+ * Fully rounded ends with comfortable spacing.
176
+ *
177
+ * @since 2.1.0
178
+ */
179
+ export declare const BUTTON_PILL: PresetDefinition;
180
+ /**
181
+ * Loading Button Preset
182
+ *
183
+ * Button in loading state.
184
+ * Includes loading animation and disabled interaction.
185
+ *
186
+ * @since 2.1.0
187
+ */
188
+ export declare const BUTTON_LOADING: PresetDefinition;
189
+ /**
190
+ * Floating Action Button (FAB) Preset
191
+ *
192
+ * Material Design-style floating action button.
193
+ * Prominent elevation and circular shape.
194
+ *
195
+ * @since 2.1.0
196
+ */
197
+ export declare const BUTTON_FAB: PresetDefinition;
198
+ /**
199
+ * Split Button Preset
200
+ *
201
+ * Button with dropdown trigger.
202
+ * Used for primary action with additional options.
203
+ *
204
+ * @since 2.1.0
205
+ */
206
+ export declare const BUTTON_SPLIT: PresetDefinition;
207
+ /**
208
+ * All button presets as an array.
209
+ *
210
+ * @since 2.1.0
211
+ */
212
+ export declare const BUTTON_PRESETS: ReadonlyArray<PresetDefinition>;
213
+ /**
214
+ * Button presets as a map for quick lookup.
215
+ *
216
+ * @since 2.1.0
217
+ */
218
+ export declare const BUTTON_PRESETS_MAP: ReadonlyMap<string, PresetDefinition>;
219
+ /**
220
+ * Get a button preset by ID.
221
+ *
222
+ * @param id - The preset ID
223
+ * @returns The preset definition or undefined if not found
224
+ * @since 2.1.0
225
+ */
226
+ export declare function getButtonPreset(id: string): PresetDefinition | undefined;
227
+ /**
228
+ * Get all button presets matching given tags.
229
+ *
230
+ * @param tags - Tags to match (ANY match)
231
+ * @returns Array of matching presets
232
+ * @since 2.1.0
233
+ */
234
+ export declare function getButtonPresetsByTags(tags: string[]): PresetDefinition[];
235
+ /**
236
+ * Check if a preset ID is a valid button preset.
237
+ *
238
+ * @param id - The preset ID to check
239
+ * @returns True if the ID is a valid button preset
240
+ * @since 2.1.0
241
+ */
242
+ export declare function isButtonPreset(id: string): boolean;
243
+ //# sourceMappingURL=button-presets.d.ts.map
@@ -0,0 +1,216 @@
1
+ /**
2
+ * Card Presets - Pre-configured 24-Factor Configurations
3
+ *
4
+ * Named presets for cards covering common use cases:
5
+ * - Content cards for articles and posts
6
+ * - Product cards for e-commerce
7
+ * - Profile cards for user information
8
+ * - Interactive cards with hover effects
9
+ * - Special cards for unique layouts
10
+ *
11
+ * @packageDocumentation
12
+ * @module resolution/presets/card-presets
13
+ * @since 2.1.0
14
+ *
15
+ * Powered by Nikkory
16
+ */
17
+ import type { PresetDefinition } from '../types';
18
+ /**
19
+ * Content Card Default Preset
20
+ *
21
+ * Standard content card for articles and blog posts.
22
+ * Clean layout with subtle elevation.
23
+ *
24
+ * @since 2.1.0
25
+ */
26
+ export declare const CARD_CONTENT_DEFAULT: PresetDefinition;
27
+ /**
28
+ * Content Card Featured Preset
29
+ *
30
+ * Featured content card with larger presence.
31
+ * Higher elevation and prominent styling.
32
+ *
33
+ * @since 2.1.0
34
+ */
35
+ export declare const CARD_CONTENT_FEATURED: PresetDefinition;
36
+ /**
37
+ * Content Card Minimal Preset
38
+ *
39
+ * Minimal content card with clean aesthetics.
40
+ * No elevation, subtle borders.
41
+ *
42
+ * @since 2.1.0
43
+ */
44
+ export declare const CARD_CONTENT_MINIMAL: PresetDefinition;
45
+ /**
46
+ * Product Card Default Preset
47
+ *
48
+ * Standard product card for e-commerce listings.
49
+ * Optimized for product images and pricing.
50
+ *
51
+ * @since 2.1.0
52
+ */
53
+ export declare const CARD_PRODUCT_DEFAULT: PresetDefinition;
54
+ /**
55
+ * Product Card Featured Preset
56
+ *
57
+ * Featured product card with promotional styling.
58
+ * Eye-catching design for special offers.
59
+ *
60
+ * @since 2.1.0
61
+ */
62
+ export declare const CARD_PRODUCT_FEATURED: PresetDefinition;
63
+ /**
64
+ * Product Card Compact Preset
65
+ *
66
+ * Compact product card for grid layouts.
67
+ * Smaller footprint for dense product listings.
68
+ *
69
+ * @since 2.1.0
70
+ */
71
+ export declare const CARD_PRODUCT_COMPACT: PresetDefinition;
72
+ /**
73
+ * Profile Card Default Preset
74
+ *
75
+ * Standard profile card for user information.
76
+ * Centered layout optimized for avatars.
77
+ *
78
+ * @since 2.1.0
79
+ */
80
+ export declare const CARD_PROFILE_DEFAULT: PresetDefinition;
81
+ /**
82
+ * Profile Card Horizontal Preset
83
+ *
84
+ * Horizontal profile card for team listings.
85
+ * Side-by-side layout with avatar and info.
86
+ *
87
+ * @since 2.1.0
88
+ */
89
+ export declare const CARD_PROFILE_HORIZONTAL: PresetDefinition;
90
+ /**
91
+ * Profile Card Compact Preset
92
+ *
93
+ * Compact profile card for inline displays.
94
+ * Minimal styling for lists and mentions.
95
+ *
96
+ * @since 2.1.0
97
+ */
98
+ export declare const CARD_PROFILE_COMPACT: PresetDefinition;
99
+ /**
100
+ * Interactive Card Default Preset
101
+ *
102
+ * Clickable card with hover effects.
103
+ * Clear interactive affordance.
104
+ *
105
+ * @since 2.1.0
106
+ */
107
+ export declare const CARD_INTERACTIVE_DEFAULT: PresetDefinition;
108
+ /**
109
+ * Interactive Card Selection Preset
110
+ *
111
+ * Selectable card for multi-select interfaces.
112
+ * Clear selected/unselected states.
113
+ *
114
+ * @since 2.1.0
115
+ */
116
+ export declare const CARD_INTERACTIVE_SELECTION: PresetDefinition;
117
+ /**
118
+ * Interactive Card Draggable Preset
119
+ *
120
+ * Draggable card for sortable lists.
121
+ * Visual feedback for drag interactions.
122
+ *
123
+ * @since 2.1.0
124
+ */
125
+ export declare const CARD_INTERACTIVE_DRAGGABLE: PresetDefinition;
126
+ /**
127
+ * Glass Card Preset
128
+ *
129
+ * Glassmorphism-style card with frosted effect.
130
+ * Modern aesthetic for overlay content.
131
+ *
132
+ * @since 2.1.0
133
+ */
134
+ export declare const CARD_GLASS: PresetDefinition;
135
+ /**
136
+ * Neumorphic Card Preset
137
+ *
138
+ * Neumorphism-style card with soft shadows.
139
+ * Subtle depth effect.
140
+ *
141
+ * @since 2.1.0
142
+ */
143
+ export declare const CARD_NEUMORPHIC: PresetDefinition;
144
+ /**
145
+ * Stats Card Preset
146
+ *
147
+ * Statistics/metrics card for dashboards.
148
+ * Optimized for number display.
149
+ *
150
+ * @since 2.1.0
151
+ */
152
+ export declare const CARD_STATS: PresetDefinition;
153
+ /**
154
+ * Pricing Card Preset
155
+ *
156
+ * Pricing tier card for subscription pages.
157
+ * Prominent CTA placement.
158
+ *
159
+ * @since 2.1.0
160
+ */
161
+ export declare const CARD_PRICING: PresetDefinition;
162
+ /**
163
+ * Testimonial Card Preset
164
+ *
165
+ * Customer testimonial card.
166
+ * Quote-friendly layout.
167
+ *
168
+ * @since 2.1.0
169
+ */
170
+ export declare const CARD_TESTIMONIAL: PresetDefinition;
171
+ /**
172
+ * Notification Card Preset
173
+ *
174
+ * Notification/alert card with status colors.
175
+ * Compact and informative.
176
+ *
177
+ * @since 2.1.0
178
+ */
179
+ export declare const CARD_NOTIFICATION: PresetDefinition;
180
+ /**
181
+ * All card presets as an array.
182
+ *
183
+ * @since 2.1.0
184
+ */
185
+ export declare const CARD_PRESETS: ReadonlyArray<PresetDefinition>;
186
+ /**
187
+ * Card presets as a map for quick lookup.
188
+ *
189
+ * @since 2.1.0
190
+ */
191
+ export declare const CARD_PRESETS_MAP: ReadonlyMap<string, PresetDefinition>;
192
+ /**
193
+ * Get a card preset by ID.
194
+ *
195
+ * @param id - The preset ID
196
+ * @returns The preset definition or undefined if not found
197
+ * @since 2.1.0
198
+ */
199
+ export declare function getCardPreset(id: string): PresetDefinition | undefined;
200
+ /**
201
+ * Get all card presets matching given tags.
202
+ *
203
+ * @param tags - Tags to match (ANY match)
204
+ * @returns Array of matching presets
205
+ * @since 2.1.0
206
+ */
207
+ export declare function getCardPresetsByTags(tags: string[]): PresetDefinition[];
208
+ /**
209
+ * Check if a preset ID is a valid card preset.
210
+ *
211
+ * @param id - The preset ID to check
212
+ * @returns True if the ID is a valid card preset
213
+ * @since 2.1.0
214
+ */
215
+ export declare function isCardPreset(id: string): boolean;
216
+ //# sourceMappingURL=card-presets.d.ts.map