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.
Files changed (113) hide show
  1. package/README.md +24 -107
  2. package/dist/{blog-post-CMvVQiok.d.ts → blog-post-BBWP5Ln9.d.ts} +36 -1
  3. package/dist/{company-information-DNSi10Q_.d.ts → company-information-BRNLRP0x.d.ts} +1 -0
  4. package/dist/contexts/index.js +3 -1
  5. package/dist/contexts/index.js.map +1 -1
  6. package/dist/design_system/elements/index.d.ts +18 -139
  7. package/dist/design_system/elements/index.js +399 -3672
  8. package/dist/design_system/elements/index.js.map +1 -1
  9. package/dist/design_system/sections/index.d.ts +28 -2
  10. package/dist/design_system/sections/index.js +4669 -7053
  11. package/dist/design_system/sections/index.js.map +1 -1
  12. package/dist/index.d.ts +4 -4
  13. package/dist/index.js +4431 -6928
  14. package/dist/index.js.map +1 -1
  15. package/dist/lib/server-api.d.ts +1 -1
  16. package/dist/themes/index.d.ts +1 -0
  17. package/dist/themes/index.js +3 -1
  18. package/dist/themes/index.js.map +1 -1
  19. package/dist/types/index.d.ts +3 -38
  20. package/dist/utils/photo-helpers.d.ts +4 -2
  21. package/dist/utils/photo-helpers.js +2 -9
  22. package/dist/utils/photo-helpers.js.map +1 -1
  23. package/package.json +11 -2
  24. package/src/design_system/components/ChatWidget.tsx +2 -2
  25. package/src/design_system/elements/avatar/base-components/index.tsx +0 -2
  26. package/src/design_system/elements/buttons/button.balance.tsx +172 -0
  27. package/src/design_system/elements/index.tsx +2 -42
  28. package/src/design_system/elements/photo-fallback/photo-fallback.tsx +2 -2
  29. package/src/design_system/sections/about-home.balance.tsx +112 -0
  30. package/src/design_system/sections/blog-cards.tsx +2 -2
  31. package/src/design_system/sections/blog-gallery.tsx +29 -52
  32. package/src/design_system/sections/blog-post.tsx +15 -12
  33. package/src/design_system/sections/blog-section.balance.tsx +112 -0
  34. package/src/design_system/sections/contact-section-form.aman.tsx +9 -3
  35. package/src/design_system/sections/contact-section-form.balance.tsx +96 -0
  36. package/src/design_system/sections/contact-section-form.barelux.tsx +9 -3
  37. package/src/design_system/sections/contact-section-form.tsx +10 -3
  38. package/src/design_system/sections/contact-section.balance.tsx +62 -0
  39. package/src/design_system/sections/faq-home.balance.tsx +128 -0
  40. package/src/design_system/sections/footer-home.balance.tsx +116 -0
  41. package/src/design_system/sections/header-navigation.balance.tsx +337 -0
  42. package/src/design_system/sections/hero-home.balance.tsx +104 -0
  43. package/src/design_system/sections/home-hero-component.tsx +8 -7
  44. package/src/design_system/sections/index.tsx +17 -0
  45. package/src/design_system/sections/job-application-form.aman.tsx +9 -3
  46. package/src/design_system/sections/job-application-form.barelux.tsx +9 -3
  47. package/src/design_system/sections/job-application-form.tsx +9 -3
  48. package/src/design_system/sections/service-detail-content.tsx +77 -0
  49. package/src/design_system/sections/services-grid.balance.tsx +94 -0
  50. package/src/design_system/sections/services-home.balance.tsx +91 -0
  51. package/src/design_system/sections/statistics-section.balance.tsx +70 -0
  52. package/src/design_system/sections/team-grid.balance.tsx +85 -0
  53. package/src/design_system/sections/testimonials-home.balance.tsx +110 -0
  54. package/src/index.ts +1 -1
  55. package/src/next/contexts/form-definitions.tsx +32 -0
  56. package/src/next/gallery/design-gallery.tsx +701 -0
  57. package/src/next/layouts/root-layout.tsx +41 -17
  58. package/src/next/legal/placeholders.ts +65 -0
  59. package/src/next/legal/privacy-policy.default.ts +95 -0
  60. package/src/next/legal/privacy-policy.tsx +36 -0
  61. package/src/next/legal/terms-of-service.default.ts +80 -0
  62. package/src/next/legal/terms-of-service.tsx +36 -0
  63. package/src/next/providers/ssr-provider.tsx +14 -0
  64. package/src/styles/fonts.css +11 -0
  65. package/src/styles/style-overrides.aman.css +1 -2
  66. package/src/styles/style-overrides.balance.css +137 -0
  67. package/src/styles/style-overrides.barelux.css +1 -2
  68. package/src/styles/theme.css +27 -5
  69. package/src/themes/index.ts +1 -0
  70. package/src/utils/photo-helpers.ts +7 -17
  71. package/src/design_system/elements/avatar/avatar-profile-photo.tsx +0 -128
  72. package/src/design_system/elements/avatar/base-components/avatar-add-button.tsx +0 -34
  73. package/src/design_system/elements/avatar/base-components/avatar-company-icon.tsx +0 -29
  74. package/src/design_system/elements/avatar/utils.ts +0 -12
  75. package/src/design_system/elements/badges/avatar.tsx +0 -133
  76. package/src/design_system/elements/buttons/app-store-buttons-outline.tsx +0 -378
  77. package/src/design_system/elements/buttons/app-store-buttons.tsx +0 -567
  78. package/src/design_system/elements/buttons/button-utility.tsx +0 -116
  79. package/src/design_system/elements/buttons/close-button.tsx +0 -42
  80. package/src/design_system/elements/buttons/social-button.tsx +0 -148
  81. package/src/design_system/elements/buttons/social-logos.tsx +0 -115
  82. package/src/design_system/elements/checkbox/checkbox.tsx +0 -120
  83. package/src/design_system/elements/date-picker/calendar.tsx +0 -101
  84. package/src/design_system/elements/date-picker/cell.tsx +0 -106
  85. package/src/design_system/elements/date-picker/date-input.tsx +0 -32
  86. package/src/design_system/elements/date-picker/date-picker.tsx +0 -86
  87. package/src/design_system/elements/date-picker/date-range-picker.tsx +0 -163
  88. package/src/design_system/elements/date-picker/range-calendar.tsx +0 -161
  89. package/src/design_system/elements/date-picker/range-preset.tsx +0 -28
  90. package/src/design_system/elements/form/hook-form.tsx +0 -75
  91. package/src/design_system/elements/hint-text/hint-text.tsx +0 -33
  92. package/src/design_system/elements/label/label.tsx +0 -50
  93. package/src/design_system/elements/loading-indicator/loading-indicator.tsx +0 -123
  94. package/src/design_system/elements/modals/modal.tsx +0 -41
  95. package/src/design_system/elements/pagination/pagination-dot.tsx +0 -54
  96. package/src/design_system/elements/pagination/pagination-line.tsx +0 -50
  97. package/src/design_system/elements/progress-indicators/progress-circles.tsx +0 -176
  98. package/src/design_system/elements/progress-indicators/progress-indicators.tsx +0 -123
  99. package/src/design_system/elements/progress-indicators/simple-circle.tsx +0 -29
  100. package/src/design_system/elements/radio-buttons/radio-buttons.tsx +0 -129
  101. package/src/design_system/elements/select/multi-select.tsx +0 -358
  102. package/src/design_system/elements/shared-assets/credit-card/credit-card.tsx +0 -237
  103. package/src/design_system/elements/shared-assets/credit-card/icons.tsx +0 -75
  104. package/src/design_system/elements/shared-assets/iphone-mockup.tsx +0 -172
  105. package/src/design_system/elements/shared-assets/section-divider.tsx +0 -12
  106. package/src/design_system/elements/slideout-menus/slideout-menu.tsx +0 -122
  107. package/src/design_system/elements/tabs/tabs.tsx +0 -225
  108. package/src/design_system/elements/tags/base-components/tag-checkbox.tsx +0 -45
  109. package/src/design_system/elements/tags/base-components/tag-close-x.tsx +0 -34
  110. package/src/design_system/elements/tags/tags.tsx +0 -176
  111. package/src/design_system/elements/toggle/toggle.tsx +0 -140
  112. package/src/design_system/hooks/use-breakpoint.ts +0 -40
  113. 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
