@zyncat/ui 0.11.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +135 -40
- package/dist/alert.css +126 -121
- package/dist/alert.js +12 -14
- package/dist/alert.js.map +1 -1
- package/dist/avatar-group.js.map +1 -1
- package/dist/avatar.css +179 -174
- package/dist/avatar.js.map +1 -1
- package/dist/badge.css +166 -160
- package/dist/badge.js +1 -1
- package/dist/button.css +272 -246
- package/dist/button.js +1 -1
- package/dist/checkbox.css +158 -153
- package/dist/checkbox.js +2 -2
- package/dist/{chunk-AMFGY56I.js → chunk-227ZW4V7.js} +40 -32
- package/dist/chunk-227ZW4V7.js.map +1 -0
- package/dist/{chunk-2ERBBFZS.js → chunk-3MPF7FZV.js} +2 -2
- package/dist/chunk-3MPF7FZV.js.map +1 -0
- package/dist/{chunk-AIQXS2XY.js → chunk-43M6GQ4Q.js} +86 -79
- package/dist/chunk-43M6GQ4Q.js.map +1 -0
- package/dist/{chunk-7SZCJ7WI.js → chunk-45R4Z5XN.js} +3 -3
- package/dist/chunk-45R4Z5XN.js.map +1 -0
- package/dist/{chunk-I4XQ4PV2.js → chunk-4BSHB7R3.js} +9 -7
- package/dist/chunk-4BSHB7R3.js.map +1 -0
- package/dist/{chunk-YGGCQNNU.js → chunk-4C5RZXBT.js} +33 -34
- package/dist/chunk-4C5RZXBT.js.map +1 -0
- package/dist/{chunk-2QWJ6FAX.js → chunk-5PZ43DCG.js} +31 -15
- package/dist/chunk-5PZ43DCG.js.map +1 -0
- package/dist/{chunk-S5ZTZANS.js → chunk-7IZJERGA.js} +35 -12
- package/dist/chunk-7IZJERGA.js.map +1 -0
- package/dist/{chunk-DKVUPFQR.js → chunk-A5WTZACK.js} +22 -12
- package/dist/chunk-A5WTZACK.js.map +1 -0
- package/dist/{chunk-64UU4LGU.js → chunk-AADAJL7D.js} +3 -3
- package/dist/{chunk-64UU4LGU.js.map → chunk-AADAJL7D.js.map} +1 -1
- package/dist/{chunk-XJQQQJAO.js → chunk-CF4QHO4N.js} +21 -11
- package/dist/chunk-CF4QHO4N.js.map +1 -0
- package/dist/{chunk-WM5J5TDI.js → chunk-CNWTIMIP.js} +13 -17
- package/dist/chunk-CNWTIMIP.js.map +1 -0
- package/dist/{chunk-NGTA34V2.js → chunk-DDRSMHN4.js} +16 -10
- package/dist/chunk-DDRSMHN4.js.map +1 -0
- package/dist/{chunk-VTJTGVZZ.js → chunk-DMX2F6B4.js} +2 -2
- package/dist/chunk-DMX2F6B4.js.map +1 -0
- package/dist/{chunk-3SBCBYB7.js → chunk-EAI4POPB.js} +2 -2
- package/dist/{chunk-3SBCBYB7.js.map → chunk-EAI4POPB.js.map} +1 -1
- package/dist/{chunk-Y7AJQVWJ.js → chunk-EF6RPXU7.js} +17 -15
- package/dist/chunk-EF6RPXU7.js.map +1 -0
- package/dist/{chunk-WFHRAKN3.js → chunk-FONOS5RN.js} +14 -15
- package/dist/chunk-FONOS5RN.js.map +1 -0
- package/dist/{chunk-PMECHR3A.js → chunk-FQEHSKEI.js} +2 -2
- package/dist/chunk-FQEHSKEI.js.map +1 -0
- package/dist/chunk-HDSFWZ7L.js +12 -0
- package/dist/chunk-HDSFWZ7L.js.map +1 -0
- package/dist/{chunk-2F5PITAO.js → chunk-HY5MPISE.js} +2 -2
- package/dist/chunk-HY5MPISE.js.map +1 -0
- package/dist/{chunk-QDK66S4G.js → chunk-I45AU6KH.js} +3 -3
- package/dist/chunk-I45AU6KH.js.map +1 -0
- package/dist/{chunk-YGCVWGUG.js → chunk-IJS7TPGV.js} +153 -46
- package/dist/chunk-IJS7TPGV.js.map +1 -0
- package/dist/{chunk-62P3KD57.js → chunk-IUQAUBVM.js} +18 -11
- package/dist/chunk-IUQAUBVM.js.map +1 -0
- package/dist/chunk-JY6A2ZJZ.js +44 -0
- package/dist/chunk-JY6A2ZJZ.js.map +1 -0
- package/dist/{chunk-XWUWYSCT.js → chunk-M43IOM5C.js} +20 -10
- package/dist/chunk-M43IOM5C.js.map +1 -0
- package/dist/{chunk-S7B34VGN.js → chunk-OWNMRMPN.js} +3 -3
- package/dist/{chunk-S7B34VGN.js.map → chunk-OWNMRMPN.js.map} +1 -1
- package/dist/chunk-RFRE4WKX.js +22 -0
- package/dist/chunk-RFRE4WKX.js.map +1 -0
- package/dist/{chunk-NNXJCLTV.js → chunk-RJFGWJ4W.js} +2 -2
- package/dist/chunk-RJFGWJ4W.js.map +1 -0
- package/dist/{chunk-NEF5XAHG.js → chunk-TUTXXC3W.js} +4 -4
- package/dist/chunk-TUTXXC3W.js.map +1 -0
- package/dist/chunk-TVYH4AN7.js +70 -0
- package/dist/chunk-TVYH4AN7.js.map +1 -0
- package/dist/{chunk-U4MHX3KH.js → chunk-VAXCXZ53.js} +33 -12
- package/dist/chunk-VAXCXZ53.js.map +1 -0
- package/dist/chunk-XNIYSAMJ.js +52 -0
- package/dist/chunk-XNIYSAMJ.js.map +1 -0
- package/dist/{chunk-CONSWNIV.js → chunk-Y2YA7QRF.js} +6 -6
- package/dist/chunk-Y2YA7QRF.js.map +1 -0
- package/dist/cli.js +1828 -0
- package/dist/collapse.css +70 -61
- package/dist/collapse.js +2 -2
- package/dist/confetti.css +45 -0
- package/dist/confetti.js +540 -0
- package/dist/confetti.js.map +1 -0
- package/dist/count-badge.js +3 -3
- package/dist/count-badge.js.map +1 -1
- package/dist/date-field.js +24 -19
- package/dist/date-field.js.map +1 -1
- package/dist/date-picker.css +563 -559
- package/dist/date-range-field.js +58 -41
- package/dist/date-range-field.js.map +1 -1
- package/dist/datetime-field.js +24 -19
- package/dist/datetime-field.js.map +1 -1
- package/dist/dialog.css +176 -172
- package/dist/dialog.js +30 -19
- package/dist/dialog.js.map +1 -1
- package/dist/digit-strip.css +65 -0
- package/dist/dropdown.css +65 -0
- package/dist/dropdown.js +350 -0
- package/dist/dropdown.js.map +1 -0
- package/dist/emoji-picker.js +713 -0
- package/dist/emoji-picker.js.map +1 -0
- package/dist/facebook-feed.css +880 -0
- package/dist/facebook-feed.js +697 -0
- package/dist/facebook-feed.js.map +1 -0
- package/dist/flow-field.css +49 -0
- package/dist/flow-field.js +269 -0
- package/dist/flow-field.js.map +1 -0
- package/dist/glide.js +3 -3
- package/dist/icon.css +34 -30
- package/dist/input.css +296 -318
- package/dist/instagram-feed.css +378 -0
- package/dist/instagram-feed.js +272 -0
- package/dist/instagram-feed.js.map +1 -0
- package/dist/lens.css +119 -0
- package/dist/lens.js +307 -0
- package/dist/lens.js.map +1 -0
- package/dist/mcp.js +379 -181
- package/dist/menu-surface.css +127 -0
- package/dist/modal.css +11 -7
- package/dist/modal.js +24 -17
- package/dist/modal.js.map +1 -1
- package/dist/morphing-text.css +84 -0
- package/dist/morphing-text.js +256 -0
- package/dist/morphing-text.js.map +1 -0
- package/dist/motion-devtools.css +237 -233
- package/dist/motion-devtools.js +7 -6
- package/dist/motion-devtools.js.map +1 -1
- package/dist/motion-tokens.js +1 -1
- package/dist/multi-select.js +20 -17
- package/dist/multi-select.js.map +1 -1
- package/dist/number-field.js +11 -7
- package/dist/number-field.js.map +1 -1
- package/dist/odometer.css +58 -59
- package/dist/odometer.js +109 -0
- package/dist/odometer.js.map +1 -0
- package/dist/otp-field.js.map +1 -1
- package/dist/overlay.css +24 -20
- package/dist/pagination.css +42 -38
- package/dist/pagination.js +6 -12
- package/dist/pagination.js.map +1 -1
- package/dist/popover.css +69 -65
- package/dist/popover.js +12 -10
- package/dist/radio-group.css +275 -276
- package/dist/radio-group.js +70 -95
- package/dist/radio-group.js.map +1 -1
- package/dist/select.css +291 -386
- package/dist/select.js +18 -15
- package/dist/select.js.map +1 -1
- package/dist/sheet.css +47 -23
- package/dist/sheet.js +11 -10
- package/dist/status-badge.js +3 -3
- package/dist/status-badge.js.map +1 -1
- package/dist/styles.css +221 -0
- package/dist/support-rail.css +421 -0
- package/dist/support-rail.js +243 -0
- package/dist/support-rail.js.map +1 -0
- package/dist/table.css +333 -323
- package/dist/table.js +32 -21
- package/dist/table.js.map +1 -1
- package/dist/tabs.css +163 -156
- package/dist/tabs.js +26 -20
- package/dist/tabs.js.map +1 -1
- package/dist/tag.css +209 -231
- package/dist/tag.js +11 -10
- package/dist/tag.js.map +1 -1
- package/dist/text-field.js +7 -67
- package/dist/text-field.js.map +1 -1
- package/dist/textarea.css +205 -211
- package/dist/textarea.js +12 -12
- package/dist/textarea.js.map +1 -1
- package/dist/theme.js +69 -0
- package/dist/theme.js.map +1 -0
- package/dist/tiktok.css +662 -0
- package/dist/tiktok.js +494 -0
- package/dist/tiktok.js.map +1 -0
- package/dist/time-field.js +6 -6
- package/dist/time-field.js.map +1 -1
- package/dist/toast.css +237 -233
- package/dist/toast.js +43 -47
- package/dist/toast.js.map +1 -1
- package/dist/toggle-tag.js +1 -1
- package/dist/toggle-tag.js.map +1 -1
- package/dist/toggle.css +139 -135
- package/dist/toggle.js.map +1 -1
- package/dist/tooltip.css +79 -78
- package/dist/tooltip.js +50 -60
- package/dist/tooltip.js.map +1 -1
- package/dist/trigger.css +13 -0
- package/dist/{alert.d.ts → types/components/composites/alert/Alert.d.ts} +13 -15
- package/dist/{date-field.d.ts → types/components/composites/date-picker/DateField.d.ts} +4 -10
- package/dist/types/components/composites/date-picker/DateRangeField.d.ts +21 -0
- package/dist/{datetime-field.d.ts → types/components/composites/date-picker/DateTimeField.d.ts} +4 -10
- package/dist/{time-field.d.ts → types/components/composites/date-picker/TimeField.d.ts} +5 -11
- package/dist/types/components/composites/date-picker/calendar-panel.d.ts +16 -0
- package/dist/types/components/composites/date-picker/date-utils.d.ts +12 -0
- package/dist/types/components/composites/date-picker/field-shell.d.ts +46 -0
- package/dist/types/components/composites/date-picker/range-panel.d.ts +24 -0
- package/dist/types/components/composites/date-picker/time-core.d.ts +14 -0
- package/dist/types/components/composites/date-picker/use-day-focus.d.ts +2 -0
- package/dist/{dialog.d.ts → types/components/composites/dialog/Dialog.d.ts} +10 -11
- package/dist/types/components/composites/dropdown/Dropdown.d.ts +37 -0
- package/dist/types/components/composites/dropdown/menu-panel.d.ts +7 -0
- package/dist/types/components/composites/dropdown/types.d.ts +71 -0
- package/dist/types/components/composites/emoji-picker/EmojiPickerPanel.d.ts +45 -0
- package/dist/types/components/composites/emoji-picker/category-icons.d.ts +9 -0
- package/dist/types/components/composites/emoji-picker/data.d.ts +33 -0
- package/dist/types/components/composites/emoji-picker/dom.d.ts +19 -0
- package/dist/types/components/composites/emoji-picker/getEmojiUrl.d.ts +2 -0
- package/dist/types/components/composites/emoji-picker/navigation.d.ts +7 -0
- package/dist/types/components/composites/emoji-picker/picker.d.ts +20 -0
- package/dist/types/components/composites/emoji-picker/react/category-bar.d.ts +6 -0
- package/dist/types/components/composites/emoji-picker/react/useEmojiPicker.d.ts +50 -0
- package/dist/types/components/composites/emoji-picker/scaffold.d.ts +8 -0
- package/dist/types/components/composites/emoji-picker/search.d.ts +1 -0
- package/dist/types/components/composites/emoji-picker/types.d.ts +13 -0
- package/dist/{modal.d.ts → types/components/composites/modal/Modal.d.ts} +10 -11
- package/dist/{pagination.d.ts → types/components/composites/pagination/Pagination.d.ts} +5 -8
- package/dist/{popover.d.ts → types/components/composites/popover/Popover.d.ts} +11 -14
- package/dist/{multi-select.d.ts → types/components/composites/select/MultiSelect.d.ts} +12 -11
- package/dist/{select.d.ts → types/components/composites/select/Select.d.ts} +16 -14
- package/dist/types/components/composites/select/core/index.d.ts +4 -0
- package/dist/types/components/composites/select/core/menu.d.ts +13 -0
- package/dist/types/components/composites/select/core/panel.d.ts +18 -0
- package/dist/types/components/composites/select/core/trigger.d.ts +16 -0
- package/dist/{types-SGMShK7R.d.ts → types/components/composites/select/core/types.d.ts} +13 -6
- package/dist/types/components/composites/select/core/use-listbox.d.ts +42 -0
- package/dist/{sheet.d.ts → types/components/composites/sheet/Sheet.d.ts} +10 -11
- package/dist/types/components/composites/sheet/use-sheet-drag.d.ts +13 -0
- package/dist/{table.d.ts → types/components/composites/table/Table.d.ts} +12 -12
- package/dist/{tabs.d.ts → types/components/composites/tabs/Tabs.d.ts} +13 -13
- package/dist/types/components/composites/toast/Toast.d.ts +10 -0
- package/dist/{toast-store.d.ts → types/components/composites/toast/toast-store.d.ts} +12 -14
- package/dist/{tooltip.d.ts → types/components/composites/tooltip/Tooltip.d.ts} +6 -10
- package/dist/types/components/composites/tooltip/tooltip-host.d.ts +1 -0
- package/dist/types/components/composites/tooltip/tooltip-store.d.ts +29 -0
- package/dist/types/components/compound/support-rail/SupportRail.d.ts +41 -0
- package/dist/types/components/dev/MotionDevtools.d.ts +24 -0
- package/dist/types/components/dev/slowmo-engine.d.ts +27 -0
- package/dist/types/components/expressive/confetti/Confetti.d.ts +43 -0
- package/dist/types/components/expressive/facebook-feed/FacebookFeed.d.ts +73 -0
- package/dist/types/components/expressive/facebook-feed/chrome.d.ts +30 -0
- package/dist/types/components/expressive/facebook-feed/icons.d.ts +21 -0
- package/dist/types/components/expressive/facebook-feed/post.d.ts +25 -0
- package/dist/types/components/expressive/facebook-feed/reel.d.ts +26 -0
- package/dist/types/components/expressive/facebook-feed/story.d.ts +20 -0
- package/dist/types/components/expressive/flow-field/FlowField.d.ts +23 -0
- package/dist/types/components/expressive/instagram-feed/InstagramFeed.d.ts +59 -0
- package/dist/types/components/expressive/lens/Lens.d.ts +23 -0
- package/dist/types/components/expressive/morphing-text/MorphingText.d.ts +21 -0
- package/dist/types/components/expressive/odometer/Odometer.d.ts +21 -0
- package/dist/types/components/expressive/tiktok/TikTok.d.ts +85 -0
- package/dist/types/components/expressive/tiktok/glyphs.d.ts +40 -0
- package/dist/types/components/expressive/typing-lines/TypingLines.d.ts +25 -0
- package/dist/types/components/expressive/weight-field/WeightField.d.ts +19 -0
- package/dist/types/components/expressive/youtube/YouTube.d.ts +73 -0
- package/dist/types/components/expressive/youtube/format.d.ts +2 -0
- package/dist/types/components/expressive/youtube/glyphs.d.ts +16 -0
- package/dist/types/components/expressive/youtube/media.d.ts +8 -0
- package/dist/types/components/expressive/youtube/post.d.ts +19 -0
- package/dist/types/components/expressive/youtube/short.d.ts +18 -0
- package/dist/types/components/expressive/youtube/video.d.ts +14 -0
- package/dist/types/components/internal/collection/collection.d.ts +19 -0
- package/dist/types/components/internal/glass/glint.d.ts +1 -0
- package/dist/types/components/internal/hooks/use-controllable.d.ts +1 -0
- package/dist/types/components/internal/hooks/use-media-query.d.ts +1 -0
- package/dist/types/components/internal/hooks/use-scroll-edges.d.ts +10 -0
- package/dist/types/components/internal/hooks/use-typeahead.d.ts +5 -0
- package/dist/types/components/internal/icon/Icon.d.ts +33 -0
- package/dist/types/components/internal/icon/IconSlot.d.ts +7 -0
- package/dist/types/components/internal/menu/menu-row.d.ts +11 -0
- package/dist/types/components/internal/overlay/focus.d.ts +8 -0
- package/dist/types/components/internal/overlay/layer.d.ts +38 -0
- package/dist/types/components/internal/overlay/modal.d.ts +18 -0
- package/dist/types/components/internal/overlay/position.d.ts +14 -0
- package/dist/types/components/internal/support/types.d.ts +15 -0
- package/dist/types/components/internal/utils/activation.d.ts +23 -0
- package/dist/types/components/internal/utils/cx.d.ts +1 -0
- package/dist/types/components/internal/utils/token-px.d.ts +1 -0
- package/dist/{avatar.d.ts → types/components/primitives/avatar/Avatar.d.ts} +10 -12
- package/dist/{avatar-group.d.ts → types/components/primitives/avatar/AvatarGroup.d.ts} +7 -9
- package/dist/{badge.d.ts → types/components/primitives/badge/Badge.d.ts} +8 -10
- package/dist/types/components/primitives/badge/CountBadge.d.ts +8 -0
- package/dist/types/components/primitives/badge/StatusBadge.d.ts +15 -0
- package/dist/types/components/primitives/badge/digit-strip.d.ts +5 -0
- package/dist/{button.d.ts → types/components/primitives/button/Button.d.ts} +6 -8
- package/dist/{checkbox.d.ts → types/components/primitives/checkbox/Checkbox.d.ts} +6 -8
- package/dist/types/components/primitives/checkbox/check-glyph.d.ts +6 -0
- package/dist/{collapse.d.ts → types/components/primitives/collapse/Collapse.d.ts} +12 -13
- package/dist/types/components/primitives/collapse/collapse.typecheck.d.ts +2 -0
- package/dist/{number-field.d.ts → types/components/primitives/input/NumberField.d.ts} +7 -9
- package/dist/{otp-field.d.ts → types/components/primitives/input/OtpField.d.ts} +6 -8
- package/dist/{text-field.d.ts → types/components/primitives/input/TextField.d.ts} +7 -9
- package/dist/types/components/primitives/input/field-chrome.d.ts +45 -0
- package/dist/{radio-group.d.ts → types/components/primitives/radio-group/RadioGroup.d.ts} +8 -10
- package/dist/{tag.d.ts → types/components/primitives/tag/Tag.d.ts} +9 -12
- package/dist/{toggle-tag.d.ts → types/components/primitives/tag/ToggleTag.d.ts} +7 -8
- package/dist/{textarea.d.ts → types/components/primitives/textarea/Textarea.d.ts} +7 -9
- package/dist/{toggle.d.ts → types/components/primitives/toggle/Toggle.d.ts} +6 -8
- package/dist/{dom-props-C0jrllBw.d.ts → types/dom-props.d.ts} +1 -3
- package/dist/types/engine/animate.d.ts +30 -0
- package/dist/types/engine/drag.d.ts +17 -0
- package/dist/types/engine/ease.d.ts +15 -0
- package/dist/types/engine/flip.d.ts +18 -0
- package/dist/types/engine/index.d.ts +4 -0
- package/dist/types/engine/loop.d.ts +9 -0
- package/dist/types/motion/element.d.ts +17 -0
- package/dist/types/motion/flip.d.ts +4 -0
- package/dist/types/motion/glide.d.ts +11 -0
- package/dist/types/motion/motion-timing.d.ts +16 -0
- package/dist/types/motion/presence-context.d.ts +11 -0
- package/dist/types/motion/presence.d.ts +12 -0
- package/dist/types/motion/presets.d.ts +6 -0
- package/dist/{timing-7JA_zQHP.d.ts → types/motion/timing.d.ts} +9 -9
- package/dist/types/motion/use-motion.d.ts +17 -0
- package/dist/types/tokens/component-styles.generated.d.ts +262 -0
- package/dist/{motion-scale-Canq4stZ.d.ts → types/tokens/motion-scale.d.ts} +4 -4
- package/dist/{motion-tokens.d.ts → types/tokens/motion-tokens.d.ts} +9 -9
- package/dist/types/tokens/theme-tokens.generated.d.ts +1249 -0
- package/dist/types/tokens/theme.d.ts +12 -0
- package/dist/typing-lines.css +92 -0
- package/dist/typing-lines.js +139 -0
- package/dist/typing-lines.js.map +1 -0
- package/dist/weight-field.css +84 -0
- package/dist/weight-field.js +17 -0
- package/dist/weight-field.js.map +1 -0
- package/dist/youtube.css +611 -0
- package/dist/youtube.js +814 -0
- package/dist/youtube.js.map +1 -0
- package/package.json +155 -49
- package/skills/zyncat-ui/SKILL.md +95 -0
- package/skills/zyncat-ui/references/components.md +85 -0
- package/skills/zyncat-ui/references/recipes.md +171 -0
- package/skills/zyncat-ui/references/theming.md +83 -0
- package/src/components/composites/alert/Alert.tsx +13 -11
- package/src/components/composites/alert/Alert.usage.md +15 -0
- package/src/components/composites/alert/alert.css +126 -121
- package/src/components/composites/date-picker/DateField.tsx +7 -2
- package/src/components/composites/date-picker/DateField.usage.md +10 -0
- package/src/components/composites/date-picker/DateRangeField.tsx +18 -16
- package/src/components/composites/date-picker/DateRangeField.usage.md +10 -0
- package/src/components/composites/date-picker/DateTimeField.tsx +10 -5
- package/src/components/composites/date-picker/DateTimeField.usage.md +12 -0
- package/src/components/composites/date-picker/TimeField.tsx +3 -1
- package/src/components/composites/date-picker/TimeField.usage.md +12 -0
- package/src/components/composites/date-picker/calendar-panel.tsx +15 -10
- package/src/components/composites/date-picker/date-picker.css +563 -559
- package/src/components/composites/date-picker/field-shell.tsx +9 -3
- package/src/components/composites/date-picker/range-panel.tsx +23 -8
- package/src/components/composites/date-picker/time-core.tsx +2 -0
- package/src/components/composites/dialog/Dialog.tsx +30 -15
- package/src/components/composites/dialog/Dialog.usage.md +17 -0
- package/src/components/composites/dialog/dialog.css +176 -172
- package/src/components/composites/dropdown/Dropdown.tsx +184 -0
- package/src/components/composites/dropdown/Dropdown.usage.md +19 -0
- package/src/components/composites/dropdown/dropdown.css +65 -0
- package/src/components/composites/dropdown/menu-panel.tsx +255 -0
- package/src/components/composites/dropdown/types.ts +95 -0
- package/src/components/composites/emoji-picker/EmojiPickerPanel.tsx +153 -0
- package/src/components/composites/emoji-picker/EmojiPickerPanel.usage.md +26 -0
- package/src/components/composites/emoji-picker/category-icons.ts +29 -0
- package/src/components/composites/emoji-picker/data.ts +83 -0
- package/src/components/composites/emoji-picker/dom.ts +79 -0
- package/src/components/composites/emoji-picker/getEmojiUrl.ts +17 -0
- package/src/components/composites/emoji-picker/navigation.ts +86 -0
- package/src/components/composites/emoji-picker/picker.ts +169 -0
- package/src/components/composites/emoji-picker/react/category-bar.tsx +77 -0
- package/src/components/composites/emoji-picker/react/useEmojiPicker.ts +139 -0
- package/src/components/composites/emoji-picker/scaffold.ts +74 -0
- package/src/components/composites/emoji-picker/search.ts +79 -0
- package/src/components/composites/emoji-picker/styles.css +221 -0
- package/src/components/composites/emoji-picker/types.ts +14 -0
- package/src/components/composites/modal/Modal.tsx +24 -13
- package/src/components/composites/modal/Modal.usage.md +24 -0
- package/src/components/composites/modal/modal.css +11 -7
- package/src/components/composites/pagination/Pagination.tsx +6 -11
- package/src/components/composites/pagination/Pagination.usage.md +12 -0
- package/src/components/composites/pagination/pagination.css +42 -38
- package/src/components/composites/popover/Popover.tsx +22 -7
- package/src/components/composites/popover/Popover.usage.md +15 -0
- package/src/components/composites/popover/popover.css +69 -65
- package/src/components/composites/select/MultiSelect.tsx +13 -5
- package/src/components/composites/select/MultiSelect.usage.md +12 -0
- package/src/components/composites/select/Select.tsx +23 -7
- package/src/components/composites/select/Select.usage.md +20 -0
- package/src/components/composites/select/core/index.ts +1 -1
- package/src/components/composites/select/core/menu.tsx +8 -6
- package/src/components/composites/select/core/panel.tsx +25 -26
- package/src/components/composites/select/core/trigger.tsx +36 -24
- package/src/components/composites/select/core/types.ts +17 -15
- package/src/components/composites/select/core/use-listbox.ts +22 -21
- package/src/components/composites/select/select.css +291 -386
- package/src/components/composites/sheet/Sheet.tsx +28 -18
- package/src/components/composites/sheet/Sheet.usage.md +15 -0
- package/src/components/composites/sheet/sheet.css +47 -23
- package/src/components/composites/sheet/use-sheet-drag.ts +19 -15
- package/src/components/composites/table/Table.tsx +17 -6
- package/src/components/composites/table/Table.usage.md +19 -0
- package/src/components/composites/table/table.css +333 -323
- package/src/components/composites/tabs/Tabs.tsx +31 -23
- package/src/components/composites/tabs/Tabs.usage.md +13 -0
- package/src/components/composites/tabs/tabs.css +163 -156
- package/src/components/composites/toast/Toast.tsx +48 -51
- package/src/components/composites/toast/Toast.usage.md +23 -0
- package/src/components/composites/toast/toast-store.usage.md +16 -0
- package/src/components/composites/toast/toast.css +237 -233
- package/src/components/composites/tooltip/Tooltip.tsx +13 -8
- package/src/components/composites/tooltip/Tooltip.usage.md +14 -0
- package/src/components/composites/tooltip/tooltip-host.tsx +29 -61
- package/src/components/composites/tooltip/tooltip-store.ts +10 -0
- package/src/components/composites/tooltip/tooltip.css +79 -78
- package/src/components/compound/support-rail/SupportRail.tsx +343 -0
- package/src/components/compound/support-rail/SupportRail.usage.md +18 -0
- package/src/components/compound/support-rail/support-rail.css +421 -0
- package/src/components/dev/MotionDevtools.tsx +3 -1
- package/src/components/dev/MotionDevtools.usage.md +16 -0
- package/src/components/dev/motion-devtools.css +237 -233
- package/src/components/expressive/confetti/Confetti.tsx +727 -0
- package/src/components/expressive/confetti/Confetti.usage.md +18 -0
- package/src/components/expressive/confetti/confetti.css +45 -0
- package/src/components/expressive/facebook-feed/FacebookFeed.tsx +200 -0
- package/src/components/expressive/facebook-feed/FacebookFeed.usage.md +18 -0
- package/src/components/expressive/facebook-feed/chrome.tsx +120 -0
- package/src/components/expressive/facebook-feed/facebook-feed.css +880 -0
- package/src/components/expressive/facebook-feed/icons.tsx +145 -0
- package/src/components/expressive/facebook-feed/post.tsx +213 -0
- package/src/components/expressive/facebook-feed/reel.tsx +199 -0
- package/src/components/expressive/facebook-feed/story.tsx +132 -0
- package/src/components/expressive/flow-field/FlowField.tsx +348 -0
- package/src/components/expressive/flow-field/FlowField.usage.md +19 -0
- package/src/components/expressive/flow-field/flow-field.css +49 -0
- package/src/components/expressive/instagram-feed/InstagramFeed.tsx +374 -0
- package/src/components/expressive/instagram-feed/InstagramFeed.usage.md +18 -0
- package/src/components/expressive/instagram-feed/instagram-feed.css +378 -0
- package/src/components/expressive/lens/Lens.tsx +415 -0
- package/src/components/expressive/lens/Lens.usage.md +20 -0
- package/src/components/expressive/lens/lens.css +119 -0
- package/src/components/expressive/morphing-text/MorphingText.tsx +328 -0
- package/src/components/expressive/morphing-text/MorphingText.usage.md +19 -0
- package/src/components/expressive/morphing-text/morphing-text.css +84 -0
- package/src/components/expressive/odometer/Odometer.tsx +158 -0
- package/src/components/expressive/odometer/Odometer.usage.md +17 -0
- package/src/components/expressive/odometer/odometer.css +61 -0
- package/src/components/expressive/tiktok/TikTok.tsx +542 -0
- package/src/components/expressive/tiktok/TikTok.usage.md +17 -0
- package/src/components/expressive/tiktok/glyphs.tsx +163 -0
- package/src/components/expressive/tiktok/tiktok.css +662 -0
- package/src/components/expressive/typing-lines/TypingLines.tsx +0 -0
- package/src/components/expressive/typing-lines/TypingLines.usage.md +17 -0
- package/src/components/expressive/typing-lines/typing-lines.css +92 -0
- package/src/components/expressive/weight-field/WeightField.tsx +41 -0
- package/src/components/expressive/weight-field/WeightField.usage.md +20 -0
- package/src/components/expressive/weight-field/weight-field.css +84 -0
- package/src/components/expressive/youtube/YouTube.tsx +192 -0
- package/src/components/expressive/youtube/YouTube.usage.md +18 -0
- package/src/components/expressive/youtube/format.ts +22 -0
- package/src/components/expressive/youtube/glyphs.tsx +235 -0
- package/src/components/expressive/youtube/media.tsx +18 -0
- package/src/components/expressive/youtube/post.tsx +282 -0
- package/src/components/expressive/youtube/short.tsx +212 -0
- package/src/components/expressive/youtube/video.tsx +75 -0
- package/src/components/expressive/youtube/youtube.css +611 -0
- package/src/components/internal/collection/collection.ts +44 -0
- package/src/components/internal/glass/glass.css +88 -84
- package/src/components/internal/hooks/use-media-query.ts +20 -0
- package/src/components/internal/hooks/use-typeahead.ts +28 -0
- package/src/components/internal/icon/Icon.tsx +2 -0
- package/src/components/internal/icon/IconSlot.tsx +2 -0
- package/src/components/internal/icon/icon.css +34 -30
- package/src/components/internal/menu/menu-row.tsx +34 -0
- package/src/components/internal/menu/menu-surface.css +127 -0
- package/src/components/internal/overlay/focus.ts +26 -10
- package/src/components/internal/overlay/layer.tsx +50 -9
- package/src/components/internal/overlay/modal.tsx +14 -12
- package/src/components/internal/overlay/overlay.css +24 -20
- package/src/components/internal/overlay/position.ts +19 -9
- package/src/components/internal/overlay/trigger.css +13 -0
- package/src/components/internal/support/types.ts +16 -0
- package/src/components/internal/utils/activation.ts +78 -0
- package/src/components/primitives/avatar/Avatar.tsx +2 -0
- package/src/components/primitives/avatar/Avatar.usage.md +12 -0
- package/src/components/primitives/avatar/AvatarGroup.tsx +3 -1
- package/src/components/primitives/avatar/AvatarGroup.usage.md +15 -0
- package/src/components/primitives/avatar/avatar.css +179 -174
- package/src/components/primitives/badge/Badge.tsx +3 -1
- package/src/components/primitives/badge/Badge.usage.md +14 -0
- package/src/components/primitives/badge/CountBadge.tsx +2 -2
- package/src/components/primitives/badge/CountBadge.usage.md +13 -0
- package/src/components/primitives/badge/StatusBadge.tsx +3 -1
- package/src/components/primitives/badge/StatusBadge.usage.md +14 -0
- package/src/components/primitives/badge/badge.css +166 -160
- package/src/components/primitives/badge/digit-strip.css +65 -0
- package/src/components/primitives/badge/{odometer.tsx → digit-strip.tsx} +3 -3
- package/src/components/primitives/button/Button.tsx +2 -0
- package/src/components/primitives/button/Button.usage.md +14 -0
- package/src/components/primitives/button/button.css +272 -246
- package/src/components/primitives/checkbox/Checkbox.tsx +3 -1
- package/src/components/primitives/checkbox/Checkbox.usage.md +12 -0
- package/src/components/primitives/checkbox/check-glyph.tsx +1 -0
- package/src/components/primitives/checkbox/checkbox.css +158 -153
- package/src/components/primitives/collapse/Collapse.tsx +3 -1
- package/src/components/primitives/collapse/Collapse.usage.md +17 -0
- package/src/components/primitives/collapse/collapse.css +70 -61
- package/src/components/primitives/collapse/collapse.typecheck.tsx +2 -0
- package/src/components/primitives/input/NumberField.tsx +18 -5
- package/src/components/primitives/input/NumberField.usage.md +12 -0
- package/src/components/primitives/input/OtpField.tsx +2 -0
- package/src/components/primitives/input/OtpField.usage.md +12 -0
- package/src/components/primitives/input/TextField.tsx +16 -4
- package/src/components/primitives/input/TextField.usage.md +13 -0
- package/src/components/primitives/input/field-chrome.tsx +11 -2
- package/src/components/primitives/input/input.css +296 -318
- package/src/components/primitives/radio-group/RadioGroup.tsx +20 -44
- package/src/components/primitives/radio-group/RadioGroup.usage.md +13 -0
- package/src/components/primitives/radio-group/radio-group.css +275 -276
- package/src/components/primitives/tag/Tag.tsx +10 -6
- package/src/components/primitives/tag/Tag.usage.md +14 -0
- package/src/components/primitives/tag/ToggleTag.tsx +4 -2
- package/src/components/primitives/tag/ToggleTag.usage.md +14 -0
- package/src/components/primitives/tag/tag.css +209 -231
- package/src/components/primitives/textarea/Textarea.tsx +17 -7
- package/src/components/primitives/textarea/Textarea.usage.md +12 -0
- package/src/components/primitives/textarea/textarea.css +205 -211
- package/src/components/primitives/toggle/Toggle.tsx +3 -1
- package/src/components/primitives/toggle/Toggle.usage.md +12 -0
- package/src/components/primitives/toggle/toggle.css +139 -135
- package/src/engine/animate.ts +40 -13
- package/src/engine/ease.ts +1 -0
- package/src/engine/flip.ts +32 -15
- package/src/engine/index.ts +2 -1
- package/src/engine/loop.ts +97 -0
- package/src/mcp/server.ts +315 -218
- package/src/motion/element.tsx +1 -0
- package/src/motion/flip.ts +29 -10
- package/src/motion/glide.tsx +11 -14
- package/src/motion/glide.usage.md +15 -0
- package/src/motion/motion-timing.ts +3 -3
- package/src/motion/presence.tsx +12 -5
- package/src/motion/presets.ts +13 -0
- package/src/motion/timing.ts +1 -0
- package/src/motion/use-motion.ts +16 -3
- package/src/styles.css +5 -0
- package/src/tokens/avatar.css +20 -16
- package/src/tokens/color.css +67 -56
- package/src/tokens/component-styles.generated.ts +270 -0
- package/src/tokens/elevation.css +28 -17
- package/src/tokens/fonts.css +1 -1
- package/src/tokens/glass.css +19 -15
- package/src/tokens/icons.css +8 -4
- package/src/tokens/layers.css +9 -4
- package/src/tokens/motion-scale.ts +4 -0
- package/src/tokens/motion-tokens.ts +42 -12
- package/src/tokens/motion-tokens.usage.md +16 -0
- package/src/tokens/motion.css +63 -45
- package/src/tokens/radius.css +12 -8
- package/src/tokens/semantic.css +62 -54
- package/src/tokens/spacing.css +25 -21
- package/src/tokens/theme-tokens.generated.ts +1278 -0
- package/src/tokens/theme.tsx +83 -0
- package/src/tokens/theme.usage.md +36 -0
- package/src/tokens/typography.css +53 -49
- package/dist/chunk-2ERBBFZS.js.map +0 -1
- package/dist/chunk-2F5PITAO.js.map +0 -1
- package/dist/chunk-2QWJ6FAX.js.map +0 -1
- package/dist/chunk-62P3KD57.js.map +0 -1
- package/dist/chunk-7SZCJ7WI.js.map +0 -1
- package/dist/chunk-AIQXS2XY.js.map +0 -1
- package/dist/chunk-AMFGY56I.js.map +0 -1
- package/dist/chunk-CONSWNIV.js.map +0 -1
- package/dist/chunk-DKVUPFQR.js.map +0 -1
- package/dist/chunk-I4XQ4PV2.js.map +0 -1
- package/dist/chunk-NEF5XAHG.js.map +0 -1
- package/dist/chunk-NGTA34V2.js.map +0 -1
- package/dist/chunk-NNXJCLTV.js.map +0 -1
- package/dist/chunk-PMECHR3A.js.map +0 -1
- package/dist/chunk-QDK66S4G.js.map +0 -1
- package/dist/chunk-S5ZTZANS.js.map +0 -1
- package/dist/chunk-U4MHX3KH.js.map +0 -1
- package/dist/chunk-VTJTGVZZ.js.map +0 -1
- package/dist/chunk-WFHRAKN3.js.map +0 -1
- package/dist/chunk-WM5J5TDI.js.map +0 -1
- package/dist/chunk-XJQQQJAO.js.map +0 -1
- package/dist/chunk-XWUWYSCT.js.map +0 -1
- package/dist/chunk-Y7AJQVWJ.js.map +0 -1
- package/dist/chunk-YGCVWGUG.js.map +0 -1
- package/dist/chunk-YGGCQNNU.js.map +0 -1
- package/dist/count-badge.d.ts +0 -13
- package/dist/date-range-field.d.ts +0 -33
- package/dist/field-chrome-CMPOQSLs.d.ts +0 -28
- package/dist/field-shell-Cuda-feL.d.ts +0 -24
- package/dist/glide.d.ts +0 -15
- package/dist/motion-devtools.d.ts +0 -51
- package/dist/status-badge.d.ts +0 -19
- package/dist/toast.d.ts +0 -12
- package/llms.txt +0 -220
- package/src/components/primitives/badge/odometer.css +0 -62
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { CSSProperties, InputHTMLAttributes } from 'react';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
1
|
+
import './input.css';
|
|
2
|
+
import type { CSSProperties, InputHTMLAttributes } from 'react';
|
|
3
|
+
import type { DataAttributes } from '../../../dom-props';
|
|
4
|
+
import { type FieldCoreMessagingProps, type FieldIdProps } from './field-chrome';
|
|
6
5
|
interface NumberFieldOwnProps extends FieldIdProps, FieldCoreMessagingProps {
|
|
7
6
|
/** Unit suffix shown inside the field (e.g. "days", "%"). */
|
|
8
7
|
unit?: string;
|
|
@@ -27,10 +26,9 @@ interface NumberFieldOwnProps extends FieldIdProps, FieldCoreMessagingProps {
|
|
|
27
26
|
/** Inline styles merged onto the field root. */
|
|
28
27
|
style?: CSSProperties;
|
|
29
28
|
}
|
|
30
|
-
interface NumberFieldProps extends NumberFieldOwnProps {
|
|
29
|
+
export interface NumberFieldProps extends NumberFieldOwnProps {
|
|
31
30
|
/** Standard <input> attributes (name, aria-*, ...) forwarded to the input. */
|
|
32
31
|
htmlProps?: Omit<InputHTMLAttributes<HTMLInputElement>, keyof NumberFieldOwnProps | 'size' | 'value' | 'onChange' | 'min' | 'max' | 'step'> & DataAttributes;
|
|
33
32
|
}
|
|
34
|
-
declare function NumberField({ id, label, helper, error, unit, min, max, step, value, defaultValue, onChange, disabled, size, className, style, htmlProps, }: NumberFieldProps): react.JSX.Element;
|
|
35
|
-
|
|
36
|
-
export { NumberField, type NumberFieldProps };
|
|
33
|
+
export declare function NumberField({ id, label, helper, error, unit, min, max, step, value, defaultValue, onChange, disabled, size, className, style, htmlProps, }: NumberFieldProps): import("react").JSX.Element;
|
|
34
|
+
export {};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { CSSProperties, HTMLAttributes } from 'react';
|
|
3
|
-
import {
|
|
4
|
-
|
|
1
|
+
import './input.css';
|
|
2
|
+
import type { CSSProperties, HTMLAttributes } from 'react';
|
|
3
|
+
import type { DataAttributes } from '../../../dom-props';
|
|
5
4
|
interface OtpFieldOwnProps {
|
|
6
5
|
/** Number of slots. @default 6 */
|
|
7
6
|
length?: number;
|
|
@@ -22,10 +21,9 @@ interface OtpFieldOwnProps {
|
|
|
22
21
|
/** Inline styles merged onto the root wrapper. */
|
|
23
22
|
style?: CSSProperties;
|
|
24
23
|
}
|
|
25
|
-
interface OtpFieldProps extends OtpFieldOwnProps {
|
|
24
|
+
export interface OtpFieldProps extends OtpFieldOwnProps {
|
|
26
25
|
/** Standard <div> attributes (aria-*, data-*, ...) forwarded to the root wrapper. */
|
|
27
26
|
htmlProps?: Omit<HTMLAttributes<HTMLDivElement>, keyof OtpFieldOwnProps> & DataAttributes;
|
|
28
27
|
}
|
|
29
|
-
declare function OtpField({ length, value, onChange, group, error, disabled, size, className, style, htmlProps, }: OtpFieldProps): react.JSX.Element;
|
|
30
|
-
|
|
31
|
-
export { OtpField, type OtpFieldProps };
|
|
28
|
+
export declare function OtpField({ length, value, onChange, group, error, disabled, size, className, style, htmlProps, }: OtpFieldProps): import("react").JSX.Element;
|
|
29
|
+
export {};
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { InputHTMLAttributes, ReactNode
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
1
|
+
import './input.css';
|
|
2
|
+
import type { CSSProperties, InputHTMLAttributes, ReactNode } from 'react';
|
|
3
|
+
import type { DataAttributes } from '../../../dom-props';
|
|
4
|
+
import { type FieldMessagingProps } from './field-chrome';
|
|
6
5
|
/** The native <input> props TextField surfaces at the top level (the rest live in `htmlProps`). */
|
|
7
6
|
type TextFieldNative = Pick<InputHTMLAttributes<HTMLInputElement>, 'placeholder' | 'value' | 'onChange' | 'disabled' | 'readOnly' | 'maxLength' | 'minLength' | 'hidden' | 'pattern' | 'onKeyDown'>;
|
|
8
7
|
interface TextFieldOwnProps extends FieldMessagingProps, TextFieldNative {
|
|
@@ -19,10 +18,9 @@ interface TextFieldOwnProps extends FieldMessagingProps, TextFieldNative {
|
|
|
19
18
|
/** Available text like types */
|
|
20
19
|
type?: 'text' | 'search' | 'email' | 'url' | 'password';
|
|
21
20
|
}
|
|
22
|
-
interface TextFieldProps extends TextFieldOwnProps {
|
|
21
|
+
export interface TextFieldProps extends TextFieldOwnProps {
|
|
23
22
|
/** Standard <input> attributes (name, autoComplete, maxLength, aria-*, ...) forwarded to the input. */
|
|
24
23
|
htmlProps?: Omit<InputHTMLAttributes<HTMLInputElement>, keyof TextFieldOwnProps | 'size'> & DataAttributes;
|
|
25
24
|
}
|
|
26
|
-
declare function TextField({ label, helper, error, warning, success, leadingIcon, clearable, size, value, htmlProps, className, style, optional, ...rest }: TextFieldProps): react.JSX.Element;
|
|
27
|
-
|
|
28
|
-
export { TextField, type TextFieldProps };
|
|
25
|
+
export declare function TextField({ label, helper, error, warning, success, leadingIcon, clearable, size, value, htmlProps, className, style, optional, ...rest }: TextFieldProps): import("react").JSX.Element;
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import './input.css';
|
|
2
|
+
import type { ReactNode } from 'react';
|
|
3
|
+
import { type IconName } from '../../internal/icon/Icon';
|
|
4
|
+
export interface FieldIdProps {
|
|
5
|
+
/** Field id, ties the label to the control. */
|
|
6
|
+
id?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface FieldRequirementProps {
|
|
9
|
+
/** Mark the control required - reaches the native element and shows a danger `*` after the label. */
|
|
10
|
+
required?: boolean;
|
|
11
|
+
/** Show a muted "(optional)" after the label. */
|
|
12
|
+
optional?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface FieldCoreMessagingProps {
|
|
15
|
+
/** Label text (sentence case). */
|
|
16
|
+
label?: ReactNode;
|
|
17
|
+
/** Neutral helper text - shown when there's no validation message. */
|
|
18
|
+
helper?: ReactNode;
|
|
19
|
+
/** Error message - sets the error state (border + icon + colour). Wins over warning/success/helper. */
|
|
20
|
+
error?: ReactNode;
|
|
21
|
+
}
|
|
22
|
+
export interface FieldMessagingProps extends FieldIdProps, FieldRequirementProps, FieldCoreMessagingProps {
|
|
23
|
+
/** Warning message - amber state. Loses to `error`; wins over `success`/`helper`. */
|
|
24
|
+
warning?: ReactNode;
|
|
25
|
+
/** Success message - green state. Loses to `error`/`warning`; wins over `helper`. */
|
|
26
|
+
success?: ReactNode;
|
|
27
|
+
}
|
|
28
|
+
export interface FieldLabelProps extends FieldIdProps, FieldRequirementProps {
|
|
29
|
+
/** Label text (sentence case). */
|
|
30
|
+
label?: ReactNode;
|
|
31
|
+
}
|
|
32
|
+
export declare function FieldLabel({ id, label, required, optional }: FieldLabelProps): import("react").JSX.Element;
|
|
33
|
+
export interface FieldMessageProps {
|
|
34
|
+
id?: string;
|
|
35
|
+
message?: ReactNode;
|
|
36
|
+
icon?: IconName | null;
|
|
37
|
+
}
|
|
38
|
+
export declare function FieldMessage({ id, message, icon }: FieldMessageProps): import("react").JSX.Element;
|
|
39
|
+
export declare const fieldMessageId: (baseId: string, message: ReactNode) => string | undefined;
|
|
40
|
+
export declare const joinIds: (...ids: (string | undefined | null)[]) => string | undefined;
|
|
41
|
+
export declare function resolveFieldMessage(error: ReactNode, warning: ReactNode, success: ReactNode, helper: ReactNode): {
|
|
42
|
+
state: string;
|
|
43
|
+
msg: ReactNode;
|
|
44
|
+
msgIcon: IconName | null;
|
|
45
|
+
};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
interface RadioOption {
|
|
1
|
+
import './radio-group.css';
|
|
2
|
+
import { type CSSProperties, type FieldsetHTMLAttributes, type ReactNode } from 'react';
|
|
3
|
+
import type { DataAttributes } from '../../../dom-props';
|
|
4
|
+
import type { FieldRequirementProps } from '../input/field-chrome';
|
|
5
|
+
export interface RadioOption {
|
|
7
6
|
/** The stored value - what `onChange` returns and `value` matches. */
|
|
8
7
|
value: string;
|
|
9
8
|
/** Visible label (sentence case). */
|
|
@@ -43,10 +42,9 @@ interface RadioGroupOwnProps extends FieldRequirementProps {
|
|
|
43
42
|
/** Inline styles merged onto the root element. */
|
|
44
43
|
style?: CSSProperties;
|
|
45
44
|
}
|
|
46
|
-
interface RadioGroupProps extends RadioGroupOwnProps {
|
|
45
|
+
export interface RadioGroupProps extends RadioGroupOwnProps {
|
|
47
46
|
/** Standard <fieldset> attributes (aria-*, data-*, ...) forwarded to the root. */
|
|
48
47
|
htmlProps?: Omit<FieldsetHTMLAttributes<HTMLFieldSetElement>, keyof RadioGroupOwnProps> & DataAttributes;
|
|
49
48
|
}
|
|
50
|
-
declare function RadioGroup({ name, value, onChange, label, helper, error, required, optional, variant, orientation, size, disabled, options, className, style, htmlProps, }: RadioGroupProps): react.JSX.Element;
|
|
51
|
-
|
|
52
|
-
export { RadioGroup, type RadioGroupProps, type RadioOption };
|
|
49
|
+
export declare function RadioGroup({ name, value, onChange, label, helper, error, required, optional, variant, orientation, size, disabled, options, className, style, htmlProps, }: RadioGroupProps): import("react").JSX.Element;
|
|
50
|
+
export {};
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import './motion-scale-Canq4stZ.js';
|
|
6
|
-
|
|
1
|
+
import './tag.css';
|
|
2
|
+
import { type CSSProperties, type HTMLAttributes, type ReactNode, type Ref } from 'react';
|
|
3
|
+
import type { DataAttributes } from '../../../dom-props';
|
|
4
|
+
import type { DisableableAnimation } from '../../../motion/timing';
|
|
7
5
|
interface TagOwnProps {
|
|
8
6
|
/** Tag content; a string label also seeds the default remove-button `aria-label`. */
|
|
9
7
|
children: ReactNode;
|
|
@@ -23,7 +21,7 @@ interface TagOwnProps {
|
|
|
23
21
|
style?: CSSProperties;
|
|
24
22
|
}
|
|
25
23
|
/** Tag - the removable, editable label (stateless; the parent owns the list). */
|
|
26
|
-
interface TagProps extends TagOwnProps {
|
|
24
|
+
export interface TagProps extends TagOwnProps {
|
|
27
25
|
/** Standard <span> attributes forwarded to the tag root. */
|
|
28
26
|
htmlProps?: Omit<HTMLAttributes<HTMLSpanElement>, keyof TagOwnProps> & DataAttributes;
|
|
29
27
|
/** Ref to the tag root span. */
|
|
@@ -42,11 +40,10 @@ interface TagGroupOwnProps {
|
|
|
42
40
|
animation?: DisableableAnimation;
|
|
43
41
|
}
|
|
44
42
|
/** TagGroup - wrapping flex row + removal/insertion choreography. */
|
|
45
|
-
interface TagGroupProps extends TagGroupOwnProps {
|
|
43
|
+
export interface TagGroupProps extends TagGroupOwnProps {
|
|
46
44
|
/** Standard <div> attributes forwarded to the group wrapper. */
|
|
47
45
|
htmlProps?: Omit<HTMLAttributes<HTMLDivElement>, keyof TagGroupOwnProps> & DataAttributes;
|
|
48
46
|
}
|
|
49
|
-
declare function Tag({ children, icon, onRemove, removeLabel, size, disabled, className, style, htmlProps, ref, }: TagProps): react.JSX.Element;
|
|
50
|
-
declare function TagGroup({ ariaLabel, className, style, children, htmlProps, animation }: TagGroupProps): react.JSX.Element;
|
|
51
|
-
|
|
52
|
-
export { Tag, TagGroup, type TagGroupProps, type TagProps };
|
|
47
|
+
export declare function Tag({ children, icon, onRemove, removeLabel, size, disabled, className, style, htmlProps, ref, }: TagProps): import("react").JSX.Element;
|
|
48
|
+
export declare function TagGroup({ ariaLabel, className, style, children, htmlProps, animation }: TagGroupProps): import("react").JSX.Element;
|
|
49
|
+
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
|
|
1
|
+
import './tag.css';
|
|
2
|
+
import '../collapse/collapse.css';
|
|
3
|
+
import type { ButtonHTMLAttributes, CSSProperties, ReactNode } from 'react';
|
|
4
|
+
import type { DataAttributes } from '../../../dom-props';
|
|
5
5
|
interface ToggleTagOwnProps {
|
|
6
6
|
/** Chip content; the label shown beside the tick or `icon`. */
|
|
7
7
|
children: ReactNode;
|
|
@@ -25,10 +25,9 @@ interface ToggleTagOwnProps {
|
|
|
25
25
|
style?: CSSProperties;
|
|
26
26
|
}
|
|
27
27
|
/** ToggleTag - the on/off filter chip (<button aria-pressed>). */
|
|
28
|
-
interface ToggleTagProps extends ToggleTagOwnProps {
|
|
28
|
+
export interface ToggleTagProps extends ToggleTagOwnProps {
|
|
29
29
|
/** Standard <button> attributes forwarded to the chip. */
|
|
30
30
|
htmlProps?: Omit<ButtonHTMLAttributes<HTMLButtonElement>, keyof ToggleTagOwnProps> & DataAttributes;
|
|
31
31
|
}
|
|
32
|
-
declare function ToggleTag({ children, selected: selectedProp, defaultSelected, onChange, icon, count, size, disabled, className, style, htmlProps, }: ToggleTagProps): react.JSX.Element;
|
|
33
|
-
|
|
34
|
-
export { ToggleTag, type ToggleTagProps };
|
|
32
|
+
export declare function ToggleTag({ children, selected: selectedProp, defaultSelected, onChange, icon, count, size, disabled, className, style, htmlProps, }: ToggleTagProps): import("react").JSX.Element;
|
|
33
|
+
export {};
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
1
|
+
import './textarea.css';
|
|
2
|
+
import { type ChangeEventHandler, type CSSProperties, type ReactNode, type TextareaHTMLAttributes } from 'react';
|
|
3
|
+
import type { DataAttributes } from '../../../dom-props';
|
|
4
|
+
import { type FieldMessagingProps } from '../input/field-chrome';
|
|
6
5
|
/** The native <textarea> props Textarea surfaces at the top level (the rest live in `htmlProps`). */
|
|
7
6
|
type TextareaNative = Pick<TextareaHTMLAttributes<HTMLTextAreaElement>, 'placeholder' | 'disabled' | 'readOnly' | 'onKeyDown'>;
|
|
8
7
|
interface TextareaOwnProps extends FieldMessagingProps, TextareaNative {
|
|
@@ -29,10 +28,9 @@ interface TextareaOwnProps extends FieldMessagingProps, TextareaNative {
|
|
|
29
28
|
/** Inline styles merged onto the field root. */
|
|
30
29
|
style?: CSSProperties;
|
|
31
30
|
}
|
|
32
|
-
interface TextareaProps extends TextareaOwnProps {
|
|
31
|
+
export interface TextareaProps extends TextareaOwnProps {
|
|
33
32
|
/** Standard <textarea> attributes (name, maxLength, aria-*, onKeyDown, ...) forwarded to the textarea. */
|
|
34
33
|
htmlProps?: Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, keyof TextareaOwnProps | 'rows'> & DataAttributes;
|
|
35
34
|
}
|
|
36
|
-
declare function Textarea({ id, label, required, optional, placeholder, helper, error, warning, success, value, onChange, onKeyDown, onSubmit, max, minRows, maxRows, warnAt, hint, size, disabled, readOnly, className, style, htmlProps, }: TextareaProps): react.JSX.Element;
|
|
37
|
-
|
|
38
|
-
export { Textarea, type TextareaProps };
|
|
35
|
+
export declare function Textarea({ id, label, required, optional, placeholder, helper, error, warning, success, value, onChange, onKeyDown, onSubmit, max, minRows, maxRows, warnAt, hint, size, disabled, readOnly, className, style, htmlProps, }: TextareaProps): import("react").JSX.Element;
|
|
36
|
+
export {};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
1
|
+
import './toggle.css';
|
|
2
|
+
import { type ChangeEventHandler, type CSSProperties, type InputHTMLAttributes, type ReactNode } from 'react';
|
|
3
|
+
import type { DataAttributes } from '../../../dom-props';
|
|
5
4
|
interface ToggleOwnProps {
|
|
6
5
|
/** Controlled checked state. Omit for uncontrolled (use `defaultChecked`). */
|
|
7
6
|
checked?: boolean;
|
|
@@ -22,10 +21,9 @@ interface ToggleOwnProps {
|
|
|
22
21
|
/** Inline styles merged onto the root label. */
|
|
23
22
|
style?: CSSProperties;
|
|
24
23
|
}
|
|
25
|
-
interface ToggleProps extends ToggleOwnProps {
|
|
24
|
+
export interface ToggleProps extends ToggleOwnProps {
|
|
26
25
|
/** Standard <input> attributes (name, value, required, aria-*, ...) forwarded to the switch input. */
|
|
27
26
|
htmlProps?: Omit<InputHTMLAttributes<HTMLInputElement>, keyof ToggleOwnProps | 'type'> & DataAttributes;
|
|
28
27
|
}
|
|
29
|
-
declare function Toggle({ checked, defaultChecked, disabled, size, label, description, className, style, onChange, htmlProps, }: ToggleProps): react.JSX.Element;
|
|
30
|
-
|
|
31
|
-
export { Toggle, type ToggleProps };
|
|
28
|
+
export declare function Toggle({ checked, defaultChecked, disabled, size, label, description, className, style, onChange, htmlProps, }: ToggleProps): import("react").JSX.Element;
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type Timing } from './ease';
|
|
2
|
+
export declare const clock: {
|
|
3
|
+
scale: number;
|
|
4
|
+
};
|
|
5
|
+
export interface Playback {
|
|
6
|
+
stop(): void;
|
|
7
|
+
finished: Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
type Vec = [number, number];
|
|
10
|
+
export type Length = number | `${number}%`;
|
|
11
|
+
export type Size = Length | 'auto';
|
|
12
|
+
export interface Layer {
|
|
13
|
+
x?: Length[];
|
|
14
|
+
y?: Length[];
|
|
15
|
+
scale?: number[] | Vec[];
|
|
16
|
+
opacity?: number[];
|
|
17
|
+
width?: Size[];
|
|
18
|
+
height?: Size[];
|
|
19
|
+
timing?: Timing;
|
|
20
|
+
composite?: CompositeOperation;
|
|
21
|
+
}
|
|
22
|
+
export type Placement = Omit<Layer, 'timing' | 'composite'>;
|
|
23
|
+
export interface PropertyHolder {
|
|
24
|
+
cancel(): void;
|
|
25
|
+
}
|
|
26
|
+
export declare function claim(el: HTMLElement, keys: string[], holder: PropertyHolder | null): void;
|
|
27
|
+
export declare function release(el: HTMLElement, keys: string[], holder: PropertyHolder): void;
|
|
28
|
+
export declare function animate(el: HTMLElement, ...layers: Layer[]): Playback;
|
|
29
|
+
export declare function set(el: HTMLElement, ...placements: Placement[]): void;
|
|
30
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
interface Axes {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
}
|
|
5
|
+
export interface PanInfo {
|
|
6
|
+
offset: Axes;
|
|
7
|
+
velocity: Axes;
|
|
8
|
+
}
|
|
9
|
+
interface DragHandlers {
|
|
10
|
+
onMove?: (info: PanInfo) => void;
|
|
11
|
+
onEnd?: (info: PanInfo) => void;
|
|
12
|
+
}
|
|
13
|
+
export declare function startDrag(origin: {
|
|
14
|
+
clientX: number;
|
|
15
|
+
clientY: number;
|
|
16
|
+
}, handlers: DragHandlers): () => void;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { MotionTransition } from '../tokens/motion-tokens';
|
|
2
|
+
export type EaseValue = NonNullable<MotionTransition['ease']>;
|
|
3
|
+
export interface Timing extends Omit<MotionTransition, 'ease'> {
|
|
4
|
+
ease?: EaseValue | EaseValue[];
|
|
5
|
+
times?: number[];
|
|
6
|
+
fill?: FillMode;
|
|
7
|
+
release?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface ResolvedTiming {
|
|
10
|
+
duration: number;
|
|
11
|
+
delay: number;
|
|
12
|
+
easing: string;
|
|
13
|
+
segments: string[] | null;
|
|
14
|
+
}
|
|
15
|
+
export declare function resolveTiming(timing?: Timing): ResolvedTiming;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type Playback } from './animate';
|
|
2
|
+
import type { Timing } from './ease';
|
|
3
|
+
export interface Box {
|
|
4
|
+
left: number;
|
|
5
|
+
top: number;
|
|
6
|
+
width: number;
|
|
7
|
+
height: number;
|
|
8
|
+
}
|
|
9
|
+
export declare function measure(el: HTMLElement): Box;
|
|
10
|
+
export declare function keepShared(key: string, box: Box): void;
|
|
11
|
+
export declare function readShared(key: string): Box | null;
|
|
12
|
+
export declare function dropShared(key: string): void;
|
|
13
|
+
export interface FlipOptions {
|
|
14
|
+
/** How a changed box size is reconciled: cheap scale correction, a real width/height morph, or left alone. */
|
|
15
|
+
size?: 'scale' | 'morph' | 'none';
|
|
16
|
+
timing?: Timing;
|
|
17
|
+
}
|
|
18
|
+
export declare function flip(el: HTMLElement, from: Box, options?: FlipOptions): Playback | null;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { animate, set, clock, type Layer, type Placement, type Playback } from './animate';
|
|
2
|
+
export { loop, type LoopOptions, type SimulationFrame } from './loop';
|
|
3
|
+
export { flip, measure, keepShared, readShared, dropShared, type Box, type FlipOptions } from './flip';
|
|
4
|
+
export { startDrag, type PanInfo } from './drag';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type Playback } from './animate';
|
|
2
|
+
export type SimulationFrame = (k: number, dt: number, now: number) => void;
|
|
3
|
+
export interface LoopOptions {
|
|
4
|
+
el?: HTMLElement;
|
|
5
|
+
claims?: string[];
|
|
6
|
+
speed?: () => number;
|
|
7
|
+
snap?: () => void;
|
|
8
|
+
}
|
|
9
|
+
export declare function loop(frame: SimulationFrame, options?: LoopOptions): Playback;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type ReactNode, type Ref } from 'react';
|
|
2
|
+
import { type FlipTuning } from './flip';
|
|
3
|
+
import { type MotionSpecs } from './use-motion';
|
|
4
|
+
export interface MotionProps extends MotionSpecs {
|
|
5
|
+
/** Tag for the element this renders. @default 'div' */
|
|
6
|
+
as?: string;
|
|
7
|
+
/** FLIP this element from its previous box on every render. Implied by `layoutId`. */
|
|
8
|
+
layout?: boolean;
|
|
9
|
+
/** FLIP from whatever element last held this id, so the box travels between nodes. */
|
|
10
|
+
layoutId?: string;
|
|
11
|
+
/** Tunes whichever layout animation is active; ignored without `layout` or `layoutId`. */
|
|
12
|
+
layoutTransition?: FlipTuning;
|
|
13
|
+
ref?: Ref<HTMLElement | null>;
|
|
14
|
+
children?: ReactNode;
|
|
15
|
+
[prop: string]: unknown;
|
|
16
|
+
}
|
|
17
|
+
export declare function Motion({ as, animate, exit, initial, deps, layout, layoutId, layoutTransition, ref, children, ...rest }: MotionProps): import("react").DOMElement<import("react").DOMAttributes<HTMLElement>, HTMLElement>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type RefObject } from 'react';
|
|
2
|
+
export type GlideApi = ReturnType<typeof useGlide>;
|
|
3
|
+
export declare function useGlide<T extends HTMLElement>(containerRef: RefObject<T | null>): {
|
|
4
|
+
ref: RefObject<HTMLSpanElement>;
|
|
5
|
+
enter: (target: HTMLElement | null) => void;
|
|
6
|
+
leave: () => void;
|
|
7
|
+
};
|
|
8
|
+
export declare function GlidePill({ className, glide }: {
|
|
9
|
+
className?: string;
|
|
10
|
+
glide: GlideApi;
|
|
11
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { DurationToken, EaseToken } from '../tokens/motion-scale';
|
|
2
|
+
import { type MotionTransition } from '../tokens/motion-tokens';
|
|
3
|
+
import { type DisableableAnimation } from './timing';
|
|
4
|
+
export interface DirectionDefault {
|
|
5
|
+
duration: DurationToken;
|
|
6
|
+
ease: EaseToken;
|
|
7
|
+
}
|
|
8
|
+
export interface MotionTimingDefaults {
|
|
9
|
+
open: DirectionDefault;
|
|
10
|
+
close: DirectionDefault;
|
|
11
|
+
}
|
|
12
|
+
export interface MotionTimings {
|
|
13
|
+
open: MotionTransition;
|
|
14
|
+
close: MotionTransition;
|
|
15
|
+
}
|
|
16
|
+
export declare function resolveMotionTiming(animation: DisableableAnimation | undefined, defaults: MotionTimingDefaults): MotionTimings;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface PresenceState {
|
|
2
|
+
/** False once the child has been removed from `children` but is still mounted for its exit. */
|
|
3
|
+
isPresent: boolean;
|
|
4
|
+
/** False for children present at the Presence's own first paint when `initial={false}`. */
|
|
5
|
+
initial: boolean;
|
|
6
|
+
/** Claims responsibility for animating this child out; call the returned release once the
|
|
7
|
+
* exit has finished. A child nobody claims is dropped as soon as it leaves `children`. */
|
|
8
|
+
claimExit: () => () => void;
|
|
9
|
+
}
|
|
10
|
+
export declare const PresenceContext: import("react").Context<PresenceState>;
|
|
11
|
+
export declare const usePresence: () => PresenceState;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
export interface PresenceProps {
|
|
3
|
+
/** Keyed children. A child animates out only if it renders a `<Motion>` carrying `exit`. */
|
|
4
|
+
children?: ReactNode;
|
|
5
|
+
/** Let children present on the first paint play their `animate`. @default true */
|
|
6
|
+
initial?: boolean;
|
|
7
|
+
/** `wait` holds entering children back until the outgoing ones have left. @default 'sync' */
|
|
8
|
+
mode?: 'sync' | 'wait';
|
|
9
|
+
/** Fires once the last exiting child has been removed. */
|
|
10
|
+
onExitComplete?: () => void;
|
|
11
|
+
}
|
|
12
|
+
export declare function Presence({ children, initial, mode, onExitComplete }: PresenceProps): import("react").FunctionComponentElement<import("react").FragmentProps>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Layer } from '../engine';
|
|
2
|
+
type LayerTiming = Layer['timing'];
|
|
3
|
+
export declare const popIn: (scale: number, timing: LayerTiming) => Layer;
|
|
4
|
+
export declare const popOut: (scale: number, timing: LayerTiming) => Layer;
|
|
5
|
+
export declare const slideIn: (distance: number, timing: LayerTiming) => Layer;
|
|
6
|
+
export {};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
type TimingDirection = 'open' | 'close';
|
|
1
|
+
import type { CSSProperties } from 'react';
|
|
2
|
+
import type { DurationToken, EaseToken } from '../tokens/motion-scale';
|
|
3
|
+
export type TimingDirection = 'open' | 'close';
|
|
4
4
|
/** One token for both directions, or split per direction; an omitted direction keeps its default. */
|
|
5
|
-
type DirectionalToken<Token extends string> = Token | {
|
|
5
|
+
export type DirectionalToken<Token extends string> = Token | {
|
|
6
6
|
[D in TimingDirection]?: Token;
|
|
7
7
|
};
|
|
8
8
|
/** Timing of an open/close transition, constrained to the motion token vocabulary -
|
|
9
9
|
* see DurationToken / EaseToken for what each token means. */
|
|
10
|
-
interface AnimationTiming {
|
|
10
|
+
export interface AnimationTiming {
|
|
11
11
|
/** Duration token(s); an omitted field or direction keeps the component's default. */
|
|
12
12
|
duration?: DirectionalToken<DurationToken>;
|
|
13
13
|
/** Ease token(s); an omitted field or direction keeps the component's default. */
|
|
@@ -15,13 +15,13 @@ interface AnimationTiming {
|
|
|
15
15
|
}
|
|
16
16
|
/** The `animation` prop shape: tokens to retime, omit for the component's defaults, or
|
|
17
17
|
* `null` to disable the transition entirely (it plays instantly). */
|
|
18
|
-
type DisableableAnimation = AnimationTiming | null;
|
|
18
|
+
export type DisableableAnimation = AnimationTiming | null;
|
|
19
19
|
/** Extend this to expose the timing API on a component; redeclare `animation`
|
|
20
20
|
* to document the component's own default tokens. */
|
|
21
|
-
interface TimingProps {
|
|
21
|
+
export interface TimingProps {
|
|
22
22
|
/** Transition timing - motion tokens only, each field a single token or { open, close };
|
|
23
23
|
* `null` disables the transition (it plays instantly). */
|
|
24
24
|
animation?: DisableableAnimation;
|
|
25
25
|
}
|
|
26
|
-
|
|
27
|
-
export
|
|
26
|
+
export declare function resolveDirection<Token extends string>(timing: DirectionalToken<Token> | undefined, dir: TimingDirection): Token | undefined;
|
|
27
|
+
export declare function timingVars(prefix: string, animation: DisableableAnimation | undefined): CSSProperties | undefined;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type RefObject } from 'react';
|
|
2
|
+
import { type Layer, type Playback } from '../engine';
|
|
3
|
+
export type Plays = Playback | Playback[] | null | undefined | void;
|
|
4
|
+
export type MotionSpec = Layer | Layer[] | ((el: HTMLElement) => Plays);
|
|
5
|
+
export declare function run(spec: MotionSpec | undefined, el: HTMLElement): Playback[];
|
|
6
|
+
export interface MotionSpecs {
|
|
7
|
+
/** Plays on mount, and again whenever `deps` change. */
|
|
8
|
+
animate?: MotionSpec;
|
|
9
|
+
/** Plays when a parent `<Presence>` drops this child; it stays mounted until this finishes. */
|
|
10
|
+
exit?: MotionSpec;
|
|
11
|
+
/** Play `animate` on mount. Falls back to the parent Presence's own `initial`. @default true */
|
|
12
|
+
initial?: boolean;
|
|
13
|
+
/** Replay `animate` when these change. Must keep a stable length. @default [] */
|
|
14
|
+
deps?: unknown[];
|
|
15
|
+
}
|
|
16
|
+
/** Drives `<Motion>`; use it directly on elements you hold a ref to but do not render. */
|
|
17
|
+
export declare function useMotion(ref: RefObject<HTMLElement | null>, { animate, exit, initial, deps }: MotionSpecs): void;
|