@mhmo91/schmancy 0.5.46 → 0.6.1

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 (55) hide show
  1. package/ai/content-drawer.md +22 -11
  2. package/ai/sheet.md +32 -47
  3. package/dist/ai/content-drawer.md +22 -11
  4. package/dist/ai/sheet.md +32 -47
  5. package/dist/area.component-DAPQYHtN.cjs.map +1 -1
  6. package/dist/area.component-DUGxsL2-.js.map +1 -1
  7. package/dist/{avatar-CcHlQTbR.js → avatar-Bp8OELqy.js} +29 -46
  8. package/dist/avatar-Bp8OELqy.js.map +1 -0
  9. package/dist/{avatar-D93Sjal-.cjs → avatar-gH9_xHZs.cjs} +9 -14
  10. package/dist/avatar-gH9_xHZs.cjs.map +1 -0
  11. package/dist/badge.cjs +1 -1
  12. package/dist/badge.js +1 -1
  13. package/dist/content-drawer.cjs +1 -1
  14. package/dist/content-drawer.js +1 -1
  15. package/dist/{email-recipients-C-5ER5TU.js → email-recipients-DPpv0qRr.js} +4 -4
  16. package/dist/email-recipients-DPpv0qRr.js.map +1 -0
  17. package/dist/{email-recipients-DRxGI7gT.cjs → email-recipients-Uogc-X_3.cjs} +3 -3
  18. package/dist/email-recipients-Uogc-X_3.cjs.map +1 -0
  19. package/dist/index.cjs +1 -1
  20. package/dist/index.js +4 -4
  21. package/dist/mailbox.cjs +1 -1
  22. package/dist/mailbox.js +1 -1
  23. package/dist/nav-drawer.cjs +1 -1
  24. package/dist/nav-drawer.js +1 -1
  25. package/dist/navigation-bar.cjs +1 -1
  26. package/dist/navigation-bar.js +1 -1
  27. package/dist/{sheet-vJ5lJw8A.cjs → sheet-CcVGEdfr.cjs} +10 -6
  28. package/dist/sheet-CcVGEdfr.cjs.map +1 -0
  29. package/dist/{sheet-PXddkPIR.js → sheet-D5-XmZs5.js} +36 -28
  30. package/dist/sheet-D5-XmZs5.js.map +1 -0
  31. package/dist/sheet.cjs +1 -1
  32. package/dist/sheet.js +2 -2
  33. package/dist/sheet.service-C66WNur0.js +80 -0
  34. package/dist/sheet.service-C66WNur0.js.map +1 -0
  35. package/dist/sheet.service-iUShtJp1.cjs +2 -0
  36. package/dist/sheet.service-iUShtJp1.cjs.map +1 -0
  37. package/dist/teleport.cjs +1 -1
  38. package/dist/teleport.js +1 -1
  39. package/package.json +1 -1
  40. package/readme.md +269 -56
  41. package/types/src/area/router.types.d.ts +5 -1
  42. package/types/src/content-drawer/drawer.service.d.ts +2 -6
  43. package/types/src/mailbox/email-editor.d.ts +1 -1
  44. package/types/src/navigation-bar/navigation-bar.d.ts +16 -2
  45. package/types/src/sheet/sheet.service.d.ts +2 -11
  46. package/dist/avatar-CcHlQTbR.js.map +0 -1
  47. package/dist/avatar-D93Sjal-.cjs.map +0 -1
  48. package/dist/email-recipients-C-5ER5TU.js.map +0 -1
  49. package/dist/email-recipients-DRxGI7gT.cjs.map +0 -1
  50. package/dist/sheet-PXddkPIR.js.map +0 -1
  51. package/dist/sheet-vJ5lJw8A.cjs.map +0 -1
  52. package/dist/sheet.service-BxvWBGsJ.cjs +0 -2
  53. package/dist/sheet.service-BxvWBGsJ.cjs.map +0 -1
  54. package/dist/sheet.service-lXqUf6n5.js +0 -87
  55. package/dist/sheet.service-lXqUf6n5.js.map +0 -1
