@spinjs/components 0.0.0-stage → 0.1.0-preview.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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,42 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { floatingPanel } from "../floating-panel.presentation.js";
|
|
3
|
+
|
|
4
|
+
const machine = floatingPanel({size: "{\"w\":320,\"h\":240}", minSize: "{\"w\":280,\"h\":180}", maxSize: "{\"w\":500,\"h\":400}"});
|
|
5
|
+
</script>
|
|
6
|
+
|
|
7
|
+
<div class="grid w-full gap-2">
|
|
8
|
+
<button class="mb-2 secondary s-sm" {...machine.getTriggerProps()}>Open panel</button>
|
|
9
|
+
<div class="relative h-[24rem] w-full" {...machine.getPositionerProps()}>
|
|
10
|
+
<div class={["absolute left-0 top-0 flex flex-col overflow-hidden rounded-lg border border-solid border-border bg-surface-raised shadow-lg", { "pointer-events-none invisible scale-95 opacity-0": !machine.isOpen, "h-12 overflow-hidden": machine.stage === "minimized", "h-full w-full": machine.stage === "maximized" }]} {...machine.getContentProps()}>
|
|
11
|
+
<div class={["flex items-center justify-between gap-2 border-b border-border p-3 cursor-grab", { "cursor-grabbing": machine.dragging }]} {...machine.getDragTriggerProps()}>
|
|
12
|
+
<div class="flex min-w-0 items-center gap-2">
|
|
13
|
+
<span class="i-lucide-grip-vertical shrink-0 text-sm text-text-muted" aria-hidden="true"></span>
|
|
14
|
+
<span class="truncate text-sm font-medium text-text">Basic Panel</span>
|
|
15
|
+
</div>
|
|
16
|
+
<div class="flex shrink-0 items-center gap-1"><button class="ghost flex h-6 max-h-6 min-h-0 w-6 items-center justify-center p-0 text-text-muted hover:bg-surface hover:text-text" {...machine.getStageTriggerProps({ stage: "minimized" })}><span class="i-lucide-minus text-xs" aria-hidden="true"></span></button>
|
|
17
|
+
<button class="ghost flex h-6 max-h-6 min-h-0 w-6 items-center justify-center p-0 text-text-muted hover:bg-surface hover:text-text" {...machine.getStageTriggerProps({ stage: "maximized" })}><span class="i-lucide-square text-xs" aria-hidden="true"></span></button>
|
|
18
|
+
<button class="ghost flex h-6 max-h-6 min-h-0 w-6 items-center justify-center p-0 text-text-muted hover:bg-surface hover:text-text" {...machine.getStageTriggerProps({ stage: "default" })}><span class="i-lucide-copy text-xs" aria-hidden="true"></span></button>
|
|
19
|
+
<button class="ghost flex h-6 max-h-6 min-h-0 w-6 items-center justify-center p-0 text-text-muted hover:bg-surface hover:text-text" {...machine.getCloseTriggerProps()}><span class="i-lucide-x text-xs" aria-hidden="true"></span></button></div>
|
|
20
|
+
</div>
|
|
21
|
+
<div class="grid content-start gap-2 p-4">
|
|
22
|
+
<p class="text-sm text-text">A panel that moves, resizes, minimizes, and closes.</p>
|
|
23
|
+
<ul class="grid gap-1 text-sm text-text-muted">
|
|
24
|
+
<li>Draggable header</li>
|
|
25
|
+
<li>Resizable edges</li>
|
|
26
|
+
<li>Minimize, maximize, restore</li>
|
|
27
|
+
<li>Close and Escape</li>
|
|
28
|
+
</ul>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
<button class="bare absolute p-0 inset-x-0 top-0 h-1 min-h-0 border-0 cursor-ns-resize" {...machine.getResizeTriggerProps("n")} aria-hidden="true"></button>
|
|
32
|
+
<button class="bare absolute p-0 inset-x-0 bottom-0 h-1 min-h-0 border-0 cursor-ns-resize" {...machine.getResizeTriggerProps("s")} aria-hidden="true"></button>
|
|
33
|
+
<button class="bare absolute p-0 inset-y-0 right-0 w-1 z-10 min-h-0 border-0 cursor-ew-resize" {...machine.getResizeTriggerProps("e")} aria-hidden="true"></button>
|
|
34
|
+
<button class="bare absolute p-0 inset-y-0 left-0 w-1 z-10 min-h-0 border-0 cursor-ew-resize" {...machine.getResizeTriggerProps("w")} aria-hidden="true"></button>
|
|
35
|
+
<button class="bare absolute p-0 right-0 top-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nesw-resize" {...machine.getResizeTriggerProps("ne")} aria-hidden="true"></button>
|
|
36
|
+
<button class="bare absolute p-0 left-0 top-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nwse-resize" {...machine.getResizeTriggerProps("nw")} aria-hidden="true"></button>
|
|
37
|
+
<button class="bare absolute p-0 right-0 bottom-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nwse-resize" {...machine.getResizeTriggerProps("se")} aria-hidden="true"></button>
|
|
38
|
+
<button class="bare absolute p-0 left-0 bottom-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nesw-resize" {...machine.getResizeTriggerProps("sw")} aria-hidden="true"></button>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { floatingPanel } from "../floating-panel.presentation.js";
|
|
3
|
+
|
|
4
|
+
const machine = floatingPanel({ defaultOpen: true });
|
|
5
|
+
</script>
|
|
6
|
+
|
|
7
|
+
<div class="grid w-full gap-2">
|
|
8
|
+
<button class="mb-2 secondary s-sm" {...machine.getTriggerProps()}>Open panel</button>
|
|
9
|
+
<div class="relative h-[24rem] w-full" {...machine.getPositionerProps()}>
|
|
10
|
+
<div class={["absolute left-0 top-0 flex flex-col overflow-hidden rounded-lg border border-solid border-border bg-surface-raised shadow-lg", { "pointer-events-none invisible scale-95 opacity-0": !machine.isOpen, "h-12 overflow-hidden": machine.stage === "minimized", "h-full w-full": machine.stage === "maximized" }]} {...machine.getContentProps()}>
|
|
11
|
+
<div class={["flex items-center justify-between gap-2 border-b border-border p-3 cursor-grab", { "cursor-grabbing": machine.dragging }]} {...machine.getDragTriggerProps()}>
|
|
12
|
+
<div class="flex min-w-0 items-center gap-2">
|
|
13
|
+
<span class="i-lucide-grip-vertical shrink-0 text-sm text-text-muted" aria-hidden="true"></span>
|
|
14
|
+
<span class="truncate text-sm font-medium text-text">Calculator</span>
|
|
15
|
+
</div>
|
|
16
|
+
<div class="flex shrink-0 items-center gap-1"><button class="ghost icon s-sm text-text-muted hover:bg-surface hover:text-text" {...machine.getStageTriggerProps({ stage: "minimized" })}><span class="i-lucide-minus text-xs" aria-hidden="true"></span></button>
|
|
17
|
+
<button class="ghost icon s-sm text-text-muted hover:bg-surface hover:text-text" {...machine.getStageTriggerProps({ stage: "maximized" })}><span class="i-lucide-square text-xs" aria-hidden="true"></span></button>
|
|
18
|
+
<button class="ghost icon s-sm text-text-muted hover:bg-surface hover:text-text" {...machine.getStageTriggerProps({ stage: "default" })}><span class="i-lucide-copy text-xs" aria-hidden="true"></span></button>
|
|
19
|
+
<button class="ghost icon s-sm text-text-muted hover:bg-surface hover:text-text" {...machine.getCloseTriggerProps()}><span class="i-lucide-x text-xs" aria-hidden="true"></span></button></div>
|
|
20
|
+
</div>
|
|
21
|
+
<div class="grid content-start gap-3 p-4">
|
|
22
|
+
<output data-display class="rounded-lg border border-solid border-border bg-surface-sunken p-4 text-right font-mono text-2xl font-bold text-text tabular-nums">0</output>
|
|
23
|
+
<div class="grid grid-cols-4 gap-2">
|
|
24
|
+
<button type="button" data-key="C" data-act="clear" class="danger flex h-12 min-h-0 items-center justify-center">C</button>
|
|
25
|
+
<button type="button" data-key="±" data-act="negate" class="bare flex h-12 min-h-0 items-center justify-center rounded-lg border border-solid border-border bg-surface p-0 font-medium text-text hover:bg-surface-sunken">±</button>
|
|
26
|
+
<button type="button" data-key="%" data-act="percent" class="bare flex h-12 min-h-0 items-center justify-center rounded-lg border border-solid border-border bg-surface p-0 font-medium text-text hover:bg-surface-sunken">%</button>
|
|
27
|
+
<button type="button" data-key="÷" data-act="op" class="bare flex h-12 min-h-0 items-center justify-center rounded-lg bg-semantic-warning font-medium text-on-semantic-warning hover:bg-semantic-warning">÷</button>
|
|
28
|
+
<button type="button" data-key="7" data-act="digit" class="bare flex h-12 min-h-0 items-center justify-center rounded-lg border border-solid border-border bg-surface p-0 font-medium text-text hover:bg-surface-sunken">7</button>
|
|
29
|
+
<button type="button" data-key="8" data-act="digit" class="bare flex h-12 min-h-0 items-center justify-center rounded-lg border border-solid border-border bg-surface p-0 font-medium text-text hover:bg-surface-sunken">8</button>
|
|
30
|
+
<button type="button" data-key="9" data-act="digit" class="bare flex h-12 min-h-0 items-center justify-center rounded-lg border border-solid border-border bg-surface p-0 font-medium text-text hover:bg-surface-sunken">9</button>
|
|
31
|
+
<button type="button" data-key="×" data-act="op" class="bare flex h-12 min-h-0 items-center justify-center rounded-lg bg-semantic-warning font-medium text-on-semantic-warning hover:bg-semantic-warning">×</button>
|
|
32
|
+
<button type="button" data-key="4" data-act="digit" class="bare flex h-12 min-h-0 items-center justify-center rounded-lg border border-solid border-border bg-surface p-0 font-medium text-text hover:bg-surface-sunken">4</button>
|
|
33
|
+
<button type="button" data-key="5" data-act="digit" class="bare flex h-12 min-h-0 items-center justify-center rounded-lg border border-solid border-border bg-surface p-0 font-medium text-text hover:bg-surface-sunken">5</button>
|
|
34
|
+
<button type="button" data-key="6" data-act="digit" class="bare flex h-12 min-h-0 items-center justify-center rounded-lg border border-solid border-border bg-surface p-0 font-medium text-text hover:bg-surface-sunken">6</button>
|
|
35
|
+
<button type="button" data-key="−" data-act="op" class="bare flex h-12 min-h-0 items-center justify-center rounded-lg bg-semantic-warning font-medium text-on-semantic-warning hover:bg-semantic-warning">−</button>
|
|
36
|
+
<button type="button" data-key="1" data-act="digit" class="bare flex h-12 min-h-0 items-center justify-center rounded-lg border border-solid border-border bg-surface p-0 font-medium text-text hover:bg-surface-sunken">1</button>
|
|
37
|
+
<button type="button" data-key="2" data-act="digit" class="bare flex h-12 min-h-0 items-center justify-center rounded-lg border border-solid border-border bg-surface p-0 font-medium text-text hover:bg-surface-sunken">2</button>
|
|
38
|
+
<button type="button" data-key="3" data-act="digit" class="bare flex h-12 min-h-0 items-center justify-center rounded-lg border border-solid border-border bg-surface p-0 font-medium text-text hover:bg-surface-sunken">3</button>
|
|
39
|
+
<button type="button" data-key="+" data-act="op" class="bare flex h-12 min-h-0 items-center justify-center rounded-lg bg-semantic-warning font-medium text-on-semantic-warning hover:bg-semantic-warning">+</button>
|
|
40
|
+
<button data-key="0" data-act="digit" class="bare flex h-12 min-h-0 items-center justify-center rounded-lg border border-solid border-border bg-surface p-0 font-medium text-text hover:bg-surface-sunken">0</button>
|
|
41
|
+
<button data-key="." data-act="digit" class="bare flex h-12 min-h-0 items-center justify-center rounded-lg border border-solid border-border bg-surface p-0 font-medium text-text hover:bg-surface-sunken">.</button>
|
|
42
|
+
<button data-key="=" data-act="eq" class="bare flex h-12 min-h-0 items-center justify-center rounded-lg bg-semantic-warning font-medium text-on-semantic-warning hover:bg-semantic-warning">=</button>
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
<button class="bare absolute p-0 inset-x-0 top-0 h-1 min-h-0 border-0 cursor-ns-resize" {...machine.getResizeTriggerProps("n")} aria-hidden="true"></button>
|
|
46
|
+
<button class="bare absolute p-0 inset-x-0 bottom-0 h-1 min-h-0 border-0 cursor-ns-resize" {...machine.getResizeTriggerProps("s")} aria-hidden="true"></button>
|
|
47
|
+
<button class="bare absolute p-0 inset-y-0 right-0 w-1 z-10 min-h-0 border-0 cursor-ew-resize" {...machine.getResizeTriggerProps("e")} aria-hidden="true"></button>
|
|
48
|
+
<button class="bare absolute p-0 inset-y-0 left-0 w-1 z-10 min-h-0 border-0 cursor-ew-resize" {...machine.getResizeTriggerProps("w")} aria-hidden="true"></button>
|
|
49
|
+
<button class="bare absolute p-0 right-0 top-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nesw-resize" {...machine.getResizeTriggerProps("ne")} aria-hidden="true"></button>
|
|
50
|
+
<button class="bare absolute p-0 left-0 top-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nwse-resize" {...machine.getResizeTriggerProps("nw")} aria-hidden="true"></button>
|
|
51
|
+
<button class="bare absolute p-0 right-0 bottom-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nwse-resize" {...machine.getResizeTriggerProps("se")} aria-hidden="true"></button>
|
|
52
|
+
<button class="bare absolute p-0 left-0 bottom-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nesw-resize" {...machine.getResizeTriggerProps("sw")} aria-hidden="true"></button>
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
55
|
+
</div>
|
|
56
|
+
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { floatingPanel } from "../floating-panel.presentation.js";
|
|
3
|
+
|
|
4
|
+
const machine = floatingPanel({ defaultOpen: true });
|
|
5
|
+
</script>
|
|
6
|
+
|
|
7
|
+
<div class="grid w-full gap-2">
|
|
8
|
+
<button class="mb-2 secondary s-sm" {...machine.getTriggerProps()}>Open panel</button>
|
|
9
|
+
<div class="relative h-[24rem] w-full" {...machine.getPositionerProps()}>
|
|
10
|
+
<div class={["absolute left-0 top-0 flex flex-col overflow-hidden rounded-lg border border-solid border-border bg-surface-raised shadow-lg", { "pointer-events-none invisible scale-95 opacity-0": !machine.isOpen, "h-12 overflow-hidden": machine.stage === "minimized", "h-full w-full": machine.stage === "maximized" }]} {...machine.getContentProps()}>
|
|
11
|
+
<div class={["flex items-center justify-between gap-2 border-b border-border p-3 cursor-grab", { "cursor-grabbing": machine.dragging }]} {...machine.getDragTriggerProps()}>
|
|
12
|
+
<div class="flex min-w-0 items-center gap-2">
|
|
13
|
+
<span class="i-lucide-grip-vertical shrink-0 text-sm text-text-muted" aria-hidden="true"></span>
|
|
14
|
+
<span class="truncate text-sm font-medium text-text">Customer Support</span>
|
|
15
|
+
</div>
|
|
16
|
+
<div class="flex shrink-0 items-center gap-1"><button class="ghost icon s-sm text-text-muted hover:bg-surface hover:text-text" {...machine.getStageTriggerProps({ stage: "minimized" })}><span class="i-lucide-minus text-xs" aria-hidden="true"></span></button>
|
|
17
|
+
<button class="ghost icon s-sm text-text-muted hover:bg-surface hover:text-text" {...machine.getStageTriggerProps({ stage: "maximized" })}><span class="i-lucide-square text-xs" aria-hidden="true"></span></button>
|
|
18
|
+
<button class="ghost icon s-sm text-text-muted hover:bg-surface hover:text-text" {...machine.getStageTriggerProps({ stage: "default" })}><span class="i-lucide-copy text-xs" aria-hidden="true"></span></button>
|
|
19
|
+
<button class="ghost icon s-sm text-text-muted hover:bg-surface hover:text-text" {...machine.getCloseTriggerProps()}><span class="i-lucide-x text-xs" aria-hidden="true"></span></button></div>
|
|
20
|
+
</div>
|
|
21
|
+
<div class="flex items-center gap-2 border-b border-border px-4 py-2">
|
|
22
|
+
<span class="flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-primary text-xs font-medium text-on-primary">CS</span>
|
|
23
|
+
<div class="min-w-0"><p class="text-sm font-medium text-text">Customer Support</p><p class="text-xs text-semantic-success">Online</p></div>
|
|
24
|
+
</div>
|
|
25
|
+
<div data-messages class="grid flex-1 content-start gap-2 overflow-y-auto p-4 text-sm">
|
|
26
|
+
<div class="max-w-[80%] rounded-md rounded-sm bg-surface px-3 py-2 text-text">Hello! How can I help you today?</div>
|
|
27
|
+
<div class="max-w-[80%] justify-self-end rounded-md rounded-sm bg-primary px-3 py-2 text-on-primary">Hi, I have a question about your product.</div>
|
|
28
|
+
<div class="max-w-[80%] rounded-md rounded-sm bg-surface px-3 py-2 text-text">Happy to help! What would you like to know?</div>
|
|
29
|
+
</div>
|
|
30
|
+
<div class="flex gap-2 border-t border-border bg-surface p-3">
|
|
31
|
+
<input data-chat-input type="text" placeholder="Type a message…" class="bare min-w-0 flex-1 px-3 py-2" />
|
|
32
|
+
<button data-send class="bare flex h-8 max-h-8 min-h-0 w-8 items-center justify-center hover:bg-primary"><span class="i-lucide-send text-sm" aria-hidden="true"></span></button>
|
|
33
|
+
</div>
|
|
34
|
+
<button class="bare absolute p-0 inset-x-0 top-0 h-1 min-h-0 border-0 cursor-ns-resize" {...machine.getResizeTriggerProps("n")} aria-hidden="true"></button>
|
|
35
|
+
<button class="bare absolute p-0 inset-x-0 bottom-0 h-1 min-h-0 border-0 cursor-ns-resize" {...machine.getResizeTriggerProps("s")} aria-hidden="true"></button>
|
|
36
|
+
<button class="bare absolute p-0 inset-y-0 right-0 w-1 z-10 min-h-0 border-0 cursor-ew-resize" {...machine.getResizeTriggerProps("e")} aria-hidden="true"></button>
|
|
37
|
+
<button class="bare absolute p-0 inset-y-0 left-0 w-1 z-10 min-h-0 border-0 cursor-ew-resize" {...machine.getResizeTriggerProps("w")} aria-hidden="true"></button>
|
|
38
|
+
<button class="bare absolute p-0 right-0 top-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nesw-resize" {...machine.getResizeTriggerProps("ne")} aria-hidden="true"></button>
|
|
39
|
+
<button class="bare absolute p-0 left-0 top-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nwse-resize" {...machine.getResizeTriggerProps("nw")} aria-hidden="true"></button>
|
|
40
|
+
<button class="bare absolute p-0 right-0 bottom-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nwse-resize" {...machine.getResizeTriggerProps("se")} aria-hidden="true"></button>
|
|
41
|
+
<button class="bare absolute p-0 left-0 bottom-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nesw-resize" {...machine.getResizeTriggerProps("sw")} aria-hidden="true"></button>
|
|
42
|
+
</div>
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { floatingPanel } from "../floating-panel.presentation.js";
|
|
3
|
+
|
|
4
|
+
const machine = floatingPanel({ defaultOpen: true });
|
|
5
|
+
</script>
|
|
6
|
+
|
|
7
|
+
<div class="grid w-full gap-2">
|
|
8
|
+
<button class="mb-2 secondary s-sm" {...machine.getTriggerProps()}>Open panel</button>
|
|
9
|
+
<div class="relative h-[24rem] w-full" {...machine.getPositionerProps()}>
|
|
10
|
+
<div class={["absolute left-0 top-0 flex flex-col overflow-hidden rounded-lg border border-solid border-border bg-surface-raised shadow-lg", { "pointer-events-none invisible scale-95 opacity-0": !machine.isOpen, "h-12 overflow-hidden": machine.stage === "minimized", "h-full w-full": machine.stage === "maximized" }]} {...machine.getContentProps()}>
|
|
11
|
+
<div class={["flex items-center justify-between gap-2 border-b border-border p-3 cursor-grab", { "cursor-grabbing": machine.dragging }]} {...machine.getDragTriggerProps()}>
|
|
12
|
+
<div class="flex min-w-0 items-center gap-2">
|
|
13
|
+
<span class="i-lucide-grip-vertical shrink-0 text-sm text-text-muted" aria-hidden="true"></span>
|
|
14
|
+
<span class="truncate text-sm font-medium text-text">Media Player</span>
|
|
15
|
+
</div>
|
|
16
|
+
<div class="flex shrink-0 items-center gap-1"><button class="ghost icon s-sm text-text-muted hover:bg-surface hover:text-text" {...machine.getCloseTriggerProps()}><span class="i-lucide-x text-xs" aria-hidden="true"></span></button></div>
|
|
17
|
+
</div>
|
|
18
|
+
<div class="grid flex-1 content-start gap-4 overflow-y-auto bg-surface-sunken p-4 text-text">
|
|
19
|
+
<div class="flex items-center gap-3">
|
|
20
|
+
<span class="flex h-14 w-14 shrink-0 items-center justify-center rounded-lg bg-secondary text-on-secondary shadow-lg"><span class="i-lucide-volume-2 text-lg" aria-hidden="true"></span></span>
|
|
21
|
+
<div class="min-w-0 flex-1">
|
|
22
|
+
<strong class="truncate text-sm">Midnight Drive</strong>
|
|
23
|
+
<p class="truncate text-xs text-text-muted">Neon Coast</p>
|
|
24
|
+
</div>
|
|
25
|
+
<button type="button" data-fav class="ghost icon s-sm text-semantic-error"><span class="i-lucide-heart icon-sm" aria-hidden="true"></span></button>
|
|
26
|
+
</div>
|
|
27
|
+
<div class="grid gap-1">
|
|
28
|
+
<div class="h-1 overflow-hidden rounded-full bg-surface"><div data-progress class="h-full w-1/3 rounded-full bg-primary"></div></div>
|
|
29
|
+
<div class="flex justify-between text-xs text-text-muted"><span data-elapsed>1:12</span><span>3:48</span></div>
|
|
30
|
+
</div>
|
|
31
|
+
<div class="flex items-center justify-center gap-4">
|
|
32
|
+
<button type="button" class="ghost icon s-sm text-text-muted"><span class="i-lucide-shuffle text-sm" aria-hidden="true"></span></button>
|
|
33
|
+
<button type="button" class="ghost icon s-sm text-text-muted"><span class="i-lucide-skip-back icon-sm" aria-hidden="true"></span></button>
|
|
34
|
+
<button type="button" data-play class="bare flex h-12 max-h-12 min-h-0 w-12 items-center justify-center rounded-full bg-surface-raised shadow-lg"><span class="i-lucide-play icon-md" aria-hidden="true"></span></button>
|
|
35
|
+
<button type="button" class="ghost icon s-sm text-text-muted"><span class="i-lucide-skip-forward icon-sm" aria-hidden="true"></span></button>
|
|
36
|
+
<button type="button" class="ghost icon s-sm text-text-muted"><span class="i-lucide-repeat text-sm" aria-hidden="true"></span></button>
|
|
37
|
+
</div>
|
|
38
|
+
<div class="flex items-center gap-3">
|
|
39
|
+
<span class="i-lucide-volume-2 text-sm text-text-muted" aria-hidden="true"></span>
|
|
40
|
+
<div class="h-1 flex-1 overflow-hidden rounded-full bg-surface"><div class="h-full w-3/4 rounded-full bg-primary"></div></div>
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
<button class="bare absolute p-0 inset-x-0 top-0 h-1 min-h-0 border-0 cursor-ns-resize" {...machine.getResizeTriggerProps("n")} aria-hidden="true"></button>
|
|
44
|
+
<button class="bare absolute p-0 inset-x-0 bottom-0 h-1 min-h-0 border-0 cursor-ns-resize" {...machine.getResizeTriggerProps("s")} aria-hidden="true"></button>
|
|
45
|
+
<button class="bare absolute p-0 inset-y-0 right-0 w-1 z-10 min-h-0 border-0 cursor-ew-resize" {...machine.getResizeTriggerProps("e")} aria-hidden="true"></button>
|
|
46
|
+
<button class="bare absolute p-0 inset-y-0 left-0 w-1 z-10 min-h-0 border-0 cursor-ew-resize" {...machine.getResizeTriggerProps("w")} aria-hidden="true"></button>
|
|
47
|
+
<button class="bare absolute p-0 right-0 top-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nesw-resize" {...machine.getResizeTriggerProps("ne")} aria-hidden="true"></button>
|
|
48
|
+
<button class="bare absolute p-0 left-0 top-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nwse-resize" {...machine.getResizeTriggerProps("nw")} aria-hidden="true"></button>
|
|
49
|
+
<button class="bare absolute p-0 right-0 bottom-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nwse-resize" {...machine.getResizeTriggerProps("se")} aria-hidden="true"></button>
|
|
50
|
+
<button class="bare absolute p-0 left-0 bottom-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nesw-resize" {...machine.getResizeTriggerProps("sw")} aria-hidden="true"></button>
|
|
51
|
+
</div>
|
|
52
|
+
</div>
|
|
53
|
+
</div>
|
|
54
|
+
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { floatingPanel } from "../floating-panel.presentation.js";
|
|
3
|
+
|
|
4
|
+
const machine = floatingPanel({ defaultOpen: true });
|
|
5
|
+
</script>
|
|
6
|
+
|
|
7
|
+
<div class="grid w-full gap-2">
|
|
8
|
+
<button class="mb-2 secondary s-sm" {...machine.getTriggerProps()}>Open panel</button>
|
|
9
|
+
<div class="relative h-[24rem] w-full" {...machine.getPositionerProps()}>
|
|
10
|
+
<div class={["absolute left-0 top-0 flex flex-col overflow-hidden rounded-lg border border-solid border-border bg-surface-raised shadow-lg", { "pointer-events-none invisible scale-95 opacity-0": !machine.isOpen, "h-12 overflow-hidden": machine.stage === "minimized", "h-full w-full": machine.stage === "maximized" }]} {...machine.getContentProps()}>
|
|
11
|
+
<div class={["flex items-center justify-between gap-2 border-b border-border p-3 cursor-grab", { "cursor-grabbing": machine.dragging }]} {...machine.getDragTriggerProps()}>
|
|
12
|
+
<div class="flex min-w-0 items-center gap-2">
|
|
13
|
+
<span class="i-lucide-grip-vertical shrink-0 text-sm text-text-muted" aria-hidden="true"></span>
|
|
14
|
+
<span class="truncate text-sm font-medium text-text">Notes</span>
|
|
15
|
+
</div>
|
|
16
|
+
<div class="flex shrink-0 items-center gap-1"><button class="ghost icon s-sm text-text-muted hover:bg-surface hover:text-text" {...machine.getStageTriggerProps({ stage: "minimized" })}><span class="i-lucide-minus text-xs" aria-hidden="true"></span></button>
|
|
17
|
+
<button class="ghost icon s-sm text-text-muted hover:bg-surface hover:text-text" {...machine.getStageTriggerProps({ stage: "maximized" })}><span class="i-lucide-square text-xs" aria-hidden="true"></span></button>
|
|
18
|
+
<button class="ghost icon s-sm text-text-muted hover:bg-surface hover:text-text" {...machine.getStageTriggerProps({ stage: "default" })}><span class="i-lucide-copy text-xs" aria-hidden="true"></span></button>
|
|
19
|
+
<button class="ghost icon s-sm text-text-muted hover:bg-surface hover:text-text" {...machine.getCloseTriggerProps()}><span class="i-lucide-x text-xs" aria-hidden="true"></span></button></div>
|
|
20
|
+
</div>
|
|
21
|
+
<div class="grid min-h-0 flex-1 grid-cols-[13rem_1fr] overflow-hidden">
|
|
22
|
+
<div class="grid min-h-0 content-start gap-2 overflow-y-auto border-r border-border bg-surface p-3">
|
|
23
|
+
<div class="flex items-center gap-2 rounded-md border border-solid border-border bg-surface-raised px-3 py-2 text-xs text-text-muted"><span class="i-lucide-search text-sm" aria-hidden="true"></span><span>Search notes…</span></div>
|
|
24
|
+
<button type="button" data-new class="bare s-sm flex min-h-0 items-center justify-center gap-1 font-medium hover:bg-primary"><span class="i-lucide-plus text-sm" aria-hidden="true"></span>New Note</button>
|
|
25
|
+
<div data-notes class="grid content-start gap-1">
|
|
26
|
+
<button type="button" data-note="0" class="bare secondary grid justify-items-start gap-1 whitespace-normal text-left">
|
|
27
|
+
<p class="text-sm font-medium text-text">Meeting Notes</p>
|
|
28
|
+
<p class="text-xs text-text-muted">Discussed project timeline and deliverables…</p>
|
|
29
|
+
<p class="text-xs text-text-muted">Today</p>
|
|
30
|
+
</button>
|
|
31
|
+
<button type="button" data-note="1" class="bare grid justify-items-start gap-1 whitespace-normal p-3 text-left hover:bg-surface">
|
|
32
|
+
<p class="text-sm font-medium text-text">Ideas</p>
|
|
33
|
+
<p class="text-xs text-text-muted">New feature ideas for the dashboard…</p>
|
|
34
|
+
<p class="text-xs text-text-muted">Yesterday</p>
|
|
35
|
+
</button>
|
|
36
|
+
<button type="button" data-note="2" class="bare grid justify-items-start gap-1 whitespace-normal p-3 text-left hover:bg-surface">
|
|
37
|
+
<p class="text-sm font-medium text-text">Shopping List</p>
|
|
38
|
+
<p class="text-xs text-text-muted">Milk, Bread, Eggs, Coffee beans…</p>
|
|
39
|
+
<p class="text-xs text-text-muted">2 days ago</p>
|
|
40
|
+
</button>
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
<div class="grid min-h-0 content-start gap-3 overflow-y-auto p-4">
|
|
44
|
+
<p class="flex items-center gap-2 text-xs text-text-muted"><span class="i-lucide-pencil text-sm" aria-hidden="true"></span><span data-edited>Last edited Today</span></p>
|
|
45
|
+
<input data-title value="Meeting Notes" class="bare w-full min-w-0 border-transparent bg-transparent py-1 font-semibold hover:border-border focus:border-primary" />
|
|
46
|
+
<textarea data-body rows="6" class="bare min-h-0 w-full resize-none border-transparent bg-transparent py-1 hover:border-border focus:border-primary">Discussed project timeline and deliverables…</textarea>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
<button class="bare absolute p-0 inset-x-0 top-0 h-1 min-h-0 border-0 cursor-ns-resize" {...machine.getResizeTriggerProps("n")} aria-hidden="true"></button>
|
|
50
|
+
<button class="bare absolute p-0 inset-x-0 bottom-0 h-1 min-h-0 border-0 cursor-ns-resize" {...machine.getResizeTriggerProps("s")} aria-hidden="true"></button>
|
|
51
|
+
<button class="bare absolute p-0 inset-y-0 right-0 w-1 z-10 min-h-0 border-0 cursor-ew-resize" {...machine.getResizeTriggerProps("e")} aria-hidden="true"></button>
|
|
52
|
+
<button class="bare absolute p-0 inset-y-0 left-0 w-1 z-10 min-h-0 border-0 cursor-ew-resize" {...machine.getResizeTriggerProps("w")} aria-hidden="true"></button>
|
|
53
|
+
<button class="bare absolute p-0 right-0 top-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nesw-resize" {...machine.getResizeTriggerProps("ne")} aria-hidden="true"></button>
|
|
54
|
+
<button class="bare absolute p-0 left-0 top-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nwse-resize" {...machine.getResizeTriggerProps("nw")} aria-hidden="true"></button>
|
|
55
|
+
<button class="bare absolute p-0 right-0 bottom-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nwse-resize" {...machine.getResizeTriggerProps("se")} aria-hidden="true"></button>
|
|
56
|
+
<button class="bare absolute p-0 left-0 bottom-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nesw-resize" {...machine.getResizeTriggerProps("sw")} aria-hidden="true"></button>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
</div>
|
|
60
|
+
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { floatingPanel } from "../floating-panel.presentation.js";
|
|
3
|
+
|
|
4
|
+
const machine = floatingPanel({ defaultOpen: true });
|
|
5
|
+
</script>
|
|
6
|
+
|
|
7
|
+
<div class="grid w-full gap-2">
|
|
8
|
+
<button class="mb-2 secondary s-sm" {...machine.getTriggerProps()}>Open panel</button>
|
|
9
|
+
<div class="relative h-[24rem] w-full" {...machine.getPositionerProps()}>
|
|
10
|
+
<div class={["absolute left-0 top-0 flex flex-col overflow-hidden rounded-lg border border-solid border-border bg-surface-raised shadow-lg", { "pointer-events-none invisible scale-95 opacity-0": !machine.isOpen, "h-12 overflow-hidden": machine.stage === "minimized", "h-full w-full": machine.stage === "maximized" }]} {...machine.getContentProps()}>
|
|
11
|
+
<div class={["flex items-center justify-between gap-2 border-b border-border p-3 cursor-grab", { "cursor-grabbing": machine.dragging }]} {...machine.getDragTriggerProps()}>
|
|
12
|
+
<div class="flex min-w-0 items-center gap-2">
|
|
13
|
+
<span class="i-lucide-grip-vertical shrink-0 text-sm text-text-muted" aria-hidden="true"></span>
|
|
14
|
+
<span class="truncate text-sm font-medium text-text">Preferences</span>
|
|
15
|
+
</div>
|
|
16
|
+
<div class="flex shrink-0 items-center gap-1"><button class="ghost icon s-sm text-text-muted hover:bg-surface hover:text-text" {...machine.getStageTriggerProps({ stage: "minimized" })}><span class="i-lucide-minus text-xs" aria-hidden="true"></span></button>
|
|
17
|
+
<button class="ghost icon s-sm text-text-muted hover:bg-surface hover:text-text" {...machine.getStageTriggerProps({ stage: "maximized" })}><span class="i-lucide-square text-xs" aria-hidden="true"></span></button>
|
|
18
|
+
<button class="ghost icon s-sm text-text-muted hover:bg-surface hover:text-text" {...machine.getStageTriggerProps({ stage: "default" })}><span class="i-lucide-copy text-xs" aria-hidden="true"></span></button>
|
|
19
|
+
<button class="ghost icon s-sm text-text-muted hover:bg-surface hover:text-text" {...machine.getCloseTriggerProps()}><span class="i-lucide-x text-xs" aria-hidden="true"></span></button></div>
|
|
20
|
+
</div>
|
|
21
|
+
<div class="grid min-h-0 flex-1 content-start gap-5 overflow-y-auto p-4">
|
|
22
|
+
<div>
|
|
23
|
+
<p class="flex items-center gap-2 text-sm font-medium text-text"><span class="i-lucide-palette text-sm" aria-hidden="true"></span>Appearance</p>
|
|
24
|
+
<div class="grid gap-3">
|
|
25
|
+
<div class="flex items-center justify-between gap-2">
|
|
26
|
+
<div><p class="text-sm text-text">Dark Mode</p><p class="text-xs text-text-muted">Switch to dark theme</p></div>
|
|
27
|
+
<input type="checkbox" role="switch" data-toggle="dark" aria-label="Dark Mode" />
|
|
28
|
+
</div>
|
|
29
|
+
</div>
|
|
30
|
+
</div>
|
|
31
|
+
<div>
|
|
32
|
+
<p class="flex items-center gap-2 text-sm font-medium text-text"><span class="i-lucide-bell text-sm" aria-hidden="true"></span>Notifications</p>
|
|
33
|
+
<div class="grid gap-3">
|
|
34
|
+
<div class="flex items-center justify-between gap-2">
|
|
35
|
+
<div><p class="text-sm text-text">Push Notifications</p><p class="text-xs text-text-muted">Receive notifications on your device</p></div>
|
|
36
|
+
<input type="checkbox" role="switch" data-toggle="notifications" aria-label="Push Notifications" checked />
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
<div>
|
|
41
|
+
<p class="flex items-center gap-2 text-sm font-medium text-text"><span class="i-lucide-shield text-sm" aria-hidden="true"></span>Privacy & Security</p>
|
|
42
|
+
<div class="grid gap-3">
|
|
43
|
+
<div class="flex items-center justify-between gap-2">
|
|
44
|
+
<div><p class="text-sm text-text">Auto-save</p><p class="text-xs text-text-muted">Automatically save your work</p></div>
|
|
45
|
+
<input type="checkbox" role="switch" data-toggle="autosave" aria-label="Auto-save" checked />
|
|
46
|
+
</div>
|
|
47
|
+
<button type="button" data-clear class="bare secondary grid w-full justify-items-start gap-1 rounded-lg text-left hover:bg-surface">
|
|
48
|
+
<p class="text-sm text-text">Clear Cache</p>
|
|
49
|
+
<p class="text-xs text-text-muted">Free up storage space</p>
|
|
50
|
+
</button>
|
|
51
|
+
<p data-freed class="hidden text-xs text-semantic-success">Cache cleared — 1.2 GB freed.</p>
|
|
52
|
+
</div>
|
|
53
|
+
</div>
|
|
54
|
+
<div>
|
|
55
|
+
<p class="flex items-center gap-2 text-sm font-medium text-text"><span class="i-lucide-info text-sm" aria-hidden="true"></span>About</p>
|
|
56
|
+
<div class="grid gap-2 text-xs">
|
|
57
|
+
<div class="flex justify-between"><span class="text-text-muted">Version</span><span class="text-text">2.1.0</span></div>
|
|
58
|
+
<div class="flex justify-between"><span class="text-text-muted">Storage Used</span><span data-storage class="text-text">1.2 GB</span></div>
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
62
|
+
<button class="bare absolute p-0 inset-x-0 top-0 h-1 min-h-0 border-0 cursor-ns-resize" {...machine.getResizeTriggerProps("n")} aria-hidden="true"></button>
|
|
63
|
+
<button class="bare absolute p-0 inset-x-0 bottom-0 h-1 min-h-0 border-0 cursor-ns-resize" {...machine.getResizeTriggerProps("s")} aria-hidden="true"></button>
|
|
64
|
+
<button class="bare absolute p-0 inset-y-0 right-0 w-1 z-10 min-h-0 border-0 cursor-ew-resize" {...machine.getResizeTriggerProps("e")} aria-hidden="true"></button>
|
|
65
|
+
<button class="bare absolute p-0 inset-y-0 left-0 w-1 z-10 min-h-0 border-0 cursor-ew-resize" {...machine.getResizeTriggerProps("w")} aria-hidden="true"></button>
|
|
66
|
+
<button class="bare absolute p-0 right-0 top-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nesw-resize" {...machine.getResizeTriggerProps("ne")} aria-hidden="true"></button>
|
|
67
|
+
<button class="bare absolute p-0 left-0 top-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nwse-resize" {...machine.getResizeTriggerProps("nw")} aria-hidden="true"></button>
|
|
68
|
+
<button class="bare absolute p-0 right-0 bottom-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nwse-resize" {...machine.getResizeTriggerProps("se")} aria-hidden="true"></button>
|
|
69
|
+
<button class="bare absolute p-0 left-0 bottom-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nesw-resize" {...machine.getResizeTriggerProps("sw")} aria-hidden="true"></button>
|
|
70
|
+
</div>
|
|
71
|
+
</div>
|
|
72
|
+
</div>
|
|
73
|
+
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { floatingPanel } from "../floating-panel.presentation.js";
|
|
3
|
+
|
|
4
|
+
const machine = floatingPanel({ defaultOpen: true });
|
|
5
|
+
</script>
|
|
6
|
+
|
|
7
|
+
<div class="grid w-full gap-2">
|
|
8
|
+
<button class="mb-2 secondary s-sm" {...machine.getTriggerProps()}>Open panel</button>
|
|
9
|
+
<div class="relative h-[24rem] w-full" {...machine.getPositionerProps()}>
|
|
10
|
+
<div class={["absolute left-0 top-0 flex flex-col overflow-hidden rounded-lg border border-solid border-border bg-surface-raised shadow-lg", { "pointer-events-none invisible scale-95 opacity-0": !machine.isOpen, "h-12 overflow-hidden": machine.stage === "minimized", "h-full w-full": machine.stage === "maximized" }]} {...machine.getContentProps()}>
|
|
11
|
+
<div class={["flex items-center justify-between gap-2 border-b border-border p-3 cursor-grab", { "cursor-grabbing": machine.dragging }]} {...machine.getDragTriggerProps()}>
|
|
12
|
+
<div class="flex min-w-0 items-center gap-2">
|
|
13
|
+
<span class="i-lucide-grip-vertical shrink-0 text-sm text-text-muted" aria-hidden="true"></span>
|
|
14
|
+
<span class="truncate text-sm font-medium text-text">Task Inspector</span>
|
|
15
|
+
</div>
|
|
16
|
+
<div class="flex shrink-0 items-center gap-1"><button class="ghost icon s-sm text-text-muted hover:bg-surface hover:text-text" {...machine.getStageTriggerProps({ stage: "minimized" })}><span class="i-lucide-minus text-xs" aria-hidden="true"></span></button>
|
|
17
|
+
<button class="ghost icon s-sm text-text-muted hover:bg-surface hover:text-text" {...machine.getStageTriggerProps({ stage: "maximized" })}><span class="i-lucide-square text-xs" aria-hidden="true"></span></button>
|
|
18
|
+
<button class="ghost icon s-sm text-text-muted hover:bg-surface hover:text-text" {...machine.getStageTriggerProps({ stage: "default" })}><span class="i-lucide-copy text-xs" aria-hidden="true"></span></button>
|
|
19
|
+
<button class="ghost icon s-sm text-text-muted hover:bg-surface hover:text-text" {...machine.getCloseTriggerProps()}><span class="i-lucide-x text-xs" aria-hidden="true"></span></button></div>
|
|
20
|
+
</div>
|
|
21
|
+
<div class="grid min-h-0 flex-1 content-start gap-4 overflow-y-auto p-4">
|
|
22
|
+
<div class="grid gap-2">
|
|
23
|
+
<p class="text-md font-semibold text-text">Implement user authentication system</p>
|
|
24
|
+
<div class="flex items-center gap-2">
|
|
25
|
+
<badge variant="warning">In Progress</badge>
|
|
26
|
+
<badge variant="danger">High</badge>
|
|
27
|
+
</div>
|
|
28
|
+
<p class="font-mono text-xs text-text-muted">TASK-123</p>
|
|
29
|
+
</div>
|
|
30
|
+
<div class="grid gap-1">
|
|
31
|
+
<p class="text-sm font-medium text-text">Description</p>
|
|
32
|
+
<p class="text-sm text-text-muted">Create a secure authentication system with email/password login, JWT tokens, and role-based access control.</p>
|
|
33
|
+
</div>
|
|
34
|
+
<div class="grid grid-cols-2 gap-3">
|
|
35
|
+
<div class="flex items-center gap-2">
|
|
36
|
+
<span class="i-lucide-user text-sm text-text-muted" aria-hidden="true"></span>
|
|
37
|
+
<div><p class="text-xs text-text-muted">Assignee</p><p class="text-sm font-medium text-text">Sarah Johnson</p></div>
|
|
38
|
+
</div>
|
|
39
|
+
<div class="flex items-center gap-2">
|
|
40
|
+
<span class="i-lucide-calendar text-sm text-text-muted" aria-hidden="true"></span>
|
|
41
|
+
<div><p class="text-xs text-text-muted">Due Date</p><p class="text-sm font-medium text-text">2024-01-15</p></div>
|
|
42
|
+
</div>
|
|
43
|
+
<div class="flex items-center gap-2">
|
|
44
|
+
<span class="i-lucide-circle-check text-sm text-text-muted" aria-hidden="true"></span>
|
|
45
|
+
<div><p class="text-xs text-text-muted">Progress</p><p class="text-sm font-medium text-text">3/7 subtasks</p></div>
|
|
46
|
+
</div>
|
|
47
|
+
<div class="flex items-center gap-2">
|
|
48
|
+
<span class="i-lucide-clock text-sm text-text-muted" aria-hidden="true"></span>
|
|
49
|
+
<div><p class="text-xs text-text-muted">Created</p><p class="text-sm font-medium text-text">2024-01-08</p></div>
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
52
|
+
<div class="grid gap-1">
|
|
53
|
+
<div class="flex justify-between text-xs"><span class="text-text-muted">Progress</span><span class="text-text">43%</span></div>
|
|
54
|
+
<div class="h-2 overflow-hidden rounded-full bg-surface"><div class="h-full w-[43%] rounded-full bg-primary"></div></div>
|
|
55
|
+
</div>
|
|
56
|
+
<div class="grid gap-2">
|
|
57
|
+
<p class="text-sm font-medium text-text">Recent Comments</p>
|
|
58
|
+
<div class="grid gap-1 border-l-2 border-solid border-border pl-3">
|
|
59
|
+
<div class="flex items-start justify-between gap-2"><p class="text-sm font-medium text-text">John Doe</p><span class="shrink-0 text-xs text-text-muted">2h ago</span></div>
|
|
60
|
+
<p class="text-sm text-text-muted">Started working on the JWT implementation</p>
|
|
61
|
+
</div>
|
|
62
|
+
<div class="grid gap-1 border-l-2 border-solid border-border pl-3">
|
|
63
|
+
<div class="flex items-start justify-between gap-2"><p class="text-sm font-medium text-text">Sarah Johnson</p><span class="shrink-0 text-xs text-text-muted">4h ago</span></div>
|
|
64
|
+
<p class="text-sm text-text-muted">Updated the database schema for user roles</p>
|
|
65
|
+
</div>
|
|
66
|
+
</div>
|
|
67
|
+
</div>
|
|
68
|
+
<button class="bare absolute p-0 inset-x-0 top-0 h-1 min-h-0 border-0 cursor-ns-resize" {...machine.getResizeTriggerProps("n")} aria-hidden="true"></button>
|
|
69
|
+
<button class="bare absolute p-0 inset-x-0 bottom-0 h-1 min-h-0 border-0 cursor-ns-resize" {...machine.getResizeTriggerProps("s")} aria-hidden="true"></button>
|
|
70
|
+
<button class="bare absolute p-0 inset-y-0 right-0 w-1 z-10 min-h-0 border-0 cursor-ew-resize" {...machine.getResizeTriggerProps("e")} aria-hidden="true"></button>
|
|
71
|
+
<button class="bare absolute p-0 inset-y-0 left-0 w-1 z-10 min-h-0 border-0 cursor-ew-resize" {...machine.getResizeTriggerProps("w")} aria-hidden="true"></button>
|
|
72
|
+
<button class="bare absolute p-0 right-0 top-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nesw-resize" {...machine.getResizeTriggerProps("ne")} aria-hidden="true"></button>
|
|
73
|
+
<button class="bare absolute p-0 left-0 top-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nwse-resize" {...machine.getResizeTriggerProps("nw")} aria-hidden="true"></button>
|
|
74
|
+
<button class="bare absolute p-0 right-0 bottom-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nwse-resize" {...machine.getResizeTriggerProps("se")} aria-hidden="true"></button>
|
|
75
|
+
<button class="bare absolute p-0 left-0 bottom-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nesw-resize" {...machine.getResizeTriggerProps("sw")} aria-hidden="true"></button>
|
|
76
|
+
</div>
|
|
77
|
+
</div>
|
|
78
|
+
</div>
|
|
79
|
+
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { floatingPanel } from "../floating-panel.presentation.js";
|
|
3
|
+
|
|
4
|
+
const machine = floatingPanel({ defaultOpen: true });
|
|
5
|
+
</script>
|
|
6
|
+
|
|
7
|
+
<div class="grid w-full gap-2">
|
|
8
|
+
<button class="mb-2 secondary s-sm" {...machine.getTriggerProps()}>Open panel</button>
|
|
9
|
+
<div class="relative h-[24rem] w-full" {...machine.getPositionerProps()}>
|
|
10
|
+
<div class={["absolute left-0 top-0 flex flex-col overflow-hidden rounded-lg border border-solid border-border bg-surface-raised shadow-lg", { "pointer-events-none invisible scale-95 opacity-0": !machine.isOpen, "h-12 overflow-hidden": machine.stage === "minimized", "h-full w-full": machine.stage === "maximized" }]} {...machine.getContentProps()}>
|
|
11
|
+
<div class={["flex items-center justify-between gap-2 bg-surface-sunken p-3 cursor-grab", { "cursor-grabbing": machine.dragging }]} {...machine.getDragTriggerProps()}>
|
|
12
|
+
<div class="flex min-w-0 items-center gap-2">
|
|
13
|
+
<span class="h-2 w-2 shrink-0 rounded-full bg-semantic-success" aria-hidden="true"></span>
|
|
14
|
+
<span class="truncate text-sm font-medium text-text">Sarah Johnson</span>
|
|
15
|
+
<span data-timer class="shrink-0 font-mono text-xs text-text-muted">00:12:34</span>
|
|
16
|
+
</div>
|
|
17
|
+
<div class="flex shrink-0 items-center gap-1"><button class="ghost icon s-sm hover:bg-surface" {...machine.getStageTriggerProps({ stage: "minimized" })}><span class="i-lucide-minus text-xs" aria-hidden="true"></span></button>
|
|
18
|
+
<button class="ghost icon s-sm hover:bg-surface" {...machine.getStageTriggerProps({ stage: "maximized" })}><span class="i-lucide-square text-xs" aria-hidden="true"></span></button>
|
|
19
|
+
<button class="ghost icon s-sm hover:bg-surface" {...machine.getStageTriggerProps({ stage: "default" })}><span class="i-lucide-copy text-xs" aria-hidden="true"></span></button>
|
|
20
|
+
<button class="ghost icon s-sm hover:bg-surface" {...machine.getCloseTriggerProps()}><span class="i-lucide-x text-xs" aria-hidden="true"></span></button></div>
|
|
21
|
+
</div>
|
|
22
|
+
<div class="relative min-h-0 flex-1 overflow-hidden bg-surface-sunken">
|
|
23
|
+
<div class="absolute inset-0 flex items-center justify-center">
|
|
24
|
+
<span class="flex h-[8rem] w-[8rem] items-center justify-center rounded-full bg-surface-raised"><span class="flex h-20 w-20 items-center justify-center rounded-full bg-surface"><span class="text-lg font-semibold text-text">SJ</span></span></span>
|
|
25
|
+
</div>
|
|
26
|
+
<badge class="absolute right-2 top-2 flex h-12 w-16 items-center justify-center" variant="neutral">You</badge>
|
|
27
|
+
<badge class="absolute left-2 top-2 font-mono" variant="neutral">12:41</badge>
|
|
28
|
+
<div class="absolute inset-x-0 bottom-3 flex justify-center">
|
|
29
|
+
<div class="flex items-center gap-3 rounded-full border border-solid border-border bg-surface px-4 py-2">
|
|
30
|
+
<button type="button" data-mute aria-pressed="false" class="secondary icon s-sm flex h-10 max-h-10 min-h-0 w-10 items-center justify-center"><span class="i-lucide-mic text-sm" aria-hidden="true"></span></button>
|
|
31
|
+
<button data-video aria-pressed="false" class="secondary icon s-sm flex h-10 max-h-10 min-h-0 w-10 items-center justify-center"><span class="i-lucide-video text-sm" aria-hidden="true"></span></button>
|
|
32
|
+
<button data-hangup class="danger icon s-sm flex h-10 max-h-10 min-h-0 w-10 items-center justify-center"><span class="i-lucide-phone-off text-sm" aria-hidden="true"></span></button>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
<button class="bare absolute p-0 inset-x-0 top-0 h-1 min-h-0 border-0 cursor-ns-resize" {...machine.getResizeTriggerProps("n")} aria-hidden="true"></button>
|
|
37
|
+
<button class="bare absolute p-0 inset-x-0 bottom-0 h-1 min-h-0 border-0 cursor-ns-resize" {...machine.getResizeTriggerProps("s")} aria-hidden="true"></button>
|
|
38
|
+
<button class="bare absolute p-0 inset-y-0 right-0 w-1 z-10 min-h-0 border-0 cursor-ew-resize" {...machine.getResizeTriggerProps("e")} aria-hidden="true"></button>
|
|
39
|
+
<button class="bare absolute p-0 inset-y-0 left-0 w-1 z-10 min-h-0 border-0 cursor-ew-resize" {...machine.getResizeTriggerProps("w")} aria-hidden="true"></button>
|
|
40
|
+
<button class="bare absolute p-0 right-0 top-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nesw-resize" {...machine.getResizeTriggerProps("ne")} aria-hidden="true"></button>
|
|
41
|
+
<button class="bare absolute p-0 left-0 top-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nwse-resize" {...machine.getResizeTriggerProps("nw")} aria-hidden="true"></button>
|
|
42
|
+
<button class="bare absolute p-0 right-0 bottom-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nwse-resize" {...machine.getResizeTriggerProps("se")} aria-hidden="true"></button>
|
|
43
|
+
<button class="bare absolute p-0 left-0 bottom-0 z-10 h-2 min-h-0 w-2 border-0 cursor-nesw-resize" {...machine.getResizeTriggerProps("sw")} aria-hidden="true"></button>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { FloatingPanelSize, FloatingPanelStage } from "./floating-panel.state.js";
|
|
2
|
+
import { EventUnion } from "@spinjs/runtime/fsm";
|
|
3
|
+
export interface FloatingPanelEvents {
|
|
4
|
+
"OPEN": {};
|
|
5
|
+
"CLOSE": {};
|
|
6
|
+
"DRAG.START": {};
|
|
7
|
+
"DRAG.MOVE": {
|
|
8
|
+
dx: number;
|
|
9
|
+
dy: number;
|
|
10
|
+
};
|
|
11
|
+
"DRAG.END": {};
|
|
12
|
+
"RESIZE.START": {
|
|
13
|
+
x: -1 | 0 | 1;
|
|
14
|
+
y: -1 | 0 | 1;
|
|
15
|
+
};
|
|
16
|
+
"RESIZE.MOVE": {
|
|
17
|
+
dx: number;
|
|
18
|
+
dy: number;
|
|
19
|
+
};
|
|
20
|
+
"RESIZE.END": {};
|
|
21
|
+
"ESCAPE": {};
|
|
22
|
+
"MINIMIZE": {};
|
|
23
|
+
"MAXIMIZE": {};
|
|
24
|
+
"RESTORE": {};
|
|
25
|
+
"SIZE.SET": {
|
|
26
|
+
size: FloatingPanelSize | string;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export type FloatingPanelEvent = EventUnion<FloatingPanelEvents>;
|
|
30
|
+
export interface FloatingPanelOpenChange {
|
|
31
|
+
readonly open: boolean;
|
|
32
|
+
}
|
|
33
|
+
export interface FloatingPanelSizeChange {
|
|
34
|
+
readonly size: FloatingPanelSize;
|
|
35
|
+
}
|
|
36
|
+
export interface FloatingPanelPositionChange {
|
|
37
|
+
readonly position: {
|
|
38
|
+
readonly x: number;
|
|
39
|
+
readonly y: number;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export interface FloatingPanelStageChange {
|
|
43
|
+
readonly stage: FloatingPanelStage;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=floating-panel.events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { FloatingPanelArgs, FloatingPanelContext, FloatingPanelSize, FloatingPanelStage, FloatingPanelState } from "./floating-panel.state.js";
|
|
2
|
+
import { FloatingPanelEvent, FloatingPanelEvents } from "./floating-panel.events.js";
|
|
3
|
+
import { Machine } from "@spinjs/runtime/fsm";
|
|
4
|
+
export declare function floatingPanel(args?: FloatingPanelArgs, authored?: (name: string) => boolean): Machine<FloatingPanelContext, FloatingPanelEvents, FloatingPanelState>;
|
|
5
|
+
export type { FloatingPanelEvent, FloatingPanelEvents, FloatingPanelSize, FloatingPanelStage };
|
|
6
|
+
//# sourceMappingURL=floating-panel.machine.d.ts.map
|