@tekton-ui/core 0.2.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/README.md +758 -0
- package/dist/blueprint.d.ts +44 -0
- package/dist/blueprint.d.ts.map +1 -0
- package/dist/blueprint.js +163 -0
- package/dist/blueprint.js.map +1 -0
- package/dist/component-schemas.d.ts +78 -0
- package/dist/component-schemas.d.ts.map +1 -0
- package/dist/component-schemas.js +1037 -0
- package/dist/component-schemas.js.map +1 -0
- package/dist/css-generator.d.ts +42 -0
- package/dist/css-generator.d.ts.map +1 -0
- package/dist/css-generator.js +339 -0
- package/dist/css-generator.js.map +1 -0
- package/dist/icon-library.d.ts +109 -0
- package/dist/icon-library.d.ts.map +1 -0
- package/dist/icon-library.js +204 -0
- package/dist/icon-library.js.map +1 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +51 -0
- package/dist/index.js.map +1 -0
- package/dist/layout-css-generator.d.ts +158 -0
- package/dist/layout-css-generator.d.ts.map +1 -0
- package/dist/layout-css-generator.js +901 -0
- package/dist/layout-css-generator.js.map +1 -0
- package/dist/layout-resolver.d.ts +92 -0
- package/dist/layout-resolver.d.ts.map +1 -0
- package/dist/layout-resolver.js +275 -0
- package/dist/layout-resolver.js.map +1 -0
- package/dist/layout-tokens/index.d.ts +16 -0
- package/dist/layout-tokens/index.d.ts.map +1 -0
- package/dist/layout-tokens/index.js +16 -0
- package/dist/layout-tokens/index.js.map +1 -0
- package/dist/layout-tokens/keyboard.d.ts +254 -0
- package/dist/layout-tokens/keyboard.d.ts.map +1 -0
- package/dist/layout-tokens/keyboard.js +407 -0
- package/dist/layout-tokens/keyboard.js.map +1 -0
- package/dist/layout-tokens/mobile-shells.d.ts +78 -0
- package/dist/layout-tokens/mobile-shells.d.ts.map +1 -0
- package/dist/layout-tokens/mobile-shells.js +635 -0
- package/dist/layout-tokens/mobile-shells.js.map +1 -0
- package/dist/layout-tokens/pages.d.ts +100 -0
- package/dist/layout-tokens/pages.d.ts.map +1 -0
- package/dist/layout-tokens/pages.js +576 -0
- package/dist/layout-tokens/pages.js.map +1 -0
- package/dist/layout-tokens/responsive.d.ts +109 -0
- package/dist/layout-tokens/responsive.d.ts.map +1 -0
- package/dist/layout-tokens/responsive.js +167 -0
- package/dist/layout-tokens/responsive.js.map +1 -0
- package/dist/layout-tokens/safe-area.d.ts +156 -0
- package/dist/layout-tokens/safe-area.d.ts.map +1 -0
- package/dist/layout-tokens/safe-area.js +316 -0
- package/dist/layout-tokens/safe-area.js.map +1 -0
- package/dist/layout-tokens/sections-advanced.d.ts +277 -0
- package/dist/layout-tokens/sections-advanced.d.ts.map +1 -0
- package/dist/layout-tokens/sections-advanced.js +593 -0
- package/dist/layout-tokens/sections-advanced.js.map +1 -0
- package/dist/layout-tokens/sections.d.ts +137 -0
- package/dist/layout-tokens/sections.d.ts.map +1 -0
- package/dist/layout-tokens/sections.js +694 -0
- package/dist/layout-tokens/sections.js.map +1 -0
- package/dist/layout-tokens/shells.d.ts +77 -0
- package/dist/layout-tokens/shells.d.ts.map +1 -0
- package/dist/layout-tokens/shells.js +408 -0
- package/dist/layout-tokens/shells.js.map +1 -0
- package/dist/layout-tokens/touch-target.d.ts +119 -0
- package/dist/layout-tokens/touch-target.d.ts.map +1 -0
- package/dist/layout-tokens/touch-target.js +156 -0
- package/dist/layout-tokens/touch-target.js.map +1 -0
- package/dist/layout-tokens/types.d.ts +632 -0
- package/dist/layout-tokens/types.d.ts.map +1 -0
- package/dist/layout-tokens/types.js +49 -0
- package/dist/layout-tokens/types.js.map +1 -0
- package/dist/layout-validation.d.ts +1547 -0
- package/dist/layout-validation.d.ts.map +1 -0
- package/dist/layout-validation.js +628 -0
- package/dist/layout-validation.js.map +1 -0
- package/dist/render.d.ts +23 -0
- package/dist/render.d.ts.map +1 -0
- package/dist/render.js +244 -0
- package/dist/render.js.map +1 -0
- package/dist/schema-validation.d.ts +208 -0
- package/dist/schema-validation.d.ts.map +1 -0
- package/dist/schema-validation.js +205 -0
- package/dist/schema-validation.js.map +1 -0
- package/dist/screen-generation/generators/css-in-js-generator.d.ts +82 -0
- package/dist/screen-generation/generators/css-in-js-generator.d.ts.map +1 -0
- package/dist/screen-generation/generators/css-in-js-generator.js +335 -0
- package/dist/screen-generation/generators/css-in-js-generator.js.map +1 -0
- package/dist/screen-generation/generators/index.d.ts +13 -0
- package/dist/screen-generation/generators/index.d.ts.map +1 -0
- package/dist/screen-generation/generators/index.js +32 -0
- package/dist/screen-generation/generators/index.js.map +1 -0
- package/dist/screen-generation/generators/react-generator.d.ts +100 -0
- package/dist/screen-generation/generators/react-generator.d.ts.map +1 -0
- package/dist/screen-generation/generators/react-generator.js +379 -0
- package/dist/screen-generation/generators/react-generator.js.map +1 -0
- package/dist/screen-generation/generators/tailwind-generator.d.ts +105 -0
- package/dist/screen-generation/generators/tailwind-generator.d.ts.map +1 -0
- package/dist/screen-generation/generators/tailwind-generator.js +355 -0
- package/dist/screen-generation/generators/tailwind-generator.js.map +1 -0
- package/dist/screen-generation/generators/types.d.ts +136 -0
- package/dist/screen-generation/generators/types.d.ts.map +1 -0
- package/dist/screen-generation/generators/types.js +18 -0
- package/dist/screen-generation/generators/types.js.map +1 -0
- package/dist/screen-generation/generators/utils.d.ts +187 -0
- package/dist/screen-generation/generators/utils.d.ts.map +1 -0
- package/dist/screen-generation/generators/utils.js +312 -0
- package/dist/screen-generation/generators/utils.js.map +1 -0
- package/dist/screen-generation/index.d.ts +14 -0
- package/dist/screen-generation/index.d.ts.map +1 -0
- package/dist/screen-generation/index.js +33 -0
- package/dist/screen-generation/index.js.map +1 -0
- package/dist/screen-generation/resolver/component-resolver.d.ts +157 -0
- package/dist/screen-generation/resolver/component-resolver.d.ts.map +1 -0
- package/dist/screen-generation/resolver/component-resolver.js +295 -0
- package/dist/screen-generation/resolver/component-resolver.js.map +1 -0
- package/dist/screen-generation/resolver/index.d.ts +10 -0
- package/dist/screen-generation/resolver/index.d.ts.map +1 -0
- package/dist/screen-generation/resolver/index.js +46 -0
- package/dist/screen-generation/resolver/index.js.map +1 -0
- package/dist/screen-generation/resolver/layout-resolver.d.ts +155 -0
- package/dist/screen-generation/resolver/layout-resolver.d.ts.map +1 -0
- package/dist/screen-generation/resolver/layout-resolver.js +193 -0
- package/dist/screen-generation/resolver/layout-resolver.js.map +1 -0
- package/dist/screen-generation/resolver/screen-resolver.d.ts +174 -0
- package/dist/screen-generation/resolver/screen-resolver.d.ts.map +1 -0
- package/dist/screen-generation/resolver/screen-resolver.js +373 -0
- package/dist/screen-generation/resolver/screen-resolver.js.map +1 -0
- package/dist/screen-generation/resolver/token-resolver.d.ts +170 -0
- package/dist/screen-generation/resolver/token-resolver.d.ts.map +1 -0
- package/dist/screen-generation/resolver/token-resolver.js +260 -0
- package/dist/screen-generation/resolver/token-resolver.js.map +1 -0
- package/dist/screen-generation/types.d.ts +116 -0
- package/dist/screen-generation/types.d.ts.map +1 -0
- package/dist/screen-generation/types.js +33 -0
- package/dist/screen-generation/types.js.map +1 -0
- package/dist/screen-generation/validators.d.ts +286 -0
- package/dist/screen-generation/validators.d.ts.map +1 -0
- package/dist/screen-generation/validators.js +323 -0
- package/dist/screen-generation/validators.js.map +1 -0
- package/dist/screen-templates/__tests__/registry.test.d.ts +6 -0
- package/dist/screen-templates/__tests__/registry.test.d.ts.map +1 -0
- package/dist/screen-templates/__tests__/registry.test.js +247 -0
- package/dist/screen-templates/__tests__/registry.test.js.map +1 -0
- package/dist/screen-templates/__tests__/templates.test.d.ts +6 -0
- package/dist/screen-templates/__tests__/templates.test.d.ts.map +1 -0
- package/dist/screen-templates/__tests__/templates.test.js +179 -0
- package/dist/screen-templates/__tests__/templates.test.js.map +1 -0
- package/dist/screen-templates/index.d.ts +39 -0
- package/dist/screen-templates/index.d.ts.map +1 -0
- package/dist/screen-templates/index.js +79 -0
- package/dist/screen-templates/index.js.map +1 -0
- package/dist/screen-templates/registry.d.ts +177 -0
- package/dist/screen-templates/registry.d.ts.map +1 -0
- package/dist/screen-templates/registry.js +274 -0
- package/dist/screen-templates/registry.js.map +1 -0
- package/dist/screen-templates/templates/account/index.d.ts +6 -0
- package/dist/screen-templates/templates/account/index.d.ts.map +1 -0
- package/dist/screen-templates/templates/account/index.js +6 -0
- package/dist/screen-templates/templates/account/index.js.map +1 -0
- package/dist/screen-templates/templates/account/profile.d.ts +23 -0
- package/dist/screen-templates/templates/account/profile.d.ts.map +1 -0
- package/dist/screen-templates/templates/account/profile.js +249 -0
- package/dist/screen-templates/templates/account/profile.js.map +1 -0
- package/dist/screen-templates/templates/auth/forgot-password.d.ts +23 -0
- package/dist/screen-templates/templates/auth/forgot-password.d.ts.map +1 -0
- package/dist/screen-templates/templates/auth/forgot-password.js +203 -0
- package/dist/screen-templates/templates/auth/forgot-password.js.map +1 -0
- package/dist/screen-templates/templates/auth/index.d.ts +9 -0
- package/dist/screen-templates/templates/auth/index.d.ts.map +1 -0
- package/dist/screen-templates/templates/auth/index.js +9 -0
- package/dist/screen-templates/templates/auth/index.js.map +1 -0
- package/dist/screen-templates/templates/auth/login.d.ts +24 -0
- package/dist/screen-templates/templates/auth/login.d.ts.map +1 -0
- package/dist/screen-templates/templates/auth/login.js +254 -0
- package/dist/screen-templates/templates/auth/login.js.map +1 -0
- package/dist/screen-templates/templates/auth/signup.d.ts +24 -0
- package/dist/screen-templates/templates/auth/signup.d.ts.map +1 -0
- package/dist/screen-templates/templates/auth/signup.js +315 -0
- package/dist/screen-templates/templates/auth/signup.js.map +1 -0
- package/dist/screen-templates/templates/auth/verification.d.ts +23 -0
- package/dist/screen-templates/templates/auth/verification.d.ts.map +1 -0
- package/dist/screen-templates/templates/auth/verification.js +239 -0
- package/dist/screen-templates/templates/auth/verification.js.map +1 -0
- package/dist/screen-templates/templates/feedback/confirmation.d.ts +9 -0
- package/dist/screen-templates/templates/feedback/confirmation.d.ts.map +1 -0
- package/dist/screen-templates/templates/feedback/confirmation.js +107 -0
- package/dist/screen-templates/templates/feedback/confirmation.js.map +1 -0
- package/dist/screen-templates/templates/feedback/empty.d.ts +9 -0
- package/dist/screen-templates/templates/feedback/empty.d.ts.map +1 -0
- package/dist/screen-templates/templates/feedback/empty.js +90 -0
- package/dist/screen-templates/templates/feedback/empty.js.map +1 -0
- package/dist/screen-templates/templates/feedback/error.d.ts +9 -0
- package/dist/screen-templates/templates/feedback/error.d.ts.map +1 -0
- package/dist/screen-templates/templates/feedback/error.js +99 -0
- package/dist/screen-templates/templates/feedback/error.js.map +1 -0
- package/dist/screen-templates/templates/feedback/index.d.ts +10 -0
- package/dist/screen-templates/templates/feedback/index.d.ts.map +1 -0
- package/dist/screen-templates/templates/feedback/index.js +10 -0
- package/dist/screen-templates/templates/feedback/index.js.map +1 -0
- package/dist/screen-templates/templates/feedback/loading.d.ts +9 -0
- package/dist/screen-templates/templates/feedback/loading.d.ts.map +1 -0
- package/dist/screen-templates/templates/feedback/loading.js +77 -0
- package/dist/screen-templates/templates/feedback/loading.js.map +1 -0
- package/dist/screen-templates/templates/feedback/success.d.ts +9 -0
- package/dist/screen-templates/templates/feedback/success.d.ts.map +1 -0
- package/dist/screen-templates/templates/feedback/success.js +99 -0
- package/dist/screen-templates/templates/feedback/success.js.map +1 -0
- package/dist/screen-templates/templates/home/index.d.ts +6 -0
- package/dist/screen-templates/templates/home/index.d.ts.map +1 -0
- package/dist/screen-templates/templates/home/index.js +6 -0
- package/dist/screen-templates/templates/home/index.js.map +1 -0
- package/dist/screen-templates/templates/home/landing.d.ts +24 -0
- package/dist/screen-templates/templates/home/landing.d.ts.map +1 -0
- package/dist/screen-templates/templates/home/landing.js +197 -0
- package/dist/screen-templates/templates/home/landing.js.map +1 -0
- package/dist/screen-templates/templates/settings/index.d.ts +6 -0
- package/dist/screen-templates/templates/settings/index.d.ts.map +1 -0
- package/dist/screen-templates/templates/settings/index.js +6 -0
- package/dist/screen-templates/templates/settings/index.js.map +1 -0
- package/dist/screen-templates/templates/settings/preferences.d.ts +24 -0
- package/dist/screen-templates/templates/settings/preferences.d.ts.map +1 -0
- package/dist/screen-templates/templates/settings/preferences.js +265 -0
- package/dist/screen-templates/templates/settings/preferences.js.map +1 -0
- package/dist/screen-templates/types.d.ts +229 -0
- package/dist/screen-templates/types.d.ts.map +1 -0
- package/dist/screen-templates/types.js +7 -0
- package/dist/screen-templates/types.js.map +1 -0
- package/dist/theme-v2.d.ts +228 -0
- package/dist/theme-v2.d.ts.map +1 -0
- package/dist/theme-v2.js +158 -0
- package/dist/theme-v2.js.map +1 -0
- package/dist/theme.d.ts +60 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.js +76 -0
- package/dist/theme.js.map +1 -0
- package/dist/token-resolver.d.ts +69 -0
- package/dist/token-resolver.d.ts.map +1 -0
- package/dist/token-resolver.js +122 -0
- package/dist/token-resolver.js.map +1 -0
- package/dist/token-validation.d.ts +432 -0
- package/dist/token-validation.d.ts.map +1 -0
- package/dist/token-validation.js +140 -0
- package/dist/token-validation.js.map +1 -0
- package/dist/tokens.d.ts +158 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +10 -0
- package/dist/tokens.js.map +1 -0
- package/dist/types.d.ts +77 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1,593 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @tekton-ui/core - Advanced Section Pattern Token Definitions
|
|
3
|
+
* HIGH Priority Advanced Layout Patterns for SPEC-LAYOUT-005
|
|
4
|
+
*
|
|
5
|
+
* Implements 4 advanced section patterns:
|
|
6
|
+
* 1. section.masonry - Pinterest-style waterfall grid
|
|
7
|
+
* 2. section.sticky-header - Header that sticks to viewport top
|
|
8
|
+
* 3. section.sticky-footer - Footer that sticks to viewport bottom
|
|
9
|
+
* 4. section.collapsible-sidebar - Sidebar with expand/collapse toggle
|
|
10
|
+
*
|
|
11
|
+
* [SPEC-LAYOUT-005] [PHASE-1]
|
|
12
|
+
*/
|
|
13
|
+
// ============================================================================
|
|
14
|
+
// Masonry Pattern Token
|
|
15
|
+
// ============================================================================
|
|
16
|
+
/**
|
|
17
|
+
* Pinterest-style waterfall grid layout using CSS columns
|
|
18
|
+
*
|
|
19
|
+
* Uses CSS multi-column layout for broad browser support (IE10+).
|
|
20
|
+
* Items flow vertically within columns, creating the classic masonry effect.
|
|
21
|
+
*
|
|
22
|
+
* Responsive behavior:
|
|
23
|
+
* - default (mobile): 2 columns
|
|
24
|
+
* - sm: 2 columns
|
|
25
|
+
* - md: 3 columns
|
|
26
|
+
* - lg: 4 columns
|
|
27
|
+
* - xl: 5 columns
|
|
28
|
+
* - 2xl: 6 columns
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```tsx
|
|
32
|
+
* // React usage
|
|
33
|
+
* <div style={{ ...getMasonryStyles(breakpoint) }}>
|
|
34
|
+
* {items.map(item => (
|
|
35
|
+
* <div key={item.id} style={{ breakInside: 'avoid' }}>
|
|
36
|
+
* {item.content}
|
|
37
|
+
* </div>
|
|
38
|
+
* ))}
|
|
39
|
+
* </div>
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export const SECTION_MASONRY = {
|
|
43
|
+
id: 'section.masonry',
|
|
44
|
+
type: 'masonry',
|
|
45
|
+
description: 'Pinterest-style waterfall grid using CSS columns for broad browser support',
|
|
46
|
+
css: {
|
|
47
|
+
display: 'grid', // Fallback for CSS columns
|
|
48
|
+
columnCount: '4',
|
|
49
|
+
columnGap: 'atomic.spacing.4',
|
|
50
|
+
breakInside: 'avoid',
|
|
51
|
+
columnFill: 'balance',
|
|
52
|
+
},
|
|
53
|
+
responsive: {
|
|
54
|
+
default: {
|
|
55
|
+
display: 'grid',
|
|
56
|
+
columnCount: '2',
|
|
57
|
+
columnGap: 'atomic.spacing.2',
|
|
58
|
+
breakInside: 'avoid',
|
|
59
|
+
columnFill: 'auto',
|
|
60
|
+
},
|
|
61
|
+
sm: {
|
|
62
|
+
columnCount: '2',
|
|
63
|
+
columnGap: 'atomic.spacing.3',
|
|
64
|
+
},
|
|
65
|
+
md: {
|
|
66
|
+
columnCount: '3',
|
|
67
|
+
columnGap: 'atomic.spacing.4',
|
|
68
|
+
},
|
|
69
|
+
lg: {
|
|
70
|
+
columnCount: '4',
|
|
71
|
+
columnGap: 'atomic.spacing.4',
|
|
72
|
+
},
|
|
73
|
+
xl: {
|
|
74
|
+
columnCount: '5',
|
|
75
|
+
columnGap: 'atomic.spacing.5',
|
|
76
|
+
},
|
|
77
|
+
'2xl': {
|
|
78
|
+
columnCount: '6',
|
|
79
|
+
columnGap: 'atomic.spacing.6',
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
tokenBindings: {
|
|
83
|
+
gap: 'atomic.spacing.4',
|
|
84
|
+
columnGap: 'atomic.spacing.4',
|
|
85
|
+
itemBackground: 'semantic.background.surface',
|
|
86
|
+
itemBorderRadius: 'atomic.radius.md',
|
|
87
|
+
itemShadow: 'atomic.shadow.sm',
|
|
88
|
+
columns: 'responsive',
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
// ============================================================================
|
|
92
|
+
// Sticky Header Pattern Token
|
|
93
|
+
// ============================================================================
|
|
94
|
+
/**
|
|
95
|
+
* Header that sticks to the viewport top during scroll
|
|
96
|
+
*
|
|
97
|
+
* Uses CSS `position: sticky` for native scroll-aware behavior.
|
|
98
|
+
* Includes shadow and z-index for proper layering when stuck.
|
|
99
|
+
*
|
|
100
|
+
* Features:
|
|
101
|
+
* - Sticks to top of viewport (top: 0)
|
|
102
|
+
* - High z-index (100) to stay above content
|
|
103
|
+
* - Optional shadow when stuck for visual separation
|
|
104
|
+
* - Full-width with transparent background option
|
|
105
|
+
*
|
|
106
|
+
* Responsive behavior:
|
|
107
|
+
* - Consistent sticky behavior across all breakpoints
|
|
108
|
+
* - Padding adjusts for different screen sizes
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```tsx
|
|
112
|
+
* // React usage with intersection observer for stuck state
|
|
113
|
+
* const [isStuck, setIsStuck] = useState(false);
|
|
114
|
+
*
|
|
115
|
+
* <header style={{
|
|
116
|
+
* position: 'sticky',
|
|
117
|
+
* top: 0,
|
|
118
|
+
* zIndex: 100,
|
|
119
|
+
* boxShadow: isStuck ? 'var(--shadow-md)' : 'none'
|
|
120
|
+
* }}>
|
|
121
|
+
* {children}
|
|
122
|
+
* </header>
|
|
123
|
+
* ```
|
|
124
|
+
*/
|
|
125
|
+
export const SECTION_STICKY_HEADER = {
|
|
126
|
+
id: 'section.sticky-header',
|
|
127
|
+
type: 'sticky',
|
|
128
|
+
description: 'Header that sticks to viewport top during scroll with shadow when stuck',
|
|
129
|
+
css: {
|
|
130
|
+
display: 'flex',
|
|
131
|
+
flexDirection: 'row',
|
|
132
|
+
alignItems: 'center',
|
|
133
|
+
justifyContent: 'space-between',
|
|
134
|
+
position: 'sticky',
|
|
135
|
+
top: 'atomic.spacing.0',
|
|
136
|
+
zIndex: 100,
|
|
137
|
+
padding: 'atomic.spacing.4',
|
|
138
|
+
backgroundColor: 'semantic.background.surface',
|
|
139
|
+
boxShadow: 'atomic.shadow.none',
|
|
140
|
+
},
|
|
141
|
+
responsive: {
|
|
142
|
+
default: {
|
|
143
|
+
display: 'flex',
|
|
144
|
+
flexDirection: 'row',
|
|
145
|
+
alignItems: 'center',
|
|
146
|
+
justifyContent: 'space-between',
|
|
147
|
+
position: 'sticky',
|
|
148
|
+
top: 'atomic.spacing.0',
|
|
149
|
+
zIndex: 100,
|
|
150
|
+
padding: 'atomic.spacing.3',
|
|
151
|
+
backgroundColor: 'semantic.background.surface',
|
|
152
|
+
},
|
|
153
|
+
sm: {
|
|
154
|
+
padding: 'atomic.spacing.3',
|
|
155
|
+
},
|
|
156
|
+
md: {
|
|
157
|
+
padding: 'atomic.spacing.4',
|
|
158
|
+
},
|
|
159
|
+
lg: {
|
|
160
|
+
padding: 'atomic.spacing.4',
|
|
161
|
+
},
|
|
162
|
+
xl: {
|
|
163
|
+
padding: 'atomic.spacing.5',
|
|
164
|
+
},
|
|
165
|
+
'2xl': {
|
|
166
|
+
padding: 'atomic.spacing.6',
|
|
167
|
+
},
|
|
168
|
+
},
|
|
169
|
+
states: {
|
|
170
|
+
default: {
|
|
171
|
+
boxShadow: 'atomic.shadow.none',
|
|
172
|
+
},
|
|
173
|
+
stuck: {
|
|
174
|
+
boxShadow: 'atomic.shadow.md',
|
|
175
|
+
backgroundColor: 'semantic.background.surface',
|
|
176
|
+
},
|
|
177
|
+
},
|
|
178
|
+
tokenBindings: {
|
|
179
|
+
position: 'sticky',
|
|
180
|
+
top: 'atomic.spacing.0',
|
|
181
|
+
zIndex: '100',
|
|
182
|
+
padding: 'atomic.spacing.4',
|
|
183
|
+
background: 'semantic.background.surface',
|
|
184
|
+
shadowDefault: 'atomic.shadow.none',
|
|
185
|
+
shadowStuck: 'atomic.shadow.md',
|
|
186
|
+
borderBottom: 'semantic.border.default',
|
|
187
|
+
},
|
|
188
|
+
};
|
|
189
|
+
// ============================================================================
|
|
190
|
+
// Sticky Footer Pattern Token
|
|
191
|
+
// ============================================================================
|
|
192
|
+
/**
|
|
193
|
+
* Footer that sticks to the viewport bottom during scroll
|
|
194
|
+
*
|
|
195
|
+
* Uses CSS `position: sticky` with `bottom: 0` for bottom-stuck behavior.
|
|
196
|
+
* Ideal for action bars, navigation bars, or persistent CTAs.
|
|
197
|
+
*
|
|
198
|
+
* Features:
|
|
199
|
+
* - Sticks to bottom of viewport (bottom: 0)
|
|
200
|
+
* - High z-index (100) to stay above content
|
|
201
|
+
* - Top shadow for visual separation from content
|
|
202
|
+
* - Safe area padding support for mobile devices
|
|
203
|
+
*
|
|
204
|
+
* Responsive behavior:
|
|
205
|
+
* - Consistent sticky behavior across all breakpoints
|
|
206
|
+
* - Padding adjusts for different screen sizes
|
|
207
|
+
* - Mobile: considers safe area for home indicator
|
|
208
|
+
*
|
|
209
|
+
* @example
|
|
210
|
+
* ```tsx
|
|
211
|
+
* // React usage for action bar
|
|
212
|
+
* <footer style={{
|
|
213
|
+
* position: 'sticky',
|
|
214
|
+
* bottom: 0,
|
|
215
|
+
* zIndex: 100,
|
|
216
|
+
* paddingBottom: 'env(safe-area-inset-bottom)'
|
|
217
|
+
* }}>
|
|
218
|
+
* <Button>Save</Button>
|
|
219
|
+
* <Button>Cancel</Button>
|
|
220
|
+
* </footer>
|
|
221
|
+
* ```
|
|
222
|
+
*/
|
|
223
|
+
export const SECTION_STICKY_FOOTER = {
|
|
224
|
+
id: 'section.sticky-footer',
|
|
225
|
+
type: 'sticky',
|
|
226
|
+
description: 'Footer that sticks to viewport bottom with top shadow',
|
|
227
|
+
css: {
|
|
228
|
+
display: 'flex',
|
|
229
|
+
flexDirection: 'row',
|
|
230
|
+
alignItems: 'center',
|
|
231
|
+
justifyContent: 'center',
|
|
232
|
+
gap: 'atomic.spacing.4',
|
|
233
|
+
position: 'sticky',
|
|
234
|
+
bottom: 'atomic.spacing.0',
|
|
235
|
+
zIndex: 100,
|
|
236
|
+
padding: 'atomic.spacing.4',
|
|
237
|
+
backgroundColor: 'semantic.background.surface',
|
|
238
|
+
boxShadow: 'atomic.shadow.lg',
|
|
239
|
+
},
|
|
240
|
+
responsive: {
|
|
241
|
+
default: {
|
|
242
|
+
display: 'flex',
|
|
243
|
+
flexDirection: 'row',
|
|
244
|
+
alignItems: 'center',
|
|
245
|
+
justifyContent: 'center',
|
|
246
|
+
gap: 'atomic.spacing.2',
|
|
247
|
+
position: 'sticky',
|
|
248
|
+
bottom: 'atomic.spacing.0',
|
|
249
|
+
zIndex: 100,
|
|
250
|
+
padding: 'atomic.spacing.3',
|
|
251
|
+
backgroundColor: 'semantic.background.surface',
|
|
252
|
+
boxShadow: 'atomic.shadow.md',
|
|
253
|
+
},
|
|
254
|
+
sm: {
|
|
255
|
+
padding: 'atomic.spacing.3',
|
|
256
|
+
gap: 'atomic.spacing.3',
|
|
257
|
+
},
|
|
258
|
+
md: {
|
|
259
|
+
padding: 'atomic.spacing.4',
|
|
260
|
+
gap: 'atomic.spacing.4',
|
|
261
|
+
boxShadow: 'atomic.shadow.lg',
|
|
262
|
+
},
|
|
263
|
+
lg: {
|
|
264
|
+
padding: 'atomic.spacing.4',
|
|
265
|
+
},
|
|
266
|
+
xl: {
|
|
267
|
+
padding: 'atomic.spacing.5',
|
|
268
|
+
},
|
|
269
|
+
'2xl': {
|
|
270
|
+
padding: 'atomic.spacing.6',
|
|
271
|
+
},
|
|
272
|
+
},
|
|
273
|
+
states: {
|
|
274
|
+
default: {
|
|
275
|
+
boxShadow: 'atomic.shadow.lg',
|
|
276
|
+
},
|
|
277
|
+
stuck: {
|
|
278
|
+
boxShadow: 'atomic.shadow.xl',
|
|
279
|
+
},
|
|
280
|
+
},
|
|
281
|
+
tokenBindings: {
|
|
282
|
+
position: 'sticky',
|
|
283
|
+
bottom: 'atomic.spacing.0',
|
|
284
|
+
zIndex: '100',
|
|
285
|
+
padding: 'atomic.spacing.4',
|
|
286
|
+
gap: 'atomic.spacing.4',
|
|
287
|
+
background: 'semantic.background.surface',
|
|
288
|
+
shadowDefault: 'atomic.shadow.lg',
|
|
289
|
+
borderTop: 'semantic.border.default',
|
|
290
|
+
safeAreaBottom: 'atomic.spacing.0', // Override with env(safe-area-inset-bottom) on mobile
|
|
291
|
+
},
|
|
292
|
+
};
|
|
293
|
+
// ============================================================================
|
|
294
|
+
// Collapsible Sidebar Pattern Token
|
|
295
|
+
// ============================================================================
|
|
296
|
+
/**
|
|
297
|
+
* Sidebar with expand/collapse toggle capability
|
|
298
|
+
*
|
|
299
|
+
* Provides a collapsible navigation sidebar with smooth CSS transitions.
|
|
300
|
+
* Supports both icon-only collapsed state and full-width expanded state.
|
|
301
|
+
*
|
|
302
|
+
* Features:
|
|
303
|
+
* - Expanded width: 256px (atomic.spacing.64)
|
|
304
|
+
* - Collapsed width: 64px (atomic.spacing.16)
|
|
305
|
+
* - Smooth 200ms transition animation
|
|
306
|
+
* - Icon-only mode when collapsed
|
|
307
|
+
* - Full content when expanded
|
|
308
|
+
*
|
|
309
|
+
* Responsive behavior:
|
|
310
|
+
* - default/sm: Hidden by default (overlay mode recommended)
|
|
311
|
+
* - md: Collapsed by default
|
|
312
|
+
* - lg+: Expanded by default
|
|
313
|
+
*
|
|
314
|
+
* @example
|
|
315
|
+
* ```tsx
|
|
316
|
+
* // React usage with state management
|
|
317
|
+
* const [isCollapsed, setIsCollapsed] = useState(false);
|
|
318
|
+
*
|
|
319
|
+
* <aside style={{
|
|
320
|
+
* width: isCollapsed ? '64px' : '256px',
|
|
321
|
+
* transition: 'width 200ms ease-in-out',
|
|
322
|
+
* overflow: 'hidden'
|
|
323
|
+
* }}>
|
|
324
|
+
* <button onClick={() => setIsCollapsed(!isCollapsed)}>
|
|
325
|
+
* {isCollapsed ? <ChevronRight /> : <ChevronLeft />}
|
|
326
|
+
* </button>
|
|
327
|
+
* <nav>
|
|
328
|
+
* {menuItems.map(item => (
|
|
329
|
+
* <MenuItem
|
|
330
|
+
* key={item.id}
|
|
331
|
+
* icon={item.icon}
|
|
332
|
+
* label={isCollapsed ? '' : item.label}
|
|
333
|
+
* />
|
|
334
|
+
* ))}
|
|
335
|
+
* </nav>
|
|
336
|
+
* </aside>
|
|
337
|
+
* ```
|
|
338
|
+
*/
|
|
339
|
+
export const SECTION_COLLAPSIBLE_SIDEBAR = {
|
|
340
|
+
id: 'section.collapsible-sidebar',
|
|
341
|
+
type: 'collapsible',
|
|
342
|
+
description: 'Sidebar with expand/collapse toggle capability and smooth transitions',
|
|
343
|
+
css: {
|
|
344
|
+
display: 'flex',
|
|
345
|
+
flexDirection: 'column',
|
|
346
|
+
width: 'atomic.spacing.64', // 256px expanded
|
|
347
|
+
minWidth: 'atomic.spacing.16', // 64px collapsed
|
|
348
|
+
transition: 'width 200ms ease-in-out',
|
|
349
|
+
overflow: 'hidden',
|
|
350
|
+
willChange: 'width',
|
|
351
|
+
padding: 'atomic.spacing.4',
|
|
352
|
+
},
|
|
353
|
+
responsive: {
|
|
354
|
+
default: {
|
|
355
|
+
display: 'flex',
|
|
356
|
+
flexDirection: 'column',
|
|
357
|
+
width: 'atomic.spacing.0', // Hidden on mobile (use overlay)
|
|
358
|
+
minWidth: 'atomic.spacing.0',
|
|
359
|
+
transition: 'width 200ms ease-in-out, transform 200ms ease-in-out',
|
|
360
|
+
overflow: 'hidden',
|
|
361
|
+
padding: 'atomic.spacing.0',
|
|
362
|
+
},
|
|
363
|
+
sm: {
|
|
364
|
+
width: 'atomic.spacing.0', // Hidden on small screens
|
|
365
|
+
padding: 'atomic.spacing.0',
|
|
366
|
+
},
|
|
367
|
+
md: {
|
|
368
|
+
width: 'atomic.spacing.16', // 64px collapsed on tablet
|
|
369
|
+
minWidth: 'atomic.spacing.16',
|
|
370
|
+
padding: 'atomic.spacing.2',
|
|
371
|
+
},
|
|
372
|
+
lg: {
|
|
373
|
+
width: 'atomic.spacing.64', // 256px expanded on desktop
|
|
374
|
+
minWidth: 'atomic.spacing.16',
|
|
375
|
+
padding: 'atomic.spacing.4',
|
|
376
|
+
},
|
|
377
|
+
xl: {
|
|
378
|
+
width: 'atomic.spacing.64',
|
|
379
|
+
padding: 'atomic.spacing.4',
|
|
380
|
+
},
|
|
381
|
+
'2xl': {
|
|
382
|
+
width: 'atomic.spacing.80', // 320px expanded on large screens
|
|
383
|
+
padding: 'atomic.spacing.5',
|
|
384
|
+
},
|
|
385
|
+
},
|
|
386
|
+
states: {
|
|
387
|
+
default: {
|
|
388
|
+
width: 'atomic.spacing.64',
|
|
389
|
+
overflow: 'hidden',
|
|
390
|
+
},
|
|
391
|
+
collapsed: {
|
|
392
|
+
width: 'atomic.spacing.16',
|
|
393
|
+
minWidth: 'atomic.spacing.16',
|
|
394
|
+
overflow: 'hidden',
|
|
395
|
+
},
|
|
396
|
+
},
|
|
397
|
+
tokenBindings: {
|
|
398
|
+
expandedWidth: 'atomic.spacing.64', // 256px
|
|
399
|
+
collapsedWidth: 'atomic.spacing.16', // 64px
|
|
400
|
+
transitionDuration: '200ms',
|
|
401
|
+
transitionEasing: 'ease-in-out',
|
|
402
|
+
padding: 'atomic.spacing.4',
|
|
403
|
+
background: 'semantic.background.surface',
|
|
404
|
+
borderRight: 'semantic.border.default',
|
|
405
|
+
iconSize: 'atomic.spacing.6', // 24px icons
|
|
406
|
+
itemGap: 'atomic.spacing.2',
|
|
407
|
+
itemPadding: 'atomic.spacing.3',
|
|
408
|
+
itemBorderRadius: 'atomic.radius.md',
|
|
409
|
+
itemHoverBackground: 'semantic.background.muted',
|
|
410
|
+
itemActiveBackground: 'semantic.foreground.accent',
|
|
411
|
+
},
|
|
412
|
+
};
|
|
413
|
+
// ============================================================================
|
|
414
|
+
// Internal Token Map
|
|
415
|
+
// ============================================================================
|
|
416
|
+
/**
|
|
417
|
+
* Internal map for quick advanced section pattern token lookups by ID
|
|
418
|
+
* Used by getAdvancedSectionPatternToken() for O(1) access
|
|
419
|
+
*/
|
|
420
|
+
const ADVANCED_SECTION_PATTERN_TOKENS_MAP = {
|
|
421
|
+
'section.masonry': SECTION_MASONRY,
|
|
422
|
+
'section.sticky-header': SECTION_STICKY_HEADER,
|
|
423
|
+
'section.sticky-footer': SECTION_STICKY_FOOTER,
|
|
424
|
+
'section.collapsible-sidebar': SECTION_COLLAPSIBLE_SIDEBAR,
|
|
425
|
+
};
|
|
426
|
+
// ============================================================================
|
|
427
|
+
// Utility Functions
|
|
428
|
+
// ============================================================================
|
|
429
|
+
/**
|
|
430
|
+
* Get an advanced section pattern token by its ID
|
|
431
|
+
*
|
|
432
|
+
* @param patternId - Advanced section pattern token ID (e.g., "section.masonry")
|
|
433
|
+
* @returns AdvancedSectionPatternToken if found, undefined otherwise
|
|
434
|
+
*
|
|
435
|
+
* @example
|
|
436
|
+
* ```typescript
|
|
437
|
+
* const masonry = getAdvancedSectionPatternToken('section.masonry');
|
|
438
|
+
* if (masonry) {
|
|
439
|
+
* console.log(masonry.description);
|
|
440
|
+
* // "Pinterest-style waterfall grid using CSS columns for broad browser support"
|
|
441
|
+
* }
|
|
442
|
+
* ```
|
|
443
|
+
*/
|
|
444
|
+
export function getAdvancedSectionPatternToken(patternId) {
|
|
445
|
+
return ADVANCED_SECTION_PATTERN_TOKENS_MAP[patternId];
|
|
446
|
+
}
|
|
447
|
+
/**
|
|
448
|
+
* Get all available advanced section pattern tokens
|
|
449
|
+
*
|
|
450
|
+
* @returns Array of all AdvancedSectionPatternTokens
|
|
451
|
+
*
|
|
452
|
+
* @example
|
|
453
|
+
* ```typescript
|
|
454
|
+
* const allAdvanced = getAllAdvancedSectionPatternTokens();
|
|
455
|
+
* console.log(`Available advanced sections: ${allAdvanced.length}`);
|
|
456
|
+
* // "Available advanced sections: 4"
|
|
457
|
+
*
|
|
458
|
+
* allAdvanced.forEach(token => {
|
|
459
|
+
* console.log(`${token.id}: ${token.type}`);
|
|
460
|
+
* });
|
|
461
|
+
* ```
|
|
462
|
+
*/
|
|
463
|
+
export function getAllAdvancedSectionPatternTokens() {
|
|
464
|
+
return Object.values(ADVANCED_SECTION_PATTERN_TOKENS_MAP);
|
|
465
|
+
}
|
|
466
|
+
/**
|
|
467
|
+
* Get advanced section pattern tokens filtered by type
|
|
468
|
+
*
|
|
469
|
+
* @param type - Section type ('masonry', 'sticky', or 'collapsible')
|
|
470
|
+
* @returns Array of AdvancedSectionPatternTokens with the specified type
|
|
471
|
+
*
|
|
472
|
+
* @example
|
|
473
|
+
* ```typescript
|
|
474
|
+
* const stickyTokens = getAdvancedSectionsByType('sticky');
|
|
475
|
+
* console.log(`Sticky sections: ${stickyTokens.length}`);
|
|
476
|
+
* // "Sticky sections: 2" (header and footer)
|
|
477
|
+
* ```
|
|
478
|
+
*/
|
|
479
|
+
export function getAdvancedSectionsByType(type) {
|
|
480
|
+
return getAllAdvancedSectionPatternTokens().filter(section => section.type === type);
|
|
481
|
+
}
|
|
482
|
+
/**
|
|
483
|
+
* Get CSS properties for an advanced section pattern at a specific breakpoint
|
|
484
|
+
*
|
|
485
|
+
* @param patternId - Advanced section pattern token ID
|
|
486
|
+
* @param breakpoint - Breakpoint key ('default', 'sm', 'md', 'lg', 'xl', '2xl')
|
|
487
|
+
* @returns CSS properties for the specified breakpoint, or undefined if not found
|
|
488
|
+
*
|
|
489
|
+
* @example
|
|
490
|
+
* ```typescript
|
|
491
|
+
* const masonryMd = getAdvancedSectionCSS('section.masonry', 'md');
|
|
492
|
+
* if (masonryMd) {
|
|
493
|
+
* console.log(`Columns at md: ${masonryMd.columnCount}`);
|
|
494
|
+
* // "Columns at md: 3"
|
|
495
|
+
* }
|
|
496
|
+
* ```
|
|
497
|
+
*/
|
|
498
|
+
export function getAdvancedSectionCSS(patternId, breakpoint = 'default') {
|
|
499
|
+
const pattern = getAdvancedSectionPatternToken(patternId);
|
|
500
|
+
if (!pattern) {
|
|
501
|
+
return undefined;
|
|
502
|
+
}
|
|
503
|
+
if (breakpoint === 'default') {
|
|
504
|
+
return pattern.responsive.default;
|
|
505
|
+
}
|
|
506
|
+
// Merge default with breakpoint-specific overrides
|
|
507
|
+
const defaultCSS = pattern.responsive.default;
|
|
508
|
+
const breakpointCSS = pattern.responsive[breakpoint];
|
|
509
|
+
if (!breakpointCSS) {
|
|
510
|
+
return defaultCSS;
|
|
511
|
+
}
|
|
512
|
+
return {
|
|
513
|
+
...defaultCSS,
|
|
514
|
+
...breakpointCSS,
|
|
515
|
+
};
|
|
516
|
+
}
|
|
517
|
+
/**
|
|
518
|
+
* Get state-specific CSS for collapsible or sticky patterns
|
|
519
|
+
*
|
|
520
|
+
* @param patternId - Advanced section pattern token ID
|
|
521
|
+
* @param state - State name ('default', 'collapsed', 'stuck')
|
|
522
|
+
* @returns CSS properties for the specified state, or undefined if not found
|
|
523
|
+
*
|
|
524
|
+
* @example
|
|
525
|
+
* ```typescript
|
|
526
|
+
* const collapsedCSS = getAdvancedSectionStateCSS('section.collapsible-sidebar', 'collapsed');
|
|
527
|
+
* if (collapsedCSS) {
|
|
528
|
+
* console.log(`Collapsed width: ${collapsedCSS.width}`);
|
|
529
|
+
* // "Collapsed width: atomic.spacing.16"
|
|
530
|
+
* }
|
|
531
|
+
*
|
|
532
|
+
* const stuckCSS = getAdvancedSectionStateCSS('section.sticky-header', 'stuck');
|
|
533
|
+
* if (stuckCSS) {
|
|
534
|
+
* console.log(`Shadow when stuck: ${stuckCSS.boxShadow}`);
|
|
535
|
+
* // "Shadow when stuck: atomic.shadow.md"
|
|
536
|
+
* }
|
|
537
|
+
* ```
|
|
538
|
+
*/
|
|
539
|
+
export function getAdvancedSectionStateCSS(patternId, state) {
|
|
540
|
+
const pattern = getAdvancedSectionPatternToken(patternId);
|
|
541
|
+
if (!pattern?.states) {
|
|
542
|
+
return undefined;
|
|
543
|
+
}
|
|
544
|
+
return pattern.states[state];
|
|
545
|
+
}
|
|
546
|
+
/**
|
|
547
|
+
* Check if a pattern ID is an advanced section pattern
|
|
548
|
+
*
|
|
549
|
+
* @param patternId - Pattern ID to check
|
|
550
|
+
* @returns true if the pattern is an advanced section pattern
|
|
551
|
+
*
|
|
552
|
+
* @example
|
|
553
|
+
* ```typescript
|
|
554
|
+
* isAdvancedSectionPattern('section.masonry'); // true
|
|
555
|
+
* isAdvancedSectionPattern('section.grid-3'); // false
|
|
556
|
+
* ```
|
|
557
|
+
*/
|
|
558
|
+
export function isAdvancedSectionPattern(patternId) {
|
|
559
|
+
return patternId in ADVANCED_SECTION_PATTERN_TOKENS_MAP;
|
|
560
|
+
}
|
|
561
|
+
/**
|
|
562
|
+
* Get all advanced section pattern IDs
|
|
563
|
+
*
|
|
564
|
+
* @returns Array of all advanced section pattern IDs
|
|
565
|
+
*
|
|
566
|
+
* @example
|
|
567
|
+
* ```typescript
|
|
568
|
+
* const ids = getAdvancedSectionPatternIds();
|
|
569
|
+
* // ['section.masonry', 'section.sticky-header', 'section.sticky-footer', 'section.collapsible-sidebar']
|
|
570
|
+
* ```
|
|
571
|
+
*/
|
|
572
|
+
export function getAdvancedSectionPatternIds() {
|
|
573
|
+
return Object.keys(ADVANCED_SECTION_PATTERN_TOKENS_MAP);
|
|
574
|
+
}
|
|
575
|
+
/**
|
|
576
|
+
* Combine base section patterns with advanced section patterns
|
|
577
|
+
* Useful for getting a complete list of all available section patterns
|
|
578
|
+
*
|
|
579
|
+
* @param baseSections - Array of base SectionPatternTokens from sections.ts
|
|
580
|
+
* @returns Combined array of all section pattern tokens
|
|
581
|
+
*
|
|
582
|
+
* @example
|
|
583
|
+
* ```typescript
|
|
584
|
+
* import { getAllSectionPatternTokens } from './sections.js';
|
|
585
|
+
*
|
|
586
|
+
* const allSections = combineWithBaseSections(getAllSectionPatternTokens());
|
|
587
|
+
* console.log(`Total sections: ${allSections.length}`);
|
|
588
|
+
* ```
|
|
589
|
+
*/
|
|
590
|
+
export function combineWithBaseSections(baseSections) {
|
|
591
|
+
return [...baseSections, ...getAllAdvancedSectionPatternTokens()];
|
|
592
|
+
}
|
|
593
|
+
//# sourceMappingURL=sections-advanced.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sections-advanced.js","sourceRoot":"","sources":["../../src/layout-tokens/sections-advanced.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAWH,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAgC;IAC1D,EAAE,EAAE,iBAAiB;IACrB,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,4EAA4E;IACzF,GAAG,EAAE;QACH,OAAO,EAAE,MAAM,EAAE,2BAA2B;QAC5C,WAAW,EAAE,GAAG;QAChB,SAAS,EAAE,kBAAoC;QAC/C,WAAW,EAAE,OAAO;QACpB,UAAU,EAAE,SAAS;KACD;IACtB,UAAU,EAAE;QACV,OAAO,EAAE;YACP,OAAO,EAAE,MAAM;YACf,WAAW,EAAE,GAAG;YAChB,SAAS,EAAE,kBAAoC;YAC/C,WAAW,EAAE,OAAO;YACpB,UAAU,EAAE,MAAM;SACE;QACtB,EAAE,EAAE;YACF,WAAW,EAAE,GAAG;YAChB,SAAS,EAAE,kBAAoC;SAClB;QAC/B,EAAE,EAAE;YACF,WAAW,EAAE,GAAG;YAChB,SAAS,EAAE,kBAAoC;SAClB;QAC/B,EAAE,EAAE;YACF,WAAW,EAAE,GAAG;YAChB,SAAS,EAAE,kBAAoC;SAClB;QAC/B,EAAE,EAAE;YACF,WAAW,EAAE,GAAG;YAChB,SAAS,EAAE,kBAAoC;SAClB;QAC/B,KAAK,EAAE;YACL,WAAW,EAAE,GAAG;YAChB,SAAS,EAAE,kBAAoC;SAClB;KAChC;IACD,aAAa,EAAE;QACb,GAAG,EAAE,kBAAkB;QACvB,SAAS,EAAE,kBAAkB;QAC7B,cAAc,EAAE,6BAA6B;QAC7C,gBAAgB,EAAE,kBAAkB;QACpC,UAAU,EAAE,kBAAkB;QAC9B,OAAO,EAAE,YAAY;KACtB;CACF,CAAC;AAEF,+EAA+E;AAC/E,8BAA8B;AAC9B,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAgC;IAChE,EAAE,EAAE,uBAAuB;IAC3B,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,yEAAyE;IACtF,GAAG,EAAE;QACH,OAAO,EAAE,MAAM;QACf,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,eAAe;QAC/B,QAAQ,EAAE,QAAQ;QAClB,GAAG,EAAE,kBAAoC;QACzC,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,kBAAoC;QAC7C,eAAe,EAAE,6BAA+C;QAChE,SAAS,EAAE,oBAAsC;KAC9B;IACrB,UAAU,EAAE;QACV,OAAO,EAAE;YACP,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,KAAK;YACpB,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,eAAe;YAC/B,QAAQ,EAAE,QAAQ;YAClB,GAAG,EAAE,kBAAoC;YACzC,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,kBAAoC;YAC7C,eAAe,EAAE,6BAA+C;SAC7C;QACrB,EAAE,EAAE;YACF,OAAO,EAAE,kBAAoC;SACjB;QAC9B,EAAE,EAAE;YACF,OAAO,EAAE,kBAAoC;SACjB;QAC9B,EAAE,EAAE;YACF,OAAO,EAAE,kBAAoC;SACjB;QAC9B,EAAE,EAAE;YACF,OAAO,EAAE,kBAAoC;SACjB;QAC9B,KAAK,EAAE;YACL,OAAO,EAAE,kBAAoC;SACjB;KAC/B;IACD,MAAM,EAAE;QACN,OAAO,EAAE;YACP,SAAS,EAAE,oBAAsC;SAClD;QACD,KAAK,EAAE;YACL,SAAS,EAAE,kBAAoC;YAC/C,eAAe,EAAE,6BAA+C;SACjE;KACF;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,QAAQ;QAClB,GAAG,EAAE,kBAAkB;QACvB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,6BAA6B;QACzC,aAAa,EAAE,oBAAoB;QACnC,WAAW,EAAE,kBAAkB;QAC/B,YAAY,EAAE,yBAAyB;KACxC;CACF,CAAC;AAEF,+EAA+E;AAC/E,8BAA8B;AAC9B,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAgC;IAChE,EAAE,EAAE,uBAAuB;IAC3B,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,uDAAuD;IACpE,GAAG,EAAE;QACH,OAAO,EAAE,MAAM;QACf,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;QACxB,GAAG,EAAE,kBAAoC;QACzC,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,kBAAoC;QAC5C,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,kBAAoC;QAC7C,eAAe,EAAE,6BAA+C;QAChE,SAAS,EAAE,kBAAoC;KAC5B;IACrB,UAAU,EAAE;QACV,OAAO,EAAE;YACP,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,KAAK;YACpB,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;YACxB,GAAG,EAAE,kBAAoC;YACzC,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,kBAAoC;YAC5C,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,kBAAoC;YAC7C,eAAe,EAAE,6BAA+C;YAChE,SAAS,EAAE,kBAAoC;SAC5B;QACrB,EAAE,EAAE;YACF,OAAO,EAAE,kBAAoC;YAC7C,GAAG,EAAE,kBAAoC;SACb;QAC9B,EAAE,EAAE;YACF,OAAO,EAAE,kBAAoC;YAC7C,GAAG,EAAE,kBAAoC;YACzC,SAAS,EAAE,kBAAoC;SACnB;QAC9B,EAAE,EAAE;YACF,OAAO,EAAE,kBAAoC;SACjB;QAC9B,EAAE,EAAE;YACF,OAAO,EAAE,kBAAoC;SACjB;QAC9B,KAAK,EAAE;YACL,OAAO,EAAE,kBAAoC;SACjB;KAC/B;IACD,MAAM,EAAE;QACN,OAAO,EAAE;YACP,SAAS,EAAE,kBAAoC;SAChD;QACD,KAAK,EAAE;YACL,SAAS,EAAE,kBAAoC;SAChD;KACF;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,kBAAkB;QAC1B,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,kBAAkB;QAC3B,GAAG,EAAE,kBAAkB;QACvB,UAAU,EAAE,6BAA6B;QACzC,aAAa,EAAE,kBAAkB;QACjC,SAAS,EAAE,yBAAyB;QACpC,cAAc,EAAE,kBAAkB,EAAE,sDAAsD;KAC3F;CACF,CAAC;AAEF,+EAA+E;AAC/E,oCAAoC;AACpC,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAgC;IACtE,EAAE,EAAE,6BAA6B;IACjC,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,uEAAuE;IACpF,GAAG,EAAE;QACH,OAAO,EAAE,MAAM;QACf,aAAa,EAAE,QAAQ;QACvB,KAAK,EAAE,mBAAqC,EAAE,iBAAiB;QAC/D,QAAQ,EAAE,mBAAqC,EAAE,iBAAiB;QAClE,UAAU,EAAE,yBAAyB;QACrC,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,OAAO;QACnB,OAAO,EAAE,kBAAoC;KACrB;IAC1B,UAAU,EAAE;QACV,OAAO,EAAE;YACP,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;YACvB,KAAK,EAAE,kBAAoC,EAAE,iCAAiC;YAC9E,QAAQ,EAAE,kBAAoC;YAC9C,UAAU,EAAE,sDAAsD;YAClE,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,kBAAoC;SACrB;QAC1B,EAAE,EAAE;YACF,KAAK,EAAE,kBAAoC,EAAE,0BAA0B;YACvE,OAAO,EAAE,kBAAoC;SACZ;QACnC,EAAE,EAAE;YACF,KAAK,EAAE,mBAAqC,EAAE,2BAA2B;YACzE,QAAQ,EAAE,mBAAqC;YAC/C,OAAO,EAAE,kBAAoC;SACZ;QACnC,EAAE,EAAE;YACF,KAAK,EAAE,mBAAqC,EAAE,4BAA4B;YAC1E,QAAQ,EAAE,mBAAqC;YAC/C,OAAO,EAAE,kBAAoC;SACZ;QACnC,EAAE,EAAE;YACF,KAAK,EAAE,mBAAqC;YAC5C,OAAO,EAAE,kBAAoC;SACZ;QACnC,KAAK,EAAE;YACL,KAAK,EAAE,mBAAqC,EAAE,kCAAkC;YAChF,OAAO,EAAE,kBAAoC;SACZ;KACpC;IACD,MAAM,EAAE;QACN,OAAO,EAAE;YACP,KAAK,EAAE,mBAAqC;YAC5C,QAAQ,EAAE,QAAQ;SACnB;QACD,SAAS,EAAE;YACT,KAAK,EAAE,mBAAqC;YAC5C,QAAQ,EAAE,mBAAqC;YAC/C,QAAQ,EAAE,QAAQ;SACnB;KACF;IACD,aAAa,EAAE;QACb,aAAa,EAAE,mBAAmB,EAAE,QAAQ;QAC5C,cAAc,EAAE,mBAAmB,EAAE,OAAO;QAC5C,kBAAkB,EAAE,OAAO;QAC3B,gBAAgB,EAAE,aAAa;QAC/B,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,6BAA6B;QACzC,WAAW,EAAE,yBAAyB;QACtC,QAAQ,EAAE,kBAAkB,EAAE,aAAa;QAC3C,OAAO,EAAE,kBAAkB;QAC3B,WAAW,EAAE,kBAAkB;QAC/B,gBAAgB,EAAE,kBAAkB;QACpC,mBAAmB,EAAE,2BAA2B;QAChD,oBAAoB,EAAE,4BAA4B;KACnD;CACF,CAAC;AAEF,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,mCAAmC,GAAgD;IACvF,iBAAiB,EAAE,eAAe;IAClC,uBAAuB,EAAE,qBAAqB;IAC9C,uBAAuB,EAAE,qBAAqB;IAC9C,6BAA6B,EAAE,2BAA2B;CAC3D,CAAC;AAEF,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,8BAA8B,CAC5C,SAAiB;IAEjB,OAAO,mCAAmC,CAAC,SAAS,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,kCAAkC;IAChD,OAAO,MAAM,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAA0C;IAE1C,OAAO,kCAAkC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACvF,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,qBAAqB,CACnC,SAAiB,EACjB,aAA4D,SAAS;IAErE,MAAM,OAAO,GAAG,8BAA8B,CAAC,SAAS,CAAC,CAAC;IAC1D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;IACpC,CAAC;IAED,mDAAmD;IACnD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;IAC9C,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAErD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO;QACL,GAAG,UAAU;QACb,GAAG,aAAa;KACjB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,0BAA0B,CACxC,SAAiB,EACjB,KAAwC;IAExC,MAAM,OAAO,GAAG,8BAA8B,CAAC,SAAS,CAAC,CAAC;IAC1D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,wBAAwB,CAAC,SAAiB;IACxD,OAAO,SAAS,IAAI,mCAAmC,CAAC;AAC1D,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,4BAA4B;IAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,uBAAuB,CACrC,YAAmC;IAEnC,OAAO,CAAC,GAAG,YAAY,EAAE,GAAG,kCAAkC,EAAE,CAAC,CAAC;AACpE,CAAC"}
|