@hanzo/ui 8.27.90 → 8.28.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/NOTICE +25 -0
- package/README.md +1 -1
- package/dist/backends/gui/alert-dialog.cjs +24 -6
- package/dist/backends/gui/alert-dialog.d.ts +11 -3
- package/dist/backends/gui/alert-dialog.d.ts.map +1 -1
- package/dist/backends/gui/alert-dialog.js +24 -6
- package/dist/backends/gui/alert-dialog.js.map +1 -1
- package/dist/backends/gui/alert.cjs +32 -1
- package/dist/backends/gui/alert.d.ts +36 -3
- package/dist/backends/gui/alert.d.ts.map +1 -1
- package/dist/backends/gui/alert.js +32 -2
- package/dist/backends/gui/alert.js.map +1 -1
- package/dist/backends/gui/avatar-group.cjs +28 -0
- package/dist/backends/gui/avatar-group.d.ts +33 -0
- package/dist/backends/gui/avatar-group.d.ts.map +1 -0
- package/dist/backends/gui/avatar-group.js +26 -0
- package/dist/backends/gui/avatar-group.js.map +1 -0
- package/dist/backends/gui/avatar.cjs +53 -3
- package/dist/backends/gui/avatar.d.ts +46 -4
- package/dist/backends/gui/avatar.d.ts.map +1 -1
- package/dist/backends/gui/avatar.js +52 -3
- package/dist/backends/gui/avatar.js.map +1 -1
- package/dist/backends/gui/badge.cjs +40 -2
- package/dist/backends/gui/badge.d.ts +7 -2
- package/dist/backends/gui/badge.d.ts.map +1 -1
- package/dist/backends/gui/badge.js +40 -2
- package/dist/backends/gui/badge.js.map +1 -1
- package/dist/backends/gui/banner.cjs +40 -1
- package/dist/backends/gui/banner.d.ts +36 -3
- package/dist/backends/gui/banner.d.ts.map +1 -1
- package/dist/backends/gui/banner.js +42 -4
- package/dist/backends/gui/banner.js.map +1 -1
- package/dist/backends/gui/breadcrumb.cjs +28 -10
- package/dist/backends/gui/breadcrumb.d.ts +20 -11
- package/dist/backends/gui/breadcrumb.d.ts.map +1 -1
- package/dist/backends/gui/breadcrumb.js +28 -10
- package/dist/backends/gui/breadcrumb.js.map +1 -1
- package/dist/backends/gui/button-group.cjs +43 -0
- package/dist/backends/gui/button-group.d.ts +48 -0
- package/dist/backends/gui/button-group.d.ts.map +1 -0
- package/dist/backends/gui/button-group.js +40 -0
- package/dist/backends/gui/button-group.js.map +1 -0
- package/dist/backends/gui/button.cjs +177 -4
- package/dist/backends/gui/button.d.ts +69 -4
- package/dist/backends/gui/button.d.ts.map +1 -1
- package/dist/backends/gui/button.js +179 -6
- package/dist/backends/gui/button.js.map +1 -1
- package/dist/backends/gui/card.cjs +50 -21
- package/dist/backends/gui/card.d.ts +16 -7
- package/dist/backends/gui/card.d.ts.map +1 -1
- package/dist/backends/gui/card.js +50 -21
- package/dist/backends/gui/card.js.map +1 -1
- package/dist/backends/gui/checkbox.cjs +86 -14
- package/dist/backends/gui/checkbox.d.ts +30 -2
- package/dist/backends/gui/checkbox.d.ts.map +1 -1
- package/dist/backends/gui/checkbox.js +87 -15
- package/dist/backends/gui/checkbox.js.map +1 -1
- package/dist/backends/gui/chip.cjs +51 -0
- package/dist/backends/gui/chip.d.ts +47 -0
- package/dist/backends/gui/chip.d.ts.map +1 -0
- package/dist/backends/gui/chip.js +49 -0
- package/dist/backends/gui/chip.js.map +1 -0
- package/dist/backends/gui/choice.cjs +18 -3
- package/dist/backends/gui/choice.d.ts +10 -2
- package/dist/backends/gui/choice.d.ts.map +1 -1
- package/dist/backends/gui/choice.js +19 -4
- package/dist/backends/gui/choice.js.map +1 -1
- package/dist/backends/gui/code-editor.cjs +16 -5
- package/dist/backends/gui/code-editor.d.ts +18 -1
- package/dist/backends/gui/code-editor.d.ts.map +1 -1
- package/dist/backends/gui/code-editor.js +16 -5
- package/dist/backends/gui/code-editor.js.map +1 -1
- package/dist/backends/gui/color-sample.cjs +24 -0
- package/dist/backends/gui/color-sample.d.ts +23 -0
- package/dist/backends/gui/color-sample.d.ts.map +1 -0
- package/dist/backends/gui/color-sample.js +22 -0
- package/dist/backends/gui/color-sample.js.map +1 -0
- package/dist/backends/gui/control.cjs +5 -3
- package/dist/backends/gui/control.d.ts +13 -3
- package/dist/backends/gui/control.d.ts.map +1 -1
- package/dist/backends/gui/control.js +5 -3
- package/dist/backends/gui/control.js.map +1 -1
- package/dist/backends/gui/country-select.cjs +69 -0
- package/dist/backends/gui/country-select.d.ts +30 -0
- package/dist/backends/gui/country-select.d.ts.map +1 -0
- package/dist/backends/gui/country-select.js +67 -0
- package/dist/backends/gui/country-select.js.map +1 -0
- package/dist/backends/gui/currency-picker.cjs +48 -0
- package/dist/backends/gui/currency-picker.d.ts +37 -0
- package/dist/backends/gui/currency-picker.d.ts.map +1 -0
- package/dist/backends/gui/currency-picker.js +46 -0
- package/dist/backends/gui/currency-picker.js.map +1 -0
- package/dist/backends/gui/density.cjs +32 -0
- package/dist/backends/gui/density.d.ts +27 -0
- package/dist/backends/gui/density.d.ts.map +1 -0
- package/dist/backends/gui/density.js +27 -0
- package/dist/backends/gui/density.js.map +1 -0
- package/dist/backends/gui/dialog.cjs +65 -7
- package/dist/backends/gui/dialog.d.ts +68 -3
- package/dist/backends/gui/dialog.d.ts.map +1 -1
- package/dist/backends/gui/dialog.js +63 -7
- package/dist/backends/gui/dialog.js.map +1 -1
- package/dist/backends/gui/dropdown-menu.cjs +361 -31
- package/dist/backends/gui/dropdown-menu.d.ts +151 -15
- package/dist/backends/gui/dropdown-menu.d.ts.map +1 -1
- package/dist/backends/gui/dropdown-menu.js +353 -34
- package/dist/backends/gui/dropdown-menu.js.map +1 -1
- package/dist/backends/gui/feedback.cjs +78 -0
- package/dist/backends/gui/feedback.d.ts +46 -0
- package/dist/backends/gui/feedback.d.ts.map +1 -0
- package/dist/backends/gui/feedback.js +74 -0
- package/dist/backends/gui/feedback.js.map +1 -0
- package/dist/backends/gui/field.cjs +71 -14
- package/dist/backends/gui/field.d.ts +43 -3
- package/dist/backends/gui/field.d.ts.map +1 -1
- package/dist/backends/gui/field.js +69 -14
- package/dist/backends/gui/field.js.map +1 -1
- package/dist/backends/gui/flag.cjs +17 -0
- package/dist/backends/gui/flag.d.ts +9 -0
- package/dist/backends/gui/flag.d.ts.map +1 -0
- package/dist/backends/gui/flag.js +14 -0
- package/dist/backends/gui/flag.js.map +1 -0
- package/dist/backends/gui/grip.cjs +35 -3
- package/dist/backends/gui/grip.d.ts +16 -1
- package/dist/backends/gui/grip.d.ts.map +1 -1
- package/dist/backends/gui/grip.js +35 -3
- package/dist/backends/gui/grip.js.map +1 -1
- package/dist/backends/gui/heading.cjs +27 -0
- package/dist/backends/gui/heading.d.ts +8 -0
- package/dist/backends/gui/heading.d.ts.map +1 -0
- package/dist/backends/gui/heading.js +25 -0
- package/dist/backends/gui/heading.js.map +1 -0
- package/dist/backends/gui/hue.cjs +49 -0
- package/dist/backends/gui/hue.d.ts +18 -0
- package/dist/backends/gui/hue.d.ts.map +1 -0
- package/dist/backends/gui/hue.js +43 -0
- package/dist/backends/gui/hue.js.map +1 -0
- package/dist/backends/gui/icon-tile.cjs +36 -0
- package/dist/backends/gui/icon-tile.d.ts +26 -0
- package/dist/backends/gui/icon-tile.d.ts.map +1 -0
- package/dist/backends/gui/icon-tile.js +32 -0
- package/dist/backends/gui/icon-tile.js.map +1 -0
- package/dist/backends/gui/image-input.cjs +78 -0
- package/dist/backends/gui/image-input.d.ts +32 -0
- package/dist/backends/gui/image-input.d.ts.map +1 -0
- package/dist/backends/gui/image-input.js +74 -0
- package/dist/backends/gui/image-input.js.map +1 -0
- package/dist/backends/gui/index.cjs +93 -7
- package/dist/backends/gui/index.d.ts +45 -2
- package/dist/backends/gui/index.d.ts.map +1 -1
- package/dist/backends/gui/index.js +35 -1
- package/dist/backends/gui/index.js.map +1 -1
- package/dist/backends/gui/input-group.cjs +49 -0
- package/dist/backends/gui/input-group.d.ts +46 -0
- package/dist/backends/gui/input-group.d.ts.map +1 -0
- package/dist/backends/gui/input-group.js +46 -0
- package/dist/backends/gui/input-group.js.map +1 -0
- package/dist/backends/gui/input.cjs +32 -4
- package/dist/backends/gui/input.d.ts +5 -1
- package/dist/backends/gui/input.d.ts.map +1 -1
- package/dist/backends/gui/input.js +33 -5
- package/dist/backends/gui/input.js.map +1 -1
- package/dist/backends/gui/item.cjs +34 -2
- package/dist/backends/gui/item.d.ts +21 -5
- package/dist/backends/gui/item.d.ts.map +1 -1
- package/dist/backends/gui/item.js +35 -3
- package/dist/backends/gui/item.js.map +1 -1
- package/dist/backends/gui/json-tree.cjs +103 -15
- package/dist/backends/gui/json-tree.d.ts +39 -3
- package/dist/backends/gui/json-tree.d.ts.map +1 -1
- package/dist/backends/gui/json-tree.js +104 -16
- package/dist/backends/gui/json-tree.js.map +1 -1
- package/dist/backends/gui/kbd.cjs +18 -2
- package/dist/backends/gui/kbd.d.ts +5 -2
- package/dist/backends/gui/kbd.d.ts.map +1 -1
- package/dist/backends/gui/kbd.js +18 -2
- package/dist/backends/gui/kbd.js.map +1 -1
- package/dist/backends/gui/label.cjs +14 -3
- package/dist/backends/gui/label.d.ts +12 -3
- package/dist/backends/gui/label.d.ts.map +1 -1
- package/dist/backends/gui/label.js +14 -3
- package/dist/backends/gui/label.js.map +1 -1
- package/dist/backends/gui/layout.cjs +5 -1
- package/dist/backends/gui/layout.d.ts +1 -1
- package/dist/backends/gui/layout.d.ts.map +1 -1
- package/dist/backends/gui/layout.js +5 -1
- package/dist/backends/gui/layout.js.map +1 -1
- package/dist/backends/gui/number-field.cjs +163 -0
- package/dist/backends/gui/number-field.d.ts +34 -0
- package/dist/backends/gui/number-field.d.ts.map +1 -0
- package/dist/backends/gui/number-field.js +160 -0
- package/dist/backends/gui/number-field.js.map +1 -0
- package/dist/backends/gui/overflowing-list.cjs +79 -0
- package/dist/backends/gui/overflowing-list.d.ts +42 -0
- package/dist/backends/gui/overflowing-list.d.ts.map +1 -0
- package/dist/backends/gui/overflowing-list.js +76 -0
- package/dist/backends/gui/overflowing-list.js.map +1 -0
- package/dist/backends/gui/phone-country-picker.cjs +60 -0
- package/dist/backends/gui/phone-country-picker.d.ts +34 -0
- package/dist/backends/gui/phone-country-picker.d.ts.map +1 -0
- package/dist/backends/gui/phone-country-picker.js +57 -0
- package/dist/backends/gui/phone-country-picker.js.map +1 -0
- package/dist/backends/gui/popover.cjs +20 -4
- package/dist/backends/gui/popover.d.ts +12 -1
- package/dist/backends/gui/popover.d.ts.map +1 -1
- package/dist/backends/gui/popover.js +21 -5
- package/dist/backends/gui/popover.js.map +1 -1
- package/dist/backends/gui/progress-ring.cjs +38 -0
- package/dist/backends/gui/progress-ring.d.ts +37 -0
- package/dist/backends/gui/progress-ring.d.ts.map +1 -0
- package/dist/backends/gui/progress-ring.js +36 -0
- package/dist/backends/gui/progress-ring.js.map +1 -0
- package/dist/backends/gui/progress.cjs +31 -7
- package/dist/backends/gui/progress.d.ts +25 -3
- package/dist/backends/gui/progress.d.ts.map +1 -1
- package/dist/backends/gui/progress.js +32 -8
- package/dist/backends/gui/progress.js.map +1 -1
- package/dist/backends/gui/radio-group.cjs +28 -2
- package/dist/backends/gui/radio-group.d.ts +20 -2
- package/dist/backends/gui/radio-group.d.ts.map +1 -1
- package/dist/backends/gui/radio-group.js +28 -2
- package/dist/backends/gui/radio-group.js.map +1 -1
- package/dist/backends/gui/search-list.cjs +62 -0
- package/dist/backends/gui/search-list.d.ts +65 -0
- package/dist/backends/gui/search-list.d.ts.map +1 -0
- package/dist/backends/gui/search-list.js +58 -0
- package/dist/backends/gui/search-list.js.map +1 -0
- package/dist/backends/gui/select.cjs +50 -16
- package/dist/backends/gui/select.d.ts +12 -3
- package/dist/backends/gui/select.d.ts.map +1 -1
- package/dist/backends/gui/select.js +51 -17
- package/dist/backends/gui/select.js.map +1 -1
- package/dist/backends/gui/shortcut.cjs +122 -0
- package/dist/backends/gui/shortcut.d.ts +58 -0
- package/dist/backends/gui/shortcut.d.ts.map +1 -0
- package/dist/backends/gui/shortcut.js +115 -0
- package/dist/backends/gui/shortcut.js.map +1 -0
- package/dist/backends/gui/skeleton.cjs +41 -10
- package/dist/backends/gui/skeleton.d.ts +46 -8
- package/dist/backends/gui/skeleton.d.ts.map +1 -1
- package/dist/backends/gui/skeleton.js +39 -8
- package/dist/backends/gui/skeleton.js.map +1 -1
- package/dist/backends/gui/snippet.cjs +12 -1
- package/dist/backends/gui/snippet.d.ts +4 -2
- package/dist/backends/gui/snippet.d.ts.map +1 -1
- package/dist/backends/gui/snippet.js +12 -1
- package/dist/backends/gui/snippet.js.map +1 -1
- package/dist/backends/gui/spinner.cjs +8 -1
- package/dist/backends/gui/spinner.d.ts +11 -2
- package/dist/backends/gui/spinner.d.ts.map +1 -1
- package/dist/backends/gui/spinner.js +9 -2
- package/dist/backends/gui/spinner.js.map +1 -1
- package/dist/backends/gui/stack-icon.cjs +17 -0
- package/dist/backends/gui/stack-icon.d.ts +15 -0
- package/dist/backends/gui/stack-icon.d.ts.map +1 -0
- package/dist/backends/gui/stack-icon.js +15 -0
- package/dist/backends/gui/stack-icon.js.map +1 -0
- package/dist/backends/gui/status.cjs +38 -1
- package/dist/backends/gui/status.d.ts +16 -2
- package/dist/backends/gui/status.d.ts.map +1 -1
- package/dist/backends/gui/status.js +38 -2
- package/dist/backends/gui/status.js.map +1 -1
- package/dist/backends/gui/stepper.cjs +73 -3
- package/dist/backends/gui/stepper.d.ts +25 -1
- package/dist/backends/gui/stepper.d.ts.map +1 -1
- package/dist/backends/gui/stepper.js +71 -5
- package/dist/backends/gui/stepper.js.map +1 -1
- package/dist/backends/gui/switch.cjs +35 -20
- package/dist/backends/gui/switch.d.ts +12 -2
- package/dist/backends/gui/switch.d.ts.map +1 -1
- package/dist/backends/gui/switch.js +35 -20
- package/dist/backends/gui/switch.js.map +1 -1
- package/dist/backends/gui/tabs.cjs +63 -17
- package/dist/backends/gui/tabs.d.ts +35 -6
- package/dist/backends/gui/tabs.d.ts.map +1 -1
- package/dist/backends/gui/tabs.js +65 -19
- package/dist/backends/gui/tabs.js.map +1 -1
- package/dist/backends/gui/tag.cjs +48 -0
- package/dist/backends/gui/tag.d.ts +53 -0
- package/dist/backends/gui/tag.d.ts.map +1 -0
- package/dist/backends/gui/tag.js +46 -0
- package/dist/backends/gui/tag.js.map +1 -0
- package/dist/backends/gui/tags.cjs +9 -2
- package/dist/backends/gui/tags.d.ts +6 -5
- package/dist/backends/gui/tags.d.ts.map +1 -1
- package/dist/backends/gui/tags.js +9 -2
- package/dist/backends/gui/tags.js.map +1 -1
- package/dist/backends/gui/textarea.cjs +22 -6
- package/dist/backends/gui/textarea.d.ts +10 -1
- package/dist/backends/gui/textarea.d.ts.map +1 -1
- package/dist/backends/gui/textarea.js +22 -6
- package/dist/backends/gui/textarea.js.map +1 -1
- package/dist/backends/gui/toaster.cjs +167 -3
- package/dist/backends/gui/toaster.d.ts +28 -2
- package/dist/backends/gui/toaster.d.ts.map +1 -1
- package/dist/backends/gui/toaster.js +167 -5
- package/dist/backends/gui/toaster.js.map +1 -1
- package/dist/backends/gui/toggle-group.cjs +13 -0
- package/dist/backends/gui/toggle-group.d.ts +7 -1
- package/dist/backends/gui/toggle-group.d.ts.map +1 -1
- package/dist/backends/gui/toggle-group.js +13 -0
- package/dist/backends/gui/toggle-group.js.map +1 -1
- package/dist/backends/gui/tooltip.cjs +29 -6
- package/dist/backends/gui/tooltip.d.ts +23 -4
- package/dist/backends/gui/tooltip.d.ts.map +1 -1
- package/dist/backends/gui/tooltip.js +31 -8
- package/dist/backends/gui/tooltip.js.map +1 -1
- package/dist/backends/gui/truncated-text.cjs +102 -0
- package/dist/backends/gui/truncated-text.d.ts +55 -0
- package/dist/backends/gui/truncated-text.d.ts.map +1 -0
- package/dist/backends/gui/truncated-text.js +97 -0
- package/dist/backends/gui/truncated-text.js.map +1 -0
- package/dist/gallery/compound.cjs +60 -0
- package/dist/gallery/compound.d.ts +2 -0
- package/dist/gallery/compound.d.ts.map +1 -0
- package/dist/gallery/compound.js +58 -0
- package/dist/gallery/compound.js.map +1 -0
- package/dist/gallery/display.cjs +47 -0
- package/dist/gallery/display.d.ts +3 -0
- package/dist/gallery/display.d.ts.map +1 -0
- package/dist/gallery/display.js +45 -0
- package/dist/gallery/display.js.map +1 -0
- package/dist/gallery/feedback.cjs +38 -0
- package/dist/gallery/feedback.d.ts +2 -0
- package/dist/gallery/feedback.d.ts.map +1 -0
- package/dist/gallery/feedback.js +36 -0
- package/dist/gallery/feedback.js.map +1 -0
- package/dist/gallery/fields.cjs +53 -0
- package/dist/gallery/fields.d.ts +2 -0
- package/dist/gallery/fields.d.ts.map +1 -0
- package/dist/gallery/fields.js +51 -0
- package/dist/gallery/fields.js.map +1 -0
- package/dist/gallery/frames.cjs +47 -0
- package/dist/gallery/frames.d.ts +2 -0
- package/dist/gallery/frames.d.ts.map +1 -0
- package/dist/gallery/frames.js +45 -0
- package/dist/gallery/frames.js.map +1 -0
- package/dist/gallery/menus.cjs +64 -0
- package/dist/gallery/menus.d.ts +15 -0
- package/dist/gallery/menus.d.ts.map +1 -0
- package/dist/gallery/menus.js +58 -0
- package/dist/gallery/menus.js.map +1 -0
- package/dist/gallery/records.cjs +33 -0
- package/dist/gallery/records.d.ts +2 -0
- package/dist/gallery/records.d.ts.map +1 -0
- package/dist/gallery/records.js +31 -0
- package/dist/gallery/records.js.map +1 -0
- package/dist/gallery/section.cjs +17 -0
- package/dist/gallery/section.d.ts +10 -0
- package/dist/gallery/section.d.ts.map +1 -0
- package/dist/gallery/section.js +14 -0
- package/dist/gallery/section.js.map +1 -0
- package/dist/gallery.cjs +8 -14
- package/dist/gallery.d.ts.map +1 -1
- package/dist/gallery.html +1613 -265
- package/dist/gallery.js +3 -9
- package/dist/gallery.js.map +1 -1
- package/dist/gui-config.cjs +37 -7
- package/dist/gui-config.d.ts +11 -3
- package/dist/gui-config.d.ts.map +1 -1
- package/dist/gui-config.js +37 -7
- package/dist/gui-config.js.map +1 -1
- package/dist/index.cjs +61 -2
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/index.node.cjs +61 -2
- package/dist/index.node.js +7 -1
- package/dist/motion.cjs +25 -1
- package/dist/motion.d.ts +16 -1
- package/dist/motion.d.ts.map +1 -1
- package/dist/motion.js +24 -1
- package/dist/motion.js.map +1 -1
- package/dist/primitives/AvatarGroup.cjs +8 -0
- package/dist/primitives/AvatarGroup.d.ts +2 -0
- package/dist/primitives/AvatarGroup.d.ts.map +1 -0
- package/dist/primitives/AvatarGroup.js +5 -0
- package/dist/primitives/AvatarGroup.js.map +1 -0
- package/dist/primitives/BannerAction.cjs +8 -0
- package/dist/primitives/BannerAction.d.ts +2 -0
- package/dist/primitives/BannerAction.d.ts.map +1 -0
- package/dist/primitives/BannerAction.js +5 -0
- package/dist/primitives/BannerAction.js.map +1 -0
- package/dist/primitives/ButtonGroup.cjs +8 -0
- package/dist/primitives/ButtonGroup.d.ts +2 -0
- package/dist/primitives/ButtonGroup.d.ts.map +1 -0
- package/dist/primitives/ButtonGroup.js +5 -0
- package/dist/primitives/ButtonGroup.js.map +1 -0
- package/dist/primitives/ButtonGroupContext.cjs +8 -0
- package/dist/primitives/ButtonGroupContext.d.ts +2 -0
- package/dist/primitives/ButtonGroupContext.d.ts.map +1 -0
- package/dist/primitives/ButtonGroupContext.js +5 -0
- package/dist/primitives/ButtonGroupContext.js.map +1 -0
- package/dist/primitives/CalloutAction.cjs +8 -0
- package/dist/primitives/CalloutAction.d.ts +2 -0
- package/dist/primitives/CalloutAction.d.ts.map +1 -0
- package/dist/primitives/CalloutAction.js +5 -0
- package/dist/primitives/CalloutAction.js.map +1 -0
- package/dist/primitives/Chip.cjs +8 -0
- package/dist/primitives/Chip.d.ts +2 -0
- package/dist/primitives/Chip.d.ts.map +1 -0
- package/dist/primitives/Chip.js +5 -0
- package/dist/primitives/Chip.js.map +1 -0
- package/dist/primitives/ColorSample.cjs +8 -0
- package/dist/primitives/ColorSample.d.ts +2 -0
- package/dist/primitives/ColorSample.d.ts.map +1 -0
- package/dist/primitives/ColorSample.js +5 -0
- package/dist/primitives/ColorSample.js.map +1 -0
- package/dist/primitives/CountrySelect.cjs +8 -0
- package/dist/primitives/CountrySelect.d.ts +2 -0
- package/dist/primitives/CountrySelect.d.ts.map +1 -0
- package/dist/primitives/CountrySelect.js +5 -0
- package/dist/primitives/CountrySelect.js.map +1 -0
- package/dist/primitives/CurrencyPicker.cjs +8 -0
- package/dist/primitives/CurrencyPicker.d.ts +2 -0
- package/dist/primitives/CurrencyPicker.d.ts.map +1 -0
- package/dist/primitives/CurrencyPicker.js +5 -0
- package/dist/primitives/CurrencyPicker.js.map +1 -0
- package/dist/primitives/Density.cjs +8 -0
- package/dist/primitives/Density.d.ts +2 -0
- package/dist/primitives/Density.d.ts.map +1 -0
- package/dist/primitives/Density.js +5 -0
- package/dist/primitives/Density.js.map +1 -0
- package/dist/primitives/DialogBody.cjs +8 -0
- package/dist/primitives/DialogBody.d.ts +2 -0
- package/dist/primitives/DialogBody.d.ts.map +1 -0
- package/dist/primitives/DialogBody.js +5 -0
- package/dist/primitives/DialogBody.js.map +1 -0
- package/dist/primitives/DropdownMenuBack.cjs +8 -0
- package/dist/primitives/DropdownMenuBack.d.ts +2 -0
- package/dist/primitives/DropdownMenuBack.d.ts.map +1 -0
- package/dist/primitives/DropdownMenuBack.js +5 -0
- package/dist/primitives/DropdownMenuBack.js.map +1 -0
- package/dist/primitives/DropdownMenuClose.cjs +8 -0
- package/dist/primitives/DropdownMenuClose.d.ts +2 -0
- package/dist/primitives/DropdownMenuClose.d.ts.map +1 -0
- package/dist/primitives/DropdownMenuClose.js +5 -0
- package/dist/primitives/DropdownMenuClose.js.map +1 -0
- package/dist/primitives/DropdownMenuEmpty.cjs +8 -0
- package/dist/primitives/DropdownMenuEmpty.d.ts +2 -0
- package/dist/primitives/DropdownMenuEmpty.d.ts.map +1 -0
- package/dist/primitives/DropdownMenuEmpty.js +5 -0
- package/dist/primitives/DropdownMenuEmpty.js.map +1 -0
- package/dist/primitives/DropdownMenuHeader.cjs +8 -0
- package/dist/primitives/DropdownMenuHeader.d.ts +2 -0
- package/dist/primitives/DropdownMenuHeader.d.ts.map +1 -0
- package/dist/primitives/DropdownMenuHeader.js +5 -0
- package/dist/primitives/DropdownMenuHeader.js.map +1 -0
- package/dist/primitives/DropdownMenuLoading.cjs +8 -0
- package/dist/primitives/DropdownMenuLoading.d.ts +2 -0
- package/dist/primitives/DropdownMenuLoading.d.ts.map +1 -0
- package/dist/primitives/DropdownMenuLoading.js +5 -0
- package/dist/primitives/DropdownMenuLoading.js.map +1 -0
- package/dist/primitives/DropdownMenuOptionItem.cjs +8 -0
- package/dist/primitives/DropdownMenuOptionItem.d.ts +2 -0
- package/dist/primitives/DropdownMenuOptionItem.d.ts.map +1 -0
- package/dist/primitives/DropdownMenuOptionItem.js +5 -0
- package/dist/primitives/DropdownMenuOptionItem.js.map +1 -0
- package/dist/primitives/DropdownMenuPage.cjs +8 -0
- package/dist/primitives/DropdownMenuPage.d.ts +2 -0
- package/dist/primitives/DropdownMenuPage.d.ts.map +1 -0
- package/dist/primitives/DropdownMenuPage.js +5 -0
- package/dist/primitives/DropdownMenuPage.js.map +1 -0
- package/dist/primitives/DropdownMenuSearch.cjs +8 -0
- package/dist/primitives/DropdownMenuSearch.d.ts +2 -0
- package/dist/primitives/DropdownMenuSearch.d.ts.map +1 -0
- package/dist/primitives/DropdownMenuSearch.js +5 -0
- package/dist/primitives/DropdownMenuSearch.js.map +1 -0
- package/dist/primitives/DropdownMenuSection.cjs +8 -0
- package/dist/primitives/DropdownMenuSection.d.ts +2 -0
- package/dist/primitives/DropdownMenuSection.d.ts.map +1 -0
- package/dist/primitives/DropdownMenuSection.js +5 -0
- package/dist/primitives/DropdownMenuSection.js.map +1 -0
- package/dist/primitives/DropdownMenuSelectionGroup.cjs +8 -0
- package/dist/primitives/DropdownMenuSelectionGroup.d.ts +2 -0
- package/dist/primitives/DropdownMenuSelectionGroup.d.ts.map +1 -0
- package/dist/primitives/DropdownMenuSelectionGroup.js +5 -0
- package/dist/primitives/DropdownMenuSelectionGroup.js.map +1 -0
- package/dist/primitives/DropdownMenuTitle.cjs +8 -0
- package/dist/primitives/DropdownMenuTitle.d.ts +2 -0
- package/dist/primitives/DropdownMenuTitle.d.ts.map +1 -0
- package/dist/primitives/DropdownMenuTitle.js +5 -0
- package/dist/primitives/DropdownMenuTitle.js.map +1 -0
- package/dist/primitives/Heading.cjs +2 -2
- package/dist/primitives/Heading.d.ts +1 -1
- package/dist/primitives/Heading.d.ts.map +1 -1
- package/dist/primitives/Heading.js +1 -1
- package/dist/primitives/Heading.js.map +1 -1
- package/dist/primitives/IconTile.cjs +8 -0
- package/dist/primitives/IconTile.d.ts +2 -0
- package/dist/primitives/IconTile.d.ts.map +1 -0
- package/dist/primitives/IconTile.js +5 -0
- package/dist/primitives/IconTile.js.map +1 -0
- package/dist/primitives/ImageInput.cjs +8 -0
- package/dist/primitives/ImageInput.d.ts +2 -0
- package/dist/primitives/ImageInput.d.ts.map +1 -0
- package/dist/primitives/ImageInput.js +5 -0
- package/dist/primitives/ImageInput.js.map +1 -0
- package/dist/primitives/InputGroup.cjs +8 -0
- package/dist/primitives/InputGroup.d.ts +2 -0
- package/dist/primitives/InputGroup.d.ts.map +1 -0
- package/dist/primitives/InputGroup.js +5 -0
- package/dist/primitives/InputGroup.js.map +1 -0
- package/dist/primitives/NumberField.cjs +8 -0
- package/dist/primitives/NumberField.d.ts +2 -0
- package/dist/primitives/NumberField.d.ts.map +1 -0
- package/dist/primitives/NumberField.js +5 -0
- package/dist/primitives/NumberField.js.map +1 -0
- package/dist/primitives/OverflowingList.cjs +8 -0
- package/dist/primitives/OverflowingList.d.ts +2 -0
- package/dist/primitives/OverflowingList.d.ts.map +1 -0
- package/dist/primitives/OverflowingList.js +5 -0
- package/dist/primitives/OverflowingList.js.map +1 -0
- package/dist/primitives/PhoneCountryPicker.cjs +8 -0
- package/dist/primitives/PhoneCountryPicker.d.ts +2 -0
- package/dist/primitives/PhoneCountryPicker.d.ts.map +1 -0
- package/dist/primitives/PhoneCountryPicker.js +5 -0
- package/dist/primitives/PhoneCountryPicker.js.map +1 -0
- package/dist/primitives/ProgressRing.cjs +8 -0
- package/dist/primitives/ProgressRing.d.ts +2 -0
- package/dist/primitives/ProgressRing.d.ts.map +1 -0
- package/dist/primitives/ProgressRing.js +5 -0
- package/dist/primitives/ProgressRing.js.map +1 -0
- package/dist/primitives/RadioCircle.cjs +8 -0
- package/dist/primitives/RadioCircle.d.ts +2 -0
- package/dist/primitives/RadioCircle.d.ts.map +1 -0
- package/dist/primitives/RadioCircle.js +5 -0
- package/dist/primitives/RadioCircle.js.map +1 -0
- package/dist/primitives/SKELETON_HEIGHT.cjs +8 -0
- package/dist/primitives/SKELETON_HEIGHT.d.ts +2 -0
- package/dist/primitives/SKELETON_HEIGHT.d.ts.map +1 -0
- package/dist/primitives/SKELETON_HEIGHT.js +5 -0
- package/dist/primitives/SKELETON_HEIGHT.js.map +1 -0
- package/dist/primitives/STATUS_COLOR.cjs +8 -0
- package/dist/primitives/STATUS_COLOR.d.ts +2 -0
- package/dist/primitives/STATUS_COLOR.d.ts.map +1 -0
- package/dist/primitives/STATUS_COLOR.js +5 -0
- package/dist/primitives/STATUS_COLOR.js.map +1 -0
- package/dist/primitives/STATUS_HUE.cjs +8 -0
- package/dist/primitives/STATUS_HUE.d.ts +2 -0
- package/dist/primitives/STATUS_HUE.d.ts.map +1 -0
- package/dist/primitives/STATUS_HUE.js +5 -0
- package/dist/primitives/STATUS_HUE.js.map +1 -0
- package/dist/primitives/STATUS_PAINT.cjs +8 -0
- package/dist/primitives/STATUS_PAINT.d.ts +2 -0
- package/dist/primitives/STATUS_PAINT.d.ts.map +1 -0
- package/dist/primitives/STATUS_PAINT.js +5 -0
- package/dist/primitives/STATUS_PAINT.js.map +1 -0
- package/dist/primitives/Shortcut.cjs +8 -0
- package/dist/primitives/Shortcut.d.ts +2 -0
- package/dist/primitives/Shortcut.d.ts.map +1 -0
- package/dist/primitives/Shortcut.js +5 -0
- package/dist/primitives/Shortcut.js.map +1 -0
- package/dist/primitives/StackIcon.cjs +8 -0
- package/dist/primitives/StackIcon.d.ts +2 -0
- package/dist/primitives/StackIcon.d.ts.map +1 -0
- package/dist/primitives/StackIcon.js +5 -0
- package/dist/primitives/StackIcon.js.map +1 -0
- package/dist/primitives/TOAST_DURATION.cjs +8 -0
- package/dist/primitives/TOAST_DURATION.d.ts +2 -0
- package/dist/primitives/TOAST_DURATION.d.ts.map +1 -0
- package/dist/primitives/TOAST_DURATION.js +5 -0
- package/dist/primitives/TOAST_DURATION.js.map +1 -0
- package/dist/primitives/Tag.cjs +8 -0
- package/dist/primitives/Tag.d.ts +2 -0
- package/dist/primitives/Tag.d.ts.map +1 -0
- package/dist/primitives/Tag.js +5 -0
- package/dist/primitives/Tag.js.map +1 -0
- package/dist/primitives/ToastCard.cjs +8 -0
- package/dist/primitives/ToastCard.d.ts +2 -0
- package/dist/primitives/ToastCard.d.ts.map +1 -0
- package/dist/primitives/ToastCard.js +5 -0
- package/dist/primitives/ToastCard.js.map +1 -0
- package/dist/primitives/ToastFace.cjs +8 -0
- package/dist/primitives/ToastFace.d.ts +2 -0
- package/dist/primitives/ToastFace.d.ts.map +1 -0
- package/dist/primitives/ToastFace.js +5 -0
- package/dist/primitives/ToastFace.js.map +1 -0
- package/dist/primitives/TruncatedText.cjs +8 -0
- package/dist/primitives/TruncatedText.d.ts +2 -0
- package/dist/primitives/TruncatedText.d.ts.map +1 -0
- package/dist/primitives/TruncatedText.js +5 -0
- package/dist/primitives/TruncatedText.js.map +1 -0
- package/dist/primitives/TruncatedTextProvider.cjs +8 -0
- package/dist/primitives/TruncatedTextProvider.d.ts +2 -0
- package/dist/primitives/TruncatedTextProvider.d.ts.map +1 -0
- package/dist/primitives/TruncatedTextProvider.js +5 -0
- package/dist/primitives/TruncatedTextProvider.js.map +1 -0
- package/dist/primitives/VisuallyHidden.cjs +8 -0
- package/dist/primitives/VisuallyHidden.d.ts +2 -0
- package/dist/primitives/VisuallyHidden.d.ts.map +1 -0
- package/dist/primitives/VisuallyHidden.js +5 -0
- package/dist/primitives/VisuallyHidden.js.map +1 -0
- package/dist/primitives/fieldSize.cjs +8 -0
- package/dist/primitives/fieldSize.d.ts +2 -0
- package/dist/primitives/fieldSize.d.ts.map +1 -0
- package/dist/primitives/fieldSize.js +5 -0
- package/dist/primitives/fieldSize.js.map +1 -0
- package/dist/primitives/flag.cjs +8 -0
- package/dist/primitives/flag.d.ts +2 -0
- package/dist/primitives/flag.d.ts.map +1 -0
- package/dist/primitives/flag.js +5 -0
- package/dist/primitives/flag.js.map +1 -0
- package/dist/primitives/formatShortcut.cjs +8 -0
- package/dist/primitives/formatShortcut.d.ts +2 -0
- package/dist/primitives/formatShortcut.d.ts.map +1 -0
- package/dist/primitives/formatShortcut.js +5 -0
- package/dist/primitives/formatShortcut.js.map +1 -0
- package/dist/primitives/initialOf.cjs +8 -0
- package/dist/primitives/initialOf.d.ts +2 -0
- package/dist/primitives/initialOf.d.ts.map +1 -0
- package/dist/primitives/initialOf.js +5 -0
- package/dist/primitives/initialOf.js.map +1 -0
- package/dist/primitives/parseNumber.cjs +8 -0
- package/dist/primitives/parseNumber.d.ts +2 -0
- package/dist/primitives/parseNumber.d.ts.map +1 -0
- package/dist/primitives/parseNumber.js +5 -0
- package/dist/primitives/parseNumber.js.map +1 -0
- package/dist/primitives/speakShortcut.cjs +8 -0
- package/dist/primitives/speakShortcut.d.ts +2 -0
- package/dist/primitives/speakShortcut.d.ts.map +1 -0
- package/dist/primitives/speakShortcut.js +5 -0
- package/dist/primitives/speakShortcut.js.map +1 -0
- package/dist/primitives/tileTones.cjs +8 -0
- package/dist/primitives/tileTones.d.ts +2 -0
- package/dist/primitives/tileTones.d.ts.map +1 -0
- package/dist/primitives/tileTones.js +5 -0
- package/dist/primitives/tileTones.js.map +1 -0
- package/dist/primitives/useDensity.cjs +8 -0
- package/dist/primitives/useDensity.d.ts +2 -0
- package/dist/primitives/useDensity.d.ts.map +1 -0
- package/dist/primitives/useDensity.js +5 -0
- package/dist/primitives/useDensity.js.map +1 -0
- package/dist/primitives/useField.cjs +8 -0
- package/dist/primitives/useField.d.ts +2 -0
- package/dist/primitives/useField.d.ts.map +1 -0
- package/dist/primitives/useField.js +5 -0
- package/dist/primitives/useField.js.map +1 -0
- package/dist/product/ComboBox.cjs +25 -7
- package/dist/product/ComboBox.d.ts +3 -1
- package/dist/product/ComboBox.d.ts.map +1 -1
- package/dist/product/ComboBox.js +25 -7
- package/dist/product/ComboBox.js.map +1 -1
- package/dist/product/CommandMenu.cjs +137 -0
- package/dist/product/CommandMenu.d.ts +77 -0
- package/dist/product/CommandMenu.d.ts.map +1 -0
- package/dist/product/CommandMenu.js +134 -0
- package/dist/product/CommandMenu.js.map +1 -0
- package/dist/product/DetailPane.cjs +154 -12
- package/dist/product/DetailPane.d.ts +80 -2
- package/dist/product/DetailPane.d.ts.map +1 -1
- package/dist/product/DetailPane.js +153 -16
- package/dist/product/DetailPane.js.map +1 -1
- package/dist/product/Fact.cjs +6 -1
- package/dist/product/Fact.d.ts +16 -1
- package/dist/product/Fact.d.ts.map +1 -1
- package/dist/product/Fact.js +6 -1
- package/dist/product/Fact.js.map +1 -1
- package/dist/product/Field.cjs +14 -2
- package/dist/product/Field.d.ts +16 -1
- package/dist/product/Field.d.ts.map +1 -1
- package/dist/product/Field.js +14 -2
- package/dist/product/Field.js.map +1 -1
- package/dist/product/Filters.cjs +61 -9
- package/dist/product/Filters.d.ts +37 -6
- package/dist/product/Filters.d.ts.map +1 -1
- package/dist/product/Filters.js +62 -10
- package/dist/product/Filters.js.map +1 -1
- package/dist/product/MenuRow.cjs +81 -2
- package/dist/product/MenuRow.d.ts +76 -6
- package/dist/product/MenuRow.d.ts.map +1 -1
- package/dist/product/MenuRow.js +81 -4
- package/dist/product/MenuRow.js.map +1 -1
- package/dist/product/PrimaryButton.cjs +5 -1
- package/dist/product/PrimaryButton.d.ts +8 -0
- package/dist/product/PrimaryButton.d.ts.map +1 -1
- package/dist/product/PrimaryButton.js +5 -1
- package/dist/product/PrimaryButton.js.map +1 -1
- package/dist/product/Skeleton.cjs +7 -6
- package/dist/product/Skeleton.d.ts +3 -20
- package/dist/product/Skeleton.d.ts.map +1 -1
- package/dist/product/Skeleton.js +8 -7
- package/dist/product/Skeleton.js.map +1 -1
- package/dist/product/index.cjs +2 -0
- package/dist/product/index.d.ts +1 -0
- package/dist/product/index.d.ts.map +1 -1
- package/dist/product/index.js +2 -0
- package/dist/product/index.js.map +1 -1
- package/dist/settings/Section.cjs +11 -2
- package/dist/settings/Section.d.ts +8 -1
- package/dist/settings/Section.d.ts.map +1 -1
- package/dist/settings/Section.js +11 -2
- package/dist/settings/Section.js.map +1 -1
- package/dist/styles/motion.css +70 -0
- package/dist/styles.css +1479 -136
- package/dist/theme.css +963 -9
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch.js","sourceRoot":"","sources":["../../../src/backends/gui/switch.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ
|
|
1
|
+
{"version":3,"file":"switch.js","sourceRoot":"","sources":["../../../src/backends/gui/switch.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,YAAY,CAAA;AAEhD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAItC,4FAA4F;AAC5F,MAAM,IAAI,GAA8E;IACtF,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;IAC7C,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;IACxC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;CACzC,CAAA;AAOD,MAAM,MAAM,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,EAAe,EAAE,EAAE;IAC3D,MAAM,OAAO,GAAG,UAAU,EAAE,KAAK,SAAS,CAAA;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;IACtD,OAAO,CACP,KAAC,SAAS,OACJ,IAAI,CAAC,QAAQ,CAAC,eACP,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAC/C,KAAK,EAAE,GAAG,CAAC,CAAC,EACZ,MAAM,EAAE,GAAG,CAAC,CAAC,EACb,SAAS,EAAE,GAAG,CAAC,CAAC,EAChB,OAAO,EAAE,CAAC,EACV,UAAU,EAAE,CAAC,EACb,eAAe,EAAC,SAAS;QACzB,0EAA0E;QAC1E,iDAAiD;QACjD,WAAW,EAAE,GAAG,CAAC,IAAI,EACrB,WAAW,EAAC,cAAc,EAC1B,WAAW,EAAE,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE;QACrE,yEAAyE;QACzE,0EAA0E;QAC1E,yEAAyE;QACzE,6DAA6D;QAC7D,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAC3B,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,KACxC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,KACrB,KAAK,YAET,KAAC,SAAS,CAAC,KAAK,OACV,IAAI,CAAC,cAAc,CAAC,EACxB,KAAK,EAAE,GAAG,CAAC,KAAK,EAChB,MAAM,EAAE,GAAG,CAAC,KAAK,EACjB,eAAe,EAAC,SAAS;YACzB,yEAAyE;YACzE,4EAA4E;YAC5E,0EAA0E;YAC1E,sEAAsE;YACtE,uEAAuE;YACvE,0EAA0E;YAC1E,sEAAsE;YACtE,iCAAiC;YACjC,WAAW,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,GAC/B,GACQ,CACX,CAAA;AACH,CAAC,CAAA;AAED,OAAO,EAAE,MAAM,EAAE,CAAA"}
|
|
@@ -3,30 +3,76 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.TabsContent = exports.TabsTrigger = exports.TabsList = exports.Tabs = void 0;
|
|
5
5
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* Tabs — `TabsTrigger` is gui's `Tabs.Tab`; rows meet the 44px touch floor.
|
|
8
|
+
*
|
|
9
|
+
* Two looks. The default is the segmented pill: a 36px track on the hover rung
|
|
10
|
+
* with the chosen tab lifted onto the ground. `variant="line"` is the record
|
|
11
|
+
* page's strip (twenty-ui's Tabs, MIT, NOTICE): a transparent list over a 1px
|
|
12
|
+
* baseline, 40px tabs whose label sits in an inner box (8×8 at `md`, 4×8 at
|
|
13
|
+
* `sm`, 8px corner) that takes the hover rung under the pointer, and a 1px line
|
|
14
|
+
* in the ink under the chosen tab. A tab takes a `startIcon`, an `endIcon` and a
|
|
15
|
+
* `badge`, and `highlighted` rings it (a drop target during a drag). Vertical
|
|
16
|
+
* orientation moves the baseline to the end edge.
|
|
17
|
+
*
|
|
18
|
+
* The variant and the chosen value ride a context from the root, because gui
|
|
19
|
+
* paints a tab's `activeStyle` but tells nothing else inside it which tab is
|
|
20
|
+
* chosen — and the line has to know where to draw.
|
|
21
|
+
*/
|
|
7
22
|
const gui_1 = require("@hanzo/gui");
|
|
23
|
+
const react_1 = require("react");
|
|
8
24
|
const ink_1 = require("./ink.cjs");
|
|
9
25
|
const slot_1 = require("./slot.cjs");
|
|
10
26
|
const gesture_1 = require("./gesture.cjs");
|
|
11
27
|
const ROW_H = 36;
|
|
12
|
-
const
|
|
28
|
+
const LINE_H = 40;
|
|
29
|
+
const LineContext = /* @__PURE__ */ (0, react_1.createContext)({ variant: 'default', value: undefined, vertical: false });
|
|
30
|
+
const Tabs = ({ variant = 'default', value, defaultValue, onValueChange, orientation, ...p }) => {
|
|
31
|
+
const [own, setOwn] = (0, react_1.useState)(defaultValue);
|
|
32
|
+
const current = value ?? own;
|
|
33
|
+
return ((0, jsx_runtime_1.jsx)(LineContext.Provider, { value: { variant, value: current, vertical: orientation === 'vertical' }, children: (0, jsx_runtime_1.jsx)(gui_1.Tabs, { ...(0, slot_1.slot)('tabs'), flexDirection: orientation === 'vertical' ? 'row' : 'column', gap: "$2", ...(value !== undefined ? { value } : { defaultValue }), onValueChange: (v) => {
|
|
34
|
+
setOwn(v);
|
|
35
|
+
onValueChange?.(v);
|
|
36
|
+
}, ...(orientation ? { orientation } : null), ...(variant === 'line' ? { 'data-variant': 'line' } : null), ...p }) }));
|
|
37
|
+
};
|
|
13
38
|
exports.Tabs = Tabs;
|
|
14
|
-
const TabsList = (p) =>
|
|
39
|
+
const TabsList = (p) => {
|
|
40
|
+
const { variant, vertical } = (0, react_1.useContext)(LineContext);
|
|
41
|
+
if (variant === 'line')
|
|
42
|
+
return ((0, jsx_runtime_1.jsx)(gui_1.Tabs.List, { ...(0, slot_1.slot)('tabs-list'), ...(vertical
|
|
43
|
+
? { flexDirection: 'column', borderRightWidth: 1, items: 'stretch' }
|
|
44
|
+
: { flexDirection: 'row', borderBottomWidth: 1, items: 'flex-end' }), borderColor: "$borderColor", bg: "transparent", gap: "$1", p: 0, rounded: 0, justify: "flex-start", ...p }));
|
|
45
|
+
return ((0, jsx_runtime_1.jsx)(gui_1.Tabs.List, { ...(0, slot_1.slot)('tabs-list'), items: "center", justify: "center", self: "flex-start", height: ROW_H, p: 3, gap: 2, bg: "$hover", rounded: "$4", ...p }));
|
|
46
|
+
};
|
|
15
47
|
exports.TabsList = TabsList;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
48
|
+
/** The record strip's tab: an inner box that hovers, and the line under the chosen one. */
|
|
49
|
+
const LineTab = ({ children, startIcon, endIcon, badge, size = 'md', highlighted = false, disabled, value, ...p }) => {
|
|
50
|
+
const { value: current, vertical } = (0, react_1.useContext)(LineContext);
|
|
51
|
+
const [hovered, setHovered] = (0, react_1.useState)(false);
|
|
52
|
+
const chosen = current === value;
|
|
53
|
+
const tone = disabled ? '$hush' : chosen ? '$ink' : '$aside';
|
|
54
|
+
return ((0, jsx_runtime_1.jsxs)(gui_1.Tabs.Tab, { ...(0, slot_1.slot)('tabs-trigger'), "data-variant": "line", ...(chosen ? { 'data-chosen': '' } : null), unstyled: true, value: value, disabled: disabled, position: "relative", items: "center", justify: "center", minH: LINE_H, p: 0, bg: "transparent", borderWidth: 0, cursor: disabled ? 'default' : 'pointer', ...(0, gesture_1.touch)(LINE_H, 44, 'y'), onHoverIn: () => setHovered(true), onHoverOut: () => setHovered(false), ...p, children: [(0, jsx_runtime_1.jsxs)(gui_1.XStack, { ...(0, slot_1.slot)('tabs-trigger-box'), items: "center", gap: "$1", px: "$2", py: size === 'sm' ? '$1' : '$2', rounded: highlighted ? '$xs' : '$3', bg: hovered && !disabled ? '$hover' : 'transparent', ...(highlighted ? { outlineWidth: 1, outlineStyle: 'solid', outlineColor: 'var(--primary)', outlineOffset: -1 } : null), children: [startIcon, (0, ink_1.ink)(children, undefined, { size: '$2', fontWeight: '500', color: tone, numberOfLines: 1 }), badge, endIcon] }), chosen ? ((0, jsx_runtime_1.jsx)(gui_1.YStack, { ...(0, slot_1.slot)('tabs-indicator'), position: "absolute", bg: "$ink", ...(vertical ? { r: -1, t: 0, b: 0, width: 1 } : { b: -1, l: 0, r: 0, height: 1 }) })) : null] }));
|
|
55
|
+
};
|
|
56
|
+
const TabsTrigger = (props) => {
|
|
57
|
+
const { variant } = (0, react_1.useContext)(LineContext);
|
|
58
|
+
if (variant === 'line')
|
|
59
|
+
return (0, jsx_runtime_1.jsx)(LineTab, { ...props });
|
|
60
|
+
const { children, startIcon, endIcon, badge, size: _size, highlighted: _highlighted, ...p } = props;
|
|
61
|
+
return ((0, jsx_runtime_1.jsxs)(gui_1.Tabs.Tab, { ...(0, slot_1.slot)('tabs-trigger'), unstyled: true, items: "center", justify: "center", height: "100%", px: "$3", gap: "$1.5", rounded: "$3", cursor: "pointer", ...(0, gesture_1.touch)(ROW_H, 44, 'y'), hoverStyle: { bg: '$edge' }, focusStyle: { bg: '$edge' },
|
|
62
|
+
// The selected tab. gui's `Tabs.Tab` spreads `activeStyle` only for the tab
|
|
63
|
+
// whose `value` is current, and the `unstyled` frame drops its OWN active
|
|
64
|
+
// default (`...!unstyled && !activeStyle && {…}` in the compiled frame) — so
|
|
65
|
+
// without this the active tab is painted identically to the rest and the row
|
|
66
|
+
// reads as though nothing is chosen. A raised `$background` pill on the
|
|
67
|
+
// `$hover` track: shadcn's `data-[state=active]:bg-background shadow-sm`.
|
|
68
|
+
activeStyle: {
|
|
69
|
+
bg: '$background',
|
|
70
|
+
shadowColor: '$shadowColor',
|
|
71
|
+
shadowOpacity: 0.12,
|
|
72
|
+
shadowRadius: 3,
|
|
73
|
+
shadowOffset: { width: 0, height: 1 },
|
|
74
|
+
}, ...p, children: [startIcon, (0, ink_1.ink)(children, undefined, { size: '$2', fontWeight: '500' }), badge, endIcon] }));
|
|
75
|
+
};
|
|
30
76
|
exports.TabsTrigger = TabsTrigger;
|
|
31
77
|
const TabsContent = ({ children, ...p }) => ((0, jsx_runtime_1.jsx)(gui_1.Tabs.Content, { ...(0, slot_1.slot)('tabs-content'), flex: 1, ...p, children: (0, ink_1.ink)(children) }));
|
|
32
78
|
exports.TabsContent = TabsContent;
|
|
@@ -1,13 +1,42 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Tabs — `TabsTrigger` is gui's `Tabs.Tab`; rows meet the 44px touch floor.
|
|
3
|
+
*
|
|
4
|
+
* Two looks. The default is the segmented pill: a 36px track on the hover rung
|
|
5
|
+
* with the chosen tab lifted onto the ground. `variant="line"` is the record
|
|
6
|
+
* page's strip (twenty-ui's Tabs, MIT, NOTICE): a transparent list over a 1px
|
|
7
|
+
* baseline, 40px tabs whose label sits in an inner box (8×8 at `md`, 4×8 at
|
|
8
|
+
* `sm`, 8px corner) that takes the hover rung under the pointer, and a 1px line
|
|
9
|
+
* in the ink under the chosen tab. A tab takes a `startIcon`, an `endIcon` and a
|
|
10
|
+
* `badge`, and `highlighted` rings it (a drop target during a drag). Vertical
|
|
11
|
+
* orientation moves the baseline to the end edge.
|
|
12
|
+
*
|
|
13
|
+
* The variant and the chosen value ride a context from the root, because gui
|
|
14
|
+
* paints a tab's `activeStyle` but tells nothing else inside it which tab is
|
|
15
|
+
* chosen — and the line has to know where to draw.
|
|
16
|
+
*/
|
|
2
17
|
import { Tabs as GuiTabs } from '@hanzo/gui';
|
|
3
|
-
import type
|
|
4
|
-
export type TabsProps = ComponentProps<typeof GuiTabs
|
|
18
|
+
import { type ComponentProps, type ReactNode } from 'react';
|
|
19
|
+
export type TabsProps = ComponentProps<typeof GuiTabs> & {
|
|
20
|
+
/** `line` is the underlined record strip; the default is the segmented pill. */
|
|
21
|
+
variant?: 'default' | 'line';
|
|
22
|
+
};
|
|
5
23
|
export type TabsListProps = ComponentProps<typeof GuiTabs.List>;
|
|
6
|
-
export type TabsTriggerProps = ComponentProps<typeof GuiTabs.Tab
|
|
24
|
+
export type TabsTriggerProps = Omit<ComponentProps<typeof GuiTabs.Tab>, 'size'> & {
|
|
25
|
+
/** A 16px icon before the label (line variant). */
|
|
26
|
+
startIcon?: ReactNode;
|
|
27
|
+
/** An icon after the label. */
|
|
28
|
+
endIcon?: ReactNode;
|
|
29
|
+
/** A count or marker after the label. */
|
|
30
|
+
badge?: ReactNode;
|
|
31
|
+
/** `sm` tightens the inner box to 4×8 (line variant). */
|
|
32
|
+
size?: 'sm' | 'md';
|
|
33
|
+
/** Ringed as a drop target. */
|
|
34
|
+
highlighted?: boolean;
|
|
35
|
+
};
|
|
7
36
|
export type TabsContentProps = ComponentProps<typeof GuiTabs.Content>;
|
|
8
|
-
declare const Tabs: (p: TabsProps) => import("react").JSX.Element;
|
|
37
|
+
declare const Tabs: ({ variant, value, defaultValue, onValueChange, orientation, ...p }: TabsProps) => import("react").JSX.Element;
|
|
9
38
|
declare const TabsList: (p: TabsListProps) => import("react").JSX.Element;
|
|
10
|
-
declare const TabsTrigger: (
|
|
39
|
+
declare const TabsTrigger: (props: TabsTriggerProps) => import("react").JSX.Element;
|
|
11
40
|
declare const TabsContent: ({ children, ...p }: TabsContentProps) => import("react").JSX.Element;
|
|
12
41
|
export { Tabs, TabsList, TabsTrigger, TabsContent };
|
|
13
42
|
//# sourceMappingURL=tabs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/tabs.tsx"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/tabs.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,IAAI,IAAI,OAAO,EAAkB,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAuC,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAWhG,MAAM,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,OAAO,CAAC,GAAG;IACvD,gFAAgF;IAChF,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;CAC7B,CAAA;AACD,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;AAC/D,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG;IAChF,mDAAmD;IACnD,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,yCAAyC;IACzC,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,yDAAyD;IACzD,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;IAClB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,CAAA;AACD,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,OAAO,CAAC,OAAO,CAAC,CAAA;AAErE,QAAA,MAAM,IAAI,uEAAoF,SAAS,gCAoBtG,CAAA;AAED,QAAA,MAAM,QAAQ,MAAO,aAAa,gCAgCjC,CAAA;AAwDD,QAAA,MAAM,WAAW,UAAW,gBAAgB,gCAuC3C,CAAA;AAED,QAAA,MAAM,WAAW,uBAAwB,gBAAgB,gCAIxD,CAAA;AAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAA"}
|
|
@@ -1,27 +1,73 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
/**
|
|
4
|
-
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* Tabs — `TabsTrigger` is gui's `Tabs.Tab`; rows meet the 44px touch floor.
|
|
5
|
+
*
|
|
6
|
+
* Two looks. The default is the segmented pill: a 36px track on the hover rung
|
|
7
|
+
* with the chosen tab lifted onto the ground. `variant="line"` is the record
|
|
8
|
+
* page's strip (twenty-ui's Tabs, MIT, NOTICE): a transparent list over a 1px
|
|
9
|
+
* baseline, 40px tabs whose label sits in an inner box (8×8 at `md`, 4×8 at
|
|
10
|
+
* `sm`, 8px corner) that takes the hover rung under the pointer, and a 1px line
|
|
11
|
+
* in the ink under the chosen tab. A tab takes a `startIcon`, an `endIcon` and a
|
|
12
|
+
* `badge`, and `highlighted` rings it (a drop target during a drag). Vertical
|
|
13
|
+
* orientation moves the baseline to the end edge.
|
|
14
|
+
*
|
|
15
|
+
* The variant and the chosen value ride a context from the root, because gui
|
|
16
|
+
* paints a tab's `activeStyle` but tells nothing else inside it which tab is
|
|
17
|
+
* chosen — and the line has to know where to draw.
|
|
18
|
+
*/
|
|
19
|
+
import { Tabs as GuiTabs, XStack, YStack } from '@hanzo/gui';
|
|
20
|
+
import { createContext, useContext, useState } from 'react';
|
|
5
21
|
import { ink } from './ink.js';
|
|
6
22
|
import { slot } from './slot.js';
|
|
7
23
|
import { touch } from './gesture.js';
|
|
8
24
|
const ROW_H = 36;
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
+
const LINE_H = 40;
|
|
26
|
+
const LineContext = /* @__PURE__ */ createContext({ variant: 'default', value: undefined, vertical: false });
|
|
27
|
+
const Tabs = ({ variant = 'default', value, defaultValue, onValueChange, orientation, ...p }) => {
|
|
28
|
+
const [own, setOwn] = useState(defaultValue);
|
|
29
|
+
const current = value ?? own;
|
|
30
|
+
return (_jsx(LineContext.Provider, { value: { variant, value: current, vertical: orientation === 'vertical' }, children: _jsx(GuiTabs, { ...slot('tabs'), flexDirection: orientation === 'vertical' ? 'row' : 'column', gap: "$2", ...(value !== undefined ? { value } : { defaultValue }), onValueChange: (v) => {
|
|
31
|
+
setOwn(v);
|
|
32
|
+
onValueChange?.(v);
|
|
33
|
+
}, ...(orientation ? { orientation } : null), ...(variant === 'line' ? { 'data-variant': 'line' } : null), ...p }) }));
|
|
34
|
+
};
|
|
35
|
+
const TabsList = (p) => {
|
|
36
|
+
const { variant, vertical } = useContext(LineContext);
|
|
37
|
+
if (variant === 'line')
|
|
38
|
+
return (_jsx(GuiTabs.List, { ...slot('tabs-list'), ...(vertical
|
|
39
|
+
? { flexDirection: 'column', borderRightWidth: 1, items: 'stretch' }
|
|
40
|
+
: { flexDirection: 'row', borderBottomWidth: 1, items: 'flex-end' }), borderColor: "$borderColor", bg: "transparent", gap: "$1", p: 0, rounded: 0, justify: "flex-start", ...p }));
|
|
41
|
+
return (_jsx(GuiTabs.List, { ...slot('tabs-list'), items: "center", justify: "center", self: "flex-start", height: ROW_H, p: 3, gap: 2, bg: "$hover", rounded: "$4", ...p }));
|
|
42
|
+
};
|
|
43
|
+
/** The record strip's tab: an inner box that hovers, and the line under the chosen one. */
|
|
44
|
+
const LineTab = ({ children, startIcon, endIcon, badge, size = 'md', highlighted = false, disabled, value, ...p }) => {
|
|
45
|
+
const { value: current, vertical } = useContext(LineContext);
|
|
46
|
+
const [hovered, setHovered] = useState(false);
|
|
47
|
+
const chosen = current === value;
|
|
48
|
+
const tone = disabled ? '$hush' : chosen ? '$ink' : '$aside';
|
|
49
|
+
return (_jsxs(GuiTabs.Tab, { ...slot('tabs-trigger'), "data-variant": "line", ...(chosen ? { 'data-chosen': '' } : null), unstyled: true, value: value, disabled: disabled, position: "relative", items: "center", justify: "center", minH: LINE_H, p: 0, bg: "transparent", borderWidth: 0, cursor: disabled ? 'default' : 'pointer', ...touch(LINE_H, 44, 'y'), onHoverIn: () => setHovered(true), onHoverOut: () => setHovered(false), ...p, children: [_jsxs(XStack, { ...slot('tabs-trigger-box'), items: "center", gap: "$1", px: "$2", py: size === 'sm' ? '$1' : '$2', rounded: highlighted ? '$xs' : '$3', bg: hovered && !disabled ? '$hover' : 'transparent', ...(highlighted ? { outlineWidth: 1, outlineStyle: 'solid', outlineColor: 'var(--primary)', outlineOffset: -1 } : null), children: [startIcon, ink(children, undefined, { size: '$2', fontWeight: '500', color: tone, numberOfLines: 1 }), badge, endIcon] }), chosen ? (_jsx(YStack, { ...slot('tabs-indicator'), position: "absolute", bg: "$ink", ...(vertical ? { r: -1, t: 0, b: 0, width: 1 } : { b: -1, l: 0, r: 0, height: 1 }) })) : null] }));
|
|
50
|
+
};
|
|
51
|
+
const TabsTrigger = (props) => {
|
|
52
|
+
const { variant } = useContext(LineContext);
|
|
53
|
+
if (variant === 'line')
|
|
54
|
+
return _jsx(LineTab, { ...props });
|
|
55
|
+
const { children, startIcon, endIcon, badge, size: _size, highlighted: _highlighted, ...p } = props;
|
|
56
|
+
return (_jsxs(GuiTabs.Tab, { ...slot('tabs-trigger'), unstyled: true, items: "center", justify: "center", height: "100%", px: "$3", gap: "$1.5", rounded: "$3", cursor: "pointer", ...touch(ROW_H, 44, 'y'), hoverStyle: { bg: '$edge' }, focusStyle: { bg: '$edge' },
|
|
57
|
+
// The selected tab. gui's `Tabs.Tab` spreads `activeStyle` only for the tab
|
|
58
|
+
// whose `value` is current, and the `unstyled` frame drops its OWN active
|
|
59
|
+
// default (`...!unstyled && !activeStyle && {…}` in the compiled frame) — so
|
|
60
|
+
// without this the active tab is painted identically to the rest and the row
|
|
61
|
+
// reads as though nothing is chosen. A raised `$background` pill on the
|
|
62
|
+
// `$hover` track: shadcn's `data-[state=active]:bg-background shadow-sm`.
|
|
63
|
+
activeStyle: {
|
|
64
|
+
bg: '$background',
|
|
65
|
+
shadowColor: '$shadowColor',
|
|
66
|
+
shadowOpacity: 0.12,
|
|
67
|
+
shadowRadius: 3,
|
|
68
|
+
shadowOffset: { width: 0, height: 1 },
|
|
69
|
+
}, ...p, children: [startIcon, ink(children, undefined, { size: '$2', fontWeight: '500' }), badge, endIcon] }));
|
|
70
|
+
};
|
|
25
71
|
const TabsContent = ({ children, ...p }) => (_jsx(GuiTabs.Content, { ...slot('tabs-content'), flex: 1, ...p, children: ink(children) }));
|
|
26
72
|
export { Tabs, TabsList, TabsTrigger, TabsContent };
|
|
27
73
|
//# sourceMappingURL=tabs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../../src/backends/gui/tabs.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ
|
|
1
|
+
{"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../../src/backends/gui/tabs.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
'use client';"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Tag = Tag;
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
/**
|
|
7
|
+
* Tag — a coloured label: a select option's value, a kanban column, a status
|
|
8
|
+
* word, a group header.
|
|
9
|
+
*
|
|
10
|
+
* The colour is DATA — the hue a person picked for the option — so it comes
|
|
11
|
+
* from the data palette (@hanzo/tokens), never from the chrome ladder: soft is
|
|
12
|
+
* the hue's step 3 under step 11 ink, solid swaps them onto the ground, outline
|
|
13
|
+
* and ghost keep the ink alone. `transparent` is a label with no colour of its
|
|
14
|
+
* own, and a colour this palette does not know reads as gray rather than as
|
|
15
|
+
* nothing.
|
|
16
|
+
*
|
|
17
|
+
* Re-expressed from twenty-ui's Tag (MIT, see NOTICE): 20px tall, 8px gutter,
|
|
18
|
+
* 4px gap and radius, 13px text, a 14px start icon, a dashed outline for "no
|
|
19
|
+
* value", string labels truncated with an overflow hint.
|
|
20
|
+
*/
|
|
21
|
+
const gui_1 = require("@hanzo/gui");
|
|
22
|
+
const react_1 = require("react");
|
|
23
|
+
const hue_1 = require("./hue.cjs");
|
|
24
|
+
const truncated_text_1 = require("./truncated-text.cjs");
|
|
25
|
+
const press_1 = require("./press.cjs");
|
|
26
|
+
const slot_1 = require("./slot.cjs");
|
|
27
|
+
const HEIGHT = 20;
|
|
28
|
+
const ICON = 14;
|
|
29
|
+
/** The icon, at the tag's size and ink, where it names neither. */
|
|
30
|
+
const mark = (icon, color) => {
|
|
31
|
+
if (!(0, react_1.isValidElement)(icon))
|
|
32
|
+
return icon;
|
|
33
|
+
const own = icon.props;
|
|
34
|
+
return (0, react_1.cloneElement)(icon, {
|
|
35
|
+
...(own.size == null ? { size: ICON } : null),
|
|
36
|
+
...(own.color == null ? { color } : null),
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
function Tag({ color = 'gray', variant = 'soft', weight = 'regular', startIcon, endElement, truncate = true, borderStyle = 'solid', onPress, href, disabled = false, children, style, ...props }) {
|
|
40
|
+
const bare = color === 'transparent';
|
|
41
|
+
const hue = (0, hue_1.hueOr)(bare ? 'gray' : color);
|
|
42
|
+
const { style: hueStyle, tone } = (0, hue_1.useTone)(hue, [3, 11]);
|
|
43
|
+
const ink = bare ? '$aside' : variant === 'solid' ? '$background' : tone(11);
|
|
44
|
+
const fill = bare || variant === 'outline' || variant === 'ghost' ? 'transparent' : variant === 'solid' ? tone(11) : tone(3);
|
|
45
|
+
const text = { size: '$2', fontWeight: weight === 'medium' ? '500' : undefined, color: ink };
|
|
46
|
+
const interactive = !disabled && (onPress != null || href != null);
|
|
47
|
+
return ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { ...(0, slot_1.slot)('tag'), "data-color": bare ? 'transparent' : hue, "data-variant": variant, ...(href != null ? { render: 'a', href } : onPress != null ? { ...(0, press_1.press)(disabled ? undefined : onPress) } : { render: 'span' }), ...(disabled ? { 'aria-disabled': true } : null), display: "inline-flex", self: "flex-start", items: "center", gap: "$1", height: HEIGHT, px: "$2", maxW: "100%", minW: 0, rounded: "$xs", bg: fill, ...(variant === 'outline' ? { borderWidth: 1, borderColor: '$rim', borderStyle } : null), overflow: "hidden", opacity: disabled ? 0.5 : 1, cursor: disabled ? 'not-allowed' : interactive ? 'pointer' : undefined, ...(interactive ? { focusVisibleStyle: press_1.RING } : null), style: { ...hueStyle, ...style }, ...props, children: [startIcon ? mark(startIcon, ink) : null, typeof children === 'string' || typeof children === 'number' ? (truncate ? ((0, jsx_runtime_1.jsx)(truncated_text_1.TruncatedText, { text: String(children), ...text })) : ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { ...text, children: children }))) : (children), endElement ? ((0, jsx_runtime_1.jsx)(gui_1.XStack, { ...(0, slot_1.slot)('tag-end'), shrink: 0, items: "center", children: endElement })) : null] }));
|
|
48
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tag — a coloured label: a select option's value, a kanban column, a status
|
|
3
|
+
* word, a group header.
|
|
4
|
+
*
|
|
5
|
+
* The colour is DATA — the hue a person picked for the option — so it comes
|
|
6
|
+
* from the data palette (@hanzo/tokens), never from the chrome ladder: soft is
|
|
7
|
+
* the hue's step 3 under step 11 ink, solid swaps them onto the ground, outline
|
|
8
|
+
* and ghost keep the ink alone. `transparent` is a label with no colour of its
|
|
9
|
+
* own, and a colour this palette does not know reads as gray rather than as
|
|
10
|
+
* nothing.
|
|
11
|
+
*
|
|
12
|
+
* Re-expressed from twenty-ui's Tag (MIT, see NOTICE): 20px tall, 8px gutter,
|
|
13
|
+
* 4px gap and radius, 13px text, a 14px start icon, a dashed outline for "no
|
|
14
|
+
* value", string labels truncated with an overflow hint.
|
|
15
|
+
*/
|
|
16
|
+
import { XStack } from '@hanzo/gui';
|
|
17
|
+
import { type ComponentProps, type ReactNode } from 'react';
|
|
18
|
+
import { type DataHue } from './hue.js';
|
|
19
|
+
export type TagColor = DataHue | 'transparent';
|
|
20
|
+
/**
|
|
21
|
+
* One entry of a `Tags` row. The type shares the component's name, as the entry
|
|
22
|
+
* shape did before the component existed: `import type { Tag }` keeps meaning
|
|
23
|
+
* the entry, and `Tag` in JSX is the component.
|
|
24
|
+
*/
|
|
25
|
+
export type Tag = {
|
|
26
|
+
id: string;
|
|
27
|
+
label: string;
|
|
28
|
+
/** A data hue: the entry is drawn as a coloured `Tag` rather than a badge. */
|
|
29
|
+
color?: TagColor;
|
|
30
|
+
};
|
|
31
|
+
export type TagVariant = 'soft' | 'solid' | 'outline' | 'ghost';
|
|
32
|
+
export type TagProps = Omit<ComponentProps<typeof XStack>, 'children' | 'color'> & {
|
|
33
|
+
/** One of the thirty data hues, or `transparent`. Anything else reads as gray. */
|
|
34
|
+
color?: TagColor | (string & {});
|
|
35
|
+
variant?: TagVariant;
|
|
36
|
+
weight?: 'regular' | 'medium';
|
|
37
|
+
/** An icon before the label, drawn at 14px in the tag's ink unless it names its own. */
|
|
38
|
+
startIcon?: ReactNode;
|
|
39
|
+
/** After the label: a remove button, a count. */
|
|
40
|
+
endElement?: ReactNode;
|
|
41
|
+
/** One line with an ellipsis and an overflow hint (string children). Default true. */
|
|
42
|
+
truncate?: boolean;
|
|
43
|
+
/** The outline variant's edge: `dashed` marks an empty value ("No value"). */
|
|
44
|
+
borderStyle?: 'solid' | 'dashed';
|
|
45
|
+
/** Makes the tag a button. */
|
|
46
|
+
onPress?: () => void;
|
|
47
|
+
/** Makes the tag a link. */
|
|
48
|
+
href?: string;
|
|
49
|
+
disabled?: boolean;
|
|
50
|
+
children?: ReactNode;
|
|
51
|
+
};
|
|
52
|
+
export declare function Tag({ color, variant, weight, startIcon, endElement, truncate, borderStyle, onPress, href, disabled, children, style, ...props }: TagProps): import("react").JSX.Element;
|
|
53
|
+
//# sourceMappingURL=tag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/tag.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAe,MAAM,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAgC,KAAK,cAAc,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAC5G,OAAO,EAAkB,KAAK,OAAO,EAAE,MAAM,OAAO,CAAA;AAKpD,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,aAAa,CAAA;AAE9C;;;;GAIG;AACH,MAAM,MAAM,GAAG,GAAG;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,8EAA8E;IAC9E,KAAK,CAAC,EAAE,QAAQ,CAAA;CACjB,CAAA;AACD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAA;AAK/D,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG;IACjF,kFAAkF;IAClF,KAAK,CAAC,EAAE,QAAQ,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;IAChC,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAA;IAC7B,wFAAwF;IACxF,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,iDAAiD;IACjD,UAAU,CAAC,EAAE,SAAS,CAAA;IACtB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IAChC,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAYD,wBAAgB,GAAG,CAAC,EAClB,KAAc,EACd,OAAgB,EAChB,MAAkB,EAClB,SAAS,EACT,UAAU,EACV,QAAe,EACf,WAAqB,EACrB,OAAO,EACP,IAAI,EACJ,QAAgB,EAChB,QAAQ,EACR,KAAK,EACL,GAAG,KAAK,EACT,EAAE,QAAQ,+BAmDV"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* Tag — a coloured label: a select option's value, a kanban column, a status
|
|
5
|
+
* word, a group header.
|
|
6
|
+
*
|
|
7
|
+
* The colour is DATA — the hue a person picked for the option — so it comes
|
|
8
|
+
* from the data palette (@hanzo/tokens), never from the chrome ladder: soft is
|
|
9
|
+
* the hue's step 3 under step 11 ink, solid swaps them onto the ground, outline
|
|
10
|
+
* and ghost keep the ink alone. `transparent` is a label with no colour of its
|
|
11
|
+
* own, and a colour this palette does not know reads as gray rather than as
|
|
12
|
+
* nothing.
|
|
13
|
+
*
|
|
14
|
+
* Re-expressed from twenty-ui's Tag (MIT, see NOTICE): 20px tall, 8px gutter,
|
|
15
|
+
* 4px gap and radius, 13px text, a 14px start icon, a dashed outline for "no
|
|
16
|
+
* value", string labels truncated with an overflow hint.
|
|
17
|
+
*/
|
|
18
|
+
import { SizableText, XStack } from '@hanzo/gui';
|
|
19
|
+
import { cloneElement, isValidElement } from 'react';
|
|
20
|
+
import { hueOr, useTone } from './hue.js';
|
|
21
|
+
import { TruncatedText } from './truncated-text.js';
|
|
22
|
+
import { press, RING } from './press.js';
|
|
23
|
+
import { slot } from './slot.js';
|
|
24
|
+
const HEIGHT = 20;
|
|
25
|
+
const ICON = 14;
|
|
26
|
+
/** The icon, at the tag's size and ink, where it names neither. */
|
|
27
|
+
const mark = (icon, color) => {
|
|
28
|
+
if (!isValidElement(icon))
|
|
29
|
+
return icon;
|
|
30
|
+
const own = icon.props;
|
|
31
|
+
return cloneElement(icon, {
|
|
32
|
+
...(own.size == null ? { size: ICON } : null),
|
|
33
|
+
...(own.color == null ? { color } : null),
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
export function Tag({ color = 'gray', variant = 'soft', weight = 'regular', startIcon, endElement, truncate = true, borderStyle = 'solid', onPress, href, disabled = false, children, style, ...props }) {
|
|
37
|
+
const bare = color === 'transparent';
|
|
38
|
+
const hue = hueOr(bare ? 'gray' : color);
|
|
39
|
+
const { style: hueStyle, tone } = useTone(hue, [3, 11]);
|
|
40
|
+
const ink = bare ? '$aside' : variant === 'solid' ? '$background' : tone(11);
|
|
41
|
+
const fill = bare || variant === 'outline' || variant === 'ghost' ? 'transparent' : variant === 'solid' ? tone(11) : tone(3);
|
|
42
|
+
const text = { size: '$2', fontWeight: weight === 'medium' ? '500' : undefined, color: ink };
|
|
43
|
+
const interactive = !disabled && (onPress != null || href != null);
|
|
44
|
+
return (_jsxs(XStack, { ...slot('tag'), "data-color": bare ? 'transparent' : hue, "data-variant": variant, ...(href != null ? { render: 'a', href } : onPress != null ? { ...press(disabled ? undefined : onPress) } : { render: 'span' }), ...(disabled ? { 'aria-disabled': true } : null), display: "inline-flex", self: "flex-start", items: "center", gap: "$1", height: HEIGHT, px: "$2", maxW: "100%", minW: 0, rounded: "$xs", bg: fill, ...(variant === 'outline' ? { borderWidth: 1, borderColor: '$rim', borderStyle } : null), overflow: "hidden", opacity: disabled ? 0.5 : 1, cursor: disabled ? 'not-allowed' : interactive ? 'pointer' : undefined, ...(interactive ? { focusVisibleStyle: RING } : null), style: { ...hueStyle, ...style }, ...props, children: [startIcon ? mark(startIcon, ink) : null, typeof children === 'string' || typeof children === 'number' ? (truncate ? (_jsx(TruncatedText, { text: String(children), ...text })) : (_jsx(SizableText, { ...text, children: children }))) : (children), endElement ? (_jsx(XStack, { ...slot('tag-end'), shrink: 0, items: "center", children: endElement })) : null] }));
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=tag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag.js","sourceRoot":"","sources":["../../../src/backends/gui/tag.tsx"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.Tags = Tags;
|
|
5
5
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
6
|
/**
|
|
7
|
-
* Tags — a wrapping row of removable labels, built on `Badge
|
|
7
|
+
* Tags — a wrapping row of removable labels, built on `Badge`, or on `Tag` for
|
|
8
|
+
* an entry that carries a data hue (twenty-ui's select-option tags, MIT, see
|
|
9
|
+
* NOTICE) — so a list of coloured options and a list of plain labels are one
|
|
10
|
+
* component, and an entry without a colour renders exactly as before.
|
|
8
11
|
*
|
|
9
12
|
* Each entry is a plain `{ id, label }`; passing `onRemove` grows the badge a
|
|
10
13
|
* close button that reports which entry was pressed. The list carries no
|
|
@@ -14,9 +17,13 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
14
17
|
const gui_1 = require("@hanzo/gui");
|
|
15
18
|
const lucide_icons_2_1 = require("@hanzogui/lucide-icons-2");
|
|
16
19
|
const badge_1 = require("./badge.cjs");
|
|
20
|
+
const tag_1 = require("./tag.cjs");
|
|
17
21
|
const slot_1 = require("./slot.cjs");
|
|
18
22
|
const gesture_1 = require("./gesture.cjs");
|
|
19
23
|
const REMOVE = 16;
|
|
20
24
|
function Tags({ tags, onRemove, variant = 'default', ...props }) {
|
|
21
|
-
return ((0, jsx_runtime_1.jsx)(gui_1.XStack, { ...(0, slot_1.slot)('tags'), flexWrap: "wrap", gap: "$2", ...props, children: tags.map((tag) =>
|
|
25
|
+
return ((0, jsx_runtime_1.jsx)(gui_1.XStack, { ...(0, slot_1.slot)('tags'), flexWrap: "wrap", gap: "$2", ...props, children: tags.map((tag) => {
|
|
26
|
+
const remove = onRemove ? ((0, jsx_runtime_1.jsx)(gui_1.XStack, { ...(0, slot_1.slot)('tags-remove'), render: "button", ...{ type: 'button' }, rounded: "$10", items: "center", justify: "center", cursor: "pointer", opacity: 0.7, hoverStyle: { opacity: 1, bg: '$hover' }, ...(0, gesture_1.touch)(REMOVE), "aria-label": `Remove ${tag.label}`, onPress: () => onRemove(tag.id), children: (0, jsx_runtime_1.jsx)(lucide_icons_2_1.X, { size: 12 }) })) : null;
|
|
27
|
+
return tag.color ? ((0, jsx_runtime_1.jsx)(tag_1.Tag, { color: tag.color, endElement: remove, children: tag.label }, tag.id)) : ((0, jsx_runtime_1.jsxs)(badge_1.Badge, { variant: variant, children: [tag.label, remove] }, tag.id));
|
|
28
|
+
}) }));
|
|
22
29
|
}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Tags — a wrapping row of removable labels, built on `Badge
|
|
2
|
+
* Tags — a wrapping row of removable labels, built on `Badge`, or on `Tag` for
|
|
3
|
+
* an entry that carries a data hue (twenty-ui's select-option tags, MIT, see
|
|
4
|
+
* NOTICE) — so a list of coloured options and a list of plain labels are one
|
|
5
|
+
* component, and an entry without a colour renders exactly as before.
|
|
3
6
|
*
|
|
4
7
|
* Each entry is a plain `{ id, label }`; passing `onRemove` grows the badge a
|
|
5
8
|
* close button that reports which entry was pressed. The list carries no
|
|
@@ -9,10 +12,8 @@
|
|
|
9
12
|
import { XStack } from '@hanzo/gui';
|
|
10
13
|
import type { ComponentProps } from 'react';
|
|
11
14
|
import { type BadgeVariant } from './badge.js';
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
label: string;
|
|
15
|
-
};
|
|
15
|
+
import { type Tag } from './tag.js';
|
|
16
|
+
export type { Tag };
|
|
16
17
|
export type TagsProps = Omit<ComponentProps<typeof XStack>, 'children'> & {
|
|
17
18
|
tags: Tag[];
|
|
18
19
|
onRemove?: (id: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/tags.tsx"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/tags.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAmB,KAAK,GAAG,EAAE,MAAM,OAAO,CAAA;AAIjD,YAAY,EAAE,GAAG,EAAE,CAAA;AAEnB,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG;IACxE,IAAI,EAAE,GAAG,EAAE,CAAA;IACX,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/B,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;CAC9B,CAAA;AAID,wBAAgB,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAmB,EAAE,GAAG,KAAK,EAAE,EAAE,SAAS,+BAmChF"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
/**
|
|
4
|
-
* Tags — a wrapping row of removable labels, built on `Badge
|
|
4
|
+
* Tags — a wrapping row of removable labels, built on `Badge`, or on `Tag` for
|
|
5
|
+
* an entry that carries a data hue (twenty-ui's select-option tags, MIT, see
|
|
6
|
+
* NOTICE) — so a list of coloured options and a list of plain labels are one
|
|
7
|
+
* component, and an entry without a colour renders exactly as before.
|
|
5
8
|
*
|
|
6
9
|
* Each entry is a plain `{ id, label }`; passing `onRemove` grows the badge a
|
|
7
10
|
* close button that reports which entry was pressed. The list carries no
|
|
@@ -11,10 +14,14 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
11
14
|
import { XStack } from '@hanzo/gui';
|
|
12
15
|
import { X } from '@hanzogui/lucide-icons-2';
|
|
13
16
|
import { Badge } from './badge.js';
|
|
17
|
+
import { Tag as Coloured } from './tag.js';
|
|
14
18
|
import { slot } from './slot.js';
|
|
15
19
|
import { touch } from './gesture.js';
|
|
16
20
|
const REMOVE = 16;
|
|
17
21
|
export function Tags({ tags, onRemove, variant = 'default', ...props }) {
|
|
18
|
-
return (_jsx(XStack, { ...slot('tags'), flexWrap: "wrap", gap: "$2", ...props, children: tags.map((tag) =>
|
|
22
|
+
return (_jsx(XStack, { ...slot('tags'), flexWrap: "wrap", gap: "$2", ...props, children: tags.map((tag) => {
|
|
23
|
+
const remove = onRemove ? (_jsx(XStack, { ...slot('tags-remove'), render: "button", ...{ type: 'button' }, rounded: "$10", items: "center", justify: "center", cursor: "pointer", opacity: 0.7, hoverStyle: { opacity: 1, bg: '$hover' }, ...touch(REMOVE), "aria-label": `Remove ${tag.label}`, onPress: () => onRemove(tag.id), children: _jsx(X, { size: 12 }) })) : null;
|
|
24
|
+
return tag.color ? (_jsx(Coloured, { color: tag.color, endElement: remove, children: tag.label }, tag.id)) : (_jsxs(Badge, { variant: variant, children: [tag.label, remove] }, tag.id));
|
|
25
|
+
}) }));
|
|
19
26
|
}
|
|
20
27
|
//# sourceMappingURL=tags.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../../../src/backends/gui/tags.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ
|
|
1
|
+
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../../../src/backends/gui/tags.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;;GAUG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,CAAC,EAAE,MAAM,0BAA0B,CAAA;AAE5C,OAAO,EAAE,KAAK,EAAqB,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,GAAG,IAAI,QAAQ,EAAY,MAAM,OAAO,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AAUjC,MAAM,MAAM,GAAG,EAAE,CAAA;AAEjB,MAAM,UAAU,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,EAAE,GAAG,KAAK,EAAa;IAC/E,OAAO,CACL,KAAC,MAAM,OAAK,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAC,MAAM,EAAC,GAAG,EAAC,IAAI,KAAK,KAAK,YACzD,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAChB,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CACtB,KAAC,MAAM,OACD,IAAI,CAAC,aAAa,CAAC,EACvB,MAAM,EAAC,QAAQ,KACV,EAAE,IAAI,EAAE,QAAQ,EAAa,EAClC,OAAO,EAAC,KAAK,EACb,KAAK,EAAC,QAAQ,EACd,OAAO,EAAC,QAAQ,EAChB,MAAM,EAAC,SAAS,EAChB,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KACpC,KAAK,CAAC,MAAM,CAAC,gBACL,UAAU,GAAG,CAAC,KAAK,EAAE,EACjC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,YAE/B,KAAC,CAAC,IAAC,IAAI,EAAE,EAAE,GAAI,GACR,CACV,CAAC,CAAC,CAAC,IAAI,CAAA;YACV,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CACjB,KAAC,QAAQ,IAAc,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,YACxD,GAAG,CAAC,KAAK,IADG,GAAG,CAAC,EAAE,CAEV,CACZ,CAAC,CAAC,CAAC,CACF,MAAC,KAAK,IAAc,OAAO,EAAE,OAAO,aACjC,GAAG,CAAC,KAAK,EACT,MAAM,KAFG,GAAG,CAAC,EAAE,CAGV,CACT,CAAA;QACH,CAAC,CAAC,GACK,CACV,CAAA;AACH,CAAC"}
|