@francofantomius/material-components 1.0.2 → 1.1.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.
- package/CHANGELOG.md +49 -0
- package/README.md +41 -9
- package/custom-elements.json +19060 -9017
- package/dist/chunks/account-menu-Dau0UHTl.js +1290 -0
- package/dist/chunks/account-menu-Dau0UHTl.js.map +1 -0
- package/dist/chunks/app-drawer-Du1ePzxZ.js +903 -0
- package/dist/chunks/app-drawer-Du1ePzxZ.js.map +1 -0
- package/dist/chunks/bottom-sheet-q79BBYAj.js +402 -0
- package/dist/chunks/bottom-sheet-q79BBYAj.js.map +1 -0
- package/dist/chunks/{button-B4TSZ7Sl.js → button-D2vn7kJ8.js} +9 -8
- package/dist/chunks/button-D2vn7kJ8.js.map +1 -0
- package/dist/chunks/button-group-CNqvJx1n.js +143 -0
- package/dist/chunks/button-group-CNqvJx1n.js.map +1 -0
- package/dist/chunks/carousel-item-BG6kjjjk.js +371 -0
- package/dist/chunks/carousel-item-BG6kjjjk.js.map +1 -0
- package/dist/chunks/date-picker-DJeHi4w-.js +777 -0
- package/dist/chunks/date-picker-DJeHi4w-.js.map +1 -0
- package/dist/chunks/fab-menu.css-3pu930sZ.js +320 -0
- package/dist/chunks/fab-menu.css-3pu930sZ.js.map +1 -0
- package/dist/chunks/{icon-button-BdSc7eot.js → icon-button-BQz73GLa.js} +2 -2
- package/dist/chunks/icon-button-BQz73GLa.js.map +1 -0
- package/dist/chunks/loading-indicator-CvWnZr9o.js +193 -0
- package/dist/chunks/loading-indicator-CvWnZr9o.js.map +1 -0
- package/dist/chunks/menu-item-BBSp5Cqc.js +390 -0
- package/dist/chunks/menu-item-BBSp5Cqc.js.map +1 -0
- package/dist/chunks/navigation-bar-item-C9DfOEzg.js +397 -0
- package/dist/chunks/navigation-bar-item-C9DfOEzg.js.map +1 -0
- package/dist/chunks/navigation-rail-item-6pdhNHJK.js +357 -0
- package/dist/chunks/navigation-rail-item-6pdhNHJK.js.map +1 -0
- package/dist/chunks/{search-bar-TXnqJ-gd.js → search-bar-fUD0qU2P.js} +22 -4
- package/dist/chunks/search-bar-fUD0qU2P.js.map +1 -0
- package/dist/chunks/segmented-button-B0BvGSQ7.js +265 -0
- package/dist/chunks/segmented-button-B0BvGSQ7.js.map +1 -0
- package/dist/chunks/side-sheet-S2w081AK.js +360 -0
- package/dist/chunks/side-sheet-S2w081AK.js.map +1 -0
- package/dist/chunks/slider-D-mnO8yQ.js +450 -0
- package/dist/chunks/slider-D-mnO8yQ.js.map +1 -0
- package/dist/chunks/split-button-DUfjukQY.js +450 -0
- package/dist/chunks/split-button-DUfjukQY.js.map +1 -0
- package/dist/chunks/{table-aRTYzDyE.js → table-CqHnneAj.js} +2 -2
- package/dist/chunks/{table-aRTYzDyE.js.map → table-CqHnneAj.js.map} +1 -1
- package/dist/chunks/time-picker-CZnb2sWz.js +785 -0
- package/dist/chunks/time-picker-CZnb2sWz.js.map +1 -0
- package/dist/chunks/toolbar-DXVQbQKJ.js +271 -0
- package/dist/chunks/toolbar-DXVQbQKJ.js.map +1 -0
- package/dist/chunks/tooltip-CE7JMHMu.js +398 -0
- package/dist/chunks/tooltip-CE7JMHMu.js.map +1 -0
- package/dist/components/account-menu/account-menu.js +8 -0
- package/dist/components/app-drawer/app-drawer.js +9 -0
- package/dist/components/bottom-sheet/bottom-sheet.css.d.ts +2 -0
- package/dist/components/bottom-sheet/bottom-sheet.css.d.ts.map +1 -0
- package/dist/components/bottom-sheet/bottom-sheet.d.ts +69 -0
- package/dist/components/bottom-sheet/bottom-sheet.d.ts.map +1 -0
- package/dist/components/bottom-sheet/bottom-sheet.js +4 -0
- package/dist/components/button/button.css.d.ts.map +1 -1
- package/dist/components/button/button.js +1 -1
- package/dist/components/button-group/button-group.css.d.ts +2 -0
- package/dist/components/button-group/button-group.css.d.ts.map +1 -0
- package/dist/components/button-group/button-group.d.ts +28 -0
- package/dist/components/button-group/button-group.d.ts.map +1 -0
- package/dist/components/button-group/button-group.js +4 -0
- package/dist/components/carousel/carousel-item.d.ts +33 -0
- package/dist/components/carousel/carousel-item.d.ts.map +1 -0
- package/dist/components/carousel/carousel-item.js +4 -0
- package/dist/components/carousel/carousel.css.d.ts +3 -0
- package/dist/components/carousel/carousel.css.d.ts.map +1 -0
- package/dist/components/carousel/carousel.d.ts +81 -0
- package/dist/components/carousel/carousel.d.ts.map +1 -0
- package/dist/components/carousel/carousel.js +284 -0
- package/dist/components/carousel/carousel.js.map +1 -0
- package/dist/components/date-picker/date-picker.css.d.ts +2 -0
- package/dist/components/date-picker/date-picker.css.d.ts.map +1 -0
- package/dist/components/date-picker/date-picker.d.ts +59 -0
- package/dist/components/date-picker/date-picker.d.ts.map +1 -0
- package/dist/components/date-picker/date-picker.js +4 -0
- package/dist/components/fab-menu/fab-menu-item.d.ts +35 -0
- package/dist/components/fab-menu/fab-menu-item.d.ts.map +1 -0
- package/dist/components/fab-menu/fab-menu-item.js +93 -0
- package/dist/components/fab-menu/fab-menu-item.js.map +1 -0
- package/dist/components/fab-menu/fab-menu.css.d.ts +3 -0
- package/dist/components/fab-menu/fab-menu.css.d.ts.map +1 -0
- package/dist/components/fab-menu/fab-menu.d.ts +72 -0
- package/dist/components/fab-menu/fab-menu.d.ts.map +1 -0
- package/dist/components/fab-menu/fab-menu.js +148 -0
- package/dist/components/fab-menu/fab-menu.js.map +1 -0
- package/dist/components/icon-button/icon-button.js +1 -1
- package/dist/components/loading-indicator/loading-indicator.css.d.ts +2 -0
- package/dist/components/loading-indicator/loading-indicator.css.d.ts.map +1 -0
- package/dist/components/loading-indicator/loading-indicator.d.ts +48 -0
- package/dist/components/loading-indicator/loading-indicator.d.ts.map +1 -0
- package/dist/components/loading-indicator/loading-indicator.js +4 -0
- package/dist/components/menu/menu-item.d.ts +41 -0
- package/dist/components/menu/menu-item.d.ts.map +1 -0
- package/dist/components/menu/menu-item.js +4 -0
- package/dist/components/menu/menu.css.d.ts +3 -0
- package/dist/components/menu/menu.css.d.ts.map +1 -0
- package/dist/components/menu/menu.d.ts +91 -0
- package/dist/components/menu/menu.d.ts.map +1 -0
- package/dist/components/menu/menu.js +205 -0
- package/dist/components/menu/menu.js.map +1 -0
- package/dist/components/navigation-bar/navigation-bar-item.d.ts +49 -0
- package/dist/components/navigation-bar/navigation-bar-item.d.ts.map +1 -0
- package/dist/components/navigation-bar/navigation-bar-item.js +5 -0
- package/dist/components/navigation-bar/navigation-bar.css.d.ts +3 -0
- package/dist/components/navigation-bar/navigation-bar.css.d.ts.map +1 -0
- package/dist/components/navigation-bar/navigation-bar.d.ts +50 -0
- package/dist/components/navigation-bar/navigation-bar.d.ts.map +1 -0
- package/dist/components/navigation-bar/navigation-bar.js +150 -0
- package/dist/components/navigation-bar/navigation-bar.js.map +1 -0
- package/dist/components/navigation-rail/navigation-rail-item.d.ts +36 -0
- package/dist/components/navigation-rail/navigation-rail-item.d.ts.map +1 -0
- package/dist/components/navigation-rail/navigation-rail-item.js +5 -0
- package/dist/components/navigation-rail/navigation-rail.css.d.ts +3 -0
- package/dist/components/navigation-rail/navigation-rail.css.d.ts.map +1 -0
- package/dist/components/navigation-rail/navigation-rail.d.ts +43 -0
- package/dist/components/navigation-rail/navigation-rail.d.ts.map +1 -0
- package/dist/components/navigation-rail/navigation-rail.js +121 -0
- package/dist/components/navigation-rail/navigation-rail.js.map +1 -0
- package/dist/components/search-bar/search-bar.css.d.ts.map +1 -1
- package/dist/components/search-bar/search-bar.js +1 -1
- package/dist/components/segmented-button/segmented-button.css.d.ts +3 -0
- package/dist/components/segmented-button/segmented-button.css.d.ts.map +1 -0
- package/dist/components/segmented-button/segmented-button.d.ts +40 -0
- package/dist/components/segmented-button/segmented-button.d.ts.map +1 -0
- package/dist/components/segmented-button/segmented-button.js +5 -0
- package/dist/components/side-sheet/side-sheet.css.d.ts +2 -0
- package/dist/components/side-sheet/side-sheet.css.d.ts.map +1 -0
- package/dist/components/side-sheet/side-sheet.d.ts +57 -0
- package/dist/components/side-sheet/side-sheet.d.ts.map +1 -0
- package/dist/components/side-sheet/side-sheet.js +4 -0
- package/dist/components/slider/slider.css.d.ts +2 -0
- package/dist/components/slider/slider.css.d.ts.map +1 -0
- package/dist/components/slider/slider.d.ts +51 -0
- package/dist/components/slider/slider.d.ts.map +1 -0
- package/dist/components/slider/slider.js +4 -0
- package/dist/components/split-button/split-button.css.d.ts +2 -0
- package/dist/components/split-button/split-button.css.d.ts.map +1 -0
- package/dist/components/split-button/split-button.d.ts +89 -0
- package/dist/components/split-button/split-button.d.ts.map +1 -0
- package/dist/components/split-button/split-button.js +4 -0
- package/dist/components/table/table.js +1 -1
- package/dist/components/time-picker/time-picker.css.d.ts +2 -0
- package/dist/components/time-picker/time-picker.css.d.ts.map +1 -0
- package/dist/components/time-picker/time-picker.d.ts +87 -0
- package/dist/components/time-picker/time-picker.d.ts.map +1 -0
- package/dist/components/time-picker/time-picker.js +4 -0
- package/dist/components/toolbar/toolbar.css.d.ts +2 -0
- package/dist/components/toolbar/toolbar.css.d.ts.map +1 -0
- package/dist/components/toolbar/toolbar.d.ts +53 -0
- package/dist/components/toolbar/toolbar.d.ts.map +1 -0
- package/dist/components/toolbar/toolbar.js +4 -0
- package/dist/components/tooltip/tooltip.css.d.ts +2 -0
- package/dist/components/tooltip/tooltip.css.d.ts.map +1 -0
- package/dist/components/tooltip/tooltip.d.ts +89 -0
- package/dist/components/tooltip/tooltip.d.ts.map +1 -0
- package/dist/components/tooltip/tooltip.js +4 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +148 -2263
- package/dist/tokens/index.js +4 -2
- package/dist/tokens/index.js.map +1 -1
- package/dist/tokens/theme.css.d.ts.map +1 -1
- package/llms.txt +919 -0
- package/package.json +97 -1
- package/dist/chunks/button-B4TSZ7Sl.js.map +0 -1
- package/dist/chunks/icon-button-BdSc7eot.js.map +0 -1
- package/dist/chunks/search-bar-TXnqJ-gd.js.map +0 -1
- package/dist/index.js.map +0 -1
package/llms.txt
CHANGED
|
@@ -20,27 +20,43 @@
|
|
|
20
20
|
- [Component Reference](#component-reference)
|
|
21
21
|
- [Actions](#actions)
|
|
22
22
|
- [Button (`md-button`)](#button-md-button)
|
|
23
|
+
- [Button Group (`md-button-group`)](#button-group-md-button-group)
|
|
24
|
+
- [Segmented Button (`md-segmented-button`, `md-segmented-button-set`)](#segmented-button-md-segmented-button-md-segmented-button-set)
|
|
25
|
+
- [Split Button (`md-split-button`)](#split-button-md-split-button)
|
|
23
26
|
- [Icon Button (`md-icon-button`)](#icon-button-md-icon-button)
|
|
24
27
|
- [Floating Action Button (`md-fab`)](#floating-action-button-md-fab)
|
|
28
|
+
- [FAB Menu (`md-fab-menu`, `md-fab-menu-item`)](#fab-menu-md-fab-menu-md-fab-menu-item)
|
|
29
|
+
- [Toolbar (`md-toolbar`)](#toolbar-md-toolbar)
|
|
25
30
|
- [Inputs & Controls](#inputs--controls)
|
|
26
31
|
- [Text Field (`md-text-field`)](#text-field-md-text-field)
|
|
27
32
|
- [Checkbox (`md-checkbox`)](#checkbox-md-checkbox)
|
|
28
33
|
- [Radio & Radio Group (`md-radio`, `md-radio-group`)](#radio--radio-group-md-radio-md-radio-group)
|
|
29
34
|
- [Switch (`md-switch`)](#switch-md-switch)
|
|
35
|
+
- [Slider (`md-slider`)](#slider-md-slider)
|
|
36
|
+
- [Time Picker (`md-time-picker`)](#time-picker-md-time-picker)
|
|
37
|
+
- [Date Picker (`md-date-picker`)](#date-picker-md-date-picker)
|
|
30
38
|
- [Chip & Chip Set (`md-chip`, `md-chip-set`)](#chip--chip-set-md-chip-md-chip-set)
|
|
31
39
|
- [Search Bar (`md-search-bar`)](#search-bar-md-search-bar)
|
|
32
40
|
- [Surfaces & Containment](#surfaces--containment)
|
|
33
41
|
- [Card (`md-card`)](#card-md-card)
|
|
34
42
|
- [Dialog (`md-dialog`)](#dialog-md-dialog)
|
|
35
43
|
- [Divider (`md-divider`)](#divider-md-divider)
|
|
44
|
+
- [Menu (`md-menu`, `md-menu-item`)](#menu-md-menu-md-menu-item)
|
|
36
45
|
- [List & List Item (`md-list`, `md-list-item`)](#list--list-item-md-list-md-list-item)
|
|
37
46
|
- [Table & Data Table (`md-table`)](#table--data-table-md-table)
|
|
47
|
+
- [Side Sheet (`md-side-sheet`)](#side-sheet-md-side-sheet)
|
|
48
|
+
- [Bottom Sheet (`md-bottom-sheet`)](#bottom-sheet-md-bottom-sheet)
|
|
49
|
+
- [Carousel (`md-carousel`, `md-carousel-item`)](#carousel-md-carousel-md-carousel-item)
|
|
38
50
|
- [Communication & Feedback](#communication--feedback)
|
|
39
51
|
- [Badge (`md-badge`)](#badge-md-badge)
|
|
40
52
|
- [Progress Indicators (`md-progress`)](#progress-indicators-md-progress)
|
|
53
|
+
- [Loading Indicator (`md-loading-indicator`)](#loading-indicator-md-loading-indicator)
|
|
41
54
|
- [Snackbar (`md-snackbar`)](#snackbar-md-snackbar)
|
|
55
|
+
- [Tooltip (`md-tooltip`)](#tooltip-md-tooltip)
|
|
42
56
|
- [Navigation](#navigation)
|
|
57
|
+
- [Navigation Bar (`md-navigation-bar`, `md-navigation-bar-item`)](#navigation-bar-md-navigation-bar-md-navigation-bar-item)
|
|
43
58
|
- [Navigation Drawer (`md-navigation-drawer`, `md-navigation-drawer-item`)](#navigation-drawer-md-navigation-drawer-md-navigation-drawer-item)
|
|
59
|
+
- [Navigation Rail (`md-navigation-rail`, `md-navigation-rail-item`)](#navigation-rail-md-navigation-rail-md-navigation-rail-item)
|
|
44
60
|
- [Top App Bar (`md-top-app-bar`)](#top-app-bar-md-top-app-bar)
|
|
45
61
|
- [Tabs (`md-tabs`, `md-tab`)](#tabs-md-tabs-md-tab)
|
|
46
62
|
- [App Drawer (`md-app-drawer`, `md-app-drawer-item`)](#app-drawer-md-app-drawer-md-app-drawer-item)
|
|
@@ -320,23 +336,39 @@ const isEnabled = ref(true);
|
|
|
320
336
|
| Category | Component Tag | Subpath Import | Description |
|
|
321
337
|
| :--- | :--- | :--- | :--- |
|
|
322
338
|
| **Actions** | `<md-button>` | `@francofantomius/material-components/button` | Buttons with 5 visual emphasis levels |
|
|
339
|
+
| **Actions** | `<md-button-group>` | `@francofantomius/material-components/button-group` | Button groups with connected shape-shifting or standard layouts |
|
|
340
|
+
| **Actions** | `<md-segmented-button>`, `<md-segmented-button-set>` | `@francofantomius/material-components/segmented-button` | Compact single or multi-select option groups |
|
|
341
|
+
| **Actions** | `<md-split-button>` | `@francofantomius/material-components/split-button` | Primary action button with connected dropdown trigger |
|
|
323
342
|
| **Actions** | `<md-icon-button>` | `@francofantomius/material-components/icon-button` | Compact action & toggle buttons |
|
|
324
343
|
| **Actions** | `<md-fab>` | `@francofantomius/material-components/fab` | Floating Action Button (small, medium, large, extended) |
|
|
344
|
+
| **Actions** | `<md-fab-menu>`, `<md-fab-menu-item>` | `@francofantomius/material-components/fab-menu` | FAB Menu / Speed Dial expanding into stacked sub-actions with labels and modal scrim |
|
|
345
|
+
| **Actions** | `<md-toolbar>` | `@francofantomius/material-components/toolbar` | M3 Expressive floating & docked action toolbar |
|
|
325
346
|
| **Inputs & Controls** | `<md-text-field>` | `@francofantomius/material-components/text-field` | Filled & outlined inputs with validation |
|
|
326
347
|
| **Inputs & Controls** | `<md-checkbox>` | `@francofantomius/material-components/checkbox` | Checkbox with indeterminate and error states |
|
|
327
348
|
| **Inputs & Controls** | `<md-radio>`, `<md-radio-group>` | `@francofantomius/material-components/radio` | Mutually exclusive radio selections |
|
|
328
349
|
| **Inputs & Controls** | `<md-switch>` | `@francofantomius/material-components/switch` | Toggle switch with optional thumb icons |
|
|
350
|
+
| **Inputs & Controls** | `<md-slider>` | `@francofantomius/material-components/slider` | Continuous, discrete, and dual-thumb range sliders |
|
|
351
|
+
| **Inputs & Controls** | `<md-time-picker>` | `@francofantomius/material-components/time-picker` | 12h/24h dial & input time picker with modal and docked modes |
|
|
352
|
+
| **Inputs & Controls** | `<md-date-picker>` | `@francofantomius/material-components/date-picker` | Calendar grid, date range, month/year navigation in modal & docked modes |
|
|
329
353
|
| **Inputs & Controls** | `<md-chip>`, `<md-chip-set>` | `@francofantomius/material-components/chip` | Assist, filter, input, and suggestion chips |
|
|
330
354
|
| **Inputs & Controls** | `<md-search-bar>` | `@francofantomius/material-components/search-bar` | Docked and fullscreen search view |
|
|
331
355
|
| **Surfaces & Containment** | `<md-card>` | `@francofantomius/material-components/card` | Elevated, filled, and outlined surface containers |
|
|
332
356
|
| **Surfaces & Containment** | `<md-dialog>` | `@francofantomius/material-components/dialog` | Modal dialogs for prompts & confirmation |
|
|
333
357
|
| **Surfaces & Containment** | `<md-divider>` | `@francofantomius/material-components/divider` | Horizontal, vertical, and inset separators |
|
|
358
|
+
| **Surfaces & Containment** | `<md-menu>`, `<md-menu-item>` | `@francofantomius/material-components/menu` | Temporary surfaces displaying lists of choices anchored to triggers |
|
|
334
359
|
| **Surfaces & Containment** | `<md-list>`, `<md-list-item>` | `@francofantomius/material-components/list` | 1-line, 2-line, and 3-line structured lists |
|
|
335
360
|
| **Surfaces & Containment** | `<md-table>` | `@francofantomius/material-components/table` | Data table with sorting, selection, and pagination |
|
|
361
|
+
| **Surfaces & Containment** | `<md-side-sheet>` | `@francofantomius/material-components/side-sheet` | Standard in-flow & modal overlay side sheets |
|
|
362
|
+
| **Surfaces & Containment** | `<md-bottom-sheet>` | `@francofantomius/material-components/bottom-sheet` | Standard docked & modal overlay bottom sheets with drag gestures |
|
|
363
|
+
| **Surfaces & Containment** | `<md-carousel>`, `<md-carousel-item>` | `@francofantomius/material-components/carousel` | Multi-browse, hero, and full-width image & content carousels |
|
|
336
364
|
| **Communication & Feedback** | `<md-badge>` | `@francofantomius/material-components/badge` | Numeric count and status dot indicators |
|
|
337
365
|
| **Communication & Feedback** | `<md-progress>` | `@francofantomius/material-components/progress` | Linear and circular progress with M3 wavy lines |
|
|
366
|
+
| **Communication & Feedback** | `<md-loading-indicator>` | `@francofantomius/material-components/loading-indicator` | Contained & morphing shape loading indicator for short wait times |
|
|
338
367
|
| **Communication & Feedback** | `<md-snackbar>` | `@francofantomius/material-components/snackbar` | Temporary bottom toast messages |
|
|
368
|
+
| **Communication & Feedback** | `<md-tooltip>` | `@francofantomius/material-components/tooltip` | Plain & rich contextual tooltips with directional positioning and delays |
|
|
369
|
+
| **Navigation** | `<md-navigation-bar>`, `<md-navigation-bar-item>` | `@francofantomius/material-components/navigation-bar` | Bottom navigation bar with 3-5 destinations, indicator pills, badges & label modes |
|
|
339
370
|
| **Navigation** | `<md-navigation-drawer>` | `@francofantomius/material-components/navigation-drawer` | Side drawer navigation (modal / standard / responsive) |
|
|
371
|
+
| **Navigation** | `<md-navigation-rail>`, `<md-navigation-rail-item>` | `@francofantomius/material-components/navigation-rail` | Vertical navigation rail for mid to large screens |
|
|
340
372
|
| **Navigation** | `<md-top-app-bar>` | `@francofantomius/material-components/top-app-bar` | Header bar (small, center-aligned, medium, large) |
|
|
341
373
|
| **Navigation** | `<md-tabs>`, `<md-tab>` | `@francofantomius/material-components/tabs` | Top tab navigation with sliding active indicator |
|
|
342
374
|
| **Navigation** | `<md-app-drawer>` | `@francofantomius/material-components/app-drawer` | Popover application grid launcher with drag reordering |
|
|
@@ -385,6 +417,126 @@ const isEnabled = ref(true);
|
|
|
385
417
|
|
|
386
418
|
---
|
|
387
419
|
|
|
420
|
+
#### Button Group (`md-button-group`)
|
|
421
|
+
|
|
422
|
+
- **Subpath**: `@francofantomius/material-components/button-group`
|
|
423
|
+
- **Description**: Button groups organize related action buttons into cohesive sets with standard or connected shape-shifting layouts according to Material Design 3 specifications.
|
|
424
|
+
|
|
425
|
+
##### Properties & Attributes
|
|
426
|
+
| Name | Type | Default | Description |
|
|
427
|
+
| :--- | :--- | :--- | :--- |
|
|
428
|
+
| `orientation` | `'horizontal' \| 'vertical'` | `'horizontal'` | Layout orientation of the button group |
|
|
429
|
+
| `connected` | `boolean` | `false` | Connects adjacent buttons with seamless shared borders and shape-shifting corner radii |
|
|
430
|
+
| `shape` | `'pill' \| 'rounded' \| 'square'` | `'pill'` | Corner shape morphing style when connected |
|
|
431
|
+
| `variant` | `'filled' \| 'elevated' \| 'tonal' \| 'outlined' \| 'text'` | `''` | Cascades a visual emphasis style to child buttons |
|
|
432
|
+
| `full-width` | `boolean` | `false` | Stretches child buttons evenly across the container width |
|
|
433
|
+
| `disabled` | `boolean` | `false` | Disables all child buttons in the group |
|
|
434
|
+
|
|
435
|
+
##### Code Example
|
|
436
|
+
```html
|
|
437
|
+
<!-- Standard Button Group -->
|
|
438
|
+
<md-button-group>
|
|
439
|
+
<md-button variant="outlined" icon="edit">Edit</md-button>
|
|
440
|
+
<md-button variant="outlined" icon="content_copy">Copy</md-button>
|
|
441
|
+
<md-button variant="filled" icon="share">Share</md-button>
|
|
442
|
+
</md-button-group>
|
|
443
|
+
|
|
444
|
+
<!-- Connected Shape-Shifting Group -->
|
|
445
|
+
<md-button-group connected variant="outlined">
|
|
446
|
+
<md-button icon="format_align_left">Left</md-button>
|
|
447
|
+
<md-button icon="format_align_center">Center</md-button>
|
|
448
|
+
<md-button icon="format_align_right">Right</md-button>
|
|
449
|
+
</md-button-group>
|
|
450
|
+
|
|
451
|
+
<!-- Vertical Connected Group -->
|
|
452
|
+
<md-button-group connected orientation="vertical" variant="outlined">
|
|
453
|
+
<md-button icon="zoom_in">Zoom In</md-button>
|
|
454
|
+
<md-button icon="zoom_out">Zoom Out</md-button>
|
|
455
|
+
<md-button icon="fit_screen">Reset</md-button>
|
|
456
|
+
</md-button-group>
|
|
457
|
+
```
|
|
458
|
+
|
|
459
|
+
---
|
|
460
|
+
|
|
461
|
+
#### Segmented Button (`md-segmented-button`, `md-segmented-button-set`)
|
|
462
|
+
|
|
463
|
+
- **Subpath**: `@francofantomius/material-components/segmented-button`
|
|
464
|
+
- **Description**: Segmented buttons help users select options, switch views, or sort elements in compact single-select or multi-select groups.
|
|
465
|
+
|
|
466
|
+
##### Properties & Attributes (`md-segmented-button-set`)
|
|
467
|
+
| Name | Type | Default | Description |
|
|
468
|
+
| :--- | :--- | :--- | :--- |
|
|
469
|
+
| `multiselect` | `boolean` | `false` | Enables multi-selection mode across segments |
|
|
470
|
+
| `disabled` | `boolean` | `false` | Disables all child segmented buttons in the set |
|
|
471
|
+
|
|
472
|
+
##### Properties & Attributes (`md-segmented-button`)
|
|
473
|
+
| Name | Type | Default | Description |
|
|
474
|
+
| :--- | :--- | :--- | :--- |
|
|
475
|
+
| `selected` | `boolean` | `false` | Active selection state of the segment |
|
|
476
|
+
| `disabled` | `boolean` | `false` | Disables segment interactions |
|
|
477
|
+
| `value` | `string` | `''` | Value associated with the segment |
|
|
478
|
+
| `label` | `string` | `''` | Label text of the segment |
|
|
479
|
+
| `icon` | `string` | `''` | Leading Material Symbols icon name |
|
|
480
|
+
| `no-checkmark` | `boolean` | `false` | Hides the automatic checkmark indicator when selected |
|
|
481
|
+
|
|
482
|
+
##### Code Example
|
|
483
|
+
```html
|
|
484
|
+
<!-- Single select (e.g. view filter) -->
|
|
485
|
+
<md-segmented-button-set>
|
|
486
|
+
<md-segmented-button selected label="Songs"></md-segmented-button>
|
|
487
|
+
<md-segmented-button label="Albums"></md-segmented-button>
|
|
488
|
+
<md-segmented-button label="Podcasts"></md-segmented-button>
|
|
489
|
+
</md-segmented-button-set>
|
|
490
|
+
|
|
491
|
+
<!-- Multi select (e.g. text formatting) -->
|
|
492
|
+
<md-segmented-button-set multiselect>
|
|
493
|
+
<md-segmented-button icon="format_bold" label="Bold" selected></md-segmented-button>
|
|
494
|
+
<md-segmented-button icon="format_italic" label="Italic"></md-segmented-button>
|
|
495
|
+
<md-segmented-button icon="format_underlined" label="Underline"></md-segmented-button>
|
|
496
|
+
</md-segmented-button-set>
|
|
497
|
+
```
|
|
498
|
+
|
|
499
|
+
---
|
|
500
|
+
|
|
501
|
+
#### Split Button (`md-split-button`)
|
|
502
|
+
|
|
503
|
+
- **Subpath**: `@francofantomius/material-components/split-button`
|
|
504
|
+
- **Description**: Split buttons combine a primary action button with a connected dropdown trigger button for related contextual options.
|
|
505
|
+
|
|
506
|
+
##### Properties & Attributes
|
|
507
|
+
| Name | Type | Default | Description |
|
|
508
|
+
| :--- | :--- | :--- | :--- |
|
|
509
|
+
| `variant` | `'filled' \| 'elevated' \| 'tonal' \| 'outlined'` | `'filled'` | Visual emphasis style of the split button |
|
|
510
|
+
| `disabled` | `boolean` | `false` | Disables both action and menu trigger buttons |
|
|
511
|
+
| `label` | `string` | `''` | Primary action button text label |
|
|
512
|
+
| `icon` | `string` | `''` | Leading icon for the primary action button |
|
|
513
|
+
| `trailing-icon` | `string` | `'arrow_drop_down'` | Dropdown trigger icon name |
|
|
514
|
+
| `open` | `boolean` | `false` | Whether the associated menu / options dropdown is open |
|
|
515
|
+
| `type` | `'button' \| 'submit' \| 'reset'` | `'button'` | HTML form button type for the main action |
|
|
516
|
+
| `action-aria-label` | `string` | `''` | Accessible label for the main action button |
|
|
517
|
+
| `menu-aria-label` | `string` | `'More options'` | Accessible label for the trailing menu trigger button |
|
|
518
|
+
|
|
519
|
+
##### Events
|
|
520
|
+
| Name | Detail | Description |
|
|
521
|
+
| :--- | :--- | :--- |
|
|
522
|
+
| `action` | `{ target: MdSplitButton, open: boolean }` | Dispatched when the leading primary action button is clicked |
|
|
523
|
+
| `trailing-click` | `{ target: MdSplitButton, open: boolean }` | Dispatched when the trailing dropdown menu button is clicked |
|
|
524
|
+
| `toggle` | `{ target: MdSplitButton, open: boolean }` | Dispatched when the trailing menu trigger toggles open state |
|
|
525
|
+
|
|
526
|
+
##### Code Example
|
|
527
|
+
```html
|
|
528
|
+
<!-- Default filled split button -->
|
|
529
|
+
<md-split-button label="Save"></md-split-button>
|
|
530
|
+
|
|
531
|
+
<!-- Split button with icons and tonal variant -->
|
|
532
|
+
<md-split-button variant="tonal" icon="cloud_upload" label="Upload" trailing-icon="expand_more"></md-split-button>
|
|
533
|
+
|
|
534
|
+
<!-- Outlined split button -->
|
|
535
|
+
<md-split-button variant="outlined" label="Export"></md-split-button>
|
|
536
|
+
```
|
|
537
|
+
|
|
538
|
+
---
|
|
539
|
+
|
|
388
540
|
#### Icon Button (`md-icon-button`)
|
|
389
541
|
|
|
390
542
|
- **Subpath**: `@francofantomius/material-components/icon-button`
|
|
@@ -439,6 +591,112 @@ const isEnabled = ref(true);
|
|
|
439
591
|
|
|
440
592
|
---
|
|
441
593
|
|
|
594
|
+
#### FAB Menu (`md-fab-menu`, `md-fab-menu-item`)
|
|
595
|
+
|
|
596
|
+
- **Subpath**: `@francofantomius/material-components/fab-menu`
|
|
597
|
+
- **Description**: A Floating Action Button Menu (FAB Menu / Speed Dial) expands a primary FAB into a stack of contextual sub-actions with text labels, animated transitions, and optional modal scrim overlay.
|
|
598
|
+
|
|
599
|
+
##### Properties & Attributes (`md-fab-menu`)
|
|
600
|
+
| Name | Type | Default | Description |
|
|
601
|
+
| :--- | :--- | :--- | :--- |
|
|
602
|
+
| `open` | `boolean` | `false` | Whether the menu stack is open |
|
|
603
|
+
| `modal` | `boolean` | `false` | Displays a scrim backdrop overlay behind the open menu |
|
|
604
|
+
| `direction` | `'up' \| 'down' \| 'left' \| 'right'` | `'up'` | Direction the sub-action stack expands |
|
|
605
|
+
| `icon` | `string` | `'add'` | Material Symbols icon for the trigger FAB |
|
|
606
|
+
| `open-icon` | `string` | `''` | Optional distinct icon shown when opened (defaults to 45° rotation) |
|
|
607
|
+
| `label` | `string` | `''` | Extended text label for the trigger FAB |
|
|
608
|
+
| `size` | `'small' \| 'medium' \| 'large'` | `'medium'` | Trigger FAB button size |
|
|
609
|
+
| `lowered` | `boolean` | `false` | Applies lower elevation level 1 instead of level 3 |
|
|
610
|
+
| `disabled` | `boolean` | `false` | Disables menu trigger and interactions |
|
|
611
|
+
| `close-on-item-click` | `boolean` | `true` | Automatically closes menu when a sub-item is clicked |
|
|
612
|
+
| `close-on-outside-click` | `boolean` | `true` | Automatically closes menu when clicking outside |
|
|
613
|
+
|
|
614
|
+
##### Properties & Attributes (`md-fab-menu-item`)
|
|
615
|
+
| Name | Type | Default | Description |
|
|
616
|
+
| :--- | :--- | :--- | :--- |
|
|
617
|
+
| `icon` | `string` | `''` | Material Symbols icon name for the sub-action |
|
|
618
|
+
| `label` | `string` | `''` | Text label displayed beside the mini-FAB |
|
|
619
|
+
| `label-placement` | `'start' \| 'end' \| 'top' \| 'bottom'` | `'start'` | Positioning of the label pill relative to the sub-FAB |
|
|
620
|
+
| `disabled` | `boolean` | `false` | Disables sub-action item interactions |
|
|
621
|
+
| `value` | `string` | `''` | Value or identifier for the action |
|
|
622
|
+
| `size` | `'small' \| 'medium'` | `'small'` | Size of the mini-FAB button |
|
|
623
|
+
| `lowered` | `boolean` | `false` | Lower elevation level |
|
|
624
|
+
|
|
625
|
+
##### Events
|
|
626
|
+
| Name | Detail | Description |
|
|
627
|
+
| :--- | :--- | :--- |
|
|
628
|
+
| `open` | `undefined` | Dispatched when the FAB menu opens |
|
|
629
|
+
| `close` | `undefined` | Dispatched when the FAB menu closes |
|
|
630
|
+
| `toggle` | `{ open: boolean }` | Dispatched when the menu toggles open/close state |
|
|
631
|
+
| `action` | `{ item: MdFabMenuItem, value: string, label: string }` | Dispatched when a sub-action item is activated |
|
|
632
|
+
| `scrim-click` | `undefined` | Dispatched when modal scrim backdrop is clicked |
|
|
633
|
+
|
|
634
|
+
##### Code Example
|
|
635
|
+
```html
|
|
636
|
+
<!-- Standard Upward FAB Menu -->
|
|
637
|
+
<md-fab-menu icon="add">
|
|
638
|
+
<md-fab-menu-item icon="edit" label="Create Post" value="post"></md-fab-menu-item>
|
|
639
|
+
<md-fab-menu-item icon="photo_camera" label="Upload Photo" value="photo"></md-fab-menu-item>
|
|
640
|
+
<md-fab-menu-item icon="videocam" label="Go Live" value="live"></md-fab-menu-item>
|
|
641
|
+
</md-fab-menu>
|
|
642
|
+
|
|
643
|
+
<!-- Modal FAB Menu with Scrim -->
|
|
644
|
+
<md-fab-menu modal icon="add" label="Actions">
|
|
645
|
+
<md-fab-menu-item icon="mail" label="New Message" value="email"></md-fab-menu-item>
|
|
646
|
+
<md-fab-menu-item icon="event" label="Schedule Event" value="event"></md-fab-menu-item>
|
|
647
|
+
</md-fab-menu>
|
|
648
|
+
```
|
|
649
|
+
|
|
650
|
+
---
|
|
651
|
+
|
|
652
|
+
#### Toolbar (`md-toolbar`)
|
|
653
|
+
|
|
654
|
+
- **Subpath**: `@francofantomius/material-components/toolbar`
|
|
655
|
+
- **Description**: Material Design 3 Expressive Action Toolbar for housing actions, tools, controls, and integrated floating action buttons in floating island or docked edge-to-edge layouts.
|
|
656
|
+
|
|
657
|
+
##### Properties & Attributes
|
|
658
|
+
| Name | Type | Default | Description |
|
|
659
|
+
| :--- | :--- | :--- | :--- |
|
|
660
|
+
| `mode` | `'floating' \| 'docked'` | `'floating'` | Layout mode: floating island or docked bar |
|
|
661
|
+
| `docked` | `boolean` | `false` | Shorthand boolean to activate docked mode |
|
|
662
|
+
| `orientation` | `'horizontal' \| 'vertical'` | `'horizontal'` | Controls layout orientation |
|
|
663
|
+
| `elevated` | `boolean` | `false` | Increases elevation shadow depth |
|
|
664
|
+
| `fixed` | `boolean` | `false` | Pins position relative to viewport |
|
|
665
|
+
| `dock-position` | `'none' \| 'top' \| 'bottom' \| 'left' \| 'right'` | `'none'` | Viewport edge when docked and fixed |
|
|
666
|
+
| `aria-label` | `string` | `''` | Accessible label for screen readers |
|
|
667
|
+
|
|
668
|
+
##### Slots
|
|
669
|
+
| Slot Name | Description |
|
|
670
|
+
| :--- | :--- |
|
|
671
|
+
| *(default)* | Primary action buttons, segmented buttons, switches, and dividers |
|
|
672
|
+
| `leading` | Leading navigation or anchor icons |
|
|
673
|
+
| `trailing` | Trailing action buttons or overflow menus |
|
|
674
|
+
| `fab` / `action` | Slotted Primary Action / Floating Action Button (FAB) |
|
|
675
|
+
|
|
676
|
+
##### Code Example
|
|
677
|
+
```html
|
|
678
|
+
<!-- Floating Action Toolbar -->
|
|
679
|
+
<md-toolbar aria-label="Formatting Actions">
|
|
680
|
+
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
|
|
681
|
+
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
|
|
682
|
+
<md-divider vertical></md-divider>
|
|
683
|
+
<md-icon-button icon="format_align_left" aria-label="Align left"></md-icon-button>
|
|
684
|
+
<md-fab slot="fab" size="small" icon="edit" aria-label="Edit"></md-fab>
|
|
685
|
+
</md-toolbar>
|
|
686
|
+
|
|
687
|
+
<!-- Docked Bottom Toolbar -->
|
|
688
|
+
<md-toolbar mode="docked" aria-label="Document Controls">
|
|
689
|
+
<div slot="leading">
|
|
690
|
+
<md-icon-button icon="attachment" aria-label="Attach"></md-icon-button>
|
|
691
|
+
</div>
|
|
692
|
+
<div slot="trailing">
|
|
693
|
+
<md-button variant="filled" label="Publish"></md-button>
|
|
694
|
+
</div>
|
|
695
|
+
</md-toolbar>
|
|
696
|
+
```
|
|
697
|
+
|
|
698
|
+
---
|
|
699
|
+
|
|
442
700
|
### Inputs & Controls
|
|
443
701
|
|
|
444
702
|
#### Text Field (`md-text-field`)
|
|
@@ -562,6 +820,56 @@ const isEnabled = ref(true);
|
|
|
562
820
|
|
|
563
821
|
---
|
|
564
822
|
|
|
823
|
+
#### Slider (`md-slider`)
|
|
824
|
+
|
|
825
|
+
- **Subpath**: `@francofantomius/material-components/slider`
|
|
826
|
+
- **Description**: Sliders allow users to view and select a value (or range of values) along a horizontal track, supporting continuous or discrete steps, dual-thumb range selection, value indicator balloon tooltips, and leading/trailing icons.
|
|
827
|
+
|
|
828
|
+
##### Properties & Attributes
|
|
829
|
+
| Name | Type | Default | Description |
|
|
830
|
+
| :--- | :--- | :--- | :--- |
|
|
831
|
+
| `value` | `number` | `50` | Current value for single slider mode |
|
|
832
|
+
| `value-start` | `number` | `0` | Start value for dual-thumb range mode |
|
|
833
|
+
| `value-end` | `number` | `100` | End value for dual-thumb range mode |
|
|
834
|
+
| `min` | `number` | `0` | Minimum allowed value |
|
|
835
|
+
| `max` | `number` | `100` | Maximum allowed value |
|
|
836
|
+
| `step` | `number` | `1` | Granularity step increment |
|
|
837
|
+
| `range` | `boolean` | `false` | Enables dual-thumb range selection mode |
|
|
838
|
+
| `ticks` | `boolean` | `false` | Displays discrete step tick marks along the track |
|
|
839
|
+
| `labeled` | `boolean` | `false` | Shows floating value indicator balloon tooltip above thumb |
|
|
840
|
+
| `icon` | `string` | `''` | Leading Material Symbols icon name |
|
|
841
|
+
| `leading-icon` | `string` | `''` | Leading Material Symbols icon name |
|
|
842
|
+
| `trailing-icon` | `string` | `''` | Trailing Material Symbols icon name |
|
|
843
|
+
| `disabled` | `boolean` | `false` | Disables user interaction |
|
|
844
|
+
| `name` | `string` | `''` | HTML form input name |
|
|
845
|
+
| `name-start` | `string` | `''` | HTML form input name for start value (range mode) |
|
|
846
|
+
| `name-end` | `string` | `''` | HTML form input name for end value (range mode) |
|
|
847
|
+
|
|
848
|
+
##### Slots
|
|
849
|
+
- `leading-icon`: Custom leading icon or element.
|
|
850
|
+
- `trailing-icon`: Custom trailing icon or element.
|
|
851
|
+
|
|
852
|
+
##### Events
|
|
853
|
+
- `input`: Dispatched continuously while dragging or adjusting with keys (`detail: { value, valueStart, valueEnd }`).
|
|
854
|
+
- `change`: Dispatched on pointer release or committed keyboard change (`detail: { value, valueStart, valueEnd }`).
|
|
855
|
+
|
|
856
|
+
##### Code Example
|
|
857
|
+
```html
|
|
858
|
+
<!-- Continuous Slider with Icons -->
|
|
859
|
+
<md-slider value="60" icon="volume_down" trailing-icon="volume_up"></md-slider>
|
|
860
|
+
|
|
861
|
+
<!-- Discrete Stepped Slider with Ticks & Value Indicator -->
|
|
862
|
+
<md-slider min="0" max="100" step="10" value="40" ticks labeled></md-slider>
|
|
863
|
+
|
|
864
|
+
<!-- Dual-Thumb Range Slider -->
|
|
865
|
+
<md-slider range min="0" max="100" value-start="20" value-end="80" labeled></md-slider>
|
|
866
|
+
|
|
867
|
+
<!-- Disabled Slider -->
|
|
868
|
+
<md-slider value="50" disabled icon="lock"></md-slider>
|
|
869
|
+
```
|
|
870
|
+
|
|
871
|
+
---
|
|
872
|
+
|
|
565
873
|
#### Chip & Chip Set (`md-chip`, `md-chip-set`)
|
|
566
874
|
|
|
567
875
|
- **Subpath**: `@francofantomius/material-components/chip`
|
|
@@ -646,6 +954,121 @@ const isEnabled = ref(true);
|
|
|
646
954
|
|
|
647
955
|
---
|
|
648
956
|
|
|
957
|
+
#### Time Picker (`md-time-picker`)
|
|
958
|
+
|
|
959
|
+
- **Subpath**: `@francofantomius/material-components/time-picker`
|
|
960
|
+
- **Description**: Time pickers help users select and set a specific time using an interactive Material Design 3 clock dial or numeric text inputs, in both 12-hour (AM/PM) and 24-hour formats with modal or docked modes.
|
|
961
|
+
|
|
962
|
+
##### Properties & Attributes
|
|
963
|
+
| Name | Type | Default | Description |
|
|
964
|
+
| :--- | :--- | :--- | :--- |
|
|
965
|
+
| `value` | `string` | `''` | Current time value string (e.g. `'08:30 AM'` or `'14:30'`) |
|
|
966
|
+
| `format` | `'12h' \| '24h'` | `'12h'` | Time display and selection format |
|
|
967
|
+
| `view` | `'dial' \| 'input'` | `'dial'` | Active presentation mode: interactive clock dial or numeric text fields |
|
|
968
|
+
| `modal` | `boolean` | `false` | Displays picker as a modal dialog overlay with backdrop scrim |
|
|
969
|
+
| `open` | `boolean` | `false` | Controls open/close visibility state when in modal mode |
|
|
970
|
+
| `headline` | `string` | `'Select time'` | Header headline text |
|
|
971
|
+
| `auto-switch-to-minute` | `boolean` | `true` | Automatically transitions active field from hour to minute on dial |
|
|
972
|
+
| `disabled` | `boolean` | `false` | Disables user interaction |
|
|
973
|
+
| `name` | `string` | `''` | HTML form input name (FACE) |
|
|
974
|
+
| `required` | `boolean` | `false` | Form validation required constraint |
|
|
975
|
+
|
|
976
|
+
##### Methods
|
|
977
|
+
- `showModal()`: Opens the time picker as a modal dialog.
|
|
978
|
+
- `show()`: Opens the time picker.
|
|
979
|
+
- `close(returnValue?: string)`: Closes the modal time picker.
|
|
980
|
+
- `confirm()`: Commits the selected time and fires `change` / `confirm` events.
|
|
981
|
+
- `cancel()`: Cancels selection and dismisses modal dialog.
|
|
982
|
+
- `getFormattedTime()`: Returns current formatted time according to `format`.
|
|
983
|
+
- `getFormatted24()`: Returns current time in 24-hour `'HH:MM'` format.
|
|
984
|
+
- `getFormatted12()`: Returns current time in 12-hour `'hh:mm A'` format.
|
|
985
|
+
|
|
986
|
+
##### Events
|
|
987
|
+
- `change`: Dispatched when a time value is confirmed or committed (`detail: { value, hour, minute, period, formatted24, formatted12 }`).
|
|
988
|
+
- `input`: Dispatched during interactive time adjustment (`detail: { value, hour, minute, period, formatted24, formatted12 }`).
|
|
989
|
+
- `confirm`: Dispatched when the user clicks OK (`detail: { value, hour, minute, period, formatted24, formatted12 }`).
|
|
990
|
+
- `cancel`: Dispatched when selection is canceled or backdrop is clicked.
|
|
991
|
+
- `open`: Dispatched when modal dialog opens.
|
|
992
|
+
- `close`: Dispatched when modal dialog closes (`detail: { returnValue?: string }`).
|
|
993
|
+
|
|
994
|
+
##### Code Example
|
|
995
|
+
```html
|
|
996
|
+
<!-- 12-hour Clock Dial Picker -->
|
|
997
|
+
<md-time-picker format="12h" value="09:30 AM"></md-time-picker>
|
|
998
|
+
|
|
999
|
+
<!-- 24-hour Text Input Mode -->
|
|
1000
|
+
<md-time-picker view="input" format="24h" value="14:45"></md-time-picker>
|
|
1001
|
+
|
|
1002
|
+
<!-- Modal Time Picker with Trigger Button -->
|
|
1003
|
+
<md-button variant="filled" icon="schedule" onclick="document.getElementById('alarm-picker').showModal()">
|
|
1004
|
+
Set Alarm
|
|
1005
|
+
</md-button>
|
|
1006
|
+
<md-time-picker id="alarm-picker" modal headline="Set Alarm" value="07:00 AM"></md-time-picker>
|
|
1007
|
+
```
|
|
1008
|
+
|
|
1009
|
+
---
|
|
1010
|
+
|
|
1011
|
+
#### Date Picker (`md-date-picker`)
|
|
1012
|
+
|
|
1013
|
+
- **Subpath**: `@francofantomius/material-components/date-picker`
|
|
1014
|
+
- **Description**: Date pickers let people select a date or range of dates using an interactive calendar grid, month/year navigation, and Material Design 3 styling in docked and modal dialog formats.
|
|
1015
|
+
|
|
1016
|
+
##### Properties & Attributes
|
|
1017
|
+
| Name | Type | Default | Description |
|
|
1018
|
+
| :--- | :--- | :--- | :--- |
|
|
1019
|
+
| `variant` | `'docked' \| 'modal'` | `'docked'` | Presentation format: inline/docked container or modal dialog overlay |
|
|
1020
|
+
| `range` | `boolean` | `false` | Enables date range selection mode (start date and end date) |
|
|
1021
|
+
| `value` | `string` | `''` | Selected date string (ISO `'YYYY-MM-DD'` or `'YYYY-MM-DD/YYYY-MM-DD'` for range) |
|
|
1022
|
+
| `start-date` | `string` | `''` | Start date in range selection mode |
|
|
1023
|
+
| `end-date` | `string` | `''` | End date in range selection mode |
|
|
1024
|
+
| `min` | `string` | `''` | Minimum selectable date constraint (ISO `'YYYY-MM-DD'`) |
|
|
1025
|
+
| `max` | `string` | `''` | Maximum selectable date constraint (ISO `'YYYY-MM-DD'`) |
|
|
1026
|
+
| `label` | `string` | `''` | Header subhead / supporting label text (e.g. `'Select date'`) |
|
|
1027
|
+
| `headline` | `string` | `''` | Custom header headline text (defaults to formatted date) |
|
|
1028
|
+
| `open` | `boolean` | `false` | Controls open/close visibility state when in modal mode |
|
|
1029
|
+
| `disabled` | `boolean` | `false` | Disables user interaction |
|
|
1030
|
+
| `required` | `boolean` | `false` | Form validation required constraint |
|
|
1031
|
+
| `first-day-of-week` | `number` | `0` | Starting day of week: `0` for Sunday, `1` for Monday |
|
|
1032
|
+
| `show-actions` | `boolean` | `false` | Displays bottom action buttons (Cancel / OK) in docked mode |
|
|
1033
|
+
| `error` | `boolean` | `false` | Applies error visual styling |
|
|
1034
|
+
| `error-text` | `string` | `''` | Validation error message |
|
|
1035
|
+
| `supporting-text` | `string` | `''` | Helper text below the date picker |
|
|
1036
|
+
| `name` | `string` | `''` | HTML form input name (FACE) |
|
|
1037
|
+
|
|
1038
|
+
##### Methods
|
|
1039
|
+
- `showModal()`: Opens the date picker as a modal dialog overlay.
|
|
1040
|
+
- `show()`: Opens the date picker.
|
|
1041
|
+
- `close()`: Closes the modal date picker.
|
|
1042
|
+
- `reset()`: Clears the selected date(s) and form association.
|
|
1043
|
+
|
|
1044
|
+
##### Events
|
|
1045
|
+
- `change`: Dispatched when date selection is committed (`detail: { value, startDate?, endDate? }`).
|
|
1046
|
+
- `input`: Dispatched when date input value updates (`detail: { value }`).
|
|
1047
|
+
- `select`: Dispatched when an individual day is clicked (`detail: { date, type: 'single' | 'start' | 'end' }`).
|
|
1048
|
+
- `open`: Dispatched when modal dialog opens.
|
|
1049
|
+
- `close`: Dispatched when modal dialog closes.
|
|
1050
|
+
- `cancel`: Dispatched when modal dialog is canceled or backdrop is clicked.
|
|
1051
|
+
|
|
1052
|
+
##### Code Example
|
|
1053
|
+
```html
|
|
1054
|
+
<!-- Docked Single Date Picker -->
|
|
1055
|
+
<md-date-picker value="2026-08-22" label="Select date"></md-date-picker>
|
|
1056
|
+
|
|
1057
|
+
<!-- Date Range Picker -->
|
|
1058
|
+
<md-date-picker range value="2026-08-10/2026-08-20" label="Select range"></md-date-picker>
|
|
1059
|
+
|
|
1060
|
+
<!-- Min and Max Date Constraints -->
|
|
1061
|
+
<md-date-picker min="2026-08-05" max="2026-08-25" value="2026-08-15"></md-date-picker>
|
|
1062
|
+
|
|
1063
|
+
<!-- Modal Date Picker with Trigger Button -->
|
|
1064
|
+
<md-button variant="filled" icon="calendar_month" onclick="document.getElementById('booking-datepicker').showModal()">
|
|
1065
|
+
Select Date
|
|
1066
|
+
</md-button>
|
|
1067
|
+
<md-date-picker id="booking-datepicker" variant="modal" value="2026-08-22"></md-date-picker>
|
|
1068
|
+
```
|
|
1069
|
+
|
|
1070
|
+
---
|
|
1071
|
+
|
|
649
1072
|
### Surfaces & Containment
|
|
650
1073
|
|
|
651
1074
|
#### Card (`md-card`)
|
|
@@ -743,6 +1166,78 @@ const isEnabled = ref(true);
|
|
|
743
1166
|
|
|
744
1167
|
---
|
|
745
1168
|
|
|
1169
|
+
#### Menu (`md-menu`, `md-menu-item`)
|
|
1170
|
+
|
|
1171
|
+
- **Subpath**: `@francofantomius/material-components/menu`
|
|
1172
|
+
- **Description**: Menus display a list of choices on temporary surfaces when users interact with a trigger or contextual control, supporting anchoring, keyboard navigation, supporting text, and selection events.
|
|
1173
|
+
|
|
1174
|
+
##### `<md-menu>` Properties & Attributes
|
|
1175
|
+
| Name | Type | Default | Description |
|
|
1176
|
+
| :--- | :--- | :--- | :--- |
|
|
1177
|
+
| `open` | `boolean` | `false` | Reflects open/closed visibility state |
|
|
1178
|
+
| `anchor` | `string \| HTMLElement \| null` | `null` | Anchor element ID or HTMLElement reference |
|
|
1179
|
+
| `positioning` | `'absolute' \| 'fixed'` | `'absolute'` | Positioning strategy relative to trigger or viewport |
|
|
1180
|
+
| `placement` | `'bottom-start' \| 'bottom-end' \| 'top-start' \| 'top-end'` | `'bottom-start'` | Anchor edge placement for the menu surface |
|
|
1181
|
+
| `alignment` | `'start' \| 'end' \| 'center'` | `'start'` | Alignment of the menu relative to the anchor |
|
|
1182
|
+
| `x-offset` | `number` | `0` | Horizontal pixel offset from the anchor |
|
|
1183
|
+
| `y-offset` | `number` | `4` | Vertical pixel offset from the anchor |
|
|
1184
|
+
| `quick` | `boolean` | `false` | Disables open/close transition animations |
|
|
1185
|
+
| `dense` | `boolean` | `false` | Applies compact vertical spacing and smaller icon sizing |
|
|
1186
|
+
| `stay-open-on-focusout` | `boolean` | `false` | Prevents menu from closing when focus leaves the surface |
|
|
1187
|
+
|
|
1188
|
+
##### `<md-menu-item>` Properties & Attributes
|
|
1189
|
+
| Name | Type | Default | Description |
|
|
1190
|
+
| :--- | :--- | :--- | :--- |
|
|
1191
|
+
| `headline` | `string` | `''` | Main item label text |
|
|
1192
|
+
| `supporting-text` | `string` | `''` | Secondary helper text below headline |
|
|
1193
|
+
| `trailing-supporting-text` | `string` | `''` | Trailing text (e.g. keyboard shortcut) |
|
|
1194
|
+
| `icon` | `string` | `''` | Leading Material Symbols icon name |
|
|
1195
|
+
| `trailing-icon` | `string` | `''` | Trailing Material Symbols icon name |
|
|
1196
|
+
| `disabled` | `boolean` | `false` | Disables interaction and dims item |
|
|
1197
|
+
| `selected` | `boolean` | `false` | Displays active selection state with checkmark |
|
|
1198
|
+
| `value` | `string` | `''` | Value associated with the menu item |
|
|
1199
|
+
| `href` | `string` | `''` | Renders item as an anchor link |
|
|
1200
|
+
| `target` | `string` | `''` | Anchor target attribute (e.g., `_blank`) |
|
|
1201
|
+
| `keep-open` | `boolean` | `false` | Prevents menu from closing when item is selected |
|
|
1202
|
+
| `dense` | `boolean` | `false` | Applies compact vertical sizing |
|
|
1203
|
+
|
|
1204
|
+
##### Slots (`md-menu`)
|
|
1205
|
+
- `trigger`: Slotted trigger element (e.g., button or icon-button).
|
|
1206
|
+
- `(default)`: Menu items (`md-menu-item`) and dividers.
|
|
1207
|
+
|
|
1208
|
+
##### Slots (`md-menu-item`)
|
|
1209
|
+
- `start` / `icon`: Leading icon or custom graphic.
|
|
1210
|
+
- `(default)`: Headline / label text.
|
|
1211
|
+
- `end` / `trailing`: Trailing content, shortcut text, or custom indicator.
|
|
1212
|
+
|
|
1213
|
+
##### Events
|
|
1214
|
+
- `open`: Dispatched on `md-menu` when the menu opens.
|
|
1215
|
+
- `close`: Dispatched on `md-menu` when the menu closes.
|
|
1216
|
+
- `select`: Dispatched on `md-menu` and `md-menu-item` when an item is selected (`detail: { item: MdMenuItem, value: string }`).
|
|
1217
|
+
|
|
1218
|
+
##### Code Example
|
|
1219
|
+
```html
|
|
1220
|
+
<!-- Basic Action Menu with Trigger Button -->
|
|
1221
|
+
<md-menu>
|
|
1222
|
+
<md-button slot="trigger" variant="filled" icon="menu">Options</md-button>
|
|
1223
|
+
<md-menu-item icon="content_cut" headline="Cut" trailing-supporting-text="Ctrl+X" value="cut"></md-menu-item>
|
|
1224
|
+
<md-menu-item icon="content_copy" headline="Copy" trailing-supporting-text="Ctrl+C" value="copy"></md-menu-item>
|
|
1225
|
+
<md-menu-item icon="content_paste" headline="Paste" trailing-supporting-text="Ctrl+V" value="paste"></md-menu-item>
|
|
1226
|
+
<md-divider></md-divider>
|
|
1227
|
+
<md-menu-item icon="delete" headline="Delete" trailing-supporting-text="Del" value="delete"></md-menu-item>
|
|
1228
|
+
</md-menu>
|
|
1229
|
+
|
|
1230
|
+
<!-- Menu Anchored to External Trigger with Supporting Text -->
|
|
1231
|
+
<md-icon-button id="context-btn" icon="more_vert" aria-label="More options"></md-icon-button>
|
|
1232
|
+
<md-menu anchor="context-btn">
|
|
1233
|
+
<md-menu-item headline="Single view" supporting-text="Standard layout" selected value="single"></md-menu-item>
|
|
1234
|
+
<md-menu-item headline="Grid view" supporting-text="Compact card layout" value="grid"></md-menu-item>
|
|
1235
|
+
<md-menu-item headline="Table view" supporting-text="Detailed table row layout" disabled value="table"></md-menu-item>
|
|
1236
|
+
</md-menu>
|
|
1237
|
+
```
|
|
1238
|
+
|
|
1239
|
+
---
|
|
1240
|
+
|
|
746
1241
|
#### List & List Item (`md-list`, `md-list-item`)
|
|
747
1242
|
|
|
748
1243
|
- **Subpath**: `@francofantomius/material-components/list`
|
|
@@ -836,6 +1331,233 @@ const isEnabled = ref(true);
|
|
|
836
1331
|
|
|
837
1332
|
---
|
|
838
1333
|
|
|
1334
|
+
#### Side Sheet (`md-side-sheet`)
|
|
1335
|
+
|
|
1336
|
+
- **Subpath**: `@francofantomius/material-components/side-sheet`
|
|
1337
|
+
- **Description**: Side sheets display secondary content anchored to the side of the screen, supporting standard in-flow side panels and modal overlays with backdrop scrims.
|
|
1338
|
+
|
|
1339
|
+
##### Properties & Attributes
|
|
1340
|
+
| Name | Type | Default | Description |
|
|
1341
|
+
| :--- | :--- | :--- | :--- |
|
|
1342
|
+
| `open` | `boolean` | `false` | Reflects open/closed state of the side sheet |
|
|
1343
|
+
| `type` | `'standard' \| 'modal'` | `'standard'` | Presentation mode: in-flow side panel or modal overlay |
|
|
1344
|
+
| `modal` | `boolean` | `false` | Enables modal overlay mode with backdrop scrim |
|
|
1345
|
+
| `side` | `'start' \| 'end' \| 'left' \| 'right'` | `'end'` | Screen side placement (start / left or end / right) |
|
|
1346
|
+
| `headline` | `string` | `''` | Header title text |
|
|
1347
|
+
| `subhead` | `string` | `''` | Header subtitle text |
|
|
1348
|
+
| `hide-close-button` | `boolean` | `false` | Hides the default close icon button in the header |
|
|
1349
|
+
| `divider` | `boolean` | `false` | Renders a divider line below the header |
|
|
1350
|
+
|
|
1351
|
+
##### Slots
|
|
1352
|
+
- `header`: Full custom header area.
|
|
1353
|
+
- `headline`: Custom headline / title content.
|
|
1354
|
+
- `subhead`: Custom subtitle / subhead content.
|
|
1355
|
+
- `header-actions`: Actions next to the close button in the header.
|
|
1356
|
+
- `close-button`: Custom close button element.
|
|
1357
|
+
- `(default)`: Main scrollable body content.
|
|
1358
|
+
- `footer`: Bottom footer / actions section.
|
|
1359
|
+
- `actions`: Action buttons inside the footer.
|
|
1360
|
+
|
|
1361
|
+
##### Events
|
|
1362
|
+
- `open`: Dispatched when the side sheet opens.
|
|
1363
|
+
- `close`: Dispatched when the side sheet closes.
|
|
1364
|
+
- `cancel`: Dispatched when dismissed via Escape key in modal mode.
|
|
1365
|
+
- `scrim-click`: Dispatched when the modal scrim backdrop is clicked.
|
|
1366
|
+
- `close-click`: Dispatched when the header close button is clicked.
|
|
1367
|
+
|
|
1368
|
+
##### Code Example
|
|
1369
|
+
```html
|
|
1370
|
+
<!-- Modal Side Sheet -->
|
|
1371
|
+
<md-button variant="filled" id="open-sheet-btn">Open Filters</md-button>
|
|
1372
|
+
|
|
1373
|
+
<md-side-sheet id="filters-sheet" type="modal" headline="Filters" subhead="Refine product listing">
|
|
1374
|
+
<md-checkbox checked>In Stock</md-checkbox>
|
|
1375
|
+
<md-checkbox>Free Shipping</md-checkbox>
|
|
1376
|
+
<div slot="actions">
|
|
1377
|
+
<md-button variant="text">Reset</md-button>
|
|
1378
|
+
<md-button variant="filled">Apply</md-button>
|
|
1379
|
+
</div>
|
|
1380
|
+
</md-side-sheet>
|
|
1381
|
+
|
|
1382
|
+
<!-- Standard In-Flow Side Sheet -->
|
|
1383
|
+
<div style="display: flex; height: 400px;">
|
|
1384
|
+
<div style="flex: 1; padding: 16px;">Main Page Content</div>
|
|
1385
|
+
<md-side-sheet open headline="Details" divider>
|
|
1386
|
+
<p>Contextual tool details and metadata.</p>
|
|
1387
|
+
</md-side-sheet>
|
|
1388
|
+
</div>
|
|
1389
|
+
```
|
|
1390
|
+
|
|
1391
|
+
---
|
|
1392
|
+
|
|
1393
|
+
#### Bottom Sheet (`md-bottom-sheet`)
|
|
1394
|
+
|
|
1395
|
+
- **Subpath**: `@francofantomius/material-components/bottom-sheet`
|
|
1396
|
+
- **Description**: Bottom sheets display supplementary content anchored to the bottom of the screen, supporting standard (docked) and modal (overlay with backdrop scrim) modes, drag handle gestures, touch swipe-to-dismiss, and customizable headers and footers.
|
|
1397
|
+
|
|
1398
|
+
##### Properties & Attributes
|
|
1399
|
+
| Name | Type | Default | Description |
|
|
1400
|
+
| :--- | :--- | :--- | :--- |
|
|
1401
|
+
| `open` | `boolean` | `false` | Reflects open/closed state of the bottom sheet |
|
|
1402
|
+
| `type` | `'standard' \| 'modal'` | `'standard'` | Presentation mode: standard in-flow panel or modal overlay |
|
|
1403
|
+
| `modal` | `boolean` | `false` | Enables modal overlay mode with backdrop scrim |
|
|
1404
|
+
| `headline` | `string` | `''` | Header title text |
|
|
1405
|
+
| `subhead` | `string` | `''` | Header subtitle text |
|
|
1406
|
+
| `hide-drag-handle` | `boolean` | `false` | Hides the top drag handle bar |
|
|
1407
|
+
| `hide-close-button` | `boolean` | `false` | Hides the default close icon button in the header |
|
|
1408
|
+
| `divider` | `boolean` | `false` | Renders a divider line below the header |
|
|
1409
|
+
| `fullscreen` | `boolean` | `false` | Expands bottom sheet to full viewport height |
|
|
1410
|
+
|
|
1411
|
+
##### Slots
|
|
1412
|
+
- `drag-handle`: Custom drag handle element.
|
|
1413
|
+
- `header`: Full custom header area.
|
|
1414
|
+
- `headline`: Custom headline / title content.
|
|
1415
|
+
- `subhead`: Custom subtitle / subhead content.
|
|
1416
|
+
- `header-actions`: Actions next to the close button in the header.
|
|
1417
|
+
- `close-button`: Custom close button element.
|
|
1418
|
+
- `(default)`: Main scrollable body content.
|
|
1419
|
+
- `footer`: Bottom footer / actions section.
|
|
1420
|
+
- `actions`: Action buttons inside the footer.
|
|
1421
|
+
|
|
1422
|
+
##### Events
|
|
1423
|
+
- `open`: Dispatched when the bottom sheet opens.
|
|
1424
|
+
- `close`: Dispatched when the bottom sheet closes.
|
|
1425
|
+
- `cancel`: Dispatched when dismissed via Escape key in modal mode.
|
|
1426
|
+
- `scrim-click`: Dispatched when the modal scrim backdrop is clicked.
|
|
1427
|
+
- `close-click`: Dispatched when the header close button is clicked.
|
|
1428
|
+
- `drag-start`: Dispatched when drag gesture begins.
|
|
1429
|
+
- `drag-end`: Dispatched when drag gesture ends.
|
|
1430
|
+
- `drag-dismiss`: Dispatched when dismissed via downward drag gesture.
|
|
1431
|
+
|
|
1432
|
+
##### Code Example
|
|
1433
|
+
```html
|
|
1434
|
+
<!-- Modal Bottom Sheet with Drag Dismissal -->
|
|
1435
|
+
<md-button variant="filled" id="open-sheet-btn">Open Bottom Sheet</md-button>
|
|
1436
|
+
|
|
1437
|
+
<md-bottom-sheet id="demo-bottom-sheet" type="modal" headline="Share" subhead="Select a sharing option">
|
|
1438
|
+
<div style="display: flex; gap: 16px; padding: 12px 0;">
|
|
1439
|
+
<md-icon-button icon="link" aria-label="Copy link"></md-icon-button>
|
|
1440
|
+
<md-icon-button icon="mail" aria-label="Email"></md-icon-button>
|
|
1441
|
+
<md-icon-button icon="chat" aria-label="Messages"></md-icon-button>
|
|
1442
|
+
</div>
|
|
1443
|
+
<div slot="actions">
|
|
1444
|
+
<md-button variant="text">Cancel</md-button>
|
|
1445
|
+
</div>
|
|
1446
|
+
</md-bottom-sheet>
|
|
1447
|
+
|
|
1448
|
+
<!-- Standard Docked Bottom Sheet -->
|
|
1449
|
+
<md-bottom-sheet open headline="Now Playing" subhead="Song queue" divider>
|
|
1450
|
+
<p>Track 1: Ambient Horizon (3:42)</p>
|
|
1451
|
+
</md-bottom-sheet>
|
|
1452
|
+
```
|
|
1453
|
+
|
|
1454
|
+
---
|
|
1455
|
+
|
|
1456
|
+
#### Carousel (`md-carousel`, `md-carousel-item`)
|
|
1457
|
+
|
|
1458
|
+
- **Subpath**: `@francofantomius/material-components/carousel`
|
|
1459
|
+
- **Description**: Carousels present an interactive scrollable collection of items with support for multi-browse, hero, and full-width layouts, smooth scrolling, next/prev navigation buttons, swipe/drag gestures, and pagination indicators.
|
|
1460
|
+
|
|
1461
|
+
##### Properties & Attributes (`<md-carousel>`)
|
|
1462
|
+
| Name | Type | Default | Description |
|
|
1463
|
+
| :--- | :--- | :--- | :--- |
|
|
1464
|
+
| `layout` | `'multi-browse' \| 'hero' \| 'full-width' \| 'uncontained'` | `'multi-browse'` | Layout arrangement and sizing for carousel items |
|
|
1465
|
+
| `active-index` | `number` | `0` | 0-based index of the currently active item |
|
|
1466
|
+
| `hide-controls` | `boolean` | `false` | Hides next and previous navigation arrow buttons |
|
|
1467
|
+
| `hide-indicators` | `boolean` | `false` | Hides bottom pagination indicator dots |
|
|
1468
|
+
| `loop` | `boolean` | `false` | Enables continuous infinite wrap-around navigation |
|
|
1469
|
+
| `autoplay` | `boolean` | `false` | Automatically advances slides periodically |
|
|
1470
|
+
| `autoplay-interval` | `number` | `5000` | Autoplay transition interval in milliseconds |
|
|
1471
|
+
| `item-spacing` | `string \| number` | `'8px'` | Gap between carousel items |
|
|
1472
|
+
| `item-width` | `string` | `''` | Custom width applied to each item |
|
|
1473
|
+
| `item-height` | `string` | `''` | Custom height applied to each item |
|
|
1474
|
+
|
|
1475
|
+
##### Properties & Attributes (`<md-carousel-item>`)
|
|
1476
|
+
| Name | Type | Default | Description |
|
|
1477
|
+
| :--- | :--- | :--- | :--- |
|
|
1478
|
+
| `src` | `string` | `''` | Image source URL for the carousel item media |
|
|
1479
|
+
| `alt` | `string` | `''` | Alt text for image media |
|
|
1480
|
+
| `headline` | `string` | `''` | Title or headline overlay text |
|
|
1481
|
+
| `subhead` | `string` | `''` | Subtitle or description overlay text |
|
|
1482
|
+
| `href` | `string` | `''` | Optional navigation link URL |
|
|
1483
|
+
| `target` | `string` | `''` | Link target when href is set |
|
|
1484
|
+
| `interactive` | `boolean` | `false` | Enables ripple and hover interactive state |
|
|
1485
|
+
| `disabled` | `boolean` | `false` | Disables item interactions |
|
|
1486
|
+
| `snap-align` | `'start' \| 'center' \| 'end'` | `'start'` | Scroll snap alignment point |
|
|
1487
|
+
|
|
1488
|
+
##### Methods (`<md-carousel>`)
|
|
1489
|
+
- `next()`: Scrolls to the next slide in the carousel.
|
|
1490
|
+
- `previous()`: Scrolls to the previous slide in the carousel.
|
|
1491
|
+
- `scrollToIndex(index: number, smooth: boolean = true)`: Smoothly scrolls to a specific item index.
|
|
1492
|
+
|
|
1493
|
+
##### Events
|
|
1494
|
+
- `change`: Fired when the active slide changes (`detail: { activeIndex: number, item: MdCarouselItem }`).
|
|
1495
|
+
- `carousel-item-click`: Fired when an item is clicked (`detail: { item: MdCarouselItem }`).
|
|
1496
|
+
|
|
1497
|
+
##### Slots (`<md-carousel>`)
|
|
1498
|
+
- `(default)`: Slot for `<md-carousel-item>` elements.
|
|
1499
|
+
- `prev-button`: Custom previous navigation button.
|
|
1500
|
+
- `next-button`: Custom next navigation button.
|
|
1501
|
+
|
|
1502
|
+
##### Slots (`<md-carousel-item>`)
|
|
1503
|
+
- `(default)`: Custom card/slide body content.
|
|
1504
|
+
- `media`: Custom media element (image, video).
|
|
1505
|
+
- `headline`: Custom headline text element.
|
|
1506
|
+
- `subhead`: Custom subhead text element.
|
|
1507
|
+
|
|
1508
|
+
##### Code Examples
|
|
1509
|
+
|
|
1510
|
+
```html
|
|
1511
|
+
<!-- Multi-Browse Layout (Default) -->
|
|
1512
|
+
<md-carousel>
|
|
1513
|
+
<md-carousel-item
|
|
1514
|
+
src="https://images.unsplash.com/photo-1579546929518-9e396f3cc809?w=600&auto=format&fit=crop&q=80"
|
|
1515
|
+
headline="Colorful Gradients"
|
|
1516
|
+
subhead="Modern vibrant colors"
|
|
1517
|
+
></md-carousel-item>
|
|
1518
|
+
<md-carousel-item
|
|
1519
|
+
src="https://images.unsplash.com/photo-1618005182384-a83a8bd57fbe?w=600&auto=format&fit=crop&q=80"
|
|
1520
|
+
headline="Abstract Waves"
|
|
1521
|
+
subhead="Smooth fluid motion"
|
|
1522
|
+
></md-carousel-item>
|
|
1523
|
+
<md-carousel-item
|
|
1524
|
+
src="https://images.unsplash.com/photo-1550684848-fac1c5b4e853?w=600&auto=format&fit=crop&q=80"
|
|
1525
|
+
headline="Dark Aesthetics"
|
|
1526
|
+
subhead="Geometric lighting"
|
|
1527
|
+
></md-carousel-item>
|
|
1528
|
+
</md-carousel>
|
|
1529
|
+
|
|
1530
|
+
<!-- Hero Layout with Loop -->
|
|
1531
|
+
<md-carousel layout="hero" loop>
|
|
1532
|
+
<md-carousel-item
|
|
1533
|
+
src="https://images.unsplash.com/photo-1470071459604-3b5ec3a7fe05?w=800&auto=format&fit=crop&q=80"
|
|
1534
|
+
headline="Mountain Exploration"
|
|
1535
|
+
subhead="Scenic landscapes and trails"
|
|
1536
|
+
></md-carousel-item>
|
|
1537
|
+
<md-carousel-item
|
|
1538
|
+
src="https://images.unsplash.com/photo-1447752875215-b2761acb3c5d?w=800&auto=format&fit=crop&q=80"
|
|
1539
|
+
headline="Forest Pathways"
|
|
1540
|
+
subhead="Lush greenery and walks"
|
|
1541
|
+
></md-carousel-item>
|
|
1542
|
+
</md-carousel>
|
|
1543
|
+
|
|
1544
|
+
<!-- Full-Width Layout with Autoplay -->
|
|
1545
|
+
<md-carousel layout="full-width" autoplay autoplay-interval="4000">
|
|
1546
|
+
<md-carousel-item
|
|
1547
|
+
src="https://images.unsplash.com/photo-1518770660439-4636190af475?w=1000&auto=format&fit=crop&q=80"
|
|
1548
|
+
headline="Circuit Technology"
|
|
1549
|
+
subhead="Microchip architecture"
|
|
1550
|
+
></md-carousel-item>
|
|
1551
|
+
<md-carousel-item
|
|
1552
|
+
src="https://images.unsplash.com/photo-1526374965328-7f61d4dc18c5?w=1000&auto=format&fit=crop&q=80"
|
|
1553
|
+
headline="Data Matrix"
|
|
1554
|
+
subhead="Cybersecurity networks"
|
|
1555
|
+
></md-carousel-item>
|
|
1556
|
+
</md-carousel>
|
|
1557
|
+
```
|
|
1558
|
+
|
|
1559
|
+
---
|
|
1560
|
+
|
|
839
1561
|
### Communication & Feedback
|
|
840
1562
|
|
|
841
1563
|
#### Badge (`md-badge`)
|
|
@@ -893,6 +1615,39 @@ const isEnabled = ref(true);
|
|
|
893
1615
|
|
|
894
1616
|
---
|
|
895
1617
|
|
|
1618
|
+
#### Loading Indicator (`md-loading-indicator`)
|
|
1619
|
+
|
|
1620
|
+
- **Subpath**: `@francofantomius/material-components/loading-indicator`
|
|
1621
|
+
- **Description**: Loading indicators express an unspecified wait time for short operations with Material Design 3 Expressive animated morphing shapes and optional contained containers.
|
|
1622
|
+
|
|
1623
|
+
##### Properties & Attributes
|
|
1624
|
+
| Name | Type | Default | Description |
|
|
1625
|
+
| :--- | :--- | :--- | :--- |
|
|
1626
|
+
| `size` | `'small' \| 'medium' \| 'large'` | `'medium'` | Visual size of the indicator |
|
|
1627
|
+
| `contained` | `boolean` | `false` | Encloses indicator within a contained surface container |
|
|
1628
|
+
| `shape` | `'morph' \| 'square' \| 'circle' \| 'clover' \| 'star'` | `'morph'` | Shape animation style |
|
|
1629
|
+
| `paused` | `boolean` | `false` | Pauses shape animation |
|
|
1630
|
+
| `label` | `string` | `'Loading'` | Accessible label for screen readers |
|
|
1631
|
+
|
|
1632
|
+
##### Code Example
|
|
1633
|
+
```html
|
|
1634
|
+
<!-- Standard morphing loading indicators -->
|
|
1635
|
+
<div style="display: flex; gap: 24px; align-items: center;">
|
|
1636
|
+
<md-loading-indicator size="small"></md-loading-indicator>
|
|
1637
|
+
<md-loading-indicator size="medium"></md-loading-indicator>
|
|
1638
|
+
<md-loading-indicator size="large"></md-loading-indicator>
|
|
1639
|
+
</div>
|
|
1640
|
+
|
|
1641
|
+
<!-- Contained loading indicators -->
|
|
1642
|
+
<div style="display: flex; gap: 24px; align-items: center; margin-top: 16px;">
|
|
1643
|
+
<md-loading-indicator contained size="small"></md-loading-indicator>
|
|
1644
|
+
<md-loading-indicator contained size="medium"></md-loading-indicator>
|
|
1645
|
+
<md-loading-indicator contained size="large"></md-loading-indicator>
|
|
1646
|
+
</div>
|
|
1647
|
+
```
|
|
1648
|
+
|
|
1649
|
+
---
|
|
1650
|
+
|
|
896
1651
|
#### Snackbar (`md-snackbar`)
|
|
897
1652
|
|
|
898
1653
|
- **Subpath**: `@francofantomius/material-components/snackbar`
|
|
@@ -926,8 +1681,116 @@ const isEnabled = ref(true);
|
|
|
926
1681
|
|
|
927
1682
|
---
|
|
928
1683
|
|
|
1684
|
+
#### Tooltip (`md-tooltip`)
|
|
1685
|
+
|
|
1686
|
+
- **Subpath**: `@francofantomius/material-components/tooltip`
|
|
1687
|
+
- **Description**: Tooltips display informative text when users hover over, focus on, or tap an element. Plain tooltips describe an element briefly, while rich tooltips provide detailed context, headlines, and action buttons.
|
|
1688
|
+
|
|
1689
|
+
##### Properties & Attributes
|
|
1690
|
+
| Name | Type | Default | Description |
|
|
1691
|
+
| :--- | :--- | :--- | :--- |
|
|
1692
|
+
| `open` | `boolean` | `false` | Visibility state of the tooltip |
|
|
1693
|
+
| `position` | `'top' \| 'bottom' \| 'left' \| 'right'` | `'bottom'` | Preferred placement relative to anchor target |
|
|
1694
|
+
| `rich` | `boolean` | `false` | Enables rich tooltip styling with headline, supporting text, and actions |
|
|
1695
|
+
| `for` | `string` | `''` | ID of the target anchor element |
|
|
1696
|
+
| `value` | `string` | `''` | Plain tooltip label or rich tooltip supporting text |
|
|
1697
|
+
| `headline` | `string` | `''` | Headline / subhead for rich tooltips |
|
|
1698
|
+
| `action-text` | `string` | `''` | Action button label for rich tooltips |
|
|
1699
|
+
| `show-delay` | `number` | `500` | Delay in milliseconds before showing tooltip on hover |
|
|
1700
|
+
| `hide-delay` | `number` | `150` | Delay in milliseconds before hiding tooltip after pointer leaves |
|
|
1701
|
+
| `persistent` | `boolean` | `false` | Keeps rich tooltip open until dismissed explicitly |
|
|
1702
|
+
| `has-caret` | `boolean` | `false` | Renders a directional pointing caret |
|
|
1703
|
+
| `disabled` | `boolean` | `false` | Disables tooltip triggering |
|
|
1704
|
+
|
|
1705
|
+
##### Events
|
|
1706
|
+
- `open`: Dispatched when tooltip becomes visible (`{ target: MdTooltip }`).
|
|
1707
|
+
- `close`: Dispatched when tooltip is dismissed (`{ target: MdTooltip }`).
|
|
1708
|
+
- `action`: Dispatched when rich tooltip action button is clicked (`{ target: MdTooltip }`).
|
|
1709
|
+
|
|
1710
|
+
##### Slots
|
|
1711
|
+
- `(default)`: Plain tooltip text or rich tooltip supporting content.
|
|
1712
|
+
- `headline`: Custom headline or rich header element.
|
|
1713
|
+
- `actions`: Custom action buttons for rich tooltips.
|
|
1714
|
+
- `anchor`: Slotted anchor element (optional).
|
|
1715
|
+
|
|
1716
|
+
##### Code Example
|
|
1717
|
+
```html
|
|
1718
|
+
<!-- Plain Tooltips on Icon Buttons -->
|
|
1719
|
+
<div style="display: flex; gap: 24px; align-items: center;">
|
|
1720
|
+
<div>
|
|
1721
|
+
<md-icon-button id="fav-btn" icon="favorite" aria-label="Favorite"></md-icon-button>
|
|
1722
|
+
<md-tooltip for="fav-btn" value="Add to favorites" position="bottom"></md-tooltip>
|
|
1723
|
+
</div>
|
|
1724
|
+
|
|
1725
|
+
<div>
|
|
1726
|
+
<md-icon-button id="share-btn" icon="share" aria-label="Share"></md-icon-button>
|
|
1727
|
+
<md-tooltip for="share-btn" value="Share link" position="top"></md-tooltip>
|
|
1728
|
+
</div>
|
|
1729
|
+
</div>
|
|
1730
|
+
|
|
1731
|
+
<!-- Rich Tooltip with Headline and Action -->
|
|
1732
|
+
<div>
|
|
1733
|
+
<md-button id="help-btn" variant="tonal" icon="help_outline">Permissions</md-button>
|
|
1734
|
+
<md-tooltip
|
|
1735
|
+
for="help-btn"
|
|
1736
|
+
rich
|
|
1737
|
+
has-caret
|
|
1738
|
+
position="bottom"
|
|
1739
|
+
headline="Access Permissions"
|
|
1740
|
+
value="Members with View permissions can read and comment on documents without editing."
|
|
1741
|
+
action-text="Learn more"
|
|
1742
|
+
></md-tooltip>
|
|
1743
|
+
</div>
|
|
1744
|
+
```
|
|
1745
|
+
|
|
1746
|
+
---
|
|
1747
|
+
|
|
929
1748
|
### Navigation
|
|
930
1749
|
|
|
1750
|
+
#### Navigation Bar (`md-navigation-bar`, `md-navigation-bar-item`)
|
|
1751
|
+
|
|
1752
|
+
- **Subpath**: `@francofantomius/material-components/navigation-bar`
|
|
1753
|
+
- **Description**: Navigation bars let users switch between 3 to 5 top-level destinations at the bottom of the screen with active indicator pills, badge notifications, and label visibility modes (`alwaysShow`, `selectedShow`, `hidden`).
|
|
1754
|
+
|
|
1755
|
+
##### `<md-navigation-bar>` Properties
|
|
1756
|
+
| Name | Type | Default | Description |
|
|
1757
|
+
| :--- | :--- | :--- | :--- |
|
|
1758
|
+
| `active-index` | `number` | `0` | Zero-based index of the currently active destination |
|
|
1759
|
+
| `value` | `string` | `''` | Value of the currently active destination |
|
|
1760
|
+
| `label-mode` | `'alwaysShow' \| 'selectedShow' \| 'hidden'` | `'alwaysShow'` | Controls label visibility across destination items |
|
|
1761
|
+
| `hide-inactive-labels` | `boolean` | `false` | Hides labels on inactive items (`selectedShow` behavior) |
|
|
1762
|
+
| `disabled` | `boolean` | `false` | Disables interaction on all items |
|
|
1763
|
+
|
|
1764
|
+
##### `<md-navigation-bar-item>` Properties
|
|
1765
|
+
| Name | Type | Default | Description |
|
|
1766
|
+
| :--- | :--- | :--- | :--- |
|
|
1767
|
+
| `icon` | `string` | `''` | Material Symbols destination icon |
|
|
1768
|
+
| `active-icon` | `string` | `''` | Optional icon displayed when item is active |
|
|
1769
|
+
| `label` | `string` | `''` | Destination title text |
|
|
1770
|
+
| `badge` | `string` | `''` | Numeric, text, or `"dot"` badge indicator |
|
|
1771
|
+
| `active` | `boolean` | `false` | Highlights item with active indicator pill |
|
|
1772
|
+
| `disabled` | `boolean` | `false` | Disables item interactions |
|
|
1773
|
+
| `value` | `string` | `''` | Value identifier for destination |
|
|
1774
|
+
| `href` | `string` | `''` | Optional navigation hyperlink |
|
|
1775
|
+
| `label-mode` | `'alwaysShow' \| 'selectedShow' \| 'hidden'` | `'alwaysShow'` | Per-item label visibility mode |
|
|
1776
|
+
|
|
1777
|
+
##### Events
|
|
1778
|
+
- `change`: Dispatched on `<md-navigation-bar>` when the active destination changes (`{ activeIndex, selectedIndex, index, value, item }`).
|
|
1779
|
+
- `item-click`: Dispatched on `<md-navigation-bar-item>` when clicked (`{ item, value, label, active }`).
|
|
1780
|
+
|
|
1781
|
+
##### Code Example
|
|
1782
|
+
```html
|
|
1783
|
+
<md-navigation-bar active-index="0" id="bottom-nav">
|
|
1784
|
+
<md-navigation-bar-item icon="home" label="Home" value="home"></md-navigation-bar-item>
|
|
1785
|
+
<md-navigation-bar-item icon="explore" label="Explore" value="explore"></md-navigation-bar-item>
|
|
1786
|
+
<md-navigation-bar-item icon="mail" label="Mail" badge="12" value="mail"></md-navigation-bar-item>
|
|
1787
|
+
<md-navigation-bar-item icon="chat" label="Chat" badge="dot" value="chat"></md-navigation-bar-item>
|
|
1788
|
+
<md-navigation-bar-item icon="person" label="Profile" value="profile"></md-navigation-bar-item>
|
|
1789
|
+
</md-navigation-bar>
|
|
1790
|
+
```
|
|
1791
|
+
|
|
1792
|
+
---
|
|
1793
|
+
|
|
931
1794
|
#### Navigation Drawer (`md-navigation-drawer`, `md-navigation-drawer-item`)
|
|
932
1795
|
|
|
933
1796
|
- **Subpath**: `@francofantomius/material-components/navigation-drawer`
|
|
@@ -972,6 +1835,62 @@ const isEnabled = ref(true);
|
|
|
972
1835
|
|
|
973
1836
|
---
|
|
974
1837
|
|
|
1838
|
+
#### Navigation Rail (`md-navigation-rail`, `md-navigation-rail-item`)
|
|
1839
|
+
|
|
1840
|
+
- **Subpath**: `@francofantomius/material-components/navigation-rail`
|
|
1841
|
+
- **Description**: Navigation rails provide side navigation access to primary destinations in apps on mid-sized to large screens (tablets, desktops), supporting leading menu/header/fab slots, active indicator pill destinations, badges, and top/center/bottom alignment.
|
|
1842
|
+
|
|
1843
|
+
##### `<md-navigation-rail>` Properties
|
|
1844
|
+
| Name | Type | Default | Description |
|
|
1845
|
+
| :--- | :--- | :--- | :--- |
|
|
1846
|
+
| `alignment` | `'top' \| 'center' \| 'bottom'` | `'top'` | Vertical alignment of destination items |
|
|
1847
|
+
| `hide-labels` | `boolean` | `false` | Hides all destination text labels |
|
|
1848
|
+
| `active-index` | `number` | `-1` | Zero-based index of the currently active destination |
|
|
1849
|
+
|
|
1850
|
+
##### `<md-navigation-rail-item>` Properties
|
|
1851
|
+
| Name | Type | Default | Description |
|
|
1852
|
+
| :--- | :--- | :--- | :--- |
|
|
1853
|
+
| `icon` | `string` | `''` | Material Symbols destination icon |
|
|
1854
|
+
| `active-icon` | `string` | `''` | Material Symbols icon displayed when active |
|
|
1855
|
+
| `label` | `string` | `''` | Destination title |
|
|
1856
|
+
| `badge` | `string` | `''` | Numeric or text badge indicator |
|
|
1857
|
+
| `badge-dot` | `boolean` | `false` | Small circular status dot badge |
|
|
1858
|
+
| `active` | `boolean` | `false` | Highlights destination with active indicator pill |
|
|
1859
|
+
| `disabled` | `boolean` | `false` | Disables destination interaction |
|
|
1860
|
+
| `hide-label` | `boolean` | `false` | Hides text label for this item |
|
|
1861
|
+
| `href` | `string` | `''` | Optional navigation hyperlink |
|
|
1862
|
+
| `value` | `string` | `''` | Custom item value identifier |
|
|
1863
|
+
|
|
1864
|
+
##### Slots
|
|
1865
|
+
- `header`: Top header section (logo, title).
|
|
1866
|
+
- `menu`: Top menu button slot.
|
|
1867
|
+
- `fab`: Slotted Floating Action Button (FAB).
|
|
1868
|
+
- `(default)`: Main destination items (`md-navigation-rail-item`).
|
|
1869
|
+
- `footer`: Bottom actions or user profile slot.
|
|
1870
|
+
|
|
1871
|
+
##### Events
|
|
1872
|
+
- `change`: Dispatched when active destination in the rail changes (`detail: { activeIndex: number, item: MdNavigationRailItem, value: string }`).
|
|
1873
|
+
- `item-click`: Dispatched when an individual rail item is clicked (`detail: { label: string, icon: string, active: boolean, value: string, item: MdNavigationRailItem }`).
|
|
1874
|
+
|
|
1875
|
+
##### Code Example
|
|
1876
|
+
```html
|
|
1877
|
+
<md-navigation-rail alignment="top">
|
|
1878
|
+
<md-icon-button slot="menu" icon="menu" aria-label="Menu"></md-icon-button>
|
|
1879
|
+
<md-fab slot="fab" size="small" icon="edit" aria-label="Compose"></md-fab>
|
|
1880
|
+
|
|
1881
|
+
<md-navigation-rail-item icon="inbox" label="Inbox" badge="3" active></md-navigation-rail-item>
|
|
1882
|
+
<md-navigation-rail-item icon="star" label="Starred"></md-navigation-rail-item>
|
|
1883
|
+
<md-navigation-rail-item icon="send" label="Sent"></md-navigation-rail-item>
|
|
1884
|
+
<md-navigation-rail-item icon="chat" label="Chat" badge-dot></md-navigation-rail-item>
|
|
1885
|
+
|
|
1886
|
+
<div slot="footer">
|
|
1887
|
+
<md-icon-button icon="settings" aria-label="Settings"></md-icon-button>
|
|
1888
|
+
</div>
|
|
1889
|
+
</md-navigation-rail>
|
|
1890
|
+
```
|
|
1891
|
+
|
|
1892
|
+
---
|
|
1893
|
+
|
|
975
1894
|
#### Top App Bar (`md-top-app-bar`)
|
|
976
1895
|
|
|
977
1896
|
- **Subpath**: `@francofantomius/material-components/top-app-bar`
|