@hanzo/ui 8.0.27 → 8.0.28
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/dist/backends/gui/aspect-ratio.cjs +15 -0
- package/dist/backends/gui/aspect-ratio.d.ts +1 -0
- package/dist/backends/gui/aspect-ratio.d.ts.map +1 -0
- package/dist/backends/gui/aspect-ratio.js +13 -0
- package/dist/backends/gui/aspect-ratio.js.map +1 -0
- package/dist/backends/gui/avatar.cjs +20 -0
- package/dist/backends/gui/avatar.d.ts +1 -0
- package/dist/backends/gui/avatar.d.ts.map +1 -0
- package/dist/backends/gui/avatar.js +16 -0
- package/dist/backends/gui/avatar.js.map +1 -0
- package/dist/backends/gui/badge.cjs +80 -0
- package/dist/backends/gui/badge.d.ts +1 -0
- package/dist/backends/gui/badge.d.ts.map +1 -0
- package/dist/backends/gui/badge.js +76 -0
- package/dist/backends/gui/badge.js.map +1 -0
- package/dist/backends/gui/button.cjs +114 -0
- package/dist/backends/gui/button.d.ts +4 -24
- package/dist/backends/gui/button.d.ts.map +1 -0
- package/dist/backends/gui/button.js +111 -0
- package/dist/backends/gui/button.js.map +1 -0
- package/dist/backends/gui/card.cjs +49 -0
- package/dist/backends/gui/card.d.ts +1 -0
- package/dist/backends/gui/card.d.ts.map +1 -0
- package/dist/backends/gui/card.js +41 -0
- package/dist/backends/gui/card.js.map +1 -0
- package/dist/backends/gui/checkbox.cjs +16 -0
- package/dist/backends/gui/checkbox.d.ts +2 -1
- package/dist/backends/gui/checkbox.d.ts.map +1 -0
- package/dist/backends/gui/checkbox.js +14 -0
- package/dist/backends/gui/checkbox.js.map +1 -0
- package/dist/backends/gui/collapsible.cjs +15 -0
- package/dist/backends/gui/collapsible.d.ts +1 -0
- package/dist/backends/gui/collapsible.d.ts.map +1 -0
- package/dist/backends/gui/collapsible.js +11 -0
- package/dist/backends/gui/collapsible.js.map +1 -0
- package/dist/backends/gui/command.cjs +198 -0
- package/dist/backends/gui/command.d.ts +2 -1
- package/dist/backends/gui/command.d.ts.map +1 -0
- package/dist/backends/gui/command.js +188 -0
- package/dist/backends/gui/command.js.map +1 -0
- package/dist/backends/gui/command.logic.cjs +49 -0
- package/dist/backends/gui/command.logic.d.ts +1 -0
- package/dist/backends/gui/command.logic.d.ts.map +1 -0
- package/dist/backends/gui/command.logic.js +45 -0
- package/dist/backends/gui/command.logic.js.map +1 -0
- package/dist/backends/gui/dialog.cjs +41 -0
- package/dist/backends/gui/dialog.d.ts +1 -0
- package/dist/backends/gui/dialog.d.ts.map +1 -0
- package/dist/backends/gui/dialog.js +30 -0
- package/dist/backends/gui/dialog.js.map +1 -0
- package/dist/backends/gui/dropdown-menu.cjs +168 -0
- package/dist/backends/gui/dropdown-menu.d.ts +7 -6
- package/dist/backends/gui/dropdown-menu.d.ts.map +1 -0
- package/dist/backends/gui/dropdown-menu.js +119 -0
- package/dist/backends/gui/dropdown-menu.js.map +1 -0
- package/dist/backends/gui/gesture.cjs +74 -0
- package/dist/backends/gui/gesture.d.ts +68 -0
- package/dist/backends/gui/gesture.d.ts.map +1 -0
- package/dist/backends/gui/gesture.js +69 -0
- package/dist/backends/gui/gesture.js.map +1 -0
- package/dist/backends/gui/index.cjs +134 -0
- package/dist/backends/gui/index.d.ts +25 -24
- package/dist/backends/gui/index.d.ts.map +1 -0
- package/dist/backends/gui/index.js +41 -0
- package/dist/backends/gui/index.js.map +1 -0
- package/dist/backends/gui/ink.cjs +14 -0
- package/dist/backends/gui/ink.d.ts +1 -0
- package/dist/backends/gui/ink.d.ts.map +1 -0
- package/dist/backends/gui/ink.js +11 -0
- package/dist/backends/gui/ink.js.map +1 -0
- package/dist/backends/gui/input.cjs +39 -0
- package/dist/backends/gui/input.d.ts +1 -0
- package/dist/backends/gui/input.d.ts.map +1 -0
- package/dist/backends/gui/input.js +37 -0
- package/dist/backends/gui/input.js.map +1 -0
- package/dist/backends/gui/label.cjs +10 -0
- package/dist/backends/gui/label.d.ts +1 -0
- package/dist/backends/gui/label.d.ts.map +1 -0
- package/dist/backends/gui/label.js +8 -0
- package/dist/backends/gui/label.js.map +1 -0
- package/dist/backends/gui/popover.cjs +39 -0
- package/dist/backends/gui/popover.d.ts +1 -0
- package/dist/backends/gui/popover.d.ts.map +1 -0
- package/dist/backends/gui/popover.js +33 -0
- package/dist/backends/gui/popover.js.map +1 -0
- package/dist/backends/gui/progress.cjs +10 -0
- package/dist/backends/gui/progress.d.ts +1 -0
- package/dist/backends/gui/progress.d.ts.map +1 -0
- package/dist/backends/gui/progress.js +8 -0
- package/dist/backends/gui/progress.js.map +1 -0
- package/dist/backends/gui/resizable.cjs +174 -0
- package/dist/backends/gui/resizable.d.ts +5 -3
- package/dist/backends/gui/resizable.d.ts.map +1 -0
- package/dist/backends/gui/resizable.js +168 -0
- package/dist/backends/gui/resizable.js.map +1 -0
- package/dist/backends/gui/resizable.logic.cjs +46 -0
- package/dist/backends/gui/resizable.logic.d.ts +1 -0
- package/dist/backends/gui/resizable.logic.d.ts.map +1 -0
- package/dist/backends/gui/resizable.logic.js +43 -0
- package/dist/backends/gui/resizable.logic.js.map +1 -0
- package/dist/backends/gui/scroll-area.cjs +126 -0
- package/dist/backends/gui/scroll-area.d.ts +1 -0
- package/dist/backends/gui/scroll-area.d.ts.map +1 -0
- package/dist/backends/gui/scroll-area.js +123 -0
- package/dist/backends/gui/scroll-area.js.map +1 -0
- package/dist/backends/gui/select.cjs +54 -0
- package/dist/backends/gui/select.d.ts +1 -0
- package/dist/backends/gui/select.d.ts.map +1 -0
- package/dist/backends/gui/select.js +43 -0
- package/dist/backends/gui/select.js.map +1 -0
- package/dist/backends/gui/separator.cjs +10 -0
- package/dist/backends/gui/separator.d.ts +1 -0
- package/dist/backends/gui/separator.d.ts.map +1 -0
- package/dist/backends/gui/separator.js +8 -0
- package/dist/backends/gui/separator.js.map +1 -0
- package/dist/backends/gui/slider.cjs +13 -0
- package/dist/backends/gui/slider.d.ts +2 -1
- package/dist/backends/gui/slider.d.ts.map +1 -0
- package/dist/backends/gui/slider.js +11 -0
- package/dist/backends/gui/slider.js.map +1 -0
- package/dist/backends/gui/slot.cjs +10 -0
- package/dist/backends/gui/slot.d.ts +1 -0
- package/dist/backends/gui/slot.d.ts.map +1 -0
- package/dist/backends/gui/slot.js +7 -0
- package/dist/backends/gui/slot.js.map +1 -0
- package/dist/backends/gui/switch.cjs +13 -0
- package/dist/backends/gui/switch.d.ts +2 -1
- package/dist/backends/gui/switch.d.ts.map +1 -0
- package/dist/backends/gui/switch.js +11 -0
- package/dist/backends/gui/switch.js.map +1 -0
- package/dist/backends/gui/tabs.cjs +19 -0
- package/dist/backends/gui/tabs.d.ts +1 -0
- package/dist/backends/gui/tabs.d.ts.map +1 -0
- package/dist/backends/gui/tabs.js +14 -0
- package/dist/backends/gui/tabs.js.map +1 -0
- package/dist/backends/gui/textarea.cjs +58 -0
- package/dist/backends/gui/textarea.d.ts +1 -0
- package/dist/backends/gui/textarea.d.ts.map +1 -0
- package/dist/backends/gui/textarea.js +23 -0
- package/dist/backends/gui/textarea.js.map +1 -0
- package/dist/backends/gui/toaster.cjs +13 -0
- package/dist/backends/gui/toaster.d.ts +1 -0
- package/dist/backends/gui/toaster.d.ts.map +1 -0
- package/dist/backends/gui/toaster.js +10 -0
- package/dist/backends/gui/toaster.js.map +1 -0
- package/dist/backends/gui/tooltip.cjs +22 -0
- package/dist/backends/gui/tooltip.d.ts +1 -0
- package/dist/backends/gui/tooltip.d.ts.map +1 -0
- package/dist/backends/gui/tooltip.js +17 -0
- package/dist/backends/gui/tooltip.js.map +1 -0
- package/dist/canvas.cjs +27 -15
- package/dist/canvas.d.ts +1 -0
- package/dist/canvas.d.ts.map +1 -0
- package/dist/canvas.js +10 -2
- package/dist/canvas.js.map +1 -1
- package/dist/cd/layout.cjs +143 -0
- package/dist/cd/layout.d.ts +1 -0
- package/dist/cd/layout.d.ts.map +1 -0
- package/dist/cd/layout.js +141 -0
- package/dist/cd/layout.js.map +1 -0
- package/dist/cd/status.cjs +132 -0
- package/dist/cd/status.d.ts +2 -1
- package/dist/cd/status.d.ts.map +1 -0
- package/dist/cd/status.js +120 -0
- package/dist/cd/status.js.map +1 -0
- package/dist/cd/time.cjs +60 -0
- package/dist/cd/time.d.ts +1 -0
- package/dist/cd/time.d.ts.map +1 -0
- package/dist/cd/time.js +56 -0
- package/dist/cd/time.js.map +1 -0
- package/dist/cd/types.cjs +19 -0
- package/dist/cd/types.d.ts +1 -0
- package/dist/cd/types.d.ts.map +1 -0
- package/dist/cd/types.js +19 -0
- package/dist/cd/types.js.map +1 -0
- package/dist/core/cn.cjs +15 -0
- package/dist/core/cn.d.ts +3 -1
- package/dist/core/cn.d.ts.map +1 -0
- package/dist/core/cn.js +13 -0
- package/dist/core/cn.js.map +1 -0
- package/dist/core/fonts.cjs +26 -0
- package/dist/core/fonts.d.ts +1 -0
- package/dist/core/fonts.d.ts.map +1 -0
- package/dist/core/fonts.js +24 -0
- package/dist/core/fonts.js.map +1 -0
- package/dist/core/index.cjs +31 -92
- package/dist/core/index.d.ts +4 -3
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +8 -13
- package/dist/core/index.js.map +1 -1
- package/dist/core/tokens.cjs +35 -77
- package/dist/core/tokens.d.ts +1 -0
- package/dist/core/tokens.d.ts.map +1 -0
- package/dist/core/tokens.js +15 -3
- package/dist/core/tokens.js.map +1 -1
- package/dist/dashboard.cjs +24 -15
- package/dist/dashboard.d.ts +1 -0
- package/dist/dashboard.d.ts.map +1 -0
- package/dist/dashboard.js +7 -2
- package/dist/dashboard.js.map +1 -1
- package/dist/data.cjs +28 -15
- package/dist/data.d.ts +1 -0
- package/dist/data.d.ts.map +1 -0
- package/dist/data.js +11 -2
- package/dist/data.js.map +1 -1
- package/dist/framework/CollectionBuilder.cjs +77 -0
- package/dist/framework/CollectionBuilder.d.ts +3 -2
- package/dist/framework/CollectionBuilder.d.ts.map +1 -0
- package/dist/framework/CollectionBuilder.js +75 -0
- package/dist/framework/CollectionBuilder.js.map +1 -0
- package/dist/framework/CollectionsBrowser.cjs +107 -0
- package/dist/framework/CollectionsBrowser.d.ts +3 -2
- package/dist/framework/CollectionsBrowser.d.ts.map +1 -0
- package/dist/framework/CollectionsBrowser.js +105 -0
- package/dist/framework/CollectionsBrowser.js.map +1 -0
- package/dist/framework/DocTypeDetail.cjs +187 -0
- package/dist/framework/DocTypeDetail.d.ts +2 -1
- package/dist/framework/DocTypeDetail.d.ts.map +1 -0
- package/dist/framework/DocTypeDetail.js +185 -0
- package/dist/framework/DocTypeDetail.js.map +1 -0
- package/dist/framework/DocTypeRecords.cjs +130 -0
- package/dist/framework/DocTypeRecords.d.ts +4 -3
- package/dist/framework/DocTypeRecords.d.ts.map +1 -0
- package/dist/framework/DocTypeRecords.js +128 -0
- package/dist/framework/DocTypeRecords.js.map +1 -0
- package/dist/framework/MediaGrid.cjs +134 -0
- package/dist/framework/MediaGrid.d.ts +4 -3
- package/dist/framework/MediaGrid.d.ts.map +1 -0
- package/dist/framework/MediaGrid.js +132 -0
- package/dist/framework/MediaGrid.js.map +1 -0
- package/dist/framework/RecordCards.cjs +47 -0
- package/dist/framework/RecordCards.d.ts +1 -0
- package/dist/framework/RecordCards.d.ts.map +1 -0
- package/dist/framework/RecordCards.js +45 -0
- package/dist/framework/RecordCards.js.map +1 -0
- package/dist/framework/builder-logic.cjs +169 -0
- package/dist/framework/builder-logic.d.ts +2 -1
- package/dist/framework/builder-logic.d.ts.map +1 -0
- package/dist/framework/builder-logic.js +156 -0
- package/dist/framework/builder-logic.js.map +1 -0
- package/dist/framework/client.cjs +95 -0
- package/dist/framework/client.d.ts +2 -1
- package/dist/framework/client.d.ts.map +1 -0
- package/dist/framework/client.js +91 -0
- package/dist/framework/client.js.map +1 -0
- package/dist/framework/core.cjs +36 -213
- package/dist/framework/core.d.ts +7 -6
- package/dist/framework/core.d.ts.map +1 -0
- package/dist/framework/core.js +20 -3
- package/dist/framework/core.js.map +1 -1
- package/dist/framework/data.cjs +41 -0
- package/dist/framework/data.d.ts +3 -2
- package/dist/framework/data.d.ts.map +1 -0
- package/dist/framework/data.js +38 -0
- package/dist/framework/data.js.map +1 -0
- package/dist/framework/fields.cjs +358 -0
- package/dist/framework/fields.d.ts +2 -1
- package/dist/framework/fields.d.ts.map +1 -0
- package/dist/framework/fields.js +335 -0
- package/dist/framework/fields.js.map +1 -0
- package/dist/framework/index.cjs +58 -1341
- package/dist/framework/index.d.ts +10 -9
- package/dist/framework/index.d.ts.map +1 -0
- package/dist/framework/index.js +35 -1119
- package/dist/framework/index.js.map +1 -1
- package/dist/framework/media.cjs +133 -0
- package/dist/framework/media.d.ts +2 -1
- package/dist/framework/media.d.ts.map +1 -0
- package/dist/framework/media.js +124 -0
- package/dist/framework/media.js.map +1 -0
- package/dist/framework/parts.cjs +60 -0
- package/dist/framework/parts.d.ts +1 -0
- package/dist/framework/parts.d.ts.map +1 -0
- package/dist/framework/parts.js +51 -0
- package/dist/framework/parts.js.map +1 -0
- package/dist/framework/responsive.cjs +62 -0
- package/dist/framework/responsive.d.ts +1 -0
- package/dist/framework/responsive.d.ts.map +1 -0
- package/dist/framework/responsive.js +58 -0
- package/dist/framework/responsive.js.map +1 -0
- package/dist/framework/types.cjs +20 -0
- package/dist/framework/types.d.ts +1 -0
- package/dist/framework/types.d.ts.map +1 -0
- package/dist/framework/types.js +18 -0
- package/dist/framework/types.js.map +1 -0
- package/dist/gitops.cjs +21 -15
- package/dist/gitops.d.ts +1 -0
- package/dist/gitops.d.ts.map +1 -0
- package/dist/gitops.js +4 -2
- package/dist/gitops.js.map +1 -1
- package/dist/gui-config.cjs +145 -113
- package/dist/gui-config.d.ts +1 -0
- package/dist/gui-config.d.ts.map +1 -0
- package/dist/gui-config.js +140 -105
- package/dist/gui-config.js.map +1 -1
- package/dist/index.cjs +41 -375
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -5
- package/dist/index.js.map +1 -1
- package/dist/models/ModelSelector.cjs +58 -0
- package/dist/models/ModelSelector.d.ts +10 -6
- package/dist/models/ModelSelector.d.ts.map +1 -0
- package/dist/models/ModelSelector.js +56 -0
- package/dist/models/ModelSelector.js.map +1 -0
- package/dist/models/catalog.cjs +191 -0
- package/dist/models/catalog.d.ts +1 -0
- package/dist/models/catalog.d.ts.map +1 -0
- package/dist/models/catalog.js +185 -0
- package/dist/models/catalog.js.map +1 -0
- package/dist/models/index.cjs +16 -225
- package/dist/models/index.d.ts +6 -5
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +7 -217
- package/dist/models/index.js.map +1 -1
- package/dist/models/types.cjs +8 -0
- package/dist/models/types.d.ts +1 -0
- package/dist/models/types.d.ts.map +1 -0
- package/dist/models/types.js +8 -0
- package/dist/models/types.js.map +1 -0
- package/dist/oss/blueprint.cjs +96 -0
- package/dist/oss/blueprint.d.ts +1 -0
- package/dist/oss/blueprint.d.ts.map +1 -0
- package/dist/oss/blueprint.js +94 -0
- package/dist/oss/blueprint.js.map +1 -0
- package/dist/oss/catalog.cjs +174 -0
- package/dist/oss/catalog.d.ts +1 -0
- package/dist/oss/catalog.d.ts.map +1 -0
- package/dist/oss/catalog.js +165 -0
- package/dist/oss/catalog.js.map +1 -0
- package/dist/oss.cjs +27 -189
- package/dist/oss.d.ts +3 -2
- package/dist/oss.d.ts.map +1 -0
- package/dist/oss.js +12 -179
- package/dist/oss.js.map +1 -1
- package/dist/primitives/AspectRatio.cjs +8 -14
- package/dist/primitives/AspectRatio.d.ts +2 -1
- package/dist/primitives/AspectRatio.d.ts.map +1 -0
- package/dist/primitives/AspectRatio.js +4 -4
- package/dist/primitives/AspectRatio.js.map +1 -1
- package/dist/primitives/Avatar.cjs +8 -14
- package/dist/primitives/Avatar.d.ts +2 -1
- package/dist/primitives/Avatar.d.ts.map +1 -0
- package/dist/primitives/Avatar.js +4 -4
- package/dist/primitives/Avatar.js.map +1 -1
- package/dist/primitives/AvatarFallback.cjs +8 -14
- package/dist/primitives/AvatarFallback.d.ts +2 -1
- package/dist/primitives/AvatarFallback.d.ts.map +1 -0
- package/dist/primitives/AvatarFallback.js +4 -4
- package/dist/primitives/AvatarFallback.js.map +1 -1
- package/dist/primitives/AvatarImage.cjs +8 -14
- package/dist/primitives/AvatarImage.d.ts +2 -1
- package/dist/primitives/AvatarImage.d.ts.map +1 -0
- package/dist/primitives/AvatarImage.js +4 -4
- package/dist/primitives/AvatarImage.js.map +1 -1
- package/dist/primitives/Badge.cjs +8 -14
- package/dist/primitives/Badge.d.ts +2 -1
- package/dist/primitives/Badge.d.ts.map +1 -0
- package/dist/primitives/Badge.js +4 -4
- package/dist/primitives/Badge.js.map +1 -1
- package/dist/primitives/Button.cjs +8 -14
- package/dist/primitives/Button.d.ts +2 -1
- package/dist/primitives/Button.d.ts.map +1 -0
- package/dist/primitives/Button.js +4 -4
- package/dist/primitives/Button.js.map +1 -1
- package/dist/primitives/Card.cjs +8 -14
- package/dist/primitives/Card.d.ts +2 -1
- package/dist/primitives/Card.d.ts.map +1 -0
- package/dist/primitives/Card.js +4 -4
- package/dist/primitives/Card.js.map +1 -1
- package/dist/primitives/CardAction.cjs +8 -14
- package/dist/primitives/CardAction.d.ts +2 -1
- package/dist/primitives/CardAction.d.ts.map +1 -0
- package/dist/primitives/CardAction.js +4 -4
- package/dist/primitives/CardAction.js.map +1 -1
- package/dist/primitives/CardContent.cjs +8 -14
- package/dist/primitives/CardContent.d.ts +2 -1
- package/dist/primitives/CardContent.d.ts.map +1 -0
- package/dist/primitives/CardContent.js +4 -4
- package/dist/primitives/CardContent.js.map +1 -1
- package/dist/primitives/CardDescription.cjs +8 -14
- package/dist/primitives/CardDescription.d.ts +2 -1
- package/dist/primitives/CardDescription.d.ts.map +1 -0
- package/dist/primitives/CardDescription.js +4 -4
- package/dist/primitives/CardDescription.js.map +1 -1
- package/dist/primitives/CardFooter.cjs +8 -14
- package/dist/primitives/CardFooter.d.ts +2 -1
- package/dist/primitives/CardFooter.d.ts.map +1 -0
- package/dist/primitives/CardFooter.js +4 -4
- package/dist/primitives/CardFooter.js.map +1 -1
- package/dist/primitives/CardHeader.cjs +8 -14
- package/dist/primitives/CardHeader.d.ts +2 -1
- package/dist/primitives/CardHeader.d.ts.map +1 -0
- package/dist/primitives/CardHeader.js +4 -4
- package/dist/primitives/CardHeader.js.map +1 -1
- package/dist/primitives/CardTitle.cjs +8 -14
- package/dist/primitives/CardTitle.d.ts +2 -1
- package/dist/primitives/CardTitle.d.ts.map +1 -0
- package/dist/primitives/CardTitle.js +4 -4
- package/dist/primitives/CardTitle.js.map +1 -1
- package/dist/primitives/Checkbox.cjs +8 -14
- package/dist/primitives/Checkbox.d.ts +2 -1
- package/dist/primitives/Checkbox.d.ts.map +1 -0
- package/dist/primitives/Checkbox.js +4 -4
- package/dist/primitives/Checkbox.js.map +1 -1
- package/dist/primitives/Collapsible.cjs +8 -14
- package/dist/primitives/Collapsible.d.ts +2 -1
- package/dist/primitives/Collapsible.d.ts.map +1 -0
- package/dist/primitives/Collapsible.js +4 -4
- package/dist/primitives/Collapsible.js.map +1 -1
- package/dist/primitives/CollapsibleContent.cjs +8 -14
- package/dist/primitives/CollapsibleContent.d.ts +2 -1
- package/dist/primitives/CollapsibleContent.d.ts.map +1 -0
- package/dist/primitives/CollapsibleContent.js +4 -4
- package/dist/primitives/CollapsibleContent.js.map +1 -1
- package/dist/primitives/CollapsibleTrigger.cjs +8 -14
- package/dist/primitives/CollapsibleTrigger.d.ts +2 -1
- package/dist/primitives/CollapsibleTrigger.d.ts.map +1 -0
- package/dist/primitives/CollapsibleTrigger.js +4 -4
- package/dist/primitives/CollapsibleTrigger.js.map +1 -1
- package/dist/primitives/Command.cjs +8 -14
- package/dist/primitives/Command.d.ts +2 -1
- package/dist/primitives/Command.d.ts.map +1 -0
- package/dist/primitives/Command.js +4 -4
- package/dist/primitives/Command.js.map +1 -1
- package/dist/primitives/CommandDialog.cjs +8 -14
- package/dist/primitives/CommandDialog.d.ts +2 -1
- package/dist/primitives/CommandDialog.d.ts.map +1 -0
- package/dist/primitives/CommandDialog.js +4 -4
- package/dist/primitives/CommandDialog.js.map +1 -1
- package/dist/primitives/CommandEmpty.cjs +8 -14
- package/dist/primitives/CommandEmpty.d.ts +2 -1
- package/dist/primitives/CommandEmpty.d.ts.map +1 -0
- package/dist/primitives/CommandEmpty.js +4 -4
- package/dist/primitives/CommandEmpty.js.map +1 -1
- package/dist/primitives/CommandGroup.cjs +8 -14
- package/dist/primitives/CommandGroup.d.ts +2 -1
- package/dist/primitives/CommandGroup.d.ts.map +1 -0
- package/dist/primitives/CommandGroup.js +4 -4
- package/dist/primitives/CommandGroup.js.map +1 -1
- package/dist/primitives/CommandInput.cjs +8 -14
- package/dist/primitives/CommandInput.d.ts +2 -1
- package/dist/primitives/CommandInput.d.ts.map +1 -0
- package/dist/primitives/CommandInput.js +4 -4
- package/dist/primitives/CommandInput.js.map +1 -1
- package/dist/primitives/CommandItem.cjs +8 -14
- package/dist/primitives/CommandItem.d.ts +2 -1
- package/dist/primitives/CommandItem.d.ts.map +1 -0
- package/dist/primitives/CommandItem.js +4 -4
- package/dist/primitives/CommandItem.js.map +1 -1
- package/dist/primitives/CommandList.cjs +8 -14
- package/dist/primitives/CommandList.d.ts +2 -1
- package/dist/primitives/CommandList.d.ts.map +1 -0
- package/dist/primitives/CommandList.js +4 -4
- package/dist/primitives/CommandList.js.map +1 -1
- package/dist/primitives/CommandSeparator.cjs +8 -14
- package/dist/primitives/CommandSeparator.d.ts +2 -1
- package/dist/primitives/CommandSeparator.d.ts.map +1 -0
- package/dist/primitives/CommandSeparator.js +4 -4
- package/dist/primitives/CommandSeparator.js.map +1 -1
- package/dist/primitives/CommandShortcut.cjs +8 -14
- package/dist/primitives/CommandShortcut.d.ts +2 -1
- package/dist/primitives/CommandShortcut.d.ts.map +1 -0
- package/dist/primitives/CommandShortcut.js +4 -4
- package/dist/primitives/CommandShortcut.js.map +1 -1
- package/dist/primitives/Dialog.cjs +8 -14
- package/dist/primitives/Dialog.d.ts +2 -1
- package/dist/primitives/Dialog.d.ts.map +1 -0
- package/dist/primitives/Dialog.js +4 -4
- package/dist/primitives/Dialog.js.map +1 -1
- package/dist/primitives/DialogClose.cjs +8 -14
- package/dist/primitives/DialogClose.d.ts +2 -1
- package/dist/primitives/DialogClose.d.ts.map +1 -0
- package/dist/primitives/DialogClose.js +4 -4
- package/dist/primitives/DialogClose.js.map +1 -1
- package/dist/primitives/DialogContent.cjs +8 -14
- package/dist/primitives/DialogContent.d.ts +2 -1
- package/dist/primitives/DialogContent.d.ts.map +1 -0
- package/dist/primitives/DialogContent.js +4 -4
- package/dist/primitives/DialogContent.js.map +1 -1
- package/dist/primitives/DialogDescription.cjs +8 -14
- package/dist/primitives/DialogDescription.d.ts +2 -1
- package/dist/primitives/DialogDescription.d.ts.map +1 -0
- package/dist/primitives/DialogDescription.js +4 -4
- package/dist/primitives/DialogDescription.js.map +1 -1
- package/dist/primitives/DialogFooter.cjs +8 -14
- package/dist/primitives/DialogFooter.d.ts +2 -1
- package/dist/primitives/DialogFooter.d.ts.map +1 -0
- package/dist/primitives/DialogFooter.js +4 -4
- package/dist/primitives/DialogFooter.js.map +1 -1
- package/dist/primitives/DialogHeader.cjs +8 -14
- package/dist/primitives/DialogHeader.d.ts +2 -1
- package/dist/primitives/DialogHeader.d.ts.map +1 -0
- package/dist/primitives/DialogHeader.js +4 -4
- package/dist/primitives/DialogHeader.js.map +1 -1
- package/dist/primitives/DialogOverlay.cjs +8 -14
- package/dist/primitives/DialogOverlay.d.ts +2 -1
- package/dist/primitives/DialogOverlay.d.ts.map +1 -0
- package/dist/primitives/DialogOverlay.js +4 -4
- package/dist/primitives/DialogOverlay.js.map +1 -1
- package/dist/primitives/DialogPortal.cjs +8 -14
- package/dist/primitives/DialogPortal.d.ts +2 -1
- package/dist/primitives/DialogPortal.d.ts.map +1 -0
- package/dist/primitives/DialogPortal.js +4 -4
- package/dist/primitives/DialogPortal.js.map +1 -1
- package/dist/primitives/DialogTitle.cjs +8 -14
- package/dist/primitives/DialogTitle.d.ts +2 -1
- package/dist/primitives/DialogTitle.d.ts.map +1 -0
- package/dist/primitives/DialogTitle.js +4 -4
- package/dist/primitives/DialogTitle.js.map +1 -1
- package/dist/primitives/DialogTrigger.cjs +8 -14
- package/dist/primitives/DialogTrigger.d.ts +2 -1
- package/dist/primitives/DialogTrigger.d.ts.map +1 -0
- package/dist/primitives/DialogTrigger.js +4 -4
- package/dist/primitives/DialogTrigger.js.map +1 -1
- package/dist/primitives/DropdownMenu.cjs +8 -14
- package/dist/primitives/DropdownMenu.d.ts +2 -1
- package/dist/primitives/DropdownMenu.d.ts.map +1 -0
- package/dist/primitives/DropdownMenu.js +4 -4
- package/dist/primitives/DropdownMenu.js.map +1 -1
- package/dist/primitives/DropdownMenuCheckboxItem.cjs +8 -14
- package/dist/primitives/DropdownMenuCheckboxItem.d.ts +2 -1
- package/dist/primitives/DropdownMenuCheckboxItem.d.ts.map +1 -0
- package/dist/primitives/DropdownMenuCheckboxItem.js +4 -4
- package/dist/primitives/DropdownMenuCheckboxItem.js.map +1 -1
- package/dist/primitives/DropdownMenuContent.cjs +8 -14
- package/dist/primitives/DropdownMenuContent.d.ts +2 -1
- package/dist/primitives/DropdownMenuContent.d.ts.map +1 -0
- package/dist/primitives/DropdownMenuContent.js +4 -4
- package/dist/primitives/DropdownMenuContent.js.map +1 -1
- package/dist/primitives/DropdownMenuGroup.cjs +8 -14
- package/dist/primitives/DropdownMenuGroup.d.ts +2 -1
- package/dist/primitives/DropdownMenuGroup.d.ts.map +1 -0
- package/dist/primitives/DropdownMenuGroup.js +4 -4
- package/dist/primitives/DropdownMenuGroup.js.map +1 -1
- package/dist/primitives/DropdownMenuItem.cjs +8 -14
- package/dist/primitives/DropdownMenuItem.d.ts +2 -1
- package/dist/primitives/DropdownMenuItem.d.ts.map +1 -0
- package/dist/primitives/DropdownMenuItem.js +4 -4
- package/dist/primitives/DropdownMenuItem.js.map +1 -1
- package/dist/primitives/DropdownMenuLabel.cjs +8 -14
- package/dist/primitives/DropdownMenuLabel.d.ts +2 -1
- package/dist/primitives/DropdownMenuLabel.d.ts.map +1 -0
- package/dist/primitives/DropdownMenuLabel.js +4 -4
- package/dist/primitives/DropdownMenuLabel.js.map +1 -1
- package/dist/primitives/DropdownMenuPortal.cjs +8 -14
- package/dist/primitives/DropdownMenuPortal.d.ts +2 -1
- package/dist/primitives/DropdownMenuPortal.d.ts.map +1 -0
- package/dist/primitives/DropdownMenuPortal.js +4 -4
- package/dist/primitives/DropdownMenuPortal.js.map +1 -1
- package/dist/primitives/DropdownMenuRadioGroup.cjs +8 -14
- package/dist/primitives/DropdownMenuRadioGroup.d.ts +2 -1
- package/dist/primitives/DropdownMenuRadioGroup.d.ts.map +1 -0
- package/dist/primitives/DropdownMenuRadioGroup.js +4 -4
- package/dist/primitives/DropdownMenuRadioGroup.js.map +1 -1
- package/dist/primitives/DropdownMenuRadioItem.cjs +8 -14
- package/dist/primitives/DropdownMenuRadioItem.d.ts +2 -1
- package/dist/primitives/DropdownMenuRadioItem.d.ts.map +1 -0
- package/dist/primitives/DropdownMenuRadioItem.js +4 -4
- package/dist/primitives/DropdownMenuRadioItem.js.map +1 -1
- package/dist/primitives/DropdownMenuSeparator.cjs +8 -14
- package/dist/primitives/DropdownMenuSeparator.d.ts +2 -1
- package/dist/primitives/DropdownMenuSeparator.d.ts.map +1 -0
- package/dist/primitives/DropdownMenuSeparator.js +4 -4
- package/dist/primitives/DropdownMenuSeparator.js.map +1 -1
- package/dist/primitives/DropdownMenuShortcut.cjs +8 -14
- package/dist/primitives/DropdownMenuShortcut.d.ts +2 -1
- package/dist/primitives/DropdownMenuShortcut.d.ts.map +1 -0
- package/dist/primitives/DropdownMenuShortcut.js +4 -4
- package/dist/primitives/DropdownMenuShortcut.js.map +1 -1
- package/dist/primitives/DropdownMenuSub.cjs +8 -14
- package/dist/primitives/DropdownMenuSub.d.ts +2 -1
- package/dist/primitives/DropdownMenuSub.d.ts.map +1 -0
- package/dist/primitives/DropdownMenuSub.js +4 -4
- package/dist/primitives/DropdownMenuSub.js.map +1 -1
- package/dist/primitives/DropdownMenuSubContent.cjs +8 -14
- package/dist/primitives/DropdownMenuSubContent.d.ts +2 -1
- package/dist/primitives/DropdownMenuSubContent.d.ts.map +1 -0
- package/dist/primitives/DropdownMenuSubContent.js +4 -4
- package/dist/primitives/DropdownMenuSubContent.js.map +1 -1
- package/dist/primitives/DropdownMenuSubTrigger.cjs +8 -14
- package/dist/primitives/DropdownMenuSubTrigger.d.ts +2 -1
- package/dist/primitives/DropdownMenuSubTrigger.d.ts.map +1 -0
- package/dist/primitives/DropdownMenuSubTrigger.js +4 -4
- package/dist/primitives/DropdownMenuSubTrigger.js.map +1 -1
- package/dist/primitives/DropdownMenuTrigger.cjs +8 -14
- package/dist/primitives/DropdownMenuTrigger.d.ts +2 -1
- package/dist/primitives/DropdownMenuTrigger.d.ts.map +1 -0
- package/dist/primitives/DropdownMenuTrigger.js +4 -4
- package/dist/primitives/DropdownMenuTrigger.js.map +1 -1
- package/dist/primitives/Input.cjs +8 -14
- package/dist/primitives/Input.d.ts +2 -1
- package/dist/primitives/Input.d.ts.map +1 -0
- package/dist/primitives/Input.js +4 -4
- package/dist/primitives/Input.js.map +1 -1
- package/dist/primitives/Label.cjs +8 -14
- package/dist/primitives/Label.d.ts +2 -1
- package/dist/primitives/Label.d.ts.map +1 -0
- package/dist/primitives/Label.js +4 -4
- package/dist/primitives/Label.js.map +1 -1
- package/dist/primitives/Popover.cjs +8 -14
- package/dist/primitives/Popover.d.ts +2 -1
- package/dist/primitives/Popover.d.ts.map +1 -0
- package/dist/primitives/Popover.js +4 -4
- package/dist/primitives/Popover.js.map +1 -1
- package/dist/primitives/PopoverAnchor.cjs +8 -14
- package/dist/primitives/PopoverAnchor.d.ts +2 -1
- package/dist/primitives/PopoverAnchor.d.ts.map +1 -0
- package/dist/primitives/PopoverAnchor.js +4 -4
- package/dist/primitives/PopoverAnchor.js.map +1 -1
- package/dist/primitives/PopoverClose.cjs +8 -14
- package/dist/primitives/PopoverClose.d.ts +2 -1
- package/dist/primitives/PopoverClose.d.ts.map +1 -0
- package/dist/primitives/PopoverClose.js +4 -4
- package/dist/primitives/PopoverClose.js.map +1 -1
- package/dist/primitives/PopoverContent.cjs +8 -14
- package/dist/primitives/PopoverContent.d.ts +2 -1
- package/dist/primitives/PopoverContent.d.ts.map +1 -0
- package/dist/primitives/PopoverContent.js +4 -4
- package/dist/primitives/PopoverContent.js.map +1 -1
- package/dist/primitives/PopoverTrigger.cjs +8 -14
- package/dist/primitives/PopoverTrigger.d.ts +2 -1
- package/dist/primitives/PopoverTrigger.d.ts.map +1 -0
- package/dist/primitives/PopoverTrigger.js +4 -4
- package/dist/primitives/PopoverTrigger.js.map +1 -1
- package/dist/primitives/Progress.cjs +8 -14
- package/dist/primitives/Progress.d.ts +2 -1
- package/dist/primitives/Progress.d.ts.map +1 -0
- package/dist/primitives/Progress.js +4 -4
- package/dist/primitives/Progress.js.map +1 -1
- package/dist/primitives/ResizableHandle.cjs +8 -14
- package/dist/primitives/ResizableHandle.d.ts +2 -1
- package/dist/primitives/ResizableHandle.d.ts.map +1 -0
- package/dist/primitives/ResizableHandle.js +4 -4
- package/dist/primitives/ResizableHandle.js.map +1 -1
- package/dist/primitives/ResizablePanel.cjs +8 -14
- package/dist/primitives/ResizablePanel.d.ts +2 -1
- package/dist/primitives/ResizablePanel.d.ts.map +1 -0
- package/dist/primitives/ResizablePanel.js +4 -4
- package/dist/primitives/ResizablePanel.js.map +1 -1
- package/dist/primitives/ResizablePanelGroup.cjs +8 -14
- package/dist/primitives/ResizablePanelGroup.d.ts +2 -1
- package/dist/primitives/ResizablePanelGroup.d.ts.map +1 -0
- package/dist/primitives/ResizablePanelGroup.js +4 -4
- package/dist/primitives/ResizablePanelGroup.js.map +1 -1
- package/dist/primitives/ScrollArea.cjs +8 -14
- package/dist/primitives/ScrollArea.d.ts +2 -1
- package/dist/primitives/ScrollArea.d.ts.map +1 -0
- package/dist/primitives/ScrollArea.js +4 -4
- package/dist/primitives/ScrollArea.js.map +1 -1
- package/dist/primitives/ScrollBar.cjs +8 -14
- package/dist/primitives/ScrollBar.d.ts +2 -1
- package/dist/primitives/ScrollBar.d.ts.map +1 -0
- package/dist/primitives/ScrollBar.js +4 -4
- package/dist/primitives/ScrollBar.js.map +1 -1
- package/dist/primitives/Select.cjs +8 -14
- package/dist/primitives/Select.d.ts +2 -1
- package/dist/primitives/Select.d.ts.map +1 -0
- package/dist/primitives/Select.js +4 -4
- package/dist/primitives/Select.js.map +1 -1
- package/dist/primitives/SelectContent.cjs +8 -14
- package/dist/primitives/SelectContent.d.ts +2 -1
- package/dist/primitives/SelectContent.d.ts.map +1 -0
- package/dist/primitives/SelectContent.js +4 -4
- package/dist/primitives/SelectContent.js.map +1 -1
- package/dist/primitives/SelectGroup.cjs +8 -14
- package/dist/primitives/SelectGroup.d.ts +2 -1
- package/dist/primitives/SelectGroup.d.ts.map +1 -0
- package/dist/primitives/SelectGroup.js +4 -4
- package/dist/primitives/SelectGroup.js.map +1 -1
- package/dist/primitives/SelectItem.cjs +8 -14
- package/dist/primitives/SelectItem.d.ts +2 -1
- package/dist/primitives/SelectItem.d.ts.map +1 -0
- package/dist/primitives/SelectItem.js +4 -4
- package/dist/primitives/SelectItem.js.map +1 -1
- package/dist/primitives/SelectLabel.cjs +8 -14
- package/dist/primitives/SelectLabel.d.ts +2 -1
- package/dist/primitives/SelectLabel.d.ts.map +1 -0
- package/dist/primitives/SelectLabel.js +4 -4
- package/dist/primitives/SelectLabel.js.map +1 -1
- package/dist/primitives/SelectScrollDownButton.cjs +8 -14
- package/dist/primitives/SelectScrollDownButton.d.ts +2 -1
- package/dist/primitives/SelectScrollDownButton.d.ts.map +1 -0
- package/dist/primitives/SelectScrollDownButton.js +4 -4
- package/dist/primitives/SelectScrollDownButton.js.map +1 -1
- package/dist/primitives/SelectScrollUpButton.cjs +8 -14
- package/dist/primitives/SelectScrollUpButton.d.ts +2 -1
- package/dist/primitives/SelectScrollUpButton.d.ts.map +1 -0
- package/dist/primitives/SelectScrollUpButton.js +4 -4
- package/dist/primitives/SelectScrollUpButton.js.map +1 -1
- package/dist/primitives/SelectSeparator.cjs +8 -14
- package/dist/primitives/SelectSeparator.d.ts +2 -1
- package/dist/primitives/SelectSeparator.d.ts.map +1 -0
- package/dist/primitives/SelectSeparator.js +4 -4
- package/dist/primitives/SelectSeparator.js.map +1 -1
- package/dist/primitives/SelectTrigger.cjs +8 -14
- package/dist/primitives/SelectTrigger.d.ts +2 -1
- package/dist/primitives/SelectTrigger.d.ts.map +1 -0
- package/dist/primitives/SelectTrigger.js +4 -4
- package/dist/primitives/SelectTrigger.js.map +1 -1
- package/dist/primitives/SelectValue.cjs +8 -14
- package/dist/primitives/SelectValue.d.ts +2 -1
- package/dist/primitives/SelectValue.d.ts.map +1 -0
- package/dist/primitives/SelectValue.js +4 -4
- package/dist/primitives/SelectValue.js.map +1 -1
- package/dist/primitives/Separator.cjs +8 -14
- package/dist/primitives/Separator.d.ts +2 -1
- package/dist/primitives/Separator.d.ts.map +1 -0
- package/dist/primitives/Separator.js +4 -4
- package/dist/primitives/Separator.js.map +1 -1
- package/dist/primitives/Slider.cjs +8 -14
- package/dist/primitives/Slider.d.ts +2 -1
- package/dist/primitives/Slider.d.ts.map +1 -0
- package/dist/primitives/Slider.js +4 -4
- package/dist/primitives/Slider.js.map +1 -1
- package/dist/primitives/Switch.cjs +8 -14
- package/dist/primitives/Switch.d.ts +2 -1
- package/dist/primitives/Switch.d.ts.map +1 -0
- package/dist/primitives/Switch.js +4 -4
- package/dist/primitives/Switch.js.map +1 -1
- package/dist/primitives/Tabs.cjs +8 -14
- package/dist/primitives/Tabs.d.ts +2 -1
- package/dist/primitives/Tabs.d.ts.map +1 -0
- package/dist/primitives/Tabs.js +4 -4
- package/dist/primitives/Tabs.js.map +1 -1
- package/dist/primitives/TabsContent.cjs +8 -14
- package/dist/primitives/TabsContent.d.ts +2 -1
- package/dist/primitives/TabsContent.d.ts.map +1 -0
- package/dist/primitives/TabsContent.js +4 -4
- package/dist/primitives/TabsContent.js.map +1 -1
- package/dist/primitives/TabsList.cjs +8 -14
- package/dist/primitives/TabsList.d.ts +2 -1
- package/dist/primitives/TabsList.d.ts.map +1 -0
- package/dist/primitives/TabsList.js +4 -4
- package/dist/primitives/TabsList.js.map +1 -1
- package/dist/primitives/TabsTrigger.cjs +8 -14
- package/dist/primitives/TabsTrigger.d.ts +2 -1
- package/dist/primitives/TabsTrigger.d.ts.map +1 -0
- package/dist/primitives/TabsTrigger.js +4 -4
- package/dist/primitives/TabsTrigger.js.map +1 -1
- package/dist/primitives/Textarea.cjs +8 -14
- package/dist/primitives/Textarea.d.ts +2 -1
- package/dist/primitives/Textarea.d.ts.map +1 -0
- package/dist/primitives/Textarea.js +4 -4
- package/dist/primitives/Textarea.js.map +1 -1
- package/dist/primitives/Toaster.cjs +8 -14
- package/dist/primitives/Toaster.d.ts +2 -1
- package/dist/primitives/Toaster.d.ts.map +1 -0
- package/dist/primitives/Toaster.js +4 -4
- package/dist/primitives/Toaster.js.map +1 -1
- package/dist/primitives/Tooltip.cjs +8 -14
- package/dist/primitives/Tooltip.d.ts +2 -1
- package/dist/primitives/Tooltip.d.ts.map +1 -0
- package/dist/primitives/Tooltip.js +4 -4
- package/dist/primitives/Tooltip.js.map +1 -1
- package/dist/primitives/TooltipContent.cjs +8 -14
- package/dist/primitives/TooltipContent.d.ts +2 -1
- package/dist/primitives/TooltipContent.d.ts.map +1 -0
- package/dist/primitives/TooltipContent.js +4 -4
- package/dist/primitives/TooltipContent.js.map +1 -1
- package/dist/primitives/TooltipProvider.cjs +8 -14
- package/dist/primitives/TooltipProvider.d.ts +2 -1
- package/dist/primitives/TooltipProvider.d.ts.map +1 -0
- package/dist/primitives/TooltipProvider.js +4 -4
- package/dist/primitives/TooltipProvider.js.map +1 -1
- package/dist/primitives/TooltipTrigger.cjs +8 -14
- package/dist/primitives/TooltipTrigger.d.ts +2 -1
- package/dist/primitives/TooltipTrigger.d.ts.map +1 -0
- package/dist/primitives/TooltipTrigger.js +4 -4
- package/dist/primitives/TooltipTrigger.js.map +1 -1
- package/dist/primitives/badgeVariants.cjs +8 -14
- package/dist/primitives/badgeVariants.d.ts +2 -1
- package/dist/primitives/badgeVariants.d.ts.map +1 -0
- package/dist/primitives/badgeVariants.js +4 -4
- package/dist/primitives/badgeVariants.js.map +1 -1
- package/dist/primitives/bases/data/index.cjs +28 -15
- package/dist/primitives/bases/data/index.d.ts +1 -0
- package/dist/primitives/bases/data/index.d.ts.map +1 -0
- package/dist/primitives/bases/data/index.js +11 -2
- package/dist/primitives/bases/data/index.js.map +1 -1
- package/dist/primitives/buttonVariants.cjs +8 -14
- package/dist/primitives/buttonVariants.d.ts +2 -1
- package/dist/primitives/buttonVariants.d.ts.map +1 -0
- package/dist/primitives/buttonVariants.js +4 -4
- package/dist/primitives/buttonVariants.js.map +1 -1
- package/dist/primitives/index.cjs +20 -370
- package/dist/primitives/index.d.ts +2 -1
- package/dist/primitives/index.d.ts.map +1 -0
- package/dist/primitives/index.js +4 -4
- package/dist/primitives/index.js.map +1 -1
- package/dist/primitives/toast.cjs +8 -14
- package/dist/primitives/toast.d.ts +2 -1
- package/dist/primitives/toast.d.ts.map +1 -0
- package/dist/primitives/toast.js +4 -4
- package/dist/primitives/toast.js.map +1 -1
- package/dist/product/AnimatedLogo.cjs +102 -0
- package/dist/product/AnimatedLogo.d.ts +2 -1
- package/dist/product/AnimatedLogo.d.ts.map +1 -0
- package/dist/product/AnimatedLogo.js +100 -0
- package/dist/product/AnimatedLogo.js.map +1 -0
- package/dist/product/AppHeader.cjs +55 -0
- package/dist/product/AppHeader.d.ts +2 -1
- package/dist/product/AppHeader.d.ts.map +1 -0
- package/dist/product/AppHeader.js +53 -0
- package/dist/product/AppHeader.js.map +1 -0
- package/dist/product/BackendState.cjs +80 -0
- package/dist/product/BackendState.d.ts +1 -0
- package/dist/product/BackendState.d.ts.map +1 -0
- package/dist/product/BackendState.js +76 -0
- package/dist/product/BackendState.js.map +1 -0
- package/dist/product/BrandMark.cjs +19 -0
- package/dist/product/BrandMark.d.ts +1 -0
- package/dist/product/BrandMark.d.ts.map +1 -0
- package/dist/product/BrandMark.js +17 -0
- package/dist/product/BrandMark.js.map +1 -0
- package/dist/product/Charts.cjs +243 -0
- package/dist/product/Charts.d.ts +1 -0
- package/dist/product/Charts.d.ts.map +1 -0
- package/dist/product/Charts.js +235 -0
- package/dist/product/Charts.js.map +1 -0
- package/dist/product/ComboBox.cjs +44 -0
- package/dist/product/ComboBox.d.ts +3 -2
- package/dist/product/ComboBox.d.ts.map +1 -0
- package/dist/product/ComboBox.js +42 -0
- package/dist/product/ComboBox.js.map +1 -0
- package/dist/product/CommerceResource.cjs +39 -0
- package/dist/product/CommerceResource.d.ts +2 -1
- package/dist/product/CommerceResource.d.ts.map +1 -0
- package/dist/product/CommerceResource.js +37 -0
- package/dist/product/CommerceResource.js.map +1 -0
- package/dist/product/ConfirmDelete.cjs +42 -0
- package/dist/product/ConfirmDelete.d.ts +1 -0
- package/dist/product/ConfirmDelete.d.ts.map +1 -0
- package/dist/product/ConfirmDelete.js +40 -0
- package/dist/product/ConfirmDelete.js.map +1 -0
- package/dist/product/DataTable.cjs +58 -0
- package/dist/product/DataTable.d.ts +1 -0
- package/dist/product/DataTable.d.ts.map +1 -0
- package/dist/product/DataTable.js +56 -0
- package/dist/product/DataTable.js.map +1 -0
- package/dist/product/Donut.cjs +25 -0
- package/dist/product/Donut.d.ts +1 -0
- package/dist/product/Donut.d.ts.map +1 -0
- package/dist/product/Donut.js +23 -0
- package/dist/product/Donut.js.map +1 -0
- package/dist/product/EmptyState.cjs +30 -0
- package/dist/product/EmptyState.d.ts +2 -1
- package/dist/product/EmptyState.d.ts.map +1 -0
- package/dist/product/EmptyState.js +28 -0
- package/dist/product/EmptyState.js.map +1 -0
- package/dist/product/FadeIn.cjs +9 -0
- package/dist/product/FadeIn.d.ts +1 -0
- package/dist/product/FadeIn.d.ts.map +1 -0
- package/dist/product/FadeIn.js +7 -0
- package/dist/product/FadeIn.js.map +1 -0
- package/dist/product/Field.cjs +111 -0
- package/dist/product/Field.d.ts +1 -0
- package/dist/product/Field.d.ts.map +1 -0
- package/dist/product/Field.js +104 -0
- package/dist/product/Field.js.map +1 -0
- package/dist/product/Filters.cjs +31 -0
- package/dist/product/Filters.d.ts +1 -0
- package/dist/product/Filters.d.ts.map +1 -0
- package/dist/product/Filters.js +28 -0
- package/dist/product/Filters.js.map +1 -0
- package/dist/product/HanzoMark.cjs +16 -0
- package/dist/product/HanzoMark.d.ts +1 -0
- package/dist/product/HanzoMark.d.ts.map +1 -0
- package/dist/product/HanzoMark.js +14 -0
- package/dist/product/HanzoMark.js.map +1 -0
- package/dist/product/Metric.cjs +96 -0
- package/dist/product/Metric.d.ts +1 -0
- package/dist/product/Metric.d.ts.map +1 -0
- package/dist/product/Metric.js +85 -0
- package/dist/product/Metric.js.map +1 -0
- package/dist/product/OrgMark.cjs +50 -0
- package/dist/product/OrgMark.d.ts +2 -1
- package/dist/product/OrgMark.d.ts.map +1 -0
- package/dist/product/OrgMark.js +47 -0
- package/dist/product/OrgMark.js.map +1 -0
- package/dist/product/OrgSwitcher.cjs +140 -0
- package/dist/product/OrgSwitcher.d.ts +2 -1
- package/dist/product/OrgSwitcher.d.ts.map +1 -0
- package/dist/product/OrgSwitcher.js +138 -0
- package/dist/product/OrgSwitcher.js.map +1 -0
- package/dist/product/PageHeader.cjs +15 -0
- package/dist/product/PageHeader.d.ts +1 -0
- package/dist/product/PageHeader.d.ts.map +1 -0
- package/dist/product/PageHeader.js +13 -0
- package/dist/product/PageHeader.js.map +1 -0
- package/dist/product/PrimaryButton.cjs +31 -0
- package/dist/product/PrimaryButton.d.ts +1 -0
- package/dist/product/PrimaryButton.d.ts.map +1 -0
- package/dist/product/PrimaryButton.js +29 -0
- package/dist/product/PrimaryButton.js.map +1 -0
- package/dist/product/ProductIcon.cjs +36 -0
- package/dist/product/ProductIcon.d.ts +2 -1
- package/dist/product/ProductIcon.d.ts.map +1 -0
- package/dist/product/ProductIcon.js +34 -0
- package/dist/product/ProductIcon.js.map +1 -0
- package/dist/product/ProviderLogo.cjs +84 -0
- package/dist/product/ProviderLogo.d.ts +1 -0
- package/dist/product/ProviderLogo.d.ts.map +1 -0
- package/dist/product/ProviderLogo.js +81 -0
- package/dist/product/ProviderLogo.js.map +1 -0
- package/dist/product/Reorder.cjs +82 -0
- package/dist/product/Reorder.d.ts +1 -0
- package/dist/product/Reorder.d.ts.map +1 -0
- package/dist/product/Reorder.js +78 -0
- package/dist/product/Reorder.js.map +1 -0
- package/dist/product/SelectMenu.cjs +19 -0
- package/dist/product/SelectMenu.d.ts +1 -0
- package/dist/product/SelectMenu.d.ts.map +1 -0
- package/dist/product/SelectMenu.js +17 -0
- package/dist/product/SelectMenu.js.map +1 -0
- package/dist/product/SiteFooter.cjs +17 -0
- package/dist/product/SiteFooter.d.ts +2 -1
- package/dist/product/SiteFooter.d.ts.map +1 -0
- package/dist/product/SiteFooter.js +15 -0
- package/dist/product/SiteFooter.js.map +1 -0
- package/dist/product/SiteNav.cjs +124 -0
- package/dist/product/SiteNav.d.ts +1 -0
- package/dist/product/SiteNav.d.ts.map +1 -0
- package/dist/product/SiteNav.js +122 -0
- package/dist/product/SiteNav.js.map +1 -0
- package/dist/product/SlideOver.cjs +129 -0
- package/dist/product/SlideOver.d.ts +2 -1
- package/dist/product/SlideOver.d.ts.map +1 -0
- package/dist/product/SlideOver.js +126 -0
- package/dist/product/SlideOver.js.map +1 -0
- package/dist/product/StatusTag.cjs +49 -0
- package/dist/product/StatusTag.d.ts +1 -0
- package/dist/product/StatusTag.d.ts.map +1 -0
- package/dist/product/StatusTag.js +47 -0
- package/dist/product/StatusTag.js.map +1 -0
- package/dist/product/ThemeToggle.cjs +120 -0
- package/dist/product/ThemeToggle.d.ts +1 -0
- package/dist/product/ThemeToggle.d.ts.map +1 -0
- package/dist/product/ThemeToggle.js +84 -0
- package/dist/product/ThemeToggle.js.map +1 -0
- package/dist/product/ThemeToggleNext.cjs +20 -0
- package/dist/product/ThemeToggleNext.d.ts +2 -1
- package/dist/product/ThemeToggleNext.d.ts.map +1 -0
- package/dist/product/ThemeToggleNext.js +19 -0
- package/dist/product/ThemeToggleNext.js.map +1 -0
- package/dist/product/Toast.cjs +90 -0
- package/dist/product/Toast.d.ts +1 -0
- package/dist/product/Toast.d.ts.map +1 -0
- package/dist/product/Toast.js +87 -0
- package/dist/product/Toast.js.map +1 -0
- package/dist/product/accent.cjs +97 -0
- package/dist/product/accent.d.ts +1 -0
- package/dist/product/accent.d.ts.map +1 -0
- package/dist/product/accent.js +90 -0
- package/dist/product/accent.js.map +1 -0
- package/dist/product/animatedLogo.logic.cjs +52 -0
- package/dist/product/animatedLogo.logic.d.ts +1 -0
- package/dist/product/animatedLogo.logic.d.ts.map +1 -0
- package/dist/product/animatedLogo.logic.js +47 -0
- package/dist/product/animatedLogo.logic.js.map +1 -0
- package/dist/product/brand.cjs +91 -0
- package/dist/product/brand.d.ts +1 -0
- package/dist/product/brand.d.ts.map +1 -0
- package/dist/product/brand.js +88 -0
- package/dist/product/brand.js.map +1 -0
- package/dist/product/color.cjs +6 -0
- package/dist/product/color.d.ts +1 -0
- package/dist/product/color.d.ts.map +1 -0
- package/dist/product/color.js +3 -0
- package/dist/product/color.js.map +1 -0
- package/dist/product/combobox/filter.cjs +31 -0
- package/dist/product/combobox/filter.d.ts +1 -0
- package/dist/product/combobox/filter.d.ts.map +1 -0
- package/dist/product/combobox/filter.js +28 -0
- package/dist/product/combobox/filter.js.map +1 -0
- package/dist/product/host.cjs +20 -0
- package/dist/product/host.d.ts +1 -0
- package/dist/product/host.d.ts.map +1 -0
- package/dist/product/host.js +16 -0
- package/dist/product/host.js.map +1 -0
- package/dist/product/index.cjs +120 -2490
- package/dist/product/index.d.ts +42 -41
- package/dist/product/index.d.ts.map +1 -0
- package/dist/product/index.js +88 -2168
- package/dist/product/index.js.map +1 -1
- package/dist/product/instrument.cjs +79 -0
- package/dist/product/instrument.d.ts +1 -0
- package/dist/product/instrument.d.ts.map +1 -0
- package/dist/product/instrument.js +72 -0
- package/dist/product/instrument.js.map +1 -0
- package/dist/product/menu/ContextMenu.cjs +26 -0
- package/dist/product/menu/ContextMenu.d.ts +2 -1
- package/dist/product/menu/ContextMenu.d.ts.map +1 -0
- package/dist/product/menu/ContextMenu.js +24 -0
- package/dist/product/menu/ContextMenu.js.map +1 -0
- package/dist/product/menu/FloatingMenu.cjs +87 -0
- package/dist/product/menu/FloatingMenu.d.ts +1 -0
- package/dist/product/menu/FloatingMenu.d.ts.map +1 -0
- package/dist/product/menu/FloatingMenu.js +85 -0
- package/dist/product/menu/FloatingMenu.js.map +1 -0
- package/dist/product/menu/index.cjs +30 -0
- package/dist/product/menu/index.d.ts +6 -5
- package/dist/product/menu/index.d.ts.map +1 -0
- package/dist/product/menu/index.js +19 -0
- package/dist/product/menu/index.js.map +1 -0
- package/dist/product/menu/items.cjs +92 -0
- package/dist/product/menu/items.d.ts +2 -1
- package/dist/product/menu/items.d.ts.map +1 -0
- package/dist/product/menu/items.js +85 -0
- package/dist/product/menu/items.js.map +1 -0
- package/dist/product/menu/portal-theme.cjs +13 -0
- package/dist/product/menu/portal-theme.d.ts +1 -0
- package/dist/product/menu/portal-theme.d.ts.map +1 -0
- package/dist/product/menu/portal-theme.js +12 -0
- package/dist/product/menu/portal-theme.js.map +1 -0
- package/dist/product/menu/roving.cjs +31 -0
- package/dist/product/menu/roving.d.ts +1 -0
- package/dist/product/menu/roving.d.ts.map +1 -0
- package/dist/product/menu/roving.js +29 -0
- package/dist/product/menu/roving.js.map +1 -0
- package/dist/product/scope.cjs +102 -0
- package/dist/product/scope.d.ts +1 -0
- package/dist/product/scope.d.ts.map +1 -0
- package/dist/product/scope.js +99 -0
- package/dist/product/scope.js.map +1 -0
- package/dist/product/social/CampaignCard.cjs +17 -0
- package/dist/product/social/CampaignCard.d.ts +1 -0
- package/dist/product/social/CampaignCard.d.ts.map +1 -0
- package/dist/product/social/CampaignCard.js +15 -0
- package/dist/product/social/CampaignCard.js.map +1 -0
- package/dist/product/social/ChannelBadge.cjs +24 -0
- package/dist/product/social/ChannelBadge.d.ts +2 -1
- package/dist/product/social/ChannelBadge.d.ts.map +1 -0
- package/dist/product/social/ChannelBadge.js +22 -0
- package/dist/product/social/ChannelBadge.js.map +1 -0
- package/dist/product/social/PostAgenda.cjs +40 -0
- package/dist/product/social/PostAgenda.d.ts +2 -1
- package/dist/product/social/PostAgenda.d.ts.map +1 -0
- package/dist/product/social/PostAgenda.js +38 -0
- package/dist/product/social/PostAgenda.js.map +1 -0
- package/dist/product/social/PostCard.cjs +19 -0
- package/dist/product/social/PostCard.d.ts +2 -1
- package/dist/product/social/PostCard.d.ts.map +1 -0
- package/dist/product/social/PostCard.js +17 -0
- package/dist/product/social/PostCard.js.map +1 -0
- package/dist/product/social/PostComposer.cjs +64 -0
- package/dist/product/social/PostComposer.d.ts +2 -1
- package/dist/product/social/PostComposer.d.ts.map +1 -0
- package/dist/product/social/PostComposer.js +61 -0
- package/dist/product/social/PostComposer.js.map +1 -0
- package/dist/product/social/ProviderReadinessList.cjs +16 -0
- package/dist/product/social/ProviderReadinessList.d.ts +2 -1
- package/dist/product/social/ProviderReadinessList.d.ts.map +1 -0
- package/dist/product/social/ProviderReadinessList.js +14 -0
- package/dist/product/social/ProviderReadinessList.js.map +1 -0
- package/dist/product/social/SocialResource.cjs +147 -0
- package/dist/product/social/SocialResource.d.ts +2 -1
- package/dist/product/social/SocialResource.d.ts.map +1 -0
- package/dist/product/social/SocialResource.js +145 -0
- package/dist/product/social/SocialResource.js.map +1 -0
- package/dist/product/social/SocialSummaryBar.cjs +20 -0
- package/dist/product/social/SocialSummaryBar.d.ts +2 -1
- package/dist/product/social/SocialSummaryBar.d.ts.map +1 -0
- package/dist/product/social/SocialSummaryBar.js +18 -0
- package/dist/product/social/SocialSummaryBar.js.map +1 -0
- package/dist/product/social/ViewToggle.cjs +23 -0
- package/dist/product/social/ViewToggle.d.ts +1 -0
- package/dist/product/social/ViewToggle.d.ts.map +1 -0
- package/dist/product/social/ViewToggle.js +21 -0
- package/dist/product/social/ViewToggle.js.map +1 -0
- package/dist/product/social/api.cjs +137 -53
- package/dist/product/social/api.d.ts +1 -0
- package/dist/product/social/api.d.ts.map +1 -0
- package/dist/product/social/api.js +126 -3
- package/dist/product/social/api.js.map +1 -1
- package/dist/product/social/format.cjs +39 -0
- package/dist/product/social/format.d.ts +1 -0
- package/dist/product/social/format.d.ts.map +1 -0
- package/dist/product/social/format.js +34 -0
- package/dist/product/social/format.js.map +1 -0
- package/dist/product/social/index.cjs +38 -112
- package/dist/product/social/index.d.ts +12 -11
- package/dist/product/social/index.d.ts.map +1 -0
- package/dist/product/social/index.js +22 -6
- package/dist/product/social/index.js.map +1 -1
- package/dist/product/surfaces.data.cjs +25 -0
- package/dist/product/surfaces.data.d.ts +1 -0
- package/dist/product/surfaces.data.d.ts.map +1 -0
- package/dist/product/surfaces.data.js +22 -0
- package/dist/product/surfaces.data.js.map +1 -0
- package/dist/telemetry.cjs +31 -15
- package/dist/telemetry.d.ts +1 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +14 -2
- package/dist/telemetry.js.map +1 -1
- package/dist/theme.css +70 -45
- package/dist/usage.cjs +24 -15
- package/dist/usage.d.ts +1 -0
- package/dist/usage.d.ts.map +1 -0
- package/dist/usage.js +7 -2
- package/dist/usage.js.map +1 -1
- package/package.json +10 -13
- package/dist/ThemeToggleNext-AEDLHX5X.js +0 -5
- package/dist/ThemeToggleNext-AEDLHX5X.js.map +0 -1
- package/dist/ThemeToggleNext-N6ASYJ6J.cjs +0 -20
- package/dist/ThemeToggleNext-N6ASYJ6J.cjs.map +0 -1
- package/dist/canvas.cjs.map +0 -1
- package/dist/chunk-2U3MNE4I.js +0 -4
- package/dist/chunk-2U3MNE4I.js.map +0 -1
- package/dist/chunk-3NG33DV2.cjs +0 -607
- package/dist/chunk-3NG33DV2.cjs.map +0 -1
- package/dist/chunk-6DDY6XZI.js +0 -53
- package/dist/chunk-6DDY6XZI.js.map +0 -1
- package/dist/chunk-6KZWRBK2.cjs +0 -1498
- package/dist/chunk-6KZWRBK2.cjs.map +0 -1
- package/dist/chunk-77AMCLN4.js +0 -100
- package/dist/chunk-77AMCLN4.js.map +0 -1
- package/dist/chunk-7XDEUEWI.cjs +0 -44
- package/dist/chunk-7XDEUEWI.cjs.map +0 -1
- package/dist/chunk-7ZNK6JSS.js +0 -831
- package/dist/chunk-7ZNK6JSS.js.map +0 -1
- package/dist/chunk-ARV3P4CE.cjs +0 -105
- package/dist/chunk-ARV3P4CE.cjs.map +0 -1
- package/dist/chunk-DC52DQ27.cjs +0 -303
- package/dist/chunk-DC52DQ27.cjs.map +0 -1
- package/dist/chunk-FVQXROBK.js +0 -37
- package/dist/chunk-FVQXROBK.js.map +0 -1
- package/dist/chunk-GVCOAJLO.js +0 -397
- package/dist/chunk-GVCOAJLO.js.map +0 -1
- package/dist/chunk-MWBFAV3D.cjs +0 -105
- package/dist/chunk-MWBFAV3D.cjs.map +0 -1
- package/dist/chunk-NQUA5YRQ.cjs +0 -55
- package/dist/chunk-NQUA5YRQ.cjs.map +0 -1
- package/dist/chunk-ONVERVFG.cjs +0 -851
- package/dist/chunk-ONVERVFG.cjs.map +0 -1
- package/dist/chunk-P2QU5MN5.js +0 -555
- package/dist/chunk-P2QU5MN5.js.map +0 -1
- package/dist/chunk-PI3GSHLU.js +0 -263
- package/dist/chunk-PI3GSHLU.js.map +0 -1
- package/dist/chunk-QHC2ZNAF.js +0 -11
- package/dist/chunk-QHC2ZNAF.js.map +0 -1
- package/dist/chunk-QV52JQHR.cjs +0 -77
- package/dist/chunk-QV52JQHR.cjs.map +0 -1
- package/dist/chunk-RBS5AYO4.cjs +0 -13
- package/dist/chunk-RBS5AYO4.cjs.map +0 -1
- package/dist/chunk-RCMDRI6V.js +0 -1401
- package/dist/chunk-RCMDRI6V.js.map +0 -1
- package/dist/chunk-WHJR5S4L.cjs +0 -418
- package/dist/chunk-WHJR5S4L.cjs.map +0 -1
- package/dist/chunk-ZGTJCJ55.js +0 -93
- package/dist/chunk-ZGTJCJ55.js.map +0 -1
- package/dist/components.d.ts +0 -1
- package/dist/core/index.cjs.map +0 -1
- package/dist/core/tokens.cjs.map +0 -1
- package/dist/dashboard.cjs.map +0 -1
- package/dist/data.cjs.map +0 -1
- package/dist/framework/core.cjs.map +0 -1
- package/dist/framework/index.cjs.map +0 -1
- package/dist/gitops.cjs.map +0 -1
- package/dist/gui-config.cjs.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/models/index.cjs.map +0 -1
- package/dist/oss.cjs.map +0 -1
- package/dist/primitives/AspectRatio.cjs.map +0 -1
- package/dist/primitives/Avatar.cjs.map +0 -1
- package/dist/primitives/AvatarFallback.cjs.map +0 -1
- package/dist/primitives/AvatarImage.cjs.map +0 -1
- package/dist/primitives/Badge.cjs.map +0 -1
- package/dist/primitives/Button.cjs.map +0 -1
- package/dist/primitives/Card.cjs.map +0 -1
- package/dist/primitives/CardAction.cjs.map +0 -1
- package/dist/primitives/CardContent.cjs.map +0 -1
- package/dist/primitives/CardDescription.cjs.map +0 -1
- package/dist/primitives/CardFooter.cjs.map +0 -1
- package/dist/primitives/CardHeader.cjs.map +0 -1
- package/dist/primitives/CardTitle.cjs.map +0 -1
- package/dist/primitives/Checkbox.cjs.map +0 -1
- package/dist/primitives/Collapsible.cjs.map +0 -1
- package/dist/primitives/CollapsibleContent.cjs.map +0 -1
- package/dist/primitives/CollapsibleTrigger.cjs.map +0 -1
- package/dist/primitives/Command.cjs.map +0 -1
- package/dist/primitives/CommandDialog.cjs.map +0 -1
- package/dist/primitives/CommandEmpty.cjs.map +0 -1
- package/dist/primitives/CommandGroup.cjs.map +0 -1
- package/dist/primitives/CommandInput.cjs.map +0 -1
- package/dist/primitives/CommandItem.cjs.map +0 -1
- package/dist/primitives/CommandList.cjs.map +0 -1
- package/dist/primitives/CommandSeparator.cjs.map +0 -1
- package/dist/primitives/CommandShortcut.cjs.map +0 -1
- package/dist/primitives/Dialog.cjs.map +0 -1
- package/dist/primitives/DialogClose.cjs.map +0 -1
- package/dist/primitives/DialogContent.cjs.map +0 -1
- package/dist/primitives/DialogDescription.cjs.map +0 -1
- package/dist/primitives/DialogFooter.cjs.map +0 -1
- package/dist/primitives/DialogHeader.cjs.map +0 -1
- package/dist/primitives/DialogOverlay.cjs.map +0 -1
- package/dist/primitives/DialogPortal.cjs.map +0 -1
- package/dist/primitives/DialogTitle.cjs.map +0 -1
- package/dist/primitives/DialogTrigger.cjs.map +0 -1
- package/dist/primitives/DropdownMenu.cjs.map +0 -1
- package/dist/primitives/DropdownMenuCheckboxItem.cjs.map +0 -1
- package/dist/primitives/DropdownMenuContent.cjs.map +0 -1
- package/dist/primitives/DropdownMenuGroup.cjs.map +0 -1
- package/dist/primitives/DropdownMenuItem.cjs.map +0 -1
- package/dist/primitives/DropdownMenuLabel.cjs.map +0 -1
- package/dist/primitives/DropdownMenuPortal.cjs.map +0 -1
- package/dist/primitives/DropdownMenuRadioGroup.cjs.map +0 -1
- package/dist/primitives/DropdownMenuRadioItem.cjs.map +0 -1
- package/dist/primitives/DropdownMenuSeparator.cjs.map +0 -1
- package/dist/primitives/DropdownMenuShortcut.cjs.map +0 -1
- package/dist/primitives/DropdownMenuSub.cjs.map +0 -1
- package/dist/primitives/DropdownMenuSubContent.cjs.map +0 -1
- package/dist/primitives/DropdownMenuSubTrigger.cjs.map +0 -1
- package/dist/primitives/DropdownMenuTrigger.cjs.map +0 -1
- package/dist/primitives/Input.cjs.map +0 -1
- package/dist/primitives/Label.cjs.map +0 -1
- package/dist/primitives/Popover.cjs.map +0 -1
- package/dist/primitives/PopoverAnchor.cjs.map +0 -1
- package/dist/primitives/PopoverClose.cjs.map +0 -1
- package/dist/primitives/PopoverContent.cjs.map +0 -1
- package/dist/primitives/PopoverTrigger.cjs.map +0 -1
- package/dist/primitives/Progress.cjs.map +0 -1
- package/dist/primitives/ResizableHandle.cjs.map +0 -1
- package/dist/primitives/ResizablePanel.cjs.map +0 -1
- package/dist/primitives/ResizablePanelGroup.cjs.map +0 -1
- package/dist/primitives/ScrollArea.cjs.map +0 -1
- package/dist/primitives/ScrollBar.cjs.map +0 -1
- package/dist/primitives/Select.cjs.map +0 -1
- package/dist/primitives/SelectContent.cjs.map +0 -1
- package/dist/primitives/SelectGroup.cjs.map +0 -1
- package/dist/primitives/SelectItem.cjs.map +0 -1
- package/dist/primitives/SelectLabel.cjs.map +0 -1
- package/dist/primitives/SelectScrollDownButton.cjs.map +0 -1
- package/dist/primitives/SelectScrollUpButton.cjs.map +0 -1
- package/dist/primitives/SelectSeparator.cjs.map +0 -1
- package/dist/primitives/SelectTrigger.cjs.map +0 -1
- package/dist/primitives/SelectValue.cjs.map +0 -1
- package/dist/primitives/Separator.cjs.map +0 -1
- package/dist/primitives/Slider.cjs.map +0 -1
- package/dist/primitives/Switch.cjs.map +0 -1
- package/dist/primitives/Tabs.cjs.map +0 -1
- package/dist/primitives/TabsContent.cjs.map +0 -1
- package/dist/primitives/TabsList.cjs.map +0 -1
- package/dist/primitives/TabsTrigger.cjs.map +0 -1
- package/dist/primitives/Textarea.cjs.map +0 -1
- package/dist/primitives/Toaster.cjs.map +0 -1
- package/dist/primitives/Tooltip.cjs.map +0 -1
- package/dist/primitives/TooltipContent.cjs.map +0 -1
- package/dist/primitives/TooltipProvider.cjs.map +0 -1
- package/dist/primitives/TooltipTrigger.cjs.map +0 -1
- package/dist/primitives/badgeVariants.cjs.map +0 -1
- package/dist/primitives/bases/data/index.cjs.map +0 -1
- package/dist/primitives/buttonVariants.cjs.map +0 -1
- package/dist/primitives/index.cjs.map +0 -1
- package/dist/primitives/toast.cjs.map +0 -1
- package/dist/product/index.cjs.map +0 -1
- package/dist/product/social/api.cjs.map +0 -1
- package/dist/product/social/index.cjs.map +0 -1
- package/dist/telemetry.cjs.map +0 -1
- package/dist/usage.cjs.map +0 -1
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
'use client';"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.MediaGrid = MediaGrid;
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
/**
|
|
7
|
+
* MediaGrid — the DAM (media library) for a media DocType (an Attach-backed
|
|
8
|
+
* collection). A REAL asset manager: drag/drop or pick files → they upload through
|
|
9
|
+
* the injected `MediaUploader` (the host's own per-org object store) → a document
|
|
10
|
+
* is created from the DocType's OWN schema → the grid shows a live thumbnail
|
|
11
|
+
* (presigned on view, since object URLs are short-lived). Delete removes the
|
|
12
|
+
* document AND the object.
|
|
13
|
+
*
|
|
14
|
+
* The document body is `mediaDocPayload(dt, facts)` — metadata-driven. This used
|
|
15
|
+
* to write a hardcoded `{title, file, mime, size, width, height}`, which is the
|
|
16
|
+
* CMS Media fixture's schema: a lane whose media type labels its rows `caption`
|
|
17
|
+
* got untitled rows, silently, because the engine drops unknown keys. Now the
|
|
18
|
+
* filename lands on the DocType's declared title field and each fact is written
|
|
19
|
+
* only if that DocType has somewhere to put it.
|
|
20
|
+
*
|
|
21
|
+
* MOBILE FIRST: tiles are flex-basis, not a fixed 200px — two-up on a phone,
|
|
22
|
+
* filling whatever the box gives on a desktop. The upload control is a full-width
|
|
23
|
+
* tap target on a phone, and the per-tile delete is a 44px control rather than a
|
|
24
|
+
* 13px glyph.
|
|
25
|
+
*
|
|
26
|
+
* Web-first by nature (file picker + drag/drop + `<img>` thumbnails), like the
|
|
27
|
+
* other file-touching components in this layer.
|
|
28
|
+
*/
|
|
29
|
+
const react_1 = require("react");
|
|
30
|
+
const gui_1 = require("@hanzo/gui");
|
|
31
|
+
const lucide_icons_2_1 = require("@hanzogui/lucide-icons-2");
|
|
32
|
+
const EmptyState_1 = require("../product/EmptyState.cjs");
|
|
33
|
+
const BackendState_1 = require("../product/BackendState.cjs");
|
|
34
|
+
const fields_1 = require("./fields.cjs");
|
|
35
|
+
const media_1 = require("./media.cjs");
|
|
36
|
+
const parts_1 = require("./parts.cjs");
|
|
37
|
+
const responsive_1 = require("./responsive.cjs");
|
|
38
|
+
function MediaGrid({ client, dt, docs, media, onOpen, onChanged, toolbarExtra, accept = 'image/*,application/pdf,video/*,audio/*', }) {
|
|
39
|
+
const fileField = (0, fields_1.mediaFileField)(dt);
|
|
40
|
+
const inputRef = (0, react_1.useRef)(null);
|
|
41
|
+
const [busy, setBusy] = (0, react_1.useState)(false);
|
|
42
|
+
const [progress, setProgress] = (0, react_1.useState)(null);
|
|
43
|
+
const [error, setError] = (0, react_1.useState)(null);
|
|
44
|
+
const { phone, onLayout } = (0, responsive_1.useContainerLayout)();
|
|
45
|
+
const upload = (0, react_1.useCallback)(async (files) => {
|
|
46
|
+
const list = Array.from(files);
|
|
47
|
+
if (list.length === 0)
|
|
48
|
+
return;
|
|
49
|
+
setBusy(true);
|
|
50
|
+
setError(null);
|
|
51
|
+
setProgress({ done: 0, total: list.length });
|
|
52
|
+
try {
|
|
53
|
+
for (let i = 0; i < list.length; i += 1) {
|
|
54
|
+
const facts = await media.upload(list[i]);
|
|
55
|
+
await client.records.create(dt.name, (0, fields_1.mediaDocPayload)(dt, facts));
|
|
56
|
+
setProgress({ done: i + 1, total: list.length });
|
|
57
|
+
}
|
|
58
|
+
onChanged();
|
|
59
|
+
}
|
|
60
|
+
catch (e) {
|
|
61
|
+
setError((0, BackendState_1.classifyBackend)(e).message);
|
|
62
|
+
}
|
|
63
|
+
finally {
|
|
64
|
+
setBusy(false);
|
|
65
|
+
setProgress(null);
|
|
66
|
+
}
|
|
67
|
+
}, [client, dt, media, onChanged]);
|
|
68
|
+
const pick = () => inputRef.current?.click();
|
|
69
|
+
const onInput = (e) => {
|
|
70
|
+
if (e.target.files)
|
|
71
|
+
void upload(e.target.files);
|
|
72
|
+
e.target.value = ''; // allow re-selecting the same file
|
|
73
|
+
};
|
|
74
|
+
const HiddenInput = ((0, jsx_runtime_1.jsx)("input", { ref: inputRef, type: "file", multiple: true, accept: accept, style: { display: 'none' }, onChange: onInput }));
|
|
75
|
+
const uploadLabel = busy ? (progress ? `Uploading ${progress.done}/${progress.total}…` : 'Uploading…') : 'Upload';
|
|
76
|
+
if (docs.length === 0) {
|
|
77
|
+
return ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { onLayout: onLayout, gap: "$3", width: "100%", children: [HiddenInput, toolbarExtra ? ((0, jsx_runtime_1.jsx)(gui_1.XStack, { justify: phone ? 'flex-start' : 'flex-end', gap: "$2", width: "100%", children: toolbarExtra })) : null, error ? (0, jsx_runtime_1.jsx)(parts_1.ErrorBar, { message: error }) : null, (0, jsx_runtime_1.jsx)(DropZone, { busy: busy, onDrop: upload, children: (0, jsx_runtime_1.jsx)(EmptyState_1.EmptyState, { icon: lucide_icons_2_1.Image, title: "No media yet", description: "Drag files here, or upload \u2014 images and files go to your organization's object storage and become reusable media you can attach to any record.", primary: { label: uploadLabel, onPress: pick } }) })] }));
|
|
78
|
+
}
|
|
79
|
+
return ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { onLayout: onLayout, gap: "$3", width: "100%", children: [HiddenInput, (0, jsx_runtime_1.jsxs)(gui_1.XStack, { gap: "$2", items: "center", flexWrap: "wrap", justify: phone ? 'flex-start' : 'flex-end', width: "100%", children: [toolbarExtra, (0, jsx_runtime_1.jsx)(parts_1.Action, { phone: phone, primary: true, icon: (0, jsx_runtime_1.jsx)(lucide_icons_2_1.Upload, { size: 15 }), disabled: busy, onPress: pick, children: uploadLabel })] }), error ? (0, jsx_runtime_1.jsx)(parts_1.ErrorBar, { message: error }) : null, (0, jsx_runtime_1.jsx)(DropZone, { busy: busy, onDrop: upload, children: (0, jsx_runtime_1.jsx)(gui_1.XStack, { gap: "$3", flexWrap: "wrap", width: "100%", children: docs.map((d) => ((0, jsx_runtime_1.jsx)(MediaCard, { doc: d, dt: dt, fileField: fileField, media: media, phone: phone, onOpen: () => onOpen(String(d.name)), onDelete: async () => {
|
|
80
|
+
setBusy(true);
|
|
81
|
+
setError(null);
|
|
82
|
+
try {
|
|
83
|
+
await media.remove(d[fileField]);
|
|
84
|
+
await client.records.remove(dt.name, String(d.name));
|
|
85
|
+
onChanged();
|
|
86
|
+
}
|
|
87
|
+
catch (e) {
|
|
88
|
+
setError((0, BackendState_1.classifyBackend)(e).message);
|
|
89
|
+
}
|
|
90
|
+
finally {
|
|
91
|
+
setBusy(false);
|
|
92
|
+
}
|
|
93
|
+
}, disabled: busy }, String(d.name)))) }) })] }));
|
|
94
|
+
}
|
|
95
|
+
/** One asset card — presigned thumbnail, title, type, and a delete affordance. */
|
|
96
|
+
function MediaCard({ doc, dt, fileField, media, phone, onOpen, onDelete, disabled, }) {
|
|
97
|
+
const [url, setUrl] = (0, react_1.useState)('');
|
|
98
|
+
const [confirming, setConfirming] = (0, react_1.useState)(false);
|
|
99
|
+
const raw = String(doc[fileField] ?? '');
|
|
100
|
+
const title = (0, fields_1.titleOf)(doc, dt);
|
|
101
|
+
(0, react_1.useEffect)(() => {
|
|
102
|
+
let cancelled = false;
|
|
103
|
+
void media.resolveUrl(raw).then((u) => {
|
|
104
|
+
if (!cancelled)
|
|
105
|
+
setUrl(u);
|
|
106
|
+
});
|
|
107
|
+
return () => {
|
|
108
|
+
cancelled = true;
|
|
109
|
+
};
|
|
110
|
+
}, [raw, media]);
|
|
111
|
+
return ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { borderWidth: 1, borderColor: "$borderColor", rounded: "$4",
|
|
112
|
+
// Two-up on a phone, a 200px tile once there is room — never a fixed column
|
|
113
|
+
// with dead space beside it.
|
|
114
|
+
grow: 0, flexBasis: phone ? '47%' : 200, maxW: phone ? undefined : 200, minW: 140, overflow: "hidden", hoverStyle: { borderColor: '$color8' }, children: [(0, jsx_runtime_1.jsx)(gui_1.YStack, { height: phone ? 110 : 130, bg: "$color3", items: "center", justify: "center", overflow: "hidden", cursor: "pointer", pressStyle: { opacity: 0.8 }, onPress: onOpen, children: url && ((0, media_1.looksLikeImage)(raw) || (0, media_1.looksLikeImage)(url)) ? (
|
|
115
|
+
// eslint-disable-next-line @next/next/no-img-element
|
|
116
|
+
(0, jsx_runtime_1.jsx)("img", { src: url, alt: String(doc.alt ?? title), style: { width: '100%', height: '100%', objectFit: 'cover' } })) : ((0, jsx_runtime_1.jsx)(lucide_icons_2_1.Image, { size: 28 })) }), (0, jsx_runtime_1.jsxs)(gui_1.YStack, { p: "$3", gap: "$1", children: [(0, jsx_runtime_1.jsx)(gui_1.Text, { fontSize: "$3", fontWeight: "700", numberOfLines: 1, children: title }), (0, jsx_runtime_1.jsxs)(gui_1.XStack, { justify: "space-between", items: "center", gap: "$2", children: [(0, jsx_runtime_1.jsx)(parts_1.Meta, { children: String(doc.mime ?? 'file') }), confirming ? ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { gap: "$1", children: [(0, jsx_runtime_1.jsx)(gui_1.Button, { size: phone ? '$3' : '$1', minH: phone ? responsive_1.TAP : undefined, theme: "red", disabled: disabled, onPress: () => {
|
|
117
|
+
setConfirming(false);
|
|
118
|
+
void onDelete();
|
|
119
|
+
}, children: "Delete" }), (0, jsx_runtime_1.jsx)(gui_1.Button, { size: phone ? '$3' : '$1', minH: phone ? responsive_1.TAP : undefined, disabled: disabled, onPress: () => setConfirming(false), children: "No" })] })) : ((0, jsx_runtime_1.jsx)(gui_1.Button, { size: phone ? '$3' : '$1', circular: true, chromeless: true, minW: phone ? responsive_1.TAP : undefined, minH: phone ? responsive_1.TAP : undefined, "aria-label": `Delete ${title}`, icon: (0, jsx_runtime_1.jsx)(lucide_icons_2_1.Trash2, { size: phone ? 16 : 13 }), disabled: disabled, onPress: () => setConfirming(true) }))] })] })] }));
|
|
120
|
+
}
|
|
121
|
+
/** A drag-and-drop wrapper that highlights on drag-over and uploads on drop. */
|
|
122
|
+
function DropZone({ children, busy, onDrop, }) {
|
|
123
|
+
const [over, setOver] = (0, react_1.useState)(false);
|
|
124
|
+
return ((0, jsx_runtime_1.jsx)(gui_1.YStack, { width: "100%", onDragOver: (e) => {
|
|
125
|
+
e.preventDefault();
|
|
126
|
+
if (!busy)
|
|
127
|
+
setOver(true);
|
|
128
|
+
}, onDragLeave: () => setOver(false), onDrop: (e) => {
|
|
129
|
+
e.preventDefault();
|
|
130
|
+
setOver(false);
|
|
131
|
+
if (!busy && e.dataTransfer?.files?.length)
|
|
132
|
+
void onDrop(e.dataTransfer.files);
|
|
133
|
+
}, rounded: "$4", p: over ? '$3' : 0, borderWidth: over ? 2 : 0, borderColor: "$color8", style: { borderStyle: 'dashed' }, children: children }));
|
|
134
|
+
}
|
|
@@ -22,9 +22,9 @@
|
|
|
22
22
|
* other file-touching components in this layer.
|
|
23
23
|
*/
|
|
24
24
|
import { type ReactNode } from 'react';
|
|
25
|
-
import type { FrameworkClient } from './client';
|
|
26
|
-
import type { DocType, FrameworkDoc } from './types';
|
|
27
|
-
import { type MediaUploader } from './media';
|
|
25
|
+
import type { FrameworkClient } from './client.js';
|
|
26
|
+
import type { DocType, FrameworkDoc } from './types.js';
|
|
27
|
+
import { type MediaUploader } from './media.js';
|
|
28
28
|
export interface MediaGridProps {
|
|
29
29
|
client: FrameworkClient;
|
|
30
30
|
dt: DocType;
|
|
@@ -40,3 +40,4 @@ export interface MediaGridProps {
|
|
|
40
40
|
accept?: string;
|
|
41
41
|
}
|
|
42
42
|
export declare function MediaGrid({ client, dt, docs, media, onOpen, onChanged, toolbarExtra, accept, }: MediaGridProps): import("react/jsx-runtime").JSX.Element;
|
|
43
|
+
//# sourceMappingURL=MediaGrid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaGrid.d.ts","sourceRoot":"","sources":["../../src/framework/MediaGrid.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAA4C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAMhF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEpD,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,SAAS,CAAA;AAI5D,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,eAAe,CAAA;IACvB,EAAE,EAAE,OAAO,CAAA;IACX,IAAI,EAAE,YAAY,EAAE,CAAA;IACpB,4DAA4D;IAC5D,KAAK,EAAE,aAAa,CAAA;IACpB,qEAAqE;IACrE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,sDAAsD;IACtD,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,SAAS,CAAC,EACxB,MAAM,EACN,EAAE,EACF,IAAI,EACJ,KAAK,EACL,MAAM,EACN,SAAS,EACT,YAAY,EACZ,MAAkD,GACnD,EAAE,cAAc,2CA2GhB"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* MediaGrid — the DAM (media library) for a media DocType (an Attach-backed
|
|
5
|
+
* collection). A REAL asset manager: drag/drop or pick files → they upload through
|
|
6
|
+
* the injected `MediaUploader` (the host's own per-org object store) → a document
|
|
7
|
+
* is created from the DocType's OWN schema → the grid shows a live thumbnail
|
|
8
|
+
* (presigned on view, since object URLs are short-lived). Delete removes the
|
|
9
|
+
* document AND the object.
|
|
10
|
+
*
|
|
11
|
+
* The document body is `mediaDocPayload(dt, facts)` — metadata-driven. This used
|
|
12
|
+
* to write a hardcoded `{title, file, mime, size, width, height}`, which is the
|
|
13
|
+
* CMS Media fixture's schema: a lane whose media type labels its rows `caption`
|
|
14
|
+
* got untitled rows, silently, because the engine drops unknown keys. Now the
|
|
15
|
+
* filename lands on the DocType's declared title field and each fact is written
|
|
16
|
+
* only if that DocType has somewhere to put it.
|
|
17
|
+
*
|
|
18
|
+
* MOBILE FIRST: tiles are flex-basis, not a fixed 200px — two-up on a phone,
|
|
19
|
+
* filling whatever the box gives on a desktop. The upload control is a full-width
|
|
20
|
+
* tap target on a phone, and the per-tile delete is a 44px control rather than a
|
|
21
|
+
* 13px glyph.
|
|
22
|
+
*
|
|
23
|
+
* Web-first by nature (file picker + drag/drop + `<img>` thumbnails), like the
|
|
24
|
+
* other file-touching components in this layer.
|
|
25
|
+
*/
|
|
26
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
27
|
+
import { Button, Text, XStack, YStack } from '@hanzo/gui';
|
|
28
|
+
import { Image as ImageIcon, Trash2, Upload } from '@hanzogui/lucide-icons-2';
|
|
29
|
+
import { EmptyState } from '../product/EmptyState.js';
|
|
30
|
+
import { classifyBackend } from '../product/BackendState.js';
|
|
31
|
+
import { mediaDocPayload, mediaFileField, titleOf } from './fields.js';
|
|
32
|
+
import { looksLikeImage } from './media.js';
|
|
33
|
+
import { Action, ErrorBar, Meta } from './parts.js';
|
|
34
|
+
import { useContainerLayout, TAP } from './responsive.js';
|
|
35
|
+
export function MediaGrid({ client, dt, docs, media, onOpen, onChanged, toolbarExtra, accept = 'image/*,application/pdf,video/*,audio/*', }) {
|
|
36
|
+
const fileField = mediaFileField(dt);
|
|
37
|
+
const inputRef = useRef(null);
|
|
38
|
+
const [busy, setBusy] = useState(false);
|
|
39
|
+
const [progress, setProgress] = useState(null);
|
|
40
|
+
const [error, setError] = useState(null);
|
|
41
|
+
const { phone, onLayout } = useContainerLayout();
|
|
42
|
+
const upload = useCallback(async (files) => {
|
|
43
|
+
const list = Array.from(files);
|
|
44
|
+
if (list.length === 0)
|
|
45
|
+
return;
|
|
46
|
+
setBusy(true);
|
|
47
|
+
setError(null);
|
|
48
|
+
setProgress({ done: 0, total: list.length });
|
|
49
|
+
try {
|
|
50
|
+
for (let i = 0; i < list.length; i += 1) {
|
|
51
|
+
const facts = await media.upload(list[i]);
|
|
52
|
+
await client.records.create(dt.name, mediaDocPayload(dt, facts));
|
|
53
|
+
setProgress({ done: i + 1, total: list.length });
|
|
54
|
+
}
|
|
55
|
+
onChanged();
|
|
56
|
+
}
|
|
57
|
+
catch (e) {
|
|
58
|
+
setError(classifyBackend(e).message);
|
|
59
|
+
}
|
|
60
|
+
finally {
|
|
61
|
+
setBusy(false);
|
|
62
|
+
setProgress(null);
|
|
63
|
+
}
|
|
64
|
+
}, [client, dt, media, onChanged]);
|
|
65
|
+
const pick = () => inputRef.current?.click();
|
|
66
|
+
const onInput = (e) => {
|
|
67
|
+
if (e.target.files)
|
|
68
|
+
void upload(e.target.files);
|
|
69
|
+
e.target.value = ''; // allow re-selecting the same file
|
|
70
|
+
};
|
|
71
|
+
const HiddenInput = (_jsx("input", { ref: inputRef, type: "file", multiple: true, accept: accept, style: { display: 'none' }, onChange: onInput }));
|
|
72
|
+
const uploadLabel = busy ? (progress ? `Uploading ${progress.done}/${progress.total}…` : 'Uploading…') : 'Upload';
|
|
73
|
+
if (docs.length === 0) {
|
|
74
|
+
return (_jsxs(YStack, { onLayout: onLayout, gap: "$3", width: "100%", children: [HiddenInput, toolbarExtra ? (_jsx(XStack, { justify: phone ? 'flex-start' : 'flex-end', gap: "$2", width: "100%", children: toolbarExtra })) : null, error ? _jsx(ErrorBar, { message: error }) : null, _jsx(DropZone, { busy: busy, onDrop: upload, children: _jsx(EmptyState, { icon: ImageIcon, title: "No media yet", description: "Drag files here, or upload \u2014 images and files go to your organization's object storage and become reusable media you can attach to any record.", primary: { label: uploadLabel, onPress: pick } }) })] }));
|
|
75
|
+
}
|
|
76
|
+
return (_jsxs(YStack, { onLayout: onLayout, gap: "$3", width: "100%", children: [HiddenInput, _jsxs(XStack, { gap: "$2", items: "center", flexWrap: "wrap", justify: phone ? 'flex-start' : 'flex-end', width: "100%", children: [toolbarExtra, _jsx(Action, { phone: phone, primary: true, icon: _jsx(Upload, { size: 15 }), disabled: busy, onPress: pick, children: uploadLabel })] }), error ? _jsx(ErrorBar, { message: error }) : null, _jsx(DropZone, { busy: busy, onDrop: upload, children: _jsx(XStack, { gap: "$3", flexWrap: "wrap", width: "100%", children: docs.map((d) => (_jsx(MediaCard, { doc: d, dt: dt, fileField: fileField, media: media, phone: phone, onOpen: () => onOpen(String(d.name)), onDelete: async () => {
|
|
77
|
+
setBusy(true);
|
|
78
|
+
setError(null);
|
|
79
|
+
try {
|
|
80
|
+
await media.remove(d[fileField]);
|
|
81
|
+
await client.records.remove(dt.name, String(d.name));
|
|
82
|
+
onChanged();
|
|
83
|
+
}
|
|
84
|
+
catch (e) {
|
|
85
|
+
setError(classifyBackend(e).message);
|
|
86
|
+
}
|
|
87
|
+
finally {
|
|
88
|
+
setBusy(false);
|
|
89
|
+
}
|
|
90
|
+
}, disabled: busy }, String(d.name)))) }) })] }));
|
|
91
|
+
}
|
|
92
|
+
/** One asset card — presigned thumbnail, title, type, and a delete affordance. */
|
|
93
|
+
function MediaCard({ doc, dt, fileField, media, phone, onOpen, onDelete, disabled, }) {
|
|
94
|
+
const [url, setUrl] = useState('');
|
|
95
|
+
const [confirming, setConfirming] = useState(false);
|
|
96
|
+
const raw = String(doc[fileField] ?? '');
|
|
97
|
+
const title = titleOf(doc, dt);
|
|
98
|
+
useEffect(() => {
|
|
99
|
+
let cancelled = false;
|
|
100
|
+
void media.resolveUrl(raw).then((u) => {
|
|
101
|
+
if (!cancelled)
|
|
102
|
+
setUrl(u);
|
|
103
|
+
});
|
|
104
|
+
return () => {
|
|
105
|
+
cancelled = true;
|
|
106
|
+
};
|
|
107
|
+
}, [raw, media]);
|
|
108
|
+
return (_jsxs(YStack, { borderWidth: 1, borderColor: "$borderColor", rounded: "$4",
|
|
109
|
+
// Two-up on a phone, a 200px tile once there is room — never a fixed column
|
|
110
|
+
// with dead space beside it.
|
|
111
|
+
grow: 0, flexBasis: phone ? '47%' : 200, maxW: phone ? undefined : 200, minW: 140, overflow: "hidden", hoverStyle: { borderColor: '$color8' }, children: [_jsx(YStack, { height: phone ? 110 : 130, bg: "$color3", items: "center", justify: "center", overflow: "hidden", cursor: "pointer", pressStyle: { opacity: 0.8 }, onPress: onOpen, children: url && (looksLikeImage(raw) || looksLikeImage(url)) ? (
|
|
112
|
+
// eslint-disable-next-line @next/next/no-img-element
|
|
113
|
+
_jsx("img", { src: url, alt: String(doc.alt ?? title), style: { width: '100%', height: '100%', objectFit: 'cover' } })) : (_jsx(ImageIcon, { size: 28 })) }), _jsxs(YStack, { p: "$3", gap: "$1", children: [_jsx(Text, { fontSize: "$3", fontWeight: "700", numberOfLines: 1, children: title }), _jsxs(XStack, { justify: "space-between", items: "center", gap: "$2", children: [_jsx(Meta, { children: String(doc.mime ?? 'file') }), confirming ? (_jsxs(XStack, { gap: "$1", children: [_jsx(Button, { size: phone ? '$3' : '$1', minH: phone ? TAP : undefined, theme: "red", disabled: disabled, onPress: () => {
|
|
114
|
+
setConfirming(false);
|
|
115
|
+
void onDelete();
|
|
116
|
+
}, children: "Delete" }), _jsx(Button, { size: phone ? '$3' : '$1', minH: phone ? TAP : undefined, disabled: disabled, onPress: () => setConfirming(false), children: "No" })] })) : (_jsx(Button, { size: phone ? '$3' : '$1', circular: true, chromeless: true, minW: phone ? TAP : undefined, minH: phone ? TAP : undefined, "aria-label": `Delete ${title}`, icon: _jsx(Trash2, { size: phone ? 16 : 13 }), disabled: disabled, onPress: () => setConfirming(true) }))] })] })] }));
|
|
117
|
+
}
|
|
118
|
+
/** A drag-and-drop wrapper that highlights on drag-over and uploads on drop. */
|
|
119
|
+
function DropZone({ children, busy, onDrop, }) {
|
|
120
|
+
const [over, setOver] = useState(false);
|
|
121
|
+
return (_jsx(YStack, { width: "100%", onDragOver: (e) => {
|
|
122
|
+
e.preventDefault();
|
|
123
|
+
if (!busy)
|
|
124
|
+
setOver(true);
|
|
125
|
+
}, onDragLeave: () => setOver(false), onDrop: (e) => {
|
|
126
|
+
e.preventDefault();
|
|
127
|
+
setOver(false);
|
|
128
|
+
if (!busy && e.dataTransfer?.files?.length)
|
|
129
|
+
void onDrop(e.dataTransfer.files);
|
|
130
|
+
}, rounded: "$4", p: over ? '$3' : 0, borderWidth: over ? 2 : 0, borderColor: "$color8", style: { borderStyle: 'dashed' }, children: children }));
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=MediaGrid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaGrid.js","sourceRoot":"","sources":["../../src/framework/MediaGrid.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
'use client';"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.RecordCards = RecordCards;
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
/**
|
|
7
|
+
* RecordCards — the PHONE view of a DocType's documents: one stacked card per
|
|
8
|
+
* record instead of a horizontally-scrolling grid.
|
|
9
|
+
*
|
|
10
|
+
* A 12-column ERP Sales Order in a table on a 390px screen is a wall you drag
|
|
11
|
+
* sideways to read one row; the same record as a card is a title plus its declared
|
|
12
|
+
* list columns as label → value pairs, reading top to bottom in the width you
|
|
13
|
+
* have. Nothing is hidden that the table would have shown — the card renders the
|
|
14
|
+
* DocType's OWN `inListView` projection (`cardFields`), and the full record is one
|
|
15
|
+
* tap away.
|
|
16
|
+
*
|
|
17
|
+
* The whole card is the tap target (far past the 44px floor), values render
|
|
18
|
+
* through the SAME `FieldDisplay` router the table uses, so every field type
|
|
19
|
+
* behaves identically in both, and search is the pure `searchRecords` — no second
|
|
20
|
+
* filtering model.
|
|
21
|
+
*/
|
|
22
|
+
const react_1 = require("react");
|
|
23
|
+
const gui_1 = require("@hanzo/gui");
|
|
24
|
+
const lucide_icons_2_1 = require("@hanzogui/lucide-icons-2");
|
|
25
|
+
const data_1 = require("@hanzo/data");
|
|
26
|
+
const parts_1 = require("./parts.cjs");
|
|
27
|
+
/** The headline for a card: the title field, else the record key. */
|
|
28
|
+
function headline(record, titleField) {
|
|
29
|
+
const t = titleField ? record[titleField] : undefined;
|
|
30
|
+
if (typeof t === 'string' && t.trim())
|
|
31
|
+
return t;
|
|
32
|
+
if (typeof t === 'number')
|
|
33
|
+
return String(t);
|
|
34
|
+
const name = record.name ?? record.id;
|
|
35
|
+
return typeof name === 'string' && name ? name : 'Untitled';
|
|
36
|
+
}
|
|
37
|
+
function RecordCards({ titleField, fields, cardFields, records, loading, empty, onOpen, onCreate, createLabel = 'New record', toolbarExtra, }) {
|
|
38
|
+
const [query, setQuery] = (0, react_1.useState)('');
|
|
39
|
+
const visible = (0, react_1.useMemo)(() => (0, data_1.searchRecords)(records, query, fields), [records, query, fields]);
|
|
40
|
+
return ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { testID: "doctype-cards", gap: "$3", width: "100%", children: [(0, jsx_runtime_1.jsxs)(gui_1.YStack, { gap: "$2", width: "100%", children: [(0, jsx_runtime_1.jsxs)(gui_1.XStack, { items: "center", gap: "$2", px: "$3", minH: 44, rounded: "$3", borderWidth: 1, borderColor: "$borderColor", width: "100%", children: [(0, jsx_runtime_1.jsx)(lucide_icons_2_1.Search, { size: 15, opacity: 0.6 }), (0, jsx_runtime_1.jsx)(gui_1.Input, { unstyled: true, flex: 1, minW: 0, height: 42, fontSize: "$3", color: "$color12", placeholder: "Search", value: query, onChangeText: setQuery, autoCapitalize: "none" })] }), (0, jsx_runtime_1.jsxs)(gui_1.XStack, { gap: "$2", items: "center", flexWrap: "wrap", width: "100%", children: [onCreate ? ((0, jsx_runtime_1.jsx)(parts_1.Action, { phone: true, primary: true, onPress: onCreate, children: createLabel })) : null, toolbarExtra] })] }), loading ? (0, jsx_runtime_1.jsx)(parts_1.Loading, { label: "Loading records\u2026" }) : null, !loading && visible.length === 0 ? ((0, jsx_runtime_1.jsx)(gui_1.Card, { borderWidth: 1, borderColor: "$borderColor", p: "$4", width: "100%", children: (0, jsx_runtime_1.jsx)(gui_1.Text, { fontSize: "$3", color: "$color10", children: query ? `No records match “${query}”.` : empty ?? 'No records yet.' }) })) : null, (0, jsx_runtime_1.jsx)(gui_1.YStack, { gap: "$2", width: "100%", children: visible.map((rec, i) => {
|
|
41
|
+
const key = String(rec.name ?? rec.id ?? i);
|
|
42
|
+
return ((0, jsx_runtime_1.jsx)(gui_1.Card, { borderWidth: 1, borderColor: "$borderColor", rounded: "$3", p: "$3", width: "100%", cursor: onOpen ? 'pointer' : undefined, pressStyle: onOpen ? { bg: '$color3' } : undefined, hoverStyle: onOpen ? { borderColor: '$color8' } : undefined, onPress: onOpen ? () => onOpen(rec) : undefined, style: parts_1.WRAP_ANYWHERE, children: (0, jsx_runtime_1.jsxs)(gui_1.YStack, { gap: "$2", width: "100%", children: [(0, jsx_runtime_1.jsxs)(gui_1.XStack, { items: "center", gap: "$2", width: "100%", children: [(0, jsx_runtime_1.jsx)(gui_1.Text, { fontSize: "$4", fontWeight: "700", flex: 1, minW: 0, numberOfLines: 2, children: headline(rec, titleField) }), onOpen ? (0, jsx_runtime_1.jsx)(lucide_icons_2_1.ChevronRight, { size: 16, opacity: 0.5 }) : null] }), cardFields.map((f) => (
|
|
43
|
+
// Label above value: a two-column row forces the value into a
|
|
44
|
+
// sliver at 390px. Stacked, every field type gets the full width.
|
|
45
|
+
(0, jsx_runtime_1.jsxs)(gui_1.YStack, { gap: "$0.5", width: "100%", children: [(0, jsx_runtime_1.jsx)(gui_1.Text, { fontSize: "$1", color: "$color10", textTransform: "uppercase", letterSpacing: 0.4, children: f.label }), (0, jsx_runtime_1.jsx)(gui_1.XStack, { width: "100%", flexWrap: "wrap", children: (0, jsx_runtime_1.jsx)(data_1.FieldDisplay, { field: f, value: rec[f.name] }) })] }, f.name)))] }) }, key));
|
|
46
|
+
}) }), visible.length ? ((0, jsx_runtime_1.jsxs)(parts_1.Meta, { children: [visible.length, " of ", records.length, " record", records.length === 1 ? '' : 's'] })) : null] }));
|
|
47
|
+
}
|
|
@@ -33,3 +33,4 @@ export interface RecordCardsProps {
|
|
|
33
33
|
toolbarExtra?: ReactNode;
|
|
34
34
|
}
|
|
35
35
|
export declare function RecordCards({ titleField, fields, cardFields, records, loading, empty, onOpen, onCreate, createLabel, toolbarExtra, }: RecordCardsProps): import("react/jsx-runtime").JSX.Element;
|
|
36
|
+
//# sourceMappingURL=RecordCards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RecordCards.d.ts","sourceRoot":"","sources":["../../src/framework/RecordCards.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAGzD,OAAO,EAA+B,KAAK,eAAe,EAAE,MAAM,aAAa,CAAA;AAI/E,MAAM,WAAW,gBAAgB;IAC/B,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,4EAA4E;IAC5E,MAAM,EAAE,eAAe,EAAE,CAAA;IACzB,8DAA8D;IAC9D,UAAU,EAAE,eAAe,EAAE,CAAA;IAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAClC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAClD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,SAAS,CAAA;CACzB;AAWD,wBAAgB,WAAW,CAAC,EAC1B,UAAU,EACV,MAAM,EACN,UAAU,EACV,OAAO,EACP,OAAO,EACP,KAAK,EACL,MAAM,EACN,QAAQ,EACR,WAA0B,EAC1B,YAAY,GACb,EAAE,gBAAgB,2CAuGlB"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* RecordCards — the PHONE view of a DocType's documents: one stacked card per
|
|
5
|
+
* record instead of a horizontally-scrolling grid.
|
|
6
|
+
*
|
|
7
|
+
* A 12-column ERP Sales Order in a table on a 390px screen is a wall you drag
|
|
8
|
+
* sideways to read one row; the same record as a card is a title plus its declared
|
|
9
|
+
* list columns as label → value pairs, reading top to bottom in the width you
|
|
10
|
+
* have. Nothing is hidden that the table would have shown — the card renders the
|
|
11
|
+
* DocType's OWN `inListView` projection (`cardFields`), and the full record is one
|
|
12
|
+
* tap away.
|
|
13
|
+
*
|
|
14
|
+
* The whole card is the tap target (far past the 44px floor), values render
|
|
15
|
+
* through the SAME `FieldDisplay` router the table uses, so every field type
|
|
16
|
+
* behaves identically in both, and search is the pure `searchRecords` — no second
|
|
17
|
+
* filtering model.
|
|
18
|
+
*/
|
|
19
|
+
import { useMemo, useState } from 'react';
|
|
20
|
+
import { Card, Input, Text, XStack, YStack } from '@hanzo/gui';
|
|
21
|
+
import { ChevronRight, Search } from '@hanzogui/lucide-icons-2';
|
|
22
|
+
import { FieldDisplay, searchRecords } from '@hanzo/data';
|
|
23
|
+
import { Action, Loading, Meta, WRAP_ANYWHERE } from './parts.js';
|
|
24
|
+
/** The headline for a card: the title field, else the record key. */
|
|
25
|
+
function headline(record, titleField) {
|
|
26
|
+
const t = titleField ? record[titleField] : undefined;
|
|
27
|
+
if (typeof t === 'string' && t.trim())
|
|
28
|
+
return t;
|
|
29
|
+
if (typeof t === 'number')
|
|
30
|
+
return String(t);
|
|
31
|
+
const name = record.name ?? record.id;
|
|
32
|
+
return typeof name === 'string' && name ? name : 'Untitled';
|
|
33
|
+
}
|
|
34
|
+
export function RecordCards({ titleField, fields, cardFields, records, loading, empty, onOpen, onCreate, createLabel = 'New record', toolbarExtra, }) {
|
|
35
|
+
const [query, setQuery] = useState('');
|
|
36
|
+
const visible = useMemo(() => searchRecords(records, query, fields), [records, query, fields]);
|
|
37
|
+
return (_jsxs(YStack, { testID: "doctype-cards", gap: "$3", width: "100%", children: [_jsxs(YStack, { gap: "$2", width: "100%", children: [_jsxs(XStack, { items: "center", gap: "$2", px: "$3", minH: 44, rounded: "$3", borderWidth: 1, borderColor: "$borderColor", width: "100%", children: [_jsx(Search, { size: 15, opacity: 0.6 }), _jsx(Input, { unstyled: true, flex: 1, minW: 0, height: 42, fontSize: "$3", color: "$color12", placeholder: "Search", value: query, onChangeText: setQuery, autoCapitalize: "none" })] }), _jsxs(XStack, { gap: "$2", items: "center", flexWrap: "wrap", width: "100%", children: [onCreate ? (_jsx(Action, { phone: true, primary: true, onPress: onCreate, children: createLabel })) : null, toolbarExtra] })] }), loading ? _jsx(Loading, { label: "Loading records\u2026" }) : null, !loading && visible.length === 0 ? (_jsx(Card, { borderWidth: 1, borderColor: "$borderColor", p: "$4", width: "100%", children: _jsx(Text, { fontSize: "$3", color: "$color10", children: query ? `No records match “${query}”.` : empty ?? 'No records yet.' }) })) : null, _jsx(YStack, { gap: "$2", width: "100%", children: visible.map((rec, i) => {
|
|
38
|
+
const key = String(rec.name ?? rec.id ?? i);
|
|
39
|
+
return (_jsx(Card, { borderWidth: 1, borderColor: "$borderColor", rounded: "$3", p: "$3", width: "100%", cursor: onOpen ? 'pointer' : undefined, pressStyle: onOpen ? { bg: '$color3' } : undefined, hoverStyle: onOpen ? { borderColor: '$color8' } : undefined, onPress: onOpen ? () => onOpen(rec) : undefined, style: WRAP_ANYWHERE, children: _jsxs(YStack, { gap: "$2", width: "100%", children: [_jsxs(XStack, { items: "center", gap: "$2", width: "100%", children: [_jsx(Text, { fontSize: "$4", fontWeight: "700", flex: 1, minW: 0, numberOfLines: 2, children: headline(rec, titleField) }), onOpen ? _jsx(ChevronRight, { size: 16, opacity: 0.5 }) : null] }), cardFields.map((f) => (
|
|
40
|
+
// Label above value: a two-column row forces the value into a
|
|
41
|
+
// sliver at 390px. Stacked, every field type gets the full width.
|
|
42
|
+
_jsxs(YStack, { gap: "$0.5", width: "100%", children: [_jsx(Text, { fontSize: "$1", color: "$color10", textTransform: "uppercase", letterSpacing: 0.4, children: f.label }), _jsx(XStack, { width: "100%", flexWrap: "wrap", children: _jsx(FieldDisplay, { field: f, value: rec[f.name] }) })] }, f.name)))] }) }, key));
|
|
43
|
+
}) }), visible.length ? (_jsxs(Meta, { children: [visible.length, " of ", records.length, " record", records.length === 1 ? '' : 's'] })) : null] }));
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=RecordCards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RecordCards.js","sourceRoot":"","sources":["../../src/framework/RecordCards.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
'use client';"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BUILDER_FIELD_TYPES = void 0;
|
|
4
|
+
exports.fieldTypeLabel = fieldTypeLabel;
|
|
5
|
+
exports.fieldNeedsOptions = fieldNeedsOptions;
|
|
6
|
+
exports.newKey = newKey;
|
|
7
|
+
exports.blankField = blankField;
|
|
8
|
+
exports.starterFields = starterFields;
|
|
9
|
+
exports.fieldsFromDocType = fieldsFromDocType;
|
|
10
|
+
exports.fieldNameFromLabel = fieldNameFromLabel;
|
|
11
|
+
exports.validateBuilder = validateBuilder;
|
|
12
|
+
exports.toDocField = toDocField;
|
|
13
|
+
exports.moveField = moveField;
|
|
14
|
+
exports.toDocType = toDocType;
|
|
15
|
+
const fields_1 = require("./fields.cjs");
|
|
16
|
+
/**
|
|
17
|
+
* The builder's field-type vocabulary — every framework fieldtype, with a friendly
|
|
18
|
+
* label + hint. This is the ONE list the "add field" type picker renders, so the
|
|
19
|
+
* builder always offers exactly what the engine accepts (no drift). Order is the
|
|
20
|
+
* author-facing order (common types first).
|
|
21
|
+
*/
|
|
22
|
+
exports.BUILDER_FIELD_TYPES = [
|
|
23
|
+
{ type: 'Data', label: 'Text', hint: 'Single line of text' },
|
|
24
|
+
{ type: 'RichText', label: 'Rich text', hint: 'Formatted body (WYSIWYG)' },
|
|
25
|
+
{ type: 'LongText', label: 'Long text', hint: 'Multi-line plain text' },
|
|
26
|
+
{ type: 'Int', label: 'Number', hint: 'Whole number' },
|
|
27
|
+
{ type: 'Float', label: 'Decimal', hint: 'Decimal number' },
|
|
28
|
+
{ type: 'Currency', label: 'Currency', hint: 'Money amount' },
|
|
29
|
+
{ type: 'Check', label: 'Checkbox', hint: 'True / false' },
|
|
30
|
+
{ type: 'Date', label: 'Date', hint: 'Calendar date' },
|
|
31
|
+
{ type: 'Datetime', label: 'Date & time', hint: 'Date with time' },
|
|
32
|
+
{ type: 'Select', label: 'Select', hint: 'One of a list of options' },
|
|
33
|
+
{ type: 'Link', label: 'Relation', hint: 'Reference another collection' },
|
|
34
|
+
{ type: 'Attach', label: 'Attachment', hint: 'A file / image URL' },
|
|
35
|
+
{ type: 'Table', label: 'Table', hint: 'Repeatable child rows (JSON)' },
|
|
36
|
+
{ type: 'JSON', label: 'JSON', hint: 'Arbitrary JSON' },
|
|
37
|
+
];
|
|
38
|
+
const LABELS = Object.fromEntries(exports.BUILDER_FIELD_TYPES.map((t) => [t.type, t.label]));
|
|
39
|
+
/** The friendly label for a fieldtype (falls back to the raw type). */
|
|
40
|
+
function fieldTypeLabel(t) {
|
|
41
|
+
return LABELS[t] ?? t;
|
|
42
|
+
}
|
|
43
|
+
/** True when a fieldtype needs `options` (Select choices, Link/Table target). */
|
|
44
|
+
function fieldNeedsOptions(t) {
|
|
45
|
+
return t === 'Select' || t === 'Link' || t === 'Table';
|
|
46
|
+
}
|
|
47
|
+
let seq = 0;
|
|
48
|
+
/** A fresh, unique client key. */
|
|
49
|
+
function newKey() {
|
|
50
|
+
seq += 1;
|
|
51
|
+
return `f${seq}_${Math.random().toString(36).slice(2, 8)}`;
|
|
52
|
+
}
|
|
53
|
+
/** A blank field row of a given type. */
|
|
54
|
+
function blankField(type = 'Data') {
|
|
55
|
+
return { key: newKey(), label: '', type, required: false, inListView: false, options: '' };
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* The default starter fields for a NEW content collection: a required Title, a URL
|
|
59
|
+
* Slug (the autoname key), a rich Body, and a Draft/Published Status. The author
|
|
60
|
+
* edits from here. Mirrors the cloud CMS seed so a hand-built collection matches a
|
|
61
|
+
* seeded one.
|
|
62
|
+
*/
|
|
63
|
+
function starterFields() {
|
|
64
|
+
return [
|
|
65
|
+
{ key: newKey(), label: 'Title', type: 'Data', required: true, inListView: true, options: '' },
|
|
66
|
+
{ key: newKey(), label: 'Slug', type: 'Data', required: true, inListView: true, options: '' },
|
|
67
|
+
{ key: newKey(), label: 'Body', type: 'RichText', required: false, inListView: false, options: '' },
|
|
68
|
+
{ key: newKey(), label: 'Status', type: 'Select', required: false, inListView: true, options: 'Draft\nPublished' },
|
|
69
|
+
// Optional project scope — lets a host's org→project switcher filter this collection.
|
|
70
|
+
{ key: newKey(), label: 'Project', type: 'Data', required: false, inListView: false, options: '' },
|
|
71
|
+
];
|
|
72
|
+
}
|
|
73
|
+
/** An existing DocType → editable builder rows (drops engine-managed fields). */
|
|
74
|
+
function fieldsFromDocType(dt) {
|
|
75
|
+
return (dt.fields ?? []).map((f) => ({
|
|
76
|
+
key: newKey(),
|
|
77
|
+
label: f.label || f.fieldname,
|
|
78
|
+
type: f.fieldtype,
|
|
79
|
+
required: Boolean(f.reqd),
|
|
80
|
+
inListView: Boolean(f.inListView),
|
|
81
|
+
options: f.options ?? '',
|
|
82
|
+
}));
|
|
83
|
+
}
|
|
84
|
+
/** The fieldname derived from a label (slug with underscores; identifier-safe). */
|
|
85
|
+
function fieldNameFromLabel(label) {
|
|
86
|
+
const slug = (0, fields_1.slugify)(label).replace(/-/g, '_');
|
|
87
|
+
// A leading digit isn't a valid identifier lead; prefix it.
|
|
88
|
+
return /^[0-9]/.test(slug) ? `f_${slug}` : slug;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Validate the whole builder: the collection name, at least one field, unique
|
|
92
|
+
* non-empty field labels/names, and options present where required. Pure.
|
|
93
|
+
*/
|
|
94
|
+
function validateBuilder(name, fields) {
|
|
95
|
+
const fieldErrors = {};
|
|
96
|
+
let formError = null;
|
|
97
|
+
if (!(0, fields_1.isValidDoctypeName)(name.trim())) {
|
|
98
|
+
formError = 'Enter a collection name with letters, digits, dashes or underscores (no spaces).';
|
|
99
|
+
}
|
|
100
|
+
else if (fields.length === 0) {
|
|
101
|
+
formError = 'Add at least one field.';
|
|
102
|
+
}
|
|
103
|
+
const seen = new Set();
|
|
104
|
+
for (const f of fields) {
|
|
105
|
+
const label = f.label.trim();
|
|
106
|
+
if (!label) {
|
|
107
|
+
fieldErrors[f.key] = 'Name this field.';
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
const fname = fieldNameFromLabel(label);
|
|
111
|
+
if (!fname) {
|
|
112
|
+
fieldErrors[f.key] = 'Use letters or digits in the field name.';
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
if (seen.has(fname)) {
|
|
116
|
+
fieldErrors[f.key] = `Duplicate field "${fname}".`;
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
119
|
+
seen.add(fname);
|
|
120
|
+
if ((f.type === 'Link' || f.type === 'Table') && !f.options.trim()) {
|
|
121
|
+
fieldErrors[f.key] = f.type === 'Link' ? 'Choose the collection to relate to.' : 'Name the child collection.';
|
|
122
|
+
}
|
|
123
|
+
else if (f.type === 'Select' && !f.options.trim()) {
|
|
124
|
+
fieldErrors[f.key] = 'Add at least one option.';
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return { ok: !formError && Object.keys(fieldErrors).length === 0, fieldErrors, formError };
|
|
128
|
+
}
|
|
129
|
+
/** A builder row → a framework DocField (drops UI-only bits, coerces options). */
|
|
130
|
+
function toDocField(f) {
|
|
131
|
+
const fieldname = fieldNameFromLabel(f.label);
|
|
132
|
+
const field = {
|
|
133
|
+
fieldname,
|
|
134
|
+
fieldtype: f.type,
|
|
135
|
+
label: f.label.trim(),
|
|
136
|
+
};
|
|
137
|
+
if (f.required)
|
|
138
|
+
field.reqd = true;
|
|
139
|
+
if (f.inListView)
|
|
140
|
+
field.inListView = true;
|
|
141
|
+
if (fieldNeedsOptions(f.type) && f.options.trim())
|
|
142
|
+
field.options = f.options.trim();
|
|
143
|
+
return field;
|
|
144
|
+
}
|
|
145
|
+
/** Move a row within the ordered field list (a no-op at either end). Pure. */
|
|
146
|
+
function moveField(fields, key, dir) {
|
|
147
|
+
const i = fields.findIndex((f) => f.key === key);
|
|
148
|
+
const j = i + dir;
|
|
149
|
+
if (i < 0 || j < 0 || j >= fields.length)
|
|
150
|
+
return fields;
|
|
151
|
+
const next = [...fields];
|
|
152
|
+
[next[i], next[j]] = [next[j], next[i]];
|
|
153
|
+
return next;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* The builder → a `DocType` create body. Auto-derives `autoname`/`titleField` from
|
|
157
|
+
* conventional fields when present (a `slug` field → `field:slug` naming; a `title`
|
|
158
|
+
* field → the title). Tags the module so the collection joins the lane.
|
|
159
|
+
*/
|
|
160
|
+
function toDocType(name, module, fields) {
|
|
161
|
+
const docFields = fields.map(toDocField);
|
|
162
|
+
const byName = new Set(docFields.map((f) => f.fieldname));
|
|
163
|
+
const dt = { name: name.trim(), module, fields: docFields };
|
|
164
|
+
if (byName.has('slug'))
|
|
165
|
+
dt.autoname = 'field:slug';
|
|
166
|
+
if (byName.has('title'))
|
|
167
|
+
dt.titleField = 'title';
|
|
168
|
+
return dt;
|
|
169
|
+
}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* projects the whole thing to a valid `DocType` create body. Names are slugified
|
|
10
10
|
* to field-name rules so a save never 400s on a bad identifier.
|
|
11
11
|
*/
|
|
12
|
-
import type { DocType, DocField, Fieldtype } from './types';
|
|
12
|
+
import type { DocType, DocField, Fieldtype } from './types.js';
|
|
13
13
|
/**
|
|
14
14
|
* The builder's field-type vocabulary — every framework fieldtype, with a friendly
|
|
15
15
|
* label + hint. This is the ONE list the "add field" type picker renders, so the
|
|
@@ -74,3 +74,4 @@ export declare function moveField(fields: BuilderField[], key: string, dir: -1 |
|
|
|
74
74
|
* field → the title). Tags the module so the collection joins the lane.
|
|
75
75
|
*/
|
|
76
76
|
export declare function toDocType(name: string, module: string, fields: BuilderField[]): DocType;
|
|
77
|
+
//# sourceMappingURL=builder-logic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder-logic.d.ts","sourceRoot":"","sources":["../../src/framework/builder-logic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAG3D;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAejF,CAAA;AAMD,uEAAuE;AACvE,wBAAgB,cAAc,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAEnD;AAED,iFAAiF;AACjF,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAEvD;AAED,+EAA+E;AAC/E,MAAM,WAAW,YAAY;IAC3B,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAA;IACX,2EAA2E;IAC3E,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,SAAS,CAAA;IACf,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,OAAO,CAAA;IACnB,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAA;CAChB;AAGD,kCAAkC;AAClC,wBAAgB,MAAM,IAAI,MAAM,CAG/B;AAED,yCAAyC;AACzC,wBAAgB,UAAU,CAAC,IAAI,GAAE,SAAkB,GAAG,YAAY,CAEjE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,IAAI,YAAY,EAAE,CAS9C;AAED,iFAAiF;AACjF,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,OAAO,GAAG,YAAY,EAAE,CAS7D;AAED,mFAAmF;AACnF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIxD;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,OAAO,CAAA;IACX,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,6CAA6C;IAC7C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,iBAAiB,CAmCvF;AAED,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,CAAC,EAAE,YAAY,GAAG,QAAQ,CAWpD;AAED,8EAA8E;AAC9E,wBAAgB,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,YAAY,EAAE,CAO1F;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAOvF"}
|