@slotted/react 0.1.0-beta.7 → 0.1.0-beta.9
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/dist/accordion-BV8Fk_Bb.js +144 -0
- package/dist/accordion.js +1 -1
- package/dist/{action-bar-C5zaYrEW.js → action-bar-1Oim1M96.js} +87 -86
- package/dist/action-bar.js +1 -1
- package/dist/action-sheet-DDYGq59n.js +358 -0
- package/dist/action-sheet.js +1 -1
- package/dist/alert-CBOYFgV4.js +162 -0
- package/dist/alert.js +1 -1
- package/dist/app-shell-lsR7E83y.js +845 -0
- package/dist/app-shell.js +1 -1
- package/dist/aspect-ratio-4-jVcJVH.js +41 -0
- package/dist/aspect-ratio.js +1 -1
- package/dist/attachment-DRJ1Xbwf.js +305 -0
- package/dist/attachment.js +1 -1
- package/dist/avatar-XLx8XVQx.js +103 -0
- package/dist/avatar-group-C7WnrQcv.js +50 -0
- package/dist/avatar-group.js +1 -1
- package/dist/avatar.js +1 -1
- package/dist/badge-D8JWis8n.js +98 -0
- package/dist/badge.js +1 -1
- package/dist/breadcrumb-Dwhy6HNo.js +222 -0
- package/dist/breadcrumb.js +1 -1
- package/dist/button-DE4tnH90.js +100 -0
- package/dist/button-group-CNDK1041.js +51 -0
- package/dist/button-group.js +1 -1
- package/dist/button.js +2 -2
- package/dist/calendar-C5MWMBJ-.js +457 -0
- package/dist/calendar.js +1 -1
- package/dist/card-D-qJkGER.js +103 -0
- package/dist/card.js +1 -1
- package/dist/carousel-AUACHYJI.js +499 -0
- package/dist/carousel.js +1 -1
- package/dist/{cascader-Cn2Acpcv.js → cascader-DxoDZicZ.js} +374 -334
- package/dist/cascader.js +1 -1
- package/dist/chart-DlFmkiTt.js +1010 -0
- package/dist/chart.js +1 -1
- package/dist/checkbox-BiQZiZNt.js +144 -0
- package/dist/checkbox-group-DGTqyyx5.js +109 -0
- package/dist/checkbox-group.js +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/code-block-eGJk55we.js +282 -0
- package/dist/code-block.js +1 -1
- package/dist/collapsible-BZJRc6im.js +222 -0
- package/dist/collapsible.js +1 -1
- package/dist/color-picker-BwN0Z-6T.js +506 -0
- package/dist/color-picker.js +1 -1
- package/dist/column-manager-TmTLTxbk.js +586 -0
- package/dist/column-manager.js +1 -1
- package/dist/combobox-C7ah850L.js +902 -0
- package/dist/combobox.js +1 -1
- package/dist/command-palette-DaJvrDUu.js +741 -0
- package/dist/command-palette.js +1 -1
- package/dist/container-D055iqqL.js +47 -0
- package/dist/container.js +1 -1
- package/dist/context-menu-DPVaLtM3.js +151 -0
- package/dist/context-menu.js +1 -1
- package/dist/currency-field-DaTmtosk.js +469 -0
- package/dist/currency-field.js +1 -1
- package/dist/{dashboard-grid-DsovCuVC.js → dashboard-grid-CPkG03YJ.js} +335 -330
- package/dist/dashboard-grid.js +1 -1
- package/dist/{data-grid-CjFQ2U6v.js → data-grid-UyqqM0QZ.js} +1329 -1180
- package/dist/data-grid.js +1 -1
- package/dist/{data-list-UtLdop-1.js → data-list-nqUyMq3p.js} +173 -147
- package/dist/data-list.js +1 -1
- package/dist/date-field-BSxzX9I5.js +299 -0
- package/dist/date-field.js +1 -1
- package/dist/date-picker-Cw5cGND1.js +316 -0
- package/dist/date-picker.js +1 -1
- package/dist/date-range-picker-l7D9XdFz.js +501 -0
- package/dist/date-range-picker.js +1 -1
- package/dist/datetime-field-KtkRmy6M.js +424 -0
- package/dist/datetime-field.js +1 -1
- package/dist/{datetime-picker-STqSWMkH.js → datetime-picker-CWNTsAk5.js} +217 -200
- package/dist/datetime-picker.js +1 -1
- package/dist/datetime-range-picker-OXDQGRWg.js +1029 -0
- package/dist/datetime-range-picker.js +1 -1
- package/dist/description-list-wYFj_gz-.js +240 -0
- package/dist/description-list.js +1 -1
- package/dist/{detail-panel-ChaIgrw3.js → detail-panel-CKizcLlb.js} +101 -93
- package/dist/detail-panel.js +1 -1
- package/dist/dialog-CpdINwbD.js +533 -0
- package/dist/dialog.js +1 -1
- package/dist/divider-mlzDmInL.js +35 -0
- package/dist/divider.js +1 -1
- package/dist/docs/calendar.json +1 -1
- package/dist/docs/code-block.json +93 -93
- package/dist/docs/code-block.md +71 -71
- package/dist/docs/currency-field.json +7 -0
- package/dist/docs/currency-field.md +1 -0
- package/dist/docs/data-grid.examples.md +1 -1
- package/dist/docs/data-grid.json +21 -4
- package/dist/docs/data-grid.md +1 -1
- package/dist/docs/data-grid.props.md +5 -3
- package/dist/docs/dialog.examples.md +118 -116
- package/dist/docs/dialog.json +8 -8
- package/dist/docs/filter-bar.json +115 -115
- package/dist/docs/filter-bar.md +78 -78
- package/dist/docs/guidelines/async-feedback.md +10 -0
- package/dist/docs/guidelines/composition.md +11 -7
- package/dist/docs/guidelines/index.md +6 -1
- package/dist/docs/guidelines/list-pages.md +30 -0
- package/dist/docs/guidelines/overviews.md +10 -0
- package/dist/docs/markdown.json +75 -75
- package/dist/docs/markdown.md +63 -63
- package/dist/docs/page-header.json +1 -1
- package/dist/docs/skills/compose-screen/SKILL.md +22 -10
- package/dist/docs/skills/review-screen/SKILL.md +6 -0
- package/dist/docs/skills/waiting-states/SKILL.md +4 -1
- package/dist/docs/tags-input.json +28 -2
- package/dist/docs/tags-input.md +4 -1
- package/dist/docs/timeline.json +129 -129
- package/dist/docs/timeline.md +120 -120
- package/dist/drawer-CRaogb8b.js +769 -0
- package/dist/drawer.js +1 -1
- package/dist/{entity-picker-BdySwW8F.js → entity-picker-Z_R15jez.js} +461 -407
- package/dist/entity-picker.js +1 -1
- package/dist/{event-calendar-VUGigZIP.js → event-calendar-BTqvEoHB.js} +466 -397
- package/dist/event-calendar.js +1 -1
- package/dist/field-DKA-qsCV.js +367 -0
- package/dist/field-group-DFBcVPei.js +138 -0
- package/dist/field-group.js +1 -1
- package/dist/field.js +1 -1
- package/dist/filter-bar-C9QzKlR7.js +1340 -0
- package/dist/filter-bar.js +1 -1
- package/dist/{form-vTCQhZM-.js → form-C3PbJPAx.js} +96 -87
- package/dist/form.js +1 -1
- package/dist/fullscreen-DnMrOXT1.js +190 -0
- package/dist/fullscreen.js +1 -1
- package/dist/grid-Ceyh0svH.js +26 -0
- package/dist/grid.js +1 -1
- package/dist/highlight-CIcfSNwz.js +59 -0
- package/dist/highlight.js +1 -1
- package/dist/hover-card-Cw65NrY1.js +215 -0
- package/dist/hover-card.js +1 -1
- package/dist/icon-DMdotKfc.js +75 -0
- package/dist/icon-button-VOA-RY_1.js +222 -0
- package/dist/icon.js +1 -1
- package/dist/{image-DpDFrrXL.js → image-CHiNVcMX.js} +24 -20
- package/dist/image.js +1 -1
- package/dist/{import-export-center-BuEBO1CB.js → import-export-center-BZkY9DNX.js} +227 -175
- package/dist/import-export-center.js +1 -1
- package/dist/index.js +125 -125
- package/dist/inline-BvUpHX8q.js +17 -0
- package/dist/inline-message-BgA4EOsR.js +95 -0
- package/dist/inline-message.js +1 -1
- package/dist/inline.js +1 -1
- package/dist/kbd-DQwbQOQo.js +105 -0
- package/dist/kbd.js +1 -1
- package/dist/link-2zYK7lG3.js +91 -0
- package/dist/link.js +1 -1
- package/dist/list-Bl3ittKt.js +95 -0
- package/dist/list-item-C95M_E6h.js +125 -0
- package/dist/list-item.js +1 -1
- package/dist/list.js +1 -1
- package/dist/listbox-CjCzb8wA.js +626 -0
- package/dist/listbox.js +1 -1
- package/dist/loading-overlay-B6htOo0b.js +218 -0
- package/dist/loading-overlay.js +1 -1
- package/dist/markdown-CvkdDhk0.js +306 -0
- package/dist/markdown.js +1 -1
- package/dist/menu-parts-Dsszga3r.js +805 -0
- package/dist/menu.js +1 -1
- package/dist/menubar-C6ADG3vZ.js +157 -0
- package/dist/menubar.js +1 -1
- package/dist/message-Cjx5EKXr.js +434 -0
- package/dist/message-scroller-DbsTtBDf.js +216 -0
- package/dist/message-scroller.js +1 -1
- package/dist/message.js +1 -1
- package/dist/{multi-select-B8z6ApgW.js → multi-select-BwBY-V0x.js} +468 -428
- package/dist/multi-select.js +1 -1
- package/dist/navigation-menu-parts-BH_bD_nB.js +492 -0
- package/dist/navigation-menu.js +1 -1
- package/dist/notification-center-COgvX79i.js +515 -0
- package/dist/notification-center.js +1 -1
- package/dist/number-field-DAkV-0Ds.js +345 -0
- package/dist/number-field.js +1 -1
- package/dist/{otp-input-CI-kdNgx.js → otp-input-BhNLVojM.js} +75 -72
- package/dist/otp-input.js +1 -1
- package/dist/page-DhWDOrba.js +179 -0
- package/dist/page-header-_w0GDfzQ.js +369 -0
- package/dist/page-header.js +1 -1
- package/dist/page.js +1 -1
- package/dist/pagination-ORU3xJIl.js +299 -0
- package/dist/pagination.js +1 -1
- package/dist/popover-Dwj841Zz.js +500 -0
- package/dist/popover.js +1 -1
- package/dist/progress-indicator-BhljwFx8.js +289 -0
- package/dist/progress-indicator.js +1 -1
- package/dist/prompt-composer-DekRS1MN.js +259 -0
- package/dist/prompt-composer.js +1 -1
- package/dist/prose-vW3cGfUO.js +92 -0
- package/dist/prose.js +1 -1
- package/dist/radio-group-B90c6yUE.js +143 -0
- package/dist/radio-group.js +1 -1
- package/dist/rating-DQ8ekf4J.js +501 -0
- package/dist/rating.js +1 -1
- package/dist/result-state-_QpLl0_K.js +128 -0
- package/dist/result-state.js +1 -1
- package/dist/saved-views-CSVHsnUY.js +456 -0
- package/dist/saved-views.js +1 -1
- package/dist/scroll-area-YWtHa-AH.js +112 -0
- package/dist/scroll-area.js +1 -1
- package/dist/section-BIVN1b9I.js +177 -0
- package/dist/section.js +1 -1
- package/dist/segmented-control-BEhDuh3f.js +156 -0
- package/dist/segmented-control.js +1 -1
- package/dist/select-Dx9crduQ.js +1018 -0
- package/dist/{select-tags-CQMcHIQN.js → select-tags-O7s_VG8g.js} +11 -1
- package/dist/select.js +1 -1
- package/dist/side-navigation-Clp3d76j.js +747 -0
- package/dist/side-navigation.js +1 -1
- package/dist/skeleton-DhMVeVtn.js +149 -0
- package/dist/skeleton.js +1 -1
- package/dist/slider-Q4U838QA.js +264 -0
- package/dist/slider.js +1 -1
- package/dist/sparkline-BpEgC_sE.js +139 -0
- package/dist/sparkline.js +1 -1
- package/dist/split-button-BXTSOL1t.js +136 -0
- package/dist/split-button.js +1 -1
- package/dist/splitter-CQIAFS-U.js +293 -0
- package/dist/splitter.js +1 -1
- package/dist/stack-CcdrLuIO.js +16 -0
- package/dist/stack.js +1 -1
- package/dist/stat-card-B26PbBTG.js +247 -0
- package/dist/stat-card.js +1 -1
- package/dist/status-indicator-BcRmvlQi.js +78 -0
- package/dist/status-indicator.js +1 -1
- package/dist/stepper-DJiyt8_a.js +261 -0
- package/dist/stepper.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/switch-DJcPFG_K.js +144 -0
- package/dist/switch.js +1 -1
- package/dist/{table-C1kLS0-9.js → table-B_h8MWmn.js} +345 -332
- package/dist/table-of-contents-Di60gQxa.js +471 -0
- package/dist/table-of-contents.js +1 -1
- package/dist/table.js +1 -1
- package/dist/tabs-cSln63RJ.js +361 -0
- package/dist/tabs.js +1 -1
- package/dist/tag-IJC5A6Mw.js +374 -0
- package/dist/tag.js +1 -1
- package/dist/tags-input-C1rz88eV.js +729 -0
- package/dist/tags-input.js +1 -1
- package/dist/text-field-8YqMC2pD.js +203 -0
- package/dist/text-field.js +1 -1
- package/dist/textarea-CLs-VUAu.js +100 -0
- package/dist/textarea.js +1 -1
- package/dist/time-field-8ZgiPHW6.js +366 -0
- package/dist/time-field.js +1 -1
- package/dist/{time-picker-D6SlQWNF.js → time-picker-MmBtsFt-.js} +134 -121
- package/dist/time-picker.js +1 -1
- package/dist/time-range-picker-IKd3NKiC.js +779 -0
- package/dist/time-range-picker.js +1 -1
- package/dist/timeline-DHzS0QcQ.js +446 -0
- package/dist/timeline.js +1 -1
- package/dist/toast-BFK2kxCh.js +469 -0
- package/dist/toast.js +1 -1
- package/dist/toggle-Tce-wI5k.js +67 -0
- package/dist/toggle-group-CjtkcHal.js +145 -0
- package/dist/toggle-group.js +1 -1
- package/dist/toggle.js +1 -1
- package/dist/toolbar-f-xwEocO.js +241 -0
- package/dist/toolbar.js +1 -1
- package/dist/tooltip-Bhr8L7US.js +411 -0
- package/dist/tooltip.js +1 -1
- package/dist/top-navigation-DkklehE6.js +744 -0
- package/dist/top-navigation.js +1 -1
- package/dist/tour-BgFSHHxG.js +809 -0
- package/dist/tour.js +1 -1
- package/dist/transfer-kbdtwSnx.js +606 -0
- package/dist/transfer.js +1 -1
- package/dist/tree-CNUJWzmq.js +792 -0
- package/dist/tree.js +1 -1
- package/dist/types/accordion/accordion.d.ts.map +1 -1
- package/dist/types/action-bar/action-bar-overflow.d.ts.map +1 -1
- package/dist/types/action-bar/action-bar-parts.d.ts.map +1 -1
- package/dist/types/action-bar/action-bar.d.ts.map +1 -1
- package/dist/types/action-sheet/action-sheet-parts.d.ts.map +1 -1
- package/dist/types/alert/alert-parts.d.ts.map +1 -1
- package/dist/types/alert/alert.d.ts.map +1 -1
- package/dist/types/app-shell/app-shell-parts.d.ts.map +1 -1
- package/dist/types/app-shell/app-shell.d.ts.map +1 -1
- package/dist/types/aspect-ratio/aspect-ratio.d.ts.map +1 -1
- package/dist/types/attachment/attachment-parts.d.ts.map +1 -1
- package/dist/types/attachment/attachment.d.ts.map +1 -1
- package/dist/types/avatar/avatar.d.ts.map +1 -1
- package/dist/types/avatar-group/avatar-group.d.ts.map +1 -1
- package/dist/types/badge/badge-anchor.d.ts.map +1 -1
- package/dist/types/badge/badge.d.ts.map +1 -1
- package/dist/types/breadcrumb/breadcrumb-parts.d.ts.map +1 -1
- package/dist/types/breadcrumb/breadcrumb.d.ts.map +1 -1
- package/dist/types/button/button-content.d.ts.map +1 -1
- package/dist/types/button/button-indicator.d.ts.map +1 -1
- package/dist/types/button/button-link.d.ts.map +1 -1
- package/dist/types/button/button-root.d.ts +2 -2
- package/dist/types/button/button-root.d.ts.map +1 -1
- package/dist/types/button/button.d.ts.map +1 -1
- package/dist/types/button/icon-button.d.ts.map +1 -1
- package/dist/types/button/toggle-button.d.ts.map +1 -1
- package/dist/types/button-group/button-group-separator.d.ts.map +1 -1
- package/dist/types/button-group/button-group.d.ts.map +1 -1
- package/dist/types/calendar/calendar.d.ts.map +1 -1
- package/dist/types/card/card-actions.d.ts.map +1 -1
- package/dist/types/card/card-body.d.ts.map +1 -1
- package/dist/types/card/card-footer.d.ts.map +1 -1
- package/dist/types/card/card-header.d.ts.map +1 -1
- package/dist/types/card/card-link.d.ts.map +1 -1
- package/dist/types/card/card-media.d.ts.map +1 -1
- package/dist/types/card/card-selection.d.ts.map +1 -1
- package/dist/types/card/card.d.ts.map +1 -1
- package/dist/types/carousel/carousel-parts.d.ts.map +1 -1
- package/dist/types/carousel/carousel.d.ts.map +1 -1
- package/dist/types/cascader/cascader-surface.d.ts.map +1 -1
- package/dist/types/cascader/cascader.d.ts.map +1 -1
- package/dist/types/chart/chart.d.ts.map +1 -1
- package/dist/types/checkbox/checkbox.d.ts.map +1 -1
- package/dist/types/checkbox-group/checkbox-group.d.ts.map +1 -1
- package/dist/types/code-block/code-block.d.ts.map +1 -1
- package/dist/types/collapsible/collapsible-parts.d.ts.map +1 -1
- package/dist/types/collapsible/collapsible.d.ts.map +1 -1
- package/dist/types/color-picker/color-picker.d.ts.map +1 -1
- package/dist/types/column-manager/column-manager.d.ts.map +1 -1
- package/dist/types/combobox/combobox-items.d.ts.map +1 -1
- package/dist/types/combobox/combobox-parts.d.ts.map +1 -1
- package/dist/types/command-palette/command-palette.d.ts.map +1 -1
- package/dist/types/container/container-breakout.d.ts.map +1 -1
- package/dist/types/container/container.d.ts.map +1 -1
- package/dist/types/context-menu/context-menu.d.ts.map +1 -1
- package/dist/types/currency-field/currency-field-defaults.d.ts.map +1 -1
- package/dist/types/currency-field/currency-field.d.ts +1 -1
- package/dist/types/currency-field/currency-field.d.ts.map +1 -1
- package/dist/types/currency-field/currency-field.types.d.ts +14 -5
- package/dist/types/currency-field/currency-field.types.d.ts.map +1 -1
- package/dist/types/dashboard-grid/dashboard-grid.d.ts.map +1 -1
- package/dist/types/dashboard-grid/dashboard-widget.d.ts.map +1 -1
- package/dist/types/data-grid/data-grid-body.d.ts.map +1 -1
- package/dist/types/data-grid/data-grid-context.d.ts +29 -0
- package/dist/types/data-grid/data-grid-context.d.ts.map +1 -1
- package/dist/types/data-grid/data-grid-filter.d.ts.map +1 -1
- package/dist/types/data-grid/data-grid-header.d.ts.map +1 -1
- package/dist/types/data-grid/data-grid.d.ts +1 -1
- package/dist/types/data-grid/data-grid.d.ts.map +1 -1
- package/dist/types/data-grid/data-grid.types.d.ts +10 -0
- package/dist/types/data-grid/data-grid.types.d.ts.map +1 -1
- package/dist/types/data-grid/index.d.ts +1 -1
- package/dist/types/data-grid/index.d.ts.map +1 -1
- package/dist/types/data-list/data-list.d.ts.map +1 -1
- package/dist/types/date-field/date-field.d.ts.map +1 -1
- package/dist/types/date-picker/date-picker.d.ts.map +1 -1
- package/dist/types/date-range-picker/date-range-picker.d.ts.map +1 -1
- package/dist/types/datetime-field/datetime-field.d.ts.map +1 -1
- package/dist/types/datetime-picker/datetime-picker.d.ts.map +1 -1
- package/dist/types/datetime-range-picker/datetime-range-picker.d.ts.map +1 -1
- package/dist/types/description-list/description-list-parts.d.ts.map +1 -1
- package/dist/types/description-list/description-list.d.ts.map +1 -1
- package/dist/types/detail-panel/detail-panel-parts.d.ts.map +1 -1
- package/dist/types/detail-panel/detail-panel.d.ts.map +1 -1
- package/dist/types/dialog/dialog-parts.d.ts.map +1 -1
- package/dist/types/dialog/dialog.types.d.ts +5 -1
- package/dist/types/dialog/dialog.types.d.ts.map +1 -1
- package/dist/types/divider/divider.d.ts.map +1 -1
- package/dist/types/drawer/drawer-parts.d.ts.map +1 -1
- package/dist/types/entity-picker/entity-picker-control.d.ts.map +1 -1
- package/dist/types/entity-picker/entity-picker-popup.d.ts.map +1 -1
- package/dist/types/event-calendar/event-calendar-event.d.ts.map +1 -1
- package/dist/types/event-calendar/event-calendar-list.d.ts.map +1 -1
- package/dist/types/event-calendar/event-calendar-month.d.ts.map +1 -1
- package/dist/types/event-calendar/event-calendar-time-grid.d.ts.map +1 -1
- package/dist/types/event-calendar/event-calendar.d.ts.map +1 -1
- package/dist/types/field/field-parts.d.ts.map +1 -1
- package/dist/types/field/field.d.ts.map +1 -1
- package/dist/types/field-group/field-group-parts.d.ts.map +1 -1
- package/dist/types/field-group/field-group.d.ts.map +1 -1
- package/dist/types/filter-bar/filter-bar-rules.d.ts.map +1 -1
- package/dist/types/filter-bar/filter-bar.d.ts.map +1 -1
- package/dist/types/form/form-parts.d.ts.map +1 -1
- package/dist/types/form/form.d.ts.map +1 -1
- package/dist/types/fullscreen/fullscreen.d.ts.map +1 -1
- package/dist/types/grid/grid.d.ts.map +1 -1
- package/dist/types/highlight/highlight.d.ts.map +1 -1
- package/dist/types/hover-card/hover-card.d.ts.map +1 -1
- package/dist/types/icon/glyph.d.ts.map +1 -1
- package/dist/types/icon/icon.d.ts.map +1 -1
- package/dist/types/image/image.d.ts.map +1 -1
- package/dist/types/import-export-center/import-export-center.d.ts.map +1 -1
- package/dist/types/inline/inline.d.ts.map +1 -1
- package/dist/types/inline-message/inline-message.d.ts.map +1 -1
- package/dist/types/kbd/key-element.d.ts.map +1 -1
- package/dist/types/kbd/shortcut.d.ts.map +1 -1
- package/dist/types/link/link.d.ts.map +1 -1
- package/dist/types/list/list-parts.d.ts.map +1 -1
- package/dist/types/list/list.d.ts.map +1 -1
- package/dist/types/list-item/list-item-content.d.ts.map +1 -1
- package/dist/types/list-item/list-item-parts.d.ts.map +1 -1
- package/dist/types/list-item/list-item.d.ts.map +1 -1
- package/dist/types/listbox/listbox-parts.d.ts.map +1 -1
- package/dist/types/listbox/listbox.d.ts.map +1 -1
- package/dist/types/loading-overlay/loading-overlay.d.ts.map +1 -1
- package/dist/types/markdown/markdown.d.ts.map +1 -1
- package/dist/types/menu/menu-items.d.ts.map +1 -1
- package/dist/types/menu/menu-parts.d.ts.map +1 -1
- package/dist/types/menubar/menubar.d.ts.map +1 -1
- package/dist/types/message/bubble.d.ts.map +1 -1
- package/dist/types/message/message-parts.d.ts.map +1 -1
- package/dist/types/message/message.d.ts.map +1 -1
- package/dist/types/message-scroller/message-scroller.d.ts.map +1 -1
- package/dist/types/multi-select/multi-select-chips.d.ts.map +1 -1
- package/dist/types/multi-select/multi-select-items.d.ts.map +1 -1
- package/dist/types/multi-select/multi-select-parts.d.ts.map +1 -1
- package/dist/types/navigation-menu/navigation-menu-parts.d.ts.map +1 -1
- package/dist/types/navigation-menu/navigation-menu.d.ts.map +1 -1
- package/dist/types/notification-center/notification-center.d.ts.map +1 -1
- package/dist/types/number-field/number-field.d.ts.map +1 -1
- package/dist/types/otp-input/otp-input.d.ts.map +1 -1
- package/dist/types/page/page.d.ts.map +1 -1
- package/dist/types/page-header/page-header-parts.d.ts.map +1 -1
- package/dist/types/page-header/page-header.d.ts.map +1 -1
- package/dist/types/pagination/pagination-parts.d.ts.map +1 -1
- package/dist/types/pagination/pagination.d.ts.map +1 -1
- package/dist/types/popover/popover-parts.d.ts.map +1 -1
- package/dist/types/progress-indicator/progress-bar.d.ts.map +1 -1
- package/dist/types/progress-indicator/progress-circle.d.ts.map +1 -1
- package/dist/types/progress-indicator/progress-parts.d.ts.map +1 -1
- package/dist/types/progress-indicator/use-progress-indicator.d.ts.map +1 -1
- package/dist/types/prompt-composer/prompt-composer.d.ts.map +1 -1
- package/dist/types/prose/prose-parts.d.ts.map +1 -1
- package/dist/types/prose/prose-scroll.d.ts.map +1 -1
- package/dist/types/prose/prose.d.ts.map +1 -1
- package/dist/types/radio-group/radio-group-parts.d.ts.map +1 -1
- package/dist/types/radio-group/radio-group.d.ts.map +1 -1
- package/dist/types/rating/rating-display.d.ts.map +1 -1
- package/dist/types/rating/rating-summary.d.ts.map +1 -1
- package/dist/types/rating/rating.d.ts.map +1 -1
- package/dist/types/result-state/result-state-parts.d.ts.map +1 -1
- package/dist/types/result-state/result-state.d.ts.map +1 -1
- package/dist/types/saved-views/saved-views.d.ts.map +1 -1
- package/dist/types/scroll-area/scroll-area.d.ts.map +1 -1
- package/dist/types/section/section-parts.d.ts.map +1 -1
- package/dist/types/section/section.d.ts.map +1 -1
- package/dist/types/segmented-control/segmented-control-parts.d.ts.map +1 -1
- package/dist/types/segmented-control/segmented-control.d.ts.map +1 -1
- package/dist/types/select/select-items.d.ts.map +1 -1
- package/dist/types/select/select-parts.d.ts.map +1 -1
- package/dist/types/select/select-tags.d.ts.map +1 -1
- package/dist/types/side-navigation/side-navigation-parts.d.ts.map +1 -1
- package/dist/types/side-navigation/side-navigation.d.ts.map +1 -1
- package/dist/types/skeleton/skeleton-region.d.ts.map +1 -1
- package/dist/types/skeleton/skeleton-text.d.ts.map +1 -1
- package/dist/types/skeleton/skeleton.d.ts.map +1 -1
- package/dist/types/slider/slider.d.ts.map +1 -1
- package/dist/types/sparkline/sparkline.d.ts.map +1 -1
- package/dist/types/split-button/split-button-parts.d.ts.map +1 -1
- package/dist/types/split-button/split-button.d.ts.map +1 -1
- package/dist/types/splitter/splitter.d.ts.map +1 -1
- package/dist/types/stack/stack.d.ts.map +1 -1
- package/dist/types/stat-card/stat-card-delta.d.ts.map +1 -1
- package/dist/types/stat-card/stat-card-parts.d.ts.map +1 -1
- package/dist/types/stat-card/stat-card-value.d.ts.map +1 -1
- package/dist/types/stat-card/stat-card.d.ts.map +1 -1
- package/dist/types/status-indicator/status-indicator.d.ts.map +1 -1
- package/dist/types/stepper/stepper-parts.d.ts.map +1 -1
- package/dist/types/stepper/stepper.d.ts.map +1 -1
- package/dist/types/switch/switch.d.ts.map +1 -1
- package/dist/types/table/table-content.d.ts.map +1 -1
- package/dist/types/table/table-filter.d.ts.map +1 -1
- package/dist/types/table/table-parts.d.ts.map +1 -1
- package/dist/types/table/table.d.ts.map +1 -1
- package/dist/types/table-of-contents/table-of-contents-parts.d.ts.map +1 -1
- package/dist/types/table-of-contents/table-of-contents.d.ts.map +1 -1
- package/dist/types/tabs/tabs-parts.d.ts.map +1 -1
- package/dist/types/tabs/tabs.d.ts.map +1 -1
- package/dist/types/tag/tag-button.d.ts.map +1 -1
- package/dist/types/tag/tag-chip.d.ts +2 -2
- package/dist/types/tag/tag-chip.d.ts.map +1 -1
- package/dist/types/tag/tag-group.d.ts.map +1 -1
- package/dist/types/tag/tag-link.d.ts.map +1 -1
- package/dist/types/tag/tag-toggle.d.ts.map +1 -1
- package/dist/types/tags-input/tags-input-chips.d.ts.map +1 -1
- package/dist/types/tags-input/tags-input.d.ts +7 -1
- package/dist/types/tags-input/tags-input.d.ts.map +1 -1
- package/dist/types/tags-input/tags-input.types.d.ts +10 -0
- package/dist/types/tags-input/tags-input.types.d.ts.map +1 -1
- package/dist/types/text-field/text-field.d.ts.map +1 -1
- package/dist/types/textarea/textarea.d.ts.map +1 -1
- package/dist/types/time-field/time-field.d.ts.map +1 -1
- package/dist/types/time-picker/time-picker.d.ts.map +1 -1
- package/dist/types/time-range-picker/time-range-picker.d.ts.map +1 -1
- package/dist/types/timeline/timeline-parts.d.ts.map +1 -1
- package/dist/types/timeline/timeline.d.ts.map +1 -1
- package/dist/types/toast/toast-parts.d.ts.map +1 -1
- package/dist/types/toast/toast.d.ts.map +1 -1
- package/dist/types/toggle/toggle.d.ts.map +1 -1
- package/dist/types/toggle-group/toggle-group-parts.d.ts.map +1 -1
- package/dist/types/toggle-group/toggle-group.d.ts.map +1 -1
- package/dist/types/toolbar/toolbar-overflow.d.ts.map +1 -1
- package/dist/types/toolbar/toolbar-parts.d.ts.map +1 -1
- package/dist/types/toolbar/toolbar.d.ts.map +1 -1
- package/dist/types/tooltip/tooltip-parts.d.ts.map +1 -1
- package/dist/types/top-navigation/top-navigation-parts.d.ts.map +1 -1
- package/dist/types/top-navigation/top-navigation.d.ts.map +1 -1
- package/dist/types/tour/tour-parts.d.ts.map +1 -1
- package/dist/types/tour/tour.d.ts.map +1 -1
- package/dist/types/transfer/transfer.d.ts.map +1 -1
- package/dist/types/tree/tree-parts.d.ts.map +1 -1
- package/dist/types/tree/tree.d.ts.map +1 -1
- package/dist/types/typography/heading.d.ts +2 -2
- package/dist/types/typography/heading.d.ts.map +1 -1
- package/dist/types/typography/text.d.ts.map +1 -1
- package/dist/types/upload/upload-viewer.d.ts.map +1 -1
- package/dist/types/upload/upload.d.ts.map +1 -1
- package/dist/types/visually-hidden/visually-hidden.d.ts.map +1 -1
- package/dist/types/wizard/wizard-parts.d.ts.map +1 -1
- package/dist/types/wizard/wizard.d.ts.map +1 -1
- package/dist/typography-DLiIuMKf.js +93 -0
- package/dist/typography.js +1 -1
- package/dist/upload-CKwUxRtB.js +648 -0
- package/dist/upload.js +1 -1
- package/dist/visually-hidden-Dlnpzic3.js +15 -0
- package/dist/visually-hidden.js +1 -1
- package/dist/wizard-gMgYFSLO.js +838 -0
- package/dist/wizard.js +1 -1
- package/package.json +11 -8
- package/dist/accordion-lCqrmQ3w.js +0 -143
- package/dist/action-sheet-CaUaP0K2.js +0 -347
- package/dist/alert-CP62p9Ul.js +0 -159
- package/dist/app-shell-DNdZ5ys0.js +0 -840
- package/dist/aspect-ratio-C76l-aoY.js +0 -40
- package/dist/attachment-DdBbQcEB.js +0 -302
- package/dist/avatar-BnlE5jjr.js +0 -100
- package/dist/avatar-group-4rBj99tz.js +0 -47
- package/dist/badge-C6rbwVpu.js +0 -94
- package/dist/breadcrumb-Bf01N4wK.js +0 -218
- package/dist/button-Db9f3Bxn.js +0 -99
- package/dist/button-group-Det_nYor.js +0 -50
- package/dist/calendar-BZ6PP7Ke.js +0 -436
- package/dist/card-CpVu8PyZ.js +0 -102
- package/dist/carousel-BPi-Y5yF.js +0 -498
- package/dist/chart-04i6NZQA.js +0 -968
- package/dist/checkbox-B4Sb1eXj.js +0 -139
- package/dist/checkbox-group-LpGMuq9w.js +0 -108
- package/dist/code-block-CTNiyt0U.js +0 -269
- package/dist/collapsible-F-K36XbF.js +0 -217
- package/dist/color-picker-amz8XfXm.js +0 -504
- package/dist/column-manager-CFtJxQWS.js +0 -585
- package/dist/combobox-C1D5doWM.js +0 -885
- package/dist/command-palette-D1C1GDWC.js +0 -707
- package/dist/container-CjxY6rYv.js +0 -46
- package/dist/context-menu-g3DMZKR3.js +0 -150
- package/dist/currency-field-Dti9JFu0.js +0 -455
- package/dist/date-field-BxEpqAPg.js +0 -290
- package/dist/date-picker-DRk9SZp1.js +0 -308
- package/dist/date-range-picker-6Yz7avTS.js +0 -483
- package/dist/datetime-field-D2f9u6im.js +0 -411
- package/dist/datetime-range-picker-DQNQwr3K.js +0 -1000
- package/dist/description-list-IYLnFgHT.js +0 -232
- package/dist/dialog-yT-x3B9s.js +0 -498
- package/dist/divider-D36Jqo0J.js +0 -33
- package/dist/drawer-B_EgvFeX.js +0 -757
- package/dist/field-BxQFpOXS.js +0 -365
- package/dist/field-group-DcN_hiZN.js +0 -138
- package/dist/filter-bar-BzSOD3ad.js +0 -1335
- package/dist/fullscreen-CF0UN4mv.js +0 -187
- package/dist/grid-CIkG_2IQ.js +0 -25
- package/dist/highlight-0Qw23QPp.js +0 -57
- package/dist/hover-card-DpVzwvDJ.js +0 -214
- package/dist/icon-T9Yt4tnm.js +0 -73
- package/dist/icon-button-CCWkCDMs.js +0 -213
- package/dist/inline-D_IjcJ1n.js +0 -16
- package/dist/inline-message-C4a-A2mw.js +0 -91
- package/dist/kbd-eFSWTKxN.js +0 -100
- package/dist/link-TjvRl2VQ.js +0 -87
- package/dist/list-WsQ6ZzCa.js +0 -91
- package/dist/list-item-DpCwZIrd.js +0 -123
- package/dist/listbox-D0MJcAMm.js +0 -615
- package/dist/loading-overlay-RRsNK1FN.js +0 -208
- package/dist/markdown-IiVoh6yi.js +0 -295
- package/dist/menu-parts-BpQu2s4z.js +0 -813
- package/dist/menubar-rpNcgIrw.js +0 -156
- package/dist/message-Cp0rLCyW.js +0 -430
- package/dist/message-scroller-UZjFpflz.js +0 -214
- package/dist/navigation-menu-parts-Cn-OAadu.js +0 -492
- package/dist/notification-center-CGEEHcRA.js +0 -485
- package/dist/number-field-DXk1TAXA.js +0 -342
- package/dist/page-QP8Zyz8-.js +0 -167
- package/dist/page-header-BP_Wt3eS.js +0 -367
- package/dist/pagination-DWJc521r.js +0 -292
- package/dist/popover-DEp8Bf3e.js +0 -495
- package/dist/progress-indicator-DwvUSFFs.js +0 -269
- package/dist/prompt-composer-DdcU3S3L.js +0 -259
- package/dist/prose-CkeNYS0X.js +0 -91
- package/dist/radio-group-D8csBZ8Z.js +0 -140
- package/dist/rating-rI3b5zII.js +0 -459
- package/dist/result-state-CZsQfdN4.js +0 -126
- package/dist/saved-views-DB2IIdhH.js +0 -446
- package/dist/scroll-area-DQ_ansLu.js +0 -112
- package/dist/section-Be7dX9MC.js +0 -176
- package/dist/segmented-control-C-PzkTtg.js +0 -153
- package/dist/select-BUylPwpb.js +0 -995
- package/dist/side-navigation-BnUKTrtd.js +0 -744
- package/dist/skeleton-2LSpg84Z.js +0 -143
- package/dist/slider-fp7kyg-6.js +0 -256
- package/dist/sparkline-rY7HIFE4.js +0 -131
- package/dist/split-button-p97Bd5wM.js +0 -135
- package/dist/splitter-Bg3UgmbV.js +0 -289
- package/dist/stack-BEFavbRs.js +0 -15
- package/dist/stat-card-BG7uLytP.js +0 -244
- package/dist/status-indicator-BOjpXkU5.js +0 -73
- package/dist/stepper-DQJuRWqR.js +0 -253
- package/dist/switch-aVoc4C2F.js +0 -138
- package/dist/table-of-contents-DfAeYtFJ.js +0 -461
- package/dist/tabs-HWmvOKM4.js +0 -355
- package/dist/tag-DjtW53xN.js +0 -365
- package/dist/tags-input-pbv6x1Pi.js +0 -625
- package/dist/text-field-CbQ6UCAP.js +0 -195
- package/dist/textarea-DJSfhrXH.js +0 -99
- package/dist/time-field-BI9n607q.js +0 -355
- package/dist/time-range-picker-CcV3_45h.js +0 -751
- package/dist/timeline-DH_02ysz.js +0 -421
- package/dist/toast-BTN_F9No.js +0 -468
- package/dist/toggle-CBFhM4Jh.js +0 -64
- package/dist/toggle-group-i7JPO8BM.js +0 -142
- package/dist/toolbar-U-CFEb1c.js +0 -240
- package/dist/tooltip-CgjIROUy.js +0 -410
- package/dist/top-navigation-BjIRQfkK.js +0 -739
- package/dist/tour-BTdt716T.js +0 -799
- package/dist/transfer--UOQVeKE.js +0 -596
- package/dist/tree-C6fYJqT9.js +0 -783
- package/dist/typography-B2iaigEC.js +0 -92
- package/dist/upload-CXDjxuS8.js +0 -613
- package/dist/visually-hidden-CE6u5JLW.js +0 -14
- package/dist/wizard-BxA08vXt.js +0 -815
|
@@ -650,6 +650,124 @@ Excerpt — not a complete module
|
|
|
650
650
|
</DialogContent>;
|
|
651
651
|
```
|
|
652
652
|
|
|
653
|
+
### A dialog that is a form
|
|
654
|
+
|
|
655
|
+
A dialog that edits a record submits with Enter from any field and with the footer’s submit. render makes the panel the form itself, so the header, the body and the footer stay its rows and keep its inset; a form written around them inside DialogContent keeps them too.
|
|
656
|
+
|
|
657
|
+
Example
|
|
658
|
+
|
|
659
|
+
```tsx
|
|
660
|
+
import { useState, type SubmitEvent } from 'react';
|
|
661
|
+
|
|
662
|
+
import { Button } from '@slotted/react/button';
|
|
663
|
+
import {
|
|
664
|
+
Dialog,
|
|
665
|
+
DialogBody,
|
|
666
|
+
DialogClose,
|
|
667
|
+
DialogContent,
|
|
668
|
+
DialogDescription,
|
|
669
|
+
DialogFooter,
|
|
670
|
+
DialogHeader,
|
|
671
|
+
DialogTitle,
|
|
672
|
+
DialogTrigger,
|
|
673
|
+
} from '@slotted/react/dialog';
|
|
674
|
+
import { Field, FieldError, FieldLabel } from '@slotted/react/field';
|
|
675
|
+
import { Inline } from '@slotted/react/inline';
|
|
676
|
+
import { Stack } from '@slotted/react/stack';
|
|
677
|
+
import { TextField } from '@slotted/react/text-field';
|
|
678
|
+
import { Text } from '@slotted/react/typography';
|
|
679
|
+
|
|
680
|
+
function nameError(value: string): string {
|
|
681
|
+
return value.trim() === '' ? 'Enter the contact’s full name.' : '';
|
|
682
|
+
}
|
|
683
|
+
|
|
684
|
+
function emailError(value: string): string {
|
|
685
|
+
if (value.trim() === '') return 'Enter the address the contact reads.';
|
|
686
|
+
if (!/^\S+@\S+\.\S+$/.test(value)) return 'Enter an address like ana@contoso.com.';
|
|
687
|
+
return '';
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
export default function DialogForm() {
|
|
691
|
+
const [open, setOpen] = useState(false);
|
|
692
|
+
const [name, setName] = useState('');
|
|
693
|
+
const [email, setEmail] = useState('');
|
|
694
|
+
const [submitted, setSubmitted] = useState(false);
|
|
695
|
+
const [added, setAdded] = useState<string | null>(null);
|
|
696
|
+
const errors = submitted ? { name: nameError(name), email: emailError(email) } : null;
|
|
697
|
+
|
|
698
|
+
const submit = (event: SubmitEvent<HTMLFormElement>) => {
|
|
699
|
+
event.preventDefault();
|
|
700
|
+
setSubmitted(true);
|
|
701
|
+
if (nameError(name) !== '' || emailError(email) !== '') return;
|
|
702
|
+
setAdded(`${name.trim()} was added to Contoso Foods.`);
|
|
703
|
+
setOpen(false);
|
|
704
|
+
};
|
|
705
|
+
|
|
706
|
+
return (
|
|
707
|
+
<Inline align="center" gap={3}>
|
|
708
|
+
<Dialog
|
|
709
|
+
open={open}
|
|
710
|
+
onOpenChange={(next) => {
|
|
711
|
+
if (next) {
|
|
712
|
+
setName('');
|
|
713
|
+
setEmail('');
|
|
714
|
+
setSubmitted(false);
|
|
715
|
+
}
|
|
716
|
+
setOpen(next);
|
|
717
|
+
}}
|
|
718
|
+
>
|
|
719
|
+
<DialogTrigger render={(props) => <Button {...props}>Add contact</Button>} />
|
|
720
|
+
<DialogContent>
|
|
721
|
+
<DialogHeader>
|
|
722
|
+
<DialogTitle>New contact</DialogTitle>
|
|
723
|
+
<DialogDescription>Contoso Foods, Seattle.</DialogDescription>
|
|
724
|
+
<DialogClose />
|
|
725
|
+
</DialogHeader>
|
|
726
|
+
<DialogBody>
|
|
727
|
+
<form id="new-contact" noValidate onSubmit={submit}>
|
|
728
|
+
<Stack gap={4}>
|
|
729
|
+
<Field required invalid={errors?.name ? true : undefined}>
|
|
730
|
+
<FieldLabel>Full name</FieldLabel>
|
|
731
|
+
<TextField autoComplete="name" value={name} onValueChange={setName} />
|
|
732
|
+
<FieldError live="polite" reserve>
|
|
733
|
+
{errors?.name}
|
|
734
|
+
</FieldError>
|
|
735
|
+
</Field>
|
|
736
|
+
<Field required invalid={errors?.email ? true : undefined}>
|
|
737
|
+
<FieldLabel>Email</FieldLabel>
|
|
738
|
+
<TextField
|
|
739
|
+
autoComplete="email"
|
|
740
|
+
type="email"
|
|
741
|
+
value={email}
|
|
742
|
+
onValueChange={setEmail}
|
|
743
|
+
/>
|
|
744
|
+
<FieldError live="polite" reserve>
|
|
745
|
+
{errors?.email}
|
|
746
|
+
</FieldError>
|
|
747
|
+
</Field>
|
|
748
|
+
</Stack>
|
|
749
|
+
</form>
|
|
750
|
+
</DialogBody>
|
|
751
|
+
<DialogFooter>
|
|
752
|
+
<Button variant="ghost" tone="secondary" onClick={() => setOpen(false)}>
|
|
753
|
+
Cancel
|
|
754
|
+
</Button>
|
|
755
|
+
<Button type="submit" form="new-contact">
|
|
756
|
+
Add contact
|
|
757
|
+
</Button>
|
|
758
|
+
</DialogFooter>
|
|
759
|
+
</DialogContent>
|
|
760
|
+
</Dialog>
|
|
761
|
+
{added === null ? null : (
|
|
762
|
+
<Text role="status" size="sm" tone="muted">
|
|
763
|
+
{added}
|
|
764
|
+
</Text>
|
|
765
|
+
)}
|
|
766
|
+
</Inline>
|
|
767
|
+
);
|
|
768
|
+
}
|
|
769
|
+
```
|
|
770
|
+
|
|
653
771
|
### Deciding once for the application
|
|
654
772
|
|
|
655
773
|
Eight decisions an application takes once instead of eight props on every dialog in a product. Angular Material is the only surveyed library with an equivalent, and a dialog that states one itself still wins.
|
|
@@ -1650,122 +1768,6 @@ export default function DialogDismiss() {
|
|
|
1650
1768
|
}
|
|
1651
1769
|
```
|
|
1652
1770
|
|
|
1653
|
-
### form.tsx
|
|
1654
|
-
|
|
1655
|
-
Example
|
|
1656
|
-
|
|
1657
|
-
```tsx
|
|
1658
|
-
import { useState, type SubmitEvent } from 'react';
|
|
1659
|
-
|
|
1660
|
-
import { Button } from '@slotted/react/button';
|
|
1661
|
-
import {
|
|
1662
|
-
Dialog,
|
|
1663
|
-
DialogBody,
|
|
1664
|
-
DialogClose,
|
|
1665
|
-
DialogContent,
|
|
1666
|
-
DialogDescription,
|
|
1667
|
-
DialogFooter,
|
|
1668
|
-
DialogHeader,
|
|
1669
|
-
DialogTitle,
|
|
1670
|
-
DialogTrigger,
|
|
1671
|
-
} from '@slotted/react/dialog';
|
|
1672
|
-
import { Field, FieldError, FieldLabel } from '@slotted/react/field';
|
|
1673
|
-
import { Inline } from '@slotted/react/inline';
|
|
1674
|
-
import { Stack } from '@slotted/react/stack';
|
|
1675
|
-
import { TextField } from '@slotted/react/text-field';
|
|
1676
|
-
import { Text } from '@slotted/react/typography';
|
|
1677
|
-
|
|
1678
|
-
function nameError(value: string): string {
|
|
1679
|
-
return value.trim() === '' ? 'Enter the contact’s full name.' : '';
|
|
1680
|
-
}
|
|
1681
|
-
|
|
1682
|
-
function emailError(value: string): string {
|
|
1683
|
-
if (value.trim() === '') return 'Enter the address the contact reads.';
|
|
1684
|
-
if (!/^\S+@\S+\.\S+$/.test(value)) return 'Enter an address like ana@contoso.com.';
|
|
1685
|
-
return '';
|
|
1686
|
-
}
|
|
1687
|
-
|
|
1688
|
-
export default function DialogForm() {
|
|
1689
|
-
const [open, setOpen] = useState(false);
|
|
1690
|
-
const [name, setName] = useState('');
|
|
1691
|
-
const [email, setEmail] = useState('');
|
|
1692
|
-
const [submitted, setSubmitted] = useState(false);
|
|
1693
|
-
const [added, setAdded] = useState<string | null>(null);
|
|
1694
|
-
const errors = submitted ? { name: nameError(name), email: emailError(email) } : null;
|
|
1695
|
-
|
|
1696
|
-
const submit = (event: SubmitEvent<HTMLFormElement>) => {
|
|
1697
|
-
event.preventDefault();
|
|
1698
|
-
setSubmitted(true);
|
|
1699
|
-
if (nameError(name) !== '' || emailError(email) !== '') return;
|
|
1700
|
-
setAdded(`${name.trim()} was added to Contoso Foods.`);
|
|
1701
|
-
setOpen(false);
|
|
1702
|
-
};
|
|
1703
|
-
|
|
1704
|
-
return (
|
|
1705
|
-
<Inline align="center" gap={3}>
|
|
1706
|
-
<Dialog
|
|
1707
|
-
open={open}
|
|
1708
|
-
onOpenChange={(next) => {
|
|
1709
|
-
if (next) {
|
|
1710
|
-
setName('');
|
|
1711
|
-
setEmail('');
|
|
1712
|
-
setSubmitted(false);
|
|
1713
|
-
}
|
|
1714
|
-
setOpen(next);
|
|
1715
|
-
}}
|
|
1716
|
-
>
|
|
1717
|
-
<DialogTrigger render={(props) => <Button {...props}>Add contact</Button>} />
|
|
1718
|
-
<DialogContent>
|
|
1719
|
-
<DialogHeader>
|
|
1720
|
-
<DialogTitle>New contact</DialogTitle>
|
|
1721
|
-
<DialogDescription>Contoso Foods, Seattle.</DialogDescription>
|
|
1722
|
-
<DialogClose />
|
|
1723
|
-
</DialogHeader>
|
|
1724
|
-
<DialogBody>
|
|
1725
|
-
<form id="new-contact" noValidate onSubmit={submit}>
|
|
1726
|
-
<Stack gap={4}>
|
|
1727
|
-
<Field required invalid={errors?.name ? true : undefined}>
|
|
1728
|
-
<FieldLabel>Full name</FieldLabel>
|
|
1729
|
-
<TextField autoComplete="name" value={name} onValueChange={setName} />
|
|
1730
|
-
<FieldError live="polite" reserve>
|
|
1731
|
-
{errors?.name}
|
|
1732
|
-
</FieldError>
|
|
1733
|
-
</Field>
|
|
1734
|
-
<Field required invalid={errors?.email ? true : undefined}>
|
|
1735
|
-
<FieldLabel>Email</FieldLabel>
|
|
1736
|
-
<TextField
|
|
1737
|
-
autoComplete="email"
|
|
1738
|
-
type="email"
|
|
1739
|
-
value={email}
|
|
1740
|
-
onValueChange={setEmail}
|
|
1741
|
-
/>
|
|
1742
|
-
<FieldError live="polite" reserve>
|
|
1743
|
-
{errors?.email}
|
|
1744
|
-
</FieldError>
|
|
1745
|
-
</Field>
|
|
1746
|
-
</Stack>
|
|
1747
|
-
</form>
|
|
1748
|
-
</DialogBody>
|
|
1749
|
-
<DialogFooter>
|
|
1750
|
-
<Button variant="ghost" tone="secondary" onClick={() => setOpen(false)}>
|
|
1751
|
-
Cancel
|
|
1752
|
-
</Button>
|
|
1753
|
-
<Button type="submit" form="new-contact">
|
|
1754
|
-
Add contact
|
|
1755
|
-
</Button>
|
|
1756
|
-
</DialogFooter>
|
|
1757
|
-
</DialogContent>
|
|
1758
|
-
</Dialog>
|
|
1759
|
-
{added === null ? null : (
|
|
1760
|
-
<Text role="status" size="sm" tone="muted">
|
|
1761
|
-
{added}
|
|
1762
|
-
</Text>
|
|
1763
|
-
)}
|
|
1764
|
-
</Inline>
|
|
1765
|
-
);
|
|
1766
|
-
}
|
|
1767
|
-
```
|
|
1768
|
-
|
|
1769
1771
|
### full-screen.tsx
|
|
1770
1772
|
|
|
1771
1773
|
Example
|
package/dist/docs/dialog.json
CHANGED
|
@@ -930,6 +930,14 @@
|
|
|
930
930
|
"source": "<DialogContent>\n <div\n style={{\n display: 'grid',\n gap: 'var(--slotted-space-5)',\n paddingBlock: 'var(--slotted-dialog-inset-block)',\n paddingInline: 'var(--slotted-dialog-inset-inline)',\n }}\n >\n <DialogTitle>Rename file</DialogTitle>\n <TextField aria-label=\"Name\" defaultValue=\"report-q3.pdf\" />\n <img alt=\"First page of report-q3.pdf\" src={preview} />\n </div>\n <DialogFooter>\n <Button size=\"sm\">Rename</Button>\n </DialogFooter>\n</DialogContent>;\n",
|
|
931
931
|
"verdict": "excerpt"
|
|
932
932
|
},
|
|
933
|
+
{
|
|
934
|
+
"id": "form",
|
|
935
|
+
"title": "A dialog that is a form",
|
|
936
|
+
"note": "A dialog that edits a record submits with Enter from any field and with the footer’s submit. render makes the panel the form itself, so the header, the body and the footer stay its rows and keep its inset; a form written around them inside DialogContent keeps them too.",
|
|
937
|
+
"language": "tsx",
|
|
938
|
+
"source": "import { useState, type SubmitEvent } from 'react';\n\nimport { Button } from '@slotted/react/button';\nimport {\n Dialog,\n DialogBody,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from '@slotted/react/dialog';\nimport { Field, FieldError, FieldLabel } from '@slotted/react/field';\nimport { Inline } from '@slotted/react/inline';\nimport { Stack } from '@slotted/react/stack';\nimport { TextField } from '@slotted/react/text-field';\nimport { Text } from '@slotted/react/typography';\n\nfunction nameError(value: string): string {\n return value.trim() === '' ? 'Enter the contact’s full name.' : '';\n}\n\nfunction emailError(value: string): string {\n if (value.trim() === '') return 'Enter the address the contact reads.';\n if (!/^\\S+@\\S+\\.\\S+$/.test(value)) return 'Enter an address like ana@contoso.com.';\n return '';\n}\n\nexport default function DialogForm() {\n const [open, setOpen] = useState(false);\n const [name, setName] = useState('');\n const [email, setEmail] = useState('');\n const [submitted, setSubmitted] = useState(false);\n const [added, setAdded] = useState<string | null>(null);\n const errors = submitted ? { name: nameError(name), email: emailError(email) } : null;\n\n const submit = (event: SubmitEvent<HTMLFormElement>) => {\n event.preventDefault();\n setSubmitted(true);\n if (nameError(name) !== '' || emailError(email) !== '') return;\n setAdded(`${name.trim()} was added to Contoso Foods.`);\n setOpen(false);\n };\n\n return (\n <Inline align=\"center\" gap={3}>\n <Dialog\n open={open}\n onOpenChange={(next) => {\n if (next) {\n setName('');\n setEmail('');\n setSubmitted(false);\n }\n setOpen(next);\n }}\n >\n <DialogTrigger render={(props) => <Button {...props}>Add contact</Button>} />\n <DialogContent>\n <DialogHeader>\n <DialogTitle>New contact</DialogTitle>\n <DialogDescription>Contoso Foods, Seattle.</DialogDescription>\n <DialogClose />\n </DialogHeader>\n <DialogBody>\n <form id=\"new-contact\" noValidate onSubmit={submit}>\n <Stack gap={4}>\n <Field required invalid={errors?.name ? true : undefined}>\n <FieldLabel>Full name</FieldLabel>\n <TextField autoComplete=\"name\" value={name} onValueChange={setName} />\n <FieldError live=\"polite\" reserve>\n {errors?.name}\n </FieldError>\n </Field>\n <Field required invalid={errors?.email ? true : undefined}>\n <FieldLabel>Email</FieldLabel>\n <TextField\n autoComplete=\"email\"\n type=\"email\"\n value={email}\n onValueChange={setEmail}\n />\n <FieldError live=\"polite\" reserve>\n {errors?.email}\n </FieldError>\n </Field>\n </Stack>\n </form>\n </DialogBody>\n <DialogFooter>\n <Button variant=\"ghost\" tone=\"secondary\" onClick={() => setOpen(false)}>\n Cancel\n </Button>\n <Button type=\"submit\" form=\"new-contact\">\n Add contact\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n {added === null ? null : (\n <Text role=\"status\" size=\"sm\" tone=\"muted\">\n {added}\n </Text>\n )}\n </Inline>\n );\n}\n",
|
|
939
|
+
"verdict": "example"
|
|
940
|
+
},
|
|
933
941
|
{
|
|
934
942
|
"id": "defaults",
|
|
935
943
|
"title": "Deciding once for the application",
|
|
@@ -1074,14 +1082,6 @@
|
|
|
1074
1082
|
"source": "import { useState } from 'react';\n\nimport { Button } from '@slotted/react/button';\nimport {\n Dialog,\n DialogBody,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from '@slotted/react/dialog';\nimport { Text } from '@slotted/react/typography';\n\nexport default function DialogDismiss() {\n const [open, setOpen] = useState(false);\n\n return (\n <Dialog open={open} onOpenChange={setOpen} escape=\"none\" outsidePress=\"none\">\n <DialogTrigger render={(props) => <Button {...props}>Import products</Button>} />\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Import 1,240 products</DialogTitle>\n <DialogDescription>\n From spring-catalogue.csv into the Northwind price list.\n </DialogDescription>\n </DialogHeader>\n <DialogBody>\n <Text size=\"sm\">\n 38 rows update existing products and 1,202 add new ones. Escape and a press outside the\n panel leave this dialog open; choose one of the actions.\n </Text>\n </DialogBody>\n <DialogFooter>\n <Button variant=\"ghost\" tone=\"secondary\" onClick={() => setOpen(false)}>\n Cancel import\n </Button>\n <Button onClick={() => setOpen(false)}>Start import</Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n",
|
|
1075
1083
|
"verdict": "example"
|
|
1076
1084
|
},
|
|
1077
|
-
{
|
|
1078
|
-
"id": "form",
|
|
1079
|
-
"title": "form.tsx",
|
|
1080
|
-
"note": null,
|
|
1081
|
-
"language": "tsx",
|
|
1082
|
-
"source": "import { useState, type SubmitEvent } from 'react';\n\nimport { Button } from '@slotted/react/button';\nimport {\n Dialog,\n DialogBody,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from '@slotted/react/dialog';\nimport { Field, FieldError, FieldLabel } from '@slotted/react/field';\nimport { Inline } from '@slotted/react/inline';\nimport { Stack } from '@slotted/react/stack';\nimport { TextField } from '@slotted/react/text-field';\nimport { Text } from '@slotted/react/typography';\n\nfunction nameError(value: string): string {\n return value.trim() === '' ? 'Enter the contact’s full name.' : '';\n}\n\nfunction emailError(value: string): string {\n if (value.trim() === '') return 'Enter the address the contact reads.';\n if (!/^\\S+@\\S+\\.\\S+$/.test(value)) return 'Enter an address like ana@contoso.com.';\n return '';\n}\n\nexport default function DialogForm() {\n const [open, setOpen] = useState(false);\n const [name, setName] = useState('');\n const [email, setEmail] = useState('');\n const [submitted, setSubmitted] = useState(false);\n const [added, setAdded] = useState<string | null>(null);\n const errors = submitted ? { name: nameError(name), email: emailError(email) } : null;\n\n const submit = (event: SubmitEvent<HTMLFormElement>) => {\n event.preventDefault();\n setSubmitted(true);\n if (nameError(name) !== '' || emailError(email) !== '') return;\n setAdded(`${name.trim()} was added to Contoso Foods.`);\n setOpen(false);\n };\n\n return (\n <Inline align=\"center\" gap={3}>\n <Dialog\n open={open}\n onOpenChange={(next) => {\n if (next) {\n setName('');\n setEmail('');\n setSubmitted(false);\n }\n setOpen(next);\n }}\n >\n <DialogTrigger render={(props) => <Button {...props}>Add contact</Button>} />\n <DialogContent>\n <DialogHeader>\n <DialogTitle>New contact</DialogTitle>\n <DialogDescription>Contoso Foods, Seattle.</DialogDescription>\n <DialogClose />\n </DialogHeader>\n <DialogBody>\n <form id=\"new-contact\" noValidate onSubmit={submit}>\n <Stack gap={4}>\n <Field required invalid={errors?.name ? true : undefined}>\n <FieldLabel>Full name</FieldLabel>\n <TextField autoComplete=\"name\" value={name} onValueChange={setName} />\n <FieldError live=\"polite\" reserve>\n {errors?.name}\n </FieldError>\n </Field>\n <Field required invalid={errors?.email ? true : undefined}>\n <FieldLabel>Email</FieldLabel>\n <TextField\n autoComplete=\"email\"\n type=\"email\"\n value={email}\n onValueChange={setEmail}\n />\n <FieldError live=\"polite\" reserve>\n {errors?.email}\n </FieldError>\n </Field>\n </Stack>\n </form>\n </DialogBody>\n <DialogFooter>\n <Button variant=\"ghost\" tone=\"secondary\" onClick={() => setOpen(false)}>\n Cancel\n </Button>\n <Button type=\"submit\" form=\"new-contact\">\n Add contact\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n {added === null ? null : (\n <Text role=\"status\" size=\"sm\" tone=\"muted\">\n {added}\n </Text>\n )}\n </Inline>\n );\n}\n",
|
|
1083
|
-
"verdict": "example"
|
|
1084
|
-
},
|
|
1085
1085
|
{
|
|
1086
1086
|
"id": "full-screen",
|
|
1087
1087
|
"title": "full-screen.tsx",
|