@maggioli-design-system/magma-react 2.9.0 → 2.10.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/AGENTS.md +10 -7
- package/CHANGELOG.md +88 -0
- package/README.md +38 -0
- package/agents/assets.md +1 -1
- package/agents/color.md +5 -3
- package/agents/components.md +2 -2
- package/agents/conventions.md +1 -1
- package/agents/mcp.md +78 -8
- package/agents/{anti-patterns.md → mistakes.md} +2 -2
- package/agents/patterns/actions.md +393 -0
- package/agents/patterns/app-shell.md +223 -0
- package/agents/patterns/choose-items.md +18 -0
- package/agents/patterns/concurrent-editing.md +17 -0
- package/agents/patterns/confirm-action.md +216 -0
- package/agents/patterns/consent-and-legal.md +16 -0
- package/agents/patterns/density.md +236 -0
- package/agents/patterns/empty-state.md +201 -0
- package/agents/patterns/error-recovery.md +237 -0
- package/agents/patterns/form-and-validation.md +16 -0
- package/agents/patterns/item-list.md +214 -0
- package/agents/patterns/labels-and-values.md +184 -0
- package/agents/patterns/list-with-filters.md +282 -0
- package/agents/patterns/loading.md +221 -0
- package/agents/patterns/message-placement.md +304 -0
- package/agents/patterns/notification-center.md +18 -0
- package/agents/patterns/page-header.md +201 -0
- package/agents/patterns/permissions.md +17 -0
- package/agents/patterns/previews/actions/banner.html +21 -0
- package/agents/patterns/previews/actions/confirm.html +11 -0
- package/agents/patterns/previews/actions/danger-zone.html +22 -0
- package/agents/patterns/previews/actions/destructive-in-menu.html +19 -0
- package/agents/patterns/previews/actions/dismiss-message.html +15 -0
- package/agents/patterns/previews/actions/dismiss.html +25 -0
- package/agents/patterns/previews/actions/more-in-menu.html +21 -0
- package/agents/patterns/previews/actions/part-primary.html +28 -0
- package/agents/patterns/previews/actions/primary.html +20 -0
- package/agents/patterns/previews/actions/remove.html +44 -0
- package/agents/patterns/previews/actions/secondary.html +20 -0
- package/agents/patterns/previews/actions/stacked.html +17 -0
- package/agents/patterns/previews/actions/toast.html +10 -0
- package/agents/patterns/previews/app-shell/back-office.html +41 -0
- package/agents/patterns/previews/app-shell/many-sections.html +45 -0
- package/agents/patterns/previews/app-shell/public-service.html +31 -0
- package/agents/patterns/previews/confirm-action/act-then-undo.html +44 -0
- package/agents/patterns/previews/confirm-action/ask-before-sending.html +25 -0
- package/agents/patterns/previews/confirm-action/ask-first-many.html +11 -0
- package/agents/patterns/previews/confirm-action/ask-first.html +14 -0
- package/agents/patterns/previews/confirm-action/make-reversible.html +54 -0
- package/agents/patterns/previews/confirm-action/send-as-shown.html +57 -0
- package/agents/patterns/previews/empty-state/add-the-first.html +19 -0
- package/agents/patterns/previews/empty-state/all-done.html +15 -0
- package/agents/patterns/previews/empty-state/clear-filters.html +35 -0
- package/agents/patterns/previews/empty-state/filled-by-others.html +15 -0
- package/agents/patterns/previews/empty-state/not-found.html +38 -0
- package/agents/patterns/previews/empty-state/one-line.html +12 -0
- package/agents/patterns/previews/error-recovery/action-another-way.html +35 -0
- package/agents/patterns/previews/error-recovery/changed-meanwhile.html +26 -0
- package/agents/patterns/previews/error-recovery/check-or-repeat.html +38 -0
- package/agents/patterns/previews/error-recovery/content-another-way.html +12 -0
- package/agents/patterns/previews/error-recovery/partial.html +29 -0
- package/agents/patterns/previews/error-recovery/retry-action.html +35 -0
- package/agents/patterns/previews/error-recovery/retry-content.html +40 -0
- package/agents/patterns/previews/error-recovery/sign-in-again.html +44 -0
- package/agents/patterns/previews/item-list/documents-of-a-request.html +12 -0
- package/agents/patterns/previews/item-list/queue-of-a-desk.html +109 -0
- package/agents/patterns/previews/item-list/requests-of-an-office.html +74 -0
- package/agents/patterns/previews/item-list/requests-to-assign.html +80 -0
- package/agents/patterns/previews/labels-and-values/data-of-a-contact.html +31 -0
- package/agents/patterns/previews/labels-and-values/payment-before-paying.html +21 -0
- package/agents/patterns/previews/labels-and-values/what-is-sent.html +25 -0
- package/agents/patterns/previews/list-with-filters/act-on-many.html +121 -0
- package/agents/patterns/previews/list-with-filters/find-and-open.html +109 -0
- package/agents/patterns/previews/list-with-filters/show-new-items.html +132 -0
- package/agents/patterns/previews/loading/await-and-say.html +41 -0
- package/agents/patterns/previews/loading/await-the-control.html +28 -0
- package/agents/patterns/previews/loading/first-load.html +10 -0
- package/agents/patterns/previews/loading/keep-while-reloading.html +80 -0
- package/agents/patterns/previews/loading/long-load-measured.html +16 -0
- package/agents/patterns/previews/loading/long-load.html +12 -0
- package/agents/patterns/previews/loading/progress-in-place.html +52 -0
- package/agents/patterns/previews/loading/run-in-background.html +24 -0
- package/agents/patterns/previews/message-placement/action-done-elsewhere.html +38 -0
- package/agents/patterns/previews/message-placement/action-done-in-page.html +53 -0
- package/agents/patterns/previews/message-placement/action-done-in-part.html +42 -0
- package/agents/patterns/previews/message-placement/action-failed-elsewhere.html +40 -0
- package/agents/patterns/previews/message-placement/action-failed-in-place.html +31 -0
- package/agents/patterns/previews/message-placement/action-later.html +24 -0
- package/agents/patterns/previews/message-placement/action-partial-elsewhere.html +33 -0
- package/agents/patterns/previews/message-placement/action-partial-in-place.html +51 -0
- package/agents/patterns/previews/message-placement/action-taken.html +25 -0
- package/agents/patterns/previews/message-placement/app-deadline.html +20 -0
- package/agents/patterns/previews/message-placement/app-failed.html +48 -0
- package/agents/patterns/previews/message-placement/app-info.html +39 -0
- package/agents/patterns/previews/message-placement/decision.html +49 -0
- package/agents/patterns/previews/message-placement/field-error.html +28 -0
- package/agents/patterns/previews/message-placement/field-hint.html +30 -0
- package/agents/patterns/previews/message-placement/field-valid.html +11 -0
- package/agents/patterns/previews/message-placement/region-failed.html +31 -0
- package/agents/patterns/previews/message-placement/region-info.html +16 -0
- package/agents/patterns/previews/page-header/contact-being-edited.html +25 -0
- package/agents/patterns/previews/page-header/members-of-a-group.html +18 -0
- package/agents/patterns/previews/page-header/own-profile.html +17 -0
- package/agents/patterns/previews/page-header/request-from-the-list.html +33 -0
- package/agents/patterns/previews/page-header/requests-of-an-office.html +16 -0
- package/agents/patterns/previews/record-detail/ask-for-words.html +72 -0
- package/agents/patterns/previews/record-detail/edit-data.html +104 -0
- package/agents/patterns/previews/record-detail/read-the-data.html +80 -0
- package/agents/patterns/previews/record-detail/record-changed.html +87 -0
- package/agents/patterns/previews/record-detail/run-at-once.html +88 -0
- package/agents/patterns/previews/record-detail/work-on-it.html +106 -0
- package/agents/patterns/previews/rhythm/between-containers.html +29 -0
- package/agents/patterns/previews/rhythm/between-fields.html +14 -0
- package/agents/patterns/previews/rhythm/between-groups.html +23 -0
- package/agents/patterns/previews/rhythm/between-sections.html +17 -0
- package/agents/patterns/previews/rhythm/content-actions.html +14 -0
- package/agents/patterns/previews/rhythm/inline.html +12 -0
- package/agents/patterns/previews/rhythm/inset.html +11 -0
- package/agents/patterns/previews/rhythm/label-control.html +8 -0
- package/agents/patterns/previews/rhythm/title-content.html +10 -0
- package/agents/patterns/previews/surfaces/band.html +73 -0
- package/agents/patterns/previews/surfaces/canvas.html +66 -0
- package/agents/patterns/previews/surfaces/card.html +30 -0
- package/agents/patterns/previews/surfaces/dialog.html +28 -0
- package/agents/patterns/previews/surfaces/edit-actions.html +35 -0
- package/agents/patterns/previews/surfaces/section.html +35 -0
- package/agents/patterns/previews/titles/dialog.html +18 -0
- package/agents/patterns/previews/titles/group.html +14 -0
- package/agents/patterns/previews/titles/page.html +25 -0
- package/agents/patterns/previews/titles/part.html +24 -0
- package/agents/patterns/previews/titles/section.html +14 -0
- package/agents/patterns/previews/widths/dialog.html +33 -0
- package/agents/patterns/previews/widths/field.html +20 -0
- package/agents/patterns/previews/widths/form.html +27 -0
- package/agents/patterns/previews/widths/page.html +49 -0
- package/agents/patterns/previews/widths/reading.html +15 -0
- package/agents/patterns/record-detail.md +268 -0
- package/agents/patterns/rhythm.md +212 -0
- package/agents/patterns/surfaces.md +212 -0
- package/agents/patterns/titles.md +208 -0
- package/agents/patterns/widths.md +202 -0
- package/agents/patterns.md +121 -0
- package/agents/reporting.md +6 -3
- package/agents/theming.md +22 -3
- package/agents/typography.md +27 -2
- package/agents/variants.md +1 -1
- package/dist/components.js +117 -117
- package/dist/components.server.js +117 -117
- package/dist/mds-accordion-item.js +8 -3
- package/dist/mds-accordion-item.server.js +7 -2
- package/dist/mds-accordion-timer-item.js +8 -3
- package/dist/mds-accordion-timer-item.server.js +7 -2
- package/dist/mds-accordion-timer.js +11 -4
- package/dist/mds-accordion-timer.server.js +7 -2
- package/dist/mds-accordion.js +11 -4
- package/dist/mds-accordion.server.js +7 -2
- package/dist/mds-author.js +8 -3
- package/dist/mds-author.server.js +7 -2
- package/dist/mds-avatar-stack-item.js +8 -3
- package/dist/mds-avatar-stack-item.server.js +7 -2
- package/dist/mds-avatar-stack.js +8 -3
- package/dist/mds-avatar-stack.server.js +7 -2
- package/dist/mds-avatar.js +8 -3
- package/dist/mds-avatar.server.js +7 -2
- package/dist/mds-badge.js +8 -3
- package/dist/mds-badge.server.js +7 -2
- package/dist/mds-banner.js +11 -4
- package/dist/mds-banner.server.js +7 -2
- package/dist/mds-benchmark-bar.js +8 -3
- package/dist/mds-benchmark-bar.server.js +7 -2
- package/dist/mds-bibliography.js +8 -3
- package/dist/mds-bibliography.server.js +7 -2
- package/dist/mds-book.js +8 -3
- package/dist/mds-book.server.js +7 -2
- package/dist/mds-breadcrumb-item.js +11 -4
- package/dist/mds-breadcrumb-item.server.js +7 -2
- package/dist/mds-breadcrumb.js +11 -4
- package/dist/mds-breadcrumb.server.js +10 -3
- package/dist/mds-button-dropdown.js +11 -4
- package/dist/mds-button-dropdown.server.js +7 -2
- package/dist/mds-button-group.js +8 -3
- package/dist/mds-button-group.server.js +7 -2
- package/dist/mds-button.js +8 -3
- package/dist/mds-button.server.js +7 -2
- package/dist/mds-calendar-cell.js +8 -3
- package/dist/mds-calendar-cell.server.js +7 -2
- package/dist/mds-calendar.js +8 -3
- package/dist/mds-calendar.server.js +7 -2
- package/dist/mds-card-content.js +8 -3
- package/dist/mds-card-content.server.js +7 -2
- package/dist/mds-card-footer.js +8 -3
- package/dist/mds-card-footer.server.js +7 -2
- package/dist/mds-card-header.js +8 -3
- package/dist/mds-card-header.server.js +7 -2
- package/dist/mds-card-media.js +8 -3
- package/dist/mds-card-media.server.js +7 -2
- package/dist/mds-card.js +8 -3
- package/dist/mds-card.server.js +10 -3
- package/dist/mds-chip.js +8 -3
- package/dist/mds-chip.server.js +7 -2
- package/dist/mds-details.js +11 -4
- package/dist/mds-details.server.js +10 -3
- package/dist/mds-dropdown.js +8 -3
- package/dist/mds-dropdown.server.js +7 -2
- package/dist/mds-emoji.js +8 -3
- package/dist/mds-emoji.server.js +10 -3
- package/dist/mds-entity.js +8 -3
- package/dist/mds-entity.server.js +7 -2
- package/dist/mds-file-preview.js +8 -3
- package/dist/mds-file-preview.server.js +7 -2
- package/dist/mds-file.js +11 -4
- package/dist/mds-file.server.js +7 -2
- package/dist/mds-filter-item.js +11 -4
- package/dist/mds-filter-item.server.js +7 -2
- package/dist/mds-filter.js +11 -4
- package/dist/mds-filter.server.js +7 -2
- package/dist/mds-header-bar.js +11 -4
- package/dist/mds-header-bar.server.js +7 -2
- package/dist/mds-header.js +8 -3
- package/dist/mds-header.server.js +7 -2
- package/dist/mds-help.js +8 -3
- package/dist/mds-help.server.js +7 -2
- package/dist/mds-horizontal-scroll.js +8 -3
- package/dist/mds-horizontal-scroll.server.js +7 -2
- package/dist/mds-hr.js +8 -3
- package/dist/mds-hr.server.js +7 -2
- package/dist/mds-icon.js +8 -3
- package/dist/mds-icon.server.js +10 -3
- package/dist/mds-img.js +8 -3
- package/dist/mds-img.server.js +7 -2
- package/dist/mds-input-date-range-preselection.js +8 -3
- package/dist/mds-input-date-range-preselection.server.js +7 -2
- package/dist/mds-input-date-range.js +11 -4
- package/dist/mds-input-date-range.server.js +7 -2
- package/dist/mds-input-date.js +8 -3
- package/dist/mds-input-date.server.js +7 -2
- package/dist/mds-input-field.js +8 -3
- package/dist/mds-input-field.server.js +8 -2
- package/dist/mds-input-otp.js +8 -3
- package/dist/mds-input-otp.server.js +7 -2
- package/dist/mds-input-range.js +11 -4
- package/dist/mds-input-range.server.js +7 -2
- package/dist/mds-input-select.js +11 -4
- package/dist/mds-input-select.server.js +7 -2
- package/dist/mds-input-switch.js +11 -4
- package/dist/mds-input-switch.server.js +7 -2
- package/dist/mds-input-tip-item.js +8 -3
- package/dist/mds-input-tip-item.server.js +7 -2
- package/dist/mds-input-tip.js +8 -3
- package/dist/mds-input-tip.server.js +7 -2
- package/dist/mds-input-upload.js +11 -4
- package/dist/mds-input-upload.server.js +7 -2
- package/dist/mds-input.js +8 -3
- package/dist/mds-input.server.js +7 -2
- package/dist/mds-keyboard-key.js +8 -3
- package/dist/mds-keyboard-key.server.js +7 -2
- package/dist/mds-keyboard.js +8 -3
- package/dist/mds-keyboard.server.js +7 -2
- package/dist/mds-kpi-item.js +8 -3
- package/dist/mds-kpi-item.server.js +7 -2
- package/dist/mds-kpi.js +8 -3
- package/dist/mds-kpi.server.js +7 -2
- package/dist/mds-label.js +11 -4
- package/dist/mds-label.server.js +7 -2
- package/dist/mds-link.js +8 -3
- package/dist/mds-link.server.js +7 -2
- package/dist/mds-list-item.js +8 -3
- package/dist/mds-list-item.server.js +7 -2
- package/dist/mds-list.js +8 -3
- package/dist/mds-list.server.js +7 -2
- package/dist/mds-mention.js +11 -4
- package/dist/mds-mention.server.js +7 -2
- package/dist/mds-modal.js +8 -3
- package/dist/mds-modal.server.js +7 -2
- package/dist/mds-note.js +11 -4
- package/dist/mds-note.server.js +7 -2
- package/dist/mds-notification.js +8 -3
- package/dist/mds-notification.server.js +10 -3
- package/dist/mds-paginator-item.js +8 -3
- package/dist/mds-paginator-item.server.js +7 -2
- package/dist/mds-paginator.js +11 -4
- package/dist/mds-paginator.server.js +7 -2
- package/dist/mds-policy-ai.js +8 -3
- package/dist/mds-policy-ai.server.js +7 -2
- package/dist/mds-pref-animation.js +11 -4
- package/dist/mds-pref-animation.server.js +7 -2
- package/dist/mds-pref-consumption.js +11 -4
- package/dist/mds-pref-consumption.server.js +7 -2
- package/dist/mds-pref-contrast.js +11 -4
- package/dist/mds-pref-contrast.server.js +7 -2
- package/dist/mds-pref-language-item.js +11 -4
- package/dist/mds-pref-language-item.server.js +7 -2
- package/dist/mds-pref-language.js +8 -3
- package/dist/mds-pref-language.server.js +7 -2
- package/dist/mds-pref-mode.js +11 -4
- package/dist/mds-pref-mode.server.js +7 -2
- package/dist/mds-pref-theme-item.js +11 -4
- package/dist/mds-pref-theme-item.server.js +7 -2
- package/dist/mds-pref-theme.js +8 -3
- package/dist/mds-pref-theme.server.js +7 -2
- package/dist/mds-pref.js +8 -3
- package/dist/mds-pref.server.js +7 -2
- package/dist/mds-price-table-features-cell.js +8 -3
- package/dist/mds-price-table-features-cell.server.js +10 -3
- package/dist/mds-price-table-features-row.js +8 -3
- package/dist/mds-price-table-features-row.server.js +7 -2
- package/dist/mds-price-table-features.js +8 -3
- package/dist/mds-price-table-features.server.js +10 -3
- package/dist/mds-price-table-header.js +8 -3
- package/dist/mds-price-table-header.server.js +7 -2
- package/dist/mds-price-table-list-item.js +8 -3
- package/dist/mds-price-table-list-item.server.js +7 -2
- package/dist/mds-price-table-list.js +8 -3
- package/dist/mds-price-table-list.server.js +7 -2
- package/dist/mds-price-table.js +8 -3
- package/dist/mds-price-table.server.js +7 -2
- package/dist/mds-progress.js +8 -3
- package/dist/mds-progress.server.js +7 -2
- package/dist/mds-push-notification-item.js +11 -4
- package/dist/mds-push-notification-item.server.js +7 -2
- package/dist/mds-push-notification.js +8 -3
- package/dist/mds-push-notification.server.js +7 -2
- package/dist/mds-quote.js +8 -3
- package/dist/mds-quote.server.js +7 -2
- package/dist/mds-radial-menu-item.js +8 -3
- package/dist/mds-radial-menu-item.server.js +7 -2
- package/dist/mds-radial-menu.js +8 -3
- package/dist/mds-radial-menu.server.js +7 -2
- package/dist/mds-radial-progress.js +8 -3
- package/dist/mds-radial-progress.server.js +7 -2
- package/dist/mds-separator.js +8 -3
- package/dist/mds-separator.server.js +7 -2
- package/dist/mds-spinner.js +8 -3
- package/dist/mds-spinner.server.js +10 -3
- package/dist/mds-status-bar.js +8 -3
- package/dist/mds-status-bar.server.js +7 -2
- package/dist/mds-stepper-bar-item.js +11 -4
- package/dist/mds-stepper-bar-item.server.js +7 -2
- package/dist/mds-stepper-bar.js +11 -4
- package/dist/mds-stepper-bar.server.js +7 -2
- package/dist/mds-tab-bar-item.js +11 -4
- package/dist/mds-tab-bar-item.server.js +7 -2
- package/dist/mds-tab-bar.js +11 -4
- package/dist/mds-tab-bar.server.js +7 -2
- package/dist/mds-tab-item.js +8 -3
- package/dist/mds-tab-item.server.js +7 -2
- package/dist/mds-tab.js +11 -4
- package/dist/mds-tab.server.js +7 -2
- package/dist/mds-table-body.js +8 -3
- package/dist/mds-table-body.server.js +7 -2
- package/dist/mds-table-cell.js +8 -3
- package/dist/mds-table-cell.server.js +10 -3
- package/dist/mds-table-footer.js +8 -3
- package/dist/mds-table-footer.server.js +10 -3
- package/dist/mds-table-header-cell.js +11 -4
- package/dist/mds-table-header-cell.server.js +7 -2
- package/dist/mds-table-header.js +8 -3
- package/dist/mds-table-header.server.js +10 -3
- package/dist/mds-table-row.js +8 -3
- package/dist/mds-table-row.server.js +7 -2
- package/dist/mds-table.js +11 -4
- package/dist/mds-table.server.js +7 -2
- package/dist/mds-text.js +8 -3
- package/dist/mds-text.server.js +7 -2
- package/dist/mds-toast-region.js +8 -3
- package/dist/mds-toast-region.server.js +7 -2
- package/dist/mds-toast.js +11 -4
- package/dist/mds-toast.server.js +7 -2
- package/dist/mds-tooltip.js +8 -3
- package/dist/mds-tooltip.server.js +7 -2
- package/dist/mds-tree-item.js +8 -3
- package/dist/mds-tree-item.server.js +7 -2
- package/dist/mds-tree.js +8 -3
- package/dist/mds-tree.server.js +7 -2
- package/dist/mds-url-view.js +11 -4
- package/dist/mds-url-view.server.js +7 -2
- package/dist/mds-usage.js +8 -3
- package/dist/mds-usage.server.js +7 -2
- package/dist/mds-video-wall.js +8 -3
- package/dist/mds-video-wall.server.js +7 -2
- package/dist/mds-zero.js +8 -3
- package/dist/mds-zero.server.js +7 -2
- package/dist/types/components.d.ts +117 -117
- package/dist/types/components.server.d.ts +118 -118
- package/dist/types/mds-accordion-item.d.ts +4 -8
- package/dist/types/mds-accordion-item.server.d.ts +4 -4
- package/dist/types/mds-accordion-timer-item.d.ts +4 -8
- package/dist/types/mds-accordion-timer-item.server.d.ts +4 -4
- package/dist/types/mds-accordion-timer.d.ts +4 -8
- package/dist/types/mds-accordion-timer.server.d.ts +4 -4
- package/dist/types/mds-accordion.d.ts +4 -8
- package/dist/types/mds-accordion.server.d.ts +4 -4
- package/dist/types/mds-author.d.ts +2 -6
- package/dist/types/mds-author.server.d.ts +3 -3
- package/dist/types/mds-avatar-stack-item.d.ts +2 -6
- package/dist/types/mds-avatar-stack-item.server.d.ts +3 -3
- package/dist/types/mds-avatar-stack.d.ts +2 -6
- package/dist/types/mds-avatar-stack.server.d.ts +3 -3
- package/dist/types/mds-avatar.d.ts +2 -6
- package/dist/types/mds-avatar.server.d.ts +3 -3
- package/dist/types/mds-badge.d.ts +2 -6
- package/dist/types/mds-badge.server.d.ts +3 -3
- package/dist/types/mds-banner.d.ts +4 -8
- package/dist/types/mds-banner.server.d.ts +4 -4
- package/dist/types/mds-benchmark-bar.d.ts +2 -6
- package/dist/types/mds-benchmark-bar.server.d.ts +3 -3
- package/dist/types/mds-bibliography.d.ts +2 -6
- package/dist/types/mds-bibliography.server.d.ts +3 -3
- package/dist/types/mds-book.d.ts +2 -6
- package/dist/types/mds-book.server.d.ts +3 -3
- package/dist/types/mds-breadcrumb-item.d.ts +4 -8
- package/dist/types/mds-breadcrumb-item.server.d.ts +4 -4
- package/dist/types/mds-breadcrumb.d.ts +4 -8
- package/dist/types/mds-breadcrumb.server.d.ts +4 -4
- package/dist/types/mds-button-dropdown.d.ts +4 -8
- package/dist/types/mds-button-dropdown.server.d.ts +4 -4
- package/dist/types/mds-button-group.d.ts +2 -6
- package/dist/types/mds-button-group.server.d.ts +3 -3
- package/dist/types/mds-button.d.ts +2 -6
- package/dist/types/mds-button.server.d.ts +3 -3
- package/dist/types/mds-calendar-cell.d.ts +2 -6
- package/dist/types/mds-calendar-cell.server.d.ts +3 -3
- package/dist/types/mds-calendar.d.ts +4 -8
- package/dist/types/mds-calendar.server.d.ts +4 -4
- package/dist/types/mds-card-content.d.ts +2 -6
- package/dist/types/mds-card-content.server.d.ts +3 -3
- package/dist/types/mds-card-footer.d.ts +2 -6
- package/dist/types/mds-card-footer.server.d.ts +3 -3
- package/dist/types/mds-card-header.d.ts +2 -6
- package/dist/types/mds-card-header.server.d.ts +3 -3
- package/dist/types/mds-card-media.d.ts +2 -6
- package/dist/types/mds-card-media.server.d.ts +3 -3
- package/dist/types/mds-card.d.ts +2 -6
- package/dist/types/mds-card.server.d.ts +3 -3
- package/dist/types/mds-chip.d.ts +4 -8
- package/dist/types/mds-chip.server.d.ts +4 -4
- package/dist/types/mds-details.d.ts +4 -8
- package/dist/types/mds-details.server.d.ts +4 -4
- package/dist/types/mds-dropdown.d.ts +4 -8
- package/dist/types/mds-dropdown.server.d.ts +4 -4
- package/dist/types/mds-emoji.d.ts +2 -6
- package/dist/types/mds-emoji.server.d.ts +3 -3
- package/dist/types/mds-entity.d.ts +2 -6
- package/dist/types/mds-entity.server.d.ts +3 -3
- package/dist/types/mds-file-preview.d.ts +4 -8
- package/dist/types/mds-file-preview.server.d.ts +4 -4
- package/dist/types/mds-file.d.ts +4 -8
- package/dist/types/mds-file.server.d.ts +4 -4
- package/dist/types/mds-filter-item.d.ts +4 -8
- package/dist/types/mds-filter-item.server.d.ts +4 -4
- package/dist/types/mds-filter.d.ts +4 -8
- package/dist/types/mds-filter.server.d.ts +4 -4
- package/dist/types/mds-header-bar.d.ts +4 -8
- package/dist/types/mds-header-bar.server.d.ts +4 -4
- package/dist/types/mds-header.d.ts +4 -8
- package/dist/types/mds-header.server.d.ts +4 -4
- package/dist/types/mds-help.d.ts +2 -6
- package/dist/types/mds-help.server.d.ts +3 -3
- package/dist/types/mds-horizontal-scroll.d.ts +2 -6
- package/dist/types/mds-horizontal-scroll.server.d.ts +3 -3
- package/dist/types/mds-hr.d.ts +2 -6
- package/dist/types/mds-hr.server.d.ts +3 -3
- package/dist/types/mds-icon.d.ts +2 -6
- package/dist/types/mds-icon.server.d.ts +3 -3
- package/dist/types/mds-img.d.ts +4 -8
- package/dist/types/mds-img.server.d.ts +4 -4
- package/dist/types/mds-input-date-range-preselection.d.ts +2 -6
- package/dist/types/mds-input-date-range-preselection.server.d.ts +3 -3
- package/dist/types/mds-input-date-range.d.ts +4 -8
- package/dist/types/mds-input-date-range.server.d.ts +4 -4
- package/dist/types/mds-input-date.d.ts +4 -8
- package/dist/types/mds-input-date.server.d.ts +4 -4
- package/dist/types/mds-input-field.d.ts +2 -6
- package/dist/types/mds-input-field.server.d.ts +3 -3
- package/dist/types/mds-input-otp.d.ts +2 -6
- package/dist/types/mds-input-otp.server.d.ts +3 -3
- package/dist/types/mds-input-range.d.ts +4 -8
- package/dist/types/mds-input-range.server.d.ts +4 -4
- package/dist/types/mds-input-select.d.ts +4 -8
- package/dist/types/mds-input-select.server.d.ts +4 -4
- package/dist/types/mds-input-switch.d.ts +4 -8
- package/dist/types/mds-input-switch.server.d.ts +4 -4
- package/dist/types/mds-input-tip-item.d.ts +2 -6
- package/dist/types/mds-input-tip-item.server.d.ts +3 -3
- package/dist/types/mds-input-tip.d.ts +2 -6
- package/dist/types/mds-input-tip.server.d.ts +3 -3
- package/dist/types/mds-input-upload.d.ts +4 -8
- package/dist/types/mds-input-upload.server.d.ts +4 -4
- package/dist/types/mds-input.d.ts +4 -8
- package/dist/types/mds-input.server.d.ts +4 -4
- package/dist/types/mds-keyboard-key.d.ts +2 -6
- package/dist/types/mds-keyboard-key.server.d.ts +3 -3
- package/dist/types/mds-keyboard.d.ts +2 -6
- package/dist/types/mds-keyboard.server.d.ts +3 -3
- package/dist/types/mds-kpi-item.d.ts +2 -6
- package/dist/types/mds-kpi-item.server.d.ts +3 -3
- package/dist/types/mds-kpi.d.ts +2 -6
- package/dist/types/mds-kpi.server.d.ts +3 -3
- package/dist/types/mds-label.d.ts +4 -8
- package/dist/types/mds-label.server.d.ts +4 -4
- package/dist/types/mds-link.d.ts +2 -6
- package/dist/types/mds-link.server.d.ts +3 -3
- package/dist/types/mds-list-item.d.ts +2 -6
- package/dist/types/mds-list-item.server.d.ts +3 -3
- package/dist/types/mds-list.d.ts +2 -6
- package/dist/types/mds-list.server.d.ts +3 -3
- package/dist/types/mds-mention.d.ts +4 -8
- package/dist/types/mds-mention.server.d.ts +4 -4
- package/dist/types/mds-modal.d.ts +4 -8
- package/dist/types/mds-modal.server.d.ts +4 -4
- package/dist/types/mds-note.d.ts +4 -8
- package/dist/types/mds-note.server.d.ts +4 -4
- package/dist/types/mds-notification.d.ts +2 -6
- package/dist/types/mds-notification.server.d.ts +3 -3
- package/dist/types/mds-paginator-item.d.ts +2 -6
- package/dist/types/mds-paginator-item.server.d.ts +3 -3
- package/dist/types/mds-paginator.d.ts +4 -8
- package/dist/types/mds-paginator.server.d.ts +4 -4
- package/dist/types/mds-policy-ai.d.ts +2 -6
- package/dist/types/mds-policy-ai.server.d.ts +3 -3
- package/dist/types/mds-pref-animation.d.ts +4 -8
- package/dist/types/mds-pref-animation.server.d.ts +4 -4
- package/dist/types/mds-pref-consumption.d.ts +4 -8
- package/dist/types/mds-pref-consumption.server.d.ts +4 -4
- package/dist/types/mds-pref-contrast.d.ts +4 -8
- package/dist/types/mds-pref-contrast.server.d.ts +4 -4
- package/dist/types/mds-pref-language-item.d.ts +4 -8
- package/dist/types/mds-pref-language-item.server.d.ts +4 -4
- package/dist/types/mds-pref-language.d.ts +4 -8
- package/dist/types/mds-pref-language.server.d.ts +4 -4
- package/dist/types/mds-pref-mode.d.ts +4 -8
- package/dist/types/mds-pref-mode.server.d.ts +4 -4
- package/dist/types/mds-pref-theme-item.d.ts +4 -8
- package/dist/types/mds-pref-theme-item.server.d.ts +4 -4
- package/dist/types/mds-pref-theme.d.ts +4 -8
- package/dist/types/mds-pref-theme.server.d.ts +4 -4
- package/dist/types/mds-pref.d.ts +2 -6
- package/dist/types/mds-pref.server.d.ts +3 -3
- package/dist/types/mds-price-table-features-cell.d.ts +2 -6
- package/dist/types/mds-price-table-features-cell.server.d.ts +3 -3
- package/dist/types/mds-price-table-features-row.d.ts +2 -6
- package/dist/types/mds-price-table-features-row.server.d.ts +3 -3
- package/dist/types/mds-price-table-features.d.ts +2 -6
- package/dist/types/mds-price-table-features.server.d.ts +3 -3
- package/dist/types/mds-price-table-header.d.ts +2 -6
- package/dist/types/mds-price-table-header.server.d.ts +3 -3
- package/dist/types/mds-price-table-list-item.d.ts +2 -6
- package/dist/types/mds-price-table-list-item.server.d.ts +3 -3
- package/dist/types/mds-price-table-list.d.ts +2 -6
- package/dist/types/mds-price-table-list.server.d.ts +3 -3
- package/dist/types/mds-price-table.d.ts +2 -6
- package/dist/types/mds-price-table.server.d.ts +3 -3
- package/dist/types/mds-progress.d.ts +2 -6
- package/dist/types/mds-progress.server.d.ts +3 -3
- package/dist/types/mds-push-notification-item.d.ts +4 -8
- package/dist/types/mds-push-notification-item.server.d.ts +4 -4
- package/dist/types/mds-push-notification.d.ts +4 -8
- package/dist/types/mds-push-notification.server.d.ts +4 -4
- package/dist/types/mds-quote.d.ts +2 -6
- package/dist/types/mds-quote.server.d.ts +3 -3
- package/dist/types/mds-radial-menu-item.d.ts +2 -6
- package/dist/types/mds-radial-menu-item.server.d.ts +3 -3
- package/dist/types/mds-radial-menu.d.ts +2 -6
- package/dist/types/mds-radial-menu.server.d.ts +3 -3
- package/dist/types/mds-radial-progress.d.ts +2 -6
- package/dist/types/mds-radial-progress.server.d.ts +3 -3
- package/dist/types/mds-separator.d.ts +2 -6
- package/dist/types/mds-separator.server.d.ts +3 -3
- package/dist/types/mds-spinner.d.ts +2 -6
- package/dist/types/mds-spinner.server.d.ts +3 -3
- package/dist/types/mds-status-bar.d.ts +2 -6
- package/dist/types/mds-status-bar.server.d.ts +3 -3
- package/dist/types/mds-stepper-bar-item.d.ts +4 -8
- package/dist/types/mds-stepper-bar-item.server.d.ts +4 -4
- package/dist/types/mds-stepper-bar.d.ts +4 -8
- package/dist/types/mds-stepper-bar.server.d.ts +4 -4
- package/dist/types/mds-tab-bar-item.d.ts +4 -8
- package/dist/types/mds-tab-bar-item.server.d.ts +4 -4
- package/dist/types/mds-tab-bar.d.ts +4 -8
- package/dist/types/mds-tab-bar.server.d.ts +4 -4
- package/dist/types/mds-tab-item.d.ts +4 -8
- package/dist/types/mds-tab-item.server.d.ts +4 -4
- package/dist/types/mds-tab.d.ts +4 -8
- package/dist/types/mds-tab.server.d.ts +4 -4
- package/dist/types/mds-table-body.d.ts +2 -6
- package/dist/types/mds-table-body.server.d.ts +3 -3
- package/dist/types/mds-table-cell.d.ts +2 -6
- package/dist/types/mds-table-cell.server.d.ts +3 -3
- package/dist/types/mds-table-footer.d.ts +2 -6
- package/dist/types/mds-table-footer.server.d.ts +3 -3
- package/dist/types/mds-table-header-cell.d.ts +4 -8
- package/dist/types/mds-table-header-cell.server.d.ts +4 -4
- package/dist/types/mds-table-header.d.ts +2 -6
- package/dist/types/mds-table-header.server.d.ts +3 -3
- package/dist/types/mds-table-row.d.ts +2 -6
- package/dist/types/mds-table-row.server.d.ts +3 -3
- package/dist/types/mds-table.d.ts +4 -8
- package/dist/types/mds-table.server.d.ts +4 -4
- package/dist/types/mds-text.d.ts +2 -6
- package/dist/types/mds-text.server.d.ts +3 -3
- package/dist/types/mds-toast-region.d.ts +2 -6
- package/dist/types/mds-toast-region.server.d.ts +3 -3
- package/dist/types/mds-toast.d.ts +4 -8
- package/dist/types/mds-toast.server.d.ts +4 -4
- package/dist/types/mds-tooltip.d.ts +2 -6
- package/dist/types/mds-tooltip.server.d.ts +3 -3
- package/dist/types/mds-tree-item.d.ts +4 -8
- package/dist/types/mds-tree-item.server.d.ts +4 -4
- package/dist/types/mds-tree.d.ts +2 -6
- package/dist/types/mds-tree.server.d.ts +3 -3
- package/dist/types/mds-url-view.d.ts +4 -8
- package/dist/types/mds-url-view.server.d.ts +4 -4
- package/dist/types/mds-usage.d.ts +2 -6
- package/dist/types/mds-usage.server.d.ts +3 -3
- package/dist/types/mds-video-wall.d.ts +2 -6
- package/dist/types/mds-video-wall.server.d.ts +3 -3
- package/dist/types/mds-zero.d.ts +2 -6
- package/dist/types/mds-zero.server.d.ts +3 -3
- package/package.json +3 -3
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
try: Look at the order of the list: the search form, the summary that says which practices out of how many with Rimuovi i filtri, the table whose numbers are the links to each practice, and the pages.
|
|
3
|
+
whole-page: true
|
|
4
|
+
-->
|
|
5
|
+
<mds-header>
|
|
6
|
+
<mds-header-bar>
|
|
7
|
+
<mds-text typography="h6" tag="p">Servizi demografici</mds-text>
|
|
8
|
+
<mds-button slot="nav" href="#" aria-current="page" variant="dark" tone="weak">Pratiche</mds-button>
|
|
9
|
+
<mds-button slot="nav" href="#" variant="dark" tone="text">Contatti</mds-button>
|
|
10
|
+
<mds-button id="persona" slot="nav" icon="mi/baseline/account-circle" variant="dark" tone="text" aria-label="Account di Mario Rossi"></mds-button>
|
|
11
|
+
</mds-header-bar>
|
|
12
|
+
<nav slot="menu" class="grid gap-inline p-inset">
|
|
13
|
+
<mds-button href="#" aria-current="page" variant="dark" tone="weak" class="w-full justify-start">Pratiche</mds-button>
|
|
14
|
+
<mds-button href="#" variant="dark" tone="text" class="w-full justify-start">Contatti</mds-button>
|
|
15
|
+
<mds-separator></mds-separator>
|
|
16
|
+
<mds-text typography="detail" tag="p" class="text-fg-muted">Mario Rossi</mds-text>
|
|
17
|
+
<mds-button href="#" variant="dark" tone="text" class="w-full justify-start">Profilo</mds-button>
|
|
18
|
+
<mds-button href="#" variant="dark" tone="text" class="w-full justify-start">Esci</mds-button>
|
|
19
|
+
</nav>
|
|
20
|
+
</mds-header>
|
|
21
|
+
<mds-dropdown target="#persona" placement="bottom-end" strategy="fixed">
|
|
22
|
+
<mds-text typography="detail" tag="p" class="text-fg-muted">Mario Rossi</mds-text>
|
|
23
|
+
<mds-button href="#" icon="mi/baseline/person" variant="dark" tone="text" label="Profilo"></mds-button>
|
|
24
|
+
<mds-separator></mds-separator>
|
|
25
|
+
<mds-button href="#" icon="mi/baseline/logout" variant="dark" tone="text" label="Esci"></mds-button>
|
|
26
|
+
</mds-dropdown>
|
|
27
|
+
<main class="page-frame grid gap-between-sections py-between-sections">
|
|
28
|
+
<header class="@container flex flex-wrap items-start justify-between gap-inline">
|
|
29
|
+
<div class="grid min-w-0 grow basis-actions gap-title-content">
|
|
30
|
+
<mds-text typography="page" tag="h1">Pratiche</mds-text>
|
|
31
|
+
<mds-text typography="detail" tag="p" class="text-fg-muted">Le pratiche che i cittadini inviano agli uffici.</mds-text>
|
|
32
|
+
</div>
|
|
33
|
+
<div class="flex gap-inline @max-actions:basis-full @max-actions:flex-col @max-actions:*:self-stretch">
|
|
34
|
+
<mds-button variant="dark" tone="outline">Esporta</mds-button>
|
|
35
|
+
<mds-button>Nuova pratica</mds-button>
|
|
36
|
+
</div>
|
|
37
|
+
</header>
|
|
38
|
+
<div class="grid gap-between-groups">
|
|
39
|
+
<form role="search" class="grid gap-between-fields">
|
|
40
|
+
<div class="field-group max-w-form">
|
|
41
|
+
<mds-input-field label="Cerca">
|
|
42
|
+
<mds-input type="search" name="q" placeholder="Numero o oggetto"></mds-input>
|
|
43
|
+
</mds-input-field>
|
|
44
|
+
<mds-input-field label="Ufficio" short>
|
|
45
|
+
<mds-input-select name="ufficio" value="anagrafe">
|
|
46
|
+
<option value="">Tutti gli uffici</option>
|
|
47
|
+
<option value="anagrafe">Anagrafe</option>
|
|
48
|
+
<option value="stato-civile">Stato civile</option>
|
|
49
|
+
</mds-input-select>
|
|
50
|
+
</mds-input-field>
|
|
51
|
+
</div>
|
|
52
|
+
<mds-filter label="Stato" class="justify-self-start">
|
|
53
|
+
<mds-filter-item label="Tutte" value="" count="44" selected></mds-filter-item>
|
|
54
|
+
<mds-filter-item label="Nuove" value="nuova" count="8"></mds-filter-item>
|
|
55
|
+
<mds-filter-item label="In lavorazione" value="in-lavorazione" count="14"></mds-filter-item>
|
|
56
|
+
<mds-filter-item label="In attesa" value="in-attesa" count="6"></mds-filter-item>
|
|
57
|
+
<mds-filter-item label="Chiuse" value="chiusa" count="16"></mds-filter-item>
|
|
58
|
+
</mds-filter>
|
|
59
|
+
</form>
|
|
60
|
+
<div class="grid gap-between-fields">
|
|
61
|
+
<div class="grid gap-title-content">
|
|
62
|
+
<div class="flex flex-wrap items-center gap-inline">
|
|
63
|
+
<mds-text typography="detail" tag="p" role="status">41-44 di 44 pratiche</mds-text>
|
|
64
|
+
<mds-button variant="dark" tone="text" size="sm">Rimuovi i filtri</mds-button>
|
|
65
|
+
</div>
|
|
66
|
+
<mds-table sorting="external" class="w-full [&_mds-table-cell]:text-nowrap [&_mds-text]:text-nowrap">
|
|
67
|
+
<mds-table-header>
|
|
68
|
+
<mds-table-header-cell label="Numero" sortable sort-key="numero"></mds-table-header-cell>
|
|
69
|
+
<mds-table-header-cell label="Oggetto"></mds-table-header-cell>
|
|
70
|
+
<mds-table-header-cell label="Richiedente"></mds-table-header-cell>
|
|
71
|
+
<mds-table-header-cell label="Stato"></mds-table-header-cell>
|
|
72
|
+
<mds-table-header-cell label="Ricevuta il" sortable sort-key="ricevuta" direction="descending"></mds-table-header-cell>
|
|
73
|
+
</mds-table-header>
|
|
74
|
+
<mds-table-body>
|
|
75
|
+
<mds-table-row>
|
|
76
|
+
<mds-table-cell><mds-text typography="detail"><mds-link href="#">2026/0118</mds-link></mds-text></mds-table-cell>
|
|
77
|
+
<mds-table-cell><mds-text typography="detail">Cambio di residenza</mds-text></mds-table-cell>
|
|
78
|
+
<mds-table-cell><mds-text typography="detail">Giulia Bianchi</mds-text></mds-table-cell>
|
|
79
|
+
<mds-table-cell><mds-badge variant="warning" label="In lavorazione"></mds-badge></mds-table-cell>
|
|
80
|
+
<mds-table-cell><mds-text typography="detail">24 febbraio 2026</mds-text></mds-table-cell>
|
|
81
|
+
</mds-table-row>
|
|
82
|
+
<mds-table-row>
|
|
83
|
+
<mds-table-cell><mds-text typography="detail"><mds-link href="#">2026/0115</mds-link></mds-text></mds-table-cell>
|
|
84
|
+
<mds-table-cell><mds-text typography="detail">Iscrizione anagrafica</mds-text></mds-table-cell>
|
|
85
|
+
<mds-table-cell><mds-text typography="detail">Luca Ferri</mds-text></mds-table-cell>
|
|
86
|
+
<mds-table-cell><mds-badge variant="success" label="Chiusa"></mds-badge></mds-table-cell>
|
|
87
|
+
<mds-table-cell><mds-text typography="detail">23 febbraio 2026</mds-text></mds-table-cell>
|
|
88
|
+
</mds-table-row>
|
|
89
|
+
<mds-table-row>
|
|
90
|
+
<mds-table-cell><mds-text typography="detail"><mds-link href="#">2026/0112</mds-link></mds-text></mds-table-cell>
|
|
91
|
+
<mds-table-cell><mds-text typography="detail">Certificato di residenza</mds-text></mds-table-cell>
|
|
92
|
+
<mds-table-cell><mds-text typography="detail">Marco Rossi</mds-text></mds-table-cell>
|
|
93
|
+
<mds-table-cell><mds-badge variant="success" label="Chiusa"></mds-badge></mds-table-cell>
|
|
94
|
+
<mds-table-cell><mds-text typography="detail">20 febbraio 2026</mds-text></mds-table-cell>
|
|
95
|
+
</mds-table-row>
|
|
96
|
+
<mds-table-row>
|
|
97
|
+
<mds-table-cell><mds-text typography="detail"><mds-link href="#">2026/0109</mds-link></mds-text></mds-table-cell>
|
|
98
|
+
<mds-table-cell><mds-text typography="detail">Cambio di indirizzo</mds-text></mds-table-cell>
|
|
99
|
+
<mds-table-cell><mds-text typography="detail">Anna Conti</mds-text></mds-table-cell>
|
|
100
|
+
<mds-table-cell><mds-badge variant="info" label="In attesa"></mds-badge></mds-table-cell>
|
|
101
|
+
<mds-table-cell><mds-text typography="detail">19 febbraio 2026</mds-text></mds-table-cell>
|
|
102
|
+
</mds-table-row>
|
|
103
|
+
</mds-table-body>
|
|
104
|
+
</mds-table>
|
|
105
|
+
</div>
|
|
106
|
+
<mds-paginator pages="5" current-page="5" class="justify-self-start"></mds-paginator>
|
|
107
|
+
</div>
|
|
108
|
+
</div>
|
|
109
|
+
</main>
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
try: Look at the end of the line of the summary: 2 practices arrived while the list was open, and nothing above or below moved. Wait a few seconds: a third arrives, the count in the dot grows and the dot pulses three times. Press Mostra: the list loads again with the same search, and the line empties without giving up its place.
|
|
3
|
+
whole-page: true
|
|
4
|
+
-->
|
|
5
|
+
<mds-header>
|
|
6
|
+
<mds-header-bar>
|
|
7
|
+
<mds-text typography="h6" tag="p">Servizi demografici</mds-text>
|
|
8
|
+
<mds-button slot="nav" href="#" aria-current="page" variant="dark" tone="weak">Pratiche</mds-button>
|
|
9
|
+
<mds-button slot="nav" href="#" variant="dark" tone="text">Contatti</mds-button>
|
|
10
|
+
<mds-button id="persona" slot="nav" icon="mi/baseline/account-circle" variant="dark" tone="text" aria-label="Account di Mario Rossi"></mds-button>
|
|
11
|
+
</mds-header-bar>
|
|
12
|
+
<nav slot="menu" class="grid gap-inline p-inset">
|
|
13
|
+
<mds-button href="#" aria-current="page" variant="dark" tone="weak" class="w-full justify-start">Pratiche</mds-button>
|
|
14
|
+
<mds-button href="#" variant="dark" tone="text" class="w-full justify-start">Contatti</mds-button>
|
|
15
|
+
<mds-separator></mds-separator>
|
|
16
|
+
<mds-text typography="detail" tag="p" class="text-fg-muted">Mario Rossi</mds-text>
|
|
17
|
+
<mds-button href="#" variant="dark" tone="text" class="w-full justify-start">Profilo</mds-button>
|
|
18
|
+
<mds-button href="#" variant="dark" tone="text" class="w-full justify-start">Esci</mds-button>
|
|
19
|
+
</nav>
|
|
20
|
+
</mds-header>
|
|
21
|
+
<mds-dropdown target="#persona" placement="bottom-end" strategy="fixed">
|
|
22
|
+
<mds-text typography="detail" tag="p" class="text-fg-muted">Mario Rossi</mds-text>
|
|
23
|
+
<mds-button href="#" icon="mi/baseline/person" variant="dark" tone="text" label="Profilo"></mds-button>
|
|
24
|
+
<mds-separator></mds-separator>
|
|
25
|
+
<mds-button href="#" icon="mi/baseline/logout" variant="dark" tone="text" label="Esci"></mds-button>
|
|
26
|
+
</mds-dropdown>
|
|
27
|
+
<main class="page-frame grid gap-between-sections py-between-sections">
|
|
28
|
+
<header class="@container flex flex-wrap items-start justify-between gap-inline">
|
|
29
|
+
<div class="grid min-w-0 grow basis-actions gap-title-content">
|
|
30
|
+
<mds-text id="titolo" typography="page" tag="h1" tabindex="-1">Pratiche</mds-text>
|
|
31
|
+
<mds-text typography="detail" tag="p" class="text-fg-muted">Le pratiche che i cittadini inviano agli uffici.</mds-text>
|
|
32
|
+
</div>
|
|
33
|
+
<div class="flex gap-inline @max-actions:basis-full @max-actions:flex-col @max-actions:*:self-stretch">
|
|
34
|
+
<mds-button variant="dark" tone="outline">Esporta</mds-button>
|
|
35
|
+
<mds-button>Nuova pratica</mds-button>
|
|
36
|
+
</div>
|
|
37
|
+
</header>
|
|
38
|
+
<div class="grid gap-between-groups">
|
|
39
|
+
<form role="search" class="grid gap-between-fields">
|
|
40
|
+
<div class="field-group max-w-form">
|
|
41
|
+
<mds-input-field label="Cerca">
|
|
42
|
+
<mds-input type="search" name="q" placeholder="Numero o oggetto"></mds-input>
|
|
43
|
+
</mds-input-field>
|
|
44
|
+
</div>
|
|
45
|
+
<mds-filter label="Stato" class="justify-self-start">
|
|
46
|
+
<mds-filter-item id="tutte" label="Tutte" value="" count="128"></mds-filter-item>
|
|
47
|
+
<mds-filter-item id="stato-nuove" label="Nuove" value="nuova" count="4" selected></mds-filter-item>
|
|
48
|
+
<mds-filter-item label="In lavorazione" value="in-lavorazione" count="41"></mds-filter-item>
|
|
49
|
+
<mds-filter-item label="In attesa" value="in-attesa" count="12"></mds-filter-item>
|
|
50
|
+
<mds-filter-item label="Chiuse" value="chiusa" count="71"></mds-filter-item>
|
|
51
|
+
</mds-filter>
|
|
52
|
+
</form>
|
|
53
|
+
<div class="@container grid gap-title-content">
|
|
54
|
+
<div class="flex flex-wrap items-center gap-inline @2xl:justify-between">
|
|
55
|
+
<div class="flex flex-wrap items-center gap-inline">
|
|
56
|
+
<mds-text id="summary" typography="detail" tag="p" role="status">4 pratiche</mds-text>
|
|
57
|
+
<mds-button variant="dark" tone="text" size="sm">Rimuovi i filtri</mds-button>
|
|
58
|
+
</div>
|
|
59
|
+
<div class="flex basis-full items-center gap-inline @2xl:basis-auto">
|
|
60
|
+
<p role="status" class="flex items-center gap-inline">
|
|
61
|
+
<mds-notification id="punto" variant="info" value="2" pulse></mds-notification>
|
|
62
|
+
<mds-text id="nuove" typography="detail" class="text-info-fg">nuove pratiche</mds-text>
|
|
63
|
+
</p>
|
|
64
|
+
<mds-button id="mostra" variant="info" tone="outline" size="sm">Mostra</mds-button>
|
|
65
|
+
</div>
|
|
66
|
+
</div>
|
|
67
|
+
<mds-table sorting="external" class="w-full [&_mds-table-cell]:text-nowrap [&_mds-text]:text-nowrap">
|
|
68
|
+
<mds-table-header>
|
|
69
|
+
<mds-table-header-cell label="Numero" sortable sort-key="numero"></mds-table-header-cell>
|
|
70
|
+
<mds-table-header-cell label="Oggetto"></mds-table-header-cell>
|
|
71
|
+
<mds-table-header-cell label="Richiedente"></mds-table-header-cell>
|
|
72
|
+
<mds-table-header-cell label="Ricevuta il" sortable sort-key="ricevuta" direction="descending"></mds-table-header-cell>
|
|
73
|
+
</mds-table-header>
|
|
74
|
+
<mds-table-body id="righe">
|
|
75
|
+
<mds-table-row>
|
|
76
|
+
<mds-table-cell><mds-text typography="detail"><mds-link href="#">2026/0139</mds-link></mds-text></mds-table-cell>
|
|
77
|
+
<mds-table-cell><mds-text typography="detail">Carta di identità</mds-text></mds-table-cell>
|
|
78
|
+
<mds-table-cell><mds-text typography="detail">Giulia Bianchi</mds-text></mds-table-cell>
|
|
79
|
+
<mds-table-cell><mds-text typography="detail">2 marzo 2026</mds-text></mds-table-cell>
|
|
80
|
+
</mds-table-row>
|
|
81
|
+
<mds-table-row>
|
|
82
|
+
<mds-table-cell><mds-text typography="detail"><mds-link href="#">2026/0137</mds-link></mds-text></mds-table-cell>
|
|
83
|
+
<mds-table-cell><mds-text typography="detail">Certificato di residenza</mds-text></mds-table-cell>
|
|
84
|
+
<mds-table-cell><mds-text typography="detail">Luca Ferri</mds-text></mds-table-cell>
|
|
85
|
+
<mds-table-cell><mds-text typography="detail">2 marzo 2026</mds-text></mds-table-cell>
|
|
86
|
+
</mds-table-row>
|
|
87
|
+
<mds-table-row>
|
|
88
|
+
<mds-table-cell><mds-text typography="detail"><mds-link href="#">2026/0136</mds-link></mds-text></mds-table-cell>
|
|
89
|
+
<mds-table-cell><mds-text typography="detail">Cambio di indirizzo</mds-text></mds-table-cell>
|
|
90
|
+
<mds-table-cell><mds-text typography="detail">Marco Rossi</mds-text></mds-table-cell>
|
|
91
|
+
<mds-table-cell><mds-text typography="detail">1 marzo 2026</mds-text></mds-table-cell>
|
|
92
|
+
</mds-table-row>
|
|
93
|
+
<mds-table-row>
|
|
94
|
+
<mds-table-cell><mds-text typography="detail"><mds-link href="#">2026/0131</mds-link></mds-text></mds-table-cell>
|
|
95
|
+
<mds-table-cell><mds-text typography="detail">Iscrizione anagrafica</mds-text></mds-table-cell>
|
|
96
|
+
<mds-table-cell><mds-text typography="detail">Anna Conti</mds-text></mds-table-cell>
|
|
97
|
+
<mds-table-cell><mds-text typography="detail">27 febbraio 2026</mds-text></mds-table-cell>
|
|
98
|
+
</mds-table-row>
|
|
99
|
+
</mds-table-body>
|
|
100
|
+
</mds-table>
|
|
101
|
+
</div>
|
|
102
|
+
</div>
|
|
103
|
+
</main>
|
|
104
|
+
<script>
|
|
105
|
+
const arrived = [
|
|
106
|
+
['2026/0143', 'Cambio di residenza', 'Paolo Neri'],
|
|
107
|
+
['2026/0142', 'Stato di famiglia', 'Sara Galli'],
|
|
108
|
+
];
|
|
109
|
+
const cell = (text) => `<mds-table-cell><mds-text typography="detail">${text}</mds-text></mds-table-cell>`;
|
|
110
|
+
// a third practice arrives while the list is open: the count in the dot grows and the dot pulses
|
|
111
|
+
const arriving = setTimeout(() => {
|
|
112
|
+
arrived.unshift(['2026/0144', 'Carta di identità', 'Elena Fontana']);
|
|
113
|
+
document.getElementById('punto').value = arrived.length;
|
|
114
|
+
}, 4000);
|
|
115
|
+
document.getElementById('mostra').addEventListener('click', (event) => {
|
|
116
|
+
clearTimeout(arriving);
|
|
117
|
+
const rows = arrived.map(
|
|
118
|
+
([number, subject, person]) =>
|
|
119
|
+
`<mds-table-row><mds-table-cell><mds-text typography="detail"><mds-link href="#">${number}</mds-link></mds-text></mds-table-cell>${cell(subject)}${cell(person)}${cell('3 marzo 2026')}</mds-table-row>`,
|
|
120
|
+
);
|
|
121
|
+
document.getElementById('righe').insertAdjacentHTML('afterbegin', rows.join(''));
|
|
122
|
+
document.getElementById('summary').textContent = `${4 + arrived.length} pratiche`;
|
|
123
|
+
document.getElementById('stato-nuove').setAttribute('count', `${4 + arrived.length}`);
|
|
124
|
+
document.getElementById('tutte').setAttribute('count', `${128 + arrived.length}`);
|
|
125
|
+
// the line empties but keeps its place (Mostra hidden, not removed): the results never move
|
|
126
|
+
document.getElementById('nuove').textContent = '';
|
|
127
|
+
document.getElementById('punto').dismissed = true;
|
|
128
|
+
event.currentTarget.style.visibility = 'hidden';
|
|
129
|
+
// Mostra is gone: the focus goes to the heading of the page
|
|
130
|
+
document.getElementById('titolo').focus();
|
|
131
|
+
});
|
|
132
|
+
</script>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
try: Press Paga: the button waits and a sentence beside it says the payment is under way and may be slow; there is no Annulla, since a payment sent cannot be called back.
|
|
3
|
+
-->
|
|
4
|
+
<div class="grid gap-between-sections">
|
|
5
|
+
<mds-text typography="page" tag="h1">Pagamento del bollo</mds-text>
|
|
6
|
+
<form id="form" class="@container grid max-w-form gap-content-actions">
|
|
7
|
+
<dl class="m-0 grid items-start gap-between-fields @md:grid-cols-2">
|
|
8
|
+
<div class="grid gap-label-control">
|
|
9
|
+
<mds-text typography="label" tag="dt" class="text-fg-muted">Richiesta</mds-text>
|
|
10
|
+
<mds-text tag="dd" class="m-0">2026/0412</mds-text>
|
|
11
|
+
</div>
|
|
12
|
+
<div class="grid gap-label-control">
|
|
13
|
+
<mds-text typography="label" tag="dt" class="text-fg-muted">Importo</mds-text>
|
|
14
|
+
<mds-text tag="dd" class="m-0">16,00 euro con pagoPA</mds-text>
|
|
15
|
+
</div>
|
|
16
|
+
</dl>
|
|
17
|
+
<div class="flex items-center justify-end gap-inline">
|
|
18
|
+
<div role="status" class="min-w-0 flex-1">
|
|
19
|
+
<div id="waiting" class="invisible">
|
|
20
|
+
<mds-text id="say" typography="detail" tag="p">Pagamento in corso: può richiedere fino a un minuto.</mds-text>
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
<mds-button id="pay">Paga</mds-button>
|
|
24
|
+
</div>
|
|
25
|
+
</form>
|
|
26
|
+
</div>
|
|
27
|
+
<script>
|
|
28
|
+
const pay = document.getElementById('pay');
|
|
29
|
+
const waiting = document.getElementById('waiting');
|
|
30
|
+
const say = document.getElementById('say');
|
|
31
|
+
document.getElementById('form').addEventListener('submit', (event) => {
|
|
32
|
+
event.preventDefault();
|
|
33
|
+
pay.await = true;
|
|
34
|
+
// the line keeps its place while hidden, so its arrival moves nothing
|
|
35
|
+
waiting.classList.remove('invisible');
|
|
36
|
+
setTimeout(() => {
|
|
37
|
+
pay.await = undefined;
|
|
38
|
+
say.textContent = 'Pagamento eseguito.';
|
|
39
|
+
}, 6000);
|
|
40
|
+
});
|
|
41
|
+
</script>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
try: Press Salva: the button waits with its spinner and keeps the focus, a second press does nothing, and after three seconds it is ready again.
|
|
3
|
+
-->
|
|
4
|
+
<div class="grid gap-between-sections">
|
|
5
|
+
<mds-text typography="page" tag="h1">Recapiti</mds-text>
|
|
6
|
+
<form id="form" class="@container grid max-w-form gap-content-actions">
|
|
7
|
+
<div class="grid gap-between-fields">
|
|
8
|
+
<mds-input-field label="PEC">
|
|
9
|
+
<mds-input type="email" value="giulia.bianchi@pec.it"></mds-input>
|
|
10
|
+
</mds-input-field>
|
|
11
|
+
<mds-input-field label="Telefono">
|
|
12
|
+
<mds-input type="tel" value="0541 620 112"></mds-input>
|
|
13
|
+
</mds-input-field>
|
|
14
|
+
</div>
|
|
15
|
+
<div class="flex justify-end gap-inline @max-actions:flex-col @max-actions:*:self-stretch">
|
|
16
|
+
<mds-button type="button" variant="dark" tone="outline">Annulla</mds-button>
|
|
17
|
+
<mds-button id="save">Salva</mds-button>
|
|
18
|
+
</div>
|
|
19
|
+
</form>
|
|
20
|
+
</div>
|
|
21
|
+
<script>
|
|
22
|
+
const save = document.getElementById('save');
|
|
23
|
+
document.getElementById('form').addEventListener('submit', (event) => {
|
|
24
|
+
event.preventDefault();
|
|
25
|
+
save.await = true;
|
|
26
|
+
setTimeout(() => (save.await = undefined), 3000);
|
|
27
|
+
});
|
|
28
|
+
</script>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
try: Look at the list of Richieste opening for the first time: its place is a well as tall as the rows to come, with the spinner in the middle, aria-busy until the rows come.
|
|
3
|
+
-->
|
|
4
|
+
<div class="grid gap-between-sections">
|
|
5
|
+
<mds-text typography="page" tag="h1">Richieste</mds-text>
|
|
6
|
+
<!-- Magma gap: no skeleton; the well keeps the place of the rows, so the page does not jump when they come -->
|
|
7
|
+
<div aria-busy="true" class="grid min-h-6000 place-items-center rounded-md bg-surface-muted">
|
|
8
|
+
<mds-spinner running></mds-spinner>
|
|
9
|
+
</div>
|
|
10
|
+
</div>
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
try: Type Ferr in Cerca: the field waits with its spinner while the three requests stay on screen, then the list narrows to the two that match, with what was searched marked in each.
|
|
3
|
+
-->
|
|
4
|
+
<div class="grid gap-between-sections">
|
|
5
|
+
<mds-text typography="page" tag="h1">Richieste</mds-text>
|
|
6
|
+
<div class="grid gap-between-groups">
|
|
7
|
+
<form id="find" role="search" class="grid gap-between-fields">
|
|
8
|
+
<div class="field-group max-w-form">
|
|
9
|
+
<mds-input-field label="Cerca per nome o numero">
|
|
10
|
+
<mds-input id="search" type="search" name="q"></mds-input>
|
|
11
|
+
</mds-input-field>
|
|
12
|
+
</div>
|
|
13
|
+
</form>
|
|
14
|
+
<div class="grid gap-title-content">
|
|
15
|
+
<mds-text id="summary" typography="detail" tag="p" role="status">3 richieste</mds-text>
|
|
16
|
+
<mds-table id="results" class="w-full [&_mds-table-cell]:text-nowrap [&_mds-text]:text-nowrap">
|
|
17
|
+
<mds-table-header>
|
|
18
|
+
<mds-table-header-cell label="Protocollo"></mds-table-header-cell>
|
|
19
|
+
<mds-table-header-cell label="Richiedente"></mds-table-header-cell>
|
|
20
|
+
</mds-table-header>
|
|
21
|
+
<mds-table-body>
|
|
22
|
+
<mds-table-row>
|
|
23
|
+
<mds-table-cell><mds-text typography="detail"><mds-link href="#">2026/0412</mds-link></mds-text></mds-table-cell>
|
|
24
|
+
<mds-table-cell><mds-text typography="detail">Giulia Bianchi</mds-text></mds-table-cell>
|
|
25
|
+
</mds-table-row>
|
|
26
|
+
<mds-table-row>
|
|
27
|
+
<mds-table-cell><mds-text typography="detail"><mds-link href="#">2026/0398</mds-link></mds-text></mds-table-cell>
|
|
28
|
+
<mds-table-cell><mds-text typography="detail">Luca Ferri</mds-text></mds-table-cell>
|
|
29
|
+
</mds-table-row>
|
|
30
|
+
<mds-table-row>
|
|
31
|
+
<mds-table-cell><mds-text typography="detail"><mds-link href="#">2026/0371</mds-link></mds-text></mds-table-cell>
|
|
32
|
+
<mds-table-cell><mds-text typography="detail">Anna Ferrari</mds-text></mds-table-cell>
|
|
33
|
+
</mds-table-row>
|
|
34
|
+
</mds-table-body>
|
|
35
|
+
</mds-table>
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
<script>
|
|
40
|
+
const search = document.getElementById('search');
|
|
41
|
+
const results = document.getElementById('results');
|
|
42
|
+
const summary = document.getElementById('summary');
|
|
43
|
+
let pause;
|
|
44
|
+
let latest = 0;
|
|
45
|
+
// what was searched, marked in the text of a cell: built from text nodes, never from markup;
|
|
46
|
+
// the number is a link, and mds-link takes text only in its slot, so it is left unmarked
|
|
47
|
+
const mark = (text, query) => {
|
|
48
|
+
const whole = text.dataset.text ?? (text.dataset.text = text.textContent);
|
|
49
|
+
const at = query ? whole.toLowerCase().indexOf(query) : -1;
|
|
50
|
+
if (at < 0) return void (text.textContent = whole);
|
|
51
|
+
const marked = document.createElement('mark');
|
|
52
|
+
marked.className = 'bg-warning-surface text-inherit';
|
|
53
|
+
marked.textContent = whole.slice(at, at + query.length);
|
|
54
|
+
text.replaceChildren(whole.slice(0, at), marked, whole.slice(at + query.length));
|
|
55
|
+
};
|
|
56
|
+
document.getElementById('find').addEventListener('submit', (event) => event.preventDefault());
|
|
57
|
+
search.addEventListener('mdsInputChange', () => {
|
|
58
|
+
clearTimeout(pause);
|
|
59
|
+
pause = setTimeout(() => {
|
|
60
|
+
const query = String(search.value ?? '').trim().toLowerCase();
|
|
61
|
+
const asked = ++latest;
|
|
62
|
+
search.await = true;
|
|
63
|
+
results.setAttribute('aria-busy', 'true');
|
|
64
|
+
setTimeout(() => {
|
|
65
|
+
// a newer search has started: this answer is dropped
|
|
66
|
+
if (asked !== latest) return;
|
|
67
|
+
let shown = 0;
|
|
68
|
+
for (const row of results.querySelectorAll('mds-table-row')) {
|
|
69
|
+
const match = row.textContent.toLowerCase().includes(query);
|
|
70
|
+
row.hidden = !match;
|
|
71
|
+
if (match) shown++;
|
|
72
|
+
for (const text of row.querySelectorAll('mds-text:not(:has(mds-link))')) mark(text, query);
|
|
73
|
+
}
|
|
74
|
+
summary.textContent = shown === 1 ? '1 richiesta' : `${shown} richieste`;
|
|
75
|
+
search.await = undefined;
|
|
76
|
+
results.removeAttribute('aria-busy');
|
|
77
|
+
}, 1500);
|
|
78
|
+
}, 300);
|
|
79
|
+
});
|
|
80
|
+
</script>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
try: Look at the dashboard while its panels load: in the well of a load, the spinner, a sentence that says what is happening and how far it is, and a bar that fills as the panels arrive.
|
|
3
|
+
-->
|
|
4
|
+
<div class="grid gap-between-sections">
|
|
5
|
+
<mds-text typography="page" tag="h1">Cruscotto</mds-text>
|
|
6
|
+
<div aria-busy="true" class="grid min-h-6000 content-center justify-items-center gap-label-control rounded-md bg-surface-muted p-inset text-center">
|
|
7
|
+
<mds-spinner running></mds-spinner>
|
|
8
|
+
<mds-text typography="detail" tag="p">Caricamento dei riquadri del cruscotto: 7 di 12.</mds-text>
|
|
9
|
+
<mds-progress
|
|
10
|
+
class="w-full max-w-form"
|
|
11
|
+
progress="0.58"
|
|
12
|
+
steps="Inizio,Un quarto,Metà,Tre quarti,Fine"
|
|
13
|
+
aria-label="Caricamento dei riquadri"
|
|
14
|
+
></mds-progress>
|
|
15
|
+
</div>
|
|
16
|
+
</div>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
try: Look at the yearly report being computed: the well and the spinner of a short load, with a sentence under it that says what is happening and how long it takes.
|
|
3
|
+
-->
|
|
4
|
+
<div class="grid gap-between-sections">
|
|
5
|
+
<mds-text typography="page" tag="h1">Riepilogo 2026</mds-text>
|
|
6
|
+
<div aria-busy="true" class="grid min-h-6000 content-center justify-items-center gap-label-control rounded-md bg-surface-muted p-inset text-center">
|
|
7
|
+
<mds-spinner running></mds-spinner>
|
|
8
|
+
<mds-text typography="detail" tag="p">
|
|
9
|
+
Calcolo del riepilogo delle richieste dell'anno: può richiedere un minuto.
|
|
10
|
+
</mds-text>
|
|
11
|
+
</div>
|
|
12
|
+
</div>
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
try: Press Allega file: the button waits, a bar beside it fills as the file is sent and a sentence under it says how much; Interrompi stops the upload, and the sentence says the file is not attached.
|
|
3
|
+
-->
|
|
4
|
+
<form class="grid max-w-form gap-between-fields">
|
|
5
|
+
<mds-input-field label="Oggetto">
|
|
6
|
+
<mds-input value="Agibilità dell'immobile in via Emilia 12"></mds-input>
|
|
7
|
+
</mds-input-field>
|
|
8
|
+
<div class="grid gap-label-control">
|
|
9
|
+
<mds-text typography="label" tag="p">Planimetria</mds-text>
|
|
10
|
+
<div class="flex items-center gap-inline">
|
|
11
|
+
<mds-button id="upload" type="button" variant="dark" tone="outline" icon="mi/baseline/upload">Allega file</mds-button>
|
|
12
|
+
<mds-progress
|
|
13
|
+
id="bar"
|
|
14
|
+
class="hidden flex-1"
|
|
15
|
+
steps="Inizio,Un quarto,Metà,Tre quarti,Fine"
|
|
16
|
+
aria-label="Invio di planimetria.pdf"
|
|
17
|
+
></mds-progress>
|
|
18
|
+
<mds-button id="stop" type="button" variant="dark" tone="outline" class="hidden">Interrompi</mds-button>
|
|
19
|
+
</div>
|
|
20
|
+
<mds-text id="say" typography="detail" tag="p" class="text-fg-muted">PDF, al massimo 10 MB.</mds-text>
|
|
21
|
+
</div>
|
|
22
|
+
</form>
|
|
23
|
+
<script>
|
|
24
|
+
const upload = document.getElementById('upload');
|
|
25
|
+
const bar = document.getElementById('bar');
|
|
26
|
+
const stop = document.getElementById('stop');
|
|
27
|
+
const say = document.getElementById('say');
|
|
28
|
+
let timer;
|
|
29
|
+
const show = (sending) => {
|
|
30
|
+
upload.await = sending || undefined;
|
|
31
|
+
bar.classList.toggle('hidden', !sending);
|
|
32
|
+
stop.classList.toggle('hidden', !sending);
|
|
33
|
+
};
|
|
34
|
+
const send = (mb) => {
|
|
35
|
+
bar.progress = mb / 8;
|
|
36
|
+
say.textContent = `Invio di planimetria.pdf: ${mb} MB di 8.`;
|
|
37
|
+
if (mb < 8) timer = setTimeout(() => send(mb + 2), 1500);
|
|
38
|
+
else {
|
|
39
|
+
show(false);
|
|
40
|
+
say.textContent = 'Allegato: planimetria.pdf, 8 MB.';
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
upload.addEventListener('click', () => {
|
|
44
|
+
show(true);
|
|
45
|
+
send(2);
|
|
46
|
+
});
|
|
47
|
+
stop.addEventListener('click', () => {
|
|
48
|
+
clearTimeout(timer);
|
|
49
|
+
show(false);
|
|
50
|
+
say.textContent = 'Invio interrotto: il file non è allegato.';
|
|
51
|
+
});
|
|
52
|
+
</script>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
try: Press Esporta: the button does not wait, and a toast says the export has started and that a message will say when the file is ready.
|
|
3
|
+
height: 300
|
|
4
|
+
-->
|
|
5
|
+
<div class="flex flex-wrap items-start justify-between gap-inline">
|
|
6
|
+
<div class="grid min-w-0 gap-title-content">
|
|
7
|
+
<mds-text typography="page" tag="h1">Richieste</mds-text>
|
|
8
|
+
<mds-text typography="detail" tag="p" class="text-fg-muted">10.482 richieste dal 2020.</mds-text>
|
|
9
|
+
</div>
|
|
10
|
+
<div class="flex gap-inline">
|
|
11
|
+
<mds-button id="export" variant="dark" tone="outline" icon="mi/baseline/download">Esporta</mds-button>
|
|
12
|
+
<mds-button>Nuova richiesta</mds-button>
|
|
13
|
+
</div>
|
|
14
|
+
</div>
|
|
15
|
+
<mds-toast-region>
|
|
16
|
+
<mds-toast id="toast" variant="info">Esportazione avviata: ti avvisiamo quando il file è pronto.</mds-toast>
|
|
17
|
+
</mds-toast-region>
|
|
18
|
+
<script>
|
|
19
|
+
const toast = document.getElementById('toast');
|
|
20
|
+
document.getElementById('export').addEventListener('click', () => {
|
|
21
|
+
toast.visible = undefined;
|
|
22
|
+
toast.visible = true;
|
|
23
|
+
});
|
|
24
|
+
</script>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
try: Press Salva: the dialog closes and a toast says what was saved; Modifica azienda opens it again.
|
|
3
|
+
height: 400
|
|
4
|
+
-->
|
|
5
|
+
<mds-button id="open">Modifica azienda</mds-button>
|
|
6
|
+
<mds-modal id="dialog" opened aria-label="Modifica azienda">
|
|
7
|
+
<mds-banner slot="window" variant="light" tone="box" dismissible headline="Modifica azienda">
|
|
8
|
+
<form class="grid gap-between-fields">
|
|
9
|
+
<mds-input-field label="Ragione sociale">
|
|
10
|
+
<mds-input id="name" value="Maggioli SpA"></mds-input>
|
|
11
|
+
</mds-input-field>
|
|
12
|
+
</form>
|
|
13
|
+
<mds-button id="cancel" slot="action" variant="dark" tone="outline">Annulla</mds-button>
|
|
14
|
+
<mds-button id="save" slot="action">Salva</mds-button>
|
|
15
|
+
</mds-banner>
|
|
16
|
+
</mds-modal>
|
|
17
|
+
<mds-toast-region>
|
|
18
|
+
<mds-toast id="toast" variant="success">Maggioli SpA salvata</mds-toast>
|
|
19
|
+
</mds-toast-region>
|
|
20
|
+
<script>
|
|
21
|
+
const dialog = document.getElementById('dialog');
|
|
22
|
+
const toast = document.getElementById('toast');
|
|
23
|
+
let saved = false;
|
|
24
|
+
document.getElementById('open').addEventListener('click', () => (dialog.opened = true));
|
|
25
|
+
document.getElementById('cancel').addEventListener('click', () => dialog.close());
|
|
26
|
+
dialog.addEventListener('mdsModalClose', () => (dialog.opened = undefined));
|
|
27
|
+
// the toast waits for the dialog to be gone: never a toast over an open dialog
|
|
28
|
+
dialog.addEventListener('mdsModalHide', () => {
|
|
29
|
+
if (!saved) return;
|
|
30
|
+
saved = false;
|
|
31
|
+
toast.firstChild.data = `${document.getElementById('name').value} salvata`;
|
|
32
|
+
toast.visible = true;
|
|
33
|
+
});
|
|
34
|
+
document.getElementById('save').addEventListener('click', () => {
|
|
35
|
+
saved = true;
|
|
36
|
+
dialog.close();
|
|
37
|
+
});
|
|
38
|
+
</script>
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
try: Press Salva in the bar: the edit closes, the page shows the record again with the new name in its title, and a toast says it was saved; Modifica opens the edit again.
|
|
3
|
+
height: 400
|
|
4
|
+
-->
|
|
5
|
+
<div id="view" hidden>
|
|
6
|
+
<header class="flex flex-wrap items-start justify-between gap-inline">
|
|
7
|
+
<div class="grid gap-title-content">
|
|
8
|
+
<mds-text id="title" typography="page" tag="h1" tabindex="-1">Maggioli SpA</mds-text>
|
|
9
|
+
<mds-text typography="detail" tag="p" class="text-fg-muted">Cliente dal 2019, sede a Santarcangelo di Romagna.</mds-text>
|
|
10
|
+
</div>
|
|
11
|
+
<mds-button id="edit">Modifica</mds-button>
|
|
12
|
+
</header>
|
|
13
|
+
</div>
|
|
14
|
+
<form id="form">
|
|
15
|
+
<div class="grid gap-between-sections">
|
|
16
|
+
<mds-text typography="page" tag="h1">Modifica azienda</mds-text>
|
|
17
|
+
<div class="grid max-w-form gap-between-fields">
|
|
18
|
+
<mds-input-field label="Ragione sociale">
|
|
19
|
+
<mds-input id="name" value="Maggioli Editore SpA"></mds-input>
|
|
20
|
+
</mds-input-field>
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
<mds-status-bar id="bar" visible description="Modifiche non salvate">
|
|
24
|
+
<mds-button id="cancel" type="button" variant="dark" tone="outline">Annulla</mds-button>
|
|
25
|
+
<mds-button id="save" type="submit">Salva</mds-button>
|
|
26
|
+
</mds-status-bar>
|
|
27
|
+
</form>
|
|
28
|
+
<mds-toast-region>
|
|
29
|
+
<mds-toast id="toast" variant="success">Dati di Maggioli SpA salvati</mds-toast>
|
|
30
|
+
</mds-toast-region>
|
|
31
|
+
<script>
|
|
32
|
+
const view = document.getElementById('view');
|
|
33
|
+
const form = document.getElementById('form');
|
|
34
|
+
const bar = document.getElementById('bar');
|
|
35
|
+
const title = document.getElementById('title');
|
|
36
|
+
const toast = document.getElementById('toast');
|
|
37
|
+
const show = (editing) => {
|
|
38
|
+
view.hidden = editing;
|
|
39
|
+
form.hidden = !editing;
|
|
40
|
+
bar.visible = editing || undefined;
|
|
41
|
+
};
|
|
42
|
+
document.getElementById('edit').addEventListener('click', () => show(true));
|
|
43
|
+
document.getElementById('cancel').addEventListener('click', () => show(false));
|
|
44
|
+
form.addEventListener('submit', (event) => {
|
|
45
|
+
event.preventDefault();
|
|
46
|
+
title.textContent = document.getElementById('name').value;
|
|
47
|
+
show(false);
|
|
48
|
+
title.focus();
|
|
49
|
+
// the new name shows in the title and in every part of the page: the outcome goes in a toast
|
|
50
|
+
toast.firstChild.data = `Dati di ${title.textContent} salvati`;
|
|
51
|
+
toast.visible = true;
|
|
52
|
+
});
|
|
53
|
+
</script>
|