@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.
- package/PUBLISH-GUIDE.md +250 -0
- package/README.md +1267 -0
- package/bin/vibe.js +22 -0
- package/dist/adapters/index.d.ts +19 -0
- package/dist/browser.d.ts +25 -0
- package/dist/browser.js +15083 -0
- package/dist/browser.mjs +15000 -0
- package/dist/cli/batch-command.d.ts +142 -0
- package/dist/cli/generate-command.d.ts +119 -0
- package/dist/cli/index.d.ts +34 -0
- package/dist/constants/ComponentTypes.d.ts +65 -0
- package/dist/constants/DesignSystems.d.ts +64 -0
- package/dist/constants/Frameworks.d.ts +71 -0
- package/dist/constants/Tiers.d.ts +72 -0
- package/dist/constants/index.d.ts +10 -0
- package/dist/converters/index.d.ts +12 -0
- package/dist/converters/section-converter.d.ts +176 -0
- package/dist/index.d.ts +58 -0
- package/dist/index.js +19819 -0
- package/dist/index.mjs +19496 -0
- package/dist/resolution/basic/groups-basic.d.ts +80 -0
- package/dist/resolution/basic/index.d.ts +21 -0
- package/dist/resolution/basic/intents-basic.d.ts +195 -0
- package/dist/resolution/basic/presets-basic.d.ts +96 -0
- package/dist/resolution/basic/resolver-basic.d.ts +127 -0
- package/dist/resolution/basic/shorthands-basic.d.ts +88 -0
- package/dist/resolution/core/groups-core.d.ts +160 -0
- package/dist/resolution/core/index.d.ts +21 -0
- package/dist/resolution/core/intents-core.d.ts +355 -0
- package/dist/resolution/core/presets-core.d.ts +160 -0
- package/dist/resolution/core/resolver-core.d.ts +207 -0
- package/dist/resolution/core/shorthands-core.d.ts +144 -0
- package/dist/resolution/core/types-core.d.ts +167 -0
- package/dist/resolution/debugger.d.ts +183 -0
- package/dist/resolution/demo.d.ts +57 -0
- package/dist/resolution/enterprise/index.d.ts +22 -0
- package/dist/resolution/enterprise/metrics.d.ts +152 -0
- package/dist/resolution/enterprise/resolver-enterprise.d.ts +108 -0
- package/dist/resolution/examples.d.ts +486 -0
- package/dist/resolution/groups/experience-group.d.ts +197 -0
- package/dist/resolution/groups/index.d.ts +196 -0
- package/dist/resolution/groups/layout-group.d.ts +192 -0
- package/dist/resolution/groups/motion-group.d.ts +127 -0
- package/dist/resolution/groups/visual-group.d.ts +146 -0
- package/dist/resolution/index.d.ts +41 -0
- package/dist/resolution/intents/button-intents.d.ts +231 -0
- package/dist/resolution/intents/card-intents.d.ts +177 -0
- package/dist/resolution/intents/feedback-intents.d.ts +222 -0
- package/dist/resolution/intents/index.d.ts +189 -0
- package/dist/resolution/intents/input-intents.d.ts +231 -0
- package/dist/resolution/intents/mood-modifiers.d.ts +154 -0
- package/dist/resolution/performance.d.ts +264 -0
- package/dist/resolution/presets/button-presets.d.ts +243 -0
- package/dist/resolution/presets/card-presets.d.ts +216 -0
- package/dist/resolution/presets/data-display-presets.d.ts +290 -0
- package/dist/resolution/presets/feedback-presets.d.ts +335 -0
- package/dist/resolution/presets/form-presets.d.ts +308 -0
- package/dist/resolution/presets/index.d.ts +22 -0
- package/dist/resolution/presets/input-presets.d.ts +207 -0
- package/dist/resolution/presets/nav-presets.d.ts +235 -0
- package/dist/resolution/presets/overlay-presets.d.ts +216 -0
- package/dist/resolution/presets/preset-registry.d.ts +212 -0
- package/dist/resolution/resolveProps.d.ts +235 -0
- package/dist/resolution/shorthand/feel-mappings.d.ts +140 -0
- package/dist/resolution/shorthand/index.d.ts +172 -0
- package/dist/resolution/shorthand/look-mappings.d.ts +107 -0
- package/dist/resolution/shorthand/spacing-mappings.d.ts +164 -0
- package/dist/resolution/shorthand/surface-mappings.d.ts +139 -0
- package/dist/resolution/standard/groups-standard.d.ts +98 -0
- package/dist/resolution/standard/index.d.ts +28 -0
- package/dist/resolution/standard/intents-standard.d.ts +232 -0
- package/dist/resolution/standard/presets-standard.d.ts +123 -0
- package/dist/resolution/standard/resolver-standard.d.ts +204 -0
- package/dist/resolution/standard/shorthands-standard.d.ts +98 -0
- package/dist/resolution/standard/validators.d.ts +141 -0
- package/dist/resolution/types.d.ts +461 -0
- package/dist/resolution/validators/factor24-validator.d.ts +418 -0
- package/dist/resolution/validators/index.d.ts +14 -0
- package/dist/scripts/generate-react-library.d.ts +15 -0
- package/dist/scripts/write-react-library.d.ts +18 -0
- package/dist/storage/cloud-sync.d.ts +182 -0
- package/dist/storage/index.d.ts +69 -0
- package/dist/storage/local-storage.d.ts +131 -0
- package/dist/storage/section-storage.d.ts +191 -0
- package/dist/styling/StyleGenerator.d.ts +76 -0
- package/dist/styling/TokenStyleResolver.d.ts +163 -0
- package/dist/styling/factor-migration.d.ts +192 -0
- package/dist/styling/factor-validators.d.ts +327 -0
- package/dist/styling/factors-1-6.d.ts +674 -0
- package/dist/styling/factors-12-16.d.ts +700 -0
- package/dist/styling/factors-17-24.d.ts +668 -0
- package/dist/styling/factors-all.d.ts +348 -0
- package/dist/styling/factors.d.ts +291 -0
- package/dist/styling/index.d.ts +31 -0
- package/dist/styling/types.d.ts +400 -0
- package/dist/tokens/schema.d.ts +486 -0
- package/dist/types/Option.d.ts +178 -0
- package/dist/types/Result.d.ts +148 -0
- package/dist/types/algorithm-engine.types.d.ts +298 -0
- package/dist/types/granularity/base.types.d.ts +268 -0
- package/dist/types/granularity/config.types.d.ts +177 -0
- package/dist/types/granularity/factors.types.d.ts +194 -0
- package/dist/types/granularity/index.d.ts +57 -0
- package/dist/types/granularity/slot.types.d.ts +128 -0
- package/dist/types/granularity/template.types.d.ts +179 -0
- package/dist/types/granularity-levels/atom.config.d.ts +151 -0
- package/dist/types/granularity-levels/component.config.d.ts +175 -0
- package/dist/types/granularity-levels/index.d.ts +47 -0
- package/dist/types/granularity-levels/layout.config.d.ts +278 -0
- package/dist/types/granularity-levels/page.config.d.ts +210 -0
- package/dist/types/granularity-levels/section.config.d.ts +188 -0
- package/dist/types/granularity-levels/template.config.d.ts +340 -0
- package/dist/types/index.d.ts +152 -0
- package/dist/types/section-slot.types.d.ts +169 -0
- package/dist/types/section-storage.types.d.ts +298 -0
- package/dist/types/section-template.types.d.ts +170 -0
- package/dist/types/section.types.d.ts +326 -0
- package/dist/ui-studio/ComponentGenerator.d.ts +219 -0
- package/dist/ui-studio/composition/FactorPropagator.d.ts +268 -0
- package/dist/ui-studio/composition/PageGenerator.d.ts +176 -0
- package/dist/ui-studio/composition/SectionGenerator.d.ts +312 -0
- package/dist/ui-studio/composition/SlotResolver.d.ts +295 -0
- package/dist/ui-studio/composition/section-orchestrator.d.ts +306 -0
- package/dist/ui-studio/granularity/FactorCascade.d.ts +328 -0
- package/dist/ui-studio/granularity/GranularityGenerator.d.ts +266 -0
- package/dist/ui-studio/granularity/RecursiveGenerator.d.ts +328 -0
- package/dist/ui-studio/index.d.ts +94 -0
- package/dist/ui-studio/matrix/ClassMapper.d.ts +128 -0
- package/dist/ui-studio/matrix/MatrixResolver.d.ts +203 -0
- package/dist/ui-studio/matrix/types.d.ts +96 -0
- package/dist/ui-studio/presets/IndustryDetector.d.ts +183 -0
- package/dist/ui-studio/presets/component-registry.d.ts +213 -0
- package/dist/ui-studio/presets/factor-registry.d.ts +364 -0
- package/dist/ui-studio/presets/granularity-registry.d.ts +252 -0
- package/dist/ui-studio/presets/index.d.ts +32 -0
- package/dist/ui-studio/presets/industries.d.ts +143 -0
- package/dist/ui-studio/presets/layout-registry.d.ts +21 -0
- package/dist/ui-studio/presets/matrix-groups.d.ts +195 -0
- package/dist/ui-studio/presets/page-registry.d.ts +24 -0
- package/dist/ui-studio/presets/registry.constants.d.ts +69 -0
- package/dist/ui-studio/presets/registry.types.d.ts +166 -0
- package/dist/ui-studio/presets/section-defaults.d.ts +175 -0
- package/dist/ui-studio/presets/section-registry.d.ts +83 -0
- package/dist/ui-studio/presets/section-registry.defaults.d.ts +106 -0
- package/dist/ui-studio/presets/section-registry.helpers.d.ts +112 -0
- package/dist/ui-studio/presets/section-registry.types.d.ts +181 -0
- package/dist/ui-studio/presets/template-registry.d.ts +23 -0
- package/dist/ui-studio/presets/variants.d.ts +1038 -0
- package/dist/ui-studio/registries/components-registry.d.ts +193 -0
- package/dist/ui-studio/registries/design-systems-registry.d.ts +153 -0
- package/dist/ui-studio/registries/factors-registry.d.ts +145 -0
- package/dist/ui-studio/registries/tiers-registry.d.ts +150 -0
- package/dist/ui-studio/resolution/FactorResolver.d.ts +201 -0
- package/dist/ui-studio/templates/TestGenerator.d.ts +55 -0
- package/dist/ui-studio/templates/TierGenerator.d.ts +153 -0
- package/dist/ui-studio/templates/TypesGenerator.d.ts +51 -0
- package/dist/ui-studio/types/granularity/base.types.d.ts +268 -0
- package/dist/ui-studio/types/granularity/config.types.d.ts +177 -0
- package/dist/ui-studio/types/granularity/factors.types.d.ts +194 -0
- package/dist/ui-studio/types/granularity/index.d.ts +57 -0
- package/dist/ui-studio/types/granularity/slot.types.d.ts +128 -0
- package/dist/ui-studio/types/granularity/template.types.d.ts +179 -0
- package/dist/ui-studio/types/granularity-levels/atom.config.d.ts +151 -0
- package/dist/ui-studio/types/granularity-levels/component.config.d.ts +175 -0
- package/dist/ui-studio/types/granularity-levels/index.d.ts +47 -0
- package/dist/ui-studio/types/granularity-levels/layout.config.d.ts +278 -0
- package/dist/ui-studio/types/granularity-levels/page.config.d.ts +210 -0
- package/dist/ui-studio/types/granularity-levels/section.config.d.ts +188 -0
- package/dist/ui-studio/types/granularity-levels/template.config.d.ts +340 -0
- package/dist/ui-studio/types.d.ts +323 -0
- package/dist/utils/CodeUtils.d.ts +103 -0
- package/dist/utils/GenerateComponentValidator.d.ts +35 -0
- package/dist/utils/Logger.d.ts +101 -0
- package/dist/utils/StringUtils.d.ts +120 -0
- package/dist/utils/ValidationUtils.d.ts +71 -0
- package/dist/utils/errors/BaseError.d.ts +23 -0
- package/dist/utils/errors/GenerationError.d.ts +14 -0
- package/dist/utils/errors/TemplateNotFoundError.d.ts +13 -0
- package/dist/utils/errors/ValidationError.d.ts +13 -0
- package/dist/utils/errors/index.d.ts +12 -0
- package/dist/utils/factor-resolver.d.ts +294 -0
- package/dist/utils/granularity-helpers.d.ts +359 -0
- package/dist/utils/index.d.ts +20 -0
- package/dist/utils/performance.d.ts +26 -0
- package/dist/utils/stringify.d.ts +28 -0
- package/dist/validators/component-validator.d.ts +86 -0
- package/dist/validators/design-system-validator.d.ts +95 -0
- package/dist/validators/factor-validator.d.ts +101 -0
- package/dist/validators/index.d.ts +263 -0
- package/dist/validators/section-validator.d.ts +120 -0
- package/dist/validators/slot-validator.d.ts +161 -0
- package/dist/validators/tier-validator.d.ts +102 -0
- package/package.json +67 -0
- package/tests/16-factor-integration.test.d.ts +14 -0
- package/tests/16-factor-visual.test.d.ts +14 -0
- package/tests/5-level-integration.test.d.ts +14 -0
- package/tests/CodeUtils.test.d.ts +7 -0
- package/tests/DesignSystems.test.d.ts +7 -0
- package/tests/GenerateComponentValidator.test.d.ts +7 -0
- package/tests/Logger.test.d.ts +7 -0
- package/tests/StringUtils.test.d.ts +7 -0
- package/tests/StyleGenerator.test.d.ts +13 -0
- package/tests/Tiers.test.d.ts +7 -0
- package/tests/TokenRegistry.test.d.ts +14 -0
- package/tests/TokenStyleResolver.test.d.ts +13 -0
- package/tests/ValidationUtils.test.d.ts +7 -0
- package/tests/_pending_fix/Accordion.test.d.ts +13 -0
- package/tests/_pending_fix/Alert.test.d.ts +13 -0
- package/tests/_pending_fix/AlertDialog.test.d.ts +13 -0
- package/tests/_pending_fix/AspectRatio.test.d.ts +13 -0
- package/tests/_pending_fix/Autocomplete.test.d.ts +13 -0
- package/tests/_pending_fix/Avatar.test.d.ts +13 -0
- package/tests/_pending_fix/Badge.test.d.ts +13 -0
- package/tests/_pending_fix/Banner.test.d.ts +13 -0
- package/tests/_pending_fix/Box.test.d.ts +13 -0
- package/tests/_pending_fix/Breadcrumb.test.d.ts +13 -0
- package/tests/_pending_fix/Callout.test.d.ts +13 -0
- package/tests/_pending_fix/Card.test.d.ts +13 -0
- package/tests/_pending_fix/Center.test.d.ts +13 -0
- package/tests/_pending_fix/Checkbox.test.d.ts +13 -0
- package/tests/_pending_fix/Chip.test.d.ts +13 -0
- package/tests/_pending_fix/ColorPicker.test.d.ts +13 -0
- package/tests/_pending_fix/Combobox.test.d.ts +13 -0
- package/tests/_pending_fix/CommandPalette.test.d.ts +13 -0
- package/tests/_pending_fix/ConfirmationModal.test.d.ts +13 -0
- package/tests/_pending_fix/Container.test.d.ts +13 -0
- package/tests/_pending_fix/DataTable.test.d.ts +13 -0
- package/tests/_pending_fix/DatePicker.test.d.ts +13 -0
- package/tests/_pending_fix/DateRangePicker.test.d.ts +13 -0
- package/tests/_pending_fix/DateTimePicker.test.d.ts +13 -0
- package/tests/_pending_fix/Divider.test.d.ts +13 -0
- package/tests/_pending_fix/Drawer.test.d.ts +13 -0
- package/tests/_pending_fix/Dropdown.test.d.ts +13 -0
- package/tests/_pending_fix/EmptyState.test.d.ts +13 -0
- package/tests/_pending_fix/ErrorState.test.d.ts +13 -0
- package/tests/_pending_fix/FileDropzone.test.d.ts +13 -0
- package/tests/_pending_fix/FileUpload.test.d.ts +13 -0
- package/tests/_pending_fix/Flex.test.d.ts +13 -0
- package/tests/_pending_fix/Grid.test.d.ts +13 -0
- package/tests/_pending_fix/GridItem.test.d.ts +13 -0
- package/tests/_pending_fix/HStack.test.d.ts +13 -0
- package/tests/_pending_fix/Input.test.d.ts +13 -0
- package/tests/_pending_fix/InputCurrency.test.d.ts +13 -0
- package/tests/_pending_fix/InputGroup.test.d.ts +13 -0
- package/tests/_pending_fix/InputOTP.test.d.ts +13 -0
- package/tests/_pending_fix/InputPassword.test.d.ts +13 -0
- package/tests/_pending_fix/InputPhone.test.d.ts +13 -0
- package/tests/_pending_fix/InputSearch.test.d.ts +13 -0
- package/tests/_pending_fix/Link.test.d.ts +13 -0
- package/tests/_pending_fix/List.test.d.ts +13 -0
- package/tests/_pending_fix/LoadingOverlay.test.d.ts +13 -0
- package/tests/_pending_fix/Menu.test.d.ts +13 -0
- package/tests/_pending_fix/Modal.test.d.ts +13 -0
- package/tests/_pending_fix/MultiSelect.test.d.ts +13 -0
- package/tests/_pending_fix/NavGroup.test.d.ts +13 -0
- package/tests/_pending_fix/NavItem.test.d.ts +13 -0
- package/tests/_pending_fix/NavLink.test.d.ts +13 -0
- package/tests/_pending_fix/Navbar.test.d.ts +13 -0
- package/tests/_pending_fix/Notification.test.d.ts +13 -0
- package/tests/_pending_fix/NotificationBadge.test.d.ts +13 -0
- package/tests/_pending_fix/NumberInput.test.d.ts +13 -0
- package/tests/_pending_fix/Pagination.test.d.ts +13 -0
- package/tests/_pending_fix/Popover.test.d.ts +13 -0
- package/tests/_pending_fix/Progress.test.d.ts +13 -0
- package/tests/_pending_fix/ProgressCircle.test.d.ts +13 -0
- package/tests/_pending_fix/ProgressSteps.test.d.ts +13 -0
- package/tests/_pending_fix/Radio.test.d.ts +13 -0
- package/tests/_pending_fix/RangeSlider.test.d.ts +13 -0
- package/tests/_pending_fix/ResizablePanel.test.d.ts +13 -0
- package/tests/_pending_fix/ResultState.test.d.ts +13 -0
- package/tests/_pending_fix/ScrollArea.test.d.ts +13 -0
- package/tests/_pending_fix/Select.test.d.ts +14 -0
- package/tests/_pending_fix/Sheet.test.d.ts +13 -0
- package/tests/_pending_fix/Sidebar.test.d.ts +13 -0
- package/tests/_pending_fix/SimpleGrid.test.d.ts +13 -0
- package/tests/_pending_fix/Skeleton.test.d.ts +13 -0
- package/tests/_pending_fix/Slider.test.d.ts +13 -0
- package/tests/_pending_fix/Spacer.test.d.ts +13 -0
- package/tests/_pending_fix/Spinner.test.d.ts +13 -0
- package/tests/_pending_fix/Stack.test.d.ts +13 -0
- package/tests/_pending_fix/Stat.test.d.ts +13 -0
- package/tests/_pending_fix/Stepper.test.d.ts +14 -0
- package/tests/_pending_fix/Switch.test.d.ts +13 -0
- package/tests/_pending_fix/Table.test.d.ts +13 -0
- package/tests/_pending_fix/Tabs.test.d.ts +13 -0
- package/tests/_pending_fix/Textarea.test.d.ts +13 -0
- package/tests/_pending_fix/Timeline.test.d.ts +13 -0
- package/tests/_pending_fix/Toast.test.d.ts +14 -0
- package/tests/_pending_fix/Tooltip.test.d.ts +14 -0
- package/tests/_pending_fix/VStack.test.d.ts +13 -0
- package/tests/alert.test.d.ts +13 -0
- package/tests/badge.test.d.ts +13 -0
- package/tests/benchmarks/factor-resolution.bench.d.ts +41 -0
- package/tests/button.test.d.ts +16 -0
- package/tests/card.test.d.ts +19 -0
- package/tests/checkbox.test.d.ts +13 -0
- package/tests/component-16-factor-types.test.d.ts +13 -0
- package/tests/component-5level-integration.test.d.ts +14 -0
- package/tests/component-registry-ui.test.d.ts +13 -0
- package/tests/e2e/16-factor-visual.test.d.ts +14 -0
- package/tests/edge-cases.test.d.ts +14 -0
- package/tests/factor-17-24-integration.test.d.ts +14 -0
- package/tests/factor-17-24-performance.test.d.ts +14 -0
- package/tests/factor-validators.test.d.ts +13 -0
- package/tests/factors-1-6.test.d.ts +13 -0
- package/tests/factors-12-16.test.d.ts +13 -0
- package/tests/factors-17-24.test.d.ts +21 -0
- package/tests/factors-all.test.d.ts +13 -0
- package/tests/factors-registry.test.d.ts +11 -0
- package/tests/factors.test.d.ts +13 -0
- package/tests/granularity-types.test.d.ts +18 -0
- package/tests/groups.test.d.ts +14 -0
- package/tests/input.test.d.ts +16 -0
- package/tests/intents.test.d.ts +14 -0
- package/tests/memory-leak.test.d.ts +14 -0
- package/tests/modal.test.d.ts +19 -0
- package/tests/presets.test.d.ts +14 -0
- package/tests/radio.test.d.ts +13 -0
- package/tests/resolution-intents.test.d.ts +13 -0
- package/tests/resolution-presets.test.d.ts +13 -0
- package/tests/resolveProps.test.d.ts +14 -0
- package/tests/section-integration.test.d.ts +16 -0
- package/tests/section-types.test.d.ts +11 -0
- package/tests/setup.d.ts +13 -0
- package/tests/shorthands.test.d.ts +14 -0
- package/tests/switch.test.d.ts +13 -0
- package/tests/tabs.test.d.ts +13 -0
- package/tests/tiers-registry.test.d.ts +11 -0
- package/tests/useComponentStyles.test.d.ts +11 -0
- package/tests/useFactors.test.d.ts +13 -0
- package/tests/validators-invalid-input.test.d.ts +13 -0
- package/tsup.config.d.ts +11 -0
- 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
|