@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,298 @@
1
+ /**
2
+ * Section Storage Types
3
+ * Type definitions for hybrid storage (JSON + Cloud)
4
+ *
5
+ * @packageDocumentation
6
+ * @module types/section-storage
7
+ * @since 4.0.0
8
+ *
9
+ * Powered by Nikkory
10
+ */
11
+ import type { SectionTemplate, TemplateVisibility } from './section-template.types';
12
+ /**
13
+ * Storage configuration based on visibility
14
+ *
15
+ * @remarks
16
+ * Storage location is determined by template visibility:
17
+ * - private: JSON file only (local machine, never synced)
18
+ * - team: JSON + Cloud sync to team workspace
19
+ * - public: JSON + Cloud sync + Marketplace listing
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * const config: StorageConfig = {
24
+ * visibility: 'team',
25
+ * localPath: '~/.nikkory/templates/hero-team-001.json',
26
+ * cloudSyncEnabled: true,
27
+ * lastSyncedAt: new Date('2024-01-15T10:30:00Z')
28
+ * };
29
+ * ```
30
+ */
31
+ export interface StorageConfig {
32
+ /** Template visibility (determines storage behavior) */
33
+ readonly visibility: TemplateVisibility;
34
+ /** Local file path for JSON storage */
35
+ readonly localPath: string;
36
+ /** Whether cloud sync is enabled */
37
+ readonly cloudSyncEnabled: boolean;
38
+ /** Last successful sync timestamp */
39
+ readonly lastSyncedAt?: Date;
40
+ }
41
+ /**
42
+ * Local storage metadata
43
+ */
44
+ export interface LocalStorageMetadata {
45
+ /** File path */
46
+ readonly path: string;
47
+ /** File size in bytes */
48
+ readonly size: number;
49
+ /** Created timestamp */
50
+ readonly createdAt: Date;
51
+ /** Modified timestamp */
52
+ readonly modifiedAt: Date;
53
+ /** File checksum (MD5) */
54
+ readonly checksum: string;
55
+ }
56
+ /**
57
+ * Local storage entry
58
+ */
59
+ export interface LocalStorageEntry {
60
+ /** Template data */
61
+ readonly template: SectionTemplate;
62
+ /** Storage metadata */
63
+ readonly metadata: LocalStorageMetadata;
64
+ /** Whether file is dirty (unsaved changes) */
65
+ readonly isDirty: boolean;
66
+ }
67
+ /**
68
+ * Local storage directory configuration
69
+ */
70
+ export interface LocalStorageConfig {
71
+ /** Base directory for templates */
72
+ readonly baseDir: string;
73
+ /** Subdirectory for private templates */
74
+ readonly privateDir: string;
75
+ /** Subdirectory for team templates */
76
+ readonly teamDir: string;
77
+ /** Subdirectory for public templates */
78
+ readonly publicDir: string;
79
+ /** Maximum storage size in bytes */
80
+ readonly maxStorageSize: number;
81
+ /** Whether to auto-backup on save */
82
+ readonly autoBackup: boolean;
83
+ }
84
+ /**
85
+ * Cloud sync status
86
+ */
87
+ export type SyncStatus = 'idle' | 'syncing' | 'synced' | 'error' | 'conflict';
88
+ /**
89
+ * Cloud sync metadata
90
+ */
91
+ export interface CloudSyncMetadata {
92
+ /** Cloud storage ID */
93
+ readonly cloudId: string;
94
+ /** Sync status */
95
+ readonly status: SyncStatus;
96
+ /** Last sync attempt timestamp */
97
+ readonly lastAttemptAt?: Date;
98
+ /** Last successful sync timestamp */
99
+ readonly lastSuccessAt?: Date;
100
+ /** Sync error message (if status is 'error') */
101
+ readonly errorMessage?: string;
102
+ /** Server version (for conflict detection) */
103
+ readonly serverVersion?: number;
104
+ /** Local version */
105
+ readonly localVersion: number;
106
+ }
107
+ /**
108
+ * Sync conflict information
109
+ */
110
+ export interface SyncConflict {
111
+ /** Template ID with conflict */
112
+ readonly templateId: string;
113
+ /** Local version */
114
+ readonly localTemplate: SectionTemplate;
115
+ /** Server version */
116
+ readonly serverTemplate: SectionTemplate;
117
+ /** Conflict detected timestamp */
118
+ readonly detectedAt: Date;
119
+ /** Resolution status */
120
+ readonly resolved: boolean;
121
+ /** Resolution choice (if resolved) */
122
+ readonly resolution?: 'keep-local' | 'keep-server' | 'merge';
123
+ }
124
+ /**
125
+ * Cloud sync configuration
126
+ */
127
+ export interface CloudSyncConfig {
128
+ /** API endpoint for sync */
129
+ readonly apiEndpoint: string;
130
+ /** Sync interval in milliseconds */
131
+ readonly syncIntervalMs: number;
132
+ /** Whether auto-sync is enabled */
133
+ readonly autoSyncEnabled: boolean;
134
+ /** Retry count on failure */
135
+ readonly maxRetries: number;
136
+ /** Retry delay in milliseconds */
137
+ readonly retryDelayMs: number;
138
+ }
139
+ /**
140
+ * Save template input
141
+ */
142
+ export interface SaveTemplateInput {
143
+ /** Template to save */
144
+ readonly template: SectionTemplate;
145
+ /** Whether to force overwrite */
146
+ readonly overwrite?: boolean;
147
+ /** Whether to sync to cloud immediately */
148
+ readonly syncImmediately?: boolean;
149
+ }
150
+ /**
151
+ * Save template result
152
+ */
153
+ export interface SaveTemplateResult {
154
+ /** Whether save was successful */
155
+ readonly success: boolean;
156
+ /** Saved template ID */
157
+ readonly templateId: string;
158
+ /** Local file path */
159
+ readonly localPath: string;
160
+ /** Whether cloud sync was triggered */
161
+ readonly syncTriggered: boolean;
162
+ /** Error message (if not successful) */
163
+ readonly error?: string;
164
+ }
165
+ /**
166
+ * Load template input
167
+ */
168
+ export interface LoadTemplateInput {
169
+ /** Template ID to load */
170
+ readonly templateId: string;
171
+ /** Whether to prefer cloud version */
172
+ readonly preferCloud?: boolean;
173
+ /** Whether to validate after load */
174
+ readonly validate?: boolean;
175
+ }
176
+ /**
177
+ * Load template result
178
+ */
179
+ export interface LoadTemplateResult {
180
+ /** Whether load was successful */
181
+ readonly success: boolean;
182
+ /** Loaded template (if successful) */
183
+ readonly template?: SectionTemplate;
184
+ /** Source of loaded template */
185
+ readonly source: 'local' | 'cloud';
186
+ /** Storage metadata */
187
+ readonly metadata?: LocalStorageMetadata;
188
+ /** Error message (if not successful) */
189
+ readonly error?: string;
190
+ }
191
+ /**
192
+ * Delete template input
193
+ */
194
+ export interface DeleteTemplateInput {
195
+ /** Template ID to delete */
196
+ readonly templateId: string;
197
+ /** Whether to delete from cloud as well */
198
+ readonly deleteFromCloud?: boolean;
199
+ }
200
+ /**
201
+ * Delete template result
202
+ */
203
+ export interface DeleteTemplateResult {
204
+ /** Whether delete was successful */
205
+ readonly success: boolean;
206
+ /** Template ID deleted */
207
+ readonly templateId: string;
208
+ /** Whether cloud deletion was successful */
209
+ readonly cloudDeleted?: boolean;
210
+ /** Error message (if not successful) */
211
+ readonly error?: string;
212
+ }
213
+ /**
214
+ * Storage event types
215
+ */
216
+ export type StorageEventType = 'template-saved' | 'template-loaded' | 'template-deleted' | 'sync-started' | 'sync-completed' | 'sync-failed' | 'conflict-detected' | 'conflict-resolved';
217
+ /**
218
+ * Storage event
219
+ */
220
+ export interface StorageEvent {
221
+ /** Event type */
222
+ readonly type: StorageEventType;
223
+ /** Template ID (if applicable) */
224
+ readonly templateId?: string;
225
+ /** Timestamp */
226
+ readonly timestamp: Date;
227
+ /** Event payload */
228
+ readonly payload?: Record<string, unknown>;
229
+ }
230
+ /**
231
+ * Storage manager interface
232
+ *
233
+ * @remarks
234
+ * Main interface for hybrid storage operations.
235
+ * Implementations handle visibility-based routing automatically.
236
+ */
237
+ export interface IStorageManager {
238
+ /**
239
+ * Save template to storage
240
+ * @param input Save input
241
+ * @returns Save result
242
+ */
243
+ saveTemplate(input: SaveTemplateInput): Promise<SaveTemplateResult>;
244
+ /**
245
+ * Load template from storage
246
+ * @param input Load input
247
+ * @returns Load result
248
+ */
249
+ loadTemplate(input: LoadTemplateInput): Promise<LoadTemplateResult>;
250
+ /**
251
+ * Delete template from storage
252
+ * @param input Delete input
253
+ * @returns Delete result
254
+ */
255
+ deleteTemplate(input: DeleteTemplateInput): Promise<DeleteTemplateResult>;
256
+ /**
257
+ * List all templates matching criteria
258
+ * @param visibility Filter by visibility (optional)
259
+ * @returns Array of template IDs
260
+ */
261
+ listTemplates(visibility?: TemplateVisibility): Promise<readonly string[]>;
262
+ /**
263
+ * Trigger cloud sync for all pending changes
264
+ * @returns Sync result
265
+ */
266
+ syncToCloud(): Promise<{
267
+ synced: number;
268
+ failed: number;
269
+ conflicts: number;
270
+ }>;
271
+ /**
272
+ * Get storage statistics
273
+ * @returns Storage statistics
274
+ */
275
+ getStats(): Promise<StorageStats>;
276
+ }
277
+ /**
278
+ * Storage statistics
279
+ */
280
+ export interface StorageStats {
281
+ /** Total templates count */
282
+ readonly totalTemplates: number;
283
+ /** Private templates count */
284
+ readonly privateCount: number;
285
+ /** Team templates count */
286
+ readonly teamCount: number;
287
+ /** Public templates count */
288
+ readonly publicCount: number;
289
+ /** Total storage size in bytes */
290
+ readonly totalSize: number;
291
+ /** Last sync timestamp */
292
+ readonly lastSyncAt?: Date;
293
+ /** Pending sync count */
294
+ readonly pendingSyncCount: number;
295
+ /** Unresolved conflicts count */
296
+ readonly conflictCount: number;
297
+ }
298
+ //# sourceMappingURL=section-storage.types.d.ts.map
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Section Template Types
3
+ * Type definitions for section templates with metadata
4
+ *
5
+ * @packageDocumentation
6
+ * @module types/section-template
7
+ * @since 4.0.0
8
+ *
9
+ * Powered by Nikkory
10
+ */
11
+ import type { SectionConfig, SectionFactors } from './section.types';
12
+ /**
13
+ * Template visibility determines storage location and sharing
14
+ *
15
+ * @remarks
16
+ * - private: JSON file only (local machine)
17
+ * - team: JSON + Cloud sync to team workspace
18
+ * - public: JSON + Cloud sync + Marketplace listing
19
+ */
20
+ export type TemplateVisibility = 'private' | 'team' | 'public';
21
+ /**
22
+ * Template Metadata - 8 Fields
23
+ *
24
+ * @remarks
25
+ * Metadata for section templates, enabling discovery, versioning,
26
+ * and proper attribution.
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * const metadata: TemplateMetadata = {
31
+ * templateId: 'hero-gradient-001',
32
+ * templateName: 'Gradient Hero Section',
33
+ * description: 'A hero section with gradient background and CTA',
34
+ * author: 'nikkory-team',
35
+ * version: '1.0.0',
36
+ * tags: ['hero', 'gradient', 'cta', 'landing'],
37
+ * visibility: 'public',
38
+ * thumbnail: 'https://cdn.nikkory.com/templates/hero-gradient.png'
39
+ * };
40
+ * ```
41
+ */
42
+ export interface TemplateMetadata {
43
+ /** Unique template identifier (e.g., 'hero-gradient-001') */
44
+ readonly templateId: string;
45
+ /** Human-readable template name */
46
+ readonly templateName: string;
47
+ /** Template description for discovery */
48
+ readonly description: string;
49
+ /** Template author (username or organization) */
50
+ readonly author: string;
51
+ /** Semantic version (e.g., '1.0.0') */
52
+ readonly version: string;
53
+ /** Search tags for discovery */
54
+ readonly tags: readonly string[];
55
+ /** Visibility: private (local only), team, public */
56
+ readonly visibility: TemplateVisibility;
57
+ /** Preview thumbnail URL (optional) */
58
+ readonly thumbnail?: string;
59
+ }
60
+ /**
61
+ * Complete SectionTemplate - SectionConfig + 8 Metadata fields
62
+ *
63
+ * @remarks
64
+ * Extends SectionConfig with TemplateMetadata for complete template definition.
65
+ * Total fields: 14 (SectionConfig) + 8 (TemplateMetadata) = 22 fields
66
+ *
67
+ * @example
68
+ * ```typescript
69
+ * const template: SectionTemplate = {
70
+ * // SectionConfig (14 fields)
71
+ * sectionId: 'hero-1',
72
+ * sectionType: 'hero',
73
+ * title: 'Welcome to Our Platform',
74
+ * subtitle: 'Build amazing experiences',
75
+ * designSystem: 'material-design',
76
+ * tier: 'enterprise',
77
+ * layout: 'flex',
78
+ * columns: 2,
79
+ * spacing: 'lg',
80
+ * slots: [],
81
+ * itemCount: 1,
82
+ * showCta: true,
83
+ * showMedia: true,
84
+ * styleOverrides: undefined,
85
+ *
86
+ * // TemplateMetadata (8 fields)
87
+ * templateId: 'hero-material-001',
88
+ * templateName: 'Material Hero',
89
+ * description: 'Material Design 3 hero section',
90
+ * author: 'nikkory-team',
91
+ * version: '1.0.0',
92
+ * tags: ['hero', 'material', 'enterprise'],
93
+ * visibility: 'public',
94
+ * thumbnail: 'https://cdn.nikkory.com/templates/hero-material.png'
95
+ * };
96
+ * ```
97
+ */
98
+ export interface SectionTemplate extends SectionConfig, TemplateMetadata {
99
+ }
100
+ /**
101
+ * Section template with factors included
102
+ *
103
+ * @remarks
104
+ * Complete template definition including styling factors.
105
+ * Use this when saving templates with their factor configuration.
106
+ */
107
+ export interface SectionTemplateWithFactors extends SectionTemplate {
108
+ /** Section styling factors */
109
+ readonly factors: SectionFactors;
110
+ }
111
+ /**
112
+ * Collection of templates grouped by category
113
+ */
114
+ export interface TemplateCollection {
115
+ /** Collection identifier */
116
+ readonly collectionId: string;
117
+ /** Collection name */
118
+ readonly name: string;
119
+ /** Collection description */
120
+ readonly description: string;
121
+ /** Collection author */
122
+ readonly author: string;
123
+ /** Templates in collection */
124
+ readonly templates: readonly SectionTemplate[];
125
+ /** Collection visibility */
126
+ readonly visibility: TemplateVisibility;
127
+ /** Created timestamp */
128
+ readonly createdAt: Date;
129
+ /** Last updated timestamp */
130
+ readonly updatedAt: Date;
131
+ }
132
+ /**
133
+ * Template search criteria
134
+ */
135
+ export interface TemplateSearchCriteria {
136
+ /** Search query (matches name, description, tags) */
137
+ readonly query?: string;
138
+ /** Filter by section type */
139
+ readonly sectionType?: string;
140
+ /** Filter by design system */
141
+ readonly designSystem?: string;
142
+ /** Filter by tier */
143
+ readonly tier?: string;
144
+ /** Filter by author */
145
+ readonly author?: string;
146
+ /** Filter by visibility */
147
+ readonly visibility?: TemplateVisibility;
148
+ /** Filter by tags */
149
+ readonly tags?: readonly string[];
150
+ /** Pagination offset */
151
+ readonly offset?: number;
152
+ /** Pagination limit */
153
+ readonly limit?: number;
154
+ }
155
+ /**
156
+ * Template search result
157
+ */
158
+ export interface TemplateSearchResult {
159
+ /** Matching templates */
160
+ readonly templates: readonly SectionTemplate[];
161
+ /** Total count (before pagination) */
162
+ readonly totalCount: number;
163
+ /** Applied offset */
164
+ readonly offset: number;
165
+ /** Applied limit */
166
+ readonly limit: number;
167
+ /** Has more results */
168
+ readonly hasMore: boolean;
169
+ }
170
+ //# sourceMappingURL=section-template.types.d.ts.map