@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,278 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layout Configuration Types
|
|
3
|
+
*
|
|
4
|
+
* Layout-level configuration for page wrappers like AppLayout, AuthLayout.
|
|
5
|
+
* Layouts define the structural wrapper around pages including headers,
|
|
6
|
+
* sidebars, and footers that persist across page navigation.
|
|
7
|
+
*
|
|
8
|
+
* @packageDocumentation
|
|
9
|
+
* @module types/granularity-levels
|
|
10
|
+
* @since 4.0.0
|
|
11
|
+
*
|
|
12
|
+
* Powered by Nikkory
|
|
13
|
+
*/
|
|
14
|
+
import type { GranularityLevel, GranularityFactorValues, GranularityStyleOverrides, GranularityLayoutConfig, GranularitySpacingLevel } from '../granularity/base.types';
|
|
15
|
+
import type { GranularityConfig, ChildReference } from '../granularity/config.types';
|
|
16
|
+
import type { GranularitySlotPosition, GranularitySlotConfig } from '../granularity/slot.types';
|
|
17
|
+
import type { DesignSystem, Tier } from '../../../types';
|
|
18
|
+
/**
|
|
19
|
+
* Layout slot positions - header, main, sidebar, footer
|
|
20
|
+
*
|
|
21
|
+
* @category types
|
|
22
|
+
* @since 4.0.0
|
|
23
|
+
*
|
|
24
|
+
* Powered by Nikkory
|
|
25
|
+
*/
|
|
26
|
+
export type LayoutSlotPosition = GranularitySlotPosition<'layout'>;
|
|
27
|
+
/**
|
|
28
|
+
* Layout slot configuration
|
|
29
|
+
*
|
|
30
|
+
* @category types
|
|
31
|
+
* @since 4.0.0
|
|
32
|
+
*
|
|
33
|
+
* Powered by Nikkory
|
|
34
|
+
*/
|
|
35
|
+
export type LayoutSlotConfig = GranularitySlotConfig<'layout'>;
|
|
36
|
+
/**
|
|
37
|
+
* Layout type categories - 10+ types organized by purpose
|
|
38
|
+
*
|
|
39
|
+
* @category types
|
|
40
|
+
* @since 4.0.0
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* const category: LayoutCategory = 'app';
|
|
45
|
+
* ```
|
|
46
|
+
*
|
|
47
|
+
* Powered by Nikkory
|
|
48
|
+
*/
|
|
49
|
+
export type LayoutCategory = 'app' | 'auth' | 'dashboard' | 'marketing' | 'documentation' | 'minimal' | 'centered' | 'split';
|
|
50
|
+
/**
|
|
51
|
+
* Layout type identifiers (10+ types)
|
|
52
|
+
*
|
|
53
|
+
* @category types
|
|
54
|
+
* @since 4.0.0
|
|
55
|
+
*
|
|
56
|
+
* Powered by Nikkory
|
|
57
|
+
*/
|
|
58
|
+
export type LayoutType = 'app-layout' | 'auth-layout' | 'dashboard-layout' | 'marketing-layout' | 'docs-layout' | 'blog-layout' | 'minimal-layout' | 'centered-layout' | 'split-layout' | 'sidebar-layout';
|
|
59
|
+
/**
|
|
60
|
+
* Layout structure configuration
|
|
61
|
+
*
|
|
62
|
+
* Defines the structural arrangement of the layout including
|
|
63
|
+
* header, sidebar, main content, and footer positions.
|
|
64
|
+
*
|
|
65
|
+
* @category types
|
|
66
|
+
* @since 4.0.0
|
|
67
|
+
*
|
|
68
|
+
* Powered by Nikkory
|
|
69
|
+
*/
|
|
70
|
+
export interface LayoutStructure {
|
|
71
|
+
/** Header configuration */
|
|
72
|
+
readonly header: LayoutRegion | null;
|
|
73
|
+
/** Sidebar configuration */
|
|
74
|
+
readonly sidebar: LayoutSidebar | null;
|
|
75
|
+
/** Main content configuration */
|
|
76
|
+
readonly main: LayoutRegion;
|
|
77
|
+
/** Footer configuration */
|
|
78
|
+
readonly footer: LayoutRegion | null;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Layout region configuration
|
|
82
|
+
*
|
|
83
|
+
* @category types
|
|
84
|
+
* @since 4.0.0
|
|
85
|
+
*
|
|
86
|
+
* Powered by Nikkory
|
|
87
|
+
*/
|
|
88
|
+
export interface LayoutRegion {
|
|
89
|
+
/** Whether region is visible */
|
|
90
|
+
readonly visible: boolean;
|
|
91
|
+
/** Whether region is sticky */
|
|
92
|
+
readonly sticky?: boolean;
|
|
93
|
+
/** Region height (for header/footer) */
|
|
94
|
+
readonly height?: 'auto' | 'sm' | 'md' | 'lg';
|
|
95
|
+
/** Background color */
|
|
96
|
+
readonly background?: 'transparent' | 'surface' | 'primary' | 'secondary';
|
|
97
|
+
/** Whether region has border */
|
|
98
|
+
readonly bordered?: boolean;
|
|
99
|
+
/** Whether region has shadow */
|
|
100
|
+
readonly shadow?: boolean;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Layout sidebar configuration
|
|
104
|
+
*
|
|
105
|
+
* @category types
|
|
106
|
+
* @since 4.0.0
|
|
107
|
+
*
|
|
108
|
+
* Powered by Nikkory
|
|
109
|
+
*/
|
|
110
|
+
export interface LayoutSidebar extends LayoutRegion {
|
|
111
|
+
/** Sidebar position */
|
|
112
|
+
readonly position: 'left' | 'right';
|
|
113
|
+
/** Sidebar width */
|
|
114
|
+
readonly width: 'narrow' | 'medium' | 'wide' | 'custom';
|
|
115
|
+
/** Custom width value (if width is 'custom') */
|
|
116
|
+
readonly customWidth?: string;
|
|
117
|
+
/** Whether sidebar is collapsible */
|
|
118
|
+
readonly collapsible?: boolean;
|
|
119
|
+
/** Default collapsed state */
|
|
120
|
+
readonly defaultCollapsed?: boolean;
|
|
121
|
+
/** Collapse breakpoint */
|
|
122
|
+
readonly collapseBreakpoint?: 'sm' | 'md' | 'lg' | 'xl';
|
|
123
|
+
/** Whether sidebar overlays content when collapsed */
|
|
124
|
+
readonly overlayMode?: boolean;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Responsive layout configuration
|
|
128
|
+
*
|
|
129
|
+
* @category types
|
|
130
|
+
* @since 4.0.0
|
|
131
|
+
*
|
|
132
|
+
* Powered by Nikkory
|
|
133
|
+
*/
|
|
134
|
+
export interface ResponsiveConfig {
|
|
135
|
+
/** Mobile breakpoint behavior */
|
|
136
|
+
readonly mobile?: {
|
|
137
|
+
readonly hideSidebar?: boolean;
|
|
138
|
+
readonly hideHeader?: boolean;
|
|
139
|
+
readonly hideFooter?: boolean;
|
|
140
|
+
readonly stackLayout?: boolean;
|
|
141
|
+
};
|
|
142
|
+
/** Tablet breakpoint behavior */
|
|
143
|
+
readonly tablet?: {
|
|
144
|
+
readonly collapseSidebar?: boolean;
|
|
145
|
+
readonly compactHeader?: boolean;
|
|
146
|
+
};
|
|
147
|
+
/** Desktop breakpoint behavior */
|
|
148
|
+
readonly desktop?: {
|
|
149
|
+
readonly expandSidebar?: boolean;
|
|
150
|
+
readonly showBreadcrumb?: boolean;
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Layout-specific extension fields beyond GranularityConfig
|
|
155
|
+
*
|
|
156
|
+
* @category types
|
|
157
|
+
* @since 4.0.0
|
|
158
|
+
*
|
|
159
|
+
* Powered by Nikkory
|
|
160
|
+
*/
|
|
161
|
+
export interface LayoutExtensions {
|
|
162
|
+
/** Layout type identifier */
|
|
163
|
+
readonly layoutType: LayoutType;
|
|
164
|
+
/** Layout category for organization */
|
|
165
|
+
readonly layoutCategory: LayoutCategory;
|
|
166
|
+
/** Layout structural configuration */
|
|
167
|
+
readonly structure: LayoutStructure;
|
|
168
|
+
/** Responsive behavior configuration */
|
|
169
|
+
readonly responsive?: ResponsiveConfig;
|
|
170
|
+
/** Content max width */
|
|
171
|
+
readonly maxWidth?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full';
|
|
172
|
+
/** Content padding */
|
|
173
|
+
readonly contentPadding?: GranularitySpacingLevel;
|
|
174
|
+
/** Whether layout uses CSS Grid */
|
|
175
|
+
readonly useGrid?: boolean;
|
|
176
|
+
/** Whether layout supports theme switching */
|
|
177
|
+
readonly themeable?: boolean;
|
|
178
|
+
/** Whether layout supports RTL */
|
|
179
|
+
readonly rtlSupport?: boolean;
|
|
180
|
+
/** Scroll behavior */
|
|
181
|
+
readonly scrollBehavior?: 'smooth' | 'auto';
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* LayoutLevelConfig - Full configuration for layout-level elements
|
|
185
|
+
*
|
|
186
|
+
* Extends GranularityConfig<'layout'> with layout-specific fields.
|
|
187
|
+
* Named LayoutLevelConfig to avoid conflict with LayoutConfig in base.types.ts.
|
|
188
|
+
*
|
|
189
|
+
* @category types
|
|
190
|
+
* @since 4.0.0
|
|
191
|
+
*
|
|
192
|
+
* @example
|
|
193
|
+
* ```typescript
|
|
194
|
+
* const dashboardLayout: LayoutLevelConfig = {
|
|
195
|
+
* id: 'dashboard-layout',
|
|
196
|
+
* granularity: 'layout',
|
|
197
|
+
* designSystem: 'material-design',
|
|
198
|
+
* tier: 'enterprise',
|
|
199
|
+
* title: 'Dashboard Layout',
|
|
200
|
+
* layoutType: 'dashboard-layout',
|
|
201
|
+
* layoutCategory: 'dashboard',
|
|
202
|
+
* structure: {
|
|
203
|
+
* header: { visible: true, sticky: true, height: 'md' },
|
|
204
|
+
* sidebar: {
|
|
205
|
+
* visible: true, position: 'left', width: 'medium',
|
|
206
|
+
* collapsible: true, defaultCollapsed: false
|
|
207
|
+
* },
|
|
208
|
+
* main: { visible: true },
|
|
209
|
+
* footer: null
|
|
210
|
+
* },
|
|
211
|
+
* responsive: {
|
|
212
|
+
* mobile: { hideSidebar: true },
|
|
213
|
+
* tablet: { collapseSidebar: true }
|
|
214
|
+
* },
|
|
215
|
+
* maxWidth: 'full',
|
|
216
|
+
* contentPadding: 'md'
|
|
217
|
+
* };
|
|
218
|
+
* ```
|
|
219
|
+
*
|
|
220
|
+
* Powered by Nikkory
|
|
221
|
+
*/
|
|
222
|
+
export interface LayoutLevelConfig extends LayoutExtensions {
|
|
223
|
+
/** Unique identifier */
|
|
224
|
+
readonly id: string;
|
|
225
|
+
/** Granularity level - always 'layout' */
|
|
226
|
+
readonly granularity: 'layout';
|
|
227
|
+
/** Design system */
|
|
228
|
+
readonly designSystem: DesignSystem;
|
|
229
|
+
/** Quality tier */
|
|
230
|
+
readonly tier: Tier;
|
|
231
|
+
/** Display title */
|
|
232
|
+
readonly title: string;
|
|
233
|
+
/** Optional subtitle/description */
|
|
234
|
+
readonly subtitle?: string;
|
|
235
|
+
/** Layout configuration */
|
|
236
|
+
readonly layout?: GranularityLayoutConfig;
|
|
237
|
+
/** Slots for layout regions */
|
|
238
|
+
readonly slots?: readonly LayoutSlotConfig[];
|
|
239
|
+
/** Factor values */
|
|
240
|
+
readonly factors?: GranularityFactorValues;
|
|
241
|
+
/** Children references (pages this layout wraps) */
|
|
242
|
+
readonly children?: readonly ChildReference<'layout'>[];
|
|
243
|
+
/** Style overrides */
|
|
244
|
+
readonly styleOverrides?: GranularityStyleOverrides;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Default slot configurations for layouts
|
|
248
|
+
*
|
|
249
|
+
* @category constants
|
|
250
|
+
* @since 4.0.0
|
|
251
|
+
*
|
|
252
|
+
* Powered by Nikkory
|
|
253
|
+
*/
|
|
254
|
+
export declare const DEFAULT_LAYOUT_SLOTS: readonly LayoutSlotConfig[];
|
|
255
|
+
/**
|
|
256
|
+
* Type guard to check if a config is a LayoutLevelConfig
|
|
257
|
+
*
|
|
258
|
+
* @category utils
|
|
259
|
+
* @since 4.0.0
|
|
260
|
+
*
|
|
261
|
+
* @param config - The config to check
|
|
262
|
+
* @returns True if config is a LayoutLevelConfig
|
|
263
|
+
*
|
|
264
|
+
* Powered by Nikkory
|
|
265
|
+
*/
|
|
266
|
+
export declare function isLayoutLevelConfig(config: GranularityConfig<GranularityLevel>): config is LayoutLevelConfig & GranularityConfig<'layout'>;
|
|
267
|
+
/**
|
|
268
|
+
* LayoutGranularityConfig - Alias to GranularityConfig<'layout'>
|
|
269
|
+
*
|
|
270
|
+
* Use LayoutLevelConfig for the full extended version with layout-specific fields.
|
|
271
|
+
*
|
|
272
|
+
* @category types
|
|
273
|
+
* @since 4.0.0
|
|
274
|
+
*
|
|
275
|
+
* Powered by Nikkory
|
|
276
|
+
*/
|
|
277
|
+
export type LayoutGranularityConfig = GranularityConfig<'layout'>;
|
|
278
|
+
//# sourceMappingURL=layout.config.d.ts.map
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Page Configuration Types
|
|
3
|
+
*
|
|
4
|
+
* Page-level configuration for full pages like Landing, Dashboard, Profile.
|
|
5
|
+
* Pages compose multiple sections and define the overall page structure.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
* @module types/granularity-levels
|
|
9
|
+
* @since 4.0.0
|
|
10
|
+
*
|
|
11
|
+
* Powered by Nikkory
|
|
12
|
+
*/
|
|
13
|
+
import type { GranularityLevel, GranularityFactorValues, GranularityStyleOverrides, GranularityLayoutConfig, GranularitySpacingLevel } from '../granularity/base.types';
|
|
14
|
+
import type { GranularityConfig, ChildReference } from '../granularity/config.types';
|
|
15
|
+
import type { GranularitySlotPosition, GranularitySlotConfig } from '../granularity/slot.types';
|
|
16
|
+
import type { DesignSystem, Tier } from '../../../types';
|
|
17
|
+
/**
|
|
18
|
+
* Page slot positions - header, main, sidebar, footer, overlay, floating
|
|
19
|
+
*
|
|
20
|
+
* @category types
|
|
21
|
+
* @since 4.0.0
|
|
22
|
+
*
|
|
23
|
+
* Powered by Nikkory
|
|
24
|
+
*/
|
|
25
|
+
export type PageSlotPosition = GranularitySlotPosition<'page'>;
|
|
26
|
+
/**
|
|
27
|
+
* Page slot configuration
|
|
28
|
+
*
|
|
29
|
+
* @category types
|
|
30
|
+
* @since 4.0.0
|
|
31
|
+
*
|
|
32
|
+
* Powered by Nikkory
|
|
33
|
+
*/
|
|
34
|
+
export type PageSlotConfig = GranularitySlotConfig<'page'>;
|
|
35
|
+
/**
|
|
36
|
+
* Page type categories - 30+ types organized by purpose
|
|
37
|
+
*
|
|
38
|
+
* @category types
|
|
39
|
+
* @since 4.0.0
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* const category: PageCategory = 'marketing';
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* Powered by Nikkory
|
|
47
|
+
*/
|
|
48
|
+
export type PageCategory = 'marketing' | 'auth' | 'dashboard' | 'content' | 'ecommerce' | 'account' | 'utility' | 'legal';
|
|
49
|
+
/**
|
|
50
|
+
* Page type identifiers (30+ types)
|
|
51
|
+
*
|
|
52
|
+
* @category types
|
|
53
|
+
* @since 4.0.0
|
|
54
|
+
*
|
|
55
|
+
* Powered by Nikkory
|
|
56
|
+
*/
|
|
57
|
+
export type PageType = 'landing' | 'about' | 'features' | 'pricing' | 'contact' | 'faq' | 'login' | 'register' | 'forgot-password' | 'reset-password' | 'verify-email' | 'two-factor' | 'dashboard-overview' | 'dashboard-analytics' | 'dashboard-reports' | 'dashboard-settings' | 'blog-list' | 'blog-post' | 'documentation' | 'changelog' | 'product-list' | 'product-detail' | 'cart' | 'checkout' | 'order-confirmation' | 'profile' | 'settings' | 'billing' | 'notifications' | 'not-found' | 'error' | 'maintenance' | 'coming-soon' | 'terms' | 'privacy' | 'cookie-policy';
|
|
58
|
+
/**
|
|
59
|
+
* Page-specific extension fields beyond GranularityConfig
|
|
60
|
+
*
|
|
61
|
+
* @category types
|
|
62
|
+
* @since 4.0.0
|
|
63
|
+
*
|
|
64
|
+
* Powered by Nikkory
|
|
65
|
+
*/
|
|
66
|
+
export interface PageExtensions {
|
|
67
|
+
/** Page type identifier */
|
|
68
|
+
readonly pageType: PageType;
|
|
69
|
+
/** Page category for organization */
|
|
70
|
+
readonly pageCategory: PageCategory;
|
|
71
|
+
/** Page route path */
|
|
72
|
+
readonly routePath: string;
|
|
73
|
+
/** Whether page requires authentication */
|
|
74
|
+
readonly requiresAuth?: boolean;
|
|
75
|
+
/** Required user roles (if requiresAuth) */
|
|
76
|
+
readonly requiredRoles?: readonly string[];
|
|
77
|
+
/** Page metadata for SEO */
|
|
78
|
+
readonly metadata?: PageMetadata;
|
|
79
|
+
/** Whether page has sidebar layout */
|
|
80
|
+
readonly hasSidebar?: boolean;
|
|
81
|
+
/** Sidebar position (if hasSidebar) */
|
|
82
|
+
readonly sidebarPosition?: 'left' | 'right';
|
|
83
|
+
/** Sidebar width */
|
|
84
|
+
readonly sidebarWidth?: 'narrow' | 'medium' | 'wide';
|
|
85
|
+
/** Whether header is sticky */
|
|
86
|
+
readonly stickyHeader?: boolean;
|
|
87
|
+
/** Whether footer is visible */
|
|
88
|
+
readonly showFooter?: boolean;
|
|
89
|
+
/** Page content max width */
|
|
90
|
+
readonly maxWidth?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full';
|
|
91
|
+
/** Page padding */
|
|
92
|
+
readonly padding?: GranularitySpacingLevel;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Page metadata for SEO and social sharing
|
|
96
|
+
*
|
|
97
|
+
* @category types
|
|
98
|
+
* @since 4.0.0
|
|
99
|
+
*
|
|
100
|
+
* Powered by Nikkory
|
|
101
|
+
*/
|
|
102
|
+
export interface PageMetadata {
|
|
103
|
+
/** Page title (for browser tab) */
|
|
104
|
+
readonly title: string;
|
|
105
|
+
/** Meta description */
|
|
106
|
+
readonly description?: string;
|
|
107
|
+
/** Meta keywords */
|
|
108
|
+
readonly keywords?: readonly string[];
|
|
109
|
+
/** Canonical URL */
|
|
110
|
+
readonly canonical?: string;
|
|
111
|
+
/** Open Graph image */
|
|
112
|
+
readonly ogImage?: string;
|
|
113
|
+
/** Twitter card type */
|
|
114
|
+
readonly twitterCard?: 'summary' | 'summary_large_image';
|
|
115
|
+
/** Robots meta */
|
|
116
|
+
readonly robots?: 'index,follow' | 'noindex,follow' | 'index,nofollow' | 'noindex,nofollow';
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* PageLevelConfig - Full configuration for page-level elements
|
|
120
|
+
*
|
|
121
|
+
* Extends GranularityConfig<'page'> with page-specific fields.
|
|
122
|
+
*
|
|
123
|
+
* @category types
|
|
124
|
+
* @since 4.0.0
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* ```typescript
|
|
128
|
+
* const landingConfig: PageLevelConfig = {
|
|
129
|
+
* id: 'landing-page',
|
|
130
|
+
* granularity: 'page',
|
|
131
|
+
* designSystem: 'material-design',
|
|
132
|
+
* tier: 'enterprise',
|
|
133
|
+
* title: 'Landing Page',
|
|
134
|
+
* pageType: 'landing',
|
|
135
|
+
* pageCategory: 'marketing',
|
|
136
|
+
* routePath: '/',
|
|
137
|
+
* stickyHeader: true,
|
|
138
|
+
* showFooter: true,
|
|
139
|
+
* maxWidth: 'xl',
|
|
140
|
+
* metadata: {
|
|
141
|
+
* title: 'Welcome | Nikkory',
|
|
142
|
+
* description: 'Build beautiful UIs faster',
|
|
143
|
+
* ogImage: '/og-landing.png'
|
|
144
|
+
* },
|
|
145
|
+
* children: [
|
|
146
|
+
* { childGranularity: 'section', ref: 'hero-section', slot: 'main' },
|
|
147
|
+
* { childGranularity: 'section', ref: 'features-section', slot: 'main' }
|
|
148
|
+
* ]
|
|
149
|
+
* };
|
|
150
|
+
* ```
|
|
151
|
+
*
|
|
152
|
+
* Powered by Nikkory
|
|
153
|
+
*/
|
|
154
|
+
export interface PageLevelConfig extends PageExtensions {
|
|
155
|
+
/** Unique identifier */
|
|
156
|
+
readonly id: string;
|
|
157
|
+
/** Granularity level - always 'page' */
|
|
158
|
+
readonly granularity: 'page';
|
|
159
|
+
/** Design system */
|
|
160
|
+
readonly designSystem: DesignSystem;
|
|
161
|
+
/** Quality tier */
|
|
162
|
+
readonly tier: Tier;
|
|
163
|
+
/** Display title */
|
|
164
|
+
readonly title: string;
|
|
165
|
+
/** Optional subtitle/description */
|
|
166
|
+
readonly subtitle?: string;
|
|
167
|
+
/** Layout configuration */
|
|
168
|
+
readonly layout?: GranularityLayoutConfig;
|
|
169
|
+
/** Slots for child sections (6 positions available) */
|
|
170
|
+
readonly slots?: readonly PageSlotConfig[];
|
|
171
|
+
/** Factor values */
|
|
172
|
+
readonly factors?: GranularityFactorValues;
|
|
173
|
+
/** Children references */
|
|
174
|
+
readonly children?: readonly ChildReference<'page'>[];
|
|
175
|
+
/** Style overrides */
|
|
176
|
+
readonly styleOverrides?: GranularityStyleOverrides;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Re-export default page slots from slot.types.ts
|
|
180
|
+
*
|
|
181
|
+
* @category constants
|
|
182
|
+
* @since 4.0.0
|
|
183
|
+
*
|
|
184
|
+
* Powered by Nikkory
|
|
185
|
+
*/
|
|
186
|
+
export declare const DEFAULT_PAGE_SLOTS: readonly GranularitySlotConfig<"page">[];
|
|
187
|
+
/**
|
|
188
|
+
* Type guard to check if a config is a PageLevelConfig
|
|
189
|
+
*
|
|
190
|
+
* @category utils
|
|
191
|
+
* @since 4.0.0
|
|
192
|
+
*
|
|
193
|
+
* @param config - The config to check
|
|
194
|
+
* @returns True if config is a PageLevelConfig
|
|
195
|
+
*
|
|
196
|
+
* Powered by Nikkory
|
|
197
|
+
*/
|
|
198
|
+
export declare function isPageLevelConfig(config: GranularityConfig<GranularityLevel>): config is PageLevelConfig & GranularityConfig<'page'>;
|
|
199
|
+
/**
|
|
200
|
+
* PageGranularityConfig - Alias to GranularityConfig<'page'>
|
|
201
|
+
*
|
|
202
|
+
* Use PageLevelConfig for the full extended version with page-specific fields.
|
|
203
|
+
*
|
|
204
|
+
* @category types
|
|
205
|
+
* @since 4.0.0
|
|
206
|
+
*
|
|
207
|
+
* Powered by Nikkory
|
|
208
|
+
*/
|
|
209
|
+
export type PageGranularityConfig = GranularityConfig<'page'>;
|
|
210
|
+
//# sourceMappingURL=page.config.d.ts.map
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Section Configuration Types
|
|
3
|
+
*
|
|
4
|
+
* Section-level configuration for large UI blocks like Hero, Pricing, Testimonials
|
|
5
|
+
* that compose multiple components and atoms.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
* @module types/granularity-levels
|
|
9
|
+
* @since 4.0.0
|
|
10
|
+
*
|
|
11
|
+
* Powered by Nikkory
|
|
12
|
+
*/
|
|
13
|
+
import type { GranularityLevel, GranularityFactorValues, GranularityStyleOverrides, GranularityLayoutConfig, GranularitySpacingLevel, GranularityAlignmentType } from '../granularity/base.types';
|
|
14
|
+
import type { GranularityConfig, ChildReference } from '../granularity/config.types';
|
|
15
|
+
import type { GranularitySlotPosition, GranularitySlotConfig } from '../granularity/slot.types';
|
|
16
|
+
import type { DesignSystem, Tier, SectionCategory } from '../../../types';
|
|
17
|
+
/**
|
|
18
|
+
* Section slot positions - header, content, footer, sidebar, overlay
|
|
19
|
+
*
|
|
20
|
+
* @category types
|
|
21
|
+
* @since 4.0.0
|
|
22
|
+
*
|
|
23
|
+
* Powered by Nikkory
|
|
24
|
+
*/
|
|
25
|
+
export type SectionSlotPosition = GranularitySlotPosition<'section'>;
|
|
26
|
+
/**
|
|
27
|
+
* Section slot configuration
|
|
28
|
+
*
|
|
29
|
+
* @category types
|
|
30
|
+
* @since 4.0.0
|
|
31
|
+
*
|
|
32
|
+
* Powered by Nikkory
|
|
33
|
+
*/
|
|
34
|
+
export type SectionSlotConfig = GranularitySlotConfig<'section'>;
|
|
35
|
+
/**
|
|
36
|
+
* Section layout types - how content is arranged
|
|
37
|
+
*
|
|
38
|
+
* @category types
|
|
39
|
+
* @since 4.0.0
|
|
40
|
+
*
|
|
41
|
+
* Powered by Nikkory
|
|
42
|
+
*/
|
|
43
|
+
export type SectionLayoutType = 'grid' | 'flex' | 'stack' | 'masonry' | 'carousel' | 'centered' | 'split' | 'fullwidth' | 'alternating' | 'sidebar' | 'asymmetric';
|
|
44
|
+
/**
|
|
45
|
+
* Section-specific extension fields beyond GranularityConfig
|
|
46
|
+
*
|
|
47
|
+
* @category types
|
|
48
|
+
* @since 4.0.0
|
|
49
|
+
*
|
|
50
|
+
* Powered by Nikkory
|
|
51
|
+
*/
|
|
52
|
+
export interface SectionExtensions {
|
|
53
|
+
/** Section type/category (hero, features, testimonials, etc.) */
|
|
54
|
+
readonly sectionType: SectionCategory;
|
|
55
|
+
/** Section layout type */
|
|
56
|
+
readonly sectionLayout: SectionLayoutType;
|
|
57
|
+
/** Number of columns (for grid layouts) */
|
|
58
|
+
readonly columns: 1 | 2 | 3 | 4 | 6;
|
|
59
|
+
/** Spacing between elements */
|
|
60
|
+
readonly spacing: GranularitySpacingLevel;
|
|
61
|
+
/** Section padding */
|
|
62
|
+
readonly padding?: GranularitySpacingLevel;
|
|
63
|
+
/** Content alignment */
|
|
64
|
+
readonly alignment?: GranularityAlignmentType;
|
|
65
|
+
/** Whether section is full-bleed (edge to edge) */
|
|
66
|
+
readonly fullBleed?: boolean;
|
|
67
|
+
/** Background configuration */
|
|
68
|
+
readonly background?: SectionBackground;
|
|
69
|
+
/** Whether section is sticky */
|
|
70
|
+
readonly sticky?: boolean;
|
|
71
|
+
/** Section anchor ID for navigation */
|
|
72
|
+
readonly anchorId?: string;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Section background configuration
|
|
76
|
+
*
|
|
77
|
+
* @category types
|
|
78
|
+
* @since 4.0.0
|
|
79
|
+
*
|
|
80
|
+
* Powered by Nikkory
|
|
81
|
+
*/
|
|
82
|
+
export interface SectionBackground {
|
|
83
|
+
/** Background type */
|
|
84
|
+
readonly type: 'solid' | 'gradient' | 'image' | 'pattern' | 'video';
|
|
85
|
+
/** Background color (for solid) */
|
|
86
|
+
readonly color?: string;
|
|
87
|
+
/** Gradient definition (for gradient) */
|
|
88
|
+
readonly gradient?: {
|
|
89
|
+
readonly direction: 'to-right' | 'to-left' | 'to-bottom' | 'to-top' | 'radial';
|
|
90
|
+
readonly stops: readonly string[];
|
|
91
|
+
};
|
|
92
|
+
/** Image URL (for image/video) */
|
|
93
|
+
readonly url?: string;
|
|
94
|
+
/** Pattern name (for pattern) */
|
|
95
|
+
readonly pattern?: string;
|
|
96
|
+
/** Overlay opacity */
|
|
97
|
+
readonly overlay?: number;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* SectionLevelConfig - Full configuration for section-level elements
|
|
101
|
+
*
|
|
102
|
+
* Extends GranularityConfig<'section'> with section-specific fields.
|
|
103
|
+
* Named SectionLevelConfig to avoid conflict with existing SectionConfig.
|
|
104
|
+
*
|
|
105
|
+
* @category types
|
|
106
|
+
* @since 4.0.0
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```typescript
|
|
110
|
+
* const heroConfig: SectionLevelConfig = {
|
|
111
|
+
* id: 'hero-section',
|
|
112
|
+
* granularity: 'section',
|
|
113
|
+
* designSystem: 'material-design',
|
|
114
|
+
* tier: 'enterprise',
|
|
115
|
+
* title: 'Hero Section',
|
|
116
|
+
* subtitle: 'Main landing hero with CTA',
|
|
117
|
+
* sectionType: 'hero',
|
|
118
|
+
* sectionLayout: 'centered',
|
|
119
|
+
* columns: 1,
|
|
120
|
+
* spacing: 'lg',
|
|
121
|
+
* fullBleed: true,
|
|
122
|
+
* background: {
|
|
123
|
+
* type: 'gradient',
|
|
124
|
+
* gradient: { direction: 'to-right', stops: ['#3B82F6', '#8B5CF6'] }
|
|
125
|
+
* }
|
|
126
|
+
* };
|
|
127
|
+
* ```
|
|
128
|
+
*
|
|
129
|
+
* Powered by Nikkory
|
|
130
|
+
*/
|
|
131
|
+
export interface SectionLevelConfig extends SectionExtensions {
|
|
132
|
+
/** Unique identifier */
|
|
133
|
+
readonly id: string;
|
|
134
|
+
/** Granularity level - always 'section' */
|
|
135
|
+
readonly granularity: 'section';
|
|
136
|
+
/** Design system */
|
|
137
|
+
readonly designSystem: DesignSystem;
|
|
138
|
+
/** Quality tier */
|
|
139
|
+
readonly tier: Tier;
|
|
140
|
+
/** Display title */
|
|
141
|
+
readonly title: string;
|
|
142
|
+
/** Optional subtitle/description */
|
|
143
|
+
readonly subtitle?: string;
|
|
144
|
+
/** Layout configuration */
|
|
145
|
+
readonly layout?: GranularityLayoutConfig;
|
|
146
|
+
/** Slots for child components */
|
|
147
|
+
readonly slots?: readonly SectionSlotConfig[];
|
|
148
|
+
/** Factor values */
|
|
149
|
+
readonly factors?: GranularityFactorValues;
|
|
150
|
+
/** Children references */
|
|
151
|
+
readonly children?: readonly ChildReference<'section'>[];
|
|
152
|
+
/** Style overrides */
|
|
153
|
+
readonly styleOverrides?: GranularityStyleOverrides;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Re-export default section slots from slot.types.ts
|
|
157
|
+
*
|
|
158
|
+
* @category constants
|
|
159
|
+
* @since 4.0.0
|
|
160
|
+
*
|
|
161
|
+
* Powered by Nikkory
|
|
162
|
+
*/
|
|
163
|
+
export declare const DEFAULT_SECTION_SLOTS: readonly GranularitySlotConfig<"section">[];
|
|
164
|
+
/**
|
|
165
|
+
* Type guard to check if a config is a SectionLevelConfig
|
|
166
|
+
*
|
|
167
|
+
* @category utils
|
|
168
|
+
* @since 4.0.0
|
|
169
|
+
*
|
|
170
|
+
* @param config - The config to check
|
|
171
|
+
* @returns True if config is a SectionLevelConfig
|
|
172
|
+
*
|
|
173
|
+
* Powered by Nikkory
|
|
174
|
+
*/
|
|
175
|
+
export declare function isSectionLevelConfig(config: GranularityConfig<GranularityLevel>): config is SectionLevelConfig & GranularityConfig<'section'>;
|
|
176
|
+
/**
|
|
177
|
+
* SectionGranularityConfig - Alias to GranularityConfig<'section'>
|
|
178
|
+
*
|
|
179
|
+
* Use SectionLevelConfig for the full extended version with section-specific fields.
|
|
180
|
+
* The existing SectionConfig in section.types.ts is preserved for backward compatibility.
|
|
181
|
+
*
|
|
182
|
+
* @category types
|
|
183
|
+
* @since 4.0.0
|
|
184
|
+
*
|
|
185
|
+
* Powered by Nikkory
|
|
186
|
+
*/
|
|
187
|
+
export type SectionGranularityConfig = GranularityConfig<'section'>;
|
|
188
|
+
//# sourceMappingURL=section.config.d.ts.map
|