@remix-run/ui 0.2.0 → 0.4.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 +50 -164
- package/dist/accordion/index.d.ts +46 -0
- package/dist/accordion/index.js +142 -0
- package/dist/accordion/index.js.map +1 -0
- package/dist/accordion/primitives.d.ts +104 -0
- package/dist/accordion/primitives.js +312 -0
- package/dist/accordion/primitives.js.map +1 -0
- package/dist/{components/anchor/anchor.d.ts → anchor/index.d.ts} +8 -1
- package/dist/{components/anchor/anchor.js → anchor/index.js} +31 -12
- package/dist/anchor/index.js.map +1 -0
- package/dist/animation/demos/aspect-ratio.d.ts +2 -0
- package/dist/animation/demos/aspect-ratio.js +69 -0
- package/dist/animation/demos/aspect-ratio.js.map +1 -0
- package/dist/animation/demos/bouncy-switch.d.ts +2 -0
- package/dist/animation/demos/bouncy-switch.js +36 -0
- package/dist/animation/demos/bouncy-switch.js.map +1 -0
- package/dist/animation/demos/color-interpolation.d.ts +1 -0
- package/dist/animation/demos/color-interpolation.js +53 -0
- package/dist/animation/demos/color-interpolation.js.map +1 -0
- package/dist/animation/demos/cube.d.ts +2 -0
- package/dist/animation/demos/cube.js +86 -0
- package/dist/animation/demos/cube.js.map +1 -0
- package/dist/animation/demos/default-animate.d.ts +2 -0
- package/dist/animation/demos/default-animate.js +89 -0
- package/dist/animation/demos/default-animate.js.map +1 -0
- package/dist/animation/demos/drag-release.d.ts +24 -0
- package/dist/animation/demos/drag-release.js +96 -0
- package/dist/animation/demos/drag-release.js.map +1 -0
- package/dist/animation/demos/enter.d.ts +1 -0
- package/dist/animation/demos/enter.js +19 -0
- package/dist/animation/demos/enter.js.map +1 -0
- package/dist/animation/demos/exit.d.ts +2 -0
- package/dist/animation/demos/exit.js +58 -0
- package/dist/animation/demos/exit.js.map +1 -0
- package/dist/animation/demos/flip-toggle.d.ts +2 -0
- package/dist/animation/demos/flip-toggle.js +37 -0
- package/dist/animation/demos/flip-toggle.js.map +1 -0
- package/dist/animation/demos/hold-to-confirm.d.ts +13 -0
- package/dist/animation/demos/hold-to-confirm.js +211 -0
- package/dist/animation/demos/hold-to-confirm.js.map +1 -0
- package/dist/animation/demos/html-content.d.ts +2 -0
- package/dist/animation/demos/html-content.js +30 -0
- package/dist/animation/demos/html-content.js.map +1 -0
- package/dist/animation/demos/interruptible-keyframes.d.ts +1 -0
- package/dist/animation/demos/interruptible-keyframes.js +48 -0
- package/dist/animation/demos/interruptible-keyframes.js.map +1 -0
- package/dist/animation/demos/keyframes.d.ts +1 -0
- package/dist/animation/demos/keyframes.js +24 -0
- package/dist/animation/demos/keyframes.js.map +1 -0
- package/dist/animation/demos/material-ripple.d.ts +2 -0
- package/dist/animation/demos/material-ripple.js +127 -0
- package/dist/animation/demos/material-ripple.js.map +1 -0
- package/dist/animation/demos/mixin-presence-list.d.ts +2 -0
- package/dist/animation/demos/mixin-presence-list.js +88 -0
- package/dist/animation/demos/mixin-presence-list.js.map +1 -0
- package/dist/animation/demos/mixin-reclaim.d.ts +2 -0
- package/dist/animation/demos/mixin-reclaim.js +90 -0
- package/dist/animation/demos/mixin-reclaim.js.map +1 -0
- package/dist/animation/demos/multi-state-badge.d.ts +2 -0
- package/dist/animation/demos/multi-state-badge.js +231 -0
- package/dist/animation/demos/multi-state-badge.js.map +1 -0
- package/dist/animation/demos/press.d.ts +2 -0
- package/dist/animation/demos/press.js +63 -0
- package/dist/animation/demos/press.js.map +1 -0
- package/dist/animation/demos/reordering.d.ts +2 -0
- package/dist/animation/demos/reordering.js +53 -0
- package/dist/animation/demos/reordering.js.map +1 -0
- package/dist/animation/demos/rolling-square.d.ts +2 -0
- package/dist/animation/demos/rolling-square.js +42 -0
- package/dist/animation/demos/rolling-square.js.map +1 -0
- package/dist/animation/demos/rotate.d.ts +1 -0
- package/dist/animation/demos/rotate.js +18 -0
- package/dist/animation/demos/rotate.js.map +1 -0
- package/dist/animation/demos/shared-layout.d.ts +2 -0
- package/dist/animation/demos/shared-layout.js +114 -0
- package/dist/animation/demos/shared-layout.js.map +1 -0
- package/dist/animation/demos/transition-options.d.ts +1 -0
- package/dist/animation/demos/transition-options.js +21 -0
- package/dist/animation/demos/transition-options.js.map +1 -0
- package/dist/animation/spring.d.ts +22 -0
- package/dist/animation/spring.js +22 -0
- package/dist/animation/spring.js.map +1 -1
- package/dist/{components/breadcrumbs/breadcrumbs.js → breadcrumbs/index.js} +19 -19
- package/dist/breadcrumbs/index.js.map +1 -0
- package/dist/button/index.d.ts +15 -0
- package/dist/button/index.js +128 -0
- package/dist/button/index.js.map +1 -0
- package/dist/checkbox/index.d.ts +14 -0
- package/dist/checkbox/index.js +125 -0
- package/dist/checkbox/index.js.map +1 -0
- package/dist/combobox/index.d.ts +21 -0
- package/dist/combobox/index.js +58 -0
- package/dist/combobox/index.js.map +1 -0
- package/dist/{components/combobox/combobox.d.ts → combobox/primitives.d.ts} +3 -7
- package/dist/{components/combobox/combobox.js → combobox/primitives.js} +8 -61
- package/dist/combobox/primitives.js.map +1 -0
- package/dist/input/index.d.ts +13 -0
- package/dist/input/index.js +121 -0
- package/dist/input/index.js.map +1 -0
- package/dist/listbox/flash-attribute.js.map +1 -0
- package/dist/{components/listbox/listbox.d.ts → listbox/index.d.ts} +2 -6
- package/dist/{components/listbox/listbox.js → listbox/index.js} +4 -82
- package/dist/listbox/index.js.map +1 -0
- package/dist/menu/hover-aim.js.map +1 -0
- package/dist/menu/index.d.ts +42 -0
- package/dist/menu/index.js +250 -0
- package/dist/menu/index.js.map +1 -0
- package/dist/{components/menu/menu.d.ts → menu/primitives.d.ts} +6 -32
- package/dist/{components/menu/menu.js → menu/primitives.js} +117 -279
- package/dist/menu/primitives.js.map +1 -0
- package/dist/{components/popover/popover.d.ts → popover/index.d.ts} +3 -5
- package/dist/{components/popover/popover.js → popover/index.js} +15 -51
- package/dist/popover/index.js.map +1 -0
- package/dist/{interactions/outside-click/outside-click-mixin.js → popover/outside-click.js} +1 -1
- package/dist/popover/outside-click.js.map +1 -0
- package/dist/popover/scroll-lock.d.ts +1 -0
- package/dist/{utils → popover}/scroll-lock.js +0 -18
- package/dist/popover/scroll-lock.js.map +1 -0
- package/dist/radio/index.d.ts +12 -0
- package/dist/radio/index.js +77 -0
- package/dist/radio/index.js.map +1 -0
- package/dist/runtime/client-entries.d.ts +1 -2
- package/dist/runtime/client-entries.js.map +1 -1
- package/dist/runtime/component.d.ts +2 -2
- package/dist/runtime/component.js +1 -1
- package/dist/runtime/component.js.map +1 -1
- package/dist/runtime/diff-dom.js +194 -21
- package/dist/runtime/diff-dom.js.map +1 -1
- package/dist/runtime/frame.d.ts +7 -0
- package/dist/runtime/frame.js +176 -41
- package/dist/runtime/frame.js.map +1 -1
- package/dist/runtime/jsx.d.ts +2 -3
- package/dist/runtime/jsx.js.map +1 -1
- package/dist/runtime/reconcile.js +11 -5
- package/dist/runtime/reconcile.js.map +1 -1
- package/dist/runtime/vdom.js +3 -0
- package/dist/runtime/vdom.js.map +1 -1
- package/dist/select/index.d.ts +19 -0
- package/dist/select/index.js +95 -0
- package/dist/select/index.js.map +1 -0
- package/dist/select/keydown.js.map +1 -0
- package/dist/{components/select/select.d.ts → select/primitives.d.ts} +4 -6
- package/dist/{components/select/select.js → select/primitives.js} +12 -64
- package/dist/select/primitives.js.map +1 -0
- package/dist/server/stream.js +5 -4
- package/dist/server/stream.js.map +1 -1
- package/dist/shared/focus-styles.d.ts +1 -0
- package/dist/shared/focus-styles.js +2 -0
- package/dist/shared/focus-styles.js.map +1 -0
- package/dist/shared/icons.d.ts +9 -0
- package/dist/shared/icons.js +42 -0
- package/dist/shared/icons.js.map +1 -0
- package/dist/shared/listbox-popover-styles.d.ts +6 -0
- package/dist/shared/listbox-popover-styles.js +137 -0
- package/dist/shared/listbox-popover-styles.js.map +1 -0
- package/dist/shared/style-values.d.ts +78 -0
- package/dist/{theme/presets/rmx-01/index.js → shared/style-values.js} +3 -34
- package/dist/shared/style-values.js.map +1 -0
- package/dist/{interactions/typeahead/typeahead-mixin.js → shared/typeahead.js} +1 -1
- package/dist/shared/typeahead.js.map +1 -0
- package/dist/shared/wait-for-css-transition.js.map +1 -0
- package/dist/shared/wait.js.map +1 -0
- package/dist/style/style.js +27 -10
- package/dist/style/style.js.map +1 -1
- package/dist/tabs/index.d.ts +32 -0
- package/dist/tabs/index.js +157 -0
- package/dist/tabs/index.js.map +1 -0
- package/dist/tabs/primitives.d.ts +57 -0
- package/dist/tabs/primitives.js +238 -0
- package/dist/tabs/primitives.js.map +1 -0
- package/dist/toggle/index.d.ts +9 -0
- package/dist/toggle/index.js +108 -0
- package/dist/toggle/index.js.map +1 -0
- package/dist/toggle/primitives.d.ts +29 -0
- package/dist/toggle/primitives.js +127 -0
- package/dist/toggle/primitives.js.map +1 -0
- package/package.json +74 -45
- package/src/{components/accordion → accordion}/README.md +50 -14
- package/src/accordion/index.tsx +285 -0
- package/src/accordion/primitives.tsx +512 -0
- package/src/{components/anchor → anchor}/README.md +48 -5
- package/src/{components/anchor/anchor.ts → anchor/index.ts} +53 -12
- package/src/animation/demos/aspect-ratio.tsx +120 -0
- package/src/animation/demos/bouncy-switch.tsx +47 -0
- package/src/animation/demos/color-interpolation.tsx +73 -0
- package/src/animation/demos/cube.tsx +116 -0
- package/src/animation/demos/default-animate.tsx +129 -0
- package/src/animation/demos/drag-release.ts +118 -0
- package/src/animation/demos/enter.tsx +22 -0
- package/src/animation/demos/exit.tsx +79 -0
- package/src/animation/demos/flip-toggle.tsx +46 -0
- package/src/animation/demos/hold-to-confirm.tsx +317 -0
- package/src/animation/demos/html-content.tsx +41 -0
- package/src/animation/demos/interruptible-keyframes.tsx +62 -0
- package/src/animation/demos/keyframes.tsx +29 -0
- package/src/animation/demos/material-ripple.tsx +158 -0
- package/src/animation/demos/mixin-presence-list.tsx +121 -0
- package/src/animation/demos/mixin-reclaim.tsx +125 -0
- package/src/animation/demos/multi-state-badge.tsx +426 -0
- package/src/animation/demos/press.tsx +67 -0
- package/src/animation/demos/reordering.tsx +68 -0
- package/src/animation/demos/rolling-square.tsx +57 -0
- package/src/animation/demos/rotate.tsx +21 -0
- package/src/animation/demos/shared-layout.tsx +211 -0
- package/src/animation/demos/transition-options.tsx +24 -0
- package/src/animation/spring.ts +22 -0
- package/src/{components/breadcrumbs → breadcrumbs}/README.md +4 -4
- package/src/{components/breadcrumbs/breadcrumbs.tsx → breadcrumbs/index.tsx} +18 -18
- package/src/button/README.md +44 -0
- package/src/button/index.ts +168 -0
- package/src/checkbox/README.md +59 -0
- package/src/checkbox/index.ts +162 -0
- package/src/{components/combobox → combobox}/README.md +58 -9
- package/src/combobox/index.tsx +112 -0
- package/src/{components/combobox/combobox.tsx → combobox/primitives.tsx} +5 -91
- package/src/input/README.md +52 -0
- package/src/input/index.ts +147 -0
- package/src/{components/listbox → listbox}/README.md +9 -41
- package/src/{components/listbox/listbox.ts → listbox/index.ts} +2 -87
- package/src/menu/README.md +161 -0
- package/src/menu/index.tsx +354 -0
- package/src/{components/menu/menu.tsx → menu/primitives.tsx} +117 -359
- package/src/{components/popover → popover}/README.md +20 -39
- package/src/{components/popover/popover.ts → popover/index.ts} +16 -61
- package/src/{utils → popover}/scroll-lock.ts +0 -28
- package/src/radio/README.md +53 -0
- package/src/radio/index.ts +100 -0
- package/src/runtime/client-entries.ts +1 -5
- package/src/runtime/component.ts +3 -3
- package/src/runtime/demos/readme.demo.tsx +704 -0
- package/src/runtime/diff-dom.ts +270 -20
- package/src/runtime/frame.ts +218 -41
- package/src/runtime/jsx.ts +6 -10
- package/src/runtime/reconcile.ts +11 -5
- package/src/runtime/vdom.ts +3 -0
- package/src/{components/select → select}/README.md +29 -19
- package/src/select/index.tsx +159 -0
- package/src/{components/select/select.tsx → select/primitives.tsx} +11 -99
- package/src/server/stream.ts +10 -5
- package/src/shared/focus-styles.ts +2 -0
- package/src/shared/icons.tsx +62 -0
- package/src/shared/listbox-popover-styles.ts +146 -0
- package/src/shared/style-values.ts +165 -0
- package/src/style/style.ts +29 -10
- package/src/tabs/README.md +141 -0
- package/src/tabs/index.tsx +244 -0
- package/src/tabs/primitives.ts +365 -0
- package/src/toggle/README.md +56 -0
- package/src/toggle/index.tsx +134 -0
- package/src/toggle/primitives.ts +192 -0
- package/dist/components/accordion/accordion.d.ts +0 -92
- package/dist/components/accordion/accordion.js +0 -335
- package/dist/components/accordion/accordion.js.map +0 -1
- package/dist/components/accordion/demos/card.demo.d.ts +0 -6
- package/dist/components/accordion/demos/card.demo.js +0 -58
- package/dist/components/accordion/demos/card.demo.js.map +0 -1
- package/dist/components/accordion/demos/multiple.demo.d.ts +0 -6
- package/dist/components/accordion/demos/multiple.demo.js +0 -19
- package/dist/components/accordion/demos/multiple.demo.js.map +0 -1
- package/dist/components/accordion/demos/overview.demo.d.ts +0 -6
- package/dist/components/accordion/demos/overview.demo.js +0 -19
- package/dist/components/accordion/demos/overview.demo.js.map +0 -1
- package/dist/components/anchor/anchor.js.map +0 -1
- package/dist/components/breadcrumbs/breadcrumbs.js.map +0 -1
- package/dist/components/breadcrumbs/demos/basic.demo.d.ts +0 -5
- package/dist/components/breadcrumbs/demos/basic.demo.js +0 -14
- package/dist/components/breadcrumbs/demos/basic.demo.js.map +0 -1
- package/dist/components/breadcrumbs/demos/separator.demo.d.ts +0 -5
- package/dist/components/breadcrumbs/demos/separator.demo.js +0 -14
- package/dist/components/breadcrumbs/demos/separator.demo.js.map +0 -1
- package/dist/components/button/button.d.ts +0 -105
- package/dist/components/button/button.js +0 -207
- package/dist/components/button/button.js.map +0 -1
- package/dist/components/button/demos/aliases.demo.d.ts +0 -6
- package/dist/components/button/demos/aliases.demo.js +0 -18
- package/dist/components/button/demos/aliases.demo.js.map +0 -1
- package/dist/components/button/demos/basic.demo.d.ts +0 -6
- package/dist/components/button/demos/basic.demo.js +0 -19
- package/dist/components/button/demos/basic.demo.js.map +0 -1
- package/dist/components/button/demos/states.demo.d.ts +0 -6
- package/dist/components/button/demos/states.demo.js +0 -29
- package/dist/components/button/demos/states.demo.js.map +0 -1
- package/dist/components/combobox/combobox.js.map +0 -1
- package/dist/components/combobox/demos/overview.demo.d.ts +0 -6
- package/dist/components/combobox/demos/overview.demo.js +0 -153
- package/dist/components/combobox/demos/overview.demo.js.map +0 -1
- package/dist/components/glyph/glyph.d.ts +0 -14
- package/dist/components/glyph/glyph.js +0 -65
- package/dist/components/glyph/glyph.js.map +0 -1
- package/dist/components/listbox/demos/overview.demo.d.ts +0 -6
- package/dist/components/listbox/demos/overview.demo.js +0 -64
- package/dist/components/listbox/demos/overview.demo.js.map +0 -1
- package/dist/components/listbox/listbox.js.map +0 -1
- package/dist/components/menu/demos/bubbling.demo.d.ts +0 -5
- package/dist/components/menu/demos/bubbling.demo.js +0 -15
- package/dist/components/menu/demos/bubbling.demo.js.map +0 -1
- package/dist/components/menu/demos/overview.demo.d.ts +0 -6
- package/dist/components/menu/demos/overview.demo.js +0 -32
- package/dist/components/menu/demos/overview.demo.js.map +0 -1
- package/dist/components/menu/hover-aim.js.map +0 -1
- package/dist/components/menu/menu.js.map +0 -1
- package/dist/components/popover/demos/overview.demo.d.ts +0 -6
- package/dist/components/popover/demos/overview.demo.js +0 -64
- package/dist/components/popover/demos/overview.demo.js.map +0 -1
- package/dist/components/popover/popover.js.map +0 -1
- package/dist/components/select/demos/deconstructed.demo.d.ts +0 -6
- package/dist/components/select/demos/deconstructed.demo.js +0 -53
- package/dist/components/select/demos/deconstructed.demo.js.map +0 -1
- package/dist/components/select/demos/overview.demo.d.ts +0 -5
- package/dist/components/select/demos/overview.demo.js +0 -27
- package/dist/components/select/demos/overview.demo.js.map +0 -1
- package/dist/components/select/select.js.map +0 -1
- package/dist/components/separator/separator.d.ts +0 -2
- package/dist/components/separator/separator.js +0 -15
- package/dist/components/separator/separator.js.map +0 -1
- package/dist/components/tabs/tabs.d.ts +0 -78
- package/dist/components/tabs/tabs.js +0 -339
- package/dist/components/tabs/tabs.js.map +0 -1
- package/dist/interactions/keydown/keydown.js.map +0 -1
- package/dist/interactions/outside-click/outside-click-mixin.js.map +0 -1
- package/dist/interactions/typeahead/typeahead-mixin.js.map +0 -1
- package/dist/theme/contract.d.ts +0 -61
- package/dist/theme/contract.js +0 -131
- package/dist/theme/contract.js.map +0 -1
- package/dist/theme/glyph-contract.d.ts +0 -11
- package/dist/theme/glyph-contract.js +0 -34
- package/dist/theme/glyph-contract.js.map +0 -1
- package/dist/theme/presets/rmx-01/glyphs.d.ts +0 -2
- package/dist/theme/presets/rmx-01/glyphs.js +0 -252
- package/dist/theme/presets/rmx-01/glyphs.js.map +0 -1
- package/dist/theme/presets/rmx-01/index.d.ts +0 -4
- package/dist/theme/presets/rmx-01/index.js.map +0 -1
- package/dist/theme/runtime.d.ts +0 -2
- package/dist/theme/runtime.js +0 -84
- package/dist/theme/runtime.js.map +0 -1
- package/dist/theme/theme.d.ts +0 -6
- package/dist/theme/theme.js +0 -5
- package/dist/theme/theme.js.map +0 -1
- package/dist/utils/flash-attribute.js.map +0 -1
- package/dist/utils/scroll-lock.d.ts +0 -3
- package/dist/utils/scroll-lock.js.map +0 -1
- package/dist/utils/wait-for-css-transition.js.map +0 -1
- package/dist/utils/wait.js.map +0 -1
- package/src/components/accordion/accordion.tsx +0 -565
- package/src/components/accordion/demos/card.demo.tsx +0 -113
- package/src/components/accordion/demos/multiple.demo.tsx +0 -56
- package/src/components/accordion/demos/overview.demo.tsx +0 -56
- package/src/components/breadcrumbs/demos/basic.demo.tsx +0 -17
- package/src/components/breadcrumbs/demos/separator.demo.tsx +0 -18
- package/src/components/button/README.md +0 -44
- package/src/components/button/button.tsx +0 -286
- package/src/components/button/demos/aliases.demo.tsx +0 -27
- package/src/components/button/demos/basic.demo.tsx +0 -30
- package/src/components/button/demos/states.demo.tsx +0 -52
- package/src/components/combobox/demos/overview.demo.tsx +0 -199
- package/src/components/glyph/README.md +0 -72
- package/src/components/glyph/glyph.tsx +0 -110
- package/src/components/listbox/demos/overview.demo.tsx +0 -101
- package/src/components/menu/README.md +0 -96
- package/src/components/menu/demos/bubbling.demo.tsx +0 -34
- package/src/components/menu/demos/overview.demo.tsx +0 -76
- package/src/components/popover/demos/overview.demo.tsx +0 -143
- package/src/components/select/demos/deconstructed.demo.tsx +0 -95
- package/src/components/select/demos/overview.demo.tsx +0 -51
- package/src/components/separator/separator.ts +0 -19
- package/src/components/tabs/README.md +0 -105
- package/src/components/tabs/tabs.tsx +0 -504
- package/src/theme/README.md +0 -103
- package/src/theme/contract.ts +0 -215
- package/src/theme/glyph-contract.ts +0 -59
- package/src/theme/presets/rmx-01/glyphs.tsx +0 -308
- package/src/theme/presets/rmx-01/index.ts +0 -123
- package/src/theme/runtime.ts +0 -119
- package/src/theme/theme.ts +0 -15
- package/src/utils/scroll-lock/README.md +0 -33
- /package/dist/{components/breadcrumbs/breadcrumbs.d.ts → breadcrumbs/index.d.ts} +0 -0
- /package/dist/{utils → listbox}/flash-attribute.d.ts +0 -0
- /package/dist/{utils → listbox}/flash-attribute.js +0 -0
- /package/dist/{components/menu → menu}/hover-aim.d.ts +0 -0
- /package/dist/{components/menu → menu}/hover-aim.js +0 -0
- /package/dist/{interactions/outside-click/outside-click-mixin.d.ts → popover/outside-click.d.ts} +0 -0
- /package/dist/{interactions/keydown → select}/keydown.d.ts +0 -0
- /package/dist/{interactions/keydown → select}/keydown.js +0 -0
- /package/dist/{interactions/typeahead/typeahead-mixin.d.ts → shared/typeahead.d.ts} +0 -0
- /package/dist/{utils → shared}/wait-for-css-transition.d.ts +0 -0
- /package/dist/{utils → shared}/wait-for-css-transition.js +0 -0
- /package/dist/{utils → shared}/wait.d.ts +0 -0
- /package/dist/{utils → shared}/wait.js +0 -0
- /package/src/{utils → listbox}/flash-attribute.ts +0 -0
- /package/src/{components/menu → menu}/hover-aim.ts +0 -0
- /package/src/{interactions/outside-click/outside-click-mixin.ts → popover/outside-click.ts} +0 -0
- /package/src/{interactions/keydown → select}/keydown.ts +0 -0
- /package/src/{interactions/typeahead/typeahead-mixin.ts → shared/typeahead.ts} +0 -0
- /package/src/{utils → shared}/wait-for-css-transition.ts +0 -0
- /package/src/{utils → shared}/wait.ts +0 -0
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
import { attrs, createMixin, on, ref, } from '@remix-run/ui';
|
|
2
|
+
const ACCORDION_CHANGE_EVENT = 'rmx:accordion-change';
|
|
3
|
+
export class AccordionChangeEvent extends Event {
|
|
4
|
+
accordionType;
|
|
5
|
+
itemValue;
|
|
6
|
+
value;
|
|
7
|
+
constructor(value, init) {
|
|
8
|
+
super(ACCORDION_CHANGE_EVENT, {
|
|
9
|
+
bubbles: true,
|
|
10
|
+
});
|
|
11
|
+
this.accordionType = init.accordionType;
|
|
12
|
+
this.itemValue = init.itemValue;
|
|
13
|
+
this.value = value;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function isMultipleProps(props) {
|
|
17
|
+
return props?.type === 'multiple';
|
|
18
|
+
}
|
|
19
|
+
function getAccordionContext(handle) {
|
|
20
|
+
return handle.context.get(AccordionProvider);
|
|
21
|
+
}
|
|
22
|
+
function getAccordionItemContext(handle) {
|
|
23
|
+
return handle.context.get(AccordionItemProvider);
|
|
24
|
+
}
|
|
25
|
+
function AccordionProvider(handle) {
|
|
26
|
+
let rootNode = null;
|
|
27
|
+
let registeredItems = [];
|
|
28
|
+
let uncontrolledSingleValue = null;
|
|
29
|
+
let uncontrolledMultipleValue = [];
|
|
30
|
+
let hasInitializedSingle = false;
|
|
31
|
+
let hasInitializedMultiple = false;
|
|
32
|
+
function getType() {
|
|
33
|
+
return isMultipleProps(handle.props) ? 'multiple' : 'single';
|
|
34
|
+
}
|
|
35
|
+
function getSingleValue() {
|
|
36
|
+
if (isMultipleProps(handle.props)) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
if (handle.props.value !== undefined) {
|
|
40
|
+
return handle.props.value;
|
|
41
|
+
}
|
|
42
|
+
if (!hasInitializedSingle) {
|
|
43
|
+
uncontrolledSingleValue = handle.props.defaultValue ?? null;
|
|
44
|
+
hasInitializedSingle = true;
|
|
45
|
+
}
|
|
46
|
+
return uncontrolledSingleValue;
|
|
47
|
+
}
|
|
48
|
+
function getMultipleValue() {
|
|
49
|
+
if (!isMultipleProps(handle.props)) {
|
|
50
|
+
return [];
|
|
51
|
+
}
|
|
52
|
+
if (handle.props.value !== undefined) {
|
|
53
|
+
return handle.props.value;
|
|
54
|
+
}
|
|
55
|
+
if (!hasInitializedMultiple) {
|
|
56
|
+
uncontrolledMultipleValue = [...(handle.props.defaultValue ?? [])];
|
|
57
|
+
hasInitializedMultiple = true;
|
|
58
|
+
}
|
|
59
|
+
return uncontrolledMultipleValue;
|
|
60
|
+
}
|
|
61
|
+
function isOpen(value) {
|
|
62
|
+
if (getType() === 'multiple') {
|
|
63
|
+
return getMultipleValue().includes(value);
|
|
64
|
+
}
|
|
65
|
+
return getSingleValue() === value;
|
|
66
|
+
}
|
|
67
|
+
function dispatchChange(itemValue, value) {
|
|
68
|
+
rootNode?.dispatchEvent(new AccordionChangeEvent(value, {
|
|
69
|
+
accordionType: getType(),
|
|
70
|
+
itemValue,
|
|
71
|
+
}));
|
|
72
|
+
}
|
|
73
|
+
function toggleItem(itemValue) {
|
|
74
|
+
if (handle.props.disabled) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
if (isMultipleProps(handle.props)) {
|
|
78
|
+
let currentValue = getMultipleValue();
|
|
79
|
+
let nextValue = currentValue.includes(itemValue)
|
|
80
|
+
? currentValue.filter((value) => value !== itemValue)
|
|
81
|
+
: [...currentValue, itemValue];
|
|
82
|
+
if (handle.props.value === undefined) {
|
|
83
|
+
uncontrolledMultipleValue = nextValue;
|
|
84
|
+
void handle.update();
|
|
85
|
+
}
|
|
86
|
+
handle.props.onValueChange?.(nextValue);
|
|
87
|
+
dispatchChange(itemValue, nextValue);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
let isCurrentItemOpen = getSingleValue() === itemValue;
|
|
91
|
+
if (isCurrentItemOpen && !(handle.props.collapsible ?? true)) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
let nextValue = isCurrentItemOpen ? null : itemValue;
|
|
95
|
+
if (handle.props.value === undefined) {
|
|
96
|
+
uncontrolledSingleValue = nextValue;
|
|
97
|
+
void handle.update();
|
|
98
|
+
}
|
|
99
|
+
handle.props.onValueChange?.(nextValue);
|
|
100
|
+
dispatchChange(itemValue, nextValue);
|
|
101
|
+
}
|
|
102
|
+
function focusItem(itemValue, direction) {
|
|
103
|
+
let items = registeredItems.filter((item) => !item.disabled && item.getTriggerNode() !== null);
|
|
104
|
+
if (items.length === 0) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
let currentIndex = items.findIndex((item) => item.value === itemValue);
|
|
108
|
+
let targetIndex = 0;
|
|
109
|
+
switch (direction) {
|
|
110
|
+
case 'first':
|
|
111
|
+
targetIndex = 0;
|
|
112
|
+
break;
|
|
113
|
+
case 'last':
|
|
114
|
+
targetIndex = items.length - 1;
|
|
115
|
+
break;
|
|
116
|
+
case 'previous':
|
|
117
|
+
targetIndex = currentIndex <= 0 ? items.length - 1 : currentIndex - 1;
|
|
118
|
+
break;
|
|
119
|
+
case 'next':
|
|
120
|
+
targetIndex =
|
|
121
|
+
currentIndex === -1 || currentIndex === items.length - 1 ? 0 : currentIndex + 1;
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
items[targetIndex]?.getTriggerNode()?.focus();
|
|
125
|
+
}
|
|
126
|
+
function registerItem(item) {
|
|
127
|
+
registeredItems.push(item);
|
|
128
|
+
}
|
|
129
|
+
function getTriggerId(value) {
|
|
130
|
+
return registeredItems.find((item) => item.value === value)?.getTriggerNode()?.id;
|
|
131
|
+
}
|
|
132
|
+
function getPanelId(value) {
|
|
133
|
+
return `${handle.id}-${value}-panel`;
|
|
134
|
+
}
|
|
135
|
+
handle.context.set({
|
|
136
|
+
get collapsible() {
|
|
137
|
+
return getType() === 'multiple'
|
|
138
|
+
? true
|
|
139
|
+
: (handle.props.collapsible ?? true);
|
|
140
|
+
},
|
|
141
|
+
get disabled() {
|
|
142
|
+
return handle.props.disabled ?? false;
|
|
143
|
+
},
|
|
144
|
+
focusItem,
|
|
145
|
+
getPanelId,
|
|
146
|
+
getTriggerId,
|
|
147
|
+
get headingLevel() {
|
|
148
|
+
return handle.props.headingLevel ?? 3;
|
|
149
|
+
},
|
|
150
|
+
isOpen,
|
|
151
|
+
registerItem,
|
|
152
|
+
registerRoot(node) {
|
|
153
|
+
rootNode = node;
|
|
154
|
+
},
|
|
155
|
+
toggleItem,
|
|
156
|
+
get type() {
|
|
157
|
+
return getType();
|
|
158
|
+
},
|
|
159
|
+
unregisterRoot(node) {
|
|
160
|
+
if (rootNode === node) {
|
|
161
|
+
rootNode = null;
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
});
|
|
165
|
+
return () => {
|
|
166
|
+
registeredItems = [];
|
|
167
|
+
return handle.props.children;
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
function AccordionItemProvider(handle) {
|
|
171
|
+
let triggerNode = null;
|
|
172
|
+
let triggerId = `${handle.id}-trigger`;
|
|
173
|
+
let panelId = `${handle.id}-panel`;
|
|
174
|
+
let disabled = false;
|
|
175
|
+
let headingLevel = 3;
|
|
176
|
+
let lockedOpen = false;
|
|
177
|
+
let open = false;
|
|
178
|
+
let value = handle.props.value;
|
|
179
|
+
handle.context.set({
|
|
180
|
+
get disabled() {
|
|
181
|
+
return disabled;
|
|
182
|
+
},
|
|
183
|
+
get headingLevel() {
|
|
184
|
+
return headingLevel;
|
|
185
|
+
},
|
|
186
|
+
get lockedOpen() {
|
|
187
|
+
return lockedOpen;
|
|
188
|
+
},
|
|
189
|
+
get open() {
|
|
190
|
+
return open;
|
|
191
|
+
},
|
|
192
|
+
get panelId() {
|
|
193
|
+
return panelId;
|
|
194
|
+
},
|
|
195
|
+
setTriggerNode(node) {
|
|
196
|
+
triggerNode = node;
|
|
197
|
+
},
|
|
198
|
+
get triggerId() {
|
|
199
|
+
return triggerId;
|
|
200
|
+
},
|
|
201
|
+
get value() {
|
|
202
|
+
return value;
|
|
203
|
+
},
|
|
204
|
+
});
|
|
205
|
+
return () => {
|
|
206
|
+
let accordion = getAccordionContext(handle);
|
|
207
|
+
value = handle.props.value;
|
|
208
|
+
disabled = accordion.disabled || handle.props.disabled === true;
|
|
209
|
+
headingLevel = accordion.headingLevel;
|
|
210
|
+
open = accordion.isOpen(handle.props.value);
|
|
211
|
+
lockedOpen = accordion.type === 'single' && !accordion.collapsible && open;
|
|
212
|
+
accordion.registerItem({
|
|
213
|
+
disabled,
|
|
214
|
+
getTriggerNode: () => triggerNode,
|
|
215
|
+
value: handle.props.value,
|
|
216
|
+
});
|
|
217
|
+
return handle.props.children;
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
const rootMixin = createMixin((handle) => {
|
|
221
|
+
let context = getAccordionContext(handle);
|
|
222
|
+
let rootNode = null;
|
|
223
|
+
handle.queueTask((node, signal) => {
|
|
224
|
+
rootNode = node;
|
|
225
|
+
context.registerRoot(node);
|
|
226
|
+
signal.addEventListener('abort', () => {
|
|
227
|
+
if (rootNode === node) {
|
|
228
|
+
rootNode = null;
|
|
229
|
+
}
|
|
230
|
+
context.unregisterRoot(node);
|
|
231
|
+
});
|
|
232
|
+
});
|
|
233
|
+
return () => attrs({
|
|
234
|
+
'data-disabled': context.disabled ? '' : undefined,
|
|
235
|
+
'data-type': context.type,
|
|
236
|
+
});
|
|
237
|
+
});
|
|
238
|
+
const itemMixin = createMixin((handle) => {
|
|
239
|
+
let item = getAccordionItemContext(handle);
|
|
240
|
+
return () => attrs({
|
|
241
|
+
'data-disabled': item.disabled ? '' : undefined,
|
|
242
|
+
'data-state': item.open ? 'open' : 'closed',
|
|
243
|
+
});
|
|
244
|
+
});
|
|
245
|
+
const triggerMixin = createMixin((handle) => {
|
|
246
|
+
let accordion = getAccordionContext(handle);
|
|
247
|
+
let item = getAccordionItemContext(handle);
|
|
248
|
+
return (options, props = options) => {
|
|
249
|
+
options = props === options ? undefined : options;
|
|
250
|
+
let disabled = item.disabled || options?.disabled === true || props.disabled === true;
|
|
251
|
+
let toggleItem = () => {
|
|
252
|
+
if (disabled || item.lockedOpen) {
|
|
253
|
+
return;
|
|
254
|
+
}
|
|
255
|
+
accordion.toggleItem(item.value);
|
|
256
|
+
};
|
|
257
|
+
return [
|
|
258
|
+
attrs({
|
|
259
|
+
'aria-controls': item.panelId,
|
|
260
|
+
'aria-disabled': item.lockedOpen ? true : undefined,
|
|
261
|
+
'aria-expanded': item.open,
|
|
262
|
+
'data-state': item.open ? 'open' : 'closed',
|
|
263
|
+
disabled: disabled ? true : undefined,
|
|
264
|
+
id: item.triggerId,
|
|
265
|
+
}),
|
|
266
|
+
ref((node) => {
|
|
267
|
+
item.setTriggerNode(node);
|
|
268
|
+
}),
|
|
269
|
+
on('click', toggleItem),
|
|
270
|
+
on('keydown', (event) => {
|
|
271
|
+
switch (event.key) {
|
|
272
|
+
case 'ArrowDown':
|
|
273
|
+
event.preventDefault();
|
|
274
|
+
accordion.focusItem(item.value, 'next');
|
|
275
|
+
break;
|
|
276
|
+
case 'ArrowUp':
|
|
277
|
+
event.preventDefault();
|
|
278
|
+
accordion.focusItem(item.value, 'previous');
|
|
279
|
+
break;
|
|
280
|
+
case 'Home':
|
|
281
|
+
event.preventDefault();
|
|
282
|
+
accordion.focusItem(item.value, 'first');
|
|
283
|
+
break;
|
|
284
|
+
case 'End':
|
|
285
|
+
event.preventDefault();
|
|
286
|
+
accordion.focusItem(item.value, 'last');
|
|
287
|
+
break;
|
|
288
|
+
}
|
|
289
|
+
}),
|
|
290
|
+
];
|
|
291
|
+
};
|
|
292
|
+
});
|
|
293
|
+
const contentMixin = createMixin((handle) => {
|
|
294
|
+
let item = getAccordionItemContext(handle);
|
|
295
|
+
return () => attrs({
|
|
296
|
+
'aria-hidden': item.open ? undefined : true,
|
|
297
|
+
'aria-labelledby': item.triggerId,
|
|
298
|
+
'data-state': item.open ? 'open' : 'closed',
|
|
299
|
+
id: item.panelId,
|
|
300
|
+
inert: item.open ? undefined : true,
|
|
301
|
+
});
|
|
302
|
+
});
|
|
303
|
+
export const Context = AccordionProvider;
|
|
304
|
+
export const ItemContext = AccordionItemProvider;
|
|
305
|
+
export const content = contentMixin;
|
|
306
|
+
export const item = itemMixin;
|
|
307
|
+
export const root = rootMixin;
|
|
308
|
+
export const trigger = triggerMixin;
|
|
309
|
+
export function onAccordionChange(handler, captureBoolean) {
|
|
310
|
+
return on(ACCORDION_CHANGE_EVENT, handler, captureBoolean);
|
|
311
|
+
}
|
|
312
|
+
//# sourceMappingURL=primitives.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/accordion/primitives.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
type ExtendedAnchorPlacement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end';
|
|
2
2
|
export type AnchorPlacement = 'top' | 'bottom' | 'left' | 'right' | 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end';
|
|
3
3
|
type AnchorOffsetValue = number | ((floating: HTMLElement) => number);
|
|
4
|
+
export interface AnchorPoint {
|
|
5
|
+
height?: number;
|
|
6
|
+
width?: number;
|
|
7
|
+
x: number;
|
|
8
|
+
y: number;
|
|
9
|
+
}
|
|
10
|
+
export type AnchorTarget = HTMLElement | AnchorPoint;
|
|
4
11
|
export type AnchorOptions = {
|
|
5
12
|
placement?: ExtendedAnchorPlacement;
|
|
6
13
|
inset?: boolean;
|
|
@@ -9,5 +16,5 @@ export type AnchorOptions = {
|
|
|
9
16
|
offsetX?: AnchorOffsetValue;
|
|
10
17
|
offsetY?: AnchorOffsetValue;
|
|
11
18
|
};
|
|
12
|
-
export declare function anchor(floating: HTMLElement,
|
|
19
|
+
export declare function anchor(floating: HTMLElement, anchorTarget: AnchorTarget, options?: AnchorOptions): () => void;
|
|
13
20
|
export {};
|
|
@@ -65,6 +65,26 @@ function resolveOffsetValue(offset, floating) {
|
|
|
65
65
|
}
|
|
66
66
|
return offset ?? 0;
|
|
67
67
|
}
|
|
68
|
+
function isAnchorPoint(value) {
|
|
69
|
+
if (typeof value !== 'object' || value === null) {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
if (!('x' in value) || !('y' in value)) {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
let width = 'width' in value ? value.width : undefined;
|
|
76
|
+
let height = 'height' in value ? value.height : undefined;
|
|
77
|
+
return (typeof value.x === 'number' &&
|
|
78
|
+
typeof value.y === 'number' &&
|
|
79
|
+
(width === undefined || typeof width === 'number') &&
|
|
80
|
+
(height === undefined || typeof height === 'number'));
|
|
81
|
+
}
|
|
82
|
+
function readAnchorRect(anchorTarget) {
|
|
83
|
+
if (anchorTarget instanceof HTMLElement) {
|
|
84
|
+
return anchorTarget.getBoundingClientRect();
|
|
85
|
+
}
|
|
86
|
+
return new DOMRect(anchorTarget.x, anchorTarget.y, anchorTarget.width ?? 0, anchorTarget.height ?? 0);
|
|
87
|
+
}
|
|
68
88
|
function calculatePosition(placement, anchorRect, floatingWidth, floatingHeight, inset = false) {
|
|
69
89
|
let top = anchorRect.bottom;
|
|
70
90
|
let left = anchorRect.left + (anchorRect.width - floatingWidth) / 2;
|
|
@@ -306,11 +326,9 @@ function getPlacementScore(placement, anchorRect, placementWidth, placementHeigh
|
|
|
306
326
|
perfect: total === 4,
|
|
307
327
|
};
|
|
308
328
|
}
|
|
309
|
-
function getFlippedPlacement(placement, anchorRect, placementWidth, placementHeight, collisionWidth, collisionHeight,
|
|
310
|
-
let computedStyle = getComputedStyle(anchor);
|
|
311
|
-
let isAbsolutePositioned = computedStyle.position !== 'fixed';
|
|
329
|
+
function getFlippedPlacement(placement, anchorRect, placementWidth, placementHeight, collisionWidth, collisionHeight, anchorIsAbsolutePositioned, inset, offset, offsetX, offsetY, relativeOffsetX, relativeOffsetY) {
|
|
312
330
|
let hasScroll = window.scrollY > 0;
|
|
313
|
-
if (placement.startsWith('top') &&
|
|
331
|
+
if (placement.startsWith('top') && anchorIsAbsolutePositioned && hasScroll) {
|
|
314
332
|
if (anchorRect.top - placementHeight < 0) {
|
|
315
333
|
return placement;
|
|
316
334
|
}
|
|
@@ -388,19 +406,20 @@ function solveRelativeAlignmentAxis(options) {
|
|
|
388
406
|
scroll,
|
|
389
407
|
};
|
|
390
408
|
}
|
|
391
|
-
export function anchor(floating,
|
|
409
|
+
export function anchor(floating, anchorTarget, options = {}) {
|
|
392
410
|
let lastAnchorRect;
|
|
393
411
|
let lastFloatingDimensions;
|
|
394
412
|
if (!(floating instanceof HTMLElement)) {
|
|
395
413
|
throw new TypeError('anchor() expected a floating HTMLElement');
|
|
396
414
|
}
|
|
397
|
-
if (!(
|
|
398
|
-
throw new TypeError('anchor() expected an anchor HTMLElement');
|
|
415
|
+
if (!(anchorTarget instanceof HTMLElement) && !isAnchorPoint(anchorTarget)) {
|
|
416
|
+
throw new TypeError('anchor() expected an anchor HTMLElement or coordinates');
|
|
399
417
|
}
|
|
400
418
|
let { placement = 'bottom', inset = false, relativeTo, offset: rawOffset = 0, offsetX: rawOffsetX = 0, offsetY: rawOffsetY = 0, } = options;
|
|
401
|
-
let
|
|
419
|
+
let anchorIsAbsolutePositioned = anchorTarget instanceof HTMLElement && getComputedStyle(anchorTarget).position !== 'fixed';
|
|
420
|
+
let isFixed = floating.hasAttribute('popover') || !anchorIsAbsolutePositioned;
|
|
402
421
|
let animationFrameId = 0;
|
|
403
|
-
function updatePosition(anchorRect =
|
|
422
|
+
function updatePosition(anchorRect = readAnchorRect(anchorTarget), naturalDimensions = getFloatingDimensions(floating, relativeTo, {
|
|
404
423
|
ignoreInlineMaxSize: true,
|
|
405
424
|
})) {
|
|
406
425
|
let offset = resolveOffsetValue(rawOffset, floating);
|
|
@@ -413,7 +432,7 @@ export function anchor(floating, anchorElement, options = {}) {
|
|
|
413
432
|
let placementHeight = relativeTo && naturalDimensions.relativeHeight
|
|
414
433
|
? naturalDimensions.relativeHeight
|
|
415
434
|
: naturalDimensions.height;
|
|
416
|
-
let finalPlacement = getFlippedPlacement(placement, anchorRect, placementWidth, placementHeight, naturalDimensions.width, naturalDimensions.height,
|
|
435
|
+
let finalPlacement = getFlippedPlacement(placement, anchorRect, placementWidth, placementHeight, naturalDimensions.width, naturalDimensions.height, anchorIsAbsolutePositioned, inset, offset, offsetX, offsetY, naturalDimensions.relativeOffsetX, naturalDimensions.relativeOffsetY);
|
|
417
436
|
floating.setAttribute('data-anchor-placement', finalPlacement);
|
|
418
437
|
let position = calculateDocumentPosition(finalPlacement, anchorRect, placementWidth, placementHeight, inset, offset, offsetX, offsetY, isFixed, naturalDimensions.scrollContainerOffsetX, naturalDimensions.scrollContainerOffsetY, naturalDimensions.relativeOffsetX, naturalDimensions.relativeOffsetY);
|
|
419
438
|
let availableWidth = Math.max(getAvailableWidthForPlacement(finalPlacement, position.left, naturalDimensions.width, viewport), 0);
|
|
@@ -532,7 +551,7 @@ export function anchor(floating, anchorElement, options = {}) {
|
|
|
532
551
|
}
|
|
533
552
|
updatePosition();
|
|
534
553
|
function pollForPositionChanges() {
|
|
535
|
-
let currentRect =
|
|
554
|
+
let currentRect = readAnchorRect(anchorTarget);
|
|
536
555
|
let currentDimensions = getFloatingDimensions(floating, relativeTo);
|
|
537
556
|
if (hasRectChanged(currentRect, lastAnchorRect) ||
|
|
538
557
|
hasFloatingDimensionsChanged(currentDimensions, lastFloatingDimensions)) {
|
|
@@ -555,4 +574,4 @@ export function anchor(floating, anchorElement, options = {}) {
|
|
|
555
574
|
window.removeEventListener('resize', handleResize);
|
|
556
575
|
};
|
|
557
576
|
}
|
|
558
|
-
//# sourceMappingURL=
|
|
577
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/anchor/index.ts"],"names":[],"mappings":"AA4CA,MAAM,iBAAiB,GAAG,EAAE,CAAA;AAE5B,SAAS,qBAAqB,CAAC,SAAkC;IAC/D,OAAO,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;AACtE,CAAC;AAED,SAAS,mBAAmB,CAAC,SAAkC;IAC7D,OAAO,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;AACtE,CAAC;AAED,SAAS,eAAe,CACtB,eAAuB,EACvB,WAAmB,EACnB,QAAgB,EAChB,QAAgB;IAEhB,IAAI,UAAU,GAAG,eAAe,GAAG,WAAW,CAAA;IAE9C,IAAI,UAAU,GAAG,QAAQ,EAAE,CAAC;QAC1B,eAAe,IAAI,UAAU,GAAG,QAAQ,CAAA;IAC1C,CAAC;IAED,IAAI,eAAe,GAAG,QAAQ,EAAE,CAAC;QAC/B,eAAe,GAAG,QAAQ,CAAA;IAC5B,CAAC;IAED,OAAO,eAAe,CAAA;AACxB,CAAC;AAED,SAAS,KAAK,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW;IACpD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;AAC5C,CAAC;AAED,SAAS,2BAA2B,CAAC,WAAmB,EAAE,QAAgB,EAAE,QAAgB;IAC1F,OAAO;QACL,GAAG,EAAE,QAAQ;QACb,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAAC;KAChD,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,UAAmB,EACnB,IAA+B;IAE/B,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1B,IAAI,UAAU,CAAC,KAAK,IAAI,CAAC;YAAE,OAAO,QAAQ,CAAA;QAC1C,IAAI,UAAU,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU;YAAE,OAAO,OAAO,CAAA;QACxD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAA;IAC3C,IAAI,UAAU,CAAC,GAAG,IAAI,MAAM,CAAC,WAAW;QAAE,OAAO,OAAO,CAAA;IACxD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,WAAW,CAClB,QAAuC,EACvC,SAAkC,EAClC,MAAc,EACd,OAAO,GAAG,CAAC,EACX,OAAO,GAAG,CAAC;IAEX,IAAI,MAAM,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QACnD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAA;IAE5B,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,GAAG,IAAI,MAAM,CAAA;IACf,CAAC;SAAM,IAAI,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1C,GAAG,IAAI,MAAM,CAAA;IACf,CAAC;SAAM,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACxC,IAAI,IAAI,MAAM,CAAA;IAChB,CAAC;SAAM,IAAI,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzC,IAAI,IAAI,MAAM,CAAA;IAChB,CAAC;IAED,IAAI,IAAI,OAAO,CAAA;IACf,GAAG,IAAI,OAAO,CAAA;IAEd,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;AACtB,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAqC,EAAE,QAAqB;IACtF,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAA;IACzB,CAAC;IAED,OAAO,MAAM,IAAI,CAAC,CAAA;AACpB,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,KAAK,GAAG,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;IACtD,IAAI,MAAM,GAAG,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;IAEzD,OAAO,CACL,OAAO,KAAK,CAAC,CAAC,KAAK,QAAQ;QAC3B,OAAO,KAAK,CAAC,CAAC,KAAK,QAAQ;QAC3B,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;QAClD,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CACrD,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CAAC,YAA0B;IAChD,IAAI,YAAY,YAAY,WAAW,EAAE,CAAC;QACxC,OAAO,YAAY,CAAC,qBAAqB,EAAE,CAAA;IAC7C,CAAC;IAED,OAAO,IAAI,OAAO,CAChB,YAAY,CAAC,CAAC,EACd,YAAY,CAAC,CAAC,EACd,YAAY,CAAC,KAAK,IAAI,CAAC,EACvB,YAAY,CAAC,MAAM,IAAI,CAAC,CACzB,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CACxB,SAAkC,EAClC,UAAmB,EACnB,aAAqB,EACrB,cAAsB,EACtB,KAAK,GAAG,KAAK;IAEb,IAAI,GAAG,GAAG,UAAU,CAAC,MAAM,CAAA;IAC3B,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;IAEnE,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;QACjC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAA;IACxB,CAAC;SAAM,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;QACtC,IAAI,GAAG,UAAU,CAAC,KAAK,GAAG,aAAa,CAAA;IACzC,CAAC;SAAM,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;QAC/B,GAAG,GAAG,UAAU,CAAC,GAAG,GAAG,cAAc,CAAA;IACvC,CAAC;SAAM,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;QACrC,GAAG,GAAG,UAAU,CAAC,GAAG,GAAG,cAAc,CAAA;QACrC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAA;IACxB,CAAC;SAAM,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QACnC,GAAG,GAAG,UAAU,CAAC,GAAG,GAAG,cAAc,CAAA;QACrC,IAAI,GAAG,UAAU,CAAC,KAAK,GAAG,aAAa,CAAA;IACzC,CAAC;SAAM,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QAChC,GAAG,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;QAC/D,IAAI,GAAG,UAAU,CAAC,IAAI,GAAG,aAAa,CAAA;IACxC,CAAC;SAAM,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;QACtC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAA;QACpB,IAAI,GAAG,UAAU,CAAC,IAAI,GAAG,aAAa,CAAA;IACxC,CAAC;SAAM,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;QACpC,GAAG,GAAG,UAAU,CAAC,MAAM,GAAG,cAAc,CAAA;QACxC,IAAI,GAAG,UAAU,CAAC,IAAI,GAAG,aAAa,CAAA;IACxC,CAAC;SAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QACjC,GAAG,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;QAC/D,IAAI,GAAG,UAAU,CAAC,KAAK,CAAA;IACzB,CAAC;SAAM,IAAI,SAAS,KAAK,aAAa,EAAE,CAAC;QACvC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAA;QACpB,IAAI,GAAG,UAAU,CAAC,KAAK,CAAA;IACzB,CAAC;SAAM,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;QACrC,GAAG,GAAG,UAAU,CAAC,MAAM,GAAG,cAAc,CAAA;QACxC,IAAI,GAAG,UAAU,CAAC,KAAK,CAAA;IACzB,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,GAAG,GAAG,UAAU,CAAC,MAAM,GAAG,cAAc,CAAA;QAC1C,CAAC;aAAM,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAA;QACtB,CAAC;aAAM,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACxC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAA;QACxB,CAAC;aAAM,IAAI,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,IAAI,GAAG,UAAU,CAAC,KAAK,GAAG,aAAa,CAAA;QACzC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;AACtB,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa;IACzC,OAAO,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,SAAS,CAAA;AACtE,CAAC;AAED,SAAS,0BAA0B,CAAC,QAAqB,EAAE,eAA4B;IACrF,IAAI,OAAO,GAAuB,eAAe,CAAC,aAAa,CAAA;IAE/D,OAAO,OAAO,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACvC,IAAI,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;QACrC,IAAI,oBAAoB,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,oBAAoB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YACnF,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,aAAa,CAAA;IACjC,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAqB,EAAE,UAAmB;IACxE,IAAI,eAAe,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC5E,IAAI,eAAe,IAAI,CAAC,CAAC,eAAe,YAAY,WAAW,CAAC,EAAE,CAAC;QACjE,eAAe,GAAG,IAAI,CAAA;IACxB,CAAC;IAED,IAAI,eAAe,GAAG,eAAe;QACnC,CAAC,CAAC,0BAA0B,CAAC,QAAQ,EAAE,eAAe,CAAC;QACvD,CAAC,CAAC,QAAQ,CAAA;IACZ,IAAI,eAAe,GAAkB,IAAI,CAAA;IACzC,IAAI,eAAe,GAAkB,IAAI,CAAA;IACzC,IAAI,sBAAsB,GAAG,CAAC,CAAA;IAC9B,IAAI,sBAAsB,GAAG,CAAC,CAAA;IAE9B,IAAI,eAAe,YAAY,WAAW,EAAE,CAAC;QAC3C,IAAI,YAAY,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAA;QACnD,IAAI,mBAAmB,GAAG,eAAe,CAAC,qBAAqB,EAAE,CAAA;QACjE,IAAI,YAAY,GAAG,eAAe,CAAC,qBAAqB,EAAE,CAAA;QAC1D,sBAAsB,GAAG,mBAAmB,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAA;QACrE,sBAAsB,GAAG,mBAAmB,CAAC,GAAG,GAAG,YAAY,CAAC,GAAG,CAAA;QACnE,eAAe,GAAG,YAAY,CAAC,IAAI,GAAG,mBAAmB,CAAC,IAAI,GAAG,eAAe,CAAC,UAAU,CAAA;QAC3F,eAAe,GAAG,YAAY,CAAC,GAAG,GAAG,mBAAmB,CAAC,GAAG,GAAG,eAAe,CAAC,SAAS,CAAA;IAC1F,CAAC;IAED,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,WAAW;QAC3B,MAAM,EAAE,QAAQ,CAAC,YAAY;QAC7B,eAAe;QACf,sBAAsB;QACtB,sBAAsB;QACtB,mBAAmB,EAAE,eAAe,CAAC,WAAW;QAChD,oBAAoB,EAAE,eAAe,CAAC,YAAY;QAClD,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,WAAW,EAAE,eAAe,CAAC,WAAW,CAAC;QAC/E,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,YAAY,EAAE,eAAe,CAAC,YAAY,CAAC;QAClF,aAAa,EAAE,eAAe,YAAY,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;QAC1F,cAAc,EAAE,eAAe,YAAY,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI;QAC5F,eAAe;QACf,eAAe;QACf,eAAe;KAChB,CAAA;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,QAAqB,EACrB,UAAmB,EACnB,EAAE,mBAAmB,GAAG,KAAK,KAAwC,EAAE;IAEvE,IAAI,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAA;IAC9C,IAAI,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAA;IACtC,IAAI,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAA;IAC5C,IAAI,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAA;IAC9C,IAAI,iBAAiB,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAA;IAEhD,IAAI,mBAAmB,EAAE,CAAC;QACxB,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAA;QAC5B,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAA;IAC/B,CAAC;IAED,IAAI,oBAAoB,GAAG,QAAQ,CAAC,WAAW,KAAK,CAAC,CAAA;IACrD,IAAI,oBAAoB,EAAE,CAAC;QACzB,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAA;QACpC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAA;QAC/B,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAA;IAClC,CAAC;IAED,IAAI,UAAU,GAAG,sBAAsB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;IAE7D,IAAI,oBAAoB,EAAE,CAAC;QACzB,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,gBAAgB,CAAA;QAC1C,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,YAAY,CAAA;QAClC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,eAAe,CAAA;IAC1C,CAAC;IAED,IAAI,mBAAmB,EAAE,CAAC;QACxB,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,gBAAgB,CAAA;QAC1C,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,iBAAiB,CAAA;IAC9C,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC;AAID,SAAS,uBAAuB,CAAC,OAAO,GAAG,CAAC;IAC1C,OAAO;QACL,IAAI,EAAE,OAAO;QACb,GAAG,EAAE,OAAO;QACZ,KAAK,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO;QAClC,MAAM,EAAE,MAAM,CAAC,WAAW,GAAG,OAAO;KACrC,CAAA;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,OAAgB,EAAE,OAAO,GAAG,CAAC;IAC9D,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAA;IACzC,CAAC;IAED,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO;QAC9B,GAAG,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO;QAC7B,KAAK,EAAE,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,GAAG,OAAO;QACnD,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,GAAG,OAAO;KACtD,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CACxB,MAAoE,EACpE,QAAsE;IAEtE,OAAO,CACL,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAC7C,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CAAC,WAAoB,EAAE,YAAqB;IACjE,OAAO,CACL,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;QACjD,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;QACnD,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;QACrD,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CACxD,CAAA;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAsB,EAAE,QAAuB;IAC/E,IAAI,OAAO,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,OAAO,KAAK,QAAQ,CAAA;IAC7B,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;AAC1C,CAAC;AAED,SAAS,4BAA4B,CACnC,iBAAqC,EACrC,kBAAsC;IAEtC,OAAO,CACL,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC;QACjE,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC;QACnE,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,IAAI,CAAC;QAC7F,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,oBAAoB,GAAG,kBAAkB,CAAC,oBAAoB,CAAC;YACxF,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,WAAW,GAAG,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC;QAC7E,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,YAAY,GAAG,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC;QAC/E,IAAI,CAAC,GAAG,CACN,iBAAiB,CAAC,sBAAsB,GAAG,kBAAkB,CAAC,sBAAsB,CACrF,IAAI,CAAC;QACN,IAAI,CAAC,GAAG,CACN,iBAAiB,CAAC,sBAAsB,GAAG,kBAAkB,CAAC,sBAAsB,CACrF,IAAI,CAAC;QACN,wBAAwB,CAAC,iBAAiB,CAAC,aAAa,EAAE,kBAAkB,CAAC,aAAa,CAAC;QAC3F,wBAAwB,CAAC,iBAAiB,CAAC,cAAc,EAAE,kBAAkB,CAAC,cAAc,CAAC;QAC7F,wBAAwB,CACtB,iBAAiB,CAAC,eAAe,EACjC,kBAAkB,CAAC,eAAe,CACnC;QACD,wBAAwB,CAAC,iBAAiB,CAAC,eAAe,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAChG,CAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAkC;IAC9D,IAAI,SAAS,GAA6D;QACxE,GAAG,EAAE,QAAQ;QACb,WAAW,EAAE,cAAc;QAC3B,SAAS,EAAE,YAAY;QACvB,MAAM,EAAE,KAAK;QACb,cAAc,EAAE,WAAW;QAC3B,YAAY,EAAE,SAAS;QACvB,IAAI,EAAE,OAAO;QACb,YAAY,EAAE,aAAa;QAC3B,UAAU,EAAE,WAAW;QACvB,KAAK,EAAE,MAAM;QACb,aAAa,EAAE,YAAY;QAC3B,WAAW,EAAE,UAAU;KACxB,CAAA;IAED,OAAO,SAAS,CAAC,SAAS,CAAC,CAAA;AAC7B,CAAC;AAED,SAAS,uBAAuB,CAC9B,SAAkC,EAClC,UAAmB,EACnB,cAAsB,EACtB,eAAuB,EACvB,cAAsB,EACtB,eAAuB,EACvB,KAAc,EACd,MAAc,EACd,OAAe,EACf,OAAe,EACf,eAA+B,EAC/B,eAA+B;IAE/B,IAAI,QAAQ,GAAG,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,KAAK,CAAC,CAAA;IAC/F,QAAQ,GAAG,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IAErE,IAAI,eAAe,KAAK,IAAI,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAC9D,QAAQ,CAAC,IAAI,IAAI,eAAe,CAAA;IAClC,CAAC;IAED,IAAI,eAAe,KAAK,IAAI,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAC9D,QAAQ,CAAC,GAAG,IAAI,eAAe,CAAA;IACjC,CAAC;IAED,OAAO;QACL,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,KAAK,EAAE,QAAQ,CAAC,IAAI,GAAG,cAAc;QACrC,MAAM,EAAE,QAAQ,CAAC,GAAG,GAAG,eAAe;KACvC,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CACxB,SAAkC,EAClC,UAAmB,EACnB,cAAsB,EACtB,eAAuB,EACvB,cAAsB,EACtB,eAAuB,EACvB,KAAc,EACd,MAAc,EACd,OAAe,EACf,OAAe,EACf,eAA+B,EAC/B,eAA+B;IAE/B,IAAI,QAAQ,GAAG,uBAAuB,CAAC,iBAAiB,CAAC,CAAA;IAEzD,IAAI,MAAM,GAAG,uBAAuB,CAClC,SAAS,EACT,UAAU,EACV,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,eAAe,EACf,eAAe,CAChB,CAAA;IAED,IAAI,WAAW,GAAG;QAChB,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI;QACpC,OAAO,EAAE,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK;QACvC,KAAK,EAAE,MAAM,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG;QACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM;KAC3C,CAAA;IAED,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAA;IAE7D,OAAO;QACL,QAAQ,EAAE,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;QAC7C,KAAK;QACL,OAAO,EAAE,KAAK,KAAK,CAAC;KACrB,CAAA;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,SAAkC,EAClC,UAAmB,EACnB,cAAsB,EACtB,eAAuB,EACvB,cAAsB,EACtB,eAAuB,EACvB,0BAAmC,EACnC,KAAc,EACd,MAAc,EACd,OAAe,EACf,OAAe,EACf,eAA+B,EAC/B,eAA+B;IAE/B,IAAI,SAAS,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;IAElC,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,0BAA0B,IAAI,SAAS,EAAE,CAAC;QAC3E,IAAI,UAAU,CAAC,GAAG,GAAG,eAAe,GAAG,CAAC,EAAE,CAAC;YACzC,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,GAAG,iBAAiB,CAC9B,SAAS,EACT,UAAU,EACV,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,eAAe,EACf,eAAe,CAChB,CAAA;IAED,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,gBAAgB,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAA;IACtD,IAAI,OAAO,GAAG,iBAAiB,CAC7B,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,eAAe,EACf,eAAe,CAChB,CAAA;IAED,IACE,OAAO,CAAC,OAAO;QACf,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK;QAC9B,CAAC,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAC1E,CAAC;QACD,OAAO,gBAAgB,CAAA;IACzB,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,6BAA6B,CACpC,SAAkC,EAClC,IAAY,EACZ,KAAa,EACb,QAAyC;IAEzC,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,GAAG,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAA;IACrC,CAAC;IAED,IAAI,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,OAAO,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAA;IAC9B,CAAC;IAED,OAAO,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAA;AACvC,CAAC;AAED,SAAS,8BAA8B,CACrC,SAAkC,EAClC,GAAW,EACX,MAAc,EACd,QAAyC;IAEzC,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,GAAG,GAAG,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAA;IACpC,CAAC;IAED,IAAI,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,OAAO,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAA;IAC9B,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAA;AACvC,CAAC;AAED,SAAS,yBAAyB,CAChC,SAAkC,EAClC,UAAmB,EACnB,cAAsB,EACtB,eAAuB,EACvB,KAAc,EACd,MAAc,EACd,OAAe,EACf,OAAe,EACf,OAAgB,EAChB,sBAAsB,GAAG,CAAC,EAC1B,sBAAsB,GAAG,CAAC,EAC1B,eAA+B,EAC/B,eAA+B;IAE/B,IAAI,QAAQ,GAAG,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,KAAK,CAAC,CAAA;IAE/F,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,QAAQ,CAAC,GAAG,IAAI,MAAM,CAAC,OAAO,CAAA;QAC9B,QAAQ,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAA;IACjC,CAAC;IAED,QAAQ,GAAG,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IAErE,QAAQ,CAAC,IAAI,IAAI,sBAAsB,CAAA;IACvC,QAAQ,CAAC,GAAG,IAAI,sBAAsB,CAAA;IAEtC,IAAI,eAAe,KAAK,IAAI,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAC9D,QAAQ,CAAC,IAAI,IAAI,eAAe,CAAA;IAClC,CAAC;IAED,IAAI,eAAe,KAAK,IAAI,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAC9D,QAAQ,CAAC,GAAG,IAAI,eAAe,CAAA;IACjC,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAS,0BAA0B,CAAC,OAOnC;IACC,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;IACtE,IAAI,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;IAEvD,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO;YACL,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC;YAClF,MAAM;SACP,CAAA;IACH,CAAC;IAED,IAAI,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAC/E,IAAI,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAEvF,IAAI,cAAc,IAAI,cAAc,EAAE,CAAC;QACrC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,cAAc,CAAC,CAAA;IACxD,CAAC;SAAM,IAAI,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QACzD,MAAM,GAAG,CAAC,CAAA;IACZ,CAAC;SAAM,IAAI,OAAO,CAAC,eAAe,GAAG,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QACrE,MAAM,GAAG,SAAS,CAAA;IACpB,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,eAAe,GAAG,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC;QAC3F,MAAM;KACP,CAAA;AACH,CAAC;AAED,MAAM,UAAU,MAAM,CACpB,QAAqB,EACrB,YAA0B,EAC1B,UAAyB,EAAE;IAE3B,IAAI,cAAuB,CAAA;IAC3B,IAAI,sBAA0C,CAAA;IAE9C,IAAI,CAAC,CAAC,QAAQ,YAAY,WAAW,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,SAAS,CAAC,0CAA0C,CAAC,CAAA;IACjE,CAAC;IAED,IAAI,CAAC,CAAC,YAAY,YAAY,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,SAAS,CAAC,wDAAwD,CAAC,CAAA;IAC/E,CAAC;IAED,IAAI,EACF,SAAS,GAAG,QAAQ,EACpB,KAAK,GAAG,KAAK,EACb,UAAU,EACV,MAAM,EAAE,SAAS,GAAG,CAAC,EACrB,OAAO,EAAE,UAAU,GAAG,CAAC,EACvB,OAAO,EAAE,UAAU,GAAG,CAAC,GACxB,GAAG,OAAO,CAAA;IAEX,IAAI,0BAA0B,GAC5B,YAAY,YAAY,WAAW,IAAI,gBAAgB,CAAC,YAAY,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAA;IAC5F,IAAI,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,CAAA;IAC7E,IAAI,gBAAgB,GAAG,CAAC,CAAA;IAExB,SAAS,cAAc,CACrB,UAAU,GAAG,cAAc,CAAC,YAAY,CAAC,EACzC,iBAAiB,GAAG,qBAAqB,CAAC,QAAQ,EAAE,UAAU,EAAE;QAC9D,mBAAmB,EAAE,IAAI;KAC1B,CAAC;QAEF,IAAI,MAAM,GAAG,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QACpD,IAAI,OAAO,GAAG,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QACtD,IAAI,OAAO,GAAG,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QACtD,IAAI,QAAQ,GAAG,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;QAEpE,IAAI,cAAc,GAChB,UAAU,IAAI,iBAAiB,CAAC,aAAa;YAC3C,CAAC,CAAC,iBAAiB,CAAC,aAAa;YACjC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAA;QAC7B,IAAI,eAAe,GACjB,UAAU,IAAI,iBAAiB,CAAC,cAAc;YAC5C,CAAC,CAAC,iBAAiB,CAAC,cAAc;YAClC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAA;QAE9B,IAAI,cAAc,GAAG,mBAAmB,CACtC,SAAS,EACT,UAAU,EACV,cAAc,EACd,eAAe,EACf,iBAAiB,CAAC,KAAK,EACvB,iBAAiB,CAAC,MAAM,EACxB,0BAA0B,EAC1B,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,iBAAiB,CAAC,eAAe,EACjC,iBAAiB,CAAC,eAAe,CAClC,CAAA;QACD,QAAQ,CAAC,YAAY,CAAC,uBAAuB,EAAE,cAAc,CAAC,CAAA;QAE9D,IAAI,QAAQ,GAAG,yBAAyB,CACtC,cAAc,EACd,UAAU,EACV,cAAc,EACd,eAAe,EACf,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,OAAO,EACP,iBAAiB,CAAC,sBAAsB,EACxC,iBAAiB,CAAC,sBAAsB,EACxC,iBAAiB,CAAC,eAAe,EACjC,iBAAiB,CAAC,eAAe,CAClC,CAAA;QAED,IAAI,cAAc,GAAG,IAAI,CAAC,GAAG,CAC3B,6BAA6B,CAC3B,cAAc,EACd,QAAQ,CAAC,IAAI,EACb,iBAAiB,CAAC,KAAK,EACvB,QAAQ,CACT,EACD,CAAC,CACF,CAAA;QACD,IAAI,eAAe,GAAG,IAAI,CAAC,GAAG,CAC5B,8BAA8B,CAC5B,cAAc,EACd,QAAQ,CAAC,GAAG,EACZ,iBAAiB,CAAC,MAAM,EACxB,QAAQ,CACT,EACD,CAAC,CACF,CAAA;QAED,QAAQ,CAAC,KAAK,CAAC,QAAQ;YACrB,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;QACnF,QAAQ,CAAC,KAAK,CAAC,SAAS;YACtB,eAAe,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;QAEtF,IAAI,UAAU,GAAG,qBAAqB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;QAC5D,cAAc;YACZ,UAAU,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAA;QACtF,eAAe;YACb,UAAU,IAAI,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAA;QAEzF,QAAQ,GAAG,yBAAyB,CAClC,cAAc,EACd,UAAU,EACV,cAAc,EACd,eAAe,EACf,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,OAAO,EACP,UAAU,CAAC,sBAAsB,EACjC,UAAU,CAAC,sBAAsB,EACjC,UAAU,CAAC,eAAe,EAC1B,UAAU,CAAC,eAAe,CAC3B,CAAA;QAED,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAA;QACxB,IAAI,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAA;QACvB,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAA;QACzB,IAAI,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAA;QAC1B,IAAI,MAAM,GAAG,2BAA2B,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QACtE,IAAI,MAAM,GAAG,2BAA2B,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAEvE,IAAI,qBAAqB,CAAC,cAAc,CAAC,EAAE,CAAC;YAC1C,IAAI,UAAU,IAAI,UAAU,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;gBACtD,IAAI,OAAO,GAAG,0BAA0B,CAAC;oBACvC,aAAa,EAAE,UAAU,CAAC,eAAe,CAAC,SAAS;oBACnD,eAAe,EAAE,QAAQ,CAAC,GAAG;oBAC7B,WAAW,EAAE,UAAU,CAAC,YAAY;oBACpC,WAAW,EAAE,UAAU,CAAC,oBAAoB;oBAC5C,WAAW,EAAE,MAAM,CAAC,GAAG;oBACvB,WAAW,EAAE,MAAM,CAAC,GAAG;iBACxB,CAAC,CAAA;gBACF,UAAU,CAAC,eAAe,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAA;gBACrD,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAA;YACjC,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,GAAG,GAAG,eAAe,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;YAC7E,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,UAAU,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;oBACxC,IAAI,OAAO,GAAG,0BAA0B,CAAC;wBACvC,aAAa,EAAE,UAAU,CAAC,eAAe,CAAC,UAAU;wBACpD,eAAe,EAAE,QAAQ,CAAC,IAAI;wBAC9B,WAAW,EAAE,UAAU,CAAC,WAAW;wBACnC,WAAW,EAAE,UAAU,CAAC,mBAAmB;wBAC3C,WAAW,EAAE,MAAM,CAAC,GAAG;wBACvB,WAAW,EAAE,MAAM,CAAC,GAAG;qBACxB,CAAC,CAAA;oBACF,UAAU,CAAC,eAAe,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAA;oBACtD,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAA;gBAClC,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;gBAC9D,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,mBAAmB,CAAC,cAAc,CAAC,EAAE,CAAC;YAC/C,IAAI,UAAU,IAAI,UAAU,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;gBACtD,IAAI,OAAO,GAAG,0BAA0B,CAAC;oBACvC,aAAa,EAAE,UAAU,CAAC,eAAe,CAAC,UAAU;oBACpD,eAAe,EAAE,QAAQ,CAAC,IAAI;oBAC9B,WAAW,EAAE,UAAU,CAAC,WAAW;oBACnC,WAAW,EAAE,UAAU,CAAC,mBAAmB;oBAC3C,WAAW,EAAE,MAAM,CAAC,GAAG;oBACvB,WAAW,EAAE,MAAM,CAAC,GAAG;iBACxB,CAAC,CAAA;gBACF,UAAU,CAAC,eAAe,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAA;gBACtD,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAA;YAClC,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;YAC9E,CAAC;YAED,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;gBAClE,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAA;YAC7B,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,UAAU,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;oBACxC,IAAI,OAAO,GAAG,0BAA0B,CAAC;wBACvC,aAAa,EAAE,UAAU,CAAC,eAAe,CAAC,SAAS;wBACnD,eAAe,EAAE,QAAQ,CAAC,GAAG;wBAC7B,WAAW,EAAE,UAAU,CAAC,YAAY;wBACpC,WAAW,EAAE,UAAU,CAAC,oBAAoB;wBAC5C,WAAW,EAAE,MAAM,CAAC,GAAG;wBACvB,WAAW,EAAE,MAAM,CAAC,GAAG;qBACxB,CAAC,CAAA;oBACF,UAAU,CAAC,eAAe,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAA;oBACrD,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAA;gBACjC,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,qBAAqB,CAAC,cAAc,CAAC,EAAE,CAAC;YAC1C,IAAI,MAAM,GAAG,kBAAkB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;YACzD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAA;YACtB,CAAC;iBAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBAC9B,QAAQ,CAAC,IAAI,GAAG,IAAI,GAAG,UAAU,CAAC,KAAK,CAAA;YACzC,CAAC;QACH,CAAC;aAAM,IAAI,mBAAmB,CAAC,cAAc,CAAC,EAAE,CAAC;YAC/C,IAAI,MAAM,GAAG,kBAAkB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;YACvD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAA;YACrB,CAAC;iBAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBAC9B,QAAQ,CAAC,GAAG,GAAG,IAAI,GAAG,UAAU,CAAC,MAAM,CAAA;YACzC,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAA;QACxD,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAA;QAC7B,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAA;QACxC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,QAAQ,CAAC,IAAI,IAAI,CAAA;QAE1C,cAAc,GAAG,UAAU,CAAA;QAC3B,sBAAsB,GAAG,UAAU,CAAA;IACrC,CAAC;IAED,cAAc,EAAE,CAAA;IAEhB,SAAS,sBAAsB;QAC7B,IAAI,WAAW,GAAG,cAAc,CAAC,YAAY,CAAC,CAAA;QAC9C,IAAI,iBAAiB,GAAG,qBAAqB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;QACnE,IACE,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC;YAC3C,4BAA4B,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,EACvE,CAAC;YACD,cAAc,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAA;QAChD,CAAC;QAED,gBAAgB,GAAG,qBAAqB,CAAC,sBAAsB,CAAC,CAAA;IAClE,CAAC;IAED,SAAS,YAAY;QACnB,cAAc,EAAE,CAAA;IAClB,CAAC;IAED,SAAS,YAAY;QACnB,cAAc,EAAE,CAAA;IAClB,CAAC;IAED,gBAAgB,GAAG,qBAAqB,CAAC,sBAAsB,CAAC,CAAA;IAChE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IAClE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IAElE,OAAO,GAAG,EAAE;QACV,oBAAoB,CAAC,gBAAgB,CAAC,CAAA;QACtC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QAClD,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IACpD,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@remix-run/ui/jsx-runtime";
|
|
2
|
+
import {} from '@remix-run/ui';
|
|
3
|
+
import { css, on } from '@remix-run/ui';
|
|
4
|
+
import { spring } from '@remix-run/ui/animation';
|
|
5
|
+
export function AspectRatio(handle) {
|
|
6
|
+
let aspectRatio = 1;
|
|
7
|
+
let width = 100;
|
|
8
|
+
return () => (_jsxs("div", { mix: [
|
|
9
|
+
css({
|
|
10
|
+
display: 'flex',
|
|
11
|
+
alignItems: 'center',
|
|
12
|
+
flexDirection: 'column',
|
|
13
|
+
gap: 20,
|
|
14
|
+
}),
|
|
15
|
+
], children: [_jsx("div", { mix: [
|
|
16
|
+
css({
|
|
17
|
+
display: 'flex',
|
|
18
|
+
justifyContent: 'center',
|
|
19
|
+
alignItems: 'center',
|
|
20
|
+
width: 180,
|
|
21
|
+
height: 180,
|
|
22
|
+
}),
|
|
23
|
+
], children: _jsx("div", { mix: [
|
|
24
|
+
css({
|
|
25
|
+
backgroundColor: '#8df0cc',
|
|
26
|
+
borderRadius: 10,
|
|
27
|
+
transition: spring.transition(['width', 'aspect-ratio'], 'bouncy'),
|
|
28
|
+
}),
|
|
29
|
+
], style: {
|
|
30
|
+
width,
|
|
31
|
+
aspectRatio,
|
|
32
|
+
} }) }), _jsxs("div", { mix: [css({ display: 'flex', flexDirection: 'column', gap: 12, width: '100%' })], children: [_jsxs("label", { mix: [
|
|
33
|
+
css({
|
|
34
|
+
display: 'flex',
|
|
35
|
+
alignItems: 'center',
|
|
36
|
+
gap: 10,
|
|
37
|
+
fontSize: 13,
|
|
38
|
+
color: '#666',
|
|
39
|
+
}),
|
|
40
|
+
], children: [_jsx("span", { mix: [css({ width: 50, flexShrink: 0 })], children: "Ratio" }), _jsx("input", { type: "range", value: aspectRatio, min: 0.2, max: 3, step: 0.1, mix: [
|
|
41
|
+
css(rangeInputCss),
|
|
42
|
+
on('input', (event) => {
|
|
43
|
+
let value = event.currentTarget.value;
|
|
44
|
+
aspectRatio = parseFloat(value);
|
|
45
|
+
handle.update();
|
|
46
|
+
}),
|
|
47
|
+
] }), _jsx("span", { mix: [css({ width: 32, textAlign: 'right', fontVariantNumeric: 'tabular-nums' })], children: aspectRatio.toFixed(1) })] }), _jsxs("label", { mix: [
|
|
48
|
+
css({
|
|
49
|
+
display: 'flex',
|
|
50
|
+
alignItems: 'center',
|
|
51
|
+
gap: 10,
|
|
52
|
+
fontSize: 13,
|
|
53
|
+
color: '#666',
|
|
54
|
+
}),
|
|
55
|
+
], children: [_jsx("span", { mix: [css({ width: 50, flexShrink: 0 })], children: "Width" }), _jsx("input", { type: "range", value: width, min: 20, max: 160, step: 5, mix: [
|
|
56
|
+
css(rangeInputCss),
|
|
57
|
+
on('input', (event) => {
|
|
58
|
+
let value = event.currentTarget.value;
|
|
59
|
+
width = parseFloat(value);
|
|
60
|
+
handle.update();
|
|
61
|
+
}),
|
|
62
|
+
] }), _jsx("span", { mix: [css({ width: 32, textAlign: 'right', fontVariantNumeric: 'tabular-nums' })], children: width })] })] })] }));
|
|
63
|
+
}
|
|
64
|
+
const rangeInputCss = {
|
|
65
|
+
flex: 1,
|
|
66
|
+
accentColor: '#8df0cc',
|
|
67
|
+
cursor: 'pointer',
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=aspect-ratio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aspect-ratio.js","sourceRoot":"","sources":["../../../src/animation/demos/aspect-ratio.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { jsx as _jsx } from "@remix-run/ui/jsx-runtime";
|
|
2
|
+
import {} from '@remix-run/ui';
|
|
3
|
+
import { css, on } from '@remix-run/ui';
|
|
4
|
+
import { spring } from '@remix-run/ui/animation';
|
|
5
|
+
const bounceEasing = `linear(0, 0.258 12%, 0.424 18.3%, 0.633 24.4%, 0.999 33.3%, 0.783 39.8%, 0.733 42.5%, 0.716 45.1%, 0.731 47.6%, 0.777 50.2%, 0.999 57.7%, 0.906 61.7%, 0.883 63.5%, 0.876 65.2%, 0.901 68.7%, 0.999 74.5%, 0.964 77.4%, 0.953 80.1%, 0.961 82.6%, 1 88.2%, 0.99 91.9%, 1)`;
|
|
6
|
+
export function BouncySwitch(handle) {
|
|
7
|
+
let isOn = true;
|
|
8
|
+
return () => (_jsx("div", { mix: [
|
|
9
|
+
css({
|
|
10
|
+
height: 160,
|
|
11
|
+
backgroundColor: '#ff6b35',
|
|
12
|
+
display: 'flex',
|
|
13
|
+
flexDirection: 'column',
|
|
14
|
+
justifyContent: 'flex-end',
|
|
15
|
+
borderRadius: 50,
|
|
16
|
+
padding: 10,
|
|
17
|
+
cursor: 'pointer',
|
|
18
|
+
}),
|
|
19
|
+
on('click', () => {
|
|
20
|
+
isOn = !isOn;
|
|
21
|
+
handle.update();
|
|
22
|
+
}),
|
|
23
|
+
], children: _jsx("div", { mix: [
|
|
24
|
+
css({
|
|
25
|
+
width: 60,
|
|
26
|
+
height: 60,
|
|
27
|
+
backgroundColor: 'white',
|
|
28
|
+
borderRadius: 30,
|
|
29
|
+
willChange: 'transform',
|
|
30
|
+
}),
|
|
31
|
+
], style: {
|
|
32
|
+
transform: isOn ? 'translateY(-100px)' : 'translateY(0)',
|
|
33
|
+
transition: isOn ? `transform ${spring()}` : `transform 800ms ${bounceEasing}`,
|
|
34
|
+
} }) }));
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=bouncy-switch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bouncy-switch.js","sourceRoot":"","sources":["../../../src/animation/demos/bouncy-switch.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAe,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,MAAM,YAAY,GAAG,2QAA2Q,CAAA;AAEhS,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,IAAI,IAAI,GAAG,IAAI,CAAA;IAEf,OAAO,GAAG,EAAE,CAAC,CACX,cACE,GAAG,EAAE;YACH,GAAG,CAAC;gBACF,MAAM,EAAE,GAAG;gBACX,eAAe,EAAE,SAAS;gBAC1B,OAAO,EAAE,MAAM;gBACf,aAAa,EAAE,QAAQ;gBACvB,cAAc,EAAE,UAAU;gBAC1B,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,EAAE;gBACX,MAAM,EAAE,SAAS;aAClB,CAAC;YACF,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACf,IAAI,GAAG,CAAC,IAAI,CAAA;gBACZ,MAAM,CAAC,MAAM,EAAE,CAAA;YACjB,CAAC,CAAC;SACH,YAED,cACE,GAAG,EAAE;gBACH,GAAG,CAAC;oBACF,KAAK,EAAE,EAAE;oBACT,MAAM,EAAE,EAAE;oBACV,eAAe,EAAE,OAAO;oBACxB,YAAY,EAAE,EAAE;oBAChB,UAAU,EAAE,WAAW;iBACxB,CAAC;aACH,EACD,KAAK,EAAE;gBACL,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,eAAe;gBACxD,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,YAAY,EAAE;aAC/E,GACD,GACE,CACP,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function ColorInterpolation(): () => import("@remix-run/ui").RemixElement;
|