@spinjs/components 0.0.0-stage → 0.1.0-preview.2
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/LICENSE +21 -0
- package/README.md +61 -2
- package/dist/angle-slider/angle-slider.events.d.ts +30 -0
- package/dist/angle-slider/angle-slider.events.js +1 -0
- package/dist/angle-slider/angle-slider.machine.d.ts +9 -0
- package/dist/angle-slider/angle-slider.machine.js +56 -0
- package/dist/angle-slider/angle-slider.presentation.d.ts +194 -0
- package/dist/angle-slider/angle-slider.presentation.js +277 -0
- package/dist/angle-slider/angle-slider.state.d.ts +38 -0
- package/dist/angle-slider/angle-slider.state.js +71 -0
- package/dist/angle-slider/angle-slider.transitions.d.ts +11 -0
- package/dist/angle-slider/angle-slider.transitions.js +18 -0
- package/dist/angle-slider/examples/basic.html +42 -0
- package/dist/angle-slider/examples/knob.html +34 -0
- package/dist/angle-slider/examples/labeled.html +63 -0
- package/dist/angle-slider/examples/marks.html +42 -0
- package/dist/async-list/async-list.events.d.ts +23 -0
- package/dist/async-list/async-list.events.js +1 -0
- package/dist/async-list/async-list.machine.d.ts +5 -0
- package/dist/async-list/async-list.machine.js +96 -0
- package/dist/async-list/async-list.presentation.d.ts +294 -0
- package/dist/async-list/async-list.presentation.js +380 -0
- package/dist/async-list/async-list.state.d.ts +27 -0
- package/dist/async-list/async-list.state.js +31 -0
- package/dist/async-list/async-list.transitions.d.ts +16 -0
- package/dist/async-list/async-list.transitions.js +17 -0
- package/dist/async-list/examples/basic.html +88 -0
- package/dist/avatar/avatar.events.d.ts +18 -0
- package/dist/avatar/avatar.events.js +1 -0
- package/dist/avatar/avatar.machine.d.ts +5 -0
- package/dist/avatar/avatar.machine.js +47 -0
- package/dist/avatar/avatar.presentation.d.ts +75 -0
- package/dist/avatar/avatar.presentation.js +68 -0
- package/dist/avatar/avatar.state.d.ts +28 -0
- package/dist/avatar/avatar.state.js +20 -0
- package/dist/avatar/avatar.transitions.d.ts +7 -0
- package/dist/avatar/avatar.transitions.js +5 -0
- package/dist/avatar/examples/badge.html +24 -0
- package/dist/avatar/examples/badgeminimal.html +16 -0
- package/dist/avatar/examples/basic.html +24 -0
- package/dist/avatar/examples/count.html +29 -0
- package/dist/avatar/examples/fallback.html +24 -0
- package/dist/avatar/examples/group.html +28 -0
- package/dist/avatar/examples/icon.html +15 -0
- package/dist/avatar/examples/multiples.html +48 -0
- package/dist/avatar/examples/pills.html +58 -0
- package/dist/avatar/examples/pillsolid.html +21 -0
- package/dist/avatar/examples/rounded.html +13 -0
- package/dist/avatar/examples/status.html +24 -0
- package/dist/avatar/examples/statusminimal.html +16 -0
- package/dist/avatar/examples/trusted.html +33 -0
- package/dist/avatar/examples/verification.html +18 -0
- package/dist/carousel/carousel.events.d.ts +50 -0
- package/dist/carousel/carousel.events.js +1 -0
- package/dist/carousel/carousel.machine.d.ts +6 -0
- package/dist/carousel/carousel.machine.js +70 -0
- package/dist/carousel/carousel.presentation.d.ts +379 -0
- package/dist/carousel/carousel.presentation.js +554 -0
- package/dist/carousel/carousel.state.d.ts +61 -0
- package/dist/carousel/carousel.state.js +93 -0
- package/dist/carousel/carousel.transitions.d.ts +20 -0
- package/dist/carousel/carousel.transitions.js +49 -0
- package/dist/carousel/examples/autoplay.html +69 -0
- package/dist/carousel/examples/basic.html +56 -0
- package/dist/carousel/examples/cards.html +71 -0
- package/dist/carousel/examples/hero.html +54 -0
- package/dist/carousel/examples/infinite.html +68 -0
- package/dist/carousel/examples/minimal.html +47 -0
- package/dist/carousel/examples/testimonials.html +78 -0
- package/dist/carousel/examples/thumbnails.html +67 -0
- package/dist/carousel/examples/vertical.html +67 -0
- package/dist/cascade-select/cascade.events.d.ts +42 -0
- package/dist/cascade-select/cascade.events.js +1 -0
- package/dist/cascade-select/cascade.machine.d.ts +7 -0
- package/dist/cascade-select/cascade.machine.js +118 -0
- package/dist/cascade-select/cascade.presentation.d.ts +415 -0
- package/dist/cascade-select/cascade.presentation.js +771 -0
- package/dist/cascade-select/cascade.state.d.ts +58 -0
- package/dist/cascade-select/cascade.state.js +97 -0
- package/dist/cascade-select/cascade.transitions.d.ts +21 -0
- package/dist/cascade-select/cascade.transitions.js +54 -0
- package/dist/cascade-select/examples/basic.html +77 -0
- package/dist/color-picker/color-picker.events.d.ts +83 -0
- package/dist/color-picker/color-picker.events.js +1 -0
- package/dist/color-picker/color-picker.machine.d.ts +5 -0
- package/dist/color-picker/color-picker.machine.js +130 -0
- package/dist/color-picker/color-picker.presentation.d.ts +402 -0
- package/dist/color-picker/color-picker.presentation.js +761 -0
- package/dist/color-picker/color-picker.state.d.ts +41 -0
- package/dist/color-picker/color-picker.state.js +71 -0
- package/dist/color-picker/color-picker.transitions.d.ts +21 -0
- package/dist/color-picker/color-picker.transitions.js +99 -0
- package/dist/color-picker/examples/basic.html +106 -0
- package/dist/color-picker/examples/hue-wheel.html +57 -0
- package/dist/color-picker/examples/inline.html +61 -0
- package/dist/color-picker/examples/with-presets.html +49 -0
- package/dist/combobox/combobox.events.d.ts +61 -0
- package/dist/combobox/combobox.events.js +1 -0
- package/dist/combobox/combobox.machine.d.ts +7 -0
- package/dist/combobox/combobox.machine.js +234 -0
- package/dist/combobox/combobox.presentation.d.ts +433 -0
- package/dist/combobox/combobox.presentation.js +746 -0
- package/dist/combobox/combobox.state.d.ts +80 -0
- package/dist/combobox/combobox.state.js +71 -0
- package/dist/combobox/combobox.transitions.d.ts +28 -0
- package/dist/combobox/combobox.transitions.js +91 -0
- package/dist/combobox/examples/basic.html +61 -0
- package/dist/combobox/examples/directory.html +71 -0
- package/dist/combobox/examples/grouping.html +36 -0
- package/dist/combobox/examples/multiple.html +37 -0
- package/dist/controller.d.ts +52 -0
- package/dist/controller.js +90 -0
- package/dist/date-input/date-input.events.d.ts +37 -0
- package/dist/date-input/date-input.events.js +1 -0
- package/dist/date-input/date-input.machine.d.ts +6 -0
- package/dist/date-input/date-input.machine.js +61 -0
- package/dist/date-input/date-input.presentation.d.ts +133 -0
- package/dist/date-input/date-input.presentation.js +328 -0
- package/dist/date-input/date-input.state.d.ts +77 -0
- package/dist/date-input/date-input.state.js +260 -0
- package/dist/date-input/date-input.transitions.d.ts +22 -0
- package/dist/date-input/date-input.transitions.js +166 -0
- package/dist/date-input/examples/basic.html +18 -0
- package/dist/date-picker/date-picker.events.d.ts +42 -0
- package/dist/date-picker/date-picker.events.js +1 -0
- package/dist/date-picker/date-picker.machine.d.ts +6 -0
- package/dist/date-picker/date-picker.machine.js +102 -0
- package/dist/date-picker/date-picker.presentation.d.ts +256 -0
- package/dist/date-picker/date-picker.presentation.js +549 -0
- package/dist/date-picker/date-picker.state.d.ts +66 -0
- package/dist/date-picker/date-picker.state.js +177 -0
- package/dist/date-picker/date-picker.transitions.d.ts +23 -0
- package/dist/date-picker/date-picker.transitions.js +94 -0
- package/dist/date-picker/examples/appointment.html +49 -0
- package/dist/date-picker/examples/basic.html +6 -0
- package/dist/date-picker/examples/multiple.html +6 -0
- package/dist/date-picker/examples/pricing.html +6 -0
- package/dist/date-picker/examples/range.html +6 -0
- package/dist/date-picker/examples/unavailable.html +6 -0
- package/dist/editable/editable.events.d.ts +29 -0
- package/dist/editable/editable.events.js +1 -0
- package/dist/editable/editable.machine.d.ts +5 -0
- package/dist/editable/editable.machine.js +82 -0
- package/dist/editable/editable.presentation.d.ts +278 -0
- package/dist/editable/editable.presentation.js +388 -0
- package/dist/editable/editable.state.d.ts +54 -0
- package/dist/editable/editable.state.js +32 -0
- package/dist/editable/editable.transitions.d.ts +11 -0
- package/dist/editable/editable.transitions.js +9 -0
- package/dist/editable/examples/basic.html +43 -0
- package/dist/editable/examples/doubleclick.html +19 -0
- package/dist/editable/examples/inline-edit.html +13 -0
- package/dist/editable/examples/profile-field.html +20 -0
- package/dist/editable/examples/resize.html +19 -0
- package/dist/editable/examples/task-item.html +19 -0
- package/dist/editable/examples/title-editor.html +13 -0
- package/dist/editable/examples/with-controls.html +20 -0
- package/dist/file-upload/examples/avatar.html +34 -0
- package/dist/file-upload/examples/basic.html +34 -0
- package/dist/file-upload/examples/directory.html +34 -0
- package/dist/file-upload/examples/dragdrop.html +31 -0
- package/dist/file-upload/examples/files.html +39 -0
- package/dist/file-upload/examples/images.html +40 -0
- package/dist/file-upload/examples/paste.html +30 -0
- package/dist/file-upload/examples/table.html +39 -0
- package/dist/file-upload/file-upload.events.d.ts +27 -0
- package/dist/file-upload/file-upload.events.js +1 -0
- package/dist/file-upload/file-upload.machine.d.ts +6 -0
- package/dist/file-upload/file-upload.machine.js +59 -0
- package/dist/file-upload/file-upload.presentation.d.ts +182 -0
- package/dist/file-upload/file-upload.presentation.js +256 -0
- package/dist/file-upload/file-upload.state.d.ts +52 -0
- package/dist/file-upload/file-upload.state.js +72 -0
- package/dist/file-upload/file-upload.transitions.d.ts +11 -0
- package/dist/file-upload/file-upload.transitions.js +32 -0
- package/dist/floating-panel/examples/basic.html +42 -0
- package/dist/floating-panel/examples/calculator.html +56 -0
- package/dist/floating-panel/examples/chat.html +45 -0
- package/dist/floating-panel/examples/media-player.html +54 -0
- package/dist/floating-panel/examples/notes.html +60 -0
- package/dist/floating-panel/examples/settings.html +73 -0
- package/dist/floating-panel/examples/task.html +79 -0
- package/dist/floating-panel/examples/video-call.html +47 -0
- package/dist/floating-panel/floating-panel.events.d.ts +45 -0
- package/dist/floating-panel/floating-panel.events.js +1 -0
- package/dist/floating-panel/floating-panel.machine.d.ts +6 -0
- package/dist/floating-panel/floating-panel.machine.js +70 -0
- package/dist/floating-panel/floating-panel.presentation.d.ts +239 -0
- package/dist/floating-panel/floating-panel.presentation.js +271 -0
- package/dist/floating-panel/floating-panel.state.d.ts +67 -0
- package/dist/floating-panel/floating-panel.state.js +76 -0
- package/dist/floating-panel/floating-panel.transitions.d.ts +22 -0
- package/dist/floating-panel/floating-panel.transitions.js +114 -0
- package/dist/hover-card/examples/basic.html +19 -0
- package/dist/hover-card/examples/controlled.html +32 -0
- package/dist/hover-card/examples/custom-positioning.html +29 -0
- package/dist/hover-card/examples/link.html +10 -0
- package/dist/hover-card/examples/product.html +33 -0
- package/dist/hover-card/examples/user.html +38 -0
- package/dist/hover-card/examples/with-arrow.html +29 -0
- package/dist/hover-card/hover-card.controller-def.d.ts +50 -0
- package/dist/hover-card/hover-card.controller-def.js +134 -0
- package/dist/image-cropper/crop-geometry.d.ts +133 -0
- package/dist/image-cropper/crop-geometry.js +453 -0
- package/dist/image-cropper/examples/basic.html +44 -0
- package/dist/image-cropper/examples/circle.html +44 -0
- package/dist/image-cropper/image-cropper.events.d.ts +108 -0
- package/dist/image-cropper/image-cropper.events.js +1 -0
- package/dist/image-cropper/image-cropper.machine.d.ts +5 -0
- package/dist/image-cropper/image-cropper.machine.js +231 -0
- package/dist/image-cropper/image-cropper.presentation.d.ts +295 -0
- package/dist/image-cropper/image-cropper.presentation.js +536 -0
- package/dist/image-cropper/image-cropper.state.d.ts +94 -0
- package/dist/image-cropper/image-cropper.state.js +134 -0
- package/dist/image-cropper/image-cropper.transitions.d.ts +13 -0
- package/dist/image-cropper/image-cropper.transitions.js +11 -0
- package/dist/index.d.ts +66 -0
- package/dist/index.js +279 -0
- package/dist/listbox/examples/basic.html +50 -0
- package/dist/listbox/examples/controlled.html +54 -0
- package/dist/listbox/examples/countries.html +61 -0
- package/dist/listbox/examples/grouped.html +58 -0
- package/dist/listbox/examples/icons.html +56 -0
- package/dist/listbox/examples/multiple.html +56 -0
- package/dist/listbox/examples/priority.html +50 -0
- package/dist/listbox/examples/settings.html +64 -0
- package/dist/listbox/listbox.events.d.ts +42 -0
- package/dist/listbox/listbox.events.js +1 -0
- package/dist/listbox/listbox.machine.d.ts +6 -0
- package/dist/listbox/listbox.machine.js +51 -0
- package/dist/listbox/listbox.presentation.d.ts +294 -0
- package/dist/listbox/listbox.presentation.js +493 -0
- package/dist/listbox/listbox.state.d.ts +55 -0
- package/dist/listbox/listbox.state.js +59 -0
- package/dist/listbox/listbox.transitions.d.ts +20 -0
- package/dist/listbox/listbox.transitions.js +73 -0
- package/dist/menu/examples/basic.html +75 -0
- package/dist/menu/examples/context.html +74 -0
- package/dist/menu/examples/groups.html +88 -0
- package/dist/menu/examples/icons.html +80 -0
- package/dist/menu/examples/nested.html +83 -0
- package/dist/menu/examples/user.html +87 -0
- package/dist/menu/menu.events.d.ts +42 -0
- package/dist/menu/menu.events.js +1 -0
- package/dist/menu/menu.machine.d.ts +6 -0
- package/dist/menu/menu.machine.js +148 -0
- package/dist/menu/menu.presentation.d.ts +252 -0
- package/dist/menu/menu.presentation.js +709 -0
- package/dist/menu/menu.state.d.ts +54 -0
- package/dist/menu/menu.state.js +55 -0
- package/dist/mode-picker/examples/basic.html +17 -0
- package/dist/mode-picker/examples/minimal.html +17 -0
- package/dist/mode-picker/examples/pill.html +17 -0
- package/dist/mode-picker/mode-picker.events.d.ts +20 -0
- package/dist/mode-picker/mode-picker.events.js +1 -0
- package/dist/mode-picker/mode-picker.machine.d.ts +5 -0
- package/dist/mode-picker/mode-picker.machine.js +29 -0
- package/dist/mode-picker/mode-picker.presentation.d.ts +129 -0
- package/dist/mode-picker/mode-picker.presentation.js +175 -0
- package/dist/mode-picker/mode-picker.state.d.ts +27 -0
- package/dist/mode-picker/mode-picker.state.js +56 -0
- package/dist/mode-picker/mode-picker.transitions.d.ts +11 -0
- package/dist/mode-picker/mode-picker.transitions.js +32 -0
- package/dist/navigation-menu/examples/basic.html +72 -0
- package/dist/navigation-menu/examples/grouped.html +91 -0
- package/dist/navigation-menu/examples/minimal.html +49 -0
- package/dist/navigation-menu/navigation-menu.events.d.ts +20 -0
- package/dist/navigation-menu/navigation-menu.events.js +1 -0
- package/dist/navigation-menu/navigation-menu.machine.d.ts +6 -0
- package/dist/navigation-menu/navigation-menu.machine.js +51 -0
- package/dist/navigation-menu/navigation-menu.presentation.d.ts +132 -0
- package/dist/navigation-menu/navigation-menu.presentation.js +151 -0
- package/dist/navigation-menu/navigation-menu.state.d.ts +33 -0
- package/dist/navigation-menu/navigation-menu.state.js +49 -0
- package/dist/navigation-menu/navigation-menu.transitions.d.ts +11 -0
- package/dist/navigation-menu/navigation-menu.transitions.js +32 -0
- package/dist/number-input/examples/basic.html +49 -0
- package/dist/number-input/examples/currency.html +33 -0
- package/dist/number-input/examples/decimal.html +33 -0
- package/dist/number-input/examples/limits.html +42 -0
- package/dist/number-input/examples/percentage.html +38 -0
- package/dist/number-input/examples/quantity.html +35 -0
- package/dist/number-input/examples/scrubber.html +46 -0
- package/dist/number-input/examples/wheel.html +42 -0
- package/dist/number-input/number-input.events.d.ts +66 -0
- package/dist/number-input/number-input.events.js +1 -0
- package/dist/number-input/number-input.machine.d.ts +5 -0
- package/dist/number-input/number-input.machine.js +132 -0
- package/dist/number-input/number-input.presentation.d.ts +292 -0
- package/dist/number-input/number-input.presentation.js +449 -0
- package/dist/number-input/number-input.state.d.ts +71 -0
- package/dist/number-input/number-input.state.js +86 -0
- package/dist/number-input/number-input.transitions.d.ts +17 -0
- package/dist/number-input/number-input.transitions.js +40 -0
- package/dist/pagination/examples/basic.html +39 -0
- package/dist/pagination/examples/dropdown.html +37 -0
- package/dist/pagination/examples/info.html +41 -0
- package/dist/pagination/examples/jump.html +38 -0
- package/dist/pagination/examples/numbered.html +31 -0
- package/dist/pagination/examples/pagesize.html +46 -0
- package/dist/pagination/pagination.events.d.ts +36 -0
- package/dist/pagination/pagination.events.js +1 -0
- package/dist/pagination/pagination.machine.d.ts +6 -0
- package/dist/pagination/pagination.machine.js +45 -0
- package/dist/pagination/pagination.presentation.d.ts +161 -0
- package/dist/pagination/pagination.presentation.js +162 -0
- package/dist/pagination/pagination.state.d.ts +44 -0
- package/dist/pagination/pagination.state.js +115 -0
- package/dist/pagination/pagination.transitions.d.ts +17 -0
- package/dist/pagination/pagination.transitions.js +30 -0
- package/dist/pin-input/examples/basic.html +23 -0
- package/dist/pin-input/examples/field.html +25 -0
- package/dist/pin-input/examples/masked.html +23 -0
- package/dist/pin-input/examples/placeholder.html +24 -0
- package/dist/pin-input/examples/twofactor.html +25 -0
- package/dist/pin-input/examples/verification.html +32 -0
- package/dist/pin-input/pin-input.events.d.ts +48 -0
- package/dist/pin-input/pin-input.events.js +1 -0
- package/dist/pin-input/pin-input.machine.d.ts +5 -0
- package/dist/pin-input/pin-input.machine.js +99 -0
- package/dist/pin-input/pin-input.presentation.d.ts +204 -0
- package/dist/pin-input/pin-input.presentation.js +392 -0
- package/dist/pin-input/pin-input.state.d.ts +67 -0
- package/dist/pin-input/pin-input.state.js +63 -0
- package/dist/pin-input/pin-input.transitions.d.ts +10 -0
- package/dist/pin-input/pin-input.transitions.js +22 -0
- package/dist/popover/examples/basic.html +15 -0
- package/dist/popover/examples/feedback.html +17 -0
- package/dist/popover/examples/notifications.html +21 -0
- package/dist/popover/examples/settings.html +39 -0
- package/dist/popover/examples/share.html +18 -0
- package/dist/popover/examples/user.html +43 -0
- package/dist/popover/popover.controller-def.d.ts +39 -0
- package/dist/popover/popover.controller-def.js +74 -0
- package/dist/rating-group/examples/basic.html +39 -0
- package/dist/rating-group/examples/movie.html +45 -0
- package/dist/rating-group/examples/product-review.html +52 -0
- package/dist/rating-group/examples/service-evaluation.html +31 -0
- package/dist/rating-group/rating-group.events.d.ts +38 -0
- package/dist/rating-group/rating-group.events.js +1 -0
- package/dist/rating-group/rating-group.machine.d.ts +6 -0
- package/dist/rating-group/rating-group.machine.js +70 -0
- package/dist/rating-group/rating-group.presentation.d.ts +144 -0
- package/dist/rating-group/rating-group.presentation.js +208 -0
- package/dist/rating-group/rating-group.state.d.ts +36 -0
- package/dist/rating-group/rating-group.state.js +41 -0
- package/dist/rating-group/rating-group.transitions.d.ts +16 -0
- package/dist/rating-group/rating-group.transitions.js +15 -0
- package/dist/react/react.d.ts +29 -0
- package/dist/react/react.js +8 -0
- package/dist/select/examples/basic.html +72 -0
- package/dist/select/examples/category.html +67 -0
- package/dist/select/examples/country.html +65 -0
- package/dist/select/examples/language.html +19 -0
- package/dist/select/examples/multiple.html +20 -0
- package/dist/select/examples/profile.html +73 -0
- package/dist/select/examples/theme.html +11 -0
- package/dist/select/examples/with-overlapping-label.html +57 -0
- package/dist/select/select.events.d.ts +59 -0
- package/dist/select/select.events.js +1 -0
- package/dist/select/select.machine.d.ts +6 -0
- package/dist/select/select.machine.js +203 -0
- package/dist/select/select.presentation.d.ts +358 -0
- package/dist/select/select.presentation.js +509 -0
- package/dist/select/select.shared.d.ts +8 -0
- package/dist/select/select.shared.js +13 -0
- package/dist/select/select.state.d.ts +51 -0
- package/dist/select/select.state.js +69 -0
- package/dist/select/select.transitions.d.ts +15 -0
- package/dist/select/select.transitions.js +27 -0
- package/dist/shared/keyboard.d.ts +29 -0
- package/dist/shared/keyboard.js +13 -0
- package/dist/signature-pad/examples/basic.html +29 -0
- package/dist/signature-pad/examples/contract.html +36 -0
- package/dist/signature-pad/examples/receipt.html +40 -0
- package/dist/signature-pad/examples/with-preview.html +40 -0
- package/dist/signature-pad/signature-pad.events.d.ts +26 -0
- package/dist/signature-pad/signature-pad.events.js +1 -0
- package/dist/signature-pad/signature-pad.machine.d.ts +7 -0
- package/dist/signature-pad/signature-pad.machine.js +44 -0
- package/dist/signature-pad/signature-pad.presentation.d.ts +184 -0
- package/dist/signature-pad/signature-pad.presentation.js +236 -0
- package/dist/signature-pad/signature-pad.state.d.ts +40 -0
- package/dist/signature-pad/signature-pad.state.js +94 -0
- package/dist/signature-pad/signature-pad.transitions.d.ts +12 -0
- package/dist/signature-pad/signature-pad.transitions.js +40 -0
- package/dist/slider/examples/basic.html +32 -0
- package/dist/slider/examples/equalizer.html +119 -0
- package/dist/slider/examples/fractional.html +7 -0
- package/dist/slider/examples/marks.html +42 -0
- package/dist/slider/examples/range.html +31 -0
- package/dist/slider/examples/stepped.html +7 -0
- package/dist/slider/examples/ticks.html +72 -0
- package/dist/slider/examples/vertical.html +30 -0
- package/dist/slider/slider.events.d.ts +50 -0
- package/dist/slider/slider.events.js +1 -0
- package/dist/slider/slider.machine.d.ts +5 -0
- package/dist/slider/slider.machine.js +86 -0
- package/dist/slider/slider.presentation.d.ts +252 -0
- package/dist/slider/slider.presentation.js +322 -0
- package/dist/slider/slider.state.d.ts +72 -0
- package/dist/slider/slider.state.js +91 -0
- package/dist/slider/slider.transitions.d.ts +17 -0
- package/dist/slider/slider.transitions.js +62 -0
- package/dist/solid/solid.d.ts +36 -0
- package/dist/solid/solid.js +10 -0
- package/dist/spin-element.d.ts +13 -0
- package/dist/spin-element.js +38 -0
- package/dist/splitter/examples/basic.html +22 -0
- package/dist/splitter/examples/nested.html +41 -0
- package/dist/splitter/examples/threepanels.html +23 -0
- package/dist/splitter/examples/vertical.html +23 -0
- package/dist/splitter/splitter.events.d.ts +52 -0
- package/dist/splitter/splitter.events.js +1 -0
- package/dist/splitter/splitter.machine.d.ts +6 -0
- package/dist/splitter/splitter.machine.js +78 -0
- package/dist/splitter/splitter.presentation.d.ts +204 -0
- package/dist/splitter/splitter.presentation.js +443 -0
- package/dist/splitter/splitter.state.d.ts +48 -0
- package/dist/splitter/splitter.state.js +225 -0
- package/dist/splitter/splitter.transitions.d.ts +20 -0
- package/dist/splitter/splitter.transitions.js +132 -0
- package/dist/steps/examples/basic.html +57 -0
- package/dist/steps/examples/checkmarks.html +32 -0
- package/dist/steps/examples/content.html +45 -0
- package/dist/steps/examples/descriptions.html +26 -0
- package/dist/steps/examples/icons.html +26 -0
- package/dist/steps/examples/lines.html +26 -0
- package/dist/steps/examples/navigation.html +41 -0
- package/dist/steps/examples/onboarding.html +32 -0
- package/dist/steps/examples/progress.html +47 -0
- package/dist/steps/examples/segmented.html +40 -0
- package/dist/steps/examples/vertical.html +58 -0
- package/dist/steps/examples/verticallabels.html +27 -0
- package/dist/steps/examples/verticalnavigation.html +36 -0
- package/dist/steps/steps.events.d.ts +27 -0
- package/dist/steps/steps.events.js +1 -0
- package/dist/steps/steps.machine.d.ts +6 -0
- package/dist/steps/steps.machine.js +36 -0
- package/dist/steps/steps.presentation.d.ts +177 -0
- package/dist/steps/steps.presentation.js +248 -0
- package/dist/steps/steps.state.d.ts +39 -0
- package/dist/steps/steps.state.js +47 -0
- package/dist/steps/steps.transitions.d.ts +15 -0
- package/dist/steps/steps.transitions.js +39 -0
- package/dist/tabs/examples/basic.html +41 -0
- package/dist/tabs/examples/dashboard.html +116 -0
- package/dist/tabs/examples/ghost.html +28 -0
- package/dist/tabs/examples/icon-above.html +50 -0
- package/dist/tabs/examples/icon-only.html +37 -0
- package/dist/tabs/examples/outline-with-icons.html +50 -0
- package/dist/tabs/examples/outline.html +29 -0
- package/dist/tabs/examples/pills.html +40 -0
- package/dist/tabs/examples/project.html +87 -0
- package/dist/tabs/examples/settings.html +100 -0
- package/dist/tabs/examples/stack-with-icons.html +51 -0
- package/dist/tabs/examples/stack.html +28 -0
- package/dist/tabs/examples/underline.html +41 -0
- package/dist/tabs/examples/vertical-ghost.html +44 -0
- package/dist/tabs/examples/vertical-icons.html +44 -0
- package/dist/tabs/examples/vertical-underline.html +45 -0
- package/dist/tabs/examples/vertical-with-icons.html +53 -0
- package/dist/tabs/examples/vertical.html +42 -0
- package/dist/tabs/examples/with-badges.html +43 -0
- package/dist/tabs/examples/with-icons.html +42 -0
- package/dist/tabs/tabs.events.d.ts +19 -0
- package/dist/tabs/tabs.events.js +1 -0
- package/dist/tabs/tabs.machine.d.ts +5 -0
- package/dist/tabs/tabs.machine.js +54 -0
- package/dist/tabs/tabs.presentation.d.ts +83 -0
- package/dist/tabs/tabs.presentation.js +94 -0
- package/dist/tabs/tabs.state.d.ts +61 -0
- package/dist/tabs/tabs.state.js +53 -0
- package/dist/tabs/tabs.transitions.d.ts +8 -0
- package/dist/tabs/tabs.transitions.js +6 -0
- package/dist/tags-input/examples/basic.html +43 -0
- package/dist/tags-input/examples/with-combobox.html +64 -0
- package/dist/tags-input/tags.events.d.ts +77 -0
- package/dist/tags-input/tags.events.js +1 -0
- package/dist/tags-input/tags.machine.d.ts +6 -0
- package/dist/tags-input/tags.machine.js +311 -0
- package/dist/tags-input/tags.presentation.d.ts +376 -0
- package/dist/tags-input/tags.presentation.js +782 -0
- package/dist/tags-input/tags.state.d.ts +109 -0
- package/dist/tags-input/tags.state.js +111 -0
- package/dist/tags-input/tags.transitions.d.ts +23 -0
- package/dist/tags-input/tags.transitions.js +101 -0
- package/dist/theme-picker/examples/basic.html +52 -0
- package/dist/theme-picker/examples/cards.html +32 -0
- package/dist/theme-picker/examples/compact.html +42 -0
- package/dist/theme-picker/examples/swatches.html +31 -0
- package/dist/theme-picker/theme-picker.events.d.ts +32 -0
- package/dist/theme-picker/theme-picker.events.js +1 -0
- package/dist/theme-picker/theme-picker.machine.d.ts +5 -0
- package/dist/theme-picker/theme-picker.machine.js +65 -0
- package/dist/theme-picker/theme-picker.presentation.d.ts +198 -0
- package/dist/theme-picker/theme-picker.presentation.js +306 -0
- package/dist/theme-picker/theme-picker.state.d.ts +40 -0
- package/dist/theme-picker/theme-picker.state.js +108 -0
- package/dist/theme-picker/theme-picker.transitions.d.ts +17 -0
- package/dist/theme-picker/theme-picker.transitions.js +62 -0
- package/dist/timer/examples/basic.html +36 -0
- package/dist/timer/examples/card.html +45 -0
- package/dist/timer/examples/compact.html +32 -0
- package/dist/timer/examples/countdown.html +45 -0
- package/dist/timer/examples/labels.html +43 -0
- package/dist/timer/examples/large.html +38 -0
- package/dist/timer/examples/minimal.html +21 -0
- package/dist/timer/examples/pomodoro.html +45 -0
- package/dist/timer/examples/workout.html +47 -0
- package/dist/timer/timer.events.d.ts +18 -0
- package/dist/timer/timer.events.js +1 -0
- package/dist/timer/timer.machine.d.ts +5 -0
- package/dist/timer/timer.machine.js +50 -0
- package/dist/timer/timer.presentation.d.ts +248 -0
- package/dist/timer/timer.presentation.js +265 -0
- package/dist/timer/timer.state.d.ts +29 -0
- package/dist/timer/timer.state.js +64 -0
- package/dist/timer/timer.transitions.d.ts +11 -0
- package/dist/timer/timer.transitions.js +35 -0
- package/dist/toast/examples/action.html +40 -0
- package/dist/toast/examples/basic.html +37 -0
- package/dist/toast/examples/bottomcenter.html +37 -0
- package/dist/toast/examples/bottomleft.html +37 -0
- package/dist/toast/examples/bottomright.html +37 -0
- package/dist/toast/examples/duration.html +36 -0
- package/dist/toast/examples/promise.html +44 -0
- package/dist/toast/examples/topcenter.html +37 -0
- package/dist/toast/examples/topleft.html +37 -0
- package/dist/toast/examples/topright.html +37 -0
- package/dist/toast/examples/types.html +47 -0
- package/dist/toast/examples/updatable.html +8 -0
- package/dist/toast/toast.events.d.ts +60 -0
- package/dist/toast/toast.events.js +1 -0
- package/dist/toast/toast.machine.d.ts +6 -0
- package/dist/toast/toast.machine.js +97 -0
- package/dist/toast/toast.presentation.d.ts +284 -0
- package/dist/toast/toast.presentation.js +532 -0
- package/dist/toast/toast.state.d.ts +65 -0
- package/dist/toast/toast.state.js +88 -0
- package/dist/toast/toast.transitions.d.ts +24 -0
- package/dist/toast/toast.transitions.js +85 -0
- package/dist/toggle-group/examples/basic.html +25 -0
- package/dist/toggle-group/examples/ghost.html +22 -0
- package/dist/toggle-group/examples/icons.html +25 -0
- package/dist/toggle-group/examples/multiple.html +14 -0
- package/dist/toggle-group/examples/outline.html +25 -0
- package/dist/toggle-group/examples/toolbar.html +25 -0
- package/dist/toggle-group/toggle-group.events.d.ts +45 -0
- package/dist/toggle-group/toggle-group.events.js +1 -0
- package/dist/toggle-group/toggle-group.machine.d.ts +5 -0
- package/dist/toggle-group/toggle-group.machine.js +65 -0
- package/dist/toggle-group/toggle-group.presentation.d.ts +112 -0
- package/dist/toggle-group/toggle-group.presentation.js +217 -0
- package/dist/toggle-group/toggle-group.state.d.ts +45 -0
- package/dist/toggle-group/toggle-group.state.js +67 -0
- package/dist/toggle-group/toggle-group.transitions.d.ts +10 -0
- package/dist/toggle-group/toggle-group.transitions.js +9 -0
- package/dist/tooltip/examples/basic.html +13 -0
- package/dist/tooltip/examples/metrics.html +30 -0
- package/dist/tooltip/examples/positioning.html +26 -0
- package/dist/tooltip/examples/status.html +33 -0
- package/dist/tooltip/examples/video.html +22 -0
- package/dist/tooltip/examples/with-arrow.html +14 -0
- package/dist/tooltip/tooltip.controller-def.d.ts +42 -0
- package/dist/tooltip/tooltip.controller-def.js +110 -0
- package/dist/tour/examples/basic.html +67 -0
- package/dist/tour/tour.events.d.ts +32 -0
- package/dist/tour/tour.events.js +1 -0
- package/dist/tour/tour.machine.d.ts +5 -0
- package/dist/tour/tour.machine.js +77 -0
- package/dist/tour/tour.presentation.d.ts +260 -0
- package/dist/tour/tour.presentation.js +272 -0
- package/dist/tour/tour.state.d.ts +43 -0
- package/dist/tour/tour.state.js +60 -0
- package/dist/tour/tour.transitions.d.ts +16 -0
- package/dist/tour/tour.transitions.js +32 -0
- package/dist/tree-view/examples/basic.html +47 -0
- package/dist/tree-view/examples/loading.html +57 -0
- package/dist/tree-view/tree-view.events.d.ts +67 -0
- package/dist/tree-view/tree-view.events.js +1 -0
- package/dist/tree-view/tree-view.machine.d.ts +6 -0
- package/dist/tree-view/tree-view.machine.js +86 -0
- package/dist/tree-view/tree-view.presentation.d.ts +254 -0
- package/dist/tree-view/tree-view.presentation.js +515 -0
- package/dist/tree-view/tree-view.state.d.ts +54 -0
- package/dist/tree-view/tree-view.state.js +61 -0
- package/dist/tree-view/tree-view.transitions.d.ts +30 -0
- package/dist/tree-view/tree-view.transitions.js +107 -0
- package/package.json +245 -4
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { tabs } from "../tabs.presentation.js";
|
|
3
|
+
|
|
4
|
+
const machine = tabs({
|
|
5
|
+
items: [
|
|
6
|
+
{
|
|
7
|
+
value: "inbox",
|
|
8
|
+
label: "Inbox",
|
|
9
|
+
content: "Deploy notifications and mentions.",
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
value: "drafts",
|
|
13
|
+
label: "Drafts",
|
|
14
|
+
content: "Unfinished incident notes.",
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
value: "sent",
|
|
18
|
+
label: "Sent",
|
|
19
|
+
content: "Shipped changelogs and receipts.",
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
defaultValue: "inbox",
|
|
23
|
+
});
|
|
24
|
+
</script>
|
|
25
|
+
|
|
26
|
+
<div class="mx-auto flex w-full max-w-md flex-col items-center"
|
|
27
|
+
{...machine.getRootProps()}>
|
|
28
|
+
<div
|
|
29
|
+
class="mb-4 flex w-fit rounded-lg border border-solid border-border p-1"
|
|
30
|
+
{...machine.getListProps()}>
|
|
31
|
+
<template for={machine.items} as={row} key={row.value}>
|
|
32
|
+
<button
|
|
33
|
+
class="bare flex items-center gap-2 rounded-md px-4 py-1 text-sm font-medium transition-colors aria-[selected=true]:bg-surface aria-[selected=true]:text-text aria-[selected=false]:text-text-muted"
|
|
34
|
+
{...machine.getTriggerProps(row)}
|
|
35
|
+
>
|
|
36
|
+
<span class="i-lucide-inbox text-sm" aria-hidden="true"
|
|
37
|
+
show={row.value === "inbox"}></span>
|
|
38
|
+
<span class="i-lucide-file-text text-sm" aria-hidden="true"
|
|
39
|
+
show={row.value === "drafts"}></span>
|
|
40
|
+
<span class="i-lucide-send text-sm" aria-hidden="true"
|
|
41
|
+
show={row.value === "sent"}></span>
|
|
42
|
+
<span>{row.label}</span>
|
|
43
|
+
</button>
|
|
44
|
+
</template>
|
|
45
|
+
</div>
|
|
46
|
+
<template for={machine.items} as={row} key={row.value}>
|
|
47
|
+
<p class=" text-center text-sm text-text-muted"
|
|
48
|
+
{...machine.getContentProps(row)}>{row.content}</p>
|
|
49
|
+
</template>
|
|
50
|
+
</div>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { tabs } from "../tabs.presentation.js";
|
|
3
|
+
|
|
4
|
+
const machine = tabs({
|
|
5
|
+
items: [
|
|
6
|
+
{ value: "tab1", label: "Inbox", content: "Deploy notifications and mentions." },
|
|
7
|
+
{ value: "tab2", label: "Drafts", content: "Unfinished incident notes." },
|
|
8
|
+
{ value: "tab3", label: "Sent", content: "Shipped changelogs and receipts." },
|
|
9
|
+
],
|
|
10
|
+
defaultValue: "tab1",
|
|
11
|
+
});
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<div class="mx-auto flex w-full max-w-md flex-col items-center"
|
|
15
|
+
{...machine.getRootProps()}>
|
|
16
|
+
<div class="mb-4 flex w-fit overflow-hidden rounded-lg border border-solid border-border"
|
|
17
|
+
{...machine.getListProps()}>
|
|
18
|
+
<template for={machine.items} as={row} key={row.value}>
|
|
19
|
+
<button
|
|
20
|
+
class="bare px-4 py-2 text-sm font-medium transition-colors aria-[selected=true]:bg-surface aria-[selected=true]:text-text aria-[selected=false]:text-text-muted"
|
|
21
|
+
{...machine.getTriggerProps(row)}
|
|
22
|
+
>{row.label}</button>
|
|
23
|
+
</template>
|
|
24
|
+
</div>
|
|
25
|
+
<template for={machine.items} as={row} key={row.value}>
|
|
26
|
+
<p class=" text-center text-sm text-text-muted"
|
|
27
|
+
{...machine.getContentProps(row)}>{row.content}</p>
|
|
28
|
+
</template>
|
|
29
|
+
</div>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { tabs } from "../tabs.presentation.js";
|
|
3
|
+
|
|
4
|
+
const machine = tabs({
|
|
5
|
+
items: [
|
|
6
|
+
{
|
|
7
|
+
value: "tab1",
|
|
8
|
+
label: "Overview",
|
|
9
|
+
content: "Fleet health at a glance.",
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
value: "tab2",
|
|
13
|
+
label: "Deployments",
|
|
14
|
+
content: "Deploy #4821 is live on checkout-api.",
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
value: "tab3",
|
|
18
|
+
label: "Settings",
|
|
19
|
+
content: "Workspace preferences and API tokens.",
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
defaultValue: "tab1",
|
|
23
|
+
});
|
|
24
|
+
</script>
|
|
25
|
+
|
|
26
|
+
<div class="mx-auto flex w-full max-w-md flex-col items-center"
|
|
27
|
+
{...machine.getRootProps()}>
|
|
28
|
+
<div class="mb-4 flex gap-2" {...machine.getListProps()}>
|
|
29
|
+
<template for={machine.items} as={row} key={row.value}>
|
|
30
|
+
<button
|
|
31
|
+
class="bare rounded-full border border-solid px-4 py-1 text-sm font-medium transition-all aria-[selected=true]:border-selected aria-[selected=true]:bg-selected aria-[selected=true]:text-on-selected aria-[selected=false]:border-border aria-[selected=false]:text-text-muted"
|
|
32
|
+
{...machine.getTriggerProps(row)}
|
|
33
|
+
>{row.label}</button>
|
|
34
|
+
</template>
|
|
35
|
+
</div>
|
|
36
|
+
<template for={machine.items} as={row} key={row.value}>
|
|
37
|
+
<p class=" text-center text-sm text-text-muted"
|
|
38
|
+
{...machine.getContentProps(row)}>{row.content}</p>
|
|
39
|
+
</template>
|
|
40
|
+
</div>
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { tabs } from "../tabs.presentation.js";
|
|
3
|
+
|
|
4
|
+
const machine = tabs({
|
|
5
|
+
items: [
|
|
6
|
+
{ value: "board", label: "Board", content: "Kanban columns." },
|
|
7
|
+
{ value: "list", label: "List", content: "Task list." },
|
|
8
|
+
{ value: "calendar", label: "Calendar", content: "Schedule." },
|
|
9
|
+
{ value: "files", label: "Files", content: "Attachments." },
|
|
10
|
+
],
|
|
11
|
+
defaultValue: "board",
|
|
12
|
+
});
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<div class="mx-auto flex w-full max-w-xl flex-col gap-6" {...machine.getRootProps()}>
|
|
16
|
+
<div class="flex gap-1 rounded-lg bg-surface-raised p-1" {...machine.getListProps()}>
|
|
17
|
+
<template for={machine.items} as={row} key={row.value}>
|
|
18
|
+
<button
|
|
19
|
+
class="bare flex items-center gap-2 rounded-md px-4 py-2 text-md font-medium transition-colors aria-[selected=true]:bg-surface aria-[selected=true]:text-text aria-[selected=true]:shadow-sm aria-[selected=false]:text-text-muted"
|
|
20
|
+
{...machine.getTriggerProps(row)}
|
|
21
|
+
>{row.label}</button>
|
|
22
|
+
</template>
|
|
23
|
+
</div>
|
|
24
|
+
<template for={machine.items} as={row} key={row.value}>
|
|
25
|
+
<div class="grid gap-6" {...machine.getContentProps(row)}>
|
|
26
|
+
<div class="grid grid-cols-3 gap-4" show={row.value === "board"}>
|
|
27
|
+
<div class="rounded-md border border-solid border-border bg-surface-raised p-4">
|
|
28
|
+
<span class="text-sm font-semibold text-text">To do</span>
|
|
29
|
+
<div class="mt-3 grid gap-2">
|
|
30
|
+
<div class="rounded-md bg-surface p-3 text-sm text-text">Draft release notes</div>
|
|
31
|
+
<div class="rounded-md bg-surface p-3 text-sm text-text">Review PR #482</div>
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
|
+
<div class="rounded-md border border-solid border-border bg-surface-raised p-4">
|
|
35
|
+
<span class="text-sm font-semibold text-text">In progress</span>
|
|
36
|
+
<div class="mt-3 grid gap-2">
|
|
37
|
+
<div class="rounded-md bg-surface p-3 text-sm text-text">Migrate auth module</div>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
<div class="rounded-md border border-solid border-border bg-surface-raised p-4">
|
|
41
|
+
<span class="text-sm font-semibold text-text">Done</span>
|
|
42
|
+
<div class="mt-3 grid gap-2">
|
|
43
|
+
<div class="rounded-md bg-surface p-3 text-sm text-text">Ship v0.9</div>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
<div class="grid gap-2" show={row.value === "list"}>
|
|
48
|
+
<div class="flex items-center gap-3 rounded-md border border-solid border-border bg-surface-raised p-3">
|
|
49
|
+
<input type="checkbox" />
|
|
50
|
+
<span class="text-md text-text">Draft release notes</span>
|
|
51
|
+
</div>
|
|
52
|
+
<div class="flex items-center gap-3 rounded-md border border-solid border-border bg-surface-raised p-3">
|
|
53
|
+
<input type="checkbox" checked />
|
|
54
|
+
<span class="text-md text-text line-through">Ship v0.9</span>
|
|
55
|
+
</div>
|
|
56
|
+
<div class="flex items-center gap-3 rounded-md border border-solid border-border bg-surface-raised p-3">
|
|
57
|
+
<input type="checkbox" />
|
|
58
|
+
<span class="text-md text-text">Migrate auth module</span>
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
<div class="rounded-md border border-solid border-border bg-surface-raised p-6" show={row.value === "calendar"}>
|
|
62
|
+
<span class="text-md font-medium text-text">October 2026</span>
|
|
63
|
+
<div class="mt-3 grid grid-cols-7 gap-1 text-center text-sm text-text-muted">
|
|
64
|
+
<span>M</span><span>T</span><span>W</span><span>T</span><span>F</span><span>S</span><span>S</span>
|
|
65
|
+
</div>
|
|
66
|
+
<div class="mt-2 grid grid-cols-7 gap-1 text-center text-sm text-text">
|
|
67
|
+
<span class="rounded-md bg-primary text-on-primary">15</span>
|
|
68
|
+
<span>16</span><span>17</span><span>18</span><span>19</span><span>20</span><span>21</span>
|
|
69
|
+
</div>
|
|
70
|
+
</div>
|
|
71
|
+
<div class="grid gap-3" show={row.value === "files"}>
|
|
72
|
+
<div class="flex items-center justify-between rounded-md border border-solid border-border bg-surface-raised p-4">
|
|
73
|
+
<span class="text-md text-text">spec.md</span>
|
|
74
|
+
<span class="text-sm text-text-muted">12 KB</span>
|
|
75
|
+
</div>
|
|
76
|
+
<div class="flex items-center justify-between rounded-md border border-solid border-border bg-surface-raised p-4">
|
|
77
|
+
<span class="text-md text-text">design.fig</span>
|
|
78
|
+
<span class="text-sm text-text-muted">4.1 MB</span>
|
|
79
|
+
</div>
|
|
80
|
+
<div class="flex items-center justify-between rounded-md border border-solid border-border bg-surface-raised p-4">
|
|
81
|
+
<span class="text-md text-text">release.zip</span>
|
|
82
|
+
<span class="text-sm text-text-muted">88 MB</span>
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
</div>
|
|
86
|
+
</template>
|
|
87
|
+
</div>
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { tabs } from "../tabs.presentation.js";
|
|
3
|
+
|
|
4
|
+
const machine = tabs({
|
|
5
|
+
items: [
|
|
6
|
+
{ value: "account", label: "Account", content: "Profile, email, and handle." },
|
|
7
|
+
{ value: "notifications", label: "Notifications", content: "Email and push preferences." },
|
|
8
|
+
{ value: "security", label: "Security", content: "Password and two-factor." },
|
|
9
|
+
{ value: "billing", label: "Billing", content: "Plan and payment method." },
|
|
10
|
+
],
|
|
11
|
+
defaultValue: "account",
|
|
12
|
+
});
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<div class="mx-auto flex w-full max-w-xl flex-col gap-6" {...machine.getRootProps()}>
|
|
16
|
+
<div class="flex gap-1 border-b border-solid border-border" {...machine.getListProps()}>
|
|
17
|
+
<template for={machine.items} as={row} key={row.value}>
|
|
18
|
+
<button
|
|
19
|
+
class="bare px-4 py-3 text-md font-medium transition-colors aria-[selected=true]:border-b-2 aria-[selected=true]:border-primary aria-[selected=true]:text-text aria-[selected=false]:text-text-muted"
|
|
20
|
+
{...machine.getTriggerProps(row)}
|
|
21
|
+
>{row.label}</button>
|
|
22
|
+
</template>
|
|
23
|
+
</div>
|
|
24
|
+
<template for={machine.items} as={row} key={row.value}>
|
|
25
|
+
<div class="grid gap-6" {...machine.getContentProps(row)}>
|
|
26
|
+
<div class="grid gap-4" show={row.value === "account"}>
|
|
27
|
+
<div class="grid gap-2">
|
|
28
|
+
<label class="text-sm font-medium text-text">Display name</label>
|
|
29
|
+
<input class="rounded-md border border-solid border-border bg-surface px-3 py-2 text-md text-text" type="text" value="Ada Lovelace" />
|
|
30
|
+
</div>
|
|
31
|
+
<div class="grid gap-2">
|
|
32
|
+
<label class="text-sm font-medium text-text">Email</label>
|
|
33
|
+
<input class="rounded-md border border-solid border-border bg-surface px-3 py-2 text-md text-text" type="email" value="ada@spinjs.dev" />
|
|
34
|
+
</div>
|
|
35
|
+
<div class="flex items-center justify-between rounded-md border border-solid border-border bg-surface-raised p-4">
|
|
36
|
+
<div class="grid gap-1">
|
|
37
|
+
<span class="text-md font-medium text-text">Public profile</span>
|
|
38
|
+
<span class="text-sm text-text-muted">Show your profile to everyone.</span>
|
|
39
|
+
</div>
|
|
40
|
+
<input type="checkbox" checked />
|
|
41
|
+
</div>
|
|
42
|
+
<button class="w-fit rounded-md bg-primary px-4 py-2 text-md font-medium text-on-primary">Save changes</button>
|
|
43
|
+
</div>
|
|
44
|
+
<div class="grid gap-4" show={row.value === "notifications"}>
|
|
45
|
+
<div class="flex items-center justify-between rounded-md border border-solid border-border bg-surface-raised p-4">
|
|
46
|
+
<div class="grid gap-1">
|
|
47
|
+
<span class="text-md font-medium text-text">Email digest</span>
|
|
48
|
+
<span class="text-sm text-text-muted">Weekly summary of activity.</span>
|
|
49
|
+
</div>
|
|
50
|
+
<input type="checkbox" checked />
|
|
51
|
+
</div>
|
|
52
|
+
<div class="flex items-center justify-between rounded-md border border-solid border-border bg-surface-raised p-4">
|
|
53
|
+
<div class="grid gap-1">
|
|
54
|
+
<span class="text-md font-medium text-text">Push notifications</span>
|
|
55
|
+
<span class="text-sm text-text-muted">Real-time alerts on your devices.</span>
|
|
56
|
+
</div>
|
|
57
|
+
<input type="checkbox" />
|
|
58
|
+
</div>
|
|
59
|
+
<div class="flex items-center justify-between rounded-md border border-solid border-border bg-surface-raised p-4">
|
|
60
|
+
<div class="grid gap-1">
|
|
61
|
+
<span class="text-md font-medium text-text">Mention alerts</span>
|
|
62
|
+
<span class="text-sm text-text-muted">When someone mentions you.</span>
|
|
63
|
+
</div>
|
|
64
|
+
<input type="checkbox" checked />
|
|
65
|
+
</div>
|
|
66
|
+
</div>
|
|
67
|
+
<div class="grid gap-4" show={row.value === "security"}>
|
|
68
|
+
<div class="grid gap-2">
|
|
69
|
+
<label class="text-sm font-medium text-text">Current password</label>
|
|
70
|
+
<input class="rounded-md border border-solid border-border bg-surface px-3 py-2 text-md text-text" type="password" />
|
|
71
|
+
</div>
|
|
72
|
+
<div class="grid gap-2">
|
|
73
|
+
<label class="text-sm font-medium text-text">New password</label>
|
|
74
|
+
<input class="rounded-md border border-solid border-border bg-surface px-3 py-2 text-md text-text" type="password" />
|
|
75
|
+
</div>
|
|
76
|
+
<button class="w-fit rounded-md bg-primary px-4 py-2 text-md font-medium text-on-primary">Update password</button>
|
|
77
|
+
<div class="rounded-md border border-solid border-border bg-surface-raised p-4">
|
|
78
|
+
<div class="grid gap-1">
|
|
79
|
+
<span class="text-md font-medium text-text">Two-factor authentication</span>
|
|
80
|
+
<span class="text-sm text-text-muted">Add an authenticator app.</span>
|
|
81
|
+
</div>
|
|
82
|
+
<button class="mt-3 w-fit rounded-md border border-solid border-border px-3 py-1 text-sm font-medium text-text">Enable</button>
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
<div class="grid gap-4" show={row.value === "billing"}>
|
|
86
|
+
<div class="flex items-center justify-between rounded-md border border-solid border-border bg-surface-raised p-4">
|
|
87
|
+
<div class="grid gap-1">
|
|
88
|
+
<span class="text-md font-medium text-text">Current plan</span>
|
|
89
|
+
<span class="text-sm text-text-muted">Pro — $24 / month</span>
|
|
90
|
+
</div>
|
|
91
|
+
<button class="rounded-md border border-solid border-border px-3 py-1 text-sm font-medium text-text">Change plan</button>
|
|
92
|
+
</div>
|
|
93
|
+
<div class="rounded-md border border-solid border-border bg-surface-raised p-4">
|
|
94
|
+
<span class="text-md font-medium text-text">Payment method</span>
|
|
95
|
+
<p class="mt-1 text-sm text-text-muted">Visa ending 4242, expires 08/27.</p>
|
|
96
|
+
</div>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
</template>
|
|
100
|
+
</div>
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { tabs } from "../tabs.presentation.js";
|
|
3
|
+
|
|
4
|
+
const machine = tabs({
|
|
5
|
+
items: [
|
|
6
|
+
{
|
|
7
|
+
value: "profile",
|
|
8
|
+
label: "Profile",
|
|
9
|
+
content: "Priya Raman, on-call this week.",
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
value: "billing",
|
|
13
|
+
label: "Billing",
|
|
14
|
+
content: "Seats, usage, and invoices.",
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
value: "notifications",
|
|
18
|
+
label: "Notifications",
|
|
19
|
+
content: "Deploy #4821 pages Tomas first.",
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
defaultValue: "profile",
|
|
23
|
+
});
|
|
24
|
+
</script>
|
|
25
|
+
|
|
26
|
+
<div class="mx-auto w-full max-w-md" {...machine.getRootProps()}>
|
|
27
|
+
<div class=" flex gap-1 border-b border-solid border-border px-2"
|
|
28
|
+
{...machine.getListProps()}>
|
|
29
|
+
<template for={machine.items} as={row} key={row.value}>
|
|
30
|
+
<button
|
|
31
|
+
class="bare relative flex items-center gap-2 rounded-ss-md rounded-se-md border border-b-0 border-solid px-4 py-2 text-sm font-medium transition-colors aria-[selected=true]:border-border aria-[selected=true]:bg-surface aria-[selected=true]:text-text aria-[selected=false]:border-transparent aria-[selected=false]:text-text-muted"
|
|
32
|
+
{...machine.getTriggerProps(row)}
|
|
33
|
+
>
|
|
34
|
+
<span class="i-lucide-user text-sm" aria-hidden="true"
|
|
35
|
+
show={row.value === "profile"}></span>
|
|
36
|
+
<span class="i-lucide-credit-card text-sm" aria-hidden="true"
|
|
37
|
+
show={row.value === "billing"}></span>
|
|
38
|
+
<span class="i-lucide-bell text-sm" aria-hidden="true"
|
|
39
|
+
show={row.value === "notifications"}></span>
|
|
40
|
+
<span>{row.label}</span>
|
|
41
|
+
</button>
|
|
42
|
+
</template>
|
|
43
|
+
</div>
|
|
44
|
+
<div
|
|
45
|
+
class="rounded-lg border border-t-0 border-solid border-border bg-surface p-4">
|
|
46
|
+
<template for={machine.items} as={row} key={row.value}>
|
|
47
|
+
<p class=" text-sm text-text-muted"
|
|
48
|
+
{...machine.getContentProps(row)}>{row.content}</p>
|
|
49
|
+
</template>
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { tabs } from "../tabs.presentation.js";
|
|
3
|
+
|
|
4
|
+
const machine = tabs({
|
|
5
|
+
items: [
|
|
6
|
+
{ value: "tab1", label: "Profile", content: "Priya Raman, on-call this week." },
|
|
7
|
+
{ value: "tab2", label: "Billing", content: "Seats, usage, and invoices." },
|
|
8
|
+
{ value: "tab3", label: "Privacy", content: "Audit log retention and SSO." },
|
|
9
|
+
],
|
|
10
|
+
defaultValue: "tab1",
|
|
11
|
+
});
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<div class="mx-auto flex w-full max-w-md flex-col items-center"
|
|
15
|
+
{...machine.getRootProps()}>
|
|
16
|
+
<div class="mb-3 flex w-full justify-center gap-1 border-b border-solid border-border px-2" {...machine.getListProps()}>
|
|
17
|
+
<template for={machine.items} as={row} key={row.value}>
|
|
18
|
+
<button
|
|
19
|
+
class="bare rounded-ss-md rounded-se-md border border-b-0 border-solid px-6 py-2 text-sm font-medium transition-colors aria-[selected=true]:border-border aria-[selected=true]:bg-surface aria-[selected=true]:text-text aria-[selected=false]:border-transparent aria-[selected=false]:text-text-muted"
|
|
20
|
+
{...machine.getTriggerProps(row)}
|
|
21
|
+
>{row.label}</button>
|
|
22
|
+
</template>
|
|
23
|
+
</div>
|
|
24
|
+
<template for={machine.items} as={row} key={row.value}>
|
|
25
|
+
<p class=" text-center text-sm text-text-muted"
|
|
26
|
+
{...machine.getContentProps(row)}>{row.content}</p>
|
|
27
|
+
</template>
|
|
28
|
+
</div>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { tabs } from "../tabs.presentation.js";
|
|
3
|
+
|
|
4
|
+
const machine = tabs({
|
|
5
|
+
items: [
|
|
6
|
+
{
|
|
7
|
+
value: "tab1",
|
|
8
|
+
label: "Overview",
|
|
9
|
+
content: "Fleet health at a glance.",
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
value: "tab2",
|
|
13
|
+
label: "Deployments",
|
|
14
|
+
content: "Deploy #4821 is live on checkout-api.",
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
value: "tab3",
|
|
18
|
+
label: "Settings",
|
|
19
|
+
content: "Workspace preferences and API tokens.",
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
defaultValue: "tab1",
|
|
23
|
+
});
|
|
24
|
+
</script>
|
|
25
|
+
|
|
26
|
+
<div class="mx-auto flex w-full max-w-md flex-col items-center"
|
|
27
|
+
{...machine.getRootProps()}>
|
|
28
|
+
<div class="mb-4 flex gap-4 border-b border-solid border-border"
|
|
29
|
+
{...machine.getListProps()}>
|
|
30
|
+
<template for={machine.items} as={row} key={row.value}>
|
|
31
|
+
<button
|
|
32
|
+
class="bare relative -mb-0 border-b-2 border-solid px-2 py-2 text-sm font-medium transition-colors aria-[selected=true]:border-primary aria-[selected=true]:text-text aria-[selected=false]:border-transparent aria-[selected=false]:text-text-muted"
|
|
33
|
+
{...machine.getTriggerProps(row)}
|
|
34
|
+
>{row.label}</button>
|
|
35
|
+
</template>
|
|
36
|
+
</div>
|
|
37
|
+
<template for={machine.items} as={row} key={row.value}>
|
|
38
|
+
<p class=" text-center text-sm text-text-muted"
|
|
39
|
+
{...machine.getContentProps(row)}>{row.content}</p>
|
|
40
|
+
</template>
|
|
41
|
+
</div>
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { tabs } from "../tabs.presentation.js";
|
|
3
|
+
|
|
4
|
+
const machine = tabs({
|
|
5
|
+
items: [
|
|
6
|
+
{
|
|
7
|
+
value: "general",
|
|
8
|
+
label: "General",
|
|
9
|
+
content: "Workspace name, region, and plan.",
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
value: "members",
|
|
13
|
+
label: "Members",
|
|
14
|
+
content: "Priya, Tomas, and the on-call rotation.",
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
value: "security",
|
|
18
|
+
label: "Security",
|
|
19
|
+
content: "Two-factor auth and the audit log.",
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
defaultValue: "general",
|
|
23
|
+
orientation: "vertical",
|
|
24
|
+
});
|
|
25
|
+
</script>
|
|
26
|
+
|
|
27
|
+
<div class="mx-auto flex w-full max-w-md items-start gap-4"
|
|
28
|
+
{...machine.getRootProps()}>
|
|
29
|
+
<div class="flex shrink-0 flex-col gap-1" {...machine.getListProps()}>
|
|
30
|
+
<template for={machine.items} as={row} key={row.value}>
|
|
31
|
+
<button
|
|
32
|
+
class="bare rounded-md px-4 py-2 text-left text-sm font-medium transition-colors hover:bg-surface-raised hover:text-text aria-[selected=true]:bg-surface-raised aria-[selected=true]:text-text aria-[selected=false]:text-text-muted"
|
|
33
|
+
{...machine.getTriggerProps(row)}
|
|
34
|
+
>{row.label}</button>
|
|
35
|
+
</template>
|
|
36
|
+
</div>
|
|
37
|
+
<div
|
|
38
|
+
class="flex-1 rounded-lg border border-solid border-border bg-surface p-4">
|
|
39
|
+
<template for={machine.items} as={row} key={row.value}>
|
|
40
|
+
<p class=" text-sm text-text-muted"
|
|
41
|
+
{...machine.getContentProps(row)}>{row.content}</p>
|
|
42
|
+
</template>
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { tabs } from "../tabs.presentation.js";
|
|
3
|
+
|
|
4
|
+
const machine = tabs({
|
|
5
|
+
items: [
|
|
6
|
+
{
|
|
7
|
+
value: "overview",
|
|
8
|
+
label: "Overview",
|
|
9
|
+
content: "Fleet health at a glance.",
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
value: "projects",
|
|
13
|
+
label: "Projects",
|
|
14
|
+
content: "checkout-api and its preview deploys.",
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
value: "packages",
|
|
18
|
+
label: "Packages",
|
|
19
|
+
content: "Canary channel and pinned versions.",
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
defaultValue: "overview",
|
|
23
|
+
orientation: "vertical",
|
|
24
|
+
});
|
|
25
|
+
</script>
|
|
26
|
+
|
|
27
|
+
<div class="mx-auto flex w-full max-w-md items-start gap-4"
|
|
28
|
+
{...machine.getRootProps()}>
|
|
29
|
+
<div class="flex shrink-0 flex-col border-l border-solid border-border"
|
|
30
|
+
{...machine.getListProps()}>
|
|
31
|
+
<template for={machine.items} as={row} key={row.value}>
|
|
32
|
+
<button
|
|
33
|
+
class="bare flex items-center gap-3 border-l-2 border-solid px-3 py-2 text-left text-sm font-medium transition-colors aria-[selected=true]:border-primary aria-[selected=true]:text-text aria-[selected=false]:border-transparent aria-[selected=false]:text-text-muted"
|
|
34
|
+
{...machine.getTriggerProps(row)}
|
|
35
|
+
><span class="i-lucide-house text-sm" aria-hidden="true" show={row.value === "overview"}></span><span class="i-lucide-folder-open text-sm" aria-hidden="true" show={row.value === "projects"}></span><span class="i-lucide-package text-sm" aria-hidden="true" show={row.value === "packages"}></span><span>{row.label}</span></button>
|
|
36
|
+
</template>
|
|
37
|
+
</div>
|
|
38
|
+
<div class="flex-1 rounded-lg border border-solid border-border p-4">
|
|
39
|
+
<template for={machine.items} as={row} key={row.value}>
|
|
40
|
+
<p class=" text-sm text-text-muted"
|
|
41
|
+
{...machine.getContentProps(row)}>{row.content}</p>
|
|
42
|
+
</template>
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { tabs } from "../tabs.presentation.js";
|
|
3
|
+
|
|
4
|
+
const machine = tabs({
|
|
5
|
+
items: [
|
|
6
|
+
{
|
|
7
|
+
value: "account",
|
|
8
|
+
label: "Account",
|
|
9
|
+
content: "Priya Raman, workspace owner.",
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
value: "tokens",
|
|
13
|
+
label: "API Tokens",
|
|
14
|
+
content: "checkout-api ships with two live tokens.",
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
value: "sessions",
|
|
18
|
+
label: "Sessions",
|
|
19
|
+
content: "Three sessions, one from Berlin.",
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
defaultValue: "account",
|
|
23
|
+
orientation: "vertical",
|
|
24
|
+
});
|
|
25
|
+
</script>
|
|
26
|
+
|
|
27
|
+
<div class="mx-auto flex w-full max-w-md items-start gap-4"
|
|
28
|
+
{...machine.getRootProps()}>
|
|
29
|
+
<div class="flex shrink-0 flex-col border-l border-solid border-border"
|
|
30
|
+
{...machine.getListProps()}>
|
|
31
|
+
<template for={machine.items} as={row} key={row.value}>
|
|
32
|
+
<button
|
|
33
|
+
class="bare border-l-2 border-solid px-4 py-2 text-left text-sm font-medium transition-colors hover:text-text aria-[selected=true]:border-primary aria-[selected=true]:text-text aria-[selected=false]:border-transparent aria-[selected=false]:text-text-muted"
|
|
34
|
+
{...machine.getTriggerProps(row)}
|
|
35
|
+
>{row.label}</button>
|
|
36
|
+
</template>
|
|
37
|
+
</div>
|
|
38
|
+
<div
|
|
39
|
+
class="flex-1 rounded-lg border border-solid border-border bg-surface p-4">
|
|
40
|
+
<template for={machine.items} as={row} key={row.value}>
|
|
41
|
+
<p class=" text-sm text-text-muted"
|
|
42
|
+
{...machine.getContentProps(row)}>{row.content}</p>
|
|
43
|
+
</template>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { tabs } from "../tabs.presentation.js";
|
|
3
|
+
|
|
4
|
+
const machine = tabs({
|
|
5
|
+
items: [
|
|
6
|
+
{
|
|
7
|
+
value: "overview",
|
|
8
|
+
label: "Overview",
|
|
9
|
+
content: "Fleet health at a glance.",
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
value: "projects",
|
|
13
|
+
label: "Projects",
|
|
14
|
+
content: "checkout-api and its preview deploys.",
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
value: "packages",
|
|
18
|
+
label: "Packages",
|
|
19
|
+
content: "Canary channel and pinned versions.",
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
defaultValue: "overview",
|
|
23
|
+
orientation: "vertical",
|
|
24
|
+
});
|
|
25
|
+
</script>
|
|
26
|
+
|
|
27
|
+
<div class="mx-auto flex w-full max-w-md items-start gap-4"
|
|
28
|
+
{...machine.getRootProps()}>
|
|
29
|
+
<div class="flex shrink-0 flex-col gap-1 rounded-lg bg-surface-raised p-1"
|
|
30
|
+
{...machine.getListProps()}>
|
|
31
|
+
<template for={machine.items} as={row} key={row.value}>
|
|
32
|
+
<button
|
|
33
|
+
class="bare flex items-center gap-2 rounded-md px-3 py-2 text-left text-sm font-medium transition-all aria-[selected=true]:bg-surface aria-[selected=true]:text-text aria-[selected=true]:shadow-sm aria-[selected=false]:text-text-muted"
|
|
34
|
+
{...machine.getTriggerProps(row)}
|
|
35
|
+
>
|
|
36
|
+
<span class="i-lucide-house text-sm" aria-hidden="true"
|
|
37
|
+
show={row.value === "overview"}></span>
|
|
38
|
+
<span class="i-lucide-folder-open text-sm" aria-hidden="true"
|
|
39
|
+
show={row.value === "projects"}></span>
|
|
40
|
+
<span class="i-lucide-package text-sm" aria-hidden="true"
|
|
41
|
+
show={row.value === "packages"}></span>
|
|
42
|
+
<span>{row.label}</span>
|
|
43
|
+
</button>
|
|
44
|
+
</template>
|
|
45
|
+
</div>
|
|
46
|
+
<div
|
|
47
|
+
class="flex-1 rounded-lg border border-solid border-border bg-surface p-4">
|
|
48
|
+
<template for={machine.items} as={row} key={row.value}>
|
|
49
|
+
<p class=" text-sm text-text-muted"
|
|
50
|
+
{...machine.getContentProps(row)}>{row.content}</p>
|
|
51
|
+
</template>
|
|
52
|
+
</div>
|
|
53
|
+
</div>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { tabs } from "../tabs.presentation.js";
|
|
3
|
+
|
|
4
|
+
const machine = tabs({
|
|
5
|
+
items: [
|
|
6
|
+
{
|
|
7
|
+
value: "tab1",
|
|
8
|
+
label: "Overview",
|
|
9
|
+
content: "Fleet health at a glance.",
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
value: "tab2",
|
|
13
|
+
label: "Deployments",
|
|
14
|
+
content: "Deploy #4821 is live on checkout-api.",
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
value: "tab3",
|
|
18
|
+
label: "Settings",
|
|
19
|
+
content: "Workspace preferences and API tokens.",
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
defaultValue: "tab1",
|
|
23
|
+
orientation: "vertical",
|
|
24
|
+
});
|
|
25
|
+
</script>
|
|
26
|
+
|
|
27
|
+
<div class="mx-auto flex w-full max-w-md items-start gap-4"
|
|
28
|
+
{...machine.getRootProps()}>
|
|
29
|
+
<div class="flex shrink-0 flex-col gap-1 rounded-lg bg-surface-raised p-1"
|
|
30
|
+
{...machine.getListProps()}>
|
|
31
|
+
<template for={machine.items} as={row} key={row.value}>
|
|
32
|
+
<button
|
|
33
|
+
class="bare rounded-md px-4 py-2 text-left text-sm font-medium transition-all aria-[selected=true]:bg-surface aria-[selected=true]:text-text aria-[selected=true]:shadow-sm aria-[selected=false]:text-text-muted"
|
|
34
|
+
{...machine.getTriggerProps(row)}
|
|
35
|
+
>{row.label}</button>
|
|
36
|
+
</template>
|
|
37
|
+
</div>
|
|
38
|
+
<template for={machine.items} as={row} key={row.value}>
|
|
39
|
+
<p class=" flex-1 pt-2 text-left text-sm text-text-muted"
|
|
40
|
+
{...machine.getContentProps(row)}>{row.content}</p>
|
|
41
|
+
</template>
|
|
42
|
+
</div>
|