@hanzo/ui 8.27.91 → 8.29.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-picker.cjs +194 -0
- package/dist/backends/gui/icon-picker.d.ts +51 -0
- package/dist/backends/gui/icon-picker.d.ts.map +1 -0
- package/dist/backends/gui/icon-picker.js +155 -0
- package/dist/backends/gui/icon-picker.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/icons.cjs +381 -0
- package/dist/backends/gui/icons.d.ts +53 -0
- package/dist/backends/gui/icons.d.ts.map +1 -0
- package/dist/backends/gui/icons.js +377 -0
- package/dist/backends/gui/icons.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 +105 -7
- package/dist/backends/gui/index.d.ts +47 -2
- package/dist/backends/gui/index.d.ts.map +1 -1
- package/dist/backends/gui/index.js +37 -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/icons.cjs +19 -0
- package/dist/gallery/icons.d.ts +2 -0
- package/dist/gallery/icons.d.ts.map +1 -0
- package/dist/gallery/icons.js +17 -0
- package/dist/gallery/icons.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 +34 -0
- package/dist/gallery/records.d.ts +2 -0
- package/dist/gallery/records.d.ts.map +1 -0
- package/dist/gallery/records.js +32 -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 +1594 -256
- package/dist/gallery.js +3 -9
- package/dist/gallery.js.map +1 -1
- package/dist/gui-config.cjs +33 -4
- package/dist/gui-config.d.ts +11 -3
- package/dist/gui-config.d.ts.map +1 -1
- package/dist/gui-config.js +33 -4
- package/dist/gui-config.js.map +1 -1
- package/dist/index.cjs +73 -2
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/dist/index.node.cjs +73 -2
- package/dist/index.node.js +10 -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/CONCEPTS.cjs +8 -0
- package/dist/primitives/CONCEPTS.d.ts +2 -0
- package/dist/primitives/CONCEPTS.d.ts.map +1 -0
- package/dist/primitives/CONCEPTS.js +5 -0
- package/dist/primitives/CONCEPTS.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/FIELD_ICONS.cjs +8 -0
- package/dist/primitives/FIELD_ICONS.d.ts +2 -0
- package/dist/primitives/FIELD_ICONS.d.ts.map +1 -0
- package/dist/primitives/FIELD_ICONS.js +5 -0
- package/dist/primitives/FIELD_ICONS.js.map +1 -0
- package/dist/primitives/Glyph.cjs +8 -0
- package/dist/primitives/Glyph.d.ts +2 -0
- package/dist/primitives/Glyph.d.ts.map +1 -0
- package/dist/primitives/Glyph.js +5 -0
- package/dist/primitives/Glyph.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/IconPicker.cjs +8 -0
- package/dist/primitives/IconPicker.d.ts +2 -0
- package/dist/primitives/IconPicker.d.ts.map +1 -0
- package/dist/primitives/IconPicker.js +5 -0
- package/dist/primitives/IconPicker.js.map +1 -0
- 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/TABLER.cjs +8 -0
- package/dist/primitives/TABLER.d.ts +2 -0
- package/dist/primitives/TABLER.d.ts.map +1 -0
- package/dist/primitives/TABLER.js +5 -0
- package/dist/primitives/TABLER.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/iconWords.cjs +8 -0
- package/dist/primitives/iconWords.d.ts +2 -0
- package/dist/primitives/iconWords.d.ts.map +1 -0
- package/dist/primitives/iconWords.js +5 -0
- package/dist/primitives/iconWords.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/loadIcons.cjs +8 -0
- package/dist/primitives/loadIcons.d.ts +2 -0
- package/dist/primitives/loadIcons.d.ts.map +1 -0
- package/dist/primitives/loadIcons.js +5 -0
- package/dist/primitives/loadIcons.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/resolveIcon.cjs +8 -0
- package/dist/primitives/resolveIcon.d.ts +2 -0
- package/dist/primitives/resolveIcon.d.ts.map +1 -0
- package/dist/primitives/resolveIcon.js +5 -0
- package/dist/primitives/resolveIcon.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/primitives/useIcons.cjs +8 -0
- package/dist/primitives/useIcons.d.ts +2 -0
- package/dist/primitives/useIcons.d.ts.map +1 -0
- package/dist/primitives/useIcons.js +5 -0
- package/dist/primitives/useIcons.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 +1460 -127
- package/dist/theme.css +944 -0
- package/package.json +2 -1
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one status map for feedback: what a status means, and the colour it is
|
|
3
|
+
* drawn in. Banner, Alert (the callout) and the toast read it; Status's semantic
|
|
4
|
+
* aliases (success, warning, error, info) are meant to read it too.
|
|
5
|
+
*
|
|
6
|
+
* After twenty-ui's FeedbackStatusColors (MIT, NOTICE): neutral is gray, info is
|
|
7
|
+
* blue, success green, warning orange, error red. The chrome stays Hanzo's, so
|
|
8
|
+
* the colour a strip, an icon or a solid fill takes is a STATE token wherever
|
|
9
|
+
* one exists — `--state-error`, `--state-warning`, `--state-success` — and info,
|
|
10
|
+
* which this system has no hue for, is the accent (`--primary`, monochrome until
|
|
11
|
+
* an org picks one). The data palette appears only where a callout needs the
|
|
12
|
+
* faint ground and edge of its colour (steps 1 and 6), which the states do not
|
|
13
|
+
* carry.
|
|
14
|
+
*
|
|
15
|
+
* Pure data, no gui import, so a server module can read it.
|
|
16
|
+
*/
|
|
17
|
+
/** What a feedback surface reports. */
|
|
18
|
+
export type FeedbackStatus = 'neutral' | 'info' | 'success' | 'warning' | 'error';
|
|
19
|
+
/** The five colours a feedback surface can be drawn in. */
|
|
20
|
+
export type FeedbackColor = 'gray' | 'blue' | 'green' | 'orange' | 'red';
|
|
21
|
+
/** Each status's colour. */
|
|
22
|
+
export declare const STATUS_COLOR: Readonly<Record<FeedbackStatus, FeedbackColor>>;
|
|
23
|
+
/**
|
|
24
|
+
* The tokens a colour paints with, by role:
|
|
25
|
+
*
|
|
26
|
+
* ink the colour itself as text or an icon (a soft strip's message, a toast's icon)
|
|
27
|
+
* fill a solid strip's ground
|
|
28
|
+
* on the text on that solid ground (chosen for contrast, not by theme)
|
|
29
|
+
* tint a soft strip's ground, the countdown fill of a toast
|
|
30
|
+
* ground a callout's ground (data step 1)
|
|
31
|
+
* edge a callout's border (data step 6)
|
|
32
|
+
*/
|
|
33
|
+
export type FeedbackPaint = {
|
|
34
|
+
ink: string;
|
|
35
|
+
fill: string;
|
|
36
|
+
on: string;
|
|
37
|
+
tint: string;
|
|
38
|
+
ground: string;
|
|
39
|
+
edge: string;
|
|
40
|
+
};
|
|
41
|
+
export declare const STATUS_PAINT: Readonly<Record<FeedbackColor, FeedbackPaint>>;
|
|
42
|
+
/** The colour a surface draws in: its own `color` if it names one, else its status's. */
|
|
43
|
+
export declare const colorOf: (status: FeedbackStatus | null | undefined, color?: FeedbackColor | null) => FeedbackColor;
|
|
44
|
+
/** A colour's paint. */
|
|
45
|
+
export declare const paint: (status: FeedbackStatus | null | undefined, color?: FeedbackColor | null) => FeedbackPaint;
|
|
46
|
+
//# sourceMappingURL=feedback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/feedback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,uCAAuC;AACvC,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAA;AAEjF,2DAA2D;AAC3D,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAA;AAExE,4BAA4B;AAC5B,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC,CAMxE,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CA4CvE,CAAA;AAED,yFAAyF;AACzF,eAAO,MAAM,OAAO,WAAY,cAAc,GAAG,IAAI,GAAG,SAAS,UAAU,aAAa,GAAG,IAAI,KAAG,aACtD,CAAA;AAE5C,wBAAwB;AACxB,eAAO,MAAM,KAAK,WAAY,cAAc,GAAG,IAAI,GAAG,SAAS,UAAU,aAAa,GAAG,IAAI,KAAG,aAC1D,CAAA"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one status map for feedback: what a status means, and the colour it is
|
|
3
|
+
* drawn in. Banner, Alert (the callout) and the toast read it; Status's semantic
|
|
4
|
+
* aliases (success, warning, error, info) are meant to read it too.
|
|
5
|
+
*
|
|
6
|
+
* After twenty-ui's FeedbackStatusColors (MIT, NOTICE): neutral is gray, info is
|
|
7
|
+
* blue, success green, warning orange, error red. The chrome stays Hanzo's, so
|
|
8
|
+
* the colour a strip, an icon or a solid fill takes is a STATE token wherever
|
|
9
|
+
* one exists — `--state-error`, `--state-warning`, `--state-success` — and info,
|
|
10
|
+
* which this system has no hue for, is the accent (`--primary`, monochrome until
|
|
11
|
+
* an org picks one). The data palette appears only where a callout needs the
|
|
12
|
+
* faint ground and edge of its colour (steps 1 and 6), which the states do not
|
|
13
|
+
* carry.
|
|
14
|
+
*
|
|
15
|
+
* Pure data, no gui import, so a server module can read it.
|
|
16
|
+
*/
|
|
17
|
+
/** Each status's colour. */
|
|
18
|
+
export const STATUS_COLOR = {
|
|
19
|
+
neutral: 'gray',
|
|
20
|
+
info: 'blue',
|
|
21
|
+
success: 'green',
|
|
22
|
+
warning: 'orange',
|
|
23
|
+
error: 'red',
|
|
24
|
+
};
|
|
25
|
+
export const STATUS_PAINT = {
|
|
26
|
+
gray: {
|
|
27
|
+
ink: '$ink',
|
|
28
|
+
fill: '$raised',
|
|
29
|
+
on: '$ink',
|
|
30
|
+
tint: '$hover',
|
|
31
|
+
ground: 'var(--data-gray-1)',
|
|
32
|
+
edge: 'var(--data-gray-6)',
|
|
33
|
+
},
|
|
34
|
+
blue: {
|
|
35
|
+
ink: 'var(--primary)',
|
|
36
|
+
fill: 'var(--primary)',
|
|
37
|
+
on: 'var(--primary-foreground)',
|
|
38
|
+
tint: 'var(--glass-strong)',
|
|
39
|
+
ground: 'var(--data-blue-1)',
|
|
40
|
+
edge: 'var(--data-blue-6)',
|
|
41
|
+
},
|
|
42
|
+
green: {
|
|
43
|
+
ink: 'var(--state-success)',
|
|
44
|
+
fill: 'var(--state-success)',
|
|
45
|
+
// A light hue in both themes: dark ink reads on it, white does not (2.3:1).
|
|
46
|
+
on: 'var(--neutral-950)',
|
|
47
|
+
tint: 'var(--state-success-bg)',
|
|
48
|
+
ground: 'var(--data-green-1)',
|
|
49
|
+
edge: 'var(--data-green-6)',
|
|
50
|
+
},
|
|
51
|
+
orange: {
|
|
52
|
+
ink: 'var(--state-warning)',
|
|
53
|
+
fill: 'var(--state-warning)',
|
|
54
|
+
on: 'var(--neutral-950)',
|
|
55
|
+
tint: 'var(--state-warning-bg)',
|
|
56
|
+
ground: 'var(--data-orange-1)',
|
|
57
|
+
edge: 'var(--data-orange-6)',
|
|
58
|
+
},
|
|
59
|
+
red: {
|
|
60
|
+
ink: 'var(--state-error)',
|
|
61
|
+
// design's destructive FILL, cut for its foreground at 4.6:1; the error hue
|
|
62
|
+
// itself (#ef4444) carries white at only 3.8:1.
|
|
63
|
+
fill: 'var(--destructive)',
|
|
64
|
+
on: 'var(--destructive-foreground)',
|
|
65
|
+
tint: 'var(--state-error-bg)',
|
|
66
|
+
ground: 'var(--data-red-1)',
|
|
67
|
+
edge: 'var(--data-red-6)',
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
/** The colour a surface draws in: its own `color` if it names one, else its status's. */
|
|
71
|
+
export const colorOf = (status, color) => color ?? STATUS_COLOR[status ?? 'neutral'];
|
|
72
|
+
/** A colour's paint. */
|
|
73
|
+
export const paint = (status, color) => STATUS_PAINT[colorOf(status, color)];
|
|
74
|
+
//# sourceMappingURL=feedback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../../src/backends/gui/feedback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAQH,4BAA4B;AAC5B,MAAM,CAAC,MAAM,YAAY,GAAoD;IAC3E,OAAO,EAAE,MAAM;IACf,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,QAAQ;IACjB,KAAK,EAAE,KAAK;CACb,CAAA;AAqBD,MAAM,CAAC,MAAM,YAAY,GAAmD;IAC1E,IAAI,EAAE;QACJ,GAAG,EAAE,MAAM;QACX,IAAI,EAAE,SAAS;QACf,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,oBAAoB;QAC5B,IAAI,EAAE,oBAAoB;KAC3B;IACD,IAAI,EAAE;QACJ,GAAG,EAAE,gBAAgB;QACrB,IAAI,EAAE,gBAAgB;QACtB,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,qBAAqB;QAC3B,MAAM,EAAE,oBAAoB;QAC5B,IAAI,EAAE,oBAAoB;KAC3B;IACD,KAAK,EAAE;QACL,GAAG,EAAE,sBAAsB;QAC3B,IAAI,EAAE,sBAAsB;QAC5B,4EAA4E;QAC5E,EAAE,EAAE,oBAAoB;QACxB,IAAI,EAAE,yBAAyB;QAC/B,MAAM,EAAE,qBAAqB;QAC7B,IAAI,EAAE,qBAAqB;KAC5B;IACD,MAAM,EAAE;QACN,GAAG,EAAE,sBAAsB;QAC3B,IAAI,EAAE,sBAAsB;QAC5B,EAAE,EAAE,oBAAoB;QACxB,IAAI,EAAE,yBAAyB;QAC/B,MAAM,EAAE,sBAAsB;QAC9B,IAAI,EAAE,sBAAsB;KAC7B;IACD,GAAG,EAAE;QACH,GAAG,EAAE,oBAAoB;QACzB,4EAA4E;QAC5E,gDAAgD;QAChD,IAAI,EAAE,oBAAoB;QAC1B,EAAE,EAAE,+BAA+B;QACnC,IAAI,EAAE,uBAAuB;QAC7B,MAAM,EAAE,mBAAmB;QAC3B,IAAI,EAAE,mBAAmB;KAC1B;CACF,CAAA;AAED,yFAAyF;AACzF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,MAAyC,EAAE,KAA4B,EAAiB,EAAE,CAChH,KAAK,IAAI,YAAY,CAAC,MAAM,IAAI,SAAS,CAAC,CAAA;AAE5C,wBAAwB;AACxB,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,MAAyC,EAAE,KAA4B,EAAiB,EAAE,CAC9G,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';"use strict";
|
|
2
2
|
'use client';
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.FieldGroup = exports.FieldContent = void 0;
|
|
4
|
+
exports.FieldGroup = exports.FieldContent = exports.invalidOf = exports.useField = void 0;
|
|
5
5
|
exports.Field = Field;
|
|
6
6
|
exports.FieldDescription = FieldDescription;
|
|
7
7
|
exports.FieldError = FieldError;
|
|
@@ -31,19 +31,60 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
31
31
|
* the compiled `@media (min-width: …)` any `$md` prop emits), so there are no
|
|
32
32
|
* container queries to reach for and none are needed: the same direction every
|
|
33
33
|
* other responsive prop in this codebase is written in.
|
|
34
|
+
*
|
|
35
|
+
* Under `<Density value="compact">` the text leaves take the record density
|
|
36
|
+
* twenty-ui's Field draws (MIT, NOTICE): a 12px semibold label in the light ink
|
|
37
|
+
* 4px above its control, a 12px light description and a 12px error, the block's
|
|
38
|
+
* gap 4. Regular density draws exactly what it always did.
|
|
39
|
+
*
|
|
40
|
+
* `invalid` on the root is the one statement of the field's validity: it marks
|
|
41
|
+
* the block (`data-invalid`), and `useField()` hands it to the control inside —
|
|
42
|
+
* Textarea and SelectTrigger read it as their error edge — and to `FieldError`,
|
|
43
|
+
* which a field that says `invalid={false}` keeps hidden.
|
|
34
44
|
*/
|
|
35
45
|
const gui_1 = require("@hanzo/gui");
|
|
36
46
|
const react_1 = require("react");
|
|
37
|
-
const box_1 = require("../../box.cjs");
|
|
38
47
|
const label_1 = require("./label.cjs");
|
|
39
48
|
const layout_1 = require("./layout.cjs");
|
|
40
49
|
const ink_1 = require("./ink.cjs");
|
|
41
50
|
const slot_1 = require("./slot.cjs");
|
|
51
|
+
const density_1 = require("./density.cjs");
|
|
52
|
+
/** What a control inside a `Field` reads: whether the field is invalid, when it says. */
|
|
53
|
+
const FieldState = /* @__PURE__ */ (0, react_1.createContext)({});
|
|
54
|
+
/** The nearest `Field`'s stated validity — `undefined` outside one, or where it states none. */
|
|
55
|
+
const useField = () => (0, react_1.useContext)(FieldState);
|
|
56
|
+
exports.useField = useField;
|
|
57
|
+
/**
|
|
58
|
+
* `aria-invalid` as the DOM reads it, or the enclosing field's: anything but
|
|
59
|
+
* absent or the string "false" on the control, else what the Field states.
|
|
60
|
+
*/
|
|
61
|
+
const invalidOf = (aria, field) => aria != null ? aria !== false && aria !== 'false' : !!field.invalid;
|
|
62
|
+
exports.invalidOf = invalidOf;
|
|
63
|
+
/**
|
|
64
|
+
* The gui values the old `flex flex-col gap-6` read as through `tw`, stated
|
|
65
|
+
* directly — the same frame `Box` drew (display flex, a 24px column gap, the
|
|
66
|
+
* div's `auto` minimums and its shrink), now through style props rather than a
|
|
67
|
+
* utility string. `field.test.tsx` holds the two renders equal.
|
|
68
|
+
*/
|
|
42
69
|
function FieldSet({ children, ...props }) {
|
|
43
|
-
return ((0, jsx_runtime_1.jsx)(
|
|
70
|
+
return ((0, jsx_runtime_1.jsx)(gui_1.YStack, { render: "fieldset", display: "flex", flexDirection: "column", gap: 24, minH: "auto", minW: "auto", shrink: 1, ...(0, slot_1.slot)('field-set'), ...props, children: children }));
|
|
44
71
|
}
|
|
45
|
-
|
|
46
|
-
|
|
72
|
+
/**
|
|
73
|
+
* `mb-3 text-sm|text-base font-medium`, as what it compiled to: a block frame
|
|
74
|
+
* with a 12px margin under it, and the text on design's sm (13) or base (14)
|
|
75
|
+
* rung at the medium weight. The text rides as a plain style, as `Box` carried
|
|
76
|
+
* it: a frame drops a text property, and a legend's text is its children's to
|
|
77
|
+
* inherit. Line-height `normal` is what the utility resolved to
|
|
78
|
+
* (`--text-*--line-height` is not a token anyone ships).
|
|
79
|
+
*/
|
|
80
|
+
function FieldLegend({ variant = 'legend', children, style, ...props }) {
|
|
81
|
+
const rung = variant === 'label' ? 'sm' : 'base';
|
|
82
|
+
return ((0, jsx_runtime_1.jsx)(gui_1.YStack, { render: "legend", display: "block", mb: 12, minH: "auto", minW: "auto", shrink: 1, ...(0, slot_1.slot)('field-legend'), "data-variant": variant, ...props, style: {
|
|
83
|
+
fontSize: `var(--text-${rung})`,
|
|
84
|
+
lineHeight: `var(--text-${rung}--line-height, normal)`,
|
|
85
|
+
fontWeight: 500,
|
|
86
|
+
...style,
|
|
87
|
+
}, children: children }));
|
|
47
88
|
}
|
|
48
89
|
const FieldGroup = (0, gui_1.styled)(gui_1.YStack, {
|
|
49
90
|
name: 'FieldGroup',
|
|
@@ -77,9 +118,10 @@ const FieldFrame = (0, gui_1.styled)(gui_1.XStack, {
|
|
|
77
118
|
},
|
|
78
119
|
defaultVariants: { orientation: 'vertical' },
|
|
79
120
|
});
|
|
80
|
-
function Field({ orientation = 'vertical', ...props }) {
|
|
81
|
-
const invalid = props['data-invalid'];
|
|
82
|
-
|
|
121
|
+
function Field({ orientation = 'vertical', invalid: stated, ...props }) {
|
|
122
|
+
const invalid = stated ?? props['data-invalid'];
|
|
123
|
+
const compact = (0, density_1.useDensity)() === 'compact';
|
|
124
|
+
return ((0, jsx_runtime_1.jsx)(FieldState.Provider, { value: { invalid: stated ?? props['data-invalid'] }, children: (0, jsx_runtime_1.jsx)(FieldFrame, { role: "group", ...(0, slot_1.slot)('field'), "data-orientation": orientation, orientation: orientation, ...(stated !== undefined ? { 'data-invalid': stated } : null), invalid: invalid, ...(compact ? { gap: '$1' } : null), ...props }) }));
|
|
83
125
|
}
|
|
84
126
|
const FieldContent = (0, gui_1.styled)(gui_1.YStack, {
|
|
85
127
|
name: 'FieldContent',
|
|
@@ -89,9 +131,12 @@ const FieldContent = (0, gui_1.styled)(gui_1.YStack, {
|
|
|
89
131
|
exports.FieldContent = FieldContent;
|
|
90
132
|
/** A `Field` nested directly inside a `FieldLabel` reads as a choice card. */
|
|
91
133
|
const isFieldChild = (children) => (0, react_1.isValidElement)(children) && children.type === Field;
|
|
134
|
+
/** The record density's caption: 12px semibold in the light ink. */
|
|
135
|
+
const CAPTION = { fontSize: '$1', fontWeight: '600', color: '$hint', lineHeight: '$1' };
|
|
92
136
|
function FieldLabel({ className, children, ...props }) {
|
|
93
137
|
const card = isFieldChild(children);
|
|
94
|
-
|
|
138
|
+
const compact = (0, density_1.useDensity)() === 'compact';
|
|
139
|
+
return ((0, jsx_runtime_1.jsx)(label_1.Label, { ...(0, slot_1.slot)('field-label'), ...(compact && !card ? CAPTION : null), gap: "$2", ...(card
|
|
95
140
|
? {
|
|
96
141
|
width: '100%',
|
|
97
142
|
flexDirection: 'column',
|
|
@@ -103,10 +148,12 @@ function FieldLabel({ className, children, ...props }) {
|
|
|
103
148
|
: { self: 'flex-start' }), className: className, ...props, children: children }));
|
|
104
149
|
}
|
|
105
150
|
function FieldTitle({ children, ...props }) {
|
|
106
|
-
|
|
151
|
+
const compact = (0, density_1.useDensity)() === 'compact';
|
|
152
|
+
return ((0, jsx_runtime_1.jsx)(gui_1.XStack, { ...(0, slot_1.slot)('field-label'), self: "flex-start", items: "center", gap: "$2", ...props, children: (0, ink_1.ink)(children, gui_1.SizableText, compact ? CAPTION : { fontSize: '$2', fontWeight: '500' }) }));
|
|
107
153
|
}
|
|
108
154
|
function FieldDescription({ children, ...props }) {
|
|
109
|
-
|
|
155
|
+
const compact = (0, density_1.useDensity)() === 'compact';
|
|
156
|
+
return ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { ...(0, slot_1.slot)('field-description'), fontSize: compact ? '$1' : '$2', fontWeight: "400", color: compact ? '$hint' : '$quiet', ...props, children: children }));
|
|
110
157
|
}
|
|
111
158
|
function FieldSeparator({ children, ...props }) {
|
|
112
159
|
return ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { ...(0, slot_1.slot)('field-separator'), "data-content": !!children, items: "center", gap: "$2", ...props, children: [(0, jsx_runtime_1.jsx)(layout_1.Separator, { flex: 1 }), children && ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { ...(0, slot_1.slot)('field-separator-content'), color: "$quiet", fontSize: "$2", children: children })), children && (0, jsx_runtime_1.jsx)(layout_1.Separator, { flex: 1 })] }));
|
|
@@ -122,11 +169,21 @@ function fieldErrorContent(children, errors, issues) {
|
|
|
122
169
|
return null;
|
|
123
170
|
if (messages.length === 1)
|
|
124
171
|
return messages[0].message;
|
|
125
|
-
return ((0, jsx_runtime_1.jsx)(
|
|
172
|
+
return ((0, jsx_runtime_1.jsx)(gui_1.YStack, { render: "ul", ml: 16, display: "flex", flexDirection: "column", gap: 4, minH: "auto", minW: "auto", shrink: 1, style: { listStyleType: 'disc' }, ...(0, slot_1.slot)('field-error-list'), children: messages.map((error, index) => ((0, jsx_runtime_1.jsx)(gui_1.YStack, { render: "li", display: "block", minH: "auto", minW: "auto", shrink: 1, style: {
|
|
173
|
+
display: 'list-item',
|
|
174
|
+
fontSize: 'var(--text-sm)',
|
|
175
|
+
lineHeight: 'var(--text-sm--line-height, normal)',
|
|
176
|
+
color: 'var(--red9)',
|
|
177
|
+
}, children: error.message }, index))) }));
|
|
126
178
|
}
|
|
127
179
|
function FieldError({ children, errors, issues, ...props }) {
|
|
180
|
+
const field = (0, exports.useField)();
|
|
181
|
+
const compact = (0, density_1.useDensity)() === 'compact';
|
|
128
182
|
const content = fieldErrorContent(children, errors, issues);
|
|
129
|
-
|
|
183
|
+
// A field that states it is valid shows no error, whatever is passed in.
|
|
184
|
+
if (!content || field.invalid === false)
|
|
130
185
|
return null;
|
|
131
|
-
return ((0, jsx_runtime_1.jsx)(gui_1.XStack, { role: "alert", ...(0, slot_1.slot)('field-error'), ...props, children: (0, ink_1.ink)(content, gui_1.SizableText,
|
|
186
|
+
return ((0, jsx_runtime_1.jsx)(gui_1.XStack, { role: "alert", ...(0, slot_1.slot)('field-error'), ...props, children: (0, ink_1.ink)(content, gui_1.SizableText, compact
|
|
187
|
+
? { fontSize: '$1', fontWeight: '400', color: '$bad' }
|
|
188
|
+
: { fontSize: '$2', fontWeight: '400', color: '$red9' }) }));
|
|
132
189
|
}
|
|
@@ -18,15 +18,50 @@
|
|
|
18
18
|
* the compiled `@media (min-width: …)` any `$md` prop emits), so there are no
|
|
19
19
|
* container queries to reach for and none are needed: the same direction every
|
|
20
20
|
* other responsive prop in this codebase is written in.
|
|
21
|
+
*
|
|
22
|
+
* Under `<Density value="compact">` the text leaves take the record density
|
|
23
|
+
* twenty-ui's Field draws (MIT, NOTICE): a 12px semibold label in the light ink
|
|
24
|
+
* 4px above its control, a 12px light description and a 12px error, the block's
|
|
25
|
+
* gap 4. Regular density draws exactly what it always did.
|
|
26
|
+
*
|
|
27
|
+
* `invalid` on the root is the one statement of the field's validity: it marks
|
|
28
|
+
* the block (`data-invalid`), and `useField()` hands it to the control inside —
|
|
29
|
+
* Textarea and SelectTrigger read it as their error edge — and to `FieldError`,
|
|
30
|
+
* which a field that says `invalid={false}` keeps hidden.
|
|
21
31
|
*/
|
|
22
32
|
import { SizableText, XStack } from '@hanzo/gui';
|
|
23
33
|
import { type ComponentProps, type ReactNode } from 'react';
|
|
24
34
|
import { Label } from './label.js';
|
|
35
|
+
/** The nearest `Field`'s stated validity — `undefined` outside one, or where it states none. */
|
|
36
|
+
export declare const useField: () => {
|
|
37
|
+
invalid?: boolean;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* `aria-invalid` as the DOM reads it, or the enclosing field's: anything but
|
|
41
|
+
* absent or the string "false" on the control, else what the Field states.
|
|
42
|
+
*/
|
|
43
|
+
export declare const invalidOf: (aria: unknown, field: {
|
|
44
|
+
invalid?: boolean;
|
|
45
|
+
}) => boolean;
|
|
25
46
|
export type FieldOrientation = 'vertical' | 'horizontal' | 'responsive';
|
|
26
47
|
export type FieldLegendVariant = 'legend' | 'label';
|
|
48
|
+
/**
|
|
49
|
+
* The gui values the old `flex flex-col gap-6` read as through `tw`, stated
|
|
50
|
+
* directly — the same frame `Box` drew (display flex, a 24px column gap, the
|
|
51
|
+
* div's `auto` minimums and its shrink), now through style props rather than a
|
|
52
|
+
* utility string. `field.test.tsx` holds the two renders equal.
|
|
53
|
+
*/
|
|
27
54
|
declare function FieldSet({ children, ...props }: ComponentProps<'fieldset'>): import("react").JSX.Element;
|
|
28
55
|
export type FieldSetProps = ComponentProps<typeof FieldSet>;
|
|
29
|
-
|
|
56
|
+
/**
|
|
57
|
+
* `mb-3 text-sm|text-base font-medium`, as what it compiled to: a block frame
|
|
58
|
+
* with a 12px margin under it, and the text on design's sm (13) or base (14)
|
|
59
|
+
* rung at the medium weight. The text rides as a plain style, as `Box` carried
|
|
60
|
+
* it: a frame drops a text property, and a legend's text is its children's to
|
|
61
|
+
* inherit. Line-height `normal` is what the utility resolved to
|
|
62
|
+
* (`--text-*--line-height` is not a token anyone ships).
|
|
63
|
+
*/
|
|
64
|
+
declare function FieldLegend({ variant, children, style, ...props }: ComponentProps<'legend'> & {
|
|
30
65
|
variant?: FieldLegendVariant;
|
|
31
66
|
}): import("react").JSX.Element;
|
|
32
67
|
export type FieldLegendProps = ComponentProps<typeof FieldLegend>;
|
|
@@ -41,11 +76,16 @@ declare const FieldFrame: import("@hanzogui/web").GuiComponent<import("@hanzogui
|
|
|
41
76
|
invalid?: boolean | undefined;
|
|
42
77
|
orientation?: "horizontal" | "responsive" | "vertical" | undefined;
|
|
43
78
|
}, import("@hanzogui/web").StaticConfigPublic>;
|
|
44
|
-
export type FieldProps = Omit<ComponentProps<typeof FieldFrame>, 'orientation'> & {
|
|
79
|
+
export type FieldProps = Omit<ComponentProps<typeof FieldFrame>, 'orientation' | 'invalid'> & {
|
|
45
80
|
orientation?: FieldOrientation;
|
|
81
|
+
/**
|
|
82
|
+
* The field's validity, stated once: the block is marked, the control inside
|
|
83
|
+
* draws its error edge, and `FieldError` shows (or, `false`, stays hidden).
|
|
84
|
+
*/
|
|
85
|
+
invalid?: boolean;
|
|
46
86
|
'data-invalid'?: boolean;
|
|
47
87
|
};
|
|
48
|
-
declare function Field({ orientation, ...props }: FieldProps): import("react").JSX.Element;
|
|
88
|
+
declare function Field({ orientation, invalid: stated, ...props }: FieldProps): import("react").JSX.Element;
|
|
49
89
|
declare const FieldContent: import("@hanzogui/web").GuiComponent<import("@hanzogui/web").TamaDefer, any, import("@hanzogui/core").RNGuiViewNonStyleProps, import("@hanzogui/web").StackStyleBase, {
|
|
50
90
|
elevation?: number | import("@hanzogui/web").SizeTokens | undefined;
|
|
51
91
|
fullscreen?: boolean | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/field.tsx"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/field.tsx"],"names":[],"mappings":"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"}
|
|
@@ -20,19 +20,58 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
20
20
|
* the compiled `@media (min-width: …)` any `$md` prop emits), so there are no
|
|
21
21
|
* container queries to reach for and none are needed: the same direction every
|
|
22
22
|
* other responsive prop in this codebase is written in.
|
|
23
|
+
*
|
|
24
|
+
* Under `<Density value="compact">` the text leaves take the record density
|
|
25
|
+
* twenty-ui's Field draws (MIT, NOTICE): a 12px semibold label in the light ink
|
|
26
|
+
* 4px above its control, a 12px light description and a 12px error, the block's
|
|
27
|
+
* gap 4. Regular density draws exactly what it always did.
|
|
28
|
+
*
|
|
29
|
+
* `invalid` on the root is the one statement of the field's validity: it marks
|
|
30
|
+
* the block (`data-invalid`), and `useField()` hands it to the control inside —
|
|
31
|
+
* Textarea and SelectTrigger read it as their error edge — and to `FieldError`,
|
|
32
|
+
* which a field that says `invalid={false}` keeps hidden.
|
|
23
33
|
*/
|
|
24
34
|
import { SizableText, XStack, YStack, createStyledContext, styled } from '@hanzo/gui';
|
|
25
|
-
import { isValidElement } from 'react';
|
|
26
|
-
import { Box } from '../../box.js';
|
|
35
|
+
import { createContext, isValidElement, useContext } from 'react';
|
|
27
36
|
import { Label } from './label.js';
|
|
28
37
|
import { Separator } from './layout.js';
|
|
29
38
|
import { ink } from './ink.js';
|
|
30
39
|
import { slot } from './slot.js';
|
|
40
|
+
import { useDensity } from './density.js';
|
|
41
|
+
/** What a control inside a `Field` reads: whether the field is invalid, when it says. */
|
|
42
|
+
const FieldState = /* @__PURE__ */ createContext({});
|
|
43
|
+
/** The nearest `Field`'s stated validity — `undefined` outside one, or where it states none. */
|
|
44
|
+
export const useField = () => useContext(FieldState);
|
|
45
|
+
/**
|
|
46
|
+
* `aria-invalid` as the DOM reads it, or the enclosing field's: anything but
|
|
47
|
+
* absent or the string "false" on the control, else what the Field states.
|
|
48
|
+
*/
|
|
49
|
+
export const invalidOf = (aria, field) => aria != null ? aria !== false && aria !== 'false' : !!field.invalid;
|
|
50
|
+
/**
|
|
51
|
+
* The gui values the old `flex flex-col gap-6` read as through `tw`, stated
|
|
52
|
+
* directly — the same frame `Box` drew (display flex, a 24px column gap, the
|
|
53
|
+
* div's `auto` minimums and its shrink), now through style props rather than a
|
|
54
|
+
* utility string. `field.test.tsx` holds the two renders equal.
|
|
55
|
+
*/
|
|
31
56
|
function FieldSet({ children, ...props }) {
|
|
32
|
-
return (_jsx(
|
|
57
|
+
return (_jsx(YStack, { render: "fieldset", display: "flex", flexDirection: "column", gap: 24, minH: "auto", minW: "auto", shrink: 1, ...slot('field-set'), ...props, children: children }));
|
|
33
58
|
}
|
|
34
|
-
|
|
35
|
-
|
|
59
|
+
/**
|
|
60
|
+
* `mb-3 text-sm|text-base font-medium`, as what it compiled to: a block frame
|
|
61
|
+
* with a 12px margin under it, and the text on design's sm (13) or base (14)
|
|
62
|
+
* rung at the medium weight. The text rides as a plain style, as `Box` carried
|
|
63
|
+
* it: a frame drops a text property, and a legend's text is its children's to
|
|
64
|
+
* inherit. Line-height `normal` is what the utility resolved to
|
|
65
|
+
* (`--text-*--line-height` is not a token anyone ships).
|
|
66
|
+
*/
|
|
67
|
+
function FieldLegend({ variant = 'legend', children, style, ...props }) {
|
|
68
|
+
const rung = variant === 'label' ? 'sm' : 'base';
|
|
69
|
+
return (_jsx(YStack, { render: "legend", display: "block", mb: 12, minH: "auto", minW: "auto", shrink: 1, ...slot('field-legend'), "data-variant": variant, ...props, style: {
|
|
70
|
+
fontSize: `var(--text-${rung})`,
|
|
71
|
+
lineHeight: `var(--text-${rung}--line-height, normal)`,
|
|
72
|
+
fontWeight: 500,
|
|
73
|
+
...style,
|
|
74
|
+
}, children: children }));
|
|
36
75
|
}
|
|
37
76
|
const FieldGroup = styled(YStack, {
|
|
38
77
|
name: 'FieldGroup',
|
|
@@ -65,9 +104,10 @@ const FieldFrame = styled(XStack, {
|
|
|
65
104
|
},
|
|
66
105
|
defaultVariants: { orientation: 'vertical' },
|
|
67
106
|
});
|
|
68
|
-
function Field({ orientation = 'vertical', ...props }) {
|
|
69
|
-
const invalid = props['data-invalid'];
|
|
70
|
-
|
|
107
|
+
function Field({ orientation = 'vertical', invalid: stated, ...props }) {
|
|
108
|
+
const invalid = stated ?? props['data-invalid'];
|
|
109
|
+
const compact = useDensity() === 'compact';
|
|
110
|
+
return (_jsx(FieldState.Provider, { value: { invalid: stated ?? props['data-invalid'] }, children: _jsx(FieldFrame, { role: "group", ...slot('field'), "data-orientation": orientation, orientation: orientation, ...(stated !== undefined ? { 'data-invalid': stated } : null), invalid: invalid, ...(compact ? { gap: '$1' } : null), ...props }) }));
|
|
71
111
|
}
|
|
72
112
|
const FieldContent = styled(YStack, {
|
|
73
113
|
name: 'FieldContent',
|
|
@@ -76,9 +116,12 @@ const FieldContent = styled(YStack, {
|
|
|
76
116
|
});
|
|
77
117
|
/** A `Field` nested directly inside a `FieldLabel` reads as a choice card. */
|
|
78
118
|
const isFieldChild = (children) => isValidElement(children) && children.type === Field;
|
|
119
|
+
/** The record density's caption: 12px semibold in the light ink. */
|
|
120
|
+
const CAPTION = { fontSize: '$1', fontWeight: '600', color: '$hint', lineHeight: '$1' };
|
|
79
121
|
function FieldLabel({ className, children, ...props }) {
|
|
80
122
|
const card = isFieldChild(children);
|
|
81
|
-
|
|
123
|
+
const compact = useDensity() === 'compact';
|
|
124
|
+
return (_jsx(Label, { ...slot('field-label'), ...(compact && !card ? CAPTION : null), gap: "$2", ...(card
|
|
82
125
|
? {
|
|
83
126
|
width: '100%',
|
|
84
127
|
flexDirection: 'column',
|
|
@@ -90,10 +133,12 @@ function FieldLabel({ className, children, ...props }) {
|
|
|
90
133
|
: { self: 'flex-start' }), className: className, ...props, children: children }));
|
|
91
134
|
}
|
|
92
135
|
function FieldTitle({ children, ...props }) {
|
|
93
|
-
|
|
136
|
+
const compact = useDensity() === 'compact';
|
|
137
|
+
return (_jsx(XStack, { ...slot('field-label'), self: "flex-start", items: "center", gap: "$2", ...props, children: ink(children, SizableText, compact ? CAPTION : { fontSize: '$2', fontWeight: '500' }) }));
|
|
94
138
|
}
|
|
95
139
|
function FieldDescription({ children, ...props }) {
|
|
96
|
-
|
|
140
|
+
const compact = useDensity() === 'compact';
|
|
141
|
+
return (_jsx(SizableText, { ...slot('field-description'), fontSize: compact ? '$1' : '$2', fontWeight: "400", color: compact ? '$hint' : '$quiet', ...props, children: children }));
|
|
97
142
|
}
|
|
98
143
|
function FieldSeparator({ children, ...props }) {
|
|
99
144
|
return (_jsxs(XStack, { ...slot('field-separator'), "data-content": !!children, items: "center", gap: "$2", ...props, children: [_jsx(Separator, { flex: 1 }), children && (_jsx(SizableText, { ...slot('field-separator-content'), color: "$quiet", fontSize: "$2", children: children })), children && _jsx(Separator, { flex: 1 })] }));
|
|
@@ -109,13 +154,23 @@ function fieldErrorContent(children, errors, issues) {
|
|
|
109
154
|
return null;
|
|
110
155
|
if (messages.length === 1)
|
|
111
156
|
return messages[0].message;
|
|
112
|
-
return (_jsx(
|
|
157
|
+
return (_jsx(YStack, { render: "ul", ml: 16, display: "flex", flexDirection: "column", gap: 4, minH: "auto", minW: "auto", shrink: 1, style: { listStyleType: 'disc' }, ...slot('field-error-list'), children: messages.map((error, index) => (_jsx(YStack, { render: "li", display: "block", minH: "auto", minW: "auto", shrink: 1, style: {
|
|
158
|
+
display: 'list-item',
|
|
159
|
+
fontSize: 'var(--text-sm)',
|
|
160
|
+
lineHeight: 'var(--text-sm--line-height, normal)',
|
|
161
|
+
color: 'var(--red9)',
|
|
162
|
+
}, children: error.message }, index))) }));
|
|
113
163
|
}
|
|
114
164
|
function FieldError({ children, errors, issues, ...props }) {
|
|
165
|
+
const field = useField();
|
|
166
|
+
const compact = useDensity() === 'compact';
|
|
115
167
|
const content = fieldErrorContent(children, errors, issues);
|
|
116
|
-
|
|
168
|
+
// A field that states it is valid shows no error, whatever is passed in.
|
|
169
|
+
if (!content || field.invalid === false)
|
|
117
170
|
return null;
|
|
118
|
-
return (_jsx(XStack, { role: "alert", ...slot('field-error'), ...props, children: ink(content, SizableText,
|
|
171
|
+
return (_jsx(XStack, { role: "alert", ...slot('field-error'), ...props, children: ink(content, SizableText, compact
|
|
172
|
+
? { fontSize: '$1', fontWeight: '400', color: '$bad' }
|
|
173
|
+
: { fontSize: '$2', fontWeight: '400', color: '$red9' }) }));
|
|
119
174
|
}
|
|
120
175
|
export { Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, };
|
|
121
176
|
//# sourceMappingURL=field.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.js","sourceRoot":"","sources":["../../../src/backends/gui/field.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ
|
|
1
|
+
{"version":3,"file":"field.js","sourceRoot":"","sources":["../../../src/backends/gui/field.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.flag = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* A country's flag as text: the two regional-indicator letters of its ISO
|
|
6
|
+
* 3166-1 alpha-2 code, which a platform draws as its flag emoji. No assets ship
|
|
7
|
+
* with the package for it; a platform that has no flag glyphs (Windows) draws the
|
|
8
|
+
* two letters, which still name the country. Anything that is not two ASCII
|
|
9
|
+
* letters is not a country code, and has no flag.
|
|
10
|
+
*/
|
|
11
|
+
const flag = (iso) => {
|
|
12
|
+
const code = iso?.trim().toUpperCase();
|
|
13
|
+
if (!code || !/^[A-Z]{2}$/.test(code))
|
|
14
|
+
return null;
|
|
15
|
+
return String.fromCodePoint(...[...code].map((c) => 0x1f1e6 + c.charCodeAt(0) - 65));
|
|
16
|
+
};
|
|
17
|
+
exports.flag = flag;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A country's flag as text: the two regional-indicator letters of its ISO
|
|
3
|
+
* 3166-1 alpha-2 code, which a platform draws as its flag emoji. No assets ship
|
|
4
|
+
* with the package for it; a platform that has no flag glyphs (Windows) draws the
|
|
5
|
+
* two letters, which still name the country. Anything that is not two ASCII
|
|
6
|
+
* letters is not a country code, and has no flag.
|
|
7
|
+
*/
|
|
8
|
+
export declare const flag: (iso: string | null | undefined) => string | null;
|
|
9
|
+
//# sourceMappingURL=flag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flag.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/flag.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,IAAI,QAAS,MAAM,GAAG,IAAI,GAAG,SAAS,KAAG,MAAM,GAAG,IAI9D,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A country's flag as text: the two regional-indicator letters of its ISO
|
|
3
|
+
* 3166-1 alpha-2 code, which a platform draws as its flag emoji. No assets ship
|
|
4
|
+
* with the package for it; a platform that has no flag glyphs (Windows) draws the
|
|
5
|
+
* two letters, which still name the country. Anything that is not two ASCII
|
|
6
|
+
* letters is not a country code, and has no flag.
|
|
7
|
+
*/
|
|
8
|
+
export const flag = (iso) => {
|
|
9
|
+
const code = iso?.trim().toUpperCase();
|
|
10
|
+
if (!code || !/^[A-Z]{2}$/.test(code))
|
|
11
|
+
return null;
|
|
12
|
+
return String.fromCodePoint(...[...code].map((c) => 0x1f1e6 + c.charCodeAt(0) - 65));
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=flag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flag.js","sourceRoot":"","sources":["../../../src/backends/gui/flag.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,GAA8B,EAAiB,EAAE;IACpE,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IACtC,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAClD,OAAO,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;AACtF,CAAC,CAAA"}
|