keystone-design-bootstrap 1.0.32 → 1.0.34
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 +24 -107
- package/dist/{blog-post-CMvVQiok.d.ts → blog-post-BBWP5Ln9.d.ts} +36 -1
- package/dist/{company-information-DNSi10Q_.d.ts → company-information-BRNLRP0x.d.ts} +1 -0
- package/dist/contexts/index.js +3 -1
- package/dist/contexts/index.js.map +1 -1
- package/dist/design_system/elements/index.d.ts +18 -139
- package/dist/design_system/elements/index.js +399 -3672
- package/dist/design_system/elements/index.js.map +1 -1
- package/dist/design_system/sections/index.d.ts +28 -2
- package/dist/design_system/sections/index.js +4669 -7053
- package/dist/design_system/sections/index.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +4431 -6928
- package/dist/index.js.map +1 -1
- package/dist/lib/server-api.d.ts +1 -1
- package/dist/themes/index.d.ts +1 -0
- package/dist/themes/index.js +3 -1
- package/dist/themes/index.js.map +1 -1
- package/dist/types/index.d.ts +3 -38
- package/dist/utils/photo-helpers.d.ts +4 -2
- package/dist/utils/photo-helpers.js +2 -9
- package/dist/utils/photo-helpers.js.map +1 -1
- package/package.json +11 -2
- package/src/design_system/components/ChatWidget.tsx +2 -2
- package/src/design_system/elements/avatar/base-components/index.tsx +0 -2
- package/src/design_system/elements/buttons/button.balance.tsx +172 -0
- package/src/design_system/elements/index.tsx +2 -42
- package/src/design_system/elements/photo-fallback/photo-fallback.tsx +2 -2
- package/src/design_system/sections/about-home.balance.tsx +112 -0
- package/src/design_system/sections/blog-cards.tsx +2 -2
- package/src/design_system/sections/blog-gallery.tsx +29 -52
- package/src/design_system/sections/blog-post.tsx +15 -12
- package/src/design_system/sections/blog-section.balance.tsx +112 -0
- package/src/design_system/sections/contact-section-form.aman.tsx +9 -3
- package/src/design_system/sections/contact-section-form.balance.tsx +96 -0
- package/src/design_system/sections/contact-section-form.barelux.tsx +9 -3
- package/src/design_system/sections/contact-section-form.tsx +10 -3
- package/src/design_system/sections/contact-section.balance.tsx +62 -0
- package/src/design_system/sections/faq-home.balance.tsx +128 -0
- package/src/design_system/sections/footer-home.balance.tsx +116 -0
- package/src/design_system/sections/header-navigation.balance.tsx +337 -0
- package/src/design_system/sections/hero-home.balance.tsx +104 -0
- package/src/design_system/sections/home-hero-component.tsx +8 -7
- package/src/design_system/sections/index.tsx +17 -0
- package/src/design_system/sections/job-application-form.aman.tsx +9 -3
- package/src/design_system/sections/job-application-form.barelux.tsx +9 -3
- package/src/design_system/sections/job-application-form.tsx +9 -3
- package/src/design_system/sections/service-detail-content.tsx +77 -0
- package/src/design_system/sections/services-grid.balance.tsx +94 -0
- package/src/design_system/sections/services-home.balance.tsx +91 -0
- package/src/design_system/sections/statistics-section.balance.tsx +70 -0
- package/src/design_system/sections/team-grid.balance.tsx +85 -0
- package/src/design_system/sections/testimonials-home.balance.tsx +110 -0
- package/src/index.ts +1 -1
- package/src/next/contexts/form-definitions.tsx +32 -0
- package/src/next/gallery/design-gallery.tsx +701 -0
- package/src/next/layouts/root-layout.tsx +41 -17
- package/src/next/legal/placeholders.ts +65 -0
- package/src/next/legal/privacy-policy.default.ts +95 -0
- package/src/next/legal/privacy-policy.tsx +36 -0
- package/src/next/legal/terms-of-service.default.ts +80 -0
- package/src/next/legal/terms-of-service.tsx +36 -0
- package/src/next/providers/ssr-provider.tsx +14 -0
- package/src/styles/fonts.css +11 -0
- package/src/styles/style-overrides.aman.css +1 -2
- package/src/styles/style-overrides.balance.css +137 -0
- package/src/styles/style-overrides.barelux.css +1 -2
- package/src/styles/theme.css +27 -5
- package/src/themes/index.ts +1 -0
- package/src/utils/photo-helpers.ts +7 -17
- package/src/design_system/elements/avatar/avatar-profile-photo.tsx +0 -128
- package/src/design_system/elements/avatar/base-components/avatar-add-button.tsx +0 -34
- package/src/design_system/elements/avatar/base-components/avatar-company-icon.tsx +0 -29
- package/src/design_system/elements/avatar/utils.ts +0 -12
- package/src/design_system/elements/badges/avatar.tsx +0 -133
- package/src/design_system/elements/buttons/app-store-buttons-outline.tsx +0 -378
- package/src/design_system/elements/buttons/app-store-buttons.tsx +0 -567
- package/src/design_system/elements/buttons/button-utility.tsx +0 -116
- package/src/design_system/elements/buttons/close-button.tsx +0 -42
- package/src/design_system/elements/buttons/social-button.tsx +0 -148
- package/src/design_system/elements/buttons/social-logos.tsx +0 -115
- package/src/design_system/elements/checkbox/checkbox.tsx +0 -120
- package/src/design_system/elements/date-picker/calendar.tsx +0 -101
- package/src/design_system/elements/date-picker/cell.tsx +0 -106
- package/src/design_system/elements/date-picker/date-input.tsx +0 -32
- package/src/design_system/elements/date-picker/date-picker.tsx +0 -86
- package/src/design_system/elements/date-picker/date-range-picker.tsx +0 -163
- package/src/design_system/elements/date-picker/range-calendar.tsx +0 -161
- package/src/design_system/elements/date-picker/range-preset.tsx +0 -28
- package/src/design_system/elements/form/hook-form.tsx +0 -75
- package/src/design_system/elements/hint-text/hint-text.tsx +0 -33
- package/src/design_system/elements/label/label.tsx +0 -50
- package/src/design_system/elements/loading-indicator/loading-indicator.tsx +0 -123
- package/src/design_system/elements/modals/modal.tsx +0 -41
- package/src/design_system/elements/pagination/pagination-dot.tsx +0 -54
- package/src/design_system/elements/pagination/pagination-line.tsx +0 -50
- package/src/design_system/elements/progress-indicators/progress-circles.tsx +0 -176
- package/src/design_system/elements/progress-indicators/progress-indicators.tsx +0 -123
- package/src/design_system/elements/progress-indicators/simple-circle.tsx +0 -29
- package/src/design_system/elements/radio-buttons/radio-buttons.tsx +0 -129
- package/src/design_system/elements/select/multi-select.tsx +0 -358
- package/src/design_system/elements/shared-assets/credit-card/credit-card.tsx +0 -237
- package/src/design_system/elements/shared-assets/credit-card/icons.tsx +0 -75
- package/src/design_system/elements/shared-assets/iphone-mockup.tsx +0 -172
- package/src/design_system/elements/shared-assets/section-divider.tsx +0 -12
- package/src/design_system/elements/slideout-menus/slideout-menu.tsx +0 -122
- package/src/design_system/elements/tabs/tabs.tsx +0 -225
- package/src/design_system/elements/tags/base-components/tag-checkbox.tsx +0 -45
- package/src/design_system/elements/tags/base-components/tag-close-x.tsx +0 -34
- package/src/design_system/elements/tags/tags.tsx +0 -176
- package/src/design_system/elements/toggle/toggle.tsx +0 -140
- package/src/design_system/hooks/use-breakpoint.ts +0 -40
- package/src/pages/.gitkeep +0 -3
package/README.md
CHANGED
|
@@ -108,120 +108,37 @@ import { themes } from '@keystone-pzjr/design-bootstrap/themes'
|
|
|
108
108
|
|
|
109
109
|
**Available themes:** `classic`, `aman`, `barelux`
|
|
110
110
|
|
|
111
|
-
|
|
111
|
+
### Themes
|
|
112
112
|
|
|
113
|
-
|
|
113
|
+
- **classic**: Default professional theme, Inter font, neutral colors
|
|
114
|
+
- **aman**: Luxury theme with Playfair Display serifs, warm beige, bronze accents
|
|
115
|
+
- **barelux**: Modern minimal theme with Poppins, clean lines
|
|
114
116
|
|
|
115
|
-
|
|
116
|
-
Add to `src/themes/index.ts`:
|
|
117
|
-
```typescript
|
|
118
|
-
export const THEME_CONFIG = {
|
|
119
|
-
classic: '',
|
|
120
|
-
aman: '.aman',
|
|
121
|
-
barelux: '.barelux',
|
|
122
|
-
mytheme: '.mytheme', // Add your theme
|
|
123
|
-
} as const;
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
#### 2. Add Fonts
|
|
127
|
-
Install Fontsource packages in the design bootstrap:
|
|
128
|
-
```bash
|
|
129
|
-
cd keystone-design-bootstrap
|
|
130
|
-
npm install @fontsource/your-body-font @fontsource/your-display-font
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
Add to `src/styles/fonts.css`:
|
|
134
|
-
```css
|
|
135
|
-
/* MyTheme Fonts */
|
|
136
|
-
@import "@fontsource/your-body-font/400.css";
|
|
137
|
-
@import "@fontsource/your-body-font/600.css";
|
|
138
|
-
@import "@fontsource/your-display-font/400.css";
|
|
139
|
-
@import "@fontsource/your-display-font/700.css";
|
|
140
|
-
```
|
|
117
|
+
### Creating a Theme
|
|
141
118
|
|
|
142
|
-
|
|
143
|
-
Create `src/styles/style-overrides.mytheme.css`:
|
|
144
|
-
```css
|
|
145
|
-
[data-theme="mytheme"] {
|
|
146
|
-
/* Typography */
|
|
147
|
-
--font-body: "YourBodyFont", sans-serif;
|
|
148
|
-
--font-display: "YourDisplayFont", serif;
|
|
149
|
-
|
|
150
|
-
/* Colors - set both prefixes */
|
|
151
|
-
--color-bg-primary: #FFFFFF;
|
|
152
|
-
--background-color-primary: #FFFFFF;
|
|
153
|
-
--color-bg-secondary: rgb(240, 240, 245);
|
|
154
|
-
--background-color-secondary: rgb(240, 240, 245);
|
|
155
|
-
--color-bg-brand-solid: rgb(100, 120, 200);
|
|
156
|
-
--background-color-brand-solid: rgb(100, 120, 200);
|
|
157
|
-
--color-bg-brand-solid_hover: rgb(80, 100, 180);
|
|
158
|
-
--background-color-brand-solid_hover: rgb(80, 100, 180);
|
|
159
|
-
}
|
|
119
|
+
See [`docs/theme-system.md`](./docs/theme-system.md) for complete instructions.
|
|
160
120
|
|
|
161
|
-
|
|
162
|
-
[data-theme="mytheme"] .bg-secondary {
|
|
163
|
-
background-color: rgb(240, 240, 245) !important;
|
|
164
|
-
}
|
|
121
|
+
**With AI assistance:**
|
|
165
122
|
```
|
|
123
|
+
I am creating a new theme. Here is a link to an example: https://www.example.com
|
|
124
|
+
[Attach screenshots of various pages]
|
|
166
125
|
|
|
167
|
-
|
|
168
|
-
In `config/index.ts`:
|
|
169
|
-
```typescript
|
|
170
|
-
export const config: SiteConfig = {
|
|
171
|
-
site: { theme: "mytheme" }
|
|
172
|
-
}
|
|
126
|
+
Please follow the prompt in /docs/ai-prompt-template.md
|
|
173
127
|
```
|
|
174
128
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
Restart your dev server. Fonts are self-hosted via Fontsource and automatically loaded.
|
|
184
|
-
|
|
185
|
-
#### 5. Create Component Variants (Optional)
|
|
186
|
-
**CRITICAL:** Use the exact same props interface as the base component.
|
|
187
|
-
|
|
188
|
-
Check the base component first:
|
|
189
|
-
```typescript
|
|
190
|
-
// Check: src/design_system/sections/hero-home.tsx
|
|
191
|
-
interface HeroHomeProps {
|
|
192
|
-
title?: string; // ← Use these exact prop names
|
|
193
|
-
subtitle?: string;
|
|
194
|
-
ctaText?: string;
|
|
195
|
-
ctaHref?: string;
|
|
196
|
-
}
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
Then create variant with matching interface. Props should have empty string defaults, not `*TR*` markers. Translation strings belong in the customer template.
|
|
200
|
-
|
|
201
|
-
```typescript
|
|
202
|
-
// src/design_system/sections/hero-home.mytheme.tsx
|
|
203
|
-
export const HeroHome = ({ title, subtitle, ctaText, ctaHref }: HeroHomeProps) => (
|
|
204
|
-
<section className="bg-primary py-20">
|
|
205
|
-
<h1 className="font-display text-display-xl">{title}</h1>
|
|
206
|
-
<p className="font-body text-lg">{subtitle}</p>
|
|
207
|
-
<Button href={ctaHref} color="primary" size="md">{ctaText}</Button>
|
|
208
|
-
</section>
|
|
209
|
-
);
|
|
210
|
-
|
|
211
|
-
import { registerThemeVariant } from '../../lib/component-registry';
|
|
212
|
-
registerThemeVariant('hero-home', 'mytheme', HeroHome);
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
#### 6. Register Component Variants
|
|
216
|
-
In `src/design_system/sections/index.tsx`:
|
|
217
|
-
```typescript
|
|
218
|
-
import './hero-home.mytheme';
|
|
219
|
-
```
|
|
129
|
+
**Manual steps:**
|
|
130
|
+
1. Register in `src/themes/index.ts`
|
|
131
|
+
2. Install fonts via Fontsource
|
|
132
|
+
3. Create `src/styles/style-overrides.{theme}.css`
|
|
133
|
+
4. Create component variants (optional)
|
|
134
|
+
5. Add to design gallery app
|
|
135
|
+
6. Pass lint, typecheck, and build
|
|
220
136
|
|
|
221
|
-
|
|
137
|
+
**Critical rules:**
|
|
138
|
+
- Never modify base components or foundation CSS
|
|
139
|
+
- Use semantic variables/classes only
|
|
140
|
+
- Set BOTH `--color-*` and `--background-*` prefixes
|
|
141
|
+
- Match base component props exactly
|
|
142
|
+
- Ensure `npm run lint`, `npm run typecheck`, `npm run build` pass with zero errors/warnings
|
|
222
143
|
|
|
223
|
-
-
|
|
224
|
-
- **CSS Variables Only**: No hardcoded colors/fonts in components
|
|
225
|
-
- **Semantic Classes**: Use `bg-primary`, `text-fg-primary`, `font-display` (not hardcoded values)
|
|
226
|
-
- **Minimal Overrides**: Keep theme CSS files ~100 lines max
|
|
227
|
-
- **Dual Color Prefixes**: Mirror variables to both `--color-*` and `--background-*` prefixes for compatibility
|
|
144
|
+
See [`.cursor/rules/theme-creation.mdc`](./.cursor/rules/theme-creation.mdc) for detailed rules
|
|
@@ -1,5 +1,40 @@
|
|
|
1
1
|
import { a as PhotoAttachment } from './form-yge25wqW.js';
|
|
2
2
|
|
|
3
|
+
interface Service {
|
|
4
|
+
id: number;
|
|
5
|
+
name: string;
|
|
6
|
+
slug: string;
|
|
7
|
+
description_markdown: string;
|
|
8
|
+
summary?: string;
|
|
9
|
+
pricing_info?: string;
|
|
10
|
+
features_markdown?: string;
|
|
11
|
+
featured: boolean;
|
|
12
|
+
sort_order: number;
|
|
13
|
+
photo_attachments?: Array<{
|
|
14
|
+
id: number;
|
|
15
|
+
featured: boolean;
|
|
16
|
+
attachable_id?: number;
|
|
17
|
+
attachable_type?: string;
|
|
18
|
+
photo?: {
|
|
19
|
+
id: number;
|
|
20
|
+
title: string;
|
|
21
|
+
thumbnail_url?: string;
|
|
22
|
+
medium_url?: string;
|
|
23
|
+
large_url?: string;
|
|
24
|
+
original_url?: string;
|
|
25
|
+
};
|
|
26
|
+
}>;
|
|
27
|
+
created_at: string;
|
|
28
|
+
updated_at: string;
|
|
29
|
+
}
|
|
30
|
+
interface ServiceParams {
|
|
31
|
+
featured?: boolean;
|
|
32
|
+
q?: string;
|
|
33
|
+
page?: number;
|
|
34
|
+
per_page?: number;
|
|
35
|
+
}
|
|
36
|
+
type ServiceResponse = Service[];
|
|
37
|
+
|
|
3
38
|
interface BlogPost {
|
|
4
39
|
id: number;
|
|
5
40
|
title: string;
|
|
@@ -47,4 +82,4 @@ interface BlogPostTag {
|
|
|
47
82
|
updated_at: string;
|
|
48
83
|
}
|
|
49
84
|
|
|
50
|
-
export type { BlogPost as B,
|
|
85
|
+
export type { BlogPost as B, Service as S, BlogPostAuthor as a, BlogPostTag as b, BlogPostParams as c, BlogPostResponse as d, ServiceParams as e, ServiceResponse as f };
|
package/dist/contexts/index.js
CHANGED
|
@@ -7,8 +7,10 @@ var THEME_CONFIG = {
|
|
|
7
7
|
// Base files with no suffix (hero-home.tsx)
|
|
8
8
|
aman: ".aman",
|
|
9
9
|
// Aman Hotels variant files (hero-home.aman.tsx)
|
|
10
|
-
barelux: ".barelux"
|
|
10
|
+
barelux: ".barelux",
|
|
11
11
|
// Bare Lux Studio variant files (hero-home.barelux.tsx)
|
|
12
|
+
balance: ".balance"
|
|
13
|
+
// Balance Aesthetics variant files (hero-home.balance.tsx)
|
|
12
14
|
};
|
|
13
15
|
function isValidTheme(theme) {
|
|
14
16
|
return theme in THEME_CONFIG;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/contexts/ThemeContext.tsx","../../src/themes/index.ts"],"sourcesContent":["'use client';\n\nimport { createContext, useContext } from 'react';\nimport { Theme, isValidTheme } from '../themes';\n\ninterface ThemeContextValue {\n theme: Theme;\n}\n\nconst ThemeContext = createContext<ThemeContextValue>({ theme: 'classic' });\n\nexport function ThemeProvider({ \n theme, \n children \n}: { \n theme: Theme; \n children: React.ReactNode;\n}) {\n // Validate theme at runtime\n if (!isValidTheme(theme)) {\n console.warn(`Invalid theme \"${theme}\", falling back to \"classic\"`);\n theme = 'classic';\n }\n \n return (\n <ThemeContext.Provider value={{ theme }}>\n {children}\n </ThemeContext.Provider>\n );\n}\n\nexport function useTheme() {\n return useContext(ThemeContext);\n}\n","/**\n * Theme Configuration\n * Single source of truth for all themes\n */\n\nexport const THEME_CONFIG = {\n classic: '', // Base files with no suffix (hero-home.tsx)\n aman: '.aman', // Aman Hotels variant files (hero-home.aman.tsx)\n barelux: '.barelux', // Bare Lux Studio variant files (hero-home.barelux.tsx)\n} as const;\n\nexport type Theme = keyof typeof THEME_CONFIG;\n\nexport function getAvailableThemes(): Theme[] {\n return Object.keys(THEME_CONFIG) as Theme[];\n}\n\nexport function getThemeSuffix(theme: Theme): string {\n return THEME_CONFIG[theme] || '';\n}\n\nexport function isValidTheme(theme: string): theme is Theme {\n return theme in THEME_CONFIG;\n}\n"],"mappings":";AAEA,SAAS,eAAe,kBAAkB;;;ACGnC,IAAM,eAAe;AAAA,EAC1B,SAAS;AAAA;AAAA,EACT,MAAM;AAAA;AAAA,EACN,SAAS;AAAA;AACX;AAYO,SAAS,aAAa,OAA+B;AAC1D,SAAO,SAAS;AAClB;;;
|
|
1
|
+
{"version":3,"sources":["../../src/contexts/ThemeContext.tsx","../../src/themes/index.ts"],"sourcesContent":["'use client';\n\nimport { createContext, useContext } from 'react';\nimport { Theme, isValidTheme } from '../themes';\n\ninterface ThemeContextValue {\n theme: Theme;\n}\n\nconst ThemeContext = createContext<ThemeContextValue>({ theme: 'classic' });\n\nexport function ThemeProvider({ \n theme, \n children \n}: { \n theme: Theme; \n children: React.ReactNode;\n}) {\n // Validate theme at runtime\n if (!isValidTheme(theme)) {\n console.warn(`Invalid theme \"${theme}\", falling back to \"classic\"`);\n theme = 'classic';\n }\n \n return (\n <ThemeContext.Provider value={{ theme }}>\n {children}\n </ThemeContext.Provider>\n );\n}\n\nexport function useTheme() {\n return useContext(ThemeContext);\n}\n","/**\n * Theme Configuration\n * Single source of truth for all themes\n */\n\nexport const THEME_CONFIG = {\n classic: '', // Base files with no suffix (hero-home.tsx)\n aman: '.aman', // Aman Hotels variant files (hero-home.aman.tsx)\n barelux: '.barelux', // Bare Lux Studio variant files (hero-home.barelux.tsx)\n balance: '.balance', // Balance Aesthetics variant files (hero-home.balance.tsx)\n} as const;\n\nexport type Theme = keyof typeof THEME_CONFIG;\n\nexport function getAvailableThemes(): Theme[] {\n return Object.keys(THEME_CONFIG) as Theme[];\n}\n\nexport function getThemeSuffix(theme: Theme): string {\n return THEME_CONFIG[theme] || '';\n}\n\nexport function isValidTheme(theme: string): theme is Theme {\n return theme in THEME_CONFIG;\n}\n"],"mappings":";AAEA,SAAS,eAAe,kBAAkB;;;ACGnC,IAAM,eAAe;AAAA,EAC1B,SAAS;AAAA;AAAA,EACT,MAAM;AAAA;AAAA,EACN,SAAS;AAAA;AAAA,EACT,SAAS;AAAA;AACX;AAYO,SAAS,aAAa,OAA+B;AAC1D,SAAO,SAAS;AAClB;;;ADfA,IAAM,eAAe,cAAiC,EAAE,OAAO,UAAU,CAAC;AAEnE,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA;AACF,GAGG;AAED,MAAI,CAAC,aAAa,KAAK,GAAG;AACxB,YAAQ,KAAK,kBAAkB,KAAK,8BAA8B;AAClE,YAAQ;AAAA,EACV;AAEA,SACE,oCAAC,aAAa,UAAb,EAAsB,OAAO,EAAE,MAAM,KACnC,QACH;AAEJ;AAEO,SAAS,WAAW;AACzB,SAAO,WAAW,YAAY;AAChC;","names":[]}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import * as React
|
|
2
|
-
import React__default, { ReactNode, Ref, ComponentType, HTMLAttributes,
|
|
3
|
-
import
|
|
4
|
-
import { TextFieldProps as TextFieldProps$1, Tabs as Tabs$1, TabPanel, TabListProps, TabProps, TabRenderProps, TagGroupProps as TagGroupProps$1, TagProps as TagProps$1, ModalOverlayProps, ModalRenderProps, DialogTrigger, ComboBoxProps as ComboBoxProps$1, ListBoxProps } from 'react-aria-components';
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import React__default, { ReactNode, Ref, ComponentType, HTMLAttributes, CSSProperties, FC, SVGProps, ComponentPropsWithRef, RefAttributes } from 'react';
|
|
3
|
+
import { TextFieldProps as TextFieldProps$1, ComboBoxProps as ComboBoxProps$1, ListBoxProps } from 'react-aria-components';
|
|
5
4
|
import useEmblaCarousel, { UseEmblaCarouselType } from 'embla-carousel-react';
|
|
6
5
|
|
|
7
6
|
interface InputBaseProps extends TextFieldProps {
|
|
@@ -43,77 +42,7 @@ interface TextFieldProps extends BaseProps, TextFieldProps$1, Pick<InputBaseProp
|
|
|
43
42
|
* A2P 10DLC-compliant privacy + SMS consent checkbox. Use on any form that collects phone numbers.
|
|
44
43
|
* Same copy and markup used across contact and job application forms.
|
|
45
44
|
*/
|
|
46
|
-
declare function PrivacyCheckbox$1(): React
|
|
47
|
-
|
|
48
|
-
type Orientation = "horizontal" | "vertical";
|
|
49
|
-
type HorizontalTypes = "button-brand" | "button-gray" | "button-border" | "button-minimal" | "underline";
|
|
50
|
-
type VerticalTypes = "button-brand" | "button-gray" | "button-border" | "button-minimal" | "line";
|
|
51
|
-
type TabTypeColors<T> = T extends "horizontal" ? HorizontalTypes : VerticalTypes;
|
|
52
|
-
declare const sizes: {
|
|
53
|
-
sm: {
|
|
54
|
-
"button-brand": string;
|
|
55
|
-
"button-gray": string;
|
|
56
|
-
"button-border": string;
|
|
57
|
-
"button-minimal": string;
|
|
58
|
-
underline: string;
|
|
59
|
-
line: string;
|
|
60
|
-
};
|
|
61
|
-
md: {
|
|
62
|
-
"button-brand": string;
|
|
63
|
-
"button-gray": string;
|
|
64
|
-
"button-border": string;
|
|
65
|
-
"button-minimal": string;
|
|
66
|
-
underline: string;
|
|
67
|
-
line: string;
|
|
68
|
-
};
|
|
69
|
-
};
|
|
70
|
-
interface TabListComponentProps<T extends object, K extends Orientation> extends TabListProps<T> {
|
|
71
|
-
/** The size of the tab list. */
|
|
72
|
-
size?: keyof typeof sizes;
|
|
73
|
-
/** The type of the tab list. */
|
|
74
|
-
type?: TabTypeColors<K>;
|
|
75
|
-
/** The orientation of the tab list. */
|
|
76
|
-
orientation?: K;
|
|
77
|
-
/** The items of the tab list. */
|
|
78
|
-
items: T[];
|
|
79
|
-
/** Whether the tab list is full width. */
|
|
80
|
-
fullWidth?: boolean;
|
|
81
|
-
}
|
|
82
|
-
interface TabComponentProps extends TabProps {
|
|
83
|
-
/** The label of the tab. */
|
|
84
|
-
label?: ReactNode;
|
|
85
|
-
/** The children of the tab. */
|
|
86
|
-
children?: ReactNode | ((props: TabRenderProps) => ReactNode);
|
|
87
|
-
/** The badge displayed next to the label. */
|
|
88
|
-
badge?: number | string;
|
|
89
|
-
}
|
|
90
|
-
declare const Tabs: {
|
|
91
|
-
({ className, ...props }: ComponentPropsWithRef<typeof Tabs$1>): React$1.JSX.Element;
|
|
92
|
-
Panel: (props: ComponentPropsWithRef<typeof TabPanel>) => React$1.JSX.Element;
|
|
93
|
-
List: <T extends Orientation>({ size, type, orientation: orientationProp, fullWidth, className, children, ...otherProps }: TabListComponentProps<TabComponentProps, T>) => React$1.JSX.Element;
|
|
94
|
-
Item: (props: TabComponentProps) => React$1.JSX.Element;
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
interface TagItem {
|
|
98
|
-
id: string;
|
|
99
|
-
label: string;
|
|
100
|
-
count?: number;
|
|
101
|
-
avatarSrc?: string;
|
|
102
|
-
avatarContrastBorder?: boolean;
|
|
103
|
-
dot?: boolean;
|
|
104
|
-
dotClassName?: string;
|
|
105
|
-
isDisabled?: boolean;
|
|
106
|
-
onClose?: (id: string) => void;
|
|
107
|
-
}
|
|
108
|
-
interface TagGroupProps extends TagGroupProps$1, RefAttributes<HTMLDivElement> {
|
|
109
|
-
label: string;
|
|
110
|
-
size?: "sm" | "md" | "lg";
|
|
111
|
-
}
|
|
112
|
-
declare const TagGroup: ({ label, selectionMode, size, children, ...otherProps }: TagGroupProps) => React$1.JSX.Element;
|
|
113
|
-
declare const TagList: <T extends object>(props: react_aria_components.TagListProps<T> & React.RefAttributes<HTMLDivElement>) => React.ReactElement | null;
|
|
114
|
-
interface TagProps extends TagProps$1, RefAttributes<object>, Omit<TagItem, "label" | "id"> {
|
|
115
|
-
}
|
|
116
|
-
declare const Tag: ({ id, avatarSrc, avatarContrastBorder, dot, dotClassName, isDisabled, count, className, children, onClose, }: PropsWithChildren<TagProps>) => React$1.JSX.Element;
|
|
45
|
+
declare function PrivacyCheckbox$1(): React.JSX.Element;
|
|
117
46
|
|
|
118
47
|
type PaginationPage = {
|
|
119
48
|
/** The type of the pagination item. */
|
|
@@ -216,38 +145,6 @@ declare const Pagination: {
|
|
|
216
145
|
Context: FC<PaginationContextComponentProps>;
|
|
217
146
|
};
|
|
218
147
|
|
|
219
|
-
interface SlideoutMenuProps extends Omit<ModalOverlayProps, "children">, RefAttributes<HTMLDivElement> {
|
|
220
|
-
children: ReactNode | ((children: ModalRenderProps & {
|
|
221
|
-
close: () => void;
|
|
222
|
-
}) => ReactNode);
|
|
223
|
-
dialogClassName?: string;
|
|
224
|
-
}
|
|
225
|
-
declare const Menu: {
|
|
226
|
-
({ children, dialogClassName, ...props }: SlideoutMenuProps): React$1.JSX.Element;
|
|
227
|
-
displayName: string;
|
|
228
|
-
};
|
|
229
|
-
declare const Content: {
|
|
230
|
-
({ role, ...props }: ComponentPropsWithRef<"div">): React$1.JSX.Element;
|
|
231
|
-
displayName: string;
|
|
232
|
-
};
|
|
233
|
-
interface SlideoutHeaderProps extends ComponentPropsWithRef<"header"> {
|
|
234
|
-
onClose?: () => void;
|
|
235
|
-
}
|
|
236
|
-
declare const Header: {
|
|
237
|
-
({ className, children, onClose, ...props }: SlideoutHeaderProps): React$1.JSX.Element;
|
|
238
|
-
displayName: string;
|
|
239
|
-
};
|
|
240
|
-
declare const Footer: {
|
|
241
|
-
(props: ComponentPropsWithRef<"footer">): React$1.JSX.Element;
|
|
242
|
-
displayName: string;
|
|
243
|
-
};
|
|
244
|
-
declare const SlideoutMenu: typeof Menu & {
|
|
245
|
-
Trigger: typeof DialogTrigger;
|
|
246
|
-
Content: typeof Content;
|
|
247
|
-
Header: typeof Header;
|
|
248
|
-
Footer: typeof Footer;
|
|
249
|
-
};
|
|
250
|
-
|
|
251
148
|
declare const getStarProgress: (starPosition: number, rating: number, maxRating?: number) => number;
|
|
252
149
|
interface StarIconProps extends SVGProps<SVGSVGElement> {
|
|
253
150
|
/**
|
|
@@ -257,9 +154,9 @@ interface StarIconProps extends SVGProps<SVGSVGElement> {
|
|
|
257
154
|
*/
|
|
258
155
|
progress?: number;
|
|
259
156
|
}
|
|
260
|
-
declare const StarIcon: ({ progress, ...props }: StarIconProps) => React
|
|
157
|
+
declare const StarIcon: ({ progress, ...props }: StarIconProps) => React.JSX.Element;
|
|
261
158
|
|
|
262
|
-
declare const Wreath: (props: HTMLAttributes<HTMLOrSVGElement>) => React
|
|
159
|
+
declare const Wreath: (props: HTMLAttributes<HTMLOrSVGElement>) => React.JSX.Element;
|
|
263
160
|
|
|
264
161
|
type CarouselApi = UseEmblaCarouselType[1];
|
|
265
162
|
type UseCarouselParameters = Parameters<typeof useEmblaCarousel>;
|
|
@@ -293,7 +190,7 @@ type CarouselContextProps = CarouselProps & {
|
|
|
293
190
|
/** The scroll snaps of the carousel. */
|
|
294
191
|
scrollSnaps: number[];
|
|
295
192
|
};
|
|
296
|
-
declare const CarouselContext: React
|
|
193
|
+
declare const CarouselContext: React.Context<CarouselContextProps | null>;
|
|
297
194
|
declare const useCarousel: () => CarouselContextProps;
|
|
298
195
|
interface CarouselContentProps extends ComponentPropsWithRef<"div"> {
|
|
299
196
|
/** The class name of the content. */
|
|
@@ -348,13 +245,13 @@ interface CarouselIndicatorGroupProps extends Omit<HTMLAttributes<HTMLDivElement
|
|
|
348
245
|
className?: string;
|
|
349
246
|
}
|
|
350
247
|
declare const Carousel: {
|
|
351
|
-
Root: ({ orientation, opts, setApi, plugins, className, children, ...props }: ComponentPropsWithRef<"div"> & CarouselProps) => React
|
|
352
|
-
Content: ({ className, overflowHidden, ...props }: CarouselContentProps) => React
|
|
353
|
-
Item: ({ className, ...props }: ComponentPropsWithRef<"div">) => React
|
|
354
|
-
PrevTrigger: (props: Omit<TriggerProps, "direction">) => React
|
|
355
|
-
NextTrigger: (props: Omit<TriggerProps, "direction">) => React
|
|
356
|
-
IndicatorGroup: ({ children, ...props }: CarouselIndicatorGroupProps) => React
|
|
357
|
-
Indicator: ({ index, isSelected, children, asChild, className, style }: CarouselIndicatorProps) => React
|
|
248
|
+
Root: ({ orientation, opts, setApi, plugins, className, children, ...props }: ComponentPropsWithRef<"div"> & CarouselProps) => React.JSX.Element;
|
|
249
|
+
Content: ({ className, overflowHidden, ...props }: CarouselContentProps) => React.JSX.Element;
|
|
250
|
+
Item: ({ className, ...props }: ComponentPropsWithRef<"div">) => React.JSX.Element;
|
|
251
|
+
PrevTrigger: (props: Omit<TriggerProps, "direction">) => React.JSX.Element;
|
|
252
|
+
NextTrigger: (props: Omit<TriggerProps, "direction">) => React.JSX.Element;
|
|
253
|
+
IndicatorGroup: ({ children, ...props }: CarouselIndicatorGroupProps) => React.JSX.Element;
|
|
254
|
+
Indicator: ({ index, isSelected, children, asChild, className, style }: CarouselIndicatorProps) => React.JSX.Element;
|
|
358
255
|
};
|
|
359
256
|
|
|
360
257
|
interface CarouselSectionWrapperProps {
|
|
@@ -389,27 +286,23 @@ interface ComboBoxProps extends Omit<ComboBoxProps$1<SelectItemType>, "children"
|
|
|
389
286
|
shortcutClassName?: string;
|
|
390
287
|
children: ListBoxProps<SelectItemType>["children"];
|
|
391
288
|
}
|
|
392
|
-
declare const ComboBox: ({ placeholder, shortcut, size, children, items, shortcutClassName, ...otherProps }: ComboBoxProps) => React
|
|
289
|
+
declare const ComboBox: ({ placeholder, shortcut, size, children, items, shortcutClassName, ...otherProps }: ComboBoxProps) => React.JSX.Element;
|
|
393
290
|
|
|
394
291
|
interface VideoModalProps {
|
|
395
292
|
isOpen: boolean;
|
|
396
293
|
onClose: () => void;
|
|
397
294
|
videoUrl: string;
|
|
398
295
|
}
|
|
399
|
-
declare function VideoModal({ isOpen, onClose, videoUrl }: VideoModalProps): React
|
|
296
|
+
declare function VideoModal({ isOpen, onClose, videoUrl }: VideoModalProps): React.JSX.Element | null;
|
|
400
297
|
|
|
401
298
|
interface VideoPlayButtonProps {
|
|
402
299
|
onClick: () => void;
|
|
403
300
|
className?: string;
|
|
404
301
|
}
|
|
405
|
-
declare function VideoPlayButton({ onClick, className }: VideoPlayButtonProps): React
|
|
302
|
+
declare function VideoPlayButton({ onClick, className }: VideoPlayButtonProps): React.JSX.Element;
|
|
406
303
|
|
|
407
304
|
declare const Button: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
408
305
|
declare const RoundButton: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
409
|
-
declare const CloseButton: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
410
|
-
declare const SocialButton: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
411
|
-
declare const AppStoreButton: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
412
|
-
declare const GooglePlayButton: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
413
306
|
declare const ButtonGroup: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
414
307
|
declare const Input: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
415
308
|
declare const InputBase: {
|
|
@@ -417,9 +310,7 @@ declare const InputBase: {
|
|
|
417
310
|
displayName: string;
|
|
418
311
|
};
|
|
419
312
|
declare const Textarea: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
420
|
-
declare const Checkbox: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
421
313
|
declare const PrivacyCheckbox: typeof PrivacyCheckbox$1;
|
|
422
|
-
declare const Toggle: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
423
314
|
declare const Form: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
424
315
|
declare const FormContainer: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
425
316
|
declare const InputGroup: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
@@ -427,14 +318,8 @@ declare const Label: (props: Record<string, unknown>) => React__default.ReactEle
|
|
|
427
318
|
declare const HintText: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
428
319
|
declare const Select: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
429
320
|
declare const SelectItem: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
430
|
-
declare const MultiSelect: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
431
321
|
declare const NativeSelect: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
432
|
-
declare const RadioGroup: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
433
|
-
declare const RadioButton: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
434
|
-
declare const DatePicker: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
435
|
-
declare const DateRangePicker: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
436
322
|
declare const PhotoWithFallback: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
437
|
-
declare const LoadingIndicator: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
438
323
|
declare const Badge: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
439
324
|
declare const BadgeWithDot: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
440
325
|
declare const BadgeGroup: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
@@ -443,18 +328,12 @@ declare const RatingBadge: (props: Record<string, unknown>) => React__default.Re
|
|
|
443
328
|
declare const Tooltip: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
444
329
|
declare const Avatar: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
445
330
|
declare const AvatarLabelGroup: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
446
|
-
declare const AvatarProfilePhoto: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
447
331
|
declare const VerifiedTick: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
448
332
|
declare const Breadcrumb: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
449
333
|
declare const FeaturedIcon: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
450
|
-
declare const ProgressBar: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
451
|
-
declare const ProgressBarCircle: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
452
|
-
declare const CircleProgressBar: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
453
|
-
declare const PaginationDot: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
454
|
-
declare const PaginationLine: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
455
334
|
declare const PaginationPageDefault: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
456
335
|
declare const PaginationPageMinimalCenter: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
457
336
|
declare const GoogleMap: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
458
337
|
declare const MarkdownRenderer: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
|
|
459
338
|
|
|
460
|
-
export {
|
|
339
|
+
export { Avatar, AvatarLabelGroup, Badge, BadgeGroup, BadgeWithDot, Breadcrumb, Button, ButtonGroup, Carousel, CarouselContext, CarouselSectionWrapper, ComboBox, FeaturedIcon, Form, FormContainer, GoogleMap, HintText, Input, InputBase, InputGroup, Label, MarkdownRenderer, NativeSelect, Pagination, PaginationPageDefault, PaginationPageMinimalCenter, PhotoWithFallback, PrivacyCheckbox, RatingBadge, RatingStars, RoundButton, Select, SelectItem, StarIcon, Textarea, Tooltip, VerifiedTick, VideoModal, VideoPlayButton, Wreath, getStarProgress, useCarousel };
|