package/readme.md CHANGED
@@ -1,93 +1,306 @@
1
1
  # Schmancy UI Library
2
2
 
3
- Schmancy is a UI library built as web components, designed to provide a collection of reusable and customizable UI elements for modern web applications. It offers an uncomplicated implementation of Material Design 3 (M3), with minor deviations, utilizing [lit.dev](https://lit.dev/) and [Tailwind CSS](https://tailwindcss.com/), and employs [Vite](https://vitejs.dev/) as the build process.
3
+ [![npm version](https://img.shields.io/npm/v/@mhmo91/schmancy.svg)](https://www.npmjs.com/package/@mhmo91/schmancy)
4
+ [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
4
5
 
5
- ## Features
6
+ Schmancy is a modern, production-ready UI component library built as web components. It provides an elegant implementation of Material Design 3 (M3) with minimal deviations, powered by [Lit](https://lit.dev/), [Tailwind CSS](https://tailwindcss.com/), and [RxJS](https://rxjs.dev/).
6
7
 
7
- - **Web Components**: Built using the Web Components standard, ensuring encapsulation and reusability across different projects.
8
- - **Material Design 3**: Adheres to M3 guidelines, providing a modern and cohesive design language.
9
- - **Customizable**: Easily style and configure components to match your application's design requirements.
10
- - **Lightweight**: Minimal dependencies to keep your application performant.
8
+ **Built for developers who value:** Simplicity, type safety, reactive patterns, and accessibility.
9
+
10
+ ## Key Features
11
+
12
+ - **🧩 Web Components Standard** - Framework-agnostic, works with React, Vue, Angular, or vanilla JS
13
+ - **🎨 Material Design 3** - Modern, cohesive design language with full theming support
14
+ - **⚡ Reactive & Type-Safe** - Built with TypeScript and RxJS for predictable state management
15
+ - **♿ Accessible by Default** - ARIA support, keyboard navigation, and screen reader compatibility
16
+ - **🎯 Tree-Shakeable** - Import only what you need for optimal bundle size
17
+ - **🛠️ Developer-Friendly** - Comprehensive TypeScript types and AI-assisted documentation
11
18
 
12
19
  ## Installation
13
20
 
14
- To install Schmancy
15
- use yarn:
16
- ```bash
17
- yarn add @mhmo91/schmancy
18
- ```
19
- use npm:
21
+ ### Using npm
22
+
20
23
  ```bash
21
24
  npm install @mhmo91/schmancy
22
25
  ```
23
26
 
24
-
25
- Alternatively, if you're using Yarn:
27
+ ### Using yarn
26
28
 
27
29
  ```bash
28
30
  yarn add @mhmo91/schmancy
29
31
  ```
30
32
 
31
- ## Usage
33
+ ### Peer Dependencies
32
34
 
33
- After installation, you can import and use Schmancy components in your project.
35
+ Schmancy requires Lit and Tailwind CSS as peer dependencies:
36
+
37
+ ```bash
38
+ npm install lit tailwindcss
39
+ ```
34
40
 
35
- ### Importing All Components
41
+ ## Quick Start
36
42
 
37
- To import all components:
43
+ ### Import All Components
38
44
 
39
45
  ```javascript
40
46
  import '@mhmo91/schmancy'
41
47
  ```
42
48
 
43
- This will make all Schmancy components available for use in your application.
49
+ This makes all Schmancy components available throughout your application.
44
50
 
45
- ### Importing Individual Components
51
+ ### Import Individual Components
46
52
 
47
- To import a specific component, such as the `schmancy-button`:
53
+ For better tree-shaking and smaller bundle sizes:
48
54
 
49
55
  ```javascript
50
56
  import '@mhmo91/schmancy/button'
57
+ import '@mhmo91/schmancy/input'
58
+ import '@mhmo91/schmancy/select'
51
59
  ```
52
60
 
53
- This will load only the `schmancy-button` component, which can be used as follows:
61
+ ### Basic Usage
54
62
 
55
63
  ```html
56
- <schmancy-button>Click Me</schmancy-button>
57
- ```
64
+ <!-- Buttons with variants -->
65
+ <schmancy-button variant="filled">Primary Action</schmancy-button>
66
+ <schmancy-button variant="outlined">Secondary Action</schmancy-button>
67
+
68
+ <!-- Form inputs with validation -->
69
+ <schmancy-input
70
+ label="Email"
71
+ type="email"
72
+ required
73
+ placeholder="you@example.com"
74
+ ></schmancy-input>
58
75
 
59
- _Note: Replace `'button'` with the desired component name to import other components individually._
76
+ <!-- Select with options -->
77
+ <schmancy-select label="Choose an option" value="option1">
78
+ <schmancy-option value="option1">Option 1</schmancy-option>
79
+ <schmancy-option value="option2">Option 2</schmancy-option>
80
+ </schmancy-select>
81
+
82
+ <!-- Surfaces with elevation -->
83
+ <schmancy-surface elevation="2" rounded="all" class="p-6">
84
+ <schmancy-typography type="headline" token="md">Card Title</schmancy-typography>
85
+ <schmancy-typography type="body" token="md">Card content goes here</schmancy-typography>
86
+ </schmancy-surface>
87
+ ```
60
88
 
61
89
  ## Documentation
62
90
 
63
- For detailed documentation and examples, please visit the [Schmancy Wiki](https://github.com/mhmo91/schmancy/wiki).
64
-
65
- Below is a table linking to each component’s documentation on the GitHub Wiki:
66
-
67
- | Component | Description | Documentation |
68
- | ------------------------- | ------------------------------- | ------------------------------------------------------------------------------------------------- |
69
- | `schmancy-area` | Area component | [Wiki - schmancy-area](https://github.com/mhmo91/schmancy/wiki/schmancy-area) |
70
- | `schmancy-typewriter` | Typewriter component | [Wiki - schmancy-area](https://github.com/mhmo91/schmancy/wiki/schmancy-typewriter) |
71
- | `schmancy-autocomplete` | Autocomplete field | [Wiki - schmancy-autocomplete](https://github.com/mhmo91/schmancy/wiki/schmancy-autocomplete) |
72
- | `schmancy-busy` | Loading/busy indicator | [Wiki - schmancy-busy](https://github.com/mhmo91/schmancy/wiki/schmancy-busy) |
73
- | `schmancy-button` | Customizable button | [Wiki - schmancy-button](https://github.com/mhmo91/schmancy/wiki/schmancy-button) |
74
- | `schmancy-card` | Card for content display | [Wiki - schmancy-card](https://github.com/mhmo91/schmancy/wiki/schmancy-card) |
75
- | `schmancy-checkbox` | Checkbox component | [Wiki - schmancy-checkbox](https://github.com/mhmo91/schmancy/wiki/schmancy-checkbox) |
76
- | `schmancy-chips` | Chips for display or selection | [Wiki - schmancy-chips](https://github.com/mhmo91/schmancy/wiki/schmancy-chips) |
77
- | `schmancy-content-drawer` | Collapsible drawer component | [Wiki - schmancy-content-drawer](https://github.com/mhmo91/schmancy/wiki/schmancy-content-drawer) |
78
- | `schmancy-divider` | Divider for separating sections | [Wiki - schmancy-divider](https://github.com/mhmo91/schmancy/wiki/schmancy-divider) |
79
- | `schmancy-form` | Form component | [Wiki - schmancy-form](https://github.com/mhmo91/schmancy/wiki/schmancy-form) |
80
- | `schmancy-icons` | Icon set | [Wiki - schmancy-icons](https://github.com/mhmo91/schmancy/wiki/schmancy-icons) |
81
- | `schmancy-input` | Input field component | [Wiki - schmancy-input](https://github.com/mhmo91/schmancy/wiki/schmancy-input) |
82
- | `schmancy-layout` | Layout utility | [Wiki - schmancy-layout](https://github.com/mhmo91/schmancy/wiki/schmancy-layout) |
83
- | `schmancy-list` | List component | [Wiki - schmancy-list](https://github.com/mhmo91/schmancy/wiki/schmancy-list) |
84
- | `schmancy-menu` | Menu component | [Wiki - schmancy-menu](https://github.com/mhmo91/schmancy/wiki/schmancy-menu) |
85
- | `schmancy-nav-drawer` | Navigation drawer | [Wiki - schmancy-nav-drawer](https://github.com/mhmo91/schmancy/wiki/schmancy-nav-drawer) |
86
- | `schmancy-notification` | Notification component | [Wiki - schmancy-notification](https://github.com/mhmo91/schmancy/wiki/schmancy-notification) |
87
- | `schmancy-option` | Option selector | [Wiki - schmancy-option](https://github.com/mhmo91/schmancy/wiki/schmancy-option) |
88
- | `schmancy-radio-group` | Radio button group | [Wiki - schmancy-radio-group](https://github.com/mhmo91/schmancy/wiki/schmancy-radio-group) |
89
- | `schmancy-select` | Select dropdown | [Wiki - schmancy-select](https://github.com/mhmo91/schmancy/wiki/schmancy-select) |
90
- | `schmancy-sheet` | Sheet component | [Wiki - schmancy-sheet](https://github.com/mhmo91/schmancy/wiki/schmancy-sheet) |
91
- | `schmancy-surface` | Surface element | [Wiki - schmancy-surface](https://github.com/mhmo91/schmancy/wiki/schmancy-surface) |
92
- | `schmancy-table` | Table component | [Wiki - schmancy-table](https://github.com/mhmo91/schmancy/wiki/schmancy-table) |
93
- | `schmancy-tabs` | Tabbed navigation | [Wiki - schmancy-tabs](https://github.com/mhmo91/schmancy/wiki/schmancy-tabs) |
91
+ ### 📚 User Documentation
92
+
93
+ - **[GitHub Wiki](https://github.com/mhmo91/schmancy/wiki)** - Comprehensive guides, examples, and API reference
94
+ - **[Component Demos](https://schmancy-demo.netlify.app)** - Interactive examples and live playground
95
+
96
+ ### 🤖 AI-Assisted Development
97
+
98
+ The `/ai/` directory contains concise reference documentation optimized for AI assistants and LLM-based tools:
99
+
100
+ - **[AI Documentation Index](./ai/index.md)** - Overview and quick reference
101
+ - **[Component Relationships](./ai/component-relationships.md)** - How components work together
102
+ - **[Documentation Template](./ai/template.md)** - Contribution guidelines
103
+
104
+ #### Component References
105
+
106
+ <details>
107
+ <summary><strong>Core Components</strong></summary>
108
+
109
+ - [Animated Text](./ai/animated-text.md) - Animated text effects
110
+ - [Autocomplete](./ai/autocomplete.md) - Searchable input with suggestions
111
+ - [Avatar](./ai/avatar.md) - User profile images
112
+ - [Badge](./ai/badge.md) - Status indicators
113
+ - [Button](./ai/button.md) - Action buttons
114
+ - [Busy/Spinner](./ai/busy.md) - Loading indicators
115
+ - [Card](./ai/card.md) - Content containers
116
+ - [Checkbox](./ai/checkbox.md) - Checkable inputs
117
+ - [Chips](./ai/chips.md) - Compact selection elements
118
+ - [Progress](./ai/progress.md) - Progress indicators
119
+ </details>
120
+
121
+ <details>
122
+ <summary><strong>Form Elements</strong></summary>
123
+
124
+ - [Form](./ai/form.md) - Form containers with validation
125
+ - [Input](./ai/input.md) - Text input fields
126
+ - [Option](./ai/option.md) - Select/autocomplete options
127
+ - [Radio Group](./ai/radio-group.md) - Radio button groups
128
+ - [Select](./ai/select.md) - Dropdown selection
129
+ - [Textarea](./ai/textarea.md) - Multi-line text input
130
+ - [Payment Card Form](./ai/payment-card-form.md) - Credit card input
131
+ </details>
132
+
133
+ <details>
134
+ <summary><strong>Layout & Navigation</strong></summary>
135
+
136
+ - [Area](./ai/area.md) - Routing system
137
+ - [Content Drawer](./ai/content-drawer.md) - Sliding panels
138
+ - [Details](./ai/details.md) - Expandable content
139
+ - [Divider](./ai/divider.md) - Visual separators
140
+ - [Layout](./ai/layout.md) - Layout utilities (deprecated)
141
+ - [Navigation Bar](./ai/navigation-bar.md) - Bottom navigation
142
+ - [Navigation Bar Item](./ai/navigation-bar-item.md) - Navigation items
143
+ - [Navigation Rail](./ai/navigation-rail.md) - Side navigation
144
+ - [Nav Drawer](./ai/nav-drawer.md) - Navigation drawer
145
+ - [Sheet](./ai/sheet.md) - Bottom/side sheets
146
+ - [Tabs](./ai/tabs.md) - Tabbed interfaces
147
+ </details>
148
+
149
+ <details>
150
+ <summary><strong>Feedback & Overlays</strong></summary>
151
+
152
+ - [Dialog](./ai/dialog.md) - Modal dialogs
153
+ - [Dropdown](./ai/dropdown.md) - Floating dropdowns
154
+ - [Menu](./ai/menu.md) - Context menus
155
+ - [Notification](./ai/notification.md) - Toast notifications
156
+ - [Tooltip](./ai/tooltip.md) - Contextual help
157
+ </details>
158
+
159
+ <details>
160
+ <summary><strong>Data Display</strong></summary>
161
+
162
+ - [List](./ai/list.md) - Interactive lists
163
+ - [Table](./ai/table.md) - Data tables
164
+ - [Tree](./ai/tree.md) - Hierarchical views
165
+ - [Slider](./ai/slider.md) - Content carousels
166
+ - [Steps](./ai/steps.md) - Step indicators
167
+ </details>
168
+
169
+ <details>
170
+ <summary><strong>Utilities & Advanced</strong></summary>
171
+
172
+ - [Code Highlight](./ai/code-highlight.md) - Syntax highlighting
173
+ - [Context](./ai/context.md) - Context API
174
+ - [Countries](./ai/countries.md) - Country selector
175
+ - [Date Range](./ai/date-range.md) - Date range picker
176
+ - [Date Range Inline](./ai/date-range-inline.md) - Inline date picker
177
+ - [Delay](./ai/delay.md) - Delayed rendering
178
+ - [Directives](./ai/directives.md) - Lit directives
179
+ - [Icons](./ai/icons.md) - Material icons
180
+ - [Mailbox](./ai/mailbox.md) - Message inbox
181
+ - [Map](./ai/map.md) - Map integration
182
+ - [Store](./ai/store.md) - State management
183
+ - [Surface](./ai/surface.md) - Elevation system
184
+ - [Teleport](./ai/teleport.md) - FLIP animations
185
+ - [Theme](./ai/theme.md) - Theming system
186
+ - [Theme Button](./ai/theme-button.md) - Theme switcher
187
+ - [Timezone](./ai/timezone.md) - Timezone selector
188
+ - [Typography](./ai/typography.md) - Text styling
189
+ - [Typewriter](./ai/typewriter.md) - Typing animations
190
+ - [Boat](./ai/boat.md) - Advanced layout system
191
+ </details>
192
+
193
+ ### 👨‍💻 Developer Guidelines
194
+
195
+ If you're contributing to or extending Schmancy, read these essential guides:
196
+
197
+ - **[CLAUDE.md](./CLAUDE.md)** - Project structure and development workflow
198
+ - **[src/CLAUDE.md](./src/CLAUDE.md)** - Library component patterns and architecture
199
+ - **[demo/CLAUDE.md](./demo/CLAUDE.md)** - Demo creation and testing patterns
200
+
201
+ ## Component Overview
202
+
203
+ ### Core Categories
204
+
205
+ | Category | Components | Use Cases |
206
+ |----------|-----------|-----------|
207
+ | **Buttons & Actions** | Button, Icon Button, FAB | User interactions, form submissions |
208
+ | **Form Inputs** | Input, Textarea, Select, Autocomplete, Checkbox, Radio Group | Data collection, user preferences |
209
+ | **Navigation** | Tabs, Nav Drawer, Navigation Bar, Area Router | App navigation, content organization |
210
+ | **Feedback** | Dialog, Notification, Tooltip, Progress, Busy | User feedback, loading states |
211
+ | **Layout** | Surface, Card, Divider, Content Drawer | Content structure, visual hierarchy |
212
+ | **Data Display** | Table, List, Tree, Typography | Data presentation, content display |
213
+ | **Advanced** | Theme System, Store, Context API | Theming, state management |
214
+
215
+ ### Architecture Highlights
216
+
217
+ - **$LitElement Mixin** - Base class providing reactive cleanup, classMap, styleMap, and component discovery
218
+ - **RxJS Integration** - Built-in reactive patterns with automatic cleanup via `takeUntil(this.disconnecting)`
219
+ - **Context System** - Type-safe state management with `@select` decorator and compound selectors
220
+ - **Theme System** - Material Design 3 theming with CSS custom properties and Tailwind integration
221
+ - **Accessibility First** - ARIA attributes, keyboard navigation, and screen reader support built-in
222
+
223
+ ## Development
224
+
225
+ ### Running the Demo Site
226
+
227
+ ```bash
228
+ yarn dev
229
+ ```
230
+
231
+ This starts the development server with live reload at `http://localhost:5173`.
232
+
233
+ ### Building the Library
234
+
235
+ ```bash
236
+ yarn build
237
+ ```
238
+
239
+ Compiles TypeScript and bundles the library to `/dist`.
240
+
241
+ ### Running Tests
242
+
243
+ ```bash
244
+ yarn test # Run tests once
245
+ yarn test:watch # Watch mode
246
+ yarn test:ui # Interactive UI
247
+ yarn test:coverage # With coverage report
248
+ ```
249
+
250
+ ### Project Structure
251
+
252
+ ```
253
+ schmancy/
254
+ ├── src/ # Library source code
255
+ │ ├── Button/ # Component directories
256
+ │ ├── Input/
257
+ │ └── ...
258
+ ├── demo/ # Demo site
259
+ │ └── src/
260
+ │ └── features/ # Component demos
261
+ ├── ai/ # AI reference docs
262
+ ├── types/ # TypeScript definitions
263
+ └── dist/ # Build output
264
+ ```
265
+
266
+ ## Contributing
267
+
268
+ We welcome contributions! Please:
269
+
270
+ 1. Read the [developer guidelines](./CLAUDE.md)
271
+ 2. Check existing [issues](https://github.com/mhmo91/schmancy/issues)
272
+ 3. Follow the established patterns in [src/CLAUDE.md](./src/CLAUDE.md)
273
+ 4. Add demos following [demo/CLAUDE.md](./demo/CLAUDE.md)
274
+ 5. Ensure tests pass and types are correct
275
+ 6. Submit a pull request
276
+
277
+ ## Browser Support
278
+
279
+ Schmancy supports all modern browsers that implement the Web Components standard:
280
+
281
+ - Chrome/Edge 90+
282
+ - Firefox 88+
283
+ - Safari 14+
284
+
285
+ ## License
286
+
287
+ Apache License 2.0 - see [LICENSE](LICENSE) file for details.
288
+
289
+ ## Credits
290
+
291
+ Built with:
292
+ - [Lit](https://lit.dev/) - Efficient web components
293
+ - [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS
294
+ - [RxJS](https://rxjs.dev/) - Reactive programming
295
+ - [Material Design 3](https://m3.material.io/) - Design system
296
+
297
+ ## Links
298
+
299
+ - **npm Package**: [@mhmo91/schmancy](https://www.npmjs.com/package/@mhmo91/schmancy)
300
+ - **GitHub Repository**: [mhmo91/schmancy](https://github.com/mhmo91/schmancy)
301
+ - **Issue Tracker**: [GitHub Issues](https://github.com/mhmo91/schmancy/issues)
302
+ - **Documentation Wiki**: [GitHub Wiki](https://github.com/mhmo91/schmancy/wiki)
303
+
304
+ ---
305
+
306
+ Made with ❤️ by [@mhmo91](https://github.com/mhmo91)
@@ -1,6 +1,10 @@
1
1
  import { LazyComponent } from './lazy';
2
+ /**
3
+ * Component type accepted by area router, drawer, and sheet services
4
+ */
5
+ export type ComponentType = CustomElementConstructor | string | HTMLElement | LazyComponent<any>;
2
6
  export type RouteAction = {
3
- component: CustomElementConstructor | string | HTMLElement | LazyComponent<any>;
7
+ component: ComponentType;
4
8
  area: string;
5
9
  state?: Record<string, unknown>;
6
10
  params?: Record<string, unknown>;
@@ -1,5 +1,6 @@
1
+ import { ComponentType } from '../area/router.types';
1
2
  type TRef = Element | Window;
2
- type TRenderRequest = HTMLElement;
3
+ type TRenderRequest = ComponentType;
3
4
  export type TRenderCustomEvent = CustomEvent<{
4
5
  component: TRenderRequest;
5
6
  title?: string;
@@ -7,9 +8,6 @@ export type TRenderCustomEvent = CustomEvent<{
7
8
  params?: Record<string, unknown>;
8
9
  props?: Record<string, unknown>;
9
10
  }>;
10
- type ComponentType = string | HTMLElement | (() => HTMLElement) | (() => Promise<{
11
- default: any;
12
- }>);
13
11
  export type DrawerPushOptions = {
14
12
  component: ComponentType;
15
13
  state?: Record<string, unknown>;
@@ -18,14 +16,12 @@ export type DrawerPushOptions = {
18
16
  };
19
17
  declare class DrawerService {
20
18
  private $drawer;
21
- private lastComponent;
22
19
  constructor();
23
20
  private dispatchToggleEvent;
24
21
  private dispatchRenderEvent;
25
22
  dimiss(ref: TRef): void;
26
23
  render(ref: TRef, component: TRenderRequest, title?: string): void;
27
24
  private handlePush;
28
- private resolveComponent;
29
25
  /**
30
26
  * Push a component to the content drawer
31
27
  * @param options - Component configuration object with optional state/params/props
@@ -1,5 +1,5 @@
1
- import type { EmailAttachment, EmailComposeConfig, EmailTemplate } from './types';
2
1
  import './email-layout-selector';
2
+ import type { EmailAttachment, EmailComposeConfig, EmailTemplate } from './types';
3
3
  declare const SchmancyEmailEditor_base: CustomElementConstructor & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
4
4
  /**
5
5
  * Email editor component with rich text formatting and file attachments
@@ -3,21 +3,35 @@ declare const SchmancyNavigationBar_base: import("../../mixins").Constructor<Cus
3
3
  * `<schmancy-navigation-bar>` component
4
4
  *
5
5
  * A horizontal navigation component following Material Design 3 specifications.
6
- * Navigation bars provide access to between 3-7 primary destinations, fixed at the bottom of the viewport.
6
+ * Navigation bars provide access to between 3-7 primary destinations.
7
7
  * Automatically hides in fullscreen mode when triggered via schmancyTheme.next({ fullscreen: true }).
8
8
  *
9
+ * **IMPORTANT**: This component does not apply positioning by default. The consumer is responsible
10
+ * for positioning the navigation bar in their layout. For typical bottom-fixed positioning, add:
11
+ * `class="fixed bottom-0 left-0 right-0 z-10"` or similar CSS to position the component.
12
+ *
9
13
  * @element schmancy-navigation-bar
10
14
  * @slot - Default slot for navigation bar items
11
15
  *
12
16
  * @fires navigation-change - When an item is selected
13
17
  *
14
18
  * @example
15
- * <schmancy-navigation-bar activeIndex="0">
19
+ * <!-- Fixed at bottom (typical usage) -->
20
+ * <schmancy-navigation-bar activeIndex="0" class="fixed bottom-0 left-0 right-0 z-10">
16
21
  * <schmancy-navigation-bar-item icon="home" label="Home"></schmancy-navigation-bar-item>
17
22
  * <schmancy-navigation-bar-item icon="search" label="Search"></schmancy-navigation-bar-item>
18
23
  * <schmancy-navigation-bar-item icon="favorite" label="Favorites"></schmancy-navigation-bar-item>
19
24
  * <schmancy-navigation-bar-item icon="settings" label="Settings"></schmancy-navigation-bar-item>
20
25
  * </schmancy-navigation-bar>
26
+ *
27
+ * @example
28
+ * <!-- Within a container (demo/mockup usage) -->
29
+ * <div class="flex flex-col h-screen">
30
+ * <main class="flex-1">Content</main>
31
+ * <schmancy-navigation-bar activeIndex="0">
32
+ * <schmancy-navigation-bar-item icon="home" label="Home"></schmancy-navigation-bar-item>
33
+ * </schmancy-navigation-bar>
34
+ * </div>
21
35
  */
22
36
  export declare class SchmancyNavigationBar extends SchmancyNavigationBar_base {
23
37
  /**
@@ -1,19 +1,17 @@
1
1
  import { Subject } from 'rxjs';
2
+ import { ComponentType } from '../area/router.types';
2
3
  import SchmancySheet from './sheet';
3
4
  export declare enum SchmancySheetPosition {
4
5
  Side = "side",
5
6
  Bottom = "bottom"
6
7
  }
7
8
  export type SheetConfig = {
8
- component: HTMLElement;
9
+ component: ComponentType;
9
10
  uid?: string;
10
11
  position?: SchmancySheetPosition;
11
12
  persist?: boolean;
12
13
  close?: () => void;
13
14
  lock?: boolean;
14
- handleHistory?: boolean;
15
- title?: string;
16
- header?: 'hidden' | 'visible';
17
15
  onBeforeOpen?: (component: HTMLElement) => void;
18
16
  onAfterOpen?: (component: HTMLElement) => void;
19
17
  };
@@ -31,7 +29,6 @@ declare class BottomSheetService {
31
29
  bottomSheet: Subject<SheetConfig>;
32
30
  $dismiss: Subject<string>;
33
31
  private activeSheets;
34
- private sheetComponents;
35
32
  private popStateListenerActive;
36
33
  constructor();
37
34
  /**
@@ -62,12 +59,6 @@ declare class BottomSheetService {
62
59
  * Close all open sheets
63
60
  */
64
61
  closeAll(): void;
65
- /**
66
- * Gets the component instance for a given sheet
67
- * @param uid - The unique identifier of the sheet
68
- * @returns The component instance, or undefined if not found
69
- */
70
- getComponent<T extends HTMLElement = HTMLElement>(uid: string): T | undefined;
71
62
  }
72
63
  export declare const sheet: BottomSheetService;
73
64
  export {};