- Components automatically load theme-specific variants. Set theme in your config and import the corresponding CSS file in `globals.css`.
111
+ ### Themes
112
112
 
113
- ### Creating a New Theme
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
- #### 1. Register Theme
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
- #### 3. Create CSS Overrides
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
- /* Override Tailwind utilities if needed */
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
- #### 4. Use in Customer Site
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
- In `app/globals.css`:
176
- ```css
177
- @import "keystone-design-bootstrap/styles/fonts.css";
178
- @import "keystone-design-bootstrap/styles/theme.css";
179
- @import "keystone-design-bootstrap/styles/typography.css";
180
- @import "keystone-design-bootstrap/styles/style-overrides.mytheme.css"; /* Your theme */
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
- ## Design Rules
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
- - **Prop Consistency**: Theme variants MUST use identical props interface as base component
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, BlogPostParams as a, BlogPostResponse as b, BlogPostAuthor as c, BlogPostTag as d };
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 };
@@ -39,6 +39,7 @@ interface CompanyInformation {
39
39
  updated_at: string;
40
40
  photo_attachments?: PhotoAttachment[];
41
41
  account_status?: string;
42
+ chat_enabled?: boolean;
42
43
  }
43
44
  type CompanyInformationResponse = CompanyInformation | null;
44
45
 
@@ -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;;;ADdA,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
+ {"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$1 from 'react';
2
- import React__default, { ReactNode, Ref, ComponentType, HTMLAttributes, ComponentPropsWithRef, RefAttributes, PropsWithChildren, CSSProperties, FC, SVGProps } from 'react';
3
- import * as react_aria_components from 'react-aria-components';
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$1.JSX.Element;
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$1.JSX.Element;
157
+ declare const StarIcon: ({ progress, ...props }: StarIconProps) => React.JSX.Element;
261
158
 
262
- declare const Wreath: (props: HTMLAttributes<HTMLOrSVGElement>) => React$1.JSX.Element;
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$1.Context<CarouselContextProps | null>;
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$1.JSX.Element;
352
- Content: ({ className, overflowHidden, ...props }: CarouselContentProps) => React$1.JSX.Element;
353
- Item: ({ className, ...props }: ComponentPropsWithRef<"div">) => React$1.JSX.Element;
354
- PrevTrigger: (props: Omit<TriggerProps, "direction">) => React$1.JSX.Element;
355
- NextTrigger: (props: Omit<TriggerProps, "direction">) => React$1.JSX.Element;
356
- IndicatorGroup: ({ children, ...props }: CarouselIndicatorGroupProps) => React$1.JSX.Element;
357
- Indicator: ({ index, isSelected, children, asChild, className, style }: CarouselIndicatorProps) => React$1.JSX.Element;
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$1.JSX.Element;
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$1.JSX.Element | null;
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$1.JSX.Element;
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 { AppStoreButton, Avatar, AvatarLabelGroup, AvatarProfilePhoto, Badge, BadgeGroup, BadgeWithDot, Breadcrumb, Button, ButtonGroup, Carousel, CarouselContext, CarouselSectionWrapper, Checkbox, CircleProgressBar, CloseButton, ComboBox, DatePicker, DateRangePicker, FeaturedIcon, Form, FormContainer, GoogleMap, GooglePlayButton, HintText, Input, InputBase, InputGroup, Label, LoadingIndicator, MarkdownRenderer, MultiSelect, NativeSelect, Pagination, PaginationDot, PaginationLine, PaginationPageDefault, PaginationPageMinimalCenter, PhotoWithFallback, PrivacyCheckbox, ProgressBar, ProgressBarCircle, RadioButton, RadioGroup, RatingBadge, RatingStars, RoundButton, Select, SelectItem, SlideoutMenu, SocialButton, StarIcon, Tabs, Tag, TagGroup, TagList, Textarea, Toggle, Tooltip, VerifiedTick, VideoModal, VideoPlayButton, Wreath, getStarProgress, useCarousel };
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 };