@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,377 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Icons are stored BY NAME — an object's, a view's, a navigation item's, a
|
|
3
|
+
* select option's — and the name Hanzo stores is a Lucide name. This module turns
|
|
4
|
+
* a stored name into one, whatever wrote it, and names the icon each record
|
|
5
|
+
* concept and field type is drawn with.
|
|
6
|
+
*
|
|
7
|
+
* Lucide is the one icon set (@hanzogui/lucide-icons-2); there is no second
|
|
8
|
+
* family beside it. A record imported from a product that stored Tabler names
|
|
9
|
+
* ("IconBuildingSkyscraper") keeps its icon through `TABLER`, then the same-name
|
|
10
|
+
* rule, then a per-kind fallback — the order reuse decided:
|
|
11
|
+
*
|
|
12
|
+
* 1. a Lucide name stands as it is;
|
|
13
|
+
* 2. a mapped Tabler name takes its pair (`TABLER`, by meaning, not spelling);
|
|
14
|
+
* 3. else "Icon" is stripped and the rest tried as a Lucide name, then with a
|
|
15
|
+
* trailing 2 or 3, then with a leading or trailing Circle/Square moved to
|
|
16
|
+
* the other end (Tabler's "CircleCheck" is Lucide's "CheckCircle");
|
|
17
|
+
* 4. else the kind's fallback: an object is a Box, a view a Table, an option
|
|
18
|
+
* nothing.
|
|
19
|
+
*
|
|
20
|
+
* Names and pairs only: the concept dictionary is twenty-ui's (MIT, NOTICE) and
|
|
21
|
+
* the pairs map its names onto Lucide's; no glyph of either set is copied. This
|
|
22
|
+
* module imports nothing, so naming a concept costs a string, and the icons are
|
|
23
|
+
* loaded only where one is drawn (`loadIcons` in icon-picker.tsx, one async
|
|
24
|
+
* chunk).
|
|
25
|
+
*/
|
|
26
|
+
/** Twenty/Tabler names → the Lucide icon that means the same thing (153 pairs). */
|
|
27
|
+
export const TABLER = {
|
|
28
|
+
Icon123: 'Hash',
|
|
29
|
+
IconAddressBook: 'BookUser',
|
|
30
|
+
IconAlertTriangle: 'AlertTriangle',
|
|
31
|
+
IconApi: 'Webhook',
|
|
32
|
+
IconAppWindow: 'AppWindow',
|
|
33
|
+
IconApps: 'LayoutGrid',
|
|
34
|
+
IconArchiveOff: 'ArchiveX',
|
|
35
|
+
IconArrowLeft: 'ArrowLeft',
|
|
36
|
+
IconArrowMerge: 'Merge',
|
|
37
|
+
IconArrowRight: 'ArrowRight',
|
|
38
|
+
IconArrowUpRight: 'ArrowUpRight',
|
|
39
|
+
IconArrowsSort: 'ArrowUpDown',
|
|
40
|
+
IconAt: 'AtSign',
|
|
41
|
+
IconAxisX: 'MoveHorizontal',
|
|
42
|
+
IconAxisY: 'MoveVertical',
|
|
43
|
+
IconBaselineDensitySmall: 'Rows3',
|
|
44
|
+
IconBell: 'Bell',
|
|
45
|
+
IconBlockquote: 'Quote',
|
|
46
|
+
IconBook: 'Book',
|
|
47
|
+
IconBox: 'Box',
|
|
48
|
+
IconBrandLinkedin: 'Linkedin',
|
|
49
|
+
IconBrandTypescript: 'FileCode',
|
|
50
|
+
IconBrandX: 'Twitter',
|
|
51
|
+
IconBuilding: 'Building',
|
|
52
|
+
IconBuildingSkyscraper: 'Building2',
|
|
53
|
+
IconCalendar: 'Calendar',
|
|
54
|
+
IconCalendarDue: 'CalendarClock',
|
|
55
|
+
IconCalendarEvent: 'CalendarDays',
|
|
56
|
+
IconCalendarMonth: 'Calendar',
|
|
57
|
+
IconCalendarRepeat: 'CalendarSync',
|
|
58
|
+
IconCalendarTime: 'CalendarClock',
|
|
59
|
+
IconCalendarWeek: 'CalendarRange',
|
|
60
|
+
IconCheck: 'Check',
|
|
61
|
+
IconCheckbox: 'CheckSquare',
|
|
62
|
+
IconChevronDown: 'ChevronDown',
|
|
63
|
+
IconChevronLeft: 'ChevronLeft',
|
|
64
|
+
IconChevronRight: 'ChevronRight',
|
|
65
|
+
IconChevronUp: 'ChevronUp',
|
|
66
|
+
IconClick: 'MousePointerClick',
|
|
67
|
+
IconClockPlay: 'Timer',
|
|
68
|
+
IconCode: 'Code',
|
|
69
|
+
IconCoins: 'Coins',
|
|
70
|
+
IconColorSwatch: 'Palette',
|
|
71
|
+
IconCommand: 'Command',
|
|
72
|
+
IconCompass: 'Compass',
|
|
73
|
+
IconCopy: 'Copy',
|
|
74
|
+
IconCpu: 'Cpu',
|
|
75
|
+
IconCreditCard: 'CreditCard',
|
|
76
|
+
IconCurrencyDollar: 'DollarSign',
|
|
77
|
+
IconDeviceFloppy: 'Save',
|
|
78
|
+
IconDots: 'MoreHorizontal',
|
|
79
|
+
IconDotsVertical: 'MoreVertical',
|
|
80
|
+
IconDownload: 'Download',
|
|
81
|
+
IconExternalLink: 'ExternalLink',
|
|
82
|
+
IconEye: 'Eye',
|
|
83
|
+
IconEyeOff: 'EyeOff',
|
|
84
|
+
IconFavorite: 'Heart',
|
|
85
|
+
IconFileExport: 'FileOutput',
|
|
86
|
+
IconFileImport: 'FileInput',
|
|
87
|
+
IconFiles: 'Files',
|
|
88
|
+
IconFilter: 'Filter',
|
|
89
|
+
IconFilterOff: 'FilterX',
|
|
90
|
+
IconForbid: 'Ban',
|
|
91
|
+
IconFrame: 'Frame',
|
|
92
|
+
IconGripVertical: 'GripVertical',
|
|
93
|
+
IconH1: 'Heading1',
|
|
94
|
+
IconH2: 'Heading2',
|
|
95
|
+
IconH3: 'Heading3',
|
|
96
|
+
IconHandMove: 'Hand',
|
|
97
|
+
IconHeart: 'Heart',
|
|
98
|
+
IconHeartOff: 'HeartOff',
|
|
99
|
+
IconHierarchy: 'Network',
|
|
100
|
+
IconHistory: 'History',
|
|
101
|
+
IconId: 'IdCard',
|
|
102
|
+
IconInfoCircle: 'Info',
|
|
103
|
+
IconJson: 'Braces',
|
|
104
|
+
IconKey: 'Key',
|
|
105
|
+
IconLayoutDashboard: 'LayoutDashboard',
|
|
106
|
+
IconLayoutGridAdd: 'LayoutGrid',
|
|
107
|
+
IconLayoutKanban: 'Kanban',
|
|
108
|
+
IconLayoutList: 'LayoutList',
|
|
109
|
+
IconLayoutSidebar: 'PanelLeft',
|
|
110
|
+
IconLayoutSidebarLeftCollapse: 'PanelLeftClose',
|
|
111
|
+
IconLayoutSidebarLeftExpand: 'PanelLeft',
|
|
112
|
+
IconLayoutSidebarRight: 'PanelRight',
|
|
113
|
+
IconLego: 'Bot',
|
|
114
|
+
IconLifebuoy: 'LifeBuoy',
|
|
115
|
+
IconLink: 'Link',
|
|
116
|
+
IconListDetails: 'ListChecks',
|
|
117
|
+
IconListNumbers: 'ListOrdered',
|
|
118
|
+
IconListSearch: 'ListFilter',
|
|
119
|
+
IconLock: 'Lock',
|
|
120
|
+
IconLogout: 'LogOut',
|
|
121
|
+
IconMail: 'Mail',
|
|
122
|
+
IconMailCog: 'MailCheck',
|
|
123
|
+
IconMap: 'Map',
|
|
124
|
+
IconMaximize: 'Maximize',
|
|
125
|
+
IconMessage: 'MessageSquare',
|
|
126
|
+
IconMicrophone: 'Mic',
|
|
127
|
+
IconMoodSmile: 'Smile',
|
|
128
|
+
IconNotes: 'StickyNote',
|
|
129
|
+
IconNumber: 'Hash',
|
|
130
|
+
IconPaperclip: 'Paperclip',
|
|
131
|
+
IconPencil: 'Pencil',
|
|
132
|
+
IconPerspective: 'PanelsTopLeft',
|
|
133
|
+
IconPhone: 'Phone',
|
|
134
|
+
IconPhoto: 'Image',
|
|
135
|
+
IconPinned: 'Pin',
|
|
136
|
+
IconPinnedOff: 'PinOff',
|
|
137
|
+
IconPlayerPause: 'Pause',
|
|
138
|
+
IconPlayerPlay: 'Play',
|
|
139
|
+
IconPlug: 'Plug',
|
|
140
|
+
IconPlus: 'Plus',
|
|
141
|
+
IconProgressCheck: 'CircleCheck',
|
|
142
|
+
IconPrompt: 'SquareTerminal',
|
|
143
|
+
IconRefresh: 'RefreshCw',
|
|
144
|
+
IconRefreshDot: 'RefreshCcwDot',
|
|
145
|
+
IconRelationOneToMany: 'Network',
|
|
146
|
+
IconReload: 'RotateCw',
|
|
147
|
+
IconRestore: 'RotateCcw',
|
|
148
|
+
IconRobot: 'Bot',
|
|
149
|
+
IconSearch: 'Search',
|
|
150
|
+
IconServer: 'Server',
|
|
151
|
+
IconSettings: 'Settings',
|
|
152
|
+
IconSettingsAutomation: 'Workflow',
|
|
153
|
+
IconShoppingBag: 'ShoppingBag',
|
|
154
|
+
IconSortAscending: 'ArrowUpNarrowWide',
|
|
155
|
+
IconSortDescending: 'ArrowDownWideNarrow',
|
|
156
|
+
IconSparkles: 'Sparkles',
|
|
157
|
+
IconSpy: 'VenetianMask',
|
|
158
|
+
IconStar: 'Star',
|
|
159
|
+
IconStatusChange: 'ArrowRightLeft',
|
|
160
|
+
IconSum: 'Sigma',
|
|
161
|
+
IconTable: 'Table',
|
|
162
|
+
IconTag: 'Tag',
|
|
163
|
+
IconTags: 'Tags',
|
|
164
|
+
IconTargetArrow: 'Target',
|
|
165
|
+
IconTerminal: 'Terminal',
|
|
166
|
+
IconTextSize: 'Type',
|
|
167
|
+
IconTimelineEvent: 'GitCommit',
|
|
168
|
+
IconToggleLeft: 'ToggleLeft',
|
|
169
|
+
IconTool: 'Wrench',
|
|
170
|
+
IconTransform: 'Shuffle',
|
|
171
|
+
IconTrash: 'Trash',
|
|
172
|
+
IconUpload: 'Upload',
|
|
173
|
+
IconUser: 'User',
|
|
174
|
+
IconUserCircle: 'CircleUser',
|
|
175
|
+
IconUsers: 'Users',
|
|
176
|
+
IconVersions: 'Layers',
|
|
177
|
+
IconWebhook: 'Webhook',
|
|
178
|
+
IconWorld: 'Globe',
|
|
179
|
+
IconX: 'X',
|
|
180
|
+
IconZzz: 'BellOff',
|
|
181
|
+
};
|
|
182
|
+
/** The CRM's concepts and the one Lucide icon each is drawn with. */
|
|
183
|
+
export const CONCEPTS = [
|
|
184
|
+
{ group: 'Object', concept: 'Person', icon: 'User' },
|
|
185
|
+
{ group: 'Object', concept: 'Company', icon: 'Building2' },
|
|
186
|
+
{ group: 'Object', concept: 'Opportunity', icon: 'Target' },
|
|
187
|
+
{ group: 'Object', concept: 'Task', icon: 'CheckSquare' },
|
|
188
|
+
{ group: 'Object', concept: 'Note', icon: 'StickyNote' },
|
|
189
|
+
{ group: 'Object', concept: 'Workspace member', icon: 'CircleUser' },
|
|
190
|
+
{ group: 'Object', concept: 'Attachment', icon: 'FileInput' },
|
|
191
|
+
{ group: 'Object', concept: 'Blocklist', icon: 'Ban' },
|
|
192
|
+
{ group: 'Object', concept: 'Calendar event', icon: 'Calendar' },
|
|
193
|
+
{ group: 'Object', concept: 'Call recording', icon: 'Video' },
|
|
194
|
+
{ group: 'Object', concept: 'Dashboard', icon: 'LayoutDashboard' },
|
|
195
|
+
{ group: 'Object', concept: 'Message, thread', icon: 'MessageSquare' },
|
|
196
|
+
{ group: 'Object', concept: 'Message folder', icon: 'Folder' },
|
|
197
|
+
{ group: 'Object', concept: 'Campaign, delivery', icon: 'Send' },
|
|
198
|
+
{ group: 'Object', concept: 'List (people list)', icon: 'UsersRound' },
|
|
199
|
+
{ group: 'Object', concept: 'List member', icon: 'User' },
|
|
200
|
+
{ group: 'Object', concept: 'Suppression', icon: 'Ban' },
|
|
201
|
+
{ group: 'Object', concept: 'Short link', icon: 'Link' },
|
|
202
|
+
{ group: 'Object', concept: 'Timeline activity', icon: 'GitCommit' },
|
|
203
|
+
{ group: 'Object', concept: 'Workflow, automated trigger', icon: 'Workflow' },
|
|
204
|
+
{ group: 'Object', concept: 'Workflow run', icon: 'History' },
|
|
205
|
+
{ group: 'Object', concept: 'Workflow version', icon: 'Layers' },
|
|
206
|
+
{ group: 'Object', concept: 'AI chat thread', icon: 'MessageSquare' },
|
|
207
|
+
{ group: 'Object', concept: 'Agent', icon: 'Bot' },
|
|
208
|
+
{ group: 'Data model', concept: 'Data model', icon: 'Network' },
|
|
209
|
+
{ group: 'Data model', concept: 'Object', icon: 'Box' },
|
|
210
|
+
{ group: 'Data model', concept: 'Field', icon: 'ListFilter' },
|
|
211
|
+
{ group: 'Data model', concept: 'Record, record page', icon: 'BookUser' },
|
|
212
|
+
{ group: 'Field type', concept: 'Text', icon: 'Type' },
|
|
213
|
+
{ group: 'Field type', concept: 'Number', icon: 'Hash' },
|
|
214
|
+
{ group: 'Field type', concept: 'True/False', icon: 'ToggleLeft' },
|
|
215
|
+
{ group: 'Field type', concept: 'Date and Time', icon: 'CalendarClock' },
|
|
216
|
+
{ group: 'Field type', concept: 'Date', icon: 'CalendarDays' },
|
|
217
|
+
{ group: 'Field type', concept: 'Select', icon: 'Tag' },
|
|
218
|
+
{ group: 'Field type', concept: 'Multi-select', icon: 'Tags' },
|
|
219
|
+
{ group: 'Field type', concept: 'Rating', icon: 'Star' },
|
|
220
|
+
{ group: 'Field type', concept: 'Currency', icon: 'DollarSign' },
|
|
221
|
+
{ group: 'Field type', concept: 'Emails', icon: 'Mail' },
|
|
222
|
+
{ group: 'Field type', concept: 'Links', icon: 'Link' },
|
|
223
|
+
{ group: 'Field type', concept: 'Phones', icon: 'Phone' },
|
|
224
|
+
{ group: 'Field type', concept: 'Full name', icon: 'User' },
|
|
225
|
+
{ group: 'Field type', concept: 'Address', icon: 'Map' },
|
|
226
|
+
{ group: 'Field type', concept: 'Relation, morph relation', icon: 'Network' },
|
|
227
|
+
{ group: 'Field type', concept: 'Actor', icon: 'Settings' },
|
|
228
|
+
{ group: 'Field type', concept: 'Rich text', icon: 'Type' },
|
|
229
|
+
{ group: 'Field type', concept: 'JSON', icon: 'Braces' },
|
|
230
|
+
{ group: 'Field type', concept: 'Array', icon: 'Brackets' },
|
|
231
|
+
{ group: 'Field type', concept: 'Files', icon: 'File' },
|
|
232
|
+
{ group: 'Field type', concept: 'UUID', icon: 'Fingerprint' },
|
|
233
|
+
{ group: 'View', concept: 'View, table view', icon: 'Table' },
|
|
234
|
+
{ group: 'View', concept: 'Kanban view', icon: 'Kanban' },
|
|
235
|
+
{ group: 'View', concept: 'Calendar view', icon: 'Calendar' },
|
|
236
|
+
{ group: 'View', concept: 'Group by', icon: 'LayoutList' },
|
|
237
|
+
{ group: 'View', concept: 'Filter', icon: 'Filter' },
|
|
238
|
+
{ group: 'View', concept: 'Filter off', icon: 'FilterX' },
|
|
239
|
+
{ group: 'View', concept: 'Sort', icon: 'ArrowUpDown' },
|
|
240
|
+
{ group: 'View', concept: 'Sort ascending / descending', icon: 'ArrowUpNarrowWide' },
|
|
241
|
+
{ group: 'View', concept: 'Compact density', icon: 'Rows3' },
|
|
242
|
+
{ group: 'View', concept: 'Aggregate (sum)', icon: 'Sigma' },
|
|
243
|
+
{ group: 'Layout', concept: 'Layout, app window', icon: 'AppWindow' },
|
|
244
|
+
{ group: 'Layout', concept: 'Layout page', icon: 'PanelsTopLeft' },
|
|
245
|
+
{ group: 'Layout', concept: 'Widget', icon: 'LayoutGrid' },
|
|
246
|
+
{ group: 'Layout', concept: 'Side panel', icon: 'PanelRight' },
|
|
247
|
+
{ group: 'Layout', concept: 'Navigation sidebar', icon: 'PanelLeft' },
|
|
248
|
+
{ group: 'Layout', concept: 'Command menu item', icon: 'Command' },
|
|
249
|
+
{ group: 'Layout', concept: 'Navigation item', icon: 'Compass' },
|
|
250
|
+
{ group: 'Settings', concept: 'Workspace', icon: 'Settings' },
|
|
251
|
+
{ group: 'Settings', concept: 'Members, team', icon: 'Users' },
|
|
252
|
+
{ group: 'Settings', concept: 'Roles, permissions', icon: 'Lock' },
|
|
253
|
+
{ group: 'Settings', concept: 'Billing', icon: 'CreditCard' },
|
|
254
|
+
{ group: 'Settings', concept: 'Security, API key', icon: 'Key' },
|
|
255
|
+
{ group: 'Settings', concept: 'Audit logs', icon: 'History' },
|
|
256
|
+
{ group: 'Settings', concept: 'Apps', icon: 'LayoutGrid' },
|
|
257
|
+
{ group: 'Settings', concept: 'Marketplace', icon: 'ShoppingBag' },
|
|
258
|
+
{ group: 'Settings', concept: 'Admin panel', icon: 'Server' },
|
|
259
|
+
{ group: 'Developer', concept: 'API', icon: 'Webhook' },
|
|
260
|
+
{ group: 'Developer', concept: 'Developers', icon: 'Code' },
|
|
261
|
+
{ group: 'Developer', concept: 'Webhook', icon: 'Webhook' },
|
|
262
|
+
{ group: 'Developer', concept: 'Integration', icon: 'Plug' },
|
|
263
|
+
{ group: 'Developer', concept: 'Connected account', icon: 'AtSign' },
|
|
264
|
+
{ group: 'Developer', concept: 'Functions', icon: 'FileCode' },
|
|
265
|
+
{ group: 'Developer', concept: 'Execution logs', icon: 'Terminal' },
|
|
266
|
+
{ group: 'AI', concept: 'Ask AI, MCP', icon: 'Sparkles' },
|
|
267
|
+
{ group: 'AI', concept: 'Model', icon: 'Cpu' },
|
|
268
|
+
{ group: 'AI', concept: 'Prompt', icon: 'SquareTerminal' },
|
|
269
|
+
{ group: 'AI', concept: 'Tools', icon: 'Wrench' },
|
|
270
|
+
{ group: 'AI', concept: 'Skill', icon: 'Book' },
|
|
271
|
+
{ group: 'AI', concept: 'Dictation', icon: 'Mic' },
|
|
272
|
+
{ group: 'Activity', concept: 'Notification', icon: 'Bell' },
|
|
273
|
+
{ group: 'Activity', concept: 'Files', icon: 'Files' },
|
|
274
|
+
{ group: 'Activity', concept: 'Attachments', icon: 'Paperclip' },
|
|
275
|
+
{ group: 'Activity', concept: 'Transcript', icon: 'Quote' },
|
|
276
|
+
{ group: 'Chrome', concept: 'Add', icon: 'Plus' },
|
|
277
|
+
{ group: 'Chrome', concept: 'Delete', icon: 'Trash2' },
|
|
278
|
+
{ group: 'Chrome', concept: 'More actions', icon: 'MoreVertical' },
|
|
279
|
+
{ group: 'Chrome', concept: 'Close', icon: 'X' },
|
|
280
|
+
{ group: 'Chrome', concept: 'Chevrons', icon: 'ChevronLeft' },
|
|
281
|
+
{ group: 'Chrome', concept: 'Edit', icon: 'Pencil' },
|
|
282
|
+
{ group: 'Chrome', concept: 'Confirm', icon: 'Check' },
|
|
283
|
+
{ group: 'Chrome', concept: 'Copy', icon: 'Copy' },
|
|
284
|
+
{ group: 'Chrome', concept: 'Refresh', icon: 'RefreshCw' },
|
|
285
|
+
{ group: 'Chrome', concept: 'Search', icon: 'Search' },
|
|
286
|
+
{ group: 'Chrome', concept: 'Show / hide', icon: 'Eye' },
|
|
287
|
+
{ group: 'Chrome', concept: 'Info', icon: 'Info' },
|
|
288
|
+
{ group: 'Chrome', concept: 'Warning', icon: 'AlertTriangle' },
|
|
289
|
+
{ group: 'Chrome', concept: 'Open record', icon: 'ArrowUpRight' },
|
|
290
|
+
{ group: 'Chrome', concept: 'Expand to full page', icon: 'Maximize2' },
|
|
291
|
+
{ group: 'Chrome', concept: 'External link', icon: 'ExternalLink' },
|
|
292
|
+
{ group: 'Chrome', concept: 'Drag handle', icon: 'GripVertical' },
|
|
293
|
+
{ group: 'Chrome', concept: 'Favorite / unfavorite', icon: 'Heart' },
|
|
294
|
+
{ group: 'Chrome', concept: 'Pin / unpin', icon: 'Pin' },
|
|
295
|
+
{ group: 'Chrome', concept: 'Import / export', icon: 'FileInput' },
|
|
296
|
+
{ group: 'Chrome', concept: 'Merge', icon: 'Merge' },
|
|
297
|
+
{ group: 'Chrome', concept: 'Restore', icon: 'RotateCcw' },
|
|
298
|
+
{ group: 'Chrome', concept: 'Archive off', icon: 'ArchiveX' },
|
|
299
|
+
{ group: 'Chrome', concept: 'Log out', icon: 'LogOut' },
|
|
300
|
+
{ group: 'Chrome', concept: 'Globe, domain', icon: 'Globe' },
|
|
301
|
+
{ group: 'Chrome', concept: 'Run, pause', icon: 'Play' },
|
|
302
|
+
{ group: 'Chrome', concept: 'Save', icon: 'Save' },
|
|
303
|
+
{ group: 'Chrome', concept: 'Colour', icon: 'Palette' },
|
|
304
|
+
{ group: 'Chrome', concept: 'Status change', icon: 'ArrowRightLeft' },
|
|
305
|
+
{ group: 'Chrome', concept: 'Social: LinkedIn, X', icon: 'Linkedin' },
|
|
306
|
+
];
|
|
307
|
+
/**
|
|
308
|
+
* The icon each field type is drawn with — in a column header, a kanban card's
|
|
309
|
+
* field row, the data-model editor. Keyed by @hanzo/data's FieldType; longText,
|
|
310
|
+
* percent, url, email and position are not concepts of their own in the
|
|
311
|
+
* dictionary, so they take the nearest Lucide meaning.
|
|
312
|
+
*/
|
|
313
|
+
export const FIELD_ICONS = {
|
|
314
|
+
text: 'Type',
|
|
315
|
+
longText: 'AlignLeft',
|
|
316
|
+
richText: 'Type',
|
|
317
|
+
number: 'Hash',
|
|
318
|
+
percent: 'Percent',
|
|
319
|
+
currency: 'DollarSign',
|
|
320
|
+
boolean: 'ToggleLeft',
|
|
321
|
+
select: 'Tag',
|
|
322
|
+
multiSelect: 'Tags',
|
|
323
|
+
date: 'CalendarDays',
|
|
324
|
+
dateTime: 'CalendarClock',
|
|
325
|
+
email: 'Mail',
|
|
326
|
+
url: 'Link',
|
|
327
|
+
links: 'Link',
|
|
328
|
+
phone: 'Phone',
|
|
329
|
+
rating: 'Star',
|
|
330
|
+
relation: 'Network',
|
|
331
|
+
json: 'Braces',
|
|
332
|
+
uuid: 'Fingerprint',
|
|
333
|
+
fullName: 'User',
|
|
334
|
+
address: 'Map',
|
|
335
|
+
files: 'File',
|
|
336
|
+
position: 'ListOrdered',
|
|
337
|
+
actor: 'Settings',
|
|
338
|
+
};
|
|
339
|
+
const FALLBACK = { object: 'Box', view: 'Table', option: null, other: null };
|
|
340
|
+
/** The same-name candidates for a Tabler name, in the order they are tried. */
|
|
341
|
+
const candidates = (stored) => {
|
|
342
|
+
const bare = stored.startsWith('Icon') ? stored.slice(4) : stored;
|
|
343
|
+
const out = [bare, `${bare}2`, `${bare}3`];
|
|
344
|
+
for (const shape of ['Circle', 'Square']) {
|
|
345
|
+
if (bare.startsWith(shape) && bare.length > shape.length)
|
|
346
|
+
out.push(bare.slice(shape.length) + shape);
|
|
347
|
+
if (bare.endsWith(shape) && bare.length > shape.length)
|
|
348
|
+
out.push(shape + bare.slice(0, -shape.length));
|
|
349
|
+
}
|
|
350
|
+
return out;
|
|
351
|
+
};
|
|
352
|
+
/**
|
|
353
|
+
* The Lucide name a stored icon name resolves to, against the names that exist
|
|
354
|
+
* (`names`, which `loadIcons` supplies): itself, its Tabler pair, a same-name
|
|
355
|
+
* match, or the kind's fallback; `null` when there is none.
|
|
356
|
+
*/
|
|
357
|
+
export function resolveIcon(stored, names, kind = 'other') {
|
|
358
|
+
if (stored) {
|
|
359
|
+
if (names.has(stored))
|
|
360
|
+
return stored;
|
|
361
|
+
const pair = TABLER[stored];
|
|
362
|
+
if (pair && names.has(pair))
|
|
363
|
+
return pair;
|
|
364
|
+
if (/^[A-Z]/.test(stored))
|
|
365
|
+
for (const c of candidates(stored))
|
|
366
|
+
if (names.has(c))
|
|
367
|
+
return c;
|
|
368
|
+
}
|
|
369
|
+
return FALLBACK[kind];
|
|
370
|
+
}
|
|
371
|
+
/** Lowercased words a search over icons matches: the name split at its capitals, and the concepts drawn with it. */
|
|
372
|
+
export function iconWords(name) {
|
|
373
|
+
const own = name.replace(/([a-z0-9])([A-Z])/g, '$1 $2').toLowerCase();
|
|
374
|
+
const concepts = CONCEPTS.filter((c) => c.icon === name).map((c) => c.concept.toLowerCase());
|
|
375
|
+
return [own, ...concepts].join(' ');
|
|
376
|
+
}
|
|
377
|
+
//# sourceMappingURL=icons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../../src/backends/gui/icons.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
'use client';"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.accepts = void 0;
|
|
5
|
+
exports.ImageInput = ImageInput;
|
|
6
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
+
/**
|
|
8
|
+
* ImageInput — one picture with upload, remove and abort: a profile photo, a
|
|
9
|
+
* workspace logo, a record's own image.
|
|
10
|
+
*
|
|
11
|
+
* The square preview is the control: pressing it opens the file picker, and on
|
|
12
|
+
* the web a file dropped on it is taken the same way. Beside it, Upload (or
|
|
13
|
+
* Abort while `isUploading`) and Remove, a helper line and an error line. The
|
|
14
|
+
* host owns the upload: `onChange` hands it the chosen file, `onAbort` asks it
|
|
15
|
+
* to stop, `onRemove` to clear; the preview shows whatever `src` it is given.
|
|
16
|
+
*
|
|
17
|
+
* Anatomy after twenty-ui's ImageInput (MIT, NOTICE): a 66px preview with an 8px
|
|
18
|
+
* corner and a 20px image-up glyph, a column 16px beside it with 12px between
|
|
19
|
+
* its rows, outline buttons with 14px icons.
|
|
20
|
+
*/
|
|
21
|
+
const gui_1 = require("@hanzo/gui");
|
|
22
|
+
const lucide_icons_2_1 = require("@hanzogui/lucide-icons-2");
|
|
23
|
+
const react_1 = require("react");
|
|
24
|
+
const button_1 = require("./button.cjs");
|
|
25
|
+
const press_1 = require("./press.cjs");
|
|
26
|
+
const slot_1 = require("./slot.cjs");
|
|
27
|
+
const SIZE = 66;
|
|
28
|
+
/** A file matches `accept` on its MIME type, a MIME wildcard, or its extension. */
|
|
29
|
+
const accepts = (file, accept) => accept
|
|
30
|
+
.split(',')
|
|
31
|
+
.map((a) => a.trim().toLowerCase())
|
|
32
|
+
.filter(Boolean)
|
|
33
|
+
.some((a) => a.startsWith('.')
|
|
34
|
+
? file.name.toLowerCase().endsWith(a)
|
|
35
|
+
: a.endsWith('/*')
|
|
36
|
+
? file.type.toLowerCase().startsWith(a.slice(0, -1))
|
|
37
|
+
: file.type.toLowerCase() === a);
|
|
38
|
+
exports.accepts = accepts;
|
|
39
|
+
function ImageInput({ src, alt = '', onChange, onRemove, onAbort, isUploading = false, accept = 'image/*', capture, title = 'Picture', helperText, errorMessage, uploadLabel = 'Upload', removeLabel = 'Remove', abortLabel = 'Abort', disabled = false, required, name, }) {
|
|
40
|
+
const file = (0, react_1.useRef)(null);
|
|
41
|
+
const id = (0, react_1.useId)();
|
|
42
|
+
const [over, setOver] = (0, react_1.useState)(false);
|
|
43
|
+
const pick = () => {
|
|
44
|
+
if (disabled || isUploading)
|
|
45
|
+
return;
|
|
46
|
+
file.current?.click();
|
|
47
|
+
};
|
|
48
|
+
const take = (f) => {
|
|
49
|
+
if (f && (0, exports.accepts)(f, accept))
|
|
50
|
+
onChange?.(f);
|
|
51
|
+
};
|
|
52
|
+
const drop = gui_1.isWeb && !disabled && !isUploading
|
|
53
|
+
? {
|
|
54
|
+
onDragOver: (e) => {
|
|
55
|
+
e.preventDefault();
|
|
56
|
+
setOver(true);
|
|
57
|
+
},
|
|
58
|
+
onDragLeave: () => setOver(false),
|
|
59
|
+
onDrop: (e) => {
|
|
60
|
+
e.preventDefault();
|
|
61
|
+
setOver(false);
|
|
62
|
+
take(e.dataTransfer?.files?.[0]);
|
|
63
|
+
},
|
|
64
|
+
}
|
|
65
|
+
: null;
|
|
66
|
+
return ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { ...(0, slot_1.slot)('image-input'), items: "flex-start", gap: "$4", children: [(0, jsx_runtime_1.jsx)(gui_1.XStack, { ...(0, slot_1.slot)('image-input-preview'), render: "button", ...{
|
|
67
|
+
type: 'button',
|
|
68
|
+
disabled: disabled || isUploading,
|
|
69
|
+
'aria-label': src ? `${title}: change` : `${title}: ${uploadLabel}`,
|
|
70
|
+
'aria-describedby': errorMessage || helperText ? id : undefined,
|
|
71
|
+
...drop,
|
|
72
|
+
}, width: SIZE, height: SIZE, shrink: 0, rounded: "$3", borderWidth: 1, borderColor: over ? '$borderColorFocus' : '$borderColor', bg: disabled ? '$panel' : '$hover', overflow: "hidden", items: "center", justify: "center", p: 0, cursor: disabled ? 'not-allowed' : isUploading ? 'progress' : 'pointer',
|
|
73
|
+
// No hover tint over a picture: the picture is what is being shown.
|
|
74
|
+
hoverStyle: src || disabled ? undefined : { bg: '$raised' }, focusVisibleStyle: press_1.RING, onPress: pick, children: src ? ((0, jsx_runtime_1.jsx)(gui_1.Image, { src: src, alt: alt, width: SIZE, height: SIZE, objectFit: "cover" })) : ((0, jsx_runtime_1.jsx)(lucide_icons_2_1.ImageUp, { size: 20, color: over ? '$hint' : '$hush' })) }), (0, jsx_runtime_1.jsxs)(gui_1.YStack, { gap: "$3", flex: 1, minW: 0, children: [(0, jsx_runtime_1.jsxs)(gui_1.XStack, { gap: "$2", items: "center", flexWrap: "wrap", children: [isUploading ? ((0, jsx_runtime_1.jsx)(button_1.Button, { size: "sm", variant: "outline", startIcon: (0, jsx_runtime_1.jsx)(lucide_icons_2_1.X, {}), onPress: onAbort, children: abortLabel })) : ((0, jsx_runtime_1.jsx)(button_1.Button, { size: "sm", variant: "outline", startIcon: (0, jsx_runtime_1.jsx)(lucide_icons_2_1.Upload, {}), disabled: disabled, onPress: pick, children: uploadLabel })), (0, jsx_runtime_1.jsx)(button_1.Button, { size: "sm", variant: "outline", startIcon: (0, jsx_runtime_1.jsx)(lucide_icons_2_1.Trash2, {}), disabled: disabled || isUploading || !src, onPress: onRemove, children: removeLabel })] }), helperText || errorMessage ? ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { id: id, gap: "$1", children: [helperText ? ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$1", color: "$hint", children: helperText })) : null, errorMessage ? ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$1", color: "$bad", role: "alert", children: errorMessage })) : null] })) : null] }), gui_1.isWeb ? (0, jsx_runtime_1.jsx)("input", { ref: file, type: "file", accept: accept, capture: capture, name: name, required: required, disabled: disabled, "aria-label": title, tabIndex: -1, style: { display: 'none' }, onChange: (e) => {
|
|
75
|
+
take(e.currentTarget.files?.[0]);
|
|
76
|
+
e.currentTarget.value = '';
|
|
77
|
+
} }) : null] }));
|
|
78
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export type ImageInputProps = {
|
|
2
|
+
/** The current picture, or none. */
|
|
3
|
+
src?: string | null;
|
|
4
|
+
/** What the picture shows, for a reader who cannot see it. */
|
|
5
|
+
alt?: string;
|
|
6
|
+
/** A file was chosen or dropped. */
|
|
7
|
+
onChange?: (file: File) => void;
|
|
8
|
+
onRemove?: () => void;
|
|
9
|
+
onAbort?: () => void;
|
|
10
|
+
isUploading?: boolean;
|
|
11
|
+
/** The file input's `accept`; images by default. A dropped file must match it. */
|
|
12
|
+
accept?: string;
|
|
13
|
+
/** `capture` for a phone's camera. */
|
|
14
|
+
capture?: 'user' | 'environment';
|
|
15
|
+
/** Names the control (and the hidden file input). */
|
|
16
|
+
title?: string;
|
|
17
|
+
helperText?: string;
|
|
18
|
+
errorMessage?: string;
|
|
19
|
+
uploadLabel?: string;
|
|
20
|
+
removeLabel?: string;
|
|
21
|
+
abortLabel?: string;
|
|
22
|
+
disabled?: boolean;
|
|
23
|
+
required?: boolean;
|
|
24
|
+
name?: string;
|
|
25
|
+
};
|
|
26
|
+
/** A file matches `accept` on its MIME type, a MIME wildcard, or its extension. */
|
|
27
|
+
export declare const accepts: (file: {
|
|
28
|
+
type: string;
|
|
29
|
+
name: string;
|
|
30
|
+
}, accept: string) => boolean;
|
|
31
|
+
export declare function ImageInput({ src, alt, onChange, onRemove, onAbort, isUploading, accept, capture, title, helperText, errorMessage, uploadLabel, removeLabel, abortLabel, disabled, required, name, }: ImageInputProps): import("react").JSX.Element;
|
|
32
|
+
//# sourceMappingURL=image-input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-input.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/image-input.tsx"],"names":[],"mappings":"AAuBA,MAAM,MAAM,eAAe,GAAG;IAC5B,oCAAoC;IACpC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,8DAA8D;IAC9D,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,oCAAoC;IACpC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;IAC/B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CAAA;IAChC,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAID,mFAAmF;AACnF,eAAO,MAAM,OAAO,SAAU;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,UAAU,MAAM,YAWvE,CAAA;AAEL,wBAAgB,UAAU,CAAC,EACzB,GAAG,EACH,GAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,WAAmB,EACnB,MAAkB,EAClB,OAAO,EACP,KAAiB,EACjB,UAAU,EACV,YAAY,EACZ,WAAsB,EACtB,WAAsB,EACtB,UAAoB,EACpB,QAAgB,EAChB,QAAQ,EACR,IAAI,GACL,EAAE,eAAe,+BAwHjB"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* ImageInput — one picture with upload, remove and abort: a profile photo, a
|
|
5
|
+
* workspace logo, a record's own image.
|
|
6
|
+
*
|
|
7
|
+
* The square preview is the control: pressing it opens the file picker, and on
|
|
8
|
+
* the web a file dropped on it is taken the same way. Beside it, Upload (or
|
|
9
|
+
* Abort while `isUploading`) and Remove, a helper line and an error line. The
|
|
10
|
+
* host owns the upload: `onChange` hands it the chosen file, `onAbort` asks it
|
|
11
|
+
* to stop, `onRemove` to clear; the preview shows whatever `src` it is given.
|
|
12
|
+
*
|
|
13
|
+
* Anatomy after twenty-ui's ImageInput (MIT, NOTICE): a 66px preview with an 8px
|
|
14
|
+
* corner and a 20px image-up glyph, a column 16px beside it with 12px between
|
|
15
|
+
* its rows, outline buttons with 14px icons.
|
|
16
|
+
*/
|
|
17
|
+
import { Image, SizableText, XStack, YStack, isWeb } from '@hanzo/gui';
|
|
18
|
+
import { ImageUp, Trash2, Upload, X } from '@hanzogui/lucide-icons-2';
|
|
19
|
+
import { useId, useRef, useState } from 'react';
|
|
20
|
+
import { Button } from './button.js';
|
|
21
|
+
import { RING } from './press.js';
|
|
22
|
+
import { slot } from './slot.js';
|
|
23
|
+
const SIZE = 66;
|
|
24
|
+
/** A file matches `accept` on its MIME type, a MIME wildcard, or its extension. */
|
|
25
|
+
export const accepts = (file, accept) => accept
|
|
26
|
+
.split(',')
|
|
27
|
+
.map((a) => a.trim().toLowerCase())
|
|
28
|
+
.filter(Boolean)
|
|
29
|
+
.some((a) => a.startsWith('.')
|
|
30
|
+
? file.name.toLowerCase().endsWith(a)
|
|
31
|
+
: a.endsWith('/*')
|
|
32
|
+
? file.type.toLowerCase().startsWith(a.slice(0, -1))
|
|
33
|
+
: file.type.toLowerCase() === a);
|
|
34
|
+
export function ImageInput({ src, alt = '', onChange, onRemove, onAbort, isUploading = false, accept = 'image/*', capture, title = 'Picture', helperText, errorMessage, uploadLabel = 'Upload', removeLabel = 'Remove', abortLabel = 'Abort', disabled = false, required, name, }) {
|
|
35
|
+
const file = useRef(null);
|
|
36
|
+
const id = useId();
|
|
37
|
+
const [over, setOver] = useState(false);
|
|
38
|
+
const pick = () => {
|
|
39
|
+
if (disabled || isUploading)
|
|
40
|
+
return;
|
|
41
|
+
file.current?.click();
|
|
42
|
+
};
|
|
43
|
+
const take = (f) => {
|
|
44
|
+
if (f && accepts(f, accept))
|
|
45
|
+
onChange?.(f);
|
|
46
|
+
};
|
|
47
|
+
const drop = isWeb && !disabled && !isUploading
|
|
48
|
+
? {
|
|
49
|
+
onDragOver: (e) => {
|
|
50
|
+
e.preventDefault();
|
|
51
|
+
setOver(true);
|
|
52
|
+
},
|
|
53
|
+
onDragLeave: () => setOver(false),
|
|
54
|
+
onDrop: (e) => {
|
|
55
|
+
e.preventDefault();
|
|
56
|
+
setOver(false);
|
|
57
|
+
take(e.dataTransfer?.files?.[0]);
|
|
58
|
+
},
|
|
59
|
+
}
|
|
60
|
+
: null;
|
|
61
|
+
return (_jsxs(XStack, { ...slot('image-input'), items: "flex-start", gap: "$4", children: [_jsx(XStack, { ...slot('image-input-preview'), render: "button", ...{
|
|
62
|
+
type: 'button',
|
|
63
|
+
disabled: disabled || isUploading,
|
|
64
|
+
'aria-label': src ? `${title}: change` : `${title}: ${uploadLabel}`,
|
|
65
|
+
'aria-describedby': errorMessage || helperText ? id : undefined,
|
|
66
|
+
...drop,
|
|
67
|
+
}, width: SIZE, height: SIZE, shrink: 0, rounded: "$3", borderWidth: 1, borderColor: over ? '$borderColorFocus' : '$borderColor', bg: disabled ? '$panel' : '$hover', overflow: "hidden", items: "center", justify: "center", p: 0, cursor: disabled ? 'not-allowed' : isUploading ? 'progress' : 'pointer',
|
|
68
|
+
// No hover tint over a picture: the picture is what is being shown.
|
|
69
|
+
hoverStyle: src || disabled ? undefined : { bg: '$raised' }, focusVisibleStyle: RING, onPress: pick, children: src ? (_jsx(Image, { src: src, alt: alt, width: SIZE, height: SIZE, objectFit: "cover" })) : (_jsx(ImageUp, { size: 20, color: over ? '$hint' : '$hush' })) }), _jsxs(YStack, { gap: "$3", flex: 1, minW: 0, children: [_jsxs(XStack, { gap: "$2", items: "center", flexWrap: "wrap", children: [isUploading ? (_jsx(Button, { size: "sm", variant: "outline", startIcon: _jsx(X, {}), onPress: onAbort, children: abortLabel })) : (_jsx(Button, { size: "sm", variant: "outline", startIcon: _jsx(Upload, {}), disabled: disabled, onPress: pick, children: uploadLabel })), _jsx(Button, { size: "sm", variant: "outline", startIcon: _jsx(Trash2, {}), disabled: disabled || isUploading || !src, onPress: onRemove, children: removeLabel })] }), helperText || errorMessage ? (_jsxs(YStack, { id: id, gap: "$1", children: [helperText ? (_jsx(SizableText, { size: "$1", color: "$hint", children: helperText })) : null, errorMessage ? (_jsx(SizableText, { size: "$1", color: "$bad", role: "alert", children: errorMessage })) : null] })) : null] }), isWeb ? _jsx("input", { ref: file, type: "file", accept: accept, capture: capture, name: name, required: required, disabled: disabled, "aria-label": title, tabIndex: -1, style: { display: 'none' }, onChange: (e) => {
|
|
70
|
+
take(e.currentTarget.files?.[0]);
|
|
71
|
+
e.currentTarget.value = '';
|
|
72
|
+
} }) : null] }));
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=image-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-input.js","sourceRoot":"","sources":["../../../src/backends/gui/image-input.tsx"],"names":[],"mappings":"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"}
|