@nxgt/material 3.79.1 → 3.81.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +94 -0
- package/README.md +48 -8
- package/dist/{alert-dialog-653apk3f.js → alert-dialog-DOZ0SfQs.js} +1 -1
- package/dist/{async-slice-CXLbQuOc.js → async-slice-BfVokA46.js} +1 -1
- package/dist/{button-3op3rtZh.js → button-CSKUtMI3.js} +2 -2
- package/dist/{calculator-KqIMBXSh.js → calculator-Cv00UQgR.js} +10 -10
- package/dist/calculator-field.js +6 -6
- package/dist/{calculator-segment-BlJE1LaS.js → calculator-segment-CwnC2cV_.js} +1 -1
- package/dist/calculator.js +1 -1
- package/dist/charts.js +3 -3
- package/dist/{chip-MuKDwtkG.js → chip-BGn0V6Pt.js} +3 -3
- package/dist/{code-editor-Bp2RrdNx.js → code-editor-B25-mWhb.js} +4 -4
- package/dist/code-editor.js +4 -4
- package/dist/{code-language-items-B7WR5ua_.js → code-language-items-oRjtO3qV.js} +2 -2
- package/dist/components/base-content.css +11 -0
- package/dist/components/components.css +5 -0
- package/dist/components/ui/actions/fab/fab-dock.css +19 -6
- package/dist/components/ui/collections/data-table/data-table-items-tiles.css +27 -1
- package/dist/components/ui/display/tube-cap/tube-cap.css +87 -0
- package/dist/components/ui/layout/app-search/app-search.css +62 -0
- package/dist/components/ui/layout/app-shell/activity-backdrop.css +10 -2
- package/dist/components/ui/layout/app-shell/app-header.css +108 -0
- package/dist/components/ui/layout/navigation-toolbar/navigation-toolbar.css +43 -0
- package/dist/{components-CTyNC_zW.js → components-B00kDHzJ.js} +23101 -18734
- package/dist/components.js +37 -37
- package/dist/{conversion-variant-BDFAxqe9.js → conversion-variant-wZd-G6xR.js} +3 -3
- package/dist/{currency-field-DWHB5oms.js → currency-field-DizBTAat.js} +4 -4
- package/dist/{date.utils-DUvqcjan.js → date.utils-JTEIo3mM.js} +98 -98
- package/dist/{dialog-Bm5LvVlB.js → dialog-B-3s-oXt.js} +3 -3
- package/dist/dnd.js +2 -2
- package/dist/{dropdown-menu-xlZ6NYUA.js → dropdown-menu-C6rcYGB9.js} +1 -1
- package/dist/editor.js +19 -19
- package/dist/{empty-state-C0kviQdW.js → empty-state-CSkghnD9.js} +1 -1
- package/dist/{financial-variant-CggTpad2.js → financial-variant-igpGRbGw.js} +5 -5
- package/dist/{hooks-Dg94jPRq.js → hooks-DvIsom2p.js} +2 -2
- package/dist/hooks.js +9 -8
- package/dist/{hover-card-B1g55Hi6.js → hover-card-DuaVVKMb.js} +1 -1
- package/dist/i18n.js +3 -3
- package/dist/{icon-badge-BcW66bRk.js → icon-badge-3ThP6EOl.js} +1 -1
- package/dist/{icon-button-Cogxy1cy.js → icon-button-4PKlaI1g.js} +2 -2
- package/dist/lib/components/ui/actions/button/button-tones.d.ts +17 -16
- package/dist/lib/components/ui/collections/day-grouped-list/day-grouped-list.d.ts +6 -1
- package/dist/lib/components/ui/collections/filter/use-filter-field-config.d.ts +2 -0
- package/dist/lib/components/ui/collections/server-table/types-states.d.ts +5 -1
- package/dist/lib/components/ui/display/index.d.ts +1 -0
- package/dist/lib/components/ui/display/tube-cap/index.d.ts +2 -0
- package/dist/lib/components/ui/display/tube-cap/tube-cap.d.ts +27 -0
- package/dist/lib/components/ui/display/tube-cap/tube-cap.kinds.d.ts +7 -0
- package/dist/lib/components/ui/fields/contacts/placeholders.d.ts +1 -1
- package/dist/lib/components/ui/fields/repeatable-group/partials/repeatable-group-row.d.ts +3 -1
- package/dist/lib/components/ui/fields/repeatable-group/partials/repeatable-group-rows.d.ts +2 -1
- package/dist/lib/components/ui/fields/repeatable-group/repeatable-group.d.ts +1 -1
- package/dist/lib/components/ui/fields/repeatable-group/types.d.ts +7 -0
- package/dist/lib/components/ui/layout/app-bar/top-app-bar.d.ts +18 -3
- package/dist/lib/components/ui/layout/app-search/app-search-bar.d.ts +11 -0
- package/dist/lib/components/ui/layout/app-search/app-search.types.d.ts +47 -0
- package/dist/lib/components/ui/layout/app-search/index.d.ts +3 -0
- package/dist/lib/components/ui/layout/app-search/partials/on-phone.d.ts +2 -0
- package/dist/lib/components/ui/layout/app-search/partials/phone-search.d.ts +3 -0
- package/dist/lib/components/ui/layout/app-search/partials/pill-search.d.ts +3 -0
- package/dist/lib/components/ui/layout/app-search/pill-form.d.ts +18 -0
- package/dist/lib/components/ui/layout/app-search/search-panel.d.ts +24 -0
- package/dist/lib/components/ui/layout/app-search/search-results.d.ts +14 -0
- package/dist/lib/components/ui/layout/app-search/search-shortcut.d.ts +15 -0
- package/dist/lib/components/ui/layout/app-search/search-view.d.ts +22 -0
- package/dist/lib/components/ui/layout/app-search/use-pill-panel.d.ts +22 -0
- package/dist/lib/components/ui/layout/app-search/use-search-text.d.ts +8 -0
- package/dist/lib/components/ui/layout/app-shell/activity-app-bar.d.ts +35 -0
- package/dist/lib/components/ui/layout/app-shell/activity-chrome.d.ts +26 -3
- package/dist/lib/components/ui/layout/app-shell/activity-column-props.d.ts +22 -0
- package/dist/lib/components/ui/layout/app-shell/activity-column.d.ts +10 -2
- package/dist/lib/components/ui/layout/app-shell/activity-layout-navigation.types.d.ts +94 -0
- package/dist/lib/components/ui/layout/app-shell/activity-layout.d.ts +8 -1
- package/dist/lib/components/ui/layout/app-shell/activity-layout.types.d.ts +2 -1
- package/dist/lib/components/ui/layout/app-shell/activity-rails.d.ts +16 -0
- package/dist/lib/components/ui/layout/app-shell/activity-sidebar-lane.d.ts +22 -0
- package/dist/lib/components/ui/layout/app-shell/activity-top-nav.d.ts +11 -0
- package/dist/lib/components/ui/layout/app-shell/activity-two-level-lane.d.ts +14 -0
- package/dist/lib/components/ui/layout/app-shell/app-back.d.ts +22 -0
- package/dist/lib/components/ui/layout/app-shell/app-header-row.d.ts +3 -0
- package/dist/lib/components/ui/layout/app-shell/app-header.d.ts +33 -1
- package/dist/lib/components/ui/layout/app-shell/app-shell.utils.d.ts +8 -0
- package/dist/lib/components/ui/layout/app-shell/app-sidebar-entries.d.ts +13 -0
- package/dist/lib/components/ui/layout/app-shell/app-sidebar-label-item.d.ts +3 -1
- package/dist/lib/components/ui/layout/app-shell/bottom-chrome.d.ts +13 -0
- package/dist/lib/components/ui/layout/app-shell/header-title.d.ts +18 -2
- package/dist/lib/components/ui/layout/app-shell/header.utils.d.ts +37 -0
- package/dist/lib/components/ui/layout/app-shell/index.d.ts +3 -0
- package/dist/lib/components/ui/layout/app-shell/navigation-parts.d.ts +38 -0
- package/dist/lib/components/ui/layout/app-shell/navigation.utils.d.ts +36 -0
- package/dist/lib/components/ui/layout/app-shell/page-title-scope.d.ts +14 -0
- package/dist/lib/components/ui/layout/app-shell/page-title.d.ts +12 -1
- package/dist/lib/components/ui/layout/app-shell/shell-scroll.d.ts +32 -0
- package/dist/lib/components/ui/layout/app-shell/sticky-offset.d.ts +8 -0
- package/dist/lib/components/ui/layout/app-shell/types.d.ts +14 -0
- package/dist/lib/components/ui/layout/app-shell/use-focus-while-hidden.d.ts +9 -0
- package/dist/lib/components/ui/layout/app-shell/use-header-height.d.ts +12 -0
- package/dist/lib/components/ui/layout/app-shell/use-header-scroll.d.ts +19 -0
- package/dist/lib/components/ui/layout/app-shell/use-shell-header.d.ts +20 -0
- package/dist/lib/components/ui/layout/auth-card/auth-card-split.d.ts +14 -0
- package/dist/lib/components/ui/layout/auth-card/auth-card.d.ts +13 -1
- package/dist/lib/components/ui/layout/dashboard-grid/dashboard-grid-context.d.ts +21 -0
- package/dist/lib/components/ui/layout/dashboard-grid/dashboard-grid.d.ts +9 -0
- package/dist/lib/components/ui/layout/dashboard-grid/dashboard-grid.state.d.ts +30 -0
- package/dist/lib/components/ui/layout/dashboard-grid/dashboard-grid.tiles.d.ts +8 -0
- package/dist/lib/components/ui/layout/dashboard-grid/dashboard-grid.types.d.ts +50 -0
- package/dist/lib/components/ui/layout/dashboard-grid/dashboard-grid.utils.d.ts +70 -0
- package/dist/lib/components/ui/layout/dashboard-grid/dashboard-tile.d.ts +7 -0
- package/dist/lib/components/ui/layout/dashboard-grid/index.d.ts +4 -0
- package/dist/lib/components/ui/layout/dashboard-grid/partials/dashboard-announcer.d.ts +6 -0
- package/dist/lib/components/ui/layout/dashboard-grid/partials/dashboard-edit-bar.d.ts +11 -0
- package/dist/lib/components/ui/layout/dashboard-grid/partials/dashboard-move-buttons.d.ts +9 -0
- package/dist/lib/components/ui/layout/dashboard-grid/partials/dashboard-toolbar.d.ts +7 -0
- package/dist/lib/components/ui/layout/dashboard-grid/use-dashboard-grid.d.ts +21 -0
- package/dist/lib/components/ui/layout/dashboard-grid/use-dashboard-moves.d.ts +22 -0
- package/dist/lib/components/ui/layout/doc/doc-context.d.ts +2 -0
- package/dist/lib/components/ui/layout/doc/doc.d.ts +5 -0
- package/dist/lib/components/ui/layout/doc/index.d.ts +1 -1
- package/dist/lib/components/ui/layout/doc/partials/doc-embedded-bar.d.ts +9 -0
- package/dist/lib/components/ui/layout/doc/partials/doc-embedded.d.ts +8 -0
- package/dist/lib/components/ui/layout/doc/use-doc.d.ts +9 -1
- package/dist/lib/components/ui/layout/editor-layout/editor-layout.d.ts +14 -0
- package/dist/lib/components/ui/layout/editor-layout/editor-layout.types.d.ts +31 -0
- package/dist/lib/components/ui/layout/editor-layout/index.d.ts +4 -0
- package/dist/lib/components/ui/layout/editor-layout/partials/editor-layout-body.d.ts +11 -0
- package/dist/lib/components/ui/layout/editor-layout/partials/editor-layout-canvas.d.ts +8 -0
- package/dist/lib/components/ui/layout/editor-layout/partials/editor-layout-context.d.ts +12 -0
- package/dist/lib/components/ui/layout/editor-layout/partials/editor-layout-start.d.ts +8 -0
- package/dist/lib/components/ui/layout/editor-layout/partials/editor-layout-triggers.d.ts +10 -0
- package/dist/lib/components/ui/layout/editor-layout/partials/use-editor-layout-names.d.ts +8 -0
- package/dist/lib/components/ui/layout/editor-layout/partials/use-editor-layout-state.d.ts +21 -0
- package/dist/lib/components/ui/layout/index.d.ts +9 -0
- package/dist/lib/components/ui/layout/landing/index.d.ts +6 -0
- package/dist/lib/components/ui/layout/landing/landing-layout.d.ts +15 -0
- package/dist/lib/components/ui/layout/landing/landing-layout.types.d.ts +27 -0
- package/dist/lib/components/ui/layout/landing/landing-section.d.ts +12 -0
- package/dist/lib/components/ui/layout/landing/landing-section.types.d.ts +32 -0
- package/dist/lib/components/ui/layout/landing/landing.classes.d.ts +20 -0
- package/dist/lib/components/ui/layout/landing/partials/landing-header.d.ts +11 -0
- package/dist/lib/components/ui/layout/landing/partials/landing-section-intro.d.ts +13 -0
- package/dist/lib/components/ui/layout/landing/partials/site-footer-group.d.ts +8 -0
- package/dist/lib/components/ui/layout/landing/site-footer.d.ts +13 -0
- package/dist/lib/components/ui/layout/landing/site-footer.types.d.ts +29 -0
- package/dist/lib/components/ui/layout/list-details-layout/internal.d.ts +2 -0
- package/dist/lib/components/ui/layout/list-details-layout/list-details-layout.d.ts +9 -17
- package/dist/lib/components/ui/layout/list-details-layout/partials/history-mark.d.ts +2 -0
- package/dist/lib/components/ui/layout/list-details-layout/partials/list-details-context.d.ts +17 -1
- package/dist/lib/components/ui/layout/list-details-layout/partials/list-details-history.d.ts +8 -0
- package/dist/lib/components/ui/layout/list-details-layout/partials/list-details-inspector.d.ts +21 -0
- package/dist/lib/components/ui/layout/list-details-layout/partials/list-details-layout.types.d.ts +47 -0
- package/dist/lib/components/ui/layout/list-details-layout/partials/list-details-resizer.d.ts +9 -0
- package/dist/lib/components/ui/layout/list-details-layout/partials/list-details-root.d.ts +3 -0
- package/dist/lib/components/ui/layout/list-details-layout/partials/list-details-trigger.d.ts +13 -4
- package/dist/lib/components/ui/layout/list-details-layout/partials/use-inspector-focus.d.ts +8 -0
- package/dist/lib/components/ui/layout/list-details-layout/partials/use-list-details-param.d.ts +26 -0
- package/dist/lib/components/ui/layout/list-details-layout/partials/use-list-details-state.d.ts +15 -0
- package/dist/lib/components/ui/layout/list-details-layout/partials/use-list-width.d.ts +16 -0
- package/dist/lib/components/ui/layout/list-details-layout/partials/use-pane-focus.d.ts +6 -4
- package/dist/lib/components/ui/layout/navigation-bar/index.d.ts +3 -0
- package/dist/lib/components/ui/layout/navigation-bar/internal.d.ts +4 -0
- package/dist/lib/components/ui/layout/navigation-bar/navigation-bar.classes.d.ts +14 -0
- package/dist/lib/components/ui/layout/navigation-bar/navigation-bar.d.ts +35 -0
- package/dist/lib/components/ui/layout/navigation-bar/navigation-bar.utils.d.ts +19 -0
- package/dist/lib/components/ui/layout/navigation-bar/partials/bar-badge.d.ts +5 -0
- package/dist/lib/components/ui/layout/navigation-bar/partials/bar-entry.d.ts +12 -0
- package/dist/lib/components/ui/layout/navigation-bar/partials/navigation-bar-item.d.ts +22 -0
- package/dist/lib/components/ui/layout/navigation-bar/partials/navigation-bar-more.d.ts +24 -0
- package/dist/lib/components/ui/layout/navigation-bar/use-nav-bar-inset.d.ts +12 -0
- package/dist/lib/components/ui/layout/navigation-drawer/index.d.ts +5 -0
- package/dist/lib/components/ui/layout/navigation-drawer/navigation-drawer.classes.d.ts +9 -0
- package/dist/lib/components/ui/layout/navigation-drawer/navigation-drawer.d.ts +45 -0
- package/dist/lib/components/ui/layout/navigation-drawer/navigation-drawer.utils.d.ts +14 -0
- package/dist/lib/components/ui/layout/navigation-drawer/partials/navigation-drawer-body.d.ts +3 -0
- package/dist/lib/components/ui/layout/navigation-drawer/partials/navigation-drawer-item.d.ts +20 -0
- package/dist/lib/components/ui/layout/navigation-drawer/partials/navigation-drawer-modal.d.ts +17 -0
- package/dist/lib/components/ui/layout/navigation-drawer/partials/navigation-drawer-section.d.ts +15 -0
- package/dist/lib/components/ui/layout/navigation-rail/index.d.ts +3 -0
- package/dist/lib/components/ui/layout/navigation-rail/navigation-rail-panel.d.ts +26 -0
- package/dist/lib/components/ui/layout/navigation-rail/navigation-rail.classes.d.ts +23 -0
- package/dist/lib/components/ui/layout/navigation-rail/navigation-rail.d.ts +42 -1
- package/dist/lib/components/ui/layout/navigation-rail/navigation-rail.utils.d.ts +4 -0
- package/dist/lib/components/ui/layout/navigation-rail/partials/navigation-rail-body.d.ts +3 -0
- package/dist/lib/components/ui/layout/navigation-rail/partials/navigation-rail-item.d.ts +20 -0
- package/dist/lib/components/ui/layout/navigation-rail/partials/navigation-rail-panel-item.d.ts +7 -0
- package/dist/lib/components/ui/layout/navigation-rail/partials/navigation-rail-toggle.d.ts +7 -0
- package/dist/lib/components/ui/layout/navigation-rail/use-rail-expanded.d.ts +13 -0
- package/dist/lib/components/ui/layout/navigation-toolbar/index.d.ts +2 -0
- package/dist/lib/components/ui/layout/navigation-toolbar/navigation-toolbar.classes.d.ts +20 -0
- package/dist/lib/components/ui/layout/navigation-toolbar/navigation-toolbar.d.ts +51 -0
- package/dist/lib/components/ui/layout/navigation-toolbar/partials/navigation-toolbar-item.d.ts +25 -0
- package/dist/lib/components/ui/layout/navigation-toolbar/partials/navigation-toolbar-more.d.ts +3 -0
- package/dist/lib/components/ui/layout/pane-layout/internal.d.ts +3 -0
- package/dist/lib/components/ui/layout/pane-layout/pane-layout.d.ts +16 -2
- package/dist/lib/components/ui/layout/pane-layout/partials/pane-layout-classes.d.ts +7 -0
- package/dist/lib/components/ui/layout/pane-layout/partials/pane-layout-context.d.ts +13 -0
- package/dist/lib/components/ui/layout/pane-layout/partials/use-pane-layout-state.d.ts +16 -0
- package/dist/lib/components/ui/layout/pane-layout/partials/use-pane-narrow.d.ts +6 -0
- package/dist/lib/components/ui/layout/responsive-grid/index.d.ts +4 -1
- package/dist/lib/components/ui/layout/responsive-grid/responsive-grid-item.d.ts +19 -0
- package/dist/lib/components/ui/layout/responsive-grid/responsive-grid-spans.d.ts +19 -0
- package/dist/lib/components/ui/layout/responsive-grid/responsive-grid.d.ts +24 -2
- package/dist/lib/components/ui/layout/responsive-grid/responsive-grid.utils.d.ts +12 -0
- package/dist/lib/components/ui/layout/settings-layout/index.d.ts +2 -0
- package/dist/lib/components/ui/layout/settings-layout/partials/settings-link.d.ts +7 -0
- package/dist/lib/components/ui/layout/settings-layout/partials/settings-list.d.ts +11 -0
- package/dist/lib/components/ui/layout/settings-layout/partials/settings-page.d.ts +5 -0
- package/dist/lib/components/ui/layout/settings-layout/settings-layout.d.ts +10 -0
- package/dist/lib/components/ui/layout/settings-layout/settings-layout.types.d.ts +33 -0
- package/dist/lib/components/ui/layout/settings-layout/settings-layout.utils.d.ts +13 -0
- package/dist/lib/components/ui/layout/thread-layout/thread-layout-classes.d.ts +17 -0
- package/dist/lib/components/ui/layout/thread-layout/thread-layout-parts.d.ts +14 -0
- package/dist/lib/components/ui/layout/thread-layout/thread-layout-stepper.d.ts +11 -0
- package/dist/lib/components/ui/layout/thread-layout/thread-layout.d.ts +30 -3
- package/dist/lib/components/ui/layout/top-nav/index.d.ts +5 -0
- package/dist/lib/components/ui/layout/top-nav/partials/top-nav-item.d.ts +23 -0
- package/dist/lib/components/ui/layout/top-nav/partials/top-nav-menu.d.ts +22 -0
- package/dist/lib/components/ui/layout/top-nav/top-nav.classes.d.ts +10 -0
- package/dist/lib/components/ui/layout/top-nav/top-nav.d.ts +34 -0
- package/dist/lib/components/ui/layout/top-nav/top-nav.utils.d.ts +10 -0
- package/dist/lib/components/ui/media/galleries/gallery.d.ts +1 -1
- package/dist/lib/components/ui/media/galleries/lightbox-gallery.d.ts +1 -1
- package/dist/lib/components/ui/media/galleries/mini-gallery.d.ts +1 -1
- package/dist/lib/components/ui/overlays/dialog/dialog-parts.d.ts +1 -1
- package/dist/lib/components/ui/overlays/sheet/sheet-parts.d.ts +5 -0
- package/dist/lib/components/ui/selection/choice-card-group/choice-card-balance.d.ts +4 -0
- package/dist/lib/components/ui/selection/choice-card-group/choice-card-group.d.ts +3 -1
- package/dist/lib/components/ui/selection/choice-card-group/choice-card-group.types.d.ts +7 -0
- package/dist/lib/components/ui/selection/sortable-list/partials/sortable-list-body.d.ts +5 -1
- package/dist/lib/components/ui/selection/sortable-list/partials/sortable-list-row-parts.d.ts +2 -1
- package/dist/lib/components/ui/selection/sortable-list/partials/sortable-list-row-props.d.ts +8 -5
- package/dist/lib/components/ui/selection/sortable-list/partials/use-owed-focus.d.ts +10 -0
- package/dist/lib/components/ui/selection/sortable-list/sortable-list-context.d.ts +2 -0
- package/dist/lib/components/ui/selection/sortable-list/sortable-list.keyboard.d.ts +1 -1
- package/dist/lib/components/ui/widgets/event-calendar/event-calendar-context.d.ts +3 -0
- package/dist/lib/components/ui/widgets/event-calendar/event-calendar-shell.d.ts +15 -0
- package/dist/lib/components/ui/widgets/event-calendar/event-calendar-template.d.ts +9 -0
- package/dist/lib/components/ui/widgets/event-calendar/event-calendar.d.ts +7 -3
- package/dist/lib/components/ui/widgets/event-calendar/event-calendar.template.d.ts +41 -0
- package/dist/lib/components/ui/widgets/event-calendar/index.d.ts +1 -0
- package/dist/lib/components/ui/widgets/event-calendar/partials/calendar-date-nav.d.ts +2 -0
- package/dist/lib/components/ui/widgets/event-calendar/partials/calendar-lane-toggle.d.ts +5 -0
- package/dist/lib/components/ui/widgets/event-calendar/partials/time-grid-header-template.d.ts +7 -0
- package/dist/lib/components/ui/widgets/event-calendar/template.types.d.ts +73 -0
- package/dist/lib/components/ui/widgets/event-calendar/types.d.ts +2 -0
- package/dist/lib/components/ui/widgets/event-calendar/use-chip-event.d.ts +1 -0
- package/dist/lib/components/ui/widgets/event-calendar/use-drawn-events.d.ts +4 -3
- package/dist/lib/components/ui/widgets/event-calendar/use-template-calendar.d.ts +18 -0
- package/dist/lib/components/ui/widgets/event-calendar/use-template-lane.d.ts +17 -0
- package/dist/lib/components/ui/widgets/kanban/index.d.ts +1 -1
- package/dist/lib/components/ui/widgets/kanban/kanban-context.d.ts +5 -2
- package/dist/lib/components/ui/widgets/kanban/kanban.d.ts +11 -2
- package/dist/lib/components/ui/widgets/kanban/kanban.slice.d.ts +32 -0
- package/dist/lib/components/ui/widgets/kanban/kanban.utils.d.ts +9 -0
- package/dist/lib/components/ui/widgets/kanban/partials/kanban-card-preview.d.ts +3 -1
- package/dist/lib/components/ui/widgets/kanban/partials/kanban-column.d.ts +6 -0
- package/dist/lib/components/ui/widgets/kanban/partials/kanban-move-to.d.ts +13 -0
- package/dist/lib/components/ui/widgets/kanban/partials/kanban-phone-tabs.d.ts +10 -0
- package/dist/lib/components/ui/widgets/kanban/types.d.ts +7 -0
- package/dist/lib/components/ui/widgets/kanban/use-kanban-board-keys.d.ts +7 -0
- package/dist/lib/components/ui/widgets/kanban/use-kanban-item-actions.d.ts +5 -0
- package/dist/lib/components/ui/widgets/kanban/use-kanban-phone-column.d.ts +18 -0
- package/dist/lib/components/ui/widgets/kanban/use-kanban.d.ts +6 -1
- package/dist/lib/hooks/index.d.ts +1 -0
- package/dist/lib/i18n/resources/en/en.d.ts +52 -0
- package/dist/lib/i18n/resources/en/material.json.d.ts +54 -2
- package/dist/lib/i18n/resources/fr/fr.d.ts +52 -0
- package/dist/lib/i18n/resources/fr/material.json.d.ts +54 -2
- package/dist/lib/i18n/resources/resources.d.ts +104 -0
- package/dist/lib/i18n/translator.d.ts +1 -1
- package/dist/lib.js +2 -2
- package/dist/main.js +53 -52
- package/dist/map.js +7 -7
- package/dist/material.css +1 -1
- package/dist/pdf-reader.js +1 -1
- package/dist/{percent-field--WIXV5dX.js → percent-field-QwU1l2Q4.js} +1 -1
- package/dist/{picker-surface-CV09H7Nb.js → picker-surface-CiTycWgV.js} +4 -4
- package/dist/{popover-Cd7DkND4.js → popover-YmbzbKQG.js} +1 -1
- package/dist/{pos-types-DKCkOTYy.js → pos-types-BFrapNmx.js} +1 -1
- package/dist/{pos-variant-GrUfbTTP.js → pos-variant-CctfqieO.js} +4 -4
- package/dist/print.js +1 -1
- package/dist/{programmer-variant-eKJNKENL.js → programmer-variant-Dd0YOixn.js} +2 -2
- package/dist/{public-y6g4ddxd.js → public-CshR_aW7.js} +10 -10
- package/dist/{rich-code-block-CRQ0iyLb.js → rich-code-block-BuJLDoBu.js} +5 -5
- package/dist/{scientific-variant-2y3UxAAU.js → scientific-variant-CjErQxuZ.js} +2 -2
- package/dist/{sortable-provider-DdiI3Fwk.js → sortable-provider-DU2nvpFc.js} +3 -3
- package/dist/{spinner-C1QIewWv.js → spinner-DH1mm8hH.js} +2 -2
- package/dist/{tabs-KGKvve3y.js → tabs-Um0SFyf1.js} +1 -1
- package/dist/theme-picker.js +2 -2
- package/dist/{theme-toggle-C_VeiiCm.js → theme-toggle-C-Ih4uQU.js} +1 -1
- package/dist/{toolbar-items-D310xDuM.js → toolbar-items-BoEY5bkt.js} +4 -4
- package/dist/{translate-material-BypJJ1l5.js → translate-material-D4rn5UaQ.js} +1 -1
- package/dist/{translator-DJkf4J7t.js → translator-CcEgQ-H7.js} +112 -4
- package/dist/{use-chat-composer-BFhRMHcX.js → use-chat-composer-BBF1BI_s.js} +47 -43
- package/dist/{use-click-lock-BZYtTmVt.js → use-click-lock-Bwg_caHO.js} +14 -14
- package/dist/{use-heading-spy-DJR8YYm6.js → use-heading-spy-BgyA6SJl.js} +19 -19
- package/dist/{use-material-translation-CD6QoVal.js → use-material-translation-DYrfV_JJ.js} +1 -1
- package/dist/{use-return-focus-Cevw_6yq.js → use-return-focus-C_Qz_yTk.js} +1 -1
- package/docs/README.md +1 -0
- package/docs/components/data-display.md +40 -8
- package/docs/components/data-table-filter-and-lists.md +7 -3
- package/docs/components/form-fields.md +1 -0
- package/docs/components/media-and-files.md +1 -0
- package/docs/components/navigation-and-layout.md +946 -28
- package/docs/components/overlays-and-menus.md +11 -5
- package/docs/components/rich-widgets.md +111 -1
- package/docs/components/selection-and-choice.md +49 -10
- package/docs/guides/app-shell.md +641 -2
- package/docs/guides/forms.md +7 -0
- package/docs/guides/helpers.md +23 -0
- package/docs/guides/i18n.md +13 -1
- package/docs/guides/layouts.md +215 -0
- package/docs/guides/ssr.md +1 -1
- package/docs/guides/theming.md +7 -7
- package/docs/previews/data-display-tubecap.webp +0 -0
- package/docs/previews/navigation-layout-appshell-page-ground.webp +0 -0
- package/docs/previews/navigation-layout-appshell.webp +0 -0
- package/docs/previews/navigation-layout-authcard-split.webp +0 -0
- package/docs/previews/navigation-layout-authcard.webp +0 -0
- package/docs/previews/navigation-layout-dashboardgrid.webp +0 -0
- package/docs/previews/navigation-layout-editorlayout.webp +0 -0
- package/docs/previews/navigation-layout-landinglayout.webp +0 -0
- package/docs/previews/navigation-layout-panelayout.webp +0 -0
- package/docs/previews/navigation-layout-settingslayout.webp +0 -0
- package/docs/previews/navigation-layout-threadlayout-pages.webp +0 -0
- package/docs/previews/navigation-layout-threadlayout.webp +0 -0
- package/docs/previews/selection-choice-sortablelist.webp +0 -0
- package/docs/roadmap.md +12 -2
- package/docs/troubleshooting.md +50 -2
- package/lib/components/base-content.css +11 -0
- package/lib/components/components.css +5 -0
- package/lib/components/ui/actions/fab/fab-dock.css +19 -6
- package/lib/components/ui/collections/data-table/data-table-items-tiles.css +27 -1
- package/lib/components/ui/display/tube-cap/tube-cap.css +87 -0
- package/lib/components/ui/layout/app-search/app-search.css +62 -0
- package/lib/components/ui/layout/app-shell/activity-backdrop.css +10 -2
- package/lib/components/ui/layout/app-shell/app-header.css +108 -0
- package/lib/components/ui/layout/navigation-toolbar/navigation-toolbar.css +43 -0
- package/lib/themes/ambre.css +1 -1
- package/lib/themes/ardoise.css +1 -1
- package/lib/themes/bleumono.css +1 -1
- package/lib/themes/bluemoon.css +1 -1
- package/lib/themes/corail.css +2 -2
- package/lib/themes/foret.css +1 -1
- package/lib/themes/lavande.css +1 -1
- package/lib/themes/menthe.css +2 -2
- package/lib/themes/ocean.css +1 -1
- package/lib/themes/pink.css +2 -2
- package/lib/themes/prune.css +1 -1
- package/lib/themes/sable.css +1 -1
- package/lib/themes/slate.css +1 -1
- package/lib/themes/teal.css +2 -2
- package/package.json +2 -2
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ComponentProps, ReactNode } from 'react';
|
|
2
|
+
export interface SettingsSection {
|
|
3
|
+
/** The value kept in the URL (`?section=notifications`). */
|
|
4
|
+
id: string;
|
|
5
|
+
/** The section's name, in the list and as the heading of its page. */
|
|
6
|
+
title: ReactNode;
|
|
7
|
+
/** One line under the title, in the list and on the page. */
|
|
8
|
+
description?: ReactNode;
|
|
9
|
+
/** A decorative icon in a tinted well, in the list. */
|
|
10
|
+
icon?: ReactNode;
|
|
11
|
+
/** The list's group heading; sections with the same `group` sit together, in the order they first appear. */
|
|
12
|
+
group?: string;
|
|
13
|
+
/** Words the search also matches, besides a string `title`, `description` and `group`. */
|
|
14
|
+
keywords?: string;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
/** The section's page: `ListTile` rows, forms, anything. Only the selected section renders. */
|
|
17
|
+
content: ReactNode;
|
|
18
|
+
}
|
|
19
|
+
export interface SettingsLayoutProps extends Omit<ComponentProps<'div'>, 'title' | 'children'> {
|
|
20
|
+
sections: SettingsSection[];
|
|
21
|
+
/** The list's heading and the name of its navigation landmark; the translated "Settings" by default. */
|
|
22
|
+
title?: ReactNode;
|
|
23
|
+
/** The search param holding the selected section, `'section'` by default. */
|
|
24
|
+
param?: string;
|
|
25
|
+
/** The search param holding the phone's view (list or page), `'view'` by default. */
|
|
26
|
+
viewParam?: string;
|
|
27
|
+
/** A search field over the sections, above the list. */
|
|
28
|
+
search?: boolean;
|
|
29
|
+
/** What the one-pane phone layout follows: the window (default) or the layout's own width. */
|
|
30
|
+
breakpoint?: 'viewport' | 'container';
|
|
31
|
+
/** The list pane's width in px (default 320). */
|
|
32
|
+
listWidth?: number;
|
|
33
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { SettingsSection } from './settings-layout.types.js';
|
|
2
|
+
export type SettingsGroup = {
|
|
3
|
+
label?: string;
|
|
4
|
+
sections: SettingsSection[];
|
|
5
|
+
};
|
|
6
|
+
/** The sections by `group`, in the order each group first appears; ungrouped ones keep their place. */
|
|
7
|
+
export declare function groupSections(sections: SettingsSection[]): SettingsGroup[];
|
|
8
|
+
/** The sections whose words (title, description, group, keywords) contain the query, every word of it. */
|
|
9
|
+
export declare function filterSections(sections: SettingsSection[], query: string): SettingsSection[];
|
|
10
|
+
/** The section the page shows: the one in the URL, else the first usable one. */
|
|
11
|
+
export declare function currentSection(sections: SettingsSection[], id: string | null): SettingsSection | undefined;
|
|
12
|
+
/** A link to a section that keeps the other search params and opens the page on a phone. */
|
|
13
|
+
export declare function sectionHref(params: URLSearchParams, param: string, viewParam: string, id: string): string;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** How wide the centred column is; `'form'` is a sign-up form, `'wide'` a table of options. */
|
|
2
|
+
export type ThreadLayoutWidth = 'form' | 'reading' | 'wide';
|
|
3
|
+
/** Where the stepper sits: above the column, or in a rail beside it from `xl` (1280px). */
|
|
4
|
+
export type ThreadLayoutStepperPlacement = 'top' | 'side';
|
|
5
|
+
/** The column's max width, one token per name. Literal strings, so Tailwind finds every class. */
|
|
6
|
+
export declare const WIDTH_CLASSES: Record<ThreadLayoutWidth, string>;
|
|
7
|
+
/** The same widths widened by the 16rem rail and its 1rem gap, from `xl`. */
|
|
8
|
+
export declare const WIDTH_WITH_RAIL_CLASSES: Record<ThreadLayoutWidth, string>;
|
|
9
|
+
/**
|
|
10
|
+
* Literal classes, so Tailwind finds them: the room a bottom navigation bar
|
|
11
|
+
* and a docked media bar take (`--nxgt-bottom-chrome`, with the app-shell's
|
|
12
|
+
* fallback), or the home bar when larger.
|
|
13
|
+
*/
|
|
14
|
+
/** Sticks the footer above the bottom chrome. */
|
|
15
|
+
export declare const FOOTER_STICKY = "sticky bottom-[max(var(--nxgt-bottom-chrome,calc(var(--nxgt-nav-bar,0px)+var(--nxgt-media-dock,0px))),env(safe-area-inset-bottom))]";
|
|
16
|
+
/** Keeps the end of the content clear of the footer's stuck position. */
|
|
17
|
+
export declare const PAD_BOTTOM_FOR_CHROME = "pb-[calc(0.5rem+max(var(--nxgt-bottom-chrome,calc(var(--nxgt-nav-bar,0px)+var(--nxgt-media-dock,0px))),env(safe-area-inset-bottom)))] lg:pb-[calc(1rem+max(var(--nxgt-bottom-chrome,calc(var(--nxgt-nav-bar,0px)+var(--nxgt-media-dock,0px))),env(safe-area-inset-bottom)))]";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { ThreadLayoutStepperPlacement, ThreadLayoutWidth } from './thread-layout-classes.js';
|
|
3
|
+
/** The centred column: the stepper (named when placed) above or beside the content. */
|
|
4
|
+
export declare function ThreadLayoutColumn({ width, stepper, stepperPlacement, children, }: {
|
|
5
|
+
width?: ThreadLayoutWidth;
|
|
6
|
+
stepper?: ReactNode | ((placement: ThreadLayoutStepperPlacement) => ReactNode);
|
|
7
|
+
stepperPlacement?: ThreadLayoutStepperPlacement;
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
}): import("react").JSX.Element;
|
|
10
|
+
/** The sticky action bar in the grid's last row (`below`: its row, 2 or 3). */
|
|
11
|
+
export declare function ThreadLayoutFooter({ below, children, }: {
|
|
12
|
+
below: 2 | 3;
|
|
13
|
+
children: ReactNode;
|
|
14
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { ThreadLayoutStepperPlacement } from './thread-layout-classes.js';
|
|
3
|
+
/**
|
|
4
|
+
* The named landmark around a `ThreadLayout`'s stepper: above the column, or a
|
|
5
|
+
* sticky rail beside it from `xl`. One element, placed by CSS only, so the
|
|
6
|
+
* server and the client render the same markup.
|
|
7
|
+
*/
|
|
8
|
+
export declare function ThreadLayoutStepper({ placement, children, }: {
|
|
9
|
+
placement: ThreadLayoutStepperPlacement;
|
|
10
|
+
children: ReactNode;
|
|
11
|
+
}): import("react").JSX.Element;
|
|
@@ -1,9 +1,36 @@
|
|
|
1
1
|
import { ComponentProps, ReactNode } from 'react';
|
|
2
|
+
import { ThreadLayoutStepperPlacement, ThreadLayoutWidth } from './thread-layout-classes.js';
|
|
3
|
+
export type { ThreadLayoutStepperPlacement, ThreadLayoutWidth, } from './thread-layout-classes.js';
|
|
2
4
|
export type ThreadLayoutProps = {
|
|
3
5
|
/** Rendered above the content, full width. Typically a back button or title. */
|
|
4
6
|
header?: ReactNode;
|
|
5
|
-
/**
|
|
6
|
-
|
|
7
|
+
/**
|
|
8
|
+
* The wizard's steps. With `stepperPlacement` unset: rendered directly
|
|
9
|
+
* above the content, inside the centered column, as given. With a placement
|
|
10
|
+
* it sits in a `nav` named "Progress" (above the column, or a rail beside
|
|
11
|
+
* it), and may be a function, called once with the placement, so the
|
|
12
|
+
* caller picks the `Stepper`'s orientation.
|
|
13
|
+
*/
|
|
14
|
+
stepper?: ReactNode | ((placement: ThreadLayoutStepperPlacement) => ReactNode);
|
|
15
|
+
/**
|
|
16
|
+
* The column's width: `'form'` (32rem), `'reading'` (48rem) or `'wide'`
|
|
17
|
+
* (72rem), centred, and its content stretched to fill it. Unset keeps the
|
|
18
|
+
* 14-of-16-column track and children centred at their own width.
|
|
19
|
+
*/
|
|
20
|
+
width?: ThreadLayoutWidth;
|
|
21
|
+
/**
|
|
22
|
+
* A sticky action bar under the column (Back / Next, Save): it stays in
|
|
23
|
+
* view while the content scrolls and keeps clear of a bottom navigation
|
|
24
|
+
* bar (`--nxgt-bottom-chrome`) and the phone's home bar.
|
|
25
|
+
*/
|
|
26
|
+
footer?: ReactNode;
|
|
27
|
+
/**
|
|
28
|
+
* With a `stepper`: `'top'` keeps it above the column; `'side'` puts it in
|
|
29
|
+
* a rail beside the column from 1280px and above it below (one element
|
|
30
|
+
* placed by CSS, so the function gets `'side'` in both ranges: pass a
|
|
31
|
+
* vertical `Stepper`). Unset leaves the stepper as it was.
|
|
32
|
+
*/
|
|
33
|
+
stepperPlacement?: ThreadLayoutStepperPlacement;
|
|
7
34
|
} & ComponentProps<'div'>;
|
|
8
35
|
/**
|
|
9
36
|
* A single centered column over the app background, for focused flows a user
|
|
@@ -15,4 +42,4 @@ export type ThreadLayoutProps = {
|
|
|
15
42
|
* app-local; a flow like this one wants the chrome out of the way anyway, so
|
|
16
43
|
* the `header` slot takes whatever the caller wants there instead.
|
|
17
44
|
*/
|
|
18
|
-
export declare function ThreadLayout({ children, header, stepper, className, ...props }: ThreadLayoutProps): import("react").JSX.Element;
|
|
45
|
+
export declare function ThreadLayout({ children, header, stepper, width, footer, stepperPlacement, className, ...props }: ThreadLayoutProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type { TopNavItemProps } from './partials/top-nav-item.js';
|
|
2
|
+
export { TopNavItem } from './partials/top-nav-item.js';
|
|
3
|
+
export type { TopNavMenuProps } from './partials/top-nav-menu.js';
|
|
4
|
+
export { TopNavMenu } from './partials/top-nav-menu.js';
|
|
5
|
+
export * from './top-nav.js';
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { IconProps } from '../../../primitives/icon/icon.js';
|
|
3
|
+
import { AppShellLinkComponent } from '../../app-shell/types.js';
|
|
4
|
+
export type TopNavItemProps = {
|
|
5
|
+
/** Where the destination goes. */
|
|
6
|
+
href: string;
|
|
7
|
+
/** An icon before the label. Optional: the bar reads fine with labels alone. */
|
|
8
|
+
icon?: IconProps['name'];
|
|
9
|
+
/** The visible label, already translated. */
|
|
10
|
+
children: ReactNode;
|
|
11
|
+
/** Whether this is the current destination: `aria-current="page"` and a tint. */
|
|
12
|
+
active?: boolean;
|
|
13
|
+
/** `true` a dot, a number a count ("99+" past 99), a node as it is; ends the pill and is read in the link's name. */
|
|
14
|
+
badge?: number | boolean | ReactNode;
|
|
15
|
+
/** Replaces the badge's text in the link's name, already translated. */
|
|
16
|
+
badgeLabel?: string;
|
|
17
|
+
linkComponent?: AppShellLinkComponent;
|
|
18
|
+
className?: string;
|
|
19
|
+
};
|
|
20
|
+
/** The icon, label and badge a pill shows; shared by a link and a trigger. */
|
|
21
|
+
export declare function TopNavEntryContent({ icon, children, badge, badgeLabel, }: Pick<TopNavItemProps, 'icon' | 'children' | 'badge' | 'badgeLabel'>): import("react").JSX.Element;
|
|
22
|
+
/** One destination of the top bar: a pill, `aria-current="page"` when active. */
|
|
23
|
+
export declare function TopNavItem({ href, icon, children, active, badge, badgeLabel, linkComponent, className, }: TopNavItemProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { IconProps } from '../../../primitives/icon/icon.js';
|
|
3
|
+
import { AppShellLinkComponent, MenuItem } from '../../app-shell/types.js';
|
|
4
|
+
export type TopNavMenuProps = {
|
|
5
|
+
/** The trigger's visible label, already translated. */
|
|
6
|
+
label: ReactNode;
|
|
7
|
+
icon?: IconProps['name'];
|
|
8
|
+
/** The links of the dropdown. */
|
|
9
|
+
items: MenuItem[];
|
|
10
|
+
/** The `url` of the current link, if it is one of `items`: it gets `aria-current="page"` and its trigger reads as active. */
|
|
11
|
+
current?: string;
|
|
12
|
+
badge?: number | boolean | ReactNode;
|
|
13
|
+
badgeLabel?: string;
|
|
14
|
+
linkComponent?: AppShellLinkComponent;
|
|
15
|
+
className?: string;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* An entry that opens a dropdown of links: a trigger (a button, with
|
|
19
|
+
* `aria-expanded`) and a card under it. Arrow keys, Escape and focus return
|
|
20
|
+
* follow Radix's navigation menu.
|
|
21
|
+
*/
|
|
22
|
+
export declare function TopNavMenu({ label, icon, items, current, badge, badgeLabel, linkComponent, className, }: TopNavMenuProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** The list of destinations: a row of pills, never wider than its place. */
|
|
2
|
+
export declare const TOP_NAV_LIST = "flex min-w-0 items-center gap-1";
|
|
3
|
+
/** One destination or trigger: a 48px pill, the whole pill tinted when current (Expressive). */
|
|
4
|
+
export declare const TOP_NAV_ENTRY = "nxgt-plain-link group relative flex h-12 shrink-0 items-center gap-2 rounded-full px-4 font-medium text-muted-foreground text-sm outline-none transition-colors hover:bg-accent/60 data-active:font-semibold data-active:text-foreground data-[state=open]:bg-accent/60 focus-visible:outline-2 focus-visible:outline-ring forced-colors:focus-visible:outline-[Highlight]";
|
|
5
|
+
/** The tint behind the pill: the bar's indicator, which grows from the middle. */
|
|
6
|
+
export declare const TOP_NAV_ROW = "absolute inset-0 scale-x-50 rounded-full bg-sidebar-active opacity-0 transition-[opacity,transform] duration-(--nxgt-motion-effects-default-duration) ease-(--nxgt-motion-effects-default) group-data-active:scale-x-100 group-data-active:opacity-100 group-active:scale-x-110 motion-reduce:transition-none forced-colors:border forced-colors:border-[Highlight]";
|
|
7
|
+
/** The dropdown: a rounded card under its trigger, fading and sliding in unless motion is reduced. */
|
|
8
|
+
export declare const TOP_NAV_MENU = "absolute start-0 top-full z-50 mt-2 flex w-64 flex-col gap-1 rounded-[28px] bg-card p-2 text-card-foreground shadow-xl ring-1 ring-border/60 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:slide-in-from-top-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 motion-reduce:animate-none";
|
|
9
|
+
/** One link of a dropdown: a 48px row, rounder than the pills' corner radius of the card. */
|
|
10
|
+
export declare const TOP_NAV_MENU_LINK = "nxgt-plain-link group relative flex h-12 shrink-0 items-center gap-2 rounded-full px-4 font-medium text-muted-foreground text-sm outline-none transition-colors hover:bg-accent/60 data-active:font-semibold data-active:text-foreground data-[state=open]:bg-accent/60 focus-visible:outline-2 focus-visible:outline-ring forced-colors:focus-visible:outline-[Highlight] w-full rounded-2xl";
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { AppShellLinkComponent, MenuItem } from '../app-shell/types.js';
|
|
3
|
+
import { TopNavItem } from './partials/top-nav-item.js';
|
|
4
|
+
import { TopNavMenu } from './partials/top-nav-menu.js';
|
|
5
|
+
export type TopNavProps = {
|
|
6
|
+
/**
|
|
7
|
+
* The destinations, in order. An entry with `children` opens a dropdown of
|
|
8
|
+
* its child links; the others are links. `footer`, `group` and `display`
|
|
9
|
+
* are not used.
|
|
10
|
+
*/
|
|
11
|
+
items?: MenuItem[];
|
|
12
|
+
linkComponent?: AppShellLinkComponent;
|
|
13
|
+
/** The landmark's accessible name, already translated. @default "Navigation" */
|
|
14
|
+
label?: string;
|
|
15
|
+
/** Hand-made entries (`TopNav.Item`, `TopNav.Menu`), after those of `items`. */
|
|
16
|
+
children?: ReactNode;
|
|
17
|
+
className?: string;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* The top navigation (Material 3 Expressive): a `nav` of destinations as 48px
|
|
21
|
+
* pills in a row, the current one tinted with `aria-current="page"`. An entry
|
|
22
|
+
* with `children` is a trigger that opens a dropdown of its child links; when
|
|
23
|
+
* the current page is one of them, the trigger reads as active. Badges are
|
|
24
|
+
* read in the link's name. Built on Radix's navigation menu: arrow keys move
|
|
25
|
+
* along the bar, Escape closes a dropdown and returns focus to its trigger.
|
|
26
|
+
*
|
|
27
|
+
* Needs a React Router context to read the location. `ActivityLayout`'s
|
|
28
|
+
* `navigation="top"` draws it in the app header from 768px.
|
|
29
|
+
*/
|
|
30
|
+
export declare function TopNav({ items, linkComponent, label, children, className, }: TopNavProps): import("react").JSX.Element;
|
|
31
|
+
export declare namespace TopNav {
|
|
32
|
+
var Item: typeof TopNavItem;
|
|
33
|
+
var Menu: typeof TopNavMenu;
|
|
34
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { MenuItem } from '../app-shell/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* The `url` of the most specific entry (a child counts) covering `pathname`,
|
|
4
|
+
* and the `url` of the top-level entry that holds it: that entry's trigger
|
|
5
|
+
* reads as active while the child carries `aria-current`.
|
|
6
|
+
*/
|
|
7
|
+
export declare function findTopNavActive(pathname: string, items: MenuItem[]): {
|
|
8
|
+
current?: string;
|
|
9
|
+
parent?: string;
|
|
10
|
+
};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { GalleryProps } from './types.js';
|
|
2
2
|
export type { GalleryItem, GalleryProps } from './types.js';
|
|
3
|
-
export declare function Gallery(
|
|
3
|
+
export declare function Gallery(props: GalleryProps): import("react").JSX.Element;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { GalleryItem, GalleryProps } from './types.js';
|
|
2
2
|
export type LightboxGalleryItem = GalleryItem;
|
|
3
|
-
export type LightboxGalleryProps = Pick<GalleryProps, 'items' | 'className' | 'onDelete' | 'open' | 'onOpenChange' | 'trigger' | 'defaultIndex'> & {
|
|
3
|
+
export type LightboxGalleryProps = Pick<GalleryProps, 'items' | 'className' | 'aria-label' | 'aria-labelledby' | 'onDelete' | 'open' | 'onOpenChange' | 'trigger' | 'defaultIndex'> & {
|
|
4
4
|
startIndex?: number;
|
|
5
5
|
};
|
|
6
6
|
export declare function LightboxGallery({ startIndex, defaultIndex, ...props }: LightboxGalleryProps): import("react").JSX.Element;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { GalleryItem, GalleryProps } from './types.js';
|
|
2
2
|
export type MiniGalleryItem = GalleryItem;
|
|
3
|
-
export type MiniGalleryProps = Pick<GalleryProps, 'items' | 'className' | 'onDelete' | 'maxItems'>;
|
|
3
|
+
export type MiniGalleryProps = Pick<GalleryProps, 'items' | 'className' | 'aria-label' | 'aria-labelledby' | 'onDelete' | 'maxItems'>;
|
|
4
4
|
export declare function MiniGallery(props: MiniGalleryProps): import("react").JSX.Element;
|
|
@@ -3,7 +3,7 @@ import { ComponentProps } from 'react';
|
|
|
3
3
|
declare function DialogHeader({ className, ...props }: ComponentProps<'div'>): import("react").JSX.Element;
|
|
4
4
|
declare function DialogFooter({ className, stackOnPhone, ...props }: ComponentProps<'div'> & {
|
|
5
5
|
/**
|
|
6
|
-
* Phones: the actions stack, full width, the main one
|
|
6
|
+
* Phones: the actions stack, full width, the last-written (main) one on top (the
|
|
7
7
|
* default). `false` keeps one row, the first action on the left and the
|
|
8
8
|
* last on the right, for two short actions such as Cancel and Confirm.
|
|
9
9
|
*/
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { Dialog as SheetPrimitive } from 'radix-ui';
|
|
2
2
|
import { ComponentProps } from 'react';
|
|
3
3
|
declare function SheetHeader({ className, ...props }: ComponentProps<'div'>): import("react").JSX.Element;
|
|
4
|
+
/**
|
|
5
|
+
* Full-width actions in a column, in the same phone order as `DialogFooter`:
|
|
6
|
+
* write them in reading order (secondary first, main last) and the main one
|
|
7
|
+
* is on top, the secondary below it.
|
|
8
|
+
*/
|
|
4
9
|
declare function SheetFooter({ className, ...props }: ComponentProps<'div'>): import("react").JSX.Element;
|
|
5
10
|
declare function SheetTitle({ className, ...props }: ComponentProps<typeof SheetPrimitive.Title>): import("react").JSX.Element;
|
|
6
11
|
declare function SheetDescription({ className, ...props }: ComponentProps<typeof SheetPrimitive.Description>): import("react").JSX.Element;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** The columns drawn when `fit` columns fit, for `count` cards. */
|
|
2
|
+
export declare function balancedColumns(count: number, fit: number): number;
|
|
3
|
+
/** One column below two cards' width, then the balanced count at each width that fits more. */
|
|
4
|
+
export declare function balancedGridClasses(count: number, columns: 1 | 2 | 3 | 4): string[];
|
|
@@ -7,6 +7,8 @@ export type { ChoiceCardGroupProps, ChoiceCardOption };
|
|
|
7
7
|
* Space toggles). Enter does nothing, so it never submits a form. A disabled
|
|
8
8
|
* option, or any unchosen one once `max` is reached, stays focusable and
|
|
9
9
|
* says why. The cards sit in up to `columns` columns, each at least 13.5rem wide
|
|
10
|
-
* (one on a phone)
|
|
10
|
+
* (one on a phone), and balanced: the last row is never one orphan card when a
|
|
11
|
+
* nearby count avoids it (4 cards in room for 3 sit 2+2); `balance={false}`
|
|
12
|
+
* fills every column that fits. `orientation="vertical"` makes it one. The `ref` reaches the card that holds the tab stop.
|
|
11
13
|
*/
|
|
12
14
|
export declare function ChoiceCardGroup(props: ChoiceCardGroupProps): import("react").JSX.Element;
|
|
@@ -15,5 +15,12 @@ export type ChoiceCardGroupProps = ChoiceGroupBase & ChoiceSelection & {
|
|
|
15
15
|
* Default 2. `orientation="vertical"` makes it one.
|
|
16
16
|
*/
|
|
17
17
|
columns?: 1 | 2 | 3 | 4;
|
|
18
|
+
/**
|
|
19
|
+
* Balance the rows: when the cards would leave one alone on the last row
|
|
20
|
+
* (4 cards in room for 3), draw fewer columns instead (2+2). Default
|
|
21
|
+
* `true`; `false` fills every column that fits, as before. CSS only,
|
|
22
|
+
* from the group's own width.
|
|
23
|
+
*/
|
|
24
|
+
balance?: boolean;
|
|
18
25
|
density?: 'comfortable' | 'compact';
|
|
19
26
|
};
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* The list: its keys, its rows (or the empty state). A row holds buttons of
|
|
3
|
+
* its own, so it is a list item, not an option; the focus moves from row to
|
|
4
|
+
* row (a roving tab stop) and the keys act only when a row itself has it.
|
|
5
|
+
*/
|
|
2
6
|
export declare function SortableListBody({ emptyTitle }: {
|
|
3
7
|
emptyTitle: string;
|
|
4
8
|
}): import("react").JSX.Element;
|
package/dist/lib/components/ui/selection/sortable-list/partials/sortable-list-row-parts.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { SortableListLabels } from '../sortable-list-context.js';
|
|
2
2
|
import { SortableListDragActivator, SortableListItem } from '../types.js';
|
|
3
3
|
/** The row's start mark: a lock, the drag handle, or an empty slot. */
|
|
4
|
-
export declare function SortableListGrip({ locked, canDrag, activator, labels, }: {
|
|
4
|
+
export declare function SortableListGrip({ locked, canDrag, activator, labels, itemLabel, }: {
|
|
5
|
+
itemLabel?: string;
|
|
5
6
|
locked?: boolean;
|
|
6
7
|
canDrag: boolean;
|
|
7
8
|
activator: SortableListDragActivator;
|
package/dist/lib/components/ui/selection/sortable-list/partials/sortable-list-row-props.d.ts
CHANGED
|
@@ -10,19 +10,22 @@ type RowProps = {
|
|
|
10
10
|
focused: boolean;
|
|
11
11
|
grabbed: boolean;
|
|
12
12
|
setFocused: (value: string | null) => void;
|
|
13
|
+
/** The row that holds the list's one tab stop. */
|
|
14
|
+
tabbable: boolean;
|
|
13
15
|
};
|
|
14
|
-
/** The
|
|
15
|
-
export declare function sortableRowProps({ domProps, id, style, dragging, item, disabled, focused, grabbed, setFocused, }: RowProps): {
|
|
16
|
+
/** The list item semantics of a row, over the props the sortable hands it. */
|
|
17
|
+
export declare function sortableRowProps({ domProps, id, style, dragging, item, disabled, focused, grabbed, setFocused, tabbable, }: RowProps): {
|
|
16
18
|
readonly 'aria-roledescription': undefined;
|
|
17
19
|
readonly 'aria-describedby': undefined;
|
|
18
20
|
readonly 'aria-pressed': undefined;
|
|
19
21
|
readonly id: string;
|
|
20
22
|
readonly style: CSSProperties | undefined;
|
|
21
|
-
readonly role: "
|
|
22
|
-
readonly 'aria-selected':
|
|
23
|
+
readonly role: "listitem";
|
|
24
|
+
readonly 'aria-selected': undefined;
|
|
23
25
|
readonly 'aria-disabled': true | undefined;
|
|
24
26
|
readonly 'data-grabbed': true | undefined;
|
|
25
|
-
readonly
|
|
27
|
+
readonly 'data-disabled': true | undefined;
|
|
28
|
+
readonly tabIndex: 0 | -1;
|
|
26
29
|
readonly onFocus: () => void;
|
|
27
30
|
readonly ref: (node: HTMLDivElement | null) => void;
|
|
28
31
|
readonly title?: string | undefined;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A key moved the cursor, the order or the rows: the focus is still owed to
|
|
3
|
+
* the list's tab stop once React has committed (a reorder re-inserts the row
|
|
4
|
+
* and the browser drops its focus to the body). `arm` records the debt for
|
|
5
|
+
* that key's commit only.
|
|
6
|
+
*/
|
|
7
|
+
export declare function useOwedFocus(focusedValue: string | null | undefined, ids: string[]): {
|
|
8
|
+
listRef: import('react').RefObject<HTMLDivElement | null>;
|
|
9
|
+
arm: (commandType: string) => void;
|
|
10
|
+
};
|
|
@@ -28,3 +28,5 @@ export type SortableListContextValue = {
|
|
|
28
28
|
export declare const SortableListProvider: import('react').Provider<SortableListContextValue | null>;
|
|
29
29
|
export declare function useSortableListContext(): SortableListContextValue;
|
|
30
30
|
export declare function sortableOptionId(uid: string, index: number): string;
|
|
31
|
+
/** The id of the hidden "This field is required." hint that describes the list. */
|
|
32
|
+
export declare function sortableRequiredId(uid: string): string;
|
|
@@ -20,7 +20,7 @@ type KeyEventLike = {
|
|
|
20
20
|
preventDefault: () => void;
|
|
21
21
|
};
|
|
22
22
|
/**
|
|
23
|
-
* The
|
|
23
|
+
* The list's keys. Arrows move the cursor, Home / End jump; Ctrl/⌘ +
|
|
24
24
|
* arrow moves the row at once. Space or Enter picks a row up: then arrows
|
|
25
25
|
* move it, Space or Enter drops it, Escape puts it back. Delete removes it
|
|
26
26
|
* when the list is `removable`.
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import { EventChipVariant } from '../../display/event-chip/event-chip.classes.js';
|
|
3
|
+
import { TemplateContext } from './template.types.js';
|
|
3
4
|
import { CalendarEvent, EventCalendarRenderEvent, EventCalendarSlot, EventCalendarView } from './types.js';
|
|
4
5
|
import { EventCalendarModel } from './use-event-calendar.js';
|
|
5
6
|
export type EventCalendarContextValue = EventCalendarModel & {
|
|
6
7
|
/** The events as stored, true instants; `events` is what is drawn (the zone's wall clock). */
|
|
7
8
|
sourceEvents?: CalendarEvent[];
|
|
9
|
+
/** Set in `mode="template"`: the lanes, and the lane of each event. */
|
|
10
|
+
template?: TemplateContext;
|
|
8
11
|
dragLabel: string;
|
|
9
12
|
searchable: boolean;
|
|
10
13
|
/** The views the switcher offers. */
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { TemplateContext } from './template.types.js';
|
|
2
|
+
import { CalendarEvent, EventCalendarProps } from './types.js';
|
|
3
|
+
/** What only the template mode passes down to the shared calendar. */
|
|
4
|
+
export type EventCalendarShellProps = EventCalendarProps & {
|
|
5
|
+
template?: TemplateContext;
|
|
6
|
+
/** Hides the events it rejects (the template's lane), on top of the search. */
|
|
7
|
+
visible?: (event: CalendarEvent) => boolean;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* A month / week / workweek / day / agenda calendar: drag to move, the bottom
|
|
11
|
+
* edge to resize, click or drag across empty slots to create, a now line, a
|
|
12
|
+
* mini-month side panel and a phone layout of its own. Events are props; the
|
|
13
|
+
* chrome (search, focus, the last move's direction) lives in a slice.
|
|
14
|
+
*/
|
|
15
|
+
export declare function EventCalendarShell({ template, visible, onEventClick, onSlotClick, className, renderEvent, toolbar, searchable, views, phoneView, sidebar, eventVariant, scrollToHour, ...options }: EventCalendarShellProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { EventCalendarTemplateProps } from './template.types.js';
|
|
2
|
+
/**
|
|
3
|
+
* `<EventCalendar mode="template">`: the recurring week. It runs the dated
|
|
4
|
+
* calendar on a fixed reference week and keeps the dates out of sight (see
|
|
5
|
+
* `event-calendar.template.ts`): the column headers are weekday names, the
|
|
6
|
+
* toolbar has no date navigation, nothing is today, and what comes out of
|
|
7
|
+
* `onSlotClick`, `onChange` and `onEventsChange` is weekday and time.
|
|
8
|
+
*/
|
|
9
|
+
export declare function TemplateEventCalendar(props: EventCalendarTemplateProps): import("react").JSX.Element;
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
import { EventCalendarTemplateProps } from './template.types.js';
|
|
1
2
|
import { EventCalendarProps } from './types.js';
|
|
2
3
|
export type { EventCalendarProps } from './types.js';
|
|
3
4
|
/**
|
|
4
5
|
* A month / week / workweek / day / agenda calendar: drag to move, the bottom
|
|
5
6
|
* edge to resize, click or drag across empty slots to create, a now line, a
|
|
6
|
-
* mini-month side panel and a phone layout of its own.
|
|
7
|
-
*
|
|
7
|
+
* mini-month side panel and a phone layout of its own.
|
|
8
|
+
*
|
|
9
|
+
* With `mode="template"` it is a recurring week instead: columns named by
|
|
10
|
+
* weekday, no dates, events keyed by weekday and time, and optional `lanes`
|
|
11
|
+
* (A / B) for two alternating weeks. See `EventCalendarTemplateProps`.
|
|
8
12
|
*/
|
|
9
|
-
export declare function EventCalendar(
|
|
13
|
+
export declare function EventCalendar(props: EventCalendarProps | EventCalendarTemplateProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Locale } from 'date-fns';
|
|
2
|
+
import { EventCalendarTemplateEvent, EventCalendarTemplateSlot, TemplateContext } from './template.types.js';
|
|
3
|
+
import { CalendarEvent, EventCalendarSlot } from './types.js';
|
|
4
|
+
/**
|
|
5
|
+
* The template week is drawn on a fixed reference week, Monday 2001-01-01 to
|
|
6
|
+
* Sunday 2001-01-07: the dated grid, drag and resize work on it unchanged, and
|
|
7
|
+
* only the weekday and the time ever leave the calendar.
|
|
8
|
+
*/
|
|
9
|
+
export declare const REFERENCE_MONDAY = "2001-01-01";
|
|
10
|
+
/** A moment outside the reference week: no column is "today", no now line. */
|
|
11
|
+
export declare const TEMPLATE_NOW: Date;
|
|
12
|
+
/** The reference week's days, Monday first (`count` 5: Monday to Friday). */
|
|
13
|
+
export declare function referenceDays(count?: number): Date[];
|
|
14
|
+
export declare function parseClock(time: string): number;
|
|
15
|
+
export declare function formatClock(minutes: number): string;
|
|
16
|
+
/** The template event as a dated one on the reference week. */
|
|
17
|
+
export declare function toDatedEvent(event: EventCalendarTemplateEvent): CalendarEvent;
|
|
18
|
+
/**
|
|
19
|
+
* The dated event back as the template event it came from (`base` keeps what
|
|
20
|
+
* the calendar does not edit, such as the lane).
|
|
21
|
+
*/
|
|
22
|
+
export declare function fromDatedEvent(event: CalendarEvent, base?: EventCalendarTemplateEvent): EventCalendarTemplateEvent;
|
|
23
|
+
/** A slot of the dated grid as weekday and time. */
|
|
24
|
+
export declare function toTemplateSlot(slot: EventCalendarSlot, lane: string | null): EventCalendarTemplateSlot;
|
|
25
|
+
/** Whether a lane filter keeps the event: no lane means every week. */
|
|
26
|
+
export declare function inLane(laneOfEvent: string | undefined, lane: string | null): boolean;
|
|
27
|
+
/** `Monday · 8:00 AM – 9:00 AM`: the popover's range, with no date. */
|
|
28
|
+
export declare function templateRangeLabel(event: CalendarEvent, locale?: Locale): string;
|
|
29
|
+
/**
|
|
30
|
+
* The title a chip draws: with both weeks showing, an event of a lane says
|
|
31
|
+
* which (`A · Physics`); otherwise the title as it is.
|
|
32
|
+
*/
|
|
33
|
+
export declare function laneTitle(event: CalendarEvent, template: TemplateContext | undefined): string;
|
|
34
|
+
/** A weekday moved by `days`, wrapped within the visible `count` days (5: Monday to Friday, 7: the week). */
|
|
35
|
+
export declare function wrapWeekday(weekday: number, days: number, count: number): number;
|
|
36
|
+
/**
|
|
37
|
+
* The dated event moved by `days` and `minutes` inside the template week: the
|
|
38
|
+
* weekday wraps within the visible days, and the move stops at the day's
|
|
39
|
+
* edges (00:00 and 24:00) keeping the duration.
|
|
40
|
+
*/
|
|
41
|
+
export declare function moveTemplateEvent(event: CalendarEvent, days: number, minutes: number, count: number): CalendarEvent;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export type { EventCalendarProps } from './event-calendar.js';
|
|
2
2
|
export { EventCalendar } from './event-calendar.js';
|
|
3
3
|
export { EventCalendarProvider, useEventCalendarContext, } from './event-calendar-context.js';
|
|
4
|
+
export type { EventCalendarLane, EventCalendarTemplateChange, EventCalendarTemplateEvent, EventCalendarTemplateProps, EventCalendarTemplateSlot, EventCalendarWeekday, } from './template.types.js';
|
|
4
5
|
export type { CalendarEvent, EventCalendarChange, EventCalendarDensity, EventCalendarRenderEvent, EventCalendarResource, EventCalendarSlot, EventCalendarView, } from './types.js';
|
|
5
6
|
export { useEventCalendar } from './use-event-calendar.js';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One day of a template week's header: the weekday's name and nothing else
|
|
3
|
+
* (a letter on a phone, the short name from 768px, the full name from 1024px).
|
|
4
|
+
*/
|
|
5
|
+
export declare function TemplateHeaderDay({ day }: {
|
|
6
|
+
day: Date;
|
|
7
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { EventCalendarProps } from './types.js';
|
|
3
|
+
/** ISO weekday: 1 is Monday, 7 is Sunday. */
|
|
4
|
+
export type EventCalendarWeekday = 1 | 2 | 3 | 4 | 5 | 6 | 7;
|
|
5
|
+
/**
|
|
6
|
+
* An event of a template week: keyed by weekday and wall-clock time instead of
|
|
7
|
+
* a date. `start` and `end` are `HH:mm` (`end` may be `24:00`, the day's end).
|
|
8
|
+
*/
|
|
9
|
+
export type EventCalendarTemplateEvent = {
|
|
10
|
+
id: string;
|
|
11
|
+
title: string;
|
|
12
|
+
weekday: EventCalendarWeekday;
|
|
13
|
+
start: string;
|
|
14
|
+
end: string;
|
|
15
|
+
/** The alternating week it belongs to (an `EventCalendarLane` id); none: every week. */
|
|
16
|
+
lane?: string;
|
|
17
|
+
color?: string;
|
|
18
|
+
description?: string;
|
|
19
|
+
disabled?: boolean;
|
|
20
|
+
};
|
|
21
|
+
/** An alternating week of the template (`A`, `B`). */
|
|
22
|
+
export type EventCalendarLane = {
|
|
23
|
+
id: string;
|
|
24
|
+
label: string;
|
|
25
|
+
};
|
|
26
|
+
export type EventCalendarTemplateSlot = {
|
|
27
|
+
weekday: EventCalendarWeekday;
|
|
28
|
+
start: string;
|
|
29
|
+
end: string;
|
|
30
|
+
/** The lane picked in the toolbar, when one is (none while both show). */
|
|
31
|
+
lane?: string;
|
|
32
|
+
};
|
|
33
|
+
export type EventCalendarTemplateChange = {
|
|
34
|
+
events: EventCalendarTemplateEvent[];
|
|
35
|
+
event: EventCalendarTemplateEvent;
|
|
36
|
+
previous: EventCalendarTemplateEvent;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* `mode="template"`: a recurring week. Day columns are named by weekday only,
|
|
40
|
+
* there is no date navigation, today marker or now line, and events,
|
|
41
|
+
* slots and changes are keyed by weekday and time. The month, day and agenda
|
|
42
|
+
* views do not apply: `view` is `week` (the default) or `workweek`.
|
|
43
|
+
*/
|
|
44
|
+
export type EventCalendarTemplateProps = Pick<EventCalendarProps, 'disabled' | 'className' | 'toolbar' | 'searchable' | 'density' | 'eventVariant' | 'startHour' | 'endHour' | 'hourHeight' | 'slotDurationMinutes' | 'scrollToHour'> & {
|
|
45
|
+
mode: 'template';
|
|
46
|
+
events?: EventCalendarTemplateEvent[];
|
|
47
|
+
defaultEvents?: EventCalendarTemplateEvent[];
|
|
48
|
+
onEventsChange?: (events: EventCalendarTemplateEvent[]) => void;
|
|
49
|
+
/** After a move, a resize or an edit, with the previous event. */
|
|
50
|
+
onChange?: (change: EventCalendarTemplateChange) => void;
|
|
51
|
+
onEventClick?: (event: EventCalendarTemplateEvent) => void;
|
|
52
|
+
/** A click or a drag across an empty slot: where, as weekday and time. */
|
|
53
|
+
onSlotClick?: (slot: EventCalendarTemplateSlot) => void;
|
|
54
|
+
/** `week` (7 days, the default) or `workweek` (Monday to Friday). */
|
|
55
|
+
view?: 'week' | 'workweek';
|
|
56
|
+
defaultView?: 'week' | 'workweek';
|
|
57
|
+
onViewChange?: (view: 'week' | 'workweek') => void;
|
|
58
|
+
/** The alternating weeks (`[{ id: 'A', label: 'Week A' }, …]`); a toolbar switch picks which shows. */
|
|
59
|
+
lanes?: EventCalendarLane[];
|
|
60
|
+
/** The lane shown: an id, or `null` for all. Default (uncontrolled): all. */
|
|
61
|
+
lane?: string | null;
|
|
62
|
+
defaultLane?: string | null;
|
|
63
|
+
onLaneChange?: (lane: string | null) => void;
|
|
64
|
+
/** Replaces how an event is drawn. */
|
|
65
|
+
renderEvent?: (event: EventCalendarTemplateEvent) => ReactNode;
|
|
66
|
+
};
|
|
67
|
+
/** What the template mode hands the shared internals through the context. */
|
|
68
|
+
export type TemplateContext = {
|
|
69
|
+
lanes: EventCalendarLane[];
|
|
70
|
+
lane: string | null;
|
|
71
|
+
setLane: (lane: string | null) => void;
|
|
72
|
+
laneOf: (eventId: string) => string | undefined;
|
|
73
|
+
};
|